firebase 12.2.0 → 12.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/app/dist/esm/index.esm.js +1 -1
- package/app/dist/index.cjs.js +1 -1
- package/app/dist/index.mjs +1 -1
- package/compat/app/dist/esm/index.esm.js +1 -1
- package/compat/app/dist/index.cjs.js +1 -1
- package/compat/app/dist/index.mjs +1 -1
- package/compat/dist/esm/index.esm.js +2 -2
- package/compat/dist/index.node.cjs +2 -2
- package/compat/dist/index.rn.cjs.js +2 -2
- package/firebase-ai.js +1 -1
- package/firebase-ai.js.map +1 -1
- package/firebase-analytics.js +1 -1
- package/firebase-app-check.js +1 -1
- package/firebase-app-compat.js +2 -2
- package/firebase-app.js +4 -4
- package/firebase-auth-cordova.js +1 -1
- package/firebase-auth-web-extension.js +1 -1
- package/firebase-auth.js +1 -1
- package/firebase-compat.js +4 -4
- package/firebase-data-connect.js +1 -1
- package/firebase-database.js +1 -1
- package/firebase-firestore-compat.js +1 -1
- package/firebase-firestore-lite.js +1 -1
- package/firebase-firestore.js +1 -1
- package/firebase-functions.js +1 -1
- package/firebase-installations.js +1 -1
- package/firebase-messaging-sw.js +1 -1
- package/firebase-messaging.js +1 -1
- package/firebase-performance-standalone-compat.js +3 -3
- package/firebase-performance.js +1 -1
- package/firebase-remote-config.js +1 -1
- package/firebase-storage.js +1 -1
- package/package.json +2 -2
package/firebase-compat.js
CHANGED
|
@@ -12,15 +12,15 @@
|
|
|
12
12
|
<clipPath id="clip0_6083_34804">
|
|
13
13
|
<rect width="24" height="24" fill="white"/>
|
|
14
14
|
</clipPath>
|
|
15
|
-
</defs>`,i.innerText="Preview backend running in this workspace."),i.setAttribute("id",n)}"loading"===document.readyState?window.addEventListener("DOMContentLoaded",r):r()}}function ae(){return"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}function oe(){return"undefined"!=typeof window&&!!(window.cordova||window.phonegap||window.PhoneGap)&&/ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(ae())}function le(){var e=Y()?.forceEnvironment;if("node"===e)return!0;if("browser"===e)return!1;try{return"[object process]"===Object.prototype.toString.call(global.process)}catch(e){return!1}}function he(){return"undefined"!=typeof WorkerGlobalScope&&"undefined"!=typeof self&&self instanceof WorkerGlobalScope}function ue(){var e="object"==typeof chrome?chrome.runtime:"object"==typeof browser?browser.runtime:void 0;return"object"==typeof e&&void 0!==e.id}function ce(){return"object"==typeof navigator&&"ReactNative"===navigator.product}function de(){var e=ae();return 0<=e.indexOf("MSIE ")||0<=e.indexOf("Trident/")}function pe(){return!0===i.NODE_ADMIN}function fe(){return!le()&&navigator.userAgent&&navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome")}function ge(){return!le()&&navigator.userAgent&&(navigator.userAgent.includes("Safari")||navigator.userAgent.includes("WebKit"))&&!navigator.userAgent.includes("Chrome")}function me(){try{return"object"==typeof indexedDB}catch(e){return!1}}function ve(){return new Promise((n,i)=>{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=()=>{i(r.error?.message||"")}}catch(e){i(e)}})}function _e(){return!("undefined"==typeof navigator||!navigator.cookieEnabled)}class ye extends Error{constructor(e,t,r){super(t),this.code=e,this.customData=r,this.name="FirebaseError",Object.setPrototypeOf(this,ye.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,we.prototype.create)}}class we{constructor(e,t,r){this.service=e,this.serviceName=t,this.errors=r}create(e,...t){var n,r=t[0]||{},i=this.service+"/"+e,s=this.errors[e],s=s?(n=r,s.replace(be,(e,t)=>{var r=n[t];return null!=r?String(r):`<${t}?>`})):"Error",s=this.serviceName+`: ${s} (${i}).`;return new ye(i,s,r)}}let be=/\{\$([^}]+)}/g;function Ie(e){return JSON.parse(e)}function Te(e){return JSON.stringify(e)}function Ee(e){let t={},r={},n={},i="";try{var s=e.split(".");t=Ie(K(s[0])||""),r=Ie(K(s[1])||""),i=s[2],n=r.d||{},delete r.d}catch(e){}return{header:t,claims:r,data:n,signature:i}}function Ce(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Se(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]}function ke(e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}function Ae(e,t,r){var n,i={};for(n in e)Object.prototype.hasOwnProperty.call(e,n)&&(i[n]=t.call(r,e[n],n,e));return i}function Ne(e,t){if(e!==t){var r,n,i=Object.keys(e),s=Object.keys(t);for(r of i){if(!s.includes(r))return!1;var a=e[r],o=t[r];if(Re(a)&&Re(o)){if(!Ne(a,o))return!1}else if(a!==o)return!1}for(n of s)if(!i.includes(n))return!1}return!0}function Re(e){return null!==e&&"object"==typeof e}function Pe(e){let t=[];for(let[r,n]of Object.entries(e))Array.isArray(n)?n.forEach(e=>{t.push(encodeURIComponent(r)+"="+encodeURIComponent(e))}):t.push(encodeURIComponent(r)+"="+encodeURIComponent(n));return t.length?"&"+t.join("&"):""}function De(e){let n={};return e.replace(/^\?/,"").split("&").forEach(e=>{var t,r;e&&([t,r]=e.split("="),n[decodeURIComponent(t)]=decodeURIComponent(r))}),n}function xe(e){var t,r=e.indexOf("?");return r?(t=e.indexOf("#",r),e.substring(r,0<t?t:void 0)):""}class Oe{constructor(){this.chain_=[],this.buf_=[],this.W_=[],this.pad_=[],this.inbuf_=0,this.total_=0,this.blockSize=64,this.pad_[0]=128;for(let e=1;e<this.blockSize;++e)this.pad_[e]=0;this.reset()}reset(){this.chain_[0]=1732584193,this.chain_[1]=4023233417,this.chain_[2]=2562383102,this.chain_[3]=271733878,this.chain_[4]=3285377520,this.inbuf_=0,this.total_=0}compress_(r,n){n=n||0;var i=this.W_;if("string"==typeof r)for(let e=0;e<16;e++)i[e]=r.charCodeAt(n)<<24|r.charCodeAt(n+1)<<16|r.charCodeAt(n+2)<<8|r.charCodeAt(n+3),n+=4;else for(let t=0;t<16;t++)i[t]=r[n]<<24|r[n+1]<<16|r[n+2]<<8|r[n+3],n+=4;for(let d=16;d<80;d++){var e=i[d-3]^i[d-8]^i[d-14]^i[d-16];i[d]=4294967295&(e<<1|e>>>31)}let t=this.chain_[0],s=this.chain_[1],a=this.chain_[2],o=this.chain_[3],l=this.chain_[4],h,u;for(let p=0;p<80;p++){u=p<40?p<20?(h=o^s&(a^o),1518500249):(h=s^a^o,1859775393):p<60?(h=s&a|o&(s|a),2400959708):(h=s^a^o,3395469782);var c=(t<<5|t>>>27)+h+l+u+i[p]&4294967295;l=o,o=a,a=4294967295&(s<<30|s>>>2),s=t,t=c}this.chain_[0]=this.chain_[0]+t&4294967295,this.chain_[1]=this.chain_[1]+s&4294967295,this.chain_[2]=this.chain_[2]+a&4294967295,this.chain_[3]=this.chain_[3]+o&4294967295,this.chain_[4]=this.chain_[4]+l&4294967295}update(r,n){if(null!=r){var i=(n=void 0===n?r.length:n)-this.blockSize;let e=0;var s=this.buf_;let t=this.inbuf_;for(;e<n;){if(0===t)for(;e<=i;)this.compress_(r,e),e+=this.blockSize;if("string"==typeof r){for(;e<n;)if(s[t]=r.charCodeAt(e),++t,++e,t===this.blockSize){this.compress_(s),t=0;break}}else for(;e<n;)if(s[t]=r[e],++t,++e,t===this.blockSize){this.compress_(s),t=0;break}}this.inbuf_=t,this.total_+=n}}digest(){var t=[];let e=8*this.total_;this.inbuf_<56?this.update(this.pad_,56-this.inbuf_):this.update(this.pad_,this.blockSize-(this.inbuf_-56));for(let n=this.blockSize-1;56<=n;n--)this.buf_[n]=255&e,e/=256;this.compress_(this.buf_);let r=0;for(let i=0;i<5;i++)for(let e=24;0<=e;e-=8)t[r]=this.chain_[i]>>e&255,++r;return t}}function Me(e,t){var r=new Le(e,t);return r.subscribe.bind(r)}class Le{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=Fe),void 0===n.error&&(n.error=Fe),void 0===n.complete&&(n.complete=Fe);var i=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),i}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 Fe(){}function l(e,t,r,n){let i;var s;if(n<t?i="at least "+t:r<n&&(i=0===r?"none":"no more than "+r),i)throw s=e+" failed: Was called with "+n+(1===n?" argument.":" arguments.")+" Expects "+i+".",new Error(s)}function Ue(e,t){return e+` failed: ${t} argument `}function Ve(e,t,r,n){if((!n||r)&&"function"!=typeof r)throw new Error(Ue(e,t)+"must be a valid function.")}function qe(e,t,r,n){if((!n||r)&&("object"!=typeof r||null===r))throw new Error(Ue(e,t)+"must be a valid context object.")}let Be=function(e){let t=0;for(let n=0;n<e.length;n++){var r=e.charCodeAt(n);r<128?t++:r<2048?t+=2:55296<=r&&r<=56319?(t+=4,n++):t+=3}return t},je=1e3,ze=2,Ke=144e5,We=.5;function He(e,t=je,r=ze){var n=t*Math.pow(r,e),i=Math.round(We*n*(Math.random()-.5)*2);return Math.min(Ke,n+i)}function w(e){return e&&e._delegate?e._delegate:e}class u{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 Ge="[DEFAULT]";class $e{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 Z;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(e?.identifier),r=e?.optional??!1;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:Ge})}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=Ge){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=Ge){return this.instances.has(e)}getOptions(e=Ge){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,i,s=this.getOrInitializeService({instanceIdentifier:r,options:t});for([n,i]of this.instancesDeferred.entries())r===this.normalizeInstanceIdentifier(n)&&i.resolve(s);return s}onInit(e,t){var r=this.normalizeInstanceIdentifier(t);let n=this.onInitCallbacks.get(r)??new Set;n.add(e),this.onInitCallbacks.set(r,n);var i=this.instances.get(r);return i&&e(i,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{}}getOrInitializeService({instanceIdentifier:e,options:t={}}){let r=this.instances.get(e);if(!r&&this.component&&(r=this.component.instanceFactory(this.container,{instanceIdentifier:(n=e)===Ge?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{}var n;return r||null}normalizeInstanceIdentifier(e=Ge){return!this.component||this.component.multipleInstances?e:Ge}shouldAutoInitialize(){return!!this.component&&"EXPLICIT"!==this.component.instantiationMode}}class Qe{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 $e(e,this),this.providers.set(e,t),t)}getProviders(){return Array.from(this.providers.values())}}let Ye=[],Je=((t=c=c||{})[t.DEBUG=0]="DEBUG",t[t.VERBOSE=1]="VERBOSE",t[t.INFO=2]="INFO",t[t.WARN=3]="WARN",t[t.ERROR=4]="ERROR",t[t.SILENT=5]="SILENT",{debug:c.DEBUG,verbose:c.VERBOSE,info:c.INFO,warn:c.WARN,error:c.ERROR,silent:c.SILENT}),Xe=c.INFO,Ze={[c.DEBUG]:"log",[c.VERBOSE]:"log",[c.INFO]:"info",[c.WARN]:"warn",[c.ERROR]:"error"},et=(e,t,...r)=>{if(!(t<e.logLevel)){var n=(new Date).toISOString(),i=Ze[t];if(!i)throw new Error(`Attempted to log a message with an invalid logType (value: ${t})`);console[i](`[${n}] ${e.name}:`,...r)}};class tt{constructor(e){this.name=e,this._logLevel=Xe,this._logHandler=et,this._userLogHandler=null,Ye.push(this)}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in c))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?Je[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,c.DEBUG,...e),this._logHandler(this,c.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,c.VERBOSE,...e),this._logHandler(this,c.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,c.INFO,...e),this._logHandler(this,c.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,c.WARN,...e),this._logHandler(this,c.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,c.ERROR,...e),this._logHandler(this,c.ERROR,...e)}}let rt=(t,e)=>e.some(e=>t instanceof e),nt,it;let st=new WeakMap,at=new WeakMap,ot=new WeakMap,lt=new WeakMap,ht=new WeakMap;let ut={get(e,t,r){if(e instanceof IDBTransaction){if("done"===t)return at.get(e);if("objectStoreNames"===t)return e.objectStoreNames||ot.get(e);if("store"===t)return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return pt(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 ct(n){return n!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(it=it||[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey]).includes(n)?function(...e){return n.apply(ft(this),e),pt(st.get(this))}:function(...e){return pt(n.apply(ft(this),e))}:function(e,...t){var r=n.call(ft(this),e,...t);return ot.set(r,e.sort?e.sort():[e]),pt(r)}}function dt(e){var s,t;return"function"==typeof e?ct(e):(e instanceof IDBTransaction&&(s=e,at.has(s)||(t=new Promise((e,t)=>{let r=()=>{s.removeEventListener("complete",n),s.removeEventListener("error",i),s.removeEventListener("abort",i)},n=()=>{e(),r()},i=()=>{t(s.error||new DOMException("AbortError","AbortError")),r()};s.addEventListener("complete",n),s.addEventListener("error",i),s.addEventListener("abort",i)}),at.set(s,t))),rt(e,nt=nt||[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])?new Proxy(e,ut):e)}function pt(e){var s,t;return e instanceof IDBRequest?(s=e,(t=new Promise((e,t)=>{let r=()=>{s.removeEventListener("success",n),s.removeEventListener("error",i)},n=()=>{e(pt(s.result)),r()},i=()=>{t(s.error),r()};s.addEventListener("success",n),s.addEventListener("error",i)})).then(e=>{e instanceof IDBCursor&&st.set(e,s)}).catch(()=>{}),ht.set(t,s),t):lt.has(e)?lt.get(e):((t=dt(e))!==e&&(lt.set(e,t),ht.set(t,e)),t)}let ft=e=>ht.get(e);function gt(e,t,{blocked:r,upgrade:n,blocking:i,terminated:s}={}){let a=indexedDB.open(e,t);var o=pt(a);return n&&a.addEventListener("upgradeneeded",e=>{n(pt(a.result),e.oldVersion,e.newVersion,pt(a.transaction),e)}),r&&a.addEventListener("blocked",e=>r(e.oldVersion,e.newVersion,e)),o.then(e=>{s&&e.addEventListener("close",()=>s()),i&&e.addEventListener("versionchange",e=>i(e.oldVersion,e.newVersion,e))}).catch(()=>{}),o}function mt(e,{blocked:t}={}){var r=indexedDB.deleteDatabase(e);return t&&r.addEventListener("blocked",e=>t(e.oldVersion,e)),pt(r).then(()=>{})}let vt=["get","getKey","getAll","getAllKeys","count"],_t=["put","add","delete","clear"],yt=new Map;function wt(e,t){if(e instanceof IDBDatabase&&!(t in e)&&"string"==typeof t){if(yt.get(t))return yt.get(t);let i=t.replace(/FromIndex$/,""),s=t!==i,a=_t.includes(i);var r;return i in(s?IDBIndex:IDBObjectStore).prototype&&(a||vt.includes(i))?(r=async function(e,...t){var r=this.transaction(e,a?"readwrite":"readonly");let n=r.store;return s&&(n=n.index(t.shift())),(await Promise.all([n[i](...t),a&&r.done]))[0]},yt.set(t,r),r):void 0}}ut={...X=ut,get:(e,t,r)=>wt(e,t)||X.get(e,t,r),has:(e,t)=>!!wt(e,t)||X.has(e,t)};class bt{constructor(e){this.container=e}getPlatformInfoString(){return this.container.getProviders().map(e=>{var t;return"VERSION"===e.getComponent()?.type?(t=e.getImmediate()).library+"/"+t.version:null}).filter(e=>e).join(" ")}}let It="@firebase/app",Tt="0.14.2",Et=new tt("@firebase/app");let Ct="[DEFAULT]",St={"@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/ai":"fire-vertex","fire-js":"fire-js",firebase:"fire-js-all"},kt=new Map,At=new Map,Nt=new Map;function Rt(t,r){try{t.container.addComponent(r)}catch(e){Et.debug(`Component ${r.name} failed to register with FirebaseApp `+t.name,e)}}function Pt(e,t){e.container.addOrOverwriteComponent(t)}function Dt(e){var t,r,n=e.name;if(Nt.has(n))return Et.debug(`There were multiple attempts to register component ${n}.`),!1;Nt.set(n,e);for(t of kt.values())Rt(t,e);for(r of At.values())Rt(r,e);return!0}function xt(e,t){var r=e.container.getProvider("heartbeat").getImmediate({optional:!0});return r&&r.triggerHeartbeat(),e.container.getProvider(t)}function Ot(e){return void 0!==e.options}function Mt(e){return!Ot(e)&&("authIdToken"in e||"appCheckToken"in e||"releaseOnDeref"in e||"automaticDataCollectionEnabled"in e)}function h(e){return null!=e&&void 0!==e.settings}let Lt=new we("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 Ft{constructor(e,t,r){this._isDeleted=!1,this._options={...e},this._config={...t},this._name=t.name,this._automaticDataCollectionEnabled=t.automaticDataCollectionEnabled,this._container=r,this.container.addComponent(new u("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 Lt.create("app-deleted",{appName:this._name})}}function Ut(e,t){var r=K(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 Vt extends Ft{constructor(e,t,r,n){var i=void 0===t.automaticDataCollectionEnabled||t.automaticDataCollectionEnabled,s={name:r,automaticDataCollectionEnabled:i};void 0!==e.apiKey?super(e,s,n):super(e.options,s,n),this._serverConfig={automaticDataCollectionEnabled:i,...t},this._serverConfig.authIdToken&&Ut(this._serverConfig.authIdToken,"authIdToken"),this._serverConfig.appCheckToken&&Ut(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,d(It,Tt,"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(){zt(this)}get settings(){return this.checkDestroyed(),this._serverConfig}checkDestroyed(){if(this.isDeleted)throw Lt.create("server-app-deleted")}}let qt="12.2.0";function Bt(e,t={}){let r=e;if("object"!=typeof t){let e=t;t={name:e}}var n={name:Ct,automaticDataCollectionEnabled:!0,...t};let i=n.name;if("string"!=typeof i||!i)throw Lt.create("bad-app-name",{appName:String(i)});if(!(r=r||J()))throw Lt.create("no-options");var s=kt.get(i);if(s){if(Ne(r,s.options)&&Ne(n,s.config))return s;throw Lt.create("duplicate-app",{appName:i})}var a,o=new Qe(i);for(a of Nt.values())o.addComponent(a);s=new Ft(r,n,o);return kt.set(i,s),s}function jt(e=Ct){var t=kt.get(e);if(!t&&e===Ct&&J())return Bt();if(t)return t;throw Lt.create("no-app",{appName:e})}async function zt(e){let t=!1;var r=e.name;kt.has(r)?(t=!0,kt.delete(r)):At.has(r)&&e.decRefCount()<=0&&(At.delete(r),t=!0),t&&(await Promise.all(e.container.getProviders().map(e=>e.delete())),e.isDeleted=!0)}function d(e,t,r){let n=St[e]??e;r&&(n+="-"+r);var i,s=n.match(/\s|\//),a=t.match(/\s|\//);s||a?(i=[`Unable to register library "${n}" with version "${t}":`],s&&i.push(`library name "${n}" contains illegal characters (whitespace or "/")`),s&&a&&i.push("and"),a&&i.push(`version name "${t}" contains illegal characters (whitespace or "/")`),Et.warn(i.join(" "))):Dt(new u(n+"-version",()=>({library:n,version:t}),"VERSION"))}function Kt(e,t){if(null!==e&&"function"!=typeof e)throw Lt.create("invalid-log-argument");var r,s=e,n=t;for(r of Ye){let i=null;n&&n.level&&(i=Je[n.level]),r.userLogHandler=null===s?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>=(i??e.logLevel)&&s({level:c[t].toLowerCase(),message:n,args:r,type:e.name})}}}function Wt(e){var t;t=e,Ye.forEach(e=>{e.setLogLevel(t)})}let Ht="firebase-heartbeat-database",Gt=1,$t="firebase-heartbeat-store",Qt=null;function Yt(){return Qt=Qt||gt(Ht,Gt,{upgrade:(e,t)=>{if(0===t)try{e.createObjectStore($t)}catch(e){console.warn(e)}}}).catch(e=>{throw Lt.create("idb-open",{originalErrorMessage:e.message})})}async function Jt(e,t){try{var r=(await Yt()).transaction($t,"readwrite");await r.objectStore($t).put(t,Xt(e)),await r.done}catch(e){e instanceof ye?Et.warn(e.message):(r=Lt.create("idb-set",{originalErrorMessage:e?.message}),Et.warn(r.message))}}function Xt(e){return e.name+"!"+e.options.appId}class Zt{constructor(e){this.container=e,this._heartbeatsCache=null;var t=this.container.getProvider("app").getImmediate();this._storage=new tr(t),this._heartbeatsCachePromise=this._storage.read().then(e=>this._heartbeatsCache=e)}async triggerHeartbeat(){try{var e,r=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString();let t=er();if(null!=this._heartbeatsCache?.heartbeats||(this._heartbeatsCache=await this._heartbeatsCachePromise,null!=this._heartbeatsCache?.heartbeats))if(this._heartbeatsCache.lastSentHeartbeatDate!==t&&!this._heartbeatsCache.heartbeats.some(e=>e.date===t))return this._heartbeatsCache.heartbeats.push({date:t,agent:r}),30<this._heartbeatsCache.heartbeats.length&&(e=(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(e,1)),this._storage.overwrite(this._heartbeatsCache)}catch(e){Et.warn(e)}}async getHeartbeatsHeader(){try{var e,t,r,n;return(null===this._heartbeatsCache&&await this._heartbeatsCachePromise,null==this._heartbeatsCache?.heartbeats||0===this._heartbeatsCache.heartbeats.length)?"":(e=er(),{heartbeatsToSend:t,unsentEntries:r}=((e,t=1024)=>{let r=[],n=e.slice();for(let s of e){var i=r.find(e=>e.agent===s.agent);if(i){if(i.dates.push(s.date),rr(r)>t){i.dates.pop();break}}else if(r.push({agent:s.agent,dates:[s.date]}),rr(r)>t){r.pop();break}n=n.slice(1)}return{heartbeatsToSend:r,unsentEntries:n}})(this._heartbeatsCache.heartbeats),n=z(JSON.stringify({version:2,heartbeats:t})),this._heartbeatsCache.lastSentHeartbeatDate=e,0<r.length?(this._heartbeatsCache.heartbeats=r,await this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),n)}catch(e){return Et.warn(e),""}}}function er(){return(new Date).toISOString().substring(0,10)}class tr{constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return!!me()&&ve().then(()=>!0).catch(()=>!1)}async read(){var e;return await this._canUseIndexedDBPromise&&(e=await(async e=>{try{var t=(await Yt()).transaction($t),r=await t.objectStore($t).get(Xt(e));return await t.done,r}catch(e){e instanceof ye?Et.warn(e.message):(t=Lt.create("idb-get",{originalErrorMessage:e?.message}),Et.warn(t.message))}})(this.app))?.heartbeats?e:{heartbeats:[]}}async overwrite(e){var t;if(await this._canUseIndexedDBPromise)return t=await this.read(),Jt(this.app,{lastSentHeartbeatDate:e.lastSentHeartbeatDate??t.lastSentHeartbeatDate,heartbeats:e.heartbeats})}async add(e){var t;if(await this._canUseIndexedDBPromise)return t=await this.read(),Jt(this.app,{lastSentHeartbeatDate:e.lastSentHeartbeatDate??t.lastSentHeartbeatDate,heartbeats:[...t.heartbeats,...e.heartbeats]})}}function rr(e){return z(JSON.stringify({version:2,heartbeats:e})).length}t="",Dt(new u("platform-logger",e=>new bt(e),"PRIVATE")),Dt(new u("heartbeat",e=>new Zt(e),"PRIVATE")),d(It,Tt,t),d(It,Tt,"esm2020"),d("fire-js","");var nr=Object.freeze({__proto__:null,SDK_VERSION:qt,_DEFAULT_ENTRY_NAME:Ct,_addComponent:Rt,_addOrOverwriteComponent:Pt,_apps:kt,_clearComponents:function(){Nt.clear()},_components:Nt,_getProvider:xt,_isFirebaseApp:Ot,_isFirebaseServerApp:h,_isFirebaseServerAppSettings:Mt,_registerComponent:Dt,_removeServiceInstance:function(e,t,r=Ct){xt(e,t).clearInstance(r)},_serverApps:At,deleteApp:zt,getApp:jt,getApps:function(){return Array.from(kt.values())},initializeApp:Bt,initializeServerApp:function(e,t={}){if(("undefined"!=typeof window||he())&&!he())throw Lt.create("invalid-server-app-environment");let r,n=t||{};if(e&&(Ot(e)?r=e.options:Mt(e)?n=e:r=e),void 0===n.automaticDataCollectionEnabled&&(n.automaticDataCollectionEnabled=!0),!(r=r||J()))throw Lt.create("no-options");var i={...n,...r};if(void 0!==i.releaseOnDeref&&delete i.releaseOnDeref,void 0!==n.releaseOnDeref&&"undefined"==typeof FinalizationRegistry)throw Lt.create("finalization-registry-not-supported",{});var i=""+[...JSON.stringify(i)].reduce((e,t)=>Math.imul(31,e)+t.charCodeAt(0)|0,0),s=At.get(i);if(s)s.incRefCount(n.releaseOnDeref);else{var a,o=new Qe(i);for(a of Nt.values())o.addComponent(a);s=new Vt(r,n,i,o),At.set(i,s)}return s},onLog:Kt,registerVersion:d,setLogLevel:Wt,FirebaseError:ye});class ir{constructor(e,t){this._delegate=e,this.firebase=t,Rt(e,new u("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),zt(this._delegate)))}_getService(e,t=Ct){this._delegate.checkDestroyed();var r=this._delegate.container.getProvider(e);return r.isInitialized()||"EXPLICIT"!==r.getComponent()?.instantiationMode||r.initialize(),r.getImmediate({identifier:t})}_removeServiceInstance(e,t=Ct){this._delegate.container.getProvider(e).clearInstance(t)}_addComponent(e){Rt(this._delegate,e)}_addOrOverwriteComponent(e){Pt(this._delegate,e)}toJSON(){return{name:this.name,automaticDataCollectionEnabled:this.automaticDataCollectionEnabled,options:this.options}}}let sr=new we("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 ar(i){let s={},a={__esModule:!0,initializeApp:function(e,t={}){var r=Bt(e,t);if(Ce(s,r.name))return s[r.name];var n=new i(r,a);return s[r.name]=n},app:o,registerVersion:d,setLogLevel:Wt,onLog:Kt,apps:null,SDK_VERSION:qt,INTERNAL:{registerComponent:function(t){let r=t.name,n=r.replace("-compat","");{var e;Dt(t)&&"PUBLIC"===t.type&&(e=(e=o())=>{if("function"!=typeof e[n])throw sr.create("invalid-app-argument",{appName:r});return e[n]()},void 0!==t.serviceProps&&W(e,t.serviceProps),a[n]=e,i.prototype[n]=function(...e){return this._getService.bind(this,r).apply(this,t.multipleInstances?e:[])})}return"PUBLIC"===t.type?a[n]:null},removeApp:function(e){delete s[e]},useAsService:function(e,t){if("serverAuth"===t)return null;var r=t;return r},modularAPIs:nr}};function o(e){if(e=e||Ct,Ce(s,e))return s[e];throw sr.create("no-app",{appName:e})}return a.default=a,Object.defineProperty(a,"apps",{get:function(){return Object.keys(s).map(e=>s[e])}}),o.App=i,a}var or=function e(){let t=ar(ir);return t.INTERNAL={...t.INTERNAL,createFirebaseNamespace:e,extendNamespace:function(e){W(t,e)},createSubscribe:Me,ErrorFactory:we,deepExtend:W},t}(),lr=new tt("@firebase/app-compat");try{var hr=H();void 0!==hr.firebase&&(lr.warn(`
|
|
15
|
+
</defs>`,i.innerText="Preview backend running in this workspace."),i.setAttribute("id",n)}"loading"===document.readyState?window.addEventListener("DOMContentLoaded",r):r()}}function ae(){return"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}function oe(){return"undefined"!=typeof window&&!!(window.cordova||window.phonegap||window.PhoneGap)&&/ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(ae())}function le(){var e=Y()?.forceEnvironment;if("node"===e)return!0;if("browser"===e)return!1;try{return"[object process]"===Object.prototype.toString.call(global.process)}catch(e){return!1}}function he(){return"undefined"!=typeof WorkerGlobalScope&&"undefined"!=typeof self&&self instanceof WorkerGlobalScope}function ue(){var e="object"==typeof chrome?chrome.runtime:"object"==typeof browser?browser.runtime:void 0;return"object"==typeof e&&void 0!==e.id}function ce(){return"object"==typeof navigator&&"ReactNative"===navigator.product}function de(){var e=ae();return 0<=e.indexOf("MSIE ")||0<=e.indexOf("Trident/")}function pe(){return!0===i.NODE_ADMIN}function fe(){return!le()&&navigator.userAgent&&navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome")}function ge(){return!le()&&navigator.userAgent&&(navigator.userAgent.includes("Safari")||navigator.userAgent.includes("WebKit"))&&!navigator.userAgent.includes("Chrome")}function me(){try{return"object"==typeof indexedDB}catch(e){return!1}}function ve(){return new Promise((n,i)=>{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=()=>{i(r.error?.message||"")}}catch(e){i(e)}})}function _e(){return!("undefined"==typeof navigator||!navigator.cookieEnabled)}class ye extends Error{constructor(e,t,r){super(t),this.code=e,this.customData=r,this.name="FirebaseError",Object.setPrototypeOf(this,ye.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,we.prototype.create)}}class we{constructor(e,t,r){this.service=e,this.serviceName=t,this.errors=r}create(e,...t){var n,r=t[0]||{},i=this.service+"/"+e,s=this.errors[e],s=s?(n=r,s.replace(be,(e,t)=>{var r=n[t];return null!=r?String(r):`<${t}?>`})):"Error",s=this.serviceName+`: ${s} (${i}).`;return new ye(i,s,r)}}let be=/\{\$([^}]+)}/g;function Ie(e){return JSON.parse(e)}function Te(e){return JSON.stringify(e)}function Ee(e){let t={},r={},n={},i="";try{var s=e.split(".");t=Ie(K(s[0])||""),r=Ie(K(s[1])||""),i=s[2],n=r.d||{},delete r.d}catch(e){}return{header:t,claims:r,data:n,signature:i}}function Ce(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function Se(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]}function ke(e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}function Ae(e,t,r){var n,i={};for(n in e)Object.prototype.hasOwnProperty.call(e,n)&&(i[n]=t.call(r,e[n],n,e));return i}function Ne(e,t){if(e!==t){var r,n,i=Object.keys(e),s=Object.keys(t);for(r of i){if(!s.includes(r))return!1;var a=e[r],o=t[r];if(Re(a)&&Re(o)){if(!Ne(a,o))return!1}else if(a!==o)return!1}for(n of s)if(!i.includes(n))return!1}return!0}function Re(e){return null!==e&&"object"==typeof e}function Pe(e){let t=[];for(let[r,n]of Object.entries(e))Array.isArray(n)?n.forEach(e=>{t.push(encodeURIComponent(r)+"="+encodeURIComponent(e))}):t.push(encodeURIComponent(r)+"="+encodeURIComponent(n));return t.length?"&"+t.join("&"):""}function De(e){let n={};return e.replace(/^\?/,"").split("&").forEach(e=>{var t,r;e&&([t,r]=e.split("="),n[decodeURIComponent(t)]=decodeURIComponent(r))}),n}function xe(e){var t,r=e.indexOf("?");return r?(t=e.indexOf("#",r),e.substring(r,0<t?t:void 0)):""}class Oe{constructor(){this.chain_=[],this.buf_=[],this.W_=[],this.pad_=[],this.inbuf_=0,this.total_=0,this.blockSize=64,this.pad_[0]=128;for(let e=1;e<this.blockSize;++e)this.pad_[e]=0;this.reset()}reset(){this.chain_[0]=1732584193,this.chain_[1]=4023233417,this.chain_[2]=2562383102,this.chain_[3]=271733878,this.chain_[4]=3285377520,this.inbuf_=0,this.total_=0}compress_(r,n){n=n||0;var i=this.W_;if("string"==typeof r)for(let e=0;e<16;e++)i[e]=r.charCodeAt(n)<<24|r.charCodeAt(n+1)<<16|r.charCodeAt(n+2)<<8|r.charCodeAt(n+3),n+=4;else for(let t=0;t<16;t++)i[t]=r[n]<<24|r[n+1]<<16|r[n+2]<<8|r[n+3],n+=4;for(let d=16;d<80;d++){var e=i[d-3]^i[d-8]^i[d-14]^i[d-16];i[d]=4294967295&(e<<1|e>>>31)}let t=this.chain_[0],s=this.chain_[1],a=this.chain_[2],o=this.chain_[3],l=this.chain_[4],h,u;for(let p=0;p<80;p++){u=p<40?p<20?(h=o^s&(a^o),1518500249):(h=s^a^o,1859775393):p<60?(h=s&a|o&(s|a),2400959708):(h=s^a^o,3395469782);var c=(t<<5|t>>>27)+h+l+u+i[p]&4294967295;l=o,o=a,a=4294967295&(s<<30|s>>>2),s=t,t=c}this.chain_[0]=this.chain_[0]+t&4294967295,this.chain_[1]=this.chain_[1]+s&4294967295,this.chain_[2]=this.chain_[2]+a&4294967295,this.chain_[3]=this.chain_[3]+o&4294967295,this.chain_[4]=this.chain_[4]+l&4294967295}update(r,n){if(null!=r){var i=(n=void 0===n?r.length:n)-this.blockSize;let e=0;var s=this.buf_;let t=this.inbuf_;for(;e<n;){if(0===t)for(;e<=i;)this.compress_(r,e),e+=this.blockSize;if("string"==typeof r){for(;e<n;)if(s[t]=r.charCodeAt(e),++t,++e,t===this.blockSize){this.compress_(s),t=0;break}}else for(;e<n;)if(s[t]=r[e],++t,++e,t===this.blockSize){this.compress_(s),t=0;break}}this.inbuf_=t,this.total_+=n}}digest(){var t=[];let e=8*this.total_;this.inbuf_<56?this.update(this.pad_,56-this.inbuf_):this.update(this.pad_,this.blockSize-(this.inbuf_-56));for(let n=this.blockSize-1;56<=n;n--)this.buf_[n]=255&e,e/=256;this.compress_(this.buf_);let r=0;for(let i=0;i<5;i++)for(let e=24;0<=e;e-=8)t[r]=this.chain_[i]>>e&255,++r;return t}}function Me(e,t){var r=new Le(e,t);return r.subscribe.bind(r)}class Le{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=Fe),void 0===n.error&&(n.error=Fe),void 0===n.complete&&(n.complete=Fe);var i=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),i}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 Fe(){}function l(e,t,r,n){let i;var s;if(n<t?i="at least "+t:r<n&&(i=0===r?"none":"no more than "+r),i)throw s=e+" failed: Was called with "+n+(1===n?" argument.":" arguments.")+" Expects "+i+".",new Error(s)}function Ue(e,t){return e+` failed: ${t} argument `}function Ve(e,t,r,n){if((!n||r)&&"function"!=typeof r)throw new Error(Ue(e,t)+"must be a valid function.")}function qe(e,t,r,n){if((!n||r)&&("object"!=typeof r||null===r))throw new Error(Ue(e,t)+"must be a valid context object.")}let Be=function(e){let t=0;for(let n=0;n<e.length;n++){var r=e.charCodeAt(n);r<128?t++:r<2048?t+=2:55296<=r&&r<=56319?(t+=4,n++):t+=3}return t},je=1e3,ze=2,Ke=144e5,We=.5;function He(e,t=je,r=ze){var n=t*Math.pow(r,e),i=Math.round(We*n*(Math.random()-.5)*2);return Math.min(Ke,n+i)}function w(e){return e&&e._delegate?e._delegate:e}class u{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 Ge="[DEFAULT]";class $e{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 Z;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(e?.identifier),r=e?.optional??!1;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:Ge})}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=Ge){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=Ge){return this.instances.has(e)}getOptions(e=Ge){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,i,s=this.getOrInitializeService({instanceIdentifier:r,options:t});for([n,i]of this.instancesDeferred.entries())r===this.normalizeInstanceIdentifier(n)&&i.resolve(s);return s}onInit(e,t){var r=this.normalizeInstanceIdentifier(t);let n=this.onInitCallbacks.get(r)??new Set;n.add(e),this.onInitCallbacks.set(r,n);var i=this.instances.get(r);return i&&e(i,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{}}getOrInitializeService({instanceIdentifier:e,options:t={}}){let r=this.instances.get(e);if(!r&&this.component&&(r=this.component.instanceFactory(this.container,{instanceIdentifier:(n=e)===Ge?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{}var n;return r||null}normalizeInstanceIdentifier(e=Ge){return!this.component||this.component.multipleInstances?e:Ge}shouldAutoInitialize(){return!!this.component&&"EXPLICIT"!==this.component.instantiationMode}}class Qe{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 $e(e,this),this.providers.set(e,t),t)}getProviders(){return Array.from(this.providers.values())}}let Ye=[],Je=((t=c=c||{})[t.DEBUG=0]="DEBUG",t[t.VERBOSE=1]="VERBOSE",t[t.INFO=2]="INFO",t[t.WARN=3]="WARN",t[t.ERROR=4]="ERROR",t[t.SILENT=5]="SILENT",{debug:c.DEBUG,verbose:c.VERBOSE,info:c.INFO,warn:c.WARN,error:c.ERROR,silent:c.SILENT}),Xe=c.INFO,Ze={[c.DEBUG]:"log",[c.VERBOSE]:"log",[c.INFO]:"info",[c.WARN]:"warn",[c.ERROR]:"error"},et=(e,t,...r)=>{if(!(t<e.logLevel)){var n=(new Date).toISOString(),i=Ze[t];if(!i)throw new Error(`Attempted to log a message with an invalid logType (value: ${t})`);console[i](`[${n}] ${e.name}:`,...r)}};class tt{constructor(e){this.name=e,this._logLevel=Xe,this._logHandler=et,this._userLogHandler=null,Ye.push(this)}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in c))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?Je[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,c.DEBUG,...e),this._logHandler(this,c.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,c.VERBOSE,...e),this._logHandler(this,c.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,c.INFO,...e),this._logHandler(this,c.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,c.WARN,...e),this._logHandler(this,c.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,c.ERROR,...e),this._logHandler(this,c.ERROR,...e)}}let rt=(t,e)=>e.some(e=>t instanceof e),nt,it;let st=new WeakMap,at=new WeakMap,ot=new WeakMap,lt=new WeakMap,ht=new WeakMap;let ut={get(e,t,r){if(e instanceof IDBTransaction){if("done"===t)return at.get(e);if("objectStoreNames"===t)return e.objectStoreNames||ot.get(e);if("store"===t)return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return pt(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 ct(n){return n!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(it=it||[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey]).includes(n)?function(...e){return n.apply(ft(this),e),pt(st.get(this))}:function(...e){return pt(n.apply(ft(this),e))}:function(e,...t){var r=n.call(ft(this),e,...t);return ot.set(r,e.sort?e.sort():[e]),pt(r)}}function dt(e){var s,t;return"function"==typeof e?ct(e):(e instanceof IDBTransaction&&(s=e,at.has(s)||(t=new Promise((e,t)=>{let r=()=>{s.removeEventListener("complete",n),s.removeEventListener("error",i),s.removeEventListener("abort",i)},n=()=>{e(),r()},i=()=>{t(s.error||new DOMException("AbortError","AbortError")),r()};s.addEventListener("complete",n),s.addEventListener("error",i),s.addEventListener("abort",i)}),at.set(s,t))),rt(e,nt=nt||[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])?new Proxy(e,ut):e)}function pt(e){var s,t;return e instanceof IDBRequest?(s=e,(t=new Promise((e,t)=>{let r=()=>{s.removeEventListener("success",n),s.removeEventListener("error",i)},n=()=>{e(pt(s.result)),r()},i=()=>{t(s.error),r()};s.addEventListener("success",n),s.addEventListener("error",i)})).then(e=>{e instanceof IDBCursor&&st.set(e,s)}).catch(()=>{}),ht.set(t,s),t):lt.has(e)?lt.get(e):((t=dt(e))!==e&&(lt.set(e,t),ht.set(t,e)),t)}let ft=e=>ht.get(e);function gt(e,t,{blocked:r,upgrade:n,blocking:i,terminated:s}={}){let a=indexedDB.open(e,t);var o=pt(a);return n&&a.addEventListener("upgradeneeded",e=>{n(pt(a.result),e.oldVersion,e.newVersion,pt(a.transaction),e)}),r&&a.addEventListener("blocked",e=>r(e.oldVersion,e.newVersion,e)),o.then(e=>{s&&e.addEventListener("close",()=>s()),i&&e.addEventListener("versionchange",e=>i(e.oldVersion,e.newVersion,e))}).catch(()=>{}),o}function mt(e,{blocked:t}={}){var r=indexedDB.deleteDatabase(e);return t&&r.addEventListener("blocked",e=>t(e.oldVersion,e)),pt(r).then(()=>{})}let vt=["get","getKey","getAll","getAllKeys","count"],_t=["put","add","delete","clear"],yt=new Map;function wt(e,t){if(e instanceof IDBDatabase&&!(t in e)&&"string"==typeof t){if(yt.get(t))return yt.get(t);let i=t.replace(/FromIndex$/,""),s=t!==i,a=_t.includes(i);var r;return i in(s?IDBIndex:IDBObjectStore).prototype&&(a||vt.includes(i))?(r=async function(e,...t){var r=this.transaction(e,a?"readwrite":"readonly");let n=r.store;return s&&(n=n.index(t.shift())),(await Promise.all([n[i](...t),a&&r.done]))[0]},yt.set(t,r),r):void 0}}ut={...X=ut,get:(e,t,r)=>wt(e,t)||X.get(e,t,r),has:(e,t)=>!!wt(e,t)||X.has(e,t)};class bt{constructor(e){this.container=e}getPlatformInfoString(){return this.container.getProviders().map(e=>{var t;return"VERSION"===e.getComponent()?.type?(t=e.getImmediate()).library+"/"+t.version:null}).filter(e=>e).join(" ")}}let It="@firebase/app",Tt="0.14.2",Et=new tt("@firebase/app");let Ct="[DEFAULT]",St={"@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/ai":"fire-vertex","fire-js":"fire-js",firebase:"fire-js-all"},kt=new Map,At=new Map,Nt=new Map;function Rt(t,r){try{t.container.addComponent(r)}catch(e){Et.debug(`Component ${r.name} failed to register with FirebaseApp `+t.name,e)}}function Pt(e,t){e.container.addOrOverwriteComponent(t)}function Dt(e){var t,r,n=e.name;if(Nt.has(n))return Et.debug(`There were multiple attempts to register component ${n}.`),!1;Nt.set(n,e);for(t of kt.values())Rt(t,e);for(r of At.values())Rt(r,e);return!0}function xt(e,t){var r=e.container.getProvider("heartbeat").getImmediate({optional:!0});return r&&r.triggerHeartbeat(),e.container.getProvider(t)}function Ot(e){return void 0!==e.options}function Mt(e){return!Ot(e)&&("authIdToken"in e||"appCheckToken"in e||"releaseOnDeref"in e||"automaticDataCollectionEnabled"in e)}function h(e){return null!=e&&void 0!==e.settings}let Lt=new we("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 Ft{constructor(e,t,r){this._isDeleted=!1,this._options={...e},this._config={...t},this._name=t.name,this._automaticDataCollectionEnabled=t.automaticDataCollectionEnabled,this._container=r,this.container.addComponent(new u("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 Lt.create("app-deleted",{appName:this._name})}}function Ut(e,t){var r=K(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 Vt extends Ft{constructor(e,t,r,n){var i=void 0===t.automaticDataCollectionEnabled||t.automaticDataCollectionEnabled,s={name:r,automaticDataCollectionEnabled:i};void 0!==e.apiKey?super(e,s,n):super(e.options,s,n),this._serverConfig={automaticDataCollectionEnabled:i,...t},this._serverConfig.authIdToken&&Ut(this._serverConfig.authIdToken,"authIdToken"),this._serverConfig.appCheckToken&&Ut(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,d(It,Tt,"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(){zt(this)}get settings(){return this.checkDestroyed(),this._serverConfig}checkDestroyed(){if(this.isDeleted)throw Lt.create("server-app-deleted")}}let qt="12.2.1";function Bt(e,t={}){let r=e;if("object"!=typeof t){let e=t;t={name:e}}var n={name:Ct,automaticDataCollectionEnabled:!0,...t};let i=n.name;if("string"!=typeof i||!i)throw Lt.create("bad-app-name",{appName:String(i)});if(!(r=r||J()))throw Lt.create("no-options");var s=kt.get(i);if(s){if(Ne(r,s.options)&&Ne(n,s.config))return s;throw Lt.create("duplicate-app",{appName:i})}var a,o=new Qe(i);for(a of Nt.values())o.addComponent(a);s=new Ft(r,n,o);return kt.set(i,s),s}function jt(e=Ct){var t=kt.get(e);if(!t&&e===Ct&&J())return Bt();if(t)return t;throw Lt.create("no-app",{appName:e})}async function zt(e){let t=!1;var r=e.name;kt.has(r)?(t=!0,kt.delete(r)):At.has(r)&&e.decRefCount()<=0&&(At.delete(r),t=!0),t&&(await Promise.all(e.container.getProviders().map(e=>e.delete())),e.isDeleted=!0)}function d(e,t,r){let n=St[e]??e;r&&(n+="-"+r);var i,s=n.match(/\s|\//),a=t.match(/\s|\//);s||a?(i=[`Unable to register library "${n}" with version "${t}":`],s&&i.push(`library name "${n}" contains illegal characters (whitespace or "/")`),s&&a&&i.push("and"),a&&i.push(`version name "${t}" contains illegal characters (whitespace or "/")`),Et.warn(i.join(" "))):Dt(new u(n+"-version",()=>({library:n,version:t}),"VERSION"))}function Kt(e,t){if(null!==e&&"function"!=typeof e)throw Lt.create("invalid-log-argument");var r,s=e,n=t;for(r of Ye){let i=null;n&&n.level&&(i=Je[n.level]),r.userLogHandler=null===s?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>=(i??e.logLevel)&&s({level:c[t].toLowerCase(),message:n,args:r,type:e.name})}}}function Wt(e){var t;t=e,Ye.forEach(e=>{e.setLogLevel(t)})}let Ht="firebase-heartbeat-database",Gt=1,$t="firebase-heartbeat-store",Qt=null;function Yt(){return Qt=Qt||gt(Ht,Gt,{upgrade:(e,t)=>{if(0===t)try{e.createObjectStore($t)}catch(e){console.warn(e)}}}).catch(e=>{throw Lt.create("idb-open",{originalErrorMessage:e.message})})}async function Jt(e,t){try{var r=(await Yt()).transaction($t,"readwrite");await r.objectStore($t).put(t,Xt(e)),await r.done}catch(e){e instanceof ye?Et.warn(e.message):(r=Lt.create("idb-set",{originalErrorMessage:e?.message}),Et.warn(r.message))}}function Xt(e){return e.name+"!"+e.options.appId}class Zt{constructor(e){this.container=e,this._heartbeatsCache=null;var t=this.container.getProvider("app").getImmediate();this._storage=new tr(t),this._heartbeatsCachePromise=this._storage.read().then(e=>this._heartbeatsCache=e)}async triggerHeartbeat(){try{var e,r=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString();let t=er();if(null!=this._heartbeatsCache?.heartbeats||(this._heartbeatsCache=await this._heartbeatsCachePromise,null!=this._heartbeatsCache?.heartbeats))if(this._heartbeatsCache.lastSentHeartbeatDate!==t&&!this._heartbeatsCache.heartbeats.some(e=>e.date===t))return this._heartbeatsCache.heartbeats.push({date:t,agent:r}),30<this._heartbeatsCache.heartbeats.length&&(e=(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(e,1)),this._storage.overwrite(this._heartbeatsCache)}catch(e){Et.warn(e)}}async getHeartbeatsHeader(){try{var e,t,r,n;return(null===this._heartbeatsCache&&await this._heartbeatsCachePromise,null==this._heartbeatsCache?.heartbeats||0===this._heartbeatsCache.heartbeats.length)?"":(e=er(),{heartbeatsToSend:t,unsentEntries:r}=((e,t=1024)=>{let r=[],n=e.slice();for(let s of e){var i=r.find(e=>e.agent===s.agent);if(i){if(i.dates.push(s.date),rr(r)>t){i.dates.pop();break}}else if(r.push({agent:s.agent,dates:[s.date]}),rr(r)>t){r.pop();break}n=n.slice(1)}return{heartbeatsToSend:r,unsentEntries:n}})(this._heartbeatsCache.heartbeats),n=z(JSON.stringify({version:2,heartbeats:t})),this._heartbeatsCache.lastSentHeartbeatDate=e,0<r.length?(this._heartbeatsCache.heartbeats=r,await this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),n)}catch(e){return Et.warn(e),""}}}function er(){return(new Date).toISOString().substring(0,10)}class tr{constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return!!me()&&ve().then(()=>!0).catch(()=>!1)}async read(){var e;return await this._canUseIndexedDBPromise&&(e=await(async e=>{try{var t=(await Yt()).transaction($t),r=await t.objectStore($t).get(Xt(e));return await t.done,r}catch(e){e instanceof ye?Et.warn(e.message):(t=Lt.create("idb-get",{originalErrorMessage:e?.message}),Et.warn(t.message))}})(this.app))?.heartbeats?e:{heartbeats:[]}}async overwrite(e){var t;if(await this._canUseIndexedDBPromise)return t=await this.read(),Jt(this.app,{lastSentHeartbeatDate:e.lastSentHeartbeatDate??t.lastSentHeartbeatDate,heartbeats:e.heartbeats})}async add(e){var t;if(await this._canUseIndexedDBPromise)return t=await this.read(),Jt(this.app,{lastSentHeartbeatDate:e.lastSentHeartbeatDate??t.lastSentHeartbeatDate,heartbeats:[...t.heartbeats,...e.heartbeats]})}}function rr(e){return z(JSON.stringify({version:2,heartbeats:e})).length}t="",Dt(new u("platform-logger",e=>new bt(e),"PRIVATE")),Dt(new u("heartbeat",e=>new Zt(e),"PRIVATE")),d(It,Tt,t),d(It,Tt,"esm2020"),d("fire-js","");var nr=Object.freeze({__proto__:null,SDK_VERSION:qt,_DEFAULT_ENTRY_NAME:Ct,_addComponent:Rt,_addOrOverwriteComponent:Pt,_apps:kt,_clearComponents:function(){Nt.clear()},_components:Nt,_getProvider:xt,_isFirebaseApp:Ot,_isFirebaseServerApp:h,_isFirebaseServerAppSettings:Mt,_registerComponent:Dt,_removeServiceInstance:function(e,t,r=Ct){xt(e,t).clearInstance(r)},_serverApps:At,deleteApp:zt,getApp:jt,getApps:function(){return Array.from(kt.values())},initializeApp:Bt,initializeServerApp:function(e,t={}){if(("undefined"!=typeof window||he())&&!he())throw Lt.create("invalid-server-app-environment");let r,n=t||{};if(e&&(Ot(e)?r=e.options:Mt(e)?n=e:r=e),void 0===n.automaticDataCollectionEnabled&&(n.automaticDataCollectionEnabled=!0),!(r=r||J()))throw Lt.create("no-options");var i={...n,...r};if(void 0!==i.releaseOnDeref&&delete i.releaseOnDeref,void 0!==n.releaseOnDeref&&"undefined"==typeof FinalizationRegistry)throw Lt.create("finalization-registry-not-supported",{});var i=""+[...JSON.stringify(i)].reduce((e,t)=>Math.imul(31,e)+t.charCodeAt(0)|0,0),s=At.get(i);if(s)s.incRefCount(n.releaseOnDeref);else{var a,o=new Qe(i);for(a of Nt.values())o.addComponent(a);s=new Vt(r,n,i,o),At.set(i,s)}return s},onLog:Kt,registerVersion:d,setLogLevel:Wt,FirebaseError:ye});class ir{constructor(e,t){this._delegate=e,this.firebase=t,Rt(e,new u("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),zt(this._delegate)))}_getService(e,t=Ct){this._delegate.checkDestroyed();var r=this._delegate.container.getProvider(e);return r.isInitialized()||"EXPLICIT"!==r.getComponent()?.instantiationMode||r.initialize(),r.getImmediate({identifier:t})}_removeServiceInstance(e,t=Ct){this._delegate.container.getProvider(e).clearInstance(t)}_addComponent(e){Rt(this._delegate,e)}_addOrOverwriteComponent(e){Pt(this._delegate,e)}toJSON(){return{name:this.name,automaticDataCollectionEnabled:this.automaticDataCollectionEnabled,options:this.options}}}let sr=new we("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 ar(i){let s={},a={__esModule:!0,initializeApp:function(e,t={}){var r=Bt(e,t);if(Ce(s,r.name))return s[r.name];var n=new i(r,a);return s[r.name]=n},app:o,registerVersion:d,setLogLevel:Wt,onLog:Kt,apps:null,SDK_VERSION:qt,INTERNAL:{registerComponent:function(t){let r=t.name,n=r.replace("-compat","");{var e;Dt(t)&&"PUBLIC"===t.type&&(e=(e=o())=>{if("function"!=typeof e[n])throw sr.create("invalid-app-argument",{appName:r});return e[n]()},void 0!==t.serviceProps&&W(e,t.serviceProps),a[n]=e,i.prototype[n]=function(...e){return this._getService.bind(this,r).apply(this,t.multipleInstances?e:[])})}return"PUBLIC"===t.type?a[n]:null},removeApp:function(e){delete s[e]},useAsService:function(e,t){if("serverAuth"===t)return null;var r=t;return r},modularAPIs:nr}};function o(e){if(e=e||Ct,Ce(s,e))return s[e];throw sr.create("no-app",{appName:e})}return a.default=a,Object.defineProperty(a,"apps",{get:function(){return Object.keys(s).map(e=>s[e])}}),o.App=i,a}var or=function e(){let t=ar(ir);return t.INTERNAL={...t.INTERNAL,createFirebaseNamespace:e,extendNamespace:function(e){W(t,e)},createSubscribe:Me,ErrorFactory:we,deepExtend:W},t}(),lr=new tt("@firebase/app-compat");try{var hr=H();void 0!==hr.firebase&&(lr.warn(`
|
|
16
16
|
Warning: Firebase is already defined in the global scope. Please make sure
|
|
17
17
|
Firebase library is only loaded once.
|
|
18
18
|
`),cr=hr.firebase.SDK_VERSION)&&0<=cr.indexOf("LITE")&&lr.warn(`
|
|
19
19
|
Warning: You are trying to load Firebase while using Firebase Performance standalone script.
|
|
20
20
|
You should load Firebase Performance with this instance of Firebase to avoid loading duplicate code.
|
|
21
|
-
`)}catch{}let ur=or;d("@firebase/app-compat","0.5.2",void 0);ur.registerVersion("firebase","12.2.0","app-compat");var hr="@firebase/installations",cr="0.6.19";let dr=1e4,pr="w:"+cr,fr="FIS_v2",gr="https://firebaseinstallations.googleapis.com/v1",mr=36e5;let vr=new we("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 _r(e){return e instanceof ye&&e.code.includes("request-failed")}function yr({projectId:e}){return gr+`/projects/${e}/installations`}function wr(e){return{token:e.token,requestStatus:2,expiresIn:Number(e.expiresIn.replace("s","000")),creationTime:Date.now()}}async function br(e,t){var r=(await t.json()).error;return vr.create("request-failed",{requestName:e,serverCode:r.code,serverMessage:r.message,serverStatus:r.status})}function Ir({apiKey:e}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e})}function Tr(e,{refreshToken:t}){var r=Ir(e);return r.append("Authorization",(e=t,fr+" "+e)),r}async function Er(e){var t=await e();return 500<=t.status&&t.status<600?e():t}function Cr(t){return new Promise(e=>{setTimeout(e,t)})}let Sr=/^[cdef][\w-]{21}$/,kr="";function Ar(){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 Sr.test(t)?t:kr}catch{return kr}}function Nr(e){return e.appName+"!"+e.appId}let Rr=new Map;function Pr(e,t){var r=Nr(e),e=(Dr(r,t),r),r=(()=>(!xr&&"BroadcastChannel"in self&&((xr=new BroadcastChannel("[Firebase] FID Change")).onmessage=e=>{Dr(e.data.key,e.data.fid)}),xr))();r&&r.postMessage({key:e,fid:t}),0===Rr.size&&xr&&(xr.close(),xr=null)}function Dr(e,t){var r=Rr.get(e);if(r)for(var n of r)n(t)}let xr=null;let Or="firebase-installations-database",Mr=1,Lr="firebase-installations-store",Fr=null;function Ur(){return Fr=Fr||gt(Or,Mr,{upgrade:(e,t)=>{0===t&&e.createObjectStore(Lr)}})}async function Vr(e,t){var r=Nr(e),n=(await Ur()).transaction(Lr,"readwrite"),i=n.objectStore(Lr),s=await i.get(r);return await i.put(t,r),await n.done,s&&s.fid===t.fid||Pr(e,t.fid),t}async function qr(e){var t=Nr(e),r=(await Ur()).transaction(Lr,"readwrite");await r.objectStore(Lr).delete(t),await r.done}async function Br(e,t){var r=Nr(e),n=(await Ur()).transaction(Lr,"readwrite"),i=n.objectStore(Lr),s=await i.get(r),a=t(s);return void 0===a?await i.delete(r):await i.put(a,r),await n.done,!a||s&&s.fid===a.fid||Pr(e,a.fid),a}async function jr(r){let n;var e=await Br(r.appConfig,e=>{var t=Kr(e||{fid:Ar(),registrationStatus:0}),t=((e,t)=>{var r,n;return 0===t.registrationStatus?navigator.onLine?(r={fid:t.fid,registrationStatus:1,registrationTime:Date.now()},n=(async(t,r)=>{try{var e=await(async({appConfig:e,heartbeatServiceProvider:t},{fid:r})=>{let n=yr(e);var i=Ir(e),s=((s=t.getImmediate({optional:!0}))&&(s=await s.getHeartbeatsHeader())&&i.append("x-firebase-client",s),{fid:r,authVersion:fr,appId:e.appId,sdkVersion:pr});let a={method:"POST",headers:i,body:JSON.stringify(s)};if((i=await Er(()=>fetch(n,a))).ok)return{fid:(s=await i.json()).fid||r,registrationStatus:2,refreshToken:s.refreshToken,authToken:wr(s.authToken)};throw await br("Create Installation",i)})(t,r);return Vr(t.appConfig,e)}catch(e){throw _r(e)&&409===e.customData.serverCode?await qr(t.appConfig):await Vr(t.appConfig,{fid:r.fid,registrationStatus:0}),e}})(e,r),{installationEntry:r,registrationPromise:n}):(r=Promise.reject(vr.create("app-offline")),{installationEntry:t,registrationPromise:r}):1===t.registrationStatus?{installationEntry:t,registrationPromise:(async e=>{let t=await zr(e.appConfig);for(;1===t.registrationStatus;)await Cr(100),t=await zr(e.appConfig);var r,n;return 0!==t.registrationStatus?t:({installationEntry:r,registrationPromise:n}=await jr(e),n||r)})(e)}:{installationEntry:t}})(r,t);return n=t.registrationPromise,t.installationEntry});return e.fid===kr?{installationEntry:await n}:{installationEntry:e,registrationPromise:n}}function zr(e){return Br(e,e=>{if(e)return Kr(e);throw vr.create("installation-not-found")})}function Kr(e){var t;return 1===(t=e).registrationStatus&&t.registrationTime+dr<Date.now()?{fid:e.fid,registrationStatus:0}:e}async function Wr({appConfig:e,heartbeatServiceProvider:t},r){[i,s]=[e,r.fid];let n=yr(i)+`/${s}/authTokens:generate`;var i,s,a=Tr(e,r),o=t.getImmediate({optional:!0}),o=(o&&(o=await o.getHeartbeatsHeader())&&a.append("x-firebase-client",o),{installation:{sdkVersion:pr,appId:e.appId}});let l={method:"POST",headers:a,body:JSON.stringify(o)};a=await Er(()=>fetch(n,l));if(a.ok)return wr(await a.json());throw await br("Generate Auth Token",a)}async function Hr(n,i=!1){let s;var e=await Br(n.appConfig,e=>{if(!$r(e))throw vr.create("not-registered");var t,r=e.authToken;if(i||2!==(t=r).requestStatus||(e=>{var t=Date.now();return t<e.creationTime||e.creationTime+e.expiresIn<t+mr})(t)){if(1===r.requestStatus)return s=(async(e,t)=>{let r=await Gr(e.appConfig);for(;1===r.authToken.requestStatus;)await Cr(100),r=await Gr(e.appConfig);var n=r.authToken;return 0===n.requestStatus?Hr(e,t):n})(n,i),e;if(navigator.onLine)return t=e,r={requestStatus:1,requestTime:Date.now()},r={...t,authToken:r},s=(async(t,r)=>{try{var e=await Wr(t,r),n={...r,authToken:e};return await Vr(t.appConfig,n),e}catch(e){var i;throw!_r(e)||401!==e.customData.serverCode&&404!==e.customData.serverCode?(i={...r,authToken:{requestStatus:0}},await Vr(t.appConfig,i)):await qr(t.appConfig),e}})(n,r),r;throw vr.create("app-offline")}return e});return s?await s:e.authToken}function Gr(e){return Br(e,e=>{var t,r;if($r(e))return t=e.authToken,1===(r=t).requestStatus&&r.requestTime+dr<Date.now()?{...e,authToken:{requestStatus:0}}:e;throw vr.create("not-registered")})}function $r(e){return void 0!==e&&2===e.registrationStatus}async function Qr(e,t=!1){var r=e,n=(await(!(n=(await jr(r)).registrationPromise)||!await n),await Hr(r,t));return n.token}function Yr(e){return vr.create("missing-app-config-values",{valueName:e})}let Jr="installations",Xr=e=>{var t=e.getProvider("app").getImmediate();return{app:t,appConfig:(e=>{if(!e||!e.options)throw Yr("App Configuration");if(!e.name)throw Yr("App Name");var t;for(t of["projectId","apiKey","appId"])if(!e.options[t])throw Yr(t);return{appName:e.name,projectId:e.options.projectId,apiKey:e.options.apiKey,appId:e.options.appId}})(t),heartbeatServiceProvider:xt(t,"heartbeat"),_delete:()=>Promise.resolve()}},Zr=e=>{let t=xt(e.getProvider("app").getImmediate(),Jr).getImmediate();return{getId:()=>(async e=>{var t=e,{installationEntry:r,registrationPromise:n}=await jr(t);return(n||Hr(t)).catch(console.error),r.fid})(t),getToken:e=>Qr(t,e)}};Dt(new u(Jr,Xr,"PUBLIC")),Dt(new u("installations-internal",Zr,"PRIVATE")),d(hr,cr),d(hr,cr,"esm2020");let en="analytics",tn="firebase_id",rn="origin",nn=6e4,sn="https://firebase.googleapis.com/v1alpha/projects/-/apps/{app-id}/webConfig",an="https://www.googletagmanager.com/gtag/js",on=new tt("@firebase/analytics"),ln=new we("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 hn(e){var t;return e.startsWith(an)?e:(t=ln.create("invalid-gtag-resource",{gtagURL:e}),on.warn(t.message),"")}function un(e){return Promise.all(e.map(e=>e.catch(e=>e)))}function cn(e,t){var r=((e,t)=>{let r;return r=window.trustedTypes?window.trustedTypes.createPolicy(e,t):r})("firebase-js-sdk-policy",{createScriptURL:hn}),n=document.createElement("script"),i=an+`?l=${e}&id=`+t;n.src=r?r?.createScriptURL(i):i,n.async=!0,document.head.appendChild(n)}function dn(k,A,N,R){return async function(e,...t){try{if("event"===e){var[r,n]=t,i=k,s=A,a=N,o=r,l=n;try{let r=[];if(l&&l.send_to){let e=l.send_to;Array.isArray(e)||(e=[e]);var h=await un(a);for(let t of e){var u=h.find(e=>e.measurementId===t),c=u&&s[u.appId];if(!c){r=[];break}r.push(c)}}0===r.length&&(r=Object.values(s)),await Promise.all(r),i("event",o,l||{})}catch(e){on.error(e)}}else if("config"===e){var d,[p,f]=t,g=k,m=A,v=N,_=p,y=f,w=R[_];try{w?await m[w]:(d=(await un(v)).find(e=>e.measurementId===_))&&await m[d.appId]}catch(e){on.error(e)}g("config",_,y)}else{var b,I,T,E,C,S;"consent"===e?([b,I]=t,k("consent",b,I)):"get"===e?([T,E,C]=t,k("get",T,E,C)):"set"===e?([S]=t,k("set",S)):k(e,...t)}}catch(e){on.error(e)}}}let pn=30;let fn=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 gn(e){var{appId:t,apiKey:r}=e,r={method:"GET",headers:new Headers({Accept:"application/json","x-goog-api-key":r})},t=sn.replace("{app-id}",t),t=await fetch(t,r);if(200===t.status||304===t.status)return t.json();{let e="";try{var n=await t.json();n.error?.message&&(e=n.error.message)}catch(e){}throw ln.create("config-fetch-failed",{httpStatus:t.status,responseMessage:e})}}async function mn(e,t=fn,r){var{appId:n,apiKey:i,measurementId:s}=e.options;if(!n)throw ln.create("no-app-id");if(!i){if(s)return{measurementId:s,appId:n};throw ln.create("no-api-key")}var a=t.getThrottleMetadata(n)||{backoffCount:0,throttleEndTimeMillis:Date.now()};let o=new yn;return setTimeout(async()=>{o.abort()},void 0!==r?r:nn),async function i(s,{throttleEndTimeMillis:e,backoffCount:a},o,l=fn){let{appId:h,measurementId:u}=s;try{await vn(o,e)}catch(e){if(u)return on.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. [${e?.message}]`),{appId:h,measurementId:u};throw e}try{let e=await gn(s);return l.deleteThrottleMetadata(h),e}catch(e){let t=e;if(!_n(t)){if(l.deleteThrottleMetadata(h),u)return on.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. [${t?.message}]`),{appId:h,measurementId:u};throw e}let r=503===Number(t?.customData?.httpStatus)?He(a,l.intervalMillis,pn):He(a,l.intervalMillis),n={throttleEndTimeMillis:Date.now()+r,backoffCount:a+1};return l.setThrottleMetadata(h,n),on.debug(`Calling attemptFetch again in ${r} millis`),i(s,n,o,l)}}({appId:n,apiKey:i,measurementId:s},a,o,t)}function vn(i,s){return new Promise((e,t)=>{var r=Math.max(s-Date.now(),0);let n=setTimeout(e,r);i.addEventListener(()=>{clearTimeout(n),t(ln.create("fetch-throttle",{throttleEndTimeMillis:s}))})})}function _n(e){var t;return!!(e instanceof ye&&e.customData)&&(429===(t=Number(e.customData.httpStatus))||500===t||503===t||504===t)}class yn{constructor(){this.listeners=[]}addEventListener(e){this.listeners.push(e)}abort(){this.listeners.forEach(e=>e())}}async function wn(t,e,r,n,i,s,a){var o=mn(t),l=(o.then(e=>{r[e.measurementId]=e.appId,t.options.measurementId&&e.measurementId!==t.options.measurementId&&on.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=>on.error(e)),e.push(o),(async()=>{if(!me())return on.warn(ln.create("indexeddb-unavailable",{errorInfo:"IndexedDB is not available in this environment."}).message),!1;try{await ve()}catch(e){return on.warn(ln.create("indexeddb-unavailable",{errorInfo:e?.toString()}).message),!1}return!0})().then(e=>{if(e)return n.getId()})),[o,l]=await Promise.all([o,l]),h=((e=>{var t,r=window.document.getElementsByTagName("script");for(t of Object.values(r))if(t.src&&t.src.includes(an)&&t.src.includes(e))return t})(s)||cn(s,o.measurementId),i("js",new Date),a?.config??{});return h[rn]="firebase",h.update=!0,null!=l&&(h[tn]=l),i("config",o.measurementId,h),o.measurementId}class bn{constructor(e){this.app=e}_delete(){return delete In[this.app.options.appId],Promise.resolve()}}let In={},Tn=[],En={},Cn="dataLayer",Sn="gtag",kn,An,Nn=!1;function Rn(e){if(Nn)throw ln.create("already-initialized");e.dataLayerName&&(Cn=e.dataLayerName),e.gtagName&&(Sn=e.gtagName)}function Pn(e,t,r){n=[],ue()&&n.push("This is a browser extension environment."),_e()||n.push("Cookies are not available."),0<n.length&&(n=n.map((e,t)=>`(${t+1}) `+e).join(" "),n=ln.create("invalid-analytics-context",{errorInfo:n}),on.warn(n.message));var n=e.options.appId;if(!n)throw ln.create("no-app-id");if(!e.options.apiKey){if(!e.options.measurementId)throw ln.create("no-api-key");on.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!=In[n])throw ln.create("already-exists",{id:n});if(!Nn){{var i=Cn;let e=[];Array.isArray(window[i])?e=window[i]:window[i]=e,e}var{wrappedGtag:s,gtagCore:a}=((e,t,r,n,i)=>{let s=function(){window[n].push(arguments)};return window[i]&&"function"==typeof window[i]&&(s=window[i]),window[i]=dn(s,e,t,r),{gtagCore:s,wrappedGtag:window[i]}})(In,Tn,En,Cn,Sn);An=s,kn=a,Nn=!0}return In[n]=wn(e,Tn,En,t,kn,Cn,r),new bn(e)}async function Dn(){if(ue())return!1;if(!_e())return!1;if(!me())return!1;try{return await ve()}catch(e){return!1}}function xn(e,t,r){e=w(e),(async(e,t,r,n)=>{if(n&&n.global)return e("set",{screen_name:r}),Promise.resolve();e("config",await t,{update:!0,screen_name:r})})(An,In[e.app.options.appId],t,r).catch(e=>on.error(e))}function On(e,t,r){e=w(e),(async(e,t,r,n)=>{if(n&&n.global)return e("set",{user_id:r}),Promise.resolve();e("config",await t,{update:!0,user_id:r})})(An,In[e.app.options.appId],t,r).catch(e=>on.error(e))}function Mn(e,t,r){e=w(e),(async(e,t,r,n)=>{if(n&&n.global){var i,s={};for(i of Object.keys(r))s["user_properties."+i]=r[i];return e("set",s),Promise.resolve()}e("config",await t,{update:!0,user_properties:r})})(An,In[e.app.options.appId],t,r).catch(e=>on.error(e))}function Ln(e,t){e=w(e),(async(e,t)=>{var r=await e;window["ga-disable-"+r]=!t})(In[e.app.options.appId],t).catch(e=>on.error(e))}function Fn(e,t,r,n){e=w(e),(async(e,t,r,n,i)=>{var s;i&&i.global?e("event",r,n):(s=await t,e("event",r,{...n,send_to:s}))})(An,In[e.app.options.appId],t,r,n).catch(e=>on.error(e))}let Un="@firebase/analytics",Vn="0.10.18";Dt(new u(en,(e,{options:t})=>Pn(e.getProvider("app").getImmediate(),e.getProvider("installations-internal").getImmediate(),t),"PUBLIC")),Dt(new u("analytics-internal",function(e){try{let n=e.getProvider(en).getImmediate();return{logEvent:(e,t,r)=>Fn(n,e,t,r)}}catch(e){throw ln.create("interop-component-reg-failed",{reason:e})}},"PRIVATE")),d(Un,Vn),d(Un,Vn,"esm2020");class qn{constructor(e,t){this.app=e,this._delegate=t}logEvent(e,t,r){Fn(this._delegate,e,t,r)}setCurrentScreen(e,t){xn(this._delegate,e,t)}setUserId(e,t){On(this._delegate,e,t)}setUserProperties(e,t){Mn(this._delegate,e,t)}setAnalyticsCollectionEnabled(e){Ln(this._delegate,e)}}(t=e=e||{}).ADD_SHIPPING_INFO="add_shipping_info",t.ADD_PAYMENT_INFO="add_payment_info",t.ADD_TO_CART="add_to_cart",t.ADD_TO_WISHLIST="add_to_wishlist",t.BEGIN_CHECKOUT="begin_checkout",t.CHECKOUT_PROGRESS="checkout_progress",t.EXCEPTION="exception",t.GENERATE_LEAD="generate_lead",t.LOGIN="login",t.PAGE_VIEW="page_view",t.PURCHASE="purchase",t.REFUND="refund",t.REMOVE_FROM_CART="remove_from_cart",t.SCREEN_VIEW="screen_view",t.SEARCH="search",t.SELECT_CONTENT="select_content",t.SELECT_ITEM="select_item",t.SELECT_PROMOTION="select_promotion",t.SET_CHECKOUT_OPTION="set_checkout_option",t.SHARE="share",t.SIGN_UP="sign_up",t.TIMING_COMPLETE="timing_complete",t.VIEW_CART="view_cart",t.VIEW_ITEM="view_item",t.VIEW_ITEM_LIST="view_item_list",t.VIEW_PROMOTION="view_promotion",t.VIEW_SEARCH_RESULTS="view_search_results";let Bn=e=>{var t=e.getProvider("app-compat").getImmediate(),r=e.getProvider("analytics").getImmediate();return new qn(t,r)};lr={Analytics:qn,settings:Rn,isSupported:Dn,EventName:e},ur.INTERNAL.registerComponent(new u("analytics-compat",Bn,"PUBLIC").setServiceProps(lr).setMultipleInstances(!0)),ur.registerVersion("@firebase/analytics-compat","0.2.24");let jn=new Map,zn={activated:!1,tokenObservers:[]},Kn={initialized:!1,enabled:!1};function Wn(e){return jn.get(e)||{...zn}}let Hn="https://content-firebaseappcheck.googleapis.com/v1",Gn="exchangeDebugToken",$n={OFFSET_DURATION:3e5,RETRIAL_MIN_WAIT:3e4,RETRIAL_MAX_WAIT:96e4};class Qn{constructor(e,t,r,n,i){if(this.operation=e,this.retryPolicy=t,this.getWaitDuration=r,this.lowerBound=n,this.upperBound=i,this.pending=null,i<(this.nextErrorWaitInterval=n))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 Z,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 Z,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 Yn=new we("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.","initial-throttle":"{$httpStatus} error. Attempts allowed again after {$time}",throttled:"Requests throttled due to previous {$httpStatus} error. Attempts allowed again after {$time}"});function Jn(e=!1){return e?self.grecaptcha?.enterprise:self.grecaptcha}function Xn(e){if(!Wn(e).activated)throw Yn.create("use-before-activation",{appName:e.name})}function Zn(e){var t=Math.round(e/1e3),r=Math.floor(t/86400),n=Math.floor((t-3600*r*24)/3600),i=Math.floor((t-3600*r*24-3600*n)/60),t=t-3600*r*24-3600*n-60*i;let s="";return r&&(s+=ei(r)+"d:"),n&&(s+=ei(n)+"h:"),s+=ei(i)+"m:"+ei(t)+"s"}function ei(e){return 0===e?"00":10<=e?e.toString():"0"+e}async function ti({url:e,body:t},r){var n={"Content-Type":"application/json"},i=r.getImmediate({optional:!0}),i=(i&&(i=await i.getHeartbeatsHeader())&&(n["X-Firebase-Client"]=i),{method:"POST",body:JSON.stringify(t),headers:n});let s;try{s=await fetch(e,i)}catch(e){throw Yn.create("fetch-network-error",{originalErrorMessage:e?.message})}if(200!==s.status)throw Yn.create("fetch-status-error",{httpStatus:s.status});let a;try{a=await s.json()}catch(e){throw Yn.create("fetch-parse-error",{originalErrorMessage:e?.message})}var n=a.ttl.match(/^([\d.]+)(s)$/);if(n&&n[2]&&!isNaN(Number(n[1])))return i=1e3*Number(n[1]),n=Date.now(),{token:a.token,expireTimeMillis:n+i,issuedAtTimeMillis:n};throw Yn.create("fetch-parse-error",{originalErrorMessage:"ttl field (timeToLive) is not in standard Protobuf Duration format: "+a.ttl})}function ri(e,t){var{projectId:r,appId:n,apiKey:i}=e.options;return{url:`${Hn}/projects/${r}/apps/${n}:${Gn}?key=`+i,body:{debug_token:t}}}let ni="firebase-app-check-database",ii=1,si="firebase-app-check-store",ai="debug-token",oi=null;function li(){return oi=oi||new Promise((t,r)=>{try{var e=indexedDB.open(ni,ii);e.onsuccess=e=>{t(e.target.result)},e.onerror=e=>{r(Yn.create("storage-open",{originalErrorMessage:e.target.error?.message}))},e.onupgradeneeded=e=>{var t=e.target.result;0===e.oldVersion&&t.createObjectStore(si,{keyPath:"compositeKey"})}}catch(e){r(Yn.create("storage-open",{originalErrorMessage:e?.message}))}})}async function hi(e,t){let n=(await li()).transaction(si,"readwrite"),i=n.objectStore(si).put({compositeKey:e,value:t});return new Promise((t,r)=>{i.onsuccess=e=>{t()},n.onerror=e=>{r(Yn.create("storage-set",{originalErrorMessage:e.target.error?.message}))}})}async function ui(e){let n=(await li()).transaction(si,"readonly"),i=n.objectStore(si).get(e);return new Promise((r,t)=>{i.onsuccess=e=>{var t=e.target.result;r(t?t.value:void 0)},n.onerror=e=>{t(Yn.create("storage-get",{originalErrorMessage:e.target.error?.message}))}})}function ci(e){return e.options.appId+"-"+e.name}let di=new tt("@firebase/app-check");async function pi(t){if(me()){let e=void 0;try{e=await ui(ci(t))}catch(e){di.warn("Failed to read token from IndexedDB. Error: "+e)}return e}}function fi(e,t){return me()?hi(ci(e),t).catch(e=>{di.warn("Failed to write token to IndexedDB. Error: "+e)}):Promise.resolve()}async function gi(){let e=void 0;try{e=await ui(ai)}catch(e){}var t,r;return e||(t=crypto.randomUUID(),r=t,hi(ai,r).catch(e=>di.warn("Failed to persist debug token to IndexedDB. Error: "+e)),t)}function mi(){return Kn.enabled}async function vi(){var e=Kn;if(e.enabled&&e.token)return e.token.promise;throw Error(`
|
|
21
|
+
`)}catch{}let ur=or;d("@firebase/app-compat","0.5.2",void 0);ur.registerVersion("firebase","12.2.1","app-compat");var hr="@firebase/installations",cr="0.6.19";let dr=1e4,pr="w:"+cr,fr="FIS_v2",gr="https://firebaseinstallations.googleapis.com/v1",mr=36e5;let vr=new we("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 _r(e){return e instanceof ye&&e.code.includes("request-failed")}function yr({projectId:e}){return gr+`/projects/${e}/installations`}function wr(e){return{token:e.token,requestStatus:2,expiresIn:Number(e.expiresIn.replace("s","000")),creationTime:Date.now()}}async function br(e,t){var r=(await t.json()).error;return vr.create("request-failed",{requestName:e,serverCode:r.code,serverMessage:r.message,serverStatus:r.status})}function Ir({apiKey:e}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e})}function Tr(e,{refreshToken:t}){var r=Ir(e);return r.append("Authorization",(e=t,fr+" "+e)),r}async function Er(e){var t=await e();return 500<=t.status&&t.status<600?e():t}function Cr(t){return new Promise(e=>{setTimeout(e,t)})}let Sr=/^[cdef][\w-]{21}$/,kr="";function Ar(){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 Sr.test(t)?t:kr}catch{return kr}}function Nr(e){return e.appName+"!"+e.appId}let Rr=new Map;function Pr(e,t){var r=Nr(e),e=(Dr(r,t),r),r=(()=>(!xr&&"BroadcastChannel"in self&&((xr=new BroadcastChannel("[Firebase] FID Change")).onmessage=e=>{Dr(e.data.key,e.data.fid)}),xr))();r&&r.postMessage({key:e,fid:t}),0===Rr.size&&xr&&(xr.close(),xr=null)}function Dr(e,t){var r=Rr.get(e);if(r)for(var n of r)n(t)}let xr=null;let Or="firebase-installations-database",Mr=1,Lr="firebase-installations-store",Fr=null;function Ur(){return Fr=Fr||gt(Or,Mr,{upgrade:(e,t)=>{0===t&&e.createObjectStore(Lr)}})}async function Vr(e,t){var r=Nr(e),n=(await Ur()).transaction(Lr,"readwrite"),i=n.objectStore(Lr),s=await i.get(r);return await i.put(t,r),await n.done,s&&s.fid===t.fid||Pr(e,t.fid),t}async function qr(e){var t=Nr(e),r=(await Ur()).transaction(Lr,"readwrite");await r.objectStore(Lr).delete(t),await r.done}async function Br(e,t){var r=Nr(e),n=(await Ur()).transaction(Lr,"readwrite"),i=n.objectStore(Lr),s=await i.get(r),a=t(s);return void 0===a?await i.delete(r):await i.put(a,r),await n.done,!a||s&&s.fid===a.fid||Pr(e,a.fid),a}async function jr(r){let n;var e=await Br(r.appConfig,e=>{var t=Kr(e||{fid:Ar(),registrationStatus:0}),t=((e,t)=>{var r,n;return 0===t.registrationStatus?navigator.onLine?(r={fid:t.fid,registrationStatus:1,registrationTime:Date.now()},n=(async(t,r)=>{try{var e=await(async({appConfig:e,heartbeatServiceProvider:t},{fid:r})=>{let n=yr(e);var i=Ir(e),s=((s=t.getImmediate({optional:!0}))&&(s=await s.getHeartbeatsHeader())&&i.append("x-firebase-client",s),{fid:r,authVersion:fr,appId:e.appId,sdkVersion:pr});let a={method:"POST",headers:i,body:JSON.stringify(s)};if((i=await Er(()=>fetch(n,a))).ok)return{fid:(s=await i.json()).fid||r,registrationStatus:2,refreshToken:s.refreshToken,authToken:wr(s.authToken)};throw await br("Create Installation",i)})(t,r);return Vr(t.appConfig,e)}catch(e){throw _r(e)&&409===e.customData.serverCode?await qr(t.appConfig):await Vr(t.appConfig,{fid:r.fid,registrationStatus:0}),e}})(e,r),{installationEntry:r,registrationPromise:n}):(r=Promise.reject(vr.create("app-offline")),{installationEntry:t,registrationPromise:r}):1===t.registrationStatus?{installationEntry:t,registrationPromise:(async e=>{let t=await zr(e.appConfig);for(;1===t.registrationStatus;)await Cr(100),t=await zr(e.appConfig);var r,n;return 0!==t.registrationStatus?t:({installationEntry:r,registrationPromise:n}=await jr(e),n||r)})(e)}:{installationEntry:t}})(r,t);return n=t.registrationPromise,t.installationEntry});return e.fid===kr?{installationEntry:await n}:{installationEntry:e,registrationPromise:n}}function zr(e){return Br(e,e=>{if(e)return Kr(e);throw vr.create("installation-not-found")})}function Kr(e){var t;return 1===(t=e).registrationStatus&&t.registrationTime+dr<Date.now()?{fid:e.fid,registrationStatus:0}:e}async function Wr({appConfig:e,heartbeatServiceProvider:t},r){[i,s]=[e,r.fid];let n=yr(i)+`/${s}/authTokens:generate`;var i,s,a=Tr(e,r),o=t.getImmediate({optional:!0}),o=(o&&(o=await o.getHeartbeatsHeader())&&a.append("x-firebase-client",o),{installation:{sdkVersion:pr,appId:e.appId}});let l={method:"POST",headers:a,body:JSON.stringify(o)};a=await Er(()=>fetch(n,l));if(a.ok)return wr(await a.json());throw await br("Generate Auth Token",a)}async function Hr(n,i=!1){let s;var e=await Br(n.appConfig,e=>{if(!$r(e))throw vr.create("not-registered");var t,r=e.authToken;if(i||2!==(t=r).requestStatus||(e=>{var t=Date.now();return t<e.creationTime||e.creationTime+e.expiresIn<t+mr})(t)){if(1===r.requestStatus)return s=(async(e,t)=>{let r=await Gr(e.appConfig);for(;1===r.authToken.requestStatus;)await Cr(100),r=await Gr(e.appConfig);var n=r.authToken;return 0===n.requestStatus?Hr(e,t):n})(n,i),e;if(navigator.onLine)return t=e,r={requestStatus:1,requestTime:Date.now()},r={...t,authToken:r},s=(async(t,r)=>{try{var e=await Wr(t,r),n={...r,authToken:e};return await Vr(t.appConfig,n),e}catch(e){var i;throw!_r(e)||401!==e.customData.serverCode&&404!==e.customData.serverCode?(i={...r,authToken:{requestStatus:0}},await Vr(t.appConfig,i)):await qr(t.appConfig),e}})(n,r),r;throw vr.create("app-offline")}return e});return s?await s:e.authToken}function Gr(e){return Br(e,e=>{var t,r;if($r(e))return t=e.authToken,1===(r=t).requestStatus&&r.requestTime+dr<Date.now()?{...e,authToken:{requestStatus:0}}:e;throw vr.create("not-registered")})}function $r(e){return void 0!==e&&2===e.registrationStatus}async function Qr(e,t=!1){var r=e,n=(await(!(n=(await jr(r)).registrationPromise)||!await n),await Hr(r,t));return n.token}function Yr(e){return vr.create("missing-app-config-values",{valueName:e})}let Jr="installations",Xr=e=>{var t=e.getProvider("app").getImmediate();return{app:t,appConfig:(e=>{if(!e||!e.options)throw Yr("App Configuration");if(!e.name)throw Yr("App Name");var t;for(t of["projectId","apiKey","appId"])if(!e.options[t])throw Yr(t);return{appName:e.name,projectId:e.options.projectId,apiKey:e.options.apiKey,appId:e.options.appId}})(t),heartbeatServiceProvider:xt(t,"heartbeat"),_delete:()=>Promise.resolve()}},Zr=e=>{let t=xt(e.getProvider("app").getImmediate(),Jr).getImmediate();return{getId:()=>(async e=>{var t=e,{installationEntry:r,registrationPromise:n}=await jr(t);return(n||Hr(t)).catch(console.error),r.fid})(t),getToken:e=>Qr(t,e)}};Dt(new u(Jr,Xr,"PUBLIC")),Dt(new u("installations-internal",Zr,"PRIVATE")),d(hr,cr),d(hr,cr,"esm2020");let en="analytics",tn="firebase_id",rn="origin",nn=6e4,sn="https://firebase.googleapis.com/v1alpha/projects/-/apps/{app-id}/webConfig",an="https://www.googletagmanager.com/gtag/js",on=new tt("@firebase/analytics"),ln=new we("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 hn(e){var t;return e.startsWith(an)?e:(t=ln.create("invalid-gtag-resource",{gtagURL:e}),on.warn(t.message),"")}function un(e){return Promise.all(e.map(e=>e.catch(e=>e)))}function cn(e,t){var r=((e,t)=>{let r;return r=window.trustedTypes?window.trustedTypes.createPolicy(e,t):r})("firebase-js-sdk-policy",{createScriptURL:hn}),n=document.createElement("script"),i=an+`?l=${e}&id=`+t;n.src=r?r?.createScriptURL(i):i,n.async=!0,document.head.appendChild(n)}function dn(k,A,N,R){return async function(e,...t){try{if("event"===e){var[r,n]=t,i=k,s=A,a=N,o=r,l=n;try{let r=[];if(l&&l.send_to){let e=l.send_to;Array.isArray(e)||(e=[e]);var h=await un(a);for(let t of e){var u=h.find(e=>e.measurementId===t),c=u&&s[u.appId];if(!c){r=[];break}r.push(c)}}0===r.length&&(r=Object.values(s)),await Promise.all(r),i("event",o,l||{})}catch(e){on.error(e)}}else if("config"===e){var d,[p,f]=t,g=k,m=A,v=N,_=p,y=f,w=R[_];try{w?await m[w]:(d=(await un(v)).find(e=>e.measurementId===_))&&await m[d.appId]}catch(e){on.error(e)}g("config",_,y)}else{var b,I,T,E,C,S;"consent"===e?([b,I]=t,k("consent",b,I)):"get"===e?([T,E,C]=t,k("get",T,E,C)):"set"===e?([S]=t,k("set",S)):k(e,...t)}}catch(e){on.error(e)}}}let pn=30;let fn=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 gn(e){var{appId:t,apiKey:r}=e,r={method:"GET",headers:new Headers({Accept:"application/json","x-goog-api-key":r})},t=sn.replace("{app-id}",t),t=await fetch(t,r);if(200===t.status||304===t.status)return t.json();{let e="";try{var n=await t.json();n.error?.message&&(e=n.error.message)}catch(e){}throw ln.create("config-fetch-failed",{httpStatus:t.status,responseMessage:e})}}async function mn(e,t=fn,r){var{appId:n,apiKey:i,measurementId:s}=e.options;if(!n)throw ln.create("no-app-id");if(!i){if(s)return{measurementId:s,appId:n};throw ln.create("no-api-key")}var a=t.getThrottleMetadata(n)||{backoffCount:0,throttleEndTimeMillis:Date.now()};let o=new yn;return setTimeout(async()=>{o.abort()},void 0!==r?r:nn),async function i(s,{throttleEndTimeMillis:e,backoffCount:a},o,l=fn){let{appId:h,measurementId:u}=s;try{await vn(o,e)}catch(e){if(u)return on.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. [${e?.message}]`),{appId:h,measurementId:u};throw e}try{let e=await gn(s);return l.deleteThrottleMetadata(h),e}catch(e){let t=e;if(!_n(t)){if(l.deleteThrottleMetadata(h),u)return on.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. [${t?.message}]`),{appId:h,measurementId:u};throw e}let r=503===Number(t?.customData?.httpStatus)?He(a,l.intervalMillis,pn):He(a,l.intervalMillis),n={throttleEndTimeMillis:Date.now()+r,backoffCount:a+1};return l.setThrottleMetadata(h,n),on.debug(`Calling attemptFetch again in ${r} millis`),i(s,n,o,l)}}({appId:n,apiKey:i,measurementId:s},a,o,t)}function vn(i,s){return new Promise((e,t)=>{var r=Math.max(s-Date.now(),0);let n=setTimeout(e,r);i.addEventListener(()=>{clearTimeout(n),t(ln.create("fetch-throttle",{throttleEndTimeMillis:s}))})})}function _n(e){var t;return!!(e instanceof ye&&e.customData)&&(429===(t=Number(e.customData.httpStatus))||500===t||503===t||504===t)}class yn{constructor(){this.listeners=[]}addEventListener(e){this.listeners.push(e)}abort(){this.listeners.forEach(e=>e())}}async function wn(t,e,r,n,i,s,a){var o=mn(t),l=(o.then(e=>{r[e.measurementId]=e.appId,t.options.measurementId&&e.measurementId!==t.options.measurementId&&on.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=>on.error(e)),e.push(o),(async()=>{if(!me())return on.warn(ln.create("indexeddb-unavailable",{errorInfo:"IndexedDB is not available in this environment."}).message),!1;try{await ve()}catch(e){return on.warn(ln.create("indexeddb-unavailable",{errorInfo:e?.toString()}).message),!1}return!0})().then(e=>{if(e)return n.getId()})),[o,l]=await Promise.all([o,l]),h=((e=>{var t,r=window.document.getElementsByTagName("script");for(t of Object.values(r))if(t.src&&t.src.includes(an)&&t.src.includes(e))return t})(s)||cn(s,o.measurementId),i("js",new Date),a?.config??{});return h[rn]="firebase",h.update=!0,null!=l&&(h[tn]=l),i("config",o.measurementId,h),o.measurementId}class bn{constructor(e){this.app=e}_delete(){return delete In[this.app.options.appId],Promise.resolve()}}let In={},Tn=[],En={},Cn="dataLayer",Sn="gtag",kn,An,Nn=!1;function Rn(e){if(Nn)throw ln.create("already-initialized");e.dataLayerName&&(Cn=e.dataLayerName),e.gtagName&&(Sn=e.gtagName)}function Pn(e,t,r){n=[],ue()&&n.push("This is a browser extension environment."),_e()||n.push("Cookies are not available."),0<n.length&&(n=n.map((e,t)=>`(${t+1}) `+e).join(" "),n=ln.create("invalid-analytics-context",{errorInfo:n}),on.warn(n.message));var n=e.options.appId;if(!n)throw ln.create("no-app-id");if(!e.options.apiKey){if(!e.options.measurementId)throw ln.create("no-api-key");on.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!=In[n])throw ln.create("already-exists",{id:n});if(!Nn){{var i=Cn;let e=[];Array.isArray(window[i])?e=window[i]:window[i]=e,e}var{wrappedGtag:s,gtagCore:a}=((e,t,r,n,i)=>{let s=function(){window[n].push(arguments)};return window[i]&&"function"==typeof window[i]&&(s=window[i]),window[i]=dn(s,e,t,r),{gtagCore:s,wrappedGtag:window[i]}})(In,Tn,En,Cn,Sn);An=s,kn=a,Nn=!0}return In[n]=wn(e,Tn,En,t,kn,Cn,r),new bn(e)}async function Dn(){if(ue())return!1;if(!_e())return!1;if(!me())return!1;try{return await ve()}catch(e){return!1}}function xn(e,t,r){e=w(e),(async(e,t,r,n)=>{if(n&&n.global)return e("set",{screen_name:r}),Promise.resolve();e("config",await t,{update:!0,screen_name:r})})(An,In[e.app.options.appId],t,r).catch(e=>on.error(e))}function On(e,t,r){e=w(e),(async(e,t,r,n)=>{if(n&&n.global)return e("set",{user_id:r}),Promise.resolve();e("config",await t,{update:!0,user_id:r})})(An,In[e.app.options.appId],t,r).catch(e=>on.error(e))}function Mn(e,t,r){e=w(e),(async(e,t,r,n)=>{if(n&&n.global){var i,s={};for(i of Object.keys(r))s["user_properties."+i]=r[i];return e("set",s),Promise.resolve()}e("config",await t,{update:!0,user_properties:r})})(An,In[e.app.options.appId],t,r).catch(e=>on.error(e))}function Ln(e,t){e=w(e),(async(e,t)=>{var r=await e;window["ga-disable-"+r]=!t})(In[e.app.options.appId],t).catch(e=>on.error(e))}function Fn(e,t,r,n){e=w(e),(async(e,t,r,n,i)=>{var s;i&&i.global?e("event",r,n):(s=await t,e("event",r,{...n,send_to:s}))})(An,In[e.app.options.appId],t,r,n).catch(e=>on.error(e))}let Un="@firebase/analytics",Vn="0.10.18";Dt(new u(en,(e,{options:t})=>Pn(e.getProvider("app").getImmediate(),e.getProvider("installations-internal").getImmediate(),t),"PUBLIC")),Dt(new u("analytics-internal",function(e){try{let n=e.getProvider(en).getImmediate();return{logEvent:(e,t,r)=>Fn(n,e,t,r)}}catch(e){throw ln.create("interop-component-reg-failed",{reason:e})}},"PRIVATE")),d(Un,Vn),d(Un,Vn,"esm2020");class qn{constructor(e,t){this.app=e,this._delegate=t}logEvent(e,t,r){Fn(this._delegate,e,t,r)}setCurrentScreen(e,t){xn(this._delegate,e,t)}setUserId(e,t){On(this._delegate,e,t)}setUserProperties(e,t){Mn(this._delegate,e,t)}setAnalyticsCollectionEnabled(e){Ln(this._delegate,e)}}(t=e=e||{}).ADD_SHIPPING_INFO="add_shipping_info",t.ADD_PAYMENT_INFO="add_payment_info",t.ADD_TO_CART="add_to_cart",t.ADD_TO_WISHLIST="add_to_wishlist",t.BEGIN_CHECKOUT="begin_checkout",t.CHECKOUT_PROGRESS="checkout_progress",t.EXCEPTION="exception",t.GENERATE_LEAD="generate_lead",t.LOGIN="login",t.PAGE_VIEW="page_view",t.PURCHASE="purchase",t.REFUND="refund",t.REMOVE_FROM_CART="remove_from_cart",t.SCREEN_VIEW="screen_view",t.SEARCH="search",t.SELECT_CONTENT="select_content",t.SELECT_ITEM="select_item",t.SELECT_PROMOTION="select_promotion",t.SET_CHECKOUT_OPTION="set_checkout_option",t.SHARE="share",t.SIGN_UP="sign_up",t.TIMING_COMPLETE="timing_complete",t.VIEW_CART="view_cart",t.VIEW_ITEM="view_item",t.VIEW_ITEM_LIST="view_item_list",t.VIEW_PROMOTION="view_promotion",t.VIEW_SEARCH_RESULTS="view_search_results";let Bn=e=>{var t=e.getProvider("app-compat").getImmediate(),r=e.getProvider("analytics").getImmediate();return new qn(t,r)};lr={Analytics:qn,settings:Rn,isSupported:Dn,EventName:e},ur.INTERNAL.registerComponent(new u("analytics-compat",Bn,"PUBLIC").setServiceProps(lr).setMultipleInstances(!0)),ur.registerVersion("@firebase/analytics-compat","0.2.24");let jn=new Map,zn={activated:!1,tokenObservers:[]},Kn={initialized:!1,enabled:!1};function Wn(e){return jn.get(e)||{...zn}}let Hn="https://content-firebaseappcheck.googleapis.com/v1",Gn="exchangeDebugToken",$n={OFFSET_DURATION:3e5,RETRIAL_MIN_WAIT:3e4,RETRIAL_MAX_WAIT:96e4};class Qn{constructor(e,t,r,n,i){if(this.operation=e,this.retryPolicy=t,this.getWaitDuration=r,this.lowerBound=n,this.upperBound=i,this.pending=null,i<(this.nextErrorWaitInterval=n))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 Z,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 Z,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 Yn=new we("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.","initial-throttle":"{$httpStatus} error. Attempts allowed again after {$time}",throttled:"Requests throttled due to previous {$httpStatus} error. Attempts allowed again after {$time}"});function Jn(e=!1){return e?self.grecaptcha?.enterprise:self.grecaptcha}function Xn(e){if(!Wn(e).activated)throw Yn.create("use-before-activation",{appName:e.name})}function Zn(e){var t=Math.round(e/1e3),r=Math.floor(t/86400),n=Math.floor((t-3600*r*24)/3600),i=Math.floor((t-3600*r*24-3600*n)/60),t=t-3600*r*24-3600*n-60*i;let s="";return r&&(s+=ei(r)+"d:"),n&&(s+=ei(n)+"h:"),s+=ei(i)+"m:"+ei(t)+"s"}function ei(e){return 0===e?"00":10<=e?e.toString():"0"+e}async function ti({url:e,body:t},r){var n={"Content-Type":"application/json"},i=r.getImmediate({optional:!0}),i=(i&&(i=await i.getHeartbeatsHeader())&&(n["X-Firebase-Client"]=i),{method:"POST",body:JSON.stringify(t),headers:n});let s;try{s=await fetch(e,i)}catch(e){throw Yn.create("fetch-network-error",{originalErrorMessage:e?.message})}if(200!==s.status)throw Yn.create("fetch-status-error",{httpStatus:s.status});let a;try{a=await s.json()}catch(e){throw Yn.create("fetch-parse-error",{originalErrorMessage:e?.message})}var n=a.ttl.match(/^([\d.]+)(s)$/);if(n&&n[2]&&!isNaN(Number(n[1])))return i=1e3*Number(n[1]),n=Date.now(),{token:a.token,expireTimeMillis:n+i,issuedAtTimeMillis:n};throw Yn.create("fetch-parse-error",{originalErrorMessage:"ttl field (timeToLive) is not in standard Protobuf Duration format: "+a.ttl})}function ri(e,t){var{projectId:r,appId:n,apiKey:i}=e.options;return{url:`${Hn}/projects/${r}/apps/${n}:${Gn}?key=`+i,body:{debug_token:t}}}let ni="firebase-app-check-database",ii=1,si="firebase-app-check-store",ai="debug-token",oi=null;function li(){return oi=oi||new Promise((t,r)=>{try{var e=indexedDB.open(ni,ii);e.onsuccess=e=>{t(e.target.result)},e.onerror=e=>{r(Yn.create("storage-open",{originalErrorMessage:e.target.error?.message}))},e.onupgradeneeded=e=>{var t=e.target.result;0===e.oldVersion&&t.createObjectStore(si,{keyPath:"compositeKey"})}}catch(e){r(Yn.create("storage-open",{originalErrorMessage:e?.message}))}})}async function hi(e,t){let n=(await li()).transaction(si,"readwrite"),i=n.objectStore(si).put({compositeKey:e,value:t});return new Promise((t,r)=>{i.onsuccess=e=>{t()},n.onerror=e=>{r(Yn.create("storage-set",{originalErrorMessage:e.target.error?.message}))}})}async function ui(e){let n=(await li()).transaction(si,"readonly"),i=n.objectStore(si).get(e);return new Promise((r,t)=>{i.onsuccess=e=>{var t=e.target.result;r(t?t.value:void 0)},n.onerror=e=>{t(Yn.create("storage-get",{originalErrorMessage:e.target.error?.message}))}})}function ci(e){return e.options.appId+"-"+e.name}let di=new tt("@firebase/app-check");async function pi(t){if(me()){let e=void 0;try{e=await ui(ci(t))}catch(e){di.warn("Failed to read token from IndexedDB. Error: "+e)}return e}}function fi(e,t){return me()?hi(ci(e),t).catch(e=>{di.warn("Failed to write token to IndexedDB. Error: "+e)}):Promise.resolve()}async function gi(){let e=void 0;try{e=await ui(ai)}catch(e){}var t,r;return e||(t=crypto.randomUUID(),r=t,hi(ai,r).catch(e=>di.warn("Failed to persist debug token to IndexedDB. Error: "+e)),t)}function mi(){return Kn.enabled}async function vi(){var e=Kn;if(e.enabled&&e.token)return e.token.promise;throw Error(`
|
|
22
22
|
Can't get debug token in production mode.
|
|
23
|
-
`)}let _i={error:"UNKNOWN_ERROR"};async function yi(e,t=!1,r=!1){var n,i=e.app;Xn(i);let s=Wn(i),a=s.token,o=void 0;if(a&&!Ei(a)&&(s.token=void 0,a=void 0),a||(n=await s.cachedTokenPromise)&&(Ei(n)?a=n:await fi(i,void 0)),!t&&a&&Ei(a))return{token:a.token};let l=!1;if(mi())try{var h=await vi(),u=(s.exchangeTokenPromise||(s.exchangeTokenPromise=ti(ri(i,h),e.heartbeatServiceProvider).finally(()=>{s.exchangeTokenPromise=void 0}),l=!0),await s.exchangeTokenPromise);return await fi(i,u),{token:(s.token=u).token}}catch(e){return"appCheck/throttled"===e.code||"appCheck/initial-throttle"===e.code?di.warn(e.message):r&&di.error(e),Ci(e)}try{s.exchangeTokenPromise||(s.exchangeTokenPromise=s.provider.getToken().finally(()=>{s.exchangeTokenPromise=void 0}),l=!0),a=await Wn(i).exchangeTokenPromise}catch(e){"appCheck/throttled"===e.code||"appCheck/initial-throttle"===e.code?di.warn(e.message):r&&di.error(e),o=e}let c;return a?o?c=Ei(a)?{token:a.token,internalError:o}:Ci(o):(c={token:a.token},await fi(i,s.token=a)):c=Ci(o),l&&Ti(i,c),c}function wi(t,e,r,n){var i=t.app,i=Wn(i),s={next:r,error:n,type:e};if(i.tokenObservers=[...i.tokenObservers,s],i.token&&Ei(i.token)){let e=i.token;Promise.resolve().then(()=>{r({token:e.token}),Ii(t)}).catch(()=>{})}i.cachedTokenPromise.then(()=>Ii(t))}function bi(e,t){var r=Wn(e),n=r.tokenObservers.filter(e=>e.next!==t);0===n.length&&r.tokenRefresher&&r.tokenRefresher.isRunning()&&r.tokenRefresher.stop(),r.tokenObservers=n}function Ii(e){var t=e.app,t=Wn(t);let r=t.tokenRefresher;r||(r=(r=>{let n=r.app;return new Qn(async()=>{var e=Wn(n);let t;if((t=e.token?await yi(r,!0):await yi(r)).error)throw t.error;if(t.internalError)throw t.internalError},()=>!0,()=>{var e,t=Wn(n);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},$n.RETRIAL_MIN_WAIT,$n.RETRIAL_MAX_WAIT)})(e),t.tokenRefresher=r),!r.isRunning()&&t.isTokenAutoRefreshEnabled&&r.start()}function Ti(e,t){var r;for(r of Wn(e).tokenObservers)try{"EXTERNAL"===r.type&&null!=t.error?r.error(t.error):r.next(t)}catch(e){}}function Ei(e){return 0<e.expireTimeMillis-Date.now()}function Ci(e){return{token:(t=_i,a.encodeString(JSON.stringify(t),!1)),error:e};var t}class Si{constructor(e,t){this.app=e,this.heartbeatServiceProvider=t}_delete(){var e,t=Wn(this.app).tokenObservers;for(e of t)bi(this.app,e.next);return Promise.resolve()}}function ki(t){return{getToken:e=>yi(t,e),getLimitedUseToken:()=>(async e=>{var t=e.app,r=(Xn(t),Wn(t)).provider;return mi()?{token:t=(await ti(ri(t,await vi()),e.heartbeatServiceProvider)).token}:{token:t=(await r.getToken()).token}})(t),addTokenListener:e=>wi(t,"INTERNAL",e),removeTokenListener:e=>bi(t.app,e)}}let Ai="https://www.google.com/recaptcha/api.js",Ni="https://www.google.com/recaptcha/enterprise.js";function Ri(t,r){let n=new Z;Wn(t).reCAPTCHAState={initialized:n};let i=xi(t);var e,s=Jn(!1);return s?Di(t,r,s,i,n):(e=()=>{var e=Jn(!1);if(!e)throw new Error("no recaptcha");Di(t,r,e,i,n)},(s=document.createElement("script")).src=Ai,s.onload=e,document.head.appendChild(s)),n.promise}function Pi(t,r){let n=new Z;Wn(t).reCAPTCHAState={initialized:n};let i=xi(t);var e,s=Jn(!0);return s?Di(t,r,s,i,n):(e=()=>{var e=Jn(!0);if(!e)throw new Error("no recaptcha");Di(t,r,e,i,n)},(s=document.createElement("script")).src=Ni,s.onload=e,document.head.appendChild(s)),n.promise}function Di(n,i,s,a,o){s.ready(()=>{var e,t,r;e=n,t=s.render(a,{sitekey:i,size:"invisible",callback:()=>{Wn(e).reCAPTCHAState.succeeded=!0},"error-callback":()=>{Wn(e).reCAPTCHAState.succeeded=!1}}),(r=Wn(e)).reCAPTCHAState={...r.reCAPTCHAState,widgetId:t},o.resolve(s)})}function xi(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 Oi(n){Xn(n);let i=await Wn(n).reCAPTCHAState.initialized.promise;return new Promise((e,t)=>{let r=Wn(n).reCAPTCHAState;i.ready(()=>{e(i.execute(r.widgetId,{action:"fire_app_check"}))})})}class Mi{constructor(e){this._siteKey=e,this._throttleData=null}async getToken(){Vi(this._throttleData);var e=await Oi(this._app).catch(e=>{throw Yn.create("recaptcha-error")});if(!Wn(this._app).reCAPTCHAState?.succeeded)throw Yn.create("recaptcha-error");let t;try{t=await ti(((e,t)=>{var{projectId:r,appId:n,apiKey:i}=e.options;return{url:Hn+`/projects/${r}/apps/${n}:exchangeRecaptchaV3Token?key=`+i,body:{recaptcha_v3_token:t}}})(this._app,e),this._heartbeatServiceProvider)}catch(e){throw e.code?.includes("fetch-status-error")?(this._throttleData=Ui(Number(e.customData?.httpStatus),this._throttleData),Yn.create("initial-throttle",{time:Zn(this._throttleData.allowRequestsAfter-Date.now()),httpStatus:this._throttleData.httpStatus})):e}return this._throttleData=null,t}initialize(e){this._app=e,this._heartbeatServiceProvider=xt(e,"heartbeat"),Ri(e,this._siteKey).catch(()=>{})}isEqual(e){return e instanceof Mi&&this._siteKey===e._siteKey}}class Li{constructor(e){this._siteKey=e,this._throttleData=null}async getToken(){Vi(this._throttleData);var e=await Oi(this._app).catch(e=>{throw Yn.create("recaptcha-error")});if(!Wn(this._app).reCAPTCHAState?.succeeded)throw Yn.create("recaptcha-error");let t;try{t=await ti(((e,t)=>{var{projectId:r,appId:n,apiKey:i}=e.options;return{url:Hn+`/projects/${r}/apps/${n}:exchangeRecaptchaEnterpriseToken?key=`+i,body:{recaptcha_enterprise_token:t}}})(this._app,e),this._heartbeatServiceProvider)}catch(e){throw e.code?.includes("fetch-status-error")?(this._throttleData=Ui(Number(e.customData?.httpStatus),this._throttleData),Yn.create("initial-throttle",{time:Zn(this._throttleData.allowRequestsAfter-Date.now()),httpStatus:this._throttleData.httpStatus})):e}return this._throttleData=null,t}initialize(e){this._app=e,this._heartbeatServiceProvider=xt(e,"heartbeat"),Pi(e,this._siteKey).catch(()=>{})}isEqual(e){return e instanceof Li&&this._siteKey===e._siteKey}}class Fi{constructor(e){this._customProviderOptions=e}async getToken(){var e,t=await this._customProviderOptions.getToken(),r=(e=t.token,"object"==typeof(r=Ee(e).claims)&&r.hasOwnProperty("iat")?r.iat:null),r=null!==r&&r<Date.now()&&0<r?1e3*r:Date.now();return{...t,issuedAtTimeMillis:r}}initialize(e){this._app=e}isEqual(e){return e instanceof Fi&&this._customProviderOptions.getToken.toString()===e._customProviderOptions.getToken.toString()}}function Ui(e,t){var r,n;return 404===e||403===e?{backoffCount:1,allowRequestsAfter:Date.now()+864e5,httpStatus:e}:(n=He(r=t?t.backoffCount:0,1e3,2),{backoffCount:r+1,allowRequestsAfter:Date.now()+n,httpStatus:e})}function Vi(e){if(e&&Date.now()-e.allowRequestsAfter<=0)throw Yn.create("throttled",{time:Zn(e.allowRequestsAfter-Date.now()),httpStatus:e.httpStatus})}function qi(e=jt(),r){var t=xt(e=w(e),"app-check");if(Kn.initialized||(i=H(),(n=Kn).initialized=!0,"string"!=typeof i.FIREBASE_APPCHECK_DEBUG_TOKEN&&!0!==i.FIREBASE_APPCHECK_DEBUG_TOKEN)||(n.enabled=!0,s=new Z,n.token=s,"string"==typeof i.FIREBASE_APPCHECK_DEBUG_TOKEN?s.resolve(i.FIREBASE_APPCHECK_DEBUG_TOKEN):s.resolve(gi())),mi()&&vi().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 n=t.getImmediate(),i=t.getOptions();if(i.isTokenAutoRefreshEnabled===r.isTokenAutoRefreshEnabled&&i.provider.isEqual(r.provider))return n;throw Yn.create("already-initialized",{appName:e.name})}var s=t.initialize({options:r});{var[a,r,o=!1]=[e,r.provider,r.isTokenAutoRefreshEnabled];let t=((e,t)=>(jn.set(e,t),jn.get(e)))(a,{...zn});t.activated=!0,t.provider=r,t.cachedTokenPromise=pi(a).then(e=>(e&&Ei(e)&&(t.token=e,Ti(a,{token:e.token})),e)),t.isTokenAutoRefreshEnabled=o&&a.automaticDataCollectionEnabled,!a.automaticDataCollectionEnabled&&o&&di.warn("`isTokenAutoRefreshEnabled` is true but `automaticDataCollectionEnabled` was set to false during `initializeApp()`. This blocks automatic token refresh."),t.provider.initialize(a)}return Wn(e).isTokenAutoRefreshEnabled&&wi(s,"INTERNAL",()=>{}),s}let Bi="app-check-internal";Dt(new u("app-check",e=>{var t,r=e.getProvider("app").getImmediate(),n=e.getProvider("heartbeat");return e=r,t=n,new Si(e,t)},"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback((e,t,r)=>{e.getProvider(Bi).initialize()})),Dt(new u(Bi,e=>ki(e.getProvider("app-check").getImmediate()),"PUBLIC").setInstantiationMode("EXPLICIT")),d("@firebase/app-check","0.11.0");let ji=new we("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 zi{constructor(e){this.app=e}activate(e,t){let r;r="string"==typeof e?new Mi(e):e instanceof Li||e instanceof Mi||e instanceof Fi?e:new Fi({getToken:e.getToken}),this._delegate=qi(this.app,{provider:r,isTokenAutoRefreshEnabled:t})}setTokenAutoRefreshEnabled(e){if(!this._delegate)throw ji.create("use-before-activation",{appName:this.app.name});var t,r;t=this._delegate,e=e,(r=Wn(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 yi(e,t);if(r.error)throw r.error;if(r.internalError)throw r.internalError;return{token:r.token}})(this._delegate,e);throw ji.create("use-before-activation",{appName:this.app.name})}onTokenChanged(r,n,e){if(this._delegate){var i=this._delegate;let e=()=>{},t=()=>{};return e=null!=r.next?r.next.bind(r):r,null!=r.error?t=r.error.bind(r):n&&(t=n),wi(i,"EXTERNAL",e,t),()=>bi(i.app,e)}throw ji.create("use-before-activation",{appName:this.app.name})}}let Ki=e=>{var t=e.getProvider("app-compat").getImmediate();return new zi(t)};ur.INTERNAL.registerComponent(new u("appCheck-compat",Ki,"PUBLIC").setServiceProps({ReCaptchaEnterpriseProvider:Li,ReCaptchaV3Provider:Mi,CustomProvider:Fi})),ur.registerVersion("@firebase/app-check-compat","0.4.0");let Wi={FACEBOOK:"facebook.com",GITHUB:"github.com",GOOGLE:"google.com",PASSWORD:"password",PHONE:"phone",TWITTER:"twitter.com"},Hi={EMAIL_SIGNIN:"EMAIL_SIGNIN",PASSWORD_RESET:"PASSWORD_RESET",RECOVER_EMAIL:"RECOVER_EMAIL",REVERT_SECOND_FACTOR_ADDITION:"REVERT_SECOND_FACTOR_ADDITION",VERIFY_AND_CHANGE_EMAIL:"VERIFY_AND_CHANGE_EMAIL",VERIFY_EMAIL:"VERIFY_EMAIL"};function Gi(){return{"dependent-sdk-initialized-before-auth":"Another Firebase SDK was initialized and is trying to use Auth before Auth is initialized. Please be sure to call `initializeAuth` or `getAuth` before starting any other Firebase SDK."}}function $i(){return{"admin-restricted-operation":"This operation is restricted to administrators only.","argument-error":"","app-not-authorized":"This app, identified by the domain where it's hosted, is not authorized to use Firebase Authentication with the provided API key. Review your key configuration in the Google API console.","app-not-installed":"The requested mobile application corresponding to the identifier (Android package name or iOS bundle ID) provided is not installed on this device.","captcha-check-failed":"The reCAPTCHA response token provided is either invalid, expired, already used or the domain associated with it does not match the list of whitelisted domains.","code-expired":"The SMS code has expired. Please re-send the verification code to try again.","cordova-not-ready":"Cordova framework is not ready.","cors-unsupported":"This browser is not supported.","credential-already-in-use":"This credential is already associated with a different user account.","custom-token-mismatch":"The custom token corresponds to a different audience.","requires-recent-login":"This operation is sensitive and requires recent authentication. Log in again before retrying this request.","dependent-sdk-initialized-before-auth":"Another Firebase SDK was initialized and is trying to use Auth before Auth is initialized. Please be sure to call `initializeAuth` or `getAuth` before starting any other Firebase SDK.","dynamic-link-not-activated":"Please activate Dynamic Links in the Firebase Console and agree to the terms and conditions.","email-change-needs-verification":"Multi-factor users must always have a verified email.","email-already-in-use":"The email address is already in use by another account.","emulator-config-failed":'Auth instance has already been used to make a network call. Auth can no longer be configured to use the emulator. Try calling "connectAuthEmulator()" sooner.',"expired-action-code":"The action code has expired.","cancelled-popup-request":"This operation has been cancelled due to another conflicting popup being opened.","internal-error":"An internal AuthError has occurred.","invalid-app-credential":"The phone verification request contains an invalid application verifier. The reCAPTCHA token response is either invalid or expired.","invalid-app-id":"The mobile app identifier is not registered for the current project.","invalid-user-token":"This user's credential isn't valid for this project. This can happen if the user's token has been tampered with, or if the user isn't for the project associated with this API key.","invalid-auth-event":"An internal AuthError has occurred.","invalid-verification-code":"The SMS verification code used to create the phone auth credential is invalid. Please resend the verification code sms and be sure to use the verification code provided by the user.","invalid-continue-uri":"The continue URL provided in the request is invalid.","invalid-cordova-configuration":"The following Cordova plugins must be installed to enable OAuth sign-in: cordova-plugin-buildinfo, cordova-universal-links-plugin, cordova-plugin-browsertab, cordova-plugin-inappbrowser and cordova-plugin-customurlscheme.","invalid-custom-token":"The custom token format is incorrect. Please check the documentation.","invalid-dynamic-link-domain":"The provided dynamic link domain is not configured or authorized for the current project.","invalid-email":"The email address is badly formatted.","invalid-emulator-scheme":"Emulator URL must start with a valid scheme (http:// or https://).","invalid-api-key":"Your API key is invalid, please check you have copied it correctly.","invalid-cert-hash":"The SHA-1 certificate hash provided is invalid.","invalid-credential":"The supplied auth credential is incorrect, malformed or has expired.","invalid-message-payload":"The email template corresponding to this action contains invalid characters in its message. Please fix by going to the Auth email templates section in the Firebase Console.","invalid-multi-factor-session":"The request does not contain a valid proof of first factor successful sign-in.","invalid-oauth-provider":"EmailAuthProvider is not supported for this operation. This operation only supports OAuth providers.","invalid-oauth-client-id":"The OAuth client ID provided is either invalid or does not match the specified API key.","unauthorized-domain":"This domain is not authorized for OAuth operations for your Firebase project. Edit the list of authorized domains from the Firebase console.","invalid-action-code":"The action code is invalid. This can happen if the code is malformed, expired, or has already been used.","wrong-password":"The password is invalid or the user does not have a password.","invalid-persistence-type":"The specified persistence type is invalid. It can only be local, session or none.","invalid-phone-number":"The format of the phone number provided is incorrect. Please enter the phone number in a format that can be parsed into E.164 format. E.164 phone numbers are written in the format [+][country code][subscriber number including area code].","invalid-provider-id":"The specified provider ID is invalid.","invalid-recipient-email":"The email corresponding to this action failed to send as the provided recipient email address is invalid.","invalid-sender":"The email template corresponding to this action contains an invalid sender email or name. Please fix by going to the Auth email templates section in the Firebase Console.","invalid-verification-id":"The verification ID used to create the phone auth credential is invalid.","invalid-tenant-id":"The Auth instance's tenant ID is invalid.","login-blocked":"Login blocked by user-provided method: {$originalMessage}","missing-android-pkg-name":"An Android Package Name must be provided if the Android App is required to be installed.","auth-domain-config-required":"Be sure to include authDomain when calling firebase.initializeApp(), by following the instructions in the Firebase console.","missing-app-credential":"The phone verification request is missing an application verifier assertion. A reCAPTCHA response token needs to be provided.","missing-verification-code":"The phone auth credential was created with an empty SMS verification code.","missing-continue-uri":"A continue URL must be provided in the request.","missing-iframe-start":"An internal AuthError has occurred.","missing-ios-bundle-id":"An iOS Bundle ID must be provided if an App Store ID is provided.","missing-or-invalid-nonce":"The request does not contain a valid nonce. This can occur if the SHA-256 hash of the provided raw nonce does not match the hashed nonce in the ID token payload.","missing-password":"A non-empty password must be provided","missing-multi-factor-info":"No second factor identifier is provided.","missing-multi-factor-session":"The request is missing proof of first factor successful sign-in.","missing-phone-number":"To send verification codes, provide a phone number for the recipient.","missing-verification-id":"The phone auth credential was created with an empty verification ID.","app-deleted":"This instance of FirebaseApp has been deleted.","multi-factor-info-not-found":"The user does not have a second factor matching the identifier provided.","multi-factor-auth-required":"Proof of ownership of a second factor is required to complete sign-in.","account-exists-with-different-credential":"An account already exists with the same email address but different sign-in credentials. Sign in using a provider associated with this email address.","network-request-failed":"A network AuthError (such as timeout, interrupted connection or unreachable host) has occurred.","no-auth-event":"An internal AuthError has occurred.","no-such-provider":"User was not linked to an account with the given provider.","null-user":"A null user object was provided as the argument for an operation which requires a non-null user object.","operation-not-allowed":"The given sign-in provider is disabled for this Firebase project. Enable it in the Firebase console, under the sign-in method tab of the Auth section.","operation-not-supported-in-this-environment":'This operation is not supported in the environment this application is running on. "location.protocol" must be http, https or chrome-extension and web storage must be enabled.',"popup-blocked":"Unable to establish a connection with the popup. It may have been blocked by the browser.","popup-closed-by-user":"The popup has been closed by the user before finalizing the operation.","provider-already-linked":"User can only be linked to one identity for the given provider.","quota-exceeded":"The project's quota for this operation has been exceeded.","redirect-cancelled-by-user":"The redirect operation has been cancelled by the user before finalizing.","redirect-operation-pending":"A redirect sign-in operation is already pending.","rejected-credential":"The request contains malformed or mismatching credentials.","second-factor-already-in-use":"The second factor is already enrolled on this account.","maximum-second-factor-count-exceeded":"The maximum allowed number of second factors on a user has been exceeded.","tenant-id-mismatch":"The provided tenant ID does not match the Auth instance's tenant ID",timeout:"The operation has timed out.","user-token-expired":"The user's credential is no longer valid. The user must sign in again.","too-many-requests":"We have blocked all requests from this device due to unusual activity. Try again later.","unauthorized-continue-uri":"The domain of the continue URL is not whitelisted. Please whitelist the domain in the Firebase console.","unsupported-first-factor":"Enrolling a second factor or signing in with a multi-factor account requires sign-in with a supported first factor.","unsupported-persistence-type":"The current environment does not support the specified persistence type.","unsupported-tenant-operation":"This operation is not supported in a multi-tenant context.","unverified-email":"The operation requires a verified email.","user-cancelled":"The user did not grant your application the permissions it requested.","user-not-found":"There is no user record corresponding to this identifier. The user may have been deleted.","user-disabled":"The user account has been disabled by an administrator.","user-mismatch":"The supplied credentials do not correspond to the previously signed in user.","user-signed-out":"","weak-password":"The password must be 6 characters long or more.","web-storage-unsupported":"This browser is not supported or 3rd party cookies and data may be disabled.","already-initialized":"initializeAuth() has already been called with different options. To avoid this error, call initializeAuth() with the same options as when it was originally called, or call getAuth() to return the already initialized instance.","missing-recaptcha-token":"The reCAPTCHA token is missing when sending request to the backend.","invalid-recaptcha-token":"The reCAPTCHA token is invalid when sending request to the backend.","invalid-recaptcha-action":"The reCAPTCHA action is invalid when sending request to the backend.","recaptcha-not-enabled":"reCAPTCHA Enterprise integration is not enabled for this project.","missing-client-type":"The reCAPTCHA client type is missing when sending request to the backend.","missing-recaptcha-version":"The reCAPTCHA version is missing when sending request to the backend.","invalid-req-type":"Invalid request parameters.","invalid-recaptcha-version":"The reCAPTCHA version is invalid when sending request to the backend.","unsupported-password-policy-schema-version":"The password policy received from the backend uses a schema version that is not supported by this version of the Firebase SDK.","password-does-not-meet-requirements":"The password does not meet the requirements.","invalid-hosting-link-domain":"The provided Hosting link domain is not configured in Firebase Hosting or is not owned by the current project. This cannot be a default Hosting domain (`web.app` or `firebaseapp.com`)."}}let Qi=Gi,Yi=new we("auth","Firebase",Gi()),Ji=new tt("@firebase/auth");function Xi(e,...t){Ji.logLevel<=c.ERROR&&Ji.error(`Auth (${qt}): `+e,...t)}function Zi(e,...t){throw is(e,...t)}function es(e,...t){return is(e,...t)}function ts(e,t,r){var n={...Qi(),[t]:r};return new we("auth","Firebase",n).create(t,{appName:e.name})}function rs(e){return ts(e,"operation-not-supported-in-this-environment","Operations that alter the current user are not supported in conjunction with FirebaseServerApp")}function ns(e,t,r){var n=r;if(!(t instanceof n))throw n.name!==t.constructor.name&&Zi(e,"argument-error"),ts(e,"argument-error",`Type of ${t.constructor.name} does not match expected instance.`+"Did you pass a reference from a different Auth SDK?")}function is(e,...t){var r,n;return"string"!=typeof e?(r=t[0],(n=[...t.slice(1)])[0]&&(n[0].appName=e.name),e._errorFactory.create(r,...n)):Yi.create(e,...t)}function m(e,t,...r){if(!e)throw is(t,...r)}function ss(e){var t="INTERNAL ASSERTION FAILED: "+e;throw Xi(t),new Error(t)}function as(e,t){e||ss(t)}function os(){return"undefined"!=typeof self&&self.location?.href||""}function ls(){return"http:"===hs()||"https:"===hs()}function hs(){return"undefined"!=typeof self&&self.location?.protocol||null}class us{constructor(e,t){as((this.shortDelay=e)<(this.longDelay=t),"Short delay should be less than long delay!"),this.isMobile=oe()||ce()}get(){return"undefined"!=typeof navigator&&navigator&&"onLine"in navigator&&"boolean"==typeof navigator.onLine&&(ls()||ue()||"connection"in navigator)&&!navigator.onLine?Math.min(5e3,this.shortDelay):this.isMobile?this.longDelay:this.shortDelay}}function cs(e,t){as(e.emulator,"Emulator should always be set here");var r=e.emulator.url;return t?""+r+(t.startsWith("/")?t.slice(1):t):r}class ds{static initialize(e,t,r){this.fetchImpl=e,t&&(this.headersImpl=t),r&&(this.responseImpl=r)}static fetch(){return this.fetchImpl||("undefined"!=typeof self&&"fetch"in self?self.fetch:"undefined"!=typeof globalThis&&globalThis.fetch?globalThis.fetch:"undefined"!=typeof fetch?fetch:void ss("Could not find fetch implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill"))}static headers(){return this.headersImpl||("undefined"!=typeof self&&"Headers"in self?self.Headers:"undefined"!=typeof globalThis&&globalThis.Headers?globalThis.Headers:"undefined"!=typeof Headers?Headers:void ss("Could not find Headers implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill"))}static response(){return this.responseImpl||("undefined"!=typeof self&&"Response"in self?self.Response:"undefined"!=typeof globalThis&&globalThis.Response?globalThis.Response:"undefined"!=typeof Response?Response:void ss("Could not find Response implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill"))}}let ps={CREDENTIAL_MISMATCH:"custom-token-mismatch",MISSING_CUSTOM_TOKEN:"internal-error",INVALID_IDENTIFIER:"invalid-email",MISSING_CONTINUE_URI:"internal-error",INVALID_PASSWORD:"wrong-password",MISSING_PASSWORD:"missing-password",INVALID_LOGIN_CREDENTIALS:"invalid-credential",EMAIL_EXISTS:"email-already-in-use",PASSWORD_LOGIN_DISABLED:"operation-not-allowed",INVALID_IDP_RESPONSE:"invalid-credential",INVALID_PENDING_TOKEN:"invalid-credential",FEDERATED_USER_ID_ALREADY_LINKED:"credential-already-in-use",MISSING_REQ_TYPE:"internal-error",EMAIL_NOT_FOUND:"user-not-found",RESET_PASSWORD_EXCEED_LIMIT:"too-many-requests",EXPIRED_OOB_CODE:"expired-action-code",INVALID_OOB_CODE:"invalid-action-code",MISSING_OOB_CODE:"internal-error",CREDENTIAL_TOO_OLD_LOGIN_AGAIN:"requires-recent-login",INVALID_ID_TOKEN:"invalid-user-token",TOKEN_EXPIRED:"user-token-expired",USER_NOT_FOUND:"user-token-expired",TOO_MANY_ATTEMPTS_TRY_LATER:"too-many-requests",PASSWORD_DOES_NOT_MEET_REQUIREMENTS:"password-does-not-meet-requirements",INVALID_CODE:"invalid-verification-code",INVALID_SESSION_INFO:"invalid-verification-id",INVALID_TEMPORARY_PROOF:"invalid-credential",MISSING_SESSION_INFO:"missing-verification-id",SESSION_EXPIRED:"code-expired",MISSING_ANDROID_PACKAGE_NAME:"missing-android-pkg-name",UNAUTHORIZED_DOMAIN:"unauthorized-continue-uri",INVALID_OAUTH_CLIENT_ID:"invalid-oauth-client-id",ADMIN_ONLY_OPERATION:"admin-restricted-operation",INVALID_MFA_PENDING_CREDENTIAL:"invalid-multi-factor-session",MFA_ENROLLMENT_NOT_FOUND:"multi-factor-info-not-found",MISSING_MFA_ENROLLMENT_ID:"missing-multi-factor-info",MISSING_MFA_PENDING_CREDENTIAL:"missing-multi-factor-session",SECOND_FACTOR_EXISTS:"second-factor-already-in-use",SECOND_FACTOR_LIMIT_EXCEEDED:"maximum-second-factor-count-exceeded",BLOCKING_FUNCTION_ERROR_RESPONSE:"internal-error",RECAPTCHA_NOT_ENABLED:"recaptcha-not-enabled",MISSING_RECAPTCHA_TOKEN:"missing-recaptcha-token",INVALID_RECAPTCHA_TOKEN:"invalid-recaptcha-token",INVALID_RECAPTCHA_ACTION:"invalid-recaptcha-action",MISSING_CLIENT_TYPE:"missing-client-type",MISSING_RECAPTCHA_VERSION:"missing-recaptcha-version",INVALID_RECAPTCHA_VERSION:"invalid-recaptcha-version",INVALID_REQ_TYPE:"invalid-req-type"},fs=["/v1/accounts:signInWithCustomToken","/v1/accounts:signInWithEmailLink","/v1/accounts:signInWithIdp","/v1/accounts:signInWithPassword","/v1/accounts:signInWithPhoneNumber","/v1/token"],gs=new us(3e4,6e4);function ms(e,t){return e.tenantId&&!t.tenantId?{...t,tenantId:e.tenantId}:t}async function vs(i,s,a,o,e={}){return _s(i,e,async()=>{let e={},t={};o&&("GET"===s?t=o:e={body:JSON.stringify(o)});var r=Pe({key:i.config.apiKey,...t}).slice(1),n=await i._getAdditionalHeaders(),n=(n["Content-Type"]="application/json",i.languageCode&&(n["X-Firebase-Locale"]=i.languageCode),{method:s,headers:n,...e});return"undefined"!=typeof navigator&&"Cloudflare-Workers"===navigator.userAgent||(n.referrerPolicy="no-referrer"),i.emulatorConfig&&ee(i.emulatorConfig.host)&&(n.credentials="include"),ds.fetch()(await ws(i,i.config.apiHost,a,r),n)})}async function _s(t,e,r){t._canInitEmulator=!1;var n={...ps,...e};try{var i=new bs(t),s=await Promise.race([r(),i.promise]),a=(i.clearNetworkTimeout(),await s.json());if("needConfirmation"in a)throw Is(t,"account-exists-with-different-credential",a);if(s.ok&&!("errorMessage"in a))return a;var[o,l]=(s.ok?a.errorMessage:a.error.message).split(" : ");if("FEDERATED_USER_ID_ALREADY_LINKED"===o)throw Is(t,"credential-already-in-use",a);if("EMAIL_EXISTS"===o)throw Is(t,"email-already-in-use",a);if("USER_DISABLED"===o)throw Is(t,"user-disabled",a);var h=n[o]||o.toLowerCase().replace(/[_\s]+/g,"-");if(l)throw ts(t,h,l);Zi(t,h)}catch(e){if(e instanceof ye)throw e;Zi(t,"network-request-failed",{message:String(e)})}}async function ys(e,t,r,n,i={}){var s=await vs(e,t,r,n,i);return"mfaPendingCredential"in s&&Zi(e,"multi-factor-auth-required",{_serverResponse:s}),s}async function ws(e,t,r,n){var i=""+t+r+"?"+n,s=e,i=s.config.emulator?cs(e.config,i):e.config.apiScheme+"://"+i;if(fs.includes(r)&&(await s._persistenceManagerAvailable,"COOKIE"===s._getPersistenceType()))return s._getPersistence()._getFinalTarget(i).toString();return i}class bs{clearNetworkTimeout(){clearTimeout(this.timer)}constructor(e){this.auth=e,this.timer=null,this.promise=new Promise((e,t)=>{this.timer=setTimeout(()=>t(es(this.auth,"network-request-failed")),gs.get())})}}function Is(e,t,r){var n={appName:e.name},n=(r.email&&(n.email=r.email),r.phoneNumber&&(n.phoneNumber=r.phoneNumber),es(e,t,n));return n.customData._tokenResponse=r,n}function Ts(e){return void 0!==e&&void 0!==e.getResponse}function Es(e){return void 0!==e&&void 0!==e.enterprise}class Cs{constructor(e){if(this.siteKey="",this.recaptchaEnforcementState=[],void 0===e.recaptchaKey)throw new Error("recaptchaKey undefined");this.siteKey=e.recaptchaKey.split("/")[3],this.recaptchaEnforcementState=e.recaptchaEnforcementState}getProviderEnforcementState(t){if(this.recaptchaEnforcementState&&0!==this.recaptchaEnforcementState.length)for(let e of this.recaptchaEnforcementState)if(e.provider&&e.provider===t){switch(e.enforcementState){case"ENFORCE":return"ENFORCE";case"AUDIT":return"AUDIT";case"OFF":return"OFF";default:return"ENFORCEMENT_STATE_UNSPECIFIED"}return}return null}isProviderEnabled(e){return"ENFORCE"===this.getProviderEnforcementState(e)||"AUDIT"===this.getProviderEnforcementState(e)}isAnyProviderEnabled(){return this.isProviderEnabled("EMAIL_PASSWORD_PROVIDER")||this.isProviderEnabled("PHONE_PROVIDER")}}async function Ss(e,t){return vs(e,"GET","/v2/recaptchaConfig",ms(e,t))}async function ks(e,t){return vs(e,"POST","/v1/accounts:lookup",t)}function As(e){if(e)try{var t=new Date(Number(e));if(!isNaN(t.getTime()))return t.toUTCString()}catch(e){}}function Ns(e){return 1e3*Number(e)}function Rs(e){var[t,r,n]=e.split(".");if(void 0===t||void 0===r||void 0===n)return Xi("JWT malformed, contained fewer than 3 sections"),null;try{var i=K(r);return i?JSON.parse(i):(Xi("Failed to decode base64 JWT payload"),null)}catch(e){return Xi("Caught error parsing JWT payload as JSON",e?.toString()),null}}function Ps(e){var t=Rs(e);return m(t,"internal-error"),m(void 0!==t.exp,"internal-error"),m(void 0!==t.iat,"internal-error"),Number(t.exp)-Number(t.iat)}async function Ds(t,e,r=!1){if(r)return e;try{return await e}catch(e){throw e instanceof ye&&(r=[e.code][0],"auth/user-disabled"===r||"auth/user-token-expired"===r)&&(t.auth.currentUser===t&&await t.auth.signOut()),e}}class xs{constructor(e){this.user=e,this.isRunning=!1,this.timerId=null,this.errorBackoff=3e4}_start(){this.isRunning||(this.isRunning=!0,this.schedule())}_stop(){this.isRunning&&(this.isRunning=!1,null!==this.timerId)&&clearTimeout(this.timerId)}getInterval(e){var t;return e?(t=this.errorBackoff,this.errorBackoff=Math.min(2*this.errorBackoff,96e4),t):(this.errorBackoff=3e4,t=(this.user.stsTokenManager.expirationTime??0)-Date.now()-3e5,Math.max(0,t))}schedule(e=!1){var t;this.isRunning&&(t=this.getInterval(e),this.timerId=setTimeout(async()=>{await this.iteration()},t))}async iteration(){try{await this.user.getIdToken(!0)}catch(e){return void("auth/network-request-failed"===e?.code&&this.schedule(!0))}this.schedule()}}class Os{constructor(e,t){this.createdAt=e,this.lastLoginAt=t,this._initializeTime()}_initializeTime(){this.lastSignInTime=As(this.lastLoginAt),this.creationTime=As(this.createdAt)}_copy(e){this.createdAt=e.createdAt,this.lastLoginAt=e.lastLoginAt,this._initializeTime()}toJSON(){return{createdAt:this.createdAt,lastLoginAt:this.lastLoginAt}}}async function Ms(e){var t,r,n=e.auth,i=await e.getIdToken(),i=await Ds(e,ks(n,{idToken:i})),n=(m(i?.users.length,n,"internal-error"),i.users[0]),i=(e._notifyReloadListener(n),n.providerUserInfo?.length?Ls(n.providerUserInfo):[]),i=(t=e.providerData,r=i,[...t.filter(t=>!r.some(e=>e.providerId===t.providerId)),...r]),s=!(e.email&&n.passwordHash||i.length),s=!!e.isAnonymous&&s,i={uid:n.localId,displayName:n.displayName||null,photoURL:n.photoUrl||null,email:n.email||null,emailVerified:n.emailVerified||!1,phoneNumber:n.phoneNumber||null,tenantId:n.tenantId||null,providerData:i,metadata:new Os(n.createdAt,n.lastLoginAt),isAnonymous:s};Object.assign(e,i)}function Ls(e){return e.map(({providerId:e,...t})=>({providerId:e,uid:t.rawId||"",displayName:t.displayName||null,email:t.email||null,phoneNumber:t.phoneNumber||null,photoURL:t.photoUrl||null}))}class Fs{constructor(){this.refreshToken=null,this.accessToken=null,this.expirationTime=null}get isExpired(){return!this.expirationTime||Date.now()>this.expirationTime-3e4}updateFromServerResponse(e){m(e.idToken,"internal-error"),m(void 0!==e.idToken,"internal-error"),m(void 0!==e.refreshToken,"internal-error");var t="expiresIn"in e&&void 0!==e.expiresIn?Number(e.expiresIn):Ps(e.idToken);this.updateTokensAndExpiration(e.idToken,e.refreshToken,t)}updateFromIdToken(e){m(0!==e.length,"internal-error");var t=Ps(e);this.updateTokensAndExpiration(e,null,t)}async getToken(e,t=!1){return t||!this.accessToken||this.isExpired?(m(this.refreshToken,e,"user-token-expired"),this.refreshToken?(await this.refresh(e,this.refreshToken),this.accessToken):null):this.accessToken}clearRefreshToken(){this.refreshToken=null}async refresh(e,t){i=t;var n,i,{accessToken:r,refreshToken:s,expiresIn:a}=await{accessToken:(r=await _s(n=e,{},async()=>{var e=Pe({grant_type:"refresh_token",refresh_token:i}).slice(1),{tokenApiHost:t,apiKey:r}=n.config,t=await ws(n,t,"/v1/token","key="+r),r=await n._getAdditionalHeaders(),r=(r["Content-Type"]="application/x-www-form-urlencoded",{method:"POST",headers:r,body:e});return n.emulatorConfig&&ee(n.emulatorConfig.host)&&(r.credentials="include"),ds.fetch()(t,r)})).access_token,expiresIn:r.expires_in,refreshToken:r.refresh_token};this.updateTokensAndExpiration(r,s,Number(a))}updateTokensAndExpiration(e,t,r){this.refreshToken=t||null,this.accessToken=e||null,this.expirationTime=Date.now()+1e3*r}static fromJSON(e,t){var{refreshToken:r,accessToken:n,expirationTime:i}=t,s=new Fs;return r&&(m("string"==typeof r,"internal-error",{appName:e}),s.refreshToken=r),n&&(m("string"==typeof n,"internal-error",{appName:e}),s.accessToken=n),i&&(m("number"==typeof i,"internal-error",{appName:e}),s.expirationTime=i),s}toJSON(){return{refreshToken:this.refreshToken,accessToken:this.accessToken,expirationTime:this.expirationTime}}_assign(e){this.accessToken=e.accessToken,this.refreshToken=e.refreshToken,this.expirationTime=e.expirationTime}_clone(){return Object.assign(new Fs,this.toJSON())}_performRefresh(){return ss("not implemented")}}function Us(e,t){m("string"==typeof e||void 0===e,"internal-error",{appName:t})}class Vs{constructor({uid:e,auth:t,stsTokenManager:r,...n}){this.providerId="firebase",this.proactiveRefresh=new xs(this),this.reloadUserInfo=null,this.reloadListener=null,this.uid=e,this.auth=t,this.stsTokenManager=r,this.accessToken=r.accessToken,this.displayName=n.displayName||null,this.email=n.email||null,this.emailVerified=n.emailVerified||!1,this.phoneNumber=n.phoneNumber||null,this.photoURL=n.photoURL||null,this.isAnonymous=n.isAnonymous||!1,this.tenantId=n.tenantId||null,this.providerData=n.providerData?[...n.providerData]:[],this.metadata=new Os(n.createdAt||void 0,n.lastLoginAt||void 0)}async getIdToken(e){var t=await Ds(this,this.stsTokenManager.getToken(this.auth,e));return m(t,this.auth,"internal-error"),this.accessToken!==t&&(this.accessToken=t,await this.auth._persistUserIfCurrent(this),this.auth._notifyListenersIfCurrent(this)),t}getIdTokenResult(e){return(async(e,t=!1)=>{var r=w(e),n=await r.getIdToken(t),i=Rs(n),s=(m(i&&i.exp&&i.auth_time&&i.iat,r.auth,"internal-error"),(r="object"==typeof i.firebase?i.firebase:void 0)?.sign_in_provider);return{claims:i,token:n,authTime:As(Ns(i.auth_time)),issuedAtTime:As(Ns(i.iat)),expirationTime:As(Ns(i.exp)),signInProvider:s||null,signInSecondFactor:r?.sign_in_second_factor||null}})(this,e)}reload(){return(async e=>{var t=w(e);await Ms(t),await t.auth._persistUserIfCurrent(t),t.auth._notifyListenersIfCurrent(t)})(this)}_assign(e){this!==e&&(m(this.uid===e.uid,this.auth,"internal-error"),this.displayName=e.displayName,this.photoURL=e.photoURL,this.email=e.email,this.emailVerified=e.emailVerified,this.phoneNumber=e.phoneNumber,this.isAnonymous=e.isAnonymous,this.tenantId=e.tenantId,this.providerData=e.providerData.map(e=>({...e})),this.metadata._copy(e.metadata),this.stsTokenManager._assign(e.stsTokenManager))}_clone(e){var t=new Vs({...this,auth:e,stsTokenManager:this.stsTokenManager._clone()});return t.metadata._copy(this.metadata),t}_onReload(e){m(!this.reloadListener,this.auth,"internal-error"),this.reloadListener=e,this.reloadUserInfo&&(this._notifyReloadListener(this.reloadUserInfo),this.reloadUserInfo=null)}_notifyReloadListener(e){this.reloadListener?this.reloadListener(e):this.reloadUserInfo=e}_startProactiveRefresh(){this.proactiveRefresh._start()}_stopProactiveRefresh(){this.proactiveRefresh._stop()}async _updateTokensIfNecessary(e,t=!1){let r=!1;e.idToken&&e.idToken!==this.stsTokenManager.accessToken&&(this.stsTokenManager.updateFromServerResponse(e),r=!0),t&&await Ms(this),await this.auth._persistUserIfCurrent(this),r&&this.auth._notifyListenersIfCurrent(this)}async delete(){var e;return h(this.auth.app)?Promise.reject(rs(this.auth)):(e=await this.getIdToken(),await Ds(this,(async(e,t)=>vs(e,"POST","/v1/accounts:delete",t))(this.auth,{idToken:e})),this.stsTokenManager.clearRefreshToken(),this.auth.signOut())}toJSON(){return{uid:this.uid,email:this.email||void 0,emailVerified:this.emailVerified,displayName:this.displayName||void 0,isAnonymous:this.isAnonymous,photoURL:this.photoURL||void 0,phoneNumber:this.phoneNumber||void 0,tenantId:this.tenantId||void 0,providerData:this.providerData.map(e=>({...e})),stsTokenManager:this.stsTokenManager.toJSON(),_redirectEventId:this._redirectEventId,...this.metadata.toJSON(),apiKey:this.auth.config.apiKey,appName:this.auth.name}}get refreshToken(){return this.stsTokenManager.refreshToken||""}static _fromJSON(e,t){var r=t.displayName??void 0,n=t.email??void 0,i=t.phoneNumber??void 0,s=t.photoURL??void 0,a=t.tenantId??void 0,o=t._redirectEventId??void 0,l=t.createdAt??void 0,h=t.lastLoginAt??void 0,{uid:u,emailVerified:c,isAnonymous:d,providerData:p,stsTokenManager:f}=t,f=(m(u&&f,e,"internal-error"),Fs.fromJSON(this.name,f)),u=(m("string"==typeof u,e,"internal-error"),Us(r,e.name),Us(n,e.name),m("boolean"==typeof c,e,"internal-error"),m("boolean"==typeof d,e,"internal-error"),Us(i,e.name),Us(s,e.name),Us(a,e.name),Us(o,e.name),Us(l,e.name),Us(h,e.name),new Vs({uid:u,auth:e,email:n,emailVerified:c,displayName:r,isAnonymous:d,photoURL:s,phoneNumber:i,tenantId:a,stsTokenManager:f,createdAt:l,lastLoginAt:h}));return p&&Array.isArray(p)&&(u.providerData=p.map(e=>({...e}))),o&&(u._redirectEventId=o),u}static async _fromIdTokenResponse(e,t,r=!1){var n=new Fs,n=(n.updateFromServerResponse(t),new Vs({uid:t.localId,auth:e,stsTokenManager:n,isAnonymous:r}));return await Ms(n),n}static async _fromGetAccountInfoResponse(e,t,r){var n=t.users[0],i=(m(void 0!==n.localId,"internal-error"),void 0!==n.providerUserInfo?Ls(n.providerUserInfo):[]),s=!(n.email&&n.passwordHash||i?.length),a=new Fs,a=(a.updateFromIdToken(r),new Vs({uid:n.localId,auth:e,stsTokenManager:a,isAnonymous:s})),s={uid:n.localId,displayName:n.displayName||null,photoURL:n.photoUrl||null,email:n.email||null,emailVerified:n.emailVerified||!1,phoneNumber:n.phoneNumber||null,tenantId:n.tenantId||null,providerData:i,metadata:new Os(n.createdAt,n.lastLoginAt),isAnonymous:!(n.email&&n.passwordHash||i?.length)};return Object.assign(a,s),a}}let qs=new Map;function Bs(e){as(e instanceof Function,"Expected a class definition");var t=qs.get(e);return t?as(t instanceof e,"Instance stored in cache mismatched with class"):(t=new e,qs.set(e,t)),t}class js{constructor(){this.type="NONE",this.storage={}}async _isAvailable(){return!0}async _set(e,t){this.storage[e]=t}async _get(e){var t=this.storage[e];return void 0===t?null:t}async _remove(e){delete this.storage[e]}_addListener(e,t){}_removeListener(e,t){}}js.type="NONE";let zs=js;function Ks(e,t,r){return`firebase:${e}:${t}:`+r}class Ws{constructor(e,t,r){this.persistence=e,this.auth=t,this.userKey=r;var{config:n,name:i}=this.auth;this.fullUserKey=Ks(this.userKey,n.apiKey,i),this.fullPersistenceKey=Ks("persistence",n.apiKey,i),this.boundEventHandler=t._onStorageEvent.bind(t),this.persistence._addListener(this.fullUserKey,this.boundEventHandler)}setCurrentUser(e){return this.persistence._set(this.fullUserKey,e.toJSON())}async getCurrentUser(){var e,t=await this.persistence._get(this.fullUserKey);return t?"string"==typeof t?(e=await ks(this.auth,{idToken:t}).catch(()=>{}))?Vs._fromGetAccountInfoResponse(this.auth,e,t):null:Vs._fromJSON(this.auth,t):null}removeCurrentUser(){return this.persistence._remove(this.fullUserKey)}savePersistenceForRedirect(){return this.persistence._set(this.fullPersistenceKey,this.persistence.type)}async setPersistence(e){var t;if(this.persistence!==e)return t=await this.getCurrentUser(),await this.removeCurrentUser(),this.persistence=e,t?this.setCurrentUser(t):void 0}delete(){this.persistence._removeListener(this.fullUserKey,this.boundEventHandler)}static async create(t,e,r="authUser"){if(!e.length)return new Ws(Bs(zs),t,r);var n,i=(await Promise.all(e.map(async e=>{if(await e._isAvailable())return e}))).filter(e=>e);let s=i[0]||Bs(zs),a=Ks(r,t.config.apiKey,t.name),o=null;for(n of e)try{var l=await n._get(a);if(l){let e;if("string"==typeof l){var h=await ks(t,{idToken:l}).catch(()=>{});if(!h)break;e=await Vs._fromGetAccountInfoResponse(t,h,l)}else e=Vs._fromJSON(t,l);n!==s&&(o=e),s=n;break}}catch{}i=i.filter(e=>e._shouldAllowMigration);return s._shouldAllowMigration&&i.length&&(s=i[0],o&&await s._set(a,o.toJSON()),await Promise.all(e.map(async e=>{if(e!==s)try{await e._remove(a)}catch{}}))),new Ws(s,t,r)}}function Hs(e){var t=e.toLowerCase();return t.includes("opera/")||t.includes("opr/")||t.includes("opios/")?"Opera":Ys(t)?"IEMobile":t.includes("msie")||t.includes("trident/")?"IE":t.includes("edge/")?"Edge":Gs(t)?"Firefox":t.includes("silk/")?"Silk":Xs(t)?"Blackberry":Zs(t)?"Webos":$s(t)?"Safari":!t.includes("chrome/")&&!Qs(t)||t.includes("edge/")?Js(t)?"Android":2===(t=e.match(/([a-zA-Z\d\.]+)\/[a-zA-Z\d\.]*$/))?.length?t[1]:"Other":"Chrome"}function Gs(e=ae()){return/firefox\//i.test(e)}function $s(e=ae()){var t=e.toLowerCase();return t.includes("safari/")&&!t.includes("chrome/")&&!t.includes("crios/")&&!t.includes("android")}function Qs(e=ae()){return/crios\//i.test(e)}function Ys(e=ae()){return/iemobile/i.test(e)}function Js(e=ae()){return/android/i.test(e)}function Xs(e=ae()){return/blackberry/i.test(e)}function Zs(e=ae()){return/webos/i.test(e)}function ea(e=ae()){return/iphone|ipad|ipod/i.test(e)||/macintosh/i.test(e)&&/mobile/i.test(e)}function ta(e=ae()){return ea(e)||Js(e)||Zs(e)||Xs(e)||/windows phone/i.test(e)||Ys(e)}function ra(e,t=[]){let r;switch(e){case"Browser":r=Hs(ae());break;case"Worker":r=Hs(ae())+"-"+e;break;default:r=e}var n=t.length?t.join(","):"FirebaseCore-web";return`${r}/JsCore/${qt}/`+n}class na{constructor(e){this.auth=e,this.queue=[]}pushCallback(n,e){var t=r=>new Promise((e,t)=>{try{e(n(r))}catch(e){t(e)}});t.onAbort=e,this.queue.push(t);let r=this.queue.length-1;return()=>{this.queue[r]=()=>Promise.resolve()}}async runMiddleware(e){if(this.auth.currentUser!==e){var t=[];try{for(var r of this.queue)await r(e),r.onAbort&&t.push(r.onAbort)}catch(e){t.reverse();for(var n of t)try{n()}catch(e){}throw this.auth._errorFactory.create("login-blocked",{originalMessage:e?.message})}}}}class ia{constructor(e){var t=e.customStrengthOptions;this.customStrengthOptions={},this.customStrengthOptions.minPasswordLength=t.minPasswordLength??6,t.maxPasswordLength&&(this.customStrengthOptions.maxPasswordLength=t.maxPasswordLength),void 0!==t.containsLowercaseCharacter&&(this.customStrengthOptions.containsLowercaseLetter=t.containsLowercaseCharacter),void 0!==t.containsUppercaseCharacter&&(this.customStrengthOptions.containsUppercaseLetter=t.containsUppercaseCharacter),void 0!==t.containsNumericCharacter&&(this.customStrengthOptions.containsNumericCharacter=t.containsNumericCharacter),void 0!==t.containsNonAlphanumericCharacter&&(this.customStrengthOptions.containsNonAlphanumericCharacter=t.containsNonAlphanumericCharacter),this.enforcementState=e.enforcementState,"ENFORCEMENT_STATE_UNSPECIFIED"===this.enforcementState&&(this.enforcementState="OFF"),this.allowedNonAlphanumericCharacters=e.allowedNonAlphanumericCharacters?.join("")??"",this.forceUpgradeOnSignin=e.forceUpgradeOnSignin??!1,this.schemaVersion=e.schemaVersion}validatePassword(e){var t={isValid:!0,passwordPolicy:this};return this.validatePasswordLengthOptions(e,t),this.validatePasswordCharacterOptions(e,t),t.isValid&&(t.isValid=t.meetsMinPasswordLength??!0),t.isValid&&(t.isValid=t.meetsMaxPasswordLength??!0),t.isValid&&(t.isValid=t.containsLowercaseLetter??!0),t.isValid&&(t.isValid=t.containsUppercaseLetter??!0),t.isValid&&(t.isValid=t.containsNumericCharacter??!0),t.isValid&&(t.isValid=t.containsNonAlphanumericCharacter??!0),t}validatePasswordLengthOptions(e,t){var r=this.customStrengthOptions.minPasswordLength,n=this.customStrengthOptions.maxPasswordLength;r&&(t.meetsMinPasswordLength=e.length>=r),n&&(t.meetsMaxPasswordLength=e.length<=n)}validatePasswordCharacterOptions(e,t){var r;this.updatePasswordCharacterOptionsStatuses(t,!1,!1,!1,!1);for(let n=0;n<e.length;n++)r=e.charAt(n),this.updatePasswordCharacterOptionsStatuses(t,"a"<=r&&r<="z","A"<=r&&r<="Z","0"<=r&&r<="9",this.allowedNonAlphanumericCharacters.includes(r))}updatePasswordCharacterOptionsStatuses(e,t,r,n,i){this.customStrengthOptions.containsLowercaseLetter&&!e.containsLowercaseLetter&&(e.containsLowercaseLetter=t),this.customStrengthOptions.containsUppercaseLetter&&!e.containsUppercaseLetter&&(e.containsUppercaseLetter=r),this.customStrengthOptions.containsNumericCharacter&&!e.containsNumericCharacter&&(e.containsNumericCharacter=n),this.customStrengthOptions.containsNonAlphanumericCharacter&&!e.containsNonAlphanumericCharacter&&(e.containsNonAlphanumericCharacter=i)}}class sa{constructor(e,t,r,n){this.app=e,this.heartbeatServiceProvider=t,this.appCheckServiceProvider=r,this.config=n,this.currentUser=null,this.emulatorConfig=null,this.operations=Promise.resolve(),this.authStateSubscription=new oa(this),this.idTokenSubscription=new oa(this),this.beforeStateQueue=new na(this),this.redirectUser=null,this.isProactiveRefreshEnabled=!1,this.EXPECTED_PASSWORD_POLICY_SCHEMA_VERSION=1,this._canInitEmulator=!0,this._isInitialized=!1,this._deleted=!1,this._initializationPromise=null,this._popupRedirectResolver=null,this._errorFactory=Yi,this._agentRecaptchaConfig=null,this._tenantRecaptchaConfigs={},this._projectPasswordPolicy=null,this._tenantPasswordPolicies={},this._resolvePersistenceManagerAvailable=void 0,this.lastNotifiedUid=void 0,this.languageCode=null,this.tenantId=null,this.settings={appVerificationDisabledForTesting:!1},this.frameworks=[],this.name=e.name,this.clientVersion=n.sdkClientVersion,this._persistenceManagerAvailable=new Promise(e=>this._resolvePersistenceManagerAvailable=e)}_initializeWithPersistence(e,t){return t&&(this._popupRedirectResolver=Bs(t)),this._initializationPromise=this.queue(async()=>{if(!this._deleted&&(this.persistenceManager=await Ws.create(this,e),this._resolvePersistenceManagerAvailable?.(),!this._deleted)){if(this._popupRedirectResolver?._shouldInitProactively)try{await this._popupRedirectResolver._initialize(this)}catch(e){}await this.initializeCurrentUser(t),this.lastNotifiedUid=this.currentUser?.uid||null,this._deleted||(this._isInitialized=!0)}}),this._initializationPromise}async _onStorageEvent(){var e;!this._deleted&&(e=await this.assertedPersistence.getCurrentUser(),this.currentUser||e)&&(this.currentUser&&e&&this.currentUser.uid===e.uid?(this._currentUser._assign(e),await this.currentUser.getIdToken()):await this._updateCurrentUser(e,!0))}async initializeCurrentUserFromIdToken(e){try{var t=await ks(this,{idToken:e}),r=await Vs._fromGetAccountInfoResponse(this,t,e);await this.directlySetCurrentUser(r)}catch(e){console.warn("FirebaseServerApp could not login user with provided authIdToken: ",e),await this.directlySetCurrentUser(null)}}async initializeCurrentUser(e){if(h(this.app)){let t=this.app.settings.authIdToken;return t?new Promise(e=>{setTimeout(()=>this.initializeCurrentUserFromIdToken(t).then(e,e))}):this.directlySetCurrentUser(null)}var t,r,n,i=await this.assertedPersistence.getCurrentUser();let s=i,a=!1;if(e&&this.config.authDomain&&(await this.getOrInitRedirectPersistenceManager(),t=this.redirectUser?._redirectEventId,r=s?._redirectEventId,n=await this.tryRedirectSignIn(e),t&&t!==r||!n?.user||(s=n.user,a=!0)),!s)return this.directlySetCurrentUser(null);if(s._redirectEventId)return m(this._popupRedirectResolver,this,"argument-error"),await this.getOrInitRedirectPersistenceManager(),this.redirectUser&&this.redirectUser._redirectEventId===s._redirectEventId?this.directlySetCurrentUser(s):this.reloadAndSetCurrentUserOrClear(s);if(a)try{await this.beforeStateQueue.runMiddleware(s)}catch(e){s=i,this._popupRedirectResolver._overrideRedirectResult(this,()=>Promise.reject(e))}return s?this.reloadAndSetCurrentUserOrClear(s):this.directlySetCurrentUser(null)}async tryRedirectSignIn(e){let t=null;try{t=await this._popupRedirectResolver._completeRedirectFn(this,e,!0)}catch(e){await this._setRedirectUser(null)}return t}async reloadAndSetCurrentUserOrClear(e){try{await Ms(e)}catch(e){if("auth/network-request-failed"!==e?.code)return this.directlySetCurrentUser(null)}return this.directlySetCurrentUser(e)}useDeviceLanguage(){var e;this.languageCode="undefined"!=typeof navigator&&((e=navigator).languages&&e.languages[0]||e.language)||null}async _delete(){this._deleted=!0}async updateCurrentUser(e){var t;return h(this.app)?Promise.reject(rs(this)):((t=e?w(e):null)&&m(t.auth.config.apiKey===this.config.apiKey,this,"invalid-user-token"),this._updateCurrentUser(t&&t._clone(this)))}async _updateCurrentUser(e,t=!1){if(!this._deleted)return e&&m(this.tenantId===e.tenantId,this,"tenant-id-mismatch"),t||await this.beforeStateQueue.runMiddleware(e),this.queue(async()=>{await this.directlySetCurrentUser(e),this.notifyAuthListeners()})}async signOut(){return h(this.app)?Promise.reject(rs(this)):(await this.beforeStateQueue.runMiddleware(null),(this.redirectPersistenceManager||this._popupRedirectResolver)&&await this._setRedirectUser(null),this._updateCurrentUser(null,!0))}setPersistence(e){return h(this.app)?Promise.reject(rs(this)):this.queue(async()=>{await this.assertedPersistence.setPersistence(Bs(e))})}_getRecaptchaConfig(){return null==this.tenantId?this._agentRecaptchaConfig:this._tenantRecaptchaConfigs[this.tenantId]}async validatePassword(e){this._getPasswordPolicyInternal()||await this._updatePasswordPolicy();var t=this._getPasswordPolicyInternal();return t.schemaVersion!==this.EXPECTED_PASSWORD_POLICY_SCHEMA_VERSION?Promise.reject(this._errorFactory.create("unsupported-password-policy-schema-version",{})):t.validatePassword(e)}_getPasswordPolicyInternal(){return null===this.tenantId?this._projectPasswordPolicy:this._tenantPasswordPolicies[this.tenantId]}async _updatePasswordPolicy(){var e,t=await vs(e=this,"GET","/v2/passwordPolicy",ms(e,{})),t=new ia(t);null===this.tenantId?this._projectPasswordPolicy=t:this._tenantPasswordPolicies[this.tenantId]=t}_getPersistenceType(){return this.assertedPersistence.persistence.type}_getPersistence(){return this.assertedPersistence.persistence}_updateErrorMap(e){this._errorFactory=new we("auth","Firebase",e())}onAuthStateChanged(e,t,r){return this.registerStateListener(this.authStateSubscription,e,t,r)}beforeAuthStateChanged(e,t){return this.beforeStateQueue.pushCallback(e,t)}onIdTokenChanged(e,t,r){return this.registerStateListener(this.idTokenSubscription,e,t,r)}authStateReady(){return new Promise((t,r)=>{if(this.currentUser)t();else{let e=this.onAuthStateChanged(()=>{e(),t()},r)}})}async revokeAccessToken(e){var t;this.currentUser&&(t={providerId:"apple.com",tokenType:"ACCESS_TOKEN",token:e,idToken:await this.currentUser.getIdToken()},null!=this.tenantId&&(t.tenantId=this.tenantId),await vs(e=this,"POST","/v2/accounts:revokeToken",ms(e,t)))}toJSON(){return{apiKey:this.config.apiKey,authDomain:this.config.authDomain,appName:this.name,currentUser:this._currentUser?.toJSON()}}async _setRedirectUser(e,t){var r=await this.getOrInitRedirectPersistenceManager(t);return null===e?r.removeCurrentUser():r.setCurrentUser(e)}async getOrInitRedirectPersistenceManager(e){var t;return this.redirectPersistenceManager||(m(t=e&&Bs(e)||this._popupRedirectResolver,this,"argument-error"),this.redirectPersistenceManager=await Ws.create(this,[Bs(t._redirectPersistence)],"redirectUser"),this.redirectUser=await this.redirectPersistenceManager.getCurrentUser()),this.redirectPersistenceManager}async _redirectUserForId(e){return this._isInitialized&&await this.queue(async()=>{}),this._currentUser?._redirectEventId===e?this._currentUser:this.redirectUser?._redirectEventId===e?this.redirectUser:null}async _persistUserIfCurrent(e){if(e===this.currentUser)return this.queue(async()=>this.directlySetCurrentUser(e))}_notifyListenersIfCurrent(e){e===this.currentUser&&this.notifyAuthListeners()}_key(){return`${this.config.authDomain}:${this.config.apiKey}:`+this.name}_startProactiveRefresh(){this.isProactiveRefreshEnabled=!0,this.currentUser&&this._currentUser._startProactiveRefresh()}_stopProactiveRefresh(){this.isProactiveRefreshEnabled=!1,this.currentUser&&this._currentUser._stopProactiveRefresh()}get _currentUser(){return this.currentUser}notifyAuthListeners(){var e;this._isInitialized&&(this.idTokenSubscription.next(this.currentUser),e=this.currentUser?.uid??null,this.lastNotifiedUid!==e)&&(this.lastNotifiedUid=e,this.authStateSubscription.next(this.currentUser))}registerStateListener(t,r,n,i){if(this._deleted)return()=>{};let e="function"==typeof r?r:r.next.bind(r),s=!1;var a=this._isInitialized?Promise.resolve():this._initializationPromise;if(m(a,this,"internal-error"),a.then(()=>{s||e(this.currentUser)}),"function"==typeof r){let e=t.addObserver(r,n,i);return()=>{s=!0,e()}}{let e=t.addObserver(r);return()=>{s=!0,e()}}}async directlySetCurrentUser(e){this.currentUser&&this.currentUser!==e&&this._currentUser._stopProactiveRefresh(),e&&this.isProactiveRefreshEnabled&&e._startProactiveRefresh(),(this.currentUser=e)?await this.assertedPersistence.setCurrentUser(e):await this.assertedPersistence.removeCurrentUser()}queue(e){return this.operations=this.operations.then(e,e),this.operations}get assertedPersistence(){return m(this.persistenceManager,this,"internal-error"),this.persistenceManager}_logFramework(e){e&&!this.frameworks.includes(e)&&(this.frameworks.push(e),this.frameworks.sort(),this.clientVersion=ra(this.config.clientPlatform,this._getFrameworks()))}_getFrameworks(){return this.frameworks}async _getAdditionalHeaders(){var e={"X-Client-Version":this.clientVersion},t=(this.app.options.appId&&(e["X-Firebase-gmpid"]=this.app.options.appId),await this.heartbeatServiceProvider.getImmediate({optional:!0})?.getHeartbeatsHeader()),t=(t&&(e["X-Firebase-Client"]=t),await this._getAppCheckToken());return t&&(e["X-Firebase-AppCheck"]=t),e}async _getAppCheckToken(){var e,t,r;return h(this.app)&&this.app.settings.appCheckToken?this.app.settings.appCheckToken:((e=await this.appCheckServiceProvider.getImmediate({optional:!0})?.getToken())?.error&&(t="Error while retrieving App Check token: "+e.error,r=[],Ji.logLevel<=c.WARN)&&Ji.warn(`Auth (${qt}): `+t,...r),e?.token)}}function aa(e){return w(e)}class oa{constructor(e){this.auth=e,this.observer=null,this.addObserver=Me(e=>this.observer=e)}get next(){return m(this.observer,this.auth,"internal-error"),this.observer.next.bind(this.observer)}}let la={async loadJS(){throw new Error("Unable to load external scripts")},recaptchaV2Script:"",recaptchaEnterpriseScript:"",gapiScript:""};function ha(e){return la.loadJS(e)}function ua(e){return"__"+e+Math.floor(1e6*Math.random())}class ca{constructor(e){this.auth=e,this.counter=1e12,this._widgets=new Map}render(e,t){var r=this.counter;return this._widgets.set(r,new fa(e,this.auth.name,t||{})),this.counter++,r}reset(e){var t=e||1e12;this._widgets.get(t)?.delete(),this._widgets.delete(t)}getResponse(e){return this._widgets.get(e||1e12)?.getResponse()||""}async execute(e){return this._widgets.get(e||1e12)?.execute(),""}}class da{constructor(){this.enterprise=new pa}ready(e){e()}execute(e,t){return Promise.resolve("token")}render(e,t){return""}}class pa{ready(e){e()}execute(e,t){return Promise.resolve("token")}render(e,t){return""}}class fa{constructor(e,t,r){this.params=r,this.timerId=null,this.deleted=!1,this.responseToken=null,this.clickHandler=()=>{this.execute()};var n="string"==typeof e?document.getElementById(e):e;m(n,"argument-error",{appName:t}),this.container=n,this.isVisible="invisible"!==this.params.size,this.isVisible?this.execute():this.container.addEventListener("click",this.clickHandler)}getResponse(){return this.checkIfDeleted(),this.responseToken}delete(){this.checkIfDeleted(),this.deleted=!0,this.timerId&&(clearTimeout(this.timerId),this.timerId=null),this.container.removeEventListener("click",this.clickHandler)}execute(){this.checkIfDeleted(),this.timerId||(this.timerId=window.setTimeout(()=>{this.responseToken=(e=>{var t=[],r="1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";for(let n=0;n<e;n++)t.push(r.charAt(Math.floor(Math.random()*r.length)));return t.join("")})(50);let{callback:e,"expired-callback":t}=this.params;if(e)try{e(this.responseToken)}catch(e){}this.timerId=window.setTimeout(()=>{if(this.timerId=null,this.responseToken=null,t)try{t()}catch(e){}this.isVisible&&this.execute()},6e4)},500))}checkIfDeleted(){if(this.deleted)throw new Error("reCAPTCHA mock was already deleted!")}}let ga="NO_RECAPTCHA";class ma{constructor(e){this.type="recaptcha-enterprise",this.auth=aa(e)}async verify(i="verify",e=!1){function s(e,t,r){let n=window.grecaptcha;Es(n)?n.enterprise.ready(()=>{n.enterprise.execute(e,{action:i}).then(e=>{t(e)}).catch(()=>{t(ga)})}):r(Error("No reCAPTCHA enterprise script loaded."))}return this.auth.settings.appVerificationDisabledForTesting?(new da).execute("siteKey",{action:"verify"}):new Promise((r,n)=>{(async i=>{if(!e){if(null==i.tenantId&&null!=i._agentRecaptchaConfig)return i._agentRecaptchaConfig.siteKey;if(null!=i.tenantId&&void 0!==i._tenantRecaptchaConfigs[i.tenantId])return i._tenantRecaptchaConfigs[i.tenantId].siteKey}return new Promise(async(r,n)=>{Ss(i,{clientType:"CLIENT_TYPE_WEB",version:"RECAPTCHA_ENTERPRISE"}).then(e=>{var t;if(void 0!==e.recaptchaKey)return t=new Cs(e),null==i.tenantId?i._agentRecaptchaConfig=t:i._tenantRecaptchaConfigs[i.tenantId]=t,r(t.siteKey);n(new Error("recaptcha Enterprise site key undefined"))}).catch(e=>{n(e)})})})(this.auth).then(t=>{if(!e&&Es(window.grecaptcha))s(t,r,n);else if("undefined"==typeof window)n(new Error("RecaptchaVerifier is only supported in browser"));else{let e=la.recaptchaEnterpriseScript;0!==e.length&&(e+=t),ha(e).then(()=>{s(t,r,n)}).catch(e=>{n(e)})}}).catch(e=>{n(e)})})}}async function va(e,t,r,n=!1,i=!1){var s=new ma(e);let a;if(i)a=ga;else try{a=await s.verify(r)}catch(e){a=await s.verify(r,!0)}var o,l,s={...t};return"mfaSmsEnrollment"===r||"mfaSmsSignIn"===r?"phoneEnrollmentInfo"in s?(l=s.phoneEnrollmentInfo.phoneNumber,o=s.phoneEnrollmentInfo.recaptchaToken,Object.assign(s,{phoneEnrollmentInfo:{phoneNumber:l,recaptchaToken:o,captchaResponse:a,clientType:"CLIENT_TYPE_WEB",recaptchaVersion:"RECAPTCHA_ENTERPRISE"}})):"phoneSignInInfo"in s&&(l=s.phoneSignInInfo.recaptchaToken,Object.assign(s,{phoneSignInInfo:{recaptchaToken:l,captchaResponse:a,clientType:"CLIENT_TYPE_WEB",recaptchaVersion:"RECAPTCHA_ENTERPRISE"}})):(n?Object.assign(s,{captchaResp:a}):Object.assign(s,{captchaResponse:a}),Object.assign(s,{clientType:"CLIENT_TYPE_WEB"}),Object.assign(s,{recaptchaVersion:"RECAPTCHA_ENTERPRISE"})),s}async function _a(r,n,i,s,e){var t;return"EMAIL_PASSWORD_PROVIDER"===e?r._getRecaptchaConfig()?.isProviderEnabled("EMAIL_PASSWORD_PROVIDER")?(t=await va(r,n,i,"getOobCode"===i),s(r,t)):s(r,n).catch(async e=>{var t;return"auth/missing-recaptcha-token"===e.code?(console.log(i+" is protected by reCAPTCHA Enterprise for this project. Automatically triggering the reCAPTCHA flow and restarting the flow."),t=await va(r,n,i,"getOobCode"===i),s(r,t)):Promise.reject(e)}):"PHONE_PROVIDER"===e?r._getRecaptchaConfig()?.isProviderEnabled("PHONE_PROVIDER")?(t=await va(r,n,i),s(r,t).catch(async e=>{var t;if("AUDIT"===r._getRecaptchaConfig()?.getProviderEnforcementState("PHONE_PROVIDER")&&("auth/missing-recaptcha-token"===e.code||"auth/invalid-app-credential"===e.code))return console.log(`Failed to verify with reCAPTCHA Enterprise. Automatically triggering the reCAPTCHA v2 flow to complete the ${i} flow.`),t=await va(r,n,i,!1,!0),s(r,t);return Promise.reject(e)})):(t=await va(r,n,i,!1,!0),s(r,t)):Promise.reject(e+" provider is not supported.")}function ya(e,t,r){var n=aa(e),i=(m(/^https?:\/\//.test(t),n,"invalid-emulator-scheme"),!!r?.disableWarnings),s=wa(t),{host:a,port:o}=(e=>{var t,r=wa(e);return(r=/(\/\/)?([^?#/]+)/.exec(e.substr(r.length)))?(r=r[2].split("@").pop()||"",(t=/^(\[[^\]]+\])(:|$)/.exec(r))?{host:t=t[1],port:ba(r.substr(t.length+1))}:([t,r]=r.split(":"),{host:t,port:ba(r)})):{host:"",port:null}})(t),l=null===o?"":":"+o,h={url:s+`//${a}${l}/`},o=Object.freeze({host:a,port:o,protocol:s.replace(":",""),options:Object.freeze({disableWarnings:i})});function u(){var e=document.createElement("p"),t=e.style;e.innerText="Running in emulator mode. Do not use with production credentials.",t.position="fixed",t.width="100%",t.backgroundColor="#ffffff",t.border=".1em solid #000000",t.color="#b50000",t.bottom="0px",t.left="0px",t.margin="0px",t.zIndex="10000",t.textAlign="center",e.classList.add("firebase-emulator-warning"),document.body.appendChild(e)}n._canInitEmulator?(n.config.emulator=h,n.emulatorConfig=o,n.settings.appVerificationDisabledForTesting=!0,ee(a)?(te(s+"//"+a+l),se("Auth",!0)):i||("undefined"!=typeof console&&"function"==typeof console.info&&console.info("WARNING: You are using the Auth Emulator, which is intended for local testing only. Do not use with production credentials."),"undefined"!=typeof window&&"undefined"!=typeof document&&("loading"===document.readyState?window.addEventListener("DOMContentLoaded",u):u()))):(m(n.config.emulator&&n.emulatorConfig,n,"emulator-config-failed"),m(Ne(h,n.config.emulator)&&Ne(o,n.emulatorConfig),n,"emulator-config-failed"))}function wa(e){var t=e.indexOf(":");return t<0?"":e.substr(0,t+1)}function ba(e){var t;return!e||(t=Number(e),isNaN(t))?null:t}class Ia{constructor(e,t){this.providerId=e,this.signInMethod=t}toJSON(){return ss("not implemented")}_getIdTokenResponse(e){return ss("not implemented")}_linkToIdToken(e,t){return ss("not implemented")}_getReauthenticationResolver(e){return ss("not implemented")}}async function Ta(e,t){return vs(e,"POST","/v1/accounts:resetPassword",ms(e,t))}async function Ea(e,t){return vs(e,"POST","/v1/accounts:signUp",t)}async function Ca(e,t){return ys(e,"POST","/v1/accounts:signInWithPassword",ms(e,t))}async function Sa(e,t){return vs(e,"POST","/v1/accounts:sendOobCode",ms(e,t))}async function ka(e,t){return Sa(e,t)}async function Aa(e,t){return Sa(e,t)}class Na extends Ia{constructor(e,t,r,n=null){super("password",r),this._email=e,this._password=t,this._tenantId=n}static _fromEmailAndPassword(e,t){return new Na(e,t,"password")}static _fromEmailAndCode(e,t,r=null){return new Na(e,t,"emailLink",r)}toJSON(){return{email:this._email,password:this._password,signInMethod:this.signInMethod,tenantId:this._tenantId}}static fromJSON(e){var t="string"==typeof e?JSON.parse(e):e;if(t?.email&&t?.password){if("password"===t.signInMethod)return this._fromEmailAndPassword(t.email,t.password);if("emailLink"===t.signInMethod)return this._fromEmailAndCode(t.email,t.password,t.tenantId)}return null}async _getIdTokenResponse(e){switch(this.signInMethod){case"password":return _a(e,{returnSecureToken:!0,email:this._email,password:this._password,clientType:"CLIENT_TYPE_WEB"},"signInWithPassword",Ca,"EMAIL_PASSWORD_PROVIDER");case"emailLink":return(async(e,t)=>ys(e,"POST","/v1/accounts:signInWithEmailLink",ms(e,t)))(e,{email:this._email,oobCode:this._password});default:Zi(e,"internal-error")}}async _linkToIdToken(e,t){switch(this.signInMethod){case"password":return _a(e,{idToken:t,returnSecureToken:!0,email:this._email,password:this._password,clientType:"CLIENT_TYPE_WEB"},"signUpPassword",Ea,"EMAIL_PASSWORD_PROVIDER");case"emailLink":return(async(e,t)=>ys(e,"POST","/v1/accounts:signInWithEmailLink",ms(e,t)))(e,{idToken:t,email:this._email,oobCode:this._password});default:Zi(e,"internal-error")}}_getReauthenticationResolver(e){return this._getIdTokenResponse(e)}}async function Ra(e,t){return ys(e,"POST","/v1/accounts:signInWithIdp",ms(e,t))}class Pa extends Ia{constructor(){super(...arguments),this.pendingToken=null}static _fromParams(e){var t=new Pa(e.providerId,e.signInMethod);return e.idToken||e.accessToken?(e.idToken&&(t.idToken=e.idToken),e.accessToken&&(t.accessToken=e.accessToken),e.nonce&&!e.pendingToken&&(t.nonce=e.nonce),e.pendingToken&&(t.pendingToken=e.pendingToken)):e.oauthToken&&e.oauthTokenSecret?(t.accessToken=e.oauthToken,t.secret=e.oauthTokenSecret):Zi("argument-error"),t}toJSON(){return{idToken:this.idToken,accessToken:this.accessToken,secret:this.secret,nonce:this.nonce,pendingToken:this.pendingToken,providerId:this.providerId,signInMethod:this.signInMethod}}static fromJSON(e){var t;let{providerId:r,signInMethod:n,...i}="string"==typeof e?JSON.parse(e):e;return r&&n?((t=new Pa(r,n)).idToken=i.idToken||void 0,t.accessToken=i.accessToken||void 0,t.secret=i.secret,t.nonce=i.nonce,t.pendingToken=i.pendingToken||null,t):null}_getIdTokenResponse(e){return Ra(e,this.buildRequest())}_linkToIdToken(e,t){var r=this.buildRequest();return r.idToken=t,Ra(e,r)}_getReauthenticationResolver(e){var t=this.buildRequest();return t.autoCreate=!1,Ra(e,t)}buildRequest(){var e,t={requestUri:"http://localhost",returnSecureToken:!0};return this.pendingToken?t.pendingToken=this.pendingToken:(e={},this.idToken&&(e.id_token=this.idToken),this.accessToken&&(e.access_token=this.accessToken),this.secret&&(e.oauth_token_secret=this.secret),e.providerId=this.providerId,this.nonce&&!this.pendingToken&&(e.nonce=this.nonce),t.postBody=Pe(e)),t}}async function Da(e,t){return vs(e,"POST","/v1/accounts:sendVerificationCode",ms(e,t))}let xa={USER_NOT_FOUND:"user-not-found"};class Oa extends Ia{constructor(e){super("phone","phone"),this.params=e}static _fromVerification(e,t){return new Oa({verificationId:e,verificationCode:t})}static _fromTokenResponse(e,t){return new Oa({phoneNumber:e,temporaryProof:t})}_getIdTokenResponse(e){return(async(e,t)=>ys(e,"POST","/v1/accounts:signInWithPhoneNumber",ms(e,t)))(e,this._makeVerificationRequest())}_linkToIdToken(e,t){return(async(e,t)=>{var r=await ys(e,"POST","/v1/accounts:signInWithPhoneNumber",ms(e,t));if(r.temporaryProof)throw Is(e,"account-exists-with-different-credential",r);return r})(e,{idToken:t,...this._makeVerificationRequest()})}_getReauthenticationResolver(e){return(async(e,t)=>ys(e,"POST","/v1/accounts:signInWithPhoneNumber",ms(e,{...t,operation:"REAUTH"}),xa))(e,this._makeVerificationRequest())}_makeVerificationRequest(){var{temporaryProof:e,phoneNumber:t,verificationId:r,verificationCode:n}=this.params;return e&&t?{temporaryProof:e,phoneNumber:t}:{sessionInfo:r,code:n}}toJSON(){var e={providerId:this.providerId};return this.params.phoneNumber&&(e.phoneNumber=this.params.phoneNumber),this.params.temporaryProof&&(e.temporaryProof=this.params.temporaryProof),this.params.verificationCode&&(e.verificationCode=this.params.verificationCode),this.params.verificationId&&(e.verificationId=this.params.verificationId),e}static fromJSON(e){var{verificationId:t,verificationCode:r,phoneNumber:n,temporaryProof:i}=e="string"==typeof e?JSON.parse(e):e;return r||t||n||i?new Oa({verificationId:t,verificationCode:r,phoneNumber:n,temporaryProof:i}):null}}class Ma{constructor(e){var t=De(xe(e)),r=t.apiKey??null,n=t.oobCode??null,i=(e=>{switch(e){case"recoverEmail":return"RECOVER_EMAIL";case"resetPassword":return"PASSWORD_RESET";case"signIn":return"EMAIL_SIGNIN";case"verifyEmail":return"VERIFY_EMAIL";case"verifyAndChangeEmail":return"VERIFY_AND_CHANGE_EMAIL";case"revertSecondFactorAddition":return"REVERT_SECOND_FACTOR_ADDITION";default:return null}})(t.mode??null);m(r&&n&&i,"argument-error"),this.apiKey=r,this.operation=i,this.code=n,this.continueUrl=t.continueUrl??null,this.languageCode=t.lang??null,this.tenantId=t.tenantId??null}static parseLink(e){t=De(xe(e=e)).link,r=t?De(xe(t)).deep_link_id:null;var t,r,n=((n=De(xe(e)).deep_link_id)?De(xe(n)).link:null)||n||r||t||e;try{return new Ma(n)}catch{return null}}}class La{constructor(){this.providerId=La.PROVIDER_ID}static credential(e,t){return Na._fromEmailAndPassword(e,t)}static credentialWithLink(e,t){var r=Ma.parseLink(t);return m(r,"argument-error"),Na._fromEmailAndCode(e,r.code,r.tenantId)}}La.PROVIDER_ID="password",La.EMAIL_PASSWORD_SIGN_IN_METHOD="password",La.EMAIL_LINK_SIGN_IN_METHOD="emailLink";class Fa{constructor(e){this.providerId=e,this.defaultLanguageCode=null,this.customParameters={}}setDefaultLanguage(e){this.defaultLanguageCode=e}setCustomParameters(e){return this.customParameters=e,this}getCustomParameters(){return this.customParameters}}class Ua extends Fa{constructor(){super(...arguments),this.scopes=[]}addScope(e){return this.scopes.includes(e)||this.scopes.push(e),this}getScopes(){return[...this.scopes]}}class Va extends Ua{static credentialFromJSON(e){var t="string"==typeof e?JSON.parse(e):e;return m("providerId"in t&&"signInMethod"in t,"argument-error"),Pa._fromParams(t)}credential(e){return this._credential({...e,nonce:e.rawNonce})}_credential(e){return m(e.idToken||e.accessToken,"argument-error"),Pa._fromParams({...e,providerId:this.providerId,signInMethod:this.providerId})}static credentialFromResult(e){return Va.oauthCredentialFromTaggedObject(e)}static credentialFromError(e){return Va.oauthCredentialFromTaggedObject(e.customData||{})}static oauthCredentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;var{oauthIdToken:t,oauthAccessToken:r,oauthTokenSecret:n,pendingToken:i,nonce:s,providerId:a}=e;if(!(r||n||t||i))return null;if(!a)return null;try{return new Va(a)._credential({idToken:t,accessToken:r,nonce:s,pendingToken:i})}catch(e){return null}}}class qa extends Ua{constructor(){super("facebook.com")}static credential(e){return Pa._fromParams({providerId:qa.PROVIDER_ID,signInMethod:qa.FACEBOOK_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return qa.credentialFromTaggedObject(e)}static credentialFromError(e){return qa.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!(e&&"oauthAccessToken"in e))return null;if(!e.oauthAccessToken)return null;try{return qa.credential(e.oauthAccessToken)}catch{return null}}}qa.FACEBOOK_SIGN_IN_METHOD="facebook.com",qa.PROVIDER_ID="facebook.com";class Ba extends Ua{constructor(){super("google.com"),this.addScope("profile")}static credential(e,t){return Pa._fromParams({providerId:Ba.PROVIDER_ID,signInMethod:Ba.GOOGLE_SIGN_IN_METHOD,idToken:e,accessToken:t})}static credentialFromResult(e){return Ba.credentialFromTaggedObject(e)}static credentialFromError(e){return Ba.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;var{oauthIdToken:t,oauthAccessToken:r}=e;if(!t&&!r)return null;try{return Ba.credential(t,r)}catch{return null}}}Ba.GOOGLE_SIGN_IN_METHOD="google.com",Ba.PROVIDER_ID="google.com";class ja extends Ua{constructor(){super("github.com")}static credential(e){return Pa._fromParams({providerId:ja.PROVIDER_ID,signInMethod:ja.GITHUB_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return ja.credentialFromTaggedObject(e)}static credentialFromError(e){return ja.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!(e&&"oauthAccessToken"in e))return null;if(!e.oauthAccessToken)return null;try{return ja.credential(e.oauthAccessToken)}catch{return null}}}ja.GITHUB_SIGN_IN_METHOD="github.com",ja.PROVIDER_ID="github.com";class za extends Ia{constructor(e,t){super(e,e),this.pendingToken=t}_getIdTokenResponse(e){return Ra(e,this.buildRequest())}_linkToIdToken(e,t){var r=this.buildRequest();return r.idToken=t,Ra(e,r)}_getReauthenticationResolver(e){var t=this.buildRequest();return t.autoCreate=!1,Ra(e,t)}toJSON(){return{signInMethod:this.signInMethod,providerId:this.providerId,pendingToken:this.pendingToken}}static fromJSON(e){var{providerId:t,signInMethod:r,pendingToken:n}="string"==typeof e?JSON.parse(e):e;return t&&r&&n&&t===r?new za(t,n):null}static _create(e,t){return new za(e,t)}buildRequest(){return{requestUri:"http://localhost",returnSecureToken:!0,pendingToken:this.pendingToken}}}class Ka extends Fa{constructor(e){m(e.startsWith("saml."),"argument-error"),super(e)}static credentialFromResult(e){return Ka.samlCredentialFromTaggedObject(e)}static credentialFromError(e){return Ka.samlCredentialFromTaggedObject(e.customData||{})}static credentialFromJSON(e){var t=za.fromJSON(e);return m(t,"argument-error"),t}static samlCredentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;var{pendingToken:t,providerId:r}=e;if(!t||!r)return null;try{return za._create(r,t)}catch(e){return null}}}class Wa extends Ua{constructor(){super("twitter.com")}static credential(e,t){return Pa._fromParams({providerId:Wa.PROVIDER_ID,signInMethod:Wa.TWITTER_SIGN_IN_METHOD,oauthToken:e,oauthTokenSecret:t})}static credentialFromResult(e){return Wa.credentialFromTaggedObject(e)}static credentialFromError(e){return Wa.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;var{oauthAccessToken:t,oauthTokenSecret:r}=e;if(!t||!r)return null;try{return Wa.credential(t,r)}catch{return null}}}async function Ha(e,t){return ys(e,"POST","/v1/accounts:signUp",ms(e,t))}Wa.TWITTER_SIGN_IN_METHOD="twitter.com",Wa.PROVIDER_ID="twitter.com";class Ga{constructor(e){this.user=e.user,this.providerId=e.providerId,this._tokenResponse=e._tokenResponse,this.operationType=e.operationType}static async _fromIdTokenResponse(e,t,r,n=!1){var i=await Vs._fromIdTokenResponse(e,r,n),s=$a(r);return new Ga({user:i,providerId:s,_tokenResponse:r,operationType:t})}static async _forOperation(e,t,r){await e._updateTokensIfNecessary(r,!0);var n=$a(r);return new Ga({user:e,providerId:n,_tokenResponse:r,operationType:t})}}function $a(e){return e.providerId||("phoneNumber"in e?"phone":null)}class Qa extends ye{constructor(e,t,r,n){super(t.code,t.message),this.operationType=r,this.user=n,Object.setPrototypeOf(this,Qa.prototype),this.customData={appName:e.name,tenantId:e.tenantId??void 0,_serverResponse:t.customData._serverResponse,operationType:r}}static _fromErrorAndOperation(e,t,r,n){return new Qa(e,t,r,n)}}function Ya(t,r,e,n){return("reauthenticate"===r?e._getReauthenticationResolver(t):e._getIdTokenResponse(t)).catch(e=>{if("auth/multi-factor-auth-required"===e.code)throw Qa._fromErrorAndOperation(t,e,r,n);throw e})}function Ja(e){return new Set(e.map(({providerId:e})=>e).filter(e=>!!e))}async function Xa(e,t){var r=w(e),n=(await eo(!0,r,t),e=r.auth,t={idToken:await r.getIdToken(),deleteProvider:[t]},await vs(e,"POST","/v1/accounts:update",t)).providerUserInfo;let i=Ja(n||[]);return r.providerData=r.providerData.filter(e=>i.has(e.providerId)),i.has("phone")||(r.phoneNumber=null),await r.auth._persistUserIfCurrent(r),r}async function Za(e,t,r=!1){var n=await Ds(e,t._linkToIdToken(e.auth,await e.getIdToken()),r);return Ga._forOperation(e,"link",n)}async function eo(e,t,r){await Ms(t);var n=!1===e?"provider-already-linked":"no-such-provider";m(Ja(t.providerData).has(r)===e,t.auth,n)}async function to(e,t,r=!1){var n=e.auth;if(h(n.app))return Promise.reject(rs(n));var i="reauthenticate";try{var s=await Ds(e,Ya(n,i,t,e),r),a=(m(s.idToken,n,"internal-error"),Rs(s.idToken)),o=(m(a,n,"internal-error"),a).sub;return m(e.uid===o,n,"user-mismatch"),Ga._forOperation(e,i,s)}catch(e){throw"auth/user-not-found"===e?.code&&Zi(n,"user-mismatch"),e}}async function ro(e,t,r=!1){var n;return h(e.app)?Promise.reject(rs(e)):(n=await Ya(e,"signIn",t),n=await Ga._fromIdTokenResponse(e,"signIn",n),r||await e._updateCurrentUser(n.user),n)}async function no(e,t){return ro(aa(e),t)}async function io(e,t){var r=w(e);return await eo(!1,r,t.providerId),Za(r,t)}async function so(e,t){return to(w(e),t)}async function ao(e,t){var r,n;return h(e.app)?Promise.reject(rs(e)):(n=await ys(r=aa(e),"POST","/v1/accounts:signInWithCustomToken",ms(r,{token:t,returnSecureToken:!0})),n=await Ga._fromIdTokenResponse(r,"signIn",n),await r._updateCurrentUser(n.user),n)}class oo{constructor(e,t){this.factorId=e,this.uid=t.mfaEnrollmentId,this.enrollmentTime=new Date(t.enrolledAt).toUTCString(),this.displayName=t.displayName}static _fromServerResponse(e,t){return"phoneInfo"in t?lo._fromServerResponse(e,t):"totpInfo"in t?ho._fromServerResponse(e,t):Zi(e,"internal-error")}}class lo extends oo{constructor(e){super("phone",e),this.phoneNumber=e.phoneInfo}static _fromServerResponse(e,t){return new lo(t)}}class ho extends oo{constructor(e){super("totp",e)}static _fromServerResponse(e,t){return new ho(t)}}function uo(e,t,r){m(0<r.url?.length,e,"invalid-continue-uri"),m(void 0===r.dynamicLinkDomain||0<r.dynamicLinkDomain.length,e,"invalid-dynamic-link-domain"),m(void 0===r.linkDomain||0<r.linkDomain.length,e,"invalid-hosting-link-domain"),t.continueUrl=r.url,t.dynamicLinkDomain=r.dynamicLinkDomain,t.linkDomain=r.linkDomain,t.canHandleCodeInApp=r.handleCodeInApp,r.iOS&&(m(0<r.iOS.bundleId.length,e,"missing-ios-bundle-id"),t.iOSBundleId=r.iOS.bundleId),r.android&&(m(0<r.android.packageName.length,e,"missing-android-pkg-name"),t.androidInstallApp=r.android.installApp,t.androidMinimumVersionCode=r.android.minimumVersion,t.androidPackageName=r.android.packageName)}async function co(e){var t=aa(e);t._getPasswordPolicyInternal()&&await t._updatePasswordPolicy()}async function po(e,t){await vs(e=w(e),"POST","/v1/accounts:update",ms(e,{oobCode:t}))}async function fo(e,t){var r=w(e),n=await Ta(r,{oobCode:t}),i=n.requestType;switch(m(i,r,"internal-error"),i){case"EMAIL_SIGNIN":break;case"VERIFY_AND_CHANGE_EMAIL":m(n.newEmail,r,"internal-error");break;case"REVERT_SECOND_FACTOR_ADDITION":m(n.mfaInfo,r,"internal-error");default:m(n.email,r,"internal-error")}let s=null;return n.mfaInfo&&(s=oo._fromServerResponse(aa(r),n.mfaInfo)),{data:{email:("VERIFY_AND_CHANGE_EMAIL"===n.requestType?n.newEmail:n.email)||null,previousEmail:("VERIFY_AND_CHANGE_EMAIL"===n.requestType?n.email:n.newEmail)||null,multiFactorInfo:s},operation:i}}async function go(e,t){var r=ls()?os():"http://localhost",r=(await vs(e=w(e),"POST","/v1/accounts:createAuthUri",ms(e,{identifier:t,continueUri:r}))).signinMethods;return r||[]}async function mo(e,t){var r=w(e),n={requestType:"VERIFY_EMAIL",idToken:await e.getIdToken()},r=(t&&uo(r.auth,n,t),await Sa(r.auth,n)).email;r!==e.email&&await e.reload()}async function vo(e,t,r){var n=w(e),i={requestType:"VERIFY_AND_CHANGE_EMAIL",idToken:await e.getIdToken(),newEmail:t},n=(r&&uo(n.auth,i,r),await Sa(n.auth,i)).email;n!==e.email&&await e.reload()}async function _o(e,{displayName:t,photoURL:r}){var n,i,s;void 0===t&&void 0===r||(i=await(n=w(e)).getIdToken(),i=await Ds(n,(async(e,t)=>vs(e,"POST","/v1/accounts:update",t))(n.auth,{idToken:i,displayName:t,photoUrl:r,returnSecureToken:!0})),n.displayName=i.displayName||null,n.photoURL=i.photoUrl||null,(s=n.providerData.find(({providerId:e})=>"password"===e))&&(s.displayName=n.displayName,s.photoURL=n.photoURL),await n._updateTokensIfNecessary(i))}async function yo(e,t,r){var n=e.auth,i={idToken:await e.getIdToken(),returnSecureToken:!0},n=(t&&(i.email=t),r&&(i.password=r),await Ds(e,(async(e,t)=>vs(e,"POST","/v1/accounts:update",t))(n,i)));await e._updateTokensIfNecessary(n,!0)}class wo{constructor(e,t,r={}){this.isNewUser=e,this.providerId=t,this.profile=r}}class bo extends wo{constructor(e,t,r,n){super(e,t,r),this.username=n}}class Io extends wo{constructor(e,t){super(e,"facebook.com",t)}}class To extends bo{constructor(e,t){super(e,"github.com",t,"string"==typeof t?.login?t?.login:null)}}class Eo extends wo{constructor(e,t){super(e,"google.com",t)}}class Co extends bo{constructor(e,t,r){super(e,"twitter.com",t,r)}}function So(e){var{user:t,_tokenResponse:r}=e;if(t.isAnonymous&&!r)return{providerId:null,isNewUser:!1,profile:null};var n=r;if(!n)return null;var i=n.providerId,s=n.rawUserInfo?JSON.parse(n.rawUserInfo):{},a=n.isNewUser||"identitytoolkit#SignupNewUserResponse"===n.kind;if(!i&&n?.idToken){t=Rs(n.idToken)?.firebase?.sign_in_provider;if(t)return t="anonymous"!==t&&"custom"!==t?t:null,new wo(a,t)}if(!i)return null;switch(i){case"facebook.com":return new Io(a,s);case"github.com":return new To(a,s);case"google.com":return new Eo(a,s);case"twitter.com":return new Co(a,s,n.screenName||null);case"custom":case"anonymous":return new wo(a,null);default:return new wo(a,i,s)}}class ko{constructor(e,t,r){this.type=e,this.credential=t,this.user=r}static _fromIdtoken(e,t){return new ko("enroll",e,t)}static _fromMfaPendingCredential(e){return new ko("signin",e)}toJSON(){return{multiFactorSession:{["enroll"===this.type?"idToken":"pendingCredential"]:this.credential}}}static fromJSON(e){if(e?.multiFactorSession){if(e.multiFactorSession?.pendingCredential)return ko._fromMfaPendingCredential(e.multiFactorSession.pendingCredential);if(e.multiFactorSession?.idToken)return ko._fromIdtoken(e.multiFactorSession.idToken)}return null}}class Ao{constructor(e,t,r){this.session=e,this.hints=t,this.signInResolver=r}static _fromError(e,i){let s=aa(e),a=i.customData._serverResponse;var t=(a.mfaInfo||[]).map(e=>oo._fromServerResponse(s,e));m(a.mfaPendingCredential,s,"internal-error");let o=ko._fromMfaPendingCredential(a.mfaPendingCredential);return new Ao(o,t,async e=>{var t=await e._process(s,o),r=(delete a.mfaInfo,delete a.mfaPendingCredential,{...a,idToken:t.idToken,refreshToken:t.refreshToken});switch(i.operationType){case"signIn":var n=await Ga._fromIdTokenResponse(s,i.operationType,r);return await s._updateCurrentUser(n.user),n;case"reauthenticate":return m(i.user,s,"internal-error"),Ga._forOperation(i.user,i.operationType,r);default:Zi(s,"internal-error")}})}async resolveSignIn(e){return this.signInResolver(e)}}function No(e,t){return vs(e,"POST","/v2/accounts/mfaEnrollment:start",ms(e,t))}class Ro{constructor(t){this.user=t,this.enrolledFactors=[],t._onReload(e=>{e.mfaInfo&&(this.enrolledFactors=e.mfaInfo.map(e=>oo._fromServerResponse(t.auth,e)))})}static _fromUser(e){return new Ro(e)}async getSession(){return ko._fromIdtoken(await this.user.getIdToken(),this.user)}async enroll(e,t){var r=e,n=await this.getSession(),r=await Ds(this.user,r._process(this.user.auth,n,t));return await this.user._updateTokensIfNecessary(r),this.user.reload()}async unenroll(e){let t="string"==typeof e?e:e.uid;var r,n,i=await this.user.getIdToken();try{var s=await Ds(this.user,(r=this.user.auth,n={idToken:i,mfaEnrollmentId:t},vs(r,"POST","/v2/accounts/mfaEnrollment:withdraw",ms(r,n))));this.enrolledFactors=this.enrolledFactors.filter(({uid:e})=>e!==t),await this.user._updateTokensIfNecessary(s),await this.user.reload()}catch(e){throw e}}}let Po=new WeakMap;let Do="__sak";class xo{constructor(e,t){this.storageRetriever=e,this.type=t}_isAvailable(){try{return this.storage?(this.storage.setItem(Do,"1"),this.storage.removeItem(Do),Promise.resolve(!0)):Promise.resolve(!1)}catch{return Promise.resolve(!1)}}_set(e,t){return this.storage.setItem(e,JSON.stringify(t)),Promise.resolve()}_get(e){var t=this.storage.getItem(e);return Promise.resolve(t?JSON.parse(t):null)}_remove(e){return this.storage.removeItem(e),Promise.resolve()}get storage(){return this.storageRetriever()}}class Oo extends xo{constructor(){super(()=>window.localStorage,"LOCAL"),this.boundEventHandler=(e,t)=>this.onStorageEvent(e,t),this.listeners={},this.localCache={},this.pollTimer=null,this.fallbackToPolling=ta(),this._shouldAllowMigration=!0}forAllChangedKeys(e){for(var t of Object.keys(this.listeners)){var r=this.storage.getItem(t),n=this.localCache[t];r!==n&&e(t,n,r)}}onStorageEvent(e,r=!1){if(e.key){let t=e.key;r?this.detachListener():this.stopPolling();var n=()=>{var e=this.storage.getItem(t);!r&&this.localCache[t]===e||this.notifyListeners(t,e)},i=this.storage.getItem(t);de()&&10===document.documentMode&&i!==e.newValue&&e.newValue!==e.oldValue?setTimeout(n,10):n()}else this.forAllChangedKeys((e,t,r)=>{this.notifyListeners(e,r)})}notifyListeners(e,t){this.localCache[e]=t;var r=this.listeners[e];if(r)for(var n of Array.from(r))n(t&&JSON.parse(t))}startPolling(){this.stopPolling(),this.pollTimer=setInterval(()=>{this.forAllChangedKeys((e,t,r)=>{this.onStorageEvent(new StorageEvent("storage",{key:e,oldValue:t,newValue:r}),!0)})},1e3)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}attachListener(){window.addEventListener("storage",this.boundEventHandler)}detachListener(){window.removeEventListener("storage",this.boundEventHandler)}_addListener(e,t){0===Object.keys(this.listeners).length&&(this.fallbackToPolling?this.startPolling():this.attachListener()),this.listeners[e]||(this.listeners[e]=new Set,this.localCache[e]=this.storage.getItem(e)),this.listeners[e].add(t)}_removeListener(e,t){this.listeners[e]&&(this.listeners[e].delete(t),0===this.listeners[e].size)&&delete this.listeners[e],0===Object.keys(this.listeners).length&&(this.detachListener(),this.stopPolling())}async _set(e,t){await super._set(e,t),this.localCache[e]=JSON.stringify(t)}async _get(e){var t=await super._get(e);return this.localCache[e]=JSON.stringify(t),t}async _remove(e){await super._remove(e),delete this.localCache[e]}}Oo.type="LOCAL";let Mo=Oo;class Lo extends xo{constructor(){super(()=>window.sessionStorage,"SESSION")}_addListener(e,t){}_removeListener(e,t){}}Lo.type="SESSION";let Fo=Lo;class Uo{constructor(e){this.eventTarget=e,this.handlersMap={},this.boundEventHandler=this.handleEvent.bind(this)}static _getInstance(t){var e=this.receivers.find(e=>e.isListeningto(t));return e||(e=new Uo(t),this.receivers.push(e),e)}isListeningto(e){return this.eventTarget===e}async handleEvent(e){let t=e,{eventId:r,eventType:n,data:i}=t.data;var s=this.handlersMap[n];s?.size&&(t.ports[0].postMessage({status:"ack",eventId:r,eventType:n}),s=Array.from(s).map(async e=>e(t.origin,i)),s=await Promise.all(s.map(async e=>{try{return{fulfilled:!0,value:await e}}catch(e){return{fulfilled:!1,reason:e}}})),t.ports[0].postMessage({status:"done",eventId:r,eventType:n,response:s}))}_subscribe(e,t){0===Object.keys(this.handlersMap).length&&this.eventTarget.addEventListener("message",this.boundEventHandler),this.handlersMap[e]||(this.handlersMap[e]=new Set),this.handlersMap[e].add(t)}_unsubscribe(e,t){this.handlersMap[e]&&t&&this.handlersMap[e].delete(t),t&&0!==this.handlersMap[e].size||delete this.handlersMap[e],0===Object.keys(this.handlersMap).length&&this.eventTarget.removeEventListener("message",this.boundEventHandler)}}function Vo(e="",t=10){let r="";for(let n=0;n<t;n++)r+=Math.floor(10*Math.random());return e+r}Uo.receivers=[];class qo{constructor(e){this.target=e,this.handlers=new Set}removeMessageHandler(e){e.messageChannel&&(e.messageChannel.port1.removeEventListener("message",e.onMessage),e.messageChannel.port1.close()),this.handlers.delete(e)}async _send(e,t,a=50){let o="undefined"!=typeof MessageChannel?new MessageChannel:null;if(!o)throw new Error("connection_unavailable");let l,h;return new Promise((r,n)=>{let i=Vo("",20),s=(o.port1.start(),setTimeout(()=>{n(new Error("unsupported_event"))},a));h={messageChannel:o,onMessage(e){var t=e;if(t.data.eventId===i)switch(t.data.status){case"ack":clearTimeout(s),l=setTimeout(()=>{n(new Error("timeout"))},3e3);break;case"done":clearTimeout(l),r(t.data.response);break;default:clearTimeout(s),clearTimeout(l),n(new Error("invalid_response"))}}},this.handlers.add(h),o.port1.addEventListener("message",h.onMessage),this.target.postMessage({eventType:e,eventId:i,data:t},[o.port2])}).finally(()=>{h&&this.removeMessageHandler(h)})}}function Bo(){return window}function jo(){return void 0!==Bo().WorkerGlobalScope&&"function"==typeof Bo().importScripts}let zo="firebaseLocalStorageDb",Ko="firebaseLocalStorage",Wo="fbase_key";class Ho{constructor(e){this.request=e}toPromise(){return new Promise((e,t)=>{this.request.addEventListener("success",()=>{e(this.request.result)}),this.request.addEventListener("error",()=>{t(this.request.error)})})}}function Go(e,t){return e.transaction([Ko],t?"readwrite":"readonly").objectStore(Ko)}function $o(){let n=indexedDB.open(zo,1);return new Promise((t,r)=>{n.addEventListener("error",()=>{r(n.error)}),n.addEventListener("upgradeneeded",()=>{var e=n.result;try{e.createObjectStore(Ko,{keyPath:Wo})}catch(e){r(e)}}),n.addEventListener("success",async()=>{var e=n.result;e.objectStoreNames.contains(Ko)?t(e):(e.close(),e=indexedDB.deleteDatabase(zo),await new Ho(e).toPromise(),t(await $o()))})})}async function Qo(e,t,r){var n=Go(e,!0).put({fbase_key:t,value:r});return new Ho(n).toPromise()}function Yo(e,t){var r=Go(e,!0).delete(t);return new Ho(r).toPromise()}class Jo{constructor(){this.type="LOCAL",this._shouldAllowMigration=!0,this.listeners={},this.localCache={},this.pollTimer=null,this.pendingWrites=0,this.receiver=null,this.sender=null,this.serviceWorkerReceiverAvailable=!1,this.activeServiceWorker=null,this._workerInitializationPromise=this.initializeServiceWorkerMessaging().then(()=>{},()=>{})}async _openDb(){return this.db||(this.db=await $o()),this.db}async _withRetries(e){let t=0;for(;;)try{return await e(await this._openDb())}catch(e){if(3<t++)throw e;this.db&&(this.db.close(),this.db=void 0)}}async initializeServiceWorkerMessaging(){return jo()?this.initializeReceiver():this.initializeSender()}async initializeReceiver(){this.receiver=Uo._getInstance(jo()?self:null),this.receiver._subscribe("keyChanged",async(e,t)=>({keyProcessed:(await this._poll()).includes(t.key)})),this.receiver._subscribe("ping",async(e,t)=>["keyChanged"])}async initializeSender(){var e;this.activeServiceWorker=await(async()=>{if(!navigator?.serviceWorker)return null;try{return(await navigator.serviceWorker.ready).active}catch{return null}})(),this.activeServiceWorker&&(this.sender=new qo(this.activeServiceWorker),e=await this.sender._send("ping",{},800))&&e[0]?.fulfilled&&e[0]?.value.includes("keyChanged")&&(this.serviceWorkerReceiverAvailable=!0)}async notifyServiceWorker(e){if(this.sender&&this.activeServiceWorker&&(navigator?.serviceWorker?.controller||null)===this.activeServiceWorker)try{await this.sender._send("keyChanged",{key:e},this.serviceWorkerReceiverAvailable?800:50)}catch{}}async _isAvailable(){try{var e;return indexedDB?(await Qo(e=await $o(),Do,"1"),await Yo(e,Do),!0):!1}catch{}return!1}async _withPendingWrite(e){this.pendingWrites++;try{await e()}finally{this.pendingWrites--}}async _set(t,r){return this._withPendingWrite(async()=>(await this._withRetries(e=>Qo(e,t,r)),this.localCache[t]=r,this.notifyServiceWorker(t)))}async _get(t){var e=await this._withRetries(e=>(async(e,t)=>{var r=Go(e,!1).get(t);return void 0===(r=await new Ho(r).toPromise())?null:r.value})(e,t));return this.localCache[t]=e}async _remove(t){return this._withPendingWrite(async()=>(await this._withRetries(e=>Yo(e,t)),delete this.localCache[t],this.notifyServiceWorker(t)))}async _poll(){var e=await this._withRetries(e=>{var t=Go(e,!1).getAll();return new Ho(t).toPromise()});if(!e)return[];if(0!==this.pendingWrites)return[];var t,r=[],n=new Set;if(0!==e.length)for(var{fbase_key:i,value:s}of e)n.add(i),JSON.stringify(this.localCache[i])!==JSON.stringify(s)&&(this.notifyListeners(i,s),r.push(i));for(t of Object.keys(this.localCache))this.localCache[t]&&!n.has(t)&&(this.notifyListeners(t,null),r.push(t));return r}notifyListeners(e,t){this.localCache[e]=t;var r=this.listeners[e];if(r)for(var n of Array.from(r))n(t)}startPolling(){this.stopPolling(),this.pollTimer=setInterval(async()=>this._poll(),800)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}_addListener(e,t){0===Object.keys(this.listeners).length&&this.startPolling(),this.listeners[e]||(this.listeners[e]=new Set,this._get(e)),this.listeners[e].add(t)}_removeListener(e,t){this.listeners[e]&&(this.listeners[e].delete(t),0===this.listeners[e].size)&&delete this.listeners[e],0===Object.keys(this.listeners).length&&this.stopPolling()}}Jo.type="LOCAL";let Xo=Jo;function Zo(e,t){return vs(e,"POST","/v2/accounts/mfaSignIn:start",ms(e,t))}let el=ua("rcb"),tl=new us(3e4,6e4);class rl{constructor(){this.hostLanguage="",this.counter=0,this.librarySeparatelyLoaded=!!Bo().grecaptcha?.render}load(i,s=""){var e;return m((e=s).length<=6&&/^\s*[a-zA-Z0-9\-]*\s*$/.test(e),i,"argument-error"),this.shouldResolveImmediately(s)&&Ts(Bo().grecaptcha)?Promise.resolve(Bo().grecaptcha):new Promise((t,r)=>{let n=Bo().setTimeout(()=>{r(es(i,"network-request-failed"))},tl.get());Bo()[el]=()=>{Bo().clearTimeout(n),delete Bo()[el];var e=Bo().grecaptcha;if(e&&Ts(e)){let n=e.render;e.render=(e,t)=>{var r=n(e,t);return this.counter++,r},this.hostLanguage=s,t(e)}else r(es(i,"internal-error"))},ha(la.recaptchaV2Script+"?"+Pe({onload:el,render:"explicit",hl:s})).catch(()=>{clearTimeout(n),r(es(i,"internal-error"))})})}clearedOneInstance(){this.counter--}shouldResolveImmediately(e){return!!Bo().grecaptcha?.render&&(e===this.hostLanguage||0<this.counter||this.librarySeparatelyLoaded)}}class nl{async load(e){return new ca(e)}clearedOneInstance(){}}let il="recaptcha",sl={theme:"light",type:"image"};class al{constructor(e,t,r={...sl}){this.parameters=r,this.type=il,this.destroyed=!1,this.widgetId=null,this.tokenChangeListeners=new Set,this.renderPromise=null,this.recaptcha=null,this.auth=aa(e),this.isInvisible="invisible"===this.parameters.size,m("undefined"!=typeof document,this.auth,"operation-not-supported-in-this-environment");var n="string"==typeof t?document.getElementById(t):t;m(n,this.auth,"argument-error"),this.container=n,this.parameters.callback=this.makeTokenCallback(this.parameters.callback),this._recaptchaLoader=new(this.auth.settings.appVerificationDisabledForTesting?nl:rl),this.validateStartingState()}async verify(){this.assertNotDestroyed();let e=await this.render(),n=this.getAssertedRecaptcha();var t=n.getResponse(e);return t||new Promise(t=>{let r=e=>{e&&(this.tokenChangeListeners.delete(r),t(e))};this.tokenChangeListeners.add(r),this.isInvisible&&n.execute(e)})}render(){try{this.assertNotDestroyed()}catch(e){return Promise.reject(e)}return this.renderPromise||(this.renderPromise=this.makeRenderPromise().catch(e=>{throw this.renderPromise=null,e})),this.renderPromise}_reset(){this.assertNotDestroyed(),null!==this.widgetId&&this.getAssertedRecaptcha().reset(this.widgetId)}clear(){this.assertNotDestroyed(),this.destroyed=!0,this._recaptchaLoader.clearedOneInstance(),this.isInvisible||this.container.childNodes.forEach(e=>{this.container.removeChild(e)})}validateStartingState(){m(!this.parameters.sitekey,this.auth,"argument-error"),m(this.isInvisible||!this.container.hasChildNodes(),this.auth,"argument-error"),m("undefined"!=typeof document,this.auth,"operation-not-supported-in-this-environment")}makeTokenCallback(r){return t=>{var e;this.tokenChangeListeners.forEach(e=>e(t)),"function"==typeof r?r(t):"string"==typeof r&&"function"==typeof(e=Bo()[r])&&e(t)}}assertNotDestroyed(){m(!this.destroyed,this.auth,"internal-error")}async makeRenderPromise(){if(await this.init(),!this.widgetId){let e=this.container;var t;this.isInvisible||(t=document.createElement("div"),e.appendChild(t),e=t),this.widgetId=this.getAssertedRecaptcha().render(e,this.parameters)}return this.widgetId}async init(){m(ls()&&!jo(),this.auth,"internal-error"),await(()=>{let t=null;return new Promise(e=>{"complete"===document.readyState?e():(t=()=>e(),window.addEventListener("load",t))}).catch(e=>{throw t&&window.removeEventListener("load",t),e})})(),this.recaptcha=await this._recaptchaLoader.load(this.auth,this.auth.languageCode||void 0);var e=await((await vs(this.auth,"GET","/v1/recaptchaParams")).recaptchaSiteKey||"");m(e,this.auth,"internal-error"),this.parameters.sitekey=e}getAssertedRecaptcha(){return m(this.recaptcha,this.auth,"internal-error"),this.recaptcha}}class ol{constructor(e,t){this.verificationId=e,this.onConfirmation=t}confirm(e){var t=Oa._fromVerification(this.verificationId,e);return this.onConfirmation(t)}}async function ll(t,r,n){if(!t._getRecaptchaConfig())try{e=aa(t),i=await Ss(e,{clientType:"CLIENT_TYPE_WEB",version:"RECAPTCHA_ENTERPRISE"}),i=new Cs(i),null==e.tenantId?e._agentRecaptchaConfig=i:e._tenantRecaptchaConfigs[e.tenantId]=i,await(!i.isAnyProviderEnabled()||!new ma(e).verify())}catch(e){console.log("Failed to initialize reCAPTCHA Enterprise config. Triggering the reCAPTCHA v2 verification.")}var e,i,s,a,o,l,h;try{let e;return("session"in(e="string"==typeof r?{phoneNumber:r}:r)?(s=e.session,"phoneNumber"in e?(m("enroll"===s.type,t,"internal-error"),a={idToken:s.credential,phoneEnrollmentInfo:{phoneNumber:e.phoneNumber,clientType:"CLIENT_TYPE_WEB"}},(await _a(t,a,"mfaSmsEnrollment",async(e,t)=>t.phoneEnrollmentInfo.captchaResponse===ga?(m(n?.type===il,e,"argument-error"),No(e,await hl(e,t,n))):No(e,t),"PHONE_PROVIDER").catch(e=>Promise.reject(e))).phoneSessionInfo):(m("signin"===s.type,t,"internal-error"),m(o=e.multiFactorHint?.uid||e.multiFactorUid,t,"missing-multi-factor-info"),l={mfaPendingCredential:s.credential,mfaEnrollmentId:o,phoneSignInInfo:{clientType:"CLIENT_TYPE_WEB"}},(await _a(t,l,"mfaSmsSignIn",async(e,t)=>t.phoneSignInInfo.captchaResponse===ga?(m(n?.type===il,e,"argument-error"),Zo(e,await hl(e,t,n))):Zo(e,t),"PHONE_PROVIDER").catch(e=>Promise.reject(e))).phoneResponseInfo)):(h={phoneNumber:e.phoneNumber,clientType:"CLIENT_TYPE_WEB"},await _a(t,h,"sendVerificationCode",async(e,t)=>t.captchaResponse===ga?(m(n?.type===il,e,"argument-error"),Da(e,await hl(e,t,n))):Da(e,t),"PHONE_PROVIDER").catch(e=>Promise.reject(e)))).sessionInfo}finally{n?._reset()}}async function hl(e,t,r){m(r.type===il,e,"argument-error");var n,i,s,a,o=await r.verify(),l=(m("string"==typeof o,e,"argument-error"),{...t});return"phoneEnrollmentInfo"in l?(i=l.phoneEnrollmentInfo.phoneNumber,s=l.phoneEnrollmentInfo.captchaResponse,a=l.phoneEnrollmentInfo.clientType,n=l.phoneEnrollmentInfo.recaptchaVersion,Object.assign(l,{phoneEnrollmentInfo:{phoneNumber:i,recaptchaToken:o,captchaResponse:s,clientType:a,recaptchaVersion:n}})):"phoneSignInInfo"in l?(i=l.phoneSignInInfo.captchaResponse,s=l.phoneSignInInfo.clientType,a=l.phoneSignInInfo.recaptchaVersion,Object.assign(l,{phoneSignInInfo:{recaptchaToken:o,captchaResponse:i,clientType:s,recaptchaVersion:a}})):Object.assign(l,{recaptchaToken:o}),l}class ul{constructor(e){this.providerId=ul.PROVIDER_ID,this.auth=aa(e)}verifyPhoneNumber(e,t){return ll(this.auth,e,w(t))}static credential(e,t){return Oa._fromVerification(e,t)}static credentialFromResult(e){var t=e;return ul.credentialFromTaggedObject(t)}static credentialFromError(e){return ul.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){var t,r;return e&&({phoneNumber:t,temporaryProof:r}=e,t)&&r?Oa._fromTokenResponse(t,r):null}}function cl(e,t){return t?Bs(t):(m(e._popupRedirectResolver,e,"argument-error"),e._popupRedirectResolver)}ul.PROVIDER_ID="phone",ul.PHONE_SIGN_IN_METHOD="phone";class dl extends Ia{constructor(e){super("custom","custom"),this.params=e}_getIdTokenResponse(e){return Ra(e,this._buildIdpRequest())}_linkToIdToken(e,t){return Ra(e,this._buildIdpRequest(t))}_getReauthenticationResolver(e){return Ra(e,this._buildIdpRequest())}_buildIdpRequest(e){var t={requestUri:this.params.requestUri,sessionId:this.params.sessionId,postBody:this.params.postBody,tenantId:this.params.tenantId,pendingToken:this.params.pendingToken,returnSecureToken:!0,returnIdpCredential:!0};return e&&(t.idToken=e),t}}function pl(e){return ro(e.auth,new dl(e),e.bypassAuthState)}function fl(e){var{auth:t,user:r}=e;return m(r,t,"internal-error"),to(r,new dl(e),e.bypassAuthState)}async function gl(e){var{auth:t,user:r}=e;return m(r,t,"internal-error"),Za(r,new dl(e),e.bypassAuthState)}class ml{constructor(e,t,r,n,i=!1){this.auth=e,this.resolver=r,this.user=n,this.bypassAuthState=i,this.pendingPromise=null,this.eventManager=null,this.filter=Array.isArray(t)?t:[t]}execute(){return new Promise(async(e,t)=>{this.pendingPromise={resolve:e,reject:t};try{this.eventManager=await this.resolver._initialize(this.auth),await this.onExecution(),this.eventManager.registerConsumer(this)}catch(e){this.reject(e)}})}async onAuthEvent(e){var{urlResponse:t,sessionId:r,postBody:n,tenantId:i,error:s,type:a}=e;if(s)this.reject(s);else{s={auth:this.auth,requestUri:t,sessionId:r,tenantId:i||void 0,postBody:n||void 0,user:this.user,bypassAuthState:this.bypassAuthState};try{this.resolve(await this.getIdpTask(a)(s))}catch(e){this.reject(e)}}}onError(e){this.reject(e)}getIdpTask(e){switch(e){case"signInViaPopup":case"signInViaRedirect":return pl;case"linkViaPopup":case"linkViaRedirect":return gl;case"reauthViaPopup":case"reauthViaRedirect":return fl;default:Zi(this.auth,"internal-error")}}resolve(e){as(this.pendingPromise,"Pending promise was never set"),this.pendingPromise.resolve(e),this.unregisterAndCleanUp()}reject(e){as(this.pendingPromise,"Pending promise was never set"),this.pendingPromise.reject(e),this.unregisterAndCleanUp()}unregisterAndCleanUp(){this.eventManager&&this.eventManager.unregisterConsumer(this),this.pendingPromise=null,this.cleanUp()}}let vl=new us(2e3,1e4);class _l extends ml{constructor(e,t,r,n,i){super(e,t,n,i),this.provider=r,this.authWindow=null,this.pollId=null,_l.currentPopupAction&&_l.currentPopupAction.cancel(),_l.currentPopupAction=this}async executeNotNull(){var e=await this.execute();return m(e,this.auth,"internal-error"),e}async onExecution(){as(1===this.filter.length,"Popup operations only handle one event");var e=Vo();this.authWindow=await this.resolver._openPopup(this.auth,this.provider,this.filter[0],e),this.authWindow.associatedEvent=e,this.resolver._originValidation(this.auth).catch(e=>{this.reject(e)}),this.resolver._isIframeWebStorageSupported(this.auth,e=>{e||this.reject(es(this.auth,"web-storage-unsupported"))}),this.pollUserCancellation()}get eventId(){return this.authWindow?.associatedEvent||null}cancel(){this.reject(es(this.auth,"cancelled-popup-request"))}cleanUp(){this.authWindow&&this.authWindow.close(),this.pollId&&window.clearTimeout(this.pollId),this.authWindow=null,this.pollId=null,_l.currentPopupAction=null}pollUserCancellation(){let e=()=>{this.authWindow?.window?.closed?this.pollId=window.setTimeout(()=>{this.pollId=null,this.reject(es(this.auth,"popup-closed-by-user"))},8e3):this.pollId=window.setTimeout(e,vl.get())};e()}}_l.currentPopupAction=null;let yl="pendingRedirect",wl=new Map;class bl extends ml{constructor(e,t,r=!1){super(e,["signInViaRedirect","linkViaRedirect","reauthViaRedirect","unknown"],t,void 0,r),this.eventId=null}async execute(){let t=wl.get(this.auth._key());if(!t){try{let e=await(async(e,t)=>{var r,n=Cl(t),i=El(e);return!!await i._isAvailable()&&(r="true"===await i._get(n),await i._remove(n),r)})(this.resolver,this.auth)?await super.execute():null;t=()=>Promise.resolve(e)}catch(e){t=()=>Promise.reject(e)}wl.set(this.auth._key(),t)}return this.bypassAuthState||wl.set(this.auth._key(),()=>Promise.resolve(null)),t()}async onAuthEvent(e){if("signInViaRedirect"===e.type)return super.onAuthEvent(e);if("unknown"===e.type)this.resolve(null);else if(e.eventId){var t=await this.auth._redirectUserForId(e.eventId);if(t)return this.user=t,super.onAuthEvent(e);this.resolve(null)}}async onExecution(){}cleanUp(){}}async function Il(e,t){return El(e)._set(Cl(t),"true")}function Tl(e,t){wl.set(e._key(),t)}function El(e){return Bs(e._redirectPersistence)}function Cl(e){return Ks(yl,e.config.apiKey,e.name)}function Sl(e,t,r){return(async(e,t,r)=>{var n,i;return h(e.app)?Promise.reject(rs(e)):(n=aa(e),ns(e,t,Fa),await n._initializationPromise,await Il(i=cl(n,r),n),i._openRedirect(n,t,"signInViaRedirect"))})(e,t,r)}function kl(e,t,r){return(async(e,t,r)=>{var n=w(e);if(ns(n.auth,t,Fa),h(n.auth.app))return Promise.reject(rs(n.auth));await n.auth._initializationPromise;var i=cl(n.auth,r),s=(await Il(i,n.auth),await Rl(n));return i._openRedirect(n.auth,t,"reauthViaRedirect",s)})(e,t,r)}function Al(e,t,r){return(async(e,t,r)=>{var n=w(e),i=(ns(n.auth,t,Fa),await n.auth._initializationPromise,cl(n.auth,r)),s=(await eo(!1,n,t.providerId),await Il(i,n.auth),await Rl(n));return i._openRedirect(n.auth,t,"linkViaRedirect",s)})(e,t,r)}async function Nl(e,t,r=!1){var n,i;return h(e.app)?Promise.reject(rs(e)):(i=cl(n=aa(e),t),(i=await new bl(n,i,r).execute())&&!r&&(delete i.user._redirectEventId,await n._persistUserIfCurrent(i.user),await n._setRedirectUser(null,t)),i)}async function Rl(e){var t=Vo(e.uid+":::");return e._redirectEventId=t,await e.auth._setRedirectUser(e),await e.auth._persistUserIfCurrent(e),t}class Pl{constructor(e){this.auth=e,this.cachedEventUids=new Set,this.consumers=new Set,this.queuedRedirectEvent=null,this.hasHandledPotentialRedirect=!1,this.lastProcessedEventTime=Date.now()}registerConsumer(e){this.consumers.add(e),this.queuedRedirectEvent&&this.isEventForConsumer(this.queuedRedirectEvent,e)&&(this.sendToConsumer(this.queuedRedirectEvent,e),this.saveEventToCache(this.queuedRedirectEvent),this.queuedRedirectEvent=null)}unregisterConsumer(e){this.consumers.delete(e)}onEvent(t){if(this.hasEventBeenHandled(t))return!1;let r=!1;return this.consumers.forEach(e=>{this.isEventForConsumer(t,e)&&(r=!0,this.sendToConsumer(t,e),this.saveEventToCache(t))}),this.hasHandledPotentialRedirect||!(e=>{switch(e.type){case"signInViaRedirect":case"linkViaRedirect":case"reauthViaRedirect":return 1;case"unknown":return xl(e);default:return}})(t)||(this.hasHandledPotentialRedirect=!0,r)||(this.queuedRedirectEvent=t,r=!0),r}sendToConsumer(e,t){var r;e.error&&!xl(e)?(r=e.error.code?.split("auth/")[1]||"internal-error",t.onError(es(this.auth,r))):t.onAuthEvent(e)}isEventForConsumer(e,t){var r=null===t.eventId||!!e.eventId&&e.eventId===t.eventId;return t.filter.includes(e.type)&&r}hasEventBeenHandled(e){return 6e5<=Date.now()-this.lastProcessedEventTime&&this.cachedEventUids.clear(),this.cachedEventUids.has(Dl(e))}saveEventToCache(e){this.cachedEventUids.add(Dl(e)),this.lastProcessedEventTime=Date.now()}}function Dl(e){return[e.type,e.eventId,e.sessionId,e.tenantId].filter(e=>e).join("-")}function xl({type:e,error:t}){return"unknown"===e&&"auth/no-auth-event"===t?.code}async function Ol(e,t={}){return vs(e,"GET","/v1/projects",t)}let Ml=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,Ll=/^https?/;async function Fl(e){if(!e.config.emulator){var t,r=(await Ol(e)).authorizedDomains;for(t of r)try{if((e=>{var t,r=os(),{protocol:n,hostname:i}=new URL(r);return e.startsWith("chrome-extension://")?""===(t=new URL(e)).hostname&&""===i?"chrome-extension:"===n&&e.replace("chrome-extension://","")===r.replace("chrome-extension://",""):"chrome-extension:"===n&&t.hostname===i:Ll.test(n)&&(Ml.test(e)?i===e:(r=e.replace(/\./g,"\\."),(t=new RegExp("^(.+\\."+r+"|"+r+")$","i")).test(i)))})(t))return}catch{}Zi(e,"unauthorized-domain")}}let Ul=new us(3e4,6e4);function Vl(){var t=Bo().___jsl;if(t?.H)for(var r of Object.keys(t.H))if(t.H[r].r=t.H[r].r||[],t.H[r].L=t.H[r].L||[],t.H[r].r=[...t.H[r].L],t.CP)for(let e=0;e<t.CP.length;e++)t.CP[e]=null}function ql(i){return new Promise((e,t)=>{function r(){Vl(),gapi.load("gapi.iframes",{callback:()=>{e(gapi.iframes.getContext())},ontimeout:()=>{Vl(),t(es(i,"network-request-failed"))},timeout:Ul.get()})}if(Bo().gapi?.iframes?.Iframe)e(gapi.iframes.getContext());else{var n;if(!Bo().gapi?.load)return n=ua("iframefcb"),Bo()[n]=()=>{gapi.load?r():t(es(i,"network-request-failed"))},ha(la.gapiScript+"?onload="+n).catch(e=>t(e));r()}}).catch(e=>{throw Bl=null,e})}let Bl=null;let jl=new us(5e3,15e3),zl="__/auth/iframe",Kl="emulator/auth/iframe",Wl={style:{position:"absolute",top:"-100px",width:"1px",height:"1px"},"aria-hidden":"true",tabindex:"-1"},Hl=new Map([["identitytoolkit.googleapis.com","p"],["staging-identitytoolkit.sandbox.googleapis.com","s"],["test-identitytoolkit.sandbox.googleapis.com","t"]]);async function Gl(a){e=a;var e,t,r,n=await(Bl=Bl||ql(e)),i=Bo().gapi;return m(i,a,"internal-error"),n.open({where:document.body,url:(m((n=(e=a).config).authDomain,e,"auth-domain-config-required"),t=n.emulator?cs(n,Kl):`https://${e.config.authDomain}/`+zl,n={apiKey:n.apiKey,appName:e.name,v:qt},(r=Hl.get(e.config.apiHost))&&(n.eid=r),(r=e._getFrameworks()).length&&(n.fw=r.join(",")),t+"?"+Pe(n).slice(1)),messageHandlersFilter:i.iframes.CROSS_ORIGIN_IFRAMES_FILTER,attributes:Wl,dontclear:!0},s=>new Promise(async(e,t)=>{await s.restyle({setHideOnLeave:!1});let r=es(a,"network-request-failed"),n=Bo().setTimeout(()=>{t(r)},jl.get());function i(){Bo().clearTimeout(n),e(s)}s.ping(i).then(i,()=>{t(r)})}))}let $l={location:"yes",resizable:"yes",statusbar:"yes",toolbar:"no"};class Ql{constructor(e){this.window=e,this.associatedEvent=null}close(){if(this.window)try{this.window.close()}catch(e){}}}function Yl(e,t,r,n=500,i=600){var s=Math.max((window.screen.availHeight-i)/2,0).toString(),a=Math.max((window.screen.availWidth-n)/2,0).toString();let o="";var l,s={...$l,width:n.toString(),height:i.toString(),top:s,left:a},a=ae().toLowerCase(),s=(r&&(o=Qs(a)?"_blank":r),Gs(a)&&(t=t||"http://localhost",s.scrollbars="yes"),Object.entries(s).reduce((e,[t,r])=>""+e+t+`=${r},`,""));if([n=ae()]=[a],ea(n)&&window.navigator?.standalone&&"_self"!==o)return i=t||"",r=o,(a=document.createElement("a")).href=i,a.target=r,(l=document.createEvent("MouseEvent")).initMouseEvent("click",!0,!0,window,1,0,0,0,0,!1,!1,!1,!1,1,null),a.dispatchEvent(l),new Ql(null);a=window.open(t||"",o,s);m(a,e,"popup-blocked");try{a.focus()}catch(e){}return new Ql(a)}let Jl="__/auth/handler",Xl="emulator/auth/handler",Zl=encodeURIComponent("fac");async function eh(e,t,r,n,i,s){m(e.config.authDomain,e,"auth-domain-config-required"),m(e.config.apiKey,e,"invalid-api-key");var a={apiKey:e.config.apiKey,appName:e.name,authType:r,redirectUrl:n,v:qt,eventId:i};if(t instanceof Fa){t.setDefaultLanguage(e.languageCode),a.providerId=t.providerId||"",ke(t.getCustomParameters())||(a.customParameters=JSON.stringify(t.getCustomParameters()));for(var[o,l]of Object.entries(s||{}))a[o]=l}t instanceof Ua&&0<(c=t.getScopes().filter(e=>""!==e)).length&&(a.scopes=c.join(",")),e.tenantId&&(a.tid=e.tenantId);var h,u=a;for(h of Object.keys(u))void 0===u[h]&&delete u[h];var c=await e._getAppCheckToken(),c=c?`#${Zl}=`+encodeURIComponent(c):"";return`${r=[e.config][0],r.emulator?cs(r,Xl):`https://${r.authDomain}/`+Jl}?`+Pe(u).slice(1)+c}let th="webStorageSupport";class rh{constructor(){this.eventManagers={},this.iframes={},this.originValidationPromises={},this._redirectPersistence=Fo,this._completeRedirectFn=Nl,this._overrideRedirectResult=Tl}async _openPopup(e,t,r,n){return as(this.eventManagers[e._key()]?.manager,"_initialize() not called before _openPopup()"),Yl(e,await eh(e,t,r,os(),n),Vo())}async _openRedirect(e,t,r,n){await this._originValidation(e);var i=await eh(e,t,r,os(),n);return Bo().location.href=i,new Promise(()=>{})}_initialize(e){let r=e._key();if(this.eventManagers[r]){let{manager:e,promise:t}=this.eventManagers[r];return e?Promise.resolve(e):(as(t,"If manager is not set, promise should be"),t)}let t=this.initAndGetManager(e);return this.eventManagers[r]={promise:t},t.catch(()=>{delete this.eventManagers[r]}),t}async initAndGetManager(t){var e=await Gl(t);let r=new Pl(t);return e.register("authEvent",e=>(m(e?.authEvent,t,"invalid-auth-event"),{status:r.onEvent(e.authEvent)?"ACK":"ERROR"}),gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER),this.eventManagers[t._key()]={manager:r},this.iframes[t._key()]=e,r}_isIframeWebStorageSupported(r,n){this.iframes[r._key()].send(th,{type:th},e=>{var t=e?.[0]?.[th];void 0!==t&&n(!!t),Zi(r,"internal-error")},gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER)}_originValidation(e){var t=e._key();return this.originValidationPromises[t]||(this.originValidationPromises[t]=Fl(e)),this.originValidationPromises[t]}get _shouldInitProactively(){return ta()||$s()||ea()}}let nh=rh;class ih extends class{constructor(e){this.factorId=e}_process(e,t,r){switch(t.type){case"enroll":return this._finalizeEnroll(e,t.credential,r);case"signin":return this._finalizeSignIn(e,t.credential);default:return ss("unexpected MultiFactorSessionType")}}}{constructor(e){super("phone"),this.credential=e}static _fromCredential(e){return new ih(e)}_finalizeEnroll(e,t,r){return e=e,t={idToken:t,displayName:r,phoneVerificationInfo:this.credential._makeVerificationRequest()},vs(e,"POST","/v2/accounts/mfaEnrollment:finalize",ms(e,t))}_finalizeSignIn(e,t){return e=e,t={mfaPendingCredential:t,phoneVerificationInfo:this.credential._makeVerificationRequest()},vs(e,"POST","/v2/accounts/mfaSignIn:finalize",ms(e,t))}}class sh{constructor(){}static assertion(e){return ih._fromCredential(e)}}sh.FACTOR_ID="phone";or="@firebase/auth";class ah{constructor(e){this.auth=e,this.internalListeners=new Map}getUid(){return this.assertAuthConfigured(),this.auth.currentUser?.uid||null}async getToken(e){return this.assertAuthConfigured(),await this.auth._initializationPromise,this.auth.currentUser?{accessToken:await this.auth.currentUser.getIdToken(e)}:null}addAuthTokenListener(t){var e;this.assertAuthConfigured(),this.internalListeners.has(t)||(e=this.auth.onIdTokenChanged(e=>{t(e?.stsTokenManager.accessToken||null)}),this.internalListeners.set(t,e),this.updateProactiveRefresh())}removeAuthTokenListener(e){this.assertAuthConfigured();var t=this.internalListeners.get(e);t&&(this.internalListeners.delete(e),t(),this.updateProactiveRefresh())}assertAuthConfigured(){m(this.auth._initializationPromise,"dependent-sdk-initialized-before-auth")}updateProactiveRefresh(){0<this.internalListeners.size?this.auth._startProactiveRefresh():this.auth._stopProactiveRefresh()}}var oh;function lh(){return window}Y()?._authIdTokenMaxAge,la={loadJS(n){return new Promise((e,r)=>{var t=document.createElement("script");t.setAttribute("src",n),t.onload=e,t.onerror=e=>{var t=es("internal-error");t.customData=e,r(t)},t.type="text/javascript",t.charset="UTF-8",(document.getElementsByTagName("head")?.[0]??document).appendChild(t)})},gapiScript:"https://apis.google.com/js/api.js",recaptchaV2Script:"https://www.google.com/recaptcha/api.js",recaptchaEnterpriseScript:"https://www.google.com/recaptcha/enterprise.js?render="},oh="Browser",Dt(new u("auth",(e,{options:t})=>{var r=e.getProvider("app").getImmediate(),n=e.getProvider("heartbeat"),i=e.getProvider("app-check-internal"),{apiKey:s,authDomain:a}=r.options,s=(m(s&&!s.includes(":"),"invalid-api-key",{appName:r.name}),{apiKey:s,authDomain:a,clientPlatform:oh,apiHost:"identitytoolkit.googleapis.com",tokenApiHost:"securetoken.googleapis.com",apiScheme:"https",sdkClientVersion:ra(oh)}),a=new sa(r,n,i,s);return e=a,r=(t=t)?.persistence||[],r=(Array.isArray(r)?r:[r]).map(Bs),t?.errorMap&&e._updateErrorMap(t.errorMap),e._initializeWithPersistence(r,t?.popupRedirectResolver),a},"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback((e,t,r)=>{e.getProvider("auth-internal").initialize()})),Dt(new u("auth-internal",e=>{var t=aa(e.getProvider("auth").getImmediate());return e=t,new ah(e)},"PRIVATE").setInstantiationMode("EXPLICIT")),d(or,"1.11.0",(e=>{switch(e){case"Node":return"node";case"ReactNative":return"rn";case"Worker":return"webworker";case"Cordova":return"cordova";case"WebExtension":return"web-extension";default:return}})(oh)),d(or,"1.11.0","esm2020");async function hh(e,t,r){var n=lh().BuildInfo,i=(as(t.sessionId,"AuthEvent did not contain a session ID"),i=(e=>{if(as(/[0-9a-zA-Z]+/.test(e),"Can only convert alpha-numeric strings"),"undefined"!=typeof TextEncoder)return(new TextEncoder).encode(e);var t=new ArrayBuffer(e.length),r=new Uint8Array(t);for(let n=0;n<e.length;n++)r[n]=e.charCodeAt(n);return r})(t.sessionId),i=await crypto.subtle.digest("SHA-256",i),await(i=Array.from(new Uint8Array(i))).map(e=>e.toString(16).padStart(2,"0")).join("")),s={};return ea()?s.ibi=n.packageName:Js()?s.apn=n.packageName:Zi(e,"operation-not-supported-in-this-environment"),n.displayName&&(s.appDisplayName=n.displayName),s.sessionId=i,eh(e,r,t.type,void 0,t.eventId??void 0,s)}function uh(n){let i=lh().cordova;return new Promise(r=>{i.plugins.browsertab.isAvailable(e=>{let t=null;e?i.plugins.browsertab.openUrl(n):t=i.InAppBrowser.open(n,(e=ae(),/(iPad|iPhone|iPod).*OS 7_\d/i.test(e)||/(iPad|iPhone|iPod).*OS 8_\d/i.test(e)?"_blank":"_system"),"location=yes"),r(t)})})}let ch=20;class dh extends Pl{constructor(){super(...arguments),this.passiveListeners=new Set,this.initPromise=new Promise(e=>{this.resolveInitialized=e})}addPassiveListener(e){this.passiveListeners.add(e)}removePassiveListener(e){this.passiveListeners.delete(e)}resetRedirect(){this.queuedRedirectEvent=null,this.hasHandledPotentialRedirect=!1}onEvent(t){return this.resolveInitialized(),this.passiveListeners.forEach(e=>e(t)),super.onEvent(t)}async initialized(){await this.initPromise}}function ph(e,t,r=null){return{type:t,eventId:r,urlResponse:null,sessionId:(()=>{var e=[],t="1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";for(let n=0;n<ch;n++){var r=Math.floor(Math.random()*t.length);e.push(t.charAt(r))}return e.join("")})(),postBody:null,tenantId:e.tenantId,error:es(e,"no-auth-event")}}async function fh(e){var t=await mh()._get(vh(e));return t&&await mh()._remove(vh(e)),t}function gh(e,t){i=_h(t=t),r=i.link?decodeURIComponent(i.link):void 0,n=_h(r).link,i=i.deep_link_id?decodeURIComponent(i.deep_link_id):void 0;var r,n,i=_h(i).link||i||n||r||t;return i.includes("/__/auth/callback")?(n=(r=((n=_h(i)).firebaseError?(e=>{try{return JSON.parse(e)}catch(e){return null}})(decodeURIComponent(n.firebaseError)):null)?.code?.split("auth/")?.[1])?es(r):null)?{type:e.type,eventId:e.eventId,tenantId:e.tenantId,error:n,urlResponse:null,sessionId:null,postBody:null}:{type:e.type,eventId:e.eventId,tenantId:e.tenantId,sessionId:e.sessionId,urlResponse:i,postBody:null}:null}function mh(){return Bs(Mo)}function vh(e){return Ks("authEvent",e.config.apiKey,e.name)}function _h(e){var t,r;return e?.includes("?")?([t,...r]=e.split("?"),De(r.join("?"))):{}}class yh{constructor(){this._redirectPersistence=Fo,this._shouldInitProactively=!0,this.eventManagers=new Map,this.originValidationPromises={},this._completeRedirectFn=Nl,this._overrideRedirectResult=Tl}async _initialize(e){var t=e._key();let r=this.eventManagers.get(t);return r||(r=new dh(e),this.eventManagers.set(t,r),this.attachCallbackListeners(e,r)),r}_openPopup(e){Zi(e,"operation-not-supported-in-this-environment")}async _openRedirect(e,t,r,n){i=e,m("function"==typeof(s=lh())?.universalLinks?.subscribe,i,"invalid-cordova-configuration",{missingPlugin:"cordova-universal-links-plugin-fix"}),m(void 0!==s?.BuildInfo?.packageName,i,"invalid-cordova-configuration",{missingPlugin:"cordova-plugin-buildInfo"}),m("function"==typeof s?.cordova?.plugins?.browsertab?.openUrl,i,"invalid-cordova-configuration",{missingPlugin:"cordova-plugin-browsertab"}),m("function"==typeof s?.cordova?.plugins?.browsertab?.isAvailable,i,"invalid-cordova-configuration",{missingPlugin:"cordova-plugin-browsertab"}),m("function"==typeof s?.cordova?.InAppBrowser?.open,i,"invalid-cordova-configuration",{missingPlugin:"cordova-plugin-inappbrowser"});var i,s=await this._initialize(e),a=(await s.initialized(),s.resetRedirect(),wl.clear(),await this._originValidation(e),ph(e,r,n)),a=(i=e,r=a,await mh()._set(vh(i),r),await hh(e,a,t));return(async(a,o,l)=>{let h=lh().cordova,u=()=>{};try{await new Promise((t,e)=>{let r=null;function n(){t();var e=h.plugins.browsertab?.close;"function"==typeof e&&e(),"function"==typeof l?.close&&l.close()}function i(){r=r||window.setTimeout(()=>{e(es(a,"redirect-cancelled-by-user"))},2e3)}function s(){"visible"===document?.visibilityState&&i()}o.addPassiveListener(n),document.addEventListener("resume",i,!1),Js()&&document.addEventListener("visibilitychange",s,!1),u=()=>{o.removePassiveListener(n),document.removeEventListener("resume",i,!1),document.removeEventListener("visibilitychange",s,!1),r&&window.clearTimeout(r)}})}finally{u()}})(e,s,await uh(a))}_isIframeWebStorageSupported(e,t){throw new Error("Method not implemented.")}_originValidation(e){var t=e._key();return this.originValidationPromises[t]||(this.originValidationPromises[t]=(async e=>{var t=lh().BuildInfo,r={};ea()?r.iosBundleId=t.packageName:Js()?r.androidPackageName=t.packageName:Zi(e,"operation-not-supported-in-this-environment"),await Ol(e,r)})(e)),this.originValidationPromises[t]}attachCallbackListeners(n,i){var{universalLinks:e,handleOpenURL:t,BuildInfo:r}=lh();let s=setTimeout(async()=>{await fh(n),i.onEvent(bh())},500),a=async e=>{clearTimeout(s);var t=await fh(n);let r=null;t&&e?.url&&(r=gh(t,e.url)),i.onEvent(r||bh())},o=(void 0!==e&&"function"==typeof e.subscribe&&e.subscribe(null,a),t),l=r.packageName.toLowerCase()+"://";lh().handleOpenURL=async e=>{if(e.toLowerCase().startsWith(l)&&a({url:e}),"function"==typeof o)try{o(e)}catch(e){console.error(e)}}}}let wh=yh;function bh(){return{type:"unknown",eventId:null,sessionId:null,urlResponse:null,postBody:null,tenantId:null,error:es("no-auth-event")}}function Ih(){return self?.location?.protocol||null}function Th(e=ae()){return!("file:"!==Ih()&&"ionic:"!==Ih()&&"capacitor:"!==Ih()||!e.toLowerCase().match(/iphone|ipad|ipod|android/))}function Eh(e=ae()){return de()&&11===document?.documentMode||([e=ae()]=[e],/Edge\/\d+/.test(e))}function Ch(){try{var e=self.localStorage,t=Vo();if(e)return e.setItem(t,"1"),e.removeItem(t),!Eh()||me()}catch(e){return Sh()&&me()}return!1}function Sh(){return"undefined"!=typeof global&&"WorkerGlobalScope"in global&&"importScripts"in global}function kh(){return("http:"===Ih()||"https:"===Ih()||ue()||Th())&&!(ce()||le())&&Ch()&&!Sh()}function Ah(){return Th()&&"undefined"!=typeof document}let Nh={LOCAL:"local",NONE:"none",SESSION:"session"},Rh=m,Ph="persistence";async function Dh(e){await e._initializationPromise;var t=xh(),r=Ks(Ph,e.config.apiKey,e.name);t&&t.setItem(r,e._getPersistenceType())}function xh(){try{return("undefined"!=typeof window?window:null)?.sessionStorage||null}catch(e){return null}}let Oh=m;class Mh{constructor(){this.browserResolver=Bs(nh),this.cordovaResolver=Bs(wh),this.underlyingResolver=null,this._redirectPersistence=Fo,this._completeRedirectFn=Nl,this._overrideRedirectResult=Tl}async _initialize(e){return await this.selectUnderlyingResolver(),this.assertedUnderlyingResolver._initialize(e)}async _openPopup(e,t,r,n){return await this.selectUnderlyingResolver(),this.assertedUnderlyingResolver._openPopup(e,t,r,n)}async _openRedirect(e,t,r,n){return await this.selectUnderlyingResolver(),this.assertedUnderlyingResolver._openRedirect(e,t,r,n)}_isIframeWebStorageSupported(e,t){this.assertedUnderlyingResolver._isIframeWebStorageSupported(e,t)}_originValidation(e){return this.assertedUnderlyingResolver._originValidation(e)}get _shouldInitProactively(){return Ah()||this.browserResolver._shouldInitProactively}get assertedUnderlyingResolver(){return Oh(this.underlyingResolver,"internal-error"),this.underlyingResolver}async selectUnderlyingResolver(){var e;this.underlyingResolver||(e=await(!!Ah()&&new Promise(e=>{let t=setTimeout(()=>{e(!1)},1e3);document.addEventListener("deviceready",()=>{clearTimeout(t),e(!0)})})),this.underlyingResolver=e?this.cordovaResolver:this.browserResolver)}}function Lh(e){return e.unwrap()}function Fh(e,t){var r,n,i,s=t.customData?._tokenResponse;"auth/multi-factor-auth-required"===t?.code?t.resolver=new Bh(e,(r=t,n=w(e),m((i=r).customData.operationType,n,"argument-error"),m(i.customData._serverResponse?.mfaPendingCredential,n,"argument-error"),Ao._fromError(n,i))):s&&(i=Uh(n=t))&&(n.credential=i,n.tenantId=s.tenantId||void 0,n.email=s.email||void 0,n.phoneNumber=s.phoneNumber||void 0)}function Uh(e){var t=(e instanceof ye?e.customData:e)._tokenResponse;if(!t)return null;if(!(e instanceof ye)&&"temporaryProof"in t&&"phoneNumber"in t)return ul.credentialFromResult(e);var r=t.providerId;if(!r||r===Wi.PASSWORD)return null;let n;switch(r){case Wi.GOOGLE:n=Ba;break;case Wi.FACEBOOK:n=qa;break;case Wi.GITHUB:n=ja;break;case Wi.TWITTER:n=Wa;break;default:var{oauthIdToken:i,oauthAccessToken:s,oauthTokenSecret:a,pendingToken:o,nonce:l}=t;return s||a||i||o?o?r.startsWith("saml.")?za._create(r,o):Pa._fromParams({providerId:r,signInMethod:r,pendingToken:o,idToken:i,accessToken:s}):new Va(r).credential({idToken:i,accessToken:s,rawNonce:l}):null}return e instanceof ye?n.credentialFromError(e):n.credentialFromResult(e)}function Vh(t,e){return e.catch(e=>{throw e instanceof ye&&Fh(t,e),e}).then(e=>{var t=e.operationType,r=e.user;return{operationType:t,credential:Uh(e),additionalUserInfo:So(e),user:jh.getOrCreate(r)}})}async function qh(t,e){let r=await e;return{verificationId:r.verificationId,confirm:e=>Vh(t,r.confirm(e))}}class Bh{constructor(e,t){this.resolver=t,this.auth=e.wrapped()}get session(){return this.resolver.session}get hints(){return this.resolver.hints}resolveSignIn(e){return Vh(Lh(this.auth),this.resolver.resolveSignIn(e))}}class jh{constructor(e){var t;this._delegate=e,this.multiFactor=(t=w(e),Po.has(t)||Po.set(t,Ro._fromUser(t)),Po.get(t))}static getOrCreate(e){return jh.USER_MAP.has(e)||jh.USER_MAP.set(e,new jh(e)),jh.USER_MAP.get(e)}delete(){return this._delegate.delete()}reload(){return this._delegate.reload()}toJSON(){return this._delegate.toJSON()}getIdTokenResult(e){return this._delegate.getIdTokenResult(e)}getIdToken(e){return this._delegate.getIdToken(e)}linkAndRetrieveDataWithCredential(e){return this.linkWithCredential(e)}async linkWithCredential(e){return Vh(this.auth,io(this._delegate,e))}async linkWithPhoneNumber(e,t){return qh(this.auth,(async(e,t,r)=>{let n=w(e);await eo(!1,n,"phone");var i=await ll(n.auth,t,w(r));return new ol(i,e=>io(n,e))})(this._delegate,e,t))}async linkWithPopup(e){return Vh(this.auth,(async(e,t,r)=>{var n=w(e),i=(ns(n.auth,t,Fa),cl(n.auth,r));return new _l(n.auth,"linkViaPopup",t,i,n).executeNotNull()})(this._delegate,e,Mh))}async linkWithRedirect(e){return await Dh(aa(this.auth)),Al(this._delegate,e,Mh)}reauthenticateAndRetrieveDataWithCredential(e){return this.reauthenticateWithCredential(e)}async reauthenticateWithCredential(e){return Vh(this.auth,so(this._delegate,e))}reauthenticateWithPhoneNumber(e,t){return qh(this.auth,(async(e,t,r)=>{let n=w(e);var i;return h(n.auth.app)?Promise.reject(rs(n.auth)):(i=await ll(n.auth,t,w(r)),new ol(i,e=>so(n,e)))})(this._delegate,e,t))}reauthenticateWithPopup(e){return Vh(this.auth,(async(e,t,r)=>{var n=w(e);if(h(n.auth.app))return Promise.reject(es(n.auth,"operation-not-supported-in-this-environment"));ns(n.auth,t,Fa);var i=cl(n.auth,r);return new _l(n.auth,"reauthViaPopup",t,i,n).executeNotNull()})(this._delegate,e,Mh))}async reauthenticateWithRedirect(e){return await Dh(aa(this.auth)),kl(this._delegate,e,Mh)}sendEmailVerification(e){return mo(this._delegate,e)}async unlink(e){return await Xa(this._delegate,e),this}updateEmail(e){return t=this._delegate,e=e,h((r=w(t)).auth.app)?Promise.reject(rs(r.auth)):yo(r,e,null);var t,r}updatePassword(e){return yo(w(this._delegate),null,e)}updatePhoneNumber(e){return(async(e,t)=>{var r=w(e);if(h(r.auth.app))return Promise.reject(rs(r.auth));await Za(r,t)})(this._delegate,e)}updateProfile(e){return _o(this._delegate,e)}verifyBeforeUpdateEmail(e,t){return vo(this._delegate,e,t)}get emailVerified(){return this._delegate.emailVerified}get isAnonymous(){return this._delegate.isAnonymous}get metadata(){return this._delegate.metadata}get phoneNumber(){return this._delegate.phoneNumber}get providerData(){return this._delegate.providerData}get refreshToken(){return this._delegate.refreshToken}get tenantId(){return this._delegate.tenantId}get displayName(){return this._delegate.displayName}get email(){return this._delegate.email}get photoURL(){return this._delegate.photoURL}get providerId(){return this._delegate.providerId}get uid(){return this._delegate.uid}get auth(){return this._delegate.auth}}jh.USER_MAP=new WeakMap;let zh=m;class Kh{constructor(e,t){var r,n;this.app=e,t.isInitialized()?this._delegate=t.getImmediate():(r=e.options.apiKey,zh(r,"invalid-api-key",{appName:e.name}),zh(r,"invalid-api-key",{appName:e.name}),n="undefined"!=typeof window?Mh:void 0,this._delegate=t.initialize({options:{persistence:((e,t)=>{var r=((e,t)=>{var r=xh();if(!r)return[];var n=Ks(Ph,e,t);switch(r.getItem(n)){case Nh.NONE:return[zs];case Nh.LOCAL:return[Xo,Fo];case Nh.SESSION:return[Fo];default:return[]}})(e,t);if("undefined"==typeof self||r.includes(Xo)||r.push(Xo),"undefined"!=typeof window)for(var n of[Mo,Fo])r.includes(n)||r.push(n);return r.includes(zs)||r.push(zs),r})(r,e.name),popupRedirectResolver:n}}),this._delegate._updateErrorMap($i)),this.linkUnderlyingAuth()}get emulatorConfig(){return this._delegate.emulatorConfig}get currentUser(){return this._delegate.currentUser?jh.getOrCreate(this._delegate.currentUser):null}get languageCode(){return this._delegate.languageCode}set languageCode(e){this._delegate.languageCode=e}get settings(){return this._delegate.settings}get tenantId(){return this._delegate.tenantId}set tenantId(e){this._delegate.tenantId=e}useDeviceLanguage(){this._delegate.useDeviceLanguage()}signOut(){return this._delegate.signOut()}useEmulator(e,t){ya(this._delegate,e,t)}applyActionCode(e){return po(this._delegate,e)}checkActionCode(e){return fo(this._delegate,e)}confirmPasswordReset(e,t){return(async(t,e,r)=>{await Ta(w(t),{oobCode:e,newPassword:r}).catch(async e=>{throw"auth/password-does-not-meet-requirements"===e.code&&co(t),e})})(this._delegate,e,t)}async createUserWithEmailAndPassword(e,t){return Vh(this._delegate,(async(t,e,r)=>{var n,i;return h(t.app)?Promise.reject(rs(t)):(i=await _a(n=aa(t),{returnSecureToken:!0,email:e,password:r,clientType:"CLIENT_TYPE_WEB"},"signUpPassword",Ha,"EMAIL_PASSWORD_PROVIDER").catch(e=>{throw"auth/password-does-not-meet-requirements"===e.code&&co(t),e}),i=await Ga._fromIdTokenResponse(n,"signIn",i),await n._updateCurrentUser(i.user),i)})(this._delegate,e,t))}fetchProvidersForEmail(e){return this.fetchSignInMethodsForEmail(e)}fetchSignInMethodsForEmail(e){return go(this._delegate,e)}isSignInWithEmailLink(e){return this._delegate,e=e,"EMAIL_SIGNIN"===Ma.parseLink(e)?.operation}async getRedirectResult(){zh(kh(),this._delegate,"operation-not-supported-in-this-environment");e=this._delegate,t=Mh,await aa(e)._initializationPromise;var e,t,r=await Nl(e,t,!1);return r?Vh(this._delegate,Promise.resolve(r)):{credential:null,user:null}}addFrameworkForLogging(e){aa(this._delegate)._logFramework(e)}onAuthStateChanged(e,t,r){var{next:n,error:i,complete:s}=Wh(e,t,r);return this._delegate.onAuthStateChanged(n,i,s)}onIdTokenChanged(e,t,r){var{next:n,error:i,complete:s}=Wh(e,t,r);return this._delegate.onIdTokenChanged(n,i,s)}sendSignInLinkToEmail(e,t){return(async(e,t,r)=>{let n=aa(e);var i={requestType:"EMAIL_SIGNIN",email:t,clientType:"CLIENT_TYPE_WEB"};e=i,m((t=r).handleCodeInApp,n,"argument-error"),t&&uo(n,e,t),await _a(n,i,"getOobCode",Aa,"EMAIL_PASSWORD_PROVIDER")})(this._delegate,e,t)}sendPasswordResetEmail(e,t){return(async(e,t,r)=>{var n=aa(e),i={requestType:"PASSWORD_RESET",email:t,clientType:"CLIENT_TYPE_WEB"};r&&uo(n,i,r),await _a(n,i,"getOobCode",ka,"EMAIL_PASSWORD_PROVIDER")})(this._delegate,e,t||void 0)}async setPersistence(e){var t,r;t=this._delegate,r=e,Rh(Object.values(Nh).includes(r),t,"invalid-persistence-type"),ce()?Rh(r!==Nh.SESSION,t,"unsupported-persistence-type"):le()?Rh(r===Nh.NONE,t,"unsupported-persistence-type"):Sh()?Rh(r===Nh.NONE||r===Nh.LOCAL&&me(),t,"unsupported-persistence-type"):Rh(r===Nh.NONE||Ch(),t,"unsupported-persistence-type");let n;switch(e){case Nh.SESSION:n=Fo;break;case Nh.LOCAL:var i=await Bs(Xo)._isAvailable();n=i?Xo:Mo;break;case Nh.NONE:n=zs;break;default:return Zi("argument-error",{appName:this._delegate.name})}return this._delegate.setPersistence(n)}signInAndRetrieveDataWithCredential(e){return this.signInWithCredential(e)}signInAnonymously(){return Vh(this._delegate,(async e=>{var t,r;return h(e.app)?Promise.reject(rs(e)):(await(t=aa(e))._initializationPromise,t.currentUser?.isAnonymous?new Ga({user:t.currentUser,providerId:null,operationType:"signIn"}):(r=await Ha(t,{returnSecureToken:!0}),r=await Ga._fromIdTokenResponse(t,"signIn",r,!0),await t._updateCurrentUser(r.user),r))})(this._delegate))}signInWithCredential(e){return Vh(this._delegate,no(this._delegate,e))}signInWithCustomToken(e){return Vh(this._delegate,ao(this._delegate,e))}signInWithEmailAndPassword(e,t){return Vh(this._delegate,(r=this._delegate,e=e,t=t,h(r.app)?Promise.reject(rs(r)):no(w(r),La.credential(e,t)).catch(async e=>{throw"auth/password-does-not-meet-requirements"===e.code&&co(r),e})));var r}signInWithEmailLink(e,t){return Vh(this._delegate,(async(e,t,r)=>{var n,i;return h(e.app)?Promise.reject(rs(e)):(n=w(e),m((i=La.credentialWithLink(t,r||os()))._tenantId===(n.tenantId||null),n,"tenant-id-mismatch"),no(n,i))})(this._delegate,e,t))}signInWithPhoneNumber(e,t){return qh(this._delegate,(async(e,t,r)=>{if(h(e.app))return Promise.reject(rs(e));let n=aa(e);var i=await ll(n,t,w(r));return new ol(i,e=>no(n,e))})(this._delegate,e,t))}async signInWithPopup(e){return zh(kh(),this._delegate,"operation-not-supported-in-this-environment"),Vh(this._delegate,(async(e,t,r)=>{var n,i;return h(e.app)?Promise.reject(es(e,"operation-not-supported-in-this-environment")):(n=aa(e),ns(e,t,Fa),i=cl(n,r),new _l(n,"signInViaPopup",t,i).executeNotNull())})(this._delegate,e,Mh))}async signInWithRedirect(e){return zh(kh(),this._delegate,"operation-not-supported-in-this-environment"),await Dh(this._delegate),Sl(this._delegate,e,Mh)}updateCurrentUser(e){return this._delegate.updateCurrentUser(e)}verifyPasswordResetCode(e){return(async(e,t)=>{var r=(await fo(w(e),t)).data;return r.email})(this._delegate,e)}unwrap(){return this._delegate}_delete(){return this._delegate._delete()}linkUnderlyingAuth(){this._delegate.wrapped=()=>this}}function Wh(e,t,r){let n=e,i=("function"!=typeof e&&({next:n,error:t,complete:r}=e),n);return{next:e=>i(e&&jh.getOrCreate(e)),error:t,complete:r}}Kh.Persistence=Nh;class Hh{static credential(e,t){return ul.credential(e,t)}constructor(){this.providerId="phone",this._delegate=new ul(Lh(ur.auth()))}verifyPhoneNumber(e,t){return this._delegate.verifyPhoneNumber(e,t)}unwrap(){return this._delegate}}Hh.PHONE_SIGN_IN_METHOD=ul.PHONE_SIGN_IN_METHOD,Hh.PROVIDER_ID=ul.PROVIDER_ID;let Gh=m;class $h{constructor(e,t,r=ur.app()){Gh(r.options?.apiKey,"invalid-api-key",{appName:r.name}),this._delegate=new al(r.auth(),e,t),this.type=this._delegate.type}clear(){this._delegate.clear()}render(){return this._delegate.render()}verify(){return this._delegate.verify()}}(t=ur).INTERNAL.registerComponent(new u("auth-compat",e=>{var t=e.getProvider("app-compat").getImmediate(),r=e.getProvider("auth");return new Kh(t,r)},"PUBLIC").setServiceProps({ActionCodeInfo:{Operation:{EMAIL_SIGNIN:Hi.EMAIL_SIGNIN,PASSWORD_RESET:Hi.PASSWORD_RESET,RECOVER_EMAIL:Hi.RECOVER_EMAIL,REVERT_SECOND_FACTOR_ADDITION:Hi.REVERT_SECOND_FACTOR_ADDITION,VERIFY_AND_CHANGE_EMAIL:Hi.VERIFY_AND_CHANGE_EMAIL,VERIFY_EMAIL:Hi.VERIFY_EMAIL}},EmailAuthProvider:La,FacebookAuthProvider:qa,GithubAuthProvider:ja,GoogleAuthProvider:Ba,OAuthProvider:Va,SAMLAuthProvider:Ka,PhoneAuthProvider:Hh,PhoneMultiFactorGenerator:sh,RecaptchaVerifier:$h,TwitterAuthProvider:Wa,Auth:Kh,AuthCredential:Ia,Error:ye}).setInstantiationMode("LAZY").setMultipleInstances(!1)),t.registerVersion("@firebase/auth-compat","0.6.0");let Qh="@firebase/database",Yh="";function Jh(e){Yh=e}class Xh{constructor(e){this.domStorage_=e,this.prefix_="firebase:"}set(e,t){null==t?this.domStorage_.removeItem(this.prefixedName_(e)):this.domStorage_.setItem(this.prefixedName_(e),Te(t))}get(e){var t=this.domStorage_.getItem(this.prefixedName_(e));return null==t?null:Ie(t)}remove(e){this.domStorage_.removeItem(this.prefixedName_(e))}prefixedName_(e){return this.prefix_+e}toString(){return this.domStorage_.toString()}}class Zh{constructor(){this.cache_={},this.isInMemoryStorage=!0}set(e,t){null==t?delete this.cache_[e]:this.cache_[e]=t}get(e){return Ce(this.cache_,e)?this.cache_[e]:null}remove(e){delete this.cache_[e]}}function eu(e){try{var t;if("undefined"!=typeof window&&void 0!==window[e])return(t=window[e]).setItem("firebase:sentinel","cache"),t.removeItem("firebase:sentinel"),new Xh(t)}catch(e){}return new Zh}var tu;function ru(e){var t=(t=>{var r,n,i=[];let s=0;for(let a=0;a<t.length;a++){let e=t.charCodeAt(a);55296<=e&&e<=56319&&(r=e-55296,a++,g(a<t.length,"Surrogate pair missing trail surrogate."),n=t.charCodeAt(a)-56320,e=65536+(r<<10)+n),e<128?i[s++]=e:(e<2048?i[s++]=e>>6|192:(e<65536?i[s++]=e>>12|224:(i[s++]=e>>18|240,i[s++]=e>>12&63|128),i[s++]=e>>6&63|128),i[s++]=63&e|128)}return i})(e),r=new Oe,t=(r.update(t),r.digest());return a.encodeByteArray(t)}function nu(t){return function(...e){vu(t,...e)}}function iu(...e){var t="FIREBASE INTERNAL ERROR: "+pu(...e);cu.error(t)}function su(e,t){return e===t?0:e<t?-1:1}function au(e,t){if(t&&e in t)return t[e];throw new Error("Missing required key ("+e+") in object: "+Te(t))}function ou(e){if("object"!=typeof e||null===e)return Te(e);var t,r=[];for(t in e)r.push(t);r.sort();let n="{";for(let i=0;i<r.length;i++)0!==i&&(n+=","),n=(n=n+Te(r[i])+":")+ou(e[r[i]]);return n+="}"}function lu(e,t){var r=e.length;if(r<=t)return[e];var n=[];for(let i=0;i<r;i+=t)i+t>r?n.push(e.substring(i,r)):n.push(e.substring(i,i+t));return n}let hu=eu("localStorage"),uu=eu("sessionStorage"),cu=new tt("@firebase/database"),du=(()=>{let e=1;return function(){return e++}})(),pu=function(...e){let t="";for(let n=0;n<e.length;n++){var r=e[n];Array.isArray(r)||r&&"object"==typeof r&&"number"==typeof r.length?t+=pu.apply(null,r):t+="object"==typeof r?Te(r):r,t+=" "}return t},fu=null,gu=!0,mu=function(e,t){g(!t||!0===e||!1===e,"Can't turn on custom loggers persistently."),!0===e?(cu.logLevel=c.VERBOSE,fu=cu.log.bind(cu),t&&uu.set("logging_enabled",!0)):"function"==typeof e?fu=e:(fu=null,uu.remove("logging_enabled"))},vu=function(...e){var t;!0===gu&&(gu=!1,null===fu)&&!0===uu.get("logging_enabled")&&mu(!0),fu&&(t=pu.apply(null,e),fu(t))},_u=function(...e){var t="FIREBASE FATAL ERROR: "+pu(...e);throw cu.error(t),new Error(t)},yu=function(...e){var t="FIREBASE WARNING: "+pu(...e);cu.warn(t)},wu=function(){"undefined"!=typeof window&&window.location&&window.location.protocol&&-1!==window.location.protocol.indexOf("https:")&&yu("Insecure Firebase access from a secure page. Please use https in calls to new Firebase().")},bu=function(e){return"number"==typeof e&&(e!=e||e===Number.POSITIVE_INFINITY||e===Number.NEGATIVE_INFINITY)},Iu="[MIN_NAME]",Tu="[MAX_NAME]",Eu=function(e,t){var r,n;return e===t?0:e===Iu||t===Tu?-1:t===Iu||e===Tu?1:(r=ku(e),n=ku(t),null!==r?null!==n?r-n==0?e.length-t.length:r-n:-1:null===n&&e<t?-1:1)};function Cu(e,t){for(var r in e)e.hasOwnProperty(r)&&t(r,e[r])}function Su(e){g(!bu(e),"Invalid JSON number");let t,r,n,i,s;0===e?(r=0,n=0,t=1/e==-1/0?1:0):(t=e<0,e=Math.abs(e),n=e>=Math.pow(2,-1022)?(i=Math.min(Math.floor(Math.log(e)/Math.LN2),1023),r=i+1023,Math.round(e*Math.pow(2,52-i)-Math.pow(2,52))):(r=0,Math.round(e/Math.pow(2,-1074))));var a=[];for(s=52;s;--s)a.push(n%2?1:0),n=Math.floor(n/2);for(s=11;s;--s)a.push(r%2?1:0),r=Math.floor(r/2);a.push(t?1:0),a.reverse();var o=a.join("");let l="";for(s=0;s<64;s+=8){let e=parseInt(o.substr(s,8),2).toString(16);1===e.length&&(e="0"+e),l+=e}return l.toLowerCase()}function ku(e){if(Nu.test(e)){var t=Number(e);if(t>=Ru&&t<=Pu)return t}return null}function Au(e,t){var r=setTimeout(e,t);return"number"==typeof r&&"undefined"!=typeof Deno&&Deno.unrefTimer?Deno.unrefTimer(r):"object"==typeof r&&r.unref&&r.unref(),r}let Nu=new RegExp("^-?(0*)\\d{1,10}$"),Ru=-2147483648,Pu=2147483647,Du=function(e){try{e()}catch(t){setTimeout(()=>{var e=t.stack||"";throw yu("Exception was thrown by user callback.",e),t},Math.floor(0))}};class xu{constructor(e,t){this.appCheckProvider=t,this.appName=e.name,h(e)&&e.settings.appCheckToken&&(this.serverAppAppCheckToken=e.settings.appCheckToken),this.appCheck=t?.getImmediate({optional:!0}),this.appCheck||t?.get().then(e=>this.appCheck=e)}getToken(r){if(this.serverAppAppCheckToken){if(r)throw new Error("Attempted reuse of `FirebaseServerApp.appCheckToken` after previous usage failed.");return Promise.resolve({token:this.serverAppAppCheckToken})}return this.appCheck?this.appCheck.getToken(r):new Promise((e,t)=>{setTimeout(()=>{this.appCheck?this.getToken(r).then(e,t):e(null)},0)})}addTokenChangeListener(t){this.appCheckProvider?.get().then(e=>e.addTokenListener(t))}notifyForInvalidToken(){yu(`Provided AppCheck credentials for the app named "${this.appName}" `+"are invalid. This usually indicates your app was not initialized correctly.")}}class Ou{constructor(e,t,r){this.appName_=e,this.firebaseOptions_=t,this.authProvider_=r,this.auth_=null,this.auth_=r.getImmediate({optional:!0}),this.auth_||r.onInit(e=>this.auth_=e)}getToken(r){return this.auth_?this.auth_.getToken(r).catch(e=>e&&"auth/token-not-initialized"===e.code?(vu("Got auth/token-not-initialized error. Treating as null token."),null):Promise.reject(e)):new Promise((e,t)=>{setTimeout(()=>{this.auth_?this.getToken(r).then(e,t):e(null)},0)})}addTokenChangeListener(t){this.auth_?this.auth_.addAuthTokenListener(t):this.authProvider_.get().then(e=>e.addAuthTokenListener(t))}removeTokenChangeListener(t){this.authProvider_.get().then(e=>e.removeAuthTokenListener(t))}notifyForInvalidToken(){let e='Provided authentication credentials for the app named "'+this.appName_+'" are invalid. This usually indicates your app was not initialized correctly. ';"credential"in this.firebaseOptions_?e+='Make sure the "credential" property provided to initializeApp() is authorized to access the specified "databaseURL" and is from the correct project.':"serviceAccount"in this.firebaseOptions_?e+='Make sure the "serviceAccount" property provided to initializeApp() is authorized to access the specified "databaseURL" and is from the correct project.':e+='Make sure the "apiKey" and "databaseURL" properties provided to initializeApp() match the values provided for your app at https://console.firebase.google.com/.',yu(e)}}class Mu{constructor(e){this.accessToken=e}getToken(e){return Promise.resolve({accessToken:this.accessToken})}addTokenChangeListener(e){e(this.accessToken)}removeTokenChangeListener(e){}notifyForInvalidToken(){}}Mu.OWNER="owner";let Lu=/(console\.firebase|firebase-console-\w+\.corp|firebase\.corp)\.google\.com/,Fu="websocket",Uu="long_polling";class Vu{constructor(e,t,r,n,i=!1,s="",a=!1,o=!1,l=null){this.secure=t,this.namespace=r,this.webSocketOnly=n,this.nodeAdmin=i,this.persistenceKey=s,this.includeNamespaceInQueryParams=a,this.isUsingEmulator=o,this.emulatorOptions=l,this._host=e.toLowerCase(),this._domain=this._host.substr(this._host.indexOf(".")+1),this.internalHost=hu.get("host:"+e)||this._host}isCacheableHost(){return"s-"===this.internalHost.substr(0,2)}isCustomHost(){return"firebaseio.com"!==this._domain&&"firebaseio-demo.com"!==this._domain}get host(){return this._host}set host(e){e!==this.internalHost&&(this.internalHost=e,this.isCacheableHost())&&hu.set("host:"+this._host,this.internalHost)}toString(){let e=this.toURLString();return this.persistenceKey&&(e+="<"+this.persistenceKey+">"),e}toURLString(){var e=this.secure?"https://":"http://",t=this.includeNamespaceInQueryParams?"?ns="+this.namespace:"";return e+this.host+"/"+t}}function qu(e,t,r){g("string"==typeof t,"typeof type must == string"),g("object"==typeof r,"typeof params must == object");let n;if(t===Fu)n=(e.secure?"wss://":"ws://")+e.internalHost+"/.ws?";else{if(t!==Uu)throw new Error("Unknown connection type: "+t);n=(e.secure?"https://":"http://")+e.internalHost+"/.lp?"}((t=e).host!==t.internalHost||t.isCustomHost()||t.includeNamespaceInQueryParams)&&(r.ns=e.namespace);let i=[];return Cu(r,(e,t)=>{i.push(e+"="+t)}),n+i.join("&")}class Bu{constructor(){this.counters_={}}incrementCounter(e,t=1){Ce(this.counters_,e)||(this.counters_[e]=0),this.counters_[e]+=t}get(){return W(void 0,this.counters_)}}let ju={},zu={};function Ku(e){var t=e.toString();return ju[t]||(ju[t]=new Bu),ju[t]}class Wu{constructor(e){this.onMessage_=e,this.pendingResponses=[],this.currentResponseNum=0,this.closeAfterResponse=-1,this.onClose=null}closeAfter(e,t){this.closeAfterResponse=e,this.onClose=t,this.closeAfterResponse<this.currentResponseNum&&(this.onClose(),this.onClose=null)}handleResponse(e,t){for(this.pendingResponses[e]=t;this.pendingResponses[this.currentResponseNum];){let e=this.pendingResponses[this.currentResponseNum];delete this.pendingResponses[this.currentResponseNum];for(let t=0;t<e.length;++t)e[t]&&Du(()=>{this.onMessage_(e[t])});if(this.currentResponseNum===this.closeAfterResponse){this.onClose&&(this.onClose(),this.onClose=null);break}this.currentResponseNum++}}}class Hu{constructor(e,t,r,n,i,s,a){this.connId=e,this.repoInfo=t,this.applicationId=r,this.appCheckToken=n,this.authToken=i,this.transportSessionId=s,this.lastSessionId=a,this.bytesSent=0,this.bytesReceived=0,this.everConnected_=!1,this.log_=nu(e),this.stats_=Ku(t),this.urlFn=e=>(this.appCheckToken&&(e.ac=this.appCheckToken),qu(t,Uu,e))}open(e,t){this.curSegmentNum=0,this.onDisconnect_=t,this.myPacketOrderer=new Wu(e),this.isClosed_=!1,this.connectTimeoutTimer_=setTimeout(()=>{this.log_("Timed out trying to connect."),this.onClosed_(),this.connectTimeoutTimer_=null},Math.floor(3e4));var r=()=>{var e;this.isClosed_||(this.scriptTagHolder=new Gu((...e)=>{var[t,r,n,,,]=e;if(this.incrementIncomingBytes_(e),this.scriptTagHolder)if(this.connectTimeoutTimer_&&(clearTimeout(this.connectTimeoutTimer_),this.connectTimeoutTimer_=null),this.everConnected_=!0,"start"===t)this.id=r,this.password=n;else{if("close"!==t)throw new Error("Unrecognized command received: "+t);r?(this.scriptTagHolder.sendNewPolls=!1,this.myPacketOrderer.closeAfter(r,()=>{this.onClosed_()})):this.onClosed_()}},(...e)=>{var[t,r]=e;this.incrementIncomingBytes_(e),this.myPacketOrderer.handleResponse(t,r)},()=>{this.onClosed_()},this.urlFn),(e={start:"t"}).ser=Math.floor(1e8*Math.random()),this.scriptTagHolder.uniqueCallbackIdentifier&&(e.cb=this.scriptTagHolder.uniqueCallbackIdentifier),e.v="5",this.transportSessionId&&(e.s=this.transportSessionId),this.lastSessionId&&(e.ls=this.lastSessionId),this.applicationId&&(e.p=this.applicationId),this.appCheckToken&&(e.ac=this.appCheckToken),"undefined"!=typeof location&&location.hostname&&Lu.test(location.hostname)&&(e.r="f"),e=this.urlFn(e),this.log_("Connecting via long-poll to "+e),this.scriptTagHolder.addTag(e,()=>{}))};if("complete"===document.readyState)r();else{let e=!1,t=function(){document.body?e||(e=!0,r()):setTimeout(t,Math.floor(10))};document.addEventListener?(document.addEventListener("DOMContentLoaded",t,!1),window.addEventListener("load",t,!1)):document.attachEvent&&(document.attachEvent("onreadystatechange",()=>{"complete"===document.readyState&&t()}),window.attachEvent("onload",t))}}start(){this.scriptTagHolder.startLongPoll(this.id,this.password),this.addDisconnectPingFrame(this.id,this.password)}static forceAllow(){Hu.forceAllow_=!0}static forceDisallow(){Hu.forceDisallow_=!0}static isAvailable(){return!!Hu.forceAllow_||!(Hu.forceDisallow_||"undefined"==typeof document||null==document.createElement||"object"==typeof window&&window.chrome&&window.chrome.extension&&!/^chrome/.test(window.location.href)||"object"==typeof Windows&&"object"==typeof Windows.UI)}markConnectionHealthy(){}shutdown_(){this.isClosed_=!0,this.scriptTagHolder&&(this.scriptTagHolder.close(),this.scriptTagHolder=null),this.myDisconnFrame&&(document.body.removeChild(this.myDisconnFrame),this.myDisconnFrame=null),this.connectTimeoutTimer_&&(clearTimeout(this.connectTimeoutTimer_),this.connectTimeoutTimer_=null)}onClosed_(){this.isClosed_||(this.log_("Longpoll is closing itself"),this.shutdown_(),this.onDisconnect_&&(this.onDisconnect_(this.everConnected_),this.onDisconnect_=null))}close(){this.isClosed_||(this.log_("Longpoll is being closed."),this.shutdown_())}send(e){var t=Te(e),t=(this.bytesSent+=t.length,this.stats_.incrementCounter("bytes_sent",t.length),o(t)),r=lu(t,1840);for(let n=0;n<r.length;n++)this.scriptTagHolder.enqueueSegment(this.curSegmentNum,r.length,r[n]),this.curSegmentNum++}addDisconnectPingFrame(e,t){this.myDisconnFrame=document.createElement("iframe");var r={dframe:"t"};r.id=e,r.pw=t,this.myDisconnFrame.src=this.urlFn(r),this.myDisconnFrame.style.display="none",document.body.appendChild(this.myDisconnFrame)}incrementIncomingBytes_(e){var t=Te(e).length;this.bytesReceived+=t,this.stats_.incrementCounter("bytes_received",t)}}class Gu{constructor(t,r,e,n){this.onDisconnect=e,this.urlFn=n,this.outstandingRequests=new Set,this.pendingSegs=[],this.currentSerial=Math.floor(1e8*Math.random()),this.sendNewPolls=!0;{this.uniqueCallbackIdentifier=du(),window["pLPCommand"+this.uniqueCallbackIdentifier]=t,window["pRTLPCB"+this.uniqueCallbackIdentifier]=r,this.myIFrame=Gu.createIFrame_();let e="";this.myIFrame.src&&"javascript:"===this.myIFrame.src.substr(0,"javascript:".length)&&(i=document.domain,e='<script>document.domain="'+i+'";<\/script>');var i="<html><body>"+e+"</body></html>";try{this.myIFrame.doc.open(),this.myIFrame.doc.write(i),this.myIFrame.doc.close()}catch(e){vu("frame writing exception"),e.stack&&vu(e.stack),vu(e)}}}static createIFrame_(){var t=document.createElement("iframe");if(t.style.display="none",!document.body)throw"Document body has not initialized. Wait to initialize Firebase until after the document is ready.";document.body.appendChild(t);try{t.contentWindow.document||vu("No IE domain setting required")}catch(e){var r=document.domain;t.src="javascript:void((function(){document.open();document.domain='"+r+"';document.close();})())"}return t.contentDocument?t.doc=t.contentDocument:t.contentWindow?t.doc=t.contentWindow.document:t.document&&(t.doc=t.document),t}close(){this.alive=!1,this.myIFrame&&(this.myIFrame.doc.body.textContent="",setTimeout(()=>{null!==this.myIFrame&&(document.body.removeChild(this.myIFrame),this.myIFrame=null)},Math.floor(0)));var e=this.onDisconnect;e&&(this.onDisconnect=null,e())}startLongPoll(e,t){for(this.myID=e,this.myPW=t,this.alive=!0;this.newRequest_(););}newRequest_(){if(this.alive&&this.sendNewPolls&&this.outstandingRequests.size<(0<this.pendingSegs.length?2:1)){this.currentSerial++;var r={},r=(r.id=this.myID,r.pw=this.myPW,r.ser=this.currentSerial,this.urlFn(r));let e="",t=0;for(;0<this.pendingSegs.length;){if(!(this.pendingSegs[0].d.length+30+e.length<=1870))break;var n=this.pendingSegs.shift();e=e+"&seg"+t+"="+n.seg+"&ts"+t+"="+n.ts+"&d"+t+"="+n.d,t++}return r+=e,this.addLongPollTag_(r,this.currentSerial),!0}return!1}enqueueSegment(e,t,r){this.pendingSegs.push({seg:e,ts:t,d:r}),this.alive&&this.newRequest_()}addLongPollTag_(e,t){this.outstandingRequests.add(t);let r=()=>{this.outstandingRequests.delete(t),this.newRequest_()},n=setTimeout(r,Math.floor(25e3));this.addTag(e,()=>{clearTimeout(n),r()})}addTag(e,r){setTimeout(()=>{try{if(this.sendNewPolls){let t=this.myIFrame.doc.createElement("script");t.type="text/javascript",t.async=!0,t.src=e,t.onload=t.onreadystatechange=function(){var e=t.readyState;e&&"loaded"!==e&&"complete"!==e||(t.onload=t.onreadystatechange=null,t.parentNode&&t.parentNode.removeChild(t),r())},t.onerror=()=>{vu("Long-poll script failed to load: "+e),this.sendNewPolls=!1,this.close()},this.myIFrame.doc.body.appendChild(t)}}catch(e){}},Math.floor(1))}}let $u=null;"undefined"!=typeof MozWebSocket?$u=MozWebSocket:"undefined"!=typeof WebSocket&&($u=WebSocket);class Qu{constructor(e,t,r,n,i,s,a){this.connId=e,this.applicationId=r,this.appCheckToken=n,this.authToken=i,this.keepaliveTimer=null,this.frames=null,this.totalFrames=0,this.bytesSent=0,this.bytesReceived=0,this.log_=nu(this.connId),this.stats_=Ku(t),this.connURL=Qu.connectionURL_(t,s,a,n,r),this.nodeAdmin=t.nodeAdmin}static connectionURL_(e,t,r,n,i){var s={v:"5"};return"undefined"!=typeof location&&location.hostname&&Lu.test(location.hostname)&&(s.r="f"),t&&(s.s=t),r&&(s.ls=r),n&&(s.ac=n),i&&(s.p=i),qu(e,Fu,s)}open(e,t){this.onDisconnect=t,this.onMessage=e,this.log_("Websocket connecting to "+this.connURL),this.everConnected_=!1,hu.set("previous_websocket_failure",!0);try{pe(),this.mySock=new $u(this.connURL,[],void 0)}catch(e){this.log_("Error instantiating WebSocket.");var r=e.message||e.data;return r&&this.log_(r),void this.onClosed_()}this.mySock.onopen=()=>{this.log_("Websocket connected."),this.everConnected_=!0},this.mySock.onclose=()=>{this.log_("Websocket connection was disconnected."),this.mySock=null,this.onClosed_()},this.mySock.onmessage=e=>{this.handleIncomingFrame(e)},this.mySock.onerror=e=>{this.log_("WebSocket error. Closing connection.");var t=e.message||e.data;t&&this.log_(t),this.onClosed_()}}start(){}static forceDisallow(){Qu.forceDisallow_=!0}static isAvailable(){let e=!1;var t;return!(e="undefined"!=typeof navigator&&navigator.userAgent&&(t=navigator.userAgent.match(/Android ([0-9]{0,}\.[0-9]{0,})/))&&1<t.length&&parseFloat(t[1])<4.4?!0:e)&&null!==$u&&!Qu.forceDisallow_}static previouslyFailed(){return hu.isInMemoryStorage||!0===hu.get("previous_websocket_failure")}markConnectionHealthy(){hu.remove("previous_websocket_failure")}appendFrame_(e){var t;this.frames.push(e),this.frames.length===this.totalFrames&&(t=this.frames.join(""),this.frames=null,t=Ie(t),this.onMessage(t))}handleNewFrameCount_(e){this.totalFrames=e,this.frames=[]}extractFrameCount_(e){if(g(null===this.frames,"We already have a frame buffer"),e.length<=6){var t=Number(e);if(!isNaN(t))return this.handleNewFrameCount_(t),null}return this.handleNewFrameCount_(1),e}handleIncomingFrame(e){var t;null!==this.mySock&&(t=e.data,this.bytesReceived+=t.length,this.stats_.incrementCounter("bytes_received",t.length),this.resetKeepAlive(),null!==this.frames?this.appendFrame_(t):null!==(t=this.extractFrameCount_(t))&&this.appendFrame_(t))}send(e){this.resetKeepAlive();var t=Te(e),r=(this.bytesSent+=t.length,this.stats_.incrementCounter("bytes_sent",t.length),lu(t,16384));1<r.length&&this.sendString_(String(r.length));for(let n=0;n<r.length;n++)this.sendString_(r[n])}shutdown_(){this.isClosed_=!0,this.keepaliveTimer&&(clearInterval(this.keepaliveTimer),this.keepaliveTimer=null),this.mySock&&(this.mySock.close(),this.mySock=null)}onClosed_(){this.isClosed_||(this.log_("WebSocket is closing itself"),this.shutdown_(),this.onDisconnect&&(this.onDisconnect(this.everConnected_),this.onDisconnect=null))}close(){this.isClosed_||(this.log_("WebSocket is being closed"),this.shutdown_())}resetKeepAlive(){clearInterval(this.keepaliveTimer),this.keepaliveTimer=setInterval(()=>{this.mySock&&this.sendString_("0"),this.resetKeepAlive()},Math.floor(45e3))}sendString_(e){try{this.mySock.send(e)}catch(e){this.log_("Exception thrown from WebSocket.send():",e.message||e.data,"Closing connection."),setTimeout(this.onClosed_.bind(this),0)}}}Qu.responsesRequiredToBeHealthy=2,Qu.healthyTimeout=3e4;class Yu{static get ALL_TRANSPORTS(){return[Hu,Qu]}static get IS_TRANSPORT_INITIALIZED(){return this.globalTransportInitialized_}constructor(e){this.initTransports_(e)}initTransports_(e){var t=Qu&&Qu.isAvailable();let r=t&&!Qu.previouslyFailed();if(e.webSocketOnly&&(t||yu("wss:// URL used, but browser isn't known to support websockets. Trying anyway."),r=!0),r)this.transports_=[Qu];else{var n,i=this.transports_=[];for(n of Yu.ALL_TRANSPORTS)n&&n.isAvailable()&&i.push(n);Yu.globalTransportInitialized_=!0}}initialTransport(){if(0<this.transports_.length)return this.transports_[0];throw new Error("No transports available")}upgradeTransport(){return 1<this.transports_.length?this.transports_[1]:null}}Yu.globalTransportInitialized_=!1;class Ju{constructor(e,t,r,n,i,s,a,o,l,h){this.id=e,this.repoInfo_=t,this.applicationId_=r,this.appCheckToken_=n,this.authToken_=i,this.onMessage_=s,this.onReady_=a,this.onDisconnect_=o,this.onKill_=l,this.lastSessionId=h,this.connectionCount=0,this.pendingDataMessages=[],this.state_=0,this.log_=nu("c:"+this.id+":"),this.transportManager_=new Yu(t),this.log_("Connection created"),this.start_()}start_(){var e=this.transportManager_.initialTransport();this.conn_=new e(this.nextTransportId_(),this.repoInfo_,this.applicationId_,this.appCheckToken_,this.authToken_,null,this.lastSessionId),this.primaryResponsesRequired_=e.responsesRequiredToBeHealthy||0;let t=this.connReceiver_(this.conn_),r=this.disconnReceiver_(this.conn_);this.tx_=this.conn_,this.rx_=this.conn_,this.secondaryConn_=null,this.isHealthy_=!1,setTimeout(()=>{this.conn_&&this.conn_.open(t,r)},Math.floor(0));e=e.healthyTimeout||0;0<e&&(this.healthyTimeout_=Au(()=>{this.healthyTimeout_=null,this.isHealthy_||(this.conn_&&102400<this.conn_.bytesReceived?(this.log_("Connection exceeded healthy timeout but has received "+this.conn_.bytesReceived+" bytes. Marking connection healthy."),this.isHealthy_=!0,this.conn_.markConnectionHealthy()):this.conn_&&10240<this.conn_.bytesSent?this.log_("Connection exceeded healthy timeout but has sent "+this.conn_.bytesSent+" bytes. Leaving connection alive."):(this.log_("Closing unhealthy connection after timeout."),this.close()))},Math.floor(e)))}nextTransportId_(){return"c:"+this.id+":"+this.connectionCount++}disconnReceiver_(t){return e=>{t===this.conn_?this.onConnectionLost_(e):t===this.secondaryConn_?(this.log_("Secondary connection lost."),this.onSecondaryConnectionLost_()):this.log_("closing an old connection")}}connReceiver_(t){return e=>{2!==this.state_&&(t===this.rx_?this.onPrimaryMessageReceived_(e):t===this.secondaryConn_?this.onSecondaryMessageReceived_(e):this.log_("message on old connection"))}}sendRequest(e){this.sendData_({t:"d",d:e})}tryCleanupConnection(){this.tx_===this.secondaryConn_&&this.rx_===this.secondaryConn_&&(this.log_("cleaning up and promoting a connection: "+this.secondaryConn_.connId),this.conn_=this.secondaryConn_,this.secondaryConn_=null)}onSecondaryControl_(e){var t;"t"in e&&("a"===(t=e.t)?this.upgradeIfSecondaryHealthy_():"r"===t?(this.log_("Got a reset on secondary, closing it"),this.secondaryConn_.close(),this.tx_!==this.secondaryConn_&&this.rx_!==this.secondaryConn_||this.close()):"o"===t&&(this.log_("got pong on secondary."),this.secondaryResponsesRequired_--,this.upgradeIfSecondaryHealthy_()))}onSecondaryMessageReceived_(e){var t=au("t",e),r=au("d",e);if("c"===t)this.onSecondaryControl_(r);else{if("d"!==t)throw new Error("Unknown protocol layer: "+t);this.pendingDataMessages.push(r)}}upgradeIfSecondaryHealthy_(){this.secondaryResponsesRequired_<=0?(this.log_("Secondary connection is healthy."),this.isHealthy_=!0,this.secondaryConn_.markConnectionHealthy(),this.proceedWithUpgrade_()):(this.log_("sending ping on secondary."),this.secondaryConn_.send({t:"c",d:{t:"p",d:{}}}))}proceedWithUpgrade_(){this.secondaryConn_.start(),this.log_("sending client ack on secondary"),this.secondaryConn_.send({t:"c",d:{t:"a",d:{}}}),this.log_("Ending transmission on primary"),this.conn_.send({t:"c",d:{t:"n",d:{}}}),this.tx_=this.secondaryConn_,this.tryCleanupConnection()}onPrimaryMessageReceived_(e){var t=au("t",e),r=au("d",e);"c"===t?this.onControl_(r):"d"===t&&this.onDataMessage_(r)}onDataMessage_(e){this.onPrimaryResponse_(),this.onMessage_(e)}onPrimaryResponse_(){this.isHealthy_||(this.primaryResponsesRequired_--,this.primaryResponsesRequired_<=0&&(this.log_("Primary connection is healthy."),this.isHealthy_=!0,this.conn_.markConnectionHealthy()))}onControl_(e){var t=au("t",e);if("d"in e){var r=e.d;if("h"===t){var n={...r};this.repoInfo_.isUsingEmulator&&(n.h=this.repoInfo_.host),this.onHandshake_(n)}else if("n"===t){this.log_("recvd end transmission on primary"),this.rx_=this.secondaryConn_;for(let e=0;e<this.pendingDataMessages.length;++e)this.onDataMessage_(this.pendingDataMessages[e]);this.pendingDataMessages=[],this.tryCleanupConnection()}else"s"===t?this.onConnectionShutdown_(r):"r"===t?this.onReset_(r):"e"===t?iu("Server Error: "+r):"o"===t?(this.log_("got pong on primary."),this.onPrimaryResponse_(),this.sendPingOnPrimaryIfNecessary_()):iu("Unknown control packet command: "+t)}}onHandshake_(e){var t=e.ts,r=e.v,n=e.h;this.sessionId=e.s,this.repoInfo_.host=n,0===this.state_&&(this.conn_.start(),this.onConnectionEstablished_(this.conn_,t),"5"!==r&&yu("Protocol version mismatch detected"),this.tryStartUpgrade_())}tryStartUpgrade_(){var e=this.transportManager_.upgradeTransport();e&&this.startUpgrade_(e)}startUpgrade_(e){this.secondaryConn_=new e(this.nextTransportId_(),this.repoInfo_,this.applicationId_,this.appCheckToken_,this.authToken_,this.sessionId),this.secondaryResponsesRequired_=e.responsesRequiredToBeHealthy||0;var t=this.connReceiver_(this.secondaryConn_),r=this.disconnReceiver_(this.secondaryConn_);this.secondaryConn_.open(t,r),Au(()=>{this.secondaryConn_&&(this.log_("Timed out trying to upgrade."),this.secondaryConn_.close())},Math.floor(6e4))}onReset_(e){this.log_("Reset packet received. New host: "+e),this.repoInfo_.host=e,1===this.state_?this.close():(this.closeConnections_(),this.start_())}onConnectionEstablished_(e,t){this.log_("Realtime connection established."),this.conn_=e,this.state_=1,this.onReady_&&(this.onReady_(t,this.sessionId),this.onReady_=null),0===this.primaryResponsesRequired_?(this.log_("Primary connection is healthy."),this.isHealthy_=!0):Au(()=>{this.sendPingOnPrimaryIfNecessary_()},Math.floor(5e3))}sendPingOnPrimaryIfNecessary_(){this.isHealthy_||1!==this.state_||(this.log_("sending ping on primary."),this.sendData_({t:"c",d:{t:"p",d:{}}}))}onSecondaryConnectionLost_(){var e=this.secondaryConn_;this.secondaryConn_=null,this.tx_!==e&&this.rx_!==e||this.close()}onConnectionLost_(e){this.conn_=null,e||0!==this.state_?1===this.state_&&this.log_("Realtime connection lost."):(this.log_("Realtime connection failed."),this.repoInfo_.isCacheableHost()&&(hu.remove("host:"+this.repoInfo_.host),this.repoInfo_.internalHost=this.repoInfo_.host)),this.close()}onConnectionShutdown_(e){this.log_("Connection shutdown command received. Shutting down..."),this.onKill_&&(this.onKill_(e),this.onKill_=null),this.onDisconnect_=null,this.close()}sendData_(e){if(1!==this.state_)throw"Connection is not connected";this.tx_.send(e)}close(){2!==this.state_&&(this.log_("Closing realtime connection."),this.state_=2,this.closeConnections_(),this.onDisconnect_)&&(this.onDisconnect_(),this.onDisconnect_=null)}closeConnections_(){this.log_("Shutting down all connections"),this.conn_&&(this.conn_.close(),this.conn_=null),this.secondaryConn_&&(this.secondaryConn_.close(),this.secondaryConn_=null),this.healthyTimeout_&&(clearTimeout(this.healthyTimeout_),this.healthyTimeout_=null)}}class Xu{put(e,t,r,n){}merge(e,t,r,n){}refreshAuthToken(e){}refreshAppCheckToken(e){}onDisconnectPut(e,t,r){}onDisconnectMerge(e,t,r){}onDisconnectCancel(e,t){}reportStats(e){}}class Zu{constructor(e){this.allowedEvents_=e,this.listeners_={},g(Array.isArray(e)&&0<e.length,"Requires a non-empty array")}trigger(t,...r){if(Array.isArray(this.listeners_[t])){var n=[...this.listeners_[t]];for(let e=0;e<n.length;e++)n[e].callback.apply(n[e].context,r)}}on(e,t,r){this.validateEventType_(e),this.listeners_[e]=this.listeners_[e]||[],this.listeners_[e].push({callback:t,context:r});var n=this.getInitialEvent(e);n&&t.apply(r,n)}off(e,t,r){this.validateEventType_(e);var n=this.listeners_[e]||[];for(let i=0;i<n.length;i++)if(n[i].callback===t&&(!r||r===n[i].context))return void n.splice(i,1)}validateEventType_(t){g(this.allowedEvents_.find(e=>e===t),"Unknown event: "+t)}}class ec extends Zu{static getInstance(){return new ec}constructor(){super(["online"]),this.online_=!0,"undefined"==typeof window||void 0===window.addEventListener||oe()||(window.addEventListener("online",()=>{this.online_||(this.online_=!0,this.trigger("online",!0))},!1),window.addEventListener("offline",()=>{this.online_&&(this.online_=!1,this.trigger("online",!1))},!1))}getInitialEvent(e){return g("online"===e,"Unknown event type: "+e),[this.online_]}currentlyOnline(){return this.online_}}let tc=32,rc=768;class f{constructor(r,e){if(void 0===e){this.pieces_=r.split("/");let e=0;for(let t=0;t<this.pieces_.length;t++)0<this.pieces_[t].length&&(this.pieces_[e]=this.pieces_[t],e++);this.pieces_.length=e,this.pieceNum_=0}else this.pieces_=r,this.pieceNum_=e}toString(){let e="";for(let t=this.pieceNum_;t<this.pieces_.length;t++)""!==this.pieces_[t]&&(e+="/"+this.pieces_[t]);return e||"/"}}function v(){return new f("")}function _(e){return e.pieceNum_>=e.pieces_.length?null:e.pieces_[e.pieceNum_]}function nc(e){return e.pieces_.length-e.pieceNum_}function y(e){let t=e.pieceNum_;return t<e.pieces_.length&&t++,new f(e.pieces_,t)}function ic(e){return e.pieceNum_<e.pieces_.length?e.pieces_[e.pieces_.length-1]:null}function sc(e,t=0){return e.pieces_.slice(e.pieceNum_+t)}function ac(e){if(e.pieceNum_>=e.pieces_.length)return null;var t=[];for(let r=e.pieceNum_;r<e.pieces_.length-1;r++)t.push(e.pieces_[r]);return new f(t,0)}function oc(e,t){var r=[];for(let i=e.pieceNum_;i<e.pieces_.length;i++)r.push(e.pieces_[i]);if(t instanceof f)for(let e=t.pieceNum_;e<t.pieces_.length;e++)r.push(t.pieces_[e]);else{var n=t.split("/");for(let e=0;e<n.length;e++)0<n[e].length&&r.push(n[e])}return new f(r,0)}function b(e){return e.pieceNum_>=e.pieces_.length}function lc(e,t){var r=_(e),n=_(t);if(null===r)return t;if(r===n)return lc(y(e),y(t));throw new Error("INTERNAL ERROR: innerPath ("+t+") is not within outerPath ("+e+")")}function hc(e,t){var r=sc(e,0),n=sc(t,0);for(let s=0;s<r.length&&s<n.length;s++){var i=Eu(r[s],n[s]);if(0!==i)return i}return r.length===n.length?0:r.length<n.length?-1:1}function uc(e,t){if(nc(e)!==nc(t))return!1;for(let r=e.pieceNum_,n=t.pieceNum_;r<=e.pieces_.length;r++,n++)if(e.pieces_[r]!==t.pieces_[n])return!1;return!0}function cc(e,t){let r=e.pieceNum_,n=t.pieceNum_;if(nc(e)>nc(t))return!1;for(;r<e.pieces_.length;){if(e.pieces_[r]!==t.pieces_[n])return!1;++r,++n}return!0}class dc{constructor(e,t){this.errorPrefix_=t,this.parts_=sc(e,0),this.byteLength_=Math.max(1,this.parts_.length);for(let r=0;r<this.parts_.length;r++)this.byteLength_+=Be(this.parts_[r]);pc(this)}}function pc(e){if(e.byteLength_>rc)throw new Error(e.errorPrefix_+"has a key path longer than "+rc+" bytes ("+e.byteLength_+").");if(e.parts_.length>tc)throw new Error(e.errorPrefix_+"path specified exceeds the maximum depth that can be written ("+tc+") or object contains a cycle "+fc(e))}function fc(e){return 0===e.parts_.length?"":"in property '"+e.parts_.join(".")+"'"}class gc extends Zu{static getInstance(){return new gc}constructor(){super(["visible"]);let t,e;"undefined"!=typeof document&&void 0!==document.addEventListener&&(void 0!==document.hidden?(e="visibilitychange",t="hidden"):void 0!==document.mozHidden?(e="mozvisibilitychange",t="mozHidden"):void 0!==document.msHidden?(e="msvisibilitychange",t="msHidden"):void 0!==document.webkitHidden&&(e="webkitvisibilitychange",t="webkitHidden")),this.visible_=!0,e&&document.addEventListener(e,()=>{var e=!document[t];e!==this.visible_&&(this.visible_=e,this.trigger("visible",e))},!1)}getInitialEvent(e){return g("visible"===e,"Unknown event type: "+e),[this.visible_]}}class mc extends Xu{constructor(e,t,r,n,i,s,a,o){if(super(),this.repoInfo_=e,this.applicationId_=t,this.onDataUpdate_=r,this.onConnectStatus_=n,this.onServerInfoUpdate_=i,this.authTokenProvider_=s,this.appCheckTokenProvider_=a,this.authOverride_=o,this.id=mc.nextPersistentConnectionId_++,this.log_=nu("p:"+this.id+":"),this.interruptReasons_={},this.listens=new Map,this.outstandingPuts_=[],this.outstandingGets_=[],this.outstandingPutCount_=0,this.outstandingGetCount_=0,this.onDisconnectRequestQueue_=[],this.connected_=!1,this.reconnectDelay_=1e3,this.maxReconnectDelay_=3e5,this.securityDebugCallback_=null,this.lastSessionId=null,this.establishConnectionTimer_=null,this.visible_=!1,this.requestCBHash_={},this.requestNumber_=0,this.realtime_=null,this.authToken_=null,this.appCheckToken_=null,this.forceTokenRefresh_=!1,this.invalidAuthTokenCount_=0,this.invalidAppCheckTokenCount_=0,this.firstConnection_=!0,this.lastConnectionAttemptTime_=null,this.lastConnectionEstablishedTime_=null,o&&!pe())throw new Error("Auth override specified in options, but not supported on non Node.js platforms");gc.getInstance().on("visible",this.onVisible_,this),-1===e.host.indexOf("fblocal")&&ec.getInstance().on("online",this.onOnline_,this)}sendRequest(e,t,r){var n=++this.requestNumber_,i={r:n,a:e,b:t};this.log_(Te(i)),g(this.connected_,"sendRequest call when we're not connected not allowed."),this.realtime_.sendRequest(i),r&&(this.requestCBHash_[n]=r)}get(e){this.initConnection_();let r=new Z;var t={p:e._path.toString(),q:e._queryObject},t=(this.outstandingGets_.push({action:"g",request:t,onComplete:e=>{var t=e.d;"ok"===e.s?r.resolve(t):r.reject(t)}}),this.outstandingGetCount_++,this.outstandingGets_.length-1);return this.connected_&&this.sendGet_(t),r.promise}listen(e,t,r,n){this.initConnection_();var i=e._queryIdentifier,s=e._path.toString(),a=(this.log_("Listen called for "+s+" "+i),this.listens.has(s)||this.listens.set(s,new Map),g(e._queryParams.isDefault()||!e._queryParams.loadsAllData(),"listen() called for non-default but complete query"),g(!this.listens.get(s).has(i),"listen() called twice for same path/queryId."),{onComplete:n,hashFn:t,query:e,tag:r});this.listens.get(s).set(i,a),this.connected_&&this.sendListen_(a)}sendGet_(t){let r=this.outstandingGets_[t];this.sendRequest("g",r.request,e=>{delete this.outstandingGets_[t],this.outstandingGetCount_--,0===this.outstandingGetCount_&&(this.outstandingGets_=[]),r.onComplete&&r.onComplete(e)})}sendListen_(i){let s=i.query,a=s._path.toString(),o=s._queryIdentifier;this.log_("Listen on "+a+" for "+o);var e={p:a};i.tag&&(e.q=s._queryObject,e.t=i.tag),e.h=i.hashFn(),this.sendRequest("q",e,e=>{var t=e.d,r=e.s,n=(mc.warnOnListenWarnings_(t,s),this.listens.get(a)&&this.listens.get(a).get(o));n===i&&(this.log_("listen response",e),"ok"!==r&&this.removeListen_(a,o),i.onComplete)&&i.onComplete(r,t)})}static warnOnListenWarnings_(e,t){var r,n;e&&"object"==typeof e&&Ce(e,"w")&&(r=Se(e,"w"),Array.isArray(r))&&~r.indexOf("no_index")&&(r='".indexOn": "'+t._queryParams.getIndex().toString()+'"',n=t._path.toString(),yu("Using an unspecified index. Your data will be downloaded and "+`filtered on the client. Consider adding ${r} at `+n+" to your security rules for better performance."))}refreshAuthToken(e){this.authToken_=e,this.log_("Auth token refreshed"),this.authToken_?this.tryAuth():this.connected_&&this.sendRequest("unauth",{},()=>{}),this.reduceReconnectDelayIfAdminCredential_(e)}reduceReconnectDelayIfAdminCredential_(e){var t;(e&&40===e.length||(e=e,"object"==typeof(t=Ee(e).claims)&&!0===t.admin))&&(this.log_("Admin auth credential detected. Reducing max reconnect time."),this.maxReconnectDelay_=3e4)}refreshAppCheckToken(e){this.appCheckToken_=e,this.log_("App check token refreshed"),this.appCheckToken_?this.tryAppCheck():this.connected_&&this.sendRequest("unappeck",{},()=>{})}tryAuth(){if(this.connected_&&this.authToken_){let n=this.authToken_;r=n;var e=!!(e=Ee(r).claims)&&"object"==typeof e&&e.hasOwnProperty("iat")?"auth":"gauth",t={cred:n};null===this.authOverride_?t.noauth=!0:"object"==typeof this.authOverride_&&(t.authvar=this.authOverride_),this.sendRequest(e,t,e=>{var t=e.s,r=e.d||"error";this.authToken_===n&&("ok"===t?this.invalidAuthTokenCount_=0:this.onAuthRevoked_(t,r))})}var r,e}tryAppCheck(){this.connected_&&this.appCheckToken_&&this.sendRequest("appcheck",{token:this.appCheckToken_},e=>{var t=e.s,r=e.d||"error";"ok"===t?this.invalidAppCheckTokenCount_=0:this.onAppCheckRevoked_(t,r)})}unlisten(e,t){var r=e._path.toString(),n=e._queryIdentifier,i=(this.log_("Unlisten called for "+r+" "+n),g(e._queryParams.isDefault()||!e._queryParams.loadsAllData(),"unlisten() called for non-default but complete query"),this.removeListen_(r,n));i&&this.connected_&&this.sendUnlisten_(r,n,e._queryObject,t)}sendUnlisten_(e,t,r,n){this.log_("Unlisten on "+e+" for "+t);var i={p:e};n&&(i.q=r,i.t=n),this.sendRequest("n",i)}onDisconnectPut(e,t,r){this.initConnection_(),this.connected_?this.sendOnDisconnect_("o",e,t,r):this.onDisconnectRequestQueue_.push({pathString:e,action:"o",data:t,onComplete:r})}onDisconnectMerge(e,t,r){this.initConnection_(),this.connected_?this.sendOnDisconnect_("om",e,t,r):this.onDisconnectRequestQueue_.push({pathString:e,action:"om",data:t,onComplete:r})}onDisconnectCancel(e,t){this.initConnection_(),this.connected_?this.sendOnDisconnect_("oc",e,null,t):this.onDisconnectRequestQueue_.push({pathString:e,action:"oc",data:null,onComplete:t})}sendOnDisconnect_(e,t,r,n){var i={p:t,d:r};this.log_("onDisconnect "+e,i),this.sendRequest(e,i,e=>{n&&setTimeout(()=>{n(e.s,e.d)},Math.floor(0))})}put(e,t,r,n){this.putInternal("p",e,t,r,n)}merge(e,t,r,n){this.putInternal("m",e,t,r,n)}putInternal(e,t,r,n,i){this.initConnection_();var s={p:t,d:r},s=(void 0!==i&&(s.h=i),this.outstandingPuts_.push({action:e,request:s,onComplete:n}),this.outstandingPutCount_++,this.outstandingPuts_.length-1);this.connected_?this.sendPut_(s):this.log_("Buffering put: "+t)}sendPut_(t){let r=this.outstandingPuts_[t].action;var e=this.outstandingPuts_[t].request;let n=this.outstandingPuts_[t].onComplete;this.outstandingPuts_[t].queued=this.connected_,this.sendRequest(r,e,e=>{this.log_(r+" response",e),delete this.outstandingPuts_[t],this.outstandingPutCount_--,0===this.outstandingPutCount_&&(this.outstandingPuts_=[]),n&&n(e.s,e.d)})}reportStats(e){var t;this.connected_&&(this.log_("reportStats",t={c:e}),this.sendRequest("s",t,e=>{var t;"ok"!==e.s&&(t=e.d,this.log_("reportStats","Error sending stats: "+t))}))}onDataMessage_(e){if("r"in e){this.log_("from server: "+Te(e));var t=e.r,r=this.requestCBHash_[t];r&&(delete this.requestCBHash_[t],r(e.b))}else{if("error"in e)throw"A server-side error has occurred: "+e.error;"a"in e&&this.onDataPush_(e.a,e.b)}}onDataPush_(e,t){this.log_("handleServerMessage",e,t),"d"===e?this.onDataUpdate_(t.p,t.d,!1,t.t):"m"===e?this.onDataUpdate_(t.p,t.d,!0,t.t):"c"===e?this.onListenRevoked_(t.p,t.q):"ac"===e?this.onAuthRevoked_(t.s,t.d):"apc"===e?this.onAppCheckRevoked_(t.s,t.d):"sd"===e?this.onSecurityDebugPacket_(t):iu("Unrecognized action received from server: "+Te(e)+"\nAre you using the latest client?")}onReady_(e,t){this.log_("connection ready"),this.connected_=!0,this.lastConnectionEstablishedTime_=(new Date).getTime(),this.handleTimestamp_(e),this.lastSessionId=t,this.firstConnection_&&this.sendConnectStats_(),this.restoreState_(),this.firstConnection_=!1,this.onConnectStatus_(!0)}scheduleConnect_(e){g(!this.realtime_,"Scheduling a connect when we're already connected/ing?"),this.establishConnectionTimer_&&clearTimeout(this.establishConnectionTimer_),this.establishConnectionTimer_=setTimeout(()=>{this.establishConnectionTimer_=null,this.establishConnection_()},Math.floor(e))}initConnection_(){!this.realtime_&&this.firstConnection_&&this.scheduleConnect_(0)}onVisible_(e){e&&!this.visible_&&this.reconnectDelay_===this.maxReconnectDelay_&&(this.log_("Window became visible. Reducing delay."),this.reconnectDelay_=1e3,this.realtime_||this.scheduleConnect_(0)),this.visible_=e}onOnline_(e){e?(this.log_("Browser went online."),this.reconnectDelay_=1e3,this.realtime_||this.scheduleConnect_(0)):(this.log_("Browser went offline. Killing connection."),this.realtime_&&this.realtime_.close())}onRealtimeDisconnect_(){var e;this.log_("data client disconnected"),this.connected_=!1,this.realtime_=null,this.cancelSentTransactions_(),this.requestCBHash_={},this.shouldReconnect_()&&(this.visible_?this.lastConnectionEstablishedTime_&&(3e4<(new Date).getTime()-this.lastConnectionEstablishedTime_&&(this.reconnectDelay_=1e3),this.lastConnectionEstablishedTime_=null):(this.log_("Window isn't visible. Delaying reconnect."),this.reconnectDelay_=this.maxReconnectDelay_,this.lastConnectionAttemptTime_=(new Date).getTime()),e=Math.max(0,(new Date).getTime()-this.lastConnectionAttemptTime_),e=Math.max(0,this.reconnectDelay_-e),e=Math.random()*e,this.log_("Trying to reconnect in "+e+"ms"),this.scheduleConnect_(e),this.reconnectDelay_=Math.min(this.maxReconnectDelay_,1.3*this.reconnectDelay_)),this.onConnectStatus_(!1)}async establishConnection_(){if(this.shouldReconnect_()){this.log_("Making a connection attempt"),this.lastConnectionAttemptTime_=(new Date).getTime(),this.lastConnectionEstablishedTime_=null;var n=this.onDataMessage_.bind(this),i=this.onReady_.bind(this);let e=this.onRealtimeDisconnect_.bind(this);var s=this.id+":"+mc.nextConnectionId_++,a=this.lastSessionId;let t=!1,r=null;var o=function(){r?r.close():(t=!0,e())},l=(this.realtime_={close:o,sendRequest:function(e){g(r,"sendRequest call when we're not connected not allowed."),r.sendRequest(e)}},this.forceTokenRefresh_);this.forceTokenRefresh_=!1;try{var[h,u]=await Promise.all([this.authTokenProvider_.getToken(l),this.appCheckTokenProvider_.getToken(l)]);t?vu("getToken() completed but was canceled"):(vu("getToken() completed. Creating connection."),this.authToken_=h&&h.accessToken,this.appCheckToken_=u&&u.token,r=new Ju(s,this.repoInfo_,this.applicationId_,this.appCheckToken_,this.authToken_,n,i,e,e=>{yu(e+" ("+this.repoInfo_.toString()+")"),this.interrupt("server_kill")},a))}catch(e){this.log_("Failed to get token: "+e),t||(this.repoInfo_.nodeAdmin&&yu(e),o())}}}interrupt(e){vu("Interrupting connection for reason: "+e),this.interruptReasons_[e]=!0,this.realtime_?this.realtime_.close():(this.establishConnectionTimer_&&(clearTimeout(this.establishConnectionTimer_),this.establishConnectionTimer_=null),this.connected_&&this.onRealtimeDisconnect_())}resume(e){vu("Resuming connection for reason: "+e),delete this.interruptReasons_[e],ke(this.interruptReasons_)&&(this.reconnectDelay_=1e3,this.realtime_||this.scheduleConnect_(0))}handleTimestamp_(e){var t=e-(new Date).getTime();this.onServerInfoUpdate_({serverTimeOffset:t})}cancelSentTransactions_(){for(let t=0;t<this.outstandingPuts_.length;t++){var e=this.outstandingPuts_[t];e&&"h"in e.request&&e.queued&&(e.onComplete&&e.onComplete("disconnect"),delete this.outstandingPuts_[t],this.outstandingPutCount_--)}0===this.outstandingPutCount_&&(this.outstandingPuts_=[])}onListenRevoked_(e,t){let r;r=t?t.map(e=>ou(e)).join("$"):"default";var n=this.removeListen_(e,r);n&&n.onComplete&&n.onComplete("permission_denied")}removeListen_(e,t){var r,n=new f(e).toString();let i;return this.listens.has(n)?(r=this.listens.get(n),i=r.get(t),r.delete(t),0===r.size&&this.listens.delete(n)):i=void 0,i}onAuthRevoked_(e,t){vu("Auth token revoked: "+e+"/"+t),this.authToken_=null,this.forceTokenRefresh_=!0,this.realtime_.close(),"invalid_token"!==e&&"permission_denied"!==e||(this.invalidAuthTokenCount_++,3<=this.invalidAuthTokenCount_&&(this.reconnectDelay_=3e4,this.authTokenProvider_.notifyForInvalidToken()))}onAppCheckRevoked_(e,t){vu("App check token revoked: "+e+"/"+t),this.appCheckToken_=null,this.forceTokenRefresh_=!0,"invalid_token"!==e&&"permission_denied"!==e||(this.invalidAppCheckTokenCount_++,3<=this.invalidAppCheckTokenCount_&&this.appCheckTokenProvider_.notifyForInvalidToken())}onSecurityDebugPacket_(e){this.securityDebugCallback_?this.securityDebugCallback_(e):"msg"in e&&console.log("FIREBASE: "+e.msg.replace("\n","\nFIREBASE: "))}restoreState_(){this.tryAuth(),this.tryAppCheck();for(var e of this.listens.values())for(var t of e.values())this.sendListen_(t);for(let n=0;n<this.outstandingPuts_.length;n++)this.outstandingPuts_[n]&&this.sendPut_(n);for(;this.onDisconnectRequestQueue_.length;){var r=this.onDisconnectRequestQueue_.shift();this.sendOnDisconnect_(r.action,r.pathString,r.data,r.onComplete)}for(let i=0;i<this.outstandingGets_.length;i++)this.outstandingGets_[i]&&this.sendGet_(i)}sendConnectStats_(){var e={};e["sdk.js."+Yh.replace(/\./g,"-")]=1,oe()?e["framework.cordova"]=1:ce()&&(e["framework.reactnative"]=1),this.reportStats(e)}shouldReconnect_(){var e=ec.getInstance().currentlyOnline();return ke(this.interruptReasons_)&&e}}mc.nextPersistentConnectionId_=0,mc.nextConnectionId_=0;class p{constructor(e,t){this.name=e,this.node=t}static Wrap(e,t){return new p(e,t)}}class vc{getCompare(){return this.compare.bind(this)}indexedValueChanged(e,t){var r=new p(Iu,e),n=new p(Iu,t);return 0!==this.compare(r,n)}minPost(){return p.MIN}}let _c;class yc extends vc{static get __EMPTY_NODE(){return _c}static set __EMPTY_NODE(e){_c=e}compare(e,t){return Eu(e.name,t.name)}isDefinedOn(e){throw B("KeyIndex.isDefinedOn not expected to be called.")}indexedValueChanged(e,t){return!1}minPost(){return p.MIN}maxPost(){return new p(Tu,_c)}makePost(e,t){return g("string"==typeof e,"KeyIndex indexValue must always be a string."),new p(e,_c)}toString(){return".key"}}let wc=new yc;class bc{constructor(e,t,r,n,i=null){this.isReverse_=n,this.resultGenerator_=i,this.nodeStack_=[];let s=1;for(;!e.isEmpty();)if(s=t?r(e.key,t):1,n&&(s*=-1),s<0)e=this.isReverse_?e.left:e.right;else{if(0===s){this.nodeStack_.push(e);break}this.nodeStack_.push(e),e=this.isReverse_?e.right:e.left}}getNext(){if(0===this.nodeStack_.length)return null;let e=this.nodeStack_.pop(),t;if(t=this.resultGenerator_?this.resultGenerator_(e.key,e.value):{key:e.key,value:e.value},this.isReverse_)for(e=e.left;!e.isEmpty();)this.nodeStack_.push(e),e=e.right;else for(e=e.right;!e.isEmpty();)this.nodeStack_.push(e),e=e.left;return t}hasNext(){return 0<this.nodeStack_.length}peek(){var e;return 0===this.nodeStack_.length?null:(e=this.nodeStack_[this.nodeStack_.length-1],this.resultGenerator_?this.resultGenerator_(e.key,e.value):{key:e.key,value:e.value})}}class Ic{constructor(e,t,r,n,i){this.key=e,this.value=t,this.color=null!=r?r:Ic.RED,this.left=null!=n?n:Ec.EMPTY_NODE,this.right=null!=i?i:Ec.EMPTY_NODE}copy(e,t,r,n,i){return new Ic(null!=e?e:this.key,null!=t?t:this.value,null!=r?r:this.color,null!=n?n:this.left,null!=i?i:this.right)}count(){return this.left.count()+1+this.right.count()}isEmpty(){return!1}inorderTraversal(e){return this.left.inorderTraversal(e)||!!e(this.key,this.value)||this.right.inorderTraversal(e)}reverseTraversal(e){return this.right.reverseTraversal(e)||e(this.key,this.value)||this.left.reverseTraversal(e)}min_(){return this.left.isEmpty()?this:this.left.min_()}minKey(){return this.min_().key}maxKey(){return this.right.isEmpty()?this.key:this.right.maxKey()}insert(e,t,r){let n=this;var i=r(e,n.key);return(n=i<0?n.copy(null,null,null,n.left.insert(e,t,r),null):0===i?n.copy(null,t,null,null,null):n.copy(null,null,null,null,n.right.insert(e,t,r))).fixUp_()}removeMin_(){if(this.left.isEmpty())return Ec.EMPTY_NODE;let e=this;return(e=(e=e.left.isRed_()||e.left.left.isRed_()?e:e.moveRedLeft_()).copy(null,null,null,e.left.removeMin_(),null)).fixUp_()}remove(e,t){let r,n;if(t(e,(r=this).key)<0)r=(r=r.left.isEmpty()||r.left.isRed_()||r.left.left.isRed_()?r:r.moveRedLeft_()).copy(null,null,null,r.left.remove(e,t),null);else{if(0===t(e,(r=(r=r.left.isRed_()?r.rotateRight_():r).right.isEmpty()||r.right.isRed_()||r.right.left.isRed_()?r:r.moveRedRight_()).key)){if(r.right.isEmpty())return Ec.EMPTY_NODE;n=r.right.min_(),r=r.copy(n.key,n.value,null,null,r.right.removeMin_())}r=r.copy(null,null,null,null,r.right.remove(e,t))}return r.fixUp_()}isRed_(){return this.color}fixUp_(){let e=this;return e=(e=(e=e.right.isRed_()&&!e.left.isRed_()?e.rotateLeft_():e).left.isRed_()&&e.left.left.isRed_()?e.rotateRight_():e).left.isRed_()&&e.right.isRed_()?e.colorFlip_():e}moveRedLeft_(){let e=this.colorFlip_();return e=e.right.left.isRed_()?(e=(e=e.copy(null,null,null,null,e.right.rotateRight_())).rotateLeft_()).colorFlip_():e}moveRedRight_(){let e=this.colorFlip_();return e=e.left.left.isRed_()?(e=e.rotateRight_()).colorFlip_():e}rotateLeft_(){var e=this.copy(null,null,Ic.RED,null,this.right.left);return this.right.copy(null,null,this.color,e,null)}rotateRight_(){var e=this.copy(null,null,Ic.RED,this.left.right,null);return this.left.copy(null,null,this.color,null,e)}colorFlip_(){var e=this.left.copy(null,null,!this.left.color,null,null),t=this.right.copy(null,null,!this.right.color,null,null);return this.copy(null,null,!this.color,e,t)}checkMaxDepth_(){var e=this.check_();return Math.pow(2,e)<=this.count()+1}check_(){if(this.isRed_()&&this.left.isRed_())throw new Error("Red node has red child("+this.key+","+this.value+")");if(this.right.isRed_())throw new Error("Right child of ("+this.key+","+this.value+") is red");var e=this.left.check_();if(e!==this.right.check_())throw new Error("Black depths differ");return e+(this.isRed_()?0:1)}}Ic.RED=!0,Ic.BLACK=!1;class Tc{copy(e,t,r,n,i){return this}insert(e,t,r){return new Ic(e,t,null)}remove(e,t){return this}count(){return 0}isEmpty(){return!0}inorderTraversal(e){return!1}reverseTraversal(e){return!1}minKey(){return null}maxKey(){return null}check_(){return 0}isRed_(){return!1}}class Ec{constructor(e,t=Ec.EMPTY_NODE){this.comparator_=e,this.root_=t}insert(e,t){return new Ec(this.comparator_,this.root_.insert(e,t,this.comparator_).copy(null,null,Ic.BLACK,null,null))}remove(e){return new Ec(this.comparator_,this.root_.remove(e,this.comparator_).copy(null,null,Ic.BLACK,null,null))}get(e){var t;let r=this.root_;for(;!r.isEmpty();){if(0===(t=this.comparator_(e,r.key)))return r.value;t<0?r=r.left:0<t&&(r=r.right)}return null}getPredecessorKey(e){let t,r=this.root_,n=null;for(;!r.isEmpty();){if(0===(t=this.comparator_(e,r.key))){if(r.left.isEmpty())return n?n.key:null;for(r=r.left;!r.right.isEmpty();)r=r.right;return r.key}t<0?r=r.left:0<t&&(r=(n=r).right)}throw new Error("Attempted to find predecessor key for a nonexistent key. What gives?")}isEmpty(){return this.root_.isEmpty()}count(){return this.root_.count()}minKey(){return this.root_.minKey()}maxKey(){return this.root_.maxKey()}inorderTraversal(e){return this.root_.inorderTraversal(e)}reverseTraversal(e){return this.root_.reverseTraversal(e)}getIterator(e){return new bc(this.root_,null,this.comparator_,!1,e)}getIteratorFrom(e,t){return new bc(this.root_,e,this.comparator_,!1,t)}getReverseIteratorFrom(e,t){return new bc(this.root_,e,this.comparator_,!0,t)}getReverseIterator(e){return new bc(this.root_,null,this.comparator_,!0,e)}}function Cc(e,t){return Eu(e.name,t.name)}function Sc(e,t){return Eu(e,t)}Ec.EMPTY_NODE=new Tc;let kc;function Ac(e){return"number"==typeof e?"number:"+Su(e):"string:"+e}function Nc(e){var t;e.isLeafNode()?(t=e.val(),g("string"==typeof t||"number"==typeof t||"object"==typeof t&&Ce(t,".sv"),"Priority must be a string or number.")):g(e===kc||e.isEmpty(),"priority of unexpected type."),g(e===kc||e.getPriority().isEmpty(),"Priority nodes can't have a priority of their own.")}let Rc;class Pc{static set __childrenNodeConstructor(e){Rc=e}static get __childrenNodeConstructor(){return Rc}constructor(e,t=Pc.__childrenNodeConstructor.EMPTY_NODE){this.value_=e,this.priorityNode_=t,this.lazyHash_=null,g(null!=this.value_,"LeafNode shouldn't be created with null/undefined value."),Nc(this.priorityNode_)}isLeafNode(){return!0}getPriority(){return this.priorityNode_}updatePriority(e){return new Pc(this.value_,e)}getImmediateChild(e){return".priority"===e?this.priorityNode_:Pc.__childrenNodeConstructor.EMPTY_NODE}getChild(e){return b(e)?this:".priority"===_(e)?this.priorityNode_:Pc.__childrenNodeConstructor.EMPTY_NODE}hasChild(){return!1}getPredecessorChildName(e,t){return null}updateImmediateChild(e,t){return".priority"===e?this.updatePriority(t):t.isEmpty()&&".priority"!==e?this:Pc.__childrenNodeConstructor.EMPTY_NODE.updateImmediateChild(e,t).updatePriority(this.priorityNode_)}updateChild(e,t){var r=_(e);return null===r?t:t.isEmpty()&&".priority"!==r?this:(g(".priority"!==r||1===nc(e),".priority must be the last token in a path"),this.updateImmediateChild(r,Pc.__childrenNodeConstructor.EMPTY_NODE.updateChild(y(e),t)))}isEmpty(){return!1}numChildren(){return 0}forEachChild(e,t){return!1}val(e){return e&&!this.getPriority().isEmpty()?{".value":this.getValue(),".priority":this.getPriority().val()}:this.getValue()}hash(){if(null===this.lazyHash_){let e="";this.priorityNode_.isEmpty()||(e+="priority:"+Ac(this.priorityNode_.val())+":");var t=typeof this.value_;e=(e+=t+":")+("number"==t?Su(this.value_):this.value_),this.lazyHash_=ru(e)}return this.lazyHash_}getValue(){return this.value_}compareTo(e){return e===Pc.__childrenNodeConstructor.EMPTY_NODE?1:e instanceof Pc.__childrenNodeConstructor?-1:(g(e.isLeafNode(),"Unknown node type"),this.compareToLeafNode_(e))}compareToLeafNode_(e){var t=typeof e.value_,r=typeof this.value_,n=Pc.VALUE_TYPE_ORDER.indexOf(t),i=Pc.VALUE_TYPE_ORDER.indexOf(r);return g(0<=n,"Unknown leaf type: "+t),g(0<=i,"Unknown leaf type: "+r),n===i?"object"==r?0:this.value_<e.value_?-1:this.value_===e.value_?0:1:i-n}withIndex(){return this}isIndexed(){return!0}equals(e){return e===this||!!e.isLeafNode()&&this.value_===e.value_&&this.priorityNode_.equals(e.priorityNode_)}}Pc.VALUE_TYPE_ORDER=["object","boolean","number","string"];let Dc,xc;class Oc extends vc{compare(e,t){var r=e.node.getPriority(),n=t.node.getPriority(),r=r.compareTo(n);return 0===r?Eu(e.name,t.name):r}isDefinedOn(e){return!e.getPriority().isEmpty()}indexedValueChanged(e,t){return!e.getPriority().equals(t.getPriority())}minPost(){return p.MIN}maxPost(){return new p(Tu,new Pc("[PRIORITY-POST]",xc))}makePost(e,t){var r=Dc(e);return new p(t,new Pc("[PRIORITY-POST]",r))}toString(){return".priority"}}let I=new Oc,Mc=Math.log(2);class Lc{constructor(e){this.count=(t=e+1,parseInt(Math.log(t)/Mc,10)),this.current_=this.count-1,t=this.count;var t,r=parseInt(Array(t+1).join("1"),2);this.bits_=e+1&r}nextBitIsOne(){var e=!(this.bits_&1<<this.current_);return this.current_--,e}}function Fc(l,e,h,t){l.sort(e);let u=function(e,t){var r,n,i=t-e;let s,a;return 0==i?null:1==i?(s=l[e],a=h?h(s):s,new Ic(a,s.node,Ic.BLACK,null,null)):(i=parseInt(i/2,10)+e,r=u(e,i),n=u(i+1,t),s=l[i],a=h?h(s):s,new Ic(a,s.node,Ic.BLACK,r,n))};var r=(e=>{let s=null,a=null,o=l.length;function t(e,t){var r=o-e,n=o,n=(o-=e,u(1+r,n)),r=l[r],i=h?h(r):r,e=new Ic(i,r.node,t,null,n);s=(s?s.left=e:a=e,e)}for(let i=0;i<e.count;++i){var r=e.nextBitIsOne(),n=Math.pow(2,e.count-(i+1));r?t(n,Ic.BLACK):(t(n,Ic.BLACK),t(n,Ic.RED))}return a})(new Lc(l.length));return new Ec(t||e,r)}let Uc,Vc={};class qc{static get Default(){return g((Vc,I),"ChildrenNode.ts has not been loaded"),Uc=Uc||new qc({".priority":Vc},{".priority":I})}constructor(e,t){this.indexes_=e,this.indexSet_=t}get(e){var t=Se(this.indexes_,e);if(t)return t instanceof Ec?t:null;throw new Error("No index defined for "+e)}hasIndex(e){return Ce(this.indexSet_,e.toString())}addIndex(e,t){g(e!==wc,"KeyIndex always exists and isn't meant to be added to the IndexMap.");var r=[];let n=!1;var i=t.getIterator(p.Wrap);let s=i.getNext();for(;s;)n=n||e.isDefinedOn(s.node),r.push(s),s=i.getNext();let a;a=n?Fc(r,e.getCompare()):Vc;var o=e.toString(),l={...this.indexSet_},h=(l[o]=e,{...this.indexes_});return h[o]=a,new qc(h,l)}addToIndexes(s,a){var e=Ae(this.indexes_,(t,e)=>{var r=Se(this.indexSet_,e);if(g(r,"Missing index implementation for "+e),t===Vc){if(r.isDefinedOn(s.node)){var n=[],i=a.getIterator(p.Wrap);let e=i.getNext();for(;e;)e.name!==s.name&&n.push(e),e=i.getNext();return n.push(s),Fc(n,r.getCompare())}return Vc}{r=a.get(s.name);let e=t;return(e=r?e.remove(new p(s.name,r)):e).insert(s,s.node)}});return new qc(e,this.indexSet_)}removeFromIndexes(r,n){var e=Ae(this.indexes_,e=>{var t;return e!==Vc&&(t=n.get(r.name))?e.remove(new p(r.name,t)):e});return new qc(e,this.indexSet_)}}let Bc;class T{static get EMPTY_NODE(){return Bc=Bc||new T(new Ec(Sc),null,qc.Default)}constructor(e,t,r){this.children_=e,this.priorityNode_=t,this.indexMap_=r,this.lazyHash_=null,this.priorityNode_&&Nc(this.priorityNode_),this.children_.isEmpty()&&g(!this.priorityNode_||this.priorityNode_.isEmpty(),"An empty node cannot have a priority")}isLeafNode(){return!1}getPriority(){return this.priorityNode_||Bc}updatePriority(e){return this.children_.isEmpty()?this:new T(this.children_,e,this.indexMap_)}getImmediateChild(e){var t;return".priority"===e?this.getPriority():null===(t=this.children_.get(e))?Bc:t}getChild(e){var t=_(e);return null===t?this:this.getImmediateChild(t).getChild(y(e))}hasChild(e){return null!==this.children_.get(e)}updateImmediateChild(r,n){if(g(n,"We should always be passing snapshot nodes"),".priority"===r)return this.updatePriority(n);{var i=new p(r,n);let e,t;t=n.isEmpty()?(e=this.children_.remove(r),this.indexMap_.removeFromIndexes(i,this.children_)):(e=this.children_.insert(r,n),this.indexMap_.addToIndexes(i,this.children_));i=e.isEmpty()?Bc:this.priorityNode_;return new T(e,i,t)}}updateChild(e,t){var r,n=_(e);return null===n?t:(g(".priority"!==_(e)||1===nc(e),".priority must be the last token in a path"),r=this.getImmediateChild(n).updateChild(y(e),t),this.updateImmediateChild(n,r))}isEmpty(){return this.children_.isEmpty()}numChildren(){return this.children_.count()}val(r){if(this.isEmpty())return null;let n={},i=0,s=0,a=!0;if(this.forEachChild(I,(e,t)=>{n[e]=t.val(r),i++,a&&T.INTEGER_REGEXP_.test(e)?s=Math.max(s,Number(e)):a=!1}),!r&&a&&s<2*i){var e,t=[];for(e in n)t[e]=n[e];return t}return r&&!this.getPriority().isEmpty()&&(n[".priority"]=this.getPriority().val()),n}hash(){if(null===this.lazyHash_){let n="";this.getPriority().isEmpty()||(n+="priority:"+Ac(this.getPriority().val())+":"),this.forEachChild(I,(e,t)=>{var r=t.hash();""!==r&&(n+=":"+e+":"+r)}),this.lazyHash_=""===n?"":ru(n)}return this.lazyHash_}getPredecessorChildName(e,t,r){var n=this.resolveIndex_(r);return n?(n=n.getPredecessorKey(new p(e,t)))?n.name:null:this.children_.getPredecessorKey(e)}getFirstChildName(e){var t=this.resolveIndex_(e);return t?(t=t.minKey())&&t.name:this.children_.minKey()}getFirstChild(e){var t=this.getFirstChildName(e);return t?new p(t,this.children_.get(t)):null}getLastChildName(e){var t=this.resolveIndex_(e);return t?(t=t.maxKey())&&t.name:this.children_.maxKey()}getLastChild(e){var t=this.getLastChildName(e);return t?new p(t,this.children_.get(t)):null}forEachChild(e,t){var r=this.resolveIndex_(e);return r?r.inorderTraversal(e=>t(e.name,e.node)):this.children_.inorderTraversal(t)}getIterator(e){return this.getIteratorFrom(e.minPost(),e)}getIteratorFrom(t,r){var e=this.resolveIndex_(r);if(e)return e.getIteratorFrom(t,e=>e);{var n=this.children_.getIteratorFrom(t.name,p.Wrap);let e=n.peek();for(;null!=e&&r.compare(e,t)<0;)n.getNext(),e=n.peek();return n}}getReverseIterator(e){return this.getReverseIteratorFrom(e.maxPost(),e)}getReverseIteratorFrom(t,r){var e=this.resolveIndex_(r);if(e)return e.getReverseIteratorFrom(t,e=>e);{var n=this.children_.getReverseIteratorFrom(t.name,p.Wrap);let e=n.peek();for(;null!=e&&0<r.compare(e,t);)n.getNext(),e=n.peek();return n}}compareTo(e){return this.isEmpty()?e.isEmpty()?0:-1:e.isLeafNode()||e.isEmpty()?1:e===zc?-1:0}withIndex(e){var t;return e===wc||this.indexMap_.hasIndex(e)?this:(t=this.indexMap_.addIndex(e,this.children_),new T(this.children_,this.priorityNode_,t))}isIndexed(e){return e===wc||this.indexMap_.hasIndex(e)}equals(e){if(e===this)return!0;if(!e.isLeafNode()){var r=e;if(this.getPriority().equals(r.getPriority())){if(this.children_.count()!==r.children_.count())return!1;{var n=this.getIterator(I),i=r.getIterator(I);let e=n.getNext(),t=i.getNext();for(;e&&t;){if(e.name!==t.name||!e.node.equals(t.node))return!1;e=n.getNext(),t=i.getNext()}return null===e&&null===t}}}return!1}resolveIndex_(e){return e===wc?null:this.indexMap_.get(e.toString())}}T.INTEGER_REGEXP_=/^(0|[1-9]\d*)$/;class jc extends T{constructor(){super(new Ec(Sc),T.EMPTY_NODE,qc.Default)}compareTo(e){return e===this?0:1}equals(e){return e===this}getPriority(){return this}getImmediateChild(e){return T.EMPTY_NODE}isEmpty(){return!1}}let zc=new jc,Kc=(Object.defineProperties(p,{MIN:{value:new p(Iu,T.EMPTY_NODE)},MAX:{value:new p(Tu,zc)}}),yc.__EMPTY_NODE=T.EMPTY_NODE,Pc.__childrenNodeConstructor=T,t=zc,kc=t,t=zc,xc=t,!0);function Wc(s,e=null){if(null===s)return T.EMPTY_NODE;var t,r;if("object"==typeof s&&".priority"in s&&(e=s[".priority"]),g(null===e||"string"==typeof e||"number"==typeof e||"object"==typeof e&&".sv"in e,"Invalid priority type found: "+typeof e),"object"!=typeof(s="object"==typeof s&&".value"in s&&null!==s[".value"]?s[".value"]:s)||".sv"in s)return t=s,new Pc(t,Wc(e));if(s instanceof Array||!Kc){let n=T.EMPTY_NODE;return Cu(s,(e,t)=>{var r;!Ce(s,e)||"."===e.substring(0,1)||!(r=Wc(t)).isLeafNode()&&r.isEmpty()||(n=n.updateImmediateChild(e,r))}),n.updatePriority(Wc(e))}{let n=[],i=!1;return Cu(s,(e,t)=>{var r;"."===e.substring(0,1)||(r=Wc(t)).isEmpty()||(i=i||!r.getPriority().isEmpty(),n.push(new p(e,r)))}),0===n.length?T.EMPTY_NODE:(t=Fc(n,Cc,e=>e.name,Sc),i?(r=Fc(n,I.getCompare()),new T(t,Wc(e),new qc({".priority":r},{".priority":I}))):new T(t,Wc(e),qc.Default))}}Dc=Wc;class Hc extends vc{constructor(e){super(),this.indexPath_=e,g(!b(e)&&".priority"!==_(e),"Can't create PathIndex with empty path or .priority key")}extractChild(e){return e.getChild(this.indexPath_)}isDefinedOn(e){return!e.getChild(this.indexPath_).isEmpty()}compare(e,t){var r=this.extractChild(e.node),n=this.extractChild(t.node),r=r.compareTo(n);return 0===r?Eu(e.name,t.name):r}makePost(e,t){var r=Wc(e),r=T.EMPTY_NODE.updateChild(this.indexPath_,r);return new p(t,r)}maxPost(){var e=T.EMPTY_NODE.updateChild(this.indexPath_,zc);return new p(Tu,e)}toString(){return sc(this.indexPath_,0).join("/")}}class Gc extends vc{compare(e,t){var r=e.node.compareTo(t.node);return 0===r?Eu(e.name,t.name):r}isDefinedOn(e){return!0}indexedValueChanged(e,t){return!e.equals(t)}minPost(){return p.MIN}maxPost(){return p.MAX}makePost(e,t){var r=Wc(e);return new p(t,r)}toString(){return".value"}}let $c=new Gc;function Qc(e){return{type:"value",snapshotNode:e}}function Yc(e,t){return{type:"child_added",snapshotNode:t,childName:e}}function Jc(e,t){return{type:"child_removed",snapshotNode:t,childName:e}}function Xc(e,t,r){return{type:"child_changed",snapshotNode:t,childName:e,oldSnap:r}}class Zc{constructor(e){this.index_=e}updateChild(e,t,r,n,i,s){g(e.isIndexed(this.index_),"A node must be indexed if only a child is updated");var a=e.getImmediateChild(t);return a.getChild(n).equals(r.getChild(n))&&a.isEmpty()===r.isEmpty()||(null!=s&&(r.isEmpty()?e.hasChild(t)?s.trackChildChange(Jc(t,a)):g(e.isLeafNode(),"A child remove without an old child only makes sense on a leaf node"):a.isEmpty()?s.trackChildChange(Yc(t,r)):s.trackChildChange(Xc(t,r,a))),e.isLeafNode()&&r.isEmpty())?e:e.updateImmediateChild(t,r).withIndex(this.index_)}updateFullNode(n,r,i){return null!=i&&(n.isLeafNode()||n.forEachChild(I,(e,t)=>{r.hasChild(e)||i.trackChildChange(Jc(e,t))}),r.isLeafNode()||r.forEachChild(I,(e,t)=>{var r;n.hasChild(e)?(r=n.getImmediateChild(e)).equals(t)||i.trackChildChange(Xc(e,t,r)):i.trackChildChange(Yc(e,t))})),r.withIndex(this.index_)}updatePriority(e,t){return e.isEmpty()?T.EMPTY_NODE:e.updatePriority(t)}filtersNodes(){return!1}getIndexedFilter(){return this}getIndex(){return this.index_}}class ed{constructor(e){this.indexedFilter_=new Zc(e.getIndex()),this.index_=e.getIndex(),this.startPost_=ed.getStartPost_(e),this.endPost_=ed.getEndPost_(e),this.startIsInclusive_=!e.startAfterSet_,this.endIsInclusive_=!e.endBeforeSet_}getStartPost(){return this.startPost_}getEndPost(){return this.endPost_}matches(e){var t=this.startIsInclusive_?this.index_.compare(this.getStartPost(),e)<=0:this.index_.compare(this.getStartPost(),e)<0,r=this.endIsInclusive_?this.index_.compare(e,this.getEndPost())<=0:this.index_.compare(e,this.getEndPost())<0;return t&&r}updateChild(e,t,r,n,i,s){return this.matches(new p(t,r))||(r=T.EMPTY_NODE),this.indexedFilter_.updateChild(e,t,r,n,i,s)}updateFullNode(e,t,r){let n=(t=t.isLeafNode()?T.EMPTY_NODE:t).withIndex(this.index_),i=(n=n.updatePriority(T.EMPTY_NODE),this);return t.forEachChild(I,(e,t)=>{i.matches(new p(e,t))||(n=n.updateImmediateChild(e,T.EMPTY_NODE))}),this.indexedFilter_.updateFullNode(e,n,r)}updatePriority(e,t){return e}filtersNodes(){return!0}getIndexedFilter(){return this.indexedFilter_}getIndex(){return this.index_}static getStartPost_(e){var t;return e.hasStart()?(t=e.getIndexStartName(),e.getIndex().makePost(e.getIndexStartValue(),t)):e.getIndex().minPost()}static getEndPost_(e){var t;return e.hasEnd()?(t=e.getIndexEndName(),e.getIndex().makePost(e.getIndexEndValue(),t)):e.getIndex().maxPost()}}class td{constructor(e){this.withinDirectionalStart=e=>this.reverse_?this.withinEndPost(e):this.withinStartPost(e),this.withinDirectionalEnd=e=>this.reverse_?this.withinStartPost(e):this.withinEndPost(e),this.withinStartPost=e=>{var t=this.index_.compare(this.rangedFilter_.getStartPost(),e);return this.startIsInclusive_?t<=0:t<0},this.withinEndPost=e=>{var t=this.index_.compare(e,this.rangedFilter_.getEndPost());return this.endIsInclusive_?t<=0:t<0},this.rangedFilter_=new ed(e),this.index_=e.getIndex(),this.limit_=e.getLimit(),this.reverse_=!e.isViewFromLeft(),this.startIsInclusive_=!e.startAfterSet_,this.endIsInclusive_=!e.endBeforeSet_}updateChild(e,t,r,n,i,s){return this.rangedFilter_.matches(new p(t,r))||(r=T.EMPTY_NODE),e.getImmediateChild(t).equals(r)?e:e.numChildren()<this.limit_?this.rangedFilter_.getIndexedFilter().updateChild(e,t,r,n,i,s):this.fullLimitUpdateChild_(e,t,r,i,s)}updateFullNode(e,r,t){let n;if(r.isLeafNode()||r.isEmpty())n=T.EMPTY_NODE.withIndex(this.index_);else if(2*this.limit_<r.numChildren()&&r.isIndexed(this.index_)){n=T.EMPTY_NODE.withIndex(this.index_);let e,t=(e=this.reverse_?r.getReverseIteratorFrom(this.rangedFilter_.getEndPost(),this.index_):r.getIteratorFrom(this.rangedFilter_.getStartPost(),this.index_),0);for(;e.hasNext()&&t<this.limit_;){var i=e.getNext();if(this.withinDirectionalStart(i)){if(!this.withinDirectionalEnd(i))break;n=n.updateImmediateChild(i.name,i.node),t++}}}else{n=(n=r.withIndex(this.index_)).updatePriority(T.EMPTY_NODE);let e,t=(e=this.reverse_?n.getReverseIterator(this.index_):n.getIterator(this.index_),0);for(;e.hasNext();){var s=e.getNext();t<this.limit_&&this.withinDirectionalStart(s)&&this.withinDirectionalEnd(s)?t++:n=n.updateImmediateChild(s.name,T.EMPTY_NODE)}}return this.rangedFilter_.getIndexedFilter().updateFullNode(e,n,t)}updatePriority(e,t){return e}filtersNodes(){return!0}getIndexedFilter(){return this.rangedFilter_.getIndexedFilter()}getIndex(){return this.index_}fullLimitUpdateChild_(e,t,r,n,i){let s;if(this.reverse_){let r=this.index_.getCompare();s=(e,t)=>r(t,e)}else s=this.index_.getCompare();var a=e,o=(g(a.numChildren()===this.limit_,""),new p(t,r)),l=this.reverse_?a.getFirstChild(this.index_):a.getLastChild(this.index_),h=this.rangedFilter_.matches(o);if(a.hasChild(t)){var u=a.getImmediateChild(t);let e=n.getChildAfterChild(this.index_,l,this.reverse_);for(;null!=e&&(e.name===t||a.hasChild(e.name));)e=n.getChildAfterChild(this.index_,e,this.reverse_);var c=null==e?1:s(e,o);return h&&!r.isEmpty()&&0<=c?(null!=i&&i.trackChildChange(Xc(t,r,u)),a.updateImmediateChild(t,r)):(null!=i&&i.trackChildChange(Jc(t,u)),c=a.updateImmediateChild(t,T.EMPTY_NODE),null!=e&&this.rangedFilter_.matches(e)?(null!=i&&i.trackChildChange(Yc(e.name,e.node)),c.updateImmediateChild(e.name,e.node)):c)}return!r.isEmpty()&&h&&0<=s(l,o)?(null!=i&&(i.trackChildChange(Jc(l.name,l.node)),i.trackChildChange(Yc(t,r))),a.updateImmediateChild(t,r).updateImmediateChild(l.name,T.EMPTY_NODE)):e}}class rd{constructor(){this.limitSet_=!1,this.startSet_=!1,this.startNameSet_=!1,this.startAfterSet_=!1,this.endSet_=!1,this.endNameSet_=!1,this.endBeforeSet_=!1,this.limit_=0,this.viewFrom_="",this.indexStartValue_=null,this.indexStartName_="",this.indexEndValue_=null,this.indexEndName_="",this.index_=I}hasStart(){return this.startSet_}isViewFromLeft(){return""===this.viewFrom_?this.startSet_:"l"===this.viewFrom_}getIndexStartValue(){return g(this.startSet_,"Only valid if start has been set"),this.indexStartValue_}getIndexStartName(){return g(this.startSet_,"Only valid if start has been set"),this.startNameSet_?this.indexStartName_:Iu}hasEnd(){return this.endSet_}getIndexEndValue(){return g(this.endSet_,"Only valid if end has been set"),this.indexEndValue_}getIndexEndName(){return g(this.endSet_,"Only valid if end has been set"),this.endNameSet_?this.indexEndName_:Tu}hasLimit(){return this.limitSet_}hasAnchoredLimit(){return this.limitSet_&&""!==this.viewFrom_}getLimit(){return g(this.limitSet_,"Only valid if limit has been set"),this.limit_}getIndex(){return this.index_}loadsAllData(){return!(this.startSet_||this.endSet_||this.limitSet_)}isDefault(){return this.loadsAllData()&&this.index_===I}copy(){var e=new rd;return e.limitSet_=this.limitSet_,e.limit_=this.limit_,e.startSet_=this.startSet_,e.startAfterSet_=this.startAfterSet_,e.indexStartValue_=this.indexStartValue_,e.startNameSet_=this.startNameSet_,e.indexStartName_=this.indexStartName_,e.endSet_=this.endSet_,e.endBeforeSet_=this.endBeforeSet_,e.indexEndValue_=this.indexEndValue_,e.endNameSet_=this.endNameSet_,e.indexEndName_=this.indexEndName_,e.index_=this.index_,e.viewFrom_=this.viewFrom_,e}}function nd(e,t,r){var n=e.copy();return n.startSet_=!0,n.indexStartValue_=t=void 0===t?null:t,null!=r?(n.startNameSet_=!0,n.indexStartName_=r):(n.startNameSet_=!1,n.indexStartName_=""),n}function id(e,t,r){var n=e.copy();return n.endSet_=!0,n.indexEndValue_=t=void 0===t?null:t,void 0!==r?(n.endNameSet_=!0,n.indexEndName_=r):(n.endNameSet_=!1,n.indexEndName_=""),n}function sd(e,t){var r=e.copy();return r.index_=t,r}function ad(t){var r,n={};if(!t.isDefault()){let e;e=t.index_===I?"$priority":t.index_===$c?"$value":t.index_===wc?"$key":(g(t.index_ instanceof Hc,"Unrecognized index type!"),t.index_.toString()),n.orderBy=Te(e),t.startSet_&&(n[r=t.startAfterSet_?"startAfter":"startAt"]=Te(t.indexStartValue_),t.startNameSet_)&&(n[r]+=","+Te(t.indexStartName_)),t.endSet_&&(n[r=t.endBeforeSet_?"endBefore":"endAt"]=Te(t.indexEndValue_),t.endNameSet_)&&(n[r]+=","+Te(t.indexEndName_)),t.limitSet_&&(t.isViewFromLeft()?n.limitToFirst=t.limit_:n.limitToLast=t.limit_)}return n}function od(t){var r={};if(t.startSet_&&(r.sp=t.indexStartValue_,t.startNameSet_&&(r.sn=t.indexStartName_),r.sin=!t.startAfterSet_),t.endSet_&&(r.ep=t.indexEndValue_,t.endNameSet_&&(r.en=t.indexEndName_),r.ein=!t.endBeforeSet_),t.limitSet_){r.l=t.limit_;let e=t.viewFrom_;""===e&&(e=t.isViewFromLeft()?"l":"r"),r.vf=e}return t.index_!==I&&(r.i=t.index_.toString()),r}class ld extends Xu{reportStats(e){throw new Error("Method not implemented.")}static getListenId_(e,t){return void 0!==t?"tag$"+t:(g(e._queryParams.isDefault(),"should have a tag if it's not a default query."),e._path.toString())}constructor(e,t,r,n){super(),this.repoInfo_=e,this.onDataUpdate_=t,this.authTokenProvider_=r,this.appCheckTokenProvider_=n,this.log_=nu("p:rest:"),this.listens_={}}listen(e,t,n,i){let s=e._path.toString(),a=(this.log_("Listen called for "+s+" "+e._queryIdentifier),ld.getListenId_(e,n)),o={};this.listens_[a]=o;var r=ad(e._queryParams);this.restRequest_(s+".json",r,(t,e)=>{let r=e;if(null===(t=404===t?r=null:t)&&this.onDataUpdate_(s,r,!1,n),Se(this.listens_,a)===o){let e;e=t?401===t?"permission_denied":"rest_error:"+t:"ok",i(e,null)}})}unlisten(e,t){var r=ld.getListenId_(e,t);delete this.listens_[r]}get(e){var t=ad(e._queryParams);let n=e._path.toString(),i=new Z;return this.restRequest_(n+".json",t,(e,t)=>{let r=t;null===(e=404===e?r=null:e)?(this.onDataUpdate_(n,r,!1,null),i.resolve(r)):i.reject(new Error(r))}),i.promise}refreshAuthToken(e){}restRequest_(i,s={},a){return s.format="export",Promise.all([this.authTokenProvider_.getToken(!1),this.appCheckTokenProvider_.getToken(!1)]).then(([e,t])=>{e&&e.accessToken&&(s.auth=e.accessToken),t&&t.token&&(s.ac=t.token);let r=(this.repoInfo_.secure?"https://":"http://")+this.repoInfo_.host+i+"?ns="+this.repoInfo_.namespace+Pe(s),n=(this.log_("Sending REST request for "+r),new XMLHttpRequest);n.onreadystatechange=()=>{if(a&&4===n.readyState){this.log_("REST Response for "+r+" received. status:",n.status,"response:",n.responseText);let e=null;if(200<=n.status&&n.status<300){try{e=Ie(n.responseText)}catch(e){yu("Failed to parse JSON response for "+r+": "+n.responseText)}a(null,e)}else 401!==n.status&&404!==n.status&&yu("Got unsuccessful REST response for "+r+" Status: "+n.status),a(n.status);a=null}},n.open("GET",r,!0),n.send()})}}class hd{constructor(){this.rootNode_=T.EMPTY_NODE}getNode(e){return this.rootNode_.getChild(e)}updateSnapshot(e,t){this.rootNode_=this.rootNode_.updateChild(e,t)}}function ud(){return{value:null,children:new Map}}function cd(e,t,r){var n;b(t)?(e.value=r,e.children.clear()):null!==e.value?e.value=e.value.updateChild(t,r):(n=_(t),e.children.has(n)||e.children.set(n,ud()),cd(e.children.get(n),t=y(t),r))}function dd(e,r,n){var i;null!==e.value?n(r,e.value):(i=(e,t)=>{dd(t,new f(r.toString()+"/"+e),n)},e.children.forEach((e,t)=>{i(t,e)}))}class pd{constructor(e){this.collection_=e,this.last_=null}get(){var e=this.collection_.get();let r={...e};return this.last_&&Cu(this.last_,(e,t)=>{r[e]=r[e]-t}),this.last_=e,r}}class fd{constructor(e,t){this.server_=t,this.statsToReport_={},this.statsListener_=new pd(e);var r=1e4+2e4*Math.random();Au(this.reportStats_.bind(this),Math.floor(r))}reportStats_(){var e=this.statsListener_.get();let r={},n=!1;Cu(e,(e,t)=>{0<t&&Ce(this.statsToReport_,e)&&(r[e]=t,n=!0)}),n&&this.server_.reportStats(r),Au(this.reportStats_.bind(this),Math.floor(2*Math.random()*3e5))}}function gd(){return{fromUser:!0,fromServer:!1,queryId:null,tagged:!1}}function md(){return{fromUser:!1,fromServer:!0,queryId:null,tagged:!1}}function vd(e){return{fromUser:!1,fromServer:!0,queryId:e,tagged:!0}}(t=tu=tu||{})[t.OVERWRITE=0]="OVERWRITE",t[t.MERGE=1]="MERGE",t[t.ACK_USER_WRITE=2]="ACK_USER_WRITE",t[t.LISTEN_COMPLETE=3]="LISTEN_COMPLETE";class _d{constructor(e,t,r){this.path=e,this.affectedTree=t,this.revert=r,this.type=tu.ACK_USER_WRITE,this.source=gd()}operationForChild(e){var t;return b(this.path)?null!=this.affectedTree.value?(g(this.affectedTree.children.isEmpty(),"affectedTree should not have overlapping affected paths."),this):(t=this.affectedTree.subtree(new f(e)),new _d(v(),t,this.revert)):(g(_(this.path)===e,"operationForChild called for unrelated child."),new _d(y(this.path),this.affectedTree,this.revert))}}class yd{constructor(e,t){this.source=e,this.path=t,this.type=tu.LISTEN_COMPLETE}operationForChild(e){return b(this.path)?new yd(this.source,v()):new yd(this.source,y(this.path))}}class wd{constructor(e,t,r){this.source=e,this.path=t,this.snap=r,this.type=tu.OVERWRITE}operationForChild(e){return b(this.path)?new wd(this.source,v(),this.snap.getImmediateChild(e)):new wd(this.source,y(this.path),this.snap)}}class bd{constructor(e,t,r){this.source=e,this.path=t,this.children=r,this.type=tu.MERGE}operationForChild(e){var t;return b(this.path)?(t=this.children.subtree(new f(e))).isEmpty()?null:t.value?new wd(this.source,v(),t.value):new bd(this.source,v(),t):(g(_(this.path)===e,"Can't get a merge for a child not on the path of the operation"),new bd(this.source,y(this.path),this.children))}toString(){return"Operation("+this.path+": "+this.source.toString()+" merge: "+this.children.toString()+")"}}class Id{constructor(e,t,r){this.node_=e,this.fullyInitialized_=t,this.filtered_=r}isFullyInitialized(){return this.fullyInitialized_}isFiltered(){return this.filtered_}isCompleteForPath(e){var t;return b(e)?this.isFullyInitialized()&&!this.filtered_:(t=_(e),this.isCompleteForChild(t))}isCompleteForChild(e){return this.isFullyInitialized()&&!this.filtered_||this.node_.hasChild(e)}getNode(){return this.node_}}class Td{constructor(e){this.query_=e,this.index_=this.query_._queryParams.getIndex()}}function Ed(r,e,t,n){var i=[];let s=[];return e.forEach(e=>{var t;"child_changed"===e.type&&r.index_.indexedValueChanged(e.oldSnap,e.snapshotNode)&&s.push((t=e.childName,{type:"child_moved",snapshotNode:e.snapshotNode,childName:t}))}),Cd(r,i,"child_removed",e,n,t),Cd(r,i,"child_added",e,n,t),Cd(r,i,"child_moved",s,n,t),Cd(r,i,"child_changed",e,n,t),Cd(r,i,"value",e,n,t),i}function Cd(s,a,t,e,o,l){var r=e.filter(e=>e.type===t);r.sort((e,t)=>{var r=s;if(null==e.childName||null==t.childName)throw B("Should only compare child_ events.");var n=new p(e.childName,e.snapshotNode),i=new p(t.childName,t.snapshotNode);return r.index_.compare(n,i)}),r.forEach(t=>{e=s,i=l,"value"!==(n=t).type&&"child_removed"!==n.type&&(n.prevName=i.getPredecessorChildName(n.childName,n.snapshotNode,e.index_));let r=n;var e,n,i;o.forEach(e=>{e.respondsTo(t.type)&&a.push(e.createEvent(r,s.query_))})})}function Sd(e,t){return{eventCache:e,serverCache:t}}function kd(e,t,r,n){return Sd(new Id(t,r,n),e.serverCache)}function Ad(e,t,r,n){return Sd(e.eventCache,new Id(t,r,n))}function Nd(e){return e.eventCache.isFullyInitialized()?e.eventCache.getNode():null}function Rd(e){return e.serverCache.isFullyInitialized()?e.serverCache.getNode():null}let Pd;class Dd{static fromObject(e){let r=new Dd(null);return Cu(e,(e,t)=>{r=r.set(new f(e),t)}),r}constructor(e,t=Pd=Pd||new Ec(su)){this.value=e,this.children=t}isEmpty(){return null===this.value&&this.children.isEmpty()}findRootMostMatchingPathAndValue(e,t){var r,n;return null!=this.value&&t(this.value)?{path:v(),value:this.value}:!b(e)&&(r=_(e),null!==(n=this.children.get(r)))&&null!=(n=n.findRootMostMatchingPathAndValue(y(e),t))?{path:oc(new f(r),n.path),value:n.value}:null}findRootMostValueAndPath(e){return this.findRootMostMatchingPathAndValue(e,()=>!0)}subtree(e){var t;return b(e)?this:(t=_(e),null!==(t=this.children.get(t))?t.subtree(y(e)):new Dd(null))}set(e,t){var r,n;return b(e)?new Dd(t,this.children):(n=_(e),r=(this.children.get(n)||new Dd(null)).set(y(e),t),n=this.children.insert(n,r),new Dd(this.value,n))}remove(t){if(b(t))return this.children.isEmpty()?new Dd(null):new Dd(null,this.children);var r=_(t),n=this.children.get(r);if(n){n=n.remove(y(t));let e;return e=n.isEmpty()?this.children.remove(r):this.children.insert(r,n),null===this.value&&e.isEmpty()?new Dd(null):new Dd(this.value,e)}return this}get(e){var t;return b(e)?this.value:(t=_(e),(t=this.children.get(t))?t.get(y(e)):null)}setTree(t,r){if(b(t))return r;{var n=_(t),i=(this.children.get(n)||new Dd(null)).setTree(y(t),r);let e;return e=i.isEmpty()?this.children.remove(n):this.children.insert(n,i),new Dd(this.value,e)}}fold(e){return this.fold_(v(),e)}fold_(r,n){let i={};return this.children.inorderTraversal((e,t)=>{i[e]=t.fold_(oc(r,e),n)}),n(r,this.value,i)}findOnPath(e,t){return this.findOnPath_(e,v(),t)}findOnPath_(e,t,r){var n,i=!!this.value&&r(t,this.value);return i||(!b(e)&&(i=_(e),n=this.children.get(i))?n.findOnPath_(y(e),oc(t,i),r):null)}foreachOnPath(e,t){return this.foreachOnPath_(e,v(),t)}foreachOnPath_(e,t,r){var n,i;return b(e)?this:(this.value&&r(t,this.value),n=_(e),(i=this.children.get(n))?i.foreachOnPath_(y(e),oc(t,n),r):new Dd(null))}foreach(e){this.foreach_(v(),e)}foreach_(r,n){this.children.inorderTraversal((e,t)=>{t.foreach_(oc(r,e),n)}),this.value&&n(r,this.value)}foreachChild(r){this.children.inorderTraversal((e,t)=>{t.value&&r(e,t.value)})}}class xd{constructor(e){this.writeTree_=e}static empty(){return new xd(new Dd(null))}}function Od(t,r,n){if(b(r))return new xd(new Dd(n));var i=t.writeTree_.findRootMostValueAndPath(r);if(null==i)return s=new Dd(n),s=t.writeTree_.setTree(r,s),new xd(s);{var s=i.path;let e=i.value;i=lc(s,r);return e=e.updateChild(i,n),new xd(t.writeTree_.set(s,e))}}function Md(e,r,t){let n=e;return Cu(t,(e,t)=>{n=Od(n,oc(r,e),t)}),n}function Ld(e,t){var r;return b(t)?xd.empty():(r=e.writeTree_.setTree(t,new Dd(null)),new xd(r))}function Fd(e,t){return null!=Ud(e,t)}function Ud(e,t){var r=e.writeTree_.findRootMostValueAndPath(t);return null!=r?e.writeTree_.get(r.path).getChild(lc(r.path,t)):null}function Vd(e){let r=[];var t=e.writeTree_.value;return null!=t?t.isLeafNode()||t.forEachChild(I,(e,t)=>{r.push(new p(e,t))}):e.writeTree_.children.inorderTraversal((e,t)=>{null!=t.value&&r.push(new p(e,t.value))}),r}function qd(e,t){var r;return b(t)?e:null!=(r=Ud(e,t))?new xd(new Dd(r)):new xd(e.writeTree_.subtree(t))}function Bd(e){return e.writeTree_.isEmpty()}function jd(e,t){return function n(i,e,s){{if(null!=e.value)return s.updateChild(i,e.value);{let r=null;return e.children.inorderTraversal((e,t)=>{".priority"===e?(g(null!==t.value,"Priority writes must always be leaf nodes"),r=t.value):s=n(oc(i,e),t,s)}),s=s.getChild(i).isEmpty()||null===r?s:s.updateChild(oc(i,".priority"),r)}}}(v(),e.writeTree_,t)}function zd(e,t){return tp(t,e)}function Kd(t,r){var e,n=t.allWrites.findIndex(e=>e.writeId===r);g(0<=n,"removeWrite called with nonexistent writeId.");let i=t.allWrites[n],s=(t.allWrites.splice(n,1),i.visible),a=!1,o=t.allWrites.length-1;for(;s&&0<=o;){var l=t.allWrites[o];l.visible&&(o>=n&&((e,t)=>{if(e.snap)return cc(e.path,t);for(var r in e.children)if(e.children.hasOwnProperty(r)&&cc(oc(e.path,r),t))return 1})(l,i.path)?s=!1:cc(i.path,l.path)&&(a=!0)),o--}return!!s&&(a?((e=t).visibleWrites=Hd(e.allWrites,Wd,v()),0<e.allWrites.length?e.lastWriteId=e.allWrites[e.allWrites.length-1].writeId:e.lastWriteId=-1):i.snap?t.visibleWrites=Ld(t.visibleWrites,i.path):Cu(i.children,e=>{t.visibleWrites=Ld(t.visibleWrites,oc(i.path,e))}),!0)}function Wd(e){return e.visible}function Hd(e,t,r){let n=xd.empty();for(let a=0;a<e.length;++a){var i=e[a];if(t(i)){var s=i.path;let e;if(i.snap)cc(r,s)?(e=lc(r,s),n=Od(n,e,i.snap)):cc(s,r)&&(e=lc(s,r),n=Od(n,v(),i.snap.getChild(e)));else{if(!i.children)throw B("WriteRecord should have .snap or .children");cc(r,s)?(e=lc(r,s),n=Md(n,e,i.children)):cc(s,r)&&(b(e=lc(s,r))?n=Md(n,v(),i.children):(s=Se(i.children,_(e)))&&(i=s.getChild(y(e)),n=Od(n,v(),i)))}}}return n}function Gd(e,t,r,n,i){var s;return n||i?(s=qd(e.visibleWrites,t),!i&&Bd(s)?r:i||null!=r||Fd(s,v())?jd(Hd(e.allWrites,function(e){return(e.visible||i)&&(!n||!~n.indexOf(e.writeId))&&(cc(e.path,t)||cc(t,e.path))},t),r||T.EMPTY_NODE):null):null!=(s=Ud(e.visibleWrites,t))?s:Bd(s=qd(e.visibleWrites,t))?r:null!=r||Fd(s,v())?jd(s,r||T.EMPTY_NODE):null}function $d(e,t,r,n){return Gd(e.writeTree,e.treePath,t,r,n)}function Qd(e,t){{var r=e.writeTree;e=e.treePath;let i=T.EMPTY_NODE;var n=Ud(r.visibleWrites,e);if(n)n.isLeafNode()||n.forEachChild(I,(e,t)=>{i=i.updateImmediateChild(e,t)});else if(t){let n=qd(r.visibleWrites,e);t.forEachChild(I,(e,t)=>{var r=jd(qd(n,new f(e)),t);i=i.updateImmediateChild(e,r)}),Vd(n).forEach(e=>{i=i.updateImmediateChild(e.name,e.node)})}else Vd(qd(r.visibleWrites,e)).forEach(e=>{i=i.updateImmediateChild(e.name,e.node)});return i}}function Yd(e,t,r,n){return i=e.writeTree,e=e.treePath,t=t,r=r,n=n,g(r||n,"Either existingEventSnap or existingServerSnap must exist"),s=oc(e,t),Fd(i.visibleWrites,s)?null:Bd(s=qd(i.visibleWrites,s))?n.getChild(t):jd(s,n.getChild(t));var i,s}function Jd(e,t){return r=e.writeTree,e=oc(e.treePath,t),Ud(r.visibleWrites,e);var r}function Xd(e,r,n,i,s,a){{var o=e.writeTree,l=(e=e.treePath,n),h=i;n=s,i=a;let t;var u=qd(o.visibleWrites,e),c=Ud(u,v());if(null!=c)t=c;else{if(null==r)return[];t=jd(u,r)}if((t=t.withIndex(i)).isEmpty()||t.isLeafNode())return[];{var d=[],p=i.getCompare(),f=n?t.getReverseIteratorFrom(l,i):t.getIteratorFrom(l,i);let e=f.getNext();for(;e&&d.length<h;)0!==p(e,l)&&d.push(e),e=f.getNext();return d}}}function Zd(e,t,r){return n=e.writeTree,r=r,i=oc(e.treePath,e=t),null!=(s=Ud(n.visibleWrites,i))?s:r.isCompleteForChild(e)?jd(qd(n.visibleWrites,i),r.getNode().getImmediateChild(e)):null;var n,i,s}function ep(e,t){return tp(oc(e.treePath,t),e.writeTree)}function tp(e,t){return{treePath:e,writeTree:t}}class rp{constructor(){this.changeMap=new Map}trackChildChange(e){var t=e.type,r=e.childName,n=(g("child_added"===t||"child_changed"===t||"child_removed"===t,"Only child changes supported for tracking"),g(".priority"!==r,"Only non-priority child changes can be tracked."),this.changeMap.get(r));if(n){var i=n.type;if("child_added"===t&&"child_removed"===i)this.changeMap.set(r,Xc(r,e.snapshotNode,n.snapshotNode));else if("child_removed"===t&&"child_added"===i)this.changeMap.delete(r);else if("child_removed"===t&&"child_changed"===i)this.changeMap.set(r,Jc(r,n.oldSnap));else if("child_changed"===t&&"child_added"===i)this.changeMap.set(r,Yc(r,e.snapshotNode));else{if("child_changed"!==t||"child_changed"!==i)throw B("Illegal combination of changes: "+e+" occurred after "+n);this.changeMap.set(r,Xc(r,e.snapshotNode,n.oldSnap))}}else this.changeMap.set(r,e)}getChanges(){return Array.from(this.changeMap.values())}}let np=new class{getCompleteChild(e){return null}getChildAfterChild(e,t,r){return null}};class ip{constructor(e,t,r=null){this.writes_=e,this.viewCache_=t,this.optCompleteServerCache_=r}getCompleteChild(e){var t=this.viewCache_.eventCache;return t.isCompleteForChild(e)?t.getNode().getImmediateChild(e):(t=null!=this.optCompleteServerCache_?new Id(this.optCompleteServerCache_,!0,!1):this.viewCache_.serverCache,Zd(this.writes_,e,t))}getChildAfterChild(e,t,r){var n=null!=this.optCompleteServerCache_?this.optCompleteServerCache_:Rd(this.viewCache_),n=Xd(this.writes_,n,t,1,r,e);return 0===n.length?null:n[0]}}function sp(e,t,r,n,i){var s=new rp;let a,o;if(r.type===tu.OVERWRITE){var l=r;a=l.source.fromUser?lp(e,t,l.path,l.snap,n,i,s):(g(l.source.fromServer,"Unknown source."),o=l.source.tagged||t.serverCache.isFiltered()&&!b(l.path),op(e,t,l.path,l.snap,n,i,o,s))}else if(r.type===tu.MERGE){var l=r;a=l.source.fromUser?((n,i,s,e,a,o,l)=>{let h=i;return e.foreach((e,t)=>{var r=oc(s,e);hp(i,_(r))&&(h=lp(n,h,r,t,a,o,l))}),e.foreach((e,t)=>{var r=oc(s,e);hp(i,_(r))||(h=lp(n,h,r,t,a,o,l))}),h})(e,t,l.path,l.children,n,i,s):(g(l.source.fromServer,"Unknown source."),o=l.source.tagged||t.serverCache.isFiltered(),cp(e,t,l.path,l.children,n,i,o,s))}else if(r.type===tu.ACK_USER_WRITE){l=r;a=l.revert?((r,n,i,s,e,a)=>{let o;if(null!=Jd(s,i))return n;{var l=new ip(s,n,e),h=n.eventCache.getNode();let t;if(b(i)||".priority"===_(i)){let e;e=e=n.serverCache.isFullyInitialized()?$d(s,Rd(n)):(u=n.serverCache.getNode(),g(u instanceof T,"serverChildren would be complete if leaf node"),Qd(s,u)),t=r.filter.updateFullNode(h,e,a)}else{var u=_(i);let e=Zd(s,u,n.serverCache);null==e&&n.serverCache.isCompleteForChild(u)&&(e=h.getImmediateChild(u)),(t=null!=e?r.filter.updateChild(h,u,e,y(i),l,a):n.eventCache.getNode().hasChild(u)?r.filter.updateChild(h,u,T.EMPTY_NODE,y(i),l,a):h).isEmpty()&&n.serverCache.isFullyInitialized()&&(o=$d(s,Rd(n))).isLeafNode()&&(t=r.filter.updateFullNode(t,o,a))}return o=n.serverCache.isFullyInitialized()||null!=Jd(s,v()),kd(n,t,o,r.filter.filtersNodes())}})(e,t,l.path,n,i,s):((e,t,i,r,s,a,o)=>{if(null!=Jd(s,i))return t;let l=t.serverCache.isFiltered(),h=t.serverCache;if(null!=r.value){if(b(i)&&h.isFullyInitialized()||h.isCompleteForPath(i))return op(e,t,i,h.getNode().getChild(i),s,a,l,o);if(b(i)){let r=new Dd(null);return h.getNode().forEachChild(wc,(e,t)=>{r=r.set(new f(e),t)}),cp(e,t,i,r,s,a,l,o)}return t}{let n=new Dd(null);return r.foreach((e,t)=>{var r=oc(i,e);h.isCompleteForPath(r)&&(n=n.set(e,h.getNode().getChild(r)))}),cp(e,t,i,n,s,a,l,o)}})(e,t,l.path,l.affectedTree,n,i,s)}else{if(r.type!==tu.LISTEN_COMPLETE)throw B("Unknown operation type: "+r.type);a=(i=e,e=r.path,r=n,n=s,l=t.serverCache,l=Ad(t,l.getNode(),l.isFullyInitialized()||b(e),l.isFiltered()),ap(i,l,e,r,np,n))}var h,u,s=s.getChanges(),i=t,e=a,r=s,c=e.eventCache;return c.isFullyInitialized()&&(h=c.getNode().isLeafNode()||c.getNode().isEmpty(),u=Nd(i),0<r.length||!i.eventCache.isFullyInitialized()||h&&!c.getNode().equals(u)||!c.getNode().getPriority().equals(u.getPriority()))&&r.push(Qc(Nd(e))),{viewCache:a,changes:s}}function ap(n,i,s,a,o,l){var h=i.eventCache;if(null!=Jd(a,s))return i;{let t,r;if(b(s))g(i.serverCache.isFullyInitialized(),"If change path is empty, we must have complete server data"),t=i.serverCache.isFiltered()?(u=Qd(a,(u=Rd(i))instanceof T?u:T.EMPTY_NODE),n.filter.updateFullNode(i.eventCache.getNode(),u,l)):(u=$d(a,Rd(i)),n.filter.updateFullNode(i.eventCache.getNode(),u,l));else{var u=_(s);if(".priority"===u){g(1===nc(s),"Can't have a priority with additional path components");var c=h.getNode(),d=Yd(a,s,c,r=i.serverCache.getNode());t=null!=d?n.filter.updatePriority(c,d):h.getNode()}else{c=y(s);let e;e=h.isCompleteForChild(u)?(r=i.serverCache.getNode(),null!=(d=Yd(a,s,h.getNode(),r))?h.getNode().getImmediateChild(u).updateChild(c,d):h.getNode().getImmediateChild(u)):Zd(a,u,i.serverCache),t=null!=e?n.filter.updateChild(h.getNode(),u,e,c,o,l):h.getNode()}}return kd(i,t,h.isFullyInitialized()||b(s),n.filter.filtersNodes())}}function op(e,t,r,n,i,s,a,o){var l=t.serverCache;let h;var u=a?e.filter:e.filter.getIndexedFilter();if(b(r))h=u.updateFullNode(l.getNode(),n,null);else if(u.filtersNodes()&&!l.isFiltered()){var c=l.getNode().updateChild(r,n);h=u.updateFullNode(l.getNode(),c,null)}else{c=_(r);if(!l.isCompleteForPath(r)&&1<nc(r))return t;var d=y(r),p=l.getNode().getImmediateChild(c).updateChild(d,n);h=".priority"===c?u.updatePriority(l.getNode(),p):u.updateChild(l.getNode(),c,p,d,np,null)}c=Ad(t,h,l.isFullyInitialized()||b(r),u.filtersNodes());return ap(e,c,r,i,new ip(i,c,s),o)}function lp(t,r,n,i,e,s,a){var o=r.eventCache;let l,h;var u=new ip(e,r,s);if(b(n))h=t.filter.updateFullNode(r.eventCache.getNode(),i,a),l=kd(r,h,!0,t.filter.filtersNodes());else{var c=_(n);if(".priority"===c)h=t.filter.updatePriority(r.eventCache.getNode(),i),l=kd(r,h,o.isFullyInitialized(),o.isFiltered());else{var d,p=y(n),f=o.getNode().getImmediateChild(c);let e;e=b(p)?i:null!=(d=u.getCompleteChild(c))?".priority"===ic(p)&&d.getChild(ac(p)).isEmpty()?d:d.updateChild(p,i):T.EMPTY_NODE,l=f.equals(e)?r:kd(r,t.filter.updateChild(o.getNode(),c,e,p,u,a),o.isFullyInitialized(),t.filter.filtersNodes())}}return l}function hp(e,t){return e.eventCache.isCompleteForChild(t)}function up(e,r,t){return t.foreach((e,t)=>{r=r.updateChild(e,t)}),r}function cp(n,i,e,t,s,a,o,l){if(i.serverCache.getNode().isEmpty()&&!i.serverCache.isFullyInitialized())return i;let h=i,r,u=(r=b(e)?t:new Dd(null).setTree(e,t),i.serverCache.getNode());return r.children.inorderTraversal((e,t)=>{var r;u.hasChild(e)&&(r=up(0,i.serverCache.getNode().getImmediateChild(e),t),h=op(n,h,new f(e),r,s,a,o,l))}),r.children.inorderTraversal((e,t)=>{var r=!i.serverCache.isCompleteForChild(e)&&null===t.value;u.hasChild(e)||r||(r=up(0,i.serverCache.getNode().getImmediateChild(e),t),h=op(n,h,new f(e),r,s,a,o,l))}),h}class dp{constructor(e,t){this.query_=e,this.eventRegistrations_=[];var r=this.query_._queryParams,n=new Zc(r.getIndex()),r=(e=r).loadsAllData()?new Zc(e.getIndex()):new(e.hasLimit()?td:ed)(e),i=(this.processor_={filter:r},t.serverCache),s=t.eventCache,a=n.updateFullNode(T.EMPTY_NODE,i.getNode(),null),o=r.updateFullNode(T.EMPTY_NODE,s.getNode(),null),a=new Id(a,i.isFullyInitialized(),n.filtersNodes()),i=new Id(o,s.isFullyInitialized(),r.filtersNodes());this.viewCache_=Sd(i,a),this.eventGenerator_=new Td(this.query_)}get query(){return this.query_}}function pp(e){return 0===e.eventRegistrations_.length}function fp(n,i,s){let a=[];if(s){g(null==i,"A cancel should cancel all event registrations.");let r=n.query._path;n.eventRegistrations_.forEach(e=>{var t=e.createCancelEvent(s,r);t&&a.push(t)})}if(i){let e=[];for(let t=0;t<n.eventRegistrations_.length;++t){var r=n.eventRegistrations_[t];if(r.matches(i)){if(i.hasAnyCallback()){e=e.concat(n.eventRegistrations_.slice(t+1));break}}else e.push(r)}n.eventRegistrations_=e}else n.eventRegistrations_=[];return a}function gp(e,t,r,n){t.type===tu.MERGE&&null!==t.source.queryId&&(g(Rd(e.viewCache_),"We should always have a full cache before handling merges"),g(Nd(e.viewCache_),"Missing event cache, even though we have a server cache"));var i=e.viewCache_,s=sp(e.processor_,i,t,r,n);return t=e.processor_,r=s.viewCache,g(r.eventCache.getNode().isIndexed(t.filter.getIndex()),"Event snap not indexed"),g(r.serverCache.getNode().isIndexed(t.filter.getIndex()),"Server snap not indexed"),g(s.viewCache.serverCache.isFullyInitialized()||!i.serverCache.isFullyInitialized(),"Once a server snap is complete, it should never go back"),e.viewCache_=s.viewCache,mp(e,s.changes,s.viewCache.eventCache.getNode(),null)}function mp(e,t,r,n){var i=n?[n]:e.eventRegistrations_;return Ed(e.eventGenerator_,t,r,i)}let vp;class _p{constructor(){this.views=new Map}}function yp(t,r,n,i){var e=r.source.queryId;if(null!==e)return e=t.views.get(e),g(null!=e,"SyncTree gave us an op for an invalid query."),gp(e,r,n,i);{let e=[];for(var s of t.views.values())e=e.concat(gp(s,r,n,i));return e}}function wp(e,r,n,i,s){var a=r._queryIdentifier,a=e.views.get(a);if(a)return a;{let e=$d(n,s?i:null),t=!1;t=!!e||(e=i instanceof T?Qd(n,i):T.EMPTY_NODE,!1);a=Sd(new Id(e,t,!1),new Id(i,s,!1));return new dp(r,a)}}function bp(e,t,n,i,s,r){var a=wp(e,t,i,s,r);e.views.has(t._queryIdentifier)||e.views.set(t._queryIdentifier,a),a.eventRegistrations_.push(n);{s=n,a=(i=a).viewCache_.eventCache;let r=[];return a.getNode().isLeafNode()||a.getNode().forEachChild(I,(e,t)=>{r.push(Yc(e,t))}),a.isFullyInitialized()&&r.push(Qc(a.getNode())),mp(i,r,a.getNode(),s)}}function Ip(e,t,r,n){var i=t._queryIdentifier,s=[];let a=[];var o=kp(e);if("default"===i)for(var[l,h]of e.views.entries())a=a.concat(fp(h,r,n)),pp(h)&&(e.views.delete(l),h.query._queryParams.loadsAllData()||s.push(h.query));else{var u=e.views.get(i);u&&(a=a.concat(fp(u,r,n)),pp(u))&&(e.views.delete(i),u.query._queryParams.loadsAllData()||s.push(u.query))}return o&&!kp(e)&&s.push((g(vp,"Reference.ts has not been loaded"),new vp(t._repo,t._path))),{removed:s,events:a}}function Tp(e){var t,r=[];for(t of e.views.values())t.query._queryParams.loadsAllData()||r.push(t);return r}function Ep(e,t){let r=null;for(var n of e.views.values())r=r||(i=n,s=t,n=void 0,(n=Rd(i.viewCache_))&&(i.query._queryParams.loadsAllData()||!b(s)&&!n.getImmediateChild(_(s)).isEmpty())?n.getChild(s):null);var i,s;return r}function Cp(e,t){var r;return t._queryParams.loadsAllData()?Ap(e):(r=t._queryIdentifier,e.views.get(r))}function Sp(e,t){return null!=Cp(e,t)}function kp(e){return null!=Ap(e)}function Ap(e){for(var t of e.views.values())if(t.query._queryParams.loadsAllData())return t;return null}let Np;let Rp=1;class Pp{constructor(e){this.listenProvider_=e,this.syncPointTree_=new Dd(null),this.pendingWriteTree_={visibleWrites:xd.empty(),allWrites:[],lastWriteId:-1},this.tagToQueryMap=new Map,this.queryToTagMap=new Map}}function Dp(e,t,r,n,i){var s,a,o,l;return s=e.pendingWriteTree_,a=t,o=r,n=n,l=i,g(n>s.lastWriteId,"Stacking an older write on top of newer ones"),s.allWrites.push({path:a,snap:o,writeId:n,visible:l=void 0===l?!0:l}),l&&(s.visibleWrites=Od(s.visibleWrites,a,o)),s.lastWriteId=n,i?Bp(e,new wd(gd(),t,r)):[]}function xp(e,t,r,n){i=e.pendingWriteTree_,s=t,a=r,n=n,g(n>i.lastWriteId,"Stacking an older merge on top of newer ones"),i.allWrites.push({path:s,children:a,writeId:n,visible:!0}),i.visibleWrites=Md(i.visibleWrites,s,a),i.lastWriteId=n;var i,s,a,o=Dd.fromObject(r);return Bp(e,new bd(gd(),t,o))}function Op(e,t,r=!1){var n=((e,t)=>{for(let n=0;n<e.allWrites.length;n++){var r=e.allWrites[n];if(r.writeId===t)return r}return null})(e.pendingWriteTree_,t);if(Kd(e.pendingWriteTree_,t)){let t=new Dd(null);return null!=n.snap?t=t.set(v(),!0):Cu(n.children,e=>{t=t.set(new f(e),!0)}),Bp(e,new _d(n.path,t,r))}return[]}function Mp(e,t,r){return Bp(e,new wd(md(),t,r))}function Lp(r,t,n,i,s=!1){var a=t._path,o=r.syncPointTree_.get(a);let l=[];if(o&&("default"===t._queryIdentifier||Sp(o,t))){var h=Ip(o,t,n,i),o=(0===o.views.size&&(r.syncPointTree_=r.syncPointTree_.remove(a)),h.removed);if(l=h.events,!s){var h=-1!==o.findIndex(e=>e._queryParams.loadsAllData()),u=r.syncPointTree_.findOnPath(a,(e,t)=>kp(t));if(h&&!u){a=r.syncPointTree_.subtree(a);if(!a.isEmpty()){var c=a.fold((e,t,n)=>{if(t&&kp(t))return[Ap(t)];{let r=[];return t&&(r=Tp(t)),Cu(n,(e,t)=>{r=r.concat(t)}),r}});for(let e=0;e<c.length;++e){var d=c[e],p=d.query,d=zp(r,d);r.listenProvider_.startListening(Qp(p),Kp(r,p),d.hashFn,d.onComplete)}}}!u&&0<o.length&&!i&&(h?r.listenProvider_.stopListening(Qp(t),null):o.forEach(e=>{var t=r.queryToTagMap.get(Wp(e));r.listenProvider_.stopListening(Qp(e),t)}))}var f=r,g=o;for(let e=0;e<g.length;++e){var m,v=g[e];v._queryParams.loadsAllData()||(v=Wp(v),m=f.queryToTagMap.get(v),f.queryToTagMap.delete(v),f.tagToQueryMap.delete(m))}}return l}function Fp(e,t,r,n){var i,s,a=Hp(e,n);return null!=a?(i=(a=Gp(a)).path,a=a.queryId,s=lc(i,t),$p(e,i,new wd(vd(a),s,r))):[]}function Up(e,t,r,n=!1){let i=t._path,s=null,a=!1,o=(e.syncPointTree_.foreachOnPath(i,(e,t)=>{var r=lc(e,i);s=s||Ep(t,r),a=a||kp(t)}),e.syncPointTree_.get(i));o?(a=a||kp(o),s=s||Ep(o,v())):(o=new _p,e.syncPointTree_=e.syncPointTree_.set(i,o));let l;null!=s?l=!0:(l=!1,s=T.EMPTY_NODE,e.syncPointTree_.subtree(i).foreachChild((e,t)=>{var r=Ep(t,v());r&&(s=s.updateImmediateChild(e,r))}));var h,u=Sp(o,t),c=(u||t._queryParams.loadsAllData()||(h=Wp(t),g(!e.queryToTagMap.has(h),"View does not exist, but we have a tag"),c=Rp++,e.queryToTagMap.set(h,c),e.tagToQueryMap.set(c,h)),zd(e.pendingWriteTree_,i));let d=bp(o,t,r,c,s,l);return u||a||n||(h=Cp(o,t),d=d.concat(((t,e,r)=>{var n=e._path,i=Kp(t,e),s=zp(t,r),s=t.listenProvider_.startListening(Qp(e),i,s.hashFn,s.onComplete),n=t.syncPointTree_.subtree(n);if(i)g(!kp(n.value),"If we're adding a query, it shouldn't be shadowed");else{var a=n.fold((e,t,n)=>{if(!b(e)&&t&&kp(t))return[Ap(t).query];{let r=[];return t&&(r=r.concat(Tp(t).map(e=>e.query))),Cu(n,(e,t)=>{r=r.concat(t)}),r}});for(let e=0;e<a.length;++e){var o=a[e];t.listenProvider_.stopListening(Qp(o),Kp(t,o))}}return s})(e,t,h))),d}function Vp(e,n,t){var r=e.pendingWriteTree_,i=e.syncPointTree_.findOnPath(n,(e,t)=>{var r=Ep(t,lc(e,n));if(r)return r});return Gd(r,n,i,t,!0)}function qp(e,t){let n=t._path,i=null,r=(e.syncPointTree_.foreachOnPath(n,(e,t)=>{var r=lc(e,n);i=i||Ep(t,r)}),e.syncPointTree_.get(n));r?i=i||Ep(r,v()):(r=new _p,e.syncPointTree_=e.syncPointTree_.set(n,r));var s=null!=i,a=s?new Id(i,!0,!1):null,o=zd(e.pendingWriteTree_,t._path);return Nd(wp(r,t,o,s?a.getNode():T.EMPTY_NODE,s).viewCache_)}function Bp(e,t){return function a(t,o,l,h){{if(b(t.path))return jp(t,o,l,h);{let e=o.get(v()),r=(null==l&&null!=e&&(l=Ep(e,v())),[]),n=_(t.path),i=t.operationForChild(n),s=o.children.get(n);if(s&&i){let e=l?l.getImmediateChild(n):null,t=ep(h,n);r=r.concat(a(i,s,e,t))}return r=e?r.concat(yp(e,t,h,l)):r}}}(t,e.syncPointTree_,null,zd(e.pendingWriteTree_,v()))}function jp(s,e,a,o){var t=e.get(v());null==a&&null!=t&&(a=Ep(t,v()));let l=[];return e.children.inorderTraversal((e,t)=>{var r=a?a.getImmediateChild(e):null,n=ep(o,e),i=s.operationForChild(e);i&&(l=l.concat(jp(i,t,r,n)))}),l=t?l.concat(yp(t,s,o,a)):l}function zp(o,e){let l=e.query,h=Kp(o,l);return{hashFn:()=>(e.viewCache_.serverCache.getNode()||T.EMPTY_NODE).hash(),onComplete:e=>{var t,r,n,i,s,a;return"ok"===e?h?(t=o,r=l._path,n=h,(a=Hp(t,n))?(i=(a=Gp(a)).path,a=a.queryId,s=lc(i,r),$p(t,i,new yd(vd(a),s))):[]):(n=o,r=l._path,Bp(n,new yd(md(),r))):(i=((e,t)=>{let r="Unknown Error";"too_big"===e?r="The data requested exceeds the maximum size that can be accessed with a single request.":"permission_denied"===e?r="Client doesn't have permission to access the desired data.":"unavailable"===e&&(r="The service is unavailable");var n=new Error(e+" at "+t._path.toString()+": "+r);return n.code=e.toUpperCase(),n})(e,l),Lp(o,l,null,i))}}}function Kp(e,t){var r=Wp(t);return e.queryToTagMap.get(r)}function Wp(e){return e._path.toString()+"$"+e._queryIdentifier}function Hp(e,t){return e.tagToQueryMap.get(t)}function Gp(e){var t=e.indexOf("$");return g(-1!==t&&t<e.length-1,"Bad queryKey."),{queryId:e.substr(t+1),path:new f(e.substr(0,t))}}function $p(e,t,r){var n=e.syncPointTree_.get(t),i=(g(n,"Missing sync point for query tag that we're tracking"),zd(e.pendingWriteTree_,t));return yp(n,r,i,null)}function Qp(e){return e._queryParams.loadsAllData()&&!e._queryParams.isDefault()?(g(Np,"Reference.ts has not been loaded"),new Np(e._repo,e._path)):e}class Yp{constructor(e){this.node_=e}getImmediateChild(e){var t=this.node_.getImmediateChild(e);return new Yp(t)}node(){return this.node_}}class Jp{constructor(e,t){this.syncTree_=e,this.path_=t}getImmediateChild(e){var t=oc(this.path_,e);return new Jp(this.syncTree_,t)}node(){return Vp(this.syncTree_,this.path_)}}let Xp=function(e){return(e=e||{}).timestamp=e.timestamp||(new Date).getTime(),e},Zp=function(e,t,r){return e&&"object"==typeof e?(g(".sv"in e,"Unexpected leaf node or priority contents"),"string"==typeof e[".sv"]?ef(e[".sv"],t,r):"object"==typeof e[".sv"]?tf(e[".sv"],t):void g(!1,"Unexpected server value: "+JSON.stringify(e,null,2))):e},ef=function(e,t,r){if("timestamp"===e)return r.timestamp;g(!1,"Unexpected server value: "+e)},tf=function(e,t,r){e.hasOwnProperty("increment")||g(!1,"Unexpected server value: "+JSON.stringify(e,null,2));var n=e.increment,i=("number"!=typeof n&&g(!1,"Unexpected increment value: "+n),t.node());return g(null!=i,"Expected ChildrenNode.EMPTY_NODE for nulls"),!i.isLeafNode()||"number"!=typeof(i=i.getValue())?n:i+n},rf=function(e,t,r,n){return sf(t,new Jp(r,e),n)},nf=function(e,t,r){return sf(e,new Yp(t),r)};function sf(e,n,i){var t,r,s=e.getPriority().val(),s=Zp(s,n.getImmediateChild(".priority"),i);let a;return e.isLeafNode()?(r=e,(t=Zp(r.getValue(),n,i))!==r.getValue()||s!==r.getPriority().val()?new Pc(t,Wc(s)):e):(r=e,s!==(a=r).getPriority().val()&&(a=a.updatePriority(new Pc(s))),r.forEachChild(I,(e,t)=>{var r=sf(t,n.getImmediateChild(e),i);r!==t&&(a=a.updateImmediateChild(e,r))}),a)}class af{constructor(e="",t=null,r={children:{},childCount:0}){this.name=e,this.parent=t,this.node=r}}function of(e,t){let r=t instanceof f?t:new f(t),n=e,i=_(r);for(;null!==i;){var s=Se(n.node.children,i)||{children:{},childCount:0};n=new af(i,n,s),r=y(r),i=_(r)}return n}function lf(e){return e.node.value}function hf(e,t){e.node.value=t,pf(e)}function uf(e){return 0<e.node.childCount}function cf(r,n){Cu(r.node.children,(e,t)=>{n(new af(e,r,t))})}function df(e){return new f(null===e.parent?e.name:df(e.parent)+"/"+e.name)}function pf(e){var t,r,n,i;null!==e.parent&&(t=e.parent,r=e.name,n=(e=>void 0===lf(e)&&!uf(e))(e=e),i=Ce(t.node.children,r),n&&i?(delete t.node.children[r],t.node.childCount--,pf(t)):n||i||(t.node.children[r]=e.node,t.node.childCount++,pf(t)))}function ff(e,t,r,n){n&&void 0===t||kf(Ue(e,"value"),t,r)}function gf(e,t,s,r){if(!r||void 0!==t){let n=Ue(e,"values");if(!t||"object"!=typeof t||Array.isArray(t))throw new Error(n+" must be an object containing the children to replace.");let i=[];Cu(t,(e,t)=>{var r=new f(e);if(kf(n,t,oc(s,r)),".priority"===ic(r)&&!Sf(t))throw new Error(n+"contains an invalid value for '"+r.toString()+"', which must be a valid Firebase priority (a string, finite number, server value, or null).");i.push(r)});{var a=n;var o=i;let t,r;for(t=0;t<o.length;t++){var l=sc(r=o[t]);for(let e=0;e<l.length;e++)if((".priority"!==l[e]||e!==l.length-1)&&!Tf(l[e]))throw new Error(a+"contains an invalid key ("+l[e]+") in path "+r.toString()+'. Keys must be non-empty strings and can\'t contain ".", "#", "$", "/", "[", or "]"')}o.sort(hc);let e=null;for(t=0;t<o.length;t++){if(r=o[t],null!==e&&cc(e,r))throw new Error(a+"contains a path "+e.toString()+" that is ancestor of another path "+r.toString());e=r}}}}function mf(e,t,r){if(!r||void 0!==t){if(bu(t))throw new Error(Ue(e,"priority")+"is "+t.toString()+", but must be a valid Firebase priority (a string, finite number, server value, or null).");if(!Sf(t))throw new Error(Ue(e,"priority")+"must be a valid Firebase priority (a string, finite number, server value, or null).")}}function vf(e,t,r,n){if(!(n&&void 0===r||Tf(r)))throw new Error(Ue(e,t)+'was an invalid key = "'+r+'". Firebase keys must be non-empty strings and can\'t contain ".", "#", "$", "/", "[", or "]").')}function _f(e,t,r,n){r=r&&r.replace(/^\/*\.info(\/|$)/,"/"),Af(e,t,r,n)}function yf(e,t){if(".info"===_(t))throw new Error(e+" failed = Can't modify data under /.info/")}let wf=/[\[\].#$\/\u0000-\u001F\u007F]/,bf=/[\[\].#$\u0000-\u001F\u007F]/,If=10485760,Tf=function(e){return"string"==typeof e&&0!==e.length&&!wf.test(e)},Ef=function(e){return"string"==typeof e&&0!==e.length&&!bf.test(e)},Cf=function(e){return e=e&&e.replace(/^\/*\.info(\/|$)/,"/"),Ef(e)},Sf=function(e){return null===e||"string"==typeof e||"number"==typeof e&&!bu(e)||e&&"object"==typeof e&&Ce(e,".sv")},kf=function(a,e,t){let o=t instanceof f?new dc(t,a):t;if(void 0===e)throw new Error(a+"contains undefined "+fc(o));if("function"==typeof e)throw new Error(a+"contains a function "+fc(o)+" with contents = "+e.toString());if(bu(e))throw new Error(a+"contains "+e.toString()+" "+fc(o));if("string"==typeof e&&e.length>If/3&&Be(e)>If)throw new Error(a+"contains a string greater than "+If+" utf8 bytes "+fc(o)+" ('"+e.substring(0,50)+"...')");if(e&&"object"==typeof e){let i=!1,s=!1;if(Cu(e,(e,t)=>{if(".value"===e)i=!0;else if(".priority"!==e&&".sv"!==e&&(s=!0,!Tf(e)))throw new Error(a+" contains an invalid key ("+e+") "+fc(o)+'. Keys must be non-empty strings and can\'t contain ".", "#", "$", "/", "[", or "]"');var r,n;r=o,e=e,0<r.parts_.length&&(r.byteLength_+=1),r.parts_.push(e),r.byteLength_+=Be(e),pc(r),kf(a,t,o),e=o,n=e.parts_.pop(),e.byteLength_-=Be(n),0<e.parts_.length&&--e.byteLength_}),i&&s)throw new Error(a+' contains ".value" child '+fc(o)+" in addition to actual children.")}},Af=function(e,t,r,n){if(!(n&&void 0===r||Ef(r)))throw new Error(Ue(e,t)+'was an invalid path = "'+r+'". Paths must be non-empty strings and can\'t contain ".", "#", "$", "[", or "]"')},Nf=function(e,t){var r=t.path.toString();if("string"!=typeof t.repoInfo.host||0===t.repoInfo.host.length||!Tf(t.repoInfo.namespace)&&"localhost"!==t.repoInfo.host.split(":")[0]||0!==r.length&&!Cf(r))throw new Error(Ue(e,"url")+'must be a valid firebase URL and the path can\'t contain ".", "#", "$", "[", or "]".')};class Rf{constructor(){this.eventLists_=[],this.recursionDepth_=0}}function Pf(e,t){let r=null;for(let s=0;s<t.length;s++){var n=t[s],i=n.getPath();null===r||uc(i,r.path)||(e.eventLists_.push(r),r=null),(r=null===r?{events:[],path:i}:r).events.push(n)}r&&e.eventLists_.push(r)}function Df(e,t,r){Pf(e,r),Of(e,e=>uc(e,t))}function xf(e,t,r){Pf(e,r),Of(e,e=>cc(e,t)||cc(t,e))}function Of(t,e){t.recursionDepth_++;let r=!0;for(let o=0;o<t.eventLists_.length;o++){var n=t.eventLists_[o];if(n)if(e(n.path)){s=a=i=void 0;var i=t.eventLists_[o];for(let e=0;e<i.events.length;e++){var s,a=i.events[e];null!==a&&(i.events[e]=null,s=a.getEventRunner(),fu&&vu("event: "+a.toString()),Du(s))}t.eventLists_[o]=null}else r=!1}r&&(t.eventLists_=[]),t.recursionDepth_--}let Mf="repo_interrupt",Lf=25;class Ff{constructor(e,t,r,n){this.repoInfo_=e,this.forceRestClient_=t,this.authTokenProvider_=r,this.appCheckProvider_=n,this.dataUpdateCount=0,this.statsListener_=null,this.eventQueue_=new Rf,this.nextWriteId_=1,this.interceptServerDataCallback_=null,this.onDisconnect_=ud(),this.transactionQueueTree_=new af,this.persistentConnection_=null,this.key=this.repoInfo_.toURLString()}toString(){return(this.repoInfo_.secure?"https://":"http://")+this.repoInfo_.host}}function Uf(a,e,t){if(a.stats_=Ku(a.repoInfo_),a.forceRestClient_||0<=("object"==typeof window&&window.navigator&&window.navigator.userAgent||"").search(/googlebot|google webmaster tools|bingbot|yahoo! slurp|baiduspider|yandexbot|duckduckbot/i))a.server_=new ld(a.repoInfo_,(e,t,r,n)=>{Bf(a,e,t,r,n)},a.authTokenProvider_,a.appCheckProvider_),setTimeout(()=>jf(a,!0),0);else{if(null!=t){if("object"!=typeof t)throw new Error("Only objects are supported for option databaseAuthVariableOverride");try{Te(t)}catch(e){throw new Error("Invalid authOverride provided: "+e)}}a.persistentConnection_=new mc(a.repoInfo_,e,(e,t,r,n)=>{Bf(a,e,t,r,n)},e=>{jf(a,e)},e=>{var r;r=a,Cu(e,(e,t)=>{zf(r,e,t)})},a.authTokenProvider_,a.appCheckProvider_,t),a.server_=a.persistentConnection_}var r;a.authTokenProvider_.addTokenChangeListener(e=>{a.server_.refreshAuthToken(e)}),a.appCheckProvider_.addTokenChangeListener(e=>{a.server_.refreshAppCheckToken(e.token)}),a.statsReporter_=(e=()=>new fd(a.stats_,a.server_),r=a.repoInfo_.toString(),zu[r]||(zu[r]=e()),zu[r]),a.infoData_=new hd,a.infoSyncTree_=new Pp({startListening:(e,t,r,n)=>{let i=[];var s=a.infoData_.getNode(e._path);return s.isEmpty()||(i=Mp(a.infoSyncTree_,e._path,s),setTimeout(()=>{n("ok")},0)),i},stopListening:()=>{}}),zf(a,"connected",!1),a.serverSyncTree_=new Pp({startListening:(n,e,t,i)=>(a.server_.listen(n,t,e,(e,t)=>{var r=i(e,t);xf(a.eventQueue_,n._path,r)}),[]),stopListening:(e,t)=>{a.server_.unlisten(e,t)}})}function Vf(e){var t=e.infoData_.getNode(new f(".info/serverTimeOffset")).val()||0;return(new Date).getTime()+t}function qf(e){return Xp({timestamp:Vf(e)})}function Bf(e,t,r,n,i){e.dataUpdateCount++;var s,a,o,l,h,u,c=new f(t);r=e.interceptServerDataCallback_?e.interceptServerDataCallback_(t,r):r;let d=[],p=c;0<(d=i?n?(u=Ae(r,e=>Wc(e)),t=e.serverSyncTree_,s=c,a=u,(u=Hp(t,i))?(o=(u=Gp(u)).path,u=u.queryId,l=lc(o,s),h=Dd.fromObject(a),$p(t,o,new bd(vd(u),l,h))):[]):(o=Wc(r),Fp(e.serverSyncTree_,c,o,i)):n?(u=Ae(r,e=>Wc(e)),s=e.serverSyncTree_,a=c,t=u,l=Dd.fromObject(t),Bp(s,new bd(md(),a,l))):(h=Wc(r),Mp(e.serverSyncTree_,c,h))).length&&(p=eg(e,c)),xf(e.eventQueue_,p,d)}function jf(e,t){if(zf(e,"connected",t),!1===t){var a=e;Yf(a,"onDisconnectEvents");let n=qf(a),i=ud(),s=(dd(a.onDisconnect_,v(),(e,t)=>{var r=rf(e,t,a.serverSyncTree_,n);cd(i,e,r)}),[]);dd(i,v(),(e,t)=>{s=s.concat(Mp(a.serverSyncTree_,e,t));var r=ig(a,e);eg(a,r)}),a.onDisconnect_=ud(),xf(a.eventQueue_,v(),s)}}function zf(e,t,r){var n=new f("/.info/"+t),i=Wc(r),i=(e.infoData_.updateSnapshot(n,i),Mp(e.infoSyncTree_,n,i));xf(e.eventQueue_,n,i)}function Kf(e){return e.nextWriteId_++}function Wf(n,i,e,t,s){Yf(n,"set",{path:i.toString(),value:e,priority:t});var r=qf(n),a=Wc(e,t),o=Vp(n.serverSyncTree_,i),o=nf(a,o,r);let l=Kf(n);r=Dp(n.serverSyncTree_,i,o,l,!0),Pf(n.eventQueue_,r),n.server_.put(i.toString(),a.val(!0),(e,t)=>{var r="ok"===e,r=(r||yu("set at "+i+" failed: "+e),Op(n.serverSyncTree_,l,!r));xf(n.eventQueue_,i,r),Jf(0,s,e,t)}),o=ig(n,i);eg(n,o),xf(n.eventQueue_,o,[])}function Hf(r,n,i){r.server_.onDisconnectCancel(n.toString(),(e,t)=>{"ok"===e&&!function e(r,t){var n;return b(t)?(r.value=null,r.children.clear(),!0):null!==r.value?!r.value.isLeafNode()&&(n=r.value,r.value=null,n.forEachChild(I,(e,t)=>{cd(r,new f(e),t)}),e(r,t)):!(0<r.children.size)||(n=_(t),t=y(t),r.children.has(n)&&e(r.children.get(n),t)&&r.children.delete(n),0===r.children.size)}(r.onDisconnect_,n),Jf(0,i,e,t)})}function Gf(r,n,e,i){let s=Wc(e);r.server_.onDisconnectPut(n.toString(),s.val(!0),(e,t)=>{"ok"===e&&cd(r.onDisconnect_,n,s),Jf(0,i,e,t)})}function $f(e,t,r){let n;n=".info"===_(t._path)?Lp(e.infoSyncTree_,t,r):Lp(e.serverSyncTree_,t,r),Df(e.eventQueue_,t._path,n)}function Qf(e){e.persistentConnection_&&e.persistentConnection_.interrupt(Mf)}function Yf(e,...t){let r="";e.persistentConnection_&&(r=e.persistentConnection_.id+":"),vu(r,...t)}function Jf(e,n,i,s){n&&Du(()=>{if("ok"===i)n(null);else{var t=(i||"error").toUpperCase();let e=t;s&&(e+=": "+s);var r=new Error(e);r.code=t,n(r)}})}function Xf(e,t,r){return Vp(e.serverSyncTree_,t,r)||T.EMPTY_NODE}function Zf(o,l=o.transactionQueueTree_){if(l||ng(o,l),lf(l)){var h=rg(o,l),e=(g(0<h.length,"Sending zero length transaction queue"),h.every(e=>0===e.status));if(e){var u=o;var c=df(l);var d=h;let e=d.map(e=>e.currentWriteId),t=Xf(u,c,e),r=t,n=t.hash();for(let a=0;a<d.length;a++){var p=d[a],f=(g(0===p.status,"tryToSendTransactionQueue_: items in queue should all be run."),p.status=1,p.retryCount++,lc(c,p.path));r=r.updateChild(f,p.currentOutputSnapshotRaw)}let i=r.val(!0),s=c;u.server_.put(s.toString(),i,t=>{Yf(u,"transaction put response",{path:s.toString(),status:t});let r=[];if("ok"===t){var n=[];for(let e=0;e<d.length;e++)d[e].status=2,r=r.concat(Op(u.serverSyncTree_,d[e].currentWriteId)),d[e].onComplete&&n.push(()=>d[e].onComplete(null,!0,d[e].currentOutputSnapshotResolved)),d[e].unwatcher();ng(u,of(u.transactionQueueTree_,c)),Zf(u,u.transactionQueueTree_),xf(u.eventQueue_,c,r);for(let t=0;t<n.length;t++)Du(n[t])}else{if("datastale"===t)for(let e=0;e<d.length;e++)3===d[e].status?d[e].status=4:d[e].status=0;else{yu("transaction at "+s.toString()+" failed: "+t);for(let e=0;e<d.length;e++)d[e].status=4,d[e].abortReason=t}eg(u,c)}},n)}}else uf(l)&&cf(l,e=>{Zf(o,e)})}function eg(e,t){var r=tg(e,t),n=df(r),r=rg(e,r),i=e,s=r,a=n;if(0!==s.length){var o=[];let r=[];var l=s.filter(e=>0===e.status).map(e=>e.currentWriteId);for(let n=0;n<s.length;n++){var h=s[n],u=lc(a,h.path);let e=!1,t;if(g(null!==u,"rerunTransactionsUnderNode_: relativePath should not be null."),4===h.status)e=!0,t=h.abortReason,r=r.concat(Op(i.serverSyncTree_,h.currentWriteId,!0));else if(0===h.status)if(h.retryCount>=Lf)e=!0,t="maxretry",r=r.concat(Op(i.serverSyncTree_,h.currentWriteId,!0));else{var u=Xf(i,h.path,l),c=(h.currentInputSnapshot=u,s[n].update(u.val()));if(void 0!==c){kf("transaction failed: Data returned ",c,h.path);let e=Wc(c);"object"==typeof c&&null!=c&&Ce(c,".priority")||(e=e.updatePriority(u.getPriority()));var c=h.currentWriteId,d=qf(i),u=nf(e,u,d);h.currentOutputSnapshotRaw=e,h.currentOutputSnapshotResolved=u,h.currentWriteId=Kf(i),l.splice(l.indexOf(c),1),r=(r=r.concat(Dp(i.serverSyncTree_,h.path,u,h.currentWriteId,h.applyLocally))).concat(Op(i.serverSyncTree_,c,!0))}else e=!0,t="nodata",r=r.concat(Op(i.serverSyncTree_,h.currentWriteId,!0))}xf(i.eventQueue_,a,r),r=[],e&&(s[n].status=2,(e=>{setTimeout(e,Math.floor(0))})(s[n].unwatcher),s[n].onComplete)&&("nodata"===t?o.push(()=>s[n].onComplete(null,!1,s[n].currentInputSnapshot)):o.push(()=>s[n].onComplete(new Error(t),!1,null)))}ng(i,i.transactionQueueTree_);for(let e=0;e<o.length;e++)Du(o[e]);Zf(i,i.transactionQueueTree_)}return n}function tg(e,t){let r,n=e.transactionQueueTree_;for(r=_(t);null!==r&&void 0===lf(n);)n=of(n,r),t=y(t),r=_(t);return n}function rg(e,t){var r=[];return function t(r,e,n){let i=lf(e);if(i)for(let e=0;e<i.length;e++)n.push(i[e]);cf(e,e=>{t(r,e,n)})}(e,t,r),r.sort((e,t)=>e.order-t.order),r}function ng(t,r){var n=lf(r);if(n){let e=0;for(let t=0;t<n.length;t++)2!==n[t].status&&(n[e]=n[t],e++);n.length=e,hf(r,0<n.length?n:void 0)}cf(r,e=>{ng(t,e)})}function ig(t,e){var r=df(tg(t,e)),n=of(t.transactionQueueTree_,e);return((e,t,r)=>{let n=r?e:e.parent;for(;null!==n;){if(t(n))return;n=n.parent}})(n,e=>{sg(t,e)}),sg(t,n),function t(e,r,n,i){n&&!i&&r(e),cf(e,e=>{t(e,r,!0,i)}),n&&i&&r(e)}(n,e=>{sg(t,e)}),r}function sg(i,s){var a=lf(s);if(a){var o=[];let e=[],t=-1;for(let r=0;r<a.length;r++)3!==a[r].status&&(1===a[r].status?(g(t===r-1,"All SENT items should be at beginning of queue."),a[t=r].status=3,a[r].abortReason="set"):(g(0===a[r].status,"Unexpected transaction status in abort"),a[r].unwatcher(),e=e.concat(Op(i.serverSyncTree_,a[r].currentWriteId,!0)),a[r].onComplete&&o.push(a[r].onComplete.bind(null,new Error("set"),!1,null))));-1===t?hf(s,void 0):a.length=t+1,xf(i.eventQueue_,df(s),e);for(let n=0;n<o.length;n++)Du(o[n])}}let ag=function(e,t){var r=og(e),n=r.namespace,i=("firebase.com"===r.domain&&_u(r.host+" is no longer supported. Please use <YOUR FIREBASE>.firebaseio.com instead"),n&&"undefined"!==n||"localhost"===r.domain||_u("Cannot parse Firebase url. Please use https://<YOUR FIREBASE>.firebaseio.com"),r.secure||wu(),"ws"===r.scheme||"wss"===r.scheme);return{repoInfo:new Vu(r.host,r.secure,n,i,t,"",n!==r.subdomain),path:new f(r.pathString)}},og=function(n){let i="",s="",a="",o="",l="",h=!0,u="https",c=443;if("string"==typeof n){let e=n.indexOf("//"),t=(0<=e&&(u=n.substring(0,e-1),n=n.substring(e+2)),n.indexOf("/")),r=(-1===t&&(t=n.length),n.indexOf("?"));-1===r&&(r=n.length),i=n.substring(0,Math.min(t,r)),t<r&&(o=(e=>{let t="";var r=e.split("/");for(let n=0;n<r.length;n++)if(0<r[n].length){let e=r[n];try{e=decodeURIComponent(e.replace(/\+/g," "))}catch(e){}t+="/"+e}return t})(n.substring(t,r)));var d=(e=>{var t,r,n={};for(t of(e="?"===e.charAt(0)?e.substring(1):e).split("&"))0!==t.length&&(2===(r=t.split("=")).length?n[decodeURIComponent(r[0])]=decodeURIComponent(r[1]):yu(`Invalid query segment '${t}' in query '${e}'`));return n})(n.substring(Math.min(n.length,r))),p=(0<=(e=i.indexOf(":"))?(h="https"===u||"wss"===u,c=parseInt(i.substring(e+1),10)):e=i.length,i.slice(0,e));"localhost"===p.toLowerCase()?s="localhost":p.split(".").length<=2?s=p:(p=i.indexOf("."),a=i.substring(0,p).toLowerCase(),s=i.substring(p+1),l=a),"ns"in d&&(l=d.ns)}return{host:i,port:c,domain:s,subdomain:a,secure:h,scheme:u,pathString:o,namespace:l}},lg="-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz",hg=(()=>{let s=0,a=[];return function(e){var t=e===s;s=e;let r;var n=new Array(8);for(r=7;0<=r;r--)n[r]=lg.charAt(e%64),e=Math.floor(e/64);g(0===e,"Cannot push at time == 0");let i=n.join("");if(t){for(r=11;0<=r&&63===a[r];r--)a[r]=0;a[r]++}else for(r=0;r<12;r++)a[r]=Math.floor(64*Math.random());for(r=0;r<12;r++)i+=lg.charAt(a[r]);return g(20===i.length,"nextPushId: Length should be 20."),i}})();class ug{constructor(e,t,r,n){this.eventType=e,this.eventRegistration=t,this.snapshot=r,this.prevName=n}getPath(){var e=this.snapshot.ref;return("value"===this.eventType?e:e.parent)._path}getEventType(){return this.eventType}getEventRunner(){return this.eventRegistration.getEventRunner(this)}toString(){return this.getPath().toString()+":"+this.eventType+":"+Te(this.snapshot.exportVal())}}class cg{constructor(e,t,r){this.eventRegistration=e,this.error=t,this.path=r}getPath(){return this.path}getEventType(){return"cancel"}getEventRunner(){return this.eventRegistration.getEventRunner(this)}toString(){return this.path.toString()+":cancel"}}class dg{constructor(e,t){this.snapshotCallback=e,this.cancelCallback=t}onValue(e,t){this.snapshotCallback.call(null,e,t)}onCancel(e){return g(this.hasCancelCallback,"Raising a cancel event on a listener with no cancel callback"),this.cancelCallback.call(null,e)}get hasCancelCallback(){return!!this.cancelCallback}matches(e){return this.snapshotCallback===e.snapshotCallback||void 0!==this.snapshotCallback.userCallback&&this.snapshotCallback.userCallback===e.snapshotCallback.userCallback&&this.snapshotCallback.context===e.snapshotCallback.context}}class pg{constructor(e,t){this._repo=e,this._path=t}cancel(){var e=new Z;return Hf(this._repo,this._path,e.wrapCallback(()=>{})),e.promise}remove(){yf("OnDisconnect.remove",this._path);var e=new Z;return Gf(this._repo,this._path,null,e.wrapCallback(()=>{})),e.promise}set(e){yf("OnDisconnect.set",this._path),ff("OnDisconnect.set",e,this._path,!1);var t=new Z;return Gf(this._repo,this._path,e,t.wrapCallback(()=>{})),t.promise}setWithPriority(e,t){yf("OnDisconnect.setWithPriority",this._path),ff("OnDisconnect.setWithPriority",e,this._path,!1),mf("OnDisconnect.setWithPriority",t,!1);var n=new Z;{var i=this._repo,s=this._path,a=n.wrapCallback(()=>{});let r=Wc(e,t);i.server_.onDisconnectPut(s.toString(),r.val(!0),(e,t)=>{"ok"===e&&cd(i.onDisconnect_,s,r),Jf(0,a,e,t)})}return n.promise}update(e){yf("OnDisconnect.update",this._path),gf("OnDisconnect.update",e,this._path,!1);var n,i,r,s,t=new Z;return n=this._repo,i=this._path,r=e,s=t.wrapCallback(()=>{}),ke(r)?(vu("onDisconnect().update() called with empty data. Don't do anything."),Jf(0,s,"ok",void 0)):n.server_.onDisconnectMerge(i.toString(),r,(e,t)=>{"ok"===e&&Cu(r,(e,t)=>{var r=Wc(t);cd(n.onDisconnect_,oc(i,e),r)}),Jf(0,s,e,t)}),t.promise}}class fg{constructor(e,t,r,n){this._repo=e,this._path=t,this._queryParams=r,this._orderByCalled=n}get key(){return b(this._path)?null:ic(this._path)}get ref(){return new _g(this._repo,this._path)}get _queryIdentifier(){var e=od(this._queryParams),e=ou(e);return"{}"===e?"default":e}get _queryObject(){return od(this._queryParams)}isEqual(e){var t,r,n;return(e=w(e))instanceof fg&&(t=this._repo===e._repo,r=uc(this._path,e._path),n=this._queryIdentifier===e._queryIdentifier,t)&&r&&n}toJSON(){return this.toString()}toString(){return this._repo.toString()+(e=>{let t="";for(let r=e.pieceNum_;r<e.pieces_.length;r++)""!==e.pieces_[r]&&(t+="/"+encodeURIComponent(String(e.pieces_[r])));return t||"/"})(this._path)}}function gg(e,t){if(!0===e._orderByCalled)throw new Error(t+": You can't combine multiple orderBy calls.")}function mg(e){let t=null,r=null;if(e.hasStart()&&(t=e.getIndexStartValue()),e.hasEnd()&&(r=e.getIndexEndValue()),e.getIndex()===wc){var n="Query: When ordering by key, you may only pass one argument to startAt(), endAt(), or equalTo().",i="Query: When ordering by key, the argument passed to startAt(), startAfter(), endAt(), endBefore(), or equalTo() must be a string.";if(e.hasStart()){if(e.getIndexStartName()!==Iu)throw new Error(n);if("string"!=typeof t)throw new Error(i)}if(e.hasEnd()){if(e.getIndexEndName()!==Tu)throw new Error(n);if("string"!=typeof r)throw new Error(i)}}else if(e.getIndex()===I){if(null!=t&&!Sf(t)||null!=r&&!Sf(r))throw new Error("Query: When ordering by priority, the first argument passed to startAt(), startAfter() endAt(), endBefore(), or equalTo() must be a valid priority value (null, a number, or a string).")}else if(g(e.getIndex()instanceof Hc||e.getIndex()===$c,"unknown index type."),null!=t&&"object"==typeof t||null!=r&&"object"==typeof r)throw new Error("Query: First argument passed to startAt(), startAfter(), endAt(), endBefore(), or equalTo() cannot be an object.")}function vg(e){if(e.hasStart()&&e.hasEnd()&&e.hasLimit()&&!e.hasAnchoredLimit())throw new Error("Query: Can't combine startAt(), startAfter(), endAt(), endBefore(), and limit(). Use limitToFirst() or limitToLast() instead.")}class _g extends fg{constructor(e,t){super(e,t,new rd,!1)}get parent(){var e=ac(this._path);return null===e?null:new _g(this._repo,e)}get root(){let e=this;for(;null!==e.parent;)e=e.parent;return e}}class yg{constructor(e,t,r){this._node=e,this.ref=t,this._index=r}get priority(){return this._node.getPriority().val()}get key(){return this.ref.key}get size(){return this._node.numChildren()}child(e){var t=new f(e),r=Ig(this.ref,e);return new yg(this._node.getChild(t),r,I)}exists(){return!this._node.isEmpty()}exportVal(){return this._node.val(!0)}forEach(r){return!this._node.isLeafNode()&&!!this._node.forEachChild(this._index,(e,t)=>r(new yg(t,Ig(this.ref,e),I)))}hasChild(e){var t=new f(e);return!this._node.getChild(t).isEmpty()}hasChildren(){return!this._node.isLeafNode()&&!this._node.isEmpty()}toJSON(){return this.exportVal()}val(){return this._node.val()}}function wg(e,t){return(e=w(e))._checkNotDeleted("ref"),void 0!==t?Ig(e._root,t):e._root}function bg(e,t){(e=w(e))._checkNotDeleted("refFromURL");var r=ag(t,e._repo.repoInfo_.nodeAdmin),n=(Nf("refFromURL",r),r.repoInfo);return e._repo.repoInfo_.isCustomHost()||n.host===e._repo.repoInfo_.host||_u("refFromURL: Host name does not match the current database: (found "+n.host+" but expected "+e._repo.repoInfo_.host+")"),wg(e,r.path.toString())}function Ig(e,t){return(null===_((e=w(e))._path)?_f:Af)("child","path",t,!1),new _g(e._repo,oc(e._path,t))}function Tg(e,t){e=w(e),yf("set",e._path),ff("set",t,e._path,!1);var r=new Z;return Wf(e._repo,e._path,t,null,r.wrapCallback(()=>{})),r.promise}function Eg(e,t){gf("update",t,e._path,!1);var i=new Z;{var a=e._repo,o=e._path,l=(e=t,i.wrapCallback(()=>{}));Yf(a,"update",{path:o.toString(),value:e});let r=!0,n=qf(a),s={};if(Cu(e,(e,t)=>{r=!1,s[e]=rf(oc(o,e),Wc(t),a.serverSyncTree_,n)}),r)vu("update() called with empty data. Don't do anything."),Jf(0,l,"ok",void 0);else{let i=Kf(a);var h=xp(a.serverSyncTree_,o,s,i);Pf(a.eventQueue_,h),a.server_.merge(o.toString(),e,(e,t)=>{var r="ok"===e,r=(r||yu("update at "+o+" failed: "+e),Op(a.serverSyncTree_,i,!r)),n=0<r.length?eg(a,o):o;xf(a.eventQueue_,n,r),Jf(0,l,e,t)}),Cu(e,e=>{var t=ig(a,oc(o,e));eg(a,t)}),xf(a.eventQueue_,o,[])}}return i.promise}function Cg(t){t=w(t);var i,s,a,e=new dg(()=>{}),e=new Sg(e);return i=t._repo,s=t,a=e,(null!=(e=qp(i.serverSyncTree_,s))?Promise.resolve(e):i.server_.get(s).then(e=>{var t,r=Wc(e).withIndex(s._queryParams.getIndex());Up(i.serverSyncTree_,s,a,!0);let n;return n=s._queryParams.loadsAllData()?Mp(i.serverSyncTree_,s._path,r):(t=Kp(i.serverSyncTree_,s),Fp(i.serverSyncTree_,s._path,r,t)),xf(i.eventQueue_,s._path,n),Lp(i.serverSyncTree_,s,a,null,!0),r},e=>(Yf(i,"get for query "+Te(s)+" failed: "+e),Promise.reject(new Error(e))))).then(e=>new yg(e,new _g(t._repo,t._path),t._queryParams.getIndex()))}class Sg{constructor(e){this.callbackContext=e}respondsTo(e){return"value"===e}createEvent(e,t){var r=t._queryParams.getIndex();return new ug("value",this,new yg(e.snapshotNode,new _g(t._repo,t._path),r))}getEventRunner(e){return"cancel"===e.getEventType()?()=>this.callbackContext.onCancel(e.error):()=>this.callbackContext.onValue(e.snapshot,null)}createCancelEvent(e,t){return this.callbackContext.hasCancelCallback?new cg(this,e,t):null}matches(e){return e instanceof Sg&&(!e.callbackContext||!this.callbackContext||e.callbackContext.matches(this.callbackContext))}hasAnyCallback(){return null!==this.callbackContext}}class kg{constructor(e,t){this.eventType=e,this.callbackContext=t}respondsTo(e){var t="children_added"===e?"child_added":e;return this.eventType===("children_removed"===t?"child_removed":t)}createCancelEvent(e,t){return this.callbackContext.hasCancelCallback?new cg(this,e,t):null}createEvent(e,t){g(null!=e.childName,"Child events should have a childName.");var r=Ig(new _g(t._repo,t._path),e.childName),n=t._queryParams.getIndex();return new ug(e.type,this,new yg(e.snapshotNode,r,n),e.prevName)}getEventRunner(e){return"cancel"===e.getEventType()?()=>this.callbackContext.onCancel(e.error):()=>this.callbackContext.onValue(e.snapshot,e.prevName)}matches(e){return e instanceof kg&&this.eventType===e.eventType&&(!this.callbackContext||!e.callbackContext||this.callbackContext.matches(e.callbackContext))}hasAnyCallback(){return!!this.callbackContext}}function Ag(n,e,t,r,i){let s;if("object"==typeof r&&(s=void 0,i=r),"function"==typeof r&&(s=r),i&&i.onlyOnce){let r=t;var a=(e,t)=>{$f(n._repo,n,o),r(e,t)};a.userCallback=t.userCallback,a.context=t.context,t=a}a=new dg(t,s||void 0);let o="value"===e?new Sg(a):new kg(e,a);{r=n._repo,i=n,t=o;let e;e=".info"===_(i._path)?Up(r.infoSyncTree_,i,t):Up(r.serverSyncTree_,i,t),Df(r.eventQueue_,i._path,e)}return()=>$f(n._repo,n,o)}function Ng(e,t,r,n){return Ag(e,"value",t,r,n)}function Rg(e,t,r,n){Ag(e,"child_added",t,r,n)}function Pg(e,t,r,n){Ag(e,"child_changed",t,r,n)}function Dg(e,t,r,n){Ag(e,"child_moved",t,r,n)}function xg(e,t,r,n){Ag(e,"child_removed",t,r,n)}function Og(e,t,r){let n=null;var i=r?new dg(r):null;"value"===t?n=new Sg(i):t&&(n=new kg(t,i)),$f(e._repo,e,n)}class Mg{}class Lg extends Mg{constructor(e,t){super(),this._value=e,this._key=t,this.type="endAt"}_apply(e){ff("endAt",this._value,e._path,!0);var t=id(e._queryParams,this._value,this._key);if(vg(t),mg(t),e._queryParams.hasEnd())throw new Error("endAt: Starting point was already set (by another call to endAt, endBefore or equalTo).");return new fg(e._repo,e._path,t,e._orderByCalled)}}class Fg extends Mg{constructor(e,t){super(),this._value=e,this._key=t,this.type="endBefore"}_apply(e){ff("endBefore",this._value,e._path,!1);var t=((e,t,r)=>{let n;return(n=e.index_===wc||r?id(e,t,r):id(e,t,Iu)).endBeforeSet_=!0,n})(e._queryParams,this._value,this._key);if(vg(t),mg(t),e._queryParams.hasEnd())throw new Error("endBefore: Starting point was already set (by another call to endAt, endBefore or equalTo).");return new fg(e._repo,e._path,t,e._orderByCalled)}}class Ug extends Mg{constructor(e,t){super(),this._value=e,this._key=t,this.type="startAt"}_apply(e){ff("startAt",this._value,e._path,!0);var t=nd(e._queryParams,this._value,this._key);if(vg(t),mg(t),e._queryParams.hasStart())throw new Error("startAt: Starting point was already set (by another call to startAt, startBefore or equalTo).");return new fg(e._repo,e._path,t,e._orderByCalled)}}class Vg extends Mg{constructor(e,t){super(),this._value=e,this._key=t,this.type="startAfter"}_apply(e){ff("startAfter",this._value,e._path,!1);var t=((e,t,r)=>{let n;return(n=e.index_===wc||r?nd(e,t,r):nd(e,t,Tu)).startAfterSet_=!0,n})(e._queryParams,this._value,this._key);if(vg(t),mg(t),e._queryParams.hasStart())throw new Error("startAfter: Starting point was already set (by another call to startAt, startAfter, or equalTo).");return new fg(e._repo,e._path,t,e._orderByCalled)}}class qg extends Mg{constructor(e){super(),this._limit=e,this.type="limitToFirst"}_apply(e){if(e._queryParams.hasLimit())throw new Error("limitToFirst: Limit was already set (by another call to limitToFirst or limitToLast).");return new fg(e._repo,e._path,(t=e._queryParams,r=this._limit,(n=t.copy()).limitSet_=!0,n.limit_=r,n.viewFrom_="l",n),e._orderByCalled);var t,r,n}}class Bg extends Mg{constructor(e){super(),this._limit=e,this.type="limitToLast"}_apply(e){if(e._queryParams.hasLimit())throw new Error("limitToLast: Limit was already set (by another call to limitToFirst or limitToLast).");return new fg(e._repo,e._path,(t=e._queryParams,r=this._limit,(n=t.copy()).limitSet_=!0,n.limit_=r,n.viewFrom_="r",n),e._orderByCalled);var t,r,n}}class jg extends Mg{constructor(e){super(),this._path=e,this.type="orderByChild"}_apply(e){gg(e,"orderByChild");var t=new f(this._path);if(b(t))throw new Error("orderByChild: cannot pass in empty path. Use orderByValue() instead.");t=new Hc(t),t=sd(e._queryParams,t);return mg(t),new fg(e._repo,e._path,t,!0)}}class zg extends Mg{constructor(){super(...arguments),this.type="orderByKey"}_apply(e){gg(e,"orderByKey");var t=sd(e._queryParams,wc);return mg(t),new fg(e._repo,e._path,t,!0)}}class Kg extends Mg{constructor(){super(...arguments),this.type="orderByPriority"}_apply(e){gg(e,"orderByPriority");var t=sd(e._queryParams,I);return mg(t),new fg(e._repo,e._path,t,!0)}}class Wg extends Mg{constructor(){super(...arguments),this.type="orderByValue"}_apply(e){gg(e,"orderByValue");var t=sd(e._queryParams,$c);return mg(t),new fg(e._repo,e._path,t,!0)}}class Hg extends Mg{constructor(e,t){super(),this._value=e,this._key=t,this.type="equalTo"}_apply(e){if(ff("equalTo",this._value,e._path,!1),e._queryParams.hasStart())throw new Error("equalTo: Starting point was already set (by another call to startAt/startAfter or equalTo).");if(e._queryParams.hasEnd())throw new Error("equalTo: Ending point was already set (by another call to endAt/endBefore or equalTo).");return new Lg(this._value,this._key)._apply(new Ug(this._value,this._key)._apply(e))}}function Gg(e,...t){let r=w(e);for(var n of t)r=n._apply(r);return r}t=_g,g(!vp,"__referenceConstructor has already been defined"),vp=t,t=_g,g(!Np,"__referenceConstructor has already been defined"),Np=t;let $g="FIREBASE_DATABASE_EMULATOR_HOST",Qg={},Yg=!1;function Jg(e,t,r,n,i){let s=n||e.options.databaseURL,a=(void 0===s&&(e.options.projectId||_u("Can't determine Firebase Database URL. Be sure to include a Project ID when calling firebase.initializeApp()."),vu("Using default host for project ",e.options.projectId),s=e.options.projectId+"-default-rtdb.firebaseio.com"),ag(s,i)),o=a.repoInfo,l,h=void 0;(h="undefined"!=typeof process&&process.env?process.env[$g]:h)?(l=!0,s=`http://${h}?ns=`+o.namespace,a=ag(s,i),o=a.repoInfo):l=!a.repoInfo.secure;var u=i&&l?new Mu(Mu.OWNER):new Ou(e.name,e.options,t),u=(Nf("Invalid Firebase Database URL",a),b(a.path)||_u("Database URL must point to the root of a Firebase Database (not including a child path)."),((e,t,r,n)=>{let i=Qg[t.name];var s;return i||(i={},Qg[t.name]=i),(s=i[e.toURLString()])&&_u("Database initialized multiple times. Please make sure the format of the database URL matches with each database() call."),s=new Ff(e,Yg,r,n),i[e.toURLString()]=s})(o,e,u,new xu(e,r)));return new Xg(u,e)}class Xg{constructor(e,t){this._repoInternal=e,this.app=t,this.type="database",this._instanceStarted=!1}get _repo(){return this._instanceStarted||(Uf(this._repoInternal,this.app.options.appId,this.app.options.databaseAuthVariableOverride),this._instanceStarted=!0),this._repoInternal}get _root(){return this._rootInternal||(this._rootInternal=new _g(this._repo,v())),this._rootInternal}_delete(){var e,t,r;return null!==this._rootInternal&&(e=this._repo,t=this.app.name,(r=Qg[t])&&r[e.key]===e||_u(`Database ${t}(${e.repoInfo_}) has already been deleted.`),Qf(e),delete r[e.key],this._repoInternal=null,this._rootInternal=null),Promise.resolve()}_checkNotDeleted(e){null===this._rootInternal&&_u("Cannot call "+e+" on a deleted database.")}}function Zg(){Yu.IS_TRANSPORT_INITIALIZED&&yu("Transport has already been initialized. Please call this function before calling ref or setting up a listener")}function em(){Zg(),Hu.forceDisallow()}function tm(){Zg(),Qu.forceDisallow(),Hu.forceAllow()}function rm(e,t,r,n={}){(e=w(e))._checkNotDeleted("useEmulator");var i,s=t+":"+r,a=e._repoInternal;if(e._instanceStarted){if(s===e._repoInternal.repoInfo_.host&&Ne(n,a.repoInfo_.emulatorOptions))return;_u("connectDatabaseEmulator() cannot initialize or alter the emulator configuration after the database instance has started.")}let o=void 0;a.repoInfo_.nodeAdmin?(n.mockUserToken&&_u('mockUserToken is not supported by the Admin SDK. For client access with mock users, please use the "firebase" package instead of "firebase-admin".'),o=new Mu(Mu.OWNER)):n.mockUserToken&&(i="string"==typeof n.mockUserToken?n.mockUserToken:re(n.mockUserToken,e.app.options.projectId),o=new Mu(i)),ee(t)&&(te(t),se("Database",!0)),r=a,e=s,t=n,n=o,i=e.lastIndexOf(":"),i=ee(e.substring(0,i)),r.repoInfo_=new Vu(e,i,r.repoInfo_.namespace,r.repoInfo_.webSocketOnly,r.repoInfo_.nodeAdmin,r.repoInfo_.persistenceKey,r.repoInfo_.includeNamespaceInQueryParams,!0,t),n&&(r.authTokenProvider_=n)}function nm(e){(e=w(e))._checkNotDeleted("goOnline"),(e=e._repo).persistentConnection_&&e.persistentConnection_.resume(Mf)}function im(e,t){mu(e,t)}let sm={".sv":"timestamp"};class am{constructor(e,t){this.committed=e,this.snapshot=t}toJSON(){return{committed:this.committed,snapshot:this.snapshot.toJSON()}}}function om(i,e,t){if(i=w(i),yf("Reference.transaction",i._path),".length"===i.key||".keys"===i.key)throw"Reference.transaction failed: "+i.key+" is a read-only object.";var r=t?.applyLocally??!0;let s=new Z;var n=Ng(i,()=>{}),t=i._repo,a=i._path,o=(e,t,r)=>{var n;e?s.reject(e):(n=new yg(r,new _g(i._repo,i._path),I),s.resolve(new am(t,n)))},l=n,h=r;Yf(t,"transaction on "+a);var u,n={path:a,update:e,onComplete:o,status:null,order:du(),applyLocally:h,retryCount:0,unwatcher:l,abortReason:null,currentWriteId:null,currentInputSnapshot:null,currentOutputSnapshotRaw:null,currentOutputSnapshotResolved:null},r=Xf(t,a,void 0);if(n.currentInputSnapshot=r,void 0===(u=n.update(r.val())))n.unwatcher(),n.currentOutputSnapshotRaw=null,n.currentOutputSnapshotResolved=null,n.onComplete&&n.onComplete(null,!1,n.currentInputSnapshot);else{kf("transaction failed: Data returned ",u,n.path),n.status=0;var c=of(t.transactionQueueTree_,a),d=lf(c)||[];d.push(n),hf(c,d);let e;"object"==typeof u&&null!==u&&Ce(u,".priority")?(e=Se(u,".priority"),g(Sf(e),"Invalid priority returned by transaction. Priority must be a valid string, finite number, server value, or null.")):(c=Vp(t.serverSyncTree_,a)||T.EMPTY_NODE,e=c.getPriority().val());d=qf(t),c=Wc(u,e),u=nf(c,r,d),r=(n.currentOutputSnapshotRaw=c,n.currentOutputSnapshotResolved=u,n.currentWriteId=Kf(t),Dp(t.serverSyncTree_,a,u,n.currentWriteId,n.applyLocally));xf(t.eventQueue_,a,r),Zf(t,t.transactionQueueTree_)}return s.promise}mc.prototype.simpleListen=function(e,t){this.sendRequest("q",{p:e},t)},mc.prototype.echo=function(e,t){this.sendRequest("echo",{d:e},t)},Jh(qt),Dt(new u("database",(e,{instanceIdentifier:t})=>Jg(e.getProvider("app").getImmediate(),e.getProvider("auth-internal"),e.getProvider("app-check-internal"),t),"PUBLIC").setMultipleInstances(!0)),d(Qh,"1.1.0",cD),d(Qh,"1.1.0","esm2020");function lm(e){var t="FIREBASE WARNING: "+e;hm.warn(t)}let hm=new tt("@firebase/database-compat");class um{constructor(e){this._delegate=e}cancel(t){l("OnDisconnect.cancel",0,1,arguments.length),Ve("OnDisconnect.cancel","onComplete",t,!0);var e=this._delegate.cancel();return t&&e.then(()=>t(null),e=>t(e)),e}remove(t){l("OnDisconnect.remove",0,1,arguments.length),Ve("OnDisconnect.remove","onComplete",t,!0);var e=this._delegate.remove();return t&&e.then(()=>t(null),e=>t(e)),e}set(e,t){l("OnDisconnect.set",1,2,arguments.length),Ve("OnDisconnect.set","onComplete",t,!0);var r=this._delegate.set(e);return t&&r.then(()=>t(null),e=>t(e)),r}setWithPriority(e,t,r){l("OnDisconnect.setWithPriority",2,3,arguments.length),Ve("OnDisconnect.setWithPriority","onComplete",r,!0);var n=this._delegate.setWithPriority(e,t);return r&&n.then(()=>r(null),e=>r(e)),n}update(t,r){if(l("OnDisconnect.update",1,2,arguments.length),Array.isArray(t)){var n={};for(let e=0;e<t.length;++e)n[""+e]=t[e];t=n,lm("Passing an Array to firebase.database.onDisconnect().update() is deprecated. Use set() if you want to overwrite the existing data, or an Object with integer keys if you really do want to only update some of the children.")}Ve("OnDisconnect.update","onComplete",r,!0);var e=this._delegate.update(t);return r&&e.then(()=>r(null),e=>r(e)),e}}class cm{constructor(e,t){this.committed=e,this.snapshot=t}toJSON(){return l("TransactionResult.toJSON",0,1,arguments.length),{committed:this.committed,snapshot:this.snapshot.toJSON()}}}class dm{constructor(e,t){this._database=e,this._delegate=t}val(){return l("DataSnapshot.val",0,0,arguments.length),this._delegate.val()}exportVal(){return l("DataSnapshot.exportVal",0,0,arguments.length),this._delegate.exportVal()}toJSON(){return l("DataSnapshot.toJSON",0,1,arguments.length),this._delegate.toJSON()}exists(){return l("DataSnapshot.exists",0,0,arguments.length),this._delegate.exists()}child(e){return l("DataSnapshot.child",0,1,arguments.length),e=String(e),Af("DataSnapshot.child","path",e,!1),new dm(this._database,this._delegate.child(e))}hasChild(e){return l("DataSnapshot.hasChild",1,1,arguments.length),Af("DataSnapshot.hasChild","path",e,!1),this._delegate.hasChild(e)}getPriority(){return l("DataSnapshot.getPriority",0,0,arguments.length),this._delegate.priority}forEach(t){return l("DataSnapshot.forEach",1,1,arguments.length),Ve("DataSnapshot.forEach","action",t,!1),this._delegate.forEach(e=>t(new dm(this._database,e)))}hasChildren(){return l("DataSnapshot.hasChildren",0,0,arguments.length),this._delegate.hasChildren()}get key(){return this._delegate.key}numChildren(){return l("DataSnapshot.numChildren",0,0,arguments.length),this._delegate.size}getRef(){return l("DataSnapshot.ref",0,0,arguments.length),new fm(this._database,this._delegate.ref)}get ref(){return this.getRef()}}class pm{constructor(e,t){this.database=e,this._delegate=t}on(e,r,t,n){l("Query.on",2,4,arguments.length),Ve("Query.on","callback",r,!1);let i=pm.getCancelAndContextArgs_("Query.on",t,n);var s=(e,t)=>{r.call(i.context,new dm(this.database,e),t)},a=(s.userCallback=r,s.context=i.context,i.cancel?.bind(i.context));switch(e){case"value":return Ng(this._delegate,s,a),r;case"child_added":return Rg(this._delegate,s,a),r;case"child_removed":return xg(this._delegate,s,a),r;case"child_changed":return Pg(this._delegate,s,a),r;case"child_moved":return Dg(this._delegate,s,a),r;default:throw new Error(Ue("Query.on","eventType")+'must be a valid event type = "value", "child_added", "child_removed", "child_changed", or "child_moved".')}}off(e,t,r){l("Query.off",0,3,arguments.length);var n,i="Query.off",s=e,a=!0;if(!a||void 0!==s)switch(s){case"value":case"child_added":case"child_removed":case"child_changed":case"child_moved":break;default:throw new Error(Ue(i,"eventType")+'must be a valid event type = "value", "child_added", "child_removed", "child_changed", or "child_moved".')}Ve("Query.off","callback",t,!0),qe("Query.off","context",r,!0),t?((n=()=>{}).userCallback=t,n.context=r,Og(this._delegate,e,n)):Og(this._delegate,e)}get(){return Cg(this._delegate).then(e=>new dm(this.database,e))}once(e,n,t,r){l("Query.once",1,4,arguments.length),Ve("Query.once","callback",n,!0);let i=pm.getCancelAndContextArgs_("Query.once",t,r),s=new Z;var a=(e,t)=>{var r=new dm(this.database,e);n&&n.call(i.context,r,t),s.resolve(r)},o=(a.userCallback=n,a.context=i.context,e=>{i.cancel&&i.cancel.call(i.context,e),s.reject(e)});switch(e){case"value":Ng(this._delegate,a,o,{onlyOnce:!0});break;case"child_added":Rg(this._delegate,a,o,{onlyOnce:!0});break;case"child_removed":xg(this._delegate,a,o,{onlyOnce:!0});break;case"child_changed":Pg(this._delegate,a,o,{onlyOnce:!0});break;case"child_moved":Dg(this._delegate,a,o,{onlyOnce:!0});break;default:throw new Error(Ue("Query.once","eventType")+'must be a valid event type = "value", "child_added", "child_removed", "child_changed", or "child_moved".')}return s.promise}limitToFirst(e){return l("Query.limitToFirst",1,1,arguments.length),new pm(this.database,Gg(this._delegate,(e=>{if("number"!=typeof e||Math.floor(e)!==e||e<=0)throw new Error("limitToFirst: First argument must be a positive integer.");return new qg(e)})(e)))}limitToLast(e){return l("Query.limitToLast",1,1,arguments.length),new pm(this.database,Gg(this._delegate,(e=>{if("number"!=typeof e||Math.floor(e)!==e||e<=0)throw new Error("limitToLast: First argument must be a positive integer.");return new Bg(e)})(e)))}orderByChild(e){return l("Query.orderByChild",1,1,arguments.length),new pm(this.database,Gg(this._delegate,(e=>{if("$key"===e)throw new Error('orderByChild: "$key" is invalid. Use orderByKey() instead.');if("$priority"===e)throw new Error('orderByChild: "$priority" is invalid. Use orderByPriority() instead.');if("$value"===e)throw new Error('orderByChild: "$value" is invalid. Use orderByValue() instead.');return Af("orderByChild","path",e,!1),new jg(e)})(e)))}orderByKey(){return l("Query.orderByKey",0,0,arguments.length),new pm(this.database,Gg(this._delegate,new zg))}orderByPriority(){return l("Query.orderByPriority",0,0,arguments.length),new pm(this.database,Gg(this._delegate,new Kg))}orderByValue(){return l("Query.orderByValue",0,0,arguments.length),new pm(this.database,Gg(this._delegate,new Wg))}startAt(e=null,t){return l("Query.startAt",0,2,arguments.length),new pm(this.database,Gg(this._delegate,([e=null,t]=[e,t],vf("startAt","key",t,!0),new Ug(e,t))))}startAfter(e=null,t){return l("Query.startAfter",0,2,arguments.length),new pm(this.database,Gg(this._delegate,(e=e,t=t,vf("startAfter","key",t,!0),new Vg(e,t))))}endAt(e=null,t){return l("Query.endAt",0,2,arguments.length),new pm(this.database,Gg(this._delegate,(e=e,t=t,vf("endAt","key",t,!0),new Lg(e,t))))}endBefore(e=null,t){return l("Query.endBefore",0,2,arguments.length),new pm(this.database,Gg(this._delegate,(e=e,t=t,vf("endBefore","key",t,!0),new Fg(e,t))))}equalTo(e,t){return l("Query.equalTo",1,2,arguments.length),new pm(this.database,Gg(this._delegate,(e=e,t=t,vf("equalTo","key",t,!0),new Hg(e,t))))}toString(){return l("Query.toString",0,0,arguments.length),this._delegate.toString()}toJSON(){return l("Query.toJSON",0,1,arguments.length),this._delegate.toJSON()}isEqual(e){if(l("Query.isEqual",1,1,arguments.length),e instanceof pm)return this._delegate.isEqual(e._delegate);throw new Error("Query.isEqual failed: First argument must be an instance of firebase.database.Query.")}static getCancelAndContextArgs_(e,t,r){var n={cancel:void 0,context:void 0};if(t&&r)n.cancel=t,Ve(e,"cancel",n.cancel,!0),n.context=r,qe(e,"context",n.context,!0);else if(t)if("object"==typeof t&&null!==t)n.context=t;else{if("function"!=typeof t)throw new Error(Ue(e,"cancelOrContext")+" must either be a cancel callback or a context object.");n.cancel=t}return n}get ref(){return new fm(this.database,new _g(this._delegate._repo,this._delegate._path))}}class fm extends pm{constructor(e,t){super(e,new fg(t._repo,t._path,new rd,!1)),this.database=e,this._delegate=t}getKey(){return l("Reference.key",0,0,arguments.length),this._delegate.key}child(e){return l("Reference.child",1,1,arguments.length),"number"==typeof e&&(e=String(e)),new fm(this.database,Ig(this._delegate,e))}getParent(){l("Reference.parent",0,0,arguments.length);var e=this._delegate.parent;return e?new fm(this.database,e):null}getRoot(){return l("Reference.root",0,0,arguments.length),new fm(this.database,this._delegate.root)}set(e,t){l("Reference.set",1,2,arguments.length),Ve("Reference.set","onComplete",t,!0);var r=Tg(this._delegate,e);return t&&r.then(()=>t(null),e=>t(e)),r}update(t,r){if(l("Reference.update",1,2,arguments.length),Array.isArray(t)){var n={};for(let e=0;e<t.length;++e)n[""+e]=t[e];t=n,lm("Passing an Array to Firebase.update() is deprecated. Use set() if you want to overwrite the existing data, or an Object with integer keys if you really do want to only update some of the children.")}yf("Reference.update",this._delegate._path),Ve("Reference.update","onComplete",r,!0);var e=Eg(this._delegate,t);return r&&e.then(()=>r(null),e=>r(e)),e}setWithPriority(e,t,r){l("Reference.setWithPriority",2,3,arguments.length),Ve("Reference.setWithPriority","onComplete",r,!0);var n=((e,t,r)=>{if(yf("setWithPriority",e._path),ff("setWithPriority",t,e._path,!1),mf("setWithPriority",r,!1),".length"===e.key||".keys"===e.key)throw"setWithPriority failed: "+e.key+" is a read-only object.";var n=new Z;return Wf(e._repo,e._path,t,r,n.wrapCallback(()=>{})),n.promise})(this._delegate,e,t);return r&&n.then(()=>r(null),e=>r(e)),n}remove(t){l("Reference.remove",0,1,arguments.length),Ve("Reference.remove","onComplete",t,!0);e=this._delegate,yf("remove",e._path);var e,r=Tg(e,null);return t&&r.then(()=>t(null),e=>t(e)),r}transaction(e,t,r){l("Reference.transaction",1,3,arguments.length),Ve("Reference.transaction","transactionUpdate",e,!1),Ve("Reference.transaction","onComplete",t,!0);var n,i="Reference.transaction",s="applyLocally",a=r,o=!0;if(o&&void 0===a||"boolean"==typeof a)return n=om(this._delegate,e,{applyLocally:r}).then(e=>new cm(e.committed,new dm(this.database,e.snapshot))),t&&n.then(e=>t(null,e.committed,e.snapshot),e=>t(e,!1,null)),n;throw new Error(Ue(i,s)+"must be a boolean.")}setPriority(e,t){l("Reference.setPriority",1,2,arguments.length),Ve("Reference.setPriority","onComplete",t,!0);r=this._delegate,e=e,r=w(r),yf("setPriority",r._path),mf("setPriority",e,!1),n=new Z,Wf(r._repo,oc(r._path,".priority"),e,null,n.wrapCallback(()=>{}));var r,n=n.promise;return t&&n.then(()=>t(null),e=>t(e)),n}push(e,t){l("Reference.push",0,2,arguments.length),Ve("Reference.push","onComplete",t,!0);var r=((e,t)=>{e=w(e),yf("push",e._path),ff("push",t,e._path,!0);var r=Vf(e._repo),r=hg(r),n=Ig(e,r);let i=Ig(e,r),s;return s=null!=t?Tg(i,t).then(()=>i):Promise.resolve(i),n.then=s.then.bind(s),n.catch=s.then.bind(s,void 0),n})(this._delegate,e),n=r.then(e=>new fm(this.database,e)),r=(t&&n.then(()=>t(null),e=>t(e)),new fm(this.database,r));return r.then=n.then.bind(n),r.catch=n.catch.bind(n,void 0),r}onDisconnect(){return yf("Reference.onDisconnect",this._delegate._path),new um(new pg(this._delegate._repo,this._delegate._path))}get key(){return this.getKey()}get parent(){return this.getParent()}get root(){return this.getRoot()}}class gm{constructor(e,t){this._delegate=e,this.app=t,this.INTERNAL={delete:()=>this._delegate._delete(),forceWebSockets:em,forceLongPolling:tm}}useEmulator(e,t,r={}){rm(this._delegate,e,t,r)}ref(e){var t;return l("database.ref",0,1,arguments.length),e instanceof fm?(t=bg(this._delegate,e.toString()),new fm(this,t)):(t=wg(this._delegate,e),new fm(this,t))}refFromURL(e){l("database.refFromURL",1,1,arguments.length);var t=bg(this._delegate,e);return new fm(this,t)}goOffline(){var e;l("database.goOffline",0,0,arguments.length),(e=w(e=this._delegate))._checkNotDeleted("goOffline"),Qf(e._repo)}goOnline(){return l("database.goOnline",0,0,arguments.length),nm(this._delegate)}}gm.ServerValue={TIMESTAMP:sm,increment:e=>({".sv":{increment:e}})};hr=Object.freeze({__proto__:null,initStandalone:function({app:e,url:t,version:r,customAuthImpl:n,customAppCheckImpl:i,namespace:s,nodeAdmin:a=!1}){Jh(r);var o=new Qe("database-standalone"),l=new $e("auth-internal",o);l.setComponent(new u("auth-internal",()=>n,"PRIVATE"));let h=void 0;return i&&(h=new $e("app-check-internal",o)).setComponent(new u("app-check-internal",()=>i,"PRIVATE")),{instance:new gm(Jg(e,l,h,t,a),e),namespace:s}}});let mm=gm.ServerValue;(t=ur).INTERNAL.registerComponent(new u("database-compat",(e,{instanceIdentifier:t})=>{var r=e.getProvider("app-compat").getImmediate(),n=e.getProvider("database").getImmediate({identifier:t});return new gm(n,r)},"PUBLIC").setServiceProps({Reference:fm,Query:pm,Database:gm,DataSnapshot:dm,enableLogging:im,INTERNAL:hr,ServerValue:mm}).setMultipleInstances(!0)),t.registerVersion("@firebase/database-compat","2.1.0");var vm,_m,ym,wm,bm,Im,Tm,Em,Cm,Sm,km,e,Am,cr="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},Nm=(!(function(){var e,t,s;function r(){this.blockSize=-1,this.blockSize=64,this.g=Array(4),this.B=Array(this.blockSize),this.o=this.h=0,this.s()}function n(){}function a(e,t,r){r=r||0;var n=Array(16);if("string"==typeof t)for(var i=0;i<16;++i)n[i]=t.charCodeAt(r++)|t.charCodeAt(r++)<<8|t.charCodeAt(r++)<<16|t.charCodeAt(r++)<<24;else for(i=0;i<16;++i)n[i]=t[r++]|t[r++]<<8|t[r++]<<16|t[r++]<<24;t=e.g[0],r=e.g[1];var i=e.g[2],s=e.g[3],a=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=r+((a=t+(s^r&(i^s))+n[0]+3614090360&4294967295)<<7&4294967295|a>>>25))+((a=s+(i^t&(r^i))+n[1]+3905402710&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[2]+606105819&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[3]+3250441966&4294967295)<<22&4294967295|a>>>10))+((a=t+(s^r&(i^s))+n[4]+4118548399&4294967295)<<7&4294967295|a>>>25))+((a=s+(i^t&(r^i))+n[5]+1200080426&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[6]+2821735955&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[7]+4249261313&4294967295)<<22&4294967295|a>>>10))+((a=t+(s^r&(i^s))+n[8]+1770035416&4294967295)<<7&4294967295|a>>>25))+((a=s+(i^t&(r^i))+n[9]+2336552879&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[10]+4294925233&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[11]+2304563134&4294967295)<<22&4294967295|a>>>10))+((a=t+(s^r&(i^s))+n[12]+1804603682&4294967295)<<7&4294967295|a>>>25))+((a=s+(i^t&(r^i))+n[13]+4254626195&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[14]+2792965006&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[15]+1236535329&4294967295)<<22&4294967295|a>>>10))+((a=t+(i^s&(r^i))+n[1]+4129170786&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[6]+3225465664&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[11]+643717713&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[0]+3921069994&4294967295)<<20&4294967295|a>>>12))+((a=t+(i^s&(r^i))+n[5]+3593408605&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[10]+38016083&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[15]+3634488961&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[4]+3889429448&4294967295)<<20&4294967295|a>>>12))+((a=t+(i^s&(r^i))+n[9]+568446438&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[14]+3275163606&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[3]+4107603335&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[8]+1163531501&4294967295)<<20&4294967295|a>>>12))+((a=t+(i^s&(r^i))+n[13]+2850285829&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[2]+4243563512&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[7]+1735328473&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[12]+2368359562&4294967295)<<20&4294967295|a>>>12))+((a=t+(r^i^s)+n[5]+4294588738&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[8]+2272392833&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[11]+1839030562&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[14]+4259657740&4294967295)<<23&4294967295|a>>>9))+((a=t+(r^i^s)+n[1]+2763975236&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[4]+1272893353&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[7]+4139469664&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[10]+3200236656&4294967295)<<23&4294967295|a>>>9))+((a=t+(r^i^s)+n[13]+681279174&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[0]+3936430074&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[3]+3572445317&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[6]+76029189&4294967295)<<23&4294967295|a>>>9))+((a=t+(r^i^s)+n[9]+3654602809&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[12]+3873151461&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[15]+530742520&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[2]+3299628645&4294967295)<<23&4294967295|a>>>9))+((a=t+(i^(r|~s))+n[0]+4096336452&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[7]+1126891415&4294967295)<<10&4294967295|a>>>22))+((a=i+(t^(s|~r))+n[14]+2878612391&4294967295)<<15&4294967295|a>>>17))+((a=r+(s^(i|~t))+n[5]+4237533241&4294967295)<<21&4294967295|a>>>11))+((a=t+(i^(r|~s))+n[12]+1700485571&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[3]+2399980690&4294967295)<<10&4294967295|a>>>22))+((a=i+(t^(s|~r))+n[10]+4293915773&4294967295)<<15&4294967295|a>>>17))+((a=r+(s^(i|~t))+n[1]+2240044497&4294967295)<<21&4294967295|a>>>11))+((a=t+(i^(r|~s))+n[8]+1873313359&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[15]+4264355552&4294967295)<<10&4294967295|a>>>22))+((a=i+(t^(s|~r))+n[6]+2734768916&4294967295)<<15&4294967295|a>>>17))+((a=r+(s^(i|~t))+n[13]+1309151649&4294967295)<<21&4294967295|a>>>11))+((s=(t=r+((a=t+(i^(r|~s))+n[4]+4149444226&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[11]+3174756917&4294967295)<<10&4294967295|a>>>22))^((i=s+((a=i+(t^(s|~r))+n[2]+718787259&4294967295)<<15&4294967295|a>>>17))|~t))+n[9]+3951481745&4294967295;e.g[0]=e.g[0]+t&4294967295,e.g[1]=e.g[1]+(i+(a<<21&4294967295|a>>>11))&4294967295,e.g[2]=e.g[2]+i&4294967295,e.g[3]=e.g[3]+s&4294967295}function h(e,t){this.h=t;for(var r=[],n=!0,i=e.length-1;0<=i;i--){var s=0|e[i];n&&s==t||(r[i]=s,n=!1)}this.g=r}t=r,s=function(){this.blockSize=-1},n.prototype=s.prototype,t.D=s.prototype,t.prototype=new n,(t.prototype.constructor=t).C=function(e,t,r){for(var n=Array(arguments.length-2),i=2;i<arguments.length;i++)n[i-2]=arguments[i];return s.prototype[t].apply(e,n)},r.prototype.s=function(){this.g[0]=1732584193,this.g[1]=4023233417,this.g[2]=2562383102,this.g[3]=271733878,this.o=this.h=0},r.prototype.u=function(e,t){for(var r=(t=void 0===t?e.length:t)-this.blockSize,n=this.B,i=this.h,s=0;s<t;){if(0==i)for(;s<=r;)a(this,e,s),s+=this.blockSize;if("string"==typeof e){for(;s<t;)if(n[i++]=e.charCodeAt(s++),i==this.blockSize){a(this,n),i=0;break}}else for(;s<t;)if(n[i++]=e[s++],i==this.blockSize){a(this,n),i=0;break}}this.h=i,this.o+=t},r.prototype.v=function(){var e=Array((this.h<56?this.blockSize:2*this.blockSize)-this.h);e[0]=128;for(var t=1;t<e.length-8;++t)e[t]=0;for(var r=8*this.o,t=e.length-8;t<e.length;++t)e[t]=255&r,r/=256;for(this.u(e),e=Array(16),t=r=0;t<4;++t)for(var n=0;n<32;n+=8)e[r++]=this.g[t]>>>n&255;return e};var i={};function o(e){return-128<=e&&e<128?(t=e,r=function(e){return new h([0|e],e<0?-1:0)},n=i,Object.prototype.hasOwnProperty.call(n,t)?n[t]:n[t]=r(t)):new h([0|e],e<0?-1:0);var t,r,n}function u(e){if(isNaN(e)||!isFinite(e))return c;if(e<0)return g(u(-e));for(var t=[],r=1,n=0;r<=e;n++)t[n]=e/r|0,r*=4294967296;return new h(t,0)}var c=o(0),l=o(1),d=o(16777216);function p(e){if(0==e.h){for(var t=0;t<e.g.length;t++)if(0!=e.g[t])return;return 1}}function f(e){return-1==e.h}function g(e){for(var t=e.g.length,r=[],n=0;n<t;n++)r[n]=~e.g[n];return new h(r,~e.h).add(l)}function m(e,t){return e.add(g(t))}function v(e,t){for(;(65535&e[t])!=e[t];)e[t+1]+=e[t]>>>16,e[t]&=65535,t++}function _(e,t){this.g=e,this.h=t}function y(e,t){if(p(t))throw Error("division by zero");if(p(e))return new _(c,c);if(f(e))return t=y(g(e),t),new _(g(t.g),g(t.h));if(f(t))return t=y(e,g(t)),new _(g(t.g),t.h);if(30<e.g.length){if(f(e)||f(t))throw Error("slowDivide_ only works with positive integers.");for(var r=l,n=t;n.l(e)<=0;)r=w(r),n=w(n);for(var i=b(r,1),s=b(n,1),n=b(n,2),r=b(r,2);!p(n);){var a=s.add(n);a.l(e)<=0&&(i=i.add(r),s=a),n=b(n,1),r=b(r,1)}return t=m(e,i.j(t)),new _(i,t)}for(i=c;0<=e.l(t);){for(r=Math.max(1,Math.floor(e.m()/t.m())),n=(n=Math.ceil(Math.log(r)/Math.LN2))<=48?1:Math.pow(2,n-48),a=(s=u(r)).j(t);f(a)||0<a.l(e);)a=(s=u(r-=n)).j(t);p(s)&&(s=l),i=i.add(s),e=m(e,a)}return new _(i,e)}function w(e){for(var t=e.g.length+1,r=[],n=0;n<t;n++)r[n]=e.i(n)<<1|e.i(n-1)>>>31;return new h(r,e.h)}function b(e,t){var r=t>>5;t%=32;for(var n=e.g.length-r,i=[],s=0;s<n;s++)i[s]=0<t?e.i(s+r)>>>t|e.i(s+r+1)<<32-t:e.i(s+r);return new h(i,e.h)}(e=h.prototype).m=function(){if(f(this))return-g(this).m();for(var e=0,t=1,r=0;r<this.g.length;r++){var n=this.i(r);e+=(0<=n?n:4294967296+n)*t,t*=4294967296}return e},e.toString=function(e){if((e=e||10)<2||36<e)throw Error("radix out of range: "+e);if(p(this))return"0";if(f(this))return"-"+g(this).toString(e);for(var t=u(Math.pow(e,6)),r=this,n="";;){var i=y(r,t).g,s=((0<(r=m(r,i.j(t))).g.length?r.g[0]:r.h)>>>0).toString(e);if(p(r=i))return s+n;for(;s.length<6;)s="0"+s;n=s+n}},e.i=function(e){return e<0?0:e<this.g.length?this.g[e]:this.h},e.l=function(e){return f(e=m(this,e))?-1:p(e)?0:1},e.abs=function(){return f(this)?g(this):this},e.add=function(e){for(var t=Math.max(this.g.length,e.g.length),r=[],n=0,i=0;i<=t;i++){var s=n+(65535&this.i(i))+(65535&e.i(i)),a=(s>>>16)+(this.i(i)>>>16)+(e.i(i)>>>16),n=a>>>16;r[i]=(a&=65535)<<16|(s&=65535)}return new h(r,-2147483648&r[r.length-1]?-1:0)},e.j=function(e){if(p(this)||p(e))return c;if(f(this))return f(e)?g(this).j(g(e)):g(g(this).j(e));if(f(e))return g(this.j(g(e)));if(this.l(d)<0&&e.l(d)<0)return u(this.m()*e.m());for(var t=this.g.length+e.g.length,r=[],n=0;n<2*t;n++)r[n]=0;for(n=0;n<this.g.length;n++)for(var i=0;i<e.g.length;i++){var s=this.i(n)>>>16,a=65535&this.i(n),o=e.i(i)>>>16,l=65535&e.i(i);r[2*n+2*i]+=a*l,v(r,2*n+2*i),r[2*n+2*i+1]+=s*l,v(r,2*n+2*i+1),r[2*n+2*i+1]+=a*o,v(r,2*n+2*i+1),r[2*n+2*i+2]+=s*o,v(r,2*n+2*i+2)}for(n=0;n<t;n++)r[n]=r[2*n+1]<<16|r[2*n];for(n=t;n<2*t;n++)r[n]=0;return new h(r,0)},e.A=function(e){return y(this,e).h},e.and=function(e){for(var t=Math.max(this.g.length,e.g.length),r=[],n=0;n<t;n++)r[n]=this.i(n)&e.i(n);return new h(r,this.h&e.h)},e.or=function(e){for(var t=Math.max(this.g.length,e.g.length),r=[],n=0;n<t;n++)r[n]=this.i(n)|e.i(n);return new h(r,this.h|e.h)},e.xor=function(e){for(var t=Math.max(this.g.length,e.g.length),r=[],n=0;n<t;n++)r[n]=this.i(n)^e.i(n);return new h(r,this.h^e.h)},r.prototype.digest=r.prototype.v,r.prototype.reset=r.prototype.s,r.prototype.update=r.prototype.u,_m=r,h.prototype.multiply=h.prototype.j,h.prototype.modulo=h.prototype.A,h.prototype.compare=h.prototype.l,h.prototype.toNumber=h.prototype.m,h.prototype.getBits=h.prototype.i,h.fromNumber=u,h.fromString=function e(t,r){if(0==t.length)throw Error("number format error: empty string");if((r=r||10)<2||36<r)throw Error("radix out of range: "+r);if("-"==t.charAt(0))return g(e(t.substring(1),r));if(0<=t.indexOf("-"))throw Error('number format error: interior "-" character');for(var n=u(Math.pow(r,8)),i=c,s=0;s<t.length;s+=8)var a=Math.min(8,t.length-s),o=parseInt(t.substring(s,s+a),r),i=(a<8?(a=u(Math.pow(r,a)),i.j(a)):i=i.j(n)).add(u(o));return i},vm=h}).apply(void 0!==cr?cr:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{}),"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{});!(function(){var e,R="function"==typeof Object.defineProperties?Object.defineProperty:function(e,t,r){return e!=Array.prototype&&e!=Object.prototype&&(e[t]=r.value),e};var P=(e=>{e=["object"==typeof globalThis&&globalThis,e,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof Nm&&Nm];for(var t=0;t<e.length;++t){var r=e[t];if(r&&r.Math==Math)return r}throw Error("Cannot find global object")})(this);var t="Array.prototype.values",r=function(e){return e||function(){return r=function(e,t){return t},(t=this)instanceof String&&(t+=""),n=0,i=!1,(e={next:function(){var e;return!i&&n<t.length?(e=n++,{value:r(e,t[e]),done:!1}):{done:i=!0,value:void 0}}})[Symbol.iterator]=function(){return e},e;var t,r,n,i,e}};if(r)e:{var n=P;t=t.split(".");for(var i=0;i<t.length-1;i++){var U=t[i];if(!(U in n))break e;n=n[U]}(r=r(i=n[t=t[t.length-1]]))!=i&&null!=r&&R(n,t,{configurable:!0,writable:!0,value:r})}var V=V||{},D=this||self;function q(e){var t=typeof e;return"array"==(t="object"!=t?t:e?Array.isArray(e)?"array":t:"null")||"object"==t&&"number"==typeof e.length}function h(e){var t=typeof e;return"object"==t&&null!=e||"function"==t}function B(e,t,r){return e.call.apply(e.bind,arguments)}function j(t,r,e){var n;if(t)return 2<arguments.length?(n=Array.prototype.slice.call(arguments,2),function(){var e=Array.prototype.slice.call(arguments);return Array.prototype.unshift.apply(e,n),t.apply(r,e)}):function(){return t.apply(r,arguments)};throw Error()}function m(e,t,r){return(m=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?B:j).apply(null,arguments)}function z(t){var r=Array.prototype.slice.call(arguments,1);return function(){var e=r.slice();return e.push.apply(e,arguments),t.apply(this,e)}}function s(e,s){function t(){}t.prototype=s.prototype,e.aa=s.prototype,e.prototype=new t,(e.prototype.constructor=e).Qb=function(e,t,r){for(var n=Array(arguments.length-2),i=2;i<arguments.length;i++)n[i-2]=arguments[i];return s.prototype[t].apply(e,n)}}function K(t){var r=t.length;if(0<r){var n=Array(r);for(let e=0;e<r;e++)n[e]=t[e];return n}return[]}function W(t){for(let e=1;e<arguments.length;e++){var r=arguments[e];if(q(r)){var n=t.length||0,i=r.length||0;t.length=n+i;for(let e=0;e<i;e++)t[n+e]=r[e]}else t.push(r)}}function x(e){return/^[\s\xa0]*$/.test(e)}function a(){var e=D.navigator;return(e=e&&e.userAgent)||""}function H(e){return H[" "](e),e}H[" "]=function(){};var G=!(-1==a().indexOf("Gecko")||-1!=a().toLowerCase().indexOf("webkit")&&-1==a().indexOf("Edge")||-1!=a().indexOf("Trident")||-1!=a().indexOf("MSIE")||-1!=a().indexOf("Edge"));function $(e,t,r){for(var n in e)t.call(r,e[n],n,e)}function Q(e){var t,r={};for(t in e)r[t]=e[t];return r}let Y="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function J(t){let r,n;for(let i=1;i<arguments.length;i++){for(r in n=arguments[i])t[r]=n[r];for(let e=0;e<Y.length;e++)r=Y[e],Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}}var X=new class{constructor(e,t){this.i=e,this.j=t,this.h=0,this.g=null}get(){let e;return 0<this.h?(this.h--,e=this.g,this.g=e.next,e.next=null):e=this.i(),e}}(()=>new Z,e=>e.reset());class Z{constructor(){this.next=this.g=this.h=null}set(e,t){this.h=e,this.g=t,this.next=null}reset(){this.next=this.g=this.h=null}}let o,l=!1,ee=new class{constructor(){this.h=this.g=null}add(e,t){var r=X.get();r.set(e,t),this.h?this.h.next=r:this.g=r,this.h=r}},te=()=>{let e=D.Promise.resolve(void 0);o=()=>{e.then(re)}};var re=()=>{for(var e;e=(()=>{let e=ee,t=null;return e.g&&(t=e.g,e.g=e.g.next,e.g||(e.h=null),t.next=null),t})();){try{e.h.call(e.g)}catch(e){(e=>{D.setTimeout(()=>{throw e},0)})(e)}var t=X;t.j(e),t.h<100&&(t.h++,e.next=t.g,t.g=e)}l=!1};function u(){this.s=this.s,this.C=this.C}function c(e,t){this.type=e,this.g=this.target=t,this.defaultPrevented=!1}u.prototype.s=!1,u.prototype.ma=function(){this.s||(this.s=!0,this.N())},u.prototype.N=function(){if(this.C)for(;this.C.length;)this.C.shift()()},c.prototype.h=function(){this.defaultPrevented=!0};var ne=(()=>{if(!D.addEventListener||!Object.defineProperty)return!1;var e=!1,t=Object.defineProperty({},"passive",{get:function(){e=!0}});try{var r=()=>{};D.addEventListener("test",r,t),D.removeEventListener("test",r,t)}catch(e){}return e})();function d(e,t){if(c.call(this,e?e.type:""),this.relatedTarget=this.g=this.target=null,this.button=this.screenY=this.screenX=this.clientY=this.clientX=0,this.key="",this.metaKey=this.shiftKey=this.altKey=this.ctrlKey=!1,this.state=null,this.pointerId=0,this.pointerType="",this.i=null,e){var r=this.type=e.type,n=e.changedTouches&&e.changedTouches.length?e.changedTouches[0]:null;if(this.target=e.target||e.srcElement,this.g=t,t=e.relatedTarget){if(G){e:{try{H(t.nodeName);var i=!0;break e}catch(e){}i=!1}i||(t=null)}}else"mouseover"==r?t=e.fromElement:"mouseout"==r&&(t=e.toElement);this.relatedTarget=t,n?(this.clientX=void 0!==n.clientX?n.clientX:n.pageX,this.clientY=void 0!==n.clientY?n.clientY:n.pageY,this.screenX=n.screenX||0,this.screenY=n.screenY||0):(this.clientX=void 0!==e.clientX?e.clientX:e.pageX,this.clientY=void 0!==e.clientY?e.clientY:e.pageY,this.screenX=e.screenX||0,this.screenY=e.screenY||0),this.button=e.button,this.key=e.key||"",this.ctrlKey=e.ctrlKey,this.altKey=e.altKey,this.shiftKey=e.shiftKey,this.metaKey=e.metaKey,this.pointerId=e.pointerId||0,this.pointerType="string"==typeof e.pointerType?e.pointerType:ie[e.pointerType]||"",this.state=e.state,(this.i=e).defaultPrevented&&d.aa.h.call(this)}}s(d,c);var ie={2:"touch",3:"pen",4:"mouse"},p=(d.prototype.h=function(){d.aa.h.call(this);var e=this.i;e.preventDefault?e.preventDefault():e.returnValue=!1},"closure_listenable_"+(1e6*Math.random()|0)),se=0;function ae(e,t,r,n,i){this.listener=e,this.proxy=null,this.src=t,this.type=r,this.capture=!!n,this.ha=i,this.key=++se,this.da=this.fa=!1}function oe(e){e.da=!0,e.listener=null,e.proxy=null,e.src=null,e.ha=null}function le(e){this.src=e,this.g={},this.h=0}function he(e,t){var r,n,i,s=t.type;s in e.g&&(r=e.g[s],(i=0<=(n=Array.prototype.indexOf.call(r,t,void 0)))&&Array.prototype.splice.call(r,n,1),i)&&(oe(t),0==e.g[s].length)&&(delete e.g[s],e.h--)}function ue(e,t,r,n){for(var i=0;i<e.length;++i){var s=e[i];if(!s.da&&s.listener==t&&s.capture==!!r&&s.ha==n)return i}return-1}le.prototype.add=function(e,t,r,n,i){var s=e.toString(),a=((e=this.g[s])||(e=this.g[s]=[],this.h++),ue(e,t,n,i));return-1<a?(t=e[a],r||(t.fa=!1)):((t=new ae(t,this.src,s,!!n,i)).fa=r,e.push(t)),t};var ce="closure_lm_"+(1e6*Math.random()|0),de={};function pe(e,t,r,n,i){if(n&&n.once)return function e(t,r,n,i,s){if(Array.isArray(r)){for(var a=0;a<r.length;a++)e(t,r[a],n,i,s);return null}n=we(n);return t&&t[p]?t.L(r,n,h(i)?!!i.capture:!!i,s):fe(t,r,n,!0,i,s)}(e,t,r,n,i);if(Array.isArray(t)){for(var s=0;s<t.length;s++)pe(e,t[s],r,n,i);return null}return r=we(r),e&&e[p]?e.K(t,r,h(n)?!!n.capture:!!n,i):fe(e,t,r,!1,n,i)}function fe(e,t,r,n,i,s){if(!t)throw Error("Invalid event type");var a=h(i)?!!i.capture:!!i,o=_e(e);if(o||(e[ce]=o=new le(e)),!(r=o.add(t,r,n,a,s)).proxy)if(n=(()=>{let r=ve;return function e(t){return r.call(e.src,e.listener,t)}})(),(r.proxy=n).src=e,n.listener=r,e.addEventListener)void 0===(i=ne?i:a)&&(i=!1),e.addEventListener(t.toString(),n,i);else if(e.attachEvent)e.attachEvent(me(t.toString()),n);else{if(!e.addListener||!e.removeListener)throw Error("addEventListener and attachEvent are unavailable.");e.addListener(n)}return r}function ge(e){var t,r,n;"number"!=typeof e&&e&&!e.da&&((t=e.src)&&t[p]?he(t.i,e):(r=e.type,n=e.proxy,t.removeEventListener?t.removeEventListener(r,n,e.capture):t.detachEvent?t.detachEvent(me(r),n):t.addListener&&t.removeListener&&t.removeListener(n),(r=_e(t))?(he(r,e),0==r.h&&(r.src=null,t[ce]=null)):oe(e)))}function me(e){return e in de?de[e]:de[e]="on"+e}function ve(e,t){var r,n;return e=!!e.da||(t=new d(t,this),r=e.listener,n=e.ha||e.src,e.fa&&ge(e),r.call(n,t))}function _e(e){return(e=e[ce])instanceof le?e:null}var ye="__closure_events_fn_"+(1e9*Math.random()>>>0);function we(t){return"function"==typeof t?t:(t[ye]||(t[ye]=function(e){return t.handleEvent(e)}),t[ye])}function f(){u.call(this),this.i=new le(this),(this.M=this).F=null}function g(e,t){var r,n=e.F;if(n)for(r=[];n;n=n.F)r.push(n);if(e=e.M,n=t.type||t,"string"==typeof t?t=new c(t,e):t instanceof c?t.target=t.target||e:(a=t,J(t=new c(n,e),a)),a=!0,r)for(var i=r.length-1;0<=i;i--)var s=t.g=r[i],a=be(s,n,!0,t)&&a;if(a=be(s=t.g=e,n,!0,t)&&a,a=be(s,n,!1,t)&&a,r)for(i=0;i<r.length;i++)a=be(s=t.g=r[i],n,!1,t)&&a}function be(e,t,r,n){if(!(t=e.i.g[String(t)]))return!0;t=t.concat();for(var i=!0,s=0;s<t.length;++s){var a,o,l=t[s];l&&!l.da&&l.capture==r&&(a=l.listener,o=l.ha||l.src,l.fa&&he(e.i,l),i=!1!==a.call(o,n)&&i)}return i&&!n.defaultPrevented}function Ie(e,t,r){if("function"==typeof e)r&&(e=m(e,r));else{if(!e||"function"!=typeof e.handleEvent)throw Error("Invalid listener argument");e=m(e.handleEvent,e)}return 2147483647<Number(t)?-1:D.setTimeout(e,t||0)}s(f,u),f.prototype[p]=!0,f.prototype.removeEventListener=function(e,t,r,n){!function e(t,r,n,i,s){if(Array.isArray(r))for(var a=0;a<r.length;a++)e(t,r[a],n,i,s);else i=h(i)?!!i.capture:!!i,n=we(n),t&&t[p]?(t=t.i,(r=String(r).toString())in t.g&&-1<(n=ue(a=t.g[r],n,i,s))&&(oe(a[n]),Array.prototype.splice.call(a,n,1),0==a.length)&&(delete t.g[r],t.h--)):(t=t&&_e(t))&&(r=t.g[r.toString()],n=(t=-1)<(t=r?ue(r,n,i,s):t)?r[t]:null)&&ge(n)}(this,e,t,r,n)},f.prototype.N=function(){if(f.aa.N.call(this),this.i){var e,t=this.i;for(e in t.g){for(var r=t.g[e],n=0;n<r.length;n++)oe(r[n]);delete t.g[e],t.h--}}this.F=null},f.prototype.K=function(e,t,r,n){return this.i.add(String(e),t,!1,r,n)},f.prototype.L=function(e,t,r,n){return this.i.add(String(e),t,!0,r,n)};class Te extends u{constructor(e,t){super(),this.m=e,this.l=t,this.h=null,this.i=!1,this.g=null}j(e){this.h=arguments,this.g?this.i=!0:function e(t){t.g=Ie(()=>{t.g=null,t.i&&(t.i=!1,e(t))},t.l);var r=t.h;t.h=null,t.m.apply(null,r)}(this)}N(){super.N(),this.g&&(D.clearTimeout(this.g),this.g=null,this.i=!1,this.h=null)}}function v(e){u.call(this),this.h=e,this.g={}}s(v,u);var Ee=[];function Ce(e){$(e.g,function(e,t){this.g.hasOwnProperty(t)&&ge(e)},e),e.g={}}v.prototype.N=function(){v.aa.N.call(this),Ce(this)},v.prototype.handleEvent=function(){throw Error("EventHandler.handleEvent not implemented")};var Se=D.JSON.stringify,ke=D.JSON.parse,Ae=class{stringify(e){return D.JSON.stringify(e,void 0)}parse(e){return D.JSON.parse(e,void 0)}};function Ne(){}function Re(e){return e.h||(e.h=e.i())}function Pe(){}Ne.prototype.h=null;var De={OPEN:"a",kb:"b",Ja:"c",wb:"d"};function xe(){c.call(this,"d")}function Oe(){c.call(this,"c")}s(xe,c),s(Oe,c);var _={},Me=null;function Le(){return Me=Me||new f}function Fe(e){c.call(this,_.La,e)}function Ue(){var e=Le();g(e,new Fe(e))}function Ve(e,t){c.call(this,_.STAT_EVENT,e),this.stat=t}function O(e){var t=Le();g(t,new Ve(t,e))}function qe(e,t){c.call(this,_.Ma,e),this.size=t}function Be(e,t){if("function"!=typeof e)throw Error("Fn must not be null and must be a function");return D.setTimeout(function(){e()},t)}function je(){this.g=!0}function M(e,t,r,n){e.info(function(){return"XMLHTTP TEXT ("+t+"): "+((e,t)=>{if(!e.g)return t;if(!t)return null;try{var r=JSON.parse(t);if(r)for(e=0;e<r.length;e++)if(Array.isArray(r[e])){var n=r[e];if(!(n.length<2)){var i=n[1];if(Array.isArray(i)&&!(i.length<1)){var s=i[0];if("noop"!=s&&"stop"!=s&&"close"!=s)for(var a=1;a<i.length;a++)i[a]=""}}}return Se(r)}catch(e){return t}})(e,r)+(n?" "+n:"")})}_.La="serverreachability",s(Fe,c),_.STAT_EVENT="statevent",s(Ve,c),_.Ma="timingevent",s(qe,c),je.prototype.xa=function(){this.g=!1},je.prototype.info=function(){};var ze={NO_ERROR:0,gb:1,tb:2,sb:3,nb:4,rb:5,ub:6,Ia:7,TIMEOUT:8,xb:9},Ke={lb:"complete",Hb:"success",Ja:"error",Ia:"abort",zb:"ready",Ab:"readystatechange",TIMEOUT:"timeout",vb:"incrementaldata",yb:"progress",ob:"downloadprogress",Pb:"uploadprogress"};function We(){}function y(e,t,r,n){this.j=e,this.i=t,this.l=r,this.R=n||1,this.U=new v(this),this.I=45e3,this.H=null,this.o=!1,this.m=this.A=this.v=this.L=this.F=this.S=this.B=null,this.D=[],this.g=null,this.C=0,this.s=this.u=null,this.X=-1,this.J=!1,this.O=0,this.M=null,this.W=this.K=this.T=this.P=!1,this.h=new He}function He(){this.i=null,this.g="",this.h=!1}s(We,Ne),We.prototype.g=function(){return new XMLHttpRequest},We.prototype.i=function(){return{}};var Ge=new We,$e={},Qe={};function Ye(e,t,r){e.L=1,e.v=vt(b(t)),e.m=r,e.P=!0,Je(e,null)}function Je(e,t){e.F=Date.now(),Ze(e),e.A=b(e.v);var r=e.A,n=e.R,i=(Array.isArray(n)||(n=[String(n)]),Rt(r.i,"t",n),e.C=0,r=e.j.J,e.h=new He,e.g=cr(e.j,r?t:null,!e.m),0<e.O&&(e.M=new Te(m(e.Y,e,e.g),e.O)),t=e.U,r=e.g,n=e.ca,"readystatechange");Array.isArray(i)||(i&&(Ee[0]=i.toString()),i=Ee);for(var a,o,l,h,u,c,s=0;s<i.length;s++){var d=pe(r,i[s],n||t.handleEvent,!1,t.h||t);if(!d)break;t.g[d.key]=d}t=e.H?Q(e.H):{},e.m?(e.u||(e.u="POST"),t["Content-Type"]="application/x-www-form-urlencoded",e.g.ea(e.A,e.u,e.m,t)):(e.u="GET",e.g.ea(e.A,e.u,null,t)),Ue(),a=e.i,o=e.u,l=e.A,h=e.l,u=e.R,c=e.m,a.info(function(){if(a.g)if(c)for(var e="",t=c.split("&"),r=0;r<t.length;r++){var n,i,s=t[r].split("=");1<s.length&&(n=s[0],s=s[1],e=2<=(i=n.split("_")).length&&"type"==i[1]?e+(n+"=")+s+"&":e+(n+"=redacted&"))}else e=null;else e=c;return"XMLHTTP REQ ("+h+") [attempt "+u+"]: "+o+"\n"+l+"\n"+e})}function Xe(e){return e.g&&"GET"==e.u&&2!=e.L&&e.j.Ca}function Ze(e){e.S=Date.now()+e.I,et(e,e.I)}function et(e,t){if(null!=e.B)throw Error("WatchDog timer not null");e.B=Be(m(e.ba,e),t)}function tt(e){e.B&&(D.clearTimeout(e.B),e.B=null)}function rt(e){0==e.j.G||e.J||or(e.j,e)}function L(e){tt(e);var t=e.M;t&&"function"==typeof t.ma&&t.ma(),e.M=null,Ce(e.U),e.g&&(t=e.g,e.g=null,t.abort(),t.ma())}function nt(e,t){try{var r=e.j;if(0!=r.G&&(r.g==e||lt(r.h,e)))if(!e.K&<(r.h,e)&&3==r.G){try{var n=r.Da.g.parse(t)}catch(e){n=null}if(Array.isArray(n)&&3==n.length){var i=n;if(0==i[0]){e:if(!r.u){if(r.g){if(!(r.g.F+3e3<e.F))break e;ar(r),Yt(r)}nr(r),O(18)}}else r.za=i[1],0<r.za-r.T&&i[2]<37500&&r.F&&0==r.v&&!r.C&&(r.C=Be(m(r.Za,r),6e3));if(ot(r.h)<=1&&r.ca){try{r.ca()}catch(e){}r.ca=void 0}}else k(r,11)}else if(!e.K&&r.g!=e||ar(r),!x(t))for(i=r.Da.g.parse(t),t=0;t<i.length;t++){var s,a,o,l,h,u,c,d,p,f,g=i[t];r.T=g[0],g=g[1],2==r.G?"c"==g[0]?(r.K=g[1],r.ia=g[2],null!=(s=g[3])&&(r.la=s,r.j.info("VER="+r.la)),null!=(a=g[4])&&(r.Aa=a,r.j.info("SVER="+r.Aa)),null!=(o=g[5])&&"number"==typeof o&&0<o&&(n=1.5*o,r.L=n,r.j.info("backChannelRequestTimeoutMs_="+n)),n=r,(l=e.g)&&(!(h=l.g?l.g.getResponseHeader("X-Client-Wire-Protocol"):null)||(u=n.h).g||-1==h.indexOf("spdy")&&-1==h.indexOf("quic")&&-1==h.indexOf("h2")||(u.j=u.l,u.g=new Set,u.h&&(ht(u,u.h),u.h=null)),n.D)&&(c=l.g?l.g.getResponseHeader("X-HTTP-Session-Id"):null)&&(n.ya=c,I(n.I,n.D,c)),r.G=3,r.l&&r.l.ua(),r.ba&&(r.R=Date.now()-e.F,r.j.info("Handshake RTT: "+r.R+"ms")),d=e,(n=r).qa=ur(n,n.J?n.ia:null,n.W),d.K?(ut(n.h,d),p=d,(f=n.L)&&(p.I=f),p.B&&(tt(p),Ze(p)),n.g=d):rr(n),0<r.i.length&&Xt(r)):"stop"!=g[0]&&"close"!=g[0]||k(r,7):3==r.G&&("stop"==g[0]||"close"==g[0]?"stop"==g[0]?k(r,7):Qt(r):"noop"!=g[0]&&r.l&&r.l.ta(g),r.v=0)}Ue()}catch(e){}}y.prototype.ca=function(e){e=e.target;var t=this.M;t&&3==F(e)?t.j():this.Y(e)},y.prototype.Y=function(e){try{if(e==this.g)e:{var t=F(this.g),r=this.g.Ba();this.g.Z();if(!(t<3)&&(3!=t||this.g&&(this.h.h||this.g.oa()||Ht(this.g)))){this.J||4!=t||7==r||Ue(),tt(this);var n=this.g.Z();this.X=n;t:if(Xe(this)){var i=Ht(this.g),s=(e="",i.length),a=4==F(this.g);if(!this.h.i){if("undefined"==typeof TextDecoder){L(this),rt(this);var o="";break t}this.h.i=new D.TextDecoder}for(r=0;r<s;r++)this.h.h=!0,e+=this.h.i.decode(i[r],{stream:!(a&&r==s-1)});i.length=0,this.h.g+=e,this.C=0,o=this.h.g}else o=this.g.oa();if(this.o=200==n,C=this.i,S=this.u,k=this.A,A=this.l,N=this.R,R=t,P=n,C.info(function(){return"XMLHTTP RESP ("+A+") [ attempt "+N+"]: "+S+"\n"+k+"\n"+R+" "+P}),this.o){if(this.T&&!this.K){t:{if(this.g){var l,h=this.g;if((l=h.g?h.g.getResponseHeader("X-HTTP-Initial-Response"):null)&&!x(l)){var u=l;break t}}u=null}if(!(n=u)){this.o=!1,this.s=3,O(12),L(this),rt(this);break e}M(this.i,this.l,n,"Initial handshake response via X-HTTP-Initial-Response"),this.K=!0,nt(this,n)}if(this.P){for(var c,d,n=!0;!this.J&&this.C<o.length;){if(I=o,E=T=void 0,T=(b=this).C,(c=-1==(E=I.indexOf("\n",T))?Qe:(T=Number(I.substring(T,E)),isNaN(T)?$e:(E+=1)+T>I.length?Qe:(I=I.slice(E,E+T),b.C=E+T,I)))==Qe){4==t&&(this.s=4,O(14),n=!1),M(this.i,this.l,null,"[Incomplete Response]");break}if(c==$e){this.s=4,O(15),M(this.i,this.l,o,"[Invalid Chunk]"),n=!1;break}M(this.i,this.l,c,null),nt(this,c)}Xe(this)&&0!=this.C&&(this.h.g=this.h.g.slice(this.C),this.C=0),4!=t||0!=o.length||this.h.h||(this.s=1,O(16),n=!1),this.o=this.o&&n,n?0<o.length&&!this.W&&(this.W=!0,(d=this.j).g==this)&&d.ba&&!d.M&&(d.j.info("Great, no buffering proxy detected. Bytes received: "+o.length),ir(d),d.M=!0,O(11)):(M(this.i,this.l,o,"[Invalid Chunked Response]"),L(this),rt(this))}else M(this.i,this.l,o,null),nt(this,o);4==t&&L(this),this.o&&!this.J&&(4==t?or(this.j,this):(this.o=!1,Ze(this)))}else{{var p=this.g;var f,g,m,v={};p=(p.g&&2<=F(p)&&p.g.getAllResponseHeaders()||"").split("\r\n");for(let e=0;e<p.length;e++)x(p[e])||(f=(e=>{for(var t=1,r=(e=e.split(":"),[]);0<t&&e.length;)r.push(e.shift()),t--;return e.length&&r.push(e.join(":")),r})(p[e]),g=f[0],"string"==typeof(f=f[1])&&(f=f.trim(),m=v[g]||[],(v[g]=m).push(f)));var _,y=v,w=function(e){return e.join(", ")};for(_ in y)w.call(void 0,y[_],_,y)}400==n&&0<o.indexOf("Unknown SID")?(this.s=3,O(12)):(this.s=0,O(13)),L(this),rt(this)}}}}catch(e){}var b,I,T,E,C,S,k,A,N,R,P},y.prototype.cancel=function(){this.J=!0,L(this)},y.prototype.ba=function(){this.B=null;var e,t,r=Date.now();0<=r-this.S?(e=this.i,t=this.A,e.info(function(){return"TIMEOUT: "+t}),2!=this.L&&(Ue(),O(17)),L(this),this.s=2,rt(this)):et(this,this.S-r)};var it=class{constructor(e,t){this.g=e,this.map=t}};function st(e){this.l=e||10,e=D.PerformanceNavigationTiming?0<(e=D.performance.getEntriesByType("navigation")).length&&("hq"==e[0].nextHopProtocol||"h2"==e[0].nextHopProtocol):!!(D.chrome&&D.chrome.loadTimes&&D.chrome.loadTimes()&&D.chrome.loadTimes().wasFetchedViaSpdy),this.j=e?this.l:1,this.g=null,1<this.j&&(this.g=new Set),this.h=null,this.i=[]}function at(e){return e.h||e.g&&e.g.size>=e.j}function ot(e){return e.h?1:e.g?e.g.size:0}function lt(e,t){return e.h?e.h==t:e.g&&e.g.has(t)}function ht(e,t){e.g?e.g.add(t):e.h=t}function ut(e,t){e.h&&e.h==t?e.h=null:e.g&&e.g.has(t)&&e.g.delete(t)}function ct(t){if(null!=t.h)return t.i.concat(t.h.D);if(null==t.g||0===t.g.size)return K(t.i);{let e=t.i;for(var r of t.g.values())e=e.concat(r.D);return e}}function dt(e,t){if(e.forEach&&"function"==typeof e.forEach)e.forEach(t,void 0);else if(q(e)||"string"==typeof e)Array.prototype.forEach.call(e,t,void 0);else for(var r=(e=>{if(e.na&&"function"==typeof e.na)return e.na();if(!e.V||"function"!=typeof e.V){if("undefined"!=typeof Map&&e instanceof Map)return Array.from(e.keys());if(!("undefined"!=typeof Set&&e instanceof Set)){if(q(e)||"string"==typeof e){var t=[];e=e.length;for(var r=0;r<e;r++)t.push(r)}else for(var n in t=[],r=0,e)t[r++]=n;return t}}})(e),n=(e=>{if(e.V&&"function"==typeof e.V)return e.V();if("undefined"!=typeof Map&&e instanceof Map||"undefined"!=typeof Set&&e instanceof Set)return Array.from(e.values());if("string"==typeof e)return e.split("");if(q(e))for(var t=[],r=e.length,n=0;n<r;n++)t.push(e[n]);else for(n in t=[],r=0,e)t[r++]=e[n];return t})(e),i=n.length,s=0;s<i;s++)t.call(void 0,n[s],r&&r[s],e)}st.prototype.cancel=function(){if(this.i=ct(this),this.h)this.h.cancel(),this.h=null;else if(this.g&&0!==this.g.size){for(var e of this.g.values())e.cancel();this.g.clear()}};var pt=RegExp("^(?:([^:/?#.]+):)?(?://(?:([^\\\\/?#]*)@)?([^\\\\/?#]*?)(?::([0-9]+))?(?=[\\\\/?#]|$))?([^?#]+)?(?:\\?([^#]*))?(?:#([\\s\\S]*))?$");function w(e){var t,r;this.g=this.o=this.j="",this.s=null,this.m=this.l="",this.h=!1,e instanceof w?(this.h=e.h,ft(this,e.j),this.o=e.o,this.g=e.g,gt(this,e.s),this.l=e.l,t=e.i,(r=new kt).i=t.i,t.g&&(r.g=new Map(t.g),r.h=t.h),mt(this,r),this.m=e.m):e&&(t=String(e).match(pt))?(this.h=!1,ft(this,t[1]||"",!0),this.o=_t(t[2]||""),this.g=_t(t[3]||"",!0),gt(this,t[4]),this.l=_t(t[5]||"",!0),mt(this,t[6]||"",!0),this.m=_t(t[7]||"")):(this.h=!1,this.i=new kt(null,this.h))}function b(e){return new w(e)}function ft(e,t,r){e.j=r?_t(t,!0):t,e.j&&(e.j=e.j.replace(/:$/,""))}function gt(e,t){if(t){if(t=Number(t),isNaN(t)||t<0)throw Error("Bad port number "+t);e.s=t}else e.s=null}function mt(e,t,r){var n,i;t instanceof kt?(e.i=t,n=e.i,(i=e.h)&&!n.j&&(T(n),n.i=null,n.g.forEach(function(e,t){var r=t.toLowerCase();t!=r&&(At(this,t),Rt(this,r,e))},n)),n.j=i):(r||(t=yt(t,Ct)),e.i=new kt(t,e.h))}function I(e,t,r){e.i.set(t,r)}function vt(e){return I(e,"zx",Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^Date.now()).toString(36)),e}function _t(e,t){return e?t?decodeURI(e.replace(/%25/g,"%2525")):decodeURIComponent(e):""}function yt(e,t,r){return"string"==typeof e?(e=encodeURI(e).replace(t,wt),e=r?e.replace(/%25([0-9a-fA-F]{2})/g,"%$1"):e):null}function wt(e){return"%"+((e=e.charCodeAt(0))>>4&15).toString(16)+(15&e).toString(16)}w.prototype.toString=function(){var e=[],t=this.j,r=(t&&e.push(yt(t,It,!0),":"),this.g);return!r&&"file"!=t||(e.push("//"),(t=this.o)&&e.push(yt(t,It,!0),"@"),e.push(encodeURIComponent(String(r)).replace(/%25([0-9a-fA-F]{2})/g,"%$1")),null==(r=this.s))||e.push(":",String(r)),(r=this.l)&&(this.g&&"/"!=r.charAt(0)&&e.push("/"),e.push(yt(r,"/"==r.charAt(0)?Et:Tt,!0))),(r=this.i.toString())&&e.push("?",r),(r=this.m)&&e.push("#",yt(r,St)),e.join("")};var bt,It=/[#\/\?@]/g,Tt=/[#\?:]/g,Et=/[#\?]/g,Ct=/[#\?@]/g,St=/#/g;function kt(e,t){this.h=this.g=null,this.i=e||null,this.j=!!t}function T(r){if(!r.g&&(r.g=new Map,r.h=0,r.i)){var e=r.i,t=function(e,t){r.add(decodeURIComponent(e.replace(/\+/g," ")),t)};if(e){e=e.split("&");for(var n=0;n<e.length;n++){var i,s=e[n].indexOf("="),a=null;0<=s?(i=e[n].substring(0,s),a=e[n].substring(s+1)):i=e[n],t(i,a?decodeURIComponent(a.replace(/\+/g," ")):"")}}}}function At(e,t){T(e),t=E(e,t),e.g.has(t)&&(e.i=null,e.h-=e.g.get(t).length,e.g.delete(t))}function Nt(e,t){return T(e),t=E(e,t),e.g.has(t)}function Rt(e,t,r){At(e,t),0<r.length&&(e.i=null,e.g.set(E(e,t),K(r)),e.h+=r.length)}function E(e,t){return t=String(t),t=e.j?t.toLowerCase():t}function C(e,t,r,n,i){try{i&&(i.onload=null,i.onerror=null,i.onabort=null,i.ontimeout=null),n(r)}catch(e){}}function Pt(){this.g=new Ae}function Dt(e){this.l=e.Ub||null,this.j=e.eb||!1}function xt(e,t){f.call(this),this.D=e,this.o=t,this.m=void 0,this.status=this.readyState=0,this.responseType=this.responseText=this.response=this.statusText="",this.onreadystatechange=null,this.u=new Headers,this.h=null,this.B="GET",this.A="",this.g=!1,this.v=this.j=this.l=null}function Ot(e){e.j.read().then(e.Pa.bind(e)).catch(e.ga.bind(e))}function Mt(e){e.readyState=4,e.l=null,e.j=null,e.v=null,Lt(e)}function Lt(e){e.onreadystatechange&&e.onreadystatechange.call(e)}function Ft(e){let r="";return $(e,function(e,t){r=(r=r+t+":")+e+"\r\n"}),r}function Ut(e,t,r){e:{for(n in r){var n=!1;break e}n=!0}n||(r=Ft(r),"string"==typeof e?null!=r&&encodeURIComponent(String(r)):I(e,t,r))}function S(e){f.call(this),this.headers=new Map,this.o=e||null,this.h=!1,this.v=this.g=null,this.D="",this.m=0,this.l="",this.j=this.B=this.u=this.A=!1,this.I=null,this.H="",this.J=!1}(e=kt.prototype).add=function(e,t){T(this),this.i=null,e=E(this,e);var r=this.g.get(e);return r||this.g.set(e,r=[]),r.push(t),this.h+=1,this},e.forEach=function(r,n){T(this),this.g.forEach(function(e,t){e.forEach(function(e){r.call(n,e,t,this)},this)},this)},e.na=function(){T(this);var t=Array.from(this.g.values()),r=Array.from(this.g.keys()),n=[];for(let s=0;s<r.length;s++){var i=t[s];for(let e=0;e<i.length;e++)n.push(r[s])}return n},e.V=function(t){T(this);let r=[];if("string"==typeof t)Nt(this,t)&&(r=r.concat(this.g.get(E(this,t))));else{t=Array.from(this.g.values());for(let e=0;e<t.length;e++)r=r.concat(t[e])}return r},e.set=function(e,t){return T(this),this.i=null,Nt(this,e=E(this,e))&&(this.h-=this.g.get(e).length),this.g.set(e,[t]),this.h+=1,this},e.get=function(e,t){return e&&0<(e=this.V(e)).length?String(e[0]):t},e.toString=function(){if(this.i)return this.i;if(!this.g)return"";for(var e=[],t=Array.from(this.g.keys()),r=0;r<t.length;r++)for(var n=t[r],i=encodeURIComponent(String(n)),s=this.V(n),n=0;n<s.length;n++){var a=i;""!==s[n]&&(a+="="+encodeURIComponent(String(s[n]))),e.push(a)}return this.i=e.join("&")},s(Dt,Ne),Dt.prototype.g=function(){return new xt(this.l,this.j)},Dt.prototype.i=(bt={},function(){return bt}),s(xt,f),(e=xt.prototype).open=function(e,t){if(0!=this.readyState)throw this.abort(),Error("Error reopening a connection");this.B=e,this.A=t,this.readyState=1,Lt(this)},e.send=function(e){if(1!=this.readyState)throw this.abort(),Error("need to call open() first. ");this.g=!0;var t={headers:this.u,method:this.B,credentials:this.m,cache:void 0};e&&(t.body=e),(this.D||D).fetch(new Request(this.A,t)).then(this.Sa.bind(this),this.ga.bind(this))},e.abort=function(){this.response=this.responseText="",this.u=new Headers,this.status=0,this.j&&this.j.cancel("Request was aborted.").catch(()=>{}),1<=this.readyState&&this.g&&4!=this.readyState&&(this.g=!1,Mt(this)),this.readyState=0},e.Sa=function(e){if(this.g&&(this.l=e,this.h||(this.status=this.l.status,this.statusText=this.l.statusText,this.h=e.headers,this.readyState=2,Lt(this)),this.g)&&(this.readyState=3,Lt(this),this.g))if("arraybuffer"===this.responseType)e.arrayBuffer().then(this.Qa.bind(this),this.ga.bind(this));else if(void 0!==D.ReadableStream&&"body"in e){if(this.j=e.body.getReader(),this.o){if(this.responseType)throw Error('responseType must be empty for "streamBinaryChunks" mode responses.');this.response=[]}else this.response=this.responseText="",this.v=new TextDecoder;Ot(this)}else e.text().then(this.Ra.bind(this),this.ga.bind(this))},e.Pa=function(e){var t;this.g&&(this.o&&e.value?this.response.push(e.value):!this.o&&(t=e.value||new Uint8Array(0),t=this.v.decode(t,{stream:!e.done}))&&(this.response=this.responseText+=t),(e.done?Mt:Lt)(this),3==this.readyState)&&Ot(this)},e.Ra=function(e){this.g&&(this.response=this.responseText=e,Mt(this))},e.Qa=function(e){this.g&&(this.response=e,Mt(this))},e.ga=function(){this.g&&Mt(this)},e.setRequestHeader=function(e,t){this.u.append(e,t)},e.getResponseHeader=function(e){return this.h&&this.h.get(e.toLowerCase())||""},e.getAllResponseHeaders=function(){if(!this.h)return"";for(var e=[],t=this.h.entries(),r=t.next();!r.done;)r=r.value,e.push(r[0]+": "+r[1]),r=t.next();return e.join("\r\n")},Object.defineProperty(xt.prototype,"withCredentials",{get:function(){return"include"===this.m},set:function(e){this.m=e?"include":"same-origin"}}),s(S,f);var Vt=/^https?$/i,qt=["POST","PUT"];function Bt(e,t){e.h=!1,e.g&&(e.j=!0,e.g.abort(),e.j=!1),e.l=t,e.m=5,jt(e),Kt(e)}function jt(e){e.A||(e.A=!0,g(e,"complete"),g(e,"error"))}function zt(e){if(e.h&&void 0!==V&&(!e.v[1]||4!=F(e)||2!=e.Z()))if(e.u&&4==F(e))Ie(e.Ea,0,e);else if(g(e,"readystatechange"),4==F(e)){e.h=!1;try{var t,r,n,i=e.Z();switch(i){case 200:case 201:case 202:case 204:case 206:case 304:case 1223:var s=!0;break;default:s=!1}if((t=s)||((r=0===i)&&(!(n=String(e.D).match(pt)[1]||null)&&D.self&&D.self.location&&(n=D.self.location.protocol.slice(0,-1)),r=!Vt.test(n?n.toLowerCase():"")),t=r),t)g(e,"complete"),g(e,"success");else{e.m=6;try{var a=2<F(e)?e.g.statusText:""}catch(e){a=""}e.l=a+" ["+e.Z()+"]",jt(e)}}finally{Kt(e)}}}function Kt(e,t){if(e.g){Wt(e);var r=e.g,n=e.v[0]?()=>{}:null;e.g=null,e.v=null,t||g(e,"ready");try{r.onreadystatechange=n}catch(e){}}}function Wt(e){e.I&&(D.clearTimeout(e.I),e.I=null)}function F(e){return e.g?e.g.readyState:0}function Ht(e){try{if(e.g){if("response"in e.g)return e.g.response;switch(e.H){case"":case"text":return e.g.responseText;case"arraybuffer":if("mozResponseArrayBuffer"in e.g)return e.g.mozResponseArrayBuffer}}return null}catch(e){return null}}function Gt(e,t,r){return r&&r.internalChannelParams&&r.internalChannelParams[e]||t}function $t(e){this.Aa=0,this.i=[],this.j=new je,this.ia=this.qa=this.I=this.W=this.g=this.ya=this.D=this.H=this.m=this.S=this.o=null,this.Ya=this.U=0,this.Va=Gt("failFast",!1,e),this.F=this.C=this.u=this.s=this.l=null,this.X=!0,this.za=this.T=-1,this.Y=this.v=this.B=0,this.Ta=Gt("baseRetryDelayMs",5e3,e),this.cb=Gt("retryDelaySeedMs",1e4,e),this.Wa=Gt("forwardChannelMaxRetries",2,e),this.wa=Gt("forwardChannelRequestTimeoutMs",2e4,e),this.pa=e&&e.xmlHttpFactory||void 0,this.Xa=e&&e.Tb||void 0,this.Ca=e&&e.useFetchStreams||!1,this.L=void 0,this.J=e&&e.supportsCrossDomainXhr||!1,this.K="",this.h=new st(e&&e.concurrentRequestLimit),this.Da=new Pt,this.P=e&&e.fastHandshake||!1,this.O=e&&e.encodeInitMessageHeaders||!1,this.P&&this.O&&(this.O=!1),this.Ua=e&&e.Rb||!1,e&&e.xa&&this.j.xa(),e&&e.forceLongPolling&&(this.X=!1),this.ba=!this.P&&this.X&&e&&e.detectBufferingProxy||!1,this.ja=void 0,e&&e.longPollingTimeout&&0<e.longPollingTimeout&&(this.ja=e.longPollingTimeout),this.ca=void 0,this.R=0,this.M=!1,this.ka=this.A=null}function Qt(e){if(Jt(e),3==e.G){var t=e.U++,r=b(e.I);if(I(r,"SID",e.K),I(r,"RID",t),I(r,"TYPE","terminate"),er(e,r),(t=new y(e,e.j,t)).L=2,t.v=vt(b(r)),r=!1,D.navigator&&D.navigator.sendBeacon)try{r=D.navigator.sendBeacon(t.v.toString(),"")}catch(e){}!r&&D.Image&&((new Image).src=t.v,r=!0),r||(t.g=cr(t.j,null),t.g.ea(t.v)),t.F=Date.now(),Ze(t)}hr(e)}function Yt(e){e.g&&(ir(e),e.g.cancel(),e.g=null)}function Jt(e){Yt(e),e.u&&(D.clearTimeout(e.u),e.u=null),ar(e),e.h.cancel(),e.s&&("number"==typeof e.s&&D.clearTimeout(e.s),e.s=null)}function Xt(e){var t;at(e.h)||e.s||(e.s=!0,t=e.Ga,o||te(),l||(o(),l=!0),ee.add(t,e),e.B=0)}function Zt(e,t){var r=t?t.l:e.U++,n=b(e.I);I(n,"SID",e.K),I(n,"RID",r),I(n,"AID",e.T),er(e,n),e.m&&e.o&&Ut(n,e.m,e.o),r=new y(e,e.j,r,e.B+1),null===e.m&&(r.H=e.o),t&&(e.i=t.D.concat(e.i)),t=tr(e,r,1e3),r.I=Math.round(.5*e.wa)+Math.round(.5*e.wa*Math.random()),ht(e.h,r),Ye(r,n,t)}function er(e,r){e.H&&$(e.H,function(e,t){I(r,t,e)}),e.l&&dt({},function(e,t){I(r,t,e)})}function tr(e,t,i){i=Math.min(e.i.length,i);var s=e.l?m(e.l.Na,e.l,e):null;e:{let r=e.i,n=-1;for(;;){var a=["count="+i];-1==n?0<i?(n=r[0].g,a.push("ofs="+n)):n=0:a.push("ofs="+n);let e=!0;for(let t=0;t<i;t++){var o=r[t].g,l=r[t].map;if((o-=n)<0)n=Math.max(0,r[t].g-100),e=!1;else try{((e,n,t)=>{let i=t||"";try{dt(e,function(e,t){let r=e;h(e)&&(r=Se(e)),n.push(i+t+"="+encodeURIComponent(r))})}catch(e){throw n.push(i+"type="+encodeURIComponent("_badmap")),e}})(l,a,"req"+o+"_")}catch(e){s&&s(l)}}if(e){s=a.join("&");break e}}}return e=e.i.splice(0,i),t.D=e,s}function rr(e){var t;e.g||e.u||(e.Y=1,t=e.Fa,o||te(),l||(o(),l=!0),ee.add(t,e),e.v=0)}function nr(e){return!(e.g||e.u||3<=e.v)&&(e.Y++,e.u=Be(m(e.Fa,e),lr(e,e.v)),e.v++,1)}function ir(e){null!=e.A&&(D.clearTimeout(e.A),e.A=null)}function sr(e){e.g=new y(e,e.j,"rpc",e.Y),null===e.m&&(e.g.H=e.o),e.g.O=0;var t=b(e.qa),r=(I(t,"RID","rpc"),I(t,"SID",e.K),I(t,"AID",e.T),I(t,"CI",e.F?"0":"1"),!e.F&&e.ja&&I(t,"TO",e.ja),I(t,"TYPE","xmlhttp"),er(e,t),e.m&&e.o&&Ut(t,e.m,e.o),e.L&&(e.g.I=e.L),e.g);e=e.ia,r.L=1,r.v=vt(b(t)),r.m=null,r.P=!0,Je(r,e)}function ar(e){null!=e.C&&(D.clearTimeout(e.C),e.C=null)}function or(e,t){var r,n,i,s=null;if(e.g==t){ar(e),ir(e),e.g=null;var a=2}else{if(!lt(e.h,t))return;s=t.D,ut(e.h,t),a=1}if(0!=e.G)if(t.o)(1==a?(s=t.m?t.m.length:0,t=Date.now()-t.F,r=e.B,g(a=Le(),new qe(a,s)),Xt):rr)(e);else if(3==(r=t.s)||0==r&&0<t.X||(1!=a||(i=t,ot((n=e).h)>=n.h.j-(n.s?1:0))||(n.s?(n.i=i.D.concat(n.i),0):1==n.G||2==n.G||n.B>=(n.Va?0:n.Wa)||(n.s=Be(m(n.Ga,n,i),lr(n,n.B)),n.B++,0)))&&(2!=a||!nr(e)))switch(s&&0<s.length&&(t=e.h,t.i=t.i.concat(s)),r){case 1:k(e,5);break;case 4:k(e,10);break;case 3:k(e,6);break;default:k(e,2)}}function lr(e,t){let r=e.Ta+Math.floor(Math.random()*e.cb);return e.isActive()||(r*=2),r*t}function k(e,t){var r,n,i;e.j.info("Error code "+t),2==t?(r=m(e.fb,e),n=!(i=e.Xa),i=new w(i||"//www.google.com/images/cleardot.gif"),D.location&&"http"==D.location.protocol||ft(i,"https"),vt(i),(n?(t,r)=>{var n=new je;if(D.Image){let e=new Image;e.onload=z(C,n,"TestLoadImage: loaded",!0,r,e),e.onerror=z(C,n,"TestLoadImage: error",!1,r,e),e.onabort=z(C,n,"TestLoadImage: abort",!1,r,e),e.ontimeout=z(C,n,"TestLoadImage: timeout",!1,r,e),D.setTimeout(function(){e.ontimeout&&e.ontimeout()},1e4),e.src=t}else r(!1)}:(e,t)=>{let r=new je,n=new AbortController,i=setTimeout(()=>{n.abort(),C(r,0,!1,t)},1e4);fetch(e,{signal:n.signal}).then(e=>{clearTimeout(i),e.ok?C(r,0,!0,t):C(r,0,!1,t)}).catch(()=>{clearTimeout(i),C(r,0,!1,t)})})(i.toString(),r)):O(2),e.G=0,e.l&&e.l.sa(t),hr(e),Jt(e)}function hr(e){var t;e.G=0,e.ka=[],e.l&&(0==(t=ct(e.h)).length&&0==e.i.length||(W(e.ka,t),W(e.ka,e.i),e.h.i.length=0,K(e.i),e.i.length=0),e.l.ra())}function ur(e,t,r){var n,i,s=r instanceof w?b(r):new w(r);return""!=s.g?(t&&(s.g=t+"."+s.g),gt(s,s.s)):(s=(n=D.location).protocol,t=t?t+"."+n.hostname:n.hostname,n=+n.port,i=new w(null),s&&ft(i,s),t&&(i.g=t),n&>(i,n),r&&(i.l=r),s=i),r=e.D,t=e.ya,r&&t&&I(s,r,t),I(s,"VER",e.la),er(e,s),s}function cr(e,t,r){if(t&&!e.J)throw Error("Can't create secondary domain capable XhrIo object.");return(t=e.Ca&&!e.pa?new S(new Dt({eb:r})):new S(e.pa)).Ha(e.J),t}function dr(){}function pr(){}function A(e,t){f.call(this),this.g=new $t(t),this.l=e,this.h=t&&t.messageUrlParams||null,e=t&&t.messageHeaders||null,t&&t.clientProtocolHeaderRequired&&(e?e["X-Client-Protocol"]="webchannel":e={"X-Client-Protocol":"webchannel"}),this.g.o=e,e=t&&t.initMessageHeaders||null,t&&t.messageContentType&&(e?e["X-WebChannel-Content-Type"]=t.messageContentType:e={"X-WebChannel-Content-Type":t.messageContentType}),t&&t.va&&(e?e["X-WebChannel-Client-Profile"]=t.va:e={"X-WebChannel-Client-Profile":t.va}),this.g.S=e,(e=t&&t.Sb)&&!x(e)&&(this.g.m=e),this.v=t&&t.supportsCrossDomainXhr||!1,this.u=t&&t.sendRawJson||!1,(t=t&&t.httpSessionIdParam)&&!x(t)&&(this.g.D=t,null!==(e=this.h))&&t in e&&t in(e=this.h)&&delete e[t],this.j=new N(this)}function fr(e){xe.call(this),e.__headers__&&(this.headers=e.__headers__,this.statusCode=e.__status__,delete e.__headers__,delete e.__status__);var t=e.__sm__;if(t){e:{for(var r in t){e=r;break e}e=void 0}(this.i=e)&&(e=this.i,t=null!==t&&e in t?t[e]:void 0),this.data=t}else this.data=e}function gr(){Oe.call(this),this.status=1}function N(e){this.g=e}(e=S.prototype).Ha=function(e){this.J=e},e.ea=function(e,t,r,n){if(this.g)throw Error("[goog.net.XhrIo] Object is active with another request="+this.D+"; newUri="+e);t=t?t.toUpperCase():"GET",this.D=e,this.l="",this.m=0,this.A=!1,this.h=!0,this.g=(this.o||Ge).g(),this.v=this.o?Re(this.o):Re(Ge),this.g.onreadystatechange=m(this.Ea,this);try{this.B=!0,this.g.open(t,String(e),!0),this.B=!1}catch(e){return void Bt(this,e)}if(e=r||"",r=new Map(this.headers),n)if(Object.getPrototypeOf(n)===Object.prototype)for(var i in n)r.set(i,n[i]);else{if("function"!=typeof n.keys||"function"!=typeof n.get)throw Error("Unknown input type for opt_headers: "+String(n));for(var s of n.keys())r.set(s,n.get(s))}n=Array.from(r.keys()).find(e=>"content-type"==e.toLowerCase()),i=D.FormData&&e instanceof D.FormData,0<=Array.prototype.indexOf.call(qt,t,void 0)&&!n&&!i&&r.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8");for(var[a,o]of r)this.g.setRequestHeader(a,o);this.H&&(this.g.responseType=this.H),"withCredentials"in this.g&&this.g.withCredentials!==this.J&&(this.g.withCredentials=this.J);try{Wt(this),this.u=!0,this.g.send(e),this.u=!1}catch(e){Bt(this,e)}},e.abort=function(e){this.g&&this.h&&(this.h=!1,this.j=!0,this.g.abort(),this.j=!1,this.m=e||7,g(this,"complete"),g(this,"abort"),Kt(this))},e.N=function(){this.g&&(this.h&&(this.h=!1,this.j=!0,this.g.abort(),this.j=!1),Kt(this,!0)),S.aa.N.call(this)},e.Ea=function(){this.s||(this.B||this.u||this.j?zt(this):this.bb())},e.bb=function(){zt(this)},e.isActive=function(){return!!this.g},e.Z=function(){try{return 2<F(this)?this.g.status:-1}catch(e){return-1}},e.oa=function(){try{return this.g?this.g.responseText:""}catch(e){return""}},e.Oa=function(e){var t;if(this.g)return t=this.g.responseText,e&&0==t.indexOf(e)&&(t=t.substring(e.length)),ke(t)},e.Ba=function(){return this.m},e.Ka=function(){return"string"==typeof this.l?this.l:String(this.l)},(e=$t.prototype).la=8,e.G=1,e.connect=function(e,t,r,n){O(0),this.W=e,this.H=t||{},r&&void 0!==n&&(this.H.OSID=r,this.H.OAID=n),this.F=this.X,this.I=ur(this,null,this.W),Xt(this)},e.Ga=function(t){if(this.s)if(this.s=null,1==this.G){if(!t){this.U=Math.floor(1e5*Math.random()),t=this.U++;var r=new y(this,this.j,t);let e=this.o;if(this.S&&(e?J(e=Q(e),this.S):e=this.S),null!==this.m||this.O||(r.H=e,e=null),this.P)e:{for(var n=0,i=0;i<this.i.length;i++){var s=this.i[i];if("__data__"in s.map&&"string"==typeof(s=s.map.__data__)?s=s.length:s=void 0,void 0===s)break;if(4096<(n+=s)){n=i;break e}if(4096===n||i===this.i.length-1){n=i+1;break e}}n=1e3}else n=1e3;n=tr(this,r,n),I(i=b(this.I),"RID",t),I(i,"CVER",22),this.D&&I(i,"X-HTTP-Session-Id",this.D),er(this,i),e&&(this.O?n="headers="+encodeURIComponent(String(Ft(e)))+"&"+n:this.m&&Ut(i,this.m,e)),ht(this.h,r),this.Ua&&I(i,"TYPE","init"),this.P?(I(i,"$req",n),I(i,"SID","null"),r.T=!0,Ye(r,i,null)):Ye(r,i,n),this.G=2}}else 3==this.G&&(t?Zt(this,t):0==this.i.length||at(this.h)||Zt(this))},e.Fa=function(){var e;this.u=null,sr(this),this.ba&&!(this.M||null==this.g||this.R<=0)&&(e=2*this.R,this.j.info("BP detection timer enabled: "+e),this.A=Be(m(this.ab,this),e))},e.ab=function(){this.A&&(this.A=null,this.j.info("BP detection timeout reached."),this.j.info("Buffering proxy detected and switch to long-polling!"),this.F=!1,this.M=!0,O(10),Yt(this),sr(this))},e.Za=function(){null!=this.C&&(this.C=null,Yt(this),nr(this),O(19))},e.fb=function(e){e?(this.j.info("Successfully pinged google.com"),O(2)):(this.j.info("Failed to ping google.com"),O(1))},e.isActive=function(){return!!this.l&&this.l.isActive(this)},(e=dr.prototype).ua=function(){},e.ta=function(){},e.sa=function(){},e.ra=function(){},e.isActive=function(){return!0},e.Na=function(){},pr.prototype.g=function(e,t){return new A(e,t)},s(A,f),A.prototype.m=function(){this.g.l=this.j,this.v&&(this.g.J=!0),this.g.connect(this.l,this.h||void 0)},A.prototype.close=function(){Qt(this.g)},A.prototype.o=function(e){var t,r=this.g;"string"==typeof e?((t={}).__data__=e,e=t):this.u&&((t={}).__data__=Se(e),e=t),r.i.push(new it(r.Ya++,e)),3==r.G&&Xt(r)},A.prototype.N=function(){this.g.l=null,delete this.j,Qt(this.g),delete this.g,A.aa.N.call(this)},s(fr,xe),s(gr,Oe),s(N,dr),N.prototype.ua=function(){g(this.g,"a")},N.prototype.ta=function(e){g(this.g,new fr(e))},N.prototype.sa=function(e){g(this.g,new gr)},N.prototype.ra=function(){g(this.g,"b")},pr.prototype.createWebChannel=pr.prototype.g,A.prototype.send=A.prototype.o,A.prototype.open=A.prototype.m,Sm=function(){return new pr},Cm=Le,Em=_,Tm={mb:0,pb:1,qb:2,Jb:3,Ob:4,Lb:5,Mb:6,Kb:7,Ib:8,Nb:9,PROXY:10,NOPROXY:11,Gb:12,Cb:13,Db:14,Bb:15,Eb:16,Fb:17,ib:18,hb:19,jb:20},ze.NO_ERROR=0,ze.TIMEOUT=8,ze.HTTP_ERROR=6,Im=ze,Ke.COMPLETE="complete",bm=Ke,(Pe.EventType=De).OPEN="a",De.CLOSE="b",De.ERROR="c",De.MESSAGE="d",f.prototype.listen=f.prototype.K,wm=Pe,S.prototype.listenOnce=S.prototype.L,S.prototype.getLastError=S.prototype.Ka,S.prototype.getLastErrorCode=S.prototype.Ba,S.prototype.getStatus=S.prototype.Z,S.prototype.getResponseJson=S.prototype.Oa,S.prototype.getResponseText=S.prototype.oa,S.prototype.send=S.prototype.ea,S.prototype.setWithCredentials=S.prototype.Ha,ym=S}).apply(void 0!==Nm?Nm:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{});let Rm="@firebase/firestore";class Pm{constructor(e){this.uid=e}isAuthenticated(){return null!=this.uid}toKey(){return this.isAuthenticated()?"uid:"+this.uid:"anonymous-user"}isEqual(e){return e.uid===this.uid}}Pm.UNAUTHENTICATED=new Pm(null),Pm.GOOGLE_CREDENTIALS=new Pm("google-credentials-uid"),Pm.FIRST_PARTY=new Pm("first-party-uid"),Pm.MOCK_USER=new Pm("mock-user");let Dm="12.2.0",xm=new tt("@firebase/firestore");function Om(){return xm.logLevel}function E(e,...t){var r;xm.logLevel<=c.DEBUG&&(r=t.map(Fm),xm.debug(`Firestore (${Dm}): `+e,...r))}function Mm(e,...t){var r;xm.logLevel<=c.ERROR&&(r=t.map(Fm),xm.error(`Firestore (${Dm}): `+e,...r))}function Lm(e,...t){var r;xm.logLevel<=c.WARN&&(r=t.map(Fm),xm.warn(`Firestore (${Dm}): `+e,...r))}function Fm(t){if("string"==typeof t)return t;try{return JSON.stringify(t)}catch(e){return t}}function C(e,t,r){let n="Unexpected state";"string"==typeof t?n=t:r=t,Um(e,n,r)}function Um(e,t,r){let n=`FIRESTORE (${Dm}) INTERNAL ASSERTION FAILED: ${t} (ID: ${e.toString(16)})`;if(void 0!==r)try{n+=" CONTEXT: "+JSON.stringify(r)}catch(e){n+=" CONTEXT: "+r}throw Mm(n),new Error(n)}function S(e,t,r,n){let i="Unexpected state";"string"==typeof r?i=r:n=r,e||Um(t,i,n)}let k={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 A extends ye{constructor(e,t){super(e,t),this.code=e,this.message=t,this.toString=()=>`${this.name}: [code=${this.code}]: `+this.message}}class Vm{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}}class qm{constructor(e,t){this.user=t,this.type="OAuth",this.headers=new Map,this.headers.set("Authorization","Bearer "+e)}}class Bm{getToken(){return Promise.resolve(null)}invalidateToken(){}start(e,t){e.enqueueRetryable(()=>t(Pm.UNAUTHENTICATED))}shutdown(){}}class jm{constructor(e){this.token=e,this.changeListener=null}getToken(){return Promise.resolve(this.token)}invalidateToken(){}start(e,t){this.changeListener=t,e.enqueueRetryable(()=>t(this.token.user))}shutdown(){this.changeListener=null}}class zm{constructor(e){this.t=e,this.currentUser=Pm.UNAUTHENTICATED,this.i=0,this.forceRefresh=!1,this.auth=null}start(t,r){S(void 0===this.o,42304);let n=this.i,i=e=>this.i!==n?(n=this.i,r(e)):Promise.resolve(),s=new Vm,a=(this.o=()=>{this.i++,this.currentUser=this.u(),s.resolve(),s=new Vm,t.enqueueRetryable(()=>i(this.currentUser))},()=>{let e=s;t.enqueueRetryable(async()=>{await e.promise,await i(this.currentUser)})}),o=e=>{E("FirebaseAuthCredentialsProvider","Auth detected"),this.auth=e,this.o&&(this.auth.addAuthTokenListener(this.o),a())};this.t.onInit(e=>o(e)),setTimeout(()=>{var e;this.auth||((e=this.t.getImmediate({optional:!0}))?o(e):(E("FirebaseAuthCredentialsProvider","Auth not yet detected"),s.resolve(),s=new Vm))},0),a()}getToken(){let t=this.i,e=this.forceRefresh;return this.forceRefresh=!1,this.auth?this.auth.getToken(e).then(e=>this.i!==t?(E("FirebaseAuthCredentialsProvider","getToken aborted due to token change."),this.getToken()):e?(S("string"==typeof e.accessToken,31837,{l:e}),new qm(e.accessToken,this.currentUser)):null):Promise.resolve(null)}invalidateToken(){this.forceRefresh=!0}shutdown(){this.auth&&this.o&&this.auth.removeAuthTokenListener(this.o),this.o=void 0}u(){var e=this.auth&&this.auth.getUid();return S(null===e||"string"==typeof e,2055,{h:e}),new Pm(e)}}class Km{constructor(e,t,r){this.P=e,this.T=t,this.I=r,this.type="FirstParty",this.user=Pm.FIRST_PARTY,this.A=new Map}R(){return this.I?this.I():null}get headers(){this.A.set("X-Goog-AuthUser",this.P);var e=this.R();return e&&this.A.set("Authorization",e),this.T&&this.A.set("X-Goog-Iam-Authorization-Token",this.T),this.A}}class Wm{constructor(e,t,r){this.P=e,this.T=t,this.I=r}getToken(){return Promise.resolve(new Km(this.P,this.T,this.I))}start(e,t){e.enqueueRetryable(()=>t(Pm.FIRST_PARTY))}shutdown(){}invalidateToken(){}}class Hm{constructor(e){this.value=e,this.type="AppCheck",this.headers=new Map,e&&0<e.length&&this.headers.set("x-firebase-appcheck",this.value)}}class Gm{constructor(e,t){this.V=t,this.forceRefresh=!1,this.appCheck=null,this.m=null,this.p=null,h(e)&&e.settings.appCheckToken&&(this.p=e.settings.appCheckToken)}start(t,r){S(void 0===this.o,3512);let n=e=>{null!=e.error&&E("FirebaseAppCheckTokenProvider","Error getting App Check token; using placeholder token instead. Error: "+e.error.message);var t=e.token!==this.m;return this.m=e.token,E("FirebaseAppCheckTokenProvider",`Received ${t?"new":"existing"} token.`),t?r(e.token):Promise.resolve()},i=(this.o=e=>{t.enqueueRetryable(()=>n(e))},e=>{E("FirebaseAppCheckTokenProvider","AppCheck detected"),this.appCheck=e,this.o&&this.appCheck.addTokenListener(this.o)});this.V.onInit(e=>i(e)),setTimeout(()=>{var e;this.appCheck||((e=this.V.getImmediate({optional:!0}))?i(e):E("FirebaseAppCheckTokenProvider","AppCheck not yet detected"))},0)}getToken(){var e;return this.p?Promise.resolve(new Hm(this.p)):(e=this.forceRefresh,this.forceRefresh=!1,this.appCheck?this.appCheck.getToken(e).then(e=>e?(S("string"==typeof e.token,44558,{tokenResult:e}),this.m=e.token,new Hm(e.token)):null):Promise.resolve(null))}invalidateToken(){this.forceRefresh=!0}shutdown(){this.appCheck&&this.o&&this.appCheck.removeTokenListener(this.o),this.o=void 0}}class $m{static newId(){var t=62*Math.floor(256/62);let r="";for(;r.length<20;){var n=(t=>{var r="undefined"!=typeof self&&(self.crypto||self.msCrypto),n=new Uint8Array(t);if(r&&"function"==typeof r.getRandomValues)r.getRandomValues(n);else for(let e=0;e<t;e++)n[e]=Math.floor(256*Math.random());return n})(40);for(let e=0;e<n.length;++e)r.length<20&&n[e]<t&&(r+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".charAt(n[e]%62))}return r}}function N(e,t){return e<t?-1:t<e?1:0}function Qm(r,n){let e=Math.min(r.length,n.length);for(let i=0;i<e;i++){let e=r.charAt(i),t=n.charAt(i);if(e!==t)return Xm(e)===Xm(t)?N(e,t):Xm(e)?1:-1}return N(r.length,n.length)}let Ym=55296,Jm=57343;function Xm(e){var t=e.charCodeAt(0);return t>=Ym&&t<=Jm}function Zm(e,r,n){return e.length===r.length&&e.every((e,t)=>n(e,r[t]))}function ev(e){return e+"\0"}let tv="__name__";class rv{constructor(e,t,r){void 0===t?t=0:t>e.length&&C(637,{offset:t,range:e.length}),void 0===r?r=e.length-t:r>e.length-t&&C(1746,{length:r,range:e.length-t}),this.segments=e,this.offset=t,this.len=r}get length(){return this.len}isEqual(e){return 0===rv.comparator(this,e)}child(e){let t=this.segments.slice(this.offset,this.limit());return e instanceof rv?e.forEach(e=>{t.push(e)}):t.push(e),this.construct(t)}limit(){return this.offset+this.length}popFirst(e){return this.construct(this.segments,this.offset+(e=void 0===e?1:e),this.length-e)}popLast(){return this.construct(this.segments,this.offset,this.length-1)}firstSegment(){return this.segments[this.offset]}lastSegment(){return this.get(this.length-1)}get(e){return this.segments[this.offset+e]}isEmpty(){return 0===this.length}isPrefixOf(e){if(e.length<this.length)return!1;for(let t=0;t<this.length;t++)if(this.get(t)!==e.get(t))return!1;return!0}isImmediateParentOf(e){if(this.length+1!==e.length)return!1;for(let t=0;t<this.length;t++)if(this.get(t)!==e.get(t))return!1;return!0}forEach(e){for(let t=this.offset,r=this.limit();t<r;t++)e(this.segments[t])}toArray(){return this.segments.slice(this.offset,this.limit())}static comparator(t,r){let e=Math.min(t.length,r.length);for(let n=0;n<e;n++){let e=rv.compareSegments(t.get(n),r.get(n));if(0!==e)return e}return N(t.length,r.length)}static compareSegments(e,t){var r=rv.isNumericId(e),n=rv.isNumericId(t);return r&&!n?-1:!r&&n?1:r&&n?rv.extractNumericId(e).compare(rv.extractNumericId(t)):Qm(e,t)}static isNumericId(e){return e.startsWith("__id")&&e.endsWith("__")}static extractNumericId(e){return vm.fromString(e.substring(4,e.length-2))}}class R extends rv{construct(e,t,r){return new R(e,t,r)}canonicalString(){return this.toArray().join("/")}toString(){return this.canonicalString()}toUriEncodedString(){return this.toArray().map(encodeURIComponent).join("/")}static fromString(...e){var t,r=[];for(t of e){if(0<=t.indexOf("//"))throw new A(k.INVALID_ARGUMENT,`Invalid segment (${t}). Paths must not contain // in them.`);r.push(...t.split("/").filter(e=>0<e.length))}return new R(r)}static emptyPath(){return new R([])}}let nv=/^[_a-zA-Z][_a-zA-Z0-9]*$/;class iv extends rv{construct(e,t,r){return new iv(e,t,r)}static isValidIdentifier(e){return nv.test(e)}canonicalString(){return this.toArray().map(e=>(e=e.replace(/\\/g,"\\\\").replace(/`/g,"\\`"),e=iv.isValidIdentifier(e)?e:"`"+e+"`")).join(".")}toString(){return this.canonicalString()}isKeyField(){return 1===this.length&&this.get(0)===tv}static keyField(){return new iv([tv])}static fromServerFormat(t){let e=[],r="",n=0;var i=()=>{if(0===r.length)throw new A(k.INVALID_ARGUMENT,`Invalid field path (${t}). Paths must not be empty, begin with '.', end with '.', or contain '..'`);e.push(r),r=""};let s=!1;for(;n<t.length;){let e=t[n];if("\\"===e){if(n+1===t.length)throw new A(k.INVALID_ARGUMENT,"Path has trailing escape character: "+t);let e=t[n+1];if("\\"!==e&&"."!==e&&"`"!==e)throw new A(k.INVALID_ARGUMENT,"Path has invalid escape sequence: "+t);r+=e,n+=2}else"`"===e?s=!s:"."!==e||s?r+=e:i(),n++}if(i(),s)throw new A(k.INVALID_ARGUMENT,"Unterminated ` in path: "+t);return new iv(e)}static emptyPath(){return new iv([])}}class P{constructor(e){this.path=e}static fromPath(e){return new P(R.fromString(e))}static fromName(e){return new P(R.fromString(e).popFirst(5))}static empty(){return new P(R.emptyPath())}get collectionGroup(){return this.path.popLast().lastSegment()}hasCollectionId(e){return 2<=this.path.length&&this.path.get(this.path.length-2)===e}getCollectionGroup(){return this.path.get(this.path.length-2)}getCollectionPath(){return this.path.popLast()}isEqual(e){return null!==e&&0===R.comparator(this.path,e.path)}toString(){return this.path.toString()}static comparator(e,t){return R.comparator(e.path,t.path)}static isDocumentKey(e){return e.length%2==0}static fromSegments(e){return new P(new R(e.slice()))}}function sv(e,t,r){if(!r)throw new A(k.INVALID_ARGUMENT,`Function ${e}() cannot be called with an empty ${t}.`)}function av(e,t,r,n){if(!0===t&&!0===n)throw new A(k.INVALID_ARGUMENT,e+` and ${r} cannot be used together.`)}function ov(e){if(!P.isDocumentKey(e))throw new A(k.INVALID_ARGUMENT,`Invalid document reference. Document references must have an even number of segments, but ${e} has ${e.length}.`)}function lv(e){if(P.isDocumentKey(e))throw new A(k.INVALID_ARGUMENT,`Invalid collection reference. Collection references must have an odd number of segments, but ${e} has ${e.length}.`)}function hv(e){return"object"==typeof e&&null!==e&&(Object.getPrototypeOf(e)===Object.prototype||null===Object.getPrototypeOf(e))}function uv(e){var t,r;return void 0===e?"undefined":null===e?"null":"string"==typeof e?(20<e.length&&(e=e.substring(0,20)+"..."),JSON.stringify(e)):"number"==typeof e||"boolean"==typeof e?""+e:"object"==typeof e?e instanceof Array?"an array":(t=(r=e).constructor?r.constructor.name:null)?`a custom ${t} object`:"an object":"function"==typeof e?"a function":C(12329,{type:typeof e})}function D(e,t){if((e="_delegate"in e?e._delegate:e)instanceof t)return e;if(t.name===e.constructor.name)throw new A(k.INVALID_ARGUMENT,"Type does not match the expected instance. Did you pass a reference from a different Firestore SDK?");var r=uv(e);throw new A(k.INVALID_ARGUMENT,`Expected type '${t.name}', but it was: `+r)}function cv(e,t){if(t<=0)throw new A(k.INVALID_ARGUMENT,`Function ${e}() requires a positive number, but it was: ${t}.`)}function dv(e,t){var r={typeString:e};return t&&(r.value=t),r}function pv(e,t){if(!hv(e))throw new A(k.INVALID_ARGUMENT,"JSON must be an object");let r;for(var n in t)if(t[n]){var i=t[n].typeString,s="value"in t[n]?{value:t[n].value}:void 0;if(!(n in e)){r=`JSON missing required field: '${n}'`;break}var a=e[n];if(i&&typeof a!==i){r=`JSON field '${n}' must be a ${i}.`;break}if(void 0!==s&&a!==s.value){r=`Expected '${n}' field to equal '${s.value}'`;break}}if(r)throw new A(k.INVALID_ARGUMENT,r);return 1}let fv=-62135596800;class x{static now(){return x.fromMillis(Date.now())}static fromDate(e){return x.fromMillis(e.getTime())}static fromMillis(e){var t=Math.floor(e/1e3),r=Math.floor(1e6*(e-1e3*t));return new x(t,r)}constructor(e,t){if(this.seconds=e,(this.nanoseconds=t)<0)throw new A(k.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+t);if(1e9<=t)throw new A(k.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+t);if(e<fv)throw new A(k.INVALID_ARGUMENT,"Timestamp seconds out of range: "+e);if(253402300800<=e)throw new A(k.INVALID_ARGUMENT,"Timestamp seconds out of range: "+e)}toDate(){return new Date(this.toMillis())}toMillis(){return 1e3*this.seconds+this.nanoseconds/1e6}_compareTo(e){return this.seconds===e.seconds?N(this.nanoseconds,e.nanoseconds):N(this.seconds,e.seconds)}isEqual(e){return e.seconds===this.seconds&&e.nanoseconds===this.nanoseconds}toString(){return"Timestamp(seconds="+this.seconds+", nanoseconds="+this.nanoseconds+")"}toJSON(){return{type:x._jsonSchemaVersion,seconds:this.seconds,nanoseconds:this.nanoseconds}}static fromJSON(e){if(pv(e,x._jsonSchema))return new x(e.seconds,e.nanoseconds)}valueOf(){var e=this.seconds-fv;return String(e).padStart(12,"0")+"."+String(this.nanoseconds).padStart(9,"0")}}x._jsonSchemaVersion="firestore/timestamp/1.0",x._jsonSchema={type:dv("string",x._jsonSchemaVersion),seconds:dv("number"),nanoseconds:dv("number")};class O{static fromTimestamp(e){return new O(e)}static min(){return new O(new x(0,0))}static max(){return new O(new x(253402300799,999999999))}constructor(e){this.timestamp=e}compareTo(e){return this.timestamp._compareTo(e.timestamp)}isEqual(e){return this.timestamp.isEqual(e.timestamp)}toMicroseconds(){return 1e6*this.timestamp.seconds+this.timestamp.nanoseconds/1e3}toString(){return"SnapshotVersion("+this.timestamp.toString()+")"}toTimestamp(){return this.timestamp}}let gv=-1;class mv{constructor(e,t,r,n){this.indexId=e,this.collectionGroup=t,this.fields=r,this.indexState=n}}function vv(e){return e.fields.find(e=>2===e.kind)}function _v(e){return e.fields.filter(e=>2!==e.kind)}mv.UNKNOWN_ID=-1;class yv{constructor(e,t){this.fieldPath=e,this.kind=t}}class wv{constructor(e,t){this.sequenceNumber=e,this.offset=t}static empty(){return new wv(0,Tv.min())}}function bv(e,t){var r=e.toTimestamp().seconds,n=e.toTimestamp().nanoseconds+1,r=O.fromTimestamp(1e9===n?new x(r+1,0):new x(r,n));return new Tv(r,P.empty(),t)}function Iv(e){return new Tv(e.readTime,e.key,gv)}class Tv{constructor(e,t,r){this.readTime=e,this.documentKey=t,this.largestBatchId=r}static min(){return new Tv(O.min(),P.empty(),gv)}static max(){return new Tv(O.max(),P.empty(),gv)}}function Ev(e,t){var r=e.readTime.compareTo(t.readTime);return 0!==r||0!==(r=P.comparator(e.documentKey,t.documentKey))?r:N(e.largestBatchId,t.largestBatchId)}let Cv="The current tab is not in the required state to perform this operation. It might be necessary to refresh the browser tab.";class Sv{constructor(){this.onCommittedListeners=[]}addOnCommittedListener(e){this.onCommittedListeners.push(e)}raiseOnCommittedEvent(){this.onCommittedListeners.forEach(e=>e())}}async function kv(e){if(e.code!==k.FAILED_PRECONDITION||e.message!==Cv)throw e;E("LocalStore","Unexpectedly lost primary lease")}class M{constructor(e){this.nextCallback=null,this.catchCallback=null,this.result=void 0,this.error=void 0,this.isDone=!1,this.callbackAttached=!1,e(e=>{this.isDone=!0,this.result=e,this.nextCallback&&this.nextCallback(e)},e=>{this.isDone=!0,this.error=e,this.catchCallback&&this.catchCallback(e)})}catch(e){return this.next(void 0,e)}next(n,i){return this.callbackAttached&&C(59440),this.callbackAttached=!0,this.isDone?this.error?this.wrapFailure(i,this.error):this.wrapSuccess(n,this.result):new M((t,r)=>{this.nextCallback=e=>{this.wrapSuccess(n,e).next(t,r)},this.catchCallback=e=>{this.wrapFailure(i,e).next(t,r)}})}toPromise(){return new Promise((e,t)=>{this.next(e,t)})}wrapUserFunction(e){try{var t=e();return t instanceof M?t:M.resolve(t)}catch(e){return M.reject(e)}}wrapSuccess(e,t){return e?this.wrapUserFunction(()=>e(t)):M.resolve(t)}wrapFailure(e,t){return e?this.wrapUserFunction(()=>e(t)):M.reject(t)}static resolve(r){return new M((e,t)=>{e(r)})}static reject(r){return new M((e,t)=>{t(r)})}static waitFor(e){return new M((t,r)=>{let n=0,i=0,s=!1;e.forEach(e=>{++n,e.next(()=>{++i,s&&i===n&&t()},e=>r(e))}),s=!0,i===n&&t()})}static or(e){let t=M.resolve(!1);for(let r of e)t=t.next(e=>e?M.resolve(e):r());return t}static forEach(e,r){let n=[];return e.forEach((e,t)=>{n.push(r.call(this,e,t))}),this.waitFor(n)}static mapArray(o,l){return new M((r,n)=>{let i=o.length,s=new Array(i),a=0;for(let e=0;e<i;e++){let t=e;l(o[t]).next(e=>{s[t]=e,++a===i&&r(s)},e=>n(e))}})}static doWhile(n,i){return new M((e,t)=>{let r=()=>{!0===n()?i().next(()=>{r()},t):e()};r()})}}let Av="SimpleDb";class Nv{static open(e,t,r,n){try{return new Nv(t,e.transaction(n,r))}catch(e){throw new xv(t,e)}}constructor(r,e){this.action=r,this.transaction=e,this.aborted=!1,this.S=new Vm,this.transaction.oncomplete=()=>{this.S.resolve()},this.transaction.onabort=()=>{e.error?this.S.reject(new xv(r,e.error)):this.S.resolve()},this.transaction.onerror=e=>{var t=Uv(e.target.error);this.S.reject(new xv(r,t))}}get D(){return this.S.promise}abort(e){e&&this.S.reject(e),this.aborted||(E(Av,"Aborting transaction:",e?e.message:"Client-initiated abort"),this.aborted=!0,this.transaction.abort())}C(){var e=this.transaction;this.aborted||"function"!=typeof e.commit||e.commit()}store(e){var t=this.transaction.objectStore(e);return new Mv(t)}}class Rv{static delete(e){return E(Av,"Removing database:",e),Lv(H().indexedDB.deleteDatabase(e)).toPromise()}static v(){var e,t,r;return!(!me()||!Rv.F()&&(e=ae(),t=0<(t=Rv.M(e))&&t<10,r=0<(r=Pv(e))&&r<4.5,0<e.indexOf("MSIE ")||0<e.indexOf("Trident/")||0<e.indexOf("Edge/")||t||r))}static F(){return"undefined"!=typeof process&&"YES"===process.__PRIVATE_env?.__PRIVATE_USE_MOCK_PERSISTENCE}static O(e,t){return e.store(t)}static M(e){var t=e.match(/i(?:phone|pad|pod) os ([\d_]+)/i),t=t?t[1].split("_").slice(0,2).join("."):"-1";return Number(t)}constructor(e,t,r){this.name=e,this.version=t,this.N=r,this.B=null,12.2===Rv.M(ae())&&Mm("Firestore persistence suffers from a bug in iOS 12.2 Safari that may cause your app to stop working. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.")}async L(s){return this.db||(E(Av,"Opening database:",this.name),this.db=await new Promise((r,n)=>{let i=indexedDB.open(this.name,this.version);i.onsuccess=e=>{var t=e.target.result;r(t)},i.onblocked=()=>{n(new xv(s,"Cannot upgrade IndexedDB schema while another tab is open. Close all tabs that access Firestore and reload this page to proceed."))},i.onerror=e=>{var t=e.target.error;"VersionError"===t.name?n(new A(k.FAILED_PRECONDITION,"A newer version of the Firestore SDK was previously used and so the persisted data is not compatible with the version of the SDK you are now using. The SDK will operate with persistence disabled. If you need persistence, please re-upgrade to a newer version of the SDK or else clear the persisted IndexedDB data for your app to start fresh.")):"InvalidStateError"===t.name?n(new A(k.FAILED_PRECONDITION,"Unable to open an IndexedDB connection. This could be due to running in a private browsing session on a browser whose private browsing sessions do not support IndexedDB: "+t)):n(new xv(s,t))},i.onupgradeneeded=e=>{E(Av,'Database "'+this.name+'" requires upgrade from version:',e.oldVersion);var t=e.target.result;this.N.k(t,i.transaction,e.oldVersion,this.version).next(()=>{E(Av,"Database upgrade to version "+this.version+" complete")})}})),this.q&&(this.db.onversionchange=e=>this.q(e)),this.db}$(t){this.q=t,this.db&&(this.db.onversionchange=e=>t(e))}async runTransaction(r,e,n,i){var s="readonly"===e;let a=0;for(;;){++a;try{this.db=await this.L(r);let t=Nv.open(this.db,r,s?"readonly":"readwrite",n),e=i(t).next(e=>(t.C(),e)).catch(e=>(t.abort(e),M.reject(e))).toPromise();return e.catch(()=>{}),await t.D,e}catch(r){let e=r,t="FirebaseError"!==e.name&&a<3;if(E(Av,"Transaction failed with error:",e.message,"Retrying:",t),this.close(),!t)return Promise.reject(e)}}}close(){this.db&&this.db.close(),this.db=void 0}}function Pv(e){var t=e.match(/Android ([\d.]+)/i),t=t?t[1].split(".").slice(0,2).join("."):"-1";return Number(t)}class Dv{constructor(e){this.U=e,this.K=!1,this.W=null}get isDone(){return this.K}get G(){return this.W}set cursor(e){this.U=e}done(){this.K=!0}j(e){this.W=e}delete(){return Lv(this.U.delete())}}class xv extends A{constructor(e,t){super(k.UNAVAILABLE,`IndexedDB transaction '${e}' failed: `+t),this.name="IndexedDbTransactionError"}}function Ov(e){return"IndexedDbTransactionError"===e.name}class Mv{constructor(e){this.store=e}put(e,t){let r;return Lv(r=void 0!==t?(E(Av,"PUT",this.store.name,e,t),this.store.put(t,e)):(E(Av,"PUT",this.store.name,"<auto-key>",e),this.store.put(e)))}add(e){return E(Av,"ADD",this.store.name,e,e),Lv(this.store.add(e))}get(t){return Lv(this.store.get(t)).next(e=>(void 0===e&&(e=null),E(Av,"GET",this.store.name,t,e),e))}delete(e){return E(Av,"DELETE",this.store.name,e),Lv(this.store.delete(e))}count(){return E(Av,"COUNT",this.store.name),Lv(this.store.count())}J(e,t){var n=this.options(e,t),r=n.index?this.store.index(n.index):this.store;if("function"==typeof r.getAll){let e=r.getAll(n.range);return new M((t,r)=>{e.onerror=e=>{r(e.target.error)},e.onsuccess=e=>{t(e.target.result)}})}{let e=this.cursor(n),r=[];return this.H(e,(e,t)=>{r.push(t)}).next(()=>r)}}Y(e,t){let n=this.store.getAll(e,null===t?void 0:t);return new M((t,r)=>{n.onerror=e=>{r(e.target.error)},n.onsuccess=e=>{t(e.target.result)}})}Z(e,t){E(Av,"DELETE ALL",this.store.name);var r=this.options(e,t),r=(r.X=!1,this.cursor(r));return this.H(r,(e,t,r)=>r.delete())}ee(e,t){let r;t?r=e:(r={},t=e);var n=this.cursor(r);return this.H(n,t)}te(i){let e=this.cursor({});return new M((r,n)=>{e.onerror=e=>{var t=Uv(e.target.error);n(t)},e.onsuccess=e=>{let t=e.target.result;t?i(t.primaryKey,t.value).next(e=>{e?t.continue():r()}):r()}})}H(e,s){let a=[];return new M((i,t)=>{e.onerror=e=>{t(e.target.error)},e.onsuccess=e=>{var n=e.target.result;if(n){let t=new Dv(n),r=s(n.primaryKey,n.value,t);if(r instanceof M){let e=r.catch(e=>(t.done(),M.reject(e)));a.push(e)}t.isDone?i():null===t.G?n.continue():n.continue(t.G)}else i()}}).next(()=>M.waitFor(a))}options(e,t){let r;return void 0!==e&&("string"==typeof e?r=e:t=e),{index:r,range:t}}cursor(e){let t="next";var r;return e.reverse&&(t="prev"),e.index?(r=this.store.index(e.index),e.X?r.openKeyCursor(e.range,t):r.openCursor(e.range,t)):this.store.openCursor(e.range,t)}}function Lv(e){return new M((r,n)=>{e.onsuccess=e=>{var t=e.target.result;r(t)},e.onerror=e=>{var t=Uv(e.target.error);n(t)}})}let Fv=!1;function Uv(e){let t=Rv.M(ae());if(12.2<=t&&t<13){let t="An internal error was encountered in the Indexed Database server";if(0<=e.message.indexOf(t)){let e=new A("internal",`IOS_INDEXEDDB_BUG1: IndexedDb has thrown '${t}'. This is likely due to an unavoidable bug in iOS. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.`);return Fv||(Fv=!0,setTimeout(()=>{throw e},0)),e}}return e}let Vv="IndexBackfiller";class qv{constructor(e,t){this.asyncQueue=e,this.ne=t,this.task=null}start(){this.re(15e3)}stop(){this.task&&(this.task.cancel(),this.task=null)}get started(){return null!==this.task}re(e){E(Vv,`Scheduled in ${e}ms`),this.task=this.asyncQueue.enqueueAfterDelay("index_backfill",e,async()=>{this.task=null;try{var e=await this.ne.ie();E(Vv,"Documents written: "+e)}catch(e){Ov(e)?E(Vv,"Ignoring IndexedDB error during index backfill: ",e):await kv(e)}await this.re(6e4)})}}class Bv{constructor(e,t){this.localStore=e,this.persistence=t}async ie(t=50){return this.persistence.runTransaction("Backfill Indexes","readwrite-primary",e=>this.se(e,t))}se(e,t){let r=new Set,n=t,i=!0;return M.doWhile(()=>!0===i&&0<n,()=>this.localStore.indexManager.getNextCollectionGroupToUpdate(e).next(t=>{if(null!==t&&!r.has(t))return E(Vv,"Processing collection: "+t),this.oe(e,t,n).next(e=>{n-=e,r.add(t)});i=!1})).next(()=>t-n)}oe(n,i,e){return this.localStore.indexManager.getMinOffsetFromCollectionGroup(n,i).next(r=>this.localStore.localDocuments.getNextDocuments(n,i,r,e).next(e=>{let t=e.changes;return this.localStore.indexManager.updateIndexEntries(n,t).next(()=>this._e(r,e)).next(e=>(E(Vv,"Updating offset: "+e),this.localStore.indexManager.updateCollectionGroup(n,i,e))).next(()=>t.size)}))}_e(e,t){let n=e;return t.changes.forEach((e,t)=>{var r=Iv(t);0<Ev(r,n)&&(n=r)}),new Tv(n.readTime,n.documentKey,Math.max(t.batchId,e.largestBatchId))}}class jv{constructor(e,t){this.previousValue=e,t&&(t.sequenceNumberHandler=e=>this.ae(e),this.ue=e=>t.writeSequenceNumber(e))}ae(e){return this.previousValue=Math.max(e,this.previousValue),this.previousValue}next(){var e=++this.previousValue;return this.ue&&this.ue(e),e}}let zv=jv.ce=-1;function Kv(e){return null==e}function Wv(e){return 0===e&&1/e==-1/0}function Hv(e){return"number"==typeof e&&Number.isInteger(e)&&!Wv(e)&&e<=Number.MAX_SAFE_INTEGER&&e>=Number.MIN_SAFE_INTEGER}let Gv="";function $v(e){let t="";for(let r=0;r<e.length;r++)0<t.length&&(t=Qv(t)),t=((t,e)=>{let r=e,n=t.length;for(let i=0;i<n;i++){let e=t.charAt(i);switch(e){case"\0":r+="";break;case Gv:r+="";break;default:r+=e}}return r})(e.get(r),t);return Qv(t)}function Qv(e){return e+Gv+""}function Yv(r){let e=r.length;if(S(2<=e,64408,{path:r}),2===e)return S(r.charAt(0)===Gv&&""===r.charAt(1),56145,{path:r}),R.emptyPath();var __PRIVATE_lastReasonableEscapeIndex=e-2,n=[];let i="";for(let a=0;a<e;){let t=r.indexOf(Gv,a);switch((t<0||t>__PRIVATE_lastReasonableEscapeIndex)&&C(50515,{path:r}),r.charAt(t+1)){case"":var s=r.substring(a,t);let e;0===i.length?e=s:(i+=s,e=i,i=""),n.push(e);break;case"":i=i+r.substring(a,t)+"\0";break;case"":i+=r.substring(a,t+1);break;default:C(61167,{path:r})}a=t+2}return new R(n)}let Jv="remoteDocuments",Xv="owner",Zv="owner",e_="mutationQueues",t_="mutations",r_="batchId",n_="userMutationsIndex",i_=["userId","batchId"];function s_(e,t){return[e,$v(t)]}function a_(e,t,r){return[e,$v(t),r]}let o_={},l_="documentMutations",h_="remoteDocumentsV14",u_=["prefixPath","collectionGroup","readTime","documentId"],c_="documentKeyIndex",d_=["prefixPath","collectionGroup","documentId"],p_="collectionGroupIndex",f_=["collectionGroup","readTime","prefixPath","documentId"],g_="remoteDocumentGlobal",m_="remoteDocumentGlobalKey",v_="targets",__="queryTargetsIndex",y_=["canonicalId","targetId"],w_="targetDocuments",b_=["targetId","path"],I_="documentTargetsIndex",T_=["path","targetId"],E_="targetGlobalKey",C_="targetGlobal",S_="collectionParents",k_=["collectionId","parent"],A_="clientMetadata",N_="bundles",R_="namedQueries",P_="indexConfiguration",D_="collectionGroupIndex",x_="indexState",O_=["indexId","uid"],M_="sequenceNumberIndex",L_=["uid","sequenceNumber"],F_="indexEntries",U_=["indexId","uid","arrayValue","directionalValue","orderedDocumentKey","documentKey"],V_="documentKeyIndex",q_=["indexId","uid","orderedDocumentKey"],B_="documentOverlays",j_=["userId","collectionPath","documentId"],z_="collectionPathOverlayIndex",K_=["userId","collectionPath","largestBatchId"],W_="collectionGroupOverlayIndex",H_=["userId","collectionGroup","largestBatchId"],G_="globals",$_=[e_,t_,l_,Jv,v_,Xv,C_,w_,A_,g_,S_,N_,R_],Q_=[...$_,B_],Y_=[e_,t_,l_,h_,v_,Xv,C_,w_,A_,g_,S_,N_,R_,B_],J_=Y_,X_=[...J_,P_,x_,F_],Z_=X_,ey=[...X_,G_],ty=ey;class ry extends Sv{constructor(e,t){super(),this.le=e,this.currentSequenceNumber=t}}function ny(e,t){var r=e;return Rv.O(r.le,t)}function iy(e){let t=0;for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t++;return t}function sy(e,t){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t(r,e[r])}function ay(e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}class oy{constructor(e,t){this.comparator=e,this.root=t||hy.EMPTY}insert(e,t){return new oy(this.comparator,this.root.insert(e,t,this.comparator).copy(null,null,hy.BLACK,null,null))}remove(e){return new oy(this.comparator,this.root.remove(e,this.comparator).copy(null,null,hy.BLACK,null,null))}get(e){let t=this.root;for(;!t.isEmpty();){var r=this.comparator(e,t.key);if(0===r)return t.value;r<0?t=t.left:0<r&&(t=t.right)}return null}indexOf(e){let t=0,r=this.root;for(;!r.isEmpty();){var n=this.comparator(e,r.key);if(0===n)return t+r.left.size;r=n<0?r.left:(t+=r.left.size+1,r.right)}return-1}isEmpty(){return this.root.isEmpty()}get size(){return this.root.size}minKey(){return this.root.minKey()}maxKey(){return this.root.maxKey()}inorderTraversal(e){return this.root.inorderTraversal(e)}forEach(r){this.inorderTraversal((e,t)=>(r(e,t),!1))}toString(){let r=[];return this.inorderTraversal((e,t)=>(r.push(e+":"+t),!1)),`{${r.join(", ")}}`}reverseTraversal(e){return this.root.reverseTraversal(e)}getIterator(){return new ly(this.root,null,this.comparator,!1)}getIteratorFrom(e){return new ly(this.root,e,this.comparator,!1)}getReverseIterator(){return new ly(this.root,null,this.comparator,!0)}getReverseIteratorFrom(e){return new ly(this.root,e,this.comparator,!0)}}class ly{constructor(e,t,r,n){this.isReverse=n,this.nodeStack=[];let i=1;for(;!e.isEmpty();)if(i=t?r(e.key,t):1,t&&n&&(i*=-1),i<0)e=this.isReverse?e.left:e.right;else{if(0===i){this.nodeStack.push(e);break}this.nodeStack.push(e),e=this.isReverse?e.right:e.left}}getNext(){let e=this.nodeStack.pop();var t={key:e.key,value:e.value};if(this.isReverse)for(e=e.left;!e.isEmpty();)this.nodeStack.push(e),e=e.right;else for(e=e.right;!e.isEmpty();)this.nodeStack.push(e),e=e.left;return t}hasNext(){return 0<this.nodeStack.length}peek(){var e;return 0===this.nodeStack.length?null:{key:(e=this.nodeStack[this.nodeStack.length-1]).key,value:e.value}}}class hy{constructor(e,t,r,n,i){this.key=e,this.value=t,this.color=null!=r?r:hy.RED,this.left=null!=n?n:hy.EMPTY,this.right=null!=i?i:hy.EMPTY,this.size=this.left.size+1+this.right.size}copy(e,t,r,n,i){return new hy(null!=e?e:this.key,null!=t?t:this.value,null!=r?r:this.color,null!=n?n:this.left,null!=i?i:this.right)}isEmpty(){return!1}inorderTraversal(e){return this.left.inorderTraversal(e)||e(this.key,this.value)||this.right.inorderTraversal(e)}reverseTraversal(e){return this.right.reverseTraversal(e)||e(this.key,this.value)||this.left.reverseTraversal(e)}min(){return this.left.isEmpty()?this:this.left.min()}minKey(){return this.min().key}maxKey(){return this.right.isEmpty()?this.key:this.right.maxKey()}insert(e,t,r){var n=this,i=r(e,n.key);return(n=i<0?n.copy(null,null,null,n.left.insert(e,t,r),null):0===i?n.copy(null,t,null,null,null):n.copy(null,null,null,null,n.right.insert(e,t,r))).fixUp()}removeMin(){if(this.left.isEmpty())return hy.EMPTY;let e=this;return(e=(e=e.left.isRed()||e.left.left.isRed()?e:e.moveRedLeft()).copy(null,null,null,e.left.removeMin(),null)).fixUp()}remove(e,t){let r,n=this;if(t(e,n.key)<0)n=(n=n.left.isEmpty()||n.left.isRed()||n.left.left.isRed()?n:n.moveRedLeft()).copy(null,null,null,n.left.remove(e,t),null);else{if(0===t(e,(n=(n=n.left.isRed()?n.rotateRight():n).right.isEmpty()||n.right.isRed()||n.right.left.isRed()?n:n.moveRedRight()).key)){if(n.right.isEmpty())return hy.EMPTY;r=n.right.min(),n=n.copy(r.key,r.value,null,null,n.right.removeMin())}n=n.copy(null,null,null,null,n.right.remove(e,t))}return n.fixUp()}isRed(){return this.color}fixUp(){let e=this;return e=(e=(e=e.right.isRed()&&!e.left.isRed()?e.rotateLeft():e).left.isRed()&&e.left.left.isRed()?e.rotateRight():e).left.isRed()&&e.right.isRed()?e.colorFlip():e}moveRedLeft(){let e=this.colorFlip();return e=e.right.left.isRed()?(e=(e=e.copy(null,null,null,null,e.right.rotateRight())).rotateLeft()).colorFlip():e}moveRedRight(){let e=this.colorFlip();return e=e.left.left.isRed()?(e=e.rotateRight()).colorFlip():e}rotateLeft(){var e=this.copy(null,null,hy.RED,null,this.right.left);return this.right.copy(null,null,this.color,e,null)}rotateRight(){var e=this.copy(null,null,hy.RED,this.left.right,null);return this.left.copy(null,null,this.color,null,e)}colorFlip(){var e=this.left.copy(null,null,!this.left.color,null,null),t=this.right.copy(null,null,!this.right.color,null,null);return this.copy(null,null,!this.color,e,t)}checkMaxDepth(){var e=this.check();return Math.pow(2,e)<=this.size+1}check(){if(this.isRed()&&this.left.isRed())throw C(43730,{key:this.key,value:this.value});if(this.right.isRed())throw C(14113,{key:this.key,value:this.value});var e=this.left.check();if(e!==this.right.check())throw C(27949);return e+(this.isRed()?0:1)}}hy.EMPTY=null,hy.RED=!0,hy.BLACK=!1,hy.EMPTY=new class{constructor(){this.size=0}get key(){throw C(57766)}get value(){throw C(16141)}get color(){throw C(16727)}get left(){throw C(29726)}get right(){throw C(36894)}copy(e,t,r,n,i){return this}insert(e,t,r){return new hy(e,t)}remove(e,t){return this}isEmpty(){return!0}inorderTraversal(e){return!1}reverseTraversal(e){return!1}minKey(){return null}maxKey(){return null}isRed(){return!1}checkMaxDepth(){return!0}check(){return 0}};class L{constructor(e){this.comparator=e,this.data=new oy(this.comparator)}has(e){return null!==this.data.get(e)}first(){return this.data.minKey()}last(){return this.data.maxKey()}get size(){return this.data.size}indexOf(e){return this.data.indexOf(e)}forEach(r){this.data.inorderTraversal((e,t)=>(r(e),!1))}forEachInRange(e,t){for(var r=this.data.getIteratorFrom(e[0]);r.hasNext();){var n=r.getNext();if(0<=this.comparator(n.key,e[1]))return;t(n.key)}}forEachWhile(e,t){for(var r=void 0!==t?this.data.getIteratorFrom(t):this.data.getIterator();r.hasNext();)if(!e(r.getNext().key))return}firstAfterOrEqual(e){var t=this.data.getIteratorFrom(e);return t.hasNext()?t.getNext().key:null}getIterator(){return new uy(this.data.getIterator())}getIteratorFrom(e){return new uy(this.data.getIteratorFrom(e))}add(e){return this.copy(this.data.remove(e).insert(e,!0))}delete(e){return this.has(e)?this.copy(this.data.remove(e)):this}isEmpty(){return this.data.isEmpty()}unionWith(e){let t=this;return t.size<e.size&&(t=e,e=this),e.forEach(e=>{t=t.add(e)}),t}isEqual(e){if(!(e instanceof L))return!1;if(this.size!==e.size)return!1;for(var r=this.data.getIterator(),n=e.data.getIterator();r.hasNext();){let e=r.getNext().key,t=n.getNext().key;if(0!==this.comparator(e,t))return!1}return!0}toArray(){let t=[];return this.forEach(e=>{t.push(e)}),t}toString(){let t=[];return this.forEach(e=>t.push(e)),"SortedSet("+t.toString()+")"}copy(e){var t=new L(this.comparator);return t.data=e,t}}class uy{constructor(e){this.iter=e}getNext(){return this.iter.getNext().key}hasNext(){return this.iter.hasNext()}}function cy(e){return e.hasNext()?e.getNext():void 0}class dy{constructor(e){(this.fields=e).sort(iv.comparator)}static empty(){return new dy([])}unionWith(e){let t=new L(iv.comparator);for(let e of this.fields)t=t.add(e);for(var r of e)t=t.add(r);return new dy(t.toArray())}covers(e){for(var t of this.fields)if(t.isPrefixOf(e))return!0;return!1}isEqual(e){return Zm(this.fields,e.fields,(e,t)=>e.isEqual(t))}}class py extends Error{constructor(){super(...arguments),this.name="Base64DecodeError"}}class fy{constructor(e){this.binaryString=e}static fromBase64String(e){var t=(e=>{try{return atob(e)}catch(e){throw"undefined"!=typeof DOMException&&e instanceof DOMException?new py("Invalid base64 string: "+e):e}})(e);return new fy(t)}static fromUint8Array(e){var t=(e=>{let t="";for(let r=0;r<e.length;++r)t+=String.fromCharCode(e[r]);return t})(e);return new fy(t)}[Symbol.iterator](){let e=0;return{next:()=>e<this.binaryString.length?{value:this.binaryString.charCodeAt(e++),done:!1}:{value:void 0,done:!0}}}toBase64(){return e=this.binaryString,btoa(e);var e}toUint8Array(){var e=this.binaryString,t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}approximateByteSize(){return 2*this.binaryString.length}compareTo(e){return N(this.binaryString,e.binaryString)}isEqual(e){return this.binaryString===e.binaryString}}fy.EMPTY_BYTE_STRING=new fy("");let gy=new RegExp(/^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(?:\.(\d+))?Z$/);function my(t){if(S(!!t,39018),"string"!=typeof t)return{seconds:vy(t.seconds),nanos:vy(t.nanos)};{let e=0;var r=gy.exec(t),r=(S(!!r,46558,{timestamp:t}),r[1]&&(r=((r=r[1])+"000000000").substr(0,9),e=Number(r)),new Date(t));return{seconds:Math.floor(r.getTime()/1e3),nanos:e}}}function vy(e){return"number"==typeof e?e:"string"==typeof e?Number(e):0}function _y(e){return"string"==typeof e?fy.fromBase64String(e):fy.fromUint8Array(e)}let yy="server_timestamp",wy="__type__",by="__previous_value__",Iy="__local_write_time__";function Ty(e){return(e?.mapValue?.fields||{})[wy]?.stringValue===yy}function Ey(e){var t=e.mapValue.fields[by];return Ty(t)?Ey(t):t}function Cy(e){var t=my(e.mapValue.fields[Iy].timestampValue);return new x(t.seconds,t.nanos)}class Sy{constructor(e,t,r,n,i,s,a,o,l,h){this.databaseId=e,this.appId=t,this.persistenceKey=r,this.host=n,this.ssl=i,this.forceLongPolling=s,this.autoDetectLongPolling=a,this.longPollingOptions=o,this.useFetchStreams=l,this.isUsingEmulator=h}}let ky="(default)";class Ay{constructor(e,t){this.projectId=e,this.database=t||ky}static empty(){return new Ay("","")}get isDefaultDatabase(){return this.database===ky}isEqual(e){return e instanceof Ay&&e.projectId===this.projectId&&e.database===this.database}}let Ny="__type__",Ry="__max__",Py={mapValue:{fields:{__type__:{stringValue:Ry}}}},Dy="__vector__",xy="value",Oy={nullValue:"NULL_VALUE"};function My(e){return"nullValue"in e?0:"booleanValue"in e?1:"integerValue"in e||"doubleValue"in e?2:"timestampValue"in e?3:"stringValue"in e?5:"bytesValue"in e?6:"referenceValue"in e?7:"geoPointValue"in e?8:"arrayValue"in e?9:"mapValue"in e?Ty(e)?4:Yy(e)?9007199254740991:$y(e)?10:11:C(28295,{value:e})}function Ly(t,r){if(t===r)return!0;var n,i,s,a,o,e=My(t);if(e!==My(r))return!1;switch(e){case 0:case 9007199254740991:return!0;case 1:return t.booleanValue===r.booleanValue;case 4:return Cy(t).isEqual(Cy(r));case 3:return s=r,"string"==typeof(i=t).timestampValue&&"string"==typeof s.timestampValue&&i.timestampValue.length===s.timestampValue.length?i.timestampValue===s.timestampValue:(a=my(i.timestampValue),o=my(s.timestampValue),a.seconds===o.seconds&&a.nanos===o.nanos);case 5:return t.stringValue===r.stringValue;case 6:return i=r,_y(t.bytesValue).isEqual(_y(i.bytesValue));case 7:return t.referenceValue===r.referenceValue;case 8:return s=r,vy((n=t).geoPointValue.latitude)===vy(s.geoPointValue.latitude)&&vy(n.geoPointValue.longitude)===vy(s.geoPointValue.longitude);case 2:return n=r,"integerValue"in(h=t)&&"integerValue"in n?vy(h.integerValue)===vy(n.integerValue):"doubleValue"in h&&"doubleValue"in n&&((a=vy(h.doubleValue))===(o=vy(n.doubleValue))?Wv(a)===Wv(o):isNaN(a)&&isNaN(o));case 9:return Zm(t.arrayValue.values||[],r.arrayValue.values||[],Ly);case 10:case 11:var l=t,h=r,u=l.mapValue.fields||{},c=h.mapValue.fields||{};if(iy(u)!==iy(c))return!1;for(let e in u)if(u.hasOwnProperty(e)&&(void 0===c[e]||!Ly(u[e],c[e])))return!1;return!0;default:return C(52216,{left:t})}}function Fy(e,t){return void 0!==(e.values||[]).find(e=>Ly(e,t))}function Uy(e,n){if(e===n)return 0;var i,s,a,o,l,h,u,c,d=My(e),t=My(n);if(d!==t)return N(d,t);switch(d){case 0:case 9007199254740991:return 0;case 1:return N(e.booleanValue,n.booleanValue);case 2:return h=n,u=vy((l=e).integerValue||l.doubleValue),c=vy(h.integerValue||h.doubleValue),u<c?-1:c<u?1:u===c?0:isNaN(u)?isNaN(c)?0:-1:1;case 3:return Vy(e.timestampValue,n.timestampValue);case 4:return Vy(Cy(e),Cy(n));case 5:return Qm(e.stringValue,n.stringValue);case 6:return l=e.bytesValue,h=n.bytesValue,u=_y(l),c=_y(h),u.compareTo(c);case 7:var p=e.referenceValue,f=n.referenceValue,g=p.split("/"),m=f.split("/");for(let t=0;t<g.length&&t<m.length;t++){let e=N(g[t],m[t]);if(0!==e)return e}return N(g.length,m.length);case 8:return p=e.geoPointValue,f=n.geoPointValue,0!==(o=N(vy(p.latitude),vy(f.latitude)))?o:N(vy(p.longitude),vy(f.longitude));case 9:return qy(e.arrayValue,n.arrayValue);case 10:return v=e.mapValue,i=n.mapValue,o=v.fields||{},s=i.fields||{},o=o[xy]?.arrayValue,s=s[xy]?.arrayValue,0!==(a=N(o?.values?.length||0,s?.values?.length||0))?a:qy(o,s);case 11:var v=e.mapValue,_=n.mapValue;if(v===Py.mapValue&&_===Py.mapValue)return 0;if(v===Py.mapValue)return 1;if(_===Py.mapValue)return-1;var y=v.fields||{},w=Object.keys(y),b=_.fields||{},I=Object.keys(b);w.sort(),I.sort();for(let r=0;r<w.length&&r<I.length;++r){let e=Qm(w[r],I[r]);if(0!==e)return e;var T=Uy(y[w[r]],b[I[r]]);if(0!==T)return T}return N(w.length,I.length);default:throw C(23264,{he:d})}}function Vy(e,t){var r,n,i;return"string"==typeof e&&"string"==typeof t&&e.length===t.length?N(e,t):(r=my(e),n=my(t),0!==(i=N(r.seconds,n.seconds))?i:N(r.nanos,n.nanos))}function qy(e,t){var r=e.values||[],n=t.values||[];for(let i=0;i<r.length&&i<n.length;++i){let e=Uy(r[i],n[i]);if(e)return e}return N(r.length,n.length)}function By(e){return function s(e){return"nullValue"in e?"null":"booleanValue"in e?""+e.booleanValue:"integerValue"in e?""+e.integerValue:"doubleValue"in e?""+e.doubleValue:"timestampValue"in e?(e=>{let t=my(e);return`time(${t.seconds},${t.nanos})`})(e.timestampValue):"stringValue"in e?e.stringValue:"bytesValue"in e?(e=>_y(e).toBase64())(e.bytesValue):"referenceValue"in e?(e=>P.fromName(e).toString())(e.referenceValue):"geoPointValue"in e?(e=>`geo(${e.latitude},${e.longitude})`)(e.geoPointValue):"arrayValue"in e?(e=>{let t="[",r=!0;for(var n of e.values||[])r?r=!1:t+=",",t+=s(n);return t+"]"})(e.arrayValue):"mapValue"in e?(e=>{let t=Object.keys(e.fields||{}).sort(),r="{",n=!0;for(var i of t)n?n=!1:r+=",",r+=i+":"+s(e.fields[i]);return r+"}"})(e.mapValue):C(61005,{value:e})}(e)}function jy(e,t){return{referenceValue:`projects/${e.projectId}/databases/${e.database}/documents/`+t.path.canonicalString()}}function zy(e){return!!e&&"integerValue"in e}function Ky(e){return!!e&&"arrayValue"in e}function Wy(e){return e&&"nullValue"in e}function Hy(e){return e&&"doubleValue"in e&&isNaN(Number(e.doubleValue))}function Gy(e){return e&&"mapValue"in e}function $y(e){return(e?.mapValue?.fields||{})[Ny]?.stringValue===Dy}function Qy(t){if(t.geoPointValue)return{geoPointValue:{...t.geoPointValue}};if(t.timestampValue&&"object"==typeof t.timestampValue)return{timestampValue:{...t.timestampValue}};if(t.mapValue){let r={mapValue:{fields:{}}};return sy(t.mapValue.fields,(e,t)=>r.mapValue.fields[e]=Qy(t)),r}if(t.arrayValue){var r={arrayValue:{values:[]}};for(let e=0;e<(t.arrayValue.values||[]).length;++e)r.arrayValue.values[e]=Qy(t.arrayValue.values[e]);return r}return{...t}}function Yy(e){return(((e.mapValue||{}).fields||{}).__type__||{}).stringValue===Ry}let Jy={mapValue:{fields:{[Ny]:{stringValue:Dy},[xy]:{arrayValue:{}}}}};function Xy(e,t){var r=Uy(e.value,t.value);return 0!==r?r:e.inclusive&&!t.inclusive?-1:!e.inclusive&&t.inclusive?1:0}function Zy(e,t){var r=Uy(e.value,t.value);return 0!==r?r:e.inclusive&&!t.inclusive?1:!e.inclusive&&t.inclusive?-1:0}class ew{constructor(e){this.value=e}static empty(){return new ew({mapValue:{}})}field(r){if(r.isEmpty())return this.value;{let e=this.value;for(let t=0;t<r.length-1;++t)if(!Gy(e=(e.mapValue.fields||{})[r.get(t)]))return null;return(e=(e.mapValue.fields||{})[r.lastSegment()])||null}}set(e,t){this.getFieldsMap(e.popLast())[e.lastSegment()]=Qy(t)}setAll(e){let r=iv.emptyPath(),n={},i=[];e.forEach((e,t)=>{if(!r.isImmediateParentOf(t)){let e=this.getFieldsMap(r);this.applyChanges(e,n,i),n={},i=[],r=t.popLast()}e?n[t.lastSegment()]=Qy(e):i.push(t.lastSegment())});var t=this.getFieldsMap(r);this.applyChanges(t,n,i)}delete(e){var t=this.field(e.popLast());Gy(t)&&t.mapValue.fields&&delete t.mapValue.fields[e.lastSegment()]}isEqual(e){return Ly(this.value,e.value)}getFieldsMap(t){let r=this.value;r.mapValue.fields||(r.mapValue={fields:{}});for(let n=0;n<t.length;++n){let e=r.mapValue.fields[t.get(n)];Gy(e)&&e.mapValue.fields||(e={mapValue:{fields:{}}},r.mapValue.fields[t.get(n)]=e),r=e}return r.mapValue.fields}applyChanges(r,e,t){sy(e,(e,t)=>r[e]=t);for(let e of t)delete r[e]}clone(){return new ew(Qy(this.value))}}class tw{constructor(e,t,r,n,i,s,a){this.key=e,this.documentType=t,this.version=r,this.readTime=n,this.createTime=i,this.data=s,this.documentState=a}static newInvalidDocument(e){return new tw(e,0,O.min(),O.min(),O.min(),ew.empty(),0)}static newFoundDocument(e,t,r,n){return new tw(e,1,t,O.min(),r,n,0)}static newNoDocument(e,t){return new tw(e,2,t,O.min(),O.min(),ew.empty(),0)}static newUnknownDocument(e,t){return new tw(e,3,t,O.min(),O.min(),ew.empty(),2)}convertToFoundDocument(e,t){return!this.createTime.isEqual(O.min())||2!==this.documentType&&0!==this.documentType||(this.createTime=e),this.version=e,this.documentType=1,this.data=t,this.documentState=0,this}convertToNoDocument(e){return this.version=e,this.documentType=2,this.data=ew.empty(),this.documentState=0,this}convertToUnknownDocument(e){return this.version=e,this.documentType=3,this.data=ew.empty(),this.documentState=2,this}setHasCommittedMutations(){return this.documentState=2,this}setHasLocalMutations(){return this.documentState=1,this.version=O.min(),this}setReadTime(e){return this.readTime=e,this}get hasLocalMutations(){return 1===this.documentState}get hasCommittedMutations(){return 2===this.documentState}get hasPendingWrites(){return this.hasLocalMutations||this.hasCommittedMutations}isValidDocument(){return 0!==this.documentType}isFoundDocument(){return 1===this.documentType}isNoDocument(){return 2===this.documentType}isUnknownDocument(){return 3===this.documentType}isEqual(e){return e instanceof tw&&this.key.isEqual(e.key)&&this.version.isEqual(e.version)&&this.documentType===e.documentType&&this.documentState===e.documentState&&this.data.isEqual(e.data)}mutableCopy(){return new tw(this.key,this.documentType,this.version,this.readTime,this.createTime,this.data.clone(),this.documentState)}toString(){return`Document(${this.key}, ${this.version}, ${JSON.stringify(this.data.value)}, {createTime: ${this.createTime}}), {documentType: ${this.documentType}}), {documentState: ${this.documentState}})`}}class rw{constructor(e,t){this.position=e,this.inclusive=t}}function nw(e,t,r){let n=0;for(let a=0;a<e.position.length;a++){var i=t[a],s=e.position[a];if(n=i.field.isKeyField()?P.comparator(P.fromName(s.referenceValue),r.key):Uy(s,r.data.field(i.field)),"desc"===i.dir&&(n*=-1),0!==n)break}return n}function iw(e,t){if(null===e)return null===t;if(null===t)return!1;if(e.inclusive!==t.inclusive||e.position.length!==t.position.length)return!1;for(let r=0;r<e.position.length;r++)if(!Ly(e.position[r],t.position[r]))return!1;return!0}class sw{constructor(e,t="asc"){this.field=e,this.dir=t}}class aw{}class F extends aw{constructor(e,t,r){super(),this.field=e,this.op=t,this.value=r}static create(e,t,r){return e.isKeyField()?"in"===t||"not-in"===t?this.createKeyFieldInFilter(e,t,r):new pw(e,t,r):"array-contains"===t?new vw(e,r):"in"===t?new _w(e,r):"not-in"===t?new yw(e,r):"array-contains-any"===t?new ww(e,r):new F(e,t,r)}static createKeyFieldInFilter(e,t,r){return new("in"===t?fw:gw)(e,r)}matches(e){var t=e.data.field(this.field);return"!="===this.op?null!==t&&void 0===t.nullValue&&this.matchesComparison(Uy(t,this.value)):null!==t&&My(this.value)===My(t)&&this.matchesComparison(Uy(t,this.value))}matchesComparison(e){switch(this.op){case"<":return e<0;case"<=":return e<=0;case"==":return 0===e;case"!=":return 0!==e;case">":return 0<e;case">=":return 0<=e;default:return C(47266,{operator:this.op})}}isInequality(){return 0<=["<","<=",">",">=","!=","not-in"].indexOf(this.op)}getFlattenedFilters(){return[this]}getFilters(){return[this]}}class U extends aw{constructor(e,t){super(),this.filters=e,this.op=t,this.Pe=null}static create(e,t){return new U(e,t)}matches(t){return ow(this)?void 0===this.filters.find(e=>!e.matches(t)):void 0!==this.filters.find(e=>e.matches(t))}getFlattenedFilters(){return null===this.Pe&&(this.Pe=this.filters.reduce((e,t)=>e.concat(t.getFlattenedFilters()),[])),this.Pe}getFilters(){return Object.assign([],this.filters)}}function ow(e){return"and"===e.op}function lw(e){return"or"===e.op}function hw(e){return uw(e)&&ow(e)}function uw(e){for(var t of e.filters)if(t instanceof U)return!1;return!0}function cw(e,t){var r=e.filters.concat(t);return U.create(r,e.op)}function dw(e){return e instanceof F?`${(t=e).field.canonicalString()} ${t.op} `+By(t.value):e instanceof U?(t=e).op.toString()+" {"+t.getFilters().map(dw).join(" ,")+"}":"Filter";var t}class pw extends F{constructor(e,t,r){super(e,t,r),this.key=P.fromName(r.referenceValue)}matches(e){var t=P.comparator(e.key,this.key);return this.matchesComparison(t)}}class fw extends F{constructor(e,t){super(e,"in",t),this.keys=mw(0,t)}matches(t){return this.keys.some(e=>e.isEqual(t.key))}}class gw extends F{constructor(e,t){super(e,"not-in",t),this.keys=mw(0,t)}matches(t){return!this.keys.some(e=>e.isEqual(t.key))}}function mw(e,t){return(t.arrayValue?.values||[]).map(e=>P.fromName(e.referenceValue))}class vw extends F{constructor(e,t){super(e,"array-contains",t)}matches(e){var t=e.data.field(this.field);return Ky(t)&&Fy(t.arrayValue,this.value)}}class _w extends F{constructor(e,t){super(e,"in",t)}matches(e){var t=e.data.field(this.field);return null!==t&&Fy(this.value.arrayValue,t)}}class yw extends F{constructor(e,t){super(e,"not-in",t)}matches(e){var t;return!Fy(this.value.arrayValue,{nullValue:"NULL_VALUE"})&&null!==(t=e.data.field(this.field))&&void 0===t.nullValue&&!Fy(this.value.arrayValue,t)}}class ww extends F{constructor(e,t){super(e,"array-contains-any",t)}matches(e){var t=e.data.field(this.field);return!(!Ky(t)||!t.arrayValue.values)&&t.arrayValue.values.some(e=>Fy(this.value.arrayValue,e))}}class bw{constructor(e,t=null,r=[],n=[],i=null,s=null,a=null){this.path=e,this.collectionGroup=t,this.orderBy=r,this.filters=n,this.limit=i,this.startAt=s,this.endAt=a,this.Te=null}}function Iw(e,t=null,r=[],n=[],i=null,s=null,a=null){return new bw(e,t,r,n,i,s,a)}function Tw(e){var t=e;if(null===t.Te){let e=t.path.canonicalString();null!==t.collectionGroup&&(e+="|cg:"+t.collectionGroup),e=(e=(e+="|f:")+t.filters.map(e=>function t(e){var r;return e instanceof F?e.field.canonicalString()+e.op.toString()+By(e.value):hw(e)?e.filters.map(e=>t(e)).join(","):(r=e.filters.map(e=>t(e)).join(","),e.op+`(${r})`)}(e)).join(",")+"|ob:")+t.orderBy.map(e=>(e=e).field.canonicalString()+e.dir).join(","),Kv(t.limit)||(e=(e+="|l:")+t.limit),t.startAt&&(e=(e=(e+="|lb:")+(t.startAt.inclusive?"b:":"a:"))+t.startAt.position.map(e=>By(e)).join(",")),t.endAt&&(e=(e=(e+="|ub:")+(t.endAt.inclusive?"a:":"b:"))+t.endAt.position.map(e=>By(e)).join(",")),t.Te=e}return t.Te}function Ew(e,t){if(e.limit!==t.limit)return!1;if(e.orderBy.length!==t.orderBy.length)return!1;for(let i=0;i<e.orderBy.length;i++)if(r=e.orderBy[i],n=t.orderBy[i],r.dir!==n.dir||!r.field.isEqual(n.field))return!1;var r,n;if(e.filters.length!==t.filters.length)return!1;for(let s=0;s<e.filters.length;s++)if(!function n(e,t){return e instanceof F?(r=e,(s=t)instanceof F&&r.op===s.op&&r.field.isEqual(s.field)&&Ly(r.value,s.value)):e instanceof U?(r=e,(i=t)instanceof U&&r.op===i.op&&r.filters.length===i.filters.length&&r.filters.reduce((e,t,r)=>e&&n(t,i.filters[r]),!0)):void C(19439);var i,r,s}(e.filters[s],t.filters[s]))return!1;return e.collectionGroup===t.collectionGroup&&!!e.path.isEqual(t.path)&&!!iw(e.startAt,t.startAt)&&iw(e.endAt,t.endAt)}function Cw(e){return P.isDocumentKey(e.path)&&null===e.collectionGroup&&0===e.filters.length}function Sw(e,t){return e.filters.filter(e=>e instanceof F&&e.field.isEqual(t))}function kw(e,r,n){let i=Oy,s=!0;for(let n of Sw(e,r)){let e=Oy,t=!0;switch(n.op){case"<":case"<=":e="nullValue"in(a=n.value)?Oy:"booleanValue"in a?{booleanValue:!1}:"integerValue"in a||"doubleValue"in a?{doubleValue:NaN}:"timestampValue"in a?{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}}:"stringValue"in a?{stringValue:""}:"bytesValue"in a?{bytesValue:""}:"referenceValue"in a?jy(Ay.empty(),P.empty()):"geoPointValue"in a?{geoPointValue:{latitude:-90,longitude:-180}}:"arrayValue"in a?{arrayValue:{}}:"mapValue"in a?$y(a)?Jy:{mapValue:{}}:C(35942,{value:a});break;case"==":case"in":case">=":e=n.value;break;case">":e=n.value,t=!1;break;case"!=":case"not-in":e=Oy}Xy({value:i,inclusive:s},{value:e,inclusive:t})<0&&(i=e,s=t)}var a;if(null!==n)for(let t=0;t<e.orderBy.length;++t)if(e.orderBy[t].field.isEqual(r)){let e=n.position[t];Xy({value:i,inclusive:s},{value:e,inclusive:n.inclusive})<0&&(i=e,s=n.inclusive);break}return{value:i,inclusive:s}}function Aw(e,r,n){let i=Py,s=!0;for(let n of Sw(e,r)){let e=Py,t=!0;switch(n.op){case">=":case">":e="nullValue"in(a=n.value)?{booleanValue:!1}:"booleanValue"in a?{doubleValue:NaN}:"integerValue"in a||"doubleValue"in a?{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}}:"timestampValue"in a?{stringValue:""}:"stringValue"in a?{bytesValue:""}:"bytesValue"in a?jy(Ay.empty(),P.empty()):"referenceValue"in a?{geoPointValue:{latitude:-90,longitude:-180}}:"geoPointValue"in a?{arrayValue:{}}:"arrayValue"in a?Jy:"mapValue"in a?$y(a)?{mapValue:{}}:Py:C(61959,{value:a}),t=!1;break;case"==":case"in":case"<=":e=n.value;break;case"<":e=n.value,t=!1;break;case"!=":case"not-in":e=Py}0<Zy({value:i,inclusive:s},{value:e,inclusive:t})&&(i=e,s=t)}var a;if(null!==n)for(let t=0;t<e.orderBy.length;++t)if(e.orderBy[t].field.isEqual(r)){let e=n.position[t];0<Zy({value:i,inclusive:s},{value:e,inclusive:n.inclusive})&&(i=e,s=n.inclusive);break}return{value:i,inclusive:s}}class Nw{constructor(e,t=null,r=[],n=[],i=null,s="F",a=null,o=null){this.path=e,this.collectionGroup=t,this.explicitOrderBy=r,this.filters=n,this.limit=i,this.limitType=s,this.startAt=a,this.endAt=o,this.Ie=null,this.Ee=null,this.de=null,this.startAt,this.endAt}}function Rw(e,t,r,n,i,s,a,o){return new Nw(e,t,r,n,i,s,a,o)}function Pw(e){return new Nw(e)}function Dw(e){return 0===e.filters.length&&null===e.limit&&null==e.startAt&&null==e.endAt&&(0===e.explicitOrderBy.length||1===e.explicitOrderBy.length&&e.explicitOrderBy[0].field.isKeyField())}function xw(e){return null!==e.collectionGroup}function Ow(e){let n=e;if(null===n.Ie){n.Ie=[];let t=new Set;for(var i of n.explicitOrderBy)n.Ie.push(i),t.add(i.field.canonicalString());let r=0<n.explicitOrderBy.length?n.explicitOrderBy[n.explicitOrderBy.length-1].dir:"asc",e=(e=>{let t=new L(iv.comparator);return e.filters.forEach(e=>{e.getFlattenedFilters().forEach(e=>{e.isInequality()&&(t=t.add(e.field))})}),t})(n);e.forEach(e=>{t.has(e.canonicalString())||e.isKeyField()||n.Ie.push(new sw(e,r))}),t.has(iv.keyField().canonicalString())||n.Ie.push(new sw(iv.keyField(),r))}return n.Ie}function Mw(e){var t=e;return t.Ee||(t.Ee=((e,t)=>{if("F"===e.limitType)return Iw(e.path,e.collectionGroup,t,e.filters,e.limit,e.startAt,e.endAt);t=t.map(e=>{var t="desc"===e.dir?"asc":"desc";return new sw(e.field,t)});var r=e.endAt?new rw(e.endAt.position,e.endAt.inclusive):null,n=e.startAt?new rw(e.startAt.position,e.startAt.inclusive):null;return Iw(e.path,e.collectionGroup,t,e.filters,e.limit,r,n)})(t,Ow(e))),t.Ee}function Lw(e,t){var r=e.filters.concat([t]);return new Nw(e.path,e.collectionGroup,e.explicitOrderBy.slice(),r,e.limit,e.limitType,e.startAt,e.endAt)}function Fw(e,t,r){return new Nw(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),t,r,e.startAt,e.endAt)}function Uw(e,t){return Ew(Mw(e),Mw(t))&&e.limitType===t.limitType}function Vw(e){return Tw(Mw(e))+"|lt:"+e.limitType}function qw(e){return`Query(target=${(e=>{let t=e.path.canonicalString();return null!==e.collectionGroup&&(t+=" collectionGroup="+e.collectionGroup),0<e.filters.length&&(t+=`, filters: [${e.filters.map(e=>dw(e)).join(", ")}]`),Kv(e.limit)||(t+=", limit: "+e.limit),0<e.orderBy.length&&(t+=`, orderBy: [${e.orderBy.map(e=>`${(e=e).field.canonicalString()} (${e.dir})`).join(", ")}]`),e.startAt&&(t=(t=(t+=", startAt: ")+(e.startAt.inclusive?"b:":"a:"))+e.startAt.position.map(e=>By(e)).join(",")),`Target(${t=e.endAt?(t=(t+=", endAt: ")+(e.endAt.inclusive?"a:":"b:"))+e.endAt.position.map(e=>By(e)).join(","):t})`})(Mw(e))}; limitType=${e.limitType})`}function Bw(e,t){return t.isFoundDocument()&&(s=e,o=(a=t).key.path,null!==s.collectionGroup?a.key.hasCollectionId(s.collectionGroup)&&s.path.isPrefixOf(o):P.isDocumentKey(s.path)?s.path.isEqual(o):s.path.isImmediateParentOf(o))&&((e,t)=>{for(var r of Ow(e))if(!r.field.isKeyField()&&null===t.data.field(r.field))return;return 1})(e,t)&&((e,t)=>{for(var r of e.filters)if(!r.matches(t))return;return 1})(e,t)&&(a=t,!(s=e).startAt||(n=s.startAt,r=Ow(s),i=nw(n,r,a),n.inclusive?i<=0:i<0))&&(!s.endAt||(r=s.endAt,n=Ow(s),i=nw(r,n,a),r.inclusive?0<=i:0<i));var r,n,i,s,a,o}function jw(e){return e.collectionGroup||(e.path.length%2==1?e.path.lastSegment():e.path.get(e.path.length-2))}function zw(e){return(t,r)=>{let n=!1;for(var i of Ow(e)){let e=((e,t,r)=>{var n=e.field.isKeyField()?P.comparator(t.key,r.key):((e,t,r)=>{var n=t.data.field(e),i=r.data.field(e);return null!==n&&null!==i?Uy(n,i):C(42886)})(e.field,t,r);switch(e.dir){case"asc":return n;case"desc":return-1*n;default:return C(19790,{direction:e.dir})}})(i,t,r);if(0!==e)return e;n=n||i.field.isKeyField()}return 0}}class Kw{constructor(e,t){this.mapKeyFn=e,this.equalsFn=t,this.inner={},this.innerSize=0}get(r){let e=this.mapKeyFn(r),n=this.inner[e];if(void 0!==n)for(let[e,t]of n)if(this.equalsFn(e,r))return t}has(e){return void 0!==this.get(e)}set(t,r){var e=this.mapKeyFn(t),n=this.inner[e];if(void 0===n)this.inner[e]=[[t,r]];else{for(let e=0;e<n.length;e++)if(this.equalsFn(n[e][0],t))return void(n[e]=[t,r]);n.push([t,r])}this.innerSize++}delete(t){var r=this.mapKeyFn(t),n=this.inner[r];if(void 0!==n)for(let e=0;e<n.length;e++)if(this.equalsFn(n[e][0],t))return 1===n.length?delete this.inner[r]:n.splice(e,1),this.innerSize--,!0;return!1}forEach(n){sy(this.inner,(e,t)=>{for(let[e,r]of t)n(e,r)})}isEmpty(){return ay(this.inner)}size(){return this.innerSize}}let Ww=new oy(P.comparator);let Hw=new oy(P.comparator);function Gw(...e){let t=Hw;for(var r of e)t=t.insert(r.key,r);return t}function $w(e){let r=Hw;return e.forEach((e,t)=>r=r.insert(e,t.overlayedDocument)),r}function Qw(){return new Kw(e=>e.toString(),(e,t)=>e.isEqual(t))}let Yw=new oy(P.comparator),Jw=new L(P.comparator);function V(...e){let t=Jw;for(var r of e)t=t.add(r);return t}let Xw=new L(N);function Zw(e,t){if(e.useProto3Json){if(isNaN(t))return{doubleValue:"NaN"};if(t===1/0)return{doubleValue:"Infinity"};if(t===-1/0)return{doubleValue:"-Infinity"}}return{doubleValue:Wv(t)?"-0":t}}function eb(e){return{integerValue:""+e}}function tb(e,t){return Hv(t)?eb(t):Zw(e,t)}class rb{constructor(){this._=void 0}}function nb(e,t){return e instanceof hb?zy(e=t)||(e=e)&&"doubleValue"in e?t:{integerValue:0}:null}class ib extends rb{}class sb extends rb{constructor(e){super(),this.elements=e}}function ab(e,t){var r=cb(t);for(let t of e.elements)r.some(e=>Ly(e,t))||r.push(t);return{arrayValue:{values:r}}}class ob extends rb{constructor(e){super(),this.elements=e}}function lb(e,t){let r=cb(t);for(let t of e.elements)r=r.filter(e=>!Ly(e,t));return{arrayValue:{values:r}}}class hb extends rb{constructor(e,t){super(),this.serializer=e,this.Ae=t}}function ub(e){return vy(e.integerValue||e.doubleValue)}function cb(e){return Ky(e)&&e.arrayValue.values?e.arrayValue.values.slice():[]}class db{constructor(e,t){this.field=e,this.transform=t}}class pb{constructor(e,t){this.version=e,this.transformResults=t}}class fb{constructor(e,t){this.updateTime=e,this.exists=t}static none(){return new fb}static exists(e){return new fb(void 0,e)}static updateTime(e){return new fb(e)}get isNone(){return void 0===this.updateTime&&void 0===this.exists}isEqual(e){return this.exists===e.exists&&(this.updateTime?!!e.updateTime&&this.updateTime.isEqual(e.updateTime):!e.updateTime)}}function gb(e,t){return void 0!==e.updateTime?t.isFoundDocument()&&t.version.isEqual(e.updateTime):void 0===e.exists||e.exists===t.isFoundDocument()}class mb{}function vb(e,r){if(!e.hasLocalMutations||r&&0===r.fields.length)return null;if(null===r)return e.isNoDocument()?new Cb(e.key,fb.none()):new wb(e.key,e.data,fb.none());{var n,i=e.data,s=ew.empty();let t=new L(iv.comparator);for(n of r.fields)if(!t.has(n)){let e=i.field(n);null===e&&1<n.length&&(n=n.popLast(),e=i.field(n)),null===e?s.delete(n):s.set(n,e),t=t.add(n)}return new bb(e.key,s,new dy(t.toArray()),fb.none())}}function _b(e,t,r,n){return e instanceof wb?(s=t,a=r,o=n,gb((i=e).precondition,s)?(l=i.value.clone(),h=Eb(i.fieldTransforms,o,s),l.setAll(h),s.convertToFoundDocument(s.version,l).setHasLocalMutations(),null):a):e instanceof bb?(i=t,o=r,s=n,gb((a=e).precondition,i)?(h=Eb(a.fieldTransforms,s,i),(l=i.data).setAll(Ib(a)),l.setAll(h),i.convertToFoundDocument(i.version,l).setHasLocalMutations(),null===o?null:o.unionWith(a.fieldMask.fields).unionWith(a.fieldTransforms.map(e=>e.field))):o):(n=t,t=r,gb(e.precondition,n)?(n.convertToNoDocument(n.version).setHasLocalMutations(),null):t);var i,s,a,o,l,h}function yb(e,t){return e.type===t.type&&!!e.key.isEqual(t.key)&&!!e.precondition.isEqual(t.precondition)&&(r=e.fieldTransforms,n=t.fieldTransforms,!!(void 0===r&&void 0===n||r&&n&&Zm(r,n,(e,t)=>(t=t,(e=e).field.isEqual(t.field)&&(e=e.transform,t=t.transform,e instanceof sb&&t instanceof sb||e instanceof ob&&t instanceof ob?Zm(e.elements,t.elements,Ly):e instanceof hb&&t instanceof hb?Ly(e.Ae,t.Ae):e instanceof ib&&t instanceof ib)))))&&(0===e.type?e.value.isEqual(t.value):1!==e.type||e.data.isEqual(t.data)&&e.fieldMask.isEqual(t.fieldMask));var r,n}class wb extends mb{constructor(e,t,r,n=[]){super(),this.key=e,this.value=t,this.precondition=r,this.fieldTransforms=n,this.type=0}getFieldMask(){return null}}class bb extends mb{constructor(e,t,r,n,i=[]){super(),this.key=e,this.data=t,this.fieldMask=r,this.precondition=n,this.fieldTransforms=i,this.type=1}getFieldMask(){return this.fieldMask}}function Ib(r){let n=new Map;return r.fieldMask.fields.forEach(e=>{var t;e.isEmpty()||(t=r.data.field(e),n.set(e,t))}),n}function Tb(e,t,r){var n,i,s,a=new Map;S(e.length===r.length,32656,{Re:r.length,Ve:e.length});for(let u=0;u<r.length;u++){var o=e[u],l=o.transform,h=t.data.field(o.field);a.set(o.field,(n=l,i=h,s=r[u],n instanceof sb?ab(n,i):n instanceof ob?lb(n,i):s))}return a}function Eb(e,r,n){var i,s,a,o,l,h,u,c=new Map;for(i of e){let e=i.transform,t=n.data.field(i.field);c.set(i.field,(s=e,a=t,o=r,u=h=l=void 0,s instanceof ib?(o=o,h=a,u={fields:{[wy]:{stringValue:yy},[Iy]:{timestampValue:{seconds:o.seconds,nanos:o.nanoseconds}}}},(h=h&&Ty(h)?Ey(h):h)&&(u.fields[by]=h),{mapValue:u}):s instanceof sb?ab(s,a):s instanceof ob?lb(s,a):(u=nb(o=s,a),l=ub(u)+ub(o.Ae),zy(u)&&zy(o.Ae)?eb(l):Zw(o.serializer,l))))}return c}class Cb extends mb{constructor(e,t){super(),this.key=e,this.precondition=t,this.type=2,this.fieldTransforms=[]}getFieldMask(){return null}}class Sb extends mb{constructor(e,t){super(),this.key=e,this.precondition=t,this.type=3,this.fieldTransforms=[]}getFieldMask(){return null}}class kb{constructor(e,t,r,n){this.batchId=e,this.localWriteTime=t,this.baseMutations=r,this.mutations=n}applyToRemoteDocument(e,t){var r,n,i,s,a,o,l,h=t.mutationResults;for(let c=0;c<this.mutations.length;c++){var u=this.mutations[c];u.key.isEqual(e.key)&&(r=u,n=e,i=h[c],l=u=o=a=s=void 0,r instanceof wb?(a=n,o=i,u=(s=r).value.clone(),l=Tb(s.fieldTransforms,a,o.transformResults),u.setAll(l),a.convertToFoundDocument(o.version,u).setHasCommittedMutations()):r instanceof bb?(s=n,a=i,gb((o=r).precondition,s)?(l=Tb(o.fieldTransforms,s,a.transformResults),(u=s.data).setAll(Ib(o)),u.setAll(l),s.convertToFoundDocument(a.version,u).setHasCommittedMutations()):s.convertToUnknownDocument(a.version)):n.convertToNoDocument(i.version).setHasCommittedMutations())}}applyToLocalView(e,t){for(var r of this.baseMutations)r.key.isEqual(e.key)&&(t=_b(r,e,t,this.localWriteTime));for(var n of this.mutations)n.key.isEqual(e.key)&&(t=_b(n,e,t,this.localWriteTime));return t}applyToLocalDocumentSet(n,i){let s=Qw();return this.mutations.forEach(e=>{var t=n.get(e.key),r=t.overlayedDocument,t=this.applyToLocalView(r,t.mutatedFields),t=vb(r,i.has(e.key)?null:t);null!==t&&s.set(e.key,t),r.isValidDocument()||r.convertToNoDocument(O.min())}),s}keys(){return this.mutations.reduce((e,t)=>e.add(t.key),V())}isEqual(e){return this.batchId===e.batchId&&Zm(this.mutations,e.mutations,(e,t)=>yb(e,t))&&Zm(this.baseMutations,e.baseMutations,(e,t)=>yb(e,t))}}class Ab{constructor(e,t,r,n){this.batch=e,this.commitVersion=t,this.mutationResults=r,this.docVersions=n}static from(e,t,r){S(e.mutations.length===r.length,58842,{me:e.mutations.length,fe:r.length});let n=Yw;var i=e.mutations;for(let s=0;s<i.length;s++)n=n.insert(i[s].key,r[s].version);return new Ab(e,t,r,n)}}class Nb{constructor(e,t){this.largestBatchId=e,this.mutation=t}getKey(){return this.mutation.key}isEqual(e){return null!==e&&this.mutation===e.mutation}toString(){return`Overlay{
|
|
23
|
+
`)}let _i={error:"UNKNOWN_ERROR"};async function yi(e,t=!1,r=!1){var n,i=e.app;Xn(i);let s=Wn(i),a=s.token,o=void 0;if(a&&!Ei(a)&&(s.token=void 0,a=void 0),a||(n=await s.cachedTokenPromise)&&(Ei(n)?a=n:await fi(i,void 0)),!t&&a&&Ei(a))return{token:a.token};let l=!1;if(mi())try{var h=await vi(),u=(s.exchangeTokenPromise||(s.exchangeTokenPromise=ti(ri(i,h),e.heartbeatServiceProvider).finally(()=>{s.exchangeTokenPromise=void 0}),l=!0),await s.exchangeTokenPromise);return await fi(i,u),{token:(s.token=u).token}}catch(e){return"appCheck/throttled"===e.code||"appCheck/initial-throttle"===e.code?di.warn(e.message):r&&di.error(e),Ci(e)}try{s.exchangeTokenPromise||(s.exchangeTokenPromise=s.provider.getToken().finally(()=>{s.exchangeTokenPromise=void 0}),l=!0),a=await Wn(i).exchangeTokenPromise}catch(e){"appCheck/throttled"===e.code||"appCheck/initial-throttle"===e.code?di.warn(e.message):r&&di.error(e),o=e}let c;return a?o?c=Ei(a)?{token:a.token,internalError:o}:Ci(o):(c={token:a.token},await fi(i,s.token=a)):c=Ci(o),l&&Ti(i,c),c}function wi(t,e,r,n){var i=t.app,i=Wn(i),s={next:r,error:n,type:e};if(i.tokenObservers=[...i.tokenObservers,s],i.token&&Ei(i.token)){let e=i.token;Promise.resolve().then(()=>{r({token:e.token}),Ii(t)}).catch(()=>{})}i.cachedTokenPromise.then(()=>Ii(t))}function bi(e,t){var r=Wn(e),n=r.tokenObservers.filter(e=>e.next!==t);0===n.length&&r.tokenRefresher&&r.tokenRefresher.isRunning()&&r.tokenRefresher.stop(),r.tokenObservers=n}function Ii(e){var t=e.app,t=Wn(t);let r=t.tokenRefresher;r||(r=(r=>{let n=r.app;return new Qn(async()=>{var e=Wn(n);let t;if((t=e.token?await yi(r,!0):await yi(r)).error)throw t.error;if(t.internalError)throw t.internalError},()=>!0,()=>{var e,t=Wn(n);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},$n.RETRIAL_MIN_WAIT,$n.RETRIAL_MAX_WAIT)})(e),t.tokenRefresher=r),!r.isRunning()&&t.isTokenAutoRefreshEnabled&&r.start()}function Ti(e,t){var r;for(r of Wn(e).tokenObservers)try{"EXTERNAL"===r.type&&null!=t.error?r.error(t.error):r.next(t)}catch(e){}}function Ei(e){return 0<e.expireTimeMillis-Date.now()}function Ci(e){return{token:(t=_i,a.encodeString(JSON.stringify(t),!1)),error:e};var t}class Si{constructor(e,t){this.app=e,this.heartbeatServiceProvider=t}_delete(){var e,t=Wn(this.app).tokenObservers;for(e of t)bi(this.app,e.next);return Promise.resolve()}}function ki(t){return{getToken:e=>yi(t,e),getLimitedUseToken:()=>(async e=>{var t=e.app,r=(Xn(t),Wn(t)).provider;return mi()?{token:t=(await ti(ri(t,await vi()),e.heartbeatServiceProvider)).token}:{token:t=(await r.getToken()).token}})(t),addTokenListener:e=>wi(t,"INTERNAL",e),removeTokenListener:e=>bi(t.app,e)}}let Ai="https://www.google.com/recaptcha/api.js",Ni="https://www.google.com/recaptcha/enterprise.js";function Ri(t,r){let n=new Z;Wn(t).reCAPTCHAState={initialized:n};let i=xi(t);var e,s=Jn(!1);return s?Di(t,r,s,i,n):(e=()=>{var e=Jn(!1);if(!e)throw new Error("no recaptcha");Di(t,r,e,i,n)},(s=document.createElement("script")).src=Ai,s.onload=e,document.head.appendChild(s)),n.promise}function Pi(t,r){let n=new Z;Wn(t).reCAPTCHAState={initialized:n};let i=xi(t);var e,s=Jn(!0);return s?Di(t,r,s,i,n):(e=()=>{var e=Jn(!0);if(!e)throw new Error("no recaptcha");Di(t,r,e,i,n)},(s=document.createElement("script")).src=Ni,s.onload=e,document.head.appendChild(s)),n.promise}function Di(n,i,s,a,o){s.ready(()=>{var e,t,r;e=n,t=s.render(a,{sitekey:i,size:"invisible",callback:()=>{Wn(e).reCAPTCHAState.succeeded=!0},"error-callback":()=>{Wn(e).reCAPTCHAState.succeeded=!1}}),(r=Wn(e)).reCAPTCHAState={...r.reCAPTCHAState,widgetId:t},o.resolve(s)})}function xi(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 Oi(n){Xn(n);let i=await Wn(n).reCAPTCHAState.initialized.promise;return new Promise((e,t)=>{let r=Wn(n).reCAPTCHAState;i.ready(()=>{e(i.execute(r.widgetId,{action:"fire_app_check"}))})})}class Mi{constructor(e){this._siteKey=e,this._throttleData=null}async getToken(){Vi(this._throttleData);var e=await Oi(this._app).catch(e=>{throw Yn.create("recaptcha-error")});if(!Wn(this._app).reCAPTCHAState?.succeeded)throw Yn.create("recaptcha-error");let t;try{t=await ti(((e,t)=>{var{projectId:r,appId:n,apiKey:i}=e.options;return{url:Hn+`/projects/${r}/apps/${n}:exchangeRecaptchaV3Token?key=`+i,body:{recaptcha_v3_token:t}}})(this._app,e),this._heartbeatServiceProvider)}catch(e){throw e.code?.includes("fetch-status-error")?(this._throttleData=Ui(Number(e.customData?.httpStatus),this._throttleData),Yn.create("initial-throttle",{time:Zn(this._throttleData.allowRequestsAfter-Date.now()),httpStatus:this._throttleData.httpStatus})):e}return this._throttleData=null,t}initialize(e){this._app=e,this._heartbeatServiceProvider=xt(e,"heartbeat"),Ri(e,this._siteKey).catch(()=>{})}isEqual(e){return e instanceof Mi&&this._siteKey===e._siteKey}}class Li{constructor(e){this._siteKey=e,this._throttleData=null}async getToken(){Vi(this._throttleData);var e=await Oi(this._app).catch(e=>{throw Yn.create("recaptcha-error")});if(!Wn(this._app).reCAPTCHAState?.succeeded)throw Yn.create("recaptcha-error");let t;try{t=await ti(((e,t)=>{var{projectId:r,appId:n,apiKey:i}=e.options;return{url:Hn+`/projects/${r}/apps/${n}:exchangeRecaptchaEnterpriseToken?key=`+i,body:{recaptcha_enterprise_token:t}}})(this._app,e),this._heartbeatServiceProvider)}catch(e){throw e.code?.includes("fetch-status-error")?(this._throttleData=Ui(Number(e.customData?.httpStatus),this._throttleData),Yn.create("initial-throttle",{time:Zn(this._throttleData.allowRequestsAfter-Date.now()),httpStatus:this._throttleData.httpStatus})):e}return this._throttleData=null,t}initialize(e){this._app=e,this._heartbeatServiceProvider=xt(e,"heartbeat"),Pi(e,this._siteKey).catch(()=>{})}isEqual(e){return e instanceof Li&&this._siteKey===e._siteKey}}class Fi{constructor(e){this._customProviderOptions=e}async getToken(){var e,t=await this._customProviderOptions.getToken(),r=(e=t.token,"object"==typeof(r=Ee(e).claims)&&r.hasOwnProperty("iat")?r.iat:null),r=null!==r&&r<Date.now()&&0<r?1e3*r:Date.now();return{...t,issuedAtTimeMillis:r}}initialize(e){this._app=e}isEqual(e){return e instanceof Fi&&this._customProviderOptions.getToken.toString()===e._customProviderOptions.getToken.toString()}}function Ui(e,t){var r,n;return 404===e||403===e?{backoffCount:1,allowRequestsAfter:Date.now()+864e5,httpStatus:e}:(n=He(r=t?t.backoffCount:0,1e3,2),{backoffCount:r+1,allowRequestsAfter:Date.now()+n,httpStatus:e})}function Vi(e){if(e&&Date.now()-e.allowRequestsAfter<=0)throw Yn.create("throttled",{time:Zn(e.allowRequestsAfter-Date.now()),httpStatus:e.httpStatus})}function qi(e=jt(),r){var t=xt(e=w(e),"app-check");if(Kn.initialized||(i=H(),(n=Kn).initialized=!0,"string"!=typeof i.FIREBASE_APPCHECK_DEBUG_TOKEN&&!0!==i.FIREBASE_APPCHECK_DEBUG_TOKEN)||(n.enabled=!0,s=new Z,n.token=s,"string"==typeof i.FIREBASE_APPCHECK_DEBUG_TOKEN?s.resolve(i.FIREBASE_APPCHECK_DEBUG_TOKEN):s.resolve(gi())),mi()&&vi().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 n=t.getImmediate(),i=t.getOptions();if(i.isTokenAutoRefreshEnabled===r.isTokenAutoRefreshEnabled&&i.provider.isEqual(r.provider))return n;throw Yn.create("already-initialized",{appName:e.name})}var s=t.initialize({options:r});{var[a,r,o=!1]=[e,r.provider,r.isTokenAutoRefreshEnabled];let t=((e,t)=>(jn.set(e,t),jn.get(e)))(a,{...zn});t.activated=!0,t.provider=r,t.cachedTokenPromise=pi(a).then(e=>(e&&Ei(e)&&(t.token=e,Ti(a,{token:e.token})),e)),t.isTokenAutoRefreshEnabled=o&&a.automaticDataCollectionEnabled,!a.automaticDataCollectionEnabled&&o&&di.warn("`isTokenAutoRefreshEnabled` is true but `automaticDataCollectionEnabled` was set to false during `initializeApp()`. This blocks automatic token refresh."),t.provider.initialize(a)}return Wn(e).isTokenAutoRefreshEnabled&&wi(s,"INTERNAL",()=>{}),s}let Bi="app-check-internal";Dt(new u("app-check",e=>{var t,r=e.getProvider("app").getImmediate(),n=e.getProvider("heartbeat");return e=r,t=n,new Si(e,t)},"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback((e,t,r)=>{e.getProvider(Bi).initialize()})),Dt(new u(Bi,e=>ki(e.getProvider("app-check").getImmediate()),"PUBLIC").setInstantiationMode("EXPLICIT")),d("@firebase/app-check","0.11.0");let ji=new we("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 zi{constructor(e){this.app=e}activate(e,t){let r;r="string"==typeof e?new Mi(e):e instanceof Li||e instanceof Mi||e instanceof Fi?e:new Fi({getToken:e.getToken}),this._delegate=qi(this.app,{provider:r,isTokenAutoRefreshEnabled:t})}setTokenAutoRefreshEnabled(e){if(!this._delegate)throw ji.create("use-before-activation",{appName:this.app.name});var t,r;t=this._delegate,e=e,(r=Wn(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 yi(e,t);if(r.error)throw r.error;if(r.internalError)throw r.internalError;return{token:r.token}})(this._delegate,e);throw ji.create("use-before-activation",{appName:this.app.name})}onTokenChanged(r,n,e){if(this._delegate){var i=this._delegate;let e=()=>{},t=()=>{};return e=null!=r.next?r.next.bind(r):r,null!=r.error?t=r.error.bind(r):n&&(t=n),wi(i,"EXTERNAL",e,t),()=>bi(i.app,e)}throw ji.create("use-before-activation",{appName:this.app.name})}}let Ki=e=>{var t=e.getProvider("app-compat").getImmediate();return new zi(t)};ur.INTERNAL.registerComponent(new u("appCheck-compat",Ki,"PUBLIC").setServiceProps({ReCaptchaEnterpriseProvider:Li,ReCaptchaV3Provider:Mi,CustomProvider:Fi})),ur.registerVersion("@firebase/app-check-compat","0.4.0");let Wi={FACEBOOK:"facebook.com",GITHUB:"github.com",GOOGLE:"google.com",PASSWORD:"password",PHONE:"phone",TWITTER:"twitter.com"},Hi={EMAIL_SIGNIN:"EMAIL_SIGNIN",PASSWORD_RESET:"PASSWORD_RESET",RECOVER_EMAIL:"RECOVER_EMAIL",REVERT_SECOND_FACTOR_ADDITION:"REVERT_SECOND_FACTOR_ADDITION",VERIFY_AND_CHANGE_EMAIL:"VERIFY_AND_CHANGE_EMAIL",VERIFY_EMAIL:"VERIFY_EMAIL"};function Gi(){return{"dependent-sdk-initialized-before-auth":"Another Firebase SDK was initialized and is trying to use Auth before Auth is initialized. Please be sure to call `initializeAuth` or `getAuth` before starting any other Firebase SDK."}}function $i(){return{"admin-restricted-operation":"This operation is restricted to administrators only.","argument-error":"","app-not-authorized":"This app, identified by the domain where it's hosted, is not authorized to use Firebase Authentication with the provided API key. Review your key configuration in the Google API console.","app-not-installed":"The requested mobile application corresponding to the identifier (Android package name or iOS bundle ID) provided is not installed on this device.","captcha-check-failed":"The reCAPTCHA response token provided is either invalid, expired, already used or the domain associated with it does not match the list of whitelisted domains.","code-expired":"The SMS code has expired. Please re-send the verification code to try again.","cordova-not-ready":"Cordova framework is not ready.","cors-unsupported":"This browser is not supported.","credential-already-in-use":"This credential is already associated with a different user account.","custom-token-mismatch":"The custom token corresponds to a different audience.","requires-recent-login":"This operation is sensitive and requires recent authentication. Log in again before retrying this request.","dependent-sdk-initialized-before-auth":"Another Firebase SDK was initialized and is trying to use Auth before Auth is initialized. Please be sure to call `initializeAuth` or `getAuth` before starting any other Firebase SDK.","dynamic-link-not-activated":"Please activate Dynamic Links in the Firebase Console and agree to the terms and conditions.","email-change-needs-verification":"Multi-factor users must always have a verified email.","email-already-in-use":"The email address is already in use by another account.","emulator-config-failed":'Auth instance has already been used to make a network call. Auth can no longer be configured to use the emulator. Try calling "connectAuthEmulator()" sooner.',"expired-action-code":"The action code has expired.","cancelled-popup-request":"This operation has been cancelled due to another conflicting popup being opened.","internal-error":"An internal AuthError has occurred.","invalid-app-credential":"The phone verification request contains an invalid application verifier. The reCAPTCHA token response is either invalid or expired.","invalid-app-id":"The mobile app identifier is not registered for the current project.","invalid-user-token":"This user's credential isn't valid for this project. This can happen if the user's token has been tampered with, or if the user isn't for the project associated with this API key.","invalid-auth-event":"An internal AuthError has occurred.","invalid-verification-code":"The SMS verification code used to create the phone auth credential is invalid. Please resend the verification code sms and be sure to use the verification code provided by the user.","invalid-continue-uri":"The continue URL provided in the request is invalid.","invalid-cordova-configuration":"The following Cordova plugins must be installed to enable OAuth sign-in: cordova-plugin-buildinfo, cordova-universal-links-plugin, cordova-plugin-browsertab, cordova-plugin-inappbrowser and cordova-plugin-customurlscheme.","invalid-custom-token":"The custom token format is incorrect. Please check the documentation.","invalid-dynamic-link-domain":"The provided dynamic link domain is not configured or authorized for the current project.","invalid-email":"The email address is badly formatted.","invalid-emulator-scheme":"Emulator URL must start with a valid scheme (http:// or https://).","invalid-api-key":"Your API key is invalid, please check you have copied it correctly.","invalid-cert-hash":"The SHA-1 certificate hash provided is invalid.","invalid-credential":"The supplied auth credential is incorrect, malformed or has expired.","invalid-message-payload":"The email template corresponding to this action contains invalid characters in its message. Please fix by going to the Auth email templates section in the Firebase Console.","invalid-multi-factor-session":"The request does not contain a valid proof of first factor successful sign-in.","invalid-oauth-provider":"EmailAuthProvider is not supported for this operation. This operation only supports OAuth providers.","invalid-oauth-client-id":"The OAuth client ID provided is either invalid or does not match the specified API key.","unauthorized-domain":"This domain is not authorized for OAuth operations for your Firebase project. Edit the list of authorized domains from the Firebase console.","invalid-action-code":"The action code is invalid. This can happen if the code is malformed, expired, or has already been used.","wrong-password":"The password is invalid or the user does not have a password.","invalid-persistence-type":"The specified persistence type is invalid. It can only be local, session or none.","invalid-phone-number":"The format of the phone number provided is incorrect. Please enter the phone number in a format that can be parsed into E.164 format. E.164 phone numbers are written in the format [+][country code][subscriber number including area code].","invalid-provider-id":"The specified provider ID is invalid.","invalid-recipient-email":"The email corresponding to this action failed to send as the provided recipient email address is invalid.","invalid-sender":"The email template corresponding to this action contains an invalid sender email or name. Please fix by going to the Auth email templates section in the Firebase Console.","invalid-verification-id":"The verification ID used to create the phone auth credential is invalid.","invalid-tenant-id":"The Auth instance's tenant ID is invalid.","login-blocked":"Login blocked by user-provided method: {$originalMessage}","missing-android-pkg-name":"An Android Package Name must be provided if the Android App is required to be installed.","auth-domain-config-required":"Be sure to include authDomain when calling firebase.initializeApp(), by following the instructions in the Firebase console.","missing-app-credential":"The phone verification request is missing an application verifier assertion. A reCAPTCHA response token needs to be provided.","missing-verification-code":"The phone auth credential was created with an empty SMS verification code.","missing-continue-uri":"A continue URL must be provided in the request.","missing-iframe-start":"An internal AuthError has occurred.","missing-ios-bundle-id":"An iOS Bundle ID must be provided if an App Store ID is provided.","missing-or-invalid-nonce":"The request does not contain a valid nonce. This can occur if the SHA-256 hash of the provided raw nonce does not match the hashed nonce in the ID token payload.","missing-password":"A non-empty password must be provided","missing-multi-factor-info":"No second factor identifier is provided.","missing-multi-factor-session":"The request is missing proof of first factor successful sign-in.","missing-phone-number":"To send verification codes, provide a phone number for the recipient.","missing-verification-id":"The phone auth credential was created with an empty verification ID.","app-deleted":"This instance of FirebaseApp has been deleted.","multi-factor-info-not-found":"The user does not have a second factor matching the identifier provided.","multi-factor-auth-required":"Proof of ownership of a second factor is required to complete sign-in.","account-exists-with-different-credential":"An account already exists with the same email address but different sign-in credentials. Sign in using a provider associated with this email address.","network-request-failed":"A network AuthError (such as timeout, interrupted connection or unreachable host) has occurred.","no-auth-event":"An internal AuthError has occurred.","no-such-provider":"User was not linked to an account with the given provider.","null-user":"A null user object was provided as the argument for an operation which requires a non-null user object.","operation-not-allowed":"The given sign-in provider is disabled for this Firebase project. Enable it in the Firebase console, under the sign-in method tab of the Auth section.","operation-not-supported-in-this-environment":'This operation is not supported in the environment this application is running on. "location.protocol" must be http, https or chrome-extension and web storage must be enabled.',"popup-blocked":"Unable to establish a connection with the popup. It may have been blocked by the browser.","popup-closed-by-user":"The popup has been closed by the user before finalizing the operation.","provider-already-linked":"User can only be linked to one identity for the given provider.","quota-exceeded":"The project's quota for this operation has been exceeded.","redirect-cancelled-by-user":"The redirect operation has been cancelled by the user before finalizing.","redirect-operation-pending":"A redirect sign-in operation is already pending.","rejected-credential":"The request contains malformed or mismatching credentials.","second-factor-already-in-use":"The second factor is already enrolled on this account.","maximum-second-factor-count-exceeded":"The maximum allowed number of second factors on a user has been exceeded.","tenant-id-mismatch":"The provided tenant ID does not match the Auth instance's tenant ID",timeout:"The operation has timed out.","user-token-expired":"The user's credential is no longer valid. The user must sign in again.","too-many-requests":"We have blocked all requests from this device due to unusual activity. Try again later.","unauthorized-continue-uri":"The domain of the continue URL is not whitelisted. Please whitelist the domain in the Firebase console.","unsupported-first-factor":"Enrolling a second factor or signing in with a multi-factor account requires sign-in with a supported first factor.","unsupported-persistence-type":"The current environment does not support the specified persistence type.","unsupported-tenant-operation":"This operation is not supported in a multi-tenant context.","unverified-email":"The operation requires a verified email.","user-cancelled":"The user did not grant your application the permissions it requested.","user-not-found":"There is no user record corresponding to this identifier. The user may have been deleted.","user-disabled":"The user account has been disabled by an administrator.","user-mismatch":"The supplied credentials do not correspond to the previously signed in user.","user-signed-out":"","weak-password":"The password must be 6 characters long or more.","web-storage-unsupported":"This browser is not supported or 3rd party cookies and data may be disabled.","already-initialized":"initializeAuth() has already been called with different options. To avoid this error, call initializeAuth() with the same options as when it was originally called, or call getAuth() to return the already initialized instance.","missing-recaptcha-token":"The reCAPTCHA token is missing when sending request to the backend.","invalid-recaptcha-token":"The reCAPTCHA token is invalid when sending request to the backend.","invalid-recaptcha-action":"The reCAPTCHA action is invalid when sending request to the backend.","recaptcha-not-enabled":"reCAPTCHA Enterprise integration is not enabled for this project.","missing-client-type":"The reCAPTCHA client type is missing when sending request to the backend.","missing-recaptcha-version":"The reCAPTCHA version is missing when sending request to the backend.","invalid-req-type":"Invalid request parameters.","invalid-recaptcha-version":"The reCAPTCHA version is invalid when sending request to the backend.","unsupported-password-policy-schema-version":"The password policy received from the backend uses a schema version that is not supported by this version of the Firebase SDK.","password-does-not-meet-requirements":"The password does not meet the requirements.","invalid-hosting-link-domain":"The provided Hosting link domain is not configured in Firebase Hosting or is not owned by the current project. This cannot be a default Hosting domain (`web.app` or `firebaseapp.com`)."}}let Qi=Gi,Yi=new we("auth","Firebase",Gi()),Ji=new tt("@firebase/auth");function Xi(e,...t){Ji.logLevel<=c.ERROR&&Ji.error(`Auth (${qt}): `+e,...t)}function Zi(e,...t){throw is(e,...t)}function es(e,...t){return is(e,...t)}function ts(e,t,r){var n={...Qi(),[t]:r};return new we("auth","Firebase",n).create(t,{appName:e.name})}function rs(e){return ts(e,"operation-not-supported-in-this-environment","Operations that alter the current user are not supported in conjunction with FirebaseServerApp")}function ns(e,t,r){var n=r;if(!(t instanceof n))throw n.name!==t.constructor.name&&Zi(e,"argument-error"),ts(e,"argument-error",`Type of ${t.constructor.name} does not match expected instance.`+"Did you pass a reference from a different Auth SDK?")}function is(e,...t){var r,n;return"string"!=typeof e?(r=t[0],(n=[...t.slice(1)])[0]&&(n[0].appName=e.name),e._errorFactory.create(r,...n)):Yi.create(e,...t)}function m(e,t,...r){if(!e)throw is(t,...r)}function ss(e){var t="INTERNAL ASSERTION FAILED: "+e;throw Xi(t),new Error(t)}function as(e,t){e||ss(t)}function os(){return"undefined"!=typeof self&&self.location?.href||""}function ls(){return"http:"===hs()||"https:"===hs()}function hs(){return"undefined"!=typeof self&&self.location?.protocol||null}class us{constructor(e,t){as((this.shortDelay=e)<(this.longDelay=t),"Short delay should be less than long delay!"),this.isMobile=oe()||ce()}get(){return"undefined"!=typeof navigator&&navigator&&"onLine"in navigator&&"boolean"==typeof navigator.onLine&&(ls()||ue()||"connection"in navigator)&&!navigator.onLine?Math.min(5e3,this.shortDelay):this.isMobile?this.longDelay:this.shortDelay}}function cs(e,t){as(e.emulator,"Emulator should always be set here");var r=e.emulator.url;return t?""+r+(t.startsWith("/")?t.slice(1):t):r}class ds{static initialize(e,t,r){this.fetchImpl=e,t&&(this.headersImpl=t),r&&(this.responseImpl=r)}static fetch(){return this.fetchImpl||("undefined"!=typeof self&&"fetch"in self?self.fetch:"undefined"!=typeof globalThis&&globalThis.fetch?globalThis.fetch:"undefined"!=typeof fetch?fetch:void ss("Could not find fetch implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill"))}static headers(){return this.headersImpl||("undefined"!=typeof self&&"Headers"in self?self.Headers:"undefined"!=typeof globalThis&&globalThis.Headers?globalThis.Headers:"undefined"!=typeof Headers?Headers:void ss("Could not find Headers implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill"))}static response(){return this.responseImpl||("undefined"!=typeof self&&"Response"in self?self.Response:"undefined"!=typeof globalThis&&globalThis.Response?globalThis.Response:"undefined"!=typeof Response?Response:void ss("Could not find Response implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill"))}}let ps={CREDENTIAL_MISMATCH:"custom-token-mismatch",MISSING_CUSTOM_TOKEN:"internal-error",INVALID_IDENTIFIER:"invalid-email",MISSING_CONTINUE_URI:"internal-error",INVALID_PASSWORD:"wrong-password",MISSING_PASSWORD:"missing-password",INVALID_LOGIN_CREDENTIALS:"invalid-credential",EMAIL_EXISTS:"email-already-in-use",PASSWORD_LOGIN_DISABLED:"operation-not-allowed",INVALID_IDP_RESPONSE:"invalid-credential",INVALID_PENDING_TOKEN:"invalid-credential",FEDERATED_USER_ID_ALREADY_LINKED:"credential-already-in-use",MISSING_REQ_TYPE:"internal-error",EMAIL_NOT_FOUND:"user-not-found",RESET_PASSWORD_EXCEED_LIMIT:"too-many-requests",EXPIRED_OOB_CODE:"expired-action-code",INVALID_OOB_CODE:"invalid-action-code",MISSING_OOB_CODE:"internal-error",CREDENTIAL_TOO_OLD_LOGIN_AGAIN:"requires-recent-login",INVALID_ID_TOKEN:"invalid-user-token",TOKEN_EXPIRED:"user-token-expired",USER_NOT_FOUND:"user-token-expired",TOO_MANY_ATTEMPTS_TRY_LATER:"too-many-requests",PASSWORD_DOES_NOT_MEET_REQUIREMENTS:"password-does-not-meet-requirements",INVALID_CODE:"invalid-verification-code",INVALID_SESSION_INFO:"invalid-verification-id",INVALID_TEMPORARY_PROOF:"invalid-credential",MISSING_SESSION_INFO:"missing-verification-id",SESSION_EXPIRED:"code-expired",MISSING_ANDROID_PACKAGE_NAME:"missing-android-pkg-name",UNAUTHORIZED_DOMAIN:"unauthorized-continue-uri",INVALID_OAUTH_CLIENT_ID:"invalid-oauth-client-id",ADMIN_ONLY_OPERATION:"admin-restricted-operation",INVALID_MFA_PENDING_CREDENTIAL:"invalid-multi-factor-session",MFA_ENROLLMENT_NOT_FOUND:"multi-factor-info-not-found",MISSING_MFA_ENROLLMENT_ID:"missing-multi-factor-info",MISSING_MFA_PENDING_CREDENTIAL:"missing-multi-factor-session",SECOND_FACTOR_EXISTS:"second-factor-already-in-use",SECOND_FACTOR_LIMIT_EXCEEDED:"maximum-second-factor-count-exceeded",BLOCKING_FUNCTION_ERROR_RESPONSE:"internal-error",RECAPTCHA_NOT_ENABLED:"recaptcha-not-enabled",MISSING_RECAPTCHA_TOKEN:"missing-recaptcha-token",INVALID_RECAPTCHA_TOKEN:"invalid-recaptcha-token",INVALID_RECAPTCHA_ACTION:"invalid-recaptcha-action",MISSING_CLIENT_TYPE:"missing-client-type",MISSING_RECAPTCHA_VERSION:"missing-recaptcha-version",INVALID_RECAPTCHA_VERSION:"invalid-recaptcha-version",INVALID_REQ_TYPE:"invalid-req-type"},fs=["/v1/accounts:signInWithCustomToken","/v1/accounts:signInWithEmailLink","/v1/accounts:signInWithIdp","/v1/accounts:signInWithPassword","/v1/accounts:signInWithPhoneNumber","/v1/token"],gs=new us(3e4,6e4);function ms(e,t){return e.tenantId&&!t.tenantId?{...t,tenantId:e.tenantId}:t}async function vs(i,s,a,o,e={}){return _s(i,e,async()=>{let e={},t={};o&&("GET"===s?t=o:e={body:JSON.stringify(o)});var r=Pe({key:i.config.apiKey,...t}).slice(1),n=await i._getAdditionalHeaders(),n=(n["Content-Type"]="application/json",i.languageCode&&(n["X-Firebase-Locale"]=i.languageCode),{method:s,headers:n,...e});return"undefined"!=typeof navigator&&"Cloudflare-Workers"===navigator.userAgent||(n.referrerPolicy="no-referrer"),i.emulatorConfig&&ee(i.emulatorConfig.host)&&(n.credentials="include"),ds.fetch()(await ws(i,i.config.apiHost,a,r),n)})}async function _s(t,e,r){t._canInitEmulator=!1;var n={...ps,...e};try{var i=new bs(t),s=await Promise.race([r(),i.promise]),a=(i.clearNetworkTimeout(),await s.json());if("needConfirmation"in a)throw Is(t,"account-exists-with-different-credential",a);if(s.ok&&!("errorMessage"in a))return a;var[o,l]=(s.ok?a.errorMessage:a.error.message).split(" : ");if("FEDERATED_USER_ID_ALREADY_LINKED"===o)throw Is(t,"credential-already-in-use",a);if("EMAIL_EXISTS"===o)throw Is(t,"email-already-in-use",a);if("USER_DISABLED"===o)throw Is(t,"user-disabled",a);var h=n[o]||o.toLowerCase().replace(/[_\s]+/g,"-");if(l)throw ts(t,h,l);Zi(t,h)}catch(e){if(e instanceof ye)throw e;Zi(t,"network-request-failed",{message:String(e)})}}async function ys(e,t,r,n,i={}){var s=await vs(e,t,r,n,i);return"mfaPendingCredential"in s&&Zi(e,"multi-factor-auth-required",{_serverResponse:s}),s}async function ws(e,t,r,n){var i=""+t+r+"?"+n,s=e,i=s.config.emulator?cs(e.config,i):e.config.apiScheme+"://"+i;if(fs.includes(r)&&(await s._persistenceManagerAvailable,"COOKIE"===s._getPersistenceType()))return s._getPersistence()._getFinalTarget(i).toString();return i}class bs{clearNetworkTimeout(){clearTimeout(this.timer)}constructor(e){this.auth=e,this.timer=null,this.promise=new Promise((e,t)=>{this.timer=setTimeout(()=>t(es(this.auth,"network-request-failed")),gs.get())})}}function Is(e,t,r){var n={appName:e.name},n=(r.email&&(n.email=r.email),r.phoneNumber&&(n.phoneNumber=r.phoneNumber),es(e,t,n));return n.customData._tokenResponse=r,n}function Ts(e){return void 0!==e&&void 0!==e.getResponse}function Es(e){return void 0!==e&&void 0!==e.enterprise}class Cs{constructor(e){if(this.siteKey="",this.recaptchaEnforcementState=[],void 0===e.recaptchaKey)throw new Error("recaptchaKey undefined");this.siteKey=e.recaptchaKey.split("/")[3],this.recaptchaEnforcementState=e.recaptchaEnforcementState}getProviderEnforcementState(t){if(this.recaptchaEnforcementState&&0!==this.recaptchaEnforcementState.length)for(let e of this.recaptchaEnforcementState)if(e.provider&&e.provider===t){switch(e.enforcementState){case"ENFORCE":return"ENFORCE";case"AUDIT":return"AUDIT";case"OFF":return"OFF";default:return"ENFORCEMENT_STATE_UNSPECIFIED"}return}return null}isProviderEnabled(e){return"ENFORCE"===this.getProviderEnforcementState(e)||"AUDIT"===this.getProviderEnforcementState(e)}isAnyProviderEnabled(){return this.isProviderEnabled("EMAIL_PASSWORD_PROVIDER")||this.isProviderEnabled("PHONE_PROVIDER")}}async function Ss(e,t){return vs(e,"GET","/v2/recaptchaConfig",ms(e,t))}async function ks(e,t){return vs(e,"POST","/v1/accounts:lookup",t)}function As(e){if(e)try{var t=new Date(Number(e));if(!isNaN(t.getTime()))return t.toUTCString()}catch(e){}}function Ns(e){return 1e3*Number(e)}function Rs(e){var[t,r,n]=e.split(".");if(void 0===t||void 0===r||void 0===n)return Xi("JWT malformed, contained fewer than 3 sections"),null;try{var i=K(r);return i?JSON.parse(i):(Xi("Failed to decode base64 JWT payload"),null)}catch(e){return Xi("Caught error parsing JWT payload as JSON",e?.toString()),null}}function Ps(e){var t=Rs(e);return m(t,"internal-error"),m(void 0!==t.exp,"internal-error"),m(void 0!==t.iat,"internal-error"),Number(t.exp)-Number(t.iat)}async function Ds(t,e,r=!1){if(r)return e;try{return await e}catch(e){throw e instanceof ye&&(r=[e.code][0],"auth/user-disabled"===r||"auth/user-token-expired"===r)&&(t.auth.currentUser===t&&await t.auth.signOut()),e}}class xs{constructor(e){this.user=e,this.isRunning=!1,this.timerId=null,this.errorBackoff=3e4}_start(){this.isRunning||(this.isRunning=!0,this.schedule())}_stop(){this.isRunning&&(this.isRunning=!1,null!==this.timerId)&&clearTimeout(this.timerId)}getInterval(e){var t;return e?(t=this.errorBackoff,this.errorBackoff=Math.min(2*this.errorBackoff,96e4),t):(this.errorBackoff=3e4,t=(this.user.stsTokenManager.expirationTime??0)-Date.now()-3e5,Math.max(0,t))}schedule(e=!1){var t;this.isRunning&&(t=this.getInterval(e),this.timerId=setTimeout(async()=>{await this.iteration()},t))}async iteration(){try{await this.user.getIdToken(!0)}catch(e){return void("auth/network-request-failed"===e?.code&&this.schedule(!0))}this.schedule()}}class Os{constructor(e,t){this.createdAt=e,this.lastLoginAt=t,this._initializeTime()}_initializeTime(){this.lastSignInTime=As(this.lastLoginAt),this.creationTime=As(this.createdAt)}_copy(e){this.createdAt=e.createdAt,this.lastLoginAt=e.lastLoginAt,this._initializeTime()}toJSON(){return{createdAt:this.createdAt,lastLoginAt:this.lastLoginAt}}}async function Ms(e){var t,r,n=e.auth,i=await e.getIdToken(),i=await Ds(e,ks(n,{idToken:i})),n=(m(i?.users.length,n,"internal-error"),i.users[0]),i=(e._notifyReloadListener(n),n.providerUserInfo?.length?Ls(n.providerUserInfo):[]),i=(t=e.providerData,r=i,[...t.filter(t=>!r.some(e=>e.providerId===t.providerId)),...r]),s=!(e.email&&n.passwordHash||i.length),s=!!e.isAnonymous&&s,i={uid:n.localId,displayName:n.displayName||null,photoURL:n.photoUrl||null,email:n.email||null,emailVerified:n.emailVerified||!1,phoneNumber:n.phoneNumber||null,tenantId:n.tenantId||null,providerData:i,metadata:new Os(n.createdAt,n.lastLoginAt),isAnonymous:s};Object.assign(e,i)}function Ls(e){return e.map(({providerId:e,...t})=>({providerId:e,uid:t.rawId||"",displayName:t.displayName||null,email:t.email||null,phoneNumber:t.phoneNumber||null,photoURL:t.photoUrl||null}))}class Fs{constructor(){this.refreshToken=null,this.accessToken=null,this.expirationTime=null}get isExpired(){return!this.expirationTime||Date.now()>this.expirationTime-3e4}updateFromServerResponse(e){m(e.idToken,"internal-error"),m(void 0!==e.idToken,"internal-error"),m(void 0!==e.refreshToken,"internal-error");var t="expiresIn"in e&&void 0!==e.expiresIn?Number(e.expiresIn):Ps(e.idToken);this.updateTokensAndExpiration(e.idToken,e.refreshToken,t)}updateFromIdToken(e){m(0!==e.length,"internal-error");var t=Ps(e);this.updateTokensAndExpiration(e,null,t)}async getToken(e,t=!1){return t||!this.accessToken||this.isExpired?(m(this.refreshToken,e,"user-token-expired"),this.refreshToken?(await this.refresh(e,this.refreshToken),this.accessToken):null):this.accessToken}clearRefreshToken(){this.refreshToken=null}async refresh(e,t){i=t;var n,i,{accessToken:r,refreshToken:s,expiresIn:a}=await{accessToken:(r=await _s(n=e,{},async()=>{var e=Pe({grant_type:"refresh_token",refresh_token:i}).slice(1),{tokenApiHost:t,apiKey:r}=n.config,t=await ws(n,t,"/v1/token","key="+r),r=await n._getAdditionalHeaders(),r=(r["Content-Type"]="application/x-www-form-urlencoded",{method:"POST",headers:r,body:e});return n.emulatorConfig&&ee(n.emulatorConfig.host)&&(r.credentials="include"),ds.fetch()(t,r)})).access_token,expiresIn:r.expires_in,refreshToken:r.refresh_token};this.updateTokensAndExpiration(r,s,Number(a))}updateTokensAndExpiration(e,t,r){this.refreshToken=t||null,this.accessToken=e||null,this.expirationTime=Date.now()+1e3*r}static fromJSON(e,t){var{refreshToken:r,accessToken:n,expirationTime:i}=t,s=new Fs;return r&&(m("string"==typeof r,"internal-error",{appName:e}),s.refreshToken=r),n&&(m("string"==typeof n,"internal-error",{appName:e}),s.accessToken=n),i&&(m("number"==typeof i,"internal-error",{appName:e}),s.expirationTime=i),s}toJSON(){return{refreshToken:this.refreshToken,accessToken:this.accessToken,expirationTime:this.expirationTime}}_assign(e){this.accessToken=e.accessToken,this.refreshToken=e.refreshToken,this.expirationTime=e.expirationTime}_clone(){return Object.assign(new Fs,this.toJSON())}_performRefresh(){return ss("not implemented")}}function Us(e,t){m("string"==typeof e||void 0===e,"internal-error",{appName:t})}class Vs{constructor({uid:e,auth:t,stsTokenManager:r,...n}){this.providerId="firebase",this.proactiveRefresh=new xs(this),this.reloadUserInfo=null,this.reloadListener=null,this.uid=e,this.auth=t,this.stsTokenManager=r,this.accessToken=r.accessToken,this.displayName=n.displayName||null,this.email=n.email||null,this.emailVerified=n.emailVerified||!1,this.phoneNumber=n.phoneNumber||null,this.photoURL=n.photoURL||null,this.isAnonymous=n.isAnonymous||!1,this.tenantId=n.tenantId||null,this.providerData=n.providerData?[...n.providerData]:[],this.metadata=new Os(n.createdAt||void 0,n.lastLoginAt||void 0)}async getIdToken(e){var t=await Ds(this,this.stsTokenManager.getToken(this.auth,e));return m(t,this.auth,"internal-error"),this.accessToken!==t&&(this.accessToken=t,await this.auth._persistUserIfCurrent(this),this.auth._notifyListenersIfCurrent(this)),t}getIdTokenResult(e){return(async(e,t=!1)=>{var r=w(e),n=await r.getIdToken(t),i=Rs(n),s=(m(i&&i.exp&&i.auth_time&&i.iat,r.auth,"internal-error"),(r="object"==typeof i.firebase?i.firebase:void 0)?.sign_in_provider);return{claims:i,token:n,authTime:As(Ns(i.auth_time)),issuedAtTime:As(Ns(i.iat)),expirationTime:As(Ns(i.exp)),signInProvider:s||null,signInSecondFactor:r?.sign_in_second_factor||null}})(this,e)}reload(){return(async e=>{var t=w(e);await Ms(t),await t.auth._persistUserIfCurrent(t),t.auth._notifyListenersIfCurrent(t)})(this)}_assign(e){this!==e&&(m(this.uid===e.uid,this.auth,"internal-error"),this.displayName=e.displayName,this.photoURL=e.photoURL,this.email=e.email,this.emailVerified=e.emailVerified,this.phoneNumber=e.phoneNumber,this.isAnonymous=e.isAnonymous,this.tenantId=e.tenantId,this.providerData=e.providerData.map(e=>({...e})),this.metadata._copy(e.metadata),this.stsTokenManager._assign(e.stsTokenManager))}_clone(e){var t=new Vs({...this,auth:e,stsTokenManager:this.stsTokenManager._clone()});return t.metadata._copy(this.metadata),t}_onReload(e){m(!this.reloadListener,this.auth,"internal-error"),this.reloadListener=e,this.reloadUserInfo&&(this._notifyReloadListener(this.reloadUserInfo),this.reloadUserInfo=null)}_notifyReloadListener(e){this.reloadListener?this.reloadListener(e):this.reloadUserInfo=e}_startProactiveRefresh(){this.proactiveRefresh._start()}_stopProactiveRefresh(){this.proactiveRefresh._stop()}async _updateTokensIfNecessary(e,t=!1){let r=!1;e.idToken&&e.idToken!==this.stsTokenManager.accessToken&&(this.stsTokenManager.updateFromServerResponse(e),r=!0),t&&await Ms(this),await this.auth._persistUserIfCurrent(this),r&&this.auth._notifyListenersIfCurrent(this)}async delete(){var e;return h(this.auth.app)?Promise.reject(rs(this.auth)):(e=await this.getIdToken(),await Ds(this,(async(e,t)=>vs(e,"POST","/v1/accounts:delete",t))(this.auth,{idToken:e})),this.stsTokenManager.clearRefreshToken(),this.auth.signOut())}toJSON(){return{uid:this.uid,email:this.email||void 0,emailVerified:this.emailVerified,displayName:this.displayName||void 0,isAnonymous:this.isAnonymous,photoURL:this.photoURL||void 0,phoneNumber:this.phoneNumber||void 0,tenantId:this.tenantId||void 0,providerData:this.providerData.map(e=>({...e})),stsTokenManager:this.stsTokenManager.toJSON(),_redirectEventId:this._redirectEventId,...this.metadata.toJSON(),apiKey:this.auth.config.apiKey,appName:this.auth.name}}get refreshToken(){return this.stsTokenManager.refreshToken||""}static _fromJSON(e,t){var r=t.displayName??void 0,n=t.email??void 0,i=t.phoneNumber??void 0,s=t.photoURL??void 0,a=t.tenantId??void 0,o=t._redirectEventId??void 0,l=t.createdAt??void 0,h=t.lastLoginAt??void 0,{uid:u,emailVerified:c,isAnonymous:d,providerData:p,stsTokenManager:f}=t,f=(m(u&&f,e,"internal-error"),Fs.fromJSON(this.name,f)),u=(m("string"==typeof u,e,"internal-error"),Us(r,e.name),Us(n,e.name),m("boolean"==typeof c,e,"internal-error"),m("boolean"==typeof d,e,"internal-error"),Us(i,e.name),Us(s,e.name),Us(a,e.name),Us(o,e.name),Us(l,e.name),Us(h,e.name),new Vs({uid:u,auth:e,email:n,emailVerified:c,displayName:r,isAnonymous:d,photoURL:s,phoneNumber:i,tenantId:a,stsTokenManager:f,createdAt:l,lastLoginAt:h}));return p&&Array.isArray(p)&&(u.providerData=p.map(e=>({...e}))),o&&(u._redirectEventId=o),u}static async _fromIdTokenResponse(e,t,r=!1){var n=new Fs,n=(n.updateFromServerResponse(t),new Vs({uid:t.localId,auth:e,stsTokenManager:n,isAnonymous:r}));return await Ms(n),n}static async _fromGetAccountInfoResponse(e,t,r){var n=t.users[0],i=(m(void 0!==n.localId,"internal-error"),void 0!==n.providerUserInfo?Ls(n.providerUserInfo):[]),s=!(n.email&&n.passwordHash||i?.length),a=new Fs,a=(a.updateFromIdToken(r),new Vs({uid:n.localId,auth:e,stsTokenManager:a,isAnonymous:s})),s={uid:n.localId,displayName:n.displayName||null,photoURL:n.photoUrl||null,email:n.email||null,emailVerified:n.emailVerified||!1,phoneNumber:n.phoneNumber||null,tenantId:n.tenantId||null,providerData:i,metadata:new Os(n.createdAt,n.lastLoginAt),isAnonymous:!(n.email&&n.passwordHash||i?.length)};return Object.assign(a,s),a}}let qs=new Map;function Bs(e){as(e instanceof Function,"Expected a class definition");var t=qs.get(e);return t?as(t instanceof e,"Instance stored in cache mismatched with class"):(t=new e,qs.set(e,t)),t}class js{constructor(){this.type="NONE",this.storage={}}async _isAvailable(){return!0}async _set(e,t){this.storage[e]=t}async _get(e){var t=this.storage[e];return void 0===t?null:t}async _remove(e){delete this.storage[e]}_addListener(e,t){}_removeListener(e,t){}}js.type="NONE";let zs=js;function Ks(e,t,r){return`firebase:${e}:${t}:`+r}class Ws{constructor(e,t,r){this.persistence=e,this.auth=t,this.userKey=r;var{config:n,name:i}=this.auth;this.fullUserKey=Ks(this.userKey,n.apiKey,i),this.fullPersistenceKey=Ks("persistence",n.apiKey,i),this.boundEventHandler=t._onStorageEvent.bind(t),this.persistence._addListener(this.fullUserKey,this.boundEventHandler)}setCurrentUser(e){return this.persistence._set(this.fullUserKey,e.toJSON())}async getCurrentUser(){var e,t=await this.persistence._get(this.fullUserKey);return t?"string"==typeof t?(e=await ks(this.auth,{idToken:t}).catch(()=>{}))?Vs._fromGetAccountInfoResponse(this.auth,e,t):null:Vs._fromJSON(this.auth,t):null}removeCurrentUser(){return this.persistence._remove(this.fullUserKey)}savePersistenceForRedirect(){return this.persistence._set(this.fullPersistenceKey,this.persistence.type)}async setPersistence(e){var t;if(this.persistence!==e)return t=await this.getCurrentUser(),await this.removeCurrentUser(),this.persistence=e,t?this.setCurrentUser(t):void 0}delete(){this.persistence._removeListener(this.fullUserKey,this.boundEventHandler)}static async create(t,e,r="authUser"){if(!e.length)return new Ws(Bs(zs),t,r);var n,i=(await Promise.all(e.map(async e=>{if(await e._isAvailable())return e}))).filter(e=>e);let s=i[0]||Bs(zs),a=Ks(r,t.config.apiKey,t.name),o=null;for(n of e)try{var l=await n._get(a);if(l){let e;if("string"==typeof l){var h=await ks(t,{idToken:l}).catch(()=>{});if(!h)break;e=await Vs._fromGetAccountInfoResponse(t,h,l)}else e=Vs._fromJSON(t,l);n!==s&&(o=e),s=n;break}}catch{}i=i.filter(e=>e._shouldAllowMigration);return s._shouldAllowMigration&&i.length&&(s=i[0],o&&await s._set(a,o.toJSON()),await Promise.all(e.map(async e=>{if(e!==s)try{await e._remove(a)}catch{}}))),new Ws(s,t,r)}}function Hs(e){var t=e.toLowerCase();return t.includes("opera/")||t.includes("opr/")||t.includes("opios/")?"Opera":Ys(t)?"IEMobile":t.includes("msie")||t.includes("trident/")?"IE":t.includes("edge/")?"Edge":Gs(t)?"Firefox":t.includes("silk/")?"Silk":Xs(t)?"Blackberry":Zs(t)?"Webos":$s(t)?"Safari":!t.includes("chrome/")&&!Qs(t)||t.includes("edge/")?Js(t)?"Android":2===(t=e.match(/([a-zA-Z\d\.]+)\/[a-zA-Z\d\.]*$/))?.length?t[1]:"Other":"Chrome"}function Gs(e=ae()){return/firefox\//i.test(e)}function $s(e=ae()){var t=e.toLowerCase();return t.includes("safari/")&&!t.includes("chrome/")&&!t.includes("crios/")&&!t.includes("android")}function Qs(e=ae()){return/crios\//i.test(e)}function Ys(e=ae()){return/iemobile/i.test(e)}function Js(e=ae()){return/android/i.test(e)}function Xs(e=ae()){return/blackberry/i.test(e)}function Zs(e=ae()){return/webos/i.test(e)}function ea(e=ae()){return/iphone|ipad|ipod/i.test(e)||/macintosh/i.test(e)&&/mobile/i.test(e)}function ta(e=ae()){return ea(e)||Js(e)||Zs(e)||Xs(e)||/windows phone/i.test(e)||Ys(e)}function ra(e,t=[]){let r;switch(e){case"Browser":r=Hs(ae());break;case"Worker":r=Hs(ae())+"-"+e;break;default:r=e}var n=t.length?t.join(","):"FirebaseCore-web";return`${r}/JsCore/${qt}/`+n}class na{constructor(e){this.auth=e,this.queue=[]}pushCallback(n,e){var t=r=>new Promise((e,t)=>{try{e(n(r))}catch(e){t(e)}});t.onAbort=e,this.queue.push(t);let r=this.queue.length-1;return()=>{this.queue[r]=()=>Promise.resolve()}}async runMiddleware(e){if(this.auth.currentUser!==e){var t=[];try{for(var r of this.queue)await r(e),r.onAbort&&t.push(r.onAbort)}catch(e){t.reverse();for(var n of t)try{n()}catch(e){}throw this.auth._errorFactory.create("login-blocked",{originalMessage:e?.message})}}}}class ia{constructor(e){var t=e.customStrengthOptions;this.customStrengthOptions={},this.customStrengthOptions.minPasswordLength=t.minPasswordLength??6,t.maxPasswordLength&&(this.customStrengthOptions.maxPasswordLength=t.maxPasswordLength),void 0!==t.containsLowercaseCharacter&&(this.customStrengthOptions.containsLowercaseLetter=t.containsLowercaseCharacter),void 0!==t.containsUppercaseCharacter&&(this.customStrengthOptions.containsUppercaseLetter=t.containsUppercaseCharacter),void 0!==t.containsNumericCharacter&&(this.customStrengthOptions.containsNumericCharacter=t.containsNumericCharacter),void 0!==t.containsNonAlphanumericCharacter&&(this.customStrengthOptions.containsNonAlphanumericCharacter=t.containsNonAlphanumericCharacter),this.enforcementState=e.enforcementState,"ENFORCEMENT_STATE_UNSPECIFIED"===this.enforcementState&&(this.enforcementState="OFF"),this.allowedNonAlphanumericCharacters=e.allowedNonAlphanumericCharacters?.join("")??"",this.forceUpgradeOnSignin=e.forceUpgradeOnSignin??!1,this.schemaVersion=e.schemaVersion}validatePassword(e){var t={isValid:!0,passwordPolicy:this};return this.validatePasswordLengthOptions(e,t),this.validatePasswordCharacterOptions(e,t),t.isValid&&(t.isValid=t.meetsMinPasswordLength??!0),t.isValid&&(t.isValid=t.meetsMaxPasswordLength??!0),t.isValid&&(t.isValid=t.containsLowercaseLetter??!0),t.isValid&&(t.isValid=t.containsUppercaseLetter??!0),t.isValid&&(t.isValid=t.containsNumericCharacter??!0),t.isValid&&(t.isValid=t.containsNonAlphanumericCharacter??!0),t}validatePasswordLengthOptions(e,t){var r=this.customStrengthOptions.minPasswordLength,n=this.customStrengthOptions.maxPasswordLength;r&&(t.meetsMinPasswordLength=e.length>=r),n&&(t.meetsMaxPasswordLength=e.length<=n)}validatePasswordCharacterOptions(e,t){var r;this.updatePasswordCharacterOptionsStatuses(t,!1,!1,!1,!1);for(let n=0;n<e.length;n++)r=e.charAt(n),this.updatePasswordCharacterOptionsStatuses(t,"a"<=r&&r<="z","A"<=r&&r<="Z","0"<=r&&r<="9",this.allowedNonAlphanumericCharacters.includes(r))}updatePasswordCharacterOptionsStatuses(e,t,r,n,i){this.customStrengthOptions.containsLowercaseLetter&&!e.containsLowercaseLetter&&(e.containsLowercaseLetter=t),this.customStrengthOptions.containsUppercaseLetter&&!e.containsUppercaseLetter&&(e.containsUppercaseLetter=r),this.customStrengthOptions.containsNumericCharacter&&!e.containsNumericCharacter&&(e.containsNumericCharacter=n),this.customStrengthOptions.containsNonAlphanumericCharacter&&!e.containsNonAlphanumericCharacter&&(e.containsNonAlphanumericCharacter=i)}}class sa{constructor(e,t,r,n){this.app=e,this.heartbeatServiceProvider=t,this.appCheckServiceProvider=r,this.config=n,this.currentUser=null,this.emulatorConfig=null,this.operations=Promise.resolve(),this.authStateSubscription=new oa(this),this.idTokenSubscription=new oa(this),this.beforeStateQueue=new na(this),this.redirectUser=null,this.isProactiveRefreshEnabled=!1,this.EXPECTED_PASSWORD_POLICY_SCHEMA_VERSION=1,this._canInitEmulator=!0,this._isInitialized=!1,this._deleted=!1,this._initializationPromise=null,this._popupRedirectResolver=null,this._errorFactory=Yi,this._agentRecaptchaConfig=null,this._tenantRecaptchaConfigs={},this._projectPasswordPolicy=null,this._tenantPasswordPolicies={},this._resolvePersistenceManagerAvailable=void 0,this.lastNotifiedUid=void 0,this.languageCode=null,this.tenantId=null,this.settings={appVerificationDisabledForTesting:!1},this.frameworks=[],this.name=e.name,this.clientVersion=n.sdkClientVersion,this._persistenceManagerAvailable=new Promise(e=>this._resolvePersistenceManagerAvailable=e)}_initializeWithPersistence(e,t){return t&&(this._popupRedirectResolver=Bs(t)),this._initializationPromise=this.queue(async()=>{if(!this._deleted&&(this.persistenceManager=await Ws.create(this,e),this._resolvePersistenceManagerAvailable?.(),!this._deleted)){if(this._popupRedirectResolver?._shouldInitProactively)try{await this._popupRedirectResolver._initialize(this)}catch(e){}await this.initializeCurrentUser(t),this.lastNotifiedUid=this.currentUser?.uid||null,this._deleted||(this._isInitialized=!0)}}),this._initializationPromise}async _onStorageEvent(){var e;!this._deleted&&(e=await this.assertedPersistence.getCurrentUser(),this.currentUser||e)&&(this.currentUser&&e&&this.currentUser.uid===e.uid?(this._currentUser._assign(e),await this.currentUser.getIdToken()):await this._updateCurrentUser(e,!0))}async initializeCurrentUserFromIdToken(e){try{var t=await ks(this,{idToken:e}),r=await Vs._fromGetAccountInfoResponse(this,t,e);await this.directlySetCurrentUser(r)}catch(e){console.warn("FirebaseServerApp could not login user with provided authIdToken: ",e),await this.directlySetCurrentUser(null)}}async initializeCurrentUser(e){if(h(this.app)){let t=this.app.settings.authIdToken;return t?new Promise(e=>{setTimeout(()=>this.initializeCurrentUserFromIdToken(t).then(e,e))}):this.directlySetCurrentUser(null)}var t,r,n,i=await this.assertedPersistence.getCurrentUser();let s=i,a=!1;if(e&&this.config.authDomain&&(await this.getOrInitRedirectPersistenceManager(),t=this.redirectUser?._redirectEventId,r=s?._redirectEventId,n=await this.tryRedirectSignIn(e),t&&t!==r||!n?.user||(s=n.user,a=!0)),!s)return this.directlySetCurrentUser(null);if(s._redirectEventId)return m(this._popupRedirectResolver,this,"argument-error"),await this.getOrInitRedirectPersistenceManager(),this.redirectUser&&this.redirectUser._redirectEventId===s._redirectEventId?this.directlySetCurrentUser(s):this.reloadAndSetCurrentUserOrClear(s);if(a)try{await this.beforeStateQueue.runMiddleware(s)}catch(e){s=i,this._popupRedirectResolver._overrideRedirectResult(this,()=>Promise.reject(e))}return s?this.reloadAndSetCurrentUserOrClear(s):this.directlySetCurrentUser(null)}async tryRedirectSignIn(e){let t=null;try{t=await this._popupRedirectResolver._completeRedirectFn(this,e,!0)}catch(e){await this._setRedirectUser(null)}return t}async reloadAndSetCurrentUserOrClear(e){try{await Ms(e)}catch(e){if("auth/network-request-failed"!==e?.code)return this.directlySetCurrentUser(null)}return this.directlySetCurrentUser(e)}useDeviceLanguage(){var e;this.languageCode="undefined"!=typeof navigator&&((e=navigator).languages&&e.languages[0]||e.language)||null}async _delete(){this._deleted=!0}async updateCurrentUser(e){var t;return h(this.app)?Promise.reject(rs(this)):((t=e?w(e):null)&&m(t.auth.config.apiKey===this.config.apiKey,this,"invalid-user-token"),this._updateCurrentUser(t&&t._clone(this)))}async _updateCurrentUser(e,t=!1){if(!this._deleted)return e&&m(this.tenantId===e.tenantId,this,"tenant-id-mismatch"),t||await this.beforeStateQueue.runMiddleware(e),this.queue(async()=>{await this.directlySetCurrentUser(e),this.notifyAuthListeners()})}async signOut(){return h(this.app)?Promise.reject(rs(this)):(await this.beforeStateQueue.runMiddleware(null),(this.redirectPersistenceManager||this._popupRedirectResolver)&&await this._setRedirectUser(null),this._updateCurrentUser(null,!0))}setPersistence(e){return h(this.app)?Promise.reject(rs(this)):this.queue(async()=>{await this.assertedPersistence.setPersistence(Bs(e))})}_getRecaptchaConfig(){return null==this.tenantId?this._agentRecaptchaConfig:this._tenantRecaptchaConfigs[this.tenantId]}async validatePassword(e){this._getPasswordPolicyInternal()||await this._updatePasswordPolicy();var t=this._getPasswordPolicyInternal();return t.schemaVersion!==this.EXPECTED_PASSWORD_POLICY_SCHEMA_VERSION?Promise.reject(this._errorFactory.create("unsupported-password-policy-schema-version",{})):t.validatePassword(e)}_getPasswordPolicyInternal(){return null===this.tenantId?this._projectPasswordPolicy:this._tenantPasswordPolicies[this.tenantId]}async _updatePasswordPolicy(){var e,t=await vs(e=this,"GET","/v2/passwordPolicy",ms(e,{})),t=new ia(t);null===this.tenantId?this._projectPasswordPolicy=t:this._tenantPasswordPolicies[this.tenantId]=t}_getPersistenceType(){return this.assertedPersistence.persistence.type}_getPersistence(){return this.assertedPersistence.persistence}_updateErrorMap(e){this._errorFactory=new we("auth","Firebase",e())}onAuthStateChanged(e,t,r){return this.registerStateListener(this.authStateSubscription,e,t,r)}beforeAuthStateChanged(e,t){return this.beforeStateQueue.pushCallback(e,t)}onIdTokenChanged(e,t,r){return this.registerStateListener(this.idTokenSubscription,e,t,r)}authStateReady(){return new Promise((t,r)=>{if(this.currentUser)t();else{let e=this.onAuthStateChanged(()=>{e(),t()},r)}})}async revokeAccessToken(e){var t;this.currentUser&&(t={providerId:"apple.com",tokenType:"ACCESS_TOKEN",token:e,idToken:await this.currentUser.getIdToken()},null!=this.tenantId&&(t.tenantId=this.tenantId),await vs(e=this,"POST","/v2/accounts:revokeToken",ms(e,t)))}toJSON(){return{apiKey:this.config.apiKey,authDomain:this.config.authDomain,appName:this.name,currentUser:this._currentUser?.toJSON()}}async _setRedirectUser(e,t){var r=await this.getOrInitRedirectPersistenceManager(t);return null===e?r.removeCurrentUser():r.setCurrentUser(e)}async getOrInitRedirectPersistenceManager(e){var t;return this.redirectPersistenceManager||(m(t=e&&Bs(e)||this._popupRedirectResolver,this,"argument-error"),this.redirectPersistenceManager=await Ws.create(this,[Bs(t._redirectPersistence)],"redirectUser"),this.redirectUser=await this.redirectPersistenceManager.getCurrentUser()),this.redirectPersistenceManager}async _redirectUserForId(e){return this._isInitialized&&await this.queue(async()=>{}),this._currentUser?._redirectEventId===e?this._currentUser:this.redirectUser?._redirectEventId===e?this.redirectUser:null}async _persistUserIfCurrent(e){if(e===this.currentUser)return this.queue(async()=>this.directlySetCurrentUser(e))}_notifyListenersIfCurrent(e){e===this.currentUser&&this.notifyAuthListeners()}_key(){return`${this.config.authDomain}:${this.config.apiKey}:`+this.name}_startProactiveRefresh(){this.isProactiveRefreshEnabled=!0,this.currentUser&&this._currentUser._startProactiveRefresh()}_stopProactiveRefresh(){this.isProactiveRefreshEnabled=!1,this.currentUser&&this._currentUser._stopProactiveRefresh()}get _currentUser(){return this.currentUser}notifyAuthListeners(){var e;this._isInitialized&&(this.idTokenSubscription.next(this.currentUser),e=this.currentUser?.uid??null,this.lastNotifiedUid!==e)&&(this.lastNotifiedUid=e,this.authStateSubscription.next(this.currentUser))}registerStateListener(t,r,n,i){if(this._deleted)return()=>{};let e="function"==typeof r?r:r.next.bind(r),s=!1;var a=this._isInitialized?Promise.resolve():this._initializationPromise;if(m(a,this,"internal-error"),a.then(()=>{s||e(this.currentUser)}),"function"==typeof r){let e=t.addObserver(r,n,i);return()=>{s=!0,e()}}{let e=t.addObserver(r);return()=>{s=!0,e()}}}async directlySetCurrentUser(e){this.currentUser&&this.currentUser!==e&&this._currentUser._stopProactiveRefresh(),e&&this.isProactiveRefreshEnabled&&e._startProactiveRefresh(),(this.currentUser=e)?await this.assertedPersistence.setCurrentUser(e):await this.assertedPersistence.removeCurrentUser()}queue(e){return this.operations=this.operations.then(e,e),this.operations}get assertedPersistence(){return m(this.persistenceManager,this,"internal-error"),this.persistenceManager}_logFramework(e){e&&!this.frameworks.includes(e)&&(this.frameworks.push(e),this.frameworks.sort(),this.clientVersion=ra(this.config.clientPlatform,this._getFrameworks()))}_getFrameworks(){return this.frameworks}async _getAdditionalHeaders(){var e={"X-Client-Version":this.clientVersion},t=(this.app.options.appId&&(e["X-Firebase-gmpid"]=this.app.options.appId),await this.heartbeatServiceProvider.getImmediate({optional:!0})?.getHeartbeatsHeader()),t=(t&&(e["X-Firebase-Client"]=t),await this._getAppCheckToken());return t&&(e["X-Firebase-AppCheck"]=t),e}async _getAppCheckToken(){var e,t,r;return h(this.app)&&this.app.settings.appCheckToken?this.app.settings.appCheckToken:((e=await this.appCheckServiceProvider.getImmediate({optional:!0})?.getToken())?.error&&(t="Error while retrieving App Check token: "+e.error,r=[],Ji.logLevel<=c.WARN)&&Ji.warn(`Auth (${qt}): `+t,...r),e?.token)}}function aa(e){return w(e)}class oa{constructor(e){this.auth=e,this.observer=null,this.addObserver=Me(e=>this.observer=e)}get next(){return m(this.observer,this.auth,"internal-error"),this.observer.next.bind(this.observer)}}let la={async loadJS(){throw new Error("Unable to load external scripts")},recaptchaV2Script:"",recaptchaEnterpriseScript:"",gapiScript:""};function ha(e){return la.loadJS(e)}function ua(e){return"__"+e+Math.floor(1e6*Math.random())}class ca{constructor(e){this.auth=e,this.counter=1e12,this._widgets=new Map}render(e,t){var r=this.counter;return this._widgets.set(r,new fa(e,this.auth.name,t||{})),this.counter++,r}reset(e){var t=e||1e12;this._widgets.get(t)?.delete(),this._widgets.delete(t)}getResponse(e){return this._widgets.get(e||1e12)?.getResponse()||""}async execute(e){return this._widgets.get(e||1e12)?.execute(),""}}class da{constructor(){this.enterprise=new pa}ready(e){e()}execute(e,t){return Promise.resolve("token")}render(e,t){return""}}class pa{ready(e){e()}execute(e,t){return Promise.resolve("token")}render(e,t){return""}}class fa{constructor(e,t,r){this.params=r,this.timerId=null,this.deleted=!1,this.responseToken=null,this.clickHandler=()=>{this.execute()};var n="string"==typeof e?document.getElementById(e):e;m(n,"argument-error",{appName:t}),this.container=n,this.isVisible="invisible"!==this.params.size,this.isVisible?this.execute():this.container.addEventListener("click",this.clickHandler)}getResponse(){return this.checkIfDeleted(),this.responseToken}delete(){this.checkIfDeleted(),this.deleted=!0,this.timerId&&(clearTimeout(this.timerId),this.timerId=null),this.container.removeEventListener("click",this.clickHandler)}execute(){this.checkIfDeleted(),this.timerId||(this.timerId=window.setTimeout(()=>{this.responseToken=(e=>{var t=[],r="1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";for(let n=0;n<e;n++)t.push(r.charAt(Math.floor(Math.random()*r.length)));return t.join("")})(50);let{callback:e,"expired-callback":t}=this.params;if(e)try{e(this.responseToken)}catch(e){}this.timerId=window.setTimeout(()=>{if(this.timerId=null,this.responseToken=null,t)try{t()}catch(e){}this.isVisible&&this.execute()},6e4)},500))}checkIfDeleted(){if(this.deleted)throw new Error("reCAPTCHA mock was already deleted!")}}let ga="NO_RECAPTCHA";class ma{constructor(e){this.type="recaptcha-enterprise",this.auth=aa(e)}async verify(i="verify",e=!1){function s(e,t,r){let n=window.grecaptcha;Es(n)?n.enterprise.ready(()=>{n.enterprise.execute(e,{action:i}).then(e=>{t(e)}).catch(()=>{t(ga)})}):r(Error("No reCAPTCHA enterprise script loaded."))}return this.auth.settings.appVerificationDisabledForTesting?(new da).execute("siteKey",{action:"verify"}):new Promise((r,n)=>{(async i=>{if(!e){if(null==i.tenantId&&null!=i._agentRecaptchaConfig)return i._agentRecaptchaConfig.siteKey;if(null!=i.tenantId&&void 0!==i._tenantRecaptchaConfigs[i.tenantId])return i._tenantRecaptchaConfigs[i.tenantId].siteKey}return new Promise(async(r,n)=>{Ss(i,{clientType:"CLIENT_TYPE_WEB",version:"RECAPTCHA_ENTERPRISE"}).then(e=>{var t;if(void 0!==e.recaptchaKey)return t=new Cs(e),null==i.tenantId?i._agentRecaptchaConfig=t:i._tenantRecaptchaConfigs[i.tenantId]=t,r(t.siteKey);n(new Error("recaptcha Enterprise site key undefined"))}).catch(e=>{n(e)})})})(this.auth).then(t=>{if(!e&&Es(window.grecaptcha))s(t,r,n);else if("undefined"==typeof window)n(new Error("RecaptchaVerifier is only supported in browser"));else{let e=la.recaptchaEnterpriseScript;0!==e.length&&(e+=t),ha(e).then(()=>{s(t,r,n)}).catch(e=>{n(e)})}}).catch(e=>{n(e)})})}}async function va(e,t,r,n=!1,i=!1){var s=new ma(e);let a;if(i)a=ga;else try{a=await s.verify(r)}catch(e){a=await s.verify(r,!0)}var o,l,s={...t};return"mfaSmsEnrollment"===r||"mfaSmsSignIn"===r?"phoneEnrollmentInfo"in s?(l=s.phoneEnrollmentInfo.phoneNumber,o=s.phoneEnrollmentInfo.recaptchaToken,Object.assign(s,{phoneEnrollmentInfo:{phoneNumber:l,recaptchaToken:o,captchaResponse:a,clientType:"CLIENT_TYPE_WEB",recaptchaVersion:"RECAPTCHA_ENTERPRISE"}})):"phoneSignInInfo"in s&&(l=s.phoneSignInInfo.recaptchaToken,Object.assign(s,{phoneSignInInfo:{recaptchaToken:l,captchaResponse:a,clientType:"CLIENT_TYPE_WEB",recaptchaVersion:"RECAPTCHA_ENTERPRISE"}})):(n?Object.assign(s,{captchaResp:a}):Object.assign(s,{captchaResponse:a}),Object.assign(s,{clientType:"CLIENT_TYPE_WEB"}),Object.assign(s,{recaptchaVersion:"RECAPTCHA_ENTERPRISE"})),s}async function _a(r,n,i,s,e){var t;return"EMAIL_PASSWORD_PROVIDER"===e?r._getRecaptchaConfig()?.isProviderEnabled("EMAIL_PASSWORD_PROVIDER")?(t=await va(r,n,i,"getOobCode"===i),s(r,t)):s(r,n).catch(async e=>{var t;return"auth/missing-recaptcha-token"===e.code?(console.log(i+" is protected by reCAPTCHA Enterprise for this project. Automatically triggering the reCAPTCHA flow and restarting the flow."),t=await va(r,n,i,"getOobCode"===i),s(r,t)):Promise.reject(e)}):"PHONE_PROVIDER"===e?r._getRecaptchaConfig()?.isProviderEnabled("PHONE_PROVIDER")?(t=await va(r,n,i),s(r,t).catch(async e=>{var t;if("AUDIT"===r._getRecaptchaConfig()?.getProviderEnforcementState("PHONE_PROVIDER")&&("auth/missing-recaptcha-token"===e.code||"auth/invalid-app-credential"===e.code))return console.log(`Failed to verify with reCAPTCHA Enterprise. Automatically triggering the reCAPTCHA v2 flow to complete the ${i} flow.`),t=await va(r,n,i,!1,!0),s(r,t);return Promise.reject(e)})):(t=await va(r,n,i,!1,!0),s(r,t)):Promise.reject(e+" provider is not supported.")}function ya(e,t,r){var n=aa(e),i=(m(/^https?:\/\//.test(t),n,"invalid-emulator-scheme"),!!r?.disableWarnings),s=wa(t),{host:a,port:o}=(e=>{var t,r=wa(e);return(r=/(\/\/)?([^?#/]+)/.exec(e.substr(r.length)))?(r=r[2].split("@").pop()||"",(t=/^(\[[^\]]+\])(:|$)/.exec(r))?{host:t=t[1],port:ba(r.substr(t.length+1))}:([t,r]=r.split(":"),{host:t,port:ba(r)})):{host:"",port:null}})(t),l=null===o?"":":"+o,h={url:s+`//${a}${l}/`},o=Object.freeze({host:a,port:o,protocol:s.replace(":",""),options:Object.freeze({disableWarnings:i})});function u(){var e=document.createElement("p"),t=e.style;e.innerText="Running in emulator mode. Do not use with production credentials.",t.position="fixed",t.width="100%",t.backgroundColor="#ffffff",t.border=".1em solid #000000",t.color="#b50000",t.bottom="0px",t.left="0px",t.margin="0px",t.zIndex="10000",t.textAlign="center",e.classList.add("firebase-emulator-warning"),document.body.appendChild(e)}n._canInitEmulator?(n.config.emulator=h,n.emulatorConfig=o,n.settings.appVerificationDisabledForTesting=!0,ee(a)?(te(s+"//"+a+l),se("Auth",!0)):i||("undefined"!=typeof console&&"function"==typeof console.info&&console.info("WARNING: You are using the Auth Emulator, which is intended for local testing only. Do not use with production credentials."),"undefined"!=typeof window&&"undefined"!=typeof document&&("loading"===document.readyState?window.addEventListener("DOMContentLoaded",u):u()))):(m(n.config.emulator&&n.emulatorConfig,n,"emulator-config-failed"),m(Ne(h,n.config.emulator)&&Ne(o,n.emulatorConfig),n,"emulator-config-failed"))}function wa(e){var t=e.indexOf(":");return t<0?"":e.substr(0,t+1)}function ba(e){var t;return!e||(t=Number(e),isNaN(t))?null:t}class Ia{constructor(e,t){this.providerId=e,this.signInMethod=t}toJSON(){return ss("not implemented")}_getIdTokenResponse(e){return ss("not implemented")}_linkToIdToken(e,t){return ss("not implemented")}_getReauthenticationResolver(e){return ss("not implemented")}}async function Ta(e,t){return vs(e,"POST","/v1/accounts:resetPassword",ms(e,t))}async function Ea(e,t){return vs(e,"POST","/v1/accounts:signUp",t)}async function Ca(e,t){return ys(e,"POST","/v1/accounts:signInWithPassword",ms(e,t))}async function Sa(e,t){return vs(e,"POST","/v1/accounts:sendOobCode",ms(e,t))}async function ka(e,t){return Sa(e,t)}async function Aa(e,t){return Sa(e,t)}class Na extends Ia{constructor(e,t,r,n=null){super("password",r),this._email=e,this._password=t,this._tenantId=n}static _fromEmailAndPassword(e,t){return new Na(e,t,"password")}static _fromEmailAndCode(e,t,r=null){return new Na(e,t,"emailLink",r)}toJSON(){return{email:this._email,password:this._password,signInMethod:this.signInMethod,tenantId:this._tenantId}}static fromJSON(e){var t="string"==typeof e?JSON.parse(e):e;if(t?.email&&t?.password){if("password"===t.signInMethod)return this._fromEmailAndPassword(t.email,t.password);if("emailLink"===t.signInMethod)return this._fromEmailAndCode(t.email,t.password,t.tenantId)}return null}async _getIdTokenResponse(e){switch(this.signInMethod){case"password":return _a(e,{returnSecureToken:!0,email:this._email,password:this._password,clientType:"CLIENT_TYPE_WEB"},"signInWithPassword",Ca,"EMAIL_PASSWORD_PROVIDER");case"emailLink":return(async(e,t)=>ys(e,"POST","/v1/accounts:signInWithEmailLink",ms(e,t)))(e,{email:this._email,oobCode:this._password});default:Zi(e,"internal-error")}}async _linkToIdToken(e,t){switch(this.signInMethod){case"password":return _a(e,{idToken:t,returnSecureToken:!0,email:this._email,password:this._password,clientType:"CLIENT_TYPE_WEB"},"signUpPassword",Ea,"EMAIL_PASSWORD_PROVIDER");case"emailLink":return(async(e,t)=>ys(e,"POST","/v1/accounts:signInWithEmailLink",ms(e,t)))(e,{idToken:t,email:this._email,oobCode:this._password});default:Zi(e,"internal-error")}}_getReauthenticationResolver(e){return this._getIdTokenResponse(e)}}async function Ra(e,t){return ys(e,"POST","/v1/accounts:signInWithIdp",ms(e,t))}class Pa extends Ia{constructor(){super(...arguments),this.pendingToken=null}static _fromParams(e){var t=new Pa(e.providerId,e.signInMethod);return e.idToken||e.accessToken?(e.idToken&&(t.idToken=e.idToken),e.accessToken&&(t.accessToken=e.accessToken),e.nonce&&!e.pendingToken&&(t.nonce=e.nonce),e.pendingToken&&(t.pendingToken=e.pendingToken)):e.oauthToken&&e.oauthTokenSecret?(t.accessToken=e.oauthToken,t.secret=e.oauthTokenSecret):Zi("argument-error"),t}toJSON(){return{idToken:this.idToken,accessToken:this.accessToken,secret:this.secret,nonce:this.nonce,pendingToken:this.pendingToken,providerId:this.providerId,signInMethod:this.signInMethod}}static fromJSON(e){var t;let{providerId:r,signInMethod:n,...i}="string"==typeof e?JSON.parse(e):e;return r&&n?((t=new Pa(r,n)).idToken=i.idToken||void 0,t.accessToken=i.accessToken||void 0,t.secret=i.secret,t.nonce=i.nonce,t.pendingToken=i.pendingToken||null,t):null}_getIdTokenResponse(e){return Ra(e,this.buildRequest())}_linkToIdToken(e,t){var r=this.buildRequest();return r.idToken=t,Ra(e,r)}_getReauthenticationResolver(e){var t=this.buildRequest();return t.autoCreate=!1,Ra(e,t)}buildRequest(){var e,t={requestUri:"http://localhost",returnSecureToken:!0};return this.pendingToken?t.pendingToken=this.pendingToken:(e={},this.idToken&&(e.id_token=this.idToken),this.accessToken&&(e.access_token=this.accessToken),this.secret&&(e.oauth_token_secret=this.secret),e.providerId=this.providerId,this.nonce&&!this.pendingToken&&(e.nonce=this.nonce),t.postBody=Pe(e)),t}}async function Da(e,t){return vs(e,"POST","/v1/accounts:sendVerificationCode",ms(e,t))}let xa={USER_NOT_FOUND:"user-not-found"};class Oa extends Ia{constructor(e){super("phone","phone"),this.params=e}static _fromVerification(e,t){return new Oa({verificationId:e,verificationCode:t})}static _fromTokenResponse(e,t){return new Oa({phoneNumber:e,temporaryProof:t})}_getIdTokenResponse(e){return(async(e,t)=>ys(e,"POST","/v1/accounts:signInWithPhoneNumber",ms(e,t)))(e,this._makeVerificationRequest())}_linkToIdToken(e,t){return(async(e,t)=>{var r=await ys(e,"POST","/v1/accounts:signInWithPhoneNumber",ms(e,t));if(r.temporaryProof)throw Is(e,"account-exists-with-different-credential",r);return r})(e,{idToken:t,...this._makeVerificationRequest()})}_getReauthenticationResolver(e){return(async(e,t)=>ys(e,"POST","/v1/accounts:signInWithPhoneNumber",ms(e,{...t,operation:"REAUTH"}),xa))(e,this._makeVerificationRequest())}_makeVerificationRequest(){var{temporaryProof:e,phoneNumber:t,verificationId:r,verificationCode:n}=this.params;return e&&t?{temporaryProof:e,phoneNumber:t}:{sessionInfo:r,code:n}}toJSON(){var e={providerId:this.providerId};return this.params.phoneNumber&&(e.phoneNumber=this.params.phoneNumber),this.params.temporaryProof&&(e.temporaryProof=this.params.temporaryProof),this.params.verificationCode&&(e.verificationCode=this.params.verificationCode),this.params.verificationId&&(e.verificationId=this.params.verificationId),e}static fromJSON(e){var{verificationId:t,verificationCode:r,phoneNumber:n,temporaryProof:i}=e="string"==typeof e?JSON.parse(e):e;return r||t||n||i?new Oa({verificationId:t,verificationCode:r,phoneNumber:n,temporaryProof:i}):null}}class Ma{constructor(e){var t=De(xe(e)),r=t.apiKey??null,n=t.oobCode??null,i=(e=>{switch(e){case"recoverEmail":return"RECOVER_EMAIL";case"resetPassword":return"PASSWORD_RESET";case"signIn":return"EMAIL_SIGNIN";case"verifyEmail":return"VERIFY_EMAIL";case"verifyAndChangeEmail":return"VERIFY_AND_CHANGE_EMAIL";case"revertSecondFactorAddition":return"REVERT_SECOND_FACTOR_ADDITION";default:return null}})(t.mode??null);m(r&&n&&i,"argument-error"),this.apiKey=r,this.operation=i,this.code=n,this.continueUrl=t.continueUrl??null,this.languageCode=t.lang??null,this.tenantId=t.tenantId??null}static parseLink(e){t=De(xe(e=e)).link,r=t?De(xe(t)).deep_link_id:null;var t,r,n=((n=De(xe(e)).deep_link_id)?De(xe(n)).link:null)||n||r||t||e;try{return new Ma(n)}catch{return null}}}class La{constructor(){this.providerId=La.PROVIDER_ID}static credential(e,t){return Na._fromEmailAndPassword(e,t)}static credentialWithLink(e,t){var r=Ma.parseLink(t);return m(r,"argument-error"),Na._fromEmailAndCode(e,r.code,r.tenantId)}}La.PROVIDER_ID="password",La.EMAIL_PASSWORD_SIGN_IN_METHOD="password",La.EMAIL_LINK_SIGN_IN_METHOD="emailLink";class Fa{constructor(e){this.providerId=e,this.defaultLanguageCode=null,this.customParameters={}}setDefaultLanguage(e){this.defaultLanguageCode=e}setCustomParameters(e){return this.customParameters=e,this}getCustomParameters(){return this.customParameters}}class Ua extends Fa{constructor(){super(...arguments),this.scopes=[]}addScope(e){return this.scopes.includes(e)||this.scopes.push(e),this}getScopes(){return[...this.scopes]}}class Va extends Ua{static credentialFromJSON(e){var t="string"==typeof e?JSON.parse(e):e;return m("providerId"in t&&"signInMethod"in t,"argument-error"),Pa._fromParams(t)}credential(e){return this._credential({...e,nonce:e.rawNonce})}_credential(e){return m(e.idToken||e.accessToken,"argument-error"),Pa._fromParams({...e,providerId:this.providerId,signInMethod:this.providerId})}static credentialFromResult(e){return Va.oauthCredentialFromTaggedObject(e)}static credentialFromError(e){return Va.oauthCredentialFromTaggedObject(e.customData||{})}static oauthCredentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;var{oauthIdToken:t,oauthAccessToken:r,oauthTokenSecret:n,pendingToken:i,nonce:s,providerId:a}=e;if(!(r||n||t||i))return null;if(!a)return null;try{return new Va(a)._credential({idToken:t,accessToken:r,nonce:s,pendingToken:i})}catch(e){return null}}}class qa extends Ua{constructor(){super("facebook.com")}static credential(e){return Pa._fromParams({providerId:qa.PROVIDER_ID,signInMethod:qa.FACEBOOK_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return qa.credentialFromTaggedObject(e)}static credentialFromError(e){return qa.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!(e&&"oauthAccessToken"in e))return null;if(!e.oauthAccessToken)return null;try{return qa.credential(e.oauthAccessToken)}catch{return null}}}qa.FACEBOOK_SIGN_IN_METHOD="facebook.com",qa.PROVIDER_ID="facebook.com";class Ba extends Ua{constructor(){super("google.com"),this.addScope("profile")}static credential(e,t){return Pa._fromParams({providerId:Ba.PROVIDER_ID,signInMethod:Ba.GOOGLE_SIGN_IN_METHOD,idToken:e,accessToken:t})}static credentialFromResult(e){return Ba.credentialFromTaggedObject(e)}static credentialFromError(e){return Ba.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;var{oauthIdToken:t,oauthAccessToken:r}=e;if(!t&&!r)return null;try{return Ba.credential(t,r)}catch{return null}}}Ba.GOOGLE_SIGN_IN_METHOD="google.com",Ba.PROVIDER_ID="google.com";class ja extends Ua{constructor(){super("github.com")}static credential(e){return Pa._fromParams({providerId:ja.PROVIDER_ID,signInMethod:ja.GITHUB_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return ja.credentialFromTaggedObject(e)}static credentialFromError(e){return ja.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!(e&&"oauthAccessToken"in e))return null;if(!e.oauthAccessToken)return null;try{return ja.credential(e.oauthAccessToken)}catch{return null}}}ja.GITHUB_SIGN_IN_METHOD="github.com",ja.PROVIDER_ID="github.com";class za extends Ia{constructor(e,t){super(e,e),this.pendingToken=t}_getIdTokenResponse(e){return Ra(e,this.buildRequest())}_linkToIdToken(e,t){var r=this.buildRequest();return r.idToken=t,Ra(e,r)}_getReauthenticationResolver(e){var t=this.buildRequest();return t.autoCreate=!1,Ra(e,t)}toJSON(){return{signInMethod:this.signInMethod,providerId:this.providerId,pendingToken:this.pendingToken}}static fromJSON(e){var{providerId:t,signInMethod:r,pendingToken:n}="string"==typeof e?JSON.parse(e):e;return t&&r&&n&&t===r?new za(t,n):null}static _create(e,t){return new za(e,t)}buildRequest(){return{requestUri:"http://localhost",returnSecureToken:!0,pendingToken:this.pendingToken}}}class Ka extends Fa{constructor(e){m(e.startsWith("saml."),"argument-error"),super(e)}static credentialFromResult(e){return Ka.samlCredentialFromTaggedObject(e)}static credentialFromError(e){return Ka.samlCredentialFromTaggedObject(e.customData||{})}static credentialFromJSON(e){var t=za.fromJSON(e);return m(t,"argument-error"),t}static samlCredentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;var{pendingToken:t,providerId:r}=e;if(!t||!r)return null;try{return za._create(r,t)}catch(e){return null}}}class Wa extends Ua{constructor(){super("twitter.com")}static credential(e,t){return Pa._fromParams({providerId:Wa.PROVIDER_ID,signInMethod:Wa.TWITTER_SIGN_IN_METHOD,oauthToken:e,oauthTokenSecret:t})}static credentialFromResult(e){return Wa.credentialFromTaggedObject(e)}static credentialFromError(e){return Wa.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;var{oauthAccessToken:t,oauthTokenSecret:r}=e;if(!t||!r)return null;try{return Wa.credential(t,r)}catch{return null}}}async function Ha(e,t){return ys(e,"POST","/v1/accounts:signUp",ms(e,t))}Wa.TWITTER_SIGN_IN_METHOD="twitter.com",Wa.PROVIDER_ID="twitter.com";class Ga{constructor(e){this.user=e.user,this.providerId=e.providerId,this._tokenResponse=e._tokenResponse,this.operationType=e.operationType}static async _fromIdTokenResponse(e,t,r,n=!1){var i=await Vs._fromIdTokenResponse(e,r,n),s=$a(r);return new Ga({user:i,providerId:s,_tokenResponse:r,operationType:t})}static async _forOperation(e,t,r){await e._updateTokensIfNecessary(r,!0);var n=$a(r);return new Ga({user:e,providerId:n,_tokenResponse:r,operationType:t})}}function $a(e){return e.providerId||("phoneNumber"in e?"phone":null)}class Qa extends ye{constructor(e,t,r,n){super(t.code,t.message),this.operationType=r,this.user=n,Object.setPrototypeOf(this,Qa.prototype),this.customData={appName:e.name,tenantId:e.tenantId??void 0,_serverResponse:t.customData._serverResponse,operationType:r}}static _fromErrorAndOperation(e,t,r,n){return new Qa(e,t,r,n)}}function Ya(t,r,e,n){return("reauthenticate"===r?e._getReauthenticationResolver(t):e._getIdTokenResponse(t)).catch(e=>{if("auth/multi-factor-auth-required"===e.code)throw Qa._fromErrorAndOperation(t,e,r,n);throw e})}function Ja(e){return new Set(e.map(({providerId:e})=>e).filter(e=>!!e))}async function Xa(e,t){var r=w(e),n=(await eo(!0,r,t),e=r.auth,t={idToken:await r.getIdToken(),deleteProvider:[t]},await vs(e,"POST","/v1/accounts:update",t)).providerUserInfo;let i=Ja(n||[]);return r.providerData=r.providerData.filter(e=>i.has(e.providerId)),i.has("phone")||(r.phoneNumber=null),await r.auth._persistUserIfCurrent(r),r}async function Za(e,t,r=!1){var n=await Ds(e,t._linkToIdToken(e.auth,await e.getIdToken()),r);return Ga._forOperation(e,"link",n)}async function eo(e,t,r){await Ms(t);var n=!1===e?"provider-already-linked":"no-such-provider";m(Ja(t.providerData).has(r)===e,t.auth,n)}async function to(e,t,r=!1){var n=e.auth;if(h(n.app))return Promise.reject(rs(n));var i="reauthenticate";try{var s=await Ds(e,Ya(n,i,t,e),r),a=(m(s.idToken,n,"internal-error"),Rs(s.idToken)),o=(m(a,n,"internal-error"),a).sub;return m(e.uid===o,n,"user-mismatch"),Ga._forOperation(e,i,s)}catch(e){throw"auth/user-not-found"===e?.code&&Zi(n,"user-mismatch"),e}}async function ro(e,t,r=!1){var n;return h(e.app)?Promise.reject(rs(e)):(n=await Ya(e,"signIn",t),n=await Ga._fromIdTokenResponse(e,"signIn",n),r||await e._updateCurrentUser(n.user),n)}async function no(e,t){return ro(aa(e),t)}async function io(e,t){var r=w(e);return await eo(!1,r,t.providerId),Za(r,t)}async function so(e,t){return to(w(e),t)}async function ao(e,t){var r,n;return h(e.app)?Promise.reject(rs(e)):(n=await ys(r=aa(e),"POST","/v1/accounts:signInWithCustomToken",ms(r,{token:t,returnSecureToken:!0})),n=await Ga._fromIdTokenResponse(r,"signIn",n),await r._updateCurrentUser(n.user),n)}class oo{constructor(e,t){this.factorId=e,this.uid=t.mfaEnrollmentId,this.enrollmentTime=new Date(t.enrolledAt).toUTCString(),this.displayName=t.displayName}static _fromServerResponse(e,t){return"phoneInfo"in t?lo._fromServerResponse(e,t):"totpInfo"in t?ho._fromServerResponse(e,t):Zi(e,"internal-error")}}class lo extends oo{constructor(e){super("phone",e),this.phoneNumber=e.phoneInfo}static _fromServerResponse(e,t){return new lo(t)}}class ho extends oo{constructor(e){super("totp",e)}static _fromServerResponse(e,t){return new ho(t)}}function uo(e,t,r){m(0<r.url?.length,e,"invalid-continue-uri"),m(void 0===r.dynamicLinkDomain||0<r.dynamicLinkDomain.length,e,"invalid-dynamic-link-domain"),m(void 0===r.linkDomain||0<r.linkDomain.length,e,"invalid-hosting-link-domain"),t.continueUrl=r.url,t.dynamicLinkDomain=r.dynamicLinkDomain,t.linkDomain=r.linkDomain,t.canHandleCodeInApp=r.handleCodeInApp,r.iOS&&(m(0<r.iOS.bundleId.length,e,"missing-ios-bundle-id"),t.iOSBundleId=r.iOS.bundleId),r.android&&(m(0<r.android.packageName.length,e,"missing-android-pkg-name"),t.androidInstallApp=r.android.installApp,t.androidMinimumVersionCode=r.android.minimumVersion,t.androidPackageName=r.android.packageName)}async function co(e){var t=aa(e);t._getPasswordPolicyInternal()&&await t._updatePasswordPolicy()}async function po(e,t){await vs(e=w(e),"POST","/v1/accounts:update",ms(e,{oobCode:t}))}async function fo(e,t){var r=w(e),n=await Ta(r,{oobCode:t}),i=n.requestType;switch(m(i,r,"internal-error"),i){case"EMAIL_SIGNIN":break;case"VERIFY_AND_CHANGE_EMAIL":m(n.newEmail,r,"internal-error");break;case"REVERT_SECOND_FACTOR_ADDITION":m(n.mfaInfo,r,"internal-error");default:m(n.email,r,"internal-error")}let s=null;return n.mfaInfo&&(s=oo._fromServerResponse(aa(r),n.mfaInfo)),{data:{email:("VERIFY_AND_CHANGE_EMAIL"===n.requestType?n.newEmail:n.email)||null,previousEmail:("VERIFY_AND_CHANGE_EMAIL"===n.requestType?n.email:n.newEmail)||null,multiFactorInfo:s},operation:i}}async function go(e,t){var r=ls()?os():"http://localhost",r=(await vs(e=w(e),"POST","/v1/accounts:createAuthUri",ms(e,{identifier:t,continueUri:r}))).signinMethods;return r||[]}async function mo(e,t){var r=w(e),n={requestType:"VERIFY_EMAIL",idToken:await e.getIdToken()},r=(t&&uo(r.auth,n,t),await Sa(r.auth,n)).email;r!==e.email&&await e.reload()}async function vo(e,t,r){var n=w(e),i={requestType:"VERIFY_AND_CHANGE_EMAIL",idToken:await e.getIdToken(),newEmail:t},n=(r&&uo(n.auth,i,r),await Sa(n.auth,i)).email;n!==e.email&&await e.reload()}async function _o(e,{displayName:t,photoURL:r}){var n,i,s;void 0===t&&void 0===r||(i=await(n=w(e)).getIdToken(),i=await Ds(n,(async(e,t)=>vs(e,"POST","/v1/accounts:update",t))(n.auth,{idToken:i,displayName:t,photoUrl:r,returnSecureToken:!0})),n.displayName=i.displayName||null,n.photoURL=i.photoUrl||null,(s=n.providerData.find(({providerId:e})=>"password"===e))&&(s.displayName=n.displayName,s.photoURL=n.photoURL),await n._updateTokensIfNecessary(i))}async function yo(e,t,r){var n=e.auth,i={idToken:await e.getIdToken(),returnSecureToken:!0},n=(t&&(i.email=t),r&&(i.password=r),await Ds(e,(async(e,t)=>vs(e,"POST","/v1/accounts:update",t))(n,i)));await e._updateTokensIfNecessary(n,!0)}class wo{constructor(e,t,r={}){this.isNewUser=e,this.providerId=t,this.profile=r}}class bo extends wo{constructor(e,t,r,n){super(e,t,r),this.username=n}}class Io extends wo{constructor(e,t){super(e,"facebook.com",t)}}class To extends bo{constructor(e,t){super(e,"github.com",t,"string"==typeof t?.login?t?.login:null)}}class Eo extends wo{constructor(e,t){super(e,"google.com",t)}}class Co extends bo{constructor(e,t,r){super(e,"twitter.com",t,r)}}function So(e){var{user:t,_tokenResponse:r}=e;if(t.isAnonymous&&!r)return{providerId:null,isNewUser:!1,profile:null};var n=r;if(!n)return null;var i=n.providerId,s=n.rawUserInfo?JSON.parse(n.rawUserInfo):{},a=n.isNewUser||"identitytoolkit#SignupNewUserResponse"===n.kind;if(!i&&n?.idToken){t=Rs(n.idToken)?.firebase?.sign_in_provider;if(t)return t="anonymous"!==t&&"custom"!==t?t:null,new wo(a,t)}if(!i)return null;switch(i){case"facebook.com":return new Io(a,s);case"github.com":return new To(a,s);case"google.com":return new Eo(a,s);case"twitter.com":return new Co(a,s,n.screenName||null);case"custom":case"anonymous":return new wo(a,null);default:return new wo(a,i,s)}}class ko{constructor(e,t,r){this.type=e,this.credential=t,this.user=r}static _fromIdtoken(e,t){return new ko("enroll",e,t)}static _fromMfaPendingCredential(e){return new ko("signin",e)}toJSON(){return{multiFactorSession:{["enroll"===this.type?"idToken":"pendingCredential"]:this.credential}}}static fromJSON(e){if(e?.multiFactorSession){if(e.multiFactorSession?.pendingCredential)return ko._fromMfaPendingCredential(e.multiFactorSession.pendingCredential);if(e.multiFactorSession?.idToken)return ko._fromIdtoken(e.multiFactorSession.idToken)}return null}}class Ao{constructor(e,t,r){this.session=e,this.hints=t,this.signInResolver=r}static _fromError(e,i){let s=aa(e),a=i.customData._serverResponse;var t=(a.mfaInfo||[]).map(e=>oo._fromServerResponse(s,e));m(a.mfaPendingCredential,s,"internal-error");let o=ko._fromMfaPendingCredential(a.mfaPendingCredential);return new Ao(o,t,async e=>{var t=await e._process(s,o),r=(delete a.mfaInfo,delete a.mfaPendingCredential,{...a,idToken:t.idToken,refreshToken:t.refreshToken});switch(i.operationType){case"signIn":var n=await Ga._fromIdTokenResponse(s,i.operationType,r);return await s._updateCurrentUser(n.user),n;case"reauthenticate":return m(i.user,s,"internal-error"),Ga._forOperation(i.user,i.operationType,r);default:Zi(s,"internal-error")}})}async resolveSignIn(e){return this.signInResolver(e)}}function No(e,t){return vs(e,"POST","/v2/accounts/mfaEnrollment:start",ms(e,t))}class Ro{constructor(t){this.user=t,this.enrolledFactors=[],t._onReload(e=>{e.mfaInfo&&(this.enrolledFactors=e.mfaInfo.map(e=>oo._fromServerResponse(t.auth,e)))})}static _fromUser(e){return new Ro(e)}async getSession(){return ko._fromIdtoken(await this.user.getIdToken(),this.user)}async enroll(e,t){var r=e,n=await this.getSession(),r=await Ds(this.user,r._process(this.user.auth,n,t));return await this.user._updateTokensIfNecessary(r),this.user.reload()}async unenroll(e){let t="string"==typeof e?e:e.uid;var r,n,i=await this.user.getIdToken();try{var s=await Ds(this.user,(r=this.user.auth,n={idToken:i,mfaEnrollmentId:t},vs(r,"POST","/v2/accounts/mfaEnrollment:withdraw",ms(r,n))));this.enrolledFactors=this.enrolledFactors.filter(({uid:e})=>e!==t),await this.user._updateTokensIfNecessary(s),await this.user.reload()}catch(e){throw e}}}let Po=new WeakMap;let Do="__sak";class xo{constructor(e,t){this.storageRetriever=e,this.type=t}_isAvailable(){try{return this.storage?(this.storage.setItem(Do,"1"),this.storage.removeItem(Do),Promise.resolve(!0)):Promise.resolve(!1)}catch{return Promise.resolve(!1)}}_set(e,t){return this.storage.setItem(e,JSON.stringify(t)),Promise.resolve()}_get(e){var t=this.storage.getItem(e);return Promise.resolve(t?JSON.parse(t):null)}_remove(e){return this.storage.removeItem(e),Promise.resolve()}get storage(){return this.storageRetriever()}}class Oo extends xo{constructor(){super(()=>window.localStorage,"LOCAL"),this.boundEventHandler=(e,t)=>this.onStorageEvent(e,t),this.listeners={},this.localCache={},this.pollTimer=null,this.fallbackToPolling=ta(),this._shouldAllowMigration=!0}forAllChangedKeys(e){for(var t of Object.keys(this.listeners)){var r=this.storage.getItem(t),n=this.localCache[t];r!==n&&e(t,n,r)}}onStorageEvent(e,r=!1){if(e.key){let t=e.key;r?this.detachListener():this.stopPolling();var n=()=>{var e=this.storage.getItem(t);!r&&this.localCache[t]===e||this.notifyListeners(t,e)},i=this.storage.getItem(t);de()&&10===document.documentMode&&i!==e.newValue&&e.newValue!==e.oldValue?setTimeout(n,10):n()}else this.forAllChangedKeys((e,t,r)=>{this.notifyListeners(e,r)})}notifyListeners(e,t){this.localCache[e]=t;var r=this.listeners[e];if(r)for(var n of Array.from(r))n(t&&JSON.parse(t))}startPolling(){this.stopPolling(),this.pollTimer=setInterval(()=>{this.forAllChangedKeys((e,t,r)=>{this.onStorageEvent(new StorageEvent("storage",{key:e,oldValue:t,newValue:r}),!0)})},1e3)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}attachListener(){window.addEventListener("storage",this.boundEventHandler)}detachListener(){window.removeEventListener("storage",this.boundEventHandler)}_addListener(e,t){0===Object.keys(this.listeners).length&&(this.fallbackToPolling?this.startPolling():this.attachListener()),this.listeners[e]||(this.listeners[e]=new Set,this.localCache[e]=this.storage.getItem(e)),this.listeners[e].add(t)}_removeListener(e,t){this.listeners[e]&&(this.listeners[e].delete(t),0===this.listeners[e].size)&&delete this.listeners[e],0===Object.keys(this.listeners).length&&(this.detachListener(),this.stopPolling())}async _set(e,t){await super._set(e,t),this.localCache[e]=JSON.stringify(t)}async _get(e){var t=await super._get(e);return this.localCache[e]=JSON.stringify(t),t}async _remove(e){await super._remove(e),delete this.localCache[e]}}Oo.type="LOCAL";let Mo=Oo;class Lo extends xo{constructor(){super(()=>window.sessionStorage,"SESSION")}_addListener(e,t){}_removeListener(e,t){}}Lo.type="SESSION";let Fo=Lo;class Uo{constructor(e){this.eventTarget=e,this.handlersMap={},this.boundEventHandler=this.handleEvent.bind(this)}static _getInstance(t){var e=this.receivers.find(e=>e.isListeningto(t));return e||(e=new Uo(t),this.receivers.push(e),e)}isListeningto(e){return this.eventTarget===e}async handleEvent(e){let t=e,{eventId:r,eventType:n,data:i}=t.data;var s=this.handlersMap[n];s?.size&&(t.ports[0].postMessage({status:"ack",eventId:r,eventType:n}),s=Array.from(s).map(async e=>e(t.origin,i)),s=await Promise.all(s.map(async e=>{try{return{fulfilled:!0,value:await e}}catch(e){return{fulfilled:!1,reason:e}}})),t.ports[0].postMessage({status:"done",eventId:r,eventType:n,response:s}))}_subscribe(e,t){0===Object.keys(this.handlersMap).length&&this.eventTarget.addEventListener("message",this.boundEventHandler),this.handlersMap[e]||(this.handlersMap[e]=new Set),this.handlersMap[e].add(t)}_unsubscribe(e,t){this.handlersMap[e]&&t&&this.handlersMap[e].delete(t),t&&0!==this.handlersMap[e].size||delete this.handlersMap[e],0===Object.keys(this.handlersMap).length&&this.eventTarget.removeEventListener("message",this.boundEventHandler)}}function Vo(e="",t=10){let r="";for(let n=0;n<t;n++)r+=Math.floor(10*Math.random());return e+r}Uo.receivers=[];class qo{constructor(e){this.target=e,this.handlers=new Set}removeMessageHandler(e){e.messageChannel&&(e.messageChannel.port1.removeEventListener("message",e.onMessage),e.messageChannel.port1.close()),this.handlers.delete(e)}async _send(e,t,a=50){let o="undefined"!=typeof MessageChannel?new MessageChannel:null;if(!o)throw new Error("connection_unavailable");let l,h;return new Promise((r,n)=>{let i=Vo("",20),s=(o.port1.start(),setTimeout(()=>{n(new Error("unsupported_event"))},a));h={messageChannel:o,onMessage(e){var t=e;if(t.data.eventId===i)switch(t.data.status){case"ack":clearTimeout(s),l=setTimeout(()=>{n(new Error("timeout"))},3e3);break;case"done":clearTimeout(l),r(t.data.response);break;default:clearTimeout(s),clearTimeout(l),n(new Error("invalid_response"))}}},this.handlers.add(h),o.port1.addEventListener("message",h.onMessage),this.target.postMessage({eventType:e,eventId:i,data:t},[o.port2])}).finally(()=>{h&&this.removeMessageHandler(h)})}}function Bo(){return window}function jo(){return void 0!==Bo().WorkerGlobalScope&&"function"==typeof Bo().importScripts}let zo="firebaseLocalStorageDb",Ko="firebaseLocalStorage",Wo="fbase_key";class Ho{constructor(e){this.request=e}toPromise(){return new Promise((e,t)=>{this.request.addEventListener("success",()=>{e(this.request.result)}),this.request.addEventListener("error",()=>{t(this.request.error)})})}}function Go(e,t){return e.transaction([Ko],t?"readwrite":"readonly").objectStore(Ko)}function $o(){let n=indexedDB.open(zo,1);return new Promise((t,r)=>{n.addEventListener("error",()=>{r(n.error)}),n.addEventListener("upgradeneeded",()=>{var e=n.result;try{e.createObjectStore(Ko,{keyPath:Wo})}catch(e){r(e)}}),n.addEventListener("success",async()=>{var e=n.result;e.objectStoreNames.contains(Ko)?t(e):(e.close(),e=indexedDB.deleteDatabase(zo),await new Ho(e).toPromise(),t(await $o()))})})}async function Qo(e,t,r){var n=Go(e,!0).put({fbase_key:t,value:r});return new Ho(n).toPromise()}function Yo(e,t){var r=Go(e,!0).delete(t);return new Ho(r).toPromise()}class Jo{constructor(){this.type="LOCAL",this._shouldAllowMigration=!0,this.listeners={},this.localCache={},this.pollTimer=null,this.pendingWrites=0,this.receiver=null,this.sender=null,this.serviceWorkerReceiverAvailable=!1,this.activeServiceWorker=null,this._workerInitializationPromise=this.initializeServiceWorkerMessaging().then(()=>{},()=>{})}async _openDb(){return this.db||(this.db=await $o()),this.db}async _withRetries(e){let t=0;for(;;)try{return await e(await this._openDb())}catch(e){if(3<t++)throw e;this.db&&(this.db.close(),this.db=void 0)}}async initializeServiceWorkerMessaging(){return jo()?this.initializeReceiver():this.initializeSender()}async initializeReceiver(){this.receiver=Uo._getInstance(jo()?self:null),this.receiver._subscribe("keyChanged",async(e,t)=>({keyProcessed:(await this._poll()).includes(t.key)})),this.receiver._subscribe("ping",async(e,t)=>["keyChanged"])}async initializeSender(){var e;this.activeServiceWorker=await(async()=>{if(!navigator?.serviceWorker)return null;try{return(await navigator.serviceWorker.ready).active}catch{return null}})(),this.activeServiceWorker&&(this.sender=new qo(this.activeServiceWorker),e=await this.sender._send("ping",{},800))&&e[0]?.fulfilled&&e[0]?.value.includes("keyChanged")&&(this.serviceWorkerReceiverAvailable=!0)}async notifyServiceWorker(e){if(this.sender&&this.activeServiceWorker&&(navigator?.serviceWorker?.controller||null)===this.activeServiceWorker)try{await this.sender._send("keyChanged",{key:e},this.serviceWorkerReceiverAvailable?800:50)}catch{}}async _isAvailable(){try{var e;return indexedDB?(await Qo(e=await $o(),Do,"1"),await Yo(e,Do),!0):!1}catch{}return!1}async _withPendingWrite(e){this.pendingWrites++;try{await e()}finally{this.pendingWrites--}}async _set(t,r){return this._withPendingWrite(async()=>(await this._withRetries(e=>Qo(e,t,r)),this.localCache[t]=r,this.notifyServiceWorker(t)))}async _get(t){var e=await this._withRetries(e=>(async(e,t)=>{var r=Go(e,!1).get(t);return void 0===(r=await new Ho(r).toPromise())?null:r.value})(e,t));return this.localCache[t]=e}async _remove(t){return this._withPendingWrite(async()=>(await this._withRetries(e=>Yo(e,t)),delete this.localCache[t],this.notifyServiceWorker(t)))}async _poll(){var e=await this._withRetries(e=>{var t=Go(e,!1).getAll();return new Ho(t).toPromise()});if(!e)return[];if(0!==this.pendingWrites)return[];var t,r=[],n=new Set;if(0!==e.length)for(var{fbase_key:i,value:s}of e)n.add(i),JSON.stringify(this.localCache[i])!==JSON.stringify(s)&&(this.notifyListeners(i,s),r.push(i));for(t of Object.keys(this.localCache))this.localCache[t]&&!n.has(t)&&(this.notifyListeners(t,null),r.push(t));return r}notifyListeners(e,t){this.localCache[e]=t;var r=this.listeners[e];if(r)for(var n of Array.from(r))n(t)}startPolling(){this.stopPolling(),this.pollTimer=setInterval(async()=>this._poll(),800)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}_addListener(e,t){0===Object.keys(this.listeners).length&&this.startPolling(),this.listeners[e]||(this.listeners[e]=new Set,this._get(e)),this.listeners[e].add(t)}_removeListener(e,t){this.listeners[e]&&(this.listeners[e].delete(t),0===this.listeners[e].size)&&delete this.listeners[e],0===Object.keys(this.listeners).length&&this.stopPolling()}}Jo.type="LOCAL";let Xo=Jo;function Zo(e,t){return vs(e,"POST","/v2/accounts/mfaSignIn:start",ms(e,t))}let el=ua("rcb"),tl=new us(3e4,6e4);class rl{constructor(){this.hostLanguage="",this.counter=0,this.librarySeparatelyLoaded=!!Bo().grecaptcha?.render}load(i,s=""){var e;return m((e=s).length<=6&&/^\s*[a-zA-Z0-9\-]*\s*$/.test(e),i,"argument-error"),this.shouldResolveImmediately(s)&&Ts(Bo().grecaptcha)?Promise.resolve(Bo().grecaptcha):new Promise((t,r)=>{let n=Bo().setTimeout(()=>{r(es(i,"network-request-failed"))},tl.get());Bo()[el]=()=>{Bo().clearTimeout(n),delete Bo()[el];var e=Bo().grecaptcha;if(e&&Ts(e)){let n=e.render;e.render=(e,t)=>{var r=n(e,t);return this.counter++,r},this.hostLanguage=s,t(e)}else r(es(i,"internal-error"))},ha(la.recaptchaV2Script+"?"+Pe({onload:el,render:"explicit",hl:s})).catch(()=>{clearTimeout(n),r(es(i,"internal-error"))})})}clearedOneInstance(){this.counter--}shouldResolveImmediately(e){return!!Bo().grecaptcha?.render&&(e===this.hostLanguage||0<this.counter||this.librarySeparatelyLoaded)}}class nl{async load(e){return new ca(e)}clearedOneInstance(){}}let il="recaptcha",sl={theme:"light",type:"image"};class al{constructor(e,t,r={...sl}){this.parameters=r,this.type=il,this.destroyed=!1,this.widgetId=null,this.tokenChangeListeners=new Set,this.renderPromise=null,this.recaptcha=null,this.auth=aa(e),this.isInvisible="invisible"===this.parameters.size,m("undefined"!=typeof document,this.auth,"operation-not-supported-in-this-environment");var n="string"==typeof t?document.getElementById(t):t;m(n,this.auth,"argument-error"),this.container=n,this.parameters.callback=this.makeTokenCallback(this.parameters.callback),this._recaptchaLoader=new(this.auth.settings.appVerificationDisabledForTesting?nl:rl),this.validateStartingState()}async verify(){this.assertNotDestroyed();let e=await this.render(),n=this.getAssertedRecaptcha();var t=n.getResponse(e);return t||new Promise(t=>{let r=e=>{e&&(this.tokenChangeListeners.delete(r),t(e))};this.tokenChangeListeners.add(r),this.isInvisible&&n.execute(e)})}render(){try{this.assertNotDestroyed()}catch(e){return Promise.reject(e)}return this.renderPromise||(this.renderPromise=this.makeRenderPromise().catch(e=>{throw this.renderPromise=null,e})),this.renderPromise}_reset(){this.assertNotDestroyed(),null!==this.widgetId&&this.getAssertedRecaptcha().reset(this.widgetId)}clear(){this.assertNotDestroyed(),this.destroyed=!0,this._recaptchaLoader.clearedOneInstance(),this.isInvisible||this.container.childNodes.forEach(e=>{this.container.removeChild(e)})}validateStartingState(){m(!this.parameters.sitekey,this.auth,"argument-error"),m(this.isInvisible||!this.container.hasChildNodes(),this.auth,"argument-error"),m("undefined"!=typeof document,this.auth,"operation-not-supported-in-this-environment")}makeTokenCallback(r){return t=>{var e;this.tokenChangeListeners.forEach(e=>e(t)),"function"==typeof r?r(t):"string"==typeof r&&"function"==typeof(e=Bo()[r])&&e(t)}}assertNotDestroyed(){m(!this.destroyed,this.auth,"internal-error")}async makeRenderPromise(){if(await this.init(),!this.widgetId){let e=this.container;var t;this.isInvisible||(t=document.createElement("div"),e.appendChild(t),e=t),this.widgetId=this.getAssertedRecaptcha().render(e,this.parameters)}return this.widgetId}async init(){m(ls()&&!jo(),this.auth,"internal-error"),await(()=>{let t=null;return new Promise(e=>{"complete"===document.readyState?e():(t=()=>e(),window.addEventListener("load",t))}).catch(e=>{throw t&&window.removeEventListener("load",t),e})})(),this.recaptcha=await this._recaptchaLoader.load(this.auth,this.auth.languageCode||void 0);var e=await((await vs(this.auth,"GET","/v1/recaptchaParams")).recaptchaSiteKey||"");m(e,this.auth,"internal-error"),this.parameters.sitekey=e}getAssertedRecaptcha(){return m(this.recaptcha,this.auth,"internal-error"),this.recaptcha}}class ol{constructor(e,t){this.verificationId=e,this.onConfirmation=t}confirm(e){var t=Oa._fromVerification(this.verificationId,e);return this.onConfirmation(t)}}async function ll(t,r,n){if(!t._getRecaptchaConfig())try{e=aa(t),i=await Ss(e,{clientType:"CLIENT_TYPE_WEB",version:"RECAPTCHA_ENTERPRISE"}),i=new Cs(i),null==e.tenantId?e._agentRecaptchaConfig=i:e._tenantRecaptchaConfigs[e.tenantId]=i,await(!i.isAnyProviderEnabled()||!new ma(e).verify())}catch(e){console.log("Failed to initialize reCAPTCHA Enterprise config. Triggering the reCAPTCHA v2 verification.")}var e,i,s,a,o,l,h;try{let e;return("session"in(e="string"==typeof r?{phoneNumber:r}:r)?(s=e.session,"phoneNumber"in e?(m("enroll"===s.type,t,"internal-error"),a={idToken:s.credential,phoneEnrollmentInfo:{phoneNumber:e.phoneNumber,clientType:"CLIENT_TYPE_WEB"}},(await _a(t,a,"mfaSmsEnrollment",async(e,t)=>t.phoneEnrollmentInfo.captchaResponse===ga?(m(n?.type===il,e,"argument-error"),No(e,await hl(e,t,n))):No(e,t),"PHONE_PROVIDER").catch(e=>Promise.reject(e))).phoneSessionInfo):(m("signin"===s.type,t,"internal-error"),m(o=e.multiFactorHint?.uid||e.multiFactorUid,t,"missing-multi-factor-info"),l={mfaPendingCredential:s.credential,mfaEnrollmentId:o,phoneSignInInfo:{clientType:"CLIENT_TYPE_WEB"}},(await _a(t,l,"mfaSmsSignIn",async(e,t)=>t.phoneSignInInfo.captchaResponse===ga?(m(n?.type===il,e,"argument-error"),Zo(e,await hl(e,t,n))):Zo(e,t),"PHONE_PROVIDER").catch(e=>Promise.reject(e))).phoneResponseInfo)):(h={phoneNumber:e.phoneNumber,clientType:"CLIENT_TYPE_WEB"},await _a(t,h,"sendVerificationCode",async(e,t)=>t.captchaResponse===ga?(m(n?.type===il,e,"argument-error"),Da(e,await hl(e,t,n))):Da(e,t),"PHONE_PROVIDER").catch(e=>Promise.reject(e)))).sessionInfo}finally{n?._reset()}}async function hl(e,t,r){m(r.type===il,e,"argument-error");var n,i,s,a,o=await r.verify(),l=(m("string"==typeof o,e,"argument-error"),{...t});return"phoneEnrollmentInfo"in l?(i=l.phoneEnrollmentInfo.phoneNumber,s=l.phoneEnrollmentInfo.captchaResponse,a=l.phoneEnrollmentInfo.clientType,n=l.phoneEnrollmentInfo.recaptchaVersion,Object.assign(l,{phoneEnrollmentInfo:{phoneNumber:i,recaptchaToken:o,captchaResponse:s,clientType:a,recaptchaVersion:n}})):"phoneSignInInfo"in l?(i=l.phoneSignInInfo.captchaResponse,s=l.phoneSignInInfo.clientType,a=l.phoneSignInInfo.recaptchaVersion,Object.assign(l,{phoneSignInInfo:{recaptchaToken:o,captchaResponse:i,clientType:s,recaptchaVersion:a}})):Object.assign(l,{recaptchaToken:o}),l}class ul{constructor(e){this.providerId=ul.PROVIDER_ID,this.auth=aa(e)}verifyPhoneNumber(e,t){return ll(this.auth,e,w(t))}static credential(e,t){return Oa._fromVerification(e,t)}static credentialFromResult(e){var t=e;return ul.credentialFromTaggedObject(t)}static credentialFromError(e){return ul.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){var t,r;return e&&({phoneNumber:t,temporaryProof:r}=e,t)&&r?Oa._fromTokenResponse(t,r):null}}function cl(e,t){return t?Bs(t):(m(e._popupRedirectResolver,e,"argument-error"),e._popupRedirectResolver)}ul.PROVIDER_ID="phone",ul.PHONE_SIGN_IN_METHOD="phone";class dl extends Ia{constructor(e){super("custom","custom"),this.params=e}_getIdTokenResponse(e){return Ra(e,this._buildIdpRequest())}_linkToIdToken(e,t){return Ra(e,this._buildIdpRequest(t))}_getReauthenticationResolver(e){return Ra(e,this._buildIdpRequest())}_buildIdpRequest(e){var t={requestUri:this.params.requestUri,sessionId:this.params.sessionId,postBody:this.params.postBody,tenantId:this.params.tenantId,pendingToken:this.params.pendingToken,returnSecureToken:!0,returnIdpCredential:!0};return e&&(t.idToken=e),t}}function pl(e){return ro(e.auth,new dl(e),e.bypassAuthState)}function fl(e){var{auth:t,user:r}=e;return m(r,t,"internal-error"),to(r,new dl(e),e.bypassAuthState)}async function gl(e){var{auth:t,user:r}=e;return m(r,t,"internal-error"),Za(r,new dl(e),e.bypassAuthState)}class ml{constructor(e,t,r,n,i=!1){this.auth=e,this.resolver=r,this.user=n,this.bypassAuthState=i,this.pendingPromise=null,this.eventManager=null,this.filter=Array.isArray(t)?t:[t]}execute(){return new Promise(async(e,t)=>{this.pendingPromise={resolve:e,reject:t};try{this.eventManager=await this.resolver._initialize(this.auth),await this.onExecution(),this.eventManager.registerConsumer(this)}catch(e){this.reject(e)}})}async onAuthEvent(e){var{urlResponse:t,sessionId:r,postBody:n,tenantId:i,error:s,type:a}=e;if(s)this.reject(s);else{s={auth:this.auth,requestUri:t,sessionId:r,tenantId:i||void 0,postBody:n||void 0,user:this.user,bypassAuthState:this.bypassAuthState};try{this.resolve(await this.getIdpTask(a)(s))}catch(e){this.reject(e)}}}onError(e){this.reject(e)}getIdpTask(e){switch(e){case"signInViaPopup":case"signInViaRedirect":return pl;case"linkViaPopup":case"linkViaRedirect":return gl;case"reauthViaPopup":case"reauthViaRedirect":return fl;default:Zi(this.auth,"internal-error")}}resolve(e){as(this.pendingPromise,"Pending promise was never set"),this.pendingPromise.resolve(e),this.unregisterAndCleanUp()}reject(e){as(this.pendingPromise,"Pending promise was never set"),this.pendingPromise.reject(e),this.unregisterAndCleanUp()}unregisterAndCleanUp(){this.eventManager&&this.eventManager.unregisterConsumer(this),this.pendingPromise=null,this.cleanUp()}}let vl=new us(2e3,1e4);class _l extends ml{constructor(e,t,r,n,i){super(e,t,n,i),this.provider=r,this.authWindow=null,this.pollId=null,_l.currentPopupAction&&_l.currentPopupAction.cancel(),_l.currentPopupAction=this}async executeNotNull(){var e=await this.execute();return m(e,this.auth,"internal-error"),e}async onExecution(){as(1===this.filter.length,"Popup operations only handle one event");var e=Vo();this.authWindow=await this.resolver._openPopup(this.auth,this.provider,this.filter[0],e),this.authWindow.associatedEvent=e,this.resolver._originValidation(this.auth).catch(e=>{this.reject(e)}),this.resolver._isIframeWebStorageSupported(this.auth,e=>{e||this.reject(es(this.auth,"web-storage-unsupported"))}),this.pollUserCancellation()}get eventId(){return this.authWindow?.associatedEvent||null}cancel(){this.reject(es(this.auth,"cancelled-popup-request"))}cleanUp(){this.authWindow&&this.authWindow.close(),this.pollId&&window.clearTimeout(this.pollId),this.authWindow=null,this.pollId=null,_l.currentPopupAction=null}pollUserCancellation(){let e=()=>{this.authWindow?.window?.closed?this.pollId=window.setTimeout(()=>{this.pollId=null,this.reject(es(this.auth,"popup-closed-by-user"))},8e3):this.pollId=window.setTimeout(e,vl.get())};e()}}_l.currentPopupAction=null;let yl="pendingRedirect",wl=new Map;class bl extends ml{constructor(e,t,r=!1){super(e,["signInViaRedirect","linkViaRedirect","reauthViaRedirect","unknown"],t,void 0,r),this.eventId=null}async execute(){let t=wl.get(this.auth._key());if(!t){try{let e=await(async(e,t)=>{var r,n=Cl(t),i=El(e);return!!await i._isAvailable()&&(r="true"===await i._get(n),await i._remove(n),r)})(this.resolver,this.auth)?await super.execute():null;t=()=>Promise.resolve(e)}catch(e){t=()=>Promise.reject(e)}wl.set(this.auth._key(),t)}return this.bypassAuthState||wl.set(this.auth._key(),()=>Promise.resolve(null)),t()}async onAuthEvent(e){if("signInViaRedirect"===e.type)return super.onAuthEvent(e);if("unknown"===e.type)this.resolve(null);else if(e.eventId){var t=await this.auth._redirectUserForId(e.eventId);if(t)return this.user=t,super.onAuthEvent(e);this.resolve(null)}}async onExecution(){}cleanUp(){}}async function Il(e,t){return El(e)._set(Cl(t),"true")}function Tl(e,t){wl.set(e._key(),t)}function El(e){return Bs(e._redirectPersistence)}function Cl(e){return Ks(yl,e.config.apiKey,e.name)}function Sl(e,t,r){return(async(e,t,r)=>{var n,i;return h(e.app)?Promise.reject(rs(e)):(n=aa(e),ns(e,t,Fa),await n._initializationPromise,await Il(i=cl(n,r),n),i._openRedirect(n,t,"signInViaRedirect"))})(e,t,r)}function kl(e,t,r){return(async(e,t,r)=>{var n=w(e);if(ns(n.auth,t,Fa),h(n.auth.app))return Promise.reject(rs(n.auth));await n.auth._initializationPromise;var i=cl(n.auth,r),s=(await Il(i,n.auth),await Rl(n));return i._openRedirect(n.auth,t,"reauthViaRedirect",s)})(e,t,r)}function Al(e,t,r){return(async(e,t,r)=>{var n=w(e),i=(ns(n.auth,t,Fa),await n.auth._initializationPromise,cl(n.auth,r)),s=(await eo(!1,n,t.providerId),await Il(i,n.auth),await Rl(n));return i._openRedirect(n.auth,t,"linkViaRedirect",s)})(e,t,r)}async function Nl(e,t,r=!1){var n,i;return h(e.app)?Promise.reject(rs(e)):(i=cl(n=aa(e),t),(i=await new bl(n,i,r).execute())&&!r&&(delete i.user._redirectEventId,await n._persistUserIfCurrent(i.user),await n._setRedirectUser(null,t)),i)}async function Rl(e){var t=Vo(e.uid+":::");return e._redirectEventId=t,await e.auth._setRedirectUser(e),await e.auth._persistUserIfCurrent(e),t}class Pl{constructor(e){this.auth=e,this.cachedEventUids=new Set,this.consumers=new Set,this.queuedRedirectEvent=null,this.hasHandledPotentialRedirect=!1,this.lastProcessedEventTime=Date.now()}registerConsumer(e){this.consumers.add(e),this.queuedRedirectEvent&&this.isEventForConsumer(this.queuedRedirectEvent,e)&&(this.sendToConsumer(this.queuedRedirectEvent,e),this.saveEventToCache(this.queuedRedirectEvent),this.queuedRedirectEvent=null)}unregisterConsumer(e){this.consumers.delete(e)}onEvent(t){if(this.hasEventBeenHandled(t))return!1;let r=!1;return this.consumers.forEach(e=>{this.isEventForConsumer(t,e)&&(r=!0,this.sendToConsumer(t,e),this.saveEventToCache(t))}),this.hasHandledPotentialRedirect||!(e=>{switch(e.type){case"signInViaRedirect":case"linkViaRedirect":case"reauthViaRedirect":return 1;case"unknown":return xl(e);default:return}})(t)||(this.hasHandledPotentialRedirect=!0,r)||(this.queuedRedirectEvent=t,r=!0),r}sendToConsumer(e,t){var r;e.error&&!xl(e)?(r=e.error.code?.split("auth/")[1]||"internal-error",t.onError(es(this.auth,r))):t.onAuthEvent(e)}isEventForConsumer(e,t){var r=null===t.eventId||!!e.eventId&&e.eventId===t.eventId;return t.filter.includes(e.type)&&r}hasEventBeenHandled(e){return 6e5<=Date.now()-this.lastProcessedEventTime&&this.cachedEventUids.clear(),this.cachedEventUids.has(Dl(e))}saveEventToCache(e){this.cachedEventUids.add(Dl(e)),this.lastProcessedEventTime=Date.now()}}function Dl(e){return[e.type,e.eventId,e.sessionId,e.tenantId].filter(e=>e).join("-")}function xl({type:e,error:t}){return"unknown"===e&&"auth/no-auth-event"===t?.code}async function Ol(e,t={}){return vs(e,"GET","/v1/projects",t)}let Ml=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,Ll=/^https?/;async function Fl(e){if(!e.config.emulator){var t,r=(await Ol(e)).authorizedDomains;for(t of r)try{if((e=>{var t,r=os(),{protocol:n,hostname:i}=new URL(r);return e.startsWith("chrome-extension://")?""===(t=new URL(e)).hostname&&""===i?"chrome-extension:"===n&&e.replace("chrome-extension://","")===r.replace("chrome-extension://",""):"chrome-extension:"===n&&t.hostname===i:Ll.test(n)&&(Ml.test(e)?i===e:(r=e.replace(/\./g,"\\."),(t=new RegExp("^(.+\\."+r+"|"+r+")$","i")).test(i)))})(t))return}catch{}Zi(e,"unauthorized-domain")}}let Ul=new us(3e4,6e4);function Vl(){var t=Bo().___jsl;if(t?.H)for(var r of Object.keys(t.H))if(t.H[r].r=t.H[r].r||[],t.H[r].L=t.H[r].L||[],t.H[r].r=[...t.H[r].L],t.CP)for(let e=0;e<t.CP.length;e++)t.CP[e]=null}function ql(i){return new Promise((e,t)=>{function r(){Vl(),gapi.load("gapi.iframes",{callback:()=>{e(gapi.iframes.getContext())},ontimeout:()=>{Vl(),t(es(i,"network-request-failed"))},timeout:Ul.get()})}if(Bo().gapi?.iframes?.Iframe)e(gapi.iframes.getContext());else{var n;if(!Bo().gapi?.load)return n=ua("iframefcb"),Bo()[n]=()=>{gapi.load?r():t(es(i,"network-request-failed"))},ha(la.gapiScript+"?onload="+n).catch(e=>t(e));r()}}).catch(e=>{throw Bl=null,e})}let Bl=null;let jl=new us(5e3,15e3),zl="__/auth/iframe",Kl="emulator/auth/iframe",Wl={style:{position:"absolute",top:"-100px",width:"1px",height:"1px"},"aria-hidden":"true",tabindex:"-1"},Hl=new Map([["identitytoolkit.googleapis.com","p"],["staging-identitytoolkit.sandbox.googleapis.com","s"],["test-identitytoolkit.sandbox.googleapis.com","t"]]);async function Gl(a){e=a;var e,t,r,n=await(Bl=Bl||ql(e)),i=Bo().gapi;return m(i,a,"internal-error"),n.open({where:document.body,url:(m((n=(e=a).config).authDomain,e,"auth-domain-config-required"),t=n.emulator?cs(n,Kl):`https://${e.config.authDomain}/`+zl,n={apiKey:n.apiKey,appName:e.name,v:qt},(r=Hl.get(e.config.apiHost))&&(n.eid=r),(r=e._getFrameworks()).length&&(n.fw=r.join(",")),t+"?"+Pe(n).slice(1)),messageHandlersFilter:i.iframes.CROSS_ORIGIN_IFRAMES_FILTER,attributes:Wl,dontclear:!0},s=>new Promise(async(e,t)=>{await s.restyle({setHideOnLeave:!1});let r=es(a,"network-request-failed"),n=Bo().setTimeout(()=>{t(r)},jl.get());function i(){Bo().clearTimeout(n),e(s)}s.ping(i).then(i,()=>{t(r)})}))}let $l={location:"yes",resizable:"yes",statusbar:"yes",toolbar:"no"};class Ql{constructor(e){this.window=e,this.associatedEvent=null}close(){if(this.window)try{this.window.close()}catch(e){}}}function Yl(e,t,r,n=500,i=600){var s=Math.max((window.screen.availHeight-i)/2,0).toString(),a=Math.max((window.screen.availWidth-n)/2,0).toString();let o="";var l,s={...$l,width:n.toString(),height:i.toString(),top:s,left:a},a=ae().toLowerCase(),s=(r&&(o=Qs(a)?"_blank":r),Gs(a)&&(t=t||"http://localhost",s.scrollbars="yes"),Object.entries(s).reduce((e,[t,r])=>""+e+t+`=${r},`,""));if([n=ae()]=[a],ea(n)&&window.navigator?.standalone&&"_self"!==o)return i=t||"",r=o,(a=document.createElement("a")).href=i,a.target=r,(l=document.createEvent("MouseEvent")).initMouseEvent("click",!0,!0,window,1,0,0,0,0,!1,!1,!1,!1,1,null),a.dispatchEvent(l),new Ql(null);a=window.open(t||"",o,s);m(a,e,"popup-blocked");try{a.focus()}catch(e){}return new Ql(a)}let Jl="__/auth/handler",Xl="emulator/auth/handler",Zl=encodeURIComponent("fac");async function eh(e,t,r,n,i,s){m(e.config.authDomain,e,"auth-domain-config-required"),m(e.config.apiKey,e,"invalid-api-key");var a={apiKey:e.config.apiKey,appName:e.name,authType:r,redirectUrl:n,v:qt,eventId:i};if(t instanceof Fa){t.setDefaultLanguage(e.languageCode),a.providerId=t.providerId||"",ke(t.getCustomParameters())||(a.customParameters=JSON.stringify(t.getCustomParameters()));for(var[o,l]of Object.entries(s||{}))a[o]=l}t instanceof Ua&&0<(c=t.getScopes().filter(e=>""!==e)).length&&(a.scopes=c.join(",")),e.tenantId&&(a.tid=e.tenantId);var h,u=a;for(h of Object.keys(u))void 0===u[h]&&delete u[h];var c=await e._getAppCheckToken(),c=c?`#${Zl}=`+encodeURIComponent(c):"";return`${r=[e.config][0],r.emulator?cs(r,Xl):`https://${r.authDomain}/`+Jl}?`+Pe(u).slice(1)+c}let th="webStorageSupport";class rh{constructor(){this.eventManagers={},this.iframes={},this.originValidationPromises={},this._redirectPersistence=Fo,this._completeRedirectFn=Nl,this._overrideRedirectResult=Tl}async _openPopup(e,t,r,n){return as(this.eventManagers[e._key()]?.manager,"_initialize() not called before _openPopup()"),Yl(e,await eh(e,t,r,os(),n),Vo())}async _openRedirect(e,t,r,n){await this._originValidation(e);var i=await eh(e,t,r,os(),n);return Bo().location.href=i,new Promise(()=>{})}_initialize(e){let r=e._key();if(this.eventManagers[r]){let{manager:e,promise:t}=this.eventManagers[r];return e?Promise.resolve(e):(as(t,"If manager is not set, promise should be"),t)}let t=this.initAndGetManager(e);return this.eventManagers[r]={promise:t},t.catch(()=>{delete this.eventManagers[r]}),t}async initAndGetManager(t){var e=await Gl(t);let r=new Pl(t);return e.register("authEvent",e=>(m(e?.authEvent,t,"invalid-auth-event"),{status:r.onEvent(e.authEvent)?"ACK":"ERROR"}),gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER),this.eventManagers[t._key()]={manager:r},this.iframes[t._key()]=e,r}_isIframeWebStorageSupported(r,n){this.iframes[r._key()].send(th,{type:th},e=>{var t=e?.[0]?.[th];void 0!==t&&n(!!t),Zi(r,"internal-error")},gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER)}_originValidation(e){var t=e._key();return this.originValidationPromises[t]||(this.originValidationPromises[t]=Fl(e)),this.originValidationPromises[t]}get _shouldInitProactively(){return ta()||$s()||ea()}}let nh=rh;class ih extends class{constructor(e){this.factorId=e}_process(e,t,r){switch(t.type){case"enroll":return this._finalizeEnroll(e,t.credential,r);case"signin":return this._finalizeSignIn(e,t.credential);default:return ss("unexpected MultiFactorSessionType")}}}{constructor(e){super("phone"),this.credential=e}static _fromCredential(e){return new ih(e)}_finalizeEnroll(e,t,r){return e=e,t={idToken:t,displayName:r,phoneVerificationInfo:this.credential._makeVerificationRequest()},vs(e,"POST","/v2/accounts/mfaEnrollment:finalize",ms(e,t))}_finalizeSignIn(e,t){return e=e,t={mfaPendingCredential:t,phoneVerificationInfo:this.credential._makeVerificationRequest()},vs(e,"POST","/v2/accounts/mfaSignIn:finalize",ms(e,t))}}class sh{constructor(){}static assertion(e){return ih._fromCredential(e)}}sh.FACTOR_ID="phone";or="@firebase/auth";class ah{constructor(e){this.auth=e,this.internalListeners=new Map}getUid(){return this.assertAuthConfigured(),this.auth.currentUser?.uid||null}async getToken(e){return this.assertAuthConfigured(),await this.auth._initializationPromise,this.auth.currentUser?{accessToken:await this.auth.currentUser.getIdToken(e)}:null}addAuthTokenListener(t){var e;this.assertAuthConfigured(),this.internalListeners.has(t)||(e=this.auth.onIdTokenChanged(e=>{t(e?.stsTokenManager.accessToken||null)}),this.internalListeners.set(t,e),this.updateProactiveRefresh())}removeAuthTokenListener(e){this.assertAuthConfigured();var t=this.internalListeners.get(e);t&&(this.internalListeners.delete(e),t(),this.updateProactiveRefresh())}assertAuthConfigured(){m(this.auth._initializationPromise,"dependent-sdk-initialized-before-auth")}updateProactiveRefresh(){0<this.internalListeners.size?this.auth._startProactiveRefresh():this.auth._stopProactiveRefresh()}}var oh;function lh(){return window}Y()?._authIdTokenMaxAge,la={loadJS(n){return new Promise((e,r)=>{var t=document.createElement("script");t.setAttribute("src",n),t.onload=e,t.onerror=e=>{var t=es("internal-error");t.customData=e,r(t)},t.type="text/javascript",t.charset="UTF-8",(document.getElementsByTagName("head")?.[0]??document).appendChild(t)})},gapiScript:"https://apis.google.com/js/api.js",recaptchaV2Script:"https://www.google.com/recaptcha/api.js",recaptchaEnterpriseScript:"https://www.google.com/recaptcha/enterprise.js?render="},oh="Browser",Dt(new u("auth",(e,{options:t})=>{var r=e.getProvider("app").getImmediate(),n=e.getProvider("heartbeat"),i=e.getProvider("app-check-internal"),{apiKey:s,authDomain:a}=r.options,s=(m(s&&!s.includes(":"),"invalid-api-key",{appName:r.name}),{apiKey:s,authDomain:a,clientPlatform:oh,apiHost:"identitytoolkit.googleapis.com",tokenApiHost:"securetoken.googleapis.com",apiScheme:"https",sdkClientVersion:ra(oh)}),a=new sa(r,n,i,s);return e=a,r=(t=t)?.persistence||[],r=(Array.isArray(r)?r:[r]).map(Bs),t?.errorMap&&e._updateErrorMap(t.errorMap),e._initializeWithPersistence(r,t?.popupRedirectResolver),a},"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback((e,t,r)=>{e.getProvider("auth-internal").initialize()})),Dt(new u("auth-internal",e=>{var t=aa(e.getProvider("auth").getImmediate());return e=t,new ah(e)},"PRIVATE").setInstantiationMode("EXPLICIT")),d(or,"1.11.0",(e=>{switch(e){case"Node":return"node";case"ReactNative":return"rn";case"Worker":return"webworker";case"Cordova":return"cordova";case"WebExtension":return"web-extension";default:return}})(oh)),d(or,"1.11.0","esm2020");async function hh(e,t,r){var n=lh().BuildInfo,i=(as(t.sessionId,"AuthEvent did not contain a session ID"),i=(e=>{if(as(/[0-9a-zA-Z]+/.test(e),"Can only convert alpha-numeric strings"),"undefined"!=typeof TextEncoder)return(new TextEncoder).encode(e);var t=new ArrayBuffer(e.length),r=new Uint8Array(t);for(let n=0;n<e.length;n++)r[n]=e.charCodeAt(n);return r})(t.sessionId),i=await crypto.subtle.digest("SHA-256",i),await(i=Array.from(new Uint8Array(i))).map(e=>e.toString(16).padStart(2,"0")).join("")),s={};return ea()?s.ibi=n.packageName:Js()?s.apn=n.packageName:Zi(e,"operation-not-supported-in-this-environment"),n.displayName&&(s.appDisplayName=n.displayName),s.sessionId=i,eh(e,r,t.type,void 0,t.eventId??void 0,s)}function uh(n){let i=lh().cordova;return new Promise(r=>{i.plugins.browsertab.isAvailable(e=>{let t=null;e?i.plugins.browsertab.openUrl(n):t=i.InAppBrowser.open(n,(e=ae(),/(iPad|iPhone|iPod).*OS 7_\d/i.test(e)||/(iPad|iPhone|iPod).*OS 8_\d/i.test(e)?"_blank":"_system"),"location=yes"),r(t)})})}let ch=20;class dh extends Pl{constructor(){super(...arguments),this.passiveListeners=new Set,this.initPromise=new Promise(e=>{this.resolveInitialized=e})}addPassiveListener(e){this.passiveListeners.add(e)}removePassiveListener(e){this.passiveListeners.delete(e)}resetRedirect(){this.queuedRedirectEvent=null,this.hasHandledPotentialRedirect=!1}onEvent(t){return this.resolveInitialized(),this.passiveListeners.forEach(e=>e(t)),super.onEvent(t)}async initialized(){await this.initPromise}}function ph(e,t,r=null){return{type:t,eventId:r,urlResponse:null,sessionId:(()=>{var e=[],t="1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";for(let n=0;n<ch;n++){var r=Math.floor(Math.random()*t.length);e.push(t.charAt(r))}return e.join("")})(),postBody:null,tenantId:e.tenantId,error:es(e,"no-auth-event")}}async function fh(e){var t=await mh()._get(vh(e));return t&&await mh()._remove(vh(e)),t}function gh(e,t){i=_h(t=t),r=i.link?decodeURIComponent(i.link):void 0,n=_h(r).link,i=i.deep_link_id?decodeURIComponent(i.deep_link_id):void 0;var r,n,i=_h(i).link||i||n||r||t;return i.includes("/__/auth/callback")?(n=(r=((n=_h(i)).firebaseError?(e=>{try{return JSON.parse(e)}catch(e){return null}})(decodeURIComponent(n.firebaseError)):null)?.code?.split("auth/")?.[1])?es(r):null)?{type:e.type,eventId:e.eventId,tenantId:e.tenantId,error:n,urlResponse:null,sessionId:null,postBody:null}:{type:e.type,eventId:e.eventId,tenantId:e.tenantId,sessionId:e.sessionId,urlResponse:i,postBody:null}:null}function mh(){return Bs(Mo)}function vh(e){return Ks("authEvent",e.config.apiKey,e.name)}function _h(e){var t,r;return e?.includes("?")?([t,...r]=e.split("?"),De(r.join("?"))):{}}class yh{constructor(){this._redirectPersistence=Fo,this._shouldInitProactively=!0,this.eventManagers=new Map,this.originValidationPromises={},this._completeRedirectFn=Nl,this._overrideRedirectResult=Tl}async _initialize(e){var t=e._key();let r=this.eventManagers.get(t);return r||(r=new dh(e),this.eventManagers.set(t,r),this.attachCallbackListeners(e,r)),r}_openPopup(e){Zi(e,"operation-not-supported-in-this-environment")}async _openRedirect(e,t,r,n){i=e,m("function"==typeof(s=lh())?.universalLinks?.subscribe,i,"invalid-cordova-configuration",{missingPlugin:"cordova-universal-links-plugin-fix"}),m(void 0!==s?.BuildInfo?.packageName,i,"invalid-cordova-configuration",{missingPlugin:"cordova-plugin-buildInfo"}),m("function"==typeof s?.cordova?.plugins?.browsertab?.openUrl,i,"invalid-cordova-configuration",{missingPlugin:"cordova-plugin-browsertab"}),m("function"==typeof s?.cordova?.plugins?.browsertab?.isAvailable,i,"invalid-cordova-configuration",{missingPlugin:"cordova-plugin-browsertab"}),m("function"==typeof s?.cordova?.InAppBrowser?.open,i,"invalid-cordova-configuration",{missingPlugin:"cordova-plugin-inappbrowser"});var i,s=await this._initialize(e),a=(await s.initialized(),s.resetRedirect(),wl.clear(),await this._originValidation(e),ph(e,r,n)),a=(i=e,r=a,await mh()._set(vh(i),r),await hh(e,a,t));return(async(a,o,l)=>{let h=lh().cordova,u=()=>{};try{await new Promise((t,e)=>{let r=null;function n(){t();var e=h.plugins.browsertab?.close;"function"==typeof e&&e(),"function"==typeof l?.close&&l.close()}function i(){r=r||window.setTimeout(()=>{e(es(a,"redirect-cancelled-by-user"))},2e3)}function s(){"visible"===document?.visibilityState&&i()}o.addPassiveListener(n),document.addEventListener("resume",i,!1),Js()&&document.addEventListener("visibilitychange",s,!1),u=()=>{o.removePassiveListener(n),document.removeEventListener("resume",i,!1),document.removeEventListener("visibilitychange",s,!1),r&&window.clearTimeout(r)}})}finally{u()}})(e,s,await uh(a))}_isIframeWebStorageSupported(e,t){throw new Error("Method not implemented.")}_originValidation(e){var t=e._key();return this.originValidationPromises[t]||(this.originValidationPromises[t]=(async e=>{var t=lh().BuildInfo,r={};ea()?r.iosBundleId=t.packageName:Js()?r.androidPackageName=t.packageName:Zi(e,"operation-not-supported-in-this-environment"),await Ol(e,r)})(e)),this.originValidationPromises[t]}attachCallbackListeners(n,i){var{universalLinks:e,handleOpenURL:t,BuildInfo:r}=lh();let s=setTimeout(async()=>{await fh(n),i.onEvent(bh())},500),a=async e=>{clearTimeout(s);var t=await fh(n);let r=null;t&&e?.url&&(r=gh(t,e.url)),i.onEvent(r||bh())},o=(void 0!==e&&"function"==typeof e.subscribe&&e.subscribe(null,a),t),l=r.packageName.toLowerCase()+"://";lh().handleOpenURL=async e=>{if(e.toLowerCase().startsWith(l)&&a({url:e}),"function"==typeof o)try{o(e)}catch(e){console.error(e)}}}}let wh=yh;function bh(){return{type:"unknown",eventId:null,sessionId:null,urlResponse:null,postBody:null,tenantId:null,error:es("no-auth-event")}}function Ih(){return self?.location?.protocol||null}function Th(e=ae()){return!("file:"!==Ih()&&"ionic:"!==Ih()&&"capacitor:"!==Ih()||!e.toLowerCase().match(/iphone|ipad|ipod|android/))}function Eh(e=ae()){return de()&&11===document?.documentMode||([e=ae()]=[e],/Edge\/\d+/.test(e))}function Ch(){try{var e=self.localStorage,t=Vo();if(e)return e.setItem(t,"1"),e.removeItem(t),!Eh()||me()}catch(e){return Sh()&&me()}return!1}function Sh(){return"undefined"!=typeof global&&"WorkerGlobalScope"in global&&"importScripts"in global}function kh(){return("http:"===Ih()||"https:"===Ih()||ue()||Th())&&!(ce()||le())&&Ch()&&!Sh()}function Ah(){return Th()&&"undefined"!=typeof document}let Nh={LOCAL:"local",NONE:"none",SESSION:"session"},Rh=m,Ph="persistence";async function Dh(e){await e._initializationPromise;var t=xh(),r=Ks(Ph,e.config.apiKey,e.name);t&&t.setItem(r,e._getPersistenceType())}function xh(){try{return("undefined"!=typeof window?window:null)?.sessionStorage||null}catch(e){return null}}let Oh=m;class Mh{constructor(){this.browserResolver=Bs(nh),this.cordovaResolver=Bs(wh),this.underlyingResolver=null,this._redirectPersistence=Fo,this._completeRedirectFn=Nl,this._overrideRedirectResult=Tl}async _initialize(e){return await this.selectUnderlyingResolver(),this.assertedUnderlyingResolver._initialize(e)}async _openPopup(e,t,r,n){return await this.selectUnderlyingResolver(),this.assertedUnderlyingResolver._openPopup(e,t,r,n)}async _openRedirect(e,t,r,n){return await this.selectUnderlyingResolver(),this.assertedUnderlyingResolver._openRedirect(e,t,r,n)}_isIframeWebStorageSupported(e,t){this.assertedUnderlyingResolver._isIframeWebStorageSupported(e,t)}_originValidation(e){return this.assertedUnderlyingResolver._originValidation(e)}get _shouldInitProactively(){return Ah()||this.browserResolver._shouldInitProactively}get assertedUnderlyingResolver(){return Oh(this.underlyingResolver,"internal-error"),this.underlyingResolver}async selectUnderlyingResolver(){var e;this.underlyingResolver||(e=await(!!Ah()&&new Promise(e=>{let t=setTimeout(()=>{e(!1)},1e3);document.addEventListener("deviceready",()=>{clearTimeout(t),e(!0)})})),this.underlyingResolver=e?this.cordovaResolver:this.browserResolver)}}function Lh(e){return e.unwrap()}function Fh(e,t){var r,n,i,s=t.customData?._tokenResponse;"auth/multi-factor-auth-required"===t?.code?t.resolver=new Bh(e,(r=t,n=w(e),m((i=r).customData.operationType,n,"argument-error"),m(i.customData._serverResponse?.mfaPendingCredential,n,"argument-error"),Ao._fromError(n,i))):s&&(i=Uh(n=t))&&(n.credential=i,n.tenantId=s.tenantId||void 0,n.email=s.email||void 0,n.phoneNumber=s.phoneNumber||void 0)}function Uh(e){var t=(e instanceof ye?e.customData:e)._tokenResponse;if(!t)return null;if(!(e instanceof ye)&&"temporaryProof"in t&&"phoneNumber"in t)return ul.credentialFromResult(e);var r=t.providerId;if(!r||r===Wi.PASSWORD)return null;let n;switch(r){case Wi.GOOGLE:n=Ba;break;case Wi.FACEBOOK:n=qa;break;case Wi.GITHUB:n=ja;break;case Wi.TWITTER:n=Wa;break;default:var{oauthIdToken:i,oauthAccessToken:s,oauthTokenSecret:a,pendingToken:o,nonce:l}=t;return s||a||i||o?o?r.startsWith("saml.")?za._create(r,o):Pa._fromParams({providerId:r,signInMethod:r,pendingToken:o,idToken:i,accessToken:s}):new Va(r).credential({idToken:i,accessToken:s,rawNonce:l}):null}return e instanceof ye?n.credentialFromError(e):n.credentialFromResult(e)}function Vh(t,e){return e.catch(e=>{throw e instanceof ye&&Fh(t,e),e}).then(e=>{var t=e.operationType,r=e.user;return{operationType:t,credential:Uh(e),additionalUserInfo:So(e),user:jh.getOrCreate(r)}})}async function qh(t,e){let r=await e;return{verificationId:r.verificationId,confirm:e=>Vh(t,r.confirm(e))}}class Bh{constructor(e,t){this.resolver=t,this.auth=e.wrapped()}get session(){return this.resolver.session}get hints(){return this.resolver.hints}resolveSignIn(e){return Vh(Lh(this.auth),this.resolver.resolveSignIn(e))}}class jh{constructor(e){var t;this._delegate=e,this.multiFactor=(t=w(e),Po.has(t)||Po.set(t,Ro._fromUser(t)),Po.get(t))}static getOrCreate(e){return jh.USER_MAP.has(e)||jh.USER_MAP.set(e,new jh(e)),jh.USER_MAP.get(e)}delete(){return this._delegate.delete()}reload(){return this._delegate.reload()}toJSON(){return this._delegate.toJSON()}getIdTokenResult(e){return this._delegate.getIdTokenResult(e)}getIdToken(e){return this._delegate.getIdToken(e)}linkAndRetrieveDataWithCredential(e){return this.linkWithCredential(e)}async linkWithCredential(e){return Vh(this.auth,io(this._delegate,e))}async linkWithPhoneNumber(e,t){return qh(this.auth,(async(e,t,r)=>{let n=w(e);await eo(!1,n,"phone");var i=await ll(n.auth,t,w(r));return new ol(i,e=>io(n,e))})(this._delegate,e,t))}async linkWithPopup(e){return Vh(this.auth,(async(e,t,r)=>{var n=w(e),i=(ns(n.auth,t,Fa),cl(n.auth,r));return new _l(n.auth,"linkViaPopup",t,i,n).executeNotNull()})(this._delegate,e,Mh))}async linkWithRedirect(e){return await Dh(aa(this.auth)),Al(this._delegate,e,Mh)}reauthenticateAndRetrieveDataWithCredential(e){return this.reauthenticateWithCredential(e)}async reauthenticateWithCredential(e){return Vh(this.auth,so(this._delegate,e))}reauthenticateWithPhoneNumber(e,t){return qh(this.auth,(async(e,t,r)=>{let n=w(e);var i;return h(n.auth.app)?Promise.reject(rs(n.auth)):(i=await ll(n.auth,t,w(r)),new ol(i,e=>so(n,e)))})(this._delegate,e,t))}reauthenticateWithPopup(e){return Vh(this.auth,(async(e,t,r)=>{var n=w(e);if(h(n.auth.app))return Promise.reject(es(n.auth,"operation-not-supported-in-this-environment"));ns(n.auth,t,Fa);var i=cl(n.auth,r);return new _l(n.auth,"reauthViaPopup",t,i,n).executeNotNull()})(this._delegate,e,Mh))}async reauthenticateWithRedirect(e){return await Dh(aa(this.auth)),kl(this._delegate,e,Mh)}sendEmailVerification(e){return mo(this._delegate,e)}async unlink(e){return await Xa(this._delegate,e),this}updateEmail(e){return t=this._delegate,e=e,h((r=w(t)).auth.app)?Promise.reject(rs(r.auth)):yo(r,e,null);var t,r}updatePassword(e){return yo(w(this._delegate),null,e)}updatePhoneNumber(e){return(async(e,t)=>{var r=w(e);if(h(r.auth.app))return Promise.reject(rs(r.auth));await Za(r,t)})(this._delegate,e)}updateProfile(e){return _o(this._delegate,e)}verifyBeforeUpdateEmail(e,t){return vo(this._delegate,e,t)}get emailVerified(){return this._delegate.emailVerified}get isAnonymous(){return this._delegate.isAnonymous}get metadata(){return this._delegate.metadata}get phoneNumber(){return this._delegate.phoneNumber}get providerData(){return this._delegate.providerData}get refreshToken(){return this._delegate.refreshToken}get tenantId(){return this._delegate.tenantId}get displayName(){return this._delegate.displayName}get email(){return this._delegate.email}get photoURL(){return this._delegate.photoURL}get providerId(){return this._delegate.providerId}get uid(){return this._delegate.uid}get auth(){return this._delegate.auth}}jh.USER_MAP=new WeakMap;let zh=m;class Kh{constructor(e,t){var r,n;this.app=e,t.isInitialized()?this._delegate=t.getImmediate():(r=e.options.apiKey,zh(r,"invalid-api-key",{appName:e.name}),zh(r,"invalid-api-key",{appName:e.name}),n="undefined"!=typeof window?Mh:void 0,this._delegate=t.initialize({options:{persistence:((e,t)=>{var r=((e,t)=>{var r=xh();if(!r)return[];var n=Ks(Ph,e,t);switch(r.getItem(n)){case Nh.NONE:return[zs];case Nh.LOCAL:return[Xo,Fo];case Nh.SESSION:return[Fo];default:return[]}})(e,t);if("undefined"==typeof self||r.includes(Xo)||r.push(Xo),"undefined"!=typeof window)for(var n of[Mo,Fo])r.includes(n)||r.push(n);return r.includes(zs)||r.push(zs),r})(r,e.name),popupRedirectResolver:n}}),this._delegate._updateErrorMap($i)),this.linkUnderlyingAuth()}get emulatorConfig(){return this._delegate.emulatorConfig}get currentUser(){return this._delegate.currentUser?jh.getOrCreate(this._delegate.currentUser):null}get languageCode(){return this._delegate.languageCode}set languageCode(e){this._delegate.languageCode=e}get settings(){return this._delegate.settings}get tenantId(){return this._delegate.tenantId}set tenantId(e){this._delegate.tenantId=e}useDeviceLanguage(){this._delegate.useDeviceLanguage()}signOut(){return this._delegate.signOut()}useEmulator(e,t){ya(this._delegate,e,t)}applyActionCode(e){return po(this._delegate,e)}checkActionCode(e){return fo(this._delegate,e)}confirmPasswordReset(e,t){return(async(t,e,r)=>{await Ta(w(t),{oobCode:e,newPassword:r}).catch(async e=>{throw"auth/password-does-not-meet-requirements"===e.code&&co(t),e})})(this._delegate,e,t)}async createUserWithEmailAndPassword(e,t){return Vh(this._delegate,(async(t,e,r)=>{var n,i;return h(t.app)?Promise.reject(rs(t)):(i=await _a(n=aa(t),{returnSecureToken:!0,email:e,password:r,clientType:"CLIENT_TYPE_WEB"},"signUpPassword",Ha,"EMAIL_PASSWORD_PROVIDER").catch(e=>{throw"auth/password-does-not-meet-requirements"===e.code&&co(t),e}),i=await Ga._fromIdTokenResponse(n,"signIn",i),await n._updateCurrentUser(i.user),i)})(this._delegate,e,t))}fetchProvidersForEmail(e){return this.fetchSignInMethodsForEmail(e)}fetchSignInMethodsForEmail(e){return go(this._delegate,e)}isSignInWithEmailLink(e){return this._delegate,e=e,"EMAIL_SIGNIN"===Ma.parseLink(e)?.operation}async getRedirectResult(){zh(kh(),this._delegate,"operation-not-supported-in-this-environment");e=this._delegate,t=Mh,await aa(e)._initializationPromise;var e,t,r=await Nl(e,t,!1);return r?Vh(this._delegate,Promise.resolve(r)):{credential:null,user:null}}addFrameworkForLogging(e){aa(this._delegate)._logFramework(e)}onAuthStateChanged(e,t,r){var{next:n,error:i,complete:s}=Wh(e,t,r);return this._delegate.onAuthStateChanged(n,i,s)}onIdTokenChanged(e,t,r){var{next:n,error:i,complete:s}=Wh(e,t,r);return this._delegate.onIdTokenChanged(n,i,s)}sendSignInLinkToEmail(e,t){return(async(e,t,r)=>{let n=aa(e);var i={requestType:"EMAIL_SIGNIN",email:t,clientType:"CLIENT_TYPE_WEB"};e=i,m((t=r).handleCodeInApp,n,"argument-error"),t&&uo(n,e,t),await _a(n,i,"getOobCode",Aa,"EMAIL_PASSWORD_PROVIDER")})(this._delegate,e,t)}sendPasswordResetEmail(e,t){return(async(e,t,r)=>{var n=aa(e),i={requestType:"PASSWORD_RESET",email:t,clientType:"CLIENT_TYPE_WEB"};r&&uo(n,i,r),await _a(n,i,"getOobCode",ka,"EMAIL_PASSWORD_PROVIDER")})(this._delegate,e,t||void 0)}async setPersistence(e){var t,r;t=this._delegate,r=e,Rh(Object.values(Nh).includes(r),t,"invalid-persistence-type"),ce()?Rh(r!==Nh.SESSION,t,"unsupported-persistence-type"):le()?Rh(r===Nh.NONE,t,"unsupported-persistence-type"):Sh()?Rh(r===Nh.NONE||r===Nh.LOCAL&&me(),t,"unsupported-persistence-type"):Rh(r===Nh.NONE||Ch(),t,"unsupported-persistence-type");let n;switch(e){case Nh.SESSION:n=Fo;break;case Nh.LOCAL:var i=await Bs(Xo)._isAvailable();n=i?Xo:Mo;break;case Nh.NONE:n=zs;break;default:return Zi("argument-error",{appName:this._delegate.name})}return this._delegate.setPersistence(n)}signInAndRetrieveDataWithCredential(e){return this.signInWithCredential(e)}signInAnonymously(){return Vh(this._delegate,(async e=>{var t,r;return h(e.app)?Promise.reject(rs(e)):(await(t=aa(e))._initializationPromise,t.currentUser?.isAnonymous?new Ga({user:t.currentUser,providerId:null,operationType:"signIn"}):(r=await Ha(t,{returnSecureToken:!0}),r=await Ga._fromIdTokenResponse(t,"signIn",r,!0),await t._updateCurrentUser(r.user),r))})(this._delegate))}signInWithCredential(e){return Vh(this._delegate,no(this._delegate,e))}signInWithCustomToken(e){return Vh(this._delegate,ao(this._delegate,e))}signInWithEmailAndPassword(e,t){return Vh(this._delegate,(r=this._delegate,e=e,t=t,h(r.app)?Promise.reject(rs(r)):no(w(r),La.credential(e,t)).catch(async e=>{throw"auth/password-does-not-meet-requirements"===e.code&&co(r),e})));var r}signInWithEmailLink(e,t){return Vh(this._delegate,(async(e,t,r)=>{var n,i;return h(e.app)?Promise.reject(rs(e)):(n=w(e),m((i=La.credentialWithLink(t,r||os()))._tenantId===(n.tenantId||null),n,"tenant-id-mismatch"),no(n,i))})(this._delegate,e,t))}signInWithPhoneNumber(e,t){return qh(this._delegate,(async(e,t,r)=>{if(h(e.app))return Promise.reject(rs(e));let n=aa(e);var i=await ll(n,t,w(r));return new ol(i,e=>no(n,e))})(this._delegate,e,t))}async signInWithPopup(e){return zh(kh(),this._delegate,"operation-not-supported-in-this-environment"),Vh(this._delegate,(async(e,t,r)=>{var n,i;return h(e.app)?Promise.reject(es(e,"operation-not-supported-in-this-environment")):(n=aa(e),ns(e,t,Fa),i=cl(n,r),new _l(n,"signInViaPopup",t,i).executeNotNull())})(this._delegate,e,Mh))}async signInWithRedirect(e){return zh(kh(),this._delegate,"operation-not-supported-in-this-environment"),await Dh(this._delegate),Sl(this._delegate,e,Mh)}updateCurrentUser(e){return this._delegate.updateCurrentUser(e)}verifyPasswordResetCode(e){return(async(e,t)=>{var r=(await fo(w(e),t)).data;return r.email})(this._delegate,e)}unwrap(){return this._delegate}_delete(){return this._delegate._delete()}linkUnderlyingAuth(){this._delegate.wrapped=()=>this}}function Wh(e,t,r){let n=e,i=("function"!=typeof e&&({next:n,error:t,complete:r}=e),n);return{next:e=>i(e&&jh.getOrCreate(e)),error:t,complete:r}}Kh.Persistence=Nh;class Hh{static credential(e,t){return ul.credential(e,t)}constructor(){this.providerId="phone",this._delegate=new ul(Lh(ur.auth()))}verifyPhoneNumber(e,t){return this._delegate.verifyPhoneNumber(e,t)}unwrap(){return this._delegate}}Hh.PHONE_SIGN_IN_METHOD=ul.PHONE_SIGN_IN_METHOD,Hh.PROVIDER_ID=ul.PROVIDER_ID;let Gh=m;class $h{constructor(e,t,r=ur.app()){Gh(r.options?.apiKey,"invalid-api-key",{appName:r.name}),this._delegate=new al(r.auth(),e,t),this.type=this._delegate.type}clear(){this._delegate.clear()}render(){return this._delegate.render()}verify(){return this._delegate.verify()}}(t=ur).INTERNAL.registerComponent(new u("auth-compat",e=>{var t=e.getProvider("app-compat").getImmediate(),r=e.getProvider("auth");return new Kh(t,r)},"PUBLIC").setServiceProps({ActionCodeInfo:{Operation:{EMAIL_SIGNIN:Hi.EMAIL_SIGNIN,PASSWORD_RESET:Hi.PASSWORD_RESET,RECOVER_EMAIL:Hi.RECOVER_EMAIL,REVERT_SECOND_FACTOR_ADDITION:Hi.REVERT_SECOND_FACTOR_ADDITION,VERIFY_AND_CHANGE_EMAIL:Hi.VERIFY_AND_CHANGE_EMAIL,VERIFY_EMAIL:Hi.VERIFY_EMAIL}},EmailAuthProvider:La,FacebookAuthProvider:qa,GithubAuthProvider:ja,GoogleAuthProvider:Ba,OAuthProvider:Va,SAMLAuthProvider:Ka,PhoneAuthProvider:Hh,PhoneMultiFactorGenerator:sh,RecaptchaVerifier:$h,TwitterAuthProvider:Wa,Auth:Kh,AuthCredential:Ia,Error:ye}).setInstantiationMode("LAZY").setMultipleInstances(!1)),t.registerVersion("@firebase/auth-compat","0.6.0");let Qh="@firebase/database",Yh="";function Jh(e){Yh=e}class Xh{constructor(e){this.domStorage_=e,this.prefix_="firebase:"}set(e,t){null==t?this.domStorage_.removeItem(this.prefixedName_(e)):this.domStorage_.setItem(this.prefixedName_(e),Te(t))}get(e){var t=this.domStorage_.getItem(this.prefixedName_(e));return null==t?null:Ie(t)}remove(e){this.domStorage_.removeItem(this.prefixedName_(e))}prefixedName_(e){return this.prefix_+e}toString(){return this.domStorage_.toString()}}class Zh{constructor(){this.cache_={},this.isInMemoryStorage=!0}set(e,t){null==t?delete this.cache_[e]:this.cache_[e]=t}get(e){return Ce(this.cache_,e)?this.cache_[e]:null}remove(e){delete this.cache_[e]}}function eu(e){try{var t;if("undefined"!=typeof window&&void 0!==window[e])return(t=window[e]).setItem("firebase:sentinel","cache"),t.removeItem("firebase:sentinel"),new Xh(t)}catch(e){}return new Zh}var tu;function ru(e){var t=(t=>{var r,n,i=[];let s=0;for(let a=0;a<t.length;a++){let e=t.charCodeAt(a);55296<=e&&e<=56319&&(r=e-55296,a++,g(a<t.length,"Surrogate pair missing trail surrogate."),n=t.charCodeAt(a)-56320,e=65536+(r<<10)+n),e<128?i[s++]=e:(e<2048?i[s++]=e>>6|192:(e<65536?i[s++]=e>>12|224:(i[s++]=e>>18|240,i[s++]=e>>12&63|128),i[s++]=e>>6&63|128),i[s++]=63&e|128)}return i})(e),r=new Oe,t=(r.update(t),r.digest());return a.encodeByteArray(t)}function nu(t){return function(...e){vu(t,...e)}}function iu(...e){var t="FIREBASE INTERNAL ERROR: "+pu(...e);cu.error(t)}function su(e,t){return e===t?0:e<t?-1:1}function au(e,t){if(t&&e in t)return t[e];throw new Error("Missing required key ("+e+") in object: "+Te(t))}function ou(e){if("object"!=typeof e||null===e)return Te(e);var t,r=[];for(t in e)r.push(t);r.sort();let n="{";for(let i=0;i<r.length;i++)0!==i&&(n+=","),n=(n=n+Te(r[i])+":")+ou(e[r[i]]);return n+="}"}function lu(e,t){var r=e.length;if(r<=t)return[e];var n=[];for(let i=0;i<r;i+=t)i+t>r?n.push(e.substring(i,r)):n.push(e.substring(i,i+t));return n}let hu=eu("localStorage"),uu=eu("sessionStorage"),cu=new tt("@firebase/database"),du=(()=>{let e=1;return function(){return e++}})(),pu=function(...e){let t="";for(let n=0;n<e.length;n++){var r=e[n];Array.isArray(r)||r&&"object"==typeof r&&"number"==typeof r.length?t+=pu.apply(null,r):t+="object"==typeof r?Te(r):r,t+=" "}return t},fu=null,gu=!0,mu=function(e,t){g(!t||!0===e||!1===e,"Can't turn on custom loggers persistently."),!0===e?(cu.logLevel=c.VERBOSE,fu=cu.log.bind(cu),t&&uu.set("logging_enabled",!0)):"function"==typeof e?fu=e:(fu=null,uu.remove("logging_enabled"))},vu=function(...e){var t;!0===gu&&(gu=!1,null===fu)&&!0===uu.get("logging_enabled")&&mu(!0),fu&&(t=pu.apply(null,e),fu(t))},_u=function(...e){var t="FIREBASE FATAL ERROR: "+pu(...e);throw cu.error(t),new Error(t)},yu=function(...e){var t="FIREBASE WARNING: "+pu(...e);cu.warn(t)},wu=function(){"undefined"!=typeof window&&window.location&&window.location.protocol&&-1!==window.location.protocol.indexOf("https:")&&yu("Insecure Firebase access from a secure page. Please use https in calls to new Firebase().")},bu=function(e){return"number"==typeof e&&(e!=e||e===Number.POSITIVE_INFINITY||e===Number.NEGATIVE_INFINITY)},Iu="[MIN_NAME]",Tu="[MAX_NAME]",Eu=function(e,t){var r,n;return e===t?0:e===Iu||t===Tu?-1:t===Iu||e===Tu?1:(r=ku(e),n=ku(t),null!==r?null!==n?r-n==0?e.length-t.length:r-n:-1:null===n&&e<t?-1:1)};function Cu(e,t){for(var r in e)e.hasOwnProperty(r)&&t(r,e[r])}function Su(e){g(!bu(e),"Invalid JSON number");let t,r,n,i,s;0===e?(r=0,n=0,t=1/e==-1/0?1:0):(t=e<0,e=Math.abs(e),n=e>=Math.pow(2,-1022)?(i=Math.min(Math.floor(Math.log(e)/Math.LN2),1023),r=i+1023,Math.round(e*Math.pow(2,52-i)-Math.pow(2,52))):(r=0,Math.round(e/Math.pow(2,-1074))));var a=[];for(s=52;s;--s)a.push(n%2?1:0),n=Math.floor(n/2);for(s=11;s;--s)a.push(r%2?1:0),r=Math.floor(r/2);a.push(t?1:0),a.reverse();var o=a.join("");let l="";for(s=0;s<64;s+=8){let e=parseInt(o.substr(s,8),2).toString(16);1===e.length&&(e="0"+e),l+=e}return l.toLowerCase()}function ku(e){if(Nu.test(e)){var t=Number(e);if(t>=Ru&&t<=Pu)return t}return null}function Au(e,t){var r=setTimeout(e,t);return"number"==typeof r&&"undefined"!=typeof Deno&&Deno.unrefTimer?Deno.unrefTimer(r):"object"==typeof r&&r.unref&&r.unref(),r}let Nu=new RegExp("^-?(0*)\\d{1,10}$"),Ru=-2147483648,Pu=2147483647,Du=function(e){try{e()}catch(t){setTimeout(()=>{var e=t.stack||"";throw yu("Exception was thrown by user callback.",e),t},Math.floor(0))}};class xu{constructor(e,t){this.appCheckProvider=t,this.appName=e.name,h(e)&&e.settings.appCheckToken&&(this.serverAppAppCheckToken=e.settings.appCheckToken),this.appCheck=t?.getImmediate({optional:!0}),this.appCheck||t?.get().then(e=>this.appCheck=e)}getToken(r){if(this.serverAppAppCheckToken){if(r)throw new Error("Attempted reuse of `FirebaseServerApp.appCheckToken` after previous usage failed.");return Promise.resolve({token:this.serverAppAppCheckToken})}return this.appCheck?this.appCheck.getToken(r):new Promise((e,t)=>{setTimeout(()=>{this.appCheck?this.getToken(r).then(e,t):e(null)},0)})}addTokenChangeListener(t){this.appCheckProvider?.get().then(e=>e.addTokenListener(t))}notifyForInvalidToken(){yu(`Provided AppCheck credentials for the app named "${this.appName}" `+"are invalid. This usually indicates your app was not initialized correctly.")}}class Ou{constructor(e,t,r){this.appName_=e,this.firebaseOptions_=t,this.authProvider_=r,this.auth_=null,this.auth_=r.getImmediate({optional:!0}),this.auth_||r.onInit(e=>this.auth_=e)}getToken(r){return this.auth_?this.auth_.getToken(r).catch(e=>e&&"auth/token-not-initialized"===e.code?(vu("Got auth/token-not-initialized error. Treating as null token."),null):Promise.reject(e)):new Promise((e,t)=>{setTimeout(()=>{this.auth_?this.getToken(r).then(e,t):e(null)},0)})}addTokenChangeListener(t){this.auth_?this.auth_.addAuthTokenListener(t):this.authProvider_.get().then(e=>e.addAuthTokenListener(t))}removeTokenChangeListener(t){this.authProvider_.get().then(e=>e.removeAuthTokenListener(t))}notifyForInvalidToken(){let e='Provided authentication credentials for the app named "'+this.appName_+'" are invalid. This usually indicates your app was not initialized correctly. ';"credential"in this.firebaseOptions_?e+='Make sure the "credential" property provided to initializeApp() is authorized to access the specified "databaseURL" and is from the correct project.':"serviceAccount"in this.firebaseOptions_?e+='Make sure the "serviceAccount" property provided to initializeApp() is authorized to access the specified "databaseURL" and is from the correct project.':e+='Make sure the "apiKey" and "databaseURL" properties provided to initializeApp() match the values provided for your app at https://console.firebase.google.com/.',yu(e)}}class Mu{constructor(e){this.accessToken=e}getToken(e){return Promise.resolve({accessToken:this.accessToken})}addTokenChangeListener(e){e(this.accessToken)}removeTokenChangeListener(e){}notifyForInvalidToken(){}}Mu.OWNER="owner";let Lu=/(console\.firebase|firebase-console-\w+\.corp|firebase\.corp)\.google\.com/,Fu="websocket",Uu="long_polling";class Vu{constructor(e,t,r,n,i=!1,s="",a=!1,o=!1,l=null){this.secure=t,this.namespace=r,this.webSocketOnly=n,this.nodeAdmin=i,this.persistenceKey=s,this.includeNamespaceInQueryParams=a,this.isUsingEmulator=o,this.emulatorOptions=l,this._host=e.toLowerCase(),this._domain=this._host.substr(this._host.indexOf(".")+1),this.internalHost=hu.get("host:"+e)||this._host}isCacheableHost(){return"s-"===this.internalHost.substr(0,2)}isCustomHost(){return"firebaseio.com"!==this._domain&&"firebaseio-demo.com"!==this._domain}get host(){return this._host}set host(e){e!==this.internalHost&&(this.internalHost=e,this.isCacheableHost())&&hu.set("host:"+this._host,this.internalHost)}toString(){let e=this.toURLString();return this.persistenceKey&&(e+="<"+this.persistenceKey+">"),e}toURLString(){var e=this.secure?"https://":"http://",t=this.includeNamespaceInQueryParams?"?ns="+this.namespace:"";return e+this.host+"/"+t}}function qu(e,t,r){g("string"==typeof t,"typeof type must == string"),g("object"==typeof r,"typeof params must == object");let n;if(t===Fu)n=(e.secure?"wss://":"ws://")+e.internalHost+"/.ws?";else{if(t!==Uu)throw new Error("Unknown connection type: "+t);n=(e.secure?"https://":"http://")+e.internalHost+"/.lp?"}((t=e).host!==t.internalHost||t.isCustomHost()||t.includeNamespaceInQueryParams)&&(r.ns=e.namespace);let i=[];return Cu(r,(e,t)=>{i.push(e+"="+t)}),n+i.join("&")}class Bu{constructor(){this.counters_={}}incrementCounter(e,t=1){Ce(this.counters_,e)||(this.counters_[e]=0),this.counters_[e]+=t}get(){return W(void 0,this.counters_)}}let ju={},zu={};function Ku(e){var t=e.toString();return ju[t]||(ju[t]=new Bu),ju[t]}class Wu{constructor(e){this.onMessage_=e,this.pendingResponses=[],this.currentResponseNum=0,this.closeAfterResponse=-1,this.onClose=null}closeAfter(e,t){this.closeAfterResponse=e,this.onClose=t,this.closeAfterResponse<this.currentResponseNum&&(this.onClose(),this.onClose=null)}handleResponse(e,t){for(this.pendingResponses[e]=t;this.pendingResponses[this.currentResponseNum];){let e=this.pendingResponses[this.currentResponseNum];delete this.pendingResponses[this.currentResponseNum];for(let t=0;t<e.length;++t)e[t]&&Du(()=>{this.onMessage_(e[t])});if(this.currentResponseNum===this.closeAfterResponse){this.onClose&&(this.onClose(),this.onClose=null);break}this.currentResponseNum++}}}class Hu{constructor(e,t,r,n,i,s,a){this.connId=e,this.repoInfo=t,this.applicationId=r,this.appCheckToken=n,this.authToken=i,this.transportSessionId=s,this.lastSessionId=a,this.bytesSent=0,this.bytesReceived=0,this.everConnected_=!1,this.log_=nu(e),this.stats_=Ku(t),this.urlFn=e=>(this.appCheckToken&&(e.ac=this.appCheckToken),qu(t,Uu,e))}open(e,t){this.curSegmentNum=0,this.onDisconnect_=t,this.myPacketOrderer=new Wu(e),this.isClosed_=!1,this.connectTimeoutTimer_=setTimeout(()=>{this.log_("Timed out trying to connect."),this.onClosed_(),this.connectTimeoutTimer_=null},Math.floor(3e4));var r=()=>{var e;this.isClosed_||(this.scriptTagHolder=new Gu((...e)=>{var[t,r,n,,,]=e;if(this.incrementIncomingBytes_(e),this.scriptTagHolder)if(this.connectTimeoutTimer_&&(clearTimeout(this.connectTimeoutTimer_),this.connectTimeoutTimer_=null),this.everConnected_=!0,"start"===t)this.id=r,this.password=n;else{if("close"!==t)throw new Error("Unrecognized command received: "+t);r?(this.scriptTagHolder.sendNewPolls=!1,this.myPacketOrderer.closeAfter(r,()=>{this.onClosed_()})):this.onClosed_()}},(...e)=>{var[t,r]=e;this.incrementIncomingBytes_(e),this.myPacketOrderer.handleResponse(t,r)},()=>{this.onClosed_()},this.urlFn),(e={start:"t"}).ser=Math.floor(1e8*Math.random()),this.scriptTagHolder.uniqueCallbackIdentifier&&(e.cb=this.scriptTagHolder.uniqueCallbackIdentifier),e.v="5",this.transportSessionId&&(e.s=this.transportSessionId),this.lastSessionId&&(e.ls=this.lastSessionId),this.applicationId&&(e.p=this.applicationId),this.appCheckToken&&(e.ac=this.appCheckToken),"undefined"!=typeof location&&location.hostname&&Lu.test(location.hostname)&&(e.r="f"),e=this.urlFn(e),this.log_("Connecting via long-poll to "+e),this.scriptTagHolder.addTag(e,()=>{}))};if("complete"===document.readyState)r();else{let e=!1,t=function(){document.body?e||(e=!0,r()):setTimeout(t,Math.floor(10))};document.addEventListener?(document.addEventListener("DOMContentLoaded",t,!1),window.addEventListener("load",t,!1)):document.attachEvent&&(document.attachEvent("onreadystatechange",()=>{"complete"===document.readyState&&t()}),window.attachEvent("onload",t))}}start(){this.scriptTagHolder.startLongPoll(this.id,this.password),this.addDisconnectPingFrame(this.id,this.password)}static forceAllow(){Hu.forceAllow_=!0}static forceDisallow(){Hu.forceDisallow_=!0}static isAvailable(){return!!Hu.forceAllow_||!(Hu.forceDisallow_||"undefined"==typeof document||null==document.createElement||"object"==typeof window&&window.chrome&&window.chrome.extension&&!/^chrome/.test(window.location.href)||"object"==typeof Windows&&"object"==typeof Windows.UI)}markConnectionHealthy(){}shutdown_(){this.isClosed_=!0,this.scriptTagHolder&&(this.scriptTagHolder.close(),this.scriptTagHolder=null),this.myDisconnFrame&&(document.body.removeChild(this.myDisconnFrame),this.myDisconnFrame=null),this.connectTimeoutTimer_&&(clearTimeout(this.connectTimeoutTimer_),this.connectTimeoutTimer_=null)}onClosed_(){this.isClosed_||(this.log_("Longpoll is closing itself"),this.shutdown_(),this.onDisconnect_&&(this.onDisconnect_(this.everConnected_),this.onDisconnect_=null))}close(){this.isClosed_||(this.log_("Longpoll is being closed."),this.shutdown_())}send(e){var t=Te(e),t=(this.bytesSent+=t.length,this.stats_.incrementCounter("bytes_sent",t.length),o(t)),r=lu(t,1840);for(let n=0;n<r.length;n++)this.scriptTagHolder.enqueueSegment(this.curSegmentNum,r.length,r[n]),this.curSegmentNum++}addDisconnectPingFrame(e,t){this.myDisconnFrame=document.createElement("iframe");var r={dframe:"t"};r.id=e,r.pw=t,this.myDisconnFrame.src=this.urlFn(r),this.myDisconnFrame.style.display="none",document.body.appendChild(this.myDisconnFrame)}incrementIncomingBytes_(e){var t=Te(e).length;this.bytesReceived+=t,this.stats_.incrementCounter("bytes_received",t)}}class Gu{constructor(t,r,e,n){this.onDisconnect=e,this.urlFn=n,this.outstandingRequests=new Set,this.pendingSegs=[],this.currentSerial=Math.floor(1e8*Math.random()),this.sendNewPolls=!0;{this.uniqueCallbackIdentifier=du(),window["pLPCommand"+this.uniqueCallbackIdentifier]=t,window["pRTLPCB"+this.uniqueCallbackIdentifier]=r,this.myIFrame=Gu.createIFrame_();let e="";this.myIFrame.src&&"javascript:"===this.myIFrame.src.substr(0,"javascript:".length)&&(i=document.domain,e='<script>document.domain="'+i+'";<\/script>');var i="<html><body>"+e+"</body></html>";try{this.myIFrame.doc.open(),this.myIFrame.doc.write(i),this.myIFrame.doc.close()}catch(e){vu("frame writing exception"),e.stack&&vu(e.stack),vu(e)}}}static createIFrame_(){var t=document.createElement("iframe");if(t.style.display="none",!document.body)throw"Document body has not initialized. Wait to initialize Firebase until after the document is ready.";document.body.appendChild(t);try{t.contentWindow.document||vu("No IE domain setting required")}catch(e){var r=document.domain;t.src="javascript:void((function(){document.open();document.domain='"+r+"';document.close();})())"}return t.contentDocument?t.doc=t.contentDocument:t.contentWindow?t.doc=t.contentWindow.document:t.document&&(t.doc=t.document),t}close(){this.alive=!1,this.myIFrame&&(this.myIFrame.doc.body.textContent="",setTimeout(()=>{null!==this.myIFrame&&(document.body.removeChild(this.myIFrame),this.myIFrame=null)},Math.floor(0)));var e=this.onDisconnect;e&&(this.onDisconnect=null,e())}startLongPoll(e,t){for(this.myID=e,this.myPW=t,this.alive=!0;this.newRequest_(););}newRequest_(){if(this.alive&&this.sendNewPolls&&this.outstandingRequests.size<(0<this.pendingSegs.length?2:1)){this.currentSerial++;var r={},r=(r.id=this.myID,r.pw=this.myPW,r.ser=this.currentSerial,this.urlFn(r));let e="",t=0;for(;0<this.pendingSegs.length;){if(!(this.pendingSegs[0].d.length+30+e.length<=1870))break;var n=this.pendingSegs.shift();e=e+"&seg"+t+"="+n.seg+"&ts"+t+"="+n.ts+"&d"+t+"="+n.d,t++}return r+=e,this.addLongPollTag_(r,this.currentSerial),!0}return!1}enqueueSegment(e,t,r){this.pendingSegs.push({seg:e,ts:t,d:r}),this.alive&&this.newRequest_()}addLongPollTag_(e,t){this.outstandingRequests.add(t);let r=()=>{this.outstandingRequests.delete(t),this.newRequest_()},n=setTimeout(r,Math.floor(25e3));this.addTag(e,()=>{clearTimeout(n),r()})}addTag(e,r){setTimeout(()=>{try{if(this.sendNewPolls){let t=this.myIFrame.doc.createElement("script");t.type="text/javascript",t.async=!0,t.src=e,t.onload=t.onreadystatechange=function(){var e=t.readyState;e&&"loaded"!==e&&"complete"!==e||(t.onload=t.onreadystatechange=null,t.parentNode&&t.parentNode.removeChild(t),r())},t.onerror=()=>{vu("Long-poll script failed to load: "+e),this.sendNewPolls=!1,this.close()},this.myIFrame.doc.body.appendChild(t)}}catch(e){}},Math.floor(1))}}let $u=null;"undefined"!=typeof MozWebSocket?$u=MozWebSocket:"undefined"!=typeof WebSocket&&($u=WebSocket);class Qu{constructor(e,t,r,n,i,s,a){this.connId=e,this.applicationId=r,this.appCheckToken=n,this.authToken=i,this.keepaliveTimer=null,this.frames=null,this.totalFrames=0,this.bytesSent=0,this.bytesReceived=0,this.log_=nu(this.connId),this.stats_=Ku(t),this.connURL=Qu.connectionURL_(t,s,a,n,r),this.nodeAdmin=t.nodeAdmin}static connectionURL_(e,t,r,n,i){var s={v:"5"};return"undefined"!=typeof location&&location.hostname&&Lu.test(location.hostname)&&(s.r="f"),t&&(s.s=t),r&&(s.ls=r),n&&(s.ac=n),i&&(s.p=i),qu(e,Fu,s)}open(e,t){this.onDisconnect=t,this.onMessage=e,this.log_("Websocket connecting to "+this.connURL),this.everConnected_=!1,hu.set("previous_websocket_failure",!0);try{pe(),this.mySock=new $u(this.connURL,[],void 0)}catch(e){this.log_("Error instantiating WebSocket.");var r=e.message||e.data;return r&&this.log_(r),void this.onClosed_()}this.mySock.onopen=()=>{this.log_("Websocket connected."),this.everConnected_=!0},this.mySock.onclose=()=>{this.log_("Websocket connection was disconnected."),this.mySock=null,this.onClosed_()},this.mySock.onmessage=e=>{this.handleIncomingFrame(e)},this.mySock.onerror=e=>{this.log_("WebSocket error. Closing connection.");var t=e.message||e.data;t&&this.log_(t),this.onClosed_()}}start(){}static forceDisallow(){Qu.forceDisallow_=!0}static isAvailable(){let e=!1;var t;return!(e="undefined"!=typeof navigator&&navigator.userAgent&&(t=navigator.userAgent.match(/Android ([0-9]{0,}\.[0-9]{0,})/))&&1<t.length&&parseFloat(t[1])<4.4?!0:e)&&null!==$u&&!Qu.forceDisallow_}static previouslyFailed(){return hu.isInMemoryStorage||!0===hu.get("previous_websocket_failure")}markConnectionHealthy(){hu.remove("previous_websocket_failure")}appendFrame_(e){var t;this.frames.push(e),this.frames.length===this.totalFrames&&(t=this.frames.join(""),this.frames=null,t=Ie(t),this.onMessage(t))}handleNewFrameCount_(e){this.totalFrames=e,this.frames=[]}extractFrameCount_(e){if(g(null===this.frames,"We already have a frame buffer"),e.length<=6){var t=Number(e);if(!isNaN(t))return this.handleNewFrameCount_(t),null}return this.handleNewFrameCount_(1),e}handleIncomingFrame(e){var t;null!==this.mySock&&(t=e.data,this.bytesReceived+=t.length,this.stats_.incrementCounter("bytes_received",t.length),this.resetKeepAlive(),null!==this.frames?this.appendFrame_(t):null!==(t=this.extractFrameCount_(t))&&this.appendFrame_(t))}send(e){this.resetKeepAlive();var t=Te(e),r=(this.bytesSent+=t.length,this.stats_.incrementCounter("bytes_sent",t.length),lu(t,16384));1<r.length&&this.sendString_(String(r.length));for(let n=0;n<r.length;n++)this.sendString_(r[n])}shutdown_(){this.isClosed_=!0,this.keepaliveTimer&&(clearInterval(this.keepaliveTimer),this.keepaliveTimer=null),this.mySock&&(this.mySock.close(),this.mySock=null)}onClosed_(){this.isClosed_||(this.log_("WebSocket is closing itself"),this.shutdown_(),this.onDisconnect&&(this.onDisconnect(this.everConnected_),this.onDisconnect=null))}close(){this.isClosed_||(this.log_("WebSocket is being closed"),this.shutdown_())}resetKeepAlive(){clearInterval(this.keepaliveTimer),this.keepaliveTimer=setInterval(()=>{this.mySock&&this.sendString_("0"),this.resetKeepAlive()},Math.floor(45e3))}sendString_(e){try{this.mySock.send(e)}catch(e){this.log_("Exception thrown from WebSocket.send():",e.message||e.data,"Closing connection."),setTimeout(this.onClosed_.bind(this),0)}}}Qu.responsesRequiredToBeHealthy=2,Qu.healthyTimeout=3e4;class Yu{static get ALL_TRANSPORTS(){return[Hu,Qu]}static get IS_TRANSPORT_INITIALIZED(){return this.globalTransportInitialized_}constructor(e){this.initTransports_(e)}initTransports_(e){var t=Qu&&Qu.isAvailable();let r=t&&!Qu.previouslyFailed();if(e.webSocketOnly&&(t||yu("wss:// URL used, but browser isn't known to support websockets. Trying anyway."),r=!0),r)this.transports_=[Qu];else{var n,i=this.transports_=[];for(n of Yu.ALL_TRANSPORTS)n&&n.isAvailable()&&i.push(n);Yu.globalTransportInitialized_=!0}}initialTransport(){if(0<this.transports_.length)return this.transports_[0];throw new Error("No transports available")}upgradeTransport(){return 1<this.transports_.length?this.transports_[1]:null}}Yu.globalTransportInitialized_=!1;class Ju{constructor(e,t,r,n,i,s,a,o,l,h){this.id=e,this.repoInfo_=t,this.applicationId_=r,this.appCheckToken_=n,this.authToken_=i,this.onMessage_=s,this.onReady_=a,this.onDisconnect_=o,this.onKill_=l,this.lastSessionId=h,this.connectionCount=0,this.pendingDataMessages=[],this.state_=0,this.log_=nu("c:"+this.id+":"),this.transportManager_=new Yu(t),this.log_("Connection created"),this.start_()}start_(){var e=this.transportManager_.initialTransport();this.conn_=new e(this.nextTransportId_(),this.repoInfo_,this.applicationId_,this.appCheckToken_,this.authToken_,null,this.lastSessionId),this.primaryResponsesRequired_=e.responsesRequiredToBeHealthy||0;let t=this.connReceiver_(this.conn_),r=this.disconnReceiver_(this.conn_);this.tx_=this.conn_,this.rx_=this.conn_,this.secondaryConn_=null,this.isHealthy_=!1,setTimeout(()=>{this.conn_&&this.conn_.open(t,r)},Math.floor(0));e=e.healthyTimeout||0;0<e&&(this.healthyTimeout_=Au(()=>{this.healthyTimeout_=null,this.isHealthy_||(this.conn_&&102400<this.conn_.bytesReceived?(this.log_("Connection exceeded healthy timeout but has received "+this.conn_.bytesReceived+" bytes. Marking connection healthy."),this.isHealthy_=!0,this.conn_.markConnectionHealthy()):this.conn_&&10240<this.conn_.bytesSent?this.log_("Connection exceeded healthy timeout but has sent "+this.conn_.bytesSent+" bytes. Leaving connection alive."):(this.log_("Closing unhealthy connection after timeout."),this.close()))},Math.floor(e)))}nextTransportId_(){return"c:"+this.id+":"+this.connectionCount++}disconnReceiver_(t){return e=>{t===this.conn_?this.onConnectionLost_(e):t===this.secondaryConn_?(this.log_("Secondary connection lost."),this.onSecondaryConnectionLost_()):this.log_("closing an old connection")}}connReceiver_(t){return e=>{2!==this.state_&&(t===this.rx_?this.onPrimaryMessageReceived_(e):t===this.secondaryConn_?this.onSecondaryMessageReceived_(e):this.log_("message on old connection"))}}sendRequest(e){this.sendData_({t:"d",d:e})}tryCleanupConnection(){this.tx_===this.secondaryConn_&&this.rx_===this.secondaryConn_&&(this.log_("cleaning up and promoting a connection: "+this.secondaryConn_.connId),this.conn_=this.secondaryConn_,this.secondaryConn_=null)}onSecondaryControl_(e){var t;"t"in e&&("a"===(t=e.t)?this.upgradeIfSecondaryHealthy_():"r"===t?(this.log_("Got a reset on secondary, closing it"),this.secondaryConn_.close(),this.tx_!==this.secondaryConn_&&this.rx_!==this.secondaryConn_||this.close()):"o"===t&&(this.log_("got pong on secondary."),this.secondaryResponsesRequired_--,this.upgradeIfSecondaryHealthy_()))}onSecondaryMessageReceived_(e){var t=au("t",e),r=au("d",e);if("c"===t)this.onSecondaryControl_(r);else{if("d"!==t)throw new Error("Unknown protocol layer: "+t);this.pendingDataMessages.push(r)}}upgradeIfSecondaryHealthy_(){this.secondaryResponsesRequired_<=0?(this.log_("Secondary connection is healthy."),this.isHealthy_=!0,this.secondaryConn_.markConnectionHealthy(),this.proceedWithUpgrade_()):(this.log_("sending ping on secondary."),this.secondaryConn_.send({t:"c",d:{t:"p",d:{}}}))}proceedWithUpgrade_(){this.secondaryConn_.start(),this.log_("sending client ack on secondary"),this.secondaryConn_.send({t:"c",d:{t:"a",d:{}}}),this.log_("Ending transmission on primary"),this.conn_.send({t:"c",d:{t:"n",d:{}}}),this.tx_=this.secondaryConn_,this.tryCleanupConnection()}onPrimaryMessageReceived_(e){var t=au("t",e),r=au("d",e);"c"===t?this.onControl_(r):"d"===t&&this.onDataMessage_(r)}onDataMessage_(e){this.onPrimaryResponse_(),this.onMessage_(e)}onPrimaryResponse_(){this.isHealthy_||(this.primaryResponsesRequired_--,this.primaryResponsesRequired_<=0&&(this.log_("Primary connection is healthy."),this.isHealthy_=!0,this.conn_.markConnectionHealthy()))}onControl_(e){var t=au("t",e);if("d"in e){var r=e.d;if("h"===t){var n={...r};this.repoInfo_.isUsingEmulator&&(n.h=this.repoInfo_.host),this.onHandshake_(n)}else if("n"===t){this.log_("recvd end transmission on primary"),this.rx_=this.secondaryConn_;for(let e=0;e<this.pendingDataMessages.length;++e)this.onDataMessage_(this.pendingDataMessages[e]);this.pendingDataMessages=[],this.tryCleanupConnection()}else"s"===t?this.onConnectionShutdown_(r):"r"===t?this.onReset_(r):"e"===t?iu("Server Error: "+r):"o"===t?(this.log_("got pong on primary."),this.onPrimaryResponse_(),this.sendPingOnPrimaryIfNecessary_()):iu("Unknown control packet command: "+t)}}onHandshake_(e){var t=e.ts,r=e.v,n=e.h;this.sessionId=e.s,this.repoInfo_.host=n,0===this.state_&&(this.conn_.start(),this.onConnectionEstablished_(this.conn_,t),"5"!==r&&yu("Protocol version mismatch detected"),this.tryStartUpgrade_())}tryStartUpgrade_(){var e=this.transportManager_.upgradeTransport();e&&this.startUpgrade_(e)}startUpgrade_(e){this.secondaryConn_=new e(this.nextTransportId_(),this.repoInfo_,this.applicationId_,this.appCheckToken_,this.authToken_,this.sessionId),this.secondaryResponsesRequired_=e.responsesRequiredToBeHealthy||0;var t=this.connReceiver_(this.secondaryConn_),r=this.disconnReceiver_(this.secondaryConn_);this.secondaryConn_.open(t,r),Au(()=>{this.secondaryConn_&&(this.log_("Timed out trying to upgrade."),this.secondaryConn_.close())},Math.floor(6e4))}onReset_(e){this.log_("Reset packet received. New host: "+e),this.repoInfo_.host=e,1===this.state_?this.close():(this.closeConnections_(),this.start_())}onConnectionEstablished_(e,t){this.log_("Realtime connection established."),this.conn_=e,this.state_=1,this.onReady_&&(this.onReady_(t,this.sessionId),this.onReady_=null),0===this.primaryResponsesRequired_?(this.log_("Primary connection is healthy."),this.isHealthy_=!0):Au(()=>{this.sendPingOnPrimaryIfNecessary_()},Math.floor(5e3))}sendPingOnPrimaryIfNecessary_(){this.isHealthy_||1!==this.state_||(this.log_("sending ping on primary."),this.sendData_({t:"c",d:{t:"p",d:{}}}))}onSecondaryConnectionLost_(){var e=this.secondaryConn_;this.secondaryConn_=null,this.tx_!==e&&this.rx_!==e||this.close()}onConnectionLost_(e){this.conn_=null,e||0!==this.state_?1===this.state_&&this.log_("Realtime connection lost."):(this.log_("Realtime connection failed."),this.repoInfo_.isCacheableHost()&&(hu.remove("host:"+this.repoInfo_.host),this.repoInfo_.internalHost=this.repoInfo_.host)),this.close()}onConnectionShutdown_(e){this.log_("Connection shutdown command received. Shutting down..."),this.onKill_&&(this.onKill_(e),this.onKill_=null),this.onDisconnect_=null,this.close()}sendData_(e){if(1!==this.state_)throw"Connection is not connected";this.tx_.send(e)}close(){2!==this.state_&&(this.log_("Closing realtime connection."),this.state_=2,this.closeConnections_(),this.onDisconnect_)&&(this.onDisconnect_(),this.onDisconnect_=null)}closeConnections_(){this.log_("Shutting down all connections"),this.conn_&&(this.conn_.close(),this.conn_=null),this.secondaryConn_&&(this.secondaryConn_.close(),this.secondaryConn_=null),this.healthyTimeout_&&(clearTimeout(this.healthyTimeout_),this.healthyTimeout_=null)}}class Xu{put(e,t,r,n){}merge(e,t,r,n){}refreshAuthToken(e){}refreshAppCheckToken(e){}onDisconnectPut(e,t,r){}onDisconnectMerge(e,t,r){}onDisconnectCancel(e,t){}reportStats(e){}}class Zu{constructor(e){this.allowedEvents_=e,this.listeners_={},g(Array.isArray(e)&&0<e.length,"Requires a non-empty array")}trigger(t,...r){if(Array.isArray(this.listeners_[t])){var n=[...this.listeners_[t]];for(let e=0;e<n.length;e++)n[e].callback.apply(n[e].context,r)}}on(e,t,r){this.validateEventType_(e),this.listeners_[e]=this.listeners_[e]||[],this.listeners_[e].push({callback:t,context:r});var n=this.getInitialEvent(e);n&&t.apply(r,n)}off(e,t,r){this.validateEventType_(e);var n=this.listeners_[e]||[];for(let i=0;i<n.length;i++)if(n[i].callback===t&&(!r||r===n[i].context))return void n.splice(i,1)}validateEventType_(t){g(this.allowedEvents_.find(e=>e===t),"Unknown event: "+t)}}class ec extends Zu{static getInstance(){return new ec}constructor(){super(["online"]),this.online_=!0,"undefined"==typeof window||void 0===window.addEventListener||oe()||(window.addEventListener("online",()=>{this.online_||(this.online_=!0,this.trigger("online",!0))},!1),window.addEventListener("offline",()=>{this.online_&&(this.online_=!1,this.trigger("online",!1))},!1))}getInitialEvent(e){return g("online"===e,"Unknown event type: "+e),[this.online_]}currentlyOnline(){return this.online_}}let tc=32,rc=768;class f{constructor(r,e){if(void 0===e){this.pieces_=r.split("/");let e=0;for(let t=0;t<this.pieces_.length;t++)0<this.pieces_[t].length&&(this.pieces_[e]=this.pieces_[t],e++);this.pieces_.length=e,this.pieceNum_=0}else this.pieces_=r,this.pieceNum_=e}toString(){let e="";for(let t=this.pieceNum_;t<this.pieces_.length;t++)""!==this.pieces_[t]&&(e+="/"+this.pieces_[t]);return e||"/"}}function v(){return new f("")}function _(e){return e.pieceNum_>=e.pieces_.length?null:e.pieces_[e.pieceNum_]}function nc(e){return e.pieces_.length-e.pieceNum_}function y(e){let t=e.pieceNum_;return t<e.pieces_.length&&t++,new f(e.pieces_,t)}function ic(e){return e.pieceNum_<e.pieces_.length?e.pieces_[e.pieces_.length-1]:null}function sc(e,t=0){return e.pieces_.slice(e.pieceNum_+t)}function ac(e){if(e.pieceNum_>=e.pieces_.length)return null;var t=[];for(let r=e.pieceNum_;r<e.pieces_.length-1;r++)t.push(e.pieces_[r]);return new f(t,0)}function oc(e,t){var r=[];for(let i=e.pieceNum_;i<e.pieces_.length;i++)r.push(e.pieces_[i]);if(t instanceof f)for(let e=t.pieceNum_;e<t.pieces_.length;e++)r.push(t.pieces_[e]);else{var n=t.split("/");for(let e=0;e<n.length;e++)0<n[e].length&&r.push(n[e])}return new f(r,0)}function b(e){return e.pieceNum_>=e.pieces_.length}function lc(e,t){var r=_(e),n=_(t);if(null===r)return t;if(r===n)return lc(y(e),y(t));throw new Error("INTERNAL ERROR: innerPath ("+t+") is not within outerPath ("+e+")")}function hc(e,t){var r=sc(e,0),n=sc(t,0);for(let s=0;s<r.length&&s<n.length;s++){var i=Eu(r[s],n[s]);if(0!==i)return i}return r.length===n.length?0:r.length<n.length?-1:1}function uc(e,t){if(nc(e)!==nc(t))return!1;for(let r=e.pieceNum_,n=t.pieceNum_;r<=e.pieces_.length;r++,n++)if(e.pieces_[r]!==t.pieces_[n])return!1;return!0}function cc(e,t){let r=e.pieceNum_,n=t.pieceNum_;if(nc(e)>nc(t))return!1;for(;r<e.pieces_.length;){if(e.pieces_[r]!==t.pieces_[n])return!1;++r,++n}return!0}class dc{constructor(e,t){this.errorPrefix_=t,this.parts_=sc(e,0),this.byteLength_=Math.max(1,this.parts_.length);for(let r=0;r<this.parts_.length;r++)this.byteLength_+=Be(this.parts_[r]);pc(this)}}function pc(e){if(e.byteLength_>rc)throw new Error(e.errorPrefix_+"has a key path longer than "+rc+" bytes ("+e.byteLength_+").");if(e.parts_.length>tc)throw new Error(e.errorPrefix_+"path specified exceeds the maximum depth that can be written ("+tc+") or object contains a cycle "+fc(e))}function fc(e){return 0===e.parts_.length?"":"in property '"+e.parts_.join(".")+"'"}class gc extends Zu{static getInstance(){return new gc}constructor(){super(["visible"]);let t,e;"undefined"!=typeof document&&void 0!==document.addEventListener&&(void 0!==document.hidden?(e="visibilitychange",t="hidden"):void 0!==document.mozHidden?(e="mozvisibilitychange",t="mozHidden"):void 0!==document.msHidden?(e="msvisibilitychange",t="msHidden"):void 0!==document.webkitHidden&&(e="webkitvisibilitychange",t="webkitHidden")),this.visible_=!0,e&&document.addEventListener(e,()=>{var e=!document[t];e!==this.visible_&&(this.visible_=e,this.trigger("visible",e))},!1)}getInitialEvent(e){return g("visible"===e,"Unknown event type: "+e),[this.visible_]}}class mc extends Xu{constructor(e,t,r,n,i,s,a,o){if(super(),this.repoInfo_=e,this.applicationId_=t,this.onDataUpdate_=r,this.onConnectStatus_=n,this.onServerInfoUpdate_=i,this.authTokenProvider_=s,this.appCheckTokenProvider_=a,this.authOverride_=o,this.id=mc.nextPersistentConnectionId_++,this.log_=nu("p:"+this.id+":"),this.interruptReasons_={},this.listens=new Map,this.outstandingPuts_=[],this.outstandingGets_=[],this.outstandingPutCount_=0,this.outstandingGetCount_=0,this.onDisconnectRequestQueue_=[],this.connected_=!1,this.reconnectDelay_=1e3,this.maxReconnectDelay_=3e5,this.securityDebugCallback_=null,this.lastSessionId=null,this.establishConnectionTimer_=null,this.visible_=!1,this.requestCBHash_={},this.requestNumber_=0,this.realtime_=null,this.authToken_=null,this.appCheckToken_=null,this.forceTokenRefresh_=!1,this.invalidAuthTokenCount_=0,this.invalidAppCheckTokenCount_=0,this.firstConnection_=!0,this.lastConnectionAttemptTime_=null,this.lastConnectionEstablishedTime_=null,o&&!pe())throw new Error("Auth override specified in options, but not supported on non Node.js platforms");gc.getInstance().on("visible",this.onVisible_,this),-1===e.host.indexOf("fblocal")&&ec.getInstance().on("online",this.onOnline_,this)}sendRequest(e,t,r){var n=++this.requestNumber_,i={r:n,a:e,b:t};this.log_(Te(i)),g(this.connected_,"sendRequest call when we're not connected not allowed."),this.realtime_.sendRequest(i),r&&(this.requestCBHash_[n]=r)}get(e){this.initConnection_();let r=new Z;var t={p:e._path.toString(),q:e._queryObject},t=(this.outstandingGets_.push({action:"g",request:t,onComplete:e=>{var t=e.d;"ok"===e.s?r.resolve(t):r.reject(t)}}),this.outstandingGetCount_++,this.outstandingGets_.length-1);return this.connected_&&this.sendGet_(t),r.promise}listen(e,t,r,n){this.initConnection_();var i=e._queryIdentifier,s=e._path.toString(),a=(this.log_("Listen called for "+s+" "+i),this.listens.has(s)||this.listens.set(s,new Map),g(e._queryParams.isDefault()||!e._queryParams.loadsAllData(),"listen() called for non-default but complete query"),g(!this.listens.get(s).has(i),"listen() called twice for same path/queryId."),{onComplete:n,hashFn:t,query:e,tag:r});this.listens.get(s).set(i,a),this.connected_&&this.sendListen_(a)}sendGet_(t){let r=this.outstandingGets_[t];this.sendRequest("g",r.request,e=>{delete this.outstandingGets_[t],this.outstandingGetCount_--,0===this.outstandingGetCount_&&(this.outstandingGets_=[]),r.onComplete&&r.onComplete(e)})}sendListen_(i){let s=i.query,a=s._path.toString(),o=s._queryIdentifier;this.log_("Listen on "+a+" for "+o);var e={p:a};i.tag&&(e.q=s._queryObject,e.t=i.tag),e.h=i.hashFn(),this.sendRequest("q",e,e=>{var t=e.d,r=e.s,n=(mc.warnOnListenWarnings_(t,s),this.listens.get(a)&&this.listens.get(a).get(o));n===i&&(this.log_("listen response",e),"ok"!==r&&this.removeListen_(a,o),i.onComplete)&&i.onComplete(r,t)})}static warnOnListenWarnings_(e,t){var r,n;e&&"object"==typeof e&&Ce(e,"w")&&(r=Se(e,"w"),Array.isArray(r))&&~r.indexOf("no_index")&&(r='".indexOn": "'+t._queryParams.getIndex().toString()+'"',n=t._path.toString(),yu("Using an unspecified index. Your data will be downloaded and "+`filtered on the client. Consider adding ${r} at `+n+" to your security rules for better performance."))}refreshAuthToken(e){this.authToken_=e,this.log_("Auth token refreshed"),this.authToken_?this.tryAuth():this.connected_&&this.sendRequest("unauth",{},()=>{}),this.reduceReconnectDelayIfAdminCredential_(e)}reduceReconnectDelayIfAdminCredential_(e){var t;(e&&40===e.length||(e=e,"object"==typeof(t=Ee(e).claims)&&!0===t.admin))&&(this.log_("Admin auth credential detected. Reducing max reconnect time."),this.maxReconnectDelay_=3e4)}refreshAppCheckToken(e){this.appCheckToken_=e,this.log_("App check token refreshed"),this.appCheckToken_?this.tryAppCheck():this.connected_&&this.sendRequest("unappeck",{},()=>{})}tryAuth(){if(this.connected_&&this.authToken_){let n=this.authToken_;r=n;var e=!!(e=Ee(r).claims)&&"object"==typeof e&&e.hasOwnProperty("iat")?"auth":"gauth",t={cred:n};null===this.authOverride_?t.noauth=!0:"object"==typeof this.authOverride_&&(t.authvar=this.authOverride_),this.sendRequest(e,t,e=>{var t=e.s,r=e.d||"error";this.authToken_===n&&("ok"===t?this.invalidAuthTokenCount_=0:this.onAuthRevoked_(t,r))})}var r,e}tryAppCheck(){this.connected_&&this.appCheckToken_&&this.sendRequest("appcheck",{token:this.appCheckToken_},e=>{var t=e.s,r=e.d||"error";"ok"===t?this.invalidAppCheckTokenCount_=0:this.onAppCheckRevoked_(t,r)})}unlisten(e,t){var r=e._path.toString(),n=e._queryIdentifier,i=(this.log_("Unlisten called for "+r+" "+n),g(e._queryParams.isDefault()||!e._queryParams.loadsAllData(),"unlisten() called for non-default but complete query"),this.removeListen_(r,n));i&&this.connected_&&this.sendUnlisten_(r,n,e._queryObject,t)}sendUnlisten_(e,t,r,n){this.log_("Unlisten on "+e+" for "+t);var i={p:e};n&&(i.q=r,i.t=n),this.sendRequest("n",i)}onDisconnectPut(e,t,r){this.initConnection_(),this.connected_?this.sendOnDisconnect_("o",e,t,r):this.onDisconnectRequestQueue_.push({pathString:e,action:"o",data:t,onComplete:r})}onDisconnectMerge(e,t,r){this.initConnection_(),this.connected_?this.sendOnDisconnect_("om",e,t,r):this.onDisconnectRequestQueue_.push({pathString:e,action:"om",data:t,onComplete:r})}onDisconnectCancel(e,t){this.initConnection_(),this.connected_?this.sendOnDisconnect_("oc",e,null,t):this.onDisconnectRequestQueue_.push({pathString:e,action:"oc",data:null,onComplete:t})}sendOnDisconnect_(e,t,r,n){var i={p:t,d:r};this.log_("onDisconnect "+e,i),this.sendRequest(e,i,e=>{n&&setTimeout(()=>{n(e.s,e.d)},Math.floor(0))})}put(e,t,r,n){this.putInternal("p",e,t,r,n)}merge(e,t,r,n){this.putInternal("m",e,t,r,n)}putInternal(e,t,r,n,i){this.initConnection_();var s={p:t,d:r},s=(void 0!==i&&(s.h=i),this.outstandingPuts_.push({action:e,request:s,onComplete:n}),this.outstandingPutCount_++,this.outstandingPuts_.length-1);this.connected_?this.sendPut_(s):this.log_("Buffering put: "+t)}sendPut_(t){let r=this.outstandingPuts_[t].action;var e=this.outstandingPuts_[t].request;let n=this.outstandingPuts_[t].onComplete;this.outstandingPuts_[t].queued=this.connected_,this.sendRequest(r,e,e=>{this.log_(r+" response",e),delete this.outstandingPuts_[t],this.outstandingPutCount_--,0===this.outstandingPutCount_&&(this.outstandingPuts_=[]),n&&n(e.s,e.d)})}reportStats(e){var t;this.connected_&&(this.log_("reportStats",t={c:e}),this.sendRequest("s",t,e=>{var t;"ok"!==e.s&&(t=e.d,this.log_("reportStats","Error sending stats: "+t))}))}onDataMessage_(e){if("r"in e){this.log_("from server: "+Te(e));var t=e.r,r=this.requestCBHash_[t];r&&(delete this.requestCBHash_[t],r(e.b))}else{if("error"in e)throw"A server-side error has occurred: "+e.error;"a"in e&&this.onDataPush_(e.a,e.b)}}onDataPush_(e,t){this.log_("handleServerMessage",e,t),"d"===e?this.onDataUpdate_(t.p,t.d,!1,t.t):"m"===e?this.onDataUpdate_(t.p,t.d,!0,t.t):"c"===e?this.onListenRevoked_(t.p,t.q):"ac"===e?this.onAuthRevoked_(t.s,t.d):"apc"===e?this.onAppCheckRevoked_(t.s,t.d):"sd"===e?this.onSecurityDebugPacket_(t):iu("Unrecognized action received from server: "+Te(e)+"\nAre you using the latest client?")}onReady_(e,t){this.log_("connection ready"),this.connected_=!0,this.lastConnectionEstablishedTime_=(new Date).getTime(),this.handleTimestamp_(e),this.lastSessionId=t,this.firstConnection_&&this.sendConnectStats_(),this.restoreState_(),this.firstConnection_=!1,this.onConnectStatus_(!0)}scheduleConnect_(e){g(!this.realtime_,"Scheduling a connect when we're already connected/ing?"),this.establishConnectionTimer_&&clearTimeout(this.establishConnectionTimer_),this.establishConnectionTimer_=setTimeout(()=>{this.establishConnectionTimer_=null,this.establishConnection_()},Math.floor(e))}initConnection_(){!this.realtime_&&this.firstConnection_&&this.scheduleConnect_(0)}onVisible_(e){e&&!this.visible_&&this.reconnectDelay_===this.maxReconnectDelay_&&(this.log_("Window became visible. Reducing delay."),this.reconnectDelay_=1e3,this.realtime_||this.scheduleConnect_(0)),this.visible_=e}onOnline_(e){e?(this.log_("Browser went online."),this.reconnectDelay_=1e3,this.realtime_||this.scheduleConnect_(0)):(this.log_("Browser went offline. Killing connection."),this.realtime_&&this.realtime_.close())}onRealtimeDisconnect_(){var e;this.log_("data client disconnected"),this.connected_=!1,this.realtime_=null,this.cancelSentTransactions_(),this.requestCBHash_={},this.shouldReconnect_()&&(this.visible_?this.lastConnectionEstablishedTime_&&(3e4<(new Date).getTime()-this.lastConnectionEstablishedTime_&&(this.reconnectDelay_=1e3),this.lastConnectionEstablishedTime_=null):(this.log_("Window isn't visible. Delaying reconnect."),this.reconnectDelay_=this.maxReconnectDelay_,this.lastConnectionAttemptTime_=(new Date).getTime()),e=Math.max(0,(new Date).getTime()-this.lastConnectionAttemptTime_),e=Math.max(0,this.reconnectDelay_-e),e=Math.random()*e,this.log_("Trying to reconnect in "+e+"ms"),this.scheduleConnect_(e),this.reconnectDelay_=Math.min(this.maxReconnectDelay_,1.3*this.reconnectDelay_)),this.onConnectStatus_(!1)}async establishConnection_(){if(this.shouldReconnect_()){this.log_("Making a connection attempt"),this.lastConnectionAttemptTime_=(new Date).getTime(),this.lastConnectionEstablishedTime_=null;var n=this.onDataMessage_.bind(this),i=this.onReady_.bind(this);let e=this.onRealtimeDisconnect_.bind(this);var s=this.id+":"+mc.nextConnectionId_++,a=this.lastSessionId;let t=!1,r=null;var o=function(){r?r.close():(t=!0,e())},l=(this.realtime_={close:o,sendRequest:function(e){g(r,"sendRequest call when we're not connected not allowed."),r.sendRequest(e)}},this.forceTokenRefresh_);this.forceTokenRefresh_=!1;try{var[h,u]=await Promise.all([this.authTokenProvider_.getToken(l),this.appCheckTokenProvider_.getToken(l)]);t?vu("getToken() completed but was canceled"):(vu("getToken() completed. Creating connection."),this.authToken_=h&&h.accessToken,this.appCheckToken_=u&&u.token,r=new Ju(s,this.repoInfo_,this.applicationId_,this.appCheckToken_,this.authToken_,n,i,e,e=>{yu(e+" ("+this.repoInfo_.toString()+")"),this.interrupt("server_kill")},a))}catch(e){this.log_("Failed to get token: "+e),t||(this.repoInfo_.nodeAdmin&&yu(e),o())}}}interrupt(e){vu("Interrupting connection for reason: "+e),this.interruptReasons_[e]=!0,this.realtime_?this.realtime_.close():(this.establishConnectionTimer_&&(clearTimeout(this.establishConnectionTimer_),this.establishConnectionTimer_=null),this.connected_&&this.onRealtimeDisconnect_())}resume(e){vu("Resuming connection for reason: "+e),delete this.interruptReasons_[e],ke(this.interruptReasons_)&&(this.reconnectDelay_=1e3,this.realtime_||this.scheduleConnect_(0))}handleTimestamp_(e){var t=e-(new Date).getTime();this.onServerInfoUpdate_({serverTimeOffset:t})}cancelSentTransactions_(){for(let t=0;t<this.outstandingPuts_.length;t++){var e=this.outstandingPuts_[t];e&&"h"in e.request&&e.queued&&(e.onComplete&&e.onComplete("disconnect"),delete this.outstandingPuts_[t],this.outstandingPutCount_--)}0===this.outstandingPutCount_&&(this.outstandingPuts_=[])}onListenRevoked_(e,t){let r;r=t?t.map(e=>ou(e)).join("$"):"default";var n=this.removeListen_(e,r);n&&n.onComplete&&n.onComplete("permission_denied")}removeListen_(e,t){var r,n=new f(e).toString();let i;return this.listens.has(n)?(r=this.listens.get(n),i=r.get(t),r.delete(t),0===r.size&&this.listens.delete(n)):i=void 0,i}onAuthRevoked_(e,t){vu("Auth token revoked: "+e+"/"+t),this.authToken_=null,this.forceTokenRefresh_=!0,this.realtime_.close(),"invalid_token"!==e&&"permission_denied"!==e||(this.invalidAuthTokenCount_++,3<=this.invalidAuthTokenCount_&&(this.reconnectDelay_=3e4,this.authTokenProvider_.notifyForInvalidToken()))}onAppCheckRevoked_(e,t){vu("App check token revoked: "+e+"/"+t),this.appCheckToken_=null,this.forceTokenRefresh_=!0,"invalid_token"!==e&&"permission_denied"!==e||(this.invalidAppCheckTokenCount_++,3<=this.invalidAppCheckTokenCount_&&this.appCheckTokenProvider_.notifyForInvalidToken())}onSecurityDebugPacket_(e){this.securityDebugCallback_?this.securityDebugCallback_(e):"msg"in e&&console.log("FIREBASE: "+e.msg.replace("\n","\nFIREBASE: "))}restoreState_(){this.tryAuth(),this.tryAppCheck();for(var e of this.listens.values())for(var t of e.values())this.sendListen_(t);for(let n=0;n<this.outstandingPuts_.length;n++)this.outstandingPuts_[n]&&this.sendPut_(n);for(;this.onDisconnectRequestQueue_.length;){var r=this.onDisconnectRequestQueue_.shift();this.sendOnDisconnect_(r.action,r.pathString,r.data,r.onComplete)}for(let i=0;i<this.outstandingGets_.length;i++)this.outstandingGets_[i]&&this.sendGet_(i)}sendConnectStats_(){var e={};e["sdk.js."+Yh.replace(/\./g,"-")]=1,oe()?e["framework.cordova"]=1:ce()&&(e["framework.reactnative"]=1),this.reportStats(e)}shouldReconnect_(){var e=ec.getInstance().currentlyOnline();return ke(this.interruptReasons_)&&e}}mc.nextPersistentConnectionId_=0,mc.nextConnectionId_=0;class p{constructor(e,t){this.name=e,this.node=t}static Wrap(e,t){return new p(e,t)}}class vc{getCompare(){return this.compare.bind(this)}indexedValueChanged(e,t){var r=new p(Iu,e),n=new p(Iu,t);return 0!==this.compare(r,n)}minPost(){return p.MIN}}let _c;class yc extends vc{static get __EMPTY_NODE(){return _c}static set __EMPTY_NODE(e){_c=e}compare(e,t){return Eu(e.name,t.name)}isDefinedOn(e){throw B("KeyIndex.isDefinedOn not expected to be called.")}indexedValueChanged(e,t){return!1}minPost(){return p.MIN}maxPost(){return new p(Tu,_c)}makePost(e,t){return g("string"==typeof e,"KeyIndex indexValue must always be a string."),new p(e,_c)}toString(){return".key"}}let wc=new yc;class bc{constructor(e,t,r,n,i=null){this.isReverse_=n,this.resultGenerator_=i,this.nodeStack_=[];let s=1;for(;!e.isEmpty();)if(s=t?r(e.key,t):1,n&&(s*=-1),s<0)e=this.isReverse_?e.left:e.right;else{if(0===s){this.nodeStack_.push(e);break}this.nodeStack_.push(e),e=this.isReverse_?e.right:e.left}}getNext(){if(0===this.nodeStack_.length)return null;let e=this.nodeStack_.pop(),t;if(t=this.resultGenerator_?this.resultGenerator_(e.key,e.value):{key:e.key,value:e.value},this.isReverse_)for(e=e.left;!e.isEmpty();)this.nodeStack_.push(e),e=e.right;else for(e=e.right;!e.isEmpty();)this.nodeStack_.push(e),e=e.left;return t}hasNext(){return 0<this.nodeStack_.length}peek(){var e;return 0===this.nodeStack_.length?null:(e=this.nodeStack_[this.nodeStack_.length-1],this.resultGenerator_?this.resultGenerator_(e.key,e.value):{key:e.key,value:e.value})}}class Ic{constructor(e,t,r,n,i){this.key=e,this.value=t,this.color=null!=r?r:Ic.RED,this.left=null!=n?n:Ec.EMPTY_NODE,this.right=null!=i?i:Ec.EMPTY_NODE}copy(e,t,r,n,i){return new Ic(null!=e?e:this.key,null!=t?t:this.value,null!=r?r:this.color,null!=n?n:this.left,null!=i?i:this.right)}count(){return this.left.count()+1+this.right.count()}isEmpty(){return!1}inorderTraversal(e){return this.left.inorderTraversal(e)||!!e(this.key,this.value)||this.right.inorderTraversal(e)}reverseTraversal(e){return this.right.reverseTraversal(e)||e(this.key,this.value)||this.left.reverseTraversal(e)}min_(){return this.left.isEmpty()?this:this.left.min_()}minKey(){return this.min_().key}maxKey(){return this.right.isEmpty()?this.key:this.right.maxKey()}insert(e,t,r){let n=this;var i=r(e,n.key);return(n=i<0?n.copy(null,null,null,n.left.insert(e,t,r),null):0===i?n.copy(null,t,null,null,null):n.copy(null,null,null,null,n.right.insert(e,t,r))).fixUp_()}removeMin_(){if(this.left.isEmpty())return Ec.EMPTY_NODE;let e=this;return(e=(e=e.left.isRed_()||e.left.left.isRed_()?e:e.moveRedLeft_()).copy(null,null,null,e.left.removeMin_(),null)).fixUp_()}remove(e,t){let r,n;if(t(e,(r=this).key)<0)r=(r=r.left.isEmpty()||r.left.isRed_()||r.left.left.isRed_()?r:r.moveRedLeft_()).copy(null,null,null,r.left.remove(e,t),null);else{if(0===t(e,(r=(r=r.left.isRed_()?r.rotateRight_():r).right.isEmpty()||r.right.isRed_()||r.right.left.isRed_()?r:r.moveRedRight_()).key)){if(r.right.isEmpty())return Ec.EMPTY_NODE;n=r.right.min_(),r=r.copy(n.key,n.value,null,null,r.right.removeMin_())}r=r.copy(null,null,null,null,r.right.remove(e,t))}return r.fixUp_()}isRed_(){return this.color}fixUp_(){let e=this;return e=(e=(e=e.right.isRed_()&&!e.left.isRed_()?e.rotateLeft_():e).left.isRed_()&&e.left.left.isRed_()?e.rotateRight_():e).left.isRed_()&&e.right.isRed_()?e.colorFlip_():e}moveRedLeft_(){let e=this.colorFlip_();return e=e.right.left.isRed_()?(e=(e=e.copy(null,null,null,null,e.right.rotateRight_())).rotateLeft_()).colorFlip_():e}moveRedRight_(){let e=this.colorFlip_();return e=e.left.left.isRed_()?(e=e.rotateRight_()).colorFlip_():e}rotateLeft_(){var e=this.copy(null,null,Ic.RED,null,this.right.left);return this.right.copy(null,null,this.color,e,null)}rotateRight_(){var e=this.copy(null,null,Ic.RED,this.left.right,null);return this.left.copy(null,null,this.color,null,e)}colorFlip_(){var e=this.left.copy(null,null,!this.left.color,null,null),t=this.right.copy(null,null,!this.right.color,null,null);return this.copy(null,null,!this.color,e,t)}checkMaxDepth_(){var e=this.check_();return Math.pow(2,e)<=this.count()+1}check_(){if(this.isRed_()&&this.left.isRed_())throw new Error("Red node has red child("+this.key+","+this.value+")");if(this.right.isRed_())throw new Error("Right child of ("+this.key+","+this.value+") is red");var e=this.left.check_();if(e!==this.right.check_())throw new Error("Black depths differ");return e+(this.isRed_()?0:1)}}Ic.RED=!0,Ic.BLACK=!1;class Tc{copy(e,t,r,n,i){return this}insert(e,t,r){return new Ic(e,t,null)}remove(e,t){return this}count(){return 0}isEmpty(){return!0}inorderTraversal(e){return!1}reverseTraversal(e){return!1}minKey(){return null}maxKey(){return null}check_(){return 0}isRed_(){return!1}}class Ec{constructor(e,t=Ec.EMPTY_NODE){this.comparator_=e,this.root_=t}insert(e,t){return new Ec(this.comparator_,this.root_.insert(e,t,this.comparator_).copy(null,null,Ic.BLACK,null,null))}remove(e){return new Ec(this.comparator_,this.root_.remove(e,this.comparator_).copy(null,null,Ic.BLACK,null,null))}get(e){var t;let r=this.root_;for(;!r.isEmpty();){if(0===(t=this.comparator_(e,r.key)))return r.value;t<0?r=r.left:0<t&&(r=r.right)}return null}getPredecessorKey(e){let t,r=this.root_,n=null;for(;!r.isEmpty();){if(0===(t=this.comparator_(e,r.key))){if(r.left.isEmpty())return n?n.key:null;for(r=r.left;!r.right.isEmpty();)r=r.right;return r.key}t<0?r=r.left:0<t&&(r=(n=r).right)}throw new Error("Attempted to find predecessor key for a nonexistent key. What gives?")}isEmpty(){return this.root_.isEmpty()}count(){return this.root_.count()}minKey(){return this.root_.minKey()}maxKey(){return this.root_.maxKey()}inorderTraversal(e){return this.root_.inorderTraversal(e)}reverseTraversal(e){return this.root_.reverseTraversal(e)}getIterator(e){return new bc(this.root_,null,this.comparator_,!1,e)}getIteratorFrom(e,t){return new bc(this.root_,e,this.comparator_,!1,t)}getReverseIteratorFrom(e,t){return new bc(this.root_,e,this.comparator_,!0,t)}getReverseIterator(e){return new bc(this.root_,null,this.comparator_,!0,e)}}function Cc(e,t){return Eu(e.name,t.name)}function Sc(e,t){return Eu(e,t)}Ec.EMPTY_NODE=new Tc;let kc;function Ac(e){return"number"==typeof e?"number:"+Su(e):"string:"+e}function Nc(e){var t;e.isLeafNode()?(t=e.val(),g("string"==typeof t||"number"==typeof t||"object"==typeof t&&Ce(t,".sv"),"Priority must be a string or number.")):g(e===kc||e.isEmpty(),"priority of unexpected type."),g(e===kc||e.getPriority().isEmpty(),"Priority nodes can't have a priority of their own.")}let Rc;class Pc{static set __childrenNodeConstructor(e){Rc=e}static get __childrenNodeConstructor(){return Rc}constructor(e,t=Pc.__childrenNodeConstructor.EMPTY_NODE){this.value_=e,this.priorityNode_=t,this.lazyHash_=null,g(null!=this.value_,"LeafNode shouldn't be created with null/undefined value."),Nc(this.priorityNode_)}isLeafNode(){return!0}getPriority(){return this.priorityNode_}updatePriority(e){return new Pc(this.value_,e)}getImmediateChild(e){return".priority"===e?this.priorityNode_:Pc.__childrenNodeConstructor.EMPTY_NODE}getChild(e){return b(e)?this:".priority"===_(e)?this.priorityNode_:Pc.__childrenNodeConstructor.EMPTY_NODE}hasChild(){return!1}getPredecessorChildName(e,t){return null}updateImmediateChild(e,t){return".priority"===e?this.updatePriority(t):t.isEmpty()&&".priority"!==e?this:Pc.__childrenNodeConstructor.EMPTY_NODE.updateImmediateChild(e,t).updatePriority(this.priorityNode_)}updateChild(e,t){var r=_(e);return null===r?t:t.isEmpty()&&".priority"!==r?this:(g(".priority"!==r||1===nc(e),".priority must be the last token in a path"),this.updateImmediateChild(r,Pc.__childrenNodeConstructor.EMPTY_NODE.updateChild(y(e),t)))}isEmpty(){return!1}numChildren(){return 0}forEachChild(e,t){return!1}val(e){return e&&!this.getPriority().isEmpty()?{".value":this.getValue(),".priority":this.getPriority().val()}:this.getValue()}hash(){if(null===this.lazyHash_){let e="";this.priorityNode_.isEmpty()||(e+="priority:"+Ac(this.priorityNode_.val())+":");var t=typeof this.value_;e=(e+=t+":")+("number"==t?Su(this.value_):this.value_),this.lazyHash_=ru(e)}return this.lazyHash_}getValue(){return this.value_}compareTo(e){return e===Pc.__childrenNodeConstructor.EMPTY_NODE?1:e instanceof Pc.__childrenNodeConstructor?-1:(g(e.isLeafNode(),"Unknown node type"),this.compareToLeafNode_(e))}compareToLeafNode_(e){var t=typeof e.value_,r=typeof this.value_,n=Pc.VALUE_TYPE_ORDER.indexOf(t),i=Pc.VALUE_TYPE_ORDER.indexOf(r);return g(0<=n,"Unknown leaf type: "+t),g(0<=i,"Unknown leaf type: "+r),n===i?"object"==r?0:this.value_<e.value_?-1:this.value_===e.value_?0:1:i-n}withIndex(){return this}isIndexed(){return!0}equals(e){return e===this||!!e.isLeafNode()&&this.value_===e.value_&&this.priorityNode_.equals(e.priorityNode_)}}Pc.VALUE_TYPE_ORDER=["object","boolean","number","string"];let Dc,xc;class Oc extends vc{compare(e,t){var r=e.node.getPriority(),n=t.node.getPriority(),r=r.compareTo(n);return 0===r?Eu(e.name,t.name):r}isDefinedOn(e){return!e.getPriority().isEmpty()}indexedValueChanged(e,t){return!e.getPriority().equals(t.getPriority())}minPost(){return p.MIN}maxPost(){return new p(Tu,new Pc("[PRIORITY-POST]",xc))}makePost(e,t){var r=Dc(e);return new p(t,new Pc("[PRIORITY-POST]",r))}toString(){return".priority"}}let I=new Oc,Mc=Math.log(2);class Lc{constructor(e){this.count=(t=e+1,parseInt(Math.log(t)/Mc,10)),this.current_=this.count-1,t=this.count;var t,r=parseInt(Array(t+1).join("1"),2);this.bits_=e+1&r}nextBitIsOne(){var e=!(this.bits_&1<<this.current_);return this.current_--,e}}function Fc(l,e,h,t){l.sort(e);let u=function(e,t){var r,n,i=t-e;let s,a;return 0==i?null:1==i?(s=l[e],a=h?h(s):s,new Ic(a,s.node,Ic.BLACK,null,null)):(i=parseInt(i/2,10)+e,r=u(e,i),n=u(i+1,t),s=l[i],a=h?h(s):s,new Ic(a,s.node,Ic.BLACK,r,n))};var r=(e=>{let s=null,a=null,o=l.length;function t(e,t){var r=o-e,n=o,n=(o-=e,u(1+r,n)),r=l[r],i=h?h(r):r,e=new Ic(i,r.node,t,null,n);s=(s?s.left=e:a=e,e)}for(let i=0;i<e.count;++i){var r=e.nextBitIsOne(),n=Math.pow(2,e.count-(i+1));r?t(n,Ic.BLACK):(t(n,Ic.BLACK),t(n,Ic.RED))}return a})(new Lc(l.length));return new Ec(t||e,r)}let Uc,Vc={};class qc{static get Default(){return g((Vc,I),"ChildrenNode.ts has not been loaded"),Uc=Uc||new qc({".priority":Vc},{".priority":I})}constructor(e,t){this.indexes_=e,this.indexSet_=t}get(e){var t=Se(this.indexes_,e);if(t)return t instanceof Ec?t:null;throw new Error("No index defined for "+e)}hasIndex(e){return Ce(this.indexSet_,e.toString())}addIndex(e,t){g(e!==wc,"KeyIndex always exists and isn't meant to be added to the IndexMap.");var r=[];let n=!1;var i=t.getIterator(p.Wrap);let s=i.getNext();for(;s;)n=n||e.isDefinedOn(s.node),r.push(s),s=i.getNext();let a;a=n?Fc(r,e.getCompare()):Vc;var o=e.toString(),l={...this.indexSet_},h=(l[o]=e,{...this.indexes_});return h[o]=a,new qc(h,l)}addToIndexes(s,a){var e=Ae(this.indexes_,(t,e)=>{var r=Se(this.indexSet_,e);if(g(r,"Missing index implementation for "+e),t===Vc){if(r.isDefinedOn(s.node)){var n=[],i=a.getIterator(p.Wrap);let e=i.getNext();for(;e;)e.name!==s.name&&n.push(e),e=i.getNext();return n.push(s),Fc(n,r.getCompare())}return Vc}{r=a.get(s.name);let e=t;return(e=r?e.remove(new p(s.name,r)):e).insert(s,s.node)}});return new qc(e,this.indexSet_)}removeFromIndexes(r,n){var e=Ae(this.indexes_,e=>{var t;return e!==Vc&&(t=n.get(r.name))?e.remove(new p(r.name,t)):e});return new qc(e,this.indexSet_)}}let Bc;class T{static get EMPTY_NODE(){return Bc=Bc||new T(new Ec(Sc),null,qc.Default)}constructor(e,t,r){this.children_=e,this.priorityNode_=t,this.indexMap_=r,this.lazyHash_=null,this.priorityNode_&&Nc(this.priorityNode_),this.children_.isEmpty()&&g(!this.priorityNode_||this.priorityNode_.isEmpty(),"An empty node cannot have a priority")}isLeafNode(){return!1}getPriority(){return this.priorityNode_||Bc}updatePriority(e){return this.children_.isEmpty()?this:new T(this.children_,e,this.indexMap_)}getImmediateChild(e){var t;return".priority"===e?this.getPriority():null===(t=this.children_.get(e))?Bc:t}getChild(e){var t=_(e);return null===t?this:this.getImmediateChild(t).getChild(y(e))}hasChild(e){return null!==this.children_.get(e)}updateImmediateChild(r,n){if(g(n,"We should always be passing snapshot nodes"),".priority"===r)return this.updatePriority(n);{var i=new p(r,n);let e,t;t=n.isEmpty()?(e=this.children_.remove(r),this.indexMap_.removeFromIndexes(i,this.children_)):(e=this.children_.insert(r,n),this.indexMap_.addToIndexes(i,this.children_));i=e.isEmpty()?Bc:this.priorityNode_;return new T(e,i,t)}}updateChild(e,t){var r,n=_(e);return null===n?t:(g(".priority"!==_(e)||1===nc(e),".priority must be the last token in a path"),r=this.getImmediateChild(n).updateChild(y(e),t),this.updateImmediateChild(n,r))}isEmpty(){return this.children_.isEmpty()}numChildren(){return this.children_.count()}val(r){if(this.isEmpty())return null;let n={},i=0,s=0,a=!0;if(this.forEachChild(I,(e,t)=>{n[e]=t.val(r),i++,a&&T.INTEGER_REGEXP_.test(e)?s=Math.max(s,Number(e)):a=!1}),!r&&a&&s<2*i){var e,t=[];for(e in n)t[e]=n[e];return t}return r&&!this.getPriority().isEmpty()&&(n[".priority"]=this.getPriority().val()),n}hash(){if(null===this.lazyHash_){let n="";this.getPriority().isEmpty()||(n+="priority:"+Ac(this.getPriority().val())+":"),this.forEachChild(I,(e,t)=>{var r=t.hash();""!==r&&(n+=":"+e+":"+r)}),this.lazyHash_=""===n?"":ru(n)}return this.lazyHash_}getPredecessorChildName(e,t,r){var n=this.resolveIndex_(r);return n?(n=n.getPredecessorKey(new p(e,t)))?n.name:null:this.children_.getPredecessorKey(e)}getFirstChildName(e){var t=this.resolveIndex_(e);return t?(t=t.minKey())&&t.name:this.children_.minKey()}getFirstChild(e){var t=this.getFirstChildName(e);return t?new p(t,this.children_.get(t)):null}getLastChildName(e){var t=this.resolveIndex_(e);return t?(t=t.maxKey())&&t.name:this.children_.maxKey()}getLastChild(e){var t=this.getLastChildName(e);return t?new p(t,this.children_.get(t)):null}forEachChild(e,t){var r=this.resolveIndex_(e);return r?r.inorderTraversal(e=>t(e.name,e.node)):this.children_.inorderTraversal(t)}getIterator(e){return this.getIteratorFrom(e.minPost(),e)}getIteratorFrom(t,r){var e=this.resolveIndex_(r);if(e)return e.getIteratorFrom(t,e=>e);{var n=this.children_.getIteratorFrom(t.name,p.Wrap);let e=n.peek();for(;null!=e&&r.compare(e,t)<0;)n.getNext(),e=n.peek();return n}}getReverseIterator(e){return this.getReverseIteratorFrom(e.maxPost(),e)}getReverseIteratorFrom(t,r){var e=this.resolveIndex_(r);if(e)return e.getReverseIteratorFrom(t,e=>e);{var n=this.children_.getReverseIteratorFrom(t.name,p.Wrap);let e=n.peek();for(;null!=e&&0<r.compare(e,t);)n.getNext(),e=n.peek();return n}}compareTo(e){return this.isEmpty()?e.isEmpty()?0:-1:e.isLeafNode()||e.isEmpty()?1:e===zc?-1:0}withIndex(e){var t;return e===wc||this.indexMap_.hasIndex(e)?this:(t=this.indexMap_.addIndex(e,this.children_),new T(this.children_,this.priorityNode_,t))}isIndexed(e){return e===wc||this.indexMap_.hasIndex(e)}equals(e){if(e===this)return!0;if(!e.isLeafNode()){var r=e;if(this.getPriority().equals(r.getPriority())){if(this.children_.count()!==r.children_.count())return!1;{var n=this.getIterator(I),i=r.getIterator(I);let e=n.getNext(),t=i.getNext();for(;e&&t;){if(e.name!==t.name||!e.node.equals(t.node))return!1;e=n.getNext(),t=i.getNext()}return null===e&&null===t}}}return!1}resolveIndex_(e){return e===wc?null:this.indexMap_.get(e.toString())}}T.INTEGER_REGEXP_=/^(0|[1-9]\d*)$/;class jc extends T{constructor(){super(new Ec(Sc),T.EMPTY_NODE,qc.Default)}compareTo(e){return e===this?0:1}equals(e){return e===this}getPriority(){return this}getImmediateChild(e){return T.EMPTY_NODE}isEmpty(){return!1}}let zc=new jc,Kc=(Object.defineProperties(p,{MIN:{value:new p(Iu,T.EMPTY_NODE)},MAX:{value:new p(Tu,zc)}}),yc.__EMPTY_NODE=T.EMPTY_NODE,Pc.__childrenNodeConstructor=T,t=zc,kc=t,t=zc,xc=t,!0);function Wc(s,e=null){if(null===s)return T.EMPTY_NODE;var t,r;if("object"==typeof s&&".priority"in s&&(e=s[".priority"]),g(null===e||"string"==typeof e||"number"==typeof e||"object"==typeof e&&".sv"in e,"Invalid priority type found: "+typeof e),"object"!=typeof(s="object"==typeof s&&".value"in s&&null!==s[".value"]?s[".value"]:s)||".sv"in s)return t=s,new Pc(t,Wc(e));if(s instanceof Array||!Kc){let n=T.EMPTY_NODE;return Cu(s,(e,t)=>{var r;!Ce(s,e)||"."===e.substring(0,1)||!(r=Wc(t)).isLeafNode()&&r.isEmpty()||(n=n.updateImmediateChild(e,r))}),n.updatePriority(Wc(e))}{let n=[],i=!1;return Cu(s,(e,t)=>{var r;"."===e.substring(0,1)||(r=Wc(t)).isEmpty()||(i=i||!r.getPriority().isEmpty(),n.push(new p(e,r)))}),0===n.length?T.EMPTY_NODE:(t=Fc(n,Cc,e=>e.name,Sc),i?(r=Fc(n,I.getCompare()),new T(t,Wc(e),new qc({".priority":r},{".priority":I}))):new T(t,Wc(e),qc.Default))}}Dc=Wc;class Hc extends vc{constructor(e){super(),this.indexPath_=e,g(!b(e)&&".priority"!==_(e),"Can't create PathIndex with empty path or .priority key")}extractChild(e){return e.getChild(this.indexPath_)}isDefinedOn(e){return!e.getChild(this.indexPath_).isEmpty()}compare(e,t){var r=this.extractChild(e.node),n=this.extractChild(t.node),r=r.compareTo(n);return 0===r?Eu(e.name,t.name):r}makePost(e,t){var r=Wc(e),r=T.EMPTY_NODE.updateChild(this.indexPath_,r);return new p(t,r)}maxPost(){var e=T.EMPTY_NODE.updateChild(this.indexPath_,zc);return new p(Tu,e)}toString(){return sc(this.indexPath_,0).join("/")}}class Gc extends vc{compare(e,t){var r=e.node.compareTo(t.node);return 0===r?Eu(e.name,t.name):r}isDefinedOn(e){return!0}indexedValueChanged(e,t){return!e.equals(t)}minPost(){return p.MIN}maxPost(){return p.MAX}makePost(e,t){var r=Wc(e);return new p(t,r)}toString(){return".value"}}let $c=new Gc;function Qc(e){return{type:"value",snapshotNode:e}}function Yc(e,t){return{type:"child_added",snapshotNode:t,childName:e}}function Jc(e,t){return{type:"child_removed",snapshotNode:t,childName:e}}function Xc(e,t,r){return{type:"child_changed",snapshotNode:t,childName:e,oldSnap:r}}class Zc{constructor(e){this.index_=e}updateChild(e,t,r,n,i,s){g(e.isIndexed(this.index_),"A node must be indexed if only a child is updated");var a=e.getImmediateChild(t);return a.getChild(n).equals(r.getChild(n))&&a.isEmpty()===r.isEmpty()||(null!=s&&(r.isEmpty()?e.hasChild(t)?s.trackChildChange(Jc(t,a)):g(e.isLeafNode(),"A child remove without an old child only makes sense on a leaf node"):a.isEmpty()?s.trackChildChange(Yc(t,r)):s.trackChildChange(Xc(t,r,a))),e.isLeafNode()&&r.isEmpty())?e:e.updateImmediateChild(t,r).withIndex(this.index_)}updateFullNode(n,r,i){return null!=i&&(n.isLeafNode()||n.forEachChild(I,(e,t)=>{r.hasChild(e)||i.trackChildChange(Jc(e,t))}),r.isLeafNode()||r.forEachChild(I,(e,t)=>{var r;n.hasChild(e)?(r=n.getImmediateChild(e)).equals(t)||i.trackChildChange(Xc(e,t,r)):i.trackChildChange(Yc(e,t))})),r.withIndex(this.index_)}updatePriority(e,t){return e.isEmpty()?T.EMPTY_NODE:e.updatePriority(t)}filtersNodes(){return!1}getIndexedFilter(){return this}getIndex(){return this.index_}}class ed{constructor(e){this.indexedFilter_=new Zc(e.getIndex()),this.index_=e.getIndex(),this.startPost_=ed.getStartPost_(e),this.endPost_=ed.getEndPost_(e),this.startIsInclusive_=!e.startAfterSet_,this.endIsInclusive_=!e.endBeforeSet_}getStartPost(){return this.startPost_}getEndPost(){return this.endPost_}matches(e){var t=this.startIsInclusive_?this.index_.compare(this.getStartPost(),e)<=0:this.index_.compare(this.getStartPost(),e)<0,r=this.endIsInclusive_?this.index_.compare(e,this.getEndPost())<=0:this.index_.compare(e,this.getEndPost())<0;return t&&r}updateChild(e,t,r,n,i,s){return this.matches(new p(t,r))||(r=T.EMPTY_NODE),this.indexedFilter_.updateChild(e,t,r,n,i,s)}updateFullNode(e,t,r){let n=(t=t.isLeafNode()?T.EMPTY_NODE:t).withIndex(this.index_),i=(n=n.updatePriority(T.EMPTY_NODE),this);return t.forEachChild(I,(e,t)=>{i.matches(new p(e,t))||(n=n.updateImmediateChild(e,T.EMPTY_NODE))}),this.indexedFilter_.updateFullNode(e,n,r)}updatePriority(e,t){return e}filtersNodes(){return!0}getIndexedFilter(){return this.indexedFilter_}getIndex(){return this.index_}static getStartPost_(e){var t;return e.hasStart()?(t=e.getIndexStartName(),e.getIndex().makePost(e.getIndexStartValue(),t)):e.getIndex().minPost()}static getEndPost_(e){var t;return e.hasEnd()?(t=e.getIndexEndName(),e.getIndex().makePost(e.getIndexEndValue(),t)):e.getIndex().maxPost()}}class td{constructor(e){this.withinDirectionalStart=e=>this.reverse_?this.withinEndPost(e):this.withinStartPost(e),this.withinDirectionalEnd=e=>this.reverse_?this.withinStartPost(e):this.withinEndPost(e),this.withinStartPost=e=>{var t=this.index_.compare(this.rangedFilter_.getStartPost(),e);return this.startIsInclusive_?t<=0:t<0},this.withinEndPost=e=>{var t=this.index_.compare(e,this.rangedFilter_.getEndPost());return this.endIsInclusive_?t<=0:t<0},this.rangedFilter_=new ed(e),this.index_=e.getIndex(),this.limit_=e.getLimit(),this.reverse_=!e.isViewFromLeft(),this.startIsInclusive_=!e.startAfterSet_,this.endIsInclusive_=!e.endBeforeSet_}updateChild(e,t,r,n,i,s){return this.rangedFilter_.matches(new p(t,r))||(r=T.EMPTY_NODE),e.getImmediateChild(t).equals(r)?e:e.numChildren()<this.limit_?this.rangedFilter_.getIndexedFilter().updateChild(e,t,r,n,i,s):this.fullLimitUpdateChild_(e,t,r,i,s)}updateFullNode(e,r,t){let n;if(r.isLeafNode()||r.isEmpty())n=T.EMPTY_NODE.withIndex(this.index_);else if(2*this.limit_<r.numChildren()&&r.isIndexed(this.index_)){n=T.EMPTY_NODE.withIndex(this.index_);let e,t=(e=this.reverse_?r.getReverseIteratorFrom(this.rangedFilter_.getEndPost(),this.index_):r.getIteratorFrom(this.rangedFilter_.getStartPost(),this.index_),0);for(;e.hasNext()&&t<this.limit_;){var i=e.getNext();if(this.withinDirectionalStart(i)){if(!this.withinDirectionalEnd(i))break;n=n.updateImmediateChild(i.name,i.node),t++}}}else{n=(n=r.withIndex(this.index_)).updatePriority(T.EMPTY_NODE);let e,t=(e=this.reverse_?n.getReverseIterator(this.index_):n.getIterator(this.index_),0);for(;e.hasNext();){var s=e.getNext();t<this.limit_&&this.withinDirectionalStart(s)&&this.withinDirectionalEnd(s)?t++:n=n.updateImmediateChild(s.name,T.EMPTY_NODE)}}return this.rangedFilter_.getIndexedFilter().updateFullNode(e,n,t)}updatePriority(e,t){return e}filtersNodes(){return!0}getIndexedFilter(){return this.rangedFilter_.getIndexedFilter()}getIndex(){return this.index_}fullLimitUpdateChild_(e,t,r,n,i){let s;if(this.reverse_){let r=this.index_.getCompare();s=(e,t)=>r(t,e)}else s=this.index_.getCompare();var a=e,o=(g(a.numChildren()===this.limit_,""),new p(t,r)),l=this.reverse_?a.getFirstChild(this.index_):a.getLastChild(this.index_),h=this.rangedFilter_.matches(o);if(a.hasChild(t)){var u=a.getImmediateChild(t);let e=n.getChildAfterChild(this.index_,l,this.reverse_);for(;null!=e&&(e.name===t||a.hasChild(e.name));)e=n.getChildAfterChild(this.index_,e,this.reverse_);var c=null==e?1:s(e,o);return h&&!r.isEmpty()&&0<=c?(null!=i&&i.trackChildChange(Xc(t,r,u)),a.updateImmediateChild(t,r)):(null!=i&&i.trackChildChange(Jc(t,u)),c=a.updateImmediateChild(t,T.EMPTY_NODE),null!=e&&this.rangedFilter_.matches(e)?(null!=i&&i.trackChildChange(Yc(e.name,e.node)),c.updateImmediateChild(e.name,e.node)):c)}return!r.isEmpty()&&h&&0<=s(l,o)?(null!=i&&(i.trackChildChange(Jc(l.name,l.node)),i.trackChildChange(Yc(t,r))),a.updateImmediateChild(t,r).updateImmediateChild(l.name,T.EMPTY_NODE)):e}}class rd{constructor(){this.limitSet_=!1,this.startSet_=!1,this.startNameSet_=!1,this.startAfterSet_=!1,this.endSet_=!1,this.endNameSet_=!1,this.endBeforeSet_=!1,this.limit_=0,this.viewFrom_="",this.indexStartValue_=null,this.indexStartName_="",this.indexEndValue_=null,this.indexEndName_="",this.index_=I}hasStart(){return this.startSet_}isViewFromLeft(){return""===this.viewFrom_?this.startSet_:"l"===this.viewFrom_}getIndexStartValue(){return g(this.startSet_,"Only valid if start has been set"),this.indexStartValue_}getIndexStartName(){return g(this.startSet_,"Only valid if start has been set"),this.startNameSet_?this.indexStartName_:Iu}hasEnd(){return this.endSet_}getIndexEndValue(){return g(this.endSet_,"Only valid if end has been set"),this.indexEndValue_}getIndexEndName(){return g(this.endSet_,"Only valid if end has been set"),this.endNameSet_?this.indexEndName_:Tu}hasLimit(){return this.limitSet_}hasAnchoredLimit(){return this.limitSet_&&""!==this.viewFrom_}getLimit(){return g(this.limitSet_,"Only valid if limit has been set"),this.limit_}getIndex(){return this.index_}loadsAllData(){return!(this.startSet_||this.endSet_||this.limitSet_)}isDefault(){return this.loadsAllData()&&this.index_===I}copy(){var e=new rd;return e.limitSet_=this.limitSet_,e.limit_=this.limit_,e.startSet_=this.startSet_,e.startAfterSet_=this.startAfterSet_,e.indexStartValue_=this.indexStartValue_,e.startNameSet_=this.startNameSet_,e.indexStartName_=this.indexStartName_,e.endSet_=this.endSet_,e.endBeforeSet_=this.endBeforeSet_,e.indexEndValue_=this.indexEndValue_,e.endNameSet_=this.endNameSet_,e.indexEndName_=this.indexEndName_,e.index_=this.index_,e.viewFrom_=this.viewFrom_,e}}function nd(e,t,r){var n=e.copy();return n.startSet_=!0,n.indexStartValue_=t=void 0===t?null:t,null!=r?(n.startNameSet_=!0,n.indexStartName_=r):(n.startNameSet_=!1,n.indexStartName_=""),n}function id(e,t,r){var n=e.copy();return n.endSet_=!0,n.indexEndValue_=t=void 0===t?null:t,void 0!==r?(n.endNameSet_=!0,n.indexEndName_=r):(n.endNameSet_=!1,n.indexEndName_=""),n}function sd(e,t){var r=e.copy();return r.index_=t,r}function ad(t){var r,n={};if(!t.isDefault()){let e;e=t.index_===I?"$priority":t.index_===$c?"$value":t.index_===wc?"$key":(g(t.index_ instanceof Hc,"Unrecognized index type!"),t.index_.toString()),n.orderBy=Te(e),t.startSet_&&(n[r=t.startAfterSet_?"startAfter":"startAt"]=Te(t.indexStartValue_),t.startNameSet_)&&(n[r]+=","+Te(t.indexStartName_)),t.endSet_&&(n[r=t.endBeforeSet_?"endBefore":"endAt"]=Te(t.indexEndValue_),t.endNameSet_)&&(n[r]+=","+Te(t.indexEndName_)),t.limitSet_&&(t.isViewFromLeft()?n.limitToFirst=t.limit_:n.limitToLast=t.limit_)}return n}function od(t){var r={};if(t.startSet_&&(r.sp=t.indexStartValue_,t.startNameSet_&&(r.sn=t.indexStartName_),r.sin=!t.startAfterSet_),t.endSet_&&(r.ep=t.indexEndValue_,t.endNameSet_&&(r.en=t.indexEndName_),r.ein=!t.endBeforeSet_),t.limitSet_){r.l=t.limit_;let e=t.viewFrom_;""===e&&(e=t.isViewFromLeft()?"l":"r"),r.vf=e}return t.index_!==I&&(r.i=t.index_.toString()),r}class ld extends Xu{reportStats(e){throw new Error("Method not implemented.")}static getListenId_(e,t){return void 0!==t?"tag$"+t:(g(e._queryParams.isDefault(),"should have a tag if it's not a default query."),e._path.toString())}constructor(e,t,r,n){super(),this.repoInfo_=e,this.onDataUpdate_=t,this.authTokenProvider_=r,this.appCheckTokenProvider_=n,this.log_=nu("p:rest:"),this.listens_={}}listen(e,t,n,i){let s=e._path.toString(),a=(this.log_("Listen called for "+s+" "+e._queryIdentifier),ld.getListenId_(e,n)),o={};this.listens_[a]=o;var r=ad(e._queryParams);this.restRequest_(s+".json",r,(t,e)=>{let r=e;if(null===(t=404===t?r=null:t)&&this.onDataUpdate_(s,r,!1,n),Se(this.listens_,a)===o){let e;e=t?401===t?"permission_denied":"rest_error:"+t:"ok",i(e,null)}})}unlisten(e,t){var r=ld.getListenId_(e,t);delete this.listens_[r]}get(e){var t=ad(e._queryParams);let n=e._path.toString(),i=new Z;return this.restRequest_(n+".json",t,(e,t)=>{let r=t;null===(e=404===e?r=null:e)?(this.onDataUpdate_(n,r,!1,null),i.resolve(r)):i.reject(new Error(r))}),i.promise}refreshAuthToken(e){}restRequest_(i,s={},a){return s.format="export",Promise.all([this.authTokenProvider_.getToken(!1),this.appCheckTokenProvider_.getToken(!1)]).then(([e,t])=>{e&&e.accessToken&&(s.auth=e.accessToken),t&&t.token&&(s.ac=t.token);let r=(this.repoInfo_.secure?"https://":"http://")+this.repoInfo_.host+i+"?ns="+this.repoInfo_.namespace+Pe(s),n=(this.log_("Sending REST request for "+r),new XMLHttpRequest);n.onreadystatechange=()=>{if(a&&4===n.readyState){this.log_("REST Response for "+r+" received. status:",n.status,"response:",n.responseText);let e=null;if(200<=n.status&&n.status<300){try{e=Ie(n.responseText)}catch(e){yu("Failed to parse JSON response for "+r+": "+n.responseText)}a(null,e)}else 401!==n.status&&404!==n.status&&yu("Got unsuccessful REST response for "+r+" Status: "+n.status),a(n.status);a=null}},n.open("GET",r,!0),n.send()})}}class hd{constructor(){this.rootNode_=T.EMPTY_NODE}getNode(e){return this.rootNode_.getChild(e)}updateSnapshot(e,t){this.rootNode_=this.rootNode_.updateChild(e,t)}}function ud(){return{value:null,children:new Map}}function cd(e,t,r){var n;b(t)?(e.value=r,e.children.clear()):null!==e.value?e.value=e.value.updateChild(t,r):(n=_(t),e.children.has(n)||e.children.set(n,ud()),cd(e.children.get(n),t=y(t),r))}function dd(e,r,n){var i;null!==e.value?n(r,e.value):(i=(e,t)=>{dd(t,new f(r.toString()+"/"+e),n)},e.children.forEach((e,t)=>{i(t,e)}))}class pd{constructor(e){this.collection_=e,this.last_=null}get(){var e=this.collection_.get();let r={...e};return this.last_&&Cu(this.last_,(e,t)=>{r[e]=r[e]-t}),this.last_=e,r}}class fd{constructor(e,t){this.server_=t,this.statsToReport_={},this.statsListener_=new pd(e);var r=1e4+2e4*Math.random();Au(this.reportStats_.bind(this),Math.floor(r))}reportStats_(){var e=this.statsListener_.get();let r={},n=!1;Cu(e,(e,t)=>{0<t&&Ce(this.statsToReport_,e)&&(r[e]=t,n=!0)}),n&&this.server_.reportStats(r),Au(this.reportStats_.bind(this),Math.floor(2*Math.random()*3e5))}}function gd(){return{fromUser:!0,fromServer:!1,queryId:null,tagged:!1}}function md(){return{fromUser:!1,fromServer:!0,queryId:null,tagged:!1}}function vd(e){return{fromUser:!1,fromServer:!0,queryId:e,tagged:!0}}(t=tu=tu||{})[t.OVERWRITE=0]="OVERWRITE",t[t.MERGE=1]="MERGE",t[t.ACK_USER_WRITE=2]="ACK_USER_WRITE",t[t.LISTEN_COMPLETE=3]="LISTEN_COMPLETE";class _d{constructor(e,t,r){this.path=e,this.affectedTree=t,this.revert=r,this.type=tu.ACK_USER_WRITE,this.source=gd()}operationForChild(e){var t;return b(this.path)?null!=this.affectedTree.value?(g(this.affectedTree.children.isEmpty(),"affectedTree should not have overlapping affected paths."),this):(t=this.affectedTree.subtree(new f(e)),new _d(v(),t,this.revert)):(g(_(this.path)===e,"operationForChild called for unrelated child."),new _d(y(this.path),this.affectedTree,this.revert))}}class yd{constructor(e,t){this.source=e,this.path=t,this.type=tu.LISTEN_COMPLETE}operationForChild(e){return b(this.path)?new yd(this.source,v()):new yd(this.source,y(this.path))}}class wd{constructor(e,t,r){this.source=e,this.path=t,this.snap=r,this.type=tu.OVERWRITE}operationForChild(e){return b(this.path)?new wd(this.source,v(),this.snap.getImmediateChild(e)):new wd(this.source,y(this.path),this.snap)}}class bd{constructor(e,t,r){this.source=e,this.path=t,this.children=r,this.type=tu.MERGE}operationForChild(e){var t;return b(this.path)?(t=this.children.subtree(new f(e))).isEmpty()?null:t.value?new wd(this.source,v(),t.value):new bd(this.source,v(),t):(g(_(this.path)===e,"Can't get a merge for a child not on the path of the operation"),new bd(this.source,y(this.path),this.children))}toString(){return"Operation("+this.path+": "+this.source.toString()+" merge: "+this.children.toString()+")"}}class Id{constructor(e,t,r){this.node_=e,this.fullyInitialized_=t,this.filtered_=r}isFullyInitialized(){return this.fullyInitialized_}isFiltered(){return this.filtered_}isCompleteForPath(e){var t;return b(e)?this.isFullyInitialized()&&!this.filtered_:(t=_(e),this.isCompleteForChild(t))}isCompleteForChild(e){return this.isFullyInitialized()&&!this.filtered_||this.node_.hasChild(e)}getNode(){return this.node_}}class Td{constructor(e){this.query_=e,this.index_=this.query_._queryParams.getIndex()}}function Ed(r,e,t,n){var i=[];let s=[];return e.forEach(e=>{var t;"child_changed"===e.type&&r.index_.indexedValueChanged(e.oldSnap,e.snapshotNode)&&s.push((t=e.childName,{type:"child_moved",snapshotNode:e.snapshotNode,childName:t}))}),Cd(r,i,"child_removed",e,n,t),Cd(r,i,"child_added",e,n,t),Cd(r,i,"child_moved",s,n,t),Cd(r,i,"child_changed",e,n,t),Cd(r,i,"value",e,n,t),i}function Cd(s,a,t,e,o,l){var r=e.filter(e=>e.type===t);r.sort((e,t)=>{var r=s;if(null==e.childName||null==t.childName)throw B("Should only compare child_ events.");var n=new p(e.childName,e.snapshotNode),i=new p(t.childName,t.snapshotNode);return r.index_.compare(n,i)}),r.forEach(t=>{e=s,i=l,"value"!==(n=t).type&&"child_removed"!==n.type&&(n.prevName=i.getPredecessorChildName(n.childName,n.snapshotNode,e.index_));let r=n;var e,n,i;o.forEach(e=>{e.respondsTo(t.type)&&a.push(e.createEvent(r,s.query_))})})}function Sd(e,t){return{eventCache:e,serverCache:t}}function kd(e,t,r,n){return Sd(new Id(t,r,n),e.serverCache)}function Ad(e,t,r,n){return Sd(e.eventCache,new Id(t,r,n))}function Nd(e){return e.eventCache.isFullyInitialized()?e.eventCache.getNode():null}function Rd(e){return e.serverCache.isFullyInitialized()?e.serverCache.getNode():null}let Pd;class Dd{static fromObject(e){let r=new Dd(null);return Cu(e,(e,t)=>{r=r.set(new f(e),t)}),r}constructor(e,t=Pd=Pd||new Ec(su)){this.value=e,this.children=t}isEmpty(){return null===this.value&&this.children.isEmpty()}findRootMostMatchingPathAndValue(e,t){var r,n;return null!=this.value&&t(this.value)?{path:v(),value:this.value}:!b(e)&&(r=_(e),null!==(n=this.children.get(r)))&&null!=(n=n.findRootMostMatchingPathAndValue(y(e),t))?{path:oc(new f(r),n.path),value:n.value}:null}findRootMostValueAndPath(e){return this.findRootMostMatchingPathAndValue(e,()=>!0)}subtree(e){var t;return b(e)?this:(t=_(e),null!==(t=this.children.get(t))?t.subtree(y(e)):new Dd(null))}set(e,t){var r,n;return b(e)?new Dd(t,this.children):(n=_(e),r=(this.children.get(n)||new Dd(null)).set(y(e),t),n=this.children.insert(n,r),new Dd(this.value,n))}remove(t){if(b(t))return this.children.isEmpty()?new Dd(null):new Dd(null,this.children);var r=_(t),n=this.children.get(r);if(n){n=n.remove(y(t));let e;return e=n.isEmpty()?this.children.remove(r):this.children.insert(r,n),null===this.value&&e.isEmpty()?new Dd(null):new Dd(this.value,e)}return this}get(e){var t;return b(e)?this.value:(t=_(e),(t=this.children.get(t))?t.get(y(e)):null)}setTree(t,r){if(b(t))return r;{var n=_(t),i=(this.children.get(n)||new Dd(null)).setTree(y(t),r);let e;return e=i.isEmpty()?this.children.remove(n):this.children.insert(n,i),new Dd(this.value,e)}}fold(e){return this.fold_(v(),e)}fold_(r,n){let i={};return this.children.inorderTraversal((e,t)=>{i[e]=t.fold_(oc(r,e),n)}),n(r,this.value,i)}findOnPath(e,t){return this.findOnPath_(e,v(),t)}findOnPath_(e,t,r){var n,i=!!this.value&&r(t,this.value);return i||(!b(e)&&(i=_(e),n=this.children.get(i))?n.findOnPath_(y(e),oc(t,i),r):null)}foreachOnPath(e,t){return this.foreachOnPath_(e,v(),t)}foreachOnPath_(e,t,r){var n,i;return b(e)?this:(this.value&&r(t,this.value),n=_(e),(i=this.children.get(n))?i.foreachOnPath_(y(e),oc(t,n),r):new Dd(null))}foreach(e){this.foreach_(v(),e)}foreach_(r,n){this.children.inorderTraversal((e,t)=>{t.foreach_(oc(r,e),n)}),this.value&&n(r,this.value)}foreachChild(r){this.children.inorderTraversal((e,t)=>{t.value&&r(e,t.value)})}}class xd{constructor(e){this.writeTree_=e}static empty(){return new xd(new Dd(null))}}function Od(t,r,n){if(b(r))return new xd(new Dd(n));var i=t.writeTree_.findRootMostValueAndPath(r);if(null==i)return s=new Dd(n),s=t.writeTree_.setTree(r,s),new xd(s);{var s=i.path;let e=i.value;i=lc(s,r);return e=e.updateChild(i,n),new xd(t.writeTree_.set(s,e))}}function Md(e,r,t){let n=e;return Cu(t,(e,t)=>{n=Od(n,oc(r,e),t)}),n}function Ld(e,t){var r;return b(t)?xd.empty():(r=e.writeTree_.setTree(t,new Dd(null)),new xd(r))}function Fd(e,t){return null!=Ud(e,t)}function Ud(e,t){var r=e.writeTree_.findRootMostValueAndPath(t);return null!=r?e.writeTree_.get(r.path).getChild(lc(r.path,t)):null}function Vd(e){let r=[];var t=e.writeTree_.value;return null!=t?t.isLeafNode()||t.forEachChild(I,(e,t)=>{r.push(new p(e,t))}):e.writeTree_.children.inorderTraversal((e,t)=>{null!=t.value&&r.push(new p(e,t.value))}),r}function qd(e,t){var r;return b(t)?e:null!=(r=Ud(e,t))?new xd(new Dd(r)):new xd(e.writeTree_.subtree(t))}function Bd(e){return e.writeTree_.isEmpty()}function jd(e,t){return function n(i,e,s){{if(null!=e.value)return s.updateChild(i,e.value);{let r=null;return e.children.inorderTraversal((e,t)=>{".priority"===e?(g(null!==t.value,"Priority writes must always be leaf nodes"),r=t.value):s=n(oc(i,e),t,s)}),s=s.getChild(i).isEmpty()||null===r?s:s.updateChild(oc(i,".priority"),r)}}}(v(),e.writeTree_,t)}function zd(e,t){return tp(t,e)}function Kd(t,r){var e,n=t.allWrites.findIndex(e=>e.writeId===r);g(0<=n,"removeWrite called with nonexistent writeId.");let i=t.allWrites[n],s=(t.allWrites.splice(n,1),i.visible),a=!1,o=t.allWrites.length-1;for(;s&&0<=o;){var l=t.allWrites[o];l.visible&&(o>=n&&((e,t)=>{if(e.snap)return cc(e.path,t);for(var r in e.children)if(e.children.hasOwnProperty(r)&&cc(oc(e.path,r),t))return 1})(l,i.path)?s=!1:cc(i.path,l.path)&&(a=!0)),o--}return!!s&&(a?((e=t).visibleWrites=Hd(e.allWrites,Wd,v()),0<e.allWrites.length?e.lastWriteId=e.allWrites[e.allWrites.length-1].writeId:e.lastWriteId=-1):i.snap?t.visibleWrites=Ld(t.visibleWrites,i.path):Cu(i.children,e=>{t.visibleWrites=Ld(t.visibleWrites,oc(i.path,e))}),!0)}function Wd(e){return e.visible}function Hd(e,t,r){let n=xd.empty();for(let a=0;a<e.length;++a){var i=e[a];if(t(i)){var s=i.path;let e;if(i.snap)cc(r,s)?(e=lc(r,s),n=Od(n,e,i.snap)):cc(s,r)&&(e=lc(s,r),n=Od(n,v(),i.snap.getChild(e)));else{if(!i.children)throw B("WriteRecord should have .snap or .children");cc(r,s)?(e=lc(r,s),n=Md(n,e,i.children)):cc(s,r)&&(b(e=lc(s,r))?n=Md(n,v(),i.children):(s=Se(i.children,_(e)))&&(i=s.getChild(y(e)),n=Od(n,v(),i)))}}}return n}function Gd(e,t,r,n,i){var s;return n||i?(s=qd(e.visibleWrites,t),!i&&Bd(s)?r:i||null!=r||Fd(s,v())?jd(Hd(e.allWrites,function(e){return(e.visible||i)&&(!n||!~n.indexOf(e.writeId))&&(cc(e.path,t)||cc(t,e.path))},t),r||T.EMPTY_NODE):null):null!=(s=Ud(e.visibleWrites,t))?s:Bd(s=qd(e.visibleWrites,t))?r:null!=r||Fd(s,v())?jd(s,r||T.EMPTY_NODE):null}function $d(e,t,r,n){return Gd(e.writeTree,e.treePath,t,r,n)}function Qd(e,t){{var r=e.writeTree;e=e.treePath;let i=T.EMPTY_NODE;var n=Ud(r.visibleWrites,e);if(n)n.isLeafNode()||n.forEachChild(I,(e,t)=>{i=i.updateImmediateChild(e,t)});else if(t){let n=qd(r.visibleWrites,e);t.forEachChild(I,(e,t)=>{var r=jd(qd(n,new f(e)),t);i=i.updateImmediateChild(e,r)}),Vd(n).forEach(e=>{i=i.updateImmediateChild(e.name,e.node)})}else Vd(qd(r.visibleWrites,e)).forEach(e=>{i=i.updateImmediateChild(e.name,e.node)});return i}}function Yd(e,t,r,n){return i=e.writeTree,e=e.treePath,t=t,r=r,n=n,g(r||n,"Either existingEventSnap or existingServerSnap must exist"),s=oc(e,t),Fd(i.visibleWrites,s)?null:Bd(s=qd(i.visibleWrites,s))?n.getChild(t):jd(s,n.getChild(t));var i,s}function Jd(e,t){return r=e.writeTree,e=oc(e.treePath,t),Ud(r.visibleWrites,e);var r}function Xd(e,r,n,i,s,a){{var o=e.writeTree,l=(e=e.treePath,n),h=i;n=s,i=a;let t;var u=qd(o.visibleWrites,e),c=Ud(u,v());if(null!=c)t=c;else{if(null==r)return[];t=jd(u,r)}if((t=t.withIndex(i)).isEmpty()||t.isLeafNode())return[];{var d=[],p=i.getCompare(),f=n?t.getReverseIteratorFrom(l,i):t.getIteratorFrom(l,i);let e=f.getNext();for(;e&&d.length<h;)0!==p(e,l)&&d.push(e),e=f.getNext();return d}}}function Zd(e,t,r){return n=e.writeTree,r=r,i=oc(e.treePath,e=t),null!=(s=Ud(n.visibleWrites,i))?s:r.isCompleteForChild(e)?jd(qd(n.visibleWrites,i),r.getNode().getImmediateChild(e)):null;var n,i,s}function ep(e,t){return tp(oc(e.treePath,t),e.writeTree)}function tp(e,t){return{treePath:e,writeTree:t}}class rp{constructor(){this.changeMap=new Map}trackChildChange(e){var t=e.type,r=e.childName,n=(g("child_added"===t||"child_changed"===t||"child_removed"===t,"Only child changes supported for tracking"),g(".priority"!==r,"Only non-priority child changes can be tracked."),this.changeMap.get(r));if(n){var i=n.type;if("child_added"===t&&"child_removed"===i)this.changeMap.set(r,Xc(r,e.snapshotNode,n.snapshotNode));else if("child_removed"===t&&"child_added"===i)this.changeMap.delete(r);else if("child_removed"===t&&"child_changed"===i)this.changeMap.set(r,Jc(r,n.oldSnap));else if("child_changed"===t&&"child_added"===i)this.changeMap.set(r,Yc(r,e.snapshotNode));else{if("child_changed"!==t||"child_changed"!==i)throw B("Illegal combination of changes: "+e+" occurred after "+n);this.changeMap.set(r,Xc(r,e.snapshotNode,n.oldSnap))}}else this.changeMap.set(r,e)}getChanges(){return Array.from(this.changeMap.values())}}let np=new class{getCompleteChild(e){return null}getChildAfterChild(e,t,r){return null}};class ip{constructor(e,t,r=null){this.writes_=e,this.viewCache_=t,this.optCompleteServerCache_=r}getCompleteChild(e){var t=this.viewCache_.eventCache;return t.isCompleteForChild(e)?t.getNode().getImmediateChild(e):(t=null!=this.optCompleteServerCache_?new Id(this.optCompleteServerCache_,!0,!1):this.viewCache_.serverCache,Zd(this.writes_,e,t))}getChildAfterChild(e,t,r){var n=null!=this.optCompleteServerCache_?this.optCompleteServerCache_:Rd(this.viewCache_),n=Xd(this.writes_,n,t,1,r,e);return 0===n.length?null:n[0]}}function sp(e,t,r,n,i){var s=new rp;let a,o;if(r.type===tu.OVERWRITE){var l=r;a=l.source.fromUser?lp(e,t,l.path,l.snap,n,i,s):(g(l.source.fromServer,"Unknown source."),o=l.source.tagged||t.serverCache.isFiltered()&&!b(l.path),op(e,t,l.path,l.snap,n,i,o,s))}else if(r.type===tu.MERGE){var l=r;a=l.source.fromUser?((n,i,s,e,a,o,l)=>{let h=i;return e.foreach((e,t)=>{var r=oc(s,e);hp(i,_(r))&&(h=lp(n,h,r,t,a,o,l))}),e.foreach((e,t)=>{var r=oc(s,e);hp(i,_(r))||(h=lp(n,h,r,t,a,o,l))}),h})(e,t,l.path,l.children,n,i,s):(g(l.source.fromServer,"Unknown source."),o=l.source.tagged||t.serverCache.isFiltered(),cp(e,t,l.path,l.children,n,i,o,s))}else if(r.type===tu.ACK_USER_WRITE){l=r;a=l.revert?((r,n,i,s,e,a)=>{let o;if(null!=Jd(s,i))return n;{var l=new ip(s,n,e),h=n.eventCache.getNode();let t;if(b(i)||".priority"===_(i)){let e;e=e=n.serverCache.isFullyInitialized()?$d(s,Rd(n)):(u=n.serverCache.getNode(),g(u instanceof T,"serverChildren would be complete if leaf node"),Qd(s,u)),t=r.filter.updateFullNode(h,e,a)}else{var u=_(i);let e=Zd(s,u,n.serverCache);null==e&&n.serverCache.isCompleteForChild(u)&&(e=h.getImmediateChild(u)),(t=null!=e?r.filter.updateChild(h,u,e,y(i),l,a):n.eventCache.getNode().hasChild(u)?r.filter.updateChild(h,u,T.EMPTY_NODE,y(i),l,a):h).isEmpty()&&n.serverCache.isFullyInitialized()&&(o=$d(s,Rd(n))).isLeafNode()&&(t=r.filter.updateFullNode(t,o,a))}return o=n.serverCache.isFullyInitialized()||null!=Jd(s,v()),kd(n,t,o,r.filter.filtersNodes())}})(e,t,l.path,n,i,s):((e,t,i,r,s,a,o)=>{if(null!=Jd(s,i))return t;let l=t.serverCache.isFiltered(),h=t.serverCache;if(null!=r.value){if(b(i)&&h.isFullyInitialized()||h.isCompleteForPath(i))return op(e,t,i,h.getNode().getChild(i),s,a,l,o);if(b(i)){let r=new Dd(null);return h.getNode().forEachChild(wc,(e,t)=>{r=r.set(new f(e),t)}),cp(e,t,i,r,s,a,l,o)}return t}{let n=new Dd(null);return r.foreach((e,t)=>{var r=oc(i,e);h.isCompleteForPath(r)&&(n=n.set(e,h.getNode().getChild(r)))}),cp(e,t,i,n,s,a,l,o)}})(e,t,l.path,l.affectedTree,n,i,s)}else{if(r.type!==tu.LISTEN_COMPLETE)throw B("Unknown operation type: "+r.type);a=(i=e,e=r.path,r=n,n=s,l=t.serverCache,l=Ad(t,l.getNode(),l.isFullyInitialized()||b(e),l.isFiltered()),ap(i,l,e,r,np,n))}var h,u,s=s.getChanges(),i=t,e=a,r=s,c=e.eventCache;return c.isFullyInitialized()&&(h=c.getNode().isLeafNode()||c.getNode().isEmpty(),u=Nd(i),0<r.length||!i.eventCache.isFullyInitialized()||h&&!c.getNode().equals(u)||!c.getNode().getPriority().equals(u.getPriority()))&&r.push(Qc(Nd(e))),{viewCache:a,changes:s}}function ap(n,i,s,a,o,l){var h=i.eventCache;if(null!=Jd(a,s))return i;{let t,r;if(b(s))g(i.serverCache.isFullyInitialized(),"If change path is empty, we must have complete server data"),t=i.serverCache.isFiltered()?(u=Qd(a,(u=Rd(i))instanceof T?u:T.EMPTY_NODE),n.filter.updateFullNode(i.eventCache.getNode(),u,l)):(u=$d(a,Rd(i)),n.filter.updateFullNode(i.eventCache.getNode(),u,l));else{var u=_(s);if(".priority"===u){g(1===nc(s),"Can't have a priority with additional path components");var c=h.getNode(),d=Yd(a,s,c,r=i.serverCache.getNode());t=null!=d?n.filter.updatePriority(c,d):h.getNode()}else{c=y(s);let e;e=h.isCompleteForChild(u)?(r=i.serverCache.getNode(),null!=(d=Yd(a,s,h.getNode(),r))?h.getNode().getImmediateChild(u).updateChild(c,d):h.getNode().getImmediateChild(u)):Zd(a,u,i.serverCache),t=null!=e?n.filter.updateChild(h.getNode(),u,e,c,o,l):h.getNode()}}return kd(i,t,h.isFullyInitialized()||b(s),n.filter.filtersNodes())}}function op(e,t,r,n,i,s,a,o){var l=t.serverCache;let h;var u=a?e.filter:e.filter.getIndexedFilter();if(b(r))h=u.updateFullNode(l.getNode(),n,null);else if(u.filtersNodes()&&!l.isFiltered()){var c=l.getNode().updateChild(r,n);h=u.updateFullNode(l.getNode(),c,null)}else{c=_(r);if(!l.isCompleteForPath(r)&&1<nc(r))return t;var d=y(r),p=l.getNode().getImmediateChild(c).updateChild(d,n);h=".priority"===c?u.updatePriority(l.getNode(),p):u.updateChild(l.getNode(),c,p,d,np,null)}c=Ad(t,h,l.isFullyInitialized()||b(r),u.filtersNodes());return ap(e,c,r,i,new ip(i,c,s),o)}function lp(t,r,n,i,e,s,a){var o=r.eventCache;let l,h;var u=new ip(e,r,s);if(b(n))h=t.filter.updateFullNode(r.eventCache.getNode(),i,a),l=kd(r,h,!0,t.filter.filtersNodes());else{var c=_(n);if(".priority"===c)h=t.filter.updatePriority(r.eventCache.getNode(),i),l=kd(r,h,o.isFullyInitialized(),o.isFiltered());else{var d,p=y(n),f=o.getNode().getImmediateChild(c);let e;e=b(p)?i:null!=(d=u.getCompleteChild(c))?".priority"===ic(p)&&d.getChild(ac(p)).isEmpty()?d:d.updateChild(p,i):T.EMPTY_NODE,l=f.equals(e)?r:kd(r,t.filter.updateChild(o.getNode(),c,e,p,u,a),o.isFullyInitialized(),t.filter.filtersNodes())}}return l}function hp(e,t){return e.eventCache.isCompleteForChild(t)}function up(e,r,t){return t.foreach((e,t)=>{r=r.updateChild(e,t)}),r}function cp(n,i,e,t,s,a,o,l){if(i.serverCache.getNode().isEmpty()&&!i.serverCache.isFullyInitialized())return i;let h=i,r,u=(r=b(e)?t:new Dd(null).setTree(e,t),i.serverCache.getNode());return r.children.inorderTraversal((e,t)=>{var r;u.hasChild(e)&&(r=up(0,i.serverCache.getNode().getImmediateChild(e),t),h=op(n,h,new f(e),r,s,a,o,l))}),r.children.inorderTraversal((e,t)=>{var r=!i.serverCache.isCompleteForChild(e)&&null===t.value;u.hasChild(e)||r||(r=up(0,i.serverCache.getNode().getImmediateChild(e),t),h=op(n,h,new f(e),r,s,a,o,l))}),h}class dp{constructor(e,t){this.query_=e,this.eventRegistrations_=[];var r=this.query_._queryParams,n=new Zc(r.getIndex()),r=(e=r).loadsAllData()?new Zc(e.getIndex()):new(e.hasLimit()?td:ed)(e),i=(this.processor_={filter:r},t.serverCache),s=t.eventCache,a=n.updateFullNode(T.EMPTY_NODE,i.getNode(),null),o=r.updateFullNode(T.EMPTY_NODE,s.getNode(),null),a=new Id(a,i.isFullyInitialized(),n.filtersNodes()),i=new Id(o,s.isFullyInitialized(),r.filtersNodes());this.viewCache_=Sd(i,a),this.eventGenerator_=new Td(this.query_)}get query(){return this.query_}}function pp(e){return 0===e.eventRegistrations_.length}function fp(n,i,s){let a=[];if(s){g(null==i,"A cancel should cancel all event registrations.");let r=n.query._path;n.eventRegistrations_.forEach(e=>{var t=e.createCancelEvent(s,r);t&&a.push(t)})}if(i){let e=[];for(let t=0;t<n.eventRegistrations_.length;++t){var r=n.eventRegistrations_[t];if(r.matches(i)){if(i.hasAnyCallback()){e=e.concat(n.eventRegistrations_.slice(t+1));break}}else e.push(r)}n.eventRegistrations_=e}else n.eventRegistrations_=[];return a}function gp(e,t,r,n){t.type===tu.MERGE&&null!==t.source.queryId&&(g(Rd(e.viewCache_),"We should always have a full cache before handling merges"),g(Nd(e.viewCache_),"Missing event cache, even though we have a server cache"));var i=e.viewCache_,s=sp(e.processor_,i,t,r,n);return t=e.processor_,r=s.viewCache,g(r.eventCache.getNode().isIndexed(t.filter.getIndex()),"Event snap not indexed"),g(r.serverCache.getNode().isIndexed(t.filter.getIndex()),"Server snap not indexed"),g(s.viewCache.serverCache.isFullyInitialized()||!i.serverCache.isFullyInitialized(),"Once a server snap is complete, it should never go back"),e.viewCache_=s.viewCache,mp(e,s.changes,s.viewCache.eventCache.getNode(),null)}function mp(e,t,r,n){var i=n?[n]:e.eventRegistrations_;return Ed(e.eventGenerator_,t,r,i)}let vp;class _p{constructor(){this.views=new Map}}function yp(t,r,n,i){var e=r.source.queryId;if(null!==e)return e=t.views.get(e),g(null!=e,"SyncTree gave us an op for an invalid query."),gp(e,r,n,i);{let e=[];for(var s of t.views.values())e=e.concat(gp(s,r,n,i));return e}}function wp(e,r,n,i,s){var a=r._queryIdentifier,a=e.views.get(a);if(a)return a;{let e=$d(n,s?i:null),t=!1;t=!!e||(e=i instanceof T?Qd(n,i):T.EMPTY_NODE,!1);a=Sd(new Id(e,t,!1),new Id(i,s,!1));return new dp(r,a)}}function bp(e,t,n,i,s,r){var a=wp(e,t,i,s,r);e.views.has(t._queryIdentifier)||e.views.set(t._queryIdentifier,a),a.eventRegistrations_.push(n);{s=n,a=(i=a).viewCache_.eventCache;let r=[];return a.getNode().isLeafNode()||a.getNode().forEachChild(I,(e,t)=>{r.push(Yc(e,t))}),a.isFullyInitialized()&&r.push(Qc(a.getNode())),mp(i,r,a.getNode(),s)}}function Ip(e,t,r,n){var i=t._queryIdentifier,s=[];let a=[];var o=kp(e);if("default"===i)for(var[l,h]of e.views.entries())a=a.concat(fp(h,r,n)),pp(h)&&(e.views.delete(l),h.query._queryParams.loadsAllData()||s.push(h.query));else{var u=e.views.get(i);u&&(a=a.concat(fp(u,r,n)),pp(u))&&(e.views.delete(i),u.query._queryParams.loadsAllData()||s.push(u.query))}return o&&!kp(e)&&s.push((g(vp,"Reference.ts has not been loaded"),new vp(t._repo,t._path))),{removed:s,events:a}}function Tp(e){var t,r=[];for(t of e.views.values())t.query._queryParams.loadsAllData()||r.push(t);return r}function Ep(e,t){let r=null;for(var n of e.views.values())r=r||(i=n,s=t,n=void 0,(n=Rd(i.viewCache_))&&(i.query._queryParams.loadsAllData()||!b(s)&&!n.getImmediateChild(_(s)).isEmpty())?n.getChild(s):null);var i,s;return r}function Cp(e,t){var r;return t._queryParams.loadsAllData()?Ap(e):(r=t._queryIdentifier,e.views.get(r))}function Sp(e,t){return null!=Cp(e,t)}function kp(e){return null!=Ap(e)}function Ap(e){for(var t of e.views.values())if(t.query._queryParams.loadsAllData())return t;return null}let Np;let Rp=1;class Pp{constructor(e){this.listenProvider_=e,this.syncPointTree_=new Dd(null),this.pendingWriteTree_={visibleWrites:xd.empty(),allWrites:[],lastWriteId:-1},this.tagToQueryMap=new Map,this.queryToTagMap=new Map}}function Dp(e,t,r,n,i){var s,a,o,l;return s=e.pendingWriteTree_,a=t,o=r,n=n,l=i,g(n>s.lastWriteId,"Stacking an older write on top of newer ones"),s.allWrites.push({path:a,snap:o,writeId:n,visible:l=void 0===l?!0:l}),l&&(s.visibleWrites=Od(s.visibleWrites,a,o)),s.lastWriteId=n,i?Bp(e,new wd(gd(),t,r)):[]}function xp(e,t,r,n){i=e.pendingWriteTree_,s=t,a=r,n=n,g(n>i.lastWriteId,"Stacking an older merge on top of newer ones"),i.allWrites.push({path:s,children:a,writeId:n,visible:!0}),i.visibleWrites=Md(i.visibleWrites,s,a),i.lastWriteId=n;var i,s,a,o=Dd.fromObject(r);return Bp(e,new bd(gd(),t,o))}function Op(e,t,r=!1){var n=((e,t)=>{for(let n=0;n<e.allWrites.length;n++){var r=e.allWrites[n];if(r.writeId===t)return r}return null})(e.pendingWriteTree_,t);if(Kd(e.pendingWriteTree_,t)){let t=new Dd(null);return null!=n.snap?t=t.set(v(),!0):Cu(n.children,e=>{t=t.set(new f(e),!0)}),Bp(e,new _d(n.path,t,r))}return[]}function Mp(e,t,r){return Bp(e,new wd(md(),t,r))}function Lp(r,t,n,i,s=!1){var a=t._path,o=r.syncPointTree_.get(a);let l=[];if(o&&("default"===t._queryIdentifier||Sp(o,t))){var h=Ip(o,t,n,i),o=(0===o.views.size&&(r.syncPointTree_=r.syncPointTree_.remove(a)),h.removed);if(l=h.events,!s){var h=-1!==o.findIndex(e=>e._queryParams.loadsAllData()),u=r.syncPointTree_.findOnPath(a,(e,t)=>kp(t));if(h&&!u){a=r.syncPointTree_.subtree(a);if(!a.isEmpty()){var c=a.fold((e,t,n)=>{if(t&&kp(t))return[Ap(t)];{let r=[];return t&&(r=Tp(t)),Cu(n,(e,t)=>{r=r.concat(t)}),r}});for(let e=0;e<c.length;++e){var d=c[e],p=d.query,d=zp(r,d);r.listenProvider_.startListening(Qp(p),Kp(r,p),d.hashFn,d.onComplete)}}}!u&&0<o.length&&!i&&(h?r.listenProvider_.stopListening(Qp(t),null):o.forEach(e=>{var t=r.queryToTagMap.get(Wp(e));r.listenProvider_.stopListening(Qp(e),t)}))}var f=r,g=o;for(let e=0;e<g.length;++e){var m,v=g[e];v._queryParams.loadsAllData()||(v=Wp(v),m=f.queryToTagMap.get(v),f.queryToTagMap.delete(v),f.tagToQueryMap.delete(m))}}return l}function Fp(e,t,r,n){var i,s,a=Hp(e,n);return null!=a?(i=(a=Gp(a)).path,a=a.queryId,s=lc(i,t),$p(e,i,new wd(vd(a),s,r))):[]}function Up(e,t,r,n=!1){let i=t._path,s=null,a=!1,o=(e.syncPointTree_.foreachOnPath(i,(e,t)=>{var r=lc(e,i);s=s||Ep(t,r),a=a||kp(t)}),e.syncPointTree_.get(i));o?(a=a||kp(o),s=s||Ep(o,v())):(o=new _p,e.syncPointTree_=e.syncPointTree_.set(i,o));let l;null!=s?l=!0:(l=!1,s=T.EMPTY_NODE,e.syncPointTree_.subtree(i).foreachChild((e,t)=>{var r=Ep(t,v());r&&(s=s.updateImmediateChild(e,r))}));var h,u=Sp(o,t),c=(u||t._queryParams.loadsAllData()||(h=Wp(t),g(!e.queryToTagMap.has(h),"View does not exist, but we have a tag"),c=Rp++,e.queryToTagMap.set(h,c),e.tagToQueryMap.set(c,h)),zd(e.pendingWriteTree_,i));let d=bp(o,t,r,c,s,l);return u||a||n||(h=Cp(o,t),d=d.concat(((t,e,r)=>{var n=e._path,i=Kp(t,e),s=zp(t,r),s=t.listenProvider_.startListening(Qp(e),i,s.hashFn,s.onComplete),n=t.syncPointTree_.subtree(n);if(i)g(!kp(n.value),"If we're adding a query, it shouldn't be shadowed");else{var a=n.fold((e,t,n)=>{if(!b(e)&&t&&kp(t))return[Ap(t).query];{let r=[];return t&&(r=r.concat(Tp(t).map(e=>e.query))),Cu(n,(e,t)=>{r=r.concat(t)}),r}});for(let e=0;e<a.length;++e){var o=a[e];t.listenProvider_.stopListening(Qp(o),Kp(t,o))}}return s})(e,t,h))),d}function Vp(e,n,t){var r=e.pendingWriteTree_,i=e.syncPointTree_.findOnPath(n,(e,t)=>{var r=Ep(t,lc(e,n));if(r)return r});return Gd(r,n,i,t,!0)}function qp(e,t){let n=t._path,i=null,r=(e.syncPointTree_.foreachOnPath(n,(e,t)=>{var r=lc(e,n);i=i||Ep(t,r)}),e.syncPointTree_.get(n));r?i=i||Ep(r,v()):(r=new _p,e.syncPointTree_=e.syncPointTree_.set(n,r));var s=null!=i,a=s?new Id(i,!0,!1):null,o=zd(e.pendingWriteTree_,t._path);return Nd(wp(r,t,o,s?a.getNode():T.EMPTY_NODE,s).viewCache_)}function Bp(e,t){return function a(t,o,l,h){{if(b(t.path))return jp(t,o,l,h);{let e=o.get(v()),r=(null==l&&null!=e&&(l=Ep(e,v())),[]),n=_(t.path),i=t.operationForChild(n),s=o.children.get(n);if(s&&i){let e=l?l.getImmediateChild(n):null,t=ep(h,n);r=r.concat(a(i,s,e,t))}return r=e?r.concat(yp(e,t,h,l)):r}}}(t,e.syncPointTree_,null,zd(e.pendingWriteTree_,v()))}function jp(s,e,a,o){var t=e.get(v());null==a&&null!=t&&(a=Ep(t,v()));let l=[];return e.children.inorderTraversal((e,t)=>{var r=a?a.getImmediateChild(e):null,n=ep(o,e),i=s.operationForChild(e);i&&(l=l.concat(jp(i,t,r,n)))}),l=t?l.concat(yp(t,s,o,a)):l}function zp(o,e){let l=e.query,h=Kp(o,l);return{hashFn:()=>(e.viewCache_.serverCache.getNode()||T.EMPTY_NODE).hash(),onComplete:e=>{var t,r,n,i,s,a;return"ok"===e?h?(t=o,r=l._path,n=h,(a=Hp(t,n))?(i=(a=Gp(a)).path,a=a.queryId,s=lc(i,r),$p(t,i,new yd(vd(a),s))):[]):(n=o,r=l._path,Bp(n,new yd(md(),r))):(i=((e,t)=>{let r="Unknown Error";"too_big"===e?r="The data requested exceeds the maximum size that can be accessed with a single request.":"permission_denied"===e?r="Client doesn't have permission to access the desired data.":"unavailable"===e&&(r="The service is unavailable");var n=new Error(e+" at "+t._path.toString()+": "+r);return n.code=e.toUpperCase(),n})(e,l),Lp(o,l,null,i))}}}function Kp(e,t){var r=Wp(t);return e.queryToTagMap.get(r)}function Wp(e){return e._path.toString()+"$"+e._queryIdentifier}function Hp(e,t){return e.tagToQueryMap.get(t)}function Gp(e){var t=e.indexOf("$");return g(-1!==t&&t<e.length-1,"Bad queryKey."),{queryId:e.substr(t+1),path:new f(e.substr(0,t))}}function $p(e,t,r){var n=e.syncPointTree_.get(t),i=(g(n,"Missing sync point for query tag that we're tracking"),zd(e.pendingWriteTree_,t));return yp(n,r,i,null)}function Qp(e){return e._queryParams.loadsAllData()&&!e._queryParams.isDefault()?(g(Np,"Reference.ts has not been loaded"),new Np(e._repo,e._path)):e}class Yp{constructor(e){this.node_=e}getImmediateChild(e){var t=this.node_.getImmediateChild(e);return new Yp(t)}node(){return this.node_}}class Jp{constructor(e,t){this.syncTree_=e,this.path_=t}getImmediateChild(e){var t=oc(this.path_,e);return new Jp(this.syncTree_,t)}node(){return Vp(this.syncTree_,this.path_)}}let Xp=function(e){return(e=e||{}).timestamp=e.timestamp||(new Date).getTime(),e},Zp=function(e,t,r){return e&&"object"==typeof e?(g(".sv"in e,"Unexpected leaf node or priority contents"),"string"==typeof e[".sv"]?ef(e[".sv"],t,r):"object"==typeof e[".sv"]?tf(e[".sv"],t):void g(!1,"Unexpected server value: "+JSON.stringify(e,null,2))):e},ef=function(e,t,r){if("timestamp"===e)return r.timestamp;g(!1,"Unexpected server value: "+e)},tf=function(e,t,r){e.hasOwnProperty("increment")||g(!1,"Unexpected server value: "+JSON.stringify(e,null,2));var n=e.increment,i=("number"!=typeof n&&g(!1,"Unexpected increment value: "+n),t.node());return g(null!=i,"Expected ChildrenNode.EMPTY_NODE for nulls"),!i.isLeafNode()||"number"!=typeof(i=i.getValue())?n:i+n},rf=function(e,t,r,n){return sf(t,new Jp(r,e),n)},nf=function(e,t,r){return sf(e,new Yp(t),r)};function sf(e,n,i){var t,r,s=e.getPriority().val(),s=Zp(s,n.getImmediateChild(".priority"),i);let a;return e.isLeafNode()?(r=e,(t=Zp(r.getValue(),n,i))!==r.getValue()||s!==r.getPriority().val()?new Pc(t,Wc(s)):e):(r=e,s!==(a=r).getPriority().val()&&(a=a.updatePriority(new Pc(s))),r.forEachChild(I,(e,t)=>{var r=sf(t,n.getImmediateChild(e),i);r!==t&&(a=a.updateImmediateChild(e,r))}),a)}class af{constructor(e="",t=null,r={children:{},childCount:0}){this.name=e,this.parent=t,this.node=r}}function of(e,t){let r=t instanceof f?t:new f(t),n=e,i=_(r);for(;null!==i;){var s=Se(n.node.children,i)||{children:{},childCount:0};n=new af(i,n,s),r=y(r),i=_(r)}return n}function lf(e){return e.node.value}function hf(e,t){e.node.value=t,pf(e)}function uf(e){return 0<e.node.childCount}function cf(r,n){Cu(r.node.children,(e,t)=>{n(new af(e,r,t))})}function df(e){return new f(null===e.parent?e.name:df(e.parent)+"/"+e.name)}function pf(e){var t,r,n,i;null!==e.parent&&(t=e.parent,r=e.name,n=(e=>void 0===lf(e)&&!uf(e))(e=e),i=Ce(t.node.children,r),n&&i?(delete t.node.children[r],t.node.childCount--,pf(t)):n||i||(t.node.children[r]=e.node,t.node.childCount++,pf(t)))}function ff(e,t,r,n){n&&void 0===t||kf(Ue(e,"value"),t,r)}function gf(e,t,s,r){if(!r||void 0!==t){let n=Ue(e,"values");if(!t||"object"!=typeof t||Array.isArray(t))throw new Error(n+" must be an object containing the children to replace.");let i=[];Cu(t,(e,t)=>{var r=new f(e);if(kf(n,t,oc(s,r)),".priority"===ic(r)&&!Sf(t))throw new Error(n+"contains an invalid value for '"+r.toString()+"', which must be a valid Firebase priority (a string, finite number, server value, or null).");i.push(r)});{var a=n;var o=i;let t,r;for(t=0;t<o.length;t++){var l=sc(r=o[t]);for(let e=0;e<l.length;e++)if((".priority"!==l[e]||e!==l.length-1)&&!Tf(l[e]))throw new Error(a+"contains an invalid key ("+l[e]+") in path "+r.toString()+'. Keys must be non-empty strings and can\'t contain ".", "#", "$", "/", "[", or "]"')}o.sort(hc);let e=null;for(t=0;t<o.length;t++){if(r=o[t],null!==e&&cc(e,r))throw new Error(a+"contains a path "+e.toString()+" that is ancestor of another path "+r.toString());e=r}}}}function mf(e,t,r){if(!r||void 0!==t){if(bu(t))throw new Error(Ue(e,"priority")+"is "+t.toString()+", but must be a valid Firebase priority (a string, finite number, server value, or null).");if(!Sf(t))throw new Error(Ue(e,"priority")+"must be a valid Firebase priority (a string, finite number, server value, or null).")}}function vf(e,t,r,n){if(!(n&&void 0===r||Tf(r)))throw new Error(Ue(e,t)+'was an invalid key = "'+r+'". Firebase keys must be non-empty strings and can\'t contain ".", "#", "$", "/", "[", or "]").')}function _f(e,t,r,n){r=r&&r.replace(/^\/*\.info(\/|$)/,"/"),Af(e,t,r,n)}function yf(e,t){if(".info"===_(t))throw new Error(e+" failed = Can't modify data under /.info/")}let wf=/[\[\].#$\/\u0000-\u001F\u007F]/,bf=/[\[\].#$\u0000-\u001F\u007F]/,If=10485760,Tf=function(e){return"string"==typeof e&&0!==e.length&&!wf.test(e)},Ef=function(e){return"string"==typeof e&&0!==e.length&&!bf.test(e)},Cf=function(e){return e=e&&e.replace(/^\/*\.info(\/|$)/,"/"),Ef(e)},Sf=function(e){return null===e||"string"==typeof e||"number"==typeof e&&!bu(e)||e&&"object"==typeof e&&Ce(e,".sv")},kf=function(a,e,t){let o=t instanceof f?new dc(t,a):t;if(void 0===e)throw new Error(a+"contains undefined "+fc(o));if("function"==typeof e)throw new Error(a+"contains a function "+fc(o)+" with contents = "+e.toString());if(bu(e))throw new Error(a+"contains "+e.toString()+" "+fc(o));if("string"==typeof e&&e.length>If/3&&Be(e)>If)throw new Error(a+"contains a string greater than "+If+" utf8 bytes "+fc(o)+" ('"+e.substring(0,50)+"...')");if(e&&"object"==typeof e){let i=!1,s=!1;if(Cu(e,(e,t)=>{if(".value"===e)i=!0;else if(".priority"!==e&&".sv"!==e&&(s=!0,!Tf(e)))throw new Error(a+" contains an invalid key ("+e+") "+fc(o)+'. Keys must be non-empty strings and can\'t contain ".", "#", "$", "/", "[", or "]"');var r,n;r=o,e=e,0<r.parts_.length&&(r.byteLength_+=1),r.parts_.push(e),r.byteLength_+=Be(e),pc(r),kf(a,t,o),e=o,n=e.parts_.pop(),e.byteLength_-=Be(n),0<e.parts_.length&&--e.byteLength_}),i&&s)throw new Error(a+' contains ".value" child '+fc(o)+" in addition to actual children.")}},Af=function(e,t,r,n){if(!(n&&void 0===r||Ef(r)))throw new Error(Ue(e,t)+'was an invalid path = "'+r+'". Paths must be non-empty strings and can\'t contain ".", "#", "$", "[", or "]"')},Nf=function(e,t){var r=t.path.toString();if("string"!=typeof t.repoInfo.host||0===t.repoInfo.host.length||!Tf(t.repoInfo.namespace)&&"localhost"!==t.repoInfo.host.split(":")[0]||0!==r.length&&!Cf(r))throw new Error(Ue(e,"url")+'must be a valid firebase URL and the path can\'t contain ".", "#", "$", "[", or "]".')};class Rf{constructor(){this.eventLists_=[],this.recursionDepth_=0}}function Pf(e,t){let r=null;for(let s=0;s<t.length;s++){var n=t[s],i=n.getPath();null===r||uc(i,r.path)||(e.eventLists_.push(r),r=null),(r=null===r?{events:[],path:i}:r).events.push(n)}r&&e.eventLists_.push(r)}function Df(e,t,r){Pf(e,r),Of(e,e=>uc(e,t))}function xf(e,t,r){Pf(e,r),Of(e,e=>cc(e,t)||cc(t,e))}function Of(t,e){t.recursionDepth_++;let r=!0;for(let o=0;o<t.eventLists_.length;o++){var n=t.eventLists_[o];if(n)if(e(n.path)){s=a=i=void 0;var i=t.eventLists_[o];for(let e=0;e<i.events.length;e++){var s,a=i.events[e];null!==a&&(i.events[e]=null,s=a.getEventRunner(),fu&&vu("event: "+a.toString()),Du(s))}t.eventLists_[o]=null}else r=!1}r&&(t.eventLists_=[]),t.recursionDepth_--}let Mf="repo_interrupt",Lf=25;class Ff{constructor(e,t,r,n){this.repoInfo_=e,this.forceRestClient_=t,this.authTokenProvider_=r,this.appCheckProvider_=n,this.dataUpdateCount=0,this.statsListener_=null,this.eventQueue_=new Rf,this.nextWriteId_=1,this.interceptServerDataCallback_=null,this.onDisconnect_=ud(),this.transactionQueueTree_=new af,this.persistentConnection_=null,this.key=this.repoInfo_.toURLString()}toString(){return(this.repoInfo_.secure?"https://":"http://")+this.repoInfo_.host}}function Uf(a,e,t){if(a.stats_=Ku(a.repoInfo_),a.forceRestClient_||0<=("object"==typeof window&&window.navigator&&window.navigator.userAgent||"").search(/googlebot|google webmaster tools|bingbot|yahoo! slurp|baiduspider|yandexbot|duckduckbot/i))a.server_=new ld(a.repoInfo_,(e,t,r,n)=>{Bf(a,e,t,r,n)},a.authTokenProvider_,a.appCheckProvider_),setTimeout(()=>jf(a,!0),0);else{if(null!=t){if("object"!=typeof t)throw new Error("Only objects are supported for option databaseAuthVariableOverride");try{Te(t)}catch(e){throw new Error("Invalid authOverride provided: "+e)}}a.persistentConnection_=new mc(a.repoInfo_,e,(e,t,r,n)=>{Bf(a,e,t,r,n)},e=>{jf(a,e)},e=>{var r;r=a,Cu(e,(e,t)=>{zf(r,e,t)})},a.authTokenProvider_,a.appCheckProvider_,t),a.server_=a.persistentConnection_}var r;a.authTokenProvider_.addTokenChangeListener(e=>{a.server_.refreshAuthToken(e)}),a.appCheckProvider_.addTokenChangeListener(e=>{a.server_.refreshAppCheckToken(e.token)}),a.statsReporter_=(e=()=>new fd(a.stats_,a.server_),r=a.repoInfo_.toString(),zu[r]||(zu[r]=e()),zu[r]),a.infoData_=new hd,a.infoSyncTree_=new Pp({startListening:(e,t,r,n)=>{let i=[];var s=a.infoData_.getNode(e._path);return s.isEmpty()||(i=Mp(a.infoSyncTree_,e._path,s),setTimeout(()=>{n("ok")},0)),i},stopListening:()=>{}}),zf(a,"connected",!1),a.serverSyncTree_=new Pp({startListening:(n,e,t,i)=>(a.server_.listen(n,t,e,(e,t)=>{var r=i(e,t);xf(a.eventQueue_,n._path,r)}),[]),stopListening:(e,t)=>{a.server_.unlisten(e,t)}})}function Vf(e){var t=e.infoData_.getNode(new f(".info/serverTimeOffset")).val()||0;return(new Date).getTime()+t}function qf(e){return Xp({timestamp:Vf(e)})}function Bf(e,t,r,n,i){e.dataUpdateCount++;var s,a,o,l,h,u,c=new f(t);r=e.interceptServerDataCallback_?e.interceptServerDataCallback_(t,r):r;let d=[],p=c;0<(d=i?n?(u=Ae(r,e=>Wc(e)),t=e.serverSyncTree_,s=c,a=u,(u=Hp(t,i))?(o=(u=Gp(u)).path,u=u.queryId,l=lc(o,s),h=Dd.fromObject(a),$p(t,o,new bd(vd(u),l,h))):[]):(o=Wc(r),Fp(e.serverSyncTree_,c,o,i)):n?(u=Ae(r,e=>Wc(e)),s=e.serverSyncTree_,a=c,t=u,l=Dd.fromObject(t),Bp(s,new bd(md(),a,l))):(h=Wc(r),Mp(e.serverSyncTree_,c,h))).length&&(p=eg(e,c)),xf(e.eventQueue_,p,d)}function jf(e,t){if(zf(e,"connected",t),!1===t){var a=e;Yf(a,"onDisconnectEvents");let n=qf(a),i=ud(),s=(dd(a.onDisconnect_,v(),(e,t)=>{var r=rf(e,t,a.serverSyncTree_,n);cd(i,e,r)}),[]);dd(i,v(),(e,t)=>{s=s.concat(Mp(a.serverSyncTree_,e,t));var r=ig(a,e);eg(a,r)}),a.onDisconnect_=ud(),xf(a.eventQueue_,v(),s)}}function zf(e,t,r){var n=new f("/.info/"+t),i=Wc(r),i=(e.infoData_.updateSnapshot(n,i),Mp(e.infoSyncTree_,n,i));xf(e.eventQueue_,n,i)}function Kf(e){return e.nextWriteId_++}function Wf(n,i,e,t,s){Yf(n,"set",{path:i.toString(),value:e,priority:t});var r=qf(n),a=Wc(e,t),o=Vp(n.serverSyncTree_,i),o=nf(a,o,r);let l=Kf(n);r=Dp(n.serverSyncTree_,i,o,l,!0),Pf(n.eventQueue_,r),n.server_.put(i.toString(),a.val(!0),(e,t)=>{var r="ok"===e,r=(r||yu("set at "+i+" failed: "+e),Op(n.serverSyncTree_,l,!r));xf(n.eventQueue_,i,r),Jf(0,s,e,t)}),o=ig(n,i);eg(n,o),xf(n.eventQueue_,o,[])}function Hf(r,n,i){r.server_.onDisconnectCancel(n.toString(),(e,t)=>{"ok"===e&&!function e(r,t){var n;return b(t)?(r.value=null,r.children.clear(),!0):null!==r.value?!r.value.isLeafNode()&&(n=r.value,r.value=null,n.forEachChild(I,(e,t)=>{cd(r,new f(e),t)}),e(r,t)):!(0<r.children.size)||(n=_(t),t=y(t),r.children.has(n)&&e(r.children.get(n),t)&&r.children.delete(n),0===r.children.size)}(r.onDisconnect_,n),Jf(0,i,e,t)})}function Gf(r,n,e,i){let s=Wc(e);r.server_.onDisconnectPut(n.toString(),s.val(!0),(e,t)=>{"ok"===e&&cd(r.onDisconnect_,n,s),Jf(0,i,e,t)})}function $f(e,t,r){let n;n=".info"===_(t._path)?Lp(e.infoSyncTree_,t,r):Lp(e.serverSyncTree_,t,r),Df(e.eventQueue_,t._path,n)}function Qf(e){e.persistentConnection_&&e.persistentConnection_.interrupt(Mf)}function Yf(e,...t){let r="";e.persistentConnection_&&(r=e.persistentConnection_.id+":"),vu(r,...t)}function Jf(e,n,i,s){n&&Du(()=>{if("ok"===i)n(null);else{var t=(i||"error").toUpperCase();let e=t;s&&(e+=": "+s);var r=new Error(e);r.code=t,n(r)}})}function Xf(e,t,r){return Vp(e.serverSyncTree_,t,r)||T.EMPTY_NODE}function Zf(o,l=o.transactionQueueTree_){if(l||ng(o,l),lf(l)){var h=rg(o,l),e=(g(0<h.length,"Sending zero length transaction queue"),h.every(e=>0===e.status));if(e){var u=o;var c=df(l);var d=h;let e=d.map(e=>e.currentWriteId),t=Xf(u,c,e),r=t,n=t.hash();for(let a=0;a<d.length;a++){var p=d[a],f=(g(0===p.status,"tryToSendTransactionQueue_: items in queue should all be run."),p.status=1,p.retryCount++,lc(c,p.path));r=r.updateChild(f,p.currentOutputSnapshotRaw)}let i=r.val(!0),s=c;u.server_.put(s.toString(),i,t=>{Yf(u,"transaction put response",{path:s.toString(),status:t});let r=[];if("ok"===t){var n=[];for(let e=0;e<d.length;e++)d[e].status=2,r=r.concat(Op(u.serverSyncTree_,d[e].currentWriteId)),d[e].onComplete&&n.push(()=>d[e].onComplete(null,!0,d[e].currentOutputSnapshotResolved)),d[e].unwatcher();ng(u,of(u.transactionQueueTree_,c)),Zf(u,u.transactionQueueTree_),xf(u.eventQueue_,c,r);for(let t=0;t<n.length;t++)Du(n[t])}else{if("datastale"===t)for(let e=0;e<d.length;e++)3===d[e].status?d[e].status=4:d[e].status=0;else{yu("transaction at "+s.toString()+" failed: "+t);for(let e=0;e<d.length;e++)d[e].status=4,d[e].abortReason=t}eg(u,c)}},n)}}else uf(l)&&cf(l,e=>{Zf(o,e)})}function eg(e,t){var r=tg(e,t),n=df(r),r=rg(e,r),i=e,s=r,a=n;if(0!==s.length){var o=[];let r=[];var l=s.filter(e=>0===e.status).map(e=>e.currentWriteId);for(let n=0;n<s.length;n++){var h=s[n],u=lc(a,h.path);let e=!1,t;if(g(null!==u,"rerunTransactionsUnderNode_: relativePath should not be null."),4===h.status)e=!0,t=h.abortReason,r=r.concat(Op(i.serverSyncTree_,h.currentWriteId,!0));else if(0===h.status)if(h.retryCount>=Lf)e=!0,t="maxretry",r=r.concat(Op(i.serverSyncTree_,h.currentWriteId,!0));else{var u=Xf(i,h.path,l),c=(h.currentInputSnapshot=u,s[n].update(u.val()));if(void 0!==c){kf("transaction failed: Data returned ",c,h.path);let e=Wc(c);"object"==typeof c&&null!=c&&Ce(c,".priority")||(e=e.updatePriority(u.getPriority()));var c=h.currentWriteId,d=qf(i),u=nf(e,u,d);h.currentOutputSnapshotRaw=e,h.currentOutputSnapshotResolved=u,h.currentWriteId=Kf(i),l.splice(l.indexOf(c),1),r=(r=r.concat(Dp(i.serverSyncTree_,h.path,u,h.currentWriteId,h.applyLocally))).concat(Op(i.serverSyncTree_,c,!0))}else e=!0,t="nodata",r=r.concat(Op(i.serverSyncTree_,h.currentWriteId,!0))}xf(i.eventQueue_,a,r),r=[],e&&(s[n].status=2,(e=>{setTimeout(e,Math.floor(0))})(s[n].unwatcher),s[n].onComplete)&&("nodata"===t?o.push(()=>s[n].onComplete(null,!1,s[n].currentInputSnapshot)):o.push(()=>s[n].onComplete(new Error(t),!1,null)))}ng(i,i.transactionQueueTree_);for(let e=0;e<o.length;e++)Du(o[e]);Zf(i,i.transactionQueueTree_)}return n}function tg(e,t){let r,n=e.transactionQueueTree_;for(r=_(t);null!==r&&void 0===lf(n);)n=of(n,r),t=y(t),r=_(t);return n}function rg(e,t){var r=[];return function t(r,e,n){let i=lf(e);if(i)for(let e=0;e<i.length;e++)n.push(i[e]);cf(e,e=>{t(r,e,n)})}(e,t,r),r.sort((e,t)=>e.order-t.order),r}function ng(t,r){var n=lf(r);if(n){let e=0;for(let t=0;t<n.length;t++)2!==n[t].status&&(n[e]=n[t],e++);n.length=e,hf(r,0<n.length?n:void 0)}cf(r,e=>{ng(t,e)})}function ig(t,e){var r=df(tg(t,e)),n=of(t.transactionQueueTree_,e);return((e,t,r)=>{let n=r?e:e.parent;for(;null!==n;){if(t(n))return;n=n.parent}})(n,e=>{sg(t,e)}),sg(t,n),function t(e,r,n,i){n&&!i&&r(e),cf(e,e=>{t(e,r,!0,i)}),n&&i&&r(e)}(n,e=>{sg(t,e)}),r}function sg(i,s){var a=lf(s);if(a){var o=[];let e=[],t=-1;for(let r=0;r<a.length;r++)3!==a[r].status&&(1===a[r].status?(g(t===r-1,"All SENT items should be at beginning of queue."),a[t=r].status=3,a[r].abortReason="set"):(g(0===a[r].status,"Unexpected transaction status in abort"),a[r].unwatcher(),e=e.concat(Op(i.serverSyncTree_,a[r].currentWriteId,!0)),a[r].onComplete&&o.push(a[r].onComplete.bind(null,new Error("set"),!1,null))));-1===t?hf(s,void 0):a.length=t+1,xf(i.eventQueue_,df(s),e);for(let n=0;n<o.length;n++)Du(o[n])}}let ag=function(e,t){var r=og(e),n=r.namespace,i=("firebase.com"===r.domain&&_u(r.host+" is no longer supported. Please use <YOUR FIREBASE>.firebaseio.com instead"),n&&"undefined"!==n||"localhost"===r.domain||_u("Cannot parse Firebase url. Please use https://<YOUR FIREBASE>.firebaseio.com"),r.secure||wu(),"ws"===r.scheme||"wss"===r.scheme);return{repoInfo:new Vu(r.host,r.secure,n,i,t,"",n!==r.subdomain),path:new f(r.pathString)}},og=function(n){let i="",s="",a="",o="",l="",h=!0,u="https",c=443;if("string"==typeof n){let e=n.indexOf("//"),t=(0<=e&&(u=n.substring(0,e-1),n=n.substring(e+2)),n.indexOf("/")),r=(-1===t&&(t=n.length),n.indexOf("?"));-1===r&&(r=n.length),i=n.substring(0,Math.min(t,r)),t<r&&(o=(e=>{let t="";var r=e.split("/");for(let n=0;n<r.length;n++)if(0<r[n].length){let e=r[n];try{e=decodeURIComponent(e.replace(/\+/g," "))}catch(e){}t+="/"+e}return t})(n.substring(t,r)));var d=(e=>{var t,r,n={};for(t of(e="?"===e.charAt(0)?e.substring(1):e).split("&"))0!==t.length&&(2===(r=t.split("=")).length?n[decodeURIComponent(r[0])]=decodeURIComponent(r[1]):yu(`Invalid query segment '${t}' in query '${e}'`));return n})(n.substring(Math.min(n.length,r))),p=(0<=(e=i.indexOf(":"))?(h="https"===u||"wss"===u,c=parseInt(i.substring(e+1),10)):e=i.length,i.slice(0,e));"localhost"===p.toLowerCase()?s="localhost":p.split(".").length<=2?s=p:(p=i.indexOf("."),a=i.substring(0,p).toLowerCase(),s=i.substring(p+1),l=a),"ns"in d&&(l=d.ns)}return{host:i,port:c,domain:s,subdomain:a,secure:h,scheme:u,pathString:o,namespace:l}},lg="-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz",hg=(()=>{let s=0,a=[];return function(e){var t=e===s;s=e;let r;var n=new Array(8);for(r=7;0<=r;r--)n[r]=lg.charAt(e%64),e=Math.floor(e/64);g(0===e,"Cannot push at time == 0");let i=n.join("");if(t){for(r=11;0<=r&&63===a[r];r--)a[r]=0;a[r]++}else for(r=0;r<12;r++)a[r]=Math.floor(64*Math.random());for(r=0;r<12;r++)i+=lg.charAt(a[r]);return g(20===i.length,"nextPushId: Length should be 20."),i}})();class ug{constructor(e,t,r,n){this.eventType=e,this.eventRegistration=t,this.snapshot=r,this.prevName=n}getPath(){var e=this.snapshot.ref;return("value"===this.eventType?e:e.parent)._path}getEventType(){return this.eventType}getEventRunner(){return this.eventRegistration.getEventRunner(this)}toString(){return this.getPath().toString()+":"+this.eventType+":"+Te(this.snapshot.exportVal())}}class cg{constructor(e,t,r){this.eventRegistration=e,this.error=t,this.path=r}getPath(){return this.path}getEventType(){return"cancel"}getEventRunner(){return this.eventRegistration.getEventRunner(this)}toString(){return this.path.toString()+":cancel"}}class dg{constructor(e,t){this.snapshotCallback=e,this.cancelCallback=t}onValue(e,t){this.snapshotCallback.call(null,e,t)}onCancel(e){return g(this.hasCancelCallback,"Raising a cancel event on a listener with no cancel callback"),this.cancelCallback.call(null,e)}get hasCancelCallback(){return!!this.cancelCallback}matches(e){return this.snapshotCallback===e.snapshotCallback||void 0!==this.snapshotCallback.userCallback&&this.snapshotCallback.userCallback===e.snapshotCallback.userCallback&&this.snapshotCallback.context===e.snapshotCallback.context}}class pg{constructor(e,t){this._repo=e,this._path=t}cancel(){var e=new Z;return Hf(this._repo,this._path,e.wrapCallback(()=>{})),e.promise}remove(){yf("OnDisconnect.remove",this._path);var e=new Z;return Gf(this._repo,this._path,null,e.wrapCallback(()=>{})),e.promise}set(e){yf("OnDisconnect.set",this._path),ff("OnDisconnect.set",e,this._path,!1);var t=new Z;return Gf(this._repo,this._path,e,t.wrapCallback(()=>{})),t.promise}setWithPriority(e,t){yf("OnDisconnect.setWithPriority",this._path),ff("OnDisconnect.setWithPriority",e,this._path,!1),mf("OnDisconnect.setWithPriority",t,!1);var n=new Z;{var i=this._repo,s=this._path,a=n.wrapCallback(()=>{});let r=Wc(e,t);i.server_.onDisconnectPut(s.toString(),r.val(!0),(e,t)=>{"ok"===e&&cd(i.onDisconnect_,s,r),Jf(0,a,e,t)})}return n.promise}update(e){yf("OnDisconnect.update",this._path),gf("OnDisconnect.update",e,this._path,!1);var n,i,r,s,t=new Z;return n=this._repo,i=this._path,r=e,s=t.wrapCallback(()=>{}),ke(r)?(vu("onDisconnect().update() called with empty data. Don't do anything."),Jf(0,s,"ok",void 0)):n.server_.onDisconnectMerge(i.toString(),r,(e,t)=>{"ok"===e&&Cu(r,(e,t)=>{var r=Wc(t);cd(n.onDisconnect_,oc(i,e),r)}),Jf(0,s,e,t)}),t.promise}}class fg{constructor(e,t,r,n){this._repo=e,this._path=t,this._queryParams=r,this._orderByCalled=n}get key(){return b(this._path)?null:ic(this._path)}get ref(){return new _g(this._repo,this._path)}get _queryIdentifier(){var e=od(this._queryParams),e=ou(e);return"{}"===e?"default":e}get _queryObject(){return od(this._queryParams)}isEqual(e){var t,r,n;return(e=w(e))instanceof fg&&(t=this._repo===e._repo,r=uc(this._path,e._path),n=this._queryIdentifier===e._queryIdentifier,t)&&r&&n}toJSON(){return this.toString()}toString(){return this._repo.toString()+(e=>{let t="";for(let r=e.pieceNum_;r<e.pieces_.length;r++)""!==e.pieces_[r]&&(t+="/"+encodeURIComponent(String(e.pieces_[r])));return t||"/"})(this._path)}}function gg(e,t){if(!0===e._orderByCalled)throw new Error(t+": You can't combine multiple orderBy calls.")}function mg(e){let t=null,r=null;if(e.hasStart()&&(t=e.getIndexStartValue()),e.hasEnd()&&(r=e.getIndexEndValue()),e.getIndex()===wc){var n="Query: When ordering by key, you may only pass one argument to startAt(), endAt(), or equalTo().",i="Query: When ordering by key, the argument passed to startAt(), startAfter(), endAt(), endBefore(), or equalTo() must be a string.";if(e.hasStart()){if(e.getIndexStartName()!==Iu)throw new Error(n);if("string"!=typeof t)throw new Error(i)}if(e.hasEnd()){if(e.getIndexEndName()!==Tu)throw new Error(n);if("string"!=typeof r)throw new Error(i)}}else if(e.getIndex()===I){if(null!=t&&!Sf(t)||null!=r&&!Sf(r))throw new Error("Query: When ordering by priority, the first argument passed to startAt(), startAfter() endAt(), endBefore(), or equalTo() must be a valid priority value (null, a number, or a string).")}else if(g(e.getIndex()instanceof Hc||e.getIndex()===$c,"unknown index type."),null!=t&&"object"==typeof t||null!=r&&"object"==typeof r)throw new Error("Query: First argument passed to startAt(), startAfter(), endAt(), endBefore(), or equalTo() cannot be an object.")}function vg(e){if(e.hasStart()&&e.hasEnd()&&e.hasLimit()&&!e.hasAnchoredLimit())throw new Error("Query: Can't combine startAt(), startAfter(), endAt(), endBefore(), and limit(). Use limitToFirst() or limitToLast() instead.")}class _g extends fg{constructor(e,t){super(e,t,new rd,!1)}get parent(){var e=ac(this._path);return null===e?null:new _g(this._repo,e)}get root(){let e=this;for(;null!==e.parent;)e=e.parent;return e}}class yg{constructor(e,t,r){this._node=e,this.ref=t,this._index=r}get priority(){return this._node.getPriority().val()}get key(){return this.ref.key}get size(){return this._node.numChildren()}child(e){var t=new f(e),r=Ig(this.ref,e);return new yg(this._node.getChild(t),r,I)}exists(){return!this._node.isEmpty()}exportVal(){return this._node.val(!0)}forEach(r){return!this._node.isLeafNode()&&!!this._node.forEachChild(this._index,(e,t)=>r(new yg(t,Ig(this.ref,e),I)))}hasChild(e){var t=new f(e);return!this._node.getChild(t).isEmpty()}hasChildren(){return!this._node.isLeafNode()&&!this._node.isEmpty()}toJSON(){return this.exportVal()}val(){return this._node.val()}}function wg(e,t){return(e=w(e))._checkNotDeleted("ref"),void 0!==t?Ig(e._root,t):e._root}function bg(e,t){(e=w(e))._checkNotDeleted("refFromURL");var r=ag(t,e._repo.repoInfo_.nodeAdmin),n=(Nf("refFromURL",r),r.repoInfo);return e._repo.repoInfo_.isCustomHost()||n.host===e._repo.repoInfo_.host||_u("refFromURL: Host name does not match the current database: (found "+n.host+" but expected "+e._repo.repoInfo_.host+")"),wg(e,r.path.toString())}function Ig(e,t){return(null===_((e=w(e))._path)?_f:Af)("child","path",t,!1),new _g(e._repo,oc(e._path,t))}function Tg(e,t){e=w(e),yf("set",e._path),ff("set",t,e._path,!1);var r=new Z;return Wf(e._repo,e._path,t,null,r.wrapCallback(()=>{})),r.promise}function Eg(e,t){gf("update",t,e._path,!1);var i=new Z;{var a=e._repo,o=e._path,l=(e=t,i.wrapCallback(()=>{}));Yf(a,"update",{path:o.toString(),value:e});let r=!0,n=qf(a),s={};if(Cu(e,(e,t)=>{r=!1,s[e]=rf(oc(o,e),Wc(t),a.serverSyncTree_,n)}),r)vu("update() called with empty data. Don't do anything."),Jf(0,l,"ok",void 0);else{let i=Kf(a);var h=xp(a.serverSyncTree_,o,s,i);Pf(a.eventQueue_,h),a.server_.merge(o.toString(),e,(e,t)=>{var r="ok"===e,r=(r||yu("update at "+o+" failed: "+e),Op(a.serverSyncTree_,i,!r)),n=0<r.length?eg(a,o):o;xf(a.eventQueue_,n,r),Jf(0,l,e,t)}),Cu(e,e=>{var t=ig(a,oc(o,e));eg(a,t)}),xf(a.eventQueue_,o,[])}}return i.promise}function Cg(t){t=w(t);var i,s,a,e=new dg(()=>{}),e=new Sg(e);return i=t._repo,s=t,a=e,(null!=(e=qp(i.serverSyncTree_,s))?Promise.resolve(e):i.server_.get(s).then(e=>{var t,r=Wc(e).withIndex(s._queryParams.getIndex());Up(i.serverSyncTree_,s,a,!0);let n;return n=s._queryParams.loadsAllData()?Mp(i.serverSyncTree_,s._path,r):(t=Kp(i.serverSyncTree_,s),Fp(i.serverSyncTree_,s._path,r,t)),xf(i.eventQueue_,s._path,n),Lp(i.serverSyncTree_,s,a,null,!0),r},e=>(Yf(i,"get for query "+Te(s)+" failed: "+e),Promise.reject(new Error(e))))).then(e=>new yg(e,new _g(t._repo,t._path),t._queryParams.getIndex()))}class Sg{constructor(e){this.callbackContext=e}respondsTo(e){return"value"===e}createEvent(e,t){var r=t._queryParams.getIndex();return new ug("value",this,new yg(e.snapshotNode,new _g(t._repo,t._path),r))}getEventRunner(e){return"cancel"===e.getEventType()?()=>this.callbackContext.onCancel(e.error):()=>this.callbackContext.onValue(e.snapshot,null)}createCancelEvent(e,t){return this.callbackContext.hasCancelCallback?new cg(this,e,t):null}matches(e){return e instanceof Sg&&(!e.callbackContext||!this.callbackContext||e.callbackContext.matches(this.callbackContext))}hasAnyCallback(){return null!==this.callbackContext}}class kg{constructor(e,t){this.eventType=e,this.callbackContext=t}respondsTo(e){var t="children_added"===e?"child_added":e;return this.eventType===("children_removed"===t?"child_removed":t)}createCancelEvent(e,t){return this.callbackContext.hasCancelCallback?new cg(this,e,t):null}createEvent(e,t){g(null!=e.childName,"Child events should have a childName.");var r=Ig(new _g(t._repo,t._path),e.childName),n=t._queryParams.getIndex();return new ug(e.type,this,new yg(e.snapshotNode,r,n),e.prevName)}getEventRunner(e){return"cancel"===e.getEventType()?()=>this.callbackContext.onCancel(e.error):()=>this.callbackContext.onValue(e.snapshot,e.prevName)}matches(e){return e instanceof kg&&this.eventType===e.eventType&&(!this.callbackContext||!e.callbackContext||this.callbackContext.matches(e.callbackContext))}hasAnyCallback(){return!!this.callbackContext}}function Ag(n,e,t,r,i){let s;if("object"==typeof r&&(s=void 0,i=r),"function"==typeof r&&(s=r),i&&i.onlyOnce){let r=t;var a=(e,t)=>{$f(n._repo,n,o),r(e,t)};a.userCallback=t.userCallback,a.context=t.context,t=a}a=new dg(t,s||void 0);let o="value"===e?new Sg(a):new kg(e,a);{r=n._repo,i=n,t=o;let e;e=".info"===_(i._path)?Up(r.infoSyncTree_,i,t):Up(r.serverSyncTree_,i,t),Df(r.eventQueue_,i._path,e)}return()=>$f(n._repo,n,o)}function Ng(e,t,r,n){return Ag(e,"value",t,r,n)}function Rg(e,t,r,n){Ag(e,"child_added",t,r,n)}function Pg(e,t,r,n){Ag(e,"child_changed",t,r,n)}function Dg(e,t,r,n){Ag(e,"child_moved",t,r,n)}function xg(e,t,r,n){Ag(e,"child_removed",t,r,n)}function Og(e,t,r){let n=null;var i=r?new dg(r):null;"value"===t?n=new Sg(i):t&&(n=new kg(t,i)),$f(e._repo,e,n)}class Mg{}class Lg extends Mg{constructor(e,t){super(),this._value=e,this._key=t,this.type="endAt"}_apply(e){ff("endAt",this._value,e._path,!0);var t=id(e._queryParams,this._value,this._key);if(vg(t),mg(t),e._queryParams.hasEnd())throw new Error("endAt: Starting point was already set (by another call to endAt, endBefore or equalTo).");return new fg(e._repo,e._path,t,e._orderByCalled)}}class Fg extends Mg{constructor(e,t){super(),this._value=e,this._key=t,this.type="endBefore"}_apply(e){ff("endBefore",this._value,e._path,!1);var t=((e,t,r)=>{let n;return(n=e.index_===wc||r?id(e,t,r):id(e,t,Iu)).endBeforeSet_=!0,n})(e._queryParams,this._value,this._key);if(vg(t),mg(t),e._queryParams.hasEnd())throw new Error("endBefore: Starting point was already set (by another call to endAt, endBefore or equalTo).");return new fg(e._repo,e._path,t,e._orderByCalled)}}class Ug extends Mg{constructor(e,t){super(),this._value=e,this._key=t,this.type="startAt"}_apply(e){ff("startAt",this._value,e._path,!0);var t=nd(e._queryParams,this._value,this._key);if(vg(t),mg(t),e._queryParams.hasStart())throw new Error("startAt: Starting point was already set (by another call to startAt, startBefore or equalTo).");return new fg(e._repo,e._path,t,e._orderByCalled)}}class Vg extends Mg{constructor(e,t){super(),this._value=e,this._key=t,this.type="startAfter"}_apply(e){ff("startAfter",this._value,e._path,!1);var t=((e,t,r)=>{let n;return(n=e.index_===wc||r?nd(e,t,r):nd(e,t,Tu)).startAfterSet_=!0,n})(e._queryParams,this._value,this._key);if(vg(t),mg(t),e._queryParams.hasStart())throw new Error("startAfter: Starting point was already set (by another call to startAt, startAfter, or equalTo).");return new fg(e._repo,e._path,t,e._orderByCalled)}}class qg extends Mg{constructor(e){super(),this._limit=e,this.type="limitToFirst"}_apply(e){if(e._queryParams.hasLimit())throw new Error("limitToFirst: Limit was already set (by another call to limitToFirst or limitToLast).");return new fg(e._repo,e._path,(t=e._queryParams,r=this._limit,(n=t.copy()).limitSet_=!0,n.limit_=r,n.viewFrom_="l",n),e._orderByCalled);var t,r,n}}class Bg extends Mg{constructor(e){super(),this._limit=e,this.type="limitToLast"}_apply(e){if(e._queryParams.hasLimit())throw new Error("limitToLast: Limit was already set (by another call to limitToFirst or limitToLast).");return new fg(e._repo,e._path,(t=e._queryParams,r=this._limit,(n=t.copy()).limitSet_=!0,n.limit_=r,n.viewFrom_="r",n),e._orderByCalled);var t,r,n}}class jg extends Mg{constructor(e){super(),this._path=e,this.type="orderByChild"}_apply(e){gg(e,"orderByChild");var t=new f(this._path);if(b(t))throw new Error("orderByChild: cannot pass in empty path. Use orderByValue() instead.");t=new Hc(t),t=sd(e._queryParams,t);return mg(t),new fg(e._repo,e._path,t,!0)}}class zg extends Mg{constructor(){super(...arguments),this.type="orderByKey"}_apply(e){gg(e,"orderByKey");var t=sd(e._queryParams,wc);return mg(t),new fg(e._repo,e._path,t,!0)}}class Kg extends Mg{constructor(){super(...arguments),this.type="orderByPriority"}_apply(e){gg(e,"orderByPriority");var t=sd(e._queryParams,I);return mg(t),new fg(e._repo,e._path,t,!0)}}class Wg extends Mg{constructor(){super(...arguments),this.type="orderByValue"}_apply(e){gg(e,"orderByValue");var t=sd(e._queryParams,$c);return mg(t),new fg(e._repo,e._path,t,!0)}}class Hg extends Mg{constructor(e,t){super(),this._value=e,this._key=t,this.type="equalTo"}_apply(e){if(ff("equalTo",this._value,e._path,!1),e._queryParams.hasStart())throw new Error("equalTo: Starting point was already set (by another call to startAt/startAfter or equalTo).");if(e._queryParams.hasEnd())throw new Error("equalTo: Ending point was already set (by another call to endAt/endBefore or equalTo).");return new Lg(this._value,this._key)._apply(new Ug(this._value,this._key)._apply(e))}}function Gg(e,...t){let r=w(e);for(var n of t)r=n._apply(r);return r}t=_g,g(!vp,"__referenceConstructor has already been defined"),vp=t,t=_g,g(!Np,"__referenceConstructor has already been defined"),Np=t;let $g="FIREBASE_DATABASE_EMULATOR_HOST",Qg={},Yg=!1;function Jg(e,t,r,n,i){let s=n||e.options.databaseURL,a=(void 0===s&&(e.options.projectId||_u("Can't determine Firebase Database URL. Be sure to include a Project ID when calling firebase.initializeApp()."),vu("Using default host for project ",e.options.projectId),s=e.options.projectId+"-default-rtdb.firebaseio.com"),ag(s,i)),o=a.repoInfo,l,h=void 0;(h="undefined"!=typeof process&&process.env?process.env[$g]:h)?(l=!0,s=`http://${h}?ns=`+o.namespace,a=ag(s,i),o=a.repoInfo):l=!a.repoInfo.secure;var u=i&&l?new Mu(Mu.OWNER):new Ou(e.name,e.options,t),u=(Nf("Invalid Firebase Database URL",a),b(a.path)||_u("Database URL must point to the root of a Firebase Database (not including a child path)."),((e,t,r,n)=>{let i=Qg[t.name];var s;return i||(i={},Qg[t.name]=i),(s=i[e.toURLString()])&&_u("Database initialized multiple times. Please make sure the format of the database URL matches with each database() call."),s=new Ff(e,Yg,r,n),i[e.toURLString()]=s})(o,e,u,new xu(e,r)));return new Xg(u,e)}class Xg{constructor(e,t){this._repoInternal=e,this.app=t,this.type="database",this._instanceStarted=!1}get _repo(){return this._instanceStarted||(Uf(this._repoInternal,this.app.options.appId,this.app.options.databaseAuthVariableOverride),this._instanceStarted=!0),this._repoInternal}get _root(){return this._rootInternal||(this._rootInternal=new _g(this._repo,v())),this._rootInternal}_delete(){var e,t,r;return null!==this._rootInternal&&(e=this._repo,t=this.app.name,(r=Qg[t])&&r[e.key]===e||_u(`Database ${t}(${e.repoInfo_}) has already been deleted.`),Qf(e),delete r[e.key],this._repoInternal=null,this._rootInternal=null),Promise.resolve()}_checkNotDeleted(e){null===this._rootInternal&&_u("Cannot call "+e+" on a deleted database.")}}function Zg(){Yu.IS_TRANSPORT_INITIALIZED&&yu("Transport has already been initialized. Please call this function before calling ref or setting up a listener")}function em(){Zg(),Hu.forceDisallow()}function tm(){Zg(),Qu.forceDisallow(),Hu.forceAllow()}function rm(e,t,r,n={}){(e=w(e))._checkNotDeleted("useEmulator");var i,s=t+":"+r,a=e._repoInternal;if(e._instanceStarted){if(s===e._repoInternal.repoInfo_.host&&Ne(n,a.repoInfo_.emulatorOptions))return;_u("connectDatabaseEmulator() cannot initialize or alter the emulator configuration after the database instance has started.")}let o=void 0;a.repoInfo_.nodeAdmin?(n.mockUserToken&&_u('mockUserToken is not supported by the Admin SDK. For client access with mock users, please use the "firebase" package instead of "firebase-admin".'),o=new Mu(Mu.OWNER)):n.mockUserToken&&(i="string"==typeof n.mockUserToken?n.mockUserToken:re(n.mockUserToken,e.app.options.projectId),o=new Mu(i)),ee(t)&&(te(t),se("Database",!0)),r=a,e=s,t=n,n=o,i=e.lastIndexOf(":"),i=ee(e.substring(0,i)),r.repoInfo_=new Vu(e,i,r.repoInfo_.namespace,r.repoInfo_.webSocketOnly,r.repoInfo_.nodeAdmin,r.repoInfo_.persistenceKey,r.repoInfo_.includeNamespaceInQueryParams,!0,t),n&&(r.authTokenProvider_=n)}function nm(e){(e=w(e))._checkNotDeleted("goOnline"),(e=e._repo).persistentConnection_&&e.persistentConnection_.resume(Mf)}function im(e,t){mu(e,t)}let sm={".sv":"timestamp"};class am{constructor(e,t){this.committed=e,this.snapshot=t}toJSON(){return{committed:this.committed,snapshot:this.snapshot.toJSON()}}}function om(i,e,t){if(i=w(i),yf("Reference.transaction",i._path),".length"===i.key||".keys"===i.key)throw"Reference.transaction failed: "+i.key+" is a read-only object.";var r=t?.applyLocally??!0;let s=new Z;var n=Ng(i,()=>{}),t=i._repo,a=i._path,o=(e,t,r)=>{var n;e?s.reject(e):(n=new yg(r,new _g(i._repo,i._path),I),s.resolve(new am(t,n)))},l=n,h=r;Yf(t,"transaction on "+a);var u,n={path:a,update:e,onComplete:o,status:null,order:du(),applyLocally:h,retryCount:0,unwatcher:l,abortReason:null,currentWriteId:null,currentInputSnapshot:null,currentOutputSnapshotRaw:null,currentOutputSnapshotResolved:null},r=Xf(t,a,void 0);if(n.currentInputSnapshot=r,void 0===(u=n.update(r.val())))n.unwatcher(),n.currentOutputSnapshotRaw=null,n.currentOutputSnapshotResolved=null,n.onComplete&&n.onComplete(null,!1,n.currentInputSnapshot);else{kf("transaction failed: Data returned ",u,n.path),n.status=0;var c=of(t.transactionQueueTree_,a),d=lf(c)||[];d.push(n),hf(c,d);let e;"object"==typeof u&&null!==u&&Ce(u,".priority")?(e=Se(u,".priority"),g(Sf(e),"Invalid priority returned by transaction. Priority must be a valid string, finite number, server value, or null.")):(c=Vp(t.serverSyncTree_,a)||T.EMPTY_NODE,e=c.getPriority().val());d=qf(t),c=Wc(u,e),u=nf(c,r,d),r=(n.currentOutputSnapshotRaw=c,n.currentOutputSnapshotResolved=u,n.currentWriteId=Kf(t),Dp(t.serverSyncTree_,a,u,n.currentWriteId,n.applyLocally));xf(t.eventQueue_,a,r),Zf(t,t.transactionQueueTree_)}return s.promise}mc.prototype.simpleListen=function(e,t){this.sendRequest("q",{p:e},t)},mc.prototype.echo=function(e,t){this.sendRequest("echo",{d:e},t)},Jh(qt),Dt(new u("database",(e,{instanceIdentifier:t})=>Jg(e.getProvider("app").getImmediate(),e.getProvider("auth-internal"),e.getProvider("app-check-internal"),t),"PUBLIC").setMultipleInstances(!0)),d(Qh,"1.1.0",cD),d(Qh,"1.1.0","esm2020");function lm(e){var t="FIREBASE WARNING: "+e;hm.warn(t)}let hm=new tt("@firebase/database-compat");class um{constructor(e){this._delegate=e}cancel(t){l("OnDisconnect.cancel",0,1,arguments.length),Ve("OnDisconnect.cancel","onComplete",t,!0);var e=this._delegate.cancel();return t&&e.then(()=>t(null),e=>t(e)),e}remove(t){l("OnDisconnect.remove",0,1,arguments.length),Ve("OnDisconnect.remove","onComplete",t,!0);var e=this._delegate.remove();return t&&e.then(()=>t(null),e=>t(e)),e}set(e,t){l("OnDisconnect.set",1,2,arguments.length),Ve("OnDisconnect.set","onComplete",t,!0);var r=this._delegate.set(e);return t&&r.then(()=>t(null),e=>t(e)),r}setWithPriority(e,t,r){l("OnDisconnect.setWithPriority",2,3,arguments.length),Ve("OnDisconnect.setWithPriority","onComplete",r,!0);var n=this._delegate.setWithPriority(e,t);return r&&n.then(()=>r(null),e=>r(e)),n}update(t,r){if(l("OnDisconnect.update",1,2,arguments.length),Array.isArray(t)){var n={};for(let e=0;e<t.length;++e)n[""+e]=t[e];t=n,lm("Passing an Array to firebase.database.onDisconnect().update() is deprecated. Use set() if you want to overwrite the existing data, or an Object with integer keys if you really do want to only update some of the children.")}Ve("OnDisconnect.update","onComplete",r,!0);var e=this._delegate.update(t);return r&&e.then(()=>r(null),e=>r(e)),e}}class cm{constructor(e,t){this.committed=e,this.snapshot=t}toJSON(){return l("TransactionResult.toJSON",0,1,arguments.length),{committed:this.committed,snapshot:this.snapshot.toJSON()}}}class dm{constructor(e,t){this._database=e,this._delegate=t}val(){return l("DataSnapshot.val",0,0,arguments.length),this._delegate.val()}exportVal(){return l("DataSnapshot.exportVal",0,0,arguments.length),this._delegate.exportVal()}toJSON(){return l("DataSnapshot.toJSON",0,1,arguments.length),this._delegate.toJSON()}exists(){return l("DataSnapshot.exists",0,0,arguments.length),this._delegate.exists()}child(e){return l("DataSnapshot.child",0,1,arguments.length),e=String(e),Af("DataSnapshot.child","path",e,!1),new dm(this._database,this._delegate.child(e))}hasChild(e){return l("DataSnapshot.hasChild",1,1,arguments.length),Af("DataSnapshot.hasChild","path",e,!1),this._delegate.hasChild(e)}getPriority(){return l("DataSnapshot.getPriority",0,0,arguments.length),this._delegate.priority}forEach(t){return l("DataSnapshot.forEach",1,1,arguments.length),Ve("DataSnapshot.forEach","action",t,!1),this._delegate.forEach(e=>t(new dm(this._database,e)))}hasChildren(){return l("DataSnapshot.hasChildren",0,0,arguments.length),this._delegate.hasChildren()}get key(){return this._delegate.key}numChildren(){return l("DataSnapshot.numChildren",0,0,arguments.length),this._delegate.size}getRef(){return l("DataSnapshot.ref",0,0,arguments.length),new fm(this._database,this._delegate.ref)}get ref(){return this.getRef()}}class pm{constructor(e,t){this.database=e,this._delegate=t}on(e,r,t,n){l("Query.on",2,4,arguments.length),Ve("Query.on","callback",r,!1);let i=pm.getCancelAndContextArgs_("Query.on",t,n);var s=(e,t)=>{r.call(i.context,new dm(this.database,e),t)},a=(s.userCallback=r,s.context=i.context,i.cancel?.bind(i.context));switch(e){case"value":return Ng(this._delegate,s,a),r;case"child_added":return Rg(this._delegate,s,a),r;case"child_removed":return xg(this._delegate,s,a),r;case"child_changed":return Pg(this._delegate,s,a),r;case"child_moved":return Dg(this._delegate,s,a),r;default:throw new Error(Ue("Query.on","eventType")+'must be a valid event type = "value", "child_added", "child_removed", "child_changed", or "child_moved".')}}off(e,t,r){l("Query.off",0,3,arguments.length);var n,i="Query.off",s=e,a=!0;if(!a||void 0!==s)switch(s){case"value":case"child_added":case"child_removed":case"child_changed":case"child_moved":break;default:throw new Error(Ue(i,"eventType")+'must be a valid event type = "value", "child_added", "child_removed", "child_changed", or "child_moved".')}Ve("Query.off","callback",t,!0),qe("Query.off","context",r,!0),t?((n=()=>{}).userCallback=t,n.context=r,Og(this._delegate,e,n)):Og(this._delegate,e)}get(){return Cg(this._delegate).then(e=>new dm(this.database,e))}once(e,n,t,r){l("Query.once",1,4,arguments.length),Ve("Query.once","callback",n,!0);let i=pm.getCancelAndContextArgs_("Query.once",t,r),s=new Z;var a=(e,t)=>{var r=new dm(this.database,e);n&&n.call(i.context,r,t),s.resolve(r)},o=(a.userCallback=n,a.context=i.context,e=>{i.cancel&&i.cancel.call(i.context,e),s.reject(e)});switch(e){case"value":Ng(this._delegate,a,o,{onlyOnce:!0});break;case"child_added":Rg(this._delegate,a,o,{onlyOnce:!0});break;case"child_removed":xg(this._delegate,a,o,{onlyOnce:!0});break;case"child_changed":Pg(this._delegate,a,o,{onlyOnce:!0});break;case"child_moved":Dg(this._delegate,a,o,{onlyOnce:!0});break;default:throw new Error(Ue("Query.once","eventType")+'must be a valid event type = "value", "child_added", "child_removed", "child_changed", or "child_moved".')}return s.promise}limitToFirst(e){return l("Query.limitToFirst",1,1,arguments.length),new pm(this.database,Gg(this._delegate,(e=>{if("number"!=typeof e||Math.floor(e)!==e||e<=0)throw new Error("limitToFirst: First argument must be a positive integer.");return new qg(e)})(e)))}limitToLast(e){return l("Query.limitToLast",1,1,arguments.length),new pm(this.database,Gg(this._delegate,(e=>{if("number"!=typeof e||Math.floor(e)!==e||e<=0)throw new Error("limitToLast: First argument must be a positive integer.");return new Bg(e)})(e)))}orderByChild(e){return l("Query.orderByChild",1,1,arguments.length),new pm(this.database,Gg(this._delegate,(e=>{if("$key"===e)throw new Error('orderByChild: "$key" is invalid. Use orderByKey() instead.');if("$priority"===e)throw new Error('orderByChild: "$priority" is invalid. Use orderByPriority() instead.');if("$value"===e)throw new Error('orderByChild: "$value" is invalid. Use orderByValue() instead.');return Af("orderByChild","path",e,!1),new jg(e)})(e)))}orderByKey(){return l("Query.orderByKey",0,0,arguments.length),new pm(this.database,Gg(this._delegate,new zg))}orderByPriority(){return l("Query.orderByPriority",0,0,arguments.length),new pm(this.database,Gg(this._delegate,new Kg))}orderByValue(){return l("Query.orderByValue",0,0,arguments.length),new pm(this.database,Gg(this._delegate,new Wg))}startAt(e=null,t){return l("Query.startAt",0,2,arguments.length),new pm(this.database,Gg(this._delegate,([e=null,t]=[e,t],vf("startAt","key",t,!0),new Ug(e,t))))}startAfter(e=null,t){return l("Query.startAfter",0,2,arguments.length),new pm(this.database,Gg(this._delegate,(e=e,t=t,vf("startAfter","key",t,!0),new Vg(e,t))))}endAt(e=null,t){return l("Query.endAt",0,2,arguments.length),new pm(this.database,Gg(this._delegate,(e=e,t=t,vf("endAt","key",t,!0),new Lg(e,t))))}endBefore(e=null,t){return l("Query.endBefore",0,2,arguments.length),new pm(this.database,Gg(this._delegate,(e=e,t=t,vf("endBefore","key",t,!0),new Fg(e,t))))}equalTo(e,t){return l("Query.equalTo",1,2,arguments.length),new pm(this.database,Gg(this._delegate,(e=e,t=t,vf("equalTo","key",t,!0),new Hg(e,t))))}toString(){return l("Query.toString",0,0,arguments.length),this._delegate.toString()}toJSON(){return l("Query.toJSON",0,1,arguments.length),this._delegate.toJSON()}isEqual(e){if(l("Query.isEqual",1,1,arguments.length),e instanceof pm)return this._delegate.isEqual(e._delegate);throw new Error("Query.isEqual failed: First argument must be an instance of firebase.database.Query.")}static getCancelAndContextArgs_(e,t,r){var n={cancel:void 0,context:void 0};if(t&&r)n.cancel=t,Ve(e,"cancel",n.cancel,!0),n.context=r,qe(e,"context",n.context,!0);else if(t)if("object"==typeof t&&null!==t)n.context=t;else{if("function"!=typeof t)throw new Error(Ue(e,"cancelOrContext")+" must either be a cancel callback or a context object.");n.cancel=t}return n}get ref(){return new fm(this.database,new _g(this._delegate._repo,this._delegate._path))}}class fm extends pm{constructor(e,t){super(e,new fg(t._repo,t._path,new rd,!1)),this.database=e,this._delegate=t}getKey(){return l("Reference.key",0,0,arguments.length),this._delegate.key}child(e){return l("Reference.child",1,1,arguments.length),"number"==typeof e&&(e=String(e)),new fm(this.database,Ig(this._delegate,e))}getParent(){l("Reference.parent",0,0,arguments.length);var e=this._delegate.parent;return e?new fm(this.database,e):null}getRoot(){return l("Reference.root",0,0,arguments.length),new fm(this.database,this._delegate.root)}set(e,t){l("Reference.set",1,2,arguments.length),Ve("Reference.set","onComplete",t,!0);var r=Tg(this._delegate,e);return t&&r.then(()=>t(null),e=>t(e)),r}update(t,r){if(l("Reference.update",1,2,arguments.length),Array.isArray(t)){var n={};for(let e=0;e<t.length;++e)n[""+e]=t[e];t=n,lm("Passing an Array to Firebase.update() is deprecated. Use set() if you want to overwrite the existing data, or an Object with integer keys if you really do want to only update some of the children.")}yf("Reference.update",this._delegate._path),Ve("Reference.update","onComplete",r,!0);var e=Eg(this._delegate,t);return r&&e.then(()=>r(null),e=>r(e)),e}setWithPriority(e,t,r){l("Reference.setWithPriority",2,3,arguments.length),Ve("Reference.setWithPriority","onComplete",r,!0);var n=((e,t,r)=>{if(yf("setWithPriority",e._path),ff("setWithPriority",t,e._path,!1),mf("setWithPriority",r,!1),".length"===e.key||".keys"===e.key)throw"setWithPriority failed: "+e.key+" is a read-only object.";var n=new Z;return Wf(e._repo,e._path,t,r,n.wrapCallback(()=>{})),n.promise})(this._delegate,e,t);return r&&n.then(()=>r(null),e=>r(e)),n}remove(t){l("Reference.remove",0,1,arguments.length),Ve("Reference.remove","onComplete",t,!0);e=this._delegate,yf("remove",e._path);var e,r=Tg(e,null);return t&&r.then(()=>t(null),e=>t(e)),r}transaction(e,t,r){l("Reference.transaction",1,3,arguments.length),Ve("Reference.transaction","transactionUpdate",e,!1),Ve("Reference.transaction","onComplete",t,!0);var n,i="Reference.transaction",s="applyLocally",a=r,o=!0;if(o&&void 0===a||"boolean"==typeof a)return n=om(this._delegate,e,{applyLocally:r}).then(e=>new cm(e.committed,new dm(this.database,e.snapshot))),t&&n.then(e=>t(null,e.committed,e.snapshot),e=>t(e,!1,null)),n;throw new Error(Ue(i,s)+"must be a boolean.")}setPriority(e,t){l("Reference.setPriority",1,2,arguments.length),Ve("Reference.setPriority","onComplete",t,!0);r=this._delegate,e=e,r=w(r),yf("setPriority",r._path),mf("setPriority",e,!1),n=new Z,Wf(r._repo,oc(r._path,".priority"),e,null,n.wrapCallback(()=>{}));var r,n=n.promise;return t&&n.then(()=>t(null),e=>t(e)),n}push(e,t){l("Reference.push",0,2,arguments.length),Ve("Reference.push","onComplete",t,!0);var r=((e,t)=>{e=w(e),yf("push",e._path),ff("push",t,e._path,!0);var r=Vf(e._repo),r=hg(r),n=Ig(e,r);let i=Ig(e,r),s;return s=null!=t?Tg(i,t).then(()=>i):Promise.resolve(i),n.then=s.then.bind(s),n.catch=s.then.bind(s,void 0),n})(this._delegate,e),n=r.then(e=>new fm(this.database,e)),r=(t&&n.then(()=>t(null),e=>t(e)),new fm(this.database,r));return r.then=n.then.bind(n),r.catch=n.catch.bind(n,void 0),r}onDisconnect(){return yf("Reference.onDisconnect",this._delegate._path),new um(new pg(this._delegate._repo,this._delegate._path))}get key(){return this.getKey()}get parent(){return this.getParent()}get root(){return this.getRoot()}}class gm{constructor(e,t){this._delegate=e,this.app=t,this.INTERNAL={delete:()=>this._delegate._delete(),forceWebSockets:em,forceLongPolling:tm}}useEmulator(e,t,r={}){rm(this._delegate,e,t,r)}ref(e){var t;return l("database.ref",0,1,arguments.length),e instanceof fm?(t=bg(this._delegate,e.toString()),new fm(this,t)):(t=wg(this._delegate,e),new fm(this,t))}refFromURL(e){l("database.refFromURL",1,1,arguments.length);var t=bg(this._delegate,e);return new fm(this,t)}goOffline(){var e;l("database.goOffline",0,0,arguments.length),(e=w(e=this._delegate))._checkNotDeleted("goOffline"),Qf(e._repo)}goOnline(){return l("database.goOnline",0,0,arguments.length),nm(this._delegate)}}gm.ServerValue={TIMESTAMP:sm,increment:e=>({".sv":{increment:e}})};hr=Object.freeze({__proto__:null,initStandalone:function({app:e,url:t,version:r,customAuthImpl:n,customAppCheckImpl:i,namespace:s,nodeAdmin:a=!1}){Jh(r);var o=new Qe("database-standalone"),l=new $e("auth-internal",o);l.setComponent(new u("auth-internal",()=>n,"PRIVATE"));let h=void 0;return i&&(h=new $e("app-check-internal",o)).setComponent(new u("app-check-internal",()=>i,"PRIVATE")),{instance:new gm(Jg(e,l,h,t,a),e),namespace:s}}});let mm=gm.ServerValue;(t=ur).INTERNAL.registerComponent(new u("database-compat",(e,{instanceIdentifier:t})=>{var r=e.getProvider("app-compat").getImmediate(),n=e.getProvider("database").getImmediate({identifier:t});return new gm(n,r)},"PUBLIC").setServiceProps({Reference:fm,Query:pm,Database:gm,DataSnapshot:dm,enableLogging:im,INTERNAL:hr,ServerValue:mm}).setMultipleInstances(!0)),t.registerVersion("@firebase/database-compat","2.1.0");var vm,_m,ym,wm,bm,Im,Tm,Em,Cm,Sm,km,e,Am,cr="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},Nm=(!(function(){var e,t,s;function r(){this.blockSize=-1,this.blockSize=64,this.g=Array(4),this.B=Array(this.blockSize),this.o=this.h=0,this.s()}function n(){}function a(e,t,r){r=r||0;var n=Array(16);if("string"==typeof t)for(var i=0;i<16;++i)n[i]=t.charCodeAt(r++)|t.charCodeAt(r++)<<8|t.charCodeAt(r++)<<16|t.charCodeAt(r++)<<24;else for(i=0;i<16;++i)n[i]=t[r++]|t[r++]<<8|t[r++]<<16|t[r++]<<24;t=e.g[0],r=e.g[1];var i=e.g[2],s=e.g[3],a=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=r+((a=t+(s^r&(i^s))+n[0]+3614090360&4294967295)<<7&4294967295|a>>>25))+((a=s+(i^t&(r^i))+n[1]+3905402710&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[2]+606105819&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[3]+3250441966&4294967295)<<22&4294967295|a>>>10))+((a=t+(s^r&(i^s))+n[4]+4118548399&4294967295)<<7&4294967295|a>>>25))+((a=s+(i^t&(r^i))+n[5]+1200080426&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[6]+2821735955&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[7]+4249261313&4294967295)<<22&4294967295|a>>>10))+((a=t+(s^r&(i^s))+n[8]+1770035416&4294967295)<<7&4294967295|a>>>25))+((a=s+(i^t&(r^i))+n[9]+2336552879&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[10]+4294925233&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[11]+2304563134&4294967295)<<22&4294967295|a>>>10))+((a=t+(s^r&(i^s))+n[12]+1804603682&4294967295)<<7&4294967295|a>>>25))+((a=s+(i^t&(r^i))+n[13]+4254626195&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[14]+2792965006&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[15]+1236535329&4294967295)<<22&4294967295|a>>>10))+((a=t+(i^s&(r^i))+n[1]+4129170786&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[6]+3225465664&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[11]+643717713&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[0]+3921069994&4294967295)<<20&4294967295|a>>>12))+((a=t+(i^s&(r^i))+n[5]+3593408605&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[10]+38016083&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[15]+3634488961&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[4]+3889429448&4294967295)<<20&4294967295|a>>>12))+((a=t+(i^s&(r^i))+n[9]+568446438&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[14]+3275163606&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[3]+4107603335&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[8]+1163531501&4294967295)<<20&4294967295|a>>>12))+((a=t+(i^s&(r^i))+n[13]+2850285829&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[2]+4243563512&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[7]+1735328473&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[12]+2368359562&4294967295)<<20&4294967295|a>>>12))+((a=t+(r^i^s)+n[5]+4294588738&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[8]+2272392833&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[11]+1839030562&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[14]+4259657740&4294967295)<<23&4294967295|a>>>9))+((a=t+(r^i^s)+n[1]+2763975236&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[4]+1272893353&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[7]+4139469664&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[10]+3200236656&4294967295)<<23&4294967295|a>>>9))+((a=t+(r^i^s)+n[13]+681279174&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[0]+3936430074&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[3]+3572445317&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[6]+76029189&4294967295)<<23&4294967295|a>>>9))+((a=t+(r^i^s)+n[9]+3654602809&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[12]+3873151461&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[15]+530742520&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[2]+3299628645&4294967295)<<23&4294967295|a>>>9))+((a=t+(i^(r|~s))+n[0]+4096336452&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[7]+1126891415&4294967295)<<10&4294967295|a>>>22))+((a=i+(t^(s|~r))+n[14]+2878612391&4294967295)<<15&4294967295|a>>>17))+((a=r+(s^(i|~t))+n[5]+4237533241&4294967295)<<21&4294967295|a>>>11))+((a=t+(i^(r|~s))+n[12]+1700485571&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[3]+2399980690&4294967295)<<10&4294967295|a>>>22))+((a=i+(t^(s|~r))+n[10]+4293915773&4294967295)<<15&4294967295|a>>>17))+((a=r+(s^(i|~t))+n[1]+2240044497&4294967295)<<21&4294967295|a>>>11))+((a=t+(i^(r|~s))+n[8]+1873313359&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[15]+4264355552&4294967295)<<10&4294967295|a>>>22))+((a=i+(t^(s|~r))+n[6]+2734768916&4294967295)<<15&4294967295|a>>>17))+((a=r+(s^(i|~t))+n[13]+1309151649&4294967295)<<21&4294967295|a>>>11))+((s=(t=r+((a=t+(i^(r|~s))+n[4]+4149444226&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[11]+3174756917&4294967295)<<10&4294967295|a>>>22))^((i=s+((a=i+(t^(s|~r))+n[2]+718787259&4294967295)<<15&4294967295|a>>>17))|~t))+n[9]+3951481745&4294967295;e.g[0]=e.g[0]+t&4294967295,e.g[1]=e.g[1]+(i+(a<<21&4294967295|a>>>11))&4294967295,e.g[2]=e.g[2]+i&4294967295,e.g[3]=e.g[3]+s&4294967295}function h(e,t){this.h=t;for(var r=[],n=!0,i=e.length-1;0<=i;i--){var s=0|e[i];n&&s==t||(r[i]=s,n=!1)}this.g=r}t=r,s=function(){this.blockSize=-1},n.prototype=s.prototype,t.D=s.prototype,t.prototype=new n,(t.prototype.constructor=t).C=function(e,t,r){for(var n=Array(arguments.length-2),i=2;i<arguments.length;i++)n[i-2]=arguments[i];return s.prototype[t].apply(e,n)},r.prototype.s=function(){this.g[0]=1732584193,this.g[1]=4023233417,this.g[2]=2562383102,this.g[3]=271733878,this.o=this.h=0},r.prototype.u=function(e,t){for(var r=(t=void 0===t?e.length:t)-this.blockSize,n=this.B,i=this.h,s=0;s<t;){if(0==i)for(;s<=r;)a(this,e,s),s+=this.blockSize;if("string"==typeof e){for(;s<t;)if(n[i++]=e.charCodeAt(s++),i==this.blockSize){a(this,n),i=0;break}}else for(;s<t;)if(n[i++]=e[s++],i==this.blockSize){a(this,n),i=0;break}}this.h=i,this.o+=t},r.prototype.v=function(){var e=Array((this.h<56?this.blockSize:2*this.blockSize)-this.h);e[0]=128;for(var t=1;t<e.length-8;++t)e[t]=0;for(var r=8*this.o,t=e.length-8;t<e.length;++t)e[t]=255&r,r/=256;for(this.u(e),e=Array(16),t=r=0;t<4;++t)for(var n=0;n<32;n+=8)e[r++]=this.g[t]>>>n&255;return e};var i={};function o(e){return-128<=e&&e<128?(t=e,r=function(e){return new h([0|e],e<0?-1:0)},n=i,Object.prototype.hasOwnProperty.call(n,t)?n[t]:n[t]=r(t)):new h([0|e],e<0?-1:0);var t,r,n}function u(e){if(isNaN(e)||!isFinite(e))return c;if(e<0)return g(u(-e));for(var t=[],r=1,n=0;r<=e;n++)t[n]=e/r|0,r*=4294967296;return new h(t,0)}var c=o(0),l=o(1),d=o(16777216);function p(e){if(0==e.h){for(var t=0;t<e.g.length;t++)if(0!=e.g[t])return;return 1}}function f(e){return-1==e.h}function g(e){for(var t=e.g.length,r=[],n=0;n<t;n++)r[n]=~e.g[n];return new h(r,~e.h).add(l)}function m(e,t){return e.add(g(t))}function v(e,t){for(;(65535&e[t])!=e[t];)e[t+1]+=e[t]>>>16,e[t]&=65535,t++}function _(e,t){this.g=e,this.h=t}function y(e,t){if(p(t))throw Error("division by zero");if(p(e))return new _(c,c);if(f(e))return t=y(g(e),t),new _(g(t.g),g(t.h));if(f(t))return t=y(e,g(t)),new _(g(t.g),t.h);if(30<e.g.length){if(f(e)||f(t))throw Error("slowDivide_ only works with positive integers.");for(var r=l,n=t;n.l(e)<=0;)r=w(r),n=w(n);for(var i=b(r,1),s=b(n,1),n=b(n,2),r=b(r,2);!p(n);){var a=s.add(n);a.l(e)<=0&&(i=i.add(r),s=a),n=b(n,1),r=b(r,1)}return t=m(e,i.j(t)),new _(i,t)}for(i=c;0<=e.l(t);){for(r=Math.max(1,Math.floor(e.m()/t.m())),n=(n=Math.ceil(Math.log(r)/Math.LN2))<=48?1:Math.pow(2,n-48),a=(s=u(r)).j(t);f(a)||0<a.l(e);)a=(s=u(r-=n)).j(t);p(s)&&(s=l),i=i.add(s),e=m(e,a)}return new _(i,e)}function w(e){for(var t=e.g.length+1,r=[],n=0;n<t;n++)r[n]=e.i(n)<<1|e.i(n-1)>>>31;return new h(r,e.h)}function b(e,t){var r=t>>5;t%=32;for(var n=e.g.length-r,i=[],s=0;s<n;s++)i[s]=0<t?e.i(s+r)>>>t|e.i(s+r+1)<<32-t:e.i(s+r);return new h(i,e.h)}(e=h.prototype).m=function(){if(f(this))return-g(this).m();for(var e=0,t=1,r=0;r<this.g.length;r++){var n=this.i(r);e+=(0<=n?n:4294967296+n)*t,t*=4294967296}return e},e.toString=function(e){if((e=e||10)<2||36<e)throw Error("radix out of range: "+e);if(p(this))return"0";if(f(this))return"-"+g(this).toString(e);for(var t=u(Math.pow(e,6)),r=this,n="";;){var i=y(r,t).g,s=((0<(r=m(r,i.j(t))).g.length?r.g[0]:r.h)>>>0).toString(e);if(p(r=i))return s+n;for(;s.length<6;)s="0"+s;n=s+n}},e.i=function(e){return e<0?0:e<this.g.length?this.g[e]:this.h},e.l=function(e){return f(e=m(this,e))?-1:p(e)?0:1},e.abs=function(){return f(this)?g(this):this},e.add=function(e){for(var t=Math.max(this.g.length,e.g.length),r=[],n=0,i=0;i<=t;i++){var s=n+(65535&this.i(i))+(65535&e.i(i)),a=(s>>>16)+(this.i(i)>>>16)+(e.i(i)>>>16),n=a>>>16;r[i]=(a&=65535)<<16|(s&=65535)}return new h(r,-2147483648&r[r.length-1]?-1:0)},e.j=function(e){if(p(this)||p(e))return c;if(f(this))return f(e)?g(this).j(g(e)):g(g(this).j(e));if(f(e))return g(this.j(g(e)));if(this.l(d)<0&&e.l(d)<0)return u(this.m()*e.m());for(var t=this.g.length+e.g.length,r=[],n=0;n<2*t;n++)r[n]=0;for(n=0;n<this.g.length;n++)for(var i=0;i<e.g.length;i++){var s=this.i(n)>>>16,a=65535&this.i(n),o=e.i(i)>>>16,l=65535&e.i(i);r[2*n+2*i]+=a*l,v(r,2*n+2*i),r[2*n+2*i+1]+=s*l,v(r,2*n+2*i+1),r[2*n+2*i+1]+=a*o,v(r,2*n+2*i+1),r[2*n+2*i+2]+=s*o,v(r,2*n+2*i+2)}for(n=0;n<t;n++)r[n]=r[2*n+1]<<16|r[2*n];for(n=t;n<2*t;n++)r[n]=0;return new h(r,0)},e.A=function(e){return y(this,e).h},e.and=function(e){for(var t=Math.max(this.g.length,e.g.length),r=[],n=0;n<t;n++)r[n]=this.i(n)&e.i(n);return new h(r,this.h&e.h)},e.or=function(e){for(var t=Math.max(this.g.length,e.g.length),r=[],n=0;n<t;n++)r[n]=this.i(n)|e.i(n);return new h(r,this.h|e.h)},e.xor=function(e){for(var t=Math.max(this.g.length,e.g.length),r=[],n=0;n<t;n++)r[n]=this.i(n)^e.i(n);return new h(r,this.h^e.h)},r.prototype.digest=r.prototype.v,r.prototype.reset=r.prototype.s,r.prototype.update=r.prototype.u,_m=r,h.prototype.multiply=h.prototype.j,h.prototype.modulo=h.prototype.A,h.prototype.compare=h.prototype.l,h.prototype.toNumber=h.prototype.m,h.prototype.getBits=h.prototype.i,h.fromNumber=u,h.fromString=function e(t,r){if(0==t.length)throw Error("number format error: empty string");if((r=r||10)<2||36<r)throw Error("radix out of range: "+r);if("-"==t.charAt(0))return g(e(t.substring(1),r));if(0<=t.indexOf("-"))throw Error('number format error: interior "-" character');for(var n=u(Math.pow(r,8)),i=c,s=0;s<t.length;s+=8)var a=Math.min(8,t.length-s),o=parseInt(t.substring(s,s+a),r),i=(a<8?(a=u(Math.pow(r,a)),i.j(a)):i=i.j(n)).add(u(o));return i},vm=h}).apply(void 0!==cr?cr:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{}),"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{});!(function(){var e,R="function"==typeof Object.defineProperties?Object.defineProperty:function(e,t,r){return e!=Array.prototype&&e!=Object.prototype&&(e[t]=r.value),e};var P=(e=>{e=["object"==typeof globalThis&&globalThis,e,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof Nm&&Nm];for(var t=0;t<e.length;++t){var r=e[t];if(r&&r.Math==Math)return r}throw Error("Cannot find global object")})(this);var t="Array.prototype.values",r=function(e){return e||function(){return r=function(e,t){return t},(t=this)instanceof String&&(t+=""),n=0,i=!1,(e={next:function(){var e;return!i&&n<t.length?(e=n++,{value:r(e,t[e]),done:!1}):{done:i=!0,value:void 0}}})[Symbol.iterator]=function(){return e},e;var t,r,n,i,e}};if(r)e:{var n=P;t=t.split(".");for(var i=0;i<t.length-1;i++){var U=t[i];if(!(U in n))break e;n=n[U]}(r=r(i=n[t=t[t.length-1]]))!=i&&null!=r&&R(n,t,{configurable:!0,writable:!0,value:r})}var V=V||{},D=this||self;function q(e){var t=typeof e;return"array"==(t="object"!=t?t:e?Array.isArray(e)?"array":t:"null")||"object"==t&&"number"==typeof e.length}function h(e){var t=typeof e;return"object"==t&&null!=e||"function"==t}function B(e,t,r){return e.call.apply(e.bind,arguments)}function j(t,r,e){var n;if(t)return 2<arguments.length?(n=Array.prototype.slice.call(arguments,2),function(){var e=Array.prototype.slice.call(arguments);return Array.prototype.unshift.apply(e,n),t.apply(r,e)}):function(){return t.apply(r,arguments)};throw Error()}function m(e,t,r){return(m=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?B:j).apply(null,arguments)}function z(t){var r=Array.prototype.slice.call(arguments,1);return function(){var e=r.slice();return e.push.apply(e,arguments),t.apply(this,e)}}function s(e,s){function t(){}t.prototype=s.prototype,e.aa=s.prototype,e.prototype=new t,(e.prototype.constructor=e).Qb=function(e,t,r){for(var n=Array(arguments.length-2),i=2;i<arguments.length;i++)n[i-2]=arguments[i];return s.prototype[t].apply(e,n)}}function K(t){var r=t.length;if(0<r){var n=Array(r);for(let e=0;e<r;e++)n[e]=t[e];return n}return[]}function W(t){for(let e=1;e<arguments.length;e++){var r=arguments[e];if(q(r)){var n=t.length||0,i=r.length||0;t.length=n+i;for(let e=0;e<i;e++)t[n+e]=r[e]}else t.push(r)}}function x(e){return/^[\s\xa0]*$/.test(e)}function a(){var e=D.navigator;return(e=e&&e.userAgent)||""}function H(e){return H[" "](e),e}H[" "]=function(){};var G=!(-1==a().indexOf("Gecko")||-1!=a().toLowerCase().indexOf("webkit")&&-1==a().indexOf("Edge")||-1!=a().indexOf("Trident")||-1!=a().indexOf("MSIE")||-1!=a().indexOf("Edge"));function $(e,t,r){for(var n in e)t.call(r,e[n],n,e)}function Q(e){var t,r={};for(t in e)r[t]=e[t];return r}let Y="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function J(t){let r,n;for(let i=1;i<arguments.length;i++){for(r in n=arguments[i])t[r]=n[r];for(let e=0;e<Y.length;e++)r=Y[e],Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}}var X=new class{constructor(e,t){this.i=e,this.j=t,this.h=0,this.g=null}get(){let e;return 0<this.h?(this.h--,e=this.g,this.g=e.next,e.next=null):e=this.i(),e}}(()=>new Z,e=>e.reset());class Z{constructor(){this.next=this.g=this.h=null}set(e,t){this.h=e,this.g=t,this.next=null}reset(){this.next=this.g=this.h=null}}let o,l=!1,ee=new class{constructor(){this.h=this.g=null}add(e,t){var r=X.get();r.set(e,t),this.h?this.h.next=r:this.g=r,this.h=r}},te=()=>{let e=D.Promise.resolve(void 0);o=()=>{e.then(re)}};var re=()=>{for(var e;e=(()=>{let e=ee,t=null;return e.g&&(t=e.g,e.g=e.g.next,e.g||(e.h=null),t.next=null),t})();){try{e.h.call(e.g)}catch(e){(e=>{D.setTimeout(()=>{throw e},0)})(e)}var t=X;t.j(e),t.h<100&&(t.h++,e.next=t.g,t.g=e)}l=!1};function u(){this.s=this.s,this.C=this.C}function c(e,t){this.type=e,this.g=this.target=t,this.defaultPrevented=!1}u.prototype.s=!1,u.prototype.ma=function(){this.s||(this.s=!0,this.N())},u.prototype.N=function(){if(this.C)for(;this.C.length;)this.C.shift()()},c.prototype.h=function(){this.defaultPrevented=!0};var ne=(()=>{if(!D.addEventListener||!Object.defineProperty)return!1;var e=!1,t=Object.defineProperty({},"passive",{get:function(){e=!0}});try{var r=()=>{};D.addEventListener("test",r,t),D.removeEventListener("test",r,t)}catch(e){}return e})();function d(e,t){if(c.call(this,e?e.type:""),this.relatedTarget=this.g=this.target=null,this.button=this.screenY=this.screenX=this.clientY=this.clientX=0,this.key="",this.metaKey=this.shiftKey=this.altKey=this.ctrlKey=!1,this.state=null,this.pointerId=0,this.pointerType="",this.i=null,e){var r=this.type=e.type,n=e.changedTouches&&e.changedTouches.length?e.changedTouches[0]:null;if(this.target=e.target||e.srcElement,this.g=t,t=e.relatedTarget){if(G){e:{try{H(t.nodeName);var i=!0;break e}catch(e){}i=!1}i||(t=null)}}else"mouseover"==r?t=e.fromElement:"mouseout"==r&&(t=e.toElement);this.relatedTarget=t,n?(this.clientX=void 0!==n.clientX?n.clientX:n.pageX,this.clientY=void 0!==n.clientY?n.clientY:n.pageY,this.screenX=n.screenX||0,this.screenY=n.screenY||0):(this.clientX=void 0!==e.clientX?e.clientX:e.pageX,this.clientY=void 0!==e.clientY?e.clientY:e.pageY,this.screenX=e.screenX||0,this.screenY=e.screenY||0),this.button=e.button,this.key=e.key||"",this.ctrlKey=e.ctrlKey,this.altKey=e.altKey,this.shiftKey=e.shiftKey,this.metaKey=e.metaKey,this.pointerId=e.pointerId||0,this.pointerType="string"==typeof e.pointerType?e.pointerType:ie[e.pointerType]||"",this.state=e.state,(this.i=e).defaultPrevented&&d.aa.h.call(this)}}s(d,c);var ie={2:"touch",3:"pen",4:"mouse"},p=(d.prototype.h=function(){d.aa.h.call(this);var e=this.i;e.preventDefault?e.preventDefault():e.returnValue=!1},"closure_listenable_"+(1e6*Math.random()|0)),se=0;function ae(e,t,r,n,i){this.listener=e,this.proxy=null,this.src=t,this.type=r,this.capture=!!n,this.ha=i,this.key=++se,this.da=this.fa=!1}function oe(e){e.da=!0,e.listener=null,e.proxy=null,e.src=null,e.ha=null}function le(e){this.src=e,this.g={},this.h=0}function he(e,t){var r,n,i,s=t.type;s in e.g&&(r=e.g[s],(i=0<=(n=Array.prototype.indexOf.call(r,t,void 0)))&&Array.prototype.splice.call(r,n,1),i)&&(oe(t),0==e.g[s].length)&&(delete e.g[s],e.h--)}function ue(e,t,r,n){for(var i=0;i<e.length;++i){var s=e[i];if(!s.da&&s.listener==t&&s.capture==!!r&&s.ha==n)return i}return-1}le.prototype.add=function(e,t,r,n,i){var s=e.toString(),a=((e=this.g[s])||(e=this.g[s]=[],this.h++),ue(e,t,n,i));return-1<a?(t=e[a],r||(t.fa=!1)):((t=new ae(t,this.src,s,!!n,i)).fa=r,e.push(t)),t};var ce="closure_lm_"+(1e6*Math.random()|0),de={};function pe(e,t,r,n,i){if(n&&n.once)return function e(t,r,n,i,s){if(Array.isArray(r)){for(var a=0;a<r.length;a++)e(t,r[a],n,i,s);return null}n=we(n);return t&&t[p]?t.L(r,n,h(i)?!!i.capture:!!i,s):fe(t,r,n,!0,i,s)}(e,t,r,n,i);if(Array.isArray(t)){for(var s=0;s<t.length;s++)pe(e,t[s],r,n,i);return null}return r=we(r),e&&e[p]?e.K(t,r,h(n)?!!n.capture:!!n,i):fe(e,t,r,!1,n,i)}function fe(e,t,r,n,i,s){if(!t)throw Error("Invalid event type");var a=h(i)?!!i.capture:!!i,o=_e(e);if(o||(e[ce]=o=new le(e)),!(r=o.add(t,r,n,a,s)).proxy)if(n=(()=>{let r=ve;return function e(t){return r.call(e.src,e.listener,t)}})(),(r.proxy=n).src=e,n.listener=r,e.addEventListener)void 0===(i=ne?i:a)&&(i=!1),e.addEventListener(t.toString(),n,i);else if(e.attachEvent)e.attachEvent(me(t.toString()),n);else{if(!e.addListener||!e.removeListener)throw Error("addEventListener and attachEvent are unavailable.");e.addListener(n)}return r}function ge(e){var t,r,n;"number"!=typeof e&&e&&!e.da&&((t=e.src)&&t[p]?he(t.i,e):(r=e.type,n=e.proxy,t.removeEventListener?t.removeEventListener(r,n,e.capture):t.detachEvent?t.detachEvent(me(r),n):t.addListener&&t.removeListener&&t.removeListener(n),(r=_e(t))?(he(r,e),0==r.h&&(r.src=null,t[ce]=null)):oe(e)))}function me(e){return e in de?de[e]:de[e]="on"+e}function ve(e,t){var r,n;return e=!!e.da||(t=new d(t,this),r=e.listener,n=e.ha||e.src,e.fa&&ge(e),r.call(n,t))}function _e(e){return(e=e[ce])instanceof le?e:null}var ye="__closure_events_fn_"+(1e9*Math.random()>>>0);function we(t){return"function"==typeof t?t:(t[ye]||(t[ye]=function(e){return t.handleEvent(e)}),t[ye])}function f(){u.call(this),this.i=new le(this),(this.M=this).F=null}function g(e,t){var r,n=e.F;if(n)for(r=[];n;n=n.F)r.push(n);if(e=e.M,n=t.type||t,"string"==typeof t?t=new c(t,e):t instanceof c?t.target=t.target||e:(a=t,J(t=new c(n,e),a)),a=!0,r)for(var i=r.length-1;0<=i;i--)var s=t.g=r[i],a=be(s,n,!0,t)&&a;if(a=be(s=t.g=e,n,!0,t)&&a,a=be(s,n,!1,t)&&a,r)for(i=0;i<r.length;i++)a=be(s=t.g=r[i],n,!1,t)&&a}function be(e,t,r,n){if(!(t=e.i.g[String(t)]))return!0;t=t.concat();for(var i=!0,s=0;s<t.length;++s){var a,o,l=t[s];l&&!l.da&&l.capture==r&&(a=l.listener,o=l.ha||l.src,l.fa&&he(e.i,l),i=!1!==a.call(o,n)&&i)}return i&&!n.defaultPrevented}function Ie(e,t,r){if("function"==typeof e)r&&(e=m(e,r));else{if(!e||"function"!=typeof e.handleEvent)throw Error("Invalid listener argument");e=m(e.handleEvent,e)}return 2147483647<Number(t)?-1:D.setTimeout(e,t||0)}s(f,u),f.prototype[p]=!0,f.prototype.removeEventListener=function(e,t,r,n){!function e(t,r,n,i,s){if(Array.isArray(r))for(var a=0;a<r.length;a++)e(t,r[a],n,i,s);else i=h(i)?!!i.capture:!!i,n=we(n),t&&t[p]?(t=t.i,(r=String(r).toString())in t.g&&-1<(n=ue(a=t.g[r],n,i,s))&&(oe(a[n]),Array.prototype.splice.call(a,n,1),0==a.length)&&(delete t.g[r],t.h--)):(t=t&&_e(t))&&(r=t.g[r.toString()],n=(t=-1)<(t=r?ue(r,n,i,s):t)?r[t]:null)&&ge(n)}(this,e,t,r,n)},f.prototype.N=function(){if(f.aa.N.call(this),this.i){var e,t=this.i;for(e in t.g){for(var r=t.g[e],n=0;n<r.length;n++)oe(r[n]);delete t.g[e],t.h--}}this.F=null},f.prototype.K=function(e,t,r,n){return this.i.add(String(e),t,!1,r,n)},f.prototype.L=function(e,t,r,n){return this.i.add(String(e),t,!0,r,n)};class Te extends u{constructor(e,t){super(),this.m=e,this.l=t,this.h=null,this.i=!1,this.g=null}j(e){this.h=arguments,this.g?this.i=!0:function e(t){t.g=Ie(()=>{t.g=null,t.i&&(t.i=!1,e(t))},t.l);var r=t.h;t.h=null,t.m.apply(null,r)}(this)}N(){super.N(),this.g&&(D.clearTimeout(this.g),this.g=null,this.i=!1,this.h=null)}}function v(e){u.call(this),this.h=e,this.g={}}s(v,u);var Ee=[];function Ce(e){$(e.g,function(e,t){this.g.hasOwnProperty(t)&&ge(e)},e),e.g={}}v.prototype.N=function(){v.aa.N.call(this),Ce(this)},v.prototype.handleEvent=function(){throw Error("EventHandler.handleEvent not implemented")};var Se=D.JSON.stringify,ke=D.JSON.parse,Ae=class{stringify(e){return D.JSON.stringify(e,void 0)}parse(e){return D.JSON.parse(e,void 0)}};function Ne(){}function Re(e){return e.h||(e.h=e.i())}function Pe(){}Ne.prototype.h=null;var De={OPEN:"a",kb:"b",Ja:"c",wb:"d"};function xe(){c.call(this,"d")}function Oe(){c.call(this,"c")}s(xe,c),s(Oe,c);var _={},Me=null;function Le(){return Me=Me||new f}function Fe(e){c.call(this,_.La,e)}function Ue(){var e=Le();g(e,new Fe(e))}function Ve(e,t){c.call(this,_.STAT_EVENT,e),this.stat=t}function O(e){var t=Le();g(t,new Ve(t,e))}function qe(e,t){c.call(this,_.Ma,e),this.size=t}function Be(e,t){if("function"!=typeof e)throw Error("Fn must not be null and must be a function");return D.setTimeout(function(){e()},t)}function je(){this.g=!0}function M(e,t,r,n){e.info(function(){return"XMLHTTP TEXT ("+t+"): "+((e,t)=>{if(!e.g)return t;if(!t)return null;try{var r=JSON.parse(t);if(r)for(e=0;e<r.length;e++)if(Array.isArray(r[e])){var n=r[e];if(!(n.length<2)){var i=n[1];if(Array.isArray(i)&&!(i.length<1)){var s=i[0];if("noop"!=s&&"stop"!=s&&"close"!=s)for(var a=1;a<i.length;a++)i[a]=""}}}return Se(r)}catch(e){return t}})(e,r)+(n?" "+n:"")})}_.La="serverreachability",s(Fe,c),_.STAT_EVENT="statevent",s(Ve,c),_.Ma="timingevent",s(qe,c),je.prototype.xa=function(){this.g=!1},je.prototype.info=function(){};var ze={NO_ERROR:0,gb:1,tb:2,sb:3,nb:4,rb:5,ub:6,Ia:7,TIMEOUT:8,xb:9},Ke={lb:"complete",Hb:"success",Ja:"error",Ia:"abort",zb:"ready",Ab:"readystatechange",TIMEOUT:"timeout",vb:"incrementaldata",yb:"progress",ob:"downloadprogress",Pb:"uploadprogress"};function We(){}function y(e,t,r,n){this.j=e,this.i=t,this.l=r,this.R=n||1,this.U=new v(this),this.I=45e3,this.H=null,this.o=!1,this.m=this.A=this.v=this.L=this.F=this.S=this.B=null,this.D=[],this.g=null,this.C=0,this.s=this.u=null,this.X=-1,this.J=!1,this.O=0,this.M=null,this.W=this.K=this.T=this.P=!1,this.h=new He}function He(){this.i=null,this.g="",this.h=!1}s(We,Ne),We.prototype.g=function(){return new XMLHttpRequest},We.prototype.i=function(){return{}};var Ge=new We,$e={},Qe={};function Ye(e,t,r){e.L=1,e.v=vt(b(t)),e.m=r,e.P=!0,Je(e,null)}function Je(e,t){e.F=Date.now(),Ze(e),e.A=b(e.v);var r=e.A,n=e.R,i=(Array.isArray(n)||(n=[String(n)]),Rt(r.i,"t",n),e.C=0,r=e.j.J,e.h=new He,e.g=cr(e.j,r?t:null,!e.m),0<e.O&&(e.M=new Te(m(e.Y,e,e.g),e.O)),t=e.U,r=e.g,n=e.ca,"readystatechange");Array.isArray(i)||(i&&(Ee[0]=i.toString()),i=Ee);for(var a,o,l,h,u,c,s=0;s<i.length;s++){var d=pe(r,i[s],n||t.handleEvent,!1,t.h||t);if(!d)break;t.g[d.key]=d}t=e.H?Q(e.H):{},e.m?(e.u||(e.u="POST"),t["Content-Type"]="application/x-www-form-urlencoded",e.g.ea(e.A,e.u,e.m,t)):(e.u="GET",e.g.ea(e.A,e.u,null,t)),Ue(),a=e.i,o=e.u,l=e.A,h=e.l,u=e.R,c=e.m,a.info(function(){if(a.g)if(c)for(var e="",t=c.split("&"),r=0;r<t.length;r++){var n,i,s=t[r].split("=");1<s.length&&(n=s[0],s=s[1],e=2<=(i=n.split("_")).length&&"type"==i[1]?e+(n+"=")+s+"&":e+(n+"=redacted&"))}else e=null;else e=c;return"XMLHTTP REQ ("+h+") [attempt "+u+"]: "+o+"\n"+l+"\n"+e})}function Xe(e){return e.g&&"GET"==e.u&&2!=e.L&&e.j.Ca}function Ze(e){e.S=Date.now()+e.I,et(e,e.I)}function et(e,t){if(null!=e.B)throw Error("WatchDog timer not null");e.B=Be(m(e.ba,e),t)}function tt(e){e.B&&(D.clearTimeout(e.B),e.B=null)}function rt(e){0==e.j.G||e.J||or(e.j,e)}function L(e){tt(e);var t=e.M;t&&"function"==typeof t.ma&&t.ma(),e.M=null,Ce(e.U),e.g&&(t=e.g,e.g=null,t.abort(),t.ma())}function nt(e,t){try{var r=e.j;if(0!=r.G&&(r.g==e||lt(r.h,e)))if(!e.K&<(r.h,e)&&3==r.G){try{var n=r.Da.g.parse(t)}catch(e){n=null}if(Array.isArray(n)&&3==n.length){var i=n;if(0==i[0]){e:if(!r.u){if(r.g){if(!(r.g.F+3e3<e.F))break e;ar(r),Yt(r)}nr(r),O(18)}}else r.za=i[1],0<r.za-r.T&&i[2]<37500&&r.F&&0==r.v&&!r.C&&(r.C=Be(m(r.Za,r),6e3));if(ot(r.h)<=1&&r.ca){try{r.ca()}catch(e){}r.ca=void 0}}else k(r,11)}else if(!e.K&&r.g!=e||ar(r),!x(t))for(i=r.Da.g.parse(t),t=0;t<i.length;t++){var s,a,o,l,h,u,c,d,p,f,g=i[t];r.T=g[0],g=g[1],2==r.G?"c"==g[0]?(r.K=g[1],r.ia=g[2],null!=(s=g[3])&&(r.la=s,r.j.info("VER="+r.la)),null!=(a=g[4])&&(r.Aa=a,r.j.info("SVER="+r.Aa)),null!=(o=g[5])&&"number"==typeof o&&0<o&&(n=1.5*o,r.L=n,r.j.info("backChannelRequestTimeoutMs_="+n)),n=r,(l=e.g)&&(!(h=l.g?l.g.getResponseHeader("X-Client-Wire-Protocol"):null)||(u=n.h).g||-1==h.indexOf("spdy")&&-1==h.indexOf("quic")&&-1==h.indexOf("h2")||(u.j=u.l,u.g=new Set,u.h&&(ht(u,u.h),u.h=null)),n.D)&&(c=l.g?l.g.getResponseHeader("X-HTTP-Session-Id"):null)&&(n.ya=c,I(n.I,n.D,c)),r.G=3,r.l&&r.l.ua(),r.ba&&(r.R=Date.now()-e.F,r.j.info("Handshake RTT: "+r.R+"ms")),d=e,(n=r).qa=ur(n,n.J?n.ia:null,n.W),d.K?(ut(n.h,d),p=d,(f=n.L)&&(p.I=f),p.B&&(tt(p),Ze(p)),n.g=d):rr(n),0<r.i.length&&Xt(r)):"stop"!=g[0]&&"close"!=g[0]||k(r,7):3==r.G&&("stop"==g[0]||"close"==g[0]?"stop"==g[0]?k(r,7):Qt(r):"noop"!=g[0]&&r.l&&r.l.ta(g),r.v=0)}Ue()}catch(e){}}y.prototype.ca=function(e){e=e.target;var t=this.M;t&&3==F(e)?t.j():this.Y(e)},y.prototype.Y=function(e){try{if(e==this.g)e:{var t=F(this.g),r=this.g.Ba();this.g.Z();if(!(t<3)&&(3!=t||this.g&&(this.h.h||this.g.oa()||Ht(this.g)))){this.J||4!=t||7==r||Ue(),tt(this);var n=this.g.Z();this.X=n;t:if(Xe(this)){var i=Ht(this.g),s=(e="",i.length),a=4==F(this.g);if(!this.h.i){if("undefined"==typeof TextDecoder){L(this),rt(this);var o="";break t}this.h.i=new D.TextDecoder}for(r=0;r<s;r++)this.h.h=!0,e+=this.h.i.decode(i[r],{stream:!(a&&r==s-1)});i.length=0,this.h.g+=e,this.C=0,o=this.h.g}else o=this.g.oa();if(this.o=200==n,C=this.i,S=this.u,k=this.A,A=this.l,N=this.R,R=t,P=n,C.info(function(){return"XMLHTTP RESP ("+A+") [ attempt "+N+"]: "+S+"\n"+k+"\n"+R+" "+P}),this.o){if(this.T&&!this.K){t:{if(this.g){var l,h=this.g;if((l=h.g?h.g.getResponseHeader("X-HTTP-Initial-Response"):null)&&!x(l)){var u=l;break t}}u=null}if(!(n=u)){this.o=!1,this.s=3,O(12),L(this),rt(this);break e}M(this.i,this.l,n,"Initial handshake response via X-HTTP-Initial-Response"),this.K=!0,nt(this,n)}if(this.P){for(var c,d,n=!0;!this.J&&this.C<o.length;){if(I=o,E=T=void 0,T=(b=this).C,(c=-1==(E=I.indexOf("\n",T))?Qe:(T=Number(I.substring(T,E)),isNaN(T)?$e:(E+=1)+T>I.length?Qe:(I=I.slice(E,E+T),b.C=E+T,I)))==Qe){4==t&&(this.s=4,O(14),n=!1),M(this.i,this.l,null,"[Incomplete Response]");break}if(c==$e){this.s=4,O(15),M(this.i,this.l,o,"[Invalid Chunk]"),n=!1;break}M(this.i,this.l,c,null),nt(this,c)}Xe(this)&&0!=this.C&&(this.h.g=this.h.g.slice(this.C),this.C=0),4!=t||0!=o.length||this.h.h||(this.s=1,O(16),n=!1),this.o=this.o&&n,n?0<o.length&&!this.W&&(this.W=!0,(d=this.j).g==this)&&d.ba&&!d.M&&(d.j.info("Great, no buffering proxy detected. Bytes received: "+o.length),ir(d),d.M=!0,O(11)):(M(this.i,this.l,o,"[Invalid Chunked Response]"),L(this),rt(this))}else M(this.i,this.l,o,null),nt(this,o);4==t&&L(this),this.o&&!this.J&&(4==t?or(this.j,this):(this.o=!1,Ze(this)))}else{{var p=this.g;var f,g,m,v={};p=(p.g&&2<=F(p)&&p.g.getAllResponseHeaders()||"").split("\r\n");for(let e=0;e<p.length;e++)x(p[e])||(f=(e=>{for(var t=1,r=(e=e.split(":"),[]);0<t&&e.length;)r.push(e.shift()),t--;return e.length&&r.push(e.join(":")),r})(p[e]),g=f[0],"string"==typeof(f=f[1])&&(f=f.trim(),m=v[g]||[],(v[g]=m).push(f)));var _,y=v,w=function(e){return e.join(", ")};for(_ in y)w.call(void 0,y[_],_,y)}400==n&&0<o.indexOf("Unknown SID")?(this.s=3,O(12)):(this.s=0,O(13)),L(this),rt(this)}}}}catch(e){}var b,I,T,E,C,S,k,A,N,R,P},y.prototype.cancel=function(){this.J=!0,L(this)},y.prototype.ba=function(){this.B=null;var e,t,r=Date.now();0<=r-this.S?(e=this.i,t=this.A,e.info(function(){return"TIMEOUT: "+t}),2!=this.L&&(Ue(),O(17)),L(this),this.s=2,rt(this)):et(this,this.S-r)};var it=class{constructor(e,t){this.g=e,this.map=t}};function st(e){this.l=e||10,e=D.PerformanceNavigationTiming?0<(e=D.performance.getEntriesByType("navigation")).length&&("hq"==e[0].nextHopProtocol||"h2"==e[0].nextHopProtocol):!!(D.chrome&&D.chrome.loadTimes&&D.chrome.loadTimes()&&D.chrome.loadTimes().wasFetchedViaSpdy),this.j=e?this.l:1,this.g=null,1<this.j&&(this.g=new Set),this.h=null,this.i=[]}function at(e){return e.h||e.g&&e.g.size>=e.j}function ot(e){return e.h?1:e.g?e.g.size:0}function lt(e,t){return e.h?e.h==t:e.g&&e.g.has(t)}function ht(e,t){e.g?e.g.add(t):e.h=t}function ut(e,t){e.h&&e.h==t?e.h=null:e.g&&e.g.has(t)&&e.g.delete(t)}function ct(t){if(null!=t.h)return t.i.concat(t.h.D);if(null==t.g||0===t.g.size)return K(t.i);{let e=t.i;for(var r of t.g.values())e=e.concat(r.D);return e}}function dt(e,t){if(e.forEach&&"function"==typeof e.forEach)e.forEach(t,void 0);else if(q(e)||"string"==typeof e)Array.prototype.forEach.call(e,t,void 0);else for(var r=(e=>{if(e.na&&"function"==typeof e.na)return e.na();if(!e.V||"function"!=typeof e.V){if("undefined"!=typeof Map&&e instanceof Map)return Array.from(e.keys());if(!("undefined"!=typeof Set&&e instanceof Set)){if(q(e)||"string"==typeof e){var t=[];e=e.length;for(var r=0;r<e;r++)t.push(r)}else for(var n in t=[],r=0,e)t[r++]=n;return t}}})(e),n=(e=>{if(e.V&&"function"==typeof e.V)return e.V();if("undefined"!=typeof Map&&e instanceof Map||"undefined"!=typeof Set&&e instanceof Set)return Array.from(e.values());if("string"==typeof e)return e.split("");if(q(e))for(var t=[],r=e.length,n=0;n<r;n++)t.push(e[n]);else for(n in t=[],r=0,e)t[r++]=e[n];return t})(e),i=n.length,s=0;s<i;s++)t.call(void 0,n[s],r&&r[s],e)}st.prototype.cancel=function(){if(this.i=ct(this),this.h)this.h.cancel(),this.h=null;else if(this.g&&0!==this.g.size){for(var e of this.g.values())e.cancel();this.g.clear()}};var pt=RegExp("^(?:([^:/?#.]+):)?(?://(?:([^\\\\/?#]*)@)?([^\\\\/?#]*?)(?::([0-9]+))?(?=[\\\\/?#]|$))?([^?#]+)?(?:\\?([^#]*))?(?:#([\\s\\S]*))?$");function w(e){var t,r;this.g=this.o=this.j="",this.s=null,this.m=this.l="",this.h=!1,e instanceof w?(this.h=e.h,ft(this,e.j),this.o=e.o,this.g=e.g,gt(this,e.s),this.l=e.l,t=e.i,(r=new kt).i=t.i,t.g&&(r.g=new Map(t.g),r.h=t.h),mt(this,r),this.m=e.m):e&&(t=String(e).match(pt))?(this.h=!1,ft(this,t[1]||"",!0),this.o=_t(t[2]||""),this.g=_t(t[3]||"",!0),gt(this,t[4]),this.l=_t(t[5]||"",!0),mt(this,t[6]||"",!0),this.m=_t(t[7]||"")):(this.h=!1,this.i=new kt(null,this.h))}function b(e){return new w(e)}function ft(e,t,r){e.j=r?_t(t,!0):t,e.j&&(e.j=e.j.replace(/:$/,""))}function gt(e,t){if(t){if(t=Number(t),isNaN(t)||t<0)throw Error("Bad port number "+t);e.s=t}else e.s=null}function mt(e,t,r){var n,i;t instanceof kt?(e.i=t,n=e.i,(i=e.h)&&!n.j&&(T(n),n.i=null,n.g.forEach(function(e,t){var r=t.toLowerCase();t!=r&&(At(this,t),Rt(this,r,e))},n)),n.j=i):(r||(t=yt(t,Ct)),e.i=new kt(t,e.h))}function I(e,t,r){e.i.set(t,r)}function vt(e){return I(e,"zx",Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^Date.now()).toString(36)),e}function _t(e,t){return e?t?decodeURI(e.replace(/%25/g,"%2525")):decodeURIComponent(e):""}function yt(e,t,r){return"string"==typeof e?(e=encodeURI(e).replace(t,wt),e=r?e.replace(/%25([0-9a-fA-F]{2})/g,"%$1"):e):null}function wt(e){return"%"+((e=e.charCodeAt(0))>>4&15).toString(16)+(15&e).toString(16)}w.prototype.toString=function(){var e=[],t=this.j,r=(t&&e.push(yt(t,It,!0),":"),this.g);return!r&&"file"!=t||(e.push("//"),(t=this.o)&&e.push(yt(t,It,!0),"@"),e.push(encodeURIComponent(String(r)).replace(/%25([0-9a-fA-F]{2})/g,"%$1")),null==(r=this.s))||e.push(":",String(r)),(r=this.l)&&(this.g&&"/"!=r.charAt(0)&&e.push("/"),e.push(yt(r,"/"==r.charAt(0)?Et:Tt,!0))),(r=this.i.toString())&&e.push("?",r),(r=this.m)&&e.push("#",yt(r,St)),e.join("")};var bt,It=/[#\/\?@]/g,Tt=/[#\?:]/g,Et=/[#\?]/g,Ct=/[#\?@]/g,St=/#/g;function kt(e,t){this.h=this.g=null,this.i=e||null,this.j=!!t}function T(r){if(!r.g&&(r.g=new Map,r.h=0,r.i)){var e=r.i,t=function(e,t){r.add(decodeURIComponent(e.replace(/\+/g," ")),t)};if(e){e=e.split("&");for(var n=0;n<e.length;n++){var i,s=e[n].indexOf("="),a=null;0<=s?(i=e[n].substring(0,s),a=e[n].substring(s+1)):i=e[n],t(i,a?decodeURIComponent(a.replace(/\+/g," ")):"")}}}}function At(e,t){T(e),t=E(e,t),e.g.has(t)&&(e.i=null,e.h-=e.g.get(t).length,e.g.delete(t))}function Nt(e,t){return T(e),t=E(e,t),e.g.has(t)}function Rt(e,t,r){At(e,t),0<r.length&&(e.i=null,e.g.set(E(e,t),K(r)),e.h+=r.length)}function E(e,t){return t=String(t),t=e.j?t.toLowerCase():t}function C(e,t,r,n,i){try{i&&(i.onload=null,i.onerror=null,i.onabort=null,i.ontimeout=null),n(r)}catch(e){}}function Pt(){this.g=new Ae}function Dt(e){this.l=e.Ub||null,this.j=e.eb||!1}function xt(e,t){f.call(this),this.D=e,this.o=t,this.m=void 0,this.status=this.readyState=0,this.responseType=this.responseText=this.response=this.statusText="",this.onreadystatechange=null,this.u=new Headers,this.h=null,this.B="GET",this.A="",this.g=!1,this.v=this.j=this.l=null}function Ot(e){e.j.read().then(e.Pa.bind(e)).catch(e.ga.bind(e))}function Mt(e){e.readyState=4,e.l=null,e.j=null,e.v=null,Lt(e)}function Lt(e){e.onreadystatechange&&e.onreadystatechange.call(e)}function Ft(e){let r="";return $(e,function(e,t){r=(r=r+t+":")+e+"\r\n"}),r}function Ut(e,t,r){e:{for(n in r){var n=!1;break e}n=!0}n||(r=Ft(r),"string"==typeof e?null!=r&&encodeURIComponent(String(r)):I(e,t,r))}function S(e){f.call(this),this.headers=new Map,this.o=e||null,this.h=!1,this.v=this.g=null,this.D="",this.m=0,this.l="",this.j=this.B=this.u=this.A=!1,this.I=null,this.H="",this.J=!1}(e=kt.prototype).add=function(e,t){T(this),this.i=null,e=E(this,e);var r=this.g.get(e);return r||this.g.set(e,r=[]),r.push(t),this.h+=1,this},e.forEach=function(r,n){T(this),this.g.forEach(function(e,t){e.forEach(function(e){r.call(n,e,t,this)},this)},this)},e.na=function(){T(this);var t=Array.from(this.g.values()),r=Array.from(this.g.keys()),n=[];for(let s=0;s<r.length;s++){var i=t[s];for(let e=0;e<i.length;e++)n.push(r[s])}return n},e.V=function(t){T(this);let r=[];if("string"==typeof t)Nt(this,t)&&(r=r.concat(this.g.get(E(this,t))));else{t=Array.from(this.g.values());for(let e=0;e<t.length;e++)r=r.concat(t[e])}return r},e.set=function(e,t){return T(this),this.i=null,Nt(this,e=E(this,e))&&(this.h-=this.g.get(e).length),this.g.set(e,[t]),this.h+=1,this},e.get=function(e,t){return e&&0<(e=this.V(e)).length?String(e[0]):t},e.toString=function(){if(this.i)return this.i;if(!this.g)return"";for(var e=[],t=Array.from(this.g.keys()),r=0;r<t.length;r++)for(var n=t[r],i=encodeURIComponent(String(n)),s=this.V(n),n=0;n<s.length;n++){var a=i;""!==s[n]&&(a+="="+encodeURIComponent(String(s[n]))),e.push(a)}return this.i=e.join("&")},s(Dt,Ne),Dt.prototype.g=function(){return new xt(this.l,this.j)},Dt.prototype.i=(bt={},function(){return bt}),s(xt,f),(e=xt.prototype).open=function(e,t){if(0!=this.readyState)throw this.abort(),Error("Error reopening a connection");this.B=e,this.A=t,this.readyState=1,Lt(this)},e.send=function(e){if(1!=this.readyState)throw this.abort(),Error("need to call open() first. ");this.g=!0;var t={headers:this.u,method:this.B,credentials:this.m,cache:void 0};e&&(t.body=e),(this.D||D).fetch(new Request(this.A,t)).then(this.Sa.bind(this),this.ga.bind(this))},e.abort=function(){this.response=this.responseText="",this.u=new Headers,this.status=0,this.j&&this.j.cancel("Request was aborted.").catch(()=>{}),1<=this.readyState&&this.g&&4!=this.readyState&&(this.g=!1,Mt(this)),this.readyState=0},e.Sa=function(e){if(this.g&&(this.l=e,this.h||(this.status=this.l.status,this.statusText=this.l.statusText,this.h=e.headers,this.readyState=2,Lt(this)),this.g)&&(this.readyState=3,Lt(this),this.g))if("arraybuffer"===this.responseType)e.arrayBuffer().then(this.Qa.bind(this),this.ga.bind(this));else if(void 0!==D.ReadableStream&&"body"in e){if(this.j=e.body.getReader(),this.o){if(this.responseType)throw Error('responseType must be empty for "streamBinaryChunks" mode responses.');this.response=[]}else this.response=this.responseText="",this.v=new TextDecoder;Ot(this)}else e.text().then(this.Ra.bind(this),this.ga.bind(this))},e.Pa=function(e){var t;this.g&&(this.o&&e.value?this.response.push(e.value):!this.o&&(t=e.value||new Uint8Array(0),t=this.v.decode(t,{stream:!e.done}))&&(this.response=this.responseText+=t),(e.done?Mt:Lt)(this),3==this.readyState)&&Ot(this)},e.Ra=function(e){this.g&&(this.response=this.responseText=e,Mt(this))},e.Qa=function(e){this.g&&(this.response=e,Mt(this))},e.ga=function(){this.g&&Mt(this)},e.setRequestHeader=function(e,t){this.u.append(e,t)},e.getResponseHeader=function(e){return this.h&&this.h.get(e.toLowerCase())||""},e.getAllResponseHeaders=function(){if(!this.h)return"";for(var e=[],t=this.h.entries(),r=t.next();!r.done;)r=r.value,e.push(r[0]+": "+r[1]),r=t.next();return e.join("\r\n")},Object.defineProperty(xt.prototype,"withCredentials",{get:function(){return"include"===this.m},set:function(e){this.m=e?"include":"same-origin"}}),s(S,f);var Vt=/^https?$/i,qt=["POST","PUT"];function Bt(e,t){e.h=!1,e.g&&(e.j=!0,e.g.abort(),e.j=!1),e.l=t,e.m=5,jt(e),Kt(e)}function jt(e){e.A||(e.A=!0,g(e,"complete"),g(e,"error"))}function zt(e){if(e.h&&void 0!==V&&(!e.v[1]||4!=F(e)||2!=e.Z()))if(e.u&&4==F(e))Ie(e.Ea,0,e);else if(g(e,"readystatechange"),4==F(e)){e.h=!1;try{var t,r,n,i=e.Z();switch(i){case 200:case 201:case 202:case 204:case 206:case 304:case 1223:var s=!0;break;default:s=!1}if((t=s)||((r=0===i)&&(!(n=String(e.D).match(pt)[1]||null)&&D.self&&D.self.location&&(n=D.self.location.protocol.slice(0,-1)),r=!Vt.test(n?n.toLowerCase():"")),t=r),t)g(e,"complete"),g(e,"success");else{e.m=6;try{var a=2<F(e)?e.g.statusText:""}catch(e){a=""}e.l=a+" ["+e.Z()+"]",jt(e)}}finally{Kt(e)}}}function Kt(e,t){if(e.g){Wt(e);var r=e.g,n=e.v[0]?()=>{}:null;e.g=null,e.v=null,t||g(e,"ready");try{r.onreadystatechange=n}catch(e){}}}function Wt(e){e.I&&(D.clearTimeout(e.I),e.I=null)}function F(e){return e.g?e.g.readyState:0}function Ht(e){try{if(e.g){if("response"in e.g)return e.g.response;switch(e.H){case"":case"text":return e.g.responseText;case"arraybuffer":if("mozResponseArrayBuffer"in e.g)return e.g.mozResponseArrayBuffer}}return null}catch(e){return null}}function Gt(e,t,r){return r&&r.internalChannelParams&&r.internalChannelParams[e]||t}function $t(e){this.Aa=0,this.i=[],this.j=new je,this.ia=this.qa=this.I=this.W=this.g=this.ya=this.D=this.H=this.m=this.S=this.o=null,this.Ya=this.U=0,this.Va=Gt("failFast",!1,e),this.F=this.C=this.u=this.s=this.l=null,this.X=!0,this.za=this.T=-1,this.Y=this.v=this.B=0,this.Ta=Gt("baseRetryDelayMs",5e3,e),this.cb=Gt("retryDelaySeedMs",1e4,e),this.Wa=Gt("forwardChannelMaxRetries",2,e),this.wa=Gt("forwardChannelRequestTimeoutMs",2e4,e),this.pa=e&&e.xmlHttpFactory||void 0,this.Xa=e&&e.Tb||void 0,this.Ca=e&&e.useFetchStreams||!1,this.L=void 0,this.J=e&&e.supportsCrossDomainXhr||!1,this.K="",this.h=new st(e&&e.concurrentRequestLimit),this.Da=new Pt,this.P=e&&e.fastHandshake||!1,this.O=e&&e.encodeInitMessageHeaders||!1,this.P&&this.O&&(this.O=!1),this.Ua=e&&e.Rb||!1,e&&e.xa&&this.j.xa(),e&&e.forceLongPolling&&(this.X=!1),this.ba=!this.P&&this.X&&e&&e.detectBufferingProxy||!1,this.ja=void 0,e&&e.longPollingTimeout&&0<e.longPollingTimeout&&(this.ja=e.longPollingTimeout),this.ca=void 0,this.R=0,this.M=!1,this.ka=this.A=null}function Qt(e){if(Jt(e),3==e.G){var t=e.U++,r=b(e.I);if(I(r,"SID",e.K),I(r,"RID",t),I(r,"TYPE","terminate"),er(e,r),(t=new y(e,e.j,t)).L=2,t.v=vt(b(r)),r=!1,D.navigator&&D.navigator.sendBeacon)try{r=D.navigator.sendBeacon(t.v.toString(),"")}catch(e){}!r&&D.Image&&((new Image).src=t.v,r=!0),r||(t.g=cr(t.j,null),t.g.ea(t.v)),t.F=Date.now(),Ze(t)}hr(e)}function Yt(e){e.g&&(ir(e),e.g.cancel(),e.g=null)}function Jt(e){Yt(e),e.u&&(D.clearTimeout(e.u),e.u=null),ar(e),e.h.cancel(),e.s&&("number"==typeof e.s&&D.clearTimeout(e.s),e.s=null)}function Xt(e){var t;at(e.h)||e.s||(e.s=!0,t=e.Ga,o||te(),l||(o(),l=!0),ee.add(t,e),e.B=0)}function Zt(e,t){var r=t?t.l:e.U++,n=b(e.I);I(n,"SID",e.K),I(n,"RID",r),I(n,"AID",e.T),er(e,n),e.m&&e.o&&Ut(n,e.m,e.o),r=new y(e,e.j,r,e.B+1),null===e.m&&(r.H=e.o),t&&(e.i=t.D.concat(e.i)),t=tr(e,r,1e3),r.I=Math.round(.5*e.wa)+Math.round(.5*e.wa*Math.random()),ht(e.h,r),Ye(r,n,t)}function er(e,r){e.H&&$(e.H,function(e,t){I(r,t,e)}),e.l&&dt({},function(e,t){I(r,t,e)})}function tr(e,t,i){i=Math.min(e.i.length,i);var s=e.l?m(e.l.Na,e.l,e):null;e:{let r=e.i,n=-1;for(;;){var a=["count="+i];-1==n?0<i?(n=r[0].g,a.push("ofs="+n)):n=0:a.push("ofs="+n);let e=!0;for(let t=0;t<i;t++){var o=r[t].g,l=r[t].map;if((o-=n)<0)n=Math.max(0,r[t].g-100),e=!1;else try{((e,n,t)=>{let i=t||"";try{dt(e,function(e,t){let r=e;h(e)&&(r=Se(e)),n.push(i+t+"="+encodeURIComponent(r))})}catch(e){throw n.push(i+"type="+encodeURIComponent("_badmap")),e}})(l,a,"req"+o+"_")}catch(e){s&&s(l)}}if(e){s=a.join("&");break e}}}return e=e.i.splice(0,i),t.D=e,s}function rr(e){var t;e.g||e.u||(e.Y=1,t=e.Fa,o||te(),l||(o(),l=!0),ee.add(t,e),e.v=0)}function nr(e){return!(e.g||e.u||3<=e.v)&&(e.Y++,e.u=Be(m(e.Fa,e),lr(e,e.v)),e.v++,1)}function ir(e){null!=e.A&&(D.clearTimeout(e.A),e.A=null)}function sr(e){e.g=new y(e,e.j,"rpc",e.Y),null===e.m&&(e.g.H=e.o),e.g.O=0;var t=b(e.qa),r=(I(t,"RID","rpc"),I(t,"SID",e.K),I(t,"AID",e.T),I(t,"CI",e.F?"0":"1"),!e.F&&e.ja&&I(t,"TO",e.ja),I(t,"TYPE","xmlhttp"),er(e,t),e.m&&e.o&&Ut(t,e.m,e.o),e.L&&(e.g.I=e.L),e.g);e=e.ia,r.L=1,r.v=vt(b(t)),r.m=null,r.P=!0,Je(r,e)}function ar(e){null!=e.C&&(D.clearTimeout(e.C),e.C=null)}function or(e,t){var r,n,i,s=null;if(e.g==t){ar(e),ir(e),e.g=null;var a=2}else{if(!lt(e.h,t))return;s=t.D,ut(e.h,t),a=1}if(0!=e.G)if(t.o)(1==a?(s=t.m?t.m.length:0,t=Date.now()-t.F,r=e.B,g(a=Le(),new qe(a,s)),Xt):rr)(e);else if(3==(r=t.s)||0==r&&0<t.X||(1!=a||(i=t,ot((n=e).h)>=n.h.j-(n.s?1:0))||(n.s?(n.i=i.D.concat(n.i),0):1==n.G||2==n.G||n.B>=(n.Va?0:n.Wa)||(n.s=Be(m(n.Ga,n,i),lr(n,n.B)),n.B++,0)))&&(2!=a||!nr(e)))switch(s&&0<s.length&&(t=e.h,t.i=t.i.concat(s)),r){case 1:k(e,5);break;case 4:k(e,10);break;case 3:k(e,6);break;default:k(e,2)}}function lr(e,t){let r=e.Ta+Math.floor(Math.random()*e.cb);return e.isActive()||(r*=2),r*t}function k(e,t){var r,n,i;e.j.info("Error code "+t),2==t?(r=m(e.fb,e),n=!(i=e.Xa),i=new w(i||"//www.google.com/images/cleardot.gif"),D.location&&"http"==D.location.protocol||ft(i,"https"),vt(i),(n?(t,r)=>{var n=new je;if(D.Image){let e=new Image;e.onload=z(C,n,"TestLoadImage: loaded",!0,r,e),e.onerror=z(C,n,"TestLoadImage: error",!1,r,e),e.onabort=z(C,n,"TestLoadImage: abort",!1,r,e),e.ontimeout=z(C,n,"TestLoadImage: timeout",!1,r,e),D.setTimeout(function(){e.ontimeout&&e.ontimeout()},1e4),e.src=t}else r(!1)}:(e,t)=>{let r=new je,n=new AbortController,i=setTimeout(()=>{n.abort(),C(r,0,!1,t)},1e4);fetch(e,{signal:n.signal}).then(e=>{clearTimeout(i),e.ok?C(r,0,!0,t):C(r,0,!1,t)}).catch(()=>{clearTimeout(i),C(r,0,!1,t)})})(i.toString(),r)):O(2),e.G=0,e.l&&e.l.sa(t),hr(e),Jt(e)}function hr(e){var t;e.G=0,e.ka=[],e.l&&(0==(t=ct(e.h)).length&&0==e.i.length||(W(e.ka,t),W(e.ka,e.i),e.h.i.length=0,K(e.i),e.i.length=0),e.l.ra())}function ur(e,t,r){var n,i,s=r instanceof w?b(r):new w(r);return""!=s.g?(t&&(s.g=t+"."+s.g),gt(s,s.s)):(s=(n=D.location).protocol,t=t?t+"."+n.hostname:n.hostname,n=+n.port,i=new w(null),s&&ft(i,s),t&&(i.g=t),n&>(i,n),r&&(i.l=r),s=i),r=e.D,t=e.ya,r&&t&&I(s,r,t),I(s,"VER",e.la),er(e,s),s}function cr(e,t,r){if(t&&!e.J)throw Error("Can't create secondary domain capable XhrIo object.");return(t=e.Ca&&!e.pa?new S(new Dt({eb:r})):new S(e.pa)).Ha(e.J),t}function dr(){}function pr(){}function A(e,t){f.call(this),this.g=new $t(t),this.l=e,this.h=t&&t.messageUrlParams||null,e=t&&t.messageHeaders||null,t&&t.clientProtocolHeaderRequired&&(e?e["X-Client-Protocol"]="webchannel":e={"X-Client-Protocol":"webchannel"}),this.g.o=e,e=t&&t.initMessageHeaders||null,t&&t.messageContentType&&(e?e["X-WebChannel-Content-Type"]=t.messageContentType:e={"X-WebChannel-Content-Type":t.messageContentType}),t&&t.va&&(e?e["X-WebChannel-Client-Profile"]=t.va:e={"X-WebChannel-Client-Profile":t.va}),this.g.S=e,(e=t&&t.Sb)&&!x(e)&&(this.g.m=e),this.v=t&&t.supportsCrossDomainXhr||!1,this.u=t&&t.sendRawJson||!1,(t=t&&t.httpSessionIdParam)&&!x(t)&&(this.g.D=t,null!==(e=this.h))&&t in e&&t in(e=this.h)&&delete e[t],this.j=new N(this)}function fr(e){xe.call(this),e.__headers__&&(this.headers=e.__headers__,this.statusCode=e.__status__,delete e.__headers__,delete e.__status__);var t=e.__sm__;if(t){e:{for(var r in t){e=r;break e}e=void 0}(this.i=e)&&(e=this.i,t=null!==t&&e in t?t[e]:void 0),this.data=t}else this.data=e}function gr(){Oe.call(this),this.status=1}function N(e){this.g=e}(e=S.prototype).Ha=function(e){this.J=e},e.ea=function(e,t,r,n){if(this.g)throw Error("[goog.net.XhrIo] Object is active with another request="+this.D+"; newUri="+e);t=t?t.toUpperCase():"GET",this.D=e,this.l="",this.m=0,this.A=!1,this.h=!0,this.g=(this.o||Ge).g(),this.v=this.o?Re(this.o):Re(Ge),this.g.onreadystatechange=m(this.Ea,this);try{this.B=!0,this.g.open(t,String(e),!0),this.B=!1}catch(e){return void Bt(this,e)}if(e=r||"",r=new Map(this.headers),n)if(Object.getPrototypeOf(n)===Object.prototype)for(var i in n)r.set(i,n[i]);else{if("function"!=typeof n.keys||"function"!=typeof n.get)throw Error("Unknown input type for opt_headers: "+String(n));for(var s of n.keys())r.set(s,n.get(s))}n=Array.from(r.keys()).find(e=>"content-type"==e.toLowerCase()),i=D.FormData&&e instanceof D.FormData,0<=Array.prototype.indexOf.call(qt,t,void 0)&&!n&&!i&&r.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8");for(var[a,o]of r)this.g.setRequestHeader(a,o);this.H&&(this.g.responseType=this.H),"withCredentials"in this.g&&this.g.withCredentials!==this.J&&(this.g.withCredentials=this.J);try{Wt(this),this.u=!0,this.g.send(e),this.u=!1}catch(e){Bt(this,e)}},e.abort=function(e){this.g&&this.h&&(this.h=!1,this.j=!0,this.g.abort(),this.j=!1,this.m=e||7,g(this,"complete"),g(this,"abort"),Kt(this))},e.N=function(){this.g&&(this.h&&(this.h=!1,this.j=!0,this.g.abort(),this.j=!1),Kt(this,!0)),S.aa.N.call(this)},e.Ea=function(){this.s||(this.B||this.u||this.j?zt(this):this.bb())},e.bb=function(){zt(this)},e.isActive=function(){return!!this.g},e.Z=function(){try{return 2<F(this)?this.g.status:-1}catch(e){return-1}},e.oa=function(){try{return this.g?this.g.responseText:""}catch(e){return""}},e.Oa=function(e){var t;if(this.g)return t=this.g.responseText,e&&0==t.indexOf(e)&&(t=t.substring(e.length)),ke(t)},e.Ba=function(){return this.m},e.Ka=function(){return"string"==typeof this.l?this.l:String(this.l)},(e=$t.prototype).la=8,e.G=1,e.connect=function(e,t,r,n){O(0),this.W=e,this.H=t||{},r&&void 0!==n&&(this.H.OSID=r,this.H.OAID=n),this.F=this.X,this.I=ur(this,null,this.W),Xt(this)},e.Ga=function(t){if(this.s)if(this.s=null,1==this.G){if(!t){this.U=Math.floor(1e5*Math.random()),t=this.U++;var r=new y(this,this.j,t);let e=this.o;if(this.S&&(e?J(e=Q(e),this.S):e=this.S),null!==this.m||this.O||(r.H=e,e=null),this.P)e:{for(var n=0,i=0;i<this.i.length;i++){var s=this.i[i];if("__data__"in s.map&&"string"==typeof(s=s.map.__data__)?s=s.length:s=void 0,void 0===s)break;if(4096<(n+=s)){n=i;break e}if(4096===n||i===this.i.length-1){n=i+1;break e}}n=1e3}else n=1e3;n=tr(this,r,n),I(i=b(this.I),"RID",t),I(i,"CVER",22),this.D&&I(i,"X-HTTP-Session-Id",this.D),er(this,i),e&&(this.O?n="headers="+encodeURIComponent(String(Ft(e)))+"&"+n:this.m&&Ut(i,this.m,e)),ht(this.h,r),this.Ua&&I(i,"TYPE","init"),this.P?(I(i,"$req",n),I(i,"SID","null"),r.T=!0,Ye(r,i,null)):Ye(r,i,n),this.G=2}}else 3==this.G&&(t?Zt(this,t):0==this.i.length||at(this.h)||Zt(this))},e.Fa=function(){var e;this.u=null,sr(this),this.ba&&!(this.M||null==this.g||this.R<=0)&&(e=2*this.R,this.j.info("BP detection timer enabled: "+e),this.A=Be(m(this.ab,this),e))},e.ab=function(){this.A&&(this.A=null,this.j.info("BP detection timeout reached."),this.j.info("Buffering proxy detected and switch to long-polling!"),this.F=!1,this.M=!0,O(10),Yt(this),sr(this))},e.Za=function(){null!=this.C&&(this.C=null,Yt(this),nr(this),O(19))},e.fb=function(e){e?(this.j.info("Successfully pinged google.com"),O(2)):(this.j.info("Failed to ping google.com"),O(1))},e.isActive=function(){return!!this.l&&this.l.isActive(this)},(e=dr.prototype).ua=function(){},e.ta=function(){},e.sa=function(){},e.ra=function(){},e.isActive=function(){return!0},e.Na=function(){},pr.prototype.g=function(e,t){return new A(e,t)},s(A,f),A.prototype.m=function(){this.g.l=this.j,this.v&&(this.g.J=!0),this.g.connect(this.l,this.h||void 0)},A.prototype.close=function(){Qt(this.g)},A.prototype.o=function(e){var t,r=this.g;"string"==typeof e?((t={}).__data__=e,e=t):this.u&&((t={}).__data__=Se(e),e=t),r.i.push(new it(r.Ya++,e)),3==r.G&&Xt(r)},A.prototype.N=function(){this.g.l=null,delete this.j,Qt(this.g),delete this.g,A.aa.N.call(this)},s(fr,xe),s(gr,Oe),s(N,dr),N.prototype.ua=function(){g(this.g,"a")},N.prototype.ta=function(e){g(this.g,new fr(e))},N.prototype.sa=function(e){g(this.g,new gr)},N.prototype.ra=function(){g(this.g,"b")},pr.prototype.createWebChannel=pr.prototype.g,A.prototype.send=A.prototype.o,A.prototype.open=A.prototype.m,Sm=function(){return new pr},Cm=Le,Em=_,Tm={mb:0,pb:1,qb:2,Jb:3,Ob:4,Lb:5,Mb:6,Kb:7,Ib:8,Nb:9,PROXY:10,NOPROXY:11,Gb:12,Cb:13,Db:14,Bb:15,Eb:16,Fb:17,ib:18,hb:19,jb:20},ze.NO_ERROR=0,ze.TIMEOUT=8,ze.HTTP_ERROR=6,Im=ze,Ke.COMPLETE="complete",bm=Ke,(Pe.EventType=De).OPEN="a",De.CLOSE="b",De.ERROR="c",De.MESSAGE="d",f.prototype.listen=f.prototype.K,wm=Pe,S.prototype.listenOnce=S.prototype.L,S.prototype.getLastError=S.prototype.Ka,S.prototype.getLastErrorCode=S.prototype.Ba,S.prototype.getStatus=S.prototype.Z,S.prototype.getResponseJson=S.prototype.Oa,S.prototype.getResponseText=S.prototype.oa,S.prototype.send=S.prototype.ea,S.prototype.setWithCredentials=S.prototype.Ha,ym=S}).apply(void 0!==Nm?Nm:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{});let Rm="@firebase/firestore";class Pm{constructor(e){this.uid=e}isAuthenticated(){return null!=this.uid}toKey(){return this.isAuthenticated()?"uid:"+this.uid:"anonymous-user"}isEqual(e){return e.uid===this.uid}}Pm.UNAUTHENTICATED=new Pm(null),Pm.GOOGLE_CREDENTIALS=new Pm("google-credentials-uid"),Pm.FIRST_PARTY=new Pm("first-party-uid"),Pm.MOCK_USER=new Pm("mock-user");let Dm="12.2.1",xm=new tt("@firebase/firestore");function Om(){return xm.logLevel}function E(e,...t){var r;xm.logLevel<=c.DEBUG&&(r=t.map(Fm),xm.debug(`Firestore (${Dm}): `+e,...r))}function Mm(e,...t){var r;xm.logLevel<=c.ERROR&&(r=t.map(Fm),xm.error(`Firestore (${Dm}): `+e,...r))}function Lm(e,...t){var r;xm.logLevel<=c.WARN&&(r=t.map(Fm),xm.warn(`Firestore (${Dm}): `+e,...r))}function Fm(t){if("string"==typeof t)return t;try{return JSON.stringify(t)}catch(e){return t}}function C(e,t,r){let n="Unexpected state";"string"==typeof t?n=t:r=t,Um(e,n,r)}function Um(e,t,r){let n=`FIRESTORE (${Dm}) INTERNAL ASSERTION FAILED: ${t} (ID: ${e.toString(16)})`;if(void 0!==r)try{n+=" CONTEXT: "+JSON.stringify(r)}catch(e){n+=" CONTEXT: "+r}throw Mm(n),new Error(n)}function S(e,t,r,n){let i="Unexpected state";"string"==typeof r?i=r:n=r,e||Um(t,i,n)}let k={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 A extends ye{constructor(e,t){super(e,t),this.code=e,this.message=t,this.toString=()=>`${this.name}: [code=${this.code}]: `+this.message}}class Vm{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}}class qm{constructor(e,t){this.user=t,this.type="OAuth",this.headers=new Map,this.headers.set("Authorization","Bearer "+e)}}class Bm{getToken(){return Promise.resolve(null)}invalidateToken(){}start(e,t){e.enqueueRetryable(()=>t(Pm.UNAUTHENTICATED))}shutdown(){}}class jm{constructor(e){this.token=e,this.changeListener=null}getToken(){return Promise.resolve(this.token)}invalidateToken(){}start(e,t){this.changeListener=t,e.enqueueRetryable(()=>t(this.token.user))}shutdown(){this.changeListener=null}}class zm{constructor(e){this.t=e,this.currentUser=Pm.UNAUTHENTICATED,this.i=0,this.forceRefresh=!1,this.auth=null}start(t,r){S(void 0===this.o,42304);let n=this.i,i=e=>this.i!==n?(n=this.i,r(e)):Promise.resolve(),s=new Vm,a=(this.o=()=>{this.i++,this.currentUser=this.u(),s.resolve(),s=new Vm,t.enqueueRetryable(()=>i(this.currentUser))},()=>{let e=s;t.enqueueRetryable(async()=>{await e.promise,await i(this.currentUser)})}),o=e=>{E("FirebaseAuthCredentialsProvider","Auth detected"),this.auth=e,this.o&&(this.auth.addAuthTokenListener(this.o),a())};this.t.onInit(e=>o(e)),setTimeout(()=>{var e;this.auth||((e=this.t.getImmediate({optional:!0}))?o(e):(E("FirebaseAuthCredentialsProvider","Auth not yet detected"),s.resolve(),s=new Vm))},0),a()}getToken(){let t=this.i,e=this.forceRefresh;return this.forceRefresh=!1,this.auth?this.auth.getToken(e).then(e=>this.i!==t?(E("FirebaseAuthCredentialsProvider","getToken aborted due to token change."),this.getToken()):e?(S("string"==typeof e.accessToken,31837,{l:e}),new qm(e.accessToken,this.currentUser)):null):Promise.resolve(null)}invalidateToken(){this.forceRefresh=!0}shutdown(){this.auth&&this.o&&this.auth.removeAuthTokenListener(this.o),this.o=void 0}u(){var e=this.auth&&this.auth.getUid();return S(null===e||"string"==typeof e,2055,{h:e}),new Pm(e)}}class Km{constructor(e,t,r){this.P=e,this.T=t,this.I=r,this.type="FirstParty",this.user=Pm.FIRST_PARTY,this.A=new Map}R(){return this.I?this.I():null}get headers(){this.A.set("X-Goog-AuthUser",this.P);var e=this.R();return e&&this.A.set("Authorization",e),this.T&&this.A.set("X-Goog-Iam-Authorization-Token",this.T),this.A}}class Wm{constructor(e,t,r){this.P=e,this.T=t,this.I=r}getToken(){return Promise.resolve(new Km(this.P,this.T,this.I))}start(e,t){e.enqueueRetryable(()=>t(Pm.FIRST_PARTY))}shutdown(){}invalidateToken(){}}class Hm{constructor(e){this.value=e,this.type="AppCheck",this.headers=new Map,e&&0<e.length&&this.headers.set("x-firebase-appcheck",this.value)}}class Gm{constructor(e,t){this.V=t,this.forceRefresh=!1,this.appCheck=null,this.m=null,this.p=null,h(e)&&e.settings.appCheckToken&&(this.p=e.settings.appCheckToken)}start(t,r){S(void 0===this.o,3512);let n=e=>{null!=e.error&&E("FirebaseAppCheckTokenProvider","Error getting App Check token; using placeholder token instead. Error: "+e.error.message);var t=e.token!==this.m;return this.m=e.token,E("FirebaseAppCheckTokenProvider",`Received ${t?"new":"existing"} token.`),t?r(e.token):Promise.resolve()},i=(this.o=e=>{t.enqueueRetryable(()=>n(e))},e=>{E("FirebaseAppCheckTokenProvider","AppCheck detected"),this.appCheck=e,this.o&&this.appCheck.addTokenListener(this.o)});this.V.onInit(e=>i(e)),setTimeout(()=>{var e;this.appCheck||((e=this.V.getImmediate({optional:!0}))?i(e):E("FirebaseAppCheckTokenProvider","AppCheck not yet detected"))},0)}getToken(){var e;return this.p?Promise.resolve(new Hm(this.p)):(e=this.forceRefresh,this.forceRefresh=!1,this.appCheck?this.appCheck.getToken(e).then(e=>e?(S("string"==typeof e.token,44558,{tokenResult:e}),this.m=e.token,new Hm(e.token)):null):Promise.resolve(null))}invalidateToken(){this.forceRefresh=!0}shutdown(){this.appCheck&&this.o&&this.appCheck.removeTokenListener(this.o),this.o=void 0}}class $m{static newId(){var t=62*Math.floor(256/62);let r="";for(;r.length<20;){var n=(t=>{var r="undefined"!=typeof self&&(self.crypto||self.msCrypto),n=new Uint8Array(t);if(r&&"function"==typeof r.getRandomValues)r.getRandomValues(n);else for(let e=0;e<t;e++)n[e]=Math.floor(256*Math.random());return n})(40);for(let e=0;e<n.length;++e)r.length<20&&n[e]<t&&(r+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".charAt(n[e]%62))}return r}}function N(e,t){return e<t?-1:t<e?1:0}function Qm(r,n){let e=Math.min(r.length,n.length);for(let i=0;i<e;i++){let e=r.charAt(i),t=n.charAt(i);if(e!==t)return Xm(e)===Xm(t)?N(e,t):Xm(e)?1:-1}return N(r.length,n.length)}let Ym=55296,Jm=57343;function Xm(e){var t=e.charCodeAt(0);return t>=Ym&&t<=Jm}function Zm(e,r,n){return e.length===r.length&&e.every((e,t)=>n(e,r[t]))}function ev(e){return e+"\0"}let tv="__name__";class rv{constructor(e,t,r){void 0===t?t=0:t>e.length&&C(637,{offset:t,range:e.length}),void 0===r?r=e.length-t:r>e.length-t&&C(1746,{length:r,range:e.length-t}),this.segments=e,this.offset=t,this.len=r}get length(){return this.len}isEqual(e){return 0===rv.comparator(this,e)}child(e){let t=this.segments.slice(this.offset,this.limit());return e instanceof rv?e.forEach(e=>{t.push(e)}):t.push(e),this.construct(t)}limit(){return this.offset+this.length}popFirst(e){return this.construct(this.segments,this.offset+(e=void 0===e?1:e),this.length-e)}popLast(){return this.construct(this.segments,this.offset,this.length-1)}firstSegment(){return this.segments[this.offset]}lastSegment(){return this.get(this.length-1)}get(e){return this.segments[this.offset+e]}isEmpty(){return 0===this.length}isPrefixOf(e){if(e.length<this.length)return!1;for(let t=0;t<this.length;t++)if(this.get(t)!==e.get(t))return!1;return!0}isImmediateParentOf(e){if(this.length+1!==e.length)return!1;for(let t=0;t<this.length;t++)if(this.get(t)!==e.get(t))return!1;return!0}forEach(e){for(let t=this.offset,r=this.limit();t<r;t++)e(this.segments[t])}toArray(){return this.segments.slice(this.offset,this.limit())}static comparator(t,r){let e=Math.min(t.length,r.length);for(let n=0;n<e;n++){let e=rv.compareSegments(t.get(n),r.get(n));if(0!==e)return e}return N(t.length,r.length)}static compareSegments(e,t){var r=rv.isNumericId(e),n=rv.isNumericId(t);return r&&!n?-1:!r&&n?1:r&&n?rv.extractNumericId(e).compare(rv.extractNumericId(t)):Qm(e,t)}static isNumericId(e){return e.startsWith("__id")&&e.endsWith("__")}static extractNumericId(e){return vm.fromString(e.substring(4,e.length-2))}}class R extends rv{construct(e,t,r){return new R(e,t,r)}canonicalString(){return this.toArray().join("/")}toString(){return this.canonicalString()}toUriEncodedString(){return this.toArray().map(encodeURIComponent).join("/")}static fromString(...e){var t,r=[];for(t of e){if(0<=t.indexOf("//"))throw new A(k.INVALID_ARGUMENT,`Invalid segment (${t}). Paths must not contain // in them.`);r.push(...t.split("/").filter(e=>0<e.length))}return new R(r)}static emptyPath(){return new R([])}}let nv=/^[_a-zA-Z][_a-zA-Z0-9]*$/;class iv extends rv{construct(e,t,r){return new iv(e,t,r)}static isValidIdentifier(e){return nv.test(e)}canonicalString(){return this.toArray().map(e=>(e=e.replace(/\\/g,"\\\\").replace(/`/g,"\\`"),e=iv.isValidIdentifier(e)?e:"`"+e+"`")).join(".")}toString(){return this.canonicalString()}isKeyField(){return 1===this.length&&this.get(0)===tv}static keyField(){return new iv([tv])}static fromServerFormat(t){let e=[],r="",n=0;var i=()=>{if(0===r.length)throw new A(k.INVALID_ARGUMENT,`Invalid field path (${t}). Paths must not be empty, begin with '.', end with '.', or contain '..'`);e.push(r),r=""};let s=!1;for(;n<t.length;){let e=t[n];if("\\"===e){if(n+1===t.length)throw new A(k.INVALID_ARGUMENT,"Path has trailing escape character: "+t);let e=t[n+1];if("\\"!==e&&"."!==e&&"`"!==e)throw new A(k.INVALID_ARGUMENT,"Path has invalid escape sequence: "+t);r+=e,n+=2}else"`"===e?s=!s:"."!==e||s?r+=e:i(),n++}if(i(),s)throw new A(k.INVALID_ARGUMENT,"Unterminated ` in path: "+t);return new iv(e)}static emptyPath(){return new iv([])}}class P{constructor(e){this.path=e}static fromPath(e){return new P(R.fromString(e))}static fromName(e){return new P(R.fromString(e).popFirst(5))}static empty(){return new P(R.emptyPath())}get collectionGroup(){return this.path.popLast().lastSegment()}hasCollectionId(e){return 2<=this.path.length&&this.path.get(this.path.length-2)===e}getCollectionGroup(){return this.path.get(this.path.length-2)}getCollectionPath(){return this.path.popLast()}isEqual(e){return null!==e&&0===R.comparator(this.path,e.path)}toString(){return this.path.toString()}static comparator(e,t){return R.comparator(e.path,t.path)}static isDocumentKey(e){return e.length%2==0}static fromSegments(e){return new P(new R(e.slice()))}}function sv(e,t,r){if(!r)throw new A(k.INVALID_ARGUMENT,`Function ${e}() cannot be called with an empty ${t}.`)}function av(e,t,r,n){if(!0===t&&!0===n)throw new A(k.INVALID_ARGUMENT,e+` and ${r} cannot be used together.`)}function ov(e){if(!P.isDocumentKey(e))throw new A(k.INVALID_ARGUMENT,`Invalid document reference. Document references must have an even number of segments, but ${e} has ${e.length}.`)}function lv(e){if(P.isDocumentKey(e))throw new A(k.INVALID_ARGUMENT,`Invalid collection reference. Collection references must have an odd number of segments, but ${e} has ${e.length}.`)}function hv(e){return"object"==typeof e&&null!==e&&(Object.getPrototypeOf(e)===Object.prototype||null===Object.getPrototypeOf(e))}function uv(e){var t,r;return void 0===e?"undefined":null===e?"null":"string"==typeof e?(20<e.length&&(e=e.substring(0,20)+"..."),JSON.stringify(e)):"number"==typeof e||"boolean"==typeof e?""+e:"object"==typeof e?e instanceof Array?"an array":(t=(r=e).constructor?r.constructor.name:null)?`a custom ${t} object`:"an object":"function"==typeof e?"a function":C(12329,{type:typeof e})}function D(e,t){if((e="_delegate"in e?e._delegate:e)instanceof t)return e;if(t.name===e.constructor.name)throw new A(k.INVALID_ARGUMENT,"Type does not match the expected instance. Did you pass a reference from a different Firestore SDK?");var r=uv(e);throw new A(k.INVALID_ARGUMENT,`Expected type '${t.name}', but it was: `+r)}function cv(e,t){if(t<=0)throw new A(k.INVALID_ARGUMENT,`Function ${e}() requires a positive number, but it was: ${t}.`)}function dv(e,t){var r={typeString:e};return t&&(r.value=t),r}function pv(e,t){if(!hv(e))throw new A(k.INVALID_ARGUMENT,"JSON must be an object");let r;for(var n in t)if(t[n]){var i=t[n].typeString,s="value"in t[n]?{value:t[n].value}:void 0;if(!(n in e)){r=`JSON missing required field: '${n}'`;break}var a=e[n];if(i&&typeof a!==i){r=`JSON field '${n}' must be a ${i}.`;break}if(void 0!==s&&a!==s.value){r=`Expected '${n}' field to equal '${s.value}'`;break}}if(r)throw new A(k.INVALID_ARGUMENT,r);return 1}let fv=-62135596800;class x{static now(){return x.fromMillis(Date.now())}static fromDate(e){return x.fromMillis(e.getTime())}static fromMillis(e){var t=Math.floor(e/1e3),r=Math.floor(1e6*(e-1e3*t));return new x(t,r)}constructor(e,t){if(this.seconds=e,(this.nanoseconds=t)<0)throw new A(k.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+t);if(1e9<=t)throw new A(k.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+t);if(e<fv)throw new A(k.INVALID_ARGUMENT,"Timestamp seconds out of range: "+e);if(253402300800<=e)throw new A(k.INVALID_ARGUMENT,"Timestamp seconds out of range: "+e)}toDate(){return new Date(this.toMillis())}toMillis(){return 1e3*this.seconds+this.nanoseconds/1e6}_compareTo(e){return this.seconds===e.seconds?N(this.nanoseconds,e.nanoseconds):N(this.seconds,e.seconds)}isEqual(e){return e.seconds===this.seconds&&e.nanoseconds===this.nanoseconds}toString(){return"Timestamp(seconds="+this.seconds+", nanoseconds="+this.nanoseconds+")"}toJSON(){return{type:x._jsonSchemaVersion,seconds:this.seconds,nanoseconds:this.nanoseconds}}static fromJSON(e){if(pv(e,x._jsonSchema))return new x(e.seconds,e.nanoseconds)}valueOf(){var e=this.seconds-fv;return String(e).padStart(12,"0")+"."+String(this.nanoseconds).padStart(9,"0")}}x._jsonSchemaVersion="firestore/timestamp/1.0",x._jsonSchema={type:dv("string",x._jsonSchemaVersion),seconds:dv("number"),nanoseconds:dv("number")};class O{static fromTimestamp(e){return new O(e)}static min(){return new O(new x(0,0))}static max(){return new O(new x(253402300799,999999999))}constructor(e){this.timestamp=e}compareTo(e){return this.timestamp._compareTo(e.timestamp)}isEqual(e){return this.timestamp.isEqual(e.timestamp)}toMicroseconds(){return 1e6*this.timestamp.seconds+this.timestamp.nanoseconds/1e3}toString(){return"SnapshotVersion("+this.timestamp.toString()+")"}toTimestamp(){return this.timestamp}}let gv=-1;class mv{constructor(e,t,r,n){this.indexId=e,this.collectionGroup=t,this.fields=r,this.indexState=n}}function vv(e){return e.fields.find(e=>2===e.kind)}function _v(e){return e.fields.filter(e=>2!==e.kind)}mv.UNKNOWN_ID=-1;class yv{constructor(e,t){this.fieldPath=e,this.kind=t}}class wv{constructor(e,t){this.sequenceNumber=e,this.offset=t}static empty(){return new wv(0,Tv.min())}}function bv(e,t){var r=e.toTimestamp().seconds,n=e.toTimestamp().nanoseconds+1,r=O.fromTimestamp(1e9===n?new x(r+1,0):new x(r,n));return new Tv(r,P.empty(),t)}function Iv(e){return new Tv(e.readTime,e.key,gv)}class Tv{constructor(e,t,r){this.readTime=e,this.documentKey=t,this.largestBatchId=r}static min(){return new Tv(O.min(),P.empty(),gv)}static max(){return new Tv(O.max(),P.empty(),gv)}}function Ev(e,t){var r=e.readTime.compareTo(t.readTime);return 0!==r||0!==(r=P.comparator(e.documentKey,t.documentKey))?r:N(e.largestBatchId,t.largestBatchId)}let Cv="The current tab is not in the required state to perform this operation. It might be necessary to refresh the browser tab.";class Sv{constructor(){this.onCommittedListeners=[]}addOnCommittedListener(e){this.onCommittedListeners.push(e)}raiseOnCommittedEvent(){this.onCommittedListeners.forEach(e=>e())}}async function kv(e){if(e.code!==k.FAILED_PRECONDITION||e.message!==Cv)throw e;E("LocalStore","Unexpectedly lost primary lease")}class M{constructor(e){this.nextCallback=null,this.catchCallback=null,this.result=void 0,this.error=void 0,this.isDone=!1,this.callbackAttached=!1,e(e=>{this.isDone=!0,this.result=e,this.nextCallback&&this.nextCallback(e)},e=>{this.isDone=!0,this.error=e,this.catchCallback&&this.catchCallback(e)})}catch(e){return this.next(void 0,e)}next(n,i){return this.callbackAttached&&C(59440),this.callbackAttached=!0,this.isDone?this.error?this.wrapFailure(i,this.error):this.wrapSuccess(n,this.result):new M((t,r)=>{this.nextCallback=e=>{this.wrapSuccess(n,e).next(t,r)},this.catchCallback=e=>{this.wrapFailure(i,e).next(t,r)}})}toPromise(){return new Promise((e,t)=>{this.next(e,t)})}wrapUserFunction(e){try{var t=e();return t instanceof M?t:M.resolve(t)}catch(e){return M.reject(e)}}wrapSuccess(e,t){return e?this.wrapUserFunction(()=>e(t)):M.resolve(t)}wrapFailure(e,t){return e?this.wrapUserFunction(()=>e(t)):M.reject(t)}static resolve(r){return new M((e,t)=>{e(r)})}static reject(r){return new M((e,t)=>{t(r)})}static waitFor(e){return new M((t,r)=>{let n=0,i=0,s=!1;e.forEach(e=>{++n,e.next(()=>{++i,s&&i===n&&t()},e=>r(e))}),s=!0,i===n&&t()})}static or(e){let t=M.resolve(!1);for(let r of e)t=t.next(e=>e?M.resolve(e):r());return t}static forEach(e,r){let n=[];return e.forEach((e,t)=>{n.push(r.call(this,e,t))}),this.waitFor(n)}static mapArray(o,l){return new M((r,n)=>{let i=o.length,s=new Array(i),a=0;for(let e=0;e<i;e++){let t=e;l(o[t]).next(e=>{s[t]=e,++a===i&&r(s)},e=>n(e))}})}static doWhile(n,i){return new M((e,t)=>{let r=()=>{!0===n()?i().next(()=>{r()},t):e()};r()})}}let Av="SimpleDb";class Nv{static open(e,t,r,n){try{return new Nv(t,e.transaction(n,r))}catch(e){throw new xv(t,e)}}constructor(r,e){this.action=r,this.transaction=e,this.aborted=!1,this.S=new Vm,this.transaction.oncomplete=()=>{this.S.resolve()},this.transaction.onabort=()=>{e.error?this.S.reject(new xv(r,e.error)):this.S.resolve()},this.transaction.onerror=e=>{var t=Uv(e.target.error);this.S.reject(new xv(r,t))}}get D(){return this.S.promise}abort(e){e&&this.S.reject(e),this.aborted||(E(Av,"Aborting transaction:",e?e.message:"Client-initiated abort"),this.aborted=!0,this.transaction.abort())}C(){var e=this.transaction;this.aborted||"function"!=typeof e.commit||e.commit()}store(e){var t=this.transaction.objectStore(e);return new Mv(t)}}class Rv{static delete(e){return E(Av,"Removing database:",e),Lv(H().indexedDB.deleteDatabase(e)).toPromise()}static v(){var e,t,r;return!(!me()||!Rv.F()&&(e=ae(),t=0<(t=Rv.M(e))&&t<10,r=0<(r=Pv(e))&&r<4.5,0<e.indexOf("MSIE ")||0<e.indexOf("Trident/")||0<e.indexOf("Edge/")||t||r))}static F(){return"undefined"!=typeof process&&"YES"===process.__PRIVATE_env?.__PRIVATE_USE_MOCK_PERSISTENCE}static O(e,t){return e.store(t)}static M(e){var t=e.match(/i(?:phone|pad|pod) os ([\d_]+)/i),t=t?t[1].split("_").slice(0,2).join("."):"-1";return Number(t)}constructor(e,t,r){this.name=e,this.version=t,this.N=r,this.B=null,12.2===Rv.M(ae())&&Mm("Firestore persistence suffers from a bug in iOS 12.2 Safari that may cause your app to stop working. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.")}async L(s){return this.db||(E(Av,"Opening database:",this.name),this.db=await new Promise((r,n)=>{let i=indexedDB.open(this.name,this.version);i.onsuccess=e=>{var t=e.target.result;r(t)},i.onblocked=()=>{n(new xv(s,"Cannot upgrade IndexedDB schema while another tab is open. Close all tabs that access Firestore and reload this page to proceed."))},i.onerror=e=>{var t=e.target.error;"VersionError"===t.name?n(new A(k.FAILED_PRECONDITION,"A newer version of the Firestore SDK was previously used and so the persisted data is not compatible with the version of the SDK you are now using. The SDK will operate with persistence disabled. If you need persistence, please re-upgrade to a newer version of the SDK or else clear the persisted IndexedDB data for your app to start fresh.")):"InvalidStateError"===t.name?n(new A(k.FAILED_PRECONDITION,"Unable to open an IndexedDB connection. This could be due to running in a private browsing session on a browser whose private browsing sessions do not support IndexedDB: "+t)):n(new xv(s,t))},i.onupgradeneeded=e=>{E(Av,'Database "'+this.name+'" requires upgrade from version:',e.oldVersion);var t=e.target.result;this.N.k(t,i.transaction,e.oldVersion,this.version).next(()=>{E(Av,"Database upgrade to version "+this.version+" complete")})}})),this.q&&(this.db.onversionchange=e=>this.q(e)),this.db}$(t){this.q=t,this.db&&(this.db.onversionchange=e=>t(e))}async runTransaction(r,e,n,i){var s="readonly"===e;let a=0;for(;;){++a;try{this.db=await this.L(r);let t=Nv.open(this.db,r,s?"readonly":"readwrite",n),e=i(t).next(e=>(t.C(),e)).catch(e=>(t.abort(e),M.reject(e))).toPromise();return e.catch(()=>{}),await t.D,e}catch(r){let e=r,t="FirebaseError"!==e.name&&a<3;if(E(Av,"Transaction failed with error:",e.message,"Retrying:",t),this.close(),!t)return Promise.reject(e)}}}close(){this.db&&this.db.close(),this.db=void 0}}function Pv(e){var t=e.match(/Android ([\d.]+)/i),t=t?t[1].split(".").slice(0,2).join("."):"-1";return Number(t)}class Dv{constructor(e){this.U=e,this.K=!1,this.W=null}get isDone(){return this.K}get G(){return this.W}set cursor(e){this.U=e}done(){this.K=!0}j(e){this.W=e}delete(){return Lv(this.U.delete())}}class xv extends A{constructor(e,t){super(k.UNAVAILABLE,`IndexedDB transaction '${e}' failed: `+t),this.name="IndexedDbTransactionError"}}function Ov(e){return"IndexedDbTransactionError"===e.name}class Mv{constructor(e){this.store=e}put(e,t){let r;return Lv(r=void 0!==t?(E(Av,"PUT",this.store.name,e,t),this.store.put(t,e)):(E(Av,"PUT",this.store.name,"<auto-key>",e),this.store.put(e)))}add(e){return E(Av,"ADD",this.store.name,e,e),Lv(this.store.add(e))}get(t){return Lv(this.store.get(t)).next(e=>(void 0===e&&(e=null),E(Av,"GET",this.store.name,t,e),e))}delete(e){return E(Av,"DELETE",this.store.name,e),Lv(this.store.delete(e))}count(){return E(Av,"COUNT",this.store.name),Lv(this.store.count())}J(e,t){var n=this.options(e,t),r=n.index?this.store.index(n.index):this.store;if("function"==typeof r.getAll){let e=r.getAll(n.range);return new M((t,r)=>{e.onerror=e=>{r(e.target.error)},e.onsuccess=e=>{t(e.target.result)}})}{let e=this.cursor(n),r=[];return this.H(e,(e,t)=>{r.push(t)}).next(()=>r)}}Y(e,t){let n=this.store.getAll(e,null===t?void 0:t);return new M((t,r)=>{n.onerror=e=>{r(e.target.error)},n.onsuccess=e=>{t(e.target.result)}})}Z(e,t){E(Av,"DELETE ALL",this.store.name);var r=this.options(e,t),r=(r.X=!1,this.cursor(r));return this.H(r,(e,t,r)=>r.delete())}ee(e,t){let r;t?r=e:(r={},t=e);var n=this.cursor(r);return this.H(n,t)}te(i){let e=this.cursor({});return new M((r,n)=>{e.onerror=e=>{var t=Uv(e.target.error);n(t)},e.onsuccess=e=>{let t=e.target.result;t?i(t.primaryKey,t.value).next(e=>{e?t.continue():r()}):r()}})}H(e,s){let a=[];return new M((i,t)=>{e.onerror=e=>{t(e.target.error)},e.onsuccess=e=>{var n=e.target.result;if(n){let t=new Dv(n),r=s(n.primaryKey,n.value,t);if(r instanceof M){let e=r.catch(e=>(t.done(),M.reject(e)));a.push(e)}t.isDone?i():null===t.G?n.continue():n.continue(t.G)}else i()}}).next(()=>M.waitFor(a))}options(e,t){let r;return void 0!==e&&("string"==typeof e?r=e:t=e),{index:r,range:t}}cursor(e){let t="next";var r;return e.reverse&&(t="prev"),e.index?(r=this.store.index(e.index),e.X?r.openKeyCursor(e.range,t):r.openCursor(e.range,t)):this.store.openCursor(e.range,t)}}function Lv(e){return new M((r,n)=>{e.onsuccess=e=>{var t=e.target.result;r(t)},e.onerror=e=>{var t=Uv(e.target.error);n(t)}})}let Fv=!1;function Uv(e){let t=Rv.M(ae());if(12.2<=t&&t<13){let t="An internal error was encountered in the Indexed Database server";if(0<=e.message.indexOf(t)){let e=new A("internal",`IOS_INDEXEDDB_BUG1: IndexedDb has thrown '${t}'. This is likely due to an unavoidable bug in iOS. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.`);return Fv||(Fv=!0,setTimeout(()=>{throw e},0)),e}}return e}let Vv="IndexBackfiller";class qv{constructor(e,t){this.asyncQueue=e,this.ne=t,this.task=null}start(){this.re(15e3)}stop(){this.task&&(this.task.cancel(),this.task=null)}get started(){return null!==this.task}re(e){E(Vv,`Scheduled in ${e}ms`),this.task=this.asyncQueue.enqueueAfterDelay("index_backfill",e,async()=>{this.task=null;try{var e=await this.ne.ie();E(Vv,"Documents written: "+e)}catch(e){Ov(e)?E(Vv,"Ignoring IndexedDB error during index backfill: ",e):await kv(e)}await this.re(6e4)})}}class Bv{constructor(e,t){this.localStore=e,this.persistence=t}async ie(t=50){return this.persistence.runTransaction("Backfill Indexes","readwrite-primary",e=>this.se(e,t))}se(e,t){let r=new Set,n=t,i=!0;return M.doWhile(()=>!0===i&&0<n,()=>this.localStore.indexManager.getNextCollectionGroupToUpdate(e).next(t=>{if(null!==t&&!r.has(t))return E(Vv,"Processing collection: "+t),this.oe(e,t,n).next(e=>{n-=e,r.add(t)});i=!1})).next(()=>t-n)}oe(n,i,e){return this.localStore.indexManager.getMinOffsetFromCollectionGroup(n,i).next(r=>this.localStore.localDocuments.getNextDocuments(n,i,r,e).next(e=>{let t=e.changes;return this.localStore.indexManager.updateIndexEntries(n,t).next(()=>this._e(r,e)).next(e=>(E(Vv,"Updating offset: "+e),this.localStore.indexManager.updateCollectionGroup(n,i,e))).next(()=>t.size)}))}_e(e,t){let n=e;return t.changes.forEach((e,t)=>{var r=Iv(t);0<Ev(r,n)&&(n=r)}),new Tv(n.readTime,n.documentKey,Math.max(t.batchId,e.largestBatchId))}}class jv{constructor(e,t){this.previousValue=e,t&&(t.sequenceNumberHandler=e=>this.ae(e),this.ue=e=>t.writeSequenceNumber(e))}ae(e){return this.previousValue=Math.max(e,this.previousValue),this.previousValue}next(){var e=++this.previousValue;return this.ue&&this.ue(e),e}}let zv=jv.ce=-1;function Kv(e){return null==e}function Wv(e){return 0===e&&1/e==-1/0}function Hv(e){return"number"==typeof e&&Number.isInteger(e)&&!Wv(e)&&e<=Number.MAX_SAFE_INTEGER&&e>=Number.MIN_SAFE_INTEGER}let Gv="";function $v(e){let t="";for(let r=0;r<e.length;r++)0<t.length&&(t=Qv(t)),t=((t,e)=>{let r=e,n=t.length;for(let i=0;i<n;i++){let e=t.charAt(i);switch(e){case"\0":r+="";break;case Gv:r+="";break;default:r+=e}}return r})(e.get(r),t);return Qv(t)}function Qv(e){return e+Gv+""}function Yv(r){let e=r.length;if(S(2<=e,64408,{path:r}),2===e)return S(r.charAt(0)===Gv&&""===r.charAt(1),56145,{path:r}),R.emptyPath();var __PRIVATE_lastReasonableEscapeIndex=e-2,n=[];let i="";for(let a=0;a<e;){let t=r.indexOf(Gv,a);switch((t<0||t>__PRIVATE_lastReasonableEscapeIndex)&&C(50515,{path:r}),r.charAt(t+1)){case"":var s=r.substring(a,t);let e;0===i.length?e=s:(i+=s,e=i,i=""),n.push(e);break;case"":i=i+r.substring(a,t)+"\0";break;case"":i+=r.substring(a,t+1);break;default:C(61167,{path:r})}a=t+2}return new R(n)}let Jv="remoteDocuments",Xv="owner",Zv="owner",e_="mutationQueues",t_="mutations",r_="batchId",n_="userMutationsIndex",i_=["userId","batchId"];function s_(e,t){return[e,$v(t)]}function a_(e,t,r){return[e,$v(t),r]}let o_={},l_="documentMutations",h_="remoteDocumentsV14",u_=["prefixPath","collectionGroup","readTime","documentId"],c_="documentKeyIndex",d_=["prefixPath","collectionGroup","documentId"],p_="collectionGroupIndex",f_=["collectionGroup","readTime","prefixPath","documentId"],g_="remoteDocumentGlobal",m_="remoteDocumentGlobalKey",v_="targets",__="queryTargetsIndex",y_=["canonicalId","targetId"],w_="targetDocuments",b_=["targetId","path"],I_="documentTargetsIndex",T_=["path","targetId"],E_="targetGlobalKey",C_="targetGlobal",S_="collectionParents",k_=["collectionId","parent"],A_="clientMetadata",N_="bundles",R_="namedQueries",P_="indexConfiguration",D_="collectionGroupIndex",x_="indexState",O_=["indexId","uid"],M_="sequenceNumberIndex",L_=["uid","sequenceNumber"],F_="indexEntries",U_=["indexId","uid","arrayValue","directionalValue","orderedDocumentKey","documentKey"],V_="documentKeyIndex",q_=["indexId","uid","orderedDocumentKey"],B_="documentOverlays",j_=["userId","collectionPath","documentId"],z_="collectionPathOverlayIndex",K_=["userId","collectionPath","largestBatchId"],W_="collectionGroupOverlayIndex",H_=["userId","collectionGroup","largestBatchId"],G_="globals",$_=[e_,t_,l_,Jv,v_,Xv,C_,w_,A_,g_,S_,N_,R_],Q_=[...$_,B_],Y_=[e_,t_,l_,h_,v_,Xv,C_,w_,A_,g_,S_,N_,R_,B_],J_=Y_,X_=[...J_,P_,x_,F_],Z_=X_,ey=[...X_,G_],ty=ey;class ry extends Sv{constructor(e,t){super(),this.le=e,this.currentSequenceNumber=t}}function ny(e,t){var r=e;return Rv.O(r.le,t)}function iy(e){let t=0;for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t++;return t}function sy(e,t){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t(r,e[r])}function ay(e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}class oy{constructor(e,t){this.comparator=e,this.root=t||hy.EMPTY}insert(e,t){return new oy(this.comparator,this.root.insert(e,t,this.comparator).copy(null,null,hy.BLACK,null,null))}remove(e){return new oy(this.comparator,this.root.remove(e,this.comparator).copy(null,null,hy.BLACK,null,null))}get(e){let t=this.root;for(;!t.isEmpty();){var r=this.comparator(e,t.key);if(0===r)return t.value;r<0?t=t.left:0<r&&(t=t.right)}return null}indexOf(e){let t=0,r=this.root;for(;!r.isEmpty();){var n=this.comparator(e,r.key);if(0===n)return t+r.left.size;r=n<0?r.left:(t+=r.left.size+1,r.right)}return-1}isEmpty(){return this.root.isEmpty()}get size(){return this.root.size}minKey(){return this.root.minKey()}maxKey(){return this.root.maxKey()}inorderTraversal(e){return this.root.inorderTraversal(e)}forEach(r){this.inorderTraversal((e,t)=>(r(e,t),!1))}toString(){let r=[];return this.inorderTraversal((e,t)=>(r.push(e+":"+t),!1)),`{${r.join(", ")}}`}reverseTraversal(e){return this.root.reverseTraversal(e)}getIterator(){return new ly(this.root,null,this.comparator,!1)}getIteratorFrom(e){return new ly(this.root,e,this.comparator,!1)}getReverseIterator(){return new ly(this.root,null,this.comparator,!0)}getReverseIteratorFrom(e){return new ly(this.root,e,this.comparator,!0)}}class ly{constructor(e,t,r,n){this.isReverse=n,this.nodeStack=[];let i=1;for(;!e.isEmpty();)if(i=t?r(e.key,t):1,t&&n&&(i*=-1),i<0)e=this.isReverse?e.left:e.right;else{if(0===i){this.nodeStack.push(e);break}this.nodeStack.push(e),e=this.isReverse?e.right:e.left}}getNext(){let e=this.nodeStack.pop();var t={key:e.key,value:e.value};if(this.isReverse)for(e=e.left;!e.isEmpty();)this.nodeStack.push(e),e=e.right;else for(e=e.right;!e.isEmpty();)this.nodeStack.push(e),e=e.left;return t}hasNext(){return 0<this.nodeStack.length}peek(){var e;return 0===this.nodeStack.length?null:{key:(e=this.nodeStack[this.nodeStack.length-1]).key,value:e.value}}}class hy{constructor(e,t,r,n,i){this.key=e,this.value=t,this.color=null!=r?r:hy.RED,this.left=null!=n?n:hy.EMPTY,this.right=null!=i?i:hy.EMPTY,this.size=this.left.size+1+this.right.size}copy(e,t,r,n,i){return new hy(null!=e?e:this.key,null!=t?t:this.value,null!=r?r:this.color,null!=n?n:this.left,null!=i?i:this.right)}isEmpty(){return!1}inorderTraversal(e){return this.left.inorderTraversal(e)||e(this.key,this.value)||this.right.inorderTraversal(e)}reverseTraversal(e){return this.right.reverseTraversal(e)||e(this.key,this.value)||this.left.reverseTraversal(e)}min(){return this.left.isEmpty()?this:this.left.min()}minKey(){return this.min().key}maxKey(){return this.right.isEmpty()?this.key:this.right.maxKey()}insert(e,t,r){var n=this,i=r(e,n.key);return(n=i<0?n.copy(null,null,null,n.left.insert(e,t,r),null):0===i?n.copy(null,t,null,null,null):n.copy(null,null,null,null,n.right.insert(e,t,r))).fixUp()}removeMin(){if(this.left.isEmpty())return hy.EMPTY;let e=this;return(e=(e=e.left.isRed()||e.left.left.isRed()?e:e.moveRedLeft()).copy(null,null,null,e.left.removeMin(),null)).fixUp()}remove(e,t){let r,n=this;if(t(e,n.key)<0)n=(n=n.left.isEmpty()||n.left.isRed()||n.left.left.isRed()?n:n.moveRedLeft()).copy(null,null,null,n.left.remove(e,t),null);else{if(0===t(e,(n=(n=n.left.isRed()?n.rotateRight():n).right.isEmpty()||n.right.isRed()||n.right.left.isRed()?n:n.moveRedRight()).key)){if(n.right.isEmpty())return hy.EMPTY;r=n.right.min(),n=n.copy(r.key,r.value,null,null,n.right.removeMin())}n=n.copy(null,null,null,null,n.right.remove(e,t))}return n.fixUp()}isRed(){return this.color}fixUp(){let e=this;return e=(e=(e=e.right.isRed()&&!e.left.isRed()?e.rotateLeft():e).left.isRed()&&e.left.left.isRed()?e.rotateRight():e).left.isRed()&&e.right.isRed()?e.colorFlip():e}moveRedLeft(){let e=this.colorFlip();return e=e.right.left.isRed()?(e=(e=e.copy(null,null,null,null,e.right.rotateRight())).rotateLeft()).colorFlip():e}moveRedRight(){let e=this.colorFlip();return e=e.left.left.isRed()?(e=e.rotateRight()).colorFlip():e}rotateLeft(){var e=this.copy(null,null,hy.RED,null,this.right.left);return this.right.copy(null,null,this.color,e,null)}rotateRight(){var e=this.copy(null,null,hy.RED,this.left.right,null);return this.left.copy(null,null,this.color,null,e)}colorFlip(){var e=this.left.copy(null,null,!this.left.color,null,null),t=this.right.copy(null,null,!this.right.color,null,null);return this.copy(null,null,!this.color,e,t)}checkMaxDepth(){var e=this.check();return Math.pow(2,e)<=this.size+1}check(){if(this.isRed()&&this.left.isRed())throw C(43730,{key:this.key,value:this.value});if(this.right.isRed())throw C(14113,{key:this.key,value:this.value});var e=this.left.check();if(e!==this.right.check())throw C(27949);return e+(this.isRed()?0:1)}}hy.EMPTY=null,hy.RED=!0,hy.BLACK=!1,hy.EMPTY=new class{constructor(){this.size=0}get key(){throw C(57766)}get value(){throw C(16141)}get color(){throw C(16727)}get left(){throw C(29726)}get right(){throw C(36894)}copy(e,t,r,n,i){return this}insert(e,t,r){return new hy(e,t)}remove(e,t){return this}isEmpty(){return!0}inorderTraversal(e){return!1}reverseTraversal(e){return!1}minKey(){return null}maxKey(){return null}isRed(){return!1}checkMaxDepth(){return!0}check(){return 0}};class L{constructor(e){this.comparator=e,this.data=new oy(this.comparator)}has(e){return null!==this.data.get(e)}first(){return this.data.minKey()}last(){return this.data.maxKey()}get size(){return this.data.size}indexOf(e){return this.data.indexOf(e)}forEach(r){this.data.inorderTraversal((e,t)=>(r(e),!1))}forEachInRange(e,t){for(var r=this.data.getIteratorFrom(e[0]);r.hasNext();){var n=r.getNext();if(0<=this.comparator(n.key,e[1]))return;t(n.key)}}forEachWhile(e,t){for(var r=void 0!==t?this.data.getIteratorFrom(t):this.data.getIterator();r.hasNext();)if(!e(r.getNext().key))return}firstAfterOrEqual(e){var t=this.data.getIteratorFrom(e);return t.hasNext()?t.getNext().key:null}getIterator(){return new uy(this.data.getIterator())}getIteratorFrom(e){return new uy(this.data.getIteratorFrom(e))}add(e){return this.copy(this.data.remove(e).insert(e,!0))}delete(e){return this.has(e)?this.copy(this.data.remove(e)):this}isEmpty(){return this.data.isEmpty()}unionWith(e){let t=this;return t.size<e.size&&(t=e,e=this),e.forEach(e=>{t=t.add(e)}),t}isEqual(e){if(!(e instanceof L))return!1;if(this.size!==e.size)return!1;for(var r=this.data.getIterator(),n=e.data.getIterator();r.hasNext();){let e=r.getNext().key,t=n.getNext().key;if(0!==this.comparator(e,t))return!1}return!0}toArray(){let t=[];return this.forEach(e=>{t.push(e)}),t}toString(){let t=[];return this.forEach(e=>t.push(e)),"SortedSet("+t.toString()+")"}copy(e){var t=new L(this.comparator);return t.data=e,t}}class uy{constructor(e){this.iter=e}getNext(){return this.iter.getNext().key}hasNext(){return this.iter.hasNext()}}function cy(e){return e.hasNext()?e.getNext():void 0}class dy{constructor(e){(this.fields=e).sort(iv.comparator)}static empty(){return new dy([])}unionWith(e){let t=new L(iv.comparator);for(let e of this.fields)t=t.add(e);for(var r of e)t=t.add(r);return new dy(t.toArray())}covers(e){for(var t of this.fields)if(t.isPrefixOf(e))return!0;return!1}isEqual(e){return Zm(this.fields,e.fields,(e,t)=>e.isEqual(t))}}class py extends Error{constructor(){super(...arguments),this.name="Base64DecodeError"}}class fy{constructor(e){this.binaryString=e}static fromBase64String(e){var t=(e=>{try{return atob(e)}catch(e){throw"undefined"!=typeof DOMException&&e instanceof DOMException?new py("Invalid base64 string: "+e):e}})(e);return new fy(t)}static fromUint8Array(e){var t=(e=>{let t="";for(let r=0;r<e.length;++r)t+=String.fromCharCode(e[r]);return t})(e);return new fy(t)}[Symbol.iterator](){let e=0;return{next:()=>e<this.binaryString.length?{value:this.binaryString.charCodeAt(e++),done:!1}:{value:void 0,done:!0}}}toBase64(){return e=this.binaryString,btoa(e);var e}toUint8Array(){var e=this.binaryString,t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}approximateByteSize(){return 2*this.binaryString.length}compareTo(e){return N(this.binaryString,e.binaryString)}isEqual(e){return this.binaryString===e.binaryString}}fy.EMPTY_BYTE_STRING=new fy("");let gy=new RegExp(/^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(?:\.(\d+))?Z$/);function my(t){if(S(!!t,39018),"string"!=typeof t)return{seconds:vy(t.seconds),nanos:vy(t.nanos)};{let e=0;var r=gy.exec(t),r=(S(!!r,46558,{timestamp:t}),r[1]&&(r=((r=r[1])+"000000000").substr(0,9),e=Number(r)),new Date(t));return{seconds:Math.floor(r.getTime()/1e3),nanos:e}}}function vy(e){return"number"==typeof e?e:"string"==typeof e?Number(e):0}function _y(e){return"string"==typeof e?fy.fromBase64String(e):fy.fromUint8Array(e)}let yy="server_timestamp",wy="__type__",by="__previous_value__",Iy="__local_write_time__";function Ty(e){return(e?.mapValue?.fields||{})[wy]?.stringValue===yy}function Ey(e){var t=e.mapValue.fields[by];return Ty(t)?Ey(t):t}function Cy(e){var t=my(e.mapValue.fields[Iy].timestampValue);return new x(t.seconds,t.nanos)}class Sy{constructor(e,t,r,n,i,s,a,o,l,h){this.databaseId=e,this.appId=t,this.persistenceKey=r,this.host=n,this.ssl=i,this.forceLongPolling=s,this.autoDetectLongPolling=a,this.longPollingOptions=o,this.useFetchStreams=l,this.isUsingEmulator=h}}let ky="(default)";class Ay{constructor(e,t){this.projectId=e,this.database=t||ky}static empty(){return new Ay("","")}get isDefaultDatabase(){return this.database===ky}isEqual(e){return e instanceof Ay&&e.projectId===this.projectId&&e.database===this.database}}let Ny="__type__",Ry="__max__",Py={mapValue:{fields:{__type__:{stringValue:Ry}}}},Dy="__vector__",xy="value",Oy={nullValue:"NULL_VALUE"};function My(e){return"nullValue"in e?0:"booleanValue"in e?1:"integerValue"in e||"doubleValue"in e?2:"timestampValue"in e?3:"stringValue"in e?5:"bytesValue"in e?6:"referenceValue"in e?7:"geoPointValue"in e?8:"arrayValue"in e?9:"mapValue"in e?Ty(e)?4:Yy(e)?9007199254740991:$y(e)?10:11:C(28295,{value:e})}function Ly(t,r){if(t===r)return!0;var n,i,s,a,o,e=My(t);if(e!==My(r))return!1;switch(e){case 0:case 9007199254740991:return!0;case 1:return t.booleanValue===r.booleanValue;case 4:return Cy(t).isEqual(Cy(r));case 3:return s=r,"string"==typeof(i=t).timestampValue&&"string"==typeof s.timestampValue&&i.timestampValue.length===s.timestampValue.length?i.timestampValue===s.timestampValue:(a=my(i.timestampValue),o=my(s.timestampValue),a.seconds===o.seconds&&a.nanos===o.nanos);case 5:return t.stringValue===r.stringValue;case 6:return i=r,_y(t.bytesValue).isEqual(_y(i.bytesValue));case 7:return t.referenceValue===r.referenceValue;case 8:return s=r,vy((n=t).geoPointValue.latitude)===vy(s.geoPointValue.latitude)&&vy(n.geoPointValue.longitude)===vy(s.geoPointValue.longitude);case 2:return n=r,"integerValue"in(h=t)&&"integerValue"in n?vy(h.integerValue)===vy(n.integerValue):"doubleValue"in h&&"doubleValue"in n&&((a=vy(h.doubleValue))===(o=vy(n.doubleValue))?Wv(a)===Wv(o):isNaN(a)&&isNaN(o));case 9:return Zm(t.arrayValue.values||[],r.arrayValue.values||[],Ly);case 10:case 11:var l=t,h=r,u=l.mapValue.fields||{},c=h.mapValue.fields||{};if(iy(u)!==iy(c))return!1;for(let e in u)if(u.hasOwnProperty(e)&&(void 0===c[e]||!Ly(u[e],c[e])))return!1;return!0;default:return C(52216,{left:t})}}function Fy(e,t){return void 0!==(e.values||[]).find(e=>Ly(e,t))}function Uy(e,n){if(e===n)return 0;var i,s,a,o,l,h,u,c,d=My(e),t=My(n);if(d!==t)return N(d,t);switch(d){case 0:case 9007199254740991:return 0;case 1:return N(e.booleanValue,n.booleanValue);case 2:return h=n,u=vy((l=e).integerValue||l.doubleValue),c=vy(h.integerValue||h.doubleValue),u<c?-1:c<u?1:u===c?0:isNaN(u)?isNaN(c)?0:-1:1;case 3:return Vy(e.timestampValue,n.timestampValue);case 4:return Vy(Cy(e),Cy(n));case 5:return Qm(e.stringValue,n.stringValue);case 6:return l=e.bytesValue,h=n.bytesValue,u=_y(l),c=_y(h),u.compareTo(c);case 7:var p=e.referenceValue,f=n.referenceValue,g=p.split("/"),m=f.split("/");for(let t=0;t<g.length&&t<m.length;t++){let e=N(g[t],m[t]);if(0!==e)return e}return N(g.length,m.length);case 8:return p=e.geoPointValue,f=n.geoPointValue,0!==(o=N(vy(p.latitude),vy(f.latitude)))?o:N(vy(p.longitude),vy(f.longitude));case 9:return qy(e.arrayValue,n.arrayValue);case 10:return v=e.mapValue,i=n.mapValue,o=v.fields||{},s=i.fields||{},o=o[xy]?.arrayValue,s=s[xy]?.arrayValue,0!==(a=N(o?.values?.length||0,s?.values?.length||0))?a:qy(o,s);case 11:var v=e.mapValue,_=n.mapValue;if(v===Py.mapValue&&_===Py.mapValue)return 0;if(v===Py.mapValue)return 1;if(_===Py.mapValue)return-1;var y=v.fields||{},w=Object.keys(y),b=_.fields||{},I=Object.keys(b);w.sort(),I.sort();for(let r=0;r<w.length&&r<I.length;++r){let e=Qm(w[r],I[r]);if(0!==e)return e;var T=Uy(y[w[r]],b[I[r]]);if(0!==T)return T}return N(w.length,I.length);default:throw C(23264,{he:d})}}function Vy(e,t){var r,n,i;return"string"==typeof e&&"string"==typeof t&&e.length===t.length?N(e,t):(r=my(e),n=my(t),0!==(i=N(r.seconds,n.seconds))?i:N(r.nanos,n.nanos))}function qy(e,t){var r=e.values||[],n=t.values||[];for(let i=0;i<r.length&&i<n.length;++i){let e=Uy(r[i],n[i]);if(e)return e}return N(r.length,n.length)}function By(e){return function s(e){return"nullValue"in e?"null":"booleanValue"in e?""+e.booleanValue:"integerValue"in e?""+e.integerValue:"doubleValue"in e?""+e.doubleValue:"timestampValue"in e?(e=>{let t=my(e);return`time(${t.seconds},${t.nanos})`})(e.timestampValue):"stringValue"in e?e.stringValue:"bytesValue"in e?(e=>_y(e).toBase64())(e.bytesValue):"referenceValue"in e?(e=>P.fromName(e).toString())(e.referenceValue):"geoPointValue"in e?(e=>`geo(${e.latitude},${e.longitude})`)(e.geoPointValue):"arrayValue"in e?(e=>{let t="[",r=!0;for(var n of e.values||[])r?r=!1:t+=",",t+=s(n);return t+"]"})(e.arrayValue):"mapValue"in e?(e=>{let t=Object.keys(e.fields||{}).sort(),r="{",n=!0;for(var i of t)n?n=!1:r+=",",r+=i+":"+s(e.fields[i]);return r+"}"})(e.mapValue):C(61005,{value:e})}(e)}function jy(e,t){return{referenceValue:`projects/${e.projectId}/databases/${e.database}/documents/`+t.path.canonicalString()}}function zy(e){return!!e&&"integerValue"in e}function Ky(e){return!!e&&"arrayValue"in e}function Wy(e){return e&&"nullValue"in e}function Hy(e){return e&&"doubleValue"in e&&isNaN(Number(e.doubleValue))}function Gy(e){return e&&"mapValue"in e}function $y(e){return(e?.mapValue?.fields||{})[Ny]?.stringValue===Dy}function Qy(t){if(t.geoPointValue)return{geoPointValue:{...t.geoPointValue}};if(t.timestampValue&&"object"==typeof t.timestampValue)return{timestampValue:{...t.timestampValue}};if(t.mapValue){let r={mapValue:{fields:{}}};return sy(t.mapValue.fields,(e,t)=>r.mapValue.fields[e]=Qy(t)),r}if(t.arrayValue){var r={arrayValue:{values:[]}};for(let e=0;e<(t.arrayValue.values||[]).length;++e)r.arrayValue.values[e]=Qy(t.arrayValue.values[e]);return r}return{...t}}function Yy(e){return(((e.mapValue||{}).fields||{}).__type__||{}).stringValue===Ry}let Jy={mapValue:{fields:{[Ny]:{stringValue:Dy},[xy]:{arrayValue:{}}}}};function Xy(e,t){var r=Uy(e.value,t.value);return 0!==r?r:e.inclusive&&!t.inclusive?-1:!e.inclusive&&t.inclusive?1:0}function Zy(e,t){var r=Uy(e.value,t.value);return 0!==r?r:e.inclusive&&!t.inclusive?1:!e.inclusive&&t.inclusive?-1:0}class ew{constructor(e){this.value=e}static empty(){return new ew({mapValue:{}})}field(r){if(r.isEmpty())return this.value;{let e=this.value;for(let t=0;t<r.length-1;++t)if(!Gy(e=(e.mapValue.fields||{})[r.get(t)]))return null;return(e=(e.mapValue.fields||{})[r.lastSegment()])||null}}set(e,t){this.getFieldsMap(e.popLast())[e.lastSegment()]=Qy(t)}setAll(e){let r=iv.emptyPath(),n={},i=[];e.forEach((e,t)=>{if(!r.isImmediateParentOf(t)){let e=this.getFieldsMap(r);this.applyChanges(e,n,i),n={},i=[],r=t.popLast()}e?n[t.lastSegment()]=Qy(e):i.push(t.lastSegment())});var t=this.getFieldsMap(r);this.applyChanges(t,n,i)}delete(e){var t=this.field(e.popLast());Gy(t)&&t.mapValue.fields&&delete t.mapValue.fields[e.lastSegment()]}isEqual(e){return Ly(this.value,e.value)}getFieldsMap(t){let r=this.value;r.mapValue.fields||(r.mapValue={fields:{}});for(let n=0;n<t.length;++n){let e=r.mapValue.fields[t.get(n)];Gy(e)&&e.mapValue.fields||(e={mapValue:{fields:{}}},r.mapValue.fields[t.get(n)]=e),r=e}return r.mapValue.fields}applyChanges(r,e,t){sy(e,(e,t)=>r[e]=t);for(let e of t)delete r[e]}clone(){return new ew(Qy(this.value))}}class tw{constructor(e,t,r,n,i,s,a){this.key=e,this.documentType=t,this.version=r,this.readTime=n,this.createTime=i,this.data=s,this.documentState=a}static newInvalidDocument(e){return new tw(e,0,O.min(),O.min(),O.min(),ew.empty(),0)}static newFoundDocument(e,t,r,n){return new tw(e,1,t,O.min(),r,n,0)}static newNoDocument(e,t){return new tw(e,2,t,O.min(),O.min(),ew.empty(),0)}static newUnknownDocument(e,t){return new tw(e,3,t,O.min(),O.min(),ew.empty(),2)}convertToFoundDocument(e,t){return!this.createTime.isEqual(O.min())||2!==this.documentType&&0!==this.documentType||(this.createTime=e),this.version=e,this.documentType=1,this.data=t,this.documentState=0,this}convertToNoDocument(e){return this.version=e,this.documentType=2,this.data=ew.empty(),this.documentState=0,this}convertToUnknownDocument(e){return this.version=e,this.documentType=3,this.data=ew.empty(),this.documentState=2,this}setHasCommittedMutations(){return this.documentState=2,this}setHasLocalMutations(){return this.documentState=1,this.version=O.min(),this}setReadTime(e){return this.readTime=e,this}get hasLocalMutations(){return 1===this.documentState}get hasCommittedMutations(){return 2===this.documentState}get hasPendingWrites(){return this.hasLocalMutations||this.hasCommittedMutations}isValidDocument(){return 0!==this.documentType}isFoundDocument(){return 1===this.documentType}isNoDocument(){return 2===this.documentType}isUnknownDocument(){return 3===this.documentType}isEqual(e){return e instanceof tw&&this.key.isEqual(e.key)&&this.version.isEqual(e.version)&&this.documentType===e.documentType&&this.documentState===e.documentState&&this.data.isEqual(e.data)}mutableCopy(){return new tw(this.key,this.documentType,this.version,this.readTime,this.createTime,this.data.clone(),this.documentState)}toString(){return`Document(${this.key}, ${this.version}, ${JSON.stringify(this.data.value)}, {createTime: ${this.createTime}}), {documentType: ${this.documentType}}), {documentState: ${this.documentState}})`}}class rw{constructor(e,t){this.position=e,this.inclusive=t}}function nw(e,t,r){let n=0;for(let a=0;a<e.position.length;a++){var i=t[a],s=e.position[a];if(n=i.field.isKeyField()?P.comparator(P.fromName(s.referenceValue),r.key):Uy(s,r.data.field(i.field)),"desc"===i.dir&&(n*=-1),0!==n)break}return n}function iw(e,t){if(null===e)return null===t;if(null===t)return!1;if(e.inclusive!==t.inclusive||e.position.length!==t.position.length)return!1;for(let r=0;r<e.position.length;r++)if(!Ly(e.position[r],t.position[r]))return!1;return!0}class sw{constructor(e,t="asc"){this.field=e,this.dir=t}}class aw{}class F extends aw{constructor(e,t,r){super(),this.field=e,this.op=t,this.value=r}static create(e,t,r){return e.isKeyField()?"in"===t||"not-in"===t?this.createKeyFieldInFilter(e,t,r):new pw(e,t,r):"array-contains"===t?new vw(e,r):"in"===t?new _w(e,r):"not-in"===t?new yw(e,r):"array-contains-any"===t?new ww(e,r):new F(e,t,r)}static createKeyFieldInFilter(e,t,r){return new("in"===t?fw:gw)(e,r)}matches(e){var t=e.data.field(this.field);return"!="===this.op?null!==t&&void 0===t.nullValue&&this.matchesComparison(Uy(t,this.value)):null!==t&&My(this.value)===My(t)&&this.matchesComparison(Uy(t,this.value))}matchesComparison(e){switch(this.op){case"<":return e<0;case"<=":return e<=0;case"==":return 0===e;case"!=":return 0!==e;case">":return 0<e;case">=":return 0<=e;default:return C(47266,{operator:this.op})}}isInequality(){return 0<=["<","<=",">",">=","!=","not-in"].indexOf(this.op)}getFlattenedFilters(){return[this]}getFilters(){return[this]}}class U extends aw{constructor(e,t){super(),this.filters=e,this.op=t,this.Pe=null}static create(e,t){return new U(e,t)}matches(t){return ow(this)?void 0===this.filters.find(e=>!e.matches(t)):void 0!==this.filters.find(e=>e.matches(t))}getFlattenedFilters(){return null===this.Pe&&(this.Pe=this.filters.reduce((e,t)=>e.concat(t.getFlattenedFilters()),[])),this.Pe}getFilters(){return Object.assign([],this.filters)}}function ow(e){return"and"===e.op}function lw(e){return"or"===e.op}function hw(e){return uw(e)&&ow(e)}function uw(e){for(var t of e.filters)if(t instanceof U)return!1;return!0}function cw(e,t){var r=e.filters.concat(t);return U.create(r,e.op)}function dw(e){return e instanceof F?`${(t=e).field.canonicalString()} ${t.op} `+By(t.value):e instanceof U?(t=e).op.toString()+" {"+t.getFilters().map(dw).join(" ,")+"}":"Filter";var t}class pw extends F{constructor(e,t,r){super(e,t,r),this.key=P.fromName(r.referenceValue)}matches(e){var t=P.comparator(e.key,this.key);return this.matchesComparison(t)}}class fw extends F{constructor(e,t){super(e,"in",t),this.keys=mw(0,t)}matches(t){return this.keys.some(e=>e.isEqual(t.key))}}class gw extends F{constructor(e,t){super(e,"not-in",t),this.keys=mw(0,t)}matches(t){return!this.keys.some(e=>e.isEqual(t.key))}}function mw(e,t){return(t.arrayValue?.values||[]).map(e=>P.fromName(e.referenceValue))}class vw extends F{constructor(e,t){super(e,"array-contains",t)}matches(e){var t=e.data.field(this.field);return Ky(t)&&Fy(t.arrayValue,this.value)}}class _w extends F{constructor(e,t){super(e,"in",t)}matches(e){var t=e.data.field(this.field);return null!==t&&Fy(this.value.arrayValue,t)}}class yw extends F{constructor(e,t){super(e,"not-in",t)}matches(e){var t;return!Fy(this.value.arrayValue,{nullValue:"NULL_VALUE"})&&null!==(t=e.data.field(this.field))&&void 0===t.nullValue&&!Fy(this.value.arrayValue,t)}}class ww extends F{constructor(e,t){super(e,"array-contains-any",t)}matches(e){var t=e.data.field(this.field);return!(!Ky(t)||!t.arrayValue.values)&&t.arrayValue.values.some(e=>Fy(this.value.arrayValue,e))}}class bw{constructor(e,t=null,r=[],n=[],i=null,s=null,a=null){this.path=e,this.collectionGroup=t,this.orderBy=r,this.filters=n,this.limit=i,this.startAt=s,this.endAt=a,this.Te=null}}function Iw(e,t=null,r=[],n=[],i=null,s=null,a=null){return new bw(e,t,r,n,i,s,a)}function Tw(e){var t=e;if(null===t.Te){let e=t.path.canonicalString();null!==t.collectionGroup&&(e+="|cg:"+t.collectionGroup),e=(e=(e+="|f:")+t.filters.map(e=>function t(e){var r;return e instanceof F?e.field.canonicalString()+e.op.toString()+By(e.value):hw(e)?e.filters.map(e=>t(e)).join(","):(r=e.filters.map(e=>t(e)).join(","),e.op+`(${r})`)}(e)).join(",")+"|ob:")+t.orderBy.map(e=>(e=e).field.canonicalString()+e.dir).join(","),Kv(t.limit)||(e=(e+="|l:")+t.limit),t.startAt&&(e=(e=(e+="|lb:")+(t.startAt.inclusive?"b:":"a:"))+t.startAt.position.map(e=>By(e)).join(",")),t.endAt&&(e=(e=(e+="|ub:")+(t.endAt.inclusive?"a:":"b:"))+t.endAt.position.map(e=>By(e)).join(",")),t.Te=e}return t.Te}function Ew(e,t){if(e.limit!==t.limit)return!1;if(e.orderBy.length!==t.orderBy.length)return!1;for(let i=0;i<e.orderBy.length;i++)if(r=e.orderBy[i],n=t.orderBy[i],r.dir!==n.dir||!r.field.isEqual(n.field))return!1;var r,n;if(e.filters.length!==t.filters.length)return!1;for(let s=0;s<e.filters.length;s++)if(!function n(e,t){return e instanceof F?(r=e,(s=t)instanceof F&&r.op===s.op&&r.field.isEqual(s.field)&&Ly(r.value,s.value)):e instanceof U?(r=e,(i=t)instanceof U&&r.op===i.op&&r.filters.length===i.filters.length&&r.filters.reduce((e,t,r)=>e&&n(t,i.filters[r]),!0)):void C(19439);var i,r,s}(e.filters[s],t.filters[s]))return!1;return e.collectionGroup===t.collectionGroup&&!!e.path.isEqual(t.path)&&!!iw(e.startAt,t.startAt)&&iw(e.endAt,t.endAt)}function Cw(e){return P.isDocumentKey(e.path)&&null===e.collectionGroup&&0===e.filters.length}function Sw(e,t){return e.filters.filter(e=>e instanceof F&&e.field.isEqual(t))}function kw(e,r,n){let i=Oy,s=!0;for(let n of Sw(e,r)){let e=Oy,t=!0;switch(n.op){case"<":case"<=":e="nullValue"in(a=n.value)?Oy:"booleanValue"in a?{booleanValue:!1}:"integerValue"in a||"doubleValue"in a?{doubleValue:NaN}:"timestampValue"in a?{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}}:"stringValue"in a?{stringValue:""}:"bytesValue"in a?{bytesValue:""}:"referenceValue"in a?jy(Ay.empty(),P.empty()):"geoPointValue"in a?{geoPointValue:{latitude:-90,longitude:-180}}:"arrayValue"in a?{arrayValue:{}}:"mapValue"in a?$y(a)?Jy:{mapValue:{}}:C(35942,{value:a});break;case"==":case"in":case">=":e=n.value;break;case">":e=n.value,t=!1;break;case"!=":case"not-in":e=Oy}Xy({value:i,inclusive:s},{value:e,inclusive:t})<0&&(i=e,s=t)}var a;if(null!==n)for(let t=0;t<e.orderBy.length;++t)if(e.orderBy[t].field.isEqual(r)){let e=n.position[t];Xy({value:i,inclusive:s},{value:e,inclusive:n.inclusive})<0&&(i=e,s=n.inclusive);break}return{value:i,inclusive:s}}function Aw(e,r,n){let i=Py,s=!0;for(let n of Sw(e,r)){let e=Py,t=!0;switch(n.op){case">=":case">":e="nullValue"in(a=n.value)?{booleanValue:!1}:"booleanValue"in a?{doubleValue:NaN}:"integerValue"in a||"doubleValue"in a?{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}}:"timestampValue"in a?{stringValue:""}:"stringValue"in a?{bytesValue:""}:"bytesValue"in a?jy(Ay.empty(),P.empty()):"referenceValue"in a?{geoPointValue:{latitude:-90,longitude:-180}}:"geoPointValue"in a?{arrayValue:{}}:"arrayValue"in a?Jy:"mapValue"in a?$y(a)?{mapValue:{}}:Py:C(61959,{value:a}),t=!1;break;case"==":case"in":case"<=":e=n.value;break;case"<":e=n.value,t=!1;break;case"!=":case"not-in":e=Py}0<Zy({value:i,inclusive:s},{value:e,inclusive:t})&&(i=e,s=t)}var a;if(null!==n)for(let t=0;t<e.orderBy.length;++t)if(e.orderBy[t].field.isEqual(r)){let e=n.position[t];0<Zy({value:i,inclusive:s},{value:e,inclusive:n.inclusive})&&(i=e,s=n.inclusive);break}return{value:i,inclusive:s}}class Nw{constructor(e,t=null,r=[],n=[],i=null,s="F",a=null,o=null){this.path=e,this.collectionGroup=t,this.explicitOrderBy=r,this.filters=n,this.limit=i,this.limitType=s,this.startAt=a,this.endAt=o,this.Ie=null,this.Ee=null,this.de=null,this.startAt,this.endAt}}function Rw(e,t,r,n,i,s,a,o){return new Nw(e,t,r,n,i,s,a,o)}function Pw(e){return new Nw(e)}function Dw(e){return 0===e.filters.length&&null===e.limit&&null==e.startAt&&null==e.endAt&&(0===e.explicitOrderBy.length||1===e.explicitOrderBy.length&&e.explicitOrderBy[0].field.isKeyField())}function xw(e){return null!==e.collectionGroup}function Ow(e){let n=e;if(null===n.Ie){n.Ie=[];let t=new Set;for(var i of n.explicitOrderBy)n.Ie.push(i),t.add(i.field.canonicalString());let r=0<n.explicitOrderBy.length?n.explicitOrderBy[n.explicitOrderBy.length-1].dir:"asc",e=(e=>{let t=new L(iv.comparator);return e.filters.forEach(e=>{e.getFlattenedFilters().forEach(e=>{e.isInequality()&&(t=t.add(e.field))})}),t})(n);e.forEach(e=>{t.has(e.canonicalString())||e.isKeyField()||n.Ie.push(new sw(e,r))}),t.has(iv.keyField().canonicalString())||n.Ie.push(new sw(iv.keyField(),r))}return n.Ie}function Mw(e){var t=e;return t.Ee||(t.Ee=((e,t)=>{if("F"===e.limitType)return Iw(e.path,e.collectionGroup,t,e.filters,e.limit,e.startAt,e.endAt);t=t.map(e=>{var t="desc"===e.dir?"asc":"desc";return new sw(e.field,t)});var r=e.endAt?new rw(e.endAt.position,e.endAt.inclusive):null,n=e.startAt?new rw(e.startAt.position,e.startAt.inclusive):null;return Iw(e.path,e.collectionGroup,t,e.filters,e.limit,r,n)})(t,Ow(e))),t.Ee}function Lw(e,t){var r=e.filters.concat([t]);return new Nw(e.path,e.collectionGroup,e.explicitOrderBy.slice(),r,e.limit,e.limitType,e.startAt,e.endAt)}function Fw(e,t,r){return new Nw(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),t,r,e.startAt,e.endAt)}function Uw(e,t){return Ew(Mw(e),Mw(t))&&e.limitType===t.limitType}function Vw(e){return Tw(Mw(e))+"|lt:"+e.limitType}function qw(e){return`Query(target=${(e=>{let t=e.path.canonicalString();return null!==e.collectionGroup&&(t+=" collectionGroup="+e.collectionGroup),0<e.filters.length&&(t+=`, filters: [${e.filters.map(e=>dw(e)).join(", ")}]`),Kv(e.limit)||(t+=", limit: "+e.limit),0<e.orderBy.length&&(t+=`, orderBy: [${e.orderBy.map(e=>`${(e=e).field.canonicalString()} (${e.dir})`).join(", ")}]`),e.startAt&&(t=(t=(t+=", startAt: ")+(e.startAt.inclusive?"b:":"a:"))+e.startAt.position.map(e=>By(e)).join(",")),`Target(${t=e.endAt?(t=(t+=", endAt: ")+(e.endAt.inclusive?"a:":"b:"))+e.endAt.position.map(e=>By(e)).join(","):t})`})(Mw(e))}; limitType=${e.limitType})`}function Bw(e,t){return t.isFoundDocument()&&(s=e,o=(a=t).key.path,null!==s.collectionGroup?a.key.hasCollectionId(s.collectionGroup)&&s.path.isPrefixOf(o):P.isDocumentKey(s.path)?s.path.isEqual(o):s.path.isImmediateParentOf(o))&&((e,t)=>{for(var r of Ow(e))if(!r.field.isKeyField()&&null===t.data.field(r.field))return;return 1})(e,t)&&((e,t)=>{for(var r of e.filters)if(!r.matches(t))return;return 1})(e,t)&&(a=t,!(s=e).startAt||(n=s.startAt,r=Ow(s),i=nw(n,r,a),n.inclusive?i<=0:i<0))&&(!s.endAt||(r=s.endAt,n=Ow(s),i=nw(r,n,a),r.inclusive?0<=i:0<i));var r,n,i,s,a,o}function jw(e){return e.collectionGroup||(e.path.length%2==1?e.path.lastSegment():e.path.get(e.path.length-2))}function zw(e){return(t,r)=>{let n=!1;for(var i of Ow(e)){let e=((e,t,r)=>{var n=e.field.isKeyField()?P.comparator(t.key,r.key):((e,t,r)=>{var n=t.data.field(e),i=r.data.field(e);return null!==n&&null!==i?Uy(n,i):C(42886)})(e.field,t,r);switch(e.dir){case"asc":return n;case"desc":return-1*n;default:return C(19790,{direction:e.dir})}})(i,t,r);if(0!==e)return e;n=n||i.field.isKeyField()}return 0}}class Kw{constructor(e,t){this.mapKeyFn=e,this.equalsFn=t,this.inner={},this.innerSize=0}get(r){let e=this.mapKeyFn(r),n=this.inner[e];if(void 0!==n)for(let[e,t]of n)if(this.equalsFn(e,r))return t}has(e){return void 0!==this.get(e)}set(t,r){var e=this.mapKeyFn(t),n=this.inner[e];if(void 0===n)this.inner[e]=[[t,r]];else{for(let e=0;e<n.length;e++)if(this.equalsFn(n[e][0],t))return void(n[e]=[t,r]);n.push([t,r])}this.innerSize++}delete(t){var r=this.mapKeyFn(t),n=this.inner[r];if(void 0!==n)for(let e=0;e<n.length;e++)if(this.equalsFn(n[e][0],t))return 1===n.length?delete this.inner[r]:n.splice(e,1),this.innerSize--,!0;return!1}forEach(n){sy(this.inner,(e,t)=>{for(let[e,r]of t)n(e,r)})}isEmpty(){return ay(this.inner)}size(){return this.innerSize}}let Ww=new oy(P.comparator);let Hw=new oy(P.comparator);function Gw(...e){let t=Hw;for(var r of e)t=t.insert(r.key,r);return t}function $w(e){let r=Hw;return e.forEach((e,t)=>r=r.insert(e,t.overlayedDocument)),r}function Qw(){return new Kw(e=>e.toString(),(e,t)=>e.isEqual(t))}let Yw=new oy(P.comparator),Jw=new L(P.comparator);function V(...e){let t=Jw;for(var r of e)t=t.add(r);return t}let Xw=new L(N);function Zw(e,t){if(e.useProto3Json){if(isNaN(t))return{doubleValue:"NaN"};if(t===1/0)return{doubleValue:"Infinity"};if(t===-1/0)return{doubleValue:"-Infinity"}}return{doubleValue:Wv(t)?"-0":t}}function eb(e){return{integerValue:""+e}}function tb(e,t){return Hv(t)?eb(t):Zw(e,t)}class rb{constructor(){this._=void 0}}function nb(e,t){return e instanceof hb?zy(e=t)||(e=e)&&"doubleValue"in e?t:{integerValue:0}:null}class ib extends rb{}class sb extends rb{constructor(e){super(),this.elements=e}}function ab(e,t){var r=cb(t);for(let t of e.elements)r.some(e=>Ly(e,t))||r.push(t);return{arrayValue:{values:r}}}class ob extends rb{constructor(e){super(),this.elements=e}}function lb(e,t){let r=cb(t);for(let t of e.elements)r=r.filter(e=>!Ly(e,t));return{arrayValue:{values:r}}}class hb extends rb{constructor(e,t){super(),this.serializer=e,this.Ae=t}}function ub(e){return vy(e.integerValue||e.doubleValue)}function cb(e){return Ky(e)&&e.arrayValue.values?e.arrayValue.values.slice():[]}class db{constructor(e,t){this.field=e,this.transform=t}}class pb{constructor(e,t){this.version=e,this.transformResults=t}}class fb{constructor(e,t){this.updateTime=e,this.exists=t}static none(){return new fb}static exists(e){return new fb(void 0,e)}static updateTime(e){return new fb(e)}get isNone(){return void 0===this.updateTime&&void 0===this.exists}isEqual(e){return this.exists===e.exists&&(this.updateTime?!!e.updateTime&&this.updateTime.isEqual(e.updateTime):!e.updateTime)}}function gb(e,t){return void 0!==e.updateTime?t.isFoundDocument()&&t.version.isEqual(e.updateTime):void 0===e.exists||e.exists===t.isFoundDocument()}class mb{}function vb(e,r){if(!e.hasLocalMutations||r&&0===r.fields.length)return null;if(null===r)return e.isNoDocument()?new Cb(e.key,fb.none()):new wb(e.key,e.data,fb.none());{var n,i=e.data,s=ew.empty();let t=new L(iv.comparator);for(n of r.fields)if(!t.has(n)){let e=i.field(n);null===e&&1<n.length&&(n=n.popLast(),e=i.field(n)),null===e?s.delete(n):s.set(n,e),t=t.add(n)}return new bb(e.key,s,new dy(t.toArray()),fb.none())}}function _b(e,t,r,n){return e instanceof wb?(s=t,a=r,o=n,gb((i=e).precondition,s)?(l=i.value.clone(),h=Eb(i.fieldTransforms,o,s),l.setAll(h),s.convertToFoundDocument(s.version,l).setHasLocalMutations(),null):a):e instanceof bb?(i=t,o=r,s=n,gb((a=e).precondition,i)?(h=Eb(a.fieldTransforms,s,i),(l=i.data).setAll(Ib(a)),l.setAll(h),i.convertToFoundDocument(i.version,l).setHasLocalMutations(),null===o?null:o.unionWith(a.fieldMask.fields).unionWith(a.fieldTransforms.map(e=>e.field))):o):(n=t,t=r,gb(e.precondition,n)?(n.convertToNoDocument(n.version).setHasLocalMutations(),null):t);var i,s,a,o,l,h}function yb(e,t){return e.type===t.type&&!!e.key.isEqual(t.key)&&!!e.precondition.isEqual(t.precondition)&&(r=e.fieldTransforms,n=t.fieldTransforms,!!(void 0===r&&void 0===n||r&&n&&Zm(r,n,(e,t)=>(t=t,(e=e).field.isEqual(t.field)&&(e=e.transform,t=t.transform,e instanceof sb&&t instanceof sb||e instanceof ob&&t instanceof ob?Zm(e.elements,t.elements,Ly):e instanceof hb&&t instanceof hb?Ly(e.Ae,t.Ae):e instanceof ib&&t instanceof ib)))))&&(0===e.type?e.value.isEqual(t.value):1!==e.type||e.data.isEqual(t.data)&&e.fieldMask.isEqual(t.fieldMask));var r,n}class wb extends mb{constructor(e,t,r,n=[]){super(),this.key=e,this.value=t,this.precondition=r,this.fieldTransforms=n,this.type=0}getFieldMask(){return null}}class bb extends mb{constructor(e,t,r,n,i=[]){super(),this.key=e,this.data=t,this.fieldMask=r,this.precondition=n,this.fieldTransforms=i,this.type=1}getFieldMask(){return this.fieldMask}}function Ib(r){let n=new Map;return r.fieldMask.fields.forEach(e=>{var t;e.isEmpty()||(t=r.data.field(e),n.set(e,t))}),n}function Tb(e,t,r){var n,i,s,a=new Map;S(e.length===r.length,32656,{Re:r.length,Ve:e.length});for(let u=0;u<r.length;u++){var o=e[u],l=o.transform,h=t.data.field(o.field);a.set(o.field,(n=l,i=h,s=r[u],n instanceof sb?ab(n,i):n instanceof ob?lb(n,i):s))}return a}function Eb(e,r,n){var i,s,a,o,l,h,u,c=new Map;for(i of e){let e=i.transform,t=n.data.field(i.field);c.set(i.field,(s=e,a=t,o=r,u=h=l=void 0,s instanceof ib?(o=o,h=a,u={fields:{[wy]:{stringValue:yy},[Iy]:{timestampValue:{seconds:o.seconds,nanos:o.nanoseconds}}}},(h=h&&Ty(h)?Ey(h):h)&&(u.fields[by]=h),{mapValue:u}):s instanceof sb?ab(s,a):s instanceof ob?lb(s,a):(u=nb(o=s,a),l=ub(u)+ub(o.Ae),zy(u)&&zy(o.Ae)?eb(l):Zw(o.serializer,l))))}return c}class Cb extends mb{constructor(e,t){super(),this.key=e,this.precondition=t,this.type=2,this.fieldTransforms=[]}getFieldMask(){return null}}class Sb extends mb{constructor(e,t){super(),this.key=e,this.precondition=t,this.type=3,this.fieldTransforms=[]}getFieldMask(){return null}}class kb{constructor(e,t,r,n){this.batchId=e,this.localWriteTime=t,this.baseMutations=r,this.mutations=n}applyToRemoteDocument(e,t){var r,n,i,s,a,o,l,h=t.mutationResults;for(let c=0;c<this.mutations.length;c++){var u=this.mutations[c];u.key.isEqual(e.key)&&(r=u,n=e,i=h[c],l=u=o=a=s=void 0,r instanceof wb?(a=n,o=i,u=(s=r).value.clone(),l=Tb(s.fieldTransforms,a,o.transformResults),u.setAll(l),a.convertToFoundDocument(o.version,u).setHasCommittedMutations()):r instanceof bb?(s=n,a=i,gb((o=r).precondition,s)?(l=Tb(o.fieldTransforms,s,a.transformResults),(u=s.data).setAll(Ib(o)),u.setAll(l),s.convertToFoundDocument(a.version,u).setHasCommittedMutations()):s.convertToUnknownDocument(a.version)):n.convertToNoDocument(i.version).setHasCommittedMutations())}}applyToLocalView(e,t){for(var r of this.baseMutations)r.key.isEqual(e.key)&&(t=_b(r,e,t,this.localWriteTime));for(var n of this.mutations)n.key.isEqual(e.key)&&(t=_b(n,e,t,this.localWriteTime));return t}applyToLocalDocumentSet(n,i){let s=Qw();return this.mutations.forEach(e=>{var t=n.get(e.key),r=t.overlayedDocument,t=this.applyToLocalView(r,t.mutatedFields),t=vb(r,i.has(e.key)?null:t);null!==t&&s.set(e.key,t),r.isValidDocument()||r.convertToNoDocument(O.min())}),s}keys(){return this.mutations.reduce((e,t)=>e.add(t.key),V())}isEqual(e){return this.batchId===e.batchId&&Zm(this.mutations,e.mutations,(e,t)=>yb(e,t))&&Zm(this.baseMutations,e.baseMutations,(e,t)=>yb(e,t))}}class Ab{constructor(e,t,r,n){this.batch=e,this.commitVersion=t,this.mutationResults=r,this.docVersions=n}static from(e,t,r){S(e.mutations.length===r.length,58842,{me:e.mutations.length,fe:r.length});let n=Yw;var i=e.mutations;for(let s=0;s<i.length;s++)n=n.insert(i[s].key,r[s].version);return new Ab(e,t,r,n)}}class Nb{constructor(e,t){this.largestBatchId=e,this.mutation=t}getKey(){return this.mutation.key}isEqual(e){return null!==e&&this.mutation===e.mutation}toString(){return`Overlay{
|
|
24
24
|
largestBatchId: ${this.largestBatchId},
|
|
25
25
|
mutation: ${this.mutation.toString()}
|
|
26
26
|
}`}}class Rb{constructor(e,t){this.count=e,this.unchangedNames=t}}function Pb(e){switch(e){case k.OK:return C(64938);case k.CANCELLED:case k.UNKNOWN:case k.DEADLINE_EXCEEDED:case k.RESOURCE_EXHAUSTED:case k.INTERNAL:case k.UNAVAILABLE:case k.UNAUTHENTICATED:return!1;case k.INVALID_ARGUMENT:case k.NOT_FOUND:case k.ALREADY_EXISTS:case k.PERMISSION_DENIED:case k.FAILED_PRECONDITION:case k.ABORTED:case k.OUT_OF_RANGE:case k.UNIMPLEMENTED:case k.DATA_LOSS:return!0;default:return C(15467,{code:e})}}function Db(e){if(void 0===e)return Mm("GRPC error has no .code"),k.UNKNOWN;switch(e){case km.OK:return k.OK;case km.CANCELLED:return k.CANCELLED;case km.UNKNOWN:return k.UNKNOWN;case km.DEADLINE_EXCEEDED:return k.DEADLINE_EXCEEDED;case km.RESOURCE_EXHAUSTED:return k.RESOURCE_EXHAUSTED;case km.INTERNAL:return k.INTERNAL;case km.UNAVAILABLE:return k.UNAVAILABLE;case km.UNAUTHENTICATED:return k.UNAUTHENTICATED;case km.INVALID_ARGUMENT:return k.INVALID_ARGUMENT;case km.NOT_FOUND:return k.NOT_FOUND;case km.ALREADY_EXISTS:return k.ALREADY_EXISTS;case km.PERMISSION_DENIED:return k.PERMISSION_DENIED;case km.FAILED_PRECONDITION:return k.FAILED_PRECONDITION;case km.ABORTED:return k.ABORTED;case km.OUT_OF_RANGE:return k.OUT_OF_RANGE;case km.UNIMPLEMENTED:return k.UNIMPLEMENTED;case km.DATA_LOSS:return k.DATA_LOSS;default:return C(39323,{code:e})}}(e=km=km||{})[e.OK=0]="OK",e[e.CANCELLED=1]="CANCELLED",e[e.UNKNOWN=2]="UNKNOWN",e[e.INVALID_ARGUMENT=3]="INVALID_ARGUMENT",e[e.DEADLINE_EXCEEDED=4]="DEADLINE_EXCEEDED",e[e.NOT_FOUND=5]="NOT_FOUND",e[e.ALREADY_EXISTS=6]="ALREADY_EXISTS",e[e.PERMISSION_DENIED=7]="PERMISSION_DENIED",e[e.UNAUTHENTICATED=16]="UNAUTHENTICATED",e[e.RESOURCE_EXHAUSTED=8]="RESOURCE_EXHAUSTED",e[e.FAILED_PRECONDITION=9]="FAILED_PRECONDITION",e[e.ABORTED=10]="ABORTED",e[e.OUT_OF_RANGE=11]="OUT_OF_RANGE",e[e.UNIMPLEMENTED=12]="UNIMPLEMENTED",e[e.INTERNAL=13]="INTERNAL",e[e.UNAVAILABLE=14]="UNAVAILABLE",e[e.DATA_LOSS=15]="DATA_LOSS";function xb(){return new TextEncoder}let Ob=new vm([4294967295,4294967295],0);function Mb(e){var t=xb().encode(e),r=new _m;return r.update(t),new Uint8Array(r.digest())}function Lb(e){var t=new DataView(e.buffer),r=t.getUint32(0,!0),n=t.getUint32(4,!0),i=t.getUint32(8,!0),t=t.getUint32(12,!0);return[new vm([r,n],0),new vm([i,t],0)]}class Fb{constructor(e,t,r){if(this.bitmap=e,this.padding=t,this.hashCount=r,t<0||8<=t)throw new Ub("Invalid padding: "+t);if(r<0)throw new Ub("Invalid hash count: "+r);if(0<e.length&&0===this.hashCount)throw new Ub("Invalid hash count: "+r);if(0===e.length&&0!==t)throw new Ub("Invalid padding when bitmap length is 0: "+t);this.ge=8*e.length-t,this.pe=vm.fromNumber(this.ge)}ye(e,t,r){let n=e.add(t.multiply(vm.fromNumber(r)));return(n=1===n.compare(Ob)?new vm([n.getBits(0),n.getBits(1)],0):n).modulo(this.pe).toNumber()}we(e){return!!(this.bitmap[Math.floor(e/8)]&1<<e%8)}mightContain(e){if(0===this.ge)return!1;let t=Mb(e),[r,n]=Lb(t);for(let i=0;i<this.hashCount;i++){let e=this.ye(r,n,i);if(!this.we(e))return!1}return!0}static create(e,t,r){let n=e%8==0?0:8-e%8,i=new Uint8Array(Math.ceil(e/8)),s=new Fb(i,n,t);return r.forEach(e=>s.insert(e)),s}insert(i){if(0!==this.ge){let e=Mb(i),[t,r]=Lb(e);for(let n=0;n<this.hashCount;n++){let e=this.ye(t,r,n);this.Se(e)}}}Se(e){var t=Math.floor(e/8);this.bitmap[t]|=1<<e%8}}class Ub extends Error{constructor(){super(...arguments),this.name="BloomFilterError"}}class Vb{constructor(e,t,r,n,i){this.snapshotVersion=e,this.targetChanges=t,this.targetMismatches=r,this.documentUpdates=n,this.resolvedLimboDocuments=i}static createSynthesizedRemoteEventForCurrentChange(e,t,r){var n=new Map;return n.set(e,qb.createSynthesizedTargetChangeForCurrentChange(e,t,r)),new Vb(O.min(),n,new oy(N),Ww,V())}}class qb{constructor(e,t,r,n,i){this.resumeToken=e,this.current=t,this.addedDocuments=r,this.modifiedDocuments=n,this.removedDocuments=i}static createSynthesizedTargetChangeForCurrentChange(e,t,r){return new qb(r,t,V(),V(),V())}}class Bb{constructor(e,t,r,n){this.be=e,this.removedTargetIds=t,this.key=r,this.De=n}}class jb{constructor(e,t){this.targetId=e,this.Ce=t}}class zb{constructor(e,t,r=fy.EMPTY_BYTE_STRING,n=null){this.state=e,this.targetIds=t,this.resumeToken=r,this.cause=n}}class Kb{constructor(){this.ve=0,this.Fe=Gb(),this.Me=fy.EMPTY_BYTE_STRING,this.xe=!1,this.Oe=!0}get current(){return this.xe}get resumeToken(){return this.Me}get Ne(){return 0!==this.ve}get Be(){return this.Oe}Le(e){0<e.approximateByteSize()&&(this.Oe=!0,this.Me=e)}ke(){let r=V(),n=V(),i=V();return this.Fe.forEach((e,t)=>{switch(t){case 0:r=r.add(e);break;case 2:n=n.add(e);break;case 1:i=i.add(e);break;default:C(38017,{changeType:t})}}),new qb(this.Me,this.xe,r,n,i)}qe(){this.Oe=!1,this.Fe=Gb()}Qe(e,t){this.Oe=!0,this.Fe=this.Fe.insert(e,t)}$e(e){this.Oe=!0,this.Fe=this.Fe.remove(e)}Ue(){this.ve+=1}Ke(){--this.ve,S(0<=this.ve,3241,{ve:this.ve})}We(){this.Oe=!0,this.xe=!0}}class Wb{constructor(e){this.Ge=e,this.ze=new Map,this.je=Ww,this.Je=Hb(),this.He=Hb(),this.Ye=new oy(N)}Ze(e){for(var t of e.be)e.De&&e.De.isFoundDocument()?this.Xe(t,e.De):this.et(t,e.key,e.De);for(var r of e.removedTargetIds)this.et(r,e.key,e.De)}tt(r){this.forEachTarget(r,e=>{var t=this.nt(e);switch(r.state){case 0:this.rt(e)&&t.Le(r.resumeToken);break;case 1:t.Ke(),t.Ne||t.qe(),t.Le(r.resumeToken);break;case 2:t.Ke(),t.Ne||this.removeTarget(e);break;case 3:this.rt(e)&&(t.We(),t.Le(r.resumeToken));break;case 4:this.rt(e)&&(this.it(e),t.Le(r.resumeToken));break;default:C(56790,{state:r.state})}})}forEachTarget(e,r){0<e.targetIds.length?e.targetIds.forEach(r):this.ze.forEach((e,t)=>{this.rt(t)&&r(t)})}st(n){let i=n.targetId,e=n.Ce.count,t=this.ot(i);if(t){var r=t.target;if(Cw(r))if(0===e){let e=new P(r.path);this.et(i,e,tw.newNoDocument(e,O.min()))}else S(1===e,20013,{expectedCount:e});else{let r=this._t(i);if(r!==e){let e=this.ut(n),t=e?this.ct(e,n,r):1;if(0!==t){this.it(i);let e=2===t?"TargetPurposeExistenceFilterMismatchBloom":"TargetPurposeExistenceFilterMismatch";this.Ye=this.Ye.insert(i,e)}}}}}ut(e){var t=e.Ce.unchangedNames;if(!t||!t.bits)return null;var{bits:{bitmap:t="",padding:r=0},hashCount:n=0}=t;let i,s;try{i=_y(t).toUint8Array()}catch(e){if(e instanceof py)return Lm("Decoding the base64 bloom filter in existence filter failed ("+e.message+"); ignoring the bloom filter and falling back to full re-query."),null;throw e}try{s=new Fb(i,r,n)}catch(e){return Lm(e instanceof Ub?"BloomFilter error: ":"Applying bloom filter failed: ",e),null}return 0===s.ge?null:s}ct(e,t,r){return t.Ce.count===r-this.Pt(e,t.targetId)?0:2}Pt(r,n){var e=this.Ge.getRemoteKeysForTarget(n);let i=0;return e.forEach(e=>{var t=this.Ge.ht(),t=`projects/${t.projectId}/databases/${t.database}/documents/`+e.path.canonicalString();r.mightContain(t)||(this.et(n,e,null),i++)}),i}Tt(n){let i=new Map,s=(this.ze.forEach((e,t)=>{var r=this.ot(t);if(r){if(e.current&&Cw(r.target)){let e=new P(r.target.path);this.It(e).has(t)||this.Et(t,e)||this.et(t,e,tw.newNoDocument(e,n))}e.Be&&(i.set(t,e.ke()),e.qe())}}),V());this.He.forEach((e,t)=>{let r=!0;t.forEachWhile(e=>{var t=this.ot(e);return!t||"TargetPurposeLimboResolution"===t.purpose||(r=!1)}),r&&(s=s.add(e))}),this.je.forEach((e,t)=>t.setReadTime(n));var e=new Vb(n,i,this.Ye,this.je,s);return this.je=Ww,this.Je=Hb(),this.He=Hb(),this.Ye=new oy(N),e}Xe(e,t){var r;this.rt(e)&&(r=this.Et(e,t.key)?2:0,this.nt(e).Qe(t.key,r),this.je=this.je.insert(t.key,t),this.Je=this.Je.insert(t.key,this.It(t.key).add(e)),this.He=this.He.insert(t.key,this.dt(t.key).add(e)))}et(e,t,r){var n;this.rt(e)&&(n=this.nt(e),this.Et(e,t)?n.Qe(t,1):n.$e(t),this.He=this.He.insert(t,this.dt(t).delete(e)),this.He=this.He.insert(t,this.dt(t).add(e)),r)&&(this.je=this.je.insert(t,r))}removeTarget(e){this.ze.delete(e)}_t(e){var t=this.nt(e).ke();return this.Ge.getRemoteKeysForTarget(e).size+t.addedDocuments.size-t.removedDocuments.size}Ue(e){this.nt(e).Ue()}nt(e){let t=this.ze.get(e);return t||(t=new Kb,this.ze.set(e,t)),t}dt(e){let t=this.He.get(e);return t||(t=new L(N),this.He=this.He.insert(e,t)),t}It(e){let t=this.Je.get(e);return t||(t=new L(N),this.Je=this.Je.insert(e,t)),t}rt(e){var t=null!==this.ot(e);return t||E("WatchChangeAggregator","Detected inactive target",e),t}ot(e){var t=this.ze.get(e);return t&&t.Ne?null:this.Ge.At(e)}it(t){this.ze.set(t,new Kb),this.Ge.getRemoteKeysForTarget(t).forEach(e=>{this.et(t,e,null)})}Et(e,t){return this.Ge.getRemoteKeysForTarget(e).has(t)}}function Hb(){return new oy(P.comparator)}function Gb(){return new oy(P.comparator)}let $b={asc:"ASCENDING",desc:"DESCENDING"},Qb={"<":"LESS_THAN","<=":"LESS_THAN_OR_EQUAL",">":"GREATER_THAN",">=":"GREATER_THAN_OR_EQUAL","==":"EQUAL","!=":"NOT_EQUAL","array-contains":"ARRAY_CONTAINS",in:"IN","not-in":"NOT_IN","array-contains-any":"ARRAY_CONTAINS_ANY"},Yb={and:"AND",or:"OR"};class Jb{constructor(e,t){this.databaseId=e,this.useProto3Json=t}}function Xb(e,t){return e.useProto3Json||Kv(t)?t:{value:t}}function Zb(e,t){return e.useProto3Json?`${new Date(1e3*t.seconds).toISOString().replace(/\.\d*/,"").replace("Z","")}.${("000000000"+t.nanoseconds).slice(-9)}Z`:{seconds:""+t.seconds,nanos:t.nanoseconds}}function eI(e,t){return e.useProto3Json?t.toBase64():t.toUint8Array()}function tI(e){return S(!!e,49232),O.fromTimestamp((t=my(e),new x(t.seconds,t.nanos)));var t}function rI(e,t){return nI(e,t).canonicalString()}function nI(e,t){e=e;var r=new R(["projects",e.projectId,"databases",e.database]).child("documents");return void 0===t?r:r.child(t)}function iI(e){var t=R.fromString(e);return S(EI(t),10190,{key:t.toString()}),t}function sI(e,t){return rI(e.databaseId,t.path)}function aI(e,t){var r=iI(t);if(r.get(1)!==e.databaseId.projectId)throw new A(k.INVALID_ARGUMENT,"Tried to deserialize key from different project: "+r.get(1)+" vs "+e.databaseId.projectId);if(r.get(3)!==e.databaseId.database)throw new A(k.INVALID_ARGUMENT,"Tried to deserialize key from different database: "+r.get(3)+" vs "+e.databaseId.database);return new P(uI(r))}function oI(e,t){return rI(e.databaseId,t)}function lI(e){var t=iI(e);return 4===t.length?R.emptyPath():uI(t)}function hI(e){return new R(["projects",e.databaseId.projectId,"databases",e.databaseId.database]).canonicalString()}function uI(e){return S(4<e.length&&"documents"===e.get(4),29091,{key:e.toString()}),e.popFirst(5)}function cI(e,t,r){return{name:sI(e,t),fields:r.value.mapValue.fields}}function dI(e,t,r){var n=aI(e,t.name),i=tI(t.updateTime),s=t.createTime?tI(t.createTime):O.min(),a=new ew({mapValue:{fields:t.fields}}),n=tw.newFoundDocument(n,i,s,a);return r&&n.setHasCommittedMutations(),r?n.setHasCommittedMutations():n}function pI(e,t){let r;if(t instanceof wb)r={update:cI(e,t.key,t.value)};else if(t instanceof Cb)r={delete:sI(e,t.key)};else if(t instanceof bb)r={update:cI(e,t.key,t.data),updateMask:(e=>{let t=[];return e.fields.forEach(e=>t.push(e.canonicalString())),{fieldPaths:t}})(t.fieldMask)};else{if(!(t instanceof Sb))return C(16599,{Vt:t.type});r={verify:sI(e,t.key)}}return 0<t.fieldTransforms.length&&(r.updateTransforms=t.fieldTransforms.map(e=>{var t=e.transform;if(t instanceof ib)return{fieldPath:e.field.canonicalString(),setToServerValue:"REQUEST_TIME"};if(t instanceof sb)return{fieldPath:e.field.canonicalString(),appendMissingElements:{values:t.elements}};if(t instanceof ob)return{fieldPath:e.field.canonicalString(),removeAllFromArray:{values:t.elements}};if(t instanceof hb)return{fieldPath:e.field.canonicalString(),increment:t.Ae};throw C(20930,{transform:e.transform})})),t.precondition.isNone||(r.currentDocument=(e=e,void 0!==(t=t.precondition).updateTime?{updateTime:(n=t.updateTime,Zb(e,n.toTimestamp()))}:void 0!==t.exists?{exists:t.exists}:C(27497))),r;var n}function fI(i,t){let r=t.currentDocument?void 0!==(s=t.currentDocument).updateTime?fb.updateTime(tI(s.updateTime)):void 0!==s.exists?fb.exists(s.exists):fb.none():fb.none(),n=t.updateTransforms?t.updateTransforms.map(r=>{{var e=i;let t=null;if("setToServerValue"in r)S("REQUEST_TIME"===r.setToServerValue,16630,{proto:r}),t=new ib;else if("appendMissingElements"in r){let e=r.appendMissingElements.values||[];t=new sb(e)}else if("removeAllFromArray"in r){let e=r.removeAllFromArray.values||[];t=new ob(e)}else"increment"in r?t=new hb(e,r.increment):C(16584,{proto:r});var n=iv.fromServerFormat(r.fieldPath);return new db(n,t)}}):[];var s,a;if(t.update){t.update.name;var o=aI(i,t.update.name),l=new ew({mapValue:{fields:t.update.fields}});if(t.updateMask){s=t.updateMask,a=s.fieldPaths||[];let e=new dy(a.map(e=>iv.fromServerFormat(e)));return new bb(o,l,e,r,n)}return new wb(o,l,r,n)}if(t.delete){let e=aI(i,t.delete);return new Cb(e,r)}if(t.verify){let e=aI(i,t.verify);return new Sb(e,r)}return C(1463,{proto:t})}function gI(e,n){return e&&0<e.length?(S(void 0!==n,14353),e.map(t=>{{var r=n;let e=t.updateTime?tI(t.updateTime):tI(r);return e.isEqual(O.min())&&(e=tI(r)),new pb(e,t.transformResults||[])}})):[]}function mI(e,t){return{documents:[oI(e,t.path)]}}function vI(e,t){var r={structuredQuery:{}},n=t.path;let i;null!==t.collectionGroup?(i=n,r.structuredQuery.from=[{collectionId:t.collectionGroup,allDescendants:!0}]):(i=n.popLast(),r.structuredQuery.from=[{collectionId:n.lastSegment()}]),r.parent=oI(e,i);n=(e=>{if(0!==e.length)return function r(e){return e instanceof F?(e=>{if("=="===e.op){if(Hy(e.value))return{unaryFilter:{field:II(e.field),op:"IS_NAN"}};if(Wy(e.value))return{unaryFilter:{field:II(e.field),op:"IS_NULL"}}}else if("!="===e.op){if(Hy(e.value))return{unaryFilter:{field:II(e.field),op:"IS_NOT_NAN"}};if(Wy(e.value))return{unaryFilter:{field:II(e.field),op:"IS_NOT_NULL"}}}return{fieldFilter:{field:II(e.field),op:wI(e.op),value:e.value}}})(e):e instanceof U?(e=>{let t=e.getFilters().map(e=>r(e));return 1===t.length?t[0]:{compositeFilter:{op:bI(e.op),filters:t}}})(e):C(54877,{filter:e})}(U.create(e,"and"))})(t.filters),n&&(r.structuredQuery.where=n),n=(e=>{if(0!==e.length)return e.map(e=>({field:II((e=e).field),direction:(e=e.dir,$b[e])}))})(t.orderBy),n&&(r.structuredQuery.orderBy=n),n=Xb(e,t.limit);return null!==n&&(r.structuredQuery.limit=n),t.startAt&&(r.structuredQuery.startAt={before:(e=t.startAt).inclusive,values:e.position}),t.endAt&&(r.structuredQuery.endAt={before:!(e=t.endAt).inclusive,values:e.position}),{ft:r,parent:i}}function _I(e){let t=lI(e.parent);var r,n=e.structuredQuery,i=n.from?n.from.length:0;let s=null;if(0<i){S(1===i,65062);let e=n.from[0];e.allDescendants?s=e.collectionId:t=t.child(e.collectionId)}let a=[],o=(n.where&&(a=(e=n.where,(i=function t(e){return void 0!==e.unaryFilter?(i=>{switch(i.unaryFilter.op){case"IS_NAN":let e=TI(i.unaryFilter.field);return F.create(e,"==",{doubleValue:NaN});case"IS_NULL":let t=TI(i.unaryFilter.field);return F.create(t,"==",{nullValue:"NULL_VALUE"});case"IS_NOT_NAN":let r=TI(i.unaryFilter.field);return F.create(r,"!=",{doubleValue:NaN});case"IS_NOT_NULL":let n=TI(i.unaryFilter.field);return F.create(n,"!=",{nullValue:"NULL_VALUE"});case"OPERATOR_UNSPECIFIED":return C(61313);default:return C(60726)}})(e):void 0!==e.fieldFilter?(e=>F.create(TI(e.fieldFilter.field),(e=>{switch(e){case"EQUAL":return"==";case"NOT_EQUAL":return"!=";case"GREATER_THAN":return">";case"GREATER_THAN_OR_EQUAL":return">=";case"LESS_THAN":return"<";case"LESS_THAN_OR_EQUAL":return"<=";case"ARRAY_CONTAINS":return"array-contains";case"IN":return"in";case"NOT_IN":return"not-in";case"ARRAY_CONTAINS_ANY":return"array-contains-any";case"OPERATOR_UNSPECIFIED":return C(58110);default:return C(50506)}})(e.fieldFilter.op),e.fieldFilter.value))(e):void 0!==e.compositeFilter?(e=>U.create(e.compositeFilter.filters.map(e=>t(e)),(e=>{switch(e){case"AND":return"and";case"OR":return"or";default:return C(1026)}})(e.compositeFilter.op)))(e):C(30097,{filter:e})}(e))instanceof U&&hw(i)?i.getFilters():[i])),[]),l=(n.orderBy&&(o=n.orderBy.map(e=>(e=e,new sw(TI(e.field),(e=>{switch(e){case"ASCENDING":return"asc";case"DESCENDING":return"desc";default:return}})(e.direction))))),null),h=(n.limit&&(l=(e=n.limit,Kv(i="object"==typeof e?e.value:e)?null:i)),null),u=(n.startAt&&(h=(e=n.startAt,i=!!e.before,r=e.values||[],new rw(r,i))),null);return n.endAt&&(u=(e=n.endAt,r=!e.before,i=e.values||[],new rw(i,r))),Rw(t,s,o,a,l,"F",h,u)}function yI(e,t){var r=(e=>{switch(e){case"TargetPurposeListen":return null;case"TargetPurposeExistenceFilterMismatch":return"existence-filter-mismatch";case"TargetPurposeExistenceFilterMismatchBloom":return"existence-filter-mismatch-bloom";case"TargetPurposeLimboResolution":return"limbo-document";default:return C(28987,{purpose:e})}})(t.purpose);return null==r?null:{"goog-listen-tags":r}}function wI(e){return Qb[e]}function bI(e){return Yb[e]}function II(e){return{fieldPath:e.canonicalString()}}function TI(e){return iv.fromServerFormat(e.fieldPath)}function EI(e){return 4<=e.length&&"projects"===e.get(0)&&"databases"===e.get(2)}class CI{constructor(e,t,r,n,i=O.min(),s=O.min(),a=fy.EMPTY_BYTE_STRING,o=null){this.target=e,this.targetId=t,this.purpose=r,this.sequenceNumber=n,this.snapshotVersion=i,this.lastLimboFreeSnapshotVersion=s,this.resumeToken=a,this.expectedCount=o}withSequenceNumber(e){return new CI(this.target,this.targetId,this.purpose,e,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,this.expectedCount)}withResumeToken(e,t){return new CI(this.target,this.targetId,this.purpose,this.sequenceNumber,t,this.lastLimboFreeSnapshotVersion,e,null)}withExpectedCount(e){return new CI(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,e)}withLastLimboFreeSnapshotVersion(e){return new CI(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,e,this.resumeToken,this.expectedCount)}}class SI{constructor(e){this.yt=e}}function kI(e,t){var r,n=t.key,i={prefixPath:n.getCollectionPath().popLast().toArray(),collectionGroup:n.collectionGroup,documentId:n.path.lastSegment(),readTime:AI(t.readTime),hasCommittedMutations:t.hasCommittedMutations};if(t.isFoundDocument())i.document={name:sI(e=e.yt,(r=t).key),fields:r.data.value.mapValue.fields,updateTime:Zb(e,r.version.toTimestamp()),createTime:Zb(e,r.createTime.toTimestamp())};else if(t.isNoDocument())i.noDocument={path:n.path.toArray(),readTime:NI(t.version)};else{if(!t.isUnknownDocument())return C(57904,{document:t});i.unknownDocument={path:n.path.toArray(),version:NI(t.version)}}return i}function AI(e){var t=e.toTimestamp();return[t.seconds,t.nanoseconds]}function NI(e){var t=e.toTimestamp();return{seconds:t.seconds,nanoseconds:t.nanoseconds}}function RI(e){var t=new x(e.seconds,e.nanoseconds);return O.fromTimestamp(t)}function PI(t,r){let e=(r.baseMutations||[]).map(e=>fI(t.yt,e));for(let s=0;s<r.mutations.length-1;++s){let t=r.mutations[s];if(s+1<r.mutations.length&&void 0!==r.mutations[s+1].transform){let e=r.mutations[s+1];t.updateTransforms=e.transform.fieldTransforms,r.mutations.splice(s+1,1),++s}}let n=r.mutations.map(e=>fI(t.yt,e)),i=x.fromMillis(r.localWriteTimeMs);return new kb(r.batchId,i,e,n)}function DI(e){var t,r=RI(e.readTime),n=void 0!==e.lastLimboFreeSnapshotVersion?RI(e.lastLimboFreeSnapshotVersion):O.min(),i=void 0!==e.query.documents?(t=e.query,S(1===(i=t.documents.length),1966,{count:i}),Mw(Pw(lI(t.documents[0])))):Mw(_I(e.query));return new CI(i,e.targetId,"TargetPurposeListen",e.lastListenSequenceNumber,r,n,fy.fromBase64String(e.resumeToken))}function xI(e,t){var r=NI(t.snapshotVersion),n=NI(t.lastLimboFreeSnapshotVersion),i=Cw(t.target)?mI(e.yt,t.target):vI(e.yt,t.target).ft,s=t.resumeToken.toBase64();return{targetId:t.targetId,canonicalId:Tw(t.target),readTime:r,resumeToken:s,lastListenSequenceNumber:t.sequenceNumber,lastLimboFreeSnapshotVersion:n,query:i}}function OI(e){var t=_I({parent:e.parent,structuredQuery:e.structuredQuery});return"LAST"===e.limitType?Fw(t,t.limit,"L"):t}function MI(e,t){return new Nb(t.largestBatchId,fI(e.yt,t.overlayMutation))}function LI(e,t){var r=t.path.lastSegment();return[e,$v(t.path.popLast()),r]}function FI(e,t,r,n){return{indexId:e,uid:t,sequenceNumber:r,readTime:NI(n.readTime),documentKey:$v(n.documentKey.path),largestBatchId:n.largestBatchId}}class UI{getBundleMetadata(e,t){return VI(e).get(t).next(e=>{if(e)return{id:(e=e).bundleId,createTime:RI(e.createTime),version:e.version}})}saveBundleMetadata(e,t){return VI(e).put({bundleId:(e=t).id,createTime:NI(tI(e.createTime)),version:e.version})}getNamedQuery(e,t){return qI(e).get(t).next(e=>{if(e)return{name:(e=e).name,query:OI(e.bundledQuery),readTime:RI(e.readTime)}})}saveNamedQuery(e,t){return qI(e).put({name:(e=t).name,readTime:NI(tI(e.readTime)),bundledQuery:e.bundledQuery})}}function VI(e){return ny(e,N_)}function qI(e){return ny(e,R_)}class BI{constructor(e,t){this.serializer=e,this.userId=t}static wt(e,t){var r=t.uid||"";return new BI(e,r)}getOverlay(e,t){return jI(e).get(LI(this.userId,t)).next(e=>e?MI(this.serializer,e):null)}getOverlays(e,t){let r=Qw();return M.forEach(t,t=>this.getOverlay(e,t).next(e=>{null!==e&&r.set(t,e)})).next(()=>r)}saveOverlays(n,i,e){let s=[];return e.forEach((e,t)=>{var r=new Nb(i,t);s.push(this.St(n,r))}),M.waitFor(s)}removeOverlaysForBatchId(r,e,n){let t=new Set,i=(e.forEach(e=>t.add($v(e.getCollectionPath()))),[]);return t.forEach(e=>{var t=IDBKeyRange.bound([this.userId,e,n],[this.userId,e,n+1],!1,!0);i.push(jI(r).Z(z_,t))}),M.waitFor(i)}getOverlaysForCollection(e,t,r){let n=Qw(),i=$v(t),s=IDBKeyRange.bound([this.userId,i,r],[this.userId,i,Number.POSITIVE_INFINITY],!0);return jI(e).J(z_,s).next(e=>{for(var t of e){let e=MI(this.serializer,t);n.set(e.getKey(),e)}return n})}getOverlaysForCollectionGroup(e,t,r,i){let s=Qw(),a;var n=IDBKeyRange.bound([this.userId,t,r],[this.userId,t,Number.POSITIVE_INFINITY],!0);return jI(e).ee({index:W_,range:n},(e,t,r)=>{var n=MI(this.serializer,t);s.size()<i||n.largestBatchId===a?(s.set(n.getKey(),n),a=n.largestBatchId):r.done()}).next(()=>s)}St(e,t){return jI(e).put(((e,t,r)=>{var[,n,i]=LI(t,r.mutation.key);return{userId:t,collectionPath:n,documentId:i,collectionGroup:r.mutation.key.getCollectionGroup(),largestBatchId:r.largestBatchId,overlayMutation:pI(e.yt,r.mutation)}})(this.serializer,this.userId,t))}}function jI(e){return ny(e,B_)}class zI{bt(e){return ny(e,G_)}getSessionToken(e){return this.bt(e).get("sessionToken").next(e=>{var t=e?.value;return t?fy.fromUint8Array(t):fy.EMPTY_BYTE_STRING})}setSessionToken(e,t){return this.bt(e).put({name:"sessionToken",value:t.toUint8Array()})}}class KI{constructor(){}Dt(e,t){this.Ct(e,t),t.vt()}Ct(t,r){if("nullValue"in t)this.Ft(r,5);else if("booleanValue"in t)this.Ft(r,10),r.Mt(t.booleanValue?1:0);else if("integerValue"in t)this.Ft(r,15),r.Mt(vy(t.integerValue));else if("doubleValue"in t){var e=vy(t.doubleValue);isNaN(e)?this.Ft(r,13):(this.Ft(r,15),Wv(e)?r.Mt(0):r.Mt(e))}else if("timestampValue"in t){let e=t.timestampValue;this.Ft(r,20),"string"==typeof e&&(e=my(e)),r.xt(""+(e.seconds||"")),r.Mt(e.nanos||0)}else"stringValue"in t?(this.Ot(t.stringValue,r),this.Nt(r)):"bytesValue"in t?(this.Ft(r,30),r.Bt(_y(t.bytesValue)),this.Nt(r)):"referenceValue"in t?this.Lt(t.referenceValue,r):"geoPointValue"in t?(e=t.geoPointValue,this.Ft(r,45),r.Mt(e.latitude||0),r.Mt(e.longitude||0)):"mapValue"in t?Yy(t)?this.Ft(r,Number.MAX_SAFE_INTEGER):$y(t)?this.kt(t.mapValue,r):(this.qt(t.mapValue,r),this.Nt(r)):"arrayValue"in t?(this.Qt(t.arrayValue,r),this.Nt(r)):C(19022,{$t:t})}Ot(e,t){this.Ft(t,25),this.Ut(e,t)}Ut(e,t){t.xt(e)}qt(e,t){var r=e.fields||{};this.Ft(t,55);for(let e of Object.keys(r))this.Ot(e,t),this.Ct(r[e],t)}kt(e,t){var r=e.fields||{},n=(this.Ft(t,53),xy),i=r[n].arrayValue?.values?.length||0;this.Ft(t,15),t.Mt(vy(i)),this.Ot(n,t),this.Ct(r[n],t)}Qt(e,t){var r=e.values||[];this.Ft(t,50);for(let e of r)this.Ct(e,t)}Lt(e,t){this.Ft(t,37),P.fromName(e).path.forEach(e=>{this.Ft(t,60),this.Ut(e,t)})}Ft(e,t){e.Mt(t)}Nt(e){e.Mt(2)}}KI.Kt=new KI;function WI(e){var t=64-(e=>{let t=0;for(let n=0;n<8;++n){var r=(e=>{if(0===e)return 8;let t=0;return e>>4||(t+=4,e<<=4),e>>6||(t+=2,e<<=2),e>>7||(t+=1),t})(255&e[n]);if(t+=r,8!==r)break}return t})(e);return Math.ceil(t/8)}class HI{constructor(){this.buffer=new Uint8Array(1024),this.position=0}Wt(e){var t=e[Symbol.iterator]();let r=t.next();for(;!r.done;)this.Gt(r.value),r=t.next();this.zt()}jt(e){var t=e[Symbol.iterator]();let r=t.next();for(;!r.done;)this.Jt(r.value),r=t.next();this.Ht()}Yt(e){for(var t of e){let e=t.charCodeAt(0);if(e<128)this.Gt(e);else if(e<2048)this.Gt(960|e>>>6),this.Gt(128|63&e);else if(t<"\ud800"||"\udbff"<t)this.Gt(480|e>>>12),this.Gt(128|63&e>>>6),this.Gt(128|63&e);else{let e=t.codePointAt(0);this.Gt(240|e>>>18),this.Gt(128|63&e>>>12),this.Gt(128|63&e>>>6),this.Gt(128|63&e)}}this.zt()}Zt(e){for(var t of e){let e=t.charCodeAt(0);if(e<128)this.Jt(e);else if(e<2048)this.Jt(960|e>>>6),this.Jt(128|63&e);else if(t<"\ud800"||"\udbff"<t)this.Jt(480|e>>>12),this.Jt(128|63&e>>>6),this.Jt(128|63&e);else{let e=t.codePointAt(0);this.Jt(240|e>>>18),this.Jt(128|63&e>>>12),this.Jt(128|63&e>>>6),this.Jt(128|63&e)}}this.Ht()}Xt(e){var t=this.en(e),r=WI(t);this.tn(1+r),this.buffer[this.position++]=255&r;for(let n=t.length-r;n<t.length;++n)this.buffer[this.position++]=255&t[n]}nn(e){var t=this.en(e),r=WI(t);this.tn(1+r),this.buffer[this.position++]=~(255&r);for(let n=t.length-r;n<t.length;++n)this.buffer[this.position++]=~(255&t[n])}rn(){this.sn(255),this.sn(255)}_n(){this.an(255),this.an(255)}reset(){this.position=0}seed(e){this.tn(e.length),this.buffer.set(e,this.position),this.position+=e.length}un(){return this.buffer.slice(0,this.position)}en(e){e=e,(t=new DataView(new ArrayBuffer(8))).setFloat64(0,e,!1);var t,r=new Uint8Array(t.buffer),n=!!(128&r[0]);r[0]^=n?255:128;for(let i=1;i<r.length;++i)r[i]^=n?255:0;return r}Gt(e){var t=255&e;0==t?(this.sn(0),this.sn(255)):255==t?(this.sn(255),this.sn(0)):this.sn(t)}Jt(e){var t=255&e;0==t?(this.an(0),this.an(255)):255==t?(this.an(255),this.an(0)):this.an(e)}zt(){this.sn(0),this.sn(1)}Ht(){this.an(0),this.an(1)}sn(e){this.tn(1),this.buffer[this.position++]=e}an(e){this.tn(1),this.buffer[this.position++]=~e}tn(e){var t=e+this.position;if(!(t<=this.buffer.length)){let e=2*this.buffer.length;e<t&&(e=t);t=new Uint8Array(e);t.set(this.buffer),this.buffer=t}}}class GI{constructor(e){this.cn=e}Bt(e){this.cn.Wt(e)}xt(e){this.cn.Yt(e)}Mt(e){this.cn.Xt(e)}vt(){this.cn.rn()}}class $I{constructor(e){this.cn=e}Bt(e){this.cn.jt(e)}xt(e){this.cn.Zt(e)}Mt(e){this.cn.nn(e)}vt(){this.cn._n()}}class QI{constructor(){this.cn=new HI,this.ln=new GI(this.cn),this.hn=new $I(this.cn)}seed(e){this.cn.seed(e)}Pn(e){return 0===e?this.ln:this.hn}un(){return this.cn.un()}reset(){this.cn.reset()}}class YI{constructor(e,t,r,n){this.Tn=e,this.In=t,this.En=r,this.dn=n}An(){var e=this.dn.length,t=0===e||255===this.dn[e-1]?e+1:e,r=new Uint8Array(t);return r.set(this.dn,0),t!==e?r.set([0],this.dn.length):++r[r.length-1],new YI(this.Tn,this.In,this.En,r)}Rn(e,t,r){return{indexId:this.Tn,uid:e,arrayValue:ZI(this.En),directionalValue:ZI(this.dn),orderedDocumentKey:ZI(t),documentKey:r.path.toArray()}}Vn(e,t,r){var n=this.Rn(e,t,r);return[n.indexId,n.uid,n.arrayValue,n.directionalValue,n.orderedDocumentKey,n.documentKey]}}function JI(e,t){var r=e.Tn-t.Tn;return 0!=r||0!==(r=XI(e.En,t.En))||0!==(r=XI(e.dn,t.dn))?r:P.comparator(e.In,t.In)}function XI(e,t){for(let n=0;n<e.length&&n<t.length;++n){var r=e[n]-t[n];if(0!=r)return r}return e.length-t.length}function ZI(r){if(ge()){var n=r;let e="";for(let t=0;t<n.length;t++)e+=String.fromCharCode(n[t]);return e}return r}function eT(e){if("string"!=typeof e)return e;var t=e,r=new Uint8Array(t.length);for(let n=0;n<t.length;n++)r[n]=t.charCodeAt(n);return r}class tT{constructor(e){this.mn=new L((e,t)=>iv.comparator(e.field,t.field)),this.collectionId=null!=e.collectionGroup?e.collectionGroup:e.path.lastSegment(),this.fn=e.orderBy,this.gn=[];for(var t of e.filters){let e=t;e.isInequality()?this.mn=this.mn.add(e):this.gn.push(e)}}get pn(){return 1<this.mn.size}yn(e){if(S(e.collectionGroup===this.collectionId,49279),this.pn)return!1;let t=vv(e);if(void 0!==t&&!this.wn(t))return!1;var r=_v(e);let n=new Set,i=0,s=0;for(;i<r.length&&this.wn(r[i]);++i)n=n.add(r[i].fieldPath.canonicalString());if(i!==r.length){if(0<this.mn.size){let t=this.mn.getIterator().getNext();if(!n.has(t.field.canonicalString())){let e=r[i];if(!this.Sn(t,e)||!this.bn(this.fn[s++],e))return!1}++i}for(;i<r.length;++i){let e=r[i];if(s>=this.fn.length||!this.bn(this.fn[s++],e))return!1}}return!0}Dn(){if(this.pn)return null;let e=new L(iv.comparator);var t,r,n=[];for(t of this.gn)t.field.isKeyField()||("array-contains"===t.op||"array-contains-any"===t.op?n.push(new yv(t.field,2)):e.has(t.field)||(e=e.add(t.field),n.push(new yv(t.field,0))));for(r of this.fn)r.field.isKeyField()||e.has(r.field)||(e=e.add(r.field),n.push(new yv(r.field,"asc"===r.dir?0:1)));return new mv(mv.UNKNOWN_ID,this.collectionId,n,wv.empty())}wn(e){for(var t of this.gn)if(this.Sn(t,e))return!0;return!1}Sn(e,t){var r;return!(void 0===e||!e.field.isEqual(t.fieldPath))&&(r="array-contains"===e.op||"array-contains-any"===e.op,2===t.kind==r)}bn(e,t){return!!e.field.isEqual(t.fieldPath)&&(0===t.kind&&"asc"===e.dir||1===t.kind&&"desc"===e.dir)}}function rT(e){var t;return 0===e.getFilters().length?[]:(t=function t(e){if(S(e instanceof F||e instanceof U,34018),e instanceof F)return e;if(1===e.filters.length)return t(e.filters[0]);let r=e.filters.map(e=>t(e));let n=U.create(r,e.op);return n=lT(n),sT(n)?n:(S(n instanceof U,64498),S(ow(n),40251),S(1<n.filters.length,57927),n.filters.reduce((e,t)=>aT(e,t)))}(function t(r){if(S(r instanceof F||r instanceof U,20012),r instanceof F){if(r instanceof _w){let e=r.value.arrayValue?.values?.map(e=>F.create(r.field,"==",e))||[];return U.create(e,"or")}return r}let e=r.filters.map(e=>t(e));return U.create(e,r.op)}(e)),S(sT(t),7391),nT(t)||iT(t)?[t]:t.getFilters())}function nT(e){return e instanceof F}function iT(e){return e instanceof U&&hw(e)}function sT(e){return nT(e)||iT(e)||(e=>{if(e instanceof U&&lw(e)){for(var t of e.getFilters())if(!nT(t)&&!iT(t))return!1;return!0}return!1})(e)}function aT(e,t){var r,n;return S(e instanceof F||e instanceof U,38388),S(t instanceof F||t instanceof U,25473),lT(e instanceof F?t instanceof F?(r=e,n=t,U.create([r,n],"and")):oT(e,t):t instanceof F?oT(t,e):((e,t)=>{if(S(0<e.filters.length&&0<t.filters.length,48005),ow(e)&&ow(t))return cw(e,t.getFilters());let r=lw(e)?e:t,n=lw(e)?t:e,i=r.filters.map(e=>aT(e,n));return U.create(i,"or")})(e,t))}function oT(t,e){var r;return ow(e)?cw(e,t.getFilters()):(r=e.filters.map(e=>aT(t,e)),U.create(r,"or"))}function lT(t){if(S(t instanceof F||t instanceof U,11850),t instanceof F)return t;var e=t.getFilters();if(1===e.length)return lT(e[0]);if(uw(t))return t;let r=e.map(e=>lT(e)),n=[];return r.forEach(e=>{e instanceof F?n.push(e):e instanceof U&&(e.op===t.op?n.push(...e.filters):n.push(e))}),1===n.length?n[0]:U.create(n,t.op)}class hT{constructor(){this.Cn=new uT}addToCollectionParentIndex(e,t){return this.Cn.add(t),M.resolve()}getCollectionParents(e,t){return M.resolve(this.Cn.getEntries(t))}addFieldIndex(e,t){return M.resolve()}deleteFieldIndex(e,t){return M.resolve()}deleteAllFieldIndexes(e){return M.resolve()}createTargetIndexes(e,t){return M.resolve()}getDocumentsMatchingTarget(e,t){return M.resolve(null)}getIndexType(e,t){return M.resolve(0)}getFieldIndexes(e,t){return M.resolve([])}getNextCollectionGroupToUpdate(e){return M.resolve(null)}getMinOffset(e,t){return M.resolve(Tv.min())}getMinOffsetFromCollectionGroup(e,t){return M.resolve(Tv.min())}updateCollectionGroup(e,t,r){return M.resolve()}updateIndexEntries(e,t){return M.resolve()}}class uT{constructor(){this.index={}}add(e){var t=e.lastSegment(),r=e.popLast(),n=this.index[t]||new L(R.comparator),i=!n.has(r);return this.index[t]=n.add(r),i}has(e){var t=e.lastSegment(),r=e.popLast(),t=this.index[t];return t&&t.has(r)}getEntries(e){return(this.index[e]||new L(R.comparator)).toArray()}}let cT="IndexedDbIndexManager",dT=new Uint8Array(0);class pT{constructor(e,t){this.databaseId=t,this.vn=new uT,this.Fn=new Kw(e=>Tw(e),(e,t)=>Ew(e,t)),this.uid=e.uid||""}addToCollectionParentIndex(e,t){var r,n;return this.vn.has(t)?M.resolve():(n=t.lastSegment(),r=t.popLast(),e.addOnCommittedListener(()=>{this.vn.add(t)}),n={collectionId:n,parent:$v(r)},fT(e).put(n))}getCollectionParents(e,r){let n=[],t=IDBKeyRange.bound([r,""],[ev(r),""],!1,!0);return fT(e).J(t).next(e=>{for(var t of e){if(t.collectionId!==r)break;n.push(Yv(t.parent))}return n})}addFieldIndex(e,r){let t=mT(e),n={indexId:r.indexId,collectionGroup:r.collectionGroup,fields:r.fields.map(e=>[e.fieldPath.canonicalString(),e.kind])};delete n.indexId;var i=t.add(n);if(r.indexState){let t=vT(e);return i.next(e=>{t.put(FI(e,this.uid,r.indexState.sequenceNumber,r.indexState.offset))})}return i.next()}deleteFieldIndex(e,t){let r=mT(e),n=vT(e),i=gT(e);return r.delete(t.indexId).next(()=>n.delete(IDBKeyRange.bound([t.indexId],[t.indexId+1],!1,!0))).next(()=>i.delete(IDBKeyRange.bound([t.indexId],[t.indexId+1],!1,!0)))}deleteAllFieldIndexes(e){let t=mT(e),r=gT(e),n=vT(e);return t.Z().next(()=>r.Z()).next(()=>n.Z())}createTargetIndexes(r,e){return M.forEach(this.Mn(e),t=>this.getIndexType(r,t).next(e=>{if(0===e||1===e){let e=new tT(t).Dn();if(null!=e)return this.addFieldIndex(r,e)}}))}getDocumentsMatchingTarget(e,c){let d=gT(e),r=!0,n=new Map;return M.forEach(this.Mn(c),t=>this.xn(e,t).next(e=>{r=r&&!!e,n.set(t,e)})).next(()=>{if(r){let h=V(),u=[];return M.forEach(n,(e,t)=>{E(cT,`Using index ${r=e,`id=${r.indexId}|cg=${r.collectionGroup}|f=`+r.fields.map(e=>e.fieldPath+":"+e.kind).join(",")} to execute `+Tw(c));var r,n=((t,e)=>{var r=vv(e);if(void 0!==r)for(let e of Sw(t,r.fieldPath))switch(e.op){case"array-contains-any":return e.value.arrayValue.values||[];case"array-contains":return[e.value]}return null})(t,e),i=((t,r)=>{var n,i=new Map;for(n of _v(r))for(let e of Sw(t,n.fieldPath))switch(e.op){case"==":case"in":i.set(n.fieldPath.canonicalString(),e.value);break;case"not-in":case"!=":return i.set(n.fieldPath.canonicalString(),e.value),Array.from(i.values())}return null})(t,e),s=((t,e)=>{var r,n=[];let i=!0;for(r of _v(e)){let e=(0===r.kind?kw:Aw)(t,r.fieldPath,t.startAt);n.push(e.value),i=i&&e.inclusive}return new rw(n,i)})(t,e),a=((t,e)=>{var r,n=[];let i=!0;for(r of _v(e)){let e=(0===r.kind?Aw:kw)(t,r.fieldPath,t.endAt);n.push(e.value),i=i&&e.inclusive}return new rw(n,i)})(t,e),o=this.On(e,t,s),l=this.On(e,t,a),i=this.Nn(e,t,i),n=this.Bn(e.indexId,n,o,s.inclusive,l,a.inclusive,i);return M.forEach(n,e=>d.Y(e,c.limit).next(e=>{e.forEach(e=>{var t=P.fromSegments(e.documentKey);h.has(t)||(h=h.add(t),u.push(t))})}))}).next(()=>u)}return M.resolve(null)})}Mn(t){let e=this.Fn.get(t);return e||(e=0===t.filters.length?[t]:rT(U.create(t.filters,"and")).map(e=>Iw(t.path,t.collectionGroup,t.orderBy,e.getFilters(),t.limit,t.startAt,t.endAt)),this.Fn.set(t,e)),e}Bn(i,s,a,o,l,h,u){let e=(null!=s?s.length:1)*Math.max(a.length,l.length),c=e/(null!=s?s.length:1),d=[];for(let p=0;p<e;++p){let t=s?this.Ln(s[p/c]):dT,e=this.kn(i,t,a[p%c],o),r=this.qn(i,t,l[p%c],h),n=u.map(e=>this.kn(i,t,e,!0));d.push(...this.createRange(e,r,n))}return d}kn(e,t,r,n){var i=new YI(e,P.empty(),t,r);return n?i:i.An()}qn(e,t,r,n){var i=new YI(e,P.empty(),t,r);return n?i.An():i}xn(e,t){let n=new tT(t),r=null!=t.collectionGroup?t.collectionGroup:t.path.lastSegment();return this.getFieldIndexes(e,r).next(e=>{let t=null;for(var r of e)n.yn(r)&&(!t||r.fields.length>t.fields.length)&&(t=r);return t})}getIndexType(e,t){let r=2,n=this.Mn(t);return M.forEach(n,t=>this.xn(e,t).next(e=>{e?0!==r&&e.fields.length<(t=>{let r=new L(iv.comparator),n=!1;for(var i of t.filters)for(let e of i.getFlattenedFilters())e.field.isKeyField()||("array-contains"===e.op||"array-contains-any"===e.op?n=!0:r=r.add(e.field));for(let n of t.orderBy)n.field.isKeyField()||(r=r.add(n.field));return r.size+(n?1:0)})(t)&&(r=1):r=0})).next(()=>null!==t.limit&&1<n.length&&2===r?1:r)}Qn(e,t){var r,n=new QI;for(r of _v(e)){let e=t.data.field(r.fieldPath);if(null==e)return null;var i=n.Pn(r.kind);KI.Kt.Dt(e,i)}return n.un()}Ln(e){var t=new QI;return KI.Kt.Dt(e,t.Pn(0)),t.un()}$n(e,t){var r,n=new QI;return KI.Kt.Dt(jy(this.databaseId,t),n.Pn(0===(r=_v(e)).length?0:r[r.length-1].kind)),n.un()}Nn(e,n,i){if(null===i)return[];let s=[],a=(s.push(new QI),0);for(var o of _v(e)){let t=i[a++];for(let r of s)if(this.Un(n,o.fieldPath)&&Ky(t))s=this.Kn(s,o,t);else{let e=r.Pn(o.kind);KI.Kt.Dt(t,e)}}return this.Wn(s)}On(e,t,r){return this.Nn(e,t,r.position)}Wn(e){var t=[];for(let r=0;r<e.length;++r)t[r]=e[r].un();return t}Kn(r,n,e){let i=[...r],s=[];for(let r of e.arrayValue.values||[])for(let t of i){let e=new QI;e.seed(t.un()),KI.Kt.Dt(r,e.Pn(n.kind)),s.push(e)}return s}Un(e,t){return!!e.filters.find(e=>e instanceof F&&e.field.isEqual(t)&&("in"===e.op||"not-in"===e.op))}getFieldIndexes(e,t){let r=mT(e),n=vT(e);return(t?r.J(D_,IDBKeyRange.bound(t,t)):r.J()).next(e=>{let s=[];return M.forEach(e,i=>n.get([i.indexId,this.uid]).next(e=>{var t,r,n;s.push((t=i,r=(e=e)?new wv(e.sequenceNumber,new Tv(RI(e.readTime),new P(Yv(e.documentKey)),e.largestBatchId)):wv.empty(),n=t.fields.map(([e,t])=>new yv(iv.fromServerFormat(e),t)),new mv(t.indexId,t.collectionGroup,n,r)))})).next(()=>s)})}getNextCollectionGroupToUpdate(e){return this.getFieldIndexes(e).next(e=>0===e.length?null:(e.sort((e,t)=>{var r=e.indexState.sequenceNumber-t.indexState.sequenceNumber;return 0!=r?r:N(e.collectionGroup,t.collectionGroup)}),e[0].collectionGroup))}updateCollectionGroup(e,r,n){let i=mT(e),s=vT(e);return this.Gn(e).next(t=>i.J(D_,IDBKeyRange.bound(r,r)).next(e=>M.forEach(e,e=>s.put(FI(e.indexId,this.uid,t,n)))))}updateIndexEntries(i,e){let r=new Map;return M.forEach(e,(t,n)=>{var e=r.get(t.collectionGroup);return(e?M.resolve(e):this.getFieldIndexes(i,t.collectionGroup)).next(e=>(r.set(t.collectionGroup,e),M.forEach(e,r=>this.zn(i,t,r).next(e=>{var t=this.jn(n,r);return e.isEqual(t)?M.resolve():this.Jn(i,n,r,e,t)}))))})}Hn(e,t,r,n){return gT(e).put(n.Rn(this.uid,this.$n(r,t.key),t.key))}Yn(e,t,r,n){return gT(e).delete(n.Vn(this.uid,this.$n(r,t.key),t.key))}zn(e,r,n){var t=gT(e);let i=new L(JI);return t.ee({index:V_,range:IDBKeyRange.only([n.indexId,this.uid,ZI(this.$n(n,r))])},(e,t)=>{i=i.add(new YI(n.indexId,r,eT(t.arrayValue),eT(t.directionalValue)))}).next(()=>i)}jn(t,r){let n=new L(JI);var i=this.Qn(r,t);if(null!=i){let e=vv(r);if(null!=e){var s=t.data.field(e.fieldPath);if(Ky(s))for(let e of s.arrayValue.values||[])n=n.add(new YI(r.indexId,t.key,this.Ln(e),i))}else n=n.add(new YI(r.indexId,t.key,dT,i))}return n}Jn(t,r,s,e,a){E(cT,"Updating index entries for document '%s'",r.key);let o=[];{var l=JI,h=e=>{o.push(this.Hn(t,r,s,e))},u=e=>{o.push(this.Yn(t,r,s,e))},c=e.getIterator(),d=a.getIterator();let n=cy(c),i=cy(d);for(;n||i;){let t=!1,r=!1;if(n&&i){let e=l(n,i);e<0?r=!0:0<e&&(t=!0)}else null!=n?r=!0:t=!0;t?(h(i),i=cy(d)):r?(u(n),n=cy(c)):(n=cy(c),i=cy(d))}}return M.waitFor(o)}Gn(e){let n=1;return vT(e).ee({index:M_,reverse:!0,range:IDBKeyRange.upperBound([this.uid,Number.MAX_SAFE_INTEGER])},(e,t,r)=>{r.done(),n=t.sequenceNumber+1}).next(()=>n)}createRange(r,n,e){e=e.sort((e,t)=>JI(e,t)).filter((e,t,r)=>!t||0!==JI(e,r[t-1]));var i=[];i.push(r);for(let s of e){let e=JI(s,r),t=JI(s,n);if(0===e)i[0]=r.An();else if(0<e&&t<0)i.push(s),i.push(s.An());else if(0<t)break}i.push(n);let s=[];for(let a=0;a<i.length;a+=2){if(this.Zn(i[a],i[a+1]))return[];let e=i[a].Vn(this.uid,dT,P.empty()),t=i[a+1].Vn(this.uid,dT,P.empty());s.push(IDBKeyRange.bound(e,t))}return s}Zn(e,t){return 0<JI(e,t)}getMinOffsetFromCollectionGroup(e,t){return this.getFieldIndexes(e,t).next(_T)}getMinOffset(t,e){return M.mapArray(this.Mn(e),e=>this.xn(t,e).next(e=>e||C(44426))).next(_T)}}function fT(e){return ny(e,S_)}function gT(e){return ny(e,F_)}function mT(e){return ny(e,P_)}function vT(e){return ny(e,x_)}function _T(e){S(0!==e.length,28825);let t=e[0].indexState.offset,r=t.largestBatchId;for(let i=1;i<e.length;i++){var n=e[i].indexState.offset;Ev(n,t)<0&&(t=n),r<n.largestBatchId&&(r=n.largestBatchId)}return new Tv(t.readTime,t.documentKey,r)}let yT={didRun:!1,sequenceNumbersCollected:0,targetsRemoved:0,documentsRemoved:0};class wT{static withCacheSize(e){return new wT(e,wT.DEFAULT_COLLECTION_PERCENTILE,wT.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT)}constructor(e,t,r){this.cacheSizeCollectionThreshold=e,this.percentileToCollect=t,this.maximumSequenceNumbersToCollect=r}}function bT(t,r,n){let e=t.store(t_),i=t.store(l_),s=[],a=IDBKeyRange.only(n.batchId),o=0;var l=e.ee({range:a},(e,t,r)=>(o++,r.delete()));s.push(l.next(()=>{S(1===o,47070,{batchId:n.batchId})}));let h=[];for(let t of n.mutations){let e=a_(r,t.key.path,n.batchId);s.push(i.delete(e)),h.push(t.key)}return M.waitFor(s).next(()=>h)}function IT(e){if(!e)return 0;let t;if(e.document)t=e.document;else if(e.unknownDocument)t=e.unknownDocument;else{if(!e.noDocument)throw C(14731);t=e.noDocument}return JSON.stringify(t).length}wT.DEFAULT_COLLECTION_PERCENTILE=10,wT.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT=1e3,wT.DEFAULT=new wT(41943040,wT.DEFAULT_COLLECTION_PERCENTILE,wT.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT),wT.DISABLED=new wT(-1,0,0);class TT{constructor(e,t,r,n){this.userId=e,this.serializer=t,this.indexManager=r,this.referenceDelegate=n,this.Xn={}}static wt(e,t,r,n){S(""!==e.uid,64387);var i=e.isAuthenticated()?e.uid:"";return new TT(i,t,r,n)}checkEmpty(e){let n=!0;var t=IDBKeyRange.bound([this.userId,Number.NEGATIVE_INFINITY],[this.userId,Number.POSITIVE_INFINITY]);return CT(e).ee({index:n_,range:t},(e,t,r)=>{n=!1,r.done()}).next(()=>n)}addMutationBatch(c,d,p,f){let g=ST(c),m=CT(c);return m.add({}).next(t=>{S("number"==typeof t,49019);let e=new kb(t,d,p,f),r=(i=this.serializer,s=this.userId,a=e,o=a.baseMutations.map(e=>pI(i.yt,e)),l=a.mutations.map(e=>pI(i.yt,e)),{userId:s,batchId:a.batchId,localWriteTimeMs:a.localWriteTime.toMillis(),baseMutations:o,mutations:l}),n=[];var i,s,a,o,l;let h=new L((e,t)=>N(e.canonicalString(),t.canonicalString()));for(let u of f){let e=a_(this.userId,u.key.path,t);h=h.add(u.key.path.popLast()),n.push(m.put(r)),n.push(g.put(e,o_))}return h.forEach(e=>{n.push(this.indexManager.addToCollectionParentIndex(c,e))}),c.addOnCommittedListener(()=>{this.Xn[t]=e.keys()}),M.waitFor(n).next(()=>e)})}lookupMutationBatch(e,t){return CT(e).get(t).next(e=>e?(S(e.userId===this.userId,48,"Unexpected user for mutation batch",{userId:e.userId,batchId:t}),PI(this.serializer,e)):null)}er(e,r){return this.Xn[r]?M.resolve(this.Xn[r]):this.lookupMutationBatch(e,r).next(e=>{var t;return e?(t=e.keys(),this.Xn[r]=t):null})}getNextMutationBatchAfterBatchId(e,t){let n=t+1,r=IDBKeyRange.lowerBound([this.userId,n]),i=null;return CT(e).ee({index:n_,range:r},(e,t,r)=>{t.userId===this.userId&&(S(t.batchId>=n,47524,{tr:n}),i=PI(this.serializer,t)),r.done()}).next(()=>i)}getHighestUnacknowledgedBatchId(e){var t=IDBKeyRange.upperBound([this.userId,Number.POSITIVE_INFINITY]);let n=zv;return CT(e).ee({index:n_,range:t,reverse:!0},(e,t,r)=>{n=t.batchId,r.done()}).next(()=>n)}getAllMutationBatches(e){var t=IDBKeyRange.bound([this.userId,zv],[this.userId,Number.POSITIVE_INFINITY]);return CT(e).J(n_,t).next(e=>e.map(e=>PI(this.serializer,e)))}getAllMutationBatchesAffectingDocumentKey(o,l){let e=s_(this.userId,l.path),t=IDBKeyRange.lowerBound(e),h=[];return ST(o).ee({range:t},(t,e,r)=>{let[n,i,s]=t,a=Yv(i);if(n===this.userId&&l.path.isEqual(a))return CT(o).get(s).next(e=>{if(!e)throw C(61480,{nr:t,batchId:s});S(e.userId===this.userId,10503,"Unexpected user for mutation batch",{userId:e.userId,batchId:s}),h.push(PI(this.serializer,e))});r.done()}).next(()=>h)}getAllMutationBatchesAffectingDocumentKeys(t,e){let o=new L(N),r=[];return e.forEach(a=>{var e=s_(this.userId,a.path),e=IDBKeyRange.lowerBound(e),e=ST(t).ee({range:e},(e,t,r)=>{var[n,i,s]=e,i=Yv(i);n===this.userId&&a.path.isEqual(i)?o=o.add(s):r.done()});r.push(e)}),M.waitFor(r).next(()=>this.rr(t,o))}getAllMutationBatchesAffectingQuery(e,t){let a=t.path,o=a.length+1,r=s_(this.userId,a),n=IDBKeyRange.lowerBound(r),l=new L(N);return ST(e).ee({range:n},(e,t,r)=>{var[n,i,s]=e,i=Yv(i);n===this.userId&&a.isPrefixOf(i)?i.length===o&&(l=l.add(s)):r.done()}).next(()=>this.rr(e,l))}rr(e,t){let r=[],n=[];return t.forEach(t=>{n.push(CT(e).get(t).next(e=>{if(null===e)throw C(35274,{batchId:t});S(e.userId===this.userId,9748,"Unexpected user for mutation batch",{userId:e.userId,batchId:t}),r.push(PI(this.serializer,e))}))}),M.waitFor(n).next(()=>r)}removeMutationBatch(t,r){return bT(t.le,this.userId,r).next(e=>(t.addOnCommittedListener(()=>{this.ir(r.batchId)}),M.forEach(e,e=>this.referenceDelegate.markPotentiallyOrphaned(t,e))))}ir(e){delete this.Xn[e]}performConsistencyCheck(r){return this.checkEmpty(r).next(e=>{if(!e)return M.resolve();let t=IDBKeyRange.lowerBound([this.userId]),n=[];return ST(r).ee({range:t},(t,e,r)=>{if(t[0]===this.userId){let e=Yv(t[1]);n.push(e)}else r.done()}).next(()=>{S(0===n.length,56720,{sr:n.map(e=>e.canonicalString())})})})}containsKey(e,t){return ET(e,this.userId,t)}_r(e){return kT(e).get(this.userId).next(e=>e||{userId:this.userId,lastAcknowledgedBatchId:zv,lastStreamToken:""})}}function ET(e,s,t){let r=s_(s,t.path),a=r[1],n=IDBKeyRange.lowerBound(r),o=!1;return ST(e).ee({range:n,X:!0},(e,t,r)=>{var[n,i,,]=e;n===s&&i===a&&(o=!0),r.done()}).next(()=>o)}function CT(e){return ny(e,t_)}function ST(e){return ny(e,l_)}function kT(e){return ny(e,e_)}class AT{constructor(e){this.ar=e}next(){return this.ar+=2,this.ar}static ur(){return new AT(0)}static cr(){return new AT(-1)}}class NT{constructor(e,t){this.referenceDelegate=e,this.serializer=t}allocateTargetId(r){return this.lr(r).next(e=>{var t=new AT(e.highestTargetId);return e.highestTargetId=t.next(),this.hr(r,e).next(()=>e.highestTargetId)})}getLastRemoteSnapshotVersion(e){return this.lr(e).next(e=>O.fromTimestamp(new x(e.lastRemoteSnapshotVersion.seconds,e.lastRemoteSnapshotVersion.nanoseconds)))}getHighestSequenceNumber(e){return this.lr(e).next(e=>e.highestListenSequenceNumber)}setTargetsMetadata(t,r,n){return this.lr(t).next(e=>(e.highestListenSequenceNumber=r,n&&(e.lastRemoteSnapshotVersion=n.toTimestamp()),e.highestListenSequenceNumber<r&&(e.highestListenSequenceNumber=r),this.hr(t,e)))}addTargetData(t,r){return this.Pr(t,r).next(()=>this.lr(t).next(e=>(e.targetCount+=1,this.Tr(r,e),this.hr(t,e))))}updateTargetData(e,t){return this.Pr(e,t)}removeTargetData(t,e){return this.removeMatchingKeysForTargetId(t,e.targetId).next(()=>RT(t).delete(e.targetId)).next(()=>this.lr(t)).next(e=>(S(0<e.targetCount,8065),--e.targetCount,this.hr(t,e)))}removeTargets(n,i,s){let a=0,o=[];return RT(n).ee((e,t)=>{var r=DI(t);r.sequenceNumber<=i&&null===s.get(r.targetId)&&(a++,o.push(this.removeTargetData(n,r)))}).next(()=>M.waitFor(o)).next(()=>a)}forEachTarget(e,n){return RT(e).ee((e,t)=>{var r=DI(t);n(r)})}lr(e){return PT(e).get(E_).next(e=>(S(null!==e,2888),e))}hr(e,t){return PT(e).put(E_,t)}Pr(e,t){return RT(e).put(xI(this.serializer,t))}Tr(e,t){let r=!1;return e.targetId>t.highestTargetId&&(t.highestTargetId=e.targetId,r=!0),t.highestListenSequenceNumber<e.sequenceNumber&&(t.highestListenSequenceNumber=e.sequenceNumber,r=!0),r}getTargetCount(e){return this.lr(e).next(e=>e.targetCount)}getTargetData(e,i){var t=Tw(i),t=IDBKeyRange.bound([t,Number.NEGATIVE_INFINITY],[t,Number.POSITIVE_INFINITY]);let s=null;return RT(e).ee({range:t,index:__},(e,t,r)=>{var n=DI(t);Ew(i,n.target)&&(s=n,r.done())}).next(()=>s)}addMatchingKeys(r,e,n){let i=[],s=DT(r);return e.forEach(e=>{var t=$v(e.path);i.push(s.put({targetId:n,path:t})),i.push(this.referenceDelegate.addReference(r,n,e))}),M.waitFor(i)}removeMatchingKeys(r,e,n){let i=DT(r);return M.forEach(e,e=>{var t=$v(e.path);return M.waitFor([i.delete([n,t]),this.referenceDelegate.removeReference(r,n,e)])})}removeMatchingKeysForTargetId(e,t){var r=DT(e),n=IDBKeyRange.bound([t],[t+1],!1,!0);return r.delete(n)}getMatchingKeysForTargetId(e,t){var r=IDBKeyRange.bound([t],[t+1],!1,!0),n=DT(e);let i=V();return n.ee({range:r,X:!0},(e,t,r)=>{var n=Yv(e[1]),n=new P(n);i=i.add(n)}).next(()=>i)}containsKey(e,t){var r=$v(t.path),r=IDBKeyRange.bound([r],[ev(r)],!1,!0);let n=0;return DT(e).ee({index:I_,X:!0,range:r},([e],t,r)=>{0!==e&&(n++,r.done())}).next(()=>0<n)}At(e,t){return RT(e).get(t).next(e=>e?DI(e):null)}}function RT(e){return ny(e,v_)}function PT(e){return ny(e,C_)}function DT(e){return ny(e,w_)}let xT="LruGarbageCollector";function OT([e,t],[r,n]){var i=N(e,r);return 0===i?N(t,n):i}class MT{constructor(e){this.Ir=e,this.buffer=new L(OT),this.Er=0}dr(){return++this.Er}Ar(e){var t=[e,this.dr()];if(this.buffer.size<this.Ir)this.buffer=this.buffer.add(t);else{let e=this.buffer.last();OT(t,e)<0&&(this.buffer=this.buffer.delete(e).add(t))}}get maxValue(){return this.buffer.last()[0]}}class LT{constructor(e,t,r){this.garbageCollector=e,this.asyncQueue=t,this.localStore=r,this.Rr=null}start(){-1!==this.garbageCollector.params.cacheSizeCollectionThreshold&&this.Vr(6e4)}stop(){this.Rr&&(this.Rr.cancel(),this.Rr=null)}get started(){return null!==this.Rr}Vr(e){E(xT,`Garbage collection scheduled in ${e}ms`),this.Rr=this.asyncQueue.enqueueAfterDelay("lru_garbage_collection",e,async()=>{this.Rr=null;try{await this.localStore.collectGarbage(this.garbageCollector)}catch(e){Ov(e)?E(xT,"Ignoring IndexedDB error during garbage collection: ",e):await kv(e)}await this.Vr(3e5)})}}class FT{constructor(e,t){this.mr=e,this.params=t}calculateTargetCount(e,t){return this.mr.gr(e).next(e=>Math.floor(t/100*e))}nthSequenceNumber(e,t){if(0===t)return M.resolve(jv.ce);let r=new MT(t);return this.mr.forEachTarget(e,e=>r.Ar(e.sequenceNumber)).next(()=>this.mr.pr(e,e=>r.Ar(e))).next(()=>r.maxValue)}removeTargets(e,t,r){return this.mr.removeTargets(e,t,r)}removeOrphanedDocuments(e,t){return this.mr.removeOrphanedDocuments(e,t)}collect(t,r){return-1===this.params.cacheSizeCollectionThreshold?(E("LruGarbageCollector","Garbage collection skipped; disabled"),M.resolve(yT)):this.getCacheSize(t).next(e=>e<this.params.cacheSizeCollectionThreshold?(E("LruGarbageCollector",`Garbage collection skipped; Cache size ${e} is lower than threshold `+this.params.cacheSizeCollectionThreshold),yT):this.yr(t,r))}getCacheSize(e){return this.mr.getCacheSize(e)}yr(t,r){let n,i,s,a,o,l,h,u=Date.now();return this.calculateTargetCount(t,this.params.percentileToCollect).next(e=>(i=e>this.params.maximumSequenceNumbersToCollect?(E("LruGarbageCollector",`Capping sequence numbers to collect down to the maximum of ${this.params.maximumSequenceNumbersToCollect} from `+e),this.params.maximumSequenceNumbersToCollect):e,a=Date.now(),this.nthSequenceNumber(t,i))).next(e=>(n=e,o=Date.now(),this.removeTargets(t,n,r))).next(e=>(s=e,l=Date.now(),this.removeOrphanedDocuments(t,n))).next(e=>(h=Date.now(),Om()<=c.DEBUG&&E("LruGarbageCollector",`LRU Garbage Collection
|
|
@@ -37,5 +37,5 @@ For the CDN builds, these are available in the following manner
|
|
|
37
37
|
(replace <PACKAGE> with the name of a component - i.e. auth, database, etc):
|
|
38
38
|
|
|
39
39
|
https://www.gstatic.com/firebasejs/5.0.0/firebase-<PACKAGE>.js
|
|
40
|
-
`),ur.registerVersion("firebase","12.2.
|
|
40
|
+
`),ur.registerVersion("firebase","12.2.1","compat-cdn"),ur});
|
|
41
41
|
//# sourceMappingURL=firebase-compat.js.map
|