HEX
Server: Apache/2.4.41 (Ubuntu)
System: Linux ip-172-31-42-149 5.15.0-1084-aws #91~20.04.1-Ubuntu SMP Fri May 2 07:00:04 UTC 2025 aarch64
User: ubuntu (1000)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: /var/www/vhost/disk-apps/pwa.sports-crowd.com/node_modules/firebase/firebase-compat.js
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?module.exports=t():"function"==typeof define&&define.amd?define(t):(e="undefined"!=typeof globalThis?globalThis:e||self).firebase=t()}(this,function(){"use strict";const t={NODE_CLIENT:!1,NODE_ADMIN:!1,SDK_VERSION:"${JSCORE_VERSION}"},f=function(e,t){if(!e)throw u(t)},u=function(e){return new Error("Firebase Database ("+t.SDK_VERSION+") INTERNAL ASSERT FAILED: "+e)},n=function(t){const n=[];let r=0;for(let i=0;i<t.length;i++){let e=t.charCodeAt(i);e<128?n[r++]=e:(e<2048?n[r++]=e>>6|192:(55296==(64512&e)&&i+1<t.length&&56320==(64512&t.charCodeAt(i+1))?(e=65536+((1023&e)<<10)+(1023&t.charCodeAt(++i)),n[r++]=e>>18|240,n[r++]=e>>12&63|128):n[r++]=e>>12|224,n[r++]=e>>6&63|128),n[r++]=63&e|128)}return n},r={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:"function"==typeof atob,encodeByteArray(n,e){if(!Array.isArray(n))throw Error("encodeByteArray takes an array as a parameter");this.init_();var r=e?this.byteToCharMapWebSafe_:this.byteToCharMap_;const i=[];for(let u=0;u<n.length;u+=3){var s=n[u],a=u+1<n.length,o=a?n[u+1]:0,c=u+2<n.length,l=c?n[u+2]:0;let e=(15&o)<<2|l>>6,t=63&l;c||(t=64,a||(e=64)),i.push(r[s>>2],r[(3&s)<<4|o>>4],r[e],r[t])}return i.join("")},encodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?btoa(e):this.encodeByteArray(n(e),t)},decodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?atob(e):function(e){const t=[];let n=0,r=0;for(;n<e.length;){var i,s,a=e[n++];a<128?t[r++]=String.fromCharCode(a):191<a&&a<224?(i=e[n++],t[r++]=String.fromCharCode((31&a)<<6|63&i)):239<a&&a<365?(s=((7&a)<<18|(63&e[n++])<<12|(63&e[n++])<<6|63&e[n++])-65536,t[r++]=String.fromCharCode(55296+(s>>10)),t[r++]=String.fromCharCode(56320+(1023&s))):(i=e[n++],s=e[n++],t[r++]=String.fromCharCode((15&a)<<12|(63&i)<<6|63&s))}return t.join("")}(this.decodeStringToByteArray(e,t))},decodeStringToByteArray(e,t){this.init_();var n=t?this.charToByteMapWebSafe_:this.charToByteMap_;const r=[];for(let c=0;c<e.length;){var i=n[e.charAt(c++)],s=c<e.length?n[e.charAt(c)]:0;++c;var a=c<e.length?n[e.charAt(c)]:64;++c;var o=c<e.length?n[e.charAt(c)]:64;if(++c,null==i||null==s||null==a||null==o)throw new l;r.push(i<<2|s>>4),64!==a&&(r.push(s<<4&240|a>>2),64!==o&&r.push(a<<6&192|o))}return r},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let e=0;e<this.ENCODED_VALS.length;e++)this.byteToCharMap_[e]=this.ENCODED_VALS.charAt(e),this.charToByteMap_[this.byteToCharMap_[e]]=e,this.byteToCharMapWebSafe_[e]=this.ENCODED_VALS_WEBSAFE.charAt(e),this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[e]]=e,e>=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(e)]=e,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(e)]=e)}}};class l extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}function i(e){var t=n(e);return r.encodeByteArray(t,!0)}const s=function(e){return i(e).replace(/\./g,"")},a=function(e){try{return r.decodeString(e,!0)}catch(e){console.error("base64Decode failed: ",e)}return null};function c(e,t){if(!(t instanceof Object))return t;switch(t.constructor){case Date:const n=t;return new Date(n.getTime());case Object:void 0===e&&(e={});break;case Array:e=[];break;default:return t}for(const r in t)t.hasOwnProperty(r)&&"__proto__"!==r&&(e[r]=c(e[r],t[r]));return e}function o(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw new Error("Unable to locate global object.")}const e=()=>o().__FIREBASE_DEFAULTS__,h=()=>{if("undefined"!=typeof process&&void 0!==process.env){var e=process.env.__FIREBASE_DEFAULTS__;return e?JSON.parse(e):void 0}},d=()=>{if("undefined"!=typeof document){let e;try{e=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(e){return}var t=e&&a(e[1]);return t&&JSON.parse(t)}},p=()=>{try{return e()||h()||d()}catch(e){return void console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`)}},g=()=>{var e;return null===(e=p())||void 0===e?void 0:e.config};var m,v,_;class y{constructor(){this.reject=()=>{},this.resolve=()=>{},this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}wrapCallback(n){return(e,t)=>{e?this.reject(e):this.resolve(t),"function"==typeof n&&(this.promise.catch(()=>{}),1===n.length?n(e):n(e,t))}}}function w(e,t){if(e.uid)throw new Error('The "uid" field is no longer supported by mockUserToken. Please use "sub" instead for Firebase Auth User ID.');var n=t||"demo-project",r=e.iat||0,i=e.sub||e.user_id;if(!i)throw new Error("mockUserToken must contain 'sub' or 'user_id' field!");i=Object.assign({iss:`https://securetoken.google.com/${n}`,aud:n,iat:r,exp:r+3600,auth_time:r,sub:i,user_id:i,firebase:{sign_in_provider:"custom",identities:{}}},e);return[s(JSON.stringify({alg:"none",type:"JWT"})),s(JSON.stringify(i)),""].join(".")}function b(){return"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}function I(){return"undefined"!=typeof window&&!!(window.cordova||window.phonegap||window.PhoneGap)&&/ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(b())}function T(){var e=null===(e=p())||void 0===e?void 0:e.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 E(){return"undefined"!=typeof WorkerGlobalScope&&"undefined"!=typeof self&&self instanceof WorkerGlobalScope}function C(){var e="object"==typeof chrome?chrome.runtime:"object"==typeof browser?browser.runtime:void 0;return"object"==typeof e&&void 0!==e.id}function S(){return"object"==typeof navigator&&"ReactNative"===navigator.product}function k(){const e=b();return 0<=e.indexOf("MSIE ")||0<=e.indexOf("Trident/")}function A(){return!0===t.NODE_ADMIN}function N(){return!T()&&navigator.userAgent&&navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome")}function R(){try{return"object"==typeof indexedDB}catch(e){return!1}}function P(){return new Promise((t,n)=>{try{let e=!0;const r="validate-browser-context-for-indexeddb-analytics-module",i=self.indexedDB.open(r);i.onsuccess=()=>{i.result.close(),e||self.indexedDB.deleteDatabase(r),t(!0)},i.onupgradeneeded=()=>{e=!1},i.onerror=()=>{var e;n((null===(e=i.error)||void 0===e?void 0:e.message)||"")}}catch(e){n(e)}})}function D(){return!("undefined"==typeof navigator||!navigator.cookieEnabled)}class x extends Error{constructor(e,t,n){super(t),this.code=e,this.customData=n,this.name="FirebaseError",Object.setPrototypeOf(this,x.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,O.prototype.create)}}class O{constructor(e,t,n){this.service=e,this.serviceName=t,this.errors=n}create(e,...t){var r,n=t[0]||{},i=`${this.service}/${e}`,s=this.errors[e],s=s?(r=n,s.replace(M,(e,t)=>{var n=r[t];return null!=n?String(n):`<${t}?>`})):"Error",s=`${this.serviceName}: ${s} (${i}).`;return new x(i,s,n)}}const M=/\{\$([^}]+)}/g;function L(e){return JSON.parse(e)}function F(e){return JSON.stringify(e)}function U(e){let t={},n={},r={},i="";try{var s=e.split(".");t=L(a(s[0])||""),n=L(a(s[1])||""),i=s[2],r=n.d||{},delete n.d}catch(e){}return{header:t,claims:n,data:r,signature:i}}function V(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function q(e,t){if(Object.prototype.hasOwnProperty.call(e,t))return e[t]}function j(e){for(const t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}function B(e,t,n){const r={};for(const i in e)Object.prototype.hasOwnProperty.call(e,i)&&(r[i]=t.call(n,e[i],i,e));return r}function z(e,t){if(e===t)return!0;const n=Object.keys(e),r=Object.keys(t);for(const a of n){if(!r.includes(a))return!1;var i=e[a],s=t[a];if(K(i)&&K(s)){if(!z(i,s))return!1}else if(i!==s)return!1}for(const o of r)if(!n.includes(o))return!1;return!0}function K(e){return null!==e&&"object"==typeof e}function $(e){const t=[];for(const[n,r]of Object.entries(e))Array.isArray(r)?r.forEach(e=>{t.push(encodeURIComponent(n)+"="+encodeURIComponent(e))}):t.push(encodeURIComponent(n)+"="+encodeURIComponent(r));return t.length?"&"+t.join("&"):""}function W(e){const r={},t=e.replace(/^\?/,"").split("&");return t.forEach(e=>{var t,n;e&&([t,n]=e.split("="),r[decodeURIComponent(t)]=decodeURIComponent(n))}),r}function G(e){var t=e.indexOf("?");if(!t)return"";var n=e.indexOf("#",t);return e.substring(t,0<n?n:void 0)}class H{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_(n,r){r=r||0;const i=this.W_;if("string"==typeof n)for(let e=0;e<16;e++)i[e]=n.charCodeAt(r)<<24|n.charCodeAt(r+1)<<16|n.charCodeAt(r+2)<<8|n.charCodeAt(r+3),r+=4;else for(let t=0;t<16;t++)i[t]=n[r]<<24|n[r+1]<<16|n[r+2]<<8|n[r+3],r+=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],c=this.chain_[4],l,u;for(let p=0;p<80;p++){u=p<40?p<20?(l=o^s&(a^o),1518500249):(l=s^a^o,1859775393):p<60?(l=s&a|o&(s|a),2400959708):(l=s^a^o,3395469782);var h=(t<<5|t>>>27)+l+c+u+i[p]&4294967295;c=o,o=a,a=4294967295&(s<<30|s>>>2),s=t,t=h}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]+c&4294967295}update(n,r){if(null!=n){var i=(r=void 0===r?n.length:r)-this.blockSize;let e=0;const s=this.buf_;let t=this.inbuf_;for(;e<r;){if(0===t)for(;e<=i;)this.compress_(n,e),e+=this.blockSize;if("string"==typeof n){for(;e<r;)if(s[t]=n.charCodeAt(e),++t,++e,t===this.blockSize){this.compress_(s),t=0;break}}else for(;e<r;)if(s[t]=n[e],++t,++e,t===this.blockSize){this.compress_(s),t=0;break}}this.inbuf_=t,this.total_+=r}}digest(){const 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 r=this.blockSize-1;56<=r;r--)this.buf_[r]=255&e,e/=256;this.compress_(this.buf_);let n=0;for(let i=0;i<5;i++)for(let e=24;0<=e;e-=8)t[n]=this.chain_[i]>>e&255,++n;return t}}function Q(e,t){const n=new Y(e,t);return n.subscribe.bind(n)}class Y{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,n){let r;if(void 0===e&&void 0===t&&void 0===n)throw new Error("Missing Observer.");r=function(e,t){if("object"!=typeof e||null===e)return!1;for(const n of t)if(n in e&&"function"==typeof e[n])return!0;return!1}(e,["next","error","complete"])?e:{next:e,error:t,complete:n},void 0===r.next&&(r.next=J),void 0===r.error&&(r.error=J),void 0===r.complete&&(r.complete=J);var i=this.unsubscribeOne.bind(this,this.observers.length);return this.finalized&&this.task.then(()=>{try{this.finalError?r.error(this.finalError):r.complete()}catch(e){}}),this.observers.push(r),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 J(){}function X(e,t,n,r){let i;if(r<t?i="at least "+t:n<r&&(i=0===n?"none":"no more than "+n),i){var s=e+" failed: Was called with "+r+(1===r?" argument.":" arguments.")+" Expects "+i+".";throw new Error(s)}}function Z(e,t){return`${e} failed: ${t} argument `}function ee(e,t,n,r){if((!r||n)&&"function"!=typeof n)throw new Error(Z(e,t)+"must be a valid function.")}function te(e,t,n,r){if((!r||n)&&("object"!=typeof n||null===n))throw new Error(Z(e,t)+"must be a valid context object.")}function ne(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,e=>{const t=16*Math.random()|0,n="x"===e?t:3&t|8;return n.toString(16)})}const re=function(e){let t=0;for(let r=0;r<e.length;r++){var n=e.charCodeAt(r);n<128?t++:n<2048?t+=2:55296<=n&&n<=56319?(t+=4,r++):t+=3}return t},ie=1e3,se=2,ae=144e5,oe=.5;function ce(e,t=ie,n=se){var r=t*Math.pow(n,e),i=Math.round(oe*r*(Math.random()-.5)*2);return Math.min(ae,r+i)}function le(e){return e&&e._delegate?e._delegate:e}class ue{constructor(e,t,n){this.name=e,this.instanceFactory=t,this.type=n,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}}const he="[DEFAULT]";class de{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)){const r=new y;if(this.instancesDeferred.set(t,r),this.isInitialized(t)||this.shouldAutoInitialize())try{var n=this.getOrInitializeService({instanceIdentifier:t});n&&r.resolve(n)}catch(e){}}return this.instancesDeferred.get(t).promise}getImmediate(e){var t=this.normalizeInstanceIdentifier(null==e?void 0:e.identifier),n=null!==(n=null==e?void 0:e.optional)&&void 0!==n&&n;if(!this.isInitialized(t)&&!this.shouldAutoInitialize()){if(n)return null;throw Error(`Service ${this.name} is not available`)}try{return this.getOrInitializeService({instanceIdentifier:t})}catch(e){if(n)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:he})}catch(e){}for(var[t,n]of this.instancesDeferred.entries()){t=this.normalizeInstanceIdentifier(t);try{var r=this.getOrInitializeService({instanceIdentifier:t});n.resolve(r)}catch(e){}}}}clearInstance(e=he){this.instancesDeferred.delete(e),this.instancesOptions.delete(e),this.instances.delete(e)}async delete(){const e=Array.from(this.instances.values());await Promise.all([...e.filter(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=he){return this.instances.has(e)}getOptions(e=he){return this.instancesOptions.get(e)||{}}initialize(e={}){var{options:t={}}=e,n=this.normalizeInstanceIdentifier(e.instanceIdentifier);if(this.isInitialized(n))throw Error(`${this.name}(${n}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);var r,i,s=this.getOrInitializeService({instanceIdentifier:n,options:t});for([r,i]of this.instancesDeferred.entries())n===this.normalizeInstanceIdentifier(r)&&i.resolve(s);return s}onInit(e,t){var n=this.normalizeInstanceIdentifier(t);const r=null!==(i=this.onInitCallbacks.get(n))&&void 0!==i?i:new Set;r.add(e),this.onInitCallbacks.set(n,r);var i=this.instances.get(n);return i&&e(i,n),()=>{r.delete(e)}}invokeOnInitCallbacks(e,t){var n=this.onInitCallbacks.get(t);if(n)for(const r of n)try{r(e,t)}catch(e){}}getOrInitializeService({instanceIdentifier:e,options:t={}}){let n=this.instances.get(e);if(!n&&this.component&&(n=this.component.instanceFactory(this.container,{instanceIdentifier:(r=e)===he?void 0:r,options:t}),this.instances.set(e,n),this.instancesOptions.set(e,t),this.invokeOnInitCallbacks(n,e),this.component.onInstanceCreated))try{this.component.onInstanceCreated(this.container,e,n)}catch(e){}var r;return n||null}normalizeInstanceIdentifier(e=he){return!this.component||this.component.multipleInstances?e:he}shouldAutoInitialize(){return!!this.component&&"EXPLICIT"!==this.component.instantiationMode}}class pe{constructor(e){this.name=e,this.providers=new Map}addComponent(e){const 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){const t=this.getProvider(e.name);t.isComponentSet()&&this.providers.delete(e.name),this.addComponent(e)}getProvider(e){if(this.providers.has(e))return this.providers.get(e);var t=new de(e,this);return this.providers.set(e,t),t}getProviders(){return Array.from(this.providers.values())}}const fe=[];(v=m=m||{})[v.DEBUG=0]="DEBUG",v[v.VERBOSE=1]="VERBOSE",v[v.INFO=2]="INFO",v[v.WARN=3]="WARN",v[v.ERROR=4]="ERROR",v[v.SILENT=5]="SILENT";const ge={debug:m.DEBUG,verbose:m.VERBOSE,info:m.INFO,warn:m.WARN,error:m.ERROR,silent:m.SILENT},me=m.INFO,ve={[m.DEBUG]:"log",[m.VERBOSE]:"log",[m.INFO]:"info",[m.WARN]:"warn",[m.ERROR]:"error"},_e=(e,t,...n)=>{if(!(t<e.logLevel)){var r=(new Date).toISOString(),i=ve[t];if(!i)throw new Error(`Attempted to log a message with an invalid logType (value: ${t})`);console[i](`[${r}]  ${e.name}:`,...n)}};class ye{constructor(e){this.name=e,this._logLevel=me,this._logHandler=_e,this._userLogHandler=null,fe.push(this)}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in m))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?ge[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,m.DEBUG,...e),this._logHandler(this,m.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,m.VERBOSE,...e),this._logHandler(this,m.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,m.INFO,...e),this._logHandler(this,m.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,m.WARN,...e),this._logHandler(this,m.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,m.ERROR,...e),this._logHandler(this,m.ERROR,...e)}}const we=(t,e)=>e.some(e=>t instanceof e);let be,Ie;const Te=new WeakMap,Ee=new WeakMap,Ce=new WeakMap,Se=new WeakMap,ke=new WeakMap;let Ae={get(e,t,n){if(e instanceof IDBTransaction){if("done"===t)return Ee.get(e);if("objectStoreNames"===t)return e.objectStoreNames||Ce.get(e);if("store"===t)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return Pe(e[t])},set(e,t,n){return e[t]=n,!0},has(e,t){return e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e}};function Ne(r){return r!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(Ie=Ie||[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey]).includes(r)?function(...e){return r.apply(De(this),e),Pe(Te.get(this))}:function(...e){return Pe(r.apply(De(this),e))}:function(e,...t){var n=r.call(De(this),e,...t);return Ce.set(n,e.sort?e.sort():[e]),Pe(n)}}function Re(e){return"function"==typeof e?Ne(e):(e instanceof IDBTransaction&&(s=e,Ee.has(s)||(t=new Promise((e,t)=>{const n=()=>{s.removeEventListener("complete",r),s.removeEventListener("error",i),s.removeEventListener("abort",i)},r=()=>{e(),n()},i=()=>{t(s.error||new DOMException("AbortError","AbortError")),n()};s.addEventListener("complete",r),s.addEventListener("error",i),s.addEventListener("abort",i)}),Ee.set(s,t))),we(e,be=be||[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])?new Proxy(e,Ae):e);var s,t}function Pe(e){if(e instanceof IDBRequest)return function(s){const e=new Promise((e,t)=>{const n=()=>{s.removeEventListener("success",r),s.removeEventListener("error",i)},r=()=>{e(Pe(s.result)),n()},i=()=>{t(s.error),n()};s.addEventListener("success",r),s.addEventListener("error",i)});return e.then(e=>{e instanceof IDBCursor&&Te.set(e,s)}).catch(()=>{}),ke.set(e,s),e}(e);if(Se.has(e))return Se.get(e);var t=Re(e);return t!==e&&(Se.set(e,t),ke.set(t,e)),t}const De=e=>ke.get(e);function xe(e,t,{blocked:n,upgrade:r,blocking:i,terminated:s}={}){const a=indexedDB.open(e,t),o=Pe(a);return r&&a.addEventListener("upgradeneeded",e=>{r(Pe(a.result),e.oldVersion,e.newVersion,Pe(a.transaction),e)}),n&&a.addEventListener("blocked",e=>n(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 Oe(e,{blocked:t}={}){const n=indexedDB.deleteDatabase(e);return t&&n.addEventListener("blocked",e=>t(e.oldVersion,e)),Pe(n).then(()=>{})}const Me=["get","getKey","getAll","getAllKeys","count"],Le=["put","add","delete","clear"],Fe=new Map;function Ue(e,t){if(e instanceof IDBDatabase&&!(t in e)&&"string"==typeof t){if(Fe.get(t))return Fe.get(t);const i=t.replace(/FromIndex$/,""),s=t!==i,a=Le.includes(i);if(i in(s?IDBIndex:IDBObjectStore).prototype&&(a||Me.includes(i))){var n=async function(e,...t){var n=this.transaction(e,a?"readwrite":"readonly");let r=n.store;return s&&(r=r.index(t.shift())),(await Promise.all([r[i](...t),a&&n.done]))[0]};return Fe.set(t,n),n}}}Ae={..._=Ae,get:(e,t,n)=>Ue(e,t)||_.get(e,t,n),has:(e,t)=>!!Ue(e,t)||_.has(e,t)};class Ve{constructor(e){this.container=e}getPlatformInfoString(){const e=this.container.getProviders();return e.map(e=>{if("VERSION"!==(null==(t=e.getComponent())?void 0:t.type))return null;var t,t=e.getImmediate();return`${t.library}/${t.version}`}).filter(e=>e).join(" ")}}const qe="@firebase/app",je="0.10.13",Be=new ye("@firebase/app");var ze;const Ke="[DEFAULT]",$e={"@firebase/app":"fire-core","@firebase/app-compat":"fire-core-compat","@firebase/analytics":"fire-analytics","@firebase/analytics-compat":"fire-analytics-compat","@firebase/app-check":"fire-app-check","@firebase/app-check-compat":"fire-app-check-compat","@firebase/auth":"fire-auth","@firebase/auth-compat":"fire-auth-compat","@firebase/database":"fire-rtdb","@firebase/data-connect":"fire-data-connect","@firebase/database-compat":"fire-rtdb-compat","@firebase/functions":"fire-fn","@firebase/functions-compat":"fire-fn-compat","@firebase/installations":"fire-iid","@firebase/installations-compat":"fire-iid-compat","@firebase/messaging":"fire-fcm","@firebase/messaging-compat":"fire-fcm-compat","@firebase/performance":"fire-perf","@firebase/performance-compat":"fire-perf-compat","@firebase/remote-config":"fire-rc","@firebase/remote-config-compat":"fire-rc-compat","@firebase/storage":"fire-gcs","@firebase/storage-compat":"fire-gcs-compat","@firebase/firestore":"fire-fst","@firebase/firestore-compat":"fire-fst-compat","@firebase/vertexai-preview":"fire-vertex","fire-js":"fire-js",firebase:"fire-js-all"},We=new Map,Ge=new Map,He=new Map;function Qe(t,n){try{t.container.addComponent(n)}catch(e){Be.debug(`Component ${n.name} failed to register with FirebaseApp ${t.name}`,e)}}function Ye(e,t){e.container.addOrOverwriteComponent(t)}function Je(e){var t=e.name;if(He.has(t))return Be.debug(`There were multiple attempts to register component ${t}.`),!1;He.set(t,e);for(const n of We.values())Qe(n,e);for(const r of Ge.values())Qe(r,e);return!0}function Xe(e,t){const n=e.container.getProvider("heartbeat").getImmediate({optional:!0});return n&&n.triggerHeartbeat(),e.container.getProvider(t)}function Ze(e){return void 0!==e.options}function et(e){return void 0!==e.settings}const tt=new O("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 nt{constructor(e,t,n){this._isDeleted=!1,this._options=Object.assign({},e),this._config=Object.assign({},t),this._name=t.name,this._automaticDataCollectionEnabled=t.automaticDataCollectionEnabled,this._container=n,this.container.addComponent(new ue("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 tt.create("app-deleted",{appName:this._name})}}class rt extends nt{constructor(e,t,n,r){var i=void 0!==t.automaticDataCollectionEnabled&&t.automaticDataCollectionEnabled,s={name:n,automaticDataCollectionEnabled:i};void 0!==e.apiKey?super(e,s,r):super(e.options,s,r),this._serverConfig=Object.assign({automaticDataCollectionEnabled:i},t),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,ct(qe,je,"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(){ot(this)}get settings(){return this.checkDestroyed(),this._serverConfig}checkDestroyed(){if(this.isDeleted)throw tt.create("server-app-deleted")}}const it="10.14.1";function st(e,t={}){let n=e;if("object"!=typeof t){const i=t;t={name:i}}var r=Object.assign({name:Ke,automaticDataCollectionEnabled:!1},t);const i=r.name;if("string"!=typeof i||!i)throw tt.create("bad-app-name",{appName:String(i)});if(n=n||g(),!n)throw tt.create("no-options");var s=We.get(i);if(s){if(z(n,s.options)&&z(r,s.config))return s;throw tt.create("duplicate-app",{appName:i})}const a=new pe(i);for(const o of He.values())a.addComponent(o);r=new nt(n,r,a);return We.set(i,r),r}function at(e=Ke){var t=We.get(e);if(!t&&e===Ke&&g())return st();if(!t)throw tt.create("no-app",{appName:e});return t}async function ot(e){let t=!1;var n=e.name;if(We.has(n))t=!0,We.delete(n);else if(Ge.has(n)){const r=e;r.decRefCount()<=0&&(Ge.delete(n),t=!0)}t&&(await Promise.all(e.container.getProviders().map(e=>e.delete())),e.isDeleted=!0)}function ct(e,t,n){let r=null!==(s=$e[e])&&void 0!==s?s:e;n&&(r+=`-${n}`);var i=r.match(/\s|\//),s=t.match(/\s|\//);if(i||s){const a=[`Unable to register library "${r}" with version "${t}":`];return i&&a.push(`library name "${r}" contains illegal characters (whitespace or "/")`),i&&s&&a.push("and"),s&&a.push(`version name "${t}" contains illegal characters (whitespace or "/")`),void Be.warn(a.join(" "))}Je(new ue(`${r}-version`,()=>({library:r,version:t}),"VERSION"))}function lt(e,t){if(null!==e&&"function"!=typeof e)throw tt.create("invalid-log-argument");!function(s,e){for(const t of fe){let i=null;e&&e.level&&(i=ge[e.level]),t.userLogHandler=null===s?null:(e,t,...n)=>{var r=n.map(e=>{if(null==e)return null;if("string"==typeof e)return e;if("number"==typeof e||"boolean"==typeof e)return e.toString();if(e instanceof Error)return e.message;try{return JSON.stringify(e)}catch(e){return null}}).filter(e=>e).join(" ");t>=(null!==i&&void 0!==i?i:e.logLevel)&&s({level:m[t].toLowerCase(),message:r,args:n,type:e.name})}}}(e,t)}function ut(e){var t;t=e,fe.forEach(e=>{e.setLogLevel(t)})}const ht="firebase-heartbeat-database",dt=1,pt="firebase-heartbeat-store";let ft=null;function gt(){return ft=ft||xe(ht,dt,{upgrade:(e,t)=>{if(0===t)try{e.createObjectStore(pt)}catch(e){console.warn(e)}}}).catch(e=>{throw tt.create("idb-open",{originalErrorMessage:e.message})}),ft}async function mt(e,t){try{const r=await gt(),i=r.transaction(pt,"readwrite"),s=i.objectStore(pt);await s.put(t,vt(e)),await i.done}catch(e){var n;e instanceof x?Be.warn(e.message):(n=tt.create("idb-set",{originalErrorMessage:null==e?void 0:e.message}),Be.warn(n.message))}}function vt(e){return`${e.name}!${e.options.appId}`}class _t{constructor(e){this.container=e,this._heartbeatsCache=null;var t=this.container.getProvider("app").getImmediate();this._storage=new wt(t),this._heartbeatsCachePromise=this._storage.read().then(e=>this._heartbeatsCache=e)}async triggerHeartbeat(){var e,t;try{const r=this.container.getProvider("platform-logger").getImmediate();var n=r.getPlatformInfoString();const i=yt();return null==(null===(e=this._heartbeatsCache)||void 0===e?void 0:e.heartbeats)&&(this._heartbeatsCache=await this._heartbeatsCachePromise,null==(null===(t=this._heartbeatsCache)||void 0===t?void 0:t.heartbeats))?void 0:this._heartbeatsCache.lastSentHeartbeatDate===i||this._heartbeatsCache.heartbeats.some(e=>e.date===i)?void 0:(this._heartbeatsCache.heartbeats.push({date:i,agent:n}),this._heartbeatsCache.heartbeats=this._heartbeatsCache.heartbeats.filter(e=>{var t=new Date(e.date).valueOf();return Date.now()-t<=2592e6}),this._storage.overwrite(this._heartbeatsCache))}catch(e){Be.warn(e)}}async getHeartbeatsHeader(){var e;try{if(null===this._heartbeatsCache&&await this._heartbeatsCachePromise,null==(null===(e=this._heartbeatsCache)||void 0===e?void 0:e.heartbeats)||0===this._heartbeatsCache.heartbeats.length)return"";var t=yt(),{heartbeatsToSend:n,unsentEntries:r}=function(e,t=1024){const n=[];let r=e.slice();for(const i of e){const s=n.find(e=>e.agent===i.agent);if(s){if(s.dates.push(i.date),bt(n)>t){s.dates.pop();break}}else if(n.push({agent:i.agent,dates:[i.date]}),bt(n)>t){n.pop();break}r=r.slice(1)}return{heartbeatsToSend:n,unsentEntries:r}}(this._heartbeatsCache.heartbeats),i=s(JSON.stringify({version:2,heartbeats:n}));return this._heartbeatsCache.lastSentHeartbeatDate=t,0<r.length?(this._heartbeatsCache.heartbeats=r,await this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),i}catch(e){return Be.warn(e),""}}}function yt(){const e=new Date;return e.toISOString().substring(0,10)}class wt{constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return!!R()&&P().then(()=>!0).catch(()=>!1)}async read(){if(await this._canUseIndexedDBPromise){var e=await async function(e){try{const n=await gt(),r=n.transaction(pt);var t=await r.objectStore(pt).get(vt(e));return await r.done,t}catch(e){e instanceof x?Be.warn(e.message):(t=tt.create("idb-get",{originalErrorMessage:null==e?void 0:e.message}),Be.warn(t.message))}}(this.app);return null!=e&&e.heartbeats?e:{heartbeats:[]}}return{heartbeats:[]}}async overwrite(e){var t;if(await this._canUseIndexedDBPromise){var n=await this.read();return mt(this.app,{lastSentHeartbeatDate:null!==(t=e.lastSentHeartbeatDate)&&void 0!==t?t:n.lastSentHeartbeatDate,heartbeats:e.heartbeats})}}async add(e){var t;if(await this._canUseIndexedDBPromise){var n=await this.read();return mt(this.app,{lastSentHeartbeatDate:null!==(t=e.lastSentHeartbeatDate)&&void 0!==t?t:n.lastSentHeartbeatDate,heartbeats:[...n.heartbeats,...e.heartbeats]})}}}function bt(e){return s(JSON.stringify({version:2,heartbeats:e})).length}ze="",Je(new ue("platform-logger",e=>new Ve(e),"PRIVATE")),Je(new ue("heartbeat",e=>new _t(e),"PRIVATE")),ct(qe,je,ze),ct(qe,je,"esm2017"),ct("fire-js","");var It=Object.freeze({__proto__:null,SDK_VERSION:it,_DEFAULT_ENTRY_NAME:Ke,_addComponent:Qe,_addOrOverwriteComponent:Ye,_apps:We,_clearComponents:function(){He.clear()},_components:He,_getProvider:Xe,_isFirebaseApp:Ze,_isFirebaseServerApp:et,_registerComponent:Je,_removeServiceInstance:function(e,t,n=Ke){Xe(e,t).clearInstance(n)},_serverApps:Ge,deleteApp:ot,getApp:at,getApps:function(){return Array.from(We.values())},initializeApp:st,initializeServerApp:function(e,t){if(("undefined"!=typeof window||E())&&!E())throw tt.create("invalid-server-app-environment");void 0===t.automaticDataCollectionEnabled&&(t.automaticDataCollectionEnabled=!1);let n;n=Ze(e)?e.options:e;const r=Object.assign(Object.assign({},t),n);if(void 0!==r.releaseOnDeref&&delete r.releaseOnDeref,void 0!==t.releaseOnDeref&&"undefined"==typeof FinalizationRegistry)throw tt.create("finalization-registry-not-supported",{});var i=""+[...JSON.stringify(r)].reduce((e,t)=>Math.imul(31,e)+t.charCodeAt(0)|0,0);const s=Ge.get(i);if(s)return s.incRefCount(t.releaseOnDeref),s;const a=new pe(i);for(const c of He.values())a.addComponent(c);var o=new rt(n,t,i,a);return Ge.set(i,o),o},onLog:lt,registerVersion:ct,setLogLevel:ut,FirebaseError:x});class Tt{constructor(e,t){this._delegate=e,this.firebase=t,Qe(e,new ue("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),ot(this._delegate)))}_getService(e,t=Ke){var n;this._delegate.checkDestroyed();const r=this._delegate.container.getProvider(e);return r.isInitialized()||"EXPLICIT"!==(null===(n=r.getComponent())||void 0===n?void 0:n.instantiationMode)||r.initialize(),r.getImmediate({identifier:t})}_removeServiceInstance(e,t=Ke){this._delegate.container.getProvider(e).clearInstance(t)}_addComponent(e){Qe(this._delegate,e)}_addOrOverwriteComponent(e){Ye(this._delegate,e)}toJSON(){return{name:this.name,automaticDataCollectionEnabled:this.automaticDataCollectionEnabled,options:this.options}}}const Et=new O("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 Ct(i){const s={},a={__esModule:!0,initializeApp:function(e,t={}){var n=st(e,t);if(V(s,n.name))return s[n.name];var r=new i(n,a);return s[n.name]=r},app:o,registerVersion:ct,setLogLevel:ut,onLog:lt,apps:null,SDK_VERSION:it,INTERNAL:{registerComponent:function(n){const r=n.name,t=r.replace("-compat","");{var e;Je(n)&&"PUBLIC"===n.type&&(e=(e=o())=>{if("function"!=typeof e[t])throw Et.create("invalid-app-argument",{appName:r});return e[t]()},void 0!==n.serviceProps&&c(e,n.serviceProps),a[t]=e,i.prototype[t]=function(...e){const t=this._getService.bind(this,r);return t.apply(this,n.multipleInstances?e:[])})}return"PUBLIC"===n.type?a[t]:null},removeApp:function(e){delete s[e]},useAsService:function(e,t){if("serverAuth"===t)return null;var n=t;return n},modularAPIs:It}};function o(e){if(e=e||Ke,!V(s,e))throw Et.create("no-app",{appName:e});return s[e]}return a.default=a,Object.defineProperty(a,"apps",{get:function(){return Object.keys(s).map(e=>s[e])}}),o.App=i,a}var St=function e(){const t=Ct(Tt);return t.INTERNAL=Object.assign(Object.assign({},t.INTERNAL),{createFirebaseNamespace:e,extendNamespace:function(e){c(t,e)},createSubscribe:Q,ErrorFactory:O,deepExtend:c}),t}();const kt=new ye("@firebase/app-compat");try{var At=o();if(void 0!==At.firebase){kt.warn(`
      Warning: Firebase is already defined in the global scope. Please make sure
      Firebase library is only loaded once.
    `);const AP=At.firebase.SDK_VERSION;AP&&0<=AP.indexOf("LITE")&&kt.warn(`
        Warning: You are trying to load Firebase while using Firebase Performance standalone script.
        You should load Firebase Performance with this instance of Firebase to avoid loading duplicate code.
        `)}}catch(e){}const Nt=St;ct("@firebase/app-compat","0.2.43",void 0);Nt.registerVersion("firebase","10.14.1","app-compat");var Rt="@firebase/installations",Pt="0.6.9";const Dt=1e4,xt="w:0.6.9",Ot="FIS_v2",Mt="https://firebaseinstallations.googleapis.com/v1",Lt=36e5;const Ft=new O("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 Ut(e){return e instanceof x&&e.code.includes("request-failed")}function Vt({projectId:e}){return`${Mt}/projects/${e}/installations`}function qt(e){return{token:e.token,requestStatus:2,expiresIn:(e=e.expiresIn,Number(e.replace("s","000"))),creationTime:Date.now()}}async function jt(e,t){var n=(await t.json()).error;return Ft.create("request-failed",{requestName:e,serverCode:n.code,serverMessage:n.message,serverStatus:n.status})}function Bt({apiKey:e}){return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e})}function zt(e,{refreshToken:t}){const n=Bt(e);return n.append("Authorization",(t=t,`${Ot} ${t}`)),n}async function Kt(e){var t=await e();return 500<=t.status&&t.status<600?e():t}function $t(t){return new Promise(e=>{setTimeout(e,t)})}const Wt=/^[cdef][\w-]{21}$/,Gt="";function Ht(){try{const t=new Uint8Array(17),n=self.crypto||self.msCrypto;n.getRandomValues(t),t[0]=112+t[0]%16;var e=function(e){const t=function(e){const t=btoa(String.fromCharCode(...e));return t.replace(/\+/g,"-").replace(/\//g,"_")}(e);return t.substr(0,22)}(t);return Wt.test(e)?e:Gt}catch(e){return Gt}}function Qt(e){return`${e.appName}!${e.appId}`}const Yt=new Map;function Jt(e,t){var n=Qt(e);Xt(n,t),function(e,t){const n=function(){!Zt&&"BroadcastChannel"in self&&(Zt=new BroadcastChannel("[Firebase] FID Change"),Zt.onmessage=e=>{Xt(e.data.key,e.data.fid)});return Zt}();n&&n.postMessage({key:e,fid:t});0===Yt.size&&Zt&&(Zt.close(),Zt=null)}(n,t)}function Xt(e,t){var n=Yt.get(e);if(n)for(const r of n)r(t)}let Zt=null;const en="firebase-installations-store";let tn=null;function nn(){return tn=tn||xe("firebase-installations-database",1,{upgrade:(e,t)=>{0===t&&e.createObjectStore(en)}}),tn}async function rn(e,t){var n=Qt(e);const r=await nn(),i=r.transaction(en,"readwrite"),s=i.objectStore(en);var a=await s.get(n);return await s.put(t,n),await i.done,a&&a.fid===t.fid||Jt(e,t.fid),t}async function sn(e){var t=Qt(e);const n=await nn(),r=n.transaction(en,"readwrite");await r.objectStore(en).delete(t),await r.done}async function an(e,t){var n=Qt(e);const r=await nn(),i=r.transaction(en,"readwrite"),s=i.objectStore(en);var a=await s.get(n),o=t(a);return void 0===o?await s.delete(n):await s.put(o,n),await i.done,!o||a&&a.fid===o.fid||Jt(e,o.fid),o}async function on(n){let r;var e=await an(n.appConfig,e=>{var t=ln(e||{fid:Ht(),registrationStatus:0}),t=function(e,t){{if(0!==t.registrationStatus)return 1===t.registrationStatus?{installationEntry:t,registrationPromise:async function(e){let t=await cn(e.appConfig);for(;1===t.registrationStatus;)await $t(100),t=await cn(e.appConfig);if(0!==t.registrationStatus)return t;{var{installationEntry:n,registrationPromise:r}=await on(e);return r||n}}(e)}:{installationEntry:t};if(!navigator.onLine){var n=Promise.reject(Ft.create("app-offline"));return{installationEntry:t,registrationPromise:n}}var r={fid:t.fid,registrationStatus:1,registrationTime:Date.now()},n=async function(t,n){try{var e=await async function({appConfig:e,heartbeatServiceProvider:t},{fid:n}){const r=Vt(e),i=Bt(e),s=t.getImmediate({optional:!0});!s||(a=await s.getHeartbeatsHeader())&&i.append("x-firebase-client",a);var a={fid:n,authVersion:Ot,appId:e.appId,sdkVersion:xt};const o={method:"POST",headers:i,body:JSON.stringify(a)},c=await Kt(()=>fetch(r,o));if(c.ok){a=await c.json();return{fid:a.fid||n,registrationStatus:2,refreshToken:a.refreshToken,authToken:qt(a.authToken)}}throw await jt("Create Installation",c)}(t,n);return rn(t.appConfig,e)}catch(e){throw Ut(e)&&409===e.customData.serverCode?await sn(t.appConfig):await rn(t.appConfig,{fid:n.fid,registrationStatus:0}),e}}(e,r);return{installationEntry:r,registrationPromise:n}}}(n,t);return r=t.registrationPromise,t.installationEntry});return e.fid===Gt?{installationEntry:await r}:{installationEntry:e,registrationPromise:r}}function cn(e){return an(e,e=>{if(!e)throw Ft.create("installation-not-found");return ln(e)})}function ln(e){return 1===(t=e).registrationStatus&&t.registrationTime+Dt<Date.now()?{fid:e.fid,registrationStatus:0}:e;var t}async function un({appConfig:e,heartbeatServiceProvider:t},n){const r=([i,s]=[e,n["fid"]],`${Vt(i)}/${s}/authTokens:generate`);var i,s;const a=zt(e,n),o=t.getImmediate({optional:!0});!o||(c=await o.getHeartbeatsHeader())&&a.append("x-firebase-client",c);var c={installation:{sdkVersion:xt,appId:e.appId}};const l={method:"POST",headers:a,body:JSON.stringify(c)},u=await Kt(()=>fetch(r,l));if(u.ok)return qt(await u.json());throw await jt("Generate Auth Token",u)}async function hn(r,i=!1){let s;var e=await an(r.appConfig,e=>{if(!pn(e))throw Ft.create("not-registered");var t,n=e.authToken;if(i||2!==(t=n).requestStatus||function(e){var t=Date.now();return t<e.creationTime||e.creationTime+e.expiresIn<t+Lt}(t)){if(1===n.requestStatus)return s=async function(e,t){let n=await dn(e.appConfig);for(;1===n.authToken.requestStatus;)await $t(100),n=await dn(e.appConfig);var r=n.authToken;return 0===r.requestStatus?hn(e,t):r}(r,i),e;if(!navigator.onLine)throw Ft.create("app-offline");n=(t=e,n={requestStatus:1,requestTime:Date.now()},Object.assign(Object.assign({},t),{authToken:n}));return s=async function(t,n){try{var r=await un(t,n),e=Object.assign(Object.assign({},n),{authToken:r});return await rn(t.appConfig,e),r}catch(e){throw!Ut(e)||401!==e.customData.serverCode&&404!==e.customData.serverCode?(r=Object.assign(Object.assign({},n),{authToken:{requestStatus:0}}),await rn(t.appConfig,r)):await sn(t.appConfig),e}}(r,n),n}return e});return s?await s:e.authToken}function dn(e){return an(e,e=>{if(!pn(e))throw Ft.create("not-registered");var t,n=e.authToken;return 1===(t=n).requestStatus&&t.requestTime+Dt<Date.now()?Object.assign(Object.assign({},e),{authToken:{requestStatus:0}}):e})}function pn(e){return void 0!==e&&2===e.registrationStatus}async function fn(e,t=!1){var n,r=e;return await((n=(await on(r)).registrationPromise)&&await n),(await hn(r,t)).token}function gn(e){return Ft.create("missing-app-config-values",{valueName:e})}const mn="installations",vn=e=>{var t=e.getProvider("app").getImmediate();return{app:t,appConfig:function(e){if(!e||!e.options)throw gn("App Configuration");if(!e.name)throw gn("App Name");for(const t of["projectId","apiKey","appId"])if(!e.options[t])throw gn(t);return{appName:e.name,projectId:e.options.projectId,apiKey:e.options.apiKey,appId:e.options.appId}}(t),heartbeatServiceProvider:Xe(t,"heartbeat"),_delete:()=>Promise.resolve()}},_n=e=>{const t=Xe(e.getProvider("app").getImmediate(),mn).getImmediate();return{getId:()=>async function(e){var t=e;const{installationEntry:n,registrationPromise:r}=await on(t);return(r||hn(t)).catch(console.error),n.fid}(t),getToken:e=>fn(t,e)}};Je(new ue(mn,vn,"PUBLIC")),Je(new ue("installations-internal",_n,"PRIVATE")),ct(Rt,Pt),ct(Rt,Pt,"esm2017");const yn="analytics",wn="firebase_id",bn="origin",In="https://firebase.googleapis.com/v1alpha/projects/-/apps/{app-id}/webConfig",Tn="https://www.googletagmanager.com/gtag/js",En=new ye("@firebase/analytics"),Cn=new O("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 Sn(e){if(e.startsWith(Tn))return e;var t=Cn.create("invalid-gtag-resource",{gtagURL:e});return En.warn(t.message),""}function kn(e){return Promise.all(e.map(e=>e.catch(e=>e)))}function An(e,t){const n=function(e,t){let n;return window.trustedTypes&&(n=window.trustedTypes.createPolicy(e,t)),n}("firebase-js-sdk-policy",{createScriptURL:Sn}),r=document.createElement("script");var i=`${Tn}?l=${e}&id=${t}`;r.src=n?null===n||void 0===n?void 0:n.createScriptURL(i):i,r.async=!0,document.head.appendChild(r)}function Nn(d,p,f,g){return async function(e,...t){try{var n,r,i,s,a,o,c,l,u,h;"event"===e?([n,r]=t,await async function(e,n,r,i,s){try{let t=[];if(s&&s.send_to){let e=s.send_to;Array.isArray(e)||(e=[e]);const c=await kn(r);for(const l of e){var a=c.find(e=>e.measurementId===l),o=a&&n[a.appId];if(!o){t=[];break}t.push(o)}}0===t.length&&(t=Object.values(n)),await Promise.all(t),e("event",i,s||{})}catch(e){En.error(e)}}(d,p,f,n,r)):"config"===e?([i,s]=t,await async function(e,t,n,r,i,s){var a=r[i];try{if(a)await t[a];else{const c=await kn(n);var o=c.find(e=>e.measurementId===i);o&&await t[o.appId]}}catch(e){En.error(e)}e("config",i,s)}(d,p,f,g,i,s)):"consent"===e?([a,o]=t,d("consent",a,o)):"get"===e?([c,l,u]=t,d("get",c,l,u)):"set"===e?([h]=t,d("set",h)):d(e,...t)}catch(e){En.error(e)}}}const Rn=30;const Pn=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 Dn(e){var t,{appId:n,apiKey:r}=e,r={method:"GET",headers:new Headers({Accept:"application/json","x-goog-api-key":r})},n=In.replace("{app-id}",n);const i=await fetch(n,r);if(200===i.status||304===i.status)return i.json();{let e="";try{var s=await i.json();null!==(t=s.error)&&void 0!==t&&t.message&&(e=s.error.message)}catch(e){}throw Cn.create("config-fetch-failed",{httpStatus:i.status,responseMessage:e})}}async function xn(e,t=Pn,n){var{appId:r,apiKey:i,measurementId:s}=e.options;if(!r)throw Cn.create("no-app-id");if(!i){if(s)return{measurementId:s,appId:r};throw Cn.create("no-api-key")}var a=t.getThrottleMetadata(r)||{backoffCount:0,throttleEndTimeMillis:Date.now()};const o=new Ln;return setTimeout(async()=>{o.abort()},void 0!==n?n:6e4),async function t(n,{throttleEndTimeMillis:e,backoffCount:r},i,s=Pn){var a;const{appId:o,measurementId:c}=n;try{await On(i,e)}catch(e){if(c)return En.warn("Timed out fetching this Firebase app's measurement ID from the server."+` Falling back to the measurement ID ${c}`+` provided in the "measurementId" field in the local Firebase config. [${null==e?void 0:e.message}]`),{appId:o,measurementId:c};throw e}try{const l=await Dn(n);return s.deleteThrottleMetadata(o),l}catch(e){const u=e;if(!Mn(u)){if(s.deleteThrottleMetadata(o),c)return En.warn("Failed to fetch this Firebase app's measurement ID from the server."+` Falling back to the measurement ID ${c}`+` provided in the "measurementId" field in the local Firebase config. [${null===u||void 0===u?void 0:u.message}]`),{appId:o,measurementId:c};throw e}const h=503===Number(null===(a=null===u||void 0===u?void 0:u.customData)||void 0===a?void 0:a.httpStatus)?ce(r,s.intervalMillis,Rn):ce(r,s.intervalMillis),d={throttleEndTimeMillis:Date.now()+h,backoffCount:r+1};return s.setThrottleMetadata(o,d),En.debug(`Calling attemptFetch again in ${h} millis`),t(n,d,i,s)}}({appId:r,apiKey:i,measurementId:s},a,o,t)}function On(i,s){return new Promise((e,t)=>{var n=Math.max(s-Date.now(),0);const r=setTimeout(e,n);i.addEventListener(()=>{clearTimeout(r),t(Cn.create("fetch-throttle",{throttleEndTimeMillis:s}))})})}function Mn(e){if(!(e instanceof x&&e.customData))return!1;var t=Number(e.customData.httpStatus);return 429===t||500===t||503===t||504===t}class Ln{constructor(){this.listeners=[]}addEventListener(e){this.listeners.push(e)}abort(){this.listeners.forEach(e=>e())}}async function Fn(t,e,n,r,i,s,a){const o=xn(t);o.then(e=>{n[e.measurementId]=e.appId,t.options.measurementId&&e.measurementId!==t.options.measurementId&&En.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=>En.error(e)),e.push(o);var c=async function(){if(!R())return En.warn(Cn.create("indexeddb-unavailable",{errorInfo:"IndexedDB is not available in this environment."}).message),!1;try{await P()}catch(e){return En.warn(Cn.create("indexeddb-unavailable",{errorInfo:null==e?void 0:e.toString()}).message),!1}return!0}().then(e=>{if(e)return r.getId()}),[l,u]=await Promise.all([o,c]);!function(e){var t=window.document.getElementsByTagName("script");for(const n of Object.values(t))if(n.src&&n.src.includes(Tn)&&n.src.includes(e))return n}(s)&&An(s,l.measurementId),i("js",new Date);const h=null!==(c=null==a?void 0:a.config)&&void 0!==c?c:{};return h[bn]="firebase",h.update=!0,null!=u&&(h[wn]=u),i("config",l.measurementId,h),l.measurementId}class Un{constructor(e){this.app=e}_delete(){return delete Vn[this.app.options.appId],Promise.resolve()}}let Vn={},qn=[];const jn={};let Bn="dataLayer",zn="gtag",Kn,$n,Wn=!1;function Gn(e){if(Wn)throw Cn.create("already-initialized");e.dataLayerName&&(Bn=e.dataLayerName),e.gtagName&&(zn=e.gtagName)}function Hn(e,t,n){!function(){const e=[];var t;C()&&e.push("This is a browser extension environment."),D()||e.push("Cookies are not available."),0<e.length&&(t=e.map((e,t)=>`(${t+1}) ${e}`).join(" "),t=Cn.create("invalid-analytics-context",{errorInfo:t}),En.warn(t.message))}();var r,i,s=e.options.appId;if(!s)throw Cn.create("no-app-id");if(!e.options.apiKey){if(!e.options.measurementId)throw Cn.create("no-api-key");En.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!=Vn[s])throw Cn.create("already-exists",{id:s});return Wn||(function(e){let t=[];Array.isArray(window[e])?t=window[e]:window[e]=t,t}(Bn),{wrappedGtag:r,gtagCore:i}=function(e,t,n,r,i){let s=function(){window[r].push(arguments)};return window[i]&&"function"==typeof window[i]&&(s=window[i]),window[i]=Nn(s,e,t,n),{gtagCore:s,wrappedGtag:window[i]}}(Vn,qn,jn,Bn,zn),$n=r,Kn=i,Wn=!0),Vn[s]=Fn(e,qn,jn,t,Kn,Bn,n),new Un(e)}async function Qn(){if(C())return!1;if(!D())return!1;if(!R())return!1;try{return await P()}catch(e){return!1}}function Yn(e,t,n){e=le(e),async function(e,t,n,r){if(r&&r.global)return e("set",{screen_name:n}),Promise.resolve();e("config",await t,{update:!0,screen_name:n})}($n,Vn[e.app.options.appId],t,n).catch(e=>En.error(e))}function Jn(e,t,n){e=le(e),async function(e,t,n,r){if(r&&r.global)return e("set",{user_id:n}),Promise.resolve();e("config",await t,{update:!0,user_id:n})}($n,Vn[e.app.options.appId],t,n).catch(e=>En.error(e))}function Xn(e,t,n){e=le(e),async function(e,t,n,r){if(r&&r.global){const i={};for(const s of Object.keys(n))i[`user_properties.${s}`]=n[s];return e("set",i),Promise.resolve()}e("config",await t,{update:!0,user_properties:n})}($n,Vn[e.app.options.appId],t,n).catch(e=>En.error(e))}function Zn(e,t){e=le(e),async function(e,t){var n=await e;window[`ga-disable-${n}`]=!t}(Vn[e.app.options.appId],t).catch(e=>En.error(e))}function er(e,t,n,r){e=le(e),async function(e,t,n,r,i){var s;i&&i.global?e("event",n,r):(s=await t,e("event",n,Object.assign(Object.assign({},r),{send_to:s})))}($n,Vn[e.app.options.appId],t,n,r).catch(e=>En.error(e))}const tr="@firebase/analytics";Je(new ue(yn,(e,{options:t})=>{return Hn(e.getProvider("app").getImmediate(),e.getProvider("installations-internal").getImmediate(),t)},"PUBLIC")),Je(new ue("analytics-internal",function(e){try{const r=e.getProvider(yn).getImmediate();return{logEvent:(e,t,n)=>er(r,e,t,n)}}catch(e){throw Cn.create("interop-component-reg-failed",{reason:e})}},"PRIVATE")),ct(tr,"0.10.8"),ct(tr,"0.10.8","esm2017");var nr,rr;class ir{constructor(e,t){this.app=e,this._delegate=t}logEvent(e,t,n){er(this._delegate,e,t,n)}setCurrentScreen(e,t){Yn(this._delegate,e,t)}setUserId(e,t){Jn(this._delegate,e,t)}setUserProperties(e,t){Xn(this._delegate,e,t)}setAnalyticsCollectionEnabled(e){Zn(this._delegate,e)}}(St=nr=nr||{}).ADD_SHIPPING_INFO="add_shipping_info",St.ADD_PAYMENT_INFO="add_payment_info",St.ADD_TO_CART="add_to_cart",St.ADD_TO_WISHLIST="add_to_wishlist",St.BEGIN_CHECKOUT="begin_checkout",St.CHECKOUT_PROGRESS="checkout_progress",St.EXCEPTION="exception",St.GENERATE_LEAD="generate_lead",St.LOGIN="login",St.PAGE_VIEW="page_view",St.PURCHASE="purchase",St.REFUND="refund",St.REMOVE_FROM_CART="remove_from_cart",St.SCREEN_VIEW="screen_view",St.SEARCH="search",St.SELECT_CONTENT="select_content",St.SELECT_ITEM="select_item",St.SELECT_PROMOTION="select_promotion",St.SET_CHECKOUT_OPTION="set_checkout_option",St.SHARE="share",St.SIGN_UP="sign_up",St.TIMING_COMPLETE="timing_complete",St.VIEW_CART="view_cart",St.VIEW_ITEM="view_item",St.VIEW_ITEM_LIST="view_item_list",St.VIEW_PROMOTION="view_promotion",St.VIEW_SEARCH_RESULTS="view_search_results";const sr=e=>{var t=e.getProvider("app-compat").getImmediate(),n=e.getProvider("analytics").getImmediate();return new ir(t,n)};rr={Analytics:ir,settings:Gn,isSupported:Qn,EventName:nr},Nt.INTERNAL.registerComponent(new ue("analytics-compat",sr,"PUBLIC").setServiceProps(rr).setMultipleInstances(!0)),Nt.registerVersion("@firebase/analytics-compat","0.2.14");const ar=new Map,or={activated:!1,tokenObservers:[]},cr={initialized:!1,enabled:!1};function lr(e){return ar.get(e)||Object.assign({},or)}const ur="https://content-firebaseappcheck.googleapis.com/v1",hr="exchangeDebugToken",dr={OFFSET_DURATION:3e5,RETRIAL_MIN_WAIT:3e4,RETRIAL_MAX_WAIT:96e4};class pr{constructor(e,t,n,r,i){if(this.operation=e,this.retryPolicy=t,this.getWaitDuration=n,this.lowerBound=r,this.upperBound=i,this.pending=null,i<(this.nextErrorWaitInterval=r))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 y,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 y,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){if(e)return this.nextErrorWaitInterval=this.lowerBound,this.getWaitDuration();var t=this.nextErrorWaitInterval;return this.nextErrorWaitInterval*=2,this.nextErrorWaitInterval>this.upperBound&&(this.nextErrorWaitInterval=this.upperBound),t}}const fr=new O("appCheck","AppCheck",{"already-initialized":"You have already called initializeAppCheck() for FirebaseApp {$appName} with different options. To avoid this error, call initializeAppCheck() with the same options as when it was originally called. This will return the already initialized instance.","use-before-activation":"App Check is being used before initializeAppCheck() is called for FirebaseApp {$appName}. Call initializeAppCheck() before instantiating other Firebase services.","fetch-network-error":"Fetch failed to connect to a network. Check Internet connection. Original error: {$originalErrorMessage}.","fetch-parse-error":"Fetch client could not parse response. Original error: {$originalErrorMessage}.","fetch-status-error":"Fetch server returned an HTTP error status. HTTP status: {$httpStatus}.","storage-open":"Error thrown when opening storage. Original error: {$originalErrorMessage}.","storage-get":"Error thrown when reading from storage. Original error: {$originalErrorMessage}.","storage-set":"Error thrown when writing to storage. Original error: {$originalErrorMessage}.","recaptcha-error":"ReCAPTCHA error.",throttled:"Requests throttled due to {$httpStatus} error. Attempts allowed again after {$time}"});function gr(e=!1){var t;return e?null===(t=self.grecaptcha)||void 0===t?void 0:t.enterprise:self.grecaptcha}function mr(e){if(!lr(e).activated)throw fr.create("use-before-activation",{appName:e.name})}function vr(e){var t=Math.round(e/1e3),n=Math.floor(t/86400),r=Math.floor((t-3600*n*24)/3600),i=Math.floor((t-3600*n*24-3600*r)/60),t=t-3600*n*24-3600*r-60*i;let s="";return n&&(s+=_r(n)+"d:"),r&&(s+=_r(r)+"h:"),s+=_r(i)+"m:"+_r(t)+"s",s}function _r(e){return 0===e?"00":10<=e?e.toString():"0"+e}async function yr({url:e,body:t},n){const r={"Content-Type":"application/json"},i=n.getImmediate({optional:!0});!i||(c=await i.getHeartbeatsHeader())&&(r["X-Firebase-Client"]=c);var s={method:"POST",body:JSON.stringify(t),headers:r};let a;try{a=await fetch(e,s)}catch(e){throw fr.create("fetch-network-error",{originalErrorMessage:null==e?void 0:e.message})}if(200!==a.status)throw fr.create("fetch-status-error",{httpStatus:a.status});let o;try{o=await a.json()}catch(e){throw fr.create("fetch-parse-error",{originalErrorMessage:null==e?void 0:e.message})}var c=o.ttl.match(/^([\d.]+)(s)$/);if(!c||!c[2]||isNaN(Number(c[1])))throw fr.create("fetch-parse-error",{originalErrorMessage:"ttl field (timeToLive) is not in standard Protobuf Duration "+`format: ${o.ttl}`});s=1e3*Number(c[1]),c=Date.now();return{token:o.token,expireTimeMillis:c+s,issuedAtTimeMillis:c}}function wr(e,t){var{projectId:n,appId:r,apiKey:i}=e.options;return{url:`${ur}/projects/${n}/apps/${r}:${hr}?key=${i}`,body:{debug_token:t}}}const br="firebase-app-check-database",Ir=1,Tr="firebase-app-check-store",Er="debug-token";let Cr=null;function Sr(){return Cr||(Cr=new Promise((t,n)=>{try{const e=indexedDB.open(br,Ir);e.onsuccess=e=>{t(e.target.result)},e.onerror=e=>{var t;n(fr.create("storage-open",{originalErrorMessage:null===(t=e.target.error)||void 0===t?void 0:t.message}))},e.onupgradeneeded=e=>{const t=e.target.result;0===e.oldVersion&&t.createObjectStore(Tr,{keyPath:"compositeKey"})}}catch(e){n(fr.create("storage-open",{originalErrorMessage:null==e?void 0:e.message}))}}),Cr)}async function kr(e,t){const n=await Sr(),r=n.transaction(Tr,"readwrite"),i=r.objectStore(Tr),s=i.put({compositeKey:e,value:t});return new Promise((t,n)=>{s.onsuccess=e=>{t()},r.onerror=e=>{var t;n(fr.create("storage-set",{originalErrorMessage:null===(t=e.target.error)||void 0===t?void 0:t.message}))}})}async function Ar(e){const t=await Sr(),i=t.transaction(Tr,"readonly"),n=i.objectStore(Tr),s=n.get(e);return new Promise((n,r)=>{s.onsuccess=e=>{var t=e.target.result;n(t?t.value:void 0)},i.onerror=e=>{var t;r(fr.create("storage-get",{originalErrorMessage:null===(t=e.target.error)||void 0===t?void 0:t.message}))}})}function Nr(e){return`${e.options.appId}-${e.name}`}const Rr=new ye("@firebase/app-check");async function Pr(t){if(R()){let e=void 0;try{e=await Ar(Nr(t))}catch(e){Rr.warn(`Failed to read token from IndexedDB. Error: ${e}`)}return e}}function Dr(e,t){return R()?kr(Nr(e),t).catch(e=>{Rr.warn(`Failed to write token to IndexedDB. Error: ${e}`)}):Promise.resolve()}async function xr(){let e=void 0;try{e=await Ar(Er)}catch(e){}if(e)return e;var t,n=ne();return t=n,kr(Er,t).catch(e=>Rr.warn(`Failed to persist debug token to IndexedDB. Error: ${e}`)),n}function Or(){return cr.enabled}async function Mr(){var e=cr;if(e.enabled&&e.token)return e.token.promise;throw Error(`
            Can't get debug token in production mode.
        `)}const Lr={error:"UNKNOWN_ERROR"};async function Fr(e,t=!1){var n=e.app;mr(n);const r=lr(n);let i=r.token,s=void 0;if(i&&!Br(i)&&(r.token=void 0,i=void 0),i||(o=await r.cachedTokenPromise)&&(Br(o)?i=o:await Dr(n,void 0)),!t&&i&&Br(i))return{token:i.token};let a=!1;if(Or()){r.exchangeTokenPromise||(r.exchangeTokenPromise=yr(wr(n,await Mr()),e.heartbeatServiceProvider).finally(()=>{r.exchangeTokenPromise=void 0}),a=!0);var o=await r.exchangeTokenPromise;return await Dr(n,o),{token:(r.token=o).token}}try{r.exchangeTokenPromise||(r.exchangeTokenPromise=r.provider.getToken().finally(()=>{r.exchangeTokenPromise=void 0}),a=!0),i=await lr(n).exchangeTokenPromise}catch(e){"appCheck/throttled"===e.code?Rr.warn(e.message):Rr.error(e),s=e}let c;return i?s?c=Br(i)?{token:i.token,internalError:s}:zr(s):(c={token:i.token},r.token=i,await Dr(n,i)):c=zr(s),a&&jr(n,c),c}function Ur(e,t,n,r){var i=e["app"];const s=lr(i);i={next:n,error:r,type:t};if(s.tokenObservers=[...s.tokenObservers,i],s.token&&Br(s.token)){const a=s.token;Promise.resolve().then(()=>{n({token:a.token}),qr(e)}).catch(()=>{})}s.cachedTokenPromise.then(()=>qr(e))}function Vr(e,t){const n=lr(e);var r=n.tokenObservers.filter(e=>e.next!==t);0===r.length&&n.tokenRefresher&&n.tokenRefresher.isRunning()&&n.tokenRefresher.stop(),n.tokenObservers=r}function qr(e){var t=e["app"];const n=lr(t);let r=n.tokenRefresher;r||(r=function(n){const r=n["app"];return new pr(async()=>{var e=lr(r);let t;if(t=e.token?await Fr(n,!0):await Fr(n),t.error)throw t.error;if(t.internalError)throw t.internalError},()=>!0,()=>{var e=lr(r);if(e.token){var t=e.token.issuedAtTimeMillis+.5*(e.token.expireTimeMillis-e.token.issuedAtTimeMillis)+3e5,e=e.token.expireTimeMillis-3e5,t=Math.min(t,e);return Math.max(0,t-Date.now())}return 0},dr.RETRIAL_MIN_WAIT,dr.RETRIAL_MAX_WAIT)}(e),n.tokenRefresher=r),!r.isRunning()&&n.isTokenAutoRefreshEnabled&&r.start()}function jr(e,t){for(const n of lr(e).tokenObservers)try{"EXTERNAL"===n.type&&null!=t.error?n.error(t.error):n.next(t)}catch(e){}}function Br(e){return 0<e.expireTimeMillis-Date.now()}function zr(e){return{token:(t=Lr,r.encodeString(JSON.stringify(t),!1)),error:e};var t}class Kr{constructor(e,t){this.app=e,this.heartbeatServiceProvider=t}_delete(){var e=lr(this.app)["tokenObservers"];for(const t of e)Vr(this.app,t.next);return Promise.resolve()}}function $r(t){return{getToken:e=>Fr(t,e),getLimitedUseToken:()=>async function(e){var t=e.app;mr(t);const n=lr(t)["provider"];if(Or()){var r=(await yr(wr(t,await Mr()),e.heartbeatServiceProvider))["token"];return{token:r}}return{token:r=(await n.getToken())["token"]}}(t),addTokenListener:e=>Ur(t,"INTERNAL",e),removeTokenListener:e=>Vr(t.app,e)}}const Wr="https://www.google.com/recaptcha/api.js",Gr="https://www.google.com/recaptcha/enterprise.js";function Hr(t,n){const r=new y,e=lr(t);e.reCAPTCHAState={initialized:r};const i=Jr(t);var s=gr(!1);return s?Yr(t,n,s,i,r):function(e){const t=document.createElement("script");t.src=Wr,t.onload=e,document.head.appendChild(t)}(()=>{var e=gr(!1);if(!e)throw new Error("no recaptcha");Yr(t,n,e,i,r)}),r.promise}function Qr(t,n){const r=new y,e=lr(t);e.reCAPTCHAState={initialized:r};const i=Jr(t);var s=gr(!0);return s?Yr(t,n,s,i,r):function(e){const t=document.createElement("script");t.src=Gr,t.onload=e,document.head.appendChild(t)}(()=>{var e=gr(!0);if(!e)throw new Error("no recaptcha");Yr(t,n,e,i,r)}),r.promise}function Yr(e,t,n,r,i){n.ready(()=>{!function(e,t,n,r){const i=n.render(r,{sitekey:t,size:"invisible",callback:()=>{lr(e).reCAPTCHAState.succeeded=!0},"error-callback":()=>{lr(e).reCAPTCHAState.succeeded=!1}}),s=lr(e);s.reCAPTCHAState=Object.assign(Object.assign({},s.reCAPTCHAState),{widgetId:i})}(e,t,n,r),i.resolve(n)})}function Jr(e){var t=`fire_app_check_${e.name}`;const n=document.createElement("div");return n.id=t,n.style.display="none",document.body.appendChild(n),t}async function Xr(r){mr(r);const i=await lr(r).reCAPTCHAState.initialized.promise;return new Promise((e,t)=>{const n=lr(r).reCAPTCHAState;i.ready(()=>{e(i.execute(n.widgetId,{action:"fire_app_check"}))})})}class Zr{constructor(e){this._siteKey=e,this._throttleData=null}async getToken(){var e;ri(this._throttleData);var t=await Xr(this._app).catch(e=>{throw fr.create("recaptcha-error")});if(null===(e=lr(this._app).reCAPTCHAState)||void 0===e||!e.succeeded)throw fr.create("recaptcha-error");let n;try{n=await yr(function(e,t){var{projectId:n,appId:r,apiKey:i}=e.options;return{url:`${ur}/projects/${n}/apps/${r}:exchangeRecaptchaV3Token?key=${i}`,body:{recaptcha_v3_token:t}}}(this._app,t),this._heartbeatServiceProvider)}catch(e){throw null!==(t=e.code)&&void 0!==t&&t.includes("fetch-status-error")?(this._throttleData=ni(Number(null===(t=e.customData)||void 0===t?void 0:t.httpStatus),this._throttleData),fr.create("throttled",{time:vr(this._throttleData.allowRequestsAfter-Date.now()),httpStatus:this._throttleData.httpStatus})):e}return this._throttleData=null,n}initialize(e){this._app=e,this._heartbeatServiceProvider=Xe(e,"heartbeat"),Hr(e,this._siteKey).catch(()=>{})}isEqual(e){return e instanceof Zr&&this._siteKey===e._siteKey}}class ei{constructor(e){this._siteKey=e,this._throttleData=null}async getToken(){var e;ri(this._throttleData);var t=await Xr(this._app).catch(e=>{throw fr.create("recaptcha-error")});if(null===(e=lr(this._app).reCAPTCHAState)||void 0===e||!e.succeeded)throw fr.create("recaptcha-error");let n;try{n=await yr(function(e,t){var{projectId:n,appId:r,apiKey:i}=e.options;return{url:`${ur}/projects/${n}/apps/${r}:exchangeRecaptchaEnterpriseToken?key=${i}`,body:{recaptcha_enterprise_token:t}}}(this._app,t),this._heartbeatServiceProvider)}catch(e){throw null!==(t=e.code)&&void 0!==t&&t.includes("fetch-status-error")?(this._throttleData=ni(Number(null===(t=e.customData)||void 0===t?void 0:t.httpStatus),this._throttleData),fr.create("throttled",{time:vr(this._throttleData.allowRequestsAfter-Date.now()),httpStatus:this._throttleData.httpStatus})):e}return this._throttleData=null,n}initialize(e){this._app=e,this._heartbeatServiceProvider=Xe(e,"heartbeat"),Qr(e,this._siteKey).catch(()=>{})}isEqual(e){return e instanceof ei&&this._siteKey===e._siteKey}}class ti{constructor(e){this._customProviderOptions=e}async getToken(){var e=await this._customProviderOptions.getToken(),t=function(e){const t=U(e).claims;return"object"==typeof t&&t.hasOwnProperty("iat")?t.iat:null}(e.token),t=null!==t&&t<Date.now()&&0<t?1e3*t:Date.now();return Object.assign(Object.assign({},e),{issuedAtTimeMillis:t})}initialize(e){this._app=e}isEqual(e){return e instanceof ti&&this._customProviderOptions.getToken.toString()===e._customProviderOptions.getToken.toString()}}function ni(e,t){if(404===e||403===e)return{backoffCount:1,allowRequestsAfter:Date.now()+864e5,httpStatus:e};var n=t?t.backoffCount:0,r=ce(n,1e3,2);return{backoffCount:n+1,allowRequestsAfter:Date.now()+r,httpStatus:e}}function ri(e){if(e&&Date.now()-e.allowRequestsAfter<=0)throw fr.create("throttled",{time:vr(e.allowRequestsAfter-Date.now()),httpStatus:e.httpStatus})}function ii(e=at(),t){const n=Xe(e=le(e),"app-check");if(cr.initialized||function(){var e=o();const t=cr;if(t.initialized=!0,"string"==typeof e.FIREBASE_APPCHECK_DEBUG_TOKEN||!0===e.FIREBASE_APPCHECK_DEBUG_TOKEN){t.enabled=!0;const n=new y;t.token=n,"string"==typeof e.FIREBASE_APPCHECK_DEBUG_TOKEN?n.resolve(e.FIREBASE_APPCHECK_DEBUG_TOKEN):n.resolve(xr())}}(),Or()&&Mr().then(e=>console.log(`App Check debug token: ${e}. You will need to add it to your app's App Check settings in the Firebase console for it to work.`)),n.isInitialized()){var r=n.getImmediate();const i=n.getOptions();if(i.isTokenAutoRefreshEnabled===t.isTokenAutoRefreshEnabled&&i.provider.isEqual(t.provider))return r;throw fr.create("already-initialized",{appName:e.name})}r=n.initialize({options:t});return function(t,e,n){const r=function(e,t){return ar.set(e,t),ar.get(e)}(t,Object.assign({},or));r.activated=!0,r.provider=e,r.cachedTokenPromise=Pr(t).then(e=>(e&&Br(e)&&(r.token=e,jr(t,{token:e.token})),e)),r.isTokenAutoRefreshEnabled=void 0===n?t.automaticDataCollectionEnabled:n,r.provider.initialize(t)}(e,t.provider,t.isTokenAutoRefreshEnabled),lr(e).isTokenAutoRefreshEnabled&&Ur(r,"INTERNAL",()=>{}),r}const si="app-check-internal";Je(new ue("app-check",e=>{var t,n=e.getProvider("app").getImmediate(),r=e.getProvider("heartbeat");return t=n,e=r,new Kr(t,e)},"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback((e,t,n)=>{e.getProvider(si).initialize()})),Je(new ue(si,e=>{return $r(e.getProvider("app-check").getImmediate())},"PUBLIC").setInstantiationMode("EXPLICIT")),ct("@firebase/app-check","0.8.8");const ai=new O("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 oi{constructor(e){this.app=e}activate(e,t){let n;n="string"==typeof e?new Zr(e):e instanceof ei||e instanceof Zr||e instanceof ti?e:new ti({getToken:e.getToken}),this._delegate=ii(this.app,{provider:n,isTokenAutoRefreshEnabled:t})}setTokenAutoRefreshEnabled(e){if(!this._delegate)throw ai.create("use-before-activation",{appName:this.app.name});!function(e,t){const n=lr(e.app);n.tokenRefresher&&(!0===t?n.tokenRefresher.start():n.tokenRefresher.stop()),n.isTokenAutoRefreshEnabled=t}(this._delegate,e)}getToken(e){if(!this._delegate)throw ai.create("use-before-activation",{appName:this.app.name});return async function(e,t){var n=await Fr(e,t);if(n.error)throw n.error;return{token:n.token}}(this._delegate,e)}onTokenChanged(e,t,n){if(!this._delegate)throw ai.create("use-before-activation",{appName:this.app.name});return function(e,t,n){let r=()=>{},i=()=>{};return r=null!=t.next?t.next.bind(t):t,null!=t.error?i=t.error.bind(t):n&&(i=n),Ur(e,"EXTERNAL",r,i),()=>Vr(e.app,r)}(this._delegate,e,t)}}const ci=e=>{var t=e.getProvider("app-compat").getImmediate();return new oi(t)};function li(e,t){var n={};for(i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var r=0,i=Object.getOwnPropertySymbols(e);r<i.length;r++)t.indexOf(i[r])<0&&Object.prototype.propertyIsEnumerable.call(e,i[r])&&(n[i[r]]=e[i[r]]);return n}Nt.INTERNAL.registerComponent(new ue("appCheck-compat",ci,"PUBLIC").setServiceProps({ReCaptchaEnterpriseProvider:ei,ReCaptchaV3Provider:Zr,CustomProvider:ti})),Nt.registerVersion("@firebase/app-check-compat","0.3.15");const ui={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 di(){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 pi(){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."}}const fi=di,gi=new O("auth","Firebase",di()),mi=new ye("@firebase/auth");function vi(e,...t){mi.logLevel<=m.ERROR&&mi.error(`Auth (${it}): ${e}`,...t)}function _i(e,...t){throw Ti(e,...t)}function yi(e,...t){return Ti(e,...t)}function wi(e,t,n){var r=Object.assign(Object.assign({},fi()),{[t]:n});const i=new O("auth","Firebase",r);return i.create(t,{appName:e.name})}function bi(e){return wi(e,"operation-not-supported-in-this-environment","Operations that alter the current user are not supported in conjunction with FirebaseServerApp")}function Ii(e,t,n){if(!(t instanceof n))throw n.name!==t.constructor.name&&_i(e,"argument-error"),wi(e,"argument-error",`Type of ${t.constructor.name} does not match expected instance.`+"Did you pass a reference from a different Auth SDK?")}function Ti(e,...t){if("string"==typeof e)return gi.create(e,...t);{var n=t[0];const r=[...t.slice(1)];return r[0]&&(r[0].appName=e.name),e._errorFactory.create(n,...r)}}function Ei(e,t,...n){if(!e)throw Ti(t,...n)}function Ci(e){var t="INTERNAL ASSERTION FAILED: "+e;throw vi(t),new Error(t)}function Si(e,t){e||Ci(t)}function ki(){var e;return"undefined"!=typeof self&&(null===(e=self.location)||void 0===e?void 0:e.href)||""}function Ai(){return"http:"===Ni()||"https:"===Ni()}function Ni(){var e;return"undefined"!=typeof self&&(null===(e=self.location)||void 0===e?void 0:e.protocol)||null}class Ri{constructor(e,t){Si((this.shortDelay=e)<(this.longDelay=t),"Short delay should be less than long delay!"),this.isMobile=I()||S()}get(){return"undefined"!=typeof navigator&&navigator&&"onLine"in navigator&&"boolean"==typeof navigator.onLine&&(Ai()||C()||"connection"in navigator)&&!navigator.onLine?Math.min(5e3,this.shortDelay):this.isMobile?this.longDelay:this.shortDelay}}function Pi(e,t){Si(e.emulator,"Emulator should always be set here");var n=e.emulator["url"];return t?`${n}${t.startsWith("/")?t.slice(1):t}`:n}class Di{static initialize(e,t,n){this.fetchImpl=e,t&&(this.headersImpl=t),n&&(this.responseImpl=n)}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 Ci("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 Ci("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 Ci("Could not find Response implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill"))}}const xi={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"},Oi=new Ri(3e4,6e4);function Mi(e,t){return e.tenantId&&!t.tenantId?Object.assign(Object.assign({},t),{tenantId:e.tenantId}):t}async function Li(s,a,o,c,e={}){return Fi(s,e,async()=>{let e={},t={};c&&("GET"===a?t=c:e={body:JSON.stringify(c)});var n=$(Object.assign({key:s.config.apiKey},t)).slice(1);const r=await s._getAdditionalHeaders();r["Content-Type"]="application/json",s.languageCode&&(r["X-Firebase-Locale"]=s.languageCode);const i=Object.assign({method:a,headers:r},e);return"undefined"!=typeof navigator&&"Cloudflare-Workers"===navigator.userAgent||(i.referrerPolicy="no-referrer"),Di.fetch()(Vi(s,s.config.apiHost,o,n),i)})}async function Fi(t,e,n){t._canInitEmulator=!1;var r=Object.assign(Object.assign({},xi),e);try{const a=new qi(t),o=await Promise.race([n(),a.promise]);a.clearNetworkTimeout();var i=await o.json();if("needConfirmation"in i)throw ji(t,"account-exists-with-different-credential",i);if(o.ok&&!("errorMessage"in i))return i;{const c=o.ok?i.errorMessage:i.error.message,[l,u]=c.split(" : ");if("FEDERATED_USER_ID_ALREADY_LINKED"===l)throw ji(t,"credential-already-in-use",i);if("EMAIL_EXISTS"===l)throw ji(t,"email-already-in-use",i);if("USER_DISABLED"===l)throw ji(t,"user-disabled",i);var s=r[l]||l.toLowerCase().replace(/[_\s]+/g,"-");if(u)throw wi(t,s,u);_i(t,s)}}catch(e){if(e instanceof x)throw e;_i(t,"network-request-failed",{message:String(e)})}}async function Ui(e,t,n,r,i={}){var s=await Li(e,t,n,r,i);return"mfaPendingCredential"in s&&_i(e,"multi-factor-auth-required",{_serverResponse:s}),s}function Vi(e,t,n,r){var i=`${t}${n}?${r}`;return e.config.emulator?Pi(e.config,i):`${e.config.apiScheme}://${i}`}class qi{constructor(e){this.auth=e,this.timer=null,this.promise=new Promise((e,t)=>{this.timer=setTimeout(()=>t(yi(this.auth,"network-request-failed")),Oi.get())})}clearNetworkTimeout(){clearTimeout(this.timer)}}function ji(e,t,n){const r={appName:e.name};n.email&&(r.email=n.email),n.phoneNumber&&(r.phoneNumber=n.phoneNumber);const i=yi(e,t,r);return i.customData._tokenResponse=n,i}function Bi(e){return void 0!==e&&void 0!==e.getResponse}function zi(e){return void 0!==e&&void 0!==e.enterprise}class Ki{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(e){if(!this.recaptchaEnforcementState||0===this.recaptchaEnforcementState.length)return null;for(const t of this.recaptchaEnforcementState)if(t.provider&&t.provider===e)return function(e){switch(e){case"ENFORCE":return"ENFORCE";case"AUDIT":return"AUDIT";case"OFF":return"OFF";default:return"ENFORCEMENT_STATE_UNSPECIFIED"}}(t.enforcementState);return null}isProviderEnabled(e){return"ENFORCE"===this.getProviderEnforcementState(e)||"AUDIT"===this.getProviderEnforcementState(e)}}async function $i(e,t){return Li(e,"POST","/v1/accounts:lookup",t)}function Wi(e){if(e)try{const t=new Date(Number(e));if(!isNaN(t.getTime()))return t.toUTCString()}catch(e){}}function Gi(e){return 1e3*Number(e)}function Hi(e){var[t,n,r]=e.split(".");if(void 0===t||void 0===n||void 0===r)return vi("JWT malformed, contained fewer than 3 sections"),null;try{var i=a(n);return i?JSON.parse(i):(vi("Failed to decode base64 JWT payload"),null)}catch(e){return vi("Caught error parsing JWT payload as JSON",null==e?void 0:e.toString()),null}}function Qi(e){var t=Hi(e);return Ei(t,"internal-error"),Ei(void 0!==t.exp,"internal-error"),Ei(void 0!==t.iat,"internal-error"),Number(t.exp)-Number(t.iat)}async function Yi(t,n,e=!1){if(e)return n;try{return n}catch(e){throw e instanceof x&&(n=[e["code"]][0],"auth/user-disabled"===n||"auth/user-token-expired"===n)&&t.auth.currentUser===t&&await t.auth.signOut(),e}}class Ji{constructor(e){this.user=e,this.isRunning=!1,this.timerId=null,this.errorBackoff=3e4}_start(){this.isRunning||(this.isRunning=!0,this.schedule())}_stop(){this.isRunning&&(this.isRunning=!1,null!==this.timerId&&clearTimeout(this.timerId))}getInterval(e){if(e){var t=this.errorBackoff;return this.errorBackoff=Math.min(2*this.errorBackoff,96e4),t}this.errorBackoff=3e4;t=(null!==(t=this.user.stsTokenManager.expirationTime)&&void 0!==t?t:0)-Date.now()-3e5;return 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"===(null==e?void 0:e.code)&&this.schedule(!0))}this.schedule()}}class Xi{constructor(e,t){this.createdAt=e,this.lastLoginAt=t,this._initializeTime()}_initializeTime(){this.lastSignInTime=Wi(this.lastLoginAt),this.creationTime=Wi(this.createdAt)}_copy(e){this.createdAt=e.createdAt,this.lastLoginAt=e.lastLoginAt,this._initializeTime()}toJSON(){return{createdAt:this.createdAt,lastLoginAt:this.lastLoginAt}}}async function Zi(e){var t=e.auth,n=await e.getIdToken(),r=await Yi(e,$i(t,{idToken:n}));Ei(null==r?void 0:r.users.length,t,"internal-error");var i=r.users[0];e._notifyReloadListener(i);var s,a,t=null!==(n=i.providerUserInfo)&&void 0!==n&&n.length?es(i.providerUserInfo):[],r=(s=e.providerData,a=t,[...s.filter(t=>!a.some(e=>e.providerId===t.providerId)),...a]),n=e.isAnonymous,t=!(e.email&&i.passwordHash||null!==r&&r.length),t=!!n&&t,t={uid:i.localId,displayName:i.displayName||null,photoURL:i.photoUrl||null,email:i.email||null,emailVerified:i.emailVerified||!1,phoneNumber:i.phoneNumber||null,tenantId:i.tenantId||null,providerData:r,metadata:new Xi(i.createdAt,i.lastLoginAt),isAnonymous:t};Object.assign(e,t)}function es(e){return e.map(e=>{var t=e["providerId"],n=li(e,["providerId"]);return{providerId:t,uid:n.rawId||"",displayName:n.displayName||null,email:n.email||null,phoneNumber:n.phoneNumber||null,photoURL:n.photoUrl||null}})}class ts{constructor(){this.refreshToken=null,this.accessToken=null,this.expirationTime=null}get isExpired(){return!this.expirationTime||Date.now()>this.expirationTime-3e4}updateFromServerResponse(e){Ei(e.idToken,"internal-error"),Ei(void 0!==e.idToken,"internal-error"),Ei(void 0!==e.refreshToken,"internal-error");var t="expiresIn"in e&&void 0!==e.expiresIn?Number(e.expiresIn):Qi(e.idToken);this.updateTokensAndExpiration(e.idToken,e.refreshToken,t)}updateFromIdToken(e){Ei(0!==e.length,"internal-error");var t=Qi(e);this.updateTokensAndExpiration(e,null,t)}async getToken(e,t=!1){return t||!this.accessToken||this.isExpired?(Ei(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){var i,s,{accessToken:n,refreshToken:r,expiresIn:a}=(s=t,await{accessToken:(a=await Fi(i=e,{},async()=>{var e=$({grant_type:"refresh_token",refresh_token:s}).slice(1),{tokenApiHost:t,apiKey:n}=i.config,n=Vi(i,t,"/v1/token",`key=${n}`);const r=await i._getAdditionalHeaders();return r["Content-Type"]="application/x-www-form-urlencoded",Di.fetch()(n,{method:"POST",headers:r,body:e})})).access_token,expiresIn:a.expires_in,refreshToken:a.refresh_token});this.updateTokensAndExpiration(n,r,Number(a))}updateTokensAndExpiration(e,t,n){this.refreshToken=t||null,this.accessToken=e||null,this.expirationTime=Date.now()+1e3*n}static fromJSON(e,t){var{refreshToken:n,accessToken:r,expirationTime:i}=t;const s=new ts;return n&&(Ei("string"==typeof n,"internal-error",{appName:e}),s.refreshToken=n),r&&(Ei("string"==typeof r,"internal-error",{appName:e}),s.accessToken=r),i&&(Ei("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 ts,this.toJSON())}_performRefresh(){return Ci("not implemented")}}function ns(e,t){Ei("string"==typeof e||void 0===e,"internal-error",{appName:t})}class rs{constructor(e){var{uid:t,auth:n,stsTokenManager:r}=e,i=li(e,["uid","auth","stsTokenManager"]);this.providerId="firebase",this.proactiveRefresh=new Ji(this),this.reloadUserInfo=null,this.reloadListener=null,this.uid=t,this.auth=n,this.stsTokenManager=r,this.accessToken=r.accessToken,this.displayName=i.displayName||null,this.email=i.email||null,this.emailVerified=i.emailVerified||!1,this.phoneNumber=i.phoneNumber||null,this.photoURL=i.photoURL||null,this.isAnonymous=i.isAnonymous||!1,this.tenantId=i.tenantId||null,this.providerData=i.providerData?[...i.providerData]:[],this.metadata=new Xi(i.createdAt||void 0,i.lastLoginAt||void 0)}async getIdToken(e){var t=await Yi(this,this.stsTokenManager.getToken(this.auth,e));return Ei(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 function(e,t=!1){const n=le(e);var r=await n.getIdToken(t),i=Hi(r);Ei(i&&i.exp&&i.auth_time&&i.iat,n.auth,"internal-error");var s="object"==typeof i.firebase?i.firebase:void 0,a=null==s?void 0:s.sign_in_provider;return{claims:i,token:r,authTime:Wi(Gi(i.auth_time)),issuedAtTime:Wi(Gi(i.iat)),expirationTime:Wi(Gi(i.exp)),signInProvider:a||null,signInSecondFactor:(null==s?void 0:s.sign_in_second_factor)||null}}(this,e)}reload(){return async function(e){const t=le(e);await Zi(t),await t.auth._persistUserIfCurrent(t),t.auth._notifyListenersIfCurrent(t)}(this)}_assign(e){this!==e&&(Ei(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=>Object.assign({},e)),this.metadata._copy(e.metadata),this.stsTokenManager._assign(e.stsTokenManager))}_clone(e){const t=new rs(Object.assign(Object.assign({},this),{auth:e,stsTokenManager:this.stsTokenManager._clone()}));return t.metadata._copy(this.metadata),t}_onReload(e){Ei(!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 n=!1;e.idToken&&e.idToken!==this.stsTokenManager.accessToken&&(this.stsTokenManager.updateFromServerResponse(e),n=!0),t&&await Zi(this),await this.auth._persistUserIfCurrent(this),n&&this.auth._notifyListenersIfCurrent(this)}async delete(){if(et(this.auth.app))return Promise.reject(bi(this.auth));var e=await this.getIdToken();return await Yi(this,async function(e,t){return Li(e,"POST","/v1/accounts:delete",t)}(this.auth,{idToken:e})),this.stsTokenManager.clearRefreshToken(),this.auth.signOut()}toJSON(){return Object.assign(Object.assign({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=>Object.assign({},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 n=null!==(a=t.displayName)&&void 0!==a?a:void 0,r=null!==(g=t.email)&&void 0!==g?g:void 0,i=null!==(o=t.phoneNumber)&&void 0!==o?o:void 0,s=null!==(l=t.photoURL)&&void 0!==l?l:void 0,a=null!==(c=t.tenantId)&&void 0!==c?c:void 0,o=null!==(g=t._redirectEventId)&&void 0!==g?g:void 0,c=null!==(l=t.createdAt)&&void 0!==l?l:void 0,l=null!==(g=t.lastLoginAt)&&void 0!==g?g:void 0;const{uid:u,emailVerified:h,isAnonymous:d,providerData:p,stsTokenManager:f}=t;Ei(u&&f,e,"internal-error");var g=ts.fromJSON(this.name,f);Ei("string"==typeof u,e,"internal-error"),ns(n,e.name),ns(r,e.name),Ei("boolean"==typeof h,e,"internal-error"),Ei("boolean"==typeof d,e,"internal-error"),ns(i,e.name),ns(s,e.name),ns(a,e.name),ns(o,e.name),ns(c,e.name),ns(l,e.name);const m=new rs({uid:u,auth:e,email:r,emailVerified:h,displayName:n,isAnonymous:d,photoURL:s,phoneNumber:i,tenantId:a,stsTokenManager:g,createdAt:c,lastLoginAt:l});return p&&Array.isArray(p)&&(m.providerData=p.map(e=>Object.assign({},e))),o&&(m._redirectEventId=o),m}static async _fromIdTokenResponse(e,t,n=!1){const r=new ts;r.updateFromServerResponse(t);var i=new rs({uid:t.localId,auth:e,stsTokenManager:r,isAnonymous:n});return await Zi(i),i}static async _fromGetAccountInfoResponse(e,t,n){var r=t.users[0];Ei(void 0!==r.localId,"internal-error");var i=void 0!==r.providerUserInfo?es(r.providerUserInfo):[],s=!(r.email&&r.passwordHash||null!=i&&i.length);const a=new ts;a.updateFromIdToken(n);s=new rs({uid:r.localId,auth:e,stsTokenManager:a,isAnonymous:s}),i={uid:r.localId,displayName:r.displayName||null,photoURL:r.photoUrl||null,email:r.email||null,emailVerified:r.emailVerified||!1,phoneNumber:r.phoneNumber||null,tenantId:r.tenantId||null,providerData:i,metadata:new Xi(r.createdAt,r.lastLoginAt),isAnonymous:!(r.email&&r.passwordHash||null!=i&&i.length)};return Object.assign(s,i),s}}const is=new Map;function ss(e){Si(e instanceof Function,"Expected a class definition");let t=is.get(e);return t?Si(t instanceof e,"Instance stored in cache mismatched with class"):(t=new e,is.set(e,t)),t}class as{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){}}as.type="NONE";const os=as;function cs(e,t,n){return`firebase:${e}:${t}:${n}`}class ls{constructor(e,t,n){this.persistence=e,this.auth=t,this.userKey=n;var{config:r,name:i}=this.auth;this.fullUserKey=cs(this.userKey,r.apiKey,i),this.fullPersistenceKey=cs("persistence",r.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=await this.persistence._get(this.fullUserKey);return e?rs._fromJSON(this.auth,e):null}removeCurrentUser(){return this.persistence._remove(this.fullUserKey)}savePersistenceForRedirect(){return this.persistence._set(this.fullPersistenceKey,this.persistence.type)}async setPersistence(e){if(this.persistence!==e){var t=await this.getCurrentUser();return await this.removeCurrentUser(),this.persistence=e,t?this.setCurrentUser(t):void 0}}delete(){this.persistence._removeListener(this.fullUserKey,this.boundEventHandler)}static async create(e,t,n="authUser"){if(!t.length)return new ls(ss(os),e,n);const r=(await Promise.all(t.map(async e=>{if(await e._isAvailable())return e}))).filter(e=>e);let i=r[0]||ss(os);const s=cs(n,e.config.apiKey,e.name);let a=null;for(const u of t)try{var o=await u._get(s);if(o){var c=rs._fromJSON(e,o);u!==i&&(a=c),i=u;break}}catch(e){}var l=r.filter(e=>e._shouldAllowMigration);return i._shouldAllowMigration&&l.length&&(i=l[0],a&&await i._set(s,a.toJSON()),await Promise.all(t.map(async e=>{if(e!==i)try{await e._remove(s)}catch(e){}}))),new ls(i,e,n)}}function us(e){const t=e.toLowerCase();if(t.includes("opera/")||t.includes("opr/")||t.includes("opios/"))return"Opera";if(fs(t))return"IEMobile";if(t.includes("msie")||t.includes("trident/"))return"IE";if(t.includes("edge/"))return"Edge";if(hs(t))return"Firefox";if(t.includes("silk/"))return"Silk";if(ms(t))return"Blackberry";if(vs(t))return"Webos";if(ds(t))return"Safari";if((t.includes("chrome/")||ps(t))&&!t.includes("edge/"))return"Chrome";if(gs(t))return"Android";var n=e.match(/([a-zA-Z\d\.]+)\/[a-zA-Z\d\.]*$/);return 2===(null==n?void 0:n.length)?n[1]:"Other"}function hs(e=b()){return/firefox\//i.test(e)}function ds(e=b()){const t=e.toLowerCase();return t.includes("safari/")&&!t.includes("chrome/")&&!t.includes("crios/")&&!t.includes("android")}function ps(e=b()){return/crios\//i.test(e)}function fs(e=b()){return/iemobile/i.test(e)}function gs(e=b()){return/android/i.test(e)}function ms(e=b()){return/blackberry/i.test(e)}function vs(e=b()){return/webos/i.test(e)}function _s(e=b()){return/iphone|ipad|ipod/i.test(e)||/macintosh/i.test(e)&&/mobile/i.test(e)}function ys(e=b()){return _s(e)||gs(e)||vs(e)||ms(e)||/windows phone/i.test(e)||fs(e)}function ws(e,t=[]){let n;switch(e){case"Browser":n=us(b());break;case"Worker":n=`${us(b())}-${e}`;break;default:n=e}var r=t.length?t.join(","):"FirebaseCore-web";return`${n}/JsCore/${it}/${r}`}class bs{constructor(e){this.auth=e,this.queue=[]}pushCallback(r,e){var t=n=>new Promise((e,t)=>{try{e(r(n))}catch(e){t(e)}});t.onAbort=e,this.queue.push(t);const n=this.queue.length-1;return()=>{this.queue[n]=()=>Promise.resolve()}}async runMiddleware(e){if(this.auth.currentUser!==e){const t=[];try{for(const n of this.queue)await n(e),n.onAbort&&t.push(n.onAbort)}catch(e){t.reverse();for(const r of t)try{r()}catch(e){}throw this.auth._errorFactory.create("login-blocked",{originalMessage:null==e?void 0:e.message})}}}}class Is{constructor(e){var t,n=e.customStrengthOptions;this.customStrengthOptions={},this.customStrengthOptions.minPasswordLength=null!==(t=n.minPasswordLength)&&void 0!==t?t:6,n.maxPasswordLength&&(this.customStrengthOptions.maxPasswordLength=n.maxPasswordLength),void 0!==n.containsLowercaseCharacter&&(this.customStrengthOptions.containsLowercaseLetter=n.containsLowercaseCharacter),void 0!==n.containsUppercaseCharacter&&(this.customStrengthOptions.containsUppercaseLetter=n.containsUppercaseCharacter),void 0!==n.containsNumericCharacter&&(this.customStrengthOptions.containsNumericCharacter=n.containsNumericCharacter),void 0!==n.containsNonAlphanumericCharacter&&(this.customStrengthOptions.containsNonAlphanumericCharacter=n.containsNonAlphanumericCharacter),this.enforcementState=e.enforcementState,"ENFORCEMENT_STATE_UNSPECIFIED"===this.enforcementState&&(this.enforcementState="OFF"),this.allowedNonAlphanumericCharacters=null!==(n=null===(n=e.allowedNonAlphanumericCharacters)||void 0===n?void 0:n.join(""))&&void 0!==n?n:"",this.forceUpgradeOnSignin=null!==(n=e.forceUpgradeOnSignin)&&void 0!==n&&n,this.schemaVersion=e.schemaVersion}validatePassword(e){var t,n,r;const i={isValid:!0,passwordPolicy:this};return this.validatePasswordLengthOptions(e,i),this.validatePasswordCharacterOptions(e,i),i.isValid&&(i.isValid=null===(t=i.meetsMinPasswordLength)||void 0===t||t),i.isValid&&(i.isValid=null===(t=i.meetsMaxPasswordLength)||void 0===t||t),i.isValid&&(i.isValid=null===(n=i.containsLowercaseLetter)||void 0===n||n),i.isValid&&(i.isValid=null===(n=i.containsUppercaseLetter)||void 0===n||n),i.isValid&&(i.isValid=null===(r=i.containsNumericCharacter)||void 0===r||r),i.isValid&&(i.isValid=null===(r=i.containsNonAlphanumericCharacter)||void 0===r||r),i}validatePasswordLengthOptions(e,t){var n=this.customStrengthOptions.minPasswordLength,r=this.customStrengthOptions.maxPasswordLength;n&&(t.meetsMinPasswordLength=e.length>=n),r&&(t.meetsMaxPasswordLength=e.length<=r)}validatePasswordCharacterOptions(e,t){var n;this.updatePasswordCharacterOptionsStatuses(t,!1,!1,!1,!1);for(let r=0;r<e.length;r++)n=e.charAt(r),this.updatePasswordCharacterOptionsStatuses(t,"a"<=n&&n<="z","A"<=n&&n<="Z","0"<=n&&n<="9",this.allowedNonAlphanumericCharacters.includes(n))}updatePasswordCharacterOptionsStatuses(e,t,n,r,i){this.customStrengthOptions.containsLowercaseLetter&&(e.containsLowercaseLetter||(e.containsLowercaseLetter=t)),this.customStrengthOptions.containsUppercaseLetter&&(e.containsUppercaseLetter||(e.containsUppercaseLetter=n)),this.customStrengthOptions.containsNumericCharacter&&(e.containsNumericCharacter||(e.containsNumericCharacter=r)),this.customStrengthOptions.containsNonAlphanumericCharacter&&(e.containsNonAlphanumericCharacter||(e.containsNonAlphanumericCharacter=i))}}class Ts{constructor(e,t,n,r){this.app=e,this.heartbeatServiceProvider=t,this.appCheckServiceProvider=n,this.config=r,this.currentUser=null,this.emulatorConfig=null,this.operations=Promise.resolve(),this.authStateSubscription=new Cs(this),this.idTokenSubscription=new Cs(this),this.beforeStateQueue=new bs(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=gi,this._agentRecaptchaConfig=null,this._tenantRecaptchaConfigs={},this._projectPasswordPolicy=null,this._tenantPasswordPolicies={},this.lastNotifiedUid=void 0,this.languageCode=null,this.tenantId=null,this.settings={appVerificationDisabledForTesting:!1},this.frameworks=[],this.name=e.name,this.clientVersion=r.sdkClientVersion}_initializeWithPersistence(t,n){return n&&(this._popupRedirectResolver=ss(n)),this._initializationPromise=this.queue(async()=>{var e;if(!this._deleted&&(this.persistenceManager=await ls.create(this,t),!this._deleted)){if(null!==(e=this._popupRedirectResolver)&&void 0!==e&&e._shouldInitProactively)try{await this._popupRedirectResolver._initialize(this)}catch(e){}await this.initializeCurrentUser(n),this.lastNotifiedUid=(null===(e=this.currentUser)||void 0===e?void 0:e.uid)||null,this._deleted||(this._isInitialized=!0)}}),this._initializationPromise}async _onStorageEvent(){if(!this._deleted){var e=await this.assertedPersistence.getCurrentUser();if(this.currentUser||e)return this.currentUser&&e&&this.currentUser.uid===e.uid?(this._currentUser._assign(e),void await this.currentUser.getIdToken()):void await this._updateCurrentUser(e,!0)}}async initializeCurrentUserFromIdToken(e){try{var t=await $i(this,{idToken:e}),n=await rs._fromGetAccountInfoResponse(this,t,e);await this.directlySetCurrentUser(n)}catch(e){console.warn("FirebaseServerApp could not login user with provided authIdToken: ",e),await this.directlySetCurrentUser(null)}}async initializeCurrentUser(e){if(et(this.app)){const o=this.app.settings.authIdToken;return o?new Promise(e=>{setTimeout(()=>this.initializeCurrentUserFromIdToken(o).then(e,e))}):this.directlySetCurrentUser(null)}var t,n,r,i=await this.assertedPersistence.getCurrentUser();let s=i,a=!1;if(e&&this.config.authDomain&&(await this.getOrInitRedirectPersistenceManager(),t=null===(r=this.redirectUser)||void 0===r?void 0:r._redirectEventId,n=null===s||void 0===s?void 0:s._redirectEventId,r=await this.tryRedirectSignIn(e),t&&t!==n||null==r||!r.user||(s=r.user,a=!0)),!s)return this.directlySetCurrentUser(null);if(s._redirectEventId)return Ei(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 Zi(e)}catch(e){if("auth/network-request-failed"!==(null==e?void 0:e.code))return this.directlySetCurrentUser(null)}return this.directlySetCurrentUser(e)}useDeviceLanguage(){this.languageCode=function(){if("undefined"==typeof navigator)return null;var e=navigator;return e.languages&&e.languages[0]||e.language||null}()}async _delete(){this._deleted=!0}async updateCurrentUser(e){if(et(this.app))return Promise.reject(bi(this));const t=e?le(e):null;return t&&Ei(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&&Ei(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 et(this.app)?Promise.reject(bi(this)):(await this.beforeStateQueue.runMiddleware(null),(this.redirectPersistenceManager||this._popupRedirectResolver)&&await this._setRedirectUser(null),this._updateCurrentUser(null,!0))}setPersistence(e){return et(this.app)?Promise.reject(bi(this)):this.queue(async()=>{await this.assertedPersistence.setPersistence(ss(e))})}_getRecaptchaConfig(){return null==this.tenantId?this._agentRecaptchaConfig:this._tenantRecaptchaConfigs[this.tenantId]}async validatePassword(e){this._getPasswordPolicyInternal()||await this._updatePasswordPolicy();const 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 Li(e=this,"GET","/v2/passwordPolicy",Mi(e,{})),t=new Is(t);null===this.tenantId?this._projectPasswordPolicy=t:this._tenantPasswordPolicies[this.tenantId]=t}_getPersistence(){return this.assertedPersistence.persistence.type}_updateErrorMap(e){this._errorFactory=new O("auth","Firebase",e())}onAuthStateChanged(e,t,n){return this.registerStateListener(this.authStateSubscription,e,t,n)}beforeAuthStateChanged(e,t){return this.beforeStateQueue.pushCallback(e,t)}onIdTokenChanged(e,t,n){return this.registerStateListener(this.idTokenSubscription,e,t,n)}authStateReady(){return new Promise((e,t)=>{if(this.currentUser)e();else{const n=this.onAuthStateChanged(()=>{n(),e()},t)}})}async revokeAccessToken(e){if(this.currentUser){const n={providerId:"apple.com",tokenType:"ACCESS_TOKEN",token:e,idToken:await this.currentUser.getIdToken()};null!=this.tenantId&&(n.tenantId=this.tenantId),t=this,e=n,await Li(t,"POST","/v2/accounts:revokeToken",Mi(t,e))}var t}toJSON(){var e;return{apiKey:this.config.apiKey,authDomain:this.config.authDomain,appName:this.name,currentUser:null===(e=this._currentUser)||void 0===e?void 0:e.toJSON()}}async _setRedirectUser(e,t){const n=await this.getOrInitRedirectPersistenceManager(t);return null===e?n.removeCurrentUser():n.setCurrentUser(e)}async getOrInitRedirectPersistenceManager(e){var t;return this.redirectPersistenceManager||(Ei(t=e&&ss(e)||this._popupRedirectResolver,this,"argument-error"),this.redirectPersistenceManager=await ls.create(this,[ss(t._redirectPersistence)],"redirectUser"),this.redirectUser=await this.redirectPersistenceManager.getCurrentUser()),this.redirectPersistenceManager}async _redirectUserForId(e){var t;return this._isInitialized&&await this.queue(async()=>{}),(null===(t=this._currentUser)||void 0===t?void 0:t._redirectEventId)===e?this._currentUser:(null===(t=this.redirectUser)||void 0===t?void 0:t._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=null!==(e=null===(e=this.currentUser)||void 0===e?void 0:e.uid)&&void 0!==e?e:null,this.lastNotifiedUid!==e&&(this.lastNotifiedUid=e,this.authStateSubscription.next(this.currentUser)))}registerStateListener(e,t,n,r){if(this._deleted)return()=>{};const i="function"==typeof t?t:t.next.bind(t);let s=!1;const a=this._isInitialized?Promise.resolve():this._initializationPromise;if(Ei(a,this,"internal-error"),a.then(()=>{s||i(this.currentUser)}),"function"==typeof t){const o=e.addObserver(t,n,r);return()=>{s=!0,o()}}{const c=e.addObserver(t);return()=>{s=!0,c()}}}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 Ei(this.persistenceManager,this,"internal-error"),this.persistenceManager}_logFramework(e){e&&!this.frameworks.includes(e)&&(this.frameworks.push(e),this.frameworks.sort(),this.clientVersion=ws(this.config.clientPlatform,this._getFrameworks()))}_getFrameworks(){return this.frameworks}async _getAdditionalHeaders(){const e={"X-Client-Version":this.clientVersion};this.app.options.appId&&(e["X-Firebase-gmpid"]=this.app.options.appId);var t=await(null===(t=this.heartbeatServiceProvider.getImmediate({optional:!0}))||void 0===t?void 0:t.getHeartbeatsHeader());t&&(e["X-Firebase-Client"]=t);t=await this._getAppCheckToken();return t&&(e["X-Firebase-AppCheck"]=t),e}async _getAppCheckToken(){var e,t,n=await(null===(n=this.appCheckServiceProvider.getImmediate({optional:!0}))||void 0===n?void 0:n.getToken());return null!=n&&n.error&&(e=`Error while retrieving App Check token: ${n.error}`,t=[],mi.logLevel<=m.WARN&&mi.warn(`Auth (${it}): ${e}`,...t)),null==n?void 0:n.token}}function Es(e){return le(e)}class Cs{constructor(e){this.auth=e,this.observer=null,this.addObserver=Q(e=>this.observer=e)}get next(){return Ei(this.observer,this.auth,"internal-error"),this.observer.next.bind(this.observer)}}let Ss={async loadJS(){throw new Error("Unable to load external scripts")},recaptchaV2Script:"",recaptchaEnterpriseScript:"",gapiScript:""};function ks(e){return Ss.loadJS(e)}function As(e){return`__${e}${Math.floor(1e6*Math.random())}`}class Ns{constructor(e){this.type="recaptcha-enterprise",this.auth=Es(e)}async verify(i="verify",e=!1){async function t(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(n,r)=>{!async function(e,t){return Li(e,"GET","/v2/recaptchaConfig",Mi(e,t))}(i,{clientType:"CLIENT_TYPE_WEB",version:"RECAPTCHA_ENTERPRISE"}).then(e=>{if(void 0!==e.recaptchaKey){var t=new Ki(e);return null==i.tenantId?i._agentRecaptchaConfig=t:i._tenantRecaptchaConfigs[i.tenantId]=t,n(t.siteKey)}r(new Error("recaptcha Enterprise site key undefined"))}).catch(e=>{r(e)})})}function s(e,t,n){const r=window.grecaptcha;zi(r)?r.enterprise.ready(()=>{r.enterprise.execute(e,{action:i}).then(e=>{t(e)}).catch(()=>{t("NO_RECAPTCHA")})}):n(Error("No reCAPTCHA enterprise script loaded."))}return new Promise((n,r)=>{t(this.auth).then(t=>{if(!e&&zi(window.grecaptcha))s(t,n,r);else if("undefined"!=typeof window){let e=Ss.recaptchaEnterpriseScript;0!==e.length&&(e+=t),ks(e).then(()=>{s(t,n,r)}).catch(e=>{r(e)})}else r(new Error("RecaptchaVerifier is only supported in browser"))}).catch(e=>{r(e)})})}}async function Rs(e,t,n,r=!1){const i=new Ns(e);let s;try{s=await i.verify(n)}catch(e){s=await i.verify(n,!0)}var a=Object.assign({},t);return r?Object.assign(a,{captchaResp:s}):Object.assign(a,{captchaResponse:s}),Object.assign(a,{clientType:"CLIENT_TYPE_WEB"}),Object.assign(a,{recaptchaVersion:"RECAPTCHA_ENTERPRISE"}),a}async function Ps(n,r,i,s){if(null!==(e=n._getRecaptchaConfig())&&void 0!==e&&e.isProviderEnabled("EMAIL_PASSWORD_PROVIDER")){var e=await Rs(n,r,i,"getOobCode"===i);return s(n,e)}return s(n,r).catch(async e=>{if("auth/missing-recaptcha-token"!==e.code)return Promise.reject(e);console.log(`${i} is protected by reCAPTCHA Enterprise for this project. Automatically triggering the reCAPTCHA flow and restarting the flow.`);var t=await Rs(n,r,i,"getOobCode"===i);return s(n,t)})}function Ds(e,t,n){const r=Es(e);Ei(r._canInitEmulator,r,"emulator-config-failed"),Ei(/^https?:\/\//.test(t),r,"invalid-emulator-scheme");var i=!(null==n||!n.disableWarnings);const s=xs(t);var{host:a,port:o}=function(e){const t=xs(e),n=/(\/\/)?([^?#/]+)/.exec(e.substr(t.length));if(!n)return{host:"",port:null};const r=n[2].split("@").pop()||"",i=/^(\[[^\]]+\])(:|$)/.exec(r);{if(i){var s=i[1];return{host:s,port:Os(r.substr(s.length+1))}}var[a,s]=r.split(":");return{host:a,port:Os(s)}}}(t);r.config.emulator={url:`${s}//${a}${null===o?"":`:${o}`}/`},r.settings.appVerificationDisabledForTesting=!0,r.emulatorConfig=Object.freeze({host:a,port:o,protocol:s.replace(":",""),options:Object.freeze({disableWarnings:i})}),i||function(){function e(){const 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)}"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",e):e())}()}function xs(e){var t=e.indexOf(":");return t<0?"":e.substr(0,t+1)}function Os(e){if(!e)return null;var t=Number(e);return isNaN(t)?null:t}class Ms{constructor(e,t){this.providerId=e,this.signInMethod=t}toJSON(){return Ci("not implemented")}_getIdTokenResponse(e){return Ci("not implemented")}_linkToIdToken(e,t){return Ci("not implemented")}_getReauthenticationResolver(e){return Ci("not implemented")}}async function Ls(e,t){return Li(e,"POST","/v1/accounts:resetPassword",Mi(e,t))}async function Fs(e,t){return Li(e,"POST","/v1/accounts:signUp",t)}async function Us(e,t){return Ui(e,"POST","/v1/accounts:signInWithPassword",Mi(e,t))}async function Vs(e,t){return Li(e,"POST","/v1/accounts:sendOobCode",Mi(e,t))}async function qs(e,t){return Vs(e,t)}async function js(e,t){return Vs(e,t)}class Bs extends Ms{constructor(e,t,n,r=null){super("password",n),this._email=e,this._password=t,this._tenantId=r}static _fromEmailAndPassword(e,t){return new Bs(e,t,"password")}static _fromEmailAndCode(e,t,n=null){return new Bs(e,t,"emailLink",n)}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(null!=t&&t.email&&null!=t&&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 Ps(e,{returnSecureToken:!0,email:this._email,password:this._password,clientType:"CLIENT_TYPE_WEB"},"signInWithPassword",Us);case"emailLink":return async function(e,t){return Ui(e,"POST","/v1/accounts:signInWithEmailLink",Mi(e,t))}(e,{email:this._email,oobCode:this._password});default:_i(e,"internal-error")}}async _linkToIdToken(e,t){switch(this.signInMethod){case"password":return Ps(e,{idToken:t,returnSecureToken:!0,email:this._email,password:this._password,clientType:"CLIENT_TYPE_WEB"},"signUpPassword",Fs);case"emailLink":return async function(e,t){return Ui(e,"POST","/v1/accounts:signInWithEmailLink",Mi(e,t))}(e,{idToken:t,email:this._email,oobCode:this._password});default:_i(e,"internal-error")}}_getReauthenticationResolver(e){return this._getIdTokenResponse(e)}}async function zs(e,t){return Ui(e,"POST","/v1/accounts:signInWithIdp",Mi(e,t))}class Ks extends Ms{constructor(){super(...arguments),this.pendingToken=null}static _fromParams(e){const t=new Ks(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):_i("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="string"==typeof e?JSON.parse(e):e,{providerId:n,signInMethod:r}=t,t=li(t,["providerId","signInMethod"]);if(!n||!r)return null;const i=new Ks(n,r);return i.idToken=t.idToken||void 0,i.accessToken=t.accessToken||void 0,i.secret=t.secret,i.nonce=t.nonce,i.pendingToken=t.pendingToken||null,i}_getIdTokenResponse(e){return zs(e,this.buildRequest())}_linkToIdToken(e,t){const n=this.buildRequest();return n.idToken=t,zs(e,n)}_getReauthenticationResolver(e){const t=this.buildRequest();return t.autoCreate=!1,zs(e,t)}buildRequest(){const e={requestUri:"http://localhost",returnSecureToken:!0};if(this.pendingToken)e.pendingToken=this.pendingToken;else{const t={};this.idToken&&(t.id_token=this.idToken),this.accessToken&&(t.access_token=this.accessToken),this.secret&&(t.oauth_token_secret=this.secret),t.providerId=this.providerId,this.nonce&&!this.pendingToken&&(t.nonce=this.nonce),e.postBody=$(t)}return e}}const $s={USER_NOT_FOUND:"user-not-found"};class Ws extends Ms{constructor(e){super("phone","phone"),this.params=e}static _fromVerification(e,t){return new Ws({verificationId:e,verificationCode:t})}static _fromTokenResponse(e,t){return new Ws({phoneNumber:e,temporaryProof:t})}_getIdTokenResponse(e){return async function(e,t){return Ui(e,"POST","/v1/accounts:signInWithPhoneNumber",Mi(e,t))}(e,this._makeVerificationRequest())}_linkToIdToken(e,t){return async function(e,t){var n=await Ui(e,"POST","/v1/accounts:signInWithPhoneNumber",Mi(e,t));if(n.temporaryProof)throw ji(e,"account-exists-with-different-credential",n);return n}(e,Object.assign({idToken:t},this._makeVerificationRequest()))}_getReauthenticationResolver(e){return async function(e,t){return Ui(e,"POST","/v1/accounts:signInWithPhoneNumber",Mi(e,Object.assign(Object.assign({},t),{operation:"REAUTH"})),$s)}(e,this._makeVerificationRequest())}_makeVerificationRequest(){var{temporaryProof:e,phoneNumber:t,verificationId:n,verificationCode:r}=this.params;return e&&t?{temporaryProof:e,phoneNumber:t}:{sessionInfo:n,code:r}}toJSON(){const 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:n,phoneNumber:r,temporaryProof:i}=e="string"==typeof e?JSON.parse(e):e;return n||t||r||i?new Ws({verificationId:t,verificationCode:n,phoneNumber:r,temporaryProof:i}):null}}class Gs{constructor(e){var t=W(G(e)),n=null!==(r=t.apiKey)&&void 0!==r?r:null,r=null!==(i=t.oobCode)&&void 0!==i?i:null,i=function(e){switch(e){case"recoverEmail":return"RECOVER_EMAIL";case"resetPassword":return"PASSWORD_RESET";case"signIn":return"EMAIL_SIGNIN";case"verifyEmail":return"VERIFY_EMAIL";case"verifyAndChangeEmail":return"VERIFY_AND_CHANGE_EMAIL";case"revertSecondFactorAddition":return"REVERT_SECOND_FACTOR_ADDITION";default:return null}}(null!==(i=t.mode)&&void 0!==i?i:null);Ei(n&&r&&i,"argument-error"),this.apiKey=n,this.operation=i,this.code=r,this.continueUrl=null!==(r=t.continueUrl)&&void 0!==r?r:null,this.languageCode=null!==(r=t.languageCode)&&void 0!==r?r:null,this.tenantId=null!==(t=t.tenantId)&&void 0!==t?t:null}static parseLink(e){var t,n,r,t=(t=W(G(e=e)).link,n=t?W(G(t)).deep_link_id:null,((r=W(G(e)).deep_link_id)?W(G(r)).link:null)||r||n||t||e);try{return new Gs(t)}catch(e){return null}}}class Hs{constructor(){this.providerId=Hs.PROVIDER_ID}static credential(e,t){return Bs._fromEmailAndPassword(e,t)}static credentialWithLink(e,t){var n=Gs.parseLink(t);return Ei(n,"argument-error"),Bs._fromEmailAndCode(e,n.code,n.tenantId)}}Hs.PROVIDER_ID="password",Hs.EMAIL_PASSWORD_SIGN_IN_METHOD="password",Hs.EMAIL_LINK_SIGN_IN_METHOD="emailLink";class Qs{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 Ys extends Qs{constructor(){super(...arguments),this.scopes=[]}addScope(e){return this.scopes.includes(e)||this.scopes.push(e),this}getScopes(){return[...this.scopes]}}class Js extends Ys{static credentialFromJSON(e){var t="string"==typeof e?JSON.parse(e):e;return Ei("providerId"in t&&"signInMethod"in t,"argument-error"),Ks._fromParams(t)}credential(e){return this._credential(Object.assign(Object.assign({},e),{nonce:e.rawNonce}))}_credential(e){return Ei(e.idToken||e.accessToken,"argument-error"),Ks._fromParams(Object.assign(Object.assign({},e),{providerId:this.providerId,signInMethod:this.providerId}))}static credentialFromResult(e){return Js.oauthCredentialFromTaggedObject(e)}static credentialFromError(e){return Js.oauthCredentialFromTaggedObject(e.customData||{})}static oauthCredentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;var{oauthIdToken:t,oauthAccessToken:n,oauthTokenSecret:r,pendingToken:i,nonce:s,providerId:a}=e;if(!(n||r||t||i))return null;if(!a)return null;try{return new Js(a)._credential({idToken:t,accessToken:n,nonce:s,pendingToken:i})}catch(e){return null}}}class Xs extends Ys{constructor(){super("facebook.com")}static credential(e){return Ks._fromParams({providerId:Xs.PROVIDER_ID,signInMethod:Xs.FACEBOOK_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return Xs.credentialFromTaggedObject(e)}static credentialFromError(e){return Xs.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!(e&&"oauthAccessToken"in e))return null;if(!e.oauthAccessToken)return null;try{return Xs.credential(e.oauthAccessToken)}catch(e){return null}}}Xs.FACEBOOK_SIGN_IN_METHOD="facebook.com",Xs.PROVIDER_ID="facebook.com";class Zs extends Ys{constructor(){super("google.com"),this.addScope("profile")}static credential(e,t){return Ks._fromParams({providerId:Zs.PROVIDER_ID,signInMethod:Zs.GOOGLE_SIGN_IN_METHOD,idToken:e,accessToken:t})}static credentialFromResult(e){return Zs.credentialFromTaggedObject(e)}static credentialFromError(e){return Zs.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;var{oauthIdToken:t,oauthAccessToken:n}=e;if(!t&&!n)return null;try{return Zs.credential(t,n)}catch(e){return null}}}Zs.GOOGLE_SIGN_IN_METHOD="google.com",Zs.PROVIDER_ID="google.com";class ea extends Ys{constructor(){super("github.com")}static credential(e){return Ks._fromParams({providerId:ea.PROVIDER_ID,signInMethod:ea.GITHUB_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return ea.credentialFromTaggedObject(e)}static credentialFromError(e){return ea.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!(e&&"oauthAccessToken"in e))return null;if(!e.oauthAccessToken)return null;try{return ea.credential(e.oauthAccessToken)}catch(e){return null}}}ea.GITHUB_SIGN_IN_METHOD="github.com",ea.PROVIDER_ID="github.com";class ta extends Ms{constructor(e,t){super(e,e),this.pendingToken=t}_getIdTokenResponse(e){return zs(e,this.buildRequest())}_linkToIdToken(e,t){const n=this.buildRequest();return n.idToken=t,zs(e,n)}_getReauthenticationResolver(e){const t=this.buildRequest();return t.autoCreate=!1,zs(e,t)}toJSON(){return{signInMethod:this.signInMethod,providerId:this.providerId,pendingToken:this.pendingToken}}static fromJSON(e){var{providerId:t,signInMethod:n,pendingToken:r}="string"==typeof e?JSON.parse(e):e;return t&&n&&r&&t===n?new ta(t,r):null}static _create(e,t){return new ta(e,t)}buildRequest(){return{requestUri:"http://localhost",returnSecureToken:!0,pendingToken:this.pendingToken}}}class na extends Qs{constructor(e){Ei(e.startsWith("saml."),"argument-error"),super(e)}static credentialFromResult(e){return na.samlCredentialFromTaggedObject(e)}static credentialFromError(e){return na.samlCredentialFromTaggedObject(e.customData||{})}static credentialFromJSON(e){var t=ta.fromJSON(e);return Ei(t,"argument-error"),t}static samlCredentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;var{pendingToken:t,providerId:n}=e;if(!t||!n)return null;try{return ta._create(n,t)}catch(e){return null}}}class ra extends Ys{constructor(){super("twitter.com")}static credential(e,t){return Ks._fromParams({providerId:ra.PROVIDER_ID,signInMethod:ra.TWITTER_SIGN_IN_METHOD,oauthToken:e,oauthTokenSecret:t})}static credentialFromResult(e){return ra.credentialFromTaggedObject(e)}static credentialFromError(e){return ra.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;var{oauthAccessToken:t,oauthTokenSecret:n}=e;if(!t||!n)return null;try{return ra.credential(t,n)}catch(e){return null}}}async function ia(e,t){return Ui(e,"POST","/v1/accounts:signUp",Mi(e,t))}ra.TWITTER_SIGN_IN_METHOD="twitter.com",ra.PROVIDER_ID="twitter.com";class sa{constructor(e){this.user=e.user,this.providerId=e.providerId,this._tokenResponse=e._tokenResponse,this.operationType=e.operationType}static async _fromIdTokenResponse(e,t,n,r=!1){var i=await rs._fromIdTokenResponse(e,n,r),s=aa(n);return new sa({user:i,providerId:s,_tokenResponse:n,operationType:t})}static async _forOperation(e,t,n){await e._updateTokensIfNecessary(n,!0);var r=aa(n);return new sa({user:e,providerId:r,_tokenResponse:n,operationType:t})}}function aa(e){return e.providerId||("phoneNumber"in e?"phone":null)}class oa extends x{constructor(e,t,n,r){var i;super(t.code,t.message),this.operationType=n,this.user=r,Object.setPrototypeOf(this,oa.prototype),this.customData={appName:e.name,tenantId:null!==(i=e.tenantId)&&void 0!==i?i:void 0,_serverResponse:t.customData._serverResponse,operationType:n}}static _fromErrorAndOperation(e,t,n,r){return new oa(e,t,n,r)}}function ca(t,n,e,r){const i="reauthenticate"===n?e._getReauthenticationResolver(t):e._getIdTokenResponse(t);return i.catch(e=>{if("auth/multi-factor-auth-required"===e.code)throw oa._fromErrorAndOperation(t,e,n,r);throw e})}function la(e){return new Set(e.map(({providerId:e})=>e).filter(e=>!!e))}async function ua(e,t){const n=le(e);await da(!0,n,t);var r=(e=n.auth,t={idToken:await n.getIdToken(),deleteProvider:[t]},await Li(e,"POST","/v1/accounts:update",t))["providerUserInfo"];const i=la(r||[]);return n.providerData=n.providerData.filter(e=>i.has(e.providerId)),i.has("phone")||(n.phoneNumber=null),await n.auth._persistUserIfCurrent(n),n}async function ha(e,t,n=!1){var r=await Yi(e,t._linkToIdToken(e.auth,await e.getIdToken()),n);return sa._forOperation(e,"link",r)}async function da(e,t,n){await Zi(t);const r=la(t.providerData);var i=!1===e?"provider-already-linked":"no-such-provider";Ei(r.has(n)===e,t.auth,i)}async function pa(e,t,n=!1){var r=e["auth"];if(et(r.app))return Promise.reject(bi(r));var i="reauthenticate";try{var s=await Yi(e,ca(r,i,t,e),n);Ei(s.idToken,r,"internal-error");var a=Hi(s.idToken);Ei(a,r,"internal-error");var o=a["sub"];return Ei(e.uid===o,r,"user-mismatch"),sa._forOperation(e,i,s)}catch(e){throw"auth/user-not-found"===(null==e?void 0:e.code)&&_i(r,"user-mismatch"),e}}async function fa(e,t,n=!1){if(et(e.app))return Promise.reject(bi(e));var r=await ca(e,"signIn",t),r=await sa._fromIdTokenResponse(e,"signIn",r);return n||await e._updateCurrentUser(r.user),r}async function ga(e,t){return fa(Es(e),t)}async function ma(e,t){var n=le(e);return await da(!1,n,t.providerId),ha(n,t)}async function va(e,t){return pa(le(e),t)}async function _a(e,t){if(et(e.app))return Promise.reject(bi(e));const n=Es(e);var r=await Ui(n,"POST","/v1/accounts:signInWithCustomToken",Mi(n,{token:t,returnSecureToken:!0})),r=await sa._fromIdTokenResponse(n,"signIn",r);return await n._updateCurrentUser(r.user),r}class ya{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?wa._fromServerResponse(e,t):"totpInfo"in t?ba._fromServerResponse(e,t):_i(e,"internal-error")}}class wa extends ya{constructor(e){super("phone",e),this.phoneNumber=e.phoneInfo}static _fromServerResponse(e,t){return new wa(t)}}class ba extends ya{constructor(e){super("totp",e)}static _fromServerResponse(e,t){return new ba(t)}}function Ia(e,t,n){var r;Ei(0<(null===(r=n.url)||void 0===r?void 0:r.length),e,"invalid-continue-uri"),Ei(void 0===n.dynamicLinkDomain||0<n.dynamicLinkDomain.length,e,"invalid-dynamic-link-domain"),t.continueUrl=n.url,t.dynamicLinkDomain=n.dynamicLinkDomain,t.canHandleCodeInApp=n.handleCodeInApp,n.iOS&&(Ei(0<n.iOS.bundleId.length,e,"missing-ios-bundle-id"),t.iOSBundleId=n.iOS.bundleId),n.android&&(Ei(0<n.android.packageName.length,e,"missing-android-pkg-name"),t.androidInstallApp=n.android.installApp,t.androidMinimumVersionCode=n.android.minimumVersion,t.androidPackageName=n.android.packageName)}async function Ta(e){const t=Es(e);t._getPasswordPolicyInternal()&&await t._updatePasswordPolicy()}async function Ea(e,t){await Li(e=le(e),"POST","/v1/accounts:update",Mi(e,{oobCode:t}))}async function Ca(e,t){var n=le(e),r=await Ls(n,{oobCode:t}),i=r.requestType;switch(Ei(i,n,"internal-error"),i){case"EMAIL_SIGNIN":break;case"VERIFY_AND_CHANGE_EMAIL":Ei(r.newEmail,n,"internal-error");break;case"REVERT_SECOND_FACTOR_ADDITION":Ei(r.mfaInfo,n,"internal-error");default:Ei(r.email,n,"internal-error")}let s=null;return r.mfaInfo&&(s=ya._fromServerResponse(Es(n),r.mfaInfo)),{data:{email:("VERIFY_AND_CHANGE_EMAIL"===r.requestType?r.newEmail:r.email)||null,previousEmail:("VERIFY_AND_CHANGE_EMAIL"===r.requestType?r.email:r.newEmail)||null,multiFactorInfo:s},operation:i}}async function Sa(e,t){var n=Ai()?ki():"http://localhost",n=(await Li(e=le(e),"POST","/v1/accounts:createAuthUri",Mi(e,{identifier:t,continueUri:n})))["signinMethods"];return n||[]}async function ka(e,t){var n=le(e),r={requestType:"VERIFY_EMAIL",idToken:await e.getIdToken()};t&&Ia(n.auth,r,t);var r=(await Vs(n.auth,r))["email"];r!==e.email&&await e.reload()}async function Aa(e,t,n){var r=le(e),i={requestType:"VERIFY_AND_CHANGE_EMAIL",idToken:await e.getIdToken(),newEmail:t};n&&Ia(r.auth,i,n);var i=(await Vs(r.auth,i))["email"];i!==e.email&&await e.reload()}async function Na(e,{displayName:t,photoURL:n}){if(void 0!==t||void 0!==n){const i=le(e);var r=await i.getIdToken(),r=await Yi(i,async function(e,t){return Li(e,"POST","/v1/accounts:update",t)}(i.auth,{idToken:r,displayName:t,photoUrl:n,returnSecureToken:!0}));i.displayName=r.displayName||null,i.photoURL=r.photoUrl||null;const s=i.providerData.find(({providerId:e})=>"password"===e);s&&(s.displayName=i.displayName,s.photoURL=i.photoURL),await i._updateTokensIfNecessary(r)}}async function Ra(e,t,n){var r=e["auth"];const i={idToken:await e.getIdToken(),returnSecureToken:!0};t&&(i.email=t),n&&(i.password=n);r=await Yi(e,async function(e,t){return Li(e,"POST","/v1/accounts:update",t)}(r,i));await e._updateTokensIfNecessary(r,!0)}class Pa{constructor(e,t,n={}){this.isNewUser=e,this.providerId=t,this.profile=n}}class Da extends Pa{constructor(e,t,n,r){super(e,t,n),this.username=r}}class xa extends Pa{constructor(e,t){super(e,"facebook.com",t)}}class Oa extends Da{constructor(e,t){super(e,"github.com",t,"string"==typeof(null==t?void 0:t.login)?null==t?void 0:t.login:null)}}class Ma extends Pa{constructor(e,t){super(e,"google.com",t)}}class La extends Da{constructor(e,t,n){super(e,"twitter.com",t,n)}}function Fa(e){var{user:t,_tokenResponse:n}=e;return t.isAnonymous&&!n?{providerId:null,isNewUser:!1,profile:null}:function(e){if(!e)return null;var t=e["providerId"],n=e.rawUserInfo?JSON.parse(e.rawUserInfo):{},r=e.isNewUser||"identitytoolkit#SignupNewUserResponse"===e.kind;if(!t&&null!=e&&e.idToken){var i=null===(i=null===(i=Hi(e.idToken))||void 0===i?void 0:i.firebase)||void 0===i?void 0:i.sign_in_provider;if(i){i="anonymous"!==i&&"custom"!==i?i:null;return new Pa(r,i)}}if(!t)return null;switch(t){case"facebook.com":return new xa(r,n);case"github.com":return new Oa(r,n);case"google.com":return new Ma(r,n);case"twitter.com":return new La(r,n,e.screenName||null);case"custom":case"anonymous":return new Pa(r,null);default:return new Pa(r,t,n)}}(n)}class Ua{constructor(e,t,n){this.type=e,this.credential=t,this.user=n}static _fromIdtoken(e,t){return new Ua("enroll",e,t)}static _fromMfaPendingCredential(e){return new Ua("signin",e)}toJSON(){return{multiFactorSession:{["enroll"===this.type?"idToken":"pendingCredential"]:this.credential}}}static fromJSON(e){var t;if(null!=e&&e.multiFactorSession){if(null!==(t=e.multiFactorSession)&&void 0!==t&&t.pendingCredential)return Ua._fromMfaPendingCredential(e.multiFactorSession.pendingCredential);if(null!==(t=e.multiFactorSession)&&void 0!==t&&t.idToken)return Ua._fromIdtoken(e.multiFactorSession.idToken)}return null}}class Va{constructor(e,t,n){this.session=e,this.hints=t,this.signInResolver=n}static _fromError(e,i){const s=Es(e),a=i.customData._serverResponse;var t=(a.mfaInfo||[]).map(e=>ya._fromServerResponse(s,e));Ei(a.mfaPendingCredential,s,"internal-error");const o=Ua._fromMfaPendingCredential(a.mfaPendingCredential);return new Va(o,t,async e=>{var t=await e._process(s,o);delete a.mfaInfo,delete a.mfaPendingCredential;var n=Object.assign(Object.assign({},a),{idToken:t.idToken,refreshToken:t.refreshToken});switch(i.operationType){case"signIn":var r=await sa._fromIdTokenResponse(s,i.operationType,n);return await s._updateCurrentUser(r.user),r;case"reauthenticate":return Ei(i.user,s,"internal-error"),sa._forOperation(i.user,i.operationType,n);default:_i(s,"internal-error")}})}async resolveSignIn(e){return this.signInResolver(e)}}class qa{constructor(t){this.user=t,this.enrolledFactors=[],t._onReload(e=>{e.mfaInfo&&(this.enrolledFactors=e.mfaInfo.map(e=>ya._fromServerResponse(t.auth,e)))})}static _fromUser(e){return new qa(e)}async getSession(){return Ua._fromIdtoken(await this.user.getIdToken(),this.user)}async enroll(e,t){const n=e;var r=await this.getSession(),r=await Yi(this.user,n._process(this.user.auth,r,t));return await this.user._updateTokensIfNecessary(r),this.user.reload()}async unenroll(e){const t="string"==typeof e?e:e.uid;var n,r,i=await this.user.getIdToken();try{var s=await Yi(this.user,(n=this.user.auth,r={idToken:i,mfaEnrollmentId:t},Li(n,"POST","/v2/accounts/mfaEnrollment:withdraw",Mi(n,r))));this.enrolledFactors=this.enrolledFactors.filter(({uid:e})=>e!==t),await this.user._updateTokensIfNecessary(s),await this.user.reload()}catch(e){throw e}}}const ja=new WeakMap;const Ba="__sak";class za{constructor(e,t){this.storageRetriever=e,this.type=t}_isAvailable(){try{return this.storage?(this.storage.setItem(Ba,"1"),this.storage.removeItem(Ba),Promise.resolve(!0)):Promise.resolve(!1)}catch(e){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 Ka extends za{constructor(){super(()=>window.localStorage,"LOCAL"),this.boundEventHandler=(e,t)=>this.onStorageEvent(e,t),this.listeners={},this.localCache={},this.pollTimer=null,this.fallbackToPolling=ys(),this._shouldAllowMigration=!0}forAllChangedKeys(e){for(const r of Object.keys(this.listeners)){var t=this.storage.getItem(r),n=this.localCache[r];t!==n&&e(r,n,t)}}onStorageEvent(e,t=!1){if(e.key){const i=e.key;t?this.detachListener():this.stopPolling();var n=()=>{var e=this.storage.getItem(i);!t&&this.localCache[i]===e||this.notifyListeners(i,e)},r=this.storage.getItem(i);k()&&10===document.documentMode&&r!==e.newValue&&e.newValue!==e.oldValue?setTimeout(n,10):n()}else this.forAllChangedKeys((e,t,n)=>{this.notifyListeners(e,n)})}notifyListeners(e,t){this.localCache[e]=t;var n=this.listeners[e];if(n)for(const r of Array.from(n))r(t&&JSON.parse(t))}startPolling(){this.stopPolling(),this.pollTimer=setInterval(()=>{this.forAllChangedKeys((e,t,n)=>{this.onStorageEvent(new StorageEvent("storage",{key:e,oldValue:t,newValue:n}),!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]}}Ka.type="LOCAL";const $a=Ka;class Wa extends za{constructor(){super(()=>window.sessionStorage,"SESSION")}_addListener(e,t){}_removeListener(e,t){}}Wa.type="SESSION";const Ga=Wa;class Ha{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));if(e)return e;e=new Ha(t);return this.receivers.push(e),e}isListeningto(e){return this.eventTarget===e}async handleEvent(e){const t=e,{eventId:n,eventType:r,data:i}=t.data;var s=this.handlersMap[r];null!=s&&s.size&&(t.ports[0].postMessage({status:"ack",eventId:n,eventType:r}),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:n,eventType:r,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 Qa(e="",t=10){let n="";for(let r=0;r<t;r++)n+=Math.floor(10*Math.random());return e+n}Ha.receivers=[];class Ya{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){const o="undefined"!=typeof MessageChannel?new MessageChannel:null;if(!o)throw new Error("connection_unavailable");let c,l;return new Promise((n,r)=>{const i=Qa("",20);o.port1.start();const s=setTimeout(()=>{r(new Error("unsupported_event"))},a);l={messageChannel:o,onMessage(e){var t=e;if(t.data.eventId===i)switch(t.data.status){case"ack":clearTimeout(s),c=setTimeout(()=>{r(new Error("timeout"))},3e3);break;case"done":clearTimeout(c),n(t.data.response);break;default:clearTimeout(s),clearTimeout(c),r(new Error("invalid_response"))}}},this.handlers.add(l),o.port1.addEventListener("message",l.onMessage),this.target.postMessage({eventType:e,eventId:i,data:t},[o.port2])}).finally(()=>{l&&this.removeMessageHandler(l)})}}function Ja(){return window}function Xa(){return void 0!==Ja().WorkerGlobalScope&&"function"==typeof Ja().importScripts}const Za="firebaseLocalStorageDb",eo="firebaseLocalStorage",to="fbase_key";class no{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 ro(e,t){return e.transaction([eo],t?"readwrite":"readonly").objectStore(eo)}function io(){const r=indexedDB.open(Za,1);return new Promise((n,t)=>{r.addEventListener("error",()=>{t(r.error)}),r.addEventListener("upgradeneeded",()=>{const e=r.result;try{e.createObjectStore(eo,{keyPath:to})}catch(e){t(e)}}),r.addEventListener("success",async()=>{const e=r.result;var t;e.objectStoreNames.contains(eo)?n(e):(e.close(),t=indexedDB.deleteDatabase(Za),await new no(t).toPromise(),n(await io()))})})}async function so(e,t,n){var r=ro(e,!0).put({fbase_key:t,value:n});return new no(r).toPromise()}function ao(e,t){var n=ro(e,!0).delete(t);return new no(n).toPromise()}class oo{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 io(),this.db)}async _withRetries(e){let t=0;for(;;)try{return e(await this._openDb())}catch(e){if(3<t++)throw e;this.db&&(this.db.close(),this.db=void 0)}}async initializeServiceWorkerMessaging(){return Xa()?this.initializeReceiver():this.initializeSender()}async initializeReceiver(){this.receiver=Ha._getInstance(Xa()?self:null),this.receiver._subscribe("keyChanged",async(e,t)=>{const n=await this._poll();return{keyProcessed:n.includes(t.key)}}),this.receiver._subscribe("ping",async(e,t)=>["keyChanged"])}async initializeSender(){var e,t,n;this.activeServiceWorker=await async function(){if(null===navigator||void 0===navigator||!navigator.serviceWorker)return null;try{return(await navigator.serviceWorker.ready).active}catch(e){return null}}(),this.activeServiceWorker&&(this.sender=new Ya(this.activeServiceWorker),(n=await this.sender._send("ping",{},800))&&null!==(e=n[0])&&void 0!==e&&e.fulfilled&&null!==(t=n[0])&&void 0!==t&&t.value.includes("keyChanged")&&(this.serviceWorkerReceiverAvailable=!0))}async notifyServiceWorker(e){var t;if(this.sender&&this.activeServiceWorker&&((null===(t=null===navigator||void 0===navigator?void 0:navigator.serviceWorker)||void 0===t?void 0:t.controller)||null)===this.activeServiceWorker)try{await this.sender._send("keyChanged",{key:e},this.serviceWorkerReceiverAvailable?800:50)}catch(e){}}async _isAvailable(){try{if(!indexedDB)return!1;var e=await io();return await so(e,Ba,"1"),await ao(e,Ba),!0}catch(e){}return!1}async _withPendingWrite(e){this.pendingWrites++;try{await e()}finally{this.pendingWrites--}}async _set(t,n){return this._withPendingWrite(async()=>(await this._withRetries(e=>so(e,t,n)),this.localCache[t]=n,this.notifyServiceWorker(t)))}async _get(t){var e=await this._withRetries(e=>async function(e,t){var n=ro(e,!1).get(t);return void 0===(n=await new no(n).toPromise())?null:n.value}(e,t));return this.localCache[t]=e}async _remove(t){return this._withPendingWrite(async()=>(await this._withRetries(e=>ao(e,t)),delete this.localCache[t],this.notifyServiceWorker(t)))}async _poll(){var e=await this._withRetries(e=>{var t=ro(e,!1).getAll();return new no(t).toPromise()});if(!e)return[];if(0!==this.pendingWrites)return[];const t=[],n=new Set;if(0!==e.length)for(var{fbase_key:r,value:i}of e)n.add(r),JSON.stringify(this.localCache[r])!==JSON.stringify(i)&&(this.notifyListeners(r,i),t.push(r));for(const s of Object.keys(this.localCache))this.localCache[s]&&!n.has(s)&&(this.notifyListeners(s,null),t.push(s));return t}notifyListeners(e,t){this.localCache[e]=t;var n=this.listeners[e];if(n)for(const r of Array.from(n))r(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()}}oo.type="LOCAL";const co=oo;class lo{constructor(e){this.auth=e,this.counter=1e12,this._widgets=new Map}render(e,t){var n=this.counter;return this._widgets.set(n,new uo(e,this.auth.name,t||{})),this.counter++,n}reset(e){var t,n=e||1e12;null===(t=this._widgets.get(n))||void 0===t||t.delete(),this._widgets.delete(n)}getResponse(e){var t;return(null===(t=this._widgets.get(e||1e12))||void 0===t?void 0:t.getResponse())||""}async execute(e){var t;return null===(t=this._widgets.get(e||1e12))||void 0===t||t.execute(),""}}class uo{constructor(e,t,n){this.params=n,this.timerId=null,this.deleted=!1,this.responseToken=null,this.clickHandler=()=>{this.execute()};var r="string"==typeof e?document.getElementById(e):e;Ei(r,"argument-error",{appName:t}),this.container=r,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=function(e){const t=[],n="1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";for(let r=0;r<e;r++)t.push(n.charAt(Math.floor(Math.random()*n.length)));return t.join("")}(50);const{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!")}}const ho=As("rcb"),po=new Ri(3e4,6e4);class fo{constructor(){var e;this.hostLanguage="",this.counter=0,this.librarySeparatelyLoaded=!(null===(e=Ja().grecaptcha)||void 0===e||!e.render)}load(s,a=""){var e;return Ei((e=a).length<=6&&/^\s*[a-zA-Z0-9\-]*\s*$/.test(e),s,"argument-error"),this.shouldResolveImmediately(a)&&Bi(Ja().grecaptcha)?Promise.resolve(Ja().grecaptcha):new Promise((t,n)=>{const i=Ja().setTimeout(()=>{n(yi(s,"network-request-failed"))},po.get());Ja()[ho]=()=>{Ja().clearTimeout(i),delete Ja()[ho];const e=Ja().grecaptcha;if(e&&Bi(e)){const r=e.render;e.render=(e,t)=>{var n=r(e,t);return this.counter++,n},this.hostLanguage=a,t(e)}else n(yi(s,"internal-error"))},ks(`${Ss.recaptchaV2Script}?${$({onload:ho,render:"explicit",hl:a})}`).catch(()=>{clearTimeout(i),n(yi(s,"internal-error"))})})}clearedOneInstance(){this.counter--}shouldResolveImmediately(e){var t;return!(null===(t=Ja().grecaptcha)||void 0===t||!t.render)&&(e===this.hostLanguage||0<this.counter||this.librarySeparatelyLoaded)}}class go{async load(e){return new lo(e)}clearedOneInstance(){}}const mo="recaptcha",vo={theme:"light",type:"image"};class _o{constructor(e,t,n=Object.assign({},vo)){this.parameters=n,this.type=mo,this.destroyed=!1,this.widgetId=null,this.tokenChangeListeners=new Set,this.renderPromise=null,this.recaptcha=null,this.auth=Es(e),this.isInvisible="invisible"===this.parameters.size,Ei("undefined"!=typeof document,this.auth,"operation-not-supported-in-this-environment");var r="string"==typeof t?document.getElementById(t):t;Ei(r,this.auth,"argument-error"),this.container=r,this.parameters.callback=this.makeTokenCallback(this.parameters.callback),this._recaptchaLoader=new(this.auth.settings.appVerificationDisabledForTesting?go:fo),this.validateStartingState()}async verify(){this.assertNotDestroyed();const e=await this.render(),r=this.getAssertedRecaptcha();var t=r.getResponse(e);return t||new Promise(t=>{const n=e=>{e&&(this.tokenChangeListeners.delete(n),t(e))};this.tokenChangeListeners.add(n),this.isInvisible&&r.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(){Ei(!this.parameters.sitekey,this.auth,"argument-error"),Ei(this.isInvisible||!this.container.hasChildNodes(),this.auth,"argument-error"),Ei("undefined"!=typeof document,this.auth,"operation-not-supported-in-this-environment")}makeTokenCallback(n){return t=>{if(this.tokenChangeListeners.forEach(e=>e(t)),"function"==typeof n)n(t);else if("string"==typeof n){const e=Ja()[n];"function"==typeof e&&e(t)}}}assertNotDestroyed(){Ei(!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(){Ei(Ai()&&!Xa(),this.auth,"internal-error"),await function(){let t=null;return new Promise(e=>{"complete"!==document.readyState?(t=()=>e(),window.addEventListener("load",t)):e()}).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 Li(this.auth,"GET","/v1/recaptchaParams")).recaptchaSiteKey||"");Ei(e,this.auth,"internal-error"),this.parameters.sitekey=e}getAssertedRecaptcha(){return Ei(this.recaptcha,this.auth,"internal-error"),this.recaptcha}}class yo{constructor(e,t){this.verificationId=e,this.onConfirmation=t}confirm(e){var t=Ws._fromVerification(this.verificationId,e);return this.onConfirmation(t)}}async function wo(t,n,r){var i,s,a,o,c,l,u=await r.verify();try{Ei("string"==typeof u,t,"argument-error"),Ei(r.type===mo,t,"argument-error");let e;if(e="string"==typeof n?{phoneNumber:n}:n,"session"in e){var h=e.session;if("phoneNumber"in e)return Ei("enroll"===h.type,t,"internal-error"),(c=t,l={idToken:h.credential,phoneEnrollmentInfo:{phoneNumber:e.phoneNumber,recaptchaToken:u}},await Li(c,"POST","/v2/accounts/mfaEnrollment:start",Mi(c,l))).phoneSessionInfo.sessionInfo;Ei("signin"===h.type,t,"internal-error");var d=(null===(i=e.multiFactorHint)||void 0===i?void 0:i.uid)||e.multiFactorUid;return Ei(d,t,"missing-multi-factor-info"),(o={mfaPendingCredential:h.credential,mfaEnrollmentId:d,phoneSignInInfo:{recaptchaToken:u}},await Li(t,"POST","/v2/accounts/mfaSignIn:start",Mi(t,o))).phoneResponseInfo.sessionInfo}var p=(s=t,a={phoneNumber:e.phoneNumber,recaptchaToken:u},await Li(s,"POST","/v1/accounts:sendVerificationCode",Mi(s,a)))["sessionInfo"];return p}finally{r._reset()}}class bo{constructor(e){this.providerId=bo.PROVIDER_ID,this.auth=Es(e)}verifyPhoneNumber(e,t){return wo(this.auth,e,le(t))}static credential(e,t){return Ws._fromVerification(e,t)}static credentialFromResult(e){var t=e;return bo.credentialFromTaggedObject(t)}static credentialFromError(e){return bo.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;var{phoneNumber:t,temporaryProof:n}=e;return t&&n?Ws._fromTokenResponse(t,n):null}}function Io(e,t){return t?ss(t):(Ei(e._popupRedirectResolver,e,"argument-error"),e._popupRedirectResolver)}bo.PROVIDER_ID="phone",bo.PHONE_SIGN_IN_METHOD="phone";class To extends Ms{constructor(e){super("custom","custom"),this.params=e}_getIdTokenResponse(e){return zs(e,this._buildIdpRequest())}_linkToIdToken(e,t){return zs(e,this._buildIdpRequest(t))}_getReauthenticationResolver(e){return zs(e,this._buildIdpRequest())}_buildIdpRequest(e){const 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 Eo(e){return fa(e.auth,new To(e),e.bypassAuthState)}function Co(e){var{auth:t,user:n}=e;return Ei(n,t,"internal-error"),pa(n,new To(e),e.bypassAuthState)}async function So(e){var{auth:t,user:n}=e;return Ei(n,t,"internal-error"),ha(n,new To(e),e.bypassAuthState)}class ko{constructor(e,t,n,r,i=!1){this.auth=e,this.resolver=n,this.user=r,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:n,postBody:r,tenantId:i,error:s,type:a}=e;if(s)this.reject(s);else{r={auth:this.auth,requestUri:t,sessionId:n,tenantId:i||void 0,postBody:r||void 0,user:this.user,bypassAuthState:this.bypassAuthState};try{this.resolve(await this.getIdpTask(a)(r))}catch(e){this.reject(e)}}}onError(e){this.reject(e)}getIdpTask(e){switch(e){case"signInViaPopup":case"signInViaRedirect":return Eo;case"linkViaPopup":case"linkViaRedirect":return So;case"reauthViaPopup":case"reauthViaRedirect":return Co;default:_i(this.auth,"internal-error")}}resolve(e){Si(this.pendingPromise,"Pending promise was never set"),this.pendingPromise.resolve(e),this.unregisterAndCleanUp()}reject(e){Si(this.pendingPromise,"Pending promise was never set"),this.pendingPromise.reject(e),this.unregisterAndCleanUp()}unregisterAndCleanUp(){this.eventManager&&this.eventManager.unregisterConsumer(this),this.pendingPromise=null,this.cleanUp()}}const Ao=new Ri(2e3,1e4);class No extends ko{constructor(e,t,n,r,i){super(e,t,r,i),this.provider=n,this.authWindow=null,this.pollId=null,No.currentPopupAction&&No.currentPopupAction.cancel(),No.currentPopupAction=this}async executeNotNull(){var e=await this.execute();return Ei(e,this.auth,"internal-error"),e}async onExecution(){Si(1===this.filter.length,"Popup operations only handle one event");var e=Qa();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(yi(this.auth,"web-storage-unsupported"))}),this.pollUserCancellation()}get eventId(){var e;return(null===(e=this.authWindow)||void 0===e?void 0:e.associatedEvent)||null}cancel(){this.reject(yi(this.auth,"cancelled-popup-request"))}cleanUp(){this.authWindow&&this.authWindow.close(),this.pollId&&window.clearTimeout(this.pollId),this.authWindow=null,this.pollId=null,No.currentPopupAction=null}pollUserCancellation(){const t=()=>{var e;null!==(e=null===(e=this.authWindow)||void 0===e?void 0:e.window)&&void 0!==e&&e.closed?this.pollId=window.setTimeout(()=>{this.pollId=null,this.reject(yi(this.auth,"popup-closed-by-user"))},8e3):this.pollId=window.setTimeout(t,Ao.get())};t()}}No.currentPopupAction=null;const Ro="pendingRedirect",Po=new Map;class Do extends ko{constructor(e,t,n=!1){super(e,["signInViaRedirect","linkViaRedirect","reauthViaRedirect","unknown"],t,void 0,n),this.eventId=null}async execute(){let t=Po.get(this.auth._key());if(!t){try{const e=await async function(e,t){const n=Lo(t),r=Mo(e);if(!await r._isAvailable())return!1;var i="true"===await r._get(n);return await r._remove(n),i}(this.resolver,this.auth)?await super.execute():null;t=()=>Promise.resolve(e)}catch(e){t=()=>Promise.reject(e)}Po.set(this.auth._key(),t)}return this.bypassAuthState||Po.set(this.auth._key(),()=>Promise.resolve(null)),t()}async onAuthEvent(e){if("signInViaRedirect"===e.type)return super.onAuthEvent(e);if("unknown"!==e.type){if(e.eventId){var t=await this.auth._redirectUserForId(e.eventId);if(t)return this.user=t,super.onAuthEvent(e);this.resolve(null)}}else this.resolve(null)}async onExecution(){}cleanUp(){}}async function xo(e,t){return Mo(e)._set(Lo(t),"true")}function Oo(e,t){Po.set(e._key(),t)}function Mo(e){return ss(e._redirectPersistence)}function Lo(e){return cs(Ro,e.config.apiKey,e.name)}function Fo(e,t,n){return async function(e,t,n){if(et(e.app))return Promise.reject(bi(e));var r=Es(e);Ii(e,t,Qs),await r._initializationPromise;const i=Io(r,n);return await xo(i,r),i._openRedirect(r,t,"signInViaRedirect")}(e,t,n)}function Uo(e,t,n){return async function(e,t,n){var r=le(e);if(Ii(r.auth,t,Qs),et(r.auth.app))return Promise.reject(bi(r.auth));await r.auth._initializationPromise;const i=Io(r.auth,n);await xo(i,r.auth);var s=await jo(r);return i._openRedirect(r.auth,t,"reauthViaRedirect",s)}(e,t,n)}function Vo(e,t,n){return async function(e,t,n){var r=le(e);Ii(r.auth,t,Qs),await r.auth._initializationPromise;const i=Io(r.auth,n);await da(!1,r,t.providerId),await xo(i,r.auth);var s=await jo(r);return i._openRedirect(r.auth,t,"linkViaRedirect",s)}(e,t,n)}async function qo(e,t,n=!1){if(et(e.app))return Promise.reject(bi(e));const r=Es(e);var i=Io(r,t);const s=new Do(r,i,n),a=await s.execute();return a&&!n&&(delete a.user._redirectEventId,await r._persistUserIfCurrent(a.user),await r._setRedirectUser(null,t)),a}async function jo(e){var t=Qa(`${e.uid}:::`);return e._redirectEventId=t,await e.auth._setRedirectUser(e),await e.auth._persistUserIfCurrent(e),t}class Bo{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 n=!1;return this.consumers.forEach(e=>{this.isEventForConsumer(t,e)&&(n=!0,this.sendToConsumer(t,e),this.saveEventToCache(t))}),this.hasHandledPotentialRedirect||!function(e){switch(e.type){case"signInViaRedirect":case"linkViaRedirect":case"reauthViaRedirect":return!0;case"unknown":return Ko(e);default:return!1}}(t)||(this.hasHandledPotentialRedirect=!0,n||(this.queuedRedirectEvent=t,n=!0)),n}sendToConsumer(e,t){var n;e.error&&!Ko(e)?(n=(null===(n=e.error.code)||void 0===n?void 0:n.split("auth/")[1])||"internal-error",t.onError(yi(this.auth,n))):t.onAuthEvent(e)}isEventForConsumer(e,t){var n=null===t.eventId||!!e.eventId&&e.eventId===t.eventId;return t.filter.includes(e.type)&&n}hasEventBeenHandled(e){return 6e5<=Date.now()-this.lastProcessedEventTime&&this.cachedEventUids.clear(),this.cachedEventUids.has(zo(e))}saveEventToCache(e){this.cachedEventUids.add(zo(e)),this.lastProcessedEventTime=Date.now()}}function zo(e){return[e.type,e.eventId,e.sessionId,e.tenantId].filter(e=>e).join("-")}function Ko({type:e,error:t}){return"unknown"===e&&"auth/no-auth-event"===(null==t?void 0:t.code)}async function $o(e,t={}){return Li(e,"GET","/v1/projects",t)}const Wo=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,Go=/^https?/;async function Ho(e){if(!e.config.emulator){var t=(await $o(e))["authorizedDomains"];for(const n of t)try{if(function(e){const t=ki(),{protocol:n,hostname:r}=new URL(t);if(e.startsWith("chrome-extension://")){var i=new URL(e);return""===i.hostname&&""===r?"chrome-extension:"===n&&e.replace("chrome-extension://","")===t.replace("chrome-extension://",""):"chrome-extension:"===n&&i.hostname===r}if(!Go.test(n))return!1;if(Wo.test(e))return r===e;const s=e.replace(/\./g,"\\."),a=new RegExp("^(.+\\."+s+"|"+s+")$","i");return a.test(r)}(n))return}catch(e){}_i(e,"unauthorized-domain")}}const Qo=new Ri(3e4,6e4);function Yo(){const t=Ja().___jsl;if(null!==t&&void 0!==t&&t.H)for(const n of Object.keys(t.H))if(t.H[n].r=t.H[n].r||[],t.H[n].L=t.H[n].L||[],t.H[n].r=[...t.H[n].L],t.CP)for(let e=0;e<t.CP.length;e++)t.CP[e]=null}function Jo(i){return new Promise((e,t)=>{function n(){Yo(),gapi.load("gapi.iframes",{callback:()=>{e(gapi.iframes.getContext())},ontimeout:()=>{Yo(),t(yi(i,"network-request-failed"))},timeout:Qo.get()})}if(null!==(r=null===(r=Ja().gapi)||void 0===r?void 0:r.iframes)&&void 0!==r&&r.Iframe)e(gapi.iframes.getContext());else{if(null===(r=Ja().gapi)||void 0===r||!r.load){var r=As("iframefcb");return Ja()[r]=()=>{gapi.load?n():t(yi(i,"network-request-failed"))},ks(`${Ss.gapiScript}?onload=${r}`).catch(e=>t(e))}n()}}).catch(e=>{throw Xo=null,e})}let Xo=null;const Zo=new Ri(5e3,15e3),ec="__/auth/iframe",tc="emulator/auth/iframe",nc={style:{position:"absolute",top:"-100px",width:"1px",height:"1px"},"aria-hidden":"true",tabindex:"-1"},rc=new Map([["identitytoolkit.googleapis.com","p"],["staging-identitytoolkit.sandbox.googleapis.com","s"],["test-identitytoolkit.sandbox.googleapis.com","t"]]);async function ic(a){const e=(t=a,Xo=Xo||Jo(t),await Xo);var t,n=Ja().gapi;return Ei(n,a,"internal-error"),e.open({where:document.body,url:function(e){var t=e.config;Ei(t.authDomain,e,"auth-domain-config-required");var n=t.emulator?Pi(t,tc):`https://${e.config.authDomain}/${ec}`;const r={apiKey:t.apiKey,appName:e.name,v:it};(t=rc.get(e.config.apiHost))&&(r.eid=t);const i=e._getFrameworks();return i.length&&(r.fw=i.join(",")),`${n}?${$(r).slice(1)}`}(a),messageHandlersFilter:n.iframes.CROSS_ORIGIN_IFRAMES_FILTER,attributes:nc,dontclear:!0},s=>new Promise(async(e,t)=>{await s.restyle({setHideOnLeave:!1});const n=yi(a,"network-request-failed"),r=Ja().setTimeout(()=>{t(n)},Zo.get());function i(){Ja().clearTimeout(r),e(s)}s.ping(i).then(i,()=>{t(n)})}))}const sc={location:"yes",resizable:"yes",statusbar:"yes",toolbar:"no"};class ac{constructor(e){this.window=e,this.associatedEvent=null}close(){if(this.window)try{this.window.close()}catch(e){}}}function oc(e,t,n,r=500,i=600){var s=Math.max((window.screen.availHeight-i)/2,0).toString(),a=Math.max((window.screen.availWidth-r)/2,0).toString();let o="";const c=Object.assign(Object.assign({},sc),{width:r.toString(),height:i.toString(),top:s,left:a});s=b().toLowerCase();n&&(o=ps(s)?"_blank":n),hs(s)&&(t=t||"http://localhost",c.scrollbars="yes");var l,a=Object.entries(c).reduce((e,[t,n])=>`${e}${t}=${n},`,"");if([n=b()]=[s],_s(n)&&null!==(l=window.navigator)&&void 0!==l&&l.standalone&&"_self"!==o)return function(e,t){const n=document.createElement("a");n.href=e,n.target=t;const r=document.createEvent("MouseEvent");r.initMouseEvent("click",!0,!0,window,1,0,0,0,0,!1,!1,!1,!1,1,null),n.dispatchEvent(r)}(t||"",o),new ac(null);const u=window.open(t||"",o,a);Ei(u,e,"popup-blocked");try{u.focus()}catch(e){}return new ac(u)}const cc="__/auth/handler",lc="emulator/auth/handler",uc=encodeURIComponent("fac");async function hc(e,t,n,r,i,s){Ei(e.config.authDomain,e,"auth-domain-config-required"),Ei(e.config.apiKey,e,"invalid-api-key");const a={apiKey:e.config.apiKey,appName:e.name,authType:n,redirectUrl:r,v:it,eventId:i};if(t instanceof Qs){t.setDefaultLanguage(e.languageCode),a.providerId=t.providerId||"",j(t.getCustomParameters())||(a.customParameters=JSON.stringify(t.getCustomParameters()));for(var[o,c]of Object.entries(s||{}))a[o]=c}if(t instanceof Ys){const h=t.getScopes().filter(e=>""!==e);0<h.length&&(a.scopes=h.join(","))}e.tenantId&&(a.tid=e.tenantId);const l=a;for(const d of Object.keys(l))void 0===l[d]&&delete l[d];var u=await e._getAppCheckToken(),u=u?`#${uc}=${encodeURIComponent(u)}`:"";return`${e=[e["config"]][0],e.emulator?Pi(e,lc):`https://${e.authDomain}/${cc}`}?${$(l).slice(1)}${u}`}const dc="webStorageSupport";const pc=class{constructor(){this.eventManagers={},this.iframes={},this.originValidationPromises={},this._redirectPersistence=Ga,this._completeRedirectFn=qo,this._overrideRedirectResult=Oo}async _openPopup(e,t,n,r){var i;return Si(null===(i=this.eventManagers[e._key()])||void 0===i?void 0:i.manager,"_initialize() not called before _openPopup()"),oc(e,await hc(e,t,n,ki(),r),Qa())}async _openRedirect(e,t,n,r){await this._originValidation(e);var i=await hc(e,t,n,ki(),r);return Ja().location.href=i,new Promise(()=>{})}_initialize(e){const t=e._key();if(this.eventManagers[t]){const{manager:r,promise:n}=this.eventManagers[t];return r?Promise.resolve(r):(Si(n,"If manager is not set, promise should be"),n)}const n=this.initAndGetManager(e);return this.eventManagers[t]={promise:n},n.catch(()=>{delete this.eventManagers[t]}),n}async initAndGetManager(t){const e=await ic(t),n=new Bo(t);return e.register("authEvent",e=>{return Ei(null==e?void 0:e.authEvent,t,"invalid-auth-event"),{status:n.onEvent(e.authEvent)?"ACK":"ERROR"}},gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER),this.eventManagers[t._key()]={manager:n},this.iframes[t._key()]=e,n}_isIframeWebStorageSupported(n,r){const e=this.iframes[n._key()];e.send(dc,{type:dc},e=>{var t=null===(t=null==e?void 0:e[0])||void 0===t?void 0:t[dc];void 0!==t&&r(!!t),_i(n,"internal-error")},gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER)}_originValidation(e){var t=e._key();return this.originValidationPromises[t]||(this.originValidationPromises[t]=Ho(e)),this.originValidationPromises[t]}get _shouldInitProactively(){return ys()||ds()||_s()}};class fc extends class{constructor(e){this.factorId=e}_process(e,t,n){switch(t.type){case"enroll":return this._finalizeEnroll(e,t.credential,n);case"signin":return this._finalizeSignIn(e,t.credential);default:return Ci("unexpected MultiFactorSessionType")}}}{constructor(e){super("phone"),this.credential=e}static _fromCredential(e){return new fc(e)}_finalizeEnroll(e,t,n){return e=e,n={idToken:t,displayName:n,phoneVerificationInfo:this.credential._makeVerificationRequest()},Li(e,"POST","/v2/accounts/mfaEnrollment:finalize",Mi(e,n))}_finalizeSignIn(e,t){return e=e,t={mfaPendingCredential:t,phoneVerificationInfo:this.credential._makeVerificationRequest()},Li(e,"POST","/v2/accounts/mfaSignIn:finalize",Mi(e,t))}}class gc{constructor(){}static assertion(e){return fc._fromCredential(e)}}gc.FACTOR_ID="phone";var mc="@firebase/auth";class vc{constructor(e){this.auth=e,this.internalListeners=new Map}getUid(){var e;return this.assertAuthConfigured(),(null===(e=this.auth.currentUser)||void 0===e?void 0:e.uid)||null}async getToken(e){return this.assertAuthConfigured(),await this.auth._initializationPromise,this.auth.currentUser?{accessToken:await this.auth.currentUser.getIdToken(e)}:null}addAuthTokenListener(t){var e;this.assertAuthConfigured(),this.internalListeners.has(t)||(e=this.auth.onIdTokenChanged(e=>{t((null==e?void 0:e.stsTokenManager.accessToken)||null)}),this.internalListeners.set(t,e),this.updateProactiveRefresh())}removeAuthTokenListener(e){this.assertAuthConfigured();const t=this.internalListeners.get(e);t&&(this.internalListeners.delete(e),t(),this.updateProactiveRefresh())}assertAuthConfigured(){Ei(this.auth._initializationPromise,"dependent-sdk-initialized-before-auth")}updateProactiveRefresh(){0<this.internalListeners.size?this.auth._startProactiveRefresh():this.auth._stopProactiveRefresh()}}var _c,yc,wc;function bc(){return window}_c="authIdTokenMaxAge",null===(yc=p())||void 0===yc||yc[`_${_c}`],Ss={loadJS(i){return new Promise((e,n)=>{const t=document.createElement("script");var r;t.setAttribute("src",i),t.onload=e,t.onerror=e=>{const t=yi("internal-error");t.customData=e,n(t)},t.type="text/javascript",t.charset="UTF-8",(null!==(r=null===(r=document.getElementsByTagName("head"))||void 0===r?void 0:r[0])&&void 0!==r?r: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="},wc="Browser",Je(new ue("auth",(e,{options:t})=>{var n=e.getProvider("app").getImmediate(),r=e.getProvider("heartbeat"),i=e.getProvider("app-check-internal");const{apiKey:s,authDomain:a}=n.options;Ei(s&&!s.includes(":"),"invalid-api-key",{appName:n.name});var o={apiKey:s,authDomain:a,clientPlatform:wc,apiHost:"identitytoolkit.googleapis.com",tokenApiHost:"securetoken.googleapis.com",apiScheme:"https",sdkClientVersion:ws(wc)},o=new Ts(n,r,i,o);return function(e,t){const n=(null==t?void 0:t.persistence)||[];var r=(Array.isArray(n)?n:[n]).map(ss);null!=t&&t.errorMap&&e._updateErrorMap(t.errorMap),e._initializeWithPersistence(r,null==t?void 0:t.popupRedirectResolver)}(o,t),o},"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback((e,t,n)=>{const r=e.getProvider("auth-internal");r.initialize()})),Je(new ue("auth-internal",e=>{var t=Es(e.getProvider("auth").getImmediate());return e=t,new vc(e)},"PRIVATE").setInstantiationMode("EXPLICIT")),ct(mc,"1.7.9",function(e){switch(e){case"Node":return"node";case"ReactNative":return"rn";case"Worker":return"webworker";case"Cordova":return"cordova";case"WebExtension":return"web-extension";default:return}}(wc)),ct(mc,"1.7.9","esm2017");async function Ic(e,t,n){var r=bc()["BuildInfo"];Si(t.sessionId,"AuthEvent did not contain a session ID");var i=await async function(e){const t=function(e){if(Si(/[0-9a-zA-Z]+/.test(e),"Can only convert alpha-numeric strings"),"undefined"!=typeof TextEncoder)return(new TextEncoder).encode(e);const t=new ArrayBuffer(e.length),n=new Uint8Array(t);for(let r=0;r<e.length;r++)n[r]=e.charCodeAt(r);return n}(e),n=await crypto.subtle.digest("SHA-256",t),r=Array.from(new Uint8Array(n));return r.map(e=>e.toString(16).padStart(2,"0")).join("")}(t.sessionId);const s={};return _s()?s.ibi=r.packageName:gs()?s.apn=r.packageName:_i(e,"operation-not-supported-in-this-environment"),r.displayName&&(s.appDisplayName=r.displayName),s.sessionId=i,hc(e,n,t.type,void 0,null!==(i=t.eventId)&&void 0!==i?i:void 0,s)}function Tc(r){const i=bc()["cordova"];return new Promise(n=>{i.plugins.browsertab.isAvailable(e=>{let t=null;e?i.plugins.browsertab.openUrl(r):t=i.InAppBrowser.open(r,(e=b(),/(iPad|iPhone|iPod).*OS 7_\d/i.test(e)||/(iPad|iPhone|iPod).*OS 8_\d/i.test(e)?"_blank":"_system"),"location=yes"),n(t)})})}const Ec=20;class Cc extends Bo{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 Sc(e,t,n=null){return{type:t,eventId:n,urlResponse:null,sessionId:function(){const e=[],t="1234567890abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";for(let r=0;r<Ec;r++){var n=Math.floor(Math.random()*t.length);e.push(t.charAt(n))}return e.join("")}(),postBody:null,tenantId:e.tenantId,error:yi(e,"no-auth-event")}}async function kc(e){var t=await Nc()._get(Rc(e));return t&&await Nc()._remove(Rc(e)),t}function Ac(e,t){var n,r,i;const s=(n=Pc(t=t),a=n.link?decodeURIComponent(n.link):void 0,r=Pc(a).link,i=n.deep_link_id?decodeURIComponent(n.deep_link_id):void 0,(n=Pc(i).link)||i||r||a||t);if(s.includes("/__/auth/callback")){var a=Pc(s),a=a.firebaseError?function(e){try{return JSON.parse(e)}catch(e){return null}}(decodeURIComponent(a.firebaseError)):null,a=null===(a=null===(a=null==a?void 0:a.code)||void 0===a?void 0:a.split("auth/"))||void 0===a?void 0:a[1],a=a?yi(a):null;return a?{type:e.type,eventId:e.eventId,tenantId:e.tenantId,error:a,urlResponse:null,sessionId:null,postBody:null}:{type:e.type,eventId:e.eventId,tenantId:e.tenantId,sessionId:e.sessionId,urlResponse:s,postBody:null}}return null}function Nc(){return ss($a)}function Rc(e){return cs("authEvent",e.config.apiKey,e.name)}function Pc(e){if(null==e||!e.includes("?"))return{};const[,...t]=e.split("?");return W(t.join("?"))}const Dc=class{constructor(){this._redirectPersistence=Ga,this._shouldInitProactively=!0,this.eventManagers=new Map,this.originValidationPromises={},this._completeRedirectFn=qo,this._overrideRedirectResult=Oo}async _initialize(e){var t=e._key();let n=this.eventManagers.get(t);return n||(n=new Cc(e),this.eventManagers.set(t,n),this.attachCallbackListeners(e,n)),n}_openPopup(e){_i(e,"operation-not-supported-in-this-environment")}async _openRedirect(e,t,n,r){var i,s;i=e,o=bc(),Ei("function"==typeof(null===(s=null==o?void 0:o.universalLinks)||void 0===s?void 0:s.subscribe),i,"invalid-cordova-configuration",{missingPlugin:"cordova-universal-links-plugin-fix"}),Ei(void 0!==(null===(s=null==o?void 0:o.BuildInfo)||void 0===s?void 0:s.packageName),i,"invalid-cordova-configuration",{missingPlugin:"cordova-plugin-buildInfo"}),Ei("function"==typeof(null===(s=null===(s=null===(s=null==o?void 0:o.cordova)||void 0===s?void 0:s.plugins)||void 0===s?void 0:s.browsertab)||void 0===s?void 0:s.openUrl),i,"invalid-cordova-configuration",{missingPlugin:"cordova-plugin-browsertab"}),Ei("function"==typeof(null===(s=null===(s=null===(s=null==o?void 0:o.cordova)||void 0===s?void 0:s.plugins)||void 0===s?void 0:s.browsertab)||void 0===s?void 0:s.isAvailable),i,"invalid-cordova-configuration",{missingPlugin:"cordova-plugin-browsertab"}),Ei("function"==typeof(null===(o=null===(o=null==o?void 0:o.cordova)||void 0===o?void 0:o.InAppBrowser)||void 0===o?void 0:o.open),i,"invalid-cordova-configuration",{missingPlugin:"cordova-plugin-inappbrowser"});const a=await this._initialize(e);await a.initialized(),a.resetRedirect(),Po.clear(),await this._originValidation(e);var o=Sc(e,n,r);n=e,r=o,await Nc()._set(Rc(n),r);o=await Tc(await Ic(e,o,t));return async function(a,o,c){const l=bc()["cordova"];let u=()=>{};try{await new Promise((n,e)=>{let t=null;function r(){var e;n();const t=null===(e=l.plugins.browsertab)||void 0===e?void 0:e.close;"function"==typeof t&&t(),"function"==typeof(null==c?void 0:c.close)&&c.close()}function i(){t=t||window.setTimeout(()=>{e(yi(a,"redirect-cancelled-by-user"))},2e3)}function s(){"visible"===(null===document||void 0===document?void 0:document.visibilityState)&&i()}o.addPassiveListener(r),document.addEventListener("resume",i,!1),gs()&&document.addEventListener("visibilitychange",s,!1),u=()=>{o.removePassiveListener(r),document.removeEventListener("resume",i,!1),document.removeEventListener("visibilitychange",s,!1),t&&window.clearTimeout(t)}})}finally{u()}}(e,a,o)}_isIframeWebStorageSupported(e,t){throw new Error("Method not implemented.")}_originValidation(e){var t=e._key();return this.originValidationPromises[t]||(this.originValidationPromises[t]=async function(e){var t=bc()["BuildInfo"];const n={};_s()?n.iosBundleId=t.packageName:gs()?n.androidPackageName=t.packageName:_i(e,"operation-not-supported-in-this-environment"),await $o(e,n)}(e)),this.originValidationPromises[t]}attachCallbackListeners(r,i){const{universalLinks:e,handleOpenURL:t,BuildInfo:n}=bc(),s=setTimeout(async()=>{await kc(r),i.onEvent(xc())},500),a=async e=>{clearTimeout(s);var t=await kc(r);let n=null;t&&null!=e&&e.url&&(n=Ac(t,e.url)),i.onEvent(n||xc())};void 0!==e&&"function"==typeof e.subscribe&&e.subscribe(null,a);const o=t,c=`${n.packageName.toLowerCase()}://`;bc().handleOpenURL=async e=>{if(e.toLowerCase().startsWith(c)&&a({url:e}),"function"==typeof o)try{o(e)}catch(e){console.error(e)}}}};function xc(){return{type:"unknown",eventId:null,sessionId:null,urlResponse:null,postBody:null,tenantId:null,error:yi("no-auth-event")}}var Oc;function Mc(){var e;return(null===(e=null===self||void 0===self?void 0:self.location)||void 0===e?void 0:e.protocol)||null}function Lc(e=b()){return!("file:"!==Mc()&&"ionic:"!==Mc()&&"capacitor:"!==Mc()||!e.toLowerCase().match(/iphone|ipad|ipod|android/))}function Fc(e=b()){return k()&&11===(null===document||void 0===document?void 0:document.documentMode)||([e=b()]=[e],/Edge\/\d+/.test(e))}function Uc(){try{const t=self.localStorage;var e=Qa();if(t)return t.setItem(e,"1"),t.removeItem(e),!Fc()||R()}catch(e){return Vc()&&R()}return!1}function Vc(){return"undefined"!=typeof global&&"WorkerGlobalScope"in global&&"importScripts"in global}function qc(){return("http:"===Mc()||"https:"===Mc()||C()||Lc())&&!(S()||T())&&Uc()&&!Vc()}function jc(){return Lc()&&"undefined"!=typeof document}const Bc={LOCAL:"local",NONE:"none",SESSION:"session"},zc=Ei,Kc="persistence";async function $c(e){await e._initializationPromise;const t=Wc();var n=cs(Kc,e.config.apiKey,e.name);t&&t.setItem(n,e._getPersistence())}function Wc(){var e;try{return(null===(e="undefined"!=typeof window?window:null)?void 0:e.sessionStorage)||null}catch(e){return null}}const Gc=Ei;class Hc{constructor(){this.browserResolver=ss(pc),this.cordovaResolver=ss(Dc),this.underlyingResolver=null,this._redirectPersistence=Ga,this._completeRedirectFn=qo,this._overrideRedirectResult=Oo}async _initialize(e){return await this.selectUnderlyingResolver(),this.assertedUnderlyingResolver._initialize(e)}async _openPopup(e,t,n,r){return await this.selectUnderlyingResolver(),this.assertedUnderlyingResolver._openPopup(e,t,n,r)}async _openRedirect(e,t,n,r){return await this.selectUnderlyingResolver(),this.assertedUnderlyingResolver._openRedirect(e,t,n,r)}_isIframeWebStorageSupported(e,t){this.assertedUnderlyingResolver._isIframeWebStorageSupported(e,t)}_originValidation(e){return this.assertedUnderlyingResolver._originValidation(e)}get _shouldInitProactively(){return jc()||this.browserResolver._shouldInitProactively}get assertedUnderlyingResolver(){return Gc(this.underlyingResolver,"internal-error"),this.underlyingResolver}async selectUnderlyingResolver(){var e;this.underlyingResolver||(e=await(!!jc()&&new Promise(e=>{const t=setTimeout(()=>{e(!1)},1e3);document.addEventListener("deviceready",()=>{clearTimeout(t),e(!0)})})),this.underlyingResolver=e?this.cordovaResolver:this.browserResolver)}}function Qc(e){return e.unwrap()}function Yc(e,t){var n,r,i,s=null===(r=t.customData)||void 0===r?void 0:r._tokenResponse;if("auth/multi-factor-auth-required"===(null==t?void 0:t.code)){const o=t;o.resolver=new el(e,(n=t,i=le(e),Ei((a=n).customData.operationType,i,"argument-error"),Ei(null===(r=a.customData._serverResponse)||void 0===r?void 0:r.mfaPendingCredential,i,"argument-error"),Va._fromError(i,a)))}else if(s){var a=Jc(t);const c=t;a&&(c.credential=a,c.tenantId=s.tenantId||void 0,c.email=s.email||void 0,c.phoneNumber=s.phoneNumber||void 0)}}function Jc(e){var t=(e instanceof x?e.customData:e)["_tokenResponse"];if(!t)return null;if(!(e instanceof x)&&"temporaryProof"in t&&"phoneNumber"in t)return bo.credentialFromResult(e);const n=t.providerId;if(!n||n===ui.PASSWORD)return null;let r;switch(n){case ui.GOOGLE:r=Zs;break;case ui.FACEBOOK:r=Xs;break;case ui.GITHUB:r=ea;break;case ui.TWITTER:r=ra;break;default:var{oauthIdToken:i,oauthAccessToken:s,oauthTokenSecret:a,pendingToken:o,nonce:c}=t;return s||a||i||o?o?n.startsWith("saml.")?ta._create(n,o):Ks._fromParams({providerId:n,signInMethod:n,pendingToken:o,idToken:i,accessToken:s}):new Js(n).credential({idToken:i,accessToken:s,rawNonce:c}):null}return e instanceof x?r.credentialFromError(e):r.credentialFromResult(e)}function Xc(t,e){return e.catch(e=>{throw e instanceof x&&Yc(t,e),e}).then(e=>{var t=e.operationType,n=e.user;return{operationType:t,credential:Jc(e),additionalUserInfo:Fa(e),user:tl.getOrCreate(n)}})}async function Zc(t,e){const n=await e;return{verificationId:n.verificationId,confirm:e=>Xc(t,n.confirm(e))}}class el{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 Xc(Qc(this.auth),this.resolver.resolveSignIn(e))}}class tl{constructor(e){var t;this._delegate=e,this.multiFactor=(t=le(e),ja.has(t)||ja.set(t,qa._fromUser(t)),ja.get(t))}static getOrCreate(e){return tl.USER_MAP.has(e)||tl.USER_MAP.set(e,new tl(e)),tl.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 Xc(this.auth,ma(this._delegate,e))}async linkWithPhoneNumber(e,t){return Zc(this.auth,async function(e,t,n){const r=le(e);await da(!1,r,"phone");var i=await wo(r.auth,t,le(n));return new yo(i,e=>ma(r,e))}(this._delegate,e,t))}async linkWithPopup(e){return Xc(this.auth,async function(e,t,n){var r=le(e);Ii(r.auth,t,Qs);var i=Io(r.auth,n);const s=new No(r.auth,"linkViaPopup",t,i,r);return s.executeNotNull()}(this._delegate,e,Hc))}async linkWithRedirect(e){return await $c(Es(this.auth)),Vo(this._delegate,e,Hc)}reauthenticateAndRetrieveDataWithCredential(e){return this.reauthenticateWithCredential(e)}async reauthenticateWithCredential(e){return Xc(this.auth,va(this._delegate,e))}reauthenticateWithPhoneNumber(e,t){return Zc(this.auth,async function(e,t,n){const r=le(e);if(et(r.auth.app))return Promise.reject(bi(r.auth));var i=await wo(r.auth,t,le(n));return new yo(i,e=>va(r,e))}(this._delegate,e,t))}reauthenticateWithPopup(e){return Xc(this.auth,async function(e,t,n){var r=le(e);if(et(r.auth.app))return Promise.reject(yi(r.auth,"operation-not-supported-in-this-environment"));Ii(r.auth,t,Qs);var i=Io(r.auth,n);const s=new No(r.auth,"reauthViaPopup",t,i,r);return s.executeNotNull()}(this._delegate,e,Hc))}async reauthenticateWithRedirect(e){return await $c(Es(this.auth)),Uo(this._delegate,e,Hc)}sendEmailVerification(e){return ka(this._delegate,e)}async unlink(e){return await ua(this._delegate,e),this}updateEmail(e){return t=this._delegate,e=e,et((n=le(t)).auth.app)?Promise.reject(bi(n.auth)):Ra(n,e,null);var t,n}updatePassword(e){return Ra(le(this._delegate),null,e)}updatePhoneNumber(e){return async function(e,t){var n=le(e);if(et(n.auth.app))return Promise.reject(bi(n.auth));await ha(n,t)}(this._delegate,e)}updateProfile(e){return Na(this._delegate,e)}verifyBeforeUpdateEmail(e,t){return Aa(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}}tl.USER_MAP=new WeakMap;const nl=Ei;class rl{constructor(e,t){if(this.app=e,t.isInitialized())return this._delegate=t.getImmediate(),void this.linkUnderlyingAuth();var n=e.options["apiKey"];nl(n,"invalid-api-key",{appName:e.name}),nl(n,"invalid-api-key",{appName:e.name});var r="undefined"!=typeof window?Hc:void 0;this._delegate=t.initialize({options:{persistence:function(e,t){const n=function(e,t){const n=Wc();if(!n)return[];var r=cs(Kc,e,t);switch(n.getItem(r)){case Bc.NONE:return[os];case Bc.LOCAL:return[co,Ga];case Bc.SESSION:return[Ga];default:return[]}}(e,t);"undefined"==typeof self||n.includes(co)||n.push(co);if("undefined"!=typeof window)for(const r of[$a,Ga])n.includes(r)||n.push(r);n.includes(os)||n.push(os);return n}(n,e.name),popupRedirectResolver:r}}),this._delegate._updateErrorMap(pi),this.linkUnderlyingAuth()}get emulatorConfig(){return this._delegate.emulatorConfig}get currentUser(){return this._delegate.currentUser?tl.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){Ds(this._delegate,e,t)}applyActionCode(e){return Ea(this._delegate,e)}checkActionCode(e){return Ca(this._delegate,e)}confirmPasswordReset(e,t){return async function(t,e,n){await Ls(le(t),{oobCode:e,newPassword:n}).catch(async e=>{throw"auth/password-does-not-meet-requirements"===e.code&&Ta(t),e})}(this._delegate,e,t)}async createUserWithEmailAndPassword(e,t){return Xc(this._delegate,async function(t,e,n){if(et(t.app))return Promise.reject(bi(t));const r=Es(t),i=Ps(r,{returnSecureToken:!0,email:e,password:n,clientType:"CLIENT_TYPE_WEB"},"signUpPassword",ia);var s=await i.catch(e=>{throw"auth/password-does-not-meet-requirements"===e.code&&Ta(t),e}),s=await sa._fromIdTokenResponse(r,"signIn",s);return await r._updateCurrentUser(s.user),s}(this._delegate,e,t))}fetchProvidersForEmail(e){return this.fetchSignInMethodsForEmail(e)}fetchSignInMethodsForEmail(e){return Sa(this._delegate,e)}isSignInWithEmailLink(e){return this._delegate,e=e,"EMAIL_SIGNIN"===(null==(t=Gs.parseLink(e))?void 0:t.operation);var t}async getRedirectResult(){nl(qc(),this._delegate,"operation-not-supported-in-this-environment");var e,t,n=(e=this._delegate,t=Hc,await Es(e)._initializationPromise,await qo(e,t,!1));return n?Xc(this._delegate,Promise.resolve(n)):{credential:null,user:null}}addFrameworkForLogging(e){Es(this._delegate)._logFramework(e)}onAuthStateChanged(e,t,n){var{next:r,error:i,complete:s}=il(e,t,n);return this._delegate.onAuthStateChanged(r,i,s)}onIdTokenChanged(e,t,n){var{next:r,error:i,complete:s}=il(e,t,n);return this._delegate.onIdTokenChanged(r,i,s)}sendSignInLinkToEmail(e,t){return async function(e,t,n){const r=Es(e);var i={requestType:"EMAIL_SIGNIN",email:t,clientType:"CLIENT_TYPE_WEB"};t=i,Ei((n=n).handleCodeInApp,r,"argument-error"),n&&Ia(r,t,n),await Ps(r,i,"getOobCode",js)}(this._delegate,e,t)}sendPasswordResetEmail(e,t){return async function(e,t,n){var r=Es(e),i={requestType:"PASSWORD_RESET",email:t,clientType:"CLIENT_TYPE_WEB"};n&&Ia(r,i,n),await Ps(r,i,"getOobCode",qs)}(this._delegate,e,t||void 0)}async setPersistence(e){var t,n;t=this._delegate,n=e,zc(Object.values(Bc).includes(n),t,"invalid-persistence-type"),S()?zc(n!==Bc.SESSION,t,"unsupported-persistence-type"):T()?zc(n===Bc.NONE,t,"unsupported-persistence-type"):Vc()?zc(n===Bc.NONE||n===Bc.LOCAL&&R(),t,"unsupported-persistence-type"):zc(n===Bc.NONE||Uc(),t,"unsupported-persistence-type");let r;switch(e){case Bc.SESSION:r=Ga;break;case Bc.LOCAL:var i=await ss(co)._isAvailable();r=i?co:$a;break;case Bc.NONE:r=os;break;default:return _i("argument-error",{appName:this._delegate.name})}return this._delegate.setPersistence(r)}signInAndRetrieveDataWithCredential(e){return this.signInWithCredential(e)}signInAnonymously(){return Xc(this._delegate,async function(e){if(et(e.app))return Promise.reject(bi(e));const t=Es(e);if(await t._initializationPromise,null!==(n=t.currentUser)&&void 0!==n&&n.isAnonymous)return new sa({user:t.currentUser,providerId:null,operationType:"signIn"});var n=await ia(t,{returnSecureToken:!0}),n=await sa._fromIdTokenResponse(t,"signIn",n,!0);return await t._updateCurrentUser(n.user),n}(this._delegate))}signInWithCredential(e){return Xc(this._delegate,ga(this._delegate,e))}signInWithCustomToken(e){return Xc(this._delegate,_a(this._delegate,e))}signInWithEmailAndPassword(e,t){return Xc(this._delegate,(n=this._delegate,e=e,t=t,et(n.app)?Promise.reject(bi(n)):ga(le(n),Hs.credential(e,t)).catch(async e=>{throw"auth/password-does-not-meet-requirements"===e.code&&Ta(n),e})));var n}signInWithEmailLink(e,t){return Xc(this._delegate,async function(e,t,n){if(et(e.app))return Promise.reject(bi(e));var r=le(e),i=Hs.credentialWithLink(t,n||ki());return Ei(i._tenantId===(r.tenantId||null),r,"tenant-id-mismatch"),ga(r,i)}(this._delegate,e,t))}signInWithPhoneNumber(e,t){return Zc(this._delegate,async function(e,t,n){if(et(e.app))return Promise.reject(bi(e));const r=Es(e);var i=await wo(r,t,le(n));return new yo(i,e=>ga(r,e))}(this._delegate,e,t))}async signInWithPopup(e){return nl(qc(),this._delegate,"operation-not-supported-in-this-environment"),Xc(this._delegate,async function(e,t,n){if(et(e.app))return Promise.reject(yi(e,"operation-not-supported-in-this-environment"));var r=Es(e);Ii(e,t,Qs);var i=Io(r,n);const s=new No(r,"signInViaPopup",t,i);return s.executeNotNull()}(this._delegate,e,Hc))}async signInWithRedirect(e){return nl(qc(),this._delegate,"operation-not-supported-in-this-environment"),await $c(this._delegate),Fo(this._delegate,e,Hc)}updateCurrentUser(e){return this._delegate.updateCurrentUser(e)}verifyPasswordResetCode(e){return async function(e,t){var n=(await Ca(le(e),t))["data"];return n.email}(this._delegate,e)}unwrap(){return this._delegate}_delete(){return this._delegate._delete()}linkUnderlyingAuth(){this._delegate.wrapped=()=>this}}function il(e,t,n){let r=e;"function"!=typeof e&&({next:r,error:t,complete:n}=e);const i=r;return{next:e=>i(e&&tl.getOrCreate(e)),error:t,complete:n}}rl.Persistence=Bc;class sl{constructor(){this.providerId="phone",this._delegate=new bo(Qc(Nt.auth()))}static credential(e,t){return bo.credential(e,t)}verifyPhoneNumber(e,t){return this._delegate.verifyPhoneNumber(e,t)}unwrap(){return this._delegate}}sl.PHONE_SIGN_IN_METHOD=bo.PHONE_SIGN_IN_METHOD,sl.PROVIDER_ID=bo.PROVIDER_ID;const al=Ei;class ol{constructor(e,t,n=Nt.app()){var r;al(null===(r=n.options)||void 0===r?void 0:r.apiKey,"invalid-api-key",{appName:n.name}),this._delegate=new _o(n.auth(),e,t),this.type=this._delegate.type}clear(){this._delegate.clear()}render(){return this._delegate.render()}verify(){return this._delegate.verify()}}(Oc=Nt).INTERNAL.registerComponent(new ue("auth-compat",e=>{var t=e.getProvider("app-compat").getImmediate(),n=e.getProvider("auth");return new rl(t,n)},"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:Hs,FacebookAuthProvider:Xs,GithubAuthProvider:ea,GoogleAuthProvider:Zs,OAuthProvider:Js,SAMLAuthProvider:na,PhoneAuthProvider:sl,PhoneMultiFactorGenerator:gc,RecaptchaVerifier:ol,TwitterAuthProvider:ra,Auth:rl,AuthCredential:Ms,Error:x}).setInstantiationMode("LAZY").setMultipleInstances(!1)),Oc.registerVersion("@firebase/auth-compat","0.5.14");const cl="@firebase/database";let ll="";function ul(e){ll=e}class hl{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),F(t))}get(e){var t=this.domStorage_.getItem(this.prefixedName_(e));return null==t?null:L(t)}remove(e){this.domStorage_.removeItem(this.prefixedName_(e))}prefixedName_(e){return this.prefix_+e}toString(){return this.domStorage_.toString()}}class dl{constructor(){this.cache_={},this.isInMemoryStorage=!0}set(e,t){null==t?delete this.cache_[e]:this.cache_[e]=t}get(e){return V(this.cache_,e)?this.cache_[e]:null}remove(e){delete this.cache_[e]}}var pl,fl,gl,ml,vl,_l,Rt=function(e){try{if("undefined"!=typeof window&&void 0!==window[e]){const t=window[e];return t.setItem("firebase:sentinel","cache"),t.removeItem("firebase:sentinel"),new hl(t)}}catch(e){}return new dl};function yl(e){var t=function(t){const n=[];let r=0;for(let a=0;a<t.length;a++){let e=t.charCodeAt(a);var i,s;55296<=e&&e<=56319&&(i=e-55296,a++,f(a<t.length,"Surrogate pair missing trail surrogate."),s=t.charCodeAt(a)-56320,e=65536+(i<<10)+s),e<128?n[r++]=e:(e<2048?n[r++]=e>>6|192:(e<65536?n[r++]=e>>12|224:(n[r++]=e>>18|240,n[r++]=e>>12&63|128),n[r++]=e>>6&63|128),n[r++]=63&e|128)}return n}(e);const n=new H;return n.update(t),t=n.digest(),r.encodeByteArray(t)}const wl=Rt("localStorage"),bl=Rt("sessionStorage"),Il=new ye("@firebase/database"),Tl=function(){let e=1;return function(){return e++}}(),El=function(...e){let t="";for(let r=0;r<e.length;r++){var n=e[r];Array.isArray(n)||n&&"object"==typeof n&&"number"==typeof n.length?t+=El.apply(null,n):t+="object"==typeof n?F(n):n,t+=" "}return t};let Cl=null,Sl=!0;function kl(t){return function(...e){Ol(t,...e)}}function Al(...e){var t="FIREBASE INTERNAL ERROR: "+El(...e);Il.error(t)}function Nl(e,t){return e===t?0:e<t?-1:1}function Rl(e,t){if(t&&e in t)return t[e];throw new Error("Missing required key ("+e+") in object: "+F(t))}function Pl(e){if("object"!=typeof e||null===e)return F(e);const t=[];for(const r in e)t.push(r);t.sort();let n="{";for(let i=0;i<t.length;i++)0!==i&&(n+=","),n+=F(t[i]),n+=":",n+=Pl(e[t[i]]);return n+="}",n}function Dl(e,t){var n=e.length;if(n<=t)return[e];const r=[];for(let i=0;i<n;i+=t)i+t>n?r.push(e.substring(i,n)):r.push(e.substring(i,i+t));return r}const xl=function(e,t){f(!t||!0===e||!1===e,"Can't turn on custom loggers persistently."),!0===e?(Il.logLevel=m.VERBOSE,Cl=Il.log.bind(Il),t&&bl.set("logging_enabled",!0)):"function"==typeof e?Cl=e:(Cl=null,bl.remove("logging_enabled"))},Ol=function(...e){var t;!0===Sl&&(Sl=!1,null===Cl&&!0===bl.get("logging_enabled")&&xl(!0)),Cl&&(t=El.apply(null,e),Cl(t))},Ml=function(...e){var t=`FIREBASE FATAL ERROR: ${El(...e)}`;throw Il.error(t),new Error(t)},Ll=function(...e){var t="FIREBASE WARNING: "+El(...e);Il.warn(t)},Fl=function(){"undefined"!=typeof window&&window.location&&window.location.protocol&&-1!==window.location.protocol.indexOf("https:")&&Ll("Insecure Firebase access from a secure page. Please use https in calls to new Firebase().")},Ul=function(e){return"number"==typeof e&&(e!=e||e===Number.POSITIVE_INFINITY||e===Number.NEGATIVE_INFINITY)},Vl="[MIN_NAME]",ql="[MAX_NAME]",jl=function(e,t){if(e===t)return 0;if(e===Vl||t===ql)return-1;if(t===Vl||e===ql)return 1;var n=Kl(e),r=Kl(t);return null!==n?null!==r?n-r==0?e.length-t.length:n-r:-1:null===r&&e<t?-1:1};function Bl(e,t){for(const n in e)e.hasOwnProperty(n)&&t(n,e[n])}function zl(e){f(!Ul(e),"Invalid JSON number");let t,n,r,i,s;0===e?(n=0,r=0,t=1/e==-1/0?1:0):(t=e<0,e=Math.abs(e),r=e>=Math.pow(2,-1022)?(i=Math.min(Math.floor(Math.log(e)/Math.LN2),1023),n=i+1023,Math.round(e*Math.pow(2,52-i)-Math.pow(2,52))):(n=0,Math.round(e/Math.pow(2,-1074))));const a=[];for(s=52;s;--s)a.push(r%2?1:0),r=Math.floor(r/2);for(s=11;s;--s)a.push(n%2?1:0),n=Math.floor(n/2);a.push(t?1:0),a.reverse();const o=a.join("");let c="";for(s=0;s<64;s+=8){let e=parseInt(o.substr(s,8),2).toString(16);1===e.length&&(e="0"+e),c+=e}return c.toLowerCase()}function Kl(e){if(Wl.test(e)){var t=Number(e);if(t>=Gl&&t<=Hl)return t}return null}function $l(e,t){const n=setTimeout(e,t);return"number"==typeof n&&"undefined"!=typeof Deno&&Deno.unrefTimer?Deno.unrefTimer(n):"object"==typeof n&&n.unref&&n.unref(),n}const Wl=new RegExp("^-?(0*)\\d{1,10}$"),Gl=-2147483648,Hl=2147483647,Ql=function(e){try{e()}catch(t){setTimeout(()=>{var e=t.stack||"";throw Ll("Exception was thrown by user callback.",e),t},Math.floor(0))}};class Yl{constructor(e,t){this.appName_=e,this.appCheckProvider=t,this.appCheck=null==t?void 0:t.getImmediate({optional:!0}),this.appCheck||null!=t&&t.get().then(e=>this.appCheck=e)}getToken(n){return this.appCheck?this.appCheck.getToken(n):new Promise((e,t)=>{setTimeout(()=>{this.appCheck?this.getToken(n).then(e,t):e(null)},0)})}addTokenChangeListener(t){var e;null!==(e=this.appCheckProvider)&&void 0!==e&&e.get().then(e=>e.addTokenListener(t))}notifyForInvalidToken(){Ll(`Provided AppCheck credentials for the app named "${this.appName_}" `+"are invalid. This usually indicates your app was not initialized correctly.")}}class Jl{constructor(e,t,n){this.appName_=e,this.firebaseOptions_=t,this.authProvider_=n,this.auth_=null,this.auth_=n.getImmediate({optional:!0}),this.auth_||n.onInit(e=>this.auth_=e)}getToken(n){return this.auth_?this.auth_.getToken(n).catch(e=>e&&"auth/token-not-initialized"===e.code?(Ol("Got auth/token-not-initialized error.  Treating as null token."),null):Promise.reject(e)):new Promise((e,t)=>{setTimeout(()=>{this.auth_?this.getToken(n).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/.',Ll(e)}}class Xl{constructor(e){this.accessToken=e}getToken(e){return Promise.resolve({accessToken:this.accessToken})}addTokenChangeListener(e){e(this.accessToken)}removeTokenChangeListener(e){}notifyForInvalidToken(){}}Xl.OWNER="owner";const Zl=/(console\.firebase|firebase-console-\w+\.corp|firebase\.corp)\.google\.com/,eu="websocket",tu="long_polling";class nu{constructor(e,t,n,r,i=!1,s="",a=!1,o=!1){this.secure=t,this.namespace=n,this.webSocketOnly=r,this.nodeAdmin=i,this.persistenceKey=s,this.includeNamespaceInQueryParams=a,this.isUsingEmulator=o,this._host=e.toLowerCase(),this._domain=this._host.substr(this._host.indexOf(".")+1),this.internalHost=wl.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()&&wl.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 ru(e,t,n){f("string"==typeof t,"typeof type must == string"),f("object"==typeof n,"typeof params must == object");let r;if(t===eu)r=(e.secure?"wss://":"ws://")+e.internalHost+"/.ws?";else{if(t!==tu)throw new Error("Unknown connection type: "+t);r=(e.secure?"https://":"http://")+e.internalHost+"/.lp?"}((t=e).host!==t.internalHost||t.isCustomHost()||t.includeNamespaceInQueryParams)&&(n.ns=e.namespace);const i=[];return Bl(n,(e,t)=>{i.push(e+"="+t)}),r+i.join("&")}class iu{constructor(){this.counters_={}}incrementCounter(e,t=1){V(this.counters_,e)||(this.counters_[e]=0),this.counters_[e]+=t}get(){return c(void 0,this.counters_)}}const su={},au={};function ou(e){var t=e.toString();return su[t]||(su[t]=new iu),su[t]}class cu{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];){const n=this.pendingResponses[this.currentResponseNum];delete this.pendingResponses[this.currentResponseNum];for(let e=0;e<n.length;++e)n[e]&&Ql(()=>{this.onMessage_(n[e])});if(this.currentResponseNum===this.closeAfterResponse){this.onClose&&(this.onClose(),this.onClose=null);break}this.currentResponseNum++}}}class lu{constructor(e,t,n,r,i,s,a){this.connId=e,this.repoInfo=t,this.applicationId=n,this.appCheckToken=r,this.authToken=i,this.transportSessionId=s,this.lastSessionId=a,this.bytesSent=0,this.bytesReceived=0,this.everConnected_=!1,this.log_=kl(e),this.stats_=ou(t),this.urlFn=e=>(this.appCheckToken&&(e.ac=this.appCheckToken),ru(t,tu,e))}open(e,t){this.curSegmentNum=0,this.onDisconnect_=t,this.myPacketOrderer=new cu(e),this.isClosed_=!1,this.connectTimeoutTimer_=setTimeout(()=>{this.log_("Timed out trying to connect."),this.onClosed_(),this.connectTimeoutTimer_=null},Math.floor(3e4)),function(t){if("complete"===document.readyState)t();else{let e=!1;const n=function(){document.body?e||(e=!0,t()):setTimeout(n,Math.floor(10))};document.addEventListener?(document.addEventListener("DOMContentLoaded",n,!1),window.addEventListener("load",n,!1)):document.attachEvent&&(document.attachEvent("onreadystatechange",()=>{"complete"===document.readyState&&n()}),window.attachEvent("onload",n))}}(()=>{if(!this.isClosed_){this.scriptTagHolder=new uu((...e)=>{var[t,n,r]=e;if(this.incrementIncomingBytes_(e),this.scriptTagHolder)if(this.connectTimeoutTimer_&&(clearTimeout(this.connectTimeoutTimer_),this.connectTimeoutTimer_=null),this.everConnected_=!0,"start"===t)this.id=n,this.password=r;else{if("close"!==t)throw new Error("Unrecognized command received: "+t);n?(this.scriptTagHolder.sendNewPolls=!1,this.myPacketOrderer.closeAfter(n,()=>{this.onClosed_()})):this.onClosed_()}},(...e)=>{var[t,n]=e;this.incrementIncomingBytes_(e),this.myPacketOrderer.handleResponse(t,n)},()=>{this.onClosed_()},this.urlFn);const t={start:"t"};t.ser=Math.floor(1e8*Math.random()),this.scriptTagHolder.uniqueCallbackIdentifier&&(t.cb=this.scriptTagHolder.uniqueCallbackIdentifier),t.v="5",this.transportSessionId&&(t.s=this.transportSessionId),this.lastSessionId&&(t.ls=this.lastSessionId),this.applicationId&&(t.p=this.applicationId),this.appCheckToken&&(t.ac=this.appCheckToken),"undefined"!=typeof location&&location.hostname&&Zl.test(location.hostname)&&(t.r="f");var e=this.urlFn(t);this.log_("Connecting via long-poll to "+e),this.scriptTagHolder.addTag(e,()=>{})}})}start(){this.scriptTagHolder.startLongPoll(this.id,this.password),this.addDisconnectPingFrame(this.id,this.password)}static forceAllow(){lu.forceAllow_=!0}static forceDisallow(){lu.forceDisallow_=!0}static isAvailable(){return!!lu.forceAllow_||!(lu.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=F(e);this.bytesSent+=t.length,this.stats_.incrementCounter("bytes_sent",t.length);var t=i(t),n=Dl(t,1840);for(let r=0;r<n.length;r++)this.scriptTagHolder.enqueueSegment(this.curSegmentNum,n.length,n[r]),this.curSegmentNum++}addDisconnectPingFrame(e,t){this.myDisconnFrame=document.createElement("iframe");const n={dframe:"t"};n.id=e,n.pw=t,this.myDisconnFrame.src=this.urlFn(n),this.myDisconnFrame.style.display="none",document.body.appendChild(this.myDisconnFrame)}incrementIncomingBytes_(e){var t=F(e).length;this.bytesReceived+=t,this.stats_.incrementCounter("bytes_received",t)}}class uu{constructor(t,n,e,r){this.onDisconnect=e,this.urlFn=r,this.outstandingRequests=new Set,this.pendingSegs=[],this.currentSerial=Math.floor(1e8*Math.random()),this.sendNewPolls=!0;{this.uniqueCallbackIdentifier=Tl(),window["pLPCommand"+this.uniqueCallbackIdentifier]=t,window["pRTLPCB"+this.uniqueCallbackIdentifier]=n,this.myIFrame=uu.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){Ol("frame writing exception"),e.stack&&Ol(e.stack),Ol(e)}}}static createIFrame_(){const 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||Ol("No IE domain setting required")}catch(e){var n=document.domain;t.src="javascript:void((function(){document.open();document.domain='"+n+"';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)));const 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++;const i={};i.id=this.myID,i.pw=this.myPW,i.ser=this.currentSerial;var n=this.urlFn(i);let e="",t=0;for(;0<this.pendingSegs.length;){if(!(this.pendingSegs[0].d.length+30+e.length<=1870))break;var r=this.pendingSegs.shift();e=e+"&seg"+t+"="+r.seg+"&ts"+t+"="+r.ts+"&d"+t+"="+r.d,t++}return n+=e,this.addLongPollTag_(n,this.currentSerial),!0}return!1}enqueueSegment(e,t,n){this.pendingSegs.push({seg:e,ts:t,d:n}),this.alive&&this.newRequest_()}addLongPollTag_(e,t){this.outstandingRequests.add(t);const n=()=>{this.outstandingRequests.delete(t),this.newRequest_()},r=setTimeout(n,Math.floor(25e3));this.addTag(e,()=>{clearTimeout(r),n()})}addTag(e,n){setTimeout(()=>{try{if(!this.sendNewPolls)return;const 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),n())},t.onerror=()=>{Ol("Long-poll script failed to load: "+e),this.sendNewPolls=!1,this.close()},this.myIFrame.doc.body.appendChild(t)}catch(e){}},Math.floor(1))}}let hu=null;"undefined"!=typeof MozWebSocket?hu=MozWebSocket:"undefined"!=typeof WebSocket&&(hu=WebSocket);class du{constructor(e,t,n,r,i,s,a){this.connId=e,this.applicationId=n,this.appCheckToken=r,this.authToken=i,this.keepaliveTimer=null,this.frames=null,this.totalFrames=0,this.bytesSent=0,this.bytesReceived=0,this.log_=kl(this.connId),this.stats_=ou(t),this.connURL=du.connectionURL_(t,s,a,r,n),this.nodeAdmin=t.nodeAdmin}static connectionURL_(e,t,n,r,i){const s={v:"5"};return"undefined"!=typeof location&&location.hostname&&Zl.test(location.hostname)&&(s.r="f"),t&&(s.s=t),n&&(s.ls=n),r&&(s.ac=r),i&&(s.p=i),ru(e,eu,s)}open(e,t){this.onDisconnect=t,this.onMessage=e,this.log_("Websocket connecting to "+this.connURL),this.everConnected_=!1,wl.set("previous_websocket_failure",!0);try{A(),this.mySock=new hu(this.connURL,[],void 0)}catch(e){this.log_("Error instantiating WebSocket.");var n=e.message||e.data;return n&&this.log_(n),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(){du.forceDisallow_=!0}static isAvailable(){let e=!1;var t;return"undefined"==typeof navigator||!navigator.userAgent||(t=navigator.userAgent.match(/Android ([0-9]{0,}\.[0-9]{0,})/))&&1<t.length&&parseFloat(t[1])<4.4&&(e=!0),!e&&null!==hu&&!du.forceDisallow_}static previouslyFailed(){return wl.isInMemoryStorage||!0===wl.get("previous_websocket_failure")}markConnectionHealthy(){wl.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=L(t),this.onMessage(t))}handleNewFrameCount_(e){this.totalFrames=e,this.frames=[]}extractFrameCount_(e){if(f(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=F(e);this.bytesSent+=t.length,this.stats_.incrementCounter("bytes_sent",t.length);var n=Dl(t,16384);1<n.length&&this.sendString_(String(n.length));for(let r=0;r<n.length;r++)this.sendString_(n[r])}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)}}}du.responsesRequiredToBeHealthy=2,du.healthyTimeout=3e4;class pu{constructor(e){this.initTransports_(e)}static get ALL_TRANSPORTS(){return[lu,du]}static get IS_TRANSPORT_INITIALIZED(){return this.globalTransportInitialized_}initTransports_(e){var t=du&&du.isAvailable();let n=t&&!du.previouslyFailed();if(e.webSocketOnly&&(t||Ll("wss:// URL used, but browser isn't known to support websockets.  Trying anyway."),n=!0),n)this.transports_=[du];else{const r=this.transports_=[];for(const i of pu.ALL_TRANSPORTS)i&&i.isAvailable()&&r.push(i);pu.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}}pu.globalTransportInitialized_=!1;class fu{constructor(e,t,n,r,i,s,a,o,c,l){this.id=e,this.repoInfo_=t,this.applicationId_=n,this.appCheckToken_=r,this.authToken_=i,this.onMessage_=s,this.onReady_=a,this.onDisconnect_=o,this.onKill_=c,this.lastSessionId=l,this.connectionCount=0,this.pendingDataMessages=[],this.state_=0,this.log_=kl("c:"+this.id+":"),this.transportManager_=new pu(t),this.log_("Connection created"),this.start_()}start_(){const 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;const t=this.connReceiver_(this.conn_),n=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,n)},Math.floor(0));var r=e.healthyTimeout||0;0<r&&(this.healthyTimeout_=$l(()=>{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(r)))}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=Rl("t",e),n=Rl("d",e);if("c"===t)this.onSecondaryControl_(n);else{if("d"!==t)throw new Error("Unknown protocol layer: "+t);this.pendingDataMessages.push(n)}}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=Rl("t",e),n=Rl("d",e);"c"===t?this.onControl_(n):"d"===t&&this.onDataMessage_(n)}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=Rl("t",e);if("d"in e){var n=e.d;if("h"===t){const r=Object.assign({},n);this.repoInfo_.isUsingEmulator&&(r.h=this.repoInfo_.host),this.onHandshake_(r)}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_(n):"r"===t?this.onReset_(n):"e"===t?Al("Server Error: "+n):"o"===t?(this.log_("got pong on primary."),this.onPrimaryResponse_(),this.sendPingOnPrimaryIfNecessary_()):Al("Unknown control packet command: "+t)}}onHandshake_(e){var t=e.ts,n=e.v,r=e.h;this.sessionId=e.s,this.repoInfo_.host=r,0===this.state_&&(this.conn_.start(),this.onConnectionEstablished_(this.conn_,t),"5"!==n&&Ll("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_),n=this.disconnReceiver_(this.secondaryConn_);this.secondaryConn_.open(t,n),$l(()=>{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):$l(()=>{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()&&(wl.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 gu{put(e,t,n,r){}merge(e,t,n,r){}refreshAuthToken(e){}refreshAppCheckToken(e){}onDisconnectPut(e,t,n){}onDisconnectMerge(e,t,n){}onDisconnectCancel(e,t){}reportStats(e){}}class mu{constructor(e){this.allowedEvents_=e,this.listeners_={},f(Array.isArray(e)&&0<e.length,"Requires a non-empty array")}trigger(t,...n){if(Array.isArray(this.listeners_[t])){const r=[...this.listeners_[t]];for(let e=0;e<r.length;e++)r[e].callback.apply(r[e].context,n)}}on(e,t,n){this.validateEventType_(e),this.listeners_[e]=this.listeners_[e]||[],this.listeners_[e].push({callback:t,context:n});var r=this.getInitialEvent(e);r&&t.apply(n,r)}off(e,t,n){this.validateEventType_(e);const r=this.listeners_[e]||[];for(let i=0;i<r.length;i++)if(r[i].callback===t&&(!n||n===r[i].context))return void r.splice(i,1)}validateEventType_(t){f(this.allowedEvents_.find(e=>e===t),"Unknown event: "+t)}}class vu extends mu{constructor(){super(["online"]),this.online_=!0,"undefined"==typeof window||void 0===window.addEventListener||I()||(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))}static getInstance(){return new vu}getInitialEvent(e){return f("online"===e,"Unknown event type: "+e),[this.online_]}currentlyOnline(){return this.online_}}class _u{constructor(n,e){if(void 0===e){this.pieces_=n.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_=n,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 yu(){return new _u("")}function wu(e){return e.pieceNum_>=e.pieces_.length?null:e.pieces_[e.pieceNum_]}function bu(e){return e.pieces_.length-e.pieceNum_}function Iu(e){let t=e.pieceNum_;return t<e.pieces_.length&&t++,new _u(e.pieces_,t)}function Tu(e){return e.pieceNum_<e.pieces_.length?e.pieces_[e.pieces_.length-1]:null}function Eu(e,t=0){return e.pieces_.slice(e.pieceNum_+t)}function Cu(e){if(e.pieceNum_>=e.pieces_.length)return null;const t=[];for(let n=e.pieceNum_;n<e.pieces_.length-1;n++)t.push(e.pieces_[n]);return new _u(t,0)}function Su(e,t){const n=[];for(let i=e.pieceNum_;i<e.pieces_.length;i++)n.push(e.pieces_[i]);if(t instanceof _u)for(let e=t.pieceNum_;e<t.pieces_.length;e++)n.push(t.pieces_[e]);else{var r=t.split("/");for(let e=0;e<r.length;e++)0<r[e].length&&n.push(r[e])}return new _u(n,0)}function ku(e){return e.pieceNum_>=e.pieces_.length}function Au(e,t){var n=wu(e),r=wu(t);if(null===n)return t;if(n===r)return Au(Iu(e),Iu(t));throw new Error("INTERNAL ERROR: innerPath ("+t+") is not within outerPath ("+e+")")}function Nu(e,t){var n=Eu(e,0),r=Eu(t,0);for(let s=0;s<n.length&&s<r.length;s++){var i=jl(n[s],r[s]);if(0!==i)return i}return n.length===r.length?0:n.length<r.length?-1:1}function Ru(e,t){if(bu(e)!==bu(t))return!1;for(let n=e.pieceNum_,r=t.pieceNum_;n<=e.pieces_.length;n++,r++)if(e.pieces_[n]!==t.pieces_[r])return!1;return!0}function Pu(e,t){let n=e.pieceNum_,r=t.pieceNum_;if(bu(e)>bu(t))return!1;for(;n<e.pieces_.length;){if(e.pieces_[n]!==t.pieces_[r])return!1;++n,++r}return!0}class Du{constructor(e,t){this.errorPrefix_=t,this.parts_=Eu(e,0),this.byteLength_=Math.max(1,this.parts_.length);for(let n=0;n<this.parts_.length;n++)this.byteLength_+=re(this.parts_[n]);xu(this)}}function xu(e){if(768<e.byteLength_)throw new Error(e.errorPrefix_+"has a key path longer than 768 bytes ("+e.byteLength_+").");if(32<e.parts_.length)throw new Error(e.errorPrefix_+"path specified exceeds the maximum depth that can be written (32) or object contains a cycle "+Ou(e))}function Ou(e){return 0===e.parts_.length?"":"in property '"+e.parts_.join(".")+"'"}class Mu extends mu{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)}static getInstance(){return new Mu}getInitialEvent(e){return f("visible"===e,"Unknown event type: "+e),[this.visible_]}}class Lu extends gu{constructor(e,t,n,r,i,s,a,o){if(super(),this.repoInfo_=e,this.applicationId_=t,this.onDataUpdate_=n,this.onConnectStatus_=r,this.onServerInfoUpdate_=i,this.authTokenProvider_=s,this.appCheckTokenProvider_=a,this.authOverride_=o,this.id=Lu.nextPersistentConnectionId_++,this.log_=kl("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&&!A())throw new Error("Auth override specified in options, but not supported on non Node.js platforms");Mu.getInstance().on("visible",this.onVisible_,this),-1===e.host.indexOf("fblocal")&&vu.getInstance().on("online",this.onOnline_,this)}sendRequest(e,t,n){var r=++this.requestNumber_,i={r:r,a:e,b:t};this.log_(F(i)),f(this.connected_,"sendRequest call when we're not connected not allowed."),this.realtime_.sendRequest(i),n&&(this.requestCBHash_[r]=n)}get(e){this.initConnection_();const n=new y;var t={p:e._path.toString(),q:e._queryObject};this.outstandingGets_.push({action:"g",request:t,onComplete:e=>{var t=e.d;"ok"===e.s?n.resolve(t):n.reject(t)}}),this.outstandingGetCount_++;t=this.outstandingGets_.length-1;return this.connected_&&this.sendGet_(t),n.promise}listen(e,t,n,r){this.initConnection_();var i=e._queryIdentifier,s=e._path.toString();this.log_("Listen called for "+s+" "+i),this.listens.has(s)||this.listens.set(s,new Map),f(e._queryParams.isDefault()||!e._queryParams.loadsAllData(),"listen() called for non-default but complete query"),f(!this.listens.get(s).has(i),"listen() called twice for same path/queryId.");var a={onComplete:r,hashFn:t,query:e,tag:n};this.listens.get(s).set(i,a),this.connected_&&this.sendListen_(a)}sendGet_(t){const n=this.outstandingGets_[t];this.sendRequest("g",n.request,e=>{delete this.outstandingGets_[t],this.outstandingGetCount_--,0===this.outstandingGetCount_&&(this.outstandingGets_=[]),n.onComplete&&n.onComplete(e)})}sendListen_(r){const i=r.query,s=i._path.toString(),a=i._queryIdentifier;this.log_("Listen on "+s+" for "+a);const e={p:s};r.tag&&(e.q=i._queryObject,e.t=r.tag),e.h=r.hashFn(),this.sendRequest("q",e,e=>{var t=e.d,n=e.s;Lu.warnOnListenWarnings_(t,i),(this.listens.get(s)&&this.listens.get(s).get(a))===r&&(this.log_("listen response",e),"ok"!==n&&this.removeListen_(s,a),r.onComplete&&r.onComplete(n,t))})}static warnOnListenWarnings_(e,t){if(e&&"object"==typeof e&&V(e,"w")){const i=q(e,"w");var n,r;Array.isArray(i)&&~i.indexOf("no_index")&&(n='".indexOn": "'+t._queryParams.getIndex().toString()+'"',r=t._path.toString(),Ll("Using an unspecified index. Your data will be downloaded and "+`filtered on the client. Consider adding ${n} at `+`${r} 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=U(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_){const r=this.authToken_;var e=function(e){const t=U(e),n=t.claims;return!!n&&"object"==typeof n&&n.hasOwnProperty("iat")}(r)?"auth":"gauth";const t={cred:r};null===this.authOverride_?t.noauth=!0:"object"==typeof this.authOverride_&&(t.authvar=this.authOverride_),this.sendRequest(e,t,e=>{var t=e.s,n=e.d||"error";this.authToken_===r&&("ok"===t?this.invalidAuthTokenCount_=0:this.onAuthRevoked_(t,n))})}}tryAppCheck(){this.connected_&&this.appCheckToken_&&this.sendRequest("appcheck",{token:this.appCheckToken_},e=>{var t=e.s,n=e.d||"error";"ok"===t?this.invalidAppCheckTokenCount_=0:this.onAppCheckRevoked_(t,n)})}unlisten(e,t){var n=e._path.toString(),r=e._queryIdentifier;this.log_("Unlisten called for "+n+" "+r),f(e._queryParams.isDefault()||!e._queryParams.loadsAllData(),"unlisten() called for non-default but complete query"),this.removeListen_(n,r)&&this.connected_&&this.sendUnlisten_(n,r,e._queryObject,t)}sendUnlisten_(e,t,n,r){this.log_("Unlisten on "+e+" for "+t);const i={p:e};r&&(i.q=n,i.t=r),this.sendRequest("n",i)}onDisconnectPut(e,t,n){this.initConnection_(),this.connected_?this.sendOnDisconnect_("o",e,t,n):this.onDisconnectRequestQueue_.push({pathString:e,action:"o",data:t,onComplete:n})}onDisconnectMerge(e,t,n){this.initConnection_(),this.connected_?this.sendOnDisconnect_("om",e,t,n):this.onDisconnectRequestQueue_.push({pathString:e,action:"om",data:t,onComplete:n})}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,n,r){var i={p:t,d:n};this.log_("onDisconnect "+e,i),this.sendRequest(e,i,e=>{r&&setTimeout(()=>{r(e.s,e.d)},Math.floor(0))})}put(e,t,n,r){this.putInternal("p",e,t,n,r)}merge(e,t,n,r){this.putInternal("m",e,t,n,r)}putInternal(e,t,n,r,i){this.initConnection_();const s={p:t,d:n};void 0!==i&&(s.h=i),this.outstandingPuts_.push({action:e,request:s,onComplete:r}),this.outstandingPutCount_++;var a=this.outstandingPuts_.length-1;this.connected_?this.sendPut_(a):this.log_("Buffering put: "+t)}sendPut_(t){const n=this.outstandingPuts_[t].action;var e=this.outstandingPuts_[t].request;const r=this.outstandingPuts_[t].onComplete;this.outstandingPuts_[t].queued=this.connected_,this.sendRequest(n,e,e=>{this.log_(n+" response",e),delete this.outstandingPuts_[t],this.outstandingPutCount_--,0===this.outstandingPutCount_&&(this.outstandingPuts_=[]),r&&r(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: "+F(e));var t=e.r;const n=this.requestCBHash_[t];n&&(delete this.requestCBHash_[t],n(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):Al("Unrecognized action received from server: "+F(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){f(!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=(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 e=this.onDataMessage_.bind(this),r=this.onReady_.bind(this);const u=this.onRealtimeDisconnect_.bind(this);var i=this.id+":"+Lu.nextConnectionId_++,s=this.lastSessionId;let t=!1,n=null;var a=function(){n?n.close():(t=!0,u())};this.realtime_={close:a,sendRequest:function(e){f(n,"sendRequest call when we're not connected not allowed."),n.sendRequest(e)}};var o=this.forceTokenRefresh_;this.forceTokenRefresh_=!1;try{var[c,l]=await Promise.all([this.authTokenProvider_.getToken(o),this.appCheckTokenProvider_.getToken(o)]);t?Ol("getToken() completed but was canceled"):(Ol("getToken() completed. Creating connection."),this.authToken_=c&&c.accessToken,this.appCheckToken_=l&&l.token,n=new fu(i,this.repoInfo_,this.applicationId_,this.appCheckToken_,this.authToken_,e,r,u,e=>{Ll(e+" ("+this.repoInfo_.toString()+")"),this.interrupt("server_kill")},s))}catch(e){this.log_("Failed to get token: "+e),t||(this.repoInfo_.nodeAdmin&&Ll(e),a())}}}interrupt(e){Ol("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){Ol("Resuming connection for reason: "+e),delete this.interruptReasons_[e],j(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 e=0;e<this.outstandingPuts_.length;e++){const t=this.outstandingPuts_[e];t&&"h"in t.request&&t.queued&&(t.onComplete&&t.onComplete("disconnect"),delete this.outstandingPuts_[e],this.outstandingPutCount_--)}0===this.outstandingPutCount_&&(this.outstandingPuts_=[])}onListenRevoked_(e,t){let n;n=t?t.map(e=>Pl(e)).join("$"):"default";const r=this.removeListen_(e,n);r&&r.onComplete&&r.onComplete("permission_denied")}removeListen_(e,t){var n=new _u(e).toString();let r;if(this.listens.has(n)){const i=this.listens.get(n);r=i.get(t),i.delete(t),0===i.size&&this.listens.delete(n)}else r=void 0;return r}onAuthRevoked_(e,t){Ol("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){Ol("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(const t of this.listens.values())for(const n of t.values())this.sendListen_(n);for(let r=0;r<this.outstandingPuts_.length;r++)this.outstandingPuts_[r]&&this.sendPut_(r);for(;this.onDisconnectRequestQueue_.length;){var e=this.onDisconnectRequestQueue_.shift();this.sendOnDisconnect_(e.action,e.pathString,e.data,e.onComplete)}for(let i=0;i<this.outstandingGets_.length;i++)this.outstandingGets_[i]&&this.sendGet_(i)}sendConnectStats_(){const e={};e["sdk.js."+ll.replace(/\./g,"-")]=1,I()?e["framework.cordova"]=1:S()&&(e["framework.reactnative"]=1),this.reportStats(e)}shouldReconnect_(){var e=vu.getInstance().currentlyOnline();return j(this.interruptReasons_)&&e}}Lu.nextPersistentConnectionId_=0,Lu.nextConnectionId_=0;class Fu{constructor(e,t){this.name=e,this.node=t}static Wrap(e,t){return new Fu(e,t)}}class Uu{getCompare(){return this.compare.bind(this)}indexedValueChanged(e,t){var n=new Fu(Vl,e),r=new Fu(Vl,t);return 0!==this.compare(n,r)}minPost(){return Fu.MIN}}let Vu;class qu extends Uu{static get __EMPTY_NODE(){return Vu}static set __EMPTY_NODE(e){Vu=e}compare(e,t){return jl(e.name,t.name)}isDefinedOn(e){throw u("KeyIndex.isDefinedOn not expected to be called.")}indexedValueChanged(e,t){return!1}minPost(){return Fu.MIN}maxPost(){return new Fu(ql,Vu)}makePost(e,t){return f("string"==typeof e,"KeyIndex indexValue must always be a string."),new Fu(e,Vu)}toString(){return".key"}}const ju=new qu;class Bu{constructor(e,t,n,r,i=null){this.isReverse_=r,this.resultGenerator_=i,this.nodeStack_=[];let s=1;for(;!e.isEmpty();)if(s=t?n(e.key,t):1,r&&(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(){if(0===this.nodeStack_.length)return null;var e=this.nodeStack_[this.nodeStack_.length-1];return this.resultGenerator_?this.resultGenerator_(e.key,e.value):{key:e.key,value:e.value}}}class zu{constructor(e,t,n,r,i){this.key=e,this.value=t,this.color=null!=n?n:zu.RED,this.left=null!=r?r:$u.EMPTY_NODE,this.right=null!=i?i:$u.EMPTY_NODE}copy(e,t,n,r,i){return new zu(null!=e?e:this.key,null!=t?t:this.value,null!=n?n:this.color,null!=r?r: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,n){let r=this;var i=n(e,r.key);return r=i<0?r.copy(null,null,null,r.left.insert(e,t,n),null):0===i?r.copy(null,t,null,null,null):r.copy(null,null,null,null,r.right.insert(e,t,n)),r.fixUp_()}removeMin_(){if(this.left.isEmpty())return $u.EMPTY_NODE;let e=this;return e.left.isRed_()||e.left.left.isRed_()||(e=e.moveRedLeft_()),e=e.copy(null,null,null,e.left.removeMin_(),null),e.fixUp_()}remove(e,t){let n,r;if(n=this,t(e,n.key)<0)n.left.isEmpty()||n.left.isRed_()||n.left.left.isRed_()||(n=n.moveRedLeft_()),n=n.copy(null,null,null,n.left.remove(e,t),null);else{if(n.left.isRed_()&&(n=n.rotateRight_()),n.right.isEmpty()||n.right.isRed_()||n.right.left.isRed_()||(n=n.moveRedRight_()),0===t(e,n.key)){if(n.right.isEmpty())return $u.EMPTY_NODE;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.right.isRed_()&&!e.left.isRed_()&&(e=e.rotateLeft_()),e.left.isRed_()&&e.left.left.isRed_()&&(e=e.rotateRight_()),e.left.isRed_()&&e.right.isRed_()&&(e=e.colorFlip_()),e}moveRedLeft_(){let e=this.colorFlip_();return e.right.left.isRed_()&&(e=e.copy(null,null,null,null,e.right.rotateRight_()),e=e.rotateLeft_(),e=e.colorFlip_()),e}moveRedRight_(){let e=this.colorFlip_();return e.left.left.isRed_()&&(e=e.rotateRight_(),e=e.colorFlip_()),e}rotateLeft_(){var e=this.copy(null,null,zu.RED,null,this.right.left);return this.right.copy(null,null,this.color,e,null)}rotateRight_(){var e=this.copy(null,null,zu.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)}}zu.RED=!0,zu.BLACK=!1;class Ku{copy(e,t,n,r,i){return this}insert(e,t,n){return new zu(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 $u{constructor(e,t=$u.EMPTY_NODE){this.comparator_=e,this.root_=t}insert(e,t){return new $u(this.comparator_,this.root_.insert(e,t,this.comparator_).copy(null,null,zu.BLACK,null,null))}remove(e){return new $u(this.comparator_,this.root_.remove(e,this.comparator_).copy(null,null,zu.BLACK,null,null))}get(e){var t;let n=this.root_;for(;!n.isEmpty();){if(0===(t=this.comparator_(e,n.key)))return n.value;t<0?n=n.left:0<t&&(n=n.right)}return null}getPredecessorKey(e){let t,n=this.root_,r=null;for(;!n.isEmpty();){if(0===(t=this.comparator_(e,n.key))){if(n.left.isEmpty())return r?r.key:null;for(n=n.left;!n.right.isEmpty();)n=n.right;return n.key}t<0?n=n.left:0<t&&(r=n,n=n.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 Bu(this.root_,null,this.comparator_,!1,e)}getIteratorFrom(e,t){return new Bu(this.root_,e,this.comparator_,!1,t)}getReverseIteratorFrom(e,t){return new Bu(this.root_,e,this.comparator_,!0,t)}getReverseIterator(e){return new Bu(this.root_,null,this.comparator_,!0,e)}}function Wu(e,t){return jl(e.name,t.name)}function Gu(e,t){return jl(e,t)}$u.EMPTY_NODE=new Ku;let Hu;function Qu(e){return"number"==typeof e?"number:"+zl(e):"string:"+e}function Yu(e){var t;e.isLeafNode()?(t=e.val(),f("string"==typeof t||"number"==typeof t||"object"==typeof t&&V(t,".sv"),"Priority must be a string or number.")):f(e===Hu||e.isEmpty(),"priority of unexpected type."),f(e===Hu||e.getPriority().isEmpty(),"Priority nodes can't have a priority of their own.")}let Ju;class Xu{constructor(e,t=Xu.__childrenNodeConstructor.EMPTY_NODE){this.value_=e,this.priorityNode_=t,this.lazyHash_=null,f(void 0!==this.value_&&null!==this.value_,"LeafNode shouldn't be created with null/undefined value."),Yu(this.priorityNode_)}static set __childrenNodeConstructor(e){Ju=e}static get __childrenNodeConstructor(){return Ju}isLeafNode(){return!0}getPriority(){return this.priorityNode_}updatePriority(e){return new Xu(this.value_,e)}getImmediateChild(e){return".priority"===e?this.priorityNode_:Xu.__childrenNodeConstructor.EMPTY_NODE}getChild(e){return ku(e)?this:".priority"===wu(e)?this.priorityNode_:Xu.__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:Xu.__childrenNodeConstructor.EMPTY_NODE.updateImmediateChild(e,t).updatePriority(this.priorityNode_)}updateChild(e,t){var n=wu(e);return null===n?t:t.isEmpty()&&".priority"!==n?this:(f(".priority"!==n||1===bu(e),".priority must be the last token in a path"),this.updateImmediateChild(n,Xu.__childrenNodeConstructor.EMPTY_NODE.updateChild(Iu(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:"+Qu(this.priorityNode_.val())+":");var t=typeof this.value_;e+=t+":",e+="number"==t?zl(this.value_):this.value_,this.lazyHash_=yl(e)}return this.lazyHash_}getValue(){return this.value_}compareTo(e){return e===Xu.__childrenNodeConstructor.EMPTY_NODE?1:e instanceof Xu.__childrenNodeConstructor?-1:(f(e.isLeafNode(),"Unknown node type"),this.compareToLeafNode_(e))}compareToLeafNode_(e){var t=typeof e.value_,n=typeof this.value_,r=Xu.VALUE_TYPE_ORDER.indexOf(t),i=Xu.VALUE_TYPE_ORDER.indexOf(n);return f(0<=r,"Unknown leaf type: "+t),f(0<=i,"Unknown leaf type: "+n),r===i?"object"==n?0:this.value_<e.value_?-1:this.value_===e.value_?0:1:i-r}withIndex(){return this}isIndexed(){return!0}equals(e){return e===this||!!e.isLeafNode()&&(this.value_===e.value_&&this.priorityNode_.equals(e.priorityNode_))}}Xu.VALUE_TYPE_ORDER=["object","boolean","number","string"];let Zu,eh;const th=new class extends Uu{compare(e,t){const n=e.node.getPriority();var r=t.node.getPriority(),r=n.compareTo(r);return 0===r?jl(e.name,t.name):r}isDefinedOn(e){return!e.getPriority().isEmpty()}indexedValueChanged(e,t){return!e.getPriority().equals(t.getPriority())}minPost(){return Fu.MIN}maxPost(){return new Fu(ql,new Xu("[PRIORITY-POST]",eh))}makePost(e,t){var n=Zu(e);return new Fu(t,new Xu("[PRIORITY-POST]",n))}toString(){return".priority"}},nh=Math.log(2);class rh{constructor(e){var t;this.count=(t=e+1,parseInt(Math.log(t)/nh,10)),this.current_=this.count-1;var n,r=(n=this.count,parseInt(Array(n+1).join("1"),2));this.bits_=e+1&r}nextBitIsOne(){var e=!(this.bits_&1<<this.current_);return this.current_--,e}}function ih(c,e,l,t){c.sort(e);const u=function(e,t){var n=t-e;let r,i;if(0==n)return null;if(1==n)return r=c[e],i=l?l(r):r,new zu(i,r.node,zu.BLACK,null,null);var s=parseInt(n/2,10)+e,a=u(e,s),n=u(s+1,t);return r=c[s],i=l?l(r):r,new zu(i,r.node,zu.BLACK,a,n)};var n=function(e){let s=null,a=null,o=c.length;function t(e,t){var n=o-e,r=o;o-=e;var i=u(1+n,r),r=c[n],n=l?l(r):r;!function(e){if(s){s.left=e;s=e}else{a=e;s=e}}(new zu(n,r.node,t,null,i))}for(let i=0;i<e.count;++i){var n=e.nextBitIsOne(),r=Math.pow(2,e.count-(i+1));n?t(r,zu.BLACK):(t(r,zu.BLACK),t(r,zu.RED))}return a}(new rh(c.length));return new $u(t||e,n)}let sh;const ah={};class oh{constructor(e,t){this.indexes_=e,this.indexSet_=t}static get Default(){return f((ah,th),"ChildrenNode.ts has not been loaded"),sh=sh||new oh({".priority":ah},{".priority":th}),sh}get(e){var t=q(this.indexes_,e);if(!t)throw new Error("No index defined for "+e);return t instanceof $u?t:null}hasIndex(e){return V(this.indexSet_,e.toString())}addIndex(e,t){f(e!==ju,"KeyIndex always exists and isn't meant to be added to the IndexMap.");const n=[];let r=!1;const i=t.getIterator(Fu.Wrap);let s=i.getNext();for(;s;)r=r||e.isDefinedOn(s.node),n.push(s),s=i.getNext();let a;a=r?ih(n,e.getCompare()):ah;var o=e.toString();const c=Object.assign({},this.indexSet_);c[o]=e;const l=Object.assign({},this.indexes_);return l[o]=a,new oh(l,c)}addToIndexes(a,o){var e=B(this.indexes_,(t,e)=>{const n=q(this.indexSet_,e);if(f(n,"Missing index implementation for "+e),t===ah){if(n.isDefinedOn(a.node)){const i=[],s=o.getIterator(Fu.Wrap);let e=s.getNext();for(;e;)e.name!==a.name&&i.push(e),e=s.getNext();return i.push(a),ih(i,n.getCompare())}return ah}{var r=o.get(a.name);let e=t;return r&&(e=e.remove(new Fu(a.name,r))),e.insert(a,a.node)}});return new oh(e,this.indexSet_)}removeFromIndexes(n,r){var e=B(this.indexes_,e=>{if(e===ah)return e;var t=r.get(n.name);return t?e.remove(new Fu(n.name,t)):e});return new oh(e,this.indexSet_)}}let ch;class lh{constructor(e,t,n){this.children_=e,this.priorityNode_=t,this.indexMap_=n,this.lazyHash_=null,this.priorityNode_&&Yu(this.priorityNode_),this.children_.isEmpty()&&f(!this.priorityNode_||this.priorityNode_.isEmpty(),"An empty node cannot have a priority")}static get EMPTY_NODE(){return ch=ch||new lh(new $u(Gu),null,oh.Default)}isLeafNode(){return!1}getPriority(){return this.priorityNode_||ch}updatePriority(e){return this.children_.isEmpty()?this:new lh(this.children_,e,this.indexMap_)}getImmediateChild(e){if(".priority"===e)return this.getPriority();var t=this.children_.get(e);return null===t?ch:t}getChild(e){var t=wu(e);return null===t?this:this.getImmediateChild(t).getChild(Iu(e))}hasChild(e){return null!==this.children_.get(e)}updateImmediateChild(n,r){if(f(r,"We should always be passing snapshot nodes"),".priority"===n)return this.updatePriority(r);{var i=new Fu(n,r);let e,t;t=r.isEmpty()?(e=this.children_.remove(n),this.indexMap_.removeFromIndexes(i,this.children_)):(e=this.children_.insert(n,r),this.indexMap_.addToIndexes(i,this.children_));i=e.isEmpty()?ch:this.priorityNode_;return new lh(e,i,t)}}updateChild(e,t){var n=wu(e);if(null===n)return t;f(".priority"!==wu(e)||1===bu(e),".priority must be the last token in a path");var r=this.getImmediateChild(n).updateChild(Iu(e),t);return this.updateImmediateChild(n,r)}isEmpty(){return this.children_.isEmpty()}numChildren(){return this.children_.count()}val(n){if(this.isEmpty())return null;const r={};let i=0,s=0,a=!0;if(this.forEachChild(th,(e,t)=>{r[e]=t.val(n),i++,a&&lh.INTEGER_REGEXP_.test(e)?s=Math.max(s,Number(e)):a=!1}),!n&&a&&s<2*i){const e=[];for(const t in r)e[t]=r[t];return e}return n&&!this.getPriority().isEmpty()&&(r[".priority"]=this.getPriority().val()),r}hash(){if(null===this.lazyHash_){let r="";this.getPriority().isEmpty()||(r+="priority:"+Qu(this.getPriority().val())+":"),this.forEachChild(th,(e,t)=>{var n=t.hash();""!==n&&(r+=":"+e+":"+n)}),this.lazyHash_=""===r?"":yl(r)}return this.lazyHash_}getPredecessorChildName(e,t,n){const r=this.resolveIndex_(n);if(r){var i=r.getPredecessorKey(new Fu(e,t));return i?i.name:null}return this.children_.getPredecessorKey(e)}getFirstChildName(e){const t=this.resolveIndex_(e);if(t){var n=t.minKey();return n&&n.name}return this.children_.minKey()}getFirstChild(e){var t=this.getFirstChildName(e);return t?new Fu(t,this.children_.get(t)):null}getLastChildName(e){const t=this.resolveIndex_(e);if(t){var n=t.maxKey();return n&&n.name}return this.children_.maxKey()}getLastChild(e){var t=this.getLastChildName(e);return t?new Fu(t,this.children_.get(t)):null}forEachChild(e,t){const n=this.resolveIndex_(e);return n?n.inorderTraversal(e=>t(e.name,e.node)):this.children_.inorderTraversal(t)}getIterator(e){return this.getIteratorFrom(e.minPost(),e)}getIteratorFrom(t,n){const e=this.resolveIndex_(n);if(e)return e.getIteratorFrom(t,e=>e);{const r=this.children_.getIteratorFrom(t.name,Fu.Wrap);let e=r.peek();for(;null!=e&&n.compare(e,t)<0;)r.getNext(),e=r.peek();return r}}getReverseIterator(e){return this.getReverseIteratorFrom(e.maxPost(),e)}getReverseIteratorFrom(t,n){const e=this.resolveIndex_(n);if(e)return e.getReverseIteratorFrom(t,e=>e);{const r=this.children_.getReverseIteratorFrom(t.name,Fu.Wrap);let e=r.peek();for(;null!=e&&0<n.compare(e,t);)r.getNext(),e=r.peek();return r}}compareTo(e){return this.isEmpty()?e.isEmpty()?0:-1:e.isLeafNode()||e.isEmpty()?1:e===hh?-1:0}withIndex(e){if(e===ju||this.indexMap_.hasIndex(e))return this;var t=this.indexMap_.addIndex(e,this.children_);return new lh(this.children_,this.priorityNode_,t)}isIndexed(e){return e===ju||this.indexMap_.hasIndex(e)}equals(e){if(e===this)return!0;if(e.isLeafNode())return!1;{const n=e;if(this.getPriority().equals(n.getPriority())){if(this.children_.count()!==n.children_.count())return!1;{const r=this.getIterator(th),i=n.getIterator(th);let e=r.getNext(),t=i.getNext();for(;e&&t;){if(e.name!==t.name||!e.node.equals(t.node))return!1;e=r.getNext(),t=i.getNext()}return null===e&&null===t}}return!1}}resolveIndex_(e){return e===ju?null:this.indexMap_.get(e.toString())}}lh.INTEGER_REGEXP_=/^(0|[1-9]\d*)$/;class uh extends lh{constructor(){super(new $u(Gu),lh.EMPTY_NODE,oh.Default)}compareTo(e){return e===this?0:1}equals(e){return e===this}getPriority(){return this}getImmediateChild(e){return lh.EMPTY_NODE}isEmpty(){return!1}}const hh=new uh;Object.defineProperties(Fu,{MIN:{value:new Fu(Vl,lh.EMPTY_NODE)},MAX:{value:new Fu(ql,hh)}}),qu.__EMPTY_NODE=lh.EMPTY_NODE,Xu.__childrenNodeConstructor=lh,pl=hh,Hu=pl,fl=hh,eh=fl;const dh=!0;function ph(i,e=null){if(null===i)return lh.EMPTY_NODE;if("object"==typeof i&&".priority"in i&&(e=i[".priority"]),f(null===e||"string"==typeof e||"number"==typeof e||"object"==typeof e&&".sv"in e,"Invalid priority type found: "+typeof e),"object"!=typeof(i="object"==typeof i&&".value"in i&&null!==i[".value"]?i[".value"]:i)||".sv"in i){var t=i;return new Xu(t,ph(e))}if(i instanceof Array||!dh){let r=lh.EMPTY_NODE;return Bl(i,(e,t)=>{if(V(i,e)&&"."!==e.substring(0,1)){const n=ph(t);!n.isLeafNode()&&n.isEmpty()||(r=r.updateImmediateChild(e,n))}}),r.updatePriority(ph(e))}{const s=[];let r=!1;if(Bl(i,(e,t)=>{if("."!==e.substring(0,1)){const n=ph(t);n.isEmpty()||(r=r||!n.getPriority().isEmpty(),s.push(new Fu(e,n)))}}),0===s.length)return lh.EMPTY_NODE;var n=ih(s,Wu,e=>e.name,Gu);if(r){t=ih(s,th.getCompare());return new lh(n,ph(e),new oh({".priority":t},{".priority":th}))}return new lh(n,ph(e),oh.Default)}}Zu=ph;class fh extends Uu{constructor(e){super(),this.indexPath_=e,f(!ku(e)&&".priority"!==wu(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){const n=this.extractChild(e.node);var r=this.extractChild(t.node),r=n.compareTo(r);return 0===r?jl(e.name,t.name):r}makePost(e,t){var n=ph(e),n=lh.EMPTY_NODE.updateChild(this.indexPath_,n);return new Fu(t,n)}maxPost(){var e=lh.EMPTY_NODE.updateChild(this.indexPath_,hh);return new Fu(ql,e)}toString(){return Eu(this.indexPath_,0).join("/")}}const gh=new class extends Uu{compare(e,t){var n=e.node.compareTo(t.node);return 0===n?jl(e.name,t.name):n}isDefinedOn(e){return!0}indexedValueChanged(e,t){return!e.equals(t)}minPost(){return Fu.MIN}maxPost(){return Fu.MAX}makePost(e,t){var n=ph(e);return new Fu(t,n)}toString(){return".value"}};function mh(e){return{type:"value",snapshotNode:e}}function vh(e,t){return{type:"child_added",snapshotNode:t,childName:e}}function _h(e,t){return{type:"child_removed",snapshotNode:t,childName:e}}function yh(e,t,n){return{type:"child_changed",snapshotNode:t,childName:e,oldSnap:n}}class wh{constructor(e){this.index_=e}updateChild(e,t,n,r,i,s){f(e.isIndexed(this.index_),"A node must be indexed if only a child is updated");const a=e.getImmediateChild(t);return a.getChild(r).equals(n.getChild(r))&&a.isEmpty()===n.isEmpty()?e:(null!=s&&(n.isEmpty()?e.hasChild(t)?s.trackChildChange(_h(t,a)):f(e.isLeafNode(),"A child remove without an old child only makes sense on a leaf node"):a.isEmpty()?s.trackChildChange(vh(t,n)):s.trackChildChange(yh(t,n,a))),e.isLeafNode()&&n.isEmpty()?e:e.updateImmediateChild(t,n).withIndex(this.index_))}updateFullNode(r,n,i){return null!=i&&(r.isLeafNode()||r.forEachChild(th,(e,t)=>{n.hasChild(e)||i.trackChildChange(_h(e,t))}),n.isLeafNode()||n.forEachChild(th,(e,t)=>{if(r.hasChild(e)){const n=r.getImmediateChild(e);n.equals(t)||i.trackChildChange(yh(e,t,n))}else i.trackChildChange(vh(e,t))})),n.withIndex(this.index_)}updatePriority(e,t){return e.isEmpty()?lh.EMPTY_NODE:e.updatePriority(t)}filtersNodes(){return!1}getIndexedFilter(){return this}getIndex(){return this.index_}}class bh{constructor(e){this.indexedFilter_=new wh(e.getIndex()),this.index_=e.getIndex(),this.startPost_=bh.getStartPost_(e),this.endPost_=bh.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,n=this.endIsInclusive_?this.index_.compare(e,this.getEndPost())<=0:this.index_.compare(e,this.getEndPost())<0;return t&&n}updateChild(e,t,n,r,i,s){return this.matches(new Fu(t,n))||(n=lh.EMPTY_NODE),this.indexedFilter_.updateChild(e,t,n,r,i,s)}updateFullNode(e,t,n){let r=(t=t.isLeafNode()?lh.EMPTY_NODE:t).withIndex(this.index_);r=r.updatePriority(lh.EMPTY_NODE);const i=this;return t.forEachChild(th,(e,t)=>{i.matches(new Fu(e,t))||(r=r.updateImmediateChild(e,lh.EMPTY_NODE))}),this.indexedFilter_.updateFullNode(e,r,n)}updatePriority(e,t){return e}filtersNodes(){return!0}getIndexedFilter(){return this.indexedFilter_}getIndex(){return this.index_}static getStartPost_(e){if(e.hasStart()){var t=e.getIndexStartName();return e.getIndex().makePost(e.getIndexStartValue(),t)}return e.getIndex().minPost()}static getEndPost_(e){if(e.hasEnd()){var t=e.getIndexEndName();return e.getIndex().makePost(e.getIndexEndValue(),t)}return e.getIndex().maxPost()}}class Ih{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 bh(e),this.index_=e.getIndex(),this.limit_=e.getLimit(),this.reverse_=!e.isViewFromLeft(),this.startIsInclusive_=!e.startAfterSet_,this.endIsInclusive_=!e.endBeforeSet_}updateChild(e,t,n,r,i,s){return this.rangedFilter_.matches(new Fu(t,n))||(n=lh.EMPTY_NODE),e.getImmediateChild(t).equals(n)?e:e.numChildren()<this.limit_?this.rangedFilter_.getIndexedFilter().updateChild(e,t,n,r,i,s):this.fullLimitUpdateChild_(e,t,n,i,s)}updateFullNode(e,n,t){let r;if(n.isLeafNode()||n.isEmpty())r=lh.EMPTY_NODE.withIndex(this.index_);else if(2*this.limit_<n.numChildren()&&n.isIndexed(this.index_)){r=lh.EMPTY_NODE.withIndex(this.index_);let e;e=this.reverse_?n.getReverseIteratorFrom(this.rangedFilter_.getEndPost(),this.index_):n.getIteratorFrom(this.rangedFilter_.getStartPost(),this.index_);let t=0;for(;e.hasNext()&&t<this.limit_;){var i=e.getNext();if(this.withinDirectionalStart(i)){if(!this.withinDirectionalEnd(i))break;r=r.updateImmediateChild(i.name,i.node),t++}}}else{r=n.withIndex(this.index_),r=r.updatePriority(lh.EMPTY_NODE);let e;e=this.reverse_?r.getReverseIterator(this.index_):r.getIterator(this.index_);let t=0;for(;e.hasNext();){var s=e.getNext();t<this.limit_&&this.withinDirectionalStart(s)&&this.withinDirectionalEnd(s)?t++:r=r.updateImmediateChild(s.name,lh.EMPTY_NODE)}}return this.rangedFilter_.getIndexedFilter().updateFullNode(e,r,t)}updatePriority(e,t){return e}filtersNodes(){return!0}getIndexedFilter(){return this.rangedFilter_.getIndexedFilter()}getIndex(){return this.index_}fullLimitUpdateChild_(e,t,n,r,i){let s;if(this.reverse_){const d=this.index_.getCompare();s=(e,t)=>d(t,e)}else s=this.index_.getCompare();const a=e;f(a.numChildren()===this.limit_,"");var o=new Fu(t,n),c=this.reverse_?a.getFirstChild(this.index_):a.getLastChild(this.index_),l=this.rangedFilter_.matches(o);if(a.hasChild(t)){var u=a.getImmediateChild(t);let e=r.getChildAfterChild(this.index_,c,this.reverse_);for(;null!=e&&(e.name===t||a.hasChild(e.name));)e=r.getChildAfterChild(this.index_,e,this.reverse_);var h=null==e?1:s(e,o);if(l&&!n.isEmpty()&&0<=h)return null!=i&&i.trackChildChange(yh(t,n,u)),a.updateImmediateChild(t,n);{null!=i&&i.trackChildChange(_h(t,u));const p=a.updateImmediateChild(t,lh.EMPTY_NODE);return null!=e&&this.rangedFilter_.matches(e)?(null!=i&&i.trackChildChange(vh(e.name,e.node)),p.updateImmediateChild(e.name,e.node)):p}}return!n.isEmpty()&&l&&0<=s(c,o)?(null!=i&&(i.trackChildChange(_h(c.name,c.node)),i.trackChildChange(vh(t,n))),a.updateImmediateChild(t,n).updateImmediateChild(c.name,lh.EMPTY_NODE)):e}}class Th{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_=th}hasStart(){return this.startSet_}isViewFromLeft(){return""===this.viewFrom_?this.startSet_:"l"===this.viewFrom_}getIndexStartValue(){return f(this.startSet_,"Only valid if start has been set"),this.indexStartValue_}getIndexStartName(){return f(this.startSet_,"Only valid if start has been set"),this.startNameSet_?this.indexStartName_:Vl}hasEnd(){return this.endSet_}getIndexEndValue(){return f(this.endSet_,"Only valid if end has been set"),this.indexEndValue_}getIndexEndName(){return f(this.endSet_,"Only valid if end has been set"),this.endNameSet_?this.indexEndName_:ql}hasLimit(){return this.limitSet_}hasAnchoredLimit(){return this.limitSet_&&""!==this.viewFrom_}getLimit(){return f(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_===th}copy(){const e=new Th;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 Eh(e,t,n){const r=e.copy();return r.startSet_=!0,void 0===t&&(t=null),r.indexStartValue_=t,null!=n?(r.startNameSet_=!0,r.indexStartName_=n):(r.startNameSet_=!1,r.indexStartName_=""),r}function Ch(e,t,n){const r=e.copy();return r.endSet_=!0,void 0===t&&(t=null),r.indexEndValue_=t,void 0!==n?(r.endNameSet_=!0,r.indexEndName_=n):(r.endNameSet_=!1,r.indexEndName_=""),r}function Sh(e,t){const n=e.copy();return n.index_=t,n}function kh(e){const t={};if(e.isDefault())return t;let n;var r;return n=e.index_===th?"$priority":e.index_===gh?"$value":e.index_===ju?"$key":(f(e.index_ instanceof fh,"Unrecognized index type!"),e.index_.toString()),t.orderBy=F(n),e.startSet_&&(r=e.startAfterSet_?"startAfter":"startAt",t[r]=F(e.indexStartValue_),e.startNameSet_&&(t[r]+=","+F(e.indexStartName_))),e.endSet_&&(r=e.endBeforeSet_?"endBefore":"endAt",t[r]=F(e.indexEndValue_),e.endNameSet_&&(t[r]+=","+F(e.indexEndName_))),e.limitSet_&&(e.isViewFromLeft()?t.limitToFirst=e.limit_:t.limitToLast=e.limit_),t}function Ah(t){const n={};if(t.startSet_&&(n.sp=t.indexStartValue_,t.startNameSet_&&(n.sn=t.indexStartName_),n.sin=!t.startAfterSet_),t.endSet_&&(n.ep=t.indexEndValue_,t.endNameSet_&&(n.en=t.indexEndName_),n.ein=!t.endBeforeSet_),t.limitSet_){n.l=t.limit_;let e=t.viewFrom_;""===e&&(e=t.isViewFromLeft()?"l":"r"),n.vf=e}return t.index_!==th&&(n.i=t.index_.toString()),n}class Nh extends gu{constructor(e,t,n,r){super(),this.repoInfo_=e,this.onDataUpdate_=t,this.authTokenProvider_=n,this.appCheckTokenProvider_=r,this.log_=kl("p:rest:"),this.listens_={}}reportStats(e){throw new Error("Method not implemented.")}static getListenId_(e,t){return void 0!==t?"tag$"+t:(f(e._queryParams.isDefault(),"should have a tag if it's not a default query."),e._path.toString())}listen(e,t,r,i){const s=e._path.toString();this.log_("Listen called for "+s+" "+e._queryIdentifier);const a=Nh.getListenId_(e,r),o={};this.listens_[a]=o;var n=kh(e._queryParams);this.restRequest_(s+".json",n,(t,e)=>{let n=e;if(null===(t=404===t?n=null:t)&&this.onDataUpdate_(s,n,!1,r),q(this.listens_,a)===o){let e;e=t?401===t?"permission_denied":"rest_error:"+t:"ok",i(e,null)}})}unlisten(e,t){var n=Nh.getListenId_(e,t);delete this.listens_[n]}get(e){var t=kh(e._queryParams);const r=e._path.toString(),i=new y;return this.restRequest_(r+".json",t,(e,t)=>{let n=t;null===(e=404===e?n=null:e)?(this.onDataUpdate_(r,n,!1,null),i.resolve(n)):i.reject(new Error(n))}),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);const n=(this.repoInfo_.secure?"https://":"http://")+this.repoInfo_.host+i+"?ns="+this.repoInfo_.namespace+$(s);this.log_("Sending REST request for "+n);const r=new XMLHttpRequest;r.onreadystatechange=()=>{if(a&&4===r.readyState){this.log_("REST Response for "+n+" received. status:",r.status,"response:",r.responseText);let e=null;if(200<=r.status&&r.status<300){try{e=L(r.responseText)}catch(e){Ll("Failed to parse JSON response for "+n+": "+r.responseText)}a(null,e)}else 401!==r.status&&404!==r.status&&Ll("Got unsuccessful REST response for "+n+" Status: "+r.status),a(r.status);a=null}},r.open("GET",n,!0),r.send()})}}class Rh{constructor(){this.rootNode_=lh.EMPTY_NODE}getNode(e){return this.rootNode_.getChild(e)}updateSnapshot(e,t){this.rootNode_=this.rootNode_.updateChild(e,t)}}function Ph(){return{value:null,children:new Map}}function Dh(e,t,n){var r;ku(t)?(e.value=n,e.children.clear()):null!==e.value?e.value=e.value.updateChild(t,n):(r=wu(t),e.children.has(r)||e.children.set(r,Ph()),Dh(e.children.get(r),t=Iu(t),n))}function xh(e,n,r){var i;null!==e.value?r(n,e.value):(i=(e,t)=>{xh(t,new _u(n.toString()+"/"+e),r)},e.children.forEach((e,t)=>{i(t,e)}))}class Oh{constructor(e){this.collection_=e,this.last_=null}get(){var e=this.collection_.get();const n=Object.assign({},e);return this.last_&&Bl(this.last_,(e,t)=>{n[e]=n[e]-t}),this.last_=e,n}}class Mh{constructor(e,t){this.server_=t,this.statsToReport_={},this.statsListener_=new Oh(e);var n=1e4+2e4*Math.random();$l(this.reportStats_.bind(this),Math.floor(n))}reportStats_(){var e=this.statsListener_.get();const n={};let r=!1;Bl(e,(e,t)=>{0<t&&V(this.statsToReport_,e)&&(n[e]=t,r=!0)}),r&&this.server_.reportStats(n),$l(this.reportStats_.bind(this),Math.floor(2*Math.random()*3e5))}}function Lh(){return{fromUser:!0,fromServer:!1,queryId:null,tagged:!1}}function Fh(){return{fromUser:!1,fromServer:!0,queryId:null,tagged:!1}}function Uh(e){return{fromUser:!1,fromServer:!0,queryId:e,tagged:!0}}(St=gl=gl||{})[St.OVERWRITE=0]="OVERWRITE",St[St.MERGE=1]="MERGE",St[St.ACK_USER_WRITE=2]="ACK_USER_WRITE",St[St.LISTEN_COMPLETE=3]="LISTEN_COMPLETE";class Vh{constructor(e,t,n){this.path=e,this.affectedTree=t,this.revert=n,this.type=gl.ACK_USER_WRITE,this.source=Lh()}operationForChild(e){if(ku(this.path)){if(null!=this.affectedTree.value)return f(this.affectedTree.children.isEmpty(),"affectedTree should not have overlapping affected paths."),this;var t=this.affectedTree.subtree(new _u(e));return new Vh(yu(),t,this.revert)}return f(wu(this.path)===e,"operationForChild called for unrelated child."),new Vh(Iu(this.path),this.affectedTree,this.revert)}}class qh{constructor(e,t){this.source=e,this.path=t,this.type=gl.LISTEN_COMPLETE}operationForChild(e){return ku(this.path)?new qh(this.source,yu()):new qh(this.source,Iu(this.path))}}class jh{constructor(e,t,n){this.source=e,this.path=t,this.snap=n,this.type=gl.OVERWRITE}operationForChild(e){return ku(this.path)?new jh(this.source,yu(),this.snap.getImmediateChild(e)):new jh(this.source,Iu(this.path),this.snap)}}class Bh{constructor(e,t,n){this.source=e,this.path=t,this.children=n,this.type=gl.MERGE}operationForChild(e){if(ku(this.path)){const t=this.children.subtree(new _u(e));return t.isEmpty()?null:t.value?new jh(this.source,yu(),t.value):new Bh(this.source,yu(),t)}return f(wu(this.path)===e,"Can't get a merge for a child not on the path of the operation"),new Bh(this.source,Iu(this.path),this.children)}toString(){return"Operation("+this.path+": "+this.source.toString()+" merge: "+this.children.toString()+")"}}class zh{constructor(e,t,n){this.node_=e,this.fullyInitialized_=t,this.filtered_=n}isFullyInitialized(){return this.fullyInitialized_}isFiltered(){return this.filtered_}isCompleteForPath(e){if(ku(e))return this.isFullyInitialized()&&!this.filtered_;var t=wu(e);return this.isCompleteForChild(t)}isCompleteForChild(e){return this.isFullyInitialized()&&!this.filtered_||this.node_.hasChild(e)}getNode(){return this.node_}}class Kh{constructor(e){this.query_=e,this.index_=this.query_._queryParams.getIndex()}}function $h(n,e,t,r){var i=[];const s=[];return e.forEach(e=>{var t;"child_changed"===e.type&&n.index_.indexedValueChanged(e.oldSnap,e.snapshotNode)&&s.push((t=e.childName,{type:"child_moved",snapshotNode:e.snapshotNode,childName:t}))}),Wh(n,i,"child_removed",e,r,t),Wh(n,i,"child_added",e,r,t),Wh(n,i,"child_moved",s,r,t),Wh(n,i,"child_changed",e,r,t),Wh(n,i,"value",e,r,t),i}function Wh(s,a,t,e,o,c){const n=e.filter(e=>e.type===t);n.sort((e,t)=>function(e,t,n){if(null==t.childName||null==n.childName)throw u("Should only compare child_ events.");var r=new Fu(t.childName,t.snapshotNode),i=new Fu(n.childName,n.snapshotNode);return e.index_.compare(r,i)}(s,e,t)),n.forEach(t=>{const n=(e=s,i=c,"value"===(r=t).type||"child_removed"===r.type||(r.prevName=i.getPredecessorChildName(r.childName,r.snapshotNode,e.index_)),r);var e,r,i;o.forEach(e=>{e.respondsTo(t.type)&&a.push(e.createEvent(n,s.query_))})})}function Gh(e,t){return{eventCache:e,serverCache:t}}function Hh(e,t,n,r){return Gh(new zh(t,n,r),e.serverCache)}function Qh(e,t,n,r){return Gh(e.eventCache,new zh(t,n,r))}function Yh(e){return e.eventCache.isFullyInitialized()?e.eventCache.getNode():null}function Jh(e){return e.serverCache.isFullyInitialized()?e.serverCache.getNode():null}let Xh;class Zh{constructor(e,t=(Xh=Xh||new $u(Nl),Xh)){this.value=e,this.children=t}static fromObject(e){let n=new Zh(null);return Bl(e,(e,t)=>{n=n.set(new _u(e),t)}),n}isEmpty(){return null===this.value&&this.children.isEmpty()}findRootMostMatchingPathAndValue(e,t){if(null!=this.value&&t(this.value))return{path:yu(),value:this.value};if(ku(e))return null;{var n=wu(e);const i=this.children.get(n);if(null===i)return null;var r=i.findRootMostMatchingPathAndValue(Iu(e),t);return null==r?null:{path:Su(new _u(n),r.path),value:r.value}}}findRootMostValueAndPath(e){return this.findRootMostMatchingPathAndValue(e,()=>!0)}subtree(e){if(ku(e))return this;{var t=wu(e);const n=this.children.get(t);return null!==n?n.subtree(Iu(e)):new Zh(null)}}set(e,t){if(ku(e))return new Zh(t,this.children);{var n=wu(e);const i=this.children.get(n)||new Zh(null);var r=i.set(Iu(e),t),r=this.children.insert(n,r);return new Zh(this.value,r)}}remove(t){if(ku(t))return this.children.isEmpty()?new Zh(null):new Zh(null,this.children);{var n=wu(t);const r=this.children.get(n);if(r){const i=r.remove(Iu(t));let e;return e=i.isEmpty()?this.children.remove(n):this.children.insert(n,i),null===this.value&&e.isEmpty()?new Zh(null):new Zh(this.value,e)}return this}}get(e){if(ku(e))return this.value;{var t=wu(e);const n=this.children.get(t);return n?n.get(Iu(e)):null}}setTree(t,n){if(ku(t))return n;{var r=wu(t);const i=this.children.get(r)||new Zh(null),s=i.setTree(Iu(t),n);let e;return e=s.isEmpty()?this.children.remove(r):this.children.insert(r,s),new Zh(this.value,e)}}fold(e){return this.fold_(yu(),e)}fold_(n,r){const i={};return this.children.inorderTraversal((e,t)=>{i[e]=t.fold_(Su(n,e),r)}),r(n,this.value,i)}findOnPath(e,t){return this.findOnPath_(e,yu(),t)}findOnPath_(e,t,n){var r=!!this.value&&n(t,this.value);if(r)return r;if(ku(e))return null;{r=wu(e);const i=this.children.get(r);return i?i.findOnPath_(Iu(e),Su(t,r),n):null}}foreachOnPath(e,t){return this.foreachOnPath_(e,yu(),t)}foreachOnPath_(e,t,n){if(ku(e))return this;{this.value&&n(t,this.value);var r=wu(e);const i=this.children.get(r);return i?i.foreachOnPath_(Iu(e),Su(t,r),n):new Zh(null)}}foreach(e){this.foreach_(yu(),e)}foreach_(n,r){this.children.inorderTraversal((e,t)=>{t.foreach_(Su(n,e),r)}),this.value&&r(n,this.value)}foreachChild(n){this.children.inorderTraversal((e,t)=>{t.value&&n(e,t.value)})}}class ed{constructor(e){this.writeTree_=e}static empty(){return new ed(new Zh(null))}}function td(t,n,r){if(ku(n))return new ed(new Zh(r));var i=t.writeTree_.findRootMostValueAndPath(n);if(null!=i){var s=i.path;let e=i.value;i=Au(s,n);return e=e.updateChild(i,r),new ed(t.writeTree_.set(s,e))}s=new Zh(r),s=t.writeTree_.setTree(n,s);return new ed(s)}function nd(e,n,t){let r=e;return Bl(t,(e,t)=>{r=td(r,Su(n,e),t)}),r}function rd(e,t){if(ku(t))return ed.empty();var n=e.writeTree_.setTree(t,new Zh(null));return new ed(n)}function id(e,t){return null!=sd(e,t)}function sd(e,t){var n=e.writeTree_.findRootMostValueAndPath(t);return null!=n?e.writeTree_.get(n.path).getChild(Au(n.path,t)):null}function ad(e){const n=[],t=e.writeTree_.value;return null!=t?t.isLeafNode()||t.forEachChild(th,(e,t)=>{n.push(new Fu(e,t))}):e.writeTree_.children.inorderTraversal((e,t)=>{null!=t.value&&n.push(new Fu(e,t.value))}),n}function od(e,t){if(ku(t))return e;var n=sd(e,t);return null!=n?new ed(new Zh(n)):new ed(e.writeTree_.subtree(t))}function cd(e){return e.writeTree_.isEmpty()}function ld(e,t){return function r(i,e,s){{if(null!=e.value)return s.updateChild(i,e.value);{let n=null;return e.children.inorderTraversal((e,t)=>{".priority"===e?(f(null!==t.value,"Priority writes must always be leaf nodes"),n=t.value):s=r(Su(i,e),t,s)}),s=!s.getChild(i).isEmpty()&&null!==n?s.updateChild(Su(i,".priority"),n):s}}}(yu(),e.writeTree_,t)}function ud(e,t){return Id(t,e)}function hd(t,n){var e,r=t.allWrites.findIndex(e=>e.writeId===n);f(0<=r,"removeWrite called with nonexistent writeId.");const i=t.allWrites[r];t.allWrites.splice(r,1);let s=i.visible,a=!1,o=t.allWrites.length-1;for(;s&&0<=o;){var c=t.allWrites[o];c.visible&&(o>=r&&function(e,t){{if(e.snap)return Pu(e.path,t);for(const n in e.children)if(e.children.hasOwnProperty(n)&&Pu(Su(e.path,n),t))return!0;return!1}}(c,i.path)?s=!1:Pu(i.path,c.path)&&(a=!0)),o--}return!!s&&(a?((e=t).visibleWrites=pd(e.allWrites,dd,yu()),0<e.allWrites.length?e.lastWriteId=e.allWrites[e.allWrites.length-1].writeId:e.lastWriteId=-1):i.snap?t.visibleWrites=rd(t.visibleWrites,i.path):Bl(i.children,e=>{t.visibleWrites=rd(t.visibleWrites,Su(i.path,e))}),!0)}function dd(e){return e.visible}function pd(e,t,n){let r=ed.empty();for(let s=0;s<e.length;++s){const a=e[s];if(t(a)){var i=a.path;let e;if(a.snap)Pu(n,i)?(e=Au(n,i),r=td(r,e,a.snap)):Pu(i,n)&&(e=Au(i,n),r=td(r,yu(),a.snap.getChild(e)));else{if(!a.children)throw u("WriteRecord should have .snap or .children");if(Pu(n,i))e=Au(n,i),r=nd(r,e,a.children);else if(Pu(i,n))if(e=Au(i,n),ku(e))r=nd(r,yu(),a.children);else{const o=q(a.children,wu(e));o&&(i=o.getChild(Iu(e)),r=td(r,yu(),i))}}}}return r}function fd(e,t,n,r,i){if(r||i){var s=od(e.visibleWrites,t);if(!i&&cd(s))return n;if(i||null!=n||id(s,yu()))return ld(pd(e.allWrites,function(e){return(e.visible||i)&&(!r||!~r.indexOf(e.writeId))&&(Pu(e.path,t)||Pu(t,e.path))},t),n||lh.EMPTY_NODE);return null}s=sd(e.visibleWrites,t);if(null!=s)return s;s=od(e.visibleWrites,t);return cd(s)?n:null!=n||id(s,yu())?ld(s,n||lh.EMPTY_NODE):null}function gd(e,t,n,r){return fd(e.writeTree,e.treePath,t,n,r)}function md(e,t){return function(e,t,n){let r=lh.EMPTY_NODE;const i=sd(e.visibleWrites,t);if(i)return i.isLeafNode()||i.forEachChild(th,(e,t)=>{r=r.updateImmediateChild(e,t)}),r;if(n){const s=od(e.visibleWrites,t);return n.forEachChild(th,(e,t)=>{var n=ld(od(s,new _u(e)),t);r=r.updateImmediateChild(e,n)}),ad(s).forEach(e=>{r=r.updateImmediateChild(e.name,e.node)}),r}return ad(od(e.visibleWrites,t)).forEach(e=>{r=r.updateImmediateChild(e.name,e.node)}),r}(e.writeTree,e.treePath,t)}function vd(e,t,n,r){return function(e,t,n,r,i){f(r||i,"Either existingEventSnap or existingServerSnap must exist");var s=Su(t,n);return id(e.visibleWrites,s)?null:cd(s=od(e.visibleWrites,s))?i.getChild(n):ld(s,i.getChild(n))}(e.writeTree,e.treePath,t,n,r)}function _d(e,t){return n=e.writeTree,t=Su(e.treePath,t),sd(n.visibleWrites,t);var n}function yd(e,t,n,r,i,s){return function(e,t,n,r,i,s,a){let o;var c=od(e.visibleWrites,t),l=sd(c,yu());if(null!=l)o=l;else{if(null==n)return[];o=ld(c,n)}if(o=o.withIndex(a),o.isEmpty()||o.isLeafNode())return[];{const u=[],h=a.getCompare(),d=s?o.getReverseIteratorFrom(r,a):o.getIteratorFrom(r,a);let e=d.getNext();for(;e&&u.length<i;)0!==h(e,r)&&u.push(e),e=d.getNext();return u}}(e.writeTree,e.treePath,t,n,r,i,s)}function wd(e,t,n){return r=e.writeTree,e=e.treePath,n=n,i=Su(e,t=t),null!=(s=sd(r.visibleWrites,i))?s:n.isCompleteForChild(t)?ld(od(r.visibleWrites,i),n.getNode().getImmediateChild(t)):null;var r,i,s}function bd(e,t){return Id(Su(e.treePath,t),e.writeTree)}function Id(e,t){return{treePath:e,writeTree:t}}class Td{constructor(){this.changeMap=new Map}trackChildChange(e){var t=e.type,n=e.childName;f("child_added"===t||"child_changed"===t||"child_removed"===t,"Only child changes supported for tracking"),f(".priority"!==n,"Only non-priority child changes can be tracked.");var r=this.changeMap.get(n);if(r){var i=r.type;if("child_added"===t&&"child_removed"===i)this.changeMap.set(n,yh(n,e.snapshotNode,r.snapshotNode));else if("child_removed"===t&&"child_added"===i)this.changeMap.delete(n);else if("child_removed"===t&&"child_changed"===i)this.changeMap.set(n,_h(n,r.oldSnap));else if("child_changed"===t&&"child_added"===i)this.changeMap.set(n,vh(n,e.snapshotNode));else{if("child_changed"!==t||"child_changed"!==i)throw u("Illegal combination of changes: "+e+" occurred after "+r);this.changeMap.set(n,yh(n,e.snapshotNode,r.oldSnap))}}else this.changeMap.set(n,e)}getChanges(){return Array.from(this.changeMap.values())}}const Ed=new class{getCompleteChild(e){return null}getChildAfterChild(e,t,n){return null}};class Cd{constructor(e,t,n=null){this.writes_=e,this.viewCache_=t,this.optCompleteServerCache_=n}getCompleteChild(e){const t=this.viewCache_.eventCache;if(t.isCompleteForChild(e))return t.getNode().getImmediateChild(e);var n=null!=this.optCompleteServerCache_?new zh(this.optCompleteServerCache_,!0,!1):this.viewCache_.serverCache;return wd(this.writes_,e,n)}getChildAfterChild(e,t,n){var r=null!=this.optCompleteServerCache_?this.optCompleteServerCache_:Jh(this.viewCache_),r=yd(this.writes_,r,t,1,n,e);return 0===r.length?null:r[0]}}function Sd(e,t,n,r,i){const s=new Td;let a,o;if(n.type===gl.OVERWRITE){var c=n;a=c.source.fromUser?Nd(e,t,c.path,c.snap,r,i,s):(f(c.source.fromServer,"Unknown source."),o=c.source.tagged||t.serverCache.isFiltered()&&!ku(c.path),Ad(e,t,c.path,c.snap,r,i,o,s))}else if(n.type===gl.MERGE){c=n;a=c.source.fromUser?function(r,i,s,e,a,o,c){let l=i;return e.foreach((e,t)=>{var n=Su(s,e);Rd(i,wu(n))&&(l=Nd(r,l,n,t,a,o,c))}),e.foreach((e,t)=>{var n=Su(s,e);Rd(i,wu(n))||(l=Nd(r,l,n,t,a,o,c))}),l}(e,t,c.path,c.children,r,i,s):(f(c.source.fromServer,"Unknown source."),o=c.source.tagged||t.serverCache.isFiltered(),Dd(e,t,c.path,c.children,r,i,o,s))}else if(n.type===gl.ACK_USER_WRITE){var l=n;a=l.revert?function(n,r,i,s,e,a){let o;{if(null!=_d(s,i))return r;{var c=new Cd(s,r,e);const u=r.eventCache.getNode();let t;if(ku(i)||".priority"===wu(i)){let e;e=r.serverCache.isFullyInitialized()?gd(s,Jh(r)):(l=r.serverCache.getNode(),f(l instanceof lh,"serverChildren would be complete if leaf node"),md(s,l)),e=e,t=n.filter.updateFullNode(u,e,a)}else{var l=wu(i);let e=wd(s,l,r.serverCache);null==e&&r.serverCache.isCompleteForChild(l)&&(e=u.getImmediateChild(l)),t=null!=e?n.filter.updateChild(u,l,e,Iu(i),c,a):r.eventCache.getNode().hasChild(l)?n.filter.updateChild(u,l,lh.EMPTY_NODE,Iu(i),c,a):u,t.isEmpty()&&r.serverCache.isFullyInitialized()&&(o=gd(s,Jh(r)),o.isLeafNode()&&(t=n.filter.updateFullNode(t,o,a)))}return o=r.serverCache.isFullyInitialized()||null!=_d(s,yu()),Hh(r,t,o,n.filter.filtersNodes())}}}(e,t,l.path,r,i,s):function(e,t,i,n,s,a,o){if(null!=_d(s,i))return t;const c=t.serverCache.isFiltered(),l=t.serverCache;{if(null!=n.value){if(ku(i)&&l.isFullyInitialized()||l.isCompleteForPath(i))return Ad(e,t,i,l.getNode().getChild(i),s,a,c,o);if(ku(i)){let n=new Zh(null);return l.getNode().forEachChild(ju,(e,t)=>{n=n.set(new _u(e),t)}),Dd(e,t,i,n,s,a,c,o)}return t}{let r=new Zh(null);return n.foreach((e,t)=>{var n=Su(i,e);l.isCompleteForPath(n)&&(r=r.set(e,l.getNode().getChild(n)))}),Dd(e,t,i,r,s,a,c,o)}}}(e,t,l.path,l.affectedTree,r,i,s)}else{if(n.type!==gl.LISTEN_COMPLETE)throw u("Unknown operation type: "+n.type);a=function(e,t,n,r,i){const s=t.serverCache,a=Qh(t,s.getNode(),s.isFullyInitialized()||ku(n),s.isFiltered());return kd(e,a,n,r,Ed,i)}(e,t,n.path,r,s)}l=s.getChanges();return function(e,t,n){const r=t.eventCache;if(r.isFullyInitialized()){var i=r.getNode().isLeafNode()||r.getNode().isEmpty();const s=Yh(e);(0<n.length||!e.eventCache.isFullyInitialized()||i&&!r.getNode().equals(s)||!r.getNode().getPriority().equals(s.getPriority()))&&n.push(mh(Yh(t)))}}(t,a,l),{viewCache:a,changes:l}}function kd(r,i,s,a,o,c){const l=i.eventCache;if(null!=_d(a,s))return i;{let t,n;if(ku(s)){var e;f(i.serverCache.isFullyInitialized(),"If change path is empty, we must have complete server data"),t=i.serverCache.isFiltered()?(e=md(a,(e=Jh(i))instanceof lh?e:lh.EMPTY_NODE),r.filter.updateFullNode(i.eventCache.getNode(),e,c)):(u=gd(a,Jh(i)),r.filter.updateFullNode(i.eventCache.getNode(),u,c))}else{var u=wu(s);if(".priority"===u){f(1===bu(s),"Can't have a priority with additional path components");var h=l.getNode();n=i.serverCache.getNode();var d=vd(a,s,h,n);t=null!=d?r.filter.updatePriority(h,d):l.getNode()}else{h=Iu(s);let e;e=l.isCompleteForChild(u)?(n=i.serverCache.getNode(),null!=(d=vd(a,s,l.getNode(),n))?l.getNode().getImmediateChild(u).updateChild(h,d):l.getNode().getImmediateChild(u)):wd(a,u,i.serverCache),t=null!=e?r.filter.updateChild(l.getNode(),u,e,h,o,c):l.getNode()}}return Hh(i,t,l.isFullyInitialized()||ku(s),r.filter.filtersNodes())}}function Ad(e,t,n,r,i,s,a,o){const c=t.serverCache;let l;const u=a?e.filter:e.filter.getIndexedFilter();if(ku(n))l=u.updateFullNode(c.getNode(),r,null);else if(u.filtersNodes()&&!c.isFiltered()){var h=c.getNode().updateChild(n,r);l=u.updateFullNode(c.getNode(),h,null)}else{var d=wu(n);if(!c.isCompleteForPath(n)&&1<bu(n))return t;var p=Iu(n);const f=c.getNode().getImmediateChild(d);h=f.updateChild(p,r);l=".priority"===d?u.updatePriority(c.getNode(),h):u.updateChild(c.getNode(),d,h,p,Ed,null)}p=Qh(t,l,c.isFullyInitialized()||ku(n),u.filtersNodes());return kd(e,p,n,i,new Cd(i,p,s),o)}function Nd(t,n,r,i,e,s,a){const o=n.eventCache;let c,l;const u=new Cd(e,n,s);if(ku(r))l=t.filter.updateFullNode(n.eventCache.getNode(),i,a),c=Hh(n,l,!0,t.filter.filtersNodes());else{var h=wu(r);if(".priority"===h)l=t.filter.updatePriority(n.eventCache.getNode(),i),c=Hh(n,l,o.isFullyInitialized(),o.isFiltered());else{var d=Iu(r);const p=o.getNode().getImmediateChild(h);let e;if(ku(d))e=i;else{const f=u.getCompleteChild(h);e=null!=f?".priority"===Tu(d)&&f.getChild(Cu(d)).isEmpty()?f:f.updateChild(d,i):lh.EMPTY_NODE}c=p.equals(e)?n:Hh(n,t.filter.updateChild(o.getNode(),h,e,d,u,a),o.isFullyInitialized(),t.filter.filtersNodes())}}return c}function Rd(e,t){return e.eventCache.isCompleteForChild(t)}function Pd(e,n,t){return t.foreach((e,t)=>{n=n.updateChild(e,t)}),n}function Dd(r,i,e,t,s,a,o,c){if(i.serverCache.getNode().isEmpty()&&!i.serverCache.isFullyInitialized())return i;let l=i,n;n=ku(e)?t:new Zh(null).setTree(e,t);const u=i.serverCache.getNode();return n.children.inorderTraversal((e,t)=>{var n;u.hasChild(e)&&(n=Pd(0,i.serverCache.getNode().getImmediateChild(e),t),l=Ad(r,l,new _u(e),n,s,a,o,c))}),n.children.inorderTraversal((e,t)=>{var n=!i.serverCache.isCompleteForChild(e)&&null===t.value;u.hasChild(e)||n||(n=Pd(0,i.serverCache.getNode().getImmediateChild(e),t),l=Ad(r,l,new _u(e),n,s,a,o,c))}),l}class xd{constructor(e,t){this.query_=e,this.eventRegistrations_=[];const n=this.query_._queryParams,r=new wh(n.getIndex()),i=(e=n).loadsAllData()?new wh(e.getIndex()):new(e.hasLimit()?Ih:bh)(e);this.processor_={filter:i};const s=t.serverCache,a=t.eventCache;var o=r.updateFullNode(lh.EMPTY_NODE,s.getNode(),null),c=i.updateFullNode(lh.EMPTY_NODE,a.getNode(),null),o=new zh(o,s.isFullyInitialized(),r.filtersNodes()),c=new zh(c,a.isFullyInitialized(),i.filtersNodes());this.viewCache_=Gh(c,o),this.eventGenerator_=new Kh(this.query_)}get query(){return this.query_}}function Od(e){return 0===e.eventRegistrations_.length}function Md(n,r,i){const s=[];if(i){f(null==r,"A cancel should cancel all event registrations.");const a=n.query._path;n.eventRegistrations_.forEach(e=>{var t=e.createCancelEvent(i,a);t&&s.push(t)})}if(r){let e=[];for(let t=0;t<n.eventRegistrations_.length;++t){const o=n.eventRegistrations_[t];if(o.matches(r)){if(r.hasAnyCallback()){e=e.concat(n.eventRegistrations_.slice(t+1));break}}else e.push(o)}n.eventRegistrations_=e}else n.eventRegistrations_=[];return s}function Ld(e,t,n,r){t.type===gl.MERGE&&null!==t.source.queryId&&(f(Jh(e.viewCache_),"We should always have a full cache before handling merges"),f(Yh(e.viewCache_),"Missing event cache, even though we have a server cache"));const i=e.viewCache_,s=Sd(e.processor_,i,t,n,r);return n=e.processor_,r=s.viewCache,f(r.eventCache.getNode().isIndexed(n.filter.getIndex()),"Event snap not indexed"),f(r.serverCache.getNode().isIndexed(n.filter.getIndex()),"Server snap not indexed"),f(s.viewCache.serverCache.isFullyInitialized()||!i.serverCache.isFullyInitialized(),"Once a server snap is complete, it should never go back"),e.viewCache_=s.viewCache,Fd(e,s.changes,s.viewCache.eventCache.getNode(),null)}function Fd(e,t,n,r){var i=r?[r]:e.eventRegistrations_;return $h(e.eventGenerator_,t,n,i)}let Ud;class Vd{constructor(){this.views=new Map}}function qd(t,n,r,i){var e=n.source.queryId;if(null!==e){e=t.views.get(e);return f(null!=e,"SyncTree gave us an op for an invalid query."),Ld(e,n,r,i)}{let e=[];for(const s of t.views.values())e=e.concat(Ld(s,n,r,i));return e}}function jd(e,n,r,i,s){var a=n._queryIdentifier,a=e.views.get(a);if(a)return a;{let e=gd(r,s?i:null),t=!1;t=!!e||(e=i instanceof lh?md(r,i):lh.EMPTY_NODE,!1);a=Gh(new zh(e,t,!1),new zh(i,s,!1));return new xd(n,a)}}function Bd(e,t,n,r,i,s){var a=jd(e,t,r,i,s);return e.views.has(t._queryIdentifier)||e.views.set(t._queryIdentifier,a),a.eventRegistrations_.push(n),function(e,t){const n=e.viewCache_.eventCache,r=[];if(!n.getNode().isLeafNode()){const i=n.getNode();i.forEachChild(th,(e,t)=>{r.push(vh(e,t))})}return n.isFullyInitialized()&&r.push(mh(n.getNode())),Fd(e,r,n.getNode(),t)}(a,n)}function zd(e,t,n,r){var i=t._queryIdentifier;const s=[];let a=[];var o=Hd(e);if("default"===i)for(var[c,l]of e.views.entries())a=a.concat(Md(l,n,r)),Od(l)&&(e.views.delete(c),l.query._queryParams.loadsAllData()||s.push(l.query));else{const u=e.views.get(i);u&&(a=a.concat(Md(u,n,r)),Od(u)&&(e.views.delete(i),u.query._queryParams.loadsAllData()||s.push(u.query)))}return o&&!Hd(e)&&s.push((f(Ud,"Reference.ts has not been loaded"),new Ud(t._repo,t._path))),{removed:s,events:a}}function Kd(e){const t=[];for(const n of e.views.values())n.query._queryParams.loadsAllData()||t.push(n);return t}function $d(e,t){let n=null;for(const r of e.views.values())n=n||function(e,t){const n=Jh(e.viewCache_);return n&&(e.query._queryParams.loadsAllData()||!ku(t)&&!n.getImmediateChild(wu(t)).isEmpty())?n.getChild(t):null}(r,t);return n}function Wd(e,t){const n=t._queryParams;if(n.loadsAllData())return Qd(e);var r=t._queryIdentifier;return e.views.get(r)}function Gd(e,t){return null!=Wd(e,t)}function Hd(e){return null!=Qd(e)}function Qd(e){for(const t of e.views.values())if(t.query._queryParams.loadsAllData())return t;return null}let Yd;let Jd=1;class Xd{constructor(e){this.listenProvider_=e,this.syncPointTree_=new Zh(null),this.pendingWriteTree_={visibleWrites:ed.empty(),allWrites:[],lastWriteId:-1},this.tagToQueryMap=new Map,this.queryToTagMap=new Map}}function Zd(e,t,n,r,i){var s,a,o,c;return s=e.pendingWriteTree_,a=t,o=n,c=r,r=i,f(c>s.lastWriteId,"Stacking an older write on top of newer ones"),s.allWrites.push({path:a,snap:o,writeId:c,visible:r=void 0===r?!0:r}),r&&(s.visibleWrites=td(s.visibleWrites,a,o)),s.lastWriteId=c,i?cp(e,new jh(Lh(),t,n)):[]}function ep(e,t,n,r){var i,s,a;i=e.pendingWriteTree_,s=t,a=n,r=r,f(r>i.lastWriteId,"Stacking an older merge on top of newer ones"),i.allWrites.push({path:s,children:a,writeId:r,visible:!0}),i.visibleWrites=nd(i.visibleWrites,s,a),i.lastWriteId=r;var o=Zh.fromObject(n);return cp(e,new Bh(Lh(),t,o))}function tp(e,t,n=!1){var r=function(e,t){for(let r=0;r<e.allWrites.length;r++){var n=e.allWrites[r];if(n.writeId===t)return n}return null}(e.pendingWriteTree_,t);if(hd(e.pendingWriteTree_,t)){let t=new Zh(null);return null!=r.snap?t=t.set(yu(),!0):Bl(r.children,e=>{t=t.set(new _u(e),!0)}),cp(e,new Vh(r.path,t,n))}return[]}function np(e,t,n){return cp(e,new jh(Fh(),t,n))}function rp(n,e,t,r,i=!1){var s=e._path,a=n.syncPointTree_.get(s);let o=[];if(a&&("default"===e._queryIdentifier||Gd(a,e))){var c=zd(a,e,t,r);0===a.views.size&&(n.syncPointTree_=n.syncPointTree_.remove(s));const d=c.removed;if(o=c.events,!i){a=-1!==d.findIndex(e=>e._queryParams.loadsAllData()),c=n.syncPointTree_.findOnPath(s,(e,t)=>Hd(t));if(a&&!c){const p=n.syncPointTree_.subtree(s);if(!p.isEmpty()){var l=p.fold((e,t,r)=>{if(t&&Hd(t))return[Qd(t)];{let n=[];return t&&(n=Kd(t)),Bl(r,(e,t)=>{n=n.concat(t)}),n}});for(let e=0;e<l.length;++e){var u=l[e],h=u.query,u=up(n,u);n.listenProvider_.startListening(mp(h),hp(n,h),u.hashFn,u.onComplete)}}}!c&&0<d.length&&!r&&(a?n.listenProvider_.stopListening(mp(e),null):d.forEach(e=>{var t=n.queryToTagMap.get(dp(e));n.listenProvider_.stopListening(mp(e),t)}))}!function(e,t){for(let i=0;i<t.length;++i){const s=t[i];var n,r;s._queryParams.loadsAllData()||(n=dp(s),r=e.queryToTagMap.get(n),e.queryToTagMap.delete(n),e.tagToQueryMap.delete(r))}}(n,d)}return o}function ip(e,t,n,r){var i=pp(e,r);if(null==i)return[];var s=fp(i),a=s.path,i=s.queryId,s=Au(a,t);return gp(e,a,new jh(Uh(i),s,n))}function sp(e,t,n,r=!1){const i=t._path;let s=null,a=!1;e.syncPointTree_.foreachOnPath(i,(e,t)=>{var n=Au(e,i);s=s||$d(t,n),a=a||Hd(t)});let o=e.syncPointTree_.get(i);o?(a=a||Hd(o),s=s||$d(o,yu())):(o=new Vd,e.syncPointTree_=e.syncPointTree_.set(i,o));let c;if(null!=s)c=!0;else{c=!1,s=lh.EMPTY_NODE;const p=e.syncPointTree_.subtree(i);p.foreachChild((e,t)=>{var n=$d(t,yu());n&&(s=s.updateImmediateChild(e,n))})}var l,u=Gd(o,t);u||t._queryParams.loadsAllData()||(h=dp(t),f(!e.queryToTagMap.has(h),"View does not exist, but we have a tag"),l=Jd++,e.queryToTagMap.set(h,l),e.tagToQueryMap.set(l,h));var h=ud(e.pendingWriteTree_,i);let d=Bd(o,t,n,h,s,c);return u||a||r||(u=Wd(o,t),d=d.concat(function(t,e,n){const r=e._path,i=hp(t,e),s=up(t,n),a=t.listenProvider_.startListening(mp(e),i,s.hashFn,s.onComplete),o=t.syncPointTree_.subtree(r);if(i)f(!Hd(o.value),"If we're adding a query, it shouldn't be shadowed");else{var c=o.fold((e,t,r)=>{if(!ku(e)&&t&&Hd(t))return[Qd(t).query];{let n=[];return t&&(n=n.concat(Kd(t).map(e=>e.query))),Bl(r,(e,t)=>{n=n.concat(t)}),n}});for(let e=0;e<c.length;++e){var l=c[e];t.listenProvider_.stopListening(mp(l),hp(t,l))}}return a}(e,t,u))),d}function ap(e,r,t){var n=e.pendingWriteTree_,i=e.syncPointTree_.findOnPath(r,(e,t)=>{var n=$d(t,Au(e,r));if(n)return n});return fd(n,r,i,t,!0)}function op(e,t){const r=t._path;let i=null;e.syncPointTree_.foreachOnPath(r,(e,t)=>{var n=Au(e,r);i=i||$d(t,n)});let n=e.syncPointTree_.get(r);n?i=i||$d(n,yu()):(n=new Vd,e.syncPointTree_=e.syncPointTree_.set(r,n));var s=null!=i;const a=s?new zh(i,!0,!1):null;var o=ud(e.pendingWriteTree_,t._path);return Yh(jd(n,t,o,s?a.getNode():lh.EMPTY_NODE,s).viewCache_)}function cp(e,t){return function t(n,r,i,s){{if(ku(n.path))return lp(n,r,i,s);{const a=r.get(yu());null==i&&null!=a&&(i=$d(a,yu()));let e=[];const o=wu(n.path),c=n.operationForChild(o),l=r.children.get(o);if(l&&c){const u=i?i.getImmediateChild(o):null,h=bd(s,o);e=e.concat(t(c,l,u,h))}return a&&(e=e.concat(qd(a,n,s,i))),e}}}(t,e.syncPointTree_,null,ud(e.pendingWriteTree_,yu()))}function lp(s,e,a,o){var t=e.get(yu());null==a&&null!=t&&(a=$d(t,yu()));let c=[];return e.children.inorderTraversal((e,t)=>{var n=a?a.getImmediateChild(e):null,r=bd(o,e),i=s.operationForChild(e);i&&(c=c.concat(lp(i,t,n,r)))}),t&&(c=c.concat(qd(t,s,o,a))),c}function up(i,t){const s=t.query,a=hp(i,s);return{hashFn:()=>{const e=t.viewCache_.serverCache.getNode()||lh.EMPTY_NODE;return e.hash()},onComplete:e=>{if("ok"===e)return a?function(e,t,n){if(s=pp(e,n)){var r=fp(s),i=r.path,s=r.queryId,r=Au(i,t);return gp(e,i,new qh(Uh(s),r))}return[]}(i,s._path,a):(t=i,n=s._path,cp(t,new qh(Fh(),n)));var t,n,r=function(e,t){let n="Unknown Error";"too_big"===e?n="The data requested exceeds the maximum size that can be accessed with a single request.":"permission_denied"===e?n="Client doesn't have permission to access the desired data.":"unavailable"===e&&(n="The service is unavailable");const r=new Error(e+" at "+t._path.toString()+": "+n);return r.code=e.toUpperCase(),r}(e,s);return rp(i,s,null,r)}}}function hp(e,t){var n=dp(t);return e.queryToTagMap.get(n)}function dp(e){return e._path.toString()+"$"+e._queryIdentifier}function pp(e,t){return e.tagToQueryMap.get(t)}function fp(e){var t=e.indexOf("$");return f(-1!==t&&t<e.length-1,"Bad queryKey."),{queryId:e.substr(t+1),path:new _u(e.substr(0,t))}}function gp(e,t,n){var r=e.syncPointTree_.get(t);return f(r,"Missing sync point for query tag that we're tracking"),qd(r,n,ud(e.pendingWriteTree_,t),null)}function mp(e){return e._queryParams.loadsAllData()&&!e._queryParams.isDefault()?(f(Yd,"Reference.ts has not been loaded"),new Yd(e._repo,e._path)):e}class vp{constructor(e){this.node_=e}getImmediateChild(e){var t=this.node_.getImmediateChild(e);return new vp(t)}node(){return this.node_}}class _p{constructor(e,t){this.syncTree_=e,this.path_=t}getImmediateChild(e){var t=Su(this.path_,e);return new _p(this.syncTree_,t)}node(){return ap(this.syncTree_,this.path_)}}function yp(e){return(e=e||{}).timestamp=e.timestamp||(new Date).getTime(),e}function wp(e,t,n){return e&&"object"==typeof e?(f(".sv"in e,"Unexpected leaf node or priority contents"),"string"==typeof e[".sv"]?bp(e[".sv"],t,n):"object"==typeof e[".sv"]?Ip(e[".sv"],t):void f(!1,"Unexpected server value: "+JSON.stringify(e,null,2))):e}const bp=function(e,t,n){if("timestamp"===e)return n.timestamp;f(!1,"Unexpected server value: "+e)},Ip=function(e,t,n){e.hasOwnProperty("increment")||f(!1,"Unexpected server value: "+JSON.stringify(e,null,2));var r=e.increment;"number"!=typeof r&&f(!1,"Unexpected increment value: "+r);const i=t.node();if(f(null!==i&&void 0!==i,"Expected ChildrenNode.EMPTY_NODE for nulls"),!i.isLeafNode())return r;const s=i;var a=s.getValue();return"number"!=typeof a?r:a+r},Tp=function(e,t,n,r){return Cp(t,new _p(n,e),r)},Ep=function(e,t,n){return Cp(e,new vp(t),n)};function Cp(e,r,i){var t=e.getPriority().val(),n=wp(t,r.getImmediateChild(".priority"),i);let s;if(e.isLeafNode()){const a=e;t=wp(a.getValue(),r,i);return t!==a.getValue()||n!==a.getPriority().val()?new Xu(t,ph(n)):e}{const o=e;return s=o,n!==o.getPriority().val()&&(s=s.updatePriority(new Xu(n))),o.forEachChild(th,(e,t)=>{var n=Cp(t,r.getImmediateChild(e),i);n!==t&&(s=s.updateImmediateChild(e,n))}),s}}class Sp{constructor(e="",t=null,n={children:{},childCount:0}){this.name=e,this.parent=t,this.node=n}}function kp(e,t){let n=t instanceof _u?t:new _u(t),r=e,i=wu(n);for(;null!==i;){var s=q(r.node.children,i)||{children:{},childCount:0};r=new Sp(i,r,s),n=Iu(n),i=wu(n)}return r}function Ap(e){return e.node.value}function Np(e,t){e.node.value=t,xp(e)}function Rp(e){return 0<e.node.childCount}function Pp(n,r){Bl(n.node.children,(e,t)=>{r(new Sp(e,n,t))})}function Dp(e){return new _u(null===e.parent?e.name:Dp(e.parent)+"/"+e.name)}function xp(e){var t,n,r,i;null!==e.parent&&(t=e.parent,n=e.name,r=function(e){return void 0===Ap(e)&&!Rp(e)}(e=e),i=V(t.node.children,n),r&&i?(delete t.node.children[n],t.node.childCount--,xp(t)):r||i||(t.node.children[n]=e.node,t.node.childCount++,xp(t)))}function Op(e,t,n,r){r&&void 0===t||Gp(Z(e,"value"),t,n)}function Mp(e,t,r,n){if(!n||void 0!==t){const i=Z(e,"values");if(!t||"object"!=typeof t||Array.isArray(t))throw new Error(i+" must be an object containing the children to replace.");const s=[];Bl(t,(e,t)=>{const n=new _u(e);if(Gp(i,t,Su(r,n)),".priority"===Tu(n)&&!Wp(t))throw new Error(i+"contains an invalid value for '"+n.toString()+"', which must be a valid Firebase priority (a string, finite number, server value, or null).");s.push(n)}),function(t,n){let r,i;for(r=0;r<n.length;r++){i=n[r];var s=Eu(i);for(let e=0;e<s.length;e++)if((".priority"!==s[e]||e!==s.length-1)&&!zp(s[e]))throw new Error(t+"contains an invalid key ("+s[e]+") in path "+i.toString()+'. Keys must be non-empty strings and can\'t contain ".", "#", "$", "/", "[", or "]"')}n.sort(Nu);let e=null;for(r=0;r<n.length;r++){if(i=n[r],null!==e&&Pu(e,i))throw new Error(t+"contains a path "+e.toString()+" that is ancestor of another path "+i.toString());e=i}}(i,s)}}function Lp(e,t,n){if(!n||void 0!==t){if(Ul(t))throw new Error(Z(e,"priority")+"is "+t.toString()+", but must be a valid Firebase priority (a string, finite number, server value, or null).");if(!Wp(t))throw new Error(Z(e,"priority")+"must be a valid Firebase priority (a string, finite number, server value, or null).")}}function Fp(e,t,n,r){if(!(r&&void 0===n||zp(n)))throw new Error(Z(e,t)+'was an invalid key = "'+n+'".  Firebase keys must be non-empty strings and can\'t contain ".", "#", "$", "/", "[", or "]").')}function Up(e,t,n,r){n=n&&n.replace(/^\/*\.info(\/|$)/,"/"),Hp(e,t,n,r)}function Vp(e,t){if(".info"===wu(t))throw new Error(e+" failed = Can't modify data under /.info/")}const qp=/[\[\].#$\/\u0000-\u001F\u007F]/,jp=/[\[\].#$\u0000-\u001F\u007F]/,Bp=10485760,zp=function(e){return"string"==typeof e&&0!==e.length&&!qp.test(e)},Kp=function(e){return"string"==typeof e&&0!==e.length&&!jp.test(e)},$p=function(e){return e=e&&e.replace(/^\/*\.info(\/|$)/,"/"),Kp(e)},Wp=function(e){return null===e||"string"==typeof e||"number"==typeof e&&!Ul(e)||e&&"object"==typeof e&&V(e,".sv")},Gp=function(a,e,t){const o=t instanceof _u?new Du(t,a):t;if(void 0===e)throw new Error(a+"contains undefined "+Ou(o));if("function"==typeof e)throw new Error(a+"contains a function "+Ou(o)+" with contents = "+e.toString());if(Ul(e))throw new Error(a+"contains "+e.toString()+" "+Ou(o));if("string"==typeof e&&e.length>Bp/3&&re(e)>Bp)throw new Error(a+"contains a string greater than "+Bp+" utf8 bytes "+Ou(o)+" ('"+e.substring(0,50)+"...')");if(e&&"object"==typeof e){let i=!1,s=!1;if(Bl(e,(e,t)=>{if(".value"===e)i=!0;else if(".priority"!==e&&".sv"!==e&&(s=!0,!zp(e)))throw new Error(a+" contains an invalid key ("+e+") "+Ou(o)+'.  Keys must be non-empty strings and can\'t contain ".", "#", "$", "/", "[", or "]"');var n,r;n=o,e=e,0<n.parts_.length&&(n.byteLength_+=1),n.parts_.push(e),n.byteLength_+=re(e),xu(n),Gp(a,t,o),t=o,r=t.parts_.pop(),t.byteLength_-=re(r),0<t.parts_.length&&--t.byteLength_}),i&&s)throw new Error(a+' contains ".value" child '+Ou(o)+" in addition to actual children.")}},Hp=function(e,t,n,r){if(!(r&&void 0===n||Kp(n)))throw new Error(Z(e,t)+'was an invalid path = "'+n+'". Paths must be non-empty strings and can\'t contain ".", "#", "$", "[", or "]"')},Qp=function(e,t){var n=t.path.toString();if("string"!=typeof t.repoInfo.host||0===t.repoInfo.host.length||!zp(t.repoInfo.namespace)&&"localhost"!==t.repoInfo.host.split(":")[0]||0!==n.length&&!$p(n))throw new Error(Z(e,"url")+'must be a valid firebase URL and the path can\'t contain ".", "#", "$", "[", or "]".')};class Yp{constructor(){this.eventLists_=[],this.recursionDepth_=0}}function Jp(e,t){let n=null;for(let i=0;i<t.length;i++){const s=t[i];var r=s.getPath();null===n||Ru(r,n.path)||(e.eventLists_.push(n),n=null),null===n&&(n={events:[],path:r}),n.events.push(s)}n&&e.eventLists_.push(n)}function Xp(e,t,n){Jp(e,n),ef(e,e=>Ru(e,t))}function Zp(e,t,n){Jp(e,n),ef(e,e=>Pu(e,t)||Pu(t,e))}function ef(e,t){e.recursionDepth_++;let n=!0;for(let i=0;i<e.eventLists_.length;i++){var r=e.eventLists_[i];r&&(t(r.path)?(function(e){for(let n=0;n<e.events.length;n++){const r=e.events[n];var t;null!==r&&(e.events[n]=null,t=r.getEventRunner(),Cl&&Ol("event: "+r.toString()),Ql(t))}}(e.eventLists_[i]),e.eventLists_[i]=null):n=!1)}n&&(e.eventLists_=[]),e.recursionDepth_--}const tf="repo_interrupt",nf=25;class rf{constructor(e,t,n,r){this.repoInfo_=e,this.forceRestClient_=t,this.authTokenProvider_=n,this.appCheckProvider_=r,this.dataUpdateCount=0,this.statsListener_=null,this.eventQueue_=new Yp,this.nextWriteId_=1,this.interceptServerDataCallback_=null,this.onDisconnect_=Ph(),this.transactionQueueTree_=new Sp,this.persistentConnection_=null,this.key=this.repoInfo_.toURLString()}toString(){return(this.repoInfo_.secure?"https://":"http://")+this.repoInfo_.host}}function sf(a,e,t){if(a.stats_=ou(a.repoInfo_),a.forceRestClient_||function(){const e="object"==typeof window&&window.navigator&&window.navigator.userAgent||"";return 0<=e.search(/googlebot|google webmaster tools|bingbot|yahoo! slurp|baiduspider|yandexbot|duckduckbot/i)}())a.server_=new Nh(a.repoInfo_,(e,t,n,r)=>{cf(a,e,t,n,r)},a.authTokenProvider_,a.appCheckProvider_),setTimeout(()=>lf(a,!0),0);else{if(null!=t){if("object"!=typeof t)throw new Error("Only objects are supported for option databaseAuthVariableOverride");try{F(t)}catch(e){throw new Error("Invalid authOverride provided: "+e)}}a.persistentConnection_=new Lu(a.repoInfo_,e,(e,t,n,r)=>{cf(a,e,t,n,r)},e=>{lf(a,e)},e=>{var n;n=a,Bl(e,(e,t)=>{uf(n,e,t)})},a.authTokenProvider_,a.appCheckProvider_,t),a.server_=a.persistentConnection_}var n;a.authTokenProvider_.addTokenChangeListener(e=>{a.server_.refreshAuthToken(e)}),a.appCheckProvider_.addTokenChangeListener(e=>{a.server_.refreshAppCheckToken(e.token)}),a.statsReporter_=(e=a.repoInfo_,t=()=>new Mh(a.stats_,a.server_),n=e.toString(),au[n]||(au[n]=t()),au[n]),a.infoData_=new Rh,a.infoSyncTree_=new Xd({startListening:(e,t,n,r)=>{let i=[];const s=a.infoData_.getNode(e._path);return s.isEmpty()||(i=np(a.infoSyncTree_,e._path,s),setTimeout(()=>{r("ok")},0)),i},stopListening:()=>{}}),uf(a,"connected",!1),a.serverSyncTree_=new Xd({startListening:(r,e,t,i)=>(a.server_.listen(r,t,e,(e,t)=>{var n=i(e,t);Zp(a.eventQueue_,r._path,n)}),[]),stopListening:(e,t)=>{a.server_.unlisten(e,t)}})}function af(e){const t=e.infoData_.getNode(new _u(".info/serverTimeOffset"));var n=t.val()||0;return(new Date).getTime()+n}function of(e){return yp({timestamp:af(e)})}function cf(e,t,n,r,i){e.dataUpdateCount++;var s,a,o=new _u(t);n=e.interceptServerDataCallback_?e.interceptServerDataCallback_(t,n):n;let c=[];c=i?r?(s=B(n,e=>ph(e)),function(e,t,n,r){if(o=pp(e,r)){var i=fp(o),s=i.path,a=i.queryId,o=Au(s,t),i=Zh.fromObject(n);return gp(e,s,new Bh(Uh(a),o,i))}return[]}(e.serverSyncTree_,o,s,i)):(s=ph(n),ip(e.serverSyncTree_,o,s,i)):r?(a=B(n,e=>ph(e)),t=e.serverSyncTree_,i=o,r=a,a=Zh.fromObject(r),cp(t,new Bh(Fh(),i,a))):(a=ph(n),np(e.serverSyncTree_,o,a));let l=o;0<c.length&&(l=bf(e,o)),Zp(e.eventQueue_,l,c)}function lf(e,t){uf(e,"connected",t),!1===t&&function(r){vf(r,"onDisconnectEvents");const i=of(r),s=Ph();xh(r.onDisconnect_,yu(),(e,t)=>{var n=Tp(e,t,r.serverSyncTree_,i);Dh(s,e,n)});let a=[];xh(s,yu(),(e,t)=>{a=a.concat(np(r.serverSyncTree_,e,t));var n=Cf(r,e);bf(r,n)}),r.onDisconnect_=Ph(),Zp(r.eventQueue_,yu(),a)}(e)}function uf(e,t,n){var r=new _u("/.info/"+t),i=ph(n);e.infoData_.updateSnapshot(r,i);i=np(e.infoSyncTree_,r,i);Zp(e.eventQueue_,r,i)}function hf(e){return e.nextWriteId_++}function df(r,i,e,t,s){vf(r,"set",{path:i.toString(),value:e,priority:t});var n=of(r);const a=ph(e,t);var o=ap(r.serverSyncTree_,i),n=Ep(a,o,n);const c=hf(r);n=Zd(r.serverSyncTree_,i,n,c,!0);Jp(r.eventQueue_,n),r.server_.put(i.toString(),a.val(!0),(e,t)=>{var n="ok"===e;n||Ll("set at "+i+" failed: "+e);n=tp(r.serverSyncTree_,c,!n);Zp(r.eventQueue_,i,n),_f(0,s,e,t)});n=Cf(r,i);bf(r,n),Zp(r.eventQueue_,n,[])}function pf(n,r,i){n.server_.onDisconnectCancel(r.toString(),(e,t)=>{"ok"===e&&!function e(n,t){if(ku(t))return n.value=null,n.children.clear(),!0;if(null!==n.value){if(n.value.isLeafNode())return!1;{const i=n.value;return n.value=null,i.forEachChild(th,(e,t)=>{Dh(n,new _u(e),t)}),e(n,t)}}if(0<n.children.size){var r=wu(t);return t=Iu(t),n.children.has(r)&&e(n.children.get(r),t)&&n.children.delete(r),0===n.children.size}return!0}(n.onDisconnect_,r),_f(0,i,e,t)})}function ff(n,r,e,i){const s=ph(e);n.server_.onDisconnectPut(r.toString(),s.val(!0),(e,t)=>{"ok"===e&&Dh(n.onDisconnect_,r,s),_f(0,i,e,t)})}function gf(e,t,n){let r;r=".info"===wu(t._path)?rp(e.infoSyncTree_,t,n):rp(e.serverSyncTree_,t,n),Xp(e.eventQueue_,t._path,r)}function mf(e){e.persistentConnection_&&e.persistentConnection_.interrupt(tf)}function vf(e,...t){let n="";e.persistentConnection_&&(n=e.persistentConnection_.id+":"),Ol(n,...t)}function _f(e,r,i,s){r&&Ql(()=>{if("ok"===i)r(null);else{var t=(i||"error").toUpperCase();let e=t;s&&(e+=": "+s);const n=new Error(e);n.code=t,r(n)}})}function yf(e,t,n){return ap(e.serverSyncTree_,t,n)||lh.EMPTY_NODE}function wf(t,e=t.transactionQueueTree_){if(e||Ef(t,e),Ap(e)){const n=Tf(t,e);f(0<n.length,"Sending zero length transaction queue"),n.every(e=>0===e.status)&&function(i,s,a){const e=a.map(e=>e.currentWriteId),t=yf(i,s,e);let n=t;var r=t.hash();for(let u=0;u<a.length;u++){const h=a[u];f(0===h.status,"tryToSendTransactionQueue_: items in queue should all be run."),h.status=1,h.retryCount++;var o=Au(s,h.path);n=n.updateChild(o,h.currentOutputSnapshotRaw)}const c=n.val(!0),l=s;i.server_.put(l.toString(),c,t=>{vf(i,"transaction put response",{path:l.toString(),status:t});let n=[];if("ok"===t){const r=[];for(let e=0;e<a.length;e++)a[e].status=2,n=n.concat(tp(i.serverSyncTree_,a[e].currentWriteId)),a[e].onComplete&&r.push(()=>a[e].onComplete(null,!0,a[e].currentOutputSnapshotResolved)),a[e].unwatcher();Ef(i,kp(i.transactionQueueTree_,s)),wf(i,i.transactionQueueTree_),Zp(i.eventQueue_,s,n);for(let t=0;t<r.length;t++)Ql(r[t])}else{if("datastale"===t)for(let e=0;e<a.length;e++)3===a[e].status?a[e].status=4:a[e].status=0;else{Ll("transaction at "+l.toString()+" failed: "+t);for(let e=0;e<a.length;e++)a[e].status=4,a[e].abortReason=t}bf(i,s)}},r)}(t,Dp(e),n)}else Rp(e)&&Pp(e,e=>{wf(t,e)})}function bf(e,t){var n=If(e,t),r=Dp(n);return function(i,s,a){if(0!==s.length){const l=[];let n=[];const t=s.filter(e=>0===e.status),u=t.map(e=>e.currentWriteId);for(let r=0;r<s.length;r++){const h=s[r];var o=Au(a,h.path);let e=!1,t;if(f(null!==o,"rerunTransactionsUnderNode_: relativePath should not be null."),4===h.status)e=!0,t=h.abortReason,n=n.concat(tp(i.serverSyncTree_,h.currentWriteId,!0));else if(0===h.status)if(h.retryCount>=nf)e=!0,t="maxretry",n=n.concat(tp(i.serverSyncTree_,h.currentWriteId,!0));else{const d=yf(i,h.path,u);h.currentInputSnapshot=d;var c=s[r].update(d.val());if(void 0!==c){Gp("transaction failed: Data returned ",c,h.path);let e=ph(c);"object"==typeof c&&null!=c&&V(c,".priority")||(e=e.updatePriority(d.getPriority()));o=h.currentWriteId,c=of(i),c=Ep(e,d,c);h.currentOutputSnapshotRaw=e,h.currentOutputSnapshotResolved=c,h.currentWriteId=hf(i),u.splice(u.indexOf(o),1),n=n.concat(Zd(i.serverSyncTree_,h.path,c,h.currentWriteId,h.applyLocally)),n=n.concat(tp(i.serverSyncTree_,o,!0))}else e=!0,t="nodata",n=n.concat(tp(i.serverSyncTree_,h.currentWriteId,!0))}Zp(i.eventQueue_,a,n),n=[],e&&(s[r].status=2,function(e){setTimeout(e,Math.floor(0))}(s[r].unwatcher),s[r].onComplete&&("nodata"===t?l.push(()=>s[r].onComplete(null,!1,s[r].currentInputSnapshot)):l.push(()=>s[r].onComplete(new Error(t),!1,null))))}Ef(i,i.transactionQueueTree_);for(let e=0;e<l.length;e++)Ql(l[e]);wf(i,i.transactionQueueTree_)}}(e,Tf(e,n),r),r}function If(e,t){let n,r=e.transactionQueueTree_;for(n=wu(t);null!==n&&void 0===Ap(r);)r=kp(r,n),t=Iu(t),n=wu(t);return r}function Tf(e,t){const n=[];return function t(n,e,r){const i=Ap(e);if(i)for(let e=0;e<i.length;e++)r.push(i[e]);Pp(e,e=>{t(n,e,r)})}(e,t,n),n.sort((e,t)=>e.order-t.order),n}function Ef(t,n){const r=Ap(n);if(r){let e=0;for(let t=0;t<r.length;t++)2!==r[t].status&&(r[e]=r[t],e++);r.length=e,Np(n,0<r.length?r:void 0)}Pp(n,e=>{Ef(t,e)})}function Cf(t,e){var n=Dp(If(t,e)),r=kp(t.transactionQueueTree_,e);return function(e,t,n){let r=n?e:e.parent;for(;null!==r;){if(t(r))return;r=r.parent}}(r,e=>{Sf(t,e)}),Sf(t,r),function t(e,n,r,i){r&&!i&&n(e),Pp(e,e=>{t(e,n,!0,i)}),r&&i&&n(e)}(r,e=>{Sf(t,e)}),n}function Sf(i,s){const a=Ap(s);if(a){const o=[];let e=[],t=-1;for(let n=0;n<a.length;n++)3===a[n].status||(1===a[n].status?(f(t===n-1,"All SENT items should be at beginning of queue."),t=n,a[n].status=3,a[n].abortReason="set"):(f(0===a[n].status,"Unexpected transaction status in abort"),a[n].unwatcher(),e=e.concat(tp(i.serverSyncTree_,a[n].currentWriteId,!0)),a[n].onComplete&&o.push(a[n].onComplete.bind(null,new Error("set"),!1,null))));-1===t?Np(s,void 0):a.length=t+1,Zp(i.eventQueue_,Dp(s),e);for(let r=0;r<o.length;r++)Ql(o[r])}}const kf=function(e,t){var n=Af(e),r=n.namespace;"firebase.com"===n.domain&&Ml(n.host+" is no longer supported. Please use <YOUR FIREBASE>.firebaseio.com instead"),r&&"undefined"!==r||"localhost"===n.domain||Ml("Cannot parse Firebase url. Please use https://<YOUR FIREBASE>.firebaseio.com"),n.secure||Fl();var i="ws"===n.scheme||"wss"===n.scheme;return{repoInfo:new nu(n.host,n.secure,r,i,t,"",r!==n.subdomain),path:new _u(n.pathString)}},Af=function(r){let i="",s="",a="",o="",c="",l=!0,u="https",h=443;if("string"==typeof r){let e=r.indexOf("//");0<=e&&(u=r.substring(0,e-1),r=r.substring(e+2));let t=r.indexOf("/");-1===t&&(t=r.length);let n=r.indexOf("?");-1===n&&(n=r.length),i=r.substring(0,Math.min(t,n)),t<n&&(o=function(e){let t="";var n=e.split("/");for(let r=0;r<n.length;r++)if(0<n[r].length){let e=n[r];try{e=decodeURIComponent(e.replace(/\+/g," "))}catch(e){}t+="/"+e}return t}(r.substring(t,n)));var d,p=function(e){const t={};for(const r of(e="?"===e.charAt(0)?e.substring(1):e).split("&")){var n;0!==r.length&&(2===(n=r.split("=")).length?t[decodeURIComponent(n[0])]=decodeURIComponent(n[1]):Ll(`Invalid query segment '${r}' in query '${e}'`))}return t}(r.substring(Math.min(r.length,n)));e=i.indexOf(":"),0<=e?(l="https"===u||"wss"===u,h=parseInt(i.substring(e+1),10)):e=i.length;const f=i.slice(0,e);"localhost"===f.toLowerCase()?s="localhost":f.split(".").length<=2?s=f:(d=i.indexOf("."),a=i.substring(0,d).toLowerCase(),s=i.substring(d+1),c=a),"ns"in p&&(c=p.ns)}return{host:i,port:h,domain:s,subdomain:a,secure:l,scheme:u,pathString:o,namespace:c}},Nf="-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz",Rf=function(){let s=0;const a=[];return function(e){var t=e===s;s=e;let n;const r=new Array(8);for(n=7;0<=n;n--)r[n]=Nf.charAt(e%64),e=Math.floor(e/64);f(0===e,"Cannot push at time == 0");let i=r.join("");if(t){for(n=11;0<=n&&63===a[n];n--)a[n]=0;a[n]++}else for(n=0;n<12;n++)a[n]=Math.floor(64*Math.random());for(n=0;n<12;n++)i+=Nf.charAt(a[n]);return f(20===i.length,"nextPushId: Length should be 20."),i}}();class Pf{constructor(e,t,n,r){this.eventType=e,this.eventRegistration=t,this.snapshot=n,this.prevName=r}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+":"+F(this.snapshot.exportVal())}}class Df{constructor(e,t,n){this.eventRegistration=e,this.error=t,this.path=n}getPath(){return this.path}getEventType(){return"cancel"}getEventRunner(){return this.eventRegistration.getEventRunner(this)}toString(){return this.path.toString()+":cancel"}}class xf{constructor(e,t){this.snapshotCallback=e,this.cancelCallback=t}onValue(e,t){this.snapshotCallback.call(null,e,t)}onCancel(e){return f(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 Of{constructor(e,t){this._repo=e,this._path=t}cancel(){const e=new y;return pf(this._repo,this._path,e.wrapCallback(()=>{})),e.promise}remove(){Vp("OnDisconnect.remove",this._path);const e=new y;return ff(this._repo,this._path,null,e.wrapCallback(()=>{})),e.promise}set(e){Vp("OnDisconnect.set",this._path),Op("OnDisconnect.set",e,this._path,!1);const t=new y;return ff(this._repo,this._path,e,t.wrapCallback(()=>{})),t.promise}setWithPriority(e,t){Vp("OnDisconnect.setWithPriority",this._path),Op("OnDisconnect.setWithPriority",e,this._path,!1),Lp("OnDisconnect.setWithPriority",t,!1);const n=new y;return function(n,r,e,t,i){const s=ph(e,t);n.server_.onDisconnectPut(r.toString(),s.val(!0),(e,t)=>{"ok"===e&&Dh(n.onDisconnect_,r,s),_f(0,i,e,t)})}(this._repo,this._path,e,t,n.wrapCallback(()=>{})),n.promise}update(e){Vp("OnDisconnect.update",this._path),Mp("OnDisconnect.update",e,this._path,!1);const t=new y;return function(r,i,n,s){if(j(n))return Ol("onDisconnect().update() called with empty data.  Don't do anything."),_f(0,s,"ok",void 0);r.server_.onDisconnectMerge(i.toString(),n,(e,t)=>{"ok"===e&&Bl(n,(e,t)=>{var n=ph(t);Dh(r.onDisconnect_,Su(i,e),n)}),_f(0,s,e,t)})}(this._repo,this._path,e,t.wrapCallback(()=>{})),t.promise}}class Mf{constructor(e,t,n,r){this._repo=e,this._path=t,this._queryParams=n,this._orderByCalled=r}get key(){return ku(this._path)?null:Tu(this._path)}get ref(){return new Vf(this._repo,this._path)}get _queryIdentifier(){var e=Ah(this._queryParams),e=Pl(e);return"{}"===e?"default":e}get _queryObject(){return Ah(this._queryParams)}isEqual(e){if(!((e=le(e))instanceof Mf))return!1;var t=this._repo===e._repo,n=Ru(this._path,e._path),r=this._queryIdentifier===e._queryIdentifier;return t&&n&&r}toJSON(){return this.toString()}toString(){return this._repo.toString()+function(e){let t="";for(let n=e.pieceNum_;n<e.pieces_.length;n++)""!==e.pieces_[n]&&(t+="/"+encodeURIComponent(String(e.pieces_[n])));return t||"/"}(this._path)}}function Lf(e,t){if(!0===e._orderByCalled)throw new Error(t+": You can't combine multiple orderBy calls.")}function Ff(e){let t=null,n=null;if(e.hasStart()&&(t=e.getIndexStartValue()),e.hasEnd()&&(n=e.getIndexEndValue()),e.getIndex()===ju){var r="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()!==Vl)throw new Error(r);if("string"!=typeof t)throw new Error(i)}if(e.hasEnd()){if(e.getIndexEndName()!==ql)throw new Error(r);if("string"!=typeof n)throw new Error(i)}}else if(e.getIndex()===th){if(null!=t&&!Wp(t)||null!=n&&!Wp(n))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(f(e.getIndex()instanceof fh||e.getIndex()===gh,"unknown index type."),null!=t&&"object"==typeof t||null!=n&&"object"==typeof n)throw new Error("Query: First argument passed to startAt(), startAfter(), endAt(), endBefore(), or equalTo() cannot be an object.")}function Uf(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 Vf extends Mf{constructor(e,t){super(e,t,new Th,!1)}get parent(){var e=Cu(this._path);return null===e?null:new Vf(this._repo,e)}get root(){let e=this;for(;null!==e.parent;)e=e.parent;return e}}class qf{constructor(e,t,n){this._node=e,this.ref=t,this._index=n}get priority(){return this._node.getPriority().val()}get key(){return this.ref.key}get size(){return this._node.numChildren()}child(e){var t=new _u(e),n=zf(this.ref,e);return new qf(this._node.getChild(t),n,th)}exists(){return!this._node.isEmpty()}exportVal(){return this._node.val(!0)}forEach(n){if(this._node.isLeafNode())return!1;const e=this._node;return!!e.forEachChild(this._index,(e,t)=>n(new qf(t,zf(this.ref,e),th)))}hasChild(e){var t=new _u(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 jf(e,t){return(e=le(e))._checkNotDeleted("ref"),void 0!==t?zf(e._root,t):e._root}function Bf(e,t){(e=le(e))._checkNotDeleted("refFromURL");const n=kf(t,e._repo.repoInfo_.nodeAdmin);Qp("refFromURL",n);var r=n.repoInfo;return e._repo.repoInfo_.isCustomHost()||r.host===e._repo.repoInfo_.host||Ml("refFromURL: Host name does not match the current database: (found "+r.host+" but expected "+e._repo.repoInfo_.host+")"),jf(e,n.path.toString())}function zf(e,t){return(null===wu((e=le(e))._path)?Up:Hp)("child","path",t,!1),new Vf(e._repo,Su(e._path,t))}function Kf(e,t){e=le(e),Vp("set",e._path),Op("set",t,e._path,!1);const n=new y;return df(e._repo,e._path,t,null,n.wrapCallback(()=>{})),n.promise}function $f(e,t){Mp("update",t,e._path,!1);const n=new y;return function(i,s,e,a){vf(i,"update",{path:s.toString(),value:e});let n=!0;const r=of(i),o={};if(Bl(e,(e,t)=>{n=!1,o[e]=Tp(Su(s,e),ph(t),i.serverSyncTree_,r)}),n)Ol("update() called with empty data.  Don't do anything."),_f(0,a,"ok",void 0);else{const c=hf(i);var t=ep(i.serverSyncTree_,s,o,c);Jp(i.eventQueue_,t),i.server_.merge(s.toString(),e,(e,t)=>{var n="ok"===e;n||Ll("update at "+s+" failed: "+e);var r=tp(i.serverSyncTree_,c,!n),n=0<r.length?bf(i,s):s;Zp(i.eventQueue_,n,r),_f(0,a,e,t)}),Bl(e,e=>{var t=Cf(i,Su(s,e));bf(i,t)}),Zp(i.eventQueue_,s,[])}}(e._repo,e._path,t,n.wrapCallback(()=>{})),n.promise}function Wf(t){t=le(t);var i,s,a,e=new xf(()=>{}),e=new Gf(e);return i=t._repo,s=t,a=e,(null!=(e=op(i.serverSyncTree_,s))?Promise.resolve(e):i.server_.get(s).then(e=>{var t,n=ph(e).withIndex(s._queryParams.getIndex());sp(i.serverSyncTree_,s,a,!0);let r;return r=s._queryParams.loadsAllData()?np(i.serverSyncTree_,s._path,n):(t=hp(i.serverSyncTree_,s),ip(i.serverSyncTree_,s._path,n,t)),Zp(i.eventQueue_,s._path,r),rp(i.serverSyncTree_,s,a,null,!0),n},e=>(vf(i,"get for query "+F(s)+" failed: "+e),Promise.reject(new Error(e))))).then(e=>new qf(e,new Vf(t._repo,t._path),t._queryParams.getIndex()))}class Gf{constructor(e){this.callbackContext=e}respondsTo(e){return"value"===e}createEvent(e,t){var n=t._queryParams.getIndex();return new Pf("value",this,new qf(e.snapshotNode,new Vf(t._repo,t._path),n))}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 Df(this,e,t):null}matches(e){return e instanceof Gf&&(!e.callbackContext||!this.callbackContext||e.callbackContext.matches(this.callbackContext))}hasAnyCallback(){return null!==this.callbackContext}}class Hf{constructor(e,t){this.eventType=e,this.callbackContext=t}respondsTo(e){let t="children_added"===e?"child_added":e;return t="children_removed"===t?"child_removed":t,this.eventType===t}createCancelEvent(e,t){return this.callbackContext.hasCancelCallback?new Df(this,e,t):null}createEvent(e,t){f(null!=e.childName,"Child events should have a childName.");var n=zf(new Vf(t._repo,t._path),e.childName),r=t._queryParams.getIndex();return new Pf(e.type,this,new qf(e.snapshotNode,n,r),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 Hf&&(this.eventType===e.eventType&&(!this.callbackContext||!e.callbackContext||this.callbackContext.matches(e.callbackContext)))}hasAnyCallback(){return!!this.callbackContext}}function Qf(n,e,t,r,i){let s;if("object"==typeof r&&(s=void 0,i=r),"function"==typeof r&&(s=r),i&&i.onlyOnce){const c=t;var a=(e,t)=>{gf(n._repo,n,o),c(e,t)};a.userCallback=t.userCallback,a.context=t.context,t=a}a=new xf(t,s||void 0);const o="value"===e?new Gf(a):new Hf(e,a);return function(e,t,n){let r;r=".info"===wu(t._path)?sp(e.infoSyncTree_,t,n):sp(e.serverSyncTree_,t,n),Xp(e.eventQueue_,t._path,r)}(n._repo,n,o),()=>gf(n._repo,n,o)}function Yf(e,t,n,r){return Qf(e,"value",t,n,r)}function Jf(e,t,n,r){return Qf(e,"child_added",t,n,r)}function Xf(e,t,n,r){return Qf(e,"child_changed",t,n,r)}function Zf(e,t,n,r){return Qf(e,"child_moved",t,n,r)}function eg(e,t,n,r){return Qf(e,"child_removed",t,n,r)}function tg(e,t,n){let r=null;var i=n?new xf(n):null;"value"===t?r=new Gf(i):t&&(r=new Hf(t,i)),gf(e._repo,e,r)}class ng{}class rg extends ng{constructor(e,t){super(),this._value=e,this._key=t,this.type="endAt"}_apply(e){Op("endAt",this._value,e._path,!0);var t=Ch(e._queryParams,this._value,this._key);if(Uf(t),Ff(t),e._queryParams.hasEnd())throw new Error("endAt: Starting point was already set (by another call to endAt, endBefore or equalTo).");return new Mf(e._repo,e._path,t,e._orderByCalled)}}class ig extends ng{constructor(e,t){super(),this._value=e,this._key=t,this.type="endBefore"}_apply(e){Op("endBefore",this._value,e._path,!1);var t=function(e,t,n){let r;return r=e.index_===ju||n?Ch(e,t,n):Ch(e,t,Vl),r.endBeforeSet_=!0,r}(e._queryParams,this._value,this._key);if(Uf(t),Ff(t),e._queryParams.hasEnd())throw new Error("endBefore: Starting point was already set (by another call to endAt, endBefore or equalTo).");return new Mf(e._repo,e._path,t,e._orderByCalled)}}class sg extends ng{constructor(e,t){super(),this._value=e,this._key=t,this.type="startAt"}_apply(e){Op("startAt",this._value,e._path,!0);var t=Eh(e._queryParams,this._value,this._key);if(Uf(t),Ff(t),e._queryParams.hasStart())throw new Error("startAt: Starting point was already set (by another call to startAt, startBefore or equalTo).");return new Mf(e._repo,e._path,t,e._orderByCalled)}}class ag extends ng{constructor(e,t){super(),this._value=e,this._key=t,this.type="startAfter"}_apply(e){Op("startAfter",this._value,e._path,!1);var t=function(e,t,n){let r;return r=e.index_===ju||n?Eh(e,t,n):Eh(e,t,ql),r.startAfterSet_=!0,r}(e._queryParams,this._value,this._key);if(Uf(t),Ff(t),e._queryParams.hasStart())throw new Error("startAfter: Starting point was already set (by another call to startAt, startAfter, or equalTo).");return new Mf(e._repo,e._path,t,e._orderByCalled)}}class og extends ng{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 Mf(e._repo,e._path,function(e,t){const n=e.copy();return n.limitSet_=!0,n.limit_=t,n.viewFrom_="l",n}(e._queryParams,this._limit),e._orderByCalled)}}class cg extends ng{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 Mf(e._repo,e._path,function(e,t){const n=e.copy();return n.limitSet_=!0,n.limit_=t,n.viewFrom_="r",n}(e._queryParams,this._limit),e._orderByCalled)}}class lg extends ng{constructor(e){super(),this._path=e,this.type="orderByChild"}_apply(e){Lf(e,"orderByChild");var t=new _u(this._path);if(ku(t))throw new Error("orderByChild: cannot pass in empty path. Use orderByValue() instead.");t=new fh(t),t=Sh(e._queryParams,t);return Ff(t),new Mf(e._repo,e._path,t,!0)}}class ug extends ng{constructor(){super(...arguments),this.type="orderByKey"}_apply(e){Lf(e,"orderByKey");var t=Sh(e._queryParams,ju);return Ff(t),new Mf(e._repo,e._path,t,!0)}}class hg extends ng{constructor(){super(...arguments),this.type="orderByPriority"}_apply(e){Lf(e,"orderByPriority");var t=Sh(e._queryParams,th);return Ff(t),new Mf(e._repo,e._path,t,!0)}}class dg extends ng{constructor(){super(...arguments),this.type="orderByValue"}_apply(e){Lf(e,"orderByValue");var t=Sh(e._queryParams,gh);return Ff(t),new Mf(e._repo,e._path,t,!0)}}class pg extends ng{constructor(e,t){super(),this._value=e,this._key=t,this.type="equalTo"}_apply(e){if(Op("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 rg(this._value,this._key)._apply(new sg(this._value,this._key)._apply(e))}}function fg(e,...t){let n=le(e);for(const r of t)n=r._apply(n);return n}ml=Vf,f(!Ud,"__referenceConstructor has already been defined"),Ud=ml,vl=Vf,f(!Yd,"__referenceConstructor has already been defined"),Yd=vl;const gg="FIREBASE_DATABASE_EMULATOR_HOST",mg={};let vg=!1;function _g(e,t,n,r,i){let s=r||e.options.databaseURL;void 0===s&&(e.options.projectId||Ml("Can't determine Firebase Database URL. Be sure to include  a Project ID when calling firebase.initializeApp()."),Ol("Using default host for project ",e.options.projectId),s=`${e.options.projectId}-default-rtdb.firebaseio.com`);let a=kf(s,i),o=a.repoInfo,c,l=void 0;"undefined"!=typeof process&&process.env&&(l=process.env[gg]),l?(c=!0,s=`http://${l}?ns=${o.namespace}`,a=kf(s,i),o=a.repoInfo):c=!a.repoInfo.secure;var u=i&&c?new Xl(Xl.OWNER):new Jl(e.name,e.options,t);Qp("Invalid Firebase Database URL",a),ku(a.path)||Ml("Database URL must point to the root of a Firebase Database (not including a child path).");u=function(e,t,n,r){let i=mg[t.name];i||(i={},mg[t.name]=i);var s=i[e.toURLString()];s&&Ml("Database initialized multiple times. Please make sure the format of the database URL matches with each database() call.");return s=new rf(e,vg,n,r),i[e.toURLString()]=s}(o,e,u,new Yl(e.name,n));return new yg(u,e)}class yg{constructor(e,t){this._repoInternal=e,this.app=t,this.type="database",this._instanceStarted=!1}get _repo(){return this._instanceStarted||(sf(this._repoInternal,this.app.options.appId,this.app.options.databaseAuthVariableOverride),this._instanceStarted=!0),this._repoInternal}get _root(){return this._rootInternal||(this._rootInternal=new Vf(this._repo,yu())),this._rootInternal}_delete(){return null!==this._rootInternal&&(function(e,t){const n=mg[t];n&&n[e.key]===e||Ml(`Database ${t}(${e.repoInfo_}) has already been deleted.`),mf(e),delete n[e.key]}(this._repo,this.app.name),this._repoInternal=null,this._rootInternal=null),Promise.resolve()}_checkNotDeleted(e){null===this._rootInternal&&Ml("Cannot call "+e+" on a deleted database.")}}function wg(){pu.IS_TRANSPORT_INITIALIZED&&Ll("Transport has already been initialized. Please call this function before calling ref or setting up a listener")}function bg(){wg(),lu.forceDisallow()}function Ig(){wg(),du.forceDisallow(),lu.forceAllow()}function Tg(e,t,n,r={}){(e=le(e))._checkNotDeleted("useEmulator"),e._instanceStarted&&Ml("Cannot call useEmulator() after instance has already been initialized.");var i,s=e._repoInternal;let a=void 0;s.repoInfo_.nodeAdmin?(r.mockUserToken&&Ml('mockUserToken is not supported by the Admin SDK. For client access with mock users, please use the "firebase" package instead of "firebase-admin".'),a=new Xl(Xl.OWNER)):r.mockUserToken&&(i="string"==typeof r.mockUserToken?r.mockUserToken:w(r.mockUserToken,e.app.options.projectId),a=new Xl(i)),r=s,e=t,t=n,n=a,r.repoInfo_=new nu(`${e}:${t}`,!1,r.repoInfo_.namespace,r.repoInfo_.webSocketOnly,r.repoInfo_.nodeAdmin,r.repoInfo_.persistenceKey,r.repoInfo_.includeNamespaceInQueryParams,!0),n&&(r.authTokenProvider_=n)}function Eg(e){(e=le(e))._checkNotDeleted("goOnline"),(e=e._repo).persistentConnection_&&e.persistentConnection_.resume(tf)}function Cg(e,t){xl(e,t)}const Sg={".sv":"timestamp"};class kg{constructor(e,t){this.committed=e,this.snapshot=t}toJSON(){return{committed:this.committed,snapshot:this.snapshot.toJSON()}}}function Ag(i,e,t){if(i=le(i),Vp("Reference.transaction",i._path),".length"===i.key||".keys"===i.key)throw"Reference.transaction failed: "+i.key+" is a read-only object.";var n=null===(r=null==t?void 0:t.applyLocally)||void 0===r||r;const s=new y;var r=Yf(i,()=>{});return function(t,n,e,r,i,s){vf(t,"transaction on "+n);const a={path:n,update:e,onComplete:r,status:null,order:Tl(),applyLocally:s,retryCount:0,unwatcher:i,abortReason:null,currentWriteId:null,currentInputSnapshot:null,currentOutputSnapshotRaw:null,currentOutputSnapshotResolved:null},o=yf(t,n,void 0);a.currentInputSnapshot=o;var c=a.update(o.val());if(void 0===c)a.unwatcher(),a.currentOutputSnapshotRaw=null,a.currentOutputSnapshotResolved=null,a.onComplete&&a.onComplete(null,!1,a.currentInputSnapshot);else{Gp("transaction failed: Data returned ",c,a.path),a.status=0;var l=kp(t.transactionQueueTree_,n);const u=Ap(l)||[];u.push(a),Np(l,u);let e;if("object"==typeof c&&null!==c&&V(c,".priority"))e=q(c,".priority"),f(Wp(e),"Invalid priority returned by transaction. Priority must be a valid string, finite number, server value, or null.");else{const h=ap(t.serverSyncTree_,n)||lh.EMPTY_NODE;e=h.getPriority().val()}l=of(t),c=ph(c,e),l=Ep(c,o,l);a.currentOutputSnapshotRaw=c,a.currentOutputSnapshotResolved=l,a.currentWriteId=hf(t);l=Zd(t.serverSyncTree_,n,l,a.currentWriteId,a.applyLocally);Zp(t.eventQueue_,n,l),wf(t,t.transactionQueueTree_)}}(i._repo,i._path,e,(e,t,n)=>{var r;e?s.reject(e):(r=new qf(n,new Vf(i._repo,i._path),th),s.resolve(new kg(t,r)))},r,n),s.promise}Lu.prototype.simpleListen=function(e,t){this.sendRequest("q",{p:e},t)},Lu.prototype.echo=function(e,t){this.sendRequest("echo",{d:e},t)},ul(it),Je(new ue("database",(e,{instanceIdentifier:t})=>{return _g(e.getProvider("app").getImmediate(),e.getProvider("auth-internal"),e.getProvider("app-check-internal"),t)},"PUBLIC").setMultipleInstances(!0)),ct(cl,"1.0.8",_l),ct(cl,"1.0.8","esm2017");function Ng(e){var t="FIREBASE WARNING: "+e;Rg.warn(t)}const Rg=new ye("@firebase/database-compat");class Pg{constructor(e){this._delegate=e}cancel(t){X("OnDisconnect.cancel",0,1,arguments.length),ee("OnDisconnect.cancel","onComplete",t,!0);const e=this._delegate.cancel();return t&&e.then(()=>t(null),e=>t(e)),e}remove(t){X("OnDisconnect.remove",0,1,arguments.length),ee("OnDisconnect.remove","onComplete",t,!0);const e=this._delegate.remove();return t&&e.then(()=>t(null),e=>t(e)),e}set(e,t){X("OnDisconnect.set",1,2,arguments.length),ee("OnDisconnect.set","onComplete",t,!0);const n=this._delegate.set(e);return t&&n.then(()=>t(null),e=>t(e)),n}setWithPriority(e,t,n){X("OnDisconnect.setWithPriority",2,3,arguments.length),ee("OnDisconnect.setWithPriority","onComplete",n,!0);const r=this._delegate.setWithPriority(e,t);return n&&r.then(()=>n(null),e=>n(e)),r}update(t,n){if(X("OnDisconnect.update",1,2,arguments.length),Array.isArray(t)){const r={};for(let e=0;e<t.length;++e)r[""+e]=t[e];t=r,Ng("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.")}ee("OnDisconnect.update","onComplete",n,!0);const e=this._delegate.update(t);return n&&e.then(()=>n(null),e=>n(e)),e}}class Dg{constructor(e,t){this.committed=e,this.snapshot=t}toJSON(){return X("TransactionResult.toJSON",0,1,arguments.length),{committed:this.committed,snapshot:this.snapshot.toJSON()}}}class xg{constructor(e,t){this._database=e,this._delegate=t}val(){return X("DataSnapshot.val",0,0,arguments.length),this._delegate.val()}exportVal(){return X("DataSnapshot.exportVal",0,0,arguments.length),this._delegate.exportVal()}toJSON(){return X("DataSnapshot.toJSON",0,1,arguments.length),this._delegate.toJSON()}exists(){return X("DataSnapshot.exists",0,0,arguments.length),this._delegate.exists()}child(e){return X("DataSnapshot.child",0,1,arguments.length),e=String(e),Hp("DataSnapshot.child","path",e,!1),new xg(this._database,this._delegate.child(e))}hasChild(e){return X("DataSnapshot.hasChild",1,1,arguments.length),Hp("DataSnapshot.hasChild","path",e,!1),this._delegate.hasChild(e)}getPriority(){return X("DataSnapshot.getPriority",0,0,arguments.length),this._delegate.priority}forEach(t){return X("DataSnapshot.forEach",1,1,arguments.length),ee("DataSnapshot.forEach","action",t,!1),this._delegate.forEach(e=>t(new xg(this._database,e)))}hasChildren(){return X("DataSnapshot.hasChildren",0,0,arguments.length),this._delegate.hasChildren()}get key(){return this._delegate.key}numChildren(){return X("DataSnapshot.numChildren",0,0,arguments.length),this._delegate.size}getRef(){return X("DataSnapshot.ref",0,0,arguments.length),new Mg(this._database,this._delegate.ref)}get ref(){return this.getRef()}}class Og{constructor(e,t){this.database=e,this._delegate=t}on(e,n,t,r){var i;X("Query.on",2,4,arguments.length),ee("Query.on","callback",n,!1);const s=Og.getCancelAndContextArgs_("Query.on",t,r);var a=(e,t)=>{n.call(s.context,new xg(this.database,e),t)};a.userCallback=n,a.context=s.context;var o=null===(i=s.cancel)||void 0===i?void 0:i.bind(s.context);switch(e){case"value":return Yf(this._delegate,a,o),n;case"child_added":return Jf(this._delegate,a,o),n;case"child_removed":return eg(this._delegate,a,o),n;case"child_changed":return Xf(this._delegate,a,o),n;case"child_moved":return Zf(this._delegate,a,o),n;default:throw new Error(Z("Query.on","eventType")+'must be a valid event type = "value", "child_added", "child_removed", "child_changed", or "child_moved".')}}off(e,t,n){var r;X("Query.off",0,3,arguments.length),function(e,t,n){if(!n||void 0!==t)switch(t){case"value":case"child_added":case"child_removed":case"child_changed":case"child_moved":break;default:throw new Error(Z(e,"eventType")+'must be a valid event type = "value", "child_added", "child_removed", "child_changed", or "child_moved".')}}("Query.off",e,!0),ee("Query.off","callback",t,!0),te("Query.off","context",n,!0),t?((r=()=>{}).userCallback=t,r.context=n,tg(this._delegate,e,r)):tg(this._delegate,e)}get(){return Wf(this._delegate).then(e=>new xg(this.database,e))}once(e,r,t,n){X("Query.once",1,4,arguments.length),ee("Query.once","callback",r,!0);const i=Og.getCancelAndContextArgs_("Query.once",t,n),s=new y;var a=(e,t)=>{var n=new xg(this.database,e);r&&r.call(i.context,n,t),s.resolve(n)};a.userCallback=r,a.context=i.context;var o=e=>{i.cancel&&i.cancel.call(i.context,e),s.reject(e)};switch(e){case"value":Yf(this._delegate,a,o,{onlyOnce:!0});break;case"child_added":Jf(this._delegate,a,o,{onlyOnce:!0});break;case"child_removed":eg(this._delegate,a,o,{onlyOnce:!0});break;case"child_changed":Xf(this._delegate,a,o,{onlyOnce:!0});break;case"child_moved":Zf(this._delegate,a,o,{onlyOnce:!0});break;default:throw new Error(Z("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 X("Query.limitToFirst",1,1,arguments.length),new Og(this.database,fg(this._delegate,function(e){if("number"!=typeof e||Math.floor(e)!==e||e<=0)throw new Error("limitToFirst: First argument must be a positive integer.");return new og(e)}(e)))}limitToLast(e){return X("Query.limitToLast",1,1,arguments.length),new Og(this.database,fg(this._delegate,function(e){if("number"!=typeof e||Math.floor(e)!==e||e<=0)throw new Error("limitToLast: First argument must be a positive integer.");return new cg(e)}(e)))}orderByChild(e){return X("Query.orderByChild",1,1,arguments.length),new Og(this.database,fg(this._delegate,function(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 Hp("orderByChild","path",e,!1),new lg(e)}(e)))}orderByKey(){return X("Query.orderByKey",0,0,arguments.length),new Og(this.database,fg(this._delegate,new ug))}orderByPriority(){return X("Query.orderByPriority",0,0,arguments.length),new Og(this.database,fg(this._delegate,new hg))}orderByValue(){return X("Query.orderByValue",0,0,arguments.length),new Og(this.database,fg(this._delegate,new dg))}startAt(e=null,t){return X("Query.startAt",0,2,arguments.length),new Og(this.database,fg(this._delegate,([e=null,t]=[e,t],Fp("startAt","key",t,!0),new sg(e,t))))}startAfter(e=null,t){return X("Query.startAfter",0,2,arguments.length),new Og(this.database,fg(this._delegate,(e=e,t=t,Fp("startAfter","key",t,!0),new ag(e,t))))}endAt(e=null,t){return X("Query.endAt",0,2,arguments.length),new Og(this.database,fg(this._delegate,(e=e,t=t,Fp("endAt","key",t,!0),new rg(e,t))))}endBefore(e=null,t){return X("Query.endBefore",0,2,arguments.length),new Og(this.database,fg(this._delegate,(e=e,t=t,Fp("endBefore","key",t,!0),new ig(e,t))))}equalTo(e,t){return X("Query.equalTo",1,2,arguments.length),new Og(this.database,fg(this._delegate,(e=e,t=t,Fp("equalTo","key",t,!0),new pg(e,t))))}toString(){return X("Query.toString",0,0,arguments.length),this._delegate.toString()}toJSON(){return X("Query.toJSON",0,1,arguments.length),this._delegate.toJSON()}isEqual(e){if(X("Query.isEqual",1,1,arguments.length),e instanceof Og)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,n){const r={cancel:void 0,context:void 0};if(t&&n)r.cancel=t,ee(e,"cancel",r.cancel,!0),r.context=n,te(e,"context",r.context,!0);else if(t)if("object"==typeof t&&null!==t)r.context=t;else{if("function"!=typeof t)throw new Error(Z(e,"cancelOrContext")+" must either be a cancel callback or a context object.");r.cancel=t}return r}get ref(){return new Mg(this.database,new Vf(this._delegate._repo,this._delegate._path))}}class Mg extends Og{constructor(e,t){super(e,new Mf(t._repo,t._path,new Th,!1)),this.database=e,this._delegate=t}getKey(){return X("Reference.key",0,0,arguments.length),this._delegate.key}child(e){return X("Reference.child",1,1,arguments.length),"number"==typeof e&&(e=String(e)),new Mg(this.database,zf(this._delegate,e))}getParent(){X("Reference.parent",0,0,arguments.length);var e=this._delegate.parent;return e?new Mg(this.database,e):null}getRoot(){return X("Reference.root",0,0,arguments.length),new Mg(this.database,this._delegate.root)}set(e,t){X("Reference.set",1,2,arguments.length),ee("Reference.set","onComplete",t,!0);const n=Kf(this._delegate,e);return t&&n.then(()=>t(null),e=>t(e)),n}update(t,n){if(X("Reference.update",1,2,arguments.length),Array.isArray(t)){const r={};for(let e=0;e<t.length;++e)r[""+e]=t[e];t=r,Ng("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.")}Vp("Reference.update",this._delegate._path),ee("Reference.update","onComplete",n,!0);const e=$f(this._delegate,t);return n&&e.then(()=>n(null),e=>n(e)),e}setWithPriority(e,t,n){X("Reference.setWithPriority",2,3,arguments.length),ee("Reference.setWithPriority","onComplete",n,!0);const r=function(e,t,n){if(Vp("setWithPriority",e._path),Op("setWithPriority",t,e._path,!1),Lp("setWithPriority",n,!1),".length"===e.key||".keys"===e.key)throw"setWithPriority failed: "+e.key+" is a read-only object.";const r=new y;return df(e._repo,e._path,t,n,r.wrapCallback(()=>{})),r.promise}(this._delegate,e,t);return n&&r.then(()=>n(null),e=>n(e)),r}remove(t){X("Reference.remove",0,1,arguments.length),ee("Reference.remove","onComplete",t,!0);const e=(n=this._delegate,Vp("remove",n._path),Kf(n,null));var n;return t&&e.then(()=>t(null),e=>t(e)),e}transaction(e,t,n){X("Reference.transaction",1,3,arguments.length),ee("Reference.transaction","transactionUpdate",e,!1),ee("Reference.transaction","onComplete",t,!0),function(e,t,n,r){if((!r||void 0!==n)&&"boolean"!=typeof n)throw new Error(Z(e,t)+"must be a boolean.")}("Reference.transaction","applyLocally",n,!0);const r=Ag(this._delegate,e,{applyLocally:n}).then(e=>new Dg(e.committed,new xg(this.database,e.snapshot)));return t&&r.then(e=>t(null,e.committed,e.snapshot),e=>t(e,!1,null)),r}setPriority(e,t){X("Reference.setPriority",1,2,arguments.length),ee("Reference.setPriority","onComplete",t,!0);const n=function(e,t){e=le(e),Vp("setPriority",e._path),Lp("setPriority",t,!1);const n=new y;return df(e._repo,Su(e._path,".priority"),t,null,n.wrapCallback(()=>{})),n.promise}(this._delegate,e);return t&&n.then(()=>t(null),e=>t(e)),n}push(e,t){X("Reference.push",0,2,arguments.length),ee("Reference.push","onComplete",t,!0);const n=function(e,t){e=le(e),Vp("push",e._path),Op("push",t,e._path,!0);var n=af(e._repo),n=Rf(n);const r=zf(e,n),i=zf(e,n);let s;return s=null!=t?Kf(i,t).then(()=>i):Promise.resolve(i),r.then=s.then.bind(s),r.catch=s.then.bind(s,void 0),r}(this._delegate,e),r=n.then(e=>new Mg(this.database,e));t&&r.then(()=>t(null),e=>t(e));const i=new Mg(this.database,n);return i.then=r.then.bind(r),i.catch=r.catch.bind(r,void 0),i}onDisconnect(){return Vp("Reference.onDisconnect",this._delegate._path),new Pg(new Of(this._delegate._repo,this._delegate._path))}get key(){return this.getKey()}get parent(){return this.getParent()}get root(){return this.getRoot()}}class Lg{constructor(e,t){this._delegate=e,this.app=t,this.INTERNAL={delete:()=>this._delegate._delete(),forceWebSockets:bg,forceLongPolling:Ig}}useEmulator(e,t,n={}){Tg(this._delegate,e,t,n)}ref(e){if(X("database.ref",0,1,arguments.length),e instanceof Mg){var t=Bf(this._delegate,e.toString());return new Mg(this,t)}t=jf(this._delegate,e);return new Mg(this,t)}refFromURL(e){X("database.refFromURL",1,1,arguments.length);var t=Bf(this._delegate,e);return new Mg(this,t)}goOffline(){var e;X("database.goOffline",0,0,arguments.length),(e=le(e=this._delegate))._checkNotDeleted("goOffline"),mf(e._repo)}goOnline(){return X("database.goOnline",0,0,arguments.length),Eg(this._delegate)}}Lg.ServerValue={TIMESTAMP:Sg,increment:e=>({".sv":{increment:e}})};var Fg,Ug=Object.freeze({__proto__:null,initStandalone:function({app:e,url:t,version:n,customAuthImpl:r,customAppCheckImpl:i,namespace:s,nodeAdmin:a=!1}){ul(n);var o=new pe("database-standalone");const c=new de("auth-internal",o);c.setComponent(new ue("auth-internal",()=>r,"PRIVATE"));let l=void 0;return i&&(l=new de("app-check-internal",o),l.setComponent(new ue("app-check-internal",()=>i,"PRIVATE"))),{instance:new Lg(_g(e,c,l,t,a),e),namespace:s}}});const Vg=Lg.ServerValue;(Fg=Nt).INTERNAL.registerComponent(new ue("database-compat",(e,{instanceIdentifier:t})=>{var n=e.getProvider("app-compat").getImmediate(),r=e.getProvider("database").getImmediate({identifier:t});return new Lg(r,n)},"PUBLIC").setServiceProps({Reference:Mg,Query:Og,Database:Lg,DataSnapshot:xg,enableLogging:Cg,INTERNAL:Ug,ServerValue:Vg}).setMultipleInstances(!0)),Fg.registerVersion("@firebase/database-compat","1.0.8");var qg,jg,Pt="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};!(function(){var e,t,s;function n(){this.blockSize=-1,this.blockSize=64,this.g=Array(4),this.B=Array(this.blockSize),this.o=this.h=0,this.s()}function r(){}function a(e,t,n){n=n||0;var r=Array(16);if("string"==typeof t)for(var i=0;i<16;++i)r[i]=t.charCodeAt(n++)|t.charCodeAt(n++)<<8|t.charCodeAt(n++)<<16|t.charCodeAt(n++)<<24;else for(i=0;i<16;++i)r[i]=t[n++]|t[n++]<<8|t[n++]<<16|t[n++]<<24;t=e.g[0],n=e.g[1];var i=e.g[2],s=e.g[3],a=(n=(i=(s=(t=(n=(i=(s=(t=(n=(i=(s=(t=(n=(i=(s=(t=(n=(i=(s=(t=(n=(i=(s=(t=(n=(i=(s=(t=(n=(i=(s=(t=(n=(i=(s=(t=(n=(i=(s=(t=(n=(i=(s=(t=(n=(i=(s=(t=(n=(i=(s=(t=(n=(i=(s=(t=(n=(i=(s=(t=n+((a=t+(s^n&(i^s))+r[0]+3614090360&4294967295)<<7&4294967295|a>>>25))+((a=s+(i^t&(n^i))+r[1]+3905402710&4294967295)<<12&4294967295|a>>>20))+((a=i+(n^s&(t^n))+r[2]+606105819&4294967295)<<17&4294967295|a>>>15))+((a=n+(t^i&(s^t))+r[3]+3250441966&4294967295)<<22&4294967295|a>>>10))+((a=t+(s^n&(i^s))+r[4]+4118548399&4294967295)<<7&4294967295|a>>>25))+((a=s+(i^t&(n^i))+r[5]+1200080426&4294967295)<<12&4294967295|a>>>20))+((a=i+(n^s&(t^n))+r[6]+2821735955&4294967295)<<17&4294967295|a>>>15))+((a=n+(t^i&(s^t))+r[7]+4249261313&4294967295)<<22&4294967295|a>>>10))+((a=t+(s^n&(i^s))+r[8]+1770035416&4294967295)<<7&4294967295|a>>>25))+((a=s+(i^t&(n^i))+r[9]+2336552879&4294967295)<<12&4294967295|a>>>20))+((a=i+(n^s&(t^n))+r[10]+4294925233&4294967295)<<17&4294967295|a>>>15))+((a=n+(t^i&(s^t))+r[11]+2304563134&4294967295)<<22&4294967295|a>>>10))+((a=t+(s^n&(i^s))+r[12]+1804603682&4294967295)<<7&4294967295|a>>>25))+((a=s+(i^t&(n^i))+r[13]+4254626195&4294967295)<<12&4294967295|a>>>20))+((a=i+(n^s&(t^n))+r[14]+2792965006&4294967295)<<17&4294967295|a>>>15))+((a=n+(t^i&(s^t))+r[15]+1236535329&4294967295)<<22&4294967295|a>>>10))+((a=t+(i^s&(n^i))+r[1]+4129170786&4294967295)<<5&4294967295|a>>>27))+((a=s+(n^i&(t^n))+r[6]+3225465664&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^n&(s^t))+r[11]+643717713&4294967295)<<14&4294967295|a>>>18))+((a=n+(s^t&(i^s))+r[0]+3921069994&4294967295)<<20&4294967295|a>>>12))+((a=t+(i^s&(n^i))+r[5]+3593408605&4294967295)<<5&4294967295|a>>>27))+((a=s+(n^i&(t^n))+r[10]+38016083&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^n&(s^t))+r[15]+3634488961&4294967295)<<14&4294967295|a>>>18))+((a=n+(s^t&(i^s))+r[4]+3889429448&4294967295)<<20&4294967295|a>>>12))+((a=t+(i^s&(n^i))+r[9]+568446438&4294967295)<<5&4294967295|a>>>27))+((a=s+(n^i&(t^n))+r[14]+3275163606&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^n&(s^t))+r[3]+4107603335&4294967295)<<14&4294967295|a>>>18))+((a=n+(s^t&(i^s))+r[8]+1163531501&4294967295)<<20&4294967295|a>>>12))+((a=t+(i^s&(n^i))+r[13]+2850285829&4294967295)<<5&4294967295|a>>>27))+((a=s+(n^i&(t^n))+r[2]+4243563512&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^n&(s^t))+r[7]+1735328473&4294967295)<<14&4294967295|a>>>18))+((a=n+(s^t&(i^s))+r[12]+2368359562&4294967295)<<20&4294967295|a>>>12))+((a=t+(n^i^s)+r[5]+4294588738&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^n^i)+r[8]+2272392833&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^n)+r[11]+1839030562&4294967295)<<16&4294967295|a>>>16))+((a=n+(i^s^t)+r[14]+4259657740&4294967295)<<23&4294967295|a>>>9))+((a=t+(n^i^s)+r[1]+2763975236&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^n^i)+r[4]+1272893353&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^n)+r[7]+4139469664&4294967295)<<16&4294967295|a>>>16))+((a=n+(i^s^t)+r[10]+3200236656&4294967295)<<23&4294967295|a>>>9))+((a=t+(n^i^s)+r[13]+681279174&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^n^i)+r[0]+3936430074&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^n)+r[3]+3572445317&4294967295)<<16&4294967295|a>>>16))+((a=n+(i^s^t)+r[6]+76029189&4294967295)<<23&4294967295|a>>>9))+((a=t+(n^i^s)+r[9]+3654602809&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^n^i)+r[12]+3873151461&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^n)+r[15]+530742520&4294967295)<<16&4294967295|a>>>16))+((a=n+(i^s^t)+r[2]+3299628645&4294967295)<<23&4294967295|a>>>9))+((a=t+(i^(n|~s))+r[0]+4096336452&4294967295)<<6&4294967295|a>>>26))+((a=s+(n^(t|~i))+r[7]+1126891415&4294967295)<<10&4294967295|a>>>22))+((a=i+(t^(s|~n))+r[14]+2878612391&4294967295)<<15&4294967295|a>>>17))+((a=n+(s^(i|~t))+r[5]+4237533241&4294967295)<<21&4294967295|a>>>11))+((a=t+(i^(n|~s))+r[12]+1700485571&4294967295)<<6&4294967295|a>>>26))+((a=s+(n^(t|~i))+r[3]+2399980690&4294967295)<<10&4294967295|a>>>22))+((a=i+(t^(s|~n))+r[10]+4293915773&4294967295)<<15&4294967295|a>>>17))+((a=n+(s^(i|~t))+r[1]+2240044497&4294967295)<<21&4294967295|a>>>11))+((a=t+(i^(n|~s))+r[8]+1873313359&4294967295)<<6&4294967295|a>>>26))+((a=s+(n^(t|~i))+r[15]+4264355552&4294967295)<<10&4294967295|a>>>22))+((a=i+(t^(s|~n))+r[6]+2734768916&4294967295)<<15&4294967295|a>>>17))+((a=n+(s^(i|~t))+r[13]+1309151649&4294967295)<<21&4294967295|a>>>11))+((s=(t=n+((a=t+(i^(n|~s))+r[4]+4149444226&4294967295)<<6&4294967295|a>>>26))+((a=s+(n^(t|~i))+r[11]+3174756917&4294967295)<<10&4294967295|a>>>22))^((i=s+((a=i+(t^(s|~n))+r[2]+718787259&4294967295)<<15&4294967295|a>>>17))|~t))+r[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 l(e,t){this.h=t;for(var n=[],r=!0,i=e.length-1;0<=i;i--){var s=0|e[i];r&&s==t||(n[i]=s,r=!1)}this.g=n}t=n,r.prototype=(s=function(){this.blockSize=-1}).prototype,t.D=s.prototype,t.prototype=new r,(t.prototype.constructor=t).C=function(e,t,n){for(var r=Array(arguments.length-2),i=2;i<arguments.length;i++)r[i-2]=arguments[i];return s.prototype[t].apply(e,r)},n.prototype.s=function(){this.g[0]=1732584193,this.g[1]=4023233417,this.g[2]=2562383102,this.g[3]=271733878,this.o=this.h=0},n.prototype.u=function(e,t){for(var n=(t=void 0===t?e.length:t)-this.blockSize,r=this.B,i=this.h,s=0;s<t;){if(0==i)for(;s<=n;)a(this,e,s),s+=this.blockSize;if("string"==typeof e){for(;s<t;)if(r[i++]=e.charCodeAt(s++),i==this.blockSize){a(this,r),i=0;break}}else for(;s<t;)if(r[i++]=e[s++],i==this.blockSize){a(this,r),i=0;break}}this.h=i,this.o+=t},n.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 n=8*this.o,t=e.length-8;t<e.length;++t)e[t]=255&n,n/=256;for(this.u(e),e=Array(16),t=n=0;t<4;++t)for(var r=0;r<32;r+=8)e[n++]=this.g[t]>>>r&255;return e};var i={};function o(e){return-128<=e&&e<128?(t=e,n=function(e){return new l([0|e],e<0?-1:0)},r=i,Object.prototype.hasOwnProperty.call(r,t)?r[t]:r[t]=n(t)):new l([0|e],e<0?-1:0);var t,n,r}function u(e){if(isNaN(e)||!isFinite(e))return h;if(e<0)return g(u(-e));for(var t=[],n=1,r=0;n<=e;r++)t[r]=e/n|0,n*=4294967296;return new l(t,0)}var h=o(0),c=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,n=[],r=0;r<t;r++)n[r]=~e.g[r];return new l(n,~e.h).add(c)}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 _(h,h);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 n=c,r=t;r.l(e)<=0;)n=w(n),r=w(r);for(var i=b(n,1),s=b(r,1),r=b(r,2),n=b(n,2);!p(r);){var a=s.add(r);a.l(e)<=0&&(i=i.add(n),s=a),r=b(r,1),n=b(n,1)}return t=m(e,i.j(t)),new _(i,t)}for(i=h;0<=e.l(t);){for(n=Math.max(1,Math.floor(e.m()/t.m())),r=(r=Math.ceil(Math.log(n)/Math.LN2))<=48?1:Math.pow(2,r-48),a=(s=u(n)).j(t);f(a)||0<a.l(e);)a=(s=u(n-=r)).j(t);p(s)&&(s=c),i=i.add(s),e=m(e,a)}return new _(i,e)}function w(e){for(var t=e.g.length+1,n=[],r=0;r<t;r++)n[r]=e.i(r)<<1|e.i(r-1)>>>31;return new l(n,e.h)}function b(e,t){var n=t>>5;t%=32;for(var r=e.g.length-n,i=[],s=0;s<r;s++)i[s]=0<t?e.i(s+n)>>>t|e.i(s+n+1)<<32-t:e.i(s+n);return new l(i,e.h)}(e=l.prototype).m=function(){if(f(this))return-g(this).m();for(var e=0,t=1,n=0;n<this.g.length;n++){var r=this.i(n);e+=(0<=r?r:4294967296+r)*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)),n=this,r="";;){var i=y(n,t).g,s=((0<(n=m(n,i.j(t))).g.length?n.g[0]:n.h)>>>0).toString(e);if(p(n=i))return s+r;for(;s.length<6;)s="0"+s;r=s+r}},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),n=[],r=0,i=0;i<=t;i++){var s=r+(65535&this.i(i))+(65535&e.i(i)),a=(s>>>16)+(this.i(i)>>>16)+(e.i(i)>>>16),r=a>>>16;s&=65535,a&=65535,n[i]=a<<16|s}return new l(n,-2147483648&n[n.length-1]?-1:0)},e.j=function(e){if(p(this)||p(e))return h;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,n=[],r=0;r<2*t;r++)n[r]=0;for(r=0;r<this.g.length;r++)for(var i=0;i<e.g.length;i++){var s=this.i(r)>>>16,a=65535&this.i(r),o=e.i(i)>>>16,c=65535&e.i(i);n[2*r+2*i]+=a*c,v(n,2*r+2*i),n[2*r+2*i+1]+=s*c,v(n,2*r+2*i+1),n[2*r+2*i+1]+=a*o,v(n,2*r+2*i+1),n[2*r+2*i+2]+=s*o,v(n,2*r+2*i+2)}for(r=0;r<t;r++)n[r]=n[2*r+1]<<16|n[2*r];for(r=t;r<2*t;r++)n[r]=0;return new l(n,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),n=[],r=0;r<t;r++)n[r]=this.i(r)&e.i(r);return new l(n,this.h&e.h)},e.or=function(e){for(var t=Math.max(this.g.length,e.g.length),n=[],r=0;r<t;r++)n[r]=this.i(r)|e.i(r);return new l(n,this.h|e.h)},e.xor=function(e){for(var t=Math.max(this.g.length,e.g.length),n=[],r=0;r<t;r++)n[r]=this.i(r)^e.i(r);return new l(n,this.h^e.h)},n.prototype.digest=n.prototype.v,n.prototype.reset=n.prototype.s,n.prototype.update=n.prototype.u,jg=n,l.prototype.multiply=l.prototype.j,l.prototype.modulo=l.prototype.A,l.prototype.compare=l.prototype.l,l.prototype.toNumber=l.prototype.m,l.prototype.getBits=l.prototype.i,l.fromNumber=u,l.fromString=function e(t,n){if(0==t.length)throw Error("number format error: empty string");if((n=n||10)<2||36<n)throw Error("radix out of range: "+n);if("-"==t.charAt(0))return g(e(t.substring(1),n));if(0<=t.indexOf("-"))throw Error('number format error: interior "-" character');for(var r=u(Math.pow(n,8)),i=h,s=0;s<t.length;s+=8)var a=Math.min(8,t.length-s),o=parseInt(t.substring(s,s+a),n),i=a<8?(a=u(Math.pow(n,a)),i.j(a).add(u(o))):(i=i.j(r)).add(u(o));return i},qg=l}).apply(void 0!==Pt?Pt:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{});var Bg,zg,Kg,$g,Wg,Gg,Hg,Qg,Yg,Jg,Xg,Zg="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};!(function(){var e,s="function"==typeof Object.defineProperties?Object.defineProperty:function(e,t,n){return e==Array.prototype||e==Object.prototype||(e[t]=n.value),e};var a=function(e){e=["object"==typeof globalThis&&globalThis,e,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof Zg&&Zg];for(var t=0;t<e.length;++t){var n=e[t];if(n&&n.Math==Math)return n}throw Error("Cannot find global object")}(this);!function(e,t){if(t)e:{var n=a;e=e.split(".");for(var r=0;r<e.length-1;r++){var i=e[r];if(!(i in n))break e;n=n[i]}(t=t(r=n[e=e[e.length-1]]))!=r&&null!=t&&s(n,e,{configurable:!0,writable:!0,value:t})}}("Array.prototype.values",function(e){return e||function(){return function(t,n){t instanceof String&&(t+="");var r=0,i=!1,e={next:function(){if(!i&&r<t.length){var e=r++;return{value:n(e,t[e]),done:!1}}return{done:i=!0,value:void 0}}};return e[Symbol.iterator]=function(){return e},e}(this,function(e,t){return t})}});var o=o||{},E=this||self;function c(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 l(e){var t=typeof e;return"object"==t&&null!=e||"function"==t}function r(e,t,n){return e.call.apply(e.bind,arguments)}function i(t,n,e){if(!t)throw Error();if(2<arguments.length){var r=Array.prototype.slice.call(arguments,2);return function(){var e=Array.prototype.slice.call(arguments);return Array.prototype.unshift.apply(e,r),t.apply(n,e)}}return function(){return t.apply(n,arguments)}}function m(e,t,n){return(m=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?r:i).apply(null,arguments)}function u(t){var n=Array.prototype.slice.call(arguments,1);return function(){var e=n.slice();return e.push.apply(e,arguments),t.apply(this,e)}}function t(e,s){function t(){}t.prototype=s.prototype,e.aa=s.prototype,e.prototype=new t,(e.prototype.constructor=e).Qb=function(e,t,n){for(var r=Array(arguments.length-2),i=2;i<arguments.length;i++)r[i-2]=arguments[i];return s.prototype[t].apply(e,r)}}function h(t){var n=t.length;if(0<n){const r=Array(n);for(let e=0;e<n;e++)r[e]=t[e];return r}return[]}function n(t){for(let e=1;e<arguments.length;e++){var n=arguments[e];if(c(n)){var r=t.length||0,i=n.length||0;t.length=r+i;for(let e=0;e<i;e++)t[r+e]=n[e]}else t.push(n)}}function C(e){return/^[\s\xa0]*$/.test(e)}function d(){var e=E.navigator;return(e=e&&e.userAgent)?e:""}function p(e){return p[" "](e),e}p[" "]=function(){};var f=!(-1==d().indexOf("Gecko")||-1!=d().toLowerCase().indexOf("webkit")&&-1==d().indexOf("Edge")||-1!=d().indexOf("Trident")||-1!=d().indexOf("MSIE")||-1!=d().indexOf("Edge"));function g(e,t,n){for(const r in e)t.call(n,e[r],r,e)}function v(e){const t={};for(const n in e)t[n]=e[n];return t}const _="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function y(t){let n,r;for(let i=1;i<arguments.length;i++){for(n in r=arguments[i])t[n]=r[n];for(let e=0;e<_.length;e++)n=_[e],Object.prototype.hasOwnProperty.call(r,n)&&(t[n]=r[n])}}var w=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 b,e=>e.reset());class b{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 I,T=!1,S=new class{constructor(){this.h=this.g=null}add(e,t){const n=w.get();n.set(e,t),this.h?this.h.next=n:this.g=n,this.h=n}},k=()=>{const e=E.Promise.resolve(void 0);I=()=>{e.then(A)}};var A=()=>{for(var e;e=function(){var e=S;let 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){!function(e){E.setTimeout(()=>{throw e},0)}(e)}var t=w;t.j(e),t.h<100&&(t.h++,e.next=t.g,t.g=e)}T=!1};function N(){this.s=this.s,this.C=this.C}function R(e,t){this.type=e,this.g=this.target=t,this.defaultPrevented=!1}N.prototype.s=!1,N.prototype.ma=function(){this.s||(this.s=!0,this.N())},N.prototype.N=function(){if(this.C)for(;this.C.length;)this.C.shift()()},R.prototype.h=function(){this.defaultPrevented=!0};var P=function(){if(!E.addEventListener||!Object.defineProperty)return!1;var e=!1,t=Object.defineProperty({},"passive",{get:function(){e=!0}});try{var n=()=>{};E.addEventListener("test",n,t),E.removeEventListener("test",n,t)}catch(e){}return e}();function D(e,t){if(R.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 n=this.type=e.type,r=e.changedTouches&&e.changedTouches.length?e.changedTouches[0]:null;if(this.target=e.target||e.srcElement,this.g=t,t=e.relatedTarget){if(f){e:{try{p(t.nodeName);var i=!0;break e}catch(e){}i=!1}i||(t=null)}}else"mouseover"==n?t=e.fromElement:"mouseout"==n&&(t=e.toElement);this.relatedTarget=t,r?(this.clientX=void 0!==r.clientX?r.clientX:r.pageX,this.clientY=void 0!==r.clientY?r.clientY:r.pageY,this.screenX=r.screenX||0,this.screenY=r.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:x[e.pointerType]||"",this.state=e.state,(this.i=e).defaultPrevented&&D.aa.h.call(this)}}t(D,R);var x={2:"touch",3:"pen",4:"mouse"};D.prototype.h=function(){D.aa.h.call(this);var e=this.i;e.preventDefault?e.preventDefault():e.returnValue=!1};var O="closure_listenable_"+(1e6*Math.random()|0),M=0;function L(e,t,n,r,i){this.listener=e,this.proxy=null,this.src=t,this.type=n,this.capture=!!r,this.ha=i,this.key=++M,this.da=this.fa=!1}function F(e){e.da=!0,e.listener=null,e.proxy=null,e.src=null,e.ha=null}function U(e){this.src=e,this.g={},this.h=0}function V(e,t){var n,r,i,s=t.type;s in e.g&&(n=e.g[s],(i=0<=(r=Array.prototype.indexOf.call(n,t,void 0)))&&Array.prototype.splice.call(n,r,1),i&&(F(t),0==e.g[s].length&&(delete e.g[s],e.h--)))}function q(e,t,n,r){for(var i=0;i<e.length;++i){var s=e[i];if(!s.da&&s.listener==t&&s.capture==!!n&&s.ha==r)return i}return-1}U.prototype.add=function(e,t,n,r,i){var s=e.toString();(e=this.g[s])||(e=this.g[s]=[],this.h++);var a=q(e,t,r,i);return-1<a?(t=e[a],n||(t.fa=!1)):((t=new L(t,this.src,s,!!r,i)).fa=n,e.push(t)),t};var j="closure_lm_"+(1e6*Math.random()|0),B={};function z(e,t,n,r,i){if(r&&r.once)return function e(t,n,r,i,s){if(Array.isArray(n)){for(var a=0;a<n.length;a++)e(t,n[a],r,i,s);return null}r=Y(r);return t&&t[O]?t.L(n,r,l(i)?!!i.capture:!!i,s):K(t,n,r,!0,i,s)}(e,t,n,r,i);if(Array.isArray(t)){for(var s=0;s<t.length;s++)z(e,t[s],n,r,i);return null}return n=Y(n),e&&e[O]?e.K(t,n,l(r)?!!r.capture:!!r,i):K(e,t,n,!1,r,i)}function K(e,t,n,r,i,s){if(!t)throw Error("Invalid event type");var a=l(i)?!!i.capture:!!i,o=H(e);if(o||(e[j]=o=new U(e)),(n=o.add(t,n,r,a,s)).proxy)return n;if(r=function(){const n=G;return function e(t){return n.call(e.src,e.listener,t)}}(),(n.proxy=r).src=e,r.listener=n,e.addEventListener)void 0===(i=!P?a:i)&&(i=!1),e.addEventListener(t.toString(),r,i);else if(e.attachEvent)e.attachEvent(W(t.toString()),r);else{if(!e.addListener||!e.removeListener)throw Error("addEventListener and attachEvent are unavailable.");e.addListener(r)}return n}function $(e){var t,n,r;"number"!=typeof e&&e&&!e.da&&((t=e.src)&&t[O]?V(t.i,e):(n=e.type,r=e.proxy,t.removeEventListener?t.removeEventListener(n,r,e.capture):t.detachEvent?t.detachEvent(W(n),r):t.addListener&&t.removeListener&&t.removeListener(r),(n=H(t))?(V(n,e),0==n.h&&(n.src=null,t[j]=null)):F(e)))}function W(e){return e in B?B[e]:B[e]="on"+e}function G(e,t){var n,r;return e=!!e.da||(t=new D(t,this),n=e.listener,r=e.ha||e.src,e.fa&&$(e),n.call(r,t))}function H(e){return(e=e[j])instanceof U?e:null}var Q="__closure_events_fn_"+(1e9*Math.random()>>>0);function Y(t){return"function"==typeof t?t:(t[Q]||(t[Q]=function(e){return t.handleEvent(e)}),t[Q])}function J(){N.call(this),this.i=new U(this),(this.M=this).F=null}function X(e,t){var n,r=e.F;if(r)for(n=[];r;r=r.F)n.push(r);if(e=e.M,r=t.type||t,"string"==typeof t?t=new R(t,e):t instanceof R?t.target=t.target||e:(a=t,y(t=new R(r,e),a)),a=!0,n)for(var i=n.length-1;0<=i;i--)var s=t.g=n[i],a=Z(s,r,!0,t)&&a;if(a=Z(s=t.g=e,r,!0,t)&&a,a=Z(s,r,!1,t)&&a,n)for(i=0;i<n.length;i++)a=Z(s=t.g=n[i],r,!1,t)&&a}function Z(e,t,n,r){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,c=t[s];c&&!c.da&&c.capture==n&&(a=c.listener,o=c.ha||c.src,c.fa&&V(e.i,c),i=!1!==a.call(o,r)&&i)}return i&&!r.defaultPrevented}function ee(e,t,n){if("function"==typeof e)n&&(e=m(e,n));else{if(!e||"function"!=typeof e.handleEvent)throw Error("Invalid listener argument");e=m(e.handleEvent,e)}return 2147483647<Number(t)?-1:E.setTimeout(e,t||0)}t(J,N),J.prototype[O]=!0,J.prototype.removeEventListener=function(e,t,n,r){!function e(t,n,r,i,s){if(Array.isArray(n))for(var a=0;a<n.length;a++)e(t,n[a],r,i,s);else i=l(i)?!!i.capture:!!i,r=Y(r),t&&t[O]?(t=t.i,(n=String(n).toString())in t.g&&-1<(r=q(a=t.g[n],r,i,s))&&(F(a[r]),Array.prototype.splice.call(a,r,1),0==a.length&&(delete t.g[n],t.h--))):(t=t&&H(t))&&(n=t.g[n.toString()],(r=(t=-1)<(t=n?q(n,r,i,s):t)?n[t]:null)&&$(r))}(this,e,t,n,r)},J.prototype.N=function(){if(J.aa.N.call(this),this.i){var e,t=this.i;for(e in t.g){for(var n=t.g[e],r=0;r<n.length;r++)F(n[r]);delete t.g[e],t.h--}}this.F=null},J.prototype.K=function(e,t,n,r){return this.i.add(String(e),t,!1,n,r)},J.prototype.L=function(e,t,n,r){return this.i.add(String(e),t,!0,n,r)};class te extends N{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=ee(()=>{t.g=null,t.i&&(t.i=!1,e(t))},t.l);var n=t.h;t.h=null,t.m.apply(null,n)}(this)}N(){super.N(),this.g&&(E.clearTimeout(this.g),this.g=null,this.i=!1,this.h=null)}}function ne(e){N.call(this),this.h=e,this.g={}}t(ne,N);var re=[];function ie(e){g(e.g,function(e,t){this.g.hasOwnProperty(t)&&$(e)},e),e.g={}}ne.prototype.N=function(){ne.aa.N.call(this),ie(this)},ne.prototype.handleEvent=function(){throw Error("EventHandler.handleEvent not implemented")};var se=E.JSON.stringify,ae=E.JSON.parse,oe=class{stringify(e){return E.JSON.stringify(e,void 0)}parse(e){return E.JSON.parse(e,void 0)}};function ce(){}function le(e){return e.h||(e.h=e.i())}function ue(){}ce.prototype.h=null;var he={OPEN:"a",kb:"b",Ja:"c",wb:"d"};function de(){R.call(this,"d")}function pe(){R.call(this,"c")}t(de,R),t(pe,R);var fe={},ge=null;function me(){return ge=ge||new J}function ve(e){R.call(this,fe.La,e)}function _e(){var e=me();X(e,new ve(e))}function ye(e,t){R.call(this,fe.STAT_EVENT,e),this.stat=t}function we(e){var t=me();X(t,new ye(t,e))}function be(e,t){R.call(this,fe.Ma,e),this.size=t}function Ie(e,t){if("function"!=typeof e)throw Error("Fn must not be null and must be a function");return E.setTimeout(function(){e()},t)}function Te(){this.g=!0}function Ee(e,t,n,r){e.info(function(){return"XMLHTTP TEXT ("+t+"): "+function(e,t){if(!e.g)return t;if(!t)return null;try{var n=JSON.parse(t);if(n)for(e=0;e<n.length;e++)if(Array.isArray(n[e])){var r=n[e];if(!(r.length<2)){var i=r[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(n)}catch(e){return t}}(e,n)+(r?" "+r:"")})}fe.La="serverreachability",t(ve,R),fe.STAT_EVENT="statevent",t(ye,R),fe.Ma="timingevent",t(be,R),Te.prototype.xa=function(){this.g=!1},Te.prototype.info=function(){};var Ce={NO_ERROR:0,gb:1,tb:2,sb:3,nb:4,rb:5,ub:6,Ia:7,TIMEOUT:8,xb:9},Se={lb:"complete",Hb:"success",Ja:"error",Ia:"abort",zb:"ready",Ab:"readystatechange",TIMEOUT:"timeout",vb:"incrementaldata",yb:"progress",ob:"downloadprogress",Pb:"uploadprogress"};function ke(){}function Ae(e,t,n,r){this.j=e,this.i=t,this.l=n,this.R=r||1,this.U=new ne(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 Ne}function Ne(){this.i=null,this.g="",this.h=!1}t(ke,ce),ke.prototype.g=function(){return new XMLHttpRequest},ke.prototype.i=function(){return{}};var Re=new ke,Pe={},De={};function xe(e,t,n){e.L=1,e.v=it(Ze(t)),e.m=n,e.P=!0,Oe(e,null)}function Oe(e,t){e.F=Date.now(),Le(e),e.A=Ze(e.v);var n=e.A,r=e.R;Array.isArray(r)||(r=[String(r)]),_t(n.i,"t",r),e.C=0,n=e.j.J,e.h=new Ne,e.g=sn(e.j,n?t:null,!e.m),0<e.O&&(e.M=new te(m(e.Y,e,e.g),e.O)),t=e.U;var n=e.g,r=e.ca,i="readystatechange";Array.isArray(i)||(i&&(re[0]=i.toString()),i=re);for(var a,o,c,l,u,h,s=0;s<i.length;s++){var d=z(n,i[s],r||t.handleEvent,!1,t.h||t);if(!d)break;t.g[d.key]=d}t=e.H?v(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)),_e(),a=e.i,o=e.u,c=e.A,l=e.l,u=e.R,h=e.m,a.info(function(){if(a.g)if(h)for(var e="",t=h.split("&"),n=0;n<t.length;n++){var r,i,s=t[n].split("=");1<s.length&&(r=s[0],s=s[1],e=2<=(i=r.split("_")).length&&"type"==i[1]?e+(r+"=")+s+"&":e+(r+"=redacted&"))}else e=null;else e=h;return"XMLHTTP REQ ("+l+") [attempt "+u+"]: "+o+"\n"+c+"\n"+e})}function Me(e){return e.g&&("GET"==e.u&&2!=e.L&&e.j.Ca)}function Le(e){e.S=Date.now()+e.I,Fe(e,e.I)}function Fe(e,t){if(null!=e.B)throw Error("WatchDog timer not null");e.B=Ie(m(e.ba,e),t)}function Ue(e){e.B&&(E.clearTimeout(e.B),e.B=null)}function Ve(e){0==e.j.G||e.J||Zt(e.j,e)}function qe(e){Ue(e);var t=e.M;t&&"function"==typeof t.ma&&t.ma(),e.M=null,ie(e.U),e.g&&(t=e.g,e.g=null,t.abort(),t.ma())}function je(e,t){try{var n=e.j;if(0!=n.G&&(n.g==e||We(n.h,e)))if(!e.K&&We(n.h,e)&&3==n.G){try{var r=n.Da.g.parse(t)}catch(e){r=null}if(Array.isArray(r)&&3==r.length){var i=r;if(0==i[0]){e:if(!n.u){if(n.g){if(!(n.g.F+3e3<e.F))break e;Xt(n),Bt(n)}Qt(n),we(18)}}else n.za=i[1],0<n.za-n.T&&i[2]<37500&&n.F&&0==n.v&&!n.C&&(n.C=Ie(m(n.Za,n),6e3));if($e(n.h)<=1&&n.ca){try{n.ca()}catch(e){}n.ca=void 0}}else tn(n,11)}else if(!e.K&&n.g!=e||Xt(n),!C(t))for(i=n.Da.g.parse(t),t=0;t<i.length;t++){var s=i[t];if(n.T=s[0],s=s[1],2==n.G)if("c"==s[0]){n.K=s[1],n.ia=s[2];var a=s[3];null!=a&&(n.la=a,n.j.info("VER="+n.la));var o=s[4];null!=o&&(n.Aa=o,n.j.info("SVER="+n.Aa));var c,l,u=s[5];null!=u&&"number"==typeof u&&0<u&&(r=1.5*u,n.L=r,n.j.info("backChannelRequestTimeoutMs_="+r)),r=n;const f=e.g;if(f){const g=f.g?f.g.getResponseHeader("X-Client-Wire-Protocol"):null;g&&((c=r.h).g||-1==g.indexOf("spdy")&&-1==g.indexOf("quic")&&-1==g.indexOf("h2")||(c.j=c.l,c.g=new Set,c.h&&(Ge(c,c.h),c.h=null))),!r.D||(l=f.g?f.g.getResponseHeader("X-HTTP-Session-Id"):null)&&(r.ya=l,rt(r.I,r.D,l))}n.G=3,n.l&&n.l.ua(),n.ba&&(n.R=Date.now()-e.F,n.j.info("Handshake RTT: "+n.R+"ms"));var h,d,p=e;(r=n).qa=rn(r,r.J?r.ia:null,r.W),p.K?(He(r.h,p),h=p,(d=r.L)&&(h.I=d),h.B&&(Ue(h),Le(h)),r.g=p):Ht(r),0<n.i.length&&Kt(n)}else"stop"!=s[0]&&"close"!=s[0]||tn(n,7);else 3==n.G&&("stop"==s[0]||"close"==s[0]?"stop"==s[0]?tn(n,7):jt(n):"noop"!=s[0]&&n.l&&n.l.ta(s),n.v=0)}_e()}catch(e){}}Ae.prototype.ca=function(e){e=e.target;const t=this.M;t&&3==Ft(e)?t.j():this.Y(e)},Ae.prototype.Y=function(e){try{if(e==this.g)e:{var t=Ft(this.g),n=this.g.Ba();this.g.Z();if(!(t<3)&&(3!=t||this.g&&(this.h.h||this.g.oa()||Ut(this.g)))){this.J||4!=t||7==n||_e(),Ue(this);var r=this.g.Z();this.X=r;t:if(Me(this)){var i=Ut(this.g);e="";var s=i.length,a=4==Ft(this.g);if(!this.h.i){if("undefined"==typeof TextDecoder){qe(this),Ve(this);var o="";break t}this.h.i=new E.TextDecoder}for(n=0;n<s;n++)this.h.h=!0,e+=this.h.i.decode(i[n],{stream:!(a&&n==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==r,v=this.i,_=this.u,y=this.A,w=this.l,b=this.R,I=t,T=r,v.info(function(){return"XMLHTTP RESP ("+w+") [ attempt "+b+"]: "+_+"\n"+y+"\n"+I+" "+T}),this.o){if(this.T&&!this.K){t:{if(this.g){var c,l=this.g;if((c=l.g?l.g.getResponseHeader("X-HTTP-Initial-Response"):null)&&!C(c)){var u=c;break t}}u=null}if(!(r=u)){this.o=!1,this.s=3,we(12),qe(this),Ve(this);break e}Ee(this.i,this.l,r,"Initial handshake response via X-HTTP-Initial-Response"),this.K=!0,je(this,r)}if(this.P){for(var h,d,r=!0;!this.J&&this.C<o.length;){if(f=o,m=g=void 0,g=(p=this).C,(h=-1==(m=f.indexOf("\n",g))?De:(g=Number(f.substring(g,m)),isNaN(g)?Pe:(m+=1)+g>f.length?De:(f=f.slice(m,m+g),p.C=m+g,f)))==De){4==t&&(this.s=4,we(14),r=!1),Ee(this.i,this.l,null,"[Incomplete Response]");break}if(h==Pe){this.s=4,we(15),Ee(this.i,this.l,o,"[Invalid Chunk]"),r=!1;break}Ee(this.i,this.l,h,null),je(this,h)}Me(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,we(16),r=!1),this.o=this.o&&r,r?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),Yt(d),d.M=!0,we(11))):(Ee(this.i,this.l,o,"[Invalid Chunked Response]"),qe(this),Ve(this))}else Ee(this.i,this.l,o,null),je(this,o);4==t&&qe(this),this.o&&!this.J&&(4==t?Zt(this.j,this):(this.o=!1,Le(this)))}else(function(e){const t={};e=(e.g&&2<=Ft(e)&&e.g.getAllResponseHeaders()||"").split("\r\n");for(let i=0;i<e.length;i++)if(!C(e[i])){var n=function(e){var t=1;e=e.split(":");const n=[];for(;0<t&&e.length;)n.push(e.shift()),t--;return e.length&&n.push(e.join(":")),n}(e[i]),r=n[0];if("string"==typeof(n=n[1])){n=n.trim();const s=t[r]||[];t[r]=s,s.push(n)}}!function(e,t){for(const n in e)t.call(void 0,e[n],n,e)}(t,function(e){return e.join(", ")})})(this.g),400==r&&0<o.indexOf("Unknown SID")?(this.s=3,we(12)):(this.s=0,we(13)),qe(this),Ve(this)}}}catch(e){}var p,f,g,m,v,_,y,w,b,I,T},Ae.prototype.cancel=function(){this.J=!0,qe(this)},Ae.prototype.ba=function(){this.B=null;var e,t,n=Date.now();0<=n-this.S?(e=this.i,t=this.A,e.info(function(){return"TIMEOUT: "+t}),2!=this.L&&(_e(),we(17)),qe(this),this.s=2,Ve(this)):Fe(this,this.S-n)};var Be=class{constructor(e,t){this.g=e,this.map=t}};function ze(e){this.l=e||10,e=E.PerformanceNavigationTiming?0<(e=E.performance.getEntriesByType("navigation")).length&&("hq"==e[0].nextHopProtocol||"h2"==e[0].nextHopProtocol):!!(E.chrome&&E.chrome.loadTimes&&E.chrome.loadTimes()&&E.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 Ke(e){return e.h||e.g&&e.g.size>=e.j}function $e(e){return e.h?1:e.g?e.g.size:0}function We(e,t){return e.h?e.h==t:e.g&&e.g.has(t)}function Ge(e,t){e.g?e.g.add(t):e.h=t}function He(e,t){e.h&&e.h==t?e.h=null:e.g&&e.g.has(t)&&e.g.delete(t)}function Qe(t){if(null!=t.h)return t.i.concat(t.h.D);if(null==t.g||0===t.g.size)return h(t.i);{let e=t.i;for(const n of t.g.values())e=e.concat(n.D);return e}}function Ye(e,t){if(e.forEach&&"function"==typeof e.forEach)e.forEach(t,void 0);else if(c(e)||"string"==typeof e)Array.prototype.forEach.call(e,t,void 0);else for(var n=function(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(c(e)||"string"==typeof e){var t=[];e=e.length;for(var n=0;n<e;n++)t.push(n);return t}t=[],n=0;for(const r in e)t[n++]=r;return t}}}(e),r=function(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(c(e)){for(var t=[],n=e.length,r=0;r<n;r++)t.push(e[r]);return t}for(r in t=[],n=0,e)t[n++]=e[r];return t}(e),i=r.length,s=0;s<i;s++)t.call(void 0,r[s],n&&n[s],e)}ze.prototype.cancel=function(){if(this.i=Qe(this),this.h)this.h.cancel(),this.h=null;else if(this.g&&0!==this.g.size){for(const e of this.g.values())e.cancel();this.g.clear()}};var Je=RegExp("^(?:([^:/?#.]+):)?(?://(?:([^\\\\/?#]*)@)?([^\\\\/?#]*?)(?::([0-9]+))?(?=[\\\\/?#]|$))?([^?#]+)?(?:\\?([^#]*))?(?:#([\\s\\S]*))?$");function Xe(e){var t,n;this.g=this.o=this.j="",this.s=null,this.m=this.l="",this.h=!1,e instanceof Xe?(this.h=e.h,et(this,e.j),this.o=e.o,this.g=e.g,tt(this,e.s),this.l=e.l,t=e.i,(n=new ft).i=t.i,t.g&&(n.g=new Map(t.g),n.h=t.h),nt(this,n),this.m=e.m):e&&(t=String(e).match(Je))?(this.h=!1,et(this,t[1]||"",!0),this.o=st(t[2]||""),this.g=st(t[3]||"",!0),tt(this,t[4]),this.l=st(t[5]||"",!0),nt(this,t[6]||"",!0),this.m=st(t[7]||"")):(this.h=!1,this.i=new ft(null,this.h))}function Ze(e){return new Xe(e)}function et(e,t,n){e.j=n?st(t,!0):t,e.j&&(e.j=e.j.replace(/:$/,""))}function tt(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 nt(e,t,n){var r,i;t instanceof ft?(e.i=t,r=e.i,(i=e.h)&&!r.j&&(gt(r),r.i=null,r.g.forEach(function(e,t){var n=t.toLowerCase();t!=n&&(mt(this,t),_t(this,n,e))},r)),r.j=i):(n||(t=at(t,dt)),e.i=new ft(t,e.h))}function rt(e,t,n){e.i.set(t,n)}function it(e){return rt(e,"zx",Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^Date.now()).toString(36)),e}function st(e,t){return e?t?decodeURI(e.replace(/%25/g,"%2525")):decodeURIComponent(e):""}function at(e,t,n){return"string"==typeof e?(e=encodeURI(e).replace(t,ot),e=n?e.replace(/%25([0-9a-fA-F]{2})/g,"%$1"):e):null}function ot(e){return"%"+((e=e.charCodeAt(0))>>4&15).toString(16)+(15&e).toString(16)}Xe.prototype.toString=function(){var e=[],t=this.j;t&&e.push(at(t,lt,!0),":");var n=this.g;return!n&&"file"!=t||(e.push("//"),(t=this.o)&&e.push(at(t,lt,!0),"@"),e.push(encodeURIComponent(String(n)).replace(/%25([0-9a-fA-F]{2})/g,"%$1")),null!=(n=this.s)&&e.push(":",String(n))),(n=this.l)&&(this.g&&"/"!=n.charAt(0)&&e.push("/"),e.push(at(n,"/"==n.charAt(0)?ht:ut,!0))),(n=this.i.toString())&&e.push("?",n),(n=this.m)&&e.push("#",at(n,pt)),e.join("")};var ct,lt=/[#\/\?@]/g,ut=/[#\?:]/g,ht=/[#\?]/g,dt=/[#\?@]/g,pt=/#/g;function ft(e,t){this.h=this.g=null,this.i=e||null,this.j=!!t}function gt(n){n.g||(n.g=new Map,n.h=0,n.i&&function(e,t){if(e){e=e.split("&");for(var n=0;n<e.length;n++){var r,i=e[n].indexOf("="),s=null;0<=i?(r=e[n].substring(0,i),s=e[n].substring(i+1)):r=e[n],t(r,s?decodeURIComponent(s.replace(/\+/g," ")):"")}}}(n.i,function(e,t){n.add(decodeURIComponent(e.replace(/\+/g," ")),t)}))}function mt(e,t){gt(e),t=yt(e,t),e.g.has(t)&&(e.i=null,e.h-=e.g.get(t).length,e.g.delete(t))}function vt(e,t){return gt(e),t=yt(e,t),e.g.has(t)}function _t(e,t,n){mt(e,t),0<n.length&&(e.i=null,e.g.set(yt(e,t),h(n)),e.h+=n.length)}function yt(e,t){return t=String(t),t=e.j?t.toLowerCase():t}function wt(e,t,n,r,i){try{i&&(i.onload=null,i.onerror=null,i.onabort=null,i.ontimeout=null),r(n)}catch(e){}}function bt(){this.g=new oe}function It(e){this.l=e.Ub||null,this.j=e.eb||!1}function Tt(e,t){J.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 Et(e){e.j.read().then(e.Pa.bind(e)).catch(e.ga.bind(e))}function Ct(e){e.readyState=4,e.l=null,e.j=null,e.v=null,St(e)}function St(e){e.onreadystatechange&&e.onreadystatechange.call(e)}function kt(e){let n="";return g(e,function(e,t){n+=t,n+=":",n+=e,n+="\r\n"}),n}function At(e,t,n){e:{for(r in n){var r=!1;break e}r=!0}r||(n=kt(n),"string"==typeof e?null!=n&&encodeURIComponent(String(n)):rt(e,t,n))}function Nt(e){J.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=ft.prototype).add=function(e,t){gt(this),this.i=null,e=yt(this,e);var n=this.g.get(e);return n||this.g.set(e,n=[]),n.push(t),this.h+=1,this},e.forEach=function(n,r){gt(this),this.g.forEach(function(e,t){e.forEach(function(e){n.call(r,e,t,this)},this)},this)},e.na=function(){gt(this);const t=Array.from(this.g.values()),n=Array.from(this.g.keys()),r=[];for(let s=0;s<n.length;s++){var i=t[s];for(let e=0;e<i.length;e++)r.push(n[s])}return r},e.V=function(t){gt(this);let n=[];if("string"==typeof t)vt(this,t)&&(n=n.concat(this.g.get(yt(this,t))));else{t=Array.from(this.g.values());for(let e=0;e<t.length;e++)n=n.concat(t[e])}return n},e.set=function(e,t){return gt(this),this.i=null,vt(this,e=yt(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"";const e=[],t=Array.from(this.g.keys());for(var n=0;n<t.length;n++)for(var r=t[n],i=encodeURIComponent(String(r)),s=this.V(r),r=0;r<s.length;r++){var a=i;""!==s[r]&&(a+="="+encodeURIComponent(String(s[r]))),e.push(a)}return this.i=e.join("&")},t(It,ce),It.prototype.g=function(){return new Tt(this.l,this.j)},It.prototype.i=(ct={},function(){return ct}),t(Tt,J),(e=Tt.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,St(this)},e.send=function(e){if(1!=this.readyState)throw this.abort(),Error("need to call open() first. ");this.g=!0;const t={headers:this.u,method:this.B,credentials:this.m,cache:void 0};e&&(t.body=e),(this.D||E).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,Ct(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,St(this)),this.g&&(this.readyState=3,St(this),this.g)))if("arraybuffer"===this.responseType)e.arrayBuffer().then(this.Qa.bind(this),this.ga.bind(this));else if(void 0!==E.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;Et(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?Ct:St)(this),3==this.readyState&&Et(this))},e.Ra=function(e){this.g&&(this.response=this.responseText=e,Ct(this))},e.Qa=function(e){this.g&&(this.response=e,Ct(this))},e.ga=function(){this.g&&Ct(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"";const e=[],t=this.h.entries();for(var n=t.next();!n.done;)n=n.value,e.push(n[0]+": "+n[1]),n=t.next();return e.join("\r\n")},Object.defineProperty(Tt.prototype,"withCredentials",{get:function(){return"include"===this.m},set:function(e){this.m=e?"include":"same-origin"}}),t(Nt,J);var Rt=/^https?$/i,Pt=["POST","PUT"];function Dt(e,t){e.h=!1,e.g&&(e.j=!0,e.g.abort(),e.j=!1),e.l=t,e.m=5,xt(e),Mt(e)}function xt(e){e.A||(e.A=!0,X(e,"complete"),X(e,"error"))}function Ot(e){if(e.h&&void 0!==o&&(!e.v[1]||4!=Ft(e)||2!=e.Z()))if(e.u&&4==Ft(e))ee(e.Ea,0,e);else if(X(e,"readystatechange"),4==Ft(e)){e.h=!1;try{var t,n,r,i=e.Z();e:switch(i){case 200:case 201:case 202:case 204:case 206:case 304:case 1223:var s=!0;break e;default:s=!1}if((t=s)||((n=0===i)&&(!(r=String(e.D).match(Je)[1]||null)&&E.self&&E.self.location&&(r=E.self.location.protocol.slice(0,-1)),n=!Rt.test(r?r.toLowerCase():"")),t=n),t)X(e,"complete"),X(e,"success");else{e.m=6;try{var a=2<Ft(e)?e.g.statusText:""}catch(e){a=""}e.l=a+" ["+e.Z()+"]",xt(e)}}finally{Mt(e)}}}function Mt(e,t){if(e.g){Lt(e);const n=e.g,r=e.v[0]?()=>{}:null;e.g=null,e.v=null,t||X(e,"ready");try{n.onreadystatechange=r}catch(e){}}}function Lt(e){e.I&&(E.clearTimeout(e.I),e.I=null)}function Ft(e){return e.g?e.g.readyState:0}function Ut(e){try{if(!e.g)return null;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 Vt(e,t,n){return n&&n.internalChannelParams&&n.internalChannelParams[e]||t}function qt(e){this.Aa=0,this.i=[],this.j=new Te,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=Vt("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=Vt("baseRetryDelayMs",5e3,e),this.cb=Vt("retryDelaySeedMs",1e4,e),this.Wa=Vt("forwardChannelMaxRetries",2,e),this.wa=Vt("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 ze(e&&e.concurrentRequestLimit),this.Da=new bt,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 jt(e){if(zt(e),3==e.G){var t=e.U++,n=Ze(e.I);if(rt(n,"SID",e.K),rt(n,"RID",t),rt(n,"TYPE","terminate"),Wt(e,n),(t=new Ae(e,e.j,t)).L=2,t.v=it(Ze(n)),n=!1,E.navigator&&E.navigator.sendBeacon)try{n=E.navigator.sendBeacon(t.v.toString(),"")}catch(e){}!n&&E.Image&&((new Image).src=t.v,n=!0),n||(t.g=sn(t.j,null),t.g.ea(t.v)),t.F=Date.now(),Le(t)}nn(e)}function Bt(e){e.g&&(Yt(e),e.g.cancel(),e.g=null)}function zt(e){Bt(e),e.u&&(E.clearTimeout(e.u),e.u=null),Xt(e),e.h.cancel(),e.s&&("number"==typeof e.s&&E.clearTimeout(e.s),e.s=null)}function Kt(e){var t;Ke(e.h)||e.s||(e.s=!0,t=e.Ga,I||k(),T||(I(),T=!0),S.add(t,e),e.B=0)}function $t(e,t){var n=t?t.l:e.U++,r=Ze(e.I);rt(r,"SID",e.K),rt(r,"RID",n),rt(r,"AID",e.T),Wt(e,r),e.m&&e.o&&At(r,e.m,e.o),n=new Ae(e,e.j,n,e.B+1),null===e.m&&(n.H=e.o),t&&(e.i=t.D.concat(e.i)),t=Gt(e,n,1e3),n.I=Math.round(.5*e.wa)+Math.round(.5*e.wa*Math.random()),Ge(e.h,n),xe(n,r,t)}function Wt(e,n){e.H&&g(e.H,function(e,t){rt(n,t,e)}),e.l&&Ye({},function(e,t){rt(n,t,e)})}function Gt(e,t,r){r=Math.min(e.i.length,r);var i=e.l?m(e.l.Na,e.l,e):null;e:{var s=e.i;let n=-1;for(;;){const c=["count="+r];-1==n?0<r?(n=s[0].g,c.push("ofs="+n)):n=0:c.push("ofs="+n);let e=!0;for(let t=0;t<r;t++){var a=s[t].g,o=s[t].map;if((a-=n)<0)n=Math.max(0,s[t].g-100),e=!1;else try{!function(e,r,t){const i=t||"";try{Ye(e,function(e,t){let n=e;l(e)&&(n=se(e)),r.push(i+t+"="+encodeURIComponent(n))})}catch(e){throw r.push(i+"type="+encodeURIComponent("_badmap")),e}}(o,c,"req"+a+"_")}catch(e){i&&i(o)}}if(e){i=c.join("&");break e}}}return e=e.i.splice(0,r),t.D=e,i}function Ht(e){var t;e.g||e.u||(e.Y=1,t=e.Fa,I||k(),T||(I(),T=!0),S.add(t,e),e.v=0)}function Qt(e){return!(e.g||e.u||3<=e.v)&&(e.Y++,e.u=Ie(m(e.Fa,e),en(e,e.v)),e.v++,1)}function Yt(e){null!=e.A&&(E.clearTimeout(e.A),e.A=null)}function Jt(e){e.g=new Ae(e,e.j,"rpc",e.Y),null===e.m&&(e.g.H=e.o),e.g.O=0;var t=Ze(e.qa);rt(t,"RID","rpc"),rt(t,"SID",e.K),rt(t,"AID",e.T),rt(t,"CI",e.F?"0":"1"),!e.F&&e.ja&&rt(t,"TO",e.ja),rt(t,"TYPE","xmlhttp"),Wt(e,t),e.m&&e.o&&At(t,e.m,e.o),e.L&&(e.g.I=e.L);var n=e.g;e=e.ia,n.L=1,n.v=it(Ze(t)),n.m=null,n.P=!0,Oe(n,e)}function Xt(e){null!=e.C&&(E.clearTimeout(e.C),e.C=null)}function Zt(e,t){var n,r,i,s=null;if(e.g==t){Xt(e),Yt(e),e.g=null;var a=2}else{if(!We(e.h,t))return;s=t.D,He(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,n=e.B,X(a=me(),new be(a,s)),Kt(e)):Ht(e);else if(3==(n=t.s)||0==n&&0<t.X||(1!=a||(i=t,$e((r=e).h)>=r.h.j-(r.s?1:0)||(r.s?(r.i=i.D.concat(r.i),0):1==r.G||2==r.G||r.B>=(r.Va?0:r.Wa)||(r.s=Ie(m(r.Ga,r,i),en(r,r.B)),r.B++,0))))&&(2!=a||!Qt(e)))switch(s&&0<s.length&&(t=e.h,t.i=t.i.concat(s)),n){case 1:tn(e,5);break;case 4:tn(e,10);break;case 3:tn(e,6);break;default:tn(e,2)}}function en(e,t){let n=e.Ta+Math.floor(Math.random()*e.cb);return e.isActive()||(n*=2),n*t}function tn(e,t){var n,r,i;e.j.info("Error code "+t),2==t?(n=m(e.fb,e),r=!(i=e.Xa),i=new Xe(i||"//www.google.com/images/cleardot.gif"),E.location&&"http"==E.location.protocol||et(i,"https"),it(i),(r?function(e,t){var n=new Te;if(E.Image){const r=new Image;r.onload=u(wt,n,"TestLoadImage: loaded",!0,t,r),r.onerror=u(wt,n,"TestLoadImage: error",!1,t,r),r.onabort=u(wt,n,"TestLoadImage: abort",!1,t,r),r.ontimeout=u(wt,n,"TestLoadImage: timeout",!1,t,r),E.setTimeout(function(){r.ontimeout&&r.ontimeout()},1e4),r.src=e}else t(!1)}:function(e,t){const n=new Te,r=new AbortController,i=setTimeout(()=>{r.abort(),wt(n,0,!1,t)},1e4);fetch(e,{signal:r.signal}).then(e=>{clearTimeout(i),e.ok?wt(n,0,!0,t):wt(n,0,!1,t)}).catch(()=>{clearTimeout(i),wt(n,0,!1,t)})})(i.toString(),n)):we(2),e.G=0,e.l&&e.l.sa(t),nn(e),zt(e)}function nn(e){var t;e.G=0,e.ka=[],e.l&&(0==(t=Qe(e.h)).length&&0==e.i.length||(n(e.ka,t),n(e.ka,e.i),e.h.i.length=0,h(e.i),e.i.length=0),e.l.ra())}function rn(e,t,n){var r,i,s=n instanceof Xe?Ze(n):new Xe(n);return""!=s.g?(t&&(s.g=t+"."+s.g),tt(s,s.s)):(s=(r=E.location).protocol,t=t?t+"."+r.hostname:r.hostname,r=+r.port,i=new Xe(null),s&&et(i,s),t&&(i.g=t),r&&tt(i,r),n&&(i.l=n),s=i),n=e.D,t=e.ya,n&&t&&rt(s,n,t),rt(s,"VER",e.la),Wt(e,s),s}function sn(e,t,n){if(t&&!e.J)throw Error("Can't create secondary domain capable XhrIo object.");return(t=e.Ca&&!e.pa?new Nt(new It({eb:n})):new Nt(e.pa)).Ha(e.J),t}function an(){}function on(){}function cn(e,t){J.call(this),this.g=new qt(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)&&!C(e)&&(this.g.m=e),this.v=t&&t.supportsCrossDomainXhr||!1,this.u=t&&t.sendRawJson||!1,(t=t&&t.httpSessionIdParam)&&!C(t)&&(this.g.D=t,null!==(e=this.h)&&t in e&&(t in(e=this.h)&&delete e[t])),this.j=new hn(this)}function ln(e){de.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(const n in t){e=n;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 un(){pe.call(this),this.status=1}function hn(e){this.g=e}(e=Nt.prototype).Ha=function(e){this.J=e},e.ea=function(e,t,n,r){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||Re).g(),this.v=this.o?le(this.o):le(Re),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 Dt(this,e)}if(e=n||"",n=new Map(this.headers),r)if(Object.getPrototypeOf(r)===Object.prototype)for(var i in r)n.set(i,r[i]);else{if("function"!=typeof r.keys||"function"!=typeof r.get)throw Error("Unknown input type for opt_headers: "+String(r));for(const o of r.keys())n.set(o,r.get(o))}r=Array.from(n.keys()).find(e=>"content-type"==e.toLowerCase()),i=E.FormData&&e instanceof E.FormData,0<=Array.prototype.indexOf.call(Pt,t,void 0)&&!r&&!i&&n.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8");for(var[s,a]of n)this.g.setRequestHeader(s,a);this.H&&(this.g.responseType=this.H),"withCredentials"in this.g&&this.g.withCredentials!==this.J&&(this.g.withCredentials=this.J);try{Lt(this),this.u=!0,this.g.send(e),this.u=!1}catch(e){Dt(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,X(this,"complete"),X(this,"abort"),Mt(this))},e.N=function(){this.g&&(this.h&&(this.h=!1,this.j=!0,this.g.abort(),this.j=!1),Mt(this,!0)),Nt.aa.N.call(this)},e.Ea=function(){this.s||(this.B||this.u||this.j?Ot(this):this.bb())},e.bb=function(){Ot(this)},e.isActive=function(){return!!this.g},e.Z=function(){try{return 2<Ft(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){if(this.g){var t=this.g.responseText;return e&&0==t.indexOf(e)&&(t=t.substring(e.length)),ae(t)}},e.Ba=function(){return this.m},e.Ka=function(){return"string"==typeof this.l?this.l:String(this.l)},(e=qt.prototype).la=8,e.G=1,e.connect=function(e,t,n,r){we(0),this.W=e,this.H=t||{},n&&void 0!==r&&(this.H.OSID=n,this.H.OAID=r),this.F=this.X,this.I=rn(this,null,this.W),Kt(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++;const s=new Ae(this,this.j,t);let e=this.o;if(this.S&&(e?(e=v(e),y(e,this.S)):e=this.S),null!==this.m||this.O||(s.H=e,e=null),this.P)e:{for(var n=0,r=0;r<this.i.length;r++){var i=this.i[r];if("__data__"in i.map&&"string"==typeof(i=i.map.__data__)?i=i.length:i=void 0,void 0===i)break;if(4096<(n+=i)){n=r;break e}if(4096===n||r===this.i.length-1){n=r+1;break e}}n=1e3}else n=1e3;n=Gt(this,s,n),rt(r=Ze(this.I),"RID",t),rt(r,"CVER",22),this.D&&rt(r,"X-HTTP-Session-Id",this.D),Wt(this,r),e&&(this.O?n="headers="+encodeURIComponent(String(kt(e)))+"&"+n:this.m&&At(r,this.m,e)),Ge(this.h,s),this.Ua&&rt(r,"TYPE","init"),this.P?(rt(r,"$req",n),rt(r,"SID","null"),s.T=!0,xe(s,r,null)):xe(s,r,n),this.G=2}}else 3==this.G&&(t?$t(this,t):0==this.i.length||Ke(this.h)||$t(this))},e.Fa=function(){var e;this.u=null,Jt(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=Ie(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,we(10),Bt(this),Jt(this))},e.Za=function(){null!=this.C&&(this.C=null,Bt(this),Qt(this),we(19))},e.fb=function(e){e?(this.j.info("Successfully pinged google.com"),we(2)):(this.j.info("Failed to ping google.com"),we(1))},e.isActive=function(){return!!this.l&&this.l.isActive(this)},(e=an.prototype).ua=function(){},e.ta=function(){},e.sa=function(){},e.ra=function(){},e.isActive=function(){return!0},e.Na=function(){},on.prototype.g=function(e,t){return new cn(e,t)},t(cn,J),cn.prototype.m=function(){this.g.l=this.j,this.v&&(this.g.J=!0),this.g.connect(this.l,this.h||void 0)},cn.prototype.close=function(){jt(this.g)},cn.prototype.o=function(e){var t,n=this.g;"string"==typeof e?((t={}).__data__=e,e=t):this.u&&((t={}).__data__=se(e),e=t),n.i.push(new Be(n.Ya++,e)),3==n.G&&Kt(n)},cn.prototype.N=function(){this.g.l=null,delete this.j,jt(this.g),delete this.g,cn.aa.N.call(this)},t(ln,de),t(un,pe),t(hn,an),hn.prototype.ua=function(){X(this.g,"a")},hn.prototype.ta=function(e){X(this.g,new ln(e))},hn.prototype.sa=function(e){X(this.g,new un)},hn.prototype.ra=function(){X(this.g,"b")},on.prototype.createWebChannel=on.prototype.g,cn.prototype.send=cn.prototype.o,cn.prototype.open=cn.prototype.m,Qg=function(){return new on},Hg=me,Gg=fe,Wg={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},Ce.NO_ERROR=0,Ce.TIMEOUT=8,Ce.HTTP_ERROR=6,$g=Ce,Se.COMPLETE="complete",Kg=Se,(ue.EventType=he).OPEN="a",he.CLOSE="b",he.ERROR="c",he.MESSAGE="d",J.prototype.listen=J.prototype.K,zg=ue,Nt.prototype.listenOnce=Nt.prototype.L,Nt.prototype.getLastError=Nt.prototype.Ka,Nt.prototype.getLastErrorCode=Nt.prototype.Ba,Nt.prototype.getStatus=Nt.prototype.Z,Nt.prototype.getResponseJson=Nt.prototype.Oa,Nt.prototype.getResponseText=Nt.prototype.oa,Nt.prototype.send=Nt.prototype.ea,Nt.prototype.setWithCredentials=Nt.prototype.Ha,Bg=Nt}).apply(void 0!==Zg?Zg:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{});const em="@firebase/firestore";class tm{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}}tm.UNAUTHENTICATED=new tm(null),tm.GOOGLE_CREDENTIALS=new tm("google-credentials-uid"),tm.FIRST_PARTY=new tm("first-party-uid"),tm.MOCK_USER=new tm("mock-user");let nm="10.14.1";const rm=new ye("@firebase/firestore");function im(){return rm.logLevel}function sm(e,...t){var n;rm.logLevel<=m.DEBUG&&(n=t.map(cm),rm.debug(`Firestore (${nm}): ${e}`,...n))}function am(e,...t){var n;rm.logLevel<=m.ERROR&&(n=t.map(cm),rm.error(`Firestore (${nm}): ${e}`,...n))}function om(e,...t){var n;rm.logLevel<=m.WARN&&(n=t.map(cm),rm.warn(`Firestore (${nm}): ${e}`,...n))}function cm(t){if("string"==typeof t)return t;try{return JSON.stringify(t)}catch(e){return t}}function lm(e="Unexpected state"){var t=`FIRESTORE (${nm}) INTERNAL ASSERTION FAILED: `+e;throw am(t),new Error(t)}function um(e){e||lm()}const hm={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 dm extends x{constructor(e,t){super(e,t),this.code=e,this.message=t,this.toString=()=>`${this.name}: [code=${this.code}]: ${this.message}`}}class pm{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}}class fm{constructor(e,t){this.user=t,this.type="OAuth",this.headers=new Map,this.headers.set("Authorization",`Bearer ${e}`)}}class gm{getToken(){return Promise.resolve(null)}invalidateToken(){}start(e,t){e.enqueueRetryable(()=>t(tm.UNAUTHENTICATED))}shutdown(){}}class mm{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 vm{constructor(e){this.t=e,this.currentUser=tm.UNAUTHENTICATED,this.i=0,this.forceRefresh=!1,this.auth=null}start(t,n){um(void 0===this.o);let r=this.i;const i=e=>this.i!==r?(r=this.i,n(e)):Promise.resolve();let s=new pm;this.o=()=>{this.i++,this.currentUser=this.u(),s.resolve(),s=new pm,t.enqueueRetryable(()=>i(this.currentUser))};const a=()=>{const e=s;t.enqueueRetryable(async()=>{await e.promise,await i(this.currentUser)})},o=e=>{sm("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):(sm("FirebaseAuthCredentialsProvider","Auth not yet detected"),s.resolve(),s=new pm))},0),a()}getToken(){const t=this.i,e=this.forceRefresh;return this.forceRefresh=!1,this.auth?this.auth.getToken(e).then(e=>this.i!==t?(sm("FirebaseAuthCredentialsProvider","getToken aborted due to token change."),this.getToken()):e?(um("string"==typeof e.accessToken),new fm(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 um(null===e||"string"==typeof e),new tm(e)}}class _m{constructor(e,t,n){this.l=e,this.h=t,this.P=n,this.type="FirstParty",this.user=tm.FIRST_PARTY,this.I=new Map}T(){return this.P?this.P():null}get headers(){this.I.set("X-Goog-AuthUser",this.l);var e=this.T();return e&&this.I.set("Authorization",e),this.h&&this.I.set("X-Goog-Iam-Authorization-Token",this.h),this.I}}class ym{constructor(e,t,n){this.l=e,this.h=t,this.P=n}getToken(){return Promise.resolve(new _m(this.l,this.h,this.P))}start(e,t){e.enqueueRetryable(()=>t(tm.FIRST_PARTY))}shutdown(){}invalidateToken(){}}class wm{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 bm{constructor(e){this.A=e,this.forceRefresh=!1,this.appCheck=null,this.R=null}start(t,n){um(void 0===this.o);const r=e=>{null!=e.error&&sm("FirebaseAppCheckTokenProvider",`Error getting App Check token; using placeholder token instead. Error: ${e.error.message}`);var t=e.token!==this.R;return this.R=e.token,sm("FirebaseAppCheckTokenProvider",`Received ${t?"new":"existing"} token.`),t?n(e.token):Promise.resolve()};this.o=e=>{t.enqueueRetryable(()=>r(e))};const i=e=>{sm("FirebaseAppCheckTokenProvider","AppCheck detected"),this.appCheck=e,this.o&&this.appCheck.addTokenListener(this.o)};this.A.onInit(e=>i(e)),setTimeout(()=>{var e;this.appCheck||((e=this.A.getImmediate({optional:!0}))?i(e):sm("FirebaseAppCheckTokenProvider","AppCheck not yet detected"))},0)}getToken(){var e=this.forceRefresh;return this.forceRefresh=!1,this.appCheck?this.appCheck.getToken(e).then(e=>e?(um("string"==typeof e.token),this.R=e.token,new wm(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 Im{static newId(){var t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",n=Math.floor(256/t.length)*t.length;let r="";for(;r.length<20;){var i=function(t){const n="undefined"!=typeof self&&(self.crypto||self.msCrypto),r=new Uint8Array(t);if(n&&"function"==typeof n.getRandomValues)n.getRandomValues(r);else for(let e=0;e<t;e++)r[e]=Math.floor(256*Math.random());return r}(40);for(let e=0;e<i.length;++e)r.length<20&&i[e]<n&&(r+=t.charAt(i[e]%t.length))}return r}}function Tm(e,t){return e<t?-1:t<e?1:0}function Em(e,n,r){return e.length===n.length&&e.every((e,t)=>r(e,n[t]))}function Cm(e){return e+"\0"}class Sm{constructor(e,t){if(this.seconds=e,(this.nanoseconds=t)<0)throw new dm(hm.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+t);if(1e9<=t)throw new dm(hm.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+t);if(e<-62135596800)throw new dm(hm.INVALID_ARGUMENT,"Timestamp seconds out of range: "+e);if(253402300800<=e)throw new dm(hm.INVALID_ARGUMENT,"Timestamp seconds out of range: "+e)}static now(){return Sm.fromMillis(Date.now())}static fromDate(e){return Sm.fromMillis(e.getTime())}static fromMillis(e){var t=Math.floor(e/1e3),n=Math.floor(1e6*(e-1e3*t));return new Sm(t,n)}toDate(){return new Date(this.toMillis())}toMillis(){return 1e3*this.seconds+this.nanoseconds/1e6}_compareTo(e){return this.seconds===e.seconds?Tm(this.nanoseconds,e.nanoseconds):Tm(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{seconds:this.seconds,nanoseconds:this.nanoseconds}}valueOf(){var e=this.seconds- -62135596800;return String(e).padStart(12,"0")+"."+String(this.nanoseconds).padStart(9,"0")}}class km{constructor(e){this.timestamp=e}static fromTimestamp(e){return new km(e)}static min(){return new km(new Sm(0,0))}static max(){return new km(new Sm(253402300799,999999999))}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}}class Am{constructor(e,t,n){void 0===t?t=0:t>e.length&&lm(),void 0===n?n=e.length-t:n>e.length-t&&lm(),this.segments=e,this.offset=t,this.len=n}get length(){return this.len}isEqual(e){return 0===Am.comparator(this,e)}child(e){const t=this.segments.slice(this.offset,this.limit());return e instanceof Am?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,n=this.limit();t<n;t++)e(this.segments[t])}toArray(){return this.segments.slice(this.offset,this.limit())}static comparator(e,t){const n=Math.min(e.length,t.length);for(let r=0;r<n;r++){const n=e.get(r),i=t.get(r);if(n<i)return-1;if(n>i)return 1}return e.length<t.length?-1:e.length>t.length?1:0}}class Nm extends Am{construct(e,t,n){return new Nm(e,t,n)}canonicalString(){return this.toArray().join("/")}toString(){return this.canonicalString()}toUriEncodedString(){return this.toArray().map(encodeURIComponent).join("/")}static fromString(...e){const t=[];for(const n of e){if(0<=n.indexOf("//"))throw new dm(hm.INVALID_ARGUMENT,`Invalid segment (${n}). Paths must not contain // in them.`);t.push(...n.split("/").filter(e=>0<e.length))}return new Nm(t)}static emptyPath(){return new Nm([])}}const Rm=/^[_a-zA-Z][_a-zA-Z0-9]*$/;class Pm extends Am{construct(e,t,n){return new Pm(e,t,n)}static isValidIdentifier(e){return Rm.test(e)}canonicalString(){return this.toArray().map(e=>(e=e.replace(/\\/g,"\\\\").replace(/`/g,"\\`"),e=!Pm.isValidIdentifier(e)?"`"+e+"`":e)).join(".")}toString(){return this.canonicalString()}isKeyField(){return 1===this.length&&"__name__"===this.get(0)}static keyField(){return new Pm(["__name__"])}static fromServerFormat(e){const t=[];let n="",r=0;var i=()=>{if(0===n.length)throw new dm(hm.INVALID_ARGUMENT,`Invalid field path (${e}). Paths must not be empty, begin with '.', end with '.', or contain '..'`);t.push(n),n=""};let s=!1;for(;r<e.length;){const t=e[r];if("\\"===t){if(r+1===e.length)throw new dm(hm.INVALID_ARGUMENT,"Path has trailing escape character: "+e);const t=e[r+1];if("\\"!==t&&"."!==t&&"`"!==t)throw new dm(hm.INVALID_ARGUMENT,"Path has invalid escape sequence: "+e);n+=t,r+=2}else"`"===t?s=!s:"."!==t||s?n+=t:i(),r++}if(i(),s)throw new dm(hm.INVALID_ARGUMENT,"Unterminated ` in path: "+e);return new Pm(t)}static emptyPath(){return new Pm([])}}class Dm{constructor(e){this.path=e}static fromPath(e){return new Dm(Nm.fromString(e))}static fromName(e){return new Dm(Nm.fromString(e).popFirst(5))}static empty(){return new Dm(Nm.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===Nm.comparator(this.path,e.path)}toString(){return this.path.toString()}static comparator(e,t){return Nm.comparator(e.path,t.path)}static isDocumentKey(e){return e.length%2==0}static fromSegments(e){return new Dm(new Nm(e.slice()))}}class xm{constructor(e,t,n,r){this.indexId=e,this.collectionGroup=t,this.fields=n,this.indexState=r}}function Om(e){return e.fields.find(e=>2===e.kind)}function Mm(e){return e.fields.filter(e=>2!==e.kind)}xm.UNKNOWN_ID=-1;class Lm{constructor(e,t){this.fieldPath=e,this.kind=t}}class Fm{constructor(e,t){this.sequenceNumber=e,this.offset=t}static empty(){return new Fm(0,qm.min())}}function Um(e,t){var n=e.toTimestamp().seconds,r=e.toTimestamp().nanoseconds+1,r=km.fromTimestamp(1e9===r?new Sm(n+1,0):new Sm(n,r));return new qm(r,Dm.empty(),t)}function Vm(e){return new qm(e.readTime,e.key,-1)}class qm{constructor(e,t,n){this.readTime=e,this.documentKey=t,this.largestBatchId=n}static min(){return new qm(km.min(),Dm.empty(),-1)}static max(){return new qm(km.max(),Dm.empty(),-1)}}function jm(e,t){let n=e.readTime.compareTo(t.readTime);return 0!==n?n:(n=Dm.comparator(e.documentKey,t.documentKey),0!==n?n:Tm(e.largestBatchId,t.largestBatchId))}const Bm="The current tab is not in the required state to perform this operation. It might be necessary to refresh the browser tab.";class zm{constructor(){this.onCommittedListeners=[]}addOnCommittedListener(e){this.onCommittedListeners.push(e)}raiseOnCommittedEvent(){this.onCommittedListeners.forEach(e=>e())}}async function Km(e){if(e.code!==hm.FAILED_PRECONDITION||e.message!==Bm)throw e;sm("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(r,i){return this.callbackAttached&&lm(),this.callbackAttached=!0,this.isDone?this.error?this.wrapFailure(i,this.error):this.wrapSuccess(r,this.result):new $m((t,n)=>{this.nextCallback=e=>{this.wrapSuccess(r,e).next(t,n)},this.catchCallback=e=>{this.wrapFailure(i,e).next(t,n)}})}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(n){return new $m((e,t)=>{e(n)})}static reject(n){return new $m((e,t)=>{t(n)})}static waitFor(e){return new $m((t,n)=>{let r=0,i=0,s=!1;e.forEach(e=>{++r,e.next(()=>{++i,s&&i===r&&t()},e=>n(e))}),s=!0,i===r&&t()})}static or(e){let t=$m.resolve(!1);for(const n of e)t=t.next(e=>e?$m.resolve(e):n());return t}static forEach(e,n){const r=[];return e.forEach((e,t)=>{r.push(n.call(this,e,t))}),this.waitFor(r)}static mapArray(o,c){return new $m((t,n)=>{const r=o.length,i=new Array(r);let s=0;for(let e=0;e<r;e++){const a=e;c(o[a]).next(e=>{i[a]=e,++s,s===r&&t(i)},e=>n(e))}})}static doWhile(r,i){return new $m((e,t)=>{const n=()=>{!0===r()?i().next(()=>{n()},t):e()};n()})}}class Wm{constructor(n,e){this.action=n,this.transaction=e,this.aborted=!1,this.V=new pm,this.transaction.oncomplete=()=>{this.V.resolve()},this.transaction.onabort=()=>{e.error?this.V.reject(new Ym(n,e.error)):this.V.resolve()},this.transaction.onerror=e=>{var t=tv(e.target.error);this.V.reject(new Ym(n,t))}}static open(e,t,n,r){try{return new Wm(t,e.transaction(r,n))}catch(e){throw new Ym(t,e)}}get m(){return this.V.promise}abort(e){e&&this.V.reject(e),this.aborted||(sm("SimpleDb","Aborting transaction:",e?e.message:"Client-initiated abort"),this.aborted=!0,this.transaction.abort())}g(){const e=this.transaction;this.aborted||"function"!=typeof e.commit||e.commit()}store(e){var t=this.transaction.objectStore(e);return new Xm(t)}}class Gm{constructor(e,t,n){this.name=e,this.version=t,this.p=n,12.2===Gm.S(b())&&am("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.")}static delete(e){return sm("SimpleDb","Removing database:",e),Zm(window.indexedDB.deleteDatabase(e)).toPromise()}static D(){if(!R())return!1;if(Gm.v())return!0;const e=b(),t=Gm.S(e),n=0<t&&t<10,r=Hm(e),i=0<r&&r<4.5;return!(0<e.indexOf("MSIE ")||0<e.indexOf("Trident/")||0<e.indexOf("Edge/")||n||i)}static v(){var e;return"undefined"!=typeof process&&"YES"===(null===(e=process.__PRIVATE_env)||void 0===e?void 0:e.C)}static F(e,t){return e.store(t)}static S(e){const t=e.match(/i(?:phone|pad|pod) os ([\d_]+)/i),n=t?t[1].split("_").slice(0,2).join("."):"-1";return Number(n)}async M(s){return this.db||(sm("SimpleDb","Opening database:",this.name),this.db=await new Promise((n,r)=>{const i=indexedDB.open(this.name,this.version);i.onsuccess=e=>{var t=e.target.result;n(t)},i.onblocked=()=>{r(new Ym(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?r(new dm(hm.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?r(new dm(hm.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)):r(new Ym(s,t))},i.onupgradeneeded=e=>{sm("SimpleDb",'Database "'+this.name+'" requires upgrade from version:',e.oldVersion);var t=e.target.result;this.p.O(t,i.transaction,e.oldVersion,this.version).next(()=>{sm("SimpleDb","Database upgrade to version "+this.version+" complete")})}})),this.N&&(this.db.onversionchange=e=>this.N(e)),this.db}L(t){this.N=t,this.db&&(this.db.onversionchange=e=>t(e))}async runTransaction(e,t,n,r){var i="readonly"===t;let s=0;for(;;){++s;try{this.db=await this.M(e);const t=Wm.open(this.db,e,i?"readonly":"readwrite",n),s=r(t).next(e=>(t.g(),e)).catch(e=>(t.abort(e),$m.reject(e))).toPromise();return s.catch(()=>{}),await t.m,s}catch(e){const t=e,n="FirebaseError"!==t.name&&s<3;if(sm("SimpleDb","Transaction failed with error:",t.message,"Retrying:",n),this.close(),!n)return Promise.reject(t)}}}close(){this.db&&this.db.close(),this.db=void 0}}function Hm(e){const t=e.match(/Android ([\d.]+)/i),n=t?t[1].split(".").slice(0,2).join("."):"-1";return Number(n)}class Qm{constructor(e){this.B=e,this.k=!1,this.q=null}get isDone(){return this.k}get K(){return this.q}set cursor(e){this.B=e}done(){this.k=!0}$(e){this.q=e}delete(){return Zm(this.B.delete())}}class Ym extends dm{constructor(e,t){super(hm.UNAVAILABLE,`IndexedDB transaction '${e}' failed: ${t}`),this.name="IndexedDbTransactionError"}}function Jm(e){return"IndexedDbTransactionError"===e.name}class Xm{constructor(e){this.store=e}put(e,t){let n;return n=void 0!==t?(sm("SimpleDb","PUT",this.store.name,e,t),this.store.put(t,e)):(sm("SimpleDb","PUT",this.store.name,"<auto-key>",e),this.store.put(e)),Zm(n)}add(e){return sm("SimpleDb","ADD",this.store.name,e,e),Zm(this.store.add(e))}get(t){return Zm(this.store.get(t)).next(e=>(sm("SimpleDb","GET",this.store.name,t,e=void 0===e?null:e),e))}delete(e){return sm("SimpleDb","DELETE",this.store.name,e),Zm(this.store.delete(e))}count(){return sm("SimpleDb","COUNT",this.store.name),Zm(this.store.count())}U(e,n){const t=this.options(e,n),r=t.index?this.store.index(t.index):this.store;if("function"==typeof r.getAll){const e=r.getAll(t.range);return new $m((t,n)=>{e.onerror=e=>{n(e.target.error)},e.onsuccess=e=>{t(e.target.result)}})}{const e=this.cursor(t),n=[];return this.W(e,(e,t)=>{n.push(t)}).next(()=>n)}}G(e,t){const r=this.store.getAll(e,null===t?void 0:t);return new $m((t,n)=>{r.onerror=e=>{n(e.target.error)},r.onsuccess=e=>{t(e.target.result)}})}j(e,t){sm("SimpleDb","DELETE ALL",this.store.name);const n=this.options(e,t);n.H=!1;var r=this.cursor(n);return this.W(r,(e,t,n)=>n.delete())}J(e,t){let n;t?n=e:(n={},t=e);var r=this.cursor(n);return this.W(r,t)}Y(i){const e=this.cursor({});return new $m((n,r)=>{e.onerror=e=>{var t=tv(e.target.error);r(t)},e.onsuccess=e=>{const t=e.target.result;t?i(t.primaryKey,t.value).next(e=>{e?t.continue():n()}):n()}})}W(e,s){const a=[];return new $m((i,t)=>{e.onerror=e=>{t(e.target.error)},e.onsuccess=e=>{const t=e.target.result;if(t){const n=new Qm(t),r=s(t.primaryKey,t.value,n);if(r instanceof $m){const e=r.catch(e=>(n.done(),$m.reject(e)));a.push(e)}n.isDone?i():null===n.K?t.continue():t.continue(n.K)}else i()}}).next(()=>$m.waitFor(a))}options(e,t){let n;return void 0!==e&&("string"==typeof e?n=e:t=e),{index:n,range:t}}cursor(e){let t="next";if(e.reverse&&(t="prev"),e.index){const n=this.store.index(e.index);return e.H?n.openKeyCursor(e.range,t):n.openCursor(e.range,t)}return this.store.openCursor(e.range,t)}}function Zm(e){return new $m((n,r)=>{e.onsuccess=e=>{var t=e.target.result;n(t)},e.onerror=e=>{var t=tv(e.target.error);r(t)}})}let ev=!1;function tv(e){const t=Gm.S(b());if(12.2<=t&&t<13){const t="An internal error was encountered in the Indexed Database server";if(0<=e.message.indexOf(t)){const e=new dm("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 ev||(ev=!0,setTimeout(()=>{throw e},0)),e}}return e}class nv{constructor(e,t){this.asyncQueue=e,this.Z=t,this.task=null}start(){this.X(15e3)}stop(){this.task&&(this.task.cancel(),this.task=null)}get started(){return null!==this.task}X(e){sm("IndexBackfiller",`Scheduled in ${e}ms`),this.task=this.asyncQueue.enqueueAfterDelay("index_backfill",e,async()=>{this.task=null;try{sm("IndexBackfiller",`Documents written: ${await this.Z.ee()}`)}catch(e){Jm(e)?sm("IndexBackfiller","Ignoring IndexedDB error during index backfill: ",e):await Km(e)}await this.X(6e4)})}}class rv{constructor(e,t){this.localStore=e,this.persistence=t}async ee(t=50){return this.persistence.runTransaction("Backfill Indexes","readwrite-primary",e=>this.te(e,t))}te(e,t){const n=new Set;let r=t,i=!0;return $m.doWhile(()=>!0===i&&0<r,()=>this.localStore.indexManager.getNextCollectionGroupToUpdate(e).next(t=>null===t||n.has(t)?void(i=!1):(sm("IndexBackfiller",`Processing collection: ${t}`),this.ne(e,t,r).next(e=>{r-=e,n.add(t)})))).next(()=>t-r)}ne(r,i,e){return this.localStore.indexManager.getMinOffsetFromCollectionGroup(r,i).next(n=>this.localStore.localDocuments.getNextDocuments(r,i,n,e).next(e=>{const t=e.changes;return this.localStore.indexManager.updateIndexEntries(r,t).next(()=>this.re(n,e)).next(e=>(sm("IndexBackfiller",`Updating offset: ${e}`),this.localStore.indexManager.updateCollectionGroup(r,i,e))).next(()=>t.size)}))}re(e,t){let r=e;return t.changes.forEach((e,t)=>{var n=Vm(t);0<jm(n,r)&&(r=n)}),new qm(r.readTime,r.documentKey,Math.max(t.batchId,e.largestBatchId))}}class iv{constructor(e,t){this.previousValue=e,t&&(t.sequenceNumberHandler=e=>this.ie(e),this.se=e=>t.writeSequenceNumber(e))}ie(e){return this.previousValue=Math.max(e,this.previousValue),this.previousValue}next(){var e=++this.previousValue;return this.se&&this.se(e),e}}function sv(e){return null==e}function av(e){return 0===e&&1/e==-1/0}function ov(e){return"number"==typeof e&&Number.isInteger(e)&&!av(e)&&e<=Number.MAX_SAFE_INTEGER&&e>=Number.MIN_SAFE_INTEGER}function cv(e){let t="";for(let n=0;n<e.length;n++)0<t.length&&(t=lv(t)),t=function(e,t){let n=t;const r=e.length;for(let i=0;i<r;i++){const r=e.charAt(i);switch(r){case"\0":n+="";break;case"":n+="";break;default:n+=r}}return n}(e.get(n),t);return lv(t)}function lv(e){return e+""}function uv(t){const n=t.length;if(um(2<=n),2===n)return um(""===t.charAt(0)&&""===t.charAt(1)),Nm.emptyPath();const __PRIVATE_lastReasonableEscapeIndex=n-2,r=[];let i="";for(let a=0;a<n;){const n=t.indexOf("",a);switch((n<0||n>__PRIVATE_lastReasonableEscapeIndex)&&lm(),t.charAt(n+1)){case"":var s=t.substring(a,n);let e;0===i.length?e=s:(i+=s,e=i,i=""),r.push(e);break;case"":i+=t.substring(a,n),i+="\0";break;case"":i+=t.substring(a,n+1);break;default:lm()}a=n+2}return new Nm(r)}iv.oe=-1;const hv=["userId","batchId"];function dv(e,t){return[e,cv(t)]}function pv(e,t,n){return[e,cv(t),n]}const fv={},gv=["prefixPath","collectionGroup","readTime","documentId"],mv=["prefixPath","collectionGroup","documentId"],vv=["collectionGroup","readTime","prefixPath","documentId"],_v=["canonicalId","targetId"],yv=["targetId","path"],wv=["path","targetId"],bv=["collectionId","parent"],Iv=["indexId","uid"],Tv=["uid","sequenceNumber"],Ev=["indexId","uid","arrayValue","directionalValue","orderedDocumentKey","documentKey"],Cv=["indexId","uid","orderedDocumentKey"],Sv=["userId","collectionPath","documentId"],kv=["userId","collectionPath","largestBatchId"],Av=["userId","collectionGroup","largestBatchId"],Nv=["mutationQueues","mutations","documentMutations","remoteDocuments","targets","owner","targetGlobal","targetDocuments","clientMetadata","remoteDocumentGlobal","collectionParents","bundles","namedQueries"],Rv=[...Nv,"documentOverlays"],Pv=["mutationQueues","mutations","documentMutations","remoteDocumentsV14","targets","owner","targetGlobal","targetDocuments","clientMetadata","remoteDocumentGlobal","collectionParents","bundles","namedQueries","documentOverlays"],Dv=Pv,xv=[...Dv,"indexConfiguration","indexState","indexEntries"],Ov=xv,Mv=[...xv,"globals"];class Lv extends zm{constructor(e,t){super(),this._e=e,this.currentSequenceNumber=t}}function Fv(e,t){var n=e;return Gm.F(n._e,t)}function Uv(e){let t=0;for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&t++;return t}function Vv(e,t){for(const n in e)Object.prototype.hasOwnProperty.call(e,n)&&t(n,e[n])}function qv(e){for(const t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}class jv{constructor(e,t){this.comparator=e,this.root=t||zv.EMPTY}insert(e,t){return new jv(this.comparator,this.root.insert(e,t,this.comparator).copy(null,null,zv.BLACK,null,null))}remove(e){return new jv(this.comparator,this.root.remove(e,this.comparator).copy(null,null,zv.BLACK,null,null))}get(e){let t=this.root;for(;!t.isEmpty();){var n=this.comparator(e,t.key);if(0===n)return t.value;n<0?t=t.left:0<n&&(t=t.right)}return null}indexOf(e){let t=0,n=this.root;for(;!n.isEmpty();){var r=this.comparator(e,n.key);if(0===r)return t+n.left.size;n=r<0?n.left:(t+=n.left.size+1,n.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(n){this.inorderTraversal((e,t)=>(n(e,t),!1))}toString(){const n=[];return this.inorderTraversal((e,t)=>(n.push(`${e}:${t}`),!1)),`{${n.join(", ")}}`}reverseTraversal(e){return this.root.reverseTraversal(e)}getIterator(){return new Bv(this.root,null,this.comparator,!1)}getIteratorFrom(e){return new Bv(this.root,e,this.comparator,!1)}getReverseIterator(){return new Bv(this.root,null,this.comparator,!0)}getReverseIteratorFrom(e){return new Bv(this.root,e,this.comparator,!0)}}class Bv{constructor(e,t,n,r){this.isReverse=r,this.nodeStack=[];let i=1;for(;!e.isEmpty();)if(i=t?n(e.key,t):1,t&&r&&(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(){if(0===this.nodeStack.length)return null;var e=this.nodeStack[this.nodeStack.length-1];return{key:e.key,value:e.value}}}class zv{constructor(e,t,n,r,i){this.key=e,this.value=t,this.color=null!=n?n:zv.RED,this.left=null!=r?r:zv.EMPTY,this.right=null!=i?i:zv.EMPTY,this.size=this.left.size+1+this.right.size}copy(e,t,n,r,i){return new zv(null!=e?e:this.key,null!=t?t:this.value,null!=n?n:this.color,null!=r?r: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,n){let r=this;var i=n(e,r.key);return r=i<0?r.copy(null,null,null,r.left.insert(e,t,n),null):0===i?r.copy(null,t,null,null,null):r.copy(null,null,null,null,r.right.insert(e,t,n)),r.fixUp()}removeMin(){if(this.left.isEmpty())return zv.EMPTY;let e=this;return e.left.isRed()||e.left.left.isRed()||(e=e.moveRedLeft()),e=e.copy(null,null,null,e.left.removeMin(),null),e.fixUp()}remove(e,t){let n,r=this;if(t(e,r.key)<0)r.left.isEmpty()||r.left.isRed()||r.left.left.isRed()||(r=r.moveRedLeft()),r=r.copy(null,null,null,r.left.remove(e,t),null);else{if(r.left.isRed()&&(r=r.rotateRight()),r.right.isEmpty()||r.right.isRed()||r.right.left.isRed()||(r=r.moveRedRight()),0===t(e,r.key)){if(r.right.isEmpty())return zv.EMPTY;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.right.isRed()&&!e.left.isRed()&&(e=e.rotateLeft()),e.left.isRed()&&e.left.left.isRed()&&(e=e.rotateRight()),e.left.isRed()&&e.right.isRed()&&(e=e.colorFlip()),e}moveRedLeft(){let e=this.colorFlip();return e.right.left.isRed()&&(e=e.copy(null,null,null,null,e.right.rotateRight()),e=e.rotateLeft(),e=e.colorFlip()),e}moveRedRight(){let e=this.colorFlip();return e.left.left.isRed()&&(e=e.rotateRight(),e=e.colorFlip()),e}rotateLeft(){var e=this.copy(null,null,zv.RED,null,this.right.left);return this.right.copy(null,null,this.color,e,null)}rotateRight(){var e=this.copy(null,null,zv.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 lm();if(this.right.isRed())throw lm();var e=this.left.check();if(e!==this.right.check())throw lm();return e+(this.isRed()?0:1)}}zv.EMPTY=null,zv.RED=!0,zv.BLACK=!1,zv.EMPTY=new class{constructor(){this.size=0}get key(){throw lm()}get value(){throw lm()}get color(){throw lm()}get left(){throw lm()}get right(){throw lm()}copy(e,t,n,r,i){return this}insert(e,t,n){return new zv(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 Kv{constructor(e){this.comparator=e,this.data=new jv(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(n){this.data.inorderTraversal((e,t)=>(n(e),!1))}forEachInRange(e,t){const n=this.data.getIteratorFrom(e[0]);for(;n.hasNext();){var r=n.getNext();if(0<=this.comparator(r.key,e[1]))return;t(r.key)}}forEachWhile(e,t){let n;for(n=void 0!==t?this.data.getIteratorFrom(t):this.data.getIterator();n.hasNext();)if(!e(n.getNext().key))return}firstAfterOrEqual(e){const t=this.data.getIteratorFrom(e);return t.hasNext()?t.getNext().key:null}getIterator(){return new $v(this.data.getIterator())}getIteratorFrom(e){return new $v(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 Kv))return!1;if(this.size!==e.size)return!1;const t=this.data.getIterator(),n=e.data.getIterator();for(;t.hasNext();){const e=t.getNext().key,r=n.getNext().key;if(0!==this.comparator(e,r))return!1}return!0}toArray(){const t=[];return this.forEach(e=>{t.push(e)}),t}toString(){const t=[];return this.forEach(e=>t.push(e)),"SortedSet("+t.toString()+")"}copy(e){const t=new Kv(this.comparator);return t.data=e,t}}class $v{constructor(e){this.iter=e}getNext(){return this.iter.getNext().key}hasNext(){return this.iter.hasNext()}}function Wv(e){return e.hasNext()?e.getNext():void 0}class Gv{constructor(e){(this.fields=e).sort(Pm.comparator)}static empty(){return new Gv([])}unionWith(e){let t=new Kv(Pm.comparator);for(const e of this.fields)t=t.add(e);for(const n of e)t=t.add(n);return new Gv(t.toArray())}covers(e){for(const t of this.fields)if(t.isPrefixOf(e))return!0;return!1}isEqual(e){return Em(this.fields,e.fields,(e,t)=>e.isEqual(t))}}class Hv extends Error{constructor(){super(...arguments),this.name="Base64DecodeError"}}class Qv{constructor(e){this.binaryString=e}static fromBase64String(e){var t=function(e){try{return atob(e)}catch(e){throw"undefined"!=typeof DOMException&&e instanceof DOMException?new Hv("Invalid base64 string: "+e):e}}(e);return new Qv(t)}static fromUint8Array(e){var t=function(e){let t="";for(let n=0;n<e.length;++n)t+=String.fromCharCode(e[n]);return t}(e);return new Qv(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(){return function(e){const t=new Uint8Array(e.length);for(let n=0;n<e.length;n++)t[n]=e.charCodeAt(n);return t}(this.binaryString)}approximateByteSize(){return 2*this.binaryString.length}compareTo(e){return Tm(this.binaryString,e.binaryString)}isEqual(e){return this.binaryString===e.binaryString}}Qv.EMPTY_BYTE_STRING=new Qv("");const Yv=new RegExp(/^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(?:\.(\d+))?Z$/);function Jv(t){if(um(!!t),"string"!=typeof t)return{seconds:Xv(t.seconds),nanos:Xv(t.nanos)};{let e=0;var n=Yv.exec(t);um(!!n),n[1]&&(n=((n=n[1])+"000000000").substr(0,9),e=Number(n));const r=new Date(t);return{seconds:Math.floor(r.getTime()/1e3),nanos:e}}}function Xv(e){return"number"==typeof e?e:"string"==typeof e?Number(e):0}function Zv(e){return"string"==typeof e?Qv.fromBase64String(e):Qv.fromUint8Array(e)}function e_(e){var t;return"server_timestamp"===(null===(t=((null===(t=null==e?void 0:e.mapValue)||void 0===t?void 0:t.fields)||{}).__type__)||void 0===t?void 0:t.stringValue)}function t_(e){var t=e.mapValue.fields.__previous_value__;return e_(t)?t_(t):t}function n_(e){var t=Jv(e.mapValue.fields.__local_write_time__.timestampValue);return new Sm(t.seconds,t.nanos)}class r_{constructor(e,t,n,r,i,s,a,o,c){this.databaseId=e,this.appId=t,this.persistenceKey=n,this.host=r,this.ssl=i,this.forceLongPolling=s,this.autoDetectLongPolling=a,this.longPollingOptions=o,this.useFetchStreams=c}}class i_{constructor(e,t){this.projectId=e,this.database=t||"(default)"}static empty(){return new i_("","")}get isDefaultDatabase(){return"(default)"===this.database}isEqual(e){return e instanceof i_&&e.projectId===this.projectId&&e.database===this.database}}const s_={mapValue:{fields:{__type__:{stringValue:"__max__"}}}},a_={nullValue:"NULL_VALUE"};function o_(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?e_(e)?4:I_(e)?9007199254740991:w_(e)?10:11:lm()}function c_(e,t){if(e===t)return!0;var n,r,i=o_(e);if(i!==o_(t))return!1;switch(i){case 0:case 9007199254740991:return!0;case 1:return e.booleanValue===t.booleanValue;case 4:return n_(e).isEqual(n_(t));case 3:return function(e,t){if("string"==typeof e.timestampValue&&"string"==typeof t.timestampValue&&e.timestampValue.length===t.timestampValue.length)return e.timestampValue===t.timestampValue;var n=Jv(e.timestampValue),r=Jv(t.timestampValue);return n.seconds===r.seconds&&n.nanos===r.nanos}(e,t);case 5:return e.stringValue===t.stringValue;case 6:return r=t,Zv(e.bytesValue).isEqual(Zv(r.bytesValue));case 7:return e.referenceValue===t.referenceValue;case 8:return n=t,Xv((r=e).geoPointValue.latitude)===Xv(n.geoPointValue.latitude)&&Xv(r.geoPointValue.longitude)===Xv(n.geoPointValue.longitude);case 2:return function(e,t){if("integerValue"in e&&"integerValue"in t)return Xv(e.integerValue)===Xv(t.integerValue);if("doubleValue"in e&&"doubleValue"in t){var n=Xv(e.doubleValue),r=Xv(t.doubleValue);return n===r?av(n)===av(r):isNaN(n)&&isNaN(r)}return!1}(e,t);case 9:return Em(e.arrayValue.values||[],t.arrayValue.values||[],c_);case 10:case 11:return function(e,t){const n=e.mapValue.fields||{},r=t.mapValue.fields||{};if(Uv(n)!==Uv(r))return!1;for(const e in n)if(n.hasOwnProperty(e)&&(void 0===r[e]||!c_(n[e],r[e])))return!1;return!0}(e,t);default:return lm()}}function l_(e,t){return void 0!==(e.values||[]).find(e=>c_(e,t))}function u_(e,t){if(e===t)return 0;var n,r,i,s,a,o,c,l=o_(e),u=o_(t);if(l!==u)return Tm(l,u);switch(l){case 0:case 9007199254740991:return 0;case 1:return Tm(e.booleanValue,t.booleanValue);case 2:return a=t,o=Xv((s=e).integerValue||s.doubleValue),c=Xv(a.integerValue||a.doubleValue),o<c?-1:c<o?1:o===c?0:isNaN(o)?isNaN(c)?0:-1:1;case 3:return h_(e.timestampValue,t.timestampValue);case 4:return h_(n_(e),n_(t));case 5:return Tm(e.stringValue,t.stringValue);case 6:return function(e,t){const n=Zv(e),r=Zv(t);return n.compareTo(r)}(e.bytesValue,t.bytesValue);case 7:return function(e,t){var n=e.split("/"),r=t.split("/");for(let i=0;i<n.length&&i<r.length;i++){const t=Tm(n[i],r[i]);if(0!==t)return t}return Tm(n.length,r.length)}(e.referenceValue,t.referenceValue);case 8:return n=e.geoPointValue,r=t.geoPointValue,0!==(i=Tm(Xv(n.latitude),Xv(r.latitude)))?i:Tm(Xv(n.longitude),Xv(r.longitude));case 9:return d_(e.arrayValue,t.arrayValue);case 10:return n=e.mapValue,r=t.mapValue,o=n.fields||{},c=r.fields||{},o=null===(i=o.value)||void 0===i?void 0:i.arrayValue,c=null===(i=c.value)||void 0===i?void 0:i.arrayValue,0!==(i=Tm((null===(i=null==o?void 0:o.values)||void 0===i?void 0:i.length)||0,(null===(i=null==c?void 0:c.values)||void 0===i?void 0:i.length)||0))?i:d_(o,c);case 11:return function(e,t){if(e===s_.mapValue&&t===s_.mapValue)return 0;if(e===s_.mapValue)return 1;if(t===s_.mapValue)return-1;const n=e.fields||{},r=Object.keys(n),i=t.fields||{},s=Object.keys(i);r.sort(),s.sort();for(let o=0;o<r.length&&o<s.length;++o){const t=Tm(r[o],s[o]);if(0!==t)return t;var a=u_(n[r[o]],i[s[o]]);if(0!==a)return a}return Tm(r.length,s.length)}(e.mapValue,t.mapValue);default:throw lm()}}function h_(e,t){if("string"==typeof e&&"string"==typeof t&&e.length===t.length)return Tm(e,t);var n=Jv(e),r=Jv(t),i=Tm(n.seconds,r.seconds);return 0!==i?i:Tm(n.nanos,r.nanos)}function d_(e,t){var n=e.values||[],r=t.values||[];for(let i=0;i<n.length&&i<r.length;++i){const t=u_(n[i],r[i]);if(t)return t}return Tm(n.length,r.length)}function p_(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?function(e){const t=Jv(e);return`time(${t.seconds},${t.nanos})`}(e.timestampValue):"stringValue"in e?e.stringValue:"bytesValue"in e?function(e){return Zv(e).toBase64()}(e.bytesValue):"referenceValue"in e?function(e){return Dm.fromName(e).toString()}(e.referenceValue):"geoPointValue"in e?function(e){return`geo(${e.latitude},${e.longitude})`}(e.geoPointValue):"arrayValue"in e?function(e){let t="[",n=!0;for(const r of e.values||[])n?n=!1:t+=",",t+=s(r);return t+"]"}(e.arrayValue):"mapValue"in e?function(e){const t=Object.keys(e.fields||{}).sort();let n="{",r=!0;for(const i of t)r?r=!1:n+=",",n+=`${i}:${s(e.fields[i])}`;return n+"}"}(e.mapValue):lm()}(e)}function f_(e,t){return{referenceValue:`projects/${e.projectId}/databases/${e.database}/documents/${t.path.canonicalString()}`}}function g_(e){return!!e&&"integerValue"in e}function m_(e){return!!e&&"arrayValue"in e}function v_(e){return e&&"nullValue"in e}function __(e){return e&&"doubleValue"in e&&isNaN(Number(e.doubleValue))}function y_(e){return e&&"mapValue"in e}function w_(e){var t;return"__vector__"===(null===(t=((null===(t=null==e?void 0:e.mapValue)||void 0===t?void 0:t.fields)||{}).__type__)||void 0===t?void 0:t.stringValue)}function b_(t){if(t.geoPointValue)return{geoPointValue:Object.assign({},t.geoPointValue)};if(t.timestampValue&&"object"==typeof t.timestampValue)return{timestampValue:Object.assign({},t.timestampValue)};if(t.mapValue){const n={mapValue:{fields:{}}};return Vv(t.mapValue.fields,(e,t)=>n.mapValue.fields[e]=b_(t)),n}if(t.arrayValue){const r={arrayValue:{values:[]}};for(let e=0;e<(t.arrayValue.values||[]).length;++e)r.arrayValue.values[e]=b_(t.arrayValue.values[e]);return r}return Object.assign({},t)}function I_(e){return"__max__"===(((e.mapValue||{}).fields||{}).__type__||{}).stringValue}const T_={mapValue:{fields:{__type__:{stringValue:"__vector__"},value:{arrayValue:{}}}}};function E_(e,t){var n=u_(e.value,t.value);return 0!==n?n:e.inclusive&&!t.inclusive?-1:!e.inclusive&&t.inclusive?1:0}function C_(e,t){var n=u_(e.value,t.value);return 0!==n?n:e.inclusive&&!t.inclusive?1:!e.inclusive&&t.inclusive?-1:0}class S_{constructor(e){this.value=e}static empty(){return new S_({mapValue:{}})}field(n){if(n.isEmpty())return this.value;{let e=this.value;for(let t=0;t<n.length-1;++t)if(e=(e.mapValue.fields||{})[n.get(t)],!y_(e))return null;return e=(e.mapValue.fields||{})[n.lastSegment()],e||null}}set(e,t){this.getFieldsMap(e.popLast())[e.lastSegment()]=b_(t)}setAll(e){let n=Pm.emptyPath(),r={},i=[];e.forEach((e,t)=>{if(!n.isImmediateParentOf(t)){const e=this.getFieldsMap(n);this.applyChanges(e,r,i),r={},i=[],n=t.popLast()}e?r[t.lastSegment()]=b_(e):i.push(t.lastSegment())});var t=this.getFieldsMap(n);this.applyChanges(t,r,i)}delete(e){const t=this.field(e.popLast());y_(t)&&t.mapValue.fields&&delete t.mapValue.fields[e.lastSegment()]}isEqual(e){return c_(this.value,e.value)}getFieldsMap(t){let n=this.value;n.mapValue.fields||(n.mapValue={fields:{}});for(let r=0;r<t.length;++r){let e=n.mapValue.fields[t.get(r)];y_(e)&&e.mapValue.fields||(e={mapValue:{fields:{}}},n.mapValue.fields[t.get(r)]=e),n=e}return n.mapValue.fields}applyChanges(n,e,t){Vv(e,(e,t)=>n[e]=t);for(const e of t)delete n[e]}clone(){return new S_(b_(this.value))}}class k_{constructor(e,t,n,r,i,s,a){this.key=e,this.documentType=t,this.version=n,this.readTime=r,this.createTime=i,this.data=s,this.documentState=a}static newInvalidDocument(e){return new k_(e,0,km.min(),km.min(),km.min(),S_.empty(),0)}static newFoundDocument(e,t,n,r){return new k_(e,1,t,km.min(),n,r,0)}static newNoDocument(e,t){return new k_(e,2,t,km.min(),km.min(),S_.empty(),0)}static newUnknownDocument(e,t){return new k_(e,3,t,km.min(),km.min(),S_.empty(),2)}convertToFoundDocument(e,t){return!this.createTime.isEqual(km.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=S_.empty(),this.documentState=0,this}convertToUnknownDocument(e){return this.version=e,this.documentType=3,this.data=S_.empty(),this.documentState=2,this}setHasCommittedMutations(){return this.documentState=2,this}setHasLocalMutations(){return this.documentState=1,this.version=km.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 k_&&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 k_(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 A_{constructor(e,t){this.position=e,this.inclusive=t}}function N_(e,t,n){let r=0;for(let i=0;i<e.position.length;i++){const s=t[i],a=e.position[i];if(r=s.field.isKeyField()?Dm.comparator(Dm.fromName(a.referenceValue),n.key):u_(a,n.data.field(s.field)),"desc"===s.dir&&(r*=-1),0!==r)break}return r}function R_(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 n=0;n<e.position.length;n++)if(!c_(e.position[n],t.position[n]))return!1;return!0}class P_{constructor(e,t="asc"){this.field=e,this.dir=t}}class D_{}class x_ extends D_{constructor(e,t,n){super(),this.field=e,this.op=t,this.value=n}static create(e,t,n){return e.isKeyField()?"in"===t||"not-in"===t?this.createKeyFieldInFilter(e,t,n):new j_(e,t,n):"array-contains"===t?new $_(e,n):"in"===t?new W_(e,n):"not-in"===t?new G_(e,n):"array-contains-any"===t?new H_(e,n):new x_(e,t,n)}static createKeyFieldInFilter(e,t,n){return new("in"===t?B_:z_)(e,n)}matches(e){var t=e.data.field(this.field);return"!="===this.op?null!==t&&this.matchesComparison(u_(t,this.value)):null!==t&&o_(this.value)===o_(t)&&this.matchesComparison(u_(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 lm()}}isInequality(){return 0<=["<","<=",">",">=","!=","not-in"].indexOf(this.op)}getFlattenedFilters(){return[this]}getFilters(){return[this]}}class O_ extends D_{constructor(e,t){super(),this.filters=e,this.op=t,this.ae=null}static create(e,t){return new O_(e,t)}matches(t){return M_(this)?void 0===this.filters.find(e=>!e.matches(t)):void 0!==this.filters.find(e=>e.matches(t))}getFlattenedFilters(){return null!==this.ae||(this.ae=this.filters.reduce((e,t)=>e.concat(t.getFlattenedFilters()),[])),this.ae}getFilters(){return Object.assign([],this.filters)}}function M_(e){return"and"===e.op}function L_(e){return"or"===e.op}function F_(e){return U_(e)&&M_(e)}function U_(e){for(const t of e.filters)if(t instanceof O_)return!1;return!0}function V_(e,t){var n=e.filters.concat(t);return O_.create(n,e.op)}function q_(e){return e instanceof x_?`${(t=e).field.canonicalString()} ${t.op} ${p_(t.value)}`:e instanceof O_?(e=e).op.toString()+" {"+e.getFilters().map(q_).join(" ,")+"}":"Filter";var t}class j_ extends x_{constructor(e,t,n){super(e,t,n),this.key=Dm.fromName(n.referenceValue)}matches(e){var t=Dm.comparator(e.key,this.key);return this.matchesComparison(t)}}class B_ extends x_{constructor(e,t){super(e,"in",t),this.keys=K_(0,t)}matches(t){return this.keys.some(e=>e.isEqual(t.key))}}class z_ extends x_{constructor(e,t){super(e,"not-in",t),this.keys=K_(0,t)}matches(t){return!this.keys.some(e=>e.isEqual(t.key))}}function K_(e,t){var n;return((null===(n=t.arrayValue)||void 0===n?void 0:n.values)||[]).map(e=>Dm.fromName(e.referenceValue))}class $_ extends x_{constructor(e,t){super(e,"array-contains",t)}matches(e){var t=e.data.field(this.field);return m_(t)&&l_(t.arrayValue,this.value)}}class W_ extends x_{constructor(e,t){super(e,"in",t)}matches(e){var t=e.data.field(this.field);return null!==t&&l_(this.value.arrayValue,t)}}class G_ extends x_{constructor(e,t){super(e,"not-in",t)}matches(e){if(l_(this.value.arrayValue,{nullValue:"NULL_VALUE"}))return!1;var t=e.data.field(this.field);return null!==t&&!l_(this.value.arrayValue,t)}}class H_ extends x_{constructor(e,t){super(e,"array-contains-any",t)}matches(e){const t=e.data.field(this.field);return!(!m_(t)||!t.arrayValue.values)&&t.arrayValue.values.some(e=>l_(this.value.arrayValue,e))}}class Q_{constructor(e,t=null,n=[],r=[],i=null,s=null,a=null){this.path=e,this.collectionGroup=t,this.orderBy=n,this.filters=r,this.limit=i,this.startAt=s,this.endAt=a,this.ue=null}}function Y_(e,t=null,n=[],r=[],i=null,s=null,a=null){return new Q_(e,t,n,r,i,s,a)}function J_(e){const t=e;if(null===t.ue){let e=t.path.canonicalString();null!==t.collectionGroup&&(e+="|cg:"+t.collectionGroup),e+="|f:",e+=t.filters.map(e=>function t(e){if(e instanceof x_)return e.field.canonicalString()+e.op.toString()+p_(e.value);if(F_(e))return e.filters.map(e=>t(e)).join(",");var n=e.filters.map(e=>t(e)).join(",");return`${e.op}(${n})`}(e)).join(","),e+="|ob:",e+=t.orderBy.map(e=>function(e){return e.field.canonicalString()+e.dir}(e)).join(","),sv(t.limit)||(e+="|l:",e+=t.limit),t.startAt&&(e+="|lb:",e+=t.startAt.inclusive?"b:":"a:",e+=t.startAt.position.map(e=>p_(e)).join(",")),t.endAt&&(e+="|ub:",e+=t.endAt.inclusive?"a:":"b:",e+=t.endAt.position.map(e=>p_(e)).join(",")),t.ue=e}return t.ue}function X_(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(n=e.orderBy[i],r=t.orderBy[i],n.dir!==r.dir||!n.field.isEqual(r.field))return!1;var n,r;if(e.filters.length!==t.filters.length)return!1;for(let s=0;s<e.filters.length;s++)if(!function r(e,t){return e instanceof x_?(n=e,(s=t)instanceof x_&&n.op===s.op&&n.field.isEqual(s.field)&&c_(n.value,s.value)):e instanceof O_?(i=t)instanceof O_&&e.op===i.op&&e.filters.length===i.filters.length&&e.filters.reduce((e,t,n)=>e&&r(t,i.filters[n]),!0):void lm();var i,n,s}(e.filters[s],t.filters[s]))return!1;return e.collectionGroup===t.collectionGroup&&!!e.path.isEqual(t.path)&&!!R_(e.startAt,t.startAt)&&R_(e.endAt,t.endAt)}function Z_(e){return Dm.isDocumentKey(e.path)&&null===e.collectionGroup&&0===e.filters.length}function ey(e,t){return e.filters.filter(e=>e instanceof x_&&e.field.isEqual(t))}function ty(t,n,r){let i=a_,s=!0;for(const r of ey(t,n)){let e=a_,t=!0;switch(r.op){case"<":case"<=":e="nullValue"in(a=r.value)?a_:"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?f_(i_.empty(),Dm.empty()):"geoPointValue"in a?{geoPointValue:{latitude:-90,longitude:-180}}:"arrayValue"in a?{arrayValue:{}}:"mapValue"in a?w_(a)?T_:{mapValue:{}}:lm();break;case"==":case"in":case">=":e=r.value;break;case">":e=r.value,t=!1;break;case"!=":case"not-in":e=a_}E_({value:i,inclusive:s},{value:e,inclusive:t})<0&&(i=e,s=t)}var a;if(null!==r)for(let e=0;e<t.orderBy.length;++e)if(t.orderBy[e].field.isEqual(n)){const t=r.position[e];E_({value:i,inclusive:s},{value:t,inclusive:r.inclusive})<0&&(i=t,s=r.inclusive);break}return{value:i,inclusive:s}}function ny(t,n,r){let i=s_,s=!0;for(const r of ey(t,n)){let e=s_,t=!0;switch(r.op){case">=":case">":e="nullValue"in(a=r.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?f_(i_.empty(),Dm.empty()):"referenceValue"in a?{geoPointValue:{latitude:-90,longitude:-180}}:"geoPointValue"in a?{arrayValue:{}}:"arrayValue"in a?T_:"mapValue"in a?w_(a)?{mapValue:{}}:s_:lm(),t=!1;break;case"==":case"in":case"<=":e=r.value;break;case"<":e=r.value,t=!1;break;case"!=":case"not-in":e=s_}0<C_({value:i,inclusive:s},{value:e,inclusive:t})&&(i=e,s=t)}var a;if(null!==r)for(let e=0;e<t.orderBy.length;++e)if(t.orderBy[e].field.isEqual(n)){const t=r.position[e];0<C_({value:i,inclusive:s},{value:t,inclusive:r.inclusive})&&(i=t,s=r.inclusive);break}return{value:i,inclusive:s}}class ry{constructor(e,t=null,n=[],r=[],i=null,s="F",a=null,o=null){this.path=e,this.collectionGroup=t,this.explicitOrderBy=n,this.filters=r,this.limit=i,this.limitType=s,this.startAt=a,this.endAt=o,this.ce=null,this.le=null,this.he=null,this.startAt,this.endAt}}function iy(e,t,n,r,i,s,a,o){return new ry(e,t,n,r,i,s,a,o)}function sy(e){return new ry(e)}function ay(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 oy(e){return null!==e.collectionGroup}function cy(t){const n=t;if(null===n.ce){n.ce=[];const t=new Set;for(const i of n.explicitOrderBy)n.ce.push(i),t.add(i.field.canonicalString());const r=0<n.explicitOrderBy.length?n.explicitOrderBy[n.explicitOrderBy.length-1].dir:"asc",e=function(e){let t=new Kv(Pm.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.ce.push(new P_(e,r))}),t.has(Pm.keyField().canonicalString())||n.ce.push(new P_(Pm.keyField(),r))}return n.ce}function ly(e){const t=e;return t.le||(t.le=function(e,t){if("F"===e.limitType)return Y_(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 P_(e.field,t)});var n=e.endAt?new A_(e.endAt.position,e.endAt.inclusive):null,r=e.startAt?new A_(e.startAt.position,e.startAt.inclusive):null;return Y_(e.path,e.collectionGroup,t,e.filters,e.limit,n,r)}}(t,cy(e))),t.le}function uy(e,t){var n=e.filters.concat([t]);return new ry(e.path,e.collectionGroup,e.explicitOrderBy.slice(),n,e.limit,e.limitType,e.startAt,e.endAt)}function hy(e,t,n){return new ry(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),t,n,e.startAt,e.endAt)}function dy(e,t){return X_(ly(e),ly(t))&&e.limitType===t.limitType}function py(e){return`${J_(ly(e))}|lt:${e.limitType}`}function fy(e){return`Query(target=${function(e){let t=e.path.canonicalString();return null!==e.collectionGroup&&(t+=" collectionGroup="+e.collectionGroup),0<e.filters.length&&(t+=`, filters: [${e.filters.map(e=>q_(e)).join(", ")}]`),sv(e.limit)||(t+=", limit: "+e.limit),0<e.orderBy.length&&(t+=`, orderBy: [${e.orderBy.map(e=>function(e){return`${e.field.canonicalString()} (${e.dir})`}(e)).join(", ")}]`),e.startAt&&(t+=", startAt: ",t+=e.startAt.inclusive?"b:":"a:",t+=e.startAt.position.map(e=>p_(e)).join(",")),e.endAt&&(t+=", endAt: ",t+=e.endAt.inclusive?"a:":"b:",t+=e.endAt.position.map(e=>p_(e)).join(",")),`Target(${t})`}(ly(e))}; limitType=${e.limitType})`}function gy(e,t){return t.isFoundDocument()&&(i=e,a=(s=t).key.path,null!==i.collectionGroup?s.key.hasCollectionId(i.collectionGroup)&&i.path.isPrefixOf(a):Dm.isDocumentKey(i.path)?i.path.isEqual(a):i.path.isImmediateParentOf(a))&&function(e,t){for(const n of cy(e))if(!n.field.isKeyField()&&null===t.data.field(n.field))return;return 1}(e,t)&&function(e,t){for(const n of e.filters)if(!n.matches(t))return;return 1}(e,t)&&(i=t,(!(t=e).startAt||(n=t.startAt,e=cy(t),r=N_(n,e,i),n.inclusive?r<=0:r<0))&&(!t.endAt||(n=t.endAt,t=cy(t),r=N_(n,t,i),n.inclusive?0<=r:0<r)));var n,r,i,s,a}function my(e){return e.collectionGroup||(e.path.length%2==1?e.path.lastSegment():e.path.get(e.path.length-2))}function vy(i){return(e,t)=>{let n=!1;for(const r of cy(i)){const i=function(e,t,n){var r=e.field.isKeyField()?Dm.comparator(t.key,n.key):function(e,t,n){var r=t.data.field(e),i=n.data.field(e);return null!==r&&null!==i?u_(r,i):lm()}(e.field,t,n);switch(e.dir){case"asc":return r;case"desc":return-1*r;default:return lm()}}(r,e,t);if(0!==i)return i;n=n||r.field.isKeyField()}return 0}}class _y{constructor(e,t){this.mapKeyFn=e,this.equalsFn=t,this.inner={},this.innerSize=0}get(e){const t=this.mapKeyFn(e),n=this.inner[t];if(void 0!==n)for(const[t,r]of n)if(this.equalsFn(t,e))return r}has(e){return void 0!==this.get(e)}set(e,t){const n=this.mapKeyFn(e),r=this.inner[n];if(void 0===r)return this.inner[n]=[[e,t]],void this.innerSize++;for(let i=0;i<r.length;i++)if(this.equalsFn(r[i][0],e))return void(r[i]=[e,t]);r.push([e,t]),this.innerSize++}delete(e){const t=this.mapKeyFn(e),n=this.inner[t];if(void 0===n)return!1;for(let r=0;r<n.length;r++)if(this.equalsFn(n[r][0],e))return 1===n.length?delete this.inner[t]:n.splice(r,1),this.innerSize--,!0;return!1}forEach(r){Vv(this.inner,(e,t)=>{for(const[e,n]of t)r(e,n)})}isEmpty(){return qv(this.inner)}size(){return this.innerSize}}const yy=new jv(Dm.comparator);const wy=new jv(Dm.comparator);function by(...e){let t=wy;for(const n of e)t=t.insert(n.key,n);return t}function Iy(e){let n=wy;return e.forEach((e,t)=>n=n.insert(e,t.overlayedDocument)),n}function Ty(){return new _y(e=>e.toString(),(e,t)=>e.isEqual(t))}const Ey=new jv(Dm.comparator),Cy=new Kv(Dm.comparator);function Sy(...e){let t=Cy;for(const n of e)t=t.add(n);return t}const ky=new Kv(Tm);function Ay(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:av(t)?"-0":t}}function Ny(e){return{integerValue:""+e}}function Ry(e,t){return ov(t)?Ny(t):Ay(e,t)}class Py{constructor(){this._=void 0}}function Dy(e,t){return e instanceof Uy?g_(e=t)||(e=e)&&"doubleValue"in e?t:{integerValue:0}:null}class xy extends Py{}class Oy extends Py{constructor(e){super(),this.elements=e}}function My(e,t){const n=qy(t);for(const t of e.elements)n.some(e=>c_(e,t))||n.push(t);return{arrayValue:{values:n}}}class Ly extends Py{constructor(e){super(),this.elements=e}}function Fy(e,t){let n=qy(t);for(const t of e.elements)n=n.filter(e=>!c_(e,t));return{arrayValue:{values:n}}}class Uy extends Py{constructor(e,t){super(),this.serializer=e,this.Pe=t}}function Vy(e){return Xv(e.integerValue||e.doubleValue)}function qy(e){return m_(e)&&e.arrayValue.values?e.arrayValue.values.slice():[]}class jy{constructor(e,t){this.field=e,this.transform=t}}class By{constructor(e,t){this.version=e,this.transformResults=t}}class zy{constructor(e,t){this.updateTime=e,this.exists=t}static none(){return new zy}static exists(e){return new zy(void 0,e)}static updateTime(e){return new zy(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 Ky(e,t){return void 0!==e.updateTime?t.isFoundDocument()&&t.version.isEqual(e.updateTime):void 0===e.exists||e.exists===t.isFoundDocument()}class $y{}function Wy(e,n){if(!e.hasLocalMutations||n&&0===n.fields.length)return null;if(null===n)return e.isNoDocument()?new tw(e.key,zy.none()):new Yy(e.key,e.data,zy.none());{const i=e.data,s=S_.empty();let t=new Kv(Pm.comparator);for(var r of n.fields)if(!t.has(r)){let e=i.field(r);null===e&&1<r.length&&(r=r.popLast(),e=i.field(r)),null===e?s.delete(r):s.set(r,e),t=t.add(r)}return new Jy(e.key,s,new Gv(t.toArray()),zy.none())}}function Gy(e,t,n){e instanceof Yy?function(e,t,n){const r=e.value.clone(),i=Zy(e.fieldTransforms,t,n.transformResults);r.setAll(i),t.convertToFoundDocument(n.version,r).setHasCommittedMutations()}(e,t,n):e instanceof Jy?function(e,t,n){if(!Ky(e.precondition,t))return t.convertToUnknownDocument(n.version);const r=Zy(e.fieldTransforms,t,n.transformResults),i=t.data;i.setAll(Xy(e)),i.setAll(r),t.convertToFoundDocument(n.version,i).setHasCommittedMutations()}(e,t,n):t.convertToNoDocument(n.version).setHasCommittedMutations()}function Hy(e,t,n,r){return e instanceof Yy?function(e,t,n,r){if(!Ky(e.precondition,t))return n;const i=e.value.clone(),s=ew(e.fieldTransforms,r,t);return i.setAll(s),t.convertToFoundDocument(t.version,i).setHasLocalMutations(),null}(e,t,n,r):e instanceof Jy?function(e,t,n,r){if(!Ky(e.precondition,t))return n;const i=ew(e.fieldTransforms,r,t),s=t.data;return s.setAll(Xy(e)),s.setAll(i),t.convertToFoundDocument(t.version,s).setHasLocalMutations(),null===n?null:n.unionWith(e.fieldMask.fields).unionWith(e.fieldTransforms.map(e=>e.field))}(e,t,n,r):(t=t,n=n,Ky(e.precondition,t)?(t.convertToNoDocument(t.version).setHasLocalMutations(),null):n)}function Qy(e,t){return e.type===t.type&&!!e.key.isEqual(t.key)&&!!e.precondition.isEqual(t.precondition)&&(n=e.fieldTransforms,r=t.fieldTransforms,!!(void 0===n&&void 0===r||n&&r&&Em(n,r,(e,t)=>function(e,t){return e.field.isEqual(t.field)&&(e=e.transform,t=t.transform,e instanceof Oy&&t instanceof Oy||e instanceof Ly&&t instanceof Ly?Em(e.elements,t.elements,c_):e instanceof Uy&&t instanceof Uy?c_(e.Pe,t.Pe):e instanceof xy&&t instanceof xy)}(e,t)))&&(0===e.type?e.value.isEqual(t.value):1!==e.type||e.data.isEqual(t.data)&&e.fieldMask.isEqual(t.fieldMask)));var n,r}class Yy extends $y{constructor(e,t,n,r=[]){super(),this.key=e,this.value=t,this.precondition=n,this.fieldTransforms=r,this.type=0}getFieldMask(){return null}}class Jy extends $y{constructor(e,t,n,r,i=[]){super(),this.key=e,this.data=t,this.fieldMask=n,this.precondition=r,this.fieldTransforms=i,this.type=1}getFieldMask(){return this.fieldMask}}function Xy(n){const r=new Map;return n.fieldMask.fields.forEach(e=>{var t;e.isEmpty()||(t=n.data.field(e),r.set(e,t))}),r}function Zy(e,t,n){const r=new Map;um(e.length===n.length);for(let u=0;u<n.length;u++){var i=e[u],s=i.transform,a=t.data.field(i.field);r.set(i.field,(o=s,c=a,l=n[u],o instanceof Oy?My(o,c):o instanceof Ly?Fy(o,c):l))}var o,c,l;return r}function ew(e,t,n){const r=new Map;for(const l of e){const e=l.transform,u=n.data.field(l.field);r.set(l.field,(i=e,s=u,a=t,c=o=void 0,i instanceof xy?function(e,t){const n={fields:{__type__:{stringValue:"server_timestamp"},__local_write_time__:{timestampValue:{seconds:e.seconds,nanos:e.nanoseconds}}}};return(t=t&&e_(t)?t_(t):t)&&(n.fields.__previous_value__=t),{mapValue:n}}(a,s):i instanceof Oy?My(i,s):i instanceof Ly?Fy(i,s):(o=Dy(i=i,s),c=Vy(o)+Vy(i.Pe),g_(o)&&g_(i.Pe)?Ny(c):Ay(i.serializer,c))))}var i,s,a,o,c;return r}class tw extends $y{constructor(e,t){super(),this.key=e,this.precondition=t,this.type=2,this.fieldTransforms=[]}getFieldMask(){return null}}class nw extends $y{constructor(e,t){super(),this.key=e,this.precondition=t,this.type=3,this.fieldTransforms=[]}getFieldMask(){return null}}class rw{constructor(e,t,n,r){this.batchId=e,this.localWriteTime=t,this.baseMutations=n,this.mutations=r}applyToRemoteDocument(e,t){var n=t.mutationResults;for(let r=0;r<this.mutations.length;r++){const i=this.mutations[r];i.key.isEqual(e.key)&&Gy(i,e,n[r])}}applyToLocalView(e,t){for(const n of this.baseMutations)n.key.isEqual(e.key)&&(t=Hy(n,e,t,this.localWriteTime));for(const r of this.mutations)r.key.isEqual(e.key)&&(t=Hy(r,e,t,this.localWriteTime));return t}applyToLocalDocumentSet(s,a){const o=Ty();return this.mutations.forEach(e=>{const t=s.get(e.key),n=t.overlayedDocument;let r=this.applyToLocalView(n,t.mutatedFields);r=a.has(e.key)?null:r;var i=Wy(n,r);null!==i&&o.set(e.key,i),n.isValidDocument()||n.convertToNoDocument(km.min())}),o}keys(){return this.mutations.reduce((e,t)=>e.add(t.key),Sy())}isEqual(e){return this.batchId===e.batchId&&Em(this.mutations,e.mutations,(e,t)=>Qy(e,t))&&Em(this.baseMutations,e.baseMutations,(e,t)=>Qy(e,t))}}class iw{constructor(e,t,n,r){this.batch=e,this.commitVersion=t,this.mutationResults=n,this.docVersions=r}static from(e,t,n){um(e.mutations.length===n.length);let r=Ey;var i=e.mutations;for(let s=0;s<i.length;s++)r=r.insert(i[s].key,n[s].version);return new iw(e,t,n,r)}}class sw{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{\n      largestBatchId: ${this.largestBatchId},\n      mutation: ${this.mutation.toString()}\n    }`}}class aw{constructor(e,t){this.count=e,this.unchangedNames=t}}function ow(e){switch(e){default:return lm();case hm.CANCELLED:case hm.UNKNOWN:case hm.DEADLINE_EXCEEDED:case hm.RESOURCE_EXHAUSTED:case hm.INTERNAL:case hm.UNAVAILABLE:case hm.UNAUTHENTICATED:return!1;case hm.INVALID_ARGUMENT:case hm.NOT_FOUND:case hm.ALREADY_EXISTS:case hm.PERMISSION_DENIED:case hm.FAILED_PRECONDITION:case hm.ABORTED:case hm.OUT_OF_RANGE:case hm.UNIMPLEMENTED:case hm.DATA_LOSS:return!0}}function cw(e){if(void 0===e)return am("GRPC error has no .code"),hm.UNKNOWN;switch(e){case Yg.OK:return hm.OK;case Yg.CANCELLED:return hm.CANCELLED;case Yg.UNKNOWN:return hm.UNKNOWN;case Yg.DEADLINE_EXCEEDED:return hm.DEADLINE_EXCEEDED;case Yg.RESOURCE_EXHAUSTED:return hm.RESOURCE_EXHAUSTED;case Yg.INTERNAL:return hm.INTERNAL;case Yg.UNAVAILABLE:return hm.UNAVAILABLE;case Yg.UNAUTHENTICATED:return hm.UNAUTHENTICATED;case Yg.INVALID_ARGUMENT:return hm.INVALID_ARGUMENT;case Yg.NOT_FOUND:return hm.NOT_FOUND;case Yg.ALREADY_EXISTS:return hm.ALREADY_EXISTS;case Yg.PERMISSION_DENIED:return hm.PERMISSION_DENIED;case Yg.FAILED_PRECONDITION:return hm.FAILED_PRECONDITION;case Yg.ABORTED:return hm.ABORTED;case Yg.OUT_OF_RANGE:return hm.OUT_OF_RANGE;case Yg.UNIMPLEMENTED:return hm.UNIMPLEMENTED;case Yg.DATA_LOSS:return hm.DATA_LOSS;default:return lm()}}function lw(){return new TextEncoder}(Rt=Yg=Yg||{})[Rt.OK=0]="OK",Rt[Rt.CANCELLED=1]="CANCELLED",Rt[Rt.UNKNOWN=2]="UNKNOWN",Rt[Rt.INVALID_ARGUMENT=3]="INVALID_ARGUMENT",Rt[Rt.DEADLINE_EXCEEDED=4]="DEADLINE_EXCEEDED",Rt[Rt.NOT_FOUND=5]="NOT_FOUND",Rt[Rt.ALREADY_EXISTS=6]="ALREADY_EXISTS",Rt[Rt.PERMISSION_DENIED=7]="PERMISSION_DENIED",Rt[Rt.UNAUTHENTICATED=16]="UNAUTHENTICATED",Rt[Rt.RESOURCE_EXHAUSTED=8]="RESOURCE_EXHAUSTED",Rt[Rt.FAILED_PRECONDITION=9]="FAILED_PRECONDITION",Rt[Rt.ABORTED=10]="ABORTED",Rt[Rt.OUT_OF_RANGE=11]="OUT_OF_RANGE",Rt[Rt.UNIMPLEMENTED=12]="UNIMPLEMENTED",Rt[Rt.INTERNAL=13]="INTERNAL",Rt[Rt.UNAVAILABLE=14]="UNAVAILABLE",Rt[Rt.DATA_LOSS=15]="DATA_LOSS";const uw=new qg([4294967295,4294967295],0);function hw(e){const t=lw().encode(e),n=new jg;return n.update(t),new Uint8Array(n.digest())}function dw(e){const t=new DataView(e.buffer),n=t.getUint32(0,!0),r=t.getUint32(4,!0),i=t.getUint32(8,!0),s=t.getUint32(12,!0);return[new qg([n,r],0),new qg([i,s],0)]}class pw{constructor(e,t,n){if(this.bitmap=e,this.padding=t,this.hashCount=n,t<0||8<=t)throw new fw(`Invalid padding: ${t}`);if(n<0)throw new fw(`Invalid hash count: ${n}`);if(0<e.length&&0===this.hashCount)throw new fw(`Invalid hash count: ${n}`);if(0===e.length&&0!==t)throw new fw(`Invalid padding when bitmap length is 0: ${t}`);this.Ie=8*e.length-t,this.Te=qg.fromNumber(this.Ie)}Ee(e,t,n){let r=e.add(t.multiply(qg.fromNumber(n)));return 1===r.compare(uw)&&(r=new qg([r.getBits(0),r.getBits(1)],0)),r.modulo(this.Te).toNumber()}de(e){return 0!=(this.bitmap[Math.floor(e/8)]&1<<e%8)}mightContain(e){if(0===this.Ie)return!1;const t=hw(e),[n,r]=dw(t);for(let i=0;i<this.hashCount;i++){const t=this.Ee(n,r,i);if(!this.de(t))return!1}return!0}static create(e,t,n){const r=e%8==0?0:8-e%8,i=new Uint8Array(Math.ceil(e/8)),s=new pw(i,r,t);return n.forEach(e=>s.insert(e)),s}insert(t){if(0!==this.Ie){const n=hw(t),[r,i]=dw(n);for(let e=0;e<this.hashCount;e++){const n=this.Ee(r,i,e);this.Ae(n)}}}Ae(e){var t=Math.floor(e/8);this.bitmap[t]|=1<<e%8}}class fw extends Error{constructor(){super(...arguments),this.name="BloomFilterError"}}class gw{constructor(e,t,n,r,i){this.snapshotVersion=e,this.targetChanges=t,this.targetMismatches=n,this.documentUpdates=r,this.resolvedLimboDocuments=i}static createSynthesizedRemoteEventForCurrentChange(e,t,n){const r=new Map;return r.set(e,mw.createSynthesizedTargetChangeForCurrentChange(e,t,n)),new gw(km.min(),r,new jv(Tm),yy,Sy())}}class mw{constructor(e,t,n,r,i){this.resumeToken=e,this.current=t,this.addedDocuments=n,this.modifiedDocuments=r,this.removedDocuments=i}static createSynthesizedTargetChangeForCurrentChange(e,t,n){return new mw(n,t,Sy(),Sy(),Sy())}}class vw{constructor(e,t,n,r){this.Re=e,this.removedTargetIds=t,this.key=n,this.Ve=r}}class _w{constructor(e,t){this.targetId=e,this.me=t}}class yw{constructor(e,t,n=Qv.EMPTY_BYTE_STRING,r=null){this.state=e,this.targetIds=t,this.resumeToken=n,this.cause=r}}class ww{constructor(){this.fe=0,this.ge=Tw(),this.pe=Qv.EMPTY_BYTE_STRING,this.ye=!1,this.we=!0}get current(){return this.ye}get resumeToken(){return this.pe}get Se(){return 0!==this.fe}get be(){return this.we}De(e){0<e.approximateByteSize()&&(this.we=!0,this.pe=e)}ve(){let n=Sy(),r=Sy(),i=Sy();return this.ge.forEach((e,t)=>{switch(t){case 0:n=n.add(e);break;case 2:r=r.add(e);break;case 1:i=i.add(e);break;default:lm()}}),new mw(this.pe,this.ye,n,r,i)}Ce(){this.we=!1,this.ge=Tw()}Fe(e,t){this.we=!0,this.ge=this.ge.insert(e,t)}Me(e){this.we=!0,this.ge=this.ge.remove(e)}xe(){this.fe+=1}Oe(){--this.fe,um(0<=this.fe)}Ne(){this.we=!0,this.ye=!0}}class bw{constructor(e){this.Le=e,this.Be=new Map,this.ke=yy,this.qe=Iw(),this.Qe=new jv(Tm)}Ke(e){for(const t of e.Re)e.Ve&&e.Ve.isFoundDocument()?this.$e(t,e.Ve):this.Ue(t,e.key,e.Ve);for(const n of e.removedTargetIds)this.Ue(n,e.key,e.Ve)}We(n){this.forEachTarget(n,e=>{const t=this.Ge(e);switch(n.state){case 0:this.ze(e)&&t.De(n.resumeToken);break;case 1:t.Oe(),t.Se||t.Ce(),t.De(n.resumeToken);break;case 2:t.Oe(),t.Se||this.removeTarget(e);break;case 3:this.ze(e)&&(t.Ne(),t.De(n.resumeToken));break;case 4:this.ze(e)&&(this.je(e),t.De(n.resumeToken));break;default:lm()}})}forEachTarget(e,n){0<e.targetIds.length?e.targetIds.forEach(n):this.Be.forEach((e,t)=>{this.ze(t)&&n(t)})}He(e){const t=e.targetId,n=e.me.count,r=this.Je(t);if(r){var i=r.target;if(Z_(i))if(0===n){const e=new Dm(i.path);this.Ue(t,e,k_.newNoDocument(e,km.min()))}else um(1===n);else{const r=this.Ye(t);if(r!==n){const n=this.Ze(e),s=n?this.Xe(n,e,r):1;if(0!==s){this.je(t);const e=2===s?"TargetPurposeExistenceFilterMismatchBloom":"TargetPurposeExistenceFilterMismatch";this.Qe=this.Qe.insert(t,e)}}}}}Ze(e){var t=e.me.unchangedNames;if(!t||!t.bits)return null;var{bits:{bitmap:n="",padding:r=0},hashCount:t=0}=t;let i,s;try{i=Zv(n).toUint8Array()}catch(e){if(e instanceof Hv)return om("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 pw(i,r,t)}catch(e){return om(e instanceof fw?"BloomFilter error: ":"Applying bloom filter failed: ",e),null}return 0===s.Ie?null:s}Xe(e,t,n){return t.me.count===n-this.nt(e,t.targetId)?0:2}nt(n,r){const e=this.Le.getRemoteKeysForTarget(r);let i=0;return e.forEach(e=>{var t=this.Le.tt(),t=`projects/${t.projectId}/databases/${t.database}/documents/${e.path.canonicalString()}`;n.mightContain(t)||(this.Ue(r,e,null),i++)}),i}rt(r){const i=new Map;this.Be.forEach((e,t)=>{var n=this.Je(t);if(n){if(e.current&&Z_(n.target)){const i=new Dm(n.target.path);null!==this.ke.get(i)||this.it(t,i)||this.Ue(t,i,k_.newNoDocument(i,r))}e.be&&(i.set(t,e.ve()),e.Ce())}});let s=Sy();this.qe.forEach((e,t)=>{let n=!0;t.forEachWhile(e=>{var t=this.Je(e);return!t||"TargetPurposeLimboResolution"===t.purpose||(n=!1)}),n&&(s=s.add(e))}),this.ke.forEach((e,t)=>t.setReadTime(r));var e=new gw(r,i,this.Qe,this.ke,s);return this.ke=yy,this.qe=Iw(),this.Qe=new jv(Tm),e}$e(e,t){var n;this.ze(e)&&(n=this.it(e,t.key)?2:0,this.Ge(e).Fe(t.key,n),this.ke=this.ke.insert(t.key,t),this.qe=this.qe.insert(t.key,this.st(t.key).add(e)))}Ue(e,t,n){if(this.ze(e)){const r=this.Ge(e);this.it(e,t)?r.Fe(t,1):r.Me(t),this.qe=this.qe.insert(t,this.st(t).delete(e)),n&&(this.ke=this.ke.insert(t,n))}}removeTarget(e){this.Be.delete(e)}Ye(e){var t=this.Ge(e).ve();return this.Le.getRemoteKeysForTarget(e).size+t.addedDocuments.size-t.removedDocuments.size}xe(e){this.Ge(e).xe()}Ge(e){let t=this.Be.get(e);return t||(t=new ww,this.Be.set(e,t)),t}st(e){let t=this.qe.get(e);return t||(t=new Kv(Tm),this.qe=this.qe.insert(e,t)),t}ze(e){var t=null!==this.Je(e);return t||sm("WatchChangeAggregator","Detected inactive target",e),t}Je(e){var t=this.Be.get(e);return t&&t.Se?null:this.Le.ot(e)}je(t){this.Be.set(t,new ww),this.Le.getRemoteKeysForTarget(t).forEach(e=>{this.Ue(t,e,null)})}it(e,t){return this.Le.getRemoteKeysForTarget(e).has(t)}}function Iw(){return new jv(Dm.comparator)}function Tw(){return new jv(Dm.comparator)}const Ew={asc:"ASCENDING",desc:"DESCENDING"},Cw={"<":"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"},Sw={and:"AND",or:"OR"};class kw{constructor(e,t){this.databaseId=e,this.useProto3Json=t}}function Aw(e,t){return e.useProto3Json||sv(t)?t:{value:t}}function Nw(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 Rw(e,t){return e.useProto3Json?t.toBase64():t.toUint8Array()}function Pw(e){return um(!!e),km.fromTimestamp((t=Jv(e),new Sm(t.seconds,t.nanos)));var t}function Dw(e,t){return xw(e,t).canonicalString()}function xw(e,t){const n=(e=e,new Nm(["projects",e.projectId,"databases",e.database]).child("documents"));return void 0===t?n:n.child(t)}function Ow(e){var t=Nm.fromString(e);return um(Xw(t)),t}function Mw(e,t){return Dw(e.databaseId,t.path)}function Lw(e,t){const n=Ow(t);if(n.get(1)!==e.databaseId.projectId)throw new dm(hm.INVALID_ARGUMENT,"Tried to deserialize key from different project: "+n.get(1)+" vs "+e.databaseId.projectId);if(n.get(3)!==e.databaseId.database)throw new dm(hm.INVALID_ARGUMENT,"Tried to deserialize key from different database: "+n.get(3)+" vs "+e.databaseId.database);return new Dm(qw(n))}function Fw(e,t){return Dw(e.databaseId,t)}function Uw(e){var t=Ow(e);return 4===t.length?Nm.emptyPath():qw(t)}function Vw(e){return new Nm(["projects",e.databaseId.projectId,"databases",e.databaseId.database]).canonicalString()}function qw(e){return um(4<e.length&&"documents"===e.get(4)),e.popFirst(5)}function jw(e,t,n){return{name:Mw(e,t),fields:n.value.mapValue.fields}}function Bw(e,t,n){const r=Lw(e,t.name),i=Pw(t.updateTime),s=t.createTime?Pw(t.createTime):km.min(),a=new S_({mapValue:{fields:t.fields}}),o=k_.newFoundDocument(r,i,s,a);return n&&o.setHasCommittedMutations(),n?o.setHasCommittedMutations():o}function zw(e,t){let n;if(t instanceof Yy)n={update:jw(e,t.key,t.value)};else if(t instanceof tw)n={delete:Mw(e,t.key)};else if(t instanceof Jy)n={update:jw(e,t.key,t.data),updateMask:function(e){const t=[];return e.fields.forEach(e=>t.push(e.canonicalString())),{fieldPaths:t}}(t.fieldMask)};else{if(!(t instanceof nw))return lm();n={verify:Mw(e,t.key)}}return 0<t.fieldTransforms.length&&(n.updateTransforms=t.fieldTransforms.map(e=>function(e){var t=e.transform;if(t instanceof xy)return{fieldPath:e.field.canonicalString(),setToServerValue:"REQUEST_TIME"};if(t instanceof Oy)return{fieldPath:e.field.canonicalString(),appendMissingElements:{values:t.elements}};if(t instanceof Ly)return{fieldPath:e.field.canonicalString(),removeAllFromArray:{values:t.elements}};if(t instanceof Uy)return{fieldPath:e.field.canonicalString(),increment:t.Pe};throw lm()}(e))),t.precondition.isNone||(n.currentDocument=(r=e,void 0!==(e=t.precondition).updateTime?{updateTime:(t=e.updateTime,Nw(r,t.toTimestamp()))}:void 0!==e.exists?{exists:e.exists}:lm())),n;var r}function Kw(t,e){const n=e.currentDocument?void 0!==(i=e.currentDocument).updateTime?zy.updateTime(Pw(i.updateTime)):void 0!==i.exists?zy.exists(i.exists):zy.none():zy.none(),r=e.updateTransforms?e.updateTransforms.map(e=>function(e,t){let n=null;if("setToServerValue"in t)um("REQUEST_TIME"===t.setToServerValue),n=new xy;else if("appendMissingElements"in t){const e=t.appendMissingElements.values||[];n=new Oy(e)}else if("removeAllFromArray"in t){const e=t.removeAllFromArray.values||[];n=new Ly(e)}else"increment"in t?n=new Uy(e,t.increment):lm();var r=Pm.fromServerFormat(t.fieldPath);return new jy(r,n)}(t,e)):[];var i;if(e.update){e.update.name;var s=Lw(t,e.update.name),a=new S_({mapValue:{fields:e.update.fields}});if(e.updateMask){const t=function(e){const t=e.fieldPaths||[];return new Gv(t.map(e=>Pm.fromServerFormat(e)))}(e.updateMask);return new Jy(s,a,t,n,r)}return new Yy(s,a,n,r)}if(e.delete){const r=Lw(t,e.delete);return new tw(r,n)}if(e.verify){const r=Lw(t,e.verify);return new nw(r,n)}return lm()}function $w(e,t){return{documents:[Fw(e,t.path)]}}function Ww(e,t){const n={structuredQuery:{}},r=t.path;let i;null!==t.collectionGroup?(i=r,n.structuredQuery.from=[{collectionId:t.collectionGroup,allDescendants:!0}]):(i=r.popLast(),n.structuredQuery.from=[{collectionId:r.lastSegment()}]),n.parent=Fw(e,i);var s=function(e){if(0!==e.length)return function n(e){return e instanceof x_?function(e){if("=="===e.op){if(__(e.value))return{unaryFilter:{field:Yw(e.field),op:"IS_NAN"}};if(v_(e.value))return{unaryFilter:{field:Yw(e.field),op:"IS_NULL"}}}else if("!="===e.op){if(__(e.value))return{unaryFilter:{field:Yw(e.field),op:"IS_NOT_NAN"}};if(v_(e.value))return{unaryFilter:{field:Yw(e.field),op:"IS_NOT_NULL"}}}return{fieldFilter:{field:Yw(e.field),op:Hw(e.op),value:e.value}}}(e):e instanceof O_?function(e){const t=e.getFilters().map(e=>n(e));return 1===t.length?t[0]:{compositeFilter:{op:Qw(e.op),filters:t}}}(e):lm()}(O_.create(e,"and"))}(t.filters);s&&(n.structuredQuery.where=s);s=function(e){if(0!==e.length)return e.map(e=>function(e){return{field:Yw(e.field),direction:(e=e.dir,Ew[e])}}(e))}(t.orderBy);s&&(n.structuredQuery.orderBy=s);s=Aw(e,t.limit);return null!==s&&(n.structuredQuery.limit=s),t.startAt&&(n.structuredQuery.startAt={before:(e=t.startAt).inclusive,values:e.position}),t.endAt&&(n.structuredQuery.endAt={before:!(t=t.endAt).inclusive,values:t.position}),{_t:n,parent:i}}function Gw(e){let t=Uw(e.parent);var n,r,i,s=e.structuredQuery,a=s.from?s.from.length:0;let o=null;if(0<a){um(1===a);const p=s.from[0];p.allDescendants?o=p.collectionId:t=t.child(p.collectionId)}let c=[];s.where&&(c=function(e){const t=function t(e){return void 0!==e.unaryFilter?function(e){switch(e.unaryFilter.op){case"IS_NAN":const t=Jw(e.unaryFilter.field);return x_.create(t,"==",{doubleValue:NaN});case"IS_NULL":const n=Jw(e.unaryFilter.field);return x_.create(n,"==",{nullValue:"NULL_VALUE"});case"IS_NOT_NAN":const r=Jw(e.unaryFilter.field);return x_.create(r,"!=",{doubleValue:NaN});case"IS_NOT_NULL":const i=Jw(e.unaryFilter.field);return x_.create(i,"!=",{nullValue:"NULL_VALUE"});default:return lm()}}(e):void 0!==e.fieldFilter?function(e){return x_.create(Jw(e.fieldFilter.field),function(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";default:return lm()}}(e.fieldFilter.op),e.fieldFilter.value)}(e):void 0!==e.compositeFilter?function(e){return O_.create(e.compositeFilter.filters.map(e=>t(e)),function(e){switch(e){case"AND":return"and";case"OR":return"or";default:return lm()}}(e.compositeFilter.op))}(e):lm()}(e);return t instanceof O_&&F_(t)?t.getFilters():[t]}(s.where));let l=[];s.orderBy&&(l=s.orderBy.map(e=>function(e){return new P_(Jw(e.field),function(e){switch(e){case"ASCENDING":return"asc";case"DESCENDING":return"desc";default:return}}(e.direction))}(e)));let u=null;s.limit&&(u=(e=s.limit,sv(n="object"==typeof e?e.value:e)?null:n));let h=null;s.startAt&&(h=(r=s.startAt,i=!!r.before,n=r.values||[],new A_(n,i)));let d=null;return s.endAt&&(d=(r=s.endAt,i=!r.before,s=r.values||[],new A_(s,i))),iy(t,o,l,c,u,"F",h,d)}function Hw(e){return Cw[e]}function Qw(e){return Sw[e]}function Yw(e){return{fieldPath:e.canonicalString()}}function Jw(e){return Pm.fromServerFormat(e.fieldPath)}function Xw(e){return 4<=e.length&&"projects"===e.get(0)&&"databases"===e.get(2)}class Zw{constructor(e,t,n,r,i=km.min(),s=km.min(),a=Qv.EMPTY_BYTE_STRING,o=null){this.target=e,this.targetId=t,this.purpose=n,this.sequenceNumber=r,this.snapshotVersion=i,this.lastLimboFreeSnapshotVersion=s,this.resumeToken=a,this.expectedCount=o}withSequenceNumber(e){return new Zw(this.target,this.targetId,this.purpose,e,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,this.expectedCount)}withResumeToken(e,t){return new Zw(this.target,this.targetId,this.purpose,this.sequenceNumber,t,this.lastLimboFreeSnapshotVersion,e,null)}withExpectedCount(e){return new Zw(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,e)}withLastLimboFreeSnapshotVersion(e){return new Zw(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,e,this.resumeToken,this.expectedCount)}}class eb{constructor(e){this.ct=e}}function tb(e,t){const n=t.key,r={prefixPath:n.getCollectionPath().popLast().toArray(),collectionGroup:n.collectionGroup,documentId:n.path.lastSegment(),readTime:nb(t.readTime),hasCommittedMutations:t.hasCommittedMutations};if(t.isFoundDocument())r.document={name:Mw(i=e.ct,(e=t).key),fields:e.data.value.mapValue.fields,updateTime:Nw(i,e.version.toTimestamp()),createTime:Nw(i,e.createTime.toTimestamp())};else if(t.isNoDocument())r.noDocument={path:n.path.toArray(),readTime:rb(t.version)};else{if(!t.isUnknownDocument())return lm();r.unknownDocument={path:n.path.toArray(),version:rb(t.version)}}var i;return r}function nb(e){var t=e.toTimestamp();return[t.seconds,t.nanoseconds]}function rb(e){var t=e.toTimestamp();return{seconds:t.seconds,nanoseconds:t.nanoseconds}}function ib(e){var t=new Sm(e.seconds,e.nanoseconds);return km.fromTimestamp(t)}function sb(t,e){const n=(e.baseMutations||[]).map(e=>Kw(t.ct,e));for(let s=0;s<e.mutations.length-1;++s){const n=e.mutations[s];if(s+1<e.mutations.length&&void 0!==e.mutations[s+1].transform){const r=e.mutations[s+1];n.updateTransforms=r.transform.fieldTransforms,e.mutations.splice(s+1,1),++s}}const r=e.mutations.map(e=>Kw(t.ct,e)),i=Sm.fromMillis(e.localWriteTimeMs);return new rw(e.batchId,i,n,r)}function ab(e){var t,n=ib(e.readTime),r=void 0!==e.lastLimboFreeSnapshotVersion?ib(e.lastLimboFreeSnapshotVersion):km.min(),i=void 0!==e.query.documents?(um(1===(t=e.query).documents.length),ly(sy(Uw(t.documents[0])))):ly(Gw(e.query));return new Zw(i,e.targetId,"TargetPurposeListen",e.lastListenSequenceNumber,n,r,Qv.fromBase64String(e.resumeToken))}function ob(e,t){var n=rb(t.snapshotVersion),r=rb(t.lastLimboFreeSnapshotVersion),i=Z_(t.target)?$w(e.ct,t.target):Ww(e.ct,t.target)._t,s=t.resumeToken.toBase64();return{targetId:t.targetId,canonicalId:J_(t.target),readTime:n,resumeToken:s,lastListenSequenceNumber:t.sequenceNumber,lastLimboFreeSnapshotVersion:r,query:i}}function cb(e){var t=Gw({parent:e.parent,structuredQuery:e.structuredQuery});return"LAST"===e.limitType?hy(t,t.limit,"L"):t}function lb(e,t){return new sw(t.largestBatchId,Kw(e.ct,t.overlayMutation))}function ub(e,t){var n=t.path.lastSegment();return[e,cv(t.path.popLast()),n]}function hb(e,t,n,r){return{indexId:e,uid:t,sequenceNumber:n,readTime:rb(r.readTime),documentKey:cv(r.documentKey.path),largestBatchId:r.largestBatchId}}class db{getBundleMetadata(e,t){return pb(e).get(t).next(e=>{if(e)return{id:(e=e).bundleId,createTime:ib(e.createTime),version:e.version}})}saveBundleMetadata(e,t){return pb(e).put({bundleId:(t=t).id,createTime:rb(Pw(t.createTime)),version:t.version})}getNamedQuery(e,t){return fb(e).get(t).next(e=>{if(e)return{name:(e=e).name,query:cb(e.bundledQuery),readTime:ib(e.readTime)}})}saveNamedQuery(e,t){return fb(e).put({name:(t=t).name,readTime:rb(Pw(t.readTime)),bundledQuery:t.bundledQuery})}}function pb(e){return Fv(e,"bundles")}function fb(e){return Fv(e,"namedQueries")}class gb{constructor(e,t){this.serializer=e,this.userId=t}static lt(e,t){var n=t.uid||"";return new gb(e,n)}getOverlay(e,t){return mb(e).get(ub(this.userId,t)).next(e=>e?lb(this.serializer,e):null)}getOverlays(e,t){const n=Ty();return $m.forEach(t,t=>this.getOverlay(e,t).next(e=>{null!==e&&n.set(t,e)})).next(()=>n)}saveOverlays(r,i,e){const s=[];return e.forEach((e,t)=>{var n=new sw(i,t);s.push(this.ht(r,n))}),$m.waitFor(s)}removeOverlaysForBatchId(n,e,r){const t=new Set;e.forEach(e=>t.add(cv(e.getCollectionPath())));const i=[];return t.forEach(e=>{var t=IDBKeyRange.bound([this.userId,e,r],[this.userId,e,r+1],!1,!0);i.push(mb(n).j("collectionPathOverlayIndex",t))}),$m.waitFor(i)}getOverlaysForCollection(e,t,n){const r=Ty(),i=cv(t),s=IDBKeyRange.bound([this.userId,i,n],[this.userId,i,Number.POSITIVE_INFINITY],!0);return mb(e).U("collectionPathOverlayIndex",s).next(e=>{for(const t of e){const e=lb(this.serializer,t);r.set(e.getKey(),e)}return r})}getOverlaysForCollectionGroup(e,t,n,i){const s=Ty();let a;var r=IDBKeyRange.bound([this.userId,t,n],[this.userId,t,Number.POSITIVE_INFINITY],!0);return mb(e).J({index:"collectionGroupOverlayIndex",range:r},(e,t,n)=>{const r=lb(this.serializer,t);s.size()<i||r.largestBatchId===a?(s.set(r.getKey(),r),a=r.largestBatchId):n.done()}).next(()=>s)}ht(e,t){return mb(e).put(function(e,t,n){var[,r,i]=ub(t,n.mutation.key);return{userId:t,collectionPath:r,documentId:i,collectionGroup:n.mutation.key.getCollectionGroup(),largestBatchId:n.largestBatchId,overlayMutation:zw(e.ct,n.mutation)}}(this.serializer,this.userId,t))}}function mb(e){return Fv(e,"documentOverlays")}class vb{Pt(e){return Fv(e,"globals")}getSessionToken(e){return this.Pt(e).get("sessionToken").next(e=>{var t=null==e?void 0:e.value;return t?Qv.fromUint8Array(t):Qv.EMPTY_BYTE_STRING})}setSessionToken(e,t){return this.Pt(e).put({name:"sessionToken",value:t.toUint8Array()})}}class _b{constructor(){}It(e,t){this.Tt(e,t),t.Et()}Tt(t,n){if("nullValue"in t)this.dt(n,5);else if("booleanValue"in t)this.dt(n,10),n.At(t.booleanValue?1:0);else if("integerValue"in t)this.dt(n,15),n.At(Xv(t.integerValue));else if("doubleValue"in t){var e=Xv(t.doubleValue);isNaN(e)?this.dt(n,13):(this.dt(n,15),av(e)?n.At(0):n.At(e))}else if("timestampValue"in t){let e=t.timestampValue;this.dt(n,20),"string"==typeof e&&(e=Jv(e)),n.Rt(`${e.seconds||""}`),n.At(e.nanos||0)}else"stringValue"in t?(this.Vt(t.stringValue,n),this.ft(n)):"bytesValue"in t?(this.dt(n,30),n.gt(Zv(t.bytesValue)),this.ft(n)):"referenceValue"in t?this.yt(t.referenceValue,n):"geoPointValue"in t?(e=t.geoPointValue,this.dt(n,45),n.At(e.latitude||0),n.At(e.longitude||0)):"mapValue"in t?I_(t)?this.dt(n,Number.MAX_SAFE_INTEGER):w_(t)?this.wt(t.mapValue,n):(this.St(t.mapValue,n),this.ft(n)):"arrayValue"in t?(this.bt(t.arrayValue,n),this.ft(n)):lm()}Vt(e,t){this.dt(t,25),this.Dt(e,t)}Dt(e,t){t.Rt(e)}St(e,t){var n=e.fields||{};this.dt(t,55);for(const e of Object.keys(n))this.Vt(e,t),this.Tt(n[e],t)}wt(e,t){var n=e.fields||{};this.dt(t,53);var r=(null===(r=null===(r=n.value.arrayValue)||void 0===r?void 0:r.values)||void 0===r?void 0:r.length)||0;this.dt(t,15),t.At(Xv(r)),this.Vt("value",t),this.Tt(n.value,t)}bt(e,t){var n=e.values||[];this.dt(t,50);for(const e of n)this.Tt(e,t)}yt(e,t){this.dt(t,37),Dm.fromName(e).path.forEach(e=>{this.dt(t,60),this.Dt(e,t)})}dt(e,t){e.At(t)}ft(e){e.At(2)}}function yb(e){var t=64-function(e){let t=0;for(let r=0;r<8;++r){var n=function(e){if(0===e)return 8;let t=0;return e>>4==0&&(t+=4,e<<=4),e>>6==0&&(t+=2,e<<=2),e>>7==0&&(t+=1),t}(255&e[r]);if(t+=n,8!==n)break}return t}(e);return Math.ceil(t/8)}_b.vt=new _b;class wb{constructor(){this.buffer=new Uint8Array(1024),this.position=0}Ct(e){const t=e[Symbol.iterator]();let n=t.next();for(;!n.done;)this.Ft(n.value),n=t.next();this.Mt()}xt(e){const t=e[Symbol.iterator]();let n=t.next();for(;!n.done;)this.Ot(n.value),n=t.next();this.Nt()}Lt(e){for(const t of e){const e=t.charCodeAt(0);if(e<128)this.Ft(e);else if(e<2048)this.Ft(960|e>>>6),this.Ft(128|63&e);else if(t<"\ud800"||"\udbff"<t)this.Ft(480|e>>>12),this.Ft(128|63&e>>>6),this.Ft(128|63&e);else{const e=t.codePointAt(0);this.Ft(240|e>>>18),this.Ft(128|63&e>>>12),this.Ft(128|63&e>>>6),this.Ft(128|63&e)}}this.Mt()}Bt(e){for(const t of e){const e=t.charCodeAt(0);if(e<128)this.Ot(e);else if(e<2048)this.Ot(960|e>>>6),this.Ot(128|63&e);else if(t<"\ud800"||"\udbff"<t)this.Ot(480|e>>>12),this.Ot(128|63&e>>>6),this.Ot(128|63&e);else{const e=t.codePointAt(0);this.Ot(240|e>>>18),this.Ot(128|63&e>>>12),this.Ot(128|63&e>>>6),this.Ot(128|63&e)}}this.Nt()}kt(e){var t=this.qt(e),n=yb(t);this.Qt(1+n),this.buffer[this.position++]=255&n;for(let r=t.length-n;r<t.length;++r)this.buffer[this.position++]=255&t[r]}Kt(e){var t=this.qt(e),n=yb(t);this.Qt(1+n),this.buffer[this.position++]=~(255&n);for(let r=t.length-n;r<t.length;++r)this.buffer[this.position++]=~(255&t[r])}$t(){this.Ut(255),this.Ut(255)}Wt(){this.Gt(255),this.Gt(255)}reset(){this.position=0}seed(e){this.Qt(e.length),this.buffer.set(e,this.position),this.position+=e.length}zt(){return this.buffer.slice(0,this.position)}qt(e){const t=function(e){const t=new DataView(new ArrayBuffer(8));return t.setFloat64(0,e,!1),new Uint8Array(t.buffer)}(e),n=0!=(128&t[0]);t[0]^=n?255:128;for(let r=1;r<t.length;++r)t[r]^=n?255:0;return t}Ft(e){var t=255&e;0==t?(this.Ut(0),this.Ut(255)):255==t?(this.Ut(255),this.Ut(0)):this.Ut(t)}Ot(e){var t=255&e;0==t?(this.Gt(0),this.Gt(255)):255==t?(this.Gt(255),this.Gt(0)):this.Gt(e)}Mt(){this.Ut(0),this.Ut(1)}Nt(){this.Gt(0),this.Gt(1)}Ut(e){this.Qt(1),this.buffer[this.position++]=e}Gt(e){this.Qt(1),this.buffer[this.position++]=~e}Qt(e){var t=e+this.position;if(!(t<=this.buffer.length)){let e=2*this.buffer.length;e<t&&(e=t);const n=new Uint8Array(e);n.set(this.buffer),this.buffer=n}}}class bb{constructor(e){this.jt=e}gt(e){this.jt.Ct(e)}Rt(e){this.jt.Lt(e)}At(e){this.jt.kt(e)}Et(){this.jt.$t()}}class Ib{constructor(e){this.jt=e}gt(e){this.jt.xt(e)}Rt(e){this.jt.Bt(e)}At(e){this.jt.Kt(e)}Et(){this.jt.Wt()}}class Tb{constructor(){this.jt=new wb,this.Ht=new bb(this.jt),this.Jt=new Ib(this.jt)}seed(e){this.jt.seed(e)}Yt(e){return 0===e?this.Ht:this.Jt}zt(){return this.jt.zt()}reset(){this.jt.reset()}}class Eb{constructor(e,t,n,r){this.indexId=e,this.documentKey=t,this.arrayValue=n,this.directionalValue=r}Zt(){const e=this.directionalValue.length,t=0===e||255===this.directionalValue[e-1]?e+1:e,n=new Uint8Array(t);return n.set(this.directionalValue,0),t!==e?n.set([0],this.directionalValue.length):++n[n.length-1],new Eb(this.indexId,this.documentKey,this.arrayValue,n)}}function Cb(e,t){let n=e.indexId-t.indexId;return 0!==n?n:(n=Sb(e.arrayValue,t.arrayValue),0!==n?n:(n=Sb(e.directionalValue,t.directionalValue),0!==n?n:Dm.comparator(e.documentKey,t.documentKey)))}function Sb(e,t){for(let r=0;r<e.length&&r<t.length;++r){var n=e[r]-t[r];if(0!=n)return n}return e.length-t.length}class kb{constructor(e){this.Xt=new Kv((e,t)=>Pm.comparator(e.field,t.field)),this.collectionId=null!=e.collectionGroup?e.collectionGroup:e.path.lastSegment(),this.en=e.orderBy,this.tn=[];for(const t of e.filters){const e=t;e.isInequality()?this.Xt=this.Xt.add(e):this.tn.push(e)}}get nn(){return 1<this.Xt.size}rn(e){if(um(e.collectionGroup===this.collectionId),this.nn)return!1;const t=Om(e);if(void 0!==t&&!this.sn(t))return!1;const n=Mm(e);let r=new Set,i=0,s=0;for(;i<n.length&&this.sn(n[i]);++i)r=r.add(n[i].fieldPath.canonicalString());if(i===n.length)return!0;if(0<this.Xt.size){const e=this.Xt.getIterator().getNext();if(!r.has(e.field.canonicalString())){const t=n[i];if(!this.on(e,t)||!this._n(this.en[s++],t))return!1}++i}for(;i<n.length;++i){const e=n[i];if(s>=this.en.length||!this._n(this.en[s++],e))return!1}return!0}an(){if(this.nn)return null;let e=new Kv(Pm.comparator);const t=[];for(const n of this.tn)n.field.isKeyField()||("array-contains"===n.op||"array-contains-any"===n.op?t.push(new Lm(n.field,2)):e.has(n.field)||(e=e.add(n.field),t.push(new Lm(n.field,0))));for(const r of this.en)r.field.isKeyField()||e.has(r.field)||(e=e.add(r.field),t.push(new Lm(r.field,"asc"===r.dir?0:1)));return new xm(xm.UNKNOWN_ID,this.collectionId,t,Fm.empty())}sn(e){for(const t of this.tn)if(this.on(t,e))return!0;return!1}on(e,t){if(void 0===e||!e.field.isEqual(t.fieldPath))return!1;var n="array-contains"===e.op||"array-contains-any"===e.op;return 2===t.kind==n}_n(e,t){return!!e.field.isEqual(t.fieldPath)&&(0===t.kind&&"asc"===e.dir||1===t.kind&&"desc"===e.dir)}}function Ab(e){if(0===e.getFilters().length)return[];const t=function t(e){if(um(e instanceof x_||e instanceof O_),e instanceof x_)return e;if(1===e.filters.length)return t(e.filters[0]);const n=e.filters.map(e=>t(e));let r=O_.create(n,e.op);return r=Ob(r),Pb(r)?r:(um(r instanceof O_),um(M_(r)),um(1<r.filters.length),r.filters.reduce((e,t)=>Db(e,t)))}(function t(n){var e;if(um(n instanceof x_||n instanceof O_),n instanceof x_){if(n instanceof W_){const r=(null===(e=null===(e=n.value.arrayValue)||void 0===e?void 0:e.values)||void 0===e?void 0:e.map(e=>x_.create(n.field,"==",e)))||[];return O_.create(r,"or")}return n}const r=n.filters.map(e=>t(e));return O_.create(r,n.op)}(e));return um(Pb(t)),Nb(t)||Rb(t)?[t]:t.getFilters()}function Nb(e){return e instanceof x_}function Rb(e){return e instanceof O_&&F_(e)}function Pb(e){return Nb(e)||Rb(e)||function(e){if(e instanceof O_&&L_(e)){for(const t of e.getFilters())if(!Nb(t)&&!Rb(t))return!1;return!0}return!1}(e)}function Db(e,t){var n,r;return um(e instanceof x_||e instanceof O_),um(t instanceof x_||t instanceof O_),Ob(e instanceof x_?t instanceof x_?(n=e,r=t,O_.create([n,r],"and")):xb(e,t):t instanceof x_?xb(t,e):function(e,t){if(um(0<e.filters.length&&0<t.filters.length),M_(e)&&M_(t))return V_(e,t.getFilters());const n=L_(e)?e:t,r=L_(e)?t:e,i=n.filters.map(e=>Db(e,r));return O_.create(i,"or")}(e,t))}function xb(t,e){if(M_(e))return V_(e,t.getFilters());var n=e.filters.map(e=>Db(t,e));return O_.create(n,"or")}function Ob(t){if(um(t instanceof x_||t instanceof O_),t instanceof x_)return t;const e=t.getFilters();if(1===e.length)return Ob(e[0]);if(U_(t))return t;const n=e.map(e=>Ob(e)),r=[];return n.forEach(e=>{e instanceof x_?r.push(e):e instanceof O_&&(e.op===t.op?r.push(...e.filters):r.push(e))}),1===r.length?r[0]:O_.create(r,t.op)}class Mb{constructor(){this.un=new Lb}addToCollectionParentIndex(e,t){return this.un.add(t),$m.resolve()}getCollectionParents(e,t){return $m.resolve(this.un.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(qm.min())}getMinOffsetFromCollectionGroup(e,t){return $m.resolve(qm.min())}updateCollectionGroup(e,t,n){return $m.resolve()}updateIndexEntries(e,t){return $m.resolve()}}class Lb{constructor(){this.index={}}add(e){const t=e.lastSegment(),n=e.popLast(),r=this.index[t]||new Kv(Nm.comparator),i=!r.has(n);return this.index[t]=r.add(n),i}has(e){const t=e.lastSegment(),n=e.popLast(),r=this.index[t];return r&&r.has(n)}getEntries(e){return(this.index[e]||new Kv(Nm.comparator)).toArray()}}const Fb=new Uint8Array(0);class Ub{constructor(e,t){this.databaseId=t,this.cn=new Lb,this.ln=new _y(e=>J_(e),(e,t)=>X_(e,t)),this.uid=e.uid||""}addToCollectionParentIndex(e,t){if(this.cn.has(t))return $m.resolve();var n=t.lastSegment(),r=t.popLast();e.addOnCommittedListener(()=>{this.cn.add(t)});r={collectionId:n,parent:cv(r)};return Vb(e).put(r)}getCollectionParents(e,n){const r=[],t=IDBKeyRange.bound([n,""],[Cm(n),""],!1,!0);return Vb(e).U(t).next(e=>{for(const t of e){if(t.collectionId!==n)break;r.push(uv(t.parent))}return r})}addFieldIndex(e,t){const n=jb(e),r={indexId:t.indexId,collectionGroup:t.collectionGroup,fields:t.fields.map(e=>[e.fieldPath.canonicalString(),e.kind])};delete r.indexId;const i=n.add(r);if(t.indexState){const n=Bb(e);return i.next(e=>{n.put(hb(e,this.uid,t.indexState.sequenceNumber,t.indexState.offset))})}return i.next()}deleteFieldIndex(e,t){const n=jb(e),r=Bb(e),i=qb(e);return n.delete(t.indexId).next(()=>r.delete(IDBKeyRange.bound([t.indexId],[t.indexId+1],!1,!0))).next(()=>i.delete(IDBKeyRange.bound([t.indexId],[t.indexId+1],!1,!0)))}deleteAllFieldIndexes(e){const t=jb(e),n=qb(e),r=Bb(e);return t.j().next(()=>n.j()).next(()=>r.j())}createTargetIndexes(n,e){return $m.forEach(this.hn(e),t=>this.getIndexType(n,t).next(e=>{if(0===e||1===e){const e=new kb(t).an();if(null!=e)return this.addFieldIndex(n,e)}}))}getDocumentsMatchingTarget(e,u){const h=qb(e);let d=!0;const n=new Map;return $m.forEach(this.hn(u),t=>this.Pn(e,t).next(e=>{d=d&&!!e,n.set(t,e)})).next(()=>{if(d){let l=Sy();const d=[];return $m.forEach(n,(e,t)=>{var n;sm("IndexedDbIndexManager",`Using index ${n=e,`id=${n.indexId}|cg=${n.collectionGroup}|f=${n.fields.map(e=>`${e.fieldPath}:${e.kind}`).join(",")}`} to execute ${J_(u)}`);var r=function(e,t){var n=Om(t);if(void 0===n)return null;for(const t of ey(e,n.fieldPath))switch(t.op){case"array-contains-any":return t.value.arrayValue.values||[];case"array-contains":return[t.value]}return null}(t,e),i=function(e,t){const n=new Map;for(const r of Mm(t))for(const t of ey(e,r.fieldPath))switch(t.op){case"==":case"in":n.set(r.fieldPath.canonicalString(),t.value);break;case"not-in":case"!=":return n.set(r.fieldPath.canonicalString(),t.value),Array.from(n.values())}return null}(t,e),s=function(e,t){const n=[];let r=!0;for(const i of Mm(t)){const t=(0===i.kind?ty:ny)(e,i.fieldPath,e.startAt);n.push(t.value),r=r&&t.inclusive}return new A_(n,r)}(t,e),a=function(e,t){const n=[];let r=!0;for(const i of Mm(t)){const t=(0===i.kind?ny:ty)(e,i.fieldPath,e.endAt);n.push(t.value),r=r&&t.inclusive}return new A_(n,r)}(t,e),o=this.In(e,t,s),c=this.In(e,t,a),i=this.Tn(e,t,i),i=this.En(e.indexId,r,o,s.inclusive,c,a.inclusive,i);return $m.forEach(i,e=>h.G(e,u.limit).next(e=>{e.forEach(e=>{var t=Dm.fromSegments(e.documentKey);l.has(t)||(l=l.add(t),d.push(t))})}))}).next(()=>d)}return $m.resolve(null)})}hn(t){let e=this.ln.get(t);return e||(e=0===t.filters.length?[t]:Ab(O_.create(t.filters,"and")).map(e=>Y_(t.path,t.collectionGroup,t.orderBy,e.getFilters(),t.limit,t.startAt,t.endAt)),this.ln.set(t,e),e)}En(t,e,n,r,i,s,a){const o=(null!=e?e.length:1)*Math.max(n.length,i.length),c=o/(null!=e?e.length:1),l=[];for(let u=0;u<o;++u){const o=e?this.dn(e[u/c]):Fb,h=this.An(t,o,n[u%c],r),d=this.Rn(t,o,i[u%c],s),p=a.map(e=>this.An(t,o,e,!0));l.push(...this.createRange(h,d,p))}return l}An(e,t,n,r){const i=new Eb(e,Dm.empty(),t,n);return r?i:i.Zt()}Rn(e,t,n,r){const i=new Eb(e,Dm.empty(),t,n);return r?i.Zt():i}Pn(e,t){const r=new kb(t),n=null!=t.collectionGroup?t.collectionGroup:t.path.lastSegment();return this.getFieldIndexes(e,n).next(e=>{let t=null;for(const n of e)r.rn(n)&&(!t||n.fields.length>t.fields.length)&&(t=n);return t})}getIndexType(e,t){let n=2;const r=this.hn(t);return $m.forEach(r,t=>this.Pn(e,t).next(e=>{e?0!==n&&e.fields.length<function(e){let t=new Kv(Pm.comparator),n=!1;for(const r of e.filters)for(const e of r.getFlattenedFilters())e.field.isKeyField()||("array-contains"===e.op||"array-contains-any"===e.op?n=!0:t=t.add(e.field));for(const n of e.orderBy)n.field.isKeyField()||(t=t.add(n.field));return t.size+(n?1:0)}(t)&&(n=1):n=0})).next(()=>function(e){return null!==e.limit}(t)&&1<r.length&&2===n?1:n)}Vn(e,t){const n=new Tb;for(const i of Mm(e)){const e=t.data.field(i.fieldPath);if(null==e)return null;var r=n.Yt(i.kind);_b.vt.It(e,r)}return n.zt()}dn(e){const t=new Tb;return _b.vt.It(e,t.Yt(0)),t.zt()}mn(e,t){const n=new Tb;return _b.vt.It(f_(this.databaseId,t),n.Yt(0===(r=Mm(e)).length?0:r[r.length-1].kind)),n.zt();var r}Tn(e,t,n){if(null===n)return[];let r=[];r.push(new Tb);let i=0;for(const s of Mm(e)){const e=n[i++];for(const n of r)if(this.fn(t,s.fieldPath)&&m_(e))r=this.gn(r,s,e);else{const t=n.Yt(s.kind);_b.vt.It(e,t)}}return this.pn(r)}In(e,t,n){return this.Tn(e,t,n.position)}pn(e){const t=[];for(let n=0;n<e.length;++n)t[n]=e[n].zt();return t}gn(e,t,n){const r=[...e],i=[];for(const e of n.arrayValue.values||[])for(const n of r){const r=new Tb;r.seed(n.zt()),_b.vt.It(e,r.Yt(t.kind)),i.push(r)}return i}fn(e,t){return!!e.filters.find(e=>e instanceof x_&&e.field.isEqual(t)&&("in"===e.op||"not-in"===e.op))}getFieldIndexes(e,t){const n=jb(e),r=Bb(e);return(t?n.U("collectionGroupIndex",IDBKeyRange.bound(t,t)):n.U()).next(e=>{const s=[];return $m.forEach(e,i=>r.get([i.indexId,this.uid]).next(e=>{var t,n,r;s.push((t=i,n=(e=e)?new Fm(e.sequenceNumber,new qm(ib(e.readTime),new Dm(uv(e.documentKey)),e.largestBatchId)):Fm.empty(),r=t.fields.map(([e,t])=>new Lm(Pm.fromServerFormat(e),t)),new xm(t.indexId,t.collectionGroup,r,n)))})).next(()=>s)})}getNextCollectionGroupToUpdate(e){return this.getFieldIndexes(e).next(e=>0===e.length?null:(e.sort((e,t)=>{var n=e.indexState.sequenceNumber-t.indexState.sequenceNumber;return 0!=n?n:Tm(e.collectionGroup,t.collectionGroup)}),e[0].collectionGroup))}updateCollectionGroup(e,n,r){const i=jb(e),s=Bb(e);return this.yn(e).next(t=>i.U("collectionGroupIndex",IDBKeyRange.bound(n,n)).next(e=>$m.forEach(e,e=>s.put(hb(e.indexId,this.uid,t,r)))))}updateIndexEntries(i,e){const n=new Map;return $m.forEach(e,(t,r)=>{var e=n.get(t.collectionGroup);return(e?$m.resolve(e):this.getFieldIndexes(i,t.collectionGroup)).next(e=>(n.set(t.collectionGroup,e),$m.forEach(e,n=>this.wn(i,t,n).next(e=>{var t=this.Sn(r,n);return e.isEqual(t)?$m.resolve():this.bn(i,r,n,e,t)}))))})}Dn(e,t,n,r){return qb(e).put({indexId:r.indexId,uid:this.uid,arrayValue:r.arrayValue,directionalValue:r.directionalValue,orderedDocumentKey:this.mn(n,t.key),documentKey:t.key.path.toArray()})}vn(e,t,n,r){return qb(e).delete([r.indexId,this.uid,r.arrayValue,r.directionalValue,this.mn(n,t.key),t.key.path.toArray()])}wn(e,n,r){const t=qb(e);let i=new Kv(Cb);return t.J({index:"documentKeyIndex",range:IDBKeyRange.only([r.indexId,this.uid,this.mn(r,n)])},(e,t)=>{i=i.add(new Eb(r.indexId,n,t.arrayValue,t.directionalValue))}).next(()=>i)}Sn(e,t){let n=new Kv(Cb);var r=this.Vn(t,e);if(null==r)return n;const i=Om(t);if(null!=i){var s=e.data.field(i.fieldPath);if(m_(s))for(const i of s.arrayValue.values||[])n=n.add(new Eb(t.indexId,e.key,this.dn(i),r))}else n=n.add(new Eb(t.indexId,e.key,Fb,r));return n}bn(t,n,r,e,i){sm("IndexedDbIndexManager","Updating index entries for document '%s'",n.key);const s=[];return function(e,t,n,r,i){var s=e.getIterator(),a=t.getIterator();let o=Wv(s),c=Wv(a);for(;o||c;){let e=!1,t=!1;if(o&&c){const r=n(o,c);r<0?t=!0:0<r&&(e=!0)}else null!=o?t=!0:e=!0;e?(r(c),c=Wv(a)):t?(i(o),o=Wv(s)):(o=Wv(s),c=Wv(a))}}(e,i,Cb,e=>{s.push(this.Dn(t,n,r,e))},e=>{s.push(this.vn(t,n,r,e))}),$m.waitFor(s)}yn(e){let r=1;return Bb(e).J({index:"sequenceNumberIndex",reverse:!0,range:IDBKeyRange.upperBound([this.uid,Number.MAX_SAFE_INTEGER])},(e,t,n)=>{n.done(),r=t.sequenceNumber+1}).next(()=>r)}createRange(e,t,n){n=n.sort((e,t)=>Cb(e,t)).filter((e,t,n)=>!t||0!==Cb(e,n[t-1]));const r=[];r.push(e);for(const i of n){const n=Cb(i,e),s=Cb(i,t);if(0===n)r[0]=e.Zt();else if(0<n&&s<0)r.push(i),r.push(i.Zt());else if(0<s)break}r.push(t);const i=[];for(let a=0;a<r.length;a+=2){if(this.Cn(r[a],r[a+1]))return[];const t=[r[a].indexId,this.uid,r[a].arrayValue,r[a].directionalValue,Fb,[]],n=[r[a+1].indexId,this.uid,r[a+1].arrayValue,r[a+1].directionalValue,Fb,[]];i.push(IDBKeyRange.bound(t,n))}return i}Cn(e,t){return 0<Cb(e,t)}getMinOffsetFromCollectionGroup(e,t){return this.getFieldIndexes(e,t).next(zb)}getMinOffset(t,e){return $m.mapArray(this.hn(e),e=>this.Pn(t,e).next(e=>e||lm())).next(zb)}}function Vb(e){return Fv(e,"collectionParents")}function qb(e){return Fv(e,"indexEntries")}function jb(e){return Fv(e,"indexConfiguration")}function Bb(e){return Fv(e,"indexState")}function zb(e){um(0!==e.length);let t=e[0].indexState.offset,n=t.largestBatchId;for(let i=1;i<e.length;i++){var r=e[i].indexState.offset;jm(r,t)<0&&(t=r),n<r.largestBatchId&&(n=r.largestBatchId)}return new qm(t.readTime,t.documentKey,n)}const Kb={didRun:!1,sequenceNumbersCollected:0,targetsRemoved:0,documentsRemoved:0};class $b{constructor(e,t,n){this.cacheSizeCollectionThreshold=e,this.percentileToCollect=t,this.maximumSequenceNumbersToCollect=n}static withCacheSize(e){return new $b(e,$b.DEFAULT_COLLECTION_PERCENTILE,$b.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT)}}function Wb(e,t,n){const r=e.store("mutations"),i=e.store("documentMutations"),s=[],a=IDBKeyRange.only(n.batchId);let o=0;const c=r.J({range:a},(e,t,n)=>(o++,n.delete()));s.push(c.next(()=>{um(1===o)}));const l=[];for(const e of n.mutations){const r=pv(t,e.key.path,n.batchId);s.push(i.delete(r)),l.push(e.key)}return $m.waitFor(s).next(()=>l)}function Gb(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 lm();t=e.noDocument}return JSON.stringify(t).length}$b.DEFAULT_COLLECTION_PERCENTILE=10,$b.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT=1e3,$b.DEFAULT=new $b(41943040,$b.DEFAULT_COLLECTION_PERCENTILE,$b.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT),$b.DISABLED=new $b(-1,0,0);class Hb{constructor(e,t,n,r){this.userId=e,this.serializer=t,this.indexManager=n,this.referenceDelegate=r,this.Fn={}}static lt(e,t,n,r){um(""!==e.uid);var i=e.isAuthenticated()?e.uid:"";return new Hb(i,t,n,r)}checkEmpty(e){let r=!0;var t=IDBKeyRange.bound([this.userId,Number.NEGATIVE_INFINITY],[this.userId,Number.POSITIVE_INFINITY]);return Yb(e).J({index:"userMutationsIndex",range:t},(e,t,n)=>{r=!1,n.done()}).next(()=>r)}addMutationBatch(u,h,d,p){const f=Jb(u),g=Yb(u);return g.add({}).next(e=>{um("number"==typeof e);const t=new rw(e,h,d,p),n=(i=this.serializer,s=this.userId,a=t,o=a.baseMutations.map(e=>zw(i.ct,e)),c=a.mutations.map(e=>zw(i.ct,e)),{userId:s,batchId:a.batchId,localWriteTimeMs:a.localWriteTime.toMillis(),baseMutations:o,mutations:c}),r=[];var i,s,a,o,c;let l=new Kv((e,t)=>Tm(e.canonicalString(),t.canonicalString()));for(const u of p){const h=pv(this.userId,u.key.path,e);l=l.add(u.key.path.popLast()),r.push(g.put(n)),r.push(f.put(h,fv))}return l.forEach(e=>{r.push(this.indexManager.addToCollectionParentIndex(u,e))}),u.addOnCommittedListener(()=>{this.Fn[e]=t.keys()}),$m.waitFor(r).next(()=>t)})}lookupMutationBatch(e,t){return Yb(e).get(t).next(e=>e?(um(e.userId===this.userId),sb(this.serializer,e)):null)}Mn(e,n){return this.Fn[n]?$m.resolve(this.Fn[n]):this.lookupMutationBatch(e,n).next(e=>{if(e){var t=e.keys();return this.Fn[n]=t}return null})}getNextMutationBatchAfterBatchId(e,t){const r=t+1,n=IDBKeyRange.lowerBound([this.userId,r]);let i=null;return Yb(e).J({index:"userMutationsIndex",range:n},(e,t,n)=>{t.userId===this.userId&&(um(t.batchId>=r),i=sb(this.serializer,t)),n.done()}).next(()=>i)}getHighestUnacknowledgedBatchId(e){var t=IDBKeyRange.upperBound([this.userId,Number.POSITIVE_INFINITY]);let r=-1;return Yb(e).J({index:"userMutationsIndex",range:t,reverse:!0},(e,t,n)=>{r=t.batchId,n.done()}).next(()=>r)}getAllMutationBatches(e){var t=IDBKeyRange.bound([this.userId,-1],[this.userId,Number.POSITIVE_INFINITY]);return Yb(e).U("userMutationsIndex",t).next(e=>e.map(e=>sb(this.serializer,e)))}getAllMutationBatchesAffectingDocumentKey(a,o){const e=dv(this.userId,o.path),t=IDBKeyRange.lowerBound(e),c=[];return Jb(a).J({range:t},(e,t,n)=>{var[r,i,s]=e,i=uv(i);if(r===this.userId&&o.path.isEqual(i))return Yb(a).get(s).next(e=>{if(!e)throw lm();um(e.userId===this.userId),c.push(sb(this.serializer,e))});n.done()}).next(()=>c)}getAllMutationBatchesAffectingDocumentKeys(t,e){let o=new Kv(Tm);const n=[];return e.forEach(a=>{var e=dv(this.userId,a.path),e=IDBKeyRange.lowerBound(e),e=Jb(t).J({range:e},(e,t,n)=>{var[r,i,s]=e,i=uv(i);r===this.userId&&a.path.isEqual(i)?o=o.add(s):n.done()});n.push(e)}),$m.waitFor(n).next(()=>this.xn(t,o))}getAllMutationBatchesAffectingQuery(e,t){const a=t.path,o=a.length+1,n=dv(this.userId,a),r=IDBKeyRange.lowerBound(n);let c=new Kv(Tm);return Jb(e).J({range:r},(e,t,n)=>{var[r,i,s]=e,i=uv(i);r===this.userId&&a.isPrefixOf(i)?i.length===o&&(c=c.add(s)):n.done()}).next(()=>this.xn(e,c))}xn(t,e){const n=[],r=[];return e.forEach(e=>{r.push(Yb(t).get(e).next(e=>{if(null===e)throw lm();um(e.userId===this.userId),n.push(sb(this.serializer,e))}))}),$m.waitFor(r).next(()=>n)}removeMutationBatch(t,n){return Wb(t._e,this.userId,n).next(e=>(t.addOnCommittedListener(()=>{this.On(n.batchId)}),$m.forEach(e,e=>this.referenceDelegate.markPotentiallyOrphaned(t,e))))}On(e){delete this.Fn[e]}performConsistencyCheck(n){return this.checkEmpty(n).next(e=>{if(!e)return $m.resolve();const t=IDBKeyRange.lowerBound([this.userId]),r=[];return Jb(n).J({range:t},(e,t,n)=>{if(e[0]===this.userId){const t=uv(e[1]);r.push(t)}else n.done()}).next(()=>{um(0===r.length)})})}containsKey(e,t){return Qb(e,this.userId,t)}Nn(e){return Xb(e).get(this.userId).next(e=>e||{userId:this.userId,lastAcknowledgedBatchId:-1,lastStreamToken:""})}}function Qb(e,s,t){const n=dv(s,t.path),a=n[1],r=IDBKeyRange.lowerBound(n);let o=!1;return Jb(e).J({range:r,H:!0},(e,t,n)=>{var[r,i]=e;r===s&&i===a&&(o=!0),n.done()}).next(()=>o)}function Yb(e){return Fv(e,"mutations")}function Jb(e){return Fv(e,"documentMutations")}function Xb(e){return Fv(e,"mutationQueues")}class Zb{constructor(e){this.Ln=e}next(){return this.Ln+=2,this.Ln}static Bn(){return new Zb(0)}static kn(){return new Zb(-1)}}class eI{constructor(e,t){this.referenceDelegate=e,this.serializer=t}allocateTargetId(n){return this.qn(n).next(e=>{const t=new Zb(e.highestTargetId);return e.highestTargetId=t.next(),this.Qn(n,e).next(()=>e.highestTargetId)})}getLastRemoteSnapshotVersion(e){return this.qn(e).next(e=>km.fromTimestamp(new Sm(e.lastRemoteSnapshotVersion.seconds,e.lastRemoteSnapshotVersion.nanoseconds)))}getHighestSequenceNumber(e){return this.qn(e).next(e=>e.highestListenSequenceNumber)}setTargetsMetadata(t,n,r){return this.qn(t).next(e=>(e.highestListenSequenceNumber=n,r&&(e.lastRemoteSnapshotVersion=r.toTimestamp()),n>e.highestListenSequenceNumber&&(e.highestListenSequenceNumber=n),this.Qn(t,e)))}addTargetData(t,n){return this.Kn(t,n).next(()=>this.qn(t).next(e=>(e.targetCount+=1,this.$n(n,e),this.Qn(t,e))))}updateTargetData(e,t){return this.Kn(e,t)}removeTargetData(t,e){return this.removeMatchingKeysForTargetId(t,e.targetId).next(()=>tI(t).delete(e.targetId)).next(()=>this.qn(t)).next(e=>(um(0<e.targetCount),--e.targetCount,this.Qn(t,e)))}removeTargets(r,i,s){let a=0;const o=[];return tI(r).J((e,t)=>{var n=ab(t);n.sequenceNumber<=i&&null===s.get(n.targetId)&&(a++,o.push(this.removeTargetData(r,n)))}).next(()=>$m.waitFor(o)).next(()=>a)}forEachTarget(e,r){return tI(e).J((e,t)=>{var n=ab(t);r(n)})}qn(e){return nI(e).get("targetGlobalKey").next(e=>(um(null!==e),e))}Qn(e,t){return nI(e).put("targetGlobalKey",t)}Kn(e,t){return tI(e).put(ob(this.serializer,t))}$n(e,t){let n=!1;return e.targetId>t.highestTargetId&&(t.highestTargetId=e.targetId,n=!0),e.sequenceNumber>t.highestListenSequenceNumber&&(t.highestListenSequenceNumber=e.sequenceNumber,n=!0),n}getTargetCount(e){return this.qn(e).next(e=>e.targetCount)}getTargetData(e,i){var t=J_(i),t=IDBKeyRange.bound([t,Number.NEGATIVE_INFINITY],[t,Number.POSITIVE_INFINITY]);let s=null;return tI(e).J({range:t,index:"queryTargetsIndex"},(e,t,n)=>{var r=ab(t);X_(i,r.target)&&(s=r,n.done())}).next(()=>s)}addMatchingKeys(n,e,r){const i=[],s=rI(n);return e.forEach(e=>{var t=cv(e.path);i.push(s.put({targetId:r,path:t})),i.push(this.referenceDelegate.addReference(n,r,e))}),$m.waitFor(i)}removeMatchingKeys(n,e,r){const i=rI(n);return $m.forEach(e,e=>{var t=cv(e.path);return $m.waitFor([i.delete([r,t]),this.referenceDelegate.removeReference(n,r,e)])})}removeMatchingKeysForTargetId(e,t){const n=rI(e),r=IDBKeyRange.bound([t],[t+1],!1,!0);return n.delete(r)}getMatchingKeysForTargetId(e,t){const n=IDBKeyRange.bound([t],[t+1],!1,!0),r=rI(e);let i=Sy();return r.J({range:n,H:!0},(e,t,n)=>{var r=uv(e[1]),r=new Dm(r);i=i.add(r)}).next(()=>i)}containsKey(e,t){var n=cv(t.path),n=IDBKeyRange.bound([n],[Cm(n)],!1,!0);let r=0;return rI(e).J({index:"documentTargetsIndex",H:!0,range:n},([e],t,n)=>{0!==e&&(r++,n.done())}).next(()=>0<r)}ot(e,t){return tI(e).get(t).next(e=>e?ab(e):null)}}function tI(e){return Fv(e,"targets")}function nI(e){return Fv(e,"targetGlobal")}function rI(e){return Fv(e,"targetDocuments")}function iI([e,t],[n,r]){var i=Tm(e,n);return 0===i?Tm(t,r):i}class sI{constructor(e){this.Un=e,this.buffer=new Kv(iI),this.Wn=0}Gn(){return++this.Wn}zn(e){var t=[e,this.Gn()];if(this.buffer.size<this.Un)this.buffer=this.buffer.add(t);else{const e=this.buffer.last();iI(t,e)<0&&(this.buffer=this.buffer.delete(e).add(t))}}get maxValue(){return this.buffer.last()[0]}}class aI{constructor(e,t,n){this.garbageCollector=e,this.asyncQueue=t,this.localStore=n,this.jn=null}start(){-1!==this.garbageCollector.params.cacheSizeCollectionThreshold&&this.Hn(6e4)}stop(){this.jn&&(this.jn.cancel(),this.jn=null)}get started(){return null!==this.jn}Hn(e){sm("LruGarbageCollector",`Garbage collection scheduled in ${e}ms`),this.jn=this.asyncQueue.enqueueAfterDelay("lru_garbage_collection",e,async()=>{this.jn=null;try{await this.localStore.collectGarbage(this.garbageCollector)}catch(e){Jm(e)?sm("LruGarbageCollector","Ignoring IndexedDB error during garbage collection: ",e):await Km(e)}await this.Hn(3e5)})}}class oI{constructor(e,t){this.Jn=e,this.params=t}calculateTargetCount(e,t){return this.Jn.Yn(e).next(e=>Math.floor(t/100*e))}nthSequenceNumber(e,t){if(0===t)return $m.resolve(iv.oe);const n=new sI(t);return this.Jn.forEachTarget(e,e=>n.zn(e.sequenceNumber)).next(()=>this.Jn.Zn(e,e=>n.zn(e))).next(()=>n.maxValue)}removeTargets(e,t,n){return this.Jn.removeTargets(e,t,n)}removeOrphanedDocuments(e,t){return this.Jn.removeOrphanedDocuments(e,t)}collect(t,n){return-1===this.params.cacheSizeCollectionThreshold?(sm("LruGarbageCollector","Garbage collection skipped; disabled"),$m.resolve(Kb)):this.getCacheSize(t).next(e=>e<this.params.cacheSizeCollectionThreshold?(sm("LruGarbageCollector",`Garbage collection skipped; Cache size ${e} is lower than threshold ${this.params.cacheSizeCollectionThreshold}`),Kb):this.Xn(t,n))}getCacheSize(e){return this.Jn.getCacheSize(e)}Xn(t,n){let r,i,s,a,o,c,l;const u=Date.now();return this.calculateTargetCount(t,this.params.percentileToCollect).next(e=>(i=e>this.params.maximumSequenceNumbersToCollect?(sm("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=>(r=e,o=Date.now(),this.removeTargets(t,r,n))).next(e=>(s=e,c=Date.now(),this.removeOrphanedDocuments(t,r))).next(e=>(l=Date.now(),im()<=m.DEBUG&&sm("LruGarbageCollector",`LRU Garbage Collection\n\tCounted targets in ${a-u}ms\n\tDetermined least recently used ${i} in `+(o-a)+"ms\n"+`\tRemoved ${s} targets in `+(c-o)+"ms\n"+`\tRemoved ${e} documents in `+(l-c)+"ms\n"+`Total Duration: ${l-u}ms`),$m.resolve({didRun:!0,sequenceNumbersCollected:i,targetsRemoved:s,documentsRemoved:e})))}}class cI{constructor(e,t){this.db=e,this.garbageCollector=(e=this,t=t,new oI(e,t))}Yn(e){const n=this.er(e);return this.db.getTargetCache().getTargetCount(e).next(t=>n.next(e=>t+e))}er(e){let t=0;return this.Zn(e,e=>{t++}).next(()=>t)}forEachTarget(e,t){return this.db.getTargetCache().forEachTarget(e,t)}Zn(e,n){return this.tr(e,(e,t)=>n(t))}addReference(e,t,n){return lI(e,n)}removeReference(e,t,n){return lI(e,n)}removeTargets(e,t,n){return this.db.getTargetCache().removeTargets(e,t,n)}markPotentiallyOrphaned(e,t){return lI(e,t)}nr(t,n){let r=!1;return Xb(t).Y(e=>Qb(t,e,n).next(e=>(e&&(r=!0),$m.resolve(!e)))).next(()=>r)}removeOrphanedDocuments(n,r){const i=this.db.getRemoteDocumentCache().newChangeBuffer(),s=[];let a=0;return this.tr(n,(t,e)=>{if(e<=r){const r=this.nr(n,t).next(e=>{if(!e)return a++,i.getEntry(n,t).next(()=>(i.removeEntry(t,km.min()),rI(n).delete(function(e){return[0,cv(e.path)]}(t))))});s.push(r)}}).next(()=>$m.waitFor(s)).next(()=>i.apply(n)).next(()=>a)}removeTarget(e,t){var n=t.withSequenceNumber(e.currentSequenceNumber);return this.db.getTargetCache().updateTargetData(e,n)}updateLimboDocument(e,t){return lI(e,t)}tr(e,r){const t=rI(e);let i,s=iv.oe;return t.J({index:"documentTargetsIndex"},([e],{path:t,sequenceNumber:n})=>{0===e?(s!==iv.oe&&r(new Dm(uv(i)),s),s=n,i=t):s=iv.oe}).next(()=>{s!==iv.oe&&r(new Dm(uv(i)),s)})}getCacheSize(e){return this.db.getRemoteDocumentCache().getSize(e)}}function lI(e,t){return rI(e).put((e=e.currentSequenceNumber,{targetId:0,path:cv(t.path),sequenceNumber:e}))}class uI{constructor(){this.changes=new _y(e=>e.toString(),(e,t)=>e.isEqual(t)),this.changesApplied=!1}addEntry(e){this.assertNotApplied(),this.changes.set(e.key,e)}removeEntry(e,t){this.assertNotApplied(),this.changes.set(e,k_.newInvalidDocument(e).setReadTime(t))}getEntry(e,t){this.assertNotApplied();var n=this.changes.get(t);return void 0!==n?$m.resolve(n):this.getFromCache(e,t)}getEntries(e,t){return this.getAllFromCache(e,t)}apply(e){return this.assertNotApplied(),this.changesApplied=!0,this.applyChanges(e)}assertNotApplied(){}}class hI{constructor(e){this.serializer=e}setIndexManager(e){this.indexManager=e}addEntry(e,t,n){return gI(e).put(n)}removeEntry(e,t,n){return gI(e).delete(function(e,t){const n=e.path.toArray();return[n.slice(0,n.length-2),n[n.length-2],nb(t),n[n.length-1]]}(t,n))}updateMetadata(t,n){return this.getMetadata(t).next(e=>(e.byteSize+=n,this.rr(t,e)))}getEntry(e,n){let r=k_.newInvalidDocument(n);return gI(e).J({index:"documentKeyIndex",range:IDBKeyRange.only(mI(n))},(e,t)=>{r=this.ir(n,t)}).next(()=>r)}sr(e,n){let r={size:0,document:k_.newInvalidDocument(n)};return gI(e).J({index:"documentKeyIndex",range:IDBKeyRange.only(mI(n))},(e,t)=>{r={document:this.ir(n,t),size:Gb(t)}}).next(()=>r)}getEntries(e,t){let r=yy;return this._r(e,t,(e,t)=>{var n=this.ir(e,t);r=r.insert(e,n)}).next(()=>r)}ar(e,t){let r=yy,i=new jv(Dm.comparator);return this._r(e,t,(e,t)=>{var n=this.ir(e,t);r=r.insert(e,n),i=i.insert(e,Gb(t))}).next(()=>({documents:r,ur:i}))}_r(e,t,i){if(t.isEmpty())return $m.resolve();let n=new Kv(_I);t.forEach(e=>n=n.add(e));const r=IDBKeyRange.bound(mI(n.first()),mI(n.last())),s=n.getIterator();let a=s.getNext();return gI(e).J({index:"documentKeyIndex",range:r},(e,t,n)=>{for(var r=Dm.fromSegments([...t.prefixPath,t.collectionGroup,t.documentId]);a&&_I(a,r)<0;)i(a,null),a=s.getNext();a&&a.isEqual(r)&&(i(a,t),a=s.hasNext()?s.getNext():null),a?n.$(mI(a)):n.done()}).next(()=>{for(;a;)i(a,null),a=s.hasNext()?s.getNext():null})}getDocumentsMatchingQuery(e,n,t,r,i){const s=n.path,a=[s.popLast().toArray(),s.lastSegment(),nb(t.readTime),t.documentKey.path.isEmpty()?"":t.documentKey.path.lastSegment()],o=[s.popLast().toArray(),s.lastSegment(),[Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],""];return gI(e).U(IDBKeyRange.bound(a,o,!0)).next(e=>{null==i||i.incrementDocumentReadCount(e.length);let t=yy;for(const i of e){const e=this.ir(Dm.fromSegments(i.prefixPath.concat(i.collectionGroup,i.documentId)),i);e.isFoundDocument()&&(gy(n,e)||r.has(e.key))&&(t=t.insert(e.key,e))}return t})}getAllFromCollectionGroup(e,t,n,i){let s=yy;var r=vI(t,n),a=vI(t,qm.max());return gI(e).J({index:"collectionGroupIndex",range:IDBKeyRange.bound(r,a,!0)},(e,t,n)=>{var r=this.ir(Dm.fromSegments(t.prefixPath.concat(t.collectionGroup,t.documentId)),t);s=s.insert(r.key,r),s.size===i&&n.done()}).next(()=>s)}newChangeBuffer(e){return new pI(this,!!e&&e.trackRemovals)}getSize(e){return this.getMetadata(e).next(e=>e.byteSize)}getMetadata(e){return fI(e).get("remoteDocumentGlobalKey").next(e=>(um(!!e),e))}rr(e,t){return fI(e).put("remoteDocumentGlobalKey",t)}ir(e,t){if(t){const e=function(e,t){let n;if(t.document)n=Bw(e.ct,t.document,!!t.hasCommittedMutations);else if(t.noDocument){const e=Dm.fromSegments(t.noDocument.path),i=ib(t.noDocument.readTime);n=k_.newNoDocument(e,i),t.hasCommittedMutations&&n.setHasCommittedMutations()}else{if(!t.unknownDocument)return lm();{const e=Dm.fromSegments(t.unknownDocument.path),s=ib(t.unknownDocument.version);n=k_.newUnknownDocument(e,s)}}return t.readTime&&n.setReadTime((t=t.readTime,r=new Sm(t[0],t[1]),km.fromTimestamp(r))),n;var r}(this.serializer,t);if(!e.isNoDocument()||!e.version.isEqual(km.min()))return e}return k_.newInvalidDocument(e)}}function dI(e){return new hI(e)}class pI extends uI{constructor(e,t){super(),this.cr=e,this.trackRemovals=t,this.lr=new _y(e=>e.toString(),(e,t)=>e.isEqual(t))}applyChanges(s){const a=[];let o=0,c=new Kv((e,t)=>Tm(e.canonicalString(),t.canonicalString()));return this.changes.forEach((e,t)=>{var n=this.lr.get(e);if(a.push(this.cr.removeEntry(s,e,n.readTime)),t.isValidDocument()){var r=tb(this.cr.serializer,t);c=c.add(e.path.popLast());var i=Gb(r);o+=i-n.size,a.push(this.cr.addEntry(s,e,r))}else if(o-=n.size,this.trackRemovals){const o=tb(this.cr.serializer,t.convertToNoDocument(km.min()));a.push(this.cr.addEntry(s,e,o))}}),c.forEach(e=>{a.push(this.cr.indexManager.addToCollectionParentIndex(s,e))}),a.push(this.cr.updateMetadata(s,o)),$m.waitFor(a)}getFromCache(e,t){return this.cr.sr(e,t).next(e=>(this.lr.set(t,{size:e.size,readTime:e.document.readTime}),e.document))}getAllFromCache(e,t){return this.cr.ar(e,t).next(({documents:n,ur:e})=>(e.forEach((e,t)=>{this.lr.set(e,{size:t,readTime:n.get(e).readTime})}),n))}}function fI(e){return Fv(e,"remoteDocumentGlobal")}function gI(e){return Fv(e,"remoteDocumentsV14")}function mI(e){const t=e.path.toArray();return[t.slice(0,t.length-2),t[t.length-2],t[t.length-1]]}function vI(e,t){const n=t.documentKey.path.toArray();return[e,nb(t.readTime),n.slice(0,n.length-2),0<n.length?n[n.length-1]:""]}function _I(e,t){var n=e.path.toArray(),r=t.path.toArray();let i=0;for(let s=0;s<n.length-2&&s<r.length-2;++s)if(i=Tm(n[s],r[s]),i)return i;return i=Tm(n.length,r.length),i||(i=Tm(n[n.length-2],r[r.length-2]),i||Tm(n[n.length-1],r[r.length-1]))}class yI{constructor(e,t){this.overlayedDocument=e,this.mutatedFields=t}}class wI{constructor(e,t,n,r){this.remoteDocumentCache=e,this.mutationQueue=t,this.documentOverlayCache=n,this.indexManager=r}getDocument(t,n){let r=null;return this.documentOverlayCache.getOverlay(t,n).next(e=>(r=e,this.remoteDocumentCache.getEntry(t,n))).next(e=>(null!==r&&Hy(r.mutation,e,Gv.empty(),Sm.now()),e))}getDocuments(t,e){return this.remoteDocumentCache.getEntries(t,e).next(e=>this.getLocalViewOfDocuments(t,e,Sy()).next(()=>e))}getLocalViewOfDocuments(e,t,n=Sy()){const r=Ty();return this.populateOverlays(e,r,t).next(()=>this.computeViews(e,t,r,n).next(e=>{let n=by();return e.forEach((e,t)=>{n=n.insert(e,t.overlayedDocument)}),n}))}getOverlayedDocuments(e,t){const n=Ty();return this.populateOverlays(e,n,t).next(()=>this.computeViews(e,t,n,Sy()))}populateOverlays(e,n,t){const r=[];return t.forEach(e=>{n.has(e)||r.push(e)}),this.documentOverlayCache.getOverlays(e,r).next(e=>{e.forEach((e,t)=>{n.set(e,t)})})}computeViews(e,t,r,i){let s=yy;const a=Ty(),o=Ty();return t.forEach((e,t)=>{const n=r.get(t.key);i.has(t.key)&&(void 0===n||n.mutation instanceof Jy)?s=s.insert(t.key,t):void 0!==n?(a.set(t.key,n.mutation.getFieldMask()),Hy(n.mutation,t,n.mutation.getFieldMask(),Sm.now())):a.set(t.key,Gv.empty())}),this.recalculateAndSaveOverlays(e,s).next(e=>(e.forEach((e,t)=>a.set(e,t)),t.forEach((e,t)=>{var n;return o.set(e,new yI(t,null!==(n=a.get(e))&&void 0!==n?n:null))}),o))}recalculateAndSaveOverlays(s,a){const o=Ty();let c=new jv((e,t)=>e-t),l=Sy();return this.mutationQueue.getAllMutationBatchesAffectingDocumentKeys(s,a).next(e=>{for(const r of e)r.keys().forEach(e=>{var t,n=a.get(e);null!==n&&(t=o.get(e)||Gv.empty(),t=r.applyToLocalView(n,t),o.set(e,t),t=(c.get(r.batchId)||Sy()).add(e),c=c.insert(r.batchId,t))})}).next(()=>{const e=[],t=c.getReverseIterator();for(;t.hasNext();){const c=t.getNext(),n=c.key,r=c.value,i=Ty();r.forEach(e=>{var t;l.has(e)||(null!==(t=Wy(a.get(e),o.get(e)))&&i.set(e,t),l=l.add(e))}),e.push(this.documentOverlayCache.saveOverlays(s,n,i))}return $m.waitFor(e)}).next(()=>o)}recalculateAndSaveOverlaysForDocumentKeys(t,e){return this.remoteDocumentCache.getEntries(t,e).next(e=>this.recalculateAndSaveOverlays(t,e))}getDocumentsMatchingQuery(e,t,n,r){return i=t,Dm.isDocumentKey(i.path)&&null===i.collectionGroup&&0===i.filters.length?this.getDocumentsMatchingDocumentQuery(e,t.path):oy(t)?this.getDocumentsMatchingCollectionGroupQuery(e,t,n,r):this.getDocumentsMatchingCollectionQuery(e,t,n,r);var i}getNextDocuments(s,t,a,o){return this.remoteDocumentCache.getAllFromCollectionGroup(s,t,a,o).next(n=>{const e=0<o-n.size?this.documentOverlayCache.getOverlaysForCollectionGroup(s,t,a.largestBatchId,o-n.size):$m.resolve(Ty());let r=-1,i=n;return e.next(e=>$m.forEach(e,(t,e)=>(r<e.largestBatchId&&(r=e.largestBatchId),n.get(t)?$m.resolve():this.remoteDocumentCache.getEntry(s,t).next(e=>{i=i.insert(t,e)}))).next(()=>this.populateOverlays(s,e,n)).next(()=>this.computeViews(s,i,e,Sy())).next(e=>({batchId:r,changes:Iy(e)})))})}getDocumentsMatchingDocumentQuery(e,t){return this.getDocument(e,new Dm(t)).next(e=>{let t=by();return e.isFoundDocument()&&(t=t.insert(e.key,e)),t})}getDocumentsMatchingCollectionGroupQuery(r,i,s,a){const o=i.collectionGroup;let c=by();return this.indexManager.getCollectionParents(r,o).next(e=>$m.forEach(e,e=>{var t,n=(t=i,e=e.child(o),new ry(e,null,t.explicitOrderBy.slice(),t.filters.slice(),t.limit,t.limitType,t.startAt,t.endAt));return this.getDocumentsMatchingCollectionQuery(r,n,s,a).next(e=>{e.forEach((e,t)=>{c=c.insert(e,t)})})}).next(()=>c))}getDocumentsMatchingCollectionQuery(t,s,n,r){let a;return this.documentOverlayCache.getOverlaysForCollection(t,s.path,n.largestBatchId).next(e=>(a=e,this.remoteDocumentCache.getDocumentsMatchingQuery(t,s,n,a,r))).next(r=>{a.forEach((e,t)=>{var n=t.getKey();null===r.get(n)&&(r=r.insert(n,k_.newInvalidDocument(n)))});let i=by();return r.forEach((e,t)=>{var n=a.get(e);void 0!==n&&Hy(n.mutation,t,Gv.empty(),Sm.now()),gy(s,t)&&(i=i.insert(e,t))}),i})}}class bI{constructor(e){this.serializer=e,this.hr=new Map,this.Pr=new Map}getBundleMetadata(e,t){return $m.resolve(this.hr.get(t))}saveBundleMetadata(e,t){return this.hr.set(t.id,{id:t.id,version:t.version,createTime:Pw(t.createTime)}),$m.resolve()}getNamedQuery(e,t){return $m.resolve(this.Pr.get(t))}saveNamedQuery(e,t){return this.Pr.set(t.name,{name:(t=t).name,query:cb(t.bundledQuery),readTime:Pw(t.readTime)}),$m.resolve()}}class II{constructor(){this.overlays=new jv(Dm.comparator),this.Ir=new Map}getOverlay(e,t){return $m.resolve(this.overlays.get(t))}getOverlays(e,t){const n=Ty();return $m.forEach(t,t=>this.getOverlay(e,t).next(e=>{null!==e&&n.set(t,e)})).next(()=>n)}saveOverlays(n,r,e){return e.forEach((e,t)=>{this.ht(n,r,t)}),$m.resolve()}removeOverlaysForBatchId(e,t,n){const r=this.Ir.get(n);return void 0!==r&&(r.forEach(e=>this.overlays=this.overlays.remove(e)),this.Ir.delete(n)),$m.resolve()}getOverlaysForCollection(e,t,n){const r=Ty(),i=t.length+1,s=new Dm(t.child("")),a=this.overlays.getIteratorFrom(s);for(;a.hasNext();){const e=a.getNext().value,s=e.getKey();if(!t.isPrefixOf(s.path))break;s.path.length===i&&e.largestBatchId>n&&r.set(e.getKey(),e)}return $m.resolve(r)}getOverlaysForCollectionGroup(t,e,n,r){let i=new jv((e,t)=>e-t);const s=this.overlays.getIterator();for(;s.hasNext();){const t=s.getNext().value;if(t.getKey().getCollectionGroup()===e&&t.largestBatchId>n){let e=i.get(t.largestBatchId);null===e&&(e=Ty(),i=i.insert(t.largestBatchId,e)),e.set(t.getKey(),t)}}const a=Ty(),o=i.getIterator();for(;o.hasNext()&&(o.getNext().value.forEach((e,t)=>a.set(e,t)),!(a.size()>=r)););return $m.resolve(a)}ht(e,t,n){var r=this.overlays.get(n.key);if(null!==r){const e=this.Ir.get(r.largestBatchId).delete(n.key);this.Ir.set(r.largestBatchId,e)}this.overlays=this.overlays.insert(n.key,new sw(t,n));let i=this.Ir.get(t);void 0===i&&(i=Sy(),this.Ir.set(t,i)),this.Ir.set(t,i.add(n.key))}}class TI{constructor(){this.sessionToken=Qv.EMPTY_BYTE_STRING}getSessionToken(e){return $m.resolve(this.sessionToken)}setSessionToken(e,t){return this.sessionToken=t,$m.resolve()}}class EI{constructor(){this.Tr=new Kv(CI.Er),this.dr=new Kv(CI.Ar)}isEmpty(){return this.Tr.isEmpty()}addReference(e,t){var n=new CI(e,t);this.Tr=this.Tr.add(n),this.dr=this.dr.add(n)}Rr(e,t){e.forEach(e=>this.addReference(e,t))}removeReference(e,t){this.Vr(new CI(e,t))}mr(e,t){e.forEach(e=>this.removeReference(e,t))}gr(e){const t=new Dm(new Nm([])),n=new CI(t,e),r=new CI(t,e+1),i=[];return this.dr.forEachInRange([n,r],e=>{this.Vr(e),i.push(e.key)}),i}pr(){this.Tr.forEach(e=>this.Vr(e))}Vr(e){this.Tr=this.Tr.delete(e),this.dr=this.dr.delete(e)}yr(e){var t=new Dm(new Nm([])),n=new CI(t,e),t=new CI(t,e+1);let r=Sy();return this.dr.forEachInRange([n,t],e=>{r=r.add(e.key)}),r}containsKey(e){var t=new CI(e,0),t=this.Tr.firstAfterOrEqual(t);return null!==t&&e.isEqual(t.key)}}class CI{constructor(e,t){this.key=e,this.wr=t}static Er(e,t){return Dm.comparator(e.key,t.key)||Tm(e.wr,t.wr)}static Ar(e,t){return Tm(e.wr,t.wr)||Dm.comparator(e.key,t.key)}}class SI{constructor(e,t){this.indexManager=e,this.referenceDelegate=t,this.mutationQueue=[],this.Sr=1,this.br=new Kv(CI.Er)}checkEmpty(e){return $m.resolve(0===this.mutationQueue.length)}addMutationBatch(e,t,n,r){var i=this.Sr;this.Sr++,0<this.mutationQueue.length&&this.mutationQueue[this.mutationQueue.length-1];var s=new rw(i,t,n,r);this.mutationQueue.push(s);for(const t of r)this.br=this.br.add(new CI(t.key,i)),this.indexManager.addToCollectionParentIndex(e,t.key.path.popLast());return $m.resolve(s)}lookupMutationBatch(e,t){return $m.resolve(this.Dr(t))}getNextMutationBatchAfterBatchId(e,t){var n=this.vr(t+1),n=n<0?0:n;return $m.resolve(this.mutationQueue.length>n?this.mutationQueue[n]:null)}getHighestUnacknowledgedBatchId(){return $m.resolve(0===this.mutationQueue.length?-1:this.Sr-1)}getAllMutationBatches(e){return $m.resolve(this.mutationQueue.slice())}getAllMutationBatchesAffectingDocumentKey(e,t){const n=new CI(t,0),r=new CI(t,Number.POSITIVE_INFINITY),i=[];return this.br.forEachInRange([n,r],e=>{var t=this.Dr(e.wr);i.push(t)}),$m.resolve(i)}getAllMutationBatchesAffectingDocumentKeys(e,t){let r=new Kv(Tm);return t.forEach(e=>{var t=new CI(e,0),n=new CI(e,Number.POSITIVE_INFINITY);this.br.forEachInRange([t,n],e=>{r=r.add(e.wr)})}),$m.resolve(this.Cr(r))}getAllMutationBatchesAffectingQuery(e,t){const n=t.path,r=n.length+1;let i=n;Dm.isDocumentKey(i)||(i=i.child(""));var s=new CI(new Dm(i),0);let a=new Kv(Tm);return this.br.forEachWhile(e=>{var t=e.key.path;return!!n.isPrefixOf(t)&&(t.length===r&&(a=a.add(e.wr)),!0)},s),$m.resolve(this.Cr(a))}Cr(e){const n=[];return e.forEach(e=>{var t=this.Dr(e);null!==t&&n.push(t)}),n}removeMutationBatch(n,r){um(0===this.Fr(r.batchId,"removed")),this.mutationQueue.shift();let i=this.br;return $m.forEach(r.mutations,e=>{var t=new CI(e.key,r.batchId);return i=i.delete(t),this.referenceDelegate.markPotentiallyOrphaned(n,e.key)}).next(()=>{this.br=i})}On(e){}containsKey(e,t){var n=new CI(t,0),n=this.br.firstAfterOrEqual(n);return $m.resolve(t.isEqual(n&&n.key))}performConsistencyCheck(e){return this.mutationQueue.length,$m.resolve()}Fr(e,t){return this.vr(e)}vr(e){return 0===this.mutationQueue.length?0:e-this.mutationQueue[0].batchId}Dr(e){var t=this.vr(e);return t<0||t>=this.mutationQueue.length?null:this.mutationQueue[t]}}class kI{constructor(e){this.Mr=e,this.docs=new jv(Dm.comparator),this.size=0}setIndexManager(e){this.indexManager=e}addEntry(e,t){const n=t.key,r=this.docs.get(n),i=r?r.size:0,s=this.Mr(t);return this.docs=this.docs.insert(n,{document:t.mutableCopy(),size:s}),this.size+=s-i,this.indexManager.addToCollectionParentIndex(e,n.path.popLast())}removeEntry(e){var t=this.docs.get(e);t&&(this.docs=this.docs.remove(e),this.size-=t.size)}getEntry(e,t){const n=this.docs.get(t);return $m.resolve(n?n.document.mutableCopy():k_.newInvalidDocument(t))}getEntries(e,t){let n=yy;return t.forEach(e=>{const t=this.docs.get(e);n=n.insert(e,t?t.document.mutableCopy():k_.newInvalidDocument(e))}),$m.resolve(n)}getDocumentsMatchingQuery(e,t,n,r){let i=yy;const s=t.path,a=new Dm(s.child("")),o=this.docs.getIteratorFrom(a);for(;o.hasNext();){const{key:e,value:{document:a}}=o.getNext();if(!s.isPrefixOf(e.path))break;e.path.length>s.length+1||jm(Vm(a),n)<=0||(r.has(a.key)||gy(t,a))&&(i=i.insert(a.key,a.mutableCopy()))}return $m.resolve(i)}getAllFromCollectionGroup(e,t,n,r){lm()}Or(e,t){return $m.forEach(this.docs,e=>t(e))}newChangeBuffer(e){return new AI(this)}getSize(e){return $m.resolve(this.size)}}class AI extends uI{constructor(e){super(),this.cr=e}applyChanges(n){const r=[];return this.changes.forEach((e,t)=>{t.isValidDocument()?r.push(this.cr.addEntry(n,t)):this.cr.removeEntry(e)}),$m.waitFor(r)}getFromCache(e,t){return this.cr.getEntry(e,t)}getAllFromCache(e,t){return this.cr.getEntries(e,t)}}class NI{constructor(e){this.persistence=e,this.Nr=new _y(e=>J_(e),X_),this.lastRemoteSnapshotVersion=km.min(),this.highestTargetId=0,this.Lr=0,this.Br=new EI,this.targetCount=0,this.kr=Zb.Bn()}forEachTarget(e,n){return this.Nr.forEach((e,t)=>n(t)),$m.resolve()}getLastRemoteSnapshotVersion(e){return $m.resolve(this.lastRemoteSnapshotVersion)}getHighestSequenceNumber(e){return $m.resolve(this.Lr)}allocateTargetId(e){return this.highestTargetId=this.kr.next(),$m.resolve(this.highestTargetId)}setTargetsMetadata(e,t,n){return n&&(this.lastRemoteSnapshotVersion=n),t>this.Lr&&(this.Lr=t),$m.resolve()}Kn(e){this.Nr.set(e.target,e);var t=e.targetId;t>this.highestTargetId&&(this.kr=new Zb(t),this.highestTargetId=t),e.sequenceNumber>this.Lr&&(this.Lr=e.sequenceNumber)}addTargetData(e,t){return this.Kn(t),this.targetCount+=1,$m.resolve()}updateTargetData(e,t){return this.Kn(t),$m.resolve()}removeTargetData(e,t){return this.Nr.delete(t.target),this.Br.gr(t.targetId),--this.targetCount,$m.resolve()}removeTargets(n,r,i){let s=0;const a=[];return this.Nr.forEach((e,t)=>{t.sequenceNumber<=r&&null===i.get(t.targetId)&&(this.Nr.delete(e),a.push(this.removeMatchingKeysForTargetId(n,t.targetId)),s++)}),$m.waitFor(a).next(()=>s)}getTargetCount(e){return $m.resolve(this.targetCount)}getTargetData(e,t){var n=this.Nr.get(t)||null;return $m.resolve(n)}addMatchingKeys(e,t,n){return this.Br.Rr(t,n),$m.resolve()}removeMatchingKeys(t,e,n){this.Br.mr(e,n);const r=this.persistence.referenceDelegate,i=[];return r&&e.forEach(e=>{i.push(r.markPotentiallyOrphaned(t,e))}),$m.waitFor(i)}removeMatchingKeysForTargetId(e,t){return this.Br.gr(t),$m.resolve()}getMatchingKeysForTargetId(e,t){var n=this.Br.yr(t);return $m.resolve(n)}containsKey(e,t){return $m.resolve(this.Br.containsKey(t))}}class RI{constructor(e,t){this.qr={},this.overlays={},this.Qr=new iv(0),this.Kr=!1,this.Kr=!0,this.$r=new TI,this.referenceDelegate=e(this),this.Ur=new NI(this),this.indexManager=new Mb,this.remoteDocumentCache=(e=e=>this.referenceDelegate.Wr(e),new kI(e)),this.serializer=new eb(t),this.Gr=new bI(this.serializer)}start(){return Promise.resolve()}shutdown(){return this.Kr=!1,Promise.resolve()}get started(){return this.Kr}setDatabaseDeletedListener(){}setNetworkEnabled(){}getIndexManager(e){return this.indexManager}getDocumentOverlayCache(e){let t=this.overlays[e.toKey()];return t||(t=new II,this.overlays[e.toKey()]=t),t}getMutationQueue(e,t){let n=this.qr[e.toKey()];return n||(n=new SI(t,this.referenceDelegate),this.qr[e.toKey()]=n),n}getGlobalsCache(){return this.$r}getTargetCache(){return this.Ur}getRemoteDocumentCache(){return this.remoteDocumentCache}getBundleCache(){return this.Gr}runTransaction(e,t,n){sm("MemoryPersistence","Starting transaction:",e);const r=new PI(this.Qr.next());return this.referenceDelegate.zr(),n(r).next(e=>this.referenceDelegate.jr(r).next(()=>e)).toPromise().then(e=>(r.raiseOnCommittedEvent(),e))}Hr(t,n){return $m.or(Object.values(this.qr).map(e=>()=>e.containsKey(t,n)))}}class PI extends zm{constructor(e){super(),this.currentSequenceNumber=e}}class DI{constructor(e){this.persistence=e,this.Jr=new EI,this.Yr=null}static Zr(e){return new DI(e)}get Xr(){if(this.Yr)return this.Yr;throw lm()}addReference(e,t,n){return this.Jr.addReference(n,t),this.Xr.delete(n.toString()),$m.resolve()}removeReference(e,t,n){return this.Jr.removeReference(n,t),this.Xr.add(n.toString()),$m.resolve()}markPotentiallyOrphaned(e,t){return this.Xr.add(t.toString()),$m.resolve()}removeTarget(e,t){this.Jr.gr(t.targetId).forEach(e=>this.Xr.add(e.toString()));const n=this.persistence.getTargetCache();return n.getMatchingKeysForTargetId(e,t.targetId).next(e=>{e.forEach(e=>this.Xr.add(e.toString()))}).next(()=>n.removeTargetData(e,t))}zr(){this.Yr=new Set}jr(n){const r=this.persistence.getRemoteDocumentCache().newChangeBuffer();return $m.forEach(this.Xr,e=>{const t=Dm.fromPath(e);return this.ei(n,t).next(e=>{e||r.removeEntry(t,km.min())})}).next(()=>(this.Yr=null,r.apply(n)))}updateLimboDocument(e,t){return this.ei(e,t).next(e=>{e?this.Xr.delete(t.toString()):this.Xr.add(t.toString())})}Wr(e){return 0}ei(e,t){return $m.or([()=>$m.resolve(this.Jr.containsKey(t)),()=>this.persistence.getTargetCache().containsKey(e,t),()=>this.persistence.Hr(e,t)])}}class xI{constructor(e){this.serializer=e}O(t,e,n,r){const i=new Wm("createOrUpgrade",e);var s;n<1&&1<=r&&(t.createObjectStore("owner"),(s=t).createObjectStore("mutationQueues",{keyPath:"userId"}),s.createObjectStore("mutations",{keyPath:"batchId",autoIncrement:!0}).createIndex("userMutationsIndex",hv,{unique:!0}),s.createObjectStore("documentMutations"),OI(t),t.createObjectStore("remoteDocuments"));let a=$m.resolve();return n<3&&3<=r&&(0!==n&&((s=t).deleteObjectStore("targetDocuments"),s.deleteObjectStore("targets"),s.deleteObjectStore("targetGlobal"),OI(t)),a=a.next(()=>function(e){const t=e.store("targetGlobal"),n={highestTargetId:0,highestListenSequenceNumber:0,lastRemoteSnapshotVersion:km.min().toTimestamp(),targetCount:0};return t.put("targetGlobalKey",n)}(i))),n<4&&4<=r&&(0!==n&&(a=a.next(()=>function(r,i){return i.store("mutations").U().next(e=>{r.deleteObjectStore("mutations"),r.createObjectStore("mutations",{keyPath:"batchId",autoIncrement:!0}).createIndex("userMutationsIndex",hv,{unique:!0});const t=i.store("mutations"),n=e.map(e=>t.put(e));return $m.waitFor(n)})}(t,i))),a=a.next(()=>{t.createObjectStore("clientMetadata",{keyPath:"clientId"})})),n<5&&5<=r&&(a=a.next(()=>this.ni(i))),n<6&&6<=r&&(a=a.next(()=>(function(e){e.createObjectStore("remoteDocumentGlobal")}(t),this.ri(i)))),n<7&&7<=r&&(a=a.next(()=>this.ii(i))),n<8&&8<=r&&(a=a.next(()=>this.si(t,i))),n<9&&9<=r&&(a=a.next(()=>{var e;(e=t).objectStoreNames.contains("remoteDocumentChanges")&&e.deleteObjectStore("remoteDocumentChanges")})),n<10&&10<=r&&(a=a.next(()=>this.oi(i))),n<11&&11<=r&&(a=a.next(()=>{t.createObjectStore("bundles",{keyPath:"bundleId"}),t.createObjectStore("namedQueries",{keyPath:"name"})})),n<12&&12<=r&&(a=a.next(()=>{!function(e){const t=e.createObjectStore("documentOverlays",{keyPath:Sv});t.createIndex("collectionPathOverlayIndex",kv,{unique:!1}),t.createIndex("collectionGroupOverlayIndex",Av,{unique:!1})}(t)})),n<13&&13<=r&&(a=a.next(()=>function(e){const t=e.createObjectStore("remoteDocumentsV14",{keyPath:gv});t.createIndex("documentKeyIndex",mv),t.createIndex("collectionGroupIndex",vv)}(t)).next(()=>this._i(t,i)).next(()=>t.deleteObjectStore("remoteDocuments"))),n<14&&14<=r&&(a=a.next(()=>this.ai(t,i))),n<15&&15<=r&&(a=a.next(()=>function(e){e.createObjectStore("indexConfiguration",{keyPath:"indexId",autoIncrement:!0}).createIndex("collectionGroupIndex","collectionGroup",{unique:!1}),e.createObjectStore("indexState",{keyPath:Iv}).createIndex("sequenceNumberIndex",Tv,{unique:!1}),e.createObjectStore("indexEntries",{keyPath:Ev}).createIndex("documentKeyIndex",Cv,{unique:!1})}(t))),n<16&&16<=r&&(a=a.next(()=>{e.objectStore("indexState").clear()}).next(()=>{e.objectStore("indexEntries").clear()})),n<17&&17<=r&&(a=a.next(()=>{t.createObjectStore("globals",{keyPath:"name"})})),a}ri(t){let n=0;return t.store("remoteDocuments").J((e,t)=>{n+=Gb(t)}).next(()=>{var e={byteSize:n};return t.store("remoteDocumentGlobal").put("remoteDocumentGlobalKey",e)})}ni(r){const e=r.store("mutationQueues"),t=r.store("mutations");return e.U().next(e=>$m.forEach(e,n=>{var e=IDBKeyRange.bound([n.userId,-1],[n.userId,n.lastAcknowledgedBatchId]);return t.U("userMutationsIndex",e).next(e=>$m.forEach(e,e=>{um(e.userId===n.userId);var t=sb(this.serializer,e);return Wb(r,n.userId,t).next(()=>{})}))}))}ii(e){const a=e.store("targetDocuments"),t=e.store("remoteDocuments");return e.store("targetGlobal").get("targetGlobalKey").next(i=>{const s=[];return t.J((e,t)=>{const n=new Nm(e),r=[0,cv(n)];s.push(a.get(r).next(e=>e?$m.resolve():(e=>a.put({targetId:0,path:cv(e),sequenceNumber:i.highestListenSequenceNumber}))(n)))}).next(()=>$m.waitFor(s))})}si(e,t){e.createObjectStore("collectionParents",{keyPath:bv});const n=t.store("collectionParents"),r=new Lb,i=e=>{if(r.add(e)){const t=e.lastSegment(),r=e.popLast();return n.put({collectionId:t,parent:cv(r)})}};return t.store("remoteDocuments").J({H:!0},(e,t)=>{const n=new Nm(e);return i(n.popLast())}).next(()=>t.store("documentMutations").J({H:!0},([,e],t)=>{const n=uv(e);return i(n.popLast())}))}oi(e){const r=e.store("targets");return r.J((e,t)=>{var n=ab(t),n=ob(this.serializer,n);return r.put(n)})}_i(e,a){const t=a.store("remoteDocuments"),o=[];return t.J((e,t)=>{const n=a.store("remoteDocumentsV14"),r=((s=t).document?new Dm(Nm.fromString(s.document.name).popFirst(5)):s.noDocument?Dm.fromSegments(s.noDocument.path):s.unknownDocument?Dm.fromSegments(s.unknownDocument.path):lm()).path.toArray(),i={prefixPath:r.slice(0,r.length-2),collectionGroup:r[r.length-2],documentId:r[r.length-1],readTime:t.readTime||[0,0],unknownDocument:t.unknownDocument,noDocument:t.noDocument,document:t.document,hasCommittedMutations:!!t.hasCommittedMutations};var s;o.push(n.put(i))}).next(()=>$m.waitFor(o))}ai(e,s){const t=s.store("mutations"),a=dI(this.serializer),o=new RI(DI.Zr,this.serializer.ct);return t.U().next(e=>{const r=new Map;return e.forEach(e=>{var t;let n=null!==(t=r.get(e.userId))&&void 0!==t?t:Sy();sb(this.serializer,e).keys().forEach(e=>n=n.add(e)),r.set(e.userId,n)}),$m.forEach(r,(e,t)=>{var n=new tm(t),r=gb.lt(this.serializer,n),i=o.getIndexManager(n),n=Hb.lt(n,this.serializer,i,o.referenceDelegate);return new wI(a,n,r,i).recalculateAndSaveOverlaysForDocumentKeys(new Lv(s,iv.oe),e).next()})})}}function OI(e){e.createObjectStore("targetDocuments",{keyPath:yv}).createIndex("documentTargetsIndex",wv,{unique:!0}),e.createObjectStore("targets",{keyPath:"targetId"}).createIndex("queryTargetsIndex",_v,{unique:!0}),e.createObjectStore("targetGlobal")}const MI="Failed to obtain exclusive access to the persistence layer. To allow shared access, multi-tab synchronization has to be enabled in all tabs. If you are using `experimentalForceOwningTab:true`, make sure that only one tab has persistence enabled at any given time.";class LI{constructor(e,t,n,r,i,s,a,o,c,l,u=17){if(this.allowTabSynchronization=e,this.persistenceKey=t,this.clientId=n,this.ui=i,this.window=s,this.document=a,this.ci=c,this.li=l,this.hi=u,this.Qr=null,this.Kr=!1,this.isPrimary=!1,this.networkEnabled=!0,this.Pi=null,this.inForeground=!1,this.Ii=null,this.Ti=null,this.Ei=Number.NEGATIVE_INFINITY,this.di=e=>Promise.resolve(),!LI.D())throw new dm(hm.UNIMPLEMENTED,"This platform is either missing IndexedDB or is known to have an incomplete implementation. Offline persistence has been disabled.");this.referenceDelegate=new cI(this,r),this.Ai=t+"main",this.serializer=new eb(o),this.Ri=new Gm(this.Ai,this.hi,new xI(this.serializer)),this.$r=new vb,this.Ur=new eI(this.referenceDelegate,this.serializer),this.remoteDocumentCache=dI(this.serializer),this.Gr=new db,this.window&&this.window.localStorage?this.Vi=this.window.localStorage:(this.Vi=null,!1===l&&am("IndexedDbPersistence","LocalStorage is unavailable. As a result, persistence may not work reliably. In particular enablePersistence() could fail immediately after refreshing the page."))}start(){return this.mi().then(()=>{if(!this.isPrimary&&!this.allowTabSynchronization)throw new dm(hm.FAILED_PRECONDITION,MI);return this.fi(),this.gi(),this.pi(),this.runTransaction("getHighestListenSequenceNumber","readonly",e=>this.Ur.getHighestSequenceNumber(e))}).then(e=>{this.Qr=new iv(e,this.ci)}).then(()=>{this.Kr=!0}).catch(e=>(this.Ri&&this.Ri.close(),Promise.reject(e)))}yi(t){return this.di=async e=>{if(this.started)return t(e)},t(this.isPrimary)}setDatabaseDeletedListener(t){this.Ri.L(async e=>{null===e.newVersion&&await t()})}setNetworkEnabled(e){this.networkEnabled!==e&&(this.networkEnabled=e,this.ui.enqueueAndForget(async()=>{this.started&&await this.mi()}))}mi(){return this.runTransaction("updateClientMetadataAndTryBecomePrimary","readwrite",t=>UI(t).put({clientId:this.clientId,updateTimeMs:Date.now(),networkEnabled:this.networkEnabled,inForeground:this.inForeground}).next(()=>{if(this.isPrimary)return this.wi(t).next(e=>{e||(this.isPrimary=!1,this.ui.enqueueRetryable(()=>this.di(!1)))})}).next(()=>this.Si(t)).next(e=>this.isPrimary&&!e?this.bi(t).next(()=>!1):!!e&&this.Di(t).next(()=>!0))).catch(e=>{if(Jm(e))return sm("IndexedDbPersistence","Failed to extend owner lease: ",e),this.isPrimary;if(!this.allowTabSynchronization)throw e;return sm("IndexedDbPersistence","Releasing owner lease after error during lease refresh",e),!1}).then(e=>{this.isPrimary!==e&&this.ui.enqueueRetryable(()=>this.di(e)),this.isPrimary=e})}wi(e){return FI(e).get("owner").next(e=>$m.resolve(this.vi(e)))}Ci(e){return UI(e).delete(this.clientId)}async Fi(){if(this.isPrimary&&!this.Mi(this.Ei,18e5)){this.Ei=Date.now();var e=await this.runTransaction("maybeGarbageCollectMultiClientState","readwrite-primary",e=>{const r=Fv(e,"clientMetadata");return r.U().next(e=>{const t=this.xi(e,18e5),n=e.filter(e=>-1===t.indexOf(e));return $m.forEach(n,e=>r.delete(e.clientId)).next(()=>n)})}).catch(()=>[]);if(this.Vi)for(const t of e)this.Vi.removeItem(this.Oi(t.clientId))}}pi(){this.Ti=this.ui.enqueueAfterDelay("client_metadata_refresh",4e3,()=>this.mi().then(()=>this.Fi()).then(()=>this.pi()))}vi(e){return!!e&&e.ownerId===this.clientId}Si(t){return this.li?$m.resolve(!0):FI(t).get("owner").next(e=>{if(null!==e&&this.Mi(e.leaseTimestampMs,5e3)&&!this.Ni(e.ownerId)){if(this.vi(e)&&this.networkEnabled)return!0;if(!this.vi(e)){if(!e.allowTabSynchronization)throw new dm(hm.FAILED_PRECONDITION,MI);return!1}}return!(!this.networkEnabled||!this.inForeground)||UI(t).U().next(e=>void 0===this.xi(e,5e3).find(e=>{if(this.clientId!==e.clientId){var t=!this.networkEnabled&&e.networkEnabled,n=!this.inForeground&&e.inForeground,r=this.networkEnabled===e.networkEnabled;if(t||n&&r)return!0}return!1}))}).next(e=>(this.isPrimary!==e&&sm("IndexedDbPersistence",`Client ${e?"is":"is not"} eligible for a primary lease.`),e))}async shutdown(){this.Kr=!1,this.Li(),this.Ti&&(this.Ti.cancel(),this.Ti=null),this.Bi(),this.ki(),await this.Ri.runTransaction("shutdown","readwrite",["owner","clientMetadata"],e=>{const t=new Lv(e,iv.oe);return this.bi(t).next(()=>this.Ci(t))}),this.Ri.close(),this.qi()}xi(e,t){return e.filter(e=>this.Mi(e.updateTimeMs,t)&&!this.Ni(e.clientId))}Qi(){return this.runTransaction("getActiveClients","readonly",e=>UI(e).U().next(e=>this.xi(e,18e5).map(e=>e.clientId)))}get started(){return this.Kr}getGlobalsCache(){return this.$r}getMutationQueue(e,t){return Hb.lt(e,this.serializer,t,this.referenceDelegate)}getTargetCache(){return this.Ur}getRemoteDocumentCache(){return this.remoteDocumentCache}getIndexManager(e){return new Ub(e,this.serializer.ct.databaseId)}getDocumentOverlayCache(e){return gb.lt(this.serializer,e)}getBundleCache(){return this.Gr}runTransaction(t,n,r){sm("IndexedDbPersistence","Starting transaction:",t);var e,i="readonly"===n?"readonly":"readwrite",s=17===(e=this.hi)?Mv:16===e?Ov:15===e?xv:14===e?Dv:13===e?Pv:12===e?Rv:11===e?Nv:void lm();let a;return this.Ri.runTransaction(t,i,s,e=>(a=new Lv(e,this.Qr?this.Qr.next():iv.oe),"readwrite-primary"===n?this.wi(a).next(e=>!!e||this.Si(a)).next(e=>{if(!e)throw am(`Failed to obtain primary lease for action '${t}'.`),this.isPrimary=!1,this.ui.enqueueRetryable(()=>this.di(!1)),new dm(hm.FAILED_PRECONDITION,Bm);return r(a)}).next(e=>this.Di(a).next(()=>e)):this.Ki(a).next(()=>r(a)))).then(e=>(a.raiseOnCommittedEvent(),e))}Ki(e){return FI(e).get("owner").next(e=>{if(null!==e&&this.Mi(e.leaseTimestampMs,5e3)&&!this.Ni(e.ownerId)&&!this.vi(e)&&!(this.li||this.allowTabSynchronization&&e.allowTabSynchronization))throw new dm(hm.FAILED_PRECONDITION,MI)})}Di(e){var t={ownerId:this.clientId,allowTabSynchronization:this.allowTabSynchronization,leaseTimestampMs:Date.now()};return FI(e).put("owner",t)}static D(){return Gm.D()}bi(e){const t=FI(e);return t.get("owner").next(e=>this.vi(e)?(sm("IndexedDbPersistence","Releasing primary lease."),t.delete("owner")):$m.resolve())}Mi(e,t){var n=Date.now();return!(e<n-t||n<e&&(am(`Detected an update time that is in the future: ${e} > ${n}`),1))}fi(){null!==this.document&&"function"==typeof this.document.addEventListener&&(this.Ii=()=>{this.ui.enqueueAndForget(()=>(this.inForeground="visible"===this.document.visibilityState,this.mi()))},this.document.addEventListener("visibilitychange",this.Ii),this.inForeground="visible"===this.document.visibilityState)}Bi(){this.Ii&&(this.document.removeEventListener("visibilitychange",this.Ii),this.Ii=null)}gi(){var e;"function"==typeof(null===(e=this.window)||void 0===e?void 0:e.addEventListener)&&(this.Pi=()=>{this.Li();var e=/(?:Version|Mobile)\/1[456]/;N()&&(navigator.appVersion.match(e)||navigator.userAgent.match(e))&&this.ui.enterRestrictedMode(!0),this.ui.enqueueAndForget(()=>this.shutdown())},this.window.addEventListener("pagehide",this.Pi))}ki(){this.Pi&&(this.window.removeEventListener("pagehide",this.Pi),this.Pi=null)}Ni(e){var t;try{var n=null!==(null===(t=this.Vi)||void 0===t?void 0:t.getItem(this.Oi(e)));return sm("IndexedDbPersistence",`Client '${e}' ${n?"is":"is not"} zombied in LocalStorage`),n}catch(e){return am("IndexedDbPersistence","Failed to get zombied client id.",e),!1}}Li(){if(this.Vi)try{this.Vi.setItem(this.Oi(this.clientId),String(Date.now()))}catch(e){am("Failed to set zombie client id.",e)}}qi(){if(this.Vi)try{this.Vi.removeItem(this.Oi(this.clientId))}catch(e){}}Oi(e){return`firestore_zombie_${this.persistenceKey}_${e}`}}function FI(e){return Fv(e,"owner")}function UI(e){return Fv(e,"clientMetadata")}function VI(e,t){let n=e.projectId;return e.isDefaultDatabase||(n+="."+e.database),"firestore/"+t+"/"+n+"/"}class qI{constructor(e,t,n,r){this.targetId=e,this.fromCache=t,this.$i=n,this.Ui=r}static Wi(e,t){let n=Sy(),r=Sy();for(const e of t.docChanges)switch(e.type){case 0:n=n.add(e.doc.key);break;case 1:r=r.add(e.doc.key)}return new qI(e,t.fromCache,n,r)}}class jI{constructor(){this._documentReadCount=0}get documentReadCount(){return this._documentReadCount}incrementDocumentReadCount(e){this._documentReadCount+=e}}class BI{constructor(){this.Gi=!1,this.zi=!1,this.ji=100,this.Hi=N()?8:0<Hm(b())?6:4}initialize(e,t){this.Ji=e,this.indexManager=t,this.Gi=!0}getDocumentsMatchingQuery(n,r,e,t){const i={result:null};return this.Yi(n,r).next(e=>{i.result=e}).next(()=>{if(!i.result)return this.Zi(n,r,t,e).next(e=>{i.result=e})}).next(()=>{if(!i.result){const t=new jI;return this.Xi(n,r,t).next(e=>{if(i.result=e,this.zi)return this.es(n,r,t,e.size)})}}).next(()=>i.result)}es(e,t,n,r){return n.documentReadCount<this.ji?(im()<=m.DEBUG&&sm("QueryEngine","SDK will not create cache indexes for query:",fy(t),"since it only creates cache indexes for collection contains","more than or equal to",this.ji,"documents"),$m.resolve()):(im()<=m.DEBUG&&sm("QueryEngine","Query:",fy(t),"scans",n.documentReadCount,"local documents and returns",r,"documents as results."),n.documentReadCount>this.Hi*r?(im()<=m.DEBUG&&sm("QueryEngine","The SDK decides to create cache indexes for query:",fy(t),"as using cache indexes may help improve performance."),this.indexManager.createTargetIndexes(e,ly(t))):$m.resolve())}Yi(i,s){if(ay(s))return $m.resolve(null);let t=ly(s);return this.indexManager.getIndexType(i,t).next(e=>0===e?null:(null!==s.limit&&1===e&&(s=hy(s,null,"F"),t=ly(s)),this.indexManager.getDocumentsMatchingTarget(i,t).next(e=>{const r=Sy(...e);return this.Ji.getDocuments(i,r).next(n=>this.indexManager.getMinOffset(i,t).next(e=>{var t=this.ts(s,n);return this.ns(s,t,r,e.readTime)?this.Yi(i,hy(s,null,"F")):this.rs(i,t,s,e)}))})))}Zi(n,r,i,s){return ay(r)||s.isEqual(km.min())?$m.resolve(null):this.Ji.getDocuments(n,i).next(e=>{var t=this.ts(r,e);return this.ns(r,t,i,s)?$m.resolve(null):(im()<=m.DEBUG&&sm("QueryEngine","Re-using previous result from %s to execute query: %s",s.toString(),fy(r)),this.rs(n,t,r,Um(s,-1)).next(e=>e))})}ts(n,e){let r=new Kv(vy(n));return e.forEach((e,t)=>{gy(n,t)&&(r=r.add(t))}),r}ns(e,t,n,r){if(null===e.limit)return!1;if(n.size!==t.size)return!0;const i="F"===e.limitType?t.last():t.first();return!!i&&(i.hasPendingWrites||0<i.version.compareTo(r))}Xi(e,t,n){return im()<=m.DEBUG&&sm("QueryEngine","Using full collection scan to execute query:",fy(t)),this.Ji.getDocumentsMatchingQuery(e,t,qm.min(),n)}rs(e,n,t,r){return this.Ji.getDocumentsMatchingQuery(e,t,r).next(t=>(n.forEach(e=>{t=t.insert(e.key,e)}),t))}}class zI{constructor(e,t,n,r){this.persistence=e,this.ss=t,this.serializer=r,this.os=new jv(Tm),this._s=new _y(e=>J_(e),X_),this.us=new Map,this.cs=e.getRemoteDocumentCache(),this.Ur=e.getTargetCache(),this.Gr=e.getBundleCache(),this.ls(n)}ls(e){this.documentOverlayCache=this.persistence.getDocumentOverlayCache(e),this.indexManager=this.persistence.getIndexManager(e),this.mutationQueue=this.persistence.getMutationQueue(e,this.indexManager),this.localDocuments=new wI(this.cs,this.mutationQueue,this.documentOverlayCache,this.indexManager),this.cs.setIndexManager(this.indexManager),this.ss.initialize(this.localDocuments,this.indexManager)}collectGarbage(t){return this.persistence.runTransaction("Collect garbage","readwrite-primary",e=>t.collect(e,this.os))}}function KI(e,t,n,r){return new zI(e,t,n,r)}async function $I(e,t){const a=e;return a.persistence.runTransaction("Handle user change","readonly",i=>{let s;return a.mutationQueue.getAllMutationBatches(i).next(e=>(s=e,a.ls(t),a.mutationQueue.getAllMutationBatches(i))).next(e=>{const t=[],n=[];let r=Sy();for(const i of s){t.push(i.batchId);for(const e of i.mutations)r=r.add(e.key)}for(const i of e){n.push(i.batchId);for(const e of i.mutations)r=r.add(e.key)}return a.localDocuments.getDocuments(i,r).next(e=>({hs:e,removedBatchIds:t,addedBatchIds:n}))})})}function WI(e){const t=e;return t.persistence.runTransaction("Get last remote snapshot version","readonly",e=>t.Ur.getLastRemoteSnapshotVersion(e))}function GI(e,l){const u=e,h=l.snapshotVersion;let d=u.os;return u.persistence.runTransaction("Apply remote event","readwrite-primary",o=>{const e=u.cs.newChangeBuffer({trackRemovals:!0});d=u.os;const c=[];l.targetChanges.forEach((t,n)=>{const r=d.get(n);if(r){c.push(u.Ur.removeMatchingKeys(o,t.removedDocuments,n).next(()=>u.Ur.addMatchingKeys(o,t.addedDocuments,n)));let e=r.withSequenceNumber(o.currentSequenceNumber);var i,s,a;null!==l.targetMismatches.get(n)?e=e.withResumeToken(Qv.EMPTY_BYTE_STRING,km.min()).withLastLimboFreeSnapshotVersion(km.min()):0<t.resumeToken.approximateByteSize()&&(e=e.withResumeToken(t.resumeToken,h)),d=d.insert(n,e),i=r,s=e,a=t,0!==i.resumeToken.approximateByteSize()&&!(3e8<=s.snapshotVersion.toMicroseconds()-i.snapshotVersion.toMicroseconds()||0<a.addedDocuments.size+a.modifiedDocuments.size+a.removedDocuments.size)||c.push(u.Ur.updateTargetData(o,e))}});let t=yy,n=Sy();if(l.documentUpdates.forEach(e=>{l.resolvedLimboDocuments.has(e)&&c.push(u.persistence.referenceDelegate.updateLimboDocument(o,e))}),c.push(HI(o,e,l.documentUpdates).next(e=>{t=e.Ps,n=e.Is})),!h.isEqual(km.min())){const l=u.Ur.getLastRemoteSnapshotVersion(o).next(e=>u.Ur.setTargetsMetadata(o,o.currentSequenceNumber,h));c.push(l)}return $m.waitFor(c).next(()=>e.apply(o)).next(()=>u.localDocuments.getLocalViewOfDocuments(o,t,n)).next(()=>t)}).then(e=>(u.os=d,e))}function HI(e,s,t){let n=Sy(),a=Sy();return t.forEach(e=>n=n.add(e)),s.getEntries(e,n).next(r=>{let i=yy;return t.forEach((e,t)=>{const n=r.get(e);t.isFoundDocument()!==n.isFoundDocument()&&(a=a.add(e)),t.isNoDocument()&&t.version.isEqual(km.min())?(s.removeEntry(e,t.readTime),i=i.insert(e,t)):!n.isValidDocument()||0<t.version.compareTo(n.version)||0===t.version.compareTo(n.version)&&n.hasPendingWrites?(s.addEntry(t),i=i.insert(e,t)):sm("LocalStore","Ignoring outdated watch update for ",e,". Current version:",n.version," Watch version:",t.version)}),{Ps:i,Is:a}})}function QI(e,r){const i=e;return i.persistence.runTransaction("Allocate target","readwrite",t=>{let n;return i.Ur.getTargetData(t,r).next(e=>e?(n=e,$m.resolve(n)):i.Ur.allocateTargetId(t).next(e=>(n=new Zw(r,e,"TargetPurposeListen",t.currentSequenceNumber),i.Ur.addTargetData(t,n).next(()=>n))))}).then(e=>{var t=i.os.get(e.targetId);return(null===t||0<e.snapshotVersion.compareTo(t.snapshotVersion))&&(i.os=i.os.insert(e.targetId,e),i._s.set(r,e.targetId)),e})}async function YI(e,t,n){const r=e,i=r.os.get(t),s=n?"readwrite":"readwrite-primary";try{n||await r.persistence.runTransaction("Release target",s,e=>r.persistence.referenceDelegate.removeTarget(e,i))}catch(e){if(!Jm(e))throw e;sm("LocalStore",`Failed to update sequence numbers for target ${t}: ${e}`)}r.os=r.os.remove(t),r._s.delete(i.target)}function JI(e,n,r){const i=e;let s=km.min(),a=Sy();return i.persistence.runTransaction("Execute query","readwrite",t=>function(e,t,n){const r=e,i=r._s.get(n);return void 0!==i?$m.resolve(r.os.get(i)):r.Ur.getTargetData(t,n)}(i,t,ly(n)).next(e=>{if(e)return s=e.lastLimboFreeSnapshotVersion,i.Ur.getMatchingKeysForTargetId(t,e.targetId).next(e=>{a=e})}).next(()=>i.ss.getDocumentsMatchingQuery(t,n,r?s:km.min(),r?a:Sy())).next(e=>(eT(i,my(n),e),{documents:e,Ts:a})))}function XI(e,t){const n=e,r=n.Ur,i=n.os.get(t);return i?Promise.resolve(i.target):n.persistence.runTransaction("Get target data","readonly",e=>r.ot(e,t).next(e=>e?e.target:null))}function ZI(e,t){const n=e,r=n.us.get(t)||km.min();return n.persistence.runTransaction("Get new document changes","readonly",e=>n.cs.getAllFromCollectionGroup(e,t,Um(r,-1),Number.MAX_SAFE_INTEGER)).then(e=>(eT(n,t,e),e))}function eT(e,t,n){let r=e.us.get(t)||km.min();n.forEach((e,t)=>{0<t.readTime.compareTo(r)&&(r=t.readTime)}),e.us.set(t,r)}function tT(e,t){return`firestore_clients_${e}_${t}`}function nT(e,t,n){let r=`firestore_mutations_${e}_${n}`;return t.isAuthenticated()&&(r+=`_${t.uid}`),r}function rT(e,t){return`firestore_targets_${e}_${t}`}class iT{constructor(e,t,n,r){this.user=e,this.batchId=t,this.state=n,this.error=r}static Rs(e,t,n){var r=JSON.parse(n);let i,s="object"==typeof r&&-1!==["pending","acknowledged","rejected"].indexOf(r.state)&&(void 0===r.error||"object"==typeof r.error);return s&&r.error&&(s="string"==typeof r.error.message&&"string"==typeof r.error.code,s&&(i=new dm(r.error.code,r.error.message))),s?new iT(e,t,r.state,i):(am("SharedClientState",`Failed to parse mutation state for ID '${t}': ${n}`),null)}Vs(){const e={state:this.state,updateTimeMs:Date.now()};return this.error&&(e.error={code:this.error.code,message:this.error.message}),JSON.stringify(e)}}class sT{constructor(e,t,n){this.targetId=e,this.state=t,this.error=n}static Rs(e,t){var n=JSON.parse(t);let r,i="object"==typeof n&&-1!==["not-current","current","rejected"].indexOf(n.state)&&(void 0===n.error||"object"==typeof n.error);return i&&n.error&&(i="string"==typeof n.error.message&&"string"==typeof n.error.code,i&&(r=new dm(n.error.code,n.error.message))),i?new sT(e,n.state,r):(am("SharedClientState",`Failed to parse target state for ID '${e}': ${t}`),null)}Vs(){const e={state:this.state,updateTimeMs:Date.now()};return this.error&&(e.error={code:this.error.code,message:this.error.message}),JSON.stringify(e)}}class aT{constructor(e,t){this.clientId=e,this.activeTargetIds=t}static Rs(e,t){var n=JSON.parse(t);let r="object"==typeof n&&n.activeTargetIds instanceof Array,i=ky;for(let s=0;r&&s<n.activeTargetIds.length;++s)r=ov(n.activeTargetIds[s]),i=i.add(n.activeTargetIds[s]);return r?new aT(e,i):(am("SharedClientState",`Failed to parse client data for instance '${e}': ${t}`),null)}}class oT{constructor(e,t){this.clientId=e,this.onlineState=t}static Rs(e){var t=JSON.parse(e);return"object"==typeof t&&-1!==["Unknown","Online","Offline"].indexOf(t.onlineState)&&"string"==typeof t.clientId?new oT(t.clientId,t.onlineState):(am("SharedClientState",`Failed to parse online state: ${e}`),null)}}class cT{constructor(){this.activeTargetIds=ky}fs(e){this.activeTargetIds=this.activeTargetIds.add(e)}gs(e){this.activeTargetIds=this.activeTargetIds.delete(e)}Vs(){var e={activeTargetIds:this.activeTargetIds.toArray(),updateTimeMs:Date.now()};return JSON.stringify(e)}}class lT{constructor(e,t,n,r,i){this.window=e,this.ui=t,this.persistenceKey=n,this.ps=r,this.syncEngine=null,this.onlineStateHandler=null,this.sequenceNumberHandler=null,this.ys=this.ws.bind(this),this.Ss=new jv(Tm),this.started=!1,this.bs=[];var s=n.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");this.storage=this.window.localStorage,this.currentUser=i,this.Ds=tT(this.persistenceKey,this.ps),this.vs=`firestore_sequence_number_${this.persistenceKey}`,this.Ss=this.Ss.insert(this.ps,new cT),this.Cs=new RegExp(`^firestore_clients_${s}_([^_]*)$`),this.Fs=new RegExp(`^firestore_mutations_${s}_(\\d+)(?:_(.*))?$`),this.Ms=new RegExp(`^firestore_targets_${s}_(\\d+)$`),this.xs=`firestore_online_state_${this.persistenceKey}`,this.Os=`firestore_bundle_loaded_v2_${this.persistenceKey}`,this.window.addEventListener("storage",this.ys)}static D(e){return!(!e||!e.localStorage)}async start(){const e=await this.syncEngine.Qi();for(const n of e)if(n!==this.ps){const e=this.getItem(tT(this.persistenceKey,n));var t;!e||(t=aT.Rs(n,e))&&(this.Ss=this.Ss.insert(t.clientId,t))}this.Ns();const n=this.storage.getItem(this.xs);if(n){const e=this.Ls(n);e&&this.Bs(e)}for(const e of this.bs)this.ws(e);this.bs=[],this.window.addEventListener("pagehide",()=>this.shutdown()),this.started=!0}writeSequenceNumber(e){this.setItem(this.vs,JSON.stringify(e))}getAllActiveQueryTargets(){return this.ks(this.Ss)}isActiveQueryTarget(n){let r=!1;return this.Ss.forEach((e,t)=>{t.activeTargetIds.has(n)&&(r=!0)}),r}addPendingMutation(e){this.qs(e,"pending")}updateMutationState(e,t,n){this.qs(e,t,n),this.Qs(e)}addLocalQueryTarget(e,t=!0){let n="not-current";if(this.isActiveQueryTarget(e)){const t=this.storage.getItem(rT(this.persistenceKey,e));var r;!t||(r=sT.Rs(e,t))&&(n=r.state)}return t&&this.Ks.fs(e),this.Ns(),n}removeLocalQueryTarget(e){this.Ks.gs(e),this.Ns()}isLocalQueryTarget(e){return this.Ks.activeTargetIds.has(e)}clearQueryState(e){this.removeItem(rT(this.persistenceKey,e))}updateQueryState(e,t,n){this.$s(e,t,n)}handleUserChange(e,t,n){t.forEach(e=>{this.Qs(e)}),this.currentUser=e,n.forEach(e=>{this.addPendingMutation(e)})}setOnlineState(e){this.Us(e)}notifyBundleLoaded(e){this.Ws(e)}shutdown(){this.started&&(this.window.removeEventListener("storage",this.ys),this.removeItem(this.Ds),this.started=!1)}getItem(e){var t=this.storage.getItem(e);return sm("SharedClientState","READ",e,t),t}setItem(e,t){sm("SharedClientState","SET",e,t),this.storage.setItem(e,t)}removeItem(e){sm("SharedClientState","REMOVE",e),this.storage.removeItem(e)}ws(e){const i=e;i.storageArea===this.storage&&(sm("SharedClientState","EVENT",i.key,i.newValue),i.key!==this.Ds?this.ui.enqueueRetryable(async()=>{if(this.started){if(null!==i.key)if(this.Cs.test(i.key)){if(null==i.newValue){var e=this.Gs(i.key);return this.zs(e,null)}e=this.js(i.key,i.newValue);if(e)return this.zs(e.clientId,e)}else if(this.Fs.test(i.key)){if(null!==i.newValue){var t=this.Hs(i.key,i.newValue);if(t)return this.Js(t)}}else if(this.Ms.test(i.key)){if(null!==i.newValue){t=this.Ys(i.key,i.newValue);if(t)return this.Zs(t)}}else if(i.key===this.xs){if(null!==i.newValue){var n=this.Ls(i.newValue);if(n)return this.Bs(n)}}else if(i.key===this.vs){n=function(e){let t=iv.oe;if(null!=e)try{var n=JSON.parse(e);um("number"==typeof n),t=n}catch(e){am("SharedClientState","Failed to read sequence number from WebStorage",e)}return t}(i.newValue);n!==iv.oe&&this.sequenceNumberHandler(n)}else if(i.key===this.Os){const r=this.Xs(i.newValue);await Promise.all(r.map(e=>this.syncEngine.eo(e)))}}else this.bs.push(i)}):am("Received WebStorage notification for local change. Another client might have garbage-collected our state"))}get Ks(){return this.Ss.get(this.ps)}Ns(){this.setItem(this.Ds,this.Ks.Vs())}qs(e,t,n){const r=new iT(this.currentUser,e,t,n),i=nT(this.persistenceKey,this.currentUser,e);this.setItem(i,r.Vs())}Qs(e){var t=nT(this.persistenceKey,this.currentUser,e);this.removeItem(t)}Us(e){var t={clientId:this.ps,onlineState:e};this.storage.setItem(this.xs,JSON.stringify(t))}$s(e,t,n){const r=rT(this.persistenceKey,e),i=new sT(e,t,n);this.setItem(r,i.Vs())}Ws(e){var t=JSON.stringify(Array.from(e));this.setItem(this.Os,t)}Gs(e){var t=this.Cs.exec(e);return t?t[1]:null}js(e,t){var n=this.Gs(e);return aT.Rs(n,t)}Hs(e,t){var n=this.Fs.exec(e),r=Number(n[1]),n=void 0!==n[2]?n[2]:null;return iT.Rs(new tm(n),r,t)}Ys(e,t){var n=this.Ms.exec(e),n=Number(n[1]);return sT.Rs(n,t)}Ls(e){return oT.Rs(e)}Xs(e){return JSON.parse(e)}async Js(e){if(e.user.uid===this.currentUser.uid)return this.syncEngine.no(e.batchId,e.state,e.error);sm("SharedClientState",`Ignoring mutation for non-active user ${e.user.uid}`)}Zs(e){return this.syncEngine.ro(e.targetId,e.state,e.error)}zs(e,t){const n=t?this.Ss.insert(e,t):this.Ss.remove(e),r=this.ks(this.Ss),i=this.ks(n),s=[],a=[];return i.forEach(e=>{r.has(e)||s.push(e)}),r.forEach(e=>{i.has(e)||a.push(e)}),this.syncEngine.io(s,a).then(()=>{this.Ss=n})}Bs(e){this.Ss.get(e.clientId)&&this.onlineStateHandler(e.onlineState)}ks(e){let n=ky;return e.forEach((e,t)=>{n=n.unionWith(t.activeTargetIds)}),n}}class uT{constructor(){this.so=new cT,this.oo={},this.onlineStateHandler=null,this.sequenceNumberHandler=null}addPendingMutation(e){}updateMutationState(e,t,n){}addLocalQueryTarget(e,t=!0){return t&&this.so.fs(e),this.oo[e]||"not-current"}updateQueryState(e,t,n){this.oo[e]=t}removeLocalQueryTarget(e){this.so.gs(e)}isLocalQueryTarget(e){return this.so.activeTargetIds.has(e)}clearQueryState(e){delete this.oo[e]}getAllActiveQueryTargets(){return this.so.activeTargetIds}isActiveQueryTarget(e){return this.so.activeTargetIds.has(e)}start(){return this.so=new cT,Promise.resolve()}handleUserChange(e,t,n){}setOnlineState(e){}shutdown(){}writeSequenceNumber(e){}notifyBundleLoaded(e){}}class hT{_o(e){}shutdown(){}}class dT{constructor(){this.ao=()=>this.uo(),this.co=()=>this.lo(),this.ho=[],this.Po()}_o(e){this.ho.push(e)}shutdown(){window.removeEventListener("online",this.ao),window.removeEventListener("offline",this.co)}Po(){window.addEventListener("online",this.ao),window.addEventListener("offline",this.co)}uo(){sm("ConnectivityMonitor","Network connectivity changed: AVAILABLE");for(const e of this.ho)e(0)}lo(){sm("ConnectivityMonitor","Network connectivity changed: UNAVAILABLE");for(const e of this.ho)e(1)}static D(){return"undefined"!=typeof window&&void 0!==window.addEventListener&&void 0!==window.removeEventListener}}let pT=null;function fT(){return null===pT?pT=268435456+Math.round(2147483648*Math.random()):pT++,"0x"+pT.toString(16)}const gT={BatchGetDocuments:"batchGet",Commit:"commit",RunQuery:"runQuery",RunAggregationQuery:"runAggregationQuery"};class mT{constructor(e){this.Io=e.Io,this.To=e.To}Eo(e){this.Ao=e}Ro(e){this.Vo=e}mo(e){this.fo=e}onMessage(e){this.po=e}close(){this.To()}send(e){this.Io(e)}yo(){this.Ao()}wo(){this.Vo()}So(e){this.fo(e)}bo(e){this.po(e)}}const vT="WebChannelConnection";class _T extends class{constructor(e){this.databaseInfo=e,this.databaseId=e.databaseId;var t=e.ssl?"https":"http",n=encodeURIComponent(this.databaseId.projectId),r=encodeURIComponent(this.databaseId.database);this.Do=t+"://"+e.host,this.vo=`projects/${n}/databases/${r}`,this.Co="(default)"===this.databaseId.database?`project_id=${n}`:`project_id=${n}&database_id=${r}`}get Fo(){return!1}Mo(t,e,n,r,i){const s=fT(),a=this.xo(t,e.toUriEncodedString());sm("RestConnection",`Sending RPC '${t}' ${s}:`,a,n);var o={"google-cloud-resource-prefix":this.vo,"x-goog-request-params":this.Co};return this.Oo(o,r,i),this.No(t,a,o,n).then(e=>(sm("RestConnection",`Received RPC '${t}' ${s}: `,e),e),e=>{throw om("RestConnection",`RPC '${t}' ${s} failed with error: `,e,"url: ",a,"request:",n),e})}Lo(e,t,n,r,i,s){return this.Mo(e,t,n,r,i)}Oo(n,e,t){n["X-Goog-Api-Client"]="gl-js/ fire/"+nm,n["Content-Type"]="text/plain",this.databaseInfo.appId&&(n["X-Firebase-GMPID"]=this.databaseInfo.appId),e&&e.headers.forEach((e,t)=>n[t]=e),t&&t.headers.forEach((e,t)=>n[t]=e)}xo(e,t){var n=gT[e];return`${this.Do}/v1/${t}:${n}`}terminate(){}}{constructor(e){super(e),this.forceLongPolling=e.forceLongPolling,this.autoDetectLongPolling=e.autoDetectLongPolling,this.useFetchStreams=e.useFetchStreams,this.longPollingOptions=e.longPollingOptions}No(c,t,n,r){const l=fT();return new Promise((s,a)=>{const o=new Bg;o.setWithCredentials(!0),o.listenOnce(Kg.COMPLETE,()=>{try{switch(o.getLastErrorCode()){case $g.NO_ERROR:var e=o.getResponseJson();sm(vT,`XHR for RPC '${c}' ${l} received:`,JSON.stringify(e)),s(e);break;case $g.TIMEOUT:sm(vT,`RPC '${c}' ${l} timed out`),a(new dm(hm.DEADLINE_EXCEEDED,"Request time out"));break;case $g.HTTP_ERROR:var t=o.getStatus();if(sm(vT,`RPC '${c}' ${l} failed with status:`,t,"response text:",o.getResponseText()),0<t){let e=o.getResponseJson();Array.isArray(e)&&(e=e[0]);var n=null==e?void 0:e.error;if(n&&n.status&&n.message){const c=(r=n.status,i=r.toLowerCase().replace(/_/g,"-"),0<=Object.values(hm).indexOf(i)?i:hm.UNKNOWN);a(new dm(c,n.message))}else a(new dm(hm.UNKNOWN,"Server responded with status "+o.getStatus()))}else a(new dm(hm.UNAVAILABLE,"Connection failed."));break;default:lm()}}finally{sm(vT,`RPC '${c}' ${l} completed.`)}var r,i});var e=JSON.stringify(r);sm(vT,`RPC '${c}' ${l} sending request:`,r),o.send(t,"POST",e,n,15)})}Bo(i,e,t){const s=fT(),n=[this.Do,"/","google.firestore.v1.Firestore","/",i,"/channel"],r=Qg(),a=Hg(),o={httpSessionIdParam:"gsessionid",initMessageHeaders:{},messageUrlParams:{database:`projects/${this.databaseId.projectId}/databases/${this.databaseId.database}`},sendRawJson:!0,supportsCrossDomainXhr:!0,internalChannelParams:{forwardChannelRequestTimeoutMs:6e5},forceLongPolling:this.forceLongPolling,detectBufferingProxy:this.autoDetectLongPolling},c=this.longPollingOptions.timeoutSeconds;void 0!==c&&(o.longPollingTimeout=Math.round(1e3*c)),this.useFetchStreams&&(o.useFetchStreams=!0),this.Oo(o.initMessageHeaders,e,t),o.encodeInitMessageHeaders=!0;var l=n.join("");sm(vT,`Creating RPC '${i}' stream ${s}: ${l}`,o);const u=r.createWebChannel(l,o);let h=!1,d=!1;const p=new mT({Io:e=>{d?sm(vT,`Not sending because RPC '${i}' stream ${s} is closed:`,e):(h||(sm(vT,`Opening RPC '${i}' stream ${s} transport.`),u.open(),h=!0),sm(vT,`RPC '${i}' stream ${s} sending:`,e),u.send(e))},To:()=>u.close()}),f=(e,t,n)=>{e.listen(t,e=>{try{n(e)}catch(e){setTimeout(()=>{throw e},0)}})};return f(u,zg.EventType.OPEN,()=>{d||(sm(vT,`RPC '${i}' stream ${s} transport opened.`),p.yo())}),f(u,zg.EventType.CLOSE,()=>{d||(d=!0,sm(vT,`RPC '${i}' stream ${s} transport closed`),p.So())}),f(u,zg.EventType.ERROR,e=>{d||(d=!0,om(vT,`RPC '${i}' stream ${s} transport errored:`,e),p.So(new dm(hm.UNAVAILABLE,"The operation could not be completed")))}),f(u,zg.EventType.MESSAGE,n=>{if(!d){var e=n.data[0];um(!!e);var r=e.error||(null===(r=e[0])||void 0===r?void 0:r.error);if(r){sm(vT,`RPC '${i}' stream ${s} received error:`,r);const n=r.status;let e=function(e){var t=Yg[e];if(void 0!==t)return cw(t)}(n),t=r.message;void 0===e&&(e=hm.INTERNAL,t="Unknown error status: "+n+" with message "+r.message),d=!0,p.So(new dm(e,t)),u.close()}else sm(vT,`RPC '${i}' stream ${s} received:`,e),p.bo(e)}}),f(a,Gg.STAT_EVENT,e=>{e.stat===Wg.PROXY?sm(vT,`RPC '${i}' stream ${s} detected buffering proxy`):e.stat===Wg.NOPROXY&&sm(vT,`RPC '${i}' stream ${s} detected no buffering proxy`)}),setTimeout(()=>{p.wo()},0),p}}function yT(){return"undefined"!=typeof window?window:null}function wT(){return"undefined"!=typeof document?document:null}function bT(e){return new kw(e,!0)}class IT{constructor(e,t,n=1e3,r=1.5,i=6e4){this.ui=e,this.timerId=t,this.ko=n,this.qo=r,this.Qo=i,this.Ko=0,this.$o=null,this.Uo=Date.now(),this.reset()}reset(){this.Ko=0}Wo(){this.Ko=this.Qo}Go(e){this.cancel();var t=Math.floor(this.Ko+this.zo()),n=Math.max(0,Date.now()-this.Uo),r=Math.max(0,t-n);0<r&&sm("ExponentialBackoff",`Backing off for ${r} ms (base delay: ${this.Ko} ms, delay with jitter: ${t} ms, last attempt: ${n} ms ago)`),this.$o=this.ui.enqueueAfterDelay(this.timerId,r,()=>(this.Uo=Date.now(),e())),this.Ko*=this.qo,this.Ko<this.ko&&(this.Ko=this.ko),this.Ko>this.Qo&&(this.Ko=this.Qo)}jo(){null!==this.$o&&(this.$o.skipDelay(),this.$o=null)}cancel(){null!==this.$o&&(this.$o.cancel(),this.$o=null)}zo(){return(Math.random()-.5)*this.Ko}}class TT{constructor(e,t,n,r,i,s,a,o){this.ui=e,this.Ho=n,this.Jo=r,this.connection=i,this.authCredentialsProvider=s,this.appCheckCredentialsProvider=a,this.listener=o,this.state=0,this.Yo=0,this.Zo=null,this.Xo=null,this.stream=null,this.e_=0,this.t_=new IT(e,t)}n_(){return 1===this.state||5===this.state||this.r_()}r_(){return 2===this.state||3===this.state}start(){this.e_=0,4!==this.state?this.auth():this.i_()}async stop(){this.n_()&&await this.close(0)}s_(){this.state=0,this.t_.reset()}o_(){this.r_()&&null===this.Zo&&(this.Zo=this.ui.enqueueAfterDelay(this.Ho,6e4,()=>this.__()))}a_(e){this.u_(),this.stream.send(e)}async __(){if(this.r_())return this.close(0)}u_(){this.Zo&&(this.Zo.cancel(),this.Zo=null)}c_(){this.Xo&&(this.Xo.cancel(),this.Xo=null)}async close(e,t){this.u_(),this.c_(),this.t_.cancel(),this.Yo++,4!==e?this.t_.reset():t&&t.code===hm.RESOURCE_EXHAUSTED?(am(t.toString()),am("Using maximum backoff delay to prevent overloading the backend."),this.t_.Wo()):t&&t.code===hm.UNAUTHENTICATED&&3!==this.state&&(this.authCredentialsProvider.invalidateToken(),this.appCheckCredentialsProvider.invalidateToken()),null!==this.stream&&(this.l_(),this.stream.close(),this.stream=null),this.state=e,await this.listener.mo(t)}l_(){}auth(){this.state=1;const e=this.h_(this.Yo),n=this.Yo;Promise.all([this.authCredentialsProvider.getToken(),this.appCheckCredentialsProvider.getToken()]).then(([e,t])=>{this.Yo===n&&this.P_(e,t)},t=>{e(()=>{var e=new dm(hm.UNKNOWN,"Fetching auth token failed: "+t.message);return this.I_(e)})})}P_(e,t){const n=this.h_(this.Yo);this.stream=this.T_(e,t),this.stream.Eo(()=>{n(()=>this.listener.Eo())}),this.stream.Ro(()=>{n(()=>(this.state=2,this.Xo=this.ui.enqueueAfterDelay(this.Jo,1e4,()=>(this.r_()&&(this.state=3),Promise.resolve())),this.listener.Ro()))}),this.stream.mo(e=>{n(()=>this.I_(e))}),this.stream.onMessage(e=>{n(()=>1==++this.e_?this.E_(e):this.onNext(e))})}i_(){this.state=5,this.t_.Go(async()=>{this.state=0,this.start()})}I_(e){return sm("PersistentStream",`close with error: ${e}`),this.stream=null,this.close(4,e)}h_(t){return e=>{this.ui.enqueueAndForget(()=>this.Yo===t?e():(sm("PersistentStream","stream callback skipped by getCloseGuardedDispatcher."),Promise.resolve()))}}}class ET extends TT{constructor(e,t,n,r,i,s){super(e,"listen_stream_connection_backoff","listen_stream_idle","health_check_timeout",t,n,r,s),this.serializer=i}T_(e,t){return this.connection.Bo("Listen",e,t)}E_(e){return this.onNext(e)}onNext(e){this.t_.reset();var t=function(e,t){let n;if("targetChange"in t){t.targetChange;var r="NO_CHANGE"===(p=t.targetChange.targetChangeType||"NO_CHANGE")?0:"ADD"===p?1:"REMOVE"===p?2:"CURRENT"===p?3:"RESET"===p?4:lm(),i=t.targetChange.targetIds||[],s=(p=t.targetChange.resumeToken,e.useProto3Json?(um(void 0===p||"string"==typeof p),Qv.fromBase64String(p||"")):(um(void 0===p||p instanceof Buffer||p instanceof Uint8Array),Qv.fromUint8Array(p||new Uint8Array))),a=t.targetChange.cause,o=a&&(o=void 0===(p=a).code?hm.UNKNOWN:cw(p.code),new dm(o,p.message||""));n=new yw(r,i,s,o||null)}else if("documentChange"in t){t.documentChange;var c=t.documentChange;c.document,c.document.name,c.document.updateTime;var s=Lw(e,c.document.name),o=Pw(c.document.updateTime),l=c.document.createTime?Pw(c.document.createTime):km.min(),u=new S_({mapValue:{fields:c.document.fields}}),l=k_.newFoundDocument(s,o,l,u),u=c.targetIds||[],c=c.removedTargetIds||[];n=new vw(u,c,l.key,l)}else if("documentDelete"in t){t.documentDelete;u=t.documentDelete;u.document;c=Lw(e,u.document),l=u.readTime?Pw(u.readTime):km.min(),l=k_.newNoDocument(c,l),u=u.removedTargetIds||[];n=new vw([],u,l.key,l)}else if("documentRemove"in t){t.documentRemove;var h=t.documentRemove;h.document;var d=Lw(e,h.document),h=h.removedTargetIds||[];n=new vw([],h,d,null)}else{if(!("filter"in t))return lm();{t.filter;const e=t.filter;e.targetId;var{count:h=0,unchangedNames:d}=e,h=new aw(h,d),d=e.targetId;n=new _w(d,h)}}var o,p;return n}(this.serializer,e),n=function(e){if(!("targetChange"in e))return km.min();var t=e.targetChange;return(!t.targetIds||!t.targetIds.length)&&t.readTime?Pw(t.readTime):km.min()}(e);return this.listener.d_(t,n)}A_(e){const t={};t.database=Vw(this.serializer),t.addTarget=function(e,t){let n;const r=t.target;if(n=Z_(r)?{documents:$w(e,r)}:{query:Ww(e,r)._t},n.targetId=t.targetId,0<t.resumeToken.approximateByteSize()){n.resumeToken=Rw(e,t.resumeToken);const r=Aw(e,t.expectedCount);null!==r&&(n.expectedCount=r)}else if(0<t.snapshotVersion.compareTo(km.min())){n.readTime=Nw(e,t.snapshotVersion.toTimestamp());const r=Aw(e,t.expectedCount);null!==r&&(n.expectedCount=r)}return n}(this.serializer,e);var n,n=(this.serializer,e,null==(n=function(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 lm()}}(e.purpose))?null:{"goog-listen-tags":n});n&&(t.labels=n),this.a_(t)}R_(e){const t={};t.database=Vw(this.serializer),t.removeTarget=e,this.a_(t)}}class CT extends TT{constructor(e,t,n,r,i,s){super(e,"write_stream_connection_backoff","write_stream_idle","health_check_timeout",t,n,r,s),this.serializer=i}get V_(){return 0<this.e_}start(){this.lastStreamToken=void 0,super.start()}l_(){this.V_&&this.m_([])}T_(e,t){return this.connection.Bo("Write",e,t)}E_(e){return um(!!e.streamToken),this.lastStreamToken=e.streamToken,um(!e.writeResults||0===e.writeResults.length),this.listener.f_()}onNext(e){um(!!e.streamToken),this.lastStreamToken=e.streamToken,this.t_.reset();var t,n,r=(t=e.writeResults,n=e.commitTime,t&&0<t.length?(um(void 0!==n),t.map(e=>function(e,t){let n=e.updateTime?Pw(e.updateTime):Pw(t);return n.isEqual(km.min())&&(n=Pw(t)),new By(n,e.transformResults||[])}(e,n))):[]),i=Pw(e.commitTime);return this.listener.g_(i,r)}p_(){const e={};e.database=Vw(this.serializer),this.a_(e)}m_(e){var t={streamToken:this.lastStreamToken,writes:e.map(e=>zw(this.serializer,e))};this.a_(t)}}class ST extends class{}{constructor(e,t,n,r){super(),this.authCredentials=e,this.appCheckCredentials=t,this.connection=n,this.serializer=r,this.y_=!1}w_(){if(this.y_)throw new dm(hm.FAILED_PRECONDITION,"The client has already been terminated.")}Mo(n,r,i,s){return this.w_(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then(([e,t])=>this.connection.Mo(n,xw(r,i),s,e,t)).catch(e=>{throw"FirebaseError"===e.name?(e.code===hm.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),e):new dm(hm.UNKNOWN,e.toString())})}Lo(n,r,i,s,a){return this.w_(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then(([e,t])=>this.connection.Lo(n,xw(r,i),s,e,t,a)).catch(e=>{throw"FirebaseError"===e.name?(e.code===hm.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),e):new dm(hm.UNKNOWN,e.toString())})}terminate(){this.y_=!0,this.connection.terminate()}}class kT{constructor(e,t){this.asyncQueue=e,this.onlineStateHandler=t,this.state="Unknown",this.S_=0,this.b_=null,this.D_=!0}v_(){0===this.S_&&(this.C_("Unknown"),this.b_=this.asyncQueue.enqueueAfterDelay("online_state_timeout",1e4,()=>(this.b_=null,this.F_("Backend didn't respond within 10 seconds."),this.C_("Offline"),Promise.resolve())))}M_(e){"Online"===this.state?this.C_("Unknown"):(this.S_++,1<=this.S_&&(this.x_(),this.F_(`Connection failed 1 times. Most recent error: ${e.toString()}`),this.C_("Offline")))}set(e){this.x_(),this.S_=0,"Online"===e&&(this.D_=!1),this.C_(e)}C_(e){e!==this.state&&(this.state=e,this.onlineStateHandler(e))}F_(e){var t=`Could not reach Cloud Firestore backend. ${e}\nThis typically indicates that your device does not have a healthy Internet connection at the moment. The client will operate in offline mode until it is able to successfully connect to the backend.`;this.D_?(am(t),this.D_=!1):sm("OnlineStateTracker",t)}x_(){null!==this.b_&&(this.b_.cancel(),this.b_=null)}}class AT{constructor(e,t,n,r,i){this.localStore=e,this.datastore=t,this.asyncQueue=n,this.remoteSyncer={},this.O_=[],this.N_=new Map,this.L_=new Set,this.B_=[],this.k_=i,this.k_._o(e=>{n.enqueueAndForget(async()=>{FT(this)&&(sm("RemoteStore","Restarting streams for network reachability change."),await async function(e){const t=e;t.L_.add(4),await RT(t),t.q_.set("Unknown"),t.L_.delete(4),await NT(t)}(this))})}),this.q_=new kT(n,r)}}async function NT(e){if(FT(e))for(const t of e.B_)await t(!0)}async function RT(e){for(const t of e.B_)await t(!1)}function PT(e,t){const n=e;n.N_.has(t.targetId)||(n.N_.set(t.targetId,t),LT(n)?MT(n):GT(n).r_()&&xT(n,t))}function DT(e,t){const n=e,r=GT(n);n.N_.delete(t),r.r_()&&OT(n,t),0===n.N_.size&&(r.r_()?r.o_():FT(n)&&n.q_.set("Unknown"))}function xT(e,t){var n;e.Q_.xe(t.targetId),(0<t.resumeToken.approximateByteSize()||0<t.snapshotVersion.compareTo(km.min()))&&(n=e.remoteSyncer.getRemoteKeysForTarget(t.targetId).size,t=t.withExpectedCount(n)),GT(e).A_(t)}function OT(e,t){e.Q_.xe(t),GT(e).R_(t)}function MT(t){t.Q_=new bw({getRemoteKeysForTarget:e=>t.remoteSyncer.getRemoteKeysForTarget(e),ot:e=>t.N_.get(e)||null,tt:()=>t.datastore.serializer.databaseId}),GT(t).start(),t.q_.v_()}function LT(e){return FT(e)&&!GT(e).n_()&&0<e.N_.size}function FT(e){return 0===e.L_.size}function UT(e){e.Q_=void 0}async function VT(e,t,n){if(!Jm(t))throw t;e.L_.add(1),await RT(e),e.q_.set("Offline"),n=n||(()=>WI(e.localStore)),e.asyncQueue.enqueueRetryable(async()=>{sm("RemoteStore","Retrying IndexedDB access"),await n(),e.L_.delete(1),await NT(e)})}function qT(t,n){return n().catch(e=>VT(t,e,n))}async function jT(e){const t=e,n=HT(t);let r=0<t.O_.length?t.O_[t.O_.length-1].batchId:-1;for(;FT(i=t)&&i.O_.length<10;)try{const e=await function(e,t){const n=e;return n.persistence.runTransaction("Get next mutation batch","readonly",e=>(void 0===t&&(t=-1),n.mutationQueue.getNextMutationBatchAfterBatchId(e,t)))}(t.localStore,r);if(null===e){0===t.O_.length&&n.o_();break}r=e.batchId,function(e,t){e.O_.push(t);const n=HT(e);n.r_()&&n.V_&&n.m_(t.mutations)}(t,e)}catch(e){await VT(t,e)}var i;BT(t)&&zT(t)}function BT(e){return FT(e)&&!HT(e).n_()&&0<e.O_.length}function zT(e){HT(e).start()}async function KT(e,t){t&&HT(e).V_&&await async function(e,t){if(ow(n=t.code)&&n!==hm.ABORTED){const r=e.O_.shift();HT(e).s_(),await qT(e,()=>e.remoteSyncer.rejectFailedWrite(r.batchId,t)),await jT(e)}var n}(e,t),BT(e)&&zT(e)}async function $T(e,t){const n=e;n.asyncQueue.verifyOperationInProgress(),sm("RemoteStore","RemoteStore received new credentials");var r=FT(n);n.L_.add(3),await RT(n),r&&n.q_.set("Unknown"),await n.remoteSyncer.handleCredentialChange(t),n.L_.delete(3),await NT(n)}async function WT(e,t){const n=e;t?(n.L_.delete(2),await NT(n)):(n.L_.add(2),await RT(n),n.q_.set("Unknown"))}function GT(t){return t.K_||(t.K_=function(e,t,n){const r=e;return r.w_(),new ET(t,r.connection,r.authCredentials,r.appCheckCredentials,r.serializer,n)}(t.datastore,t.asyncQueue,{Eo:(async function(e){e.q_.set("Online")}).bind(null,t),Ro:(async function(n){n.N_.forEach((e,t)=>{xT(n,e)})}).bind(null,t),mo:(async function(e,t){UT(e),LT(e)?(e.q_.M_(t),MT(e)):e.q_.set("Unknown")}).bind(null,t),d_:(async function(e,t,n){if(e.q_.set("Online"),t instanceof yw&&2===t.state&&t.cause)try{await async function(e,t){var n=t.cause;for(const r of t.targetIds)e.N_.has(r)&&(await e.remoteSyncer.rejectListen(r,n),e.N_.delete(r),e.Q_.removeTarget(r))}(e,t)}catch(n){sm("RemoteStore","Failed to remove targets %s: %s ",t.targetIds.join(","),n),await VT(e,n)}else if(t instanceof vw?e.Q_.Ke(t):t instanceof _w?e.Q_.He(t):e.Q_.We(t),!n.isEqual(km.min()))try{const t=await WI(e.localStore);0<=n.compareTo(t)&&await function(i,r){const e=i.Q_.rt(r);return e.targetChanges.forEach((e,t)=>{if(0<e.resumeToken.approximateByteSize()){const n=i.N_.get(t);n&&i.N_.set(t,n.withResumeToken(e.resumeToken,r))}}),e.targetMismatches.forEach((e,t)=>{const n=i.N_.get(e);var r;n&&(i.N_.set(e,n.withResumeToken(Qv.EMPTY_BYTE_STRING,n.snapshotVersion)),OT(i,e),r=new Zw(n.target,e,t,n.sequenceNumber),xT(i,r))}),i.remoteSyncer.applyRemoteEvent(e)}(e,n)}catch(t){sm("RemoteStore","Failed to raise snapshot:",t),await VT(e,t)}}).bind(null,t)}),t.B_.push(async e=>{e?(t.K_.s_(),LT(t)?MT(t):t.q_.set("Unknown")):(await t.K_.stop(),UT(t))})),t.K_}function HT(t){return t.U_||(t.U_=function(e,t,n){const r=e;return r.w_(),new CT(t,r.connection,r.authCredentials,r.appCheckCredentials,r.serializer,n)}(t.datastore,t.asyncQueue,{Eo:()=>Promise.resolve(),Ro:(async function(e){HT(e).p_()}).bind(null,t),mo:KT.bind(null,t),f_:(async function(e){const t=HT(e);for(const n of e.O_)t.m_(n.mutations)}).bind(null,t),g_:(async function(e,t,n){const r=e.O_.shift(),i=iw.from(r,t,n);await qT(e,()=>e.remoteSyncer.applySuccessfulWrite(i)),await jT(e)}).bind(null,t)}),t.B_.push(async e=>{e?(t.U_.s_(),await jT(t)):(await t.U_.stop(),0<t.O_.length&&(sm("RemoteStore",`Stopping write stream with ${t.O_.length} pending writes`),t.O_=[]))})),t.U_}class QT{constructor(e,t,n,r,i){this.asyncQueue=e,this.timerId=t,this.targetTimeMs=n,this.op=r,this.removalCallback=i,this.deferred=new pm,this.then=this.deferred.promise.then.bind(this.deferred.promise),this.deferred.promise.catch(e=>{})}get promise(){return this.deferred.promise}static createAndSchedule(e,t,n,r,i){const s=Date.now()+n,a=new QT(e,t,s,r,i);return a.start(n),a}start(e){this.timerHandle=setTimeout(()=>this.handleDelayElapsed(),e)}skipDelay(){return this.handleDelayElapsed()}cancel(e){null!==this.timerHandle&&(this.clearTimeout(),this.deferred.reject(new dm(hm.CANCELLED,"Operation cancelled"+(e?": "+e:""))))}handleDelayElapsed(){this.asyncQueue.enqueueAndForget(()=>null!==this.timerHandle?(this.clearTimeout(),this.op().then(e=>this.deferred.resolve(e))):Promise.resolve())}clearTimeout(){null!==this.timerHandle&&(this.removalCallback(this),clearTimeout(this.timerHandle),this.timerHandle=null)}}function YT(e,t){if(am("AsyncQueue",`${t}: ${e}`),Jm(e))return new dm(hm.UNAVAILABLE,`${t}: ${e}`);throw e}class JT{constructor(n){this.comparator=n?(e,t)=>n(e,t)||Dm.comparator(e.key,t.key):(e,t)=>Dm.comparator(e.key,t.key),this.keyedMap=by(),this.sortedSet=new jv(this.comparator)}static emptySet(e){return new JT(e.comparator)}has(e){return null!=this.keyedMap.get(e)}get(e){return this.keyedMap.get(e)}first(){return this.sortedSet.minKey()}last(){return this.sortedSet.maxKey()}isEmpty(){return this.sortedSet.isEmpty()}indexOf(e){var t=this.keyedMap.get(e);return t?this.sortedSet.indexOf(t):-1}get size(){return this.sortedSet.size}forEach(n){this.sortedSet.inorderTraversal((e,t)=>(n(e),!1))}add(e){const t=this.delete(e.key);return t.copy(t.keyedMap.insert(e.key,e),t.sortedSet.insert(e,null))}delete(e){var t=this.get(e);return t?this.copy(this.keyedMap.remove(e),this.sortedSet.remove(t)):this}isEqual(e){if(!(e instanceof JT))return!1;if(this.size!==e.size)return!1;const t=this.sortedSet.getIterator(),n=e.sortedSet.getIterator();for(;t.hasNext();){const e=t.getNext().key,r=n.getNext().key;if(!e.isEqual(r))return!1}return!0}toString(){const t=[];return this.forEach(e=>{t.push(e.toString())}),0===t.length?"DocumentSet ()":"DocumentSet (\n  "+t.join("  \n")+"\n)"}copy(e,t){const n=new JT;return n.comparator=this.comparator,n.keyedMap=e,n.sortedSet=t,n}}class XT{constructor(){this.W_=new jv(Dm.comparator)}track(e){var t=e.doc.key,n=this.W_.get(t);!n||0!==e.type&&3===n.type?this.W_=this.W_.insert(t,e):3===e.type&&1!==n.type?this.W_=this.W_.insert(t,{type:n.type,doc:e.doc}):2===e.type&&2===n.type?this.W_=this.W_.insert(t,{type:2,doc:e.doc}):2===e.type&&0===n.type?this.W_=this.W_.insert(t,{type:0,doc:e.doc}):1===e.type&&0===n.type?this.W_=this.W_.remove(t):1===e.type&&2===n.type?this.W_=this.W_.insert(t,{type:1,doc:n.doc}):0===e.type&&1===n.type?this.W_=this.W_.insert(t,{type:2,doc:e.doc}):lm()}G_(){const n=[];return this.W_.inorderTraversal((e,t)=>{n.push(t)}),n}}class ZT{constructor(e,t,n,r,i,s,a,o,c){this.query=e,this.docs=t,this.oldDocs=n,this.docChanges=r,this.mutatedKeys=i,this.fromCache=s,this.syncStateChanged=a,this.excludesMetadataChanges=o,this.hasCachedResults=c}static fromInitialDocuments(e,t,n,r,i){const s=[];return t.forEach(e=>{s.push({type:0,doc:e})}),new ZT(e,t,JT.emptySet(t),s,n,r,!0,!1,i)}get hasPendingWrites(){return!this.mutatedKeys.isEmpty()}isEqual(e){if(!(this.fromCache===e.fromCache&&this.hasCachedResults===e.hasCachedResults&&this.syncStateChanged===e.syncStateChanged&&this.mutatedKeys.isEqual(e.mutatedKeys)&&dy(this.query,e.query)&&this.docs.isEqual(e.docs)&&this.oldDocs.isEqual(e.oldDocs)))return!1;const t=this.docChanges,n=e.docChanges;if(t.length!==n.length)return!1;for(let r=0;r<t.length;r++)if(t[r].type!==n[r].type||!t[r].doc.isEqual(n[r].doc))return!1;return!0}}class e0{constructor(){this.z_=void 0,this.j_=[]}H_(){return this.j_.some(e=>e.J_())}}class t0{constructor(){this.queries=n0(),this.onlineState="Unknown",this.Y_=new Set}terminate(){!function(e,n){const t=e,r=t.queries;t.queries=n0(),r.forEach((e,t)=>{for(const e of t.j_)e.onError(n)})}(this,new dm(hm.ABORTED,"Firestore shutting down"))}}function n0(){return new _y(e=>py(e),dy)}async function r0(e,t){const n=e;let r=3;var i=t.query;let s=n.queries.get(i);s?!s.H_()&&t.J_()&&(r=2):(s=new e0,r=t.J_()?0:1);try{switch(r){case 0:s.z_=await n.onListen(i,!0);break;case 1:s.z_=await n.onListen(i,!1);break;case 2:await n.onFirstRemoteStoreListen(i)}}catch(e){const n=YT(e,`Initialization of query '${fy(t.query)}' failed`);return void t.onError(n)}n.queries.set(i,s),s.j_.push(t),t.Z_(n.onlineState),!s.z_||t.X_(s.z_)&&s0(n)}async function i0(e,t){const n=e,r=t.query;let i=3;const s=n.queries.get(r);if(s){const e=s.j_.indexOf(t);0<=e&&(s.j_.splice(e,1),0===s.j_.length?i=t.J_()?0:1:!s.H_()&&t.J_()&&(i=2))}switch(i){case 0:return n.queries.delete(r),n.onUnlisten(r,!0);case 1:return n.queries.delete(r),n.onUnlisten(r,!1);case 2:return n.onLastRemoteStoreUnlisten(r);default:return}}function s0(e){e.Y_.forEach(e=>{e.next()})}(Jg=Jg||{}).ea="default",Jg.Cache="cache";class a0{constructor(e,t,n){this.query=e,this.ta=t,this.na=!1,this.ra=null,this.onlineState="Unknown",this.options=n||{}}X_(e){if(!this.options.includeMetadataChanges){const t=[];for(const n of e.docChanges)3!==n.type&&t.push(n);e=new ZT(e.query,e.docs,e.oldDocs,t,e.mutatedKeys,e.fromCache,e.syncStateChanged,!0,e.hasCachedResults)}let t=!1;return this.na?this.ia(e)&&(this.ta.next(e),t=!0):this.sa(e,this.onlineState)&&(this.oa(e),t=!0),this.ra=e,t}onError(e){this.ta.error(e)}Z_(e){this.onlineState=e;let t=!1;return this.ra&&!this.na&&this.sa(this.ra,e)&&(this.oa(this.ra),t=!0),t}sa(e,t){return!e.fromCache||(!this.J_()||(!this.options._a||!("Offline"!==t))&&(!e.docs.isEmpty()||e.hasCachedResults||"Offline"===t))}ia(e){if(0<e.docChanges.length)return!0;var t=this.ra&&this.ra.hasPendingWrites!==e.hasPendingWrites;return!(!e.syncStateChanged&&!t)&&!0===this.options.includeMetadataChanges}oa(e){e=ZT.fromInitialDocuments(e.query,e.docs,e.mutatedKeys,e.fromCache,e.hasCachedResults),this.na=!0,this.ta.next(e)}J_(){return this.options.source!==Jg.Cache}}class o0{constructor(e,t){this.aa=e,this.byteLength=t}ua(){return"metadata"in this.aa}}class c0{constructor(e){this.serializer=e}Es(e){return Lw(this.serializer,e)}ds(e){return e.metadata.exists?Bw(this.serializer,e.document,!1):k_.newNoDocument(this.Es(e.metadata.name),this.As(e.metadata.readTime))}As(e){return Pw(e)}}class l0{constructor(e,t,n){this.ca=e,this.localStore=t,this.serializer=n,this.queries=[],this.documents=[],this.collectionGroups=new Set,this.progress=u0(e)}la(e){this.progress.bytesLoaded+=e.byteLength;let t=this.progress.documentsLoaded;if(e.aa.namedQuery)this.queries.push(e.aa.namedQuery);else if(e.aa.documentMetadata){this.documents.push({metadata:e.aa.documentMetadata}),e.aa.documentMetadata.exists||++t;const n=Nm.fromString(e.aa.documentMetadata.name);this.collectionGroups.add(n.get(n.length-2))}else e.aa.document&&(this.documents[this.documents.length-1].document=e.aa.document,++t);return t!==this.progress.documentsLoaded?(this.progress.documentsLoaded=t,Object.assign({},this.progress)):null}ha(e){const t=new Map,n=new c0(this.serializer);for(const i of e)if(i.metadata.queries){const e=n.Es(i.metadata.name);for(const n of i.metadata.queries){var r=(t.get(n)||Sy()).add(e);t.set(n,r)}}return t}async complete(){const e=await async function(e,t,n,r){const i=e;let s=Sy(),a=yy;for(const e of n){const n=t.Es(e.metadata.name);e.document&&(s=s.add(n));const l=t.ds(e);l.setReadTime(t.As(e.metadata.readTime)),a=a.insert(n,l)}const o=i.cs.newChangeBuffer({trackRemovals:!0}),c=await QI(i,(r=r,ly(sy(Nm.fromString(`__bundle__/docs/${r}`)))));return i.persistence.runTransaction("Apply bundle documents","readwrite",t=>HI(t,o,a).next(e=>(o.apply(t),e)).next(e=>i.Ur.removeMatchingKeysForTargetId(t,c.targetId).next(()=>i.Ur.addMatchingKeys(t,s,c.targetId)).next(()=>i.localDocuments.getLocalViewOfDocuments(t,e.Ps,e.Is)).next(()=>e.Ps)))}(this.localStore,new c0(this.serializer),this.documents,this.ca.id),t=this.ha(this.documents);for(const e of this.queries)await async function(e,n,r=Sy()){const i=await QI(e,ly(cb(n.bundledQuery))),s=e;return s.persistence.runTransaction("Save named query","readwrite",e=>{var t=Pw(n.readTime);if(0<=i.snapshotVersion.compareTo(t))return s.Gr.saveNamedQuery(e,n);t=i.withResumeToken(Qv.EMPTY_BYTE_STRING,t);return s.os=s.os.insert(t.targetId,t),s.Ur.updateTargetData(e,t).next(()=>s.Ur.removeMatchingKeysForTargetId(e,i.targetId)).next(()=>s.Ur.addMatchingKeys(e,r,i.targetId)).next(()=>s.Gr.saveNamedQuery(e,n))})}(this.localStore,e,t.get(e.name));return this.progress.taskState="Success",{progress:this.progress,Pa:this.collectionGroups,Ia:e}}}function u0(e){return{taskState:"Running",documentsLoaded:0,bytesLoaded:0,totalDocuments:e.totalDocuments,totalBytes:e.totalBytes}}class h0{constructor(e){this.key=e}}class d0{constructor(e){this.key=e}}class p0{constructor(e,t){this.query=e,this.Ta=t,this.Ea=null,this.hasCachedResults=!1,this.current=!1,this.da=Sy(),this.mutatedKeys=Sy(),this.Aa=vy(e),this.Ra=new JT(this.Aa)}get Va(){return this.Ta}ma(e,t){const o=t?t.fa:new XT,c=(t||this).Ra;let l=(t||this).mutatedKeys,u=c,h=!1;const d="F"===this.query.limitType&&c.size===this.query.limit?c.last():null,p="L"===this.query.limitType&&c.size===this.query.limit?c.first():null;if(e.inorderTraversal((e,t)=>{const n=c.get(e),r=gy(this.query,t)?t:null,i=!!n&&this.mutatedKeys.has(n.key),s=!!r&&(r.hasLocalMutations||this.mutatedKeys.has(r.key)&&r.hasCommittedMutations);let a=!1;n&&r?n.data.isEqual(r.data)?i!==s&&(o.track({type:3,doc:r}),a=!0):this.ga(n,r)||(o.track({type:2,doc:r}),a=!0,(d&&0<this.Aa(r,d)||p&&this.Aa(r,p)<0)&&(h=!0)):!n&&r?(o.track({type:0,doc:r}),a=!0):n&&!r&&(o.track({type:1,doc:n}),a=!0,(d||p)&&(h=!0)),a&&(l=r?(u=u.add(r),s?l.add(e):l.delete(e)):(u=u.delete(e),l.delete(e)))}),null!==this.query.limit)for(;u.size>this.query.limit;){const e="F"===this.query.limitType?u.last():u.first();u=u.delete(e.key),l=l.delete(e.key),o.track({type:1,doc:e})}return{Ra:u,fa:o,ns:h,mutatedKeys:l}}ga(e,t){return e.hasLocalMutations&&t.hasCommittedMutations&&!t.hasLocalMutations}applyChanges(e,t,n,r){var i=this.Ra;this.Ra=e.Ra,this.mutatedKeys=e.mutatedKeys;const s=e.fa.G_();s.sort((e,t)=>function(e,t){var n=e=>{switch(e){case 0:return 1;case 2:case 3:return 2;case 1:return 0;default:return lm()}};return n(e)-n(t)}(e.type,t.type)||this.Aa(e.doc,t.doc)),this.pa(n),r=null!=r&&r;var a=t&&!r?this.ya():[],o=0===this.da.size&&this.current&&!r?1:0,c=o!==this.Ea;return this.Ea=o,0!==s.length||c?{snapshot:new ZT(this.query,e.Ra,i,s,e.mutatedKeys,0==o,c,!1,!!n&&0<n.resumeToken.approximateByteSize()),wa:a}:{wa:a}}Z_(e){return this.current&&"Offline"===e?(this.current=!1,this.applyChanges({Ra:this.Ra,fa:new XT,mutatedKeys:this.mutatedKeys,ns:!1},!1)):{wa:[]}}Sa(e){return!this.Ta.has(e)&&!!this.Ra.has(e)&&!this.Ra.get(e).hasLocalMutations}pa(e){e&&(e.addedDocuments.forEach(e=>this.Ta=this.Ta.add(e)),e.modifiedDocuments.forEach(e=>{}),e.removedDocuments.forEach(e=>this.Ta=this.Ta.delete(e)),this.current=e.current)}ya(){if(!this.current)return[];const t=this.da;this.da=Sy(),this.Ra.forEach(e=>{this.Sa(e.key)&&(this.da=this.da.add(e.key))});const n=[];return t.forEach(e=>{this.da.has(e)||n.push(new d0(e))}),this.da.forEach(e=>{t.has(e)||n.push(new h0(e))}),n}ba(e){this.Ta=e.Ts,this.da=Sy();var t=this.ma(e.documents);return this.applyChanges(t,!0)}Da(){return ZT.fromInitialDocuments(this.query,this.Ra,this.mutatedKeys,0===this.Ea,this.hasCachedResults)}}class f0{constructor(e,t,n){this.query=e,this.targetId=t,this.view=n}}class g0{constructor(e){this.key=e,this.va=!1}}class m0{constructor(e,t,n,r,i,s){this.localStore=e,this.remoteStore=t,this.eventManager=n,this.sharedClientState=r,this.currentUser=i,this.maxConcurrentLimboResolutions=s,this.Ca={},this.Fa=new _y(e=>py(e),dy),this.Ma=new Map,this.xa=new Set,this.Oa=new jv(Dm.comparator),this.Na=new Map,this.La=new EI,this.Ba={},this.ka=new Map,this.qa=Zb.kn(),this.onlineState="Unknown",this.Qa=void 0}get isPrimaryClient(){return!0===this.Qa}}async function v0(e,t,n,r){var i=await QI(e.localStore,ly(t)),s=i.targetId,a=e.sharedClientState.addLocalQueryTarget(s,n);let o;return r&&(o=await _0(e,t,s,"current"===a,i.resumeToken)),e.isPrimaryClient&&n&&PT(e.remoteStore,i),o}async function _0(r,e,t,n,i){r.Ka=(e,t,n)=>async function(e,t,n,r){let i=t.view.ma(n);i.ns&&(i=await JI(e.localStore,t.query,!1).then(({documents:e})=>t.view.ma(e,i)));var s=r&&r.targetChanges.get(t.targetId),a=r&&null!=r.targetMismatches.get(t.targetId),a=t.view.applyChanges(i,e.isPrimaryClient,s,a);return k0(e,t.targetId,a.wa),a.snapshot}(r,e,t,n);const s=await JI(r.localStore,e,!0),a=new p0(e,s.Ts),o=a.ma(s.documents),c=mw.createSynthesizedTargetChangeForCurrentChange(t,n&&"Offline"!==r.onlineState,i),l=a.applyChanges(o,r.isPrimaryClient,c);k0(r,t,l.wa);var u=new f0(e,t,a);return r.Fa.set(e,u),r.Ma.has(t)?r.Ma.get(t).push(e):r.Ma.set(t,[e]),l.snapshot}async function y0(e,t,n){const r=O0(e);try{const e=await function(e,i){const s=e,a=Sm.now(),o=i.reduce((e,t)=>e.add(t.key),Sy());let c,l;return s.persistence.runTransaction("Locally write mutations","readwrite",n=>{let t=yy,r=Sy();return s.cs.getEntries(n,o).next(e=>{t=e,t.forEach((e,t)=>{t.isValidDocument()||(r=r.add(e))})}).next(()=>s.localDocuments.getOverlayedDocuments(n,t)).next(e=>{c=e;const t=[];for(const n of i){const i=function(e,t){let n=null;for(const r of e.fieldTransforms){const e=t.data.field(r.field),i=Dy(r.transform,e||null);null!=i&&(null===n&&(n=S_.empty()),n.set(r.field,i))}return n||null}(n,c.get(n.key).overlayedDocument);null!=i&&t.push(new Jy(n.key,i,function r(e){const i=[];return Vv(e.fields,(e,t)=>{const n=new Pm([e]);if(y_(t)){const e=r(t.mapValue).fields;if(0===e.length)i.push(n);else for(const t of e)i.push(n.child(t))}else i.push(n)}),new Gv(i)}(i.value.mapValue),zy.exists(!0)))}return s.mutationQueue.addMutationBatch(n,a,t,i)}).next(e=>{var t=(l=e).applyToLocalDocumentSet(c,r);return s.documentOverlayCache.saveOverlays(n,e.batchId,t)})}).then(()=>({batchId:l.batchId,changes:Iy(c)}))}(r.localStore,t);r.sharedClientState.addPendingMutation(e.batchId),function(e,t,n){let r=e.Ba[e.currentUser.toKey()];r=r||new jv(Tm),r=r.insert(t,n),e.Ba[e.currentUser.toKey()]=r}(r,e.batchId,n),await N0(r,e.changes),await jT(r.remoteStore)}catch(e){const t=YT(e,"Failed to persist write");n.reject(t)}}async function w0(e,t){const r=e;try{const e=await GI(r.localStore,t);t.targetChanges.forEach((e,t)=>{const n=r.Na.get(t);n&&(um(e.addedDocuments.size+e.modifiedDocuments.size+e.removedDocuments.size<=1),0<e.addedDocuments.size?n.va=!0:0<e.modifiedDocuments.size?um(n.va):0<e.removedDocuments.size&&(um(n.va),n.va=!1))}),await N0(r,e,t)}catch(e){await Km(e)}}function b0(r,i,e){const t=r;if(t.isPrimaryClient&&0===e||!t.isPrimaryClient&&1===e){const r=[];t.Fa.forEach((e,t)=>{var n=t.view.Z_(i);n.snapshot&&r.push(n.snapshot)}),function(e,n){const t=e;t.onlineState=n;let r=!1;t.queries.forEach((e,t)=>{for(const e of t.j_)e.Z_(n)&&(r=!0)}),r&&s0(t)}(t.eventManager,i),r.length&&t.Ca.d_(r),t.onlineState=i,t.isPrimaryClient&&t.sharedClientState.setOnlineState(i)}}async function I0(e,t){const n=e,r=t.batch.batchId;try{const e=await function(e,r){const i=e;return i.persistence.runTransaction("Acknowledge batch","readwrite-primary",e=>{const t=r.batch.keys(),n=i.cs.newChangeBuffer({trackRemovals:!0});return function(e,t,r,i){const s=r.batch,n=s.keys();let a=$m.resolve();return n.forEach(n=>{a=a.next(()=>i.getEntry(t,n)).next(e=>{var t=r.docVersions.get(n);um(null!==t),e.version.compareTo(t)<0&&(s.applyToRemoteDocument(e,r),e.isValidDocument()&&(e.setReadTime(r.commitVersion),i.addEntry(e)))})}),a.next(()=>e.mutationQueue.removeMutationBatch(t,s))}(i,e,r,n).next(()=>n.apply(e)).next(()=>i.mutationQueue.performConsistencyCheck(e)).next(()=>i.documentOverlayCache.removeOverlaysForBatchId(e,t,r.batch.batchId)).next(()=>i.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(e,function(e){let t=Sy();for(let n=0;n<e.mutationResults.length;++n)0<e.mutationResults[n].transformResults.length&&(t=t.add(e.batch.mutations[n].key));return t}(r))).next(()=>i.localDocuments.getDocuments(e,t))})}(n.localStore,t);E0(n,r,null),T0(n,r),n.sharedClientState.updateMutationState(r,"acknowledged"),await N0(n,e)}catch(e){await Km(e)}}function T0(e,t){(e.ka.get(t)||[]).forEach(e=>{e.resolve()}),e.ka.delete(t)}function E0(e,t,n){const r=e;let i=r.Ba[r.currentUser.toKey()];if(i){const e=i.get(t);e&&(n?e.reject(n):e.resolve(),i=i.remove(t)),r.Ba[r.currentUser.toKey()]=i}}function C0(t,e,n=null){t.sharedClientState.removeLocalQueryTarget(e);for(const r of t.Ma.get(e))t.Fa.delete(r),n&&t.Ca.$a(r,n);t.Ma.delete(e),t.isPrimaryClient&&t.La.gr(e).forEach(e=>{t.La.containsKey(e)||S0(t,e)})}function S0(e,t){e.xa.delete(t.path.canonicalString());var n=e.Oa.get(t);null!==n&&(DT(e.remoteStore,n),e.Oa=e.Oa.remove(t),e.Na.delete(n),A0(e))}function k0(e,t,n){for(const r of n)r instanceof h0?(e.La.addReference(r.key,t),function(e,t){const n=t.key,r=n.path.canonicalString();e.Oa.get(n)||e.xa.has(r)||(sm("SyncEngine","New document in limbo: "+n),e.xa.add(r),A0(e))}(e,r)):r instanceof d0?(sm("SyncEngine","Document no longer in limbo: "+r.key),e.La.removeReference(r.key,t),e.La.containsKey(r.key)||S0(e,r.key)):lm()}function A0(e){for(;0<e.xa.size&&e.Oa.size<e.maxConcurrentLimboResolutions;){var t=e.xa.values().next().value;e.xa.delete(t);var n=new Dm(Nm.fromString(t)),t=e.qa.next();e.Na.set(t,new g0(n)),e.Oa=e.Oa.insert(n,t),PT(e.remoteStore,new Zw(ly(sy(n.path)),t,"TargetPurposeLimboResolution",iv.oe))}}async function N0(e,t,r){const i=e,s=[],a=[],o=[];i.Fa.isEmpty()||(i.Fa.forEach((e,n)=>{o.push(i.Ka(n,t,r).then(e=>{var t;if((e||r)&&i.isPrimaryClient){const s=e?!e.fromCache:null===(t=null==r?void 0:r.targetChanges.get(n.targetId))||void 0===t?void 0:t.current;i.sharedClientState.updateQueryState(n.targetId,s?"current":"not-current")}if(e){s.push(e);const t=qI.Wi(n.targetId,e);a.push(t)}}))}),await Promise.all(o),i.Ca.d_(s),await async function(e,t){const r=e;try{await r.persistence.runTransaction("notifyLocalViewChanges","readwrite",n=>$m.forEach(t,t=>$m.forEach(t.$i,e=>r.persistence.referenceDelegate.addReference(n,t.targetId,e)).next(()=>$m.forEach(t.Ui,e=>r.persistence.referenceDelegate.removeReference(n,t.targetId,e)))))}catch(e){if(!Jm(e))throw e;sm("LocalStore","Failed to update sequence numbers: "+e)}for(const e of t){const t=e.targetId;if(!e.fromCache){const e=r.os.get(t),n=e.snapshotVersion,i=e.withLastLimboFreeSnapshotVersion(n);r.os=r.os.insert(t,i)}}}(i.localStore,a))}async function R0(r,e){const i=r;if(x0(i),O0(i),!0===e&&!0!==i.Qa){const r=i.sharedClientState.getAllActiveQueryTargets(),e=await P0(i,r.toArray());i.Qa=!0,await WT(i.remoteStore,!0);for(const r of e)PT(i.remoteStore,r)}else if(!1===e&&!1!==i.Qa){const r=[];let n=Promise.resolve();i.Ma.forEach((e,t)=>{i.sharedClientState.isLocalQueryTarget(t)?r.push(t):n=n.then(()=>(C0(i,t),YI(i.localStore,t,!0))),DT(i.remoteStore,t)}),await n,await P0(i,r),function(e){const n=e;n.Na.forEach((e,t)=>{DT(n.remoteStore,t)}),n.La.pr(),n.Na=new Map,n.Oa=new jv(Dm.comparator)}(i),i.Qa=!1,await WT(i.remoteStore,!1)}}async function P0(t,n){const r=t,i=[],s=[];for(const t of n){let e;const u=r.Ma.get(t);if(u&&0!==u.length){e=await QI(r.localStore,ly(u[0]));for(const t of u){const n=r.Fa.get(t),u=(a=r,o=n,l=c=void 0,l=await JI((c=a).localStore,o.query,!0),l=o.view.ba(l),c.isPrimaryClient&&k0(c,o.targetId,l.wa),await l);u.snapshot&&s.push(u.snapshot)}}else{const u=await XI(r.localStore,t);e=await QI(r.localStore,u),await _0(r,D0(u),t,!1,e.resumeToken)}i.push(e)}var a,o,c,l;return r.Ca.d_(s),i}function D0(e){return iy(e.path,e.collectionGroup,e.orderBy,e.filters,e.limit,"F",e.startAt,e.endAt)}function x0(e){const t=e;return t.remoteStore.remoteSyncer.applyRemoteEvent=w0.bind(null,t),t.remoteStore.remoteSyncer.getRemoteKeysForTarget=(function(e,t){const n=e,r=n.Na.get(t);if(r&&r.va)return Sy().add(r.key);{let e=Sy();const r=n.Ma.get(t);if(!r)return e;for(const t of r){const r=n.Fa.get(t);e=e.unionWith(r.view.Va)}return e}}).bind(null,t),t.remoteStore.remoteSyncer.rejectListen=(async function(e,t,n){const r=e;r.sharedClientState.updateQueryState(t,"rejected",n);const i=r.Na.get(t),s=i&&i.key;if(s){let e=new jv(Dm.comparator);e=e.insert(s,k_.newNoDocument(s,km.min()));const n=Sy().add(s),i=new gw(km.min(),new Map,new jv(Tm),e,n);await w0(r,i),r.Oa=r.Oa.remove(s),r.Na.delete(t),A0(r)}else await YI(r.localStore,t,!1).then(()=>C0(r,t,n)).catch(Km)}).bind(null,t),t.Ca.d_=(function(e,t){const n=e;let r=!1;for(const e of t){const t=e.query,i=n.queries.get(t);if(i){for(const t of i.j_)t.X_(e)&&(r=!0);i.z_=e}}r&&s0(n)}).bind(null,t.eventManager),t.Ca.$a=(function(e,t,n){const r=e,i=r.queries.get(t);if(i)for(const e of i.j_)e.onError(n);r.queries.delete(t)}).bind(null,t.eventManager),t}function O0(e){const t=e;return t.remoteStore.remoteSyncer.applySuccessfulWrite=I0.bind(null,t),t.remoteStore.remoteSyncer.rejectFailedWrite=(async function(e,t,n){const r=e;try{const e=await function(e,r){const i=e;return i.persistence.runTransaction("Reject batch","readwrite-primary",t=>{let n;return i.mutationQueue.lookupMutationBatch(t,r).next(e=>(um(null!==e),n=e.keys(),i.mutationQueue.removeMutationBatch(t,e))).next(()=>i.mutationQueue.performConsistencyCheck(t)).next(()=>i.documentOverlayCache.removeOverlaysForBatchId(t,n,r)).next(()=>i.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(t,n)).next(()=>i.localDocuments.getDocuments(t,n))})}(r.localStore,t);E0(r,t,n),T0(r,t),r.sharedClientState.updateMutationState(t,"rejected",n),await N0(r,e)}catch(n){await Km(n)}}).bind(null,t),t}class M0{constructor(){this.kind="memory",this.synchronizeTabs=!1}async initialize(e){this.serializer=bT(e.databaseInfo.databaseId),this.sharedClientState=this.Wa(e),this.persistence=this.Ga(e),await this.persistence.start(),this.localStore=this.za(e),this.gcScheduler=this.ja(e,this.localStore),this.indexBackfillerScheduler=this.Ha(e,this.localStore)}ja(e,t){return null}Ha(e,t){return null}za(e){return KI(this.persistence,new BI,e.initialUser,this.serializer)}Ga(e){return new RI(DI.Zr,this.serializer)}Wa(e){return new uT}async terminate(){var e;null===(e=this.gcScheduler)||void 0===e||e.stop(),null===(e=this.indexBackfillerScheduler)||void 0===e||e.stop(),this.sharedClientState.shutdown(),await this.persistence.shutdown()}}M0.provider={build:()=>new M0};class L0 extends M0{constructor(e,t,n){super(),this.Ja=e,this.cacheSizeBytes=t,this.forceOwnership=n,this.kind="persistent",this.synchronizeTabs=!1}async initialize(e){await super.initialize(e),await this.Ja.initialize(this,e),await O0(this.Ja.syncEngine),await jT(this.Ja.remoteStore),await this.persistence.yi(()=>(this.gcScheduler&&!this.gcScheduler.started&&this.gcScheduler.start(),this.indexBackfillerScheduler&&!this.indexBackfillerScheduler.started&&this.indexBackfillerScheduler.start(),Promise.resolve()))}za(e){return KI(this.persistence,new BI,e.initialUser,this.serializer)}ja(e,t){var n=this.persistence.referenceDelegate.garbageCollector;return new aI(n,e.asyncQueue,t)}Ha(e,t){var n=new rv(t,this.persistence);return new nv(e.asyncQueue,n)}Ga(e){var t=VI(e.databaseInfo.databaseId,e.databaseInfo.persistenceKey),n=void 0!==this.cacheSizeBytes?$b.withCacheSize(this.cacheSizeBytes):$b.DEFAULT;return new LI(this.synchronizeTabs,t,e.clientId,n,e.asyncQueue,yT(),wT(),this.serializer,this.sharedClientState,!!this.forceOwnership)}Wa(e){return new uT}}class F0 extends L0{constructor(e,t){super(e,t,!1),this.Ja=e,this.cacheSizeBytes=t,this.synchronizeTabs=!0}async initialize(e){await super.initialize(e);var t=this.Ja.syncEngine;this.sharedClientState instanceof lT&&(this.sharedClientState.syncEngine={no:(async function(e,t,n,r){var i=e,s=await function(e,n){const r=e,i=r.mutationQueue;return r.persistence.runTransaction("Lookup mutation documents","readonly",t=>i.Mn(t,n).next(e=>e?r.localDocuments.getDocuments(t,e):$m.resolve(null)))}(i.localStore,t);null!==s?("pending"===n?await jT(i.remoteStore):"acknowledged"===n||"rejected"===n?(E0(i,t,r||null),T0(i,t),i.localStore.mutationQueue.On(t)):lm(),await N0(i,s)):sm("SyncEngine","Cannot apply mutation batch with id: "+t)}).bind(null,t),ro:(async function(e,t,n,r){const i=e;if(i.Qa)sm("SyncEngine","Ignoring unexpected query state notification.");else{var s=i.Ma.get(t);if(s&&0<s.length)switch(n){case"current":case"not-current":{const e=await ZI(i.localStore,my(s[0])),r=gw.createSynthesizedRemoteEventForCurrentChange(t,"current"===n,Qv.EMPTY_BYTE_STRING);await N0(i,e,r);break}case"rejected":await YI(i.localStore,t,!0),C0(i,t,r);break;default:lm()}}}).bind(null,t),io:(async function(e,t,n){const r=x0(e);if(r.Qa){for(const e of t)if(r.Ma.has(e)&&r.sharedClientState.isActiveQueryTarget(e))sm("SyncEngine","Adding an already active target "+e);else{const t=await XI(r.localStore,e),n=await QI(r.localStore,t);await _0(r,D0(t),n.targetId,!1,n.resumeToken),PT(r.remoteStore,n)}for(const e of n)r.Ma.has(e)&&await YI(r.localStore,e,!1).then(()=>{DT(r.remoteStore,e),C0(r,e)}).catch(Km)}}).bind(null,t),Qi:(function(e){return e.localStore.persistence.Qi()}).bind(null,t),eo:(async function(e,t){const n=e;return ZI(n.localStore,t).then(e=>N0(n,e))}).bind(null,t)},await this.sharedClientState.start()),await this.persistence.yi(async e=>{await R0(this.Ja.syncEngine,e),this.gcScheduler&&(e&&!this.gcScheduler.started?this.gcScheduler.start():e||this.gcScheduler.stop()),this.indexBackfillerScheduler&&(e&&!this.indexBackfillerScheduler.started?this.indexBackfillerScheduler.start():e||this.indexBackfillerScheduler.stop())})}Wa(e){var t=yT();if(!lT.D(t))throw new dm(hm.UNIMPLEMENTED,"IndexedDB persistence is only available on platforms that support LocalStorage.");var n=VI(e.databaseInfo.databaseId,e.databaseInfo.persistenceKey);return new lT(t,e.asyncQueue,n,e.clientId,e.initialUser)}}class U0{async initialize(e,t){this.localStore||(this.localStore=e.localStore,this.sharedClientState=e.sharedClientState,this.datastore=this.createDatastore(t),this.remoteStore=this.createRemoteStore(t),this.eventManager=this.createEventManager(t),this.syncEngine=this.createSyncEngine(t,!e.synchronizeTabs),this.sharedClientState.onlineStateHandler=e=>b0(this.syncEngine,e,1),this.remoteStore.remoteSyncer.handleCredentialChange=(async function(e,t){const n=e;if(!n.currentUser.isEqual(t)){sm("SyncEngine","User change. New user:",t.toKey());const i=await $I(n.localStore,t);n.currentUser=t,e=n,r="'waitForPendingWrites' promise is rejected due to a user change.",e.ka.forEach(e=>{e.forEach(e=>{e.reject(new dm(hm.CANCELLED,r))})}),e.ka.clear(),n.sharedClientState.handleUserChange(t,i.removedBatchIds,i.addedBatchIds),await N0(n,i.hs)}var r}).bind(null,this.syncEngine),await WT(this.remoteStore,this.syncEngine.isPrimaryClient))}createEventManager(e){return new t0}createDatastore(e){var t,n,r,i=bT(e.databaseInfo.databaseId),s=(r=e.databaseInfo,new _T(r));return t=e.authCredentials,n=e.appCheckCredentials,r=s,e=i,new ST(t,n,r,e)}createRemoteStore(e){return t=this.localStore,n=this.datastore,r=e.asyncQueue,i=e=>b0(this.syncEngine,e,0),e=new(dT.D()?dT:hT),new AT(t,n,r,i,e);var t,n,r,i}createSyncEngine(e,t){return function(e,t,n,r,i,s,a){const o=new m0(e,t,n,r,i,s);return a&&(o.Qa=!0),o}(this.localStore,this.remoteStore,this.eventManager,this.sharedClientState,e.initialUser,e.maxConcurrentLimboResolutions,t)}async terminate(){var e;await async function(e){const t=e;sm("RemoteStore","RemoteStore shutting down."),t.L_.add(5),await RT(t),t.k_.shutdown(),t.q_.set("Unknown")}(this.remoteStore),null===(e=this.datastore)||void 0===e||e.terminate(),null===(e=this.eventManager)||void 0===e||e.terminate()}}function V0(t,n=10240){let r=0;return{async read(){if(r<t.byteLength){var e={value:t.slice(r,r+n),done:!1};return r+=n,e}return{done:!0}},async cancel(){},releaseLock(){},closed:Promise.resolve()}}U0.provider={build:()=>new U0};class q0{constructor(e){this.observer=e,this.muted=!1}next(e){this.muted||this.observer.next&&this.Ya(this.observer.next,e)}error(e){this.muted||(this.observer.error?this.Ya(this.observer.error,e):am("Uncaught Error in snapshot listener:",e.toString()))}Za(){this.muted=!0}Ya(e,t){setTimeout(()=>{this.muted||e(t)},0)}}class j0{constructor(e,t){this.Xa=e,this.serializer=t,this.metadata=new pm,this.buffer=new Uint8Array,this.eu=new TextDecoder("utf-8"),this.tu().then(e=>{e&&e.ua()?this.metadata.resolve(e.aa.metadata):this.metadata.reject(new Error(`The first element of the bundle is not a metadata, it is\n             ${JSON.stringify(null==e?void 0:e.aa)}`))},e=>this.metadata.reject(e))}close(){return this.Xa.cancel()}async getMetadata(){return this.metadata.promise}async Ua(){return await this.getMetadata(),this.tu()}async tu(){var e=await this.nu();if(null===e)return null;var t=this.eu.decode(e),n=Number(t);isNaN(n)&&this.ru(`length string (${t}) is not valid number`);t=await this.iu(n);return new o0(JSON.parse(t),e.length+n)}su(){return this.buffer.findIndex(e=>e==="{".charCodeAt(0))}async nu(){for(;this.su()<0&&!await this.ou(););if(0===this.buffer.length)return null;var e=this.su();e<0&&this.ru("Reached the end of bundle when a length string is expected.");var t=this.buffer.slice(0,e);return this.buffer=this.buffer.slice(e),t}async iu(e){for(;this.buffer.length<e;)await this.ou()&&this.ru("Reached the end of bundle when more is expected.");var t=this.eu.decode(this.buffer.slice(0,e));return this.buffer=this.buffer.slice(e),t}ru(e){throw this.Xa.cancel(),new Error(`Invalid bundle format: ${e}`)}async ou(){var e=await this.Xa.read();if(!e.done){const t=new Uint8Array(this.buffer.length+e.value.length);t.set(this.buffer),t.set(e.value,this.buffer.length),this.buffer=t}return e.done}}class B0{constructor(e){this.datastore=e,this.readVersions=new Map,this.mutations=[],this.committed=!1,this.lastTransactionError=null,this.writtenDocs=new Set}async lookup(e){if(this.ensureCommitNotCalled(),0<this.mutations.length)throw this.lastTransactionError=new dm(hm.INVALID_ARGUMENT,"Firestore transactions require all reads to be executed before all writes."),this.lastTransactionError;const t=await async function(e,t){const r=e,n={documents:t.map(e=>Mw(r.serializer,e))},i=await r.Lo("BatchGetDocuments",r.serializer.databaseId,Nm.emptyPath(),n,t.length),s=new Map;i.forEach(e=>{const t=(n=r.serializer,"found"in(e=e)?function(e,t){um(!!t.found),t.found.name,t.found.updateTime;var n=Lw(e,t.found.name),r=Pw(t.found.updateTime),i=t.found.createTime?Pw(t.found.createTime):km.min(),s=new S_({mapValue:{fields:t.found.fields}});return k_.newFoundDocument(n,r,i,s)}(n,e):"missing"in e?function(e,t){um(!!t.missing),um(!!t.readTime);var n=Lw(e,t.missing),r=Pw(t.readTime);return k_.newNoDocument(n,r)}(n,e):lm());var n;s.set(t.key.toString(),t)});const a=[];return t.forEach(e=>{var t=s.get(e.toString());um(!!t),a.push(t)}),a}(this.datastore,e);return t.forEach(e=>this.recordVersion(e)),t}set(e,t){this.write(t.toMutation(e,this.precondition(e))),this.writtenDocs.add(e.toString())}update(e,t){try{this.write(t.toMutation(e,this.preconditionForUpdate(e)))}catch(e){this.lastTransactionError=e}this.writtenDocs.add(e.toString())}delete(e){this.write(new tw(e,this.precondition(e))),this.writtenDocs.add(e.toString())}async commit(){if(this.ensureCommitNotCalled(),this.lastTransactionError)throw this.lastTransactionError;const t=this.readVersions;this.mutations.forEach(e=>{t.delete(e.key.toString())}),t.forEach((e,t)=>{var n=Dm.fromPath(t);this.mutations.push(new nw(n,this.precondition(n)))}),await async function(e,t){const n=e,r={writes:t.map(e=>zw(n.serializer,e))};await n.Mo("Commit",n.serializer.databaseId,Nm.emptyPath(),r)}(this.datastore,this.mutations),this.committed=!0}recordVersion(e){let t;if(e.isFoundDocument())t=e.version;else{if(!e.isNoDocument())throw lm();t=km.min()}var n=this.readVersions.get(e.key.toString());if(n){if(!t.isEqual(n))throw new dm(hm.ABORTED,"Document version changed between two reads.")}else this.readVersions.set(e.key.toString(),t)}precondition(e){const t=this.readVersions.get(e.toString());return!this.writtenDocs.has(e.toString())&&t?t.isEqual(km.min())?zy.exists(!1):zy.updateTime(t):zy.none()}preconditionForUpdate(e){const t=this.readVersions.get(e.toString());if(this.writtenDocs.has(e.toString())||!t)return zy.exists(!0);if(t.isEqual(km.min()))throw new dm(hm.INVALID_ARGUMENT,"Can't update a document that doesn't exist.");return zy.updateTime(t)}write(e){this.ensureCommitNotCalled(),this.mutations.push(e)}ensureCommitNotCalled(){}}class z0{constructor(e,t,n,r,i){this.asyncQueue=e,this.datastore=t,this.options=n,this.updateFunction=r,this.deferred=i,this._u=n.maxAttempts,this.t_=new IT(this.asyncQueue,"transaction_retry")}au(){--this._u,this.uu()}uu(){this.t_.Go(async()=>{const t=new B0(this.datastore),e=this.cu(t);e&&e.then(e=>{this.asyncQueue.enqueueAndForget(()=>t.commit().then(()=>{this.deferred.resolve(e)}).catch(e=>{this.lu(e)}))}).catch(e=>{this.lu(e)})})}cu(e){try{var t=this.updateFunction(e);return!sv(t)&&t.catch&&t.then?t:(this.deferred.reject(Error("Transaction callback must return a Promise")),null)}catch(e){return this.deferred.reject(e),null}}lu(e){0<this._u&&this.hu(e)?(--this._u,this.asyncQueue.enqueueAndForget(()=>(this.uu(),Promise.resolve()))):this.deferred.reject(e)}hu(e){if("FirebaseError"!==e.name)return!1;var t=e.code;return"aborted"===t||"failed-precondition"===t||"already-exists"===t||!ow(t)}}class K0{constructor(e,t,n,r,i){this.authCredentials=e,this.appCheckCredentials=t,this.asyncQueue=n,this.databaseInfo=r,this.user=tm.UNAUTHENTICATED,this.clientId=Im.newId(),this.authCredentialListener=()=>Promise.resolve(),this.appCheckCredentialListener=()=>Promise.resolve(),this._uninitializedComponentsProvider=i,this.authCredentials.start(n,async e=>{sm("FirestoreClient","Received user=",e.uid),await this.authCredentialListener(e),this.user=e}),this.appCheckCredentials.start(n,e=>(sm("FirestoreClient","Received new app check token=",e),this.appCheckCredentialListener(e,this.user)))}get configuration(){return{asyncQueue:this.asyncQueue,databaseInfo:this.databaseInfo,clientId:this.clientId,authCredentials:this.authCredentials,appCheckCredentials:this.appCheckCredentials,initialUser:this.user,maxConcurrentLimboResolutions:100}}setCredentialChangeListener(e){this.authCredentialListener=e}setAppCheckTokenChangeListener(e){this.appCheckCredentialListener=e}terminate(){this.asyncQueue.enterRestrictedMode();const n=new pm;return this.asyncQueue.enqueueAndForgetEvenWhileRestricted(async()=>{try{this._onlineComponents&&await this._onlineComponents.terminate(),this._offlineComponents&&await this._offlineComponents.terminate(),this.authCredentials.shutdown(),this.appCheckCredentials.shutdown(),n.resolve()}catch(e){var t=YT(e,"Failed to shutdown persistence");n.reject(t)}}),n.promise}}async function $0(e,t){e.asyncQueue.verifyOperationInProgress(),sm("FirestoreClient","Initializing OfflineComponentProvider");var n=e.configuration;await t.initialize(n);let r=n.initialUser;e.setCredentialChangeListener(async e=>{r.isEqual(e)||(await $I(t.localStore,e),r=e)}),t.persistence.setDatabaseDeletedListener(()=>e.terminate()),e._offlineComponents=t}async function W0(e,n){e.asyncQueue.verifyOperationInProgress();var t=await G0(e);sm("FirestoreClient","Initializing OnlineComponentProvider"),await n.initialize(t,e.configuration),e.setCredentialChangeListener(e=>$T(n.remoteStore,e)),e.setAppCheckTokenChangeListener((e,t)=>$T(n.remoteStore,t)),e._onlineComponents=n}async function G0(t){if(!t._offlineComponents)if(t._uninitializedComponentsProvider){sm("FirestoreClient","Using user provided OfflineComponentProvider");try{await $0(t,t._uninitializedComponentsProvider._offline)}catch(e){var n=e;if(!("FirebaseError"===(r=n).name?r.code===hm.FAILED_PRECONDITION||r.code===hm.UNIMPLEMENTED:!("undefined"!=typeof DOMException&&r instanceof DOMException)||22===r.code||20===r.code||11===r.code))throw n;om("Error using user provided cache. Falling back to memory cache: "+n),await $0(t,new M0)}}else sm("FirestoreClient","Using default OfflineComponentProvider"),await $0(t,new M0);var r;return t._offlineComponents}async function H0(e){return e._onlineComponents||(e._uninitializedComponentsProvider?(sm("FirestoreClient","Using user provided OnlineComponentProvider"),await W0(e,e._uninitializedComponentsProvider._online)):(sm("FirestoreClient","Using default OnlineComponentProvider"),await W0(e,new U0))),e._onlineComponents}function Q0(e){return G0(e).then(e=>e.persistence)}function Y0(e){return G0(e).then(e=>e.localStore)}function J0(e){return H0(e).then(e=>e.remoteStore)}function X0(e){return H0(e).then(e=>e.syncEngine)}async function Z0(e){const t=await H0(e),n=t.eventManager;return n.onListen=(async function(e,t,n=!0){const r=x0(e);let i;const s=r.Fa.get(t);return i=s?(r.sharedClientState.addLocalQueryTarget(s.targetId),s.view.Da()):await v0(r,t,n,!0),i}).bind(null,t.syncEngine),n.onUnlisten=(async function(e,t,n){const r=e,i=r.Fa.get(t),s=r.Ma.get(i.targetId);if(1<s.length)return r.Ma.set(i.targetId,s.filter(e=>!dy(e,t))),void r.Fa.delete(t);r.isPrimaryClient?(r.sharedClientState.removeLocalQueryTarget(i.targetId),r.sharedClientState.isActiveQueryTarget(i.targetId)||await YI(r.localStore,i.targetId,!1).then(()=>{r.sharedClientState.clearQueryState(i.targetId),n&&DT(r.remoteStore,i.targetId),C0(r,i.targetId)}).catch(Km)):(C0(r,i.targetId),await YI(r.localStore,i.targetId,!0))}).bind(null,t.syncEngine),n.onFirstRemoteStoreListen=(async function(e,t){await v0(x0(e),t,!0,!1)}).bind(null,t.syncEngine),n.onLastRemoteStoreUnlisten=(async function(e,t){const n=e,r=n.Fa.get(t),i=n.Ma.get(r.targetId);n.isPrimaryClient&&1===i.length&&(n.sharedClientState.removeLocalQueryTarget(r.targetId),DT(n.remoteStore,r.targetId))}).bind(null,t.syncEngine),n}function eE(e,t,n={}){const r=new pm;return e.asyncQueue.enqueueAndForget(async()=>function(n,r,i,s,a){const o=new q0({next:e=>{o.Za(),r.enqueueAndForget(()=>i0(n,c));var t=e.docs.has(i);!t&&e.fromCache?a.reject(new dm(hm.UNAVAILABLE,"Failed to get document because the client is offline.")):t&&e.fromCache&&s&&"server"===s.source?a.reject(new dm(hm.UNAVAILABLE,'Failed to get document from server. (However, this document does exist in the local cache. Run again without setting source to "server" to retrieve the cached document.)')):a.resolve(e)},error:e=>a.reject(e)}),c=new a0(sy(i.path),o,{includeMetadataChanges:!0,_a:!0});return r0(n,c)}(await Z0(e),e.asyncQueue,t,n,r)),r.promise}function tE(e,t,n={}){const r=new pm;return e.asyncQueue.enqueueAndForget(async()=>function(t,n,e,r,i){const s=new q0({next:e=>{s.Za(),n.enqueueAndForget(()=>i0(t,a)),e.fromCache&&"server"===r.source?i.reject(new dm(hm.UNAVAILABLE,'Failed to get documents from server. (However, these documents may exist in the local cache. Run again without setting source to "server" to retrieve the cached documents.)')):i.resolve(e)},error:e=>i.reject(e)}),a=new a0(e,s,{includeMetadataChanges:!0,_a:!0});return r0(t,a)}(await Z0(e),e.asyncQueue,t,n,r)),r.promise}function nE(e,t,n,r){const i=(n=n,t=bT(t),s="string"==typeof n?lw().encode(n):n,n=function(e,t){if(e instanceof Uint8Array)return V0(e,t);if(e instanceof ArrayBuffer)return V0(new Uint8Array(e),t);if(e instanceof ReadableStream)return e.getReader();throw new Error("Source of `toByteStreamReader` has to be a ArrayBuffer or ReadableStream")}(s),t=t,new j0(n,t));var s;e.asyncQueue.enqueueAndForget(async()=>{!function(e,t,n){const r=e;!async function(t,n,r){try{var i=await n.getMetadata();if(await function(e,t){const n=e,r=Pw(t.createTime);return n.persistence.runTransaction("hasNewerBundle","readonly",e=>n.Gr.getBundleMetadata(e,t.id)).then(e=>!!e&&0<=e.createTime.compareTo(r))}(t.localStore,i))return await n.close(),r._completeWith({taskState:"Success",documentsLoaded:i.totalDocuments,bytesLoaded:i.totalBytes,totalDocuments:i.totalDocuments,totalBytes:i.totalBytes}),Promise.resolve(new Set);r._updateProgress(u0(i));const a=new l0(i,t.localStore,n.serializer);let e=await n.Ua();for(;e;){const t=await a.la(e);t&&r._updateProgress(t),e=await n.Ua()}var s=await a.complete();return await N0(t,s.Ia,void 0),await function(e,t){const n=e;return n.persistence.runTransaction("Save bundle","readwrite",e=>n.Gr.saveBundleMetadata(e,t))}(t.localStore,i),r._completeWith(s.progress),Promise.resolve(s.Pa)}catch(t){return om("SyncEngine",`Loading bundle failed with ${t}`),r._failWith(t),Promise.resolve(new Set)}}(r,t,n).then(e=>{r.sharedClientState.notifyBundleLoaded(e)})}(await X0(e),i,r)})}function rE(e){const t={};return void 0!==e.timeoutSeconds&&(t.timeoutSeconds=e.timeoutSeconds),t}const iE=new Map;function sE(e,t,n){if(!n)throw new dm(hm.INVALID_ARGUMENT,`Function ${e}() cannot be called with an empty ${t}.`)}function aE(e,t,n,r){if(!0===t&&!0===r)throw new dm(hm.INVALID_ARGUMENT,`${e} and ${n} cannot be used together.`)}function oE(e){if(!Dm.isDocumentKey(e))throw new dm(hm.INVALID_ARGUMENT,`Invalid document reference. Document references must have an even number of segments, but ${e} has ${e.length}.`)}function cE(e){if(Dm.isDocumentKey(e))throw new dm(hm.INVALID_ARGUMENT,`Invalid collection reference. Collection references must have an odd number of segments, but ${e} has ${e.length}.`)}function lE(e){if(void 0===e)return"undefined";if(null===e)return"null";if("string"==typeof e)return 20<e.length&&(e=`${e.substring(0,20)}...`),JSON.stringify(e);if("number"==typeof e||"boolean"==typeof e)return""+e;if("object"!=typeof e)return"function"==typeof e?"a function":lm();if(e instanceof Array)return"an array";var t=(e=e).constructor?e.constructor.name:null;return t?`a custom ${t} object`:"an object"}function uE(e,t){if((e="_delegate"in e?e._delegate:e)instanceof t)return e;if(t.name===e.constructor.name)throw new dm(hm.INVALID_ARGUMENT,"Type does not match the expected instance. Did you pass a reference from a different Firestore SDK?");var n=lE(e);throw new dm(hm.INVALID_ARGUMENT,`Expected type '${t.name}', but it was: ${n}`)}function hE(e,t){if(t<=0)throw new dm(hm.INVALID_ARGUMENT,`Function ${e}() requires a positive number, but it was: ${t}.`)}class dE{constructor(e){var t;if(void 0===e.host){if(void 0!==e.ssl)throw new dm(hm.INVALID_ARGUMENT,"Can't provide ssl option if host option is not set");this.host="firestore.googleapis.com",this.ssl=!0}else this.host=e.host,this.ssl=null===(t=e.ssl)||void 0===t||t;if(this.credentials=e.credentials,this.ignoreUndefinedProperties=!!e.ignoreUndefinedProperties,this.localCache=e.localCache,void 0===e.cacheSizeBytes)this.cacheSizeBytes=41943040;else{if(-1!==e.cacheSizeBytes&&e.cacheSizeBytes<1048576)throw new dm(hm.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");this.cacheSizeBytes=e.cacheSizeBytes}aE("experimentalForceLongPolling",e.experimentalForceLongPolling,"experimentalAutoDetectLongPolling",e.experimentalAutoDetectLongPolling),this.experimentalForceLongPolling=!!e.experimentalForceLongPolling,this.experimentalForceLongPolling?this.experimentalAutoDetectLongPolling=!1:void 0===e.experimentalAutoDetectLongPolling?this.experimentalAutoDetectLongPolling=!0:this.experimentalAutoDetectLongPolling=!!e.experimentalAutoDetectLongPolling,this.experimentalLongPollingOptions=rE(null!==(t=e.experimentalLongPollingOptions)&&void 0!==t?t:{}),function(e){if(void 0!==e.timeoutSeconds){if(isNaN(e.timeoutSeconds))throw new dm(hm.INVALID_ARGUMENT,`invalid long polling timeout: ${e.timeoutSeconds} (must not be NaN)`);if(e.timeoutSeconds<5)throw new dm(hm.INVALID_ARGUMENT,`invalid long polling timeout: ${e.timeoutSeconds} (minimum allowed value is 5)`);if(30<e.timeoutSeconds)throw new dm(hm.INVALID_ARGUMENT,`invalid long polling timeout: ${e.timeoutSeconds} (maximum allowed value is 30)`)}}(this.experimentalLongPollingOptions),this.useFetchStreams=!!e.useFetchStreams}isEqual(e){return this.host===e.host&&this.ssl===e.ssl&&this.credentials===e.credentials&&this.cacheSizeBytes===e.cacheSizeBytes&&this.experimentalForceLongPolling===e.experimentalForceLongPolling&&this.experimentalAutoDetectLongPolling===e.experimentalAutoDetectLongPolling&&(t=this.experimentalLongPollingOptions,n=e.experimentalLongPollingOptions,t.timeoutSeconds===n.timeoutSeconds)&&this.ignoreUndefinedProperties===e.ignoreUndefinedProperties&&this.useFetchStreams===e.useFetchStreams;var t,n}}class pE{constructor(e,t,n,r){this._authCredentials=e,this._appCheckCredentials=t,this._databaseId=n,this._app=r,this.type="firestore-lite",this._persistenceKey="(lite)",this._settings=new dE({}),this._settingsFrozen=!1,this._terminateTask="notTerminated"}get app(){if(!this._app)throw new dm(hm.FAILED_PRECONDITION,"Firestore was not initialized using the Firebase SDK. 'app' is not available");return this._app}get _initialized(){return this._settingsFrozen}get _terminated(){return"notTerminated"!==this._terminateTask}_setSettings(e){if(this._settingsFrozen)throw new dm(hm.FAILED_PRECONDITION,"Firestore has already been started and its settings can no longer be changed. You can only modify settings before calling any other methods on a Firestore object.");this._settings=new dE(e),void 0!==e.credentials&&(this._authCredentials=function(e){if(!e)return new gm;switch(e.type){case"firstParty":return new ym(e.sessionIndex||"0",e.iamToken||null,e.authTokenFactory||null);case"provider":return e.client;default:throw new dm(hm.INVALID_ARGUMENT,"makeAuthCredentialsProvider failed due to invalid credential type")}}(e.credentials))}_getSettings(){return this._settings}_freezeSettings(){return this._settingsFrozen=!0,this._settings}_delete(){return"notTerminated"===this._terminateTask&&(this._terminateTask=this._terminate()),this._terminateTask}async _restart(){"notTerminated"===this._terminateTask?await this._terminate():this._terminateTask="notTerminated"}toJSON(){return{app:this._app,databaseId:this._databaseId,settings:this._settings}}_terminate(){return function(e){const t=iE.get(e);t&&(sm("ComponentProvider","Removing Datastore"),iE.delete(e),t.terminate())}(this),Promise.resolve()}}class fE{constructor(e,t,n){this.converter=t,this._query=n,this.type="query",this.firestore=e}withConverter(e){return new fE(this.firestore,e,this._query)}}class gE{constructor(e,t,n){this.converter=t,this._key=n,this.type="document",this.firestore=e}get _path(){return this._key.path}get id(){return this._key.path.lastSegment()}get path(){return this._key.path.canonicalString()}get parent(){return new mE(this.firestore,this.converter,this._key.path.popLast())}withConverter(e){return new gE(this.firestore,e,this._key)}}class mE extends fE{constructor(e,t,n){super(e,t,sy(n)),this._path=n,this.type="collection"}get id(){return this._query.path.lastSegment()}get path(){return this._query.path.canonicalString()}get parent(){const e=this._path.popLast();return e.isEmpty()?null:new gE(this.firestore,null,new Dm(e))}withConverter(e){return new mE(this.firestore,e,this._path)}}function vE(e,t,...n){if(e=le(e),sE("collection","path",t),e instanceof pE){var r=Nm.fromString(t,...n);return cE(r),new mE(e,null,r)}if(!(e instanceof gE||e instanceof mE))throw new dm(hm.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore");r=e._path.child(Nm.fromString(t,...n));return cE(r),new mE(e.firestore,null,r)}function _E(e,t,...n){if(e=le(e),sE("doc","path",t=1===arguments.length?Im.newId():t),e instanceof pE){var r=Nm.fromString(t,...n);return oE(r),new gE(e,null,new Dm(r))}if(!(e instanceof gE||e instanceof mE))throw new dm(hm.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore");r=e._path.child(Nm.fromString(t,...n));return oE(r),new gE(e.firestore,e instanceof mE?e.converter:null,new Dm(r))}function yE(e,t){return e=le(e),t=le(t),(e instanceof gE||e instanceof mE)&&(t instanceof gE||t instanceof mE)&&e.firestore===t.firestore&&e.path===t.path&&e.converter===t.converter}function wE(e,t){return e=le(e),t=le(t),e instanceof fE&&t instanceof fE&&e.firestore===t.firestore&&dy(e._query,t._query)&&e.converter===t.converter}class bE{constructor(e=Promise.resolve()){this.Pu=[],this.Iu=!1,this.Tu=[],this.Eu=null,this.du=!1,this.Au=!1,this.Ru=[],this.t_=new IT(this,"async_queue_retry"),this.Vu=()=>{var e=wT();e&&sm("AsyncQueue","Visibility state changed to "+e.visibilityState),this.t_.jo()},this.mu=e;const t=wT();t&&"function"==typeof t.addEventListener&&t.addEventListener("visibilitychange",this.Vu)}get isShuttingDown(){return this.Iu}enqueueAndForget(e){this.enqueue(e)}enqueueAndForgetEvenWhileRestricted(e){this.fu(),this.gu(e)}enterRestrictedMode(e){if(!this.Iu){this.Iu=!0,this.Au=e||!1;const t=wT();t&&"function"==typeof t.removeEventListener&&t.removeEventListener("visibilitychange",this.Vu)}}enqueue(e){if(this.fu(),this.Iu)return new Promise(()=>{});const t=new pm;return this.gu(()=>this.Iu&&this.Au?Promise.resolve():(e().then(t.resolve,t.reject),t.promise)).then(()=>t.promise)}enqueueRetryable(e){this.enqueueAndForget(()=>(this.Pu.push(e),this.pu()))}async pu(){if(0!==this.Pu.length){try{await this.Pu[0](),this.Pu.shift(),this.t_.reset()}catch(e){if(!Jm(e))throw e;sm("AsyncQueue","Operation failed with retryable error: "+e)}0<this.Pu.length&&this.t_.Go(()=>this.pu())}}gu(e){var t=this.mu.then(()=>(this.du=!0,e().catch(e=>{throw this.Eu=e,this.du=!1,am("INTERNAL UNHANDLED ERROR: ",function(e){let t=e.message||"";return e.stack&&(t=e.stack.includes(e.message)?e.stack:e.message+"\n"+e.stack),t}(e)),e}).then(e=>(this.du=!1,e))));return this.mu=t}enqueueAfterDelay(e,t,n){this.fu(),-1<this.Ru.indexOf(e)&&(t=0);var r=QT.createAndSchedule(this,e,t,n,e=>this.yu(e));return this.Tu.push(r),r}fu(){this.Eu&&lm()}verifyOperationInProgress(){}async wu(){for(var e;await(e=this.mu),e!==this.mu;);}Su(e){for(const t of this.Tu)if(t.timerId===e)return!0;return!1}bu(t){return this.wu().then(()=>{this.Tu.sort((e,t)=>e.targetTimeMs-t.targetTimeMs);for(const e of this.Tu)if(e.skipDelay(),"all"!==t&&e.timerId===t)break;return this.wu()})}Du(e){this.Ru.push(e)}yu(e){var t=this.Tu.indexOf(e);this.Tu.splice(t,1)}}function IE(e){return function(e,t){if("object"==typeof e&&null!==e){var n=e;for(const e of t)if(e in n&&"function"==typeof n[e])return 1}}(e,["next","error","complete"])}class TE{constructor(){this._progressObserver={},this._taskCompletionResolver=new pm,this._lastProgress={taskState:"Running",totalBytes:0,totalDocuments:0,bytesLoaded:0,documentsLoaded:0}}onProgress(e,t,n){this._progressObserver={next:e,error:t,complete:n}}catch(e){return this._taskCompletionResolver.promise.catch(e)}then(e,t){return this._taskCompletionResolver.promise.then(e,t)}_completeWith(e){this._updateProgress(e),this._progressObserver.complete&&this._progressObserver.complete(),this._taskCompletionResolver.resolve(e)}_failWith(e){this._lastProgress.taskState="Error",this._progressObserver.next&&this._progressObserver.next(this._lastProgress),this._progressObserver.error&&this._progressObserver.error(e),this._taskCompletionResolver.reject(e)}_updateProgress(e){this._lastProgress=e,this._progressObserver.next&&this._progressObserver.next(e)}}var EE,CE,SE,kE,AE;class NE extends pE{constructor(e,t,n,r){super(e,t,n,r),this.type="firestore",this._queue=new bE,this._persistenceKey=(null==r?void 0:r.name)||"[DEFAULT]"}async _terminate(){var e;this._firestoreClient&&(e=this._firestoreClient.terminate(),this._queue=new bE(e),this._firestoreClient=void 0,await e)}}function RE(e){if(e._terminated)throw new dm(hm.FAILED_PRECONDITION,"The client has already been terminated.");return e._firestoreClient||PE(e),e._firestoreClient}function PE(e){var t,n,r,i,s,a,o=e._freezeSettings(),c=(r=e._databaseId,i=(null===(t=e._app)||void 0===t?void 0:t.options.appId)||"",s=e._persistenceKey,a=o,new r_(r,i,s,a.host,a.ssl,a.experimentalForceLongPolling,a.experimentalAutoDetectLongPolling,rE(a.experimentalLongPollingOptions),a.useFetchStreams));e._componentsProvider||null!==(t=o.localCache)&&void 0!==t&&t._offlineComponentProvider&&null!==(n=o.localCache)&&void 0!==n&&n._onlineComponentProvider&&(e._componentsProvider={_offline:o.localCache._offlineComponentProvider,_online:o.localCache._onlineComponentProvider}),e._firestoreClient=new K0(e._authCredentials,e._appCheckCredentials,e._queue,c,e._componentsProvider&&(e=e._componentsProvider,c=null==e?void 0:e._online.build(),{_offline:null==e?void 0:e._offline.build(c),_online:c}))}function DE(e,t,n){if((e=uE(e,NE))._firestoreClient||e._terminated)throw new dm(hm.FAILED_PRECONDITION,"Firestore has already been started and persistence can no longer be enabled. You can only enable persistence before calling any other methods on a Firestore object.");if(e._componentsProvider||e._getSettings().localCache)throw new dm(hm.FAILED_PRECONDITION,"SDK cache is already specified.");e._componentsProvider={_online:t,_offline:n},PE(e)}function xE(e){return function(e){const t=new pm;return e.asyncQueue.enqueueAndForget(async()=>async function(e,t){const n=e;FT(n.remoteStore)||sm("SyncEngine","The network is disabled. The task returned by 'awaitPendingWrites()' will not complete until the network is enabled.");try{const e=await function(e){const t=e;return t.persistence.runTransaction("Get highest unacknowledged batch id","readonly",e=>t.mutationQueue.getHighestUnacknowledgedBatchId(e))}(n.localStore);if(-1===e)return void t.resolve();const r=n.ka.get(e)||[];r.push(t),n.ka.set(e,r)}catch(e){const n=YT(e,"Initialization of waitForPendingWrites() operation failed");t.reject(n)}}(await X0(e),t)),t.promise}(RE(e=uE(e,NE)))}function OE(e){return(n=RE(e=uE(e,NE))).asyncQueue.enqueue(async()=>{const e=await Q0(n),t=await J0(n);return e.setNetworkEnabled(!0),function(e){const t=e;return t.L_.delete(0),NT(t)}(t)});var n}function ME(e){return(n=RE(e=uE(e,NE))).asyncQueue.enqueue(async()=>{const e=await Q0(n),t=await J0(n);return e.setNetworkEnabled(!1),async function(e){const t=e;t.L_.add(0),await RT(t),t.q_.set("Offline")}(t)});var n}function LE(t,e){return n=RE(t=uE(t,NE)),r=e,n.asyncQueue.enqueue(async()=>function(e,t){const n=e;return n.persistence.runTransaction("Get named query","readonly",e=>n.Gr.getNamedQuery(e,t))}(await Y0(n),r)).then(e=>e?new fE(t,null,e.query):null);var n,r}class FE{constructor(e){this._byteString=e}static fromBase64String(e){try{return new FE(Qv.fromBase64String(e))}catch(e){throw new dm(hm.INVALID_ARGUMENT,"Failed to construct data from Base64 string: "+e)}}static fromUint8Array(e){return new FE(Qv.fromUint8Array(e))}toBase64(){return this._byteString.toBase64()}toUint8Array(){return this._byteString.toUint8Array()}toString(){return"Bytes(base64: "+this.toBase64()+")"}isEqual(e){return this._byteString.isEqual(e._byteString)}}class UE{constructor(...e){for(let t=0;t<e.length;++t)if(0===e[t].length)throw new dm(hm.INVALID_ARGUMENT,"Invalid field name at argument $(i + 1). Field names must not be empty.");this._internalPath=new Pm(e)}isEqual(e){return this._internalPath.isEqual(e._internalPath)}}class VE{constructor(e){this._methodName=e}}class qE{constructor(e,t){if(!isFinite(e)||e<-90||90<e)throw new dm(hm.INVALID_ARGUMENT,"Latitude must be a number between -90 and 90, but was: "+e);if(!isFinite(t)||t<-180||180<t)throw new dm(hm.INVALID_ARGUMENT,"Longitude must be a number between -180 and 180, but was: "+t);this._lat=e,this._long=t}get latitude(){return this._lat}get longitude(){return this._long}isEqual(e){return this._lat===e._lat&&this._long===e._long}toJSON(){return{latitude:this._lat,longitude:this._long}}_compareTo(e){return Tm(this._lat,e._lat)||Tm(this._long,e._long)}}class jE{constructor(e){this._values=(e||[]).map(e=>e)}toArray(){return this._values.map(e=>e)}isEqual(e){return function(e,t){if(e.length!==t.length)return!1;for(let n=0;n<e.length;++n)if(e[n]!==t[n])return!1;return!0}(this._values,e._values)}}const BE=/^__.*__$/;class zE{constructor(e,t,n){this.data=e,this.fieldMask=t,this.fieldTransforms=n}toMutation(e,t){return null!==this.fieldMask?new Jy(e,this.data,this.fieldMask,t,this.fieldTransforms):new Yy(e,this.data,t,this.fieldTransforms)}}class KE{constructor(e,t,n){this.data=e,this.fieldMask=t,this.fieldTransforms=n}toMutation(e,t){return new Jy(e,this.data,this.fieldMask,t,this.fieldTransforms)}}function $E(e){switch(e){case 0:case 2:case 1:return 1;case 3:case 4:return;default:throw lm()}}class WE{constructor(e,t,n,r,i,s){this.settings=e,this.databaseId=t,this.serializer=n,this.ignoreUndefinedProperties=r,void 0===i&&this.vu(),this.fieldTransforms=i||[],this.fieldMask=s||[]}get path(){return this.settings.path}get Cu(){return this.settings.Cu}Fu(e){return new WE(Object.assign(Object.assign({},this.settings),e),this.databaseId,this.serializer,this.ignoreUndefinedProperties,this.fieldTransforms,this.fieldMask)}Mu(e){var t;const n=null===(t=this.path)||void 0===t?void 0:t.child(e),r=this.Fu({path:n,xu:!1});return r.Ou(e),r}Nu(e){var t;const n=null===(t=this.path)||void 0===t?void 0:t.child(e),r=this.Fu({path:n,xu:!1});return r.vu(),r}Lu(e){return this.Fu({path:void 0,xu:!0})}Bu(e){return dC(e,this.settings.methodName,this.settings.ku||!1,this.path,this.settings.qu)}contains(t){return void 0!==this.fieldMask.find(e=>t.isPrefixOf(e))||void 0!==this.fieldTransforms.find(e=>t.isPrefixOf(e.field))}vu(){if(this.path)for(let e=0;e<this.path.length;e++)this.Ou(this.path.get(e))}Ou(e){if(0===e.length)throw this.Bu("Document fields must not be empty");if($E(this.Cu)&&BE.test(e))throw this.Bu('Document fields cannot begin and end with "__"')}}class GE{constructor(e,t,n){this.databaseId=e,this.ignoreUndefinedProperties=t,this.serializer=n||bT(e)}Qu(e,t,n,r=!1){return new WE({Cu:e,methodName:t,qu:n,path:Pm.emptyPath(),xu:!1,ku:r},this.databaseId,this.serializer,this.ignoreUndefinedProperties)}}function HE(e){var t=e._freezeSettings(),n=bT(e._databaseId);return new GE(e._databaseId,!!t.ignoreUndefinedProperties,n)}function QE(e,t,n,r,i,s={}){const a=e.Qu(s.merge||s.mergeFields?2:0,t,n,i);cC("Data must be an object, but it was:",a,r);var o=aC(r,a);let c,l;if(s.merge)c=new Gv(a.fieldMask),l=a.fieldTransforms;else if(s.mergeFields){const e=[];for(const r of s.mergeFields){const i=lC(t,r,n);if(!a.contains(i))throw new dm(hm.INVALID_ARGUMENT,`Field '${i}' is specified in your field mask but missing from your input data.`);pC(e,i)||e.push(i)}c=new Gv(e),l=a.fieldTransforms.filter(e=>c.covers(e.field))}else c=null,l=a.fieldTransforms;return new zE(new S_(o),c,l)}class YE extends VE{_toFieldTransform(e){if(2!==e.Cu)throw 1===e.Cu?e.Bu(`${this._methodName}() can only appear at the top level of your update data`):e.Bu(`${this._methodName}() cannot be used with set() unless you pass {merge:true}`);return e.fieldMask.push(e.path),null}isEqual(e){return e instanceof YE}}function JE(e,t,n){return new WE({Cu:3,qu:t.settings.qu,methodName:e._methodName,xu:n},t.databaseId,t.serializer,t.ignoreUndefinedProperties)}class XE extends VE{_toFieldTransform(e){return new jy(e.path,new xy)}isEqual(e){return e instanceof XE}}class ZE extends VE{constructor(e,t){super(e),this.Ku=t}_toFieldTransform(e){const t=JE(this,e,!0),n=this.Ku.map(e=>sC(e,t)),r=new Oy(n);return new jy(e.path,r)}isEqual(e){return e instanceof ZE&&z(this.Ku,e.Ku)}}class eC extends VE{constructor(e,t){super(e),this.Ku=t}_toFieldTransform(e){const t=JE(this,e,!0),n=this.Ku.map(e=>sC(e,t)),r=new Ly(n);return new jy(e.path,r)}isEqual(e){return e instanceof eC&&z(this.Ku,e.Ku)}}class tC extends VE{constructor(e,t){super(e),this.$u=t}_toFieldTransform(e){var t=new Uy(e.serializer,Ry(e.serializer,this.$u));return new jy(e.path,t)}isEqual(e){return e instanceof tC&&this.$u===e.$u}}function nC(e,i,s,t){const a=e.Qu(1,i,s);cC("Data must be an object, but it was:",a,t);const o=[],c=S_.empty();Vv(t,(e,t)=>{var n=hC(i,e,s);t=le(t);var r=a.Nu(n);if(t instanceof YE)o.push(n);else{const e=sC(t,r);null!=e&&(o.push(n),c.set(n,e))}});var n=new Gv(o);return new KE(c,n,a.fieldTransforms)}function rC(e,t,n,r,i,s){const a=e.Qu(1,t,n),o=[lC(t,r,n)],c=[i];if(s.length%2!=0)throw new dm(hm.INVALID_ARGUMENT,`Function ${t}() needs to be called with an even number of arguments that alternate between field names and values.`);for(let p=0;p<s.length;p+=2)o.push(lC(t,s[p])),c.push(s[p+1]);const l=[],u=S_.empty();for(let f=o.length-1;0<=f;--f)if(!pC(l,o[f])){const t=o[f];var h=le(h=c[f]);const r=a.Nu(t);if(h instanceof YE)l.push(t);else{const e=sC(h,r);null!=e&&(l.push(t),u.set(t,e))}}var d=new Gv(l);return new KE(u,d,a.fieldTransforms)}function iC(e,t,n,r=!1){return sC(n,e.Qu(r?4:3,t))}function sC(e,t){if(oC(e=le(e)))return cC("Unsupported field value:",t,e),aC(e,t);if(e instanceof VE)return function(e,t){if(!$E(t.Cu))throw t.Bu(`${e._methodName}() can only be used with update() and set()`);if(!t.path)throw t.Bu(`${e._methodName}() is not currently supported inside arrays`);var n=e._toFieldTransform(t);n&&t.fieldTransforms.push(n)}(e,t),null;if(void 0===e&&t.ignoreUndefinedProperties)return null;if(t.path&&t.fieldMask.push(t.path),e instanceof Array){if(t.settings.xu&&4!==t.Cu)throw t.Bu("Nested arrays are not supported");return function(e,t){const n=[];let r=0;for(const i of e){let e=sC(i,t.Lu(r));null==e&&(e={nullValue:"NULL_VALUE"}),n.push(e),r++}return{arrayValue:{values:n}}}(e,t)}return function(e,t){if(null===(e=le(e)))return{nullValue:"NULL_VALUE"};if("number"==typeof e)return Ry(t.serializer,e);if("boolean"==typeof e)return{booleanValue:e};if("string"==typeof e)return{stringValue:e};if(e instanceof Date){var n=Sm.fromDate(e);return{timestampValue:Nw(t.serializer,n)}}if(e instanceof Sm){n=new Sm(e.seconds,1e3*Math.floor(e.nanoseconds/1e3));return{timestampValue:Nw(t.serializer,n)}}if(e instanceof qE)return{geoPointValue:{latitude:e.latitude,longitude:e.longitude}};if(e instanceof FE)return{bytesValue:Rw(t.serializer,e._byteString)};if(e instanceof gE){const i=t.databaseId,s=e.firestore._databaseId;if(!s.isEqual(i))throw t.Bu(`Document reference is for database ${s.projectId}/${s.database} but should be for database ${i.projectId}/${i.database}`);return{referenceValue:Dw(e.firestore._databaseId||t.databaseId,e._key.path)}}if(e instanceof jE)return r=t,{mapValue:{fields:{__type__:{stringValue:"__vector__"},value:{arrayValue:{values:e.toArray().map(e=>{if("number"!=typeof e)throw r.Bu("VectorValues must only contain numeric values.");return Ay(r.serializer,e)})}}}}};var r;throw t.Bu(`Unsupported field value: ${lE(e)}`)}(e,t)}function aC(e,r){const i={};return qv(e)?r.path&&0<r.path.length&&r.fieldMask.push(r.path):Vv(e,(e,t)=>{var n=sC(t,r.Mu(e));null!=n&&(i[e]=n)}),{mapValue:{fields:i}}}function oC(e){return!("object"!=typeof e||null===e||e instanceof Array||e instanceof Date||e instanceof Sm||e instanceof qE||e instanceof FE||e instanceof gE||e instanceof VE||e instanceof jE)}function cC(e,t,n){if(!oC(n)||("object"!=typeof(i=n)||null===i||Object.getPrototypeOf(i)!==Object.prototype&&null!==Object.getPrototypeOf(i))){var r=lE(n);throw"an object"===r?t.Bu(e+" a custom object"):t.Bu(e+" "+r)}var i}function lC(e,t,n){if((t=le(t))instanceof UE)return t._internalPath;if("string"==typeof t)return hC(e,t);throw dC("Field path arguments must be of type string or ",e,!1,void 0,n)}const uC=new RegExp("[~\\*/\\[\\]]");function hC(t,n,r){if(0<=n.search(uC))throw dC(`Invalid field path (${n}). Paths must not contain '~', '*', '/', '[', or ']'`,t,!1,void 0,r);try{return new UE(...n.split("."))._internalPath}catch(e){throw dC(`Invalid field path (${n}). Paths must not be empty, begin with '.', end with '.', or contain '..'`,t,!1,void 0,r)}}function dC(e,t,n,r,i){var s=r&&!r.isEmpty(),a=void 0!==i;let o=`Function ${t}() called with invalid data`;n&&(o+=" (via `toFirestore()`)"),o+=". ";let c="";return(s||a)&&(c+=" (found",s&&(c+=` in field ${r}`),a&&(c+=` in document ${i}`),c+=")"),new dm(hm.INVALID_ARGUMENT,o+e+c)}function pC(e,t){return e.some(e=>e.isEqual(t))}class fC{constructor(e,t,n,r,i){this._firestore=e,this._userDataWriter=t,this._key=n,this._document=r,this._converter=i}get id(){return this._key.path.lastSegment()}get ref(){return new gE(this._firestore,this._converter,this._key)}exists(){return null!==this._document}data(){if(this._document){if(this._converter){var e=new gC(this._firestore,this._userDataWriter,this._key,this._document,null);return this._converter.fromFirestore(e)}return this._userDataWriter.convertValue(this._document.data.value)}}get(e){if(this._document){var t=this._document.data.field(mC("DocumentSnapshot.get",e));if(null!==t)return this._userDataWriter.convertValue(t)}}}class gC extends fC{data(){return super.data()}}function mC(e,t){return"string"==typeof t?hC(e,t):(t instanceof UE?t:t._delegate)._internalPath}function vC(e){if("L"===e.limitType&&0===e.explicitOrderBy.length)throw new dm(hm.UNIMPLEMENTED,"limitToLast() queries require specifying at least one orderBy() clause")}class _C{}class yC extends _C{}function wC(e,t,...n){let r=[];t instanceof _C&&r.push(t),r=r.concat(n),function(e){var t=e.filter(e=>e instanceof IC).length,n=e.filter(e=>e instanceof bC).length;if(1<t||0<t&&0<n)throw new dm(hm.INVALID_ARGUMENT,"InvalidQuery. When using composite filters, you cannot use more than one filter at the top level. Consider nesting the multiple filters within an `and(...)` statement. For example: change `query(query, where(...), or(...))` to `query(query, and(where(...), or(...)))`.")}(r);for(const t of r)e=t._apply(e);return e}class bC extends yC{constructor(e,t,n){super(),this._field=e,this._op=t,this._value=n,this.type="where"}static _create(e,t,n){return new bC(e,t,n)}_apply(e){var t=this._parse(e);return RC(e._query,t),new fE(e.firestore,e.converter,uy(e._query,t))}_parse(e){var t=HE(e.firestore);return function(e,t,n,r,i,s,a){let o;if(i.isKeyField()){if("array-contains"===s||"array-contains-any"===s)throw new dm(hm.INVALID_ARGUMENT,`Invalid Query. You can't perform '${s}' queries on documentId().`);if("in"===s||"not-in"===s){NC(a,s);const t=[];for(const n of a)t.push(AC(r,e,n));o={arrayValue:{values:t}}}else o=AC(r,e,a)}else"in"!==s&&"not-in"!==s&&"array-contains-any"!==s||NC(a,s),o=iC(n,t,a,"in"===s||"not-in"===s);return x_.create(i,s,o)}(e._query,"where",t,e.firestore._databaseId,this._field,this._op,this._value)}}class IC extends _C{constructor(e,t){super(),this.type=e,this._queryConstraints=t}static _create(e,t){return new IC(e,t)}_parse(t){var e=this._queryConstraints.map(e=>e._parse(t)).filter(e=>0<e.getFilters().length);return 1===e.length?e[0]:O_.create(e,this._getOperator())}_apply(e){const t=this._parse(e);return 0===t.getFilters().length?e:(function(e,t){let n=e;for(const e of t.getFlattenedFilters())RC(n,e),n=uy(n,e)}(e._query,t),new fE(e.firestore,e.converter,uy(e._query,t)))}_getQueryConstraints(){return this._queryConstraints}_getOperator(){return"and"===this.type?"and":"or"}}class TC extends yC{constructor(e,t){super(),this._field=e,this._direction=t,this.type="orderBy"}static _create(e,t){return new TC(e,t)}_apply(e){var t=function(e,t,n){if(null!==e.startAt)throw new dm(hm.INVALID_ARGUMENT,"Invalid query. You must not call startAt() or startAfter() before calling orderBy().");if(null!==e.endAt)throw new dm(hm.INVALID_ARGUMENT,"Invalid query. You must not call endAt() or endBefore() before calling orderBy().");return new P_(t,n)}(e._query,this._field,this._direction);return new fE(e.firestore,e.converter,(e=e._query,t=e.explicitOrderBy.concat([t]),new ry(e.path,e.collectionGroup,t,e.filters.slice(),e.limit,e.limitType,e.startAt,e.endAt)))}}class EC extends yC{constructor(e,t,n){super(),this.type=e,this._limit=t,this._limitType=n}static _create(e,t,n){return new EC(e,t,n)}_apply(e){return new fE(e.firestore,e.converter,hy(e._query,this._limit,this._limitType))}}class CC extends yC{constructor(e,t,n){super(),this.type=e,this._docOrFields=t,this._inclusive=n}static _create(e,t,n){return new CC(e,t,n)}_apply(e){var t,n=kC(e,this.type,this._docOrFields,this._inclusive);return new fE(e.firestore,e.converter,(t=e._query,e=n,new ry(t.path,t.collectionGroup,t.explicitOrderBy.slice(),t.filters.slice(),t.limit,t.limitType,e,t.endAt)))}}class SC extends yC{constructor(e,t,n){super(),this.type=e,this._docOrFields=t,this._inclusive=n}static _create(e,t,n){return new SC(e,t,n)}_apply(e){var t,n=kC(e,this.type,this._docOrFields,this._inclusive);return new fE(e.firestore,e.converter,(t=e._query,e=n,new ry(t.path,t.collectionGroup,t.explicitOrderBy.slice(),t.filters.slice(),t.limit,t.limitType,t.startAt,e)))}}function kC(e,t,n,r){if(n[0]=le(n[0]),n[0]instanceof fC)return function(e,t,n,r,i){if(!r)throw new dm(hm.NOT_FOUND,`Can't use a DocumentSnapshot that doesn't exist for ${n}().`);const s=[];for(const n of cy(e))if(n.field.isKeyField())s.push(f_(t,r.key));else{const e=r.data.field(n.field);if(e_(e))throw new dm(hm.INVALID_ARGUMENT,'Invalid query. You are trying to start or end a query using a document for which the field "'+n.field+'" is an uncommitted server timestamp. (Since the value of this field is unknown, you cannot start/end a query with it.)');if(null===e){const e=n.field.canonicalString();throw new dm(hm.INVALID_ARGUMENT,`Invalid query. You are trying to start or end a query using a document for which the field '${e}' (used as the orderBy) does not exist.`)}s.push(e)}return new A_(s,i)}(e._query,e.firestore._databaseId,t,n[0]._document,r);var i=HE(e.firestore);return function(e,t,n,r,i,s){const a=e.explicitOrderBy;if(i.length>a.length)throw new dm(hm.INVALID_ARGUMENT,`Too many arguments provided to ${r}(). The number of arguments must be less than or equal to the number of orderBy() clauses`);const o=[];for(let c=0;c<i.length;c++){const l=i[c];if(a[c].field.isKeyField()){if("string"!=typeof l)throw new dm(hm.INVALID_ARGUMENT,`Invalid query. Expected a string for document ID in ${r}(), but got a ${typeof l}`);if(!oy(e)&&-1!==l.indexOf("/"))throw new dm(hm.INVALID_ARGUMENT,`Invalid query. When querying a collection and ordering by documentId(), the value passed to ${r}() must be a plain document ID, but '${l}' contains a slash.`);const n=e.path.child(Nm.fromString(l));if(!Dm.isDocumentKey(n))throw new dm(hm.INVALID_ARGUMENT,`Invalid query. When querying a collection group and ordering by documentId(), the value passed to ${r}() must result in a valid document path, but '${n}' is not because it contains an odd number of segments.`);const i=new Dm(n);o.push(f_(t,i))}else{const e=iC(n,r,l);o.push(e)}}return new A_(o,s)}(e._query,e.firestore._databaseId,i,t,n,r)}function AC(e,t,n){if("string"==typeof(n=le(n))){if(""===n)throw new dm(hm.INVALID_ARGUMENT,"Invalid query. When querying with documentId(), you must provide a valid document ID, but it was an empty string.");if(!oy(t)&&-1!==n.indexOf("/"))throw new dm(hm.INVALID_ARGUMENT,`Invalid query. When querying a collection by documentId(), you must provide a plain document ID, but '${n}' contains a '/' character.`);var r=t.path.child(Nm.fromString(n));if(!Dm.isDocumentKey(r))throw new dm(hm.INVALID_ARGUMENT,`Invalid query. When querying a collection group by documentId(), the value provided must result in a valid document path, but '${r}' is not because it has an odd number of segments (${r.length}).`);return f_(e,new Dm(r))}if(n instanceof gE)return f_(e,n._key);throw new dm(hm.INVALID_ARGUMENT,`Invalid query. When querying with documentId(), you must provide a valid string or a DocumentReference, but it was: ${lE(n)}.`)}function NC(e,t){if(!Array.isArray(e)||0===e.length)throw new dm(hm.INVALID_ARGUMENT,`Invalid Query. A non-empty array is required for '${t.toString()}' filters.`)}function RC(e,t){const n=function(e,t){for(const n of e)for(const e of n.getFlattenedFilters())if(0<=t.indexOf(e.op))return e.op;return null}(e.filters,function(e){switch(e){case"!=":return["!=","not-in"];case"array-contains-any":case"in":return["not-in"];case"not-in":return["array-contains-any","in","not-in","!="];default:return[]}}(t.op));if(null!==n)throw n===t.op?new dm(hm.INVALID_ARGUMENT,`Invalid query. You cannot use more than one '${t.op.toString()}' filter.`):new dm(hm.INVALID_ARGUMENT,`Invalid query. You cannot use '${t.op.toString()}' filters with '${n.toString()}' filters.`)}class PC{convertValue(e,t="none"){switch(o_(e)){case 0:return null;case 1:return e.booleanValue;case 2:return Xv(e.integerValue||e.doubleValue);case 3:return this.convertTimestamp(e.timestampValue);case 4:return this.convertServerTimestamp(e,t);case 5:return e.stringValue;case 6:return this.convertBytes(Zv(e.bytesValue));case 7:return this.convertReference(e.referenceValue);case 8:return this.convertGeoPoint(e.geoPointValue);case 9:return this.convertArray(e.arrayValue,t);case 11:return this.convertObject(e.mapValue,t);case 10:return this.convertVectorValue(e.mapValue);default:throw lm()}}convertObject(e,t){return this.convertObjectMap(e.fields,t)}convertObjectMap(e,n="none"){const r={};return Vv(e,(e,t)=>{r[e]=this.convertValue(t,n)}),r}convertVectorValue(e){var t=null===(t=null===(t=null===(t=e.fields)||void 0===t?void 0:t.value.arrayValue)||void 0===t?void 0:t.values)||void 0===t?void 0:t.map(e=>Xv(e.doubleValue));return new jE(t)}convertGeoPoint(e){return new qE(Xv(e.latitude),Xv(e.longitude))}convertArray(e,t){return(e.values||[]).map(e=>this.convertValue(e,t))}convertServerTimestamp(e,t){switch(t){case"previous":var n=t_(e);return null==n?null:this.convertValue(n,t);case"estimate":return this.convertTimestamp(n_(e));default:return null}}convertTimestamp(e){var t=Jv(e);return new Sm(t.seconds,t.nanos)}convertDocumentKey(e,t){const n=Nm.fromString(e);um(Xw(n));const r=new i_(n.get(1),n.get(3)),i=new Dm(n.popFirst(5));return r.isEqual(t)||am(`Document ${i} contains a document reference within a different database (${r.projectId}/${r.database}) which is not supported. It will be treated as a reference in the current database (${t.projectId}/${t.database}) instead.`),i}}function DC(e,t,n){return e?n&&(n.merge||n.mergeFields)?e.toFirestore(t,n):e.toFirestore(t):t}class xC extends PC{constructor(e){super(),this.firestore=e}convertBytes(e){return new FE(e)}convertReference(e){var t=this.convertDocumentKey(e,this.firestore._databaseId);return new gE(this.firestore,null,t)}}class OC{constructor(e,t){this.hasPendingWrites=e,this.fromCache=t}isEqual(e){return this.hasPendingWrites===e.hasPendingWrites&&this.fromCache===e.fromCache}}class MC extends fC{constructor(e,t,n,r,i,s){super(e,t,n,r,s),this._firestore=e,this._firestoreImpl=e,this.metadata=i}exists(){return super.exists()}data(e={}){if(this._document){if(this._converter){var t=new LC(this._firestore,this._userDataWriter,this._key,this._document,this.metadata,null);return this._converter.fromFirestore(t,e)}return this._userDataWriter.convertValue(this._document.data.value,e.serverTimestamps)}}get(e,t={}){if(this._document){var n=this._document.data.field(mC("DocumentSnapshot.get",e));if(null!==n)return this._userDataWriter.convertValue(n,t.serverTimestamps)}}}class LC extends MC{data(e={}){return super.data(e)}}class FC{constructor(e,t,n,r){this._firestore=e,this._userDataWriter=t,this._snapshot=r,this.metadata=new OC(r.hasPendingWrites,r.fromCache),this.query=n}get docs(){const t=[];return this.forEach(e=>t.push(e)),t}get size(){return this._snapshot.docs.size}get empty(){return 0===this.size}forEach(t,n){this._snapshot.docs.forEach(e=>{t.call(n,new LC(this._firestore,this._userDataWriter,e.key,e,new OC(this._snapshot.mutatedKeys.has(e.key),this._snapshot.fromCache),this.query.converter))})}docChanges(e={}){var t=!!e.includeMetadataChanges;if(t&&this._snapshot.excludesMetadataChanges)throw new dm(hm.INVALID_ARGUMENT,"To include metadata changes with your document changes, you must also pass { includeMetadataChanges:true } to onSnapshot().");return this._cachedChanges&&this._cachedChangesIncludeMetadataChanges===t||(this._cachedChanges=function(s,t){if(s._snapshot.oldDocs.isEmpty()){let n=0;return s._snapshot.docChanges.map(e=>{var t=new LC(s._firestore,s._userDataWriter,e.doc.key,e.doc,new OC(s._snapshot.mutatedKeys.has(e.doc.key),s._snapshot.fromCache),s.query.converter);return e.doc,{type:"added",doc:t,oldIndex:-1,newIndex:n++}})}{let i=s._snapshot.oldDocs;return s._snapshot.docChanges.filter(e=>t||3!==e.type).map(e=>{var t=new LC(s._firestore,s._userDataWriter,e.doc.key,e.doc,new OC(s._snapshot.mutatedKeys.has(e.doc.key),s._snapshot.fromCache),s.query.converter);let n=-1,r=-1;return 0!==e.type&&(n=i.indexOf(e.doc.key),i=i.delete(e.doc.key)),1!==e.type&&(i=i.add(e.doc),r=i.indexOf(e.doc.key)),{type:function(e){switch(e){case 0:return"added";case 2:case 3:return"modified";case 1:return"removed";default:return lm()}}(e.type),doc:t,oldIndex:n,newIndex:r}})}}(this,t),this._cachedChangesIncludeMetadataChanges=t),this._cachedChanges}}function UC(e,t){return e instanceof MC&&t instanceof MC?e._firestore===t._firestore&&e._key.isEqual(t._key)&&(null===e._document?null===t._document:e._document.isEqual(t._document))&&e._converter===t._converter:e instanceof FC&&t instanceof FC&&e._firestore===t._firestore&&wE(e.query,t.query)&&e.metadata.isEqual(t.metadata)&&e._snapshot.isEqual(t._snapshot)}class VC extends PC{constructor(e){super(),this.firestore=e}convertBytes(e){return new FE(e)}convertReference(e){var t=this.convertDocumentKey(e,this.firestore._databaseId);return new gE(this.firestore,null,t)}}function qC(t){t=uE(t,gE);const n=uE(t.firestore,NE),e=RE(n),r=new VC(n);return function(e,t){const n=new pm;return e.asyncQueue.enqueueAndForget(async()=>async function(e,t,n){try{const i=await function(e,t){const n=e;return n.persistence.runTransaction("read document","readonly",e=>n.localDocuments.getDocument(e,t))}(e,t);i.isFoundDocument()?n.resolve(i):i.isNoDocument()?n.resolve(null):n.reject(new dm(hm.UNAVAILABLE,"Failed to get document from cache. (However, this document may exist on the server. Run again without setting 'source' in the GetOptions to attempt to retrieve the document from the server.)"))}catch(e){var r=YT(e,`Failed to get document '${t} from cache`);n.reject(r)}}(await Y0(e),t,n)),n.promise}(e,t._key).then(e=>new MC(n,r,t._key,e,new OC(null!==e&&e.hasLocalMutations,!0),t.converter))}function jC(t){t=uE(t,fE);const n=uE(t.firestore,NE),e=RE(n),r=new VC(n);return function(e,t){const n=new pm;return e.asyncQueue.enqueueAndForget(async()=>async function(e,t,n){try{const i=await JI(e,t,!0),s=new p0(t,i.Ts),a=s.ma(i.documents),o=s.applyChanges(a,!1);n.resolve(o.snapshot)}catch(e){var r=YT(e,`Failed to execute query '${t} against cache`);n.reject(r)}}(await Y0(e),t,n)),n.promise}(e,t._query).then(e=>new FC(n,r,t,e))}function BC(e,t,n){e=uE(e,gE);var r=uE(e.firestore,NE),i=DC(e.converter,t,n);return WC(r,[QE(HE(r),"setDoc",e._key,i,null!==e.converter,n).toMutation(e._key,zy.none())])}function zC(e,t,n,...r){e=uE(e,gE);var i=uE(e.firestore,NE),s=HE(i);let a;return a="string"==typeof(t=le(t))||t instanceof UE?rC(s,"updateDoc",e._key,t,n,r):nC(s,"updateDoc",e._key,t),WC(i,[a.toMutation(e._key,zy.exists(!0))])}function KC(t,...n){var e;t=le(t);let r={includeMetadataChanges:!1,source:"default"},i=0;"object"!=typeof n[i]||IE(n[i])||(r=n[i],i++);var s={includeMetadataChanges:r.includeMetadataChanges,source:r.source};if(IE(n[i])){const t=n[i];n[i]=null===(e=t.next)||void 0===e?void 0:e.bind(t),n[i+1]=null===(e=t.error)||void 0===e?void 0:e.bind(t),n[i+2]=null===(e=t.complete)||void 0===e?void 0:e.bind(t)}let a,o,c;if(t instanceof gE)o=uE(t.firestore,NE),c=sy(t._key.path),a={next:e=>{n[i]&&n[i](GC(o,t,e))},error:n[i+1],complete:n[i+2]};else{const l=uE(t,fE);o=uE(l.firestore,NE),c=l._query;const u=new VC(o);a={next:e=>{n[i]&&n[i](new FC(o,u,l,e))},error:n[i+1],complete:n[i+2]},vC(t._query)}return function(e,t,n,r){const i=new q0(r),s=new a0(t,i,n);return e.asyncQueue.enqueueAndForget(async()=>r0(await Z0(e),s)),()=>{i.Za(),e.asyncQueue.enqueueAndForget(async()=>i0(await Z0(e),s))}}(RE(o),c,s,a)}function $C(e,t){return function(e,t){const n=new q0(t);return e.asyncQueue.enqueueAndForget(async()=>function(e,t){e.Y_.add(t),t.next()}(await Z0(e),n)),()=>{n.Za(),e.asyncQueue.enqueueAndForget(async()=>function(e,t){e.Y_.delete(t)}(await Z0(e),n))}}(RE(e=uE(e,NE)),IE(t)?t:{next:t})}function WC(e,t){return function(e,t){const n=new pm;return e.asyncQueue.enqueueAndForget(async()=>y0(await X0(e),t,n)),n.promise}(RE(e),t)}function GC(e,t,n){var r=n.docs.get(t._key),i=new VC(e);return new MC(e,i,t._key,r,new OC(n.hasPendingWrites,n.fromCache),t.converter)}const HC={maxAttempts:5};class QC{constructor(e,t){this._firestore=e,this._commitHandler=t,this._mutations=[],this._committed=!1,this._dataReader=HE(e)}set(e,t,n){this._verifyNotCommitted();const r=YC(e,this._firestore),i=DC(r.converter,t,n),s=QE(this._dataReader,"WriteBatch.set",r._key,i,null!==r.converter,n);return this._mutations.push(s.toMutation(r._key,zy.none())),this}update(e,t,n,...r){this._verifyNotCommitted();var i=YC(e,this._firestore);let s;return s="string"==typeof(t=le(t))||t instanceof UE?rC(this._dataReader,"WriteBatch.update",i._key,t,n,r):nC(this._dataReader,"WriteBatch.update",i._key,t),this._mutations.push(s.toMutation(i._key,zy.exists(!0))),this}delete(e){this._verifyNotCommitted();var t=YC(e,this._firestore);return this._mutations=this._mutations.concat(new tw(t._key,zy.none())),this}commit(){return this._verifyNotCommitted(),this._committed=!0,0<this._mutations.length?this._commitHandler(this._mutations):Promise.resolve()}_verifyNotCommitted(){if(this._committed)throw new dm(hm.FAILED_PRECONDITION,"A write batch can no longer be used after commit() has been called.")}}function YC(e,t){if((e=le(e)).firestore!==t)throw new dm(hm.INVALID_ARGUMENT,"Provided document reference is from a different Firestore instance.");return e}class JC extends class{constructor(e,t){this._firestore=e,this._transaction=t,this._dataReader=HE(e)}get(e){const n=YC(e,this._firestore),r=new xC(this._firestore);return this._transaction.lookup([n._key]).then(e=>{if(!e||1!==e.length)return lm();const t=e[0];if(t.isFoundDocument())return new fC(this._firestore,r,t.key,t,n.converter);if(t.isNoDocument())return new fC(this._firestore,r,n._key,null,n.converter);throw lm()})}set(e,t,n){var r=YC(e,this._firestore),i=DC(r.converter,t,n),i=QE(this._dataReader,"Transaction.set",r._key,i,null!==r.converter,n);return this._transaction.set(r._key,i),this}update(e,t,n,...r){var i=YC(e,this._firestore),s="string"==typeof(t=le(t))||t instanceof UE?rC(this._dataReader,"Transaction.update",i._key,t,n,r):nC(this._dataReader,"Transaction.update",i._key,t);return this._transaction.update(i._key,s),this}delete(e){var t=YC(e,this._firestore);return this._transaction.delete(t._key),this}}{constructor(e,t){super(e,t),this._firestore=e}get(e){const t=YC(e,this._firestore),n=new VC(this._firestore);return super.get(e).then(e=>new MC(this._firestore,n,t._key,e._document,new OC(!1,!1),t.converter))}}function XC(t,n,e){t=uE(t,NE);var r=Object.assign(Object.assign({},HC),e);return function(e){if(e.maxAttempts<1)throw new dm(hm.INVALID_ARGUMENT,"Max attempts must be at least 1")}(r),function(t,n,r){const i=new pm;return t.asyncQueue.enqueueAndForget(async()=>{var e=await H0(t).then(e=>e.datastore);new z0(t.asyncQueue,e,r,n,i).au()}),i.promise}(RE(t),e=>n(new JC(t,e)),r)}EE=!0,St=it,nm=St,Je(new ue("firestore",(e,{instanceIdentifier:t,options:n})=>{const r=e.getProvider("app").getImmediate(),i=new NE(new vm(e.getProvider("auth-internal")),new bm(e.getProvider("app-check-internal")),function(e,t){if(!Object.prototype.hasOwnProperty.apply(e.options,["projectId"]))throw new dm(hm.INVALID_ARGUMENT,'"projectId" not provided in firebase.initializeApp.');return new i_(e.options.projectId,t)}(r,t),r);return n=Object.assign({useFetchStreams:EE},n),i._setSettings(n),i},"PUBLIC").setMultipleInstances(!0)),ct(em,"4.7.3",VS),ct(em,"4.7.3","esm2017");function ZC(e,t){if(void 0===t)return{merge:!1};if(void 0!==t.mergeFields&&void 0!==t.merge)throw new dm("invalid-argument",`Invalid options passed to function ${e}(): You cannot `+'specify both "merge" and "mergeFields".');return t}function eS(){if("undefined"==typeof Uint8Array)throw new dm("unimplemented","Uint8Arrays are not available in this environment.")}function tS(){if("undefined"==typeof atob)throw new dm("unimplemented","Blobs are unavailable in Firestore in this environment.")}class nS{constructor(e){this._delegate=e}static fromBase64String(e){return tS(),new nS(FE.fromBase64String(e))}static fromUint8Array(e){return eS(),new nS(FE.fromUint8Array(e))}toBase64(){return tS(),this._delegate.toBase64()}toUint8Array(){return eS(),this._delegate.toUint8Array()}isEqual(e){return this._delegate.isEqual(e._delegate)}toString(){return"Blob(base64: "+this.toBase64()+")"}}function rS(e){return function(e,t){if("object"!=typeof e||null===e)return;var n=e;for(const r of t)if(r in n&&"function"==typeof n[r])return 1;return}(e,["next","error","complete"])}class iS{enableIndexedDbPersistence(e,t){return function(e,t){om("enableIndexedDbPersistence() will be deprecated in the future, you can use `FirestoreSettings.cache` instead.");const n=e._freezeSettings();return DE(e,U0.provider,{build:e=>new L0(e,n.cacheSizeBytes,null==t?void 0:t.forceOwnership)}),Promise.resolve()}(e._delegate,{forceOwnership:t})}enableMultiTabIndexedDbPersistence(e){return async function(e){om("enableMultiTabIndexedDbPersistence() will be deprecated in the future, you can use `FirestoreSettings.cache` instead.");const t=e._freezeSettings();DE(e,U0.provider,{build:e=>new F0(e,t.cacheSizeBytes)})}(e._delegate)}clearIndexedDbPersistence(e){return function(e){if(e._initialized&&!e._terminated)throw new dm(hm.FAILED_PRECONDITION,"Persistence can only be cleared before a Firestore instance is initialized or after it is terminated.");const t=new pm;return e._queue.enqueueAndForgetEvenWhileRestricted(async()=>{try{await async function(e){if(!Gm.D())return Promise.resolve();var t=e+"main";await Gm.delete(t)}(VI(e._databaseId,e._persistenceKey)),t.resolve()}catch(e){t.reject(e)}}),t.promise}(e._delegate)}}class sS{constructor(e,t,n){this._delegate=t,this._persistenceProvider=n,this.INTERNAL={delete:()=>this.terminate()},e instanceof i_||(this._appCompat=e)}get _databaseId(){return this._delegate._databaseId}settings(e){var t=this._delegate._getSettings();e.merge||t.host===e.host||om("You are overriding the original host. If you did not intend to override your settings, use {merge: true}."),e.merge&&delete(e=Object.assign(Object.assign({},t),e)).merge,this._delegate._setSettings(e)}useEmulator(e,t,n={}){!function(n,e,t,r={}){var i;const s=(n=uE(n,pE))._getSettings(),a=`${e}:${t}`;if("firestore.googleapis.com"!==s.host&&s.host!==a&&om("Host has been set in both settings() and connectFirestoreEmulator(), emulator host will be used."),n._setSettings(Object.assign(Object.assign({},s),{host:a,ssl:!1})),r.mockUserToken){let e,t;if("string"==typeof r.mockUserToken)e=r.mockUserToken,t=tm.MOCK_USER;else{e=w(r.mockUserToken,null===(i=n._app)||void 0===i?void 0:i.options.projectId);const s=r.mockUserToken.sub||r.mockUserToken.user_id;if(!s)throw new dm(hm.INVALID_ARGUMENT,"mockUserToken must contain 'sub' or 'user_id' field!");t=new tm(s)}n._authCredentials=new mm(new fm(e,t))}}(this._delegate,e,t,n)}enableNetwork(){return OE(this._delegate)}disableNetwork(){return ME(this._delegate)}enablePersistence(e){let t=!1,n=!1;return e&&(t=!!e.synchronizeTabs,n=!!e.experimentalForceOwningTab,aE("synchronizeTabs",t,"experimentalForceOwningTab",n)),t?this._persistenceProvider.enableMultiTabIndexedDbPersistence(this):this._persistenceProvider.enableIndexedDbPersistence(this,n)}clearPersistence(){return this._persistenceProvider.clearIndexedDbPersistence(this)}terminate(){return this._appCompat&&(this._appCompat._removeServiceInstance("firestore-compat"),this._appCompat._removeServiceInstance("firestore")),this._delegate._delete()}waitForPendingWrites(){return xE(this._delegate)}onSnapshotsInSync(e){return $C(this._delegate,e)}get app(){if(!this._appCompat)throw new dm("failed-precondition","Firestore was not initialized using the Firebase SDK. 'app' is not available");return this._appCompat}collection(e){try{return new yS(this,vE(this._delegate,e))}catch(e){throw hS(e,"collection()","Firestore.collection()")}}doc(e){try{return new uS(this,_E(this._delegate,e))}catch(e){throw hS(e,"doc()","Firestore.doc()")}}collectionGroup(e){try{return new mS(this,function(e,t){if(e=uE(e,pE),sE("collectionGroup","collection id",t),0<=t.indexOf("/"))throw new dm(hm.INVALID_ARGUMENT,`Invalid collection ID '${t}' passed to function collectionGroup(). Collection IDs must not contain '/'.`);return new fE(e,null,(t=t,new ry(Nm.emptyPath(),t)))}(this._delegate,e))}catch(e){throw hS(e,"collectionGroup()","Firestore.collectionGroup()")}}runTransaction(t){return XC(this._delegate,e=>t(new oS(this,e)))}batch(){return RE(this._delegate),new cS(new QC(this._delegate,e=>WC(this._delegate,e)))}loadBundle(e){return t=this._delegate,e=e,n=RE(t=uE(t,NE)),r=new TE,nE(n,t._databaseId,e,r),r;var t,n,r}namedQuery(e){return LE(this._delegate,e).then(e=>e?new mS(this,e):null)}}class aS extends PC{constructor(e){super(),this.firestore=e}convertBytes(e){return new nS(new FE(e))}convertReference(e){var t=this.convertDocumentKey(e,this.firestore._databaseId);return uS.forKey(t,this.firestore,null)}}class oS{constructor(e,t){this._firestore=e,this._delegate=t,this._userDataWriter=new aS(e)}get(e){const t=wS(e);return this._delegate.get(t).then(e=>new fS(this._firestore,new MC(this._firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,t.converter)))}set(e,t,n){var r=wS(e);return n?(ZC("Transaction.set",n),this._delegate.set(r,t,n)):this._delegate.set(r,t),this}update(e,t,n,...r){var i=wS(e);return 2===arguments.length?this._delegate.update(i,t):this._delegate.update(i,t,n,...r),this}delete(e){var t=wS(e);return this._delegate.delete(t),this}}class cS{constructor(e){this._delegate=e}set(e,t,n){var r=wS(e);return n?(ZC("WriteBatch.set",n),this._delegate.set(r,t,n)):this._delegate.set(r,t),this}update(e,t,n,...r){var i=wS(e);return 2===arguments.length?this._delegate.update(i,t):this._delegate.update(i,t,n,...r),this}delete(e){var t=wS(e);return this._delegate.delete(t),this}commit(){return this._delegate.commit()}}class lS{constructor(e,t,n){this._firestore=e,this._userDataWriter=t,this._delegate=n}fromFirestore(e,t){var n=new LC(this._firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,null);return this._delegate.fromFirestore(new gS(this._firestore,n),null!=t?t:{})}toFirestore(e,t){return t?this._delegate.toFirestore(e,t):this._delegate.toFirestore(e)}static getInstance(e,t){const n=lS.INSTANCES;let r=n.get(e);r||(r=new WeakMap,n.set(e,r));let i=r.get(t);return i||(i=new lS(e,new aS(e),t),r.set(t,i)),i}}lS.INSTANCES=new WeakMap;class uS{constructor(e,t){this.firestore=e,this._delegate=t,this._userDataWriter=new aS(e)}static forPath(e,t,n){if(e.length%2!=0)throw new dm("invalid-argument","Invalid document reference. Document references must have an even number of segments, but "+`${e.canonicalString()} has ${e.length}`);return new uS(t,new gE(t._delegate,n,new Dm(e)))}static forKey(e,t,n){return new uS(t,new gE(t._delegate,n,e))}get id(){return this._delegate.id}get parent(){return new yS(this.firestore,this._delegate.parent)}get path(){return this._delegate.path}collection(e){try{return new yS(this.firestore,vE(this._delegate,e))}catch(e){throw hS(e,"collection()","DocumentReference.collection()")}}isEqual(e){return(e=le(e))instanceof gE&&yE(this._delegate,e)}set(e,t){t=ZC("DocumentReference.set",t);try{return t?BC(this._delegate,e,t):BC(this._delegate,e)}catch(e){throw hS(e,"setDoc()","DocumentReference.set()")}}update(e,t,...n){try{return 1===arguments.length?zC(this._delegate,e):zC(this._delegate,e,t,...n)}catch(e){throw hS(e,"updateDoc()","DocumentReference.update()")}}delete(){return WC(uE((e=this._delegate).firestore,NE),[new tw(e._key,zy.none())]);var e}onSnapshot(...e){var t=dS(e),n=pS(e,e=>new fS(this.firestore,new MC(this.firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,this._delegate.converter)));return KC(this._delegate,t,n)}get(e){let t;return t=("cache"===(null==e?void 0:e.source)?qC:"server"===(null==e?void 0:e.source)?function(t){t=uE(t,gE);const n=uE(t.firestore,NE);return eE(RE(n),t._key,{source:"server"}).then(e=>GC(n,t,e))}:function(t){t=uE(t,gE);const n=uE(t.firestore,NE);return eE(RE(n),t._key).then(e=>GC(n,t,e))})(this._delegate),t.then(e=>new fS(this.firestore,new MC(this.firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,this._delegate.converter)))}withConverter(e){return new uS(this.firestore,e?this._delegate.withConverter(lS.getInstance(this.firestore,e)):this._delegate.withConverter(null))}}function hS(e,t,n){return e.message=e.message.replace(t,n),e}function dS(e){for(const t of e)if("object"==typeof t&&!rS(t))return t;return{}}function pS(e,t){var n;let r;return r=rS(e[0])?e[0]:rS(e[1])?e[1]:"function"==typeof e[0]?{next:e[0],error:e[1],complete:e[2]}:{next:e[1],error:e[2],complete:e[3]},{next:e=>{r.next&&r.next(t(e))},error:null===(n=r.error)||void 0===n?void 0:n.bind(r),complete:null===(n=r.complete)||void 0===n?void 0:n.bind(r)}}class fS{constructor(e,t){this._firestore=e,this._delegate=t}get ref(){return new uS(this._firestore,this._delegate.ref)}get id(){return this._delegate.id}get metadata(){return this._delegate.metadata}get exists(){return this._delegate.exists()}data(e){return this._delegate.data(e)}get(e,t){return this._delegate.get(e,t)}isEqual(e){return UC(this._delegate,e._delegate)}}class gS extends fS{data(e){var t=this._delegate.data(e);return this._delegate._converter||void 0!==t||lm(),t}}class mS{constructor(e,t){this.firestore=e,this._delegate=t,this._userDataWriter=new aS(e)}where(e,t,n){try{return new mS(this.firestore,wC(this._delegate,(r=n,i=t,s=mC("where",e),bC._create(s,i,r))))}catch(e){throw hS(e,/(orderBy|where)\(\)/,"Query.$1()")}var r,i,s}orderBy(e,t){try{return new mS(this.firestore,wC(this._delegate,([n,r="asc"]=[e,t],i=r,s=mC("orderBy",n),TC._create(s,i))))}catch(e){throw hS(e,/(orderBy|where)\(\)/,"Query.$1()")}var n,r,i,s}limit(e){try{return new mS(this.firestore,wC(this._delegate,(hE("limit",t=e),EC._create("limit",t,"F"))))}catch(e){throw hS(e,"limit()","Query.limit()")}var t}limitToLast(e){try{return new mS(this.firestore,wC(this._delegate,(hE("limitToLast",t=e),EC._create("limitToLast",t,"L"))))}catch(e){throw hS(e,"limitToLast()","Query.limitToLast()")}var t}startAt(...e){try{return new mS(this.firestore,wC(this._delegate,function(...e){return CC._create("startAt",e,!0)}(...e)))}catch(e){throw hS(e,"startAt()","Query.startAt()")}}startAfter(...e){try{return new mS(this.firestore,wC(this._delegate,function(...e){return CC._create("startAfter",e,!1)}(...e)))}catch(e){throw hS(e,"startAfter()","Query.startAfter()")}}endBefore(...e){try{return new mS(this.firestore,wC(this._delegate,function(...e){return SC._create("endBefore",e,!1)}(...e)))}catch(e){throw hS(e,"endBefore()","Query.endBefore()")}}endAt(...e){try{return new mS(this.firestore,wC(this._delegate,function(...e){return SC._create("endAt",e,!0)}(...e)))}catch(e){throw hS(e,"endAt()","Query.endAt()")}}isEqual(e){return wE(this._delegate,e._delegate)}get(e){let t;return t=("cache"===(null==e?void 0:e.source)?jC:"server"===(null==e?void 0:e.source)?function(t){t=uE(t,fE);const n=uE(t.firestore,NE),e=RE(n),r=new VC(n);return tE(e,t._query,{source:"server"}).then(e=>new FC(n,r,t,e))}:function(t){t=uE(t,fE);const n=uE(t.firestore,NE),e=RE(n),r=new VC(n);return vC(t._query),tE(e,t._query).then(e=>new FC(n,r,t,e))})(this._delegate),t.then(e=>new _S(this.firestore,new FC(this.firestore._delegate,this._userDataWriter,this._delegate,e._snapshot)))}onSnapshot(...e){var t=dS(e),n=pS(e,e=>new _S(this.firestore,new FC(this.firestore._delegate,this._userDataWriter,this._delegate,e._snapshot)));return KC(this._delegate,t,n)}withConverter(e){return new mS(this.firestore,e?this._delegate.withConverter(lS.getInstance(this.firestore,e)):this._delegate.withConverter(null))}}class vS{constructor(e,t){this._firestore=e,this._delegate=t}get type(){return this._delegate.type}get doc(){return new gS(this._firestore,this._delegate.doc)}get oldIndex(){return this._delegate.oldIndex}get newIndex(){return this._delegate.newIndex}}class _S{constructor(e,t){this._firestore=e,this._delegate=t}get query(){return new mS(this._firestore,this._delegate.query)}get metadata(){return this._delegate.metadata}get size(){return this._delegate.size}get empty(){return this._delegate.empty}get docs(){return this._delegate.docs.map(e=>new gS(this._firestore,e))}docChanges(e){return this._delegate.docChanges(e).map(e=>new vS(this._firestore,e))}forEach(t,n){this._delegate.forEach(e=>{t.call(n,new gS(this._firestore,e))})}isEqual(e){return UC(this._delegate,e._delegate)}}class yS extends mS{constructor(e,t){super(e,t),this.firestore=e,this._delegate=t}get id(){return this._delegate.id}get path(){return this._delegate.path}get parent(){var e=this._delegate.parent;return e?new uS(this.firestore,e):null}doc(e){try{return void 0===e?new uS(this.firestore,_E(this._delegate)):new uS(this.firestore,_E(this._delegate,e))}catch(e){throw hS(e,"doc()","CollectionReference.doc()")}}add(e){return function(e,t){const n=uE(e.firestore,NE),r=_E(e),i=DC(e.converter,t);return WC(n,[QE(HE(e.firestore),"addDoc",r._key,i,null!==e.converter,{}).toMutation(r._key,zy.exists(!1))]).then(()=>r)}(this._delegate,e).then(e=>new uS(this.firestore,e))}isEqual(e){return yE(this._delegate,e._delegate)}withConverter(e){return new yS(this.firestore,e?this._delegate.withConverter(lS.getInstance(this.firestore,e)):this._delegate.withConverter(null))}}function wS(e){return uE(e,gE)}const bS={Firestore:sS,GeoPoint:qE,Timestamp:Sm,Blob:nS,Transaction:oS,WriteBatch:cS,DocumentReference:uS,DocumentSnapshot:fS,Query:mS,QueryDocumentSnapshot:gS,QuerySnapshot:_S,CollectionReference:yS,FieldPath:class NP{constructor(...e){this._delegate=new UE(...e)}static documentId(){return new NP(Pm.keyField().canonicalString())}isEqual(e){return(e=le(e))instanceof UE&&this._delegate._internalPath.isEqual(e._internalPath)}},FieldValue:class RP{constructor(e){this._delegate=e}static serverTimestamp(){const e=new XE("serverTimestamp");return e._methodName="FieldValue.serverTimestamp",new RP(e)}static delete(){const e=new YE("deleteField");return e._methodName="FieldValue.delete",new RP(e)}static arrayUnion(...e){const t=function(...e){return new ZE("arrayUnion",e)}(...e);return t._methodName="FieldValue.arrayUnion",new RP(t)}static arrayRemove(...e){const t=function(...e){return new eC("arrayRemove",e)}(...e);return t._methodName="FieldValue.arrayRemove",new RP(t)}static increment(e){const t=new tC("increment",e);return t._methodName="FieldValue.increment",new RP(t)}isEqual(e){return this._delegate.isEqual(e._delegate)}},setLogLevel:function(e){e=e,rm.setLogLevel(e)},CACHE_SIZE_UNLIMITED:-1};CE=Nt,SE=(e,t)=>new sS(e,t,new iS),CE.INTERNAL.registerComponent(new ue("firestore-compat",e=>{var t=e.getProvider("app-compat").getImmediate(),n=e.getProvider("firestore").getImmediate();return SE(t,n)},"PUBLIC").setServiceProps(Object.assign({},bS))),CE.registerVersion("@firebase/firestore-compat","0.3.38");const IS="type.googleapis.com/google.protobuf.Int64Value",TS="type.googleapis.com/google.protobuf.UInt64Value";function ES(e,t){const n={};for(const r in e)e.hasOwnProperty(r)&&(n[r]=t(e[r]));return n}function CS(e){if(null==e)return e;if(e["@type"])switch(e["@type"]){case IS:case TS:var t=Number(e.value);if(isNaN(t))throw new Error("Data cannot be decoded from JSON: "+e);return t;default:throw new Error("Data cannot be decoded from JSON: "+e)}return Array.isArray(e)?e.map(e=>CS(e)):"function"==typeof e||"object"==typeof e?ES(e,e=>CS(e)):e}const SS="functions",kS={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 AS extends x{constructor(e,t,n){super(`${SS}/${e}`,t||""),this.details=n}}function NS(e,t){let n=function(e){if(200<=e&&e<300)return"ok";switch(e){case 0:return"internal";case 400:return"invalid-argument";case 401:return"unauthenticated";case 403:return"permission-denied";case 404:return"not-found";case 409:return"aborted";case 429:return"resource-exhausted";case 499:return"cancelled";case 500:return"internal";case 501:return"unimplemented";case 503:return"unavailable";case 504:return"deadline-exceeded"}return"unknown"}(e),r=n,i=void 0;try{var s=t&&t.error;if(s){const e=s.status;if("string"==typeof e){if(!kS[e])return new AS("internal","internal");n=kS[e],r=e}var a=s.message;"string"==typeof a&&(r=a),i=s.details,void 0!==i&&(i=CS(i))}}catch(e){}return"ok"===n?null:new AS(n,r,i)}class RS{constructor(e,t,n){this.auth=null,this.messaging=null,this.appCheck=null,this.auth=e.getImmediate({optional:!0}),this.messaging=t.getImmediate({optional:!0}),this.auth||e.get().then(e=>this.auth=e,()=>{}),this.messaging||t.get().then(e=>this.messaging=e,()=>{}),this.appCheck||n.get().then(e=>this.appCheck=e,()=>{})}async getAuthToken(){if(this.auth)try{var e=await this.auth.getToken();return null==e?void 0:e.accessToken}catch(e){return}}async getMessagingToken(){if(this.messaging&&"Notification"in self&&"granted"===Notification.permission)try{return this.messaging.getToken()}catch(e){return}}async getAppCheckToken(e){if(this.appCheck){var t=e?await this.appCheck.getLimitedUseToken():await this.appCheck.getToken();return t.error?null:t.token}return null}async getContext(e){return{authToken:await this.getAuthToken(),messagingToken:await this.getMessagingToken(),appCheckToken:await this.getAppCheckToken(e)}}}const PS="us-central1";class DS{constructor(e,t,n,r,i=PS,s){this.app=e,this.fetchImpl=s,this.emulatorOrigin=null,this.contextProvider=new RS(t,n,r),this.cancelAllRequests=new Promise(e=>{this.deleteService=()=>Promise.resolve(e())});try{var a=new URL(i);this.customDomain=a.origin+("/"===a.pathname?"":a.pathname),this.region=PS}catch(e){this.customDomain=null,this.region=i}}_delete(){return this.deleteService()}_url(e){var t=this.app.options.projectId;return null===this.emulatorOrigin?null!==this.customDomain?`${this.customDomain}/${e}`:`https://${this.region}-${t}.cloudfunctions.net/${e}`:`${this.emulatorOrigin}/${t}/${this.region}/${e}`}}function xS(i,s,a){return e=>{return t=e,n=a||{},r=(e=i)._url(s),OS(e,r,t,n);var t,n,r}}async function OS(e,t,n,r){var i={data:n=function t(e){if(null==e)return null;if("number"==typeof(e=e instanceof Number?e.valueOf():e)&&isFinite(e))return e;if(!0===e||!1===e)return e;if("[object String]"===Object.prototype.toString.call(e))return e;if(e instanceof Date)return e.toISOString();if(Array.isArray(e))return e.map(e=>t(e));if("function"==typeof e||"object"==typeof e)return ES(e,e=>t(e));throw new Error("Data cannot be encoded in JSON: "+e)}(n)};const s={};var a=await e.contextProvider.getContext(r.limitedUseAppCheckTokens);a.authToken&&(s.Authorization="Bearer "+a.authToken),a.messagingToken&&(s["Firebase-Instance-ID-Token"]=a.messagingToken),null!==a.appCheckToken&&(s["X-Firebase-AppCheck"]=a.appCheckToken);const o=function(n){let r=null;return{promise:new Promise((e,t)=>{r=setTimeout(()=>{t(new AS("deadline-exceeded","deadline-exceeded"))},n)}),cancel:()=>{r&&clearTimeout(r)}}}(r.timeout||7e4);a=await Promise.race([async function(e,t,n,r){n["Content-Type"]="application/json";let i;try{i=await r(e,{method:"POST",body:JSON.stringify(t),headers:n})}catch(e){return{status:0,json:null}}let s=null;try{s=await i.json()}catch(e){}return{status:i.status,json:s}}(t,i,s,e.fetchImpl),o.promise,e.cancelAllRequests]);if(o.cancel(),!a)throw new AS("cancelled","Firebase Functions instance was deleted.");i=NS(a.status,a.json);if(i)throw i;if(!a.json)throw new AS("internal","Response is not valid JSON object.");let c=a.json.data;if(void 0===c&&(c=a.json.result),void 0===c)throw new AS("internal","Response is missing data field.");return{data:CS(c)}}const MS="@firebase/functions";function LS(e,t,n){le(e).emulatorOrigin=`http://${t}:${n}`}function FS(e,t,n){return r=le(e),i=t,s=n,e=>OS(r,i,e,s||{});var r,i,s}kE=fetch.bind(self),Je(new ue(SS,(e,{instanceIdentifier:t})=>{var n=e.getProvider("app").getImmediate(),r=e.getProvider("auth-internal"),i=e.getProvider("messaging-internal"),s=e.getProvider("app-check-internal");return new DS(n,r,i,s,t,kE)},"PUBLIC").setMultipleInstances(!0)),ct(MS,"0.11.8",AE),ct(MS,"0.11.8","esm2017");var US,VS,qS,jS,BS;class zS{constructor(e,t){this.app=e,this._delegate=t,this._region=this._delegate.region,this._customDomain=this._delegate.customDomain}httpsCallable(e,t){return xS(le(this._delegate),e,t)}httpsCallableFromURL(e,t){return FS(this._delegate,e,t)}useFunctionsEmulator(e){var t=e.match("[a-zA-Z]+://([a-zA-Z0-9.-]+)(?::([0-9]+))?");if(null==t)throw new x("functions","No origin provided to useFunctionsEmulator()");if(null==t[2])throw new x("functions","Port missing in origin provided to useFunctionsEmulator()");return LS(this._delegate,t[1],Number(t[2]))}useEmulator(e,t){return LS(this._delegate,e,t)}}const KS="us-central1",$S=(e,{instanceIdentifier:t})=>{var n=e.getProvider("app-compat").getImmediate(),r=e.getProvider("functions").getImmediate({identifier:null!=t?t:KS});return new zS(n,r)};US={Functions:zS},Nt.INTERNAL.registerComponent(new ue("functions-compat",$S,"PUBLIC").setServiceProps(US).setMultipleInstances(!0)),Nt.registerVersion("@firebase/functions-compat","0.3.14");const WS="/firebase-messaging-sw.js",GS="/firebase-cloud-messaging-push-scope",HS="BDOU99-h67HcA6JeFXHbSNMu7e2yNNu3RzoMj8TM4W88jITfq7ZmPvIM1Iv-4_l2LxQcYwhqby2xGpWwzjfAnG4",QS="https://fcmregistrations.googleapis.com/v1",YS="google.c.a.c_id",JS="google.c.a.e";function XS(e){var t=new Uint8Array(e);const n=btoa(String.fromCharCode(...t));return n.replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}(VS=hR=hR||{})[VS.DATA_MESSAGE=1]="DATA_MESSAGE",VS[VS.DISPLAY_NOTIFICATION=3]="DISPLAY_NOTIFICATION",(Pt=qS=qS||{}).PUSH_RECEIVED="push-received",Pt.NOTIFICATION_CLICKED="notification-clicked";const ZS="fcm_token_details_db",ek="fcm_token_object_Store";async function tk(c){if("databases"in indexedDB){const t=await indexedDB.databases(),n=t.map(e=>e.name);if(!n.includes(ZS))return null}let l=null;const e=await xe(ZS,5,{upgrade:async(e,t,n,r)=>{var i;if(!(t<2)&&e.objectStoreNames.contains(ek)){const o=r.objectStore(ek);var s,a=await o.index("fcmSenderId").get(c);await o.clear(),a&&(2===t?(s=a).auth&&s.p256dh&&s.endpoint&&(l={token:s.fcmToken,createTime:null!==(i=s.createTime)&&void 0!==i?i:Date.now(),subscriptionOptions:{auth:s.auth,p256dh:s.p256dh,endpoint:s.endpoint,swScope:s.swScope,vapidKey:"string"==typeof s.vapidKey?s.vapidKey:XS(s.vapidKey)}}):3===t?(s=a,l={token:s.fcmToken,createTime:s.createTime,subscriptionOptions:{auth:XS(s.auth),p256dh:XS(s.p256dh),endpoint:s.endpoint,swScope:s.swScope,vapidKey:XS(s.vapidKey)}}):4===t&&(a=a,l={token:a.fcmToken,createTime:a.createTime,subscriptionOptions:{auth:XS(a.auth),p256dh:XS(a.p256dh),endpoint:a.endpoint,swScope:a.swScope,vapidKey:XS(a.vapidKey)}}))}}});return e.close(),await Oe(ZS),await Oe("fcm_vapid_details_db"),await Oe("undefined"),function(e){if(!e||!e.subscriptionOptions)return!1;var t=e["subscriptionOptions"];return"number"==typeof e.createTime&&0<e.createTime&&"string"==typeof e.token&&0<e.token.length&&"string"==typeof t.auth&&0<t.auth.length&&"string"==typeof t.p256dh&&0<t.p256dh.length&&"string"==typeof t.endpoint&&0<t.endpoint.length&&"string"==typeof t.swScope&&0<t.swScope.length&&"string"==typeof t.vapidKey&&0<t.vapidKey.length}(l)?l:null}const nk="firebase-messaging-database",rk=1,ik="firebase-messaging-store";let sk=null;function ak(){return sk=sk||xe(nk,rk,{upgrade:(e,t)=>{0===t&&e.createObjectStore(ik)}}),sk}async function ok(e){var t=lk(e);const n=await ak();t=await n.transaction(ik).objectStore(ik).get(t);if(t)return t;t=await tk(e.appConfig.senderId);return t?(await ck(e,t),t):void 0}async function ck(e,t){var n=lk(e);const r=await ak(),i=r.transaction(ik,"readwrite");return await i.objectStore(ik).put(t,n),await i.done,t}function lk({appConfig:e}){return e.appId}const uk=new O("messaging","Messaging",{"missing-app-config-values":'Missing App configuration value: "{$valueName}"',"only-available-in-window":"This method is available in a Window context.","only-available-in-sw":"This method is available in a service worker context.","permission-default":"The notification permission was not granted and dismissed instead.","permission-blocked":"The notification permission was not granted and blocked instead.","unsupported-browser":"This browser doesn't support the API's required to use the Firebase SDK.","indexed-db-unsupported":"This browser doesn't support indexedDb.open() (ex. Safari iFrame, Firefox Private Browsing, etc)","failed-service-worker-registration":"We are unable to register the default service worker. {$browserErrorMessage}","token-subscribe-failed":"A problem occurred while subscribing the user to FCM: {$errorInfo}","token-subscribe-no-token":"FCM returned no token when subscribing the user to push.","token-unsubscribe-failed":"A problem occurred while unsubscribing the user from FCM: {$errorInfo}","token-update-failed":"A problem occurred while updating the user from FCM: {$errorInfo}","token-update-no-token":"FCM returned no token when updating the user to push.","use-sw-after-get-token":"The useServiceWorker() method may only be called once and must be called before calling getToken() to ensure your service worker is used.","invalid-sw-registration":"The input to useServiceWorker() must be a ServiceWorkerRegistration.","invalid-bg-handler":"The input to setBackgroundMessageHandler() must be a function.","invalid-vapid-key":"The public VAPID key must be a string.","use-vapid-key-after-get-token":"The usePublicVapidKey() method may only be called once and must be called before calling getToken() to ensure your VAPID key is used."});async function hk(e,t){var n={method:"DELETE",headers:await pk(e)};try{const s=await fetch(`${dk(e.appConfig)}/${t}`,n);var r=await s.json();if(r.error){var i=r.error.message;throw uk.create("token-unsubscribe-failed",{errorInfo:i})}}catch(e){throw uk.create("token-unsubscribe-failed",{errorInfo:null==e?void 0:e.toString()})}}function dk({projectId:e}){return`${QS}/projects/${e}/registrations`}async function pk({appConfig:e,installations:t}){var n=await t.getToken();return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e.apiKey,"x-goog-firebase-installations-auth":`FIS ${n}`})}function fk({p256dh:e,auth:t,endpoint:n,vapidKey:r}){const i={web:{endpoint:n,auth:t,p256dh:e}};return r!==HS&&(i.web.applicationPubKey=r),i}const gk=6048e5;async function mk(e){const t=await async function(e,t){var n=await e.pushManager.getSubscription();if(n)return n;return e.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:function(e){var t=(e+"=".repeat((4-e.length%4)%4)).replace(/\-/g,"+").replace(/_/g,"/");const n=atob(t),r=new Uint8Array(n.length);for(let i=0;i<n.length;++i)r[i]=n.charCodeAt(i);return r}(t)})}(e.swRegistration,e.vapidKey);var n,r,i,s,a,o={vapidKey:e.vapidKey,swScope:e.swRegistration.scope,endpoint:t.endpoint,auth:XS(t.getKey("auth")),p256dh:XS(t.getKey("p256dh"))},c=await ok(e.firebaseDependencies);if(c){if(n=c.subscriptionOptions,r=o.vapidKey===n.vapidKey,i=o.endpoint===n.endpoint,s=o.auth===n.auth,a=o.p256dh===n.p256dh,r&&i&&s&&a)return Date.now()>=c.createTime+gk?async function(e,t){try{var n=await async function(e,t){var n=await pk(e),r=fk(t.subscriptionOptions),r={method:"PATCH",headers:n,body:JSON.stringify(r)};let i;try{const s=await fetch(`${dk(e.appConfig)}/${t.token}`,r);i=await s.json()}catch(e){throw uk.create("token-update-failed",{errorInfo:null==e?void 0:e.toString()})}if(i.error){r=i.error.message;throw uk.create("token-update-failed",{errorInfo:r})}if(!i.token)throw uk.create("token-update-no-token");return i.token}(e.firebaseDependencies,t),r=Object.assign(Object.assign({},t),{token:n,createTime:Date.now()});return await ck(e.firebaseDependencies,r),n}catch(e){throw e}}(e,{token:c.token,createTime:Date.now(),subscriptionOptions:o}):c.token;try{await hk(e.firebaseDependencies,c.token)}catch(e){console.warn(e)}return _k(e.firebaseDependencies,o)}return _k(e.firebaseDependencies,o)}async function vk(e){var t=await ok(e.firebaseDependencies);t&&(await hk(e.firebaseDependencies,t.token),await async function(e){var t=lk(e);const n=await ak(),r=n.transaction(ik,"readwrite");await r.objectStore(ik).delete(t),await r.done}(e.firebaseDependencies));const n=await e.swRegistration.pushManager.getSubscription();return!n||n.unsubscribe()}async function _k(e,t){var n={token:await async function(e,t){var n=await pk(e),r=fk(t),r={method:"POST",headers:n,body:JSON.stringify(r)};let i;try{const s=await fetch(dk(e.appConfig),r);i=await s.json()}catch(e){throw uk.create("token-subscribe-failed",{errorInfo:null==e?void 0:e.toString()})}if(i.error){r=i.error.message;throw uk.create("token-subscribe-failed",{errorInfo:r})}if(!i.token)throw uk.create("token-subscribe-no-token");return i.token}(e,t),createTime:Date.now(),subscriptionOptions:t};return await ck(e,n),n.token}function yk(e){var t,n,r,i,s,a={from:e.from,collapseKey:e.collapse_key,messageId:e.fcmMessageId};return r=a,(n=e).notification&&(r.notification={},(t=n.notification.title)&&(r.notification.title=t),(t=n.notification.body)&&(r.notification.body=t),(t=n.notification.image)&&(r.notification.image=t),(t=n.notification.icon)&&(r.notification.icon=t)),n=a,(r=e).data&&(n.data=r.data),r=a,((e=e).fcmOptions||null!==(i=e.notification)&&void 0!==i&&i.click_action)&&(r.fcmOptions={},(s=null!==(i=null===(i=e.fcmOptions)||void 0===i?void 0:i.link)&&void 0!==i?i:null===(s=e.notification)||void 0===s?void 0:s.click_action)&&(r.fcmOptions.link=s),(s=null===(s=e.fcmOptions)||void 0===s?void 0:s.analytics_label)&&(r.fcmOptions.analyticsLabel=s)),a}function wk(e){return uk.create("missing-app-config-values",{valueName:e})}!function(e,t){const n=[];for(let r=0;r<e.length;r++)n.push(e.charAt(r)),r<t.length&&n.push(t.charAt(r));n.join("")}("AzSCbw63g1R0nCw85jG8","Iaya3yLKwmgvh7cF0q4");class bk{constructor(e,t,n){this.deliveryMetricsExportedToBigQueryEnabled=!1,this.onBackgroundMessageHandler=null,this.onMessageHandler=null,this.logEvents=[],this.isLogServiceStarted=!1;var r=function(e){if(!e||!e.options)throw wk("App Configuration Object");if(!e.name)throw wk("App Name");var t=e["options"];for(const n of["projectId","apiKey","appId","messagingSenderId"])if(!t[n])throw wk(n);return{appName:e.name,projectId:t.projectId,apiKey:t.apiKey,appId:t.appId,senderId:t.messagingSenderId}}(e);this.firebaseDependencies={app:e,appConfig:r,installations:t,analyticsProvider:n}}_delete(){return Promise.resolve()}}async function Ik(e){try{e.swRegistration=await navigator.serviceWorker.register(WS,{scope:GS}),e.swRegistration.update().catch(()=>{})}catch(e){throw uk.create("failed-service-worker-registration",{browserErrorMessage:null==e?void 0:e.message})}}async function Tk(e,t){if(!navigator)throw uk.create("only-available-in-window");if("default"===Notification.permission&&await Notification.requestPermission(),"granted"!==Notification.permission)throw uk.create("permission-blocked");var n,r;return n=e,await((r=null==t?void 0:t.vapidKey)?n.vapidKey=r:n.vapidKey||(n.vapidKey=HS)),await async function(e,t){if(t||e.swRegistration||await Ik(e),t||!e.swRegistration){if(!(t instanceof ServiceWorkerRegistration))throw uk.create("invalid-sw-registration");e.swRegistration=t}}(e,null==t?void 0:t.serviceWorkerRegistration),mk(e)}async function Ek(e,t,n){var r=function(e){switch(e){case qS.NOTIFICATION_CLICKED:return"notification_open";case qS.PUSH_RECEIVED:return"notification_foreground";default:throw new Error}}(t);const i=await e.firebaseDependencies.analyticsProvider.get();i.logEvent(r,{message_id:n[YS],message_name:n["google.c.a.c_l"],message_time:n["google.c.a.ts"],message_device_time:Math.floor(Date.now()/1e3)})}async function Ck(e,t){var n,r=t.data;r.isFirebaseMessaging&&(e.onMessageHandler&&r.messageType===qS.PUSH_RECEIVED&&("function"==typeof e.onMessageHandler?e.onMessageHandler(yk(r)):e.onMessageHandler.next(yk(r))),n=r.data,"object"==typeof(t=n)&&t&&YS in t&&"1"===n[JS]&&await Ek(e,r.messageType,n))}const Sk="@firebase/messaging",kk="0.12.12",Ak=e=>{const t=new bk(e.getProvider("app").getImmediate(),e.getProvider("installations-internal").getImmediate(),e.getProvider("analytics-internal"));return navigator.serviceWorker.addEventListener("message",e=>Ck(t,e)),t},Nk=e=>{const t=e.getProvider("messaging").getImmediate();return{getToken:e=>Tk(t,e)}};function Rk(e){return async function(e){if(!navigator)throw uk.create("only-available-in-window");return e.swRegistration||await Ik(e),vk(e)}(e=le(e))}function Pk(e,t){return function(e,t){if(!navigator)throw uk.create("only-available-in-window");return e.onMessageHandler=t,()=>{e.onMessageHandler=null}}(e=le(e),t)}Je(new ue("messaging",Ak,"PUBLIC")),Je(new ue("messaging-internal",Nk,"PRIVATE")),ct(Sk,kk),ct(Sk,kk,"esm2017");const Dk="BDOU99-h67HcA6JeFXHbSNMu7e2yNNu3RzoMj8TM4W88jITfq7ZmPvIM1Iv-4_l2LxQcYwhqby2xGpWwzjfAnG4",xk="https://fcmregistrations.googleapis.com/v1",Ok="FCM_MSG",Mk="google.c.a.c_id",Lk=3,Fk=1;function Uk(e){var t=new Uint8Array(e);const n=btoa(String.fromCharCode(...t));return n.replace(/=/g,"").replace(/\+/g,"-").replace(/\//g,"_")}(Pt=jS=jS||{})[Pt.DATA_MESSAGE=1]="DATA_MESSAGE",Pt[Pt.DISPLAY_NOTIFICATION=3]="DISPLAY_NOTIFICATION",(Pt=BS=BS||{}).PUSH_RECEIVED="push-received",Pt.NOTIFICATION_CLICKED="notification-clicked";const Vk="fcm_token_details_db",qk="fcm_token_object_Store";async function jk(c){if("databases"in indexedDB){const t=await indexedDB.databases(),n=t.map(e=>e.name);if(!n.includes(Vk))return null}let l=null;const e=await xe(Vk,5,{upgrade:async(e,t,n,r)=>{var i;if(!(t<2)&&e.objectStoreNames.contains(qk)){const o=r.objectStore(qk);var s,a=await o.index("fcmSenderId").get(c);await o.clear(),a&&(2===t?(s=a).auth&&s.p256dh&&s.endpoint&&(l={token:s.fcmToken,createTime:null!==(i=s.createTime)&&void 0!==i?i:Date.now(),subscriptionOptions:{auth:s.auth,p256dh:s.p256dh,endpoint:s.endpoint,swScope:s.swScope,vapidKey:"string"==typeof s.vapidKey?s.vapidKey:Uk(s.vapidKey)}}):3===t?(s=a,l={token:s.fcmToken,createTime:s.createTime,subscriptionOptions:{auth:Uk(s.auth),p256dh:Uk(s.p256dh),endpoint:s.endpoint,swScope:s.swScope,vapidKey:Uk(s.vapidKey)}}):4===t&&(a=a,l={token:a.fcmToken,createTime:a.createTime,subscriptionOptions:{auth:Uk(a.auth),p256dh:Uk(a.p256dh),endpoint:a.endpoint,swScope:a.swScope,vapidKey:Uk(a.vapidKey)}}))}}});return e.close(),await Oe(Vk),await Oe("fcm_vapid_details_db"),await Oe("undefined"),function(e){if(!e||!e.subscriptionOptions)return!1;var t=e["subscriptionOptions"];return"number"==typeof e.createTime&&0<e.createTime&&"string"==typeof e.token&&0<e.token.length&&"string"==typeof t.auth&&0<t.auth.length&&"string"==typeof t.p256dh&&0<t.p256dh.length&&"string"==typeof t.endpoint&&0<t.endpoint.length&&"string"==typeof t.swScope&&0<t.swScope.length&&"string"==typeof t.vapidKey&&0<t.vapidKey.length}(l)?l:null}const Bk="firebase-messaging-database",zk=1,Kk="firebase-messaging-store";let $k=null;function Wk(){return $k=$k||xe(Bk,zk,{upgrade:(e,t)=>{0===t&&e.createObjectStore(Kk)}}),$k}async function Gk(e){var t=Qk(e);const n=await Wk();t=await n.transaction(Kk).objectStore(Kk).get(t);if(t)return t;t=await jk(e.appConfig.senderId);return t?(await Hk(e,t),t):void 0}async function Hk(e,t){var n=Qk(e);const r=await Wk(),i=r.transaction(Kk,"readwrite");return await i.objectStore(Kk).put(t,n),await i.done,t}function Qk({appConfig:e}){return e.appId}const Yk=new O("messaging","Messaging",{"missing-app-config-values":'Missing App configuration value: "{$valueName}"',"only-available-in-window":"This method is available in a Window context.","only-available-in-sw":"This method is available in a service worker context.","permission-default":"The notification permission was not granted and dismissed instead.","permission-blocked":"The notification permission was not granted and blocked instead.","unsupported-browser":"This browser doesn't support the API's required to use the Firebase SDK.","indexed-db-unsupported":"This browser doesn't support indexedDb.open() (ex. Safari iFrame, Firefox Private Browsing, etc)","failed-service-worker-registration":"We are unable to register the default service worker. {$browserErrorMessage}","token-subscribe-failed":"A problem occurred while subscribing the user to FCM: {$errorInfo}","token-subscribe-no-token":"FCM returned no token when subscribing the user to push.","token-unsubscribe-failed":"A problem occurred while unsubscribing the user from FCM: {$errorInfo}","token-update-failed":"A problem occurred while updating the user from FCM: {$errorInfo}","token-update-no-token":"FCM returned no token when updating the user to push.","use-sw-after-get-token":"The useServiceWorker() method may only be called once and must be called before calling getToken() to ensure your service worker is used.","invalid-sw-registration":"The input to useServiceWorker() must be a ServiceWorkerRegistration.","invalid-bg-handler":"The input to setBackgroundMessageHandler() must be a function.","invalid-vapid-key":"The public VAPID key must be a string.","use-vapid-key-after-get-token":"The usePublicVapidKey() method may only be called once and must be called before calling getToken() to ensure your VAPID key is used."});async function Jk(e,t){var n={method:"DELETE",headers:await Zk(e)};try{const s=await fetch(`${Xk(e.appConfig)}/${t}`,n);var r=await s.json();if(r.error){var i=r.error.message;throw Yk.create("token-unsubscribe-failed",{errorInfo:i})}}catch(e){throw Yk.create("token-unsubscribe-failed",{errorInfo:null==e?void 0:e.toString()})}}function Xk({projectId:e}){return`${xk}/projects/${e}/registrations`}async function Zk({appConfig:e,installations:t}){var n=await t.getToken();return new Headers({"Content-Type":"application/json",Accept:"application/json","x-goog-api-key":e.apiKey,"x-goog-firebase-installations-auth":`FIS ${n}`})}function eA({p256dh:e,auth:t,endpoint:n,vapidKey:r}){const i={web:{endpoint:n,auth:t,p256dh:e}};return r!==Dk&&(i.web.applicationPubKey=r),i}async function tA(e){const t=await async function(e,t){var n=await e.pushManager.getSubscription();if(n)return n;return e.pushManager.subscribe({userVisibleOnly:!0,applicationServerKey:function(e){var t=(e+"=".repeat((4-e.length%4)%4)).replace(/\-/g,"+").replace(/_/g,"/");const n=atob(t),r=new Uint8Array(n.length);for(let i=0;i<n.length;++i)r[i]=n.charCodeAt(i);return r}(t)})}(e.swRegistration,e.vapidKey);var n,r,i,s,a,o={vapidKey:e.vapidKey,swScope:e.swRegistration.scope,endpoint:t.endpoint,auth:Uk(t.getKey("auth")),p256dh:Uk(t.getKey("p256dh"))},c=await Gk(e.firebaseDependencies);if(c){if(n=c.subscriptionOptions,r=o.vapidKey===n.vapidKey,i=o.endpoint===n.endpoint,s=o.auth===n.auth,a=o.p256dh===n.p256dh,r&&i&&s&&a)return Date.now()>=c.createTime+6048e5?async function(e,t){try{var n=await async function(e,t){var n=await Zk(e),r=eA(t.subscriptionOptions),r={method:"PATCH",headers:n,body:JSON.stringify(r)};let i;try{const s=await fetch(`${Xk(e.appConfig)}/${t.token}`,r);i=await s.json()}catch(e){throw Yk.create("token-update-failed",{errorInfo:null==e?void 0:e.toString()})}if(i.error){r=i.error.message;throw Yk.create("token-update-failed",{errorInfo:r})}if(!i.token)throw Yk.create("token-update-no-token");return i.token}(e.firebaseDependencies,t),r=Object.assign(Object.assign({},t),{token:n,createTime:Date.now()});return await Hk(e.firebaseDependencies,r),n}catch(e){throw e}}(e,{token:c.token,createTime:Date.now(),subscriptionOptions:o}):c.token;try{await Jk(e.firebaseDependencies,c.token)}catch(e){console.warn(e)}return rA(e.firebaseDependencies,o)}return rA(e.firebaseDependencies,o)}async function nA(e){var t=await Gk(e.firebaseDependencies);t&&(await Jk(e.firebaseDependencies,t.token),await async function(e){var t=Qk(e);const n=await Wk(),r=n.transaction(Kk,"readwrite");await r.objectStore(Kk).delete(t),await r.done}(e.firebaseDependencies));const n=await e.swRegistration.pushManager.getSubscription();return!n||n.unsubscribe()}async function rA(e,t){var n={token:await async function(e,t){var n=await Zk(e),r=eA(t),r={method:"POST",headers:n,body:JSON.stringify(r)};let i;try{const s=await fetch(Xk(e.appConfig),r);i=await s.json()}catch(e){throw Yk.create("token-subscribe-failed",{errorInfo:null==e?void 0:e.toString()})}if(i.error){r=i.error.message;throw Yk.create("token-subscribe-failed",{errorInfo:r})}if(!i.token)throw Yk.create("token-subscribe-no-token");return i.token}(e,t),createTime:Date.now(),subscriptionOptions:t};return await Hk(e,n),n.token}async function iA(e,t){var n=function(e,t){var n;const r={};e.from&&(r.project_number=e.from);e.fcmMessageId&&(r.message_id=e.fcmMessageId);r.instance_id=t,e.notification?r.message_type=jS.DISPLAY_NOTIFICATION.toString():r.message_type=jS.DATA_MESSAGE.toString();r.sdk_platform=Lk.toString(),r.package_name=self.origin.replace(/(^\w+:|^)\/\//,""),e.collapse_key&&(r.collapse_key=e.collapse_key);r.event=Fk.toString(),null!==(n=e.fcmOptions)&&void 0!==n&&n.analytics_label&&(r.analytics_label=null===(n=e.fcmOptions)||void 0===n?void 0:n.analytics_label);return r}(t,await e.firebaseDependencies.installations.getId());!function(e,t,n){const r={};r.event_time_ms=Math.floor(Date.now()).toString(),r.source_extension_json_proto3=JSON.stringify({messaging_client_event:t}),n&&(r.compliance_data=function(e){var t={privacy_context:{prequest:{origin_associated_product_id:e}}};return t}(n));e.logEvents.push(r)}(e,n,t.productId)}async function sA(e,t){var n=function({data:e}){if(!e)return null;try{return e.json()}catch(e){return null}}(e);if(n){t.deliveryMetricsExportedToBigQueryEnabled&&await iA(t,n);var r,i,s,a,o=await oA();if(o.some(e=>"visible"===e.visibilityState&&!e.url.startsWith("chrome-extension://")))return function(e,t){t.isFirebaseMessaging=!0,t.messageType=BS.PUSH_RECEIVED;for(const n of e)n.postMessage(t)}(o,n);n.notification&&await function(e){var t=e["actions"],n=Notification["maxActions"];t&&n&&t.length>n&&console.warn(`This browser only supports ${n} actions. The remaining actions will not be displayed.`);return self.registration.showNotification(null!==(n=e.title)&&void 0!==n?n:"",e)}(function(e){const t=Object.assign({},e.notification);return t.data={[Ok]:e},t}(n)),t&&t.onBackgroundMessageHandler&&(a={from:(r=n).from,collapseKey:r.collapse_key,messageId:r.fcmMessageId},o=a,(e=r).notification&&(o.notification={},(n=e.notification.title)&&(o.notification.title=n),(n=e.notification.body)&&(o.notification.body=n),(n=e.notification.image)&&(o.notification.image=n),(n=e.notification.icon)&&(o.notification.icon=n)),e=a,(o=r).data&&(e.data=o.data),o=a,((r=r).fcmOptions||null!==(i=r.notification)&&void 0!==i&&i.click_action)&&(o.fcmOptions={},(s=null!==(i=null===(i=r.fcmOptions)||void 0===i?void 0:i.link)&&void 0!==i?i:null===(s=r.notification)||void 0===s?void 0:s.click_action)&&(o.fcmOptions.link=s),(s=null===(s=r.fcmOptions)||void 0===s?void 0:s.analytics_label)&&(o.fcmOptions.analyticsLabel=s)),a=a,"function"==typeof t.onBackgroundMessageHandler?await t.onBackgroundMessageHandler(a):t.onBackgroundMessageHandler.next(a))}}async function aA(e){const t=null===(s=null===(i=e.notification)||void 0===i?void 0:i.data)||void 0===s?void 0:s[Ok];if(t&&!e.action){e.stopImmediatePropagation(),e.notification.close();var n=function(e){var t;var n=null!==(t=null===(t=e.fcmOptions)||void 0===t?void 0:t.link)&&void 0!==t?t:null===(n=e.notification)||void 0===n?void 0:n.click_action;if(n)return n;return function(e){return"object"==typeof e&&e&&Mk in e}(e.data)?self.location.origin:null}(t);if(n){var r,i=new URL(n,self.location.href),s=new URL(self.location.origin);if(i.host===s.host){let e=await async function(e){var t=await oA();for(const r of t){var n=new URL(r.url,self.location.href);if(e.host===n.host)return r}return null}(i);if(e?e=await e.focus():(e=await self.clients.openWindow(n),r=3e3,await new Promise(e=>{setTimeout(e,r)})),e)return t.messageType=BS.NOTIFICATION_CLICKED,t.isFirebaseMessaging=!0,e.postMessage(t)}}}}function oA(){return self.clients.matchAll({type:"window",includeUncontrolled:!0})}function cA(e){return Yk.create("missing-app-config-values",{valueName:e})}!function(e,t){const n=[];for(let r=0;r<e.length;r++)n.push(e.charAt(r)),r<t.length&&n.push(t.charAt(r));n.join("")}("AzSCbw63g1R0nCw85jG8","Iaya3yLKwmgvh7cF0q4");class lA{constructor(e,t,n){this.deliveryMetricsExportedToBigQueryEnabled=!1,this.onBackgroundMessageHandler=null,this.onMessageHandler=null,this.logEvents=[],this.isLogServiceStarted=!1;var r=function(e){if(!e||!e.options)throw cA("App Configuration Object");if(!e.name)throw cA("App Name");var t=e["options"];for(const n of["projectId","apiKey","appId","messagingSenderId"])if(!t[n])throw cA(n);return{appName:e.name,projectId:t.projectId,apiKey:t.apiKey,appId:t.appId,senderId:t.messagingSenderId}}(e);this.firebaseDependencies={app:e,appConfig:r,installations:t,analyticsProvider:n}}_delete(){return Promise.resolve()}}const uA=e=>{const t=new lA(e.getProvider("app").getImmediate(),e.getProvider("installations-internal").getImmediate(),e.getProvider("analytics-internal"));return self.addEventListener("push",e=>{e.waitUntil(sA(e,t))}),self.addEventListener("pushsubscriptionchange",e=>{e.waitUntil(async function(e,t){var n;(n=e["newSubscription"])?(n=await Gk(t.firebaseDependencies),await nA(t),t.vapidKey=null!==(n=null===(n=null==n?void 0:n.subscriptionOptions)||void 0===n?void 0:n.vapidKey)&&void 0!==n?n:Dk,await tA(t)):await nA(t)}(e,t))}),self.addEventListener("notificationclick",e=>{e.waitUntil(aA(e))}),t};function hA(e,t){return function(e,t){if(void 0!==self.document)throw Yk.create("only-available-in-sw");return e.onBackgroundMessageHandler=t,()=>{e.onBackgroundMessageHandler=null}}(e=le(e),t)}Je(new ue("messaging-sw",uA,"PUBLIC"));var dA,pA,fA,gA;class mA{constructor(e,t){this.app=e,this._delegate=t,this.app=e,this._delegate=t}async getToken(e){return async function(e,t){return Tk(e=le(e),t)}(this._delegate,e)}async deleteToken(){return Rk(this._delegate)}onMessage(e){return Pk(this._delegate,e)}onBackgroundMessage(e){return hA(this._delegate,e)}}const vA=e=>self&&"ServiceWorkerGlobalScope"in self?new mA(e.getProvider("app-compat").getImmediate(),e.getProvider("messaging-sw").getImmediate()):new mA(e.getProvider("app-compat").getImmediate(),e.getProvider("messaging").getImmediate()),_A={isSupported:function(){return self&&"ServiceWorkerGlobalScope"in self?R()&&"PushManager"in self&&"Notification"in self&&ServiceWorkerRegistration.prototype.hasOwnProperty("showNotification")&&PushSubscription.prototype.hasOwnProperty("getKey"):"undefined"!=typeof window&&R()&&D()&&"serviceWorker"in navigator&&"PushManager"in window&&"Notification"in window&&"fetch"in window&&ServiceWorkerRegistration.prototype.hasOwnProperty("showNotification")&&PushSubscription.prototype.hasOwnProperty("getKey")}};Nt.INTERNAL.registerComponent(new ue("messaging-compat",vA,"PUBLIC").setServiceProps(_A)),Nt.registerVersion("@firebase/messaging-compat","0.2.12");const yA="firebasestorage.googleapis.com",wA="storageBucket";class bA extends x{constructor(e,t,n=0){super(IA(e),`Firebase Storage: ${t} (${IA(e)})`),this.status_=n,this.customData={serverResponse:null},this._baseMessage=this.message,Object.setPrototypeOf(this,bA.prototype)}get status(){return this.status_}set status(e){this.status_=e}_codeEquals(e){return IA(e)===this.code}get serverResponse(){return this.customData.serverResponse}set serverResponse(e){this.customData.serverResponse=e,this.customData.serverResponse?this.message=`${this._baseMessage}\n${this.customData.serverResponse}`:this.message=this._baseMessage}}function IA(e){return"storage/"+e}function TA(){return new bA(dA.UNKNOWN,"An unknown error occurred, please check the error payload for server response.")}function EA(){return new bA(dA.RETRY_LIMIT_EXCEEDED,"Max retry time for operation exceeded, please try again.")}function CA(){return new bA(dA.CANCELED,"User canceled the upload/download.")}function SA(){return new bA(dA.CANNOT_SLICE_BLOB,"Cannot slice blob for upload. Please retry the upload.")}function kA(e){return new bA(dA.INVALID_ARGUMENT,e)}function AA(){return new bA(dA.APP_DELETED,"The Firebase app was deleted.")}function NA(e){return new bA(dA.INVALID_ROOT_OPERATION,"The operation '"+e+"' cannot be performed on a root reference, create a non-root reference using child, such as .child('file.png').")}function RA(e,t){return new bA(dA.INVALID_FORMAT,"String does not match format '"+e+"': "+t)}function PA(e){throw new bA(dA.INTERNAL_ERROR,"Internal error: "+e)}(Rt=dA=dA||{}).UNKNOWN="unknown",Rt.OBJECT_NOT_FOUND="object-not-found",Rt.BUCKET_NOT_FOUND="bucket-not-found",Rt.PROJECT_NOT_FOUND="project-not-found",Rt.QUOTA_EXCEEDED="quota-exceeded",Rt.UNAUTHENTICATED="unauthenticated",Rt.UNAUTHORIZED="unauthorized",Rt.UNAUTHORIZED_APP="unauthorized-app",Rt.RETRY_LIMIT_EXCEEDED="retry-limit-exceeded",Rt.INVALID_CHECKSUM="invalid-checksum",Rt.CANCELED="canceled",Rt.INVALID_EVENT_NAME="invalid-event-name",Rt.INVALID_URL="invalid-url",Rt.INVALID_DEFAULT_BUCKET="invalid-default-bucket",Rt.NO_DEFAULT_BUCKET="no-default-bucket",Rt.CANNOT_SLICE_BLOB="cannot-slice-blob",Rt.SERVER_FILE_WRONG_SIZE="server-file-wrong-size",Rt.NO_DOWNLOAD_URL="no-download-url",Rt.INVALID_ARGUMENT="invalid-argument",Rt.INVALID_ARGUMENT_COUNT="invalid-argument-count",Rt.APP_DELETED="app-deleted",Rt.INVALID_ROOT_OPERATION="invalid-root-operation",Rt.INVALID_FORMAT="invalid-format",Rt.INTERNAL_ERROR="internal-error",Rt.UNSUPPORTED_ENVIRONMENT="unsupported-environment";class DA{constructor(e,t){this.bucket=e,this.path_=t}get path(){return this.path_}get isRoot(){return 0===this.path.length}fullServerUrl(){const e=encodeURIComponent;return"/b/"+e(this.bucket)+"/o/"+e(this.path)}bucketOnlyServerUrl(){const e=encodeURIComponent;return"/b/"+e(this.bucket)+"/o"}static makeFromBucketSpec(t,e){let n;try{n=DA.makeFromUrl(t,e)}catch(e){return new DA(t,"")}if(""===n.path)return n;throw t=t,new bA(dA.INVALID_DEFAULT_BUCKET,"Invalid default bucket '"+t+"'.")}static makeFromUrl(e,t){let n=null;var r="([A-Za-z0-9.\\-_]+)";var i=new RegExp("^gs://"+r+"(/(.*))?$","i");function s(e){e.path_=decodeURIComponent(e.path)}var a=t.replace(/[.]/g,"\\."),o=new RegExp(`^https?://${a}/v[A-Za-z0-9_]+/b/${r}/o(/([^?#]*).*)?$`,"i"),a=t===yA?"(?:storage.googleapis.com|storage.cloud.google.com)":t,c=[{regex:i,indices:{bucket:1,path:3},postModify:function(e){"/"===e.path.charAt(e.path.length-1)&&(e.path_=e.path_.slice(0,-1))}},{regex:o,indices:{bucket:1,path:3},postModify:s},{regex:new RegExp(`^https?://${a}/${r}/([^?#]*)`,"i"),indices:{bucket:1,path:2},postModify:s}];for(let h=0;h<c.length;h++){const d=c[h];var l=d.regex.exec(e);if(l){var u=l[d.indices.bucket];let e=l[d.indices.path];e=e||"",n=new DA(u,e),d.postModify(n);break}}if(null==n)throw t=e,new bA(dA.INVALID_URL,"Invalid URL '"+t+"'.");return n}}class xA{constructor(e){this.promise_=Promise.reject(e)}getPromise(){return this.promise_}cancel(e=0){}}function OA(e){return"string"==typeof e||e instanceof String}function MA(e){return LA()&&e instanceof Blob}function LA(){return"undefined"!=typeof Blob}function FA(e,t,n,r){if(r<t)throw kA(`Invalid value for '${e}'. Expected ${t} or greater.`);if(n<r)throw kA(`Invalid value for '${e}'. Expected ${n} or less.`)}function UA(e,t,n){let r=null==n?`https://${t}`:t;return`${n}://${r}/v0${e}`}function VA(e){const t=encodeURIComponent;let n="?";for(const i in e){var r;e.hasOwnProperty(i)&&(r=t(i)+"="+t(e[i]),n=n+r+"&")}return n=n.slice(0,-1),n}function qA(e,t){var n=500<=e&&e<600,r=-1!==[408,429].indexOf(e),i=-1!==t.indexOf(e);return n||r||i}(Rt=pA=pA||{})[Rt.NO_ERROR=0]="NO_ERROR",Rt[Rt.NETWORK_ERROR=1]="NETWORK_ERROR",Rt[Rt.ABORT=2]="ABORT";class jA{constructor(e,t,n,r,i,s,a,o,c,l,u,h=!0){this.url_=e,this.method_=t,this.headers_=n,this.body_=r,this.successCodes_=i,this.additionalRetryCodes_=s,this.callback_=a,this.errorCallback_=o,this.timeout_=c,this.progressCallback_=l,this.connectionFactory_=u,this.retry=h,this.pendingConnection_=null,this.backoffId_=null,this.canceled_=!1,this.appDelete_=!1,this.promise_=new Promise((e,t)=>{this.resolve_=e,this.reject_=t,this.start_()})}start_(){var e=(n,e)=>{if(e)n(!1,new BA(!1,null,!0));else{const r=this.connectionFactory_();this.pendingConnection_=r;const i=e=>{var t=e.loaded,n=e.lengthComputable?e.total:-1;null!==this.progressCallback_&&this.progressCallback_(t,n)};null!==this.progressCallback_&&r.addUploadProgressListener(i),r.send(this.url_,this.method_,this.body_,this.headers_).then(()=>{null!==this.progressCallback_&&r.removeUploadProgressListener(i),this.pendingConnection_=null;var e=r.getErrorCode()===pA.NO_ERROR,t=r.getStatus();!e||qA(t,this.additionalRetryCodes_)&&this.retry?(e=r.getErrorCode()===pA.ABORT,n(!1,new BA(!1,null,e))):(t=-1!==this.successCodes_.indexOf(t),n(!0,new BA(t,r)))})}},t=(e,t)=>{const n=this.resolve_,r=this.reject_,i=t.connection;if(t.wasSuccessCode)try{var s=this.callback_(i,i.getResponse());void 0!==s?n(s):n()}catch(e){r(e)}else if(null!==i){const o=TA();o.serverResponse=i.getErrorText(),this.errorCallback_?r(this.errorCallback_(i,o)):r(o)}else{var a;t.canceled?(a=(this.appDelete_?AA:CA)(),r(a)):(a=EA(),r(a))}};this.canceled_?t(0,new BA(!1,null,!0)):this.backoffId_=function(t,n,e){let r=1,i=null,s=null,a=!1,o=0;function c(){return 2===o}let l=!1;function u(...e){l||(l=!0,n.apply(null,e))}function h(e){i=setTimeout(()=>{i=null,t(p,c())},e)}function d(){s&&clearTimeout(s)}function p(t,...n){if(l)d();else{if(t)return d(),void u.call(null,t,...n);if(c()||a)return d(),void u.call(null,t,...n);r<64&&(r*=2);let e;e=1===o?(o=2,0):1e3*(r+Math.random()),h(e)}}let f=!1;function g(e){f||(f=!0,d(),l||(null!==i?(e||(o=2),clearTimeout(i),h(0)):e||(o=1)))}return h(0),s=setTimeout(()=>{g(a=!0)},e),g}(e,t,this.timeout_)}getPromise(){return this.promise_}cancel(e){this.canceled_=!0,this.appDelete_=e||!1,null!==this.backoffId_&&(0,this.backoffId_)(!1),null!==this.pendingConnection_&&this.pendingConnection_.abort()}}class BA{constructor(e,t,n){this.wasSuccessCode=e,this.connection=t,this.canceled=!!n}}function zA(...t){const n="undefined"!=typeof BlobBuilder?BlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilder:void 0;if(void 0!==n){const r=new n;for(let e=0;e<t.length;e++)r.append(t[e]);return r.getBlob()}if(LA())return new Blob(t);throw new bA(dA.UNSUPPORTED_ENVIRONMENT,"This browser doesn't seem to support creating Blobs")}function KA(e){if("undefined"==typeof atob)throw new bA(dA.UNSUPPORTED_ENVIRONMENT,"base-64 is missing. Make sure to install the required polyfills. See https://firebase.google.com/docs/web/environments-js-sdk#polyfills for more information.");return atob(e)}const $A={RAW:"raw",BASE64:"base64",BASE64URL:"base64url",DATA_URL:"data_url"};class WA{constructor(e,t){this.data=e,this.contentType=t||null}}function GA(e,t){switch(e){case $A.RAW:return new WA(HA(t));case $A.BASE64:case $A.BASE64URL:return new WA(QA(e,t));case $A.DATA_URL:return new WA((n=t,(r=new YA(n)).base64?QA($A.BASE64,r.rest):function(e){let t;try{t=decodeURIComponent(e)}catch(e){throw RA($A.DATA_URL,"Malformed data URL.")}return HA(t)}(r.rest)),(n=t,new YA(n).contentType))}var n,r;throw TA()}function HA(t){const n=[];for(let s=0;s<t.length;s++){let e=t.charCodeAt(s);var r,i;e<=127?n.push(e):e<=2047?n.push(192|e>>6,128|63&e):55296==(64512&e)?s<t.length-1&&56320==(64512&t.charCodeAt(s+1))?(r=e,i=t.charCodeAt(++s),e=65536|(1023&r)<<10|1023&i,n.push(240|e>>18,128|e>>12&63,128|e>>6&63,128|63&e)):n.push(239,191,189):56320==(64512&e)?n.push(239,191,189):n.push(224|e>>12,128|e>>6&63,128|63&e)}return new Uint8Array(n)}function QA(t,e){switch(t){case $A.BASE64:var n=-1!==e.indexOf("-"),r=-1!==e.indexOf("_");if(n||r)throw RA(t,"Invalid character '"+(n?"-":"_")+"' found: is it base64url encoded?");break;case $A.BASE64URL:r=-1!==e.indexOf("+"),n=-1!==e.indexOf("/");if(r||n)throw RA(t,"Invalid character '"+(r?"+":"/")+"' found: is it base64 encoded?");e=e.replace(/-/g,"+").replace(/_/g,"/")}let i;try{i=KA(e)}catch(e){if(e.message.includes("polyfill"))throw e;throw RA(t,"Invalid character found")}const s=new Uint8Array(i.length);for(let a=0;a<i.length;a++)s[a]=i.charCodeAt(a);return s}class YA{constructor(e){this.base64=!1,this.contentType=null;var t,n,r=e.match(/^data:([^,]+)?,/);if(null===r)throw RA($A.DATA_URL,"Must be formatted 'data:[<mediatype>][;base64],<data>");const i=r[1]||null;null!=i&&(this.base64=(t=i,n=";base64",t.length>=n.length&&t.substring(t.length-n.length)===n),this.contentType=this.base64?i.substring(0,i.length-";base64".length):i),this.rest=e.substring(e.indexOf(",")+1)}}class JA{constructor(e,t){let n=0,r="";MA(e)?(this.data_=e,n=e.size,r=e.type):e instanceof ArrayBuffer?(t?this.data_=new Uint8Array(e):(this.data_=new Uint8Array(e.byteLength),this.data_.set(new Uint8Array(e))),n=this.data_.length):e instanceof Uint8Array&&(t?this.data_=e:(this.data_=new Uint8Array(e.length),this.data_.set(e)),n=e.length),this.size_=n,this.type_=r}size(){return this.size_}type(){return this.type_}slice(e,t){if(MA(this.data_)){var n=this.data_,n=(i=e,s=t,(r=n).webkitSlice?r.webkitSlice(i,s):r.mozSlice?r.mozSlice(i,s):r.slice?r.slice(i,s):null);return null===n?null:new JA(n)}var r,i,s,n=new Uint8Array(this.data_.buffer,e,t-e);return new JA(n,!0)}static getBlob(...e){if(LA()){var t=e.map(e=>e instanceof JA?e.data_:e);return new JA(zA.apply(null,t))}{const r=e.map(e=>OA(e)?GA($A.RAW,e).data:e.data_);let t=0;r.forEach(e=>{t+=e.byteLength});const i=new Uint8Array(t);let n=0;return r.forEach(e=>{for(let t=0;t<e.length;t++)i[n++]=e[t]}),new JA(i,!0)}}uploadData(){return this.data_}}function XA(e){let t;try{t=JSON.parse(e)}catch(e){return null}return"object"!=typeof(e=t)||Array.isArray(e)?null:t}function ZA(e){var t=e.lastIndexOf("/",e.length-2);return-1===t?e:e.slice(t+1)}function eN(e,t){return t}class tN{constructor(e,t,n,r){this.server=e,this.local=t||e,this.writable=!!n,this.xform=r||eN}}let nN=null;function rN(){if(nN)return nN;const e=[];e.push(new tN("bucket")),e.push(new tN("generation")),e.push(new tN("metageneration")),e.push(new tN("name","fullPath",!0));const t=new tN("name");t.xform=function(e,t){return!OA(t=t)||t.length<2?t:ZA(t)},e.push(t);const n=new tN("size");return n.xform=function(e,t){return void 0!==t?Number(t):t},e.push(n),e.push(new tN("timeCreated")),e.push(new tN("updated")),e.push(new tN("md5Hash",null,!0)),e.push(new tN("cacheControl",null,!0)),e.push(new tN("contentDisposition",null,!0)),e.push(new tN("contentEncoding",null,!0)),e.push(new tN("contentLanguage",null,!0)),e.push(new tN("contentType",null,!0)),e.push(new tN("metadata","customMetadata",!0)),nN=e,nN}function iN(n,r){Object.defineProperty(n,"ref",{get:function(){var e=n.bucket,t=n.fullPath,t=new DA(e,t);return r._makeStorageReference(t)}})}function sN(e,t,n){var r=XA(t);return null===r?null:function(e,t,n){const r={type:"file"};var i=n.length;for(let s=0;s<i;s++){const a=n[s];r[a.local]=a.xform(r,t[a.server])}return iN(r,e),r}(e,r,n)}function aN(e,t){const n={};var r=t.length;for(let s=0;s<r;s++){var i=t[s];i.writable&&(n[i.server]=e[i.local])}return JSON.stringify(n)}const oN="prefixes";function cN(e,t,n){var r=XA(n);return null===r?null:function(e,t,n){const r={prefixes:[],items:[],nextPageToken:n.nextPageToken};if(n[oN])for(const a of n[oN]){var i=a.replace(/\/$/,""),i=e._makeStorageReference(new DA(t,i));r.prefixes.push(i)}if(n.items)for(const o of n.items){var s=e._makeStorageReference(new DA(t,o.name));r.items.push(s)}return r}(e,t,r)}class lN{constructor(e,t,n,r){this.url=e,this.method=t,this.handler=n,this.timeout=r,this.urlParams={},this.headers={},this.body=null,this.errorHandler=null,this.progressCallback=null,this.successCodes=[200],this.additionalRetryCodes=[]}}function uN(e){if(!e)throw TA()}function hN(r,i){return function(e,t){var n=sN(r,t,i);return uN(null!==n),n}}function dN(r,i){return function(e,t){var n=cN(r,i,t);return uN(null!==n),n}}function pN(r,i){return function(e,t){var n=sN(r,t,i);return uN(null!==n),function(r,e,i,s){var t=XA(e);if(null===t)return null;if(!OA(t.downloadTokens))return null;const n=t.downloadTokens;if(0===n.length)return null;const a=encodeURIComponent,o=n.split(",");return o.map(e=>{var t=r.bucket,n=r.fullPath;return UA("/b/"+a(t)+"/o/"+a(n),i,s)+VA({alt:"media",token:e})})[0]}(n,t,r.host,r._protocol)}}function fN(i){return function(e,t){let n;var r;return n=401===e.getStatus()?e.getErrorText().includes("Firebase App Check token is invalid")?new bA(dA.UNAUTHORIZED_APP,"This app does not have permission to access Firebase Storage on this project."):new bA(dA.UNAUTHENTICATED,"User is not authenticated, please authenticate using Firebase Authentication and try again."):402===e.getStatus()?(r=i.bucket,new bA(dA.QUOTA_EXCEEDED,"Quota for bucket '"+r+"' exceeded, please view quota on https://firebase.google.com/pricing/.")):403===e.getStatus()?(r=i.path,new bA(dA.UNAUTHORIZED,"User does not have permission to access '"+r+"'.")):t,n.status=e.getStatus(),n.serverResponse=t.serverResponse,n}}function gN(r){const i=fN(r);return function(e,t){let n=i(e,t);return 404===e.getStatus()&&(n=(e=r.path,new bA(dA.OBJECT_NOT_FOUND,"Object '"+e+"' does not exist."))),n.serverResponse=t.serverResponse,n}}function mN(e,t,n){var r=UA(t.fullServerUrl(),e.host,e._protocol),i=e.maxOperationRetryTime;const s=new lN(r,"GET",hN(e,n),i);return s.errorHandler=gN(t),s}function vN(e,t,n){const r=Object.assign({},n);return r.fullPath=e.path,r.size=t.size(),r.contentType||(r.contentType=(e=t,(t=null)&&t.contentType||e&&e.type()||"application/octet-stream")),r}function _N(e,t,n,r,i){var s=t.bucketOnlyServerUrl();const a={"X-Goog-Upload-Protocol":"multipart"};var o=function(){let e="";for(let t=0;t<2;t++)e+=Math.random().toString().slice(2);return e}();a["Content-Type"]="multipart/related; boundary="+o;var c=vN(t,r,i),l="--"+o+"\r\nContent-Type: application/json; charset=utf-8\r\n\r\n"+aN(c,n)+"\r\n--"+o+"\r\nContent-Type: "+c.contentType+"\r\n\r\n",o="\r\n--"+o+"--";const u=JA.getBlob(l,r,o);if(null===u)throw SA();o={name:c.fullPath},c=UA(s,e.host,e._protocol),s=e.maxUploadRetryTime;const h=new lN(c,"POST",hN(e,n),s);return h.urlParams=o,h.headers=a,h.body=u.uploadData(),h.errorHandler=fN(t),h}class yN{constructor(e,t,n,r){this.current=e,this.total=t,this.finalized=!!n,this.metadata=r||null}}function wN(e,t){let n=null;try{n=e.getResponseHeader("X-Goog-Upload-Status")}catch(e){uN(!1)}const r=t||["active"];return uN(!!n&&-1!==r.indexOf(n)),n}function bN(e,t,n,r,i){var s=t.bucketOnlyServerUrl(),a=vN(t,r,i),o={name:a.fullPath},c=UA(s,e.host,e._protocol),l={"X-Goog-Upload-Protocol":"resumable","X-Goog-Upload-Command":"start","X-Goog-Upload-Header-Content-Length":`${r.size()}`,"X-Goog-Upload-Header-Content-Type":a.contentType,"Content-Type":"application/json; charset=utf-8"},s=aN(a,n),a=e.maxUploadRetryTime;const u=new lN(c,"POST",function(e){wN(e);let t;try{t=e.getResponseHeader("X-Goog-Upload-URL")}catch(e){uN(!1)}return uN(OA(t)),t},a);return u.urlParams=o,u.headers=l,u.body=s,u.errorHandler=fN(t),u}function IN(e,t,n,i){var r=e.maxUploadRetryTime;const s=new lN(n,"POST",function(e){var t=wN(e,["active","final"]);let n=null;try{n=e.getResponseHeader("X-Goog-Upload-Size-Received")}catch(e){uN(!1)}n||uN(!1);var r=Number(n);return uN(!isNaN(r)),new yN(r,i.size(),"final"===t)},r);return s.headers={"X-Goog-Upload-Command":"query"},s.errorHandler=fN(t),s}function TN(e,a,t,o,n,c,r,i){const l=new yN(0,0);if(r?(l.current=r.current,l.total=r.total):(l.current=0,l.total=o.size()),o.size()!==l.total)throw new bA(dA.SERVER_FILE_WRONG_SIZE,"Server recorded incorrect upload file size, please retry the upload.");var s=l.total-l.current;let u=s;0<n&&(u=Math.min(u,n));var h=l.current,d=h+u;let p="";p=0===u?"finalize":s===u?"upload, finalize":"upload";s={"X-Goog-Upload-Command":p,"X-Goog-Upload-Offset":`${l.current}`};const f=o.slice(h,d);if(null===f)throw SA();d=a.maxUploadRetryTime;const g=new lN(t,"POST",function(e,t){var n=wN(e,["active","final"]),r=l.current+u,i=o.size();let s;return s="final"===n?hN(a,c)(e,t):null,new yN(r,i,"final"===n,s)},d);return g.headers=s,g.body=f.uploadData(),g.progressCallback=i||null,g.errorHandler=fN(e),g}const EN={STATE_CHANGED:"state_changed"},CN={RUNNING:"running",PAUSED:"paused",SUCCESS:"success",CANCELED:"canceled",ERROR:"error"};function SN(e){switch(e){case"running":case"pausing":case"canceling":return CN.RUNNING;case"paused":return CN.PAUSED;case"success":return CN.SUCCESS;case"canceled":return CN.CANCELED;default:return CN.ERROR}}class kN{constructor(e,t,n){var r;"function"==typeof e||null!=t||null!=n?(this.next=e,this.error=null!=t?t:void 0,this.complete=null!=n?n:void 0):(this.next=(r=e).next,this.error=r.error,this.complete=r.complete)}}function AN(t){return(...e)=>{Promise.resolve().then(()=>t(...e))}}class NN extends class{constructor(){this.sent_=!1,this.xhr_=new XMLHttpRequest,this.initXhr(),this.errorCode_=pA.NO_ERROR,this.sendPromise_=new Promise(e=>{this.xhr_.addEventListener("abort",()=>{this.errorCode_=pA.ABORT,e()}),this.xhr_.addEventListener("error",()=>{this.errorCode_=pA.NETWORK_ERROR,e()}),this.xhr_.addEventListener("load",()=>{e()})})}send(e,t,n,r){if(this.sent_)throw PA("cannot .send() more than once");if(this.sent_=!0,this.xhr_.open(t,e,!0),void 0!==r)for(const i in r)r.hasOwnProperty(i)&&this.xhr_.setRequestHeader(i,r[i].toString());return void 0!==n?this.xhr_.send(n):this.xhr_.send(),this.sendPromise_}getErrorCode(){if(!this.sent_)throw PA("cannot .getErrorCode() before sending");return this.errorCode_}getStatus(){if(!this.sent_)throw PA("cannot .getStatus() before sending");try{return this.xhr_.status}catch(e){return-1}}getResponse(){if(!this.sent_)throw PA("cannot .getResponse() before sending");return this.xhr_.response}getErrorText(){if(!this.sent_)throw PA("cannot .getErrorText() before sending");return this.xhr_.statusText}abort(){this.xhr_.abort()}getResponseHeader(e){return this.xhr_.getResponseHeader(e)}addUploadProgressListener(e){null!=this.xhr_.upload&&this.xhr_.upload.addEventListener("progress",e)}removeUploadProgressListener(e){null!=this.xhr_.upload&&this.xhr_.upload.removeEventListener("progress",e)}}{initXhr(){this.xhr_.responseType="text"}}function RN(){return new NN}class PN{constructor(e,t,n=null){this._transferred=0,this._needToFetchStatus=!1,this._needToFetchMetadata=!1,this._observers=[],this._error=void 0,this._uploadUrl=void 0,this._request=void 0,this._chunkMultiplier=1,this._resolve=void 0,this._reject=void 0,this._ref=e,this._blob=t,this._metadata=n,this._mappings=rN(),this._resumable=this._shouldDoResumable(this._blob),this._state="running",this._errorHandler=e=>{if(this._request=void 0,this._chunkMultiplier=1,e._codeEquals(dA.CANCELED))this._needToFetchStatus=!0,this.completeTransitions_();else{var t=this.isExponentialBackoffExpired();if(qA(e.status,[])){if(!t)return this.sleepTime=Math.max(2*this.sleepTime,1e3),this._needToFetchStatus=!0,void this.completeTransitions_();e=EA()}this._error=e,this._transition("error")}},this._metadataErrorHandler=e=>{this._request=void 0,e._codeEquals(dA.CANCELED)?this.completeTransitions_():(this._error=e,this._transition("error"))},this.sleepTime=0,this.maxSleepTime=this._ref.storage.maxUploadRetryTime,this._promise=new Promise((e,t)=>{this._resolve=e,this._reject=t,this._start()}),this._promise.then(null,()=>{})}isExponentialBackoffExpired(){return this.sleepTime>this.maxSleepTime}_makeProgressCallback(){const t=this._transferred;return e=>this._updateProgress(t+e)}_shouldDoResumable(e){return 262144<e.size()}_start(){"running"===this._state&&void 0===this._request&&(this._resumable?void 0===this._uploadUrl?this._createResumable():this._needToFetchStatus?this._fetchStatus():this._needToFetchMetadata?this._fetchMetadata():this.pendingTimeout=setTimeout(()=>{this.pendingTimeout=void 0,this._continueUpload()},this.sleepTime):this._oneShotUpload())}_resolveToken(n){Promise.all([this._ref.storage._getAuthToken(),this._ref.storage._getAppCheckToken()]).then(([e,t])=>{switch(this._state){case"running":n(e,t);break;case"canceling":this._transition("canceled");break;case"pausing":this._transition("paused")}})}_createResumable(){this._resolveToken((e,t)=>{var n=bN(this._ref.storage,this._ref._location,this._mappings,this._blob,this._metadata);const r=this._ref.storage._makeRequest(n,RN,e,t);this._request=r,r.getPromise().then(e=>{this._request=void 0,this._uploadUrl=e,this._needToFetchStatus=!1,this.completeTransitions_()},this._errorHandler)})}_fetchStatus(){const i=this._uploadUrl;this._resolveToken((e,t)=>{var n=IN(this._ref.storage,this._ref._location,i,this._blob);const r=this._ref.storage._makeRequest(n,RN,e,t);this._request=r,r.getPromise().then(e=>{this._request=void 0,this._updateProgress(e.current),this._needToFetchStatus=!1,e.finalized&&(this._needToFetchMetadata=!0),this.completeTransitions_()},this._errorHandler)})}_continueUpload(){const i=262144*this._chunkMultiplier,s=new yN(this._transferred,this._blob.size()),a=this._uploadUrl;this._resolveToken((e,t)=>{let n;try{n=TN(this._ref._location,this._ref.storage,a,this._blob,i,this._mappings,s,this._makeProgressCallback())}catch(e){return this._error=e,void this._transition("error")}const r=this._ref.storage._makeRequest(n,RN,e,t,!1);this._request=r,r.getPromise().then(e=>{this._increaseMultiplier(),this._request=void 0,this._updateProgress(e.current),e.finalized?(this._metadata=e.metadata,this._transition("success")):this.completeTransitions_()},this._errorHandler)})}_increaseMultiplier(){2*(262144*this._chunkMultiplier)<33554432&&(this._chunkMultiplier*=2)}_fetchMetadata(){this._resolveToken((e,t)=>{var n=mN(this._ref.storage,this._ref._location,this._mappings);const r=this._ref.storage._makeRequest(n,RN,e,t);this._request=r,r.getPromise().then(e=>{this._request=void 0,this._metadata=e,this._transition("success")},this._metadataErrorHandler)})}_oneShotUpload(){this._resolveToken((e,t)=>{var n=_N(this._ref.storage,this._ref._location,this._mappings,this._blob,this._metadata);const r=this._ref.storage._makeRequest(n,RN,e,t);this._request=r,r.getPromise().then(e=>{this._request=void 0,this._metadata=e,this._updateProgress(this._blob.size()),this._transition("success")},this._errorHandler)})}_updateProgress(e){var t=this._transferred;this._transferred=e,this._transferred!==t&&this._notifyObservers()}_transition(e){if(this._state!==e)switch(e){case"canceling":case"pausing":this._state=e,void 0!==this._request?this._request.cancel():this.pendingTimeout&&(clearTimeout(this.pendingTimeout),this.pendingTimeout=void 0,this.completeTransitions_());break;case"running":var t="paused"===this._state;this._state=e,t&&(this._notifyObservers(),this._start());break;case"paused":this._state=e,this._notifyObservers();break;case"canceled":this._error=CA(),this._state=e,this._notifyObservers();break;case"error":case"success":this._state=e,this._notifyObservers()}}completeTransitions_(){switch(this._state){case"pausing":this._transition("paused");break;case"canceling":this._transition("canceled");break;case"running":this._start()}}get snapshot(){var e=SN(this._state);return{bytesTransferred:this._transferred,totalBytes:this._blob.size(),state:e,metadata:this._metadata,task:this,ref:this._ref}}on(e,t,n,r){const i=new kN(t||void 0,n||void 0,r||void 0);return this._addObserver(i),()=>{this._removeObserver(i)}}then(e,t){return this._promise.then(e,t)}catch(e){return this.then(null,e)}_addObserver(e){this._observers.push(e),this._notifyObserver(e)}_removeObserver(e){var t=this._observers.indexOf(e);-1!==t&&this._observers.splice(t,1)}_notifyObservers(){this._finishPromise();const e=this._observers.slice();e.forEach(e=>{this._notifyObserver(e)})}_finishPromise(){if(void 0!==this._resolve){let e=!0;switch(SN(this._state)){case CN.SUCCESS:AN(this._resolve.bind(null,this.snapshot))();break;case CN.CANCELED:case CN.ERROR:const t=this._reject;AN(t.bind(null,this._error))();break;default:e=!1}e&&(this._resolve=void 0,this._reject=void 0)}}_notifyObserver(e){switch(SN(this._state)){case CN.RUNNING:case CN.PAUSED:e.next&&AN(e.next.bind(e,this.snapshot))();break;case CN.SUCCESS:e.complete&&AN(e.complete.bind(e))();break;case CN.CANCELED:case CN.ERROR:default:e.error&&AN(e.error.bind(e,this._error))()}}resume(){var e="paused"===this._state||"pausing"===this._state;return e&&this._transition("running"),e}pause(){var e="running"===this._state;return e&&this._transition("pausing"),e}cancel(){var e="running"===this._state||"pausing"===this._state;return e&&this._transition("canceling"),e}}class DN{constructor(e,t){this._service=e,t instanceof DA?this._location=t:this._location=DA.makeFromUrl(t,e.host)}toString(){return"gs://"+this._location.bucket+"/"+this._location.path}_newRef(e,t){return new DN(e,t)}get root(){var e=new DA(this._location.bucket,"");return this._newRef(this._service,e)}get bucket(){return this._location.bucket}get fullPath(){return this._location.path}get name(){return ZA(this._location.path)}get storage(){return this._service}get parent(){var e=function(e){if(0===e.length)return null;var t=e.lastIndexOf("/");return-1===t?"":e.slice(0,t)}(this._location.path);if(null===e)return null;e=new DA(this._location.bucket,e);return new DN(this._service,e)}_throwIfRoot(e){if(""===this._location.path)throw NA(e)}}function xN(e){const t={prefixes:[],items:[]};return async function e(t,n,r){const i={pageToken:r};const s=await ON(t,i);n.prefixes.push(...s.prefixes);n.items.push(...s.items);null!=s.nextPageToken&&await e(t,n,s.nextPageToken)}(e,t).then(()=>t)}function ON(e,t){null!=t&&"number"==typeof t.maxResults&&FA("options.maxResults",1,1e3,t.maxResults);var n=t||{},n=function(e,t,n,r,i){const s={};t.isRoot?s.prefix="":s.prefix=t.path+"/",n&&0<n.length&&(s.delimiter=n),r&&(s.pageToken=r),i&&(s.maxResults=i);var a=UA(t.bucketOnlyServerUrl(),e.host,e._protocol),o=e.maxOperationRetryTime;const c=new lN(a,"GET",dN(e,t.bucket),o);return c.urlParams=s,c.errorHandler=fN(t),c}(e.storage,e._location,"/",n.pageToken,n.maxResults);return e.storage.makeRequestWithTokens(n,RN)}function MN(e,t){e._throwIfRoot("updateMetadata");var n=function(e,t,n,r){var i=UA(t.fullServerUrl(),e.host,e._protocol),s=aN(n,r),a=e.maxOperationRetryTime;const o=new lN(i,"PATCH",hN(e,r),a);return o.headers={"Content-Type":"application/json; charset=utf-8"},o.body=s,o.errorHandler=gN(t),o}(e.storage,e._location,t,rN());return e.storage.makeRequestWithTokens(n,RN)}function LN(e){e._throwIfRoot("getDownloadURL");var t=function(e,t,n){var r=UA(t.fullServerUrl(),e.host,e._protocol),i=e.maxOperationRetryTime;const s=new lN(r,"GET",pN(e,n),i);return s.errorHandler=gN(t),s}(e.storage,e._location,rN());return e.storage.makeRequestWithTokens(t,RN).then(e=>{if(null===e)throw new bA(dA.NO_DOWNLOAD_URL,"The given file does not have any download URLs.");return e})}function FN(e){e._throwIfRoot("deleteObject");var t=function(e,t){var n=UA(t.fullServerUrl(),e.host,e._protocol),r=e.maxOperationRetryTime;const i=new lN(n,"DELETE",function(e,t){},r);return i.successCodes=[200,204],i.errorHandler=gN(t),i}(e.storage,e._location);return e.storage.makeRequestWithTokens(t,RN)}function UN(e,t){var n,r=(n=e._location.path,r=t.split("/").filter(e=>0<e.length).join("/"),0===n.length?r:n+"/"+r),r=new DA(e._location.bucket,r);return new DN(e.storage,r)}function VN(e,t){if(e instanceof BN){var n=e;if(null==n._bucket)throw new bA(dA.NO_DEFAULT_BUCKET,"No default bucket found. Did you set the '"+wA+"' property when initializing the app?");n=new DN(n,n._bucket);return null!=t?VN(n,t):n}return void 0!==t?UN(e,t):e}function qN(e,t){if(t&&/^[A-Za-z]+:\/\//.test(t)){if(e instanceof BN)return n=e,r=t,new DN(n,r);throw kA("To use ref(service, url), the first argument must be a Storage instance.")}return VN(e,t);var n,r}function jN(e,t){var n=null==t?void 0:t[wA];return null==n?null:DA.makeFromBucketSpec(n,e)}class BN{constructor(e,t,n,r,i){this.app=e,this._authProvider=t,this._appCheckProvider=n,this._url=r,this._firebaseVersion=i,this._bucket=null,this._host=yA,this._protocol="https",this._appId=null,this._deleted=!1,this._maxOperationRetryTime=12e4,this._maxUploadRetryTime=6e5,this._requests=new Set,this._bucket=null!=r?DA.makeFromBucketSpec(r,this._host):jN(this._host,this.app.options)}get host(){return this._host}set host(e){this._host=e,null!=this._url?this._bucket=DA.makeFromBucketSpec(this._url,e):this._bucket=jN(e,this.app.options)}get maxUploadRetryTime(){return this._maxUploadRetryTime}set maxUploadRetryTime(e){FA("time",0,Number.POSITIVE_INFINITY,e),this._maxUploadRetryTime=e}get maxOperationRetryTime(){return this._maxOperationRetryTime}set maxOperationRetryTime(e){FA("time",0,Number.POSITIVE_INFINITY,e),this._maxOperationRetryTime=e}async _getAuthToken(){if(this._overrideAuthToken)return this._overrideAuthToken;const e=this._authProvider.getImmediate({optional:!0});if(e){var t=await e.getToken();if(null!==t)return t.accessToken}return null}async _getAppCheckToken(){const e=this._appCheckProvider.getImmediate({optional:!0});return e?(await e.getToken()).token:null}_delete(){return this._deleted||(this._deleted=!0,this._requests.forEach(e=>e.cancel()),this._requests.clear()),Promise.resolve()}_makeStorageReference(e){return new DN(this,e)}_makeRequest(e,t,n,r,i=!0){if(this._deleted)return new xA(AA());{const u=([s,a,o,e,n,r,t=!0]=[e,this._appId,n,r,t,this._firebaseVersion,i],c=VA(s.urlParams),l=s.url+c,c=Object.assign({},s.headers),i=c,(a=a)&&(i["X-Firebase-GMPID"]=a),a=c,null!==(o=o)&&0<o.length&&(a.Authorization="Firebase "+o),r=r,c["X-Firebase-Storage-Version"]="webjs/"+(null!=r?r:"AppManager"),r=c,null!==(e=e)&&(r["X-Firebase-AppCheck"]=e),new jA(l,s.method,c,s.body,s.successCodes,s.additionalRetryCodes,s.handler,s.errorHandler,s.timeout,s.progressCallback,n,t));return this._requests.add(u),u.getPromise().then(()=>this._requests.delete(u),()=>this._requests.delete(u)),u}var s,a,o,c,l}async makeRequestWithTokens(e,t){var[n,r]=await Promise.all([this._getAuthToken(),this._getAppCheckToken()]);return this._makeRequest(e,t,n,r).getPromise()}}const zN="@firebase/storage";function KN(e,t,n){return e=le(e),t=t,n=n,(e=e)._throwIfRoot("uploadBytesResumable"),new PN(e,new JA(t),n)}function $N(e){return function(e){e._throwIfRoot("getMetadata");var t=mN(e.storage,e._location,rN());return e.storage.makeRequestWithTokens(t,RN)}(e=le(e))}function WN(e,t){return qN(e=le(e),t)}function GN(e,t,n,r={}){!function(e,t,n,r={}){e.host=`${t}:${n}`,e._protocol="http";var i=r["mockUserToken"];i&&(e._overrideAuthToken="string"==typeof i?i:w(i,e.app.options.projectId))}(e,t,n,r)}function HN(e,{instanceIdentifier:t}){var n=e.getProvider("app").getImmediate(),r=e.getProvider("auth-internal"),i=e.getProvider("app-check-internal");return new BN(n,r,i,t,it)}Je(new ue("storage",HN,"PUBLIC").setMultipleInstances(!0)),ct(zN,"0.13.2",""),ct(zN,"0.13.2","esm2017");class QN{constructor(e,t,n){this._delegate=e,this.task=t,this.ref=n}get bytesTransferred(){return this._delegate.bytesTransferred}get metadata(){return this._delegate.metadata}get state(){return this._delegate.state}get totalBytes(){return this._delegate.totalBytes}}class YN{constructor(e,t){this._delegate=e,this._ref=t,this.cancel=this._delegate.cancel.bind(this._delegate),this.catch=this._delegate.catch.bind(this._delegate),this.pause=this._delegate.pause.bind(this._delegate),this.resume=this._delegate.resume.bind(this._delegate)}get snapshot(){return new QN(this._delegate.snapshot,this,this._ref)}then(t,e){return this._delegate.then(e=>{if(t)return t(new QN(e,this,this._ref))},e)}on(e,t,n,r){let i=void 0;return t&&(i="function"==typeof t?e=>t(new QN(e,this,this._ref)):{next:t.next?e=>t.next(new QN(e,this,this._ref)):void 0,complete:t.complete||void 0,error:t.error||void 0}),this._delegate.on(e,i,n||void 0,r||void 0)}}class JN{constructor(e,t){this._delegate=e,this._service=t}get prefixes(){return this._delegate.prefixes.map(e=>new XN(e,this._service))}get items(){return this._delegate.items.map(e=>new XN(e,this._service))}get nextPageToken(){return this._delegate.nextPageToken||null}}class XN{constructor(e,t){this._delegate=e,this.storage=t}get name(){return this._delegate.name}get bucket(){return this._delegate.bucket}get fullPath(){return this._delegate.fullPath}toString(){return this._delegate.toString()}child(e){var t=UN(this._delegate,e);return new XN(t,this.storage)}get root(){return new XN(this._delegate.root,this.storage)}get parent(){var e=this._delegate.parent;return null==e?null:new XN(e,this.storage)}put(e,t){return this._throwIfRoot("put"),new YN(KN(this._delegate,e,t),this)}putString(e,t=$A.RAW,n){this._throwIfRoot("putString");var r=GA(t,e);const i=Object.assign({},n);return null==i.contentType&&null!=r.contentType&&(i.contentType=r.contentType),new YN(new PN(this._delegate,new JA(r.data,!0),i),this)}listAll(){return xN(le(this._delegate)).then(e=>new JN(e,this.storage))}list(e){return t=this._delegate,e=e||void 0,ON(t=le(t),e).then(e=>new JN(e,this.storage));var t}getMetadata(){return $N(this._delegate)}updateMetadata(e){return MN(le(this._delegate),e)}getDownloadURL(){return LN(le(this._delegate))}delete(){return this._throwIfRoot("delete"),FN(le(this._delegate))}_throwIfRoot(e){if(""===this._delegate._location.path)throw NA(e)}}class ZN{constructor(e,t){this.app=e,this._delegate=t}get maxOperationRetryTime(){return this._delegate.maxOperationRetryTime}get maxUploadRetryTime(){return this._delegate.maxUploadRetryTime}ref(e){if(eR(e))throw kA("ref() expected a child path but got a URL, use refFromURL instead.");return new XN(WN(this._delegate,e),this)}refFromURL(e){if(!eR(e))throw kA("refFromURL() expected a full URL but got a child path, use ref() instead.");try{DA.makeFromUrl(e,this._delegate.host)}catch(e){throw kA("refFromUrl() expected a valid full URL but got an invalid one.")}return new XN(WN(this._delegate,e),this)}setMaxUploadRetryTime(e){this._delegate.maxUploadRetryTime=e}setMaxOperationRetryTime(e){this._delegate.maxOperationRetryTime=e}useEmulator(e,t,n={}){GN(this._delegate,e,t,n)}}function eR(e){return/^[A-Za-z]+:\/\//.test(e)}function tR(e,{instanceIdentifier:t}){var n=e.getProvider("app-compat").getImmediate(),r=e.getProvider("storage").getImmediate({identifier:t});return new ZN(n,r)}fA=Nt,gA={TaskState:CN,TaskEvent:EN,StringFormat:$A,Storage:ZN,Reference:XN},fA.INTERNAL.registerComponent(new ue("storage-compat",tR,"PUBLIC").setServiceProps(gA).setMultipleInstances(!0)),fA.registerVersion("@firebase/storage-compat","0.3.12");const nR="@firebase/performance",rR="0.6.9",iR=rR,sR="FB-PERF-TRACE-MEASURE",aR="@firebase/performance/config",oR="@firebase/performance/configexpire";var cR,lR,uR,hR="Performance";const dR=new O("performance",hR,{"trace started":"Trace {$traceName} was started before.","trace stopped":"Trace {$traceName} is not running.","nonpositive trace startTime":"Trace {$traceName} startTime should be positive.","nonpositive trace duration":"Trace {$traceName} duration should be positive.","no window":"Window is not available.","no app id":"App id is not available.","no project id":"Project id is not available.","no api key":"Api key is not available.","invalid cc log":"Attempted to queue invalid cc event","FB not default":"Performance can only start when Firebase app instance is the default one.","RC response not ok":"RC response is not ok","invalid attribute name":"Attribute name {$attributeName} is invalid.","invalid attribute value":"Attribute value {$attributeValue} is invalid.","invalid custom metric name":"Custom metric name {$customMetricName} is invalid","invalid String merger input":"Input for String merger is invalid, contact support team to resolve.","already initialized":"initializePerformance() has already been called with different options. To avoid this error, call initializePerformance() with the same options as when it was originally called, or call getPerformance() to return the already initialized instance."}),pR=new ye(hR);pR.logLevel=m.INFO;let fR,gR;class mR{constructor(e){if(!(this.window=e))throw dR.create("no window");this.performance=e.performance,this.PerformanceObserver=e.PerformanceObserver,this.windowLocation=e.location,this.navigator=e.navigator,this.document=e.document,this.navigator&&this.navigator.cookieEnabled&&(this.localStorage=e.localStorage),e.perfMetrics&&e.perfMetrics.onFirstInputDelay&&(this.onFirstInputDelay=e.perfMetrics.onFirstInputDelay)}getUrl(){return this.windowLocation.href.split("?")[0]}mark(e){this.performance&&this.performance.mark&&this.performance.mark(e)}measure(e,t,n){this.performance&&this.performance.measure&&this.performance.measure(e,t,n)}getEntriesByType(e){return this.performance&&this.performance.getEntriesByType?this.performance.getEntriesByType(e):[]}getEntriesByName(e){return this.performance&&this.performance.getEntriesByName?this.performance.getEntriesByName(e):[]}getTimeOrigin(){return this.performance&&(this.performance.timeOrigin||this.performance.timing.navigationStart)}requiredApisAvailable(){return fetch&&Promise&&D()?!!R()||(pR.info("IndexedDB is not supported by current browser"),!1):(pR.info("Firebase Performance cannot start if browser does not support fetch and Promise or cookie is disabled."),!1)}setupObserver(e,n){if(this.PerformanceObserver){const t=new this.PerformanceObserver(e=>{for(const t of e.getEntries())n(t)});t.observe({entryTypes:[e]})}}static getInstance(){return void 0===fR&&(fR=new mR(gR)),fR}}let vR;function _R(e,t){var n=e.length-t.length;if(n<0||1<n)throw dR.create("invalid String merger input");const r=[];for(let i=0;i<e.length;i++)r.push(e.charAt(i)),t.length>i&&r.push(t.charAt(i));return r.join("")}let yR;class wR{constructor(){this.instrumentationEnabled=!0,this.dataCollectionEnabled=!0,this.loggingEnabled=!1,this.tracesSamplingRate=1,this.networkRequestsSamplingRate=1,this.logEndPointUrl="https://firebaselogging.googleapis.com/v0cc/log?format=json_proto",this.flTransportEndpointUrl=_R("hts/frbslgigp.ogepscmv/ieo/eaylg","tp:/ieaeogn-agolai.o/1frlglgc/o"),this.transportKey=_R("AzSC8r6ReiGqFMyfvgow","Iayx0u-XT3vksVM-pIV"),this.logSource=462,this.logTraceAfterSampling=!1,this.logNetworkAfterSampling=!1,this.configTimeToLive=12}getFlTransportFullUrl(){return this.flTransportEndpointUrl.concat("?key=",this.transportKey)}static getInstance(){return void 0===yR&&(yR=new wR),yR}}(Rt=cR=cR||{})[Rt.UNKNOWN=0]="UNKNOWN",Rt[Rt.VISIBLE=1]="VISIBLE",Rt[Rt.HIDDEN=2]="HIDDEN";const bR=["firebase_","google_","ga_"],IR=new RegExp("^[a-zA-Z]\\w*$");function TR(){switch(mR.getInstance().document.visibilityState){case"visible":return cR.VISIBLE;case"hidden":return cR.HIDDEN;default:return cR.UNKNOWN}}function ER(e){var t=null===(t=e.options)||void 0===t?void 0:t.appId;if(!t)throw dR.create("no app id");return t}const CR="0.0.1",SR={loggingEnabled:!0},kR="FIREBASE_INSTALLATIONS_AUTH";function AR(e,t){var r,i,n=function(){const e=mR.getInstance().localStorage;if(e){var t=e.getItem(oR);if(t&&function(e){return Number(e)>Date.now()}(t)){t=e.getItem(aR);if(t)try{return JSON.parse(t)}catch(e){return}}}}();return n?(RR(n),Promise.resolve()):(i=t,function(e){const t=e.getToken();return t.then(e=>{}),t}((r=e).installations).then(e=>{var t=function(e){var t=null===(t=e.options)||void 0===t?void 0:t.projectId;if(!t)throw dR.create("no project id");return t}(r.app),n=function(e){var t=null===(t=e.options)||void 0===t?void 0:t.apiKey;if(!t)throw dR.create("no api key");return t}(r.app),n=new Request(`https://firebaseremoteconfig.googleapis.com/v1/projects/${t}/namespaces/fireperf:fetch?key=${n}`,{method:"POST",headers:{Authorization:`${kR} ${e}`},body:JSON.stringify({app_instance_id:i,app_instance_id_token:e,app_id:ER(r.app),app_version:iR,sdk_version:CR})});return fetch(n).then(e=>{if(e.ok)return e.json();throw dR.create("RC response not ok")})}).catch(()=>{pR.info(NR)}).then(RR).then(e=>function(e){const t=mR.getInstance().localStorage;e&&t&&(t.setItem(aR,JSON.stringify(e)),t.setItem(oR,String(Date.now()+60*wR.getInstance().configTimeToLive*60*1e3)))}(e),()=>{}))}const NR="Could not fetch config, will use default configs";function RR(e){if(!e)return e;const t=wR.getInstance();var n=e.entries||{};return void 0!==n.fpr_enabled?t.loggingEnabled="true"===String(n.fpr_enabled):t.loggingEnabled=SR.loggingEnabled,n.fpr_log_source?t.logSource=Number(n.fpr_log_source):SR.logSource&&(t.logSource=SR.logSource),n.fpr_log_endpoint_url?t.logEndPointUrl=n.fpr_log_endpoint_url:SR.logEndPointUrl&&(t.logEndPointUrl=SR.logEndPointUrl),n.fpr_log_transport_key?t.transportKey=n.fpr_log_transport_key:SR.transportKey&&(t.transportKey=SR.transportKey),void 0!==n.fpr_vc_network_request_sampling_rate?t.networkRequestsSamplingRate=Number(n.fpr_vc_network_request_sampling_rate):void 0!==SR.networkRequestsSamplingRate&&(t.networkRequestsSamplingRate=SR.networkRequestsSamplingRate),void 0!==n.fpr_vc_trace_sampling_rate?t.tracesSamplingRate=Number(n.fpr_vc_trace_sampling_rate):void 0!==SR.tracesSamplingRate&&(t.tracesSamplingRate=SR.tracesSamplingRate),t.logTraceAfterSampling=PR(t.tracesSamplingRate),t.logNetworkAfterSampling=PR(t.networkRequestsSamplingRate),e}function PR(e){return Math.random()<=e}let DR=1,xR;function OR(e){var t;return DR=2,xR=xR||(t=e,function(){const n=mR.getInstance().document;return new Promise(e=>{if(n&&"complete"!==n.readyState){const t=()=>{"complete"===n.readyState&&(n.removeEventListener("readystatechange",t),e())};n.addEventListener("readystatechange",t)}else e()})}().then(()=>function(e){const t=e.getId();return t.then(e=>{vR=e}),t}(t.installations)).then(e=>AR(t,e)).then(()=>MR(),()=>MR())),xR}function MR(){DR=3}const LR=1e4,FR=3,UR=1e3;let VR=FR,qR=[],jR=!1;function BR(e){setTimeout(()=>{if(0!==VR)return qR.length?void function(){const e=qR.splice(0,UR),t=e.map(e=>({source_extension_json_proto3:e.message,event_time_ms:String(e.eventTime)})),n={request_time_ms:String(Date.now()),client_info:{client_type:1,js_client_info:{}},log_source:wR.getInstance().logSource,log_event:t};!function(e,r){return function(e){var t=wR.getInstance().getFlTransportFullUrl();return fetch(t,{method:"POST",body:JSON.stringify(e)})}(e).then(e=>(e.ok||pR.info("Call to Firebase backend failed."),e.json())).then(e=>{var t=Number(e.nextRequestWaitMillis);let n=LR;isNaN(t)||(n=Math.max(t,n));t=e.logResponseDetails;Array.isArray(t)&&0<t.length&&"RETRY_REQUEST_LATER"===t[0].responseAction&&(qR=[...r,...qR],pR.info("Retry transport request later.")),VR=FR,BR(n)})}(n,e).catch(()=>{qR=[...e,...qR],VR--,pR.info(`Tries left: ${VR}.`),BR(LR)})}():BR(LR)},e)}function zR(t){return(...e)=>{!function(e){if(!e.eventTime||!e.message)throw dR.create("invalid cc log");qR=[...qR,e]}({message:t(...e),eventTime:Date.now()})}}let KR;function $R(e,t){KR=KR||zR(HR),KR(e,t)}function WR(e){var t=wR.getInstance();!t.instrumentationEnabled&&e.isAuto||(t.dataCollectionEnabled||e.isAuto)&&mR.getInstance().requiredApisAvailable()&&(e.isAuto&&TR()!==cR.VISIBLE||(3===DR?GR(e):OR(e.performanceController).then(()=>GR(e),()=>GR(e))))}function GR(e){var t;!vR||(t=wR.getInstance()).loggingEnabled&&t.logTraceAfterSampling&&setTimeout(()=>$R(e,1),0)}function HR(e,t){return 0===t?(n={url:e.url,http_method:e.httpMethod||0,http_response_code:200,response_payload_bytes:e.responsePayloadBytes,client_start_time_us:e.startTimeUs,time_to_response_initiated_us:e.timeToResponseInitiatedUs,time_to_response_completed_us:e.timeToResponseCompletedUs},n={application_info:QR(e.performanceController.app),network_request_metric:n},JSON.stringify(n)):function(e){const t={name:e.name,is_auto:e.isAuto,client_start_time_us:e.startTimeUs,duration_us:e.durationUs};0!==Object.keys(e.counters).length&&(t.counters=e.counters);var n=e.getAttributes();0!==Object.keys(n).length&&(t.custom_attributes=n);n={application_info:QR(e.performanceController.app),trace_metric:t};return JSON.stringify(n)}(e);var n}function QR(e){return{google_app_id:ER(e),app_instance_id:vR,web_app_info:{sdk_version:iR,page_url:mR.getInstance().getUrl(),service_worker_status:null!=(t=mR.getInstance().navigator)&&t.serviceWorker?t.serviceWorker.controller?2:3:1,visibility_state:TR(),effective_connection_type:function(){var e=mR.getInstance().navigator.connection;switch(e&&e.effectiveType){case"slow-2g":return 1;case"2g":return 2;case"3g":return 3;case"4g":return 4;default:return 0}}()},application_process_state:0};var t}const YR=["_fp","_fcp","_fid"];class JR{constructor(e,t,n=!1,r){this.performanceController=e,this.name=t,this.isAuto=n,this.state=1,this.customAttributes={},this.counters={},this.api=mR.getInstance(),this.randomId=Math.floor(1e6*Math.random()),this.isAuto||(this.traceStartMark=`FB-PERF-TRACE-START-${this.randomId}-${this.name}`,this.traceStopMark=`FB-PERF-TRACE-STOP-${this.randomId}-${this.name}`,this.traceMeasure=r||`${sR}-${this.randomId}-${this.name}`,r&&this.calculateTraceMetrics())}start(){if(1!==this.state)throw dR.create("trace started",{traceName:this.name});this.api.mark(this.traceStartMark),this.state=2}stop(){if(2!==this.state)throw dR.create("trace stopped",{traceName:this.name});this.state=3,this.api.mark(this.traceStopMark),this.api.measure(this.traceMeasure,this.traceStartMark,this.traceStopMark),this.calculateTraceMetrics(),WR(this)}record(e,t,n){if(e<=0)throw dR.create("nonpositive trace startTime",{traceName:this.name});if(t<=0)throw dR.create("nonpositive trace duration",{traceName:this.name});if(this.durationUs=Math.floor(1e3*t),this.startTimeUs=Math.floor(1e3*e),n&&n.attributes&&(this.customAttributes=Object.assign({},n.attributes)),n&&n.metrics)for(const r of Object.keys(n.metrics))isNaN(Number(n.metrics[r]))||(this.counters[r]=Math.floor(Number(n.metrics[r])));WR(this)}incrementMetric(e,t=1){void 0===this.counters[e]?this.putMetric(e,t):this.putMetric(e,this.counters[e]+t)}putMetric(e,t){if(r=e,i=this.name,0===r.length||100<r.length||!(i&&i.startsWith("_wt_")&&-1<YR.indexOf(r))&&r.startsWith("_"))throw dR.create("invalid custom metric name",{customMetricName:e});var n,r,i;this.counters[e]=(t=null!=t?t:0,(n=Math.floor(t))<t&&pR.info(`Metric value should be an Integer, setting the value as : ${n}.`),n)}getMetric(e){return this.counters[e]||0}putAttribute(e,t){var n,r,i=!(0===(n=e).length||40<n.length)&&(!bR.some(e=>n.startsWith(e))&&!!n.match(IR)),s=0!==(r=t).length&&r.length<=100;if(i&&s)this.customAttributes[e]=t;else{if(!i)throw dR.create("invalid attribute name",{attributeName:e});if(!s)throw dR.create("invalid attribute value",{attributeValue:t})}}getAttribute(e){return this.customAttributes[e]}removeAttribute(e){void 0!==this.customAttributes[e]&&delete this.customAttributes[e]}getAttributes(){return Object.assign({},this.customAttributes)}setStartTime(e){this.startTimeUs=e}setDuration(e){this.durationUs=e}calculateTraceMetrics(){var e=this.api.getEntriesByName(this.traceMeasure),e=e&&e[0];e&&(this.durationUs=Math.floor(1e3*e.duration),this.startTimeUs=Math.floor(1e3*(e.startTime+this.api.getTimeOrigin())))}static createOobTrace(e,t,n,r){var i=mR.getInstance().getUrl();if(i){const s=new JR(e,"_wt_"+i,!0);i=Math.floor(1e3*mR.getInstance().getTimeOrigin());s.setStartTime(i),t&&t[0]&&(s.setDuration(Math.floor(1e3*t[0].duration)),s.putMetric("domInteractive",Math.floor(1e3*t[0].domInteractive)),s.putMetric("domContentLoadedEventEnd",Math.floor(1e3*t[0].domContentLoadedEventEnd)),s.putMetric("loadEventEnd",Math.floor(1e3*t[0].loadEventEnd)));n&&((i=n.find(e=>"first-paint"===e.name))&&i.startTime&&s.putMetric("_fp",Math.floor(1e3*i.startTime)),(i=n.find(e=>"first-contentful-paint"===e.name))&&i.startTime&&s.putMetric("_fcp",Math.floor(1e3*i.startTime)),r&&s.putMetric("_fid",Math.floor(1e3*r))),WR(s)}}static createUserTimingTrace(e,t){WR(new JR(e,t,!1,t))}}function XR(e,t){const n=t;var r,i,s;n&&void 0!==n.responseStart&&(s=mR.getInstance().getTimeOrigin(),r=Math.floor(1e3*(n.startTime+s)),i=n.responseStart?Math.floor(1e3*(n.responseStart-n.startTime)):void 0,s=Math.floor(1e3*(n.responseEnd-n.startTime)),function(e){const t=wR.getInstance();var n,r,i;t.instrumentationEnabled&&(n=e.url,r=t.logEndPointUrl.split("?")[0],i=t.flTransportEndpointUrl.split("?")[0],n!==r&&n!==i&&t.loggingEnabled&&t.logNetworkAfterSampling&&setTimeout(()=>$R(e,0),0))}({performanceController:e,url:n.name&&n.name.split("?")[0],responsePayloadBytes:n.transferSize,startTimeUs:r,timeToResponseInitiatedUs:i,timeToResponseCompletedUs:s}))}const ZR=5e3;function eP(e){vR&&(setTimeout(()=>function(n){const e=mR.getInstance(),r=e.getEntriesByType("navigation"),i=e.getEntriesByType("paint");if(e.onFirstInputDelay){let t=setTimeout(()=>{JR.createOobTrace(n,r,i),t=void 0},ZR);e.onFirstInputDelay(e=>{t&&(clearTimeout(t),JR.createOobTrace(n,r,i,e))})}else JR.createOobTrace(n,r,i)}(e),0),setTimeout(()=>function(t){const e=mR.getInstance(),n=e.getEntriesByType("resource");for(const r of n)XR(t,r);e.setupObserver("resource",e=>XR(t,e))}(e),0),setTimeout(()=>function(t){const e=mR.getInstance(),n=e.getEntriesByType("measure");for(const r of n)tP(t,r);e.setupObserver("measure",e=>tP(t,e))}(e),0))}function tP(e,t){const n=t.name;n.substring(0,sR.length)!==sR&&JR.createUserTimingTrace(e,n)}class nP{constructor(e,t){this.app=e,this.installations=t,this.initialized=!1}_init(e){this.initialized||(void 0!==(null==e?void 0:e.dataCollectionEnabled)&&(this.dataCollectionEnabled=e.dataCollectionEnabled),void 0!==(null==e?void 0:e.instrumentationEnabled)&&(this.instrumentationEnabled=e.instrumentationEnabled),mR.getInstance().requiredApisAvailable()?P().then(e=>{e&&(jR||(BR(5500),jR=!0),OR(this).then(()=>eP(this),()=>eP(this)),this.initialized=!0)}).catch(e=>{pR.info(`Environment doesn't support IndexedDB: ${e}`)}):pR.info('Firebase Performance cannot start if the browser does not support "Fetch" and "Promise", or cookies are disabled.'))}set instrumentationEnabled(e){wR.getInstance().instrumentationEnabled=e}get instrumentationEnabled(){return wR.getInstance().instrumentationEnabled}set dataCollectionEnabled(e){wR.getInstance().dataCollectionEnabled=e}get dataCollectionEnabled(){return wR.getInstance().dataCollectionEnabled}}const rP="[DEFAULT]";const iP=(e,{options:t})=>{var n=e.getProvider("app").getImmediate(),r=e.getProvider("installations-internal").getImmediate();if(n.name!==rP)throw dR.create("FB not default");if("undefined"==typeof window)throw dR.create("no window");e=window,gR=e;const i=new nP(n,r);return i._init(t),i};Je(new ue("performance",iP,"PUBLIC")),ct(nR,rR),ct(nR,rR,"esm2017");class sP{constructor(e,t){this.app=e,this._delegate=t}get instrumentationEnabled(){return this._delegate.instrumentationEnabled}set instrumentationEnabled(e){this._delegate.instrumentationEnabled=e}get dataCollectionEnabled(){return this._delegate.dataCollectionEnabled}set dataCollectionEnabled(e){this._delegate.dataCollectionEnabled=e}trace(e){return t=this._delegate,e=e,t=le(t),new JR(t,e);var t}}function aP(e){var t=e.getProvider("app-compat").getImmediate(),n=e.getProvider("performance").getImmediate();return new sP(t,n)}(lR=Nt).INTERNAL.registerComponent(new ue("performance-compat",aP,"PUBLIC")),lR.registerVersion("@firebase/performance-compat","0.2.9");const oP="@firebase/remote-config";class cP{constructor(){this.listeners=[]}addEventListener(e){this.listeners.push(e)}abort(){this.listeners.forEach(e=>e())}}const lP=new O("remoteconfig","Remote Config",{"registration-window":"Undefined window object. This SDK only supports usage in a browser environment.","registration-project-id":"Undefined project identifier. Check Firebase app initialization.","registration-api-key":"Undefined API key. Check Firebase app initialization.","registration-app-id":"Undefined app identifier. Check Firebase app initialization.","storage-open":"Error thrown when opening storage. Original error: {$originalErrorMessage}.","storage-get":"Error thrown when reading from storage. Original error: {$originalErrorMessage}.","storage-set":"Error thrown when writing to storage. Original error: {$originalErrorMessage}.","storage-delete":"Error thrown when deleting from storage. Original error: {$originalErrorMessage}.","fetch-client-network":"Fetch client failed to connect to a network. Check Internet connection. Original error: {$originalErrorMessage}.","fetch-timeout":'The config fetch request timed out.  Configure timeout using "fetchTimeoutMillis" SDK setting.',"fetch-throttle":'The config fetch request timed out while in an exponential backoff state. Configure timeout using "fetchTimeoutMillis" SDK setting. Unix timestamp in milliseconds when fetch request throttling ends: {$throttleEndTimeMillis}.',"fetch-client-parse":"Fetch client could not parse response. Original error: {$originalErrorMessage}.","fetch-status":"Fetch server returned an HTTP error status. HTTP status: {$httpStatus}.","indexed-db-unavailable":"Indexed DB is not supported by current browser"});const uP=["1","true","t","yes","y","on"];class hP{constructor(e,t=""){this._source=e,this._value=t}asString(){return this._value}asBoolean(){return"static"!==this._source&&0<=uP.indexOf(this._value.toLowerCase())}asNumber(){if("static"===this._source)return 0;let e=Number(this._value);return isNaN(e)&&(e=0),e}getSource(){return this._source}}async function dP(e){const t=le(e);var[n,r]=await Promise.all([t._storage.getLastSuccessfulFetchResponse(),t._storage.getActiveConfigEtag()]);return!!(n&&n.config&&n.eTag&&n.eTag!==r)&&(await Promise.all([t._storageCache.setActiveConfig(n.config),t._storage.setActiveConfigEtag(n.eTag)]),!0)}function pP(e){const t=le(e);return t._initializePromise||(t._initializePromise=t._storageCache.loadFromStorage().then(()=>{t._isInitializationComplete=!0})),t._initializePromise}async function fP(t){const n=le(t),e=new cP;setTimeout(async()=>{e.abort()},n.settings.fetchTimeoutMillis);try{await n._client.fetch({cacheMaxAgeMillis:n.settings.minimumFetchIntervalMillis,signal:e}),await n._storageCache.setLastFetchStatus("success")}catch(e){var r=(i="fetch-throttle",(t=e)instanceof x&&-1!==t.code.indexOf(i)?"throttle":"failure");throw await n._storageCache.setLastFetchStatus(r),e}var i}function gP(n){const e=le(n);return[t={},r={}]=[e._storageCache.getActiveConfig(),e.defaultConfig],Object.keys(Object.assign(Object.assign({},t),r)).reduce((e,t)=>(e[t]=mP(n,t),e),{});var t,r}function mP(e,t){const n=le(e);n._isInitializationComplete||n._logger.debug(`A value was requested for key "${t}" before SDK initialization completed.`+" Await on ensureInitialized if the intent was to get a previously activated value.");var r=n._storageCache.getActiveConfig();return r&&void 0!==r[t]?new hP("remote",r[t]):n.defaultConfig&&void 0!==n.defaultConfig[t]?new hP("default",String(n.defaultConfig[t])):(n._logger.debug(`Returning static value for key "${t}".`+" Define a default or remote value if this is unintentional."),new hP("static"))}class vP{constructor(e,t,n,r){this.client=e,this.storage=t,this.storageCache=n,this.logger=r}isCachedDataFresh(e,t){if(!t)return this.logger.debug("Config fetch cache check. Cache unpopulated."),!1;var n=Date.now()-t,r=n<=e;return this.logger.debug("Config fetch cache check."+` Cache age millis: ${n}.`+` Cache max age millis (minimumFetchIntervalMillis setting): ${e}.`+` Is cache hit: ${r}.`),r}async fetch(e){var[t,n]=await Promise.all([this.storage.getLastSuccessfulFetchTimestampMillis(),this.storage.getLastSuccessfulFetchResponse()]);if(n&&this.isCachedDataFresh(e.cacheMaxAgeMillis,t))return n;e.eTag=n&&n.eTag;n=await this.client.fetch(e);const r=[this.storageCache.setLastSuccessfulFetchTimestampMillis(Date.now())];return 200===n.status&&r.push(this.storage.setLastSuccessfulFetchResponse(n)),await Promise.all(r),n}}class _P{constructor(e,t,n,r,i,s){this.firebaseInstallations=e,this.sdkVersion=t,this.namespace=n,this.projectId=r,this.apiKey=i,this.appId=s}async fetch(n){var e,[t,r]=await Promise.all([this.firebaseInstallations.getId(),this.firebaseInstallations.getToken()]),i=`${window.FIREBASE_REMOTE_CONFIG_URL_BASE||"https://firebaseremoteconfig.googleapis.com"}/v1/projects/${this.projectId}/namespaces/${this.namespace}:fetch?key=${this.apiKey}`,s={"Content-Type":"application/json","Content-Encoding":"gzip","If-None-Match":n.eTag||"*"},r={sdk_version:this.sdkVersion,app_instance_id:t,app_instance_id_token:r,app_id:this.appId,language_code:(e=navigator).languages&&e.languages[0]||e.language},r={method:"POST",headers:s,body:JSON.stringify(r)},i=fetch(i,r),r=new Promise((e,t)=>{n.signal.addEventListener(()=>{const e=new Error("The operation was aborted.");e.name="AbortError",t(e)})});let a;try{await Promise.race([i,r]),a=await i}catch(e){let t="fetch-client-network";throw"AbortError"===(null==e?void 0:e.name)&&(t="fetch-timeout"),lP.create(t,{originalErrorMessage:null==e?void 0:e.message})}let o=a.status;i=a.headers.get("ETag")||void 0;let c,l;if(200===a.status){let e;try{e=await a.json()}catch(e){throw lP.create("fetch-client-parse",{originalErrorMessage:null==e?void 0:e.message})}c=e.entries,l=e.state}if("INSTANCE_STATE_UNSPECIFIED"===l?o=500:"NO_CHANGE"===l?o=304:"NO_TEMPLATE"!==l&&"EMPTY_CONFIG"!==l||(c={}),304!==o&&200!==o)throw lP.create("fetch-status",{httpStatus:o});return{status:o,eTag:i,config:c}}}class yP{constructor(e,t){this.client=e,this.storage=t}async fetch(e){var t=await this.storage.getThrottleMetadata()||{backoffCount:0,throttleEndTimeMillis:Date.now()};return this.attemptFetch(e,t)}async attemptFetch(t,{throttleEndTimeMillis:e,backoffCount:n}){var i,s;i=t.signal,s=e,await new Promise((e,t)=>{var n=Math.max(s-Date.now(),0);const r=setTimeout(e,n);i.addEventListener(()=>{clearTimeout(r),t(lP.create("fetch-throttle",{throttleEndTimeMillis:s}))})});try{var r=await this.client.fetch(t);return await this.storage.deleteThrottleMetadata(),r}catch(e){if(!function(e){if(e instanceof x&&e.customData){var t=Number(e.customData.httpStatus);return 429===t||500===t||503===t||504===t}}(e))throw e;r={throttleEndTimeMillis:Date.now()+ce(n),backoffCount:n+1};return await this.storage.setThrottleMetadata(r),this.attemptFetch(t,r)}}}class wP{constructor(e,t,n,r,i){this.app=e,this._client=t,this._storageCache=n,this._storage=r,this._logger=i,this._isInitializationComplete=!1,this.settings={fetchTimeoutMillis:6e4,minimumFetchIntervalMillis:432e5},this.defaultConfig={}}get fetchTimeMillis(){return this._storageCache.getLastSuccessfulFetchTimestampMillis()||-1}get lastFetchStatus(){return this._storageCache.getLastFetchStatus()||"no-fetch-yet"}}function bP(e,t){var n=e.target.error||void 0;return lP.create(t,{originalErrorMessage:n&&(null==n?void 0:n.message)})}const IP="app_namespace_store";class TP{constructor(e,t,n,r=function(){return new Promise((t,n)=>{try{const e=indexedDB.open("firebase_remote_config",1);e.onerror=e=>{n(bP(e,"storage-open"))},e.onsuccess=e=>{t(e.target.result)},e.onupgradeneeded=e=>{const t=e.target.result;0===e.oldVersion&&t.createObjectStore(IP,{keyPath:"compositeKey"})}}catch(e){n(lP.create("storage-open",{originalErrorMessage:null==e?void 0:e.message}))}})}()){this.appId=e,this.appName=t,this.namespace=n,this.openDbPromise=r}getLastFetchStatus(){return this.get("last_fetch_status")}setLastFetchStatus(e){return this.set("last_fetch_status",e)}getLastSuccessfulFetchTimestampMillis(){return this.get("last_successful_fetch_timestamp_millis")}setLastSuccessfulFetchTimestampMillis(e){return this.set("last_successful_fetch_timestamp_millis",e)}getLastSuccessfulFetchResponse(){return this.get("last_successful_fetch_response")}setLastSuccessfulFetchResponse(e){return this.set("last_successful_fetch_response",e)}getActiveConfig(){return this.get("active_config")}setActiveConfig(e){return this.set("active_config",e)}getActiveConfigEtag(){return this.get("active_config_etag")}setActiveConfigEtag(e){return this.set("active_config_etag",e)}getThrottleMetadata(){return this.get("throttle_metadata")}setThrottleMetadata(e){return this.set("throttle_metadata",e)}deleteThrottleMetadata(){return this.delete("throttle_metadata")}async get(a){const o=await this.openDbPromise;return new Promise((n,t)=>{const e=o.transaction([IP],"readonly"),r=e.objectStore(IP);var i=this.createCompositeKey(a);try{const s=r.get(i);s.onerror=e=>{t(bP(e,"storage-get"))},s.onsuccess=e=>{var t=e.target.result;n(t?t.value:void 0)}}catch(e){t(lP.create("storage-get",{originalErrorMessage:null==e?void 0:e.message}))}})}async set(a,o){const c=await this.openDbPromise;return new Promise((e,t)=>{const n=c.transaction([IP],"readwrite"),r=n.objectStore(IP);var i=this.createCompositeKey(a);try{const s=r.put({compositeKey:i,value:o});s.onerror=e=>{t(bP(e,"storage-set"))},s.onsuccess=()=>{e()}}catch(e){t(lP.create("storage-set",{originalErrorMessage:null==e?void 0:e.message}))}})}async delete(a){const o=await this.openDbPromise;return new Promise((e,t)=>{const n=o.transaction([IP],"readwrite"),r=n.objectStore(IP);var i=this.createCompositeKey(a);try{const s=r.delete(i);s.onerror=e=>{t(bP(e,"storage-delete"))},s.onsuccess=()=>{e()}}catch(e){t(lP.create("storage-delete",{originalErrorMessage:null==e?void 0:e.message}))}})}createCompositeKey(e){return[this.appId,this.appName,this.namespace,e].join()}}class EP{constructor(e){this.storage=e}getLastFetchStatus(){return this.lastFetchStatus}getLastSuccessfulFetchTimestampMillis(){return this.lastSuccessfulFetchTimestampMillis}getActiveConfig(){return this.activeConfig}async loadFromStorage(){var e=this.storage.getLastFetchStatus(),t=this.storage.getLastSuccessfulFetchTimestampMillis(),n=this.storage.getActiveConfig(),e=await e;e&&(this.lastFetchStatus=e);t=await t;t&&(this.lastSuccessfulFetchTimestampMillis=t);n=await n;n&&(this.activeConfig=n)}setLastFetchStatus(e){return this.lastFetchStatus=e,this.storage.setLastFetchStatus(e)}setLastSuccessfulFetchTimestampMillis(e){return this.lastSuccessfulFetchTimestampMillis=e,this.storage.setLastSuccessfulFetchTimestampMillis(e)}setActiveConfig(e){return this.activeConfig=e,this.storage.setActiveConfig(e)}}async function CP(){if(!R())return!1;try{return await P()}catch(e){return!1}}Je(new ue("remote-config",function(e,{instanceIdentifier:t}){var n=e.getProvider("app").getImmediate(),r=e.getProvider("installations-internal").getImmediate();if("undefined"==typeof window)throw lP.create("registration-window");if(!R())throw lP.create("indexed-db-unavailable");var{projectId:i,apiKey:s,appId:a}=n.options;if(!i)throw lP.create("registration-project-id");if(!s)throw lP.create("registration-api-key");if(!a)throw lP.create("registration-app-id");t=t||"firebase";const o=new TP(a,n.name,t),c=new EP(o),l=new ye(oP);l.logLevel=m.ERROR;a=new _P(r,it,t,i,s,a),a=new yP(a,o),a=new vP(a,o,c,l),a=new wP(n,a,c,o,l);return pP(a),a},"PUBLIC").setMultipleInstances(!0)),ct(oP,"0.4.9"),ct(oP,"0.4.9","esm2017");class SP{constructor(e,t){this.app=e,this._delegate=t}get defaultConfig(){return this._delegate.defaultConfig}set defaultConfig(e){this._delegate.defaultConfig=e}get fetchTimeMillis(){return this._delegate.fetchTimeMillis}get lastFetchStatus(){return this._delegate.lastFetchStatus}get settings(){return this._delegate.settings}set settings(e){this._delegate.settings=e}activate(){return dP(this._delegate)}ensureInitialized(){return pP(this._delegate)}fetch(){return fP(this._delegate)}fetchAndActivate(){return async function(e){return await fP(e=le(e)),dP(e)}(this._delegate)}getAll(){return gP(this._delegate)}getBoolean(e){return mP(le(this._delegate),e).asBoolean()}getNumber(e){return mP(le(this._delegate),e).asNumber()}getString(e){return mP(le(this._delegate),e).asString()}getValue(e){return mP(this._delegate,e)}setLogLevel(e){!function(e,t){const n=le(e);switch(t){case"debug":n._logger.logLevel=m.DEBUG;break;case"silent":n._logger.logLevel=m.SILENT;break;default:n._logger.logLevel=m.ERROR}}(this._delegate,e)}}function kP(e,{instanceIdentifier:t}){var n=e.getProvider("app-compat").getImmediate(),r=e.getProvider("remote-config").getImmediate({identifier:t});return new SP(n,r)}return(uR=Nt).INTERNAL.registerComponent(new ue("remoteConfig-compat",kP,"PUBLIC").setMultipleInstances(!0).setServiceProps({isSupported:CP})),uR.registerVersion("@firebase/remote-config-compat","0.2.9"),console.warn("\nIt looks like you're using the development build of the Firebase JS SDK.\nWhen deploying Firebase apps to production, it is advisable to only import\nthe individual SDK components you intend to use.\n\nFor the CDN builds, these are available in the following manner\n(replace <PACKAGE> with the name of a component - i.e. auth, database, etc):\n\nhttps://www.gstatic.com/firebasejs/5.0.0/firebase-<PACKAGE>.js\n"),Nt.registerVersion("firebase","10.14.1","compat-cdn"),Nt});
//# sourceMappingURL=firebase-compat.js.map