File: /home/dnlightw-124/dn.lightweb.kr/node_modules/firebase/firebase-firestore-compat.js
((e,t)=>{"object"==typeof exports&&"undefined"!=typeof module?t(require("@firebase/app-compat"),require("@firebase/app")):"function"==typeof define&&define.amd?define(["@firebase/app-compat","@firebase/app"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).firebase,e.firebase.INTERNAL.modularAPIs)})(this,function(Ld,Od){try{!(function(){function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}let i=n(Ld),s=()=>{},a=function(t){var r=[];let n=0;for(let i=0;i<t.length;i++){let e=t.charCodeAt(i);e<128?r[n++]=e:(e<2048?r[n++]=e>>6|192:(55296==(64512&e)&&i+1<t.length&&56320==(64512&t.charCodeAt(i+1))?(e=65536+((1023&e)<<10)+(1023&t.charCodeAt(++i)),r[n++]=e>>18|240,r[n++]=e>>12&63|128):r[n++]=e>>12|224,r[n++]=e>>6&63|128),r[n++]=63&e|128)}return r},B={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:"function"==typeof atob,encodeByteArray(r,e){if(!Array.isArray(r))throw Error("encodeByteArray takes an array as a parameter");this.init_();var n=e?this.byteToCharMapWebSafe_:this.byteToCharMap_,i=[];for(let h=0;h<r.length;h+=3){var s=r[h],a=h+1<r.length,o=a?r[h+1]:0,l=h+2<r.length,u=l?r[h+2]:0;let e=(15&o)<<2|u>>6,t=63&u;l||(t=64,a)||(e=64),i.push(n[s>>2],n[(3&s)<<4|o>>4],n[e],n[t])}return i.join("")},encodeString(e,t){return this.HAS_NATIVE_SUPPORT&&!t?btoa(e):this.encodeByteArray(a(e),t)},decodeString(r,n){if(this.HAS_NATIVE_SUPPORT&&!n)return atob(r);{var i=this.decodeStringToByteArray(r,n);var s=[];let e=0,t=0;for(;e<i.length;){var a,o,l,u=i[e++];u<128?s[t++]=String.fromCharCode(u):191<u&&u<224?(a=i[e++],s[t++]=String.fromCharCode((31&u)<<6|63&a)):239<u&&u<365?(a=((7&u)<<18|(63&i[e++])<<12|(63&i[e++])<<6|63&i[e++])-65536,s[t++]=String.fromCharCode(55296+(a>>10)),s[t++]=String.fromCharCode(56320+(1023&a))):(o=i[e++],l=i[e++],s[t++]=String.fromCharCode((15&u)<<12|(63&o)<<6|63&l))}return s.join("");return}},decodeStringToByteArray(e,t){this.init_();var r=t?this.charToByteMapWebSafe_:this.charToByteMap_,n=[];for(let l=0;l<e.length;){var i=r[e.charAt(l++)],s=l<e.length?r[e.charAt(l)]:0,a=++l<e.length?r[e.charAt(l)]:64,o=++l<e.length?r[e.charAt(l)]:64;if(++l,null==i||null==s||null==a||null==o)throw new q;n.push(i<<2|s>>4),64!==a&&(n.push(s<<4&240|a>>2),64!==o)&&n.push(a<<6&192|o)}return n},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let e=0;e<this.ENCODED_VALS.length;e++)this.byteToCharMap_[e]=this.ENCODED_VALS.charAt(e),this.charToByteMap_[this.byteToCharMap_[e]]=e,this.byteToCharMapWebSafe_[e]=this.ENCODED_VALS_WEBSAFE.charAt(e),(this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[e]]=e)>=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(e)]=e,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(e)]=e)}}};class q extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}let j=function(e){var t=a(e);return B.encodeByteArray(t,!0)},z=function(e){return j(e).replace(/\./g,"")},G=function(e){try{return B.decodeString(e,!0)}catch(e){console.error("base64Decode failed: ",e)}return null};let K=()=>(()=>{if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw new Error("Unable to locate global object.")})().__FIREBASE_DEFAULTS__,Q=()=>{var e;return"undefined"!=typeof process&&void 0!==process.env&&(e=process.env.__FIREBASE_DEFAULTS__)?JSON.parse(e):void 0},$=()=>{if("undefined"!=typeof document){let e;try{e=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(e){return}var t=e&&G(e[1]);return t&&JSON.parse(t)}},H=()=>{try{return s()||K()||Q()||$()}catch(e){console.info("Unable to get __FIREBASE_DEFAULTS__ due to: "+e)}};function W(){return"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}function Y(){return!(()=>{var e=null==(e=H())?void 0:e.forceEnvironment;if("node"===e)return 1;if("browser"!==e)try{return"[object process]"===Object.prototype.toString.call(global.process)}catch(e){}})()&&navigator.userAgent&&navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome")}class X extends Error{constructor(e,t,r){super(t),this.code=e,this.customData=r,this.name="FirebaseError",Object.setPrototypeOf(this,X.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,J.prototype.create)}}class J{constructor(e,t,r){this.service=e,this.serviceName=t,this.errors=r}create(e,...t){var n,r=t[0]||{},i=this.service+"/"+e,s=this.errors[e],s=s?(n=r,s.replace(Z,(e,t)=>{var r=n[t];return null!=r?String(r):`<${t}?>`})):"Error",s=this.serviceName+`: ${s} (${i}).`;return new X(i,s,r)}}let Z=/\{\$([^}]+)}/g;function ee(e,t){if(e!==t){var r,n,i=Object.keys(e),s=Object.keys(t);for(r of i){if(!s.includes(r))return!1;var a=e[r],o=t[r];if(te(a)&&te(o)){if(!ee(a,o))return!1}else if(a!==o)return!1}for(n of s)if(!i.includes(n))return!1}return!0}function te(e){return null!==e&&"object"==typeof e}function _(e){return e&&e._delegate?e._delegate:e}class re{constructor(e,t,r){this.name=e,this.instanceFactory=t,this.type=r,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}}var c;(t=c=c||{})[t.DEBUG=0]="DEBUG",t[t.VERBOSE=1]="VERBOSE",t[t.INFO=2]="INFO",t[t.WARN=3]="WARN",t[t.ERROR=4]="ERROR",t[t.SILENT=5]="SILENT";let ne={debug:c.DEBUG,verbose:c.VERBOSE,info:c.INFO,warn:c.WARN,error:c.ERROR,silent:c.SILENT},ie=c.INFO,se={[c.DEBUG]:"log",[c.VERBOSE]:"log",[c.INFO]:"info",[c.WARN]:"warn",[c.ERROR]:"error"},ae=(e,t,...r)=>{if(!(t<e.logLevel)){var n=(new Date).toISOString(),i=se[t];if(!i)throw new Error(`Attempted to log a message with an invalid logType (value: ${t})`);console[i](`[${n}] ${e.name}:`,...r)}};var oe,le,pr,yr,vr,wr,_r,br,Ir,Tr,m,ue,e="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},Er=(!(function(){var e,t,s;function r(){this.blockSize=-1,this.blockSize=64,this.g=Array(4),this.B=Array(this.blockSize),this.o=this.h=0,this.s()}function n(){}function a(e,t,r){r=r||0;var n=Array(16);if("string"==typeof t)for(var i=0;i<16;++i)n[i]=t.charCodeAt(r++)|t.charCodeAt(r++)<<8|t.charCodeAt(r++)<<16|t.charCodeAt(r++)<<24;else for(i=0;i<16;++i)n[i]=t[r++]|t[r++]<<8|t[r++]<<16|t[r++]<<24;t=e.g[0],r=e.g[1];var i=e.g[2],s=e.g[3],a=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=(r=(i=(s=(t=r+((a=t+(s^r&(i^s))+n[0]+3614090360&4294967295)<<7&4294967295|a>>>25))+((a=s+(i^t&(r^i))+n[1]+3905402710&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[2]+606105819&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[3]+3250441966&4294967295)<<22&4294967295|a>>>10))+((a=t+(s^r&(i^s))+n[4]+4118548399&4294967295)<<7&4294967295|a>>>25))+((a=s+(i^t&(r^i))+n[5]+1200080426&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[6]+2821735955&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[7]+4249261313&4294967295)<<22&4294967295|a>>>10))+((a=t+(s^r&(i^s))+n[8]+1770035416&4294967295)<<7&4294967295|a>>>25))+((a=s+(i^t&(r^i))+n[9]+2336552879&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[10]+4294925233&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[11]+2304563134&4294967295)<<22&4294967295|a>>>10))+((a=t+(s^r&(i^s))+n[12]+1804603682&4294967295)<<7&4294967295|a>>>25))+((a=s+(i^t&(r^i))+n[13]+4254626195&4294967295)<<12&4294967295|a>>>20))+((a=i+(r^s&(t^r))+n[14]+2792965006&4294967295)<<17&4294967295|a>>>15))+((a=r+(t^i&(s^t))+n[15]+1236535329&4294967295)<<22&4294967295|a>>>10))+((a=t+(i^s&(r^i))+n[1]+4129170786&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[6]+3225465664&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[11]+643717713&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[0]+3921069994&4294967295)<<20&4294967295|a>>>12))+((a=t+(i^s&(r^i))+n[5]+3593408605&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[10]+38016083&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[15]+3634488961&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[4]+3889429448&4294967295)<<20&4294967295|a>>>12))+((a=t+(i^s&(r^i))+n[9]+568446438&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[14]+3275163606&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[3]+4107603335&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[8]+1163531501&4294967295)<<20&4294967295|a>>>12))+((a=t+(i^s&(r^i))+n[13]+2850285829&4294967295)<<5&4294967295|a>>>27))+((a=s+(r^i&(t^r))+n[2]+4243563512&4294967295)<<9&4294967295|a>>>23))+((a=i+(t^r&(s^t))+n[7]+1735328473&4294967295)<<14&4294967295|a>>>18))+((a=r+(s^t&(i^s))+n[12]+2368359562&4294967295)<<20&4294967295|a>>>12))+((a=t+(r^i^s)+n[5]+4294588738&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[8]+2272392833&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[11]+1839030562&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[14]+4259657740&4294967295)<<23&4294967295|a>>>9))+((a=t+(r^i^s)+n[1]+2763975236&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[4]+1272893353&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[7]+4139469664&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[10]+3200236656&4294967295)<<23&4294967295|a>>>9))+((a=t+(r^i^s)+n[13]+681279174&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[0]+3936430074&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[3]+3572445317&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[6]+76029189&4294967295)<<23&4294967295|a>>>9))+((a=t+(r^i^s)+n[9]+3654602809&4294967295)<<4&4294967295|a>>>28))+((a=s+(t^r^i)+n[12]+3873151461&4294967295)<<11&4294967295|a>>>21))+((a=i+(s^t^r)+n[15]+530742520&4294967295)<<16&4294967295|a>>>16))+((a=r+(i^s^t)+n[2]+3299628645&4294967295)<<23&4294967295|a>>>9))+((a=t+(i^(r|~s))+n[0]+4096336452&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[7]+1126891415&4294967295)<<10&4294967295|a>>>22))+((a=i+(t^(s|~r))+n[14]+2878612391&4294967295)<<15&4294967295|a>>>17))+((a=r+(s^(i|~t))+n[5]+4237533241&4294967295)<<21&4294967295|a>>>11))+((a=t+(i^(r|~s))+n[12]+1700485571&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[3]+2399980690&4294967295)<<10&4294967295|a>>>22))+((a=i+(t^(s|~r))+n[10]+4293915773&4294967295)<<15&4294967295|a>>>17))+((a=r+(s^(i|~t))+n[1]+2240044497&4294967295)<<21&4294967295|a>>>11))+((a=t+(i^(r|~s))+n[8]+1873313359&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[15]+4264355552&4294967295)<<10&4294967295|a>>>22))+((a=i+(t^(s|~r))+n[6]+2734768916&4294967295)<<15&4294967295|a>>>17))+((a=r+(s^(i|~t))+n[13]+1309151649&4294967295)<<21&4294967295|a>>>11))+((s=(t=r+((a=t+(i^(r|~s))+n[4]+4149444226&4294967295)<<6&4294967295|a>>>26))+((a=s+(r^(t|~i))+n[11]+3174756917&4294967295)<<10&4294967295|a>>>22))^((i=s+((a=i+(t^(s|~r))+n[2]+718787259&4294967295)<<15&4294967295|a>>>17))|~t))+n[9]+3951481745&4294967295;e.g[0]=e.g[0]+t&4294967295,e.g[1]=e.g[1]+(i+(a<<21&4294967295|a>>>11))&4294967295,e.g[2]=e.g[2]+i&4294967295,e.g[3]=e.g[3]+s&4294967295}function u(e,t){this.h=t;for(var r=[],n=!0,i=e.length-1;0<=i;i--){var s=0|e[i];n&&s==t||(r[i]=s,n=!1)}this.g=r}t=r,s=function(){this.blockSize=-1},n.prototype=s.prototype,t.D=s.prototype,t.prototype=new n,(t.prototype.constructor=t).C=function(e,t,r){for(var n=Array(arguments.length-2),i=2;i<arguments.length;i++)n[i-2]=arguments[i];return s.prototype[t].apply(e,n)},r.prototype.s=function(){this.g[0]=1732584193,this.g[1]=4023233417,this.g[2]=2562383102,this.g[3]=271733878,this.o=this.h=0},r.prototype.u=function(e,t){for(var r=(t=void 0===t?e.length:t)-this.blockSize,n=this.B,i=this.h,s=0;s<t;){if(0==i)for(;s<=r;)a(this,e,s),s+=this.blockSize;if("string"==typeof e){for(;s<t;)if(n[i++]=e.charCodeAt(s++),i==this.blockSize){a(this,n),i=0;break}}else for(;s<t;)if(n[i++]=e[s++],i==this.blockSize){a(this,n),i=0;break}}this.h=i,this.o+=t},r.prototype.v=function(){var e=Array((this.h<56?this.blockSize:2*this.blockSize)-this.h);e[0]=128;for(var t=1;t<e.length-8;++t)e[t]=0;for(var r=8*this.o,t=e.length-8;t<e.length;++t)e[t]=255&r,r/=256;for(this.u(e),e=Array(16),t=r=0;t<4;++t)for(var n=0;n<32;n+=8)e[r++]=this.g[t]>>>n&255;return e};var i={};function o(e){return-128<=e&&e<128?(t=e,r=function(e){return new u([0|e],e<0?-1:0)},n=i,Object.prototype.hasOwnProperty.call(n,t)?n[t]:n[t]=r(t)):new u([0|e],e<0?-1:0);var t,r,n}function h(e){if(isNaN(e)||!isFinite(e))return c;if(e<0)return m(h(-e));for(var t=[],r=1,n=0;r<=e;n++)t[n]=e/r|0,r*=4294967296;return new u(t,0)}var c=o(0),l=o(1),d=o(16777216);function f(e){if(0==e.h){for(var t=0;t<e.g.length;t++)if(0!=e.g[t])return;return 1}}function g(e){return-1==e.h}function m(e){for(var t=e.g.length,r=[],n=0;n<t;n++)r[n]=~e.g[n];return new u(r,~e.h).add(l)}function p(e,t){return e.add(m(t))}function y(e,t){for(;(65535&e[t])!=e[t];)e[t+1]+=e[t]>>>16,e[t]&=65535,t++}function v(e,t){this.g=e,this.h=t}function w(e,t){if(f(t))throw Error("division by zero");if(f(e))return new v(c,c);if(g(e))return t=w(m(e),t),new v(m(t.g),m(t.h));if(g(t))return t=w(e,m(t)),new v(m(t.g),t.h);if(30<e.g.length){if(g(e)||g(t))throw Error("slowDivide_ only works with positive integers.");for(var r=l,n=t;n.l(e)<=0;)r=_(r),n=_(n);for(var i=b(r,1),s=b(n,1),n=b(n,2),r=b(r,2);!f(n);){var a=s.add(n);a.l(e)<=0&&(i=i.add(r),s=a),n=b(n,1),r=b(r,1)}return t=p(e,i.j(t)),new v(i,t)}for(i=c;0<=e.l(t);){for(r=Math.max(1,Math.floor(e.m()/t.m())),n=(n=Math.ceil(Math.log(r)/Math.LN2))<=48?1:Math.pow(2,n-48),a=(s=h(r)).j(t);g(a)||0<a.l(e);)a=(s=h(r-=n)).j(t);f(s)&&(s=l),i=i.add(s),e=p(e,a)}return new v(i,e)}function _(e){for(var t=e.g.length+1,r=[],n=0;n<t;n++)r[n]=e.i(n)<<1|e.i(n-1)>>>31;return new u(r,e.h)}function b(e,t){var r=t>>5;t%=32;for(var n=e.g.length-r,i=[],s=0;s<n;s++)i[s]=0<t?e.i(s+r)>>>t|e.i(s+r+1)<<32-t:e.i(s+r);return new u(i,e.h)}(e=u.prototype).m=function(){if(g(this))return-m(this).m();for(var e=0,t=1,r=0;r<this.g.length;r++){var n=this.i(r);e+=(0<=n?n:4294967296+n)*t,t*=4294967296}return e},e.toString=function(e){if((e=e||10)<2||36<e)throw Error("radix out of range: "+e);if(f(this))return"0";if(g(this))return"-"+m(this).toString(e);for(var t=h(Math.pow(e,6)),r=this,n="";;){var i=w(r,t).g,s=((0<(r=p(r,i.j(t))).g.length?r.g[0]:r.h)>>>0).toString(e);if(f(r=i))return s+n;for(;s.length<6;)s="0"+s;n=s+n}},e.i=function(e){return e<0?0:e<this.g.length?this.g[e]:this.h},e.l=function(e){return g(e=p(this,e))?-1:f(e)?0:1},e.abs=function(){return g(this)?m(this):this},e.add=function(e){for(var t=Math.max(this.g.length,e.g.length),r=[],n=0,i=0;i<=t;i++){var s=n+(65535&this.i(i))+(65535&e.i(i)),a=(s>>>16)+(this.i(i)>>>16)+(e.i(i)>>>16),n=a>>>16;r[i]=(a&=65535)<<16|(s&=65535)}return new u(r,-2147483648&r[r.length-1]?-1:0)},e.j=function(e){if(f(this)||f(e))return c;if(g(this))return g(e)?m(this).j(m(e)):m(m(this).j(e));if(g(e))return m(this.j(m(e)));if(this.l(d)<0&&e.l(d)<0)return h(this.m()*e.m());for(var t=this.g.length+e.g.length,r=[],n=0;n<2*t;n++)r[n]=0;for(n=0;n<this.g.length;n++)for(var i=0;i<e.g.length;i++){var s=this.i(n)>>>16,a=65535&this.i(n),o=e.i(i)>>>16,l=65535&e.i(i);r[2*n+2*i]+=a*l,y(r,2*n+2*i),r[2*n+2*i+1]+=s*l,y(r,2*n+2*i+1),r[2*n+2*i+1]+=a*o,y(r,2*n+2*i+1),r[2*n+2*i+2]+=s*o,y(r,2*n+2*i+2)}for(n=0;n<t;n++)r[n]=r[2*n+1]<<16|r[2*n];for(n=t;n<2*t;n++)r[n]=0;return new u(r,0)},e.A=function(e){return w(this,e).h},e.and=function(e){for(var t=Math.max(this.g.length,e.g.length),r=[],n=0;n<t;n++)r[n]=this.i(n)&e.i(n);return new u(r,this.h&e.h)},e.or=function(e){for(var t=Math.max(this.g.length,e.g.length),r=[],n=0;n<t;n++)r[n]=this.i(n)|e.i(n);return new u(r,this.h|e.h)},e.xor=function(e){for(var t=Math.max(this.g.length,e.g.length),r=[],n=0;n<t;n++)r[n]=this.i(n)^e.i(n);return new u(r,this.h^e.h)},r.prototype.digest=r.prototype.v,r.prototype.reset=r.prototype.s,r.prototype.update=r.prototype.u,le=r,u.prototype.multiply=u.prototype.j,u.prototype.modulo=u.prototype.A,u.prototype.compare=u.prototype.l,u.prototype.toNumber=u.prototype.m,u.prototype.getBits=u.prototype.i,u.fromNumber=h,u.fromString=function e(t,r){if(0==t.length)throw Error("number format error: empty string");if((r=r||10)<2||36<r)throw Error("radix out of range: "+r);if("-"==t.charAt(0))return m(e(t.substring(1),r));if(0<=t.indexOf("-"))throw Error('number format error: interior "-" character');for(var n=h(Math.pow(r,8)),i=c,s=0;s<t.length;s+=8)var a=Math.min(8,t.length-s),o=parseInt(t.substring(s,s+a),r),i=(a<8?(a=h(Math.pow(r,a)),i.j(a)):i=i.j(n)).add(h(o));return i},oe=u}).apply(void 0!==e?e:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{}),"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{});!(function(){var e,N="function"==typeof Object.defineProperties?Object.defineProperty:function(e,t,r){return e!=Array.prototype&&e!=Object.prototype&&(e[t]=r.value),e};var k=(e=>{e=["object"==typeof globalThis&&globalThis,e,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof Er&&Er];for(var t=0;t<e.length;++t){var r=e[t];if(r&&r.Math==Math)return r}throw Error("Cannot find global object")})(this);var t="Array.prototype.values",r=function(e){return e||function(){return r=function(e,t){return t},(t=this)instanceof String&&(t+=""),n=0,i=!1,(e={next:function(){var e;return!i&&n<t.length?(e=n++,{value:r(e,t[e]),done:!1}):{done:i=!0,value:void 0}}})[Symbol.iterator]=function(){return e},e;var t,r,n,i,e}};if(r)e:{var n=k;t=t.split(".");for(var i=0;i<t.length-1;i++){var P=t[i];if(!(P in n))break e;n=n[P]}(r=r(i=n[t=t[t.length-1]]))!=i&&null!=r&&N(n,t,{configurable:!0,writable:!0,value:r})}var U=U||{},R=this||self;function B(e){var t=typeof e;return"array"==(t="object"!=t?t:e?Array.isArray(e)?"array":t:"null")||"object"==t&&"number"==typeof e.length}function u(e){var t=typeof e;return"object"==t&&null!=e||"function"==t}function q(e,t,r){return e.call.apply(e.bind,arguments)}function j(t,r,e){var n;if(t)return 2<arguments.length?(n=Array.prototype.slice.call(arguments,2),function(){var e=Array.prototype.slice.call(arguments);return Array.prototype.unshift.apply(e,n),t.apply(r,e)}):function(){return t.apply(r,arguments)};throw Error()}function p(e,t,r){return(p=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?q:j).apply(null,arguments)}function z(t){var r=Array.prototype.slice.call(arguments,1);return function(){var e=r.slice();return e.push.apply(e,arguments),t.apply(this,e)}}function s(e,s){function t(){}t.prototype=s.prototype,e.aa=s.prototype,e.prototype=new t,(e.prototype.constructor=e).Qb=function(e,t,r){for(var n=Array(arguments.length-2),i=2;i<arguments.length;i++)n[i-2]=arguments[i];return s.prototype[t].apply(e,n)}}function G(t){var r=t.length;if(0<r){var n=Array(r);for(let e=0;e<r;e++)n[e]=t[e];return n}return[]}function K(t){for(let e=1;e<arguments.length;e++){var r=arguments[e];if(B(r)){var n=t.length||0,i=r.length||0;t.length=n+i;for(let e=0;e<i;e++)t[n+e]=r[e]}else t.push(r)}}function L(e){return/^[\s\xa0]*$/.test(e)}function a(){var e=R.navigator;return(e=e&&e.userAgent)||""}function Q(e){return Q[" "](e),e}Q[" "]=function(){};var $=!(-1==a().indexOf("Gecko")||-1!=a().toLowerCase().indexOf("webkit")&&-1==a().indexOf("Edge")||-1!=a().indexOf("Trident")||-1!=a().indexOf("MSIE")||-1!=a().indexOf("Edge"));function H(e,t,r){for(var n in e)t.call(r,e[n],n,e)}function W(e){var t,r={};for(t in e)r[t]=e[t];return r}let Y="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function X(t){let r,n;for(let i=1;i<arguments.length;i++){for(r in n=arguments[i])t[r]=n[r];for(let e=0;e<Y.length;e++)r=Y[e],Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}}var J=new class{constructor(e,t){this.i=e,this.j=t,this.h=0,this.g=null}get(){let e;return 0<this.h?(this.h--,e=this.g,this.g=e.next,e.next=null):e=this.i(),e}}(()=>new Z,e=>e.reset());class Z{constructor(){this.next=this.g=this.h=null}set(e,t){this.h=e,this.g=t,this.next=null}reset(){this.next=this.g=this.h=null}}let o,l=!1,ee=new class{constructor(){this.h=this.g=null}add(e,t){var r=J.get();r.set(e,t),this.h?this.h.next=r:this.g=r,this.h=r}},te=()=>{let e=R.Promise.resolve(void 0);o=()=>{e.then(re)}};var re=()=>{for(var e;e=(()=>{let e=ee,t=null;return e.g&&(t=e.g,e.g=e.g.next,e.g||(e.h=null),t.next=null),t})();){try{e.h.call(e.g)}catch(e){(e=>{R.setTimeout(()=>{throw e},0)})(e)}var t=J;t.j(e),t.h<100&&(t.h++,e.next=t.g,t.g=e)}l=!1};function h(){this.s=this.s,this.C=this.C}function c(e,t){this.type=e,this.g=this.target=t,this.defaultPrevented=!1}h.prototype.s=!1,h.prototype.ma=function(){this.s||(this.s=!0,this.N())},h.prototype.N=function(){if(this.C)for(;this.C.length;)this.C.shift()()},c.prototype.h=function(){this.defaultPrevented=!0};var ne=(()=>{if(!R.addEventListener||!Object.defineProperty)return!1;var e=!1,t=Object.defineProperty({},"passive",{get:function(){e=!0}});try{var r=()=>{};R.addEventListener("test",r,t),R.removeEventListener("test",r,t)}catch(e){}return e})();function d(e,t){if(c.call(this,e?e.type:""),this.relatedTarget=this.g=this.target=null,this.button=this.screenY=this.screenX=this.clientY=this.clientX=0,this.key="",this.metaKey=this.shiftKey=this.altKey=this.ctrlKey=!1,this.state=null,this.pointerId=0,this.pointerType="",this.i=null,e){var r=this.type=e.type,n=e.changedTouches&&e.changedTouches.length?e.changedTouches[0]:null;if(this.target=e.target||e.srcElement,this.g=t,t=e.relatedTarget){if($){e:{try{Q(t.nodeName);var i=!0;break e}catch(e){}i=!1}i||(t=null)}}else"mouseover"==r?t=e.fromElement:"mouseout"==r&&(t=e.toElement);this.relatedTarget=t,n?(this.clientX=void 0!==n.clientX?n.clientX:n.pageX,this.clientY=void 0!==n.clientY?n.clientY:n.pageY,this.screenX=n.screenX||0,this.screenY=n.screenY||0):(this.clientX=void 0!==e.clientX?e.clientX:e.pageX,this.clientY=void 0!==e.clientY?e.clientY:e.pageY,this.screenX=e.screenX||0,this.screenY=e.screenY||0),this.button=e.button,this.key=e.key||"",this.ctrlKey=e.ctrlKey,this.altKey=e.altKey,this.shiftKey=e.shiftKey,this.metaKey=e.metaKey,this.pointerId=e.pointerId||0,this.pointerType="string"==typeof e.pointerType?e.pointerType:ie[e.pointerType]||"",this.state=e.state,(this.i=e).defaultPrevented&&d.aa.h.call(this)}}s(d,c);var ie={2:"touch",3:"pen",4:"mouse"},f=(d.prototype.h=function(){d.aa.h.call(this);var e=this.i;e.preventDefault?e.preventDefault():e.returnValue=!1},"closure_listenable_"+(1e6*Math.random()|0)),se=0;function ae(e,t,r,n,i){this.listener=e,this.proxy=null,this.src=t,this.type=r,this.capture=!!n,this.ha=i,this.key=++se,this.da=this.fa=!1}function oe(e){e.da=!0,e.listener=null,e.proxy=null,e.src=null,e.ha=null}function le(e){this.src=e,this.g={},this.h=0}function ue(e,t){var r,n,i,s=t.type;s in e.g&&(r=e.g[s],(i=0<=(n=Array.prototype.indexOf.call(r,t,void 0)))&&Array.prototype.splice.call(r,n,1),i)&&(oe(t),0==e.g[s].length)&&(delete e.g[s],e.h--)}function he(e,t,r,n){for(var i=0;i<e.length;++i){var s=e[i];if(!s.da&&s.listener==t&&s.capture==!!r&&s.ha==n)return i}return-1}le.prototype.add=function(e,t,r,n,i){var s=e.toString(),a=((e=this.g[s])||(e=this.g[s]=[],this.h++),he(e,t,n,i));return-1<a?(t=e[a],r||(t.fa=!1)):((t=new ae(t,this.src,s,!!n,i)).fa=r,e.push(t)),t};var ce="closure_lm_"+(1e6*Math.random()|0),de={};function fe(e,t,r,n,i){if(n&&n.once)return function e(t,r,n,i,s){if(Array.isArray(r)){for(var a=0;a<r.length;a++)e(t,r[a],n,i,s);return null}n=_e(n);return t&&t[f]?t.L(r,n,u(i)?!!i.capture:!!i,s):ge(t,r,n,!0,i,s)}(e,t,r,n,i);if(Array.isArray(t)){for(var s=0;s<t.length;s++)fe(e,t[s],r,n,i);return null}return r=_e(r),e&&e[f]?e.K(t,r,u(n)?!!n.capture:!!n,i):ge(e,t,r,!1,n,i)}function ge(e,t,r,n,i,s){if(!t)throw Error("Invalid event type");var a=u(i)?!!i.capture:!!i,o=ve(e);if(o||(e[ce]=o=new le(e)),!(r=o.add(t,r,n,a,s)).proxy)if(n=(()=>{let r=ye;return function e(t){return r.call(e.src,e.listener,t)}})(),(r.proxy=n).src=e,n.listener=r,e.addEventListener)void 0===(i=ne?i:a)&&(i=!1),e.addEventListener(t.toString(),n,i);else if(e.attachEvent)e.attachEvent(pe(t.toString()),n);else{if(!e.addListener||!e.removeListener)throw Error("addEventListener and attachEvent are unavailable.");e.addListener(n)}return r}function me(e){var t,r,n;"number"!=typeof e&&e&&!e.da&&((t=e.src)&&t[f]?ue(t.i,e):(r=e.type,n=e.proxy,t.removeEventListener?t.removeEventListener(r,n,e.capture):t.detachEvent?t.detachEvent(pe(r),n):t.addListener&&t.removeListener&&t.removeListener(n),(r=ve(t))?(ue(r,e),0==r.h&&(r.src=null,t[ce]=null)):oe(e)))}function pe(e){return e in de?de[e]:de[e]="on"+e}function ye(e,t){var r,n;return e=!!e.da||(t=new d(t,this),r=e.listener,n=e.ha||e.src,e.fa&&me(e),r.call(n,t))}function ve(e){return(e=e[ce])instanceof le?e:null}var we="__closure_events_fn_"+(1e9*Math.random()>>>0);function _e(t){return"function"==typeof t?t:(t[we]||(t[we]=function(e){return t.handleEvent(e)}),t[we])}function g(){h.call(this),this.i=new le(this),(this.M=this).F=null}function m(e,t){var r,n=e.F;if(n)for(r=[];n;n=n.F)r.push(n);if(e=e.M,n=t.type||t,"string"==typeof t?t=new c(t,e):t instanceof c?t.target=t.target||e:(a=t,X(t=new c(n,e),a)),a=!0,r)for(var i=r.length-1;0<=i;i--)var s=t.g=r[i],a=be(s,n,!0,t)&&a;if(a=be(s=t.g=e,n,!0,t)&&a,a=be(s,n,!1,t)&&a,r)for(i=0;i<r.length;i++)a=be(s=t.g=r[i],n,!1,t)&&a}function be(e,t,r,n){if(!(t=e.i.g[String(t)]))return!0;t=t.concat();for(var i=!0,s=0;s<t.length;++s){var a,o,l=t[s];l&&!l.da&&l.capture==r&&(a=l.listener,o=l.ha||l.src,l.fa&&ue(e.i,l),i=!1!==a.call(o,n)&&i)}return i&&!n.defaultPrevented}function Ie(e,t,r){if("function"==typeof e)r&&(e=p(e,r));else{if(!e||"function"!=typeof e.handleEvent)throw Error("Invalid listener argument");e=p(e.handleEvent,e)}return 2147483647<Number(t)?-1:R.setTimeout(e,t||0)}s(g,h),g.prototype[f]=!0,g.prototype.removeEventListener=function(e,t,r,n){!function e(t,r,n,i,s){if(Array.isArray(r))for(var a=0;a<r.length;a++)e(t,r[a],n,i,s);else i=u(i)?!!i.capture:!!i,n=_e(n),t&&t[f]?(t=t.i,(r=String(r).toString())in t.g&&-1<(n=he(a=t.g[r],n,i,s))&&(oe(a[n]),Array.prototype.splice.call(a,n,1),0==a.length)&&(delete t.g[r],t.h--)):(t=t&&ve(t))&&(r=t.g[r.toString()],n=(t=-1)<(t=r?he(r,n,i,s):t)?r[t]:null)&&me(n)}(this,e,t,r,n)},g.prototype.N=function(){if(g.aa.N.call(this),this.i){var e,t=this.i;for(e in t.g){for(var r=t.g[e],n=0;n<r.length;n++)oe(r[n]);delete t.g[e],t.h--}}this.F=null},g.prototype.K=function(e,t,r,n){return this.i.add(String(e),t,!1,r,n)},g.prototype.L=function(e,t,r,n){return this.i.add(String(e),t,!0,r,n)};class Te extends h{constructor(e,t){super(),this.m=e,this.l=t,this.h=null,this.i=!1,this.g=null}j(e){this.h=arguments,this.g?this.i=!0:function e(t){t.g=Ie(()=>{t.g=null,t.i&&(t.i=!1,e(t))},t.l);var r=t.h;t.h=null,t.m.apply(null,r)}(this)}N(){super.N(),this.g&&(R.clearTimeout(this.g),this.g=null,this.i=!1,this.h=null)}}function y(e){h.call(this),this.h=e,this.g={}}s(y,h);var Ee=[];function Se(e){H(e.g,function(e,t){this.g.hasOwnProperty(t)&&me(e)},e),e.g={}}y.prototype.N=function(){y.aa.N.call(this),Se(this)},y.prototype.handleEvent=function(){throw Error("EventHandler.handleEvent not implemented")};var xe=R.JSON.stringify,Ae=R.JSON.parse,Ce=class{stringify(e){return R.JSON.stringify(e,void 0)}parse(e){return R.JSON.parse(e,void 0)}};function De(){}function Ne(e){return e.h||(e.h=e.i())}function ke(){}De.prototype.h=null;var Re={OPEN:"a",kb:"b",Ja:"c",wb:"d"};function Le(){c.call(this,"d")}function Oe(){c.call(this,"c")}s(Le,c),s(Oe,c);var v={},Me=null;function Ve(){return Me=Me||new g}function Fe(e){c.call(this,v.La,e)}function Pe(){var e=Ve();m(e,new Fe(e))}function Ue(e,t){c.call(this,v.STAT_EVENT,e),this.stat=t}function O(e){var t=Ve();m(t,new Ue(t,e))}function Be(e,t){c.call(this,v.Ma,e),this.size=t}function qe(e,t){if("function"!=typeof e)throw Error("Fn must not be null and must be a function");return R.setTimeout(function(){e()},t)}function je(){this.g=!0}function M(e,t,r,n){e.info(function(){return"XMLHTTP TEXT ("+t+"): "+((e,t)=>{if(!e.g)return t;if(!t)return null;try{var r=JSON.parse(t);if(r)for(e=0;e<r.length;e++)if(Array.isArray(r[e])){var n=r[e];if(!(n.length<2)){var i=n[1];if(Array.isArray(i)&&!(i.length<1)){var s=i[0];if("noop"!=s&&"stop"!=s&&"close"!=s)for(var a=1;a<i.length;a++)i[a]=""}}}return xe(r)}catch(e){return t}})(e,r)+(n?" "+n:"")})}v.La="serverreachability",s(Fe,c),v.STAT_EVENT="statevent",s(Ue,c),v.Ma="timingevent",s(Be,c),je.prototype.xa=function(){this.g=!1},je.prototype.info=function(){};var ze={NO_ERROR:0,gb:1,tb:2,sb:3,nb:4,rb:5,ub:6,Ia:7,TIMEOUT:8,xb:9},Ge={lb:"complete",Hb:"success",Ja:"error",Ia:"abort",zb:"ready",Ab:"readystatechange",TIMEOUT:"timeout",vb:"incrementaldata",yb:"progress",ob:"downloadprogress",Pb:"uploadprogress"};function Ke(){}function w(e,t,r,n){this.j=e,this.i=t,this.l=r,this.R=n||1,this.U=new y(this),this.I=45e3,this.H=null,this.o=!1,this.m=this.A=this.v=this.L=this.F=this.S=this.B=null,this.D=[],this.g=null,this.C=0,this.s=this.u=null,this.X=-1,this.J=!1,this.O=0,this.M=null,this.W=this.K=this.T=this.P=!1,this.h=new Qe}function Qe(){this.i=null,this.g="",this.h=!1}s(Ke,De),Ke.prototype.g=function(){return new XMLHttpRequest},Ke.prototype.i=function(){return{}};var $e=new Ke,He={},We={};function Ye(e,t,r){e.L=1,e.v=yt(b(t)),e.m=r,e.P=!0,Xe(e,null)}function Xe(e,t){e.F=Date.now(),Ze(e),e.A=b(e.v);var r=e.A,n=e.R,i=(Array.isArray(n)||(n=[String(n)]),Nt(r.i,"t",n),e.C=0,r=e.j.J,e.h=new Qe,e.g=cr(e.j,r?t:null,!e.m),0<e.O&&(e.M=new Te(p(e.Y,e,e.g),e.O)),t=e.U,r=e.g,n=e.ca,"readystatechange");Array.isArray(i)||(i&&(Ee[0]=i.toString()),i=Ee);for(var a,o,l,u,h,c,s=0;s<i.length;s++){var d=fe(r,i[s],n||t.handleEvent,!1,t.h||t);if(!d)break;t.g[d.key]=d}t=e.H?W(e.H):{},e.m?(e.u||(e.u="POST"),t["Content-Type"]="application/x-www-form-urlencoded",e.g.ea(e.A,e.u,e.m,t)):(e.u="GET",e.g.ea(e.A,e.u,null,t)),Pe(),a=e.i,o=e.u,l=e.A,u=e.l,h=e.R,c=e.m,a.info(function(){if(a.g)if(c)for(var e="",t=c.split("&"),r=0;r<t.length;r++){var n,i,s=t[r].split("=");1<s.length&&(n=s[0],s=s[1],e=2<=(i=n.split("_")).length&&"type"==i[1]?e+(n+"=")+s+"&":e+(n+"=redacted&"))}else e=null;else e=c;return"XMLHTTP REQ ("+u+") [attempt "+h+"]: "+o+"\n"+l+"\n"+e})}function Je(e){return e.g&&"GET"==e.u&&2!=e.L&&e.j.Ca}function Ze(e){e.S=Date.now()+e.I,et(e,e.I)}function et(e,t){if(null!=e.B)throw Error("WatchDog timer not null");e.B=qe(p(e.ba,e),t)}function tt(e){e.B&&(R.clearTimeout(e.B),e.B=null)}function rt(e){0==e.j.G||e.J||or(e.j,e)}function V(e){tt(e);var t=e.M;t&&"function"==typeof t.ma&&t.ma(),e.M=null,Se(e.U),e.g&&(t=e.g,e.g=null,t.abort(),t.ma())}function nt(e,t){try{var r=e.j;if(0!=r.G&&(r.g==e||lt(r.h,e)))if(!e.K&<(r.h,e)&&3==r.G){try{var n=r.Da.g.parse(t)}catch(e){n=null}if(Array.isArray(n)&&3==n.length){var i=n;if(0==i[0]){e:if(!r.u){if(r.g){if(!(r.g.F+3e3<e.F))break e;ar(r),Yt(r)}nr(r),O(18)}}else r.za=i[1],0<r.za-r.T&&i[2]<37500&&r.F&&0==r.v&&!r.C&&(r.C=qe(p(r.Za,r),6e3));if(ot(r.h)<=1&&r.ca){try{r.ca()}catch(e){}r.ca=void 0}}else A(r,11)}else if(!e.K&&r.g!=e||ar(r),!L(t))for(i=r.Da.g.parse(t),t=0;t<i.length;t++){var s,a,o,l,u,h,c,d,f,g,m=i[t];r.T=m[0],m=m[1],2==r.G?"c"==m[0]?(r.K=m[1],r.ia=m[2],null!=(s=m[3])&&(r.la=s,r.j.info("VER="+r.la)),null!=(a=m[4])&&(r.Aa=a,r.j.info("SVER="+r.Aa)),null!=(o=m[5])&&"number"==typeof o&&0<o&&(n=1.5*o,r.L=n,r.j.info("backChannelRequestTimeoutMs_="+n)),n=r,(l=e.g)&&(!(u=l.g?l.g.getResponseHeader("X-Client-Wire-Protocol"):null)||(h=n.h).g||-1==u.indexOf("spdy")&&-1==u.indexOf("quic")&&-1==u.indexOf("h2")||(h.j=h.l,h.g=new Set,h.h&&(ut(h,h.h),h.h=null)),n.D)&&(c=l.g?l.g.getResponseHeader("X-HTTP-Session-Id"):null)&&(n.ya=c,I(n.I,n.D,c)),r.G=3,r.l&&r.l.ua(),r.ba&&(r.R=Date.now()-e.F,r.j.info("Handshake RTT: "+r.R+"ms")),d=e,(n=r).qa=hr(n,n.J?n.ia:null,n.W),d.K?(ht(n.h,d),f=d,(g=n.L)&&(f.I=g),f.B&&(tt(f),Ze(f)),n.g=d):rr(n),0<r.i.length&&Jt(r)):"stop"!=m[0]&&"close"!=m[0]||A(r,7):3==r.G&&("stop"==m[0]||"close"==m[0]?"stop"==m[0]?A(r,7):Wt(r):"noop"!=m[0]&&r.l&&r.l.ta(m),r.v=0)}Pe()}catch(e){}}w.prototype.ca=function(e){e=e.target;var t=this.M;t&&3==F(e)?t.j():this.Y(e)},w.prototype.Y=function(e){try{if(e==this.g)e:{var t=F(this.g),r=this.g.Ba();this.g.Z();if(!(t<3)&&(3!=t||this.g&&(this.h.h||this.g.oa()||Qt(this.g)))){this.J||4!=t||7==r||Pe(),tt(this);var n=this.g.Z();this.X=n;t:if(Je(this)){var i=Qt(this.g),s=(e="",i.length),a=4==F(this.g);if(!this.h.i){if("undefined"==typeof TextDecoder){V(this),rt(this);var o="";break t}this.h.i=new R.TextDecoder}for(r=0;r<s;r++)this.h.h=!0,e+=this.h.i.decode(i[r],{stream:!(a&&r==s-1)});i.length=0,this.h.g+=e,this.C=0,o=this.h.g}else o=this.g.oa();if(this.o=200==n,S=this.i,x=this.u,A=this.A,C=this.l,D=this.R,N=t,k=n,S.info(function(){return"XMLHTTP RESP ("+C+") [ attempt "+D+"]: "+x+"\n"+A+"\n"+N+" "+k}),this.o){if(this.T&&!this.K){t:{if(this.g){var l,u=this.g;if((l=u.g?u.g.getResponseHeader("X-HTTP-Initial-Response"):null)&&!L(l)){var h=l;break t}}h=null}if(!(n=h)){this.o=!1,this.s=3,O(12),V(this),rt(this);break e}M(this.i,this.l,n,"Initial handshake response via X-HTTP-Initial-Response"),this.K=!0,nt(this,n)}if(this.P){for(var c,d,n=!0;!this.J&&this.C<o.length;){if(I=o,E=T=void 0,T=(b=this).C,(c=-1==(E=I.indexOf("\n",T))?We:(T=Number(I.substring(T,E)),isNaN(T)?He:(E+=1)+T>I.length?We:(I=I.slice(E,E+T),b.C=E+T,I)))==We){4==t&&(this.s=4,O(14),n=!1),M(this.i,this.l,null,"[Incomplete Response]");break}if(c==He){this.s=4,O(15),M(this.i,this.l,o,"[Invalid Chunk]"),n=!1;break}M(this.i,this.l,c,null),nt(this,c)}Je(this)&&0!=this.C&&(this.h.g=this.h.g.slice(this.C),this.C=0),4!=t||0!=o.length||this.h.h||(this.s=1,O(16),n=!1),this.o=this.o&&n,n?0<o.length&&!this.W&&(this.W=!0,(d=this.j).g==this)&&d.ba&&!d.M&&(d.j.info("Great, no buffering proxy detected. Bytes received: "+o.length),ir(d),d.M=!0,O(11)):(M(this.i,this.l,o,"[Invalid Chunked Response]"),V(this),rt(this))}else M(this.i,this.l,o,null),nt(this,o);4==t&&V(this),this.o&&!this.J&&(4==t?or(this.j,this):(this.o=!1,Ze(this)))}else{{var f=this.g;var g,m,p,y={};f=(f.g&&2<=F(f)&&f.g.getAllResponseHeaders()||"").split("\r\n");for(let e=0;e<f.length;e++)L(f[e])||(g=(e=>{for(var t=1,r=(e=e.split(":"),[]);0<t&&e.length;)r.push(e.shift()),t--;return e.length&&r.push(e.join(":")),r})(f[e]),m=g[0],"string"==typeof(g=g[1])&&(g=g.trim(),p=y[m]||[],(y[m]=p).push(g)));var v,w=y,_=function(e){return e.join(", ")};for(v in w)_.call(void 0,w[v],v,w)}400==n&&0<o.indexOf("Unknown SID")?(this.s=3,O(12)):(this.s=0,O(13)),V(this),rt(this)}}}}catch(e){}var b,I,T,E,S,x,A,C,D,N,k},w.prototype.cancel=function(){this.J=!0,V(this)},w.prototype.ba=function(){this.B=null;var e,t,r=Date.now();0<=r-this.S?(e=this.i,t=this.A,e.info(function(){return"TIMEOUT: "+t}),2!=this.L&&(Pe(),O(17)),V(this),this.s=2,rt(this)):et(this,this.S-r)};var it=class{constructor(e,t){this.g=e,this.map=t}};function st(e){this.l=e||10,e=R.PerformanceNavigationTiming?0<(e=R.performance.getEntriesByType("navigation")).length&&("hq"==e[0].nextHopProtocol||"h2"==e[0].nextHopProtocol):!!(R.chrome&&R.chrome.loadTimes&&R.chrome.loadTimes()&&R.chrome.loadTimes().wasFetchedViaSpdy),this.j=e?this.l:1,this.g=null,1<this.j&&(this.g=new Set),this.h=null,this.i=[]}function at(e){return e.h||e.g&&e.g.size>=e.j}function ot(e){return e.h?1:e.g?e.g.size:0}function lt(e,t){return e.h?e.h==t:e.g&&e.g.has(t)}function ut(e,t){e.g?e.g.add(t):e.h=t}function ht(e,t){e.h&&e.h==t?e.h=null:e.g&&e.g.has(t)&&e.g.delete(t)}function ct(t){if(null!=t.h)return t.i.concat(t.h.D);if(null==t.g||0===t.g.size)return G(t.i);{let e=t.i;for(var r of t.g.values())e=e.concat(r.D);return e}}function dt(e,t){if(e.forEach&&"function"==typeof e.forEach)e.forEach(t,void 0);else if(B(e)||"string"==typeof e)Array.prototype.forEach.call(e,t,void 0);else for(var r=(e=>{if(e.na&&"function"==typeof e.na)return e.na();if(!e.V||"function"!=typeof e.V){if("undefined"!=typeof Map&&e instanceof Map)return Array.from(e.keys());if(!("undefined"!=typeof Set&&e instanceof Set)){if(B(e)||"string"==typeof e){var t=[];e=e.length;for(var r=0;r<e;r++)t.push(r)}else for(var n in t=[],r=0,e)t[r++]=n;return t}}})(e),n=(e=>{if(e.V&&"function"==typeof e.V)return e.V();if("undefined"!=typeof Map&&e instanceof Map||"undefined"!=typeof Set&&e instanceof Set)return Array.from(e.values());if("string"==typeof e)return e.split("");if(B(e))for(var t=[],r=e.length,n=0;n<r;n++)t.push(e[n]);else for(n in t=[],r=0,e)t[r++]=e[n];return t})(e),i=n.length,s=0;s<i;s++)t.call(void 0,n[s],r&&r[s],e)}st.prototype.cancel=function(){if(this.i=ct(this),this.h)this.h.cancel(),this.h=null;else if(this.g&&0!==this.g.size){for(var e of this.g.values())e.cancel();this.g.clear()}};var ft=RegExp("^(?:([^:/?#.]+):)?(?://(?:([^\\\\/?#]*)@)?([^\\\\/?#]*?)(?::([0-9]+))?(?=[\\\\/?#]|$))?([^?#]+)?(?:\\?([^#]*))?(?:#([\\s\\S]*))?$");function _(e){var t,r;this.g=this.o=this.j="",this.s=null,this.m=this.l="",this.h=!1,e instanceof _?(this.h=e.h,gt(this,e.j),this.o=e.o,this.g=e.g,mt(this,e.s),this.l=e.l,t=e.i,(r=new At).i=t.i,t.g&&(r.g=new Map(t.g),r.h=t.h),pt(this,r),this.m=e.m):e&&(t=String(e).match(ft))?(this.h=!1,gt(this,t[1]||"",!0),this.o=vt(t[2]||""),this.g=vt(t[3]||"",!0),mt(this,t[4]),this.l=vt(t[5]||"",!0),pt(this,t[6]||"",!0),this.m=vt(t[7]||"")):(this.h=!1,this.i=new At(null,this.h))}function b(e){return new _(e)}function gt(e,t,r){e.j=r?vt(t,!0):t,e.j&&(e.j=e.j.replace(/:$/,""))}function mt(e,t){if(t){if(t=Number(t),isNaN(t)||t<0)throw Error("Bad port number "+t);e.s=t}else e.s=null}function pt(e,t,r){var n,i;t instanceof At?(e.i=t,n=e.i,(i=e.h)&&!n.j&&(T(n),n.i=null,n.g.forEach(function(e,t){var r=t.toLowerCase();t!=r&&(Ct(this,t),Nt(this,r,e))},n)),n.j=i):(r||(t=wt(t,St)),e.i=new At(t,e.h))}function I(e,t,r){e.i.set(t,r)}function yt(e){return I(e,"zx",Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^Date.now()).toString(36)),e}function vt(e,t){return e?t?decodeURI(e.replace(/%25/g,"%2525")):decodeURIComponent(e):""}function wt(e,t,r){return"string"==typeof e?(e=encodeURI(e).replace(t,_t),e=r?e.replace(/%25([0-9a-fA-F]{2})/g,"%$1"):e):null}function _t(e){return"%"+((e=e.charCodeAt(0))>>4&15).toString(16)+(15&e).toString(16)}_.prototype.toString=function(){var e=[],t=this.j,r=(t&&e.push(wt(t,It,!0),":"),this.g);return!r&&"file"!=t||(e.push("//"),(t=this.o)&&e.push(wt(t,It,!0),"@"),e.push(encodeURIComponent(String(r)).replace(/%25([0-9a-fA-F]{2})/g,"%$1")),null==(r=this.s))||e.push(":",String(r)),(r=this.l)&&(this.g&&"/"!=r.charAt(0)&&e.push("/"),e.push(wt(r,"/"==r.charAt(0)?Et:Tt,!0))),(r=this.i.toString())&&e.push("?",r),(r=this.m)&&e.push("#",wt(r,xt)),e.join("")};var bt,It=/[#\/\?@]/g,Tt=/[#\?:]/g,Et=/[#\?]/g,St=/[#\?@]/g,xt=/#/g;function At(e,t){this.h=this.g=null,this.i=e||null,this.j=!!t}function T(r){if(!r.g&&(r.g=new Map,r.h=0,r.i)){var e=r.i,t=function(e,t){r.add(decodeURIComponent(e.replace(/\+/g," ")),t)};if(e){e=e.split("&");for(var n=0;n<e.length;n++){var i,s=e[n].indexOf("="),a=null;0<=s?(i=e[n].substring(0,s),a=e[n].substring(s+1)):i=e[n],t(i,a?decodeURIComponent(a.replace(/\+/g," ")):"")}}}}function Ct(e,t){T(e),t=E(e,t),e.g.has(t)&&(e.i=null,e.h-=e.g.get(t).length,e.g.delete(t))}function Dt(e,t){return T(e),t=E(e,t),e.g.has(t)}function Nt(e,t,r){Ct(e,t),0<r.length&&(e.i=null,e.g.set(E(e,t),G(r)),e.h+=r.length)}function E(e,t){return t=String(t),t=e.j?t.toLowerCase():t}function S(e,t,r,n,i){try{i&&(i.onload=null,i.onerror=null,i.onabort=null,i.ontimeout=null),n(r)}catch(e){}}function kt(){this.g=new Ce}function Rt(e){this.l=e.Ub||null,this.j=e.eb||!1}function Lt(e,t){g.call(this),this.D=e,this.o=t,this.m=void 0,this.status=this.readyState=0,this.responseType=this.responseText=this.response=this.statusText="",this.onreadystatechange=null,this.u=new Headers,this.h=null,this.B="GET",this.A="",this.g=!1,this.v=this.j=this.l=null}function Ot(e){e.j.read().then(e.Pa.bind(e)).catch(e.ga.bind(e))}function Mt(e){e.readyState=4,e.l=null,e.j=null,e.v=null,Vt(e)}function Vt(e){e.onreadystatechange&&e.onreadystatechange.call(e)}function Ft(e){let r="";return H(e,function(e,t){r=(r=r+t+":")+e+"\r\n"}),r}function Pt(e,t,r){e:{for(n in r){var n=!1;break e}n=!0}n||(r=Ft(r),"string"==typeof e?null!=r&&encodeURIComponent(String(r)):I(e,t,r))}function x(e){g.call(this),this.headers=new Map,this.o=e||null,this.h=!1,this.v=this.g=null,this.D="",this.m=0,this.l="",this.j=this.B=this.u=this.A=!1,this.I=null,this.H="",this.J=!1}(e=At.prototype).add=function(e,t){T(this),this.i=null,e=E(this,e);var r=this.g.get(e);return r||this.g.set(e,r=[]),r.push(t),this.h+=1,this},e.forEach=function(r,n){T(this),this.g.forEach(function(e,t){e.forEach(function(e){r.call(n,e,t,this)},this)},this)},e.na=function(){T(this);var t=Array.from(this.g.values()),r=Array.from(this.g.keys()),n=[];for(let s=0;s<r.length;s++){var i=t[s];for(let e=0;e<i.length;e++)n.push(r[s])}return n},e.V=function(t){T(this);let r=[];if("string"==typeof t)Dt(this,t)&&(r=r.concat(this.g.get(E(this,t))));else{t=Array.from(this.g.values());for(let e=0;e<t.length;e++)r=r.concat(t[e])}return r},e.set=function(e,t){return T(this),this.i=null,Dt(this,e=E(this,e))&&(this.h-=this.g.get(e).length),this.g.set(e,[t]),this.h+=1,this},e.get=function(e,t){return e&&0<(e=this.V(e)).length?String(e[0]):t},e.toString=function(){if(this.i)return this.i;if(!this.g)return"";for(var e=[],t=Array.from(this.g.keys()),r=0;r<t.length;r++)for(var n=t[r],i=encodeURIComponent(String(n)),s=this.V(n),n=0;n<s.length;n++){var a=i;""!==s[n]&&(a+="="+encodeURIComponent(String(s[n]))),e.push(a)}return this.i=e.join("&")},s(Rt,De),Rt.prototype.g=function(){return new Lt(this.l,this.j)},Rt.prototype.i=(bt={},function(){return bt}),s(Lt,g),(e=Lt.prototype).open=function(e,t){if(0!=this.readyState)throw this.abort(),Error("Error reopening a connection");this.B=e,this.A=t,this.readyState=1,Vt(this)},e.send=function(e){if(1!=this.readyState)throw this.abort(),Error("need to call open() first. ");this.g=!0;var t={headers:this.u,method:this.B,credentials:this.m,cache:void 0};e&&(t.body=e),(this.D||R).fetch(new Request(this.A,t)).then(this.Sa.bind(this),this.ga.bind(this))},e.abort=function(){this.response=this.responseText="",this.u=new Headers,this.status=0,this.j&&this.j.cancel("Request was aborted.").catch(()=>{}),1<=this.readyState&&this.g&&4!=this.readyState&&(this.g=!1,Mt(this)),this.readyState=0},e.Sa=function(e){if(this.g&&(this.l=e,this.h||(this.status=this.l.status,this.statusText=this.l.statusText,this.h=e.headers,this.readyState=2,Vt(this)),this.g)&&(this.readyState=3,Vt(this),this.g))if("arraybuffer"===this.responseType)e.arrayBuffer().then(this.Qa.bind(this),this.ga.bind(this));else if(void 0!==R.ReadableStream&&"body"in e){if(this.j=e.body.getReader(),this.o){if(this.responseType)throw Error('responseType must be empty for "streamBinaryChunks" mode responses.');this.response=[]}else this.response=this.responseText="",this.v=new TextDecoder;Ot(this)}else e.text().then(this.Ra.bind(this),this.ga.bind(this))},e.Pa=function(e){var t;this.g&&(this.o&&e.value?this.response.push(e.value):!this.o&&(t=e.value||new Uint8Array(0),t=this.v.decode(t,{stream:!e.done}))&&(this.response=this.responseText+=t),(e.done?Mt:Vt)(this),3==this.readyState)&&Ot(this)},e.Ra=function(e){this.g&&(this.response=this.responseText=e,Mt(this))},e.Qa=function(e){this.g&&(this.response=e,Mt(this))},e.ga=function(){this.g&&Mt(this)},e.setRequestHeader=function(e,t){this.u.append(e,t)},e.getResponseHeader=function(e){return this.h&&this.h.get(e.toLowerCase())||""},e.getAllResponseHeaders=function(){if(!this.h)return"";for(var e=[],t=this.h.entries(),r=t.next();!r.done;)r=r.value,e.push(r[0]+": "+r[1]),r=t.next();return e.join("\r\n")},Object.defineProperty(Lt.prototype,"withCredentials",{get:function(){return"include"===this.m},set:function(e){this.m=e?"include":"same-origin"}}),s(x,g);var Ut=/^https?$/i,Bt=["POST","PUT"];function qt(e,t){e.h=!1,e.g&&(e.j=!0,e.g.abort(),e.j=!1),e.l=t,e.m=5,jt(e),Gt(e)}function jt(e){e.A||(e.A=!0,m(e,"complete"),m(e,"error"))}function zt(e){if(e.h&&void 0!==U&&(!e.v[1]||4!=F(e)||2!=e.Z()))if(e.u&&4==F(e))Ie(e.Ea,0,e);else if(m(e,"readystatechange"),4==F(e)){e.h=!1;try{var t,r,n,i=e.Z();switch(i){case 200:case 201:case 202:case 204:case 206:case 304:case 1223:var s=!0;break;default:s=!1}if((t=s)||((r=0===i)&&(!(n=String(e.D).match(ft)[1]||null)&&R.self&&R.self.location&&(n=R.self.location.protocol.slice(0,-1)),r=!Ut.test(n?n.toLowerCase():"")),t=r),t)m(e,"complete"),m(e,"success");else{e.m=6;try{var a=2<F(e)?e.g.statusText:""}catch(e){a=""}e.l=a+" ["+e.Z()+"]",jt(e)}}finally{Gt(e)}}}function Gt(e,t){if(e.g){Kt(e);var r=e.g,n=e.v[0]?()=>{}:null;e.g=null,e.v=null,t||m(e,"ready");try{r.onreadystatechange=n}catch(e){}}}function Kt(e){e.I&&(R.clearTimeout(e.I),e.I=null)}function F(e){return e.g?e.g.readyState:0}function Qt(e){try{if(e.g){if("response"in e.g)return e.g.response;switch(e.H){case"":case"text":return e.g.responseText;case"arraybuffer":if("mozResponseArrayBuffer"in e.g)return e.g.mozResponseArrayBuffer}}return null}catch(e){return null}}function $t(e,t,r){return r&&r.internalChannelParams&&r.internalChannelParams[e]||t}function Ht(e){this.Aa=0,this.i=[],this.j=new je,this.ia=this.qa=this.I=this.W=this.g=this.ya=this.D=this.H=this.m=this.S=this.o=null,this.Ya=this.U=0,this.Va=$t("failFast",!1,e),this.F=this.C=this.u=this.s=this.l=null,this.X=!0,this.za=this.T=-1,this.Y=this.v=this.B=0,this.Ta=$t("baseRetryDelayMs",5e3,e),this.cb=$t("retryDelaySeedMs",1e4,e),this.Wa=$t("forwardChannelMaxRetries",2,e),this.wa=$t("forwardChannelRequestTimeoutMs",2e4,e),this.pa=e&&e.xmlHttpFactory||void 0,this.Xa=e&&e.Tb||void 0,this.Ca=e&&e.useFetchStreams||!1,this.L=void 0,this.J=e&&e.supportsCrossDomainXhr||!1,this.K="",this.h=new st(e&&e.concurrentRequestLimit),this.Da=new kt,this.P=e&&e.fastHandshake||!1,this.O=e&&e.encodeInitMessageHeaders||!1,this.P&&this.O&&(this.O=!1),this.Ua=e&&e.Rb||!1,e&&e.xa&&this.j.xa(),e&&e.forceLongPolling&&(this.X=!1),this.ba=!this.P&&this.X&&e&&e.detectBufferingProxy||!1,this.ja=void 0,e&&e.longPollingTimeout&&0<e.longPollingTimeout&&(this.ja=e.longPollingTimeout),this.ca=void 0,this.R=0,this.M=!1,this.ka=this.A=null}function Wt(e){if(Xt(e),3==e.G){var t=e.U++,r=b(e.I);if(I(r,"SID",e.K),I(r,"RID",t),I(r,"TYPE","terminate"),er(e,r),(t=new w(e,e.j,t)).L=2,t.v=yt(b(r)),r=!1,R.navigator&&R.navigator.sendBeacon)try{r=R.navigator.sendBeacon(t.v.toString(),"")}catch(e){}!r&&R.Image&&((new Image).src=t.v,r=!0),r||(t.g=cr(t.j,null),t.g.ea(t.v)),t.F=Date.now(),Ze(t)}ur(e)}function Yt(e){e.g&&(ir(e),e.g.cancel(),e.g=null)}function Xt(e){Yt(e),e.u&&(R.clearTimeout(e.u),e.u=null),ar(e),e.h.cancel(),e.s&&("number"==typeof e.s&&R.clearTimeout(e.s),e.s=null)}function Jt(e){var t;at(e.h)||e.s||(e.s=!0,t=e.Ga,o||te(),l||(o(),l=!0),ee.add(t,e),e.B=0)}function Zt(e,t){var r=t?t.l:e.U++,n=b(e.I);I(n,"SID",e.K),I(n,"RID",r),I(n,"AID",e.T),er(e,n),e.m&&e.o&&Pt(n,e.m,e.o),r=new w(e,e.j,r,e.B+1),null===e.m&&(r.H=e.o),t&&(e.i=t.D.concat(e.i)),t=tr(e,r,1e3),r.I=Math.round(.5*e.wa)+Math.round(.5*e.wa*Math.random()),ut(e.h,r),Ye(r,n,t)}function er(e,r){e.H&&H(e.H,function(e,t){I(r,t,e)}),e.l&&dt({},function(e,t){I(r,t,e)})}function tr(e,t,i){i=Math.min(e.i.length,i);var s=e.l?p(e.l.Na,e.l,e):null;e:{let r=e.i,n=-1;for(;;){var a=["count="+i];-1==n?0<i?(n=r[0].g,a.push("ofs="+n)):n=0:a.push("ofs="+n);let e=!0;for(let t=0;t<i;t++){var o=r[t].g,l=r[t].map;if((o-=n)<0)n=Math.max(0,r[t].g-100),e=!1;else try{((e,n,t)=>{let i=t||"";try{dt(e,function(e,t){let r=e;u(e)&&(r=xe(e)),n.push(i+t+"="+encodeURIComponent(r))})}catch(e){throw n.push(i+"type="+encodeURIComponent("_badmap")),e}})(l,a,"req"+o+"_")}catch(e){s&&s(l)}}if(e){s=a.join("&");break e}}}return e=e.i.splice(0,i),t.D=e,s}function rr(e){var t;e.g||e.u||(e.Y=1,t=e.Fa,o||te(),l||(o(),l=!0),ee.add(t,e),e.v=0)}function nr(e){return!(e.g||e.u||3<=e.v)&&(e.Y++,e.u=qe(p(e.Fa,e),lr(e,e.v)),e.v++,1)}function ir(e){null!=e.A&&(R.clearTimeout(e.A),e.A=null)}function sr(e){e.g=new w(e,e.j,"rpc",e.Y),null===e.m&&(e.g.H=e.o),e.g.O=0;var t=b(e.qa),r=(I(t,"RID","rpc"),I(t,"SID",e.K),I(t,"AID",e.T),I(t,"CI",e.F?"0":"1"),!e.F&&e.ja&&I(t,"TO",e.ja),I(t,"TYPE","xmlhttp"),er(e,t),e.m&&e.o&&Pt(t,e.m,e.o),e.L&&(e.g.I=e.L),e.g);e=e.ia,r.L=1,r.v=yt(b(t)),r.m=null,r.P=!0,Xe(r,e)}function ar(e){null!=e.C&&(R.clearTimeout(e.C),e.C=null)}function or(e,t){var r,n,i,s=null;if(e.g==t){ar(e),ir(e),e.g=null;var a=2}else{if(!lt(e.h,t))return;s=t.D,ht(e.h,t),a=1}if(0!=e.G)if(t.o)(1==a?(s=t.m?t.m.length:0,t=Date.now()-t.F,r=e.B,m(a=Ve(),new Be(a,s)),Jt):rr)(e);else if(3==(r=t.s)||0==r&&0<t.X||(1!=a||(i=t,ot((n=e).h)>=n.h.j-(n.s?1:0))||(n.s?(n.i=i.D.concat(n.i),0):1==n.G||2==n.G||n.B>=(n.Va?0:n.Wa)||(n.s=qe(p(n.Ga,n,i),lr(n,n.B)),n.B++,0)))&&(2!=a||!nr(e)))switch(s&&0<s.length&&(t=e.h,t.i=t.i.concat(s)),r){case 1:A(e,5);break;case 4:A(e,10);break;case 3:A(e,6);break;default:A(e,2)}}function lr(e,t){let r=e.Ta+Math.floor(Math.random()*e.cb);return e.isActive()||(r*=2),r*t}function A(e,t){var r,n,i;e.j.info("Error code "+t),2==t?(r=p(e.fb,e),n=!(i=e.Xa),i=new _(i||"//www.google.com/images/cleardot.gif"),R.location&&"http"==R.location.protocol||gt(i,"https"),yt(i),(n?(t,r)=>{var n=new je;if(R.Image){let e=new Image;e.onload=z(S,n,"TestLoadImage: loaded",!0,r,e),e.onerror=z(S,n,"TestLoadImage: error",!1,r,e),e.onabort=z(S,n,"TestLoadImage: abort",!1,r,e),e.ontimeout=z(S,n,"TestLoadImage: timeout",!1,r,e),R.setTimeout(function(){e.ontimeout&&e.ontimeout()},1e4),e.src=t}else r(!1)}:(e,t)=>{let r=new je,n=new AbortController,i=setTimeout(()=>{n.abort(),S(r,0,!1,t)},1e4);fetch(e,{signal:n.signal}).then(e=>{clearTimeout(i),e.ok?S(r,0,!0,t):S(r,0,!1,t)}).catch(()=>{clearTimeout(i),S(r,0,!1,t)})})(i.toString(),r)):O(2),e.G=0,e.l&&e.l.sa(t),ur(e),Xt(e)}function ur(e){var t;e.G=0,e.ka=[],e.l&&(0==(t=ct(e.h)).length&&0==e.i.length||(K(e.ka,t),K(e.ka,e.i),e.h.i.length=0,G(e.i),e.i.length=0),e.l.ra())}function hr(e,t,r){var n,i,s=r instanceof _?b(r):new _(r);return""!=s.g?(t&&(s.g=t+"."+s.g),mt(s,s.s)):(s=(n=R.location).protocol,t=t?t+"."+n.hostname:n.hostname,n=+n.port,i=new _(null),s&>(i,s),t&&(i.g=t),n&&mt(i,n),r&&(i.l=r),s=i),r=e.D,t=e.ya,r&&t&&I(s,r,t),I(s,"VER",e.la),er(e,s),s}function cr(e,t,r){if(t&&!e.J)throw Error("Can't create secondary domain capable XhrIo object.");return(t=e.Ca&&!e.pa?new x(new Rt({eb:r})):new x(e.pa)).Ha(e.J),t}function dr(){}function fr(){}function C(e,t){g.call(this),this.g=new Ht(t),this.l=e,this.h=t&&t.messageUrlParams||null,e=t&&t.messageHeaders||null,t&&t.clientProtocolHeaderRequired&&(e?e["X-Client-Protocol"]="webchannel":e={"X-Client-Protocol":"webchannel"}),this.g.o=e,e=t&&t.initMessageHeaders||null,t&&t.messageContentType&&(e?e["X-WebChannel-Content-Type"]=t.messageContentType:e={"X-WebChannel-Content-Type":t.messageContentType}),t&&t.va&&(e?e["X-WebChannel-Client-Profile"]=t.va:e={"X-WebChannel-Client-Profile":t.va}),this.g.S=e,(e=t&&t.Sb)&&!L(e)&&(this.g.m=e),this.v=t&&t.supportsCrossDomainXhr||!1,this.u=t&&t.sendRawJson||!1,(t=t&&t.httpSessionIdParam)&&!L(t)&&(this.g.D=t,null!==(e=this.h))&&t in e&&t in(e=this.h)&&delete e[t],this.j=new D(this)}function gr(e){Le.call(this),e.__headers__&&(this.headers=e.__headers__,this.statusCode=e.__status__,delete e.__headers__,delete e.__status__);var t=e.__sm__;if(t){e:{for(var r in t){e=r;break e}e=void 0}(this.i=e)&&(e=this.i,t=null!==t&&e in t?t[e]:void 0),this.data=t}else this.data=e}function mr(){Oe.call(this),this.status=1}function D(e){this.g=e}(e=x.prototype).Ha=function(e){this.J=e},e.ea=function(e,t,r,n){if(this.g)throw Error("[goog.net.XhrIo] Object is active with another request="+this.D+"; newUri="+e);t=t?t.toUpperCase():"GET",this.D=e,this.l="",this.m=0,this.A=!1,this.h=!0,this.g=(this.o||$e).g(),this.v=this.o?Ne(this.o):Ne($e),this.g.onreadystatechange=p(this.Ea,this);try{this.B=!0,this.g.open(t,String(e),!0),this.B=!1}catch(e){return void qt(this,e)}if(e=r||"",r=new Map(this.headers),n)if(Object.getPrototypeOf(n)===Object.prototype)for(var i in n)r.set(i,n[i]);else{if("function"!=typeof n.keys||"function"!=typeof n.get)throw Error("Unknown input type for opt_headers: "+String(n));for(var s of n.keys())r.set(s,n.get(s))}n=Array.from(r.keys()).find(e=>"content-type"==e.toLowerCase()),i=R.FormData&&e instanceof R.FormData,0<=Array.prototype.indexOf.call(Bt,t,void 0)&&!n&&!i&&r.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8");for(var[a,o]of r)this.g.setRequestHeader(a,o);this.H&&(this.g.responseType=this.H),"withCredentials"in this.g&&this.g.withCredentials!==this.J&&(this.g.withCredentials=this.J);try{Kt(this),this.u=!0,this.g.send(e),this.u=!1}catch(e){qt(this,e)}},e.abort=function(e){this.g&&this.h&&(this.h=!1,this.j=!0,this.g.abort(),this.j=!1,this.m=e||7,m(this,"complete"),m(this,"abort"),Gt(this))},e.N=function(){this.g&&(this.h&&(this.h=!1,this.j=!0,this.g.abort(),this.j=!1),Gt(this,!0)),x.aa.N.call(this)},e.Ea=function(){this.s||(this.B||this.u||this.j?zt(this):this.bb())},e.bb=function(){zt(this)},e.isActive=function(){return!!this.g},e.Z=function(){try{return 2<F(this)?this.g.status:-1}catch(e){return-1}},e.oa=function(){try{return this.g?this.g.responseText:""}catch(e){return""}},e.Oa=function(e){var t;if(this.g)return t=this.g.responseText,e&&0==t.indexOf(e)&&(t=t.substring(e.length)),Ae(t)},e.Ba=function(){return this.m},e.Ka=function(){return"string"==typeof this.l?this.l:String(this.l)},(e=Ht.prototype).la=8,e.G=1,e.connect=function(e,t,r,n){O(0),this.W=e,this.H=t||{},r&&void 0!==n&&(this.H.OSID=r,this.H.OAID=n),this.F=this.X,this.I=hr(this,null,this.W),Jt(this)},e.Ga=function(t){if(this.s)if(this.s=null,1==this.G){if(!t){this.U=Math.floor(1e5*Math.random()),t=this.U++;var r=new w(this,this.j,t);let e=this.o;if(this.S&&(e?X(e=W(e),this.S):e=this.S),null!==this.m||this.O||(r.H=e,e=null),this.P)e:{for(var n=0,i=0;i<this.i.length;i++){var s=this.i[i];if("__data__"in s.map&&"string"==typeof(s=s.map.__data__)?s=s.length:s=void 0,void 0===s)break;if(4096<(n+=s)){n=i;break e}if(4096===n||i===this.i.length-1){n=i+1;break e}}n=1e3}else n=1e3;n=tr(this,r,n),I(i=b(this.I),"RID",t),I(i,"CVER",22),this.D&&I(i,"X-HTTP-Session-Id",this.D),er(this,i),e&&(this.O?n="headers="+encodeURIComponent(String(Ft(e)))+"&"+n:this.m&&Pt(i,this.m,e)),ut(this.h,r),this.Ua&&I(i,"TYPE","init"),this.P?(I(i,"$req",n),I(i,"SID","null"),r.T=!0,Ye(r,i,null)):Ye(r,i,n),this.G=2}}else 3==this.G&&(t?Zt(this,t):0==this.i.length||at(this.h)||Zt(this))},e.Fa=function(){var e;this.u=null,sr(this),this.ba&&!(this.M||null==this.g||this.R<=0)&&(e=2*this.R,this.j.info("BP detection timer enabled: "+e),this.A=qe(p(this.ab,this),e))},e.ab=function(){this.A&&(this.A=null,this.j.info("BP detection timeout reached."),this.j.info("Buffering proxy detected and switch to long-polling!"),this.F=!1,this.M=!0,O(10),Yt(this),sr(this))},e.Za=function(){null!=this.C&&(this.C=null,Yt(this),nr(this),O(19))},e.fb=function(e){e?(this.j.info("Successfully pinged google.com"),O(2)):(this.j.info("Failed to ping google.com"),O(1))},e.isActive=function(){return!!this.l&&this.l.isActive(this)},(e=dr.prototype).ua=function(){},e.ta=function(){},e.sa=function(){},e.ra=function(){},e.isActive=function(){return!0},e.Na=function(){},fr.prototype.g=function(e,t){return new C(e,t)},s(C,g),C.prototype.m=function(){this.g.l=this.j,this.v&&(this.g.J=!0),this.g.connect(this.l,this.h||void 0)},C.prototype.close=function(){Wt(this.g)},C.prototype.o=function(e){var t,r=this.g;"string"==typeof e?((t={}).__data__=e,e=t):this.u&&((t={}).__data__=xe(e),e=t),r.i.push(new it(r.Ya++,e)),3==r.G&&Jt(r)},C.prototype.N=function(){this.g.l=null,delete this.j,Wt(this.g),delete this.g,C.aa.N.call(this)},s(gr,Le),s(mr,Oe),s(D,dr),D.prototype.ua=function(){m(this.g,"a")},D.prototype.ta=function(e){m(this.g,new gr(e))},D.prototype.sa=function(e){m(this.g,new mr)},D.prototype.ra=function(){m(this.g,"b")},fr.prototype.createWebChannel=fr.prototype.g,C.prototype.send=C.prototype.o,C.prototype.open=C.prototype.m,Tr=function(){return new fr},Ir=Ve,br=v,_r={mb:0,pb:1,qb:2,Jb:3,Ob:4,Lb:5,Mb:6,Kb:7,Ib:8,Nb:9,PROXY:10,NOPROXY:11,Gb:12,Cb:13,Db:14,Bb:15,Eb:16,Fb:17,ib:18,hb:19,jb:20},ze.NO_ERROR=0,ze.TIMEOUT=8,ze.HTTP_ERROR=6,wr=ze,Ge.COMPLETE="complete",vr=Ge,(ke.EventType=Re).OPEN="a",Re.CLOSE="b",Re.ERROR="c",Re.MESSAGE="d",g.prototype.listen=g.prototype.K,yr=ke,x.prototype.listenOnce=x.prototype.L,x.prototype.getLastError=x.prototype.Ka,x.prototype.getLastErrorCode=x.prototype.Ba,x.prototype.getStatus=x.prototype.Z,x.prototype.getResponseJson=x.prototype.Oa,x.prototype.getResponseText=x.prototype.oa,x.prototype.send=x.prototype.ea,x.prototype.setWithCredentials=x.prototype.Ha,pr=x}).apply(void 0!==Er?Er:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{});let he="@firebase/firestore",ce="4.7.10";class u{constructor(e){this.uid=e}isAuthenticated(){return null!=this.uid}toKey(){return this.isAuthenticated()?"uid:"+this.uid:"anonymous-user"}isEqual(e){return e.uid===this.uid}}u.UNAUTHENTICATED=new u(null),u.GOOGLE_CREDENTIALS=new u("google-credentials-uid"),u.FIRST_PARTY=new u("first-party-uid"),u.MOCK_USER=new u("mock-user");let de="11.5.0",fe=new class{constructor(e){this.name=e,this._logLevel=ie,this._logHandler=ae,this._userLogHandler=null}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in c))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?ne[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,c.DEBUG,...e),this._logHandler(this,c.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,c.VERBOSE,...e),this._logHandler(this,c.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,c.INFO,...e),this._logHandler(this,c.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,c.WARN,...e),this._logHandler(this,c.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,c.ERROR,...e),this._logHandler(this,c.ERROR,...e)}}("@firebase/firestore");function ge(){return fe.logLevel}function p(e,...t){var r;fe.logLevel<=c.DEBUG&&(r=t.map(pe),fe.debug(`Firestore (${de}): `+e,...r))}function d(e,...t){var r;fe.logLevel<=c.ERROR&&(r=t.map(pe),fe.error(`Firestore (${de}): `+e,...r))}function me(e,...t){var r;fe.logLevel<=c.WARN&&(r=t.map(pe),fe.warn(`Firestore (${de}): `+e,...r))}function pe(t){if("string"==typeof t)return t;try{return JSON.stringify(t)}catch(e){return t}}function T(e="Unexpected state"){var t=`FIRESTORE (${de}) INTERNAL ASSERTION FAILED: `+e;throw d(t),new Error(t)}function y(e){e||T()}let b={OK:"ok",CANCELLED:"cancelled",UNKNOWN:"unknown",INVALID_ARGUMENT:"invalid-argument",DEADLINE_EXCEEDED:"deadline-exceeded",NOT_FOUND:"not-found",ALREADY_EXISTS:"already-exists",PERMISSION_DENIED:"permission-denied",UNAUTHENTICATED:"unauthenticated",RESOURCE_EXHAUSTED:"resource-exhausted",FAILED_PRECONDITION:"failed-precondition",ABORTED:"aborted",OUT_OF_RANGE:"out-of-range",UNIMPLEMENTED:"unimplemented",INTERNAL:"internal",UNAVAILABLE:"unavailable",DATA_LOSS:"data-loss"};class I extends X{constructor(e,t){super(e,t),this.code=e,this.message=t,this.toString=()=>`${this.name}: [code=${this.code}]: `+this.message}}class f{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}}class ye{constructor(e,t){this.user=t,this.type="OAuth",this.headers=new Map,this.headers.set("Authorization","Bearer "+e)}}class ve{getToken(){return Promise.resolve(null)}invalidateToken(){}start(e,t){e.enqueueRetryable(()=>t(u.UNAUTHENTICATED))}shutdown(){}}class we{constructor(e){this.token=e,this.changeListener=null}getToken(){return Promise.resolve(this.token)}invalidateToken(){}start(e,t){this.changeListener=t,e.enqueueRetryable(()=>t(this.token.user))}shutdown(){this.changeListener=null}}class _e{constructor(e){this.t=e,this.currentUser=u.UNAUTHENTICATED,this.i=0,this.forceRefresh=!1,this.auth=null}start(t,r){y(void 0===this.o);let n=this.i,i=e=>this.i!==n?(n=this.i,r(e)):Promise.resolve(),s=new f,a=(this.o=()=>{this.i++,this.currentUser=this.u(),s.resolve(),s=new f,t.enqueueRetryable(()=>i(this.currentUser))},()=>{let e=s;t.enqueueRetryable(async()=>{await e.promise,await i(this.currentUser)})}),o=e=>{p("FirebaseAuthCredentialsProvider","Auth detected"),this.auth=e,this.o&&(this.auth.addAuthTokenListener(this.o),a())};this.t.onInit(e=>o(e)),setTimeout(()=>{var e;this.auth||((e=this.t.getImmediate({optional:!0}))?o(e):(p("FirebaseAuthCredentialsProvider","Auth not yet detected"),s.resolve(),s=new f))},0),a()}getToken(){let t=this.i,e=this.forceRefresh;return this.forceRefresh=!1,this.auth?this.auth.getToken(e).then(e=>this.i!==t?(p("FirebaseAuthCredentialsProvider","getToken aborted due to token change."),this.getToken()):e?(y("string"==typeof e.accessToken),new ye(e.accessToken,this.currentUser)):null):Promise.resolve(null)}invalidateToken(){this.forceRefresh=!0}shutdown(){this.auth&&this.o&&this.auth.removeAuthTokenListener(this.o),this.o=void 0}u(){var e=this.auth&&this.auth.getUid();return y(null===e||"string"==typeof e),new u(e)}}class be{constructor(e,t,r){this.l=e,this.h=t,this.P=r,this.type="FirstParty",this.user=u.FIRST_PARTY,this.T=new Map}I(){return this.P?this.P():null}get headers(){this.T.set("X-Goog-AuthUser",this.l);var e=this.I();return e&&this.T.set("Authorization",e),this.h&&this.T.set("X-Goog-Iam-Authorization-Token",this.h),this.T}}class Ie{constructor(e,t,r){this.l=e,this.h=t,this.P=r}getToken(){return Promise.resolve(new be(this.l,this.h,this.P))}start(e,t){e.enqueueRetryable(()=>t(u.FIRST_PARTY))}shutdown(){}invalidateToken(){}}class Te{constructor(e){this.value=e,this.type="AppCheck",this.headers=new Map,e&&0<e.length&&this.headers.set("x-firebase-appcheck",this.value)}}class Ee{constructor(e,t){this.A=t,this.forceRefresh=!1,this.appCheck=null,this.R=null,this.V=null,Od._isFirebaseServerApp(e)&&e.settings.appCheckToken&&(this.V=e.settings.appCheckToken)}start(t,r){y(void 0===this.o);let n=e=>{null!=e.error&&p("FirebaseAppCheckTokenProvider","Error getting App Check token; using placeholder token instead. Error: "+e.error.message);var t=e.token!==this.R;return this.R=e.token,p("FirebaseAppCheckTokenProvider",`Received ${t?"new":"existing"} token.`),t?r(e.token):Promise.resolve()},i=(this.o=e=>{t.enqueueRetryable(()=>n(e))},e=>{p("FirebaseAppCheckTokenProvider","AppCheck detected"),this.appCheck=e,this.o&&this.appCheck.addTokenListener(this.o)});this.A.onInit(e=>i(e)),setTimeout(()=>{var e;this.appCheck||((e=this.A.getImmediate({optional:!0}))?i(e):p("FirebaseAppCheckTokenProvider","AppCheck not yet detected"))},0)}getToken(){var e;return this.V?Promise.resolve(new Te(this.V)):(e=this.forceRefresh,this.forceRefresh=!1,this.appCheck?this.appCheck.getToken(e).then(e=>e?(y("string"==typeof e.token),this.R=e.token,new Te(e.token)):null):Promise.resolve(null))}invalidateToken(){this.forceRefresh=!0}shutdown(){this.appCheck&&this.o&&this.appCheck.removeTokenListener(this.o),this.o=void 0}}function Se(){return new TextEncoder}class xe{static newId(){var t=62*Math.floor(256/62);let r="";for(;r.length<20;){var n=(t=>{var r="undefined"!=typeof self&&(self.crypto||self.msCrypto),n=new Uint8Array(t);if(r&&"function"==typeof r.getRandomValues)r.getRandomValues(n);else for(let e=0;e<t;e++)n[e]=Math.floor(256*Math.random());return n})(40);for(let e=0;e<n.length;++e)r.length<20&&n[e]<t&&(r+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".charAt(n[e]%62))}return r}}function E(e,t){return e<t?-1:t<e?1:0}function Ae(e,t){let r=0;for(;r<e.length&&r<t.length;){var n,i=e.codePointAt(r),s=t.codePointAt(r);if(i!==s)return!(i<128&&s<128)&&0!==(n=((e,t)=>{for(let r=0;r<e.length&&r<t.length;++r)if(e[r]!==t[r])return E(e[r],t[r]);return E(e.length,t.length)})((n=Se()).encode(Ce(e,r)),n.encode(Ce(t,r))))?n:E(i,s);r+=65535<i?2:1}return E(e.length,t.length)}function Ce(e,t){return 65535<e.codePointAt(t)?e.substring(t,t+2):e.substring(t,t+1)}function De(e,r,n){return e.length===r.length&&e.every((e,t)=>n(e,r[t]))}function Ne(e){return e+"\0"}let ke=-62135596800;class h{static now(){return h.fromMillis(Date.now())}static fromDate(e){return h.fromMillis(e.getTime())}static fromMillis(e){var t=Math.floor(e/1e3),r=Math.floor(1e6*(e-1e3*t));return new h(t,r)}constructor(e,t){if(this.seconds=e,(this.nanoseconds=t)<0)throw new I(b.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+t);if(1e9<=t)throw new I(b.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+t);if(e<ke)throw new I(b.INVALID_ARGUMENT,"Timestamp seconds out of range: "+e);if(253402300800<=e)throw new I(b.INVALID_ARGUMENT,"Timestamp seconds out of range: "+e)}toDate(){return new Date(this.toMillis())}toMillis(){return 1e3*this.seconds+this.nanoseconds/1e6}_compareTo(e){return this.seconds===e.seconds?E(this.nanoseconds,e.nanoseconds):E(this.seconds,e.seconds)}isEqual(e){return e.seconds===this.seconds&&e.nanoseconds===this.nanoseconds}toString(){return"Timestamp(seconds="+this.seconds+", nanoseconds="+this.nanoseconds+")"}toJSON(){return{seconds:this.seconds,nanoseconds:this.nanoseconds}}valueOf(){var e=this.seconds-ke;return String(e).padStart(12,"0")+"."+String(this.nanoseconds).padStart(9,"0")}}class g{static fromTimestamp(e){return new g(e)}static min(){return new g(new h(0,0))}static max(){return new g(new h(253402300799,999999999))}constructor(e){this.timestamp=e}compareTo(e){return this.timestamp._compareTo(e.timestamp)}isEqual(e){return this.timestamp.isEqual(e.timestamp)}toMicroseconds(){return 1e6*this.timestamp.seconds+this.timestamp.nanoseconds/1e3}toString(){return"SnapshotVersion("+this.timestamp.toString()+")"}toTimestamp(){return this.timestamp}}let Re="__name__";class Le{constructor(e,t,r){void 0===t?t=0:t>e.length&&T(),void 0===r?r=e.length-t:r>e.length-t&&T(),this.segments=e,this.offset=t,this.len=r}get length(){return this.len}isEqual(e){return 0===Le.comparator(this,e)}child(e){let t=this.segments.slice(this.offset,this.limit());return e instanceof Le?e.forEach(e=>{t.push(e)}):t.push(e),this.construct(t)}limit(){return this.offset+this.length}popFirst(e){return this.construct(this.segments,this.offset+(e=void 0===e?1:e),this.length-e)}popLast(){return this.construct(this.segments,this.offset,this.length-1)}firstSegment(){return this.segments[this.offset]}lastSegment(){return this.get(this.length-1)}get(e){return this.segments[this.offset+e]}isEmpty(){return 0===this.length}isPrefixOf(e){if(e.length<this.length)return!1;for(let t=0;t<this.length;t++)if(this.get(t)!==e.get(t))return!1;return!0}isImmediateParentOf(e){if(this.length+1!==e.length)return!1;for(let t=0;t<this.length;t++)if(this.get(t)!==e.get(t))return!1;return!0}forEach(e){for(let t=this.offset,r=this.limit();t<r;t++)e(this.segments[t])}toArray(){return this.segments.slice(this.offset,this.limit())}static comparator(t,r){let e=Math.min(t.length,r.length);for(let n=0;n<e;n++){let e=Le.compareSegments(t.get(n),r.get(n));if(0!==e)return e}return E(t.length,r.length)}static compareSegments(e,t){var r=Le.isNumericId(e),n=Le.isNumericId(t);return r&&!n?-1:!r&&n?1:r&&n?Le.extractNumericId(e).compare(Le.extractNumericId(t)):Ae(e,t)}static isNumericId(e){return e.startsWith("__id")&&e.endsWith("__")}static extractNumericId(e){return oe.fromString(e.substring(4,e.length-2))}}class S extends Le{construct(e,t,r){return new S(e,t,r)}canonicalString(){return this.toArray().join("/")}toString(){return this.canonicalString()}toUriEncodedString(){return this.toArray().map(encodeURIComponent).join("/")}static fromString(...e){var t,r=[];for(t of e){if(0<=t.indexOf("//"))throw new I(b.INVALID_ARGUMENT,`Invalid segment (${t}). Paths must not contain // in them.`);r.push(...t.split("/").filter(e=>0<e.length))}return new S(r)}static emptyPath(){return new S([])}}let Oe=/^[_a-zA-Z][_a-zA-Z0-9]*$/;class v extends Le{construct(e,t,r){return new v(e,t,r)}static isValidIdentifier(e){return Oe.test(e)}canonicalString(){return this.toArray().map(e=>(e=e.replace(/\\/g,"\\\\").replace(/`/g,"\\`"),e=v.isValidIdentifier(e)?e:"`"+e+"`")).join(".")}toString(){return this.canonicalString()}isKeyField(){return 1===this.length&&this.get(0)===Re}static keyField(){return new v([Re])}static fromServerFormat(t){let e=[],r="",n=0;var i=()=>{if(0===r.length)throw new I(b.INVALID_ARGUMENT,`Invalid field path (${t}). Paths must not be empty, begin with '.', end with '.', or contain '..'`);e.push(r),r=""};let s=!1;for(;n<t.length;){let e=t[n];if("\\"===e){if(n+1===t.length)throw new I(b.INVALID_ARGUMENT,"Path has trailing escape character: "+t);let e=t[n+1];if("\\"!==e&&"."!==e&&"`"!==e)throw new I(b.INVALID_ARGUMENT,"Path has invalid escape sequence: "+t);r+=e,n+=2}else"`"===e?s=!s:"."!==e||s?r+=e:i(),n++}if(i(),s)throw new I(b.INVALID_ARGUMENT,"Unterminated ` in path: "+t);return new v(e)}static emptyPath(){return new v([])}}class x{constructor(e){this.path=e}static fromPath(e){return new x(S.fromString(e))}static fromName(e){return new x(S.fromString(e).popFirst(5))}static empty(){return new x(S.emptyPath())}get collectionGroup(){return this.path.popLast().lastSegment()}hasCollectionId(e){return 2<=this.path.length&&this.path.get(this.path.length-2)===e}getCollectionGroup(){return this.path.get(this.path.length-2)}getCollectionPath(){return this.path.popLast()}isEqual(e){return null!==e&&0===S.comparator(this.path,e.path)}toString(){return this.path.toString()}static comparator(e,t){return S.comparator(e.path,t.path)}static isDocumentKey(e){return e.length%2==0}static fromSegments(e){return new x(new S(e.slice()))}}let Me=-1;class Ve{constructor(e,t,r,n){this.indexId=e,this.collectionGroup=t,this.fields=r,this.indexState=n}}function Fe(e){return e.fields.find(e=>2===e.kind)}function Pe(e){return e.fields.filter(e=>2!==e.kind)}Ve.UNKNOWN_ID=-1;class Ue{constructor(e,t){this.fieldPath=e,this.kind=t}}class Be{constructor(e,t){this.sequenceNumber=e,this.offset=t}static empty(){return new Be(0,ze.min())}}function qe(e,t){var r=e.toTimestamp().seconds,n=e.toTimestamp().nanoseconds+1,r=g.fromTimestamp(1e9===n?new h(r+1,0):new h(r,n));return new ze(r,x.empty(),t)}function je(e){return new ze(e.readTime,e.key,Me)}class ze{constructor(e,t,r){this.readTime=e,this.documentKey=t,this.largestBatchId=r}static min(){return new ze(g.min(),x.empty(),Me)}static max(){return new ze(g.max(),x.empty(),Me)}}function Ge(e,t){var r=e.readTime.compareTo(t.readTime);return 0!==r||0!==(r=x.comparator(e.documentKey,t.documentKey))?r:E(e.largestBatchId,t.largestBatchId)}let Ke="The current tab is not in the required state to perform this operation. It might be necessary to refresh the browser tab.";class Qe{constructor(){this.onCommittedListeners=[]}addOnCommittedListener(e){this.onCommittedListeners.push(e)}raiseOnCommittedEvent(){this.onCommittedListeners.forEach(e=>e())}}async function $e(e){if(e.code!==b.FAILED_PRECONDITION||e.message!==Ke)throw e;p("LocalStore","Unexpectedly lost primary lease")}class w{constructor(e){this.nextCallback=null,this.catchCallback=null,this.result=void 0,this.error=void 0,this.isDone=!1,this.callbackAttached=!1,e(e=>{this.isDone=!0,this.result=e,this.nextCallback&&this.nextCallback(e)},e=>{this.isDone=!0,this.error=e,this.catchCallback&&this.catchCallback(e)})}catch(e){return this.next(void 0,e)}next(n,i){return this.callbackAttached&&T(),this.callbackAttached=!0,this.isDone?this.error?this.wrapFailure(i,this.error):this.wrapSuccess(n,this.result):new w((t,r)=>{this.nextCallback=e=>{this.wrapSuccess(n,e).next(t,r)},this.catchCallback=e=>{this.wrapFailure(i,e).next(t,r)}})}toPromise(){return new Promise((e,t)=>{this.next(e,t)})}wrapUserFunction(e){try{var t=e();return t instanceof w?t:w.resolve(t)}catch(e){return w.reject(e)}}wrapSuccess(e,t){return e?this.wrapUserFunction(()=>e(t)):w.resolve(t)}wrapFailure(e,t){return e?this.wrapUserFunction(()=>e(t)):w.reject(t)}static resolve(r){return new w((e,t)=>{e(r)})}static reject(r){return new w((e,t)=>{t(r)})}static waitFor(e){return new w((t,r)=>{let n=0,i=0,s=!1;e.forEach(e=>{++n,e.next(()=>{++i,s&&i===n&&t()},e=>r(e))}),s=!0,i===n&&t()})}static or(e){let t=w.resolve(!1);for(let r of e)t=t.next(e=>e?w.resolve(e):r());return t}static forEach(e,r){let n=[];return e.forEach((e,t)=>{n.push(r.call(this,e,t))}),this.waitFor(n)}static mapArray(o,l){return new w((r,n)=>{let i=o.length,s=new Array(i),a=0;for(let e=0;e<i;e++){let t=e;l(o[t]).next(e=>{s[t]=e,++a===i&&r(s)},e=>n(e))}})}static doWhile(n,i){return new w((e,t)=>{let r=()=>{!0===n()?i().next(()=>{r()},t):e()};r()})}}let He="SimpleDb";class We{static open(e,t,r,n){try{return new We(t,e.transaction(n,r))}catch(e){throw new Ze(t,e)}}constructor(r,e){this.action=r,this.transaction=e,this.aborted=!1,this.m=new f,this.transaction.oncomplete=()=>{this.m.resolve()},this.transaction.onabort=()=>{e.error?this.m.reject(new Ze(r,e.error)):this.m.resolve()},this.transaction.onerror=e=>{var t=it(e.target.error);this.m.reject(new Ze(r,t))}}get p(){return this.m.promise}abort(e){e&&this.m.reject(e),this.aborted||(p(He,"Aborting transaction:",e?e.message:"Client-initiated abort"),this.aborted=!0,this.transaction.abort())}S(){var e=this.transaction;this.aborted||"function"!=typeof e.commit||e.commit()}store(e){var t=this.transaction.objectStore(e);return new tt(t)}}class Ye{static delete(e){return p(He,"Removing database:",e),rt(window.indexedDB.deleteDatabase(e)).toPromise()}static D(){var e,t,r;return!(!(()=>{try{return"object"==typeof indexedDB}catch(e){}})()||!Ye.v()&&(e=W(),t=0<(t=Ye.C(e))&&t<10,r=0<(r=Xe(e))&&r<4.5,0<e.indexOf("MSIE ")||0<e.indexOf("Trident/")||0<e.indexOf("Edge/")||t||r))}static v(){var e;return"undefined"!=typeof process&&"YES"===(null==(e=process.__PRIVATE_env)?void 0:e.F)}static M(e,t){return e.store(t)}static C(e){var t=e.match(/i(?:phone|pad|pod) os ([\d_]+)/i),t=t?t[1].split("_").slice(0,2).join("."):"-1";return Number(t)}constructor(e,t,r){this.name=e,this.version=t,this.O=r,12.2===Ye.C(W())&&d("Firestore persistence suffers from a bug in iOS 12.2 Safari that may cause your app to stop working. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.")}async N(s){return this.db||(p(He,"Opening database:",this.name),this.db=await new Promise((r,n)=>{let i=indexedDB.open(this.name,this.version);i.onsuccess=e=>{var t=e.target.result;r(t)},i.onblocked=()=>{n(new Ze(s,"Cannot upgrade IndexedDB schema while another tab is open. Close all tabs that access Firestore and reload this page to proceed."))},i.onerror=e=>{var t=e.target.error;"VersionError"===t.name?n(new I(b.FAILED_PRECONDITION,"A newer version of the Firestore SDK was previously used and so the persisted data is not compatible with the version of the SDK you are now using. The SDK will operate with persistence disabled. If you need persistence, please re-upgrade to a newer version of the SDK or else clear the persisted IndexedDB data for your app to start fresh.")):"InvalidStateError"===t.name?n(new I(b.FAILED_PRECONDITION,"Unable to open an IndexedDB connection. This could be due to running in a private browsing session on a browser whose private browsing sessions do not support IndexedDB: "+t)):n(new Ze(s,t))},i.onupgradeneeded=e=>{p(He,'Database "'+this.name+'" requires upgrade from version:',e.oldVersion);var t=e.target.result;this.O.B(t,i.transaction,e.oldVersion,this.version).next(()=>{p(He,"Database upgrade to version "+this.version+" complete")})}})),this.L&&(this.db.onversionchange=e=>this.L(e)),this.db}k(t){this.L=t,this.db&&(this.db.onversionchange=e=>t(e))}async runTransaction(r,e,n,i){var s="readonly"===e;let a=0;for(;;){++a;try{this.db=await this.N(r);let t=We.open(this.db,r,s?"readonly":"readwrite",n),e=i(t).next(e=>(t.S(),e)).catch(e=>(t.abort(e),w.reject(e))).toPromise();return e.catch(()=>{}),await t.p,e}catch(r){let e=r,t="FirebaseError"!==e.name&&a<3;if(p(He,"Transaction failed with error:",e.message,"Retrying:",t),this.close(),!t)return Promise.reject(e)}}}close(){this.db&&this.db.close(),this.db=void 0}}function Xe(e){var t=e.match(/Android ([\d.]+)/i),t=t?t[1].split(".").slice(0,2).join("."):"-1";return Number(t)}class Je{constructor(e){this.q=e,this.$=!1,this.U=null}get isDone(){return this.$}get K(){return this.U}set cursor(e){this.q=e}done(){this.$=!0}W(e){this.U=e}delete(){return rt(this.q.delete())}}class Ze extends I{constructor(e,t){super(b.UNAVAILABLE,`IndexedDB transaction '${e}' failed: `+t),this.name="IndexedDbTransactionError"}}function et(e){return"IndexedDbTransactionError"===e.name}class tt{constructor(e){this.store=e}put(e,t){let r;return rt(r=void 0!==t?(p(He,"PUT",this.store.name,e,t),this.store.put(t,e)):(p(He,"PUT",this.store.name,"<auto-key>",e),this.store.put(e)))}add(e){return p(He,"ADD",this.store.name,e,e),rt(this.store.add(e))}get(t){return rt(this.store.get(t)).next(e=>(void 0===e&&(e=null),p(He,"GET",this.store.name,t,e),e))}delete(e){return p(He,"DELETE",this.store.name,e),rt(this.store.delete(e))}count(){return p(He,"COUNT",this.store.name),rt(this.store.count())}G(e,t){var n=this.options(e,t),r=n.index?this.store.index(n.index):this.store;if("function"==typeof r.getAll){let e=r.getAll(n.range);return new w((t,r)=>{e.onerror=e=>{r(e.target.error)},e.onsuccess=e=>{t(e.target.result)}})}{let e=this.cursor(n),r=[];return this.j(e,(e,t)=>{r.push(t)}).next(()=>r)}}H(e,t){let n=this.store.getAll(e,null===t?void 0:t);return new w((t,r)=>{n.onerror=e=>{r(e.target.error)},n.onsuccess=e=>{t(e.target.result)}})}J(e,t){p(He,"DELETE ALL",this.store.name);var r=this.options(e,t),r=(r.Y=!1,this.cursor(r));return this.j(r,(e,t,r)=>r.delete())}Z(e,t){let r;t?r=e:(r={},t=e);var n=this.cursor(r);return this.j(n,t)}X(i){let e=this.cursor({});return new w((r,n)=>{e.onerror=e=>{var t=it(e.target.error);n(t)},e.onsuccess=e=>{let t=e.target.result;t?i(t.primaryKey,t.value).next(e=>{e?t.continue():r()}):r()}})}j(e,s){let a=[];return new w((i,t)=>{e.onerror=e=>{t(e.target.error)},e.onsuccess=e=>{var n=e.target.result;if(n){let t=new Je(n),r=s(n.primaryKey,n.value,t);if(r instanceof w){let e=r.catch(e=>(t.done(),w.reject(e)));a.push(e)}t.isDone?i():null===t.K?n.continue():n.continue(t.K)}else i()}}).next(()=>w.waitFor(a))}options(e,t){let r;return void 0!==e&&("string"==typeof e?r=e:t=e),{index:r,range:t}}cursor(e){let t="next";var r;return e.reverse&&(t="prev"),e.index?(r=this.store.index(e.index),e.Y?r.openKeyCursor(e.range,t):r.openCursor(e.range,t)):this.store.openCursor(e.range,t)}}function rt(e){return new w((r,n)=>{e.onsuccess=e=>{var t=e.target.result;r(t)},e.onerror=e=>{var t=it(e.target.error);n(t)}})}let nt=!1;function it(e){let t=Ye.C(W());if(12.2<=t&&t<13){let t="An internal error was encountered in the Indexed Database server";if(0<=e.message.indexOf(t)){let e=new I("internal",`IOS_INDEXEDDB_BUG1: IndexedDb has thrown '${t}'. This is likely due to an unavoidable bug in iOS. See https://stackoverflow.com/q/56496296/110915 for details and a potential workaround.`);return nt||(nt=!0,setTimeout(()=>{throw e},0)),e}}return e}let st="IndexBackfiller";class at{constructor(e,t){this.asyncQueue=e,this.ee=t,this.task=null}start(){this.te(15e3)}stop(){this.task&&(this.task.cancel(),this.task=null)}get started(){return null!==this.task}te(e){p(st,`Scheduled in ${e}ms`),this.task=this.asyncQueue.enqueueAfterDelay("index_backfill",e,async()=>{this.task=null;try{var e=await this.ee.ne();p(st,"Documents written: "+e)}catch(e){et(e)?p(st,"Ignoring IndexedDB error during index backfill: ",e):await $e(e)}await this.te(6e4)})}}class ot{constructor(e,t){this.localStore=e,this.persistence=t}async ne(t=50){return this.persistence.runTransaction("Backfill Indexes","readwrite-primary",e=>this.re(e,t))}re(e,t){let r=new Set,n=t,i=!0;return w.doWhile(()=>!0===i&&0<n,()=>this.localStore.indexManager.getNextCollectionGroupToUpdate(e).next(t=>{if(null!==t&&!r.has(t))return p(st,"Processing collection: "+t),this.ie(e,t,n).next(e=>{n-=e,r.add(t)});i=!1})).next(()=>t-n)}ie(n,i,e){return this.localStore.indexManager.getMinOffsetFromCollectionGroup(n,i).next(r=>this.localStore.localDocuments.getNextDocuments(n,i,r,e).next(e=>{let t=e.changes;return this.localStore.indexManager.updateIndexEntries(n,t).next(()=>this.se(r,e)).next(e=>(p(st,"Updating offset: "+e),this.localStore.indexManager.updateCollectionGroup(n,i,e))).next(()=>t.size)}))}se(e,t){let n=e;return t.changes.forEach((e,t)=>{var r=je(t);0<Ge(r,n)&&(n=r)}),new ze(n.readTime,n.documentKey,Math.max(t.batchId,e.largestBatchId))}}class lt{constructor(e,t){this.previousValue=e,t&&(t.sequenceNumberHandler=e=>this.oe(e),this._e=e=>t.writeSequenceNumber(e))}oe(e){return this.previousValue=Math.max(e,this.previousValue),this.previousValue}next(){var e=++this.previousValue;return this._e&&this._e(e),e}}let ut=lt.ae=-1;function ht(e){return null==e}function ct(e){return 0===e&&1/e==-1/0}function dt(e){return"number"==typeof e&&Number.isInteger(e)&&!ct(e)&&e<=Number.MAX_SAFE_INTEGER&&e>=Number.MIN_SAFE_INTEGER}let ft="";function o(e){let t="";for(let r=0;r<e.length;r++)0<t.length&&(t=gt(t)),t=((t,e)=>{let r=e,n=t.length;for(let i=0;i<n;i++){let e=t.charAt(i);switch(e){case"\0":r+="";break;case ft:r+="";break;default:r+=e}}return r})(e.get(r),t);return gt(t)}function gt(e){return e+ft+""}function mt(r){let e=r.length;if(y(2<=e),2===e)return y(r.charAt(0)===ft&&""===r.charAt(1)),S.emptyPath();var __PRIVATE_lastReasonableEscapeIndex=e-2,n=[];let i="";for(let a=0;a<e;){let t=r.indexOf(ft,a);switch((t<0||t>__PRIVATE_lastReasonableEscapeIndex)&&T(),r.charAt(t+1)){case"":var s=r.substring(a,t);let e;0===i.length?e=s:(i+=s,e=i,i=""),n.push(e);break;case"":i=i+r.substring(a,t)+"\0";break;case"":i+=r.substring(a,t+1);break;default:T()}a=t+2}return new S(n)}let pt="remoteDocuments",yt="owner",vt="owner",wt="mutationQueues",_t="mutations",bt="batchId",It="userMutationsIndex",Tt=["userId","batchId"];function Et(e,t){return[e,o(t)]}function St(e,t,r){return[e,o(t),r]}let xt={},At="documentMutations",Ct="remoteDocumentsV14",Dt=["prefixPath","collectionGroup","readTime","documentId"],Nt="documentKeyIndex",kt=["prefixPath","collectionGroup","documentId"],Rt="collectionGroupIndex",Lt=["collectionGroup","readTime","prefixPath","documentId"],Ot="remoteDocumentGlobal",Mt="remoteDocumentGlobalKey",Vt="targets",Ft="queryTargetsIndex",Pt=["canonicalId","targetId"],Ut="targetDocuments",Bt=["targetId","path"],qt="documentTargetsIndex",jt=["path","targetId"],zt="targetGlobalKey",Gt="targetGlobal",Kt="collectionParents",Qt=["collectionId","parent"],$t="clientMetadata",Ht="bundles",Wt="namedQueries",Yt="indexConfiguration",Xt="collectionGroupIndex",Jt="indexState",Zt=["indexId","uid"],er="sequenceNumberIndex",tr=["uid","sequenceNumber"],rr="indexEntries",nr=["indexId","uid","arrayValue","directionalValue","orderedDocumentKey","documentKey"],ir="documentKeyIndex",sr=["indexId","uid","orderedDocumentKey"],ar="documentOverlays",or=["userId","collectionPath","documentId"],lr="collectionPathOverlayIndex",ur=["userId","collectionPath","largestBatchId"],hr="collectionGroupOverlayIndex",cr=["userId","collectionGroup","largestBatchId"],dr="globals",fr=[wt,_t,At,pt,Vt,yt,Gt,Ut,$t,Ot,Kt,Ht,Wt],gr=[...fr,ar],mr=[wt,_t,At,Ct,Vt,yt,Gt,Ut,$t,Ot,Kt,Ht,Wt,ar],Sr=mr,xr=[...Sr,Yt,Jt,rr],Ar=xr,Cr=[...xr,dr];class Dr extends Qe{constructor(e,t){super(),this.ue=e,this.currentSequenceNumber=t}}function r(e,t){var r=e;return Ye.M(r.ue,t)}function Nr(e){let t=0;for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t++;return t}function kr(e,t){for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&t(r,e[r])}function Rr(e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}class A{constructor(e,t){this.comparator=e,this.root=t||Or.EMPTY}insert(e,t){return new A(this.comparator,this.root.insert(e,t,this.comparator).copy(null,null,Or.BLACK,null,null))}remove(e){return new A(this.comparator,this.root.remove(e,this.comparator).copy(null,null,Or.BLACK,null,null))}get(e){let t=this.root;for(;!t.isEmpty();){var r=this.comparator(e,t.key);if(0===r)return t.value;r<0?t=t.left:0<r&&(t=t.right)}return null}indexOf(e){let t=0,r=this.root;for(;!r.isEmpty();){var n=this.comparator(e,r.key);if(0===n)return t+r.left.size;r=n<0?r.left:(t+=r.left.size+1,r.right)}return-1}isEmpty(){return this.root.isEmpty()}get size(){return this.root.size}minKey(){return this.root.minKey()}maxKey(){return this.root.maxKey()}inorderTraversal(e){return this.root.inorderTraversal(e)}forEach(r){this.inorderTraversal((e,t)=>(r(e,t),!1))}toString(){let r=[];return this.inorderTraversal((e,t)=>(r.push(e+":"+t),!1)),`{${r.join(", ")}}`}reverseTraversal(e){return this.root.reverseTraversal(e)}getIterator(){return new Lr(this.root,null,this.comparator,!1)}getIteratorFrom(e){return new Lr(this.root,e,this.comparator,!1)}getReverseIterator(){return new Lr(this.root,null,this.comparator,!0)}getReverseIteratorFrom(e){return new Lr(this.root,e,this.comparator,!0)}}class Lr{constructor(e,t,r,n){this.isReverse=n,this.nodeStack=[];let i=1;for(;!e.isEmpty();)if(i=t?r(e.key,t):1,t&&n&&(i*=-1),i<0)e=this.isReverse?e.left:e.right;else{if(0===i){this.nodeStack.push(e);break}this.nodeStack.push(e),e=this.isReverse?e.right:e.left}}getNext(){let e=this.nodeStack.pop();var t={key:e.key,value:e.value};if(this.isReverse)for(e=e.left;!e.isEmpty();)this.nodeStack.push(e),e=e.right;else for(e=e.right;!e.isEmpty();)this.nodeStack.push(e),e=e.left;return t}hasNext(){return 0<this.nodeStack.length}peek(){var e;return 0===this.nodeStack.length?null:{key:(e=this.nodeStack[this.nodeStack.length-1]).key,value:e.value}}}class Or{constructor(e,t,r,n,i){this.key=e,this.value=t,this.color=null!=r?r:Or.RED,this.left=null!=n?n:Or.EMPTY,this.right=null!=i?i:Or.EMPTY,this.size=this.left.size+1+this.right.size}copy(e,t,r,n,i){return new Or(null!=e?e:this.key,null!=t?t:this.value,null!=r?r:this.color,null!=n?n:this.left,null!=i?i:this.right)}isEmpty(){return!1}inorderTraversal(e){return this.left.inorderTraversal(e)||e(this.key,this.value)||this.right.inorderTraversal(e)}reverseTraversal(e){return this.right.reverseTraversal(e)||e(this.key,this.value)||this.left.reverseTraversal(e)}min(){return this.left.isEmpty()?this:this.left.min()}minKey(){return this.min().key}maxKey(){return this.right.isEmpty()?this.key:this.right.maxKey()}insert(e,t,r){var n=this,i=r(e,n.key);return(n=i<0?n.copy(null,null,null,n.left.insert(e,t,r),null):0===i?n.copy(null,t,null,null,null):n.copy(null,null,null,null,n.right.insert(e,t,r))).fixUp()}removeMin(){if(this.left.isEmpty())return Or.EMPTY;let e=this;return(e=(e=e.left.isRed()||e.left.left.isRed()?e:e.moveRedLeft()).copy(null,null,null,e.left.removeMin(),null)).fixUp()}remove(e,t){let r,n=this;if(t(e,n.key)<0)n=(n=n.left.isEmpty()||n.left.isRed()||n.left.left.isRed()?n:n.moveRedLeft()).copy(null,null,null,n.left.remove(e,t),null);else{if(0===t(e,(n=(n=n.left.isRed()?n.rotateRight():n).right.isEmpty()||n.right.isRed()||n.right.left.isRed()?n:n.moveRedRight()).key)){if(n.right.isEmpty())return Or.EMPTY;r=n.right.min(),n=n.copy(r.key,r.value,null,null,n.right.removeMin())}n=n.copy(null,null,null,null,n.right.remove(e,t))}return n.fixUp()}isRed(){return this.color}fixUp(){let e=this;return e=(e=(e=e.right.isRed()&&!e.left.isRed()?e.rotateLeft():e).left.isRed()&&e.left.left.isRed()?e.rotateRight():e).left.isRed()&&e.right.isRed()?e.colorFlip():e}moveRedLeft(){let e=this.colorFlip();return e=e.right.left.isRed()?(e=(e=e.copy(null,null,null,null,e.right.rotateRight())).rotateLeft()).colorFlip():e}moveRedRight(){let e=this.colorFlip();return e=e.left.left.isRed()?(e=e.rotateRight()).colorFlip():e}rotateLeft(){var e=this.copy(null,null,Or.RED,null,this.right.left);return this.right.copy(null,null,this.color,e,null)}rotateRight(){var e=this.copy(null,null,Or.RED,this.left.right,null);return this.left.copy(null,null,this.color,null,e)}colorFlip(){var e=this.left.copy(null,null,!this.left.color,null,null),t=this.right.copy(null,null,!this.right.color,null,null);return this.copy(null,null,!this.color,e,t)}checkMaxDepth(){var e=this.check();return Math.pow(2,e)<=this.size+1}check(){if(this.isRed()&&this.left.isRed())throw T();if(this.right.isRed())throw T();var e=this.left.check();if(e!==this.right.check())throw T();return e+(this.isRed()?0:1)}}Or.EMPTY=null,Or.RED=!0,Or.BLACK=!1,Or.EMPTY=new class{constructor(){this.size=0}get key(){throw T()}get value(){throw T()}get color(){throw T()}get left(){throw T()}get right(){throw T()}copy(e,t,r,n,i){return this}insert(e,t,r){return new Or(e,t)}remove(e,t){return this}isEmpty(){return!0}inorderTraversal(e){return!1}reverseTraversal(e){return!1}minKey(){return null}maxKey(){return null}isRed(){return!1}checkMaxDepth(){return!0}check(){return 0}};class C{constructor(e){this.comparator=e,this.data=new A(this.comparator)}has(e){return null!==this.data.get(e)}first(){return this.data.minKey()}last(){return this.data.maxKey()}get size(){return this.data.size}indexOf(e){return this.data.indexOf(e)}forEach(r){this.data.inorderTraversal((e,t)=>(r(e),!1))}forEachInRange(e,t){for(var r=this.data.getIteratorFrom(e[0]);r.hasNext();){var n=r.getNext();if(0<=this.comparator(n.key,e[1]))return;t(n.key)}}forEachWhile(e,t){for(var r=void 0!==t?this.data.getIteratorFrom(t):this.data.getIterator();r.hasNext();)if(!e(r.getNext().key))return}firstAfterOrEqual(e){var t=this.data.getIteratorFrom(e);return t.hasNext()?t.getNext().key:null}getIterator(){return new Mr(this.data.getIterator())}getIteratorFrom(e){return new Mr(this.data.getIteratorFrom(e))}add(e){return this.copy(this.data.remove(e).insert(e,!0))}delete(e){return this.has(e)?this.copy(this.data.remove(e)):this}isEmpty(){return this.data.isEmpty()}unionWith(e){let t=this;return t.size<e.size&&(t=e,e=this),e.forEach(e=>{t=t.add(e)}),t}isEqual(e){if(!(e instanceof C))return!1;if(this.size!==e.size)return!1;for(var r=this.data.getIterator(),n=e.data.getIterator();r.hasNext();){let e=r.getNext().key,t=n.getNext().key;if(0!==this.comparator(e,t))return!1}return!0}toArray(){let t=[];return this.forEach(e=>{t.push(e)}),t}toString(){let t=[];return this.forEach(e=>t.push(e)),"SortedSet("+t.toString()+")"}copy(e){var t=new C(this.comparator);return t.data=e,t}}class Mr{constructor(e){this.iter=e}getNext(){return this.iter.getNext().key}hasNext(){return this.iter.hasNext()}}function Vr(e){return e.hasNext()?e.getNext():void 0}class Fr{constructor(e){(this.fields=e).sort(v.comparator)}static empty(){return new Fr([])}unionWith(e){let t=new C(v.comparator);for(let e of this.fields)t=t.add(e);for(var r of e)t=t.add(r);return new Fr(t.toArray())}covers(e){for(var t of this.fields)if(t.isPrefixOf(e))return!0;return!1}isEqual(e){return De(this.fields,e.fields,(e,t)=>e.isEqual(t))}}class Pr extends Error{constructor(){super(...arguments),this.name="Base64DecodeError"}}class D{constructor(e){this.binaryString=e}static fromBase64String(e){var t=(e=>{try{return atob(e)}catch(e){throw"undefined"!=typeof DOMException&&e instanceof DOMException?new Pr("Invalid base64 string: "+e):e}})(e);return new D(t)}static fromUint8Array(e){var t=(e=>{let t="";for(let r=0;r<e.length;++r)t+=String.fromCharCode(e[r]);return t})(e);return new D(t)}[Symbol.iterator](){let e=0;return{next:()=>e<this.binaryString.length?{value:this.binaryString.charCodeAt(e++),done:!1}:{value:void 0,done:!0}}}toBase64(){return e=this.binaryString,btoa(e);var e}toUint8Array(){var e=this.binaryString,t=new Uint8Array(e.length);for(let r=0;r<e.length;r++)t[r]=e.charCodeAt(r);return t}approximateByteSize(){return 2*this.binaryString.length}compareTo(e){return E(this.binaryString,e.binaryString)}isEqual(e){return this.binaryString===e.binaryString}}D.EMPTY_BYTE_STRING=new D("");let Ur=new RegExp(/^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(?:\.(\d+))?Z$/);function Br(t){if(y(!!t),"string"!=typeof t)return{seconds:N(t.seconds),nanos:N(t.nanos)};{let e=0;var r=Ur.exec(t),r=(y(!!r),r[1]&&(r=((r=r[1])+"000000000").substr(0,9),e=Number(r)),new Date(t));return{seconds:Math.floor(r.getTime()/1e3),nanos:e}}}function N(e){return"number"==typeof e?e:"string"==typeof e?Number(e):0}function qr(e){return"string"==typeof e?D.fromBase64String(e):D.fromUint8Array(e)}let jr="server_timestamp",zr="__type__",Gr="__previous_value__",Kr="__local_write_time__";function Qr(e){var t;return(null==(t=((null==(t=null==e?void 0:e.mapValue)?void 0:t.fields)||{})[zr])?void 0:t.stringValue)===jr}function $r(e){var t=e.mapValue.fields[Gr];return Qr(t)?$r(t):t}function Hr(e){var t=Br(e.mapValue.fields[Kr].timestampValue);return new h(t.seconds,t.nanos)}class Wr{constructor(e,t,r,n,i,s,a,o,l){this.databaseId=e,this.appId=t,this.persistenceKey=r,this.host=n,this.ssl=i,this.forceLongPolling=s,this.autoDetectLongPolling=a,this.longPollingOptions=o,this.useFetchStreams=l}}let Yr="(default)";class Xr{constructor(e,t){this.projectId=e,this.database=t||Yr}static empty(){return new Xr("","")}get isDefaultDatabase(){return this.database===Yr}isEqual(e){return e instanceof Xr&&e.projectId===this.projectId&&e.database===this.database}}let Jr="__type__",Zr="__max__",en={mapValue:{fields:{__type__:{stringValue:Zr}}}},tn="__vector__",rn="value",nn={nullValue:"NULL_VALUE"};function sn(e){return"nullValue"in e?0:"booleanValue"in e?1:"integerValue"in e||"doubleValue"in e?2:"timestampValue"in e?3:"stringValue"in e?5:"bytesValue"in e?6:"referenceValue"in e?7:"geoPointValue"in e?8:"arrayValue"in e?9:"mapValue"in e?Qr(e)?4:_n(e)?9007199254740991:vn(e)?10:11:T()}function an(t,r){if(t===r)return!0;var n,i,s,a,o,e=sn(t);if(e!==sn(r))return!1;switch(e){case 0:case 9007199254740991:return!0;case 1:return t.booleanValue===r.booleanValue;case 4:return Hr(t).isEqual(Hr(r));case 3:return s=r,"string"==typeof(i=t).timestampValue&&"string"==typeof s.timestampValue&&i.timestampValue.length===s.timestampValue.length?i.timestampValue===s.timestampValue:(a=Br(i.timestampValue),o=Br(s.timestampValue),a.seconds===o.seconds&&a.nanos===o.nanos);case 5:return t.stringValue===r.stringValue;case 6:return i=r,qr(t.bytesValue).isEqual(qr(i.bytesValue));case 7:return t.referenceValue===r.referenceValue;case 8:return s=r,N((n=t).geoPointValue.latitude)===N(s.geoPointValue.latitude)&&N(n.geoPointValue.longitude)===N(s.geoPointValue.longitude);case 2:return n=r,"integerValue"in(u=t)&&"integerValue"in n?N(u.integerValue)===N(n.integerValue):"doubleValue"in u&&"doubleValue"in n&&((a=N(u.doubleValue))===(o=N(n.doubleValue))?ct(a)===ct(o):isNaN(a)&&isNaN(o));case 9:return De(t.arrayValue.values||[],r.arrayValue.values||[],an);case 10:case 11:var l=t,u=r,h=l.mapValue.fields||{},c=u.mapValue.fields||{};if(Nr(h)!==Nr(c))return!1;for(let e in h)if(h.hasOwnProperty(e)&&(void 0===c[e]||!an(h[e],c[e])))return!1;return!0;default:return T()}}function on(e,t){return void 0!==(e.values||[]).find(e=>an(e,t))}function ln(e,n){if(e===n)return 0;var i,s,a,o,l,u,h,c,t=sn(e),r=sn(n);if(t!==r)return E(t,r);switch(t){case 0:case 9007199254740991:return 0;case 1:return E(e.booleanValue,n.booleanValue);case 2:return u=n,h=N((l=e).integerValue||l.doubleValue),c=N(u.integerValue||u.doubleValue),h<c?-1:c<h?1:h===c?0:isNaN(h)?isNaN(c)?0:-1:1;case 3:return un(e.timestampValue,n.timestampValue);case 4:return un(Hr(e),Hr(n));case 5:return Ae(e.stringValue,n.stringValue);case 6:return l=e.bytesValue,u=n.bytesValue,h=qr(l),c=qr(u),h.compareTo(c);case 7:var d=e.referenceValue,f=n.referenceValue,g=d.split("/"),m=f.split("/");for(let t=0;t<g.length&&t<m.length;t++){let e=E(g[t],m[t]);if(0!==e)return e}return E(g.length,m.length);case 8:return d=e.geoPointValue,f=n.geoPointValue,0!==(o=E(N(d.latitude),N(f.latitude)))?o:E(N(d.longitude),N(f.longitude));case 9:return hn(e.arrayValue,n.arrayValue);case 10:return p=e.mapValue,i=n.mapValue,o=p.fields||{},s=i.fields||{},o=null==(o=o[rn])?void 0:o.arrayValue,s=null==(s=s[rn])?void 0:s.arrayValue,0!==(a=E((null==(a=null==o?void 0:o.values)?void 0:a.length)||0,(null==(a=null==s?void 0:s.values)?void 0:a.length)||0))?a:hn(o,s);case 11:var p=e.mapValue,y=n.mapValue;if(p===en.mapValue&&y===en.mapValue)return 0;if(p===en.mapValue)return 1;if(y===en.mapValue)return-1;var v=p.fields||{},w=Object.keys(v),_=y.fields||{},b=Object.keys(_);w.sort(),b.sort();for(let r=0;r<w.length&&r<b.length;++r){let e=Ae(w[r],b[r]);if(0!==e)return e;var I=ln(v[w[r]],_[b[r]]);if(0!==I)return I}return E(w.length,b.length);default:throw T()}}function un(e,t){var r,n,i;return"string"==typeof e&&"string"==typeof t&&e.length===t.length?E(e,t):(r=Br(e),n=Br(t),0!==(i=E(r.seconds,n.seconds))?i:E(r.nanos,n.nanos))}function hn(e,t){var r=e.values||[],n=t.values||[];for(let i=0;i<r.length&&i<n.length;++i){let e=ln(r[i],n[i]);if(e)return e}return E(r.length,n.length)}function cn(e){return function s(e){return"nullValue"in e?"null":"booleanValue"in e?""+e.booleanValue:"integerValue"in e?""+e.integerValue:"doubleValue"in e?""+e.doubleValue:"timestampValue"in e?(e=>{let t=Br(e);return`time(${t.seconds},${t.nanos})`})(e.timestampValue):"stringValue"in e?e.stringValue:"bytesValue"in e?(e=>qr(e).toBase64())(e.bytesValue):"referenceValue"in e?(e=>x.fromName(e).toString())(e.referenceValue):"geoPointValue"in e?(e=>`geo(${e.latitude},${e.longitude})`)(e.geoPointValue):"arrayValue"in e?(e=>{let t="[",r=!0;for(var n of e.values||[])r?r=!1:t+=",",t+=s(n);return t+"]"})(e.arrayValue):"mapValue"in e?(e=>{let t=Object.keys(e.fields||{}).sort(),r="{",n=!0;for(var i of t)n?n=!1:r+=",",r+=i+":"+s(e.fields[i]);return r+"}"})(e.mapValue):T()}(e)}function dn(e,t){return{referenceValue:`projects/${e.projectId}/databases/${e.database}/documents/`+t.path.canonicalString()}}function fn(e){return!!e&&"integerValue"in e}function gn(e){return!!e&&"arrayValue"in e}function mn(e){return e&&"nullValue"in e}function pn(e){return e&&"doubleValue"in e&&isNaN(Number(e.doubleValue))}function yn(e){return e&&"mapValue"in e}function vn(e){var t;return(null==(t=((null==(t=null==e?void 0:e.mapValue)?void 0:t.fields)||{})[Jr])?void 0:t.stringValue)===tn}function wn(t){if(t.geoPointValue)return{geoPointValue:Object.assign({},t.geoPointValue)};if(t.timestampValue&&"object"==typeof t.timestampValue)return{timestampValue:Object.assign({},t.timestampValue)};if(t.mapValue){let r={mapValue:{fields:{}}};return kr(t.mapValue.fields,(e,t)=>r.mapValue.fields[e]=wn(t)),r}if(t.arrayValue){var r={arrayValue:{values:[]}};for(let e=0;e<(t.arrayValue.values||[]).length;++e)r.arrayValue.values[e]=wn(t.arrayValue.values[e]);return r}return Object.assign({},t)}function _n(e){return(((e.mapValue||{}).fields||{}).__type__||{}).stringValue===Zr}let bn={mapValue:{fields:{[Jr]:{stringValue:tn},[rn]:{arrayValue:{}}}}};function In(e,t){var r=ln(e.value,t.value);return 0!==r?r:e.inclusive&&!t.inclusive?-1:!e.inclusive&&t.inclusive?1:0}function Tn(e,t){var r=ln(e.value,t.value);return 0!==r?r:e.inclusive&&!t.inclusive?1:!e.inclusive&&t.inclusive?-1:0}class En{constructor(e){this.value=e}static empty(){return new En({mapValue:{}})}field(r){if(r.isEmpty())return this.value;{let e=this.value;for(let t=0;t<r.length-1;++t)if(!yn(e=(e.mapValue.fields||{})[r.get(t)]))return null;return(e=(e.mapValue.fields||{})[r.lastSegment()])||null}}set(e,t){this.getFieldsMap(e.popLast())[e.lastSegment()]=wn(t)}setAll(e){let r=v.emptyPath(),n={},i=[];e.forEach((e,t)=>{if(!r.isImmediateParentOf(t)){let e=this.getFieldsMap(r);this.applyChanges(e,n,i),n={},i=[],r=t.popLast()}e?n[t.lastSegment()]=wn(e):i.push(t.lastSegment())});var t=this.getFieldsMap(r);this.applyChanges(t,n,i)}delete(e){var t=this.field(e.popLast());yn(t)&&t.mapValue.fields&&delete t.mapValue.fields[e.lastSegment()]}isEqual(e){return an(this.value,e.value)}getFieldsMap(t){let r=this.value;r.mapValue.fields||(r.mapValue={fields:{}});for(let n=0;n<t.length;++n){let e=r.mapValue.fields[t.get(n)];yn(e)&&e.mapValue.fields||(e={mapValue:{fields:{}}},r.mapValue.fields[t.get(n)]=e),r=e}return r.mapValue.fields}applyChanges(r,e,t){kr(e,(e,t)=>r[e]=t);for(let e of t)delete r[e]}clone(){return new En(wn(this.value))}}class k{constructor(e,t,r,n,i,s,a){this.key=e,this.documentType=t,this.version=r,this.readTime=n,this.createTime=i,this.data=s,this.documentState=a}static newInvalidDocument(e){return new k(e,0,g.min(),g.min(),g.min(),En.empty(),0)}static newFoundDocument(e,t,r,n){return new k(e,1,t,g.min(),r,n,0)}static newNoDocument(e,t){return new k(e,2,t,g.min(),g.min(),En.empty(),0)}static newUnknownDocument(e,t){return new k(e,3,t,g.min(),g.min(),En.empty(),2)}convertToFoundDocument(e,t){return!this.createTime.isEqual(g.min())||2!==this.documentType&&0!==this.documentType||(this.createTime=e),this.version=e,this.documentType=1,this.data=t,this.documentState=0,this}convertToNoDocument(e){return this.version=e,this.documentType=2,this.data=En.empty(),this.documentState=0,this}convertToUnknownDocument(e){return this.version=e,this.documentType=3,this.data=En.empty(),this.documentState=2,this}setHasCommittedMutations(){return this.documentState=2,this}setHasLocalMutations(){return this.documentState=1,this.version=g.min(),this}setReadTime(e){return this.readTime=e,this}get hasLocalMutations(){return 1===this.documentState}get hasCommittedMutations(){return 2===this.documentState}get hasPendingWrites(){return this.hasLocalMutations||this.hasCommittedMutations}isValidDocument(){return 0!==this.documentType}isFoundDocument(){return 1===this.documentType}isNoDocument(){return 2===this.documentType}isUnknownDocument(){return 3===this.documentType}isEqual(e){return e instanceof k&&this.key.isEqual(e.key)&&this.version.isEqual(e.version)&&this.documentType===e.documentType&&this.documentState===e.documentState&&this.data.isEqual(e.data)}mutableCopy(){return new k(this.key,this.documentType,this.version,this.readTime,this.createTime,this.data.clone(),this.documentState)}toString(){return`Document(${this.key}, ${this.version}, ${JSON.stringify(this.data.value)}, {createTime: ${this.createTime}}), {documentType: ${this.documentType}}), {documentState: ${this.documentState}})`}}class Sn{constructor(e,t){this.position=e,this.inclusive=t}}function xn(e,t,r){let n=0;for(let a=0;a<e.position.length;a++){var i=t[a],s=e.position[a];if(n=i.field.isKeyField()?x.comparator(x.fromName(s.referenceValue),r.key):ln(s,r.data.field(i.field)),"desc"===i.dir&&(n*=-1),0!==n)break}return n}function An(e,t){if(null===e)return null===t;if(null===t)return!1;if(e.inclusive!==t.inclusive||e.position.length!==t.position.length)return!1;for(let r=0;r<e.position.length;r++)if(!an(e.position[r],t.position[r]))return!1;return!0}class Cn{constructor(e,t="asc"){this.field=e,this.dir=t}}class Dn{}class R extends Dn{constructor(e,t,r){super(),this.field=e,this.op=t,this.value=r}static create(e,t,r){return e.isKeyField()?"in"===t||"not-in"===t?this.createKeyFieldInFilter(e,t,r):new Vn(e,t,r):"array-contains"===t?new Bn(e,r):"in"===t?new qn(e,r):"not-in"===t?new jn(e,r):"array-contains-any"===t?new zn(e,r):new R(e,t,r)}static createKeyFieldInFilter(e,t,r){return new("in"===t?Fn:Pn)(e,r)}matches(e){var t=e.data.field(this.field);return"!="===this.op?null!==t&&this.matchesComparison(ln(t,this.value)):null!==t&&sn(this.value)===sn(t)&&this.matchesComparison(ln(t,this.value))}matchesComparison(e){switch(this.op){case"<":return e<0;case"<=":return e<=0;case"==":return 0===e;case"!=":return 0!==e;case">":return 0<e;case">=":return 0<=e;default:return T()}}isInequality(){return 0<=["<","<=",">",">=","!=","not-in"].indexOf(this.op)}getFlattenedFilters(){return[this]}getFilters(){return[this]}}class L extends Dn{constructor(e,t){super(),this.filters=e,this.op=t,this.ce=null}static create(e,t){return new L(e,t)}matches(t){return Nn(this)?void 0===this.filters.find(e=>!e.matches(t)):void 0!==this.filters.find(e=>e.matches(t))}getFlattenedFilters(){return null===this.ce&&(this.ce=this.filters.reduce((e,t)=>e.concat(t.getFlattenedFilters()),[])),this.ce}getFilters(){return Object.assign([],this.filters)}}function Nn(e){return"and"===e.op}function kn(e){return"or"===e.op}function Rn(e){return Ln(e)&&Nn(e)}function Ln(e){for(var t of e.filters)if(t instanceof L)return!1;return!0}function On(e,t){var r=e.filters.concat(t);return L.create(r,e.op)}function Mn(e){return e instanceof R?`${(t=e).field.canonicalString()} ${t.op} `+cn(t.value):e instanceof L?(t=e).op.toString()+" {"+t.getFilters().map(Mn).join(" ,")+"}":"Filter";var t}class Vn extends R{constructor(e,t,r){super(e,t,r),this.key=x.fromName(r.referenceValue)}matches(e){var t=x.comparator(e.key,this.key);return this.matchesComparison(t)}}class Fn extends R{constructor(e,t){super(e,"in",t),this.keys=Un(0,t)}matches(t){return this.keys.some(e=>e.isEqual(t.key))}}class Pn extends R{constructor(e,t){super(e,"not-in",t),this.keys=Un(0,t)}matches(t){return!this.keys.some(e=>e.isEqual(t.key))}}function Un(e,t){var r;return((null==(r=t.arrayValue)?void 0:r.values)||[]).map(e=>x.fromName(e.referenceValue))}class Bn extends R{constructor(e,t){super(e,"array-contains",t)}matches(e){var t=e.data.field(this.field);return gn(t)&&on(t.arrayValue,this.value)}}class qn extends R{constructor(e,t){super(e,"in",t)}matches(e){var t=e.data.field(this.field);return null!==t&&on(this.value.arrayValue,t)}}class jn extends R{constructor(e,t){super(e,"not-in",t)}matches(e){var t;return!on(this.value.arrayValue,{nullValue:"NULL_VALUE"})&&null!==(t=e.data.field(this.field))&&!on(this.value.arrayValue,t)}}class zn extends R{constructor(e,t){super(e,"array-contains-any",t)}matches(e){var t=e.data.field(this.field);return!(!gn(t)||!t.arrayValue.values)&&t.arrayValue.values.some(e=>on(this.value.arrayValue,e))}}class Gn{constructor(e,t=null,r=[],n=[],i=null,s=null,a=null){this.path=e,this.collectionGroup=t,this.orderBy=r,this.filters=n,this.limit=i,this.startAt=s,this.endAt=a,this.le=null}}function Kn(e,t=null,r=[],n=[],i=null,s=null,a=null){return new Gn(e,t,r,n,i,s,a)}function Qn(e){var t=e;if(null===t.le){let e=t.path.canonicalString();null!==t.collectionGroup&&(e+="|cg:"+t.collectionGroup),e=(e=(e+="|f:")+t.filters.map(e=>function t(e){var r;return e instanceof R?e.field.canonicalString()+e.op.toString()+cn(e.value):Rn(e)?e.filters.map(e=>t(e)).join(","):(r=e.filters.map(e=>t(e)).join(","),e.op+`(${r})`)}(e)).join(",")+"|ob:")+t.orderBy.map(e=>(e=e).field.canonicalString()+e.dir).join(","),ht(t.limit)||(e=(e+="|l:")+t.limit),t.startAt&&(e=(e=(e+="|lb:")+(t.startAt.inclusive?"b:":"a:"))+t.startAt.position.map(e=>cn(e)).join(",")),t.endAt&&(e=(e=(e+="|ub:")+(t.endAt.inclusive?"a:":"b:"))+t.endAt.position.map(e=>cn(e)).join(",")),t.le=e}return t.le}function $n(e,t){if(e.limit!==t.limit)return!1;if(e.orderBy.length!==t.orderBy.length)return!1;for(let i=0;i<e.orderBy.length;i++)if(r=e.orderBy[i],n=t.orderBy[i],r.dir!==n.dir||!r.field.isEqual(n.field))return!1;var r,n;if(e.filters.length!==t.filters.length)return!1;for(let s=0;s<e.filters.length;s++)if(!function n(e,t){return e instanceof R?(r=e,(s=t)instanceof R&&r.op===s.op&&r.field.isEqual(s.field)&&an(r.value,s.value)):e instanceof L?(r=e,(i=t)instanceof L&&r.op===i.op&&r.filters.length===i.filters.length&&r.filters.reduce((e,t,r)=>e&&n(t,i.filters[r]),!0)):void T();var i,r,s}(e.filters[s],t.filters[s]))return!1;return e.collectionGroup===t.collectionGroup&&!!e.path.isEqual(t.path)&&!!An(e.startAt,t.startAt)&&An(e.endAt,t.endAt)}function Hn(e){return x.isDocumentKey(e.path)&&null===e.collectionGroup&&0===e.filters.length}function Wn(e,t){return e.filters.filter(e=>e instanceof R&&e.field.isEqual(t))}function Yn(e,r,n){let i=nn,s=!0;for(let n of Wn(e,r)){let e=nn,t=!0;switch(n.op){case"<":case"<=":e="nullValue"in(a=n.value)?nn:"booleanValue"in a?{booleanValue:!1}:"integerValue"in a||"doubleValue"in a?{doubleValue:NaN}:"timestampValue"in a?{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}}:"stringValue"in a?{stringValue:""}:"bytesValue"in a?{bytesValue:""}:"referenceValue"in a?dn(Xr.empty(),x.empty()):"geoPointValue"in a?{geoPointValue:{latitude:-90,longitude:-180}}:"arrayValue"in a?{arrayValue:{}}:"mapValue"in a?vn(a)?bn:{mapValue:{}}:T();break;case"==":case"in":case">=":e=n.value;break;case">":e=n.value,t=!1;break;case"!=":case"not-in":e=nn}In({value:i,inclusive:s},{value:e,inclusive:t})<0&&(i=e,s=t)}var a;if(null!==n)for(let t=0;t<e.orderBy.length;++t)if(e.orderBy[t].field.isEqual(r)){let e=n.position[t];In({value:i,inclusive:s},{value:e,inclusive:n.inclusive})<0&&(i=e,s=n.inclusive);break}return{value:i,inclusive:s}}function Xn(e,r,n){let i=en,s=!0;for(let n of Wn(e,r)){let e=en,t=!0;switch(n.op){case">=":case">":e="nullValue"in(a=n.value)?{booleanValue:!1}:"booleanValue"in a?{doubleValue:NaN}:"integerValue"in a||"doubleValue"in a?{timestampValue:{seconds:Number.MIN_SAFE_INTEGER}}:"timestampValue"in a?{stringValue:""}:"stringValue"in a?{bytesValue:""}:"bytesValue"in a?dn(Xr.empty(),x.empty()):"referenceValue"in a?{geoPointValue:{latitude:-90,longitude:-180}}:"geoPointValue"in a?{arrayValue:{}}:"arrayValue"in a?bn:"mapValue"in a?vn(a)?{mapValue:{}}:en:T(),t=!1;break;case"==":case"in":case"<=":e=n.value;break;case"<":e=n.value,t=!1;break;case"!=":case"not-in":e=en}0<Tn({value:i,inclusive:s},{value:e,inclusive:t})&&(i=e,s=t)}var a;if(null!==n)for(let t=0;t<e.orderBy.length;++t)if(e.orderBy[t].field.isEqual(r)){let e=n.position[t];0<Tn({value:i,inclusive:s},{value:e,inclusive:n.inclusive})&&(i=e,s=n.inclusive);break}return{value:i,inclusive:s}}class Jn{constructor(e,t=null,r=[],n=[],i=null,s="F",a=null,o=null){this.path=e,this.collectionGroup=t,this.explicitOrderBy=r,this.filters=n,this.limit=i,this.limitType=s,this.startAt=a,this.endAt=o,this.he=null,this.Pe=null,this.Te=null,this.startAt,this.endAt}}function Zn(e,t,r,n,i,s,a,o){return new Jn(e,t,r,n,i,s,a,o)}function ei(e){return new Jn(e)}function ti(e){return 0===e.filters.length&&null===e.limit&&null==e.startAt&&null==e.endAt&&(0===e.explicitOrderBy.length||1===e.explicitOrderBy.length&&e.explicitOrderBy[0].field.isKeyField())}function ri(e){return null!==e.collectionGroup}function ni(e){let n=e;if(null===n.he){n.he=[];let t=new Set;for(var i of n.explicitOrderBy)n.he.push(i),t.add(i.field.canonicalString());let r=0<n.explicitOrderBy.length?n.explicitOrderBy[n.explicitOrderBy.length-1].dir:"asc",e=(e=>{let t=new C(v.comparator);return e.filters.forEach(e=>{e.getFlattenedFilters().forEach(e=>{e.isInequality()&&(t=t.add(e.field))})}),t})(n);e.forEach(e=>{t.has(e.canonicalString())||e.isKeyField()||n.he.push(new Cn(e,r))}),t.has(v.keyField().canonicalString())||n.he.push(new Cn(v.keyField(),r))}return n.he}function ii(e){var t=e;return t.Pe||(t.Pe=((e,t)=>{if("F"===e.limitType)return Kn(e.path,e.collectionGroup,t,e.filters,e.limit,e.startAt,e.endAt);t=t.map(e=>{var t="desc"===e.dir?"asc":"desc";return new Cn(e.field,t)});var r=e.endAt?new Sn(e.endAt.position,e.endAt.inclusive):null,n=e.startAt?new Sn(e.startAt.position,e.startAt.inclusive):null;return Kn(e.path,e.collectionGroup,t,e.filters,e.limit,r,n)})(t,ni(e))),t.Pe}function si(e,t){var r=e.filters.concat([t]);return new Jn(e.path,e.collectionGroup,e.explicitOrderBy.slice(),r,e.limit,e.limitType,e.startAt,e.endAt)}function ai(e,t,r){return new Jn(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),t,r,e.startAt,e.endAt)}function oi(e,t){return $n(ii(e),ii(t))&&e.limitType===t.limitType}function li(e){return Qn(ii(e))+"|lt:"+e.limitType}function ui(e){return`Query(target=${(e=>{let t=e.path.canonicalString();return null!==e.collectionGroup&&(t+=" collectionGroup="+e.collectionGroup),0<e.filters.length&&(t+=`, filters: [${e.filters.map(e=>Mn(e)).join(", ")}]`),ht(e.limit)||(t+=", limit: "+e.limit),0<e.orderBy.length&&(t+=`, orderBy: [${e.orderBy.map(e=>`${(e=e).field.canonicalString()} (${e.dir})`).join(", ")}]`),e.startAt&&(t=(t=(t+=", startAt: ")+(e.startAt.inclusive?"b:":"a:"))+e.startAt.position.map(e=>cn(e)).join(",")),`Target(${t=e.endAt?(t=(t+=", endAt: ")+(e.endAt.inclusive?"a:":"b:"))+e.endAt.position.map(e=>cn(e)).join(","):t})`})(ii(e))}; limitType=${e.limitType})`}function hi(e,t){return t.isFoundDocument()&&(s=e,o=(a=t).key.path,null!==s.collectionGroup?a.key.hasCollectionId(s.collectionGroup)&&s.path.isPrefixOf(o):x.isDocumentKey(s.path)?s.path.isEqual(o):s.path.isImmediateParentOf(o))&&((e,t)=>{for(var r of ni(e))if(!r.field.isKeyField()&&null===t.data.field(r.field))return;return 1})(e,t)&&((e,t)=>{for(var r of e.filters)if(!r.matches(t))return;return 1})(e,t)&&(a=t,!(s=e).startAt||(n=s.startAt,r=ni(s),i=xn(n,r,a),n.inclusive?i<=0:i<0))&&(!s.endAt||(r=s.endAt,n=ni(s),i=xn(r,n,a),r.inclusive?0<=i:0<i));var r,n,i,s,a,o}function ci(e){return e.collectionGroup||(e.path.length%2==1?e.path.lastSegment():e.path.get(e.path.length-2))}function di(e){return(t,r)=>{let n=!1;for(var i of ni(e)){let e=((e,t,r)=>{var n=e.field.isKeyField()?x.comparator(t.key,r.key):((e,t,r)=>{var n=t.data.field(e),i=r.data.field(e);return null!==n&&null!==i?ln(n,i):T()})(e.field,t,r);switch(e.dir){case"asc":return n;case"desc":return-1*n;default:return T()}})(i,t,r);if(0!==e)return e;n=n||i.field.isKeyField()}return 0}}class fi{constructor(e,t){this.mapKeyFn=e,this.equalsFn=t,this.inner={},this.innerSize=0}get(r){let e=this.mapKeyFn(r),n=this.inner[e];if(void 0!==n)for(let[e,t]of n)if(this.equalsFn(e,r))return t}has(e){return void 0!==this.get(e)}set(t,r){var e=this.mapKeyFn(t),n=this.inner[e];if(void 0===n)this.inner[e]=[[t,r]];else{for(let e=0;e<n.length;e++)if(this.equalsFn(n[e][0],t))return void(n[e]=[t,r]);n.push([t,r])}this.innerSize++}delete(t){var r=this.mapKeyFn(t),n=this.inner[r];if(void 0!==n)for(let e=0;e<n.length;e++)if(this.equalsFn(n[e][0],t))return 1===n.length?delete this.inner[r]:n.splice(e,1),this.innerSize--,!0;return!1}forEach(n){kr(this.inner,(e,t)=>{for(let[e,r]of t)n(e,r)})}isEmpty(){return Rr(this.inner)}size(){return this.innerSize}}let gi=new A(x.comparator);let mi=new A(x.comparator);function pi(...e){let t=mi;for(var r of e)t=t.insert(r.key,r);return t}function yi(e){let r=mi;return e.forEach((e,t)=>r=r.insert(e,t.overlayedDocument)),r}function vi(){return new fi(e=>e.toString(),(e,t)=>e.isEqual(t))}let wi=new A(x.comparator),_i=new C(x.comparator);function O(...e){let t=_i;for(var r of e)t=t.add(r);return t}let bi=new C(E);function Ii(e,t){if(e.useProto3Json){if(isNaN(t))return{doubleValue:"NaN"};if(t===1/0)return{doubleValue:"Infinity"};if(t===-1/0)return{doubleValue:"-Infinity"}}return{doubleValue:ct(t)?"-0":t}}function Ti(e){return{integerValue:""+e}}function Ei(e,t){return dt(t)?Ti(t):Ii(e,t)}class Si{constructor(){this._=void 0}}function xi(e,t){return e instanceof Ri?fn(e=t)||(e=e)&&"doubleValue"in e?t:{integerValue:0}:null}class Ai extends Si{}class Ci extends Si{constructor(e){super(),this.elements=e}}function Di(e,t){var r=Oi(t);for(let t of e.elements)r.some(e=>an(e,t))||r.push(t);return{arrayValue:{values:r}}}class Ni extends Si{constructor(e){super(),this.elements=e}}function ki(e,t){let r=Oi(t);for(let t of e.elements)r=r.filter(e=>!an(e,t));return{arrayValue:{values:r}}}class Ri extends Si{constructor(e,t){super(),this.serializer=e,this.Ie=t}}function Li(e){return N(e.integerValue||e.doubleValue)}function Oi(e){return gn(e)&&e.arrayValue.values?e.arrayValue.values.slice():[]}class Mi{constructor(e,t){this.field=e,this.transform=t}}class Vi{constructor(e,t){this.version=e,this.transformResults=t}}class M{constructor(e,t){this.updateTime=e,this.exists=t}static none(){return new M}static exists(e){return new M(void 0,e)}static updateTime(e){return new M(e)}get isNone(){return void 0===this.updateTime&&void 0===this.exists}isEqual(e){return this.exists===e.exists&&(this.updateTime?!!e.updateTime&&this.updateTime.isEqual(e.updateTime):!e.updateTime)}}function Fi(e,t){return void 0!==e.updateTime?t.isFoundDocument()&&t.version.isEqual(e.updateTime):void 0===e.exists||e.exists===t.isFoundDocument()}class Pi{}function Ui(e,r){if(!e.hasLocalMutations||r&&0===r.fields.length)return null;if(null===r)return e.isNoDocument()?new $i(e.key,M.none()):new ji(e.key,e.data,M.none());{var n,i=e.data,s=En.empty();let t=new C(v.comparator);for(n of r.fields)if(!t.has(n)){let e=i.field(n);null===e&&1<n.length&&(n=n.popLast(),e=i.field(n)),null===e?s.delete(n):s.set(n,e),t=t.add(n)}return new zi(e.key,s,new Fr(t.toArray()),M.none())}}function Bi(e,t,r,n){return e instanceof ji?(s=t,a=r,o=n,Fi((i=e).precondition,s)?(l=i.value.clone(),u=Qi(i.fieldTransforms,o,s),l.setAll(u),s.convertToFoundDocument(s.version,l).setHasLocalMutations(),null):a):e instanceof zi?(i=t,o=r,s=n,Fi((a=e).precondition,i)?(u=Qi(a.fieldTransforms,s,i),(l=i.data).setAll(Gi(a)),l.setAll(u),i.convertToFoundDocument(i.version,l).setHasLocalMutations(),null===o?null:o.unionWith(a.fieldMask.fields).unionWith(a.fieldTransforms.map(e=>e.field))):o):(n=t,t=r,Fi(e.precondition,n)?(n.convertToNoDocument(n.version).setHasLocalMutations(),null):t);var i,s,a,o,l,u}function qi(e,t){return e.type===t.type&&!!e.key.isEqual(t.key)&&!!e.precondition.isEqual(t.precondition)&&(r=e.fieldTransforms,n=t.fieldTransforms,!!(void 0===r&&void 0===n||r&&n&&De(r,n,(e,t)=>(t=t,(e=e).field.isEqual(t.field)&&(e=e.transform,t=t.transform,e instanceof Ci&&t instanceof Ci||e instanceof Ni&&t instanceof Ni?De(e.elements,t.elements,an):e instanceof Ri&&t instanceof Ri?an(e.Ie,t.Ie):e instanceof Ai&&t instanceof Ai)))))&&(0===e.type?e.value.isEqual(t.value):1!==e.type||e.data.isEqual(t.data)&&e.fieldMask.isEqual(t.fieldMask));var r,n}class ji extends Pi{constructor(e,t,r,n=[]){super(),this.key=e,this.value=t,this.precondition=r,this.fieldTransforms=n,this.type=0}getFieldMask(){return null}}class zi extends Pi{constructor(e,t,r,n,i=[]){super(),this.key=e,this.data=t,this.fieldMask=r,this.precondition=n,this.fieldTransforms=i,this.type=1}getFieldMask(){return this.fieldMask}}function Gi(r){let n=new Map;return r.fieldMask.fields.forEach(e=>{var t;e.isEmpty()||(t=r.data.field(e),n.set(e,t))}),n}function Ki(e,t,r){var n,i,s,a=new Map;y(e.length===r.length);for(let h=0;h<r.length;h++){var o=e[h],l=o.transform,u=t.data.field(o.field);a.set(o.field,(n=l,i=u,s=r[h],n instanceof Ci?Di(n,i):n instanceof Ni?ki(n,i):s))}return a}function Qi(e,r,n){var i,s,a,o,l,u,h,c=new Map;for(i of e){let e=i.transform,t=n.data.field(i.field);c.set(i.field,(s=e,a=t,o=r,h=u=l=void 0,s instanceof Ai?(o=o,u=a,h={fields:{[zr]:{stringValue:jr},[Kr]:{timestampValue:{seconds:o.seconds,nanos:o.nanoseconds}}}},(u=u&&Qr(u)?$r(u):u)&&(h.fields[Gr]=u),{mapValue:h}):s instanceof Ci?Di(s,a):s instanceof Ni?ki(s,a):(h=xi(o=s,a),l=Li(h)+Li(o.Ie),fn(h)&&fn(o.Ie)?Ti(l):Ii(o.serializer,l))))}return c}class $i extends Pi{constructor(e,t){super(),this.key=e,this.precondition=t,this.type=2,this.fieldTransforms=[]}getFieldMask(){return null}}class Hi extends Pi{constructor(e,t){super(),this.key=e,this.precondition=t,this.type=3,this.fieldTransforms=[]}getFieldMask(){return null}}class Wi{constructor(e,t,r,n){this.batchId=e,this.localWriteTime=t,this.baseMutations=r,this.mutations=n}applyToRemoteDocument(e,t){var r,n,i,s,a,o,l,u=t.mutationResults;for(let c=0;c<this.mutations.length;c++){var h=this.mutations[c];h.key.isEqual(e.key)&&(r=h,n=e,i=u[c],l=h=o=a=s=void 0,r instanceof ji?(a=n,o=i,h=(s=r).value.clone(),l=Ki(s.fieldTransforms,a,o.transformResults),h.setAll(l),a.convertToFoundDocument(o.version,h).setHasCommittedMutations()):r instanceof zi?(s=n,a=i,Fi((o=r).precondition,s)?(l=Ki(o.fieldTransforms,s,a.transformResults),(h=s.data).setAll(Gi(o)),h.setAll(l),s.convertToFoundDocument(a.version,h).setHasCommittedMutations()):s.convertToUnknownDocument(a.version)):n.convertToNoDocument(i.version).setHasCommittedMutations())}}applyToLocalView(e,t){for(var r of this.baseMutations)r.key.isEqual(e.key)&&(t=Bi(r,e,t,this.localWriteTime));for(var n of this.mutations)n.key.isEqual(e.key)&&(t=Bi(n,e,t,this.localWriteTime));return t}applyToLocalDocumentSet(n,i){let s=vi();return this.mutations.forEach(e=>{var t=n.get(e.key),r=t.overlayedDocument,t=this.applyToLocalView(r,t.mutatedFields),t=Ui(r,i.has(e.key)?null:t);null!==t&&s.set(e.key,t),r.isValidDocument()||r.convertToNoDocument(g.min())}),s}keys(){return this.mutations.reduce((e,t)=>e.add(t.key),O())}isEqual(e){return this.batchId===e.batchId&&De(this.mutations,e.mutations,(e,t)=>qi(e,t))&&De(this.baseMutations,e.baseMutations,(e,t)=>qi(e,t))}}class Yi{constructor(e,t,r,n){this.batch=e,this.commitVersion=t,this.mutationResults=r,this.docVersions=n}static from(e,t,r){y(e.mutations.length===r.length);let n=wi;var i=e.mutations;for(let s=0;s<i.length;s++)n=n.insert(i[s].key,r[s].version);return new Yi(e,t,r,n)}}class Xi{constructor(e,t){this.largestBatchId=e,this.mutation=t}getKey(){return this.mutation.key}isEqual(e){return null!==e&&this.mutation===e.mutation}toString(){return`Overlay{
largestBatchId: ${this.largestBatchId},
mutation: ${this.mutation.toString()}
}`}}class Ji{constructor(e,t){this.count=e,this.unchangedNames=t}}function Zi(e){switch(e){case b.OK:return T();case b.CANCELLED:case b.UNKNOWN:case b.DEADLINE_EXCEEDED:case b.RESOURCE_EXHAUSTED:case b.INTERNAL:case b.UNAVAILABLE:case b.UNAUTHENTICATED:return!1;case b.INVALID_ARGUMENT:case b.NOT_FOUND:case b.ALREADY_EXISTS:case b.PERMISSION_DENIED:case b.FAILED_PRECONDITION:case b.ABORTED:case b.OUT_OF_RANGE:case b.UNIMPLEMENTED:case b.DATA_LOSS:return!0;default:return T()}}function es(e){if(void 0===e)return d("GRPC error has no .code"),b.UNKNOWN;switch(e){case m.OK:return b.OK;case m.CANCELLED:return b.CANCELLED;case m.UNKNOWN:return b.UNKNOWN;case m.DEADLINE_EXCEEDED:return b.DEADLINE_EXCEEDED;case m.RESOURCE_EXHAUSTED:return b.RESOURCE_EXHAUSTED;case m.INTERNAL:return b.INTERNAL;case m.UNAVAILABLE:return b.UNAVAILABLE;case m.UNAUTHENTICATED:return b.UNAUTHENTICATED;case m.INVALID_ARGUMENT:return b.INVALID_ARGUMENT;case m.NOT_FOUND:return b.NOT_FOUND;case m.ALREADY_EXISTS:return b.ALREADY_EXISTS;case m.PERMISSION_DENIED:return b.PERMISSION_DENIED;case m.FAILED_PRECONDITION:return b.FAILED_PRECONDITION;case m.ABORTED:return b.ABORTED;case m.OUT_OF_RANGE:return b.OUT_OF_RANGE;case m.UNIMPLEMENTED:return b.UNIMPLEMENTED;case m.DATA_LOSS:return b.DATA_LOSS;default:return T()}}(e=m=m||{})[e.OK=0]="OK",e[e.CANCELLED=1]="CANCELLED",e[e.UNKNOWN=2]="UNKNOWN",e[e.INVALID_ARGUMENT=3]="INVALID_ARGUMENT",e[e.DEADLINE_EXCEEDED=4]="DEADLINE_EXCEEDED",e[e.NOT_FOUND=5]="NOT_FOUND",e[e.ALREADY_EXISTS=6]="ALREADY_EXISTS",e[e.PERMISSION_DENIED=7]="PERMISSION_DENIED",e[e.UNAUTHENTICATED=16]="UNAUTHENTICATED",e[e.RESOURCE_EXHAUSTED=8]="RESOURCE_EXHAUSTED",e[e.FAILED_PRECONDITION=9]="FAILED_PRECONDITION",e[e.ABORTED=10]="ABORTED",e[e.OUT_OF_RANGE=11]="OUT_OF_RANGE",e[e.UNIMPLEMENTED=12]="UNIMPLEMENTED",e[e.INTERNAL=13]="INTERNAL",e[e.UNAVAILABLE=14]="UNAVAILABLE",e[e.DATA_LOSS=15]="DATA_LOSS";let ts=new oe([4294967295,4294967295],0);function rs(e){var t=Se().encode(e),r=new le;return r.update(t),new Uint8Array(r.digest())}function ns(e){var t=new DataView(e.buffer),r=t.getUint32(0,!0),n=t.getUint32(4,!0),i=t.getUint32(8,!0),t=t.getUint32(12,!0);return[new oe([r,n],0),new oe([i,t],0)]}class is{constructor(e,t,r){if(this.bitmap=e,this.padding=t,this.hashCount=r,t<0||8<=t)throw new ss("Invalid padding: "+t);if(r<0)throw new ss("Invalid hash count: "+r);if(0<e.length&&0===this.hashCount)throw new ss("Invalid hash count: "+r);if(0===e.length&&0!==t)throw new ss("Invalid padding when bitmap length is 0: "+t);this.Ee=8*e.length-t,this.de=oe.fromNumber(this.Ee)}Ae(e,t,r){let n=e.add(t.multiply(oe.fromNumber(r)));return(n=1===n.compare(ts)?new oe([n.getBits(0),n.getBits(1)],0):n).modulo(this.de).toNumber()}Re(e){return!!(this.bitmap[Math.floor(e/8)]&1<<e%8)}mightContain(e){if(0===this.Ee)return!1;let t=rs(e),[r,n]=ns(t);for(let i=0;i<this.hashCount;i++){let e=this.Ae(r,n,i);if(!this.Re(e))return!1}return!0}static create(e,t,r){let n=e%8==0?0:8-e%8,i=new Uint8Array(Math.ceil(e/8)),s=new is(i,n,t);return r.forEach(e=>s.insert(e)),s}insert(i){if(0!==this.Ee){let e=rs(i),[t,r]=ns(e);for(let n=0;n<this.hashCount;n++){let e=this.Ae(t,r,n);this.Ve(e)}}}Ve(e){var t=Math.floor(e/8);this.bitmap[t]|=1<<e%8}}class ss extends Error{constructor(){super(...arguments),this.name="BloomFilterError"}}class as{constructor(e,t,r,n,i){this.snapshotVersion=e,this.targetChanges=t,this.targetMismatches=r,this.documentUpdates=n,this.resolvedLimboDocuments=i}static createSynthesizedRemoteEventForCurrentChange(e,t,r){var n=new Map;return n.set(e,os.createSynthesizedTargetChangeForCurrentChange(e,t,r)),new as(g.min(),n,new A(E),gi,O())}}class os{constructor(e,t,r,n,i){this.resumeToken=e,this.current=t,this.addedDocuments=r,this.modifiedDocuments=n,this.removedDocuments=i}static createSynthesizedTargetChangeForCurrentChange(e,t,r){return new os(r,t,O(),O(),O())}}class ls{constructor(e,t,r,n){this.me=e,this.removedTargetIds=t,this.key=r,this.fe=n}}class us{constructor(e,t){this.targetId=e,this.ge=t}}class hs{constructor(e,t,r=D.EMPTY_BYTE_STRING,n=null){this.state=e,this.targetIds=t,this.resumeToken=r,this.cause=n}}class cs{constructor(){this.pe=0,this.ye=gs(),this.we=D.EMPTY_BYTE_STRING,this.Se=!1,this.be=!0}get current(){return this.Se}get resumeToken(){return this.we}get De(){return 0!==this.pe}get ve(){return this.be}Ce(e){0<e.approximateByteSize()&&(this.be=!0,this.we=e)}Fe(){let r=O(),n=O(),i=O();return this.ye.forEach((e,t)=>{switch(t){case 0:r=r.add(e);break;case 2:n=n.add(e);break;case 1:i=i.add(e);break;default:T()}}),new os(this.we,this.Se,r,n,i)}Me(){this.be=!1,this.ye=gs()}xe(e,t){this.be=!0,this.ye=this.ye.insert(e,t)}Oe(e){this.be=!0,this.ye=this.ye.remove(e)}Ne(){this.pe+=1}Be(){--this.pe,y(0<=this.pe)}Le(){this.be=!0,this.Se=!0}}class ds{constructor(e){this.ke=e,this.qe=new Map,this.Qe=gi,this.$e=fs(),this.Ue=fs(),this.Ke=new A(E)}We(e){for(var t of e.me)e.fe&&e.fe.isFoundDocument()?this.Ge(t,e.fe):this.ze(t,e.key,e.fe);for(var r of e.removedTargetIds)this.ze(r,e.key,e.fe)}je(r){this.forEachTarget(r,e=>{var t=this.He(e);switch(r.state){case 0:this.Je(e)&&t.Ce(r.resumeToken);break;case 1:t.Be(),t.De||t.Me(),t.Ce(r.resumeToken);break;case 2:t.Be(),t.De||this.removeTarget(e);break;case 3:this.Je(e)&&(t.Le(),t.Ce(r.resumeToken));break;case 4:this.Je(e)&&(this.Ye(e),t.Ce(r.resumeToken));break;default:T()}})}forEachTarget(e,r){0<e.targetIds.length?e.targetIds.forEach(r):this.qe.forEach((e,t)=>{this.Je(t)&&r(t)})}Ze(n){let i=n.targetId,e=n.ge.count,t=this.Xe(i);if(t){var r=t.target;if(Hn(r))if(0===e){let e=new x(r.path);this.ze(i,e,k.newNoDocument(e,g.min()))}else y(1===e);else{let r=this.et(i);if(r!==e){let e=this.tt(n),t=e?this.nt(e,n,r):1;if(0!==t){this.Ye(i);let e=2===t?"TargetPurposeExistenceFilterMismatchBloom":"TargetPurposeExistenceFilterMismatch";this.Ke=this.Ke.insert(i,e)}}}}}tt(e){var t=e.ge.unchangedNames;if(!t||!t.bits)return null;var{bits:{bitmap:t="",padding:r=0},hashCount:n=0}=t;let i,s;try{i=qr(t).toUint8Array()}catch(e){if(e instanceof Pr)return me("Decoding the base64 bloom filter in existence filter failed ("+e.message+"); ignoring the bloom filter and falling back to full re-query."),null;throw e}try{s=new is(i,r,n)}catch(e){return me(e instanceof ss?"BloomFilter error: ":"Applying bloom filter failed: ",e),null}return 0===s.Ee?null:s}nt(e,t,r){return t.ge.count===r-this.st(e,t.targetId)?0:2}st(r,n){var e=this.ke.getRemoteKeysForTarget(n);let i=0;return e.forEach(e=>{var t=this.ke.it(),t=`projects/${t.projectId}/databases/${t.database}/documents/`+e.path.canonicalString();r.mightContain(t)||(this.ze(n,e,null),i++)}),i}ot(n){let i=new Map,s=(this.qe.forEach((e,t)=>{var r=this.Xe(t);if(r){if(e.current&&Hn(r.target)){let e=new x(r.target.path);this._t(e).has(t)||this.ut(t,e)||this.ze(t,e,k.newNoDocument(e,n))}e.ve&&(i.set(t,e.Fe()),e.Me())}}),O());this.Ue.forEach((e,t)=>{let r=!0;t.forEachWhile(e=>{var t=this.Xe(e);return!t||"TargetPurposeLimboResolution"===t.purpose||(r=!1)}),r&&(s=s.add(e))}),this.Qe.forEach((e,t)=>t.setReadTime(n));var e=new as(n,i,this.Ke,this.Qe,s);return this.Qe=gi,this.$e=fs(),this.Ue=fs(),this.Ke=new A(E),e}Ge(e,t){var r;this.Je(e)&&(r=this.ut(e,t.key)?2:0,this.He(e).xe(t.key,r),this.Qe=this.Qe.insert(t.key,t),this.$e=this.$e.insert(t.key,this._t(t.key).add(e)),this.Ue=this.Ue.insert(t.key,this.ct(t.key).add(e)))}ze(e,t,r){var n;this.Je(e)&&(n=this.He(e),this.ut(e,t)?n.xe(t,1):n.Oe(t),this.Ue=this.Ue.insert(t,this.ct(t).delete(e)),this.Ue=this.Ue.insert(t,this.ct(t).add(e)),r)&&(this.Qe=this.Qe.insert(t,r))}removeTarget(e){this.qe.delete(e)}et(e){var t=this.He(e).Fe();return this.ke.getRemoteKeysForTarget(e).size+t.addedDocuments.size-t.removedDocuments.size}Ne(e){this.He(e).Ne()}He(e){let t=this.qe.get(e);return t||(t=new cs,this.qe.set(e,t)),t}ct(e){let t=this.Ue.get(e);return t||(t=new C(E),this.Ue=this.Ue.insert(e,t)),t}_t(e){let t=this.$e.get(e);return t||(t=new C(E),this.$e=this.$e.insert(e,t)),t}Je(e){var t=null!==this.Xe(e);return t||p("WatchChangeAggregator","Detected inactive target",e),t}Xe(e){var t=this.qe.get(e);return t&&t.De?null:this.ke.lt(e)}Ye(t){this.qe.set(t,new cs),this.ke.getRemoteKeysForTarget(t).forEach(e=>{this.ze(t,e,null)})}ut(e,t){return this.ke.getRemoteKeysForTarget(e).has(t)}}function fs(){return new A(x.comparator)}function gs(){return new A(x.comparator)}let ms={asc:"ASCENDING",desc:"DESCENDING"},ps={"<":"LESS_THAN","<=":"LESS_THAN_OR_EQUAL",">":"GREATER_THAN",">=":"GREATER_THAN_OR_EQUAL","==":"EQUAL","!=":"NOT_EQUAL","array-contains":"ARRAY_CONTAINS",in:"IN","not-in":"NOT_IN","array-contains-any":"ARRAY_CONTAINS_ANY"},ys={and:"AND",or:"OR"};class vs{constructor(e,t){this.databaseId=e,this.useProto3Json=t}}function ws(e,t){return e.useProto3Json||ht(t)?t:{value:t}}function _s(e,t){return e.useProto3Json?`${new Date(1e3*t.seconds).toISOString().replace(/\.\d*/,"").replace("Z","")}.${("000000000"+t.nanoseconds).slice(-9)}Z`:{seconds:""+t.seconds,nanos:t.nanoseconds}}function bs(e,t){return e.useProto3Json?t.toBase64():t.toUint8Array()}function V(e){return y(!!e),g.fromTimestamp((t=Br(e),new h(t.seconds,t.nanos)));var t}function Is(e,t){return Ts(e,t).canonicalString()}function Ts(e,t){e=e;var r=new S(["projects",e.projectId,"databases",e.database]).child("documents");return void 0===t?r:r.child(t)}function Es(e){var t=S.fromString(e);return y(Gs(t)),t}function Ss(e,t){return Is(e.databaseId,t.path)}function xs(e,t){var r=Es(t);if(r.get(1)!==e.databaseId.projectId)throw new I(b.INVALID_ARGUMENT,"Tried to deserialize key from different project: "+r.get(1)+" vs "+e.databaseId.projectId);if(r.get(3)!==e.databaseId.database)throw new I(b.INVALID_ARGUMENT,"Tried to deserialize key from different database: "+r.get(3)+" vs "+e.databaseId.database);return new x(Ns(r))}function As(e,t){return Is(e.databaseId,t)}function Cs(e){var t=Es(e);return 4===t.length?S.emptyPath():Ns(t)}function Ds(e){return new S(["projects",e.databaseId.projectId,"databases",e.databaseId.database]).canonicalString()}function Ns(e){return y(4<e.length&&"documents"===e.get(4)),e.popFirst(5)}function ks(e,t,r){return{name:Ss(e,t),fields:r.value.mapValue.fields}}function Rs(e,t,r){var n=xs(e,t.name),i=V(t.updateTime),s=t.createTime?V(t.createTime):g.min(),a=new En({mapValue:{fields:t.fields}}),n=k.newFoundDocument(n,i,s,a);return r&&n.setHasCommittedMutations(),r?n.setHasCommittedMutations():n}function Ls(e,t){let r;if(t instanceof ji)r={update:ks(e,t.key,t.value)};else if(t instanceof $i)r={delete:Ss(e,t.key)};else if(t instanceof zi)r={update:ks(e,t.key,t.data),updateMask:(e=>{let t=[];return e.fields.forEach(e=>t.push(e.canonicalString())),{fieldPaths:t}})(t.fieldMask)};else{if(!(t instanceof Hi))return T();r={verify:Ss(e,t.key)}}return 0<t.fieldTransforms.length&&(r.updateTransforms=t.fieldTransforms.map(e=>{var t=e.transform;if(t instanceof Ai)return{fieldPath:e.field.canonicalString(),setToServerValue:"REQUEST_TIME"};if(t instanceof Ci)return{fieldPath:e.field.canonicalString(),appendMissingElements:{values:t.elements}};if(t instanceof Ni)return{fieldPath:e.field.canonicalString(),removeAllFromArray:{values:t.elements}};if(t instanceof Ri)return{fieldPath:e.field.canonicalString(),increment:t.Ie};throw T()})),t.precondition.isNone||(r.currentDocument=(e=e,void 0!==(t=t.precondition).updateTime?{updateTime:(n=t.updateTime,_s(e,n.toTimestamp()))}:void 0!==t.exists?{exists:t.exists}:T())),r;var n}function Os(i,t){let r=t.currentDocument?void 0!==(s=t.currentDocument).updateTime?M.updateTime(V(s.updateTime)):void 0!==s.exists?M.exists(s.exists):M.none():M.none(),n=t.updateTransforms?t.updateTransforms.map(r=>{{var e=i;let t=null;if("setToServerValue"in r)y("REQUEST_TIME"===r.setToServerValue),t=new Ai;else if("appendMissingElements"in r){let e=r.appendMissingElements.values||[];t=new Ci(e)}else if("removeAllFromArray"in r){let e=r.removeAllFromArray.values||[];t=new Ni(e)}else"increment"in r?t=new Ri(e,r.increment):T();var n=v.fromServerFormat(r.fieldPath);return new Mi(n,t)}}):[];var s,a;if(t.update){t.update.name;var o=xs(i,t.update.name),l=new En({mapValue:{fields:t.update.fields}});if(t.updateMask){s=t.updateMask,a=s.fieldPaths||[];let e=new Fr(a.map(e=>v.fromServerFormat(e)));return new zi(o,l,e,r,n)}return new ji(o,l,r,n)}if(t.delete){let e=xs(i,t.delete);return new $i(e,r)}if(t.verify){let e=xs(i,t.verify);return new Hi(e,r)}return T()}function Ms(e,n){return e&&0<e.length?(y(void 0!==n),e.map(t=>{{var r=n;let e=t.updateTime?V(t.updateTime):V(r);return e.isEqual(g.min())&&(e=V(r)),new Vi(e,t.transformResults||[])}})):[]}function Vs(e,t){return{documents:[As(e,t.path)]}}function Fs(e,t){var r={structuredQuery:{}},n=t.path;let i;null!==t.collectionGroup?(i=n,r.structuredQuery.from=[{collectionId:t.collectionGroup,allDescendants:!0}]):(i=n.popLast(),r.structuredQuery.from=[{collectionId:n.lastSegment()}]),r.parent=As(e,i);n=(e=>{if(0!==e.length)return function r(e){return e instanceof R?(e=>{if("=="===e.op){if(pn(e.value))return{unaryFilter:{field:js(e.field),op:"IS_NAN"}};if(mn(e.value))return{unaryFilter:{field:js(e.field),op:"IS_NULL"}}}else if("!="===e.op){if(pn(e.value))return{unaryFilter:{field:js(e.field),op:"IS_NOT_NAN"}};if(mn(e.value))return{unaryFilter:{field:js(e.field),op:"IS_NOT_NULL"}}}return{fieldFilter:{field:js(e.field),op:Bs(e.op),value:e.value}}})(e):e instanceof L?(e=>{let t=e.getFilters().map(e=>r(e));return 1===t.length?t[0]:{compositeFilter:{op:qs(e.op),filters:t}}})(e):T()}(L.create(e,"and"))})(t.filters),n&&(r.structuredQuery.where=n),n=(e=>{if(0!==e.length)return e.map(e=>({field:js((e=e).field),direction:(e=e.dir,ms[e])}))})(t.orderBy),n&&(r.structuredQuery.orderBy=n),n=ws(e,t.limit);return null!==n&&(r.structuredQuery.limit=n),t.startAt&&(r.structuredQuery.startAt={before:(e=t.startAt).inclusive,values:e.position}),t.endAt&&(r.structuredQuery.endAt={before:!(e=t.endAt).inclusive,values:e.position}),{ht:r,parent:i}}function Ps(e){let t=Cs(e.parent);var r,n=e.structuredQuery,i=n.from?n.from.length:0;let s=null;if(0<i){y(1===i);let e=n.from[0];e.allDescendants?s=e.collectionId:t=t.child(e.collectionId)}let a=[],o=(n.where&&(a=(e=n.where,(i=function t(e){return void 0!==e.unaryFilter?(i=>{switch(i.unaryFilter.op){case"IS_NAN":let e=zs(i.unaryFilter.field);return R.create(e,"==",{doubleValue:NaN});case"IS_NULL":let t=zs(i.unaryFilter.field);return R.create(t,"==",{nullValue:"NULL_VALUE"});case"IS_NOT_NAN":let r=zs(i.unaryFilter.field);return R.create(r,"!=",{doubleValue:NaN});case"IS_NOT_NULL":let n=zs(i.unaryFilter.field);return R.create(n,"!=",{nullValue:"NULL_VALUE"});default:return T()}})(e):void 0!==e.fieldFilter?(e=>R.create(zs(e.fieldFilter.field),(e=>{switch(e){case"EQUAL":return"==";case"NOT_EQUAL":return"!=";case"GREATER_THAN":return">";case"GREATER_THAN_OR_EQUAL":return">=";case"LESS_THAN":return"<";case"LESS_THAN_OR_EQUAL":return"<=";case"ARRAY_CONTAINS":return"array-contains";case"IN":return"in";case"NOT_IN":return"not-in";case"ARRAY_CONTAINS_ANY":return"array-contains-any";default:return T()}})(e.fieldFilter.op),e.fieldFilter.value))(e):void 0!==e.compositeFilter?(e=>L.create(e.compositeFilter.filters.map(e=>t(e)),(e=>{switch(e){case"AND":return"and";case"OR":return"or";default:return T()}})(e.compositeFilter.op)))(e):T()}(e))instanceof L&&Rn(i)?i.getFilters():[i])),[]),l=(n.orderBy&&(o=n.orderBy.map(e=>(e=e,new Cn(zs(e.field),(e=>{switch(e){case"ASCENDING":return"asc";case"DESCENDING":return"desc";default:return}})(e.direction))))),null),u=(n.limit&&(l=(e=n.limit,ht(i="object"==typeof e?e.value:e)?null:i)),null),h=(n.startAt&&(u=(e=n.startAt,i=!!e.before,r=e.values||[],new Sn(r,i))),null);return n.endAt&&(h=(e=n.endAt,r=!e.before,i=e.values||[],new Sn(i,r))),Zn(t,s,o,a,l,"F",u,h)}function Us(e,t){var r=(e=>{switch(e){case"TargetPurposeListen":return null;case"TargetPurposeExistenceFilterMismatch":return"existence-filter-mismatch";case"TargetPurposeExistenceFilterMismatchBloom":return"existence-filter-mismatch-bloom";case"TargetPurposeLimboResolution":return"limbo-document";default:return T()}})(t.purpose);return null==r?null:{"goog-listen-tags":r}}function Bs(e){return ps[e]}function qs(e){return ys[e]}function js(e){return{fieldPath:e.canonicalString()}}function zs(e){return v.fromServerFormat(e.fieldPath)}function Gs(e){return 4<=e.length&&"projects"===e.get(0)&&"databases"===e.get(2)}class Ks{constructor(e,t,r,n,i=g.min(),s=g.min(),a=D.EMPTY_BYTE_STRING,o=null){this.target=e,this.targetId=t,this.purpose=r,this.sequenceNumber=n,this.snapshotVersion=i,this.lastLimboFreeSnapshotVersion=s,this.resumeToken=a,this.expectedCount=o}withSequenceNumber(e){return new Ks(this.target,this.targetId,this.purpose,e,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,this.expectedCount)}withResumeToken(e,t){return new Ks(this.target,this.targetId,this.purpose,this.sequenceNumber,t,this.lastLimboFreeSnapshotVersion,e,null)}withExpectedCount(e){return new Ks(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,e)}withLastLimboFreeSnapshotVersion(e){return new Ks(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,e,this.resumeToken,this.expectedCount)}}class Qs{constructor(e){this.Tt=e}}function $s(e,t){var r,n=t.key,i={prefixPath:n.getCollectionPath().popLast().toArray(),collectionGroup:n.collectionGroup,documentId:n.path.lastSegment(),readTime:Hs(t.readTime),hasCommittedMutations:t.hasCommittedMutations};if(t.isFoundDocument())i.document={name:Ss(e=e.Tt,(r=t).key),fields:r.data.value.mapValue.fields,updateTime:_s(e,r.version.toTimestamp()),createTime:_s(e,r.createTime.toTimestamp())};else if(t.isNoDocument())i.noDocument={path:n.path.toArray(),readTime:Ws(t.version)};else{if(!t.isUnknownDocument())return T();i.unknownDocument={path:n.path.toArray(),version:Ws(t.version)}}return i}function Hs(e){var t=e.toTimestamp();return[t.seconds,t.nanoseconds]}function Ws(e){var t=e.toTimestamp();return{seconds:t.seconds,nanoseconds:t.nanoseconds}}function Ys(e){var t=new h(e.seconds,e.nanoseconds);return g.fromTimestamp(t)}function Xs(t,r){let e=(r.baseMutations||[]).map(e=>Os(t.Tt,e));for(let s=0;s<r.mutations.length-1;++s){let t=r.mutations[s];if(s+1<r.mutations.length&&void 0!==r.mutations[s+1].transform){let e=r.mutations[s+1];t.updateTransforms=e.transform.fieldTransforms,r.mutations.splice(s+1,1),++s}}let n=r.mutations.map(e=>Os(t.Tt,e)),i=h.fromMillis(r.localWriteTimeMs);return new Wi(r.batchId,i,e,n)}function Js(e){var t,r=Ys(e.readTime),n=void 0!==e.lastLimboFreeSnapshotVersion?Ys(e.lastLimboFreeSnapshotVersion):g.min(),i=void 0!==e.query.documents?(y(1===(t=e.query).documents.length),ii(ei(Cs(t.documents[0])))):ii(Ps(e.query));return new Ks(i,e.targetId,"TargetPurposeListen",e.lastListenSequenceNumber,r,n,D.fromBase64String(e.resumeToken))}function Zs(e,t){var r=Ws(t.snapshotVersion),n=Ws(t.lastLimboFreeSnapshotVersion),i=Hn(t.target)?Vs(e.Tt,t.target):Fs(e.Tt,t.target).ht,s=t.resumeToken.toBase64();return{targetId:t.targetId,canonicalId:Qn(t.target),readTime:r,resumeToken:s,lastListenSequenceNumber:t.sequenceNumber,lastLimboFreeSnapshotVersion:n,query:i}}function ea(e){var t=Ps({parent:e.parent,structuredQuery:e.structuredQuery});return"LAST"===e.limitType?ai(t,t.limit,"L"):t}function ta(e,t){return new Xi(t.largestBatchId,Os(e.Tt,t.overlayMutation))}function ra(e,t){var r=t.path.lastSegment();return[e,o(t.path.popLast()),r]}function na(e,t,r,n){return{indexId:e,uid:t,sequenceNumber:r,readTime:Ws(n.readTime),documentKey:o(n.documentKey.path),largestBatchId:n.largestBatchId}}class ia{getBundleMetadata(e,t){return sa(e).get(t).next(e=>{if(e)return{id:(e=e).bundleId,createTime:Ys(e.createTime),version:e.version}})}saveBundleMetadata(e,t){return sa(e).put({bundleId:(e=t).id,createTime:Ws(V(e.createTime)),version:e.version})}getNamedQuery(e,t){return aa(e).get(t).next(e=>{if(e)return{name:(e=e).name,query:ea(e.bundledQuery),readTime:Ys(e.readTime)}})}saveNamedQuery(e,t){return aa(e).put({name:(e=t).name,readTime:Ws(V(e.readTime)),bundledQuery:e.bundledQuery})}}function sa(e){return r(e,Ht)}function aa(e){return r(e,Wt)}class oa{constructor(e,t){this.serializer=e,this.userId=t}static It(e,t){var r=t.uid||"";return new oa(e,r)}getOverlay(e,t){return la(e).get(ra(this.userId,t)).next(e=>e?ta(this.serializer,e):null)}getOverlays(e,t){let r=vi();return w.forEach(t,t=>this.getOverlay(e,t).next(e=>{null!==e&&r.set(t,e)})).next(()=>r)}saveOverlays(n,i,e){let s=[];return e.forEach((e,t)=>{var r=new Xi(i,t);s.push(this.Et(n,r))}),w.waitFor(s)}removeOverlaysForBatchId(r,e,n){let t=new Set,i=(e.forEach(e=>t.add(o(e.getCollectionPath()))),[]);return t.forEach(e=>{var t=IDBKeyRange.bound([this.userId,e,n],[this.userId,e,n+1],!1,!0);i.push(la(r).J(lr,t))}),w.waitFor(i)}getOverlaysForCollection(e,t,r){let n=vi(),i=o(t),s=IDBKeyRange.bound([this.userId,i,r],[this.userId,i,Number.POSITIVE_INFINITY],!0);return la(e).G(lr,s).next(e=>{for(var t of e){let e=ta(this.serializer,t);n.set(e.getKey(),e)}return n})}getOverlaysForCollectionGroup(e,t,r,i){let s=vi(),a;var n=IDBKeyRange.bound([this.userId,t,r],[this.userId,t,Number.POSITIVE_INFINITY],!0);return la(e).Z({index:hr,range:n},(e,t,r)=>{var n=ta(this.serializer,t);s.size()<i||n.largestBatchId===a?(s.set(n.getKey(),n),a=n.largestBatchId):r.done()}).next(()=>s)}Et(e,t){return la(e).put(((e,t,r)=>{var[,n,i]=ra(t,r.mutation.key);return{userId:t,collectionPath:n,documentId:i,collectionGroup:r.mutation.key.getCollectionGroup(),largestBatchId:r.largestBatchId,overlayMutation:Ls(e.Tt,r.mutation)}})(this.serializer,this.userId,t))}}function la(e){return r(e,ar)}class ua{dt(e){return r(e,dr)}getSessionToken(e){return this.dt(e).get("sessionToken").next(e=>{var t=null==e?void 0:e.value;return t?D.fromUint8Array(t):D.EMPTY_BYTE_STRING})}setSessionToken(e,t){return this.dt(e).put({name:"sessionToken",value:t.toUint8Array()})}}class ha{constructor(){}At(e,t){this.Rt(e,t),t.Vt()}Rt(t,r){if("nullValue"in t)this.ft(r,5);else if("booleanValue"in t)this.ft(r,10),r.gt(t.booleanValue?1:0);else if("integerValue"in t)this.ft(r,15),r.gt(N(t.integerValue));else if("doubleValue"in t){var e=N(t.doubleValue);isNaN(e)?this.ft(r,13):(this.ft(r,15),ct(e)?r.gt(0):r.gt(e))}else if("timestampValue"in t){let e=t.timestampValue;this.ft(r,20),"string"==typeof e&&(e=Br(e)),r.yt(""+(e.seconds||"")),r.gt(e.nanos||0)}else"stringValue"in t?(this.wt(t.stringValue,r),this.St(r)):"bytesValue"in t?(this.ft(r,30),r.bt(qr(t.bytesValue)),this.St(r)):"referenceValue"in t?this.Dt(t.referenceValue,r):"geoPointValue"in t?(e=t.geoPointValue,this.ft(r,45),r.gt(e.latitude||0),r.gt(e.longitude||0)):"mapValue"in t?_n(t)?this.ft(r,Number.MAX_SAFE_INTEGER):vn(t)?this.vt(t.mapValue,r):(this.Ct(t.mapValue,r),this.St(r)):"arrayValue"in t?(this.Ft(t.arrayValue,r),this.St(r)):T()}wt(e,t){this.ft(t,25),this.Mt(e,t)}Mt(e,t){t.yt(e)}Ct(e,t){var r=e.fields||{};this.ft(t,55);for(let e of Object.keys(r))this.wt(e,t),this.Rt(r[e],t)}vt(e,t){var r=e.fields||{},n=(this.ft(t,53),rn),i=(null==(i=null==(i=r[n].arrayValue)?void 0:i.values)?void 0:i.length)||0;this.ft(t,15),t.gt(N(i)),this.wt(n,t),this.Rt(r[n],t)}Ft(e,t){var r=e.values||[];this.ft(t,50);for(let e of r)this.Rt(e,t)}Dt(e,t){this.ft(t,37),x.fromName(e).path.forEach(e=>{this.ft(t,60),this.Mt(e,t)})}ft(e,t){e.gt(t)}St(e){e.gt(2)}}ha.xt=new ha;function ca(e){var t=64-(e=>{let t=0;for(let n=0;n<8;++n){var r=(e=>{if(0===e)return 8;let t=0;return e>>4||(t+=4,e<<=4),e>>6||(t+=2,e<<=2),e>>7||(t+=1),t})(255&e[n]);if(t+=r,8!==r)break}return t})(e);return Math.ceil(t/8)}class da{constructor(){this.buffer=new Uint8Array(1024),this.position=0}Ot(e){var t=e[Symbol.iterator]();let r=t.next();for(;!r.done;)this.Nt(r.value),r=t.next();this.Bt()}Lt(e){var t=e[Symbol.iterator]();let r=t.next();for(;!r.done;)this.kt(r.value),r=t.next();this.qt()}Qt(e){for(var t of e){let e=t.charCodeAt(0);if(e<128)this.Nt(e);else if(e<2048)this.Nt(960|e>>>6),this.Nt(128|63&e);else if(t<"\ud800"||"\udbff"<t)this.Nt(480|e>>>12),this.Nt(128|63&e>>>6),this.Nt(128|63&e);else{let e=t.codePointAt(0);this.Nt(240|e>>>18),this.Nt(128|63&e>>>12),this.Nt(128|63&e>>>6),this.Nt(128|63&e)}}this.Bt()}$t(e){for(var t of e){let e=t.charCodeAt(0);if(e<128)this.kt(e);else if(e<2048)this.kt(960|e>>>6),this.kt(128|63&e);else if(t<"\ud800"||"\udbff"<t)this.kt(480|e>>>12),this.kt(128|63&e>>>6),this.kt(128|63&e);else{let e=t.codePointAt(0);this.kt(240|e>>>18),this.kt(128|63&e>>>12),this.kt(128|63&e>>>6),this.kt(128|63&e)}}this.qt()}Ut(e){var t=this.Kt(e),r=ca(t);this.Wt(1+r),this.buffer[this.position++]=255&r;for(let n=t.length-r;n<t.length;++n)this.buffer[this.position++]=255&t[n]}Gt(e){var t=this.Kt(e),r=ca(t);this.Wt(1+r),this.buffer[this.position++]=~(255&r);for(let n=t.length-r;n<t.length;++n)this.buffer[this.position++]=~(255&t[n])}zt(){this.jt(255),this.jt(255)}Ht(){this.Jt(255),this.Jt(255)}reset(){this.position=0}seed(e){this.Wt(e.length),this.buffer.set(e,this.position),this.position+=e.length}Yt(){return this.buffer.slice(0,this.position)}Kt(e){e=e,(t=new DataView(new ArrayBuffer(8))).setFloat64(0,e,!1);var t,r=new Uint8Array(t.buffer),n=!!(128&r[0]);r[0]^=n?255:128;for(let i=1;i<r.length;++i)r[i]^=n?255:0;return r}Nt(e){var t=255&e;0==t?(this.jt(0),this.jt(255)):255==t?(this.jt(255),this.jt(0)):this.jt(t)}kt(e){var t=255&e;0==t?(this.Jt(0),this.Jt(255)):255==t?(this.Jt(255),this.Jt(0)):this.Jt(e)}Bt(){this.jt(0),this.jt(1)}qt(){this.Jt(0),this.Jt(1)}jt(e){this.Wt(1),this.buffer[this.position++]=e}Jt(e){this.Wt(1),this.buffer[this.position++]=~e}Wt(e){var t=e+this.position;if(!(t<=this.buffer.length)){let e=2*this.buffer.length;e<t&&(e=t);t=new Uint8Array(e);t.set(this.buffer),this.buffer=t}}}class fa{constructor(e){this.Zt=e}bt(e){this.Zt.Ot(e)}yt(e){this.Zt.Qt(e)}gt(e){this.Zt.Ut(e)}Vt(){this.Zt.zt()}}class ga{constructor(e){this.Zt=e}bt(e){this.Zt.Lt(e)}yt(e){this.Zt.$t(e)}gt(e){this.Zt.Gt(e)}Vt(){this.Zt.Ht()}}class ma{constructor(){this.Zt=new da,this.Xt=new fa(this.Zt),this.en=new ga(this.Zt)}seed(e){this.Zt.seed(e)}tn(e){return 0===e?this.Xt:this.en}Yt(){return this.Zt.Yt()}reset(){this.Zt.reset()}}class pa{constructor(e,t,r,n){this.indexId=e,this.documentKey=t,this.arrayValue=r,this.directionalValue=n}nn(){var e=this.directionalValue.length,t=0===e||255===this.directionalValue[e-1]?e+1:e,r=new Uint8Array(t);return r.set(this.directionalValue,0),t!==e?r.set([0],this.directionalValue.length):++r[r.length-1],new pa(this.indexId,this.documentKey,this.arrayValue,r)}}function ya(e,t){var r=e.indexId-t.indexId;return 0!=r||0!==(r=va(e.arrayValue,t.arrayValue))||0!==(r=va(e.directionalValue,t.directionalValue))?r:x.comparator(e.documentKey,t.documentKey)}function va(e,t){for(let n=0;n<e.length&&n<t.length;++n){var r=e[n]-t[n];if(0!=r)return r}return e.length-t.length}class wa{constructor(e){this.rn=new C((e,t)=>v.comparator(e.field,t.field)),this.collectionId=null!=e.collectionGroup?e.collectionGroup:e.path.lastSegment(),this.sn=e.orderBy,this._n=[];for(var t of e.filters){let e=t;e.isInequality()?this.rn=this.rn.add(e):this._n.push(e)}}get an(){return 1<this.rn.size}un(e){if(y(e.collectionGroup===this.collectionId),this.an)return!1;let t=Fe(e);if(void 0!==t&&!this.cn(t))return!1;var r=Pe(e);let n=new Set,i=0,s=0;for(;i<r.length&&this.cn(r[i]);++i)n=n.add(r[i].fieldPath.canonicalString());if(i!==r.length){if(0<this.rn.size){let t=this.rn.getIterator().getNext();if(!n.has(t.field.canonicalString())){let e=r[i];if(!this.ln(t,e)||!this.hn(this.sn[s++],e))return!1}++i}for(;i<r.length;++i){let e=r[i];if(s>=this.sn.length||!this.hn(this.sn[s++],e))return!1}}return!0}Pn(){if(this.an)return null;let e=new C(v.comparator);var t,r,n=[];for(t of this._n)t.field.isKeyField()||("array-contains"===t.op||"array-contains-any"===t.op?n.push(new Ue(t.field,2)):e.has(t.field)||(e=e.add(t.field),n.push(new Ue(t.field,0))));for(r of this.sn)r.field.isKeyField()||e.has(r.field)||(e=e.add(r.field),n.push(new Ue(r.field,"asc"===r.dir?0:1)));return new Ve(Ve.UNKNOWN_ID,this.collectionId,n,Be.empty())}cn(e){for(var t of this._n)if(this.ln(t,e))return!0;return!1}ln(e,t){var r;return!(void 0===e||!e.field.isEqual(t.fieldPath))&&(r="array-contains"===e.op||"array-contains-any"===e.op,2===t.kind==r)}hn(e,t){return!!e.field.isEqual(t.fieldPath)&&(0===t.kind&&"asc"===e.dir||1===t.kind&&"desc"===e.dir)}}function _a(e){var t;return 0===e.getFilters().length?[]:(t=function t(e){if(y(e instanceof R||e instanceof L),e instanceof R)return e;if(1===e.filters.length)return t(e.filters[0]);let r=e.filters.map(e=>t(e));let n=L.create(r,e.op);return n=xa(n),Ta(n)?n:(y(n instanceof L),y(Nn(n)),y(1<n.filters.length),n.filters.reduce((e,t)=>Ea(e,t)))}(function t(r){var n;if(y(r instanceof R||r instanceof L),r instanceof R){if(r instanceof qn){let e=(null==(n=null==(n=r.value.arrayValue)?void 0:n.values)?void 0:n.map(e=>R.create(r.field,"==",e)))||[];return L.create(e,"or")}return r}let e=r.filters.map(e=>t(e));return L.create(e,r.op)}(e)),y(Ta(t)),ba(t)||Ia(t)?[t]:t.getFilters())}function ba(e){return e instanceof R}function Ia(e){return e instanceof L&&Rn(e)}function Ta(e){return ba(e)||Ia(e)||(e=>{if(e instanceof L&&kn(e)){for(var t of e.getFilters())if(!ba(t)&&!Ia(t))return!1;return!0}return!1})(e)}function Ea(e,t){var r,n;return y(e instanceof R||e instanceof L),y(t instanceof R||t instanceof L),xa(e instanceof R?t instanceof R?(r=e,n=t,L.create([r,n],"and")):Sa(e,t):t instanceof R?Sa(t,e):((e,t)=>{if(y(0<e.filters.length&&0<t.filters.length),Nn(e)&&Nn(t))return On(e,t.getFilters());let r=kn(e)?e:t,n=kn(e)?t:e,i=r.filters.map(e=>Ea(e,n));return L.create(i,"or")})(e,t))}function Sa(t,e){var r;return Nn(e)?On(e,t.getFilters()):(r=e.filters.map(e=>Ea(t,e)),L.create(r,"or"))}function xa(t){if(y(t instanceof R||t instanceof L),t instanceof R)return t;var e=t.getFilters();if(1===e.length)return xa(e[0]);if(Ln(t))return t;let r=e.map(e=>xa(e)),n=[];return r.forEach(e=>{e instanceof R?n.push(e):e instanceof L&&(e.op===t.op?n.push(...e.filters):n.push(e))}),1===n.length?n[0]:L.create(n,t.op)}class Aa{constructor(){this.Tn=new Ca}addToCollectionParentIndex(e,t){return this.Tn.add(t),w.resolve()}getCollectionParents(e,t){return w.resolve(this.Tn.getEntries(t))}addFieldIndex(e,t){return w.resolve()}deleteFieldIndex(e,t){return w.resolve()}deleteAllFieldIndexes(e){return w.resolve()}createTargetIndexes(e,t){return w.resolve()}getDocumentsMatchingTarget(e,t){return w.resolve(null)}getIndexType(e,t){return w.resolve(0)}getFieldIndexes(e,t){return w.resolve([])}getNextCollectionGroupToUpdate(e){return w.resolve(null)}getMinOffset(e,t){return w.resolve(ze.min())}getMinOffsetFromCollectionGroup(e,t){return w.resolve(ze.min())}updateCollectionGroup(e,t,r){return w.resolve()}updateIndexEntries(e,t){return w.resolve()}}class Ca{constructor(){this.index={}}add(e){var t=e.lastSegment(),r=e.popLast(),n=this.index[t]||new C(S.comparator),i=!n.has(r);return this.index[t]=n.add(r),i}has(e){var t=e.lastSegment(),r=e.popLast(),t=this.index[t];return t&&t.has(r)}getEntries(e){return(this.index[e]||new C(S.comparator)).toArray()}}let Da="IndexedDbIndexManager",Na=new Uint8Array(0);class ka{constructor(e,t){this.databaseId=t,this.In=new Ca,this.En=new fi(e=>Qn(e),(e,t)=>$n(e,t)),this.uid=e.uid||""}addToCollectionParentIndex(e,t){var r,n;return this.In.has(t)?w.resolve():(n=t.lastSegment(),r=t.popLast(),e.addOnCommittedListener(()=>{this.In.add(t)}),n={collectionId:n,parent:o(r)},Ra(e).put(n))}getCollectionParents(e,r){let n=[],t=IDBKeyRange.bound([r,""],[Ne(r),""],!1,!0);return Ra(e).G(t).next(e=>{for(var t of e){if(t.collectionId!==r)break;n.push(mt(t.parent))}return n})}addFieldIndex(e,r){let t=Oa(e),n={indexId:r.indexId,collectionGroup:r.collectionGroup,fields:r.fields.map(e=>[e.fieldPath.canonicalString(),e.kind])};delete n.indexId;var i=t.add(n);if(r.indexState){let t=Ma(e);return i.next(e=>{t.put(na(e,this.uid,r.indexState.sequenceNumber,r.indexState.offset))})}return i.next()}deleteFieldIndex(e,t){let r=Oa(e),n=Ma(e),i=La(e);return r.delete(t.indexId).next(()=>n.delete(IDBKeyRange.bound([t.indexId],[t.indexId+1],!1,!0))).next(()=>i.delete(IDBKeyRange.bound([t.indexId],[t.indexId+1],!1,!0)))}deleteAllFieldIndexes(e){let t=Oa(e),r=La(e),n=Ma(e);return t.J().next(()=>r.J()).next(()=>n.J())}createTargetIndexes(r,e){return w.forEach(this.dn(e),t=>this.getIndexType(r,t).next(e=>{if(0===e||1===e){let e=new wa(t).Pn();if(null!=e)return this.addFieldIndex(r,e)}}))}getDocumentsMatchingTarget(e,c){let d=La(e),r=!0,n=new Map;return w.forEach(this.dn(c),t=>this.An(e,t).next(e=>{r=r&&!!e,n.set(t,e)})).next(()=>{if(r){let u=O(),h=[];return w.forEach(n,(e,t)=>{p(Da,`Using index ${r=e,`id=${r.indexId}|cg=${r.collectionGroup}|f=`+r.fields.map(e=>e.fieldPath+":"+e.kind).join(",")} to execute `+Qn(c));var r,n=((t,e)=>{var r=Fe(e);if(void 0!==r)for(let e of Wn(t,r.fieldPath))switch(e.op){case"array-contains-any":return e.value.arrayValue.values||[];case"array-contains":return[e.value]}return null})(t,e),i=((t,r)=>{var n,i=new Map;for(n of Pe(r))for(let e of Wn(t,n.fieldPath))switch(e.op){case"==":case"in":i.set(n.fieldPath.canonicalString(),e.value);break;case"not-in":case"!=":return i.set(n.fieldPath.canonicalString(),e.value),Array.from(i.values())}return null})(t,e),s=((t,e)=>{var r,n=[];let i=!0;for(r of Pe(e)){let e=(0===r.kind?Yn:Xn)(t,r.fieldPath,t.startAt);n.push(e.value),i=i&&e.inclusive}return new Sn(n,i)})(t,e),a=((t,e)=>{var r,n=[];let i=!0;for(r of Pe(e)){let e=(0===r.kind?Xn:Yn)(t,r.fieldPath,t.endAt);n.push(e.value),i=i&&e.inclusive}return new Sn(n,i)})(t,e),o=this.Rn(e,t,s),l=this.Rn(e,t,a),i=this.Vn(e,t,i),n=this.mn(e.indexId,n,o,s.inclusive,l,a.inclusive,i);return w.forEach(n,e=>d.H(e,c.limit).next(e=>{e.forEach(e=>{var t=x.fromSegments(e.documentKey);u.has(t)||(u=u.add(t),h.push(t))})}))}).next(()=>h)}return w.resolve(null)})}dn(t){let e=this.En.get(t);return e||(e=0===t.filters.length?[t]:_a(L.create(t.filters,"and")).map(e=>Kn(t.path,t.collectionGroup,t.orderBy,e.getFilters(),t.limit,t.startAt,t.endAt)),this.En.set(t,e)),e}mn(i,s,a,o,l,u,h){let e=(null!=s?s.length:1)*Math.max(a.length,l.length),c=e/(null!=s?s.length:1),d=[];for(let f=0;f<e;++f){let t=s?this.fn(s[f/c]):Na,e=this.gn(i,t,a[f%c],o),r=this.pn(i,t,l[f%c],u),n=h.map(e=>this.gn(i,t,e,!0));d.push(...this.createRange(e,r,n))}return d}gn(e,t,r,n){var i=new pa(e,x.empty(),t,r);return n?i:i.nn()}pn(e,t,r,n){var i=new pa(e,x.empty(),t,r);return n?i.nn():i}An(e,t){let n=new wa(t),r=null!=t.collectionGroup?t.collectionGroup:t.path.lastSegment();return this.getFieldIndexes(e,r).next(e=>{let t=null;for(var r of e)n.un(r)&&(!t||r.fields.length>t.fields.length)&&(t=r);return t})}getIndexType(e,t){let r=2,n=this.dn(t);return w.forEach(n,t=>this.An(e,t).next(e=>{e?0!==r&&e.fields.length<(t=>{let r=new C(v.comparator),n=!1;for(var i of t.filters)for(let e of i.getFlattenedFilters())e.field.isKeyField()||("array-contains"===e.op||"array-contains-any"===e.op?n=!0:r=r.add(e.field));for(let n of t.orderBy)n.field.isKeyField()||(r=r.add(n.field));return r.size+(n?1:0)})(t)&&(r=1):r=0})).next(()=>null!==t.limit&&1<n.length&&2===r?1:r)}yn(e,t){var r,n=new ma;for(r of Pe(e)){let e=t.data.field(r.fieldPath);if(null==e)return null;var i=n.tn(r.kind);ha.xt.At(e,i)}return n.Yt()}fn(e){var t=new ma;return ha.xt.At(e,t.tn(0)),t.Yt()}wn(e,t){var r,n=new ma;return ha.xt.At(dn(this.databaseId,t),n.tn(0===(r=Pe(e)).length?0:r[r.length-1].kind)),n.Yt()}Vn(e,n,i){if(null===i)return[];let s=[],a=(s.push(new ma),0);for(var o of Pe(e)){let t=i[a++];for(let r of s)if(this.Sn(n,o.fieldPath)&&gn(t))s=this.bn(s,o,t);else{let e=r.tn(o.kind);ha.xt.At(t,e)}}return this.Dn(s)}Rn(e,t,r){return this.Vn(e,t,r.position)}Dn(e){var t=[];for(let r=0;r<e.length;++r)t[r]=e[r].Yt();return t}bn(r,n,e){let i=[...r],s=[];for(let r of e.arrayValue.values||[])for(let t of i){let e=new ma;e.seed(t.Yt()),ha.xt.At(r,e.tn(n.kind)),s.push(e)}return s}Sn(e,t){return!!e.filters.find(e=>e instanceof R&&e.field.isEqual(t)&&("in"===e.op||"not-in"===e.op))}getFieldIndexes(e,t){let r=Oa(e),n=Ma(e);return(t?r.G(Xt,IDBKeyRange.bound(t,t)):r.G()).next(e=>{let s=[];return w.forEach(e,i=>n.get([i.indexId,this.uid]).next(e=>{var t,r,n;s.push((t=i,r=(e=e)?new Be(e.sequenceNumber,new ze(Ys(e.readTime),new x(mt(e.documentKey)),e.largestBatchId)):Be.empty(),n=t.fields.map(([e,t])=>new Ue(v.fromServerFormat(e),t)),new Ve(t.indexId,t.collectionGroup,n,r)))})).next(()=>s)})}getNextCollectionGroupToUpdate(e){return this.getFieldIndexes(e).next(e=>0===e.length?null:(e.sort((e,t)=>{var r=e.indexState.sequenceNumber-t.indexState.sequenceNumber;return 0!=r?r:E(e.collectionGroup,t.collectionGroup)}),e[0].collectionGroup))}updateCollectionGroup(e,r,n){let i=Oa(e),s=Ma(e);return this.vn(e).next(t=>i.G(Xt,IDBKeyRange.bound(r,r)).next(e=>w.forEach(e,e=>s.put(na(e.indexId,this.uid,t,n)))))}updateIndexEntries(i,e){let r=new Map;return w.forEach(e,(t,n)=>{var e=r.get(t.collectionGroup);return(e?w.resolve(e):this.getFieldIndexes(i,t.collectionGroup)).next(e=>(r.set(t.collectionGroup,e),w.forEach(e,r=>this.Cn(i,t,r).next(e=>{var t=this.Fn(n,r);return e.isEqual(t)?w.resolve():this.Mn(i,n,r,e,t)}))))})}xn(e,t,r,n){return La(e).put({indexId:n.indexId,uid:this.uid,arrayValue:n.arrayValue,directionalValue:n.directionalValue,orderedDocumentKey:this.wn(r,t.key),documentKey:t.key.path.toArray()})}On(e,t,r,n){return La(e).delete([n.indexId,this.uid,n.arrayValue,n.directionalValue,this.wn(r,t.key),t.key.path.toArray()])}Cn(e,r,n){var t=La(e);let i=new C(ya);return t.Z({index:ir,range:IDBKeyRange.only([n.indexId,this.uid,this.wn(n,r)])},(e,t)=>{i=i.add(new pa(n.indexId,r,t.arrayValue,t.directionalValue))}).next(()=>i)}Fn(t,r){let n=new C(ya);var i=this.yn(r,t);if(null!=i){let e=Fe(r);if(null!=e){var s=t.data.field(e.fieldPath);if(gn(s))for(let e of s.arrayValue.values||[])n=n.add(new pa(r.indexId,t.key,this.fn(e),i))}else n=n.add(new pa(r.indexId,t.key,Na,i))}return n}Mn(t,r,s,e,a){p(Da,"Updating index entries for document '%s'",r.key);let o=[];{var l=ya,u=e=>{o.push(this.xn(t,r,s,e))},h=e=>{o.push(this.On(t,r,s,e))},c=e.getIterator(),d=a.getIterator();let n=Vr(c),i=Vr(d);for(;n||i;){let t=!1,r=!1;if(n&&i){let e=l(n,i);e<0?r=!0:0<e&&(t=!0)}else null!=n?r=!0:t=!0;t?(u(i),i=Vr(d)):r?(h(n),n=Vr(c)):(n=Vr(c),i=Vr(d))}}return w.waitFor(o)}vn(e){let n=1;return Ma(e).Z({index:er,reverse:!0,range:IDBKeyRange.upperBound([this.uid,Number.MAX_SAFE_INTEGER])},(e,t,r)=>{r.done(),n=t.sequenceNumber+1}).next(()=>n)}createRange(r,n,e){e=e.sort((e,t)=>ya(e,t)).filter((e,t,r)=>!t||0!==ya(e,r[t-1]));var i=[];i.push(r);for(let s of e){let e=ya(s,r),t=ya(s,n);if(0===e)i[0]=r.nn();else if(0<e&&t<0)i.push(s),i.push(s.nn());else if(0<t)break}i.push(n);let s=[];for(let a=0;a<i.length;a+=2){if(this.Nn(i[a],i[a+1]))return[];let e=[i[a].indexId,this.uid,i[a].arrayValue,i[a].directionalValue,Na,[]],t=[i[a+1].indexId,this.uid,i[a+1].arrayValue,i[a+1].directionalValue,Na,[]];s.push(IDBKeyRange.bound(e,t))}return s}Nn(e,t){return 0<ya(e,t)}getMinOffsetFromCollectionGroup(e,t){return this.getFieldIndexes(e,t).next(Va)}getMinOffset(t,e){return w.mapArray(this.dn(e),e=>this.An(t,e).next(e=>e||T())).next(Va)}}function Ra(e){return r(e,Kt)}function La(e){return r(e,rr)}function Oa(e){return r(e,Yt)}function Ma(e){return r(e,Jt)}function Va(e){y(0!==e.length);let t=e[0].indexState.offset,r=t.largestBatchId;for(let i=1;i<e.length;i++){var n=e[i].indexState.offset;Ge(n,t)<0&&(t=n),r<n.largestBatchId&&(r=n.largestBatchId)}return new ze(t.readTime,t.documentKey,r)}let Fa={didRun:!1,sequenceNumbersCollected:0,targetsRemoved:0,documentsRemoved:0};class Pa{static withCacheSize(e){return new Pa(e,Pa.DEFAULT_COLLECTION_PERCENTILE,Pa.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT)}constructor(e,t,r){this.cacheSizeCollectionThreshold=e,this.percentileToCollect=t,this.maximumSequenceNumbersToCollect=r}}function Ua(t,r,n){let e=t.store(_t),i=t.store(At),s=[],a=IDBKeyRange.only(n.batchId),o=0;var l=e.Z({range:a},(e,t,r)=>(o++,r.delete()));s.push(l.next(()=>{y(1===o)}));let u=[];for(let t of n.mutations){let e=St(r,t.key.path,n.batchId);s.push(i.delete(e)),u.push(t.key)}return w.waitFor(s).next(()=>u)}function Ba(e){if(!e)return 0;let t;if(e.document)t=e.document;else if(e.unknownDocument)t=e.unknownDocument;else{if(!e.noDocument)throw T();t=e.noDocument}return JSON.stringify(t).length}Pa.DEFAULT_COLLECTION_PERCENTILE=10,Pa.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT=1e3,Pa.DEFAULT=new Pa(41943040,Pa.DEFAULT_COLLECTION_PERCENTILE,Pa.DEFAULT_MAX_SEQUENCE_NUMBERS_TO_COLLECT),Pa.DISABLED=new Pa(-1,0,0);class qa{constructor(e,t,r,n){this.userId=e,this.serializer=t,this.indexManager=r,this.referenceDelegate=n,this.Bn={}}static It(e,t,r,n){y(""!==e.uid);var i=e.isAuthenticated()?e.uid:"";return new qa(i,t,r,n)}checkEmpty(e){let n=!0;var t=IDBKeyRange.bound([this.userId,Number.NEGATIVE_INFINITY],[this.userId,Number.POSITIVE_INFINITY]);return za(e).Z({index:It,range:t},(e,t,r)=>{n=!1,r.done()}).next(()=>n)}addMutationBatch(c,d,f,g){let m=Ga(c),p=za(c);return p.add({}).next(t=>{y("number"==typeof t);let e=new Wi(t,d,f,g),r=(i=this.serializer,s=this.userId,a=e,o=a.baseMutations.map(e=>Ls(i.Tt,e)),l=a.mutations.map(e=>Ls(i.Tt,e)),{userId:s,batchId:a.batchId,localWriteTimeMs:a.localWriteTime.toMillis(),baseMutations:o,mutations:l}),n=[];var i,s,a,o,l;let u=new C((e,t)=>E(e.canonicalString(),t.canonicalString()));for(let h of g){let e=St(this.userId,h.key.path,t);u=u.add(h.key.path.popLast()),n.push(p.put(r)),n.push(m.put(e,xt))}return u.forEach(e=>{n.push(this.indexManager.addToCollectionParentIndex(c,e))}),c.addOnCommittedListener(()=>{this.Bn[t]=e.keys()}),w.waitFor(n).next(()=>e)})}lookupMutationBatch(e,t){return za(e).get(t).next(e=>e?(y(e.userId===this.userId),Xs(this.serializer,e)):null)}Ln(e,r){return this.Bn[r]?w.resolve(this.Bn[r]):this.lookupMutationBatch(e,r).next(e=>{var t;return e?(t=e.keys(),this.Bn[r]=t):null})}getNextMutationBatchAfterBatchId(e,t){let n=t+1,r=IDBKeyRange.lowerBound([this.userId,n]),i=null;return za(e).Z({index:It,range:r},(e,t,r)=>{t.userId===this.userId&&(y(t.batchId>=n),i=Xs(this.serializer,t)),r.done()}).next(()=>i)}getHighestUnacknowledgedBatchId(e){var t=IDBKeyRange.upperBound([this.userId,Number.POSITIVE_INFINITY]);let n=ut;return za(e).Z({index:It,range:t,reverse:!0},(e,t,r)=>{n=t.batchId,r.done()}).next(()=>n)}getAllMutationBatches(e){var t=IDBKeyRange.bound([this.userId,ut],[this.userId,Number.POSITIVE_INFINITY]);return za(e).G(It,t).next(e=>e.map(e=>Xs(this.serializer,e)))}getAllMutationBatchesAffectingDocumentKey(a,o){let e=Et(this.userId,o.path),t=IDBKeyRange.lowerBound(e),l=[];return Ga(a).Z({range:t},(e,t,r)=>{var[n,i,s]=e,i=mt(i);if(n===this.userId&&o.path.isEqual(i))return za(a).get(s).next(e=>{if(!e)throw T();y(e.userId===this.userId),l.push(Xs(this.serializer,e))});r.done()}).next(()=>l)}getAllMutationBatchesAffectingDocumentKeys(t,e){let o=new C(E),r=[];return e.forEach(a=>{var e=Et(this.userId,a.path),e=IDBKeyRange.lowerBound(e),e=Ga(t).Z({range:e},(e,t,r)=>{var[n,i,s]=e,i=mt(i);n===this.userId&&a.path.isEqual(i)?o=o.add(s):r.done()});r.push(e)}),w.waitFor(r).next(()=>this.kn(t,o))}getAllMutationBatchesAffectingQuery(e,t){let a=t.path,o=a.length+1,r=Et(this.userId,a),n=IDBKeyRange.lowerBound(r),l=new C(E);return Ga(e).Z({range:n},(e,t,r)=>{var[n,i,s]=e,i=mt(i);n===this.userId&&a.isPrefixOf(i)?i.length===o&&(l=l.add(s)):r.done()}).next(()=>this.kn(e,l))}kn(t,e){let r=[],n=[];return e.forEach(e=>{n.push(za(t).get(e).next(e=>{if(null===e)throw T();y(e.userId===this.userId),r.push(Xs(this.serializer,e))}))}),w.waitFor(n).next(()=>r)}removeMutationBatch(t,r){return Ua(t.ue,this.userId,r).next(e=>(t.addOnCommittedListener(()=>{this.qn(r.batchId)}),w.forEach(e,e=>this.referenceDelegate.markPotentiallyOrphaned(t,e))))}qn(e){delete this.Bn[e]}performConsistencyCheck(r){return this.checkEmpty(r).next(e=>{if(!e)return w.resolve();let t=IDBKeyRange.lowerBound([this.userId]),n=[];return Ga(r).Z({range:t},(t,e,r)=>{if(t[0]===this.userId){let e=mt(t[1]);n.push(e)}else r.done()}).next(()=>{y(0===n.length)})})}containsKey(e,t){return ja(e,this.userId,t)}Qn(e){return Ka(e).get(this.userId).next(e=>e||{userId:this.userId,lastAcknowledgedBatchId:ut,lastStreamToken:""})}}function ja(e,s,t){let r=Et(s,t.path),a=r[1],n=IDBKeyRange.lowerBound(r),o=!1;return Ga(e).Z({range:n,Y:!0},(e,t,r)=>{var[n,i,,]=e;n===s&&i===a&&(o=!0),r.done()}).next(()=>o)}function za(e){return r(e,_t)}function Ga(e){return r(e,At)}function Ka(e){return r(e,wt)}class Qa{constructor(e){this.$n=e}next(){return this.$n+=2,this.$n}static Un(){return new Qa(0)}static Kn(){return new Qa(-1)}}class $a{constructor(e,t){this.referenceDelegate=e,this.serializer=t}allocateTargetId(r){return this.Wn(r).next(e=>{var t=new Qa(e.highestTargetId);return e.highestTargetId=t.next(),this.Gn(r,e).next(()=>e.highestTargetId)})}getLastRemoteSnapshotVersion(e){return this.Wn(e).next(e=>g.fromTimestamp(new h(e.lastRemoteSnapshotVersion.seconds,e.lastRemoteSnapshotVersion.nanoseconds)))}getHighestSequenceNumber(e){return this.Wn(e).next(e=>e.highestListenSequenceNumber)}setTargetsMetadata(t,r,n){return this.Wn(t).next(e=>(e.highestListenSequenceNumber=r,n&&(e.lastRemoteSnapshotVersion=n.toTimestamp()),e.highestListenSequenceNumber<r&&(e.highestListenSequenceNumber=r),this.Gn(t,e)))}addTargetData(t,r){return this.zn(t,r).next(()=>this.Wn(t).next(e=>(e.targetCount+=1,this.jn(r,e),this.Gn(t,e))))}updateTargetData(e,t){return this.zn(e,t)}removeTargetData(t,e){return this.removeMatchingKeysForTargetId(t,e.targetId).next(()=>Ha(t).delete(e.targetId)).next(()=>this.Wn(t)).next(e=>(y(0<e.targetCount),--e.targetCount,this.Gn(t,e)))}removeTargets(n,i,s){let a=0,o=[];return Ha(n).Z((e,t)=>{var r=Js(t);r.sequenceNumber<=i&&null===s.get(r.targetId)&&(a++,o.push(this.removeTargetData(n,r)))}).next(()=>w.waitFor(o)).next(()=>a)}forEachTarget(e,n){return Ha(e).Z((e,t)=>{var r=Js(t);n(r)})}Wn(e){return Wa(e).get(zt).next(e=>(y(null!==e),e))}Gn(e,t){return Wa(e).put(zt,t)}zn(e,t){return Ha(e).put(Zs(this.serializer,t))}jn(e,t){let r=!1;return e.targetId>t.highestTargetId&&(t.highestTargetId=e.targetId,r=!0),t.highestListenSequenceNumber<e.sequenceNumber&&(t.highestListenSequenceNumber=e.sequenceNumber,r=!0),r}getTargetCount(e){return this.Wn(e).next(e=>e.targetCount)}getTargetData(e,i){var t=Qn(i),t=IDBKeyRange.bound([t,Number.NEGATIVE_INFINITY],[t,Number.POSITIVE_INFINITY]);let s=null;return Ha(e).Z({range:t,index:Ft},(e,t,r)=>{var n=Js(t);$n(i,n.target)&&(s=n,r.done())}).next(()=>s)}addMatchingKeys(r,e,n){let i=[],s=Ya(r);return e.forEach(e=>{var t=o(e.path);i.push(s.put({targetId:n,path:t})),i.push(this.referenceDelegate.addReference(r,n,e))}),w.waitFor(i)}removeMatchingKeys(r,e,n){let i=Ya(r);return w.forEach(e,e=>{var t=o(e.path);return w.waitFor([i.delete([n,t]),this.referenceDelegate.removeReference(r,n,e)])})}removeMatchingKeysForTargetId(e,t){var r=Ya(e),n=IDBKeyRange.bound([t],[t+1],!1,!0);return r.delete(n)}getMatchingKeysForTargetId(e,t){var r=IDBKeyRange.bound([t],[t+1],!1,!0),n=Ya(e);let i=O();return n.Z({range:r,Y:!0},(e,t,r)=>{var n=mt(e[1]),n=new x(n);i=i.add(n)}).next(()=>i)}containsKey(e,t){var r=o(t.path),r=IDBKeyRange.bound([r],[Ne(r)],!1,!0);let n=0;return Ya(e).Z({index:qt,Y:!0,range:r},([e],t,r)=>{0!==e&&(n++,r.done())}).next(()=>0<n)}lt(e,t){return Ha(e).get(t).next(e=>e?Js(e):null)}}function Ha(e){return r(e,Vt)}function Wa(e){return r(e,Gt)}function Ya(e){return r(e,Ut)}let Xa="LruGarbageCollector";function Ja([e,t],[r,n]){var i=E(e,r);return 0===i?E(t,n):i}class Za{constructor(e){this.Hn=e,this.buffer=new C(Ja),this.Jn=0}Yn(){return++this.Jn}Zn(e){var t=[e,this.Yn()];if(this.buffer.size<this.Hn)this.buffer=this.buffer.add(t);else{let e=this.buffer.last();Ja(t,e)<0&&(this.buffer=this.buffer.delete(e).add(t))}}get maxValue(){return this.buffer.last()[0]}}class eo{constructor(e,t,r){this.garbageCollector=e,this.asyncQueue=t,this.localStore=r,this.Xn=null}start(){-1!==this.garbageCollector.params.cacheSizeCollectionThreshold&&this.er(6e4)}stop(){this.Xn&&(this.Xn.cancel(),this.Xn=null)}get started(){return null!==this.Xn}er(e){p(Xa,`Garbage collection scheduled in ${e}ms`),this.Xn=this.asyncQueue.enqueueAfterDelay("lru_garbage_collection",e,async()=>{this.Xn=null;try{await this.localStore.collectGarbage(this.garbageCollector)}catch(e){et(e)?p(Xa,"Ignoring IndexedDB error during garbage collection: ",e):await $e(e)}await this.er(3e5)})}}class to{constructor(e,t){this.tr=e,this.params=t}calculateTargetCount(e,t){return this.tr.nr(e).next(e=>Math.floor(t/100*e))}nthSequenceNumber(e,t){if(0===t)return w.resolve(lt.ae);let r=new Za(t);return this.tr.forEachTarget(e,e=>r.Zn(e.sequenceNumber)).next(()=>this.tr.rr(e,e=>r.Zn(e))).next(()=>r.maxValue)}removeTargets(e,t,r){return this.tr.removeTargets(e,t,r)}removeOrphanedDocuments(e,t){return this.tr.removeOrphanedDocuments(e,t)}collect(t,r){return-1===this.params.cacheSizeCollectionThreshold?(p("LruGarbageCollector","Garbage collection skipped; disabled"),w.resolve(Fa)):this.getCacheSize(t).next(e=>e<this.params.cacheSizeCollectionThreshold?(p("LruGarbageCollector",`Garbage collection skipped; Cache size ${e} is lower than threshold `+this.params.cacheSizeCollectionThreshold),Fa):this.ir(t,r))}getCacheSize(e){return this.tr.getCacheSize(e)}ir(t,r){let n,i,s,a,o,l,u,h=Date.now();return this.calculateTargetCount(t,this.params.percentileToCollect).next(e=>(i=e>this.params.maximumSequenceNumbersToCollect?(p("LruGarbageCollector",`Capping sequence numbers to collect down to the maximum of ${this.params.maximumSequenceNumbersToCollect} from `+e),this.params.maximumSequenceNumbersToCollect):e,a=Date.now(),this.nthSequenceNumber(t,i))).next(e=>(n=e,o=Date.now(),this.removeTargets(t,n,r))).next(e=>(s=e,l=Date.now(),this.removeOrphanedDocuments(t,n))).next(e=>(u=Date.now(),ge()<=c.DEBUG&&p("LruGarbageCollector",`LRU Garbage Collection
Counted targets in ${a-h}ms
Determined least recently used ${i} in `+(o-a)+"ms\n"+` Removed ${s} targets in `+(l-o)+"ms\n"+` Removed ${e} documents in `+(u-l)+"ms\n"+`Total Duration: ${u-h}ms`),w.resolve({didRun:!0,sequenceNumbersCollected:i,targetsRemoved:s,documentsRemoved:e})))}}function ro(e,t){return new to(e,t)}class no{constructor(e,t){this.db=e,this.garbageCollector=ro(this,t)}nr(e){let r=this.sr(e);return this.db.getTargetCache().getTargetCount(e).next(t=>r.next(e=>t+e))}sr(e){let t=0;return this.rr(e,e=>{t++}).next(()=>t)}forEachTarget(e,t){return this.db.getTargetCache().forEachTarget(e,t)}rr(e,r){return this._r(e,(e,t)=>r(t))}addReference(e,t,r){return io(e,r)}removeReference(e,t,r){return io(e,r)}removeTargets(e,t,r){return this.db.getTargetCache().removeTargets(e,t,r)}markPotentiallyOrphaned(e,t){return io(e,t)}ar(e,r){{var n=e,i=r;let t=!1;return Ka(n).X(e=>ja(n,e,i).next(e=>(e&&(t=!0),w.resolve(!e)))).next(()=>t)}}removeOrphanedDocuments(r,n){let i=this.db.getRemoteDocumentCache().newChangeBuffer(),s=[],a=0;return this._r(r,(t,e)=>{if(e<=n){let e=this.ar(r,t).next(e=>{if(!e)return a++,i.getEntry(r,t).next(()=>(i.removeEntry(t,g.min()),Ya(r).delete([0,o(t.path)])))});s.push(e)}}).next(()=>w.waitFor(s)).next(()=>i.apply(r)).next(()=>a)}removeTarget(e,t){var r=t.withSequenceNumber(e.currentSequenceNumber);return this.db.getTargetCache().updateTargetData(e,r)}updateLimboDocument(e,t){return io(e,t)}_r(e,n){var t=Ya(e);let i,s=lt.ae;return t.Z({index:qt},([e],{path:t,sequenceNumber:r})=>{0===e?(s!==lt.ae&&n(new x(mt(i)),s),s=r,i=t):s=lt.ae}).next(()=>{s!==lt.ae&&n(new x(mt(i)),s)})}getCacheSize(e){return this.db.getRemoteDocumentCache().getSize(e)}}function io(e,t){return Ya(e).put((e=e.currentSequenceNumber,{targetId:0,path:o(t.path),sequenceNumber:e}))}class so{constructor(){this.changes=new fi(e=>e.toString(),(e,t)=>e.isEqual(t)),this.changesApplied=!1}addEntry(e){this.assertNotApplied(),this.changes.set(e.key,e)}removeEntry(e,t){this.assertNotApplied(),this.changes.set(e,k.newInvalidDocument(e).setReadTime(t))}getEntry(e,t){this.assertNotApplied();var r=this.changes.get(t);return void 0!==r?w.resolve(r):this.getFromCache(e,t)}getEntries(e,t){return this.getAllFromCache(e,t)}apply(e){return this.assertNotApplied(),this.changesApplied=!0,this.applyChanges(e)}assertNotApplied(){}}class ao{constructor(e){this.serializer=e}setIndexManager(e){this.indexManager=e}addEntry(e,t,r){return ho(e).put(r)}removeEntry(e,t,r){return ho(e).delete((e=r,[(n=t.path.toArray()).slice(0,n.length-2),n[n.length-2],Hs(e),n[n.length-1]]));var n}updateMetadata(t,r){return this.getMetadata(t).next(e=>(e.byteSize+=r,this.ur(t,e)))}getEntry(e,r){let n=k.newInvalidDocument(r);return ho(e).Z({index:Nt,range:IDBKeyRange.only(co(r))},(e,t)=>{n=this.cr(r,t)}).next(()=>n)}lr(e,r){let n={size:0,document:k.newInvalidDocument(r)};return ho(e).Z({index:Nt,range:IDBKeyRange.only(co(r))},(e,t)=>{n={document:this.cr(r,t),size:Ba(t)}}).next(()=>n)}getEntries(e,t){let n=gi;return this.hr(e,t,(e,t)=>{var r=this.cr(e,t);n=n.insert(e,r)}).next(()=>n)}Pr(e,t){let n=gi,i=new A(x.comparator);return this.hr(e,t,(e,t)=>{var r=this.cr(e,t);n=n.insert(e,r),i=i.insert(e,Ba(t))}).next(()=>({documents:n,Tr:i}))}hr(e,t,i){if(t.isEmpty())return w.resolve();let r=new C(go),n=(t.forEach(e=>r=r.add(e)),IDBKeyRange.bound(co(r.first()),co(r.last()))),s=r.getIterator(),a=s.getNext();return ho(e).Z({index:Nt,range:n},(e,t,r)=>{for(var n=x.fromSegments([...t.prefixPath,t.collectionGroup,t.documentId]);a&&go(a,n)<0;)i(a,null),a=s.getNext();a&&a.isEqual(n)&&(i(a,t),a=s.hasNext()?s.getNext():null),a?r.W(co(a)):r.done()}).next(()=>{for(;a;)i(a,null),a=s.hasNext()?s.getNext():null})}getDocumentsMatchingQuery(e,n,t,i,s){var r=n.path,a=[r.popLast().toArray(),r.lastSegment(),Hs(t.readTime),t.documentKey.path.isEmpty()?"":t.documentKey.path.lastSegment()],r=[r.popLast().toArray(),r.lastSegment(),[Number.MAX_SAFE_INTEGER,Number.MAX_SAFE_INTEGER],""];return ho(e).G(IDBKeyRange.bound(a,r,!0)).next(e=>{null!=s&&s.incrementDocumentReadCount(e.length);let t=gi;for(let r of e){let e=this.cr(x.fromSegments(r.prefixPath.concat(r.collectionGroup,r.documentId)),r);e.isFoundDocument()&&(hi(n,e)||i.has(e.key))&&(t=t.insert(e.key,e))}return t})}getAllFromCollectionGroup(e,t,r,i){let s=gi;var n=fo(t,r),a=fo(t,ze.max());return ho(e).Z({index:Rt,range:IDBKeyRange.bound(n,a,!0)},(e,t,r)=>{var n=this.cr(x.fromSegments(t.prefixPath.concat(t.collectionGroup,t.documentId)),t);(s=s.insert(n.key,n)).size===i&&r.done()}).next(()=>s)}newChangeBuffer(e){return new lo(this,!!e&&e.trackRemovals)}getSize(e){return this.getMetadata(e).next(e=>e.byteSize)}getMetadata(e){return uo(e).get(Mt).next(e=>(y(!!e),e))}ur(e,t){return uo(e).put(Mt,t)}cr(e,t){if(t){let e=((e,r)=>{let n;if(r.document)n=Rs(e.Tt,r.document,!!r.hasCommittedMutations);else if(r.noDocument){let e=x.fromSegments(r.noDocument.path),t=Ys(r.noDocument.readTime);n=k.newNoDocument(e,t),r.hasCommittedMutations&&n.setHasCommittedMutations()}else{if(!r.unknownDocument)return T();{let e=x.fromSegments(r.unknownDocument.path),t=Ys(r.unknownDocument.version);n=k.newUnknownDocument(e,t)}}return r.readTime&&n.setReadTime((e=r.readTime,t=new h(e[0],e[1]),g.fromTimestamp(t))),n;var t})(this.serializer,t);if(!e.isNoDocument()||!e.version.isEqual(g.min()))return e}return k.newInvalidDocument(e)}}function oo(e){return new ao(e)}class lo extends so{constructor(e,t){super(),this.Ir=e,this.trackRemovals=t,this.Er=new fi(e=>e.toString(),(e,t)=>e.isEqual(t))}applyChanges(s){let a=[],o=0,l=new C((e,t)=>E(e.canonicalString(),t.canonicalString()));return this.changes.forEach((t,r)=>{var e=this.Er.get(t);if(a.push(this.Ir.removeEntry(s,t,e.readTime)),r.isValidDocument()){var n=$s(this.Ir.serializer,r),i=(l=l.add(t.path.popLast()),Ba(n));o+=i-e.size,a.push(this.Ir.addEntry(s,t,n))}else if(o-=e.size,this.trackRemovals){let e=$s(this.Ir.serializer,r.convertToNoDocument(g.min()));a.push(this.Ir.addEntry(s,t,e))}}),l.forEach(e=>{a.push(this.Ir.indexManager.addToCollectionParentIndex(s,e))}),a.push(this.Ir.updateMetadata(s,o)),w.waitFor(a)}getFromCache(e,t){return this.Ir.lr(e,t).next(e=>(this.Er.set(t,{size:e.size,readTime:e.document.readTime}),e.document))}getAllFromCache(e,t){return this.Ir.Pr(e,t).next(({documents:r,Tr:e})=>(e.forEach((e,t)=>{this.Er.set(e,{size:t,readTime:r.get(e).readTime})}),r))}}function uo(e){return r(e,Ot)}function ho(e){return r(e,Ct)}function co(e){var t=e.path.toArray();return[t.slice(0,t.length-2),t[t.length-2],t[t.length-1]]}function fo(e,t){var r=t.documentKey.path.toArray();return[e,Hs(t.readTime),r.slice(0,r.length-2),0<r.length?r[r.length-1]:""]}function go(e,t){var r=e.path.toArray(),n=t.path.toArray();let i=0;for(let s=0;s<r.length-2&&s<n.length-2;++s)if(i=E(r[s],n[s]))return i;return(i=E(r.length,n.length))||(i=E(r[r.length-2],n[n.length-2]))||E(r[r.length-1],n[n.length-1])}class mo{constructor(e,t){this.overlayedDocument=e,this.mutatedFields=t}}class po{constructor(e,t,r,n){this.remoteDocumentCache=e,this.mutationQueue=t,this.documentOverlayCache=r,this.indexManager=n}getDocument(t,r){let n=null;return this.documentOverlayCache.getOverlay(t,r).next(e=>(n=e,this.remoteDocumentCache.getEntry(t,r))).next(e=>(null!==n&&Bi(n.mutation,e,Fr.empty(),h.now()),e))}getDocuments(t,e){return this.remoteDocumentCache.getEntries(t,e).next(e=>this.getLocalViewOfDocuments(t,e,O()).next(()=>e))}getLocalViewOfDocuments(e,t,r=O()){let n=vi();return this.populateOverlays(e,n,t).next(()=>this.computeViews(e,t,n,r).next(e=>{let r=pi();return e.forEach((e,t)=>{r=r.insert(e,t.overlayedDocument)}),r}))}getOverlayedDocuments(e,t){let r=vi();return this.populateOverlays(e,r,t).next(()=>this.computeViews(e,t,r,O()))}populateOverlays(e,r,t){let n=[];return t.forEach(e=>{r.has(e)||n.push(e)}),this.documentOverlayCache.getOverlays(e,n).next(e=>{e.forEach((e,t)=>{r.set(e,t)})})}computeViews(e,t,n,i){let s=gi,a=vi(),o=vi();return t.forEach((e,t)=>{var r=n.get(t.key);i.has(t.key)&&(void 0===r||r.mutation instanceof zi)?s=s.insert(t.key,t):void 0!==r?(a.set(t.key,r.mutation.getFieldMask()),Bi(r.mutation,t,r.mutation.getFieldMask(),h.now())):a.set(t.key,Fr.empty())}),this.recalculateAndSaveOverlays(e,s).next(e=>(e.forEach((e,t)=>a.set(e,t)),t.forEach((e,t)=>{var r;return o.set(e,new mo(t,null!=(r=a.get(e))?r:null))}),o))}recalculateAndSaveOverlays(a,o){let l=vi(),u=new A((e,t)=>e-t),h=O();return this.mutationQueue.getAllMutationBatchesAffectingDocumentKeys(a,o).next(e=>{for(let n of e)n.keys().forEach(e=>{var t,r=o.get(e);null!==r&&(t=l.get(e)||Fr.empty(),t=n.applyToLocalView(r,t),l.set(e,t),r=(u.get(n.batchId)||O()).add(e),u=u.insert(n.batchId,r))})}).next(()=>{for(var i=[],s=u.getReverseIterator();s.hasNext();){let e=s.getNext(),t=e.key,r=e.value,n=vi();r.forEach(e=>{var t;h.has(e)||(null!==(t=Ui(o.get(e),l.get(e)))&&n.set(e,t),h=h.add(e))}),i.push(this.documentOverlayCache.saveOverlays(a,t,n))}return w.waitFor(i)}).next(()=>l)}recalculateAndSaveOverlaysForDocumentKeys(t,e){return this.remoteDocumentCache.getEntries(t,e).next(e=>this.recalculateAndSaveOverlays(t,e))}getDocumentsMatchingQuery(e,t,r,n){return i=t,x.isDocumentKey(i.path)&&null===i.collectionGroup&&0===i.filters.length?this.getDocumentsMatchingDocumentQuery(e,t.path):ri(t)?this.getDocumentsMatchingCollectionGroupQuery(e,t,r,n):this.getDocumentsMatchingCollectionQuery(e,t,r,n);var i}getNextDocuments(s,t,a,o){return this.remoteDocumentCache.getAllFromCollectionGroup(s,t,a,o).next(r=>{var e=0<o-r.size?this.documentOverlayCache.getOverlaysForCollectionGroup(s,t,a.largestBatchId,o-r.size):w.resolve(vi());let n=Me,i=r;return e.next(e=>w.forEach(e,(t,e)=>(n<e.largestBatchId&&(n=e.largestBatchId),r.get(t)?w.resolve():this.remoteDocumentCache.getEntry(s,t).next(e=>{i=i.insert(t,e)}))).next(()=>this.populateOverlays(s,e,r)).next(()=>this.computeViews(s,i,e,O())).next(e=>({batchId:n,changes:yi(e)})))})}getDocumentsMatchingDocumentQuery(e,t){return this.getDocument(e,new x(t)).next(e=>{let t=pi();return t=e.isFoundDocument()?t.insert(e.key,e):t})}getDocumentsMatchingCollectionGroupQuery(n,i,s,a){let o=i.collectionGroup,l=pi();return this.indexManager.getCollectionParents(n,o).next(e=>w.forEach(e,e=>{t=i,e=e.child(o);var t,r=new Jn(e,null,t.explicitOrderBy.slice(),t.filters.slice(),t.limit,t.limitType,t.startAt,t.endAt);return this.getDocumentsMatchingCollectionQuery(n,r,s,a).next(e=>{e.forEach((e,t)=>{l=l.insert(e,t)})})}).next(()=>l))}getDocumentsMatchingCollectionQuery(t,s,r,n){let a;return this.documentOverlayCache.getOverlaysForCollection(t,s.path,r.largestBatchId).next(e=>(a=e,this.remoteDocumentCache.getDocumentsMatchingQuery(t,s,r,a,n))).next(n=>{a.forEach((e,t)=>{var r=t.getKey();null===n.get(r)&&(n=n.insert(r,k.newInvalidDocument(r)))});let i=pi();return n.forEach((e,t)=>{var r=a.get(e);void 0!==r&&Bi(r.mutation,t,Fr.empty(),h.now()),hi(s,t)&&(i=i.insert(e,t))}),i})}}class yo{constructor(e){this.serializer=e,this.dr=new Map,this.Ar=new Map}getBundleMetadata(e,t){return w.resolve(this.dr.get(t))}saveBundleMetadata(e,t){return this.dr.set(t.id,{id:t.id,version:t.version,createTime:V(t.createTime)}),w.resolve()}getNamedQuery(e,t){return w.resolve(this.Ar.get(t))}saveNamedQuery(e,t){return this.Ar.set(t.name,{name:(t=t).name,query:ea(t.bundledQuery),readTime:V(t.readTime)}),w.resolve()}}class vo{constructor(){this.overlays=new A(x.comparator),this.Rr=new Map}getOverlay(e,t){return w.resolve(this.overlays.get(t))}getOverlays(e,t){let r=vi();return w.forEach(t,t=>this.getOverlay(e,t).next(e=>{null!==e&&r.set(t,e)})).next(()=>r)}saveOverlays(r,n,e){return e.forEach((e,t)=>{this.Et(r,n,t)}),w.resolve()}removeOverlaysForBatchId(e,t,r){var n=this.Rr.get(r);return void 0!==n&&(n.forEach(e=>this.overlays=this.overlays.remove(e)),this.Rr.delete(r)),w.resolve()}getOverlaysForCollection(e,r,n){let i=vi(),s=r.length+1,t=new x(r.child("")),a=this.overlays.getIteratorFrom(t);for(;a.hasNext();){let e=a.getNext().value,t=e.getKey();if(!r.isPrefixOf(t.path))break;t.path.length===s&&e.largestBatchId>n&&i.set(e.getKey(),e)}return w.resolve(i)}getOverlaysForCollectionGroup(e,r,n,t){let i=new A((e,t)=>e-t);for(var s=this.overlays.getIterator();s.hasNext();){let t=s.getNext().value;if(t.getKey().getCollectionGroup()===r&&t.largestBatchId>n){let e=i.get(t.largestBatchId);null===e&&(e=vi(),i=i.insert(t.largestBatchId,e)),e.set(t.getKey(),t)}}let a=vi(),o=i.getIterator();for(;o.hasNext()&&(o.getNext().value.forEach((e,t)=>a.set(e,t)),!(a.size()>=t)););return w.resolve(a)}Et(e,t,r){var n=this.overlays.get(r.key);if(null!==n){let e=this.Rr.get(n.largestBatchId).delete(r.key);this.Rr.set(n.largestBatchId,e)}this.overlays=this.overlays.insert(r.key,new Xi(t,r));let i=this.Rr.get(t);void 0===i&&(i=O(),this.Rr.set(t,i)),this.Rr.set(t,i.add(r.key))}}class wo{constructor(){this.sessionToken=D.EMPTY_BYTE_STRING}getSessionToken(e){return w.resolve(this.sessionToken)}setSessionToken(e,t){return this.sessionToken=t,w.resolve()}}class _o{constructor(){this.Vr=new C(l.mr),this.gr=new C(l.pr)}isEmpty(){return this.Vr.isEmpty()}addReference(e,t){var r=new l(e,t);this.Vr=this.Vr.add(r),this.gr=this.gr.add(r)}yr(e,t){e.forEach(e=>this.addReference(e,t))}removeReference(e,t){this.wr(new l(e,t))}Sr(e,t){e.forEach(e=>this.removeReference(e,t))}br(e){let t=new x(new S([])),r=new l(t,e),n=new l(t,e+1),i=[];return this.gr.forEachInRange([r,n],e=>{this.wr(e),i.push(e.key)}),i}Dr(){this.Vr.forEach(e=>this.wr(e))}wr(e){this.Vr=this.Vr.delete(e),this.gr=this.gr.delete(e)}vr(e){var t=new x(new S([])),r=new l(t,e),t=new l(t,e+1);let n=O();return this.gr.forEachInRange([r,t],e=>{n=n.add(e.key)}),n}containsKey(e){var t=new l(e,0),t=this.Vr.firstAfterOrEqual(t);return null!==t&&e.isEqual(t.key)}}class l{constructor(e,t){this.key=e,this.Cr=t}static mr(e,t){return x.comparator(e.key,t.key)||E(e.Cr,t.Cr)}static pr(e,t){return E(e.Cr,t.Cr)||x.comparator(e.key,t.key)}}class bo{constructor(e,t){this.indexManager=e,this.referenceDelegate=t,this.mutationQueue=[],this.Fr=1,this.Mr=new C(l.mr)}checkEmpty(e){return w.resolve(0===this.mutationQueue.length)}addMutationBatch(e,t,r,n){var i=this.Fr,s=(this.Fr++,0<this.mutationQueue.length&&this.mutationQueue[this.mutationQueue.length-1],new Wi(i,t,r,n));this.mutationQueue.push(s);for(let t of n)this.Mr=this.Mr.add(new l(t.key,i)),this.indexManager.addToCollectionParentIndex(e,t.key.path.popLast());return w.resolve(s)}lookupMutationBatch(e,t){return w.resolve(this.Or(t))}getNextMutationBatchAfterBatchId(e,t){var r=this.Nr(t+1),r=r<0?0:r;return w.resolve(this.mutationQueue.length>r?this.mutationQueue[r]:null)}getHighestUnacknowledgedBatchId(){return w.resolve(0===this.mutationQueue.length?ut:this.Fr-1)}getAllMutationBatches(e){return w.resolve(this.mutationQueue.slice())}getAllMutationBatchesAffectingDocumentKey(e,t){let r=new l(t,0),n=new l(t,Number.POSITIVE_INFINITY),i=[];return this.Mr.forEachInRange([r,n],e=>{var t=this.Or(e.Cr);i.push(t)}),w.resolve(i)}getAllMutationBatchesAffectingDocumentKeys(e,t){let n=new C(E);return t.forEach(e=>{var t=new l(e,0),r=new l(e,Number.POSITIVE_INFINITY);this.Mr.forEachInRange([t,r],e=>{n=n.add(e.Cr)})}),w.resolve(this.Br(n))}getAllMutationBatchesAffectingQuery(e,t){let r=t.path,n=r.length+1,i=r;x.isDocumentKey(i)||(i=i.child(""));var s=new l(new x(i),0);let a=new C(E);return this.Mr.forEachWhile(e=>{var t=e.key.path;return!!r.isPrefixOf(t)&&(t.length===n&&(a=a.add(e.Cr)),!0)},s),w.resolve(this.Br(a))}Br(e){let r=[];return e.forEach(e=>{var t=this.Or(e);null!==t&&r.push(t)}),r}removeMutationBatch(r,n){y(0===this.Lr(n.batchId,"removed")),this.mutationQueue.shift();let i=this.Mr;return w.forEach(n.mutations,e=>{var t=new l(e.key,n.batchId);return i=i.delete(t),this.referenceDelegate.markPotentiallyOrphaned(r,e.key)}).next(()=>{this.Mr=i})}qn(e){}containsKey(e,t){var r=new l(t,0),r=this.Mr.firstAfterOrEqual(r);return w.resolve(t.isEqual(r&&r.key))}performConsistencyCheck(e){return this.mutationQueue.length,w.resolve()}Lr(e,t){return this.Nr(e)}Nr(e){return 0===this.mutationQueue.length?0:e-this.mutationQueue[0].batchId}Or(e){var t=this.Nr(e);return t<0||t>=this.mutationQueue.length?null:this.mutationQueue[t]}}class Io{constructor(e){this.kr=e,this.docs=new A(x.comparator),this.size=0}setIndexManager(e){this.indexManager=e}addEntry(e,t){var r=t.key,n=this.docs.get(r),n=n?n.size:0,i=this.kr(t);return this.docs=this.docs.insert(r,{document:t.mutableCopy(),size:i}),this.size+=i-n,this.indexManager.addToCollectionParentIndex(e,r.path.popLast())}removeEntry(e){var t=this.docs.get(e);t&&(this.docs=this.docs.remove(e),this.size-=t.size)}getEntry(e,t){var r=this.docs.get(t);return w.resolve(r?r.document.mutableCopy():k.newInvalidDocument(t))}getEntries(e,t){let r=gi;return t.forEach(e=>{var t=this.docs.get(e);r=r.insert(e,t?t.document.mutableCopy():k.newInvalidDocument(e))}),w.resolve(r)}getDocumentsMatchingQuery(e,r,n,i){let s=gi,a=r.path,t=new x(a.child("__id-9223372036854775808__")),o=this.docs.getIteratorFrom(t);for(;o.hasNext();){let{key:e,value:{document:t}}=o.getNext();if(!a.isPrefixOf(e.path))break;e.path.length>a.length+1||Ge(je(t),n)<=0||(i.has(t.key)||hi(r,t))&&(s=s.insert(t.key,t.mutableCopy()))}return w.resolve(s)}getAllFromCollectionGroup(e,t,r,n){T()}qr(e,t){return w.forEach(this.docs,e=>t(e))}newChangeBuffer(e){return new To(this)}getSize(e){return w.resolve(this.size)}}class To extends so{constructor(e){super(),this.Ir=e}applyChanges(r){let n=[];return this.changes.forEach((e,t)=>{t.isValidDocument()?n.push(this.Ir.addEntry(r,t)):this.Ir.removeEntry(e)}),w.waitFor(n)}getFromCache(e,t){return this.Ir.getEntry(e,t)}getAllFromCache(e,t){return this.Ir.getEntries(e,t)}}class Eo{constructor(e){this.persistence=e,this.Qr=new fi(e=>Qn(e),$n),this.lastRemoteSnapshotVersion=g.min(),this.highestTargetId=0,this.$r=0,this.Ur=new _o,this.targetCount=0,this.Kr=Qa.Un()}forEachTarget(e,r){return this.Qr.forEach((e,t)=>r(t)),w.resolve()}getLastRemoteSnapshotVersion(e){return w.resolve(this.lastRemoteSnapshotVersion)}getHighestSequenceNumber(e){return w.resolve(this.$r)}allocateTargetId(e){return this.highestTargetId=this.Kr.next(),w.resolve(this.highestTargetId)}setTargetsMetadata(e,t,r){return r&&(this.lastRemoteSnapshotVersion=r),t>this.$r&&(this.$r=t),w.resolve()}zn(e){this.Qr.set(e.target,e);var t=e.targetId;t>this.highestTargetId&&(this.Kr=new Qa(t),this.highestTargetId=t),e.sequenceNumber>this.$r&&(this.$r=e.sequenceNumber)}addTargetData(e,t){return this.zn(t),this.targetCount+=1,w.resolve()}updateTargetData(e,t){return this.zn(t),w.resolve()}removeTargetData(e,t){return this.Qr.delete(t.target),this.Ur.br(t.targetId),--this.targetCount,w.resolve()}removeTargets(r,n,i){let s=0,a=[];return this.Qr.forEach((e,t)=>{t.sequenceNumber<=n&&null===i.get(t.targetId)&&(this.Qr.delete(e),a.push(this.removeMatchingKeysForTargetId(r,t.targetId)),s++)}),w.waitFor(a).next(()=>s)}getTargetCount(e){return w.resolve(this.targetCount)}getTargetData(e,t){var r=this.Qr.get(t)||null;return w.resolve(r)}addMatchingKeys(e,t,r){return this.Ur.yr(t,r),w.resolve()}removeMatchingKeys(t,e,r){this.Ur.Sr(e,r);let n=this.persistence.referenceDelegate,i=[];return n&&e.forEach(e=>{i.push(n.markPotentiallyOrphaned(t,e))}),w.waitFor(i)}removeMatchingKeysForTargetId(e,t){return this.Ur.br(t),w.resolve()}getMatchingKeysForTargetId(e,t){var r=this.Ur.vr(t);return w.resolve(r)}containsKey(e,t){return w.resolve(this.Ur.containsKey(t))}}class So{constructor(e,t){this.Wr={},this.overlays={},this.Gr=new lt(0),this.zr=!1,this.zr=!0,this.jr=new wo,this.referenceDelegate=e(this),this.Hr=new Eo(this),this.indexManager=new Aa,this.remoteDocumentCache=(e=e=>this.referenceDelegate.Jr(e),new Io(e)),this.serializer=new Qs(t),this.Yr=new yo(this.serializer)}start(){return Promise.resolve()}shutdown(){return this.zr=!1,Promise.resolve()}get started(){return this.zr}setDatabaseDeletedListener(){}setNetworkEnabled(){}getIndexManager(e){return this.indexManager}getDocumentOverlayCache(e){let t=this.overlays[e.toKey()];return t||(t=new vo,this.overlays[e.toKey()]=t),t}getMutationQueue(e,t){let r=this.Wr[e.toKey()];return r||(r=new bo(t,this.referenceDelegate),this.Wr[e.toKey()]=r),r}getGlobalsCache(){return this.jr}getTargetCache(){return this.Hr}getRemoteDocumentCache(){return this.remoteDocumentCache}getBundleCache(){return this.Yr}runTransaction(e,t,r){p("MemoryPersistence","Starting transaction:",e);let n=new xo(this.Gr.next());return this.referenceDelegate.Zr(),r(n).next(e=>this.referenceDelegate.Xr(n).next(()=>e)).toPromise().then(e=>(n.raiseOnCommittedEvent(),e))}ei(t,r){return w.or(Object.values(this.Wr).map(e=>()=>e.containsKey(t,r)))}}class xo extends Qe{constructor(e){super(),this.currentSequenceNumber=e}}class Ao{constructor(e){this.persistence=e,this.ti=new _o,this.ni=null}static ri(e){return new Ao(e)}get ii(){if(this.ni)return this.ni;throw T()}addReference(e,t,r){return this.ti.addReference(r,t),this.ii.delete(r.toString()),w.resolve()}removeReference(e,t,r){return this.ti.removeReference(r,t),this.ii.add(r.toString()),w.resolve()}markPotentiallyOrphaned(e,t){return this.ii.add(t.toString()),w.resolve()}removeTarget(e,t){this.ti.br(t.targetId).forEach(e=>this.ii.add(e.toString()));let r=this.persistence.getTargetCache();return r.getMatchingKeysForTargetId(e,t.targetId).next(e=>{e.forEach(e=>this.ii.add(e.toString()))}).next(()=>r.removeTargetData(e,t))}Zr(){this.ni=new Set}Xr(r){let n=this.persistence.getRemoteDocumentCache().newChangeBuffer();return w.forEach(this.ii,e=>{let t=x.fromPath(e);return this.si(r,t).next(e=>{e||n.removeEntry(t,g.min())})}).next(()=>(this.ni=null,n.apply(r)))}updateLimboDocument(e,t){return this.si(e,t).next(e=>{e?this.ii.delete(t.toString()):this.ii.add(t.toString())})}Jr(e){return 0}si(e,t){return w.or([()=>w.resolve(this.ti.containsKey(t)),()=>this.persistence.getTargetCache().containsKey(e,t),()=>this.persistence.ei(e,t)])}}class Co{constructor(e,t){this.persistence=e,this.oi=new fi(e=>o(e.path),(e,t)=>e.isEqual(t)),this.garbageCollector=ro(this,t)}static ri(e,t){return new Co(e,t)}Zr(){}Xr(e){return w.resolve()}forEachTarget(e,t){return this.persistence.getTargetCache().forEachTarget(e,t)}nr(e){let r=this.sr(e);return this.persistence.getTargetCache().getTargetCount(e).next(t=>r.next(e=>t+e))}sr(e){let t=0;return this.rr(e,e=>{t++}).next(()=>t)}rr(r,n){return w.forEach(this.oi,(e,t)=>this.ar(r,e,t).next(e=>e?w.resolve():n(t)))}removeTargets(e,t,r){return this.persistence.getTargetCache().removeTargets(e,t,r)}removeOrphanedDocuments(e,r){let n=0,t=this.persistence.getRemoteDocumentCache(),i=t.newChangeBuffer();return t.qr(e,t=>this.ar(e,t,r).next(e=>{e||(n++,i.removeEntry(t,g.min()))})).next(()=>i.apply(e)).next(()=>n)}markPotentiallyOrphaned(e,t){return this.oi.set(t,e.currentSequenceNumber),w.resolve()}removeTarget(e,t){var r=t.withSequenceNumber(e.currentSequenceNumber);return this.persistence.getTargetCache().updateTargetData(e,r)}addReference(e,t,r){return this.oi.set(r,e.currentSequenceNumber),w.resolve()}removeReference(e,t,r){return this.oi.set(r,e.currentSequenceNumber),w.resolve()}updateLimboDocument(e,t){return this.oi.set(t,e.currentSequenceNumber),w.resolve()}Jr(e){let t=e.key.toString().length;return e.isFoundDocument()&&(t+=function n(e){switch(sn(e)){case 0:case 1:return 4;case 2:return 8;case 3:case 8:return 16;case 4:var t=$r(e);return t?16+n(t):16;case 5:return 2*e.stringValue.length;case 6:return qr(e.bytesValue).approximateByteSize();case 7:return e.referenceValue.length;case 9:return(e.arrayValue.values||[]).reduce((e,t)=>e+n(t),0);case 10:case 11:{var i=e.mapValue;let r=0;return kr(i.fields,(e,t)=>{r+=e.length+n(t)}),r}default:throw T()}}(e.data.value)),t}ar(e,t,r){return w.or([()=>this.persistence.ei(e,t),()=>this.persistence.getTargetCache().containsKey(e,t),()=>{var e=this.oi.get(t);return w.resolve(void 0!==e&&r<e)}])}getCacheSize(e){return this.persistence.getRemoteDocumentCache().getSize(e)}}class Do{constructor(e){this.serializer=e}B(t,e,r,n){let s=new We("createOrUpgrade",e);var i;r<1&&1<=n&&(t.createObjectStore(yt),(i=t).createObjectStore(wt,{keyPath:"userId"}),i.createObjectStore(_t,{keyPath:bt,autoIncrement:!0}).createIndex(It,Tt,{unique:!0}),i.createObjectStore(At),No(t),t.createObjectStore(pt));let a=w.resolve();return r<3&&3<=n&&(0!==r&&((i=t).deleteObjectStore(Ut),i.deleteObjectStore(Vt),i.deleteObjectStore(Gt),No(t)),a=a.next(()=>{return e=s,t=e.store(Gt),r={highestTargetId:0,highestListenSequenceNumber:0,lastRemoteSnapshotVersion:g.min().toTimestamp(),targetCount:0},t.put(zt,r);var e,t,r})),r<4&&4<=n&&(a=(a=0!==r?a.next(()=>{return n=t,(i=s).store(_t).G().next(e=>{n.deleteObjectStore(_t),n.createObjectStore(_t,{keyPath:bt,autoIncrement:!0}).createIndex(It,Tt,{unique:!0});let t=i.store(_t),r=e.map(e=>t.put(e));return w.waitFor(r)});var n,i}):a).next(()=>{t.createObjectStore($t,{keyPath:"clientId"})})),r<5&&5<=n&&(a=a.next(()=>this._i(s))),r<6&&6<=n&&(a=a.next(()=>(t.createObjectStore(Ot),this.ai(s)))),r<7&&7<=n&&(a=a.next(()=>this.ui(s))),r<8&&8<=n&&(a=a.next(()=>this.ci(t,s))),r<9&&9<=n&&(a=a.next(()=>{var e;(e=t).objectStoreNames.contains("remoteDocumentChanges")&&e.deleteObjectStore("remoteDocumentChanges")})),r<10&&10<=n&&(a=a.next(()=>this.li(s))),r<11&&11<=n&&(a=a.next(()=>{t.createObjectStore(Ht,{keyPath:"bundleId"}),t.createObjectStore(Wt,{keyPath:"name"})})),r<12&&12<=n&&(a=a.next(()=>{var e;(e=t.createObjectStore(ar,{keyPath:or})).createIndex(lr,ur,{unique:!1}),e.createIndex(hr,cr,{unique:!1})})),r<13&&13<=n&&(a=a.next(()=>{var e;(e=t.createObjectStore(Ct,{keyPath:Dt})).createIndex(Nt,kt),e.createIndex(Rt,Lt)}).next(()=>this.hi(t,s)).next(()=>t.deleteObjectStore(pt))),r<14&&14<=n&&(a=a.next(()=>this.Pi(t,s))),r<15&&15<=n&&(a=a.next(()=>{var e;(e=t).createObjectStore(Yt,{keyPath:"indexId",autoIncrement:!0}).createIndex(Xt,"collectionGroup",{unique:!1}),e.createObjectStore(Jt,{keyPath:Zt}).createIndex(er,tr,{unique:!1}),e.createObjectStore(rr,{keyPath:nr}).createIndex(ir,sr,{unique:!1})})),r<16&&16<=n&&(a=a.next(()=>{e.objectStore(Jt).clear()}).next(()=>{e.objectStore(rr).clear()})),a=r<17&&17<=n?a.next(()=>{t.createObjectStore(dr,{keyPath:"name"})}):a}ai(t){let r=0;return t.store(pt).Z((e,t)=>{r+=Ba(t)}).next(()=>{var e={byteSize:r};return t.store(Ot).put(Mt,e)})}_i(n){let e=n.store(wt),t=n.store(_t);return e.G().next(e=>w.forEach(e,r=>{var e=IDBKeyRange.bound([r.userId,ut],[r.userId,r.lastAcknowledgedBatchId]);return t.G(It,e).next(e=>w.forEach(e,e=>{y(e.userId===r.userId);var t=Xs(this.serializer,e);return Ua(n,r.userId,t).next(()=>{})}))}))}ui(e){let a=e.store(Ut),t=e.store(pt);return e.store(Gt).get(zt).next(i=>{let s=[];return t.Z((e,t)=>{let r=new S(e),n=[0,o(r)];s.push(a.get(n).next(e=>e?w.resolve():(e=r,a.put({targetId:0,path:o(e),sequenceNumber:i.highestListenSequenceNumber}))))}).next(()=>w.waitFor(s))})}ci(e,t){e.createObjectStore(Kt,{keyPath:Qt});let n=t.store(Kt),i=new Ca,s=r=>{if(i.add(r)){let e=r.lastSegment(),t=r.popLast();return n.put({collectionId:e,parent:o(t)})}};return t.store(pt).Z({Y:!0},(e,t)=>{var r=new S(e);return s(r.popLast())}).next(()=>t.store(At).Z({Y:!0},([,e],t)=>{var r=mt(e);return s(r.popLast())}))}li(e){let n=e.store(Vt);return n.Z((e,t)=>{var r=Js(t),r=Zs(this.serializer,r);return n.put(r)})}hi(e,s){let t=s.store(pt),a=[];return t.Z((e,t)=>{var r,n=s.store(Ct),i=((r=t).document?new x(S.fromString(r.document.name).popFirst(5)):r.noDocument?x.fromSegments(r.noDocument.path):r.unknownDocument?x.fromSegments(r.unknownDocument.path):T()).path.toArray(),i={prefixPath:i.slice(0,i.length-2),collectionGroup:i[i.length-2],documentId:i[i.length-1],readTime:t.readTime||[0,0],unknownDocument:t.unknownDocument,noDocument:t.noDocument,document:t.document,hasCommittedMutations:!!t.hasCommittedMutations};a.push(n.put(i))}).next(()=>w.waitFor(a))}Pi(e,s){let t=s.store(_t),a=oo(this.serializer),o=new So(Ao.ri,this.serializer.Tt);return t.G().next(e=>{let n=new Map;return e.forEach(e=>{let t,r=null!=(t=n.get(e.userId))?t:O();Xs(this.serializer,e).keys().forEach(e=>r=r.add(e)),n.set(e.userId,r)}),w.forEach(n,(e,t)=>{var r=new u(t),n=oa.It(this.serializer,r),i=o.getIndexManager(r),r=qa.It(r,this.serializer,i,o.referenceDelegate);return new po(a,r,n,i).recalculateAndSaveOverlaysForDocumentKeys(new Dr(s,lt.ae),e).next()})})}}function No(e){e.createObjectStore(Ut,{keyPath:Bt}).createIndex(qt,jt,{unique:!0}),e.createObjectStore(Vt,{keyPath:"targetId"}).createIndex(Ft,Pt,{unique:!0}),e.createObjectStore(Gt)}let ko="IndexedDbPersistence",Ro="Failed to obtain exclusive access to the persistence layer. To allow shared access, multi-tab synchronization has to be enabled in all tabs. If you are using `experimentalForceOwningTab:true`, make sure that only one tab has persistence enabled at any given time.";class Lo{constructor(e,t,r,n,i,s,a,o,l,u,h=17){if(this.allowTabSynchronization=e,this.persistenceKey=t,this.clientId=r,this.Ti=i,this.window=s,this.document=a,this.Ii=l,this.Ei=u,this.di=h,this.Gr=null,this.zr=!1,this.isPrimary=!1,this.networkEnabled=!0,this.Ai=null,this.inForeground=!1,this.Ri=null,this.Vi=null,this.mi=Number.NEGATIVE_INFINITY,this.fi=e=>Promise.resolve(),!Lo.D())throw new I(b.UNIMPLEMENTED,"This platform is either missing IndexedDB or is known to have an incomplete implementation. Offline persistence has been disabled.");this.referenceDelegate=new no(this,n),this.gi=t+"main",this.serializer=new Qs(o),this.pi=new Ye(this.gi,this.di,new Do(this.serializer)),this.jr=new ua,this.Hr=new $a(this.referenceDelegate,this.serializer),this.remoteDocumentCache=oo(this.serializer),this.Yr=new ia,this.window&&this.window.localStorage?this.yi=this.window.localStorage:(this.yi=null,!1===u&&d(ko,"LocalStorage is unavailable. As a result, persistence may not work reliably. In particular enablePersistence() could fail immediately after refreshing the page."))}start(){return this.wi().then(()=>{if(this.isPrimary||this.allowTabSynchronization)return this.Si(),this.bi(),this.Di(),this.runTransaction("getHighestListenSequenceNumber","readonly",e=>this.Hr.getHighestSequenceNumber(e));throw new I(b.FAILED_PRECONDITION,Ro)}).then(e=>{this.Gr=new lt(e,this.Ii)}).then(()=>{this.zr=!0}).catch(e=>(this.pi&&this.pi.close(),Promise.reject(e)))}Ci(t){return this.fi=async e=>{if(this.started)return t(e)},t(this.isPrimary)}setDatabaseDeletedListener(t){this.pi.k(async e=>{null===e.newVersion&&await t()})}setNetworkEnabled(e){this.networkEnabled!==e&&(this.networkEnabled=e,this.Ti.enqueueAndForget(async()=>{this.started&&await this.wi()}))}wi(){return this.runTransaction("updateClientMetadataAndTryBecomePrimary","readwrite",t=>Mo(t).put({clientId:this.clientId,updateTimeMs:Date.now(),networkEnabled:this.networkEnabled,inForeground:this.inForeground}).next(()=>{if(this.isPrimary)return this.Fi(t).next(e=>{e||(this.isPrimary=!1,this.Ti.enqueueRetryable(()=>this.fi(!1)))})}).next(()=>this.Mi(t)).next(e=>this.isPrimary&&!e?this.xi(t).next(()=>!1):!!e&&this.Oi(t).next(()=>!0))).catch(e=>{if(et(e))return p(ko,"Failed to extend owner lease: ",e),this.isPrimary;if(this.allowTabSynchronization)return p(ko,"Releasing owner lease after error during lease refresh",e),!1;throw e}).then(e=>{this.isPrimary!==e&&this.Ti.enqueueRetryable(()=>this.fi(e)),this.isPrimary=e})}Fi(e){return Oo(e).get(vt).next(e=>w.resolve(this.Ni(e)))}Bi(e){return Mo(e).delete(this.clientId)}async Li(){if(this.isPrimary&&!this.ki(this.mi,18e5)){this.mi=Date.now();var e=await this.runTransaction("maybeGarbageCollectMultiClientState","readwrite-primary",e=>{let n=r(e,$t);return n.G().next(e=>{let t=this.qi(e,18e5),r=e.filter(e=>-1===t.indexOf(e));return w.forEach(r,e=>n.delete(e.clientId)).next(()=>r)})}).catch(()=>[]);if(this.yi)for(var t of e)this.yi.removeItem(this.Qi(t.clientId))}}Di(){this.Vi=this.Ti.enqueueAfterDelay("client_metadata_refresh",4e3,()=>this.wi().then(()=>this.Li()).then(()=>this.Di()))}Ni(e){return!!e&&e.ownerId===this.clientId}Mi(t){return this.Ei?w.resolve(!0):Oo(t).get(vt).next(e=>{if(null!==e&&this.ki(e.leaseTimestampMs,5e3)&&!this.$i(e.ownerId)){if(this.Ni(e)&&this.networkEnabled)return!0;if(!this.Ni(e)){if(e.allowTabSynchronization)return!1;throw new I(b.FAILED_PRECONDITION,Ro)}}return!(!this.networkEnabled||!this.inForeground)||Mo(t).G().next(e=>void 0===this.qi(e,5e3).find(e=>{if(this.clientId!==e.clientId){var t=!this.networkEnabled&&e.networkEnabled,r=!this.inForeground&&e.inForeground,n=this.networkEnabled===e.networkEnabled;if(t||r&&n)return!0}return!1}))}).next(e=>(this.isPrimary!==e&&p(ko,`Client ${e?"is":"is not"} eligible for a primary lease.`),e))}async shutdown(){this.zr=!1,this.Ui(),this.Vi&&(this.Vi.cancel(),this.Vi=null),this.Ki(),this.Wi(),await this.pi.runTransaction("shutdown","readwrite",[yt,$t],e=>{let t=new Dr(e,lt.ae);return this.xi(t).next(()=>this.Bi(t))}),this.pi.close(),this.Gi()}qi(e,t){return e.filter(e=>this.ki(e.updateTimeMs,t)&&!this.$i(e.clientId))}zi(){return this.runTransaction("getActiveClients","readonly",e=>Mo(e).G().next(e=>this.qi(e,18e5).map(e=>e.clientId)))}get started(){return this.zr}getGlobalsCache(){return this.jr}getMutationQueue(e,t){return qa.It(e,this.serializer,t,this.referenceDelegate)}getTargetCache(){return this.Hr}getRemoteDocumentCache(){return this.remoteDocumentCache}getIndexManager(e){return new ka(e,this.serializer.Tt.databaseId)}getDocumentOverlayCache(e){return oa.It(this.serializer,e)}getBundleCache(){return this.Yr}runTransaction(t,r,n){p(ko,"Starting transaction:",t);var e,i="readonly"===r?"readonly":"readwrite",s=17===(e=this.di)?Cr:16===e?Ar:15===e?xr:14===e?Sr:13===e?mr:12===e?gr:11===e?fr:void T();let a;return this.pi.runTransaction(t,i,s,e=>(a=new Dr(e,this.Gr?this.Gr.next():lt.ae),"readwrite-primary"===r?this.Fi(a).next(e=>!!e||this.Mi(a)).next(e=>{if(e)return n(a);throw d(`Failed to obtain primary lease for action '${t}'.`),this.isPrimary=!1,this.Ti.enqueueRetryable(()=>this.fi(!1)),new I(b.FAILED_PRECONDITION,Ke)}).next(e=>this.Oi(a).next(()=>e)):this.ji(a).next(()=>n(a)))).then(e=>(a.raiseOnCommittedEvent(),e))}ji(e){return Oo(e).get(vt).next(e=>{if(null!==e&&this.ki(e.leaseTimestampMs,5e3)&&!this.$i(e.ownerId)&&!this.Ni(e)&&!(this.Ei||this.allowTabSynchronization&&e.allowTabSynchronization))throw new I(b.FAILED_PRECONDITION,Ro)})}Oi(e){var t={ownerId:this.clientId,allowTabSynchronization:this.allowTabSynchronization,leaseTimestampMs:Date.now()};return Oo(e).put(vt,t)}static D(){return Ye.D()}xi(e){let t=Oo(e);return t.get(vt).next(e=>this.Ni(e)?(p(ko,"Releasing primary lease."),t.delete(vt)):w.resolve())}ki(e,t){var r=Date.now();return!(e<r-t||r<e&&(d(`Detected an update time that is in the future: ${e} > `+r),1))}Si(){null!==this.document&&"function"==typeof this.document.addEventListener&&(this.Ri=()=>{this.Ti.enqueueAndForget(()=>(this.inForeground="visible"===this.document.visibilityState,this.wi()))},this.document.addEventListener("visibilitychange",this.Ri),this.inForeground="visible"===this.document.visibilityState)}Ki(){this.Ri&&(this.document.removeEventListener("visibilitychange",this.Ri),this.Ri=null)}bi(){var e;"function"==typeof(null==(e=this.window)?void 0:e.addEventListener)&&(this.Ai=()=>{this.Ui();var e=/(?:Version|Mobile)\/1[456]/;Y()&&(navigator.appVersion.match(e)||navigator.userAgent.match(e))&&this.Ti.enterRestrictedMode(!0),this.Ti.enqueueAndForget(()=>this.shutdown())},this.window.addEventListener("pagehide",this.Ai))}Wi(){this.Ai&&(this.window.removeEventListener("pagehide",this.Ai),this.Ai=null)}$i(e){var t;try{var r=null!==(null==(t=this.yi)?void 0:t.getItem(this.Qi(e)));return p(ko,`Client '${e}' ${r?"is":"is not"} zombied in LocalStorage`),r}catch(e){return d(ko,"Failed to get zombied client id.",e),!1}}Ui(){if(this.yi)try{this.yi.setItem(this.Qi(this.clientId),String(Date.now()))}catch(e){d("Failed to set zombie client id.",e)}}Gi(){if(this.yi)try{this.yi.removeItem(this.Qi(this.clientId))}catch(e){}}Qi(e){return`firestore_zombie_${this.persistenceKey}_`+e}}function Oo(e){return r(e,yt)}function Mo(e){return r(e,$t)}function Vo(e,t){let r=e.projectId;return e.isDefaultDatabase||(r+="."+e.database),"firestore/"+t+"/"+r+"/"}class Fo{constructor(e,t,r,n){this.targetId=e,this.fromCache=t,this.Hi=r,this.Ji=n}static Yi(e,t){let r=O(),n=O();for(let e of t.docChanges)switch(e.type){case 0:r=r.add(e.doc.key);break;case 1:n=n.add(e.doc.key)}return new Fo(e,t.fromCache,r,n)}}class Po{constructor(){this._documentReadCount=0}get documentReadCount(){return this._documentReadCount}incrementDocumentReadCount(e){this._documentReadCount+=e}}class Uo{constructor(){this.Zi=!1,this.Xi=!1,this.es=100,this.ts=Y()?8:0<Xe(W())?6:4}initialize(e,t){this.ns=e,this.indexManager=t,this.Zi=!0}getDocumentsMatchingQuery(r,n,e,t){let i={result:null};return this.rs(r,n).next(e=>{i.result=e}).next(()=>{if(!i.result)return this.ss(r,n,t,e).next(e=>{i.result=e})}).next(()=>{if(!i.result){let t=new Po;return this._s(r,n,t).next(e=>{if(i.result=e,this.Xi)return this.us(r,n,t,e.size)})}}).next(()=>i.result)}us(e,t,r,n){return r.documentReadCount<this.es?(ge()<=c.DEBUG&&p("QueryEngine","SDK will not create cache indexes for query:",ui(t),"since it only creates cache indexes for collection contains","more than or equal to",this.es,"documents"),w.resolve()):(ge()<=c.DEBUG&&p("QueryEngine","Query:",ui(t),"scans",r.documentReadCount,"local documents and returns",n,"documents as results."),r.documentReadCount>this.ts*n?(ge()<=c.DEBUG&&p("QueryEngine","The SDK decides to create cache indexes for query:",ui(t),"as using cache indexes may help improve performance."),this.indexManager.createTargetIndexes(e,ii(t))):w.resolve())}rs(i,s){if(ti(s))return w.resolve(null);let t=ii(s);return this.indexManager.getIndexType(i,t).next(e=>0===e?null:(null!==s.limit&&1===e&&(s=ai(s,null,"F"),t=ii(s)),this.indexManager.getDocumentsMatchingTarget(i,t).next(e=>{let n=O(...e);return this.ns.getDocuments(i,n).next(r=>this.indexManager.getMinOffset(i,t).next(e=>{var t=this.cs(s,r);return this.ls(s,t,n,e.readTime)?this.rs(i,ai(s,null,"F")):this.hs(i,t,s,e)}))})))}ss(r,n,i,s){return ti(n)||s.isEqual(g.min())?w.resolve(null):this.ns.getDocuments(r,i).next(e=>{var t=this.cs(n,e);return this.ls(n,t,i,s)?w.resolve(null):(ge()<=c.DEBUG&&p("QueryEngine","Re-using previous result from %s to execute query: %s",s.toString(),ui(n)),this.hs(r,t,n,qe(s,Me)).next(e=>e))})}cs(r,e){let n=new C(di(r));return e.forEach((e,t)=>{hi(r,t)&&(n=n.add(t))}),n}ls(e,t,r,n){var i;return null!==e.limit&&(r.size!==t.size||!!(i="F"===e.limitType?t.last():t.first())&&(i.hasPendingWrites||0<i.version.compareTo(n)))}_s(e,t,r){return ge()<=c.DEBUG&&p("QueryEngine","Using full collection scan to execute query:",ui(t)),this.ns.getDocumentsMatchingQuery(e,t,ze.min(),r)}hs(e,r,t,n){return this.ns.getDocumentsMatchingQuery(e,t,n).next(t=>(r.forEach(e=>{t=t.insert(e.key,e)}),t))}}let Bo="LocalStore",qo=3e8;class jo{constructor(e,t,r,n){this.persistence=e,this.Ps=t,this.serializer=n,this.Ts=new A(E),this.Is=new fi(e=>Qn(e),$n),this.Es=new Map,this.ds=e.getRemoteDocumentCache(),this.Hr=e.getTargetCache(),this.Yr=e.getBundleCache(),this.As(r)}As(e){this.documentOverlayCache=this.persistence.getDocumentOverlayCache(e),this.indexManager=this.persistence.getIndexManager(e),this.mutationQueue=this.persistence.getMutationQueue(e,this.indexManager),this.localDocuments=new po(this.ds,this.mutationQueue,this.documentOverlayCache,this.indexManager),this.ds.setIndexManager(this.indexManager),this.Ps.initialize(this.localDocuments,this.indexManager)}collectGarbage(t){return this.persistence.runTransaction("Collect garbage","readwrite-primary",e=>t.collect(e,this.Ts))}}function zo(e,t,r,n){return new jo(e,t,r,n)}async function Go(e,t){let o=e;return o.persistence.runTransaction("Handle user change","readonly",s=>{let a;return o.mutationQueue.getAllMutationBatches(s).next(e=>(a=e,o.As(t),o.mutationQueue.getAllMutationBatches(s))).next(e=>{let t=[],r=[],n=O();for(let i of a){t.push(i.batchId);for(let e of i.mutations)n=n.add(e.key)}for(let i of e){r.push(i.batchId);for(let e of i.mutations)n=n.add(e.key)}return o.localDocuments.getDocuments(s,n).next(e=>({Rs:e,removedBatchIds:t,addedBatchIds:r}))})})}function Ko(e,n){let i=e;return i.persistence.runTransaction("Acknowledge batch","readwrite-primary",e=>{let t=n.batch.keys(),r=i.ds.newChangeBuffer({trackRemovals:!0});return((e,t,n,i)=>{let s=n.batch,r=s.keys(),a=w.resolve();return r.forEach(r=>{a=a.next(()=>i.getEntry(t,r)).next(e=>{var t=n.docVersions.get(r);y(null!==t),e.version.compareTo(t)<0&&(s.applyToRemoteDocument(e,n),e.isValidDocument())&&(e.setReadTime(n.commitVersion),i.addEntry(e))})}),a.next(()=>e.mutationQueue.removeMutationBatch(t,s))})(i,e,n,r).next(()=>r.apply(e)).next(()=>i.mutationQueue.performConsistencyCheck(e)).next(()=>i.documentOverlayCache.removeOverlaysForBatchId(e,t,n.batch.batchId)).next(()=>i.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(e,(e=>{let t=O();for(let r=0;r<e.mutationResults.length;++r)0<e.mutationResults[r].transformResults.length&&(t=t.add(e.batch.mutations[r].key));return t})(n))).next(()=>i.localDocuments.getDocuments(e,t))})}function Qo(e){let t=e;return t.persistence.runTransaction("Get last remote snapshot version","readonly",e=>t.Hr.getLastRemoteSnapshotVersion(e))}function $o(e,u){let h=e,c=u.snapshotVersion,d=h.Ts;return h.persistence.runTransaction("Apply remote event","readwrite-primary",o=>{let e=h.ds.newChangeBuffer({trackRemovals:!0}),l=(d=h.Ts,[]),t=(u.targetChanges.forEach((t,r)=>{var n,i,s,a=d.get(r);if(a){l.push(h.Hr.removeMatchingKeys(o,t.removedDocuments,r).next(()=>h.Hr.addMatchingKeys(o,t.addedDocuments,r)));let e=a.withSequenceNumber(o.currentSequenceNumber);null!==u.targetMismatches.get(r)?e=e.withResumeToken(D.EMPTY_BYTE_STRING,g.min()).withLastLimboFreeSnapshotVersion(g.min()):0<t.resumeToken.approximateByteSize()&&(e=e.withResumeToken(t.resumeToken,c)),d=d.insert(r,e),n=a,i=e,s=t,(0===n.resumeToken.approximateByteSize()||i.snapshotVersion.toMicroseconds()-n.snapshotVersion.toMicroseconds()>=qo||0<s.addedDocuments.size+s.modifiedDocuments.size+s.removedDocuments.size)&&l.push(h.Hr.updateTargetData(o,e))}}),gi),r=O();if(u.documentUpdates.forEach(e=>{u.resolvedLimboDocuments.has(e)&&l.push(h.persistence.referenceDelegate.updateLimboDocument(o,e))}),l.push(Ho(o,e,u.documentUpdates).next(e=>{t=e.Vs,r=e.fs})),!c.isEqual(g.min())){let e=h.Hr.getLastRemoteSnapshotVersion(o).next(e=>h.Hr.setTargetsMetadata(o,o.currentSequenceNumber,c));l.push(e)}return w.waitFor(l).next(()=>e.apply(o)).next(()=>h.localDocuments.getLocalViewOfDocuments(o,t,r)).next(()=>t)}).then(e=>(h.Ts=d,e))}function Ho(e,s,t){let r=O(),a=O();return t.forEach(e=>r=r.add(e)),s.getEntries(e,r).next(n=>{let i=gi;return t.forEach((e,t)=>{var r=n.get(e);t.isFoundDocument()!==r.isFoundDocument()&&(a=a.add(e)),t.isNoDocument()&&t.version.isEqual(g.min())?(s.removeEntry(e,t.readTime),i=i.insert(e,t)):!r.isValidDocument()||0<t.version.compareTo(r.version)||0===t.version.compareTo(r.version)&&r.hasPendingWrites?(s.addEntry(t),i=i.insert(e,t)):p(Bo,"Ignoring outdated watch update for ",e,". Current version:",r.version," Watch version:",t.version)}),{Vs:i,fs:a}})}function Wo(e,n){let i=e;return i.persistence.runTransaction("Allocate target","readwrite",t=>{let r;return i.Hr.getTargetData(t,n).next(e=>e?(r=e,w.resolve(r)):i.Hr.allocateTargetId(t).next(e=>(r=new Ks(n,e,"TargetPurposeListen",t.currentSequenceNumber),i.Hr.addTargetData(t,r).next(()=>r))))}).then(e=>{var t=i.Ts.get(e.targetId);return(null===t||0<e.snapshotVersion.compareTo(t.snapshotVersion))&&(i.Ts=i.Ts.insert(e.targetId,e),i.Is.set(n,e.targetId)),e})}async function Yo(e,t,r){let n=e,i=n.Ts.get(t),s=r?"readwrite":"readwrite-primary";try{r||await n.persistence.runTransaction("Release target",s,e=>n.persistence.referenceDelegate.removeTarget(e,i))}catch(e){if(!et(e))throw e;p(Bo,`Failed to update sequence numbers for target ${t}: `+e)}n.Ts=n.Ts.remove(t),n.Is.delete(i.target)}function Xo(e,a,o){let l=e,u=g.min(),h=O();return l.persistence.runTransaction("Execute query","readwrite",t=>{return e=l,r=t,n=ii(a),(void 0!==(s=(i=e).Is.get(n))?w.resolve(i.Ts.get(s)):i.Hr.getTargetData(r,n)).next(e=>{if(e)return u=e.lastLimboFreeSnapshotVersion,l.Hr.getMatchingKeysForTargetId(t,e.targetId).next(e=>{h=e})}).next(()=>l.Ps.getDocumentsMatchingQuery(t,a,o?u:g.min(),o?h:O())).next(e=>(el(l,ci(a),e),{documents:e,gs:h}));var e,r,n,i,s})}function Jo(e,t){let r=e,n=r.Hr,i=r.Ts.get(t);return i?Promise.resolve(i.target):r.persistence.runTransaction("Get target data","readonly",e=>n.lt(e,t).next(e=>e?e.target:null))}function Zo(e,t){let r=e,n=r.Es.get(t)||g.min();return r.persistence.runTransaction("Get new document changes","readonly",e=>r.ds.getAllFromCollectionGroup(e,t,qe(n,Me),Number.MAX_SAFE_INTEGER)).then(e=>(el(r,t,e),e))}function el(e,t,r){let n=e.Es.get(t)||g.min();r.forEach((e,t)=>{0<t.readTime.compareTo(n)&&(n=t.readTime)}),e.Es.set(t,n)}let tl="firestore_clients";function rl(e,t){return tl+`_${e}_`+t}let nl="firestore_mutations";function il(e,t,r){let n=nl+`_${e}_`+r;return t.isAuthenticated()&&(n+="_"+t.uid),n}let sl="firestore_targets";function al(e,t){return sl+`_${e}_`+t}let ol="SharedClientState";class ll{constructor(e,t,r,n){this.user=e,this.batchId=t,this.state=r,this.error=n}static Ss(e,t,r){var n=JSON.parse(r);let i,s="object"==typeof n&&-1!==["pending","acknowledged","rejected"].indexOf(n.state)&&(void 0===n.error||"object"==typeof n.error);return s&&n.error&&(s="string"==typeof n.error.message&&"string"==typeof n.error.code)&&(i=new I(n.error.code,n.error.message)),s?new ll(e,t,n.state,i):(d(ol,`Failed to parse mutation state for ID '${t}': `+r),null)}bs(){var e={state:this.state,updateTimeMs:Date.now()};return this.error&&(e.error={code:this.error.code,message:this.error.message}),JSON.stringify(e)}}class ul{constructor(e,t,r){this.targetId=e,this.state=t,this.error=r}static Ss(e,t){var r=JSON.parse(t);let n,i="object"==typeof r&&-1!==["not-current","current","rejected"].indexOf(r.state)&&(void 0===r.error||"object"==typeof r.error);return i&&r.error&&(i="string"==typeof r.error.message&&"string"==typeof r.error.code)&&(n=new I(r.error.code,r.error.message)),i?new ul(e,r.state,n):(d(ol,`Failed to parse target state for ID '${e}': `+t),null)}bs(){var e={state:this.state,updateTimeMs:Date.now()};return this.error&&(e.error={code:this.error.code,message:this.error.message}),JSON.stringify(e)}}class hl{constructor(e,t){this.clientId=e,this.activeTargetIds=t}static Ss(e,t){var r=JSON.parse(t);let n="object"==typeof r&&r.activeTargetIds instanceof Array,i=bi;for(let s=0;n&&s<r.activeTargetIds.length;++s)n=dt(r.activeTargetIds[s]),i=i.add(r.activeTargetIds[s]);return n?new hl(e,i):(d(ol,`Failed to parse client data for instance '${e}': `+t),null)}}class cl{constructor(e,t){this.clientId=e,this.onlineState=t}static Ss(e){var t=JSON.parse(e);return"object"==typeof t&&-1!==["Unknown","Online","Offline"].indexOf(t.onlineState)&&"string"==typeof t.clientId?new cl(t.clientId,t.onlineState):(d(ol,"Failed to parse online state: "+e),null)}}class dl{constructor(){this.activeTargetIds=bi}Ds(e){this.activeTargetIds=this.activeTargetIds.add(e)}vs(e){this.activeTargetIds=this.activeTargetIds.delete(e)}bs(){var e={activeTargetIds:this.activeTargetIds.toArray(),updateTimeMs:Date.now()};return JSON.stringify(e)}}class fl{constructor(e,t,r,n,i){this.window=e,this.Ti=t,this.persistenceKey=r,this.Cs=n,this.syncEngine=null,this.onlineStateHandler=null,this.sequenceNumberHandler=null,this.Fs=this.Ms.bind(this),this.xs=new A(E),this.started=!1,this.Os=[];var s=r.replace(/[.*+?^${}()|[\]\\]/g,"\\$&");this.storage=this.window.localStorage,this.currentUser=i,this.Ns=rl(this.persistenceKey,this.Cs),this.Bs="firestore_sequence_number_"+this.persistenceKey,this.xs=this.xs.insert(this.Cs,new dl),this.Ls=new RegExp(`^${tl}_${s}_([^_]*)$`),this.ks=new RegExp(`^${nl}_${s}_(\\d+)(?:_(.*))?$`),this.qs=new RegExp(`^${sl}_${s}_(\\d+)$`),this.Qs="firestore_online_state_"+this.persistenceKey,this.$s="firestore_bundle_loaded_v2_"+this.persistenceKey,this.window.addEventListener("storage",this.Fs)}static D(e){return!(!e||!e.localStorage)}async start(){let e=await this.syncEngine.zi();for(let r of e)if(r!==this.Cs){let e=this.getItem(rl(this.persistenceKey,r));var t;e&&(t=hl.Ss(r,e))&&(this.xs=this.xs.insert(t.clientId,t))}this.Us();let r=this.storage.getItem(this.Qs);if(r){let e=this.Ks(r);e&&this.Ws(e)}for(let e of this.Os)this.Ms(e);this.Os=[],this.window.addEventListener("pagehide",()=>this.shutdown()),this.started=!0}writeSequenceNumber(e){this.setItem(this.Bs,JSON.stringify(e))}getAllActiveQueryTargets(){return this.Gs(this.xs)}isActiveQueryTarget(r){let n=!1;return this.xs.forEach((e,t)=>{t.activeTargetIds.has(r)&&(n=!0)}),n}addPendingMutation(e){this.zs(e,"pending")}updateMutationState(e,t,r){this.zs(e,t,r),this.js(e)}addLocalQueryTarget(t,e=!0){let r="not-current";if(this.isActiveQueryTarget(t)){let e=this.storage.getItem(al(this.persistenceKey,t));var n;e&&(n=ul.Ss(t,e))&&(r=n.state)}return e&&this.Hs.Ds(t),this.Us(),r}removeLocalQueryTarget(e){this.Hs.vs(e),this.Us()}isLocalQueryTarget(e){return this.Hs.activeTargetIds.has(e)}clearQueryState(e){this.removeItem(al(this.persistenceKey,e))}updateQueryState(e,t,r){this.Js(e,t,r)}handleUserChange(e,t,r){t.forEach(e=>{this.js(e)}),this.currentUser=e,r.forEach(e=>{this.addPendingMutation(e)})}setOnlineState(e){this.Ys(e)}notifyBundleLoaded(e){this.Zs(e)}shutdown(){this.started&&(this.window.removeEventListener("storage",this.Fs),this.removeItem(this.Ns),this.started=!1)}getItem(e){var t=this.storage.getItem(e);return p(ol,"READ",e,t),t}setItem(e,t){p(ol,"SET",e,t),this.storage.setItem(e,t)}removeItem(e){p(ol,"REMOVE",e),this.storage.removeItem(e)}Ms(e){let t=e;t.storageArea===this.storage&&(p(ol,"EVENT",t.key,t.newValue),t.key===this.Ns?d("Received WebStorage notification for local change. Another client might have garbage-collected our state"):this.Ti.enqueueRetryable(async()=>{if(this.started){if(null!==t.key){if(this.Ls.test(t.key))return null==t.newValue?(e=this.Xs(t.key),this.eo(e,null)):(e=this.no(t.key,t.newValue))?this.eo(e.clientId,e):void 0;if(this.ks.test(t.key)){if(null!==t.newValue){var e=this.ro(t.key,t.newValue);if(e)return this.io(e)}}else if(this.qs.test(t.key)){if(null!==t.newValue){var e=this.so(t.key,t.newValue);if(e)return this.oo(e)}}else if(t.key===this.Qs){if(null!==t.newValue){var e=this.Ks(t.newValue);if(e)return this.Ws(e)}}else t.key===this.Bs?(e=(e=>{let t=lt.ae;if(null!=e)try{var r=JSON.parse(e);y("number"==typeof r),t=r}catch(e){d(ol,"Failed to read sequence number from WebStorage",e)}return t})(t.newValue))!==lt.ae&&this.sequenceNumberHandler(e):t.key===this.$s&&(e=this._o(t.newValue),await Promise.all(e.map(e=>this.syncEngine.ao(e))))}}else this.Os.push(t)}))}get Hs(){return this.xs.get(this.Cs)}Us(){this.setItem(this.Ns,this.Hs.bs())}zs(e,t,r){var n=new ll(this.currentUser,e,t,r),i=il(this.persistenceKey,this.currentUser,e);this.setItem(i,n.bs())}js(e){var t=il(this.persistenceKey,this.currentUser,e);this.removeItem(t)}Ys(e){var t={clientId:this.Cs,onlineState:e};this.storage.setItem(this.Qs,JSON.stringify(t))}Js(e,t,r){var n=al(this.persistenceKey,e),i=new ul(e,t,r);this.setItem(n,i.bs())}Zs(e){var t=JSON.stringify(Array.from(e));this.setItem(this.$s,t)}Xs(e){var t=this.Ls.exec(e);return t?t[1]:null}no(e,t){var r=this.Xs(e);return hl.Ss(r,t)}ro(e,t){var r=this.ks.exec(e),n=Number(r[1]),r=void 0!==r[2]?r[2]:null;return ll.Ss(new u(r),n,t)}so(e,t){var r=this.qs.exec(e),r=Number(r[1]);return ul.Ss(r,t)}Ks(e){return cl.Ss(e)}_o(e){return JSON.parse(e)}async io(e){if(e.user.uid===this.currentUser.uid)return this.syncEngine.uo(e.batchId,e.state,e.error);p(ol,"Ignoring mutation for non-active user "+e.user.uid)}oo(e){return this.syncEngine.co(e.targetId,e.state,e.error)}eo(e,t){let r=t?this.xs.insert(e,t):this.xs.remove(e),n=this.Gs(this.xs),i=this.Gs(r),s=[],a=[];return i.forEach(e=>{n.has(e)||s.push(e)}),n.forEach(e=>{i.has(e)||a.push(e)}),this.syncEngine.lo(s,a).then(()=>{this.xs=r})}Ws(e){this.xs.get(e.clientId)&&this.onlineStateHandler(e.onlineState)}Gs(e){let r=bi;return e.forEach((e,t)=>{r=r.unionWith(t.activeTargetIds)}),r}}class gl{constructor(){this.ho=new dl,this.Po={},this.onlineStateHandler=null,this.sequenceNumberHandler=null}addPendingMutation(e){}updateMutationState(e,t,r){}addLocalQueryTarget(e,t=!0){return t&&this.ho.Ds(e),this.Po[e]||"not-current"}updateQueryState(e,t,r){this.Po[e]=t}removeLocalQueryTarget(e){this.ho.vs(e)}isLocalQueryTarget(e){return this.ho.activeTargetIds.has(e)}clearQueryState(e){delete this.Po[e]}getAllActiveQueryTargets(){return this.ho.activeTargetIds}isActiveQueryTarget(e){return this.ho.activeTargetIds.has(e)}start(){return this.ho=new dl,Promise.resolve()}handleUserChange(e,t,r){}setOnlineState(e){}shutdown(){}writeSequenceNumber(e){}notifyBundleLoaded(e){}}class ml{To(e){}shutdown(){}}let pl="ConnectivityMonitor";class yl{constructor(){this.Io=()=>this.Eo(),this.Ao=()=>this.Ro(),this.Vo=[],this.mo()}To(e){this.Vo.push(e)}shutdown(){window.removeEventListener("online",this.Io),window.removeEventListener("offline",this.Ao)}mo(){window.addEventListener("online",this.Io),window.addEventListener("offline",this.Ao)}Eo(){p(pl,"Network connectivity changed: AVAILABLE");for(var e of this.Vo)e(0)}Ro(){p(pl,"Network connectivity changed: UNAVAILABLE");for(var e of this.Vo)e(1)}static D(){return"undefined"!=typeof window&&void 0!==window.addEventListener&&void 0!==window.removeEventListener}}let vl=null;function wl(){return null===vl?vl=268435456+Math.round(2147483648*Math.random()):vl++,"0x"+vl.toString(16)}let _l="RestConnection",bl={BatchGetDocuments:"batchGet",Commit:"commit",RunQuery:"runQuery",RunAggregationQuery:"runAggregationQuery"};class Il{constructor(e){this.Fo=e.Fo,this.Mo=e.Mo}xo(e){this.Oo=e}No(e){this.Bo=e}Lo(e){this.ko=e}onMessage(e){this.qo=e}close(){this.Mo()}send(e){this.Fo(e)}Qo(){this.Oo()}$o(){this.Bo()}Uo(e){this.ko(e)}Ko(e){this.qo(e)}}let Tl="WebChannelConnection";class El extends class{get fo(){return!1}constructor(e){this.databaseInfo=e,this.databaseId=e.databaseId;var t=e.ssl?"https":"http",r=encodeURIComponent(this.databaseId.projectId),n=encodeURIComponent(this.databaseId.database);this.po=t+"://"+e.host,this.yo=`projects/${r}/databases/`+n,this.wo=this.databaseId.database===Yr?"project_id="+r:`project_id=${r}&database_id=`+n}So(t,e,r,n,i){let s=wl(),a=this.bo(t,e.toUriEncodedString());p(_l,`Sending RPC '${t}' ${s}:`,a,r);var o={"google-cloud-resource-prefix":this.yo,"x-goog-request-params":this.wo};return this.Do(o,n,i),this.vo(t,a,o,r).then(e=>(p(_l,`Received RPC '${t}' ${s}: `,e),e),e=>{throw me(_l,`RPC '${t}' ${s} failed with error: `,e,"url: ",a,"request:",r),e})}Co(e,t,r,n,i,s){return this.So(e,t,r,n,i)}Do(r,e,t){r["X-Goog-Api-Client"]="gl-js/ fire/"+de,r["Content-Type"]="text/plain",this.databaseInfo.appId&&(r["X-Firebase-GMPID"]=this.databaseInfo.appId),e&&e.headers.forEach((e,t)=>r[t]=e),t&&t.headers.forEach((e,t)=>r[t]=e)}bo(e,t){var r=bl[e];return this.po+`/v1/${t}:`+r}terminate(){}}{constructor(e){super(e),this.forceLongPolling=e.forceLongPolling,this.autoDetectLongPolling=e.autoDetectLongPolling,this.useFetchStreams=e.useFetchStreams,this.longPollingOptions=e.longPollingOptions}vo(l,t,r,n){let u=wl();return new Promise((s,a)=>{let o=new pr;o.setWithCredentials(!0),o.listenOnce(vr.COMPLETE,()=>{try{switch(o.getLastErrorCode()){case wr.NO_ERROR:var e=o.getResponseJson();p(Tl,`XHR for RPC '${l}' ${u} received:`,JSON.stringify(e)),s(e);break;case wr.TIMEOUT:p(Tl,`RPC '${l}' ${u} timed out`),a(new I(b.DEADLINE_EXCEEDED,"Request time out"));break;case wr.HTTP_ERROR:var t=o.getStatus();if(p(Tl,`RPC '${l}' ${u} failed with status:`,t,"response text:",o.getResponseText()),0<t){let e=o.getResponseJson();var r=null==(e=Array.isArray(e)?e[0]:e)?void 0:e.error;if(r&&r.status&&r.message){n=r.status,i=n.toLowerCase().replace(/_/g,"-");let e=0<=Object.values(b).indexOf(i)?i:b.UNKNOWN;a(new I(e,r.message))}else a(new I(b.UNKNOWN,"Server responded with status "+o.getStatus()))}else a(new I(b.UNAVAILABLE,"Connection failed."));break;default:T()}}finally{p(Tl,`RPC '${l}' ${u} completed.`)}var n,i});var e=JSON.stringify(n);p(Tl,`RPC '${l}' ${u} sending request:`,n),o.send(t,"POST",e,r,15)})}Wo(i,e,t){let s=wl(),r=[this.po,"/","google.firestore.v1.Firestore","/",i,"/channel"],n=Tr(),a=Ir(),o={httpSessionIdParam:"gsessionid",initMessageHeaders:{},messageUrlParams:{database:`projects/${this.databaseId.projectId}/databases/`+this.databaseId.database},sendRawJson:!0,supportsCrossDomainXhr:!0,internalChannelParams:{forwardChannelRequestTimeoutMs:6e5},forceLongPolling:this.forceLongPolling,detectBufferingProxy:this.autoDetectLongPolling},l=this.longPollingOptions.timeoutSeconds;void 0!==l&&(o.longPollingTimeout=Math.round(1e3*l)),this.useFetchStreams&&(o.useFetchStreams=!0),this.Do(o.initMessageHeaders,e,t),o.encodeInitMessageHeaders=!0;var u=r.join("");p(Tl,`Creating RPC '${i}' stream ${s}: `+u,o);let h=n.createWebChannel(u,o),c=!1,d=!1,f=new Il({Fo:e=>{d?p(Tl,`Not sending because RPC '${i}' stream ${s} is closed:`,e):(c||(p(Tl,`Opening RPC '${i}' stream ${s} transport.`),h.open(),c=!0),p(Tl,`RPC '${i}' stream ${s} sending:`,e),h.send(e))},Mo:()=>h.close()}),g=(e,t,r)=>{e.listen(t,e=>{try{r(e)}catch(e){setTimeout(()=>{throw e},0)}})};return g(h,yr.EventType.OPEN,()=>{d||(p(Tl,`RPC '${i}' stream ${s} transport opened.`),f.Qo())}),g(h,yr.EventType.CLOSE,()=>{d||(d=!0,p(Tl,`RPC '${i}' stream ${s} transport closed`),f.Uo())}),g(h,yr.EventType.ERROR,e=>{d||(d=!0,me(Tl,`RPC '${i}' stream ${s} transport errored:`,e),f.Uo(new I(b.UNAVAILABLE,"The operation could not be completed")))}),g(h,yr.EventType.MESSAGE,e=>{if(!d){var t=e.data[0],n=(y(!!t),t),n=(null==n?void 0:n.error)||(null==(n=n[0])?void 0:n.error);if(n){p(Tl,`RPC '${i}' stream ${s} received error:`,n);let e=n.status,t=(e=>{var t=m[e];if(void 0!==t)return es(t)})(e),r=n.message;void 0===t&&(t=b.INTERNAL,r="Unknown error status: "+e+" with message "+n.message),d=!0,f.Uo(new I(t,r)),h.close()}else p(Tl,`RPC '${i}' stream ${s} received:`,t),f.Ko(t)}}),g(a,br.STAT_EVENT,e=>{e.stat===_r.PROXY?p(Tl,`RPC '${i}' stream ${s} detected buffering proxy`):e.stat===_r.NOPROXY&&p(Tl,`RPC '${i}' stream ${s} detected no buffering proxy`)}),setTimeout(()=>{f.$o()},0),f}}function Sl(){return"undefined"!=typeof window?window:null}function xl(){return"undefined"!=typeof document?document:null}function Al(e){return new vs(e,!0)}class Cl{constructor(e,t,r=1e3,n=1.5,i=6e4){this.Ti=e,this.timerId=t,this.Go=r,this.zo=n,this.jo=i,this.Ho=0,this.Jo=null,this.Yo=Date.now(),this.reset()}reset(){this.Ho=0}Zo(){this.Ho=this.jo}Xo(e){this.cancel();var t=Math.floor(this.Ho+this.e_()),r=Math.max(0,Date.now()-this.Yo),n=Math.max(0,t-r);0<n&&p("ExponentialBackoff",`Backing off for ${n} ms (base delay: ${this.Ho} ms, delay with jitter: ${t} ms, last attempt: ${r} ms ago)`),this.Jo=this.Ti.enqueueAfterDelay(this.timerId,n,()=>(this.Yo=Date.now(),e())),this.Ho*=this.zo,this.Ho<this.Go&&(this.Ho=this.Go),this.Ho>this.jo&&(this.Ho=this.jo)}t_(){null!==this.Jo&&(this.Jo.skipDelay(),this.Jo=null)}cancel(){null!==this.Jo&&(this.Jo.cancel(),this.Jo=null)}e_(){return(Math.random()-.5)*this.Ho}}let Dl="PersistentStream";class Nl{constructor(e,t,r,n,i,s,a,o){this.Ti=e,this.n_=r,this.r_=n,this.connection=i,this.authCredentialsProvider=s,this.appCheckCredentialsProvider=a,this.listener=o,this.state=0,this.i_=0,this.s_=null,this.o_=null,this.stream=null,this.__=0,this.a_=new Cl(e,t)}u_(){return 1===this.state||5===this.state||this.c_()}c_(){return 2===this.state||3===this.state}start(){this.__=0,4!==this.state?this.auth():this.l_()}async stop(){this.u_()&&await this.close(0)}h_(){this.state=0,this.a_.reset()}P_(){this.c_()&&null===this.s_&&(this.s_=this.Ti.enqueueAfterDelay(this.n_,6e4,()=>this.T_()))}I_(e){this.E_(),this.stream.send(e)}async T_(){if(this.c_())return this.close(0)}E_(){this.s_&&(this.s_.cancel(),this.s_=null)}d_(){this.o_&&(this.o_.cancel(),this.o_=null)}async close(e,t){this.E_(),this.d_(),this.a_.cancel(),this.i_++,4!==e?this.a_.reset():t&&t.code===b.RESOURCE_EXHAUSTED?(d(t.toString()),d("Using maximum backoff delay to prevent overloading the backend."),this.a_.Zo()):t&&t.code===b.UNAUTHENTICATED&&3!==this.state&&(this.authCredentialsProvider.invalidateToken(),this.appCheckCredentialsProvider.invalidateToken()),null!==this.stream&&(this.A_(),this.stream.close(),this.stream=null),this.state=e,await this.listener.Lo(t)}A_(){}auth(){this.state=1;let e=this.R_(this.i_),r=this.i_;Promise.all([this.authCredentialsProvider.getToken(),this.appCheckCredentialsProvider.getToken()]).then(([e,t])=>{this.i_===r&&this.V_(e,t)},t=>{e(()=>{var e=new I(b.UNKNOWN,"Fetching auth token failed: "+t.message);return this.m_(e)})})}V_(e,t){let r=this.R_(this.i_);this.stream=this.f_(e,t),this.stream.xo(()=>{r(()=>this.listener.xo())}),this.stream.No(()=>{r(()=>(this.state=2,this.o_=this.Ti.enqueueAfterDelay(this.r_,1e4,()=>(this.c_()&&(this.state=3),Promise.resolve())),this.listener.No()))}),this.stream.Lo(e=>{r(()=>this.m_(e))}),this.stream.onMessage(e=>{r(()=>1==++this.__?this.g_(e):this.onNext(e))})}l_(){this.state=5,this.a_.Xo(async()=>{this.state=0,this.start()})}m_(e){return p(Dl,"close with error: "+e),this.stream=null,this.close(4,e)}R_(t){return e=>{this.Ti.enqueueAndForget(()=>this.i_===t?e():(p(Dl,"stream callback skipped by getCloseGuardedDispatcher."),Promise.resolve()))}}}class kl extends Nl{constructor(e,t,r,n,i,s){super(e,"listen_stream_connection_backoff","listen_stream_idle","health_check_timeout",t,r,n,s),this.serializer=i}f_(e,t){return this.connection.Wo("Listen",e,t)}g_(e){return this.onNext(e)}onNext(e){this.a_.reset();var t=((e,t)=>{let r;if("targetChange"in t){t.targetChange;var n="NO_CHANGE"===(l=t.targetChange.targetChangeType||"NO_CHANGE")?0:"ADD"===l?1:"REMOVE"===l?2:"CURRENT"===l?3:"RESET"===l?4:T(),i=t.targetChange.targetIds||[],s=(l=t.targetChange.resumeToken,e.useProto3Json?(y(void 0===l||"string"==typeof l),D.fromBase64String(l||"")):(y(void 0===l||l instanceof Buffer||l instanceof Uint8Array),D.fromUint8Array(l||new Uint8Array))),a=t.targetChange.cause,a=a&&(a=void 0===(l=a).code?b.UNKNOWN:es(l.code),new I(a,l.message||""));r=new hs(n,i,s,a||null)}else if("documentChange"in t){t.documentChange;var n=t.documentChange,i=(n.document,n.document.name,n.document.updateTime,xs(e,n.document.name)),s=V(n.document.updateTime),a=n.document.createTime?V(n.document.createTime):g.min(),o=new En({mapValue:{fields:n.document.fields}}),i=k.newFoundDocument(i,s,a,o),s=n.targetIds||[],o=n.removedTargetIds||[];r=new ls(s,o,i.key,i)}else if("documentDelete"in t){t.documentDelete;n=t.documentDelete,s=(n.document,xs(e,n.document)),o=n.readTime?V(n.readTime):g.min(),i=k.newNoDocument(s,o),s=n.removedTargetIds||[];r=new ls([],s,i.key,i)}else if("documentRemove"in t){t.documentRemove;o=t.documentRemove,n=(o.document,xs(e,o.document)),s=o.removedTargetIds||[];r=new ls([],s,n,null)}else{if(!("filter"in t))return T();{t.filter;let e=t.filter;e.targetId;var{count:i=0,unchangedNames:o}=e,s=new Ji(i,o),n=e.targetId;r=new us(n,s)}}var l;return r})(this.serializer,e),r="targetChange"in(e=e)&&(!(r=e.targetChange).targetIds||!r.targetIds.length)&&r.readTime?V(r.readTime):g.min();return this.listener.p_(t,r)}y_(e){var t={},r=(t.database=Ds(this.serializer),t.addTarget=((t,r)=>{var n;let e=r.target;if((n=Hn(e)?{documents:Vs(t,e)}:{query:Fs(t,e).ht}).targetId=r.targetId,0<r.resumeToken.approximateByteSize()){n.resumeToken=bs(t,r.resumeToken);let e=ws(t,r.expectedCount);null!==e&&(n.expectedCount=e)}else if(0<r.snapshotVersion.compareTo(g.min())){n.readTime=_s(t,r.snapshotVersion.toTimestamp());let e=ws(t,r.expectedCount);null!==e&&(n.expectedCount=e)}return n})(this.serializer,e),Us(this.serializer,e));r&&(t.labels=r),this.I_(t)}w_(e){var t={};t.database=Ds(this.serializer),t.removeTarget=e,this.I_(t)}}class Rl extends Nl{constructor(e,t,r,n,i,s){super(e,"write_stream_connection_backoff","write_stream_idle","health_check_timeout",t,r,n,s),this.serializer=i}get S_(){return 0<this.__}start(){this.lastStreamToken=void 0,super.start()}A_(){this.S_&&this.b_([])}f_(e,t){return this.connection.Wo("Write",e,t)}g_(e){return y(!!e.streamToken),this.lastStreamToken=e.streamToken,y(!e.writeResults||0===e.writeResults.length),this.listener.D_()}onNext(e){y(!!e.streamToken),this.lastStreamToken=e.streamToken,this.a_.reset();var t=Ms(e.writeResults,e.commitTime),r=V(e.commitTime);return this.listener.v_(r,t)}C_(){var e={};e.database=Ds(this.serializer),this.I_(e)}b_(e){var t={streamToken:this.lastStreamToken,writes:e.map(e=>Ls(this.serializer,e))};this.I_(t)}}class Ll extends class{}{constructor(e,t,r,n){super(),this.authCredentials=e,this.appCheckCredentials=t,this.connection=r,this.serializer=n,this.F_=!1}M_(){if(this.F_)throw new I(b.FAILED_PRECONDITION,"The client has already been terminated.")}So(r,n,i,s){return this.M_(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then(([e,t])=>this.connection.So(r,Ts(n,i),s,e,t)).catch(e=>{throw"FirebaseError"===e.name?(e.code===b.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),e):new I(b.UNKNOWN,e.toString())})}Co(r,n,i,s,a){return this.M_(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then(([e,t])=>this.connection.Co(r,Ts(n,i),s,e,t,a)).catch(e=>{throw"FirebaseError"===e.name?(e.code===b.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),e):new I(b.UNKNOWN,e.toString())})}terminate(){this.F_=!0,this.connection.terminate()}}class Ol{constructor(e,t){this.asyncQueue=e,this.onlineStateHandler=t,this.state="Unknown",this.x_=0,this.O_=null,this.N_=!0}B_(){0===this.x_&&(this.L_("Unknown"),this.O_=this.asyncQueue.enqueueAfterDelay("online_state_timeout",1e4,()=>(this.O_=null,this.k_("Backend didn't respond within 10 seconds."),this.L_("Offline"),Promise.resolve())))}q_(e){"Online"===this.state?this.L_("Unknown"):(this.x_++,1<=this.x_&&(this.Q_(),this.k_("Connection failed 1 times. Most recent error: "+e.toString()),this.L_("Offline")))}set(e){this.Q_(),this.x_=0,"Online"===e&&(this.N_=!1),this.L_(e)}L_(e){e!==this.state&&(this.state=e,this.onlineStateHandler(e))}k_(e){var t=`Could not reach Cloud Firestore backend. ${e}
This typically indicates that your device does not have a healthy Internet connection at the moment. The client will operate in offline mode until it is able to successfully connect to the backend.`;this.N_?(d(t),this.N_=!1):p("OnlineStateTracker",t)}Q_(){null!==this.O_&&(this.O_.cancel(),this.O_=null)}}let Ml="RemoteStore";class Vl{constructor(e,t,r,n,i){this.localStore=e,this.datastore=t,this.asyncQueue=r,this.remoteSyncer={},this.U_=[],this.K_=new Map,this.W_=new Set,this.G_=[],this.z_=i,this.z_.To(e=>{r.enqueueAndForget(async()=>{var e;Kl(this)&&(p(Ml,"Restarting streams for network reachability change."),(e=this).W_.add(4),await Pl(e),e.j_.set("Unknown"),e.W_.delete(4),await Fl(e))})}),this.j_=new Ol(r,n)}}async function Fl(e){if(Kl(e))for(var t of e.G_)await t(!0)}async function Pl(e){for(var t of e.G_)await t(!1)}function Ul(e,t){var r=e;r.K_.has(t.targetId)||(r.K_.set(t.targetId,t),Gl(r)?zl(r):eu(r).c_()&&ql(r,t))}function Bl(e,t){var r=e,n=eu(r);r.K_.delete(t),n.c_()&&jl(r,t),0===r.K_.size&&(n.c_()?n.P_():Kl(r)&&r.j_.set("Unknown"))}function ql(e,t){var r;e.H_.Ne(t.targetId),(0<t.resumeToken.approximateByteSize()||0<t.snapshotVersion.compareTo(g.min()))&&(r=e.remoteSyncer.getRemoteKeysForTarget(t.targetId).size,t=t.withExpectedCount(r)),eu(e).y_(t)}function jl(e,t){e.H_.Ne(t),eu(e).w_(t)}function zl(t){t.H_=new ds({getRemoteKeysForTarget:e=>t.remoteSyncer.getRemoteKeysForTarget(e),lt:e=>t.K_.get(e)||null,it:()=>t.datastore.serializer.databaseId}),eu(t).start(),t.j_.B_()}function Gl(e){return Kl(e)&&!eu(e).u_()&&0<e.K_.size}function Kl(e){return 0===e.W_.size}function Ql(e){e.H_=void 0}async function $l(e,t,r){if(!et(t))throw t;e.W_.add(1),await Pl(e),e.j_.set("Offline"),r=r||(()=>Qo(e.localStore)),e.asyncQueue.enqueueRetryable(async()=>{p(Ml,"Retrying IndexedDB access"),await r(),e.W_.delete(1),await Fl(e)})}function Hl(t,r){return r().catch(e=>$l(t,e,r))}async function Wl(e){var t,r,n,i,s=e,a=tu(s);let o=0<s.U_.length?s.U_[s.U_.length-1].batchId:ut;for(;Kl(i=s)&&i.U_.length<10;)try{let e=await((e,t)=>{let r=e;return r.persistence.runTransaction("Get next mutation batch","readonly",e=>(void 0===t&&(t=ut),r.mutationQueue.getNextMutationBatchAfterBatchId(e,t)))})(s.localStore,o);if(null===e){0===s.U_.length&&a.P_();break}o=e.batchId,t=s,r=e,n=void 0,t.U_.push(r),(n=tu(t)).c_()&&n.S_&&n.b_(r.mutations)}catch(e){await $l(s,e)}Yl(s)&&Xl(s)}function Yl(e){return Kl(e)&&!tu(e).u_()&&0<e.U_.length}function Xl(e){tu(e).start()}async function Jl(e,t){var r=e,n=(r.asyncQueue.verifyOperationInProgress(),p(Ml,"RemoteStore received new credentials"),Kl(r));r.W_.add(3),await Pl(r),n&&r.j_.set("Unknown"),await r.remoteSyncer.handleCredentialChange(t),r.W_.delete(3),await Fl(r)}async function Zl(e,t){var r=e;t?(r.W_.delete(2),await Fl(r)):(r.W_.add(2),await Pl(r),r.j_.set("Unknown"))}function eu(t){return t.J_||(t.J_=(e=t.datastore,r=t.asyncQueue,n={xo:(async function(e){e.j_.set("Online")}).bind(null,t),No:(async function(r){r.K_.forEach((e,t)=>{ql(r,e)})}).bind(null,t),Lo:(async function(e,t){Ql(e),Gl(e)?(e.j_.q_(t),zl(e)):e.j_.set("Unknown")}).bind(null,t),p_:(async function(t,e,r){if(t.j_.set("Online"),e instanceof hs&&2===e.state&&e.cause)try{var n,i=t,s=e,a=s.cause;for(n of s.targetIds)i.K_.has(n)&&(await i.remoteSyncer.rejectListen(n,a),i.K_.delete(n),i.H_.removeTarget(n))}catch(r){p(Ml,"Failed to remove targets %s: %s ",e.targetIds.join(","),r),await $l(t,r)}else if(e instanceof ls?t.H_.We(e):e instanceof us?t.H_.Ze(e):t.H_.je(e),!r.isEqual(g.min()))try{let e=await Qo(t.localStore);0<=r.compareTo(e)&&(l=r,(u=(o=t).H_.ot(l)).targetChanges.forEach((e,t)=>{var r;0<e.resumeToken.approximateByteSize()&&(r=o.K_.get(t))&&o.K_.set(t,r.withResumeToken(e.resumeToken,l))}),u.targetMismatches.forEach((e,t)=>{var r=o.K_.get(e);r&&(o.K_.set(e,r.withResumeToken(D.EMPTY_BYTE_STRING,r.snapshotVersion)),jl(o,e),r=new Ks(r.target,e,t,r.sequenceNumber),ql(o,r))}),await o.remoteSyncer.applyRemoteEvent(u))}catch(e){p(Ml,"Failed to raise snapshot:",e),await $l(t,e)}var o,l,u}).bind(null,t)},(i=e).M_(),new kl(r,i.connection,i.authCredentials,i.appCheckCredentials,i.serializer,n)),t.G_.push(async e=>{e?(t.J_.h_(),Gl(t)?zl(t):t.j_.set("Unknown")):(await t.J_.stop(),Ql(t))})),t.J_;var e,r,n,i}function tu(t){return t.Y_||(t.Y_=(e=t.datastore,r=t.asyncQueue,n={xo:()=>Promise.resolve(),No:(async function(e){tu(e).C_()}).bind(null,t),Lo:(async function(e,t){if(t&&tu(e).S_){var r=e,n=t;if(Zi(t=n.code)&&t!==b.ABORTED){let e=r.U_.shift();tu(r).h_(),await Hl(r,()=>r.remoteSyncer.rejectFailedWrite(e.batchId,n)),await Wl(r)}await 0}Yl(e)&&Xl(e)}).bind(null,t),D_:(async function(e){var t,r=tu(e);for(t of e.U_)r.b_(t.mutations)}).bind(null,t),v_:(async function(e,t,r){let n=e.U_.shift(),i=Yi.from(n,t,r);await Hl(e,()=>e.remoteSyncer.applySuccessfulWrite(i)),await Wl(e)}).bind(null,t)},(i=e).M_(),new Rl(r,i.connection,i.authCredentials,i.appCheckCredentials,i.serializer,n)),t.G_.push(async e=>{e?(t.Y_.h_(),await Wl(t)):(await t.Y_.stop(),0<t.U_.length&&(p(Ml,`Stopping write stream with ${t.U_.length} pending writes`),t.U_=[]))})),t.Y_;var e,r,n,i}class ru{constructor(e,t,r,n,i){this.asyncQueue=e,this.timerId=t,this.targetTimeMs=r,this.op=n,this.removalCallback=i,this.deferred=new f,this.then=this.deferred.promise.then.bind(this.deferred.promise),this.deferred.promise.catch(e=>{})}get promise(){return this.deferred.promise}static createAndSchedule(e,t,r,n,i){var s=Date.now()+r,s=new ru(e,t,s,n,i);return s.start(r),s}start(e){this.timerHandle=setTimeout(()=>this.handleDelayElapsed(),e)}skipDelay(){return this.handleDelayElapsed()}cancel(e){null!==this.timerHandle&&(this.clearTimeout(),this.deferred.reject(new I(b.CANCELLED,"Operation cancelled"+(e?": "+e:""))))}handleDelayElapsed(){this.asyncQueue.enqueueAndForget(()=>null!==this.timerHandle?(this.clearTimeout(),this.op().then(e=>this.deferred.resolve(e))):Promise.resolve())}clearTimeout(){null!==this.timerHandle&&(this.removalCallback(this),clearTimeout(this.timerHandle),this.timerHandle=null)}}function nu(e,t){if(d("AsyncQueue",t+": "+e),et(e))return new I(b.UNAVAILABLE,t+": "+e);throw e}class iu{static emptySet(e){return new iu(e.comparator)}constructor(r){this.comparator=r?(e,t)=>r(e,t)||x.comparator(e.key,t.key):(e,t)=>x.comparator(e.key,t.key),this.keyedMap=pi(),this.sortedSet=new A(this.comparator)}has(e){return null!=this.keyedMap.get(e)}get(e){return this.keyedMap.get(e)}first(){return this.sortedSet.minKey()}last(){return this.sortedSet.maxKey()}isEmpty(){return this.sortedSet.isEmpty()}indexOf(e){var t=this.keyedMap.get(e);return t?this.sortedSet.indexOf(t):-1}get size(){return this.sortedSet.size}forEach(r){this.sortedSet.inorderTraversal((e,t)=>(r(e),!1))}add(e){var t=this.delete(e.key);return t.copy(t.keyedMap.insert(e.key,e),t.sortedSet.insert(e,null))}delete(e){var t=this.get(e);return t?this.copy(this.keyedMap.remove(e),this.sortedSet.remove(t)):this}isEqual(e){if(!(e instanceof iu))return!1;if(this.size!==e.size)return!1;for(var r=this.sortedSet.getIterator(),n=e.sortedSet.getIterator();r.hasNext();){let e=r.getNext().key,t=n.getNext().key;if(!e.isEqual(t))return!1}return!0}toString(){let t=[];return this.forEach(e=>{t.push(e.toString())}),0===t.length?"DocumentSet ()":"DocumentSet (\n "+t.join(" \n")+"\n)"}copy(e,t){var r=new iu;return r.comparator=this.comparator,r.keyedMap=e,r.sortedSet=t,r}}class su{constructor(){this.Z_=new A(x.comparator)}track(e){var t=e.doc.key,r=this.Z_.get(t);!r||0!==e.type&&3===r.type?this.Z_=this.Z_.insert(t,e):3===e.type&&1!==r.type?this.Z_=this.Z_.insert(t,{type:r.type,doc:e.doc}):2===e.type&&2===r.type?this.Z_=this.Z_.insert(t,{type:2,doc:e.doc}):2===e.type&&0===r.type?this.Z_=this.Z_.insert(t,{type:0,doc:e.doc}):1===e.type&&0===r.type?this.Z_=this.Z_.remove(t):1===e.type&&2===r.type?this.Z_=this.Z_.insert(t,{type:1,doc:r.doc}):0===e.type&&1===r.type?this.Z_=this.Z_.insert(t,{type:2,doc:e.doc}):T()}X_(){let r=[];return this.Z_.inorderTraversal((e,t)=>{r.push(t)}),r}}class au{constructor(e,t,r,n,i,s,a,o,l){this.query=e,this.docs=t,this.oldDocs=r,this.docChanges=n,this.mutatedKeys=i,this.fromCache=s,this.syncStateChanged=a,this.excludesMetadataChanges=o,this.hasCachedResults=l}static fromInitialDocuments(e,t,r,n,i){let s=[];return t.forEach(e=>{s.push({type:0,doc:e})}),new au(e,t,iu.emptySet(t),s,r,n,!0,!1,i)}get hasPendingWrites(){return!this.mutatedKeys.isEmpty()}isEqual(e){if(!(this.fromCache===e.fromCache&&this.hasCachedResults===e.hasCachedResults&&this.syncStateChanged===e.syncStateChanged&&this.mutatedKeys.isEqual(e.mutatedKeys)&&oi(this.query,e.query)&&this.docs.isEqual(e.docs)&&this.oldDocs.isEqual(e.oldDocs)))return!1;var t=this.docChanges,r=e.docChanges;if(t.length!==r.length)return!1;for(let n=0;n<t.length;n++)if(t[n].type!==r[n].type||!t[n].doc.isEqual(r[n].doc))return!1;return!0}}class ou{constructor(){this.ea=void 0,this.ta=[]}na(){return this.ta.some(e=>e.ra())}}class lu{constructor(){this.queries=uu(),this.onlineState="Unknown",this.ia=new Set}terminate(){var e,r,t,n;e=this,r=new I(b.ABORTED,"Firestore shutting down"),n=(t=e).queries,t.queries=uu(),n.forEach((e,t)=>{for(let e of t.ta)e.onError(r)})}}function uu(){return new fi(e=>li(e),oi)}async function hu(t,r){let e=t,n=3;var i=r.query;let s=e.queries.get(i);s?!s.na()&&r.ra()&&(n=2):(s=new ou,n=r.ra()?0:1);try{switch(n){case 0:s.ea=await e.onListen(i,!0);break;case 1:s.ea=await e.onListen(i,!1);break;case 2:await e.onFirstRemoteStoreListen(i)}}catch(t){let e=nu(t,`Initialization of query '${ui(r.query)}' failed`);return void r.onError(e)}e.queries.set(i,s),s.ta.push(r),r.sa(e.onlineState),s.ea&&r.oa(s.ea)&&du(e)}async function cu(e,t){var r=e,n=t.query;let i=3;var s=r.queries.get(n);if(s){let e=s.ta.indexOf(t);0<=e&&(s.ta.splice(e,1),0===s.ta.length?i=t.ra()?0:1:!s.na()&&t.ra()&&(i=2))}switch(i){case 0:return r.queries.delete(n),r.onUnlisten(n,!0);case 1:return r.queries.delete(n),r.onUnlisten(n,!1);case 2:return r.onLastRemoteStoreUnlisten(n);default:return}}function du(e){e.ia.forEach(e=>{e.next()})}(ue=ue||{})._a="default",ue.Cache="cache";class fu{constructor(e,t,r){this.query=e,this.aa=t,this.ua=!1,this.ca=null,this.onlineState="Unknown",this.options=r||{}}oa(t){if(!this.options.includeMetadataChanges){let e=[];for(var r of t.docChanges)3!==r.type&&e.push(r);t=new au(t.query,t.docs,t.oldDocs,e,t.mutatedKeys,t.fromCache,t.syncStateChanged,!0,t.hasCachedResults)}let e=!1;return this.ua?this.la(t)&&(this.aa.next(t),e=!0):this.ha(t,this.onlineState)&&(this.Pa(t),e=!0),this.ca=t,e}onError(e){this.aa.error(e)}sa(e){this.onlineState=e;let t=!1;return this.ca&&!this.ua&&this.ha(this.ca,e)&&(this.Pa(this.ca),t=!0),t}ha(e,t){return!e.fromCache||!this.ra()||(!this.options.Ta||!("Offline"!==t))&&(!e.docs.isEmpty()||e.hasCachedResults||"Offline"===t)}la(e){var t;return 0<e.docChanges.length||(t=this.ca&&this.ca.hasPendingWrites!==e.hasPendingWrites,!(!e.syncStateChanged&&!t)&&!0===this.options.includeMetadataChanges)}Pa(e){e=au.fromInitialDocuments(e.query,e.docs,e.mutatedKeys,e.fromCache,e.hasCachedResults),this.ua=!0,this.aa.next(e)}ra(){return this.options.source!==ue.Cache}}class gu{constructor(e,t){this.Ia=e,this.byteLength=t}Ea(){return"metadata"in this.Ia}}class mu{constructor(e){this.serializer=e}ps(e){return xs(this.serializer,e)}ys(e){return e.metadata.exists?Rs(this.serializer,e.document,!1):k.newNoDocument(this.ps(e.metadata.name),this.ws(e.metadata.readTime))}ws(e){return V(e)}}class pu{constructor(e,t,r){this.da=e,this.localStore=t,this.serializer=r,this.queries=[],this.documents=[],this.collectionGroups=new Set,this.progress=yu(e)}Aa(e){this.progress.bytesLoaded+=e.byteLength;let t=this.progress.documentsLoaded;var r;return e.Ia.namedQuery?this.queries.push(e.Ia.namedQuery):e.Ia.documentMetadata?(this.documents.push({metadata:e.Ia.documentMetadata}),e.Ia.documentMetadata.exists||++t,r=S.fromString(e.Ia.documentMetadata.name),this.collectionGroups.add(r.get(r.length-2))):e.Ia.document&&(this.documents[this.documents.length-1].document=e.Ia.document,++t),t!==this.progress.documentsLoaded?(this.progress.documentsLoaded=t,Object.assign({},this.progress)):null}Ra(e){let r=new Map,n=new mu(this.serializer);for(var i of e)if(i.metadata.queries){let e=n.ps(i.metadata.name);for(let t of i.metadata.queries){var s=(r.get(t)||O()).add(e);r.set(t,s)}}return r}async complete(){let e=await(async(r,n,e,t)=>{let i=r,s=O(),a=gi;for(let r of e){let e=n.ps(r.metadata.name),t=(r.document&&(s=s.add(e)),n.ys(r));t.setReadTime(n.ws(r.metadata.readTime)),a=a.insert(e,t)}let o=i.ds.newChangeBuffer({trackRemovals:!0}),l=await Wo(i,(r=t,ii(ei(S.fromString("__bundle__/docs/"+r)))));return i.persistence.runTransaction("Apply bundle documents","readwrite",t=>Ho(t,o,a).next(e=>(o.apply(t),e)).next(e=>i.Hr.removeMatchingKeysForTargetId(t,l.targetId).next(()=>i.Hr.addMatchingKeys(t,s,l.targetId)).next(()=>i.localDocuments.getLocalViewOfDocuments(t,e.Vs,e.fs)).next(()=>e.Vs)))})(this.localStore,new mu(this.serializer),this.documents,this.da.id),t=this.Ra(this.documents);for(let e of this.queries)await(async(e,r,n=O())=>{let i=await Wo(e,ii(ea(r.bundledQuery))),s=e;return s.persistence.runTransaction("Save named query","readwrite",e=>{var t=V(r.readTime);return 0<=i.snapshotVersion.compareTo(t)?s.Yr.saveNamedQuery(e,r):(t=i.withResumeToken(D.EMPTY_BYTE_STRING,t),s.Ts=s.Ts.insert(t.targetId,t),s.Hr.updateTargetData(e,t).next(()=>s.Hr.removeMatchingKeysForTargetId(e,i.targetId)).next(()=>s.Hr.addMatchingKeys(e,n,i.targetId)).next(()=>s.Yr.saveNamedQuery(e,r)))})})(this.localStore,e,t.get(e.name));return this.progress.taskState="Success",{progress:this.progress,Va:this.collectionGroups,ma:e}}}function yu(e){return{taskState:"Running",documentsLoaded:0,bytesLoaded:0,totalDocuments:e.totalDocuments,totalBytes:e.totalBytes}}class vu{constructor(e){this.key=e}}class wu{constructor(e){this.key=e}}class _u{constructor(e,t){this.query=e,this.fa=t,this.ga=null,this.hasCachedResults=!1,this.current=!1,this.pa=O(),this.mutatedKeys=O(),this.ya=di(e),this.wa=new iu(this.ya)}get Sa(){return this.fa}ba(e,t){let o=t?t.Da:new su,l=(t||this).wa,u=(t||this).mutatedKeys,h=l,c=!1,d="F"===this.query.limitType&&l.size===this.query.limit?l.last():null,f="L"===this.query.limitType&&l.size===this.query.limit?l.first():null;if(e.inorderTraversal((e,t)=>{var r=l.get(e),n=hi(this.query,t)?t:null,i=!!r&&this.mutatedKeys.has(r.key),s=!!n&&(n.hasLocalMutations||this.mutatedKeys.has(n.key)&&n.hasCommittedMutations);let a=!1;r&&n?r.data.isEqual(n.data)?i!==s&&(o.track({type:3,doc:n}),a=!0):!this.va(r,n)&&(o.track({type:2,doc:n}),a=!0,d&&0<this.ya(n,d)||f&&this.ya(n,f)<0)&&(c=!0):!r&&n?(o.track({type:0,doc:n}),a=!0):r&&!n&&(o.track({type:1,doc:r}),a=!0,d||f)&&(c=!0),a&&(u=n?(h=h.add(n),s?u.add(e):u.delete(e)):(h=h.delete(e),u.delete(e)))}),null!==this.query.limit)for(;h.size>this.query.limit;){let e="F"===this.query.limitType?h.last():h.first();h=h.delete(e.key),u=u.delete(e.key),o.track({type:1,doc:e})}return{wa:h,Da:o,ls:c,mutatedKeys:u}}va(e,t){return e.hasLocalMutations&&t.hasCommittedMutations&&!t.hasLocalMutations}applyChanges(e,t,r,n){var i=this.wa,s=(this.wa=e.wa,this.mutatedKeys=e.mutatedKeys,e.Da.X_()),a=(s.sort((e,t)=>{return r=e.type,n=t.type,(i=e=>{switch(e){case 0:return 1;case 2:case 3:return 2;case 1:return 0;default:return T()}})(r)-i(n)||this.ya(e.doc,t.doc);var r,n,i}),this.Ca(r),n=null!=n&&n,t&&!n?this.Fa():[]),o=0===this.pa.size&&this.current&&!n?1:0,l=o!==this.ga;return this.ga=o,0!==s.length||l?{snapshot:new au(this.query,e.wa,i,s,e.mutatedKeys,0==o,l,!1,!!r&&0<r.resumeToken.approximateByteSize()),Ma:a}:{Ma:a}}sa(e){return this.current&&"Offline"===e?(this.current=!1,this.applyChanges({wa:this.wa,Da:new su,mutatedKeys:this.mutatedKeys,ls:!1},!1)):{Ma:[]}}xa(e){return!this.fa.has(e)&&!!this.wa.has(e)&&!this.wa.get(e).hasLocalMutations}Ca(e){e&&(e.addedDocuments.forEach(e=>this.fa=this.fa.add(e)),e.modifiedDocuments.forEach(e=>{}),e.removedDocuments.forEach(e=>this.fa=this.fa.delete(e)),this.current=e.current)}Fa(){if(!this.current)return[];let t=this.pa,r=(this.pa=O(),this.wa.forEach(e=>{this.xa(e.key)&&(this.pa=this.pa.add(e.key))}),[]);return t.forEach(e=>{this.pa.has(e)||r.push(new wu(e))}),this.pa.forEach(e=>{t.has(e)||r.push(new vu(e))}),r}Oa(e){this.fa=e.gs,this.pa=O();var t=this.ba(e.documents);return this.applyChanges(t,!0)}Na(){return au.fromInitialDocuments(this.query,this.wa,this.mutatedKeys,0===this.ga,this.hasCachedResults)}}let bu="SyncEngine";class Iu{constructor(e,t,r){this.query=e,this.targetId=t,this.view=r}}class Tu{constructor(e){this.key=e,this.Ba=!1}}class Eu{constructor(e,t,r,n,i,s){this.localStore=e,this.remoteStore=t,this.eventManager=r,this.sharedClientState=n,this.currentUser=i,this.maxConcurrentLimboResolutions=s,this.La={},this.ka=new fi(e=>li(e),oi),this.qa=new Map,this.Qa=new Set,this.$a=new A(x.comparator),this.Ua=new Map,this.Ka=new _o,this.Wa={},this.Ga=new Map,this.za=Qa.Kn(),this.onlineState="Unknown",this.ja=void 0}get isPrimaryClient(){return!0===this.ja}}async function Su(e,t,r,n){var i=await Wo(e.localStore,ii(t)),s=i.targetId,a=e.sharedClientState.addLocalQueryTarget(s,r);let o;return n&&(o=await xu(e,t,s,"current"===a,i.resumeToken)),e.isPrimaryClient&&r&&Ul(e.remoteStore,i),o}async function xu(n,e,t,r,i){n.Ha=(e,t,r)=>(async(e,t,r,n)=>{let i=t.view.ba(r);i.ls&&(i=await Xo(e.localStore,t.query,!1).then(({documents:e})=>t.view.ba(e,i)));var s=n&&n.targetChanges.get(t.targetId),a=n&&null!=n.targetMismatches.get(t.targetId),s=t.view.applyChanges(i,e.isPrimaryClient,s,a);return Vu(e,t.targetId,s.Ma),s.snapshot})(n,e,t,r);var s=await Xo(n.localStore,e,!0),a=new _u(e,s.gs),s=a.ba(s.documents),o=os.createSynthesizedTargetChangeForCurrentChange(t,r&&"Offline"!==n.onlineState,i),s=a.applyChanges(s,n.isPrimaryClient,o),o=(Vu(n,t,s.Ma),new Iu(e,t,a));return n.ka.set(e,o),n.qa.has(t)?n.qa.get(t).push(e):n.qa.set(t,[e]),s.snapshot}async function Au(t,e,r){var n=zu(t);try{let t=await((e,i)=>{let s=e,a=h.now(),o=i.reduce((e,t)=>e.add(t.key),O()),l,u;return s.persistence.runTransaction("Locally write mutations","readwrite",n=>{let t=gi,r=O();return s.ds.getEntries(n,o).next(e=>{(t=e).forEach((e,t)=>{t.isValidDocument()||(r=r.add(e))})}).next(()=>s.localDocuments.getOverlayedDocuments(n,t)).next(e=>{l=e;var t=[];for(let r of i){let e=((e,r)=>{let n=null;for(var i of e.fieldTransforms){let e=r.data.field(i.field),t=xi(i.transform,e||null);null!=t&&(n=null===n?En.empty():n).set(i.field,t)}return n||null})(r,l.get(r.key).overlayedDocument);null!=e&&t.push(new zi(r.key,e,function i(e){let s=[];return kr(e.fields,(e,r)=>{var n=new v([e]);if(yn(r)){let t=i(r.mapValue).fields;if(0===t.length)s.push(n);else for(let e of t)s.push(n.child(e))}else s.push(n)}),new Fr(s)}(e.value.mapValue),M.exists(!0)))}return s.mutationQueue.addMutationBatch(n,a,t,i)}).next(e=>{var t=(u=e).applyToLocalDocumentSet(l,r);return s.documentOverlayCache.saveOverlays(n,e.batchId,t)})}).then(()=>({batchId:u.batchId,changes:yi(l)}))})(n.localStore,e);n.sharedClientState.addPendingMutation(t.batchId);{var i=n;var s=t.batchId;var a=r;let e=i.Wa[i.currentUser.toKey()];e=(e=e||new A(E)).insert(s,a),i.Wa[i.currentUser.toKey()]=e}await Pu(n,t.changes),await Wl(n.remoteStore)}catch(t){let e=nu(t,"Failed to persist write");r.reject(e)}}async function Cu(e,t){let n=e;try{let e=await $o(n.localStore,t);t.targetChanges.forEach((e,t)=>{var r=n.Ua.get(t);r&&(y(e.addedDocuments.size+e.modifiedDocuments.size+e.removedDocuments.size<=1),0<e.addedDocuments.size?r.Ba=!0:0<e.modifiedDocuments.size?y(r.Ba):0<e.removedDocuments.size&&(y(r.Ba),r.Ba=!1))}),await Pu(n,e,t)}catch(e){await $e(e)}}function Du(e,i,t){var s=e;if(s.isPrimaryClient&&0===t||!s.isPrimaryClient&&1===t){let n=[];s.ka.forEach((e,t)=>{var r=t.view.sa(i);r.snapshot&&n.push(r.snapshot)});{t=s.eventManager;var a=i;var o=t;o.onlineState=a;let r=!1;o.queries.forEach((e,t)=>{for(let e of t.ta)e.sa(a)&&(r=!0)}),r&&du(o)}n.length&&s.La.p_(n),s.onlineState=i,s.isPrimaryClient&&s.sharedClientState.setOnlineState(i)}}async function Nu(e,t,r){var n=e;try{let e=await((e,n)=>{let i=e;return i.persistence.runTransaction("Reject batch","readwrite-primary",t=>{let r;return i.mutationQueue.lookupMutationBatch(t,n).next(e=>(y(null!==e),r=e.keys(),i.mutationQueue.removeMutationBatch(t,e))).next(()=>i.mutationQueue.performConsistencyCheck(t)).next(()=>i.documentOverlayCache.removeOverlaysForBatchId(t,r,n)).next(()=>i.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(t,r)).next(()=>i.localDocuments.getDocuments(t,r))})})(n.localStore,t);Lu(n,t,r),Ru(n,t),n.sharedClientState.updateMutationState(t,"rejected",r),await Pu(n,e)}catch(r){await $e(r)}}async function ku(t,r){let n=t;Kl(n.remoteStore)||p(bu,"The network is disabled. The task returned by 'awaitPendingWrites()' will not complete until the network is enabled.");try{let e=await(e=>{let t=e;return t.persistence.runTransaction("Get highest unacknowledged batch id","readonly",e=>t.mutationQueue.getHighestUnacknowledgedBatchId(e))})(n.localStore);var i;e===ut?r.resolve():((i=n.Ga.get(e)||[]).push(r),n.Ga.set(e,i))}catch(t){let e=nu(t,"Initialization of waitForPendingWrites() operation failed");r.reject(e)}}function Ru(e,t){(e.Ga.get(t)||[]).forEach(e=>{e.resolve()}),e.Ga.delete(t)}function Lu(e,t,r){var n=e;let i=n.Wa[n.currentUser.toKey()];if(i){let e=i.get(t);e&&(r?e.reject(r):e.resolve(),i=i.remove(t)),n.Wa[n.currentUser.toKey()]=i}}function Ou(t,e,r=null){t.sharedClientState.removeLocalQueryTarget(e);for(var n of t.qa.get(e))t.ka.delete(n),r&&t.La.Ja(n,r);t.qa.delete(e),t.isPrimaryClient&&t.Ka.br(e).forEach(e=>{t.Ka.containsKey(e)||Mu(t,e)})}function Mu(e,t){e.Qa.delete(t.path.canonicalString());var r=e.$a.get(t);null!==r&&(Bl(e.remoteStore,r),e.$a=e.$a.remove(t),e.Ua.delete(r),Fu(e))}function Vu(e,t,r){for(var n of r)n instanceof vu?(e.Ka.addReference(n.key,t),i=e,s=n,o=a=void 0,a=s.key,o=a.path.canonicalString(),i.$a.get(a)||i.Qa.has(o)||(p(bu,"New document in limbo: "+a),i.Qa.add(o),Fu(i))):n instanceof wu?(p(bu,"Document no longer in limbo: "+n.key),e.Ka.removeReference(n.key,t),e.Ka.containsKey(n.key)||Mu(e,n.key)):T();var i,s,a,o}function Fu(e){for(;0<e.Qa.size&&e.$a.size<e.maxConcurrentLimboResolutions;){var t=e.Qa.values().next().value,t=(e.Qa.delete(t),new x(S.fromString(t))),r=e.za.next();e.Ua.set(r,new Tu(t)),e.$a=e.$a.insert(t,r),Ul(e.remoteStore,new Ks(ii(ei(t.path)),r,"TargetPurposeLimboResolution",lt.ae))}}async function Pu(e,t,i){let s=e,a=[],o=[],r=[];if(!s.ka.isEmpty()){s.ka.forEach((e,n)=>{r.push(s.Ha(n,t,i).then(t=>{var r;if((t||i)&&s.isPrimaryClient){let e=t?!t.fromCache:null==(r=null==i?void 0:i.targetChanges.get(n.targetId))?void 0:r.current;s.sharedClientState.updateQueryState(n.targetId,e?"current":"not-current")}if(t){a.push(t);let e=Fo.Yi(n.targetId,t);o.push(e)}}))}),await Promise.all(r),s.La.p_(a);{var n=s.localStore,l=o;let i=n;try{await i.persistence.runTransaction("notifyLocalViewChanges","readwrite",r=>w.forEach(l,t=>w.forEach(t.Hi,e=>i.persistence.referenceDelegate.addReference(r,t.targetId,e)).next(()=>w.forEach(t.Ji,e=>i.persistence.referenceDelegate.removeReference(r,t.targetId,e)))))}catch(n){if(!et(n))throw n;p(Bo,"Failed to update sequence numbers: "+n)}for(let e of l){let n=e.targetId;if(!e.fromCache){let e=i.Ts.get(n),t=e.snapshotVersion,r=e.withLastLimboFreeSnapshotVersion(t);i.Ts=i.Ts.insert(n,r)}}}}}async function Uu(e,t,r,n){var i=e,s=await((e,r)=>{let n=e,i=n.mutationQueue;return n.persistence.runTransaction("Lookup mutation documents","readonly",t=>i.Ln(t,r).next(e=>e?n.localDocuments.getDocuments(t,e):w.resolve(null)))})(i.localStore,t);null!==s?("pending"===r?await Wl(i.remoteStore):"acknowledged"===r||"rejected"===r?(Lu(i,t,n||null),Ru(i,t),i.localStore.mutationQueue.qn(t)):T(),await Pu(i,s)):p(bu,"Cannot apply mutation batch with id: "+t)}async function Bu(r,e){var n,i,s,a=r,o=[],l=[];for(let r of e){let t,e=a.qa.get(r);if(e&&0!==e.length){t=await Wo(a.localStore,ii(e[0]));for(let r of e){let e=a.ka.get(r),t=(n=e,s=i=void 0,s=await Xo((i=a).localStore,n.query,!0),s=n.view.Oa(s),i.isPrimaryClient&&Vu(i,n.targetId,s.Ma),await s);t.snapshot&&l.push(t.snapshot)}}else{let e=await Jo(a.localStore,r);t=await Wo(a.localStore,e),await xu(a,qu(e),r,!1,t.resumeToken)}o.push(t)}return a.La.p_(l),o}function qu(e){return Zn(e.path,e.collectionGroup,e.orderBy,e.filters,e.limit,"F",e.startAt,e.endAt)}function ju(e){var t=e;return t.remoteStore.remoteSyncer.applyRemoteEvent=Cu.bind(null,t),t.remoteStore.remoteSyncer.getRemoteKeysForTarget=(function(e,t){let n=e,r=n.Ua.get(t);if(r&&r.Ba)return O().add(r.key);{let r=O(),e=n.qa.get(t);if(e)for(let t of e){let e=n.ka.get(t);r=r.unionWith(e.view.Sa)}return r}}).bind(null,t),t.remoteStore.remoteSyncer.rejectListen=(async function(e,n,t){let i=e,r=(i.sharedClientState.updateQueryState(n,"rejected",t),i.Ua.get(n)),s=r&&r.key;if(s){let e=new A(x.comparator),t=(e=e.insert(s,k.newNoDocument(s,g.min())),O().add(s)),r=new as(g.min(),new Map,new A(E),e,t);await Cu(i,r),i.$a=i.$a.remove(s),i.Ua.delete(n),Fu(i)}else await Yo(i.localStore,n,!1).then(()=>Ou(i,n,t)).catch($e)}).bind(null,t),t.La.p_=(function(r,e){var n=r;let i=!1;for(let r of e){let e=r.query,t=n.queries.get(e);if(t){for(let e of t.ta)e.oa(r)&&(i=!0);t.ea=r}}i&&du(n)}).bind(null,t.eventManager),t.La.Ja=(function(e,t,r){var n=e,i=n.queries.get(t);if(i)for(let e of i.ta)e.onError(r);n.queries.delete(t)}).bind(null,t.eventManager),t}function zu(e){var t=e;return t.remoteStore.remoteSyncer.applySuccessfulWrite=(async function(e,t){var r=e,n=t.batch.batchId;try{let e=await Ko(r.localStore,t);Lu(r,n,null),Ru(r,n),r.sharedClientState.updateMutationState(n,"acknowledged"),await Pu(r,e)}catch(e){await $e(e)}}).bind(null,t),t.remoteStore.remoteSyncer.rejectFailedWrite=Nu.bind(null,t),t}function Gu(e,t,r){let n=e;(async(e,r,n)=>{try{var i=await r.getMetadata();if(await((e,t)=>{let r=e,n=V(t.createTime);return r.persistence.runTransaction("hasNewerBundle","readonly",e=>r.Yr.getBundleMetadata(e,t.id)).then(e=>!!e&&0<=e.createTime.compareTo(n))})(e.localStore,i))return await r.close(),n._completeWith({taskState:"Success",documentsLoaded:i.totalDocuments,bytesLoaded:i.totalBytes,totalDocuments:i.totalDocuments,totalBytes:i.totalBytes}),Promise.resolve(new Set);n._updateProgress(yu(i));var s=new pu(i,e.localStore,r.serializer);let t=await r.Ya();for(;t;){let e=await s.Aa(t);e&&n._updateProgress(e),t=await r.Ya()}var a=await s.complete();return await Pu(e,a.ma,void 0),await((e,t)=>{let r=e;return r.persistence.runTransaction("Save bundle","readwrite",e=>r.Yr.saveBundleMetadata(e,t))})(e.localStore,i),n._completeWith(a.progress),Promise.resolve(a.Va)}catch(e){return me(bu,"Loading bundle failed with "+e),n._failWith(e),Promise.resolve(new Set)}})(n,t,r).then(e=>{n.sharedClientState.notifyBundleLoaded(e)})}class Ku{constructor(){this.kind="memory",this.synchronizeTabs=!1}async initialize(e){this.serializer=Al(e.databaseInfo.databaseId),this.sharedClientState=this.Za(e),this.persistence=this.Xa(e),await this.persistence.start(),this.localStore=this.eu(e),this.gcScheduler=this.tu(e,this.localStore),this.indexBackfillerScheduler=this.nu(e,this.localStore)}tu(e,t){return null}nu(e,t){return null}eu(e){return zo(this.persistence,new Uo,e.initialUser,this.serializer)}Xa(e){return new So(Ao.ri,this.serializer)}Za(e){return new gl}async terminate(){var e;null!=(e=this.gcScheduler)&&e.stop(),null!=(e=this.indexBackfillerScheduler)&&e.stop(),this.sharedClientState.shutdown(),await this.persistence.shutdown()}}Ku.provider={build:()=>new Ku};class Qu extends Ku{constructor(e){super(),this.cacheSizeBytes=e}tu(e,t){y(this.persistence.referenceDelegate instanceof Co);var r=this.persistence.referenceDelegate.garbageCollector;return new eo(r,e.asyncQueue,t)}Xa(e){let t=void 0!==this.cacheSizeBytes?Pa.withCacheSize(this.cacheSizeBytes):Pa.DEFAULT;return new So(e=>Co.ri(e,t),this.serializer)}}class $u extends Ku{constructor(e,t,r){super(),this.ru=e,this.cacheSizeBytes=t,this.forceOwnership=r,this.kind="persistent",this.synchronizeTabs=!1}async initialize(e){await super.initialize(e),await this.ru.initialize(this,e),await zu(this.ru.syncEngine),await Wl(this.ru.remoteStore),await this.persistence.Ci(()=>(this.gcScheduler&&!this.gcScheduler.started&&this.gcScheduler.start(),this.indexBackfillerScheduler&&!this.indexBackfillerScheduler.started&&this.indexBackfillerScheduler.start(),Promise.resolve()))}eu(e){return zo(this.persistence,new Uo,e.initialUser,this.serializer)}tu(e,t){var r=this.persistence.referenceDelegate.garbageCollector;return new eo(r,e.asyncQueue,t)}nu(e,t){var r=new ot(t,this.persistence);return new at(e.asyncQueue,r)}Xa(e){var t=Vo(e.databaseInfo.databaseId,e.databaseInfo.persistenceKey),r=void 0!==this.cacheSizeBytes?Pa.withCacheSize(this.cacheSizeBytes):Pa.DEFAULT;return new Lo(this.synchronizeTabs,t,e.clientId,r,e.asyncQueue,Sl(),xl(),this.serializer,this.sharedClientState,!!this.forceOwnership)}Za(e){return new gl}}class Hu extends $u{constructor(e,t){super(e,t,!1),this.ru=e,this.cacheSizeBytes=t,this.synchronizeTabs=!0}async initialize(e){await super.initialize(e);var t=this.ru.syncEngine;this.sharedClientState instanceof fl&&(this.sharedClientState.syncEngine={uo:Uu.bind(null,t),co:(async function(e,r,n,t){var i=e;if(i.ja)p(bu,"Ignoring unexpected query state notification.");else{var s=i.qa.get(r);if(s&&0<s.length)switch(n){case"current":case"not-current":{let e=await Zo(i.localStore,ci(s[0])),t=as.createSynthesizedRemoteEventForCurrentChange(r,"current"===n,D.EMPTY_BYTE_STRING);await Pu(i,e,t);break}case"rejected":await Yo(i.localStore,r,!0),Ou(i,r,t);break;default:T()}}}).bind(null,t),lo:(async function(e,t,n){let i=ju(e);if(i.ja){for(let r of t)if(i.qa.has(r)&&i.sharedClientState.isActiveQueryTarget(r))p(bu,"Adding an already active target "+r);else{let e=await Jo(i.localStore,r),t=await Wo(i.localStore,e);await xu(i,qu(e),t.targetId,!1,t.resumeToken),Ul(i.remoteStore,t)}for(let r of n)i.qa.has(r)&&await Yo(i.localStore,r,!1).then(()=>{Bl(i.remoteStore,r),Ou(i,r)}).catch($e)}}).bind(null,t),zi:(function(e){return e.localStore.persistence.zi()}).bind(null,t),ao:(async function(e,t){let r=e;return Zo(r.localStore,t).then(e=>Pu(r,e))}).bind(null,t)},await this.sharedClientState.start()),await this.persistence.Ci(async e=>{{var t=this.ru.syncEngine,s=e;let i=t;if(ju(i),zu(i),!0===s&&!0!==i.ja){let e=i.sharedClientState.getAllActiveQueryTargets(),t=await Bu(i,e.toArray());i.ja=!0,await Zl(i.remoteStore,!0);for(let e of t)Ul(i.remoteStore,e)}else if(!1===s&&!1!==i.ja){let r=[],n=Promise.resolve();i.qa.forEach((e,t)=>{i.sharedClientState.isLocalQueryTarget(t)?r.push(t):n=n.then(()=>(Ou(i,t),Yo(i.localStore,t,!0))),Bl(i.remoteStore,t)}),await n,await Bu(i,r);{s=i;let r=s;r.Ua.forEach((e,t)=>{Bl(r.remoteStore,t)}),r.Ka.Dr(),r.Ua=new Map,r.$a=new A(x.comparator)}i.ja=!1,await Zl(i.remoteStore,!1)}}await 0,this.gcScheduler&&(e&&!this.gcScheduler.started?this.gcScheduler.start():e||this.gcScheduler.stop()),this.indexBackfillerScheduler&&(e&&!this.indexBackfillerScheduler.started?this.indexBackfillerScheduler.start():e||this.indexBackfillerScheduler.stop())})}Za(e){var t,r=Sl();if(fl.D(r))return t=Vo(e.databaseInfo.databaseId,e.databaseInfo.persistenceKey),new fl(r,e.asyncQueue,t,e.clientId,e.initialUser);throw new I(b.UNIMPLEMENTED,"IndexedDB persistence is only available on platforms that support LocalStorage.")}}class Wu{async initialize(e,t){this.localStore||(this.localStore=e.localStore,this.sharedClientState=e.sharedClientState,this.datastore=this.createDatastore(t),this.remoteStore=this.createRemoteStore(t),this.eventManager=this.createEventManager(t),this.syncEngine=this.createSyncEngine(t,!e.synchronizeTabs),this.sharedClientState.onlineStateHandler=e=>Du(this.syncEngine,e,1),this.remoteStore.remoteSyncer.handleCredentialChange=(async function(e,t){var r,n,i=e;if(!i.currentUser.isEqual(t)){p(bu,"User change. New user:",t.toKey());let e=await Go(i.localStore,t);i.currentUser=t,n="'waitForPendingWrites' promise is rejected due to a user change.",(r=i).Ga.forEach(e=>{e.forEach(e=>{e.reject(new I(b.CANCELLED,n))})}),r.Ga.clear(),i.sharedClientState.handleUserChange(t,e.removedBatchIds,e.addedBatchIds),await Pu(i,e.Rs)}}).bind(null,this.syncEngine),await Zl(this.remoteStore,this.syncEngine.isPrimaryClient))}createEventManager(e){return new lu}createDatastore(e){var t,r,n,i=Al(e.databaseInfo.databaseId),s=(t=e.databaseInfo,new El(t));return t=e.authCredentials,e=e.appCheckCredentials,r=s,n=i,new Ll(t,e,r,n)}createRemoteStore(e){return t=this.localStore,r=this.datastore,e=e.asyncQueue,n=e=>Du(this.syncEngine,e,0),i=new(yl.D()?yl:ml),new Vl(t,r,e,n,i);var t,r,n,i}createSyncEngine(e,t){return r=this.localStore,n=this.remoteStore,i=this.eventManager,s=this.sharedClientState,a=e.initialUser,e=e.maxConcurrentLimboResolutions,t=t,o=new Eu(r,n,i,s,a,e),t&&(o.ja=!0),o;var r,n,i,s,a,o}async terminate(){var e,t;e=this.remoteStore,t=e,p(Ml,"RemoteStore shutting down."),t.W_.add(5),await Pl(t),t.z_.shutdown(),await!t.j_.set("Unknown"),null!=(t=this.datastore)&&t.terminate(),null!=(t=this.eventManager)&&t.terminate()}}function Yu(t,r=10240){let n=0;return{async read(){var e;return n<t.byteLength?(e={value:t.slice(n,n+r),done:!1},n+=r,e):{done:!0}},async cancel(){},releaseLock(){},closed:Promise.resolve()}}Wu.provider={build:()=>new Wu};class Xu{constructor(e){this.observer=e,this.muted=!1}next(e){this.muted||this.observer.next&&this.iu(this.observer.next,e)}error(e){this.muted||(this.observer.error?this.iu(this.observer.error,e):d("Uncaught Error in snapshot listener:",e.toString()))}su(){this.muted=!0}iu(e,t){setTimeout(()=>{this.muted||e(t)},0)}}class Ju{constructor(e,t){this.ou=e,this.serializer=t,this.metadata=new f,this.buffer=new Uint8Array,this._u=new TextDecoder("utf-8"),this.au().then(e=>{e&&e.Ea()?this.metadata.resolve(e.Ia.metadata):this.metadata.reject(new Error(`The first element of the bundle is not a metadata, it is
`+JSON.stringify(null==e?void 0:e.Ia)))},e=>this.metadata.reject(e))}close(){return this.ou.cancel()}async getMetadata(){return this.metadata.promise}async Ya(){return await this.getMetadata(),this.au()}async au(){var e,t,r=await this.uu();return null===r?null:(t=this._u.decode(r),e=Number(t),isNaN(e)&&this.cu(`length string (${t}) is not valid number`),t=await this.lu(e),new gu(JSON.parse(t),r.length+e))}hu(){return this.buffer.findIndex(e=>e==="{".charCodeAt(0))}async uu(){for(;this.hu()<0&&!await this.Pu(););var e,t;return 0===this.buffer.length?null:((e=this.hu())<0&&this.cu("Reached the end of bundle when a length string is expected."),t=this.buffer.slice(0,e),this.buffer=this.buffer.slice(e),t)}async lu(e){for(;this.buffer.length<e;)await this.Pu()&&this.cu("Reached the end of bundle when more is expected.");var t=this._u.decode(this.buffer.slice(0,e));return this.buffer=this.buffer.slice(e),t}cu(e){throw this.ou.cancel(),new Error("Invalid bundle format: "+e)}async Pu(){var e,t=await this.ou.read();return t.done||((e=new Uint8Array(this.buffer.length+t.value.length)).set(this.buffer),e.set(t.value,this.buffer.length),this.buffer=e),t.done}}class Zu{constructor(e){this.datastore=e,this.readVersions=new Map,this.mutations=[],this.committed=!1,this.lastTransactionError=null,this.writtenDocs=new Set}async lookup(e){if(this.ensureCommitNotCalled(),0<this.mutations.length)throw this.lastTransactionError=new I(b.INVALID_ARGUMENT,"Firestore transactions require all reads to be executed before all writes."),this.lastTransactionError;var t=await(async(e,t)=>{let l=e,r={documents:t.map(e=>Ss(l.serializer,e))},n=await l.Co("BatchGetDocuments",l.serializer.databaseId,S.emptyPath(),r,t.length),u=new Map,i=(n.forEach(e=>{t=l.serializer;var t,r,n,i,s,a,o="found"in(e=e)?(r=t,y(!!(n=e).found),n.found.name,n.found.updateTime,i=xs(r,n.found.name),s=V(n.found.updateTime),o=n.found.createTime?V(n.found.createTime):g.min(),a=new En({mapValue:{fields:n.found.fields}}),k.newFoundDocument(i,s,o,a)):"missing"in e?(r=t,y(!!(n=e).missing),y(!!n.readTime),i=xs(r,n.missing),s=V(n.readTime),k.newNoDocument(i,s)):T();u.set(o.key.toString(),o)}),[]);return t.forEach(e=>{var t=u.get(e.toString());y(!!t),i.push(t)}),i})(this.datastore,e);return t.forEach(e=>this.recordVersion(e)),t}set(e,t){this.write(t.toMutation(e,this.precondition(e))),this.writtenDocs.add(e.toString())}update(e,t){try{this.write(t.toMutation(e,this.preconditionForUpdate(e)))}catch(e){this.lastTransactionError=e}this.writtenDocs.add(e.toString())}delete(e){this.write(new $i(e,this.precondition(e))),this.writtenDocs.add(e.toString())}async commit(){if(this.ensureCommitNotCalled(),this.lastTransactionError)throw this.lastTransactionError;let t=this.readVersions;this.mutations.forEach(e=>{t.delete(e.key.toString())}),t.forEach((e,t)=>{var r=x.fromPath(t);this.mutations.push(new Hi(r,this.precondition(r)))});{var r=this.datastore,n=this.mutations;let t=r,e={writes:n.map(e=>Ls(t.serializer,e))};await t.So("Commit",t.serializer.databaseId,S.emptyPath(),e)}await 0,this.committed=!0}recordVersion(e){let t;if(e.isFoundDocument())t=e.version;else{if(!e.isNoDocument())throw T();t=g.min()}var r=this.readVersions.get(e.key.toString());if(r){if(!t.isEqual(r))throw new I(b.ABORTED,"Document version changed between two reads.")}else this.readVersions.set(e.key.toString(),t)}precondition(e){var t=this.readVersions.get(e.toString());return!this.writtenDocs.has(e.toString())&&t?t.isEqual(g.min())?M.exists(!1):M.updateTime(t):M.none()}preconditionForUpdate(e){var t=this.readVersions.get(e.toString());if(this.writtenDocs.has(e.toString())||!t)return M.exists(!0);if(t.isEqual(g.min()))throw new I(b.INVALID_ARGUMENT,"Can't update a document that doesn't exist.");return M.updateTime(t)}write(e){this.ensureCommitNotCalled(),this.mutations.push(e)}ensureCommitNotCalled(){}}class eh{constructor(e,t,r,n,i){this.asyncQueue=e,this.datastore=t,this.options=r,this.updateFunction=n,this.deferred=i,this.Tu=r.maxAttempts,this.a_=new Cl(this.asyncQueue,"transaction_retry")}Iu(){--this.Tu,this.Eu()}Eu(){this.a_.Xo(async()=>{let t=new Zu(this.datastore),e=this.du(t);e&&e.then(e=>{this.asyncQueue.enqueueAndForget(()=>t.commit().then(()=>{this.deferred.resolve(e)}).catch(e=>{this.Au(e)}))}).catch(e=>{this.Au(e)})})}du(e){try{var t=this.updateFunction(e);return!ht(t)&&t.catch&&t.then?t:(this.deferred.reject(Error("Transaction callback must return a Promise")),null)}catch(e){return this.deferred.reject(e),null}}Au(e){0<this.Tu&&this.Ru(e)?(--this.Tu,this.asyncQueue.enqueueAndForget(()=>(this.Eu(),Promise.resolve()))):this.deferred.reject(e)}Ru(e){var t;return"FirebaseError"===e.name&&("aborted"===(t=e.code)||"failed-precondition"===t||"already-exists"===t||!Zi(t))}}let th="FirestoreClient";class rh{constructor(e,t,r,n,i){this.authCredentials=e,this.appCheckCredentials=t,this.asyncQueue=r,this.databaseInfo=n,this.user=u.UNAUTHENTICATED,this.clientId=xe.newId(),this.authCredentialListener=()=>Promise.resolve(),this.appCheckCredentialListener=()=>Promise.resolve(),this._uninitializedComponentsProvider=i,this.authCredentials.start(r,async e=>{p(th,"Received user=",e.uid),await this.authCredentialListener(e),this.user=e}),this.appCheckCredentials.start(r,e=>(p(th,"Received new app check token=",e),this.appCheckCredentialListener(e,this.user)))}get configuration(){return{asyncQueue:this.asyncQueue,databaseInfo:this.databaseInfo,clientId:this.clientId,authCredentials:this.authCredentials,appCheckCredentials:this.appCheckCredentials,initialUser:this.user,maxConcurrentLimboResolutions:100}}setCredentialChangeListener(e){this.authCredentialListener=e}setAppCheckTokenChangeListener(e){this.appCheckCredentialListener=e}terminate(){this.asyncQueue.enterRestrictedMode();let r=new f;return this.asyncQueue.enqueueAndForgetEvenWhileRestricted(async()=>{try{this._onlineComponents&&await this._onlineComponents.terminate(),this._offlineComponents&&await this._offlineComponents.terminate(),this.authCredentials.shutdown(),this.appCheckCredentials.shutdown(),r.resolve()}catch(e){var t=nu(e,"Failed to shutdown persistence");r.reject(t)}}),r.promise}}async function nh(e,t){e.asyncQueue.verifyOperationInProgress(),p(th,"Initializing OfflineComponentProvider");var r=e.configuration;await t.initialize(r);let n=r.initialUser;e.setCredentialChangeListener(async e=>{n.isEqual(e)||(await Go(t.localStore,e),n=e)}),t.persistence.setDatabaseDeletedListener(()=>e.terminate()),e._offlineComponents=t}async function ih(e,r){e.asyncQueue.verifyOperationInProgress();var t=await sh(e);p(th,"Initializing OnlineComponentProvider"),await r.initialize(t,e.configuration),e.setCredentialChangeListener(e=>Jl(r.remoteStore,e)),e.setAppCheckTokenChangeListener((e,t)=>Jl(r.remoteStore,t)),e._onlineComponents=r}async function sh(t){if(!t._offlineComponents)if(t._uninitializedComponentsProvider){p(th,"Using user provided OfflineComponentProvider");try{await nh(t,t._uninitializedComponentsProvider._offline)}catch(e){var r=e;if(!("FirebaseError"===(n=r).name?n.code===b.FAILED_PRECONDITION||n.code===b.UNIMPLEMENTED:!("undefined"!=typeof DOMException&&n instanceof DOMException)||22===n.code||20===n.code||11===n.code))throw r;me("Error using user provided cache. Falling back to memory cache: "+r),await nh(t,new Ku)}}else p(th,"Using default OfflineComponentProvider"),await nh(t,new Qu(void 0));var n;return t._offlineComponents}async function ah(e){return e._onlineComponents||(e._uninitializedComponentsProvider?(p(th,"Using user provided OnlineComponentProvider"),await ih(e,e._uninitializedComponentsProvider._online)):(p(th,"Using default OnlineComponentProvider"),await ih(e,new Wu))),e._onlineComponents}function oh(e){return sh(e).then(e=>e.persistence)}function lh(e){return sh(e).then(e=>e.localStore)}function uh(e){return ah(e).then(e=>e.remoteStore)}function hh(e){return ah(e).then(e=>e.syncEngine)}async function ch(e){var t=await ah(e),r=t.eventManager;return r.onListen=(async function(e,t,r=!0){var n=ju(e);let i;var s=n.ka.get(t);return i=s?(n.sharedClientState.addLocalQueryTarget(s.targetId),s.view.Na()):await Su(n,t,r,!0)}).bind(null,t.syncEngine),r.onUnlisten=(async function(e,t,r){let n=e,i=n.ka.get(t),s=n.qa.get(i.targetId);1<s.length?(n.qa.set(i.targetId,s.filter(e=>!oi(e,t))),n.ka.delete(t)):n.isPrimaryClient?(n.sharedClientState.removeLocalQueryTarget(i.targetId),n.sharedClientState.isActiveQueryTarget(i.targetId)||await Yo(n.localStore,i.targetId,!1).then(()=>{n.sharedClientState.clearQueryState(i.targetId),r&&Bl(n.remoteStore,i.targetId),Ou(n,i.targetId)}).catch($e)):(Ou(n,i.targetId),await Yo(n.localStore,i.targetId,!0))}).bind(null,t.syncEngine),r.onFirstRemoteStoreListen=(async function(e,t){await Su(ju(e),t,!0,!1)}).bind(null,t.syncEngine),r.onLastRemoteStoreUnlisten=(async function(e,t){var r=e,n=r.ka.get(t),i=r.qa.get(n.targetId);r.isPrimaryClient&&1===i.length&&(r.sharedClientState.removeLocalQueryTarget(n.targetId),Bl(r.remoteStore,n.targetId))}).bind(null,t.syncEngine),r}function dh(r){return r.asyncQueue.enqueue(async()=>{var e=await oh(r),t=await uh(r);return e.setNetworkEnabled(!1),(async e=>{var t=e;t.W_.add(0),await Pl(t),t.j_.set("Offline")})(t)})}function fh(e,t){let r=new f;return e.asyncQueue.enqueueAndForget(async()=>(async(e,t,r)=>{try{var n=await((e,t)=>{let r=e;return r.persistence.runTransaction("read document","readonly",e=>r.localDocuments.getDocument(e,t))})(e,t);n.isFoundDocument()?r.resolve(n):n.isNoDocument()?r.resolve(null):r.reject(new I(b.UNAVAILABLE,"Failed to get document from cache. (However, this document may exist on the server. Run again without setting 'source' in the GetOptions to attempt to retrieve the document from the server.)"))}catch(e){n=nu(e,`Failed to get document '${t} from cache`);r.reject(n)}})(await lh(e),t,r)),r.promise}function gh(e,t,u={}){let h=new f;return e.asyncQueue.enqueueAndForget(async()=>{{var i=await ch(e),s=e.asyncQueue,a=t,o=u,l=h;let r=new Xu({next:e=>{r.su(),s.enqueueAndForget(()=>cu(i,n));var t=e.docs.has(a);!t&&e.fromCache?l.reject(new I(b.UNAVAILABLE,"Failed to get document because the client is offline.")):t&&e.fromCache&&o&&"server"===o.source?l.reject(new I(b.UNAVAILABLE,'Failed to get document from server. (However, this document does exist in the local cache. Run again without setting source to "server" to retrieve the cached document.)')):l.resolve(e)},error:e=>l.reject(e)}),n=new fu(ei(a.path),r,{includeMetadataChanges:!0,Ta:!0});return hu(i,n)}}),h.promise}function mh(e,t){let r=new f;return e.asyncQueue.enqueueAndForget(async()=>(async(e,t,r)=>{try{var n=await Xo(e,t,!0),i=new _u(t,n.gs),s=i.ba(n.documents),a=i.applyChanges(s,!1);r.resolve(a.snapshot)}catch(e){n=nu(e,`Failed to execute query '${t} against cache`);r.reject(n)}})(await lh(e),t,r)),r.promise}function ph(o,l,u={}){let h=new f;return o.asyncQueue.enqueueAndForget(async()=>{{var n=await ch(o),i=o.asyncQueue,e=l,s=u,a=h;let t=new Xu({next:e=>{t.su(),i.enqueueAndForget(()=>cu(n,r)),e.fromCache&&"server"===s.source?a.reject(new I(b.UNAVAILABLE,'Failed to get documents from server. (However, these documents may exist in the local cache. Run again without setting source to "server" to retrieve the cached documents.)')):a.resolve(e)},error:e=>a.reject(e)}),r=new fu(e,t,{includeMetadataChanges:!0,Ta:!0});return hu(n,r)}}),h.promise}function yh(r,e){let n=new Xu(e);return r.asyncQueue.enqueueAndForget(async()=>{return e=await ch(r),t=n,e.ia.add(t),void t.next();var e,t}),()=>{n.su(),r.asyncQueue.enqueueAndForget(async()=>{var e,t;e=await ch(r),t=n,e.ia.delete(t)})}}function vh(e,t,r,n){r=r,t=Al(t),s="string"==typeof r?Se().encode(r):r,r=((e,t)=>{if(e instanceof Uint8Array)return Yu(e,t);if(e instanceof ArrayBuffer)return Yu(new Uint8Array(e),t);if(e instanceof ReadableStream)return e.getReader();throw new Error("Source of `toByteStreamReader` has to be a ArrayBuffer or ReadableStream")})(s),t=t;let i=new Ju(r,t);var s;e.asyncQueue.enqueueAndForget(async()=>{Gu(await hh(e),i,n)})}function wh(n,i){return n.asyncQueue.enqueue(async()=>{{var e=await lh(n),r=i;let t=e;return t.persistence.runTransaction("Get named query","readonly",e=>t.Yr.getNamedQuery(e,r))}})}function _h(e){var t={};return void 0!==e.timeoutSeconds&&(t.timeoutSeconds=e.timeoutSeconds),t}let bh=new Map;function Ih(e,t,r){if(!r)throw new I(b.INVALID_ARGUMENT,`Function ${e}() cannot be called with an empty ${t}.`)}function Th(e,t,r,n){if(!0===t&&!0===n)throw new I(b.INVALID_ARGUMENT,e+` and ${r} cannot be used together.`)}function Eh(e){if(!x.isDocumentKey(e))throw new I(b.INVALID_ARGUMENT,`Invalid document reference. Document references must have an even number of segments, but ${e} has ${e.length}.`)}function Sh(e){if(x.isDocumentKey(e))throw new I(b.INVALID_ARGUMENT,`Invalid collection reference. Collection references must have an odd number of segments, but ${e} has ${e.length}.`)}function xh(e){var t,r;return void 0===e?"undefined":null===e?"null":"string"==typeof e?(20<e.length&&(e=e.substring(0,20)+"..."),JSON.stringify(e)):"number"==typeof e||"boolean"==typeof e?""+e:"object"==typeof e?e instanceof Array?"an array":(t=(r=e).constructor?r.constructor.name:null)?`a custom ${t} object`:"an object":"function"==typeof e?"a function":T()}function F(e,t){if((e="_delegate"in e?e._delegate:e)instanceof t)return e;if(t.name===e.constructor.name)throw new I(b.INVALID_ARGUMENT,"Type does not match the expected instance. Did you pass a reference from a different Firestore SDK?");var r=xh(e);throw new I(b.INVALID_ARGUMENT,`Expected type '${t.name}', but it was: `+r)}function Ah(e,t){if(t<=0)throw new I(b.INVALID_ARGUMENT,`Function ${e}() requires a positive number, but it was: ${t}.`)}let Ch="firestore.googleapis.com";class Dh{constructor(e){var t;if(void 0===e.host){if(void 0!==e.ssl)throw new I(b.INVALID_ARGUMENT,"Can't provide ssl option if host option is not set");this.host=Ch,this.ssl=!0}else this.host=e.host,this.ssl=null==(t=e.ssl)||t;if(this.credentials=e.credentials,this.ignoreUndefinedProperties=!!e.ignoreUndefinedProperties,this.localCache=e.localCache,void 0===e.cacheSizeBytes)this.cacheSizeBytes=41943040;else{if(-1!==e.cacheSizeBytes&&e.cacheSizeBytes<1048576)throw new I(b.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");this.cacheSizeBytes=e.cacheSizeBytes}Th("experimentalForceLongPolling",e.experimentalForceLongPolling,"experimentalAutoDetectLongPolling",e.experimentalAutoDetectLongPolling),this.experimentalForceLongPolling=!!e.experimentalForceLongPolling,this.experimentalForceLongPolling?this.experimentalAutoDetectLongPolling=!1:void 0===e.experimentalAutoDetectLongPolling?this.experimentalAutoDetectLongPolling=!0:this.experimentalAutoDetectLongPolling=!!e.experimentalAutoDetectLongPolling,this.experimentalLongPollingOptions=_h(null!=(t=e.experimentalLongPollingOptions)?t:{});var r=this.experimentalLongPollingOptions;if(void 0!==r.timeoutSeconds){if(isNaN(r.timeoutSeconds))throw new I(b.INVALID_ARGUMENT,`invalid long polling timeout: ${r.timeoutSeconds} (must not be NaN)`);if(r.timeoutSeconds<5)throw new I(b.INVALID_ARGUMENT,`invalid long polling timeout: ${r.timeoutSeconds} (minimum allowed value is 5)`);if(30<r.timeoutSeconds)throw new I(b.INVALID_ARGUMENT,`invalid long polling timeout: ${r.timeoutSeconds} (maximum allowed value is 30)`)}this.useFetchStreams=!!e.useFetchStreams}isEqual(e){return this.host===e.host&&this.ssl===e.ssl&&this.credentials===e.credentials&&this.cacheSizeBytes===e.cacheSizeBytes&&this.experimentalForceLongPolling===e.experimentalForceLongPolling&&this.experimentalAutoDetectLongPolling===e.experimentalAutoDetectLongPolling&&(t=this.experimentalLongPollingOptions,r=e.experimentalLongPollingOptions,t.timeoutSeconds===r.timeoutSeconds)&&this.ignoreUndefinedProperties===e.ignoreUndefinedProperties&&this.useFetchStreams===e.useFetchStreams;var t,r}}class Nh{constructor(e,t,r,n){this._authCredentials=e,this._appCheckCredentials=t,this._databaseId=r,this._app=n,this.type="firestore-lite",this._persistenceKey="(lite)",this._settings=new Dh({}),this._settingsFrozen=!1,this._emulatorOptions={},this._terminateTask="notTerminated"}get app(){if(this._app)return this._app;throw new I(b.FAILED_PRECONDITION,"Firestore was not initialized using the Firebase SDK. 'app' is not available")}get _initialized(){return this._settingsFrozen}get _terminated(){return"notTerminated"!==this._terminateTask}_setSettings(e){if(this._settingsFrozen)throw new I(b.FAILED_PRECONDITION,"Firestore has already been started and its settings can no longer be changed. You can only modify settings before calling any other methods on a Firestore object.");this._settings=new Dh(e),this._emulatorOptions=e.emulatorOptions||{},void 0!==e.credentials&&(this._authCredentials=(e=>{if(!e)return new ve;switch(e.type){case"firstParty":return new Ie(e.sessionIndex||"0",e.iamToken||null,e.authTokenFactory||null);case"provider":return e.client;default:throw new I(b.INVALID_ARGUMENT,"makeAuthCredentialsProvider failed due to invalid credential type")}})(e.credentials))}_getSettings(){return this._settings}_getEmulatorOptions(){return this._emulatorOptions}_freezeSettings(){return this._settingsFrozen=!0,this._settings}_delete(){return"notTerminated"===this._terminateTask&&(this._terminateTask=this._terminate()),this._terminateTask}async _restart(){"notTerminated"===this._terminateTask?await this._terminate():this._terminateTask="notTerminated"}toJSON(){return{app:this._app,databaseId:this._databaseId,settings:this._settings}}_terminate(){return e=this,(t=bh.get(e))&&(p("ComponentProvider","Removing Datastore"),bh.delete(e),t.terminate()),Promise.resolve();var e,t}}function kh(n,e,t,i={}){let s,r=(n=F(n,Nh))._getSettings(),a=Object.assign(Object.assign({},r),{emulatorOptions:n._getEmulatorOptions()}),o=e+":"+t;r.host!==Ch&&r.host!==o&&me("Host has been set in both settings() and connectFirestoreEmulator(), emulator host will be used.");var l=Object.assign(Object.assign({},r),{host:o,ssl:!1,emulatorOptions:i});if(!ee(l,a)&&(n._setSettings(l),i.mockUserToken)){let t,r;if("string"==typeof i.mockUserToken)t=i.mockUserToken,r=u.MOCK_USER;else{t=((e,t)=>{if(e.uid)throw new Error('The "uid" field is no longer supported by mockUserToken. Please use "sub" instead for Firebase Auth User ID.');var r=t||"demo-project",n=e.iat||0,i=e.sub||e.user_id;if(i)return r=Object.assign({iss:"https://securetoken.google.com/"+r,aud:r,iat:n,exp:n+3600,auth_time:n,sub:i,user_id:i,firebase:{sign_in_provider:"custom",identities:{}}},e),[z(JSON.stringify({alg:"none",type:"JWT"})),z(JSON.stringify(r)),""].join(".");throw new Error("mockUserToken must contain 'sub' or 'user_id' field!")})(i.mockUserToken,null==(s=n._app)?void 0:s.options.projectId);let e=i.mockUserToken.sub||i.mockUserToken.user_id;if(!e)throw new I(b.INVALID_ARGUMENT,"mockUserToken must contain 'sub' or 'user_id' field!");r=new u(e)}n._authCredentials=new we(new ye(t,r))}}class Rh{constructor(e,t,r){this.converter=t,this._query=r,this.type="query",this.firestore=e}withConverter(e){return new Rh(this.firestore,e,this._query)}}class P{constructor(e,t,r){this.converter=t,this._key=r,this.type="document",this.firestore=e}get _path(){return this._key.path}get id(){return this._key.path.lastSegment()}get path(){return this._key.path.canonicalString()}get parent(){return new Lh(this.firestore,this.converter,this._key.path.popLast())}withConverter(e){return new P(this.firestore,e,this._key)}}class Lh extends Rh{constructor(e,t,r){super(e,t,ei(r)),this._path=r,this.type="collection"}get id(){return this._query.path.lastSegment()}get path(){return this._query.path.canonicalString()}get parent(){var e=this._path.popLast();return e.isEmpty()?null:new P(this.firestore,null,new x(e))}withConverter(e){return new Lh(this.firestore,e,this._path)}}function Oh(e,t,...r){var n;if(e=_(e),Ih("collection","path",t),e instanceof Nh)return Sh(n=S.fromString(t,...r)),new Lh(e,null,n);if(e instanceof P||e instanceof Lh)return Sh(n=e._path.child(S.fromString(t,...r))),new Lh(e.firestore,null,n);throw new I(b.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore")}function Mh(e,t,...r){var n;if(e=_(e),Ih("doc","path",t=1===arguments.length?xe.newId():t),e instanceof Nh)return Eh(n=S.fromString(t,...r)),new P(e,null,new x(n));if(e instanceof P||e instanceof Lh)return Eh(n=e._path.child(S.fromString(t,...r))),new P(e.firestore,e instanceof Lh?e.converter:null,new x(n));throw new I(b.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore")}function Vh(e,t){return e=_(e),t=_(t),(e instanceof P||e instanceof Lh)&&(t instanceof P||t instanceof Lh)&&e.firestore===t.firestore&&e.path===t.path&&e.converter===t.converter}function Fh(e,t){return e=_(e),t=_(t),e instanceof Rh&&t instanceof Rh&&e.firestore===t.firestore&&oi(e._query,t._query)&&e.converter===t.converter}let Ph="AsyncQueue";class Uh{constructor(e=Promise.resolve()){this.Vu=[],this.mu=!1,this.fu=[],this.gu=null,this.pu=!1,this.yu=!1,this.wu=[],this.a_=new Cl(this,"async_queue_retry"),this.Su=()=>{var e=xl();e&&p(Ph,"Visibility state changed to "+e.visibilityState),this.a_.t_()},this.bu=e;var t=xl();t&&"function"==typeof t.addEventListener&&t.addEventListener("visibilitychange",this.Su)}get isShuttingDown(){return this.mu}enqueueAndForget(e){this.enqueue(e)}enqueueAndForgetEvenWhileRestricted(e){this.Du(),this.vu(e)}enterRestrictedMode(e){var t;this.mu||(this.mu=!0,this.yu=e||!1,(t=xl())&&"function"==typeof t.removeEventListener&&t.removeEventListener("visibilitychange",this.Su))}enqueue(e){if(this.Du(),this.mu)return new Promise(()=>{});let t=new f;return this.vu(()=>this.mu&&this.yu?Promise.resolve():(e().then(t.resolve,t.reject),t.promise)).then(()=>t.promise)}enqueueRetryable(e){this.enqueueAndForget(()=>(this.Vu.push(e),this.Cu()))}async Cu(){if(0!==this.Vu.length){try{await this.Vu[0](),this.Vu.shift(),this.a_.reset()}catch(e){if(!et(e))throw e;p(Ph,"Operation failed with retryable error: "+e)}0<this.Vu.length&&this.a_.Xo(()=>this.Cu())}}vu(e){var t=this.bu.then(()=>(this.pu=!0,e().catch(e=>{throw this.gu=e,this.pu=!1,d("INTERNAL UNHANDLED ERROR: ",(e=>{let t=e.message||"";return t=e.stack?e.stack.includes(e.message)?e.stack:e.message+"\n"+e.stack:t})(e)),e}).then(e=>(this.pu=!1,e))));return this.bu=t}enqueueAfterDelay(e,t,r){this.Du(),-1<this.wu.indexOf(e)&&(t=0);var n=ru.createAndSchedule(this,e,t,r,e=>this.Fu(e));return this.fu.push(n),n}Du(){this.gu&&T()}verifyOperationInProgress(){}async Mu(){for(var e;await(e=this.bu),e!==this.bu;);}xu(e){for(var t of this.fu)if(t.timerId===e)return!0;return!1}Ou(t){return this.Mu().then(()=>{this.fu.sort((e,t)=>e.targetTimeMs-t.targetTimeMs);for(var e of this.fu)if(e.skipDelay(),"all"!==t&&e.timerId===t)break;return this.Mu()})}Nu(e){this.wu.push(e)}Fu(e){var t=this.fu.indexOf(e);this.fu.splice(t,1)}}function Bh(t){var r=t,t=["next","error","complete"];if("object"==typeof r&&null!==r){var n=r;for(let e of t)if(e in n&&"function"==typeof n[e])return 1}}class qh{constructor(){this._progressObserver={},this._taskCompletionResolver=new f,this._lastProgress={taskState:"Running",totalBytes:0,totalDocuments:0,bytesLoaded:0,documentsLoaded:0}}onProgress(e,t,r){this._progressObserver={next:e,error:t,complete:r}}catch(e){return this._taskCompletionResolver.promise.catch(e)}then(e,t){return this._taskCompletionResolver.promise.then(e,t)}_completeWith(e){this._updateProgress(e),this._progressObserver.complete&&this._progressObserver.complete(),this._taskCompletionResolver.resolve(e)}_failWith(e){this._lastProgress.taskState="Error",this._progressObserver.next&&this._progressObserver.next(this._lastProgress),this._progressObserver.error&&this._progressObserver.error(e),this._taskCompletionResolver.reject(e)}_updateProgress(e){this._lastProgress=e,this._progressObserver.next&&this._progressObserver.next(e)}}var jh,zh,t,Gh;class U extends Nh{constructor(e,t,r,n){super(e,t,r,n),this.type="firestore",this._queue=new Uh,this._persistenceKey=(null==n?void 0:n.name)||"[DEFAULT]"}async _terminate(){var e;this._firestoreClient&&(e=this._firestoreClient.terminate(),this._queue=new Uh(e),this._firestoreClient=void 0,await e)}}function Kh(e){if(e._terminated)throw new I(b.FAILED_PRECONDITION,"The client has already been terminated.");return e._firestoreClient||Qh(e),e._firestoreClient}function Qh(e){var t,r,n,i,s,a=e._freezeSettings(),o=(i=e._databaseId,t=(null==(o=e._app)?void 0:o.options.appId)||"",r=e._persistenceKey,n=a,new Wr(i,t,r,n.host,n.ssl,n.experimentalForceLongPolling,n.experimentalAutoDetectLongPolling,_h(n.experimentalLongPollingOptions),n.useFetchStreams));e._componentsProvider||null!=(s=a.localCache)&&s._offlineComponentProvider&&null!=(s=a.localCache)&&s._onlineComponentProvider&&(e._componentsProvider={_offline:a.localCache._offlineComponentProvider,_online:a.localCache._onlineComponentProvider}),e._firestoreClient=new rh(e._authCredentials,e._appCheckCredentials,e._queue,o,e._componentsProvider&&(i=e._componentsProvider,s=null==i?void 0:i._online.build(),{_offline:null==i?void 0:i._offline.build(s),_online:s}))}function $h(e,t,r){if((e=F(e,U))._firestoreClient||e._terminated)throw new I(b.FAILED_PRECONDITION,"Firestore has already been started and persistence can no longer be enabled. You can only enable persistence before calling any other methods on a Firestore object.");if(e._componentsProvider||e._getSettings().localCache)throw new I(b.FAILED_PRECONDITION,"SDK cache is already specified.");e._componentsProvider={_online:t,_offline:r},Qh(e)}function Hh(r){if(r._initialized&&!r._terminated)throw new I(b.FAILED_PRECONDITION,"Persistence can only be cleared before a Firestore instance is initialized or after it is terminated.");let n=new f;return r._queue.enqueueAndForgetEvenWhileRestricted(async()=>{try{e=Vo(r._databaseId,r._persistenceKey),await(Ye.D()?(t=e+"main",void await Ye.delete(t)):Promise.resolve()),n.resolve()}catch(e){n.reject(e)}var e,t}),n.promise}function Wh(e){return(r=Kh(e=F(e,U))).asyncQueue.enqueue(async()=>{var e=await oh(r),t=await uh(r);return e.setNetworkEnabled(!0),(e=t).W_.delete(0),Fl(e)});var r}class Yh{constructor(e){this._byteString=e}static fromBase64String(e){try{return new Yh(D.fromBase64String(e))}catch(e){throw new I(b.INVALID_ARGUMENT,"Failed to construct data from Base64 string: "+e)}}static fromUint8Array(e){return new Yh(D.fromUint8Array(e))}toBase64(){return this._byteString.toBase64()}toUint8Array(){return this._byteString.toUint8Array()}toString(){return"Bytes(base64: "+this.toBase64()+")"}isEqual(e){return this._byteString.isEqual(e._byteString)}}class Xh{constructor(...e){for(let t=0;t<e.length;++t)if(0===e[t].length)throw new I(b.INVALID_ARGUMENT,"Invalid field name at argument $(i + 1). Field names must not be empty.");this._internalPath=new v(e)}isEqual(e){return this._internalPath.isEqual(e._internalPath)}}class Jh{constructor(e){this._methodName=e}}class Zh{constructor(e,t){if(!isFinite(e)||e<-90||90<e)throw new I(b.INVALID_ARGUMENT,"Latitude must be a number between -90 and 90, but was: "+e);if(!isFinite(t)||t<-180||180<t)throw new I(b.INVALID_ARGUMENT,"Longitude must be a number between -180 and 180, but was: "+t);this._lat=e,this._long=t}get latitude(){return this._lat}get longitude(){return this._long}isEqual(e){return this._lat===e._lat&&this._long===e._long}toJSON(){return{latitude:this._lat,longitude:this._long}}_compareTo(e){return E(this._lat,e._lat)||E(this._long,e._long)}}class ec{constructor(e){this._values=(e||[]).map(e=>e)}toArray(){return this._values.map(e=>e)}isEqual(e){var t=this._values,r=e._values;if(t.length!==r.length)return!1;for(let n=0;n<t.length;++n)if(t[n]!==r[n])return!1;return!0}}let tc=/^__.*__$/;class rc{constructor(e,t,r){this.data=e,this.fieldMask=t,this.fieldTransforms=r}toMutation(e,t){return null!==this.fieldMask?new zi(e,this.data,this.fieldMask,t,this.fieldTransforms):new ji(e,this.data,t,this.fieldTransforms)}}class nc{constructor(e,t,r){this.data=e,this.fieldMask=t,this.fieldTransforms=r}toMutation(e,t){return new zi(e,this.data,this.fieldMask,t,this.fieldTransforms)}}function ic(e){switch(e){case 0:case 2:case 1:return 1;case 3:case 4:return;default:throw T()}}class sc{constructor(e,t,r,n,i,s){this.settings=e,this.databaseId=t,this.serializer=r,this.ignoreUndefinedProperties=n,void 0===i&&this.Bu(),this.fieldTransforms=i||[],this.fieldMask=s||[]}get path(){return this.settings.path}get Lu(){return this.settings.Lu}ku(e){return new sc(Object.assign(Object.assign({},this.settings),e),this.databaseId,this.serializer,this.ignoreUndefinedProperties,this.fieldTransforms,this.fieldMask)}qu(e){var t=null==(t=this.path)?void 0:t.child(e),t=this.ku({path:t,Qu:!1});return t.$u(e),t}Uu(e){var t=null==(t=this.path)?void 0:t.child(e),t=this.ku({path:t,Qu:!1});return t.Bu(),t}Ku(e){return this.ku({path:void 0,Qu:!0})}Wu(e){return Sc(e,this.settings.methodName,this.settings.Gu||!1,this.path,this.settings.zu)}contains(t){return void 0!==this.fieldMask.find(e=>t.isPrefixOf(e))||void 0!==this.fieldTransforms.find(e=>t.isPrefixOf(e.field))}Bu(){if(this.path)for(let e=0;e<this.path.length;e++)this.$u(this.path.get(e))}$u(e){if(0===e.length)throw this.Wu("Document fields must not be empty");if(ic(this.Lu)&&tc.test(e))throw this.Wu('Document fields cannot begin and end with "__"')}}class ac{constructor(e,t,r){this.databaseId=e,this.ignoreUndefinedProperties=t,this.serializer=r||Al(e)}ju(e,t,r,n=!1){return new sc({Lu:e,methodName:t,zu:r,path:v.emptyPath(),Qu:!1,Gu:n},this.databaseId,this.serializer,this.ignoreUndefinedProperties)}}function oc(e){var t=e._freezeSettings(),r=Al(e._databaseId);return new ac(e._databaseId,!!t.ignoreUndefinedProperties,r)}function lc(e,n,i,t,r,s={}){var a=e.ju(s.merge||s.mergeFields?2:0,n,i,r),o=(bc("Data must be an object, but it was:",a,t),wc(t,a));let l,u;if(s.merge)l=new Fr(a.fieldMask),u=a.fieldTransforms;else if(s.mergeFields){let t=[];for(let r of s.mergeFields){let e=Ic(n,r,i);if(!a.contains(e))throw new I(b.INVALID_ARGUMENT,`Field '${e}' is specified in your field mask but missing from your input data.`);xc(t,e)||t.push(e)}l=new Fr(t),u=a.fieldTransforms.filter(e=>l.covers(e.field))}else l=null,u=a.fieldTransforms;return new rc(new En(o),l,u)}class uc extends Jh{_toFieldTransform(e){if(2!==e.Lu)throw 1===e.Lu?e.Wu(this._methodName+"() can only appear at the top level of your update data"):e.Wu(this._methodName+"() cannot be used with set() unless you pass {merge:true}");return e.fieldMask.push(e.path),null}isEqual(e){return e instanceof uc}}function hc(e,t,r){return new sc({Lu:3,zu:t.settings.zu,methodName:e._methodName,Qu:r},t.databaseId,t.serializer,t.ignoreUndefinedProperties)}class cc extends Jh{_toFieldTransform(e){return new Mi(e.path,new Ai)}isEqual(e){return e instanceof cc}}class dc extends Jh{constructor(e,t){super(e),this.Hu=t}_toFieldTransform(e){let t=hc(this,e,!0),r=this.Hu.map(e=>vc(e,t)),n=new Ci(r);return new Mi(e.path,n)}isEqual(e){return e instanceof dc&&ee(this.Hu,e.Hu)}}class fc extends Jh{constructor(e,t){super(e),this.Hu=t}_toFieldTransform(e){let t=hc(this,e,!0),r=this.Hu.map(e=>vc(e,t)),n=new Ni(r);return new Mi(e.path,n)}isEqual(e){return e instanceof fc&&ee(this.Hu,e.Hu)}}class gc extends Jh{constructor(e,t){super(e),this.Ju=t}_toFieldTransform(e){var t=new Ri(e.serializer,Ei(e.serializer,this.Ju));return new Mi(e.path,t)}isEqual(e){return e instanceof gc&&this.Ju===e.Ju}}function mc(e,i,s,t){let a=e.ju(1,i,s),o=(bc("Data must be an object, but it was:",a,t),[]),l=En.empty();kr(t,(e,t)=>{var r=Ec(i,e,s),n=(t=_(t),a.Uu(r));if(t instanceof uc)o.push(r);else{let e=vc(t,n);null!=e&&(o.push(r),l.set(r,e))}});var r=new Fr(o);return new nc(l,r,a.fieldTransforms)}function pc(e,t,r,n,i,s){var a=e.ju(1,t,r),o=[Ic(t,n,r)],l=[i];if(s.length%2!=0)throw new I(b.INVALID_ARGUMENT,`Function ${t}() needs to be called with an even number of arguments that alternate between field names and values.`);for(let f=0;f<s.length;f+=2)o.push(Ic(t,s[f])),l.push(s[f+1]);var u=[],h=En.empty();for(let g=o.length-1;0<=g;--g)if(!xc(u,o[g])){let t=o[g];var c=_(l[g]);let r=a.Uu(t);if(c instanceof uc)u.push(t);else{let e=vc(c,r);null!=e&&(u.push(t),h.set(t,e))}}var d=new Fr(u);return new nc(h,d,a.fieldTransforms)}function yc(e,t,r,n=!1){return vc(r,e.ju(n?4:3,t))}function vc(e,r){if(_c(e=_(e)))return bc("Unsupported field value:",r,e),wc(e,r);if(e instanceof Jh){{var t=e;var n=r;if(!ic(n.Lu))throw n.Wu(t._methodName+"() can only be used with update() and set()");if(!n.path)throw n.Wu(t._methodName+"() is not currently supported inside arrays");var i=t._toFieldTransform(n);i&&n.fieldTransforms.push(i)}return null}if(void 0===e&&r.ignoreUndefinedProperties)return null;if(r.path&&r.fieldMask.push(r.path),e instanceof Array){if(r.settings.Qu&&4!==r.Lu)throw r.Wu("Nested arrays are not supported");{var s,a=r,o=[];let t=0;for(s of e){let e=vc(s,a.Ku(t));null==e&&(e={nullValue:"NULL_VALUE"}),o.push(e),t++}return{arrayValue:{values:o}}}}var l,t=e,n=r;if(null===(t=_(t)))return{nullValue:"NULL_VALUE"};if("number"==typeof t)return Ei(n.serializer,t);if("boolean"==typeof t)return{booleanValue:t};if("string"==typeof t)return{stringValue:t};if(t instanceof Date)return u=h.fromDate(t),{timestampValue:_s(n.serializer,u)};if(t instanceof h)return u=new h(t.seconds,1e3*Math.floor(t.nanoseconds/1e3)),{timestampValue:_s(n.serializer,u)};if(t instanceof Zh)return{geoPointValue:{latitude:t.latitude,longitude:t.longitude}};if(t instanceof Yh)return{bytesValue:bs(n.serializer,t._byteString)};if(t instanceof P){var u=n.databaseId,i=t.firestore._databaseId;if(i.isEqual(u))return{referenceValue:Is(t.firestore._databaseId||n.databaseId,t._key.path)};throw n.Wu(`Document reference is for database ${i.projectId}/${i.database} but should be for database ${u.projectId}/`+u.database)}if(t instanceof ec)return e=t,l=n,{mapValue:{fields:{[Jr]:{stringValue:tn},[rn]:{arrayValue:{values:e.toArray().map(e=>{if("number"!=typeof e)throw l.Wu("VectorValues must only contain numeric values.");return Ii(l.serializer,e)})}}}}};throw n.Wu("Unsupported field value: "+xh(t))}function wc(e,n){let i={};return Rr(e)?n.path&&0<n.path.length&&n.fieldMask.push(n.path):kr(e,(e,t)=>{var r=vc(t,n.qu(e));null!=r&&(i[e]=r)}),{mapValue:{fields:i}}}function _c(e){return!("object"!=typeof e||null===e||e instanceof Array||e instanceof Date||e instanceof h||e instanceof Zh||e instanceof Yh||e instanceof P||e instanceof Jh||e instanceof ec)}function bc(e,t,r){var n,i;if(!_c(r)||"object"!=typeof(i=r)||null===i||Object.getPrototypeOf(i)!==Object.prototype&&null!==Object.getPrototypeOf(i))throw"an object"===(n=xh(r))?t.Wu(e+" a custom object"):t.Wu(e+" "+n)}function Ic(e,t,r){if((t=_(t))instanceof Xh)return t._internalPath;if("string"==typeof t)return Ec(e,t);throw Sc("Field path arguments must be of type string or ",e,!1,void 0,r)}let Tc=new RegExp("[~\\*/\\[\\]]");function Ec(t,r,n){if(0<=r.search(Tc))throw Sc(`Invalid field path (${r}). Paths must not contain '~', '*', '/', '[', or ']'`,t,!1,void 0,n);try{return new Xh(...r.split("."))._internalPath}catch(e){throw Sc(`Invalid field path (${r}). Paths must not be empty, begin with '.', end with '.', or contain '..'`,t,!1,void 0,n)}}function Sc(e,t,r,n,i){var s=n&&!n.isEmpty(),a=void 0!==i;let o=`Function ${t}() called with invalid data`,l=(r&&(o+=" (via `toFirestore()`)"),o+=". ","");return(s||a)&&(l+=" (found",s&&(l+=" in field "+n),a&&(l+=" in document "+i),l+=")"),new I(b.INVALID_ARGUMENT,o+e+l)}function xc(e,t){return e.some(e=>e.isEqual(t))}class Ac{constructor(e,t,r,n,i){this._firestore=e,this._userDataWriter=t,this._key=r,this._document=n,this._converter=i}get id(){return this._key.path.lastSegment()}get ref(){return new P(this._firestore,this._converter,this._key)}exists(){return null!==this._document}data(){var e;if(this._document)return this._converter?(e=new Cc(this._firestore,this._userDataWriter,this._key,this._document,null),this._converter.fromFirestore(e)):this._userDataWriter.convertValue(this._document.data.value)}get(e){if(this._document){var t=this._document.data.field(Dc("DocumentSnapshot.get",e));if(null!==t)return this._userDataWriter.convertValue(t)}}}class Cc extends Ac{data(){return super.data()}}function Dc(e,t){return"string"==typeof t?Ec(e,t):(t instanceof Xh?t:t._delegate)._internalPath}function Nc(e){if("L"===e.limitType&&0===e.explicitOrderBy.length)throw new I(b.UNIMPLEMENTED,"limitToLast() queries require specifying at least one orderBy() clause")}class kc{}class Rc extends kc{}function Lc(e,t,...r){let n=[];t instanceof kc&&n.push(t);var t=n=n.concat(r),i=t.filter(e=>!1).length,s=t.filter(e=>e instanceof Oc).length;if(1<i||0<i&&0<s)throw new I(b.INVALID_ARGUMENT,"InvalidQuery. When using composite filters, you cannot use more than one filter at the top level. Consider nesting the multiple filters within an `and(...)` statement. For example: change `query(query, where(...), or(...))` to `query(query, and(where(...), or(...)))`.");for(let t of n)e=t._apply(e);return e}class Oc extends Rc{constructor(e,t,r){super(),this._field=e,this._op=t,this._value=r,this.type="where"}static _create(e,t,r){return new Oc(e,t,r)}_apply(e){var t=this._parse(e);return jc(e._query,t),new Rh(e.firestore,e.converter,si(e._query,t))}_parse(e){var t=oc(e.firestore);{var n=e._query,i="where",s=t,a=e.firestore._databaseId,o=(e=this._field,this._op),l=this._value;let r;if(e.isKeyField()){if("array-contains"===o||"array-contains-any"===o)throw new I(b.INVALID_ARGUMENT,`Invalid Query. You can't perform '${o}' queries on documentId().`);if("in"===o||"not-in"===o){qc(l,o);let e=[];for(let t of l)e.push(Bc(a,n,t));r={arrayValue:{values:e}}}else r=Bc(a,n,l)}else"in"!==o&&"not-in"!==o&&"array-contains-any"!==o||qc(l,o),r=yc(s,i,l,"in"===o||"not-in"===o);return R.create(e,o,r)}}}(class extends kc{});class Mc extends Rc{constructor(e,t){super(),this._field=e,this._direction=t,this.type="orderBy"}static _create(e,t){return new Mc(e,t)}_apply(e){var t=((e,t,r)=>{if(null!==e.startAt)throw new I(b.INVALID_ARGUMENT,"Invalid query. You must not call startAt() or startAfter() before calling orderBy().");if(null!==e.endAt)throw new I(b.INVALID_ARGUMENT,"Invalid query. You must not call endAt() or endBefore() before calling orderBy().");return new Cn(t,r)})(e._query,this._field,this._direction);return new Rh(e.firestore,e.converter,(t=(e=e._query).explicitOrderBy.concat([t]),new Jn(e.path,e.collectionGroup,t,e.filters.slice(),e.limit,e.limitType,e.startAt,e.endAt)))}}class Vc extends Rc{constructor(e,t,r){super(),this.type=e,this._limit=t,this._limitType=r}static _create(e,t,r){return new Vc(e,t,r)}_apply(e){return new Rh(e.firestore,e.converter,ai(e._query,this._limit,this._limitType))}}class Fc extends Rc{constructor(e,t,r){super(),this.type=e,this._docOrFields=t,this._inclusive=r}static _create(e,t,r){return new Fc(e,t,r)}_apply(e){var t,r=Uc(e,this.type,this._docOrFields,this._inclusive);return new Rh(e.firestore,e.converter,(e=e._query,t=r,new Jn(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),e.limit,e.limitType,t,e.endAt)))}}class Pc extends Rc{constructor(e,t,r){super(),this.type=e,this._docOrFields=t,this._inclusive=r}static _create(e,t,r){return new Pc(e,t,r)}_apply(e){var t,r=Uc(e,this.type,this._docOrFields,this._inclusive);return new Rh(e.firestore,e.converter,(e=e._query,t=r,new Jn(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),e.limit,e.limitType,e.startAt,t)))}}function Uc(e,r,n,i){if(n[0]=_(n[0]),n[0]instanceof Ac){var s=e._query,a=e.firestore._databaseId,o=r,l=n[0]._document,u=i;if(!l)throw new I(b.NOT_FOUND,`Can't use a DocumentSnapshot that doesn't exist for ${o}().`);var h=[];for(let t of ni(s))if(t.field.isKeyField())h.push(dn(a,l.key));else{let e=l.data.field(t.field);if(Qr(e))throw new I(b.INVALID_ARGUMENT,'Invalid query. You are trying to start or end a query using a document for which the field "'+t.field+'" is an uncommitted server timestamp. (Since the value of this field is unknown, you cannot start/end a query with it.)');if(null===e){let e=t.field.canonicalString();throw new I(b.INVALID_ARGUMENT,`Invalid query. You are trying to start or end a query using a document for which the field '${e}' (used as the orderBy) does not exist.`)}h.push(e)}return new Sn(h,u)}var t=oc(e.firestore),c=e._query,d=e.firestore._databaseId,f=t,g=r,m=n,o=i,p=c.explicitOrderBy;if(m.length>p.length)throw new I(b.INVALID_ARGUMENT,`Too many arguments provided to ${g}(). The number of arguments must be less than or equal to the number of orderBy() clauses`);var y=[];for(let w=0;w<m.length;w++){var v=m[w];if(p[w].field.isKeyField()){if("string"!=typeof v)throw new I(b.INVALID_ARGUMENT,`Invalid query. Expected a string for document ID in ${g}(), but got a `+typeof v);if(!ri(c)&&-1!==v.indexOf("/"))throw new I(b.INVALID_ARGUMENT,`Invalid query. When querying a collection and ordering by documentId(), the value passed to ${g}() must be a plain document ID, but '${v}' contains a slash.`);let e=c.path.child(S.fromString(v));if(!x.isDocumentKey(e))throw new I(b.INVALID_ARGUMENT,`Invalid query. When querying a collection group and ordering by documentId(), the value passed to ${g}() must result in a valid document path, but '${e}' is not because it contains an odd number of segments.`);let t=new x(e);y.push(dn(d,t))}else{let e=yc(f,g,v);y.push(e)}}return new Sn(y,o)}function Bc(e,t,r){if("string"==typeof(r=_(r))){if(""===r)throw new I(b.INVALID_ARGUMENT,"Invalid query. When querying with documentId(), you must provide a valid document ID, but it was an empty string.");if(!ri(t)&&-1!==r.indexOf("/"))throw new I(b.INVALID_ARGUMENT,`Invalid query. When querying a collection by documentId(), you must provide a plain document ID, but '${r}' contains a '/' character.`);var n=t.path.child(S.fromString(r));if(x.isDocumentKey(n))return dn(e,new x(n));throw new I(b.INVALID_ARGUMENT,`Invalid query. When querying a collection group by documentId(), the value provided must result in a valid document path, but '${n}' is not because it has an odd number of segments (${n.length}).`)}if(r instanceof P)return dn(e,r._key);throw new I(b.INVALID_ARGUMENT,`Invalid query. When querying with documentId(), you must provide a valid string or a DocumentReference, but it was: ${xh(r)}.`)}function qc(e,t){if(!Array.isArray(e)||0===e.length)throw new I(b.INVALID_ARGUMENT,`Invalid Query. A non-empty array is required for '${t.toString()}' filters.`)}function jc(e,t){var r=((t,r)=>{for(var n of t)for(let e of n.getFlattenedFilters())if(0<=r.indexOf(e.op))return e.op;return null})(e.filters,(e=>{switch(e){case"!=":return["!=","not-in"];case"array-contains-any":case"in":return["not-in"];case"not-in":return["array-contains-any","in","not-in","!="];default:return[]}})(t.op));if(null!==r)throw r===t.op?new I(b.INVALID_ARGUMENT,`Invalid query. You cannot use more than one '${t.op.toString()}' filter.`):new I(b.INVALID_ARGUMENT,`Invalid query. You cannot use '${t.op.toString()}' filters with '${r.toString()}' filters.`)}class zc{convertValue(e,t="none"){switch(sn(e)){case 0:return null;case 1:return e.booleanValue;case 2:return N(e.integerValue||e.doubleValue);case 3:return this.convertTimestamp(e.timestampValue);case 4:return this.convertServerTimestamp(e,t);case 5:return e.stringValue;case 6:return this.convertBytes(qr(e.bytesValue));case 7:return this.convertReference(e.referenceValue);case 8:return this.convertGeoPoint(e.geoPointValue);case 9:return this.convertArray(e.arrayValue,t);case 11:return this.convertObject(e.mapValue,t);case 10:return this.convertVectorValue(e.mapValue);default:throw T()}}convertObject(e,t){return this.convertObjectMap(e.fields,t)}convertObjectMap(e,r="none"){let n={};return kr(e,(e,t)=>{n[e]=this.convertValue(t,r)}),n}convertVectorValue(e){var t=null==(t=null==(t=null==(t=e.fields)?void 0:t[rn].arrayValue)?void 0:t.values)?void 0:t.map(e=>N(e.doubleValue));return new ec(t)}convertGeoPoint(e){return new Zh(N(e.latitude),N(e.longitude))}convertArray(e,t){return(e.values||[]).map(e=>this.convertValue(e,t))}convertServerTimestamp(e,t){switch(t){case"previous":var r=$r(e);return null==r?null:this.convertValue(r,t);case"estimate":return this.convertTimestamp(Hr(e));default:return null}}convertTimestamp(e){var t=Br(e);return new h(t.seconds,t.nanos)}convertDocumentKey(e,t){var r=S.fromString(e),n=(y(Gs(r)),new Xr(r.get(1),r.get(3))),r=new x(r.popFirst(5));return n.isEqual(t)||d(`Document ${r} contains a document reference within a different database (${n.projectId}/${n.database}) which is not supported. It will be treated as a reference in the current database (${t.projectId}/${t.database}) instead.`),r}}function Gc(e,t,r){return e?r&&(r.merge||r.mergeFields)?e.toFirestore(t,r):e.toFirestore(t):t}class Kc extends zc{constructor(e){super(),this.firestore=e}convertBytes(e){return new Yh(e)}convertReference(e){var t=this.convertDocumentKey(e,this.firestore._databaseId);return new P(this.firestore,null,t)}}class Qc{constructor(e,t){this.hasPendingWrites=e,this.fromCache=t}isEqual(e){return this.hasPendingWrites===e.hasPendingWrites&&this.fromCache===e.fromCache}}class $c extends Ac{constructor(e,t,r,n,i,s){super(e,t,r,n,s),this._firestore=e,this._firestoreImpl=e,this.metadata=i}exists(){return super.exists()}data(e={}){var t;if(this._document)return this._converter?(t=new Hc(this._firestore,this._userDataWriter,this._key,this._document,this.metadata,null),this._converter.fromFirestore(t,e)):this._userDataWriter.convertValue(this._document.data.value,e.serverTimestamps)}get(e,t={}){if(this._document){var r=this._document.data.field(Dc("DocumentSnapshot.get",e));if(null!==r)return this._userDataWriter.convertValue(r,t.serverTimestamps)}}}class Hc extends $c{data(e={}){return super.data(e)}}class Wc{constructor(e,t,r,n){this._firestore=e,this._userDataWriter=t,this._snapshot=n,this.metadata=new Qc(n.hasPendingWrites,n.fromCache),this.query=r}get docs(){let t=[];return this.forEach(e=>t.push(e)),t}get size(){return this._snapshot.docs.size}get empty(){return 0===this.size}forEach(t,r){this._snapshot.docs.forEach(e=>{t.call(r,new Hc(this._firestore,this._userDataWriter,e.key,e,new Qc(this._snapshot.mutatedKeys.has(e.key),this._snapshot.fromCache),this.query.converter))})}docChanges(e={}){var t=!!e.includeMetadataChanges;if(t&&this._snapshot.excludesMetadataChanges)throw new I(b.INVALID_ARGUMENT,"To include metadata changes with your document changes, you must also pass { includeMetadataChanges:true } to onSnapshot().");return this._cachedChanges&&this._cachedChangesIncludeMetadataChanges===t||(this._cachedChanges=((s,t)=>{if(s._snapshot.oldDocs.isEmpty()){let r=0;return s._snapshot.docChanges.map(e=>{var t=new Hc(s._firestore,s._userDataWriter,e.doc.key,e.doc,new Qc(s._snapshot.mutatedKeys.has(e.doc.key),s._snapshot.fromCache),s.query.converter);return e.doc,{type:"added",doc:t,oldIndex:-1,newIndex:r++}})}{let i=s._snapshot.oldDocs;return s._snapshot.docChanges.filter(e=>t||3!==e.type).map(e=>{var t=new Hc(s._firestore,s._userDataWriter,e.doc.key,e.doc,new Qc(s._snapshot.mutatedKeys.has(e.doc.key),s._snapshot.fromCache),s.query.converter);let r=-1,n=-1;return 0!==e.type&&(r=i.indexOf(e.doc.key),i=i.delete(e.doc.key)),1!==e.type&&(i=i.add(e.doc),n=i.indexOf(e.doc.key)),{type:(e=>{switch(e){case 0:return"added";case 2:case 3:return"modified";case 1:return"removed";default:return T()}})(e.type),doc:t,oldIndex:r,newIndex:n}})}})(this,t),this._cachedChangesIncludeMetadataChanges=t),this._cachedChanges}}function Yc(e,t){return e instanceof $c&&t instanceof $c?e._firestore===t._firestore&&e._key.isEqual(t._key)&&(null===e._document?null===t._document:e._document.isEqual(t._document))&&e._converter===t._converter:e instanceof Wc&&t instanceof Wc&&e._firestore===t._firestore&&Fh(e.query,t.query)&&e.metadata.isEqual(t.metadata)&&e._snapshot.isEqual(t._snapshot)}class Xc extends zc{constructor(e){super(),this.firestore=e}convertBytes(e){return new Yh(e)}convertReference(e){var t=this.convertDocumentKey(e,this.firestore._databaseId);return new P(this.firestore,null,t)}}function Jc(e,t,r){e=F(e,P);var n=F(e.firestore,U),i=Gc(e.converter,t,r);return td(n,[lc(oc(n),"setDoc",e._key,i,null!==e.converter,r).toMutation(e._key,M.none())])}function Zc(e,t,r,...n){e=F(e,P);var i=F(e.firestore,U),s=oc(i);return td(i,[("string"==typeof(t=_(t))||t instanceof Xh?pc(s,"updateDoc",e._key,t,r,n):mc(s,"updateDoc",e._key,t)).toMutation(e._key,M.exists(!0))])}function ed(n,...i){var t,r;n=_(n);let e={includeMetadataChanges:!1,source:"default"},s=0;"object"!=typeof i[s]||Bh(i[s])||(e=i[s],s++);var a={includeMetadataChanges:e.includeMetadataChanges,source:e.source};if(Bh(i[s])){let e=i[s];i[s]=null==(r=e.next)?void 0:r.bind(e),i[s+1]=null==(t=e.error)?void 0:t.bind(e),i[s+2]=null==(r=e.complete)?void 0:r.bind(e)}let o,l,u;if(n instanceof P)l=F(n.firestore,U),u=ei(n._key.path),o={next:e=>{i[s]&&i[s](rd(l,n,e))},error:i[s+1],complete:i[s+2]};else{let t=F(n,Rh),r=(l=F(t.firestore,U),u=t._query,new Xc(l));o={next:e=>{i[s]&&i[s](new Wc(l,r,t,e))},error:i[s+1],complete:i[s+2]},Nc(n._query)}{var h=Kh(l),c=u,d=a,f=o;let e=new Xu(f),t=new fu(c,e,d);return h.asyncQueue.enqueueAndForget(async()=>hu(await ch(h),t)),()=>{e.su(),h.asyncQueue.enqueueAndForget(async()=>cu(await ch(h),t))}}}function td(t,r){{var n=Kh(t),i=r;let e=new f;return n.asyncQueue.enqueueAndForget(async()=>Au(await hh(n),i,e)),e.promise}}function rd(e,t,r){var n=r.docs.get(t._key),i=new Xc(e);return new $c(e,i,t._key,n,new Qc(r.hasPendingWrites,r.fromCache),t.converter)}let nd={maxAttempts:5};class id{constructor(e,t){this._firestore=e,this._commitHandler=t,this._mutations=[],this._committed=!1,this._dataReader=oc(e)}set(e,t,r){this._verifyNotCommitted();var n=sd(e,this._firestore),i=Gc(n.converter,t,r),i=lc(this._dataReader,"WriteBatch.set",n._key,i,null!==n.converter,r);return this._mutations.push(i.toMutation(n._key,M.none())),this}update(e,t,r,...n){this._verifyNotCommitted();var i=sd(e,this._firestore),s="string"==typeof(t=_(t))||t instanceof Xh?pc(this._dataReader,"WriteBatch.update",i._key,t,r,n):mc(this._dataReader,"WriteBatch.update",i._key,t);return this._mutations.push(s.toMutation(i._key,M.exists(!0))),this}delete(e){this._verifyNotCommitted();var t=sd(e,this._firestore);return this._mutations=this._mutations.concat(new $i(t._key,M.none())),this}commit(){return this._verifyNotCommitted(),this._committed=!0,0<this._mutations.length?this._commitHandler(this._mutations):Promise.resolve()}_verifyNotCommitted(){if(this._committed)throw new I(b.FAILED_PRECONDITION,"A write batch can no longer be used after commit() has been called.")}}function sd(e,t){if((e=_(e)).firestore!==t)throw new I(b.INVALID_ARGUMENT,"Provided document reference is from a different Firestore instance.");return e}class ad extends class{constructor(e,t){this._firestore=e,this._transaction=t,this._dataReader=oc(e)}get(e){let r=sd(e,this._firestore),n=new Kc(this._firestore);return this._transaction.lookup([r._key]).then(e=>{if(!e||1!==e.length)return T();var t=e[0];if(t.isFoundDocument())return new Ac(this._firestore,n,t.key,t,r.converter);if(t.isNoDocument())return new Ac(this._firestore,n,r._key,null,r.converter);throw T()})}set(e,t,r){var n=sd(e,this._firestore),i=Gc(n.converter,t,r),i=lc(this._dataReader,"Transaction.set",n._key,i,null!==n.converter,r);return this._transaction.set(n._key,i),this}update(e,t,r,...n){var i=sd(e,this._firestore),s="string"==typeof(t=_(t))||t instanceof Xh?pc(this._dataReader,"Transaction.update",i._key,t,r,n):mc(this._dataReader,"Transaction.update",i._key,t);return this._transaction.update(i._key,s),this}delete(e){var t=sd(e,this._firestore);return this._transaction.delete(t._key),this}}{constructor(e,t){super(e,t),this._firestore=e}get(e){let t=sd(e,this._firestore),r=new Xc(this._firestore);return super.get(e).then(e=>new $c(this._firestore,r,t._key,e._document,new Qc(!1,!1),t.converter))}}function od(r,n,e){r=F(r,U);var i=Object.assign(Object.assign({},nd),e);if(i.maxAttempts<1)throw new I(b.INVALID_ARGUMENT,"Max attempts must be at least 1");{var s=Kh(r),a=e=>n(new ad(r,e)),o=i;let t=new f;return s.asyncQueue.enqueueAndForget(async()=>{var e=await ah(s).then(e=>e.datastore);new eh(s.asyncQueue,e,o,a,t).Iu()}),t.promise}}zh=!0,t=Od.SDK_VERSION,de=t,Od._registerComponent(new re("firestore",(e,{instanceIdentifier:t,options:r})=>{var n=e.getProvider("app").getImmediate(),n=new U(new _e(e.getProvider("auth-internal")),new Ee(n,e.getProvider("app-check-internal")),((e,t)=>{if(Object.prototype.hasOwnProperty.apply(e.options,["projectId"]))return new Xr(e.options.projectId,t);throw new I(b.INVALID_ARGUMENT,'"projectId" not provided in firebase.initializeApp.')})(n,t),n);return r=Object.assign({useFetchStreams:zh},r),n._setSettings(r),n},"PUBLIC").setMultipleInstances(!0)),Od.registerVersion(he,ce,jh),Od.registerVersion(he,ce,"esm2017");function ld(e,t){if(void 0===t)return{merge:!1};if(void 0!==t.mergeFields&&void 0!==t.merge)throw new I("invalid-argument",`Invalid options passed to function ${e}(): You cannot `+'specify both "merge" and "mergeFields".');return t}function ud(){if("undefined"==typeof Uint8Array)throw new I("unimplemented","Uint8Arrays are not available in this environment.")}function hd(){if("undefined"==typeof atob)throw new I("unimplemented","Blobs are unavailable in Firestore in this environment.")}class cd{constructor(e){this._delegate=e}static fromBase64String(e){return hd(),new cd(Yh.fromBase64String(e))}static fromUint8Array(e){return ud(),new cd(Yh.fromUint8Array(e))}toBase64(){return hd(),this._delegate.toBase64()}toUint8Array(){return ud(),this._delegate.toUint8Array()}isEqual(e){return this._delegate.isEqual(e._delegate)}toString(){return"Blob(base64: "+this.toBase64()+")"}}function dd(e){var t=["next","error","complete"];if("object"==typeof e&&null!==e){var r,n=e;for(r of t)if(r in n&&"function"==typeof n[r])return 1}}class fd{enableIndexedDbPersistence(e,r){{e=e._delegate;var n={forceOwnership:r};me("enableIndexedDbPersistence() will be deprecated in the future, you can use `FirestoreSettings.cache` instead.");let t=e._freezeSettings();return $h(e,Wu.provider,{build:e=>new $u(e,t.cacheSizeBytes,null==n?void 0:n.forceOwnership)}),Promise.resolve()}}enableMultiTabIndexedDbPersistence(e){return(async e=>{me("enableMultiTabIndexedDbPersistence() will be deprecated in the future, you can use `FirestoreSettings.cache` instead.");let t=e._freezeSettings();$h(e,Wu.provider,{build:e=>new Hu(e,t.cacheSizeBytes)})})(e._delegate)}clearIndexedDbPersistence(e){return Hh(e._delegate)}}class gd{constructor(e,t,r){this._delegate=t,this._persistenceProvider=r,this.INTERNAL={delete:()=>this.terminate()},e instanceof Xr||(this._appCompat=e)}get _databaseId(){return this._delegate._databaseId}settings(e){var t=this._delegate._getSettings();e.merge||t.host===e.host||me("You are overriding the original host. If you did not intend to override your settings, use {merge: true}."),e.merge&&delete(e=Object.assign(Object.assign({},t),e)).merge,this._delegate._setSettings(e)}useEmulator(e,t,r={}){kh(this._delegate,e,t,r)}enableNetwork(){return Wh(this._delegate)}disableNetwork(){return dh(Kh(F(this._delegate,U)))}enablePersistence(e){let t=!1,r=!1;return e&&(t=!!e.synchronizeTabs,r=!!e.experimentalForceOwningTab,Th("synchronizeTabs",t,"experimentalForceOwningTab",r)),t?this._persistenceProvider.enableMultiTabIndexedDbPersistence(this):this._persistenceProvider.enableIndexedDbPersistence(this,r)}clearPersistence(){return this._persistenceProvider.clearIndexedDbPersistence(this)}terminate(){return this._appCompat&&(this._appCompat._removeServiceInstance("firestore-compat"),this._appCompat._removeServiceInstance("firestore")),this._delegate._delete()}waitForPendingWrites(){var t=this._delegate;{var r=Kh(t=F(t,U));let e=new f;return r.asyncQueue.enqueueAndForget(async()=>ku(await hh(r),e)),e.promise}}onSnapshotsInSync(e){return t=this._delegate,e=e,yh(Kh(t=F(t,U)),Bh(e)?e:{next:e});var t}get app(){if(this._appCompat)return this._appCompat;throw new I("failed-precondition","Firestore was not initialized using the Firebase SDK. 'app' is not available")}collection(e){try{return new Cd(this,Oh(this._delegate,e))}catch(e){throw _d(e,"collection()","Firestore.collection()")}}doc(e){try{return new wd(this,Mh(this._delegate,e))}catch(e){throw _d(e,"doc()","Firestore.doc()")}}collectionGroup(e){try{return new Sd(this,((e,t)=>{if(e=F(e,Nh),Ih("collectionGroup","collection id",t),0<=t.indexOf("/"))throw new I(b.INVALID_ARGUMENT,`Invalid collection ID '${t}' passed to function collectionGroup(). Collection IDs must not contain '/'.`);return new Rh(e,null,(e=t,new Jn(S.emptyPath(),e)))})(this._delegate,e))}catch(e){throw _d(e,"collectionGroup()","Firestore.collectionGroup()")}}runTransaction(t){return od(this._delegate,e=>t(new pd(this,e)))}batch(){return Kh(this._delegate),new yd(new id(this._delegate,e=>td(this._delegate,e)))}loadBundle(e){return t=this._delegate,e=e,r=Kh(t=F(t,U)),n=new qh,vh(r,t._databaseId,e,n),n;var t,r,n}namedQuery(e){return t=this._delegate,e=e,wh(Kh(t=F(t,U)),e).then(e=>e?new Rh(t,null,e.query):null).then(e=>e?new Sd(this,e):null);var t}}class md extends zc{constructor(e){super(),this.firestore=e}convertBytes(e){return new cd(new Yh(e))}convertReference(e){var t=this.convertDocumentKey(e,this.firestore._databaseId);return wd.forKey(t,this.firestore,null)}}class pd{constructor(e,t){this._firestore=e,this._delegate=t,this._userDataWriter=new md(e)}get(e){let t=Dd(e);return this._delegate.get(t).then(e=>new Td(this._firestore,new $c(this._firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,t.converter)))}set(e,t,r){var n=Dd(e);return r?(ld("Transaction.set",r),this._delegate.set(n,t,r)):this._delegate.set(n,t),this}update(e,t,r,...n){var i=Dd(e);return 2===arguments.length?this._delegate.update(i,t):this._delegate.update(i,t,r,...n),this}delete(e){var t=Dd(e);return this._delegate.delete(t),this}}class yd{constructor(e){this._delegate=e}set(e,t,r){var n=Dd(e);return r?(ld("WriteBatch.set",r),this._delegate.set(n,t,r)):this._delegate.set(n,t),this}update(e,t,r,...n){var i=Dd(e);return 2===arguments.length?this._delegate.update(i,t):this._delegate.update(i,t,r,...n),this}delete(e){var t=Dd(e);return this._delegate.delete(t),this}commit(){return this._delegate.commit()}}class vd{constructor(e,t,r){this._firestore=e,this._userDataWriter=t,this._delegate=r}fromFirestore(e,t){var r=new Hc(this._firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,null);return this._delegate.fromFirestore(new Ed(this._firestore,r),null!=t?t:{})}toFirestore(e,t){return t?this._delegate.toFirestore(e,t):this._delegate.toFirestore(e)}static getInstance(e,t){var r=vd.INSTANCES;let n=r.get(e),i=(n||(n=new WeakMap,r.set(e,n)),n.get(t));return i||(i=new vd(e,new md(e),t),n.set(t,i)),i}}vd.INSTANCES=new WeakMap;class wd{constructor(e,t){this.firestore=e,this._delegate=t,this._userDataWriter=new md(e)}static forPath(e,t,r){if(e.length%2!=0)throw new I("invalid-argument","Invalid document reference. Document references must have an even number of segments, but "+e.canonicalString()+" has "+e.length);return new wd(t,new P(t._delegate,r,new x(e)))}static forKey(e,t,r){return new wd(t,new P(t._delegate,r,e))}get id(){return this._delegate.id}get parent(){return new Cd(this.firestore,this._delegate.parent)}get path(){return this._delegate.path}collection(e){try{return new Cd(this.firestore,Oh(this._delegate,e))}catch(e){throw _d(e,"collection()","DocumentReference.collection()")}}isEqual(e){return(e=_(e))instanceof P&&Vh(this._delegate,e)}set(e,t){t=ld("DocumentReference.set",t);try{return t?Jc(this._delegate,e,t):Jc(this._delegate,e)}catch(e){throw _d(e,"setDoc()","DocumentReference.set()")}}update(e,t,...r){try{return 1===arguments.length?Zc(this._delegate,e):Zc(this._delegate,e,t,...r)}catch(e){throw _d(e,"updateDoc()","DocumentReference.update()")}}delete(){return td(F((e=this._delegate).firestore,U),[new $i(e._key,M.none())]);var e}onSnapshot(...e){var t=bd(e),r=Id(e,e=>new Td(this.firestore,new $c(this.firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,this._delegate.converter)));return ed(this._delegate,t,r)}get(e){let t;return(t=("cache"===(null==e?void 0:e.source)?t=>{t=F(t,P);let r=F(t.firestore,U),e=Kh(r),n=new Xc(r);return fh(e,t._key).then(e=>new $c(r,n,t._key,e,new Qc(null!==e&&e.hasLocalMutations,!0),t.converter))}:"server"===(null==e?void 0:e.source)?t=>{t=F(t,P);let r=F(t.firestore,U);return gh(Kh(r),t._key,{source:"server"}).then(e=>rd(r,t,e))}:t=>{t=F(t,P);let r=F(t.firestore,U);return gh(Kh(r),t._key).then(e=>rd(r,t,e))})(this._delegate)).then(e=>new Td(this.firestore,new $c(this.firestore._delegate,this._userDataWriter,e._key,e._document,e.metadata,this._delegate.converter)))}withConverter(e){return new wd(this.firestore,e?this._delegate.withConverter(vd.getInstance(this.firestore,e)):this._delegate.withConverter(null))}}function _d(e,t,r){return e.message=e.message.replace(t,r),e}function bd(e){for(var t of e)if("object"==typeof t&&!dd(t))return t;return{}}function Id(e,t){let r,n,i;return i=dd(e[0])?e[0]:dd(e[1])?e[1]:"function"==typeof e[0]?{next:e[0],error:e[1],complete:e[2]}:{next:e[1],error:e[2],complete:e[3]},{next:e=>{i.next&&i.next(t(e))},error:null==(r=i.error)?void 0:r.bind(i),complete:null==(n=i.complete)?void 0:n.bind(i)}}class Td{constructor(e,t){this._firestore=e,this._delegate=t}get ref(){return new wd(this._firestore,this._delegate.ref)}get id(){return this._delegate.id}get metadata(){return this._delegate.metadata}get exists(){return this._delegate.exists()}data(e){return this._delegate.data(e)}get(e,t){return this._delegate.get(e,t)}isEqual(e){return Yc(this._delegate,e._delegate)}}class Ed extends Td{data(e){var t=this._delegate.data(e);return this._delegate._converter||void 0!==t||T(),t}}class Sd{constructor(e,t){this.firestore=e,this._delegate=t,this._userDataWriter=new md(e)}where(e,t,r){try{return new Sd(this.firestore,Lc(this._delegate,(n=r,i=t,s=Dc("where",e),Oc._create(s,i,n))))}catch(e){throw _d(e,/(orderBy|where)\(\)/,"Query.$1()")}var n,i,s}orderBy(e,t){try{return new Sd(this.firestore,Lc(this._delegate,([r,n="asc"]=[e,t],i=n,s=Dc("orderBy",r),Mc._create(s,i))))}catch(e){throw _d(e,/(orderBy|where)\(\)/,"Query.$1()")}var r,n,i,s}limit(e){try{return new Sd(this.firestore,Lc(this._delegate,(Ah("limit",t=e),Vc._create("limit",t,"F"))))}catch(e){throw _d(e,"limit()","Query.limit()")}var t}limitToLast(e){try{return new Sd(this.firestore,Lc(this._delegate,(Ah("limitToLast",t=e),Vc._create("limitToLast",t,"L"))))}catch(e){throw _d(e,"limitToLast()","Query.limitToLast()")}var t}startAt(...e){try{return new Sd(this.firestore,Lc(this._delegate,([...t]=[...e],Fc._create("startAt",t,!0))))}catch(e){throw _d(e,"startAt()","Query.startAt()")}var t}startAfter(...e){try{return new Sd(this.firestore,Lc(this._delegate,([...t]=[...e],Fc._create("startAfter",t,!1))))}catch(e){throw _d(e,"startAfter()","Query.startAfter()")}var t}endBefore(...e){try{return new Sd(this.firestore,Lc(this._delegate,([...t]=[...e],Pc._create("endBefore",t,!1))))}catch(e){throw _d(e,"endBefore()","Query.endBefore()")}var t}endAt(...e){try{return new Sd(this.firestore,Lc(this._delegate,([...t]=[...e],Pc._create("endAt",t,!0))))}catch(e){throw _d(e,"endAt()","Query.endAt()")}var t}isEqual(e){return Fh(this._delegate,e._delegate)}get(e){let t;return(t=("cache"===(null==e?void 0:e.source)?t=>{t=F(t,Rh);let r=F(t.firestore,U),e=Kh(r),n=new Xc(r);return mh(e,t._query).then(e=>new Wc(r,n,t,e))}:"server"===(null==e?void 0:e.source)?t=>{t=F(t,Rh);let r=F(t.firestore,U),e=Kh(r),n=new Xc(r);return ph(e,t._query,{source:"server"}).then(e=>new Wc(r,n,t,e))}:t=>{t=F(t,Rh);let r=F(t.firestore,U),e=Kh(r),n=new Xc(r);return Nc(t._query),ph(e,t._query).then(e=>new Wc(r,n,t,e))})(this._delegate)).then(e=>new Ad(this.firestore,new Wc(this.firestore._delegate,this._userDataWriter,this._delegate,e._snapshot)))}onSnapshot(...e){var t=bd(e),r=Id(e,e=>new Ad(this.firestore,new Wc(this.firestore._delegate,this._userDataWriter,this._delegate,e._snapshot)));return ed(this._delegate,t,r)}withConverter(e){return new Sd(this.firestore,e?this._delegate.withConverter(vd.getInstance(this.firestore,e)):this._delegate.withConverter(null))}}class xd{constructor(e,t){this._firestore=e,this._delegate=t}get type(){return this._delegate.type}get doc(){return new Ed(this._firestore,this._delegate.doc)}get oldIndex(){return this._delegate.oldIndex}get newIndex(){return this._delegate.newIndex}}class Ad{constructor(e,t){this._firestore=e,this._delegate=t}get query(){return new Sd(this._firestore,this._delegate.query)}get metadata(){return this._delegate.metadata}get size(){return this._delegate.size}get empty(){return this._delegate.empty}get docs(){return this._delegate.docs.map(e=>new Ed(this._firestore,e))}docChanges(e){return this._delegate.docChanges(e).map(e=>new xd(this._firestore,e))}forEach(t,r){this._delegate.forEach(e=>{t.call(r,new Ed(this._firestore,e))})}isEqual(e){return Yc(this._delegate,e._delegate)}}class Cd extends Sd{constructor(e,t){super(e,t),this.firestore=e,this._delegate=t}get id(){return this._delegate.id}get path(){return this._delegate.path}get parent(){var e=this._delegate.parent;return e?new wd(this.firestore,e):null}doc(e){try{return void 0===e?new wd(this.firestore,Mh(this._delegate)):new wd(this.firestore,Mh(this._delegate,e))}catch(e){throw _d(e,"doc()","CollectionReference.doc()")}}add(e){return((e,t)=>{let r=F(e.firestore,U),n=Mh(e),i=Gc(e.converter,t);return td(r,[lc(oc(e.firestore),"addDoc",n._key,i,null!==e.converter,{}).toMutation(n._key,M.exists(!1))]).then(()=>n)})(this._delegate,e).then(e=>new wd(this.firestore,e))}isEqual(e){return Vh(this._delegate,e._delegate)}withConverter(e){return new Cd(this.firestore,e?this._delegate.withConverter(vd.getInstance(this.firestore,e)):this._delegate.withConverter(null))}}function Dd(e){return F(e,P)}class Nd{static serverTimestamp(){var e=new cc("serverTimestamp");return e._methodName="FieldValue.serverTimestamp",new Nd(e)}static delete(){var e=new uc("deleteField");return e._methodName="FieldValue.delete",new Nd(e)}static arrayUnion(...e){[...e]=[...e];var t=new dc("arrayUnion",e);return t._methodName="FieldValue.arrayUnion",new Nd(t)}static arrayRemove(...e){[...e]=[...e];var t=new fc("arrayRemove",e);return t._methodName="FieldValue.arrayRemove",new Nd(t)}static increment(e){e=e;var t=new gc("increment",e);return t._methodName="FieldValue.increment",new Nd(t)}constructor(e){this._delegate=e}isEqual(e){return this._delegate.isEqual(e._delegate)}}let kd={Firestore:gd,GeoPoint:Zh,Timestamp:h,Blob:cd,Transaction:pd,WriteBatch:yd,DocumentReference:wd,DocumentSnapshot:Td,Query:Sd,QueryDocumentSnapshot:Ed,QuerySnapshot:Ad,CollectionReference:Cd,FieldPath:class Rd{constructor(...e){this._delegate=new Xh(...e)}static documentId(){return new Rd(v.keyField().canonicalString())}isEqual(e){return(e=_(e))instanceof Xh&&this._delegate._internalPath.isEqual(e._internalPath)}},FieldValue:Nd,setLogLevel:function(e){e=e,fe.setLogLevel(e)},CACHE_SIZE_UNLIMITED:-1};t=i.default,Gh=(e,t)=>new gd(e,t,new fd),t.INTERNAL.registerComponent(new re("firestore-compat",e=>{var t=e.getProvider("app-compat").getImmediate(),r=e.getProvider("firestore").getImmediate();return Gh(t,r)},"PUBLIC").setServiceProps(Object.assign({},kd))),t.registerVersion("@firebase/firestore-compat","0.3.45")}).apply(this,arguments)}catch(e){throw console.error(e),new Error("Cannot instantiate firebase-firestore-compat.js - be sure to load firebase-app.js first.")}});
//# sourceMappingURL=firebase-firestore-compat.js.map