{
  "version": 3,
  "sources": ["ssg:https://framer.com/m/framer/store.js@^1.0.0", "ssg:https://ga.jspm.io/npm:@firebase/util@1.7.2/dist/index.esm2017.js", "ssg:https://ga.jspm.io/npm:@firebase/component@0.5.20/dist/esm/index.esm2017.js", "ssg:https://ga.jspm.io/npm:@firebase/logger@0.3.3/dist/esm/index.esm2017.js", "ssg:https://ga.jspm.io/npm:idb@7.0.1/build/wrap-idb-value.js", "ssg:https://ga.jspm.io/npm:idb@7.0.1/build/index.js", "ssg:https://ga.jspm.io/npm:@firebase/app@0.8.2/dist/esm/index.esm2017.js", "ssg:https://ga.jspm.io/npm:firebase@9.12.1/app/dist/index.esm.js", "ssg:https://ga.jspm.io/npm:@firebase/database@0.14.3/dist/index.esm2017.js", "ssg:https://framerusercontent.com/modules/FFjPYA9GDbo4QwHTMrjL/GaQkvItW4ysUXciimiR8/Redirect.js"],
  "sourcesContent": ["import{useState,useEffect}from\"react\";import{Data,useObserveData}from\"framer\";export function createStore(state1){// Use Data so that a Preview reload resets the state\nconst dataStore=Data({state:Object.freeze({...state1})});// Create a set function that updates the state\nconst setDataStore=newState=>{// If the state is an object, make sure we copy it\nif(typeof newState===\"function\"){newState=newState(dataStore.state);}dataStore.state=Object.freeze({...dataStore.state,...newState});};// Store the initial state, copy the object if it's an object\nlet storeState=typeof state1===\"object\"?Object.freeze({...state1}):state1;// Keep a list of all the listeners, in the form of React hook setters\nconst storeSetters=new Set();// Create a set function that updates all the listeners / setters\nconst setStoreState=newState=>{// If the state is an object, make sure we copy it\nif(typeof newState===\"function\"){newState=newState(storeState);}storeState=typeof newState===\"object\"?Object.freeze({...storeState,...newState}):newState;// Update all the listeners / setters with the new value\nstoreSetters.forEach(setter=>setter(storeState));};// Create the actual hook based on everything above\nfunction useStore(){// Create the hook we are going to use as a listener\nconst[state,setState]=useState(storeState);// If we unmount the component using this hook, we need to remove the listener\n// @ts-ignore\nuseEffect(()=>{// But right now, we need to add the listener\nstoreSetters.add(setState);return()=>storeSetters.delete(setState);},[]);// If Data context exists, use Data, otherwise use vanilla React state\nif(useObserveData()===true){useObserveData();return[dataStore.state,setDataStore];}else{// Return the state and a function to update the central store\nreturn[state,setStoreState];}}return useStore;}\nexport const __FramerMetadata__ = {\"exports\":{\"createStore\":{\"type\":\"function\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./createStore.map", "/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst e={NODE_CLIENT:false,NODE_ADMIN:false,SDK_VERSION:\"${JSCORE_VERSION}\"};\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */const assert=function(e,t){if(!e)throw assertionError(t)};const assertionError=function(t){return new Error(\"Firebase Database (\"+e.SDK_VERSION+\") INTERNAL ASSERT FAILED: \"+t)};\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */const stringToByteArray$1=function(e){const t=[];let r=0;for(let n=0;n<e.length;n++){let o=e.charCodeAt(n);if(o<128)t[r++]=o;else if(o<2048){t[r++]=o>>6|192;t[r++]=63&o|128}else if(55296===(64512&o)&&n+1<e.length&&56320===(64512&e.charCodeAt(n+1))){o=65536+((1023&o)<<10)+(1023&e.charCodeAt(++n));t[r++]=o>>18|240;t[r++]=o>>12&63|128;t[r++]=o>>6&63|128;t[r++]=63&o|128}else{t[r++]=o>>12|224;t[r++]=o>>6&63|128;t[r++]=63&o|128}}return t};\n/**\n * Turns an array of numbers into the string given by the concatenation of the\n * characters to which the numbers correspond.\n * @param bytes Array of numbers representing characters.\n * @return Stringification of the array.\n */const byteArrayToString=function(e){const t=[];let r=0,n=0;while(r<e.length){const o=e[r++];if(o<128)t[n++]=String.fromCharCode(o);else if(o>191&&o<224){const s=e[r++];t[n++]=String.fromCharCode((31&o)<<6|63&s)}else if(o>239&&o<365){const s=e[r++];const i=e[r++];const c=e[r++];const a=((7&o)<<18|(63&s)<<12|(63&i)<<6|63&c)-65536;t[n++]=String.fromCharCode(55296+(a>>10));t[n++]=String.fromCharCode(56320+(1023&a))}else{const s=e[r++];const i=e[r++];t[n++]=String.fromCharCode((15&o)<<12|(63&s)<<6|63&i)}}return t.join(\"\")};const t={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,\n/**\n     * Base64-encode an array of bytes.\n     *\n     * @param input An array of bytes (numbers with\n     *     value in [0, 255]) to encode.\n     * @param webSafe Boolean indicating we should use the\n     *     alternative alphabet.\n     * @return The base64 encoded string.\n     */\nencodeByteArray(e,t){if(!Array.isArray(e))throw Error(\"encodeByteArray takes an array as a parameter\");this.init_();const r=t?this.byteToCharMapWebSafe_:this.byteToCharMap_;const n=[];for(let t=0;t<e.length;t+=3){const o=e[t];const s=t+1<e.length;const i=s?e[t+1]:0;const c=t+2<e.length;const a=c?e[t+2]:0;const h=o>>2;const l=(3&o)<<4|i>>4;let u=(15&i)<<2|a>>6;let f=63&a;if(!c){f=64;s||(u=64)}n.push(r[h],r[l],r[u],r[f])}return n.join(\"\")},\n/**\n     * Base64-encode a string.\n     *\n     * @param input A string to encode.\n     * @param webSafe If true, we should use the\n     *     alternative alphabet.\n     * @return The base64 encoded string.\n     */\nencodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?btoa(e):this.encodeByteArray(stringToByteArray$1(e),t)},\n/**\n     * Base64-decode a string.\n     *\n     * @param input to decode.\n     * @param webSafe True if we should use the\n     *     alternative alphabet.\n     * @return string representing the decoded value.\n     */\ndecodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?atob(e):byteArrayToString(this.decodeStringToByteArray(e,t))},\n/**\n     * Base64-decode a string.\n     *\n     * In base-64 decoding, groups of four characters are converted into three\n     * bytes.  If the encoder did not apply padding, the input length may not\n     * be a multiple of 4.\n     *\n     * In this case, the last group will have fewer than 4 characters, and\n     * padding will be inferred.  If the group has one or two characters, it decodes\n     * to one byte.  If the group has three characters, it decodes to two bytes.\n     *\n     * @param input Input to decode.\n     * @param webSafe True if we should use the web-safe alphabet.\n     * @return bytes representing the decoded value.\n     */\ndecodeStringToByteArray(e,t){this.init_();const r=t?this.charToByteMapWebSafe_:this.charToByteMap_;const n=[];for(let t=0;t<e.length;){const o=r[e.charAt(t++)];const s=t<e.length;const i=s?r[e.charAt(t)]:0;++t;const c=t<e.length;const a=c?r[e.charAt(t)]:64;++t;const h=t<e.length;const l=h?r[e.charAt(t)]:64;++t;if(null==o||null==i||null==a||null==l)throw Error();const u=o<<2|i>>4;n.push(u);if(64!==a){const e=i<<4&240|a>>2;n.push(e);if(64!==l){const e=a<<6&192|l;n.push(e)}}}return n},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={};this.charToByteMap_={};this.byteToCharMapWebSafe_={};this.charToByteMapWebSafe_={};for(let e=0;e<this.ENCODED_VALS.length;e++){this.byteToCharMap_[e]=this.ENCODED_VALS.charAt(e);this.charToByteMap_[this.byteToCharMap_[e]]=e;this.byteToCharMapWebSafe_[e]=this.ENCODED_VALS_WEBSAFE.charAt(e);this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[e]]=e;if(e>=this.ENCODED_VALS_BASE.length){this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(e)]=e;this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(e)]=e}}}}};const base64Encode=function(e){const r=stringToByteArray$1(e);return t.encodeByteArray(r,true)};const base64urlEncodeWithoutPadding=function(e){return base64Encode(e).replace(/\\./g,\"\")};\n/**\n * URL-safe base64 decoding\n *\n * NOTE: DO NOT use the global atob() function - it does NOT support the\n * base64Url variant encoding.\n *\n * @param str To be decoded\n * @return Decoded result, if possible\n */const base64Decode=function(e){try{return t.decodeString(e,true)}catch(e){console.error(\"base64Decode failed: \",e)}return null};\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */function deepCopy(e){return deepExtend(void 0,e)}function deepExtend(e,t){if(!(t instanceof Object))return t;switch(t.constructor){case Date:const r=t;return new Date(r.getTime());case Object:void 0===e&&(e={});break;case Array:e=[];break;default:return t}for(const r in t)t.hasOwnProperty(r)&&isValidKey(r)&&(e[r]=deepExtend(e[r],t[r]));return e}function isValidKey(e){return\"__proto__\"!==e}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */function getUA(){return\"undefined\"!==typeof navigator&&\"string\"===typeof navigator.userAgent?navigator.userAgent:\"\"}function isMobileCordova(){return\"undefined\"!==typeof window&&!!(window.cordova||window.phonegap||window.PhoneGap)&&/ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(getUA())}function isNode(){try{return\"[object process]\"===Object.prototype.toString.call(global.process)}catch(e){return false}}function isBrowser(){return\"object\"===typeof self&&self.self===self}function isBrowserExtension(){const e=\"object\"===typeof chrome?chrome.runtime:\"object\"===typeof browser?browser.runtime:void 0;return\"object\"===typeof e&&void 0!==e.id}function isReactNative(){return\"object\"===typeof navigator&&\"ReactNative\"===navigator.product}function isElectron(){return getUA().indexOf(\"Electron/\")>=0}function isIE(){const e=getUA();return e.indexOf(\"MSIE \")>=0||e.indexOf(\"Trident/\")>=0}function isUWP(){return getUA().indexOf(\"MSAppHost/\")>=0}function isNodeSdk(){return true===e.NODE_CLIENT||true===e.NODE_ADMIN}function isSafari(){return!isNode()&&navigator.userAgent.includes(\"Safari\")&&!navigator.userAgent.includes(\"Chrome\")}function isIndexedDBAvailable(){return\"object\"===typeof indexedDB}function validateIndexedDBOpenable(){return new Promise(((e,t)=>{try{let r=true;const n=\"validate-browser-context-for-indexeddb-analytics-module\";const o=self.indexedDB.open(n);o.onsuccess=()=>{o.result.close();r||self.indexedDB.deleteDatabase(n);e(true)};o.onupgradeneeded=()=>{r=false};o.onerror=()=>{var e;t((null===(e=o.error)||void 0===e?void 0:e.message)||\"\")}}catch(e){t(e)}}))}function areCookiesEnabled(){return!(\"undefined\"===typeof navigator||!navigator.cookieEnabled)}\n/**\n * Polyfill for `globalThis` object.\n * @returns the `globalThis` object for the given environment.\n */function getGlobal(){if(\"undefined\"!==typeof self)return self;if(\"undefined\"!==typeof window)return window;if(\"undefined\"!==typeof global)return global;throw new Error(\"Unable to locate global object.\")}\n/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */const getDefaultsFromGlobal=()=>getGlobal().__FIREBASE_DEFAULTS__;const getDefaultsFromEnvVariable=()=>{if(\"undefined\"===typeof process||\"undefined\"===typeof process.env)return;const e=process.env.__FIREBASE_DEFAULTS__;return e?JSON.parse(e):void 0};const getDefaultsFromCookie=()=>{if(\"undefined\"===typeof document)return;let e;try{e=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(e){return}const t=e&&base64Decode(e[1]);return t&&JSON.parse(t)};const getDefaults=()=>{try{return getDefaultsFromGlobal()||getDefaultsFromEnvVariable()||getDefaultsFromCookie()}catch(e){console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`);return}};\n/**\n * Returns emulator host stored in the __FIREBASE_DEFAULTS__ object\n * for the given product.\n * @returns a URL host formatted like `127.0.0.1:9999` or `[::1]:4000` if available\n * @public\n */const getDefaultEmulatorHost=e=>{var t,r;return null===(r=null===(t=getDefaults())||void 0===t?void 0:t.emulatorHosts)||void 0===r?void 0:r[e]};\n/**\n * Returns emulator hostname and port stored in the __FIREBASE_DEFAULTS__ object\n * for the given product.\n * @returns a pair of hostname and port like `[\"::1\", 4000]` if available\n * @public\n */const getDefaultEmulatorHostnameAndPort=e=>{const t=getDefaultEmulatorHost(e);if(!t)return;const r=t.lastIndexOf(\":\");if(r<=0||r+1===t.length)throw new Error(`Invalid host ${t} with no separate hostname and port!`);const n=parseInt(t.substring(r+1),10);return\"[\"===t[0]?[t.substring(1,r-1),n]:[t.substring(0,r),n]};const getDefaultAppConfig=()=>{var e;return null===(e=getDefaults())||void 0===e?void 0:e.config};const getExperimentalSetting=e=>{var t;return null===(t=getDefaults())||void 0===t?void 0:t[`_${e}`]};\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */class Deferred{constructor(){this.reject=()=>{};this.resolve=()=>{};this.promise=new Promise(((e,t)=>{this.resolve=e;this.reject=t}))}wrapCallback(e){return(t,r)=>{t?this.reject(t):this.resolve(r);if(\"function\"===typeof e){this.promise.catch((()=>{}));1===e.length?e(t):e(t,r)}}}}\n/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */function createMockUserToken(e,t){if(e.uid)throw new Error('The \"uid\" field is no longer supported by mockUserToken. Please use \"sub\" instead for Firebase Auth User ID.');const r={alg:\"none\",type:\"JWT\"};const n=t||\"demo-project\";const o=e.iat||0;const s=e.sub||e.user_id;if(!s)throw new Error(\"mockUserToken must contain 'sub' or 'user_id' field!\");const i=Object.assign({iss:`https://securetoken.google.com/${n}`,aud:n,iat:o,exp:o+3600,auth_time:o,sub:s,user_id:s,firebase:{sign_in_provider:\"custom\",identities:{}}},e);const c=\"\";return[base64urlEncodeWithoutPadding(JSON.stringify(r)),base64urlEncodeWithoutPadding(JSON.stringify(i)),c].join(\".\")}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */const r=\"FirebaseError\";class FirebaseError extends Error{constructor(e,t,n){super(t);this.code=e;this.customData=n;this.name=r;Object.setPrototypeOf(this,FirebaseError.prototype);Error.captureStackTrace&&Error.captureStackTrace(this,ErrorFactory.prototype.create)}}class ErrorFactory{constructor(e,t,r){this.service=e;this.serviceName=t;this.errors=r}create(e,...t){const r=t[0]||{};const n=`${this.service}/${e}`;const o=this.errors[e];const s=o?replaceTemplate(o,r):\"Error\";const i=`${this.serviceName}: ${s} (${n}).`;const c=new FirebaseError(n,i,r);return c}}function replaceTemplate(e,t){return e.replace(n,((e,r)=>{const n=t[r];return null!=n?String(n):`<${r}?>`}))}const n=/\\{\\$([^}]+)}/g;\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Evaluates a JSON string into a javascript object.\n *\n * @param {string} str A string containing JSON.\n * @return {*} The javascript object representing the specified JSON.\n */function jsonEval(e){return JSON.parse(e)}\n/**\n * Returns JSON representing a javascript object.\n * @param {*} data Javascript object to be stringified.\n * @return {string} The JSON contents of the object.\n */function stringify(e){return JSON.stringify(e)}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */const decode=function(e){let t={},r={},n={},o=\"\";try{const s=e.split(\".\");t=jsonEval(base64Decode(s[0])||\"\");r=jsonEval(base64Decode(s[1])||\"\");o=s[2];n=r.d||{};delete r.d}catch(e){}return{header:t,claims:r,data:n,signature:o}};const isValidTimestamp=function(e){const t=decode(e).claims;const r=Math.floor((new Date).getTime()/1e3);let n=0,o=0;if(\"object\"===typeof t){t.hasOwnProperty(\"nbf\")?n=t.nbf:t.hasOwnProperty(\"iat\")&&(n=t.iat);o=t.hasOwnProperty(\"exp\")?t.exp:n+86400}return!!r&&!!n&&!!o&&r>=n&&r<=o};const issuedAtTime=function(e){const t=decode(e).claims;return\"object\"===typeof t&&t.hasOwnProperty(\"iat\")?t.iat:null};const isValidFormat=function(e){const t=decode(e),r=t.claims;return!!r&&\"object\"===typeof r&&r.hasOwnProperty(\"iat\")};const isAdmin=function(e){const t=decode(e).claims;return\"object\"===typeof t&&true===t.admin};\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */function contains(e,t){return Object.prototype.hasOwnProperty.call(e,t)}function safeGet(e,t){return Object.prototype.hasOwnProperty.call(e,t)?e[t]:void 0}function isEmpty(e){for(const t in e)if(Object.prototype.hasOwnProperty.call(e,t))return false;return true}function map(e,t,r){const n={};for(const o in e)Object.prototype.hasOwnProperty.call(e,o)&&(n[o]=t.call(r,e[o],o,e));return n}function deepEqual(e,t){if(e===t)return true;const r=Object.keys(e);const n=Object.keys(t);for(const o of r){if(!n.includes(o))return false;const r=e[o];const s=t[o];if(isObject(r)&&isObject(s)){if(!deepEqual(r,s))return false}else if(r!==s)return false}for(const e of n)if(!r.includes(e))return false;return true}function isObject(e){return null!==e&&\"object\"===typeof e}\n/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */function promiseWithTimeout(e,t=2e3){const r=new Deferred;setTimeout((()=>r.reject(\"timeout!\")),t);e.then(r.resolve,r.reject);return r.promise}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */function querystring(e){const t=[];for(const[r,n]of Object.entries(e))Array.isArray(n)?n.forEach((e=>{t.push(encodeURIComponent(r)+\"=\"+encodeURIComponent(e))})):t.push(encodeURIComponent(r)+\"=\"+encodeURIComponent(n));return t.length?\"&\"+t.join(\"&\"):\"\"}function querystringDecode(e){const t={};const r=e.replace(/^\\?/,\"\").split(\"&\");r.forEach((e=>{if(e){const[r,n]=e.split(\"=\");t[decodeURIComponent(r)]=decodeURIComponent(n)}}));return t}function extractQuerystring(e){const t=e.indexOf(\"?\");if(!t)return\"\";const r=e.indexOf(\"#\",t);return e.substring(t,r>0?r:void 0)}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */class Sha1{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}\n/**\n     * Internal compress helper function.\n     * @param buf Block to compress.\n     * @param offset Offset of the block in the buffer.\n     * @private\n     */compress_(e,t){t||(t=0);const r=this.W_;if(\"string\"===typeof e)for(let n=0;n<16;n++){r[n]=e.charCodeAt(t)<<24|e.charCodeAt(t+1)<<16|e.charCodeAt(t+2)<<8|e.charCodeAt(t+3);t+=4}else for(let n=0;n<16;n++){r[n]=e[t]<<24|e[t+1]<<16|e[t+2]<<8|e[t+3];t+=4}for(let e=16;e<80;e++){const t=r[e-3]^r[e-8]^r[e-14]^r[e-16];r[e]=4294967295&(t<<1|t>>>31)}let n=this.chain_[0];let o=this.chain_[1];let s=this.chain_[2];let i=this.chain_[3];let c=this.chain_[4];let a,h;for(let e=0;e<80;e++){if(e<40)if(e<20){a=i^o&(s^i);h=1518500249}else{a=o^s^i;h=1859775393}else if(e<60){a=o&s|i&(o|s);h=2400959708}else{a=o^s^i;h=3395469782}const t=(n<<5|n>>>27)+a+c+h+r[e]&4294967295;c=i;i=s;s=4294967295&(o<<30|o>>>2);o=n;n=t}this.chain_[0]=this.chain_[0]+n&4294967295;this.chain_[1]=this.chain_[1]+o&4294967295;this.chain_[2]=this.chain_[2]+s&4294967295;this.chain_[3]=this.chain_[3]+i&4294967295;this.chain_[4]=this.chain_[4]+c&4294967295}update(e,t){if(null==e)return;void 0===t&&(t=e.length);const r=t-this.blockSize;let n=0;const o=this.buf_;let s=this.inbuf_;while(n<t){if(0===s)while(n<=r){this.compress_(e,n);n+=this.blockSize}if(\"string\"===typeof e)while(n<t){o[s]=e.charCodeAt(n);++s;++n;if(s===this.blockSize){this.compress_(o);s=0;break}}else while(n<t){o[s]=e[n];++s;++n;if(s===this.blockSize){this.compress_(o);s=0;break}}}this.inbuf_=s;this.total_+=t}digest(){const e=[];let t=8*this.total_;this.inbuf_<56?this.update(this.pad_,56-this.inbuf_):this.update(this.pad_,this.blockSize-(this.inbuf_-56));for(let e=this.blockSize-1;e>=56;e--){this.buf_[e]=255&t;t/=256}this.compress_(this.buf_);let r=0;for(let t=0;t<5;t++)for(let n=24;n>=0;n-=8){e[r]=this.chain_[t]>>n&255;++r}return e}}\n/**\n * Helper to make a Subscribe function (just like Promise helps make a\n * Thenable).\n *\n * @param executor Function which can make calls to a single Observer\n *     as a proxy.\n * @param onNoObservers Callback when count of Observers goes to zero.\n */function createSubscribe(e,t){const r=new ObserverProxy(e,t);return r.subscribe.bind(r)}class ObserverProxy{\n/**\n     * @param executor Function which can make calls to a single Observer\n     *     as a proxy.\n     * @param onNoObservers Callback when count of Observers goes to zero.\n     */\nconstructor(e,t){this.observers=[];this.unsubscribes=[];this.observerCount=0;this.task=Promise.resolve();this.finalized=false;this.onNoObservers=t;this.task.then((()=>{e(this)})).catch((e=>{this.error(e)}))}next(e){this.forEachObserver((t=>{t.next(e)}))}error(e){this.forEachObserver((t=>{t.error(e)}));this.close(e)}complete(){this.forEachObserver((e=>{e.complete()}));this.close()}subscribe(e,t,r){let n;if(void 0===e&&void 0===t&&void 0===r)throw new Error(\"Missing Observer.\");n=implementsAnyMethods(e,[\"next\",\"error\",\"complete\"])?e:{next:e,error:t,complete:r};void 0===n.next&&(n.next=noop);void 0===n.error&&(n.error=noop);void 0===n.complete&&(n.complete=noop);const o=this.unsubscribeOne.bind(this,this.observers.length);this.finalized&&this.task.then((()=>{try{this.finalError?n.error(this.finalError):n.complete()}catch(e){}}));this.observers.push(n);return o}unsubscribeOne(e){if(void 0!==this.observers&&void 0!==this.observers[e]){delete this.observers[e];this.observerCount-=1;0===this.observerCount&&void 0!==this.onNoObservers&&this.onNoObservers(this)}}forEachObserver(e){if(!this.finalized)for(let t=0;t<this.observers.length;t++)this.sendOne(t,e)}sendOne(e,t){this.task.then((()=>{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){if(!this.finalized){this.finalized=true;void 0!==e&&(this.finalError=e);this.task.then((()=>{this.observers=void 0;this.onNoObservers=void 0}))}}}function async(e,t){return(...r)=>{Promise.resolve(true).then((()=>{e(...r)})).catch((e=>{t&&t(e)}))}}function implementsAnyMethods(e,t){if(\"object\"!==typeof e||null===e)return false;for(const r of t)if(r in e&&\"function\"===typeof e[r])return true;return false}function noop(){}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Check to make sure the appropriate number of arguments are provided for a public function.\n * Throws an error if it fails.\n *\n * @param fnName The function name\n * @param minCount The minimum number of arguments to allow for the function call\n * @param maxCount The maximum number of argument to allow for the function call\n * @param argCount The actual number of arguments provided.\n */const validateArgCount=function(e,t,r,n){let o;n<t?o=\"at least \"+t:n>r&&(o=0===r?\"none\":\"no more than \"+r);if(o){const t=e+\" failed: Was called with \"+n+(1===n?\" argument.\":\" arguments.\")+\" Expects \"+o+\".\";throw new Error(t)}};\n/**\n * Generates a string to prefix an error message about failed argument validation\n *\n * @param fnName The function name\n * @param argName The name of the argument\n * @return The prefix to add to the error thrown for validation.\n */function errorPrefix(e,t){return`${e} failed: ${t} argument `}\n/**\n * @param fnName\n * @param argumentNumber\n * @param namespace\n * @param optional\n */function validateNamespace(e,t,r){if((!r||t)&&\"string\"!==typeof t)throw new Error(errorPrefix(e,\"namespace\")+\"must be a valid firebase namespace.\")}function validateCallback(e,t,r,n){if((!n||r)&&\"function\"!==typeof r)throw new Error(errorPrefix(e,t)+\"must be a valid function.\")}function validateContextObject(e,t,r,n){if((!n||r)&&(\"object\"!==typeof r||null===r))throw new Error(errorPrefix(e,t)+\"must be a valid context object.\")}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * @param {string} str\n * @return {Array}\n */const stringToByteArray=function(e){const t=[];let r=0;for(let n=0;n<e.length;n++){let o=e.charCodeAt(n);if(o>=55296&&o<=56319){const t=o-55296;n++;assert(n<e.length,\"Surrogate pair missing trail surrogate.\");const r=e.charCodeAt(n)-56320;o=65536+(t<<10)+r}if(o<128)t[r++]=o;else if(o<2048){t[r++]=o>>6|192;t[r++]=63&o|128}else if(o<65536){t[r++]=o>>12|224;t[r++]=o>>6&63|128;t[r++]=63&o|128}else{t[r++]=o>>18|240;t[r++]=o>>12&63|128;t[r++]=o>>6&63|128;t[r++]=63&o|128}}return t};\n/**\n * Calculate length without actually converting; useful for doing cheaper validation.\n * @param {string} str\n * @return {number}\n */const stringLength=function(e){let t=0;for(let r=0;r<e.length;r++){const n=e.charCodeAt(r);if(n<128)t++;else if(n<2048)t+=2;else if(n>=55296&&n<=56319){t+=4;r++}else t+=3}return t};\n/**\n * @license\n * Copyright 2022 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */const uuidv4=function(){return\"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx\".replace(/[xy]/g,(e=>{const t=16*Math.random()|0,r=\"x\"===e?t:3&t|8;return r.toString(16)}))};\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */const o=1e3;const s=2;const i=144e5;const c=.5;function calculateBackoffMillis(e,t=o,r=s){const n=t*Math.pow(r,e);const a=Math.round(c*n*(Math.random()-.5)*2);return Math.min(i,n+a)}\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */function ordinal(e){return Number.isFinite(e)?e+indicator(e):`${e}`}function indicator(e){e=Math.abs(e);const t=e%100;if(t>=10&&t<=20)return\"th\";const r=e%10;return 1===r?\"st\":2===r?\"nd\":3===r?\"rd\":\"th\"}\n/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */function getModularInstance(e){return e&&e._delegate?e._delegate:e}export{e as CONSTANTS,Deferred,ErrorFactory,FirebaseError,i as MAX_VALUE_MILLIS,c as RANDOM_FACTOR,Sha1,areCookiesEnabled,assert,assertionError,async,t as base64,base64Decode,base64Encode,base64urlEncodeWithoutPadding,calculateBackoffMillis,contains,createMockUserToken,createSubscribe,decode,deepCopy,deepEqual,deepExtend,errorPrefix,extractQuerystring,getDefaultAppConfig,getDefaultEmulatorHost,getDefaultEmulatorHostnameAndPort,getExperimentalSetting,getGlobal,getModularInstance,getUA,isAdmin,isBrowser,isBrowserExtension,isElectron,isEmpty,isIE,isIndexedDBAvailable,isMobileCordova,isNode,isNodeSdk,isReactNative,isSafari,isUWP,isValidFormat,isValidTimestamp,issuedAtTime,jsonEval,map,ordinal,promiseWithTimeout,querystring,querystringDecode,safeGet,stringLength,stringToByteArray,stringify,uuidv4,validateArgCount,validateCallback,validateContextObject,validateIndexedDBOpenable,validateNamespace};\n\n//# sourceMappingURL=index.esm2017.js.map", "import{Deferred as t}from\"@firebase/util\";class Component{\n/**\n     *\n     * @param name The public service name, e.g. app, auth, firestore, database\n     * @param instanceFactory Service factory responsible for creating the public interface\n     * @param type whether the service provided by the component is public or private\n     */\nconstructor(t,e,n){this.name=t;this.instanceFactory=e;this.type=n;this.multipleInstances=false;this.serviceProps={};this.instantiationMode=\"LAZY\";this.onInstanceCreated=null}setInstantiationMode(t){this.instantiationMode=t;return this}setMultipleInstances(t){this.multipleInstances=t;return this}setServiceProps(t){this.serviceProps=t;return this}setInstanceCreatedCallback(t){this.onInstanceCreated=t;return this}}\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */const e=\"[DEFAULT]\";\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */class Provider{constructor(t,e){this.name=t;this.container=e;this.component=null;this.instances=new Map;this.instancesDeferred=new Map;this.instancesOptions=new Map;this.onInitCallbacks=new Map}\n/**\n     * @param identifier A provider can provide mulitple instances of a service\n     * if this.component.multipleInstances is true.\n     */get(e){const n=this.normalizeInstanceIdentifier(e);if(!this.instancesDeferred.has(n)){const e=new t;this.instancesDeferred.set(n,e);if(this.isInitialized(n)||this.shouldAutoInitialize())try{const t=this.getOrInitializeService({instanceIdentifier:n});t&&e.resolve(t)}catch(t){}}return this.instancesDeferred.get(n).promise}getImmediate(t){var e;const n=this.normalizeInstanceIdentifier(null===t||void 0===t?void 0:t.identifier);const i=null!==(e=null===t||void 0===t?void 0:t.optional)&&void 0!==e&&e;if(!this.isInitialized(n)&&!this.shouldAutoInitialize()){if(i)return null;throw Error(`Service ${this.name} is not available`)}try{return this.getOrInitializeService({instanceIdentifier:n})}catch(t){if(i)return null;throw t}}getComponent(){return this.component}setComponent(t){if(t.name!==this.name)throw Error(`Mismatching Component ${t.name} for Provider ${this.name}.`);if(this.component)throw Error(`Component for ${this.name} has already been provided`);this.component=t;if(this.shouldAutoInitialize()){if(isComponentEager(t))try{this.getOrInitializeService({instanceIdentifier:e})}catch(t){}for(const[t,e]of this.instancesDeferred.entries()){const n=this.normalizeInstanceIdentifier(t);try{const t=this.getOrInitializeService({instanceIdentifier:n});e.resolve(t)}catch(t){}}}}clearInstance(t=e){this.instancesDeferred.delete(t);this.instancesOptions.delete(t);this.instances.delete(t)}async delete(){const t=Array.from(this.instances.values());await Promise.all([...t.filter((t=>\"INTERNAL\"in t)).map((t=>t.INTERNAL.delete())),...t.filter((t=>\"_delete\"in t)).map((t=>t._delete()))])}isComponentSet(){return null!=this.component}isInitialized(t=e){return this.instances.has(t)}getOptions(t=e){return this.instancesOptions.get(t)||{}}initialize(t={}){const{options:e={}}=t;const n=this.normalizeInstanceIdentifier(t.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`);const i=this.getOrInitializeService({instanceIdentifier:n,options:e});for(const[t,e]of this.instancesDeferred.entries()){const s=this.normalizeInstanceIdentifier(t);n===s&&e.resolve(i)}return i}\n/**\n     *\n     * @param callback - a function that will be invoked  after the provider has been initialized by calling provider.initialize().\n     * The function is invoked SYNCHRONOUSLY, so it should not execute any longrunning tasks in order to not block the program.\n     *\n     * @param identifier An optional instance identifier\n     * @returns a function to unregister the callback\n     */onInit(t,e){var n;const i=this.normalizeInstanceIdentifier(e);const s=null!==(n=this.onInitCallbacks.get(i))&&void 0!==n?n:new Set;s.add(t);this.onInitCallbacks.set(i,s);const r=this.instances.get(i);r&&t(r,i);return()=>{s.delete(t)}}\n/**\n     * Invoke onInit callbacks synchronously\n     * @param instance the service instance`\n     */invokeOnInitCallbacks(t,e){const n=this.onInitCallbacks.get(e);if(n)for(const i of n)try{i(t,e)}catch(t){}}getOrInitializeService({instanceIdentifier:t,options:e={}}){let n=this.instances.get(t);if(!n&&this.component){n=this.component.instanceFactory(this.container,{instanceIdentifier:normalizeIdentifierForFactory(t),options:e});this.instances.set(t,n);this.instancesOptions.set(t,e);this.invokeOnInitCallbacks(n,t);if(this.component.onInstanceCreated)try{this.component.onInstanceCreated(this.container,t,n)}catch(t){}}return n||null}normalizeInstanceIdentifier(t=e){return this.component?this.component.multipleInstances?t:e:t}shouldAutoInitialize(){return!!this.component&&\"EXPLICIT\"!==this.component.instantiationMode}}function normalizeIdentifierForFactory(t){return t===e?void 0:t}function isComponentEager(t){return\"EAGER\"===t.instantiationMode}\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */class ComponentContainer{constructor(t){this.name=t;this.providers=new Map}\n/**\n     *\n     * @param component Component being added\n     * @param overwrite When a component with the same name has already been registered,\n     * if overwrite is true: overwrite the existing component with the new component and create a new\n     * provider with the new component. It can be useful in tests where you want to use different mocks\n     * for different tests.\n     * if overwrite is false: throw an exception\n     */addComponent(t){const e=this.getProvider(t.name);if(e.isComponentSet())throw new Error(`Component ${t.name} has already been registered with ${this.name}`);e.setComponent(t)}addOrOverwriteComponent(t){const e=this.getProvider(t.name);e.isComponentSet()&&this.providers.delete(t.name);this.addComponent(t)}getProvider(t){if(this.providers.has(t))return this.providers.get(t);const e=new Provider(t,this);this.providers.set(t,e);return e}getProviders(){return Array.from(this.providers.values())}}export{Component,ComponentContainer,Provider};\n\n//# sourceMappingURL=index.esm2017.js.map", "/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nconst e=[];var r;(function(e){e[e.DEBUG=0]=\"DEBUG\";e[e.VERBOSE=1]=\"VERBOSE\";e[e.INFO=2]=\"INFO\";e[e.WARN=3]=\"WARN\";e[e.ERROR=4]=\"ERROR\";e[e.SILENT=5]=\"SILENT\"})(r||(r={}));const t={debug:r.DEBUG,verbose:r.VERBOSE,info:r.INFO,warn:r.WARN,error:r.ERROR,silent:r.SILENT};const o=r.INFO;const l={[r.DEBUG]:\"log\",[r.VERBOSE]:\"log\",[r.INFO]:\"info\",[r.WARN]:\"warn\",[r.ERROR]:\"error\"};const defaultLogHandler=(e,r,...t)=>{if(r<e.logLevel)return;const o=(new Date).toISOString();const n=l[r];if(!n)throw new Error(`Attempted to log a message with an invalid logType (value: ${r})`);console[n](`[${o}]  ${e.name}:`,...t)};class Logger{\n/**\n     * Gives you an instance of a Logger to capture messages according to\n     * Firebase's logging scheme.\n     *\n     * @param name The name that the logs will be associated with\n     */\nconstructor(r){this.name=r;this._logLevel=o;this._logHandler=defaultLogHandler;this._userLogHandler=null;e.push(this)}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in r))throw new TypeError(`Invalid value \"${e}\" assigned to \\`logLevel\\``);this._logLevel=e}setLogLevel(e){this._logLevel=\"string\"===typeof e?t[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if(\"function\"!==typeof e)throw new TypeError(\"Value assigned to `logHandler` must be a function\");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,r.DEBUG,...e);this._logHandler(this,r.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,r.VERBOSE,...e);this._logHandler(this,r.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,r.INFO,...e);this._logHandler(this,r.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,r.WARN,...e);this._logHandler(this,r.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,r.ERROR,...e);this._logHandler(this,r.ERROR,...e)}}function setLogLevel(r){e.forEach((e=>{e.setLogLevel(r)}))}function setUserLogHandler(o,l){for(const n of e){let e=null;l&&l.level&&(e=t[l.level]);n.userLogHandler=null===o?null:(t,l,...n)=>{const s=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(\" \");l>=(null!==e&&void 0!==e?e:t.logLevel)&&o({level:r[l].toLowerCase(),message:s,args:n,type:t.name})}}}export{r as LogLevel,Logger,setLogLevel,setUserLogHandler};\n\n//# sourceMappingURL=index.esm2017.js.map", "const instanceOfAny=(e,t)=>t.some((t=>e instanceof t));let e;let t;function getIdbProxyableTypes(){return e||(e=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])}function getCursorAdvanceMethods(){return t||(t=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])}const r=new WeakMap;const n=new WeakMap;const o=new WeakMap;const s=new WeakMap;const a=new WeakMap;function promisifyRequest(e){const t=new Promise(((t,r)=>{const unlisten=()=>{e.removeEventListener(\"success\",success);e.removeEventListener(\"error\",error)};const success=()=>{t(wrap(e.result));unlisten()};const error=()=>{r(e.error);unlisten()};e.addEventListener(\"success\",success);e.addEventListener(\"error\",error)}));t.then((t=>{t instanceof IDBCursor&&r.set(t,e)})).catch((()=>{}));a.set(t,e);return t}function cacheDonePromiseForTransaction(e){if(n.has(e))return;const t=new Promise(((t,r)=>{const unlisten=()=>{e.removeEventListener(\"complete\",complete);e.removeEventListener(\"error\",error);e.removeEventListener(\"abort\",error)};const complete=()=>{t();unlisten()};const error=()=>{r(e.error||new DOMException(\"AbortError\",\"AbortError\"));unlisten()};e.addEventListener(\"complete\",complete);e.addEventListener(\"error\",error);e.addEventListener(\"abort\",error)}));n.set(e,t)}let c={get(e,t,r){if(e instanceof IDBTransaction){if(\"done\"===t)return n.get(e);if(\"objectStoreNames\"===t)return e.objectStoreNames||o.get(e);if(\"store\"===t)return r.objectStoreNames[1]?void 0:r.objectStore(r.objectStoreNames[0])}return wrap(e[t])},set(e,t,r){e[t]=r;return true},has(e,t){return e instanceof IDBTransaction&&(\"done\"===t||\"store\"===t)||t in e}};function replaceTraps(e){c=e(c)}function wrapFunction(e){return e!==IDBDatabase.prototype.transaction||\"objectStoreNames\"in IDBTransaction.prototype?getCursorAdvanceMethods().includes(e)?function(...t){e.apply(unwrap(this),t);return wrap(r.get(this))}:function(...t){return wrap(e.apply(unwrap(this),t))}:function(t,...r){const n=e.call(unwrap(this),t,...r);o.set(n,t.sort?t.sort():[t]);return wrap(n)}}function transformCachableValue(e){if(\"function\"===typeof e)return wrapFunction(e);e instanceof IDBTransaction&&cacheDonePromiseForTransaction(e);return instanceOfAny(e,getIdbProxyableTypes())?new Proxy(e,c):e}function wrap(e){if(e instanceof IDBRequest)return promisifyRequest(e);if(s.has(e))return s.get(e);const t=transformCachableValue(e);if(t!==e){s.set(e,t);a.set(t,e)}return t}const unwrap=e=>a.get(e);export{a,instanceOfAny as i,replaceTraps as r,unwrap as u,wrap as w};\n\n//# sourceMappingURL=wrap-idb-value.js.map", "import{w as e,r as t}from\"./wrap-idb-value.js\";export{u as unwrap,w as wrap}from\"./wrap-idb-value.js\";\n/**\n * Open a database.\n *\n * @param name Name of the database.\n * @param version Schema version.\n * @param callbacks Additional callbacks.\n */function openDB(t,n,{blocked:o,upgrade:r,blocking:s,terminated:a}={}){const d=indexedDB.open(t,n);const i=e(d);r&&d.addEventListener(\"upgradeneeded\",(t=>{r(e(d.result),t.oldVersion,t.newVersion,e(d.transaction))}));o&&d.addEventListener(\"blocked\",(()=>o()));i.then((e=>{a&&e.addEventListener(\"close\",(()=>a()));s&&e.addEventListener(\"versionchange\",(()=>s()))})).catch((()=>{}));return i}\n/**\n * Delete a database.\n *\n * @param name Name of the database.\n */function deleteDB(t,{blocked:n}={}){const o=indexedDB.deleteDatabase(t);n&&o.addEventListener(\"blocked\",(()=>n()));return e(o).then((()=>{}))}const n=[\"get\",\"getKey\",\"getAll\",\"getAllKeys\",\"count\"];const o=[\"put\",\"add\",\"delete\",\"clear\"];const r=new Map;function getMethod(e,t){if(!(e instanceof IDBDatabase&&!(t in e)&&\"string\"===typeof t))return;if(r.get(t))return r.get(t);const s=t.replace(/FromIndex$/,\"\");const a=t!==s;const d=o.includes(s);if(!(s in(a?IDBIndex:IDBObjectStore).prototype)||!(d||n.includes(s)))return;const method=async function(e,...t){const n=this.transaction(e,d?\"readwrite\":\"readonly\");let o=n.store;a&&(o=o.index(t.shift()));return(await Promise.all([o[s](...t),d&&n.done]))[0]};r.set(t,method);return method}t((e=>({...e,get:(t,n,o)=>getMethod(t,n)||e.get(t,n,o),has:(t,n)=>!!getMethod(t,n)||e.has(t,n)})));export{deleteDB,openDB};\n\n//# sourceMappingURL=index.js.map", "import{Component as e,ComponentContainer as t}from\"@firebase/component\";import{Logger as a,setUserLogHandler as r,setLogLevel as n}from\"@firebase/logger\";import{ErrorFactory as s,getDefaultAppConfig as i,deepEqual as o,FirebaseError as c,base64urlEncodeWithoutPadding as p,isIndexedDBAvailable as h,validateIndexedDBOpenable as l}from\"@firebase/util\";export{FirebaseError}from\"@firebase/util\";import{openDB as f}from\"idb\";\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */class PlatformLoggerServiceImpl{constructor(e){this.container=e}getPlatformInfoString(){const e=this.container.getProviders();return e.map((e=>{if(isVersionServiceProvider(e)){const t=e.getImmediate();return`${t.library}/${t.version}`}return null})).filter((e=>e)).join(\" \")}}\n/**\n *\n * @param provider check if this provider provides a VersionService\n *\n * NOTE: Using Provider<'app-version'> is a hack to indicate that the provider\n * provides VersionService. The provider is not necessarily a 'app-version'\n * provider.\n */function isVersionServiceProvider(e){const t=e.getComponent();return\"VERSION\"===(null===t||void 0===t?void 0:t.type)}const d=\"@firebase/app\";const m=\"0.8.2\";\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */const g=new a(\"@firebase/app\");const b=\"@firebase/app-compat\";const u=\"@firebase/analytics-compat\";const w=\"@firebase/analytics\";const _=\"@firebase/app-check-compat\";const v=\"@firebase/app-check\";const C=\"@firebase/auth\";const D=\"@firebase/auth-compat\";const y=\"@firebase/database\";const I=\"@firebase/database-compat\";const S=\"@firebase/functions\";const E=\"@firebase/functions-compat\";const P=\"@firebase/installations\";const A=\"@firebase/installations-compat\";const H=\"@firebase/messaging\";const $=\"@firebase/messaging-compat\";const x=\"@firebase/performance\";const O=\"@firebase/performance-compat\";const B=\"@firebase/remote-config\";const F=\"@firebase/remote-config-compat\";const N=\"@firebase/storage\";const k=\"@firebase/storage-compat\";const L=\"@firebase/firestore\";const T=\"@firebase/firestore-compat\";const j=\"firebase\";const U=\"9.12.1\";\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */const V=\"[DEFAULT]\";const M={[d]:\"fire-core\",[b]:\"fire-core-compat\",[w]:\"fire-analytics\",[u]:\"fire-analytics-compat\",[v]:\"fire-app-check\",[_]:\"fire-app-check-compat\",[C]:\"fire-auth\",[D]:\"fire-auth-compat\",[y]:\"fire-rtdb\",[I]:\"fire-rtdb-compat\",[S]:\"fire-fn\",[E]:\"fire-fn-compat\",[P]:\"fire-iid\",[A]:\"fire-iid-compat\",[H]:\"fire-fcm\",[$]:\"fire-fcm-compat\",[x]:\"fire-perf\",[O]:\"fire-perf-compat\",[B]:\"fire-rc\",[F]:\"fire-rc-compat\",[N]:\"fire-gcs\",[k]:\"fire-gcs-compat\",[L]:\"fire-fst\",[T]:\"fire-fst-compat\",\"fire-js\":\"fire-js\",[j]:\"fire-js-all\"};\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */const R=new Map;const z=new Map;\n/**\n * @param component - the component being added to this app's container\n *\n * @internal\n */function _addComponent(e,t){try{e.container.addComponent(t)}catch(a){g.debug(`Component ${t.name} failed to register with FirebaseApp ${e.name}`,a)}}function _addOrOverwriteComponent(e,t){e.container.addOrOverwriteComponent(t)}\n/**\n *\n * @param component - the component to register\n * @returns whether or not the component is registered successfully\n *\n * @internal\n */function _registerComponent(e){const t=e.name;if(z.has(t)){g.debug(`There were multiple attempts to register component ${t}.`);return false}z.set(t,e);for(const t of R.values())_addComponent(t,e);return true}\n/**\n *\n * @param app - FirebaseApp instance\n * @param name - service name\n *\n * @returns the provider for the service with the matching name\n *\n * @internal\n */function _getProvider(e,t){const a=e.container.getProvider(\"heartbeat\").getImmediate({optional:true});a&&void a.triggerHeartbeat();return e.container.getProvider(t)}\n/**\n *\n * @param app - FirebaseApp instance\n * @param name - service name\n * @param instanceIdentifier - service instance identifier in case the service supports multiple instances\n *\n * @internal\n */function _removeServiceInstance(e,t,a=V){_getProvider(e,t).clearInstance(a)}function _clearComponents(){z.clear()}\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */const K={\"no-app\":\"No Firebase App '{$appName}' has been created - call Firebase App.initializeApp()\",\"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\",\"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}.\"};const J=new s(\"app\",\"Firebase\",K);\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */class FirebaseAppImpl{constructor(t,a,r){this._isDeleted=false;this._options=Object.assign({},t);this._config=Object.assign({},a);this._name=a.name;this._automaticDataCollectionEnabled=a.automaticDataCollectionEnabled;this._container=r;this.container.addComponent(new e(\"app\",(()=>this),\"PUBLIC\"))}get automaticDataCollectionEnabled(){this.checkDestroyed();return this._automaticDataCollectionEnabled}set automaticDataCollectionEnabled(e){this.checkDestroyed();this._automaticDataCollectionEnabled=e}get name(){this.checkDestroyed();return this._name}get options(){this.checkDestroyed();return this._options}get config(){this.checkDestroyed();return this._config}get container(){return this._container}get isDeleted(){return this._isDeleted}set isDeleted(e){this._isDeleted=e}checkDestroyed(){if(this.isDeleted)throw J.create(\"app-deleted\",{appName:this._name})}}\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */const Y=U;function initializeApp(e,a={}){let r=e;if(\"object\"!==typeof a){const e=a;a={name:e}}const n=Object.assign({name:V,automaticDataCollectionEnabled:false},a);const s=n.name;if(\"string\"!==typeof s||!s)throw J.create(\"bad-app-name\",{appName:String(s)});r||(r=i());if(!r)throw J.create(\"no-options\");const c=R.get(s);if(c){if(o(r,c.options)&&o(n,c.config))return c;throw J.create(\"duplicate-app\",{appName:s})}const p=new t(s);for(const e of z.values())p.addComponent(e);const h=new FirebaseAppImpl(r,n,p);R.set(s,h);return h}\n/**\n * Retrieves a {@link @firebase/app#FirebaseApp} instance.\n *\n * When called with no arguments, the default app is returned. When an app name\n * is provided, the app corresponding to that name is returned.\n *\n * An exception is thrown if the app being retrieved has not yet been\n * initialized.\n *\n * @example\n * ```javascript\n * // Return the default app\n * const app = getApp();\n * ```\n *\n * @example\n * ```javascript\n * // Return a named app\n * const otherApp = getApp(\"otherApp\");\n * ```\n *\n * @param name - Optional name of the app to return. If no name is\n *   provided, the default is `\"[DEFAULT]\"`.\n *\n * @returns The app corresponding to the provided app name.\n *   If no app name is provided, the default app is returned.\n *\n * @public\n */function getApp(e=V){const t=R.get(e);if(!t&&e===V)return initializeApp();if(!t)throw J.create(\"no-app\",{appName:e});return t}function getApps(){return Array.from(R.values())}async function deleteApp(e){const t=e.name;if(R.has(t)){R.delete(t);await Promise.all(e.container.getProviders().map((e=>e.delete())));e.isDeleted=true}}\n/**\n * Registers a library's name and version for platform logging purposes.\n * @param library - Name of 1p or 3p library (e.g. firestore, angularfire)\n * @param version - Current version of that library.\n * @param variant - Bundle variant, e.g., node, rn, etc.\n *\n * @public\n */function registerVersion(t,a,r){var n;let s=null!==(n=M[t])&&void 0!==n?n:t;r&&(s+=`-${r}`);const i=s.match(/\\s|\\//);const o=a.match(/\\s|\\//);if(i||o){const e=[`Unable to register library \"${s}\" with version \"${a}\":`];i&&e.push(`library name \"${s}\" contains illegal characters (whitespace or \"/\")`);i&&o&&e.push(\"and\");o&&e.push(`version name \"${a}\" contains illegal characters (whitespace or \"/\")`);g.warn(e.join(\" \"))}else _registerComponent(new e(`${s}-version`,(()=>({library:s,version:a})),\"VERSION\"))}\n/**\n * Sets log handler for all Firebase SDKs.\n * @param logCallback - An optional custom log handler that executes user code whenever\n * the Firebase SDK makes a logging call.\n *\n * @public\n */function onLog(e,t){if(null!==e&&\"function\"!==typeof e)throw J.create(\"invalid-log-argument\");r(e,t)}function setLogLevel(e){n(e)}\n/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */const q=\"firebase-heartbeat-database\";const G=1;const Q=\"firebase-heartbeat-store\";let W=null;function getDbPromise(){W||(W=f(q,G,{upgrade:(e,t)=>{switch(t){case 0:e.createObjectStore(Q)}}}).catch((e=>{throw J.create(\"idb-open\",{originalErrorMessage:e.message})})));return W}async function readHeartbeatsFromIndexedDB(e){var t;try{const t=await getDbPromise();return t.transaction(Q).objectStore(Q).get(computeKey(e))}catch(e){if(e instanceof c)g.warn(e.message);else{const a=J.create(\"idb-get\",{originalErrorMessage:null===(t=e)||void 0===t?void 0:t.message});g.warn(a.message)}}}async function writeHeartbeatsToIndexedDB(e,t){var a;try{const a=await getDbPromise();const r=a.transaction(Q,\"readwrite\");const n=r.objectStore(Q);await n.put(t,computeKey(e));return r.done}catch(e){if(e instanceof c)g.warn(e.message);else{const t=J.create(\"idb-set\",{originalErrorMessage:null===(a=e)||void 0===a?void 0:a.message});g.warn(t.message)}}}function computeKey(e){return`${e.name}!${e.options.appId}`}\n/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */const X=1024;const Z=2592e6;class HeartbeatServiceImpl{constructor(e){this.container=e;this._heartbeatsCache=null;const t=this.container.getProvider(\"app\").getImmediate();this._storage=new HeartbeatStorageImpl(t);this._heartbeatsCachePromise=this._storage.read().then((e=>{this._heartbeatsCache=e;return e}))}async triggerHeartbeat(){const e=this.container.getProvider(\"platform-logger\").getImmediate();const t=e.getPlatformInfoString();const a=getUTCDateString();null===this._heartbeatsCache&&(this._heartbeatsCache=await this._heartbeatsCachePromise);if(this._heartbeatsCache.lastSentHeartbeatDate!==a&&!this._heartbeatsCache.heartbeats.some((e=>e.date===a))){this._heartbeatsCache.heartbeats.push({date:a,agent:t});this._heartbeatsCache.heartbeats=this._heartbeatsCache.heartbeats.filter((e=>{const t=new Date(e.date).valueOf();const a=Date.now();return a-t<=Z}));return this._storage.overwrite(this._heartbeatsCache)}}async getHeartbeatsHeader(){null===this._heartbeatsCache&&await this._heartbeatsCachePromise;if(null===this._heartbeatsCache||0===this._heartbeatsCache.heartbeats.length)return\"\";const e=getUTCDateString();const{heartbeatsToSend:t,unsentEntries:a}=extractHeartbeatsForHeader(this._heartbeatsCache.heartbeats);const r=p(JSON.stringify({version:2,heartbeats:t}));this._heartbeatsCache.lastSentHeartbeatDate=e;if(a.length>0){this._heartbeatsCache.heartbeats=a;await this._storage.overwrite(this._heartbeatsCache)}else{this._heartbeatsCache.heartbeats=[];void this._storage.overwrite(this._heartbeatsCache)}return r}}function getUTCDateString(){const e=new Date;return e.toISOString().substring(0,10)}function extractHeartbeatsForHeader(e,t=X){const a=[];let r=e.slice();for(const n of e){const e=a.find((e=>e.agent===n.agent));if(e){e.dates.push(n.date);if(countBytes(a)>t){e.dates.pop();break}}else{a.push({agent:n.agent,dates:[n.date]});if(countBytes(a)>t){a.pop();break}}r=r.slice(1)}return{heartbeatsToSend:a,unsentEntries:r}}class HeartbeatStorageImpl{constructor(e){this.app=e;this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return!!h()&&l().then((()=>true)).catch((()=>false))}async read(){const e=await this._canUseIndexedDBPromise;if(e){const e=await readHeartbeatsFromIndexedDB(this.app);return e||{heartbeats:[]}}return{heartbeats:[]}}async overwrite(e){var t;const a=await this._canUseIndexedDBPromise;if(a){const a=await this.read();return writeHeartbeatsToIndexedDB(this.app,{lastSentHeartbeatDate:null!==(t=e.lastSentHeartbeatDate)&&void 0!==t?t:a.lastSentHeartbeatDate,heartbeats:e.heartbeats})}}async add(e){var t;const a=await this._canUseIndexedDBPromise;if(a){const a=await this.read();return writeHeartbeatsToIndexedDB(this.app,{lastSentHeartbeatDate:null!==(t=e.lastSentHeartbeatDate)&&void 0!==t?t:a.lastSentHeartbeatDate,heartbeats:[...a.heartbeats,...e.heartbeats]})}}}function countBytes(e){return p(JSON.stringify({version:2,heartbeats:e})).length}\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */function registerCoreComponents(t){_registerComponent(new e(\"platform-logger\",(e=>new PlatformLoggerServiceImpl(e)),\"PRIVATE\"));_registerComponent(new e(\"heartbeat\",(e=>new HeartbeatServiceImpl(e)),\"PRIVATE\"));registerVersion(d,m,t);registerVersion(d,m,\"esm2017\");registerVersion(\"fire-js\",\"\")}registerCoreComponents(\"\");export{Y as SDK_VERSION,V as _DEFAULT_ENTRY_NAME,_addComponent,_addOrOverwriteComponent,R as _apps,_clearComponents,z as _components,_getProvider,_registerComponent,_removeServiceInstance,deleteApp,getApp,getApps,initializeApp,onLog,registerVersion,setLogLevel};\n\n//# sourceMappingURL=index.esm2017.js.map", "import{registerVersion as r}from\"@firebase/app\";export*from\"@firebase/app\";var a=\"firebase\";var p=\"9.12.1\";\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */r(a,p,\"app\");\n\n//# sourceMappingURL=index.esm.js.map", "import{getApp as e,_getProvider as t,SDK_VERSION as n,_registerComponent as r,registerVersion as i}from\"@firebase/app\";import{Component as s}from\"@firebase/component\";import{stringify as o,jsonEval as a,contains as l,stringToByteArray as c,Sha1 as h,base64 as u,assert as d,isNodeSdk as p,deepCopy as _,base64Encode as f,isMobileCordova as m,stringLength as y,Deferred as g,safeGet as v,isAdmin as C,isValidFormat as w,isEmpty as T,isReactNative as P,assertionError as S,map as E,querystring as I,errorPrefix as N,getModularInstance as b,getDefaultEmulatorHostnameAndPort as R,createMockUserToken as k}from\"@firebase/util\";import{Logger as x,LogLevel as A}from\"@firebase/logger\";const F=\"@firebase/database\";const O=\"0.14.3\";\n/**\n * @license\n * Copyright 2019 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */let L=\"\";function setSDKVersion(e){L=e}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */class DOMStorageWrapper{\n/**\n     * @param domStorage_ - The underlying storage object (e.g. localStorage or sessionStorage)\n     */\nconstructor(e){this.domStorage_=e;this.prefix_=\"firebase:\"}\n/**\n     * @param key - The key to save the value under\n     * @param value - The value being stored, or null to remove the key.\n     */set(e,t){null==t?this.domStorage_.removeItem(this.prefixedName_(e)):this.domStorage_.setItem(this.prefixedName_(e),o(t))}\n/**\n     * @returns The value that was stored under this key, or null\n     */get(e){const t=this.domStorage_.getItem(this.prefixedName_(e));return null==t?null:a(t)}remove(e){this.domStorage_.removeItem(this.prefixedName_(e))}prefixedName_(e){return this.prefix_+e}toString(){return this.domStorage_.toString()}}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */class MemoryStorage{constructor(){this.cache_={};this.isInMemoryStorage=true}set(e,t){null==t?delete this.cache_[e]:this.cache_[e]=t}get(e){return l(this.cache_,e)?this.cache_[e]:null}remove(e){delete this.cache_[e]}}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Helper to create a DOMStorageWrapper or else fall back to MemoryStorage.\n * TODO: Once MemoryStorage and DOMStorageWrapper have a shared interface this method annotation should change\n * to reflect this type\n *\n * @param domStorageName - Name of the underlying storage object\n *   (e.g. 'localStorage' or 'sessionStorage').\n * @returns Turning off type information until a common interface is defined.\n */const createStoragefor=function(e){try{if(\"undefined\"!==typeof window&&\"undefined\"!==typeof window[e]){const t=window[e];t.setItem(\"firebase:sentinel\",\"cache\");t.removeItem(\"firebase:sentinel\");return new DOMStorageWrapper(t)}}catch(e){}return new MemoryStorage};const D=createStoragefor(\"localStorage\");const M=createStoragefor(\"sessionStorage\");\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */const W=new x(\"@firebase/database\");const q=function(){let e=1;return function(){return e++}}();\n/**\n * Sha1 hash of the input string\n * @param str - The string to hash\n * @returns {!string} The resulting hash\n */const sha1=function(e){const t=c(e);const n=new h;n.update(t);const r=n.digest();return u.encodeByteArray(r)};const buildLogMessage_=function(...e){let t=\"\";for(let n=0;n<e.length;n++){const r=e[n];Array.isArray(r)||r&&\"object\"===typeof r&&\"number\"===typeof r.length?t+=buildLogMessage_.apply(null,r):t+=\"object\"===typeof r?o(r):r;t+=\" \"}return t};let G=null;let Q=true;\n/**\n * The implementation of Firebase.enableLogging (defined here to break dependencies)\n * @param logger_ - A flag to turn on logging, or a custom logger\n * @param persistent - Whether or not to persist logging settings across refreshes\n */const enableLogging$1=function(e,t){d(!t||true===e||false===e,\"Can't turn on custom loggers persistently.\");if(true===e){W.logLevel=A.VERBOSE;G=W.log.bind(W);t&&M.set(\"logging_enabled\",true)}else if(\"function\"===typeof e)G=e;else{G=null;M.remove(\"logging_enabled\")}};const log=function(...e){if(true===Q){Q=false;null===G&&true===M.get(\"logging_enabled\")&&enableLogging$1(true)}if(G){const t=buildLogMessage_.apply(null,e);G(t)}};const logWrapper=function(e){return function(...t){log(e,...t)}};const error=function(...e){const t=\"FIREBASE INTERNAL ERROR: \"+buildLogMessage_(...e);W.error(t)};const fatal=function(...e){const t=`FIREBASE FATAL ERROR: ${buildLogMessage_(...e)}`;W.error(t);throw new Error(t)};const warn=function(...e){const t=\"FIREBASE WARNING: \"+buildLogMessage_(...e);W.warn(t)};const warnIfPageIsSecure=function(){\"undefined\"!==typeof window&&window.location&&window.location.protocol&&-1!==window.location.protocol.indexOf(\"https:\")&&warn(\"Insecure Firebase access from a secure page. Please use https in calls to new Firebase().\")};const isInvalidJSONNumber=function(e){return\"number\"===typeof e&&(e!==e||e===Number.POSITIVE_INFINITY||e===Number.NEGATIVE_INFINITY)};const executeWhenDOMReady=function(e){if(p()||\"complete\"===document.readyState)e();else{let t=false;const wrappedFn=function(){if(document.body){if(!t){t=true;e()}}else setTimeout(wrappedFn,Math.floor(10))};if(document.addEventListener){document.addEventListener(\"DOMContentLoaded\",wrappedFn,false);window.addEventListener(\"load\",wrappedFn,false)}else if(document.attachEvent){document.attachEvent(\"onreadystatechange\",(()=>{\"complete\"===document.readyState&&wrappedFn()}));window.attachEvent(\"onload\",wrappedFn)}}};const U=\"[MIN_NAME]\";const V=\"[MAX_NAME]\";const nameCompare=function(e,t){if(e===t)return 0;if(e===U||t===V)return-1;if(t===U||e===V)return 1;{const n=tryParseInt(e),r=tryParseInt(t);return null!==n?null!==r?n-r===0?e.length-t.length:n-r:-1:null!==r?1:e<t?-1:1}};\n/**\n * @returns {!number} comparison result.\n */const stringCompare=function(e,t){return e===t?0:e<t?-1:1};const requireKey=function(e,t){if(t&&e in t)return t[e];throw new Error(\"Missing required key (\"+e+\") in object: \"+o(t))};const ObjectToUniqueKey=function(e){if(\"object\"!==typeof e||null===e)return o(e);const t=[];for(const n in e)t.push(n);t.sort();let n=\"{\";for(let r=0;r<t.length;r++){0!==r&&(n+=\",\");n+=o(t[r]);n+=\":\";n+=ObjectToUniqueKey(e[t[r]])}n+=\"}\";return n};\n/**\n * Splits a string into a number of smaller segments of maximum size\n * @param str - The string\n * @param segsize - The maximum number of chars in the string.\n * @returns The string, split into appropriately-sized chunks\n */const splitStringBySize=function(e,t){const 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};\n/**\n * Apply a function to each (key, value) pair in an object or\n * apply a function to each (index, value) pair in an array\n * @param obj - The object or array to iterate over\n * @param fn - The function to apply\n */function each(e,t){for(const n in e)e.hasOwnProperty(n)&&t(n,e[n])}\n/**\n * Borrowed from http://hg.secondlife.com/llsd/src/tip/js/typedarray.js (MIT License)\n * I made one modification at the end and removed the NaN / Infinity\n * handling (since it seemed broken [caused an overflow] and we don't need it).  See MJL comments.\n * @param v - A double\n *\n */const doubleToIEEE754String=function(e){d(!isInvalidJSONNumber(e),\"Invalid JSON number\");const t=11,n=52;const r=(1<<t-1)-1;let i,s,o,a,l;if(0===e){s=0;o=0;i=1/e===-Infinity?1:0}else{i=e<0;e=Math.abs(e);if(e>=Math.pow(2,1-r)){a=Math.min(Math.floor(Math.log(e)/Math.LN2),r);s=a+r;o=Math.round(e*Math.pow(2,n-a)-Math.pow(2,n))}else{s=0;o=Math.round(e/Math.pow(2,1-r-n))}}const c=[];for(l=n;l;l-=1){c.push(o%2?1:0);o=Math.floor(o/2)}for(l=t;l;l-=1){c.push(s%2?1:0);s=Math.floor(s/2)}c.push(i?1:0);c.reverse();const h=c.join(\"\");let u=\"\";for(l=0;l<64;l+=8){let e=parseInt(h.substr(l,8),2).toString(16);1===e.length&&(e=\"0\"+e);u+=e}return u.toLowerCase()};const isChromeExtensionContentScript=function(){return!!(\"object\"===typeof window&&window.chrome&&window.chrome.extension&&!/^chrome/.test(window.location.href))};const isWindowsStoreApp=function(){return\"object\"===typeof Windows&&\"object\"===typeof Windows.UI};function errorForServerCode(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);r.code=e.toUpperCase();return r}const B=new RegExp(\"^-?(0*)\\\\d{1,10}$\");const H=-2147483648;const j=2147483647;const tryParseInt=function(e){if(B.test(e)){const t=Number(e);if(t>=H&&t<=j)return t}return null};\n/**\n * Helper to run some code but catch any exceptions and re-throw them later.\n * Useful for preventing user callbacks from breaking internal code.\n *\n * Re-throwing the exception from a setTimeout is a little evil, but it's very\n * convenient (we don't have to try to figure out when is a safe point to\n * re-throw it), and the behavior seems reasonable:\n *\n * * If you aren't pausing on exceptions, you get an error in the console with\n *   the correct stack trace.\n * * If you're pausing on all exceptions, the debugger will pause on your\n *   exception and then again when we rethrow it.\n * * If you're only pausing on uncaught exceptions, the debugger will only pause\n *   on us re-throwing it.\n *\n * @param fn - The code to guard.\n */const exceptionGuard=function(e){try{e()}catch(e){setTimeout((()=>{const t=e.stack||\"\";warn(\"Exception was thrown by user callback.\",t);throw e}),Math.floor(0))}};\n/**\n * @returns {boolean} true if we think we're currently being crawled.\n */const beingCrawled=function(){const e=\"object\"===typeof window&&window.navigator&&window.navigator.userAgent||\"\";return e.search(/googlebot|google webmaster tools|bingbot|yahoo! slurp|baiduspider|yandexbot|duckduckbot/i)>=0};\n/**\n * Same as setTimeout() except on Node.JS it will /not/ prevent the process from exiting.\n *\n * It is removed with clearTimeout() as normal.\n *\n * @param fn - Function to run.\n * @param time - Milliseconds to wait before running.\n * @returns The setTimeout() return value.\n */const setTimeoutNonBlocking=function(e,t){const n=setTimeout(e,t);\"number\"===typeof n&&\"undefined\"!==typeof Deno&&Deno.unrefTimer?Deno.unrefTimer(n):\"object\"===typeof n&&n.unref&&n.unref();return n};\n/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */class AppCheckTokenProvider{constructor(e,t){this.appName_=e;this.appCheckProvider=t;this.appCheck=null===t||void 0===t?void 0:t.getImmediate({optional:true});this.appCheck||(null===t||void 0===t?void 0:t.get().then((e=>this.appCheck=e)))}getToken(e){return this.appCheck?this.appCheck.getToken(e):new Promise(((t,n)=>{setTimeout((()=>{this.appCheck?this.getToken(e).then(t,n):t(null)}),0)}))}addTokenChangeListener(e){var t;null===(t=this.appCheckProvider)||void 0===t?void 0:t.get().then((t=>t.addTokenListener(e)))}notifyForInvalidToken(){warn(`Provided AppCheck credentials for the app named \"${this.appName_}\" are invalid. This usually indicates your app was not initialized correctly.`)}}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */class FirebaseAuthTokenProvider{constructor(e,t,n){this.appName_=e;this.firebaseOptions_=t;this.authProvider_=n;this.auth_=null;this.auth_=n.getImmediate({optional:true});this.auth_||n.onInit((e=>this.auth_=e))}getToken(e){return this.auth_?this.auth_.getToken(e).catch((e=>{if(e&&\"auth/token-not-initialized\"===e.code){log(\"Got auth/token-not-initialized error.  Treating as null token.\");return null}return Promise.reject(e)})):new Promise(((t,n)=>{setTimeout((()=>{this.auth_?this.getToken(e).then(t,n):t(null)}),0)}))}addTokenChangeListener(e){this.auth_?this.auth_.addAuthTokenListener(e):this.authProvider_.get().then((t=>t.addAuthTokenListener(e)))}removeTokenChangeListener(e){this.authProvider_.get().then((t=>t.removeAuthTokenListener(e)))}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/.';warn(e)}}class EmulatorTokenProvider{constructor(e){this.accessToken=e}getToken(e){return Promise.resolve({accessToken:this.accessToken})}addTokenChangeListener(e){e(this.accessToken)}removeTokenChangeListener(e){}notifyForInvalidToken(){}}EmulatorTokenProvider.OWNER=\"owner\";\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */const K=\"5\";const z=\"v\";const Y=\"s\";const $=\"r\";const J=\"f\";const X=/(console\\.firebase|firebase-console-\\w+\\.corp|firebase\\.corp)\\.google\\.com/;const Z=\"ls\";const ee=\"p\";const te=\"ac\";const ne=\"websocket\";const re=\"long_polling\";\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */class RepoInfo{\n/**\n     * @param host - Hostname portion of the url for the repo\n     * @param secure - Whether or not this repo is accessed over ssl\n     * @param namespace - The namespace represented by the repo\n     * @param webSocketOnly - Whether to prefer websockets over all other transports (used by Nest).\n     * @param nodeAdmin - Whether this instance uses Admin SDK credentials\n     * @param persistenceKey - Override the default session persistence storage key\n     */\nconstructor(e,t,n,r,i=false,s=\"\",o=false,a=false){this.secure=t;this.namespace=n;this.webSocketOnly=r;this.nodeAdmin=i;this.persistenceKey=s;this.includeNamespaceInQueryParams=o;this.isUsingEmulator=a;this._host=e.toLowerCase();this._domain=this._host.substr(this._host.indexOf(\".\")+1);this.internalHost=D.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){if(e!==this.internalHost){this.internalHost=e;this.isCacheableHost()&&D.set(\"host:\"+this._host,this.internalHost)}}toString(){let e=this.toURLString();this.persistenceKey&&(e+=\"<\"+this.persistenceKey+\">\");return e}toURLString(){const e=this.secure?\"https://\":\"http://\";const t=this.includeNamespaceInQueryParams?`?ns=${this.namespace}`:\"\";return`${e}${this.host}/${t}`}}function repoInfoNeedsQueryParam(e){return e.host!==e.internalHost||e.isCustomHost()||e.includeNamespaceInQueryParams}\n/**\n * Returns the websocket URL for this repo\n * @param repoInfo - RepoInfo object\n * @param type - of connection\n * @param params - list\n * @returns The URL for this repo\n */function repoInfoConnectionURL(e,t,n){d(\"string\"===typeof t,\"typeof type must == string\");d(\"object\"===typeof n,\"typeof params must == object\");let r;if(t===ne)r=(e.secure?\"wss://\":\"ws://\")+e.internalHost+\"/.ws?\";else{if(t!==re)throw new Error(\"Unknown connection type: \"+t);r=(e.secure?\"https://\":\"http://\")+e.internalHost+\"/.lp?\"}repoInfoNeedsQueryParam(e)&&(n.ns=e.namespace);const i=[];each(n,((e,t)=>{i.push(e+\"=\"+t)}));return r+i.join(\"&\")}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */class StatsCollection{constructor(){this.counters_={}}incrementCounter(e,t=1){l(this.counters_,e)||(this.counters_[e]=0);this.counters_[e]+=t}get(){return _(this.counters_)}}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */const ie={};const se={};function statsManagerGetCollection(e){const t=e.toString();ie[t]||(ie[t]=new StatsCollection);return ie[t]}function statsManagerGetOrCreateReporter(e,t){const n=e.toString();se[n]||(se[n]=t());return se[n]}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */class PacketReceiver{\n/**\n     * @param onMessage_\n     */\nconstructor(e){this.onMessage_=e;this.pendingResponses=[];this.currentResponseNum=0;this.closeAfterResponse=-1;this.onClose=null}closeAfter(e,t){this.closeAfterResponse=e;this.onClose=t;if(this.closeAfterResponse<this.currentResponseNum){this.onClose();this.onClose=null}}handleResponse(e,t){this.pendingResponses[e]=t;while(this.pendingResponses[this.currentResponseNum]){const e=this.pendingResponses[this.currentResponseNum];delete this.pendingResponses[this.currentResponseNum];for(let t=0;t<e.length;++t)e[t]&&exceptionGuard((()=>{this.onMessage_(e[t])}));if(this.currentResponseNum===this.closeAfterResponse){if(this.onClose){this.onClose();this.onClose=null}break}this.currentResponseNum++}}}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */const oe=\"start\";const ae=\"close\";const le=\"pLPCommand\";const ce=\"pRTLPCB\";const he=\"id\";const ue=\"pw\";const de=\"ser\";const pe=\"cb\";const _e=\"seg\";const fe=\"ts\";const me=\"d\";const ye=\"dframe\";const ge=1870;const ve=30;const Ce=ge-ve;const we=25e3;const Te=3e4;class BrowserPollConnection{\n/**\n     * @param connId An identifier for this connection, used for logging\n     * @param repoInfo The info for the endpoint to send data to.\n     * @param applicationId The Firebase App ID for this project.\n     * @param appCheckToken The AppCheck token for this client.\n     * @param authToken The AuthToken to use for this connection.\n     * @param transportSessionId Optional transportSessionid if we are\n     * reconnecting for an existing transport session\n     * @param lastSessionId Optional lastSessionId if the PersistentConnection has\n     * already created a connection previously\n     */\nconstructor(e,t,n,r,i,s,o){this.connId=e;this.repoInfo=t;this.applicationId=n;this.appCheckToken=r;this.authToken=i;this.transportSessionId=s;this.lastSessionId=o;this.bytesSent=0;this.bytesReceived=0;this.everConnected_=false;this.log_=logWrapper(e);this.stats_=statsManagerGetCollection(t);this.urlFn=e=>{this.appCheckToken&&(e[te]=this.appCheckToken);return repoInfoConnectionURL(t,re,e)}}\n/**\n     * @param onMessage - Callback when messages arrive\n     * @param onDisconnect - Callback with connection lost.\n     */open(e,t){this.curSegmentNum=0;this.onDisconnect_=t;this.myPacketOrderer=new PacketReceiver(e);this.isClosed_=false;this.connectTimeoutTimer_=setTimeout((()=>{this.log_(\"Timed out trying to connect.\");this.onClosed_();this.connectTimeoutTimer_=null}),Math.floor(Te));executeWhenDOMReady((()=>{if(this.isClosed_)return;this.scriptTagHolder=new FirebaseIFrameScriptHolder(((...e)=>{const[t,n,r,i,s]=e;this.incrementIncomingBytes_(e);if(this.scriptTagHolder){if(this.connectTimeoutTimer_){clearTimeout(this.connectTimeoutTimer_);this.connectTimeoutTimer_=null}this.everConnected_=true;if(t===oe){this.id=n;this.password=r}else{if(t!==ae)throw new Error(\"Unrecognized command received: \"+t);if(n){this.scriptTagHolder.sendNewPolls=false;this.myPacketOrderer.closeAfter(n,(()=>{this.onClosed_()}))}else this.onClosed_()}}}),((...e)=>{const[t,n]=e;this.incrementIncomingBytes_(e);this.myPacketOrderer.handleResponse(t,n)}),(()=>{this.onClosed_()}),this.urlFn);const e={};e[oe]=\"t\";e[de]=Math.floor(1e8*Math.random());this.scriptTagHolder.uniqueCallbackIdentifier&&(e[pe]=this.scriptTagHolder.uniqueCallbackIdentifier);e[z]=K;this.transportSessionId&&(e[Y]=this.transportSessionId);this.lastSessionId&&(e[Z]=this.lastSessionId);this.applicationId&&(e[ee]=this.applicationId);this.appCheckToken&&(e[te]=this.appCheckToken);\"undefined\"!==typeof location&&location.hostname&&X.test(location.hostname)&&(e[$]=J);const t=this.urlFn(e);this.log_(\"Connecting via long-poll to \"+t);this.scriptTagHolder.addTag(t,(()=>{}))}))}start(){this.scriptTagHolder.startLongPoll(this.id,this.password);this.addDisconnectPingFrame(this.id,this.password)}static forceAllow(){BrowserPollConnection.forceAllow_=true}static forceDisallow(){BrowserPollConnection.forceDisallow_=true}static isAvailable(){return!p()&&(!!BrowserPollConnection.forceAllow_||!BrowserPollConnection.forceDisallow_&&\"undefined\"!==typeof document&&null!=document.createElement&&!isChromeExtensionContentScript()&&!isWindowsStoreApp())}markConnectionHealthy(){}shutdown_(){this.isClosed_=true;if(this.scriptTagHolder){this.scriptTagHolder.close();this.scriptTagHolder=null}if(this.myDisconnFrame){document.body.removeChild(this.myDisconnFrame);this.myDisconnFrame=null}if(this.connectTimeoutTimer_){clearTimeout(this.connectTimeoutTimer_);this.connectTimeoutTimer_=null}}onClosed_(){if(!this.isClosed_){this.log_(\"Longpoll is closing itself\");this.shutdown_();if(this.onDisconnect_){this.onDisconnect_(this.everConnected_);this.onDisconnect_=null}}}close(){if(!this.isClosed_){this.log_(\"Longpoll is being closed.\");this.shutdown_()}}\n/**\n     * Send the JSON object down to the server. It will need to be stringified, base64 encoded, and then\n     * broken into chunks (since URLs have a small maximum length).\n     * @param data - The JSON data to transmit.\n     */send(e){const t=o(e);this.bytesSent+=t.length;this.stats_.incrementCounter(\"bytes_sent\",t.length);const n=f(t);const r=splitStringBySize(n,Ce);for(let e=0;e<r.length;e++){this.scriptTagHolder.enqueueSegment(this.curSegmentNum,r.length,r[e]);this.curSegmentNum++}}addDisconnectPingFrame(e,t){if(p())return;this.myDisconnFrame=document.createElement(\"iframe\");const n={};n[ye]=\"t\";n[he]=e;n[ue]=t;this.myDisconnFrame.src=this.urlFn(n);this.myDisconnFrame.style.display=\"none\";document.body.appendChild(this.myDisconnFrame)}incrementIncomingBytes_(e){const t=o(e).length;this.bytesReceived+=t;this.stats_.incrementCounter(\"bytes_received\",t)}}class FirebaseIFrameScriptHolder{\n/**\n     * @param commandCB - The callback to be called when control commands are recevied from the server.\n     * @param onMessageCB - The callback to be triggered when responses arrive from the server.\n     * @param onDisconnect - The callback to be triggered when this tag holder is closed\n     * @param urlFn - A function that provides the URL of the endpoint to send data to.\n     */\nconstructor(e,t,n,r){this.onDisconnect=n;this.urlFn=r;this.outstandingRequests=new Set;this.pendingSegs=[];this.currentSerial=Math.floor(1e8*Math.random());this.sendNewPolls=true;if(p()){this.commandCB=e;this.onMessageCB=t}else{this.uniqueCallbackIdentifier=q();window[le+this.uniqueCallbackIdentifier]=e;window[ce+this.uniqueCallbackIdentifier]=t;this.myIFrame=FirebaseIFrameScriptHolder.createIFrame_();let n=\"\";if(this.myIFrame.src&&\"javascript:\"===this.myIFrame.src.substr(0,\"javascript:\".length)){const e=document.domain;n='<script>document.domain=\"'+e+'\";<\\/script>'}const r=\"<html><body>\"+n+\"</body></html>\";try{this.myIFrame.doc.open();this.myIFrame.doc.write(r);this.myIFrame.doc.close()}catch(e){log(\"frame writing exception\");e.stack&&log(e.stack);log(e)}}}static createIFrame_(){const e=document.createElement(\"iframe\");e.style.display=\"none\";if(!document.body)throw\"Document body has not initialized. Wait to initialize Firebase until after the document is ready.\";document.body.appendChild(e);try{const t=e.contentWindow.document;t||log(\"No IE domain setting required\")}catch(t){const n=document.domain;e.src=\"javascript:void((function(){document.open();document.domain='\"+n+\"';document.close();})())\"}e.contentDocument?e.doc=e.contentDocument:e.contentWindow?e.doc=e.contentWindow.document:e.document&&(e.doc=e.document);return e}close(){this.alive=false;if(this.myIFrame){this.myIFrame.doc.body.textContent=\"\";setTimeout((()=>{if(null!==this.myIFrame){document.body.removeChild(this.myIFrame);this.myIFrame=null}}),Math.floor(0))}const e=this.onDisconnect;if(e){this.onDisconnect=null;e()}}\n/**\n     * Actually start the long-polling session by adding the first script tag(s) to the iframe.\n     * @param id - The ID of this connection\n     * @param pw - The password for this connection\n     */startLongPoll(e,t){this.myID=e;this.myPW=t;this.alive=true;while(this.newRequest_());}newRequest_(){if(this.alive&&this.sendNewPolls&&this.outstandingRequests.size<(this.pendingSegs.length>0?2:1)){this.currentSerial++;const e={};e[he]=this.myID;e[ue]=this.myPW;e[de]=this.currentSerial;let t=this.urlFn(e);let n=\"\";let r=0;while(this.pendingSegs.length>0){const e=this.pendingSegs[0];if(!(e.d.length+ve+n.length<=ge))break;{const e=this.pendingSegs.shift();n=n+\"&\"+_e+r+\"=\"+e.seg+\"&\"+fe+r+\"=\"+e.ts+\"&\"+me+r+\"=\"+e.d;r++}}t+=n;this.addLongPollTag_(t,this.currentSerial);return true}return false}\n/**\n     * Queue a packet for transmission to the server.\n     * @param segnum - A sequential id for this packet segment used for reassembly\n     * @param totalsegs - The total number of segments in this packet\n     * @param data - The data for this segment.\n     */enqueueSegment(e,t,n){this.pendingSegs.push({seg:e,ts:t,d:n});this.alive&&this.newRequest_()}\n/**\n     * Add a script tag for a regular long-poll request.\n     * @param url - The URL of the script tag.\n     * @param serial - The serial number of the request.\n     */addLongPollTag_(e,t){this.outstandingRequests.add(t);const doNewRequest=()=>{this.outstandingRequests.delete(t);this.newRequest_()};const n=setTimeout(doNewRequest,Math.floor(we));const readyStateCB=()=>{clearTimeout(n);doNewRequest()};this.addTag(e,readyStateCB)}\n/**\n     * Add an arbitrary script tag to the iframe.\n     * @param url - The URL for the script tag source.\n     * @param loadCB - A callback to be triggered once the script has loaded.\n     */addTag(e,t){p()?this.doNodeLongPoll(e,t):setTimeout((()=>{try{if(!this.sendNewPolls)return;const n=this.myIFrame.doc.createElement(\"script\");n.type=\"text/javascript\";n.async=true;n.src=e;n.onload=n.onreadystatechange=function(){const e=n.readyState;if(!e||\"loaded\"===e||\"complete\"===e){n.onload=n.onreadystatechange=null;n.parentNode&&n.parentNode.removeChild(n);t()}};n.onerror=()=>{log(\"Long-poll script failed to load: \"+e);this.sendNewPolls=false;this.close()};this.myIFrame.doc.body.appendChild(n)}catch(e){}}),Math.floor(1))}}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */const Pe=16384;const Se=45e3;let Ee=null;\"undefined\"!==typeof MozWebSocket?Ee=MozWebSocket:\"undefined\"!==typeof WebSocket&&(Ee=WebSocket);class WebSocketConnection{\n/**\n     * @param connId identifier for this transport\n     * @param repoInfo The info for the websocket endpoint.\n     * @param applicationId The Firebase App ID for this project.\n     * @param appCheckToken The App Check Token for this client.\n     * @param authToken The Auth Token for this client.\n     * @param transportSessionId Optional transportSessionId if this is connecting\n     * to an existing transport session\n     * @param lastSessionId Optional lastSessionId if there was a previous\n     * connection\n     */\nconstructor(e,t,n,r,i,s,o){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_=logWrapper(this.connId);this.stats_=statsManagerGetCollection(t);this.connURL=WebSocketConnection.connectionURL_(t,s,o,r,n);this.nodeAdmin=t.nodeAdmin}\n/**\n     * @param repoInfo - The info for the websocket endpoint.\n     * @param transportSessionId - Optional transportSessionId if this is connecting to an existing transport\n     *                                         session\n     * @param lastSessionId - Optional lastSessionId if there was a previous connection\n     * @returns connection url\n     */static connectionURL_(e,t,n,r,i){const s={};s[z]=K;!p()&&\"undefined\"!==typeof location&&location.hostname&&X.test(location.hostname)&&(s[$]=J);t&&(s[Y]=t);n&&(s[Z]=n);r&&(s[te]=r);i&&(s[ee]=i);return repoInfoConnectionURL(e,ne,s)}\n/**\n     * @param onMessage - Callback when messages arrive\n     * @param onDisconnect - Callback with connection lost.\n     */open(e,t){this.onDisconnect=t;this.onMessage=e;this.log_(\"Websocket connecting to \"+this.connURL);this.everConnected_=false;D.set(\"previous_websocket_failure\",true);try{let e;if(p()){const t=this.nodeAdmin?\"AdminNode\":\"Node\";e={headers:{\"User-Agent\":`Firebase/${K}/${L}/${process.platform}/${t}`,\"X-Firebase-GMPID\":this.applicationId||\"\"}};this.authToken&&(e.headers.Authorization=`Bearer ${this.authToken}`);this.appCheckToken&&(e.headers[\"X-Firebase-AppCheck\"]=this.appCheckToken);const n=process.env;const r=0===this.connURL.indexOf(\"wss://\")?n.HTTPS_PROXY||n.https_proxy:n.HTTP_PROXY||n.http_proxy;r&&(e.proxy={origin:r})}this.mySock=new Ee(this.connURL,[],e)}catch(e){this.log_(\"Error instantiating WebSocket.\");const t=e.message||e.data;t&&this.log_(t);this.onClosed_();return}this.mySock.onopen=()=>{this.log_(\"Websocket connected.\");this.everConnected_=true};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.\");const t=e.message||e.data;t&&this.log_(t);this.onClosed_()}}start(){}static forceDisallow(){WebSocketConnection.forceDisallow_=true}static isAvailable(){let e=false;if(\"undefined\"!==typeof navigator&&navigator.userAgent){const t=/Android ([0-9]{0,}\\.[0-9]{0,})/;const n=navigator.userAgent.match(t);n&&n.length>1&&parseFloat(n[1])<4.4&&(e=true)}return!e&&null!==Ee&&!WebSocketConnection.forceDisallow_}static previouslyFailed(){return D.isInMemoryStorage||true===D.get(\"previous_websocket_failure\")}markConnectionHealthy(){D.remove(\"previous_websocket_failure\")}appendFrame_(e){this.frames.push(e);if(this.frames.length===this.totalFrames){const e=this.frames.join(\"\");this.frames=null;const t=a(e);this.onMessage(t)}}\n/**\n     * @param frameCount - The number of frames we are expecting from the server\n     */handleNewFrameCount_(e){this.totalFrames=e;this.frames=[]}\n/**\n     * Attempts to parse a frame count out of some text. If it can't, assumes a value of 1\n     * @returns Any remaining data to be process, or null if there is none\n     */extractFrameCount_(e){d(null===this.frames,\"We already have a frame buffer\");if(e.length<=6){const t=Number(e);if(!isNaN(t)){this.handleNewFrameCount_(t);return null}}this.handleNewFrameCount_(1);return e}\n/**\n     * Process a websocket frame that has arrived from the server.\n     * @param mess - The frame data\n     */handleIncomingFrame(e){if(null===this.mySock)return;const t=e.data;this.bytesReceived+=t.length;this.stats_.incrementCounter(\"bytes_received\",t.length);this.resetKeepAlive();if(null!==this.frames)this.appendFrame_(t);else{const e=this.extractFrameCount_(t);null!==e&&this.appendFrame_(e)}}\n/**\n     * Send a message to the server\n     * @param data - The JSON object to transmit\n     */send(e){this.resetKeepAlive();const t=o(e);this.bytesSent+=t.length;this.stats_.incrementCounter(\"bytes_sent\",t.length);const n=splitStringBySize(t,Pe);n.length>1&&this.sendString_(String(n.length));for(let e=0;e<n.length;e++)this.sendString_(n[e])}shutdown_(){this.isClosed_=true;if(this.keepaliveTimer){clearInterval(this.keepaliveTimer);this.keepaliveTimer=null}if(this.mySock){this.mySock.close();this.mySock=null}}onClosed_(){if(!this.isClosed_){this.log_(\"WebSocket is closing itself\");this.shutdown_();if(this.onDisconnect){this.onDisconnect(this.everConnected_);this.onDisconnect=null}}}close(){if(!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(Se))}\n/**\n     * Send a string over the websocket.\n     *\n     * @param str - String to send.\n     */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)}}}WebSocketConnection.responsesRequiredToBeHealthy=2;WebSocketConnection.healthyTimeout=3e4;\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */class TransportManager{\n/**\n     * @param repoInfo - Metadata around the namespace we're connecting to\n     */\nconstructor(e){this.initTransports_(e)}static get ALL_TRANSPORTS(){return[BrowserPollConnection,WebSocketConnection]}static get IS_TRANSPORT_INITIALIZED(){return this.globalTransportInitialized_}initTransports_(e){const t=WebSocketConnection&&WebSocketConnection.isAvailable();let n=t&&!WebSocketConnection.previouslyFailed();if(e.webSocketOnly){t||warn(\"wss:// URL used, but browser isn't known to support websockets.  Trying anyway.\");n=true}if(n)this.transports_=[WebSocketConnection];else{const e=this.transports_=[];for(const t of TransportManager.ALL_TRANSPORTS)t&&t.isAvailable()&&e.push(t);TransportManager.globalTransportInitialized_=true}}\n/**\n     * @returns The constructor for the initial transport to use\n     */initialTransport(){if(this.transports_.length>0)return this.transports_[0];throw new Error(\"No transports available\")}\n/**\n     * @returns The constructor for the next transport, or null\n     */upgradeTransport(){return this.transports_.length>1?this.transports_[1]:null}}TransportManager.globalTransportInitialized_=false;\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */const Ie=6e4;const Ne=5e3;const be=10240;const Re=102400;const ke=\"t\";const xe=\"d\";const Ae=\"s\";const Fe=\"r\";const Oe=\"e\";const Le=\"o\";const De=\"a\";const Me=\"n\";const We=\"p\";const qe=\"h\";class Connection{\n/**\n     * @param id - an id for this connection\n     * @param repoInfo_ - the info for the endpoint to connect to\n     * @param applicationId_ - the Firebase App ID for this project\n     * @param appCheckToken_ - The App Check Token for this device.\n     * @param authToken_ - The auth token for this session.\n     * @param onMessage_ - the callback to be triggered when a server-push message arrives\n     * @param onReady_ - the callback to be triggered when this connection is ready to send messages.\n     * @param onDisconnect_ - the callback to be triggered when a connection was lost\n     * @param onKill_ - the callback to be triggered when this connection has permanently shut down.\n     * @param lastSessionId - last session id in persistent connection. is used to clean up old session in real-time server\n     */\nconstructor(e,t,n,r,i,s,o,a,l,c){this.id=e;this.repoInfo_=t;this.applicationId_=n;this.appCheckToken_=r;this.authToken_=i;this.onMessage_=s;this.onReady_=o;this.onDisconnect_=a;this.onKill_=l;this.lastSessionId=c;this.connectionCount=0;this.pendingDataMessages=[];this.state_=0;this.log_=logWrapper(\"c:\"+this.id+\":\");this.transportManager_=new TransportManager(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_);const n=this.disconnReceiver_(this.conn_);this.tx_=this.conn_;this.rx_=this.conn_;this.secondaryConn_=null;this.isHealthy_=false;setTimeout((()=>{this.conn_&&this.conn_.open(t,n)}),Math.floor(0));const r=e.healthyTimeout||0;r>0&&(this.healthyTimeout_=setTimeoutNonBlocking((()=>{this.healthyTimeout_=null;if(!this.isHealthy_)if(this.conn_&&this.conn_.bytesReceived>Re){this.log_(\"Connection exceeded healthy timeout but has received \"+this.conn_.bytesReceived+\" bytes.  Marking connection healthy.\");this.isHealthy_=true;this.conn_.markConnectionHealthy()}else if(this.conn_&&this.conn_.bytesSent>be)this.log_(\"Connection exceeded healthy timeout but has sent \"+this.conn_.bytesSent+\" bytes.  Leaving connection alive.\");else{this.log_(\"Closing unhealthy connection after timeout.\");this.close()}}),Math.floor(r)))}nextTransportId_(){return\"c:\"+this.id+\":\"+this.connectionCount++}disconnReceiver_(e){return t=>{if(e===this.conn_)this.onConnectionLost_(t);else if(e===this.secondaryConn_){this.log_(\"Secondary connection lost.\");this.onSecondaryConnectionLost_()}else this.log_(\"closing an old connection\")}}connReceiver_(e){return t=>{2!==this.state_&&(e===this.rx_?this.onPrimaryMessageReceived_(t):e===this.secondaryConn_?this.onSecondaryMessageReceived_(t):this.log_(\"message on old connection\"))}}\n/**\n     * @param dataMsg - An arbitrary data message to be sent to the server\n     */sendRequest(e){const t={t:\"d\",d:e};this.sendData_(t)}tryCleanupConnection(){if(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){if(ke in e){const t=e[ke];if(t===De)this.upgradeIfSecondaryHealthy_();else if(t===Fe){this.log_(\"Got a reset on secondary, closing it\");this.secondaryConn_.close();this.tx_!==this.secondaryConn_&&this.rx_!==this.secondaryConn_||this.close()}else if(t===Le){this.log_(\"got pong on secondary.\");this.secondaryResponsesRequired_--;this.upgradeIfSecondaryHealthy_()}}}onSecondaryMessageReceived_(e){const t=requireKey(\"t\",e);const n=requireKey(\"d\",e);if(\"c\"===t)this.onSecondaryControl_(n);else{if(\"d\"!==t)throw new Error(\"Unknown protocol layer: \"+t);this.pendingDataMessages.push(n)}}upgradeIfSecondaryHealthy_(){if(this.secondaryResponsesRequired_<=0){this.log_(\"Secondary connection is healthy.\");this.isHealthy_=true;this.secondaryConn_.markConnectionHealthy();this.proceedWithUpgrade_()}else{this.log_(\"sending ping on secondary.\");this.secondaryConn_.send({t:\"c\",d:{t:We,d:{}}})}}proceedWithUpgrade_(){this.secondaryConn_.start();this.log_(\"sending client ack on secondary\");this.secondaryConn_.send({t:\"c\",d:{t:De,d:{}}});this.log_(\"Ending transmission on primary\");this.conn_.send({t:\"c\",d:{t:Me,d:{}}});this.tx_=this.secondaryConn_;this.tryCleanupConnection()}onPrimaryMessageReceived_(e){const t=requireKey(\"t\",e);const n=requireKey(\"d\",e);\"c\"===t?this.onControl_(n):\"d\"===t&&this.onDataMessage_(n)}onDataMessage_(e){this.onPrimaryResponse_();this.onMessage_(e)}onPrimaryResponse_(){if(!this.isHealthy_){this.primaryResponsesRequired_--;if(this.primaryResponsesRequired_<=0){this.log_(\"Primary connection is healthy.\");this.isHealthy_=true;this.conn_.markConnectionHealthy()}}}onControl_(e){const t=requireKey(ke,e);if(xe in e){const n=e[xe];if(t===qe){const e=Object.assign({},n);this.repoInfo_.isUsingEmulator&&(e.h=this.repoInfo_.host);this.onHandshake_(e)}else if(t===Me){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 if(t===Ae)this.onConnectionShutdown_(n);else if(t===Fe)this.onReset_(n);else if(t===Oe)error(\"Server Error: \"+n);else if(t===Le){this.log_(\"got pong on primary.\");this.onPrimaryResponse_();this.sendPingOnPrimaryIfNecessary_()}else error(\"Unknown control packet command: \"+t)}}\n/**\n     * @param handshake - The handshake data returned from the server\n     */onHandshake_(e){const t=e.ts;const n=e.v;const r=e.h;this.sessionId=e.s;this.repoInfo_.host=r;if(0===this.state_){this.conn_.start();this.onConnectionEstablished_(this.conn_,t);K!==n&&warn(\"Protocol version mismatch detected\");this.tryStartUpgrade_()}}tryStartUpgrade_(){const 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;const t=this.connReceiver_(this.secondaryConn_);const n=this.disconnReceiver_(this.secondaryConn_);this.secondaryConn_.open(t,n);setTimeoutNonBlocking((()=>{if(this.secondaryConn_){this.log_(\"Timed out trying to upgrade.\");this.secondaryConn_.close()}}),Math.floor(Ie))}onReset_(e){this.log_(\"Reset packet received.  New host: \"+e);this.repoInfo_.host=e;if(1===this.state_)this.close();else{this.closeConnections_();this.start_()}}onConnectionEstablished_(e,t){this.log_(\"Realtime connection established.\");this.conn_=e;this.state_=1;if(this.onReady_){this.onReady_(t,this.sessionId);this.onReady_=null}if(0===this.primaryResponsesRequired_){this.log_(\"Primary connection is healthy.\");this.isHealthy_=true}else setTimeoutNonBlocking((()=>{this.sendPingOnPrimaryIfNecessary_()}),Math.floor(Ne))}sendPingOnPrimaryIfNecessary_(){if(!this.isHealthy_&&1===this.state_){this.log_(\"sending ping on primary.\");this.sendData_({t:\"c\",d:{t:We,d:{}}})}}onSecondaryConnectionLost_(){const e=this.secondaryConn_;this.secondaryConn_=null;this.tx_!==e&&this.rx_!==e||this.close()}\n/**\n     * @param everConnected - Whether or not the connection ever reached a server. Used to determine if\n     * we should flush the host cache\n     */onConnectionLost_(e){this.conn_=null;if(e||0!==this.state_)1===this.state_&&this.log_(\"Realtime connection lost.\");else{this.log_(\"Realtime connection failed.\");if(this.repoInfo_.isCacheableHost()){D.remove(\"host:\"+this.repoInfo_.host);this.repoInfo_.internalHost=this.repoInfo_.host}}this.close()}onConnectionShutdown_(e){this.log_(\"Connection shutdown command received. Shutting down...\");if(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(){if(2!==this.state_){this.log_(\"Closing realtime connection.\");this.state_=2;this.closeConnections_();if(this.onDisconnect_){this.onDisconnect_();this.onDisconnect_=null}}}closeConnections_(){this.log_(\"Shutting down all connections\");if(this.conn_){this.conn_.close();this.conn_=null}if(this.secondaryConn_){this.secondaryConn_.close();this.secondaryConn_=null}if(this.healthyTimeout_){clearTimeout(this.healthyTimeout_);this.healthyTimeout_=null}}}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */class ServerActions{put(e,t,n,r){}merge(e,t,n,r){}\n/**\n     * Refreshes the auth token for the current connection.\n     * @param token - The authentication token\n     */refreshAuthToken(e){}\n/**\n     * Refreshes the app check token for the current connection.\n     * @param token The app check token\n     */refreshAppCheckToken(e){}onDisconnectPut(e,t,n){}onDisconnectMerge(e,t,n){}onDisconnectCancel(e,t){}reportStats(e){}}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */class EventEmitter{constructor(e){this.allowedEvents_=e;this.listeners_={};d(Array.isArray(e)&&e.length>0,\"Requires a non-empty array\")}trigger(e,...t){if(Array.isArray(this.listeners_[e])){const n=[...this.listeners_[e]];for(let e=0;e<n.length;e++)n[e].callback.apply(n[e].context,t)}}on(e,t,n){this.validateEventType_(e);this.listeners_[e]=this.listeners_[e]||[];this.listeners_[e].push({callback:t,context:n});const r=this.getInitialEvent(e);r&&t.apply(n,r)}off(e,t,n){this.validateEventType_(e);const r=this.listeners_[e]||[];for(let e=0;e<r.length;e++)if(r[e].callback===t&&(!n||n===r[e].context)){r.splice(e,1);return}}validateEventType_(e){d(this.allowedEvents_.find((t=>t===e)),\"Unknown event: \"+e)}}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */class OnlineMonitor extends EventEmitter{constructor(){super([\"online\"]);this.online_=true;if(\"undefined\"!==typeof window&&\"undefined\"!==typeof window.addEventListener&&!m()){window.addEventListener(\"online\",(()=>{if(!this.online_){this.online_=true;this.trigger(\"online\",true)}}),false);window.addEventListener(\"offline\",(()=>{if(this.online_){this.online_=false;this.trigger(\"online\",false)}}),false)}}static getInstance(){return new OnlineMonitor}getInitialEvent(e){d(\"online\"===e,\"Unknown event type: \"+e);return[this.online_]}currentlyOnline(){return this.online_}}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */const Ge=32;const Qe=768;class Path{\n/**\n     * @param pathOrString - Path string to parse, or another path, or the raw\n     * tokens array\n     */\nconstructor(e,t){if(void 0===t){this.pieces_=e.split(\"/\");let t=0;for(let e=0;e<this.pieces_.length;e++)if(this.pieces_[e].length>0){this.pieces_[t]=this.pieces_[e];t++}this.pieces_.length=t;this.pieceNum_=0}else{this.pieces_=e;this.pieceNum_=t}}toString(){let e=\"\";for(let t=this.pieceNum_;t<this.pieces_.length;t++)\"\"!==this.pieces_[t]&&(e+=\"/\"+this.pieces_[t]);return e||\"/\"}}function newEmptyPath(){return new Path(\"\")}function pathGetFront(e){return e.pieceNum_>=e.pieces_.length?null:e.pieces_[e.pieceNum_]}\n/**\n * @returns The number of segments in this path\n */function pathGetLength(e){return e.pieces_.length-e.pieceNum_}function pathPopFront(e){let t=e.pieceNum_;t<e.pieces_.length&&t++;return new Path(e.pieces_,t)}function pathGetBack(e){return e.pieceNum_<e.pieces_.length?e.pieces_[e.pieces_.length-1]:null}function pathToUrlEncodedString(e){let t=\"\";for(let n=e.pieceNum_;n<e.pieces_.length;n++)\"\"!==e.pieces_[n]&&(t+=\"/\"+encodeURIComponent(String(e.pieces_[n])));return t||\"/\"}function pathSlice(e,t=0){return e.pieces_.slice(e.pieceNum_+t)}function pathParent(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 Path(t,0)}function pathChild(e,t){const n=[];for(let t=e.pieceNum_;t<e.pieces_.length;t++)n.push(e.pieces_[t]);if(t instanceof Path)for(let e=t.pieceNum_;e<t.pieces_.length;e++)n.push(t.pieces_[e]);else{const e=t.split(\"/\");for(let t=0;t<e.length;t++)e[t].length>0&&n.push(e[t])}return new Path(n,0)}\n/**\n * @returns True if there are no segments in this path\n */function pathIsEmpty(e){return e.pieceNum_>=e.pieces_.length}\n/**\n * @returns The path from outerPath to innerPath\n */function newRelativePath(e,t){const n=pathGetFront(e),r=pathGetFront(t);if(null===n)return t;if(n===r)return newRelativePath(pathPopFront(e),pathPopFront(t));throw new Error(\"INTERNAL ERROR: innerPath (\"+t+\") is not within outerPath (\"+e+\")\")}\n/**\n * @returns -1, 0, 1 if left is less, equal, or greater than the right.\n */function pathCompare(e,t){const n=pathSlice(e,0);const r=pathSlice(t,0);for(let e=0;e<n.length&&e<r.length;e++){const t=nameCompare(n[e],r[e]);if(0!==t)return t}return n.length===r.length?0:n.length<r.length?-1:1}\n/**\n * @returns true if paths are the same.\n */function pathEquals(e,t){if(pathGetLength(e)!==pathGetLength(t))return false;for(let n=e.pieceNum_,r=t.pieceNum_;n<=e.pieces_.length;n++,r++)if(e.pieces_[n]!==t.pieces_[r])return false;return true}\n/**\n * @returns True if this path is a parent of (or the same as) other\n */function pathContains(e,t){let n=e.pieceNum_;let r=t.pieceNum_;if(pathGetLength(e)>pathGetLength(t))return false;while(n<e.pieces_.length){if(e.pieces_[n]!==t.pieces_[r])return false;++n;++r}return true}class ValidationPath{\n/**\n     * @param path - Initial Path.\n     * @param errorPrefix_ - Prefix for any error messages.\n     */\nconstructor(e,t){this.errorPrefix_=t;this.parts_=pathSlice(e,0);this.byteLength_=Math.max(1,this.parts_.length);for(let e=0;e<this.parts_.length;e++)this.byteLength_+=y(this.parts_[e]);validationPathCheckValid(this)}}function validationPathPush(e,t){e.parts_.length>0&&(e.byteLength_+=1);e.parts_.push(t);e.byteLength_+=y(t);validationPathCheckValid(e)}function validationPathPop(e){const t=e.parts_.pop();e.byteLength_-=y(t);e.parts_.length>0&&(e.byteLength_-=1)}function validationPathCheckValid(e){if(e.byteLength_>Qe)throw new Error(e.errorPrefix_+\"has a key path longer than \"+Qe+\" bytes (\"+e.byteLength_+\").\");if(e.parts_.length>Ge)throw new Error(e.errorPrefix_+\"path specified exceeds the maximum depth that can be written (\"+Ge+\") or object contains a cycle \"+validationPathToErrorString(e))}function validationPathToErrorString(e){return 0===e.parts_.length?\"\":\"in property '\"+e.parts_.join(\".\")+\"'\"}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */class VisibilityMonitor extends EventEmitter{constructor(){super([\"visible\"]);let e;let t;if(\"undefined\"!==typeof document&&\"undefined\"!==typeof document.addEventListener)if(\"undefined\"!==typeof document.hidden){t=\"visibilitychange\";e=\"hidden\"}else if(\"undefined\"!==typeof document.mozHidden){t=\"mozvisibilitychange\";e=\"mozHidden\"}else if(\"undefined\"!==typeof document.msHidden){t=\"msvisibilitychange\";e=\"msHidden\"}else if(\"undefined\"!==typeof document.webkitHidden){t=\"webkitvisibilitychange\";e=\"webkitHidden\"}this.visible_=true;t&&document.addEventListener(t,(()=>{const t=!document[e];if(t!==this.visible_){this.visible_=t;this.trigger(\"visible\",t)}}),false)}static getInstance(){return new VisibilityMonitor}getInitialEvent(e){d(\"visible\"===e,\"Unknown event type: \"+e);return[this.visible_]}}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */const Ue=1e3;const Ve=3e5;const Be=3e4;const He=1.3;const je=3e4;const Ke=\"server_kill\";const ze=3;class PersistentConnection extends ServerActions{\n/**\n     * @param repoInfo_ - Data about the namespace we are connecting to\n     * @param applicationId_ - The Firebase App ID for this project\n     * @param onDataUpdate_ - A callback for new data from the server\n     */\nconstructor(e,t,n,r,i,s,o,a){super();this.repoInfo_=e;this.applicationId_=t;this.onDataUpdate_=n;this.onConnectStatus_=r;this.onServerInfoUpdate_=i;this.authTokenProvider_=s;this.appCheckTokenProvider_=o;this.authOverride_=a;this.id=PersistentConnection.nextPersistentConnectionId_++;this.log_=logWrapper(\"p:\"+this.id+\":\");this.interruptReasons_={};this.listens=new Map;this.outstandingPuts_=[];this.outstandingGets_=[];this.outstandingPutCount_=0;this.outstandingGetCount_=0;this.onDisconnectRequestQueue_=[];this.connected_=false;this.reconnectDelay_=Ue;this.maxReconnectDelay_=Ve;this.securityDebugCallback_=null;this.lastSessionId=null;this.establishConnectionTimer_=null;this.visible_=false;this.requestCBHash_={};this.requestNumber_=0;this.realtime_=null;this.authToken_=null;this.appCheckToken_=null;this.forceTokenRefresh_=false;this.invalidAuthTokenCount_=0;this.invalidAppCheckTokenCount_=0;this.firstConnection_=true;this.lastConnectionAttemptTime_=null;this.lastConnectionEstablishedTime_=null;if(a&&!p())throw new Error(\"Auth override specified in options, but not supported on non Node.js platforms\");VisibilityMonitor.getInstance().on(\"visible\",this.onVisible_,this);-1===e.host.indexOf(\"fblocal\")&&OnlineMonitor.getInstance().on(\"online\",this.onOnline_,this)}sendRequest(e,t,n){const r=++this.requestNumber_;const i={r:r,a:e,b:t};this.log_(o(i));d(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 t=new g;const n={p:e._path.toString(),q:e._queryObject};const r={action:\"g\",request:n,onComplete:e=>{const n=e.d;\"ok\"===e.s?t.resolve(n):t.reject(n)}};this.outstandingGets_.push(r);this.outstandingGetCount_++;const i=this.outstandingGets_.length-1;this.connected_&&this.sendGet_(i);return t.promise}listen(e,t,n,r){this.initConnection_();const i=e._queryIdentifier;const s=e._path.toString();this.log_(\"Listen called for \"+s+\" \"+i);this.listens.has(s)||this.listens.set(s,new Map);d(e._queryParams.isDefault()||!e._queryParams.loadsAllData(),\"listen() called for non-default but complete query\");d(!this.listens.get(s).has(i),\"listen() called twice for same path/queryId.\");const o={onComplete:r,hashFn:t,query:e,tag:n};this.listens.get(s).set(i,o);this.connected_&&this.sendListen_(o)}sendGet_(e){const t=this.outstandingGets_[e];this.sendRequest(\"g\",t.request,(n=>{delete this.outstandingGets_[e];this.outstandingGetCount_--;0===this.outstandingGetCount_&&(this.outstandingGets_=[]);t.onComplete&&t.onComplete(n)}))}sendListen_(e){const t=e.query;const n=t._path.toString();const r=t._queryIdentifier;this.log_(\"Listen on \"+n+\" for \"+r);const i={p:n};const s=\"q\";if(e.tag){i.q=t._queryObject;i.t=e.tag}i.h=e.hashFn();this.sendRequest(s,i,(i=>{const s=i.d;const o=i.s;PersistentConnection.warnOnListenWarnings_(s,t);const a=this.listens.get(n)&&this.listens.get(n).get(r);if(a===e){this.log_(\"listen response\",i);\"ok\"!==o&&this.removeListen_(n,r);e.onComplete&&e.onComplete(o,s)}}))}static warnOnListenWarnings_(e,t){if(e&&\"object\"===typeof e&&l(e,\"w\")){const n=v(e,\"w\");if(Array.isArray(n)&&~n.indexOf(\"no_index\")){const e='\".indexOn\": \"'+t._queryParams.getIndex().toString()+'\"';const n=t._path.toString();warn(`Using an unspecified index. Your data will be downloaded and filtered on the client. Consider adding ${e} at ${n} to your security rules for better performance.`)}}}refreshAuthToken(e){this.authToken_=e;this.log_(\"Auth token refreshed\");this.authToken_?this.tryAuth():this.connected_&&this.sendRequest(\"unauth\",{},(()=>{}));this.reduceReconnectDelayIfAdminCredential_(e)}reduceReconnectDelayIfAdminCredential_(e){const t=e&&40===e.length;if(t||C(e)){this.log_(\"Admin auth credential detected.  Reducing max reconnect time.\");this.maxReconnectDelay_=Be}}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 e=this.authToken_;const t=w(e)?\"auth\":\"gauth\";const n={cred:e};null===this.authOverride_?n.noauth=true:\"object\"===typeof this.authOverride_&&(n.authvar=this.authOverride_);this.sendRequest(t,n,(t=>{const n=t.s;const r=t.d||\"error\";this.authToken_===e&&(\"ok\"===n?this.invalidAuthTokenCount_=0:this.onAuthRevoked_(n,r))}))}}tryAppCheck(){this.connected_&&this.appCheckToken_&&this.sendRequest(\"appcheck\",{token:this.appCheckToken_},(e=>{const t=e.s;const n=e.d||\"error\";\"ok\"===t?this.invalidAppCheckTokenCount_=0:this.onAppCheckRevoked_(t,n)}))}unlisten(e,t){const n=e._path.toString();const r=e._queryIdentifier;this.log_(\"Unlisten called for \"+n+\" \"+r);d(e._queryParams.isDefault()||!e._queryParams.loadsAllData(),\"unlisten() called for non-default but complete query\");const i=this.removeListen_(n,r);i&&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};const s=\"n\";if(r){i.q=n;i.t=r}this.sendRequest(s,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){const 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_++;const o=this.outstandingPuts_.length-1;this.connected_?this.sendPut_(o):this.log_(\"Buffering put: \"+t)}sendPut_(e){const t=this.outstandingPuts_[e].action;const n=this.outstandingPuts_[e].request;const r=this.outstandingPuts_[e].onComplete;this.outstandingPuts_[e].queued=this.connected_;this.sendRequest(t,n,(n=>{this.log_(t+\" response\",n);delete this.outstandingPuts_[e];this.outstandingPutCount_--;0===this.outstandingPutCount_&&(this.outstandingPuts_=[]);r&&r(n.s,n.d)}))}reportStats(e){if(this.connected_){const t={c:e};this.log_(\"reportStats\",t);this.sendRequest(\"s\",t,(e=>{const t=e.s;if(\"ok\"!==t){const t=e.d;this.log_(\"reportStats\",\"Error sending stats: \"+t)}}))}}onDataMessage_(e){if(\"r\"in e){this.log_(\"from server: \"+o(e));const t=e.r;const n=this.requestCBHash_[t];if(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,false,t.t):\"m\"===e?this.onDataUpdate_(t.p,t.d,true,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):error(\"Unrecognized action received from server: \"+o(e)+\"\\nAre you using the latest client?\")}onReady_(e,t){this.log_(\"connection ready\");this.connected_=true;this.lastConnectionEstablishedTime_=(new Date).getTime();this.handleTimestamp_(e);this.lastSessionId=t;this.firstConnection_&&this.sendConnectStats_();this.restoreState_();this.firstConnection_=false;this.onConnectStatus_(true)}scheduleConnect_(e){d(!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){if(e&&!this.visible_&&this.reconnectDelay_===this.maxReconnectDelay_){this.log_(\"Window became visible.  Reducing delay.\");this.reconnectDelay_=Ue;this.realtime_||this.scheduleConnect_(0)}this.visible_=e}onOnline_(e){if(e){this.log_(\"Browser went online.\");this.reconnectDelay_=Ue;this.realtime_||this.scheduleConnect_(0)}else{this.log_(\"Browser went offline.  Killing connection.\");this.realtime_&&this.realtime_.close()}}onRealtimeDisconnect_(){this.log_(\"data client disconnected\");this.connected_=false;this.realtime_=null;this.cancelSentTransactions_();this.requestCBHash_={};if(this.shouldReconnect_()){if(this.visible_){if(this.lastConnectionEstablishedTime_){const e=(new Date).getTime()-this.lastConnectionEstablishedTime_;e>je&&(this.reconnectDelay_=Ue);this.lastConnectionEstablishedTime_=null}}else{this.log_(\"Window isn't visible.  Delaying reconnect.\");this.reconnectDelay_=this.maxReconnectDelay_;this.lastConnectionAttemptTime_=(new Date).getTime()}const e=(new Date).getTime()-this.lastConnectionAttemptTime_;let t=Math.max(0,this.reconnectDelay_-e);t=Math.random()*t;this.log_(\"Trying to reconnect in \"+t+\"ms\");this.scheduleConnect_(t);this.reconnectDelay_=Math.min(this.maxReconnectDelay_,this.reconnectDelay_*He)}this.onConnectStatus_(false)}async establishConnection_(){if(this.shouldReconnect_()){this.log_(\"Making a connection attempt\");this.lastConnectionAttemptTime_=(new Date).getTime();this.lastConnectionEstablishedTime_=null;const e=this.onDataMessage_.bind(this);const t=this.onReady_.bind(this);const n=this.onRealtimeDisconnect_.bind(this);const r=this.id+\":\"+PersistentConnection.nextConnectionId_++;const i=this.lastSessionId;let s=false;let o=null;const closeFn=function(){if(o)o.close();else{s=true;n()}};const sendRequestFn=function(e){d(o,\"sendRequest call when we're not connected not allowed.\");o.sendRequest(e)};this.realtime_={close:closeFn,sendRequest:sendRequestFn};const a=this.forceTokenRefresh_;this.forceTokenRefresh_=false;try{const[l,c]=await Promise.all([this.authTokenProvider_.getToken(a),this.appCheckTokenProvider_.getToken(a)]);if(s)log(\"getToken() completed but was canceled\");else{log(\"getToken() completed. Creating connection.\");this.authToken_=l&&l.accessToken;this.appCheckToken_=c&&c.token;o=new Connection(r,this.repoInfo_,this.applicationId_,this.appCheckToken_,this.authToken_,e,t,n,(e=>{warn(e+\" (\"+this.repoInfo_.toString()+\")\");this.interrupt(Ke)}),i)}}catch(e){this.log_(\"Failed to get token: \"+e);if(!s){this.repoInfo_.nodeAdmin&&warn(e);closeFn()}}}}interrupt(e){log(\"Interrupting connection for reason: \"+e);this.interruptReasons_[e]=true;if(this.realtime_)this.realtime_.close();else{if(this.establishConnectionTimer_){clearTimeout(this.establishConnectionTimer_);this.establishConnectionTimer_=null}this.connected_&&this.onRealtimeDisconnect_()}}resume(e){log(\"Resuming connection for reason: \"+e);delete this.interruptReasons_[e];if(T(this.interruptReasons_)){this.reconnectDelay_=Ue;this.realtime_||this.scheduleConnect_(0)}}handleTimestamp_(e){const t=e-(new Date).getTime();this.onServerInfoUpdate_({serverTimeOffset:t})}cancelSentTransactions_(){for(let e=0;e<this.outstandingPuts_.length;e++){const t=this.outstandingPuts_[e];if(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=>ObjectToUniqueKey(e))).join(\"$\"):\"default\";const r=this.removeListen_(e,n);r&&r.onComplete&&r.onComplete(\"permission_denied\")}removeListen_(e,t){const n=new Path(e).toString();let r;if(this.listens.has(n)){const e=this.listens.get(n);r=e.get(t);e.delete(t);0===e.size&&this.listens.delete(n)}else r=void 0;return r}onAuthRevoked_(e,t){log(\"Auth token revoked: \"+e+\"/\"+t);this.authToken_=null;this.forceTokenRefresh_=true;this.realtime_.close();if(\"invalid_token\"===e||\"permission_denied\"===e){this.invalidAuthTokenCount_++;if(this.invalidAuthTokenCount_>=ze){this.reconnectDelay_=Be;this.authTokenProvider_.notifyForInvalidToken()}}}onAppCheckRevoked_(e,t){log(\"App check token revoked: \"+e+\"/\"+t);this.appCheckToken_=null;this.forceTokenRefresh_=true;if(\"invalid_token\"===e||\"permission_denied\"===e){this.invalidAppCheckTokenCount_++;this.invalidAppCheckTokenCount_>=ze&&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 e of this.listens.values())for(const t of e.values())this.sendListen_(t);for(let e=0;e<this.outstandingPuts_.length;e++)this.outstandingPuts_[e]&&this.sendPut_(e);while(this.onDisconnectRequestQueue_.length){const e=this.onDisconnectRequestQueue_.shift();this.sendOnDisconnect_(e.action,e.pathString,e.data,e.onComplete)}for(let e=0;e<this.outstandingGets_.length;e++)this.outstandingGets_[e]&&this.sendGet_(e)}sendConnectStats_(){const e={};let t=\"js\";p()&&(t=this.repoInfo_.nodeAdmin?\"admin_node\":\"node\");e[\"sdk.\"+t+\".\"+L.replace(/\\./g,\"-\")]=1;m()?e[\"framework.cordova\"]=1:P()&&(e[\"framework.reactnative\"]=1);this.reportStats(e)}shouldReconnect_(){const e=OnlineMonitor.getInstance().currentlyOnline();return T(this.interruptReasons_)&&e}}PersistentConnection.nextPersistentConnectionId_=0;PersistentConnection.nextConnectionId_=0;\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */class NamedNode{constructor(e,t){this.name=e;this.node=t}static Wrap(e,t){return new NamedNode(e,t)}}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */class Index{\n/**\n     * @returns A standalone comparison function for\n     * this index\n     */\ngetCompare(){return this.compare.bind(this)}\n/**\n     * Given a before and after value for a node, determine if the indexed value has changed. Even if they are different,\n     * it's possible that the changes are isolated to parts of the snapshot that are not indexed.\n     *\n     *\n     * @returns True if the portion of the snapshot being indexed changed between oldNode and newNode\n     */indexedValueChanged(e,t){const n=new NamedNode(U,e);const r=new NamedNode(U,t);return 0!==this.compare(n,r)}\n/**\n     * @returns a node wrapper that will sort equal to or less than\n     * any other node wrapper, using this index\n     */minPost(){return NamedNode.MIN}}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */let Ye;class KeyIndex extends Index{static get __EMPTY_NODE(){return Ye}static set __EMPTY_NODE(e){Ye=e}compare(e,t){return nameCompare(e.name,t.name)}isDefinedOn(e){throw S(\"KeyIndex.isDefinedOn not expected to be called.\")}indexedValueChanged(e,t){return false}minPost(){return NamedNode.MIN}maxPost(){return new NamedNode(V,Ye)}makePost(e,t){d(\"string\"===typeof e,\"KeyIndex indexValue must always be a string.\");return new NamedNode(e,Ye)}\n/**\n     * @returns String representation for inclusion in a query spec\n     */toString(){return\".key\"}}const $e=new KeyIndex;\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */class SortedMapIterator{\n/**\n     * @param node - Node to iterate.\n     * @param isReverse_ - Whether or not to iterate in reverse\n     */\nconstructor(e,t,n,r,i=null){this.isReverse_=r;this.resultGenerator_=i;this.nodeStack_=[];let s=1;while(!e.isEmpty()){e=e;s=t?n(e.key,t):1;r&&(s*=-1);if(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();let t;t=this.resultGenerator_?this.resultGenerator_(e.key,e.value):{key:e.key,value:e.value};if(this.isReverse_){e=e.left;while(!e.isEmpty()){this.nodeStack_.push(e);e=e.right}}else{e=e.right;while(!e.isEmpty()){this.nodeStack_.push(e);e=e.left}}return t}hasNext(){return this.nodeStack_.length>0}peek(){if(0===this.nodeStack_.length)return null;const e=this.nodeStack_[this.nodeStack_.length-1];return this.resultGenerator_?this.resultGenerator_(e.key,e.value):{key:e.key,value:e.value}}}class LLRBNode{\n/**\n     * @param key - Key associated with this node.\n     * @param value - Value associated with this node.\n     * @param color - Whether this node is red.\n     * @param left - Left child.\n     * @param right - Right child.\n     */\nconstructor(e,t,n,r,i){this.key=e;this.value=t;this.color=null!=n?n:LLRBNode.RED;this.left=null!=r?r:SortedMap.EMPTY_NODE;this.right=null!=i?i:SortedMap.EMPTY_NODE}\n/**\n     * Returns a copy of the current node, optionally replacing pieces of it.\n     *\n     * @param key - New key for the node, or null.\n     * @param value - New value for the node, or null.\n     * @param color - New color for the node, or null.\n     * @param left - New left child for the node, or null.\n     * @param right - New right child for the node, or null.\n     * @returns The node copy.\n     */copy(e,t,n,r,i){return new LLRBNode(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)}\n/**\n     * @returns The total number of nodes in the tree.\n     */count(){return this.left.count()+1+this.right.count()}\n/**\n     * @returns True if the tree is empty.\n     */isEmpty(){return false}\n/**\n     * Traverses the tree in key order and calls the specified action function\n     * for each node.\n     *\n     * @param action - Callback function to be called for each\n     *   node.  If it returns true, traversal is aborted.\n     * @returns The first truthy value returned by action, or the last falsey\n     *   value returned by action\n     */inorderTraversal(e){return this.left.inorderTraversal(e)||!!e(this.key,this.value)||this.right.inorderTraversal(e)}\n/**\n     * Traverses the tree in reverse key order and calls the specified action function\n     * for each node.\n     *\n     * @param action - Callback function to be called for each\n     * node.  If it returns true, traversal is aborted.\n     * @returns True if traversal was aborted.\n     */reverseTraversal(e){return this.right.reverseTraversal(e)||e(this.key,this.value)||this.left.reverseTraversal(e)}\n/**\n     * @returns The minimum node in the tree.\n     */min_(){return this.left.isEmpty()?this:this.left.min_()}\n/**\n     * @returns The maximum key in the tree.\n     */minKey(){return this.min_().key}\n/**\n     * @returns The maximum key in the tree.\n     */maxKey(){return this.right.isEmpty()?this.key:this.right.maxKey()}\n/**\n     * @param key - Key to insert.\n     * @param value - Value to insert.\n     * @param comparator - Comparator.\n     * @returns New tree, with the key/value added.\n     */insert(e,t,n){let r=this;const i=n(e,r.key);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));return r.fixUp_()}\n/**\n     * @returns New tree, with the minimum key removed.\n     */removeMin_(){if(this.left.isEmpty())return SortedMap.EMPTY_NODE;let e=this;e.left.isRed_()||e.left.left.isRed_()||(e=e.moveRedLeft_());e=e.copy(null,null,null,e.left.removeMin_(),null);return e.fixUp_()}\n/**\n     * @param key - The key of the item to remove.\n     * @param comparator - Comparator.\n     * @returns New tree, with the specified item removed.\n     */remove(e,t){let n,r;n=this;if(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{n.left.isRed_()&&(n=n.rotateRight_());n.right.isEmpty()||n.right.isRed_()||n.right.left.isRed_()||(n=n.moveRedRight_());if(0===t(e,n.key)){if(n.right.isEmpty())return SortedMap.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_()}\n/**\n     * @returns Whether this is a RED node.\n     */isRed_(){return this.color}\n/**\n     * @returns New tree after performing any needed rotations.\n     */fixUp_(){let e=this;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_());return e}\n/**\n     * @returns New tree, after moveRedLeft.\n     */moveRedLeft_(){let e=this.colorFlip_();if(e.right.left.isRed_()){e=e.copy(null,null,null,null,e.right.rotateRight_());e=e.rotateLeft_();e=e.colorFlip_()}return e}\n/**\n     * @returns New tree, after moveRedRight.\n     */moveRedRight_(){let e=this.colorFlip_();if(e.left.left.isRed_()){e=e.rotateRight_();e=e.colorFlip_()}return e}\n/**\n     * @returns New tree, after rotateLeft.\n     */rotateLeft_(){const e=this.copy(null,null,LLRBNode.RED,null,this.right.left);return this.right.copy(null,null,this.color,e,null)}\n/**\n     * @returns New tree, after rotateRight.\n     */rotateRight_(){const e=this.copy(null,null,LLRBNode.RED,this.left.right,null);return this.left.copy(null,null,this.color,null,e)}\n/**\n     * @returns Newt ree, after colorFlip.\n     */colorFlip_(){const e=this.left.copy(null,null,!this.left.color,null,null);const t=this.right.copy(null,null,!this.right.color,null,null);return this.copy(null,null,!this.color,e,t)}\n/**\n     * For testing.\n     *\n     * @returns True if all is well.\n     */checkMaxDepth_(){const 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\");const e=this.left.check_();if(e!==this.right.check_())throw new Error(\"Black depths differ\");return e+(this.isRed_()?0:1)}}LLRBNode.RED=true;LLRBNode.BLACK=false;class LLRBEmptyNode{\n/**\n     * Returns a copy of the current node.\n     *\n     * @returns The node copy.\n     */\ncopy(e,t,n,r,i){return this}\n/**\n     * Returns a copy of the tree, with the specified key/value added.\n     *\n     * @param key - Key to be added.\n     * @param value - Value to be added.\n     * @param comparator - Comparator.\n     * @returns New tree, with item added.\n     */insert(e,t,n){return new LLRBNode(e,t,null)}\n/**\n     * Returns a copy of the tree, with the specified key removed.\n     *\n     * @param key - The key to remove.\n     * @param comparator - Comparator.\n     * @returns New tree, with item removed.\n     */remove(e,t){return this}\n/**\n     * @returns The total number of nodes in the tree.\n     */count(){return 0}\n/**\n     * @returns True if the tree is empty.\n     */isEmpty(){return true}\n/**\n     * Traverses the tree in key order and calls the specified action function\n     * for each node.\n     *\n     * @param action - Callback function to be called for each\n     * node.  If it returns true, traversal is aborted.\n     * @returns True if traversal was aborted.\n     */inorderTraversal(e){return false}\n/**\n     * Traverses the tree in reverse key order and calls the specified action function\n     * for each node.\n     *\n     * @param action - Callback function to be called for each\n     * node.  If it returns true, traversal is aborted.\n     * @returns True if traversal was aborted.\n     */reverseTraversal(e){return false}minKey(){return null}maxKey(){return null}check_(){return 0}\n/**\n     * @returns Whether this node is red.\n     */isRed_(){return false}}class SortedMap{\n/**\n     * @param comparator_ - Key comparator.\n     * @param root_ - Optional root node for the map.\n     */\nconstructor(e,t=SortedMap.EMPTY_NODE){this.comparator_=e;this.root_=t}\n/**\n     * Returns a copy of the map, with the specified key/value added or replaced.\n     * (TODO: We should perhaps rename this method to 'put')\n     *\n     * @param key - Key to be added.\n     * @param value - Value to be added.\n     * @returns New map, with item added.\n     */insert(e,t){return new SortedMap(this.comparator_,this.root_.insert(e,t,this.comparator_).copy(null,null,LLRBNode.BLACK,null,null))}\n/**\n     * Returns a copy of the map, with the specified key removed.\n     *\n     * @param key - The key to remove.\n     * @returns New map, with item removed.\n     */remove(e){return new SortedMap(this.comparator_,this.root_.remove(e,this.comparator_).copy(null,null,LLRBNode.BLACK,null,null))}\n/**\n     * Returns the value of the node with the given key, or null.\n     *\n     * @param key - The key to look up.\n     * @returns The value of the node with the given key, or null if the\n     * key doesn't exist.\n     */get(e){let t;let n=this.root_;while(!n.isEmpty()){t=this.comparator_(e,n.key);if(0===t)return n.value;t<0?n=n.left:t>0&&(n=n.right)}return null}\n/**\n     * Returns the key of the item *before* the specified key, or null if key is the first item.\n     * @param key - The key to find the predecessor of\n     * @returns The predecessor key.\n     */getPredecessorKey(e){let t,n=this.root_,r=null;while(!n.isEmpty()){t=this.comparator_(e,n.key);if(0===t){if(n.left.isEmpty())return r?r.key:null;n=n.left;while(!n.right.isEmpty())n=n.right;return n.key}if(t<0)n=n.left;else if(t>0){r=n;n=n.right}}throw new Error(\"Attempted to find predecessor key for a nonexistent key.  What gives?\")}\n/**\n     * @returns True if the map is empty.\n     */isEmpty(){return this.root_.isEmpty()}\n/**\n     * @returns The total number of nodes in the map.\n     */count(){return this.root_.count()}\n/**\n     * @returns The minimum key in the map.\n     */minKey(){return this.root_.minKey()}\n/**\n     * @returns The maximum key in the map.\n     */maxKey(){return this.root_.maxKey()}\n/**\n     * Traverses the map in key order and calls the specified action function\n     * for each key/value pair.\n     *\n     * @param action - Callback function to be called\n     * for each key/value pair.  If action returns true, traversal is aborted.\n     * @returns The first truthy value returned by action, or the last falsey\n     *   value returned by action\n     */inorderTraversal(e){return this.root_.inorderTraversal(e)}\n/**\n     * Traverses the map in reverse key order and calls the specified action function\n     * for each key/value pair.\n     *\n     * @param action - Callback function to be called\n     * for each key/value pair.  If action returns true, traversal is aborted.\n     * @returns True if the traversal was aborted.\n     */reverseTraversal(e){return this.root_.reverseTraversal(e)}\n/**\n     * Returns an iterator over the SortedMap.\n     * @returns The iterator.\n     */getIterator(e){return new SortedMapIterator(this.root_,null,this.comparator_,false,e)}getIteratorFrom(e,t){return new SortedMapIterator(this.root_,e,this.comparator_,false,t)}getReverseIteratorFrom(e,t){return new SortedMapIterator(this.root_,e,this.comparator_,true,t)}getReverseIterator(e){return new SortedMapIterator(this.root_,null,this.comparator_,true,e)}}SortedMap.EMPTY_NODE=new LLRBEmptyNode;\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */function NAME_ONLY_COMPARATOR(e,t){return nameCompare(e.name,t.name)}function NAME_COMPARATOR(e,t){return nameCompare(e,t)}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */let Je;function setMaxNode$1(e){Je=e}const priorityHashText=function(e){return\"number\"===typeof e?\"number:\"+doubleToIEEE754String(e):\"string:\"+e};const validatePriorityNode=function(e){if(e.isLeafNode()){const t=e.val();d(\"string\"===typeof t||\"number\"===typeof t||\"object\"===typeof t&&l(t,\".sv\"),\"Priority must be a string or number.\")}else d(e===Je||e.isEmpty(),\"priority of unexpected type.\");d(e===Je||e.getPriority().isEmpty(),\"Priority nodes can't have a priority of their own.\")};\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */let Xe;class LeafNode{\n/**\n     * @param value_ - The value to store in this leaf node. The object type is\n     * possible in the event of a deferred value\n     * @param priorityNode_ - The priority of this node.\n     */\nconstructor(e,t=LeafNode.__childrenNodeConstructor.EMPTY_NODE){this.value_=e;this.priorityNode_=t;this.lazyHash_=null;d(void 0!==this.value_&&null!==this.value_,\"LeafNode shouldn't be created with null/undefined value.\");validatePriorityNode(this.priorityNode_)}static set __childrenNodeConstructor(e){Xe=e}static get __childrenNodeConstructor(){return Xe}isLeafNode(){return true}getPriority(){return this.priorityNode_}updatePriority(e){return new LeafNode(this.value_,e)}getImmediateChild(e){return\".priority\"===e?this.priorityNode_:LeafNode.__childrenNodeConstructor.EMPTY_NODE}getChild(e){return pathIsEmpty(e)?this:\".priority\"===pathGetFront(e)?this.priorityNode_:LeafNode.__childrenNodeConstructor.EMPTY_NODE}hasChild(){return false}getPredecessorChildName(e,t){return null}updateImmediateChild(e,t){return\".priority\"===e?this.updatePriority(t):t.isEmpty()&&\".priority\"!==e?this:LeafNode.__childrenNodeConstructor.EMPTY_NODE.updateImmediateChild(e,t).updatePriority(this.priorityNode_)}updateChild(e,t){const n=pathGetFront(e);if(null===n)return t;if(t.isEmpty()&&\".priority\"!==n)return this;d(\".priority\"!==n||1===pathGetLength(e),\".priority must be the last token in a path\");return this.updateImmediateChild(n,LeafNode.__childrenNodeConstructor.EMPTY_NODE.updateChild(pathPopFront(e),t))}isEmpty(){return false}numChildren(){return 0}forEachChild(e,t){return false}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:\"+priorityHashText(this.priorityNode_.val())+\":\");const t=typeof this.value_;e+=t+\":\";e+=\"number\"===t?doubleToIEEE754String(this.value_):this.value_;this.lazyHash_=sha1(e)}return this.lazyHash_}\n/**\n     * Returns the value of the leaf node.\n     * @returns The value of the node.\n     */getValue(){return this.value_}compareTo(e){if(e===LeafNode.__childrenNodeConstructor.EMPTY_NODE)return 1;if(e instanceof LeafNode.__childrenNodeConstructor)return-1;d(e.isLeafNode(),\"Unknown node type\");return this.compareToLeafNode_(e)}compareToLeafNode_(e){const t=typeof e.value_;const n=typeof this.value_;const r=LeafNode.VALUE_TYPE_ORDER.indexOf(t);const i=LeafNode.VALUE_TYPE_ORDER.indexOf(n);d(r>=0,\"Unknown leaf type: \"+t);d(i>=0,\"Unknown leaf type: \"+n);return r===i?\"object\"===n?0:this.value_<e.value_?-1:this.value_===e.value_?0:1:i-r}withIndex(){return this}isIndexed(){return true}equals(e){if(e===this)return true;if(e.isLeafNode()){const t=e;return this.value_===t.value_&&this.priorityNode_.equals(t.priorityNode_)}return false}}LeafNode.VALUE_TYPE_ORDER=[\"object\",\"boolean\",\"number\",\"string\"];\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */let Ze;let et;function setNodeFromJSON(e){Ze=e}function setMaxNode(e){et=e}class PriorityIndex extends Index{compare(e,t){const n=e.node.getPriority();const r=t.node.getPriority();const i=n.compareTo(r);return 0===i?nameCompare(e.name,t.name):i}isDefinedOn(e){return!e.getPriority().isEmpty()}indexedValueChanged(e,t){return!e.getPriority().equals(t.getPriority())}minPost(){return NamedNode.MIN}maxPost(){return new NamedNode(V,new LeafNode(\"[PRIORITY-POST]\",et))}makePost(e,t){const n=Ze(e);return new NamedNode(t,new LeafNode(\"[PRIORITY-POST]\",n))}\n/**\n     * @returns String representation for inclusion in a query spec\n     */toString(){return\".priority\"}}const tt=new PriorityIndex;\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */const nt=Math.log(2);class Base12Num{constructor(e){const logBase2=e=>parseInt(Math.log(e)/nt,10);const bitMask=e=>parseInt(Array(e+1).join(\"1\"),2);this.count=logBase2(e+1);this.current_=this.count-1;const t=bitMask(this.count);this.bits_=e+1&t}nextBitIsOne(){const e=!(this.bits_&1<<this.current_);this.current_--;return e}}\n/**\n * Takes a list of child nodes and constructs a SortedSet using the given comparison\n * function\n *\n * Uses the algorithm described in the paper linked here:\n * http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.46.1458\n *\n * @param childList - Unsorted list of children\n * @param cmp - The comparison method to be used\n * @param keyFn - An optional function to extract K from a node wrapper, if K's\n * type is not NamedNode\n * @param mapSortFn - An optional override for comparator used by the generated sorted map\n */const buildChildSet=function(e,t,n,r){e.sort(t);const buildBalancedTree=function(t,r){const i=r-t;let s;let o;if(0===i)return null;if(1===i){s=e[t];o=n?n(s):s;return new LLRBNode(o,s.node,LLRBNode.BLACK,null,null)}{const a=parseInt(i/2,10)+t;const l=buildBalancedTree(t,a);const c=buildBalancedTree(a+1,r);s=e[a];o=n?n(s):s;return new LLRBNode(o,s.node,LLRBNode.BLACK,l,c)}};const buildFrom12Array=function(t){let r=null;let i=null;let s=e.length;const buildPennant=function(t,r){const i=s-t;const o=s;s-=t;const a=buildBalancedTree(i+1,o);const l=e[i];const c=n?n(l):l;attachPennant(new LLRBNode(c,l.node,r,null,a))};const attachPennant=function(e){if(r){r.left=e;r=e}else{i=e;r=e}};for(let e=0;e<t.count;++e){const n=t.nextBitIsOne();const r=Math.pow(2,t.count-(e+1));if(n)buildPennant(r,LLRBNode.BLACK);else{buildPennant(r,LLRBNode.BLACK);buildPennant(r,LLRBNode.RED)}}return i};const i=new Base12Num(e.length);const s=buildFrom12Array(i);return new SortedMap(r||t,s)};\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */let rt;const it={};class IndexMap{constructor(e,t){this.indexes_=e;this.indexSet_=t}static get Default(){d(it&&tt,\"ChildrenNode.ts has not been loaded\");rt=rt||new IndexMap({\".priority\":it},{\".priority\":tt});return rt}get(e){const t=v(this.indexes_,e);if(!t)throw new Error(\"No index defined for \"+e);return t instanceof SortedMap?t:null}hasIndex(e){return l(this.indexSet_,e.toString())}addIndex(e,t){d(e!==$e,\"KeyIndex always exists and isn't meant to be added to the IndexMap.\");const n=[];let r=false;const i=t.getIterator(NamedNode.Wrap);let s=i.getNext();while(s){r=r||e.isDefinedOn(s.node);n.push(s);s=i.getNext()}let o;o=r?buildChildSet(n,e.getCompare()):it;const a=e.toString();const l=Object.assign({},this.indexSet_);l[a]=e;const c=Object.assign({},this.indexes_);c[a]=o;return new IndexMap(c,l)}addToIndexes(e,t){const n=E(this.indexes_,((n,r)=>{const i=v(this.indexSet_,r);d(i,\"Missing index implementation for \"+r);if(n===it){if(i.isDefinedOn(e.node)){const n=[];const r=t.getIterator(NamedNode.Wrap);let s=r.getNext();while(s){s.name!==e.name&&n.push(s);s=r.getNext()}n.push(e);return buildChildSet(n,i.getCompare())}return it}{const r=t.get(e.name);let i=n;r&&(i=i.remove(new NamedNode(e.name,r)));return i.insert(e,e.node)}}));return new IndexMap(n,this.indexSet_)}removeFromIndexes(e,t){const n=E(this.indexes_,(n=>{if(n===it)return n;{const r=t.get(e.name);return r?n.remove(new NamedNode(e.name,r)):n}}));return new IndexMap(n,this.indexSet_)}}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */let st;class ChildrenNode{\n/**\n     * @param children_ - List of children of this node..\n     * @param priorityNode_ - The priority of this node (as a snapshot node).\n     */\nconstructor(e,t,n){this.children_=e;this.priorityNode_=t;this.indexMap_=n;this.lazyHash_=null;this.priorityNode_&&validatePriorityNode(this.priorityNode_);this.children_.isEmpty()&&d(!this.priorityNode_||this.priorityNode_.isEmpty(),\"An empty node cannot have a priority\")}static get EMPTY_NODE(){return st||(st=new ChildrenNode(new SortedMap(NAME_COMPARATOR),null,IndexMap.Default))}isLeafNode(){return false}getPriority(){return this.priorityNode_||st}updatePriority(e){return this.children_.isEmpty()?this:new ChildrenNode(this.children_,e,this.indexMap_)}getImmediateChild(e){if(\".priority\"===e)return this.getPriority();{const t=this.children_.get(e);return null===t?st:t}}getChild(e){const t=pathGetFront(e);return null===t?this:this.getImmediateChild(t).getChild(pathPopFront(e))}hasChild(e){return null!==this.children_.get(e)}updateImmediateChild(e,t){d(t,\"We should always be passing snapshot nodes\");if(\".priority\"===e)return this.updatePriority(t);{const n=new NamedNode(e,t);let r,i;if(t.isEmpty()){r=this.children_.remove(e);i=this.indexMap_.removeFromIndexes(n,this.children_)}else{r=this.children_.insert(e,t);i=this.indexMap_.addToIndexes(n,this.children_)}const s=r.isEmpty()?st:this.priorityNode_;return new ChildrenNode(r,s,i)}}updateChild(e,t){const n=pathGetFront(e);if(null===n)return t;{d(\".priority\"!==pathGetFront(e)||1===pathGetLength(e),\".priority must be the last token in a path\");const r=this.getImmediateChild(n).updateChild(pathPopFront(e),t);return this.updateImmediateChild(n,r)}}isEmpty(){return this.children_.isEmpty()}numChildren(){return this.children_.count()}val(e){if(this.isEmpty())return null;const t={};let n=0,r=0,i=true;this.forEachChild(tt,((s,o)=>{t[s]=o.val(e);n++;i&&ChildrenNode.INTEGER_REGEXP_.test(s)?r=Math.max(r,Number(s)):i=false}));if(!e&&i&&r<2*n){const e=[];for(const n in t)e[n]=t[n];return e}e&&!this.getPriority().isEmpty()&&(t[\".priority\"]=this.getPriority().val());return t}hash(){if(null===this.lazyHash_){let e=\"\";this.getPriority().isEmpty()||(e+=\"priority:\"+priorityHashText(this.getPriority().val())+\":\");this.forEachChild(tt,((t,n)=>{const r=n.hash();\"\"!==r&&(e+=\":\"+t+\":\"+r)}));this.lazyHash_=\"\"===e?\"\":sha1(e)}return this.lazyHash_}getPredecessorChildName(e,t,n){const r=this.resolveIndex_(n);if(r){const n=r.getPredecessorKey(new NamedNode(e,t));return n?n.name:null}return this.children_.getPredecessorKey(e)}getFirstChildName(e){const t=this.resolveIndex_(e);if(t){const e=t.minKey();return e&&e.name}return this.children_.minKey()}getFirstChild(e){const t=this.getFirstChildName(e);return t?new NamedNode(t,this.children_.get(t)):null}getLastChildName(e){const t=this.resolveIndex_(e);if(t){const e=t.maxKey();return e&&e.name}return this.children_.maxKey()}getLastChild(e){const t=this.getLastChildName(e);return t?new NamedNode(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(e,t){const n=this.resolveIndex_(t);if(n)return n.getIteratorFrom(e,(e=>e));{const n=this.children_.getIteratorFrom(e.name,NamedNode.Wrap);let r=n.peek();while(null!=r&&t.compare(r,e)<0){n.getNext();r=n.peek()}return n}}getReverseIterator(e){return this.getReverseIteratorFrom(e.maxPost(),e)}getReverseIteratorFrom(e,t){const n=this.resolveIndex_(t);if(n)return n.getReverseIteratorFrom(e,(e=>e));{const n=this.children_.getReverseIteratorFrom(e.name,NamedNode.Wrap);let r=n.peek();while(null!=r&&t.compare(r,e)>0){n.getNext();r=n.peek()}return n}}compareTo(e){return this.isEmpty()?e.isEmpty()?0:-1:e.isLeafNode()||e.isEmpty()?1:e===ot?-1:0}withIndex(e){if(e===$e||this.indexMap_.hasIndex(e))return this;{const t=this.indexMap_.addIndex(e,this.children_);return new ChildrenNode(this.children_,this.priorityNode_,t)}}isIndexed(e){return e===$e||this.indexMap_.hasIndex(e)}equals(e){if(e===this)return true;if(e.isLeafNode())return false;{const t=e;if(this.getPriority().equals(t.getPriority())){if(this.children_.count()===t.children_.count()){const e=this.getIterator(tt);const n=t.getIterator(tt);let r=e.getNext();let i=n.getNext();while(r&&i){if(r.name!==i.name||!r.node.equals(i.node))return false;r=e.getNext();i=n.getNext()}return null===r&&null===i}return false}return false}}resolveIndex_(e){return e===$e?null:this.indexMap_.get(e.toString())}}ChildrenNode.INTEGER_REGEXP_=/^(0|[1-9]\\d*)$/;class MaxNode extends ChildrenNode{constructor(){super(new SortedMap(NAME_COMPARATOR),ChildrenNode.EMPTY_NODE,IndexMap.Default)}compareTo(e){return e===this?0:1}equals(e){return e===this}getPriority(){return this}getImmediateChild(e){return ChildrenNode.EMPTY_NODE}isEmpty(){return false}}const ot=new MaxNode;Object.defineProperties(NamedNode,{MIN:{value:new NamedNode(U,ChildrenNode.EMPTY_NODE)},MAX:{value:new NamedNode(V,ot)}});KeyIndex.__EMPTY_NODE=ChildrenNode.EMPTY_NODE;LeafNode.__childrenNodeConstructor=ChildrenNode;setMaxNode$1(ot);setMaxNode(ot);\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */const at=true;\n/**\n * Constructs a snapshot node representing the passed JSON and returns it.\n * @param json - JSON to create a node for.\n * @param priority - Optional priority to use.  This will be ignored if the\n * passed JSON contains a .priority property.\n */function nodeFromJSON(e,t=null){if(null===e)return ChildrenNode.EMPTY_NODE;\"object\"===typeof e&&\".priority\"in e&&(t=e[\".priority\"]);d(null===t||\"string\"===typeof t||\"number\"===typeof t||\"object\"===typeof t&&\".sv\"in t,\"Invalid priority type found: \"+typeof t);\"object\"===typeof e&&\".value\"in e&&null!==e[\".value\"]&&(e=e[\".value\"]);if(\"object\"!==typeof e||\".sv\"in e){const n=e;return new LeafNode(n,nodeFromJSON(t))}if(e instanceof Array||!at){let n=ChildrenNode.EMPTY_NODE;each(e,((t,r)=>{if(l(e,t)&&\".\"!==t.substring(0,1)){const e=nodeFromJSON(r);!e.isLeafNode()&&e.isEmpty()||(n=n.updateImmediateChild(t,e))}}));return n.updatePriority(nodeFromJSON(t))}{const n=[];let r=false;const i=e;each(i,((e,t)=>{if(\".\"!==e.substring(0,1)){const i=nodeFromJSON(t);if(!i.isEmpty()){r=r||!i.getPriority().isEmpty();n.push(new NamedNode(e,i))}}}));if(0===n.length)return ChildrenNode.EMPTY_NODE;const s=buildChildSet(n,NAME_ONLY_COMPARATOR,(e=>e.name),NAME_COMPARATOR);if(r){const e=buildChildSet(n,tt.getCompare());return new ChildrenNode(s,nodeFromJSON(t),new IndexMap({\".priority\":e},{\".priority\":tt}))}return new ChildrenNode(s,nodeFromJSON(t),IndexMap.Default)}}setNodeFromJSON(nodeFromJSON);\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */class PathIndex extends Index{constructor(e){super();this.indexPath_=e;d(!pathIsEmpty(e)&&\".priority\"!==pathGetFront(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);const r=this.extractChild(t.node);const i=n.compareTo(r);return 0===i?nameCompare(e.name,t.name):i}makePost(e,t){const n=nodeFromJSON(e);const r=ChildrenNode.EMPTY_NODE.updateChild(this.indexPath_,n);return new NamedNode(t,r)}maxPost(){const e=ChildrenNode.EMPTY_NODE.updateChild(this.indexPath_,ot);return new NamedNode(V,e)}toString(){return pathSlice(this.indexPath_,0).join(\"/\")}}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */class ValueIndex extends Index{compare(e,t){const n=e.node.compareTo(t.node);return 0===n?nameCompare(e.name,t.name):n}isDefinedOn(e){return true}indexedValueChanged(e,t){return!e.equals(t)}minPost(){return NamedNode.MIN}maxPost(){return NamedNode.MAX}makePost(e,t){const n=nodeFromJSON(e);return new NamedNode(t,n)}\n/**\n     * @returns String representation for inclusion in a query spec\n     */toString(){return\".value\"}}const lt=new ValueIndex;\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */function changeValue(e){return{type:\"value\",snapshotNode:e}}function changeChildAdded(e,t){return{type:\"child_added\",snapshotNode:t,childName:e}}function changeChildRemoved(e,t){return{type:\"child_removed\",snapshotNode:t,childName:e}}function changeChildChanged(e,t,n){return{type:\"child_changed\",snapshotNode:t,childName:e,oldSnap:n}}function changeChildMoved(e,t){return{type:\"child_moved\",snapshotNode:t,childName:e}}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */class IndexedFilter{constructor(e){this.index_=e}updateChild(e,t,n,r,i,s){d(e.isIndexed(this.index_),\"A node must be indexed if only a child is updated\");const o=e.getImmediateChild(t);if(o.getChild(r).equals(n.getChild(r))&&o.isEmpty()===n.isEmpty())return e;null!=s&&(n.isEmpty()?e.hasChild(t)?s.trackChildChange(changeChildRemoved(t,o)):d(e.isLeafNode(),\"A child remove without an old child only makes sense on a leaf node\"):o.isEmpty()?s.trackChildChange(changeChildAdded(t,n)):s.trackChildChange(changeChildChanged(t,n,o)));return e.isLeafNode()&&n.isEmpty()?e:e.updateImmediateChild(t,n).withIndex(this.index_)}updateFullNode(e,t,n){if(null!=n){e.isLeafNode()||e.forEachChild(tt,((e,r)=>{t.hasChild(e)||n.trackChildChange(changeChildRemoved(e,r))}));t.isLeafNode()||t.forEachChild(tt,((t,r)=>{if(e.hasChild(t)){const i=e.getImmediateChild(t);i.equals(r)||n.trackChildChange(changeChildChanged(t,r,i))}else n.trackChildChange(changeChildAdded(t,r))}))}return t.withIndex(this.index_)}updatePriority(e,t){return e.isEmpty()?ChildrenNode.EMPTY_NODE:e.updatePriority(t)}filtersNodes(){return false}getIndexedFilter(){return this}getIndex(){return this.index_}}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */class RangedFilter{constructor(e){this.indexedFilter_=new IndexedFilter(e.getIndex());this.index_=e.getIndex();this.startPost_=RangedFilter.getStartPost_(e);this.endPost_=RangedFilter.getEndPost_(e);this.startIsInclusive_=!e.startAfterSet_;this.endIsInclusive_=!e.endBeforeSet_}getStartPost(){return this.startPost_}getEndPost(){return this.endPost_}matches(e){const t=this.startIsInclusive_?this.index_.compare(this.getStartPost(),e)<=0:this.index_.compare(this.getStartPost(),e)<0;const 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){this.matches(new NamedNode(t,n))||(n=ChildrenNode.EMPTY_NODE);return this.indexedFilter_.updateChild(e,t,n,r,i,s)}updateFullNode(e,t,n){t.isLeafNode()&&(t=ChildrenNode.EMPTY_NODE);let r=t.withIndex(this.index_);r=r.updatePriority(ChildrenNode.EMPTY_NODE);const i=this;t.forEachChild(tt,((e,t)=>{i.matches(new NamedNode(e,t))||(r=r.updateImmediateChild(e,ChildrenNode.EMPTY_NODE))}));return this.indexedFilter_.updateFullNode(e,r,n)}updatePriority(e,t){return e}filtersNodes(){return true}getIndexedFilter(){return this.indexedFilter_}getIndex(){return this.index_}static getStartPost_(e){if(e.hasStart()){const t=e.getIndexStartName();return e.getIndex().makePost(e.getIndexStartValue(),t)}return e.getIndex().minPost()}static getEndPost_(e){if(e.hasEnd()){const t=e.getIndexEndName();return e.getIndex().makePost(e.getIndexEndValue(),t)}return e.getIndex().maxPost()}}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */class LimitedFilter{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=>{const t=this.index_.compare(this.rangedFilter_.getStartPost(),e);return this.startIsInclusive_?t<=0:t<0};this.withinEndPost=e=>{const t=this.index_.compare(e,this.rangedFilter_.getEndPost());return this.endIsInclusive_?t<=0:t<0};this.rangedFilter_=new RangedFilter(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){this.rangedFilter_.matches(new NamedNode(t,n))||(n=ChildrenNode.EMPTY_NODE);return 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,t,n){let r;if(t.isLeafNode()||t.isEmpty())r=ChildrenNode.EMPTY_NODE.withIndex(this.index_);else if(2*this.limit_<t.numChildren()&&t.isIndexed(this.index_)){r=ChildrenNode.EMPTY_NODE.withIndex(this.index_);let e;e=this.reverse_?t.getReverseIteratorFrom(this.rangedFilter_.getEndPost(),this.index_):t.getIteratorFrom(this.rangedFilter_.getStartPost(),this.index_);let n=0;while(e.hasNext()&&n<this.limit_){const t=e.getNext();if(this.withinDirectionalStart(t)){if(!this.withinDirectionalEnd(t))break;r=r.updateImmediateChild(t.name,t.node);n++}}}else{r=t.withIndex(this.index_);r=r.updatePriority(ChildrenNode.EMPTY_NODE);let e;e=this.reverse_?r.getReverseIterator(this.index_):r.getIterator(this.index_);let n=0;while(e.hasNext()){const t=e.getNext();const i=n<this.limit_&&this.withinDirectionalStart(t)&&this.withinDirectionalEnd(t);i?n++:r=r.updateImmediateChild(t.name,ChildrenNode.EMPTY_NODE)}}return this.rangedFilter_.getIndexedFilter().updateFullNode(e,r,n)}updatePriority(e,t){return e}filtersNodes(){return true}getIndexedFilter(){return this.rangedFilter_.getIndexedFilter()}getIndex(){return this.index_}fullLimitUpdateChild_(e,t,n,r,i){let s;if(this.reverse_){const e=this.index_.getCompare();s=(t,n)=>e(n,t)}else s=this.index_.getCompare();const o=e;d(o.numChildren()===this.limit_,\"\");const a=new NamedNode(t,n);const l=this.reverse_?o.getFirstChild(this.index_):o.getLastChild(this.index_);const c=this.rangedFilter_.matches(a);if(o.hasChild(t)){const e=o.getImmediateChild(t);let h=r.getChildAfterChild(this.index_,l,this.reverse_);while(null!=h&&(h.name===t||o.hasChild(h.name)))h=r.getChildAfterChild(this.index_,h,this.reverse_);const u=null==h?1:s(h,a);const d=c&&!n.isEmpty()&&u>=0;if(d){null!=i&&i.trackChildChange(changeChildChanged(t,n,e));return o.updateImmediateChild(t,n)}{null!=i&&i.trackChildChange(changeChildRemoved(t,e));const n=o.updateImmediateChild(t,ChildrenNode.EMPTY_NODE);const r=null!=h&&this.rangedFilter_.matches(h);if(r){null!=i&&i.trackChildChange(changeChildAdded(h.name,h.node));return n.updateImmediateChild(h.name,h.node)}return n}}if(n.isEmpty())return e;if(c){if(s(l,a)>=0){if(null!=i){i.trackChildChange(changeChildRemoved(l.name,l.node));i.trackChildChange(changeChildAdded(t,n))}return o.updateImmediateChild(t,n).updateImmediateChild(l.name,ChildrenNode.EMPTY_NODE)}return e}return e}}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */class QueryParams{constructor(){this.limitSet_=false;this.startSet_=false;this.startNameSet_=false;this.startAfterSet_=false;this.endSet_=false;this.endNameSet_=false;this.endBeforeSet_=false;this.limit_=0;this.viewFrom_=\"\";this.indexStartValue_=null;this.indexStartName_=\"\";this.indexEndValue_=null;this.indexEndName_=\"\";this.index_=tt}hasStart(){return this.startSet_}\n/**\n     * @returns True if it would return from left.\n     */isViewFromLeft(){return\"\"===this.viewFrom_?this.startSet_:\"l\"===this.viewFrom_}getIndexStartValue(){d(this.startSet_,\"Only valid if start has been set\");return this.indexStartValue_}getIndexStartName(){d(this.startSet_,\"Only valid if start has been set\");return this.startNameSet_?this.indexStartName_:U}hasEnd(){return this.endSet_}getIndexEndValue(){d(this.endSet_,\"Only valid if end has been set\");return this.indexEndValue_}getIndexEndName(){d(this.endSet_,\"Only valid if end has been set\");return this.endNameSet_?this.indexEndName_:V}hasLimit(){return this.limitSet_}\n/**\n     * @returns True if a limit has been set and it has been explicitly anchored\n     */hasAnchoredLimit(){return this.limitSet_&&\"\"!==this.viewFrom_}getLimit(){d(this.limitSet_,\"Only valid if limit has been set\");return this.limit_}getIndex(){return this.index_}loadsAllData(){return!(this.startSet_||this.endSet_||this.limitSet_)}isDefault(){return this.loadsAllData()&&this.index_===tt}copy(){const e=new QueryParams;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_;return e}}function queryParamsGetNodeFilter(e){return e.loadsAllData()?new IndexedFilter(e.getIndex()):e.hasLimit()?new LimitedFilter(e):new RangedFilter(e)}function queryParamsLimitToFirst(e,t){const n=e.copy();n.limitSet_=true;n.limit_=t;n.viewFrom_=\"l\";return n}function queryParamsLimitToLast(e,t){const n=e.copy();n.limitSet_=true;n.limit_=t;n.viewFrom_=\"r\";return n}function queryParamsStartAt(e,t,n){const r=e.copy();r.startSet_=true;void 0===t&&(t=null);r.indexStartValue_=t;if(null!=n){r.startNameSet_=true;r.indexStartName_=n}else{r.startNameSet_=false;r.indexStartName_=\"\"}return r}function queryParamsStartAfter(e,t,n){let r;r=e.index_===$e||n?queryParamsStartAt(e,t,n):queryParamsStartAt(e,t,V);r.startAfterSet_=true;return r}function queryParamsEndAt(e,t,n){const r=e.copy();r.endSet_=true;void 0===t&&(t=null);r.indexEndValue_=t;if(void 0!==n){r.endNameSet_=true;r.indexEndName_=n}else{r.endNameSet_=false;r.indexEndName_=\"\"}return r}function queryParamsEndBefore(e,t,n){let r;r=e.index_===$e||n?queryParamsEndAt(e,t,n):queryParamsEndAt(e,t,U);r.endBeforeSet_=true;return r}function queryParamsOrderBy(e,t){const n=e.copy();n.index_=t;return n}\n/**\n * Returns a set of REST query string parameters representing this query.\n *\n * @returns query string parameters\n */function queryParamsToRestQueryStringParameters(e){const t={};if(e.isDefault())return t;let n;if(e.index_===tt)n=\"$priority\";else if(e.index_===lt)n=\"$value\";else if(e.index_===$e)n=\"$key\";else{d(e.index_ instanceof PathIndex,\"Unrecognized index type!\");n=e.index_.toString()}t.orderBy=o(n);if(e.startSet_){const n=e.startAfterSet_?\"startAfter\":\"startAt\";t[n]=o(e.indexStartValue_);e.startNameSet_&&(t[n]+=\",\"+o(e.indexStartName_))}if(e.endSet_){const n=e.endBeforeSet_?\"endBefore\":\"endAt\";t[n]=o(e.indexEndValue_);e.endNameSet_&&(t[n]+=\",\"+o(e.indexEndName_))}e.limitSet_&&(e.isViewFromLeft()?t.limitToFirst=e.limit_:t.limitToLast=e.limit_);return t}function queryParamsGetQueryObject(e){const t={};if(e.startSet_){t.sp=e.indexStartValue_;e.startNameSet_&&(t.sn=e.indexStartName_);t.sin=!e.startAfterSet_}if(e.endSet_){t.ep=e.indexEndValue_;e.endNameSet_&&(t.en=e.indexEndName_);t.ein=!e.endBeforeSet_}if(e.limitSet_){t.l=e.limit_;let n=e.viewFrom_;\"\"===n&&(n=e.isViewFromLeft()?\"l\":\"r\");t.vf=n}e.index_!==tt&&(t.i=e.index_.toString());return t}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */class ReadonlyRestClient extends ServerActions{\n/**\n     * @param repoInfo_ - Data about the namespace we are connecting to\n     * @param onDataUpdate_ - A callback for new data from the server\n     */\nconstructor(e,t,n,r){super();this.repoInfo_=e;this.onDataUpdate_=t;this.authTokenProvider_=n;this.appCheckTokenProvider_=r;this.log_=logWrapper(\"p:rest:\");this.listens_={}}reportStats(e){throw new Error(\"Method not implemented.\")}static getListenId_(e,t){if(void 0!==t)return\"tag$\"+t;d(e._queryParams.isDefault(),\"should have a tag if it's not a default query.\");return e._path.toString()}listen(e,t,n,r){const i=e._path.toString();this.log_(\"Listen called for \"+i+\" \"+e._queryIdentifier);const s=ReadonlyRestClient.getListenId_(e,n);const o={};this.listens_[s]=o;const a=queryParamsToRestQueryStringParameters(e._queryParams);this.restRequest_(i+\".json\",a,((e,t)=>{let a=t;if(404===e){a=null;e=null}null===e&&this.onDataUpdate_(i,a,false,n);if(v(this.listens_,s)===o){let t;t=e?401===e?\"permission_denied\":\"rest_error:\"+e:\"ok\";r(t,null)}}))}unlisten(e,t){const n=ReadonlyRestClient.getListenId_(e,t);delete this.listens_[n]}get(e){const t=queryParamsToRestQueryStringParameters(e._queryParams);const n=e._path.toString();const r=new g;this.restRequest_(n+\".json\",t,((e,t)=>{let i=t;if(404===e){i=null;e=null}if(null===e){this.onDataUpdate_(n,i,false,null);r.resolve(i)}else r.reject(new Error(i))}));return r.promise}refreshAuthToken(e){}restRequest_(e,t={},n){t.format=\"export\";return Promise.all([this.authTokenProvider_.getToken(false),this.appCheckTokenProvider_.getToken(false)]).then((([r,i])=>{r&&r.accessToken&&(t.auth=r.accessToken);i&&i.token&&(t.ac=i.token);const s=(this.repoInfo_.secure?\"https://\":\"http://\")+this.repoInfo_.host+e+\"?ns=\"+this.repoInfo_.namespace+I(t);this.log_(\"Sending REST request for \"+s);const o=new XMLHttpRequest;o.onreadystatechange=()=>{if(n&&4===o.readyState){this.log_(\"REST Response for \"+s+\" received. status:\",o.status,\"response:\",o.responseText);let e=null;if(o.status>=200&&o.status<300){try{e=a(o.responseText)}catch(e){warn(\"Failed to parse JSON response for \"+s+\": \"+o.responseText)}n(null,e)}else{401!==o.status&&404!==o.status&&warn(\"Got unsuccessful REST response for \"+s+\" Status: \"+o.status);n(o.status)}n=null}};o.open(\"GET\",s,true);o.send()}))}}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */class SnapshotHolder{constructor(){this.rootNode_=ChildrenNode.EMPTY_NODE}getNode(e){return this.rootNode_.getChild(e)}updateSnapshot(e,t){this.rootNode_=this.rootNode_.updateChild(e,t)}}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */function newSparseSnapshotTree(){return{value:null,children:new Map}}\n/**\n * Stores the given node at the specified path. If there is already a node\n * at a shallower path, it merges the new data into that snapshot node.\n *\n * @param path - Path to look up snapshot for.\n * @param data - The new data, or null.\n */function sparseSnapshotTreeRemember(e,t,n){if(pathIsEmpty(t)){e.value=n;e.children.clear()}else if(null!==e.value)e.value=e.value.updateChild(t,n);else{const r=pathGetFront(t);e.children.has(r)||e.children.set(r,newSparseSnapshotTree());const i=e.children.get(r);t=pathPopFront(t);sparseSnapshotTreeRemember(i,t,n)}}\n/**\n * Purge the data at path from the cache.\n *\n * @param path - Path to look up snapshot for.\n * @returns True if this node should now be removed.\n */function sparseSnapshotTreeForget(e,t){if(pathIsEmpty(t)){e.value=null;e.children.clear();return true}if(null!==e.value){if(e.value.isLeafNode())return false;{const n=e.value;e.value=null;n.forEachChild(tt,((t,n)=>{sparseSnapshotTreeRemember(e,new Path(t),n)}));return sparseSnapshotTreeForget(e,t)}}if(e.children.size>0){const n=pathGetFront(t);t=pathPopFront(t);if(e.children.has(n)){const r=sparseSnapshotTreeForget(e.children.get(n),t);r&&e.children.delete(n)}return 0===e.children.size}return true}\n/**\n * Recursively iterates through all of the stored tree and calls the\n * callback on each one.\n *\n * @param prefixPath - Path to look up node for.\n * @param func - The function to invoke for each tree.\n */function sparseSnapshotTreeForEachTree(e,t,n){null!==e.value?n(t,e.value):sparseSnapshotTreeForEachChild(e,((e,r)=>{const i=new Path(t.toString()+\"/\"+e);sparseSnapshotTreeForEachTree(r,i,n)}))}\n/**\n * Iterates through each immediate child and triggers the callback.\n * Only seems to be used in tests.\n *\n * @param func - The function to invoke for each child.\n */function sparseSnapshotTreeForEachChild(e,t){e.children.forEach(((e,n)=>{t(n,e)}))}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n/**\n * Returns the delta from the previous call to get stats.\n *\n * @param collection_ - The collection to \"listen\" to.\n */class StatsListener{constructor(e){this.collection_=e;this.last_=null}get(){const e=this.collection_.get();const t=Object.assign({},e);this.last_&&each(this.last_,((e,n)=>{t[e]=t[e]-n}));this.last_=e;return t}}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */const ct=1e4;const ht=3e4;const ut=3e5;class StatsReporter{constructor(e,t){this.server_=t;this.statsToReport_={};this.statsListener_=new StatsListener(e);const n=ct+(ht-ct)*Math.random();setTimeoutNonBlocking(this.reportStats_.bind(this),Math.floor(n))}reportStats_(){const e=this.statsListener_.get();const t={};let n=false;each(e,((e,r)=>{if(r>0&&l(this.statsToReport_,e)){t[e]=r;n=true}}));n&&this.server_.reportStats(t);setTimeoutNonBlocking(this.reportStats_.bind(this),Math.floor(2*Math.random()*ut))}}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */var dt;(function(e){e[e.OVERWRITE=0]=\"OVERWRITE\";e[e.MERGE=1]=\"MERGE\";e[e.ACK_USER_WRITE=2]=\"ACK_USER_WRITE\";e[e.LISTEN_COMPLETE=3]=\"LISTEN_COMPLETE\"})(dt||(dt={}));function newOperationSourceUser(){return{fromUser:true,fromServer:false,queryId:null,tagged:false}}function newOperationSourceServer(){return{fromUser:false,fromServer:true,queryId:null,tagged:false}}function newOperationSourceServerTaggedQuery(e){return{fromUser:false,fromServer:true,queryId:e,tagged:true}}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */class AckUserWrite{\n/**\n     * @param affectedTree - A tree containing true for each affected path. Affected paths can't overlap.\n     */\nconstructor(e,t,n){this.path=e;this.affectedTree=t;this.revert=n;this.type=dt.ACK_USER_WRITE;this.source=newOperationSourceUser()}operationForChild(e){if(pathIsEmpty(this.path)){if(null!=this.affectedTree.value){d(this.affectedTree.children.isEmpty(),\"affectedTree should not have overlapping affected paths.\");return this}{const t=this.affectedTree.subtree(new Path(e));return new AckUserWrite(newEmptyPath(),t,this.revert)}}d(pathGetFront(this.path)===e,\"operationForChild called for unrelated child.\");return new AckUserWrite(pathPopFront(this.path),this.affectedTree,this.revert)}}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */class ListenComplete{constructor(e,t){this.source=e;this.path=t;this.type=dt.LISTEN_COMPLETE}operationForChild(e){return pathIsEmpty(this.path)?new ListenComplete(this.source,newEmptyPath()):new ListenComplete(this.source,pathPopFront(this.path))}}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */class Overwrite{constructor(e,t,n){this.source=e;this.path=t;this.snap=n;this.type=dt.OVERWRITE}operationForChild(e){return pathIsEmpty(this.path)?new Overwrite(this.source,newEmptyPath(),this.snap.getImmediateChild(e)):new Overwrite(this.source,pathPopFront(this.path),this.snap)}}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */class Merge{constructor(e,t,n){this.source=e;this.path=t;this.children=n;this.type=dt.MERGE}operationForChild(e){if(pathIsEmpty(this.path)){const t=this.children.subtree(new Path(e));return t.isEmpty()?null:t.value?new Overwrite(this.source,newEmptyPath(),t.value):new Merge(this.source,newEmptyPath(),t)}d(pathGetFront(this.path)===e,\"Can't get a merge for a child not on the path of the operation\");return new Merge(this.source,pathPopFront(this.path),this.children)}toString(){return\"Operation(\"+this.path+\": \"+this.source.toString()+\" merge: \"+this.children.toString()+\")\"}}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */class CacheNode{constructor(e,t,n){this.node_=e;this.fullyInitialized_=t;this.filtered_=n}isFullyInitialized(){return this.fullyInitialized_}isFiltered(){return this.filtered_}isCompleteForPath(e){if(pathIsEmpty(e))return this.isFullyInitialized()&&!this.filtered_;const t=pathGetFront(e);return this.isCompleteForChild(t)}isCompleteForChild(e){return this.isFullyInitialized()&&!this.filtered_||this.node_.hasChild(e)}getNode(){return this.node_}}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */class EventGenerator{constructor(e){this.query_=e;this.index_=this.query_._queryParams.getIndex()}}function eventGeneratorGenerateEventsForChanges(e,t,n,r){const i=[];const s=[];t.forEach((t=>{\"child_changed\"===t.type&&e.index_.indexedValueChanged(t.oldSnap,t.snapshotNode)&&s.push(changeChildMoved(t.childName,t.snapshotNode))}));eventGeneratorGenerateEventsForType(e,i,\"child_removed\",t,r,n);eventGeneratorGenerateEventsForType(e,i,\"child_added\",t,r,n);eventGeneratorGenerateEventsForType(e,i,\"child_moved\",s,r,n);eventGeneratorGenerateEventsForType(e,i,\"child_changed\",t,r,n);eventGeneratorGenerateEventsForType(e,i,\"value\",t,r,n);return i}function eventGeneratorGenerateEventsForType(e,t,n,r,i,s){const o=r.filter((e=>e.type===n));o.sort(((t,n)=>eventGeneratorCompareChanges(e,t,n)));o.forEach((n=>{const r=eventGeneratorMaterializeSingleChange(e,n,s);i.forEach((i=>{i.respondsTo(n.type)&&t.push(i.createEvent(r,e.query_))}))}))}function eventGeneratorMaterializeSingleChange(e,t,n){if(\"value\"===t.type||\"child_removed\"===t.type)return t;t.prevName=n.getPredecessorChildName(t.childName,t.snapshotNode,e.index_);return t}function eventGeneratorCompareChanges(e,t,n){if(null==t.childName||null==n.childName)throw S(\"Should only compare child_ events.\");const r=new NamedNode(t.childName,t.snapshotNode);const i=new NamedNode(n.childName,n.snapshotNode);return e.index_.compare(r,i)}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */function newViewCache(e,t){return{eventCache:e,serverCache:t}}function viewCacheUpdateEventSnap(e,t,n,r){return newViewCache(new CacheNode(t,n,r),e.serverCache)}function viewCacheUpdateServerSnap(e,t,n,r){return newViewCache(e.eventCache,new CacheNode(t,n,r))}function viewCacheGetCompleteEventSnap(e){return e.eventCache.isFullyInitialized()?e.eventCache.getNode():null}function viewCacheGetCompleteServerSnap(e){return e.serverCache.isFullyInitialized()?e.serverCache.getNode():null}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */let pt;const EmptyChildren=()=>{pt||(pt=new SortedMap(stringCompare));return pt};class ImmutableTree{constructor(e,t=EmptyChildren()){this.value=e;this.children=t}static fromObject(e){let t=new ImmutableTree(null);each(e,((e,n)=>{t=t.set(new Path(e),n)}));return t}isEmpty(){return null===this.value&&this.children.isEmpty()}\n/**\n     * Given a path and predicate, return the first node and the path to that node\n     * where the predicate returns true.\n     *\n     * TODO Do a perf test -- If we're creating a bunch of `{path: value:}`\n     * objects on the way back out, it may be better to pass down a pathSoFar obj.\n     *\n     * @param relativePath - The remainder of the path\n     * @param predicate - The predicate to satisfy to return a node\n     */findRootMostMatchingPathAndValue(e,t){if(null!=this.value&&t(this.value))return{path:newEmptyPath(),value:this.value};if(pathIsEmpty(e))return null;{const n=pathGetFront(e);const r=this.children.get(n);if(null!==r){const i=r.findRootMostMatchingPathAndValue(pathPopFront(e),t);if(null!=i){const e=pathChild(new Path(n),i.path);return{path:e,value:i.value}}return null}return null}}findRootMostValueAndPath(e){return this.findRootMostMatchingPathAndValue(e,(()=>true))}\n/**\n     * @returns The subtree at the given path\n     */subtree(e){if(pathIsEmpty(e))return this;{const t=pathGetFront(e);const n=this.children.get(t);return null!==n?n.subtree(pathPopFront(e)):new ImmutableTree(null)}}\n/**\n     * Sets a value at the specified path.\n     *\n     * @param relativePath - Path to set value at.\n     * @param toSet - Value to set.\n     * @returns Resulting tree.\n     */set(e,t){if(pathIsEmpty(e))return new ImmutableTree(t,this.children);{const n=pathGetFront(e);const r=this.children.get(n)||new ImmutableTree(null);const i=r.set(pathPopFront(e),t);const s=this.children.insert(n,i);return new ImmutableTree(this.value,s)}}\n/**\n     * Removes the value at the specified path.\n     *\n     * @param relativePath - Path to value to remove.\n     * @returns Resulting tree.\n     */remove(e){if(pathIsEmpty(e))return this.children.isEmpty()?new ImmutableTree(null):new ImmutableTree(null,this.children);{const t=pathGetFront(e);const n=this.children.get(t);if(n){const r=n.remove(pathPopFront(e));let i;i=r.isEmpty()?this.children.remove(t):this.children.insert(t,r);return null===this.value&&i.isEmpty()?new ImmutableTree(null):new ImmutableTree(this.value,i)}return this}}\n/**\n     * Gets a value from the tree.\n     *\n     * @param relativePath - Path to get value for.\n     * @returns Value at path, or null.\n     */get(e){if(pathIsEmpty(e))return this.value;{const t=pathGetFront(e);const n=this.children.get(t);return n?n.get(pathPopFront(e)):null}}\n/**\n     * Replace the subtree at the specified path with the given new tree.\n     *\n     * @param relativePath - Path to replace subtree for.\n     * @param newTree - New tree.\n     * @returns Resulting tree.\n     */setTree(e,t){if(pathIsEmpty(e))return t;{const n=pathGetFront(e);const r=this.children.get(n)||new ImmutableTree(null);const i=r.setTree(pathPopFront(e),t);let s;s=i.isEmpty()?this.children.remove(n):this.children.insert(n,i);return new ImmutableTree(this.value,s)}}fold(e){return this.fold_(newEmptyPath(),e)}fold_(e,t){const n={};this.children.inorderTraversal(((r,i)=>{n[r]=i.fold_(pathChild(e,r),t)}));return t(e,this.value,n)}findOnPath(e,t){return this.findOnPath_(e,newEmptyPath(),t)}findOnPath_(e,t,n){const r=!!this.value&&n(t,this.value);if(r)return r;if(pathIsEmpty(e))return null;{const r=pathGetFront(e);const i=this.children.get(r);return i?i.findOnPath_(pathPopFront(e),pathChild(t,r),n):null}}foreachOnPath(e,t){return this.foreachOnPath_(e,newEmptyPath(),t)}foreachOnPath_(e,t,n){if(pathIsEmpty(e))return this;{this.value&&n(t,this.value);const r=pathGetFront(e);const i=this.children.get(r);return i?i.foreachOnPath_(pathPopFront(e),pathChild(t,r),n):new ImmutableTree(null)}}\n/**\n     * Calls the given function for each node in the tree that has a value.\n     *\n     * @param f - A function to be called with the path from the root of the tree to\n     * a node, and the value at that node. Called in depth-first order.\n     */foreach(e){this.foreach_(newEmptyPath(),e)}foreach_(e,t){this.children.inorderTraversal(((n,r)=>{r.foreach_(pathChild(e,n),t)}));this.value&&t(e,this.value)}foreachChild(e){this.children.inorderTraversal(((t,n)=>{n.value&&e(t,n.value)}))}}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */class CompoundWrite{constructor(e){this.writeTree_=e}static empty(){return new CompoundWrite(new ImmutableTree(null))}}function compoundWriteAddWrite(e,t,n){if(pathIsEmpty(t))return new CompoundWrite(new ImmutableTree(n));{const r=e.writeTree_.findRootMostValueAndPath(t);if(null!=r){const i=r.path;let s=r.value;const o=newRelativePath(i,t);s=s.updateChild(o,n);return new CompoundWrite(e.writeTree_.set(i,s))}{const r=new ImmutableTree(n);const i=e.writeTree_.setTree(t,r);return new CompoundWrite(i)}}}function compoundWriteAddWrites(e,t,n){let r=e;each(n,((e,n)=>{r=compoundWriteAddWrite(r,pathChild(t,e),n)}));return r}\n/**\n * Will remove a write at the given path and deeper paths. This will <em>not</em> modify a write at a higher\n * location, which must be removed by calling this method with that path.\n *\n * @param compoundWrite - The CompoundWrite to remove.\n * @param path - The path at which a write and all deeper writes should be removed\n * @returns The new CompoundWrite with the removed path\n */function compoundWriteRemoveWrite(e,t){if(pathIsEmpty(t))return CompoundWrite.empty();{const n=e.writeTree_.setTree(t,new ImmutableTree(null));return new CompoundWrite(n)}}\n/**\n * Returns whether this CompoundWrite will fully overwrite a node at a given location and can therefore be\n * considered \"complete\".\n *\n * @param compoundWrite - The CompoundWrite to check.\n * @param path - The path to check for\n * @returns Whether there is a complete write at that path\n */function compoundWriteHasCompleteWrite(e,t){return null!=compoundWriteGetCompleteNode(e,t)}\n/**\n * Returns a node for a path if and only if the node is a \"complete\" overwrite at that path. This will not aggregate\n * writes from deeper paths, but will return child nodes from a more shallow path.\n *\n * @param compoundWrite - The CompoundWrite to get the node from.\n * @param path - The path to get a complete write\n * @returns The node if complete at that path, or null otherwise.\n */function compoundWriteGetCompleteNode(e,t){const n=e.writeTree_.findRootMostValueAndPath(t);return null!=n?e.writeTree_.get(n.path).getChild(newRelativePath(n.path,t)):null}\n/**\n * Returns all children that are guaranteed to be a complete overwrite.\n *\n * @param compoundWrite - The CompoundWrite to get children from.\n * @returns A list of all complete children.\n */function compoundWriteGetCompleteChildren(e){const t=[];const n=e.writeTree_.value;null!=n?n.isLeafNode()||n.forEachChild(tt,((e,n)=>{t.push(new NamedNode(e,n))})):e.writeTree_.children.inorderTraversal(((e,n)=>{null!=n.value&&t.push(new NamedNode(e,n.value))}));return t}function compoundWriteChildCompoundWrite(e,t){if(pathIsEmpty(t))return e;{const n=compoundWriteGetCompleteNode(e,t);return new CompoundWrite(null!=n?new ImmutableTree(n):e.writeTree_.subtree(t))}}\n/**\n * Returns true if this CompoundWrite is empty and therefore does not modify any nodes.\n * @returns Whether this CompoundWrite is empty\n */function compoundWriteIsEmpty(e){return e.writeTree_.isEmpty()}\n/**\n * Applies this CompoundWrite to a node. The node is returned with all writes from this CompoundWrite applied to the\n * node\n * @param node - The node to apply this CompoundWrite to\n * @returns The node with all writes applied\n */function compoundWriteApply(e,t){return applySubtreeWrite(newEmptyPath(),e.writeTree_,t)}function applySubtreeWrite(e,t,n){if(null!=t.value)return n.updateChild(e,t.value);{let r=null;t.children.inorderTraversal(((t,i)=>{if(\".priority\"===t){d(null!==i.value,\"Priority writes must always be leaf nodes\");r=i.value}else n=applySubtreeWrite(pathChild(e,t),i,n)}));n.getChild(e).isEmpty()||null===r||(n=n.updateChild(pathChild(e,\".priority\"),r));return n}}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */function writeTreeChildWrites(e,t){return newWriteTreeRef(t,e)}\n/**\n * Record a new overwrite from user code.\n *\n * @param visible - This is set to false by some transactions. It should be excluded from event caches\n */function writeTreeAddOverwrite(e,t,n,r,i){d(r>e.lastWriteId,\"Stacking an older write on top of newer ones\");void 0===i&&(i=true);e.allWrites.push({path:t,snap:n,writeId:r,visible:i});i&&(e.visibleWrites=compoundWriteAddWrite(e.visibleWrites,t,n));e.lastWriteId=r}function writeTreeAddMerge(e,t,n,r){d(r>e.lastWriteId,\"Stacking an older merge on top of newer ones\");e.allWrites.push({path:t,children:n,writeId:r,visible:true});e.visibleWrites=compoundWriteAddWrites(e.visibleWrites,t,n);e.lastWriteId=r}function writeTreeGetWrite(e,t){for(let n=0;n<e.allWrites.length;n++){const r=e.allWrites[n];if(r.writeId===t)return r}return null}\n/**\n * Remove a write (either an overwrite or merge) that has been successfully acknowledge by the server. Recalculates\n * the tree if necessary.  We return true if it may have been visible, meaning views need to reevaluate.\n *\n * @returns true if the write may have been visible (meaning we'll need to reevaluate / raise\n * events as a result).\n */function writeTreeRemoveWrite(e,t){const n=e.allWrites.findIndex((e=>e.writeId===t));d(n>=0,\"removeWrite called with nonexistent writeId.\");const r=e.allWrites[n];e.allWrites.splice(n,1);let i=r.visible;let s=false;let o=e.allWrites.length-1;while(i&&o>=0){const t=e.allWrites[o];t.visible&&(o>=n&&writeTreeRecordContainsPath_(t,r.path)?i=false:pathContains(r.path,t.path)&&(s=true));o--}if(i){if(s){writeTreeResetTree_(e);return true}if(r.snap)e.visibleWrites=compoundWriteRemoveWrite(e.visibleWrites,r.path);else{const t=r.children;each(t,(t=>{e.visibleWrites=compoundWriteRemoveWrite(e.visibleWrites,pathChild(r.path,t))}))}return true}return false}function writeTreeRecordContainsPath_(e,t){if(e.snap)return pathContains(e.path,t);for(const n in e.children)if(e.children.hasOwnProperty(n)&&pathContains(pathChild(e.path,n),t))return true;return false}function writeTreeResetTree_(e){e.visibleWrites=writeTreeLayerTree_(e.allWrites,writeTreeDefaultFilter_,newEmptyPath());e.allWrites.length>0?e.lastWriteId=e.allWrites[e.allWrites.length-1].writeId:e.lastWriteId=-1}function writeTreeDefaultFilter_(e){return e.visible}function writeTreeLayerTree_(e,t,n){let r=CompoundWrite.empty();for(let i=0;i<e.length;++i){const s=e[i];if(t(s)){const e=s.path;let t;if(s.snap){if(pathContains(n,e)){t=newRelativePath(n,e);r=compoundWriteAddWrite(r,t,s.snap)}else if(pathContains(e,n)){t=newRelativePath(e,n);r=compoundWriteAddWrite(r,newEmptyPath(),s.snap.getChild(t))}}else{if(!s.children)throw S(\"WriteRecord should have .snap or .children\");if(pathContains(n,e)){t=newRelativePath(n,e);r=compoundWriteAddWrites(r,t,s.children)}else if(pathContains(e,n)){t=newRelativePath(e,n);if(pathIsEmpty(t))r=compoundWriteAddWrites(r,newEmptyPath(),s.children);else{const e=v(s.children,pathGetFront(t));if(e){const n=e.getChild(pathPopFront(t));r=compoundWriteAddWrite(r,newEmptyPath(),n)}}}}}}return r}\n/**\n * Given optional, underlying server data, and an optional set of constraints (exclude some sets, include hidden\n * writes), attempt to calculate a complete snapshot for the given path\n *\n * @param writeIdsToExclude - An optional set to be excluded\n * @param includeHiddenWrites - Defaults to false, whether or not to layer on writes with visible set to false\n */function writeTreeCalcCompleteEventCache(e,t,n,r,i){if(r||i){const s=compoundWriteChildCompoundWrite(e.visibleWrites,t);if(!i&&compoundWriteIsEmpty(s))return n;if(i||null!=n||compoundWriteHasCompleteWrite(s,newEmptyPath())){const filter=function(e){return(e.visible||i)&&(!r||!~r.indexOf(e.writeId))&&(pathContains(e.path,t)||pathContains(t,e.path))};const s=writeTreeLayerTree_(e.allWrites,filter,t);const o=n||ChildrenNode.EMPTY_NODE;return compoundWriteApply(s,o)}return null}{const r=compoundWriteGetCompleteNode(e.visibleWrites,t);if(null!=r)return r;{const r=compoundWriteChildCompoundWrite(e.visibleWrites,t);if(compoundWriteIsEmpty(r))return n;if(null!=n||compoundWriteHasCompleteWrite(r,newEmptyPath())){const e=n||ChildrenNode.EMPTY_NODE;return compoundWriteApply(r,e)}return null}}}function writeTreeCalcCompleteEventChildren(e,t,n){let r=ChildrenNode.EMPTY_NODE;const i=compoundWriteGetCompleteNode(e.visibleWrites,t);if(i){i.isLeafNode()||i.forEachChild(tt,((e,t)=>{r=r.updateImmediateChild(e,t)}));return r}if(n){const i=compoundWriteChildCompoundWrite(e.visibleWrites,t);n.forEachChild(tt,((e,t)=>{const n=compoundWriteApply(compoundWriteChildCompoundWrite(i,new Path(e)),t);r=r.updateImmediateChild(e,n)}));compoundWriteGetCompleteChildren(i).forEach((e=>{r=r.updateImmediateChild(e.name,e.node)}));return r}{const n=compoundWriteChildCompoundWrite(e.visibleWrites,t);compoundWriteGetCompleteChildren(n).forEach((e=>{r=r.updateImmediateChild(e.name,e.node)}));return r}}function writeTreeCalcEventCacheAfterServerOverwrite(e,t,n,r,i){d(r||i,\"Either existingEventSnap or existingServerSnap must exist\");const s=pathChild(t,n);if(compoundWriteHasCompleteWrite(e.visibleWrites,s))return null;{const t=compoundWriteChildCompoundWrite(e.visibleWrites,s);return compoundWriteIsEmpty(t)?i.getChild(n):compoundWriteApply(t,i.getChild(n))}}function writeTreeCalcCompleteChild(e,t,n,r){const i=pathChild(t,n);const s=compoundWriteGetCompleteNode(e.visibleWrites,i);if(null!=s)return s;if(r.isCompleteForChild(n)){const t=compoundWriteChildCompoundWrite(e.visibleWrites,i);return compoundWriteApply(t,r.getNode().getImmediateChild(n))}return null}function writeTreeShadowingWrite(e,t){return compoundWriteGetCompleteNode(e.visibleWrites,t)}function writeTreeCalcIndexedSlice(e,t,n,r,i,s,o){let a;const l=compoundWriteChildCompoundWrite(e.visibleWrites,t);const c=compoundWriteGetCompleteNode(l,newEmptyPath());if(null!=c)a=c;else{if(null==n)return[];a=compoundWriteApply(l,n)}a=a.withIndex(o);if(a.isEmpty()||a.isLeafNode())return[];{const e=[];const t=o.getCompare();const n=s?a.getReverseIteratorFrom(r,o):a.getIteratorFrom(r,o);let l=n.getNext();while(l&&e.length<i){0!==t(l,r)&&e.push(l);l=n.getNext()}return e}}function newWriteTree(){return{visibleWrites:CompoundWrite.empty(),allWrites:[],lastWriteId:-1}}\n/**\n * If possible, returns a complete event cache, using the underlying server data if possible. In addition, can be used\n * to get a cache that includes hidden writes, and excludes arbitrary writes. Note that customizing the returned node\n * can lead to a more expensive calculation.\n *\n * @param writeIdsToExclude - Optional writes to exclude.\n * @param includeHiddenWrites - Defaults to false, whether or not to layer on writes with visible set to false\n */function writeTreeRefCalcCompleteEventCache(e,t,n,r){return writeTreeCalcCompleteEventCache(e.writeTree,e.treePath,t,n,r)}function writeTreeRefCalcCompleteEventChildren(e,t){return writeTreeCalcCompleteEventChildren(e.writeTree,e.treePath,t)}function writeTreeRefCalcEventCacheAfterServerOverwrite(e,t,n,r){return writeTreeCalcEventCacheAfterServerOverwrite(e.writeTree,e.treePath,t,n,r)}function writeTreeRefShadowingWrite(e,t){return writeTreeShadowingWrite(e.writeTree,pathChild(e.treePath,t))}function writeTreeRefCalcIndexedSlice(e,t,n,r,i,s){return writeTreeCalcIndexedSlice(e.writeTree,e.treePath,t,n,r,i,s)}function writeTreeRefCalcCompleteChild(e,t,n){return writeTreeCalcCompleteChild(e.writeTree,e.treePath,t,n)}function writeTreeRefChild(e,t){return newWriteTreeRef(pathChild(e.treePath,t),e.writeTree)}function newWriteTreeRef(e,t){return{treePath:e,writeTree:t}}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */class ChildChangeAccumulator{constructor(){this.changeMap=new Map}trackChildChange(e){const t=e.type;const n=e.childName;d(\"child_added\"===t||\"child_changed\"===t||\"child_removed\"===t,\"Only child changes supported for tracking\");d(\".priority\"!==n,\"Only non-priority child changes can be tracked.\");const r=this.changeMap.get(n);if(r){const i=r.type;if(\"child_added\"===t&&\"child_removed\"===i)this.changeMap.set(n,changeChildChanged(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,changeChildRemoved(n,r.oldSnap));else if(\"child_changed\"===t&&\"child_added\"===i)this.changeMap.set(n,changeChildAdded(n,e.snapshotNode));else{if(\"child_changed\"!==t||\"child_changed\"!==i)throw S(\"Illegal combination of changes: \"+e+\" occurred after \"+r);this.changeMap.set(n,changeChildChanged(n,e.snapshotNode,r.oldSnap))}}else this.changeMap.set(n,e)}getChanges(){return Array.from(this.changeMap.values())}}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */class NoCompleteChildSource_{getCompleteChild(e){return null}getChildAfterChild(e,t,n){return null}}const _t=new NoCompleteChildSource_;class WriteTreeCompleteChildSource{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);{const t=null!=this.optCompleteServerCache_?new CacheNode(this.optCompleteServerCache_,true,false):this.viewCache_.serverCache;return writeTreeRefCalcCompleteChild(this.writes_,e,t)}}getChildAfterChild(e,t,n){const r=null!=this.optCompleteServerCache_?this.optCompleteServerCache_:viewCacheGetCompleteServerSnap(this.viewCache_);const i=writeTreeRefCalcIndexedSlice(this.writes_,r,t,1,n,e);return 0===i.length?null:i[0]}}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */function newViewProcessor(e){return{filter:e}}function viewProcessorAssertIndexed(e,t){d(t.eventCache.getNode().isIndexed(e.filter.getIndex()),\"Event snap not indexed\");d(t.serverCache.getNode().isIndexed(e.filter.getIndex()),\"Server snap not indexed\")}function viewProcessorApplyOperation(e,t,n,r,i){const s=new ChildChangeAccumulator;let o,a;if(n.type===dt.OVERWRITE){const l=n;if(l.source.fromUser)o=viewProcessorApplyUserOverwrite(e,t,l.path,l.snap,r,i,s);else{d(l.source.fromServer,\"Unknown source.\");a=l.source.tagged||t.serverCache.isFiltered()&&!pathIsEmpty(l.path);o=viewProcessorApplyServerOverwrite(e,t,l.path,l.snap,r,i,a,s)}}else if(n.type===dt.MERGE){const l=n;if(l.source.fromUser)o=viewProcessorApplyUserMerge(e,t,l.path,l.children,r,i,s);else{d(l.source.fromServer,\"Unknown source.\");a=l.source.tagged||t.serverCache.isFiltered();o=viewProcessorApplyServerMerge(e,t,l.path,l.children,r,i,a,s)}}else if(n.type===dt.ACK_USER_WRITE){const a=n;o=a.revert?viewProcessorRevertUserWrite(e,t,a.path,r,i,s):viewProcessorAckUserWrite(e,t,a.path,a.affectedTree,r,i,s)}else{if(n.type!==dt.LISTEN_COMPLETE)throw S(\"Unknown operation type: \"+n.type);o=viewProcessorListenComplete(e,t,n.path,r,s)}const l=s.getChanges();viewProcessorMaybeAddValueEvent(t,o,l);return{viewCache:o,changes:l}}function viewProcessorMaybeAddValueEvent(e,t,n){const r=t.eventCache;if(r.isFullyInitialized()){const i=r.getNode().isLeafNode()||r.getNode().isEmpty();const s=viewCacheGetCompleteEventSnap(e);(n.length>0||!e.eventCache.isFullyInitialized()||i&&!r.getNode().equals(s)||!r.getNode().getPriority().equals(s.getPriority()))&&n.push(changeValue(viewCacheGetCompleteEventSnap(t)))}}function viewProcessorGenerateEventCacheAfterServerEvent(e,t,n,r,i,s){const o=t.eventCache;if(null!=writeTreeRefShadowingWrite(r,n))return t;{let a,l;if(pathIsEmpty(n)){d(t.serverCache.isFullyInitialized(),\"If change path is empty, we must have complete server data\");if(t.serverCache.isFiltered()){const n=viewCacheGetCompleteServerSnap(t);const i=n instanceof ChildrenNode?n:ChildrenNode.EMPTY_NODE;const o=writeTreeRefCalcCompleteEventChildren(r,i);a=e.filter.updateFullNode(t.eventCache.getNode(),o,s)}else{const n=writeTreeRefCalcCompleteEventCache(r,viewCacheGetCompleteServerSnap(t));a=e.filter.updateFullNode(t.eventCache.getNode(),n,s)}}else{const c=pathGetFront(n);if(\".priority\"===c){d(1===pathGetLength(n),\"Can't have a priority with additional path components\");const i=o.getNode();l=t.serverCache.getNode();const s=writeTreeRefCalcEventCacheAfterServerOverwrite(r,n,i,l);a=null!=s?e.filter.updatePriority(i,s):o.getNode()}else{const h=pathPopFront(n);let u;if(o.isCompleteForChild(c)){l=t.serverCache.getNode();const e=writeTreeRefCalcEventCacheAfterServerOverwrite(r,n,o.getNode(),l);u=null!=e?o.getNode().getImmediateChild(c).updateChild(h,e):o.getNode().getImmediateChild(c)}else u=writeTreeRefCalcCompleteChild(r,c,t.serverCache);a=null!=u?e.filter.updateChild(o.getNode(),c,u,h,i,s):o.getNode()}}return viewCacheUpdateEventSnap(t,a,o.isFullyInitialized()||pathIsEmpty(n),e.filter.filtersNodes())}}function viewProcessorApplyServerOverwrite(e,t,n,r,i,s,o,a){const l=t.serverCache;let c;const h=o?e.filter:e.filter.getIndexedFilter();if(pathIsEmpty(n))c=h.updateFullNode(l.getNode(),r,null);else if(h.filtersNodes()&&!l.isFiltered()){const e=l.getNode().updateChild(n,r);c=h.updateFullNode(l.getNode(),e,null)}else{const e=pathGetFront(n);if(!l.isCompleteForPath(n)&&pathGetLength(n)>1)return t;const i=pathPopFront(n);const s=l.getNode().getImmediateChild(e);const o=s.updateChild(i,r);c=\".priority\"===e?h.updatePriority(l.getNode(),o):h.updateChild(l.getNode(),e,o,i,_t,null)}const u=viewCacheUpdateServerSnap(t,c,l.isFullyInitialized()||pathIsEmpty(n),h.filtersNodes());const d=new WriteTreeCompleteChildSource(i,u,s);return viewProcessorGenerateEventCacheAfterServerEvent(e,u,n,i,d,a)}function viewProcessorApplyUserOverwrite(e,t,n,r,i,s,o){const a=t.eventCache;let l,c;const h=new WriteTreeCompleteChildSource(i,t,s);if(pathIsEmpty(n)){c=e.filter.updateFullNode(t.eventCache.getNode(),r,o);l=viewCacheUpdateEventSnap(t,c,true,e.filter.filtersNodes())}else{const i=pathGetFront(n);if(\".priority\"===i){c=e.filter.updatePriority(t.eventCache.getNode(),r);l=viewCacheUpdateEventSnap(t,c,a.isFullyInitialized(),a.isFiltered())}else{const s=pathPopFront(n);const c=a.getNode().getImmediateChild(i);let u;if(pathIsEmpty(s))u=r;else{const e=h.getCompleteChild(i);u=null!=e?\".priority\"===pathGetBack(s)&&e.getChild(pathParent(s)).isEmpty()?e:e.updateChild(s,r):ChildrenNode.EMPTY_NODE}if(c.equals(u))l=t;else{const n=e.filter.updateChild(a.getNode(),i,u,s,h,o);l=viewCacheUpdateEventSnap(t,n,a.isFullyInitialized(),e.filter.filtersNodes())}}}return l}function viewProcessorCacheHasChild(e,t){return e.eventCache.isCompleteForChild(t)}function viewProcessorApplyUserMerge(e,t,n,r,i,s,o){let a=t;r.foreach(((r,l)=>{const c=pathChild(n,r);viewProcessorCacheHasChild(t,pathGetFront(c))&&(a=viewProcessorApplyUserOverwrite(e,a,c,l,i,s,o))}));r.foreach(((r,l)=>{const c=pathChild(n,r);viewProcessorCacheHasChild(t,pathGetFront(c))||(a=viewProcessorApplyUserOverwrite(e,a,c,l,i,s,o))}));return a}function viewProcessorApplyMerge(e,t,n){n.foreach(((e,n)=>{t=t.updateChild(e,n)}));return t}function viewProcessorApplyServerMerge(e,t,n,r,i,s,o,a){if(t.serverCache.getNode().isEmpty()&&!t.serverCache.isFullyInitialized())return t;let l=t;let c;c=pathIsEmpty(n)?r:new ImmutableTree(null).setTree(n,r);const h=t.serverCache.getNode();c.children.inorderTraversal(((n,r)=>{if(h.hasChild(n)){const c=t.serverCache.getNode().getImmediateChild(n);const h=viewProcessorApplyMerge(e,c,r);l=viewProcessorApplyServerOverwrite(e,l,new Path(n),h,i,s,o,a)}}));c.children.inorderTraversal(((n,r)=>{const c=!t.serverCache.isCompleteForChild(n)&&null===r.value;if(!h.hasChild(n)&&!c){const c=t.serverCache.getNode().getImmediateChild(n);const h=viewProcessorApplyMerge(e,c,r);l=viewProcessorApplyServerOverwrite(e,l,new Path(n),h,i,s,o,a)}}));return l}function viewProcessorAckUserWrite(e,t,n,r,i,s,o){if(null!=writeTreeRefShadowingWrite(i,n))return t;const a=t.serverCache.isFiltered();const l=t.serverCache;if(null!=r.value){if(pathIsEmpty(n)&&l.isFullyInitialized()||l.isCompleteForPath(n))return viewProcessorApplyServerOverwrite(e,t,n,l.getNode().getChild(n),i,s,a,o);if(pathIsEmpty(n)){let r=new ImmutableTree(null);l.getNode().forEachChild($e,((e,t)=>{r=r.set(new Path(e),t)}));return viewProcessorApplyServerMerge(e,t,n,r,i,s,a,o)}return t}{let c=new ImmutableTree(null);r.foreach(((e,t)=>{const r=pathChild(n,e);l.isCompleteForPath(r)&&(c=c.set(e,l.getNode().getChild(r)))}));return viewProcessorApplyServerMerge(e,t,n,c,i,s,a,o)}}function viewProcessorListenComplete(e,t,n,r,i){const s=t.serverCache;const o=viewCacheUpdateServerSnap(t,s.getNode(),s.isFullyInitialized()||pathIsEmpty(n),s.isFiltered());return viewProcessorGenerateEventCacheAfterServerEvent(e,o,n,r,_t,i)}function viewProcessorRevertUserWrite(e,t,n,r,i,s){let o;if(null!=writeTreeRefShadowingWrite(r,n))return t;{const a=new WriteTreeCompleteChildSource(r,t,i);const l=t.eventCache.getNode();let c;if(pathIsEmpty(n)||\".priority\"===pathGetFront(n)){let n;if(t.serverCache.isFullyInitialized())n=writeTreeRefCalcCompleteEventCache(r,viewCacheGetCompleteServerSnap(t));else{const e=t.serverCache.getNode();d(e instanceof ChildrenNode,\"serverChildren would be complete if leaf node\");n=writeTreeRefCalcCompleteEventChildren(r,e)}n=n;c=e.filter.updateFullNode(l,n,s)}else{const i=pathGetFront(n);let h=writeTreeRefCalcCompleteChild(r,i,t.serverCache);null==h&&t.serverCache.isCompleteForChild(i)&&(h=l.getImmediateChild(i));c=null!=h?e.filter.updateChild(l,i,h,pathPopFront(n),a,s):t.eventCache.getNode().hasChild(i)?e.filter.updateChild(l,i,ChildrenNode.EMPTY_NODE,pathPopFront(n),a,s):l;if(c.isEmpty()&&t.serverCache.isFullyInitialized()){o=writeTreeRefCalcCompleteEventCache(r,viewCacheGetCompleteServerSnap(t));o.isLeafNode()&&(c=e.filter.updateFullNode(c,o,s))}}o=t.serverCache.isFullyInitialized()||null!=writeTreeRefShadowingWrite(r,newEmptyPath());return viewCacheUpdateEventSnap(t,c,o,e.filter.filtersNodes())}}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */class View{constructor(e,t){this.query_=e;this.eventRegistrations_=[];const n=this.query_._queryParams;const r=new IndexedFilter(n.getIndex());const i=queryParamsGetNodeFilter(n);this.processor_=newViewProcessor(i);const s=t.serverCache;const o=t.eventCache;const a=r.updateFullNode(ChildrenNode.EMPTY_NODE,s.getNode(),null);const l=i.updateFullNode(ChildrenNode.EMPTY_NODE,o.getNode(),null);const c=new CacheNode(a,s.isFullyInitialized(),r.filtersNodes());const h=new CacheNode(l,o.isFullyInitialized(),i.filtersNodes());this.viewCache_=newViewCache(h,c);this.eventGenerator_=new EventGenerator(this.query_)}get query(){return this.query_}}function viewGetServerCache(e){return e.viewCache_.serverCache.getNode()}function viewGetCompleteNode(e){return viewCacheGetCompleteEventSnap(e.viewCache_)}function viewGetCompleteServerCache(e,t){const n=viewCacheGetCompleteServerSnap(e.viewCache_);return n&&(e.query._queryParams.loadsAllData()||!pathIsEmpty(t)&&!n.getImmediateChild(pathGetFront(t)).isEmpty())?n.getChild(t):null}function viewIsEmpty(e){return 0===e.eventRegistrations_.length}function viewAddEventRegistration(e,t){e.eventRegistrations_.push(t)}\n/**\n * @param eventRegistration - If null, remove all callbacks.\n * @param cancelError - If a cancelError is provided, appropriate cancel events will be returned.\n * @returns Cancel events, if cancelError was provided.\n */function viewRemoveEventRegistration(e,t,n){const r=[];if(n){d(null==t,\"A cancel should cancel all event registrations.\");const i=e.query._path;e.eventRegistrations_.forEach((e=>{const t=e.createCancelEvent(n,i);t&&r.push(t)}))}if(t){let n=[];for(let r=0;r<e.eventRegistrations_.length;++r){const i=e.eventRegistrations_[r];if(i.matches(t)){if(t.hasAnyCallback()){n=n.concat(e.eventRegistrations_.slice(r+1));break}}else n.push(i)}e.eventRegistrations_=n}else e.eventRegistrations_=[];return r}function viewApplyOperation(e,t,n,r){if(t.type===dt.MERGE&&null!==t.source.queryId){d(viewCacheGetCompleteServerSnap(e.viewCache_),\"We should always have a full cache before handling merges\");d(viewCacheGetCompleteEventSnap(e.viewCache_),\"Missing event cache, even though we have a server cache\")}const i=e.viewCache_;const s=viewProcessorApplyOperation(e.processor_,i,t,n,r);viewProcessorAssertIndexed(e.processor_,s.viewCache);d(s.viewCache.serverCache.isFullyInitialized()||!i.serverCache.isFullyInitialized(),\"Once a server snap is complete, it should never go back\");e.viewCache_=s.viewCache;return viewGenerateEventsForChanges_(e,s.changes,s.viewCache.eventCache.getNode(),null)}function viewGetInitialEvents(e,t){const n=e.viewCache_.eventCache;const r=[];if(!n.getNode().isLeafNode()){const e=n.getNode();e.forEachChild(tt,((e,t)=>{r.push(changeChildAdded(e,t))}))}n.isFullyInitialized()&&r.push(changeValue(n.getNode()));return viewGenerateEventsForChanges_(e,r,n.getNode(),t)}function viewGenerateEventsForChanges_(e,t,n,r){const i=r?[r]:e.eventRegistrations_;return eventGeneratorGenerateEventsForChanges(e.eventGenerator_,t,n,i)}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */let ft;class SyncPoint{constructor(){this.views=new Map}}function syncPointSetReferenceConstructor(e){d(!ft,\"__referenceConstructor has already been defined\");ft=e}function syncPointGetReferenceConstructor(){d(ft,\"Reference.ts has not been loaded\");return ft}function syncPointIsEmpty(e){return 0===e.views.size}function syncPointApplyOperation(e,t,n,r){const i=t.source.queryId;if(null!==i){const s=e.views.get(i);d(null!=s,\"SyncTree gave us an op for an invalid query.\");return viewApplyOperation(s,t,n,r)}{let i=[];for(const s of e.views.values())i=i.concat(viewApplyOperation(s,t,n,r));return i}}\n/**\n * Get a view for the specified query.\n *\n * @param query - The query to return a view for\n * @param writesCache\n * @param serverCache\n * @param serverCacheComplete\n * @returns Events to raise.\n */function syncPointGetView(e,t,n,r,i){const s=t._queryIdentifier;const o=e.views.get(s);if(!o){let e=writeTreeRefCalcCompleteEventCache(n,i?r:null);let s=false;if(e)s=true;else if(r instanceof ChildrenNode){e=writeTreeRefCalcCompleteEventChildren(n,r);s=false}else{e=ChildrenNode.EMPTY_NODE;s=false}const o=newViewCache(new CacheNode(e,s,false),new CacheNode(r,i,false));return new View(t,o)}return o}\n/**\n * Add an event callback for the specified query.\n *\n * @param query\n * @param eventRegistration\n * @param writesCache\n * @param serverCache - Complete server cache, if we have it.\n * @param serverCacheComplete\n * @returns Events to raise.\n */function syncPointAddEventRegistration(e,t,n,r,i,s){const o=syncPointGetView(e,t,r,i,s);e.views.has(t._queryIdentifier)||e.views.set(t._queryIdentifier,o);viewAddEventRegistration(o,n);return viewGetInitialEvents(o,n)}\n/**\n * Remove event callback(s).  Return cancelEvents if a cancelError is specified.\n *\n * If query is the default query, we'll check all views for the specified eventRegistration.\n * If eventRegistration is null, we'll remove all callbacks for the specified view(s).\n *\n * @param eventRegistration - If null, remove all callbacks.\n * @param cancelError - If a cancelError is provided, appropriate cancel events will be returned.\n * @returns removed queries and any cancel events\n */function syncPointRemoveEventRegistration(e,t,n,r){const i=t._queryIdentifier;const s=[];let o=[];const a=syncPointHasCompleteView(e);if(\"default\"===i)for(const[t,i]of e.views.entries()){o=o.concat(viewRemoveEventRegistration(i,n,r));if(viewIsEmpty(i)){e.views.delete(t);i.query._queryParams.loadsAllData()||s.push(i.query)}}else{const t=e.views.get(i);if(t){o=o.concat(viewRemoveEventRegistration(t,n,r));if(viewIsEmpty(t)){e.views.delete(i);t.query._queryParams.loadsAllData()||s.push(t.query)}}}a&&!syncPointHasCompleteView(e)&&s.push(new(syncPointGetReferenceConstructor())(t._repo,t._path));return{removed:s,events:o}}function syncPointGetQueryViews(e){const t=[];for(const n of e.views.values())n.query._queryParams.loadsAllData()||t.push(n);return t}\n/**\n * @param path - The path to the desired complete snapshot\n * @returns A complete cache, if it exists\n */function syncPointGetCompleteServerCache(e,t){let n=null;for(const r of e.views.values())n=n||viewGetCompleteServerCache(r,t);return n}function syncPointViewForQuery(e,t){const n=t._queryParams;if(n.loadsAllData())return syncPointGetCompleteView(e);{const n=t._queryIdentifier;return e.views.get(n)}}function syncPointViewExistsForQuery(e,t){return null!=syncPointViewForQuery(e,t)}function syncPointHasCompleteView(e){return null!=syncPointGetCompleteView(e)}function syncPointGetCompleteView(e){for(const t of e.views.values())if(t.query._queryParams.loadsAllData())return t;return null}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */let mt;function syncTreeSetReferenceConstructor(e){d(!mt,\"__referenceConstructor has already been defined\");mt=e}function syncTreeGetReferenceConstructor(){d(mt,\"Reference.ts has not been loaded\");return mt}let yt=1;class SyncTree{\n/**\n     * @param listenProvider_ - Used by SyncTree to start / stop listening\n     *   to server data.\n     */\nconstructor(e){this.listenProvider_=e;this.syncPointTree_=new ImmutableTree(null);this.pendingWriteTree_=newWriteTree();this.tagToQueryMap=new Map;this.queryToTagMap=new Map}}\n/**\n * Apply the data changes for a user-generated set() or transaction() call.\n *\n * @returns Events to raise.\n */function syncTreeApplyUserOverwrite(e,t,n,r,i){writeTreeAddOverwrite(e.pendingWriteTree_,t,n,r,i);return i?syncTreeApplyOperationToSyncPoints_(e,new Overwrite(newOperationSourceUser(),t,n)):[]}\n/**\n * Apply the data from a user-generated update() call\n *\n * @returns Events to raise.\n */function syncTreeApplyUserMerge(e,t,n,r){writeTreeAddMerge(e.pendingWriteTree_,t,n,r);const i=ImmutableTree.fromObject(n);return syncTreeApplyOperationToSyncPoints_(e,new Merge(newOperationSourceUser(),t,i))}\n/**\n * Acknowledge a pending user write that was previously registered with applyUserOverwrite() or applyUserMerge().\n *\n * @param revert - True if the given write failed and needs to be reverted\n * @returns Events to raise.\n */function syncTreeAckUserWrite(e,t,n=false){const r=writeTreeGetWrite(e.pendingWriteTree_,t);const i=writeTreeRemoveWrite(e.pendingWriteTree_,t);if(i){let t=new ImmutableTree(null);null!=r.snap?t=t.set(newEmptyPath(),true):each(r.children,(e=>{t=t.set(new Path(e),true)}));return syncTreeApplyOperationToSyncPoints_(e,new AckUserWrite(r.path,t,n))}return[]}\n/**\n * Apply new server data for the specified path..\n *\n * @returns Events to raise.\n */function syncTreeApplyServerOverwrite(e,t,n){return syncTreeApplyOperationToSyncPoints_(e,new Overwrite(newOperationSourceServer(),t,n))}\n/**\n * Apply new server data to be merged in at the specified path.\n *\n * @returns Events to raise.\n */function syncTreeApplyServerMerge(e,t,n){const r=ImmutableTree.fromObject(n);return syncTreeApplyOperationToSyncPoints_(e,new Merge(newOperationSourceServer(),t,r))}\n/**\n * Apply a listen complete for a query\n *\n * @returns Events to raise.\n */function syncTreeApplyListenComplete(e,t){return syncTreeApplyOperationToSyncPoints_(e,new ListenComplete(newOperationSourceServer(),t))}\n/**\n * Apply a listen complete for a tagged query\n *\n * @returns Events to raise.\n */function syncTreeApplyTaggedListenComplete(e,t,n){const r=syncTreeQueryKeyForTag_(e,n);if(r){const n=syncTreeParseQueryKey_(r);const i=n.path,s=n.queryId;const o=newRelativePath(i,t);const a=new ListenComplete(newOperationSourceServerTaggedQuery(s),o);return syncTreeApplyTaggedOperation_(e,i,a)}return[]}\n/**\n * Remove event callback(s).\n *\n * If query is the default query, we'll check all queries for the specified eventRegistration.\n * If eventRegistration is null, we'll remove all callbacks for the specified query/queries.\n *\n * @param eventRegistration - If null, all callbacks are removed.\n * @param cancelError - If a cancelError is provided, appropriate cancel events will be returned.\n * @param skipListenerDedup - When performing a `get()`, we don't add any new listeners, so no\n *  deduping needs to take place. This flag allows toggling of that behavior\n * @returns Cancel events, if cancelError was provided.\n */function syncTreeRemoveEventRegistration(e,t,n,r,i=false){const s=t._path;const o=e.syncPointTree_.get(s);let a=[];if(o&&(\"default\"===t._queryIdentifier||syncPointViewExistsForQuery(o,t))){const l=syncPointRemoveEventRegistration(o,t,n,r);syncPointIsEmpty(o)&&(e.syncPointTree_=e.syncPointTree_.remove(s));const c=l.removed;a=l.events;if(!i){const n=-1!==c.findIndex((e=>e._queryParams.loadsAllData()));const i=e.syncPointTree_.findOnPath(s,((e,t)=>syncPointHasCompleteView(t)));if(n&&!i){const t=e.syncPointTree_.subtree(s);if(!t.isEmpty()){const n=syncTreeCollectDistinctViewsForSubTree_(t);for(let t=0;t<n.length;++t){const r=n[t],i=r.query;const s=syncTreeCreateListenerForView_(e,r);e.listenProvider_.startListening(syncTreeQueryForListening_(i),syncTreeTagForQuery(e,i),s.hashFn,s.onComplete)}}}if(!i&&c.length>0&&!r)if(n){const n=null;e.listenProvider_.stopListening(syncTreeQueryForListening_(t),n)}else c.forEach((t=>{const n=e.queryToTagMap.get(syncTreeMakeQueryKey_(t));e.listenProvider_.stopListening(syncTreeQueryForListening_(t),n)}))}syncTreeRemoveTags_(e,c)}return a}\n/**\n * Apply new server data for the specified tagged query.\n *\n * @returns Events to raise.\n */function syncTreeApplyTaggedQueryOverwrite(e,t,n,r){const i=syncTreeQueryKeyForTag_(e,r);if(null!=i){const r=syncTreeParseQueryKey_(i);const s=r.path,o=r.queryId;const a=newRelativePath(s,t);const l=new Overwrite(newOperationSourceServerTaggedQuery(o),a,n);return syncTreeApplyTaggedOperation_(e,s,l)}return[]}\n/**\n * Apply server data to be merged in for the specified tagged query.\n *\n * @returns Events to raise.\n */function syncTreeApplyTaggedQueryMerge(e,t,n,r){const i=syncTreeQueryKeyForTag_(e,r);if(i){const r=syncTreeParseQueryKey_(i);const s=r.path,o=r.queryId;const a=newRelativePath(s,t);const l=ImmutableTree.fromObject(n);const c=new Merge(newOperationSourceServerTaggedQuery(o),a,l);return syncTreeApplyTaggedOperation_(e,s,c)}return[]}\n/**\n * Add an event callback for the specified query.\n *\n * @returns Events to raise.\n */function syncTreeAddEventRegistration(e,t,n,r=false){const i=t._path;let s=null;let o=false;e.syncPointTree_.foreachOnPath(i,((e,t)=>{const n=newRelativePath(e,i);s=s||syncPointGetCompleteServerCache(t,n);o=o||syncPointHasCompleteView(t)}));let a=e.syncPointTree_.get(i);if(a){o=o||syncPointHasCompleteView(a);s=s||syncPointGetCompleteServerCache(a,newEmptyPath())}else{a=new SyncPoint;e.syncPointTree_=e.syncPointTree_.set(i,a)}let l;if(null!=s)l=true;else{l=false;s=ChildrenNode.EMPTY_NODE;const t=e.syncPointTree_.subtree(i);t.foreachChild(((e,t)=>{const n=syncPointGetCompleteServerCache(t,newEmptyPath());n&&(s=s.updateImmediateChild(e,n))}))}const c=syncPointViewExistsForQuery(a,t);if(!c&&!t._queryParams.loadsAllData()){const n=syncTreeMakeQueryKey_(t);d(!e.queryToTagMap.has(n),\"View does not exist, but we have a tag\");const r=syncTreeGetNextQueryTag_();e.queryToTagMap.set(n,r);e.tagToQueryMap.set(r,n)}const h=writeTreeChildWrites(e.pendingWriteTree_,i);let u=syncPointAddEventRegistration(a,t,n,h,s,l);if(!c&&!o&&!r){const n=syncPointViewForQuery(a,t);u=u.concat(syncTreeSetupListener_(e,t,n))}return u}\n/**\n * Returns a complete cache, if we have one, of the data at a particular path. If the location does not have a\n * listener above it, we will get a false \"null\". This shouldn't be a problem because transactions will always\n * have a listener above, and atomic operations would correctly show a jitter of <increment value> ->\n *     <incremented total> as the write is applied locally and then acknowledged at the server.\n *\n * Note: this method will *include* hidden writes from transaction with applyLocally set to false.\n *\n * @param path - The path to the data we want\n * @param writeIdsToExclude - A specific set to be excluded\n */function syncTreeCalcCompleteEventCache(e,t,n){const r=true;const i=e.pendingWriteTree_;const s=e.syncPointTree_.findOnPath(t,((e,n)=>{const r=newRelativePath(e,t);const i=syncPointGetCompleteServerCache(n,r);if(i)return i}));return writeTreeCalcCompleteEventCache(i,t,s,n,r)}function syncTreeGetServerValue(e,t){const n=t._path;let r=null;e.syncPointTree_.foreachOnPath(n,((e,t)=>{const i=newRelativePath(e,n);r=r||syncPointGetCompleteServerCache(t,i)}));let i=e.syncPointTree_.get(n);if(i)r=r||syncPointGetCompleteServerCache(i,newEmptyPath());else{i=new SyncPoint;e.syncPointTree_=e.syncPointTree_.set(n,i)}const s=null!=r;const o=s?new CacheNode(r,true,false):null;const a=writeTreeChildWrites(e.pendingWriteTree_,t._path);const l=syncPointGetView(i,t,a,s?o.getNode():ChildrenNode.EMPTY_NODE,s);return viewGetCompleteNode(l)}function syncTreeApplyOperationToSyncPoints_(e,t){return syncTreeApplyOperationHelper_(t,e.syncPointTree_,null,writeTreeChildWrites(e.pendingWriteTree_,newEmptyPath()))}function syncTreeApplyOperationHelper_(e,t,n,r){if(pathIsEmpty(e.path))return syncTreeApplyOperationDescendantsHelper_(e,t,n,r);{const i=t.get(newEmptyPath());null==n&&null!=i&&(n=syncPointGetCompleteServerCache(i,newEmptyPath()));let s=[];const o=pathGetFront(e.path);const a=e.operationForChild(o);const l=t.children.get(o);if(l&&a){const e=n?n.getImmediateChild(o):null;const t=writeTreeRefChild(r,o);s=s.concat(syncTreeApplyOperationHelper_(a,l,e,t))}i&&(s=s.concat(syncPointApplyOperation(i,e,r,n)));return s}}function syncTreeApplyOperationDescendantsHelper_(e,t,n,r){const i=t.get(newEmptyPath());null==n&&null!=i&&(n=syncPointGetCompleteServerCache(i,newEmptyPath()));let s=[];t.children.inorderTraversal(((t,i)=>{const o=n?n.getImmediateChild(t):null;const a=writeTreeRefChild(r,t);const l=e.operationForChild(t);l&&(s=s.concat(syncTreeApplyOperationDescendantsHelper_(l,i,o,a)))}));i&&(s=s.concat(syncPointApplyOperation(i,e,r,n)));return s}function syncTreeCreateListenerForView_(e,t){const n=t.query;const r=syncTreeTagForQuery(e,n);return{hashFn:()=>{const e=viewGetServerCache(t)||ChildrenNode.EMPTY_NODE;return e.hash()},onComplete:t=>{if(\"ok\"===t)return r?syncTreeApplyTaggedListenComplete(e,n._path,r):syncTreeApplyListenComplete(e,n._path);{const r=errorForServerCode(t,n);return syncTreeRemoveEventRegistration(e,n,null,r)}}}}function syncTreeTagForQuery(e,t){const n=syncTreeMakeQueryKey_(t);return e.queryToTagMap.get(n)}function syncTreeMakeQueryKey_(e){return e._path.toString()+\"$\"+e._queryIdentifier}function syncTreeQueryKeyForTag_(e,t){return e.tagToQueryMap.get(t)}function syncTreeParseQueryKey_(e){const t=e.indexOf(\"$\");d(-1!==t&&t<e.length-1,\"Bad queryKey.\");return{queryId:e.substr(t+1),path:new Path(e.substr(0,t))}}function syncTreeApplyTaggedOperation_(e,t,n){const r=e.syncPointTree_.get(t);d(r,\"Missing sync point for query tag that we're tracking\");const i=writeTreeChildWrites(e.pendingWriteTree_,t);return syncPointApplyOperation(r,n,i,null)}function syncTreeCollectDistinctViewsForSubTree_(e){return e.fold(((e,t,n)=>{if(t&&syncPointHasCompleteView(t)){const e=syncPointGetCompleteView(t);return[e]}{let e=[];t&&(e=syncPointGetQueryViews(t));each(n,((t,n)=>{e=e.concat(n)}));return e}}))}\n/**\n * Normalizes a query to a query we send the server for listening\n *\n * @returns The normalized query\n */function syncTreeQueryForListening_(e){return e._queryParams.loadsAllData()&&!e._queryParams.isDefault()?new(syncTreeGetReferenceConstructor())(e._repo,e._path):e}function syncTreeRemoveTags_(e,t){for(let n=0;n<t.length;++n){const r=t[n];if(!r._queryParams.loadsAllData()){const t=syncTreeMakeQueryKey_(r);const n=e.queryToTagMap.get(t);e.queryToTagMap.delete(t);e.tagToQueryMap.delete(n)}}}function syncTreeGetNextQueryTag_(){return yt++}\n/**\n * For a given new listen, manage the de-duplication of outstanding subscriptions.\n *\n * @returns This method can return events to support synchronous data sources\n */function syncTreeSetupListener_(e,t,n){const r=t._path;const i=syncTreeTagForQuery(e,t);const s=syncTreeCreateListenerForView_(e,n);const o=e.listenProvider_.startListening(syncTreeQueryForListening_(t),i,s.hashFn,s.onComplete);const a=e.syncPointTree_.subtree(r);if(i)d(!syncPointHasCompleteView(a.value),\"If we're adding a query, it shouldn't be shadowed\");else{const t=a.fold(((e,t,n)=>{if(!pathIsEmpty(e)&&t&&syncPointHasCompleteView(t))return[syncPointGetCompleteView(t).query];{let e=[];t&&(e=e.concat(syncPointGetQueryViews(t).map((e=>e.query))));each(n,((t,n)=>{e=e.concat(n)}));return e}}));for(let n=0;n<t.length;++n){const r=t[n];e.listenProvider_.stopListening(syncTreeQueryForListening_(r),syncTreeTagForQuery(e,r))}}return o}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */class ExistingValueProvider{constructor(e){this.node_=e}getImmediateChild(e){const t=this.node_.getImmediateChild(e);return new ExistingValueProvider(t)}node(){return this.node_}}class DeferredValueProvider{constructor(e,t){this.syncTree_=e;this.path_=t}getImmediateChild(e){const t=pathChild(this.path_,e);return new DeferredValueProvider(this.syncTree_,t)}node(){return syncTreeCalcCompleteEventCache(this.syncTree_,this.path_)}}const generateWithValues=function(e){e=e||{};e.timestamp=e.timestamp||(new Date).getTime();return e};const resolveDeferredLeafValue=function(e,t,n){if(!e||\"object\"!==typeof e)return e;d(\".sv\"in e,\"Unexpected leaf node or priority contents\");if(\"string\"===typeof e[\".sv\"])return resolveScalarDeferredValue(e[\".sv\"],t,n);if(\"object\"===typeof e[\".sv\"])return resolveComplexDeferredValue(e[\".sv\"],t);d(false,\"Unexpected server value: \"+JSON.stringify(e,null,2))};const resolveScalarDeferredValue=function(e,t,n){switch(e){case\"timestamp\":return n.timestamp;default:d(false,\"Unexpected server value: \"+e)}};const resolveComplexDeferredValue=function(e,t,n){e.hasOwnProperty(\"increment\")||d(false,\"Unexpected server value: \"+JSON.stringify(e,null,2));const r=e.increment;\"number\"!==typeof r&&d(false,\"Unexpected increment value: \"+r);const i=t.node();d(null!==i&&\"undefined\"!==typeof i,\"Expected ChildrenNode.EMPTY_NODE for nulls\");if(!i.isLeafNode())return r;const s=i;const o=s.getValue();return\"number\"!==typeof o?r:o+r};\n/**\n * Recursively replace all deferred values and priorities in the tree with the\n * specified generated replacement values.\n * @param path - path to which write is relative\n * @param node - new data written at path\n * @param syncTree - current data\n */const resolveDeferredValueTree=function(e,t,n,r){return resolveDeferredValue(t,new DeferredValueProvider(n,e),r)};const resolveDeferredValueSnapshot=function(e,t,n){return resolveDeferredValue(e,new ExistingValueProvider(t),n)};function resolveDeferredValue(e,t,n){const r=e.getPriority().val();const i=resolveDeferredLeafValue(r,t.getImmediateChild(\".priority\"),n);let s;if(e.isLeafNode()){const r=e;const s=resolveDeferredLeafValue(r.getValue(),t,n);return s!==r.getValue()||i!==r.getPriority().val()?new LeafNode(s,nodeFromJSON(i)):e}{const r=e;s=r;i!==r.getPriority().val()&&(s=s.updatePriority(new LeafNode(i)));r.forEachChild(tt,((e,r)=>{const i=resolveDeferredValue(r,t.getImmediateChild(e),n);i!==r&&(s=s.updateImmediateChild(e,i))}));return s}}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */class Tree{\n/**\n     * @param name - Optional name of the node.\n     * @param parent - Optional parent node.\n     * @param node - Optional node to wrap.\n     */\nconstructor(e=\"\",t=null,n={children:{},childCount:0}){this.name=e;this.parent=t;this.node=n}}\n/**\n * Returns a sub-Tree for the given path.\n *\n * @param pathObj - Path to look up.\n * @returns Tree for path.\n */function treeSubTree(e,t){let n=t instanceof Path?t:new Path(t);let r=e,i=pathGetFront(n);while(null!==i){const e=v(r.node.children,i)||{children:{},childCount:0};r=new Tree(i,r,e);n=pathPopFront(n);i=pathGetFront(n)}return r}\n/**\n * Returns the data associated with this tree node.\n *\n * @returns The data or null if no data exists.\n */function treeGetValue(e){return e.node.value}\n/**\n * Sets data to this tree node.\n *\n * @param value - Value to set.\n */function treeSetValue(e,t){e.node.value=t;treeUpdateParents(e)}\n/**\n * @returns Whether the tree has any children.\n */function treeHasChildren(e){return e.node.childCount>0}\n/**\n * @returns Whethe rthe tree is empty (no value or children).\n */function treeIsEmpty(e){return void 0===treeGetValue(e)&&!treeHasChildren(e)}\n/**\n * Calls action for each child of this tree node.\n *\n * @param action - Action to be called for each child.\n */function treeForEachChild(e,t){each(e.node.children,((n,r)=>{t(new Tree(n,e,r))}))}\n/**\n * Does a depth-first traversal of this node's descendants, calling action for each one.\n *\n * @param action - Action to be called for each child.\n * @param includeSelf - Whether to call action on this node as well. Defaults to\n *   false.\n * @param childrenFirst - Whether to call action on children before calling it on\n *   parent.\n */function treeForEachDescendant(e,t,n,r){n&&!r&&t(e);treeForEachChild(e,(e=>{treeForEachDescendant(e,t,true,r)}));n&&r&&t(e)}\n/**\n * Calls action on each ancestor node.\n *\n * @param action - Action to be called on each parent; return\n *   true to abort.\n * @param includeSelf - Whether to call action on this node as well.\n * @returns true if the action callback returned true.\n */function treeForEachAncestor(e,t,n){let r=n?e:e.parent;while(null!==r){if(t(r))return true;r=r.parent}return false}\n/**\n * @returns The path of this tree node, as a Path.\n */function treeGetPath(e){return new Path(null===e.parent?e.name:treeGetPath(e.parent)+\"/\"+e.name)}function treeUpdateParents(e){null!==e.parent&&treeUpdateChild(e.parent,e.name,e)}\n/**\n * Adds or removes the passed child to this tree node, depending on whether it's empty.\n *\n * @param childName - The name of the child to update.\n * @param child - The child to update.\n */function treeUpdateChild(e,t,n){const r=treeIsEmpty(n);const i=l(e.node.children,t);if(r&&i){delete e.node.children[t];e.node.childCount--;treeUpdateParents(e)}else if(!r&&!i){e.node.children[t]=n.node;e.node.childCount++;treeUpdateParents(e)}}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */const gt=/[\\[\\].#$\\/\\u0000-\\u001F\\u007F]/;const vt=/[\\[\\].#$\\u0000-\\u001F\\u007F]/;const Ct=10485760;const isValidKey=function(e){return\"string\"===typeof e&&0!==e.length&&!gt.test(e)};const isValidPathString=function(e){return\"string\"===typeof e&&0!==e.length&&!vt.test(e)};const isValidRootPathString=function(e){e&&(e=e.replace(/^\\/*\\.info(\\/|$)/,\"/\"));return isValidPathString(e)};const isValidPriority=function(e){return null===e||\"string\"===typeof e||\"number\"===typeof e&&!isInvalidJSONNumber(e)||e&&\"object\"===typeof e&&l(e,\".sv\")};const validateFirebaseDataArg=function(e,t,n,r){r&&void 0===t||validateFirebaseData(N(e,\"value\"),t,n)};const validateFirebaseData=function(e,t,n){const r=n instanceof Path?new ValidationPath(n,e):n;if(void 0===t)throw new Error(e+\"contains undefined \"+validationPathToErrorString(r));if(\"function\"===typeof t)throw new Error(e+\"contains a function \"+validationPathToErrorString(r)+\" with contents = \"+t.toString());if(isInvalidJSONNumber(t))throw new Error(e+\"contains \"+t.toString()+\" \"+validationPathToErrorString(r));if(\"string\"===typeof t&&t.length>Ct/3&&y(t)>Ct)throw new Error(e+\"contains a string greater than \"+Ct+\" utf8 bytes \"+validationPathToErrorString(r)+\" ('\"+t.substring(0,50)+\"...')\");if(t&&\"object\"===typeof t){let n=false;let i=false;each(t,((t,s)=>{if(\".value\"===t)n=true;else if(\".priority\"!==t&&\".sv\"!==t){i=true;if(!isValidKey(t))throw new Error(e+\" contains an invalid key (\"+t+\") \"+validationPathToErrorString(r)+'.  Keys must be non-empty strings and can\\'t contain \".\", \"#\", \"$\", \"/\", \"[\", or \"]\"')}validationPathPush(r,t);validateFirebaseData(e,s,r);validationPathPop(r)}));if(n&&i)throw new Error(e+' contains \".value\" child '+validationPathToErrorString(r)+\" in addition to actual children.\")}};const validateFirebaseMergePaths=function(e,t){let n,r;for(n=0;n<t.length;n++){r=t[n];const i=pathSlice(r);for(let t=0;t<i.length;t++)if(\".priority\"===i[t]&&t===i.length-1);else if(!isValidKey(i[t]))throw new Error(e+\"contains an invalid key (\"+i[t]+\") in path \"+r.toString()+'. Keys must be non-empty strings and can\\'t contain \".\", \"#\", \"$\", \"/\", \"[\", or \"]\"')}t.sort(pathCompare);let i=null;for(n=0;n<t.length;n++){r=t[n];if(null!==i&&pathContains(i,r))throw new Error(e+\"contains a path \"+i.toString()+\" that is ancestor of another path \"+r.toString());i=r}};const validateFirebaseMergeDataArg=function(e,t,n,r){if(r&&void 0===t)return;const i=N(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=[];each(t,((e,t)=>{const r=new Path(e);validateFirebaseData(i,t,pathChild(n,r));if(\".priority\"===pathGetBack(r)&&!isValidPriority(t))throw new Error(i+\"contains an invalid value for '\"+r.toString()+\"', which must be a valid Firebase priority (a string, finite number, server value, or null).\");s.push(r)}));validateFirebaseMergePaths(i,s)};const validatePriority=function(e,t,n){if(!n||void 0!==t){if(isInvalidJSONNumber(t))throw new Error(N(e,\"priority\")+\"is \"+t.toString()+\", but must be a valid Firebase priority (a string, finite number, server value, or null).\");if(!isValidPriority(t))throw new Error(N(e,\"priority\")+\"must be a valid Firebase priority (a string, finite number, server value, or null).\")}};const validateKey=function(e,t,n,r){if((!r||void 0!==n)&&!isValidKey(n))throw new Error(N(e,t)+'was an invalid key = \"'+n+'\".  Firebase keys must be non-empty strings and can\\'t contain \".\", \"#\", \"$\", \"/\", \"[\", or \"]\").')};const validatePathString=function(e,t,n,r){if((!r||void 0!==n)&&!isValidPathString(n))throw new Error(N(e,t)+'was an invalid path = \"'+n+'\". Paths must be non-empty strings and can\\'t contain \".\", \"#\", \"$\", \"[\", or \"]\"')};const validateRootPathString=function(e,t,n,r){n&&(n=n.replace(/^\\/*\\.info(\\/|$)/,\"/\"));validatePathString(e,t,n,r)};const validateWritablePath=function(e,t){if(\".info\"===pathGetFront(t))throw new Error(e+\" failed = Can't modify data under /.info/\")};const validateUrl=function(e,t){const n=t.path.toString();if(!(\"string\"===typeof t.repoInfo.host)||0===t.repoInfo.host.length||!isValidKey(t.repoInfo.namespace)&&\"localhost\"!==t.repoInfo.host.split(\":\")[0]||0!==n.length&&!isValidRootPathString(n))throw new Error(N(e,\"url\")+'must be a valid firebase URL and the path can\\'t contain \".\", \"#\", \"$\", \"[\", or \"]\".')};\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */class EventQueue{constructor(){this.eventLists_=[];this.recursionDepth_=0}}\n/**\n * @param eventDataList - The new events to queue.\n */function eventQueueQueueEvents(e,t){let n=null;for(let r=0;r<t.length;r++){const i=t[r];const s=i.getPath();if(null!==n&&!pathEquals(s,n.path)){e.eventLists_.push(n);n=null}null===n&&(n={events:[],path:s});n.events.push(i)}n&&e.eventLists_.push(n)}\n/**\n * Queues the specified events and synchronously raises all events (including previously queued ones)\n * for the specified path.\n *\n * It is assumed that the new events are all for the specified path.\n *\n * @param path - The path to raise events for.\n * @param eventDataList - The new events to raise.\n */function eventQueueRaiseEventsAtPath(e,t,n){eventQueueQueueEvents(e,n);eventQueueRaiseQueuedEventsMatchingPredicate(e,(e=>pathEquals(e,t)))}\n/**\n * Queues the specified events and synchronously raises all events (including previously queued ones) for\n * locations related to the specified change path (i.e. all ancestors and descendants).\n *\n * It is assumed that the new events are all related (ancestor or descendant) to the specified path.\n *\n * @param changedPath - The path to raise events for.\n * @param eventDataList - The events to raise\n */function eventQueueRaiseEventsForChangedPath(e,t,n){eventQueueQueueEvents(e,n);eventQueueRaiseQueuedEventsMatchingPredicate(e,(e=>pathContains(e,t)||pathContains(t,e)))}function eventQueueRaiseQueuedEventsMatchingPredicate(e,t){e.recursionDepth_++;let n=true;for(let r=0;r<e.eventLists_.length;r++){const i=e.eventLists_[r];if(i){const s=i.path;if(t(s)){eventListRaise(e.eventLists_[r]);e.eventLists_[r]=null}else n=false}}n&&(e.eventLists_=[]);e.recursionDepth_--}function eventListRaise(e){for(let t=0;t<e.events.length;t++){const n=e.events[t];if(null!==n){e.events[t]=null;const r=n.getEventRunner();G&&log(\"event: \"+n.toString());exceptionGuard(r)}}}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */const wt=\"repo_interrupt\";const Tt=25;class Repo{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 EventQueue;this.nextWriteId_=1;this.interceptServerDataCallback_=null;this.onDisconnect_=newSparseSnapshotTree();this.transactionQueueTree_=new Tree;this.persistentConnection_=null;this.key=this.repoInfo_.toURLString()}\n/**\n     * @returns The URL corresponding to the root of this Firebase.\n     */toString(){return(this.repoInfo_.secure?\"https://\":\"http://\")+this.repoInfo_.host}}function repoStart(e,t,n){e.stats_=statsManagerGetCollection(e.repoInfo_);if(e.forceRestClient_||beingCrawled()){e.server_=new ReadonlyRestClient(e.repoInfo_,((t,n,r,i)=>{repoOnDataUpdate(e,t,n,r,i)}),e.authTokenProvider_,e.appCheckProvider_);setTimeout((()=>repoOnConnectStatus(e,true)),0)}else{if(\"undefined\"!==typeof n&&null!==n){if(\"object\"!==typeof n)throw new Error(\"Only objects are supported for option databaseAuthVariableOverride\");try{o(n)}catch(e){throw new Error(\"Invalid authOverride provided: \"+e)}}e.persistentConnection_=new PersistentConnection(e.repoInfo_,t,((t,n,r,i)=>{repoOnDataUpdate(e,t,n,r,i)}),(t=>{repoOnConnectStatus(e,t)}),(t=>{repoOnServerInfoUpdate(e,t)}),e.authTokenProvider_,e.appCheckProvider_,n);e.server_=e.persistentConnection_}e.authTokenProvider_.addTokenChangeListener((t=>{e.server_.refreshAuthToken(t)}));e.appCheckProvider_.addTokenChangeListener((t=>{e.server_.refreshAppCheckToken(t.token)}));e.statsReporter_=statsManagerGetOrCreateReporter(e.repoInfo_,(()=>new StatsReporter(e.stats_,e.server_)));e.infoData_=new SnapshotHolder;e.infoSyncTree_=new SyncTree({startListening:(t,n,r,i)=>{let s=[];const o=e.infoData_.getNode(t._path);if(!o.isEmpty()){s=syncTreeApplyServerOverwrite(e.infoSyncTree_,t._path,o);setTimeout((()=>{i(\"ok\")}),0)}return s},stopListening:()=>{}});repoUpdateInfo(e,\"connected\",false);e.serverSyncTree_=new SyncTree({startListening:(t,n,r,i)=>{e.server_.listen(t,r,n,((n,r)=>{const s=i(n,r);eventQueueRaiseEventsForChangedPath(e.eventQueue_,t._path,s)}));return[]},stopListening:(t,n)=>{e.server_.unlisten(t,n)}})}\n/**\n * @returns The time in milliseconds, taking the server offset into account if we have one.\n */function repoServerTime(e){const t=e.infoData_.getNode(new Path(\".info/serverTimeOffset\"));const n=t.val()||0;return(new Date).getTime()+n}function repoGenerateServerValues(e){return generateWithValues({timestamp:repoServerTime(e)})}function repoOnDataUpdate(e,t,n,r,i){e.dataUpdateCount++;const s=new Path(t);n=e.interceptServerDataCallback_?e.interceptServerDataCallback_(t,n):n;let o=[];if(i)if(r){const t=E(n,(e=>nodeFromJSON(e)));o=syncTreeApplyTaggedQueryMerge(e.serverSyncTree_,s,t,i)}else{const t=nodeFromJSON(n);o=syncTreeApplyTaggedQueryOverwrite(e.serverSyncTree_,s,t,i)}else if(r){const t=E(n,(e=>nodeFromJSON(e)));o=syncTreeApplyServerMerge(e.serverSyncTree_,s,t)}else{const t=nodeFromJSON(n);o=syncTreeApplyServerOverwrite(e.serverSyncTree_,s,t)}let a=s;o.length>0&&(a=repoRerunTransactions(e,s));eventQueueRaiseEventsForChangedPath(e.eventQueue_,a,o)}function repoOnConnectStatus(e,t){repoUpdateInfo(e,\"connected\",t);false===t&&repoRunOnDisconnectEvents(e)}function repoOnServerInfoUpdate(e,t){each(t,((t,n)=>{repoUpdateInfo(e,t,n)}))}function repoUpdateInfo(e,t,n){const r=new Path(\"/.info/\"+t);const i=nodeFromJSON(n);e.infoData_.updateSnapshot(r,i);const s=syncTreeApplyServerOverwrite(e.infoSyncTree_,r,i);eventQueueRaiseEventsForChangedPath(e.eventQueue_,r,s)}function repoGetNextWriteId(e){return e.nextWriteId_++}\n/**\n * The purpose of `getValue` is to return the latest known value\n * satisfying `query`.\n *\n * This method will first check for in-memory cached values\n * belonging to active listeners. If they are found, such values\n * are considered to be the most up-to-date.\n *\n * If the client is not connected, this method will wait until the\n *  repo has established a connection and then request the value for `query`.\n * If the client is not able to retrieve the query result for another reason,\n * it reports an error.\n *\n * @param query - The query to surface a value for.\n */function repoGetValue(e,t,n){const r=syncTreeGetServerValue(e.serverSyncTree_,t);return null!=r?Promise.resolve(r):e.server_.get(t).then((r=>{const i=nodeFromJSON(r).withIndex(t._queryParams.getIndex());syncTreeAddEventRegistration(e.serverSyncTree_,t,n,true);let s;if(t._queryParams.loadsAllData())s=syncTreeApplyServerOverwrite(e.serverSyncTree_,t._path,i);else{const n=syncTreeTagForQuery(e.serverSyncTree_,t);s=syncTreeApplyTaggedQueryOverwrite(e.serverSyncTree_,t._path,i,n)}eventQueueRaiseEventsForChangedPath(e.eventQueue_,t._path,s);syncTreeRemoveEventRegistration(e.serverSyncTree_,t,n,null,true);return i}),(n=>{repoLog(e,\"get for query \"+o(t)+\" failed: \"+n);return Promise.reject(new Error(n))}))}function repoSetWithPriority(e,t,n,r,i){repoLog(e,\"set\",{path:t.toString(),value:n,priority:r});const s=repoGenerateServerValues(e);const o=nodeFromJSON(n,r);const a=syncTreeCalcCompleteEventCache(e.serverSyncTree_,t);const l=resolveDeferredValueSnapshot(o,a,s);const c=repoGetNextWriteId(e);const h=syncTreeApplyUserOverwrite(e.serverSyncTree_,t,l,c,true);eventQueueQueueEvents(e.eventQueue_,h);e.server_.put(t.toString(),o.val(true),((n,r)=>{const s=\"ok\"===n;s||warn(\"set at \"+t+\" failed: \"+n);const o=syncTreeAckUserWrite(e.serverSyncTree_,c,!s);eventQueueRaiseEventsForChangedPath(e.eventQueue_,t,o);repoCallOnCompleteCallback(e,i,n,r)}));const u=repoAbortTransactions(e,t);repoRerunTransactions(e,u);eventQueueRaiseEventsForChangedPath(e.eventQueue_,u,[])}function repoUpdate(e,t,n,r){repoLog(e,\"update\",{path:t.toString(),value:n});let i=true;const s=repoGenerateServerValues(e);const o={};each(n,((n,r)=>{i=false;o[n]=resolveDeferredValueTree(pathChild(t,n),nodeFromJSON(r),e.serverSyncTree_,s)}));if(i){log(\"update() called with empty data.  Don't do anything.\");repoCallOnCompleteCallback(e,r,\"ok\",void 0)}else{const i=repoGetNextWriteId(e);const s=syncTreeApplyUserMerge(e.serverSyncTree_,t,o,i);eventQueueQueueEvents(e.eventQueue_,s);e.server_.merge(t.toString(),n,((n,s)=>{const o=\"ok\"===n;o||warn(\"update at \"+t+\" failed: \"+n);const a=syncTreeAckUserWrite(e.serverSyncTree_,i,!o);const l=a.length>0?repoRerunTransactions(e,t):t;eventQueueRaiseEventsForChangedPath(e.eventQueue_,l,a);repoCallOnCompleteCallback(e,r,n,s)}));each(n,(n=>{const r=repoAbortTransactions(e,pathChild(t,n));repoRerunTransactions(e,r)}));eventQueueRaiseEventsForChangedPath(e.eventQueue_,t,[])}}function repoRunOnDisconnectEvents(e){repoLog(e,\"onDisconnectEvents\");const t=repoGenerateServerValues(e);const n=newSparseSnapshotTree();sparseSnapshotTreeForEachTree(e.onDisconnect_,newEmptyPath(),((r,i)=>{const s=resolveDeferredValueTree(r,i,e.serverSyncTree_,t);sparseSnapshotTreeRemember(n,r,s)}));let r=[];sparseSnapshotTreeForEachTree(n,newEmptyPath(),((t,n)=>{r=r.concat(syncTreeApplyServerOverwrite(e.serverSyncTree_,t,n));const i=repoAbortTransactions(e,t);repoRerunTransactions(e,i)}));e.onDisconnect_=newSparseSnapshotTree();eventQueueRaiseEventsForChangedPath(e.eventQueue_,newEmptyPath(),r)}function repoOnDisconnectCancel(e,t,n){e.server_.onDisconnectCancel(t.toString(),((r,i)=>{\"ok\"===r&&sparseSnapshotTreeForget(e.onDisconnect_,t);repoCallOnCompleteCallback(e,n,r,i)}))}function repoOnDisconnectSet(e,t,n,r){const i=nodeFromJSON(n);e.server_.onDisconnectPut(t.toString(),i.val(true),((n,s)=>{\"ok\"===n&&sparseSnapshotTreeRemember(e.onDisconnect_,t,i);repoCallOnCompleteCallback(e,r,n,s)}))}function repoOnDisconnectSetWithPriority(e,t,n,r,i){const s=nodeFromJSON(n,r);e.server_.onDisconnectPut(t.toString(),s.val(true),((n,r)=>{\"ok\"===n&&sparseSnapshotTreeRemember(e.onDisconnect_,t,s);repoCallOnCompleteCallback(e,i,n,r)}))}function repoOnDisconnectUpdate(e,t,n,r){if(T(n)){log(\"onDisconnect().update() called with empty data.  Don't do anything.\");repoCallOnCompleteCallback(e,r,\"ok\",void 0)}else e.server_.onDisconnectMerge(t.toString(),n,((i,s)=>{\"ok\"===i&&each(n,((n,r)=>{const i=nodeFromJSON(r);sparseSnapshotTreeRemember(e.onDisconnect_,pathChild(t,n),i)}));repoCallOnCompleteCallback(e,r,i,s)}))}function repoAddEventCallbackForQuery(e,t,n){let r;r=\".info\"===pathGetFront(t._path)?syncTreeAddEventRegistration(e.infoSyncTree_,t,n):syncTreeAddEventRegistration(e.serverSyncTree_,t,n);eventQueueRaiseEventsAtPath(e.eventQueue_,t._path,r)}function repoRemoveEventCallbackForQuery(e,t,n){let r;r=\".info\"===pathGetFront(t._path)?syncTreeRemoveEventRegistration(e.infoSyncTree_,t,n):syncTreeRemoveEventRegistration(e.serverSyncTree_,t,n);eventQueueRaiseEventsAtPath(e.eventQueue_,t._path,r)}function repoInterrupt(e){e.persistentConnection_&&e.persistentConnection_.interrupt(wt)}function repoResume(e){e.persistentConnection_&&e.persistentConnection_.resume(wt)}function repoLog(e,...t){let n=\"\";e.persistentConnection_&&(n=e.persistentConnection_.id+\":\");log(n,...t)}function repoCallOnCompleteCallback(e,t,n,r){t&&exceptionGuard((()=>{if(\"ok\"===n)t(null);else{const e=(n||\"error\").toUpperCase();let i=e;r&&(i+=\": \"+r);const s=new Error(i);s.code=e;t(s)}}))}\n/**\n * Creates a new transaction, adds it to the transactions we're tracking, and\n * sends it to the server if possible.\n *\n * @param path - Path at which to do transaction.\n * @param transactionUpdate - Update callback.\n * @param onComplete - Completion callback.\n * @param unwatcher - Function that will be called when the transaction no longer\n * need data updates for `path`.\n * @param applyLocally - Whether or not to make intermediate results visible\n */function repoStartTransaction(e,t,n,r,i,s){repoLog(e,\"transaction on \"+t);const o={path:t,update:n,onComplete:r,status:null,order:q(),applyLocally:s,retryCount:0,unwatcher:i,abortReason:null,currentWriteId:null,currentInputSnapshot:null,currentOutputSnapshotRaw:null,currentOutputSnapshotResolved:null};const a=repoGetLatestState(e,t,void 0);o.currentInputSnapshot=a;const c=o.update(a.val());if(void 0===c){o.unwatcher();o.currentOutputSnapshotRaw=null;o.currentOutputSnapshotResolved=null;o.onComplete&&o.onComplete(null,false,o.currentInputSnapshot)}else{validateFirebaseData(\"transaction failed: Data returned \",c,o.path);o.status=0;const n=treeSubTree(e.transactionQueueTree_,t);const r=treeGetValue(n)||[];r.push(o);treeSetValue(n,r);let i;if(\"object\"===typeof c&&null!==c&&l(c,\".priority\")){i=v(c,\".priority\");d(isValidPriority(i),\"Invalid priority returned by transaction. Priority must be a valid string, finite number, server value, or null.\")}else{const n=syncTreeCalcCompleteEventCache(e.serverSyncTree_,t)||ChildrenNode.EMPTY_NODE;i=n.getPriority().val()}const s=repoGenerateServerValues(e);const h=nodeFromJSON(c,i);const u=resolveDeferredValueSnapshot(h,a,s);o.currentOutputSnapshotRaw=h;o.currentOutputSnapshotResolved=u;o.currentWriteId=repoGetNextWriteId(e);const p=syncTreeApplyUserOverwrite(e.serverSyncTree_,t,u,o.currentWriteId,o.applyLocally);eventQueueRaiseEventsForChangedPath(e.eventQueue_,t,p);repoSendReadyTransactions(e,e.transactionQueueTree_)}}\n/**\n * @param excludeSets - A specific set to exclude\n */function repoGetLatestState(e,t,n){return syncTreeCalcCompleteEventCache(e.serverSyncTree_,t,n)||ChildrenNode.EMPTY_NODE}\n/**\n * Sends any already-run transactions that aren't waiting for outstanding\n * transactions to complete.\n *\n * Externally it's called with no arguments, but it calls itself recursively\n * with a particular transactionQueueTree node to recurse through the tree.\n *\n * @param node - transactionQueueTree node to start at.\n */function repoSendReadyTransactions(e,t=e.transactionQueueTree_){t||repoPruneCompletedTransactionsBelowNode(e,t);if(treeGetValue(t)){const n=repoBuildTransactionQueue(e,t);d(n.length>0,\"Sending zero length transaction queue\");const r=n.every((e=>0===e.status));r&&repoSendTransactionQueue(e,treeGetPath(t),n)}else treeHasChildren(t)&&treeForEachChild(t,(t=>{repoSendReadyTransactions(e,t)}))}\n/**\n * Given a list of run transactions, send them to the server and then handle\n * the result (success or failure).\n *\n * @param path - The location of the queue.\n * @param queue - Queue of transactions under the specified location.\n */function repoSendTransactionQueue(e,t,n){const r=n.map((e=>e.currentWriteId));const i=repoGetLatestState(e,t,r);let s=i;const o=i.hash();for(let e=0;e<n.length;e++){const r=n[e];d(0===r.status,\"tryToSendTransactionQueue_: items in queue should all be run.\");r.status=1;r.retryCount++;const i=newRelativePath(t,r.path);s=s.updateChild(i/** @type {!Node} */,r.currentOutputSnapshotRaw)}const a=s.val(true);const l=t;e.server_.put(l.toString(),a,(r=>{repoLog(e,\"transaction put response\",{path:l.toString(),status:r});let i=[];if(\"ok\"===r){const r=[];for(let t=0;t<n.length;t++){n[t].status=2;i=i.concat(syncTreeAckUserWrite(e.serverSyncTree_,n[t].currentWriteId));n[t].onComplete&&r.push((()=>n[t].onComplete(null,true,n[t].currentOutputSnapshotResolved)));n[t].unwatcher()}repoPruneCompletedTransactionsBelowNode(e,treeSubTree(e.transactionQueueTree_,t));repoSendReadyTransactions(e,e.transactionQueueTree_);eventQueueRaiseEventsForChangedPath(e.eventQueue_,t,i);for(let e=0;e<r.length;e++)exceptionGuard(r[e])}else{if(\"datastale\"===r)for(let e=0;e<n.length;e++)3===n[e].status?n[e].status=4:n[e].status=0;else{warn(\"transaction at \"+l.toString()+\" failed: \"+r);for(let e=0;e<n.length;e++){n[e].status=4;n[e].abortReason=r}}repoRerunTransactions(e,t)}}),o)}\n/**\n * Finds all transactions dependent on the data at changedPath and reruns them.\n *\n * Should be called any time cached data changes.\n *\n * Return the highest path that was affected by rerunning transactions. This\n * is the path at which events need to be raised for.\n *\n * @param changedPath - The path in mergedData that changed.\n * @returns The rootmost path that was affected by rerunning transactions.\n */function repoRerunTransactions(e,t){const n=repoGetAncestorTransactionNode(e,t);const r=treeGetPath(n);const i=repoBuildTransactionQueue(e,n);repoRerunTransactionQueue(e,i,r);return r}\n/**\n * Does all the work of rerunning transactions (as well as cleans up aborted\n * transactions and whatnot).\n *\n * @param queue - The queue of transactions to run.\n * @param path - The path the queue is for.\n */function repoRerunTransactionQueue(e,t,n){if(0===t.length)return;const r=[];let i=[];const s=t.filter((e=>0===e.status));const o=s.map((e=>e.currentWriteId));for(let s=0;s<t.length;s++){const a=t[s];const c=newRelativePath(n,a.path);let h,u=false;d(null!==c,\"rerunTransactionsUnderNode_: relativePath should not be null.\");if(4===a.status){u=true;h=a.abortReason;i=i.concat(syncTreeAckUserWrite(e.serverSyncTree_,a.currentWriteId,true))}else if(0===a.status)if(a.retryCount>=Tt){u=true;h=\"maxretry\";i=i.concat(syncTreeAckUserWrite(e.serverSyncTree_,a.currentWriteId,true))}else{const n=repoGetLatestState(e,a.path,o);a.currentInputSnapshot=n;const r=t[s].update(n.val());if(void 0!==r){validateFirebaseData(\"transaction failed: Data returned \",r,a.path);let t=nodeFromJSON(r);const s=\"object\"===typeof r&&null!=r&&l(r,\".priority\");s||(t=t.updatePriority(n.getPriority()));const c=a.currentWriteId;const h=repoGenerateServerValues(e);const u=resolveDeferredValueSnapshot(t,n,h);a.currentOutputSnapshotRaw=t;a.currentOutputSnapshotResolved=u;a.currentWriteId=repoGetNextWriteId(e);o.splice(o.indexOf(c),1);i=i.concat(syncTreeApplyUserOverwrite(e.serverSyncTree_,a.path,u,a.currentWriteId,a.applyLocally));i=i.concat(syncTreeAckUserWrite(e.serverSyncTree_,c,true))}else{u=true;h=\"nodata\";i=i.concat(syncTreeAckUserWrite(e.serverSyncTree_,a.currentWriteId,true))}}eventQueueRaiseEventsForChangedPath(e.eventQueue_,n,i);i=[];if(u){t[s].status=2;(function(e){setTimeout(e,Math.floor(0))})(t[s].unwatcher);t[s].onComplete&&(\"nodata\"===h?r.push((()=>t[s].onComplete(null,false,t[s].currentInputSnapshot))):r.push((()=>t[s].onComplete(new Error(h),false,null))))}}repoPruneCompletedTransactionsBelowNode(e,e.transactionQueueTree_);for(let e=0;e<r.length;e++)exceptionGuard(r[e]);repoSendReadyTransactions(e,e.transactionQueueTree_)}\n/**\n * Returns the rootmost ancestor node of the specified path that has a pending\n * transaction on it, or just returns the node for the given path if there are\n * no pending transactions on any ancestor.\n *\n * @param path - The location to start at.\n * @returns The rootmost node with a transaction.\n */function repoGetAncestorTransactionNode(e,t){let n;let r=e.transactionQueueTree_;n=pathGetFront(t);while(null!==n&&void 0===treeGetValue(r)){r=treeSubTree(r,n);t=pathPopFront(t);n=pathGetFront(t)}return r}\n/**\n * Builds the queue of all transactions at or below the specified\n * transactionNode.\n *\n * @param transactionNode\n * @returns The generated queue.\n */function repoBuildTransactionQueue(e,t){const n=[];repoAggregateTransactionQueuesForNode(e,t,n);n.sort(((e,t)=>e.order-t.order));return n}function repoAggregateTransactionQueuesForNode(e,t,n){const r=treeGetValue(t);if(r)for(let e=0;e<r.length;e++)n.push(r[e]);treeForEachChild(t,(t=>{repoAggregateTransactionQueuesForNode(e,t,n)}))}function repoPruneCompletedTransactionsBelowNode(e,t){const n=treeGetValue(t);if(n){let e=0;for(let t=0;t<n.length;t++)if(2!==n[t].status){n[e]=n[t];e++}n.length=e;treeSetValue(t,n.length>0?n:void 0)}treeForEachChild(t,(t=>{repoPruneCompletedTransactionsBelowNode(e,t)}))}\n/**\n * Aborts all transactions on ancestors or descendants of the specified path.\n * Called when doing a set() or update() since we consider them incompatible\n * with transactions.\n *\n * @param path - Path for which we want to abort related transactions.\n */function repoAbortTransactions(e,t){const n=treeGetPath(repoGetAncestorTransactionNode(e,t));const r=treeSubTree(e.transactionQueueTree_,t);treeForEachAncestor(r,(t=>{repoAbortTransactionsOnNode(e,t)}));repoAbortTransactionsOnNode(e,r);treeForEachDescendant(r,(t=>{repoAbortTransactionsOnNode(e,t)}));return n}\n/**\n * Abort transactions stored in this transaction queue node.\n *\n * @param node - Node to abort transactions for.\n */function repoAbortTransactionsOnNode(e,t){const n=treeGetValue(t);if(n){const r=[];let i=[];let s=-1;for(let t=0;t<n.length;t++)if(3===n[t].status);else if(1===n[t].status){d(s===t-1,\"All SENT items should be at beginning of queue.\");s=t;n[t].status=3;n[t].abortReason=\"set\"}else{d(0===n[t].status,\"Unexpected transaction status in abort\");n[t].unwatcher();i=i.concat(syncTreeAckUserWrite(e.serverSyncTree_,n[t].currentWriteId,true));n[t].onComplete&&r.push(n[t].onComplete.bind(null,new Error(\"set\"),false,null))}-1===s?treeSetValue(t,void 0):n.length=s+1;eventQueueRaiseEventsForChangedPath(e.eventQueue_,treeGetPath(t),i);for(let e=0;e<r.length;e++)exceptionGuard(r[e])}}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */function decodePath(e){let t=\"\";const n=e.split(\"/\");for(let e=0;e<n.length;e++)if(n[e].length>0){let r=n[e];try{r=decodeURIComponent(r.replace(/\\+/g,\" \"))}catch(e){}t+=\"/\"+r}return t}\n/**\n * @returns key value hash\n */function decodeQuery(e){const t={};\"?\"===e.charAt(0)&&(e=e.substring(1));for(const n of e.split(\"&\")){if(0===n.length)continue;const r=n.split(\"=\");2===r.length?t[decodeURIComponent(r[0])]=decodeURIComponent(r[1]):warn(`Invalid query segment '${n}' in query '${e}'`)}return t}const parseRepoInfo=function(e,t){const n=parseDatabaseURL(e),r=n.namespace;\"firebase.com\"===n.domain&&fatal(n.host+\" is no longer supported. Please use <YOUR FIREBASE>.firebaseio.com instead\");r&&\"undefined\"!==r||\"localhost\"===n.domain||fatal(\"Cannot parse Firebase url. Please use https://<YOUR FIREBASE>.firebaseio.com\");n.secure||warnIfPageIsSecure();const i=\"ws\"===n.scheme||\"wss\"===n.scheme;return{repoInfo:new RepoInfo(n.host,n.secure,r,i,t,\"\",r!==n.subdomain),path:new Path(n.pathString)}};const parseDatabaseURL=function(e){let t=\"\",n=\"\",r=\"\",i=\"\",s=\"\";let o=true,a=\"https\",l=443;if(\"string\"===typeof e){let c=e.indexOf(\"//\");if(c>=0){a=e.substring(0,c-1);e=e.substring(c+2)}let h=e.indexOf(\"/\");-1===h&&(h=e.length);let u=e.indexOf(\"?\");-1===u&&(u=e.length);t=e.substring(0,Math.min(h,u));h<u&&(i=decodePath(e.substring(h,u)));const d=decodeQuery(e.substring(Math.min(e.length,u)));c=t.indexOf(\":\");if(c>=0){o=\"https\"===a||\"wss\"===a;l=parseInt(t.substring(c+1),10)}else c=t.length;const p=t.slice(0,c);if(\"localhost\"===p.toLowerCase())n=\"localhost\";else if(p.split(\".\").length<=2)n=p;else{const e=t.indexOf(\".\");r=t.substring(0,e).toLowerCase();n=t.substring(e+1);s=r}\"ns\"in d&&(s=d.ns)}return{host:t,port:l,domain:n,subdomain:r,secure:o,scheme:a,pathString:i,namespace:s}};\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */const Pt=\"-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz\";const St=function(){let e=0;const t=[];return function(n){const r=n===e;e=n;let i;const s=new Array(8);for(i=7;i>=0;i--){s[i]=Pt.charAt(n%64);n=Math.floor(n/64)}d(0===n,\"Cannot push at time == 0\");let o=s.join(\"\");if(r){for(i=11;i>=0&&63===t[i];i--)t[i]=0;t[i]++}else for(i=0;i<12;i++)t[i]=Math.floor(64*Math.random());for(i=0;i<12;i++)o+=Pt.charAt(t[i]);d(20===o.length,\"nextPushId: Length should be 20.\");return o}}();\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */class DataEvent{\n/**\n     * @param eventType - One of: value, child_added, child_changed, child_moved, child_removed\n     * @param eventRegistration - The function to call to with the event data. User provided\n     * @param snapshot - The data backing the event\n     * @param prevName - Optional, the name of the previous child for child_* events.\n     */\nconstructor(e,t,n,r){this.eventType=e;this.eventRegistration=t;this.snapshot=n;this.prevName=r}getPath(){const e=this.snapshot.ref;return\"value\"===this.eventType?e._path:e.parent._path}getEventType(){return this.eventType}getEventRunner(){return this.eventRegistration.getEventRunner(this)}toString(){return this.getPath().toString()+\":\"+this.eventType+\":\"+o(this.snapshot.exportVal())}}class CancelEvent{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\"}}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */class CallbackContext{constructor(e,t){this.snapshotCallback=e;this.cancelCallback=t}onValue(e,t){this.snapshotCallback.call(null,e,t)}onCancel(e){d(this.hasCancelCallback,\"Raising a cancel event on a listener with no cancel callback\");return 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}}\n/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */class OnDisconnect{constructor(e,t){this._repo=e;this._path=t}\n/**\n     * Cancels all previously queued `onDisconnect()` set or update events for this\n     * location and all children.\n     *\n     * If a write has been queued for this location via a `set()` or `update()` at a\n     * parent location, the write at this location will be canceled, though writes\n     * to sibling locations will still occur.\n     *\n     * @returns Resolves when synchronization to the server is complete.\n     */cancel(){const e=new g;repoOnDisconnectCancel(this._repo,this._path,e.wrapCallback((()=>{})));return e.promise}\n/**\n     * Ensures the data at this location is deleted when the client is disconnected\n     * (due to closing the browser, navigating to a new page, or network issues).\n     *\n     * @returns Resolves when synchronization to the server is complete.\n     */remove(){validateWritablePath(\"OnDisconnect.remove\",this._path);const e=new g;repoOnDisconnectSet(this._repo,this._path,null,e.wrapCallback((()=>{})));return e.promise}\n/**\n     * Ensures the data at this location is set to the specified value when the\n     * client is disconnected (due to closing the browser, navigating to a new page,\n     * or network issues).\n     *\n     * `set()` is especially useful for implementing \"presence\" systems, where a\n     * value should be changed or cleared when a user disconnects so that they\n     * appear \"offline\" to other users. See\n     * {@link https://firebase.google.com/docs/database/web/offline-capabilities | Enabling Offline Capabilities in JavaScript}\n     * for more information.\n     *\n     * Note that `onDisconnect` operations are only triggered once. If you want an\n     * operation to occur each time a disconnect occurs, you'll need to re-establish\n     * the `onDisconnect` operations each time.\n     *\n     * @param value - The value to be written to this location on disconnect (can\n     * be an object, array, string, number, boolean, or null).\n     * @returns Resolves when synchronization to the Database is complete.\n     */set(e){validateWritablePath(\"OnDisconnect.set\",this._path);validateFirebaseDataArg(\"OnDisconnect.set\",e,this._path,false);const t=new g;repoOnDisconnectSet(this._repo,this._path,e,t.wrapCallback((()=>{})));return t.promise}\n/**\n     * Ensures the data at this location is set to the specified value and priority\n     * when the client is disconnected (due to closing the browser, navigating to a\n     * new page, or network issues).\n     *\n     * @param value - The value to be written to this location on disconnect (can\n     * be an object, array, string, number, boolean, or null).\n     * @param priority - The priority to be written (string, number, or null).\n     * @returns Resolves when synchronization to the Database is complete.\n     */setWithPriority(e,t){validateWritablePath(\"OnDisconnect.setWithPriority\",this._path);validateFirebaseDataArg(\"OnDisconnect.setWithPriority\",e,this._path,false);validatePriority(\"OnDisconnect.setWithPriority\",t,false);const n=new g;repoOnDisconnectSetWithPriority(this._repo,this._path,e,t,n.wrapCallback((()=>{})));return n.promise}\n/**\n     * Writes multiple values at this location when the client is disconnected (due\n     * to closing the browser, navigating to a new page, or network issues).\n     *\n     * The `values` argument contains multiple property-value pairs that will be\n     * written to the Database together. Each child property can either be a simple\n     * property (for example, \"name\") or a relative path (for example, \"name/first\")\n     * from the current location to the data to update.\n     *\n     * As opposed to the `set()` method, `update()` can be use to selectively update\n     * only the referenced properties at the current location (instead of replacing\n     * all the child properties at the current location).\n     *\n     * @param values - Object containing multiple values.\n     * @returns Resolves when synchronization to the Database is complete.\n     */update(e){validateWritablePath(\"OnDisconnect.update\",this._path);validateFirebaseMergeDataArg(\"OnDisconnect.update\",e,this._path,false);const t=new g;repoOnDisconnectUpdate(this._repo,this._path,e,t.wrapCallback((()=>{})));return t.promise}}\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */class QueryImpl{constructor(e,t,n,r){this._repo=e;this._path=t;this._queryParams=n;this._orderByCalled=r}get key(){return pathIsEmpty(this._path)?null:pathGetBack(this._path)}get ref(){return new ReferenceImpl(this._repo,this._path)}get _queryIdentifier(){const e=queryParamsGetQueryObject(this._queryParams);const t=ObjectToUniqueKey(e);return\"{}\"===t?\"default\":t}get _queryObject(){return queryParamsGetQueryObject(this._queryParams)}isEqual(e){e=b(e);if(!(e instanceof QueryImpl))return false;const t=this._repo===e._repo;const n=pathEquals(this._path,e._path);const r=this._queryIdentifier===e._queryIdentifier;return t&&n&&r}toJSON(){return this.toString()}toString(){return this._repo.toString()+pathToUrlEncodedString(this._path)}}function validateNoPreviousOrderByCall(e,t){if(true===e._orderByCalled)throw new Error(t+\": You can't combine multiple orderBy calls.\")}function validateQueryEndpoints(e){let t=null;let n=null;e.hasStart()&&(t=e.getIndexStartValue());e.hasEnd()&&(n=e.getIndexEndValue());if(e.getIndex()===$e){const r=\"Query: When ordering by key, you may only pass one argument to startAt(), endAt(), or equalTo().\";const i=\"Query: When ordering by key, the argument passed to startAt(), startAfter(), endAt(), endBefore(), or equalTo() must be a string.\";if(e.hasStart()){const n=e.getIndexStartName();if(n!==U)throw new Error(r);if(\"string\"!==typeof t)throw new Error(i)}if(e.hasEnd()){const t=e.getIndexEndName();if(t!==V)throw new Error(r);if(\"string\"!==typeof n)throw new Error(i)}}else if(e.getIndex()===tt){if(null!=t&&!isValidPriority(t)||null!=n&&!isValidPriority(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{d(e.getIndex()instanceof PathIndex||e.getIndex()===lt,\"unknown index type.\");if(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 validateLimit(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 ReferenceImpl extends QueryImpl{constructor(e,t){super(e,t,new QueryParams,false)}get parent(){const e=pathParent(this._path);return null===e?null:new ReferenceImpl(this._repo,e)}get root(){let e=this;while(null!==e.parent)e=e.parent;return e}}class DataSnapshot{\n/**\n     * @param _node - A SnapshotNode to wrap.\n     * @param ref - The location this snapshot came from.\n     * @param _index - The iteration order for this snapshot\n     * @hideconstructor\n     */\nconstructor(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()}\n/**\n     * Gets another `DataSnapshot` for the location at the specified relative path.\n     *\n     * Passing a relative path to the `child()` method of a DataSnapshot returns\n     * another `DataSnapshot` for the location at the specified relative path. The\n     * relative path can either be a simple child name (for example, \"ada\") or a\n     * deeper, slash-separated path (for example, \"ada/name/first\"). If the child\n     * location has no data, an empty `DataSnapshot` (that is, a `DataSnapshot`\n     * whose value is `null`) is returned.\n     *\n     * @param path - A relative path to the location of child data.\n     */child(e){const t=new Path(e);const n=child(this.ref,e);return new DataSnapshot(this._node.getChild(t),n,tt)}exists(){return!this._node.isEmpty()}\n/**\n     * Exports the entire contents of the DataSnapshot as a JavaScript object.\n     *\n     * The `exportVal()` method is similar to `val()`, except priority information\n     * is included (if available), making it suitable for backing up your data.\n     *\n     * @returns The DataSnapshot's contents as a JavaScript value (Object,\n     *   Array, string, number, boolean, or `null`).\n     */\nexportVal(){return this._node.val(true)}\n/**\n     * Enumerates the top-level children in the `DataSnapshot`.\n     *\n     * Because of the way JavaScript objects work, the ordering of data in the\n     * JavaScript object returned by `val()` is not guaranteed to match the\n     * ordering on the server nor the ordering of `onChildAdded()` events. That is\n     * where `forEach()` comes in handy. It guarantees the children of a\n     * `DataSnapshot` will be iterated in their query order.\n     *\n     * If no explicit `orderBy*()` method is used, results are returned\n     * ordered by key (unless priorities are used, in which case, results are\n     * returned by priority).\n     *\n     * @param action - A function that will be called for each child DataSnapshot.\n     * The callback can return true to cancel further enumeration.\n     * @returns true if enumeration was canceled due to your callback returning\n     * true.\n     */forEach(e){if(this._node.isLeafNode())return false;const t=this._node;return!!t.forEachChild(this._index,((t,n)=>e(new DataSnapshot(n,child(this.ref,t),tt))))}\n/**\n     * Returns true if the specified child path has (non-null) data.\n     *\n     * @param path - A relative path to the location of a potential child.\n     * @returns `true` if data exists at the specified child path; else\n     *  `false`.\n     */hasChild(e){const t=new Path(e);return!this._node.getChild(t).isEmpty()}\n/**\n     * Returns whether or not the `DataSnapshot` has any non-`null` child\n     * properties.\n     *\n     * You can use `hasChildren()` to determine if a `DataSnapshot` has any\n     * children. If it does, you can enumerate them using `forEach()`. If it\n     * doesn't, then either this snapshot contains a primitive value (which can be\n     * retrieved with `val()`) or it is empty (in which case, `val()` will return\n     * `null`).\n     *\n     * @returns true if this snapshot has any children; else false.\n     */hasChildren(){return!this._node.isLeafNode()&&!this._node.isEmpty()}toJSON(){return this.exportVal()}\n/**\n     * Extracts a JavaScript value from a `DataSnapshot`.\n     *\n     * Depending on the data in a `DataSnapshot`, the `val()` method may return a\n     * scalar type (string, number, or boolean), an array, or an object. It may\n     * also return null, indicating that the `DataSnapshot` is empty (contains no\n     * data).\n     *\n     * @returns The DataSnapshot's contents as a JavaScript value (Object,\n     *   Array, string, number, boolean, or `null`).\n     */\nval(){return this._node.val()}}\n/**\n *\n * Returns a `Reference` representing the location in the Database\n * corresponding to the provided path. If no path is provided, the `Reference`\n * will point to the root of the Database.\n *\n * @param db - The database instance to obtain a reference for.\n * @param path - Optional path representing the location the returned\n *   `Reference` will point. If not provided, the returned `Reference` will\n *   point to the root of the Database.\n * @returns If a path is provided, a `Reference`\n *   pointing to the provided path. Otherwise, a `Reference` pointing to the\n *   root of the Database.\n */function ref(e,t){e=b(e);e._checkNotDeleted(\"ref\");return void 0!==t?child(e._root,t):e._root}\n/**\n * Returns a `Reference` representing the location in the Database\n * corresponding to the provided Firebase URL.\n *\n * An exception is thrown if the URL is not a valid Firebase Database URL or it\n * has a different domain than the current `Database` instance.\n *\n * Note that all query parameters (`orderBy`, `limitToLast`, etc.) are ignored\n * and are not applied to the returned `Reference`.\n *\n * @param db - The database instance to obtain a reference for.\n * @param url - The Firebase URL at which the returned `Reference` will\n *   point.\n * @returns A `Reference` pointing to the provided\n *   Firebase URL.\n */function refFromURL(e,t){e=b(e);e._checkNotDeleted(\"refFromURL\");const n=parseRepoInfo(t,e._repo.repoInfo_.nodeAdmin);validateUrl(\"refFromURL\",n);const r=n.repoInfo;e._repo.repoInfo_.isCustomHost()||r.host===e._repo.repoInfo_.host||fatal(\"refFromURL: Host name does not match the current database: (found \"+r.host+\" but expected \"+e._repo.repoInfo_.host+\")\");return ref(e,n.path.toString())}\n/**\n * Gets a `Reference` for the location at the specified relative path.\n *\n * The relative path can either be a simple child name (for example, \"ada\") or\n * a deeper slash-separated path (for example, \"ada/name/first\").\n *\n * @param parent - The parent location.\n * @param path - A relative path from this location to the desired child\n *   location.\n * @returns The specified child location.\n */function child(e,t){e=b(e);null===pathGetFront(e._path)?validateRootPathString(\"child\",\"path\",t,false):validatePathString(\"child\",\"path\",t,false);return new ReferenceImpl(e._repo,pathChild(e._path,t))}\n/**\n * Returns an `OnDisconnect` object - see\n * {@link https://firebase.google.com/docs/database/web/offline-capabilities | Enabling Offline Capabilities in JavaScript}\n * for more information on how to use it.\n *\n * @param ref - The reference to add OnDisconnect triggers for.\n */function onDisconnect(e){e=b(e);return new OnDisconnect(e._repo,e._path)}\n/**\n * Generates a new child location using a unique key and returns its\n * `Reference`.\n *\n * This is the most common pattern for adding data to a collection of items.\n *\n * If you provide a value to `push()`, the value is written to the\n * generated location. If you don't pass a value, nothing is written to the\n * database and the child remains empty (but you can use the `Reference`\n * elsewhere).\n *\n * The unique keys generated by `push()` are ordered by the current time, so the\n * resulting list of items is chronologically sorted. The keys are also\n * designed to be unguessable (they contain 72 random bits of entropy).\n *\n * See {@link https://firebase.google.com/docs/database/web/lists-of-data#append_to_a_list_of_data | Append to a list of data}.\n * See {@link https://firebase.googleblog.com/2015/02/the-2120-ways-to-ensure-unique_68.html | The 2^120 Ways to Ensure Unique Identifiers}.\n *\n * @param parent - The parent location.\n * @param value - Optional value to be written at the generated location.\n * @returns Combined `Promise` and `Reference`; resolves when write is complete,\n * but can be used immediately as the `Reference` to the child location.\n */function push(e,t){e=b(e);validateWritablePath(\"push\",e._path);validateFirebaseDataArg(\"push\",t,e._path,true);const n=repoServerTime(e._repo);const r=St(n);const i=child(e,r);const s=child(e,r);let o;o=null!=t?set(s,t).then((()=>s)):Promise.resolve(s);i.then=o.then.bind(o);i.catch=o.then.bind(o,void 0);return i}\n/**\n * Removes the data at this Database location.\n *\n * Any data at child locations will also be deleted.\n *\n * The effect of the remove will be visible immediately and the corresponding\n * event 'value' will be triggered. Synchronization of the remove to the\n * Firebase servers will also be started, and the returned Promise will resolve\n * when complete. If provided, the onComplete callback will be called\n * asynchronously after synchronization has finished.\n *\n * @param ref - The location to remove.\n * @returns Resolves when remove on server is complete.\n */function remove(e){validateWritablePath(\"remove\",e._path);return set(e,null)}\n/**\n * Writes data to this Database location.\n *\n * This will overwrite any data at this location and all child locations.\n *\n * The effect of the write will be visible immediately, and the corresponding\n * events (\"value\", \"child_added\", etc.) will be triggered. Synchronization of\n * the data to the Firebase servers will also be started, and the returned\n * Promise will resolve when complete. If provided, the `onComplete` callback\n * will be called asynchronously after synchronization has finished.\n *\n * Passing `null` for the new value is equivalent to calling `remove()`; namely,\n * all data at this location and all child locations will be deleted.\n *\n * `set()` will remove any priority stored at this location, so if priority is\n * meant to be preserved, you need to use `setWithPriority()` instead.\n *\n * Note that modifying data with `set()` will cancel any pending transactions\n * at that location, so extreme care should be taken if mixing `set()` and\n * `transaction()` to modify the same data.\n *\n * A single `set()` will generate a single \"value\" event at the location where\n * the `set()` was performed.\n *\n * @param ref - The location to write to.\n * @param value - The value to be written (string, number, boolean, object,\n *   array, or null).\n * @returns Resolves when write to server is complete.\n */function set(e,t){e=b(e);validateWritablePath(\"set\",e._path);validateFirebaseDataArg(\"set\",t,e._path,false);const n=new g;repoSetWithPriority(e._repo,e._path,t,null,n.wrapCallback((()=>{})));return n.promise}\n/**\n * Sets a priority for the data at this Database location.\n *\n * Applications need not use priority but can order collections by\n * ordinary properties (see\n * {@link https://firebase.google.com/docs/database/web/lists-of-data#sorting_and_filtering_data | Sorting and filtering data}\n * ).\n *\n * @param ref - The location to write to.\n * @param priority - The priority to be written (string, number, or null).\n * @returns Resolves when write to server is complete.\n */function setPriority(e,t){e=b(e);validateWritablePath(\"setPriority\",e._path);validatePriority(\"setPriority\",t,false);const n=new g;repoSetWithPriority(e._repo,pathChild(e._path,\".priority\"),t,null,n.wrapCallback((()=>{})));return n.promise}\n/**\n * Writes data the Database location. Like `set()` but also specifies the\n * priority for that data.\n *\n * Applications need not use priority but can order collections by\n * ordinary properties (see\n * {@link https://firebase.google.com/docs/database/web/lists-of-data#sorting_and_filtering_data | Sorting and filtering data}\n * ).\n *\n * @param ref - The location to write to.\n * @param value - The value to be written (string, number, boolean, object,\n *   array, or null).\n * @param priority - The priority to be written (string, number, or null).\n * @returns Resolves when write to server is complete.\n */function setWithPriority(e,t,n){validateWritablePath(\"setWithPriority\",e._path);validateFirebaseDataArg(\"setWithPriority\",t,e._path,false);validatePriority(\"setWithPriority\",n,false);if(\".length\"===e.key||\".keys\"===e.key)throw\"setWithPriority failed: \"+e.key+\" is a read-only object.\";const r=new g;repoSetWithPriority(e._repo,e._path,t,n,r.wrapCallback((()=>{})));return r.promise}\n/**\n * Writes multiple values to the Database at once.\n *\n * The `values` argument contains multiple property-value pairs that will be\n * written to the Database together. Each child property can either be a simple\n * property (for example, \"name\") or a relative path (for example,\n * \"name/first\") from the current location to the data to update.\n *\n * As opposed to the `set()` method, `update()` can be use to selectively update\n * only the referenced properties at the current location (instead of replacing\n * all the child properties at the current location).\n *\n * The effect of the write will be visible immediately, and the corresponding\n * events ('value', 'child_added', etc.) will be triggered. Synchronization of\n * the data to the Firebase servers will also be started, and the returned\n * Promise will resolve when complete. If provided, the `onComplete` callback\n * will be called asynchronously after synchronization has finished.\n *\n * A single `update()` will generate a single \"value\" event at the location\n * where the `update()` was performed, regardless of how many children were\n * modified.\n *\n * Note that modifying data with `update()` will cancel any pending\n * transactions at that location, so extreme care should be taken if mixing\n * `update()` and `transaction()` to modify the same data.\n *\n * Passing `null` to `update()` will remove the data at this location.\n *\n * See\n * {@link https://firebase.googleblog.com/2015/09/introducing-multi-location-updates-and_86.html | Introducing multi-location updates and more}.\n *\n * @param ref - The location to write to.\n * @param values - Object containing multiple values.\n * @returns Resolves when update on server is complete.\n */function update(e,t){validateFirebaseMergeDataArg(\"update\",t,e._path,false);const n=new g;repoUpdate(e._repo,e._path,t,n.wrapCallback((()=>{})));return n.promise}\n/**\n * Gets the most up-to-date result for this query.\n *\n * @param query - The query to run.\n * @returns A `Promise` which resolves to the resulting DataSnapshot if a value is\n * available, or rejects if the client is unable to return a value (e.g., if the\n * server is unreachable and there is nothing cached).\n */function get(e){e=b(e);const t=new CallbackContext((()=>{}));const n=new ValueEventRegistration(t);return repoGetValue(e._repo,e,n).then((t=>new DataSnapshot(t,new ReferenceImpl(e._repo,e._path),e._queryParams.getIndex())))}class ValueEventRegistration{constructor(e){this.callbackContext=e}respondsTo(e){return\"value\"===e}createEvent(e,t){const n=t._queryParams.getIndex();return new DataEvent(\"value\",this,new DataSnapshot(e.snapshotNode,new ReferenceImpl(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 CancelEvent(this,e,t):null}matches(e){return e instanceof ValueEventRegistration&&(!e.callbackContext||!this.callbackContext||e.callbackContext.matches(this.callbackContext))}hasAnyCallback(){return null!==this.callbackContext}}class ChildEventRegistration{constructor(e,t){this.eventType=e;this.callbackContext=t}respondsTo(e){let t=\"children_added\"===e?\"child_added\":e;t=\"children_removed\"===t?\"child_removed\":t;return this.eventType===t}createCancelEvent(e,t){return this.callbackContext.hasCancelCallback?new CancelEvent(this,e,t):null}createEvent(e,t){d(null!=e.childName,\"Child events should have a childName.\");const n=child(new ReferenceImpl(t._repo,t._path),e.childName);const r=t._queryParams.getIndex();return new DataEvent(e.type,this,new DataSnapshot(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 ChildEventRegistration&&(this.eventType===e.eventType&&(!this.callbackContext||!e.callbackContext||this.callbackContext.matches(e.callbackContext)))}hasAnyCallback(){return!!this.callbackContext}}function addEventListener(e,t,n,r,i){let s;if(\"object\"===typeof r){s=void 0;i=r}\"function\"===typeof r&&(s=r);if(i&&i.onlyOnce){const t=n;const onceCallback=(n,r)=>{repoRemoveEventCallbackForQuery(e._repo,e,a);t(n,r)};onceCallback.userCallback=n.userCallback;onceCallback.context=n.context;n=onceCallback}const o=new CallbackContext(n,s||void 0);const a=\"value\"===t?new ValueEventRegistration(o):new ChildEventRegistration(t,o);repoAddEventCallbackForQuery(e._repo,e,a);return()=>repoRemoveEventCallbackForQuery(e._repo,e,a)}function onValue(e,t,n,r){return addEventListener(e,\"value\",t,n,r)}function onChildAdded(e,t,n,r){return addEventListener(e,\"child_added\",t,n,r)}function onChildChanged(e,t,n,r){return addEventListener(e,\"child_changed\",t,n,r)}function onChildMoved(e,t,n,r){return addEventListener(e,\"child_moved\",t,n,r)}function onChildRemoved(e,t,n,r){return addEventListener(e,\"child_removed\",t,n,r)}\n/**\n * Detaches a callback previously attached with the corresponding `on*()` (`onValue`, `onChildAdded`) listener.\n * Note: This is not the recommended way to remove a listener. Instead, please use the returned callback function from\n * the respective `on*` callbacks.\n *\n * Detach a callback previously attached with `on*()`. Calling `off()` on a parent listener\n * will not automatically remove listeners registered on child nodes, `off()`\n * must also be called on any child listeners to remove the callback.\n *\n * If a callback is not specified, all callbacks for the specified eventType\n * will be removed. Similarly, if no eventType is specified, all callbacks\n * for the `Reference` will be removed.\n *\n * Individual listeners can also be removed by invoking their unsubscribe\n * callbacks.\n *\n * @param query - The query that the listener was registered with.\n * @param eventType - One of the following strings: \"value\", \"child_added\",\n * \"child_changed\", \"child_removed\", or \"child_moved.\" If omitted, all callbacks\n * for the `Reference` will be removed.\n * @param callback - The callback function that was passed to `on()` or\n * `undefined` to remove all callbacks.\n */function off(e,t,n){let r=null;const i=n?new CallbackContext(n):null;\"value\"===t?r=new ValueEventRegistration(i):t&&(r=new ChildEventRegistration(t,i));repoRemoveEventCallbackForQuery(e._repo,e,r)}class QueryConstraint{}class QueryEndAtConstraint extends QueryConstraint{constructor(e,t){super();this._value=e;this._key=t}_apply(e){validateFirebaseDataArg(\"endAt\",this._value,e._path,true);const t=queryParamsEndAt(e._queryParams,this._value,this._key);validateLimit(t);validateQueryEndpoints(t);if(e._queryParams.hasEnd())throw new Error(\"endAt: Starting point was already set (by another call to endAt, endBefore or equalTo).\");return new QueryImpl(e._repo,e._path,t,e._orderByCalled)}}\n/**\n * Creates a `QueryConstraint` with the specified ending point.\n *\n * Using `startAt()`, `startAfter()`, `endBefore()`, `endAt()` and `equalTo()`\n * allows you to choose arbitrary starting and ending points for your queries.\n *\n * The ending point is inclusive, so children with exactly the specified value\n * will be included in the query. The optional key argument can be used to\n * further limit the range of the query. If it is specified, then children that\n * have exactly the specified value must also have a key name less than or equal\n * to the specified key.\n *\n * You can read more about `endAt()` in\n * {@link https://firebase.google.com/docs/database/web/lists-of-data#filtering_data | Filtering data}.\n *\n * @param value - The value to end at. The argument type depends on which\n * `orderBy*()` function was used in this query. Specify a value that matches\n * the `orderBy*()` type. When used in combination with `orderByKey()`, the\n * value must be a string.\n * @param key - The child key to end at, among the children with the previously\n * specified priority. This argument is only allowed if ordering by child,\n * value, or priority.\n */function endAt(e,t){validateKey(\"endAt\",\"key\",t,true);return new QueryEndAtConstraint(e,t)}class QueryEndBeforeConstraint extends QueryConstraint{constructor(e,t){super();this._value=e;this._key=t}_apply(e){validateFirebaseDataArg(\"endBefore\",this._value,e._path,false);const t=queryParamsEndBefore(e._queryParams,this._value,this._key);validateLimit(t);validateQueryEndpoints(t);if(e._queryParams.hasEnd())throw new Error(\"endBefore: Starting point was already set (by another call to endAt, endBefore or equalTo).\");return new QueryImpl(e._repo,e._path,t,e._orderByCalled)}}\n/**\n * Creates a `QueryConstraint` with the specified ending point (exclusive).\n *\n * Using `startAt()`, `startAfter()`, `endBefore()`, `endAt()` and `equalTo()`\n * allows you to choose arbitrary starting and ending points for your queries.\n *\n * The ending point is exclusive. If only a value is provided, children\n * with a value less than the specified value will be included in the query.\n * If a key is specified, then children must have a value less than or equal\n * to the specified value and a key name less than the specified key.\n *\n * @param value - The value to end before. The argument type depends on which\n * `orderBy*()` function was used in this query. Specify a value that matches\n * the `orderBy*()` type. When used in combination with `orderByKey()`, the\n * value must be a string.\n * @param key - The child key to end before, among the children with the\n * previously specified priority. This argument is only allowed if ordering by\n * child, value, or priority.\n */function endBefore(e,t){validateKey(\"endBefore\",\"key\",t,true);return new QueryEndBeforeConstraint(e,t)}class QueryStartAtConstraint extends QueryConstraint{constructor(e,t){super();this._value=e;this._key=t}_apply(e){validateFirebaseDataArg(\"startAt\",this._value,e._path,true);const t=queryParamsStartAt(e._queryParams,this._value,this._key);validateLimit(t);validateQueryEndpoints(t);if(e._queryParams.hasStart())throw new Error(\"startAt: Starting point was already set (by another call to startAt, startBefore or equalTo).\");return new QueryImpl(e._repo,e._path,t,e._orderByCalled)}}\n/**\n * Creates a `QueryConstraint` with the specified starting point.\n *\n * Using `startAt()`, `startAfter()`, `endBefore()`, `endAt()` and `equalTo()`\n * allows you to choose arbitrary starting and ending points for your queries.\n *\n * The starting point is inclusive, so children with exactly the specified value\n * will be included in the query. The optional key argument can be used to\n * further limit the range of the query. If it is specified, then children that\n * have exactly the specified value must also have a key name greater than or\n * equal to the specified key.\n *\n * You can read more about `startAt()` in\n * {@link https://firebase.google.com/docs/database/web/lists-of-data#filtering_data | Filtering data}.\n *\n * @param value - The value to start at. The argument type depends on which\n * `orderBy*()` function was used in this query. Specify a value that matches\n * the `orderBy*()` type. When used in combination with `orderByKey()`, the\n * value must be a string.\n * @param key - The child key to start at. This argument is only allowed if\n * ordering by child, value, or priority.\n */function startAt(e=null,t){validateKey(\"startAt\",\"key\",t,true);return new QueryStartAtConstraint(e,t)}class QueryStartAfterConstraint extends QueryConstraint{constructor(e,t){super();this._value=e;this._key=t}_apply(e){validateFirebaseDataArg(\"startAfter\",this._value,e._path,false);const t=queryParamsStartAfter(e._queryParams,this._value,this._key);validateLimit(t);validateQueryEndpoints(t);if(e._queryParams.hasStart())throw new Error(\"startAfter: Starting point was already set (by another call to startAt, startAfter, or equalTo).\");return new QueryImpl(e._repo,e._path,t,e._orderByCalled)}}\n/**\n * Creates a `QueryConstraint` with the specified starting point (exclusive).\n *\n * Using `startAt()`, `startAfter()`, `endBefore()`, `endAt()` and `equalTo()`\n * allows you to choose arbitrary starting and ending points for your queries.\n *\n * The starting point is exclusive. If only a value is provided, children\n * with a value greater than the specified value will be included in the query.\n * If a key is specified, then children must have a value greater than or equal\n * to the specified value and a a key name greater than the specified key.\n *\n * @param value - The value to start after. The argument type depends on which\n * `orderBy*()` function was used in this query. Specify a value that matches\n * the `orderBy*()` type. When used in combination with `orderByKey()`, the\n * value must be a string.\n * @param key - The child key to start after. This argument is only allowed if\n * ordering by child, value, or priority.\n */function startAfter(e,t){validateKey(\"startAfter\",\"key\",t,true);return new QueryStartAfterConstraint(e,t)}class QueryLimitToFirstConstraint extends QueryConstraint{constructor(e){super();this._limit=e}_apply(e){if(e._queryParams.hasLimit())throw new Error(\"limitToFirst: Limit was already set (by another call to limitToFirst or limitToLast).\");return new QueryImpl(e._repo,e._path,queryParamsLimitToFirst(e._queryParams,this._limit),e._orderByCalled)}}\n/**\n * Creates a new `QueryConstraint` that if limited to the first specific number\n * of children.\n *\n * The `limitToFirst()` method is used to set a maximum number of children to be\n * synced for a given callback. If we set a limit of 100, we will initially only\n * receive up to 100 `child_added` events. If we have fewer than 100 messages\n * stored in our Database, a `child_added` event will fire for each message.\n * However, if we have over 100 messages, we will only receive a `child_added`\n * event for the first 100 ordered messages. As items change, we will receive\n * `child_removed` events for each item that drops out of the active list so\n * that the total number stays at 100.\n *\n * You can read more about `limitToFirst()` in\n * {@link https://firebase.google.com/docs/database/web/lists-of-data#filtering_data | Filtering data}.\n *\n * @param limit - The maximum number of nodes to include in this query.\n */function limitToFirst(e){if(\"number\"!==typeof e||Math.floor(e)!==e||e<=0)throw new Error(\"limitToFirst: First argument must be a positive integer.\");return new QueryLimitToFirstConstraint(e)}class QueryLimitToLastConstraint extends QueryConstraint{constructor(e){super();this._limit=e}_apply(e){if(e._queryParams.hasLimit())throw new Error(\"limitToLast: Limit was already set (by another call to limitToFirst or limitToLast).\");return new QueryImpl(e._repo,e._path,queryParamsLimitToLast(e._queryParams,this._limit),e._orderByCalled)}}\n/**\n * Creates a new `QueryConstraint` that is limited to return only the last\n * specified number of children.\n *\n * The `limitToLast()` method is used to set a maximum number of children to be\n * synced for a given callback. If we set a limit of 100, we will initially only\n * receive up to 100 `child_added` events. If we have fewer than 100 messages\n * stored in our Database, a `child_added` event will fire for each message.\n * However, if we have over 100 messages, we will only receive a `child_added`\n * event for the last 100 ordered messages. As items change, we will receive\n * `child_removed` events for each item that drops out of the active list so\n * that the total number stays at 100.\n *\n * You can read more about `limitToLast()` in\n * {@link https://firebase.google.com/docs/database/web/lists-of-data#filtering_data | Filtering data}.\n *\n * @param limit - The maximum number of nodes to include in this query.\n */function limitToLast(e){if(\"number\"!==typeof e||Math.floor(e)!==e||e<=0)throw new Error(\"limitToLast: First argument must be a positive integer.\");return new QueryLimitToLastConstraint(e)}class QueryOrderByChildConstraint extends QueryConstraint{constructor(e){super();this._path=e}_apply(e){validateNoPreviousOrderByCall(e,\"orderByChild\");const t=new Path(this._path);if(pathIsEmpty(t))throw new Error(\"orderByChild: cannot pass in empty path. Use orderByValue() instead.\");const n=new PathIndex(t);const r=queryParamsOrderBy(e._queryParams,n);validateQueryEndpoints(r);return new QueryImpl(e._repo,e._path,r,true)}}\n/**\n * Creates a new `QueryConstraint` that orders by the specified child key.\n *\n * Queries can only order by one key at a time. Calling `orderByChild()`\n * multiple times on the same query is an error.\n *\n * Firebase queries allow you to order your data by any child key on the fly.\n * However, if you know in advance what your indexes will be, you can define\n * them via the .indexOn rule in your Security Rules for better performance. See\n * the{@link https://firebase.google.com/docs/database/security/indexing-data}\n * rule for more information.\n *\n * You can read more about `orderByChild()` in\n * {@link https://firebase.google.com/docs/database/web/lists-of-data#sort_data | Sort data}.\n *\n * @param path - The path to order by.\n */function orderByChild(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.');validatePathString(\"orderByChild\",\"path\",e,false);return new QueryOrderByChildConstraint(e)}class QueryOrderByKeyConstraint extends QueryConstraint{_apply(e){validateNoPreviousOrderByCall(e,\"orderByKey\");const t=queryParamsOrderBy(e._queryParams,$e);validateQueryEndpoints(t);return new QueryImpl(e._repo,e._path,t,true)}}function orderByKey(){return new QueryOrderByKeyConstraint}class QueryOrderByPriorityConstraint extends QueryConstraint{_apply(e){validateNoPreviousOrderByCall(e,\"orderByPriority\");const t=queryParamsOrderBy(e._queryParams,tt);validateQueryEndpoints(t);return new QueryImpl(e._repo,e._path,t,true)}}function orderByPriority(){return new QueryOrderByPriorityConstraint}class QueryOrderByValueConstraint extends QueryConstraint{_apply(e){validateNoPreviousOrderByCall(e,\"orderByValue\");const t=queryParamsOrderBy(e._queryParams,lt);validateQueryEndpoints(t);return new QueryImpl(e._repo,e._path,t,true)}}function orderByValue(){return new QueryOrderByValueConstraint}class QueryEqualToValueConstraint extends QueryConstraint{constructor(e,t){super();this._value=e;this._key=t}_apply(e){validateFirebaseDataArg(\"equalTo\",this._value,e._path,false);if(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 QueryEndAtConstraint(this._value,this._key)._apply(new QueryStartAtConstraint(this._value,this._key)._apply(e))}}\n/**\n * Creates a `QueryConstraint` that includes children that match the specified\n * value.\n *\n * Using `startAt()`, `startAfter()`, `endBefore()`, `endAt()` and `equalTo()`\n * allows you to choose arbitrary starting and ending points for your queries.\n *\n * The optional key argument can be used to further limit the range of the\n * query. If it is specified, then children that have exactly the specified\n * value must also have exactly the specified key as their key name. This can be\n * used to filter result sets with many matches for the same value.\n *\n * You can read more about `equalTo()` in\n * {@link https://firebase.google.com/docs/database/web/lists-of-data#filtering_data | Filtering data}.\n *\n * @param value - The value to match for. The argument type depends on which\n * `orderBy*()` function was used in this query. Specify a value that matches\n * the `orderBy*()` type. When used in combination with `orderByKey()`, the\n * value must be a string.\n * @param key - The child key to start at, among the children with the\n * previously specified priority. This argument is only allowed if ordering by\n * child, value, or priority.\n */function equalTo(e,t){validateKey(\"equalTo\",\"key\",t,true);return new QueryEqualToValueConstraint(e,t)}\n/**\n * Creates a new immutable instance of `Query` that is extended to also include\n * additional query constraints.\n *\n * @param query - The Query instance to use as a base for the new constraints.\n * @param queryConstraints - The list of `QueryConstraint`s to apply.\n * @throws if any of the provided query constraints cannot be combined with the\n * existing or new constraints.\n */function query(e,...t){let n=b(e);for(const e of t)n=e._apply(n);return n}syncPointSetReferenceConstructor(ReferenceImpl);syncTreeSetReferenceConstructor(ReferenceImpl);\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */const Et=\"FIREBASE_DATABASE_EMULATOR_HOST\";const It={};let Nt=false;function repoManagerApplyEmulatorSettings(e,t,n,r){e.repoInfo_=new RepoInfo(`${t}:${n}`,false,e.repoInfo_.namespace,e.repoInfo_.webSocketOnly,e.repoInfo_.nodeAdmin,e.repoInfo_.persistenceKey,e.repoInfo_.includeNamespaceInQueryParams,true);r&&(e.authTokenProvider_=r)}function repoManagerDatabaseFromApp(e,t,n,r,i){let s=r||e.options.databaseURL;if(void 0===s){e.options.projectId||fatal(\"Can't determine Firebase Database URL. Be sure to include  a Project ID when calling firebase.initializeApp().\");log(\"Using default host for project \",e.options.projectId);s=`${e.options.projectId}-default-rtdb.firebaseio.com`}let o=parseRepoInfo(s,i);let a=o.repoInfo;let l;let c;\"undefined\"!==typeof process&&process.env&&(c=process.env[Et]);if(c){l=true;s=`http://${c}?ns=${a.namespace}`;o=parseRepoInfo(s,i);a=o.repoInfo}else l=!o.repoInfo.secure;const h=i&&l?new EmulatorTokenProvider(EmulatorTokenProvider.OWNER):new FirebaseAuthTokenProvider(e.name,e.options,t);validateUrl(\"Invalid Firebase Database URL\",o);pathIsEmpty(o.path)||fatal(\"Database URL must point to the root of a Firebase Database (not including a child path).\");const u=repoManagerCreateRepo(a,e,h,new AppCheckTokenProvider(e.name,n));return new Database(u,e)}function repoManagerDeleteRepo(e,t){const n=It[t];n&&n[e.key]===e||fatal(`Database ${t}(${e.repoInfo_}) has already been deleted.`);repoInterrupt(e);delete n[e.key]}\n/**\n * Ensures a repo doesn't already exist and then creates one using the\n * provided app.\n *\n * @param repoInfo - The metadata about the Repo\n * @returns The Repo object for the specified server / repoName.\n */function repoManagerCreateRepo(e,t,n,r){let i=It[t.name];if(!i){i={};It[t.name]=i}let s=i[e.toURLString()];s&&fatal(\"Database initialized multiple times. Please make sure the format of the database URL matches with each database() call.\");s=new Repo(e,Nt,n,r);i[e.toURLString()]=s;return s}function repoManagerForceRestClient(e){Nt=e}class Database{constructor(e,t){this._repoInternal=e;this.app=t;this.type=\"database\";this._instanceStarted=false}get _repo(){if(!this._instanceStarted){repoStart(this._repoInternal,this.app.options.appId,this.app.options.databaseAuthVariableOverride);this._instanceStarted=true}return this._repoInternal}get _root(){this._rootInternal||(this._rootInternal=new ReferenceImpl(this._repo,newEmptyPath()));return this._rootInternal}_delete(){if(null!==this._rootInternal){repoManagerDeleteRepo(this._repo,this.app.name);this._repoInternal=null;this._rootInternal=null}return Promise.resolve()}_checkNotDeleted(e){null===this._rootInternal&&fatal(\"Cannot call \"+e+\" on a deleted database.\")}}function checkTransportInit(){TransportManager.IS_TRANSPORT_INITIALIZED&&warn(\"Transport has already been initialized. Please call this function before calling ref or setting up a listener\")}function forceWebSockets(){checkTransportInit();BrowserPollConnection.forceDisallow()}function forceLongPolling(){checkTransportInit();WebSocketConnection.forceDisallow();BrowserPollConnection.forceAllow()}\n/**\n * Returns the instance of the Realtime Database SDK that is associated\n * with the provided {@link @firebase/app#FirebaseApp}. Initializes a new instance with\n * with default settings if no instance exists or if the existing instance uses\n * a custom database URL.\n *\n * @param app - The {@link @firebase/app#FirebaseApp} instance that the returned Realtime\n * Database instance is associated with.\n * @param url - The URL of the Realtime Database instance to connect to. If not\n * provided, the SDK connects to the default instance of the Firebase App.\n * @returns The `Database` instance of the provided app.\n */function getDatabase(n=e(),r){const i=t(n,\"database\").getImmediate({identifier:r});if(!i._instanceStarted){const e=R(\"database\");e&&connectDatabaseEmulator(i,...e)}return i}\n/**\n * Modify the provided instance to communicate with the Realtime Database\n * emulator.\n *\n * <p>Note: This method must be called before performing any other operation.\n *\n * @param db - The instance to modify.\n * @param host - The emulator host (ex: localhost)\n * @param port - The emulator port (ex: 8080)\n * @param options.mockUserToken - the mock auth token to use for unit testing Security Rules\n */function connectDatabaseEmulator(e,t,n,r={}){e=b(e);e._checkNotDeleted(\"useEmulator\");e._instanceStarted&&fatal(\"Cannot call useEmulator() after instance has already been initialized.\");const i=e._repoInternal;let s;if(i.repoInfo_.nodeAdmin){r.mockUserToken&&fatal('mockUserToken is not supported by the Admin SDK. For client access with mock users, please use the \"firebase\" package instead of \"firebase-admin\".');s=new EmulatorTokenProvider(EmulatorTokenProvider.OWNER)}else if(r.mockUserToken){const t=\"string\"===typeof r.mockUserToken?r.mockUserToken:k(r.mockUserToken,e.app.options.projectId);s=new EmulatorTokenProvider(t)}repoManagerApplyEmulatorSettings(i,t,n,s)}\n/**\n * Disconnects from the server (all Database operations will be completed\n * offline).\n *\n * The client automatically maintains a persistent connection to the Database\n * server, which will remain active indefinitely and reconnect when\n * disconnected. However, the `goOffline()` and `goOnline()` methods may be used\n * to control the client connection in cases where a persistent connection is\n * undesirable.\n *\n * While offline, the client will no longer receive data updates from the\n * Database. However, all Database operations performed locally will continue to\n * immediately fire events, allowing your application to continue behaving\n * normally. Additionally, each operation performed locally will automatically\n * be queued and retried upon reconnection to the Database server.\n *\n * To reconnect to the Database and begin receiving remote events, see\n * `goOnline()`.\n *\n * @param db - The instance to disconnect.\n */function goOffline(e){e=b(e);e._checkNotDeleted(\"goOffline\");repoInterrupt(e._repo)}\n/**\n * Reconnects to the server and synchronizes the offline Database state\n * with the server state.\n *\n * This method should be used after disabling the active connection with\n * `goOffline()`. Once reconnected, the client will transmit the proper data\n * and fire the appropriate events so that your client \"catches up\"\n * automatically.\n *\n * @param db - The instance to reconnect.\n */function goOnline(e){e=b(e);e._checkNotDeleted(\"goOnline\");repoResume(e._repo)}function enableLogging(e,t){enableLogging$1(e,t)}\n/**\n * @license\n * Copyright 2021 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */function registerDatabase(e){setSDKVersion(n);r(new s(\"database\",((e,{instanceIdentifier:t})=>{const n=e.getProvider(\"app\").getImmediate();const r=e.getProvider(\"auth-internal\");const i=e.getProvider(\"app-check-internal\");return repoManagerDatabaseFromApp(n,r,i,t)}),\"PUBLIC\").setMultipleInstances(true));i(F,O,e);i(F,O,\"esm2017\")}\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */const bt={\".sv\":\"timestamp\"};function serverTimestamp(){return bt}\n/**\n * Returns a placeholder value that can be used to atomically increment the\n * current database value by the provided delta.\n *\n * @param delta - the amount to modify the current value atomically.\n * @returns A placeholder value for modifying data atomically server-side.\n */function increment(e){return{\".sv\":{increment:e}}}\n/**\n * @license\n * Copyright 2020 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */class TransactionResult{constructor(e,t){this.committed=e;this.snapshot=t}toJSON(){return{committed:this.committed,snapshot:this.snapshot.toJSON()}}}\n/**\n * Atomically modifies the data at this location.\n *\n * Atomically modify the data at this location. Unlike a normal `set()`, which\n * just overwrites the data regardless of its previous value, `runTransaction()` is\n * used to modify the existing value to a new value, ensuring there are no\n * conflicts with other clients writing to the same location at the same time.\n *\n * To accomplish this, you pass `runTransaction()` an update function which is\n * used to transform the current value into a new value. If another client\n * writes to the location before your new value is successfully written, your\n * update function will be called again with the new current value, and the\n * write will be retried. This will happen repeatedly until your write succeeds\n * without conflict or you abort the transaction by not returning a value from\n * your update function.\n *\n * Note: Modifying data with `set()` will cancel any pending transactions at\n * that location, so extreme care should be taken if mixing `set()` and\n * `runTransaction()` to update the same data.\n *\n * Note: When using transactions with Security and Firebase Rules in place, be\n * aware that a client needs `.read` access in addition to `.write` access in\n * order to perform a transaction. This is because the client-side nature of\n * transactions requires the client to read the data in order to transactionally\n * update it.\n *\n * @param ref - The location to atomically modify.\n * @param transactionUpdate - A developer-supplied function which will be passed\n * the current data stored at this location (as a JavaScript object). The\n * function should return the new value it would like written (as a JavaScript\n * object). If `undefined` is returned (i.e. you return with no arguments) the\n * transaction will be aborted and the data at this location will not be\n * modified.\n * @param options - An options object to configure transactions.\n * @returns A `Promise` that can optionally be used instead of the `onComplete`\n * callback to handle success and failure.\n */function runTransaction(e,t,n){var r;e=b(e);validateWritablePath(\"Reference.transaction\",e._path);if(\".length\"===e.key||\".keys\"===e.key)throw\"Reference.transaction failed: \"+e.key+\" is a read-only object.\";const i=null===(r=null===n||void 0===n?void 0:n.applyLocally)||void 0===r||r;const s=new g;const promiseComplete=(t,n,r)=>{let i=null;if(t)s.reject(t);else{i=new DataSnapshot(r,new ReferenceImpl(e._repo,e._path),tt);s.resolve(new TransactionResult(n,i))}};const o=onValue(e,(()=>{}));repoStartTransaction(e._repo,e._path,t,promiseComplete,o,i);return s.promise}\n/**\n * @license\n * Copyright 2017 Google LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n *   http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */PersistentConnection;PersistentConnection.prototype.simpleListen=function(e,t){this.sendRequest(\"q\",{p:e},t)};PersistentConnection.prototype.echo=function(e,t){this.sendRequest(\"echo\",{d:e},t)};Connection;const hijackHash=function(e){const t=PersistentConnection.prototype.put;PersistentConnection.prototype.put=function(n,r,i,s){void 0!==s&&(s=e());t.call(this,n,r,i,s)};return function(){PersistentConnection.prototype.put=t}};RepoInfo;const forceRestClient=function(e){repoManagerForceRestClient(e)};registerDatabase();export{DataSnapshot,Database,OnDisconnect,QueryConstraint,TransactionResult,QueryImpl as _QueryImpl,QueryParams as _QueryParams,ReferenceImpl as _ReferenceImpl,forceRestClient as _TEST_ACCESS_forceRestClient,hijackHash as _TEST_ACCESS_hijackHash,repoManagerDatabaseFromApp as _repoManagerDatabaseFromApp,setSDKVersion as _setSDKVersion,validatePathString as _validatePathString,validateWritablePath as _validateWritablePath,child,connectDatabaseEmulator,enableLogging,endAt,endBefore,equalTo,forceLongPolling,forceWebSockets,get,getDatabase,goOffline,goOnline,increment,limitToFirst,limitToLast,off,onChildAdded,onChildChanged,onChildMoved,onChildRemoved,onDisconnect,onValue,orderByChild,orderByKey,orderByPriority,orderByValue,push,query,ref,refFromURL,remove,runTransaction,serverTimestamp,set,setPriority,setWithPriority,startAfter,startAt,update};\n\n//# sourceMappingURL=index.esm2017.js.map", "import{jsx as _jsx}from\"react/jsx-runtime\";import{useState,useEffect}from\"react\";import{createStore}from\"https://framer.com/m/framer/store.js@^1.0.0\";import{initializeApp}from\"firebase/app\";import{ref,child,get,getDatabase}from\"firebase/database\";// Learn more: https://www.framer.com/developers/overrides/\nconst useStore=createStore({number:null,txt:\"\"});export function redirectToWhatsapp(Component){return props=>{const[store,setStore]=useStore();const[loadedOnce,setLoadedOnce]=useState(false);const[urlTxt,setUrlTxt]=useState(\"\");useEffect(()=>{const fetchData=async()=>{try{if(loadedOnce===false&&window){setLoadedOnce(true);const urlParams=new URLSearchParams(window.location.search);let path=window.location.pathname.split(\"/\");const biz=path[path.length-1];const query=urlParams.get(\"text\");let txt=decodeURIComponent(query)//decode uri encoded values in readable format\n;if(!txt||txt==\"undefined\"){txt=\"\";}console.log(txt);console.log(biz);const firebaseConfig={apiKey:\"AIzaSyCiUAZy6qR4EFFlfTiQ_FBlvCpslMbeFhM\",authDomain:\"wats-prod.firebaseapp.com\",databaseURL:\"https://wats-prod-default-rtdb.firebaseio.com\",projectId:\"wats-prod\",storageBucket:\"wats-prod.appspot.com\",messagingSenderId:\"367631233199\",appId:\"1:367631233199:web:53de2e2fca36f6b9d2645a\",measurementId:\"G-D7MT75764N\"};const app=initializeApp(firebaseConfig);const database=getDatabase(app);const dbRef=ref(database);let chosenUrl=\"\";const promise1=new Promise(async(resolve,reject)=>{const snapshot=await get(child(child(dbRef,\"/biz/publicMappings\"),biz.toLowerCase()));if(snapshot.exists()){const number=snapshot.val().number;const directToWebScheduling=snapshot.val().shouldUseWeb;if(directToWebScheduling){chosenUrl=`https://book.wats-va.com/${biz.toLowerCase()}`;window.open(chosenUrl);}else if(txt&&txt!==\"null\"){chosenUrl=`https://wa.me/${number}?text=${txt}`;window.open(chosenUrl);}else{chosenUrl=`https://wa.me/${number}?text=Hi!!`;window.open(chosenUrl);}setStore({number:number,txt:txt,chosenUrl:chosenUrl});setUrlTxt(chosenUrl);}else{}});}}catch(error){console.error(\"Error fetching data:\",error);}};fetchData();},[]);return /*#__PURE__*/_jsx(Component,{...props,visibility:urlTxt?\"\":\"hidden\",// title={urlTxt ? \"Click here to go to url\" : \"\"}\nchosenUrl:urlTxt});};}\nexport const __FramerMetadata__ = {\"exports\":{\"redirectToWhatsapp\":{\"type\":\"reactHoc\",\"name\":\"redirectToWhatsapp\",\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Redirect.map"],
  "mappings": "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",
  "names": ["createStore", "state1", "dataStore", "Data", "setDataStore", "newState", "storeState", "storeSetters", "setStoreState", "setter", "useStore", "state", "setState", "ye", "ue", "useObserveData", "e", "assert", "t", "assertionError", "stringToByteArray$1", "r", "n", "o", "byteArrayToString", "s", "i", "c", "a", "h", "l", "u", "base64Encode", "base64urlEncodeWithoutPadding", "base64Decode", "deepCopy", "deepExtend", "isValidKey", "getUA", "navigator", "isMobileCordova", "window", "isReactNative", "navigator", "isNodeSdk", "e", "isIndexedDBAvailable", "validateIndexedDBOpenable", "e", "t", "r", "n", "o", "getGlobal", "window", "global", "getDefaultsFromGlobal", "getDefaultsFromEnvVariable", "e", "getDefaultsFromCookie", "t", "base64Decode", "getDefaults", "getDefaultEmulatorHost", "r", "getDefaultEmulatorHostnameAndPort", "n", "getDefaultAppConfig", "Deferred", "r", "createMockUserToken", "e", "t", "n", "o", "s", "i", "base64urlEncodeWithoutPadding", "FirebaseError", "_FirebaseError", "ErrorFactory", "replaceTemplate", "jsonEval", "stringify", "decode", "base64Decode", "isValidFormat", "e", "t", "decode", "r", "isAdmin", "contains", "safeGet", "isEmpty", "map", "n", "o", "deepEqual", "s", "isObject", "querystring", "e", "t", "r", "n", "Sha1", "r", "n", "e", "t", "o", "s", "i", "a", "h", "errorPrefix", "e", "t", "stringToByteArray", "e", "t", "r", "n", "o", "assert", "stringLength", "getModularInstance", "e", "Component", "t", "e", "n", "Provider", "Deferred", "i", "isComponentEager", "s", "r", "normalizeIdentifierForFactory", "ComponentContainer", "e", "r", "t", "o", "l", "defaultLogHandler", "n", "Logger", "instanceOfAny", "e", "t", "getIdbProxyableTypes", "getCursorAdvanceMethods", "r", "n", "o", "s", "a", "promisifyRequest", "unlisten", "success", "error", "wrap", "cacheDonePromiseForTransaction", "complete", "c", "replaceTraps", "wrapFunction", "unwrap", "transformCachableValue", "openDB", "t", "n", "o", "r", "s", "a", "d", "i", "wrap", "e", "n", "o", "r", "getMethod", "e", "t", "s", "a", "d", "method", "replaceTraps", "PlatformLoggerServiceImpl", "e", "isVersionServiceProvider", "t", "d", "m", "g", "Logger", "b", "u", "w", "_", "v", "C", "D", "y", "I", "S", "E", "P", "A", "H", "$", "x", "O", "B", "F", "N", "k", "L", "T", "j", "U", "V", "M", "R", "z", "_addComponent", "a", "_registerComponent", "e", "t", "z", "g", "R", "_addComponent", "_getProvider", "a", "K", "J", "ErrorFactory", "FirebaseAppImpl", "t", "a", "r", "Component", "Y", "U", "initializeApp", "e", "n", "V", "s", "getDefaultAppConfig", "c", "R", "deepEqual", "p", "ComponentContainer", "z", "h", "getApp", "registerVersion", "t", "a", "r", "n", "s", "M", "e", "g", "_registerComponent", "Component", "q", "G", "Q", "W", "getDbPromise", "openDB", "e", "t", "J", "readHeartbeatsFromIndexedDB", "computeKey", "FirebaseError", "g", "a", "writeHeartbeatsToIndexedDB", "X", "Z", "HeartbeatServiceImpl", "HeartbeatStorageImpl", "getUTCDateString", "extractHeartbeatsForHeader", "base64urlEncodeWithoutPadding", "r", "n", "countBytes", "isIndexedDBAvailable", "validateIndexedDBOpenable", "registerCoreComponents", "_registerComponent", "Component", "PlatformLoggerServiceImpl", "registerVersion", "d", "m", "a", "p", "registerVersion", "F", "O", "L", "setSDKVersion", "e", "DOMStorageWrapper", "stringify", "jsonEval", "MemoryStorage", "contains", "createStoragefor", "window", "t", "D", "M", "W", "Logger", "q", "sha1", "stringToByteArray", "n", "Sha1", "r", "buildLogMessage_", "G", "Q", "enableLogging$1", "assert", "log", "logWrapper", "error", "fatal", "warn", "warnIfPageIsSecure", "isInvalidJSONNumber", "executeWhenDOMReady", "isNodeSdk", "wrappedFn", "U", "V", "nameCompare", "tryParseInt", "stringCompare", "requireKey", "ObjectToUniqueKey", "splitStringBySize", "i", "each", "doubleToIEEE754String", "s", "l", "c", "h", "u", "isChromeExtensionContentScript", "isWindowsStoreApp", "errorForServerCode", "B", "H", "j", "exceptionGuard", "beingCrawled", "setTimeoutNonBlocking", "AppCheckTokenProvider", "FirebaseAuthTokenProvider", "EmulatorTokenProvider", "K", "z", "Y", "$", "J", "X", "Z", "ee", "te", "ne", "re", "RepoInfo", "o", "a", "repoInfoNeedsQueryParam", "repoInfoConnectionURL", "StatsCollection", "deepCopy", "ie", "se", "statsManagerGetCollection", "statsManagerGetOrCreateReporter", "PacketReceiver", "oe", "ae", "le", "ce", "he", "ue", "de", "pe", "_e", "fe", "me", "ye", "ge", "ve", "Ce", "we", "Te", "BrowserPollConnection", "_BrowserPollConnection", "FirebaseIFrameScriptHolder", "base64Encode", "_FirebaseIFrameScriptHolder", "doNewRequest", "readyStateCB", "Pe", "Se", "Ee", "WebSocketConnection", "_WebSocketConnection", "navigator", "TransportManager", "_TransportManager", "Ie", "Ne", "be", "Re", "ke", "xe", "Ae", "Fe", "Oe", "Le", "De", "Me", "We", "qe", "Connection", "ServerActions", "EventEmitter", "OnlineMonitor", "_OnlineMonitor", "isMobileCordova", "Ge", "Qe", "Path", "newEmptyPath", "pathGetFront", "pathGetLength", "pathPopFront", "pathGetBack", "pathToUrlEncodedString", "pathSlice", "pathParent", "pathChild", "pathIsEmpty", "newRelativePath", "pathEquals", "e", "t", "pathGetLength", "n", "r", "pathContains", "ValidationPath", "pathSlice", "stringLength", "validationPathCheckValid", "validationPathPush", "validationPathPop", "Qe", "Ge", "validationPathToErrorString", "VisibilityMonitor", "_VisibilityMonitor", "EventEmitter", "assert", "Ue", "Ve", "Be", "He", "je", "Ke", "ze", "PersistentConnection", "_PersistentConnection", "ServerActions", "s", "o", "a", "logWrapper", "isNodeSdk", "OnlineMonitor", "stringify", "Deferred", "i", "contains", "safeGet", "warn", "isAdmin", "isValidFormat", "error", "closeFn", "sendRequestFn", "l", "c", "log", "Connection", "isEmpty", "ObjectToUniqueKey", "Path", "L", "isMobileCordova", "isReactNative", "NamedNode", "_NamedNode", "Index", "U", "Ye", "KeyIndex", "nameCompare", "assertionError", "V", "$e", "SortedMapIterator", "LLRBNode", "_LLRBNode", "SortedMap", "LLRBEmptyNode", "_SortedMap", "NAME_ONLY_COMPARATOR", "NAME_COMPARATOR", "Je", "setMaxNode$1", "priorityHashText", "doubleToIEEE754String", "validatePriorityNode", "Xe", "LeafNode", "_LeafNode", "pathIsEmpty", "pathGetFront", "pathPopFront", "sha1", "Ze", "et", "setNodeFromJSON", "setMaxNode", "PriorityIndex", "tt", "nt", "Base12Num", "logBase2", "bitMask", "buildChildSet", "buildBalancedTree", "buildFrom12Array", "buildPennant", "attachPennant", "rt", "it", "IndexMap", "_IndexMap", "map", "st", "ChildrenNode", "_ChildrenNode", "ot", "MaxNode", "at", "nodeFromJSON", "each", "PathIndex", "ValueIndex", "lt", "changeValue", "changeChildAdded", "changeChildRemoved", "changeChildChanged", "changeChildMoved", "IndexedFilter", "RangedFilter", "_RangedFilter", "LimitedFilter", "h", "u", "QueryParams", "_QueryParams", "queryParamsGetNodeFilter", "queryParamsToRestQueryStringParameters", "e", "t", "n", "tt", "lt", "$e", "assert", "PathIndex", "stringify", "queryParamsGetQueryObject", "ReadonlyRestClient", "_ReadonlyRestClient", "ServerActions", "logWrapper", "s", "o", "a", "safeGet", "Deferred", "i", "querystring", "jsonEval", "warn", "SnapshotHolder", "ChildrenNode", "newSparseSnapshotTree", "sparseSnapshotTreeRemember", "pathIsEmpty", "r", "pathGetFront", "pathPopFront", "sparseSnapshotTreeForEachTree", "e", "t", "n", "sparseSnapshotTreeForEachChild", "Path", "StatsListener", "each", "ct", "ht", "ut", "StatsReporter", "setTimeoutNonBlocking", "r", "contains", "dt", "newOperationSourceUser", "newOperationSourceServer", "newOperationSourceServerTaggedQuery", "AckUserWrite", "_AckUserWrite", "pathIsEmpty", "assert", "newEmptyPath", "pathGetFront", "pathPopFront", "ListenComplete", "_ListenComplete", "Overwrite", "_Overwrite", "Merge", "_Merge", "CacheNode", "EventGenerator", "eventGeneratorGenerateEventsForChanges", "i", "s", "changeChildMoved", "eventGeneratorGenerateEventsForType", "eventGeneratorCompareChanges", "eventGeneratorMaterializeSingleChange", "assertionError", "NamedNode", "newViewCache", "viewCacheUpdateEventSnap", "viewCacheUpdateServerSnap", "viewCacheGetCompleteEventSnap", "viewCacheGetCompleteServerSnap", "pt", "EmptyChildren", "SortedMap", "stringCompare", "ImmutableTree", "_ImmutableTree", "pathChild", "CompoundWrite", "_CompoundWrite", "compoundWriteAddWrite", "newRelativePath", "compoundWriteAddWrites", "compoundWriteRemoveWrite", "compoundWriteHasCompleteWrite", "compoundWriteGetCompleteNode", "compoundWriteGetCompleteChildren", "tt", "compoundWriteChildCompoundWrite", "compoundWriteIsEmpty", "compoundWriteApply", "applySubtreeWrite", "writeTreeChildWrites", "newWriteTreeRef", "writeTreeAddOverwrite", "writeTreeGetWrite", "e", "t", "n", "r", "writeTreeRemoveWrite", "assert", "i", "s", "writeTreeRecordContainsPath_", "pathContains", "writeTreeResetTree_", "compoundWriteRemoveWrite", "each", "pathChild", "writeTreeLayerTree_", "writeTreeDefaultFilter_", "newEmptyPath", "CompoundWrite", "newRelativePath", "compoundWriteAddWrite", "assertionError", "compoundWriteAddWrites", "pathIsEmpty", "safeGet", "pathGetFront", "pathPopFront", "writeTreeCalcCompleteEventCache", "compoundWriteChildCompoundWrite", "compoundWriteIsEmpty", "compoundWriteHasCompleteWrite", "filter", "o", "ChildrenNode", "compoundWriteApply", "compoundWriteGetCompleteNode", "writeTreeCalcCompleteEventChildren", "tt", "Path", "compoundWriteGetCompleteChildren", "writeTreeCalcEventCacheAfterServerOverwrite", "writeTreeCalcCompleteChild", "writeTreeShadowingWrite", "writeTreeCalcIndexedSlice", "l", "c", "newWriteTree", "writeTreeRefCalcCompleteEventCache", "writeTreeRefCalcCompleteEventChildren", "writeTreeRefCalcEventCacheAfterServerOverwrite", "writeTreeRefShadowingWrite", "writeTreeRefCalcIndexedSlice", "writeTreeRefCalcCompleteChild", "writeTreeRefChild", "newWriteTreeRef", "ChildChangeAccumulator", "changeChildChanged", "changeChildRemoved", "changeChildAdded", "NoCompleteChildSource_", "_t", "WriteTreeCompleteChildSource", "CacheNode", "viewCacheGetCompleteServerSnap", "newViewProcessor", "viewProcessorAssertIndexed", "viewProcessorApplyOperation", "dt", "viewProcessorApplyUserOverwrite", "viewProcessorApplyServerOverwrite", "viewProcessorApplyUserMerge", "viewProcessorApplyServerMerge", "a", "viewProcessorRevertUserWrite", "viewProcessorAckUserWrite", "viewProcessorListenComplete", "viewProcessorMaybeAddValueEvent", "viewCacheGetCompleteEventSnap", "changeValue", "viewProcessorGenerateEventCacheAfterServerEvent", "pathGetLength", "h", "u", "viewCacheUpdateEventSnap", "viewCacheUpdateServerSnap", "pathGetBack", "pathParent", "viewProcessorCacheHasChild", "viewProcessorApplyMerge", "ImmutableTree", "$e", "View", "IndexedFilter", "queryParamsGetNodeFilter", "newViewCache", "EventGenerator", "viewGetServerCache", "viewGetCompleteNode", "viewGetCompleteServerCache", "viewIsEmpty", "viewAddEventRegistration", "viewRemoveEventRegistration", "viewApplyOperation", "viewGenerateEventsForChanges_", "viewGetInitialEvents", "eventGeneratorGenerateEventsForChanges", "ft", "SyncPoint", "syncPointSetReferenceConstructor", "syncPointGetReferenceConstructor", "syncPointIsEmpty", "syncPointApplyOperation", "syncPointGetView", "syncPointAddEventRegistration", "syncPointRemoveEventRegistration", "syncPointHasCompleteView", "syncPointGetQueryViews", "syncPointGetCompleteServerCache", "syncPointViewForQuery", "syncPointGetCompleteView", "syncPointViewExistsForQuery", "mt", "syncTreeSetReferenceConstructor", "syncTreeGetReferenceConstructor", "yt", "SyncTree", "syncTreeApplyUserOverwrite", "writeTreeAddOverwrite", "syncTreeApplyOperationToSyncPoints_", "Overwrite", "newOperationSourceUser", "syncTreeAckUserWrite", "e", "t", "n", "r", "writeTreeGetWrite", "writeTreeRemoveWrite", "ImmutableTree", "newEmptyPath", "each", "Path", "syncTreeApplyOperationToSyncPoints_", "AckUserWrite", "syncTreeApplyServerOverwrite", "Overwrite", "newOperationSourceServer", "syncTreeApplyServerMerge", "Merge", "syncTreeApplyListenComplete", "ListenComplete", "syncTreeApplyTaggedListenComplete", "syncTreeQueryKeyForTag_", "syncTreeParseQueryKey_", "s", "o", "newRelativePath", "a", "newOperationSourceServerTaggedQuery", "syncTreeApplyTaggedOperation_", "syncTreeRemoveEventRegistration", "i", "syncPointViewExistsForQuery", "l", "syncPointRemoveEventRegistration", "syncPointIsEmpty", "c", "syncPointHasCompleteView", "syncTreeCollectDistinctViewsForSubTree_", "syncTreeCreateListenerForView_", "syncTreeQueryForListening_", "syncTreeTagForQuery", "syncTreeMakeQueryKey_", "syncTreeRemoveTags_", "syncTreeApplyTaggedQueryOverwrite", "syncTreeApplyTaggedQueryMerge", "syncTreeAddEventRegistration", "syncPointGetCompleteServerCache", "SyncPoint", "ChildrenNode", "assert", "syncTreeGetNextQueryTag_", "h", "writeTreeChildWrites", "u", "syncPointAddEventRegistration", "syncPointViewForQuery", "syncTreeSetupListener_", "syncTreeCalcCompleteEventCache", "writeTreeCalcCompleteEventCache", "syncTreeGetServerValue", "CacheNode", "syncPointGetView", "viewGetCompleteNode", "syncTreeApplyOperationHelper_", "pathIsEmpty", "syncTreeApplyOperationDescendantsHelper_", "pathGetFront", "writeTreeRefChild", "syncPointApplyOperation", "viewGetServerCache", "errorForServerCode", "syncPointGetCompleteView", "syncPointGetQueryViews", "syncTreeGetReferenceConstructor", "yt", "ExistingValueProvider", "_ExistingValueProvider", "DeferredValueProvider", "_DeferredValueProvider", "pathChild", "generateWithValues", "resolveDeferredLeafValue", "resolveScalarDeferredValue", "resolveComplexDeferredValue", "resolveDeferredValueTree", "resolveDeferredValue", "resolveDeferredValueSnapshot", "LeafNode", "nodeFromJSON", "tt", "Tree", "treeSubTree", "safeGet", "pathPopFront", "treeGetValue", "treeSetValue", "treeUpdateParents", "treeHasChildren", "treeIsEmpty", "treeForEachChild", "treeForEachDescendant", "treeForEachAncestor", "treeGetPath", "treeUpdateChild", "contains", "gt", "vt", "Ct", "isValidKey", "isValidPathString", "isValidRootPathString", "validateFirebaseData", "e", "t", "n", "r", "Path", "ValidationPath", "validationPathToErrorString", "isInvalidJSONNumber", "Ct", "stringLength", "each", "s", "isValidKey", "validationPathPush", "validationPathPop", "validatePathString", "e", "t", "n", "r", "isValidPathString", "errorPrefix", "validateRootPathString", "validateUrl", "e", "t", "n", "isValidKey", "isValidRootPathString", "errorPrefix", "EventQueue", "eventQueueQueueEvents", "r", "i", "s", "pathEquals", "eventQueueRaiseEventsForChangedPath", "e", "t", "n", "eventQueueQueueEvents", "eventQueueRaiseQueuedEventsMatchingPredicate", "pathContains", "r", "i", "s", "eventListRaise", "G", "log", "exceptionGuard", "wt", "Tt", "Repo", "EventQueue", "newSparseSnapshotTree", "Tree", "repoStart", "statsManagerGetCollection", "beingCrawled", "ReadonlyRestClient", "repoOnDataUpdate", "repoOnConnectStatus", "stringify", "PersistentConnection", "repoOnServerInfoUpdate", "statsManagerGetOrCreateReporter", "StatsReporter", "SnapshotHolder", "SyncTree", "o", "syncTreeApplyServerOverwrite", "repoUpdateInfo", "repoServerTime", "Path", "repoGenerateServerValues", "generateWithValues", "map", "nodeFromJSON", "syncTreeApplyTaggedQueryMerge", "syncTreeApplyTaggedQueryOverwrite", "syncTreeApplyServerMerge", "repoRerunTransactions", "repoRunOnDisconnectEvents", "each", "repoGetNextWriteId", "repoGetValue", "syncTreeGetServerValue", "syncTreeAddEventRegistration", "syncTreeTagForQuery", "syncTreeRemoveEventRegistration", "repoLog", "repoRunOnDisconnectEvents", "e", "repoLog", "t", "repoGenerateServerValues", "n", "newSparseSnapshotTree", "sparseSnapshotTreeForEachTree", "newEmptyPath", "s", "resolveDeferredValueTree", "sparseSnapshotTreeRemember", "r", "syncTreeApplyServerOverwrite", "i", "repoAbortTransactions", "repoRerunTransactions", "eventQueueRaiseEventsForChangedPath", "repoInterrupt", "e", "wt", "repoLog", "e", "t", "n", "log", "repoGetLatestState", "e", "t", "n", "syncTreeCalcCompleteEventCache", "ChildrenNode", "repoSendReadyTransactions", "repoPruneCompletedTransactionsBelowNode", "treeGetValue", "repoBuildTransactionQueue", "assert", "repoSendTransactionQueue", "treeGetPath", "treeHasChildren", "treeForEachChild", "r", "i", "s", "newRelativePath", "l", "repoLog", "syncTreeAckUserWrite", "treeSubTree", "eventQueueRaiseEventsForChangedPath", "exceptionGuard", "warn", "repoRerunTransactions", "repoGetAncestorTransactionNode", "repoRerunTransactionQueue", "a", "c", "h", "u", "Tt", "validateFirebaseData", "nodeFromJSON", "contains", "repoGenerateServerValues", "resolveDeferredValueSnapshot", "repoGetNextWriteId", "syncTreeApplyUserOverwrite", "pathGetFront", "pathPopFront", "repoAggregateTransactionQueuesForNode", "treeSetValue", "repoAbortTransactions", "treeForEachAncestor", "repoAbortTransactionsOnNode", "treeForEachDescendant", "decodePath", "decodeQuery", "parseRepoInfo", "parseDatabaseURL", "fatal", "warnIfPageIsSecure", "RepoInfo", "Path", "p", "DataEvent", "n", "stringify", "CancelEvent", "CallbackContext", "assert", "QueryImpl", "_QueryImpl", "n", "pathIsEmpty", "pathGetBack", "ReferenceImpl", "queryParamsGetQueryObject", "ObjectToUniqueKey", "getModularInstance", "pathEquals", "pathToUrlEncodedString", "ReferenceImpl", "_ReferenceImpl", "QueryImpl", "QueryParams", "pathParent", "DataSnapshot", "_DataSnapshot", "n", "Path", "child", "tt", "t", "ref", "e", "getModularInstance", "child", "e", "t", "getModularInstance", "pathGetFront", "validateRootPathString", "validatePathString", "ReferenceImpl", "pathChild", "get", "e", "getModularInstance", "t", "CallbackContext", "n", "ValueEventRegistration", "repoGetValue", "DataSnapshot", "ReferenceImpl", "_ValueEventRegistration", "DataEvent", "CancelEvent", "syncPointSetReferenceConstructor", "ReferenceImpl", "syncTreeSetReferenceConstructor", "Et", "It", "Nt", "repoManagerApplyEmulatorSettings", "e", "t", "n", "r", "RepoInfo", "repoManagerDatabaseFromApp", "i", "s", "fatal", "log", "parseRepoInfo", "l", "c", "h", "EmulatorTokenProvider", "FirebaseAuthTokenProvider", "validateUrl", "pathIsEmpty", "u", "repoManagerCreateRepo", "AppCheckTokenProvider", "Database", "repoManagerDeleteRepo", "repoInterrupt", "Repo", "Database", "repoStart", "ReferenceImpl", "newEmptyPath", "repoManagerDeleteRepo", "fatal", "getDatabase", "getApp", "r", "i", "_getProvider", "e", "getDefaultEmulatorHostnameAndPort", "connectDatabaseEmulator", "t", "n", "getModularInstance", "fatal", "s", "EmulatorTokenProvider", "createMockUserToken", "repoManagerApplyEmulatorSettings", "registerDatabase", "e", "setSDKVersion", "Y", "_registerComponent", "Component", "n", "repoManagerDatabaseFromApp", "registerVersion", "F", "O", "PersistentConnection", "e", "t", "registerDatabase", "useStore", "createStore", "redirectToWhatsapp", "Component", "props", "store", "setStore", "loadedOnce", "setLoadedOnce", "ye", "urlTxt", "setUrlTxt", "ue", "window", "urlParams", "path", "biz", "query", "txt", "app", "initializeApp", "database", "getDatabase", "dbRef", "ref", "chosenUrl", "promise1", "resolve", "reject", "snapshot", "get", "child", "number", "error", "p"]
}
