@veltdev/sdk 6.0.28 → 6.0.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/{chunk-3BCXNETY.js → chunk-2DMVX6Z3.js} +1 -1
- package/{chunk-JWSICAW6.js → chunk-2YDGTFZM.js} +1 -1
- package/{chunk-KNYRVMQK.js → chunk-333ZBMSE.js} +1 -1
- package/{chunk-4HAFXUDN.js → chunk-35XJQZ27.js} +1 -1
- package/chunk-4H2TOH52.js +1 -0
- package/{chunk-VESMHAEV.js → chunk-4QGCX4EY.js} +4 -4
- package/{chunk-VJPZ6E4S.js → chunk-5TCVSBJS.js} +1 -1
- package/{chunk-URKI6WZP.js → chunk-7DF5ZYSM.js} +1 -1
- package/{chunk-XEXFF5FD.js → chunk-7DTEJ3JT.js} +1 -1
- package/{chunk-JZCDUWAA.js → chunk-7K4EA6Y5.js} +1 -1
- package/{chunk-YBLQ2JHR.js → chunk-7WHI6IHH.js} +1 -1
- package/{chunk-MP2SDO2E.js → chunk-7ZSEYX3G.js} +1 -1
- package/{chunk-3Q5TRC4E.js → chunk-AOKM7YOQ.js} +1 -1
- package/{chunk-R7EWRVMV.js → chunk-ASGMGCYI.js} +1 -1
- package/{chunk-CR275X25.js → chunk-BG6LRF5O.js} +1 -1
- package/{chunk-SYLJZSJP.js → chunk-BRCK225M.js} +1 -1
- package/{chunk-J3IQ7DYW.js → chunk-CRKE5XUX.js} +1 -1
- package/{chunk-EB7SHB2S.js → chunk-DHVECNH4.js} +1 -1
- package/{chunk-RPLZXBLF.js → chunk-DJPCTT4F.js} +1 -1
- package/{chunk-J35LMO3C.js → chunk-EQWU2DL7.js} +1 -1
- package/{chunk-ZRITZXNF.js → chunk-ESMJKCYM.js} +1 -1
- package/{chunk-R7PIAWZF.js → chunk-FQILN45X.js} +1 -1
- package/{chunk-67RGQF3Z.js → chunk-M6J3KGG7.js} +1 -1
- package/{chunk-SN6HOFPK.js → chunk-MFXS56C3.js} +1 -1
- package/{chunk-IS7ZDK65.js → chunk-MW45OPL7.js} +1 -1
- package/chunk-OITZJHUL.js +1 -0
- package/{chunk-JQZKADOA.js → chunk-PRURFNVL.js} +1 -1
- package/{chunk-TSC5TWPQ.js → chunk-Q3RXGMSF.js} +1 -1
- package/{chunk-TLEK2ADO.js → chunk-QXHO6I75.js} +1 -1
- package/{chunk-HIEV42PB.js → chunk-RIQYRZB7.js} +1 -1
- package/{chunk-HCM2TAE7.js → chunk-STGE6CFR.js} +1 -1
- package/{chunk-5ACPKO6C.js → chunk-T6YEK2X2.js} +1 -1
- package/{chunk-GHN6NWBT.js → chunk-TU6L6SDC.js} +1 -1
- package/{chunk-4P3GYHGY.js → chunk-XZCIYLEI.js} +1 -1
- package/{chunk-GAWI762G.js → chunk-ZADJEDZT.js} +1 -1
- package/{chunk-N3IQEYGG.js → chunk-ZAORQEEC.js} +1 -1
- package/package.json +1 -1
- package/velt-activity-log.js +1 -1
- package/velt-area.js +1 -1
- package/velt-arrow.js +1 -1
- package/velt-comment.js +6 -6
- package/velt-crdt.js +1 -1
- package/velt-cursor.js +1 -1
- package/velt-huddle.js +1 -1
- package/velt-live-state-sync.js +1 -1
- package/velt-notification.js +1 -1
- package/velt-portable.js +1 -1
- package/velt-presence.js +1 -1
- package/velt-reaction.js +1 -1
- package/velt-recorder.js +1 -1
- package/velt-rewriter.js +1 -1
- package/velt-selection.js +1 -1
- package/velt-tag.js +1 -1
- package/velt-user-invite.js +1 -1
- package/velt-user-request.js +1 -1
- package/velt-video-player.js +1 -1
- package/velt-views.js +1 -1
- package/velt.js +2 -2
- package/chunk-FWIDRPYU.js +0 -1
- package/chunk-NTFMMZRZ.js +0 -1
|
@@ -145,12 +145,12 @@ ${n.map((r,i)=>`${i+1}) ${r.toString()}`).join(`
|
|
|
145
145
|
`:"")+s+` Recent session events (most recent last, times relative to now):
|
|
146
146
|
`+(o.length?o.join(`
|
|
147
147
|
`):" (no events recorded)")+`
|
|
148
|
-
This block prints once per distinct problem. If a realtime feature looks stuck, copy it into the issue \u2014 it contains no credentials.`)}catch{}}var mne={fetch:(t,e)=>fetch(t,e)},Ene=5e3;function _ne(t){return`${t.replace(/\/+$/,"")}/operations/getProjectConfig`}function Tne(t,e){return y(this,null,function*(){let n=typeof AbortController<"u"?new AbortController:null,r,i=new Promise(o=>{r=setTimeout(()=>{try{n?.abort()}catch{}o(null)},Ene)});try{return yield Promise.race([mne.fetch(t,n?me(B({},e),{signal:n.signal}):e),i])}finally{r!==void 0&&clearTimeout(r)}})}function MN(t){return y(this,null,function*(){let{apiEndpoint:e,token:n}=t;if(!e||!n)return null;if(!zc(e))return console.error(`Velt [portable backend]: refusing to send the session token to an insecure apiEndpoint (${e}). Project config was not read; https is required (http is allowed on loopback only).`),null;try{let r=yield Tne(_ne(e),{method:"POST",headers:{Authorization:`Bearer ${n}`,"Content-Type":"application/json"},body:JSON.stringify({})});if(!r)return null;let i=yield r.json();return!i||i.ok!==!0||!i.data?null:{isPrivateCommentsEnabled:i.data.isPrivateCommentsEnabled===!0,activityConfig:i.data.activityConfig??null}}catch{return null}})}function LN(t,e,n){return t.userSnippylyId!==e?.userSnippylyId||e?.groupId!==t.groupId||e?.organizationId!==t.organizationId||!!n?.forceReset}function PN(t,e){let{provided:n,resolved:r}=e;return t.name=r?r?.name:n?.name||t.name,t.clientUserName=r?r?.clientUserName:n?.clientUserName||t.clientUserName,t.photoUrl=r?r?.photoUrl:n?.photoUrl||t.photoUrl,t?.photoUrl===void 0&&(t.photoUrl=null),t.email=r?r?.email:n?.email||t.email,t.color=r?.color||n?.color||e.avatarColor(t.userId),t.textColor=r?.textColor||n?.textColor||e.textColor(t.userId),t.initial=r?.initial||n?.initial||t.initial||t.name?.charAt(0).toUpperCase()||t.email?.charAt(0).toUpperCase(),t.contacts=n?.contacts||t.contacts,t.plan=n?.plan||t.plan,t.groupId=n?.groupId||t.groupId,t.clientGroupId=n?.clientGroupId||t.clientGroupId,t.clientOrganizationId=n?.clientOrganizationId||t.clientOrganizationId,t.organizationId=n?.organizationId||t.organizationId,t.isAdmin=n?.isAdmin,t.isReadOnly=n?.isReadOnly,t.isAnonymous=n?.isAnonymous,t.isGuest=n?.isGuest,t}var yne=["unauthenticated","permission-denied","not-found","invalid-argument","failed-precondition","resource-exhausted"],n2=[...yne,"unimplemented"];function r2(t){return!!t&&t.backend==="portable"&&typeof t.wsEndpoint=="string"&&typeof t.apiEndpoint=="string"}var jke="getaccess-any-user",Hke="ordered-deltas",$ke="doc-notification-views",Wke="fetch-folders-include-children",zke="notification-timestamp-by-document",qke="per-editor-crdt-fold",Kke="attachments";var dy={import:()=>import("./velt-portable.js")},Tr=null,bp=!1;function i2(t){if(Tr)Tr=Tr.then(()=>dy.import().then(e=>{bp=!0,e.default(t)})).catch(e=>{M.catch("Error re-establishing portable session after re-identify: ",e)});else{let e=dy.import().then(n=>{bp=!0,n.default(t)}).catch(n=>{Tr===e&&(Tr=null),bp=!1,console.warn("Velt [portable backend]: failed to load the portable transport chunk (velt-portable.js). Portable features are disabled for this page load.",n)});Tr=e}return Tr}function o2(){Tr&&(Tr=Tr.then(()=>bp?dy.import().then(t=>{t.teardownPortableBackend()}):void 0).catch(t=>{M.catch("Error tearing down portable backend session: ",t)}))}function s2(){Tr&&(Tr=Tr.then(()=>bp?dy.import().then(t=>{t.checkPortableBackendLiveness?.()}):void 0).catch(t=>{M.catch("Error checking portable backend liveness: ",t)}))}var a2=(()=>{let e=class e{constructor(r){this.loggingService=r,this.initLocalStorageData()}initLocalStorageData(){this.loggingService.log("%c[WB] Calling FUNCTION: initLocalStorageData","color: green;"),this.getLocalStorageData(),this.getSessionStorageData()}getLocalStorageData(){this.loggingService.log("%c[WB] Calling FUNCTION: getLocalStorageData","color: green;");try{let r=localStorage?.getItem(F.LOCALSTORAGE_DATA_ID);if(r)return JSON.parse(r);{let i=new bc;return this.setLocalStorageData(i),i}}catch(r){return this.loggingService.catch("Error in getLocalStorageData:",r),new bc}}setLocalStorageData(r){this.loggingService.log("%c[WB] Calling FUNCTION: setLocalStorageData","color: green;");try{if(r){let i=JSON.stringify(r);localStorage?.setItem(F.LOCALSTORAGE_DATA_ID,i)}}catch(i){this.loggingService.catch("Error in setLocalStorageData:",i)}}deleteLocalStorageData(){this.loggingService.log("%c[WB] Calling FUNCTION: deleteLocalStorageData","color: green;"),localStorage?.removeItem(F.LOCALSTORAGE_DATA_ID)}getSessionStorageData(){this.loggingService.log("%c[WB] Calling FUNCTION: getSessionStorageData","color: green;");try{let r=sessionStorage?.getItem(F.LOCALSTORAGE_DATA_ID);if(r)return JSON.parse(r);{let i=new bc;return this.setSessionStorageData(i),i}}catch(r){return this.loggingService.catch("Error in getSessionStorageData:",r),new bc}}setSessionStorageData(r){this.loggingService.log("%c[WB] Calling FUNCTION: setSessionStorageData","color: green;");try{if(r){let i=JSON.stringify(r);sessionStorage?.setItem(F.LOCALSTORAGE_DATA_ID,i)}}catch(i){this.loggingService.catch("Error in setSessionStorageData:",i)}}deleteSessionStorageData(){this.loggingService.log("%c[WB] Calling FUNCTION: deleteSessionStorageData","color: green;");try{sessionStorage?.removeItem(F.LOCALSTORAGE_DATA_ID)}catch(r){this.loggingService.catch("Error in deleteSessionStorageData:",r)}}};e.\u0275fac=function(i){return new(i||e)($(bt))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();var c2=(()=>{let e=class e{constructor(r,i){this.localStorageService=r,this.loggingService=i,this.avatarList=[{userId:"1",name:"Bear",photoUrl:"https://snippyly.com/assets/avatars/avatar-bear.svg",type:"anonymous"},{userId:"2",name:"Beaver",photoUrl:"https://snippyly.com/assets/avatars/avatar-beaver.svg",type:"anonymous"},{userId:"3",name:"Bunny",photoUrl:"https://snippyly.com/assets/avatars/avatar-bunny.svg",type:"anonymous"},{userId:"4",name:"Cat",photoUrl:"https://snippyly.com/assets/avatars/avatar-cat.svg",type:"anonymous"},{userId:"5",name:"Cow",photoUrl:"https://snippyly.com/assets/avatars/avatar-cow.svg",type:"anonymous"},{userId:"6",name:"Dinosaur",photoUrl:"https://snippyly.com/assets/avatars/avatar-dinosaur.svg",type:"anonymous"},{userId:"7",name:"Elephant",photoUrl:"https://snippyly.com/assets/avatars/avatar-elephant.svg",type:"anonymous"},{userId:"8",name:"Monkey",photoUrl:"https://snippyly.com/assets/avatars/avatar-monkey.svg",type:"anonymous"},{userId:"9",name:"Hedgehog",photoUrl:"https://snippyly.com/assets/avatars/avatar-hedgehog.svg",type:"anonymous"},{userId:"10",name:"Hippo",photoUrl:"https://snippyly.com/assets/avatars/avatar-hippo.svg",type:"anonymous"},{userId:"11",name:"Horse",photoUrl:"https://snippyly.com/assets/avatars/avatar-horse.svg",type:"anonymous"},{userId:"12",name:"Kitten",photoUrl:"https://snippyly.com/assets/avatars/avatar-kitten.svg",type:"anonymous"},{userId:"13",name:"Octopus",photoUrl:"https://snippyly.com/assets/avatars/avatar-octopus.svg",type:"anonymous"},{userId:"14",name:"Oink",photoUrl:"https://snippyly.com/assets/avatars/avatar-oink.svg",type:"anonymous"},{userId:"15",name:"Panda",photoUrl:"https://snippyly.com/assets/avatars/avatar-panda.svg",type:"anonymous"},{userId:"16",name:"Penguin",photoUrl:"https://snippyly.com/assets/avatars/avatar-penguin.svg",type:"anonymous"},{userId:"17",name:"Rabbit",photoUrl:"https://snippyly.com/assets/avatars/avatar-rabbit.svg",type:"anonymous"},{userId:"18",name:"Tiger",photoUrl:"https://snippyly.com/assets/avatars/avatar-tiger.svg",type:"anonymous"}],this.loggingService.log("%c[WB] Creating SERVICE AvatarService","color: blue;")}getSessionAvatar(){this.loggingService.log("%c[WB] Calling FUNCTION: getSessionAvatar","color: green;");try{let r=new zi,i=this.localStorageService.getSessionStorageData();if(i.snippylyAvatar)r=i.snippylyAvatar;else{let o=this.generateUserAvatar();i.snippylyAvatar=o,this.localStorageService.setSessionStorageData(i)}return r}catch(r){return this.loggingService.catch("Error in getSessionAvatar:",r),new zi}}generateUserAvatar(){this.loggingService.log("%c[WB] Calling FUNCTION: generateUserAvatar","color: green;");try{let r=Math.floor(Math.random()*this.avatarList.length),i=this.avatarList[r];return i.color=this.generateUserColor(),i}catch(r){return this.loggingService.catch("Error in generateUserAvatar:",r),this.avatarList[0]}}generateUserColor(r){this.loggingService.log("%c[WB] Calling FUNCTION: generateUserColor","color: green;");try{if(r)return F.AVATAR_COLOR_LIST[r%F.AVATAR_COLOR_LIST.length];let i=Math.floor(Math.random()*F.AVATAR_COLOR_LIST.length);return F.AVATAR_COLOR_LIST[i]}catch(i){return this.loggingService.catch("Error in generateUserColor:",i),""}}generateUserImage(){this.loggingService.log("%c[WB] Calling FUNCTION: generateUserImage","color: green;");try{return this.getSessionAvatar().photoUrl}catch(r){return this.loggingService.catch("Error in generateUserImage:",r),""}}};e.\u0275fac=function(i){return new(i||e)($(a2),$(bt))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();var l2=(()=>{let e=class e{constructor(r){this.loggingService=r,this.actionSubjects=new Map,this.subscriptions=[]}triggerAction(r,i){try{this.actionSubjects.has(r)||this.actionSubjects.set(r,new Rt),this.actionSubjects.get(r)?.next(i)}catch(o){this.loggingService.catch("Error in CoreActionsService triggerAction: ",o)}}onAction(r){try{this.actionSubjects.has(r)||this.actionSubjects.set(r,new Rt);let i=this.actionSubjects.get(r);return i?i.asObservable():lt(null)}catch(i){return this.loggingService.catch("Error in CoreActionsService onAction: ",i),lt(null)}}};e.\u0275fac=function(i){return new(i||e)($(bt))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();function u2(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n<e;n++)r[n]=t[n];return r}function Ane(t){if(Array.isArray(t))return t}function Cne(t,e){var n=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(n!=null){var r,i,o,s,a=[],c=!0,l=!1;try{if(o=(n=n.call(t)).next,e!==0)for(;!(c=(r=o.call(n)).done)&&(a.push(r.value),a.length!==e);c=!0);}catch(d){l=!0,i=d}finally{try{if(!c&&n.return!=null&&(s=n.return(),Object(s)!==s))return}finally{if(l)throw i}}return a}}function Dne(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
148
|
+
This block prints once per distinct problem. If a realtime feature looks stuck, copy it into the issue \u2014 it contains no credentials.`)}catch{}}var mne={fetch:(t,e)=>fetch(t,e)},Ene=5e3;function _ne(t){return`${t.replace(/\/+$/,"")}/operations/getProjectConfig`}function Tne(t,e){return y(this,null,function*(){let n=typeof AbortController<"u"?new AbortController:null,r,i=new Promise(o=>{r=setTimeout(()=>{try{n?.abort()}catch{}o(null)},Ene)});try{return yield Promise.race([mne.fetch(t,n?me(B({},e),{signal:n.signal}):e),i])}finally{r!==void 0&&clearTimeout(r)}})}function MN(t){return y(this,null,function*(){let{apiEndpoint:e,token:n}=t;if(!e||!n)return null;if(!zc(e))return console.error(`Velt [portable backend]: refusing to send the session token to an insecure apiEndpoint (${e}). Project config was not read; https is required (http is allowed on loopback only).`),null;try{let r=yield Tne(_ne(e),{method:"POST",headers:{Authorization:`Bearer ${n}`,"Content-Type":"application/json"},body:JSON.stringify({})});if(!r)return null;let i=yield r.json();return!i||i.ok!==!0||!i.data?null:{isPrivateCommentsEnabled:i.data.isPrivateCommentsEnabled===!0,activityConfig:i.data.activityConfig??null}}catch{return null}})}function LN(t,e,n){return t.userSnippylyId!==e?.userSnippylyId||e?.groupId!==t.groupId||e?.organizationId!==t.organizationId||!!n?.forceReset}function PN(t,e){let{provided:n,resolved:r}=e;return t.name=r?r?.name:n?.name||t.name,t.clientUserName=r?r?.clientUserName:n?.clientUserName||t.clientUserName,t.photoUrl=r?r?.photoUrl:n?.photoUrl||t.photoUrl,t?.photoUrl===void 0&&(t.photoUrl=null),t.email=r?r?.email:n?.email||t.email,t.color=r?.color||n?.color||e.avatarColor(t.userId),t.textColor=r?.textColor||n?.textColor||e.textColor(t.userId),t.initial=r?.initial||n?.initial||t.initial||t.name?.charAt(0).toUpperCase()||t.email?.charAt(0).toUpperCase(),t.contacts=n?.contacts||t.contacts,t.plan=n?.plan||t.plan,t.groupId=n?.groupId||t.groupId,t.clientGroupId=n?.clientGroupId||t.clientGroupId,t.clientOrganizationId=n?.clientOrganizationId||t.clientOrganizationId,t.organizationId=n?.organizationId||t.organizationId,t.isAdmin=n?.isAdmin,t.isReadOnly=n?.isReadOnly,t.isAnonymous=n?.isAnonymous,t.isGuest=n?.isGuest,t}var yne=["unauthenticated","permission-denied","not-found","invalid-argument","failed-precondition","resource-exhausted"],n2=[...yne,"unimplemented"];function r2(t){return!!t&&t.backend==="portable"&&typeof t.wsEndpoint=="string"&&typeof t.apiEndpoint=="string"}var jke="getaccess-any-user",Hke="ordered-deltas",$ke="doc-notification-views",Wke="fetch-folders-include-children",zke="notification-timestamp-by-document",qke="per-editor-crdt-fold",Kke="attachments",Yke="comment-views-updated-at";var dy={import:()=>import("./velt-portable.js")},Tr=null,bp=!1;function i2(t){if(Tr)Tr=Tr.then(()=>dy.import().then(e=>{bp=!0,e.default(t)})).catch(e=>{M.catch("Error re-establishing portable session after re-identify: ",e)});else{let e=dy.import().then(n=>{bp=!0,n.default(t)}).catch(n=>{Tr===e&&(Tr=null),bp=!1,console.warn("Velt [portable backend]: failed to load the portable transport chunk (velt-portable.js). Portable features are disabled for this page load.",n)});Tr=e}return Tr}function o2(){Tr&&(Tr=Tr.then(()=>bp?dy.import().then(t=>{t.teardownPortableBackend()}):void 0).catch(t=>{M.catch("Error tearing down portable backend session: ",t)}))}function s2(){Tr&&(Tr=Tr.then(()=>bp?dy.import().then(t=>{t.checkPortableBackendLiveness?.()}):void 0).catch(t=>{M.catch("Error checking portable backend liveness: ",t)}))}var a2=(()=>{let e=class e{constructor(r){this.loggingService=r,this.initLocalStorageData()}initLocalStorageData(){this.loggingService.log("%c[WB] Calling FUNCTION: initLocalStorageData","color: green;"),this.getLocalStorageData(),this.getSessionStorageData()}getLocalStorageData(){this.loggingService.log("%c[WB] Calling FUNCTION: getLocalStorageData","color: green;");try{let r=localStorage?.getItem(F.LOCALSTORAGE_DATA_ID);if(r)return JSON.parse(r);{let i=new bc;return this.setLocalStorageData(i),i}}catch(r){return this.loggingService.catch("Error in getLocalStorageData:",r),new bc}}setLocalStorageData(r){this.loggingService.log("%c[WB] Calling FUNCTION: setLocalStorageData","color: green;");try{if(r){let i=JSON.stringify(r);localStorage?.setItem(F.LOCALSTORAGE_DATA_ID,i)}}catch(i){this.loggingService.catch("Error in setLocalStorageData:",i)}}deleteLocalStorageData(){this.loggingService.log("%c[WB] Calling FUNCTION: deleteLocalStorageData","color: green;"),localStorage?.removeItem(F.LOCALSTORAGE_DATA_ID)}getSessionStorageData(){this.loggingService.log("%c[WB] Calling FUNCTION: getSessionStorageData","color: green;");try{let r=sessionStorage?.getItem(F.LOCALSTORAGE_DATA_ID);if(r)return JSON.parse(r);{let i=new bc;return this.setSessionStorageData(i),i}}catch(r){return this.loggingService.catch("Error in getSessionStorageData:",r),new bc}}setSessionStorageData(r){this.loggingService.log("%c[WB] Calling FUNCTION: setSessionStorageData","color: green;");try{if(r){let i=JSON.stringify(r);sessionStorage?.setItem(F.LOCALSTORAGE_DATA_ID,i)}}catch(i){this.loggingService.catch("Error in setSessionStorageData:",i)}}deleteSessionStorageData(){this.loggingService.log("%c[WB] Calling FUNCTION: deleteSessionStorageData","color: green;");try{sessionStorage?.removeItem(F.LOCALSTORAGE_DATA_ID)}catch(r){this.loggingService.catch("Error in deleteSessionStorageData:",r)}}};e.\u0275fac=function(i){return new(i||e)($(bt))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();var c2=(()=>{let e=class e{constructor(r,i){this.localStorageService=r,this.loggingService=i,this.avatarList=[{userId:"1",name:"Bear",photoUrl:"https://snippyly.com/assets/avatars/avatar-bear.svg",type:"anonymous"},{userId:"2",name:"Beaver",photoUrl:"https://snippyly.com/assets/avatars/avatar-beaver.svg",type:"anonymous"},{userId:"3",name:"Bunny",photoUrl:"https://snippyly.com/assets/avatars/avatar-bunny.svg",type:"anonymous"},{userId:"4",name:"Cat",photoUrl:"https://snippyly.com/assets/avatars/avatar-cat.svg",type:"anonymous"},{userId:"5",name:"Cow",photoUrl:"https://snippyly.com/assets/avatars/avatar-cow.svg",type:"anonymous"},{userId:"6",name:"Dinosaur",photoUrl:"https://snippyly.com/assets/avatars/avatar-dinosaur.svg",type:"anonymous"},{userId:"7",name:"Elephant",photoUrl:"https://snippyly.com/assets/avatars/avatar-elephant.svg",type:"anonymous"},{userId:"8",name:"Monkey",photoUrl:"https://snippyly.com/assets/avatars/avatar-monkey.svg",type:"anonymous"},{userId:"9",name:"Hedgehog",photoUrl:"https://snippyly.com/assets/avatars/avatar-hedgehog.svg",type:"anonymous"},{userId:"10",name:"Hippo",photoUrl:"https://snippyly.com/assets/avatars/avatar-hippo.svg",type:"anonymous"},{userId:"11",name:"Horse",photoUrl:"https://snippyly.com/assets/avatars/avatar-horse.svg",type:"anonymous"},{userId:"12",name:"Kitten",photoUrl:"https://snippyly.com/assets/avatars/avatar-kitten.svg",type:"anonymous"},{userId:"13",name:"Octopus",photoUrl:"https://snippyly.com/assets/avatars/avatar-octopus.svg",type:"anonymous"},{userId:"14",name:"Oink",photoUrl:"https://snippyly.com/assets/avatars/avatar-oink.svg",type:"anonymous"},{userId:"15",name:"Panda",photoUrl:"https://snippyly.com/assets/avatars/avatar-panda.svg",type:"anonymous"},{userId:"16",name:"Penguin",photoUrl:"https://snippyly.com/assets/avatars/avatar-penguin.svg",type:"anonymous"},{userId:"17",name:"Rabbit",photoUrl:"https://snippyly.com/assets/avatars/avatar-rabbit.svg",type:"anonymous"},{userId:"18",name:"Tiger",photoUrl:"https://snippyly.com/assets/avatars/avatar-tiger.svg",type:"anonymous"}],this.loggingService.log("%c[WB] Creating SERVICE AvatarService","color: blue;")}getSessionAvatar(){this.loggingService.log("%c[WB] Calling FUNCTION: getSessionAvatar","color: green;");try{let r=new zi,i=this.localStorageService.getSessionStorageData();if(i.snippylyAvatar)r=i.snippylyAvatar;else{let o=this.generateUserAvatar();i.snippylyAvatar=o,this.localStorageService.setSessionStorageData(i)}return r}catch(r){return this.loggingService.catch("Error in getSessionAvatar:",r),new zi}}generateUserAvatar(){this.loggingService.log("%c[WB] Calling FUNCTION: generateUserAvatar","color: green;");try{let r=Math.floor(Math.random()*this.avatarList.length),i=this.avatarList[r];return i.color=this.generateUserColor(),i}catch(r){return this.loggingService.catch("Error in generateUserAvatar:",r),this.avatarList[0]}}generateUserColor(r){this.loggingService.log("%c[WB] Calling FUNCTION: generateUserColor","color: green;");try{if(r)return F.AVATAR_COLOR_LIST[r%F.AVATAR_COLOR_LIST.length];let i=Math.floor(Math.random()*F.AVATAR_COLOR_LIST.length);return F.AVATAR_COLOR_LIST[i]}catch(i){return this.loggingService.catch("Error in generateUserColor:",i),""}}generateUserImage(){this.loggingService.log("%c[WB] Calling FUNCTION: generateUserImage","color: green;");try{return this.getSessionAvatar().photoUrl}catch(r){return this.loggingService.catch("Error in generateUserImage:",r),""}}};e.\u0275fac=function(i){return new(i||e)($(a2),$(bt))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();var l2=(()=>{let e=class e{constructor(r){this.loggingService=r,this.actionSubjects=new Map,this.subscriptions=[]}triggerAction(r,i){try{this.actionSubjects.has(r)||this.actionSubjects.set(r,new Rt),this.actionSubjects.get(r)?.next(i)}catch(o){this.loggingService.catch("Error in CoreActionsService triggerAction: ",o)}}onAction(r){try{this.actionSubjects.has(r)||this.actionSubjects.set(r,new Rt);let i=this.actionSubjects.get(r);return i?i.asObservable():lt(null)}catch(i){return this.loggingService.catch("Error in CoreActionsService onAction: ",i),lt(null)}}};e.\u0275fac=function(i){return new(i||e)($(bt))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();function u2(t,e){(e==null||e>t.length)&&(e=t.length);for(var n=0,r=Array(e);n<e;n++)r[n]=t[n];return r}function Ane(t){if(Array.isArray(t))return t}function Cne(t,e){var n=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(n!=null){var r,i,o,s,a=[],c=!0,l=!1;try{if(o=(n=n.call(t)).next,e!==0)for(;!(c=(r=o.call(n)).done)&&(a.push(r.value),a.length!==e);c=!0);}catch(d){l=!0,i=d}finally{try{if(!c&&n.return!=null&&(s=n.return(),Object(s)!==s))return}finally{if(l)throw i}}return a}}function Dne(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
149
149
|
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Rne(t,e){return Ane(t)||Cne(t,e)||Nne(t,e)||Dne()}function Nne(t,e){if(t){if(typeof t=="string")return u2(t,e);var n={}.toString.call(t).slice(8,-1);return n==="Object"&&t.constructor&&(n=t.constructor.name),n==="Map"||n==="Set"?Array.from(t):n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?u2(t,e):void 0}}var C2=Object.entries,d2=Object.setPrototypeOf,wne=Object.isFrozen,bne=Object.getPrototypeOf,One=Object.getOwnPropertyDescriptor,Qt=Object.freeze,ln=Object.seal,md=Object.create,D2=typeof Reflect<"u"&&Reflect,GN=D2.apply,jN=D2.construct;Qt||(Qt=function(e){return e});ln||(ln=function(e){return e});GN||(GN=function(e,n){for(var r=arguments.length,i=new Array(r>2?r-2:0),o=2;o<r;o++)i[o-2]=arguments[o];return e.apply(n,i)});jN||(jN=function(e){for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return new e(...r)});var Yc=kt(Array.prototype.forEach),Mne=kt(Array.prototype.lastIndexOf),h2=kt(Array.prototype.pop),Op=kt(Array.prototype.push),Lne=kt(Array.prototype.splice),Ed=Array.isArray,Pp=kt(String.prototype.toLowerCase),xN=kt(String.prototype.toString),f2=kt(String.prototype.match),Mp=kt(String.prototype.replace),p2=kt(String.prototype.indexOf),Pne=kt(String.prototype.trim),xne=kt(Number.prototype.toString),kne=kt(Boolean.prototype.toString),g2=typeof BigInt>"u"?null:kt(BigInt.prototype.toString),m2=typeof Symbol>"u"?null:kt(Symbol.prototype.toString),nr=kt(Object.prototype.hasOwnProperty),Lp=kt(Object.prototype.toString),Pn=kt(RegExp.prototype.test),Kc=Fne(TypeError);function kt(t){return function(e){e instanceof RegExp&&(e.lastIndex=0);for(var n=arguments.length,r=new Array(n>1?n-1:0),i=1;i<n;i++)r[i-1]=arguments[i];return GN(t,e,r)}}function Fne(t){return function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return jN(t,n)}}function xe(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Pp;if(d2&&d2(t,null),!Ed(e))return t;let r=e.length;for(;r--;){let i=e[r];if(typeof i=="string"){let o=n(i);o!==i&&(wne(e)||(e[r]=o),i=o)}t[i]=!0}return t}function Une(t){for(let e=0;e<t.length;e++)nr(t,e)||(t[e]=null);return t}function Ir(t){let e=md(null);for(let r of C2(t)){var n=Rne(r,2);let i=n[0],o=n[1];nr(t,i)&&(Ed(o)?e[i]=Une(o):o&&typeof o=="object"&&o.constructor===Object?e[i]=Ir(o):e[i]=o)}return e}function Vne(t){switch(typeof t){case"string":return t;case"number":return xne(t);case"boolean":return kne(t);case"bigint":return g2?g2(t):"0";case"symbol":return m2?m2(t):"Symbol()";case"undefined":return Lp(t);case"function":case"object":{if(t===null)return Lp(t);let e=t,n=Gr(e,"toString");if(typeof n=="function"){let r=n(e);return typeof r=="string"?r:Lp(r)}return Lp(t)}default:return Lp(t)}}function Gr(t,e){for(;t!==null;){let r=One(t,e);if(r){if(r.get)return kt(r.get);if(typeof r.value=="function")return kt(r.value)}t=bne(t)}function n(){return null}return n}function Bne(t){try{return Pn(t,""),!0}catch{return!1}}var E2=Qt(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","search","section","select","shadow","slot","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),kN=Qt(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","enterkeyhint","exportparts","filter","font","g","glyph","glyphref","hkern","image","inputmode","line","lineargradient","marker","mask","metadata","mpath","part","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),FN=Qt(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),Gne=Qt(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),UN=Qt(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),jne=Qt(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),_2=Qt(["#text"]),T2=Qt(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","command","commandfor","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","exportparts","face","for","headers","height","hidden","high","href","hreflang","id","inert","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","part","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","slot","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns"]),VN=Qt(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dominant-baseline","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","mask-type","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","pointer-events","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-orientation","text-rendering","textlength","type","u1","u2","unicode","values","vector-effect","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),y2=Qt(["accent","accentunder","align","bevelled","close","columnalign","columnlines","columnspacing","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lquote","lspace","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),hy=Qt(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),Hne=ln(/{{[\w\W]*|^[\w\W]*}}/g),$ne=ln(/<%[\w\W]*|^[\w\W]*%>/g),Wne=ln(/\${[\w\W]*/g),zne=ln(/^data-[\-\w.\u00B7-\uFFFF]+$/),qne=ln(/^aria-[\-\w]+$/),I2=ln(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),Kne=ln(/^(?:\w+script|data):/i),Yne=ln(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Xne=ln(/^html$/i),Qne=ln(/^[a-z][.\w]*(-[.\w]+)+$/i),v2=ln(/<[/\w!]/g),S2=ln(/<[/\w]/g),Jne=ln(/<\/no(script|embed|frames)/i),Zne=ln(/\/>/i),yr={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,processingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},R2=["style","script","xmp","iframe","noembed","noframes","plaintext","noscript"],ere=Qt(xe({},R2)),tre=(function(){let t={};return Yc(R2,e=>{t[e]=ln(new RegExp("</"+e+"(?=[\\t\\n\\f\\r />])","i"))}),Qt(t)})(),nre=function(){return typeof window>"u"?null:window},rre=function(e,n){if(typeof e!="object"||typeof e.createPolicy!="function")return null;let r=null,i="data-tt-policy-suffix";n&&n.hasAttribute(i)&&(r=n.getAttribute(i));let o="dompurify"+(r?"#"+r:"");try{return e.createPolicy(o,{createHTML(s){return s},createScriptURL(s){return s}})}catch{return console.warn("TrustedTypes policy "+o+" could not be created."),null}},A2=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},Ks=function(e,n,r,i){return nr(e,n)&&Ed(e[n])?xe(i.base?Ir(i.base):{},e[n],i.transform):r},BN=function(e,n,r){let i=nr(e,n)?e[n]:void 0;return i&&typeof i=="object"?Ir(i):r()};function N2(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:nre(),e=W=>N2(W);if(e.version="3.4.15",e.removed=[],!t||!t.document||t.document.nodeType!==yr.document||!t.Element)return e.isSupported=!1,e;let n=t.document,r=n,i=r.currentScript;t.DocumentFragment;let o=t.HTMLTemplateElement,s=t.Node,a=t.Element,c=t.NodeFilter,l=t.NamedNodeMap;l===void 0&&(t.NamedNodeMap||t.MozNamedAttrMap),t.HTMLFormElement;let d=t.DOMParser,h=t.trustedTypes,f=a.prototype,g=Gr(f,"cloneNode"),E=Gr(f,"remove"),I=Gr(f,"removeAttributeNode"),S=Gr(f,"nextSibling"),L=Gr(f,"childNodes"),V=Gr(f,"parentNode"),K=Gr(f,"shadowRoot"),oe=Gr(f,"attributes"),ge=s&&s.prototype?Gr(s.prototype,"nodeType"):null,te=s&&s.prototype?Gr(s.prototype,"nodeName"):null,C=s&&s.prototype?Gr(s.prototype,"ownerDocument"):null,v=function(T){return ge?ge(T):T.nodeType},A=function(T){return te?te(T):T.nodeName};if(typeof o=="function"){let W=n.createElement("template");W.content&&W.content.ownerDocument&&(n=W.content.ownerDocument)}let R,N="",O,D=!1,Vn=0,es=function(){if(Vn>0)throw Kc('A configured TRUSTED_TYPES_POLICY callback (createHTML or createScriptURL) must not call DOMPurify.sanitize, as that causes infinite recursion. Do not pass a policy whose callbacks wrap DOMPurify as TRUSTED_TYPES_POLICY; see the "DOMPurify and Trusted Types" section of the README.')},ts=function(T){es(),Vn++;try{return R.createHTML(T)}finally{Vn--}},Da=function(T){es(),Vn++;try{return R.createScriptURL(T)}finally{Vn--}},Ra=function(){return D||(O=rre(h,i),D=!0),O},ns=n,Ul=ns.implementation,hm=ns.createNodeIterator,_i=ns.createDocumentFragment,nn=ns.getElementsByTagName,kv=r.importNode,He=A2();e.isSupported=typeof C2=="function"&&typeof V=="function"&&Ul&&Ul.createHTMLDocument!==void 0;let Fv=Hne,Na=$ne,Uv=Wne,Vv=zne,Vl=qne,Bl=Kne,Gl=Yne,wh=Qne,jl=I2,Je=null,Hl=xe({},[...E2,...kN,...FN,...UN,..._2]),rt=null,bh=xe({},[...T2,...VN,...y2,...hy]),sr=Object.seal(md(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),rs=null,$l=null,Wr=Object.seal(md(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),fm=!0,wa=!0,Wl=!1,zl=!0,dt=!1,yt=!0,wr=!1,ql=!1,ba=null,Kl=null,co=!1,lo=!1,Oa=!1,is=!1,pm=!0,gm=!1,Yl="user-content-",Xl=!0,Ql=!1,br={},Ti=null,Jl=xe({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","selectedcontent","style","svg","template","thead","title","video","xmp"]),yi=null,Oh=xe({},["audio","video","img","source","image","track"]),Ma=null,Mh=xe({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Ii="http://www.w3.org/1998/Math/MathML",La="http://www.w3.org/2000/svg",ct="http://www.w3.org/1999/xhtml",uo=ct,ho=!1,fo=null,Bv=xe({},[Ii,La,ct],xN),mm=Qt(["mi","mo","mn","ms","mtext"]),vi=xe({},mm),Em=Qt(["annotation-xml"]),Lh=xe({},Em),Zl=xe({},["title","style","font","a","script"]),os=null,Ph=["application/xhtml+xml","text/html"],eu="text/html",$e=null,po=null,_m=n.createElement("form"),tu=function(T){return T instanceof RegExp||T instanceof Function},Pa=function(){let T=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(po&&po===T)return;(!T||typeof T!="object")&&(T={}),T=Ir(T),os=Ph.indexOf(T.PARSER_MEDIA_TYPE)===-1?eu:T.PARSER_MEDIA_TYPE,$e=os==="application/xhtml+xml"?xN:Pp,Je=Ks(T,"ALLOWED_TAGS",Hl,{transform:$e}),rt=Ks(T,"ALLOWED_ATTR",bh,{transform:$e}),fo=Ks(T,"ALLOWED_NAMESPACES",Bv,{transform:xN}),Ma=Ks(T,"ADD_URI_SAFE_ATTR",Mh,{transform:$e,base:Mh}),yi=Ks(T,"ADD_DATA_URI_TAGS",Oh,{transform:$e,base:Oh}),Ti=Ks(T,"FORBID_CONTENTS",Jl,{transform:$e}),rs=Ks(T,"FORBID_TAGS",Ir({}),{transform:$e}),$l=Ks(T,"FORBID_ATTR",Ir({}),{transform:$e}),br=nr(T,"USE_PROFILES")?T.USE_PROFILES&&typeof T.USE_PROFILES=="object"?Ir(T.USE_PROFILES):T.USE_PROFILES:!1,fm=T.ALLOW_ARIA_ATTR!==!1,wa=T.ALLOW_DATA_ATTR!==!1,Wl=T.ALLOW_UNKNOWN_PROTOCOLS||!1,zl=T.ALLOW_SELF_CLOSE_IN_ATTR!==!1,dt=T.SAFE_FOR_TEMPLATES||!1,yt=T.SAFE_FOR_XML!==!1,wr=T.WHOLE_DOCUMENT||!1,lo=T.RETURN_DOM||!1,Oa=T.RETURN_DOM_FRAGMENT||!1,is=T.RETURN_TRUSTED_TYPE||!1,co=T.FORCE_BODY||!1,pm=T.SANITIZE_DOM!==!1,gm=T.SANITIZE_NAMED_PROPS||!1,Xl=T.KEEP_CONTENT!==!1,Ql=T.IN_PLACE||!1,jl=Bne(T.ALLOWED_URI_REGEXP)?T.ALLOWED_URI_REGEXP:I2,uo=typeof T.NAMESPACE=="string"?T.NAMESPACE:ct,vi=BN(T,"MATHML_TEXT_INTEGRATION_POINTS",()=>xe({},mm)),Lh=BN(T,"HTML_INTEGRATION_POINTS",()=>xe({},Em));let w=BN(T,"CUSTOM_ELEMENT_HANDLING",()=>md(null));if(sr=md(null),nr(w,"tagNameCheck")&&tu(w.tagNameCheck)&&(sr.tagNameCheck=w.tagNameCheck),nr(w,"attributeNameCheck")&&tu(w.attributeNameCheck)&&(sr.attributeNameCheck=w.attributeNameCheck),nr(w,"allowCustomizedBuiltInElements")&&typeof w.allowCustomizedBuiltInElements=="boolean"&&(sr.allowCustomizedBuiltInElements=w.allowCustomizedBuiltInElements),ln(sr),dt&&(wa=!1),Oa&&(lo=!0),br&&(Je=xe({},_2),rt=md(null),br.html===!0&&(xe(Je,E2),xe(rt,T2)),br.svg===!0&&(xe(Je,kN),xe(rt,VN),xe(rt,hy)),br.svgFilters===!0&&(xe(Je,FN),xe(rt,VN),xe(rt,hy)),br.mathMl===!0&&(xe(Je,UN),xe(rt,y2),xe(rt,hy))),Wr.tagCheck=null,Wr.attributeCheck=null,nr(T,"ADD_TAGS")&&(typeof T.ADD_TAGS=="function"?Wr.tagCheck=T.ADD_TAGS:Ed(T.ADD_TAGS)&&(Je===Hl&&(Je=Ir(Je)),xe(Je,T.ADD_TAGS,$e))),nr(T,"ADD_ATTR")&&(typeof T.ADD_ATTR=="function"?Wr.attributeCheck=T.ADD_ATTR:Ed(T.ADD_ATTR)&&(rt===bh&&(rt=Ir(rt)),xe(rt,T.ADD_ATTR,$e))),nr(T,"ADD_FORBID_CONTENTS")&&Ed(T.ADD_FORBID_CONTENTS)&&(Ti===Jl&&(Ti=Ir(Ti)),xe(Ti,T.ADD_FORBID_CONTENTS,$e)),Xl&&(Je["#text"]=!0),wr&&xe(Je,["html","head","body"]),Je.table&&(xe(Je,["tbody"]),delete rs.tbody),T.TRUSTED_TYPES_POLICY){if(typeof T.TRUSTED_TYPES_POLICY.createHTML!="function")throw Kc('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof T.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw Kc('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');let G=R;R=T.TRUSTED_TYPES_POLICY;try{N=ts("")}catch(ee){throw R=G,ee}}else T.TRUSTED_TYPES_POLICY===null?(R=void 0,N=""):(R===void 0&&(R=Ra()),R&&typeof N=="string"&&(N=ts("")));Qt&&Qt(T),po=T},xh=xe({},[...kN,...FN,...Gne]),kh=xe({},[...UN,...jne]),Gv=function(T,w,G){return w.namespaceURI===ct?T==="svg":w.namespaceURI===Ii?T==="svg"&&(G==="annotation-xml"||vi[G]):!!xh[T]},nu=function(T,w,G){return w.namespaceURI===ct?T==="math":w.namespaceURI===La?T==="math"&&Lh[G]:!!kh[T]},Tm=function(T,w,G){return w.namespaceURI===La&&!Lh[G]||w.namespaceURI===Ii&&!vi[G]?!1:!kh[T]&&(Zl[T]||!xh[T])},Fh=function(T){let w=V(T);(!w||!w.tagName)&&(w={namespaceURI:uo,tagName:"template"});let G=Pp(T.tagName),ee=Pp(w.tagName);return fo[T.namespaceURI]?T.namespaceURI===La?Gv(G,w,ee):T.namespaceURI===Ii?nu(G,w,ee):T.namespaceURI===ct?Tm(G,w,ee):!!(os==="application/xhtml+xml"&&fo[T.namespaceURI]):!1},Kn=function(T){Op(e.removed,{element:T});try{V(T).removeChild(T)}catch{if(E(T),!V(T))throw Kc("a node selected for removal could not be detached from its tree and cannot be safely returned; refusing to sanitize in place")}},Si=function(T,w,G){try{I(T,w)}catch{try{T.removeAttribute(G)}catch{}}},ss=function(T){xa(T);let w=L(T);if(w){let ee=[];Yc(w,ce=>{Op(ee,ce)}),Yc(ee,ce=>{try{E(ce)}catch{}})}let G=oe(T);if(G)for(let ee=G.length-1;ee>=0;--ee){let ce=G[ee],de=ce&&ce.name;typeof de=="string"&&Si(T,ce,de)}},go=function(T,w,G){if(!G)try{G=w.getAttributeNode(T)}catch{G=null}Op(e.removed,{attribute:G||null,from:w});try{G?I(w,G):w.removeAttribute(T)}catch{try{w.removeAttribute(T)}catch{}}if(T==="is")if(lo||Oa)try{Kn(w)}catch{}else try{w.setAttribute(T,"")}catch{}},ym=function(T){let w=oe(T);if(w)for(let G=w.length-1;G>=0;--G){let ee=w[G],ce=ee&&ee.name;typeof ce!="string"||rt[$e(ce)]||Si(T,ee,ce)}},xa=function(T){let w=[T];for(;w.length>0;){let G=w.pop();v(G)===yr.element&&ym(G);let ce=L(G);if(ce)for(let de=ce.length-1;de>=0;--de)w.push(ce[de])}},Uh=function(T,w){return yt?T==="patchsrc"?!0:T==="for"&&w!=="label"&&w!=="output":!1},Vh=function(T){if(!yt)return;let w=[T];for(;w.length>0;){let G=w.pop(),ee=v(G);if(ee===yr.processingInstruction||ee===yr.comment&&Pn(S2,G.data)){try{E(G)}catch{}continue}if(ee===yr.element){let de=G,et=$e(A(G));try{de.hasAttribute&&de.hasAttribute("patchsrc")&&de.removeAttribute("patchsrc"),de.hasAttribute&&de.hasAttribute("for")&&Uh("for",et)&&de.removeAttribute("for")}catch{}}let ce=L(G);if(ce)for(let de=ce.length-1;de>=0;--de)w.push(ce[de])}},ru=function(T){let w=null,G=null;if(co)T="<remove></remove>"+T;else{let de=f2(T,/^[\r\n\t ]+/);G=de&&de[0]}os==="application/xhtml+xml"&&uo===ct&&(T='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+T+"</body></html>");let ee=R?ts(T):T;if(uo===ct)try{w=new d().parseFromString(ee,os)}catch{}if(!w||!w.documentElement){w=Ul.createDocument(uo,"template",null);try{w.documentElement.innerHTML=ho?N:ee}catch{}}let ce=w.body||w.documentElement;return T&&G&&ce.insertBefore(n.createTextNode(G),ce.childNodes[0]||null),uo===ct?nn.call(w,wr?"html":"body")[0]:wr?w.documentElement:ce},Bh=function(T){let w=C?C(T):T.ownerDocument;return hm.call(w||T,T,c.SHOW_ELEMENT|c.SHOW_COMMENT|c.SHOW_TEXT|c.SHOW_PROCESSING_INSTRUCTION|c.SHOW_CDATA_SECTION,null)},ka=function(T){return T=Mp(T,Fv," "),T=Mp(T,Na," "),T=Mp(T,Uv," "),T},Gh=function(T){var w;T.normalize();let G=C?C(T):T.ownerDocument,ee=hm.call(G||T,T,c.SHOW_TEXT|c.SHOW_COMMENT|c.SHOW_CDATA_SECTION|c.SHOW_PROCESSING_INSTRUCTION,null),ce=ee.nextNode();for(;ce;)ce.data=ka(ce.data),ce=ee.nextNode();let de=(w=T.querySelectorAll)===null||w===void 0?void 0:w.call(T,"template");de&&Yc(de,et=>{mo(et.content)&&Gh(et.content)})},iu=function(T){let w=te?te(T):null;return typeof w!="string"||$e(w)!=="form"?!1:typeof T.nodeName!="string"||typeof T.textContent!="string"||typeof T.removeChild!="function"||T.attributes!==oe(T)||typeof T.removeAttribute!="function"||typeof T.removeAttributeNode!="function"||typeof T.getAttributeNode!="function"||typeof T.setAttribute!="function"||typeof T.namespaceURI!="string"||typeof T.insertBefore!="function"||typeof T.hasChildNodes!="function"||T.nodeType!==ge(T)||T.childNodes!==L(T)},mo=function(T){if(!ge||typeof T!="object"||T===null)return!1;try{return ge(T)===yr.documentFragment}catch{return!1}},as=function(T){if(!ge||typeof T!="object"||T===null)return!1;try{return typeof ge(T)=="number"}catch{return!1}};function Or(W,T,w){W.length!==0&&Yc(W,G=>{G.call(e,T,w,po)})}let Eo=function(T,w){return!!(yt&&T.hasChildNodes()&&!as(T.firstElementChild)&&Pn(v2,T.textContent)&&Pn(v2,T.innerHTML)||yt&&T.namespaceURI===ct&&ere[w]&&(as(T.firstElementChild)||typeof T.textContent=="string"&&Pn(tre[w],T.textContent))||T.nodeType===yr.processingInstruction||yt&&T.nodeType===yr.comment&&Pn(S2,T.data))},Yn=function(T,w){if(T instanceof RegExp)return Pn(T,w);if(T instanceof Function){for(var G=arguments.length,ee=new Array(G>2?G-2:0),ce=2;ce<G;ce++)ee[ce-2]=arguments[ce];return!!T(w,...ee)}return!1},ou=function(T,w,G){if(!rs[w]&&cs(w)&&Yn(sr.tagNameCheck,w))return!1;if(Xl&&!Ti[w]){let ee=V(T),ce=L(T);if(ce&&ee){let de=ce.length;for(let et=de-1;et>=0;--et){let ht=T===G?g(ce[et],!0):ce[et];ee.insertBefore(ht,S(T))}}}return Kn(T),!0},Fa=function(T,w,G,ee){return T.length===0?w:w===G||w===ee?Ir(w):w},jh=function(T,w){return T===w||V(T)!==null?!1:(Ql&&xa(T),!0)},Ze=function(T,w){if(Or(He.beforeSanitizeElements,T,null),jh(T,w))return!0;if(iu(T))return Kn(T),!0;let G=$e(A(T));if(Je=Fa(He.uponSanitizeElement,Je,Hl,ba),Or(He.uponSanitizeElement,T,{tagName:G,allowedTags:Je}),jh(T,w))return!0;if(Eo(T,G))return Kn(T),!0;if(rs[G]||!(Wr.tagCheck instanceof Function&&Wr.tagCheck(G))&&!Je[G]){let ce=ou(T,G,w);return ce===!1&&Or(He.afterSanitizeElements,T,null),ce}if(v(T)===yr.element&&!Fh(T)||(G==="noscript"||G==="noembed"||G==="noframes")&&Pn(Jne,T.innerHTML))return Kn(T),!0;if(dt&&T.nodeType===yr.text){let ce=ka(T.textContent);T.textContent!==ce&&(Op(e.removed,{element:T.cloneNode()}),T.textContent=ce)}return Or(He.afterSanitizeElements,T,null),!1},Ua=function(T,w,G){if($l[w]||Uh(w,T)||pm&&(w==="id"||w==="name")&&(G in n||G in _m))return!1;let ee=rt[w]||Wr.attributeCheck instanceof Function&&Wr.attributeCheck(w,T);return wa&&Pn(Vv,w)||fm&&Pn(Vl,w)?!0:ee?Ma[w]||Pn(jl,Mp(G,Gl,""))||(w==="src"||w==="xlink:href"||w==="href")&&T!=="script"&&p2(G,"data:")===0&&yi[T]||Wl&&!Pn(Bl,Mp(G,Gl,""))?!0:!G:cs(T)&&Yn(sr.tagNameCheck,T)&&Yn(sr.attributeNameCheck,w,T)||w==="is"&&sr.allowCustomizedBuiltInElements&&Yn(sr.tagNameCheck,G)},Va=xe({},["annotation-xml","color-profile","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","missing-glyph"]),cs=function(T){return!Va[Pp(T)]&&Pn(wh,T)},jv=function(T,w,G,ee){if(R&&typeof h=="object"&&typeof h.getAttributeType=="function"&&!G)switch(h.getAttributeType(T,w)){case"TrustedHTML":return ts(ee);case"TrustedScriptURL":return Da(ee)}return ee},Im=function(T,w,G,ee){try{return G?T.setAttributeNS(G,w,ee):T.setAttribute(w,ee),iu(T)?(Kn(T),!1):!0}catch{return go(w,T),!1}},vm=function(T){Or(He.beforeSanitizeAttributes,T,null);let w=T.attributes;if(!w||iu(T))return;rt=Fa(He.uponSanitizeAttribute,rt,bh,Kl);let G={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:rt,forceKeepAttr:void 0},ee=w.length,ce=$e(T.nodeName);for(;ee--;){let de=w[ee],et=de.name,ht=de.namespaceURI,In=de.value,It=$e(et),$h=In,pn=et==="value"?$h:Pne($h),ls=!1;if(G.attrName=It,G.attrValue=pn,G.keepAttr=!0,G.forceKeepAttr=void 0,Or(He.uponSanitizeAttribute,T,G),pn=G.attrValue,gm&&(It==="id"||It==="name")&&p2(pn,Yl)!==0&&(go(et,T,de),pn=Yl+pn,ls=!0),yt&&Pn(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,pn)){go(et,T,de);continue}if(It==="attributename"&&f2(pn,"href")){go(et,T,de);continue}if(!G.forceKeepAttr){if(!G.keepAttr){go(et,T,de);continue}if(!zl&&Pn(Zne,pn)){go(et,T,de);continue}if(dt&&(pn=ka(pn)),!Ua(ce,It,pn)){go(et,T,de);continue}pn=jv(ce,It,ht,pn),pn!==$h&&Im(T,et,ht,pn)&&ls&&h2(e.removed)}}Or(He.afterSanitizeAttributes,T,null)},su=function(T){let w=null,G=Bh(T);for(Or(He.beforeSanitizeShadowDOM,T,null);w=G.nextNode();)if(Or(He.uponSanitizeShadowNode,w,null),Ze(w,T),vm(w),mo(w.content)&&su(w.content),v(w)===yr.element){let ee=K(w);mo(ee)&&(Hh(ee),su(ee))}Or(He.afterSanitizeShadowDOM,T,null)},Hh=function(T){let w=[{node:T,shadow:null}];for(;w.length>0;){let G=w.pop();if(G.shadow){su(G.shadow);continue}let ee=G.node,de=v(ee)===yr.element,et=L(ee);if(et)for(let ht=et.length-1;ht>=0;--ht)w.push({node:et[ht],shadow:null});if(de){let ht=te?te(ee):null;if(typeof ht=="string"&&$e(ht)==="template"){let In=ee.content;mo(In)&&w.push({node:In,shadow:null})}}if(de){let ht=K(ee);mo(ht)&&w.push({node:null,shadow:ht},{node:ht,shadow:null})}}};return e.sanitize=function(W){let T=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},w=null,G=null,ee=null,ce=null;if(ho=!W,ho&&(W="<!-->"),typeof W!="string"&&!as(W)&&(W=Vne(W),typeof W!="string"))throw Kc("dirty is not a string, aborting");if(!e.isSupported)return W;ql?(Je=ba,rt=Kl):Pa(T),(He.uponSanitizeElement.length>0||He.uponSanitizeAttribute.length>0)&&(Je=Ir(Je)),He.uponSanitizeAttribute.length>0&&(rt=Ir(rt)),e.removed=[];let de=Ql&&typeof W!="string"&&as(W);if(de){Vh(W);let In=A(W);if(typeof In=="string"){let It=$e(In);if(!Je[It]||rs[It])throw ss(W),Kc("root node is forbidden and cannot be sanitized in-place")}if(iu(W))throw ss(W),Kc("root node is clobbered and cannot be sanitized in-place");try{Hh(W)}catch(It){throw ss(W),It}}else if(as(W))w=ru("<!---->"),G=w.ownerDocument.importNode(W,!0),G.nodeType===yr.element&&G.nodeName==="BODY"||G.nodeName==="HTML"?w=G:w.appendChild(G),Hh(w);else{if(!lo&&!dt&&!wr&&W.indexOf("<")===-1)return R&&is?ts(W):W;if(w=ru(W),!w)return lo?null:is?N:""}w&&co&&Kn(w.firstChild);let et=de?W:w;try{let In=Bh(et);for(;ee=In.nextNode();)Ze(ee,et),vm(ee),mo(ee.content)&&su(ee.content)}catch(In){throw de&&(ss(W),Yc(e.removed,It=>{It.element&&xa(It.element)})),In}if(de)return Yc(e.removed,In=>{In.element&&xa(In.element)}),dt&&Gh(W),W;if(lo){if(dt&&Gh(w),Oa)for(ce=_i.call(w.ownerDocument);w.firstChild;)ce.appendChild(w.firstChild);else ce=w;return(rt.shadowroot||rt.shadowrootmode)&&(ce=kv.call(r,ce,!0)),ce}let ht=wr?w.outerHTML:w.innerHTML;return wr&&Je["!doctype"]&&w.ownerDocument&&w.ownerDocument.doctype&&w.ownerDocument.doctype.name&&Pn(Xne,w.ownerDocument.doctype.name)&&(ht="<!DOCTYPE "+w.ownerDocument.doctype.name+`>
|
|
150
|
-
`+ht),dt&&(ht=ka(ht)),R&&is?ts(ht):ht},e.setConfig=function(){let W=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Pa(W),ql=!0,ba=Je,Kl=rt},e.clearConfig=function(){po=null,ql=!1,ba=null,Kl=null,R=O,N=""},e.isValidAttribute=function(W,T,w){po||Pa({});let G=$e(W),ee=$e(T);return Ua(G,ee,w)},e.addHook=function(W,T){typeof T=="function"&&nr(He,W)&&Op(He[W],T)},e.removeHook=function(W,T){if(nr(He,W)){if(T!==void 0){let w=Mne(He[W],T);return w===-1?void 0:Lne(He[W],w,1)[0]}return h2(He[W])}},e.removeHooks=function(W){nr(He,W)&&(He[W]=[])},e.removeAllHooks=function(){He=A2()},e}var fy=N2();var ire=/^\/\/\*\[@id='([^']+)'\]/;function HN(t){try{if(typeof t!="string")return null;let e=ire.exec(t);if(!e)return null;let n=e[1],r=t.slice(e[0].length);if(!r)return{rootId:n,segments:[]};if(!r.startsWith("/"))return null;let i=[],o="",s=0,a=null;for(let c=1;c<r.length;c++){let l=r[c];if(a){l===a&&(a=null),o+=l;continue}if(l==="'"||l==='"')a=l;else if(l==="[")s++;else if(l==="]")s--;else if(l==="/"&&s===0){if(!o)return null;i.push(o),o="";continue}o+=l}return!o||a||s!==0?null:(i.push(o),{rootId:n,segments:i})}catch{return null}}var ore=[/:r[0-9a-z]+:/i,/_r_[0-9a-z]+_/i,/«r[0-9a-z]+»/i,/^radix-/i];function b2(t){try{return t?ore.some(e=>e.test(t)):!1}catch{return!1}}function i1e(t){if(Array.isArray(t))return w2(t);if(!t||typeof t!="object"||!("documentIds"in t))return{documentIds:null};let e=t.documentIds;return Array.isArray(e)?w2(e):{documentIds:[],problem:"not-an-array"}}function w2(t){let e=t.filter(n=>typeof n=="string"||typeof n=="number"&&Number.isFinite(n)).map(n=>String(n)).filter(n=>n.length>0);return B({documentIds:Array.from(new Set(e)).sort()},e.length<t.length?{problem:"dropped-entries"}:{})}function o1e(t,e){return t===null||e===null?t===e:t.length===e.length&&t.every((n,r)=>n===e[r])}var O2={ADD_TAGS:["velt-skeleton-loader"],ADD_ATTR:["border-radius","target"]},M2=(()=>{let e=class e{constructor(r,i,o,s){this.analyticsService=r,this.rendererFactory2=i,this.loggingService=o,this.sanitizer=s,this.smoothScrollShieldHandler=null,this.smoothScrollShieldLoadListener=null,this.isVideoEditorHandlingDelete=!1,this.pageScrollHeight=0,this.enableRectSelectionSubject$=new ie(!1),this.enableRectSelection$=this.enableRectSelectionSubject$.asObservable(),this.scrollableElementsIds$=new ie([]),this.mousedown=!1,this.windowMouseDown$=new Rt,this.windowPointerMove$=new ie(null),this.windowPointerUp$=new ie(null),this.documentSelectionChange$=new ie(null),this.windowClick$=new ie(null),this.windowScroll$=new ie(null),this.windowResize$=new ie(null),this.windowKeyupBackspace$=new ie(null),this.windowKeyupDelete$=new ie(null),this.windowKeyupEsc$=new ie(null),this.windowPopState$=new ie(null),this.documentClick$=new ie(null),this.documentClickSubject$=new Rt,this.documentFocus$=new ie(null),this.windowKeydownShift$=new ie(null),this.windowKeyupShift$=new ie(null),this.mutation$=new ie(null),this.childListMutation$=new ie(null),this.networkStatus$=new ie(!1),this.xpathCache=new Map,this.xpathCacheId=new Map,this.selectedAnnotationsMap$=new ie({}),this.selectedAnnotationsLocationMap$=new ie({}),this.selectedAnnotationsContextIdMap$=new ie({}),this.recordingInProgress$=new ie({}),this.deleteAnnotations$=new ie([]),this.pinHighlighterClass$=new ie(null),this.dialogOpenedInSidebar$=new ie(!1),this.textHighlighterClass$=new ie(null),this.commentPinHighlighter$=new ie(!1),this.deviceInfo$=new ie(new Ur),this.customCss$=new ie(null),this.mutationObserver=null,this.animationFilterEnabled=!1,this.animationLibraryDetected=null,this.staticAnimationCache=new WeakMap,this.ANIMATION_LIBRARY_SELECTOR=["[data-gsap]",".gsap-marker-start",".gsap-marker-end","[data-gsap-id]",".swiper-slide",".swiper-wrapper",".swiper-pagination",".swiper-pagination-bullet","[data-aos]"].join(", "),this.previousMousePosition={pageX:0,pageY:0,clientX:0,clientY:0},this.currentMousePosition={pageX:0,pageY:0,clientX:0,clientY:0,element:{xpath:"",topPercentage:0,leftPercentage:0}},this.nodeMap={},this.unlistenElementScroll={},this.tabId=null,this.dynamicIdPatterns=[/^yui_[a-z0-9_]+$/i],this.excludeClassList=["show-pin-cursor"],this.filterSnippylyNodes=a=>{try{let c=[];return a.forEach(l=>{if(!qi(l))if(l instanceof HTMLElement){if(l.className.includes("cdk-overlay-container")||l.className.includes("cdk-overlay-connected-position-bounding-box"))return;if(l.className.includes("cdk-overlay")){let d=!1;l.childNodes.forEach(h=>{qi(h)&&(d=!0)}),d||c.push(l)}else c.push(l)}else c.push(l)}),c}catch(c){return this.loggingService.catch("Error in DomService filterSnippylyNodes: ",c),[]}},this.loggingService.log("%c[WB] Creating CLASS: DomService","color: blue;");try{this.analyticsService.setDomService(this),this.renderer=this.rendererFactory2.createRenderer(null,null);let a=this.calculateScreenSize();this.currentScreenSize$=new ie(a),this.currentMousePosition$=new ie(this.currentMousePosition),this.detectNetworkStatusChange(),this.getScrollableElementsIds$().pipe(Ya(),eE(([c,l])=>{try{let d=l.filter(f=>!c.includes(f)),h=c.filter(f=>!l.includes(f));h.length&&h.map(g=>document.getElementById(g)).filter(g=>g).forEach(g=>{this.unlistenElementScroll&&this.unlistenElementScroll[g.id]&&this.unlistenElementScroll[g.id]()}),d.length&&d.map(g=>document.getElementById(g)).filter(g=>g).forEach(g=>{this.unlistenElementScroll[g.id]=this.renderer.listen(g,"scroll",E=>{let I=this.calculateScreenSize();this.currentScreenSize$.next(I)})})}catch(d){this.loggingService.catch("Error in DomService getScrollableElementsIds subscription: ",d)}})).subscribe(()=>{},c=>{this.loggingService.catch("Error in DomService getScrollableElementsIds subscription: ",c)}),this.getSelectedAnnotationsMap$().subscribe(c=>{Object.keys(c||{})?.length?qV("snippylyUserScalableNo","viewport","width=device-width, user-scalable=no"):KV("snippylyUserScalableNo")},c=>{this.loggingService.catch("Error in DomService getSelectedAnnotationsMap$ subscription: ",c)})}catch(a){this.loggingService.catch("Error in DomService constructor: ",a)}}setDocService(r){try{this.docService=r,this.subscribeToDomEvents()}catch(i){this.loggingService.catch("Error in DomService setDocService: ",i)}}setDynamicIdPatterns(r){try{let i=r.map(o=>typeof o=="string"?new RegExp(o):o).filter(Boolean);i.length&&(this.dynamicIdPatterns=i)}catch(i){this.loggingService.catch("Error in DomService setDynamicIdPatterns: ",i)}}isLikelyDynamicId(r){try{return r?this.dynamicIdPatterns.some(i=>i.test(r)):!1}catch{return!1}}isGeneratedId(r){return this.isLikelyDynamicId(r)||b2(r)}getStableAttributes(r){try{let i={};if(!r.getAttributeNames)return i;let o=new Set(["id","class","style"]);return r.getAttributeNames().forEach(a=>{if(o.has(a)||a.includes("snippyly")||a.includes("velt"))return;let c=r.getAttribute(a);c&&c.length<=256&&(i[a]=c)}),i}catch{return{}}}buildStableElementSelector(r,i){try{if(Object.keys(i).length===0)return;let s=[r.tagName?.toLowerCase()],a=["data-","aria-","role","name","title","type"];return Object.keys(i).sort((l,d)=>{let h=a.findIndex(g=>l.startsWith(g)),f=a.findIndex(g=>d.startsWith(g));return(h===-1?99:h)-(f===-1?99:f)}).slice(0,4).forEach(l=>{let d=CSS.escape(i[l]);s.push(`[${l}="${d}"]`)}),s.join("")}catch{return}}getVisibleText(r,i=400){try{let o=document.createTreeWalker(r,NodeFilter.SHOW_TEXT,null),s="",a,c=0;for(;(a=o.nextNode())&&s.length<i;){let l=(a.textContent||"").replace(/\s+/g," ").trim();if(l&&(s+=(s?" ":"")+l),c++,c>100)break}return s.slice(0,i)}catch{return""}}hashText(r){try{return OV(r)}catch{return}}generateRobustXPath(r,i){try{let o=i?.maxDepth||10,s=i?.useAbsolutePath||!1,a=[],c=r,l=0;for(;c&&c!==document.documentElement&&l<o;){let g=this.buildRobustXPathSegment(c);if(g&&(a.unshift(g),this.isStrongAnchorSegment(g)))break;c=c.parentElement,l++}if(a.length===0)return;let h=(s?"/":"//")+a.join("/");return a.some(g=>g.includes("[@")||g.includes("[contains(@class"))?h:void 0}catch{return}}buildRobustXPathSegment(r){try{let i=r.tagName.toLowerCase(),o=r.id;if(o&&!this.isLikelyDynamicId(o)&&document.querySelectorAll(`[id="${CSS.escape(o)}"]`).length===1)return`*[@id=${this.escapeXPathValue(o)}]`;let s=["data-region","data-instanceid","data-action","data-key","data-block","data-activityid"];for(let g of s){let E=r.getAttribute(g);if(E)return`${i}[@${g}=${this.escapeXPathValue(E)}]`}let a=Array.from(r.attributes).filter(g=>g.name.startsWith("data-")&&!g.name.includes("snippyly")&&!g.name.includes("velt")&&g.value.length<100).sort((g,E)=>g.value.length-E.value.length);if(a.length>0){let g=a[0];return`${i}[@${g.name}=${this.escapeXPathValue(g.value)}]`}let c=r.getAttribute("role");if(c)return`${i}[@role=${this.escapeXPathValue(c)}]`;let l=r.getAttribute("aria-label");if(l&&l.length<50)return`${i}[@aria-label=${this.escapeXPathValue(l)}]`;let d=r.getAttribute("name");if(d)return`${i}[@name=${this.escapeXPathValue(d)}]`;let h=r.getAttribute("type");if(h)return`${i}[@type=${this.escapeXPathValue(h)}]`;let f=Array.from(r.classList||[]).filter(g=>g.length>0&&g.length<40&&!g.includes("yui")&&!g.includes("velt")&&!g.includes("snippyly")&&!this.excludeClassList.includes(g)).slice(0,2);if(f.length>0){let g=f.map(E=>`contains(@class, ${this.escapeXPathValue(E)})`).join(" and ");return`${i}[${g}]`}if(r.parentElement){let g=Array.from(r.parentElement.children).filter(E=>E.tagName===r.tagName);if(g.length>1){let E=g.indexOf(r)+1;return`${i}[${E}]`}}return i}catch{return}}isStrongAnchorSegment(r){try{return!!(r.includes("[@id=")||["main","navigation","banner","contentinfo","complementary","search"].some(s=>r.includes(`[@role='${s}']`))||["data-region","data-instanceid","data-activityid"].some(s=>r.includes(`[@${s}=`)))}catch{return!1}}escapeXPathValue(r,i=!0){try{return r.includes("'")?r.includes('"')?`concat(${r.split("'").map(a=>`'${a}'`).join(`,"'",`)})`:i?`"${r}"`:r:i?`'${r}'`:r}catch{try{return`concat(${r.split("'").map(c=>`'${c}'`).join(`,"'",`)})`}catch{return i?`'${r}'`:r}}}getElementFromRobustXPath(r){try{return document.evaluate(r,document,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue}catch{return null}}getAllElementsFromRobustXPath(r){try{let i=document.evaluate(r,document,null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null),o=[];for(let s=0;s<i.snapshotLength;s++){let a=i.snapshotItem(s);a instanceof Element&&o.push(a)}return o}catch{return[]}}generateAnchorRecord(r,i){try{let o=this.generateAnchorRecordForElement(r,i),s=null;if(r.parentElement&&r.parentElement instanceof HTMLElement&&id(r.parentElement)&&r.parentElement!==document.body&&(s=r.parentElement),o&&s){let a=this.generateAnchorRecordForElement(s,i);a&&(o.parent=a)}return o}catch(o){return this.loggingService.catch("Error in DomService generateAnchorRecord: ",o),null}}generateAnchorRecordForElement(r,i){try{if(!r)return null;let o=r,s=o.tagName?.toUpperCase();if(!s)return null;let a=o.id&&!this.isLikelyDynamicId(o.id)?o.id:void 0,c=this.getStableAttributes(o),l=this.buildStableElementSelector(o,c),d=this.getVisibleText(o),h=this.hashText(d||""),f=this.generateRobustXPath(o),g=this.getXPath(o,!1,!1,void 0,{ignoreGeneratedIds:i?.ignoreGeneratedIds}),E=this.getXPath(o,!0),I=this.getXPath(o,!0,!0);return{version:"1.0",id:a,tagName:s,elementSelector:l,robustXPath:f||void 0,xPath:g||void 0,fXPath:E||void 0,cfXPath:I||void 0,contentHash:h?{value:h,algorithm:"md5",source:"textContent"}:void 0,createdAt:Date.now()}}catch(o){return this.loggingService.catch("Error in DomService generateAnchorRecordForElement: ",o),null}}resolveAnchorRecord(r){try{let i=[],o=null,s=(h,f,g=0)=>{let E=[],I=g;if(E.push({method:f,score:g}),r.tagName&&h.tagName?.toUpperCase()===r.tagName&&(I+=10,E.push({method:"tagName-match",score:10})),r.contentHash?.value){let S=this.getVisibleText(h);this.hashText(S)===r.contentHash.value&&(I+=30,E.push({method:"contentHash-match",score:30}))}i.push({el:h,score:I,by:f,scoreBreakdown:E})};if(r.id){let h=document.querySelectorAll(`#${CSS.escape(r.id)}`);if(h.length===1)return{element:h[0],matchedBy:"id",score:90};h.length>1&&h.forEach(f=>s(f,"id-duplicate",70))}if(r.elementSelector){let h=document.querySelectorAll(r.elementSelector);if(h.length===1)return{element:h[0],matchedBy:"element-selector",score:80};h.forEach(f=>s(f,"element-selector-duplicate",60))}r.robustXPath&&this.getAllElementsFromRobustXPath(r.robustXPath).slice(0,20).forEach(E=>s(E,"robustXPath",50)),r?.parent&&(o=this.resolveAnchorRecord(r.parent),o.element&&o.element.querySelectorAll(r.tagName?.toLowerCase()||"*").forEach(f=>s(f,"parent+tag",40)));let a=(h,f,g)=>{if(!h)return;let E=this.getElementFromXPath(h);E&&s(E,f||"xpath",g||30)};if(a(r.xPath,"xPath",30),a(r.cfXPath,"cfXPath",30),a(r.fXPath,"fXPath",30),r.contentHash?.value&&i.length===0){let f=g=>{let E=0;for(let I=0;I<g.length&&E<400;I++){let S=g[I];if(E++,!this.isElementVisible(S))continue;let L=this.getVisibleText(S),V=this.hashText(L);V&&V===r.contentHash?.value&&s(S,"contentHash",15)}};if(o?.element&&o?.element instanceof Element){let g=o?.element?.querySelectorAll("*");f(g)}}if(!i.length)return{element:null};i.sort((h,f)=>f.score-h.score);let c=i[0].score,l=i.filter(h=>h.score===c);if(l.length>1){let h=[{path:r.xPath,label:"xPath"},{path:r.cfXPath,label:"cfXPath"},{path:r.fXPath,label:"fXPath"}];for(let f of h)if(f.path){let g=this.getElementFromXPath(f.path);if(g){let E=l.find(I=>I.el===g);if(E)return{element:E.el,matchedBy:`${E.by}+position`,score:E.score,scoreBreakdown:E.scoreBreakdown}}}}let d=i[0];return{element:d.el,matchedBy:d.by,score:d.score,scoreBreakdown:d.scoreBreakdown}}catch(i){return this.loggingService.catch("Error in DomService resolveAnchorRecord: ",i),{element:null}}}subscribeToDomEvents(){try{this.docService?.getDocumentPaths$().pipe(De(r=>{r?(this.onWindowResize(),this.onWindowScroll(),this.onPointerDown(),this.onWindowClick(),this.onWindowKeyupBackspace(),this.onWindowKeyupDelete(),this.onWindowKeyupEsc(),this.onWindowPopState(),this.onWindowKeydownShift(),this.onWindowKeyupShift(),this.addPointerMoveListener(),this.addPointerUpListener(),this.addSelectionChangeListener(),this.onDocumentFocus(),this.setupSmoothScrollShield()):(this.unsubscribeFromWindowResize(),this.unsubscribeFromWindowScroll(),this.unsubscribeFromPointerDown(),this.unsubscribeFromWindowClick(),this.unsubscribeFromWindowKeyupBackspace(),this.unsubscribeFromWindowKeyupDelete(),this.unsubscribeFromWindowKeyupEsc(),this.unsubscribeFromWindowPopState(),this.unsubscribeFromWindowKeydownShift(),this.unsubscribeFromWindowKeyupShift(),this.unsubscribeFromPointerMoveListener(),this.unsubscribeFromPointerUpListener(),this.unsubscribeFromSelectionChangeListener(),this.unsubscribeFromDocumentFocus(),this.unsetMutationObserver(),this.teardownSmoothScrollShield())})).subscribe(),this.onDocumentClick()}catch(r){this.loggingService.catch("Error in DomService subscribeToDomEvents: ",r)}}setScrollableElementsIds(r){try{r&&r.length&&this.scrollableElementsIds$.next(Array.from(new Set(r)))}catch(i){this.loggingService.catch("Error in DomService setScrollableElementsIds: ",i)}}getScrollableElementsIds$(){return this.loggingService.log("%c[WB] Calling FUNCTION: getScrollableElementsIds$","color: green;"),this.scrollableElementsIds$.asObservable()}removeScrollableElementsIds(){this.scrollableElementsIds$.next([])}setMutationObserver(r){try{this.mutationObserver||(this.loggingService.log("%c[WB] Calling DomService FUNCTION: setMutationObserver","color: green;"),this.loggingService.log("%c[WB] setMutationObserver from: "+r,"color: green;"),this.animationFilterEnabled=this.detectAnimationLibraries(),this.loggingService.log("%c[WB] Animation filter:","color: green;",this.animationFilterEnabled?"ENABLED (library detected)":"DISABLED (no library)"),this.mutationObserver=new MutationObserver(i=>{try{if(i?.find(s=>s?.attributeName===F.VELT_IGNORE_CHANGE_DETECTION))return;let o=i.filter(s=>s.type==="childList").filter(s=>{let a=s.target;return s.removedNodes.forEach(c=>{let l=c;if(typeof l.getAttribute=="function"){let d=l.getAttribute(F.ATTRIBUTES.VELT_ELEMENT_CACHE_ID);if(d!==null&&d!==""){let h=this.xpathCacheId.get(d);h!==void 0&&(this.xpathCacheId.delete(d),this.xpathCache.delete(h))}}}),qi(a)?!1:!!(this.filterSnippylyNodes(s.addedNodes).length||this.filterSnippylyNodes(s.removedNodes).length)});this.animationFilterEnabled?this.childListMutation$.next(o.filter(s=>!this.isAnimatingElement(s.target))):this.childListMutation$.next(o),o.push(...i.filter(s=>s.type==="attributes").filter(s=>!qi(s.target)).filter(s=>this.filterSnippylyNodes([s.target]).length).filter(s=>{if(s){let a=s.target;return a?.classList?.contains("snippyly-sidebar-panel")?!1:a?!a.getAttribute(F.VELT_IGNORE_CHANGE_DETECTION):!0}return!0})),o=o.filter(s=>{let a=!0;return Object.keys(F.INGNORE_MUTATION_OBSERVER_CHANGE_TAGS).forEach(c=>{s.target?.closest(c)&&(a=!1)}),a}),o=o.filter(s=>s.target&&id(s.target)),this.animationFilterEnabled&&(o=o.filter(s=>!this.isAnimatingElement(s.target))),o.length&&this.mutation$.next(o)}catch(o){this.loggingService.catch("Error in DomService change detection: ",o)}}),this.mutationObserver.observe(document.body,{childList:!0,subtree:!0,attributes:!0}))}catch(i){this.loggingService.catch("Error in DomService change detection: ",i)}}detectAnimationLibraries(){try{if(this.animationLibraryDetected!==null)return this.animationLibraryDetected;let r=window;return r.gsap||r.TweenMax||r.TweenLite||r.TimelineMax||r.TimelineLite?(this.loggingService.log("%c[WB] Detected animation library: GSAP","color: green;"),this.animationLibraryDetected=!0,!0):r.Swiper?(this.loggingService.log("%c[WB] Detected animation library: Swiper","color: green;"),this.animationLibraryDetected=!0,!0):r.AOS?(this.loggingService.log("%c[WB] Detected animation library: AOS","color: green;"),this.animationLibraryDetected=!0,!0):r.anime?(this.loggingService.log("%c[WB] Detected animation library: Anime.js","color: green;"),this.animationLibraryDetected=!0,!0):r.lottie||r.Lottie||r.bodymovin?(this.loggingService.log("%c[WB] Detected animation library: Lottie","color: green;"),this.animationLibraryDetected=!0,!0):document.querySelector("[data-framer-component-type]")?(this.loggingService.log("%c[WB] Detected animation library: Framer Motion","color: green;"),this.animationLibraryDetected=!0,!0):document.querySelector(this.ANIMATION_LIBRARY_SELECTOR)?(this.loggingService.log("%c[WB] Detected animation library: DOM markers","color: green;"),this.animationLibraryDetected=!0,!0):(this.loggingService.log("%c[WB] No animation library detected","color: green;"),this.animationLibraryDetected=!1,!1)}catch{return this.animationLibraryDetected=!1,!1}}isAnimatingElement(r){try{if(!r||typeof r.closest!="function")return!1;let i=window;if(i.gsap&&typeof i.gsap.isTweening=="function"){if(i.gsap.isTweening(r))return!0;if(typeof i.gsap.getTweensOf=="function")try{if(i.gsap.getTweensOf(r).length>0)return!0}catch{}}else if(i.TweenMax&&typeof i.TweenMax.isTweening=="function"){if(i.TweenMax.isTweening(r))return!0;if(typeof i.TweenMax.getTweensOf=="function")try{if(i.TweenMax.getTweensOf(r).length>0)return!0}catch{}}let o=r.style?.cssText||"";if(o){let l=o.includes("transform")||o.includes("translate3d")||o.includes("translate(")||o.includes("scale3d")||o.includes("rotate"),d=o.includes("will-change")&&o.includes("transform"),h=o.includes("transform-style")&&o.includes("preserve-3d");if(l&&(d||h))return!0}if(r.style&&(r.style.animation!==""&&r.style.animation!=="none"||r.style.transition!==""&&r.style.transition!=="none")||r.classList?.contains("animate")||r.classList?.contains("animating")||r.classList?.contains("animated")||r.classList?.contains("animation"))return!0;let s=this.staticAnimationCache.get(r);if(s!==void 0)return s;let a=!1,c=r.className||"";return typeof c=="string"&&(c.includes("slider")&&(c.includes("bullet")||c.includes("pagination"))&&(a=!0),c.includes("swiper-pagination")&&(a=!0)),!a&&(r.hasAttribute("data-aos")||r.hasAttribute("data-motion"))&&(a=!0),!a&&r.closest(this.ANIMATION_LIBRARY_SELECTOR)&&(a=!0),this.staticAnimationCache.set(r,a),a}catch{return!1}}unsetMutationObserver(){try{this.mutationObserver&&(this.mutationObserver.disconnect(),this.mutationObserver=null,this.staticAnimationCache=new WeakMap,this.animationLibraryDetected=null,this.animationFilterEnabled=!1)}catch(r){this.loggingService.catch("Error in DomService unsetMutationObserver: ",r)}}detectNetworkStatusChange(){this.loggingService.log("%c[WB] Calling FUNCTION: detectNetworkStatusChange","color: green;");try{gs(wi(window,"offline").pipe(De(()=>!1)),wi(window,"online").pipe(De(()=>!0)),new fe(r=>{r.next(navigator.onLine),r.complete()})).subscribe(r=>{this.networkStatus$.next(r)})}catch(r){this.loggingService.catch("Error in DomService detectNetworkStatusChange: ",r)}}onWindowResize(){this.loggingService.log("%c[WB] Calling FUNCTION: onWindowResize","color: green;");try{this.unsubscribeFromWindowResize(),this.unlistenWindowResize=this.renderer.listen("window","resize",r=>{this.windowResize$.next(r);let i=this.calculateScreenSize();this.deviceInfo$.next(new Ur),this.currentScreenSize$.next(i)})}catch(r){this.loggingService.catch("Error in DomService onWindowResize: ",r)}}unsubscribeFromWindowResize(){try{this.unlistenWindowResize&&typeof this.unlistenWindowResize=="function"&&(this.unlistenWindowResize(),this.unlistenWindowResize=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromWindowResize: ",r)}}onWindowScroll(){this.loggingService.log("%c[WB] Calling FUNCTION: onWindowScroll","color: green;");try{this.unsubscribeFromWindowScroll(),this.unlistenWindowScroll=this.renderer.listen("window","scroll",r=>{this.windowScroll$.next(r);let i=this.calculateScreenSize();this.currentScreenSize$.next(i)})}catch(r){this.loggingService.catch("Error in DomService onWindowScroll: ",r)}}unsubscribeFromWindowScroll(){try{this.unlistenWindowScroll&&typeof this.unlistenWindowScroll=="function"&&(this.unlistenWindowScroll(),this.unlistenWindowScroll=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromWindowScroll: ",r)}}setupSmoothScrollShield(){this.loggingService.log("%c[WB] Calling FUNCTION: setupSmoothScrollShield","color: green;");try{if(typeof window>"u"||typeof document>"u"||this.smoothScrollShieldHandler)return;if(this.isSmoothScrollLibPresent()){this.attachSmoothScrollShield();return}if(document.readyState!=="complete"&&!this.smoothScrollShieldLoadListener){let r=()=>{this.smoothScrollShieldLoadListener=null;try{if(this.smoothScrollShieldHandler)return;this.isSmoothScrollLibPresent()&&this.attachSmoothScrollShield()}catch(i){this.loggingService.catch("Error in DomService smooth-scroll shield load re-check: ",i)}};window.addEventListener("load",r,{once:!0}),this.smoothScrollShieldLoadListener=()=>window.removeEventListener("load",r)}}catch(r){this.loggingService.catch("Error in DomService setupSmoothScrollShield: ",r)}}isSmoothScrollLibPresent(){try{if(typeof window>"u"||typeof document>"u")return!1;if(window.ET_SmoothScroll)return!0;let i=document.body;return!!(i&&i.classList&&i.classList.contains("et_smooth_scroll"))}catch(r){return this.loggingService.catch("Error in DomService isSmoothScrollLibPresent: ",r),!1}}attachSmoothScrollShield(){if(this.smoothScrollShieldHandler)return;let r=/^(VELT-|SUPERFLOW-|SNIPPYLY-)/,i=s=>{try{let a=typeof s.composedPath=="function"?s.composedPath():[];for(let c=0;c<a.length;c++){let l=a[c];if(!(!l||l.nodeType!==1)&&l.tagName&&r.test(l.tagName)){s.stopImmediatePropagation();return}}}catch(a){this.loggingService.catch("Error in DomService smoothScrollShield handler: ",a)}};this.smoothScrollShieldHandler=i;let o={capture:!0,passive:!0};window.addEventListener("wheel",i,o),window.addEventListener("mousewheel",i,o),window.addEventListener("touchmove",i,o),this.unlistenWindowWheelShield=()=>window.removeEventListener("wheel",i,o),this.unlistenWindowMouseWheelShield=()=>window.removeEventListener("mousewheel",i,o),this.unlistenWindowTouchMoveShield=()=>window.removeEventListener("touchmove",i,o)}teardownSmoothScrollShield(){this.loggingService.log("%c[WB] Calling FUNCTION: teardownSmoothScrollShield","color: green;");try{try{this.smoothScrollShieldLoadListener&&typeof this.smoothScrollShieldLoadListener=="function"&&(this.smoothScrollShieldLoadListener(),this.smoothScrollShieldLoadListener=null)}catch(r){this.loggingService.catch("Error in DomService teardownSmoothScrollShield (load): ",r)}try{this.unlistenWindowWheelShield&&typeof this.unlistenWindowWheelShield=="function"&&(this.unlistenWindowWheelShield(),this.unlistenWindowWheelShield=null)}catch(r){this.loggingService.catch("Error in DomService teardownSmoothScrollShield (wheel): ",r)}try{this.unlistenWindowMouseWheelShield&&typeof this.unlistenWindowMouseWheelShield=="function"&&(this.unlistenWindowMouseWheelShield(),this.unlistenWindowMouseWheelShield=null)}catch(r){this.loggingService.catch("Error in DomService teardownSmoothScrollShield (mousewheel): ",r)}try{this.unlistenWindowTouchMoveShield&&typeof this.unlistenWindowTouchMoveShield=="function"&&(this.unlistenWindowTouchMoveShield(),this.unlistenWindowTouchMoveShield=null)}catch(r){this.loggingService.catch("Error in DomService teardownSmoothScrollShield (touchmove): ",r)}this.smoothScrollShieldHandler=null}catch(r){this.loggingService.catch("Error in DomService teardownSmoothScrollShield: ",r)}}onPointerDown(){this.loggingService.log("%c[WB] Calling FUNCTION: onPointerDown","color: green;");try{this.unsubscribeFromPointerDown(),this.unlistenPointerDown=this.renderer.listen("window","pointerdown",r=>{this.mousedown=!0,this.windowMouseDown$.next(r),this.setPointerPosition(r)})}catch(r){this.loggingService.catch("Error in DomService onPointerDown: ",r)}}unsubscribeFromPointerDown(){try{this.unlistenPointerDown&&typeof this.unlistenPointerDown=="function"&&(this.unlistenPointerDown(),this.unlistenPointerDown=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromPointerDown: ",r)}}onWindowClick(){this.loggingService.log("%c[WB] Calling FUNCTION: onWindowKeyupBackspace","color: green;");try{this.unsubscribeFromWindowClick(),this.unlistenWindowClick=this.renderer.listen("window","click",r=>{this.windowClick$.next(r)})}catch(r){this.loggingService.catch("Error in DomService onWindowClick: ",r)}}unsubscribeFromWindowClick(){try{this.unlistenWindowClick&&typeof this.unlistenWindowClick=="function"&&(this.unlistenWindowClick(),this.unlistenWindowClick=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromWindowClick: ",r)}}onWindowKeyupBackspace(){this.loggingService.log("%c[WB] Calling FUNCTION: onWindowKeyupBackspace","color: green;");try{this.unsubscribeFromWindowKeyupBackspace(),this.unlistenWindowKeyupBackspace=this.renderer.listen("window","keyup.backspace",r=>{this.isVideoEditorHandlingDelete||this.windowKeyupBackspace$.next(r)})}catch(r){this.loggingService.catch("Error in DomService onWindowKeyupBackspace: ",r)}}unsubscribeFromWindowKeyupBackspace(){try{this.unlistenWindowKeyupBackspace&&typeof this.unlistenWindowKeyupBackspace=="function"&&(this.unlistenWindowKeyupBackspace(),this.unlistenWindowKeyupBackspace=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromWindowKeyupBackspace: ",r)}}onWindowKeyupDelete(){this.loggingService.log("%c[WB] Calling FUNCTION: onWindowKeyupDelete","color: green;");try{this.unsubscribeFromWindowKeyupDelete(),this.unlistenWindowKeyupDelete=this.renderer.listen("window","keyup.delete",r=>{this.isVideoEditorHandlingDelete||this.windowKeyupDelete$.next(r)})}catch(r){this.loggingService.catch("Error in DomService onWindowKeyupDelete: ",r)}}unsubscribeFromWindowKeyupDelete(){try{this.unlistenWindowKeyupDelete&&typeof this.unlistenWindowKeyupDelete=="function"&&(this.unlistenWindowKeyupDelete(),this.unlistenWindowKeyupDelete=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromWindowKeyupDelete: ",r)}}onWindowKeyupEsc(){this.loggingService.log("%c[WB] Calling FUNCTION: onWindowKeyupEsc","color: green;");try{this.unsubscribeFromWindowKeyupEsc(),this.unlistenWindowKeyupEsc=this.renderer.listen("window","keyup.esc",r=>{this.windowKeyupEsc$.next(r)})}catch(r){this.loggingService.catch("Error in DomService onWindowKeyupEsc: ",r)}}unsubscribeFromWindowKeyupEsc(){try{this.unlistenWindowKeyupEsc&&typeof this.unlistenWindowKeyupEsc=="function"&&(this.unlistenWindowKeyupEsc(),this.unlistenWindowKeyupEsc=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromWindowKeyupEsc: ",r)}}onWindowPopState(){this.loggingService.log("%c[WB] Calling FUNCTION: onWindowPopState","color: green;");try{this.unsubscribeFromWindowPopState(),this.unlistenWindowPopState=this.renderer.listen("window","popstate",r=>{this.windowPopState$.next(r)})}catch(r){this.loggingService.catch("Error in DomService onWindowPopState: ",r)}}unsubscribeFromWindowPopState(){try{this.unlistenWindowPopState&&typeof this.unlistenWindowPopState=="function"&&(this.unlistenWindowPopState(),this.unlistenWindowPopState=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromWindowPopState: ",r)}}onDocumentClick(){this.loggingService.log("%c[WB] Calling FUNCTION: onDocumentClick","color: green;");try{this.unsubscribeFromDocumentClick(),this.documentClickListener=r=>{r?.target?.tagName?.toLowerCase()!==F.TAGS.SUPERFLOW_TOOLBAR&&(this.documentClick$.next(r),this.documentClickSubject$.next(r))},document.addEventListener("click",this.documentClickListener,!0)}catch(r){this.loggingService.catch("Error in DomService onDocumentClick: ",r)}}unsubscribeFromDocumentClick(){try{this.documentClickListener&&typeof this.documentClickListener=="function"&&(document.removeEventListener("click",this.documentClickListener,!0),this.documentClickListener=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromDocumentClick: ",r)}}onDocumentFocus(){this.loggingService.log("%c[WB] Calling FUNCTION: onDocumentFocus","color: green;");try{this.unsubscribeFromDocumentFocus(),this.documentFocusListener=r=>{this.documentFocus$.next(r)},document.addEventListener("focus",this.documentFocusListener,!0)}catch(r){this.loggingService.catch("Error in DomService onDocumentFocus: ",r)}}unsubscribeFromDocumentFocus(){try{this.documentFocusListener&&typeof this.documentFocusListener=="function"&&(document.removeEventListener("focus",this.documentFocusListener,!0),this.documentFocusListener=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromDocumentFocus: ",r)}}onWindowKeydownShift(){this.loggingService.log("%c[WB] Calling FUNCTION: onWindowKeydownShift","color: green;");try{this.unsubscribeFromWindowKeydownShift(),this.unlistenWindowKeydownShift=this.renderer.listen("window","keydown.shift",r=>{this.windowKeydownShift$.next(r),this.windowKeyupShift$.next(null)})}catch(r){this.loggingService.catch("Error in DomService onWindowKeydownShift: ",r)}}unsubscribeFromWindowKeydownShift(){try{this.unlistenWindowKeydownShift&&typeof this.unlistenWindowKeydownShift=="function"&&(this.unlistenWindowKeydownShift(),this.unlistenWindowKeydownShift=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromWindowKeydownShift: ",r)}}onWindowKeyupShift(){this.loggingService.log("%c[WB] Calling FUNCTION: onWindowKeyupShift","color: green;");try{this.unsubscribeFromWindowKeyupShift(),this.unlistenWindowKeyupShift=this.renderer.listen("window","keyup.shift",r=>{this.windowKeyupShift$.next(r),this.windowKeydownShift$.next(null)})}catch(r){this.loggingService.catch("Error in DomService onWindowKeyupShift: ",r)}}unsubscribeFromWindowKeyupShift(){try{this.unlistenWindowKeyupShift&&typeof this.unlistenWindowKeyupShift=="function"&&(this.unlistenWindowKeyupShift(),this.unlistenWindowKeyupShift=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromWindowKeyupShift: ",r)}}onWindowKeydown$(){this.loggingService.log("%c[WB] Calling FUNCTION: onWindowKeydown$","color: green;");try{return wi(window,"keydown")}catch(r){return this.loggingService.catch("Error in DomService onWindowKeydown$: ",r),Wa}}addPointerMoveListener(){this.loggingService.log("%c[WB] Calling FUNCTION: addPointerMoveListener","color: green;");try{this.unsubscribeFromPointerMoveListener(),this.unlistenPointerMoveListener=this.renderer.listen("document","pointermove",r=>{this.windowPointerMove$.next(r),this.mouseMoveEvent=r})}catch(r){this.loggingService.catch("Error in DomService addPointerMoveListener: ",r)}}unsubscribeFromPointerMoveListener(){try{this.unlistenPointerMoveListener&&typeof this.unlistenPointerMoveListener=="function"&&(this.unlistenPointerMoveListener(),this.unlistenPointerMoveListener=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromPointerMoveListener: ",r)}}addPointerUpListener(){this.loggingService.log("%c[WB] Calling FUNCTION: addPointerUpListener","color: green;");try{this.unsubscribeFromPointerUpListener(),this.unlistenPointerUpListener=this.renderer.listen("document","pointerup",r=>{this.windowPointerUp$.next(r)})}catch(r){this.loggingService.catch("Error in DomService addPointerUpListener: ",r)}}unsubscribeFromPointerUpListener(){try{this.unlistenPointerUpListener&&typeof this.unlistenPointerUpListener=="function"&&(this.unlistenPointerUpListener(),this.unlistenPointerUpListener=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromPointerUpListener: ",r)}}addSelectionChangeListener(){this.loggingService.log("%c[WB] Calling FUNCTION: addPointerUpListener","color: green;");try{this.unsubscribeFromSelectionChangeListener(),this.unlistenSelectionChangeListener=this.renderer.listen("document","selectionchange",r=>{this.documentSelectionChange$.next(r)})}catch(r){this.loggingService.catch("Error in DomService addPointerUpListener: ",r)}}unsubscribeFromSelectionChangeListener(){try{this.unlistenSelectionChangeListener&&typeof this.unlistenSelectionChangeListener=="function"&&(this.unlistenSelectionChangeListener(),this.unlistenSelectionChangeListener=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromSelectionChangeListener: ",r)}}updateCurrentMousePosition(r){try{if(this.currentMousePosition.pageX=r.pageX,this.currentMousePosition.pageY=r.pageY,this.currentMousePosition.clientX=r.clientX,this.currentMousePosition.clientY=r.clientY,r.target){let i=this.getXPath(r.target),o=r.target;if(i?.includes("name()='svg'")){let h=this.getXPath(i);h&&(o=h.iterateNext()||r.target)}let s=o.getBoundingClientRect(),a=r.clientX-s.x,c=r.clientY-s.y,l=a*100/(s.width||1),d=c*100/(s.height||1);this.currentMousePosition.element={xpath:i,topPercentage:d,leftPercentage:l}}else this.currentMousePosition.element=null;this.currentMousePosition$.next(this.currentMousePosition)}catch(i){this.loggingService.catch("Error in DomService updateCurrentMousePosition: ",i)}}getTargetElementForCursorPosition(r,i=!0,o=!1,s=!0,a,c=!0,l,d){try{let h=r,f=h?.touches?.length?h.touches[0]?.clientX:h?.clientX,g=h?.touches?.length?h.touches[0]?.clientY:h?.clientY;l&&(f=l.clientX,g=l.clientY);let E=this.getBackgroundElement(f,g,i,o);if(E&&a&&typeof a=="function"&&(E=a(E)),E){let I=this.getXPath(E,!1,!1,void 0,d),S=this.getXPath(E,!0),L=E.getBoundingClientRect(),V=f-L.x,K=g-L.y,oe=V*100/(L.width||1),ge=K*100/(L.height||1),te={xpath:I,fXpath:S,leftPercentage:oe,topPercentage:ge};if(s){let C=this.getXPath(E,!0,!0);te.cfXpath=C}if(c){let C=this.generateAnchorRecord(E,d);C&&(te.anchor=C)}return te}else return null}catch(h){return this.loggingService.catch("Error in DomService getTargetElementForCommentPinAnnotation: ",h),null}}getBackgroundElement(r,i,o=!0,s=!1){try{let a=document.elementsFromPoint(r,i),c=[];a.forEach(d=>{qi(d)?c=[]:id(d)&&c.push(d)}),s&&(c=c.filter(d=>this.isElementVisibleOnScreen(d)));let l=0;return o||c?.forEach((d,h)=>{d.tagName.toLowerCase()==="svg"&&(l=h)}),c[l]}catch(a){return this.loggingService.catch("Error in DomService getBackgroundElement: ",a),null}}getBackgroundVeltElement(r,i){try{let o=document.elementsFromPoint(r,i),s=[];return o.forEach(a=>{qi(a)&&id(a)&&s.push(a)}),s[0]}catch(o){return this.loggingService.catch("Error in DomService getBackgroundSnippylyElement: ",o),null}}setPointerPosition(r){this.loggingService.log("%c[WB] Calling FUNCTION: setPointerPosition","color: green;");try{this.previousMousePosition.pageX=r.pageX,this.previousMousePosition.pageY=r.pageY,this.currentMousePosition.pageX=r.pageX,this.currentMousePosition.pageY=r.pageY}catch(i){this.loggingService.catch("Error in DomService setPointerPosition: ",i)}}getCurrentWindowSize$(r){return this.loggingService.log("%c[WB] Calling FUNCTION: getCurrentWindowSize","color: green;"),this.currentScreenSize$.asObservable()}getCurrentMousePosition$(){return this.loggingService.log("%c[WB] Calling FUNCTION: getCurrentMousePosition","color: green;"),this.currentMousePosition$.asObservable()}getCurrentWindowSizeValue(){return this.loggingService.log("%c[WB] Calling FUNCTION: getCurrentWindowSizeValue","color: green;"),this.currentScreenSize$.value}getTopLeftPosition(){this.loggingService.log("%c[WB] Calling FUNCTION: getTopLeftPosition","color: green;");try{let r=document?.body?.getBoundingClientRect()||document?.documentElement?.getBoundingClientRect(),i=this.currentMousePosition?.pageX||r.x+200,o=Math.min(i,r.width/2),s=Math.abs(r.y),a=r.y-20;return s>50&&(a=Math.abs(r.y)+180),this.loggingService.log(r),this.loggingService.log(o),this.loggingService.log(a),{topPositionX:o,topPositionY:a}}catch(r){return this.loggingService.catch("Error in DomService getTopLeftPosition: ",r),{topPositionX:0,topPositionY:0}}}toggleSelection(){this.enableRectSelectionSubject$.next(!this.enableRectSelectionSubject$.value)}enableSelection(){this.enableRectSelectionSubject$.next(!0)}disableSelection(){this.enableRectSelectionSubject$.next(!1)}setPinHighlighterClass(r){this.pinHighlighterClass$.next(r)}setTextHighlighterClass(r){this.textHighlighterClass$.next(r)}getTextHighlighterClass(){return this.textHighlighterClass$.asObservable()}enableCommentPinHighlighter(){this.commentPinHighlighter$.next(!0)}disableCommentPinHighlighter(){this.commentPinHighlighter$.next(!1)}getCommentPinHighlighter$(){return this.commentPinHighlighter$.asObservable()}getCommentPinHighlighter(){return this.commentPinHighlighter$?.value}highlightElement(r,i,o){if(r&&!Oc(r)){if(!o&&this.getCommentPinHighlighter()&&(this.pinHighlighterClass$.value?this.addClassToElement(r,this.pinHighlighterClass$.value):this.addClassToElement(r,F.SNIPPYLY_HIGHLIGHT)),i&&!r.hasAttribute(F.ATTRIBUTES.DEFAULT_CURSOR)){let s=r.style.getPropertyValue("cursor"),a=r.style.getPropertyPriority("cursor"),c=s?{defaultCursorValue:s,defaultCursorPriority:a}:"";r.setAttribute(F.ATTRIBUTES.DEFAULT_CURSOR,c?JSON.stringify(c):""),r.style.setProperty("cursor",i,"important")}r.setAttribute(F.SNIPPYLY_HIGHLIGHT,"true"),r.setAttribute(F.VELT_IGNORE_CHANGE_DETECTION,"true")}}removeHighlightFromElement(r){if(r&&(this.pinHighlighterClass$.value&&this.removeClassFromElement(r,this.pinHighlighterClass$.value),this.removeClassFromElement(r,F.SNIPPYLY_HIGHLIGHT),r.removeAttribute(F.SNIPPYLY_HIGHLIGHT),r.removeAttribute(F.VELT_IGNORE_CHANGE_DETECTION),r.hasAttribute(F.ATTRIBUTES.DEFAULT_CURSOR))){try{if(r.style.removeProperty("cursor"),r.getAttribute(F.ATTRIBUTES.DEFAULT_CURSOR)){let i=JSON.parse(r.getAttribute(F.ATTRIBUTES.DEFAULT_CURSOR));r.style.setProperty("cursor",i.defaultCursorValue,i.defaultCursorPriority)}}catch{}r.removeAttribute(F.ATTRIBUTES.DEFAULT_CURSOR)}}highlightUserElement(r,i,o,s=!1){try{r&&(this.addClassToElement(r,F.VELT_LIVE_SELECTION_ON_ELEMENT),s&&this.addClassToElement(r,F.VELT_LIVE_SELECTION_ON_ELEMENT_DEFAULT),r.setAttribute(F.SNIPPYLY_HIGHLIGHT,"true"),r.setAttribute(F.VELT_IGNORE_CHANGE_DETECTION,"true"),i&&!r.style.getPropertyValue(F.VELT_SELECTION_COLOR)&&r.style.setProperty(F.VELT_SELECTION_COLOR,i),o&&r.setAttribute(F.SNIPPYLY_HIGHLIGHT_USER_NAME,o))}catch(a){this.loggingService.catch("Error in DomService highlightUserElement: ",a)}}removeHighlightUserFromElement(r){try{r&&(this.removeClassFromElement(r,F.VELT_LIVE_SELECTION_ON_ELEMENT),this.removeClassFromElement(r,F.VELT_LIVE_SELECTION_ON_ELEMENT_DEFAULT),r.removeAttribute(F.SNIPPYLY_HIGHLIGHT),r.removeAttribute(F.VELT_IGNORE_CHANGE_DETECTION),r.removeAttribute(F.VELT_SELECTION_COLOR),r.removeAttribute(F.SNIPPYLY_HIGHLIGHT_USER_NAME),r.style.removeProperty(F.VELT_SELECTION_COLOR))}catch(i){this.loggingService.catch("Error in DomService removeHighlightUserFromElement: ",i)}}previewHighlightElement(r){r&&r.setAttribute(F.SNIPPYLY_HIGHLIGHT_PREVIEW,"true")}removePreviewHighlightFromElement(r){r&&r.removeAttribute(F.SNIPPYLY_HIGHLIGHT_PREVIEW)}getXPath(r,i=!1,o=!1,s,a){try{let c=this.calculateXPath(r,i,o,s,a);if(c&&typeof c=="string"&&c.includes("/svg")){let l=c.split("/"),d=!1;l.forEach((h,f)=>{h.includes("svg")&&(d=!0),d&&(l[f]="svg:"+h)}),c=l.join("/")}return c}catch(c){this.loggingService.catch("Error in DomService getXPath:",c)}}namespaceResolver(r){return r==="svg"?"http://www.w3.org/2000/svg":null}calculateXPath(r,i,o,s,a){try{if(r){if(typeof r=="string")return document.evaluate(r,s||document,this.namespaceResolver,XPathResult.ANY_TYPE,null);if(!r||r.nodeType!=1)return"";if(r.id&&document.querySelectorAll(`[id='${r.id}']`)?.length===1&&!i&&!(a?.ignoreGeneratedIds&&this.isGeneratedId(r.id)))return"//*[@id='"+r.id+"']";if(o&&r.className&&r.className.split){let l=r.className?.split(" ")?.filter(d=>!d?.includes("snippyly")&&!d?.includes("velt")&&!["show-pin-cursor"].includes(d))[0];if(l){let d=this.calculateXPath(r.parentNode,i,o,s,a)+"/"+r.tagName.toLowerCase(),h=Array.from(r.parentNode?.children||[]).filter(f=>f.nodeType===1&&f.tagName===r.tagName?f.className?.split(" ")?.filter(E=>E?.includes("snippyly")||E?.includes("velt")||["show-pin-cursor"].includes(E))[0]===l:!1);if(h.length>1){let f=h.indexOf(r)+1;d+=`[contains(concat(' ', normalize-space(@class), ' '), ' ${l} ')][${f}]`}else d+=`[contains(concat(' ', normalize-space(@class), ' '), ' ${l} ')]`;return d}}let c=[].filter.call(r.parentNode?.children?r.parentNode?.children:[],function(l){return l.tagName==r.tagName});return this.calculateXPath(r.parentNode,i,o,void 0,a)+"/"+r.tagName.toLowerCase()+(c.length>1?"["+([].indexOf.call(c,r)+1)+"]":"")}}catch(c){this.loggingService.catch("Error in DomService calculateXPath:",c)}}getElementFromXPath(r,i=document){try{if(this.xpathCache.has(r)){let s=this.xpathCache.get(r);if(s!==void 0&&document.contains(s))return s;this.xpathCache.delete(r)}let o=this.getXPath(r,!1,!1,i);if(o){let s=o?.iterateNext();if(s!==null&&typeof s.setAttribute=="function"&&!Oc(s)){let a=rd();s.setAttribute(F.ATTRIBUTES.VELT_ELEMENT_CACHE_ID,a),this.xpathCacheId.set(a,r)}return this.xpathCache.set(r,s),s}return null}catch(o){return this.loggingService.catch("Error in DomService getElementFromXPath:",o),null}}getElementFromTargetElement(r){try{let i=null;if(r?.anchor){let o=this.resolveAnchorRecord(r.anchor);o?.element&&(i=o.element)}else r?.xpath?i=this.getElementFromXPath(r.xpath):r?.cfXpath?i=this.getElementFromXPath(r.cfXpath):r?.fXpath&&(i=this.getElementFromXPath(r.fXpath));return i}catch(i){return this.loggingService.catch("Error in DomService getElementFromTargetElement:",i),null}}resolveIdScopedTarget(r){try{let i=r?.anchor?.xPath||r?.xpath,o=HN(i);if(!i||!o||this.isGeneratedId(o.rootId))return{applicable:!1,element:null};let s=this.getUniqueElementById(o.rootId);if(!s||!this.isElementVisible(s)||!id(s))return{applicable:!0,element:null};let a=d=>!!d&&s.contains(d)&&this.isElementVisible(d),c=this.getElementFromXPath(i);if(a(c))return{applicable:!0,element:c,matchedBy:"exact"};let l=r?.anchor?.robustXPath;if(l&&HN(l)?.rootId===o.rootId){let d=this.getElementFromRobustXPath(l);if(a(d))return{applicable:!0,element:d,matchedBy:"robust"}}return{applicable:!0,element:s,matchedBy:"root"}}catch(i){return this.loggingService.catch("Error in DomService resolveIdScopedTarget: ",i),{applicable:!1,element:null}}}getUniqueElementById(r){try{let i=document.querySelectorAll(`[id="${CSS.escape(r)}"]`);return i.length===1?i[0]:null}catch{return null}}getElementFromTargetTextRange(r){try{let i=null;if(r?.commonAncestorContainerAnchor){let o=this.resolveAnchorRecord(r.commonAncestorContainerAnchor);o?.element&&(i=o.element)}else r?.commonAncestorContainer&&(i=this.getElementFromXPath(r.commonAncestorContainer));return i}catch(i){return this.loggingService.catch("Error in DomService getElementFromTargetTextRange:",i),null}}calculateScreenSize(){this.loggingService.log("%c[WB] Calling FUNCTION: onWindowResize","color: green;");try{let r=[document?.body?.clientHeight||0,document?.documentElement?.clientHeight||0,window?.innerHeight||0],i=[document?.body?.clientWidth||0,document?.documentElement?.clientWidth||0,window?.innerWidth||0];this.calculatePageScrollHeight(),this.loggingService.log(this.pageScrollHeight),this.loggingService.log(this.nodeMap),this.highestNode=this.nodeMap[this.pageScrollHeight];let o=new rp;return o.screenWidth=Math.max(...i),o.screenHeight=Math.max(...r),o.screenScrollHeight=this.pageScrollHeight,o}catch(r){return this.loggingService.catch("Error in DomService calculateScreenSize:",r),new rp}}calculatePageScrollHeight(){this.loggingService.log("%c[WB] Calling FUNCTION: calculatePageScrollHeight","color: green;");try{this.pageScrollHeight=0,this.findLongestNode(document?.documentElement?.childNodes)}catch(r){this.loggingService.catch("Error in DomService calculatePageScrollHeight: ",r)}}removeSnippylyContent(r){this.loggingService.log("%c[WB] Calling FUNCTION: removeSnippylyContent","color: green;");try{let o=new DOMParser().parseFromString(r,"text/html");o.querySelectorAll("[data-snippyly-cache-id]").forEach(f=>{f.removeAttribute("data-snippyly-cache-id")}),o.querySelectorAll("[data-velt-cache-id]").forEach(f=>{f.removeAttribute("data-velt-cache-id")}),o.querySelectorAll(".comment-text-highlight").forEach(f=>{f?.parentNode?.insertBefore(document.createTextNode(f?.textContent),f),f.remove()});let l=document.createNodeIterator(o,NodeFilter.SHOW_COMMENT),d;for(;d=l.nextNode();)d?.remove();return this.mergeAdjacentTextNodes(o.body),this.sanitizeHtml(o.body.innerHTML)}catch(i){return this.loggingService.catch("Error in DomService removeSnippylyContent: ",i),r}}mergeAdjacentTextNodes(r){try{let i=r.firstChild;for(;i;){if(i.nodeType===Node.TEXT_NODE){let o=i.nextSibling;for(;o&&o.nodeType===Node.TEXT_NODE;)i.textContent+=o.textContent,o.remove(),o=i.nextSibling}i=i.nextSibling}}catch(i){this.loggingService.catch("Error in DomService mergeAdjacentTextNodes: ",i)}}findLongestNode(r){try{for(let i=r.length-1;i>=0;i--){if(r[i]?.scrollHeight&&r[i]?.clientHeight){let o=Math.max(r[i]?.scrollHeight,r[i]?.clientHeight);this.pageScrollHeight=Math.max(o,this.pageScrollHeight),this.nodeMap[o]=r[i]}r[i]?.childNodes?.length&&this.findLongestNode(r[i]?.childNodes)}}catch(i){this.loggingService.catch("Error in DomService findLongestNode: ",i)}}resetSelectedAnnotationsMap(r=!0,i){try{let o=Array.from(document.querySelectorAll(`[${F.ATTRIBUTES.VELT_ANNOTATION_DRAFT}]`)),s=this.getDraftCommentAnnotationDialogs()||[];o.push(...s),o=Array.from(new Set(o));let a=o.map(h=>h.classList.contains("velt-annotation-draft-checked")?(h.classList.remove("velt-annotation-draft-checked"),null):(this.removeClassFromElement(h,"velt-comment-dialog-shake"),setTimeout(()=>{this.addClassToElement(h,"velt-comment-dialog-shake"),h.getAttribute(F.ATTRIBUTES.VELT_ANNOTATION_EDIT_COMMENT)||h.classList.contains("velt-annotation-draft-checked")||this.addClassToElement(h,"velt-annotation-draft-checked")},100),h.getAttribute(F.ATTRIBUTES.VELT_ANNOTATION_DRAFT))).filter(h=>h),c=Object.keys(this.getRecordingInProgress()||{});a=[...a,...c];let l=this.selectedAnnotationsMap$.value;if(r&&this.selectedAnnotationsMap$.value&&Object.keys(this.selectedAnnotationsMap$.value).length){let h=[];Object.keys(l).forEach(f=>{if(l[f]?.type==="tag"){let g=l[f];g?.to?.length||a.includes(f)||h.push(g)}else l[f]?.comments?.length||a.includes(f)||h.push(l[f])}),this.deleteAnnotations$.next(h),this.deleteAnnotations$.next([])}let d={};Object.keys(l).forEach(h=>{a.includes(h)&&(d[h]=l[h]),i&&(i==="comment"?["comment","videoPin"].includes(l[h]?.type)||(d[h]=l[h]):l[h]?.type!==i&&(d[h]=l[h]))}),Object.keys(d).forEach(h=>{let f=d[h]?.multiThreadAnnotationId;f&&!d[f]&&(d[f]={annotationId:f,type:"multiThread"})}),JSON.stringify(this.selectedAnnotationsMap$.value)!==JSON.stringify(d)&&this.selectedAnnotationsMap$.next(d),this.setDialogOpenedInSidebar(!1)}catch(o){this.loggingService.catch("Error in DomService resetSelectedAnnotationsMap: ",o)}}setRecordingInProgress(r,i){try{if(i)this.recordingInProgress$.next(me(B({},this.recordingInProgress$.value),{[r]:i}));else{let o=this.recordingInProgress$.value;delete o[r],this.recordingInProgress$.next(o)}}catch(o){this.loggingService.catch("Error in DomService setRecordingInProgress: ",o)}}resetRecordingInProgress(){try{this.recordingInProgress$.next({})}catch(r){this.loggingService.catch("Error in DomService resetRecordingInProgress: ",r)}}getRecordingInProgress(){try{return this.recordingInProgress$.value}catch(r){return this.loggingService.catch("Error in DomService getRecordingInProgress: ",r),{}}}getDraftCommentAnnotationDialogs(){try{let r=[],i=Array.from(document.querySelectorAll(`${F.TAGS.SNIPPYLY_COMMENT_DIALOG}`)),o=Array.from(document.querySelectorAll(`${F.TAGS.VELT_COMMENT_DIALOG}`));return[...i,...o].forEach(a=>{if(a?.shadowRoot){let c=a.shadowRoot.querySelector(`[${F.ATTRIBUTES.VELT_ANNOTATION_DRAFT}]`);c&&r.push(c)}else{let c=a.querySelector(`${F.TAGS.VELT_SHADOW_DOM_INTERNAL}`);if(c?.shadowRoot){let l=c.shadowRoot?.querySelector(`[${F.ATTRIBUTES.VELT_ANNOTATION_DRAFT}]`);l&&r.push(l)}else{let l=a.querySelector(`[${F.ATTRIBUTES.VELT_ANNOTATION_DRAFT}]`);l&&r.push(l)}}}),r}catch(r){return this.loggingService.catch("Error in DomService getDraftCommentAnnotationDialogs: ",r),[]}}getSelectedAnnotationsMap(r){try{let i=this.selectedAnnotationsMap$.value;if(r){let o={};return Object.keys(i).forEach(s=>{r==="comment"?["comment","videoPin"].includes(i[s].type)&&(o[s]=i[s]):i[s].type===r&&(o[s]=i[s])}),o}else return i}catch(i){return this.loggingService.catch("Error in DomService getSelectedAnnotationsMap: ",i),{}}}getSelectedAnnotationsMap$(r){return this.selectedAnnotationsMap$.asObservable().pipe(De(i=>{if(r){let o={};return Object.keys(i).forEach(s=>{i[s].type===r&&(o[s]=i[s])}),o}else return i}))}getSelectedComments$(){return this.selectedAnnotationsMap$.asObservable().pipe(De(r=>Object.values(r)))}getSelectedAnnotationsLocationMap(){try{return this.selectedAnnotationsLocationMap$.value}catch(r){return this.loggingService.catch("Error in DomService getSelectedAnnotationsLocationMap: ",r),{}}}getSelectedAnnotationsLocationMap$(){return this.selectedAnnotationsLocationMap$.asObservable()}getSelectedAnnotationsContextIdMap(){try{return this.selectedAnnotationsContextIdMap$.value}catch(r){return this.loggingService.catch("Error in DomService getSelectedAnnotationsContextIdMap: ",r),{}}}getSelectedAnnotationsContextIdMap$(){return this.selectedAnnotationsContextIdMap$.asObservable()}toggleAnnotationSelection(r,i,o,s=!1,a,c){try{o==="sidebarShowReplies"?this.setDialogOpenedInSidebar(!0):this.setDialogOpenedInSidebar(!1);let l=JSON.parse(JSON.stringify(this.selectedAnnotationsMap$.value||{})),d=JSON.parse(JSON.stringify(this.selectedAnnotationsLocationMap$.value||{})),h=JSON.parse(JSON.stringify(this.selectedAnnotationsContextIdMap$.value||{}));l[r.annotationId]&&!s?delete l[r.annotationId]:((!this.windowKeydownShift$.value||s)&&(l={}),l[r.annotationId]=r,d[r.annotationId]=i,c&&(h[r.annotationId]=c),a=r?.multiThreadAnnotationId||a,a&&(l[a]={annotationId:a,type:"multiThread"},d[a]=i,c&&(h[a]=c))),this.selectedAnnotationsMap$.next(l),Object.keys(d).forEach(f=>{l[f]||delete d[f]}),this.selectedAnnotationsLocationMap$.next(d),Object.keys(h).forEach(f=>{l[f]||delete h[f]}),this.selectedAnnotationsContextIdMap$.next(h)}catch(l){this.loggingService.catch("Error in DomService toggleAnnotationSelection: ",l)}}setSelectedAnnotationLocation(r,i){try{let o=JSON.parse(JSON.stringify(this.getSelectedAnnotationsLocationMap()||{}));o?.[r]!==i&&(o[r]=i,this.selectedAnnotationsLocationMap$.next(o))}catch(o){this.loggingService.catch("Error in DomService setSelectedAnnotationLocation: ",o)}}updateSelectedAnnotationInMap(r){try{let i=this.selectedAnnotationsMap$.value;r.forEach(o=>{i[o.annotationId]&&(i[o.annotationId]=o)}),this.selectedAnnotationsMap$.next(i)}catch(i){this.loggingService.catch("Error in DomService updateSelectedAnnotationInMap: ",i)}}getDeleteCommmentAnnotations$(){try{return this.deleteAnnotations$.asObservable()}catch(r){return this.loggingService.catch("Error in DomService getDeleteCommmentAnnotations$: ",r),lt([])}}getHighestNode(){return this.loggingService.log("%c[WB] Calling FUNCTION: getHighestNode","color: green;"),this.highestNode}onWindowMouseDown$(){return this.windowMouseDown$.asObservable()}onWindowPointerMove$(){return this.windowPointerMove$.asObservable()}onWindowPointerMove(){return this.windowPointerMove$.value}onWindowPointerUp$(){return this.windowPointerUp$.asObservable()}onSelectionChange$(){return this.documentSelectionChange$.asObservable()}onWindowClick$(){return this.windowClick$.asObservable()}onWindowScroll$(){return this.windowScroll$.asObservable()}onWindowResize$(){return this.windowResize$.asObservable()}onWindowKeyupBackspace$(){return this.windowKeyupBackspace$.asObservable()}onWindowKeyupDelete$(){return this.windowKeyupDelete$.asObservable()}onWindowKeyupEsc$(){return this.windowKeyupEsc$.asObservable()}onWindowPopState$(){return this.windowPopState$.asObservable()}onDocumentClick$(){return this.documentClick$.asObservable()}getLastDocumentClick(){return this.documentClick$.value}onDocumentClickSubject$(){return this.documentClickSubject$.asObservable()}onDocumentFocus$(){return this.documentFocus$.asObservable()}onDomChange$(r){try{return this.mutationObserver||this.setMutationObserver(r),this.mutation$.asObservable()}catch(i){return this.loggingService.catch("Error in DomService onDomChange$: ",i),lt([])}}getChildListMutation$(){return this.childListMutation$.asObservable()}onNetworkStatusChange$(){return this.networkStatus$.asObservable()}getNetworkStatus(){return this.networkStatus$.value}getElementOffset(r,i){try{let o={offsetTop:0,offsetLeft:0},s=r;if(s===i){let a=window.getComputedStyle(r);a.position==="static"&&a.transformStyle!="preserve-3d"&&a.transform=="none"&&(o.offsetLeft=r?.offsetLeft||0,o.offsetTop=r?.offsetTop||0)}if(s!==i)if(r?.closest("svg"))for(;s&&s!==i;){let c=window.getComputedStyle(s);if(s.tagName.toLowerCase()==="svg"||s instanceof SVGElement){let l=s.parentElement;if(l){let d=l.getBoundingClientRect(),h=s.getBoundingClientRect();o.offsetLeft+=h.left-d.left,o.offsetTop+=h.top-d.top}}else c.position==="static"?c.transformStyle!="preserve-3d"&&c.transform=="none"&&(o.offsetLeft+=s?.offsetLeft||0,o.offsetTop+=s?.offsetTop||0):(o.offsetLeft+=s.offsetLeft,o.offsetTop+=s.offsetTop);if(s=s.parentElement,r instanceof SVGElement&&s===i){let l=window.getComputedStyle(s);l.position==="static"&&l.transformStyle!="preserve-3d"&&l.transform=="none"&&(o.offsetLeft+=s?.offsetLeft||0,o.offsetTop+=s?.offsetTop||0)}}else{let c=window.getComputedStyle(s);c.position==="static"?c.transformStyle!="preserve-3d"&&c.transform=="none"&&(o.offsetLeft+=s?.offsetLeft||0,o.offsetTop+=s?.offsetTop||0):(o.offsetLeft+=s.offsetLeft,o.offsetTop+=s.offsetTop)}return o}catch(o){return this.loggingService.catch("Error in DomService getElementOffset: ",o),{offsetTop:0,offsetLeft:0}}}isElementVisible(r){try{if(typeof r?.getBoundingClientRect=="function"){let{width:i,height:o,top:s,bottom:a}=r?.getBoundingClientRect();return i>0||o>0||s<window.innerHeight&&a>0}else return!1}catch(i){return this.loggingService.catch("Error in DomService isElementVisible: ",i),!1}}isElementVisibleOnScreen(r){try{if(r){if(!(r instanceof Element))return!1;let i=r,o=window.getComputedStyle(i);return!(o.display==="none"||o.visibility==="hidden"||parseFloat(o.opacity)===0)}return!1}catch(i){return this.loggingService.catch("Error in DomService isElementVisibleOnScreen: ",i),!1}}getClickAndDragPointsObservable(){return new fe(r=>{let i=wi(document,"mousedown").pipe(De(l=>({type:l.type,x:l.clientX+window.scrollX,y:l.clientY+window.scrollY,event:l}))),o=wi(document,"mousemove").pipe(De(l=>({type:l.type,x:l.clientX+window.scrollX,y:l.clientY+window.scrollY,event:l}))),s=wi(document,"mouseup").pipe(De(l=>({type:l.type,x:l.clientX+window.scrollX,y:l.clientY+window.scrollY,event:l}))),c=i.pipe(Mr(l=>o.pipe(Ya(),De(([d,h])=>({startPoint:l,prevPoint:d,curPoint:h})),ps(s)))).subscribe(r);return()=>c.unsubscribe()})}drawRectangle(r,i){let o=document.querySelector(".rectangle");o||(o=document.createElement("div"),this.addClassToElement(o,"rectangle"),o.setAttribute(F.ATTRIBUTES.VELT_COMMENT_DISABLED,"true"),o.setAttribute(F.VELT_IGNORE_CHANGE_DETECTION,"true"),document.body.appendChild(o));let s=Math.abs(i.x-r.x),a=Math.abs(i.y-r.y),c=Math.min(r.x,i.x),l=Math.min(r.y,i.y);return o.style.width=`${s}px`,o.style.height=`${a}px`,o.style.left=`${c}px`,o.style.top=`${l}px`,o.style.position="absolute",o.style.border="2px dashed #f00",o.style.pointerEvents="none",o.style.zIndex="2147483577",o}getRange(){try{if(this.loggingService.log("%c[WB] Calling FUNCTION: getRange","color: green;"),window.getSelection()?.toString()){let r=window.getSelection();if(r?.rangeCount)return r.getRangeAt(0)}return null}catch(r){return this.loggingService.catch("Error in DomService getRange: ",r),null}}clearTextSelection(){try{this.loggingService.log("%c[WB] Calling FUNCTION: clearTextSelection","color: green;"),window.getSelection&&(window.getSelection()?.empty?window.getSelection()?.empty():window.getSelection()?.removeAllRanges&&window.getSelection()?.removeAllRanges())}catch(r){this.loggingService.catch("Error in DomService clearTextSelection: ",r)}}getTargetTextRangeFromSelectionRange(r){try{let i={},o=r.commonAncestorContainer;o?.nodeType===Node.TEXT_NODE&&(o=o.parentElement);let s=document.body;if(o){let c=this.getTextXPath(o);this.isXpathWithId(c)&&(s=o)}let a=this.getAdditionalLocationContainer(o);if(a&&(s=a),i.commonAncestorContainer=this.getTextXPath(s),i.commonAncestorContainer){let c=this.getElementFromXPath(i.commonAncestorContainer);if(c){i.commonAncestorContainerFXpath=this.getXPath(c,!0),i.commonAncestorContainerCFXpath=this.getXPath(c,!0,!0);let l=this.generateAnchorRecord(c);l&&(i.commonAncestorContainerAnchor=l)}}return i.text=r.toString(),i.occurrence=gR(s,0,r.startContainer,r.startOffset,r.toString())+1,i}catch(i){this.loggingService.catch("Error in DomService getTargetTextRangeFromSelectionRange: ",i);return}}getTextXPath(r){try{if(this.loggingService.log("%c[WB] Calling FUNCTION: getTextXPath","color: green;"),r.nodeType===Node.TEXT_NODE){let i=1,o=r.previousSibling;for(;o;)o.nodeType===Node.TEXT_NODE&&i++,o=o.previousSibling;return this.getXPath(r.parentElement)}else return this.getXPath(r)}catch(i){this.loggingService.catch("Error in DomService getTextXPath: ",i);return}}getHostElement(r){try{if(F.NON_NESTABLE_ELEMENTS[r?.tagName?.toLowerCase()]){let o=r?.closest("picture");return o?o?.parentElement:r.parentElement}let i=r.closest("svg");return i?i?.parentElement:r}catch(i){return this.loggingService.catch("Error in DomService getHostElement: ",i),r}}isElementInsideAdditionalLocationContainer(r){try{return!!r?.closest(`[${F.ATTRIBUTES.VELT_LOCATION}], [${F.ATTRIBUTES.VELT_LOCATION_ID}]`)}catch(i){return this.loggingService.catch("Error in DomService isElementInsideAdditionalLocationContainer: ",i),!1}}getAdditionalLocationContainer(r){try{return r?.closest(`[${F.ATTRIBUTES.VELT_LOCATION}], [${F.ATTRIBUTES.VELT_LOCATION_ID}]`)||null}catch(i){return this.loggingService.catch("Error in DomService getAdditionalLocationContainer: ",i),null}}isXpathWithId(r){try{return typeof r=="string"?!!r?.includes("[@id="):!1}catch(i){return this.loggingService.catch("Error in DomService isXpathWithId: ",i),!1}}getListedElements({elementIds:r,elementClassNames:i,elementQuerySelectors:o}){try{let s=[];if(r?.length)for(let a=0;a<r.length;a++){let c=document.getElementById(r[a]);c&&s.push(c)}if(i?.length)for(let a=0;a<i.length;a++){let c=document.getElementsByClassName(i[a]);for(let l=0;l<c.length;l++){let d=c[l];d&&d instanceof HTMLElement&&s.push(d)}}if(o?.length)for(let a=0;a<o.length;a++){let c=document.querySelectorAll(o[a]);for(let l=0;l<c.length;l++){let d=c[l];d&&d instanceof HTMLElement&&s.push(d)}}return s}catch(s){return this.loggingService.catch("Error in DomService getListedElements: ",s),[]}}isElementInsideListedElementIds(r,i){try{if(i?.length){for(let o=0;o<i.length;o++){let s=document.getElementById(i[o]);if(s&&s.contains(r))return!0}return!1}return!0}catch(o){return this.loggingService.catch("Error in DomService isElementInsideListedElementIds: ",o),!1}}isElementInsideListedElementClassNames(r,i){try{if(i?.length){for(let o=0;o<i.length;o++){let s=document.getElementsByClassName(i[o]);for(let a=0;a<s.length;a++)if(s[a].contains(r))return!0}return!1}return!0}catch(o){return this.loggingService.catch("Error in DomService isElementInsideListedElementClassNames: ",o),!1}}isElementInsideListedElementQuerySelectors(r,i){try{if(i?.length){for(let o=0;o<i.length;o++){let s=document.querySelectorAll(i[o]);for(let a=0;a<s.length;a++)if(s[a].contains(r))return!0}return!1}return!0}catch(o){return this.loggingService.catch("Error in DomService isElementInsideListedElementQuerySelectors: ",o),!1}}addClassToElement(r,i){try{this.loggingService.log("%c[WB] Calling FUNCTION: addClassToElement","color: green;"),r&&(r.classList?.contains(i)||r.classList?.add(i))}catch(o){this.loggingService.catch("Error in DomService addClassToElement: ",o)}}removeClassFromElement(r,i){try{this.loggingService.log("%c[WB] Calling FUNCTION: removeClassFromElement","color: green;"),r&&r.classList?.contains(i)&&r.classList?.remove(i)}catch(o){this.loggingService.catch("Error in DomService removeClassFromElement: ",o)}}isElementInsideParentWithAttribute(r,i,o){try{let s=r;for(;s&&s!==document.body;){if(s?.getAttribute&&s?.getAttribute(i)===o)return!0;s=s.parentElement}return!1}catch(s){return this.loggingService.catch("Error in DomService isElementInsideParentWithAttribute: ",s),!1}}setVideoEditorHandlingDelete(r){try{this.isVideoEditorHandlingDelete=r}catch(i){this.loggingService.catch("Error in DomService setVideoEditorHandlingDelete: ",i)}}isVideoEditorHandlingDeleteKey(){try{return this.isVideoEditorHandlingDelete}catch(r){return this.loggingService.catch("Error in DomService isVideoEditorHandlingDeleteKey: ",r),!1}}setCustomCss(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: setCustomCss","color: green;"),this.customCss$.next(r)}catch(i){this.loggingService.catch("Error in DomService setCustomCss: ",i)}}getCustomCss$(){try{return this.loggingService.log("%c[WB] Calling FUNCTION: getCustomCss$","color: green;"),this.customCss$.asObservable()}catch(r){return this.loggingService.catch("Error in DomService getCustomCss$: ",r),lt(null)}}injectCustomCss(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: injectCustomCss","color: green;");let i=this.customCss$.value;if(i){let o=r?.shadowRoot?.querySelector(`[${F.VELT_CUSTOM_CSS}]`);if(o&&o.remove(),i?.type==="link"){let s=document.createElement("link");s.href=i?.value,s.rel="stylesheet",s.setAttribute(F.VELT_CUSTOM_CSS,"true"),r?.shadowRoot?.appendChild(s)}else{let s=document.createElement("style");s.innerHTML=this.sanitizeHtml(i?.value),s.setAttribute(F.VELT_CUSTOM_CSS,"true"),r?.shadowRoot?.appendChild(s)}}}catch(i){this.loggingService.catch("Error in DomService injectCustomCss: ",i)}}subscribeInjectCustomCss(r){try{return this.customCss$.subscribe(()=>{this.injectCustomCss(r?.nativeElement)})}catch(i){return this.loggingService.catch("Error in DomService subscribeInjectCustomCss: ",i),new gt}}trimCommentHtml(r){try{let i=document.createElement("div");i.innerHTML=r,this.removeEmptyElements(i);let o=i.innerHTML;return o=o.replace(e.MULTIPLE_NBSP_REGEX," ").replace(e.TRIM_NBSP_REGEX,"").trim(),o}catch(i){return this.loggingService.catch("Error in DomService trimCommentHtml: ",i),r}}removeEmptyElements(r){try{let s=function(a){return o.test(a.innerHTML)};var i=s;let o=/^\s*(<br\s*\/?>)?\s*$/;for(;r.firstChild&&s(r.firstChild);)r.removeChild(r.firstChild);for(;r.lastChild&&s(r.lastChild);)r.removeChild(r.lastChild)}catch(o){this.loggingService.catch("Error in DomService removeEmptyElements: ",o)}}normalizeWhitespace(r){try{r.childNodes.forEach(i=>{i.nodeType===Node.TEXT_NODE?i.nodeValue=i.nodeValue?.replace(/\s+/g," ").trim()??"":i.nodeType===Node.ELEMENT_NODE&&this.normalizeWhitespace(i)})}catch(i){this.loggingService.catch("Error in DomService normalizeWhitespace: ",i)}}sanitizeHtml(r){try{return this.loggingService.log("%c[WB] Calling FUNCTION: sanitizeHtml","color: green;"),fy.sanitize(r,O2)}catch(i){return this.loggingService.catch("Error in DomService sanitizeHtml: ",i),""}}sanitizeHtmlForPaste(r){try{let i=this.convertStylesToTags(r);return fy.sanitize(i,{ALLOWED_TAGS:["b","strong","i","em","u","a","br"],ALLOWED_ATTR:["href","target","rel"]})}catch(i){return this.loggingService.catch("Error in DomService sanitizeHtmlForPaste: ",i),""}}convertStylesToTags(r){try{let i=document.createElement("div");return i.innerHTML=r,this.convertBlockElementsToBr(i),this.processNodeStyles(i),i.innerHTML}catch(i){return this.loggingService.catch("Error in DomService convertStylesToTags: ",i),r}}convertBlockElementsToBr(r){try{let i=["P","DIV","H1","H2","H3","H4","H5","H6","LI","BLOCKQUOTE","PRE","SECTION","ARTICLE","HEADER","FOOTER"],o;for(;(o=r.querySelector(i.join(",")))!==null;){let s=o.parentNode;if(!s)break;for(;o.firstChild;)s.insertBefore(o.firstChild,o);o.nextSibling&&s.insertBefore(document.createElement("br"),o),s.removeChild(o)}}catch(i){this.loggingService.catch("Error in DomService convertBlockElementsToBr: ",i)}}processNodeStyles(r){try{let i=Array.from(r.childNodes);for(let o of i)if(o.nodeType===Node.ELEMENT_NODE){this.processNodeStyles(o);let s=o,a=s.style,c=o,l=a?.fontWeight;if(l==="bold"||l==="700"||l==="800"||l==="900"){let d=s.tagName?.toLowerCase();if(d!=="b"&&d!=="strong"){let h=document.createElement("b");c.parentNode.insertBefore(h,c),h.appendChild(c),c=h}}if(a?.fontStyle==="italic"){let d=s.tagName?.toLowerCase();if(d!=="i"&&d!=="em"){let h=document.createElement("i");c.parentNode.insertBefore(h,c),h.appendChild(c),c=h}}if((a?.textDecorationLine?.includes("underline")||a?.textDecoration?.includes("underline"))&&s.tagName?.toLowerCase()!=="u"){let h=document.createElement("u");c.parentNode.insertBefore(h,c),h.appendChild(c),c=h}}}catch(i){this.loggingService.catch("Error in DomService processNodeStyles: ",i)}}sanitizeSvg(r){try{return fy.sanitize(r,O2)}catch(i){return this.loggingService.catch("Error in DomService sanitizeSvg: ",i),r}}setDeviceInfo(){try{this.loggingService.log("%c[WB] Calling FUNCTION: setDeviceInfo","color: green;");let r=new Ur;this.deviceInfo$.next(r)}catch(r){this.loggingService.catch("Error in DomService setDeviceInfo: ",r)}}getDeviceInfo$(){try{return this.loggingService.log("%c[WB] Calling FUNCTION: getDeviceInfo$","color: green;"),this.deviceInfo$.asObservable()}catch(r){return this.loggingService.catch("Error in DomService getDeviceInfo$: ",r),lt(new Ur)}}getTabId(){try{let r=sessionStorage.getItem(F.SESSION_STORAGE.VELT_TAB_ID);!r&&this.tabId&&(r=this.tabId,sessionStorage.setItem(F.SESSION_STORAGE.VELT_TAB_ID,r)),!this.tabId&&r&&(this.tabId=r);let i=this.getTabIdFromWindowName();return(!r||r!==i)&&(r=rd(),this.tabId=r,sessionStorage.setItem(F.SESSION_STORAGE.VELT_TAB_ID,r),this.setTabIdToWindowName(r)),r}catch(r){return this.loggingService.catch("Error in DomService getTabId: ",r),null}}getTabIdFromWindowName(){try{return window.name}catch(r){return this.loggingService.catch("Error in DomService getTabIdFromWindowName: ",r),null}}setTabIdToWindowName(r){try{window.name=r}catch(i){this.loggingService.catch("Error in DomService setTabIdToWindowName: ",i)}}getDeviceInfo(){try{return this.loggingService.log("%c[WB] Calling FUNCTION: getDeviceInfo","color: green;"),this.deviceInfo$.value}catch(r){return this.loggingService.catch("Error in DomService getDeviceInfo: ",r),new Ur}}isMobileDevice(){try{return new Ur().getDeviceType()===Er.MOBILE}catch(r){return this.loggingService.catch("Error in DomService isMobileDevice: ",r),!1}}isTabletDevice(){try{return new Ur().getDeviceType()===Er.TABLET}catch(r){return this.loggingService.catch("Error in DomService isTabletDevice: ",r),!1}}isDesktopDevice(){try{return new Ur().getDeviceType()===Er.DESKTOP}catch(r){return this.loggingService.catch("Error in DomService isDesktopDevice: ",r),!1}}deepCloneElement(r){try{var i=document.createElement(r?.tagName);return Array.from(r.attributes).forEach(o=>{i.setAttribute(o.nodeName,o.nodeValue)}),r.childNodes.forEach(o=>{o.nodeType===Node.ELEMENT_NODE?i.appendChild(this.deepCloneElement(o)):o.nodeType===Node.TEXT_NODE&&i.appendChild(document.createTextNode(o.nodeValue))}),i}catch(o){return this.loggingService.catch("Error in DomService deepCloneElement: ",o),r}}setRandomNumberToElementRecursive(r){try{if(!r)return;let i=Math.random().toString(36).substring(7);r&&r.setAttribute&&typeof r.setAttribute=="function"&&(r.getAttribute("velt-wireframe-id")||r.setAttribute("velt-wireframe-id",i)),Array.from(r.children).forEach(s=>{this.setRandomNumberToElementRecursive(s)})}catch(i){this.loggingService.catch("Error in DomService setRandomNumberToElementRecursive: ",i)}}setDialogOpenedInSidebar(r){this.dialogOpenedInSidebar$.next(r)}getDialogOpenedInSidebar(){return this.dialogOpenedInSidebar$.asObservable()}removeWireframeSuffixFromTags(r){if(!r)return;Array.from(r.children).forEach(o=>{if(this.removeWireframeSuffixFromTags(o),o.tagName.toLowerCase().endsWith("-wireframe")){let s=o.tagName.toLowerCase().replace("-wireframe",""),a=document.createElement(s);for(Array.from(o.attributes).forEach(c=>{a.setAttribute(c.name,c.value)});o.firstChild;)a.appendChild(o.firstChild);o.parentNode.replaceChild(a,o)}})}isMonitorDevice(){try{return new Ur().getDeviceType()===Er.MONITOR}catch(r){return this.loggingService.catch("Error in DomService isMonitorDevice: ",r),!1}}isElementOriginallyStatic(r){try{return window.getComputedStyle(r).position==="static"||r.hasAttribute(F.ATTRIBUTES.VELT_COMMENT_PIN_HOST_STATIC)||r.hasAttribute(F.ATTRIBUTES.VELT_AREA_PIN_HOST_STATIC)||r.hasAttribute(F.ATTRIBUTES.VELT_TAG_PIN_HOST_STATIC)||r.hasAttribute(F.ATTRIBUTES.VELT_RECORDER_PIN_HOST_STATIC)||r.hasAttribute(F.ATTRIBUTES.VELT_ARROW_PIN_HOST_STATIC)}catch(i){return this.loggingService.catch("Error in DomService isElementOriginallyStatic: ",i),!1}}};e.MULTIPLE_NBSP_REGEX=/(?: \s*){2,}/g,e.TRIM_NBSP_REGEX=/^(?: \s*)+|(?: \s*)+$/g,e.\u0275fac=function(i){return new(i||e)($(zs),$(bo),$(bt),$(XD))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();function Xc(t){let e=t?.refreshToken;return typeof e=="string"&&e.length>0?e:void 0}var $N=Symbol("velt-auth-state-pending");function are(t,e){let n=B(B({},t),e||{});return n.userId=t.userId,n.userSnippylyId=t.userSnippylyId,n.type=t.type,n.organizationId=t.organizationId,n.clientOrganizationId=t.clientOrganizationId,n.groupId=t.groupId,n.clientGroupId=t.clientGroupId,n.contacts=t.contacts,n.plan=t.plan,n.isAdmin=t.isAdmin,n.isReadOnly=t.isReadOnly,n.isAnonymous=t.isAnonymous,n.isGuest=t.isGuest,n.color=e?.color||t.color,n.textColor=e?.textColor||t.textColor,n.initial=e?.initial||n.name?.charAt(0).toUpperCase()||n.email?.charAt(0).toUpperCase()||t.initial,n?.photoUrl===void 0&&(n.photoUrl=null),n}function L2(t,e){if(!e.length)return!0;if(t.length!==e.length)return!1;let n=new Set(t);return e.every(r=>n.has(r))}var _d=(()=>{let e=class e{constructor(r,i,o,s,a,c,l,d,h){this.afAuth=r,this.configService=i,this.avatarService=o,this.coreActionsService=s,this.domService=a,this.functions=c,this.analyticsService=l,this.loggingService=d,this.serviceBook=h,this.endpointsService=Y(ly),this.portableBackend$=new ie(null),this.portableAuthUser$=new ie(null),this.user$=new ie(null),this.userOptions$=new ie(null),this.userContacts$=new ie(null),this.userOrganization$=new ie(null),this.isPrivateCommentsEnabled$=new ie(!1),this.providedUser=new zi,this.portableRefreshTimer=null,this.portableToken=null,this.portableRefreshInFlightEpoch=null,this.portableRefreshFailures=0,this.portableRefreshFailuresPastExpiry=0,this.portableRefreshWarnedEpoch=null,this.portableVisibilityHandler=null,this.loggedInUserResolveRetryDelaysMs=[2e3,8e3,3e4],this.loggedInUserResolveRetryInFlightUserId=null,this.firebaseConfig$=new ie(null),this.advancedQueries$=new ie(null),this.planDetails$=new ie(null),this.signOutPreviousUser$=new ie(null),this.preSignOutFunctions=new Map,this.autoLoginCalled=!1,this.portableAutoLoginCalled=!1,this.portableAutoLoginInFlight=Promise.resolve(),this.portableSessionEpoch=0,this.portableLocalSessionEnds=0,this.portableSignOutOwnsEpochBump=!1,this.pendingPortableRestore=null,this.portableResumeUserId=null,this.portableStorageHandler=null,this.portableSessionIdentity=null,this.reportedPortableRefreshCodes=new Set,this.autoLoginRequired=!0,this.config=null,this.getPlanDetailsCalled=!1,this.portablePlanSeeded=!1,this.forceReLoggedIn=!1,this.lastLoggedInUserData=null,this.sessionReLoginCount=0,this.SESSION_RE_LOGIN_COUNT_LIMIT=10,this.sessionReLoginSubscription=null,this.onRetrySubscription=null,this.authProviderListenerGeneration=0,this.TOKEN_EXPIRED_ERROR_COUNT_LIMIT=3,this.tokenExpiredErrorCount=0,this.cachedActivityConfig=null,this.portableChunkReady=null,this.viewsService=null,this.crdtService=null,this.portableSavedSessionRaw=null,this.portableRenewalStopped=null,this.portableSessionStartedAt=0,this.portablePersistInFlight=Promise.resolve(),this.loggingService.log("%c[WB] Creating CLASS: AuthService","color: blue;"),this.serviceBook.observe(fT).subscribe(f=>{this.commentService=f??void 0}),this.serviceBook.observe(pT).subscribe(f=>{this.reactionService=f??void 0}),this.serviceBook.observe(gT).subscribe(f=>{this.areaService=f??void 0}),this.serviceBook.observe(AU).subscribe(f=>{this.activityService=f??void 0,f&&this.cachedActivityConfig&&f.setActivityFeatureConfig(this.cachedActivityConfig)}),this.serviceBook.observe(CU).subscribe(f=>{this.viewsService=f??null}),this.serviceBook.observe(DU).subscribe(f=>{this.crdtService=f??null});try{try{let f=this.configService.getAuthProxyHost();if(f){let g=this.afAuth?.config;g&&(g.apiHost=f,g.tokenApiHost=f)}}catch{}this.analyticsService.setAuthService(this),this.configService.getConfig$().subscribe(f=>{this.config=f}),this.forceReLoggedIn=localStorage.getItem(F.LOCAL_STORAGE.VELT_USER_FORCE_RE_LOGGED_IN)==="true",this.sessionReLoginSubscription=fd(this.afAuth).pipe(Qa(this.afAuth.currentUser),Ya(),Mr(([f,g])=>this.domService.onNetworkStatusChange$().pipe(mn(E=>E),En(1),De(()=>({previousUser:f,currentUser:g}))))).subscribe(E=>y(this,[E],function*({previousUser:f,currentUser:g}){if(!g&&f){let I=f?.stsTokenManager?.expirationTime,S=new Date().getTime(),L=I-S;S>I&&(this.analyticsService.trackEvent(St.Events.Core.SDK_SESSION_TOKEN_EXPIRED,{apiKey:this.apiKey,user:this.getUserForTelemetry(this.user$.value??void 0),lastLoggedInUserData:this.lastLoggedInUserData?{user:this.getUserForTelemetry(this.lastLoggedInUserData.user),autoLogin:this.lastLoggedInUserData.autoLogin,hasAuthToken:!!this.lastLoggedInUserData.userOptions?.authToken}:null,timeLeft:L,forceReset:this.userOptions$.value?.forceReset,sessionReLoginCount:this.sessionReLoginCount},!0,this.user$.value?.userSnippylyId),this.user$.value&&f?.uid===this.user$.value?.userSnippylyId&&this.lastLoggedInUserData?.user?.userSnippylyId===this.user$.value?.userSnippylyId&&(this.sessionReLoginCount>this.SESSION_RE_LOGIN_COUNT_LIMIT?(this.analyticsService.trackEvent(St.Events.Core.SDK_SESSION_RE_LOGIN_COUNT_EXCEEDED,{apiKey:this.apiKey,clientUserId:this.lastLoggedInUserData.user.userId,snippylyUserId:this.lastLoggedInUserData.user.userSnippylyId,timeLeft:L,forceReset:this.userOptions$.value?.forceReset,sessionReLoginCount:this.sessionReLoginCount},!0,this.user$.value?.userSnippylyId),this.sessionReLoginSubscription?.unsubscribe()):(this.sessionReLoginCount++,this.analyticsService.trackEvent(St.Events.Core.SDK_SESSION_RE_LOGIN_TRIGGERED,{apiKey:this.apiKey,clientUserId:this.lastLoggedInUserData.user.userId,snippylyUserId:this.lastLoggedInUserData.user.userSnippylyId,user:this.getUserForTelemetry(this.lastLoggedInUserData.user),timeLeft:L,forceReset:this.userOptions$.value?.forceReset,sessionReLoginCount:this.sessionReLoginCount},!0,this.lastLoggedInUserData.user.userSnippylyId),this.lastLoggedInUserData.user=yield this.updateUserWithColorAndTextColor(this.lastLoggedInUserData.user),this.initializeClient(this.lastLoggedInUserData.user,this.lastLoggedInUserData.userOptions,this.lastLoggedInUserData.initializeClientToken,this.lastLoggedInUserData.autoLogin,"internal-sessionReLogin"))))}}),f=>{this.loggingService.catch("Error in AuthService sessionReLoginSubscription: ",f)}),this.getUser$().pipe(yo(cp)).subscribe(f=>{let g=_R(f);this.coreActionsService.triggerAction(Wi.USER_UPDATE,g),this.coreActionsService.triggerAction(Wi.INIT_UPDATE,{event:Wi.USER_UPDATE,payload:{user:g}})})}catch(f){this.loggingService.catch("Error in AuthService constructor: ",f)}}setApiKey(r,i){this.loggingService.log("%c[WB] Calling FUNCTION: setApiKey","color: green;",r);try{if(this.apiKey){this.loggingService.log("API key is already set");return}this.apiKey=r,this.configService.setApiKey(this.apiKey),i||(i=new yT),this.configService.initConfig(i);let o=this.configService.getProxyConfig();if(o?.authHost)try{let s=this.afAuth?.config;s&&(s.apiHost=o.authHost,s.tokenApiHost=o.authHost)}catch(s){this.loggingService.catch("Error setting auth proxy config: ",s)}else try{let s=this.afAuth?.config;s&&s.apiHost!=="identitytoolkit.googleapis.com"&&(s.apiHost="identitytoolkit.googleapis.com",s.tokenApiHost="securetoken.googleapis.com")}catch(s){this.loggingService.catch("Error resetting auth proxy config: ",s)}i.debugMode?sessionStorage.setItem("debugMode","true"):sessionStorage.removeItem("debugMode"),this.autoLoginCalled||fd(this.afAuth).pipe(En(1)).subscribe(s=>y(this,null,function*(){if(this.autoLoginCalled=!0,s){let a=yield Np(s,!0).catch(c=>null);if(a){let{user:c}=a?.claims;this.autoLoginRequired&&(c=yield this.updateUserWithColorAndTextColor(c),this.initializeClient(c,this.buildAutoLoginOptions(),new Date().getTime(),!0,"internal-autoLogin"))}}})),!this.portableAutoLoginCalled&&this.configService.getEnablePortableBackend()===!0&&(this.portableAutoLoginCalled=!0,this.portableAutoLoginInFlight=this.autoLoginPortableSession())}catch(o){this.loggingService.catch("Error in setApiKey: ",o)}}setUsersService(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: setUsersService","color: green;"),this.usersService=r}catch(i){this.loggingService.catch("Error in setUsersService: ",i)}}setUserPermissionService(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: setUserPermissionService","color: green;"),this.userPermissionService=r}catch(i){this.loggingService.catch("Error in setUserPermissionService: ",i)}}setDocService(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: setDocService","color: green;"),this.docService=r}catch(i){this.loggingService.catch("Error in setDocService: ",i)}}setContactService(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: setContactService","color: green;"),this.contactService=r}catch(i){this.loggingService.catch("Error in setContactService: ",i)}}setIamService(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: setIamService","color: green;"),this.iamService=r}catch(i){this.loggingService.catch("Error in setIamService: ",i)}}setCommentService(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: setCommentService","color: green;"),this.commentService=r}catch(i){this.loggingService.catch("Error in setCommentService: ",i)}}setCommonDbService(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: setCommonDbService","color: green;"),this.commonDbService=r}catch(i){this.loggingService.catch("Error in setCommonDbService: ",i)}}validateOrganizationId(r){if(this.isVersionGreaterThanOrEqualTo4()&&!r?.organizationId)if(this.analyticsService.trackEvent(St.Events.Core.SDK_VALIDATE_CLIENT_FAILED,{apiKey:this.apiKey,clientUserId:r.userId,snippylyUserId:r.userSnippylyId,message:"Organization Id is not set",forceReset:this.userOptions$.value?.forceReset,user:this.getUserForTelemetry(r)},!0,r.userSnippylyId),this.configService.getSF())this.loggingService.catch("OrganizationId is not set in Identify method",void 0,void 0,!0);else throw new Error("OrganizationId is not set in Identify method")}setVeltAuthProvider(r){return y(this,null,function*(){this.loggingService.log("%c[WB] Calling FUNCTION: setVeltAuthProvider","color: green;");try{this.onRetrySubscription?.unsubscribe(),this.authProviderListenerGeneration++;let i=null;if(!r.user)return null;r.generateToken&&typeof r.generateToken=="function"&&(i=yield r.generateToken());let o=yield ER(()=>window.Velt.identify(r.user,B(B({},r.options||{}),i&&{authToken:i}),{fromProvider:!0}).catch(s=>(r.onError&&typeof r.onError=="function"&&r.onError(s),Promise.reject(s))),r.retryConfig||{retryCount:0,retryDelay:0});return o&&r.generateToken&&typeof r.generateToken=="function"&&(this.onRetrySubscription=this.coreActionsService.onAction(Wi.ERROR).pipe(mn(s=>s.code==="token_expired"),En(10)).subscribe(s=>y(this,null,function*(){if(s.code==="token_expired"){let a=this.authProviderListenerGeneration,c=()=>a===this.authProviderListenerGeneration,l=this.docService?.getDocumentIds()?.map(I=>({id:I.clientDocumentId}))??[],d=this.docService?.getOptionsFromDocumentPaths()??void 0,h=[],f=this.docService?.getLocation();f&&h.push(f.location);let g=this.docService?.getLocations();if(g&&Object.values(g).forEach(I=>{h.push(I.location)}),(yield ER(()=>y(this,null,function*(){try{let I=yield r.generateToken?.();return c()&&I?window.Velt.identify(r.user,B(B({},r.options||{}),I&&{authToken:I}),{fromProvider:!0}):!0}catch{return!1}}),r.retryConfig||{retryCount:0,retryDelay:0}))&&c()){let I=this.docService?.getDocumentIds()?.map(V=>V.clientDocumentId)??[];L2(l.map(V=>V.id),I)&&(yield this.docService?.setDocuments({documents:l,options:d,source:"internal"}));let S=[],L=this.docService?.getLocation();L?.location?.id&&S.push(L.location.id),Object.values(this.docService?.getLocations()??{}).forEach(V=>{V?.location?.id&&S.push(V.location.id)}),L2(h.map(V=>V?.id).filter(Boolean),S)&&(yield this.docService?.setLocations({locations:h,source:"internal",options:{appendLocation:!f}}))}}}))),o}catch(i){return this.loggingService.catch("Error in setVeltAuthProvider: ",i),null}})}setUserToStorage(r){return y(this,null,function*(){try{if(r){let i=yield wT(r,r?.userId??"");localStorage.setItem(F.LOCAL_STORAGE.VELT_IDENTIFY_USER,i)}}catch(i){this.loggingService.catch("Error in setUserToStorage: ",i)}})}getUserFromStorage(r){return y(this,null,function*(){try{let i=localStorage.getItem(F.LOCAL_STORAGE.VELT_IDENTIFY_USER);return i?yield sp(i,r?.userId??""):null}catch(i){return this.loggingService.catch("Error in getUserFromStorage: ",i),null}})}setIsPrivateCommentsEnabled(r){try{this.isPrivateCommentsEnabled$.next(r)}catch(i){this.loggingService.catch("Error in setIsPrivateCommentsEnabled: ",i)}}getIsPrivateCommentsEnabled(){return this.isPrivateCommentsEnabled$.value}getIsPrivateCommentsEnabled$(){return this.isPrivateCommentsEnabled$.asObservable()}updateUserWithColorAndTextColor(r){return y(this,null,function*(){try{let i=JSON.parse(JSON.stringify(r??{})),o=yield this.getUserFromStorage(i);return!o||Object.keys(o).length===0?(delete i?.color,delete i?.textColor,i):(o?.color&&(i.color=o?.color),o?.textColor&&(i.textColor=o?.textColor),i)}catch(i){return this.loggingService.catch("Error in updateUserWithColorAndTextColor: ",i),r}})}updateUserIfRequired(r){return y(this,null,function*(){this.loggingService.log("%c[WB] Calling FUNCTION: updateUserIfRequired","color: green;");try{let i=yield this.getUserFromStorage(r),o={};r.color&&r.color!==i?.color&&(o.color=r.color),r.textColor&&r.textColor!==i?.textColor&&(o.textColor=r.textColor),Object.keys(o).length>0&&r.clientOrganizationId&&this.docService?.addUserInfoToOrganization({organizationId:r.clientOrganizationId,user:me(B({},o),{userId:r.userId})})}catch(i){this.loggingService.catch("Error in updateUserIfRequired: ",i)}})}initializeClient(r,i,o,s,a){return y(this,null,function*(){try{if(this.autoLoginRequired=!1,this.portableResumeUserId=null,this.userOptions$.next(i),this.initializeClientToken)this.pendingUserLogin=r,this.pendingUserLoginSource=a;else{r.userSnippylyId=VV(this.configService.getApiKey(),r.userId),this.pendingUserLogin=void 0,this.pendingUserLoginSource=void 0,this.initializeClientToken=o;let c=this.portableSessionEpoch,l=this.portableLocalSessionEnds,d=yield fd(this.afAuth).pipe(En(1)).toPromise().catch(E=>null),h=!0;this.providedUser=JSON.parse(JSON.stringify(r));let f=!d&&s?this.takePendingPortableRestore(r,i):null,g=f?.envelope??null;if(g){if(this.loggingService.log("%c[WB] Calling FUNCTION: restorePortableSession","color: green;"),this.validateOrganizationId(r),!(yield this.applyIdentifyResponse(r,g.res,s)))return;h=!1,this.trackAutoAuthSuccess(r,a)}else if(!d&&s&&a==="internal-autoLogin"&&this.configService?.getEnablePortableBackend()===!0)return f?.resume?(Wn("session.resume-skipped",f.overtaken?"overtaken":"not restorable"),this.loggingService.log("Velt [portable backend]: not following the session another page saved; waiting for identify().")):f?.overtaken?(Wn("session.restore-discarded"),this.loggingService.log("Velt [portable backend]: discarding a reload restore that a sign-out or a new identify overtook."),this.clearPersistedPortableSessionIfUnchanged(f.raw)):(this.loggingService.log("Velt [portable backend]: nothing restorable on reload; waiting for identify()."),this.clearPersistedPortableSession()),this.initializeClientToken=0,this.checkForPendingLogin(),null;if(d){let E=yield Np(d,!0).catch(V=>null);if(!E)return;let{user:I,firebaseConfig:S,advancedQueries:L}=E.claims;LN({userSnippylyId:d?.uid,groupId:I?.groupId,organizationId:I?.organizationId},r,i)||!s&&r?.organizationId&&!this.forceReLoggedIn||this.forceReLoginRequiredForAdvancedQueries(r)||this.forceReLoginRequiredForRegion(r,S)||this.forceReLoginRequiredForCommentViews(r)?(localStorage.setItem(F.LOCAL_STORAGE.VELT_USER_FORCE_RE_LOGGED_IN,"true"),localStorage.setItem(F.LOCAL_STORAGE.VELT_COMMENT_VIEWS_MIGRATED,"true"),this.forceReLoggedIn=!0,yield this.signOutUser("internal"),c=this.portableSessionEpoch,l=this.portableLocalSessionEnds):(this.loggingService.log("%c[WB] Calling FUNCTION: reinitializeCurrentUser","color: green;"),this.loggingService.log("Keeping user"),yield this.updateUserIfRequired(r),this.validateOrganizationId(r),this.setFirebaseConfig(S),this.setAdvancedQueries(L),I&&(this.providedUser.isAdmin=!!I.isAdmin),this.initializeSignedInUser(d,s,r),h=!1,this.trackAutoAuthSuccess(r,a))}else if(h&&c===this.portableSessionEpoch&&this.isPortableIdentityChange(r,i)){let E=this.signOutUser("internal");c=this.portableSessionEpoch,l=this.portableLocalSessionEnds,yield E}if(h){this.analyticsService.trackEvent(St.Events.Core.SDK_VALIDATE_CLIENT_TRIGGERED,{apiKey:this.apiKey,clientUserId:r.userId,snippylyUserId:r.userSnippylyId,forceReset:this.userOptions$.value?.forceReset,user:this.getUserForTelemetry(r),source:a},!0,r.userSnippylyId,r.userId);let E=yield this.requestIdentify(r,i?.authToken);if(E.error){if(this.analyticsService.trackEvent(St.Events.Core.SDK_VALIDATE_CLIENT_FAILED,me(B({apiKey:this.apiKey,clientUserId:r.userId,snippylyUserId:r.userSnippylyId,message:E.error,forceReset:this.userOptions$.value?.forceReset,user:this.getUserForTelemetry(r)},E),{source:a}),!0,r.userSnippylyId,r.userId),E.error&&typeof E.error=="string")if(this.isTokenExpiredIdentifyError(E))this.emitIdentifyTokenExpiredError(E,r,a);else{let S=E;this.coreActionsService.triggerAction(Wi.ERROR,S)}throw E}else this.tokenExpiredErrorCount=0;if(this.shouldHandlePortableBackend(E)&&this.isPortableIdentifyOvertaken(c,l,s))return this.loggingService.log("Velt [portable backend]: discarding an identify response that a sign-out overtook."),this.initializeClientToken=0,this.checkForPendingLogin(),null;if(this.shouldHandlePortableBackend(E)&&c!==this.portableSessionEpoch&&(this.autoLoginRequired=!1,this.portableResumeUserId=null),this.analyticsService.trackEvent(St.Events.Core.SDK_VALIDATE_CLIENT_SUCCESS,{apiKey:this.apiKey,clientUserId:r.userId,snippylyUserId:r.userSnippylyId,forceReset:this.userOptions$.value?.forceReset,user:this.getUserForTelemetry(r),source:a},!0,r.userSnippylyId,r.userId),this.validateOrganizationId(r),!(yield this.applyIdentifyResponse(r,E,s)))return}this.initializeClientToken=0,this.lastLoggedInUserData={user:r,userOptions:i,initializeClientToken:o,autoLogin:s},this.checkForPendingLogin()}return r}catch(c){return this.initializeClientToken=0,this.checkForPendingLogin(),this.loggingService.catch("Error in initializeClient: ",c),i?.throwError?Promise.reject(c):Promise.resolve(null)}})}isPortableIdentifyOvertaken(r,i,o){let s=this.portableSessionEpoch-r;return o?s!==0:s!==this.portableLocalSessionEnds-i}isPortableIdentityChange(r,i){try{if(!this.portableAuthUser$.value)return!1;let o=this.portableSessionIdentity?.user??this.user$.value;return o?LN(o,r,i):!1}catch(o){return this.loggingService.catch("Error in isPortableIdentityChange: ",o),!1}}isVersionGreaterThanOrEqualTo4(){try{let r=xc();return(r?parseInt(r.split(".")?.[0]||"0"):0)>=4}catch(r){return this.loggingService.catch("Error in isVersionGreaterThanOrEqualTo4: ",r),!1}}isVersion4Point5(){try{let r=xc();if(r){let i=r.split("."),o=parseInt(i[0]||"0"),s=parseInt(i[1]||"0"),a=parseInt(i[2]||"0");if(o>=4&&s>=5)return o===4&&s===5&&a===0?!r.toLowerCase().includes("beta"):!0}return!1}catch(r){return this.loggingService.catch("Error in isVersion4Point5: ",r),!1}}forceReLoginRequiredForAdvancedQueries(r){try{let i=this.isVersionGreaterThanOrEqualTo4(),o=!1;try{let s=localStorage.getItem(F.LOCAL_STORAGE.VELT_ADVANCED_QUERIES);s&&(o=JSON.parse(s)?.advancedQueriesEnabled)}catch(s){this.loggingService.catch("Error in forceReLoginRequiredForAdvancedQueries: ",s)}return!!(i&&r.organizationId&&!o)}catch(i){return this.loggingService.catch("Error in forceReLoginRequiredForAdvancedQueries: ",i),!1}}forceReLoginRequiredForCommentViews(r){try{let i=this.isVersion4Point5(),o=!1;try{let s=localStorage.getItem(F.LOCAL_STORAGE.VELT_COMMENT_VIEWS_MIGRATED);s&&(o=JSON.parse(s))}catch(s){this.loggingService.catch("Error in forceReLoginRequiredForCommentViews: ",s)}return!!(i&&r.organizationId&&!o)}catch(i){return this.loggingService.catch("Error in forceReLoginRequiredForCommentViews: ",i),!1}}forceReLoginRequiredForRegion(r,i){try{return!!(this.isVersionGreaterThanOrEqualTo4()&&r.organizationId&&!i?.region)}catch(o){return this.loggingService.catch("Error in forceReLoginRequiredForRegion: ",o),!1}}checkForPendingLogin(){this.pendingUserLogin&&this.initializeClient(this.pendingUserLogin,this.userOptions$?.value||{},new Date().getTime(),void 0,this.pendingUserLoginSource)}setFirebaseConfig(r){this.loggingService.log("%c[WB] Calling FUNCTION: setFirebaseConfig","color: green;");try{this.firebaseConfig$.value||this.firebaseConfig$.next({firebaseOptions:B(B({},this.endpointsService.getFirebaseConfig()),r)})}catch(i){this.loggingService.catch("Error in setFirebaseConfig: ",i)}}requestIdentify(r,i){return y(this,null,function*(){let o=xc();this.usersService?.userResolverConfigured?.()&&(r=IR(r));let s=this.endpointsService.getPortableIdentifyUrl();return s?jG({url:s,apiKey:this.apiKey,user:r,version:o,authToken:i}):(yield gd(this.functions,sd({url:this.endpointsService.getCloudFunctionUrl("validateClient"),apiProxyDomain:this.configService?.getApiProxyDomain()}),{timeout:1200*1e3})({apiKey:this.apiKey,user:r,version:o,authToken:i}))?.data})}requestPortableRefresh(r){return y(this,null,function*(){let i=this.endpointsService.getPortableIdentifyUrl();return!i||Pc(i)?RN("the portable identify URL is not configured; the renewal credential was not sent"):WG({url:$G(i,"refresh"),apiKey:this.apiKey,refreshToken:r,timeoutMs:BG()})})}reportPortableRefreshMisconfigured(r){try{let i=String(r?.code??"unknown");if(this.reportedPortableRefreshCodes.has(i))return;if(this.reportedPortableRefreshCodes.add(i),i===e.PORTABLE_NO_CREDENTIAL_ENVELOPE.code){console.error("Velt [portable backend]: this session has no renewal credential for the configured gateway (the identify answer carried no refreshToken, or selfHosted.portableBackendUrl changed after sign-in), so it cannot be renewed: it is signed out and the app must identify() again. Every identify answer from portable-v0.1.6 or later carries one.");return}let o=r?.message?` (${r.message})`:"";console.error(i==="invalid-argument"?`Velt [portable backend]: the gateway rejected the session renewal as malformed: invalid-argument${o}. The SDK and gateway versions disagree on /identify/refresh; renewal is stopped for this session.`:`Velt [portable backend]: the gateway refused the session renewal: ${i}${o}. A deployment setting is wrong (the allowed origins, or the identify configuration for this API key). Renewal is stopped for this session; after the setting is fixed, a reload renews from the saved session.`)}catch{}}emitIdentifyTokenExpiredError(r,i,o){if(this.tokenExpiredErrorCount++,this.tokenExpiredErrorCount<=this.TOKEN_EXPIRED_ERROR_COUNT_LIMIT){let s={code:"token_expired",message:"Token expired",error:r?.error,source:r?.source};this.coreActionsService.triggerAction(Wi.ERROR,s)}else{let s={code:"too_many_retries",message:"Token expired. Too many retries.",error:r?.error,source:r?.source};this.coreActionsService.triggerAction(Wi.ERROR,s),this.analyticsService.trackEvent(St.Events.Core.SDK_JWT_EXPIRED_RETRY_EXCEEDED,{apiKey:this.apiKey,clientUserId:i.userId,snippylyUserId:i.userSnippylyId,forceReset:this.userOptions$.value?.forceReset,source:o},!0,i.userSnippylyId,i.userId)}}isTokenExpiredIdentifyError(r){try{return r?.code==="token_expired"||!!r?.error?.toLowerCase?.()?.includes("token expired")}catch{return!1}}shouldHandlePortableBackend(r){try{return this.configService?.getEnablePortableBackend()===!0&&r2(r)}catch(i){return this.loggingService.catch("Error in shouldHandlePortableBackend: ",i),!1}}applyIdentifyResponse(r,i,o){return y(this,null,function*(){if(this.shouldHandlePortableBackend(i)){this.portableSessionEpoch++;let s=this.portableSessionEpoch,a=Xc(i),c=a?this.endpointsService.getPortableIdentifyUrl()??void 0:void 0;this.portableSessionIdentity=B({user:r,epoch:s},a?{refreshToken:a,refreshTokenIssuer:c}:{}),this.portableSessionStartedAt=Date.now();let l=this.handlePortableBackendResponse(i);if(this.planDetails$.value||(this.getPlanDetailsCalled=!0,this.portablePlanSeeded=!0,this.planDetails$.next({planInfo:null,isPlanExpired:!1})),yield this.applyPortableProjectConfig(i),s!==this.portableSessionEpoch)return Wn("session.adopt-discarded"),this.loggingService.log("Velt [portable backend]: discarding a portable sign-in that a sign-out or a new identify overtook."),!0;let d=this.initializePortableSignedInUser(r,i);d&&this.probeIdentifyPermissionWhenPortableReady(d,s,l)}else if(i.firebaseConfig){this.clearPortableBackendState(),this.setFirebaseConfig(i.firebaseConfig),yield this.signInWithCustomToken(r,i.token),this.loggingService.log("new signed in user",this.afAuth.currentUser);let s=yield Np(this.afAuth.currentUser,!0).catch(l=>null);if(!s)return!1;let{user:a,advancedQueries:c}=s.claims;this.setAdvancedQueries(c),this.providedUser.isAdmin=!!a?.isAdmin,this.initializeSignedInUser(this.afAuth.currentUser,o,r)}return!0})}applyPortableProjectConfig(r){return y(this,null,function*(){try{let i=yield MN({apiEndpoint:r?.apiEndpoint,token:r?.token});if(!i)return;this.applyProjectConfig(i)}catch(i){this.loggingService.catch("Error in applyPortableProjectConfig: ",i)}})}applyProjectConfig(r){this.setIsPrivateCommentsEnabled(!!r?.isPrivateCommentsEnabled);let i=r?.activityConfig??{immutable:!1,isEnabled:!1};this.cachedActivityConfig=i,this.activityService?.setActivityFeatureConfig(i)}handlePortableBackendResponse(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: handlePortableBackendResponse","color: green;"),this.portableBackend$.next({backend:r?.backend,wsEndpoint:r?.wsEndpoint,apiEndpoint:r?.apiEndpoint});let i=i2({backend:r?.backend,token:r?.token??null,wsEndpoint:r?.wsEndpoint,apiEndpoint:r?.apiEndpoint});return this.portableChunkReady=i,this.schedulePortableTokenRefresh(r?.token??null),i}catch(i){return this.loggingService.catch("Error in handlePortableBackendResponse: ",i),null}}schedulePortableTokenRefresh(r){try{if(this.clearPortableTokenRefresh(),this.portableToken=r,!r)return;this.portableRefreshFailures=0,this.portableRefreshFailuresPastExpiry=0;let i=JG(wp(r),Date.now());if(i!==null?this.armPortableRefreshTimer(i,"expiry"):this.loggingService.log("Velt [portable backend]: no proactive token refresh scheduled (token expiry unreadable or already past)."),typeof document<"u"&&typeof document.addEventListener=="function"){this.portableVisibilityHandler=o=>{try{let s=ON(this.portableToken,Date.now());if(Wn(`page.${o?.type??"lifecycle"}`,`visibility=${typeof document<"u"?document.visibilityState:"?"} credentialExpired=${s}`),o?.type==="pageshow"&&o.persisted===!1)return;s?this.refreshPortableToken("focus"):this.checkPortableSessionAgainstStorage(`page.${o?.type??"lifecycle"}`),s2()}catch{}};for(let o of e.PORTABLE_DOCUMENT_LIFECYCLE_EVENTS)document.addEventListener(o,this.portableVisibilityHandler);typeof window<"u"&&typeof window.addEventListener=="function"&&window.addEventListener("pageshow",this.portableVisibilityHandler)}this.armPortableStorageListener()}catch(i){this.loggingService.catch("Error scheduling portable token refresh: ",i)}}readStoredPortableSessionRaw(){try{return localStorage.getItem(F.LOCAL_STORAGE.VELT_PORTABLE_SESSION)}catch{return}}readPortableSavedSession(r){return y(this,null,function*(){try{let i;try{i=localStorage.getItem(F.LOCAL_STORAGE.VELT_PORTABLE_SESSION)}catch{return{verdict:"persist"}}if(!i){let a=this.readPortableSignOutAt();return{verdict:a!==null&&a>=this.portableSessionStartedAt?"stop":"persist"}}if(i===this.portableSavedSessionRaw)return{verdict:"persist"};let o=null;try{o=yield sp(i,this.apiKey??"")}catch{o=null}return o?.v!==1||o?.apiKey!==this.apiKey||!o?.user?.userId?{verdict:"renew-only"}:o.user.userId!==r?{verdict:"stop"}:{verdict:"persist",sharedRefreshToken:(o?.portableBackendUrl??null)===(this.configService?.getSelfHostedConfig?.()?.portableBackendUrl??null)?Xc(o?.res):void 0}}catch(i){return this.loggingService.catch("Error in AuthService readPortableSavedSession: ",i),{verdict:"persist"}}})}recordPortableSignOut(){try{if(!this.apiKey)return;let r={};try{let i=JSON.parse(localStorage.getItem(F.LOCAL_STORAGE.VELT_PORTABLE_SIGNED_OUT)??"{}");i&&typeof i=="object"&&!Array.isArray(i)&&(r=i)}catch{r={}}r[this.apiKey]=Date.now(),localStorage.setItem(F.LOCAL_STORAGE.VELT_PORTABLE_SIGNED_OUT,JSON.stringify(r))}catch{}}armPortableRefreshTimer(r,i){this.cancelPortableRefreshTimer(),this.portableRefreshTimer=setTimeout(()=>this.refreshPortableToken(i),r)}cancelPortableRefreshTimer(){this.portableRefreshTimer&&(clearTimeout(this.portableRefreshTimer),this.portableRefreshTimer=null)}readPortableSignOutAt(){try{let r=JSON.parse(localStorage.getItem(F.LOCAL_STORAGE.VELT_PORTABLE_SIGNED_OUT)??"null"),i=r&&this.apiKey?r[this.apiKey]:void 0;return typeof i=="number"&&Number.isFinite(i)?i:null}catch{return null}}clearPortableTokenRefresh(){try{if(this.cancelPortableRefreshTimer(),this.portableVisibilityHandler&&typeof document<"u")for(let r of e.PORTABLE_DOCUMENT_LIFECYCLE_EVENTS)document.removeEventListener(r,this.portableVisibilityHandler);this.portableVisibilityHandler&&typeof window<"u"&&typeof window.removeEventListener=="function"&&window.removeEventListener("pageshow",this.portableVisibilityHandler),this.portableVisibilityHandler=null,this.portableStorageHandler&&typeof window<"u"&&typeof window.removeEventListener=="function"&&window.removeEventListener("storage",this.portableStorageHandler),this.portableStorageHandler=null}catch{}}refreshPortableToken(r){return y(this,null,function*(){let i=this.portableSessionEpoch;if(this.portableRefreshInFlightEpoch!==i){this.portableRefreshInFlightEpoch=i;try{let o=this.portableSessionIdentity,s=o?.user;if(!o||o.epoch!==i||!s?.userId||!this.portableBackend$.value)return;if(this.portableRenewalStopped?.epoch===i){Wn("credential.refresh-skipped",`${this.portableRenewalStopped.reason}; waiting for identify()`);return}let a=yield this.readPortableSavedSession(s.userId);if(i!==this.portableSessionEpoch)return;if(a.verdict==="stop"){this.endPortableSessionFromAnotherPage(s,`refresh:${r}`);return}let c=a.sharedRefreshToken,l=this.endpointsService.getPortableIdentifyUrl()??void 0;c&&l&&this.portableSessionIdentity&&c!==this.portableSessionIdentity.refreshToken&&(Wn("credential.shared-adopted"),this.portableSessionIdentity=me(B({},this.portableSessionIdentity),{refreshToken:c,refreshTokenIssuer:l}));let d=this.portableSessionIdentity??o,h=d.refreshToken&&d.refreshTokenIssuer===l?d.refreshToken:void 0;if(!h){this.reportPortableRefreshMisconfigured(e.PORTABLE_NO_CREDENTIAL_ENVELOPE),this.endPortableSessionForDeadCredential(s,e.PORTABLE_NO_CREDENTIAL_ENVELOPE,r);return}this.loggingService.log(`Velt [portable backend]: refreshing the gateway credential (${r}).`),Wn("credential.refresh-requested",`reason=${r} via=refresh`);let f=yield this.requestPortableRefresh(h);if(i!==this.portableSessionEpoch){Wn("credential.refresh-discarded",`reason=${r}`),this.loggingService.log("Velt [portable backend]: discarding a credential refresh that a sign-out or a new identify overtook.");return}if(!this.shouldHandlePortableBackend(f)||!f?.token){if(f?.code===NN){this.endPortableSessionForDeadCredential(s,f,r);return}if(wN.has(f?.code)){Wn("credential.refresh-misconfigured",`code=${f?.code}`),this.portableRenewalStopped={epoch:i,reason:`renewal refused: ${f?.code}`},this.cancelPortableRefreshTimer(),this.reportPortableRefreshMisconfigured(f);return}this.portableRefreshFailures++,this.portableRefreshFailures>=e.PORTABLE_REFRESH_WARN_AFTER_FAILURES&&this.reportPortableRefreshFailing(f,i);let S=Date.now();ON(this.portableToken,S)&&this.portableRefreshFailuresPastExpiry++,this.armPortableRefreshTimer(ZG(wp(this.portableToken),S,this.portableRefreshFailuresPastExpiry),r);return}let g=this.readStoredPortableSessionRaw(),E=yield this.readPortableSavedSession(s.userId);if(i!==this.portableSessionEpoch){Wn("credential.refresh-discarded",`reason=${r}`);return}if(E.verdict==="stop"){this.endPortableSessionFromAnotherPage(s,`refresh-answered:${r}`);return}Wn("credential.refreshed"),this.handlePortableBackendResponse(f);let I=Xc(f)??h;this.portableSessionIdentity?.epoch===i&&(this.portableSessionIdentity=me(B({},this.portableSessionIdentity),{refreshToken:I,refreshTokenIssuer:l})),E.verdict==="persist"&&this.persistPortableSession(s,me(B({},f),{refreshToken:I}),{expectStoredRaw:g})}catch(o){this.loggingService.catch("Error refreshing portable token: ",o)}finally{this.portableRefreshInFlightEpoch===i&&(this.portableRefreshInFlightEpoch=null)}}})}reportPortableRefreshFailing(r,i){try{if(this.portableRefreshWarnedEpoch===i)return;this.portableRefreshWarnedEpoch=i,console.warn(`Velt [portable backend]: could not renew the gateway credential (${this.portableRefreshFailures} attempts in a row${r?.code?`, last: ${r.code}`:""}). The SDK keeps retrying \u2014 every 30 s while the current token is valid; once it has expired, after 30 s, doubling up to every 16 minutes, and each time the page becomes active again \u2014 and the realtime session is unavailable from the moment the token expires until a renewal succeeds. Check that the gateway's /identify/refresh endpoint is reachable and the API key is enabled.`)}catch{}}endPortableSessionForDeadCredential(r,i,o){Wn("credential.refresh-credential-invalid",`reason=${o}`),this.portableSavedSessionRaw&&this.clearPersistedPortableSessionIfUnchanged(this.portableSavedSessionRaw),this.endPortableSessionLocally(r),this.emitIdentifyTokenExpiredError(i,r,"internal-portableRefresh")}endPortableSessionFromAnotherPage(r,i){Wn("session.ended-elsewhere",i),this.loggingService.log("Velt [portable backend]: another page signed out or signed in another user; this page's session ends too."),this.endPortableSessionLocally(r)}checkPortableSessionAgainstStorage(r){return y(this,null,function*(){try{let i=this.portableSessionEpoch,o=this.portableSessionIdentity;if(!o||o.epoch!==i||!o.user?.userId)return;let{verdict:s}=yield this.readPortableSavedSession(o.user.userId);s==="stop"&&i===this.portableSessionEpoch&&this.endPortableSessionFromAnotherPage(o.user,r)}catch(i){this.loggingService.catch("Error checking the portable session against storage: ",i)}})}armPortableStorageListener(){try{if(this.portableStorageHandler||typeof window>"u"||typeof window.addEventListener!="function")return;this.portableStorageHandler=r=>{try{let i=r?.key;if(i!==null&&i!==F.LOCAL_STORAGE.VELT_PORTABLE_SESSION&&i!==F.LOCAL_STORAGE.VELT_PORTABLE_SIGNED_OUT)return;this.portableSessionIdentity?this.checkPortableSessionAgainstStorage("storage"):this.portableResumeUserId&&this.resumePortableSessionFromAnotherPage()}catch{}},window.addEventListener("storage",this.portableStorageHandler)}catch(r){this.loggingService.catch("Error arming the portable storage listener: ",r)}}resumePortableSessionFromAnotherPage(){let r=this.portableResumeUserId;!r||this.portableSessionIdentity||this.initializeClientToken||!this.autoLoginRequired||this.configService?.getEnablePortableBackend()!==!0||(this.portableAutoLoginInFlight=this.portableAutoLoginInFlight.then(()=>this.autoLoginPortableSession({onlyUserId:r})).catch(()=>{}))}initializePortableSignedInUser(r,i){try{if(this.loggingService.log("%c[WB] Calling FUNCTION: initializePortableSignedInUser","color: green;"),!i?.token)return this.portableAuthUser$.value&&(this.userPermissionService?.invalidateAllPermissionsState(),this.releaseLiveUserSession("clear")),null;let o=new zi;o.type="signedIn",o=B(B({},o),r),PN(o,{provided:me(B({},r),{isAdmin:QG(i?.token)}),avatarColor:a=>this.getUserAvatarColor(a),textColor:a=>this.getUserTextColor(a)}),this.setUserToStorage(o),this.persistPortableSession(o,i);let s=Object.assign({},o);return delete s.contacts,this.analyticsService.identifyUser(o.userSnippylyId,s,{forceReset:this.userOptions$.value?.forceReset}),this.user$.next(o),this.portableAuthUser$.next({uid:o.userSnippylyId}),o}catch(o){return this.loggingService.catch("Error in initializePortableSignedInUser: ",o),null}}clearPortableBackendState(){try{this.portableSignOutOwnsEpochBump||this.portableSessionEpoch++,this.releasePortableSession({clearStorage:!0})}catch(r){this.loggingService.catch("Error clearing portable backend state: ",r)}}releaseLiveUserSession(r){this.resetServicesCache(),this.user$.next(null),r==="local"?this.releasePortableSession({clearStorage:!1}):this.clearPortableBackendState()}releasePortableSession(r){this.portablePlanSeeded&&(this.portablePlanSeeded=!1,this.getPlanDetailsCalled=!1,this.planDetails$.next(null)),this.pendingPortableRestore=null,this.portableSessionIdentity=null,r.clearStorage&&(this.portableAutoLoginCalled||this.configService?.getEnablePortableBackend()===!0)&&this.clearPersistedPortableSession(),!(!this.portableBackend$.value&&!this.portableAuthUser$.value)&&(this.clearPortableTokenRefresh(),this.portableToken=null,this.portableChunkReady=null,this.portableRefreshFailures=0,this.portableRefreshFailuresPastExpiry=0,this.portableBackend$.next(null),this.portableAuthUser$.next(null),this.user$.next(null),o2())}endPortableSessionLocally(r){try{this.userPermissionService?.invalidateAllPermissionsState(),this.portableSessionEpoch++,this.portableLocalSessionEnds++,this.releaseLiveUserSession("local"),this.autoLoginRequired=!0,this.portableResumeUserId=r?.userId??null,this.armPortableStorageListener()}catch(i){this.loggingService.catch("Error ending the portable session: ",i)}}trackAutoAuthSuccess(r,i){this.analyticsService.trackEvent(St.Events.Core.SDK_USER_AUTH_SUCCESS,{apiKey:this.apiKey,clientUserId:r.userId,snippylyUserId:r.userSnippylyId,authType:"auto",forceReset:this.userOptions$.value?.forceReset,user:this.getUserForTelemetry(r),source:i})}buildAutoLoginOptions(){return this.userOptions$?.value?me(B({},this.userOptions$.value),{replaceContacts:!1,replaceGroupContacts:!1,replacePrivateContacts:!1}):{}}persistPortableSession(r,i,o){let s=this.portableSessionEpoch;return this.portablePersistInFlight=this.portablePersistInFlight.then(()=>this.writePortableSessionEnvelope(r,i,s,o?.expectStoredRaw)).catch(()=>{}),this.portablePersistInFlight}writePortableSessionEnvelope(r,i,o,s){return y(this,null,function*(){try{if(!i?.token||!r?.userId||!this.apiKey)return;let a=this.user$.value;if(a?.userSnippylyId&&r.userSnippylyId&&a.userSnippylyId!==r.userSnippylyId)return;let c=this.getUserWithoutContacts(r);if(!c)return;let l={v:1,apiKey:this.apiKey,portableBackendUrl:this.configService?.getSelfHostedConfig?.()?.portableBackendUrl??null,user:c,res:B({backend:i.backend,wsEndpoint:i.wsEndpoint,apiEndpoint:i.apiEndpoint,token:i.token},Xc(i)?{refreshToken:Xc(i)}:{})},d=yield wT(l,this.apiKey);if(o!==this.portableSessionEpoch){this.loggingService.log("Velt [portable backend]: dropping a session envelope write that a sign-out or a new identify overtook.");return}if(s!==void 0&&localStorage.getItem(F.LOCAL_STORAGE.VELT_PORTABLE_SESSION)!==s){this.loggingService.log("Velt [portable backend]: not re-persisting a refreshed credential \u2014 another page changed the saved session meanwhile.");return}let h=this.readPortableSignOutAt();if(h!==null&&h>this.portableSessionStartedAt){this.loggingService.log("Velt [portable backend]: not persisting the session \u2014 another page signed out after it began.");return}typeof d=="string"&&!d.startsWith("{")&&d!==JSON.stringify(l)&&(localStorage.setItem(F.LOCAL_STORAGE.VELT_PORTABLE_SESSION,d),this.portableSavedSessionRaw=d)}catch(a){this.loggingService.catch("Error in writePortableSessionEnvelope: ",a)}})}readPersistedPortableSession(){return y(this,null,function*(){try{let r=localStorage.getItem(F.LOCAL_STORAGE.VELT_PORTABLE_SESSION);if(!r)return null;let i=yield sp(r,this.apiKey??"");return i?i.v!==1||i.apiKey!==this.apiKey||!i.user?.userId||!i.res?.token?(this.clearPersistedPortableSession(),null):(this.portableSavedSessionRaw=r,{envelope:i,raw:r}):null}catch(r){return this.loggingService.catch("Error in readPersistedPortableSession: ",r),null}})}clearPersistedPortableSession(){this.portableSavedSessionRaw=null;try{localStorage.removeItem(F.LOCAL_STORAGE.VELT_PORTABLE_SESSION)}catch{}}clearPersistedPortableSessionIfUnchanged(r){try{r&&localStorage.getItem(F.LOCAL_STORAGE.VELT_PORTABLE_SESSION)===r&&this.clearPersistedPortableSession()}catch{}}isPortableTokenNearExpiry(r){let i=wp(r);return i===null||i-Date.now()<=bN}isPortableRestoreConfigured(){try{let r=this.endpointsService?.getPortableIdentifyUrl?.();return this.configService?.getEnablePortableBackend()===!0&&!!r&&!Pc(r)}catch{return!1}}isRestorablePortableSession(r,i,o){try{if(!this.isPortableRestoreConfigured()||o?.forceReset||r.portableBackendUrl!==(this.configService?.getSelfHostedConfig?.()?.portableBackendUrl??null)||!zc(r.res?.apiEndpoint)||r.user?.userSnippylyId!==i?.userSnippylyId)return!1;let s=this.user$.value;return s?.userSnippylyId&&s.userSnippylyId!==r.user.userSnippylyId||this.isPortableTokenNearExpiry(r.res.token)?!1:this.shouldHandlePortableBackend(r.res)}catch(s){return this.loggingService.catch("Error in isRestorablePortableSession: ",s),!1}}takePendingPortableRestore(r,i){let o=this.pendingPortableRestore;if(this.pendingPortableRestore=null,!o)return null;let s=o.resume===!0;return o.epoch!==this.portableSessionEpoch?{envelope:null,overtaken:!0,raw:o.raw,resume:s}:{envelope:this.isRestorablePortableSession(o.envelope,r,i)?o.envelope:null,overtaken:!1,raw:o.raw,resume:s}}autoLoginPortableSession(r){return y(this,null,function*(){let i=this.portableSessionEpoch,o=()=>i!==this.portableSessionEpoch||!this.autoLoginRequired,s=!!r?.onlyUserId;try{let a=yield this.readPersistedPortableSession(),c=a?.envelope;if(!a||!c||o()||s&&c.user?.userId!==r?.onlyUserId)return;if(!this.isPortableRestoreConfigured()){s||this.clearPersistedPortableSession();return}if(c.portableBackendUrl!==(this.configService?.getSelfHostedConfig?.()?.portableBackendUrl??null)){s||(this.loggingService.log("Velt [portable backend]: the persisted session belongs to a different gateway; dropped."),this.clearPersistedPortableSession());return}let l=c;if(this.isPortableTokenNearExpiry(c.res.token)){let h=Xc(c.res);if(!h){this.loggingService.log("Velt [portable backend]: the persisted session has no renewal credential; waiting for identify()."),this.clearPersistedPortableSessionIfUnchanged(a.raw);return}Wn("credential.restore-renew","via=refresh");let f=yield this.requestPortableRefresh(h);if(o())return;if(!this.shouldHandlePortableBackend(f)||!f?.token){if(f?.code==="network_error"){this.loggingService.log("Velt [portable backend]: could not reach the gateway to renew the persisted session; keeping it for the next attempt.");return}if(wN.has(f?.code)&&this.reportPortableRefreshMisconfigured(f),f?.code!==NN){this.loggingService.log(`Velt [portable backend]: the persisted session's renewal was refused for now (${f?.code??"no code"}); keeping it for the next attempt.`);return}this.loggingService.log("Velt [portable backend]: the persisted session could not be renewed on reload; waiting for identify()."),this.clearPersistedPortableSessionIfUnchanged(a.raw);return}let g=Xc(f)??h;l=me(B({},c),{res:{backend:f.backend,wsEndpoint:f.wsEndpoint,apiEndpoint:f.apiEndpoint,token:f.token,refreshToken:g}})}if(o())return;this.pendingPortableRestore=B({envelope:l,epoch:i,raw:a.raw},s?{resume:!0}:{});let d=this.buildAutoLoginOptions();s&&delete d.forceReset,yield this.initializeClient(B({},l.user),d,new Date().getTime(),!0,"internal-autoLogin")}catch(a){this.loggingService.catch("Error in autoLoginPortableSession: ",a)}finally{this.pendingPortableRestore=null}})}getPortableBackend(){return this.portableBackend$.value}getFirebaseConfig$(){return this.loggingService.log("%c[WB] Calling FUNCTION: getFirebaseConfig","color: green;"),this.firebaseConfig$.asObservable()}getFirebaseConfig(){return this.loggingService.log("%c[WB] Calling FUNCTION: getFirebaseConfig","color: green;"),this.firebaseConfig$.value}setAdvancedQueries(r){this.loggingService.log("%c[WB] Calling FUNCTION: setAdvancedQueries","color: green;");try{r&&typeof r=="object"&&localStorage.setItem(F.LOCAL_STORAGE.VELT_ADVANCED_QUERIES,JSON.stringify(r)),this.advancedQueries$.next(r)}catch(i){this.loggingService.catch("Error in setAdvancedQueries: ",i)}}getAdvancedQueries$(){return this.loggingService.log("%c[WB] Calling FUNCTION: getAdvancedQueries$","color: green;"),this.advancedQueries$.asObservable()}getAdvancedQueries(){return this.loggingService.log("%c[WB] Calling FUNCTION: getAdvancedQueries","color: green;"),this.advancedQueries$.value}getAdvancedQueriesEnabled(r){try{return!this.configService.getConfig()?.advancedQueriesDisabled&&(r||!!this.getAdvancedQueries()?.advancedQueriesEnabled)}catch(i){return this.loggingService.catch("Error in getAdvancedQueriesEnabled: ",i),!1}}signOutPreviousUser(){return this.signOutPreviousUser$.asObservable()}getUser(){return this.loggingService.log("%c[WB] Calling FUNCTION: getUser","color: green;"),this.afAuth?.currentUser||this.portableAuthUser$.value?this.user$.value:null}getProvidedOrCurrentUserId(){try{return this.providedUser?.userId??this.user$.value?.userId??void 0}catch(r){this.loggingService.catch("Error in getProvidedOrCurrentUserId: ",r);return}}scheduleLoggedInUserResolveRetry(r,i){return y(this,null,function*(){try{if(!r||this.loggedInUserResolveRetryInFlightUserId===r)return;this.loggedInUserResolveRetryInFlightUserId=r;let o=this.loggedInUserResolveRetryDelaysMs;for(let s=0;s<o.length;s++){if(yield new Promise(l=>setTimeout(l,o[s])),(this.providedUser?.userId??this.user$.value?.userId)!==r)return;let a=yield this.usersService?.resolveUsers({userIds:[r],organizationId:i,skipUserCheck:!0,forceResolve:!0,moduleName:IT.IDENTIFY});if((this.providedUser?.userId??this.user$.value?.userId)!==r)return;let c=a?.[r];if(c&&this.applyLateResolvedLoggedInUser(r,c))return}this.loggingService.catch(`User resolver did not return the logged-in user after ${o.length} retry attempts \u2014 comments created by this author will have no resolved profile until the resolver returns them`,{userId:r,organizationId:i,attempts:o.length})}catch(o){this.loggingService.catch("Error in scheduleLoggedInUserResolveRetry: ",o)}finally{this.loggedInUserResolveRetryInFlightUserId===r&&(this.loggedInUserResolveRetryInFlightUserId=null)}})}applyLateResolvedLoggedInUser(r,i){try{let o=this.user$.value;if(!o||o.userId!==r)return!1;if(!this.afAuth?.currentUser)return!0;let s=are(o,i);return this.setUserToStorage(s),this.user$.next(s),!0}catch(o){return this.loggingService.catch("Error in applyLateResolvedLoggedInUser: ",o),!1}}combinedAuthBearer$(){let r=!1;return Ka([fd(this.afAuth).pipe(Qa($N)),this.portableAuthUser$]).pipe(mn(([i,o])=>(o!==null&&(r=!0),!!(i!==$N||o!==null||r))),De(([i,o])=>(i===$N?null:i)??o))}getUser$(){return this.loggingService.log("%c[WB] Calling FUNCTION: getUser$","color: green;"),this.combinedAuthBearer$().pipe(Mr(r=>r?this.user$.asObservable():lt(null)),yo(cp))}getAuthUser(){return this.loggingService.log("%c[WB] Calling FUNCTION: getAuthUser","color: green;"),this.afAuth?.currentUser}getAuthState$(){return this.combinedAuthBearer$()}getIdTokenResultForUser(r,i){return Np(r,i)}getUserOptions(){return this.loggingService.log("%c[WB] Calling FUNCTION: getUserOptions","color: green;"),this.userOptions$.value}getUserOptions$(){return this.loggingService.log("%c[WB] Calling FUNCTION: getUserOptions$","color: green;"),this.userOptions$.asObservable()}updateUser(r){this.loggingService.log("%c[WB] Calling FUNCTION: updateUser","color: green;");try{let i=this.user$.value;if(r.userId&&r.userId!==i?.userId||r?.groupId&&r?.groupId!==i?.groupId||r?.organizationId&&r?.organizationId!==i?.organizationId)this.providedUser=r,this.initializeClient(r,this.userOptions$?.value||{},new Date().getTime(),void 0,"internal-updateUser");else if(this.providedUser=B(B({},this.providedUser),r),i){let o=B(B({},i),r);this.updateUserInternally(o)}}catch(i){this.loggingService.catch("Error in updateUser: ",i)}}signInWithCustomToken(r,i,o="manual"){this.loggingService.log("%c[WB] Calling FUNCTION: signInWithCustomToken","color: green;");try{return DG(this.afAuth,i).then(s=>(this.analyticsService.trackEvent(St.Events.Core.SDK_USER_AUTH_SUCCESS,{apiKey:this.apiKey,clientUserId:r.userId,snippylyUserId:r.userSnippylyId,authType:o,forceReset:this.userOptions$.value?.forceReset,user:this.getUserForTelemetry(r)}),s)).catch(s=>(this.analyticsService.trackEvent(St.Events.Core.SDK_USER_AUTH_FAILED,{apiKey:this.apiKey,clientUserId:r.userId,snippylyUserId:r.userSnippylyId,authType:o,forceReset:this.userOptions$.value?.forceReset,message:s.message,user:this.getUserForTelemetry(r)}),s))}catch(s){return this.loggingService.catch("Error in signInWithCustomToken: ",s),Promise.reject(s)}}clearCache(){this.loggingService.log("%c[WB] Calling FUNCTION: clearCache","color: green;");try{this.activityService?.resetActivityFeatureConfig()}catch(r){this.loggingService.catch("Error in clearCache: ",r)}}resetServicesCache(){this.loggingService.log("%c[WB] Calling FUNCTION: resetServicesCache in AuthService","color: green;");try{this.crdtService?.flushAllEditorActivities(),this.clearCache(),this.commonDbService?.unsubscribeFromObservables(),this.activityService?.destroy(),this.docService?.clearCacheOnUserCascade(),this.contactService?.clearCache(),this.iamService?.clearCache(),this.areaService?.clearCache(),this.commentService?.clearCache(),this.reactionService?.clearCache(),this.serviceBook.get(hT)?.clearCache(),this.viewsService?.clearCache()}catch(r){this.loggingService.catch("Error in resetServicesCache: ",r)}}initializeSignedInUser(r,i,o){this.loggingService.log("%c[WB] Calling FUNCTION: initializeSignedInUser","color: green;");try{let s=new zi;s.userSnippylyId=r.uid,s.type="signedIn",o&&(s=B(B({},s),o)),this.setUserToStorage(s),this.mergeUserWithProvidedUserData(s,i)}catch(s){this.loggingService.catch("Error in initializeSignedInUser: ",s)}}mergeUserWithProvidedUserData(r,i){return y(this,null,function*(){this.loggingService.log("%c[WB] Calling FUNCTION: mergeUserWithProvidedUserData","color: green;");try{r.userId=this.providedUser?.userId||r.userId;let o=null;if(this.usersService?.externalUserDataProviderAvailable()){let s=rd(),a=IT.IDENTIFY,c=this.providedUser?.clientOrganizationId||r.clientOrganizationId;this.coreActionsService.triggerAction(Wi.USER_RESOLVER,{event:St.Events.Resolver.USER_RESOLUTION_REQUEST_FORMED,timestamp:new Date().getTime(),uniqueId:s,methodName:nR.MERGE_USER_WITH_PROVIDED_USER_DATA,moduleName:a,source:"internal",payload:{userIds:[r.userId],organizationId:c}});let l=yield this.usersService.resolveUsers({userIds:[r.userId],organizationId:c,skipUserCheck:!0,uniqueId:s,moduleName:a});l&&l[r.userId]?o=JSON.parse(JSON.stringify(l[r.userId]||{})):this.scheduleLoggedInUserResolveRetry(r.userId,c),r=B(B({},r),o||{})}PN(r,{provided:this.providedUser,resolved:o,avatarColor:s=>this.getUserAvatarColor(s),textColor:s=>this.getUserTextColor(s)}),this.updateUserInternally(r)}catch(o){this.loggingService.catch("Error in mergeUserWithProvidedUserData: ",o)}})}updateUserInternally(r){return y(this,null,function*(){this.loggingService.log("%c[WB] Calling FUNCTION: updateUserInternally","color: green;");try{let i=Object.assign({},r);delete i.contacts,this.analyticsService.identifyUser(r.userSnippylyId,i,{forceReset:this.userOptions$.value?.forceReset});let o=this.portableBackend$.value,s=this.portableSessionEpoch;!this.getPlanDetailsCalled&&!o&&this.getPlanDetailsFromDb();let a;if(o)a=MN({apiEndpoint:o.apiEndpoint,token:this.portableToken});else{let h=gd(this.functions,sd({url:this.endpointsService.getCloudFunctionUrl("sdkProxy"),apiProxyDomain:this.configService?.getApiProxyDomain()}));a=QV({methodName:"updateUserInternally",data:{type:"getProjectConfig"},getSdkProxy:h,userId:r?.userId??""})}let c=Promise.resolve();o?this.probeIdentifyPermissionWhenPortableReady(r,s,this.portableChunkReady):c=this.buildIdentifyPermissionProbe(r);let[l,d]=yield Promise.allSettled([a,c]);if(o){if(s!==this.portableSessionEpoch){this.loggingService.log("Velt [portable backend]: discarding an updateUser() that a sign-out or a new identify overtook.");return}l.status==="fulfilled"&&l.value&&this.applyProjectConfig(l.value)}else l.status==="fulfilled"?this.applyProjectConfig(l.value?.data):this.loggingService.warn("Failed to fetch project config:",l.reason);this.afAuth.currentUser?(this.user$.next(r),this.updateUserToFirebase(r)):this.portableAuthUser$.value&&this.user$.next(r)}catch(i){this.loggingService.catch("Error in updateUserInternally: ",i)}})}buildIdentifyPermissionProbe(r){if(this.userPermissionService?.isPermissionProviderAvailable()&&r.clientOrganizationId){let i=[{userId:r.userId,resource:{id:r.clientOrganizationId,type:KU.ORGANIZATION,source:vT.IDENTIFY,organizationId:r.clientOrganizationId}}],o=rd();return this.coreActionsService.triggerAction(Wi.PERMISSION_PROVIDER,{event:St.Events.PermissionProvider.RESOURCE_ACCESS_REQUEST_FORMED,methodName:vT.IDENTIFY,uniqueId:o,timestamp:new Date().getTime(),source:"internal",payload:{requests:i}}),this.userPermissionService?.onResourceAccessRequired({requests:i,uniqueId:o,userId:r.userId,methodName:vT.IDENTIFY,fromCache:!1})??Promise.resolve()}return Promise.resolve()}probeIdentifyPermissionWhenPortableReady(r,i,o){return y(this,null,function*(){try{if(yield o,i!==this.portableSessionEpoch||this.user$.value?.userId!==r.userId||!P2()||this.commonDbService?.isPortableBackendActive?.()!==!0)return;yield this.buildIdentifyPermissionProbe(r)}catch(s){this.loggingService.catch("Error in probeIdentifyPermissionWhenPortableReady: ",s)}})}updateUserToFirebase(r){this.loggingService.log("%c[WB] Calling FUNCTION: updateUserToFirebase","color: green;");try{let i=JSON.parse(JSON.stringify(r)),o=me(B({},i),{lastUpdated:new Date})}catch(i){this.loggingService.catch("Error in updateUserToFirebase: ",i)}}getPlanDetailsFromDb(){return y(this,null,function*(){try{this.getPlanDetailsCalled=!0;let i=yield gd(this.functions,sd({url:this.endpointsService.getCloudFunctionUrl("getPlanDetails"),apiProxyDomain:this.configService?.getApiProxyDomain()}),{timeout:1200*1e3})({apiKey:this.configService.getApiKey(),sdkVersion:xc(),sdkType:this.configService.getSdkType()});return i?.data?.isPlanExpired&&(this.analyticsService.trackEvent(St.Events.Core.SDK_PLAN_EXPIRED),this.configService.getSF()||console.warn("Velt SDK plan has expired.")),this.planDetails$.next(i?.data||{planInfo:null,isPlanExpired:!1}),i}catch(r){return this.loggingService.catch("Error in getPlanDetailsFromDb: ",r),this.planDetails$.next({planInfo:null,isPlanExpired:!1}),Promise.resolve(null)}})}isPlanExpired$(){return this.planDetails$.pipe(mn(r=>!!r),De(r=>!!r?.isPlanExpired))}isPlanExpired(){return this.planDetails$.getValue()?.isPlanExpired}addPreSignOutFuction(r,i){try{this.preSignOutFunctions.set(r,i)}catch(o){this.loggingService.catch("Error in addPreSignOutFuction: ",o)}}setUserOrganization(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: setUserOrganization","color: green;");let i=JSON.parse(JSON.stringify(this.userOrganization$.value||{}));this.getUser()?.organizationId===r?.organizationId?(i.metadata=r,this.userOrganization$.next(i)):this.userOrganization$.next(null)}catch(i){this.loggingService.catch("Error in setUserOrganization: ",i)}}setOrganizationUserGroups(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: setUserOrganizationGroups","color: green;");let i=JSON.parse(JSON.stringify(this.userOrganization$.value||{}));this.getUser()?.organizationId===i?.metadata?.organizationId&&(i.groups=r,this.userOrganization$.next(i))}catch(i){this.loggingService.catch("Error in setUserOrganizationGroups: ",i)}}getUserOrganization$(){return this.loggingService.log("%c[WB] Calling FUNCTION: getUserOrganization$","color: green;"),this.getUser$().pipe(Mr(r=>r?this.userOrganization$.asObservable().pipe(De(i=>i?.metadata?.organizationId===r.organizationId?i:null)):lt(null)))}signOutUser(r="internal"){return y(this,null,function*(){try{this.userPermissionService?.invalidateAllPermissionsState(),this.portableSessionEpoch++,this.portableSignOutOwnsEpochBump=!0,this.pendingPortableRestore=null,this.portableResumeUserId=null,this.portableSessionIdentity=null,(this.portableAutoLoginCalled||this.configService?.getEnablePortableBackend()===!0)&&(this.clearPersistedPortableSession(),this.recordPortableSignOut(),this.clearPortableTokenRefresh()),r==="external"&&(this.onRetrySubscription?.unsubscribe(),this.authProviderListenerGeneration++),this.userPermissionService?.revokeAccessOnUserLogout(),this.analyticsService.trackEvent(St.Events.Core.SDK_USER_SIGN_OUT,{apiKey:this.apiKey,clientUserId:this.user$?.value?.userId,snippylyUserId:this.user$?.value?.userSnippylyId,message:r==="external"?"User Sign out":"System Sign out",user:this.user$?.value?this.getUserForTelemetry(this.user$?.value):null,forceReset:this.userOptions$.value?.forceReset,source:r});let i=yield fd(this.afAuth).pipe(En(1)).toPromise().catch(o=>null);if(i){this.releaseLiveUserSession("clear");for(let[o,s]of this.preSignOutFunctions)try{yield s(i)}catch(a){this.loggingService.catch(`Error in signOutUser ${o} function: `,a)}return this.user$.next(null),yield $V(1e3),RG(this.afAuth).catch(o=>{this.loggingService.catch("Error in signOutUser:",o)})}else return(this.portableAuthUser$.value||this.portableBackend$.value)&&this.releaseLiveUserSession("clear"),Promise.resolve()}catch(i){this.loggingService.catch("Error in signOutUser: ",i)}finally{this.portableSignOutOwnsEpochBump=!1}})}isFeatureAllowed(r){return xV(this.config,this.user$.value,r)}getUserWithoutContacts(r){try{if(r){let i=JSON.parse(JSON.stringify(r));return delete i.contacts,i}else return null}catch(i){return this.loggingService.catch("Error in getUserWithoutContacts: ",i),null}}getUserForTelemetry(r){try{let i=this.getUserWithoutContacts(r);return i?this.usersService?.userResolverConfigured?.()?IR(i):i:null}catch(i){return this.loggingService.catch("Error in getUserForTelemetry: ",i),null}}getUserForClient(r){try{return _R(r)}catch(i){return this.loggingService.catch("Error in getUserForClient: ",i),null}}getUserAvatarColor(r){try{return r?this.avatarService.generateUserColor(Mc(r)):"#625DF5"}catch{return"#625DF5"}}getUserTextColor(r){try{return"#FFFFFF"}catch{return"#FFFFFF"}}setOptionalPropertiesToUsers(r){try{r.forEach(i=>{try{i?.color||(i.color=this.getUserAvatarColor(i?.userId)),i?.textColor||(i.textColor=this.getUserTextColor(i?.userId)),!i?.initial&&(i?.name||i?.email)&&(i.initial=i.name?.charAt(0).toUpperCase()||i.email?.charAt(0).toUpperCase())}catch{}})}catch{}}};e.PORTABLE_REFRESH_WARN_AFTER_FAILURES=3,e.PORTABLE_DOCUMENT_LIFECYCLE_EVENTS=["visibilitychange","resume"],e.PORTABLE_NO_CREDENTIAL_ENVELOPE={error:"No renewal credential.",code:"no_renewal_credential",message:"the session has no renewal credential for the configured gateway",source:"identify"},e.\u0275fac=function(i){return new(i||e)($(Hc),$(Ji),$(c2),$(l2),$(M2),$(Ho),$(zs),$(bt),$(mT))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();var k2="@firebase/database",F2="1.0.20";var Xw="";function cre(t){Xw=t}var JN=class{constructor(e){this.domStorage_=e,this.prefix_="firebase:"}set(e,n){n==null?this.domStorage_.removeItem(this.prefixedName_(e)):this.domStorage_.setItem(this.prefixedName_(e),xt(n))}get(e){let n=this.domStorage_.getItem(this.prefixedName_(e));return n==null?null:cd(n)}remove(e){this.domStorage_.removeItem(this.prefixedName_(e))}prefixedName_(e){return this.prefix_+e}toString(){return this.domStorage_.toString()}};var ZN=class{constructor(){this.cache_={},this.isInMemoryStorage=!0}set(e,n){n==null?delete this.cache_[e]:this.cache_[e]=n}get(e){return Vr(this.cache_,e)?this.cache_[e]:null}remove(e){delete this.cache_[e]}};var gj=function(t){try{if(typeof window<"u"&&typeof window[t]<"u"){let e=window[t];return e.setItem("firebase:sentinel","cache"),e.removeItem("firebase:sentinel"),new JN(e)}}catch{}return new ZN},Jc=gj("localStorage"),ew=gj("sessionStorage");var vd=new Br("@firebase/database"),mj=(function(){let t=1;return function(){return t++}})(),Ej=function(t){let e=TB(t),n=new PT;n.update(e);let r=n.digest();return ld.encodeByteArray(r)},ng=function(...t){let e="";for(let n=0;n<t.length;n++){let r=t[n];Array.isArray(r)||r&&typeof r=="object"&&typeof r.length=="number"?e+=ng.apply(null,r):typeof r=="object"?e+=xt(r):e+=r,e+=" "}return e},Zc=null,U2=!0,lre=function(t,e){q(!e||t===!0||t===!1,"Can't turn on custom loggers persistently."),t===!0?(vd.logLevel=Re.VERBOSE,Zc=vd.log.bind(vd),e&&ew.set("logging_enabled",!0)):typeof t=="function"?Zc=t:(Zc=null,ew.remove("logging_enabled"))},un=function(...t){if(U2===!0&&(U2=!1,Zc===null&&ew.get("logging_enabled")===!0&&lre(!0)),Zc){let e=ng.apply(null,t);Zc(e)}},rg=function(t){return function(...e){un(t,...e)}},tw=function(...t){let e="FIREBASE INTERNAL ERROR: "+ng(...t);vd.error(e)},Wo=function(...t){let e=`FIREBASE FATAL ERROR: ${ng(...t)}`;throw vd.error(e),new Error(e)},xn=function(...t){let e="FIREBASE WARNING: "+ng(...t);vd.warn(e)},ure=function(){typeof window<"u"&&window.location&&window.location.protocol&&window.location.protocol.indexOf("https:")!==-1&&xn("Insecure Firebase access from a secure page. Please use https in calls to new Firebase().")},By=function(t){return typeof t=="number"&&(t!==t||t===Number.POSITIVE_INFINITY||t===Number.NEGATIVE_INFINITY)},dre=function(t){if(Ki()||document.readyState==="complete")t();else{let e=!1,n=function(){if(!document.body){setTimeout(n,Math.floor(10));return}e||(e=!0,t())};document.addEventListener?(document.addEventListener("DOMContentLoaded",n,!1),window.addEventListener("load",n,!1)):document.attachEvent&&(document.attachEvent("onreadystatechange",()=>{document.readyState==="complete"&&n()}),window.attachEvent("onload",n))}},tl="[MIN_NAME]",Zs="[MAX_NAME]",al=function(t,e){if(t===e)return 0;if(t===tl||e===Zs)return-1;if(e===tl||t===Zs)return 1;{let n=V2(t),r=V2(e);return n!==null?r!==null?n-r===0?t.length-e.length:n-r:-1:r!==null?1:t<e?-1:1}},hre=function(t,e){return t===e?0:t<e?-1:1},xp=function(t,e){if(e&&t in e)return e[t];throw new Error("Missing required key ("+t+") in object: "+xt(e))},Qw=function(t){if(typeof t!="object"||t===null)return xt(t);let e=[];for(let r in t)e.push(r);e.sort();let n="{";for(let r=0;r<e.length;r++)r!==0&&(n+=","),n+=xt(e[r]),n+=":",n+=Qw(t[e[r]]);return n+="}",n},_j=function(t,e){let n=t.length;if(n<=e)return[t];let r=[];for(let i=0;i<n;i+=e)i+e>n?r.push(t.substring(i,n)):r.push(t.substring(i,i+e));return r};function dn(t,e){for(let n in t)t.hasOwnProperty(n)&&e(n,t[n])}var Tj=function(t){q(!By(t),"Invalid JSON number");let e=11,n=52,r=(1<<e-1)-1,i,o,s,a,c;t===0?(o=0,s=0,i=1/t===-1/0?1:0):(i=t<0,t=Math.abs(t),t>=Math.pow(2,1-r)?(a=Math.min(Math.floor(Math.log(t)/Math.LN2),r),o=a+r,s=Math.round(t*Math.pow(2,n-a)-Math.pow(2,n))):(o=0,s=Math.round(t/Math.pow(2,1-r-n))));let l=[];for(c=n;c;c-=1)l.push(s%2?1:0),s=Math.floor(s/2);for(c=e;c;c-=1)l.push(o%2?1:0),o=Math.floor(o/2);l.push(i?1:0),l.reverse();let d=l.join(""),h="";for(c=0;c<64;c+=8){let f=parseInt(d.substr(c,8),2).toString(16);f.length===1&&(f="0"+f),h=h+f}return h.toLowerCase()},fre=function(){return!!(typeof window=="object"&&window.chrome&&window.chrome.extension&&!/^chrome/.test(window.location.href))},pre=function(){return typeof Windows=="object"&&typeof Windows.UI=="object"};function gre(t,e){let n="Unknown Error";t==="too_big"?n="The data requested exceeds the maximum size that can be accessed with a single request.":t==="permission_denied"?n="Client doesn't have permission to access the desired data.":t==="unavailable"&&(n="The service is unavailable");let r=new Error(t+" at "+e._path.toString()+": "+n);return r.code=t.toUpperCase(),r}var mre=new RegExp("^-?(0*)\\d{1,10}$"),Ere=-2147483648,_re=2147483647,V2=function(t){if(mre.test(t)){let e=Number(t);if(e>=Ere&&e<=_re)return e}return null},Od=function(t){try{t()}catch(e){setTimeout(()=>{let n=e.stack||"";throw xn("Exception was thrown by user callback.",n),e},Math.floor(0))}},Tre=function(){return(typeof window=="object"&&window.navigator&&window.navigator.userAgent||"").search(/googlebot|google webmaster tools|bingbot|yahoo! slurp|baiduspider|yandexbot|duckduckbot/i)>=0},Vp=function(t,e){let n=setTimeout(t,e);return typeof n=="number"&&typeof Deno<"u"&&Deno.unrefTimer?Deno.unrefTimer(n):typeof n=="object"&&n.unref&&n.unref(),n};var nw=class{constructor(e,n){this.appCheckProvider=n,this.appName=e.name,Zn(e)&&e.settings.appCheckToken&&(this.serverAppAppCheckToken=e.settings.appCheckToken),this.appCheck=n?.getImmediate({optional:!0}),this.appCheck||n?.get().then(r=>this.appCheck=r)}getToken(e){if(this.serverAppAppCheckToken){if(e)throw new Error("Attempted reuse of `FirebaseServerApp.appCheckToken` after previous usage failed.");return Promise.resolve({token:this.serverAppAppCheckToken})}return this.appCheck?this.appCheck.getToken(e):new Promise((n,r)=>{setTimeout(()=>{this.appCheck?this.getToken(e).then(n,r):n(null)},0)})}addTokenChangeListener(e){var n;(n=this.appCheckProvider)===null||n===void 0||n.get().then(r=>r.addTokenListener(e))}notifyForInvalidToken(){xn(`Provided AppCheck credentials for the app named "${this.appName}" are invalid. This usually indicates your app was not initialized correctly.`)}};var rw=class{constructor(e,n,r){this.appName_=e,this.firebaseOptions_=n,this.authProvider_=r,this.auth_=null,this.auth_=r.getImmediate({optional:!0}),this.auth_||r.onInit(i=>this.auth_=i)}getToken(e){return this.auth_?this.auth_.getToken(e).catch(n=>n&&n.code==="auth/token-not-initialized"?(un("Got auth/token-not-initialized error. Treating as null token."),null):Promise.reject(n)):new Promise((n,r)=>{setTimeout(()=>{this.auth_?this.getToken(e).then(n,r):n(null)},0)})}addTokenChangeListener(e){this.auth_?this.auth_.addAuthTokenListener(e):this.authProvider_.get().then(n=>n.addAuthTokenListener(e))}removeTokenChangeListener(e){this.authProvider_.get().then(n=>n.removeAuthTokenListener(e))}notifyForInvalidToken(){let e='Provided authentication credentials for the app named "'+this.appName_+'" are invalid. This usually indicates your app was not initialized correctly. ';"credential"in this.firebaseOptions_?e+='Make sure the "credential" property provided to initializeApp() is authorized to access the specified "databaseURL" and is from the correct project.':"serviceAccount"in this.firebaseOptions_?e+='Make sure the "serviceAccount" property provided to initializeApp() is authorized to access the specified "databaseURL" and is from the correct project.':e+='Make sure the "apiKey" and "databaseURL" properties provided to initializeApp() match the values provided for your app at https://console.firebase.google.com/.',xn(e)}},Bp=(()=>{class t{constructor(n){this.accessToken=n}getToken(n){return Promise.resolve({accessToken:this.accessToken})}addTokenChangeListener(n){n(this.accessToken)}removeTokenChangeListener(n){}notifyForInvalidToken(){}}t.OWNER="owner";return t})(),gy="5",yj="v",Ij="s",vj="r",Sj="f",Aj=/(console\.firebase|firebase-console-\w+\.corp|firebase\.corp)\.google\.com/,Cj="ls",Dj="p",iw="ac",Rj="websocket",Nj="long_polling";var my=class{constructor(e,n,r,i,o=!1,s="",a=!1,c=!1,l=null){this.secure=n,this.namespace=r,this.webSocketOnly=i,this.nodeAdmin=o,this.persistenceKey=s,this.includeNamespaceInQueryParams=a,this.isUsingEmulator=c,this.emulatorOptions=l,this._host=e.toLowerCase(),this._domain=this._host.substr(this._host.indexOf(".")+1),this.internalHost=Jc.get("host:"+e)||this._host}isCacheableHost(){return this.internalHost.substr(0,2)==="s-"}isCustomHost(){return this._domain!=="firebaseio.com"&&this._domain!=="firebaseio-demo.com"}get host(){return this._host}set host(e){e!==this.internalHost&&(this.internalHost=e,this.isCacheableHost()&&Jc.set("host:"+this._host,this.internalHost))}toString(){let e=this.toURLString();return this.persistenceKey&&(e+="<"+this.persistenceKey+">"),e}toURLString(){let e=this.secure?"https://":"http://",n=this.includeNamespaceInQueryParams?`?ns=${this.namespace}`:"";return`${e}${this.host}/${n}`}};function yre(t){return t.host!==t.internalHost||t.isCustomHost()||t.includeNamespaceInQueryParams}function wj(t,e,n){q(typeof e=="string","typeof type must == string"),q(typeof n=="object","typeof params must == object");let r;if(e===Rj)r=(t.secure?"wss://":"ws://")+t.internalHost+"/.ws?";else if(e===Nj)r=(t.secure?"https://":"http://")+t.internalHost+"/.lp?";else throw new Error("Unknown connection type: "+e);yre(t)&&(n.ns=t.namespace);let i=[];return dn(n,(o,s)=>{i.push(o+"="+s)}),r+i.join("&")}var ow=class{constructor(){this.counters_={}}incrementCounter(e,n=1){Vr(this.counters_,e)||(this.counters_[e]=0),this.counters_[e]+=n}get(){return sB(this.counters_)}};var WN={},zN={};function Jw(t){let e=t.toString();return WN[e]||(WN[e]=new ow),WN[e]}function Ire(t,e){let n=t.toString();return zN[n]||(zN[n]=e()),zN[n]}var sw=class{constructor(e){this.onMessage_=e,this.pendingResponses=[],this.currentResponseNum=0,this.closeAfterResponse=-1,this.onClose=null}closeAfter(e,n){this.closeAfterResponse=e,this.onClose=n,this.closeAfterResponse<this.currentResponseNum&&(this.onClose(),this.onClose=null)}handleResponse(e,n){for(this.pendingResponses[e]=n;this.pendingResponses[this.currentResponseNum];){let r=this.pendingResponses[this.currentResponseNum];delete this.pendingResponses[this.currentResponseNum];for(let i=0;i<r.length;++i)r[i]&&Od(()=>{this.onMessage_(r[i])});if(this.currentResponseNum===this.closeAfterResponse){this.onClose&&(this.onClose(),this.onClose=null);break}this.currentResponseNum++}}};var B2="start",vre="close",Sre="pLPCommand",Are="pRTLPCB",bj="id",Oj="pw",Mj="ser",Cre="cb",Dre="seg",Rre="ts",Nre="d",wre="dframe",Lj=1870,Pj=30,bre=Lj-Pj,Ore=25e3,Mre=3e4,Ey=class t{constructor(e,n,r,i,o,s,a){this.connId=e,this.repoInfo=n,this.applicationId=r,this.appCheckToken=i,this.authToken=o,this.transportSessionId=s,this.lastSessionId=a,this.bytesSent=0,this.bytesReceived=0,this.everConnected_=!1,this.log_=rg(e),this.stats_=Jw(n),this.urlFn=c=>(this.appCheckToken&&(c[iw]=this.appCheckToken),wj(n,Nj,c))}open(e,n){this.curSegmentNum=0,this.onDisconnect_=n,this.myPacketOrderer=new sw(e),this.isClosed_=!1,this.connectTimeoutTimer_=setTimeout(()=>{this.log_("Timed out trying to connect."),this.onClosed_(),this.connectTimeoutTimer_=null},Math.floor(Mre)),dre(()=>{if(this.isClosed_)return;this.scriptTagHolder=new aw((...o)=>{let[s,a,c,l,d]=o;if(this.incrementIncomingBytes_(o),!!this.scriptTagHolder)if(this.connectTimeoutTimer_&&(clearTimeout(this.connectTimeoutTimer_),this.connectTimeoutTimer_=null),this.everConnected_=!0,s===B2)this.id=a,this.password=c;else if(s===vre)a?(this.scriptTagHolder.sendNewPolls=!1,this.myPacketOrderer.closeAfter(a,()=>{this.onClosed_()})):this.onClosed_();else throw new Error("Unrecognized command received: "+s)},(...o)=>{let[s,a]=o;this.incrementIncomingBytes_(o),this.myPacketOrderer.handleResponse(s,a)},()=>{this.onClosed_()},this.urlFn);let r={};r[B2]="t",r[Mj]=Math.floor(Math.random()*1e8),this.scriptTagHolder.uniqueCallbackIdentifier&&(r[Cre]=this.scriptTagHolder.uniqueCallbackIdentifier),r[yj]=gy,this.transportSessionId&&(r[Ij]=this.transportSessionId),this.lastSessionId&&(r[Cj]=this.lastSessionId),this.applicationId&&(r[Dj]=this.applicationId),this.appCheckToken&&(r[iw]=this.appCheckToken),typeof location<"u"&&location.hostname&&Aj.test(location.hostname)&&(r[vj]=Sj);let i=this.urlFn(r);this.log_("Connecting via long-poll to "+i),this.scriptTagHolder.addTag(i,()=>{})})}start(){this.scriptTagHolder.startLongPoll(this.id,this.password),this.addDisconnectPingFrame(this.id,this.password)}static forceAllow(){t.forceAllow_=!0}static forceDisallow(){t.forceDisallow_=!0}static isAvailable(){return Ki()?!1:t.forceAllow_?!0:!t.forceDisallow_&&typeof document<"u"&&document.createElement!=null&&!fre()&&!pre()}markConnectionHealthy(){}shutdown_(){this.isClosed_=!0,this.scriptTagHolder&&(this.scriptTagHolder.close(),this.scriptTagHolder=null),this.myDisconnFrame&&(document.body.removeChild(this.myDisconnFrame),this.myDisconnFrame=null),this.connectTimeoutTimer_&&(clearTimeout(this.connectTimeoutTimer_),this.connectTimeoutTimer_=null)}onClosed_(){this.isClosed_||(this.log_("Longpoll is closing itself"),this.shutdown_(),this.onDisconnect_&&(this.onDisconnect_(this.everConnected_),this.onDisconnect_=null))}close(){this.isClosed_||(this.log_("Longpoll is being closed."),this.shutdown_())}send(e){let n=xt(e);this.bytesSent+=n.length,this.stats_.incrementCounter("bytes_sent",n.length);let r=RR(n),i=_j(r,bre);for(let o=0;o<i.length;o++)this.scriptTagHolder.enqueueSegment(this.curSegmentNum,i.length,i[o]),this.curSegmentNum++}addDisconnectPingFrame(e,n){if(Ki())return;this.myDisconnFrame=document.createElement("iframe");let r={};r[wre]="t",r[bj]=e,r[Oj]=n,this.myDisconnFrame.src=this.urlFn(r),this.myDisconnFrame.style.display="none",document.body.appendChild(this.myDisconnFrame)}incrementIncomingBytes_(e){let n=xt(e).length;this.bytesReceived+=n,this.stats_.incrementCounter("bytes_received",n)}},aw=class t{constructor(e,n,r,i){if(this.onDisconnect=r,this.urlFn=i,this.outstandingRequests=new Set,this.pendingSegs=[],this.currentSerial=Math.floor(Math.random()*1e8),this.sendNewPolls=!0,Ki())this.commandCB=e,this.onMessageCB=n;else{this.uniqueCallbackIdentifier=mj(),window[Sre+this.uniqueCallbackIdentifier]=e,window[Are+this.uniqueCallbackIdentifier]=n,this.myIFrame=t.createIFrame_();let o="";this.myIFrame.src&&this.myIFrame.src.substr(0,11)==="javascript:"&&(o='<script>document.domain="'+document.domain+'";<\/script>');let s="<html><body>"+o+"</body></html>";try{this.myIFrame.doc.open(),this.myIFrame.doc.write(s),this.myIFrame.doc.close()}catch(a){un("frame writing exception"),a.stack&&un(a.stack),un(a)}}}static createIFrame_(){let e=document.createElement("iframe");if(e.style.display="none",document.body){document.body.appendChild(e);try{e.contentWindow.document||un("No IE domain setting required")}catch{let r=document.domain;e.src="javascript:void((function(){document.open();document.domain='"+r+"';document.close();})())"}}else throw"Document body has not initialized. Wait to initialize Firebase until after the document is ready.";return e.contentDocument?e.doc=e.contentDocument:e.contentWindow?e.doc=e.contentWindow.document:e.document&&(e.doc=e.document),e}close(){this.alive=!1,this.myIFrame&&(this.myIFrame.doc.body.textContent="",setTimeout(()=>{this.myIFrame!==null&&(document.body.removeChild(this.myIFrame),this.myIFrame=null)},Math.floor(0)));let e=this.onDisconnect;e&&(this.onDisconnect=null,e())}startLongPoll(e,n){for(this.myID=e,this.myPW=n,this.alive=!0;this.newRequest_(););}newRequest_(){if(this.alive&&this.sendNewPolls&&this.outstandingRequests.size<(this.pendingSegs.length>0?2:1)){this.currentSerial++;let e={};e[bj]=this.myID,e[Oj]=this.myPW,e[Mj]=this.currentSerial;let n=this.urlFn(e),r="",i=0;for(;this.pendingSegs.length>0&&this.pendingSegs[0].d.length+Pj+r.length<=Lj;){let s=this.pendingSegs.shift();r=r+"&"+Dre+i+"="+s.seg+"&"+Rre+i+"="+s.ts+"&"+Nre+i+"="+s.d,i++}return n=n+r,this.addLongPollTag_(n,this.currentSerial),!0}else return!1}enqueueSegment(e,n,r){this.pendingSegs.push({seg:e,ts:n,d:r}),this.alive&&this.newRequest_()}addLongPollTag_(e,n){this.outstandingRequests.add(n);let r=()=>{this.outstandingRequests.delete(n),this.newRequest_()},i=setTimeout(r,Math.floor(Ore)),o=()=>{clearTimeout(i),r()};this.addTag(e,o)}addTag(e,n){Ki()?this.doNodeLongPoll(e,n):setTimeout(()=>{try{if(!this.sendNewPolls)return;let r=this.myIFrame.doc.createElement("script");r.type="text/javascript",r.async=!0,r.src=e,r.onload=r.onreadystatechange=function(){let i=r.readyState;(!i||i==="loaded"||i==="complete")&&(r.onload=r.onreadystatechange=null,r.parentNode&&r.parentNode.removeChild(r),n())},r.onerror=()=>{un("Long-poll script failed to load: "+e),this.sendNewPolls=!1,this.close()},this.myIFrame.doc.body.appendChild(r)}catch{}},Math.floor(1))}};var Lre=16384,Pre=45e3,_y=null;typeof MozWebSocket<"u"?_y=MozWebSocket:typeof WebSocket<"u"&&(_y=WebSocket);var yd=(()=>{class t{constructor(n,r,i,o,s,a,c){this.connId=n,this.applicationId=i,this.appCheckToken=o,this.authToken=s,this.keepaliveTimer=null,this.frames=null,this.totalFrames=0,this.bytesSent=0,this.bytesReceived=0,this.log_=rg(this.connId),this.stats_=Jw(r),this.connURL=t.connectionURL_(r,a,c,o,i),this.nodeAdmin=r.nodeAdmin}static connectionURL_(n,r,i,o,s){let a={};return a[yj]=gy,!Ki()&&typeof location<"u"&&location.hostname&&Aj.test(location.hostname)&&(a[vj]=Sj),r&&(a[Ij]=r),i&&(a[Cj]=i),o&&(a[iw]=o),s&&(a[Dj]=s),wj(n,Rj,a)}open(n,r){this.onDisconnect=r,this.onMessage=n,this.log_("Websocket connecting to "+this.connURL),this.everConnected_=!1,Jc.set("previous_websocket_failure",!0);try{let i;if(Ki()){let o=this.nodeAdmin?"AdminNode":"Node";i={headers:{"User-Agent":`Firebase/${gy}/${Xw}/${process.platform}/${o}`,"X-Firebase-GMPID":this.applicationId||""}},this.authToken&&(i.headers.Authorization=`Bearer ${this.authToken}`),this.appCheckToken&&(i.headers["X-Firebase-AppCheck"]=this.appCheckToken);let s=process.env,a=this.connURL.indexOf("wss://")===0?s.HTTPS_PROXY||s.https_proxy:s.HTTP_PROXY||s.http_proxy;a&&(i.proxy={origin:a})}this.mySock=new _y(this.connURL,[],i)}catch(i){this.log_("Error instantiating WebSocket.");let o=i.message||i.data;o&&this.log_(o),this.onClosed_();return}this.mySock.onopen=()=>{this.log_("Websocket connected."),this.everConnected_=!0},this.mySock.onclose=()=>{this.log_("Websocket connection was disconnected."),this.mySock=null,this.onClosed_()},this.mySock.onmessage=i=>{this.handleIncomingFrame(i)},this.mySock.onerror=i=>{this.log_("WebSocket error. Closing connection.");let o=i.message||i.data;o&&this.log_(o),this.onClosed_()}}start(){}static forceDisallow(){t.forceDisallow_=!0}static isAvailable(){let n=!1;if(typeof navigator<"u"&&navigator.userAgent){let r=/Android ([0-9]{0,}\.[0-9]{0,})/,i=navigator.userAgent.match(r);i&&i.length>1&&parseFloat(i[1])<4.4&&(n=!0)}return!n&&_y!==null&&!t.forceDisallow_}static previouslyFailed(){return Jc.isInMemoryStorage||Jc.get("previous_websocket_failure")===!0}markConnectionHealthy(){Jc.remove("previous_websocket_failure")}appendFrame_(n){if(this.frames.push(n),this.frames.length===this.totalFrames){let r=this.frames.join("");this.frames=null;let i=cd(r);this.onMessage(i)}}handleNewFrameCount_(n){this.totalFrames=n,this.frames=[]}extractFrameCount_(n){if(q(this.frames===null,"We already have a frame buffer"),n.length<=6){let r=Number(n);if(!isNaN(r))return this.handleNewFrameCount_(r),null}return this.handleNewFrameCount_(1),n}handleIncomingFrame(n){if(this.mySock===null)return;let r=n.data;if(this.bytesReceived+=r.length,this.stats_.incrementCounter("bytes_received",r.length),this.resetKeepAlive(),this.frames!==null)this.appendFrame_(r);else{let i=this.extractFrameCount_(r);i!==null&&this.appendFrame_(i)}}send(n){this.resetKeepAlive();let r=xt(n);this.bytesSent+=r.length,this.stats_.incrementCounter("bytes_sent",r.length);let i=_j(r,Lre);i.length>1&&this.sendString_(String(i.length));for(let o=0;o<i.length;o++)this.sendString_(i[o])}shutdown_(){this.isClosed_=!0,this.keepaliveTimer&&(clearInterval(this.keepaliveTimer),this.keepaliveTimer=null),this.mySock&&(this.mySock.close(),this.mySock=null)}onClosed_(){this.isClosed_||(this.log_("WebSocket is closing itself"),this.shutdown_(),this.onDisconnect&&(this.onDisconnect(this.everConnected_),this.onDisconnect=null))}close(){this.isClosed_||(this.log_("WebSocket is being closed"),this.shutdown_())}resetKeepAlive(){clearInterval(this.keepaliveTimer),this.keepaliveTimer=setInterval(()=>{this.mySock&&this.sendString_("0"),this.resetKeepAlive()},Math.floor(Pre))}sendString_(n){try{this.mySock.send(n)}catch(r){this.log_("Exception thrown from WebSocket.send():",r.message||r.data,"Closing connection."),setTimeout(this.onClosed_.bind(this),0)}}}t.responsesRequiredToBeHealthy=2,t.healthyTimeout=3e4;return t})(),xj=(()=>{class t{static get ALL_TRANSPORTS(){return[Ey,yd]}static get IS_TRANSPORT_INITIALIZED(){return this.globalTransportInitialized_}constructor(n){this.initTransports_(n)}initTransports_(n){let r=yd&&yd.isAvailable(),i=r&&!yd.previouslyFailed();if(n.webSocketOnly&&(r||xn("wss:// URL used, but browser isn't known to support websockets. Trying anyway."),i=!0),i)this.transports_=[yd];else{let o=this.transports_=[];for(let s of t.ALL_TRANSPORTS)s&&s.isAvailable()&&o.push(s);t.globalTransportInitialized_=!0}}initialTransport(){if(this.transports_.length>0)return this.transports_[0];throw new Error("No transports available")}upgradeTransport(){return this.transports_.length>1?this.transports_[1]:null}}t.globalTransportInitialized_=!1;return t})(),xre=6e4,kre=5e3,Fre=10*1024,Ure=100*1024,qN="t",G2="d",Vre="s",j2="r",Bre="e",H2="o",$2="a",W2="n",z2="p",Gre="h",cw=class{constructor(e,n,r,i,o,s,a,c,l,d){this.id=e,this.repoInfo_=n,this.applicationId_=r,this.appCheckToken_=i,this.authToken_=o,this.onMessage_=s,this.onReady_=a,this.onDisconnect_=c,this.onKill_=l,this.lastSessionId=d,this.connectionCount=0,this.pendingDataMessages=[],this.state_=0,this.log_=rg("c:"+this.id+":"),this.transportManager_=new xj(n),this.log_("Connection created"),this.start_()}start_(){let e=this.transportManager_.initialTransport();this.conn_=new e(this.nextTransportId_(),this.repoInfo_,this.applicationId_,this.appCheckToken_,this.authToken_,null,this.lastSessionId),this.primaryResponsesRequired_=e.responsesRequiredToBeHealthy||0;let n=this.connReceiver_(this.conn_),r=this.disconnReceiver_(this.conn_);this.tx_=this.conn_,this.rx_=this.conn_,this.secondaryConn_=null,this.isHealthy_=!1,setTimeout(()=>{this.conn_&&this.conn_.open(n,r)},Math.floor(0));let i=e.healthyTimeout||0;i>0&&(this.healthyTimeout_=Vp(()=>{this.healthyTimeout_=null,this.isHealthy_||(this.conn_&&this.conn_.bytesReceived>Ure?(this.log_("Connection exceeded healthy timeout but has received "+this.conn_.bytesReceived+" bytes. Marking connection healthy."),this.isHealthy_=!0,this.conn_.markConnectionHealthy()):this.conn_&&this.conn_.bytesSent>Fre?this.log_("Connection exceeded healthy timeout but has sent "+this.conn_.bytesSent+" bytes. Leaving connection alive."):(this.log_("Closing unhealthy connection after timeout."),this.close()))},Math.floor(i)))}nextTransportId_(){return"c:"+this.id+":"+this.connectionCount++}disconnReceiver_(e){return n=>{e===this.conn_?this.onConnectionLost_(n):e===this.secondaryConn_?(this.log_("Secondary connection lost."),this.onSecondaryConnectionLost_()):this.log_("closing an old connection")}}connReceiver_(e){return n=>{this.state_!==2&&(e===this.rx_?this.onPrimaryMessageReceived_(n):e===this.secondaryConn_?this.onSecondaryMessageReceived_(n):this.log_("message on old connection"))}}sendRequest(e){let n={t:"d",d:e};this.sendData_(n)}tryCleanupConnection(){this.tx_===this.secondaryConn_&&this.rx_===this.secondaryConn_&&(this.log_("cleaning up and promoting a connection: "+this.secondaryConn_.connId),this.conn_=this.secondaryConn_,this.secondaryConn_=null)}onSecondaryControl_(e){if(qN in e){let n=e[qN];n===$2?this.upgradeIfSecondaryHealthy_():n===j2?(this.log_("Got a reset on secondary, closing it"),this.secondaryConn_.close(),(this.tx_===this.secondaryConn_||this.rx_===this.secondaryConn_)&&this.close()):n===H2&&(this.log_("got pong on secondary."),this.secondaryResponsesRequired_--,this.upgradeIfSecondaryHealthy_())}}onSecondaryMessageReceived_(e){let n=xp("t",e),r=xp("d",e);if(n==="c")this.onSecondaryControl_(r);else if(n==="d")this.pendingDataMessages.push(r);else throw new Error("Unknown protocol layer: "+n)}upgradeIfSecondaryHealthy_(){this.secondaryResponsesRequired_<=0?(this.log_("Secondary connection is healthy."),this.isHealthy_=!0,this.secondaryConn_.markConnectionHealthy(),this.proceedWithUpgrade_()):(this.log_("sending ping on secondary."),this.secondaryConn_.send({t:"c",d:{t:z2,d:{}}}))}proceedWithUpgrade_(){this.secondaryConn_.start(),this.log_("sending client ack on secondary"),this.secondaryConn_.send({t:"c",d:{t:$2,d:{}}}),this.log_("Ending transmission on primary"),this.conn_.send({t:"c",d:{t:W2,d:{}}}),this.tx_=this.secondaryConn_,this.tryCleanupConnection()}onPrimaryMessageReceived_(e){let n=xp("t",e),r=xp("d",e);n==="c"?this.onControl_(r):n==="d"&&this.onDataMessage_(r)}onDataMessage_(e){this.onPrimaryResponse_(),this.onMessage_(e)}onPrimaryResponse_(){this.isHealthy_||(this.primaryResponsesRequired_--,this.primaryResponsesRequired_<=0&&(this.log_("Primary connection is healthy."),this.isHealthy_=!0,this.conn_.markConnectionHealthy()))}onControl_(e){let n=xp(qN,e);if(G2 in e){let r=e[G2];if(n===Gre){let i=Object.assign({},r);this.repoInfo_.isUsingEmulator&&(i.h=this.repoInfo_.host),this.onHandshake_(i)}else if(n===W2){this.log_("recvd end transmission on primary"),this.rx_=this.secondaryConn_;for(let i=0;i<this.pendingDataMessages.length;++i)this.onDataMessage_(this.pendingDataMessages[i]);this.pendingDataMessages=[],this.tryCleanupConnection()}else n===Vre?this.onConnectionShutdown_(r):n===j2?this.onReset_(r):n===Bre?tw("Server Error: "+r):n===H2?(this.log_("got pong on primary."),this.onPrimaryResponse_(),this.sendPingOnPrimaryIfNecessary_()):tw("Unknown control packet command: "+n)}}onHandshake_(e){let n=e.ts,r=e.v,i=e.h;this.sessionId=e.s,this.repoInfo_.host=i,this.state_===0&&(this.conn_.start(),this.onConnectionEstablished_(this.conn_,n),gy!==r&&xn("Protocol version mismatch detected"),this.tryStartUpgrade_())}tryStartUpgrade_(){let e=this.transportManager_.upgradeTransport();e&&this.startUpgrade_(e)}startUpgrade_(e){this.secondaryConn_=new e(this.nextTransportId_(),this.repoInfo_,this.applicationId_,this.appCheckToken_,this.authToken_,this.sessionId),this.secondaryResponsesRequired_=e.responsesRequiredToBeHealthy||0;let n=this.connReceiver_(this.secondaryConn_),r=this.disconnReceiver_(this.secondaryConn_);this.secondaryConn_.open(n,r),Vp(()=>{this.secondaryConn_&&(this.log_("Timed out trying to upgrade."),this.secondaryConn_.close())},Math.floor(xre))}onReset_(e){this.log_("Reset packet received. New host: "+e),this.repoInfo_.host=e,this.state_===1?this.close():(this.closeConnections_(),this.start_())}onConnectionEstablished_(e,n){this.log_("Realtime connection established."),this.conn_=e,this.state_=1,this.onReady_&&(this.onReady_(n,this.sessionId),this.onReady_=null),this.primaryResponsesRequired_===0?(this.log_("Primary connection is healthy."),this.isHealthy_=!0):Vp(()=>{this.sendPingOnPrimaryIfNecessary_()},Math.floor(kre))}sendPingOnPrimaryIfNecessary_(){!this.isHealthy_&&this.state_===1&&(this.log_("sending ping on primary."),this.sendData_({t:"c",d:{t:z2,d:{}}}))}onSecondaryConnectionLost_(){let e=this.secondaryConn_;this.secondaryConn_=null,(this.tx_===e||this.rx_===e)&&this.close()}onConnectionLost_(e){this.conn_=null,!e&&this.state_===0?(this.log_("Realtime connection failed."),this.repoInfo_.isCacheableHost()&&(Jc.remove("host:"+this.repoInfo_.host),this.repoInfo_.internalHost=this.repoInfo_.host)):this.state_===1&&this.log_("Realtime connection lost."),this.close()}onConnectionShutdown_(e){this.log_("Connection shutdown command received. Shutting down..."),this.onKill_&&(this.onKill_(e),this.onKill_=null),this.onDisconnect_=null,this.close()}sendData_(e){if(this.state_!==1)throw"Connection is not connected";this.tx_.send(e)}close(){this.state_!==2&&(this.log_("Closing realtime connection."),this.state_=2,this.closeConnections_(),this.onDisconnect_&&(this.onDisconnect_(),this.onDisconnect_=null))}closeConnections_(){this.log_("Shutting down all connections"),this.conn_&&(this.conn_.close(),this.conn_=null),this.secondaryConn_&&(this.secondaryConn_.close(),this.secondaryConn_=null),this.healthyTimeout_&&(clearTimeout(this.healthyTimeout_),this.healthyTimeout_=null)}};var Ty=class{put(e,n,r,i){}merge(e,n,r,i){}refreshAuthToken(e){}refreshAppCheckToken(e){}onDisconnectPut(e,n,r){}onDisconnectMerge(e,n,r){}onDisconnectCancel(e,n){}reportStats(e){}};var yy=class{constructor(e){this.allowedEvents_=e,this.listeners_={},q(Array.isArray(e)&&e.length>0,"Requires a non-empty array")}trigger(e,...n){if(Array.isArray(this.listeners_[e])){let r=[...this.listeners_[e]];for(let i=0;i<r.length;i++)r[i].callback.apply(r[i].context,n)}}on(e,n,r){this.validateEventType_(e),this.listeners_[e]=this.listeners_[e]||[],this.listeners_[e].push({callback:n,context:r});let i=this.getInitialEvent(e);i&&n.apply(r,i)}off(e,n,r){this.validateEventType_(e);let i=this.listeners_[e]||[];for(let o=0;o<i.length;o++)if(i[o].callback===n&&(!r||r===i[o].context)){i.splice(o,1);return}}validateEventType_(e){q(this.allowedEvents_.find(n=>n===e),"Unknown event: "+e)}};var Iy=class t extends yy{static getInstance(){return new t}constructor(){super(["online"]),this.online_=!0,typeof window<"u"&&typeof window.addEventListener<"u"&&!hp()&&(window.addEventListener("online",()=>{this.online_||(this.online_=!0,this.trigger("online",!0))},!1),window.addEventListener("offline",()=>{this.online_&&(this.online_=!1,this.trigger("online",!1))},!1))}getInitialEvent(e){return q(e==="online","Unknown event type: "+e),[this.online_]}currentlyOnline(){return this.online_}};var q2=32,K2=768,Be=class{constructor(e,n){if(n===void 0){this.pieces_=e.split("/");let r=0;for(let i=0;i<this.pieces_.length;i++)this.pieces_[i].length>0&&(this.pieces_[r]=this.pieces_[i],r++);this.pieces_.length=r,this.pieceNum_=0}else this.pieces_=e,this.pieceNum_=n}toString(){let e="";for(let n=this.pieceNum_;n<this.pieces_.length;n++)this.pieces_[n]!==""&&(e+="/"+this.pieces_[n]);return e||"/"}};function Ve(){return new Be("")}function Ne(t){return t.pieceNum_>=t.pieces_.length?null:t.pieces_[t.pieceNum_]}function ea(t){return t.pieces_.length-t.pieceNum_}function at(t){let e=t.pieceNum_;return e<t.pieces_.length&&e++,new Be(t.pieces_,e)}function Zw(t){return t.pieceNum_<t.pieces_.length?t.pieces_[t.pieces_.length-1]:null}function jre(t){let e="";for(let n=t.pieceNum_;n<t.pieces_.length;n++)t.pieces_[n]!==""&&(e+="/"+encodeURIComponent(String(t.pieces_[n])));return e||"/"}function $p(t,e=0){return t.pieces_.slice(t.pieceNum_+e)}function kj(t){if(t.pieceNum_>=t.pieces_.length)return null;let e=[];for(let n=t.pieceNum_;n<t.pieces_.length-1;n++)e.push(t.pieces_[n]);return new Be(e,0)}function Ct(t,e){let n=[];for(let r=t.pieceNum_;r<t.pieces_.length;r++)n.push(t.pieces_[r]);if(e instanceof Be)for(let r=e.pieceNum_;r<e.pieces_.length;r++)n.push(e.pieces_[r]);else{let r=e.split("/");for(let i=0;i<r.length;i++)r[i].length>0&&n.push(r[i])}return new Be(n,0)}function we(t){return t.pieceNum_>=t.pieces_.length}function zn(t,e){let n=Ne(t),r=Ne(e);if(n===null)return e;if(n===r)return zn(at(t),at(e));throw new Error("INTERNAL ERROR: innerPath ("+e+") is not within outerPath ("+t+")")}function Hre(t,e){let n=$p(t,0),r=$p(e,0);for(let i=0;i<n.length&&i<r.length;i++){let o=al(n[i],r[i]);if(o!==0)return o}return n.length===r.length?0:n.length<r.length?-1:1}function eb(t,e){if(ea(t)!==ea(e))return!1;for(let n=t.pieceNum_,r=e.pieceNum_;n<=t.pieces_.length;n++,r++)if(t.pieces_[n]!==e.pieces_[r])return!1;return!0}function jr(t,e){let n=t.pieceNum_,r=e.pieceNum_;if(ea(t)>ea(e))return!1;for(;n<t.pieces_.length;){if(t.pieces_[n]!==e.pieces_[r])return!1;++n,++r}return!0}var lw=class{constructor(e,n){this.errorPrefix_=n,this.parts_=$p(e,0),this.byteLength_=Math.max(1,this.parts_.length);for(let r=0;r<this.parts_.length;r++)this.byteLength_+=mp(this.parts_[r]);Fj(this)}};function $re(t,e){t.parts_.length>0&&(t.byteLength_+=1),t.parts_.push(e),t.byteLength_+=mp(e),Fj(t)}function Wre(t){let e=t.parts_.pop();t.byteLength_-=mp(e),t.parts_.length>0&&(t.byteLength_-=1)}function Fj(t){if(t.byteLength_>K2)throw new Error(t.errorPrefix_+"has a key path longer than "+K2+" bytes ("+t.byteLength_+").");if(t.parts_.length>q2)throw new Error(t.errorPrefix_+"path specified exceeds the maximum depth that can be written ("+q2+") or object contains a cycle "+Qc(t))}function Qc(t){return t.parts_.length===0?"":"in property '"+t.parts_.join(".")+"'"}var uw=class t extends yy{static getInstance(){return new t}constructor(){super(["visible"]);let e,n;typeof document<"u"&&typeof document.addEventListener<"u"&&(typeof document.hidden<"u"?(n="visibilitychange",e="hidden"):typeof document.mozHidden<"u"?(n="mozvisibilitychange",e="mozHidden"):typeof document.msHidden<"u"?(n="msvisibilitychange",e="msHidden"):typeof document.webkitHidden<"u"&&(n="webkitvisibilitychange",e="webkitHidden")),this.visible_=!0,n&&document.addEventListener(n,()=>{let r=!document[e];r!==this.visible_&&(this.visible_=r,this.trigger("visible",r))},!1)}getInitialEvent(e){return q(e==="visible","Unknown event type: "+e),[this.visible_]}};var kp=1e3,zre=300*1e3,Y2=30*1e3,qre=1.3,Kre=3e4,Yre="server_kill",X2=3,tb=(()=>{class t extends Ty{constructor(n,r,i,o,s,a,c,l){if(super(),this.repoInfo_=n,this.applicationId_=r,this.onDataUpdate_=i,this.onConnectStatus_=o,this.onServerInfoUpdate_=s,this.authTokenProvider_=a,this.appCheckTokenProvider_=c,this.authOverride_=l,this.id=t.nextPersistentConnectionId_++,this.log_=rg("p:"+this.id+":"),this.interruptReasons_={},this.listens=new Map,this.outstandingPuts_=[],this.outstandingGets_=[],this.outstandingPutCount_=0,this.outstandingGetCount_=0,this.onDisconnectRequestQueue_=[],this.connected_=!1,this.reconnectDelay_=kp,this.maxReconnectDelay_=zre,this.securityDebugCallback_=null,this.lastSessionId=null,this.establishConnectionTimer_=null,this.visible_=!1,this.requestCBHash_={},this.requestNumber_=0,this.realtime_=null,this.authToken_=null,this.appCheckToken_=null,this.forceTokenRefresh_=!1,this.invalidAuthTokenCount_=0,this.invalidAppCheckTokenCount_=0,this.firstConnection_=!0,this.lastConnectionAttemptTime_=null,this.lastConnectionEstablishedTime_=null,l&&!Ki())throw new Error("Auth override specified in options, but not supported on non Node.js platforms");uw.getInstance().on("visible",this.onVisible_,this),n.host.indexOf("fblocal")===-1&&Iy.getInstance().on("online",this.onOnline_,this)}sendRequest(n,r,i){let o=++this.requestNumber_,s={r:o,a:n,b:r};this.log_(xt(s)),q(this.connected_,"sendRequest call when we're not connected not allowed."),this.realtime_.sendRequest(s),i&&(this.requestCBHash_[o]=i)}get(n){this.initConnection_();let r=new cn,o={action:"g",request:{p:n._path.toString(),q:n._queryObject},onComplete:a=>{let c=a.d;a.s==="ok"?r.resolve(c):r.reject(c)}};this.outstandingGets_.push(o),this.outstandingGetCount_++;let s=this.outstandingGets_.length-1;return this.connected_&&this.sendGet_(s),r.promise}listen(n,r,i,o){this.initConnection_();let s=n._queryIdentifier,a=n._path.toString();this.log_("Listen called for "+a+" "+s),this.listens.has(a)||this.listens.set(a,new Map),q(n._queryParams.isDefault()||!n._queryParams.loadsAllData(),"listen() called for non-default but complete query"),q(!this.listens.get(a).has(s),"listen() called twice for same path/queryId.");let c={onComplete:o,hashFn:r,query:n,tag:i};this.listens.get(a).set(s,c),this.connected_&&this.sendListen_(c)}sendGet_(n){let r=this.outstandingGets_[n];this.sendRequest("g",r.request,i=>{delete this.outstandingGets_[n],this.outstandingGetCount_--,this.outstandingGetCount_===0&&(this.outstandingGets_=[]),r.onComplete&&r.onComplete(i)})}sendListen_(n){let r=n.query,i=r._path.toString(),o=r._queryIdentifier;this.log_("Listen on "+i+" for "+o);let s={p:i},a="q";n.tag&&(s.q=r._queryObject,s.t=n.tag),s.h=n.hashFn(),this.sendRequest(a,s,c=>{let l=c.d,d=c.s;t.warnOnListenWarnings_(l,r),(this.listens.get(i)&&this.listens.get(i).get(o))===n&&(this.log_("listen response",c),d!=="ok"&&this.removeListen_(i,o),n.onComplete&&n.onComplete(d,l))})}static warnOnListenWarnings_(n,r){if(n&&typeof n=="object"&&Vr(n,"w")){let i=Fs(n,"w");if(Array.isArray(i)&&~i.indexOf("no_index")){let o='".indexOn": "'+r._queryParams.getIndex().toString()+'"',s=r._path.toString();xn(`Using an unspecified index. Your data will be downloaded and filtered on the client. Consider adding ${o} at ${s} to your security rules for better performance.`)}}}refreshAuthToken(n){this.authToken_=n,this.log_("Auth token refreshed"),this.authToken_?this.tryAuth():this.connected_&&this.sendRequest("unauth",{},()=>{}),this.reduceReconnectDelayIfAdminCredential_(n)}reduceReconnectDelayIfAdminCredential_(n){(n&&n.length===40||EB(n))&&(this.log_("Admin auth credential detected. Reducing max reconnect time."),this.maxReconnectDelay_=Y2)}refreshAppCheckToken(n){this.appCheckToken_=n,this.log_("App check token refreshed"),this.appCheckToken_?this.tryAppCheck():this.connected_&&this.sendRequest("unappeck",{},()=>{})}tryAuth(){if(this.connected_&&this.authToken_){let n=this.authToken_,r=mB(n)?"auth":"gauth",i={cred:n};this.authOverride_===null?i.noauth=!0:typeof this.authOverride_=="object"&&(i.authvar=this.authOverride_),this.sendRequest(r,i,o=>{let s=o.s,a=o.d||"error";this.authToken_===n&&(s==="ok"?this.invalidAuthTokenCount_=0:this.onAuthRevoked_(s,a))})}}tryAppCheck(){this.connected_&&this.appCheckToken_&&this.sendRequest("appcheck",{token:this.appCheckToken_},n=>{let r=n.s,i=n.d||"error";r==="ok"?this.invalidAppCheckTokenCount_=0:this.onAppCheckRevoked_(r,i)})}unlisten(n,r){let i=n._path.toString(),o=n._queryIdentifier;this.log_("Unlisten called for "+i+" "+o),q(n._queryParams.isDefault()||!n._queryParams.loadsAllData(),"unlisten() called for non-default but complete query"),this.removeListen_(i,o)&&this.connected_&&this.sendUnlisten_(i,o,n._queryObject,r)}sendUnlisten_(n,r,i,o){this.log_("Unlisten on "+n+" for "+r);let s={p:n},a="n";o&&(s.q=i,s.t=o),this.sendRequest(a,s)}onDisconnectPut(n,r,i){this.initConnection_(),this.connected_?this.sendOnDisconnect_("o",n,r,i):this.onDisconnectRequestQueue_.push({pathString:n,action:"o",data:r,onComplete:i})}onDisconnectMerge(n,r,i){this.initConnection_(),this.connected_?this.sendOnDisconnect_("om",n,r,i):this.onDisconnectRequestQueue_.push({pathString:n,action:"om",data:r,onComplete:i})}onDisconnectCancel(n,r){this.initConnection_(),this.connected_?this.sendOnDisconnect_("oc",n,null,r):this.onDisconnectRequestQueue_.push({pathString:n,action:"oc",data:null,onComplete:r})}sendOnDisconnect_(n,r,i,o){let s={p:r,d:i};this.log_("onDisconnect "+n,s),this.sendRequest(n,s,a=>{o&&setTimeout(()=>{o(a.s,a.d)},Math.floor(0))})}put(n,r,i,o){this.putInternal("p",n,r,i,o)}merge(n,r,i,o){this.putInternal("m",n,r,i,o)}putInternal(n,r,i,o,s){this.initConnection_();let a={p:r,d:i};s!==void 0&&(a.h=s),this.outstandingPuts_.push({action:n,request:a,onComplete:o}),this.outstandingPutCount_++;let c=this.outstandingPuts_.length-1;this.connected_?this.sendPut_(c):this.log_("Buffering put: "+r)}sendPut_(n){let r=this.outstandingPuts_[n].action,i=this.outstandingPuts_[n].request,o=this.outstandingPuts_[n].onComplete;this.outstandingPuts_[n].queued=this.connected_,this.sendRequest(r,i,s=>{this.log_(r+" response",s),delete this.outstandingPuts_[n],this.outstandingPutCount_--,this.outstandingPutCount_===0&&(this.outstandingPuts_=[]),o&&o(s.s,s.d)})}reportStats(n){if(this.connected_){let r={c:n};this.log_("reportStats",r),this.sendRequest("s",r,i=>{if(i.s!=="ok"){let s=i.d;this.log_("reportStats","Error sending stats: "+s)}})}}onDataMessage_(n){if("r"in n){this.log_("from server: "+xt(n));let r=n.r,i=this.requestCBHash_[r];i&&(delete this.requestCBHash_[r],i(n.b))}else{if("error"in n)throw"A server-side error has occurred: "+n.error;"a"in n&&this.onDataPush_(n.a,n.b)}}onDataPush_(n,r){this.log_("handleServerMessage",n,r),n==="d"?this.onDataUpdate_(r.p,r.d,!1,r.t):n==="m"?this.onDataUpdate_(r.p,r.d,!0,r.t):n==="c"?this.onListenRevoked_(r.p,r.q):n==="ac"?this.onAuthRevoked_(r.s,r.d):n==="apc"?this.onAppCheckRevoked_(r.s,r.d):n==="sd"?this.onSecurityDebugPacket_(r):tw("Unrecognized action received from server: "+xt(n)+`
|
|
150
|
+
`+ht),dt&&(ht=ka(ht)),R&&is?ts(ht):ht},e.setConfig=function(){let W=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Pa(W),ql=!0,ba=Je,Kl=rt},e.clearConfig=function(){po=null,ql=!1,ba=null,Kl=null,R=O,N=""},e.isValidAttribute=function(W,T,w){po||Pa({});let G=$e(W),ee=$e(T);return Ua(G,ee,w)},e.addHook=function(W,T){typeof T=="function"&&nr(He,W)&&Op(He[W],T)},e.removeHook=function(W,T){if(nr(He,W)){if(T!==void 0){let w=Mne(He[W],T);return w===-1?void 0:Lne(He[W],w,1)[0]}return h2(He[W])}},e.removeHooks=function(W){nr(He,W)&&(He[W]=[])},e.removeAllHooks=function(){He=A2()},e}var fy=N2();var ire=/^\/\/\*\[@id='([^']+)'\]/;function HN(t){try{if(typeof t!="string")return null;let e=ire.exec(t);if(!e)return null;let n=e[1],r=t.slice(e[0].length);if(!r)return{rootId:n,segments:[]};if(!r.startsWith("/"))return null;let i=[],o="",s=0,a=null;for(let c=1;c<r.length;c++){let l=r[c];if(a){l===a&&(a=null),o+=l;continue}if(l==="'"||l==='"')a=l;else if(l==="[")s++;else if(l==="]")s--;else if(l==="/"&&s===0){if(!o)return null;i.push(o),o="";continue}o+=l}return!o||a||s!==0?null:(i.push(o),{rootId:n,segments:i})}catch{return null}}var ore=[/:r[0-9a-z]+:/i,/_r_[0-9a-z]+_/i,/«r[0-9a-z]+»/i,/^radix-/i];function b2(t){try{return t?ore.some(e=>e.test(t)):!1}catch{return!1}}function o1e(t){if(Array.isArray(t))return w2(t);if(!t||typeof t!="object"||!("documentIds"in t))return{documentIds:null};let e=t.documentIds;return Array.isArray(e)?w2(e):{documentIds:[],problem:"not-an-array"}}function w2(t){let e=t.filter(n=>typeof n=="string"||typeof n=="number"&&Number.isFinite(n)).map(n=>String(n)).filter(n=>n.length>0);return B({documentIds:Array.from(new Set(e)).sort()},e.length<t.length?{problem:"dropped-entries"}:{})}function s1e(t,e){return t===null||e===null?t===e:t.length===e.length&&t.every((n,r)=>n===e[r])}var O2={ADD_TAGS:["velt-skeleton-loader"],ADD_ATTR:["border-radius","target"]},M2=(()=>{let e=class e{constructor(r,i,o,s){this.analyticsService=r,this.rendererFactory2=i,this.loggingService=o,this.sanitizer=s,this.smoothScrollShieldHandler=null,this.smoothScrollShieldLoadListener=null,this.isVideoEditorHandlingDelete=!1,this.pageScrollHeight=0,this.enableRectSelectionSubject$=new ie(!1),this.enableRectSelection$=this.enableRectSelectionSubject$.asObservable(),this.scrollableElementsIds$=new ie([]),this.mousedown=!1,this.windowMouseDown$=new Rt,this.windowPointerMove$=new ie(null),this.windowPointerUp$=new ie(null),this.documentSelectionChange$=new ie(null),this.windowClick$=new ie(null),this.windowScroll$=new ie(null),this.windowResize$=new ie(null),this.windowKeyupBackspace$=new ie(null),this.windowKeyupDelete$=new ie(null),this.windowKeyupEsc$=new ie(null),this.windowPopState$=new ie(null),this.documentClick$=new ie(null),this.documentClickSubject$=new Rt,this.documentFocus$=new ie(null),this.windowKeydownShift$=new ie(null),this.windowKeyupShift$=new ie(null),this.mutation$=new ie(null),this.childListMutation$=new ie(null),this.networkStatus$=new ie(!1),this.xpathCache=new Map,this.xpathCacheId=new Map,this.selectedAnnotationsMap$=new ie({}),this.selectedAnnotationsLocationMap$=new ie({}),this.selectedAnnotationsContextIdMap$=new ie({}),this.recordingInProgress$=new ie({}),this.deleteAnnotations$=new ie([]),this.pinHighlighterClass$=new ie(null),this.dialogOpenedInSidebar$=new ie(!1),this.textHighlighterClass$=new ie(null),this.commentPinHighlighter$=new ie(!1),this.deviceInfo$=new ie(new Ur),this.customCss$=new ie(null),this.mutationObserver=null,this.animationFilterEnabled=!1,this.animationLibraryDetected=null,this.staticAnimationCache=new WeakMap,this.ANIMATION_LIBRARY_SELECTOR=["[data-gsap]",".gsap-marker-start",".gsap-marker-end","[data-gsap-id]",".swiper-slide",".swiper-wrapper",".swiper-pagination",".swiper-pagination-bullet","[data-aos]"].join(", "),this.previousMousePosition={pageX:0,pageY:0,clientX:0,clientY:0},this.currentMousePosition={pageX:0,pageY:0,clientX:0,clientY:0,element:{xpath:"",topPercentage:0,leftPercentage:0}},this.nodeMap={},this.unlistenElementScroll={},this.tabId=null,this.dynamicIdPatterns=[/^yui_[a-z0-9_]+$/i],this.excludeClassList=["show-pin-cursor"],this.filterSnippylyNodes=a=>{try{let c=[];return a.forEach(l=>{if(!qi(l))if(l instanceof HTMLElement){if(l.className.includes("cdk-overlay-container")||l.className.includes("cdk-overlay-connected-position-bounding-box"))return;if(l.className.includes("cdk-overlay")){let d=!1;l.childNodes.forEach(h=>{qi(h)&&(d=!0)}),d||c.push(l)}else c.push(l)}else c.push(l)}),c}catch(c){return this.loggingService.catch("Error in DomService filterSnippylyNodes: ",c),[]}},this.loggingService.log("%c[WB] Creating CLASS: DomService","color: blue;");try{this.analyticsService.setDomService(this),this.renderer=this.rendererFactory2.createRenderer(null,null);let a=this.calculateScreenSize();this.currentScreenSize$=new ie(a),this.currentMousePosition$=new ie(this.currentMousePosition),this.detectNetworkStatusChange(),this.getScrollableElementsIds$().pipe(Ya(),eE(([c,l])=>{try{let d=l.filter(f=>!c.includes(f)),h=c.filter(f=>!l.includes(f));h.length&&h.map(g=>document.getElementById(g)).filter(g=>g).forEach(g=>{this.unlistenElementScroll&&this.unlistenElementScroll[g.id]&&this.unlistenElementScroll[g.id]()}),d.length&&d.map(g=>document.getElementById(g)).filter(g=>g).forEach(g=>{this.unlistenElementScroll[g.id]=this.renderer.listen(g,"scroll",E=>{let I=this.calculateScreenSize();this.currentScreenSize$.next(I)})})}catch(d){this.loggingService.catch("Error in DomService getScrollableElementsIds subscription: ",d)}})).subscribe(()=>{},c=>{this.loggingService.catch("Error in DomService getScrollableElementsIds subscription: ",c)}),this.getSelectedAnnotationsMap$().subscribe(c=>{Object.keys(c||{})?.length?qV("snippylyUserScalableNo","viewport","width=device-width, user-scalable=no"):KV("snippylyUserScalableNo")},c=>{this.loggingService.catch("Error in DomService getSelectedAnnotationsMap$ subscription: ",c)})}catch(a){this.loggingService.catch("Error in DomService constructor: ",a)}}setDocService(r){try{this.docService=r,this.subscribeToDomEvents()}catch(i){this.loggingService.catch("Error in DomService setDocService: ",i)}}setDynamicIdPatterns(r){try{let i=r.map(o=>typeof o=="string"?new RegExp(o):o).filter(Boolean);i.length&&(this.dynamicIdPatterns=i)}catch(i){this.loggingService.catch("Error in DomService setDynamicIdPatterns: ",i)}}isLikelyDynamicId(r){try{return r?this.dynamicIdPatterns.some(i=>i.test(r)):!1}catch{return!1}}isGeneratedId(r){return this.isLikelyDynamicId(r)||b2(r)}getStableAttributes(r){try{let i={};if(!r.getAttributeNames)return i;let o=new Set(["id","class","style"]);return r.getAttributeNames().forEach(a=>{if(o.has(a)||a.includes("snippyly")||a.includes("velt"))return;let c=r.getAttribute(a);c&&c.length<=256&&(i[a]=c)}),i}catch{return{}}}buildStableElementSelector(r,i){try{if(Object.keys(i).length===0)return;let s=[r.tagName?.toLowerCase()],a=["data-","aria-","role","name","title","type"];return Object.keys(i).sort((l,d)=>{let h=a.findIndex(g=>l.startsWith(g)),f=a.findIndex(g=>d.startsWith(g));return(h===-1?99:h)-(f===-1?99:f)}).slice(0,4).forEach(l=>{let d=CSS.escape(i[l]);s.push(`[${l}="${d}"]`)}),s.join("")}catch{return}}getVisibleText(r,i=400){try{let o=document.createTreeWalker(r,NodeFilter.SHOW_TEXT,null),s="",a,c=0;for(;(a=o.nextNode())&&s.length<i;){let l=(a.textContent||"").replace(/\s+/g," ").trim();if(l&&(s+=(s?" ":"")+l),c++,c>100)break}return s.slice(0,i)}catch{return""}}hashText(r){try{return OV(r)}catch{return}}generateRobustXPath(r,i){try{let o=i?.maxDepth||10,s=i?.useAbsolutePath||!1,a=[],c=r,l=0;for(;c&&c!==document.documentElement&&l<o;){let g=this.buildRobustXPathSegment(c);if(g&&(a.unshift(g),this.isStrongAnchorSegment(g)))break;c=c.parentElement,l++}if(a.length===0)return;let h=(s?"/":"//")+a.join("/");return a.some(g=>g.includes("[@")||g.includes("[contains(@class"))?h:void 0}catch{return}}buildRobustXPathSegment(r){try{let i=r.tagName.toLowerCase(),o=r.id;if(o&&!this.isLikelyDynamicId(o)&&document.querySelectorAll(`[id="${CSS.escape(o)}"]`).length===1)return`*[@id=${this.escapeXPathValue(o)}]`;let s=["data-region","data-instanceid","data-action","data-key","data-block","data-activityid"];for(let g of s){let E=r.getAttribute(g);if(E)return`${i}[@${g}=${this.escapeXPathValue(E)}]`}let a=Array.from(r.attributes).filter(g=>g.name.startsWith("data-")&&!g.name.includes("snippyly")&&!g.name.includes("velt")&&g.value.length<100).sort((g,E)=>g.value.length-E.value.length);if(a.length>0){let g=a[0];return`${i}[@${g.name}=${this.escapeXPathValue(g.value)}]`}let c=r.getAttribute("role");if(c)return`${i}[@role=${this.escapeXPathValue(c)}]`;let l=r.getAttribute("aria-label");if(l&&l.length<50)return`${i}[@aria-label=${this.escapeXPathValue(l)}]`;let d=r.getAttribute("name");if(d)return`${i}[@name=${this.escapeXPathValue(d)}]`;let h=r.getAttribute("type");if(h)return`${i}[@type=${this.escapeXPathValue(h)}]`;let f=Array.from(r.classList||[]).filter(g=>g.length>0&&g.length<40&&!g.includes("yui")&&!g.includes("velt")&&!g.includes("snippyly")&&!this.excludeClassList.includes(g)).slice(0,2);if(f.length>0){let g=f.map(E=>`contains(@class, ${this.escapeXPathValue(E)})`).join(" and ");return`${i}[${g}]`}if(r.parentElement){let g=Array.from(r.parentElement.children).filter(E=>E.tagName===r.tagName);if(g.length>1){let E=g.indexOf(r)+1;return`${i}[${E}]`}}return i}catch{return}}isStrongAnchorSegment(r){try{return!!(r.includes("[@id=")||["main","navigation","banner","contentinfo","complementary","search"].some(s=>r.includes(`[@role='${s}']`))||["data-region","data-instanceid","data-activityid"].some(s=>r.includes(`[@${s}=`)))}catch{return!1}}escapeXPathValue(r,i=!0){try{return r.includes("'")?r.includes('"')?`concat(${r.split("'").map(a=>`'${a}'`).join(`,"'",`)})`:i?`"${r}"`:r:i?`'${r}'`:r}catch{try{return`concat(${r.split("'").map(c=>`'${c}'`).join(`,"'",`)})`}catch{return i?`'${r}'`:r}}}getElementFromRobustXPath(r){try{return document.evaluate(r,document,null,XPathResult.FIRST_ORDERED_NODE_TYPE,null).singleNodeValue}catch{return null}}getAllElementsFromRobustXPath(r){try{let i=document.evaluate(r,document,null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null),o=[];for(let s=0;s<i.snapshotLength;s++){let a=i.snapshotItem(s);a instanceof Element&&o.push(a)}return o}catch{return[]}}generateAnchorRecord(r,i){try{let o=this.generateAnchorRecordForElement(r,i),s=null;if(r.parentElement&&r.parentElement instanceof HTMLElement&&id(r.parentElement)&&r.parentElement!==document.body&&(s=r.parentElement),o&&s){let a=this.generateAnchorRecordForElement(s,i);a&&(o.parent=a)}return o}catch(o){return this.loggingService.catch("Error in DomService generateAnchorRecord: ",o),null}}generateAnchorRecordForElement(r,i){try{if(!r)return null;let o=r,s=o.tagName?.toUpperCase();if(!s)return null;let a=o.id&&!this.isLikelyDynamicId(o.id)?o.id:void 0,c=this.getStableAttributes(o),l=this.buildStableElementSelector(o,c),d=this.getVisibleText(o),h=this.hashText(d||""),f=this.generateRobustXPath(o),g=this.getXPath(o,!1,!1,void 0,{ignoreGeneratedIds:i?.ignoreGeneratedIds}),E=this.getXPath(o,!0),I=this.getXPath(o,!0,!0);return{version:"1.0",id:a,tagName:s,elementSelector:l,robustXPath:f||void 0,xPath:g||void 0,fXPath:E||void 0,cfXPath:I||void 0,contentHash:h?{value:h,algorithm:"md5",source:"textContent"}:void 0,createdAt:Date.now()}}catch(o){return this.loggingService.catch("Error in DomService generateAnchorRecordForElement: ",o),null}}resolveAnchorRecord(r){try{let i=[],o=null,s=(h,f,g=0)=>{let E=[],I=g;if(E.push({method:f,score:g}),r.tagName&&h.tagName?.toUpperCase()===r.tagName&&(I+=10,E.push({method:"tagName-match",score:10})),r.contentHash?.value){let S=this.getVisibleText(h);this.hashText(S)===r.contentHash.value&&(I+=30,E.push({method:"contentHash-match",score:30}))}i.push({el:h,score:I,by:f,scoreBreakdown:E})};if(r.id){let h=document.querySelectorAll(`#${CSS.escape(r.id)}`);if(h.length===1)return{element:h[0],matchedBy:"id",score:90};h.length>1&&h.forEach(f=>s(f,"id-duplicate",70))}if(r.elementSelector){let h=document.querySelectorAll(r.elementSelector);if(h.length===1)return{element:h[0],matchedBy:"element-selector",score:80};h.forEach(f=>s(f,"element-selector-duplicate",60))}r.robustXPath&&this.getAllElementsFromRobustXPath(r.robustXPath).slice(0,20).forEach(E=>s(E,"robustXPath",50)),r?.parent&&(o=this.resolveAnchorRecord(r.parent),o.element&&o.element.querySelectorAll(r.tagName?.toLowerCase()||"*").forEach(f=>s(f,"parent+tag",40)));let a=(h,f,g)=>{if(!h)return;let E=this.getElementFromXPath(h);E&&s(E,f||"xpath",g||30)};if(a(r.xPath,"xPath",30),a(r.cfXPath,"cfXPath",30),a(r.fXPath,"fXPath",30),r.contentHash?.value&&i.length===0){let f=g=>{let E=0;for(let I=0;I<g.length&&E<400;I++){let S=g[I];if(E++,!this.isElementVisible(S))continue;let L=this.getVisibleText(S),V=this.hashText(L);V&&V===r.contentHash?.value&&s(S,"contentHash",15)}};if(o?.element&&o?.element instanceof Element){let g=o?.element?.querySelectorAll("*");f(g)}}if(!i.length)return{element:null};i.sort((h,f)=>f.score-h.score);let c=i[0].score,l=i.filter(h=>h.score===c);if(l.length>1){let h=[{path:r.xPath,label:"xPath"},{path:r.cfXPath,label:"cfXPath"},{path:r.fXPath,label:"fXPath"}];for(let f of h)if(f.path){let g=this.getElementFromXPath(f.path);if(g){let E=l.find(I=>I.el===g);if(E)return{element:E.el,matchedBy:`${E.by}+position`,score:E.score,scoreBreakdown:E.scoreBreakdown}}}}let d=i[0];return{element:d.el,matchedBy:d.by,score:d.score,scoreBreakdown:d.scoreBreakdown}}catch(i){return this.loggingService.catch("Error in DomService resolveAnchorRecord: ",i),{element:null}}}subscribeToDomEvents(){try{this.docService?.getDocumentPaths$().pipe(De(r=>{r?(this.onWindowResize(),this.onWindowScroll(),this.onPointerDown(),this.onWindowClick(),this.onWindowKeyupBackspace(),this.onWindowKeyupDelete(),this.onWindowKeyupEsc(),this.onWindowPopState(),this.onWindowKeydownShift(),this.onWindowKeyupShift(),this.addPointerMoveListener(),this.addPointerUpListener(),this.addSelectionChangeListener(),this.onDocumentFocus(),this.setupSmoothScrollShield()):(this.unsubscribeFromWindowResize(),this.unsubscribeFromWindowScroll(),this.unsubscribeFromPointerDown(),this.unsubscribeFromWindowClick(),this.unsubscribeFromWindowKeyupBackspace(),this.unsubscribeFromWindowKeyupDelete(),this.unsubscribeFromWindowKeyupEsc(),this.unsubscribeFromWindowPopState(),this.unsubscribeFromWindowKeydownShift(),this.unsubscribeFromWindowKeyupShift(),this.unsubscribeFromPointerMoveListener(),this.unsubscribeFromPointerUpListener(),this.unsubscribeFromSelectionChangeListener(),this.unsubscribeFromDocumentFocus(),this.unsetMutationObserver(),this.teardownSmoothScrollShield())})).subscribe(),this.onDocumentClick()}catch(r){this.loggingService.catch("Error in DomService subscribeToDomEvents: ",r)}}setScrollableElementsIds(r){try{r&&r.length&&this.scrollableElementsIds$.next(Array.from(new Set(r)))}catch(i){this.loggingService.catch("Error in DomService setScrollableElementsIds: ",i)}}getScrollableElementsIds$(){return this.loggingService.log("%c[WB] Calling FUNCTION: getScrollableElementsIds$","color: green;"),this.scrollableElementsIds$.asObservable()}removeScrollableElementsIds(){this.scrollableElementsIds$.next([])}setMutationObserver(r){try{this.mutationObserver||(this.loggingService.log("%c[WB] Calling DomService FUNCTION: setMutationObserver","color: green;"),this.loggingService.log("%c[WB] setMutationObserver from: "+r,"color: green;"),this.animationFilterEnabled=this.detectAnimationLibraries(),this.loggingService.log("%c[WB] Animation filter:","color: green;",this.animationFilterEnabled?"ENABLED (library detected)":"DISABLED (no library)"),this.mutationObserver=new MutationObserver(i=>{try{if(i?.find(s=>s?.attributeName===F.VELT_IGNORE_CHANGE_DETECTION))return;let o=i.filter(s=>s.type==="childList").filter(s=>{let a=s.target;return s.removedNodes.forEach(c=>{let l=c;if(typeof l.getAttribute=="function"){let d=l.getAttribute(F.ATTRIBUTES.VELT_ELEMENT_CACHE_ID);if(d!==null&&d!==""){let h=this.xpathCacheId.get(d);h!==void 0&&(this.xpathCacheId.delete(d),this.xpathCache.delete(h))}}}),qi(a)?!1:!!(this.filterSnippylyNodes(s.addedNodes).length||this.filterSnippylyNodes(s.removedNodes).length)});this.animationFilterEnabled?this.childListMutation$.next(o.filter(s=>!this.isAnimatingElement(s.target))):this.childListMutation$.next(o),o.push(...i.filter(s=>s.type==="attributes").filter(s=>!qi(s.target)).filter(s=>this.filterSnippylyNodes([s.target]).length).filter(s=>{if(s){let a=s.target;return a?.classList?.contains("snippyly-sidebar-panel")?!1:a?!a.getAttribute(F.VELT_IGNORE_CHANGE_DETECTION):!0}return!0})),o=o.filter(s=>{let a=!0;return Object.keys(F.INGNORE_MUTATION_OBSERVER_CHANGE_TAGS).forEach(c=>{s.target?.closest(c)&&(a=!1)}),a}),o=o.filter(s=>s.target&&id(s.target)),this.animationFilterEnabled&&(o=o.filter(s=>!this.isAnimatingElement(s.target))),o.length&&this.mutation$.next(o)}catch(o){this.loggingService.catch("Error in DomService change detection: ",o)}}),this.mutationObserver.observe(document.body,{childList:!0,subtree:!0,attributes:!0}))}catch(i){this.loggingService.catch("Error in DomService change detection: ",i)}}detectAnimationLibraries(){try{if(this.animationLibraryDetected!==null)return this.animationLibraryDetected;let r=window;return r.gsap||r.TweenMax||r.TweenLite||r.TimelineMax||r.TimelineLite?(this.loggingService.log("%c[WB] Detected animation library: GSAP","color: green;"),this.animationLibraryDetected=!0,!0):r.Swiper?(this.loggingService.log("%c[WB] Detected animation library: Swiper","color: green;"),this.animationLibraryDetected=!0,!0):r.AOS?(this.loggingService.log("%c[WB] Detected animation library: AOS","color: green;"),this.animationLibraryDetected=!0,!0):r.anime?(this.loggingService.log("%c[WB] Detected animation library: Anime.js","color: green;"),this.animationLibraryDetected=!0,!0):r.lottie||r.Lottie||r.bodymovin?(this.loggingService.log("%c[WB] Detected animation library: Lottie","color: green;"),this.animationLibraryDetected=!0,!0):document.querySelector("[data-framer-component-type]")?(this.loggingService.log("%c[WB] Detected animation library: Framer Motion","color: green;"),this.animationLibraryDetected=!0,!0):document.querySelector(this.ANIMATION_LIBRARY_SELECTOR)?(this.loggingService.log("%c[WB] Detected animation library: DOM markers","color: green;"),this.animationLibraryDetected=!0,!0):(this.loggingService.log("%c[WB] No animation library detected","color: green;"),this.animationLibraryDetected=!1,!1)}catch{return this.animationLibraryDetected=!1,!1}}isAnimatingElement(r){try{if(!r||typeof r.closest!="function")return!1;let i=window;if(i.gsap&&typeof i.gsap.isTweening=="function"){if(i.gsap.isTweening(r))return!0;if(typeof i.gsap.getTweensOf=="function")try{if(i.gsap.getTweensOf(r).length>0)return!0}catch{}}else if(i.TweenMax&&typeof i.TweenMax.isTweening=="function"){if(i.TweenMax.isTweening(r))return!0;if(typeof i.TweenMax.getTweensOf=="function")try{if(i.TweenMax.getTweensOf(r).length>0)return!0}catch{}}let o=r.style?.cssText||"";if(o){let l=o.includes("transform")||o.includes("translate3d")||o.includes("translate(")||o.includes("scale3d")||o.includes("rotate"),d=o.includes("will-change")&&o.includes("transform"),h=o.includes("transform-style")&&o.includes("preserve-3d");if(l&&(d||h))return!0}if(r.style&&(r.style.animation!==""&&r.style.animation!=="none"||r.style.transition!==""&&r.style.transition!=="none")||r.classList?.contains("animate")||r.classList?.contains("animating")||r.classList?.contains("animated")||r.classList?.contains("animation"))return!0;let s=this.staticAnimationCache.get(r);if(s!==void 0)return s;let a=!1,c=r.className||"";return typeof c=="string"&&(c.includes("slider")&&(c.includes("bullet")||c.includes("pagination"))&&(a=!0),c.includes("swiper-pagination")&&(a=!0)),!a&&(r.hasAttribute("data-aos")||r.hasAttribute("data-motion"))&&(a=!0),!a&&r.closest(this.ANIMATION_LIBRARY_SELECTOR)&&(a=!0),this.staticAnimationCache.set(r,a),a}catch{return!1}}unsetMutationObserver(){try{this.mutationObserver&&(this.mutationObserver.disconnect(),this.mutationObserver=null,this.staticAnimationCache=new WeakMap,this.animationLibraryDetected=null,this.animationFilterEnabled=!1)}catch(r){this.loggingService.catch("Error in DomService unsetMutationObserver: ",r)}}detectNetworkStatusChange(){this.loggingService.log("%c[WB] Calling FUNCTION: detectNetworkStatusChange","color: green;");try{gs(wi(window,"offline").pipe(De(()=>!1)),wi(window,"online").pipe(De(()=>!0)),new fe(r=>{r.next(navigator.onLine),r.complete()})).subscribe(r=>{this.networkStatus$.next(r)})}catch(r){this.loggingService.catch("Error in DomService detectNetworkStatusChange: ",r)}}onWindowResize(){this.loggingService.log("%c[WB] Calling FUNCTION: onWindowResize","color: green;");try{this.unsubscribeFromWindowResize(),this.unlistenWindowResize=this.renderer.listen("window","resize",r=>{this.windowResize$.next(r);let i=this.calculateScreenSize();this.deviceInfo$.next(new Ur),this.currentScreenSize$.next(i)})}catch(r){this.loggingService.catch("Error in DomService onWindowResize: ",r)}}unsubscribeFromWindowResize(){try{this.unlistenWindowResize&&typeof this.unlistenWindowResize=="function"&&(this.unlistenWindowResize(),this.unlistenWindowResize=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromWindowResize: ",r)}}onWindowScroll(){this.loggingService.log("%c[WB] Calling FUNCTION: onWindowScroll","color: green;");try{this.unsubscribeFromWindowScroll(),this.unlistenWindowScroll=this.renderer.listen("window","scroll",r=>{this.windowScroll$.next(r);let i=this.calculateScreenSize();this.currentScreenSize$.next(i)})}catch(r){this.loggingService.catch("Error in DomService onWindowScroll: ",r)}}unsubscribeFromWindowScroll(){try{this.unlistenWindowScroll&&typeof this.unlistenWindowScroll=="function"&&(this.unlistenWindowScroll(),this.unlistenWindowScroll=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromWindowScroll: ",r)}}setupSmoothScrollShield(){this.loggingService.log("%c[WB] Calling FUNCTION: setupSmoothScrollShield","color: green;");try{if(typeof window>"u"||typeof document>"u"||this.smoothScrollShieldHandler)return;if(this.isSmoothScrollLibPresent()){this.attachSmoothScrollShield();return}if(document.readyState!=="complete"&&!this.smoothScrollShieldLoadListener){let r=()=>{this.smoothScrollShieldLoadListener=null;try{if(this.smoothScrollShieldHandler)return;this.isSmoothScrollLibPresent()&&this.attachSmoothScrollShield()}catch(i){this.loggingService.catch("Error in DomService smooth-scroll shield load re-check: ",i)}};window.addEventListener("load",r,{once:!0}),this.smoothScrollShieldLoadListener=()=>window.removeEventListener("load",r)}}catch(r){this.loggingService.catch("Error in DomService setupSmoothScrollShield: ",r)}}isSmoothScrollLibPresent(){try{if(typeof window>"u"||typeof document>"u")return!1;if(window.ET_SmoothScroll)return!0;let i=document.body;return!!(i&&i.classList&&i.classList.contains("et_smooth_scroll"))}catch(r){return this.loggingService.catch("Error in DomService isSmoothScrollLibPresent: ",r),!1}}attachSmoothScrollShield(){if(this.smoothScrollShieldHandler)return;let r=/^(VELT-|SUPERFLOW-|SNIPPYLY-)/,i=s=>{try{let a=typeof s.composedPath=="function"?s.composedPath():[];for(let c=0;c<a.length;c++){let l=a[c];if(!(!l||l.nodeType!==1)&&l.tagName&&r.test(l.tagName)){s.stopImmediatePropagation();return}}}catch(a){this.loggingService.catch("Error in DomService smoothScrollShield handler: ",a)}};this.smoothScrollShieldHandler=i;let o={capture:!0,passive:!0};window.addEventListener("wheel",i,o),window.addEventListener("mousewheel",i,o),window.addEventListener("touchmove",i,o),this.unlistenWindowWheelShield=()=>window.removeEventListener("wheel",i,o),this.unlistenWindowMouseWheelShield=()=>window.removeEventListener("mousewheel",i,o),this.unlistenWindowTouchMoveShield=()=>window.removeEventListener("touchmove",i,o)}teardownSmoothScrollShield(){this.loggingService.log("%c[WB] Calling FUNCTION: teardownSmoothScrollShield","color: green;");try{try{this.smoothScrollShieldLoadListener&&typeof this.smoothScrollShieldLoadListener=="function"&&(this.smoothScrollShieldLoadListener(),this.smoothScrollShieldLoadListener=null)}catch(r){this.loggingService.catch("Error in DomService teardownSmoothScrollShield (load): ",r)}try{this.unlistenWindowWheelShield&&typeof this.unlistenWindowWheelShield=="function"&&(this.unlistenWindowWheelShield(),this.unlistenWindowWheelShield=null)}catch(r){this.loggingService.catch("Error in DomService teardownSmoothScrollShield (wheel): ",r)}try{this.unlistenWindowMouseWheelShield&&typeof this.unlistenWindowMouseWheelShield=="function"&&(this.unlistenWindowMouseWheelShield(),this.unlistenWindowMouseWheelShield=null)}catch(r){this.loggingService.catch("Error in DomService teardownSmoothScrollShield (mousewheel): ",r)}try{this.unlistenWindowTouchMoveShield&&typeof this.unlistenWindowTouchMoveShield=="function"&&(this.unlistenWindowTouchMoveShield(),this.unlistenWindowTouchMoveShield=null)}catch(r){this.loggingService.catch("Error in DomService teardownSmoothScrollShield (touchmove): ",r)}this.smoothScrollShieldHandler=null}catch(r){this.loggingService.catch("Error in DomService teardownSmoothScrollShield: ",r)}}onPointerDown(){this.loggingService.log("%c[WB] Calling FUNCTION: onPointerDown","color: green;");try{this.unsubscribeFromPointerDown(),this.unlistenPointerDown=this.renderer.listen("window","pointerdown",r=>{this.mousedown=!0,this.windowMouseDown$.next(r),this.setPointerPosition(r)})}catch(r){this.loggingService.catch("Error in DomService onPointerDown: ",r)}}unsubscribeFromPointerDown(){try{this.unlistenPointerDown&&typeof this.unlistenPointerDown=="function"&&(this.unlistenPointerDown(),this.unlistenPointerDown=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromPointerDown: ",r)}}onWindowClick(){this.loggingService.log("%c[WB] Calling FUNCTION: onWindowKeyupBackspace","color: green;");try{this.unsubscribeFromWindowClick(),this.unlistenWindowClick=this.renderer.listen("window","click",r=>{this.windowClick$.next(r)})}catch(r){this.loggingService.catch("Error in DomService onWindowClick: ",r)}}unsubscribeFromWindowClick(){try{this.unlistenWindowClick&&typeof this.unlistenWindowClick=="function"&&(this.unlistenWindowClick(),this.unlistenWindowClick=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromWindowClick: ",r)}}onWindowKeyupBackspace(){this.loggingService.log("%c[WB] Calling FUNCTION: onWindowKeyupBackspace","color: green;");try{this.unsubscribeFromWindowKeyupBackspace(),this.unlistenWindowKeyupBackspace=this.renderer.listen("window","keyup.backspace",r=>{this.isVideoEditorHandlingDelete||this.windowKeyupBackspace$.next(r)})}catch(r){this.loggingService.catch("Error in DomService onWindowKeyupBackspace: ",r)}}unsubscribeFromWindowKeyupBackspace(){try{this.unlistenWindowKeyupBackspace&&typeof this.unlistenWindowKeyupBackspace=="function"&&(this.unlistenWindowKeyupBackspace(),this.unlistenWindowKeyupBackspace=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromWindowKeyupBackspace: ",r)}}onWindowKeyupDelete(){this.loggingService.log("%c[WB] Calling FUNCTION: onWindowKeyupDelete","color: green;");try{this.unsubscribeFromWindowKeyupDelete(),this.unlistenWindowKeyupDelete=this.renderer.listen("window","keyup.delete",r=>{this.isVideoEditorHandlingDelete||this.windowKeyupDelete$.next(r)})}catch(r){this.loggingService.catch("Error in DomService onWindowKeyupDelete: ",r)}}unsubscribeFromWindowKeyupDelete(){try{this.unlistenWindowKeyupDelete&&typeof this.unlistenWindowKeyupDelete=="function"&&(this.unlistenWindowKeyupDelete(),this.unlistenWindowKeyupDelete=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromWindowKeyupDelete: ",r)}}onWindowKeyupEsc(){this.loggingService.log("%c[WB] Calling FUNCTION: onWindowKeyupEsc","color: green;");try{this.unsubscribeFromWindowKeyupEsc(),this.unlistenWindowKeyupEsc=this.renderer.listen("window","keyup.esc",r=>{this.windowKeyupEsc$.next(r)})}catch(r){this.loggingService.catch("Error in DomService onWindowKeyupEsc: ",r)}}unsubscribeFromWindowKeyupEsc(){try{this.unlistenWindowKeyupEsc&&typeof this.unlistenWindowKeyupEsc=="function"&&(this.unlistenWindowKeyupEsc(),this.unlistenWindowKeyupEsc=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromWindowKeyupEsc: ",r)}}onWindowPopState(){this.loggingService.log("%c[WB] Calling FUNCTION: onWindowPopState","color: green;");try{this.unsubscribeFromWindowPopState(),this.unlistenWindowPopState=this.renderer.listen("window","popstate",r=>{this.windowPopState$.next(r)})}catch(r){this.loggingService.catch("Error in DomService onWindowPopState: ",r)}}unsubscribeFromWindowPopState(){try{this.unlistenWindowPopState&&typeof this.unlistenWindowPopState=="function"&&(this.unlistenWindowPopState(),this.unlistenWindowPopState=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromWindowPopState: ",r)}}onDocumentClick(){this.loggingService.log("%c[WB] Calling FUNCTION: onDocumentClick","color: green;");try{this.unsubscribeFromDocumentClick(),this.documentClickListener=r=>{r?.target?.tagName?.toLowerCase()!==F.TAGS.SUPERFLOW_TOOLBAR&&(this.documentClick$.next(r),this.documentClickSubject$.next(r))},document.addEventListener("click",this.documentClickListener,!0)}catch(r){this.loggingService.catch("Error in DomService onDocumentClick: ",r)}}unsubscribeFromDocumentClick(){try{this.documentClickListener&&typeof this.documentClickListener=="function"&&(document.removeEventListener("click",this.documentClickListener,!0),this.documentClickListener=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromDocumentClick: ",r)}}onDocumentFocus(){this.loggingService.log("%c[WB] Calling FUNCTION: onDocumentFocus","color: green;");try{this.unsubscribeFromDocumentFocus(),this.documentFocusListener=r=>{this.documentFocus$.next(r)},document.addEventListener("focus",this.documentFocusListener,!0)}catch(r){this.loggingService.catch("Error in DomService onDocumentFocus: ",r)}}unsubscribeFromDocumentFocus(){try{this.documentFocusListener&&typeof this.documentFocusListener=="function"&&(document.removeEventListener("focus",this.documentFocusListener,!0),this.documentFocusListener=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromDocumentFocus: ",r)}}onWindowKeydownShift(){this.loggingService.log("%c[WB] Calling FUNCTION: onWindowKeydownShift","color: green;");try{this.unsubscribeFromWindowKeydownShift(),this.unlistenWindowKeydownShift=this.renderer.listen("window","keydown.shift",r=>{this.windowKeydownShift$.next(r),this.windowKeyupShift$.next(null)})}catch(r){this.loggingService.catch("Error in DomService onWindowKeydownShift: ",r)}}unsubscribeFromWindowKeydownShift(){try{this.unlistenWindowKeydownShift&&typeof this.unlistenWindowKeydownShift=="function"&&(this.unlistenWindowKeydownShift(),this.unlistenWindowKeydownShift=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromWindowKeydownShift: ",r)}}onWindowKeyupShift(){this.loggingService.log("%c[WB] Calling FUNCTION: onWindowKeyupShift","color: green;");try{this.unsubscribeFromWindowKeyupShift(),this.unlistenWindowKeyupShift=this.renderer.listen("window","keyup.shift",r=>{this.windowKeyupShift$.next(r),this.windowKeydownShift$.next(null)})}catch(r){this.loggingService.catch("Error in DomService onWindowKeyupShift: ",r)}}unsubscribeFromWindowKeyupShift(){try{this.unlistenWindowKeyupShift&&typeof this.unlistenWindowKeyupShift=="function"&&(this.unlistenWindowKeyupShift(),this.unlistenWindowKeyupShift=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromWindowKeyupShift: ",r)}}onWindowKeydown$(){this.loggingService.log("%c[WB] Calling FUNCTION: onWindowKeydown$","color: green;");try{return wi(window,"keydown")}catch(r){return this.loggingService.catch("Error in DomService onWindowKeydown$: ",r),Wa}}addPointerMoveListener(){this.loggingService.log("%c[WB] Calling FUNCTION: addPointerMoveListener","color: green;");try{this.unsubscribeFromPointerMoveListener(),this.unlistenPointerMoveListener=this.renderer.listen("document","pointermove",r=>{this.windowPointerMove$.next(r),this.mouseMoveEvent=r})}catch(r){this.loggingService.catch("Error in DomService addPointerMoveListener: ",r)}}unsubscribeFromPointerMoveListener(){try{this.unlistenPointerMoveListener&&typeof this.unlistenPointerMoveListener=="function"&&(this.unlistenPointerMoveListener(),this.unlistenPointerMoveListener=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromPointerMoveListener: ",r)}}addPointerUpListener(){this.loggingService.log("%c[WB] Calling FUNCTION: addPointerUpListener","color: green;");try{this.unsubscribeFromPointerUpListener(),this.unlistenPointerUpListener=this.renderer.listen("document","pointerup",r=>{this.windowPointerUp$.next(r)})}catch(r){this.loggingService.catch("Error in DomService addPointerUpListener: ",r)}}unsubscribeFromPointerUpListener(){try{this.unlistenPointerUpListener&&typeof this.unlistenPointerUpListener=="function"&&(this.unlistenPointerUpListener(),this.unlistenPointerUpListener=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromPointerUpListener: ",r)}}addSelectionChangeListener(){this.loggingService.log("%c[WB] Calling FUNCTION: addPointerUpListener","color: green;");try{this.unsubscribeFromSelectionChangeListener(),this.unlistenSelectionChangeListener=this.renderer.listen("document","selectionchange",r=>{this.documentSelectionChange$.next(r)})}catch(r){this.loggingService.catch("Error in DomService addPointerUpListener: ",r)}}unsubscribeFromSelectionChangeListener(){try{this.unlistenSelectionChangeListener&&typeof this.unlistenSelectionChangeListener=="function"&&(this.unlistenSelectionChangeListener(),this.unlistenSelectionChangeListener=null)}catch(r){this.loggingService.catch("Error in DomService unsubscribeFromSelectionChangeListener: ",r)}}updateCurrentMousePosition(r){try{if(this.currentMousePosition.pageX=r.pageX,this.currentMousePosition.pageY=r.pageY,this.currentMousePosition.clientX=r.clientX,this.currentMousePosition.clientY=r.clientY,r.target){let i=this.getXPath(r.target),o=r.target;if(i?.includes("name()='svg'")){let h=this.getXPath(i);h&&(o=h.iterateNext()||r.target)}let s=o.getBoundingClientRect(),a=r.clientX-s.x,c=r.clientY-s.y,l=a*100/(s.width||1),d=c*100/(s.height||1);this.currentMousePosition.element={xpath:i,topPercentage:d,leftPercentage:l}}else this.currentMousePosition.element=null;this.currentMousePosition$.next(this.currentMousePosition)}catch(i){this.loggingService.catch("Error in DomService updateCurrentMousePosition: ",i)}}getTargetElementForCursorPosition(r,i=!0,o=!1,s=!0,a,c=!0,l,d){try{let h=r,f=h?.touches?.length?h.touches[0]?.clientX:h?.clientX,g=h?.touches?.length?h.touches[0]?.clientY:h?.clientY;l&&(f=l.clientX,g=l.clientY);let E=this.getBackgroundElement(f,g,i,o);if(E&&a&&typeof a=="function"&&(E=a(E)),E){let I=this.getXPath(E,!1,!1,void 0,d),S=this.getXPath(E,!0),L=E.getBoundingClientRect(),V=f-L.x,K=g-L.y,oe=V*100/(L.width||1),ge=K*100/(L.height||1),te={xpath:I,fXpath:S,leftPercentage:oe,topPercentage:ge};if(s){let C=this.getXPath(E,!0,!0);te.cfXpath=C}if(c){let C=this.generateAnchorRecord(E,d);C&&(te.anchor=C)}return te}else return null}catch(h){return this.loggingService.catch("Error in DomService getTargetElementForCommentPinAnnotation: ",h),null}}getBackgroundElement(r,i,o=!0,s=!1){try{let a=document.elementsFromPoint(r,i),c=[];a.forEach(d=>{qi(d)?c=[]:id(d)&&c.push(d)}),s&&(c=c.filter(d=>this.isElementVisibleOnScreen(d)));let l=0;return o||c?.forEach((d,h)=>{d.tagName.toLowerCase()==="svg"&&(l=h)}),c[l]}catch(a){return this.loggingService.catch("Error in DomService getBackgroundElement: ",a),null}}getBackgroundVeltElement(r,i){try{let o=document.elementsFromPoint(r,i),s=[];return o.forEach(a=>{qi(a)&&id(a)&&s.push(a)}),s[0]}catch(o){return this.loggingService.catch("Error in DomService getBackgroundSnippylyElement: ",o),null}}setPointerPosition(r){this.loggingService.log("%c[WB] Calling FUNCTION: setPointerPosition","color: green;");try{this.previousMousePosition.pageX=r.pageX,this.previousMousePosition.pageY=r.pageY,this.currentMousePosition.pageX=r.pageX,this.currentMousePosition.pageY=r.pageY}catch(i){this.loggingService.catch("Error in DomService setPointerPosition: ",i)}}getCurrentWindowSize$(r){return this.loggingService.log("%c[WB] Calling FUNCTION: getCurrentWindowSize","color: green;"),this.currentScreenSize$.asObservable()}getCurrentMousePosition$(){return this.loggingService.log("%c[WB] Calling FUNCTION: getCurrentMousePosition","color: green;"),this.currentMousePosition$.asObservable()}getCurrentWindowSizeValue(){return this.loggingService.log("%c[WB] Calling FUNCTION: getCurrentWindowSizeValue","color: green;"),this.currentScreenSize$.value}getTopLeftPosition(){this.loggingService.log("%c[WB] Calling FUNCTION: getTopLeftPosition","color: green;");try{let r=document?.body?.getBoundingClientRect()||document?.documentElement?.getBoundingClientRect(),i=this.currentMousePosition?.pageX||r.x+200,o=Math.min(i,r.width/2),s=Math.abs(r.y),a=r.y-20;return s>50&&(a=Math.abs(r.y)+180),this.loggingService.log(r),this.loggingService.log(o),this.loggingService.log(a),{topPositionX:o,topPositionY:a}}catch(r){return this.loggingService.catch("Error in DomService getTopLeftPosition: ",r),{topPositionX:0,topPositionY:0}}}toggleSelection(){this.enableRectSelectionSubject$.next(!this.enableRectSelectionSubject$.value)}enableSelection(){this.enableRectSelectionSubject$.next(!0)}disableSelection(){this.enableRectSelectionSubject$.next(!1)}setPinHighlighterClass(r){this.pinHighlighterClass$.next(r)}setTextHighlighterClass(r){this.textHighlighterClass$.next(r)}getTextHighlighterClass(){return this.textHighlighterClass$.asObservable()}enableCommentPinHighlighter(){this.commentPinHighlighter$.next(!0)}disableCommentPinHighlighter(){this.commentPinHighlighter$.next(!1)}getCommentPinHighlighter$(){return this.commentPinHighlighter$.asObservable()}getCommentPinHighlighter(){return this.commentPinHighlighter$?.value}highlightElement(r,i,o){if(r&&!Oc(r)){if(!o&&this.getCommentPinHighlighter()&&(this.pinHighlighterClass$.value?this.addClassToElement(r,this.pinHighlighterClass$.value):this.addClassToElement(r,F.SNIPPYLY_HIGHLIGHT)),i&&!r.hasAttribute(F.ATTRIBUTES.DEFAULT_CURSOR)){let s=r.style.getPropertyValue("cursor"),a=r.style.getPropertyPriority("cursor"),c=s?{defaultCursorValue:s,defaultCursorPriority:a}:"";r.setAttribute(F.ATTRIBUTES.DEFAULT_CURSOR,c?JSON.stringify(c):""),r.style.setProperty("cursor",i,"important")}r.setAttribute(F.SNIPPYLY_HIGHLIGHT,"true"),r.setAttribute(F.VELT_IGNORE_CHANGE_DETECTION,"true")}}removeHighlightFromElement(r){if(r&&(this.pinHighlighterClass$.value&&this.removeClassFromElement(r,this.pinHighlighterClass$.value),this.removeClassFromElement(r,F.SNIPPYLY_HIGHLIGHT),r.removeAttribute(F.SNIPPYLY_HIGHLIGHT),r.removeAttribute(F.VELT_IGNORE_CHANGE_DETECTION),r.hasAttribute(F.ATTRIBUTES.DEFAULT_CURSOR))){try{if(r.style.removeProperty("cursor"),r.getAttribute(F.ATTRIBUTES.DEFAULT_CURSOR)){let i=JSON.parse(r.getAttribute(F.ATTRIBUTES.DEFAULT_CURSOR));r.style.setProperty("cursor",i.defaultCursorValue,i.defaultCursorPriority)}}catch{}r.removeAttribute(F.ATTRIBUTES.DEFAULT_CURSOR)}}highlightUserElement(r,i,o,s=!1){try{r&&(this.addClassToElement(r,F.VELT_LIVE_SELECTION_ON_ELEMENT),s&&this.addClassToElement(r,F.VELT_LIVE_SELECTION_ON_ELEMENT_DEFAULT),r.setAttribute(F.SNIPPYLY_HIGHLIGHT,"true"),r.setAttribute(F.VELT_IGNORE_CHANGE_DETECTION,"true"),i&&!r.style.getPropertyValue(F.VELT_SELECTION_COLOR)&&r.style.setProperty(F.VELT_SELECTION_COLOR,i),o&&r.setAttribute(F.SNIPPYLY_HIGHLIGHT_USER_NAME,o))}catch(a){this.loggingService.catch("Error in DomService highlightUserElement: ",a)}}removeHighlightUserFromElement(r){try{r&&(this.removeClassFromElement(r,F.VELT_LIVE_SELECTION_ON_ELEMENT),this.removeClassFromElement(r,F.VELT_LIVE_SELECTION_ON_ELEMENT_DEFAULT),r.removeAttribute(F.SNIPPYLY_HIGHLIGHT),r.removeAttribute(F.VELT_IGNORE_CHANGE_DETECTION),r.removeAttribute(F.VELT_SELECTION_COLOR),r.removeAttribute(F.SNIPPYLY_HIGHLIGHT_USER_NAME),r.style.removeProperty(F.VELT_SELECTION_COLOR))}catch(i){this.loggingService.catch("Error in DomService removeHighlightUserFromElement: ",i)}}previewHighlightElement(r){r&&r.setAttribute(F.SNIPPYLY_HIGHLIGHT_PREVIEW,"true")}removePreviewHighlightFromElement(r){r&&r.removeAttribute(F.SNIPPYLY_HIGHLIGHT_PREVIEW)}getXPath(r,i=!1,o=!1,s,a){try{let c=this.calculateXPath(r,i,o,s,a);if(c&&typeof c=="string"&&c.includes("/svg")){let l=c.split("/"),d=!1;l.forEach((h,f)=>{h.includes("svg")&&(d=!0),d&&(l[f]="svg:"+h)}),c=l.join("/")}return c}catch(c){this.loggingService.catch("Error in DomService getXPath:",c)}}namespaceResolver(r){return r==="svg"?"http://www.w3.org/2000/svg":null}calculateXPath(r,i,o,s,a){try{if(r){if(typeof r=="string")return document.evaluate(r,s||document,this.namespaceResolver,XPathResult.ANY_TYPE,null);if(!r||r.nodeType!=1)return"";if(r.id&&document.querySelectorAll(`[id='${r.id}']`)?.length===1&&!i&&!(a?.ignoreGeneratedIds&&this.isGeneratedId(r.id)))return"//*[@id='"+r.id+"']";if(o&&r.className&&r.className.split){let l=r.className?.split(" ")?.filter(d=>!d?.includes("snippyly")&&!d?.includes("velt")&&!["show-pin-cursor"].includes(d))[0];if(l){let d=this.calculateXPath(r.parentNode,i,o,s,a)+"/"+r.tagName.toLowerCase(),h=Array.from(r.parentNode?.children||[]).filter(f=>f.nodeType===1&&f.tagName===r.tagName?f.className?.split(" ")?.filter(E=>E?.includes("snippyly")||E?.includes("velt")||["show-pin-cursor"].includes(E))[0]===l:!1);if(h.length>1){let f=h.indexOf(r)+1;d+=`[contains(concat(' ', normalize-space(@class), ' '), ' ${l} ')][${f}]`}else d+=`[contains(concat(' ', normalize-space(@class), ' '), ' ${l} ')]`;return d}}let c=[].filter.call(r.parentNode?.children?r.parentNode?.children:[],function(l){return l.tagName==r.tagName});return this.calculateXPath(r.parentNode,i,o,void 0,a)+"/"+r.tagName.toLowerCase()+(c.length>1?"["+([].indexOf.call(c,r)+1)+"]":"")}}catch(c){this.loggingService.catch("Error in DomService calculateXPath:",c)}}getElementFromXPath(r,i=document){try{if(this.xpathCache.has(r)){let s=this.xpathCache.get(r);if(s!==void 0&&document.contains(s))return s;this.xpathCache.delete(r)}let o=this.getXPath(r,!1,!1,i);if(o){let s=o?.iterateNext();if(s!==null&&typeof s.setAttribute=="function"&&!Oc(s)){let a=rd();s.setAttribute(F.ATTRIBUTES.VELT_ELEMENT_CACHE_ID,a),this.xpathCacheId.set(a,r)}return this.xpathCache.set(r,s),s}return null}catch(o){return this.loggingService.catch("Error in DomService getElementFromXPath:",o),null}}getElementFromTargetElement(r){try{let i=null;if(r?.anchor){let o=this.resolveAnchorRecord(r.anchor);o?.element&&(i=o.element)}else r?.xpath?i=this.getElementFromXPath(r.xpath):r?.cfXpath?i=this.getElementFromXPath(r.cfXpath):r?.fXpath&&(i=this.getElementFromXPath(r.fXpath));return i}catch(i){return this.loggingService.catch("Error in DomService getElementFromTargetElement:",i),null}}resolveIdScopedTarget(r){try{let i=r?.anchor?.xPath||r?.xpath,o=HN(i);if(!i||!o||this.isGeneratedId(o.rootId))return{applicable:!1,element:null};let s=this.getUniqueElementById(o.rootId);if(!s||!this.isElementVisible(s)||!id(s))return{applicable:!0,element:null};let a=d=>!!d&&s.contains(d)&&this.isElementVisible(d),c=this.getElementFromXPath(i);if(a(c))return{applicable:!0,element:c,matchedBy:"exact"};let l=r?.anchor?.robustXPath;if(l&&HN(l)?.rootId===o.rootId){let d=this.getElementFromRobustXPath(l);if(a(d))return{applicable:!0,element:d,matchedBy:"robust"}}return{applicable:!0,element:s,matchedBy:"root"}}catch(i){return this.loggingService.catch("Error in DomService resolveIdScopedTarget: ",i),{applicable:!1,element:null}}}getUniqueElementById(r){try{let i=document.querySelectorAll(`[id="${CSS.escape(r)}"]`);return i.length===1?i[0]:null}catch{return null}}getElementFromTargetTextRange(r){try{let i=null;if(r?.commonAncestorContainerAnchor){let o=this.resolveAnchorRecord(r.commonAncestorContainerAnchor);o?.element&&(i=o.element)}else r?.commonAncestorContainer&&(i=this.getElementFromXPath(r.commonAncestorContainer));return i}catch(i){return this.loggingService.catch("Error in DomService getElementFromTargetTextRange:",i),null}}calculateScreenSize(){this.loggingService.log("%c[WB] Calling FUNCTION: onWindowResize","color: green;");try{let r=[document?.body?.clientHeight||0,document?.documentElement?.clientHeight||0,window?.innerHeight||0],i=[document?.body?.clientWidth||0,document?.documentElement?.clientWidth||0,window?.innerWidth||0];this.calculatePageScrollHeight(),this.loggingService.log(this.pageScrollHeight),this.loggingService.log(this.nodeMap),this.highestNode=this.nodeMap[this.pageScrollHeight];let o=new rp;return o.screenWidth=Math.max(...i),o.screenHeight=Math.max(...r),o.screenScrollHeight=this.pageScrollHeight,o}catch(r){return this.loggingService.catch("Error in DomService calculateScreenSize:",r),new rp}}calculatePageScrollHeight(){this.loggingService.log("%c[WB] Calling FUNCTION: calculatePageScrollHeight","color: green;");try{this.pageScrollHeight=0,this.findLongestNode(document?.documentElement?.childNodes)}catch(r){this.loggingService.catch("Error in DomService calculatePageScrollHeight: ",r)}}removeSnippylyContent(r){this.loggingService.log("%c[WB] Calling FUNCTION: removeSnippylyContent","color: green;");try{let o=new DOMParser().parseFromString(r,"text/html");o.querySelectorAll("[data-snippyly-cache-id]").forEach(f=>{f.removeAttribute("data-snippyly-cache-id")}),o.querySelectorAll("[data-velt-cache-id]").forEach(f=>{f.removeAttribute("data-velt-cache-id")}),o.querySelectorAll(".comment-text-highlight").forEach(f=>{f?.parentNode?.insertBefore(document.createTextNode(f?.textContent),f),f.remove()});let l=document.createNodeIterator(o,NodeFilter.SHOW_COMMENT),d;for(;d=l.nextNode();)d?.remove();return this.mergeAdjacentTextNodes(o.body),this.sanitizeHtml(o.body.innerHTML)}catch(i){return this.loggingService.catch("Error in DomService removeSnippylyContent: ",i),r}}mergeAdjacentTextNodes(r){try{let i=r.firstChild;for(;i;){if(i.nodeType===Node.TEXT_NODE){let o=i.nextSibling;for(;o&&o.nodeType===Node.TEXT_NODE;)i.textContent+=o.textContent,o.remove(),o=i.nextSibling}i=i.nextSibling}}catch(i){this.loggingService.catch("Error in DomService mergeAdjacentTextNodes: ",i)}}findLongestNode(r){try{for(let i=r.length-1;i>=0;i--){if(r[i]?.scrollHeight&&r[i]?.clientHeight){let o=Math.max(r[i]?.scrollHeight,r[i]?.clientHeight);this.pageScrollHeight=Math.max(o,this.pageScrollHeight),this.nodeMap[o]=r[i]}r[i]?.childNodes?.length&&this.findLongestNode(r[i]?.childNodes)}}catch(i){this.loggingService.catch("Error in DomService findLongestNode: ",i)}}resetSelectedAnnotationsMap(r=!0,i){try{let o=Array.from(document.querySelectorAll(`[${F.ATTRIBUTES.VELT_ANNOTATION_DRAFT}]`)),s=this.getDraftCommentAnnotationDialogs()||[];o.push(...s),o=Array.from(new Set(o));let a=o.map(h=>h.classList.contains("velt-annotation-draft-checked")?(h.classList.remove("velt-annotation-draft-checked"),null):(this.removeClassFromElement(h,"velt-comment-dialog-shake"),setTimeout(()=>{this.addClassToElement(h,"velt-comment-dialog-shake"),h.getAttribute(F.ATTRIBUTES.VELT_ANNOTATION_EDIT_COMMENT)||h.classList.contains("velt-annotation-draft-checked")||this.addClassToElement(h,"velt-annotation-draft-checked")},100),h.getAttribute(F.ATTRIBUTES.VELT_ANNOTATION_DRAFT))).filter(h=>h),c=Object.keys(this.getRecordingInProgress()||{});a=[...a,...c];let l=this.selectedAnnotationsMap$.value;if(r&&this.selectedAnnotationsMap$.value&&Object.keys(this.selectedAnnotationsMap$.value).length){let h=[];Object.keys(l).forEach(f=>{if(l[f]?.type==="tag"){let g=l[f];g?.to?.length||a.includes(f)||h.push(g)}else l[f]?.comments?.length||a.includes(f)||h.push(l[f])}),this.deleteAnnotations$.next(h),this.deleteAnnotations$.next([])}let d={};Object.keys(l).forEach(h=>{a.includes(h)&&(d[h]=l[h]),i&&(i==="comment"?["comment","videoPin"].includes(l[h]?.type)||(d[h]=l[h]):l[h]?.type!==i&&(d[h]=l[h]))}),Object.keys(d).forEach(h=>{let f=d[h]?.multiThreadAnnotationId;f&&!d[f]&&(d[f]={annotationId:f,type:"multiThread"})}),JSON.stringify(this.selectedAnnotationsMap$.value)!==JSON.stringify(d)&&this.selectedAnnotationsMap$.next(d),this.setDialogOpenedInSidebar(!1)}catch(o){this.loggingService.catch("Error in DomService resetSelectedAnnotationsMap: ",o)}}setRecordingInProgress(r,i){try{if(i)this.recordingInProgress$.next(me(B({},this.recordingInProgress$.value),{[r]:i}));else{let o=this.recordingInProgress$.value;delete o[r],this.recordingInProgress$.next(o)}}catch(o){this.loggingService.catch("Error in DomService setRecordingInProgress: ",o)}}resetRecordingInProgress(){try{this.recordingInProgress$.next({})}catch(r){this.loggingService.catch("Error in DomService resetRecordingInProgress: ",r)}}getRecordingInProgress(){try{return this.recordingInProgress$.value}catch(r){return this.loggingService.catch("Error in DomService getRecordingInProgress: ",r),{}}}getDraftCommentAnnotationDialogs(){try{let r=[],i=Array.from(document.querySelectorAll(`${F.TAGS.SNIPPYLY_COMMENT_DIALOG}`)),o=Array.from(document.querySelectorAll(`${F.TAGS.VELT_COMMENT_DIALOG}`));return[...i,...o].forEach(a=>{if(a?.shadowRoot){let c=a.shadowRoot.querySelector(`[${F.ATTRIBUTES.VELT_ANNOTATION_DRAFT}]`);c&&r.push(c)}else{let c=a.querySelector(`${F.TAGS.VELT_SHADOW_DOM_INTERNAL}`);if(c?.shadowRoot){let l=c.shadowRoot?.querySelector(`[${F.ATTRIBUTES.VELT_ANNOTATION_DRAFT}]`);l&&r.push(l)}else{let l=a.querySelector(`[${F.ATTRIBUTES.VELT_ANNOTATION_DRAFT}]`);l&&r.push(l)}}}),r}catch(r){return this.loggingService.catch("Error in DomService getDraftCommentAnnotationDialogs: ",r),[]}}getSelectedAnnotationsMap(r){try{let i=this.selectedAnnotationsMap$.value;if(r){let o={};return Object.keys(i).forEach(s=>{r==="comment"?["comment","videoPin"].includes(i[s].type)&&(o[s]=i[s]):i[s].type===r&&(o[s]=i[s])}),o}else return i}catch(i){return this.loggingService.catch("Error in DomService getSelectedAnnotationsMap: ",i),{}}}getSelectedAnnotationsMap$(r){return this.selectedAnnotationsMap$.asObservable().pipe(De(i=>{if(r){let o={};return Object.keys(i).forEach(s=>{i[s].type===r&&(o[s]=i[s])}),o}else return i}))}getSelectedComments$(){return this.selectedAnnotationsMap$.asObservable().pipe(De(r=>Object.values(r)))}getSelectedAnnotationsLocationMap(){try{return this.selectedAnnotationsLocationMap$.value}catch(r){return this.loggingService.catch("Error in DomService getSelectedAnnotationsLocationMap: ",r),{}}}getSelectedAnnotationsLocationMap$(){return this.selectedAnnotationsLocationMap$.asObservable()}getSelectedAnnotationsContextIdMap(){try{return this.selectedAnnotationsContextIdMap$.value}catch(r){return this.loggingService.catch("Error in DomService getSelectedAnnotationsContextIdMap: ",r),{}}}getSelectedAnnotationsContextIdMap$(){return this.selectedAnnotationsContextIdMap$.asObservable()}toggleAnnotationSelection(r,i,o,s=!1,a,c){try{o==="sidebarShowReplies"?this.setDialogOpenedInSidebar(!0):this.setDialogOpenedInSidebar(!1);let l=JSON.parse(JSON.stringify(this.selectedAnnotationsMap$.value||{})),d=JSON.parse(JSON.stringify(this.selectedAnnotationsLocationMap$.value||{})),h=JSON.parse(JSON.stringify(this.selectedAnnotationsContextIdMap$.value||{}));l[r.annotationId]&&!s?delete l[r.annotationId]:((!this.windowKeydownShift$.value||s)&&(l={}),l[r.annotationId]=r,d[r.annotationId]=i,c&&(h[r.annotationId]=c),a=r?.multiThreadAnnotationId||a,a&&(l[a]={annotationId:a,type:"multiThread"},d[a]=i,c&&(h[a]=c))),this.selectedAnnotationsMap$.next(l),Object.keys(d).forEach(f=>{l[f]||delete d[f]}),this.selectedAnnotationsLocationMap$.next(d),Object.keys(h).forEach(f=>{l[f]||delete h[f]}),this.selectedAnnotationsContextIdMap$.next(h)}catch(l){this.loggingService.catch("Error in DomService toggleAnnotationSelection: ",l)}}setSelectedAnnotationLocation(r,i){try{let o=JSON.parse(JSON.stringify(this.getSelectedAnnotationsLocationMap()||{}));o?.[r]!==i&&(o[r]=i,this.selectedAnnotationsLocationMap$.next(o))}catch(o){this.loggingService.catch("Error in DomService setSelectedAnnotationLocation: ",o)}}updateSelectedAnnotationInMap(r){try{let i=this.selectedAnnotationsMap$.value;r.forEach(o=>{i[o.annotationId]&&(i[o.annotationId]=o)}),this.selectedAnnotationsMap$.next(i)}catch(i){this.loggingService.catch("Error in DomService updateSelectedAnnotationInMap: ",i)}}getDeleteCommmentAnnotations$(){try{return this.deleteAnnotations$.asObservable()}catch(r){return this.loggingService.catch("Error in DomService getDeleteCommmentAnnotations$: ",r),lt([])}}getHighestNode(){return this.loggingService.log("%c[WB] Calling FUNCTION: getHighestNode","color: green;"),this.highestNode}onWindowMouseDown$(){return this.windowMouseDown$.asObservable()}onWindowPointerMove$(){return this.windowPointerMove$.asObservable()}onWindowPointerMove(){return this.windowPointerMove$.value}onWindowPointerUp$(){return this.windowPointerUp$.asObservable()}onSelectionChange$(){return this.documentSelectionChange$.asObservable()}onWindowClick$(){return this.windowClick$.asObservable()}onWindowScroll$(){return this.windowScroll$.asObservable()}onWindowResize$(){return this.windowResize$.asObservable()}onWindowKeyupBackspace$(){return this.windowKeyupBackspace$.asObservable()}onWindowKeyupDelete$(){return this.windowKeyupDelete$.asObservable()}onWindowKeyupEsc$(){return this.windowKeyupEsc$.asObservable()}onWindowPopState$(){return this.windowPopState$.asObservable()}onDocumentClick$(){return this.documentClick$.asObservable()}getLastDocumentClick(){return this.documentClick$.value}onDocumentClickSubject$(){return this.documentClickSubject$.asObservable()}onDocumentFocus$(){return this.documentFocus$.asObservable()}onDomChange$(r){try{return this.mutationObserver||this.setMutationObserver(r),this.mutation$.asObservable()}catch(i){return this.loggingService.catch("Error in DomService onDomChange$: ",i),lt([])}}getChildListMutation$(){return this.childListMutation$.asObservable()}onNetworkStatusChange$(){return this.networkStatus$.asObservable()}getNetworkStatus(){return this.networkStatus$.value}getElementOffset(r,i){try{let o={offsetTop:0,offsetLeft:0},s=r;if(s===i){let a=window.getComputedStyle(r);a.position==="static"&&a.transformStyle!="preserve-3d"&&a.transform=="none"&&(o.offsetLeft=r?.offsetLeft||0,o.offsetTop=r?.offsetTop||0)}if(s!==i)if(r?.closest("svg"))for(;s&&s!==i;){let c=window.getComputedStyle(s);if(s.tagName.toLowerCase()==="svg"||s instanceof SVGElement){let l=s.parentElement;if(l){let d=l.getBoundingClientRect(),h=s.getBoundingClientRect();o.offsetLeft+=h.left-d.left,o.offsetTop+=h.top-d.top}}else c.position==="static"?c.transformStyle!="preserve-3d"&&c.transform=="none"&&(o.offsetLeft+=s?.offsetLeft||0,o.offsetTop+=s?.offsetTop||0):(o.offsetLeft+=s.offsetLeft,o.offsetTop+=s.offsetTop);if(s=s.parentElement,r instanceof SVGElement&&s===i){let l=window.getComputedStyle(s);l.position==="static"&&l.transformStyle!="preserve-3d"&&l.transform=="none"&&(o.offsetLeft+=s?.offsetLeft||0,o.offsetTop+=s?.offsetTop||0)}}else{let c=window.getComputedStyle(s);c.position==="static"?c.transformStyle!="preserve-3d"&&c.transform=="none"&&(o.offsetLeft+=s?.offsetLeft||0,o.offsetTop+=s?.offsetTop||0):(o.offsetLeft+=s.offsetLeft,o.offsetTop+=s.offsetTop)}return o}catch(o){return this.loggingService.catch("Error in DomService getElementOffset: ",o),{offsetTop:0,offsetLeft:0}}}isElementVisible(r){try{if(typeof r?.getBoundingClientRect=="function"){let{width:i,height:o,top:s,bottom:a}=r?.getBoundingClientRect();return i>0||o>0||s<window.innerHeight&&a>0}else return!1}catch(i){return this.loggingService.catch("Error in DomService isElementVisible: ",i),!1}}isElementVisibleOnScreen(r){try{if(r){if(!(r instanceof Element))return!1;let i=r,o=window.getComputedStyle(i);return!(o.display==="none"||o.visibility==="hidden"||parseFloat(o.opacity)===0)}return!1}catch(i){return this.loggingService.catch("Error in DomService isElementVisibleOnScreen: ",i),!1}}getClickAndDragPointsObservable(){return new fe(r=>{let i=wi(document,"mousedown").pipe(De(l=>({type:l.type,x:l.clientX+window.scrollX,y:l.clientY+window.scrollY,event:l}))),o=wi(document,"mousemove").pipe(De(l=>({type:l.type,x:l.clientX+window.scrollX,y:l.clientY+window.scrollY,event:l}))),s=wi(document,"mouseup").pipe(De(l=>({type:l.type,x:l.clientX+window.scrollX,y:l.clientY+window.scrollY,event:l}))),c=i.pipe(Mr(l=>o.pipe(Ya(),De(([d,h])=>({startPoint:l,prevPoint:d,curPoint:h})),ps(s)))).subscribe(r);return()=>c.unsubscribe()})}drawRectangle(r,i){let o=document.querySelector(".rectangle");o||(o=document.createElement("div"),this.addClassToElement(o,"rectangle"),o.setAttribute(F.ATTRIBUTES.VELT_COMMENT_DISABLED,"true"),o.setAttribute(F.VELT_IGNORE_CHANGE_DETECTION,"true"),document.body.appendChild(o));let s=Math.abs(i.x-r.x),a=Math.abs(i.y-r.y),c=Math.min(r.x,i.x),l=Math.min(r.y,i.y);return o.style.width=`${s}px`,o.style.height=`${a}px`,o.style.left=`${c}px`,o.style.top=`${l}px`,o.style.position="absolute",o.style.border="2px dashed #f00",o.style.pointerEvents="none",o.style.zIndex="2147483577",o}getRange(){try{if(this.loggingService.log("%c[WB] Calling FUNCTION: getRange","color: green;"),window.getSelection()?.toString()){let r=window.getSelection();if(r?.rangeCount)return r.getRangeAt(0)}return null}catch(r){return this.loggingService.catch("Error in DomService getRange: ",r),null}}clearTextSelection(){try{this.loggingService.log("%c[WB] Calling FUNCTION: clearTextSelection","color: green;"),window.getSelection&&(window.getSelection()?.empty?window.getSelection()?.empty():window.getSelection()?.removeAllRanges&&window.getSelection()?.removeAllRanges())}catch(r){this.loggingService.catch("Error in DomService clearTextSelection: ",r)}}getTargetTextRangeFromSelectionRange(r){try{let i={},o=r.commonAncestorContainer;o?.nodeType===Node.TEXT_NODE&&(o=o.parentElement);let s=document.body;if(o){let c=this.getTextXPath(o);this.isXpathWithId(c)&&(s=o)}let a=this.getAdditionalLocationContainer(o);if(a&&(s=a),i.commonAncestorContainer=this.getTextXPath(s),i.commonAncestorContainer){let c=this.getElementFromXPath(i.commonAncestorContainer);if(c){i.commonAncestorContainerFXpath=this.getXPath(c,!0),i.commonAncestorContainerCFXpath=this.getXPath(c,!0,!0);let l=this.generateAnchorRecord(c);l&&(i.commonAncestorContainerAnchor=l)}}return i.text=r.toString(),i.occurrence=gR(s,0,r.startContainer,r.startOffset,r.toString())+1,i}catch(i){this.loggingService.catch("Error in DomService getTargetTextRangeFromSelectionRange: ",i);return}}getTextXPath(r){try{if(this.loggingService.log("%c[WB] Calling FUNCTION: getTextXPath","color: green;"),r.nodeType===Node.TEXT_NODE){let i=1,o=r.previousSibling;for(;o;)o.nodeType===Node.TEXT_NODE&&i++,o=o.previousSibling;return this.getXPath(r.parentElement)}else return this.getXPath(r)}catch(i){this.loggingService.catch("Error in DomService getTextXPath: ",i);return}}getHostElement(r){try{if(F.NON_NESTABLE_ELEMENTS[r?.tagName?.toLowerCase()]){let o=r?.closest("picture");return o?o?.parentElement:r.parentElement}let i=r.closest("svg");return i?i?.parentElement:r}catch(i){return this.loggingService.catch("Error in DomService getHostElement: ",i),r}}isElementInsideAdditionalLocationContainer(r){try{return!!r?.closest(`[${F.ATTRIBUTES.VELT_LOCATION}], [${F.ATTRIBUTES.VELT_LOCATION_ID}]`)}catch(i){return this.loggingService.catch("Error in DomService isElementInsideAdditionalLocationContainer: ",i),!1}}getAdditionalLocationContainer(r){try{return r?.closest(`[${F.ATTRIBUTES.VELT_LOCATION}], [${F.ATTRIBUTES.VELT_LOCATION_ID}]`)||null}catch(i){return this.loggingService.catch("Error in DomService getAdditionalLocationContainer: ",i),null}}isXpathWithId(r){try{return typeof r=="string"?!!r?.includes("[@id="):!1}catch(i){return this.loggingService.catch("Error in DomService isXpathWithId: ",i),!1}}getListedElements({elementIds:r,elementClassNames:i,elementQuerySelectors:o}){try{let s=[];if(r?.length)for(let a=0;a<r.length;a++){let c=document.getElementById(r[a]);c&&s.push(c)}if(i?.length)for(let a=0;a<i.length;a++){let c=document.getElementsByClassName(i[a]);for(let l=0;l<c.length;l++){let d=c[l];d&&d instanceof HTMLElement&&s.push(d)}}if(o?.length)for(let a=0;a<o.length;a++){let c=document.querySelectorAll(o[a]);for(let l=0;l<c.length;l++){let d=c[l];d&&d instanceof HTMLElement&&s.push(d)}}return s}catch(s){return this.loggingService.catch("Error in DomService getListedElements: ",s),[]}}isElementInsideListedElementIds(r,i){try{if(i?.length){for(let o=0;o<i.length;o++){let s=document.getElementById(i[o]);if(s&&s.contains(r))return!0}return!1}return!0}catch(o){return this.loggingService.catch("Error in DomService isElementInsideListedElementIds: ",o),!1}}isElementInsideListedElementClassNames(r,i){try{if(i?.length){for(let o=0;o<i.length;o++){let s=document.getElementsByClassName(i[o]);for(let a=0;a<s.length;a++)if(s[a].contains(r))return!0}return!1}return!0}catch(o){return this.loggingService.catch("Error in DomService isElementInsideListedElementClassNames: ",o),!1}}isElementInsideListedElementQuerySelectors(r,i){try{if(i?.length){for(let o=0;o<i.length;o++){let s=document.querySelectorAll(i[o]);for(let a=0;a<s.length;a++)if(s[a].contains(r))return!0}return!1}return!0}catch(o){return this.loggingService.catch("Error in DomService isElementInsideListedElementQuerySelectors: ",o),!1}}addClassToElement(r,i){try{this.loggingService.log("%c[WB] Calling FUNCTION: addClassToElement","color: green;"),r&&(r.classList?.contains(i)||r.classList?.add(i))}catch(o){this.loggingService.catch("Error in DomService addClassToElement: ",o)}}removeClassFromElement(r,i){try{this.loggingService.log("%c[WB] Calling FUNCTION: removeClassFromElement","color: green;"),r&&r.classList?.contains(i)&&r.classList?.remove(i)}catch(o){this.loggingService.catch("Error in DomService removeClassFromElement: ",o)}}isElementInsideParentWithAttribute(r,i,o){try{let s=r;for(;s&&s!==document.body;){if(s?.getAttribute&&s?.getAttribute(i)===o)return!0;s=s.parentElement}return!1}catch(s){return this.loggingService.catch("Error in DomService isElementInsideParentWithAttribute: ",s),!1}}setVideoEditorHandlingDelete(r){try{this.isVideoEditorHandlingDelete=r}catch(i){this.loggingService.catch("Error in DomService setVideoEditorHandlingDelete: ",i)}}isVideoEditorHandlingDeleteKey(){try{return this.isVideoEditorHandlingDelete}catch(r){return this.loggingService.catch("Error in DomService isVideoEditorHandlingDeleteKey: ",r),!1}}setCustomCss(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: setCustomCss","color: green;"),this.customCss$.next(r)}catch(i){this.loggingService.catch("Error in DomService setCustomCss: ",i)}}getCustomCss$(){try{return this.loggingService.log("%c[WB] Calling FUNCTION: getCustomCss$","color: green;"),this.customCss$.asObservable()}catch(r){return this.loggingService.catch("Error in DomService getCustomCss$: ",r),lt(null)}}injectCustomCss(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: injectCustomCss","color: green;");let i=this.customCss$.value;if(i){let o=r?.shadowRoot?.querySelector(`[${F.VELT_CUSTOM_CSS}]`);if(o&&o.remove(),i?.type==="link"){let s=document.createElement("link");s.href=i?.value,s.rel="stylesheet",s.setAttribute(F.VELT_CUSTOM_CSS,"true"),r?.shadowRoot?.appendChild(s)}else{let s=document.createElement("style");s.innerHTML=this.sanitizeHtml(i?.value),s.setAttribute(F.VELT_CUSTOM_CSS,"true"),r?.shadowRoot?.appendChild(s)}}}catch(i){this.loggingService.catch("Error in DomService injectCustomCss: ",i)}}subscribeInjectCustomCss(r){try{return this.customCss$.subscribe(()=>{this.injectCustomCss(r?.nativeElement)})}catch(i){return this.loggingService.catch("Error in DomService subscribeInjectCustomCss: ",i),new gt}}trimCommentHtml(r){try{let i=document.createElement("div");i.innerHTML=r,this.removeEmptyElements(i);let o=i.innerHTML;return o=o.replace(e.MULTIPLE_NBSP_REGEX," ").replace(e.TRIM_NBSP_REGEX,"").trim(),o}catch(i){return this.loggingService.catch("Error in DomService trimCommentHtml: ",i),r}}removeEmptyElements(r){try{let s=function(a){return o.test(a.innerHTML)};var i=s;let o=/^\s*(<br\s*\/?>)?\s*$/;for(;r.firstChild&&s(r.firstChild);)r.removeChild(r.firstChild);for(;r.lastChild&&s(r.lastChild);)r.removeChild(r.lastChild)}catch(o){this.loggingService.catch("Error in DomService removeEmptyElements: ",o)}}normalizeWhitespace(r){try{r.childNodes.forEach(i=>{i.nodeType===Node.TEXT_NODE?i.nodeValue=i.nodeValue?.replace(/\s+/g," ").trim()??"":i.nodeType===Node.ELEMENT_NODE&&this.normalizeWhitespace(i)})}catch(i){this.loggingService.catch("Error in DomService normalizeWhitespace: ",i)}}sanitizeHtml(r){try{return this.loggingService.log("%c[WB] Calling FUNCTION: sanitizeHtml","color: green;"),fy.sanitize(r,O2)}catch(i){return this.loggingService.catch("Error in DomService sanitizeHtml: ",i),""}}sanitizeHtmlForPaste(r){try{let i=this.convertStylesToTags(r);return fy.sanitize(i,{ALLOWED_TAGS:["b","strong","i","em","u","a","br"],ALLOWED_ATTR:["href","target","rel"]})}catch(i){return this.loggingService.catch("Error in DomService sanitizeHtmlForPaste: ",i),""}}convertStylesToTags(r){try{let i=document.createElement("div");return i.innerHTML=r,this.convertBlockElementsToBr(i),this.processNodeStyles(i),i.innerHTML}catch(i){return this.loggingService.catch("Error in DomService convertStylesToTags: ",i),r}}convertBlockElementsToBr(r){try{let i=["P","DIV","H1","H2","H3","H4","H5","H6","LI","BLOCKQUOTE","PRE","SECTION","ARTICLE","HEADER","FOOTER"],o;for(;(o=r.querySelector(i.join(",")))!==null;){let s=o.parentNode;if(!s)break;for(;o.firstChild;)s.insertBefore(o.firstChild,o);o.nextSibling&&s.insertBefore(document.createElement("br"),o),s.removeChild(o)}}catch(i){this.loggingService.catch("Error in DomService convertBlockElementsToBr: ",i)}}processNodeStyles(r){try{let i=Array.from(r.childNodes);for(let o of i)if(o.nodeType===Node.ELEMENT_NODE){this.processNodeStyles(o);let s=o,a=s.style,c=o,l=a?.fontWeight;if(l==="bold"||l==="700"||l==="800"||l==="900"){let d=s.tagName?.toLowerCase();if(d!=="b"&&d!=="strong"){let h=document.createElement("b");c.parentNode.insertBefore(h,c),h.appendChild(c),c=h}}if(a?.fontStyle==="italic"){let d=s.tagName?.toLowerCase();if(d!=="i"&&d!=="em"){let h=document.createElement("i");c.parentNode.insertBefore(h,c),h.appendChild(c),c=h}}if((a?.textDecorationLine?.includes("underline")||a?.textDecoration?.includes("underline"))&&s.tagName?.toLowerCase()!=="u"){let h=document.createElement("u");c.parentNode.insertBefore(h,c),h.appendChild(c),c=h}}}catch(i){this.loggingService.catch("Error in DomService processNodeStyles: ",i)}}sanitizeSvg(r){try{return fy.sanitize(r,O2)}catch(i){return this.loggingService.catch("Error in DomService sanitizeSvg: ",i),r}}setDeviceInfo(){try{this.loggingService.log("%c[WB] Calling FUNCTION: setDeviceInfo","color: green;");let r=new Ur;this.deviceInfo$.next(r)}catch(r){this.loggingService.catch("Error in DomService setDeviceInfo: ",r)}}getDeviceInfo$(){try{return this.loggingService.log("%c[WB] Calling FUNCTION: getDeviceInfo$","color: green;"),this.deviceInfo$.asObservable()}catch(r){return this.loggingService.catch("Error in DomService getDeviceInfo$: ",r),lt(new Ur)}}getTabId(){try{let r=sessionStorage.getItem(F.SESSION_STORAGE.VELT_TAB_ID);!r&&this.tabId&&(r=this.tabId,sessionStorage.setItem(F.SESSION_STORAGE.VELT_TAB_ID,r)),!this.tabId&&r&&(this.tabId=r);let i=this.getTabIdFromWindowName();return(!r||r!==i)&&(r=rd(),this.tabId=r,sessionStorage.setItem(F.SESSION_STORAGE.VELT_TAB_ID,r),this.setTabIdToWindowName(r)),r}catch(r){return this.loggingService.catch("Error in DomService getTabId: ",r),null}}getTabIdFromWindowName(){try{return window.name}catch(r){return this.loggingService.catch("Error in DomService getTabIdFromWindowName: ",r),null}}setTabIdToWindowName(r){try{window.name=r}catch(i){this.loggingService.catch("Error in DomService setTabIdToWindowName: ",i)}}getDeviceInfo(){try{return this.loggingService.log("%c[WB] Calling FUNCTION: getDeviceInfo","color: green;"),this.deviceInfo$.value}catch(r){return this.loggingService.catch("Error in DomService getDeviceInfo: ",r),new Ur}}isMobileDevice(){try{return new Ur().getDeviceType()===Er.MOBILE}catch(r){return this.loggingService.catch("Error in DomService isMobileDevice: ",r),!1}}isTabletDevice(){try{return new Ur().getDeviceType()===Er.TABLET}catch(r){return this.loggingService.catch("Error in DomService isTabletDevice: ",r),!1}}isDesktopDevice(){try{return new Ur().getDeviceType()===Er.DESKTOP}catch(r){return this.loggingService.catch("Error in DomService isDesktopDevice: ",r),!1}}deepCloneElement(r){try{var i=document.createElement(r?.tagName);return Array.from(r.attributes).forEach(o=>{i.setAttribute(o.nodeName,o.nodeValue)}),r.childNodes.forEach(o=>{o.nodeType===Node.ELEMENT_NODE?i.appendChild(this.deepCloneElement(o)):o.nodeType===Node.TEXT_NODE&&i.appendChild(document.createTextNode(o.nodeValue))}),i}catch(o){return this.loggingService.catch("Error in DomService deepCloneElement: ",o),r}}setRandomNumberToElementRecursive(r){try{if(!r)return;let i=Math.random().toString(36).substring(7);r&&r.setAttribute&&typeof r.setAttribute=="function"&&(r.getAttribute("velt-wireframe-id")||r.setAttribute("velt-wireframe-id",i)),Array.from(r.children).forEach(s=>{this.setRandomNumberToElementRecursive(s)})}catch(i){this.loggingService.catch("Error in DomService setRandomNumberToElementRecursive: ",i)}}setDialogOpenedInSidebar(r){this.dialogOpenedInSidebar$.next(r)}getDialogOpenedInSidebar(){return this.dialogOpenedInSidebar$.asObservable()}removeWireframeSuffixFromTags(r){if(!r)return;Array.from(r.children).forEach(o=>{if(this.removeWireframeSuffixFromTags(o),o.tagName.toLowerCase().endsWith("-wireframe")){let s=o.tagName.toLowerCase().replace("-wireframe",""),a=document.createElement(s);for(Array.from(o.attributes).forEach(c=>{a.setAttribute(c.name,c.value)});o.firstChild;)a.appendChild(o.firstChild);o.parentNode.replaceChild(a,o)}})}isMonitorDevice(){try{return new Ur().getDeviceType()===Er.MONITOR}catch(r){return this.loggingService.catch("Error in DomService isMonitorDevice: ",r),!1}}isElementOriginallyStatic(r){try{return window.getComputedStyle(r).position==="static"||r.hasAttribute(F.ATTRIBUTES.VELT_COMMENT_PIN_HOST_STATIC)||r.hasAttribute(F.ATTRIBUTES.VELT_AREA_PIN_HOST_STATIC)||r.hasAttribute(F.ATTRIBUTES.VELT_TAG_PIN_HOST_STATIC)||r.hasAttribute(F.ATTRIBUTES.VELT_RECORDER_PIN_HOST_STATIC)||r.hasAttribute(F.ATTRIBUTES.VELT_ARROW_PIN_HOST_STATIC)}catch(i){return this.loggingService.catch("Error in DomService isElementOriginallyStatic: ",i),!1}}};e.MULTIPLE_NBSP_REGEX=/(?: \s*){2,}/g,e.TRIM_NBSP_REGEX=/^(?: \s*)+|(?: \s*)+$/g,e.\u0275fac=function(i){return new(i||e)($(zs),$(bo),$(bt),$(XD))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();function Xc(t){let e=t?.refreshToken;return typeof e=="string"&&e.length>0?e:void 0}var $N=Symbol("velt-auth-state-pending");function are(t,e){let n=B(B({},t),e||{});return n.userId=t.userId,n.userSnippylyId=t.userSnippylyId,n.type=t.type,n.organizationId=t.organizationId,n.clientOrganizationId=t.clientOrganizationId,n.groupId=t.groupId,n.clientGroupId=t.clientGroupId,n.contacts=t.contacts,n.plan=t.plan,n.isAdmin=t.isAdmin,n.isReadOnly=t.isReadOnly,n.isAnonymous=t.isAnonymous,n.isGuest=t.isGuest,n.color=e?.color||t.color,n.textColor=e?.textColor||t.textColor,n.initial=e?.initial||n.name?.charAt(0).toUpperCase()||n.email?.charAt(0).toUpperCase()||t.initial,n?.photoUrl===void 0&&(n.photoUrl=null),n}function L2(t,e){if(!e.length)return!0;if(t.length!==e.length)return!1;let n=new Set(t);return e.every(r=>n.has(r))}var _d=(()=>{let e=class e{constructor(r,i,o,s,a,c,l,d,h){this.afAuth=r,this.configService=i,this.avatarService=o,this.coreActionsService=s,this.domService=a,this.functions=c,this.analyticsService=l,this.loggingService=d,this.serviceBook=h,this.endpointsService=Y(ly),this.portableBackend$=new ie(null),this.portableAuthUser$=new ie(null),this.user$=new ie(null),this.userOptions$=new ie(null),this.userContacts$=new ie(null),this.userOrganization$=new ie(null),this.isPrivateCommentsEnabled$=new ie(!1),this.providedUser=new zi,this.portableRefreshTimer=null,this.portableToken=null,this.portableRefreshInFlightEpoch=null,this.portableRefreshFailures=0,this.portableRefreshFailuresPastExpiry=0,this.portableRefreshWarnedEpoch=null,this.portableVisibilityHandler=null,this.loggedInUserResolveRetryDelaysMs=[2e3,8e3,3e4],this.loggedInUserResolveRetryInFlightUserId=null,this.firebaseConfig$=new ie(null),this.advancedQueries$=new ie(null),this.planDetails$=new ie(null),this.signOutPreviousUser$=new ie(null),this.preSignOutFunctions=new Map,this.autoLoginCalled=!1,this.portableAutoLoginCalled=!1,this.portableAutoLoginInFlight=Promise.resolve(),this.portableSessionEpoch=0,this.portableLocalSessionEnds=0,this.portableSignOutOwnsEpochBump=!1,this.pendingPortableRestore=null,this.portableResumeUserId=null,this.portableStorageHandler=null,this.portableSessionIdentity=null,this.reportedPortableRefreshCodes=new Set,this.autoLoginRequired=!0,this.config=null,this.getPlanDetailsCalled=!1,this.portablePlanSeeded=!1,this.forceReLoggedIn=!1,this.lastLoggedInUserData=null,this.sessionReLoginCount=0,this.SESSION_RE_LOGIN_COUNT_LIMIT=10,this.sessionReLoginSubscription=null,this.onRetrySubscription=null,this.authProviderListenerGeneration=0,this.TOKEN_EXPIRED_ERROR_COUNT_LIMIT=3,this.tokenExpiredErrorCount=0,this.cachedActivityConfig=null,this.portableChunkReady=null,this.viewsService=null,this.crdtService=null,this.portableSavedSessionRaw=null,this.portableRenewalStopped=null,this.portableSessionStartedAt=0,this.portablePersistInFlight=Promise.resolve(),this.loggingService.log("%c[WB] Creating CLASS: AuthService","color: blue;"),this.serviceBook.observe(fT).subscribe(f=>{this.commentService=f??void 0}),this.serviceBook.observe(pT).subscribe(f=>{this.reactionService=f??void 0}),this.serviceBook.observe(gT).subscribe(f=>{this.areaService=f??void 0}),this.serviceBook.observe(AU).subscribe(f=>{this.activityService=f??void 0,f&&this.cachedActivityConfig&&f.setActivityFeatureConfig(this.cachedActivityConfig)}),this.serviceBook.observe(CU).subscribe(f=>{this.viewsService=f??null}),this.serviceBook.observe(DU).subscribe(f=>{this.crdtService=f??null});try{try{let f=this.configService.getAuthProxyHost();if(f){let g=this.afAuth?.config;g&&(g.apiHost=f,g.tokenApiHost=f)}}catch{}this.analyticsService.setAuthService(this),this.configService.getConfig$().subscribe(f=>{this.config=f}),this.forceReLoggedIn=localStorage.getItem(F.LOCAL_STORAGE.VELT_USER_FORCE_RE_LOGGED_IN)==="true",this.sessionReLoginSubscription=fd(this.afAuth).pipe(Qa(this.afAuth.currentUser),Ya(),Mr(([f,g])=>this.domService.onNetworkStatusChange$().pipe(mn(E=>E),En(1),De(()=>({previousUser:f,currentUser:g}))))).subscribe(E=>y(this,[E],function*({previousUser:f,currentUser:g}){if(!g&&f){let I=f?.stsTokenManager?.expirationTime,S=new Date().getTime(),L=I-S;S>I&&(this.analyticsService.trackEvent(St.Events.Core.SDK_SESSION_TOKEN_EXPIRED,{apiKey:this.apiKey,user:this.getUserForTelemetry(this.user$.value??void 0),lastLoggedInUserData:this.lastLoggedInUserData?{user:this.getUserForTelemetry(this.lastLoggedInUserData.user),autoLogin:this.lastLoggedInUserData.autoLogin,hasAuthToken:!!this.lastLoggedInUserData.userOptions?.authToken}:null,timeLeft:L,forceReset:this.userOptions$.value?.forceReset,sessionReLoginCount:this.sessionReLoginCount},!0,this.user$.value?.userSnippylyId),this.user$.value&&f?.uid===this.user$.value?.userSnippylyId&&this.lastLoggedInUserData?.user?.userSnippylyId===this.user$.value?.userSnippylyId&&(this.sessionReLoginCount>this.SESSION_RE_LOGIN_COUNT_LIMIT?(this.analyticsService.trackEvent(St.Events.Core.SDK_SESSION_RE_LOGIN_COUNT_EXCEEDED,{apiKey:this.apiKey,clientUserId:this.lastLoggedInUserData.user.userId,snippylyUserId:this.lastLoggedInUserData.user.userSnippylyId,timeLeft:L,forceReset:this.userOptions$.value?.forceReset,sessionReLoginCount:this.sessionReLoginCount},!0,this.user$.value?.userSnippylyId),this.sessionReLoginSubscription?.unsubscribe()):(this.sessionReLoginCount++,this.analyticsService.trackEvent(St.Events.Core.SDK_SESSION_RE_LOGIN_TRIGGERED,{apiKey:this.apiKey,clientUserId:this.lastLoggedInUserData.user.userId,snippylyUserId:this.lastLoggedInUserData.user.userSnippylyId,user:this.getUserForTelemetry(this.lastLoggedInUserData.user),timeLeft:L,forceReset:this.userOptions$.value?.forceReset,sessionReLoginCount:this.sessionReLoginCount},!0,this.lastLoggedInUserData.user.userSnippylyId),this.lastLoggedInUserData.user=yield this.updateUserWithColorAndTextColor(this.lastLoggedInUserData.user),this.initializeClient(this.lastLoggedInUserData.user,this.lastLoggedInUserData.userOptions,this.lastLoggedInUserData.initializeClientToken,this.lastLoggedInUserData.autoLogin,"internal-sessionReLogin"))))}}),f=>{this.loggingService.catch("Error in AuthService sessionReLoginSubscription: ",f)}),this.getUser$().pipe(yo(cp)).subscribe(f=>{let g=_R(f);this.coreActionsService.triggerAction(Wi.USER_UPDATE,g),this.coreActionsService.triggerAction(Wi.INIT_UPDATE,{event:Wi.USER_UPDATE,payload:{user:g}})})}catch(f){this.loggingService.catch("Error in AuthService constructor: ",f)}}setApiKey(r,i){this.loggingService.log("%c[WB] Calling FUNCTION: setApiKey","color: green;",r);try{if(this.apiKey){this.loggingService.log("API key is already set");return}this.apiKey=r,this.configService.setApiKey(this.apiKey),i||(i=new yT),this.configService.initConfig(i);let o=this.configService.getProxyConfig();if(o?.authHost)try{let s=this.afAuth?.config;s&&(s.apiHost=o.authHost,s.tokenApiHost=o.authHost)}catch(s){this.loggingService.catch("Error setting auth proxy config: ",s)}else try{let s=this.afAuth?.config;s&&s.apiHost!=="identitytoolkit.googleapis.com"&&(s.apiHost="identitytoolkit.googleapis.com",s.tokenApiHost="securetoken.googleapis.com")}catch(s){this.loggingService.catch("Error resetting auth proxy config: ",s)}i.debugMode?sessionStorage.setItem("debugMode","true"):sessionStorage.removeItem("debugMode"),this.autoLoginCalled||fd(this.afAuth).pipe(En(1)).subscribe(s=>y(this,null,function*(){if(this.autoLoginCalled=!0,s){let a=yield Np(s,!0).catch(c=>null);if(a){let{user:c}=a?.claims;this.autoLoginRequired&&(c=yield this.updateUserWithColorAndTextColor(c),this.initializeClient(c,this.buildAutoLoginOptions(),new Date().getTime(),!0,"internal-autoLogin"))}}})),!this.portableAutoLoginCalled&&this.configService.getEnablePortableBackend()===!0&&(this.portableAutoLoginCalled=!0,this.portableAutoLoginInFlight=this.autoLoginPortableSession())}catch(o){this.loggingService.catch("Error in setApiKey: ",o)}}setUsersService(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: setUsersService","color: green;"),this.usersService=r}catch(i){this.loggingService.catch("Error in setUsersService: ",i)}}setUserPermissionService(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: setUserPermissionService","color: green;"),this.userPermissionService=r}catch(i){this.loggingService.catch("Error in setUserPermissionService: ",i)}}setDocService(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: setDocService","color: green;"),this.docService=r}catch(i){this.loggingService.catch("Error in setDocService: ",i)}}setContactService(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: setContactService","color: green;"),this.contactService=r}catch(i){this.loggingService.catch("Error in setContactService: ",i)}}setIamService(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: setIamService","color: green;"),this.iamService=r}catch(i){this.loggingService.catch("Error in setIamService: ",i)}}setCommentService(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: setCommentService","color: green;"),this.commentService=r}catch(i){this.loggingService.catch("Error in setCommentService: ",i)}}setCommonDbService(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: setCommonDbService","color: green;"),this.commonDbService=r}catch(i){this.loggingService.catch("Error in setCommonDbService: ",i)}}validateOrganizationId(r){if(this.isVersionGreaterThanOrEqualTo4()&&!r?.organizationId)if(this.analyticsService.trackEvent(St.Events.Core.SDK_VALIDATE_CLIENT_FAILED,{apiKey:this.apiKey,clientUserId:r.userId,snippylyUserId:r.userSnippylyId,message:"Organization Id is not set",forceReset:this.userOptions$.value?.forceReset,user:this.getUserForTelemetry(r)},!0,r.userSnippylyId),this.configService.getSF())this.loggingService.catch("OrganizationId is not set in Identify method",void 0,void 0,!0);else throw new Error("OrganizationId is not set in Identify method")}setVeltAuthProvider(r){return y(this,null,function*(){this.loggingService.log("%c[WB] Calling FUNCTION: setVeltAuthProvider","color: green;");try{this.onRetrySubscription?.unsubscribe(),this.authProviderListenerGeneration++;let i=null;if(!r.user)return null;r.generateToken&&typeof r.generateToken=="function"&&(i=yield r.generateToken());let o=yield ER(()=>window.Velt.identify(r.user,B(B({},r.options||{}),i&&{authToken:i}),{fromProvider:!0}).catch(s=>(r.onError&&typeof r.onError=="function"&&r.onError(s),Promise.reject(s))),r.retryConfig||{retryCount:0,retryDelay:0});return o&&r.generateToken&&typeof r.generateToken=="function"&&(this.onRetrySubscription=this.coreActionsService.onAction(Wi.ERROR).pipe(mn(s=>s.code==="token_expired"),En(10)).subscribe(s=>y(this,null,function*(){if(s.code==="token_expired"){let a=this.authProviderListenerGeneration,c=()=>a===this.authProviderListenerGeneration,l=this.docService?.getDocumentIds()?.map(I=>({id:I.clientDocumentId}))??[],d=this.docService?.getOptionsFromDocumentPaths()??void 0,h=[],f=this.docService?.getLocation();f&&h.push(f.location);let g=this.docService?.getLocations();if(g&&Object.values(g).forEach(I=>{h.push(I.location)}),(yield ER(()=>y(this,null,function*(){try{let I=yield r.generateToken?.();return c()&&I?window.Velt.identify(r.user,B(B({},r.options||{}),I&&{authToken:I}),{fromProvider:!0}):!0}catch{return!1}}),r.retryConfig||{retryCount:0,retryDelay:0}))&&c()){let I=this.docService?.getDocumentIds()?.map(V=>V.clientDocumentId)??[];L2(l.map(V=>V.id),I)&&(yield this.docService?.setDocuments({documents:l,options:d,source:"internal"}));let S=[],L=this.docService?.getLocation();L?.location?.id&&S.push(L.location.id),Object.values(this.docService?.getLocations()??{}).forEach(V=>{V?.location?.id&&S.push(V.location.id)}),L2(h.map(V=>V?.id).filter(Boolean),S)&&(yield this.docService?.setLocations({locations:h,source:"internal",options:{appendLocation:!f}}))}}}))),o}catch(i){return this.loggingService.catch("Error in setVeltAuthProvider: ",i),null}})}setUserToStorage(r){return y(this,null,function*(){try{if(r){let i=yield wT(r,r?.userId??"");localStorage.setItem(F.LOCAL_STORAGE.VELT_IDENTIFY_USER,i)}}catch(i){this.loggingService.catch("Error in setUserToStorage: ",i)}})}getUserFromStorage(r){return y(this,null,function*(){try{let i=localStorage.getItem(F.LOCAL_STORAGE.VELT_IDENTIFY_USER);return i?yield sp(i,r?.userId??""):null}catch(i){return this.loggingService.catch("Error in getUserFromStorage: ",i),null}})}setIsPrivateCommentsEnabled(r){try{this.isPrivateCommentsEnabled$.next(r)}catch(i){this.loggingService.catch("Error in setIsPrivateCommentsEnabled: ",i)}}getIsPrivateCommentsEnabled(){return this.isPrivateCommentsEnabled$.value}getIsPrivateCommentsEnabled$(){return this.isPrivateCommentsEnabled$.asObservable()}updateUserWithColorAndTextColor(r){return y(this,null,function*(){try{let i=JSON.parse(JSON.stringify(r??{})),o=yield this.getUserFromStorage(i);return!o||Object.keys(o).length===0?(delete i?.color,delete i?.textColor,i):(o?.color&&(i.color=o?.color),o?.textColor&&(i.textColor=o?.textColor),i)}catch(i){return this.loggingService.catch("Error in updateUserWithColorAndTextColor: ",i),r}})}updateUserIfRequired(r){return y(this,null,function*(){this.loggingService.log("%c[WB] Calling FUNCTION: updateUserIfRequired","color: green;");try{let i=yield this.getUserFromStorage(r),o={};r.color&&r.color!==i?.color&&(o.color=r.color),r.textColor&&r.textColor!==i?.textColor&&(o.textColor=r.textColor),Object.keys(o).length>0&&r.clientOrganizationId&&this.docService?.addUserInfoToOrganization({organizationId:r.clientOrganizationId,user:me(B({},o),{userId:r.userId})})}catch(i){this.loggingService.catch("Error in updateUserIfRequired: ",i)}})}initializeClient(r,i,o,s,a){return y(this,null,function*(){try{if(this.autoLoginRequired=!1,this.portableResumeUserId=null,this.userOptions$.next(i),this.initializeClientToken)this.pendingUserLogin=r,this.pendingUserLoginSource=a;else{r.userSnippylyId=VV(this.configService.getApiKey(),r.userId),this.pendingUserLogin=void 0,this.pendingUserLoginSource=void 0,this.initializeClientToken=o;let c=this.portableSessionEpoch,l=this.portableLocalSessionEnds,d=yield fd(this.afAuth).pipe(En(1)).toPromise().catch(E=>null),h=!0;this.providedUser=JSON.parse(JSON.stringify(r));let f=!d&&s?this.takePendingPortableRestore(r,i):null,g=f?.envelope??null;if(g){if(this.loggingService.log("%c[WB] Calling FUNCTION: restorePortableSession","color: green;"),this.validateOrganizationId(r),!(yield this.applyIdentifyResponse(r,g.res,s)))return;h=!1,this.trackAutoAuthSuccess(r,a)}else if(!d&&s&&a==="internal-autoLogin"&&this.configService?.getEnablePortableBackend()===!0)return f?.resume?(Wn("session.resume-skipped",f.overtaken?"overtaken":"not restorable"),this.loggingService.log("Velt [portable backend]: not following the session another page saved; waiting for identify().")):f?.overtaken?(Wn("session.restore-discarded"),this.loggingService.log("Velt [portable backend]: discarding a reload restore that a sign-out or a new identify overtook."),this.clearPersistedPortableSessionIfUnchanged(f.raw)):(this.loggingService.log("Velt [portable backend]: nothing restorable on reload; waiting for identify()."),this.clearPersistedPortableSession()),this.initializeClientToken=0,this.checkForPendingLogin(),null;if(d){let E=yield Np(d,!0).catch(V=>null);if(!E)return;let{user:I,firebaseConfig:S,advancedQueries:L}=E.claims;LN({userSnippylyId:d?.uid,groupId:I?.groupId,organizationId:I?.organizationId},r,i)||!s&&r?.organizationId&&!this.forceReLoggedIn||this.forceReLoginRequiredForAdvancedQueries(r)||this.forceReLoginRequiredForRegion(r,S)||this.forceReLoginRequiredForCommentViews(r)?(localStorage.setItem(F.LOCAL_STORAGE.VELT_USER_FORCE_RE_LOGGED_IN,"true"),localStorage.setItem(F.LOCAL_STORAGE.VELT_COMMENT_VIEWS_MIGRATED,"true"),this.forceReLoggedIn=!0,yield this.signOutUser("internal"),c=this.portableSessionEpoch,l=this.portableLocalSessionEnds):(this.loggingService.log("%c[WB] Calling FUNCTION: reinitializeCurrentUser","color: green;"),this.loggingService.log("Keeping user"),yield this.updateUserIfRequired(r),this.validateOrganizationId(r),this.setFirebaseConfig(S),this.setAdvancedQueries(L),I&&(this.providedUser.isAdmin=!!I.isAdmin),this.initializeSignedInUser(d,s,r),h=!1,this.trackAutoAuthSuccess(r,a))}else if(h&&c===this.portableSessionEpoch&&this.isPortableIdentityChange(r,i)){let E=this.signOutUser("internal");c=this.portableSessionEpoch,l=this.portableLocalSessionEnds,yield E}if(h){this.analyticsService.trackEvent(St.Events.Core.SDK_VALIDATE_CLIENT_TRIGGERED,{apiKey:this.apiKey,clientUserId:r.userId,snippylyUserId:r.userSnippylyId,forceReset:this.userOptions$.value?.forceReset,user:this.getUserForTelemetry(r),source:a},!0,r.userSnippylyId,r.userId);let E=yield this.requestIdentify(r,i?.authToken);if(E.error){if(this.analyticsService.trackEvent(St.Events.Core.SDK_VALIDATE_CLIENT_FAILED,me(B({apiKey:this.apiKey,clientUserId:r.userId,snippylyUserId:r.userSnippylyId,message:E.error,forceReset:this.userOptions$.value?.forceReset,user:this.getUserForTelemetry(r)},E),{source:a}),!0,r.userSnippylyId,r.userId),E.error&&typeof E.error=="string")if(this.isTokenExpiredIdentifyError(E))this.emitIdentifyTokenExpiredError(E,r,a);else{let S=E;this.coreActionsService.triggerAction(Wi.ERROR,S)}throw E}else this.tokenExpiredErrorCount=0;if(this.shouldHandlePortableBackend(E)&&this.isPortableIdentifyOvertaken(c,l,s))return this.loggingService.log("Velt [portable backend]: discarding an identify response that a sign-out overtook."),this.initializeClientToken=0,this.checkForPendingLogin(),null;if(this.shouldHandlePortableBackend(E)&&c!==this.portableSessionEpoch&&(this.autoLoginRequired=!1,this.portableResumeUserId=null),this.analyticsService.trackEvent(St.Events.Core.SDK_VALIDATE_CLIENT_SUCCESS,{apiKey:this.apiKey,clientUserId:r.userId,snippylyUserId:r.userSnippylyId,forceReset:this.userOptions$.value?.forceReset,user:this.getUserForTelemetry(r),source:a},!0,r.userSnippylyId,r.userId),this.validateOrganizationId(r),!(yield this.applyIdentifyResponse(r,E,s)))return}this.initializeClientToken=0,this.lastLoggedInUserData={user:r,userOptions:i,initializeClientToken:o,autoLogin:s},this.checkForPendingLogin()}return r}catch(c){return this.initializeClientToken=0,this.checkForPendingLogin(),this.loggingService.catch("Error in initializeClient: ",c),i?.throwError?Promise.reject(c):Promise.resolve(null)}})}isPortableIdentifyOvertaken(r,i,o){let s=this.portableSessionEpoch-r;return o?s!==0:s!==this.portableLocalSessionEnds-i}isPortableIdentityChange(r,i){try{if(!this.portableAuthUser$.value)return!1;let o=this.portableSessionIdentity?.user??this.user$.value;return o?LN(o,r,i):!1}catch(o){return this.loggingService.catch("Error in isPortableIdentityChange: ",o),!1}}isVersionGreaterThanOrEqualTo4(){try{let r=xc();return(r?parseInt(r.split(".")?.[0]||"0"):0)>=4}catch(r){return this.loggingService.catch("Error in isVersionGreaterThanOrEqualTo4: ",r),!1}}isVersion4Point5(){try{let r=xc();if(r){let i=r.split("."),o=parseInt(i[0]||"0"),s=parseInt(i[1]||"0"),a=parseInt(i[2]||"0");if(o>=4&&s>=5)return o===4&&s===5&&a===0?!r.toLowerCase().includes("beta"):!0}return!1}catch(r){return this.loggingService.catch("Error in isVersion4Point5: ",r),!1}}forceReLoginRequiredForAdvancedQueries(r){try{let i=this.isVersionGreaterThanOrEqualTo4(),o=!1;try{let s=localStorage.getItem(F.LOCAL_STORAGE.VELT_ADVANCED_QUERIES);s&&(o=JSON.parse(s)?.advancedQueriesEnabled)}catch(s){this.loggingService.catch("Error in forceReLoginRequiredForAdvancedQueries: ",s)}return!!(i&&r.organizationId&&!o)}catch(i){return this.loggingService.catch("Error in forceReLoginRequiredForAdvancedQueries: ",i),!1}}forceReLoginRequiredForCommentViews(r){try{let i=this.isVersion4Point5(),o=!1;try{let s=localStorage.getItem(F.LOCAL_STORAGE.VELT_COMMENT_VIEWS_MIGRATED);s&&(o=JSON.parse(s))}catch(s){this.loggingService.catch("Error in forceReLoginRequiredForCommentViews: ",s)}return!!(i&&r.organizationId&&!o)}catch(i){return this.loggingService.catch("Error in forceReLoginRequiredForCommentViews: ",i),!1}}forceReLoginRequiredForRegion(r,i){try{return!!(this.isVersionGreaterThanOrEqualTo4()&&r.organizationId&&!i?.region)}catch(o){return this.loggingService.catch("Error in forceReLoginRequiredForRegion: ",o),!1}}checkForPendingLogin(){this.pendingUserLogin&&this.initializeClient(this.pendingUserLogin,this.userOptions$?.value||{},new Date().getTime(),void 0,this.pendingUserLoginSource)}setFirebaseConfig(r){this.loggingService.log("%c[WB] Calling FUNCTION: setFirebaseConfig","color: green;");try{this.firebaseConfig$.value||this.firebaseConfig$.next({firebaseOptions:B(B({},this.endpointsService.getFirebaseConfig()),r)})}catch(i){this.loggingService.catch("Error in setFirebaseConfig: ",i)}}requestIdentify(r,i){return y(this,null,function*(){let o=xc();this.usersService?.userResolverConfigured?.()&&(r=IR(r));let s=this.endpointsService.getPortableIdentifyUrl();return s?jG({url:s,apiKey:this.apiKey,user:r,version:o,authToken:i}):(yield gd(this.functions,sd({url:this.endpointsService.getCloudFunctionUrl("validateClient"),apiProxyDomain:this.configService?.getApiProxyDomain()}),{timeout:1200*1e3})({apiKey:this.apiKey,user:r,version:o,authToken:i}))?.data})}requestPortableRefresh(r){return y(this,null,function*(){let i=this.endpointsService.getPortableIdentifyUrl();return!i||Pc(i)?RN("the portable identify URL is not configured; the renewal credential was not sent"):WG({url:$G(i,"refresh"),apiKey:this.apiKey,refreshToken:r,timeoutMs:BG()})})}reportPortableRefreshMisconfigured(r){try{let i=String(r?.code??"unknown");if(this.reportedPortableRefreshCodes.has(i))return;if(this.reportedPortableRefreshCodes.add(i),i===e.PORTABLE_NO_CREDENTIAL_ENVELOPE.code){console.error("Velt [portable backend]: this session has no renewal credential for the configured gateway (the identify answer carried no refreshToken, or selfHosted.portableBackendUrl changed after sign-in), so it cannot be renewed: it is signed out and the app must identify() again. Every identify answer from portable-v0.1.6 or later carries one.");return}let o=r?.message?` (${r.message})`:"";console.error(i==="invalid-argument"?`Velt [portable backend]: the gateway rejected the session renewal as malformed: invalid-argument${o}. The SDK and gateway versions disagree on /identify/refresh; renewal is stopped for this session.`:`Velt [portable backend]: the gateway refused the session renewal: ${i}${o}. A deployment setting is wrong (the allowed origins, or the identify configuration for this API key). Renewal is stopped for this session; after the setting is fixed, a reload renews from the saved session.`)}catch{}}emitIdentifyTokenExpiredError(r,i,o){if(this.tokenExpiredErrorCount++,this.tokenExpiredErrorCount<=this.TOKEN_EXPIRED_ERROR_COUNT_LIMIT){let s={code:"token_expired",message:"Token expired",error:r?.error,source:r?.source};this.coreActionsService.triggerAction(Wi.ERROR,s)}else{let s={code:"too_many_retries",message:"Token expired. Too many retries.",error:r?.error,source:r?.source};this.coreActionsService.triggerAction(Wi.ERROR,s),this.analyticsService.trackEvent(St.Events.Core.SDK_JWT_EXPIRED_RETRY_EXCEEDED,{apiKey:this.apiKey,clientUserId:i.userId,snippylyUserId:i.userSnippylyId,forceReset:this.userOptions$.value?.forceReset,source:o},!0,i.userSnippylyId,i.userId)}}isTokenExpiredIdentifyError(r){try{return r?.code==="token_expired"||!!r?.error?.toLowerCase?.()?.includes("token expired")}catch{return!1}}shouldHandlePortableBackend(r){try{return this.configService?.getEnablePortableBackend()===!0&&r2(r)}catch(i){return this.loggingService.catch("Error in shouldHandlePortableBackend: ",i),!1}}applyIdentifyResponse(r,i,o){return y(this,null,function*(){if(this.shouldHandlePortableBackend(i)){this.portableSessionEpoch++;let s=this.portableSessionEpoch,a=Xc(i),c=a?this.endpointsService.getPortableIdentifyUrl()??void 0:void 0;this.portableSessionIdentity=B({user:r,epoch:s},a?{refreshToken:a,refreshTokenIssuer:c}:{}),this.portableSessionStartedAt=Date.now();let l=this.handlePortableBackendResponse(i);if(this.planDetails$.value||(this.getPlanDetailsCalled=!0,this.portablePlanSeeded=!0,this.planDetails$.next({planInfo:null,isPlanExpired:!1})),yield this.applyPortableProjectConfig(i),s!==this.portableSessionEpoch)return Wn("session.adopt-discarded"),this.loggingService.log("Velt [portable backend]: discarding a portable sign-in that a sign-out or a new identify overtook."),!0;let d=this.initializePortableSignedInUser(r,i);d&&this.probeIdentifyPermissionWhenPortableReady(d,s,l)}else if(i.firebaseConfig){this.clearPortableBackendState(),this.setFirebaseConfig(i.firebaseConfig),yield this.signInWithCustomToken(r,i.token),this.loggingService.log("new signed in user",this.afAuth.currentUser);let s=yield Np(this.afAuth.currentUser,!0).catch(l=>null);if(!s)return!1;let{user:a,advancedQueries:c}=s.claims;this.setAdvancedQueries(c),this.providedUser.isAdmin=!!a?.isAdmin,this.initializeSignedInUser(this.afAuth.currentUser,o,r)}return!0})}applyPortableProjectConfig(r){return y(this,null,function*(){try{let i=yield MN({apiEndpoint:r?.apiEndpoint,token:r?.token});if(!i)return;this.applyProjectConfig(i)}catch(i){this.loggingService.catch("Error in applyPortableProjectConfig: ",i)}})}applyProjectConfig(r){this.setIsPrivateCommentsEnabled(!!r?.isPrivateCommentsEnabled);let i=r?.activityConfig??{immutable:!1,isEnabled:!1};this.cachedActivityConfig=i,this.activityService?.setActivityFeatureConfig(i)}handlePortableBackendResponse(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: handlePortableBackendResponse","color: green;"),this.portableBackend$.next({backend:r?.backend,wsEndpoint:r?.wsEndpoint,apiEndpoint:r?.apiEndpoint});let i=i2({backend:r?.backend,token:r?.token??null,wsEndpoint:r?.wsEndpoint,apiEndpoint:r?.apiEndpoint});return this.portableChunkReady=i,this.schedulePortableTokenRefresh(r?.token??null),i}catch(i){return this.loggingService.catch("Error in handlePortableBackendResponse: ",i),null}}schedulePortableTokenRefresh(r){try{if(this.clearPortableTokenRefresh(),this.portableToken=r,!r)return;this.portableRefreshFailures=0,this.portableRefreshFailuresPastExpiry=0;let i=JG(wp(r),Date.now());if(i!==null?this.armPortableRefreshTimer(i,"expiry"):this.loggingService.log("Velt [portable backend]: no proactive token refresh scheduled (token expiry unreadable or already past)."),typeof document<"u"&&typeof document.addEventListener=="function"){this.portableVisibilityHandler=o=>{try{let s=ON(this.portableToken,Date.now());if(Wn(`page.${o?.type??"lifecycle"}`,`visibility=${typeof document<"u"?document.visibilityState:"?"} credentialExpired=${s}`),o?.type==="pageshow"&&o.persisted===!1)return;s?this.refreshPortableToken("focus"):this.checkPortableSessionAgainstStorage(`page.${o?.type??"lifecycle"}`),s2()}catch{}};for(let o of e.PORTABLE_DOCUMENT_LIFECYCLE_EVENTS)document.addEventListener(o,this.portableVisibilityHandler);typeof window<"u"&&typeof window.addEventListener=="function"&&window.addEventListener("pageshow",this.portableVisibilityHandler)}this.armPortableStorageListener()}catch(i){this.loggingService.catch("Error scheduling portable token refresh: ",i)}}readStoredPortableSessionRaw(){try{return localStorage.getItem(F.LOCAL_STORAGE.VELT_PORTABLE_SESSION)}catch{return}}readPortableSavedSession(r){return y(this,null,function*(){try{let i;try{i=localStorage.getItem(F.LOCAL_STORAGE.VELT_PORTABLE_SESSION)}catch{return{verdict:"persist"}}if(!i){let a=this.readPortableSignOutAt();return{verdict:a!==null&&a>=this.portableSessionStartedAt?"stop":"persist"}}if(i===this.portableSavedSessionRaw)return{verdict:"persist"};let o=null;try{o=yield sp(i,this.apiKey??"")}catch{o=null}return o?.v!==1||o?.apiKey!==this.apiKey||!o?.user?.userId?{verdict:"renew-only"}:o.user.userId!==r?{verdict:"stop"}:{verdict:"persist",sharedRefreshToken:(o?.portableBackendUrl??null)===(this.configService?.getSelfHostedConfig?.()?.portableBackendUrl??null)?Xc(o?.res):void 0}}catch(i){return this.loggingService.catch("Error in AuthService readPortableSavedSession: ",i),{verdict:"persist"}}})}recordPortableSignOut(){try{if(!this.apiKey)return;let r={};try{let i=JSON.parse(localStorage.getItem(F.LOCAL_STORAGE.VELT_PORTABLE_SIGNED_OUT)??"{}");i&&typeof i=="object"&&!Array.isArray(i)&&(r=i)}catch{r={}}r[this.apiKey]=Date.now(),localStorage.setItem(F.LOCAL_STORAGE.VELT_PORTABLE_SIGNED_OUT,JSON.stringify(r))}catch{}}armPortableRefreshTimer(r,i){this.cancelPortableRefreshTimer(),this.portableRefreshTimer=setTimeout(()=>this.refreshPortableToken(i),r)}cancelPortableRefreshTimer(){this.portableRefreshTimer&&(clearTimeout(this.portableRefreshTimer),this.portableRefreshTimer=null)}readPortableSignOutAt(){try{let r=JSON.parse(localStorage.getItem(F.LOCAL_STORAGE.VELT_PORTABLE_SIGNED_OUT)??"null"),i=r&&this.apiKey?r[this.apiKey]:void 0;return typeof i=="number"&&Number.isFinite(i)?i:null}catch{return null}}clearPortableTokenRefresh(){try{if(this.cancelPortableRefreshTimer(),this.portableVisibilityHandler&&typeof document<"u")for(let r of e.PORTABLE_DOCUMENT_LIFECYCLE_EVENTS)document.removeEventListener(r,this.portableVisibilityHandler);this.portableVisibilityHandler&&typeof window<"u"&&typeof window.removeEventListener=="function"&&window.removeEventListener("pageshow",this.portableVisibilityHandler),this.portableVisibilityHandler=null,this.portableStorageHandler&&typeof window<"u"&&typeof window.removeEventListener=="function"&&window.removeEventListener("storage",this.portableStorageHandler),this.portableStorageHandler=null}catch{}}refreshPortableToken(r){return y(this,null,function*(){let i=this.portableSessionEpoch;if(this.portableRefreshInFlightEpoch!==i){this.portableRefreshInFlightEpoch=i;try{let o=this.portableSessionIdentity,s=o?.user;if(!o||o.epoch!==i||!s?.userId||!this.portableBackend$.value)return;if(this.portableRenewalStopped?.epoch===i){Wn("credential.refresh-skipped",`${this.portableRenewalStopped.reason}; waiting for identify()`);return}let a=yield this.readPortableSavedSession(s.userId);if(i!==this.portableSessionEpoch)return;if(a.verdict==="stop"){this.endPortableSessionFromAnotherPage(s,`refresh:${r}`);return}let c=a.sharedRefreshToken,l=this.endpointsService.getPortableIdentifyUrl()??void 0;c&&l&&this.portableSessionIdentity&&c!==this.portableSessionIdentity.refreshToken&&(Wn("credential.shared-adopted"),this.portableSessionIdentity=me(B({},this.portableSessionIdentity),{refreshToken:c,refreshTokenIssuer:l}));let d=this.portableSessionIdentity??o,h=d.refreshToken&&d.refreshTokenIssuer===l?d.refreshToken:void 0;if(!h){this.reportPortableRefreshMisconfigured(e.PORTABLE_NO_CREDENTIAL_ENVELOPE),this.endPortableSessionForDeadCredential(s,e.PORTABLE_NO_CREDENTIAL_ENVELOPE,r);return}this.loggingService.log(`Velt [portable backend]: refreshing the gateway credential (${r}).`),Wn("credential.refresh-requested",`reason=${r} via=refresh`);let f=yield this.requestPortableRefresh(h);if(i!==this.portableSessionEpoch){Wn("credential.refresh-discarded",`reason=${r}`),this.loggingService.log("Velt [portable backend]: discarding a credential refresh that a sign-out or a new identify overtook.");return}if(!this.shouldHandlePortableBackend(f)||!f?.token){if(f?.code===NN){this.endPortableSessionForDeadCredential(s,f,r);return}if(wN.has(f?.code)){Wn("credential.refresh-misconfigured",`code=${f?.code}`),this.portableRenewalStopped={epoch:i,reason:`renewal refused: ${f?.code}`},this.cancelPortableRefreshTimer(),this.reportPortableRefreshMisconfigured(f);return}this.portableRefreshFailures++,this.portableRefreshFailures>=e.PORTABLE_REFRESH_WARN_AFTER_FAILURES&&this.reportPortableRefreshFailing(f,i);let S=Date.now();ON(this.portableToken,S)&&this.portableRefreshFailuresPastExpiry++,this.armPortableRefreshTimer(ZG(wp(this.portableToken),S,this.portableRefreshFailuresPastExpiry),r);return}let g=this.readStoredPortableSessionRaw(),E=yield this.readPortableSavedSession(s.userId);if(i!==this.portableSessionEpoch){Wn("credential.refresh-discarded",`reason=${r}`);return}if(E.verdict==="stop"){this.endPortableSessionFromAnotherPage(s,`refresh-answered:${r}`);return}Wn("credential.refreshed"),this.handlePortableBackendResponse(f);let I=Xc(f)??h;this.portableSessionIdentity?.epoch===i&&(this.portableSessionIdentity=me(B({},this.portableSessionIdentity),{refreshToken:I,refreshTokenIssuer:l})),E.verdict==="persist"&&this.persistPortableSession(s,me(B({},f),{refreshToken:I}),{expectStoredRaw:g})}catch(o){this.loggingService.catch("Error refreshing portable token: ",o)}finally{this.portableRefreshInFlightEpoch===i&&(this.portableRefreshInFlightEpoch=null)}}})}reportPortableRefreshFailing(r,i){try{if(this.portableRefreshWarnedEpoch===i)return;this.portableRefreshWarnedEpoch=i,console.warn(`Velt [portable backend]: could not renew the gateway credential (${this.portableRefreshFailures} attempts in a row${r?.code?`, last: ${r.code}`:""}). The SDK keeps retrying \u2014 every 30 s while the current token is valid; once it has expired, after 30 s, doubling up to every 16 minutes, and each time the page becomes active again \u2014 and the realtime session is unavailable from the moment the token expires until a renewal succeeds. Check that the gateway's /identify/refresh endpoint is reachable and the API key is enabled.`)}catch{}}endPortableSessionForDeadCredential(r,i,o){Wn("credential.refresh-credential-invalid",`reason=${o}`),this.portableSavedSessionRaw&&this.clearPersistedPortableSessionIfUnchanged(this.portableSavedSessionRaw),this.endPortableSessionLocally(r),this.emitIdentifyTokenExpiredError(i,r,"internal-portableRefresh")}endPortableSessionFromAnotherPage(r,i){Wn("session.ended-elsewhere",i),this.loggingService.log("Velt [portable backend]: another page signed out or signed in another user; this page's session ends too."),this.endPortableSessionLocally(r)}checkPortableSessionAgainstStorage(r){return y(this,null,function*(){try{let i=this.portableSessionEpoch,o=this.portableSessionIdentity;if(!o||o.epoch!==i||!o.user?.userId)return;let{verdict:s}=yield this.readPortableSavedSession(o.user.userId);s==="stop"&&i===this.portableSessionEpoch&&this.endPortableSessionFromAnotherPage(o.user,r)}catch(i){this.loggingService.catch("Error checking the portable session against storage: ",i)}})}armPortableStorageListener(){try{if(this.portableStorageHandler||typeof window>"u"||typeof window.addEventListener!="function")return;this.portableStorageHandler=r=>{try{let i=r?.key;if(i!==null&&i!==F.LOCAL_STORAGE.VELT_PORTABLE_SESSION&&i!==F.LOCAL_STORAGE.VELT_PORTABLE_SIGNED_OUT)return;this.portableSessionIdentity?this.checkPortableSessionAgainstStorage("storage"):this.portableResumeUserId&&this.resumePortableSessionFromAnotherPage()}catch{}},window.addEventListener("storage",this.portableStorageHandler)}catch(r){this.loggingService.catch("Error arming the portable storage listener: ",r)}}resumePortableSessionFromAnotherPage(){let r=this.portableResumeUserId;!r||this.portableSessionIdentity||this.initializeClientToken||!this.autoLoginRequired||this.configService?.getEnablePortableBackend()!==!0||(this.portableAutoLoginInFlight=this.portableAutoLoginInFlight.then(()=>this.autoLoginPortableSession({onlyUserId:r})).catch(()=>{}))}initializePortableSignedInUser(r,i){try{if(this.loggingService.log("%c[WB] Calling FUNCTION: initializePortableSignedInUser","color: green;"),!i?.token)return this.portableAuthUser$.value&&(this.userPermissionService?.invalidateAllPermissionsState(),this.releaseLiveUserSession("clear")),null;let o=new zi;o.type="signedIn",o=B(B({},o),r),PN(o,{provided:me(B({},r),{isAdmin:QG(i?.token)}),avatarColor:a=>this.getUserAvatarColor(a),textColor:a=>this.getUserTextColor(a)}),this.setUserToStorage(o),this.persistPortableSession(o,i);let s=Object.assign({},o);return delete s.contacts,this.analyticsService.identifyUser(o.userSnippylyId,s,{forceReset:this.userOptions$.value?.forceReset}),this.user$.next(o),this.portableAuthUser$.next({uid:o.userSnippylyId}),o}catch(o){return this.loggingService.catch("Error in initializePortableSignedInUser: ",o),null}}clearPortableBackendState(){try{this.portableSignOutOwnsEpochBump||this.portableSessionEpoch++,this.releasePortableSession({clearStorage:!0})}catch(r){this.loggingService.catch("Error clearing portable backend state: ",r)}}releaseLiveUserSession(r){this.resetServicesCache(),this.user$.next(null),r==="local"?this.releasePortableSession({clearStorage:!1}):this.clearPortableBackendState()}releasePortableSession(r){this.portablePlanSeeded&&(this.portablePlanSeeded=!1,this.getPlanDetailsCalled=!1,this.planDetails$.next(null)),this.pendingPortableRestore=null,this.portableSessionIdentity=null,r.clearStorage&&(this.portableAutoLoginCalled||this.configService?.getEnablePortableBackend()===!0)&&this.clearPersistedPortableSession(),!(!this.portableBackend$.value&&!this.portableAuthUser$.value)&&(this.clearPortableTokenRefresh(),this.portableToken=null,this.portableChunkReady=null,this.portableRefreshFailures=0,this.portableRefreshFailuresPastExpiry=0,this.portableBackend$.next(null),this.portableAuthUser$.next(null),this.user$.next(null),o2())}endPortableSessionLocally(r){try{this.userPermissionService?.invalidateAllPermissionsState(),this.portableSessionEpoch++,this.portableLocalSessionEnds++,this.releaseLiveUserSession("local"),this.autoLoginRequired=!0,this.portableResumeUserId=r?.userId??null,this.armPortableStorageListener()}catch(i){this.loggingService.catch("Error ending the portable session: ",i)}}trackAutoAuthSuccess(r,i){this.analyticsService.trackEvent(St.Events.Core.SDK_USER_AUTH_SUCCESS,{apiKey:this.apiKey,clientUserId:r.userId,snippylyUserId:r.userSnippylyId,authType:"auto",forceReset:this.userOptions$.value?.forceReset,user:this.getUserForTelemetry(r),source:i})}buildAutoLoginOptions(){return this.userOptions$?.value?me(B({},this.userOptions$.value),{replaceContacts:!1,replaceGroupContacts:!1,replacePrivateContacts:!1}):{}}persistPortableSession(r,i,o){let s=this.portableSessionEpoch;return this.portablePersistInFlight=this.portablePersistInFlight.then(()=>this.writePortableSessionEnvelope(r,i,s,o?.expectStoredRaw)).catch(()=>{}),this.portablePersistInFlight}writePortableSessionEnvelope(r,i,o,s){return y(this,null,function*(){try{if(!i?.token||!r?.userId||!this.apiKey)return;let a=this.user$.value;if(a?.userSnippylyId&&r.userSnippylyId&&a.userSnippylyId!==r.userSnippylyId)return;let c=this.getUserWithoutContacts(r);if(!c)return;let l={v:1,apiKey:this.apiKey,portableBackendUrl:this.configService?.getSelfHostedConfig?.()?.portableBackendUrl??null,user:c,res:B({backend:i.backend,wsEndpoint:i.wsEndpoint,apiEndpoint:i.apiEndpoint,token:i.token},Xc(i)?{refreshToken:Xc(i)}:{})},d=yield wT(l,this.apiKey);if(o!==this.portableSessionEpoch){this.loggingService.log("Velt [portable backend]: dropping a session envelope write that a sign-out or a new identify overtook.");return}if(s!==void 0&&localStorage.getItem(F.LOCAL_STORAGE.VELT_PORTABLE_SESSION)!==s){this.loggingService.log("Velt [portable backend]: not re-persisting a refreshed credential \u2014 another page changed the saved session meanwhile.");return}let h=this.readPortableSignOutAt();if(h!==null&&h>this.portableSessionStartedAt){this.loggingService.log("Velt [portable backend]: not persisting the session \u2014 another page signed out after it began.");return}typeof d=="string"&&!d.startsWith("{")&&d!==JSON.stringify(l)&&(localStorage.setItem(F.LOCAL_STORAGE.VELT_PORTABLE_SESSION,d),this.portableSavedSessionRaw=d)}catch(a){this.loggingService.catch("Error in writePortableSessionEnvelope: ",a)}})}readPersistedPortableSession(){return y(this,null,function*(){try{let r=localStorage.getItem(F.LOCAL_STORAGE.VELT_PORTABLE_SESSION);if(!r)return null;let i=yield sp(r,this.apiKey??"");return i?i.v!==1||i.apiKey!==this.apiKey||!i.user?.userId||!i.res?.token?(this.clearPersistedPortableSession(),null):(this.portableSavedSessionRaw=r,{envelope:i,raw:r}):null}catch(r){return this.loggingService.catch("Error in readPersistedPortableSession: ",r),null}})}clearPersistedPortableSession(){this.portableSavedSessionRaw=null;try{localStorage.removeItem(F.LOCAL_STORAGE.VELT_PORTABLE_SESSION)}catch{}}clearPersistedPortableSessionIfUnchanged(r){try{r&&localStorage.getItem(F.LOCAL_STORAGE.VELT_PORTABLE_SESSION)===r&&this.clearPersistedPortableSession()}catch{}}isPortableTokenNearExpiry(r){let i=wp(r);return i===null||i-Date.now()<=bN}isPortableRestoreConfigured(){try{let r=this.endpointsService?.getPortableIdentifyUrl?.();return this.configService?.getEnablePortableBackend()===!0&&!!r&&!Pc(r)}catch{return!1}}isRestorablePortableSession(r,i,o){try{if(!this.isPortableRestoreConfigured()||o?.forceReset||r.portableBackendUrl!==(this.configService?.getSelfHostedConfig?.()?.portableBackendUrl??null)||!zc(r.res?.apiEndpoint)||r.user?.userSnippylyId!==i?.userSnippylyId)return!1;let s=this.user$.value;return s?.userSnippylyId&&s.userSnippylyId!==r.user.userSnippylyId||this.isPortableTokenNearExpiry(r.res.token)?!1:this.shouldHandlePortableBackend(r.res)}catch(s){return this.loggingService.catch("Error in isRestorablePortableSession: ",s),!1}}takePendingPortableRestore(r,i){let o=this.pendingPortableRestore;if(this.pendingPortableRestore=null,!o)return null;let s=o.resume===!0;return o.epoch!==this.portableSessionEpoch?{envelope:null,overtaken:!0,raw:o.raw,resume:s}:{envelope:this.isRestorablePortableSession(o.envelope,r,i)?o.envelope:null,overtaken:!1,raw:o.raw,resume:s}}autoLoginPortableSession(r){return y(this,null,function*(){let i=this.portableSessionEpoch,o=()=>i!==this.portableSessionEpoch||!this.autoLoginRequired,s=!!r?.onlyUserId;try{let a=yield this.readPersistedPortableSession(),c=a?.envelope;if(!a||!c||o()||s&&c.user?.userId!==r?.onlyUserId)return;if(!this.isPortableRestoreConfigured()){s||this.clearPersistedPortableSession();return}if(c.portableBackendUrl!==(this.configService?.getSelfHostedConfig?.()?.portableBackendUrl??null)){s||(this.loggingService.log("Velt [portable backend]: the persisted session belongs to a different gateway; dropped."),this.clearPersistedPortableSession());return}let l=c;if(this.isPortableTokenNearExpiry(c.res.token)){let h=Xc(c.res);if(!h){this.loggingService.log("Velt [portable backend]: the persisted session has no renewal credential; waiting for identify()."),this.clearPersistedPortableSessionIfUnchanged(a.raw);return}Wn("credential.restore-renew","via=refresh");let f=yield this.requestPortableRefresh(h);if(o())return;if(!this.shouldHandlePortableBackend(f)||!f?.token){if(f?.code==="network_error"){this.loggingService.log("Velt [portable backend]: could not reach the gateway to renew the persisted session; keeping it for the next attempt.");return}if(wN.has(f?.code)&&this.reportPortableRefreshMisconfigured(f),f?.code!==NN){this.loggingService.log(`Velt [portable backend]: the persisted session's renewal was refused for now (${f?.code??"no code"}); keeping it for the next attempt.`);return}this.loggingService.log("Velt [portable backend]: the persisted session could not be renewed on reload; waiting for identify()."),this.clearPersistedPortableSessionIfUnchanged(a.raw);return}let g=Xc(f)??h;l=me(B({},c),{res:{backend:f.backend,wsEndpoint:f.wsEndpoint,apiEndpoint:f.apiEndpoint,token:f.token,refreshToken:g}})}if(o())return;this.pendingPortableRestore=B({envelope:l,epoch:i,raw:a.raw},s?{resume:!0}:{});let d=this.buildAutoLoginOptions();s&&delete d.forceReset,yield this.initializeClient(B({},l.user),d,new Date().getTime(),!0,"internal-autoLogin")}catch(a){this.loggingService.catch("Error in autoLoginPortableSession: ",a)}finally{this.pendingPortableRestore=null}})}getPortableBackend(){return this.portableBackend$.value}getFirebaseConfig$(){return this.loggingService.log("%c[WB] Calling FUNCTION: getFirebaseConfig","color: green;"),this.firebaseConfig$.asObservable()}getFirebaseConfig(){return this.loggingService.log("%c[WB] Calling FUNCTION: getFirebaseConfig","color: green;"),this.firebaseConfig$.value}setAdvancedQueries(r){this.loggingService.log("%c[WB] Calling FUNCTION: setAdvancedQueries","color: green;");try{r&&typeof r=="object"&&localStorage.setItem(F.LOCAL_STORAGE.VELT_ADVANCED_QUERIES,JSON.stringify(r)),this.advancedQueries$.next(r)}catch(i){this.loggingService.catch("Error in setAdvancedQueries: ",i)}}getAdvancedQueries$(){return this.loggingService.log("%c[WB] Calling FUNCTION: getAdvancedQueries$","color: green;"),this.advancedQueries$.asObservable()}getAdvancedQueries(){return this.loggingService.log("%c[WB] Calling FUNCTION: getAdvancedQueries","color: green;"),this.advancedQueries$.value}getAdvancedQueriesEnabled(r){try{return!this.configService.getConfig()?.advancedQueriesDisabled&&(r||!!this.getAdvancedQueries()?.advancedQueriesEnabled)}catch(i){return this.loggingService.catch("Error in getAdvancedQueriesEnabled: ",i),!1}}signOutPreviousUser(){return this.signOutPreviousUser$.asObservable()}getUser(){return this.loggingService.log("%c[WB] Calling FUNCTION: getUser","color: green;"),this.afAuth?.currentUser||this.portableAuthUser$.value?this.user$.value:null}getProvidedOrCurrentUserId(){try{return this.providedUser?.userId??this.user$.value?.userId??void 0}catch(r){this.loggingService.catch("Error in getProvidedOrCurrentUserId: ",r);return}}scheduleLoggedInUserResolveRetry(r,i){return y(this,null,function*(){try{if(!r||this.loggedInUserResolveRetryInFlightUserId===r)return;this.loggedInUserResolveRetryInFlightUserId=r;let o=this.loggedInUserResolveRetryDelaysMs;for(let s=0;s<o.length;s++){if(yield new Promise(l=>setTimeout(l,o[s])),(this.providedUser?.userId??this.user$.value?.userId)!==r)return;let a=yield this.usersService?.resolveUsers({userIds:[r],organizationId:i,skipUserCheck:!0,forceResolve:!0,moduleName:IT.IDENTIFY});if((this.providedUser?.userId??this.user$.value?.userId)!==r)return;let c=a?.[r];if(c&&this.applyLateResolvedLoggedInUser(r,c))return}this.loggingService.catch(`User resolver did not return the logged-in user after ${o.length} retry attempts \u2014 comments created by this author will have no resolved profile until the resolver returns them`,{userId:r,organizationId:i,attempts:o.length})}catch(o){this.loggingService.catch("Error in scheduleLoggedInUserResolveRetry: ",o)}finally{this.loggedInUserResolveRetryInFlightUserId===r&&(this.loggedInUserResolveRetryInFlightUserId=null)}})}applyLateResolvedLoggedInUser(r,i){try{let o=this.user$.value;if(!o||o.userId!==r)return!1;if(!this.afAuth?.currentUser)return!0;let s=are(o,i);return this.setUserToStorage(s),this.user$.next(s),!0}catch(o){return this.loggingService.catch("Error in applyLateResolvedLoggedInUser: ",o),!1}}combinedAuthBearer$(){let r=!1;return Ka([fd(this.afAuth).pipe(Qa($N)),this.portableAuthUser$]).pipe(mn(([i,o])=>(o!==null&&(r=!0),!!(i!==$N||o!==null||r))),De(([i,o])=>(i===$N?null:i)??o))}getUser$(){return this.loggingService.log("%c[WB] Calling FUNCTION: getUser$","color: green;"),this.combinedAuthBearer$().pipe(Mr(r=>r?this.user$.asObservable():lt(null)),yo(cp))}getAuthUser(){return this.loggingService.log("%c[WB] Calling FUNCTION: getAuthUser","color: green;"),this.afAuth?.currentUser}getAuthState$(){return this.combinedAuthBearer$()}getIdTokenResultForUser(r,i){return Np(r,i)}getUserOptions(){return this.loggingService.log("%c[WB] Calling FUNCTION: getUserOptions","color: green;"),this.userOptions$.value}getUserOptions$(){return this.loggingService.log("%c[WB] Calling FUNCTION: getUserOptions$","color: green;"),this.userOptions$.asObservable()}updateUser(r){this.loggingService.log("%c[WB] Calling FUNCTION: updateUser","color: green;");try{let i=this.user$.value;if(r.userId&&r.userId!==i?.userId||r?.groupId&&r?.groupId!==i?.groupId||r?.organizationId&&r?.organizationId!==i?.organizationId)this.providedUser=r,this.initializeClient(r,this.userOptions$?.value||{},new Date().getTime(),void 0,"internal-updateUser");else if(this.providedUser=B(B({},this.providedUser),r),i){let o=B(B({},i),r);this.updateUserInternally(o)}}catch(i){this.loggingService.catch("Error in updateUser: ",i)}}signInWithCustomToken(r,i,o="manual"){this.loggingService.log("%c[WB] Calling FUNCTION: signInWithCustomToken","color: green;");try{return DG(this.afAuth,i).then(s=>(this.analyticsService.trackEvent(St.Events.Core.SDK_USER_AUTH_SUCCESS,{apiKey:this.apiKey,clientUserId:r.userId,snippylyUserId:r.userSnippylyId,authType:o,forceReset:this.userOptions$.value?.forceReset,user:this.getUserForTelemetry(r)}),s)).catch(s=>(this.analyticsService.trackEvent(St.Events.Core.SDK_USER_AUTH_FAILED,{apiKey:this.apiKey,clientUserId:r.userId,snippylyUserId:r.userSnippylyId,authType:o,forceReset:this.userOptions$.value?.forceReset,message:s.message,user:this.getUserForTelemetry(r)}),s))}catch(s){return this.loggingService.catch("Error in signInWithCustomToken: ",s),Promise.reject(s)}}clearCache(){this.loggingService.log("%c[WB] Calling FUNCTION: clearCache","color: green;");try{this.activityService?.resetActivityFeatureConfig()}catch(r){this.loggingService.catch("Error in clearCache: ",r)}}resetServicesCache(){this.loggingService.log("%c[WB] Calling FUNCTION: resetServicesCache in AuthService","color: green;");try{this.crdtService?.flushAllEditorActivities(),this.clearCache(),this.commonDbService?.unsubscribeFromObservables(),this.activityService?.destroy(),this.docService?.clearCacheOnUserCascade(),this.contactService?.clearCache(),this.iamService?.clearCache(),this.areaService?.clearCache(),this.commentService?.clearCache(),this.reactionService?.clearCache(),this.serviceBook.get(hT)?.clearCache(),this.viewsService?.clearCache()}catch(r){this.loggingService.catch("Error in resetServicesCache: ",r)}}initializeSignedInUser(r,i,o){this.loggingService.log("%c[WB] Calling FUNCTION: initializeSignedInUser","color: green;");try{let s=new zi;s.userSnippylyId=r.uid,s.type="signedIn",o&&(s=B(B({},s),o)),this.setUserToStorage(s),this.mergeUserWithProvidedUserData(s,i)}catch(s){this.loggingService.catch("Error in initializeSignedInUser: ",s)}}mergeUserWithProvidedUserData(r,i){return y(this,null,function*(){this.loggingService.log("%c[WB] Calling FUNCTION: mergeUserWithProvidedUserData","color: green;");try{r.userId=this.providedUser?.userId||r.userId;let o=null;if(this.usersService?.externalUserDataProviderAvailable()){let s=rd(),a=IT.IDENTIFY,c=this.providedUser?.clientOrganizationId||r.clientOrganizationId;this.coreActionsService.triggerAction(Wi.USER_RESOLVER,{event:St.Events.Resolver.USER_RESOLUTION_REQUEST_FORMED,timestamp:new Date().getTime(),uniqueId:s,methodName:nR.MERGE_USER_WITH_PROVIDED_USER_DATA,moduleName:a,source:"internal",payload:{userIds:[r.userId],organizationId:c}});let l=yield this.usersService.resolveUsers({userIds:[r.userId],organizationId:c,skipUserCheck:!0,uniqueId:s,moduleName:a});l&&l[r.userId]?o=JSON.parse(JSON.stringify(l[r.userId]||{})):this.scheduleLoggedInUserResolveRetry(r.userId,c),r=B(B({},r),o||{})}PN(r,{provided:this.providedUser,resolved:o,avatarColor:s=>this.getUserAvatarColor(s),textColor:s=>this.getUserTextColor(s)}),this.updateUserInternally(r)}catch(o){this.loggingService.catch("Error in mergeUserWithProvidedUserData: ",o)}})}updateUserInternally(r){return y(this,null,function*(){this.loggingService.log("%c[WB] Calling FUNCTION: updateUserInternally","color: green;");try{let i=Object.assign({},r);delete i.contacts,this.analyticsService.identifyUser(r.userSnippylyId,i,{forceReset:this.userOptions$.value?.forceReset});let o=this.portableBackend$.value,s=this.portableSessionEpoch;!this.getPlanDetailsCalled&&!o&&this.getPlanDetailsFromDb();let a;if(o)a=MN({apiEndpoint:o.apiEndpoint,token:this.portableToken});else{let h=gd(this.functions,sd({url:this.endpointsService.getCloudFunctionUrl("sdkProxy"),apiProxyDomain:this.configService?.getApiProxyDomain()}));a=QV({methodName:"updateUserInternally",data:{type:"getProjectConfig"},getSdkProxy:h,userId:r?.userId??""})}let c=Promise.resolve();o?this.probeIdentifyPermissionWhenPortableReady(r,s,this.portableChunkReady):c=this.buildIdentifyPermissionProbe(r);let[l,d]=yield Promise.allSettled([a,c]);if(o){if(s!==this.portableSessionEpoch){this.loggingService.log("Velt [portable backend]: discarding an updateUser() that a sign-out or a new identify overtook.");return}l.status==="fulfilled"&&l.value&&this.applyProjectConfig(l.value)}else l.status==="fulfilled"?this.applyProjectConfig(l.value?.data):this.loggingService.warn("Failed to fetch project config:",l.reason);this.afAuth.currentUser?(this.user$.next(r),this.updateUserToFirebase(r)):this.portableAuthUser$.value&&this.user$.next(r)}catch(i){this.loggingService.catch("Error in updateUserInternally: ",i)}})}buildIdentifyPermissionProbe(r){if(this.userPermissionService?.isPermissionProviderAvailable()&&r.clientOrganizationId){let i=[{userId:r.userId,resource:{id:r.clientOrganizationId,type:KU.ORGANIZATION,source:vT.IDENTIFY,organizationId:r.clientOrganizationId}}],o=rd();return this.coreActionsService.triggerAction(Wi.PERMISSION_PROVIDER,{event:St.Events.PermissionProvider.RESOURCE_ACCESS_REQUEST_FORMED,methodName:vT.IDENTIFY,uniqueId:o,timestamp:new Date().getTime(),source:"internal",payload:{requests:i}}),this.userPermissionService?.onResourceAccessRequired({requests:i,uniqueId:o,userId:r.userId,methodName:vT.IDENTIFY,fromCache:!1})??Promise.resolve()}return Promise.resolve()}probeIdentifyPermissionWhenPortableReady(r,i,o){return y(this,null,function*(){try{if(yield o,i!==this.portableSessionEpoch||this.user$.value?.userId!==r.userId||!P2()||this.commonDbService?.isPortableBackendActive?.()!==!0)return;yield this.buildIdentifyPermissionProbe(r)}catch(s){this.loggingService.catch("Error in probeIdentifyPermissionWhenPortableReady: ",s)}})}updateUserToFirebase(r){this.loggingService.log("%c[WB] Calling FUNCTION: updateUserToFirebase","color: green;");try{let i=JSON.parse(JSON.stringify(r)),o=me(B({},i),{lastUpdated:new Date})}catch(i){this.loggingService.catch("Error in updateUserToFirebase: ",i)}}getPlanDetailsFromDb(){return y(this,null,function*(){try{this.getPlanDetailsCalled=!0;let i=yield gd(this.functions,sd({url:this.endpointsService.getCloudFunctionUrl("getPlanDetails"),apiProxyDomain:this.configService?.getApiProxyDomain()}),{timeout:1200*1e3})({apiKey:this.configService.getApiKey(),sdkVersion:xc(),sdkType:this.configService.getSdkType()});return i?.data?.isPlanExpired&&(this.analyticsService.trackEvent(St.Events.Core.SDK_PLAN_EXPIRED),this.configService.getSF()||console.warn("Velt SDK plan has expired.")),this.planDetails$.next(i?.data||{planInfo:null,isPlanExpired:!1}),i}catch(r){return this.loggingService.catch("Error in getPlanDetailsFromDb: ",r),this.planDetails$.next({planInfo:null,isPlanExpired:!1}),Promise.resolve(null)}})}isPlanExpired$(){return this.planDetails$.pipe(mn(r=>!!r),De(r=>!!r?.isPlanExpired))}isPlanExpired(){return this.planDetails$.getValue()?.isPlanExpired}addPreSignOutFuction(r,i){try{this.preSignOutFunctions.set(r,i)}catch(o){this.loggingService.catch("Error in addPreSignOutFuction: ",o)}}setUserOrganization(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: setUserOrganization","color: green;");let i=JSON.parse(JSON.stringify(this.userOrganization$.value||{}));this.getUser()?.organizationId===r?.organizationId?(i.metadata=r,this.userOrganization$.next(i)):this.userOrganization$.next(null)}catch(i){this.loggingService.catch("Error in setUserOrganization: ",i)}}setOrganizationUserGroups(r){try{this.loggingService.log("%c[WB] Calling FUNCTION: setUserOrganizationGroups","color: green;");let i=JSON.parse(JSON.stringify(this.userOrganization$.value||{}));this.getUser()?.organizationId===i?.metadata?.organizationId&&(i.groups=r,this.userOrganization$.next(i))}catch(i){this.loggingService.catch("Error in setUserOrganizationGroups: ",i)}}getUserOrganization$(){return this.loggingService.log("%c[WB] Calling FUNCTION: getUserOrganization$","color: green;"),this.getUser$().pipe(Mr(r=>r?this.userOrganization$.asObservable().pipe(De(i=>i?.metadata?.organizationId===r.organizationId?i:null)):lt(null)))}signOutUser(r="internal"){return y(this,null,function*(){try{this.userPermissionService?.invalidateAllPermissionsState(),this.portableSessionEpoch++,this.portableSignOutOwnsEpochBump=!0,this.pendingPortableRestore=null,this.portableResumeUserId=null,this.portableSessionIdentity=null,(this.portableAutoLoginCalled||this.configService?.getEnablePortableBackend()===!0)&&(this.clearPersistedPortableSession(),this.recordPortableSignOut(),this.clearPortableTokenRefresh()),r==="external"&&(this.onRetrySubscription?.unsubscribe(),this.authProviderListenerGeneration++),this.userPermissionService?.revokeAccessOnUserLogout(),this.analyticsService.trackEvent(St.Events.Core.SDK_USER_SIGN_OUT,{apiKey:this.apiKey,clientUserId:this.user$?.value?.userId,snippylyUserId:this.user$?.value?.userSnippylyId,message:r==="external"?"User Sign out":"System Sign out",user:this.user$?.value?this.getUserForTelemetry(this.user$?.value):null,forceReset:this.userOptions$.value?.forceReset,source:r});let i=yield fd(this.afAuth).pipe(En(1)).toPromise().catch(o=>null);if(i){this.releaseLiveUserSession("clear");for(let[o,s]of this.preSignOutFunctions)try{yield s(i)}catch(a){this.loggingService.catch(`Error in signOutUser ${o} function: `,a)}return this.user$.next(null),yield $V(1e3),RG(this.afAuth).catch(o=>{this.loggingService.catch("Error in signOutUser:",o)})}else return(this.portableAuthUser$.value||this.portableBackend$.value)&&this.releaseLiveUserSession("clear"),Promise.resolve()}catch(i){this.loggingService.catch("Error in signOutUser: ",i)}finally{this.portableSignOutOwnsEpochBump=!1}})}isFeatureAllowed(r){return xV(this.config,this.user$.value,r)}getUserWithoutContacts(r){try{if(r){let i=JSON.parse(JSON.stringify(r));return delete i.contacts,i}else return null}catch(i){return this.loggingService.catch("Error in getUserWithoutContacts: ",i),null}}getUserForTelemetry(r){try{let i=this.getUserWithoutContacts(r);return i?this.usersService?.userResolverConfigured?.()?IR(i):i:null}catch(i){return this.loggingService.catch("Error in getUserForTelemetry: ",i),null}}getUserForClient(r){try{return _R(r)}catch(i){return this.loggingService.catch("Error in getUserForClient: ",i),null}}getUserAvatarColor(r){try{return r?this.avatarService.generateUserColor(Mc(r)):"#625DF5"}catch{return"#625DF5"}}getUserTextColor(r){try{return"#FFFFFF"}catch{return"#FFFFFF"}}setOptionalPropertiesToUsers(r){try{r.forEach(i=>{try{i?.color||(i.color=this.getUserAvatarColor(i?.userId)),i?.textColor||(i.textColor=this.getUserTextColor(i?.userId)),!i?.initial&&(i?.name||i?.email)&&(i.initial=i.name?.charAt(0).toUpperCase()||i.email?.charAt(0).toUpperCase())}catch{}})}catch{}}};e.PORTABLE_REFRESH_WARN_AFTER_FAILURES=3,e.PORTABLE_DOCUMENT_LIFECYCLE_EVENTS=["visibilitychange","resume"],e.PORTABLE_NO_CREDENTIAL_ENVELOPE={error:"No renewal credential.",code:"no_renewal_credential",message:"the session has no renewal credential for the configured gateway",source:"identify"},e.\u0275fac=function(i){return new(i||e)($(Hc),$(Ji),$(c2),$(l2),$(M2),$(Ho),$(zs),$(bt),$(mT))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();var k2="@firebase/database",F2="1.0.20";var Xw="";function cre(t){Xw=t}var JN=class{constructor(e){this.domStorage_=e,this.prefix_="firebase:"}set(e,n){n==null?this.domStorage_.removeItem(this.prefixedName_(e)):this.domStorage_.setItem(this.prefixedName_(e),xt(n))}get(e){let n=this.domStorage_.getItem(this.prefixedName_(e));return n==null?null:cd(n)}remove(e){this.domStorage_.removeItem(this.prefixedName_(e))}prefixedName_(e){return this.prefix_+e}toString(){return this.domStorage_.toString()}};var ZN=class{constructor(){this.cache_={},this.isInMemoryStorage=!0}set(e,n){n==null?delete this.cache_[e]:this.cache_[e]=n}get(e){return Vr(this.cache_,e)?this.cache_[e]:null}remove(e){delete this.cache_[e]}};var gj=function(t){try{if(typeof window<"u"&&typeof window[t]<"u"){let e=window[t];return e.setItem("firebase:sentinel","cache"),e.removeItem("firebase:sentinel"),new JN(e)}}catch{}return new ZN},Jc=gj("localStorage"),ew=gj("sessionStorage");var vd=new Br("@firebase/database"),mj=(function(){let t=1;return function(){return t++}})(),Ej=function(t){let e=TB(t),n=new PT;n.update(e);let r=n.digest();return ld.encodeByteArray(r)},ng=function(...t){let e="";for(let n=0;n<t.length;n++){let r=t[n];Array.isArray(r)||r&&typeof r=="object"&&typeof r.length=="number"?e+=ng.apply(null,r):typeof r=="object"?e+=xt(r):e+=r,e+=" "}return e},Zc=null,U2=!0,lre=function(t,e){q(!e||t===!0||t===!1,"Can't turn on custom loggers persistently."),t===!0?(vd.logLevel=Re.VERBOSE,Zc=vd.log.bind(vd),e&&ew.set("logging_enabled",!0)):typeof t=="function"?Zc=t:(Zc=null,ew.remove("logging_enabled"))},un=function(...t){if(U2===!0&&(U2=!1,Zc===null&&ew.get("logging_enabled")===!0&&lre(!0)),Zc){let e=ng.apply(null,t);Zc(e)}},rg=function(t){return function(...e){un(t,...e)}},tw=function(...t){let e="FIREBASE INTERNAL ERROR: "+ng(...t);vd.error(e)},Wo=function(...t){let e=`FIREBASE FATAL ERROR: ${ng(...t)}`;throw vd.error(e),new Error(e)},xn=function(...t){let e="FIREBASE WARNING: "+ng(...t);vd.warn(e)},ure=function(){typeof window<"u"&&window.location&&window.location.protocol&&window.location.protocol.indexOf("https:")!==-1&&xn("Insecure Firebase access from a secure page. Please use https in calls to new Firebase().")},By=function(t){return typeof t=="number"&&(t!==t||t===Number.POSITIVE_INFINITY||t===Number.NEGATIVE_INFINITY)},dre=function(t){if(Ki()||document.readyState==="complete")t();else{let e=!1,n=function(){if(!document.body){setTimeout(n,Math.floor(10));return}e||(e=!0,t())};document.addEventListener?(document.addEventListener("DOMContentLoaded",n,!1),window.addEventListener("load",n,!1)):document.attachEvent&&(document.attachEvent("onreadystatechange",()=>{document.readyState==="complete"&&n()}),window.attachEvent("onload",n))}},tl="[MIN_NAME]",Zs="[MAX_NAME]",al=function(t,e){if(t===e)return 0;if(t===tl||e===Zs)return-1;if(e===tl||t===Zs)return 1;{let n=V2(t),r=V2(e);return n!==null?r!==null?n-r===0?t.length-e.length:n-r:-1:r!==null?1:t<e?-1:1}},hre=function(t,e){return t===e?0:t<e?-1:1},xp=function(t,e){if(e&&t in e)return e[t];throw new Error("Missing required key ("+t+") in object: "+xt(e))},Qw=function(t){if(typeof t!="object"||t===null)return xt(t);let e=[];for(let r in t)e.push(r);e.sort();let n="{";for(let r=0;r<e.length;r++)r!==0&&(n+=","),n+=xt(e[r]),n+=":",n+=Qw(t[e[r]]);return n+="}",n},_j=function(t,e){let n=t.length;if(n<=e)return[t];let r=[];for(let i=0;i<n;i+=e)i+e>n?r.push(t.substring(i,n)):r.push(t.substring(i,i+e));return r};function dn(t,e){for(let n in t)t.hasOwnProperty(n)&&e(n,t[n])}var Tj=function(t){q(!By(t),"Invalid JSON number");let e=11,n=52,r=(1<<e-1)-1,i,o,s,a,c;t===0?(o=0,s=0,i=1/t===-1/0?1:0):(i=t<0,t=Math.abs(t),t>=Math.pow(2,1-r)?(a=Math.min(Math.floor(Math.log(t)/Math.LN2),r),o=a+r,s=Math.round(t*Math.pow(2,n-a)-Math.pow(2,n))):(o=0,s=Math.round(t/Math.pow(2,1-r-n))));let l=[];for(c=n;c;c-=1)l.push(s%2?1:0),s=Math.floor(s/2);for(c=e;c;c-=1)l.push(o%2?1:0),o=Math.floor(o/2);l.push(i?1:0),l.reverse();let d=l.join(""),h="";for(c=0;c<64;c+=8){let f=parseInt(d.substr(c,8),2).toString(16);f.length===1&&(f="0"+f),h=h+f}return h.toLowerCase()},fre=function(){return!!(typeof window=="object"&&window.chrome&&window.chrome.extension&&!/^chrome/.test(window.location.href))},pre=function(){return typeof Windows=="object"&&typeof Windows.UI=="object"};function gre(t,e){let n="Unknown Error";t==="too_big"?n="The data requested exceeds the maximum size that can be accessed with a single request.":t==="permission_denied"?n="Client doesn't have permission to access the desired data.":t==="unavailable"&&(n="The service is unavailable");let r=new Error(t+" at "+e._path.toString()+": "+n);return r.code=t.toUpperCase(),r}var mre=new RegExp("^-?(0*)\\d{1,10}$"),Ere=-2147483648,_re=2147483647,V2=function(t){if(mre.test(t)){let e=Number(t);if(e>=Ere&&e<=_re)return e}return null},Od=function(t){try{t()}catch(e){setTimeout(()=>{let n=e.stack||"";throw xn("Exception was thrown by user callback.",n),e},Math.floor(0))}},Tre=function(){return(typeof window=="object"&&window.navigator&&window.navigator.userAgent||"").search(/googlebot|google webmaster tools|bingbot|yahoo! slurp|baiduspider|yandexbot|duckduckbot/i)>=0},Vp=function(t,e){let n=setTimeout(t,e);return typeof n=="number"&&typeof Deno<"u"&&Deno.unrefTimer?Deno.unrefTimer(n):typeof n=="object"&&n.unref&&n.unref(),n};var nw=class{constructor(e,n){this.appCheckProvider=n,this.appName=e.name,Zn(e)&&e.settings.appCheckToken&&(this.serverAppAppCheckToken=e.settings.appCheckToken),this.appCheck=n?.getImmediate({optional:!0}),this.appCheck||n?.get().then(r=>this.appCheck=r)}getToken(e){if(this.serverAppAppCheckToken){if(e)throw new Error("Attempted reuse of `FirebaseServerApp.appCheckToken` after previous usage failed.");return Promise.resolve({token:this.serverAppAppCheckToken})}return this.appCheck?this.appCheck.getToken(e):new Promise((n,r)=>{setTimeout(()=>{this.appCheck?this.getToken(e).then(n,r):n(null)},0)})}addTokenChangeListener(e){var n;(n=this.appCheckProvider)===null||n===void 0||n.get().then(r=>r.addTokenListener(e))}notifyForInvalidToken(){xn(`Provided AppCheck credentials for the app named "${this.appName}" are invalid. This usually indicates your app was not initialized correctly.`)}};var rw=class{constructor(e,n,r){this.appName_=e,this.firebaseOptions_=n,this.authProvider_=r,this.auth_=null,this.auth_=r.getImmediate({optional:!0}),this.auth_||r.onInit(i=>this.auth_=i)}getToken(e){return this.auth_?this.auth_.getToken(e).catch(n=>n&&n.code==="auth/token-not-initialized"?(un("Got auth/token-not-initialized error. Treating as null token."),null):Promise.reject(n)):new Promise((n,r)=>{setTimeout(()=>{this.auth_?this.getToken(e).then(n,r):n(null)},0)})}addTokenChangeListener(e){this.auth_?this.auth_.addAuthTokenListener(e):this.authProvider_.get().then(n=>n.addAuthTokenListener(e))}removeTokenChangeListener(e){this.authProvider_.get().then(n=>n.removeAuthTokenListener(e))}notifyForInvalidToken(){let e='Provided authentication credentials for the app named "'+this.appName_+'" are invalid. This usually indicates your app was not initialized correctly. ';"credential"in this.firebaseOptions_?e+='Make sure the "credential" property provided to initializeApp() is authorized to access the specified "databaseURL" and is from the correct project.':"serviceAccount"in this.firebaseOptions_?e+='Make sure the "serviceAccount" property provided to initializeApp() is authorized to access the specified "databaseURL" and is from the correct project.':e+='Make sure the "apiKey" and "databaseURL" properties provided to initializeApp() match the values provided for your app at https://console.firebase.google.com/.',xn(e)}},Bp=(()=>{class t{constructor(n){this.accessToken=n}getToken(n){return Promise.resolve({accessToken:this.accessToken})}addTokenChangeListener(n){n(this.accessToken)}removeTokenChangeListener(n){}notifyForInvalidToken(){}}t.OWNER="owner";return t})(),gy="5",yj="v",Ij="s",vj="r",Sj="f",Aj=/(console\.firebase|firebase-console-\w+\.corp|firebase\.corp)\.google\.com/,Cj="ls",Dj="p",iw="ac",Rj="websocket",Nj="long_polling";var my=class{constructor(e,n,r,i,o=!1,s="",a=!1,c=!1,l=null){this.secure=n,this.namespace=r,this.webSocketOnly=i,this.nodeAdmin=o,this.persistenceKey=s,this.includeNamespaceInQueryParams=a,this.isUsingEmulator=c,this.emulatorOptions=l,this._host=e.toLowerCase(),this._domain=this._host.substr(this._host.indexOf(".")+1),this.internalHost=Jc.get("host:"+e)||this._host}isCacheableHost(){return this.internalHost.substr(0,2)==="s-"}isCustomHost(){return this._domain!=="firebaseio.com"&&this._domain!=="firebaseio-demo.com"}get host(){return this._host}set host(e){e!==this.internalHost&&(this.internalHost=e,this.isCacheableHost()&&Jc.set("host:"+this._host,this.internalHost))}toString(){let e=this.toURLString();return this.persistenceKey&&(e+="<"+this.persistenceKey+">"),e}toURLString(){let e=this.secure?"https://":"http://",n=this.includeNamespaceInQueryParams?`?ns=${this.namespace}`:"";return`${e}${this.host}/${n}`}};function yre(t){return t.host!==t.internalHost||t.isCustomHost()||t.includeNamespaceInQueryParams}function wj(t,e,n){q(typeof e=="string","typeof type must == string"),q(typeof n=="object","typeof params must == object");let r;if(e===Rj)r=(t.secure?"wss://":"ws://")+t.internalHost+"/.ws?";else if(e===Nj)r=(t.secure?"https://":"http://")+t.internalHost+"/.lp?";else throw new Error("Unknown connection type: "+e);yre(t)&&(n.ns=t.namespace);let i=[];return dn(n,(o,s)=>{i.push(o+"="+s)}),r+i.join("&")}var ow=class{constructor(){this.counters_={}}incrementCounter(e,n=1){Vr(this.counters_,e)||(this.counters_[e]=0),this.counters_[e]+=n}get(){return sB(this.counters_)}};var WN={},zN={};function Jw(t){let e=t.toString();return WN[e]||(WN[e]=new ow),WN[e]}function Ire(t,e){let n=t.toString();return zN[n]||(zN[n]=e()),zN[n]}var sw=class{constructor(e){this.onMessage_=e,this.pendingResponses=[],this.currentResponseNum=0,this.closeAfterResponse=-1,this.onClose=null}closeAfter(e,n){this.closeAfterResponse=e,this.onClose=n,this.closeAfterResponse<this.currentResponseNum&&(this.onClose(),this.onClose=null)}handleResponse(e,n){for(this.pendingResponses[e]=n;this.pendingResponses[this.currentResponseNum];){let r=this.pendingResponses[this.currentResponseNum];delete this.pendingResponses[this.currentResponseNum];for(let i=0;i<r.length;++i)r[i]&&Od(()=>{this.onMessage_(r[i])});if(this.currentResponseNum===this.closeAfterResponse){this.onClose&&(this.onClose(),this.onClose=null);break}this.currentResponseNum++}}};var B2="start",vre="close",Sre="pLPCommand",Are="pRTLPCB",bj="id",Oj="pw",Mj="ser",Cre="cb",Dre="seg",Rre="ts",Nre="d",wre="dframe",Lj=1870,Pj=30,bre=Lj-Pj,Ore=25e3,Mre=3e4,Ey=class t{constructor(e,n,r,i,o,s,a){this.connId=e,this.repoInfo=n,this.applicationId=r,this.appCheckToken=i,this.authToken=o,this.transportSessionId=s,this.lastSessionId=a,this.bytesSent=0,this.bytesReceived=0,this.everConnected_=!1,this.log_=rg(e),this.stats_=Jw(n),this.urlFn=c=>(this.appCheckToken&&(c[iw]=this.appCheckToken),wj(n,Nj,c))}open(e,n){this.curSegmentNum=0,this.onDisconnect_=n,this.myPacketOrderer=new sw(e),this.isClosed_=!1,this.connectTimeoutTimer_=setTimeout(()=>{this.log_("Timed out trying to connect."),this.onClosed_(),this.connectTimeoutTimer_=null},Math.floor(Mre)),dre(()=>{if(this.isClosed_)return;this.scriptTagHolder=new aw((...o)=>{let[s,a,c,l,d]=o;if(this.incrementIncomingBytes_(o),!!this.scriptTagHolder)if(this.connectTimeoutTimer_&&(clearTimeout(this.connectTimeoutTimer_),this.connectTimeoutTimer_=null),this.everConnected_=!0,s===B2)this.id=a,this.password=c;else if(s===vre)a?(this.scriptTagHolder.sendNewPolls=!1,this.myPacketOrderer.closeAfter(a,()=>{this.onClosed_()})):this.onClosed_();else throw new Error("Unrecognized command received: "+s)},(...o)=>{let[s,a]=o;this.incrementIncomingBytes_(o),this.myPacketOrderer.handleResponse(s,a)},()=>{this.onClosed_()},this.urlFn);let r={};r[B2]="t",r[Mj]=Math.floor(Math.random()*1e8),this.scriptTagHolder.uniqueCallbackIdentifier&&(r[Cre]=this.scriptTagHolder.uniqueCallbackIdentifier),r[yj]=gy,this.transportSessionId&&(r[Ij]=this.transportSessionId),this.lastSessionId&&(r[Cj]=this.lastSessionId),this.applicationId&&(r[Dj]=this.applicationId),this.appCheckToken&&(r[iw]=this.appCheckToken),typeof location<"u"&&location.hostname&&Aj.test(location.hostname)&&(r[vj]=Sj);let i=this.urlFn(r);this.log_("Connecting via long-poll to "+i),this.scriptTagHolder.addTag(i,()=>{})})}start(){this.scriptTagHolder.startLongPoll(this.id,this.password),this.addDisconnectPingFrame(this.id,this.password)}static forceAllow(){t.forceAllow_=!0}static forceDisallow(){t.forceDisallow_=!0}static isAvailable(){return Ki()?!1:t.forceAllow_?!0:!t.forceDisallow_&&typeof document<"u"&&document.createElement!=null&&!fre()&&!pre()}markConnectionHealthy(){}shutdown_(){this.isClosed_=!0,this.scriptTagHolder&&(this.scriptTagHolder.close(),this.scriptTagHolder=null),this.myDisconnFrame&&(document.body.removeChild(this.myDisconnFrame),this.myDisconnFrame=null),this.connectTimeoutTimer_&&(clearTimeout(this.connectTimeoutTimer_),this.connectTimeoutTimer_=null)}onClosed_(){this.isClosed_||(this.log_("Longpoll is closing itself"),this.shutdown_(),this.onDisconnect_&&(this.onDisconnect_(this.everConnected_),this.onDisconnect_=null))}close(){this.isClosed_||(this.log_("Longpoll is being closed."),this.shutdown_())}send(e){let n=xt(e);this.bytesSent+=n.length,this.stats_.incrementCounter("bytes_sent",n.length);let r=RR(n),i=_j(r,bre);for(let o=0;o<i.length;o++)this.scriptTagHolder.enqueueSegment(this.curSegmentNum,i.length,i[o]),this.curSegmentNum++}addDisconnectPingFrame(e,n){if(Ki())return;this.myDisconnFrame=document.createElement("iframe");let r={};r[wre]="t",r[bj]=e,r[Oj]=n,this.myDisconnFrame.src=this.urlFn(r),this.myDisconnFrame.style.display="none",document.body.appendChild(this.myDisconnFrame)}incrementIncomingBytes_(e){let n=xt(e).length;this.bytesReceived+=n,this.stats_.incrementCounter("bytes_received",n)}},aw=class t{constructor(e,n,r,i){if(this.onDisconnect=r,this.urlFn=i,this.outstandingRequests=new Set,this.pendingSegs=[],this.currentSerial=Math.floor(Math.random()*1e8),this.sendNewPolls=!0,Ki())this.commandCB=e,this.onMessageCB=n;else{this.uniqueCallbackIdentifier=mj(),window[Sre+this.uniqueCallbackIdentifier]=e,window[Are+this.uniqueCallbackIdentifier]=n,this.myIFrame=t.createIFrame_();let o="";this.myIFrame.src&&this.myIFrame.src.substr(0,11)==="javascript:"&&(o='<script>document.domain="'+document.domain+'";<\/script>');let s="<html><body>"+o+"</body></html>";try{this.myIFrame.doc.open(),this.myIFrame.doc.write(s),this.myIFrame.doc.close()}catch(a){un("frame writing exception"),a.stack&&un(a.stack),un(a)}}}static createIFrame_(){let e=document.createElement("iframe");if(e.style.display="none",document.body){document.body.appendChild(e);try{e.contentWindow.document||un("No IE domain setting required")}catch{let r=document.domain;e.src="javascript:void((function(){document.open();document.domain='"+r+"';document.close();})())"}}else throw"Document body has not initialized. Wait to initialize Firebase until after the document is ready.";return e.contentDocument?e.doc=e.contentDocument:e.contentWindow?e.doc=e.contentWindow.document:e.document&&(e.doc=e.document),e}close(){this.alive=!1,this.myIFrame&&(this.myIFrame.doc.body.textContent="",setTimeout(()=>{this.myIFrame!==null&&(document.body.removeChild(this.myIFrame),this.myIFrame=null)},Math.floor(0)));let e=this.onDisconnect;e&&(this.onDisconnect=null,e())}startLongPoll(e,n){for(this.myID=e,this.myPW=n,this.alive=!0;this.newRequest_(););}newRequest_(){if(this.alive&&this.sendNewPolls&&this.outstandingRequests.size<(this.pendingSegs.length>0?2:1)){this.currentSerial++;let e={};e[bj]=this.myID,e[Oj]=this.myPW,e[Mj]=this.currentSerial;let n=this.urlFn(e),r="",i=0;for(;this.pendingSegs.length>0&&this.pendingSegs[0].d.length+Pj+r.length<=Lj;){let s=this.pendingSegs.shift();r=r+"&"+Dre+i+"="+s.seg+"&"+Rre+i+"="+s.ts+"&"+Nre+i+"="+s.d,i++}return n=n+r,this.addLongPollTag_(n,this.currentSerial),!0}else return!1}enqueueSegment(e,n,r){this.pendingSegs.push({seg:e,ts:n,d:r}),this.alive&&this.newRequest_()}addLongPollTag_(e,n){this.outstandingRequests.add(n);let r=()=>{this.outstandingRequests.delete(n),this.newRequest_()},i=setTimeout(r,Math.floor(Ore)),o=()=>{clearTimeout(i),r()};this.addTag(e,o)}addTag(e,n){Ki()?this.doNodeLongPoll(e,n):setTimeout(()=>{try{if(!this.sendNewPolls)return;let r=this.myIFrame.doc.createElement("script");r.type="text/javascript",r.async=!0,r.src=e,r.onload=r.onreadystatechange=function(){let i=r.readyState;(!i||i==="loaded"||i==="complete")&&(r.onload=r.onreadystatechange=null,r.parentNode&&r.parentNode.removeChild(r),n())},r.onerror=()=>{un("Long-poll script failed to load: "+e),this.sendNewPolls=!1,this.close()},this.myIFrame.doc.body.appendChild(r)}catch{}},Math.floor(1))}};var Lre=16384,Pre=45e3,_y=null;typeof MozWebSocket<"u"?_y=MozWebSocket:typeof WebSocket<"u"&&(_y=WebSocket);var yd=(()=>{class t{constructor(n,r,i,o,s,a,c){this.connId=n,this.applicationId=i,this.appCheckToken=o,this.authToken=s,this.keepaliveTimer=null,this.frames=null,this.totalFrames=0,this.bytesSent=0,this.bytesReceived=0,this.log_=rg(this.connId),this.stats_=Jw(r),this.connURL=t.connectionURL_(r,a,c,o,i),this.nodeAdmin=r.nodeAdmin}static connectionURL_(n,r,i,o,s){let a={};return a[yj]=gy,!Ki()&&typeof location<"u"&&location.hostname&&Aj.test(location.hostname)&&(a[vj]=Sj),r&&(a[Ij]=r),i&&(a[Cj]=i),o&&(a[iw]=o),s&&(a[Dj]=s),wj(n,Rj,a)}open(n,r){this.onDisconnect=r,this.onMessage=n,this.log_("Websocket connecting to "+this.connURL),this.everConnected_=!1,Jc.set("previous_websocket_failure",!0);try{let i;if(Ki()){let o=this.nodeAdmin?"AdminNode":"Node";i={headers:{"User-Agent":`Firebase/${gy}/${Xw}/${process.platform}/${o}`,"X-Firebase-GMPID":this.applicationId||""}},this.authToken&&(i.headers.Authorization=`Bearer ${this.authToken}`),this.appCheckToken&&(i.headers["X-Firebase-AppCheck"]=this.appCheckToken);let s=process.env,a=this.connURL.indexOf("wss://")===0?s.HTTPS_PROXY||s.https_proxy:s.HTTP_PROXY||s.http_proxy;a&&(i.proxy={origin:a})}this.mySock=new _y(this.connURL,[],i)}catch(i){this.log_("Error instantiating WebSocket.");let o=i.message||i.data;o&&this.log_(o),this.onClosed_();return}this.mySock.onopen=()=>{this.log_("Websocket connected."),this.everConnected_=!0},this.mySock.onclose=()=>{this.log_("Websocket connection was disconnected."),this.mySock=null,this.onClosed_()},this.mySock.onmessage=i=>{this.handleIncomingFrame(i)},this.mySock.onerror=i=>{this.log_("WebSocket error. Closing connection.");let o=i.message||i.data;o&&this.log_(o),this.onClosed_()}}start(){}static forceDisallow(){t.forceDisallow_=!0}static isAvailable(){let n=!1;if(typeof navigator<"u"&&navigator.userAgent){let r=/Android ([0-9]{0,}\.[0-9]{0,})/,i=navigator.userAgent.match(r);i&&i.length>1&&parseFloat(i[1])<4.4&&(n=!0)}return!n&&_y!==null&&!t.forceDisallow_}static previouslyFailed(){return Jc.isInMemoryStorage||Jc.get("previous_websocket_failure")===!0}markConnectionHealthy(){Jc.remove("previous_websocket_failure")}appendFrame_(n){if(this.frames.push(n),this.frames.length===this.totalFrames){let r=this.frames.join("");this.frames=null;let i=cd(r);this.onMessage(i)}}handleNewFrameCount_(n){this.totalFrames=n,this.frames=[]}extractFrameCount_(n){if(q(this.frames===null,"We already have a frame buffer"),n.length<=6){let r=Number(n);if(!isNaN(r))return this.handleNewFrameCount_(r),null}return this.handleNewFrameCount_(1),n}handleIncomingFrame(n){if(this.mySock===null)return;let r=n.data;if(this.bytesReceived+=r.length,this.stats_.incrementCounter("bytes_received",r.length),this.resetKeepAlive(),this.frames!==null)this.appendFrame_(r);else{let i=this.extractFrameCount_(r);i!==null&&this.appendFrame_(i)}}send(n){this.resetKeepAlive();let r=xt(n);this.bytesSent+=r.length,this.stats_.incrementCounter("bytes_sent",r.length);let i=_j(r,Lre);i.length>1&&this.sendString_(String(i.length));for(let o=0;o<i.length;o++)this.sendString_(i[o])}shutdown_(){this.isClosed_=!0,this.keepaliveTimer&&(clearInterval(this.keepaliveTimer),this.keepaliveTimer=null),this.mySock&&(this.mySock.close(),this.mySock=null)}onClosed_(){this.isClosed_||(this.log_("WebSocket is closing itself"),this.shutdown_(),this.onDisconnect&&(this.onDisconnect(this.everConnected_),this.onDisconnect=null))}close(){this.isClosed_||(this.log_("WebSocket is being closed"),this.shutdown_())}resetKeepAlive(){clearInterval(this.keepaliveTimer),this.keepaliveTimer=setInterval(()=>{this.mySock&&this.sendString_("0"),this.resetKeepAlive()},Math.floor(Pre))}sendString_(n){try{this.mySock.send(n)}catch(r){this.log_("Exception thrown from WebSocket.send():",r.message||r.data,"Closing connection."),setTimeout(this.onClosed_.bind(this),0)}}}t.responsesRequiredToBeHealthy=2,t.healthyTimeout=3e4;return t})(),xj=(()=>{class t{static get ALL_TRANSPORTS(){return[Ey,yd]}static get IS_TRANSPORT_INITIALIZED(){return this.globalTransportInitialized_}constructor(n){this.initTransports_(n)}initTransports_(n){let r=yd&&yd.isAvailable(),i=r&&!yd.previouslyFailed();if(n.webSocketOnly&&(r||xn("wss:// URL used, but browser isn't known to support websockets. Trying anyway."),i=!0),i)this.transports_=[yd];else{let o=this.transports_=[];for(let s of t.ALL_TRANSPORTS)s&&s.isAvailable()&&o.push(s);t.globalTransportInitialized_=!0}}initialTransport(){if(this.transports_.length>0)return this.transports_[0];throw new Error("No transports available")}upgradeTransport(){return this.transports_.length>1?this.transports_[1]:null}}t.globalTransportInitialized_=!1;return t})(),xre=6e4,kre=5e3,Fre=10*1024,Ure=100*1024,qN="t",G2="d",Vre="s",j2="r",Bre="e",H2="o",$2="a",W2="n",z2="p",Gre="h",cw=class{constructor(e,n,r,i,o,s,a,c,l,d){this.id=e,this.repoInfo_=n,this.applicationId_=r,this.appCheckToken_=i,this.authToken_=o,this.onMessage_=s,this.onReady_=a,this.onDisconnect_=c,this.onKill_=l,this.lastSessionId=d,this.connectionCount=0,this.pendingDataMessages=[],this.state_=0,this.log_=rg("c:"+this.id+":"),this.transportManager_=new xj(n),this.log_("Connection created"),this.start_()}start_(){let e=this.transportManager_.initialTransport();this.conn_=new e(this.nextTransportId_(),this.repoInfo_,this.applicationId_,this.appCheckToken_,this.authToken_,null,this.lastSessionId),this.primaryResponsesRequired_=e.responsesRequiredToBeHealthy||0;let n=this.connReceiver_(this.conn_),r=this.disconnReceiver_(this.conn_);this.tx_=this.conn_,this.rx_=this.conn_,this.secondaryConn_=null,this.isHealthy_=!1,setTimeout(()=>{this.conn_&&this.conn_.open(n,r)},Math.floor(0));let i=e.healthyTimeout||0;i>0&&(this.healthyTimeout_=Vp(()=>{this.healthyTimeout_=null,this.isHealthy_||(this.conn_&&this.conn_.bytesReceived>Ure?(this.log_("Connection exceeded healthy timeout but has received "+this.conn_.bytesReceived+" bytes. Marking connection healthy."),this.isHealthy_=!0,this.conn_.markConnectionHealthy()):this.conn_&&this.conn_.bytesSent>Fre?this.log_("Connection exceeded healthy timeout but has sent "+this.conn_.bytesSent+" bytes. Leaving connection alive."):(this.log_("Closing unhealthy connection after timeout."),this.close()))},Math.floor(i)))}nextTransportId_(){return"c:"+this.id+":"+this.connectionCount++}disconnReceiver_(e){return n=>{e===this.conn_?this.onConnectionLost_(n):e===this.secondaryConn_?(this.log_("Secondary connection lost."),this.onSecondaryConnectionLost_()):this.log_("closing an old connection")}}connReceiver_(e){return n=>{this.state_!==2&&(e===this.rx_?this.onPrimaryMessageReceived_(n):e===this.secondaryConn_?this.onSecondaryMessageReceived_(n):this.log_("message on old connection"))}}sendRequest(e){let n={t:"d",d:e};this.sendData_(n)}tryCleanupConnection(){this.tx_===this.secondaryConn_&&this.rx_===this.secondaryConn_&&(this.log_("cleaning up and promoting a connection: "+this.secondaryConn_.connId),this.conn_=this.secondaryConn_,this.secondaryConn_=null)}onSecondaryControl_(e){if(qN in e){let n=e[qN];n===$2?this.upgradeIfSecondaryHealthy_():n===j2?(this.log_("Got a reset on secondary, closing it"),this.secondaryConn_.close(),(this.tx_===this.secondaryConn_||this.rx_===this.secondaryConn_)&&this.close()):n===H2&&(this.log_("got pong on secondary."),this.secondaryResponsesRequired_--,this.upgradeIfSecondaryHealthy_())}}onSecondaryMessageReceived_(e){let n=xp("t",e),r=xp("d",e);if(n==="c")this.onSecondaryControl_(r);else if(n==="d")this.pendingDataMessages.push(r);else throw new Error("Unknown protocol layer: "+n)}upgradeIfSecondaryHealthy_(){this.secondaryResponsesRequired_<=0?(this.log_("Secondary connection is healthy."),this.isHealthy_=!0,this.secondaryConn_.markConnectionHealthy(),this.proceedWithUpgrade_()):(this.log_("sending ping on secondary."),this.secondaryConn_.send({t:"c",d:{t:z2,d:{}}}))}proceedWithUpgrade_(){this.secondaryConn_.start(),this.log_("sending client ack on secondary"),this.secondaryConn_.send({t:"c",d:{t:$2,d:{}}}),this.log_("Ending transmission on primary"),this.conn_.send({t:"c",d:{t:W2,d:{}}}),this.tx_=this.secondaryConn_,this.tryCleanupConnection()}onPrimaryMessageReceived_(e){let n=xp("t",e),r=xp("d",e);n==="c"?this.onControl_(r):n==="d"&&this.onDataMessage_(r)}onDataMessage_(e){this.onPrimaryResponse_(),this.onMessage_(e)}onPrimaryResponse_(){this.isHealthy_||(this.primaryResponsesRequired_--,this.primaryResponsesRequired_<=0&&(this.log_("Primary connection is healthy."),this.isHealthy_=!0,this.conn_.markConnectionHealthy()))}onControl_(e){let n=xp(qN,e);if(G2 in e){let r=e[G2];if(n===Gre){let i=Object.assign({},r);this.repoInfo_.isUsingEmulator&&(i.h=this.repoInfo_.host),this.onHandshake_(i)}else if(n===W2){this.log_("recvd end transmission on primary"),this.rx_=this.secondaryConn_;for(let i=0;i<this.pendingDataMessages.length;++i)this.onDataMessage_(this.pendingDataMessages[i]);this.pendingDataMessages=[],this.tryCleanupConnection()}else n===Vre?this.onConnectionShutdown_(r):n===j2?this.onReset_(r):n===Bre?tw("Server Error: "+r):n===H2?(this.log_("got pong on primary."),this.onPrimaryResponse_(),this.sendPingOnPrimaryIfNecessary_()):tw("Unknown control packet command: "+n)}}onHandshake_(e){let n=e.ts,r=e.v,i=e.h;this.sessionId=e.s,this.repoInfo_.host=i,this.state_===0&&(this.conn_.start(),this.onConnectionEstablished_(this.conn_,n),gy!==r&&xn("Protocol version mismatch detected"),this.tryStartUpgrade_())}tryStartUpgrade_(){let e=this.transportManager_.upgradeTransport();e&&this.startUpgrade_(e)}startUpgrade_(e){this.secondaryConn_=new e(this.nextTransportId_(),this.repoInfo_,this.applicationId_,this.appCheckToken_,this.authToken_,this.sessionId),this.secondaryResponsesRequired_=e.responsesRequiredToBeHealthy||0;let n=this.connReceiver_(this.secondaryConn_),r=this.disconnReceiver_(this.secondaryConn_);this.secondaryConn_.open(n,r),Vp(()=>{this.secondaryConn_&&(this.log_("Timed out trying to upgrade."),this.secondaryConn_.close())},Math.floor(xre))}onReset_(e){this.log_("Reset packet received. New host: "+e),this.repoInfo_.host=e,this.state_===1?this.close():(this.closeConnections_(),this.start_())}onConnectionEstablished_(e,n){this.log_("Realtime connection established."),this.conn_=e,this.state_=1,this.onReady_&&(this.onReady_(n,this.sessionId),this.onReady_=null),this.primaryResponsesRequired_===0?(this.log_("Primary connection is healthy."),this.isHealthy_=!0):Vp(()=>{this.sendPingOnPrimaryIfNecessary_()},Math.floor(kre))}sendPingOnPrimaryIfNecessary_(){!this.isHealthy_&&this.state_===1&&(this.log_("sending ping on primary."),this.sendData_({t:"c",d:{t:z2,d:{}}}))}onSecondaryConnectionLost_(){let e=this.secondaryConn_;this.secondaryConn_=null,(this.tx_===e||this.rx_===e)&&this.close()}onConnectionLost_(e){this.conn_=null,!e&&this.state_===0?(this.log_("Realtime connection failed."),this.repoInfo_.isCacheableHost()&&(Jc.remove("host:"+this.repoInfo_.host),this.repoInfo_.internalHost=this.repoInfo_.host)):this.state_===1&&this.log_("Realtime connection lost."),this.close()}onConnectionShutdown_(e){this.log_("Connection shutdown command received. Shutting down..."),this.onKill_&&(this.onKill_(e),this.onKill_=null),this.onDisconnect_=null,this.close()}sendData_(e){if(this.state_!==1)throw"Connection is not connected";this.tx_.send(e)}close(){this.state_!==2&&(this.log_("Closing realtime connection."),this.state_=2,this.closeConnections_(),this.onDisconnect_&&(this.onDisconnect_(),this.onDisconnect_=null))}closeConnections_(){this.log_("Shutting down all connections"),this.conn_&&(this.conn_.close(),this.conn_=null),this.secondaryConn_&&(this.secondaryConn_.close(),this.secondaryConn_=null),this.healthyTimeout_&&(clearTimeout(this.healthyTimeout_),this.healthyTimeout_=null)}};var Ty=class{put(e,n,r,i){}merge(e,n,r,i){}refreshAuthToken(e){}refreshAppCheckToken(e){}onDisconnectPut(e,n,r){}onDisconnectMerge(e,n,r){}onDisconnectCancel(e,n){}reportStats(e){}};var yy=class{constructor(e){this.allowedEvents_=e,this.listeners_={},q(Array.isArray(e)&&e.length>0,"Requires a non-empty array")}trigger(e,...n){if(Array.isArray(this.listeners_[e])){let r=[...this.listeners_[e]];for(let i=0;i<r.length;i++)r[i].callback.apply(r[i].context,n)}}on(e,n,r){this.validateEventType_(e),this.listeners_[e]=this.listeners_[e]||[],this.listeners_[e].push({callback:n,context:r});let i=this.getInitialEvent(e);i&&n.apply(r,i)}off(e,n,r){this.validateEventType_(e);let i=this.listeners_[e]||[];for(let o=0;o<i.length;o++)if(i[o].callback===n&&(!r||r===i[o].context)){i.splice(o,1);return}}validateEventType_(e){q(this.allowedEvents_.find(n=>n===e),"Unknown event: "+e)}};var Iy=class t extends yy{static getInstance(){return new t}constructor(){super(["online"]),this.online_=!0,typeof window<"u"&&typeof window.addEventListener<"u"&&!hp()&&(window.addEventListener("online",()=>{this.online_||(this.online_=!0,this.trigger("online",!0))},!1),window.addEventListener("offline",()=>{this.online_&&(this.online_=!1,this.trigger("online",!1))},!1))}getInitialEvent(e){return q(e==="online","Unknown event type: "+e),[this.online_]}currentlyOnline(){return this.online_}};var q2=32,K2=768,Be=class{constructor(e,n){if(n===void 0){this.pieces_=e.split("/");let r=0;for(let i=0;i<this.pieces_.length;i++)this.pieces_[i].length>0&&(this.pieces_[r]=this.pieces_[i],r++);this.pieces_.length=r,this.pieceNum_=0}else this.pieces_=e,this.pieceNum_=n}toString(){let e="";for(let n=this.pieceNum_;n<this.pieces_.length;n++)this.pieces_[n]!==""&&(e+="/"+this.pieces_[n]);return e||"/"}};function Ve(){return new Be("")}function Ne(t){return t.pieceNum_>=t.pieces_.length?null:t.pieces_[t.pieceNum_]}function ea(t){return t.pieces_.length-t.pieceNum_}function at(t){let e=t.pieceNum_;return e<t.pieces_.length&&e++,new Be(t.pieces_,e)}function Zw(t){return t.pieceNum_<t.pieces_.length?t.pieces_[t.pieces_.length-1]:null}function jre(t){let e="";for(let n=t.pieceNum_;n<t.pieces_.length;n++)t.pieces_[n]!==""&&(e+="/"+encodeURIComponent(String(t.pieces_[n])));return e||"/"}function $p(t,e=0){return t.pieces_.slice(t.pieceNum_+e)}function kj(t){if(t.pieceNum_>=t.pieces_.length)return null;let e=[];for(let n=t.pieceNum_;n<t.pieces_.length-1;n++)e.push(t.pieces_[n]);return new Be(e,0)}function Ct(t,e){let n=[];for(let r=t.pieceNum_;r<t.pieces_.length;r++)n.push(t.pieces_[r]);if(e instanceof Be)for(let r=e.pieceNum_;r<e.pieces_.length;r++)n.push(e.pieces_[r]);else{let r=e.split("/");for(let i=0;i<r.length;i++)r[i].length>0&&n.push(r[i])}return new Be(n,0)}function we(t){return t.pieceNum_>=t.pieces_.length}function zn(t,e){let n=Ne(t),r=Ne(e);if(n===null)return e;if(n===r)return zn(at(t),at(e));throw new Error("INTERNAL ERROR: innerPath ("+e+") is not within outerPath ("+t+")")}function Hre(t,e){let n=$p(t,0),r=$p(e,0);for(let i=0;i<n.length&&i<r.length;i++){let o=al(n[i],r[i]);if(o!==0)return o}return n.length===r.length?0:n.length<r.length?-1:1}function eb(t,e){if(ea(t)!==ea(e))return!1;for(let n=t.pieceNum_,r=e.pieceNum_;n<=t.pieces_.length;n++,r++)if(t.pieces_[n]!==e.pieces_[r])return!1;return!0}function jr(t,e){let n=t.pieceNum_,r=e.pieceNum_;if(ea(t)>ea(e))return!1;for(;n<t.pieces_.length;){if(t.pieces_[n]!==e.pieces_[r])return!1;++n,++r}return!0}var lw=class{constructor(e,n){this.errorPrefix_=n,this.parts_=$p(e,0),this.byteLength_=Math.max(1,this.parts_.length);for(let r=0;r<this.parts_.length;r++)this.byteLength_+=mp(this.parts_[r]);Fj(this)}};function $re(t,e){t.parts_.length>0&&(t.byteLength_+=1),t.parts_.push(e),t.byteLength_+=mp(e),Fj(t)}function Wre(t){let e=t.parts_.pop();t.byteLength_-=mp(e),t.parts_.length>0&&(t.byteLength_-=1)}function Fj(t){if(t.byteLength_>K2)throw new Error(t.errorPrefix_+"has a key path longer than "+K2+" bytes ("+t.byteLength_+").");if(t.parts_.length>q2)throw new Error(t.errorPrefix_+"path specified exceeds the maximum depth that can be written ("+q2+") or object contains a cycle "+Qc(t))}function Qc(t){return t.parts_.length===0?"":"in property '"+t.parts_.join(".")+"'"}var uw=class t extends yy{static getInstance(){return new t}constructor(){super(["visible"]);let e,n;typeof document<"u"&&typeof document.addEventListener<"u"&&(typeof document.hidden<"u"?(n="visibilitychange",e="hidden"):typeof document.mozHidden<"u"?(n="mozvisibilitychange",e="mozHidden"):typeof document.msHidden<"u"?(n="msvisibilitychange",e="msHidden"):typeof document.webkitHidden<"u"&&(n="webkitvisibilitychange",e="webkitHidden")),this.visible_=!0,n&&document.addEventListener(n,()=>{let r=!document[e];r!==this.visible_&&(this.visible_=r,this.trigger("visible",r))},!1)}getInitialEvent(e){return q(e==="visible","Unknown event type: "+e),[this.visible_]}};var kp=1e3,zre=300*1e3,Y2=30*1e3,qre=1.3,Kre=3e4,Yre="server_kill",X2=3,tb=(()=>{class t extends Ty{constructor(n,r,i,o,s,a,c,l){if(super(),this.repoInfo_=n,this.applicationId_=r,this.onDataUpdate_=i,this.onConnectStatus_=o,this.onServerInfoUpdate_=s,this.authTokenProvider_=a,this.appCheckTokenProvider_=c,this.authOverride_=l,this.id=t.nextPersistentConnectionId_++,this.log_=rg("p:"+this.id+":"),this.interruptReasons_={},this.listens=new Map,this.outstandingPuts_=[],this.outstandingGets_=[],this.outstandingPutCount_=0,this.outstandingGetCount_=0,this.onDisconnectRequestQueue_=[],this.connected_=!1,this.reconnectDelay_=kp,this.maxReconnectDelay_=zre,this.securityDebugCallback_=null,this.lastSessionId=null,this.establishConnectionTimer_=null,this.visible_=!1,this.requestCBHash_={},this.requestNumber_=0,this.realtime_=null,this.authToken_=null,this.appCheckToken_=null,this.forceTokenRefresh_=!1,this.invalidAuthTokenCount_=0,this.invalidAppCheckTokenCount_=0,this.firstConnection_=!0,this.lastConnectionAttemptTime_=null,this.lastConnectionEstablishedTime_=null,l&&!Ki())throw new Error("Auth override specified in options, but not supported on non Node.js platforms");uw.getInstance().on("visible",this.onVisible_,this),n.host.indexOf("fblocal")===-1&&Iy.getInstance().on("online",this.onOnline_,this)}sendRequest(n,r,i){let o=++this.requestNumber_,s={r:o,a:n,b:r};this.log_(xt(s)),q(this.connected_,"sendRequest call when we're not connected not allowed."),this.realtime_.sendRequest(s),i&&(this.requestCBHash_[o]=i)}get(n){this.initConnection_();let r=new cn,o={action:"g",request:{p:n._path.toString(),q:n._queryObject},onComplete:a=>{let c=a.d;a.s==="ok"?r.resolve(c):r.reject(c)}};this.outstandingGets_.push(o),this.outstandingGetCount_++;let s=this.outstandingGets_.length-1;return this.connected_&&this.sendGet_(s),r.promise}listen(n,r,i,o){this.initConnection_();let s=n._queryIdentifier,a=n._path.toString();this.log_("Listen called for "+a+" "+s),this.listens.has(a)||this.listens.set(a,new Map),q(n._queryParams.isDefault()||!n._queryParams.loadsAllData(),"listen() called for non-default but complete query"),q(!this.listens.get(a).has(s),"listen() called twice for same path/queryId.");let c={onComplete:o,hashFn:r,query:n,tag:i};this.listens.get(a).set(s,c),this.connected_&&this.sendListen_(c)}sendGet_(n){let r=this.outstandingGets_[n];this.sendRequest("g",r.request,i=>{delete this.outstandingGets_[n],this.outstandingGetCount_--,this.outstandingGetCount_===0&&(this.outstandingGets_=[]),r.onComplete&&r.onComplete(i)})}sendListen_(n){let r=n.query,i=r._path.toString(),o=r._queryIdentifier;this.log_("Listen on "+i+" for "+o);let s={p:i},a="q";n.tag&&(s.q=r._queryObject,s.t=n.tag),s.h=n.hashFn(),this.sendRequest(a,s,c=>{let l=c.d,d=c.s;t.warnOnListenWarnings_(l,r),(this.listens.get(i)&&this.listens.get(i).get(o))===n&&(this.log_("listen response",c),d!=="ok"&&this.removeListen_(i,o),n.onComplete&&n.onComplete(d,l))})}static warnOnListenWarnings_(n,r){if(n&&typeof n=="object"&&Vr(n,"w")){let i=Fs(n,"w");if(Array.isArray(i)&&~i.indexOf("no_index")){let o='".indexOn": "'+r._queryParams.getIndex().toString()+'"',s=r._path.toString();xn(`Using an unspecified index. Your data will be downloaded and filtered on the client. Consider adding ${o} at ${s} to your security rules for better performance.`)}}}refreshAuthToken(n){this.authToken_=n,this.log_("Auth token refreshed"),this.authToken_?this.tryAuth():this.connected_&&this.sendRequest("unauth",{},()=>{}),this.reduceReconnectDelayIfAdminCredential_(n)}reduceReconnectDelayIfAdminCredential_(n){(n&&n.length===40||EB(n))&&(this.log_("Admin auth credential detected. Reducing max reconnect time."),this.maxReconnectDelay_=Y2)}refreshAppCheckToken(n){this.appCheckToken_=n,this.log_("App check token refreshed"),this.appCheckToken_?this.tryAppCheck():this.connected_&&this.sendRequest("unappeck",{},()=>{})}tryAuth(){if(this.connected_&&this.authToken_){let n=this.authToken_,r=mB(n)?"auth":"gauth",i={cred:n};this.authOverride_===null?i.noauth=!0:typeof this.authOverride_=="object"&&(i.authvar=this.authOverride_),this.sendRequest(r,i,o=>{let s=o.s,a=o.d||"error";this.authToken_===n&&(s==="ok"?this.invalidAuthTokenCount_=0:this.onAuthRevoked_(s,a))})}}tryAppCheck(){this.connected_&&this.appCheckToken_&&this.sendRequest("appcheck",{token:this.appCheckToken_},n=>{let r=n.s,i=n.d||"error";r==="ok"?this.invalidAppCheckTokenCount_=0:this.onAppCheckRevoked_(r,i)})}unlisten(n,r){let i=n._path.toString(),o=n._queryIdentifier;this.log_("Unlisten called for "+i+" "+o),q(n._queryParams.isDefault()||!n._queryParams.loadsAllData(),"unlisten() called for non-default but complete query"),this.removeListen_(i,o)&&this.connected_&&this.sendUnlisten_(i,o,n._queryObject,r)}sendUnlisten_(n,r,i,o){this.log_("Unlisten on "+n+" for "+r);let s={p:n},a="n";o&&(s.q=i,s.t=o),this.sendRequest(a,s)}onDisconnectPut(n,r,i){this.initConnection_(),this.connected_?this.sendOnDisconnect_("o",n,r,i):this.onDisconnectRequestQueue_.push({pathString:n,action:"o",data:r,onComplete:i})}onDisconnectMerge(n,r,i){this.initConnection_(),this.connected_?this.sendOnDisconnect_("om",n,r,i):this.onDisconnectRequestQueue_.push({pathString:n,action:"om",data:r,onComplete:i})}onDisconnectCancel(n,r){this.initConnection_(),this.connected_?this.sendOnDisconnect_("oc",n,null,r):this.onDisconnectRequestQueue_.push({pathString:n,action:"oc",data:null,onComplete:r})}sendOnDisconnect_(n,r,i,o){let s={p:r,d:i};this.log_("onDisconnect "+n,s),this.sendRequest(n,s,a=>{o&&setTimeout(()=>{o(a.s,a.d)},Math.floor(0))})}put(n,r,i,o){this.putInternal("p",n,r,i,o)}merge(n,r,i,o){this.putInternal("m",n,r,i,o)}putInternal(n,r,i,o,s){this.initConnection_();let a={p:r,d:i};s!==void 0&&(a.h=s),this.outstandingPuts_.push({action:n,request:a,onComplete:o}),this.outstandingPutCount_++;let c=this.outstandingPuts_.length-1;this.connected_?this.sendPut_(c):this.log_("Buffering put: "+r)}sendPut_(n){let r=this.outstandingPuts_[n].action,i=this.outstandingPuts_[n].request,o=this.outstandingPuts_[n].onComplete;this.outstandingPuts_[n].queued=this.connected_,this.sendRequest(r,i,s=>{this.log_(r+" response",s),delete this.outstandingPuts_[n],this.outstandingPutCount_--,this.outstandingPutCount_===0&&(this.outstandingPuts_=[]),o&&o(s.s,s.d)})}reportStats(n){if(this.connected_){let r={c:n};this.log_("reportStats",r),this.sendRequest("s",r,i=>{if(i.s!=="ok"){let s=i.d;this.log_("reportStats","Error sending stats: "+s)}})}}onDataMessage_(n){if("r"in n){this.log_("from server: "+xt(n));let r=n.r,i=this.requestCBHash_[r];i&&(delete this.requestCBHash_[r],i(n.b))}else{if("error"in n)throw"A server-side error has occurred: "+n.error;"a"in n&&this.onDataPush_(n.a,n.b)}}onDataPush_(n,r){this.log_("handleServerMessage",n,r),n==="d"?this.onDataUpdate_(r.p,r.d,!1,r.t):n==="m"?this.onDataUpdate_(r.p,r.d,!0,r.t):n==="c"?this.onListenRevoked_(r.p,r.q):n==="ac"?this.onAuthRevoked_(r.s,r.d):n==="apc"?this.onAppCheckRevoked_(r.s,r.d):n==="sd"?this.onSecurityDebugPacket_(r):tw("Unrecognized action received from server: "+xt(n)+`
|
|
151
151
|
Are you using the latest client?`)}onReady_(n,r){this.log_("connection ready"),this.connected_=!0,this.lastConnectionEstablishedTime_=new Date().getTime(),this.handleTimestamp_(n),this.lastSessionId=r,this.firstConnection_&&this.sendConnectStats_(),this.restoreState_(),this.firstConnection_=!1,this.onConnectStatus_(!0)}scheduleConnect_(n){q(!this.realtime_,"Scheduling a connect when we're already connected/ing?"),this.establishConnectionTimer_&&clearTimeout(this.establishConnectionTimer_),this.establishConnectionTimer_=setTimeout(()=>{this.establishConnectionTimer_=null,this.establishConnection_()},Math.floor(n))}initConnection_(){!this.realtime_&&this.firstConnection_&&this.scheduleConnect_(0)}onVisible_(n){n&&!this.visible_&&this.reconnectDelay_===this.maxReconnectDelay_&&(this.log_("Window became visible. Reducing delay."),this.reconnectDelay_=kp,this.realtime_||this.scheduleConnect_(0)),this.visible_=n}onOnline_(n){n?(this.log_("Browser went online."),this.reconnectDelay_=kp,this.realtime_||this.scheduleConnect_(0)):(this.log_("Browser went offline. Killing connection."),this.realtime_&&this.realtime_.close())}onRealtimeDisconnect_(){if(this.log_("data client disconnected"),this.connected_=!1,this.realtime_=null,this.cancelSentTransactions_(),this.requestCBHash_={},this.shouldReconnect_()){this.visible_?this.lastConnectionEstablishedTime_&&(new Date().getTime()-this.lastConnectionEstablishedTime_>Kre&&(this.reconnectDelay_=kp),this.lastConnectionEstablishedTime_=null):(this.log_("Window isn't visible. Delaying reconnect."),this.reconnectDelay_=this.maxReconnectDelay_,this.lastConnectionAttemptTime_=new Date().getTime());let n=Math.max(0,new Date().getTime()-this.lastConnectionAttemptTime_),r=Math.max(0,this.reconnectDelay_-n);r=Math.random()*r,this.log_("Trying to reconnect in "+r+"ms"),this.scheduleConnect_(r),this.reconnectDelay_=Math.min(this.maxReconnectDelay_,this.reconnectDelay_*qre)}this.onConnectStatus_(!1)}establishConnection_(){return y(this,null,function*(){if(this.shouldReconnect_()){this.log_("Making a connection attempt"),this.lastConnectionAttemptTime_=new Date().getTime(),this.lastConnectionEstablishedTime_=null;let n=this.onDataMessage_.bind(this),r=this.onReady_.bind(this),i=this.onRealtimeDisconnect_.bind(this),o=this.id+":"+t.nextConnectionId_++,s=this.lastSessionId,a=!1,c=null,l=function(){c?c.close():(a=!0,i())},d=function(f){q(c,"sendRequest call when we're not connected not allowed."),c.sendRequest(f)};this.realtime_={close:l,sendRequest:d};let h=this.forceTokenRefresh_;this.forceTokenRefresh_=!1;try{let[f,g]=yield Promise.all([this.authTokenProvider_.getToken(h),this.appCheckTokenProvider_.getToken(h)]);a?un("getToken() completed but was canceled"):(un("getToken() completed. Creating connection."),this.authToken_=f&&f.accessToken,this.appCheckToken_=g&&g.token,c=new cw(o,this.repoInfo_,this.applicationId_,this.appCheckToken_,this.authToken_,n,r,i,E=>{xn(E+" ("+this.repoInfo_.toString()+")"),this.interrupt(Yre)},s))}catch(f){this.log_("Failed to get token: "+f),a||(this.repoInfo_.nodeAdmin&&xn(f),l())}}})}interrupt(n){un("Interrupting connection for reason: "+n),this.interruptReasons_[n]=!0,this.realtime_?this.realtime_.close():(this.establishConnectionTimer_&&(clearTimeout(this.establishConnectionTimer_),this.establishConnectionTimer_=null),this.connected_&&this.onRealtimeDisconnect_())}resume(n){un("Resuming connection for reason: "+n),delete this.interruptReasons_[n],fp(this.interruptReasons_)&&(this.reconnectDelay_=kp,this.realtime_||this.scheduleConnect_(0))}handleTimestamp_(n){let r=n-new Date().getTime();this.onServerInfoUpdate_({serverTimeOffset:r})}cancelSentTransactions_(){for(let n=0;n<this.outstandingPuts_.length;n++){let r=this.outstandingPuts_[n];r&&"h"in r.request&&r.queued&&(r.onComplete&&r.onComplete("disconnect"),delete this.outstandingPuts_[n],this.outstandingPutCount_--)}this.outstandingPutCount_===0&&(this.outstandingPuts_=[])}onListenRevoked_(n,r){let i;r?i=r.map(s=>Qw(s)).join("$"):i="default";let o=this.removeListen_(n,i);o&&o.onComplete&&o.onComplete("permission_denied")}removeListen_(n,r){let i=new Be(n).toString(),o;if(this.listens.has(i)){let s=this.listens.get(i);o=s.get(r),s.delete(r),s.size===0&&this.listens.delete(i)}else o=void 0;return o}onAuthRevoked_(n,r){un("Auth token revoked: "+n+"/"+r),this.authToken_=null,this.forceTokenRefresh_=!0,this.realtime_.close(),(n==="invalid_token"||n==="permission_denied")&&(this.invalidAuthTokenCount_++,this.invalidAuthTokenCount_>=X2&&(this.reconnectDelay_=Y2,this.authTokenProvider_.notifyForInvalidToken()))}onAppCheckRevoked_(n,r){un("App check token revoked: "+n+"/"+r),this.appCheckToken_=null,this.forceTokenRefresh_=!0,(n==="invalid_token"||n==="permission_denied")&&(this.invalidAppCheckTokenCount_++,this.invalidAppCheckTokenCount_>=X2&&this.appCheckTokenProvider_.notifyForInvalidToken())}onSecurityDebugPacket_(n){this.securityDebugCallback_?this.securityDebugCallback_(n):"msg"in n&&console.log("FIREBASE: "+n.msg.replace(`
|
|
152
152
|
`,`
|
|
153
|
-
FIREBASE: `))}restoreState_(){this.tryAuth(),this.tryAppCheck();for(let n of this.listens.values())for(let r of n.values())this.sendListen_(r);for(let n=0;n<this.outstandingPuts_.length;n++)this.outstandingPuts_[n]&&this.sendPut_(n);for(;this.onDisconnectRequestQueue_.length;){let n=this.onDisconnectRequestQueue_.shift();this.sendOnDisconnect_(n.action,n.pathString,n.data,n.onComplete)}for(let n=0;n<this.outstandingGets_.length;n++)this.outstandingGets_[n]&&this.sendGet_(n)}sendConnectStats_(){let n={},r="js";Ki()&&(this.repoInfo_.nodeAdmin?r="admin_node":r="node"),n["sdk."+r+"."+Xw.replace(/\./g,"-")]=1,hp()?n["framework.cordova"]=1:UT()&&(n["framework.reactnative"]=1),this.reportStats(n)}shouldReconnect_(){let n=Iy.getInstance().currentlyOnline();return fp(this.interruptReasons_)&&n}}t.nextPersistentConnectionId_=0,t.nextConnectionId_=0;return t})(),Oe=class t{constructor(e,n){this.name=e,this.node=n}static Wrap(e,n){return new t(e,n)}};var Sd=class{getCompare(){return this.compare.bind(this)}indexedValueChanged(e,n){let r=new Oe(tl,e),i=new Oe(tl,n);return this.compare(r,i)!==0}minPost(){return Oe.MIN}};var py,vy=class extends Sd{static get __EMPTY_NODE(){return py}static set __EMPTY_NODE(e){py=e}compare(e,n){return al(e.name,n.name)}isDefinedOn(e){throw kc("KeyIndex.isDefinedOn not expected to be called.")}indexedValueChanged(e,n){return!1}minPost(){return Oe.MIN}maxPost(){return new Oe(Zs,py)}makePost(e,n){return q(typeof e=="string","KeyIndex indexValue must always be a string."),new Oe(e,py)}toString(){return".key"}},el=new vy;var Id=class{constructor(e,n,r,i,o=null){this.isReverse_=i,this.resultGenerator_=o,this.nodeStack_=[];let s=1;for(;!e.isEmpty();)if(e=e,s=n?r(e.key,n):1,i&&(s*=-1),s<0)this.isReverse_?e=e.left:e=e.right;else if(s===0){this.nodeStack_.push(e);break}else this.nodeStack_.push(e),this.isReverse_?e=e.right:e=e.left}getNext(){if(this.nodeStack_.length===0)return null;let e=this.nodeStack_.pop(),n;if(this.resultGenerator_?n=this.resultGenerator_(e.key,e.value):n={key:e.key,value:e.value},this.isReverse_)for(e=e.left;!e.isEmpty();)this.nodeStack_.push(e),e=e.right;else for(e=e.right;!e.isEmpty();)this.nodeStack_.push(e),e=e.left;return n}hasNext(){return this.nodeStack_.length>0}peek(){if(this.nodeStack_.length===0)return null;let e=this.nodeStack_[this.nodeStack_.length-1];return this.resultGenerator_?this.resultGenerator_(e.key,e.value):{key:e.key,value:e.value}}},ui=(()=>{class t{constructor(n,r,i,o,s){this.key=n,this.value=r,this.color=i??t.RED,this.left=o??Hr.EMPTY_NODE,this.right=s??Hr.EMPTY_NODE}copy(n,r,i,o,s){return new t(n??this.key,r??this.value,i??this.color,o??this.left,s??this.right)}count(){return this.left.count()+1+this.right.count()}isEmpty(){return!1}inorderTraversal(n){return this.left.inorderTraversal(n)||!!n(this.key,this.value)||this.right.inorderTraversal(n)}reverseTraversal(n){return this.right.reverseTraversal(n)||n(this.key,this.value)||this.left.reverseTraversal(n)}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(n,r,i){let o=this,s=i(n,o.key);return s<0?o=o.copy(null,null,null,o.left.insert(n,r,i),null):s===0?o=o.copy(null,r,null,null,null):o=o.copy(null,null,null,null,o.right.insert(n,r,i)),o.fixUp_()}removeMin_(){if(this.left.isEmpty())return Hr.EMPTY_NODE;let n=this;return!n.left.isRed_()&&!n.left.left.isRed_()&&(n=n.moveRedLeft_()),n=n.copy(null,null,null,n.left.removeMin_(),null),n.fixUp_()}remove(n,r){let i,o;if(i=this,r(n,i.key)<0)!i.left.isEmpty()&&!i.left.isRed_()&&!i.left.left.isRed_()&&(i=i.moveRedLeft_()),i=i.copy(null,null,null,i.left.remove(n,r),null);else{if(i.left.isRed_()&&(i=i.rotateRight_()),!i.right.isEmpty()&&!i.right.isRed_()&&!i.right.left.isRed_()&&(i=i.moveRedRight_()),r(n,i.key)===0){if(i.right.isEmpty())return Hr.EMPTY_NODE;o=i.right.min_(),i=i.copy(o.key,o.value,null,null,i.right.removeMin_())}i=i.copy(null,null,null,null,i.right.remove(n,r))}return i.fixUp_()}isRed_(){return this.color}fixUp_(){let n=this;return n.right.isRed_()&&!n.left.isRed_()&&(n=n.rotateLeft_()),n.left.isRed_()&&n.left.left.isRed_()&&(n=n.rotateRight_()),n.left.isRed_()&&n.right.isRed_()&&(n=n.colorFlip_()),n}moveRedLeft_(){let n=this.colorFlip_();return n.right.left.isRed_()&&(n=n.copy(null,null,null,null,n.right.rotateRight_()),n=n.rotateLeft_(),n=n.colorFlip_()),n}moveRedRight_(){let n=this.colorFlip_();return n.left.left.isRed_()&&(n=n.rotateRight_(),n=n.colorFlip_()),n}rotateLeft_(){let n=this.copy(null,null,t.RED,null,this.right.left);return this.right.copy(null,null,this.color,n,null)}rotateRight_(){let n=this.copy(null,null,t.RED,this.left.right,null);return this.left.copy(null,null,this.color,null,n)}colorFlip_(){let n=this.left.copy(null,null,!this.left.color,null,null),r=this.right.copy(null,null,!this.right.color,null,null);return this.copy(null,null,!this.color,n,r)}checkMaxDepth_(){let n=this.check_();return Math.pow(2,n)<=this.count()+1}check_(){if(this.isRed_()&&this.left.isRed_())throw new Error("Red node has red child("+this.key+","+this.value+")");if(this.right.isRed_())throw new Error("Right child of ("+this.key+","+this.value+") is red");let n=this.left.check_();if(n!==this.right.check_())throw new Error("Black depths differ");return n+(this.isRed_()?0:1)}}return t.RED=!0,t.BLACK=!1,t})(),dw=class{copy(e,n,r,i,o){return this}insert(e,n,r){return new ui(e,n,null)}remove(e,n){return this}count(){return 0}isEmpty(){return!0}inorderTraversal(e){return!1}reverseTraversal(e){return!1}minKey(){return null}maxKey(){return null}check_(){return 0}isRed_(){return!1}},Hr=class t{constructor(e,n=t.EMPTY_NODE){this.comparator_=e,this.root_=n}insert(e,n){return new t(this.comparator_,this.root_.insert(e,n,this.comparator_).copy(null,null,ui.BLACK,null,null))}remove(e){return new t(this.comparator_,this.root_.remove(e,this.comparator_).copy(null,null,ui.BLACK,null,null))}get(e){let n,r=this.root_;for(;!r.isEmpty();){if(n=this.comparator_(e,r.key),n===0)return r.value;n<0?r=r.left:n>0&&(r=r.right)}return null}getPredecessorKey(e){let n,r=this.root_,i=null;for(;!r.isEmpty();)if(n=this.comparator_(e,r.key),n===0){if(r.left.isEmpty())return i?i.key:null;for(r=r.left;!r.right.isEmpty();)r=r.right;return r.key}else n<0?r=r.left:n>0&&(i=r,r=r.right);throw new Error("Attempted to find predecessor key for a nonexistent key. What gives?")}isEmpty(){return this.root_.isEmpty()}count(){return this.root_.count()}minKey(){return this.root_.minKey()}maxKey(){return this.root_.maxKey()}inorderTraversal(e){return this.root_.inorderTraversal(e)}reverseTraversal(e){return this.root_.reverseTraversal(e)}getIterator(e){return new Id(this.root_,null,this.comparator_,!1,e)}getIteratorFrom(e,n){return new Id(this.root_,e,this.comparator_,!1,n)}getReverseIteratorFrom(e,n){return new Id(this.root_,e,this.comparator_,!0,n)}getReverseIterator(e){return new Id(this.root_,null,this.comparator_,!0,e)}};Hr.EMPTY_NODE=new dw;function Xre(t,e){return al(t.name,e.name)}function nb(t,e){return al(t,e)}var hw;function Qre(t){hw=t}var Uj=function(t){return typeof t=="number"?"number:"+Tj(t):"string:"+t},Vj=function(t){if(t.isLeafNode()){let e=t.val();q(typeof e=="string"||typeof e=="number"||typeof e=="object"&&Vr(e,".sv"),"Priority must be a string or number.")}else q(t===hw||t.isEmpty(),"priority of unexpected type.");q(t===hw||t.getPriority().isEmpty(),"Priority nodes can't have a priority of their own.")};var Q2,Ad=(()=>{class t{static set __childrenNodeConstructor(n){Q2=n}static get __childrenNodeConstructor(){return Q2}constructor(n,r=t.__childrenNodeConstructor.EMPTY_NODE){this.value_=n,this.priorityNode_=r,this.lazyHash_=null,q(this.value_!==void 0&&this.value_!==null,"LeafNode shouldn't be created with null/undefined value."),Vj(this.priorityNode_)}isLeafNode(){return!0}getPriority(){return this.priorityNode_}updatePriority(n){return new t(this.value_,n)}getImmediateChild(n){return n===".priority"?this.priorityNode_:t.__childrenNodeConstructor.EMPTY_NODE}getChild(n){return we(n)?this:Ne(n)===".priority"?this.priorityNode_:t.__childrenNodeConstructor.EMPTY_NODE}hasChild(){return!1}getPredecessorChildName(n,r){return null}updateImmediateChild(n,r){return n===".priority"?this.updatePriority(r):r.isEmpty()&&n!==".priority"?this:t.__childrenNodeConstructor.EMPTY_NODE.updateImmediateChild(n,r).updatePriority(this.priorityNode_)}updateChild(n,r){let i=Ne(n);return i===null?r:r.isEmpty()&&i!==".priority"?this:(q(i!==".priority"||ea(n)===1,".priority must be the last token in a path"),this.updateImmediateChild(i,t.__childrenNodeConstructor.EMPTY_NODE.updateChild(at(n),r)))}isEmpty(){return!1}numChildren(){return 0}forEachChild(n,r){return!1}val(n){return n&&!this.getPriority().isEmpty()?{".value":this.getValue(),".priority":this.getPriority().val()}:this.getValue()}hash(){if(this.lazyHash_===null){let n="";this.priorityNode_.isEmpty()||(n+="priority:"+Uj(this.priorityNode_.val())+":");let r=typeof this.value_;n+=r+":",r==="number"?n+=Tj(this.value_):n+=this.value_,this.lazyHash_=Ej(n)}return this.lazyHash_}getValue(){return this.value_}compareTo(n){return n===t.__childrenNodeConstructor.EMPTY_NODE?1:n instanceof t.__childrenNodeConstructor?-1:(q(n.isLeafNode(),"Unknown node type"),this.compareToLeafNode_(n))}compareToLeafNode_(n){let r=typeof n.value_,i=typeof this.value_,o=t.VALUE_TYPE_ORDER.indexOf(r),s=t.VALUE_TYPE_ORDER.indexOf(i);return q(o>=0,"Unknown leaf type: "+r),q(s>=0,"Unknown leaf type: "+i),o===s?i==="object"?0:this.value_<n.value_?-1:this.value_===n.value_?0:1:s-o}withIndex(){return this}isIndexed(){return!0}equals(n){if(n===this)return!0;if(n.isLeafNode()){let r=n;return this.value_===r.value_&&this.priorityNode_.equals(r.priorityNode_)}else return!1}}t.VALUE_TYPE_ORDER=["object","boolean","number","string"];return t})(),Bj,Gj;function Jre(t){Bj=t}function Zre(t){Gj=t}var fw=class extends Sd{compare(e,n){let r=e.node.getPriority(),i=n.node.getPriority(),o=r.compareTo(i);return o===0?al(e.name,n.name):o}isDefinedOn(e){return!e.getPriority().isEmpty()}indexedValueChanged(e,n){return!e.getPriority().equals(n.getPriority())}minPost(){return Oe.MIN}maxPost(){return new Oe(Zs,new Ad("[PRIORITY-POST]",Gj))}makePost(e,n){let r=Bj(e);return new Oe(n,new Ad("[PRIORITY-POST]",r))}toString(){return".priority"}},ft=new fw;var eie=Math.log(2),pw=class{constructor(e){let n=o=>parseInt(Math.log(o)/eie,10),r=o=>parseInt(Array(o+1).join("1"),2);this.count=n(e+1),this.current_=this.count-1;let i=r(this.count);this.bits_=e+1&i}nextBitIsOne(){let e=!(this.bits_&1<<this.current_);return this.current_--,e}},Sy=function(t,e,n,r){t.sort(e);let i=function(c,l){let d=l-c,h,f;if(d===0)return null;if(d===1)return h=t[c],f=n?n(h):h,new ui(f,h.node,ui.BLACK,null,null);{let g=parseInt(d/2,10)+c,E=i(c,g),I=i(g+1,l);return h=t[g],f=n?n(h):h,new ui(f,h.node,ui.BLACK,E,I)}},o=function(c){let l=null,d=null,h=t.length,f=function(E,I){let S=h-E,L=h;h-=E;let V=i(S+1,L),K=t[S],oe=n?n(K):K;g(new ui(oe,K.node,I,null,V))},g=function(E){l?(l.left=E,l=E):(d=E,l=E)};for(let E=0;E<c.count;++E){let I=c.nextBitIsOne(),S=Math.pow(2,c.count-(E+1));I?f(S,ui.BLACK):(f(S,ui.BLACK),f(S,ui.RED))}return d},s=new pw(t.length),a=o(s);return new Hr(r||e,a)};var KN,Td={},Cd=class t{static get Default(){return q(Td&&ft,"ChildrenNode.ts has not been loaded"),KN=KN||new t({".priority":Td},{".priority":ft}),KN}constructor(e,n){this.indexes_=e,this.indexSet_=n}get(e){let n=Fs(this.indexes_,e);if(!n)throw new Error("No index defined for "+e);return n instanceof Hr?n:null}hasIndex(e){return Vr(this.indexSet_,e.toString())}addIndex(e,n){q(e!==el,"KeyIndex always exists and isn't meant to be added to the IndexMap.");let r=[],i=!1,o=n.getIterator(Oe.Wrap),s=o.getNext();for(;s;)i=i||e.isDefinedOn(s.node),r.push(s),s=o.getNext();let a;i?a=Sy(r,e.getCompare()):a=Td;let c=e.toString(),l=Object.assign({},this.indexSet_);l[c]=e;let d=Object.assign({},this.indexes_);return d[c]=a,new t(d,l)}addToIndexes(e,n){let r=pp(this.indexes_,(i,o)=>{let s=Fs(this.indexSet_,o);if(q(s,"Missing index implementation for "+o),i===Td)if(s.isDefinedOn(e.node)){let a=[],c=n.getIterator(Oe.Wrap),l=c.getNext();for(;l;)l.name!==e.name&&a.push(l),l=c.getNext();return a.push(e),Sy(a,s.getCompare())}else return Td;else{let a=n.get(e.name),c=i;return a&&(c=c.remove(new Oe(e.name,a))),c.insert(e,e.node)}});return new t(r,this.indexSet_)}removeFromIndexes(e,n){let r=pp(this.indexes_,i=>{if(i===Td)return i;{let o=n.get(e.name);return o?i.remove(new Oe(e.name,o)):i}});return new t(r,this.indexSet_)}};var Fp,ve=(()=>{class t{static get EMPTY_NODE(){return Fp||(Fp=new t(new Hr(nb),null,Cd.Default))}constructor(n,r,i){this.children_=n,this.priorityNode_=r,this.indexMap_=i,this.lazyHash_=null,this.priorityNode_&&Vj(this.priorityNode_),this.children_.isEmpty()&&q(!this.priorityNode_||this.priorityNode_.isEmpty(),"An empty node cannot have a priority")}isLeafNode(){return!1}getPriority(){return this.priorityNode_||Fp}updatePriority(n){return this.children_.isEmpty()?this:new t(this.children_,n,this.indexMap_)}getImmediateChild(n){if(n===".priority")return this.getPriority();{let r=this.children_.get(n);return r===null?Fp:r}}getChild(n){let r=Ne(n);return r===null?this:this.getImmediateChild(r).getChild(at(n))}hasChild(n){return this.children_.get(n)!==null}updateImmediateChild(n,r){if(q(r,"We should always be passing snapshot nodes"),n===".priority")return this.updatePriority(r);{let i=new Oe(n,r),o,s;r.isEmpty()?(o=this.children_.remove(n),s=this.indexMap_.removeFromIndexes(i,this.children_)):(o=this.children_.insert(n,r),s=this.indexMap_.addToIndexes(i,this.children_));let a=o.isEmpty()?Fp:this.priorityNode_;return new t(o,a,s)}}updateChild(n,r){let i=Ne(n);if(i===null)return r;{q(Ne(n)!==".priority"||ea(n)===1,".priority must be the last token in a path");let o=this.getImmediateChild(i).updateChild(at(n),r);return this.updateImmediateChild(i,o)}}isEmpty(){return this.children_.isEmpty()}numChildren(){return this.children_.count()}val(n){if(this.isEmpty())return null;let r={},i=0,o=0,s=!0;if(this.forEachChild(ft,(a,c)=>{r[a]=c.val(n),i++,s&&t.INTEGER_REGEXP_.test(a)?o=Math.max(o,Number(a)):s=!1}),!n&&s&&o<2*i){let a=[];for(let c in r)a[c]=r[c];return a}else return n&&!this.getPriority().isEmpty()&&(r[".priority"]=this.getPriority().val()),r}hash(){if(this.lazyHash_===null){let n="";this.getPriority().isEmpty()||(n+="priority:"+Uj(this.getPriority().val())+":"),this.forEachChild(ft,(r,i)=>{let o=i.hash();o!==""&&(n+=":"+r+":"+o)}),this.lazyHash_=n===""?"":Ej(n)}return this.lazyHash_}getPredecessorChildName(n,r,i){let o=this.resolveIndex_(i);if(o){let s=o.getPredecessorKey(new Oe(n,r));return s?s.name:null}else return this.children_.getPredecessorKey(n)}getFirstChildName(n){let r=this.resolveIndex_(n);if(r){let i=r.minKey();return i&&i.name}else return this.children_.minKey()}getFirstChild(n){let r=this.getFirstChildName(n);return r?new Oe(r,this.children_.get(r)):null}getLastChildName(n){let r=this.resolveIndex_(n);if(r){let i=r.maxKey();return i&&i.name}else return this.children_.maxKey()}getLastChild(n){let r=this.getLastChildName(n);return r?new Oe(r,this.children_.get(r)):null}forEachChild(n,r){let i=this.resolveIndex_(n);return i?i.inorderTraversal(o=>r(o.name,o.node)):this.children_.inorderTraversal(r)}getIterator(n){return this.getIteratorFrom(n.minPost(),n)}getIteratorFrom(n,r){let i=this.resolveIndex_(r);if(i)return i.getIteratorFrom(n,o=>o);{let o=this.children_.getIteratorFrom(n.name,Oe.Wrap),s=o.peek();for(;s!=null&&r.compare(s,n)<0;)o.getNext(),s=o.peek();return o}}getReverseIterator(n){return this.getReverseIteratorFrom(n.maxPost(),n)}getReverseIteratorFrom(n,r){let i=this.resolveIndex_(r);if(i)return i.getReverseIteratorFrom(n,o=>o);{let o=this.children_.getReverseIteratorFrom(n.name,Oe.Wrap),s=o.peek();for(;s!=null&&r.compare(s,n)>0;)o.getNext(),s=o.peek();return o}}compareTo(n){return this.isEmpty()?n.isEmpty()?0:-1:n.isLeafNode()||n.isEmpty()?1:n===ig?-1:0}withIndex(n){if(n===el||this.indexMap_.hasIndex(n))return this;{let r=this.indexMap_.addIndex(n,this.children_);return new t(this.children_,this.priorityNode_,r)}}isIndexed(n){return n===el||this.indexMap_.hasIndex(n)}equals(n){if(n===this)return!0;if(n.isLeafNode())return!1;{let r=n;if(this.getPriority().equals(r.getPriority()))if(this.children_.count()===r.children_.count()){let i=this.getIterator(ft),o=r.getIterator(ft),s=i.getNext(),a=o.getNext();for(;s&&a;){if(s.name!==a.name||!s.node.equals(a.node))return!1;s=i.getNext(),a=o.getNext()}return s===null&&a===null}else return!1;else return!1}}resolveIndex_(n){return n===el?null:this.indexMap_.get(n.toString())}}return t.INTEGER_REGEXP_=/^(0|[1-9]\d*)$/,t})(),gw=class extends ve{constructor(){super(new Hr(nb),ve.EMPTY_NODE,Cd.Default)}compareTo(e){return e===this?0:1}equals(e){return e===this}getPriority(){return this}getImmediateChild(e){return ve.EMPTY_NODE}isEmpty(){return!1}},ig=new gw;Object.defineProperties(Oe,{MIN:{value:new Oe(tl,ve.EMPTY_NODE)},MAX:{value:new Oe(Zs,ig)}});vy.__EMPTY_NODE=ve.EMPTY_NODE;Ad.__childrenNodeConstructor=ve;Qre(ig);Zre(ig);var tie=!0;function At(t,e=null){if(t===null)return ve.EMPTY_NODE;if(typeof t=="object"&&".priority"in t&&(e=t[".priority"]),q(e===null||typeof e=="string"||typeof e=="number"||typeof e=="object"&&".sv"in e,"Invalid priority type found: "+typeof e),typeof t=="object"&&".value"in t&&t[".value"]!==null&&(t=t[".value"]),typeof t!="object"||".sv"in t){let n=t;return new Ad(n,At(e))}if(!(t instanceof Array)&&tie){let n=[],r=!1;if(dn(t,(s,a)=>{if(s.substring(0,1)!=="."){let c=At(a);c.isEmpty()||(r=r||!c.getPriority().isEmpty(),n.push(new Oe(s,c)))}}),n.length===0)return ve.EMPTY_NODE;let o=Sy(n,Xre,s=>s.name,nb);if(r){let s=Sy(n,ft.getCompare());return new ve(o,At(e),new Cd({".priority":s},{".priority":ft}))}else return new ve(o,At(e),Cd.Default)}else{let n=ve.EMPTY_NODE;return dn(t,(r,i)=>{if(Vr(t,r)&&r.substring(0,1)!=="."){let o=At(i);(o.isLeafNode()||!o.isEmpty())&&(n=n.updateImmediateChild(r,o))}}),n.updatePriority(At(e))}}Jre(At);var Wp=class extends Sd{constructor(e){super(),this.indexPath_=e,q(!we(e)&&Ne(e)!==".priority","Can't create PathIndex with empty path or .priority key")}extractChild(e){return e.getChild(this.indexPath_)}isDefinedOn(e){return!e.getChild(this.indexPath_).isEmpty()}compare(e,n){let r=this.extractChild(e.node),i=this.extractChild(n.node),o=r.compareTo(i);return o===0?al(e.name,n.name):o}makePost(e,n){let r=At(e),i=ve.EMPTY_NODE.updateChild(this.indexPath_,r);return new Oe(n,i)}maxPost(){let e=ve.EMPTY_NODE.updateChild(this.indexPath_,ig);return new Oe(Zs,e)}toString(){return $p(this.indexPath_,0).join("/")}};var mw=class extends Sd{compare(e,n){let r=e.node.compareTo(n.node);return r===0?al(e.name,n.name):r}isDefinedOn(e){return!0}indexedValueChanged(e,n){return!e.equals(n)}minPost(){return Oe.MIN}maxPost(){return Oe.MAX}makePost(e,n){let r=At(e);return new Oe(n,r)}toString(){return".value"}},jj=new mw;function Hj(t){return{type:"value",snapshotNode:t}}function Dd(t,e){return{type:"child_added",snapshotNode:e,childName:t}}function zp(t,e){return{type:"child_removed",snapshotNode:e,childName:t}}function qp(t,e,n){return{type:"child_changed",snapshotNode:e,childName:t,oldSnap:n}}function nie(t,e){return{type:"child_moved",snapshotNode:e,childName:t}}var Kp=class{constructor(e){this.index_=e}updateChild(e,n,r,i,o,s){q(e.isIndexed(this.index_),"A node must be indexed if only a child is updated");let a=e.getImmediateChild(n);return a.getChild(i).equals(r.getChild(i))&&a.isEmpty()===r.isEmpty()||(s!=null&&(r.isEmpty()?e.hasChild(n)?s.trackChildChange(zp(n,a)):q(e.isLeafNode(),"A child remove without an old child only makes sense on a leaf node"):a.isEmpty()?s.trackChildChange(Dd(n,r)):s.trackChildChange(qp(n,r,a))),e.isLeafNode()&&r.isEmpty())?e:e.updateImmediateChild(n,r).withIndex(this.index_)}updateFullNode(e,n,r){return r!=null&&(e.isLeafNode()||e.forEachChild(ft,(i,o)=>{n.hasChild(i)||r.trackChildChange(zp(i,o))}),n.isLeafNode()||n.forEachChild(ft,(i,o)=>{if(e.hasChild(i)){let s=e.getImmediateChild(i);s.equals(o)||r.trackChildChange(qp(i,o,s))}else r.trackChildChange(Dd(i,o))})),n.withIndex(this.index_)}updatePriority(e,n){return e.isEmpty()?ve.EMPTY_NODE:e.updatePriority(n)}filtersNodes(){return!1}getIndexedFilter(){return this}getIndex(){return this.index_}};var Ay=class t{constructor(e){this.indexedFilter_=new Kp(e.getIndex()),this.index_=e.getIndex(),this.startPost_=t.getStartPost_(e),this.endPost_=t.getEndPost_(e),this.startIsInclusive_=!e.startAfterSet_,this.endIsInclusive_=!e.endBeforeSet_}getStartPost(){return this.startPost_}getEndPost(){return this.endPost_}matches(e){let n=this.startIsInclusive_?this.index_.compare(this.getStartPost(),e)<=0:this.index_.compare(this.getStartPost(),e)<0,r=this.endIsInclusive_?this.index_.compare(e,this.getEndPost())<=0:this.index_.compare(e,this.getEndPost())<0;return n&&r}updateChild(e,n,r,i,o,s){return this.matches(new Oe(n,r))||(r=ve.EMPTY_NODE),this.indexedFilter_.updateChild(e,n,r,i,o,s)}updateFullNode(e,n,r){n.isLeafNode()&&(n=ve.EMPTY_NODE);let i=n.withIndex(this.index_);i=i.updatePriority(ve.EMPTY_NODE);let o=this;return n.forEachChild(ft,(s,a)=>{o.matches(new Oe(s,a))||(i=i.updateImmediateChild(s,ve.EMPTY_NODE))}),this.indexedFilter_.updateFullNode(e,i,r)}updatePriority(e,n){return e}filtersNodes(){return!0}getIndexedFilter(){return this.indexedFilter_}getIndex(){return this.index_}static getStartPost_(e){if(e.hasStart()){let n=e.getIndexStartName();return e.getIndex().makePost(e.getIndexStartValue(),n)}else return e.getIndex().minPost()}static getEndPost_(e){if(e.hasEnd()){let n=e.getIndexEndName();return e.getIndex().makePost(e.getIndexEndValue(),n)}else return e.getIndex().maxPost()}};var Ew=class{constructor(e){this.withinDirectionalStart=n=>this.reverse_?this.withinEndPost(n):this.withinStartPost(n),this.withinDirectionalEnd=n=>this.reverse_?this.withinStartPost(n):this.withinEndPost(n),this.withinStartPost=n=>{let r=this.index_.compare(this.rangedFilter_.getStartPost(),n);return this.startIsInclusive_?r<=0:r<0},this.withinEndPost=n=>{let r=this.index_.compare(n,this.rangedFilter_.getEndPost());return this.endIsInclusive_?r<=0:r<0},this.rangedFilter_=new Ay(e),this.index_=e.getIndex(),this.limit_=e.getLimit(),this.reverse_=!e.isViewFromLeft(),this.startIsInclusive_=!e.startAfterSet_,this.endIsInclusive_=!e.endBeforeSet_}updateChild(e,n,r,i,o,s){return this.rangedFilter_.matches(new Oe(n,r))||(r=ve.EMPTY_NODE),e.getImmediateChild(n).equals(r)?e:e.numChildren()<this.limit_?this.rangedFilter_.getIndexedFilter().updateChild(e,n,r,i,o,s):this.fullLimitUpdateChild_(e,n,r,o,s)}updateFullNode(e,n,r){let i;if(n.isLeafNode()||n.isEmpty())i=ve.EMPTY_NODE.withIndex(this.index_);else if(this.limit_*2<n.numChildren()&&n.isIndexed(this.index_)){i=ve.EMPTY_NODE.withIndex(this.index_);let o;this.reverse_?o=n.getReverseIteratorFrom(this.rangedFilter_.getEndPost(),this.index_):o=n.getIteratorFrom(this.rangedFilter_.getStartPost(),this.index_);let s=0;for(;o.hasNext()&&s<this.limit_;){let a=o.getNext();if(this.withinDirectionalStart(a))if(this.withinDirectionalEnd(a))i=i.updateImmediateChild(a.name,a.node),s++;else break;else continue}}else{i=n.withIndex(this.index_),i=i.updatePriority(ve.EMPTY_NODE);let o;this.reverse_?o=i.getReverseIterator(this.index_):o=i.getIterator(this.index_);let s=0;for(;o.hasNext();){let a=o.getNext();s<this.limit_&&this.withinDirectionalStart(a)&&this.withinDirectionalEnd(a)?s++:i=i.updateImmediateChild(a.name,ve.EMPTY_NODE)}}return this.rangedFilter_.getIndexedFilter().updateFullNode(e,i,r)}updatePriority(e,n){return e}filtersNodes(){return!0}getIndexedFilter(){return this.rangedFilter_.getIndexedFilter()}getIndex(){return this.index_}fullLimitUpdateChild_(e,n,r,i,o){let s;if(this.reverse_){let h=this.index_.getCompare();s=(f,g)=>h(g,f)}else s=this.index_.getCompare();let a=e;q(a.numChildren()===this.limit_,"");let c=new Oe(n,r),l=this.reverse_?a.getFirstChild(this.index_):a.getLastChild(this.index_),d=this.rangedFilter_.matches(c);if(a.hasChild(n)){let h=a.getImmediateChild(n),f=i.getChildAfterChild(this.index_,l,this.reverse_);for(;f!=null&&(f.name===n||a.hasChild(f.name));)f=i.getChildAfterChild(this.index_,f,this.reverse_);let g=f==null?1:s(f,c);if(d&&!r.isEmpty()&&g>=0)return o?.trackChildChange(qp(n,r,h)),a.updateImmediateChild(n,r);{o?.trackChildChange(zp(n,h));let I=a.updateImmediateChild(n,ve.EMPTY_NODE);return f!=null&&this.rangedFilter_.matches(f)?(o?.trackChildChange(Dd(f.name,f.node)),I.updateImmediateChild(f.name,f.node)):I}}else return r.isEmpty()?e:d&&s(l,c)>=0?(o!=null&&(o.trackChildChange(zp(l.name,l.node)),o.trackChildChange(Dd(n,r))),a.updateImmediateChild(n,r).updateImmediateChild(l.name,ve.EMPTY_NODE)):e}};var _w=class t{constructor(){this.limitSet_=!1,this.startSet_=!1,this.startNameSet_=!1,this.startAfterSet_=!1,this.endSet_=!1,this.endNameSet_=!1,this.endBeforeSet_=!1,this.limit_=0,this.viewFrom_="",this.indexStartValue_=null,this.indexStartName_="",this.indexEndValue_=null,this.indexEndName_="",this.index_=ft}hasStart(){return this.startSet_}isViewFromLeft(){return this.viewFrom_===""?this.startSet_:this.viewFrom_==="l"}getIndexStartValue(){return q(this.startSet_,"Only valid if start has been set"),this.indexStartValue_}getIndexStartName(){return q(this.startSet_,"Only valid if start has been set"),this.startNameSet_?this.indexStartName_:tl}hasEnd(){return this.endSet_}getIndexEndValue(){return q(this.endSet_,"Only valid if end has been set"),this.indexEndValue_}getIndexEndName(){return q(this.endSet_,"Only valid if end has been set"),this.endNameSet_?this.indexEndName_:Zs}hasLimit(){return this.limitSet_}hasAnchoredLimit(){return this.limitSet_&&this.viewFrom_!==""}getLimit(){return q(this.limitSet_,"Only valid if limit has been set"),this.limit_}getIndex(){return this.index_}loadsAllData(){return!(this.startSet_||this.endSet_||this.limitSet_)}isDefault(){return this.loadsAllData()&&this.index_===ft}copy(){let e=new t;return e.limitSet_=this.limitSet_,e.limit_=this.limit_,e.startSet_=this.startSet_,e.startAfterSet_=this.startAfterSet_,e.indexStartValue_=this.indexStartValue_,e.startNameSet_=this.startNameSet_,e.indexStartName_=this.indexStartName_,e.endSet_=this.endSet_,e.endBeforeSet_=this.endBeforeSet_,e.indexEndValue_=this.indexEndValue_,e.endNameSet_=this.endNameSet_,e.indexEndName_=this.indexEndName_,e.index_=this.index_,e.viewFrom_=this.viewFrom_,e}};function rie(t){return t.loadsAllData()?new Kp(t.getIndex()):t.hasLimit()?new Ew(t):new Ay(t)}function iie(t,e){let n=t.copy();return n.limitSet_=!0,n.limit_=e,n.viewFrom_="r",n}function oie(t,e,n){let r=t.copy();return r.startSet_=!0,e===void 0&&(e=null),r.indexStartValue_=e,n!=null?(r.startNameSet_=!0,r.indexStartName_=n):(r.startNameSet_=!1,r.indexStartName_=""),r}function sie(t,e,n){let r=t.copy();return r.endSet_=!0,e===void 0&&(e=null),r.indexEndValue_=e,n!==void 0?(r.endNameSet_=!0,r.indexEndName_=n):(r.endNameSet_=!1,r.indexEndName_=""),r}function aie(t,e){let n=t.copy();return n.index_=e,n}function J2(t){let e={};if(t.isDefault())return e;let n;if(t.index_===ft?n="$priority":t.index_===jj?n="$value":t.index_===el?n="$key":(q(t.index_ instanceof Wp,"Unrecognized index type!"),n=t.index_.toString()),e.orderBy=xt(n),t.startSet_){let r=t.startAfterSet_?"startAfter":"startAt";e[r]=xt(t.indexStartValue_),t.startNameSet_&&(e[r]+=","+xt(t.indexStartName_))}if(t.endSet_){let r=t.endBeforeSet_?"endBefore":"endAt";e[r]=xt(t.indexEndValue_),t.endNameSet_&&(e[r]+=","+xt(t.indexEndName_))}return t.limitSet_&&(t.isViewFromLeft()?e.limitToFirst=t.limit_:e.limitToLast=t.limit_),e}function Z2(t){let e={};if(t.startSet_&&(e.sp=t.indexStartValue_,t.startNameSet_&&(e.sn=t.indexStartName_),e.sin=!t.startAfterSet_),t.endSet_&&(e.ep=t.indexEndValue_,t.endNameSet_&&(e.en=t.indexEndName_),e.ein=!t.endBeforeSet_),t.limitSet_){e.l=t.limit_;let n=t.viewFrom_;n===""&&(t.isViewFromLeft()?n="l":n="r"),e.vf=n}return t.index_!==ft&&(e.i=t.index_.toString()),e}var Tw=class t extends Ty{reportStats(e){throw new Error("Method not implemented.")}static getListenId_(e,n){return n!==void 0?"tag$"+n:(q(e._queryParams.isDefault(),"should have a tag if it's not a default query."),e._path.toString())}constructor(e,n,r,i){super(),this.repoInfo_=e,this.onDataUpdate_=n,this.authTokenProvider_=r,this.appCheckTokenProvider_=i,this.log_=rg("p:rest:"),this.listens_={}}listen(e,n,r,i){let o=e._path.toString();this.log_("Listen called for "+o+" "+e._queryIdentifier);let s=t.getListenId_(e,r),a={};this.listens_[s]=a;let c=J2(e._queryParams);this.restRequest_(o+".json",c,(l,d)=>{let h=d;if(l===404&&(h=null,l=null),l===null&&this.onDataUpdate_(o,h,!1,r),Fs(this.listens_,s)===a){let f;l?l===401?f="permission_denied":f="rest_error:"+l:f="ok",i(f,null)}})}unlisten(e,n){let r=t.getListenId_(e,n);delete this.listens_[r]}get(e){let n=J2(e._queryParams),r=e._path.toString(),i=new cn;return this.restRequest_(r+".json",n,(o,s)=>{let a=s;o===404&&(a=null,o=null),o===null?(this.onDataUpdate_(r,a,!1,null),i.resolve(a)):i.reject(new Error(a))}),i.promise}refreshAuthToken(e){}restRequest_(e,n={},r){return n.format="export",Promise.all([this.authTokenProvider_.getToken(!1),this.appCheckTokenProvider_.getToken(!1)]).then(([i,o])=>{i&&i.accessToken&&(n.auth=i.accessToken),o&&o.token&&(n.ac=o.token);let s=(this.repoInfo_.secure?"https://":"http://")+this.repoInfo_.host+e+"?ns="+this.repoInfo_.namespace+gp(n);this.log_("Sending REST request for "+s);let a=new XMLHttpRequest;a.onreadystatechange=()=>{if(r&&a.readyState===4){this.log_("REST Response for "+s+" received. status:",a.status,"response:",a.responseText);let c=null;if(a.status>=200&&a.status<300){try{c=cd(a.responseText)}catch{xn("Failed to parse JSON response for "+s+": "+a.responseText)}r(null,c)}else a.status!==401&&a.status!==404&&xn("Got unsuccessful REST response for "+s+" Status: "+a.status),r(a.status);r=null}},a.open("GET",s,!0),a.send()})}};var yw=class{constructor(){this.rootNode_=ve.EMPTY_NODE}getNode(e){return this.rootNode_.getChild(e)}updateSnapshot(e,n){this.rootNode_=this.rootNode_.updateChild(e,n)}};function Cy(){return{value:null,children:new Map}}function Md(t,e,n){if(we(e))t.value=n,t.children.clear();else if(t.value!==null)t.value=t.value.updateChild(e,n);else{let r=Ne(e);t.children.has(r)||t.children.set(r,Cy());let i=t.children.get(r);e=at(e),Md(i,e,n)}}function Iw(t,e){if(we(e))return t.value=null,t.children.clear(),!0;if(t.value!==null){if(t.value.isLeafNode())return!1;{let n=t.value;return t.value=null,n.forEachChild(ft,(r,i)=>{Md(t,new Be(r),i)}),Iw(t,e)}}else if(t.children.size>0){let n=Ne(e);return e=at(e),t.children.has(n)&&Iw(t.children.get(n),e)&&t.children.delete(n),t.children.size===0}else return!0}function vw(t,e,n){t.value!==null?n(e,t.value):cie(t,(r,i)=>{let o=new Be(e.toString()+"/"+r);vw(i,o,n)})}function cie(t,e){t.children.forEach((n,r)=>{e(r,n)})}var Sw=class{constructor(e){this.collection_=e,this.last_=null}get(){let e=this.collection_.get(),n=Object.assign({},e);return this.last_&&dn(this.last_,(r,i)=>{n[r]=n[r]-i}),this.last_=e,n}};var ej=10*1e3,lie=30*1e3,uie=300*1e3,Aw=class{constructor(e,n){this.server_=n,this.statsToReport_={},this.statsListener_=new Sw(e);let r=ej+(lie-ej)*Math.random();Vp(this.reportStats_.bind(this),Math.floor(r))}reportStats_(){let e=this.statsListener_.get(),n={},r=!1;dn(e,(i,o)=>{o>0&&Vr(this.statsToReport_,i)&&(n[i]=o,r=!0)}),r&&this.server_.reportStats(n),Vp(this.reportStats_.bind(this),Math.floor(Math.random()*2*uie))}};var Zi=(function(t){return t[t.OVERWRITE=0]="OVERWRITE",t[t.MERGE=1]="MERGE",t[t.ACK_USER_WRITE=2]="ACK_USER_WRITE",t[t.LISTEN_COMPLETE=3]="LISTEN_COMPLETE",t})(Zi||{});function rb(){return{fromUser:!0,fromServer:!1,queryId:null,tagged:!1}}function ib(){return{fromUser:!1,fromServer:!0,queryId:null,tagged:!1}}function ob(t){return{fromUser:!1,fromServer:!0,queryId:t,tagged:!0}}var Cw=class t{constructor(e,n,r){this.path=e,this.affectedTree=n,this.revert=r,this.type=Zi.ACK_USER_WRITE,this.source=rb()}operationForChild(e){if(we(this.path)){if(this.affectedTree.value!=null)return q(this.affectedTree.children.isEmpty(),"affectedTree should not have overlapping affected paths."),this;{let n=this.affectedTree.subtree(new Be(e));return new t(Ve(),n,this.revert)}}else return q(Ne(this.path)===e,"operationForChild called for unrelated child."),new t(at(this.path),this.affectedTree,this.revert)}};var Dy=class t{constructor(e,n){this.source=e,this.path=n,this.type=Zi.LISTEN_COMPLETE}operationForChild(e){return we(this.path)?new t(this.source,Ve()):new t(this.source,at(this.path))}};var Rd=class t{constructor(e,n,r){this.source=e,this.path=n,this.snap=r,this.type=Zi.OVERWRITE}operationForChild(e){return we(this.path)?new t(this.source,Ve(),this.snap.getImmediateChild(e)):new t(this.source,at(this.path),this.snap)}};var Yp=class t{constructor(e,n,r){this.source=e,this.path=n,this.children=r,this.type=Zi.MERGE}operationForChild(e){if(we(this.path)){let n=this.children.subtree(new Be(e));return n.isEmpty()?null:n.value?new Rd(this.source,Ve(),n.value):new t(this.source,Ve(),n)}else return q(Ne(this.path)===e,"Can't get a merge for a child not on the path of the operation"),new t(this.source,at(this.path),this.children)}toString(){return"Operation("+this.path+": "+this.source.toString()+" merge: "+this.children.toString()+")"}};var eo=class{constructor(e,n,r){this.node_=e,this.fullyInitialized_=n,this.filtered_=r}isFullyInitialized(){return this.fullyInitialized_}isFiltered(){return this.filtered_}isCompleteForPath(e){if(we(e))return this.isFullyInitialized()&&!this.filtered_;let n=Ne(e);return this.isCompleteForChild(n)}isCompleteForChild(e){return this.isFullyInitialized()&&!this.filtered_||this.node_.hasChild(e)}getNode(){return this.node_}};var Dw=class{constructor(e){this.query_=e,this.index_=this.query_._queryParams.getIndex()}};function die(t,e,n,r){let i=[],o=[];return e.forEach(s=>{s.type==="child_changed"&&t.index_.indexedValueChanged(s.oldSnap,s.snapshotNode)&&o.push(nie(s.childName,s.snapshotNode))}),Up(t,i,"child_removed",e,r,n),Up(t,i,"child_added",e,r,n),Up(t,i,"child_moved",o,r,n),Up(t,i,"child_changed",e,r,n),Up(t,i,"value",e,r,n),i}function Up(t,e,n,r,i,o){let s=r.filter(a=>a.type===n);s.sort((a,c)=>fie(t,a,c)),s.forEach(a=>{let c=hie(t,a,o);i.forEach(l=>{l.respondsTo(a.type)&&e.push(l.createEvent(c,t.query_))})})}function hie(t,e,n){return e.type==="value"||e.type==="child_removed"||(e.prevName=n.getPredecessorChildName(e.childName,e.snapshotNode,t.index_)),e}function fie(t,e,n){if(e.childName==null||n.childName==null)throw kc("Should only compare child_ events.");let r=new Oe(e.childName,e.snapshotNode),i=new Oe(n.childName,n.snapshotNode);return t.index_.compare(r,i)}function Gy(t,e){return{eventCache:t,serverCache:e}}function Gp(t,e,n,r){return Gy(new eo(e,n,r),t.serverCache)}function $j(t,e,n,r){return Gy(t.eventCache,new eo(e,n,r))}function Ry(t){return t.eventCache.isFullyInitialized()?t.eventCache.getNode():null}function nl(t){return t.serverCache.isFullyInitialized()?t.serverCache.getNode():null}var YN,pie=()=>(YN||(YN=new Hr(hre)),YN),qn=class t{static fromObject(e){let n=new t(null);return dn(e,(r,i)=>{n=n.set(new Be(r),i)}),n}constructor(e,n=pie()){this.value=e,this.children=n}isEmpty(){return this.value===null&&this.children.isEmpty()}findRootMostMatchingPathAndValue(e,n){if(this.value!=null&&n(this.value))return{path:Ve(),value:this.value};if(we(e))return null;{let r=Ne(e),i=this.children.get(r);if(i!==null){let o=i.findRootMostMatchingPathAndValue(at(e),n);return o!=null?{path:Ct(new Be(r),o.path),value:o.value}:null}else return null}}findRootMostValueAndPath(e){return this.findRootMostMatchingPathAndValue(e,()=>!0)}subtree(e){if(we(e))return this;{let n=Ne(e),r=this.children.get(n);return r!==null?r.subtree(at(e)):new t(null)}}set(e,n){if(we(e))return new t(n,this.children);{let r=Ne(e),o=(this.children.get(r)||new t(null)).set(at(e),n),s=this.children.insert(r,o);return new t(this.value,s)}}remove(e){if(we(e))return this.children.isEmpty()?new t(null):new t(null,this.children);{let n=Ne(e),r=this.children.get(n);if(r){let i=r.remove(at(e)),o;return i.isEmpty()?o=this.children.remove(n):o=this.children.insert(n,i),this.value===null&&o.isEmpty()?new t(null):new t(this.value,o)}else return this}}get(e){if(we(e))return this.value;{let n=Ne(e),r=this.children.get(n);return r?r.get(at(e)):null}}setTree(e,n){if(we(e))return n;{let r=Ne(e),o=(this.children.get(r)||new t(null)).setTree(at(e),n),s;return o.isEmpty()?s=this.children.remove(r):s=this.children.insert(r,o),new t(this.value,s)}}fold(e){return this.fold_(Ve(),e)}fold_(e,n){let r={};return this.children.inorderTraversal((i,o)=>{r[i]=o.fold_(Ct(e,i),n)}),n(e,this.value,r)}findOnPath(e,n){return this.findOnPath_(e,Ve(),n)}findOnPath_(e,n,r){let i=this.value?r(n,this.value):!1;if(i)return i;if(we(e))return null;{let o=Ne(e),s=this.children.get(o);return s?s.findOnPath_(at(e),Ct(n,o),r):null}}foreachOnPath(e,n){return this.foreachOnPath_(e,Ve(),n)}foreachOnPath_(e,n,r){if(we(e))return this;{this.value&&r(n,this.value);let i=Ne(e),o=this.children.get(i);return o?o.foreachOnPath_(at(e),Ct(n,i),r):new t(null)}}foreach(e){this.foreach_(Ve(),e)}foreach_(e,n){this.children.inorderTraversal((r,i)=>{i.foreach_(Ct(e,r),n)}),this.value&&n(e,this.value)}foreachChild(e){this.children.inorderTraversal((n,r)=>{r.value&&e(n,r.value)})}};var di=class t{constructor(e){this.writeTree_=e}static empty(){return new t(new qn(null))}};function jp(t,e,n){if(we(e))return new di(new qn(n));{let r=t.writeTree_.findRootMostValueAndPath(e);if(r!=null){let i=r.path,o=r.value,s=zn(i,e);return o=o.updateChild(s,n),new di(t.writeTree_.set(i,o))}else{let i=new qn(n),o=t.writeTree_.setTree(e,i);return new di(o)}}}function Rw(t,e,n){let r=t;return dn(n,(i,o)=>{r=jp(r,Ct(e,i),o)}),r}function tj(t,e){if(we(e))return di.empty();{let n=t.writeTree_.setTree(e,new qn(null));return new di(n)}}function Nw(t,e){return cl(t,e)!=null}function cl(t,e){let n=t.writeTree_.findRootMostValueAndPath(e);return n!=null?t.writeTree_.get(n.path).getChild(zn(n.path,e)):null}function nj(t){let e=[],n=t.writeTree_.value;return n!=null?n.isLeafNode()||n.forEachChild(ft,(r,i)=>{e.push(new Oe(r,i))}):t.writeTree_.children.inorderTraversal((r,i)=>{i.value!=null&&e.push(new Oe(r,i.value))}),e}function Qs(t,e){if(we(e))return t;{let n=cl(t,e);return n!=null?new di(new qn(n)):new di(t.writeTree_.subtree(e))}}function ww(t){return t.writeTree_.isEmpty()}function Nd(t,e){return Wj(Ve(),t.writeTree_,e)}function Wj(t,e,n){if(e.value!=null)return n.updateChild(t,e.value);{let r=null;return e.children.inorderTraversal((i,o)=>{i===".priority"?(q(o.value!==null,"Priority writes must always be leaf nodes"),r=o.value):n=Wj(Ct(t,i),o,n)}),!n.getChild(t).isEmpty()&&r!==null&&(n=n.updateChild(Ct(t,".priority"),r)),n}}function jy(t,e){return Yj(e,t)}function gie(t,e,n,r,i){q(r>t.lastWriteId,"Stacking an older write on top of newer ones"),i===void 0&&(i=!0),t.allWrites.push({path:e,snap:n,writeId:r,visible:i}),i&&(t.visibleWrites=jp(t.visibleWrites,e,n)),t.lastWriteId=r}function mie(t,e,n,r){q(r>t.lastWriteId,"Stacking an older merge on top of newer ones"),t.allWrites.push({path:e,children:n,writeId:r,visible:!0}),t.visibleWrites=Rw(t.visibleWrites,e,n),t.lastWriteId=r}function Eie(t,e){for(let n=0;n<t.allWrites.length;n++){let r=t.allWrites[n];if(r.writeId===e)return r}return null}function _ie(t,e){let n=t.allWrites.findIndex(a=>a.writeId===e);q(n>=0,"removeWrite called with nonexistent writeId.");let r=t.allWrites[n];t.allWrites.splice(n,1);let i=r.visible,o=!1,s=t.allWrites.length-1;for(;i&&s>=0;){let a=t.allWrites[s];a.visible&&(s>=n&&Tie(a,r.path)?i=!1:jr(r.path,a.path)&&(o=!0)),s--}if(i){if(o)return yie(t),!0;if(r.snap)t.visibleWrites=tj(t.visibleWrites,r.path);else{let a=r.children;dn(a,c=>{t.visibleWrites=tj(t.visibleWrites,Ct(r.path,c))})}return!0}else return!1}function Tie(t,e){if(t.snap)return jr(t.path,e);for(let n in t.children)if(t.children.hasOwnProperty(n)&&jr(Ct(t.path,n),e))return!0;return!1}function yie(t){t.visibleWrites=zj(t.allWrites,Iie,Ve()),t.allWrites.length>0?t.lastWriteId=t.allWrites[t.allWrites.length-1].writeId:t.lastWriteId=-1}function Iie(t){return t.visible}function zj(t,e,n){let r=di.empty();for(let i=0;i<t.length;++i){let o=t[i];if(e(o)){let s=o.path,a;if(o.snap)jr(n,s)?(a=zn(n,s),r=jp(r,a,o.snap)):jr(s,n)&&(a=zn(s,n),r=jp(r,Ve(),o.snap.getChild(a)));else if(o.children){if(jr(n,s))a=zn(n,s),r=Rw(r,a,o.children);else if(jr(s,n))if(a=zn(s,n),we(a))r=Rw(r,Ve(),o.children);else{let c=Fs(o.children,Ne(a));if(c){let l=c.getChild(at(a));r=jp(r,Ve(),l)}}}else throw kc("WriteRecord should have .snap or .children")}}return r}function qj(t,e,n,r,i){if(!r&&!i){let o=cl(t.visibleWrites,e);if(o!=null)return o;{let s=Qs(t.visibleWrites,e);if(ww(s))return n;if(n==null&&!Nw(s,Ve()))return null;{let a=n||ve.EMPTY_NODE;return Nd(s,a)}}}else{let o=Qs(t.visibleWrites,e);if(!i&&ww(o))return n;if(!i&&n==null&&!Nw(o,Ve()))return null;{let s=function(l){return(l.visible||i)&&(!r||!~r.indexOf(l.writeId))&&(jr(l.path,e)||jr(e,l.path))},a=zj(t.allWrites,s,e),c=n||ve.EMPTY_NODE;return Nd(a,c)}}}function vie(t,e,n){let r=ve.EMPTY_NODE,i=cl(t.visibleWrites,e);if(i)return i.isLeafNode()||i.forEachChild(ft,(o,s)=>{r=r.updateImmediateChild(o,s)}),r;if(n){let o=Qs(t.visibleWrites,e);return n.forEachChild(ft,(s,a)=>{let c=Nd(Qs(o,new Be(s)),a);r=r.updateImmediateChild(s,c)}),nj(o).forEach(s=>{r=r.updateImmediateChild(s.name,s.node)}),r}else{let o=Qs(t.visibleWrites,e);return nj(o).forEach(s=>{r=r.updateImmediateChild(s.name,s.node)}),r}}function Sie(t,e,n,r,i){q(r||i,"Either existingEventSnap or existingServerSnap must exist");let o=Ct(e,n);if(Nw(t.visibleWrites,o))return null;{let s=Qs(t.visibleWrites,o);return ww(s)?i.getChild(n):Nd(s,i.getChild(n))}}function Aie(t,e,n,r){let i=Ct(e,n),o=cl(t.visibleWrites,i);if(o!=null)return o;if(r.isCompleteForChild(n)){let s=Qs(t.visibleWrites,i);return Nd(s,r.getNode().getImmediateChild(n))}else return null}function Cie(t,e){return cl(t.visibleWrites,e)}function Die(t,e,n,r,i,o,s){let a,c=Qs(t.visibleWrites,e),l=cl(c,Ve());if(l!=null)a=l;else if(n!=null)a=Nd(c,n);else return[];if(a=a.withIndex(s),!a.isEmpty()&&!a.isLeafNode()){let d=[],h=s.getCompare(),f=o?a.getReverseIteratorFrom(r,s):a.getIteratorFrom(r,s),g=f.getNext();for(;g&&d.length<i;)h(g,r)!==0&&d.push(g),g=f.getNext();return d}else return[]}function Rie(){return{visibleWrites:di.empty(),allWrites:[],lastWriteId:-1}}function Ny(t,e,n,r){return qj(t.writeTree,t.treePath,e,n,r)}function sb(t,e){return vie(t.writeTree,t.treePath,e)}function rj(t,e,n,r){return Sie(t.writeTree,t.treePath,e,n,r)}function wy(t,e){return Cie(t.writeTree,Ct(t.treePath,e))}function Nie(t,e,n,r,i,o){return Die(t.writeTree,t.treePath,e,n,r,i,o)}function ab(t,e,n){return Aie(t.writeTree,t.treePath,e,n)}function Kj(t,e){return Yj(Ct(t.treePath,e),t.writeTree)}function Yj(t,e){return{treePath:t,writeTree:e}}var bw=class{constructor(){this.changeMap=new Map}trackChildChange(e){let n=e.type,r=e.childName;q(n==="child_added"||n==="child_changed"||n==="child_removed","Only child changes supported for tracking"),q(r!==".priority","Only non-priority child changes can be tracked.");let i=this.changeMap.get(r);if(i){let o=i.type;if(n==="child_added"&&o==="child_removed")this.changeMap.set(r,qp(r,e.snapshotNode,i.snapshotNode));else if(n==="child_removed"&&o==="child_added")this.changeMap.delete(r);else if(n==="child_removed"&&o==="child_changed")this.changeMap.set(r,zp(r,i.oldSnap));else if(n==="child_changed"&&o==="child_added")this.changeMap.set(r,Dd(r,e.snapshotNode));else if(n==="child_changed"&&o==="child_changed")this.changeMap.set(r,qp(r,e.snapshotNode,i.oldSnap));else throw kc("Illegal combination of changes: "+e+" occurred after "+i)}else this.changeMap.set(r,e)}getChanges(){return Array.from(this.changeMap.values())}};var Ow=class{getCompleteChild(e){return null}getChildAfterChild(e,n,r){return null}},Xj=new Ow,Xp=class{constructor(e,n,r=null){this.writes_=e,this.viewCache_=n,this.optCompleteServerCache_=r}getCompleteChild(e){let n=this.viewCache_.eventCache;if(n.isCompleteForChild(e))return n.getNode().getImmediateChild(e);{let r=this.optCompleteServerCache_!=null?new eo(this.optCompleteServerCache_,!0,!1):this.viewCache_.serverCache;return ab(this.writes_,e,r)}}getChildAfterChild(e,n,r){let i=this.optCompleteServerCache_!=null?this.optCompleteServerCache_:nl(this.viewCache_),o=Nie(this.writes_,i,n,1,r,e);return o.length===0?null:o[0]}};function wie(t){return{filter:t}}function bie(t,e){q(e.eventCache.getNode().isIndexed(t.filter.getIndex()),"Event snap not indexed"),q(e.serverCache.getNode().isIndexed(t.filter.getIndex()),"Server snap not indexed")}function Oie(t,e,n,r,i){let o=new bw,s,a;if(n.type===Zi.OVERWRITE){let l=n;l.source.fromUser?s=Mw(t,e,l.path,l.snap,r,i,o):(q(l.source.fromServer,"Unknown source."),a=l.source.tagged||e.serverCache.isFiltered()&&!we(l.path),s=by(t,e,l.path,l.snap,r,i,a,o))}else if(n.type===Zi.MERGE){let l=n;l.source.fromUser?s=Lie(t,e,l.path,l.children,r,i,o):(q(l.source.fromServer,"Unknown source."),a=l.source.tagged||e.serverCache.isFiltered(),s=Lw(t,e,l.path,l.children,r,i,a,o))}else if(n.type===Zi.ACK_USER_WRITE){let l=n;l.revert?s=kie(t,e,l.path,r,i,o):s=Pie(t,e,l.path,l.affectedTree,r,i,o)}else if(n.type===Zi.LISTEN_COMPLETE)s=xie(t,e,n.path,r,o);else throw kc("Unknown operation type: "+n.type);let c=o.getChanges();return Mie(e,s,c),{viewCache:s,changes:c}}function Mie(t,e,n){let r=e.eventCache;if(r.isFullyInitialized()){let i=r.getNode().isLeafNode()||r.getNode().isEmpty(),o=Ry(t);(n.length>0||!t.eventCache.isFullyInitialized()||i&&!r.getNode().equals(o)||!r.getNode().getPriority().equals(o.getPriority()))&&n.push(Hj(Ry(e)))}}function Qj(t,e,n,r,i,o){let s=e.eventCache;if(wy(r,n)!=null)return e;{let a,c;if(we(n))if(q(e.serverCache.isFullyInitialized(),"If change path is empty, we must have complete server data"),e.serverCache.isFiltered()){let l=nl(e),d=l instanceof ve?l:ve.EMPTY_NODE,h=sb(r,d);a=t.filter.updateFullNode(e.eventCache.getNode(),h,o)}else{let l=Ny(r,nl(e));a=t.filter.updateFullNode(e.eventCache.getNode(),l,o)}else{let l=Ne(n);if(l===".priority"){q(ea(n)===1,"Can't have a priority with additional path components");let d=s.getNode();c=e.serverCache.getNode();let h=rj(r,n,d,c);h!=null?a=t.filter.updatePriority(d,h):a=s.getNode()}else{let d=at(n),h;if(s.isCompleteForChild(l)){c=e.serverCache.getNode();let f=rj(r,n,s.getNode(),c);f!=null?h=s.getNode().getImmediateChild(l).updateChild(d,f):h=s.getNode().getImmediateChild(l)}else h=ab(r,l,e.serverCache);h!=null?a=t.filter.updateChild(s.getNode(),l,h,d,i,o):a=s.getNode()}}return Gp(e,a,s.isFullyInitialized()||we(n),t.filter.filtersNodes())}}function by(t,e,n,r,i,o,s,a){let c=e.serverCache,l,d=s?t.filter:t.filter.getIndexedFilter();if(we(n))l=d.updateFullNode(c.getNode(),r,null);else if(d.filtersNodes()&&!c.isFiltered()){let g=c.getNode().updateChild(n,r);l=d.updateFullNode(c.getNode(),g,null)}else{let g=Ne(n);if(!c.isCompleteForPath(n)&&ea(n)>1)return e;let E=at(n),S=c.getNode().getImmediateChild(g).updateChild(E,r);g===".priority"?l=d.updatePriority(c.getNode(),S):l=d.updateChild(c.getNode(),g,S,E,Xj,null)}let h=$j(e,l,c.isFullyInitialized()||we(n),d.filtersNodes()),f=new Xp(i,h,o);return Qj(t,h,n,i,f,a)}function Mw(t,e,n,r,i,o,s){let a=e.eventCache,c,l,d=new Xp(i,e,o);if(we(n))l=t.filter.updateFullNode(e.eventCache.getNode(),r,s),c=Gp(e,l,!0,t.filter.filtersNodes());else{let h=Ne(n);if(h===".priority")l=t.filter.updatePriority(e.eventCache.getNode(),r),c=Gp(e,l,a.isFullyInitialized(),a.isFiltered());else{let f=at(n),g=a.getNode().getImmediateChild(h),E;if(we(f))E=r;else{let I=d.getCompleteChild(h);I!=null?Zw(f)===".priority"&&I.getChild(kj(f)).isEmpty()?E=I:E=I.updateChild(f,r):E=ve.EMPTY_NODE}if(g.equals(E))c=e;else{let I=t.filter.updateChild(a.getNode(),h,E,f,d,s);c=Gp(e,I,a.isFullyInitialized(),t.filter.filtersNodes())}}}return c}function ij(t,e){return t.eventCache.isCompleteForChild(e)}function Lie(t,e,n,r,i,o,s){let a=e;return r.foreach((c,l)=>{let d=Ct(n,c);ij(e,Ne(d))&&(a=Mw(t,a,d,l,i,o,s))}),r.foreach((c,l)=>{let d=Ct(n,c);ij(e,Ne(d))||(a=Mw(t,a,d,l,i,o,s))}),a}function oj(t,e,n){return n.foreach((r,i)=>{e=e.updateChild(r,i)}),e}function Lw(t,e,n,r,i,o,s,a){if(e.serverCache.getNode().isEmpty()&&!e.serverCache.isFullyInitialized())return e;let c=e,l;we(n)?l=r:l=new qn(null).setTree(n,r);let d=e.serverCache.getNode();return l.children.inorderTraversal((h,f)=>{if(d.hasChild(h)){let g=e.serverCache.getNode().getImmediateChild(h),E=oj(t,g,f);c=by(t,c,new Be(h),E,i,o,s,a)}}),l.children.inorderTraversal((h,f)=>{let g=!e.serverCache.isCompleteForChild(h)&&f.value===null;if(!d.hasChild(h)&&!g){let E=e.serverCache.getNode().getImmediateChild(h),I=oj(t,E,f);c=by(t,c,new Be(h),I,i,o,s,a)}}),c}function Pie(t,e,n,r,i,o,s){if(wy(i,n)!=null)return e;let a=e.serverCache.isFiltered(),c=e.serverCache;if(r.value!=null){if(we(n)&&c.isFullyInitialized()||c.isCompleteForPath(n))return by(t,e,n,c.getNode().getChild(n),i,o,a,s);if(we(n)){let l=new qn(null);return c.getNode().forEachChild(el,(d,h)=>{l=l.set(new Be(d),h)}),Lw(t,e,n,l,i,o,a,s)}else return e}else{let l=new qn(null);return r.foreach((d,h)=>{let f=Ct(n,d);c.isCompleteForPath(f)&&(l=l.set(d,c.getNode().getChild(f)))}),Lw(t,e,n,l,i,o,a,s)}}function xie(t,e,n,r,i){let o=e.serverCache,s=$j(e,o.getNode(),o.isFullyInitialized()||we(n),o.isFiltered());return Qj(t,s,n,r,Xj,i)}function kie(t,e,n,r,i,o){let s;if(wy(r,n)!=null)return e;{let a=new Xp(r,e,i),c=e.eventCache.getNode(),l;if(we(n)||Ne(n)===".priority"){let d;if(e.serverCache.isFullyInitialized())d=Ny(r,nl(e));else{let h=e.serverCache.getNode();q(h instanceof ve,"serverChildren would be complete if leaf node"),d=sb(r,h)}d=d,l=t.filter.updateFullNode(c,d,o)}else{let d=Ne(n),h=ab(r,d,e.serverCache);h==null&&e.serverCache.isCompleteForChild(d)&&(h=c.getImmediateChild(d)),h!=null?l=t.filter.updateChild(c,d,h,at(n),a,o):e.eventCache.getNode().hasChild(d)?l=t.filter.updateChild(c,d,ve.EMPTY_NODE,at(n),a,o):l=c,l.isEmpty()&&e.serverCache.isFullyInitialized()&&(s=Ny(r,nl(e)),s.isLeafNode()&&(l=t.filter.updateFullNode(l,s,o)))}return s=e.serverCache.isFullyInitialized()||wy(r,Ve())!=null,Gp(e,l,s,t.filter.filtersNodes())}}var Pw=class{constructor(e,n){this.query_=e,this.eventRegistrations_=[];let r=this.query_._queryParams,i=new Kp(r.getIndex()),o=rie(r);this.processor_=wie(o);let s=n.serverCache,a=n.eventCache,c=i.updateFullNode(ve.EMPTY_NODE,s.getNode(),null),l=o.updateFullNode(ve.EMPTY_NODE,a.getNode(),null),d=new eo(c,s.isFullyInitialized(),i.filtersNodes()),h=new eo(l,a.isFullyInitialized(),o.filtersNodes());this.viewCache_=Gy(h,d),this.eventGenerator_=new Dw(this.query_)}get query(){return this.query_}};function Fie(t){return t.viewCache_.serverCache.getNode()}function Uie(t){return Ry(t.viewCache_)}function Vie(t,e){let n=nl(t.viewCache_);return n&&(t.query._queryParams.loadsAllData()||!we(e)&&!n.getImmediateChild(Ne(e)).isEmpty())?n.getChild(e):null}function sj(t){return t.eventRegistrations_.length===0}function Bie(t,e){t.eventRegistrations_.push(e)}function aj(t,e,n){let r=[];if(n){q(e==null,"A cancel should cancel all event registrations.");let i=t.query._path;t.eventRegistrations_.forEach(o=>{let s=o.createCancelEvent(n,i);s&&r.push(s)})}if(e){let i=[];for(let o=0;o<t.eventRegistrations_.length;++o){let s=t.eventRegistrations_[o];if(!s.matches(e))i.push(s);else if(e.hasAnyCallback()){i=i.concat(t.eventRegistrations_.slice(o+1));break}}t.eventRegistrations_=i}else t.eventRegistrations_=[];return r}function cj(t,e,n,r){e.type===Zi.MERGE&&e.source.queryId!==null&&(q(nl(t.viewCache_),"We should always have a full cache before handling merges"),q(Ry(t.viewCache_),"Missing event cache, even though we have a server cache"));let i=t.viewCache_,o=Oie(t.processor_,i,e,n,r);return bie(t.processor_,o.viewCache),q(o.viewCache.serverCache.isFullyInitialized()||!i.serverCache.isFullyInitialized(),"Once a server snap is complete, it should never go back"),t.viewCache_=o.viewCache,Jj(t,o.changes,o.viewCache.eventCache.getNode(),null)}function Gie(t,e){let n=t.viewCache_.eventCache,r=[];return n.getNode().isLeafNode()||n.getNode().forEachChild(ft,(o,s)=>{r.push(Dd(o,s))}),n.isFullyInitialized()&&r.push(Hj(n.getNode())),Jj(t,r,n.getNode(),e)}function Jj(t,e,n,r){let i=r?[r]:t.eventRegistrations_;return die(t.eventGenerator_,e,n,i)}var Oy,My=class{constructor(){this.views=new Map}};function jie(t){q(!Oy,"__referenceConstructor has already been defined"),Oy=t}function Hie(){return q(Oy,"Reference.ts has not been loaded"),Oy}function $ie(t){return t.views.size===0}function cb(t,e,n,r){let i=e.source.queryId;if(i!==null){let o=t.views.get(i);return q(o!=null,"SyncTree gave us an op for an invalid query."),cj(o,e,n,r)}else{let o=[];for(let s of t.views.values())o=o.concat(cj(s,e,n,r));return o}}function Zj(t,e,n,r,i){let o=e._queryIdentifier,s=t.views.get(o);if(!s){let a=Ny(n,i?r:null),c=!1;a?c=!0:r instanceof ve?(a=sb(n,r),c=!1):(a=ve.EMPTY_NODE,c=!1);let l=Gy(new eo(a,c,!1),new eo(r,i,!1));return new Pw(e,l)}return s}function Wie(t,e,n,r,i,o){let s=Zj(t,e,r,i,o);return t.views.has(e._queryIdentifier)||t.views.set(e._queryIdentifier,s),Bie(s,n),Gie(s,n)}function zie(t,e,n,r){let i=e._queryIdentifier,o=[],s=[],a=ta(t);if(i==="default")for(let[c,l]of t.views.entries())s=s.concat(aj(l,n,r)),sj(l)&&(t.views.delete(c),l.query._queryParams.loadsAllData()||o.push(l.query));else{let c=t.views.get(i);c&&(s=s.concat(aj(c,n,r)),sj(c)&&(t.views.delete(i),c.query._queryParams.loadsAllData()||o.push(c.query)))}return a&&!ta(t)&&o.push(new(Hie())(e._repo,e._path)),{removed:o,events:s}}function eH(t){let e=[];for(let n of t.views.values())n.query._queryParams.loadsAllData()||e.push(n);return e}function Js(t,e){let n=null;for(let r of t.views.values())n=n||Vie(r,e);return n}function tH(t,e){if(e._queryParams.loadsAllData())return Hy(t);{let r=e._queryIdentifier;return t.views.get(r)}}function nH(t,e){return tH(t,e)!=null}function ta(t){return Hy(t)!=null}function Hy(t){for(let e of t.views.values())if(e.query._queryParams.loadsAllData())return e;return null}var Ly;function qie(t){q(!Ly,"__referenceConstructor has already been defined"),Ly=t}function Kie(){return q(Ly,"Reference.ts has not been loaded"),Ly}var Yie=1,Py=class{constructor(e){this.listenProvider_=e,this.syncPointTree_=new qn(null),this.pendingWriteTree_=Rie(),this.tagToQueryMap=new Map,this.queryToTagMap=new Map}};function lb(t,e,n,r,i){return gie(t.pendingWriteTree_,e,n,r,i),i?Ld(t,new Rd(rb(),e,n)):[]}function Xie(t,e,n,r){mie(t.pendingWriteTree_,e,n,r);let i=qn.fromObject(n);return Ld(t,new Yp(rb(),e,i))}function Ys(t,e,n=!1){let r=Eie(t.pendingWriteTree_,e);if(_ie(t.pendingWriteTree_,e)){let o=new qn(null);return r.snap!=null?o=o.set(Ve(),!0):dn(r.children,s=>{o=o.set(new Be(s),!0)}),Ld(t,new Cw(r.path,o,n))}else return[]}function og(t,e,n){return Ld(t,new Rd(ib(),e,n))}function Qie(t,e,n){let r=qn.fromObject(n);return Ld(t,new Yp(ib(),e,r))}function Jie(t,e){return Ld(t,new Dy(ib(),e))}function Zie(t,e,n){let r=ub(t,n);if(r){let i=db(r),o=i.path,s=i.queryId,a=zn(o,e),c=new Dy(ob(s),a);return hb(t,o,c)}else return[]}function xy(t,e,n,r,i=!1){let o=e._path,s=t.syncPointTree_.get(o),a=[];if(s&&(e._queryIdentifier==="default"||nH(s,e))){let c=zie(s,e,n,r);$ie(s)&&(t.syncPointTree_=t.syncPointTree_.remove(o));let l=c.removed;if(a=c.events,!i){let d=l.findIndex(f=>f._queryParams.loadsAllData())!==-1,h=t.syncPointTree_.findOnPath(o,(f,g)=>ta(g));if(d&&!h){let f=t.syncPointTree_.subtree(o);if(!f.isEmpty()){let g=noe(f);for(let E=0;E<g.length;++E){let I=g[E],S=I.query,L=sH(t,I);t.listenProvider_.startListening(Hp(S),Qp(t,S),L.hashFn,L.onComplete)}}}!h&&l.length>0&&!r&&(d?t.listenProvider_.stopListening(Hp(e),null):l.forEach(f=>{let g=t.queryToTagMap.get(Wy(f));t.listenProvider_.stopListening(Hp(f),g)}))}roe(t,l)}return a}function rH(t,e,n,r){let i=ub(t,r);if(i!=null){let o=db(i),s=o.path,a=o.queryId,c=zn(s,e),l=new Rd(ob(a),c,n);return hb(t,s,l)}else return[]}function eoe(t,e,n,r){let i=ub(t,r);if(i){let o=db(i),s=o.path,a=o.queryId,c=zn(s,e),l=qn.fromObject(n),d=new Yp(ob(a),c,l);return hb(t,s,d)}else return[]}function xw(t,e,n,r=!1){let i=e._path,o=null,s=!1;t.syncPointTree_.foreachOnPath(i,(f,g)=>{let E=zn(f,i);o=o||Js(g,E),s=s||ta(g)});let a=t.syncPointTree_.get(i);a?(s=s||ta(a),o=o||Js(a,Ve())):(a=new My,t.syncPointTree_=t.syncPointTree_.set(i,a));let c;o!=null?c=!0:(c=!1,o=ve.EMPTY_NODE,t.syncPointTree_.subtree(i).foreachChild((g,E)=>{let I=Js(E,Ve());I&&(o=o.updateImmediateChild(g,I))}));let l=nH(a,e);if(!l&&!e._queryParams.loadsAllData()){let f=Wy(e);q(!t.queryToTagMap.has(f),"View does not exist, but we have a tag");let g=ioe();t.queryToTagMap.set(f,g),t.tagToQueryMap.set(g,f)}let d=jy(t.pendingWriteTree_,i),h=Wie(a,e,n,d,o,c);if(!l&&!s&&!r){let f=tH(a,e);h=h.concat(ooe(t,e,f))}return h}function $y(t,e,n){let i=t.pendingWriteTree_,o=t.syncPointTree_.findOnPath(e,(s,a)=>{let c=zn(s,e),l=Js(a,c);if(l)return l});return qj(i,e,o,n,!0)}function toe(t,e){let n=e._path,r=null;t.syncPointTree_.foreachOnPath(n,(l,d)=>{let h=zn(l,n);r=r||Js(d,h)});let i=t.syncPointTree_.get(n);i?r=r||Js(i,Ve()):(i=new My,t.syncPointTree_=t.syncPointTree_.set(n,i));let o=r!=null,s=o?new eo(r,!0,!1):null,a=jy(t.pendingWriteTree_,e._path),c=Zj(i,e,a,o?s.getNode():ve.EMPTY_NODE,o);return Uie(c)}function Ld(t,e){return iH(e,t.syncPointTree_,null,jy(t.pendingWriteTree_,Ve()))}function iH(t,e,n,r){if(we(t.path))return oH(t,e,n,r);{let i=e.get(Ve());n==null&&i!=null&&(n=Js(i,Ve()));let o=[],s=Ne(t.path),a=t.operationForChild(s),c=e.children.get(s);if(c&&a){let l=n?n.getImmediateChild(s):null,d=Kj(r,s);o=o.concat(iH(a,c,l,d))}return i&&(o=o.concat(cb(i,t,r,n))),o}}function oH(t,e,n,r){let i=e.get(Ve());n==null&&i!=null&&(n=Js(i,Ve()));let o=[];return e.children.inorderTraversal((s,a)=>{let c=n?n.getImmediateChild(s):null,l=Kj(r,s),d=t.operationForChild(s);d&&(o=o.concat(oH(d,a,c,l)))}),i&&(o=o.concat(cb(i,t,r,n))),o}function sH(t,e){let n=e.query,r=Qp(t,n);return{hashFn:()=>(Fie(e)||ve.EMPTY_NODE).hash(),onComplete:i=>{if(i==="ok")return r?Zie(t,n._path,r):Jie(t,n._path);{let o=gre(i,n);return xy(t,n,null,o)}}}}function Qp(t,e){let n=Wy(e);return t.queryToTagMap.get(n)}function Wy(t){return t._path.toString()+"$"+t._queryIdentifier}function ub(t,e){return t.tagToQueryMap.get(e)}function db(t){let e=t.indexOf("$");return q(e!==-1&&e<t.length-1,"Bad queryKey."),{queryId:t.substr(e+1),path:new Be(t.substr(0,e))}}function hb(t,e,n){let r=t.syncPointTree_.get(e);q(r,"Missing sync point for query tag that we're tracking");let i=jy(t.pendingWriteTree_,e);return cb(r,n,i,null)}function noe(t){return t.fold((e,n,r)=>{if(n&&ta(n))return[Hy(n)];{let i=[];return n&&(i=eH(n)),dn(r,(o,s)=>{i=i.concat(s)}),i}})}function Hp(t){return t._queryParams.loadsAllData()&&!t._queryParams.isDefault()?new(Kie())(t._repo,t._path):t}function roe(t,e){for(let n=0;n<e.length;++n){let r=e[n];if(!r._queryParams.loadsAllData()){let i=Wy(r),o=t.queryToTagMap.get(i);t.queryToTagMap.delete(i),t.tagToQueryMap.delete(o)}}}function ioe(){return Yie++}function ooe(t,e,n){let r=e._path,i=Qp(t,e),o=sH(t,n),s=t.listenProvider_.startListening(Hp(e),i,o.hashFn,o.onComplete),a=t.syncPointTree_.subtree(r);if(i)q(!ta(a.value),"If we're adding a query, it shouldn't be shadowed");else{let c=a.fold((l,d,h)=>{if(!we(l)&&d&&ta(d))return[Hy(d).query];{let f=[];return d&&(f=f.concat(eH(d).map(g=>g.query))),dn(h,(g,E)=>{f=f.concat(E)}),f}});for(let l=0;l<c.length;++l){let d=c[l];t.listenProvider_.stopListening(Hp(d),Qp(t,d))}}return s}var kw=class t{constructor(e){this.node_=e}getImmediateChild(e){let n=this.node_.getImmediateChild(e);return new t(n)}node(){return this.node_}},Fw=class t{constructor(e,n){this.syncTree_=e,this.path_=n}getImmediateChild(e){let n=Ct(this.path_,e);return new t(this.syncTree_,n)}node(){return $y(this.syncTree_,this.path_)}},soe=function(t){return t=t||{},t.timestamp=t.timestamp||new Date().getTime(),t},lj=function(t,e,n){if(!t||typeof t!="object")return t;if(q(".sv"in t,"Unexpected leaf node or priority contents"),typeof t[".sv"]=="string")return aoe(t[".sv"],e,n);if(typeof t[".sv"]=="object")return coe(t[".sv"],e);q(!1,"Unexpected server value: "+JSON.stringify(t,null,2))},aoe=function(t,e,n){if(t==="timestamp")return n.timestamp;q(!1,"Unexpected server value: "+t)},coe=function(t,e,n){t.hasOwnProperty("increment")||q(!1,"Unexpected server value: "+JSON.stringify(t,null,2));let r=t.increment;typeof r!="number"&&q(!1,"Unexpected increment value: "+r);let i=e.node();if(q(i!==null&&typeof i<"u","Expected ChildrenNode.EMPTY_NODE for nulls"),!i.isLeafNode())return r;let s=i.getValue();return typeof s!="number"?r:s+r},aH=function(t,e,n,r){return pb(e,new Fw(n,t),r)},fb=function(t,e,n){return pb(t,new kw(e),n)};function pb(t,e,n){let r=t.getPriority().val(),i=lj(r,e.getImmediateChild(".priority"),n),o;if(t.isLeafNode()){let s=t,a=lj(s.getValue(),e,n);return a!==s.getValue()||i!==s.getPriority().val()?new Ad(a,At(i)):t}else{let s=t;return o=s,i!==s.getPriority().val()&&(o=o.updatePriority(new Ad(i))),s.forEachChild(ft,(a,c)=>{let l=pb(c,e.getImmediateChild(a),n);l!==c&&(o=o.updateImmediateChild(a,l))}),o}}var Jp=class{constructor(e="",n=null,r={children:{},childCount:0}){this.name=e,this.parent=n,this.node=r}};function zy(t,e){let n=e instanceof Be?e:new Be(e),r=t,i=Ne(n);for(;i!==null;){let o=Fs(r.node.children,i)||{children:{},childCount:0};r=new Jp(i,r,o),n=at(n),i=Ne(n)}return r}function ll(t){return t.node.value}function gb(t,e){t.node.value=e,Uw(t)}function cH(t){return t.node.childCount>0}function loe(t){return ll(t)===void 0&&!cH(t)}function qy(t,e){dn(t.node.children,(n,r)=>{e(new Jp(n,t,r))})}function lH(t,e,n,r){n&&!r&&e(t),qy(t,i=>{lH(i,e,!0,r)}),n&&r&&e(t)}function uoe(t,e,n){let r=n?t:t.parent;for(;r!==null;){if(e(r))return!0;r=r.parent}return!1}function sg(t){return new Be(t.parent===null?t.name:sg(t.parent)+"/"+t.name)}function Uw(t){t.parent!==null&&doe(t.parent,t.name,t)}function doe(t,e,n){let r=loe(n),i=Vr(t.node.children,e);r&&i?(delete t.node.children[e],t.node.childCount--,Uw(t)):!r&&!i&&(t.node.children[e]=n.node,t.node.childCount++,Uw(t))}var hoe=/[\[\].#$\/\u0000-\u001F\u007F]/,foe=/[\[\].#$\u0000-\u001F\u007F]/,XN=10*1024*1024,Ky=function(t){return typeof t=="string"&&t.length!==0&&!hoe.test(t)},uH=function(t){return typeof t=="string"&&t.length!==0&&!foe.test(t)},poe=function(t){return t&&(t=t.replace(/^\/*\.info(\/|$)/,"/")),uH(t)},Zp=function(t){return t===null||typeof t=="string"||typeof t=="number"&&!By(t)||t&&typeof t=="object"&&Vr(t,".sv")},rl=function(t,e,n,r){r&&e===void 0||ag(Us(t,"value"),e,n)},ag=function(t,e,n){let r=n instanceof Be?new lw(n,t):n;if(e===void 0)throw new Error(t+"contains undefined "+Qc(r));if(typeof e=="function")throw new Error(t+"contains a function "+Qc(r)+" with contents = "+e.toString());if(By(e))throw new Error(t+"contains "+e.toString()+" "+Qc(r));if(typeof e=="string"&&e.length>XN/3&&mp(e)>XN)throw new Error(t+"contains a string greater than "+XN+" utf8 bytes "+Qc(r)+" ('"+e.substring(0,50)+"...')");if(e&&typeof e=="object"){let i=!1,o=!1;if(dn(e,(s,a)=>{if(s===".value")i=!0;else if(s!==".priority"&&s!==".sv"&&(o=!0,!Ky(s)))throw new Error(t+" contains an invalid key ("+s+") "+Qc(r)+`. Keys must be non-empty strings and can't contain ".", "#", "$", "/", "[", or "]"`);$re(r,s),ag(t,a,r),Wre(r)}),i&&o)throw new Error(t+' contains ".value" child '+Qc(r)+" in addition to actual children.")}},goe=function(t,e){let n,r;for(n=0;n<e.length;n++){r=e[n];let o=$p(r);for(let s=0;s<o.length;s++)if(!(o[s]===".priority"&&s===o.length-1)){if(!Ky(o[s]))throw new Error(t+"contains an invalid key ("+o[s]+") in path "+r.toString()+`. Keys must be non-empty strings and can't contain ".", "#", "$", "/", "[", or "]"`)}}e.sort(Hre);let i=null;for(n=0;n<e.length;n++){if(r=e[n],i!==null&&jr(i,r))throw new Error(t+"contains a path "+i.toString()+" that is ancestor of another path "+r.toString());i=r}},dH=function(t,e,n,r){if(r&&e===void 0)return;let i=Us(t,"values");if(!(e&&typeof e=="object")||Array.isArray(e))throw new Error(i+" must be an object containing the children to replace.");let o=[];dn(e,(s,a)=>{let c=new Be(s);if(ag(i,a,Ct(n,c)),Zw(c)===".priority"&&!Zp(a))throw new Error(i+"contains an invalid value for '"+c.toString()+"', which must be a valid Firebase priority (a string, finite number, server value, or null).");o.push(c)}),goe(i,o)},moe=function(t,e,n){if(!(n&&e===void 0)){if(By(e))throw new Error(Us(t,"priority")+"is "+e.toString()+", but must be a valid Firebase priority (a string, finite number, server value, or null).");if(!Zp(e))throw new Error(Us(t,"priority")+"must be a valid Firebase priority (a string, finite number, server value, or null).")}},hH=function(t,e,n,r){if(!(r&&n===void 0)&&!Ky(n))throw new Error(Us(t,e)+'was an invalid key = "'+n+`". Firebase keys must be non-empty strings and can't contain ".", "#", "$", "/", "[", or "]").`)},mb=function(t,e,n,r){if(!(r&&n===void 0)&&!uH(n))throw new Error(Us(t,e)+'was an invalid path = "'+n+`". Paths must be non-empty strings and can't contain ".", "#", "$", "[", or "]"`)},Eoe=function(t,e,n,r){n&&(n=n.replace(/^\/*\.info(\/|$)/,"/")),mb(t,e,n,r)},Xs=function(t,e){if(Ne(e)===".info")throw new Error(t+" failed = Can't modify data under /.info/")},_oe=function(t,e){let n=e.path.toString();if(typeof e.repoInfo.host!="string"||e.repoInfo.host.length===0||!Ky(e.repoInfo.namespace)&&e.repoInfo.host.split(":")[0]!=="localhost"||n.length!==0&&!poe(n))throw new Error(Us(t,"url")+`must be a valid firebase URL and the path can't contain ".", "#", "$", "[", or "]".`)};var Vw=class{constructor(){this.eventLists_=[],this.recursionDepth_=0}};function Yy(t,e){let n=null;for(let r=0;r<e.length;r++){let i=e[r],o=i.getPath();n!==null&&!eb(o,n.path)&&(t.eventLists_.push(n),n=null),n===null&&(n={events:[],path:o}),n.events.push(i)}n&&t.eventLists_.push(n)}function fH(t,e,n){Yy(t,n),pH(t,r=>eb(r,e))}function vr(t,e,n){Yy(t,n),pH(t,r=>jr(r,e)||jr(e,r))}function pH(t,e){t.recursionDepth_++;let n=!0;for(let r=0;r<t.eventLists_.length;r++){let i=t.eventLists_[r];if(i){let o=i.path;e(o)?(Toe(t.eventLists_[r]),t.eventLists_[r]=null):n=!1}}n&&(t.eventLists_=[]),t.recursionDepth_--}function Toe(t){for(let e=0;e<t.events.length;e++){let n=t.events[e];if(n!==null){t.events[e]=null;let r=n.getEventRunner();Zc&&un("event: "+n.toString()),Od(r)}}}var yoe="repo_interrupt",Ioe=25,Bw=class{constructor(e,n,r,i){this.repoInfo_=e,this.forceRestClient_=n,this.authTokenProvider_=r,this.appCheckProvider_=i,this.dataUpdateCount=0,this.statsListener_=null,this.eventQueue_=new Vw,this.nextWriteId_=1,this.interceptServerDataCallback_=null,this.onDisconnect_=Cy(),this.transactionQueueTree_=new Jp,this.persistentConnection_=null,this.key=this.repoInfo_.toURLString()}toString(){return(this.repoInfo_.secure?"https://":"http://")+this.repoInfo_.host}};function voe(t,e,n){if(t.stats_=Jw(t.repoInfo_),t.forceRestClient_||Tre())t.server_=new Tw(t.repoInfo_,(r,i,o,s)=>{uj(t,r,i,o,s)},t.authTokenProvider_,t.appCheckProvider_),setTimeout(()=>dj(t,!0),0);else{if(typeof n<"u"&&n!==null){if(typeof n!="object")throw new Error("Only objects are supported for option databaseAuthVariableOverride");try{xt(n)}catch(r){throw new Error("Invalid authOverride provided: "+r)}}t.persistentConnection_=new tb(t.repoInfo_,e,(r,i,o,s)=>{uj(t,r,i,o,s)},r=>{dj(t,r)},r=>{Soe(t,r)},t.authTokenProvider_,t.appCheckProvider_,n),t.server_=t.persistentConnection_}t.authTokenProvider_.addTokenChangeListener(r=>{t.server_.refreshAuthToken(r)}),t.appCheckProvider_.addTokenChangeListener(r=>{t.server_.refreshAppCheckToken(r.token)}),t.statsReporter_=Ire(t.repoInfo_,()=>new Aw(t.stats_,t.server_)),t.infoData_=new yw,t.infoSyncTree_=new Py({startListening:(r,i,o,s)=>{let a=[],c=t.infoData_.getNode(r._path);return c.isEmpty()||(a=og(t.infoSyncTree_,r._path,c),setTimeout(()=>{s("ok")},0)),a},stopListening:()=>{}}),Eb(t,"connected",!1),t.serverSyncTree_=new Py({startListening:(r,i,o,s)=>(t.server_.listen(r,o,i,(a,c)=>{let l=s(a,c);vr(t.eventQueue_,r._path,l)}),[]),stopListening:(r,i)=>{t.server_.unlisten(r,i)}})}function gH(t){let n=t.infoData_.getNode(new Be(".info/serverTimeOffset")).val()||0;return new Date().getTime()+n}function cg(t){return soe({timestamp:gH(t)})}function uj(t,e,n,r,i){t.dataUpdateCount++;let o=new Be(e);n=t.interceptServerDataCallback_?t.interceptServerDataCallback_(e,n):n;let s=[];if(i)if(r){let c=pp(n,l=>At(l));s=eoe(t.serverSyncTree_,o,c,i)}else{let c=At(n);s=rH(t.serverSyncTree_,o,c,i)}else if(r){let c=pp(n,l=>At(l));s=Qie(t.serverSyncTree_,o,c)}else{let c=At(n);s=og(t.serverSyncTree_,o,c)}let a=o;s.length>0&&(a=wd(t,o)),vr(t.eventQueue_,a,s)}function dj(t,e){Eb(t,"connected",e),e===!1&&Roe(t)}function Soe(t,e){dn(e,(n,r)=>{Eb(t,n,r)})}function Eb(t,e,n){let r=new Be("/.info/"+e),i=At(n);t.infoData_.updateSnapshot(r,i);let o=og(t.infoSyncTree_,r,i);vr(t.eventQueue_,r,o)}function Xy(t){return t.nextWriteId_++}function Aoe(t,e,n){let r=toe(t.serverSyncTree_,e);return r!=null?Promise.resolve(r):t.server_.get(e).then(i=>{let o=At(i).withIndex(e._queryParams.getIndex());xw(t.serverSyncTree_,e,n,!0);let s;if(e._queryParams.loadsAllData())s=og(t.serverSyncTree_,e._path,o);else{let a=Qp(t.serverSyncTree_,e);s=rH(t.serverSyncTree_,e._path,o,a)}return vr(t.eventQueue_,e._path,s),xy(t.serverSyncTree_,e,n,null,!0),o},i=>(Pd(t,"get for query "+xt(e)+" failed: "+i),Promise.reject(new Error(i))))}function Coe(t,e,n,r,i){Pd(t,"set",{path:e.toString(),value:n,priority:r});let o=cg(t),s=At(n,r),a=$y(t.serverSyncTree_,e),c=fb(s,a,o),l=Xy(t),d=lb(t.serverSyncTree_,e,c,l,!0);Yy(t.eventQueue_,d),t.server_.put(e.toString(),s.val(!0),(f,g)=>{let E=f==="ok";E||xn("set at "+e+" failed: "+f);let I=Ys(t.serverSyncTree_,l,!E);vr(t.eventQueue_,e,I),na(t,i,f,g)});let h=Tb(t,e);wd(t,h),vr(t.eventQueue_,h,[])}function Doe(t,e,n,r){Pd(t,"update",{path:e.toString(),value:n});let i=!0,o=cg(t),s={};if(dn(n,(a,c)=>{i=!1,s[a]=aH(Ct(e,a),At(c),t.serverSyncTree_,o)}),i)un("update() called with empty data. Don't do anything."),na(t,r,"ok",void 0);else{let a=Xy(t),c=Xie(t.serverSyncTree_,e,s,a);Yy(t.eventQueue_,c),t.server_.merge(e.toString(),n,(l,d)=>{let h=l==="ok";h||xn("update at "+e+" failed: "+l);let f=Ys(t.serverSyncTree_,a,!h),g=f.length>0?wd(t,e):e;vr(t.eventQueue_,g,f),na(t,r,l,d)}),dn(n,l=>{let d=Tb(t,Ct(e,l));wd(t,d)}),vr(t.eventQueue_,e,[])}}function Roe(t){Pd(t,"onDisconnectEvents");let e=cg(t),n=Cy();vw(t.onDisconnect_,Ve(),(i,o)=>{let s=aH(i,o,t.serverSyncTree_,e);Md(n,i,s)});let r=[];vw(n,Ve(),(i,o)=>{r=r.concat(og(t.serverSyncTree_,i,o));let s=Tb(t,i);wd(t,s)}),t.onDisconnect_=Cy(),vr(t.eventQueue_,Ve(),r)}function Noe(t,e,n){t.server_.onDisconnectCancel(e.toString(),(r,i)=>{r==="ok"&&Iw(t.onDisconnect_,e),na(t,n,r,i)})}function hj(t,e,n,r){let i=At(n);t.server_.onDisconnectPut(e.toString(),i.val(!0),(o,s)=>{o==="ok"&&Md(t.onDisconnect_,e,i),na(t,r,o,s)})}function woe(t,e,n,r,i){let o=At(n,r);t.server_.onDisconnectPut(e.toString(),o.val(!0),(s,a)=>{s==="ok"&&Md(t.onDisconnect_,e,o),na(t,i,s,a)})}function boe(t,e,n,r){if(fp(n)){un("onDisconnect().update() called with empty data. Don't do anything."),na(t,r,"ok",void 0);return}t.server_.onDisconnectMerge(e.toString(),n,(i,o)=>{i==="ok"&&dn(n,(s,a)=>{let c=At(a);Md(t.onDisconnect_,Ct(e,s),c)}),na(t,r,i,o)})}function Ooe(t,e,n){let r;Ne(e._path)===".info"?r=xw(t.infoSyncTree_,e,n):r=xw(t.serverSyncTree_,e,n),fH(t.eventQueue_,e._path,r)}function Gw(t,e,n){let r;Ne(e._path)===".info"?r=xy(t.infoSyncTree_,e,n):r=xy(t.serverSyncTree_,e,n),fH(t.eventQueue_,e._path,r)}function Moe(t){t.persistentConnection_&&t.persistentConnection_.interrupt(yoe)}function Pd(t,...e){let n="";t.persistentConnection_&&(n=t.persistentConnection_.id+":"),un(n,...e)}function na(t,e,n,r){e&&Od(()=>{if(n==="ok")e(null);else{let i=(n||"error").toUpperCase(),o=i;r&&(o+=": "+r);let s=new Error(o);s.code=i,e(s)}})}function Loe(t,e,n,r,i,o){Pd(t,"transaction on "+e);let s={path:e,update:n,onComplete:r,status:null,order:mj(),applyLocally:o,retryCount:0,unwatcher:i,abortReason:null,currentWriteId:null,currentInputSnapshot:null,currentOutputSnapshotRaw:null,currentOutputSnapshotResolved:null},a=_b(t,e,void 0);s.currentInputSnapshot=a;let c=s.update(a.val());if(c===void 0)s.unwatcher(),s.currentOutputSnapshotRaw=null,s.currentOutputSnapshotResolved=null,s.onComplete&&s.onComplete(null,!1,s.currentInputSnapshot);else{ag("transaction failed: Data returned ",c,s.path),s.status=0;let l=zy(t.transactionQueueTree_,e),d=ll(l)||[];d.push(s),gb(l,d);let h;typeof c=="object"&&c!==null&&Vr(c,".priority")?(h=Fs(c,".priority"),q(Zp(h),"Invalid priority returned by transaction. Priority must be a valid string, finite number, server value, or null.")):h=($y(t.serverSyncTree_,e)||ve.EMPTY_NODE).getPriority().val();let f=cg(t),g=At(c,h),E=fb(g,a,f);s.currentOutputSnapshotRaw=g,s.currentOutputSnapshotResolved=E,s.currentWriteId=Xy(t);let I=lb(t.serverSyncTree_,e,E,s.currentWriteId,s.applyLocally);vr(t.eventQueue_,e,I),Qy(t,t.transactionQueueTree_)}}function _b(t,e,n){return $y(t.serverSyncTree_,e,n)||ve.EMPTY_NODE}function Qy(t,e=t.transactionQueueTree_){if(e||Jy(t,e),ll(e)){let n=EH(t,e);q(n.length>0,"Sending zero length transaction queue"),n.every(i=>i.status===0)&&Poe(t,sg(e),n)}else cH(e)&&qy(e,n=>{Qy(t,n)})}function Poe(t,e,n){let r=n.map(l=>l.currentWriteId),i=_b(t,e,r),o=i,s=i.hash();for(let l=0;l<n.length;l++){let d=n[l];q(d.status===0,"tryToSendTransactionQueue_: items in queue should all be run."),d.status=1,d.retryCount++;let h=zn(e,d.path);o=o.updateChild(h,d.currentOutputSnapshotRaw)}let a=o.val(!0),c=e;t.server_.put(c.toString(),a,l=>{Pd(t,"transaction put response",{path:c.toString(),status:l});let d=[];if(l==="ok"){let h=[];for(let f=0;f<n.length;f++)n[f].status=2,d=d.concat(Ys(t.serverSyncTree_,n[f].currentWriteId)),n[f].onComplete&&h.push(()=>n[f].onComplete(null,!0,n[f].currentOutputSnapshotResolved)),n[f].unwatcher();Jy(t,zy(t.transactionQueueTree_,e)),Qy(t,t.transactionQueueTree_),vr(t.eventQueue_,e,d);for(let f=0;f<h.length;f++)Od(h[f])}else{if(l==="datastale")for(let h=0;h<n.length;h++)n[h].status===3?n[h].status=4:n[h].status=0;else{xn("transaction at "+c.toString()+" failed: "+l);for(let h=0;h<n.length;h++)n[h].status=4,n[h].abortReason=l}wd(t,e)}},s)}function wd(t,e){let n=mH(t,e),r=sg(n),i=EH(t,n);return xoe(t,i,r),r}function xoe(t,e,n){if(e.length===0)return;let r=[],i=[],s=e.filter(a=>a.status===0).map(a=>a.currentWriteId);for(let a=0;a<e.length;a++){let c=e[a],l=zn(n,c.path),d=!1,h;if(q(l!==null,"rerunTransactionsUnderNode_: relativePath should not be null."),c.status===4)d=!0,h=c.abortReason,i=i.concat(Ys(t.serverSyncTree_,c.currentWriteId,!0));else if(c.status===0)if(c.retryCount>=Ioe)d=!0,h="maxretry",i=i.concat(Ys(t.serverSyncTree_,c.currentWriteId,!0));else{let f=_b(t,c.path,s);c.currentInputSnapshot=f;let g=e[a].update(f.val());if(g!==void 0){ag("transaction failed: Data returned ",g,c.path);let E=At(g);typeof g=="object"&&g!=null&&Vr(g,".priority")||(E=E.updatePriority(f.getPriority()));let S=c.currentWriteId,L=cg(t),V=fb(E,f,L);c.currentOutputSnapshotRaw=E,c.currentOutputSnapshotResolved=V,c.currentWriteId=Xy(t),s.splice(s.indexOf(S),1),i=i.concat(lb(t.serverSyncTree_,c.path,V,c.currentWriteId,c.applyLocally)),i=i.concat(Ys(t.serverSyncTree_,S,!0))}else d=!0,h="nodata",i=i.concat(Ys(t.serverSyncTree_,c.currentWriteId,!0))}vr(t.eventQueue_,n,i),i=[],d&&(e[a].status=2,(function(f){setTimeout(f,Math.floor(0))})(e[a].unwatcher),e[a].onComplete&&(h==="nodata"?r.push(()=>e[a].onComplete(null,!1,e[a].currentInputSnapshot)):r.push(()=>e[a].onComplete(new Error(h),!1,null))))}Jy(t,t.transactionQueueTree_);for(let a=0;a<r.length;a++)Od(r[a]);Qy(t,t.transactionQueueTree_)}function mH(t,e){let n,r=t.transactionQueueTree_;for(n=Ne(e);n!==null&&ll(r)===void 0;)r=zy(r,n),e=at(e),n=Ne(e);return r}function EH(t,e){let n=[];return _H(t,e,n),n.sort((r,i)=>r.order-i.order),n}function _H(t,e,n){let r=ll(e);if(r)for(let i=0;i<r.length;i++)n.push(r[i]);qy(e,i=>{_H(t,i,n)})}function Jy(t,e){let n=ll(e);if(n){let r=0;for(let i=0;i<n.length;i++)n[i].status!==2&&(n[r]=n[i],r++);n.length=r,gb(e,n.length>0?n:void 0)}qy(e,r=>{Jy(t,r)})}function Tb(t,e){let n=sg(mH(t,e)),r=zy(t.transactionQueueTree_,e);return uoe(r,i=>{QN(t,i)}),QN(t,r),lH(r,i=>{QN(t,i)}),n}function QN(t,e){let n=ll(e);if(n){let r=[],i=[],o=-1;for(let s=0;s<n.length;s++)n[s].status===3||(n[s].status===1?(q(o===s-1,"All SENT items should be at beginning of queue."),o=s,n[s].status=3,n[s].abortReason="set"):(q(n[s].status===0,"Unexpected transaction status in abort"),n[s].unwatcher(),i=i.concat(Ys(t.serverSyncTree_,n[s].currentWriteId,!0)),n[s].onComplete&&r.push(n[s].onComplete.bind(null,new Error("set"),!1,null))));o===-1?gb(e,void 0):n.length=o+1,vr(t.eventQueue_,sg(e),i);for(let s=0;s<r.length;s++)Od(r[s])}}function koe(t){let e="",n=t.split("/");for(let r=0;r<n.length;r++)if(n[r].length>0){let i=n[r];try{i=decodeURIComponent(i.replace(/\+/g," "))}catch{}e+="/"+i}return e}function Foe(t){let e={};t.charAt(0)==="?"&&(t=t.substring(1));for(let n of t.split("&")){if(n.length===0)continue;let r=n.split("=");r.length===2?e[decodeURIComponent(r[0])]=decodeURIComponent(r[1]):xn(`Invalid query segment '${n}' in query '${t}'`)}return e}var fj=function(t,e){let n=Uoe(t),r=n.namespace;n.domain==="firebase.com"&&Wo(n.host+" is no longer supported. Please use <YOUR FIREBASE>.firebaseio.com instead"),(!r||r==="undefined")&&n.domain!=="localhost"&&Wo("Cannot parse Firebase url. Please use https://<YOUR FIREBASE>.firebaseio.com"),n.secure||ure();let i=n.scheme==="ws"||n.scheme==="wss";return{repoInfo:new my(n.host,n.secure,r,i,e,"",r!==n.subdomain),path:new Be(n.pathString)}},Uoe=function(t){let e="",n="",r="",i="",o="",s=!0,a="https",c=443;if(typeof t=="string"){let l=t.indexOf("//");l>=0&&(a=t.substring(0,l-1),t=t.substring(l+2));let d=t.indexOf("/");d===-1&&(d=t.length);let h=t.indexOf("?");h===-1&&(h=t.length),e=t.substring(0,Math.min(d,h)),d<h&&(i=koe(t.substring(d,h)));let f=Foe(t.substring(Math.min(t.length,h)));l=e.indexOf(":"),l>=0?(s=a==="https"||a==="wss",c=parseInt(e.substring(l+1),10)):l=e.length;let g=e.slice(0,l);if(g.toLowerCase()==="localhost")n="localhost";else if(g.split(".").length<=2)n=g;else{let E=e.indexOf(".");r=e.substring(0,E).toLowerCase(),n=e.substring(E+1),o=r}"ns"in f&&(o=f.ns)}return{host:e,port:c,domain:n,subdomain:r,secure:s,scheme:a,pathString:i,namespace:o}};var pj="-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz",Voe=(function(){let t=0,e=[];return function(n){let r=n===t;t=n;let i,o=new Array(8);for(i=7;i>=0;i--)o[i]=pj.charAt(n%64),n=Math.floor(n/64);q(n===0,"Cannot push at time == 0");let s=o.join("");if(r){for(i=11;i>=0&&e[i]===63;i--)e[i]=0;e[i]++}else for(i=0;i<12;i++)e[i]=Math.floor(Math.random()*64);for(i=0;i<12;i++)s+=pj.charAt(e[i]);return q(s.length===20,"nextPushId: Length should be 20."),s}})();var ky=class{constructor(e,n,r,i){this.eventType=e,this.eventRegistration=n,this.snapshot=r,this.prevName=i}getPath(){let e=this.snapshot.ref;return this.eventType==="value"?e._path:e.parent._path}getEventType(){return this.eventType}getEventRunner(){return this.eventRegistration.getEventRunner(this)}toString(){return this.getPath().toString()+":"+this.eventType+":"+xt(this.snapshot.exportVal())}},Fy=class{constructor(e,n,r){this.eventRegistration=e,this.error=n,this.path=r}getPath(){return this.path}getEventType(){return"cancel"}getEventRunner(){return this.eventRegistration.getEventRunner(this)}toString(){return this.path.toString()+":cancel"}};var eg=class{constructor(e,n){this.snapshotCallback=e,this.cancelCallback=n}onValue(e,n){this.snapshotCallback.call(null,e,n)}onCancel(e){return q(this.hasCancelCallback,"Raising a cancel event on a listener with no cancel callback"),this.cancelCallback.call(null,e)}get hasCancelCallback(){return!!this.cancelCallback}matches(e){return this.snapshotCallback===e.snapshotCallback||this.snapshotCallback.userCallback!==void 0&&this.snapshotCallback.userCallback===e.snapshotCallback.userCallback&&this.snapshotCallback.context===e.snapshotCallback.context}};var jw=class{constructor(e,n){this._repo=e,this._path=n}cancel(){let e=new cn;return Noe(this._repo,this._path,e.wrapCallback(()=>{})),e.promise}remove(){Xs("OnDisconnect.remove",this._path);let e=new cn;return hj(this._repo,this._path,null,e.wrapCallback(()=>{})),e.promise}set(e){Xs("OnDisconnect.set",this._path),rl("OnDisconnect.set",e,this._path,!1);let n=new cn;return hj(this._repo,this._path,e,n.wrapCallback(()=>{})),n.promise}setWithPriority(e,n){Xs("OnDisconnect.setWithPriority",this._path),rl("OnDisconnect.setWithPriority",e,this._path,!1),moe("OnDisconnect.setWithPriority",n,!1);let r=new cn;return woe(this._repo,this._path,e,n,r.wrapCallback(()=>{})),r.promise}update(e){Xs("OnDisconnect.update",this._path),dH("OnDisconnect.update",e,this._path,!1);let n=new cn;return boe(this._repo,this._path,e,n.wrapCallback(()=>{})),n.promise}};var il=class t{constructor(e,n,r,i){this._repo=e,this._path=n,this._queryParams=r,this._orderByCalled=i}get key(){return we(this._path)?null:Zw(this._path)}get ref(){return new hi(this._repo,this._path)}get _queryIdentifier(){let e=Z2(this._queryParams),n=Qw(e);return n==="{}"?"default":n}get _queryObject(){return Z2(this._queryParams)}isEqual(e){if(e=Me(e),!(e instanceof t))return!1;let n=this._repo===e._repo,r=eb(this._path,e._path),i=this._queryIdentifier===e._queryIdentifier;return n&&r&&i}toJSON(){return this.toString()}toString(){return this._repo.toString()+jre(this._path)}};function Boe(t,e){if(t._orderByCalled===!0)throw new Error(e+": You can't combine multiple orderBy calls.")}function yb(t){let e=null,n=null;if(t.hasStart()&&(e=t.getIndexStartValue()),t.hasEnd()&&(n=t.getIndexEndValue()),t.getIndex()===el){let r="Query: When ordering by key, you may only pass one argument to startAt(), endAt(), or equalTo().",i="Query: When ordering by key, the argument passed to startAt(), startAfter(), endAt(), endBefore(), or equalTo() must be a string.";if(t.hasStart()){if(t.getIndexStartName()!==tl)throw new Error(r);if(typeof e!="string")throw new Error(i)}if(t.hasEnd()){if(t.getIndexEndName()!==Zs)throw new Error(r);if(typeof n!="string")throw new Error(i)}}else if(t.getIndex()===ft){if(e!=null&&!Zp(e)||n!=null&&!Zp(n))throw new Error("Query: When ordering by priority, the first argument passed to startAt(), startAfter() endAt(), endBefore(), or equalTo() must be a valid priority value (null, a number, or a string).")}else if(q(t.getIndex()instanceof Wp||t.getIndex()===jj,"unknown index type."),e!=null&&typeof e=="object"||n!=null&&typeof n=="object")throw new Error("Query: First argument passed to startAt(), startAfter(), endAt(), endBefore(), or equalTo() cannot be an object.")}function TH(t){if(t.hasStart()&&t.hasEnd()&&t.hasLimit()&&!t.hasAnchoredLimit())throw new Error("Query: Can't combine startAt(), startAfter(), endAt(), endBefore(), and limit(). Use limitToFirst() or limitToLast() instead.")}var hi=class t extends il{constructor(e,n){super(e,n,new _w,!1)}get parent(){let e=kj(this._path);return e===null?null:new t(this._repo,e)}get root(){let e=this;for(;e.parent!==null;)e=e.parent;return e}},bd=class t{constructor(e,n,r){this._node=e,this.ref=n,this._index=r}get priority(){return this._node.getPriority().val()}get key(){return this.ref.key}get size(){return this._node.numChildren()}child(e){let n=new Be(e),r=ol(this.ref,e);return new t(this._node.getChild(n),r,ft)}exists(){return!this._node.isEmpty()}exportVal(){return this._node.val(!0)}forEach(e){return this._node.isLeafNode()?!1:!!this._node.forEachChild(this._index,(r,i)=>e(new t(i,ol(this.ref,r),ft)))}hasChild(e){let n=new Be(e);return!this._node.getChild(n).isEmpty()}hasChildren(){return this._node.isLeafNode()?!1:!this._node.isEmpty()}toJSON(){return this.exportVal()}val(){return this._node.val()}};function yH(t,e){return t=Me(t),t._checkNotDeleted("ref"),e!==void 0?ol(t._root,e):t._root}function ol(t,e){return t=Me(t),Ne(t._path)===null?Eoe("child","path",e,!1):mb("child","path",e,!1),new hi(t._repo,Ct(t._path,e))}function IH(t){return t=Me(t),new jw(t._repo,t._path)}function vH(t,e){t=Me(t),Xs("push",t._path),rl("push",e,t._path,!0);let n=gH(t._repo),r=Voe(n),i=ol(t,r),o=ol(t,r),s;return e!=null?s=Zy(o,e).then(()=>o):s=Promise.resolve(o),i.then=s.then.bind(s),i.catch=s.then.bind(s,void 0),i}function SH(t){return Xs("remove",t._path),Zy(t,null)}function Zy(t,e){t=Me(t),Xs("set",t._path),rl("set",e,t._path,!1);let n=new cn;return Coe(t._repo,t._path,e,null,n.wrapCallback(()=>{})),n.promise}function AH(t,e){dH("update",e,t._path,!1);let n=new cn;return Doe(t._repo,t._path,e,n.wrapCallback(()=>{})),n.promise}function eI(t){t=Me(t);let e=new eg(()=>{}),n=new tg(e);return Aoe(t._repo,t,n).then(r=>new bd(r,new hi(t._repo,t._path),t._queryParams.getIndex()))}var tg=class t{constructor(e){this.callbackContext=e}respondsTo(e){return e==="value"}createEvent(e,n){let r=n._queryParams.getIndex();return new ky("value",this,new bd(e.snapshotNode,new hi(n._repo,n._path),r))}getEventRunner(e){return e.getEventType()==="cancel"?()=>this.callbackContext.onCancel(e.error):()=>this.callbackContext.onValue(e.snapshot,null)}createCancelEvent(e,n){return this.callbackContext.hasCancelCallback?new Fy(this,e,n):null}matches(e){return e instanceof t?!e.callbackContext||!this.callbackContext?!0:e.callbackContext.matches(this.callbackContext):!1}hasAnyCallback(){return this.callbackContext!==null}},Uy=class t{constructor(e,n){this.eventType=e,this.callbackContext=n}respondsTo(e){let n=e==="children_added"?"child_added":e;return n=n==="children_removed"?"child_removed":n,this.eventType===n}createCancelEvent(e,n){return this.callbackContext.hasCancelCallback?new Fy(this,e,n):null}createEvent(e,n){q(e.childName!=null,"Child events should have a childName.");let r=ol(new hi(n._repo,n._path),e.childName),i=n._queryParams.getIndex();return new ky(e.type,this,new bd(e.snapshotNode,r,i),e.prevName)}getEventRunner(e){return e.getEventType()==="cancel"?()=>this.callbackContext.onCancel(e.error):()=>this.callbackContext.onValue(e.snapshot,e.prevName)}matches(e){return e instanceof t?this.eventType===e.eventType&&(!this.callbackContext||!e.callbackContext||this.callbackContext.matches(e.callbackContext)):!1}hasAnyCallback(){return!!this.callbackContext}};function lg(t,e,n,r,i){let o;if(typeof r=="object"&&(o=void 0,i=r),typeof r=="function"&&(o=r),i&&i.onlyOnce){let c=n,l=(d,h)=>{Gw(t._repo,t,a),c(d,h)};l.userCallback=n.userCallback,l.context=n.context,n=l}let s=new eg(n,o||void 0),a=e==="value"?new tg(s):new Uy(e,s);return Ooe(t._repo,t,a),()=>Gw(t._repo,t,a)}function ug(t,e,n,r){return lg(t,"value",e,n,r)}function tI(t,e,n,r){return lg(t,"child_added",e,n,r)}function nI(t,e,n,r){return lg(t,"child_changed",e,n,r)}function Ib(t,e,n,r){return lg(t,"child_moved",e,n,r)}function rI(t,e,n,r){return lg(t,"child_removed",e,n,r)}function iI(t,e,n){let r=null,i=n?new eg(n):null;e==="value"?r=new tg(i):e&&(r=new Uy(e,i)),Gw(t._repo,t,r)}var sl=class{},Hw=class extends sl{constructor(e,n){super(),this._value=e,this._key=n,this.type="endAt"}_apply(e){rl("endAt",this._value,e._path,!0);let n=sie(e._queryParams,this._value,this._key);if(TH(n),yb(n),e._queryParams.hasEnd())throw new Error("endAt: Starting point was already set (by another call to endAt, endBefore or equalTo).");return new il(e._repo,e._path,n,e._orderByCalled)}};var Vy=class extends sl{constructor(e,n){super(),this._value=e,this._key=n,this.type="startAt"}_apply(e){rl("startAt",this._value,e._path,!0);let n=oie(e._queryParams,this._value,this._key);if(TH(n),yb(n),e._queryParams.hasStart())throw new Error("startAt: Starting point was already set (by another call to startAt, startBefore or equalTo).");return new il(e._repo,e._path,n,e._orderByCalled)}};function CH(t=null,e){return hH("startAt","key",e,!0),new Vy(t,e)}var $w=class extends sl{constructor(e){super(),this._limit=e,this.type="limitToLast"}_apply(e){if(e._queryParams.hasLimit())throw new Error("limitToLast: Limit was already set (by another call to limitToFirst or limitToLast).");return new il(e._repo,e._path,iie(e._queryParams,this._limit),e._orderByCalled)}};function DH(t){if(typeof t!="number"||Math.floor(t)!==t||t<=0)throw new Error("limitToLast: First argument must be a positive integer.");return new $w(t)}var Ww=class extends sl{constructor(e){super(),this._path=e,this.type="orderByChild"}_apply(e){Boe(e,"orderByChild");let n=new Be(this._path);if(we(n))throw new Error("orderByChild: cannot pass in empty path. Use orderByValue() instead.");let r=new Wp(n),i=aie(e._queryParams,r);return yb(i),new il(e._repo,e._path,i,!0)}};function RH(t){if(t==="$key")throw new Error('orderByChild: "$key" is invalid. Use orderByKey() instead.');if(t==="$priority")throw new Error('orderByChild: "$priority" is invalid. Use orderByPriority() instead.');if(t==="$value")throw new Error('orderByChild: "$value" is invalid. Use orderByValue() instead.');return mb("orderByChild","path",t,!1),new Ww(t)}var zw=class extends sl{constructor(e,n){super(),this._value=e,this._key=n,this.type="equalTo"}_apply(e){if(rl("equalTo",this._value,e._path,!1),e._queryParams.hasStart())throw new Error("equalTo: Starting point was already set (by another call to startAt/startAfter or equalTo).");if(e._queryParams.hasEnd())throw new Error("equalTo: Ending point was already set (by another call to endAt/endBefore or equalTo).");return new Hw(this._value,this._key)._apply(new Vy(this._value,this._key)._apply(e))}};function NH(t,e){return hH("equalTo","key",e,!0),new zw(t,e)}function wH(t,...e){let n=Me(t);for(let r of e)n=r._apply(n);return n}jie(hi);qie(hi);var Goe="FIREBASE_DATABASE_EMULATOR_HOST",qw={},joe=!1;function Hoe(t,e,n,r){let i=e.lastIndexOf(":"),o=e.substring(0,i),s=_r(o);t.repoInfo_=new my(e,s,t.repoInfo_.namespace,t.repoInfo_.webSocketOnly,t.repoInfo_.nodeAdmin,t.repoInfo_.persistenceKey,t.repoInfo_.includeNamespaceInQueryParams,!0,n),r&&(t.authTokenProvider_=r)}function $oe(t,e,n,r,i){let o=r||t.options.databaseURL;o===void 0&&(t.options.projectId||Wo("Can't determine Firebase Database URL. Be sure to include a Project ID when calling firebase.initializeApp()."),un("Using default host for project ",t.options.projectId),o=`${t.options.projectId}-default-rtdb.firebaseio.com`);let s=fj(o,i),a=s.repoInfo,c,l;typeof process<"u"&&process.env&&(l=process.env[Goe]),l?(c=!0,o=`http://${l}?ns=${a.namespace}`,s=fj(o,i),a=s.repoInfo):c=!s.repoInfo.secure;let d=i&&c?new Bp(Bp.OWNER):new rw(t.name,t.options,e);_oe("Invalid Firebase Database URL",s),we(s.path)||Wo("Database URL must point to the root of a Firebase Database (not including a child path).");let h=zoe(a,t,d,new nw(t,n));return new Kw(h,t)}function Woe(t,e){let n=qw[e];(!n||n[t.key]!==t)&&Wo(`Database ${e}(${t.repoInfo_}) has already been deleted.`),Moe(t),delete n[t.key]}function zoe(t,e,n,r){let i=qw[e.name];i||(i={},qw[e.name]=i);let o=i[t.toURLString()];return o&&Wo("Database initialized multiple times. Please make sure the format of the database URL matches with each database() call."),o=new Bw(t,joe,n,r),i[t.toURLString()]=o,o}var Kw=class{constructor(e,n){this._repoInternal=e,this.app=n,this.type="database",this._instanceStarted=!1}get _repo(){return this._instanceStarted||(voe(this._repoInternal,this.app.options.appId,this.app.options.databaseAuthVariableOverride),this._instanceStarted=!0),this._repoInternal}get _root(){return this._rootInternal||(this._rootInternal=new hi(this._repo,Ve())),this._rootInternal}_delete(){return this._rootInternal!==null&&(Woe(this._repo,this.app.name),this._repoInternal=null,this._rootInternal=null),Promise.resolve()}_checkNotDeleted(e){this._rootInternal===null&&Wo("Cannot call "+e+" on a deleted database.")}};function qoe(){xj.IS_TRANSPORT_INITIALIZED&&xn("Transport has already been initialized. Please call this function before calling ref or setting up a listener")}function vb(){qoe(),yd.forceDisallow(),Ey.forceAllow()}function xd(t=er(),e){let n=Xi(t,"database").getImmediate({identifier:e});if(!n._instanceStarted){let r=ud("database");r&&bH(n,...r)}return n}function bH(t,e,n,r={}){t=Me(t),t._checkNotDeleted("useEmulator");let i=`${e}:${n}`,o=t._repoInternal;if(t._instanceStarted){if(i===t._repoInternal.repoInfo_.host&&oi(r,o.repoInfo_.emulatorOptions))return;Wo("connectDatabaseEmulator() cannot initialize or alter the emulator configuration after the database instance has started.")}let s;if(o.repoInfo_.nodeAdmin)r.mockUserToken&&Wo('mockUserToken is not supported by the Admin SDK. For client access with mock users, please use the "firebase" package instead of "firebase-admin".'),s=new Bp(Bp.OWNER);else if(r.mockUserToken){let a=typeof r.mockUserToken=="string"?r.mockUserToken:FT(r.mockUserToken,t.app.options.projectId);s=new Bp(a)}_r(e)&&(ks(e),Fc("Database",!0)),Hoe(o,i,r,s)}function Koe(t){cre(Bs),$n(new Xt("database",(e,{instanceIdentifier:n})=>{let r=e.getProvider("app").getImmediate(),i=e.getProvider("auth-internal"),o=e.getProvider("app-check-internal");return $oe(r,i,o,n)},"PUBLIC").setMultipleInstances(!0)),Ge(k2,F2,t),Ge(k2,F2,"esm2017")}var Yw=class{constructor(e,n){this.committed=e,this.snapshot=n}toJSON(){return{committed:this.committed,snapshot:this.snapshot.toJSON()}}};function OH(t,e,n){var r;if(t=Me(t),Xs("Reference.transaction",t._path),t.key===".length"||t.key===".keys")throw"Reference.transaction failed: "+t.key+" is a read-only object.";let i=(r=n?.applyLocally)!==null&&r!==void 0?r:!0,o=new cn,s=(c,l,d)=>{let h=null;c?o.reject(c):(h=new bd(d,new hi(t._repo,t._path),ft),o.resolve(new Yw(l,h)))},a=ug(t,()=>{});return Loe(t._repo,t._path,e,s,a,i),o.promise}tb.prototype.simpleListen=function(t,e){this.sendRequest("q",{p:t},e)};tb.prototype.echo=function(t,e){this.sendRequest("echo",{d:t},e)};Koe();var ul,hn=(function(t){return t.added="child_added",t.removed="child_removed",t.changed="child_changed",t.moved="child_moved",t.value="value",t})(hn||{}),Yoe=Object.freeze((ul={},ul[hn.added]=tI,ul[hn.removed]=rI,ul[hn.changed]=nI,ul[hn.moved]=Ib,ul[hn.value]=ug,ul));function sI(t,e){return new fe(function(n){var r=Yoe[e](t,function(i,o){n.next({snapshot:i,prevKey:o,event:e})},n.error.bind(n));return{unsubscribe:function(){iI(t,e,r)}}}).pipe(cS(0))}var oI=function(){return oI=Object.assign||function(e){for(var n,r=1,i=arguments.length;r<i;r++){n=arguments[r];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},oI.apply(this,arguments)};function Sb(t,e,n){if(n||arguments.length===2)for(var r=0,i=e.length,o;r<i;r++)(o||!(r in e))&&(o||(o=Array.prototype.slice.call(e,0,r)),o[r]=e[r]);return t.concat(o||Array.prototype.slice.call(e))}function MH(t){return(t==null||t.length===0)&&(t=[hn.added,hn.removed,hn.changed,hn.moved]),t}function LH(t,e){return e===void 0&&(e={}),sI(t,hn.value).pipe(De(function(n){return Ab(n,e)}))}function Ab(t,e){var n;e===void 0&&(e={});var r=t.snapshot.val();return!t.snapshot.exists()||typeof r!="object"?r:oI(oI({},r),e.keyField?(n={},n[e.keyField]=t.snapshot.key,n):null)}function PH(t,e){e===void 0&&(e={});var n=MH(e.events),r=n.map(function(i){return sI(t,i)});return gs.apply(void 0,r)}function Xoe(t){return cr(eI(t)).pipe(De(function(e){var n=hn.value;return{snapshot:e,prevKey:null,event:n}}))}function xH(t,e){e===void 0&&(e={});var n=MH(e.events);return Xoe(t).pipe(Mr(function(r){var i=[lt(r)];return n.forEach(function(o){i.push(sI(t,o))}),gs.apply(void 0,i).pipe(Zm(Joe,[]))}),yo())}function kH(t,e){return e===void 0&&(e={}),xH(t).pipe(De(function(n){return n.map(function(r){return Ab(r,e)})}))}function FH(t,e){for(var n=t.length,r=0;r<n;r++)if(t[r].snapshot.key===e)return r;return-1}function Qoe(t,e){if(e==null)return 0;var n=FH(t,e);return n===-1?t.length:n+1}function Joe(t,e){var n=e.snapshot,r=e.prevKey,i=e.event,o=n.key,s=FH(t,o),a=Qoe(t,r||void 0);switch(i){case hn.value:if(e.snapshot&&e.snapshot.exists()){var c=null;e.snapshot.forEach(function(h){var f={snapshot:h,event:hn.value,prevKey:c};return c=h.key,t=Sb(Sb([],t,!0),[f],!1),!1})}return t;case hn.added:if(s>-1){var l=t[s-1];(l&&l.snapshot.key||null)!==r&&(t=t.filter(function(h){return h.snapshot.key!==n.key}),t.splice(a,0,e))}else{if(r==null)return Sb([e],t,!0);t=t.slice(),t.splice(a,0,e)}return t;case hn.removed:return t.filter(function(h){return h.snapshot.key!==n.key});case hn.changed:return t.map(function(h){return h.snapshot.key===o?e:h});case hn.moved:if(s>-1){var d=t.splice(s,1)[0];return t=t.slice(),t.splice(a,0,d),t}return t;default:return t}}var dg=class{constructor(e){return e}},UH="database",Cb=class{constructor(){return Go(UH)}};var Db=new z("angularfire2.database-instances");function Zoe(t,e){let n=Gs(UH,t,e);return n&&new dg(n)}function ese(t){return(e,n)=>{let r=e.runOutsideAngular(()=>t(n));return new dg(r)}}var tse={provide:Cb,deps:[[new zt,Db]]},nse={provide:dg,useFactory:Zoe,deps:[[new zt,Db],ci]};function NFe(t,...e){return Ge("angularfire",si.full,"rtdb"),Xn([nse,tse,{provide:Db,useFactory:ese(t),multi:!0,deps:[Ae,ze,ai,jo,[new zt,$c],[new zt,Hs],...e]}])}var VH=ue(kH,!0);var BH=ue(LH,!0),GH=ue(PH,!0);var wFe=ue(NH,!0,2);var hg=ue(eI,!0),bFe=ue(xd,!0);var OFe=ue(DH,!0,2),jH=ue(iI,!0),HH=ue(tI,!0),$H=ue(nI,!0);var WH=ue(rI,!0),zH=ue(IH,!0),Rb=ue(ug,!0),MFe=ue(RH,!0,2);var qH=ue(vH,!0,2),KH=ue(wH,!0,2),kd=ue(yH,!0,2);var YH=ue(SH,!0,2),XH=ue(OH,!0),QH=ue(Zy,!0,2);var LFe=ue(CH,!0,2),JH=ue(AH,!0,2);var ZH=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},e$={};var zo,Nb;(function(){var t;function e(C,v){function A(){}A.prototype=v.prototype,C.D=v.prototype,C.prototype=new A,C.prototype.constructor=C,C.C=function(R,N,O){for(var D=Array(arguments.length-2),Vn=2;Vn<arguments.length;Vn++)D[Vn-2]=arguments[Vn];return v.prototype[N].apply(R,D)}}function n(){this.blockSize=-1}function r(){this.blockSize=-1,this.blockSize=64,this.g=Array(4),this.B=Array(this.blockSize),this.o=this.h=0,this.s()}e(r,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};function i(C,v,A){A||(A=0);var R=Array(16);if(typeof v=="string")for(var N=0;16>N;++N)R[N]=v.charCodeAt(A++)|v.charCodeAt(A++)<<8|v.charCodeAt(A++)<<16|v.charCodeAt(A++)<<24;else for(N=0;16>N;++N)R[N]=v[A++]|v[A++]<<8|v[A++]<<16|v[A++]<<24;v=C.g[0],A=C.g[1],N=C.g[2];var O=C.g[3],D=v+(O^A&(N^O))+R[0]+3614090360&4294967295;v=A+(D<<7&4294967295|D>>>25),D=O+(N^v&(A^N))+R[1]+3905402710&4294967295,O=v+(D<<12&4294967295|D>>>20),D=N+(A^O&(v^A))+R[2]+606105819&4294967295,N=O+(D<<17&4294967295|D>>>15),D=A+(v^N&(O^v))+R[3]+3250441966&4294967295,A=N+(D<<22&4294967295|D>>>10),D=v+(O^A&(N^O))+R[4]+4118548399&4294967295,v=A+(D<<7&4294967295|D>>>25),D=O+(N^v&(A^N))+R[5]+1200080426&4294967295,O=v+(D<<12&4294967295|D>>>20),D=N+(A^O&(v^A))+R[6]+2821735955&4294967295,N=O+(D<<17&4294967295|D>>>15),D=A+(v^N&(O^v))+R[7]+4249261313&4294967295,A=N+(D<<22&4294967295|D>>>10),D=v+(O^A&(N^O))+R[8]+1770035416&4294967295,v=A+(D<<7&4294967295|D>>>25),D=O+(N^v&(A^N))+R[9]+2336552879&4294967295,O=v+(D<<12&4294967295|D>>>20),D=N+(A^O&(v^A))+R[10]+4294925233&4294967295,N=O+(D<<17&4294967295|D>>>15),D=A+(v^N&(O^v))+R[11]+2304563134&4294967295,A=N+(D<<22&4294967295|D>>>10),D=v+(O^A&(N^O))+R[12]+1804603682&4294967295,v=A+(D<<7&4294967295|D>>>25),D=O+(N^v&(A^N))+R[13]+4254626195&4294967295,O=v+(D<<12&4294967295|D>>>20),D=N+(A^O&(v^A))+R[14]+2792965006&4294967295,N=O+(D<<17&4294967295|D>>>15),D=A+(v^N&(O^v))+R[15]+1236535329&4294967295,A=N+(D<<22&4294967295|D>>>10),D=v+(N^O&(A^N))+R[1]+4129170786&4294967295,v=A+(D<<5&4294967295|D>>>27),D=O+(A^N&(v^A))+R[6]+3225465664&4294967295,O=v+(D<<9&4294967295|D>>>23),D=N+(v^A&(O^v))+R[11]+643717713&4294967295,N=O+(D<<14&4294967295|D>>>18),D=A+(O^v&(N^O))+R[0]+3921069994&4294967295,A=N+(D<<20&4294967295|D>>>12),D=v+(N^O&(A^N))+R[5]+3593408605&4294967295,v=A+(D<<5&4294967295|D>>>27),D=O+(A^N&(v^A))+R[10]+38016083&4294967295,O=v+(D<<9&4294967295|D>>>23),D=N+(v^A&(O^v))+R[15]+3634488961&4294967295,N=O+(D<<14&4294967295|D>>>18),D=A+(O^v&(N^O))+R[4]+3889429448&4294967295,A=N+(D<<20&4294967295|D>>>12),D=v+(N^O&(A^N))+R[9]+568446438&4294967295,v=A+(D<<5&4294967295|D>>>27),D=O+(A^N&(v^A))+R[14]+3275163606&4294967295,O=v+(D<<9&4294967295|D>>>23),D=N+(v^A&(O^v))+R[3]+4107603335&4294967295,N=O+(D<<14&4294967295|D>>>18),D=A+(O^v&(N^O))+R[8]+1163531501&4294967295,A=N+(D<<20&4294967295|D>>>12),D=v+(N^O&(A^N))+R[13]+2850285829&4294967295,v=A+(D<<5&4294967295|D>>>27),D=O+(A^N&(v^A))+R[2]+4243563512&4294967295,O=v+(D<<9&4294967295|D>>>23),D=N+(v^A&(O^v))+R[7]+1735328473&4294967295,N=O+(D<<14&4294967295|D>>>18),D=A+(O^v&(N^O))+R[12]+2368359562&4294967295,A=N+(D<<20&4294967295|D>>>12),D=v+(A^N^O)+R[5]+4294588738&4294967295,v=A+(D<<4&4294967295|D>>>28),D=O+(v^A^N)+R[8]+2272392833&4294967295,O=v+(D<<11&4294967295|D>>>21),D=N+(O^v^A)+R[11]+1839030562&4294967295,N=O+(D<<16&4294967295|D>>>16),D=A+(N^O^v)+R[14]+4259657740&4294967295,A=N+(D<<23&4294967295|D>>>9),D=v+(A^N^O)+R[1]+2763975236&4294967295,v=A+(D<<4&4294967295|D>>>28),D=O+(v^A^N)+R[4]+1272893353&4294967295,O=v+(D<<11&4294967295|D>>>21),D=N+(O^v^A)+R[7]+4139469664&4294967295,N=O+(D<<16&4294967295|D>>>16),D=A+(N^O^v)+R[10]+3200236656&4294967295,A=N+(D<<23&4294967295|D>>>9),D=v+(A^N^O)+R[13]+681279174&4294967295,v=A+(D<<4&4294967295|D>>>28),D=O+(v^A^N)+R[0]+3936430074&4294967295,O=v+(D<<11&4294967295|D>>>21),D=N+(O^v^A)+R[3]+3572445317&4294967295,N=O+(D<<16&4294967295|D>>>16),D=A+(N^O^v)+R[6]+76029189&4294967295,A=N+(D<<23&4294967295|D>>>9),D=v+(A^N^O)+R[9]+3654602809&4294967295,v=A+(D<<4&4294967295|D>>>28),D=O+(v^A^N)+R[12]+3873151461&4294967295,O=v+(D<<11&4294967295|D>>>21),D=N+(O^v^A)+R[15]+530742520&4294967295,N=O+(D<<16&4294967295|D>>>16),D=A+(N^O^v)+R[2]+3299628645&4294967295,A=N+(D<<23&4294967295|D>>>9),D=v+(N^(A|~O))+R[0]+4096336452&4294967295,v=A+(D<<6&4294967295|D>>>26),D=O+(A^(v|~N))+R[7]+1126891415&4294967295,O=v+(D<<10&4294967295|D>>>22),D=N+(v^(O|~A))+R[14]+2878612391&4294967295,N=O+(D<<15&4294967295|D>>>17),D=A+(O^(N|~v))+R[5]+4237533241&4294967295,A=N+(D<<21&4294967295|D>>>11),D=v+(N^(A|~O))+R[12]+1700485571&4294967295,v=A+(D<<6&4294967295|D>>>26),D=O+(A^(v|~N))+R[3]+2399980690&4294967295,O=v+(D<<10&4294967295|D>>>22),D=N+(v^(O|~A))+R[10]+4293915773&4294967295,N=O+(D<<15&4294967295|D>>>17),D=A+(O^(N|~v))+R[1]+2240044497&4294967295,A=N+(D<<21&4294967295|D>>>11),D=v+(N^(A|~O))+R[8]+1873313359&4294967295,v=A+(D<<6&4294967295|D>>>26),D=O+(A^(v|~N))+R[15]+4264355552&4294967295,O=v+(D<<10&4294967295|D>>>22),D=N+(v^(O|~A))+R[6]+2734768916&4294967295,N=O+(D<<15&4294967295|D>>>17),D=A+(O^(N|~v))+R[13]+1309151649&4294967295,A=N+(D<<21&4294967295|D>>>11),D=v+(N^(A|~O))+R[4]+4149444226&4294967295,v=A+(D<<6&4294967295|D>>>26),D=O+(A^(v|~N))+R[11]+3174756917&4294967295,O=v+(D<<10&4294967295|D>>>22),D=N+(v^(O|~A))+R[2]+718787259&4294967295,N=O+(D<<15&4294967295|D>>>17),D=A+(O^(N|~v))+R[9]+3951481745&4294967295,C.g[0]=C.g[0]+v&4294967295,C.g[1]=C.g[1]+(N+(D<<21&4294967295|D>>>11))&4294967295,C.g[2]=C.g[2]+N&4294967295,C.g[3]=C.g[3]+O&4294967295}r.prototype.u=function(C,v){v===void 0&&(v=C.length);for(var A=v-this.blockSize,R=this.B,N=this.h,O=0;O<v;){if(N==0)for(;O<=A;)i(this,C,O),O+=this.blockSize;if(typeof C=="string"){for(;O<v;)if(R[N++]=C.charCodeAt(O++),N==this.blockSize){i(this,R),N=0;break}}else for(;O<v;)if(R[N++]=C[O++],N==this.blockSize){i(this,R),N=0;break}}this.h=N,this.o+=v},r.prototype.v=function(){var C=Array((56>this.h?this.blockSize:2*this.blockSize)-this.h);C[0]=128;for(var v=1;v<C.length-8;++v)C[v]=0;var A=8*this.o;for(v=C.length-8;v<C.length;++v)C[v]=A&255,A/=256;for(this.u(C),C=Array(16),v=A=0;4>v;++v)for(var R=0;32>R;R+=8)C[A++]=this.g[v]>>>R&255;return C};function o(C,v){var A=a;return Object.prototype.hasOwnProperty.call(A,C)?A[C]:A[C]=v(C)}function s(C,v){this.h=v;for(var A=[],R=!0,N=C.length-1;0<=N;N--){var O=C[N]|0;R&&O==v||(A[N]=O,R=!1)}this.g=A}var a={};function c(C){return-128<=C&&128>C?o(C,function(v){return new s([v|0],0>v?-1:0)}):new s([C|0],0>C?-1:0)}function l(C){if(isNaN(C)||!isFinite(C))return h;if(0>C)return S(l(-C));for(var v=[],A=1,R=0;C>=A;R++)v[R]=C/A|0,A*=4294967296;return new s(v,0)}function d(C,v){if(C.length==0)throw Error("number format error: empty string");if(v=v||10,2>v||36<v)throw Error("radix out of range: "+v);if(C.charAt(0)=="-")return S(d(C.substring(1),v));if(0<=C.indexOf("-"))throw Error('number format error: interior "-" character');for(var A=l(Math.pow(v,8)),R=h,N=0;N<C.length;N+=8){var O=Math.min(8,C.length-N),D=parseInt(C.substring(N,N+O),v);8>O?(O=l(Math.pow(v,O)),R=R.j(O).add(l(D))):(R=R.j(A),R=R.add(l(D)))}return R}var h=c(0),f=c(1),g=c(16777216);t=s.prototype,t.m=function(){if(I(this))return-S(this).m();for(var C=0,v=1,A=0;A<this.g.length;A++){var R=this.i(A);C+=(0<=R?R:4294967296+R)*v,v*=4294967296}return C},t.toString=function(C){if(C=C||10,2>C||36<C)throw Error("radix out of range: "+C);if(E(this))return"0";if(I(this))return"-"+S(this).toString(C);for(var v=l(Math.pow(C,6)),A=this,R="";;){var N=oe(A,v).g;A=L(A,N.j(v));var O=((0<A.g.length?A.g[0]:A.h)>>>0).toString(C);if(A=N,E(A))return O+R;for(;6>O.length;)O="0"+O;R=O+R}},t.i=function(C){return 0>C?0:C<this.g.length?this.g[C]:this.h};function E(C){if(C.h!=0)return!1;for(var v=0;v<C.g.length;v++)if(C.g[v]!=0)return!1;return!0}function I(C){return C.h==-1}t.l=function(C){return C=L(this,C),I(C)?-1:E(C)?0:1};function S(C){for(var v=C.g.length,A=[],R=0;R<v;R++)A[R]=~C.g[R];return new s(A,~C.h).add(f)}t.abs=function(){return I(this)?S(this):this},t.add=function(C){for(var v=Math.max(this.g.length,C.g.length),A=[],R=0,N=0;N<=v;N++){var O=R+(this.i(N)&65535)+(C.i(N)&65535),D=(O>>>16)+(this.i(N)>>>16)+(C.i(N)>>>16);R=D>>>16,O&=65535,D&=65535,A[N]=D<<16|O}return new s(A,A[A.length-1]&-2147483648?-1:0)};function L(C,v){return C.add(S(v))}t.j=function(C){if(E(this)||E(C))return h;if(I(this))return I(C)?S(this).j(S(C)):S(S(this).j(C));if(I(C))return S(this.j(S(C)));if(0>this.l(g)&&0>C.l(g))return l(this.m()*C.m());for(var v=this.g.length+C.g.length,A=[],R=0;R<2*v;R++)A[R]=0;for(R=0;R<this.g.length;R++)for(var N=0;N<C.g.length;N++){var O=this.i(R)>>>16,D=this.i(R)&65535,Vn=C.i(N)>>>16,es=C.i(N)&65535;A[2*R+2*N]+=D*es,V(A,2*R+2*N),A[2*R+2*N+1]+=O*es,V(A,2*R+2*N+1),A[2*R+2*N+1]+=D*Vn,V(A,2*R+2*N+1),A[2*R+2*N+2]+=O*Vn,V(A,2*R+2*N+2)}for(R=0;R<v;R++)A[R]=A[2*R+1]<<16|A[2*R];for(R=v;R<2*v;R++)A[R]=0;return new s(A,0)};function V(C,v){for(;(C[v]&65535)!=C[v];)C[v+1]+=C[v]>>>16,C[v]&=65535,v++}function K(C,v){this.g=C,this.h=v}function oe(C,v){if(E(v))throw Error("division by zero");if(E(C))return new K(h,h);if(I(C))return v=oe(S(C),v),new K(S(v.g),S(v.h));if(I(v))return v=oe(C,S(v)),new K(S(v.g),v.h);if(30<C.g.length){if(I(C)||I(v))throw Error("slowDivide_ only works with positive integers.");for(var A=f,R=v;0>=R.l(C);)A=ge(A),R=ge(R);var N=te(A,1),O=te(R,1);for(R=te(R,2),A=te(A,2);!E(R);){var D=O.add(R);0>=D.l(C)&&(N=N.add(A),O=D),R=te(R,1),A=te(A,1)}return v=L(C,N.j(v)),new K(N,v)}for(N=h;0<=C.l(v);){for(A=Math.max(1,Math.floor(C.m()/v.m())),R=Math.ceil(Math.log(A)/Math.LN2),R=48>=R?1:Math.pow(2,R-48),O=l(A),D=O.j(v);I(D)||0<D.l(C);)A-=R,O=l(A),D=O.j(v);E(O)&&(O=f),N=N.add(O),C=L(C,D)}return new K(N,C)}t.A=function(C){return oe(this,C).h},t.and=function(C){for(var v=Math.max(this.g.length,C.g.length),A=[],R=0;R<v;R++)A[R]=this.i(R)&C.i(R);return new s(A,this.h&C.h)},t.or=function(C){for(var v=Math.max(this.g.length,C.g.length),A=[],R=0;R<v;R++)A[R]=this.i(R)|C.i(R);return new s(A,this.h|C.h)},t.xor=function(C){for(var v=Math.max(this.g.length,C.g.length),A=[],R=0;R<v;R++)A[R]=this.i(R)^C.i(R);return new s(A,this.h^C.h)};function ge(C){for(var v=C.g.length+1,A=[],R=0;R<v;R++)A[R]=C.i(R)<<1|C.i(R-1)>>>31;return new s(A,C.h)}function te(C,v){var A=v>>5;v%=32;for(var R=C.g.length-A,N=[],O=0;O<R;O++)N[O]=0<v?C.i(O+A)>>>v|C.i(O+A+1)<<32-v:C.i(O+A);return new s(N,C.h)}r.prototype.digest=r.prototype.v,r.prototype.reset=r.prototype.s,r.prototype.update=r.prototype.u,Nb=e$.Md5=r,s.prototype.add=s.prototype.add,s.prototype.multiply=s.prototype.j,s.prototype.modulo=s.prototype.A,s.prototype.compare=s.prototype.l,s.prototype.toNumber=s.prototype.m,s.prototype.toString=s.prototype.toString,s.prototype.getBits=s.prototype.i,s.fromNumber=l,s.fromString=d,zo=e$.Integer=s}).apply(typeof ZH<"u"?ZH:typeof self<"u"?self:typeof window<"u"?window:{});var aI=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},qo={};var wb,rse,Fd,bb,fg,cI,Ob,Mb,Lb;(function(){var t,e=typeof Object.defineProperties=="function"?Object.defineProperty:function(u,p,m){return u==Array.prototype||u==Object.prototype||(u[p]=m.value),u};function n(u){u=[typeof globalThis=="object"&&globalThis,u,typeof window=="object"&&window,typeof self=="object"&&self,typeof aI=="object"&&aI];for(var p=0;p<u.length;++p){var m=u[p];if(m&&m.Math==Math)return m}throw Error("Cannot find global object")}var r=n(this);function i(u,p){if(p)e:{var m=r;u=u.split(".");for(var _=0;_<u.length-1;_++){var b=u[_];if(!(b in m))break e;m=m[b]}u=u[u.length-1],_=m[u],p=p(_),p!=_&&p!=null&&e(m,u,{configurable:!0,writable:!0,value:p})}}function o(u,p){u instanceof String&&(u+="");var m=0,_=!1,b={next:function(){if(!_&&m<u.length){var k=m++;return{value:p(k,u[k]),done:!1}}return _=!0,{done:!0,value:void 0}}};return b[Symbol.iterator]=function(){return b},b}i("Array.prototype.values",function(u){return u||function(){return o(this,function(p,m){return m})}});var s=s||{},a=this||self;function c(u){var p=typeof u;return p=p!="object"?p:u?Array.isArray(u)?"array":p:"null",p=="array"||p=="object"&&typeof u.length=="number"}function l(u){var p=typeof u;return p=="object"&&u!=null||p=="function"}function d(u,p,m){return u.call.apply(u.bind,arguments)}function h(u,p,m){if(!u)throw Error();if(2<arguments.length){var _=Array.prototype.slice.call(arguments,2);return function(){var b=Array.prototype.slice.call(arguments);return Array.prototype.unshift.apply(b,_),u.apply(p,b)}}return function(){return u.apply(p,arguments)}}function f(u,p,m){return f=Function.prototype.bind&&Function.prototype.bind.toString().indexOf("native code")!=-1?d:h,f.apply(null,arguments)}function g(u,p){var m=Array.prototype.slice.call(arguments,1);return function(){var _=m.slice();return _.push.apply(_,arguments),u.apply(this,_)}}function E(u,p){function m(){}m.prototype=p.prototype,u.aa=p.prototype,u.prototype=new m,u.prototype.constructor=u,u.Qb=function(_,b,k){for(var X=Array(arguments.length-2),it=2;it<arguments.length;it++)X[it-2]=arguments[it];return p.prototype[b].apply(_,X)}}function I(u){let p=u.length;if(0<p){let m=Array(p);for(let _=0;_<p;_++)m[_]=u[_];return m}return[]}function S(u,p){for(let m=1;m<arguments.length;m++){let _=arguments[m];if(c(_)){let b=u.length||0,k=_.length||0;u.length=b+k;for(let X=0;X<k;X++)u[b+X]=_[X]}else u.push(_)}}class L{constructor(p,m){this.i=p,this.j=m,this.h=0,this.g=null}get(){let p;return 0<this.h?(this.h--,p=this.g,this.g=p.next,p.next=null):p=this.i(),p}}function V(u){return/^[\s\xa0]*$/.test(u)}function K(){var u=a.navigator;return u&&(u=u.userAgent)?u:""}function oe(u){return oe[" "](u),u}oe[" "]=function(){};var ge=K().indexOf("Gecko")!=-1&&!(K().toLowerCase().indexOf("webkit")!=-1&&K().indexOf("Edge")==-1)&&!(K().indexOf("Trident")!=-1||K().indexOf("MSIE")!=-1)&&K().indexOf("Edge")==-1;function te(u,p,m){for(let _ in u)p.call(m,u[_],_,u)}function C(u,p){for(let m in u)p.call(void 0,u[m],m,u)}function v(u){let p={};for(let m in u)p[m]=u[m];return p}let A="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function R(u,p){let m,_;for(let b=1;b<arguments.length;b++){_=arguments[b];for(m in _)u[m]=_[m];for(let k=0;k<A.length;k++)m=A[k],Object.prototype.hasOwnProperty.call(_,m)&&(u[m]=_[m])}}function N(u){var p=1;u=u.split(":");let m=[];for(;0<p&&u.length;)m.push(u.shift()),p--;return u.length&&m.push(u.join(":")),m}function O(u){a.setTimeout(()=>{throw u},0)}function D(){var u=ns;let p=null;return u.g&&(p=u.g,u.g=u.g.next,u.g||(u.h=null),p.next=null),p}class Vn{constructor(){this.h=this.g=null}add(p,m){let _=es.get();_.set(p,m),this.h?this.h.next=_:this.g=_,this.h=_}}var es=new L(()=>new ts,u=>u.reset());class ts{constructor(){this.next=this.g=this.h=null}set(p,m){this.h=p,this.g=m,this.next=null}reset(){this.next=this.g=this.h=null}}let Da,Ra=!1,ns=new Vn,Ul=()=>{let u=a.Promise.resolve(void 0);Da=()=>{u.then(hm)}};var hm=()=>{for(var u;u=D();){try{u.h.call(u.g)}catch(m){O(m)}var p=es;p.j(u),100>p.h&&(p.h++,u.next=p.g,p.g=u)}Ra=!1};function _i(){this.s=this.s,this.C=this.C}_i.prototype.s=!1,_i.prototype.ma=function(){this.s||(this.s=!0,this.N())},_i.prototype.N=function(){if(this.C)for(;this.C.length;)this.C.shift()()};function nn(u,p){this.type=u,this.g=this.target=p,this.defaultPrevented=!1}nn.prototype.h=function(){this.defaultPrevented=!0};var kv=(function(){if(!a.addEventListener||!Object.defineProperty)return!1;var u=!1,p=Object.defineProperty({},"passive",{get:function(){u=!0}});try{let m=()=>{};a.addEventListener("test",m,p),a.removeEventListener("test",m,p)}catch{}return u})();function He(u,p){if(nn.call(this,u?u.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,u){var m=this.type=u.type,_=u.changedTouches&&u.changedTouches.length?u.changedTouches[0]:null;if(this.target=u.target||u.srcElement,this.g=p,p=u.relatedTarget){if(ge){e:{try{oe(p.nodeName);var b=!0;break e}catch{}b=!1}b||(p=null)}}else m=="mouseover"?p=u.fromElement:m=="mouseout"&&(p=u.toElement);this.relatedTarget=p,_?(this.clientX=_.clientX!==void 0?_.clientX:_.pageX,this.clientY=_.clientY!==void 0?_.clientY:_.pageY,this.screenX=_.screenX||0,this.screenY=_.screenY||0):(this.clientX=u.clientX!==void 0?u.clientX:u.pageX,this.clientY=u.clientY!==void 0?u.clientY:u.pageY,this.screenX=u.screenX||0,this.screenY=u.screenY||0),this.button=u.button,this.key=u.key||"",this.ctrlKey=u.ctrlKey,this.altKey=u.altKey,this.shiftKey=u.shiftKey,this.metaKey=u.metaKey,this.pointerId=u.pointerId||0,this.pointerType=typeof u.pointerType=="string"?u.pointerType:Fv[u.pointerType]||"",this.state=u.state,this.i=u,u.defaultPrevented&&He.aa.h.call(this)}}E(He,nn);var Fv={2:"touch",3:"pen",4:"mouse"};He.prototype.h=function(){He.aa.h.call(this);var u=this.i;u.preventDefault?u.preventDefault():u.returnValue=!1};var Na="closure_listenable_"+(1e6*Math.random()|0),Uv=0;function Vv(u,p,m,_,b){this.listener=u,this.proxy=null,this.src=p,this.type=m,this.capture=!!_,this.ha=b,this.key=++Uv,this.da=this.fa=!1}function Vl(u){u.da=!0,u.listener=null,u.proxy=null,u.src=null,u.ha=null}function Bl(u){this.src=u,this.g={},this.h=0}Bl.prototype.add=function(u,p,m,_,b){var k=u.toString();u=this.g[k],u||(u=this.g[k]=[],this.h++);var X=wh(u,p,_,b);return-1<X?(p=u[X],m||(p.fa=!1)):(p=new Vv(p,this.src,k,!!_,b),p.fa=m,u.push(p)),p};function Gl(u,p){var m=p.type;if(m in u.g){var _=u.g[m],b=Array.prototype.indexOf.call(_,p,void 0),k;(k=0<=b)&&Array.prototype.splice.call(_,b,1),k&&(Vl(p),u.g[m].length==0&&(delete u.g[m],u.h--))}}function wh(u,p,m,_){for(var b=0;b<u.length;++b){var k=u[b];if(!k.da&&k.listener==p&&k.capture==!!m&&k.ha==_)return b}return-1}var jl="closure_lm_"+(1e6*Math.random()|0),Je={};function Hl(u,p,m,_,b){if(_&&_.once)return sr(u,p,m,_,b);if(Array.isArray(p)){for(var k=0;k<p.length;k++)Hl(u,p[k],m,_,b);return null}return m=zl(m),u&&u[Na]?u.K(p,m,l(_)?!!_.capture:!!_,b):rt(u,p,m,!1,_,b)}function rt(u,p,m,_,b,k){if(!p)throw Error("Invalid event type");var X=l(b)?!!b.capture:!!b,it=wa(u);if(it||(u[jl]=it=new Bl(u)),m=it.add(p,m,_,X,k),m.proxy)return m;if(_=bh(),m.proxy=_,_.src=u,_.listener=m,u.addEventListener)kv||(b=X),b===void 0&&(b=!1),u.addEventListener(p.toString(),_,b);else if(u.attachEvent)u.attachEvent(Wr(p.toString()),_);else if(u.addListener&&u.removeListener)u.addListener(_);else throw Error("addEventListener and attachEvent are unavailable.");return m}function bh(){function u(m){return p.call(u.src,u.listener,m)}let p=fm;return u}function sr(u,p,m,_,b){if(Array.isArray(p)){for(var k=0;k<p.length;k++)sr(u,p[k],m,_,b);return null}return m=zl(m),u&&u[Na]?u.L(p,m,l(_)?!!_.capture:!!_,b):rt(u,p,m,!0,_,b)}function rs(u,p,m,_,b){if(Array.isArray(p))for(var k=0;k<p.length;k++)rs(u,p[k],m,_,b);else _=l(_)?!!_.capture:!!_,m=zl(m),u&&u[Na]?(u=u.i,p=String(p).toString(),p in u.g&&(k=u.g[p],m=wh(k,m,_,b),-1<m&&(Vl(k[m]),Array.prototype.splice.call(k,m,1),k.length==0&&(delete u.g[p],u.h--)))):u&&(u=wa(u))&&(p=u.g[p.toString()],u=-1,p&&(u=wh(p,m,_,b)),(m=-1<u?p[u]:null)&&$l(m))}function $l(u){if(typeof u!="number"&&u&&!u.da){var p=u.src;if(p&&p[Na])Gl(p.i,u);else{var m=u.type,_=u.proxy;p.removeEventListener?p.removeEventListener(m,_,u.capture):p.detachEvent?p.detachEvent(Wr(m),_):p.addListener&&p.removeListener&&p.removeListener(_),(m=wa(p))?(Gl(m,u),m.h==0&&(m.src=null,p[jl]=null)):Vl(u)}}}function Wr(u){return u in Je?Je[u]:Je[u]="on"+u}function fm(u,p){if(u.da)u=!0;else{p=new He(p,this);var m=u.listener,_=u.ha||u.src;u.fa&&$l(u),u=m.call(_,p)}return u}function wa(u){return u=u[jl],u instanceof Bl?u:null}var Wl="__closure_events_fn_"+(1e9*Math.random()>>>0);function zl(u){return typeof u=="function"?u:(u[Wl]||(u[Wl]=function(p){return u.handleEvent(p)}),u[Wl])}function dt(){_i.call(this),this.i=new Bl(this),this.M=this,this.F=null}E(dt,_i),dt.prototype[Na]=!0,dt.prototype.removeEventListener=function(u,p,m,_){rs(this,u,p,m,_)};function yt(u,p){var m,_=u.F;if(_)for(m=[];_;_=_.F)m.push(_);if(u=u.M,_=p.type||p,typeof p=="string")p=new nn(p,u);else if(p instanceof nn)p.target=p.target||u;else{var b=p;p=new nn(_,u),R(p,b)}if(b=!0,m)for(var k=m.length-1;0<=k;k--){var X=p.g=m[k];b=wr(X,_,!0,p)&&b}if(X=p.g=u,b=wr(X,_,!0,p)&&b,b=wr(X,_,!1,p)&&b,m)for(k=0;k<m.length;k++)X=p.g=m[k],b=wr(X,_,!1,p)&&b}dt.prototype.N=function(){if(dt.aa.N.call(this),this.i){var u=this.i,p;for(p in u.g){for(var m=u.g[p],_=0;_<m.length;_++)Vl(m[_]);delete u.g[p],u.h--}}this.F=null},dt.prototype.K=function(u,p,m,_){return this.i.add(String(u),p,!1,m,_)},dt.prototype.L=function(u,p,m,_){return this.i.add(String(u),p,!0,m,_)};function wr(u,p,m,_){if(p=u.i.g[String(p)],!p)return!0;p=p.concat();for(var b=!0,k=0;k<p.length;++k){var X=p[k];if(X&&!X.da&&X.capture==m){var it=X.listener,gn=X.ha||X.src;X.fa&&Gl(u.i,X),b=it.call(gn,_)!==!1&&b}}return b&&!_.defaultPrevented}function ql(u,p,m){if(typeof u=="function")m&&(u=f(u,m));else if(u&&typeof u.handleEvent=="function")u=f(u.handleEvent,u);else throw Error("Invalid listener argument");return 2147483647<Number(p)?-1:a.setTimeout(u,p||0)}function ba(u){u.g=ql(()=>{u.g=null,u.i&&(u.i=!1,ba(u))},u.l);let p=u.h;u.h=null,u.m.apply(null,p)}class Kl extends _i{constructor(p,m){super(),this.m=p,this.l=m,this.h=null,this.i=!1,this.g=null}j(p){this.h=arguments,this.g?this.i=!0:ba(this)}N(){super.N(),this.g&&(a.clearTimeout(this.g),this.g=null,this.i=!1,this.h=null)}}function co(u){_i.call(this),this.h=u,this.g={}}E(co,_i);var lo=[];function Oa(u){te(u.g,function(p,m){this.g.hasOwnProperty(m)&&$l(p)},u),u.g={}}co.prototype.N=function(){co.aa.N.call(this),Oa(this)},co.prototype.handleEvent=function(){throw Error("EventHandler.handleEvent not implemented")};var is=a.JSON.stringify,pm=a.JSON.parse,gm=class{stringify(u){return a.JSON.stringify(u,void 0)}parse(u){return a.JSON.parse(u,void 0)}};function Yl(){}Yl.prototype.h=null;function Xl(u){return u.h||(u.h=u.i())}function Ql(){}var br={OPEN:"a",kb:"b",Ja:"c",wb:"d"};function Ti(){nn.call(this,"d")}E(Ti,nn);function Jl(){nn.call(this,"c")}E(Jl,nn);var yi={},Oh=null;function Ma(){return Oh=Oh||new dt}yi.La="serverreachability";function Mh(u){nn.call(this,yi.La,u)}E(Mh,nn);function Ii(u){let p=Ma();yt(p,new Mh(p))}yi.STAT_EVENT="statevent";function La(u,p){nn.call(this,yi.STAT_EVENT,u),this.stat=p}E(La,nn);function ct(u){let p=Ma();yt(p,new La(p,u))}yi.Ma="timingevent";function uo(u,p){nn.call(this,yi.Ma,u),this.size=p}E(uo,nn);function ho(u,p){if(typeof u!="function")throw Error("Fn must not be null and must be a function");return a.setTimeout(function(){u()},p)}function fo(){this.g=!0}fo.prototype.xa=function(){this.g=!1};function Bv(u,p,m,_,b,k){u.info(function(){if(u.g)if(k)for(var X="",it=k.split("&"),gn=0;gn<it.length;gn++){var Fe=it[gn].split("=");if(1<Fe.length){var vn=Fe[0];Fe=Fe[1];var Sn=vn.split("_");X=2<=Sn.length&&Sn[1]=="type"?X+(vn+"="+Fe+"&"):X+(vn+"=redacted&")}}else X=null;else X=k;return"XMLHTTP REQ ("+_+") [attempt "+b+"]: "+p+`
|
|
153
|
+
FIREBASE: `))}restoreState_(){this.tryAuth(),this.tryAppCheck();for(let n of this.listens.values())for(let r of n.values())this.sendListen_(r);for(let n=0;n<this.outstandingPuts_.length;n++)this.outstandingPuts_[n]&&this.sendPut_(n);for(;this.onDisconnectRequestQueue_.length;){let n=this.onDisconnectRequestQueue_.shift();this.sendOnDisconnect_(n.action,n.pathString,n.data,n.onComplete)}for(let n=0;n<this.outstandingGets_.length;n++)this.outstandingGets_[n]&&this.sendGet_(n)}sendConnectStats_(){let n={},r="js";Ki()&&(this.repoInfo_.nodeAdmin?r="admin_node":r="node"),n["sdk."+r+"."+Xw.replace(/\./g,"-")]=1,hp()?n["framework.cordova"]=1:UT()&&(n["framework.reactnative"]=1),this.reportStats(n)}shouldReconnect_(){let n=Iy.getInstance().currentlyOnline();return fp(this.interruptReasons_)&&n}}t.nextPersistentConnectionId_=0,t.nextConnectionId_=0;return t})(),Oe=class t{constructor(e,n){this.name=e,this.node=n}static Wrap(e,n){return new t(e,n)}};var Sd=class{getCompare(){return this.compare.bind(this)}indexedValueChanged(e,n){let r=new Oe(tl,e),i=new Oe(tl,n);return this.compare(r,i)!==0}minPost(){return Oe.MIN}};var py,vy=class extends Sd{static get __EMPTY_NODE(){return py}static set __EMPTY_NODE(e){py=e}compare(e,n){return al(e.name,n.name)}isDefinedOn(e){throw kc("KeyIndex.isDefinedOn not expected to be called.")}indexedValueChanged(e,n){return!1}minPost(){return Oe.MIN}maxPost(){return new Oe(Zs,py)}makePost(e,n){return q(typeof e=="string","KeyIndex indexValue must always be a string."),new Oe(e,py)}toString(){return".key"}},el=new vy;var Id=class{constructor(e,n,r,i,o=null){this.isReverse_=i,this.resultGenerator_=o,this.nodeStack_=[];let s=1;for(;!e.isEmpty();)if(e=e,s=n?r(e.key,n):1,i&&(s*=-1),s<0)this.isReverse_?e=e.left:e=e.right;else if(s===0){this.nodeStack_.push(e);break}else this.nodeStack_.push(e),this.isReverse_?e=e.right:e=e.left}getNext(){if(this.nodeStack_.length===0)return null;let e=this.nodeStack_.pop(),n;if(this.resultGenerator_?n=this.resultGenerator_(e.key,e.value):n={key:e.key,value:e.value},this.isReverse_)for(e=e.left;!e.isEmpty();)this.nodeStack_.push(e),e=e.right;else for(e=e.right;!e.isEmpty();)this.nodeStack_.push(e),e=e.left;return n}hasNext(){return this.nodeStack_.length>0}peek(){if(this.nodeStack_.length===0)return null;let e=this.nodeStack_[this.nodeStack_.length-1];return this.resultGenerator_?this.resultGenerator_(e.key,e.value):{key:e.key,value:e.value}}},ui=(()=>{class t{constructor(n,r,i,o,s){this.key=n,this.value=r,this.color=i??t.RED,this.left=o??Hr.EMPTY_NODE,this.right=s??Hr.EMPTY_NODE}copy(n,r,i,o,s){return new t(n??this.key,r??this.value,i??this.color,o??this.left,s??this.right)}count(){return this.left.count()+1+this.right.count()}isEmpty(){return!1}inorderTraversal(n){return this.left.inorderTraversal(n)||!!n(this.key,this.value)||this.right.inorderTraversal(n)}reverseTraversal(n){return this.right.reverseTraversal(n)||n(this.key,this.value)||this.left.reverseTraversal(n)}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(n,r,i){let o=this,s=i(n,o.key);return s<0?o=o.copy(null,null,null,o.left.insert(n,r,i),null):s===0?o=o.copy(null,r,null,null,null):o=o.copy(null,null,null,null,o.right.insert(n,r,i)),o.fixUp_()}removeMin_(){if(this.left.isEmpty())return Hr.EMPTY_NODE;let n=this;return!n.left.isRed_()&&!n.left.left.isRed_()&&(n=n.moveRedLeft_()),n=n.copy(null,null,null,n.left.removeMin_(),null),n.fixUp_()}remove(n,r){let i,o;if(i=this,r(n,i.key)<0)!i.left.isEmpty()&&!i.left.isRed_()&&!i.left.left.isRed_()&&(i=i.moveRedLeft_()),i=i.copy(null,null,null,i.left.remove(n,r),null);else{if(i.left.isRed_()&&(i=i.rotateRight_()),!i.right.isEmpty()&&!i.right.isRed_()&&!i.right.left.isRed_()&&(i=i.moveRedRight_()),r(n,i.key)===0){if(i.right.isEmpty())return Hr.EMPTY_NODE;o=i.right.min_(),i=i.copy(o.key,o.value,null,null,i.right.removeMin_())}i=i.copy(null,null,null,null,i.right.remove(n,r))}return i.fixUp_()}isRed_(){return this.color}fixUp_(){let n=this;return n.right.isRed_()&&!n.left.isRed_()&&(n=n.rotateLeft_()),n.left.isRed_()&&n.left.left.isRed_()&&(n=n.rotateRight_()),n.left.isRed_()&&n.right.isRed_()&&(n=n.colorFlip_()),n}moveRedLeft_(){let n=this.colorFlip_();return n.right.left.isRed_()&&(n=n.copy(null,null,null,null,n.right.rotateRight_()),n=n.rotateLeft_(),n=n.colorFlip_()),n}moveRedRight_(){let n=this.colorFlip_();return n.left.left.isRed_()&&(n=n.rotateRight_(),n=n.colorFlip_()),n}rotateLeft_(){let n=this.copy(null,null,t.RED,null,this.right.left);return this.right.copy(null,null,this.color,n,null)}rotateRight_(){let n=this.copy(null,null,t.RED,this.left.right,null);return this.left.copy(null,null,this.color,null,n)}colorFlip_(){let n=this.left.copy(null,null,!this.left.color,null,null),r=this.right.copy(null,null,!this.right.color,null,null);return this.copy(null,null,!this.color,n,r)}checkMaxDepth_(){let n=this.check_();return Math.pow(2,n)<=this.count()+1}check_(){if(this.isRed_()&&this.left.isRed_())throw new Error("Red node has red child("+this.key+","+this.value+")");if(this.right.isRed_())throw new Error("Right child of ("+this.key+","+this.value+") is red");let n=this.left.check_();if(n!==this.right.check_())throw new Error("Black depths differ");return n+(this.isRed_()?0:1)}}return t.RED=!0,t.BLACK=!1,t})(),dw=class{copy(e,n,r,i,o){return this}insert(e,n,r){return new ui(e,n,null)}remove(e,n){return this}count(){return 0}isEmpty(){return!0}inorderTraversal(e){return!1}reverseTraversal(e){return!1}minKey(){return null}maxKey(){return null}check_(){return 0}isRed_(){return!1}},Hr=class t{constructor(e,n=t.EMPTY_NODE){this.comparator_=e,this.root_=n}insert(e,n){return new t(this.comparator_,this.root_.insert(e,n,this.comparator_).copy(null,null,ui.BLACK,null,null))}remove(e){return new t(this.comparator_,this.root_.remove(e,this.comparator_).copy(null,null,ui.BLACK,null,null))}get(e){let n,r=this.root_;for(;!r.isEmpty();){if(n=this.comparator_(e,r.key),n===0)return r.value;n<0?r=r.left:n>0&&(r=r.right)}return null}getPredecessorKey(e){let n,r=this.root_,i=null;for(;!r.isEmpty();)if(n=this.comparator_(e,r.key),n===0){if(r.left.isEmpty())return i?i.key:null;for(r=r.left;!r.right.isEmpty();)r=r.right;return r.key}else n<0?r=r.left:n>0&&(i=r,r=r.right);throw new Error("Attempted to find predecessor key for a nonexistent key. What gives?")}isEmpty(){return this.root_.isEmpty()}count(){return this.root_.count()}minKey(){return this.root_.minKey()}maxKey(){return this.root_.maxKey()}inorderTraversal(e){return this.root_.inorderTraversal(e)}reverseTraversal(e){return this.root_.reverseTraversal(e)}getIterator(e){return new Id(this.root_,null,this.comparator_,!1,e)}getIteratorFrom(e,n){return new Id(this.root_,e,this.comparator_,!1,n)}getReverseIteratorFrom(e,n){return new Id(this.root_,e,this.comparator_,!0,n)}getReverseIterator(e){return new Id(this.root_,null,this.comparator_,!0,e)}};Hr.EMPTY_NODE=new dw;function Xre(t,e){return al(t.name,e.name)}function nb(t,e){return al(t,e)}var hw;function Qre(t){hw=t}var Uj=function(t){return typeof t=="number"?"number:"+Tj(t):"string:"+t},Vj=function(t){if(t.isLeafNode()){let e=t.val();q(typeof e=="string"||typeof e=="number"||typeof e=="object"&&Vr(e,".sv"),"Priority must be a string or number.")}else q(t===hw||t.isEmpty(),"priority of unexpected type.");q(t===hw||t.getPriority().isEmpty(),"Priority nodes can't have a priority of their own.")};var Q2,Ad=(()=>{class t{static set __childrenNodeConstructor(n){Q2=n}static get __childrenNodeConstructor(){return Q2}constructor(n,r=t.__childrenNodeConstructor.EMPTY_NODE){this.value_=n,this.priorityNode_=r,this.lazyHash_=null,q(this.value_!==void 0&&this.value_!==null,"LeafNode shouldn't be created with null/undefined value."),Vj(this.priorityNode_)}isLeafNode(){return!0}getPriority(){return this.priorityNode_}updatePriority(n){return new t(this.value_,n)}getImmediateChild(n){return n===".priority"?this.priorityNode_:t.__childrenNodeConstructor.EMPTY_NODE}getChild(n){return we(n)?this:Ne(n)===".priority"?this.priorityNode_:t.__childrenNodeConstructor.EMPTY_NODE}hasChild(){return!1}getPredecessorChildName(n,r){return null}updateImmediateChild(n,r){return n===".priority"?this.updatePriority(r):r.isEmpty()&&n!==".priority"?this:t.__childrenNodeConstructor.EMPTY_NODE.updateImmediateChild(n,r).updatePriority(this.priorityNode_)}updateChild(n,r){let i=Ne(n);return i===null?r:r.isEmpty()&&i!==".priority"?this:(q(i!==".priority"||ea(n)===1,".priority must be the last token in a path"),this.updateImmediateChild(i,t.__childrenNodeConstructor.EMPTY_NODE.updateChild(at(n),r)))}isEmpty(){return!1}numChildren(){return 0}forEachChild(n,r){return!1}val(n){return n&&!this.getPriority().isEmpty()?{".value":this.getValue(),".priority":this.getPriority().val()}:this.getValue()}hash(){if(this.lazyHash_===null){let n="";this.priorityNode_.isEmpty()||(n+="priority:"+Uj(this.priorityNode_.val())+":");let r=typeof this.value_;n+=r+":",r==="number"?n+=Tj(this.value_):n+=this.value_,this.lazyHash_=Ej(n)}return this.lazyHash_}getValue(){return this.value_}compareTo(n){return n===t.__childrenNodeConstructor.EMPTY_NODE?1:n instanceof t.__childrenNodeConstructor?-1:(q(n.isLeafNode(),"Unknown node type"),this.compareToLeafNode_(n))}compareToLeafNode_(n){let r=typeof n.value_,i=typeof this.value_,o=t.VALUE_TYPE_ORDER.indexOf(r),s=t.VALUE_TYPE_ORDER.indexOf(i);return q(o>=0,"Unknown leaf type: "+r),q(s>=0,"Unknown leaf type: "+i),o===s?i==="object"?0:this.value_<n.value_?-1:this.value_===n.value_?0:1:s-o}withIndex(){return this}isIndexed(){return!0}equals(n){if(n===this)return!0;if(n.isLeafNode()){let r=n;return this.value_===r.value_&&this.priorityNode_.equals(r.priorityNode_)}else return!1}}t.VALUE_TYPE_ORDER=["object","boolean","number","string"];return t})(),Bj,Gj;function Jre(t){Bj=t}function Zre(t){Gj=t}var fw=class extends Sd{compare(e,n){let r=e.node.getPriority(),i=n.node.getPriority(),o=r.compareTo(i);return o===0?al(e.name,n.name):o}isDefinedOn(e){return!e.getPriority().isEmpty()}indexedValueChanged(e,n){return!e.getPriority().equals(n.getPriority())}minPost(){return Oe.MIN}maxPost(){return new Oe(Zs,new Ad("[PRIORITY-POST]",Gj))}makePost(e,n){let r=Bj(e);return new Oe(n,new Ad("[PRIORITY-POST]",r))}toString(){return".priority"}},ft=new fw;var eie=Math.log(2),pw=class{constructor(e){let n=o=>parseInt(Math.log(o)/eie,10),r=o=>parseInt(Array(o+1).join("1"),2);this.count=n(e+1),this.current_=this.count-1;let i=r(this.count);this.bits_=e+1&i}nextBitIsOne(){let e=!(this.bits_&1<<this.current_);return this.current_--,e}},Sy=function(t,e,n,r){t.sort(e);let i=function(c,l){let d=l-c,h,f;if(d===0)return null;if(d===1)return h=t[c],f=n?n(h):h,new ui(f,h.node,ui.BLACK,null,null);{let g=parseInt(d/2,10)+c,E=i(c,g),I=i(g+1,l);return h=t[g],f=n?n(h):h,new ui(f,h.node,ui.BLACK,E,I)}},o=function(c){let l=null,d=null,h=t.length,f=function(E,I){let S=h-E,L=h;h-=E;let V=i(S+1,L),K=t[S],oe=n?n(K):K;g(new ui(oe,K.node,I,null,V))},g=function(E){l?(l.left=E,l=E):(d=E,l=E)};for(let E=0;E<c.count;++E){let I=c.nextBitIsOne(),S=Math.pow(2,c.count-(E+1));I?f(S,ui.BLACK):(f(S,ui.BLACK),f(S,ui.RED))}return d},s=new pw(t.length),a=o(s);return new Hr(r||e,a)};var KN,Td={},Cd=class t{static get Default(){return q(Td&&ft,"ChildrenNode.ts has not been loaded"),KN=KN||new t({".priority":Td},{".priority":ft}),KN}constructor(e,n){this.indexes_=e,this.indexSet_=n}get(e){let n=Fs(this.indexes_,e);if(!n)throw new Error("No index defined for "+e);return n instanceof Hr?n:null}hasIndex(e){return Vr(this.indexSet_,e.toString())}addIndex(e,n){q(e!==el,"KeyIndex always exists and isn't meant to be added to the IndexMap.");let r=[],i=!1,o=n.getIterator(Oe.Wrap),s=o.getNext();for(;s;)i=i||e.isDefinedOn(s.node),r.push(s),s=o.getNext();let a;i?a=Sy(r,e.getCompare()):a=Td;let c=e.toString(),l=Object.assign({},this.indexSet_);l[c]=e;let d=Object.assign({},this.indexes_);return d[c]=a,new t(d,l)}addToIndexes(e,n){let r=pp(this.indexes_,(i,o)=>{let s=Fs(this.indexSet_,o);if(q(s,"Missing index implementation for "+o),i===Td)if(s.isDefinedOn(e.node)){let a=[],c=n.getIterator(Oe.Wrap),l=c.getNext();for(;l;)l.name!==e.name&&a.push(l),l=c.getNext();return a.push(e),Sy(a,s.getCompare())}else return Td;else{let a=n.get(e.name),c=i;return a&&(c=c.remove(new Oe(e.name,a))),c.insert(e,e.node)}});return new t(r,this.indexSet_)}removeFromIndexes(e,n){let r=pp(this.indexes_,i=>{if(i===Td)return i;{let o=n.get(e.name);return o?i.remove(new Oe(e.name,o)):i}});return new t(r,this.indexSet_)}};var Fp,ve=(()=>{class t{static get EMPTY_NODE(){return Fp||(Fp=new t(new Hr(nb),null,Cd.Default))}constructor(n,r,i){this.children_=n,this.priorityNode_=r,this.indexMap_=i,this.lazyHash_=null,this.priorityNode_&&Vj(this.priorityNode_),this.children_.isEmpty()&&q(!this.priorityNode_||this.priorityNode_.isEmpty(),"An empty node cannot have a priority")}isLeafNode(){return!1}getPriority(){return this.priorityNode_||Fp}updatePriority(n){return this.children_.isEmpty()?this:new t(this.children_,n,this.indexMap_)}getImmediateChild(n){if(n===".priority")return this.getPriority();{let r=this.children_.get(n);return r===null?Fp:r}}getChild(n){let r=Ne(n);return r===null?this:this.getImmediateChild(r).getChild(at(n))}hasChild(n){return this.children_.get(n)!==null}updateImmediateChild(n,r){if(q(r,"We should always be passing snapshot nodes"),n===".priority")return this.updatePriority(r);{let i=new Oe(n,r),o,s;r.isEmpty()?(o=this.children_.remove(n),s=this.indexMap_.removeFromIndexes(i,this.children_)):(o=this.children_.insert(n,r),s=this.indexMap_.addToIndexes(i,this.children_));let a=o.isEmpty()?Fp:this.priorityNode_;return new t(o,a,s)}}updateChild(n,r){let i=Ne(n);if(i===null)return r;{q(Ne(n)!==".priority"||ea(n)===1,".priority must be the last token in a path");let o=this.getImmediateChild(i).updateChild(at(n),r);return this.updateImmediateChild(i,o)}}isEmpty(){return this.children_.isEmpty()}numChildren(){return this.children_.count()}val(n){if(this.isEmpty())return null;let r={},i=0,o=0,s=!0;if(this.forEachChild(ft,(a,c)=>{r[a]=c.val(n),i++,s&&t.INTEGER_REGEXP_.test(a)?o=Math.max(o,Number(a)):s=!1}),!n&&s&&o<2*i){let a=[];for(let c in r)a[c]=r[c];return a}else return n&&!this.getPriority().isEmpty()&&(r[".priority"]=this.getPriority().val()),r}hash(){if(this.lazyHash_===null){let n="";this.getPriority().isEmpty()||(n+="priority:"+Uj(this.getPriority().val())+":"),this.forEachChild(ft,(r,i)=>{let o=i.hash();o!==""&&(n+=":"+r+":"+o)}),this.lazyHash_=n===""?"":Ej(n)}return this.lazyHash_}getPredecessorChildName(n,r,i){let o=this.resolveIndex_(i);if(o){let s=o.getPredecessorKey(new Oe(n,r));return s?s.name:null}else return this.children_.getPredecessorKey(n)}getFirstChildName(n){let r=this.resolveIndex_(n);if(r){let i=r.minKey();return i&&i.name}else return this.children_.minKey()}getFirstChild(n){let r=this.getFirstChildName(n);return r?new Oe(r,this.children_.get(r)):null}getLastChildName(n){let r=this.resolveIndex_(n);if(r){let i=r.maxKey();return i&&i.name}else return this.children_.maxKey()}getLastChild(n){let r=this.getLastChildName(n);return r?new Oe(r,this.children_.get(r)):null}forEachChild(n,r){let i=this.resolveIndex_(n);return i?i.inorderTraversal(o=>r(o.name,o.node)):this.children_.inorderTraversal(r)}getIterator(n){return this.getIteratorFrom(n.minPost(),n)}getIteratorFrom(n,r){let i=this.resolveIndex_(r);if(i)return i.getIteratorFrom(n,o=>o);{let o=this.children_.getIteratorFrom(n.name,Oe.Wrap),s=o.peek();for(;s!=null&&r.compare(s,n)<0;)o.getNext(),s=o.peek();return o}}getReverseIterator(n){return this.getReverseIteratorFrom(n.maxPost(),n)}getReverseIteratorFrom(n,r){let i=this.resolveIndex_(r);if(i)return i.getReverseIteratorFrom(n,o=>o);{let o=this.children_.getReverseIteratorFrom(n.name,Oe.Wrap),s=o.peek();for(;s!=null&&r.compare(s,n)>0;)o.getNext(),s=o.peek();return o}}compareTo(n){return this.isEmpty()?n.isEmpty()?0:-1:n.isLeafNode()||n.isEmpty()?1:n===ig?-1:0}withIndex(n){if(n===el||this.indexMap_.hasIndex(n))return this;{let r=this.indexMap_.addIndex(n,this.children_);return new t(this.children_,this.priorityNode_,r)}}isIndexed(n){return n===el||this.indexMap_.hasIndex(n)}equals(n){if(n===this)return!0;if(n.isLeafNode())return!1;{let r=n;if(this.getPriority().equals(r.getPriority()))if(this.children_.count()===r.children_.count()){let i=this.getIterator(ft),o=r.getIterator(ft),s=i.getNext(),a=o.getNext();for(;s&&a;){if(s.name!==a.name||!s.node.equals(a.node))return!1;s=i.getNext(),a=o.getNext()}return s===null&&a===null}else return!1;else return!1}}resolveIndex_(n){return n===el?null:this.indexMap_.get(n.toString())}}return t.INTEGER_REGEXP_=/^(0|[1-9]\d*)$/,t})(),gw=class extends ve{constructor(){super(new Hr(nb),ve.EMPTY_NODE,Cd.Default)}compareTo(e){return e===this?0:1}equals(e){return e===this}getPriority(){return this}getImmediateChild(e){return ve.EMPTY_NODE}isEmpty(){return!1}},ig=new gw;Object.defineProperties(Oe,{MIN:{value:new Oe(tl,ve.EMPTY_NODE)},MAX:{value:new Oe(Zs,ig)}});vy.__EMPTY_NODE=ve.EMPTY_NODE;Ad.__childrenNodeConstructor=ve;Qre(ig);Zre(ig);var tie=!0;function At(t,e=null){if(t===null)return ve.EMPTY_NODE;if(typeof t=="object"&&".priority"in t&&(e=t[".priority"]),q(e===null||typeof e=="string"||typeof e=="number"||typeof e=="object"&&".sv"in e,"Invalid priority type found: "+typeof e),typeof t=="object"&&".value"in t&&t[".value"]!==null&&(t=t[".value"]),typeof t!="object"||".sv"in t){let n=t;return new Ad(n,At(e))}if(!(t instanceof Array)&&tie){let n=[],r=!1;if(dn(t,(s,a)=>{if(s.substring(0,1)!=="."){let c=At(a);c.isEmpty()||(r=r||!c.getPriority().isEmpty(),n.push(new Oe(s,c)))}}),n.length===0)return ve.EMPTY_NODE;let o=Sy(n,Xre,s=>s.name,nb);if(r){let s=Sy(n,ft.getCompare());return new ve(o,At(e),new Cd({".priority":s},{".priority":ft}))}else return new ve(o,At(e),Cd.Default)}else{let n=ve.EMPTY_NODE;return dn(t,(r,i)=>{if(Vr(t,r)&&r.substring(0,1)!=="."){let o=At(i);(o.isLeafNode()||!o.isEmpty())&&(n=n.updateImmediateChild(r,o))}}),n.updatePriority(At(e))}}Jre(At);var Wp=class extends Sd{constructor(e){super(),this.indexPath_=e,q(!we(e)&&Ne(e)!==".priority","Can't create PathIndex with empty path or .priority key")}extractChild(e){return e.getChild(this.indexPath_)}isDefinedOn(e){return!e.getChild(this.indexPath_).isEmpty()}compare(e,n){let r=this.extractChild(e.node),i=this.extractChild(n.node),o=r.compareTo(i);return o===0?al(e.name,n.name):o}makePost(e,n){let r=At(e),i=ve.EMPTY_NODE.updateChild(this.indexPath_,r);return new Oe(n,i)}maxPost(){let e=ve.EMPTY_NODE.updateChild(this.indexPath_,ig);return new Oe(Zs,e)}toString(){return $p(this.indexPath_,0).join("/")}};var mw=class extends Sd{compare(e,n){let r=e.node.compareTo(n.node);return r===0?al(e.name,n.name):r}isDefinedOn(e){return!0}indexedValueChanged(e,n){return!e.equals(n)}minPost(){return Oe.MIN}maxPost(){return Oe.MAX}makePost(e,n){let r=At(e);return new Oe(n,r)}toString(){return".value"}},jj=new mw;function Hj(t){return{type:"value",snapshotNode:t}}function Dd(t,e){return{type:"child_added",snapshotNode:e,childName:t}}function zp(t,e){return{type:"child_removed",snapshotNode:e,childName:t}}function qp(t,e,n){return{type:"child_changed",snapshotNode:e,childName:t,oldSnap:n}}function nie(t,e){return{type:"child_moved",snapshotNode:e,childName:t}}var Kp=class{constructor(e){this.index_=e}updateChild(e,n,r,i,o,s){q(e.isIndexed(this.index_),"A node must be indexed if only a child is updated");let a=e.getImmediateChild(n);return a.getChild(i).equals(r.getChild(i))&&a.isEmpty()===r.isEmpty()||(s!=null&&(r.isEmpty()?e.hasChild(n)?s.trackChildChange(zp(n,a)):q(e.isLeafNode(),"A child remove without an old child only makes sense on a leaf node"):a.isEmpty()?s.trackChildChange(Dd(n,r)):s.trackChildChange(qp(n,r,a))),e.isLeafNode()&&r.isEmpty())?e:e.updateImmediateChild(n,r).withIndex(this.index_)}updateFullNode(e,n,r){return r!=null&&(e.isLeafNode()||e.forEachChild(ft,(i,o)=>{n.hasChild(i)||r.trackChildChange(zp(i,o))}),n.isLeafNode()||n.forEachChild(ft,(i,o)=>{if(e.hasChild(i)){let s=e.getImmediateChild(i);s.equals(o)||r.trackChildChange(qp(i,o,s))}else r.trackChildChange(Dd(i,o))})),n.withIndex(this.index_)}updatePriority(e,n){return e.isEmpty()?ve.EMPTY_NODE:e.updatePriority(n)}filtersNodes(){return!1}getIndexedFilter(){return this}getIndex(){return this.index_}};var Ay=class t{constructor(e){this.indexedFilter_=new Kp(e.getIndex()),this.index_=e.getIndex(),this.startPost_=t.getStartPost_(e),this.endPost_=t.getEndPost_(e),this.startIsInclusive_=!e.startAfterSet_,this.endIsInclusive_=!e.endBeforeSet_}getStartPost(){return this.startPost_}getEndPost(){return this.endPost_}matches(e){let n=this.startIsInclusive_?this.index_.compare(this.getStartPost(),e)<=0:this.index_.compare(this.getStartPost(),e)<0,r=this.endIsInclusive_?this.index_.compare(e,this.getEndPost())<=0:this.index_.compare(e,this.getEndPost())<0;return n&&r}updateChild(e,n,r,i,o,s){return this.matches(new Oe(n,r))||(r=ve.EMPTY_NODE),this.indexedFilter_.updateChild(e,n,r,i,o,s)}updateFullNode(e,n,r){n.isLeafNode()&&(n=ve.EMPTY_NODE);let i=n.withIndex(this.index_);i=i.updatePriority(ve.EMPTY_NODE);let o=this;return n.forEachChild(ft,(s,a)=>{o.matches(new Oe(s,a))||(i=i.updateImmediateChild(s,ve.EMPTY_NODE))}),this.indexedFilter_.updateFullNode(e,i,r)}updatePriority(e,n){return e}filtersNodes(){return!0}getIndexedFilter(){return this.indexedFilter_}getIndex(){return this.index_}static getStartPost_(e){if(e.hasStart()){let n=e.getIndexStartName();return e.getIndex().makePost(e.getIndexStartValue(),n)}else return e.getIndex().minPost()}static getEndPost_(e){if(e.hasEnd()){let n=e.getIndexEndName();return e.getIndex().makePost(e.getIndexEndValue(),n)}else return e.getIndex().maxPost()}};var Ew=class{constructor(e){this.withinDirectionalStart=n=>this.reverse_?this.withinEndPost(n):this.withinStartPost(n),this.withinDirectionalEnd=n=>this.reverse_?this.withinStartPost(n):this.withinEndPost(n),this.withinStartPost=n=>{let r=this.index_.compare(this.rangedFilter_.getStartPost(),n);return this.startIsInclusive_?r<=0:r<0},this.withinEndPost=n=>{let r=this.index_.compare(n,this.rangedFilter_.getEndPost());return this.endIsInclusive_?r<=0:r<0},this.rangedFilter_=new Ay(e),this.index_=e.getIndex(),this.limit_=e.getLimit(),this.reverse_=!e.isViewFromLeft(),this.startIsInclusive_=!e.startAfterSet_,this.endIsInclusive_=!e.endBeforeSet_}updateChild(e,n,r,i,o,s){return this.rangedFilter_.matches(new Oe(n,r))||(r=ve.EMPTY_NODE),e.getImmediateChild(n).equals(r)?e:e.numChildren()<this.limit_?this.rangedFilter_.getIndexedFilter().updateChild(e,n,r,i,o,s):this.fullLimitUpdateChild_(e,n,r,o,s)}updateFullNode(e,n,r){let i;if(n.isLeafNode()||n.isEmpty())i=ve.EMPTY_NODE.withIndex(this.index_);else if(this.limit_*2<n.numChildren()&&n.isIndexed(this.index_)){i=ve.EMPTY_NODE.withIndex(this.index_);let o;this.reverse_?o=n.getReverseIteratorFrom(this.rangedFilter_.getEndPost(),this.index_):o=n.getIteratorFrom(this.rangedFilter_.getStartPost(),this.index_);let s=0;for(;o.hasNext()&&s<this.limit_;){let a=o.getNext();if(this.withinDirectionalStart(a))if(this.withinDirectionalEnd(a))i=i.updateImmediateChild(a.name,a.node),s++;else break;else continue}}else{i=n.withIndex(this.index_),i=i.updatePriority(ve.EMPTY_NODE);let o;this.reverse_?o=i.getReverseIterator(this.index_):o=i.getIterator(this.index_);let s=0;for(;o.hasNext();){let a=o.getNext();s<this.limit_&&this.withinDirectionalStart(a)&&this.withinDirectionalEnd(a)?s++:i=i.updateImmediateChild(a.name,ve.EMPTY_NODE)}}return this.rangedFilter_.getIndexedFilter().updateFullNode(e,i,r)}updatePriority(e,n){return e}filtersNodes(){return!0}getIndexedFilter(){return this.rangedFilter_.getIndexedFilter()}getIndex(){return this.index_}fullLimitUpdateChild_(e,n,r,i,o){let s;if(this.reverse_){let h=this.index_.getCompare();s=(f,g)=>h(g,f)}else s=this.index_.getCompare();let a=e;q(a.numChildren()===this.limit_,"");let c=new Oe(n,r),l=this.reverse_?a.getFirstChild(this.index_):a.getLastChild(this.index_),d=this.rangedFilter_.matches(c);if(a.hasChild(n)){let h=a.getImmediateChild(n),f=i.getChildAfterChild(this.index_,l,this.reverse_);for(;f!=null&&(f.name===n||a.hasChild(f.name));)f=i.getChildAfterChild(this.index_,f,this.reverse_);let g=f==null?1:s(f,c);if(d&&!r.isEmpty()&&g>=0)return o?.trackChildChange(qp(n,r,h)),a.updateImmediateChild(n,r);{o?.trackChildChange(zp(n,h));let I=a.updateImmediateChild(n,ve.EMPTY_NODE);return f!=null&&this.rangedFilter_.matches(f)?(o?.trackChildChange(Dd(f.name,f.node)),I.updateImmediateChild(f.name,f.node)):I}}else return r.isEmpty()?e:d&&s(l,c)>=0?(o!=null&&(o.trackChildChange(zp(l.name,l.node)),o.trackChildChange(Dd(n,r))),a.updateImmediateChild(n,r).updateImmediateChild(l.name,ve.EMPTY_NODE)):e}};var _w=class t{constructor(){this.limitSet_=!1,this.startSet_=!1,this.startNameSet_=!1,this.startAfterSet_=!1,this.endSet_=!1,this.endNameSet_=!1,this.endBeforeSet_=!1,this.limit_=0,this.viewFrom_="",this.indexStartValue_=null,this.indexStartName_="",this.indexEndValue_=null,this.indexEndName_="",this.index_=ft}hasStart(){return this.startSet_}isViewFromLeft(){return this.viewFrom_===""?this.startSet_:this.viewFrom_==="l"}getIndexStartValue(){return q(this.startSet_,"Only valid if start has been set"),this.indexStartValue_}getIndexStartName(){return q(this.startSet_,"Only valid if start has been set"),this.startNameSet_?this.indexStartName_:tl}hasEnd(){return this.endSet_}getIndexEndValue(){return q(this.endSet_,"Only valid if end has been set"),this.indexEndValue_}getIndexEndName(){return q(this.endSet_,"Only valid if end has been set"),this.endNameSet_?this.indexEndName_:Zs}hasLimit(){return this.limitSet_}hasAnchoredLimit(){return this.limitSet_&&this.viewFrom_!==""}getLimit(){return q(this.limitSet_,"Only valid if limit has been set"),this.limit_}getIndex(){return this.index_}loadsAllData(){return!(this.startSet_||this.endSet_||this.limitSet_)}isDefault(){return this.loadsAllData()&&this.index_===ft}copy(){let e=new t;return e.limitSet_=this.limitSet_,e.limit_=this.limit_,e.startSet_=this.startSet_,e.startAfterSet_=this.startAfterSet_,e.indexStartValue_=this.indexStartValue_,e.startNameSet_=this.startNameSet_,e.indexStartName_=this.indexStartName_,e.endSet_=this.endSet_,e.endBeforeSet_=this.endBeforeSet_,e.indexEndValue_=this.indexEndValue_,e.endNameSet_=this.endNameSet_,e.indexEndName_=this.indexEndName_,e.index_=this.index_,e.viewFrom_=this.viewFrom_,e}};function rie(t){return t.loadsAllData()?new Kp(t.getIndex()):t.hasLimit()?new Ew(t):new Ay(t)}function iie(t,e){let n=t.copy();return n.limitSet_=!0,n.limit_=e,n.viewFrom_="r",n}function oie(t,e,n){let r=t.copy();return r.startSet_=!0,e===void 0&&(e=null),r.indexStartValue_=e,n!=null?(r.startNameSet_=!0,r.indexStartName_=n):(r.startNameSet_=!1,r.indexStartName_=""),r}function sie(t,e,n){let r=t.copy();return r.endSet_=!0,e===void 0&&(e=null),r.indexEndValue_=e,n!==void 0?(r.endNameSet_=!0,r.indexEndName_=n):(r.endNameSet_=!1,r.indexEndName_=""),r}function aie(t,e){let n=t.copy();return n.index_=e,n}function J2(t){let e={};if(t.isDefault())return e;let n;if(t.index_===ft?n="$priority":t.index_===jj?n="$value":t.index_===el?n="$key":(q(t.index_ instanceof Wp,"Unrecognized index type!"),n=t.index_.toString()),e.orderBy=xt(n),t.startSet_){let r=t.startAfterSet_?"startAfter":"startAt";e[r]=xt(t.indexStartValue_),t.startNameSet_&&(e[r]+=","+xt(t.indexStartName_))}if(t.endSet_){let r=t.endBeforeSet_?"endBefore":"endAt";e[r]=xt(t.indexEndValue_),t.endNameSet_&&(e[r]+=","+xt(t.indexEndName_))}return t.limitSet_&&(t.isViewFromLeft()?e.limitToFirst=t.limit_:e.limitToLast=t.limit_),e}function Z2(t){let e={};if(t.startSet_&&(e.sp=t.indexStartValue_,t.startNameSet_&&(e.sn=t.indexStartName_),e.sin=!t.startAfterSet_),t.endSet_&&(e.ep=t.indexEndValue_,t.endNameSet_&&(e.en=t.indexEndName_),e.ein=!t.endBeforeSet_),t.limitSet_){e.l=t.limit_;let n=t.viewFrom_;n===""&&(t.isViewFromLeft()?n="l":n="r"),e.vf=n}return t.index_!==ft&&(e.i=t.index_.toString()),e}var Tw=class t extends Ty{reportStats(e){throw new Error("Method not implemented.")}static getListenId_(e,n){return n!==void 0?"tag$"+n:(q(e._queryParams.isDefault(),"should have a tag if it's not a default query."),e._path.toString())}constructor(e,n,r,i){super(),this.repoInfo_=e,this.onDataUpdate_=n,this.authTokenProvider_=r,this.appCheckTokenProvider_=i,this.log_=rg("p:rest:"),this.listens_={}}listen(e,n,r,i){let o=e._path.toString();this.log_("Listen called for "+o+" "+e._queryIdentifier);let s=t.getListenId_(e,r),a={};this.listens_[s]=a;let c=J2(e._queryParams);this.restRequest_(o+".json",c,(l,d)=>{let h=d;if(l===404&&(h=null,l=null),l===null&&this.onDataUpdate_(o,h,!1,r),Fs(this.listens_,s)===a){let f;l?l===401?f="permission_denied":f="rest_error:"+l:f="ok",i(f,null)}})}unlisten(e,n){let r=t.getListenId_(e,n);delete this.listens_[r]}get(e){let n=J2(e._queryParams),r=e._path.toString(),i=new cn;return this.restRequest_(r+".json",n,(o,s)=>{let a=s;o===404&&(a=null,o=null),o===null?(this.onDataUpdate_(r,a,!1,null),i.resolve(a)):i.reject(new Error(a))}),i.promise}refreshAuthToken(e){}restRequest_(e,n={},r){return n.format="export",Promise.all([this.authTokenProvider_.getToken(!1),this.appCheckTokenProvider_.getToken(!1)]).then(([i,o])=>{i&&i.accessToken&&(n.auth=i.accessToken),o&&o.token&&(n.ac=o.token);let s=(this.repoInfo_.secure?"https://":"http://")+this.repoInfo_.host+e+"?ns="+this.repoInfo_.namespace+gp(n);this.log_("Sending REST request for "+s);let a=new XMLHttpRequest;a.onreadystatechange=()=>{if(r&&a.readyState===4){this.log_("REST Response for "+s+" received. status:",a.status,"response:",a.responseText);let c=null;if(a.status>=200&&a.status<300){try{c=cd(a.responseText)}catch{xn("Failed to parse JSON response for "+s+": "+a.responseText)}r(null,c)}else a.status!==401&&a.status!==404&&xn("Got unsuccessful REST response for "+s+" Status: "+a.status),r(a.status);r=null}},a.open("GET",s,!0),a.send()})}};var yw=class{constructor(){this.rootNode_=ve.EMPTY_NODE}getNode(e){return this.rootNode_.getChild(e)}updateSnapshot(e,n){this.rootNode_=this.rootNode_.updateChild(e,n)}};function Cy(){return{value:null,children:new Map}}function Md(t,e,n){if(we(e))t.value=n,t.children.clear();else if(t.value!==null)t.value=t.value.updateChild(e,n);else{let r=Ne(e);t.children.has(r)||t.children.set(r,Cy());let i=t.children.get(r);e=at(e),Md(i,e,n)}}function Iw(t,e){if(we(e))return t.value=null,t.children.clear(),!0;if(t.value!==null){if(t.value.isLeafNode())return!1;{let n=t.value;return t.value=null,n.forEachChild(ft,(r,i)=>{Md(t,new Be(r),i)}),Iw(t,e)}}else if(t.children.size>0){let n=Ne(e);return e=at(e),t.children.has(n)&&Iw(t.children.get(n),e)&&t.children.delete(n),t.children.size===0}else return!0}function vw(t,e,n){t.value!==null?n(e,t.value):cie(t,(r,i)=>{let o=new Be(e.toString()+"/"+r);vw(i,o,n)})}function cie(t,e){t.children.forEach((n,r)=>{e(r,n)})}var Sw=class{constructor(e){this.collection_=e,this.last_=null}get(){let e=this.collection_.get(),n=Object.assign({},e);return this.last_&&dn(this.last_,(r,i)=>{n[r]=n[r]-i}),this.last_=e,n}};var ej=10*1e3,lie=30*1e3,uie=300*1e3,Aw=class{constructor(e,n){this.server_=n,this.statsToReport_={},this.statsListener_=new Sw(e);let r=ej+(lie-ej)*Math.random();Vp(this.reportStats_.bind(this),Math.floor(r))}reportStats_(){let e=this.statsListener_.get(),n={},r=!1;dn(e,(i,o)=>{o>0&&Vr(this.statsToReport_,i)&&(n[i]=o,r=!0)}),r&&this.server_.reportStats(n),Vp(this.reportStats_.bind(this),Math.floor(Math.random()*2*uie))}};var Zi=(function(t){return t[t.OVERWRITE=0]="OVERWRITE",t[t.MERGE=1]="MERGE",t[t.ACK_USER_WRITE=2]="ACK_USER_WRITE",t[t.LISTEN_COMPLETE=3]="LISTEN_COMPLETE",t})(Zi||{});function rb(){return{fromUser:!0,fromServer:!1,queryId:null,tagged:!1}}function ib(){return{fromUser:!1,fromServer:!0,queryId:null,tagged:!1}}function ob(t){return{fromUser:!1,fromServer:!0,queryId:t,tagged:!0}}var Cw=class t{constructor(e,n,r){this.path=e,this.affectedTree=n,this.revert=r,this.type=Zi.ACK_USER_WRITE,this.source=rb()}operationForChild(e){if(we(this.path)){if(this.affectedTree.value!=null)return q(this.affectedTree.children.isEmpty(),"affectedTree should not have overlapping affected paths."),this;{let n=this.affectedTree.subtree(new Be(e));return new t(Ve(),n,this.revert)}}else return q(Ne(this.path)===e,"operationForChild called for unrelated child."),new t(at(this.path),this.affectedTree,this.revert)}};var Dy=class t{constructor(e,n){this.source=e,this.path=n,this.type=Zi.LISTEN_COMPLETE}operationForChild(e){return we(this.path)?new t(this.source,Ve()):new t(this.source,at(this.path))}};var Rd=class t{constructor(e,n,r){this.source=e,this.path=n,this.snap=r,this.type=Zi.OVERWRITE}operationForChild(e){return we(this.path)?new t(this.source,Ve(),this.snap.getImmediateChild(e)):new t(this.source,at(this.path),this.snap)}};var Yp=class t{constructor(e,n,r){this.source=e,this.path=n,this.children=r,this.type=Zi.MERGE}operationForChild(e){if(we(this.path)){let n=this.children.subtree(new Be(e));return n.isEmpty()?null:n.value?new Rd(this.source,Ve(),n.value):new t(this.source,Ve(),n)}else return q(Ne(this.path)===e,"Can't get a merge for a child not on the path of the operation"),new t(this.source,at(this.path),this.children)}toString(){return"Operation("+this.path+": "+this.source.toString()+" merge: "+this.children.toString()+")"}};var eo=class{constructor(e,n,r){this.node_=e,this.fullyInitialized_=n,this.filtered_=r}isFullyInitialized(){return this.fullyInitialized_}isFiltered(){return this.filtered_}isCompleteForPath(e){if(we(e))return this.isFullyInitialized()&&!this.filtered_;let n=Ne(e);return this.isCompleteForChild(n)}isCompleteForChild(e){return this.isFullyInitialized()&&!this.filtered_||this.node_.hasChild(e)}getNode(){return this.node_}};var Dw=class{constructor(e){this.query_=e,this.index_=this.query_._queryParams.getIndex()}};function die(t,e,n,r){let i=[],o=[];return e.forEach(s=>{s.type==="child_changed"&&t.index_.indexedValueChanged(s.oldSnap,s.snapshotNode)&&o.push(nie(s.childName,s.snapshotNode))}),Up(t,i,"child_removed",e,r,n),Up(t,i,"child_added",e,r,n),Up(t,i,"child_moved",o,r,n),Up(t,i,"child_changed",e,r,n),Up(t,i,"value",e,r,n),i}function Up(t,e,n,r,i,o){let s=r.filter(a=>a.type===n);s.sort((a,c)=>fie(t,a,c)),s.forEach(a=>{let c=hie(t,a,o);i.forEach(l=>{l.respondsTo(a.type)&&e.push(l.createEvent(c,t.query_))})})}function hie(t,e,n){return e.type==="value"||e.type==="child_removed"||(e.prevName=n.getPredecessorChildName(e.childName,e.snapshotNode,t.index_)),e}function fie(t,e,n){if(e.childName==null||n.childName==null)throw kc("Should only compare child_ events.");let r=new Oe(e.childName,e.snapshotNode),i=new Oe(n.childName,n.snapshotNode);return t.index_.compare(r,i)}function Gy(t,e){return{eventCache:t,serverCache:e}}function Gp(t,e,n,r){return Gy(new eo(e,n,r),t.serverCache)}function $j(t,e,n,r){return Gy(t.eventCache,new eo(e,n,r))}function Ry(t){return t.eventCache.isFullyInitialized()?t.eventCache.getNode():null}function nl(t){return t.serverCache.isFullyInitialized()?t.serverCache.getNode():null}var YN,pie=()=>(YN||(YN=new Hr(hre)),YN),qn=class t{static fromObject(e){let n=new t(null);return dn(e,(r,i)=>{n=n.set(new Be(r),i)}),n}constructor(e,n=pie()){this.value=e,this.children=n}isEmpty(){return this.value===null&&this.children.isEmpty()}findRootMostMatchingPathAndValue(e,n){if(this.value!=null&&n(this.value))return{path:Ve(),value:this.value};if(we(e))return null;{let r=Ne(e),i=this.children.get(r);if(i!==null){let o=i.findRootMostMatchingPathAndValue(at(e),n);return o!=null?{path:Ct(new Be(r),o.path),value:o.value}:null}else return null}}findRootMostValueAndPath(e){return this.findRootMostMatchingPathAndValue(e,()=>!0)}subtree(e){if(we(e))return this;{let n=Ne(e),r=this.children.get(n);return r!==null?r.subtree(at(e)):new t(null)}}set(e,n){if(we(e))return new t(n,this.children);{let r=Ne(e),o=(this.children.get(r)||new t(null)).set(at(e),n),s=this.children.insert(r,o);return new t(this.value,s)}}remove(e){if(we(e))return this.children.isEmpty()?new t(null):new t(null,this.children);{let n=Ne(e),r=this.children.get(n);if(r){let i=r.remove(at(e)),o;return i.isEmpty()?o=this.children.remove(n):o=this.children.insert(n,i),this.value===null&&o.isEmpty()?new t(null):new t(this.value,o)}else return this}}get(e){if(we(e))return this.value;{let n=Ne(e),r=this.children.get(n);return r?r.get(at(e)):null}}setTree(e,n){if(we(e))return n;{let r=Ne(e),o=(this.children.get(r)||new t(null)).setTree(at(e),n),s;return o.isEmpty()?s=this.children.remove(r):s=this.children.insert(r,o),new t(this.value,s)}}fold(e){return this.fold_(Ve(),e)}fold_(e,n){let r={};return this.children.inorderTraversal((i,o)=>{r[i]=o.fold_(Ct(e,i),n)}),n(e,this.value,r)}findOnPath(e,n){return this.findOnPath_(e,Ve(),n)}findOnPath_(e,n,r){let i=this.value?r(n,this.value):!1;if(i)return i;if(we(e))return null;{let o=Ne(e),s=this.children.get(o);return s?s.findOnPath_(at(e),Ct(n,o),r):null}}foreachOnPath(e,n){return this.foreachOnPath_(e,Ve(),n)}foreachOnPath_(e,n,r){if(we(e))return this;{this.value&&r(n,this.value);let i=Ne(e),o=this.children.get(i);return o?o.foreachOnPath_(at(e),Ct(n,i),r):new t(null)}}foreach(e){this.foreach_(Ve(),e)}foreach_(e,n){this.children.inorderTraversal((r,i)=>{i.foreach_(Ct(e,r),n)}),this.value&&n(e,this.value)}foreachChild(e){this.children.inorderTraversal((n,r)=>{r.value&&e(n,r.value)})}};var di=class t{constructor(e){this.writeTree_=e}static empty(){return new t(new qn(null))}};function jp(t,e,n){if(we(e))return new di(new qn(n));{let r=t.writeTree_.findRootMostValueAndPath(e);if(r!=null){let i=r.path,o=r.value,s=zn(i,e);return o=o.updateChild(s,n),new di(t.writeTree_.set(i,o))}else{let i=new qn(n),o=t.writeTree_.setTree(e,i);return new di(o)}}}function Rw(t,e,n){let r=t;return dn(n,(i,o)=>{r=jp(r,Ct(e,i),o)}),r}function tj(t,e){if(we(e))return di.empty();{let n=t.writeTree_.setTree(e,new qn(null));return new di(n)}}function Nw(t,e){return cl(t,e)!=null}function cl(t,e){let n=t.writeTree_.findRootMostValueAndPath(e);return n!=null?t.writeTree_.get(n.path).getChild(zn(n.path,e)):null}function nj(t){let e=[],n=t.writeTree_.value;return n!=null?n.isLeafNode()||n.forEachChild(ft,(r,i)=>{e.push(new Oe(r,i))}):t.writeTree_.children.inorderTraversal((r,i)=>{i.value!=null&&e.push(new Oe(r,i.value))}),e}function Qs(t,e){if(we(e))return t;{let n=cl(t,e);return n!=null?new di(new qn(n)):new di(t.writeTree_.subtree(e))}}function ww(t){return t.writeTree_.isEmpty()}function Nd(t,e){return Wj(Ve(),t.writeTree_,e)}function Wj(t,e,n){if(e.value!=null)return n.updateChild(t,e.value);{let r=null;return e.children.inorderTraversal((i,o)=>{i===".priority"?(q(o.value!==null,"Priority writes must always be leaf nodes"),r=o.value):n=Wj(Ct(t,i),o,n)}),!n.getChild(t).isEmpty()&&r!==null&&(n=n.updateChild(Ct(t,".priority"),r)),n}}function jy(t,e){return Yj(e,t)}function gie(t,e,n,r,i){q(r>t.lastWriteId,"Stacking an older write on top of newer ones"),i===void 0&&(i=!0),t.allWrites.push({path:e,snap:n,writeId:r,visible:i}),i&&(t.visibleWrites=jp(t.visibleWrites,e,n)),t.lastWriteId=r}function mie(t,e,n,r){q(r>t.lastWriteId,"Stacking an older merge on top of newer ones"),t.allWrites.push({path:e,children:n,writeId:r,visible:!0}),t.visibleWrites=Rw(t.visibleWrites,e,n),t.lastWriteId=r}function Eie(t,e){for(let n=0;n<t.allWrites.length;n++){let r=t.allWrites[n];if(r.writeId===e)return r}return null}function _ie(t,e){let n=t.allWrites.findIndex(a=>a.writeId===e);q(n>=0,"removeWrite called with nonexistent writeId.");let r=t.allWrites[n];t.allWrites.splice(n,1);let i=r.visible,o=!1,s=t.allWrites.length-1;for(;i&&s>=0;){let a=t.allWrites[s];a.visible&&(s>=n&&Tie(a,r.path)?i=!1:jr(r.path,a.path)&&(o=!0)),s--}if(i){if(o)return yie(t),!0;if(r.snap)t.visibleWrites=tj(t.visibleWrites,r.path);else{let a=r.children;dn(a,c=>{t.visibleWrites=tj(t.visibleWrites,Ct(r.path,c))})}return!0}else return!1}function Tie(t,e){if(t.snap)return jr(t.path,e);for(let n in t.children)if(t.children.hasOwnProperty(n)&&jr(Ct(t.path,n),e))return!0;return!1}function yie(t){t.visibleWrites=zj(t.allWrites,Iie,Ve()),t.allWrites.length>0?t.lastWriteId=t.allWrites[t.allWrites.length-1].writeId:t.lastWriteId=-1}function Iie(t){return t.visible}function zj(t,e,n){let r=di.empty();for(let i=0;i<t.length;++i){let o=t[i];if(e(o)){let s=o.path,a;if(o.snap)jr(n,s)?(a=zn(n,s),r=jp(r,a,o.snap)):jr(s,n)&&(a=zn(s,n),r=jp(r,Ve(),o.snap.getChild(a)));else if(o.children){if(jr(n,s))a=zn(n,s),r=Rw(r,a,o.children);else if(jr(s,n))if(a=zn(s,n),we(a))r=Rw(r,Ve(),o.children);else{let c=Fs(o.children,Ne(a));if(c){let l=c.getChild(at(a));r=jp(r,Ve(),l)}}}else throw kc("WriteRecord should have .snap or .children")}}return r}function qj(t,e,n,r,i){if(!r&&!i){let o=cl(t.visibleWrites,e);if(o!=null)return o;{let s=Qs(t.visibleWrites,e);if(ww(s))return n;if(n==null&&!Nw(s,Ve()))return null;{let a=n||ve.EMPTY_NODE;return Nd(s,a)}}}else{let o=Qs(t.visibleWrites,e);if(!i&&ww(o))return n;if(!i&&n==null&&!Nw(o,Ve()))return null;{let s=function(l){return(l.visible||i)&&(!r||!~r.indexOf(l.writeId))&&(jr(l.path,e)||jr(e,l.path))},a=zj(t.allWrites,s,e),c=n||ve.EMPTY_NODE;return Nd(a,c)}}}function vie(t,e,n){let r=ve.EMPTY_NODE,i=cl(t.visibleWrites,e);if(i)return i.isLeafNode()||i.forEachChild(ft,(o,s)=>{r=r.updateImmediateChild(o,s)}),r;if(n){let o=Qs(t.visibleWrites,e);return n.forEachChild(ft,(s,a)=>{let c=Nd(Qs(o,new Be(s)),a);r=r.updateImmediateChild(s,c)}),nj(o).forEach(s=>{r=r.updateImmediateChild(s.name,s.node)}),r}else{let o=Qs(t.visibleWrites,e);return nj(o).forEach(s=>{r=r.updateImmediateChild(s.name,s.node)}),r}}function Sie(t,e,n,r,i){q(r||i,"Either existingEventSnap or existingServerSnap must exist");let o=Ct(e,n);if(Nw(t.visibleWrites,o))return null;{let s=Qs(t.visibleWrites,o);return ww(s)?i.getChild(n):Nd(s,i.getChild(n))}}function Aie(t,e,n,r){let i=Ct(e,n),o=cl(t.visibleWrites,i);if(o!=null)return o;if(r.isCompleteForChild(n)){let s=Qs(t.visibleWrites,i);return Nd(s,r.getNode().getImmediateChild(n))}else return null}function Cie(t,e){return cl(t.visibleWrites,e)}function Die(t,e,n,r,i,o,s){let a,c=Qs(t.visibleWrites,e),l=cl(c,Ve());if(l!=null)a=l;else if(n!=null)a=Nd(c,n);else return[];if(a=a.withIndex(s),!a.isEmpty()&&!a.isLeafNode()){let d=[],h=s.getCompare(),f=o?a.getReverseIteratorFrom(r,s):a.getIteratorFrom(r,s),g=f.getNext();for(;g&&d.length<i;)h(g,r)!==0&&d.push(g),g=f.getNext();return d}else return[]}function Rie(){return{visibleWrites:di.empty(),allWrites:[],lastWriteId:-1}}function Ny(t,e,n,r){return qj(t.writeTree,t.treePath,e,n,r)}function sb(t,e){return vie(t.writeTree,t.treePath,e)}function rj(t,e,n,r){return Sie(t.writeTree,t.treePath,e,n,r)}function wy(t,e){return Cie(t.writeTree,Ct(t.treePath,e))}function Nie(t,e,n,r,i,o){return Die(t.writeTree,t.treePath,e,n,r,i,o)}function ab(t,e,n){return Aie(t.writeTree,t.treePath,e,n)}function Kj(t,e){return Yj(Ct(t.treePath,e),t.writeTree)}function Yj(t,e){return{treePath:t,writeTree:e}}var bw=class{constructor(){this.changeMap=new Map}trackChildChange(e){let n=e.type,r=e.childName;q(n==="child_added"||n==="child_changed"||n==="child_removed","Only child changes supported for tracking"),q(r!==".priority","Only non-priority child changes can be tracked.");let i=this.changeMap.get(r);if(i){let o=i.type;if(n==="child_added"&&o==="child_removed")this.changeMap.set(r,qp(r,e.snapshotNode,i.snapshotNode));else if(n==="child_removed"&&o==="child_added")this.changeMap.delete(r);else if(n==="child_removed"&&o==="child_changed")this.changeMap.set(r,zp(r,i.oldSnap));else if(n==="child_changed"&&o==="child_added")this.changeMap.set(r,Dd(r,e.snapshotNode));else if(n==="child_changed"&&o==="child_changed")this.changeMap.set(r,qp(r,e.snapshotNode,i.oldSnap));else throw kc("Illegal combination of changes: "+e+" occurred after "+i)}else this.changeMap.set(r,e)}getChanges(){return Array.from(this.changeMap.values())}};var Ow=class{getCompleteChild(e){return null}getChildAfterChild(e,n,r){return null}},Xj=new Ow,Xp=class{constructor(e,n,r=null){this.writes_=e,this.viewCache_=n,this.optCompleteServerCache_=r}getCompleteChild(e){let n=this.viewCache_.eventCache;if(n.isCompleteForChild(e))return n.getNode().getImmediateChild(e);{let r=this.optCompleteServerCache_!=null?new eo(this.optCompleteServerCache_,!0,!1):this.viewCache_.serverCache;return ab(this.writes_,e,r)}}getChildAfterChild(e,n,r){let i=this.optCompleteServerCache_!=null?this.optCompleteServerCache_:nl(this.viewCache_),o=Nie(this.writes_,i,n,1,r,e);return o.length===0?null:o[0]}};function wie(t){return{filter:t}}function bie(t,e){q(e.eventCache.getNode().isIndexed(t.filter.getIndex()),"Event snap not indexed"),q(e.serverCache.getNode().isIndexed(t.filter.getIndex()),"Server snap not indexed")}function Oie(t,e,n,r,i){let o=new bw,s,a;if(n.type===Zi.OVERWRITE){let l=n;l.source.fromUser?s=Mw(t,e,l.path,l.snap,r,i,o):(q(l.source.fromServer,"Unknown source."),a=l.source.tagged||e.serverCache.isFiltered()&&!we(l.path),s=by(t,e,l.path,l.snap,r,i,a,o))}else if(n.type===Zi.MERGE){let l=n;l.source.fromUser?s=Lie(t,e,l.path,l.children,r,i,o):(q(l.source.fromServer,"Unknown source."),a=l.source.tagged||e.serverCache.isFiltered(),s=Lw(t,e,l.path,l.children,r,i,a,o))}else if(n.type===Zi.ACK_USER_WRITE){let l=n;l.revert?s=kie(t,e,l.path,r,i,o):s=Pie(t,e,l.path,l.affectedTree,r,i,o)}else if(n.type===Zi.LISTEN_COMPLETE)s=xie(t,e,n.path,r,o);else throw kc("Unknown operation type: "+n.type);let c=o.getChanges();return Mie(e,s,c),{viewCache:s,changes:c}}function Mie(t,e,n){let r=e.eventCache;if(r.isFullyInitialized()){let i=r.getNode().isLeafNode()||r.getNode().isEmpty(),o=Ry(t);(n.length>0||!t.eventCache.isFullyInitialized()||i&&!r.getNode().equals(o)||!r.getNode().getPriority().equals(o.getPriority()))&&n.push(Hj(Ry(e)))}}function Qj(t,e,n,r,i,o){let s=e.eventCache;if(wy(r,n)!=null)return e;{let a,c;if(we(n))if(q(e.serverCache.isFullyInitialized(),"If change path is empty, we must have complete server data"),e.serverCache.isFiltered()){let l=nl(e),d=l instanceof ve?l:ve.EMPTY_NODE,h=sb(r,d);a=t.filter.updateFullNode(e.eventCache.getNode(),h,o)}else{let l=Ny(r,nl(e));a=t.filter.updateFullNode(e.eventCache.getNode(),l,o)}else{let l=Ne(n);if(l===".priority"){q(ea(n)===1,"Can't have a priority with additional path components");let d=s.getNode();c=e.serverCache.getNode();let h=rj(r,n,d,c);h!=null?a=t.filter.updatePriority(d,h):a=s.getNode()}else{let d=at(n),h;if(s.isCompleteForChild(l)){c=e.serverCache.getNode();let f=rj(r,n,s.getNode(),c);f!=null?h=s.getNode().getImmediateChild(l).updateChild(d,f):h=s.getNode().getImmediateChild(l)}else h=ab(r,l,e.serverCache);h!=null?a=t.filter.updateChild(s.getNode(),l,h,d,i,o):a=s.getNode()}}return Gp(e,a,s.isFullyInitialized()||we(n),t.filter.filtersNodes())}}function by(t,e,n,r,i,o,s,a){let c=e.serverCache,l,d=s?t.filter:t.filter.getIndexedFilter();if(we(n))l=d.updateFullNode(c.getNode(),r,null);else if(d.filtersNodes()&&!c.isFiltered()){let g=c.getNode().updateChild(n,r);l=d.updateFullNode(c.getNode(),g,null)}else{let g=Ne(n);if(!c.isCompleteForPath(n)&&ea(n)>1)return e;let E=at(n),S=c.getNode().getImmediateChild(g).updateChild(E,r);g===".priority"?l=d.updatePriority(c.getNode(),S):l=d.updateChild(c.getNode(),g,S,E,Xj,null)}let h=$j(e,l,c.isFullyInitialized()||we(n),d.filtersNodes()),f=new Xp(i,h,o);return Qj(t,h,n,i,f,a)}function Mw(t,e,n,r,i,o,s){let a=e.eventCache,c,l,d=new Xp(i,e,o);if(we(n))l=t.filter.updateFullNode(e.eventCache.getNode(),r,s),c=Gp(e,l,!0,t.filter.filtersNodes());else{let h=Ne(n);if(h===".priority")l=t.filter.updatePriority(e.eventCache.getNode(),r),c=Gp(e,l,a.isFullyInitialized(),a.isFiltered());else{let f=at(n),g=a.getNode().getImmediateChild(h),E;if(we(f))E=r;else{let I=d.getCompleteChild(h);I!=null?Zw(f)===".priority"&&I.getChild(kj(f)).isEmpty()?E=I:E=I.updateChild(f,r):E=ve.EMPTY_NODE}if(g.equals(E))c=e;else{let I=t.filter.updateChild(a.getNode(),h,E,f,d,s);c=Gp(e,I,a.isFullyInitialized(),t.filter.filtersNodes())}}}return c}function ij(t,e){return t.eventCache.isCompleteForChild(e)}function Lie(t,e,n,r,i,o,s){let a=e;return r.foreach((c,l)=>{let d=Ct(n,c);ij(e,Ne(d))&&(a=Mw(t,a,d,l,i,o,s))}),r.foreach((c,l)=>{let d=Ct(n,c);ij(e,Ne(d))||(a=Mw(t,a,d,l,i,o,s))}),a}function oj(t,e,n){return n.foreach((r,i)=>{e=e.updateChild(r,i)}),e}function Lw(t,e,n,r,i,o,s,a){if(e.serverCache.getNode().isEmpty()&&!e.serverCache.isFullyInitialized())return e;let c=e,l;we(n)?l=r:l=new qn(null).setTree(n,r);let d=e.serverCache.getNode();return l.children.inorderTraversal((h,f)=>{if(d.hasChild(h)){let g=e.serverCache.getNode().getImmediateChild(h),E=oj(t,g,f);c=by(t,c,new Be(h),E,i,o,s,a)}}),l.children.inorderTraversal((h,f)=>{let g=!e.serverCache.isCompleteForChild(h)&&f.value===null;if(!d.hasChild(h)&&!g){let E=e.serverCache.getNode().getImmediateChild(h),I=oj(t,E,f);c=by(t,c,new Be(h),I,i,o,s,a)}}),c}function Pie(t,e,n,r,i,o,s){if(wy(i,n)!=null)return e;let a=e.serverCache.isFiltered(),c=e.serverCache;if(r.value!=null){if(we(n)&&c.isFullyInitialized()||c.isCompleteForPath(n))return by(t,e,n,c.getNode().getChild(n),i,o,a,s);if(we(n)){let l=new qn(null);return c.getNode().forEachChild(el,(d,h)=>{l=l.set(new Be(d),h)}),Lw(t,e,n,l,i,o,a,s)}else return e}else{let l=new qn(null);return r.foreach((d,h)=>{let f=Ct(n,d);c.isCompleteForPath(f)&&(l=l.set(d,c.getNode().getChild(f)))}),Lw(t,e,n,l,i,o,a,s)}}function xie(t,e,n,r,i){let o=e.serverCache,s=$j(e,o.getNode(),o.isFullyInitialized()||we(n),o.isFiltered());return Qj(t,s,n,r,Xj,i)}function kie(t,e,n,r,i,o){let s;if(wy(r,n)!=null)return e;{let a=new Xp(r,e,i),c=e.eventCache.getNode(),l;if(we(n)||Ne(n)===".priority"){let d;if(e.serverCache.isFullyInitialized())d=Ny(r,nl(e));else{let h=e.serverCache.getNode();q(h instanceof ve,"serverChildren would be complete if leaf node"),d=sb(r,h)}d=d,l=t.filter.updateFullNode(c,d,o)}else{let d=Ne(n),h=ab(r,d,e.serverCache);h==null&&e.serverCache.isCompleteForChild(d)&&(h=c.getImmediateChild(d)),h!=null?l=t.filter.updateChild(c,d,h,at(n),a,o):e.eventCache.getNode().hasChild(d)?l=t.filter.updateChild(c,d,ve.EMPTY_NODE,at(n),a,o):l=c,l.isEmpty()&&e.serverCache.isFullyInitialized()&&(s=Ny(r,nl(e)),s.isLeafNode()&&(l=t.filter.updateFullNode(l,s,o)))}return s=e.serverCache.isFullyInitialized()||wy(r,Ve())!=null,Gp(e,l,s,t.filter.filtersNodes())}}var Pw=class{constructor(e,n){this.query_=e,this.eventRegistrations_=[];let r=this.query_._queryParams,i=new Kp(r.getIndex()),o=rie(r);this.processor_=wie(o);let s=n.serverCache,a=n.eventCache,c=i.updateFullNode(ve.EMPTY_NODE,s.getNode(),null),l=o.updateFullNode(ve.EMPTY_NODE,a.getNode(),null),d=new eo(c,s.isFullyInitialized(),i.filtersNodes()),h=new eo(l,a.isFullyInitialized(),o.filtersNodes());this.viewCache_=Gy(h,d),this.eventGenerator_=new Dw(this.query_)}get query(){return this.query_}};function Fie(t){return t.viewCache_.serverCache.getNode()}function Uie(t){return Ry(t.viewCache_)}function Vie(t,e){let n=nl(t.viewCache_);return n&&(t.query._queryParams.loadsAllData()||!we(e)&&!n.getImmediateChild(Ne(e)).isEmpty())?n.getChild(e):null}function sj(t){return t.eventRegistrations_.length===0}function Bie(t,e){t.eventRegistrations_.push(e)}function aj(t,e,n){let r=[];if(n){q(e==null,"A cancel should cancel all event registrations.");let i=t.query._path;t.eventRegistrations_.forEach(o=>{let s=o.createCancelEvent(n,i);s&&r.push(s)})}if(e){let i=[];for(let o=0;o<t.eventRegistrations_.length;++o){let s=t.eventRegistrations_[o];if(!s.matches(e))i.push(s);else if(e.hasAnyCallback()){i=i.concat(t.eventRegistrations_.slice(o+1));break}}t.eventRegistrations_=i}else t.eventRegistrations_=[];return r}function cj(t,e,n,r){e.type===Zi.MERGE&&e.source.queryId!==null&&(q(nl(t.viewCache_),"We should always have a full cache before handling merges"),q(Ry(t.viewCache_),"Missing event cache, even though we have a server cache"));let i=t.viewCache_,o=Oie(t.processor_,i,e,n,r);return bie(t.processor_,o.viewCache),q(o.viewCache.serverCache.isFullyInitialized()||!i.serverCache.isFullyInitialized(),"Once a server snap is complete, it should never go back"),t.viewCache_=o.viewCache,Jj(t,o.changes,o.viewCache.eventCache.getNode(),null)}function Gie(t,e){let n=t.viewCache_.eventCache,r=[];return n.getNode().isLeafNode()||n.getNode().forEachChild(ft,(o,s)=>{r.push(Dd(o,s))}),n.isFullyInitialized()&&r.push(Hj(n.getNode())),Jj(t,r,n.getNode(),e)}function Jj(t,e,n,r){let i=r?[r]:t.eventRegistrations_;return die(t.eventGenerator_,e,n,i)}var Oy,My=class{constructor(){this.views=new Map}};function jie(t){q(!Oy,"__referenceConstructor has already been defined"),Oy=t}function Hie(){return q(Oy,"Reference.ts has not been loaded"),Oy}function $ie(t){return t.views.size===0}function cb(t,e,n,r){let i=e.source.queryId;if(i!==null){let o=t.views.get(i);return q(o!=null,"SyncTree gave us an op for an invalid query."),cj(o,e,n,r)}else{let o=[];for(let s of t.views.values())o=o.concat(cj(s,e,n,r));return o}}function Zj(t,e,n,r,i){let o=e._queryIdentifier,s=t.views.get(o);if(!s){let a=Ny(n,i?r:null),c=!1;a?c=!0:r instanceof ve?(a=sb(n,r),c=!1):(a=ve.EMPTY_NODE,c=!1);let l=Gy(new eo(a,c,!1),new eo(r,i,!1));return new Pw(e,l)}return s}function Wie(t,e,n,r,i,o){let s=Zj(t,e,r,i,o);return t.views.has(e._queryIdentifier)||t.views.set(e._queryIdentifier,s),Bie(s,n),Gie(s,n)}function zie(t,e,n,r){let i=e._queryIdentifier,o=[],s=[],a=ta(t);if(i==="default")for(let[c,l]of t.views.entries())s=s.concat(aj(l,n,r)),sj(l)&&(t.views.delete(c),l.query._queryParams.loadsAllData()||o.push(l.query));else{let c=t.views.get(i);c&&(s=s.concat(aj(c,n,r)),sj(c)&&(t.views.delete(i),c.query._queryParams.loadsAllData()||o.push(c.query)))}return a&&!ta(t)&&o.push(new(Hie())(e._repo,e._path)),{removed:o,events:s}}function eH(t){let e=[];for(let n of t.views.values())n.query._queryParams.loadsAllData()||e.push(n);return e}function Js(t,e){let n=null;for(let r of t.views.values())n=n||Vie(r,e);return n}function tH(t,e){if(e._queryParams.loadsAllData())return Hy(t);{let r=e._queryIdentifier;return t.views.get(r)}}function nH(t,e){return tH(t,e)!=null}function ta(t){return Hy(t)!=null}function Hy(t){for(let e of t.views.values())if(e.query._queryParams.loadsAllData())return e;return null}var Ly;function qie(t){q(!Ly,"__referenceConstructor has already been defined"),Ly=t}function Kie(){return q(Ly,"Reference.ts has not been loaded"),Ly}var Yie=1,Py=class{constructor(e){this.listenProvider_=e,this.syncPointTree_=new qn(null),this.pendingWriteTree_=Rie(),this.tagToQueryMap=new Map,this.queryToTagMap=new Map}};function lb(t,e,n,r,i){return gie(t.pendingWriteTree_,e,n,r,i),i?Ld(t,new Rd(rb(),e,n)):[]}function Xie(t,e,n,r){mie(t.pendingWriteTree_,e,n,r);let i=qn.fromObject(n);return Ld(t,new Yp(rb(),e,i))}function Ys(t,e,n=!1){let r=Eie(t.pendingWriteTree_,e);if(_ie(t.pendingWriteTree_,e)){let o=new qn(null);return r.snap!=null?o=o.set(Ve(),!0):dn(r.children,s=>{o=o.set(new Be(s),!0)}),Ld(t,new Cw(r.path,o,n))}else return[]}function og(t,e,n){return Ld(t,new Rd(ib(),e,n))}function Qie(t,e,n){let r=qn.fromObject(n);return Ld(t,new Yp(ib(),e,r))}function Jie(t,e){return Ld(t,new Dy(ib(),e))}function Zie(t,e,n){let r=ub(t,n);if(r){let i=db(r),o=i.path,s=i.queryId,a=zn(o,e),c=new Dy(ob(s),a);return hb(t,o,c)}else return[]}function xy(t,e,n,r,i=!1){let o=e._path,s=t.syncPointTree_.get(o),a=[];if(s&&(e._queryIdentifier==="default"||nH(s,e))){let c=zie(s,e,n,r);$ie(s)&&(t.syncPointTree_=t.syncPointTree_.remove(o));let l=c.removed;if(a=c.events,!i){let d=l.findIndex(f=>f._queryParams.loadsAllData())!==-1,h=t.syncPointTree_.findOnPath(o,(f,g)=>ta(g));if(d&&!h){let f=t.syncPointTree_.subtree(o);if(!f.isEmpty()){let g=noe(f);for(let E=0;E<g.length;++E){let I=g[E],S=I.query,L=sH(t,I);t.listenProvider_.startListening(Hp(S),Qp(t,S),L.hashFn,L.onComplete)}}}!h&&l.length>0&&!r&&(d?t.listenProvider_.stopListening(Hp(e),null):l.forEach(f=>{let g=t.queryToTagMap.get(Wy(f));t.listenProvider_.stopListening(Hp(f),g)}))}roe(t,l)}return a}function rH(t,e,n,r){let i=ub(t,r);if(i!=null){let o=db(i),s=o.path,a=o.queryId,c=zn(s,e),l=new Rd(ob(a),c,n);return hb(t,s,l)}else return[]}function eoe(t,e,n,r){let i=ub(t,r);if(i){let o=db(i),s=o.path,a=o.queryId,c=zn(s,e),l=qn.fromObject(n),d=new Yp(ob(a),c,l);return hb(t,s,d)}else return[]}function xw(t,e,n,r=!1){let i=e._path,o=null,s=!1;t.syncPointTree_.foreachOnPath(i,(f,g)=>{let E=zn(f,i);o=o||Js(g,E),s=s||ta(g)});let a=t.syncPointTree_.get(i);a?(s=s||ta(a),o=o||Js(a,Ve())):(a=new My,t.syncPointTree_=t.syncPointTree_.set(i,a));let c;o!=null?c=!0:(c=!1,o=ve.EMPTY_NODE,t.syncPointTree_.subtree(i).foreachChild((g,E)=>{let I=Js(E,Ve());I&&(o=o.updateImmediateChild(g,I))}));let l=nH(a,e);if(!l&&!e._queryParams.loadsAllData()){let f=Wy(e);q(!t.queryToTagMap.has(f),"View does not exist, but we have a tag");let g=ioe();t.queryToTagMap.set(f,g),t.tagToQueryMap.set(g,f)}let d=jy(t.pendingWriteTree_,i),h=Wie(a,e,n,d,o,c);if(!l&&!s&&!r){let f=tH(a,e);h=h.concat(ooe(t,e,f))}return h}function $y(t,e,n){let i=t.pendingWriteTree_,o=t.syncPointTree_.findOnPath(e,(s,a)=>{let c=zn(s,e),l=Js(a,c);if(l)return l});return qj(i,e,o,n,!0)}function toe(t,e){let n=e._path,r=null;t.syncPointTree_.foreachOnPath(n,(l,d)=>{let h=zn(l,n);r=r||Js(d,h)});let i=t.syncPointTree_.get(n);i?r=r||Js(i,Ve()):(i=new My,t.syncPointTree_=t.syncPointTree_.set(n,i));let o=r!=null,s=o?new eo(r,!0,!1):null,a=jy(t.pendingWriteTree_,e._path),c=Zj(i,e,a,o?s.getNode():ve.EMPTY_NODE,o);return Uie(c)}function Ld(t,e){return iH(e,t.syncPointTree_,null,jy(t.pendingWriteTree_,Ve()))}function iH(t,e,n,r){if(we(t.path))return oH(t,e,n,r);{let i=e.get(Ve());n==null&&i!=null&&(n=Js(i,Ve()));let o=[],s=Ne(t.path),a=t.operationForChild(s),c=e.children.get(s);if(c&&a){let l=n?n.getImmediateChild(s):null,d=Kj(r,s);o=o.concat(iH(a,c,l,d))}return i&&(o=o.concat(cb(i,t,r,n))),o}}function oH(t,e,n,r){let i=e.get(Ve());n==null&&i!=null&&(n=Js(i,Ve()));let o=[];return e.children.inorderTraversal((s,a)=>{let c=n?n.getImmediateChild(s):null,l=Kj(r,s),d=t.operationForChild(s);d&&(o=o.concat(oH(d,a,c,l)))}),i&&(o=o.concat(cb(i,t,r,n))),o}function sH(t,e){let n=e.query,r=Qp(t,n);return{hashFn:()=>(Fie(e)||ve.EMPTY_NODE).hash(),onComplete:i=>{if(i==="ok")return r?Zie(t,n._path,r):Jie(t,n._path);{let o=gre(i,n);return xy(t,n,null,o)}}}}function Qp(t,e){let n=Wy(e);return t.queryToTagMap.get(n)}function Wy(t){return t._path.toString()+"$"+t._queryIdentifier}function ub(t,e){return t.tagToQueryMap.get(e)}function db(t){let e=t.indexOf("$");return q(e!==-1&&e<t.length-1,"Bad queryKey."),{queryId:t.substr(e+1),path:new Be(t.substr(0,e))}}function hb(t,e,n){let r=t.syncPointTree_.get(e);q(r,"Missing sync point for query tag that we're tracking");let i=jy(t.pendingWriteTree_,e);return cb(r,n,i,null)}function noe(t){return t.fold((e,n,r)=>{if(n&&ta(n))return[Hy(n)];{let i=[];return n&&(i=eH(n)),dn(r,(o,s)=>{i=i.concat(s)}),i}})}function Hp(t){return t._queryParams.loadsAllData()&&!t._queryParams.isDefault()?new(Kie())(t._repo,t._path):t}function roe(t,e){for(let n=0;n<e.length;++n){let r=e[n];if(!r._queryParams.loadsAllData()){let i=Wy(r),o=t.queryToTagMap.get(i);t.queryToTagMap.delete(i),t.tagToQueryMap.delete(o)}}}function ioe(){return Yie++}function ooe(t,e,n){let r=e._path,i=Qp(t,e),o=sH(t,n),s=t.listenProvider_.startListening(Hp(e),i,o.hashFn,o.onComplete),a=t.syncPointTree_.subtree(r);if(i)q(!ta(a.value),"If we're adding a query, it shouldn't be shadowed");else{let c=a.fold((l,d,h)=>{if(!we(l)&&d&&ta(d))return[Hy(d).query];{let f=[];return d&&(f=f.concat(eH(d).map(g=>g.query))),dn(h,(g,E)=>{f=f.concat(E)}),f}});for(let l=0;l<c.length;++l){let d=c[l];t.listenProvider_.stopListening(Hp(d),Qp(t,d))}}return s}var kw=class t{constructor(e){this.node_=e}getImmediateChild(e){let n=this.node_.getImmediateChild(e);return new t(n)}node(){return this.node_}},Fw=class t{constructor(e,n){this.syncTree_=e,this.path_=n}getImmediateChild(e){let n=Ct(this.path_,e);return new t(this.syncTree_,n)}node(){return $y(this.syncTree_,this.path_)}},soe=function(t){return t=t||{},t.timestamp=t.timestamp||new Date().getTime(),t},lj=function(t,e,n){if(!t||typeof t!="object")return t;if(q(".sv"in t,"Unexpected leaf node or priority contents"),typeof t[".sv"]=="string")return aoe(t[".sv"],e,n);if(typeof t[".sv"]=="object")return coe(t[".sv"],e);q(!1,"Unexpected server value: "+JSON.stringify(t,null,2))},aoe=function(t,e,n){if(t==="timestamp")return n.timestamp;q(!1,"Unexpected server value: "+t)},coe=function(t,e,n){t.hasOwnProperty("increment")||q(!1,"Unexpected server value: "+JSON.stringify(t,null,2));let r=t.increment;typeof r!="number"&&q(!1,"Unexpected increment value: "+r);let i=e.node();if(q(i!==null&&typeof i<"u","Expected ChildrenNode.EMPTY_NODE for nulls"),!i.isLeafNode())return r;let s=i.getValue();return typeof s!="number"?r:s+r},aH=function(t,e,n,r){return pb(e,new Fw(n,t),r)},fb=function(t,e,n){return pb(t,new kw(e),n)};function pb(t,e,n){let r=t.getPriority().val(),i=lj(r,e.getImmediateChild(".priority"),n),o;if(t.isLeafNode()){let s=t,a=lj(s.getValue(),e,n);return a!==s.getValue()||i!==s.getPriority().val()?new Ad(a,At(i)):t}else{let s=t;return o=s,i!==s.getPriority().val()&&(o=o.updatePriority(new Ad(i))),s.forEachChild(ft,(a,c)=>{let l=pb(c,e.getImmediateChild(a),n);l!==c&&(o=o.updateImmediateChild(a,l))}),o}}var Jp=class{constructor(e="",n=null,r={children:{},childCount:0}){this.name=e,this.parent=n,this.node=r}};function zy(t,e){let n=e instanceof Be?e:new Be(e),r=t,i=Ne(n);for(;i!==null;){let o=Fs(r.node.children,i)||{children:{},childCount:0};r=new Jp(i,r,o),n=at(n),i=Ne(n)}return r}function ll(t){return t.node.value}function gb(t,e){t.node.value=e,Uw(t)}function cH(t){return t.node.childCount>0}function loe(t){return ll(t)===void 0&&!cH(t)}function qy(t,e){dn(t.node.children,(n,r)=>{e(new Jp(n,t,r))})}function lH(t,e,n,r){n&&!r&&e(t),qy(t,i=>{lH(i,e,!0,r)}),n&&r&&e(t)}function uoe(t,e,n){let r=n?t:t.parent;for(;r!==null;){if(e(r))return!0;r=r.parent}return!1}function sg(t){return new Be(t.parent===null?t.name:sg(t.parent)+"/"+t.name)}function Uw(t){t.parent!==null&&doe(t.parent,t.name,t)}function doe(t,e,n){let r=loe(n),i=Vr(t.node.children,e);r&&i?(delete t.node.children[e],t.node.childCount--,Uw(t)):!r&&!i&&(t.node.children[e]=n.node,t.node.childCount++,Uw(t))}var hoe=/[\[\].#$\/\u0000-\u001F\u007F]/,foe=/[\[\].#$\u0000-\u001F\u007F]/,XN=10*1024*1024,Ky=function(t){return typeof t=="string"&&t.length!==0&&!hoe.test(t)},uH=function(t){return typeof t=="string"&&t.length!==0&&!foe.test(t)},poe=function(t){return t&&(t=t.replace(/^\/*\.info(\/|$)/,"/")),uH(t)},Zp=function(t){return t===null||typeof t=="string"||typeof t=="number"&&!By(t)||t&&typeof t=="object"&&Vr(t,".sv")},rl=function(t,e,n,r){r&&e===void 0||ag(Us(t,"value"),e,n)},ag=function(t,e,n){let r=n instanceof Be?new lw(n,t):n;if(e===void 0)throw new Error(t+"contains undefined "+Qc(r));if(typeof e=="function")throw new Error(t+"contains a function "+Qc(r)+" with contents = "+e.toString());if(By(e))throw new Error(t+"contains "+e.toString()+" "+Qc(r));if(typeof e=="string"&&e.length>XN/3&&mp(e)>XN)throw new Error(t+"contains a string greater than "+XN+" utf8 bytes "+Qc(r)+" ('"+e.substring(0,50)+"...')");if(e&&typeof e=="object"){let i=!1,o=!1;if(dn(e,(s,a)=>{if(s===".value")i=!0;else if(s!==".priority"&&s!==".sv"&&(o=!0,!Ky(s)))throw new Error(t+" contains an invalid key ("+s+") "+Qc(r)+`. Keys must be non-empty strings and can't contain ".", "#", "$", "/", "[", or "]"`);$re(r,s),ag(t,a,r),Wre(r)}),i&&o)throw new Error(t+' contains ".value" child '+Qc(r)+" in addition to actual children.")}},goe=function(t,e){let n,r;for(n=0;n<e.length;n++){r=e[n];let o=$p(r);for(let s=0;s<o.length;s++)if(!(o[s]===".priority"&&s===o.length-1)){if(!Ky(o[s]))throw new Error(t+"contains an invalid key ("+o[s]+") in path "+r.toString()+`. Keys must be non-empty strings and can't contain ".", "#", "$", "/", "[", or "]"`)}}e.sort(Hre);let i=null;for(n=0;n<e.length;n++){if(r=e[n],i!==null&&jr(i,r))throw new Error(t+"contains a path "+i.toString()+" that is ancestor of another path "+r.toString());i=r}},dH=function(t,e,n,r){if(r&&e===void 0)return;let i=Us(t,"values");if(!(e&&typeof e=="object")||Array.isArray(e))throw new Error(i+" must be an object containing the children to replace.");let o=[];dn(e,(s,a)=>{let c=new Be(s);if(ag(i,a,Ct(n,c)),Zw(c)===".priority"&&!Zp(a))throw new Error(i+"contains an invalid value for '"+c.toString()+"', which must be a valid Firebase priority (a string, finite number, server value, or null).");o.push(c)}),goe(i,o)},moe=function(t,e,n){if(!(n&&e===void 0)){if(By(e))throw new Error(Us(t,"priority")+"is "+e.toString()+", but must be a valid Firebase priority (a string, finite number, server value, or null).");if(!Zp(e))throw new Error(Us(t,"priority")+"must be a valid Firebase priority (a string, finite number, server value, or null).")}},hH=function(t,e,n,r){if(!(r&&n===void 0)&&!Ky(n))throw new Error(Us(t,e)+'was an invalid key = "'+n+`". Firebase keys must be non-empty strings and can't contain ".", "#", "$", "/", "[", or "]").`)},mb=function(t,e,n,r){if(!(r&&n===void 0)&&!uH(n))throw new Error(Us(t,e)+'was an invalid path = "'+n+`". Paths must be non-empty strings and can't contain ".", "#", "$", "[", or "]"`)},Eoe=function(t,e,n,r){n&&(n=n.replace(/^\/*\.info(\/|$)/,"/")),mb(t,e,n,r)},Xs=function(t,e){if(Ne(e)===".info")throw new Error(t+" failed = Can't modify data under /.info/")},_oe=function(t,e){let n=e.path.toString();if(typeof e.repoInfo.host!="string"||e.repoInfo.host.length===0||!Ky(e.repoInfo.namespace)&&e.repoInfo.host.split(":")[0]!=="localhost"||n.length!==0&&!poe(n))throw new Error(Us(t,"url")+`must be a valid firebase URL and the path can't contain ".", "#", "$", "[", or "]".`)};var Vw=class{constructor(){this.eventLists_=[],this.recursionDepth_=0}};function Yy(t,e){let n=null;for(let r=0;r<e.length;r++){let i=e[r],o=i.getPath();n!==null&&!eb(o,n.path)&&(t.eventLists_.push(n),n=null),n===null&&(n={events:[],path:o}),n.events.push(i)}n&&t.eventLists_.push(n)}function fH(t,e,n){Yy(t,n),pH(t,r=>eb(r,e))}function vr(t,e,n){Yy(t,n),pH(t,r=>jr(r,e)||jr(e,r))}function pH(t,e){t.recursionDepth_++;let n=!0;for(let r=0;r<t.eventLists_.length;r++){let i=t.eventLists_[r];if(i){let o=i.path;e(o)?(Toe(t.eventLists_[r]),t.eventLists_[r]=null):n=!1}}n&&(t.eventLists_=[]),t.recursionDepth_--}function Toe(t){for(let e=0;e<t.events.length;e++){let n=t.events[e];if(n!==null){t.events[e]=null;let r=n.getEventRunner();Zc&&un("event: "+n.toString()),Od(r)}}}var yoe="repo_interrupt",Ioe=25,Bw=class{constructor(e,n,r,i){this.repoInfo_=e,this.forceRestClient_=n,this.authTokenProvider_=r,this.appCheckProvider_=i,this.dataUpdateCount=0,this.statsListener_=null,this.eventQueue_=new Vw,this.nextWriteId_=1,this.interceptServerDataCallback_=null,this.onDisconnect_=Cy(),this.transactionQueueTree_=new Jp,this.persistentConnection_=null,this.key=this.repoInfo_.toURLString()}toString(){return(this.repoInfo_.secure?"https://":"http://")+this.repoInfo_.host}};function voe(t,e,n){if(t.stats_=Jw(t.repoInfo_),t.forceRestClient_||Tre())t.server_=new Tw(t.repoInfo_,(r,i,o,s)=>{uj(t,r,i,o,s)},t.authTokenProvider_,t.appCheckProvider_),setTimeout(()=>dj(t,!0),0);else{if(typeof n<"u"&&n!==null){if(typeof n!="object")throw new Error("Only objects are supported for option databaseAuthVariableOverride");try{xt(n)}catch(r){throw new Error("Invalid authOverride provided: "+r)}}t.persistentConnection_=new tb(t.repoInfo_,e,(r,i,o,s)=>{uj(t,r,i,o,s)},r=>{dj(t,r)},r=>{Soe(t,r)},t.authTokenProvider_,t.appCheckProvider_,n),t.server_=t.persistentConnection_}t.authTokenProvider_.addTokenChangeListener(r=>{t.server_.refreshAuthToken(r)}),t.appCheckProvider_.addTokenChangeListener(r=>{t.server_.refreshAppCheckToken(r.token)}),t.statsReporter_=Ire(t.repoInfo_,()=>new Aw(t.stats_,t.server_)),t.infoData_=new yw,t.infoSyncTree_=new Py({startListening:(r,i,o,s)=>{let a=[],c=t.infoData_.getNode(r._path);return c.isEmpty()||(a=og(t.infoSyncTree_,r._path,c),setTimeout(()=>{s("ok")},0)),a},stopListening:()=>{}}),Eb(t,"connected",!1),t.serverSyncTree_=new Py({startListening:(r,i,o,s)=>(t.server_.listen(r,o,i,(a,c)=>{let l=s(a,c);vr(t.eventQueue_,r._path,l)}),[]),stopListening:(r,i)=>{t.server_.unlisten(r,i)}})}function gH(t){let n=t.infoData_.getNode(new Be(".info/serverTimeOffset")).val()||0;return new Date().getTime()+n}function cg(t){return soe({timestamp:gH(t)})}function uj(t,e,n,r,i){t.dataUpdateCount++;let o=new Be(e);n=t.interceptServerDataCallback_?t.interceptServerDataCallback_(e,n):n;let s=[];if(i)if(r){let c=pp(n,l=>At(l));s=eoe(t.serverSyncTree_,o,c,i)}else{let c=At(n);s=rH(t.serverSyncTree_,o,c,i)}else if(r){let c=pp(n,l=>At(l));s=Qie(t.serverSyncTree_,o,c)}else{let c=At(n);s=og(t.serverSyncTree_,o,c)}let a=o;s.length>0&&(a=wd(t,o)),vr(t.eventQueue_,a,s)}function dj(t,e){Eb(t,"connected",e),e===!1&&Roe(t)}function Soe(t,e){dn(e,(n,r)=>{Eb(t,n,r)})}function Eb(t,e,n){let r=new Be("/.info/"+e),i=At(n);t.infoData_.updateSnapshot(r,i);let o=og(t.infoSyncTree_,r,i);vr(t.eventQueue_,r,o)}function Xy(t){return t.nextWriteId_++}function Aoe(t,e,n){let r=toe(t.serverSyncTree_,e);return r!=null?Promise.resolve(r):t.server_.get(e).then(i=>{let o=At(i).withIndex(e._queryParams.getIndex());xw(t.serverSyncTree_,e,n,!0);let s;if(e._queryParams.loadsAllData())s=og(t.serverSyncTree_,e._path,o);else{let a=Qp(t.serverSyncTree_,e);s=rH(t.serverSyncTree_,e._path,o,a)}return vr(t.eventQueue_,e._path,s),xy(t.serverSyncTree_,e,n,null,!0),o},i=>(Pd(t,"get for query "+xt(e)+" failed: "+i),Promise.reject(new Error(i))))}function Coe(t,e,n,r,i){Pd(t,"set",{path:e.toString(),value:n,priority:r});let o=cg(t),s=At(n,r),a=$y(t.serverSyncTree_,e),c=fb(s,a,o),l=Xy(t),d=lb(t.serverSyncTree_,e,c,l,!0);Yy(t.eventQueue_,d),t.server_.put(e.toString(),s.val(!0),(f,g)=>{let E=f==="ok";E||xn("set at "+e+" failed: "+f);let I=Ys(t.serverSyncTree_,l,!E);vr(t.eventQueue_,e,I),na(t,i,f,g)});let h=Tb(t,e);wd(t,h),vr(t.eventQueue_,h,[])}function Doe(t,e,n,r){Pd(t,"update",{path:e.toString(),value:n});let i=!0,o=cg(t),s={};if(dn(n,(a,c)=>{i=!1,s[a]=aH(Ct(e,a),At(c),t.serverSyncTree_,o)}),i)un("update() called with empty data. Don't do anything."),na(t,r,"ok",void 0);else{let a=Xy(t),c=Xie(t.serverSyncTree_,e,s,a);Yy(t.eventQueue_,c),t.server_.merge(e.toString(),n,(l,d)=>{let h=l==="ok";h||xn("update at "+e+" failed: "+l);let f=Ys(t.serverSyncTree_,a,!h),g=f.length>0?wd(t,e):e;vr(t.eventQueue_,g,f),na(t,r,l,d)}),dn(n,l=>{let d=Tb(t,Ct(e,l));wd(t,d)}),vr(t.eventQueue_,e,[])}}function Roe(t){Pd(t,"onDisconnectEvents");let e=cg(t),n=Cy();vw(t.onDisconnect_,Ve(),(i,o)=>{let s=aH(i,o,t.serverSyncTree_,e);Md(n,i,s)});let r=[];vw(n,Ve(),(i,o)=>{r=r.concat(og(t.serverSyncTree_,i,o));let s=Tb(t,i);wd(t,s)}),t.onDisconnect_=Cy(),vr(t.eventQueue_,Ve(),r)}function Noe(t,e,n){t.server_.onDisconnectCancel(e.toString(),(r,i)=>{r==="ok"&&Iw(t.onDisconnect_,e),na(t,n,r,i)})}function hj(t,e,n,r){let i=At(n);t.server_.onDisconnectPut(e.toString(),i.val(!0),(o,s)=>{o==="ok"&&Md(t.onDisconnect_,e,i),na(t,r,o,s)})}function woe(t,e,n,r,i){let o=At(n,r);t.server_.onDisconnectPut(e.toString(),o.val(!0),(s,a)=>{s==="ok"&&Md(t.onDisconnect_,e,o),na(t,i,s,a)})}function boe(t,e,n,r){if(fp(n)){un("onDisconnect().update() called with empty data. Don't do anything."),na(t,r,"ok",void 0);return}t.server_.onDisconnectMerge(e.toString(),n,(i,o)=>{i==="ok"&&dn(n,(s,a)=>{let c=At(a);Md(t.onDisconnect_,Ct(e,s),c)}),na(t,r,i,o)})}function Ooe(t,e,n){let r;Ne(e._path)===".info"?r=xw(t.infoSyncTree_,e,n):r=xw(t.serverSyncTree_,e,n),fH(t.eventQueue_,e._path,r)}function Gw(t,e,n){let r;Ne(e._path)===".info"?r=xy(t.infoSyncTree_,e,n):r=xy(t.serverSyncTree_,e,n),fH(t.eventQueue_,e._path,r)}function Moe(t){t.persistentConnection_&&t.persistentConnection_.interrupt(yoe)}function Pd(t,...e){let n="";t.persistentConnection_&&(n=t.persistentConnection_.id+":"),un(n,...e)}function na(t,e,n,r){e&&Od(()=>{if(n==="ok")e(null);else{let i=(n||"error").toUpperCase(),o=i;r&&(o+=": "+r);let s=new Error(o);s.code=i,e(s)}})}function Loe(t,e,n,r,i,o){Pd(t,"transaction on "+e);let s={path:e,update:n,onComplete:r,status:null,order:mj(),applyLocally:o,retryCount:0,unwatcher:i,abortReason:null,currentWriteId:null,currentInputSnapshot:null,currentOutputSnapshotRaw:null,currentOutputSnapshotResolved:null},a=_b(t,e,void 0);s.currentInputSnapshot=a;let c=s.update(a.val());if(c===void 0)s.unwatcher(),s.currentOutputSnapshotRaw=null,s.currentOutputSnapshotResolved=null,s.onComplete&&s.onComplete(null,!1,s.currentInputSnapshot);else{ag("transaction failed: Data returned ",c,s.path),s.status=0;let l=zy(t.transactionQueueTree_,e),d=ll(l)||[];d.push(s),gb(l,d);let h;typeof c=="object"&&c!==null&&Vr(c,".priority")?(h=Fs(c,".priority"),q(Zp(h),"Invalid priority returned by transaction. Priority must be a valid string, finite number, server value, or null.")):h=($y(t.serverSyncTree_,e)||ve.EMPTY_NODE).getPriority().val();let f=cg(t),g=At(c,h),E=fb(g,a,f);s.currentOutputSnapshotRaw=g,s.currentOutputSnapshotResolved=E,s.currentWriteId=Xy(t);let I=lb(t.serverSyncTree_,e,E,s.currentWriteId,s.applyLocally);vr(t.eventQueue_,e,I),Qy(t,t.transactionQueueTree_)}}function _b(t,e,n){return $y(t.serverSyncTree_,e,n)||ve.EMPTY_NODE}function Qy(t,e=t.transactionQueueTree_){if(e||Jy(t,e),ll(e)){let n=EH(t,e);q(n.length>0,"Sending zero length transaction queue"),n.every(i=>i.status===0)&&Poe(t,sg(e),n)}else cH(e)&&qy(e,n=>{Qy(t,n)})}function Poe(t,e,n){let r=n.map(l=>l.currentWriteId),i=_b(t,e,r),o=i,s=i.hash();for(let l=0;l<n.length;l++){let d=n[l];q(d.status===0,"tryToSendTransactionQueue_: items in queue should all be run."),d.status=1,d.retryCount++;let h=zn(e,d.path);o=o.updateChild(h,d.currentOutputSnapshotRaw)}let a=o.val(!0),c=e;t.server_.put(c.toString(),a,l=>{Pd(t,"transaction put response",{path:c.toString(),status:l});let d=[];if(l==="ok"){let h=[];for(let f=0;f<n.length;f++)n[f].status=2,d=d.concat(Ys(t.serverSyncTree_,n[f].currentWriteId)),n[f].onComplete&&h.push(()=>n[f].onComplete(null,!0,n[f].currentOutputSnapshotResolved)),n[f].unwatcher();Jy(t,zy(t.transactionQueueTree_,e)),Qy(t,t.transactionQueueTree_),vr(t.eventQueue_,e,d);for(let f=0;f<h.length;f++)Od(h[f])}else{if(l==="datastale")for(let h=0;h<n.length;h++)n[h].status===3?n[h].status=4:n[h].status=0;else{xn("transaction at "+c.toString()+" failed: "+l);for(let h=0;h<n.length;h++)n[h].status=4,n[h].abortReason=l}wd(t,e)}},s)}function wd(t,e){let n=mH(t,e),r=sg(n),i=EH(t,n);return xoe(t,i,r),r}function xoe(t,e,n){if(e.length===0)return;let r=[],i=[],s=e.filter(a=>a.status===0).map(a=>a.currentWriteId);for(let a=0;a<e.length;a++){let c=e[a],l=zn(n,c.path),d=!1,h;if(q(l!==null,"rerunTransactionsUnderNode_: relativePath should not be null."),c.status===4)d=!0,h=c.abortReason,i=i.concat(Ys(t.serverSyncTree_,c.currentWriteId,!0));else if(c.status===0)if(c.retryCount>=Ioe)d=!0,h="maxretry",i=i.concat(Ys(t.serverSyncTree_,c.currentWriteId,!0));else{let f=_b(t,c.path,s);c.currentInputSnapshot=f;let g=e[a].update(f.val());if(g!==void 0){ag("transaction failed: Data returned ",g,c.path);let E=At(g);typeof g=="object"&&g!=null&&Vr(g,".priority")||(E=E.updatePriority(f.getPriority()));let S=c.currentWriteId,L=cg(t),V=fb(E,f,L);c.currentOutputSnapshotRaw=E,c.currentOutputSnapshotResolved=V,c.currentWriteId=Xy(t),s.splice(s.indexOf(S),1),i=i.concat(lb(t.serverSyncTree_,c.path,V,c.currentWriteId,c.applyLocally)),i=i.concat(Ys(t.serverSyncTree_,S,!0))}else d=!0,h="nodata",i=i.concat(Ys(t.serverSyncTree_,c.currentWriteId,!0))}vr(t.eventQueue_,n,i),i=[],d&&(e[a].status=2,(function(f){setTimeout(f,Math.floor(0))})(e[a].unwatcher),e[a].onComplete&&(h==="nodata"?r.push(()=>e[a].onComplete(null,!1,e[a].currentInputSnapshot)):r.push(()=>e[a].onComplete(new Error(h),!1,null))))}Jy(t,t.transactionQueueTree_);for(let a=0;a<r.length;a++)Od(r[a]);Qy(t,t.transactionQueueTree_)}function mH(t,e){let n,r=t.transactionQueueTree_;for(n=Ne(e);n!==null&&ll(r)===void 0;)r=zy(r,n),e=at(e),n=Ne(e);return r}function EH(t,e){let n=[];return _H(t,e,n),n.sort((r,i)=>r.order-i.order),n}function _H(t,e,n){let r=ll(e);if(r)for(let i=0;i<r.length;i++)n.push(r[i]);qy(e,i=>{_H(t,i,n)})}function Jy(t,e){let n=ll(e);if(n){let r=0;for(let i=0;i<n.length;i++)n[i].status!==2&&(n[r]=n[i],r++);n.length=r,gb(e,n.length>0?n:void 0)}qy(e,r=>{Jy(t,r)})}function Tb(t,e){let n=sg(mH(t,e)),r=zy(t.transactionQueueTree_,e);return uoe(r,i=>{QN(t,i)}),QN(t,r),lH(r,i=>{QN(t,i)}),n}function QN(t,e){let n=ll(e);if(n){let r=[],i=[],o=-1;for(let s=0;s<n.length;s++)n[s].status===3||(n[s].status===1?(q(o===s-1,"All SENT items should be at beginning of queue."),o=s,n[s].status=3,n[s].abortReason="set"):(q(n[s].status===0,"Unexpected transaction status in abort"),n[s].unwatcher(),i=i.concat(Ys(t.serverSyncTree_,n[s].currentWriteId,!0)),n[s].onComplete&&r.push(n[s].onComplete.bind(null,new Error("set"),!1,null))));o===-1?gb(e,void 0):n.length=o+1,vr(t.eventQueue_,sg(e),i);for(let s=0;s<r.length;s++)Od(r[s])}}function koe(t){let e="",n=t.split("/");for(let r=0;r<n.length;r++)if(n[r].length>0){let i=n[r];try{i=decodeURIComponent(i.replace(/\+/g," "))}catch{}e+="/"+i}return e}function Foe(t){let e={};t.charAt(0)==="?"&&(t=t.substring(1));for(let n of t.split("&")){if(n.length===0)continue;let r=n.split("=");r.length===2?e[decodeURIComponent(r[0])]=decodeURIComponent(r[1]):xn(`Invalid query segment '${n}' in query '${t}'`)}return e}var fj=function(t,e){let n=Uoe(t),r=n.namespace;n.domain==="firebase.com"&&Wo(n.host+" is no longer supported. Please use <YOUR FIREBASE>.firebaseio.com instead"),(!r||r==="undefined")&&n.domain!=="localhost"&&Wo("Cannot parse Firebase url. Please use https://<YOUR FIREBASE>.firebaseio.com"),n.secure||ure();let i=n.scheme==="ws"||n.scheme==="wss";return{repoInfo:new my(n.host,n.secure,r,i,e,"",r!==n.subdomain),path:new Be(n.pathString)}},Uoe=function(t){let e="",n="",r="",i="",o="",s=!0,a="https",c=443;if(typeof t=="string"){let l=t.indexOf("//");l>=0&&(a=t.substring(0,l-1),t=t.substring(l+2));let d=t.indexOf("/");d===-1&&(d=t.length);let h=t.indexOf("?");h===-1&&(h=t.length),e=t.substring(0,Math.min(d,h)),d<h&&(i=koe(t.substring(d,h)));let f=Foe(t.substring(Math.min(t.length,h)));l=e.indexOf(":"),l>=0?(s=a==="https"||a==="wss",c=parseInt(e.substring(l+1),10)):l=e.length;let g=e.slice(0,l);if(g.toLowerCase()==="localhost")n="localhost";else if(g.split(".").length<=2)n=g;else{let E=e.indexOf(".");r=e.substring(0,E).toLowerCase(),n=e.substring(E+1),o=r}"ns"in f&&(o=f.ns)}return{host:e,port:c,domain:n,subdomain:r,secure:s,scheme:a,pathString:i,namespace:o}};var pj="-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz",Voe=(function(){let t=0,e=[];return function(n){let r=n===t;t=n;let i,o=new Array(8);for(i=7;i>=0;i--)o[i]=pj.charAt(n%64),n=Math.floor(n/64);q(n===0,"Cannot push at time == 0");let s=o.join("");if(r){for(i=11;i>=0&&e[i]===63;i--)e[i]=0;e[i]++}else for(i=0;i<12;i++)e[i]=Math.floor(Math.random()*64);for(i=0;i<12;i++)s+=pj.charAt(e[i]);return q(s.length===20,"nextPushId: Length should be 20."),s}})();var ky=class{constructor(e,n,r,i){this.eventType=e,this.eventRegistration=n,this.snapshot=r,this.prevName=i}getPath(){let e=this.snapshot.ref;return this.eventType==="value"?e._path:e.parent._path}getEventType(){return this.eventType}getEventRunner(){return this.eventRegistration.getEventRunner(this)}toString(){return this.getPath().toString()+":"+this.eventType+":"+xt(this.snapshot.exportVal())}},Fy=class{constructor(e,n,r){this.eventRegistration=e,this.error=n,this.path=r}getPath(){return this.path}getEventType(){return"cancel"}getEventRunner(){return this.eventRegistration.getEventRunner(this)}toString(){return this.path.toString()+":cancel"}};var eg=class{constructor(e,n){this.snapshotCallback=e,this.cancelCallback=n}onValue(e,n){this.snapshotCallback.call(null,e,n)}onCancel(e){return q(this.hasCancelCallback,"Raising a cancel event on a listener with no cancel callback"),this.cancelCallback.call(null,e)}get hasCancelCallback(){return!!this.cancelCallback}matches(e){return this.snapshotCallback===e.snapshotCallback||this.snapshotCallback.userCallback!==void 0&&this.snapshotCallback.userCallback===e.snapshotCallback.userCallback&&this.snapshotCallback.context===e.snapshotCallback.context}};var jw=class{constructor(e,n){this._repo=e,this._path=n}cancel(){let e=new cn;return Noe(this._repo,this._path,e.wrapCallback(()=>{})),e.promise}remove(){Xs("OnDisconnect.remove",this._path);let e=new cn;return hj(this._repo,this._path,null,e.wrapCallback(()=>{})),e.promise}set(e){Xs("OnDisconnect.set",this._path),rl("OnDisconnect.set",e,this._path,!1);let n=new cn;return hj(this._repo,this._path,e,n.wrapCallback(()=>{})),n.promise}setWithPriority(e,n){Xs("OnDisconnect.setWithPriority",this._path),rl("OnDisconnect.setWithPriority",e,this._path,!1),moe("OnDisconnect.setWithPriority",n,!1);let r=new cn;return woe(this._repo,this._path,e,n,r.wrapCallback(()=>{})),r.promise}update(e){Xs("OnDisconnect.update",this._path),dH("OnDisconnect.update",e,this._path,!1);let n=new cn;return boe(this._repo,this._path,e,n.wrapCallback(()=>{})),n.promise}};var il=class t{constructor(e,n,r,i){this._repo=e,this._path=n,this._queryParams=r,this._orderByCalled=i}get key(){return we(this._path)?null:Zw(this._path)}get ref(){return new hi(this._repo,this._path)}get _queryIdentifier(){let e=Z2(this._queryParams),n=Qw(e);return n==="{}"?"default":n}get _queryObject(){return Z2(this._queryParams)}isEqual(e){if(e=Me(e),!(e instanceof t))return!1;let n=this._repo===e._repo,r=eb(this._path,e._path),i=this._queryIdentifier===e._queryIdentifier;return n&&r&&i}toJSON(){return this.toString()}toString(){return this._repo.toString()+jre(this._path)}};function Boe(t,e){if(t._orderByCalled===!0)throw new Error(e+": You can't combine multiple orderBy calls.")}function yb(t){let e=null,n=null;if(t.hasStart()&&(e=t.getIndexStartValue()),t.hasEnd()&&(n=t.getIndexEndValue()),t.getIndex()===el){let r="Query: When ordering by key, you may only pass one argument to startAt(), endAt(), or equalTo().",i="Query: When ordering by key, the argument passed to startAt(), startAfter(), endAt(), endBefore(), or equalTo() must be a string.";if(t.hasStart()){if(t.getIndexStartName()!==tl)throw new Error(r);if(typeof e!="string")throw new Error(i)}if(t.hasEnd()){if(t.getIndexEndName()!==Zs)throw new Error(r);if(typeof n!="string")throw new Error(i)}}else if(t.getIndex()===ft){if(e!=null&&!Zp(e)||n!=null&&!Zp(n))throw new Error("Query: When ordering by priority, the first argument passed to startAt(), startAfter() endAt(), endBefore(), or equalTo() must be a valid priority value (null, a number, or a string).")}else if(q(t.getIndex()instanceof Wp||t.getIndex()===jj,"unknown index type."),e!=null&&typeof e=="object"||n!=null&&typeof n=="object")throw new Error("Query: First argument passed to startAt(), startAfter(), endAt(), endBefore(), or equalTo() cannot be an object.")}function TH(t){if(t.hasStart()&&t.hasEnd()&&t.hasLimit()&&!t.hasAnchoredLimit())throw new Error("Query: Can't combine startAt(), startAfter(), endAt(), endBefore(), and limit(). Use limitToFirst() or limitToLast() instead.")}var hi=class t extends il{constructor(e,n){super(e,n,new _w,!1)}get parent(){let e=kj(this._path);return e===null?null:new t(this._repo,e)}get root(){let e=this;for(;e.parent!==null;)e=e.parent;return e}},bd=class t{constructor(e,n,r){this._node=e,this.ref=n,this._index=r}get priority(){return this._node.getPriority().val()}get key(){return this.ref.key}get size(){return this._node.numChildren()}child(e){let n=new Be(e),r=ol(this.ref,e);return new t(this._node.getChild(n),r,ft)}exists(){return!this._node.isEmpty()}exportVal(){return this._node.val(!0)}forEach(e){return this._node.isLeafNode()?!1:!!this._node.forEachChild(this._index,(r,i)=>e(new t(i,ol(this.ref,r),ft)))}hasChild(e){let n=new Be(e);return!this._node.getChild(n).isEmpty()}hasChildren(){return this._node.isLeafNode()?!1:!this._node.isEmpty()}toJSON(){return this.exportVal()}val(){return this._node.val()}};function yH(t,e){return t=Me(t),t._checkNotDeleted("ref"),e!==void 0?ol(t._root,e):t._root}function ol(t,e){return t=Me(t),Ne(t._path)===null?Eoe("child","path",e,!1):mb("child","path",e,!1),new hi(t._repo,Ct(t._path,e))}function IH(t){return t=Me(t),new jw(t._repo,t._path)}function vH(t,e){t=Me(t),Xs("push",t._path),rl("push",e,t._path,!0);let n=gH(t._repo),r=Voe(n),i=ol(t,r),o=ol(t,r),s;return e!=null?s=Zy(o,e).then(()=>o):s=Promise.resolve(o),i.then=s.then.bind(s),i.catch=s.then.bind(s,void 0),i}function SH(t){return Xs("remove",t._path),Zy(t,null)}function Zy(t,e){t=Me(t),Xs("set",t._path),rl("set",e,t._path,!1);let n=new cn;return Coe(t._repo,t._path,e,null,n.wrapCallback(()=>{})),n.promise}function AH(t,e){dH("update",e,t._path,!1);let n=new cn;return Doe(t._repo,t._path,e,n.wrapCallback(()=>{})),n.promise}function eI(t){t=Me(t);let e=new eg(()=>{}),n=new tg(e);return Aoe(t._repo,t,n).then(r=>new bd(r,new hi(t._repo,t._path),t._queryParams.getIndex()))}var tg=class t{constructor(e){this.callbackContext=e}respondsTo(e){return e==="value"}createEvent(e,n){let r=n._queryParams.getIndex();return new ky("value",this,new bd(e.snapshotNode,new hi(n._repo,n._path),r))}getEventRunner(e){return e.getEventType()==="cancel"?()=>this.callbackContext.onCancel(e.error):()=>this.callbackContext.onValue(e.snapshot,null)}createCancelEvent(e,n){return this.callbackContext.hasCancelCallback?new Fy(this,e,n):null}matches(e){return e instanceof t?!e.callbackContext||!this.callbackContext?!0:e.callbackContext.matches(this.callbackContext):!1}hasAnyCallback(){return this.callbackContext!==null}},Uy=class t{constructor(e,n){this.eventType=e,this.callbackContext=n}respondsTo(e){let n=e==="children_added"?"child_added":e;return n=n==="children_removed"?"child_removed":n,this.eventType===n}createCancelEvent(e,n){return this.callbackContext.hasCancelCallback?new Fy(this,e,n):null}createEvent(e,n){q(e.childName!=null,"Child events should have a childName.");let r=ol(new hi(n._repo,n._path),e.childName),i=n._queryParams.getIndex();return new ky(e.type,this,new bd(e.snapshotNode,r,i),e.prevName)}getEventRunner(e){return e.getEventType()==="cancel"?()=>this.callbackContext.onCancel(e.error):()=>this.callbackContext.onValue(e.snapshot,e.prevName)}matches(e){return e instanceof t?this.eventType===e.eventType&&(!this.callbackContext||!e.callbackContext||this.callbackContext.matches(e.callbackContext)):!1}hasAnyCallback(){return!!this.callbackContext}};function lg(t,e,n,r,i){let o;if(typeof r=="object"&&(o=void 0,i=r),typeof r=="function"&&(o=r),i&&i.onlyOnce){let c=n,l=(d,h)=>{Gw(t._repo,t,a),c(d,h)};l.userCallback=n.userCallback,l.context=n.context,n=l}let s=new eg(n,o||void 0),a=e==="value"?new tg(s):new Uy(e,s);return Ooe(t._repo,t,a),()=>Gw(t._repo,t,a)}function ug(t,e,n,r){return lg(t,"value",e,n,r)}function tI(t,e,n,r){return lg(t,"child_added",e,n,r)}function nI(t,e,n,r){return lg(t,"child_changed",e,n,r)}function Ib(t,e,n,r){return lg(t,"child_moved",e,n,r)}function rI(t,e,n,r){return lg(t,"child_removed",e,n,r)}function iI(t,e,n){let r=null,i=n?new eg(n):null;e==="value"?r=new tg(i):e&&(r=new Uy(e,i)),Gw(t._repo,t,r)}var sl=class{},Hw=class extends sl{constructor(e,n){super(),this._value=e,this._key=n,this.type="endAt"}_apply(e){rl("endAt",this._value,e._path,!0);let n=sie(e._queryParams,this._value,this._key);if(TH(n),yb(n),e._queryParams.hasEnd())throw new Error("endAt: Starting point was already set (by another call to endAt, endBefore or equalTo).");return new il(e._repo,e._path,n,e._orderByCalled)}};var Vy=class extends sl{constructor(e,n){super(),this._value=e,this._key=n,this.type="startAt"}_apply(e){rl("startAt",this._value,e._path,!0);let n=oie(e._queryParams,this._value,this._key);if(TH(n),yb(n),e._queryParams.hasStart())throw new Error("startAt: Starting point was already set (by another call to startAt, startBefore or equalTo).");return new il(e._repo,e._path,n,e._orderByCalled)}};function CH(t=null,e){return hH("startAt","key",e,!0),new Vy(t,e)}var $w=class extends sl{constructor(e){super(),this._limit=e,this.type="limitToLast"}_apply(e){if(e._queryParams.hasLimit())throw new Error("limitToLast: Limit was already set (by another call to limitToFirst or limitToLast).");return new il(e._repo,e._path,iie(e._queryParams,this._limit),e._orderByCalled)}};function DH(t){if(typeof t!="number"||Math.floor(t)!==t||t<=0)throw new Error("limitToLast: First argument must be a positive integer.");return new $w(t)}var Ww=class extends sl{constructor(e){super(),this._path=e,this.type="orderByChild"}_apply(e){Boe(e,"orderByChild");let n=new Be(this._path);if(we(n))throw new Error("orderByChild: cannot pass in empty path. Use orderByValue() instead.");let r=new Wp(n),i=aie(e._queryParams,r);return yb(i),new il(e._repo,e._path,i,!0)}};function RH(t){if(t==="$key")throw new Error('orderByChild: "$key" is invalid. Use orderByKey() instead.');if(t==="$priority")throw new Error('orderByChild: "$priority" is invalid. Use orderByPriority() instead.');if(t==="$value")throw new Error('orderByChild: "$value" is invalid. Use orderByValue() instead.');return mb("orderByChild","path",t,!1),new Ww(t)}var zw=class extends sl{constructor(e,n){super(),this._value=e,this._key=n,this.type="equalTo"}_apply(e){if(rl("equalTo",this._value,e._path,!1),e._queryParams.hasStart())throw new Error("equalTo: Starting point was already set (by another call to startAt/startAfter or equalTo).");if(e._queryParams.hasEnd())throw new Error("equalTo: Ending point was already set (by another call to endAt/endBefore or equalTo).");return new Hw(this._value,this._key)._apply(new Vy(this._value,this._key)._apply(e))}};function NH(t,e){return hH("equalTo","key",e,!0),new zw(t,e)}function wH(t,...e){let n=Me(t);for(let r of e)n=r._apply(n);return n}jie(hi);qie(hi);var Goe="FIREBASE_DATABASE_EMULATOR_HOST",qw={},joe=!1;function Hoe(t,e,n,r){let i=e.lastIndexOf(":"),o=e.substring(0,i),s=_r(o);t.repoInfo_=new my(e,s,t.repoInfo_.namespace,t.repoInfo_.webSocketOnly,t.repoInfo_.nodeAdmin,t.repoInfo_.persistenceKey,t.repoInfo_.includeNamespaceInQueryParams,!0,n),r&&(t.authTokenProvider_=r)}function $oe(t,e,n,r,i){let o=r||t.options.databaseURL;o===void 0&&(t.options.projectId||Wo("Can't determine Firebase Database URL. Be sure to include a Project ID when calling firebase.initializeApp()."),un("Using default host for project ",t.options.projectId),o=`${t.options.projectId}-default-rtdb.firebaseio.com`);let s=fj(o,i),a=s.repoInfo,c,l;typeof process<"u"&&process.env&&(l=process.env[Goe]),l?(c=!0,o=`http://${l}?ns=${a.namespace}`,s=fj(o,i),a=s.repoInfo):c=!s.repoInfo.secure;let d=i&&c?new Bp(Bp.OWNER):new rw(t.name,t.options,e);_oe("Invalid Firebase Database URL",s),we(s.path)||Wo("Database URL must point to the root of a Firebase Database (not including a child path).");let h=zoe(a,t,d,new nw(t,n));return new Kw(h,t)}function Woe(t,e){let n=qw[e];(!n||n[t.key]!==t)&&Wo(`Database ${e}(${t.repoInfo_}) has already been deleted.`),Moe(t),delete n[t.key]}function zoe(t,e,n,r){let i=qw[e.name];i||(i={},qw[e.name]=i);let o=i[t.toURLString()];return o&&Wo("Database initialized multiple times. Please make sure the format of the database URL matches with each database() call."),o=new Bw(t,joe,n,r),i[t.toURLString()]=o,o}var Kw=class{constructor(e,n){this._repoInternal=e,this.app=n,this.type="database",this._instanceStarted=!1}get _repo(){return this._instanceStarted||(voe(this._repoInternal,this.app.options.appId,this.app.options.databaseAuthVariableOverride),this._instanceStarted=!0),this._repoInternal}get _root(){return this._rootInternal||(this._rootInternal=new hi(this._repo,Ve())),this._rootInternal}_delete(){return this._rootInternal!==null&&(Woe(this._repo,this.app.name),this._repoInternal=null,this._rootInternal=null),Promise.resolve()}_checkNotDeleted(e){this._rootInternal===null&&Wo("Cannot call "+e+" on a deleted database.")}};function qoe(){xj.IS_TRANSPORT_INITIALIZED&&xn("Transport has already been initialized. Please call this function before calling ref or setting up a listener")}function vb(){qoe(),yd.forceDisallow(),Ey.forceAllow()}function xd(t=er(),e){let n=Xi(t,"database").getImmediate({identifier:e});if(!n._instanceStarted){let r=ud("database");r&&bH(n,...r)}return n}function bH(t,e,n,r={}){t=Me(t),t._checkNotDeleted("useEmulator");let i=`${e}:${n}`,o=t._repoInternal;if(t._instanceStarted){if(i===t._repoInternal.repoInfo_.host&&oi(r,o.repoInfo_.emulatorOptions))return;Wo("connectDatabaseEmulator() cannot initialize or alter the emulator configuration after the database instance has started.")}let s;if(o.repoInfo_.nodeAdmin)r.mockUserToken&&Wo('mockUserToken is not supported by the Admin SDK. For client access with mock users, please use the "firebase" package instead of "firebase-admin".'),s=new Bp(Bp.OWNER);else if(r.mockUserToken){let a=typeof r.mockUserToken=="string"?r.mockUserToken:FT(r.mockUserToken,t.app.options.projectId);s=new Bp(a)}_r(e)&&(ks(e),Fc("Database",!0)),Hoe(o,i,r,s)}function Koe(t){cre(Bs),$n(new Xt("database",(e,{instanceIdentifier:n})=>{let r=e.getProvider("app").getImmediate(),i=e.getProvider("auth-internal"),o=e.getProvider("app-check-internal");return $oe(r,i,o,n)},"PUBLIC").setMultipleInstances(!0)),Ge(k2,F2,t),Ge(k2,F2,"esm2017")}var Yw=class{constructor(e,n){this.committed=e,this.snapshot=n}toJSON(){return{committed:this.committed,snapshot:this.snapshot.toJSON()}}};function OH(t,e,n){var r;if(t=Me(t),Xs("Reference.transaction",t._path),t.key===".length"||t.key===".keys")throw"Reference.transaction failed: "+t.key+" is a read-only object.";let i=(r=n?.applyLocally)!==null&&r!==void 0?r:!0,o=new cn,s=(c,l,d)=>{let h=null;c?o.reject(c):(h=new bd(d,new hi(t._repo,t._path),ft),o.resolve(new Yw(l,h)))},a=ug(t,()=>{});return Loe(t._repo,t._path,e,s,a,i),o.promise}tb.prototype.simpleListen=function(t,e){this.sendRequest("q",{p:t},e)};tb.prototype.echo=function(t,e){this.sendRequest("echo",{d:t},e)};Koe();var ul,hn=(function(t){return t.added="child_added",t.removed="child_removed",t.changed="child_changed",t.moved="child_moved",t.value="value",t})(hn||{}),Yoe=Object.freeze((ul={},ul[hn.added]=tI,ul[hn.removed]=rI,ul[hn.changed]=nI,ul[hn.moved]=Ib,ul[hn.value]=ug,ul));function sI(t,e){return new fe(function(n){var r=Yoe[e](t,function(i,o){n.next({snapshot:i,prevKey:o,event:e})},n.error.bind(n));return{unsubscribe:function(){iI(t,e,r)}}}).pipe(cS(0))}var oI=function(){return oI=Object.assign||function(e){for(var n,r=1,i=arguments.length;r<i;r++){n=arguments[r];for(var o in n)Object.prototype.hasOwnProperty.call(n,o)&&(e[o]=n[o])}return e},oI.apply(this,arguments)};function Sb(t,e,n){if(n||arguments.length===2)for(var r=0,i=e.length,o;r<i;r++)(o||!(r in e))&&(o||(o=Array.prototype.slice.call(e,0,r)),o[r]=e[r]);return t.concat(o||Array.prototype.slice.call(e))}function MH(t){return(t==null||t.length===0)&&(t=[hn.added,hn.removed,hn.changed,hn.moved]),t}function LH(t,e){return e===void 0&&(e={}),sI(t,hn.value).pipe(De(function(n){return Ab(n,e)}))}function Ab(t,e){var n;e===void 0&&(e={});var r=t.snapshot.val();return!t.snapshot.exists()||typeof r!="object"?r:oI(oI({},r),e.keyField?(n={},n[e.keyField]=t.snapshot.key,n):null)}function PH(t,e){e===void 0&&(e={});var n=MH(e.events),r=n.map(function(i){return sI(t,i)});return gs.apply(void 0,r)}function Xoe(t){return cr(eI(t)).pipe(De(function(e){var n=hn.value;return{snapshot:e,prevKey:null,event:n}}))}function xH(t,e){e===void 0&&(e={});var n=MH(e.events);return Xoe(t).pipe(Mr(function(r){var i=[lt(r)];return n.forEach(function(o){i.push(sI(t,o))}),gs.apply(void 0,i).pipe(Zm(Joe,[]))}),yo())}function kH(t,e){return e===void 0&&(e={}),xH(t).pipe(De(function(n){return n.map(function(r){return Ab(r,e)})}))}function FH(t,e){for(var n=t.length,r=0;r<n;r++)if(t[r].snapshot.key===e)return r;return-1}function Qoe(t,e){if(e==null)return 0;var n=FH(t,e);return n===-1?t.length:n+1}function Joe(t,e){var n=e.snapshot,r=e.prevKey,i=e.event,o=n.key,s=FH(t,o),a=Qoe(t,r||void 0);switch(i){case hn.value:if(e.snapshot&&e.snapshot.exists()){var c=null;e.snapshot.forEach(function(h){var f={snapshot:h,event:hn.value,prevKey:c};return c=h.key,t=Sb(Sb([],t,!0),[f],!1),!1})}return t;case hn.added:if(s>-1){var l=t[s-1];(l&&l.snapshot.key||null)!==r&&(t=t.filter(function(h){return h.snapshot.key!==n.key}),t.splice(a,0,e))}else{if(r==null)return Sb([e],t,!0);t=t.slice(),t.splice(a,0,e)}return t;case hn.removed:return t.filter(function(h){return h.snapshot.key!==n.key});case hn.changed:return t.map(function(h){return h.snapshot.key===o?e:h});case hn.moved:if(s>-1){var d=t.splice(s,1)[0];return t=t.slice(),t.splice(a,0,d),t}return t;default:return t}}var dg=class{constructor(e){return e}},UH="database",Cb=class{constructor(){return Go(UH)}};var Db=new z("angularfire2.database-instances");function Zoe(t,e){let n=Gs(UH,t,e);return n&&new dg(n)}function ese(t){return(e,n)=>{let r=e.runOutsideAngular(()=>t(n));return new dg(r)}}var tse={provide:Cb,deps:[[new zt,Db]]},nse={provide:dg,useFactory:Zoe,deps:[[new zt,Db],ci]};function wFe(t,...e){return Ge("angularfire",si.full,"rtdb"),Xn([nse,tse,{provide:Db,useFactory:ese(t),multi:!0,deps:[Ae,ze,ai,jo,[new zt,$c],[new zt,Hs],...e]}])}var VH=ue(kH,!0);var BH=ue(LH,!0),GH=ue(PH,!0);var bFe=ue(NH,!0,2);var hg=ue(eI,!0),OFe=ue(xd,!0);var MFe=ue(DH,!0,2),jH=ue(iI,!0),HH=ue(tI,!0),$H=ue(nI,!0);var WH=ue(rI,!0),zH=ue(IH,!0),Rb=ue(ug,!0),LFe=ue(RH,!0,2);var qH=ue(vH,!0,2),KH=ue(wH,!0,2),kd=ue(yH,!0,2);var YH=ue(SH,!0,2),XH=ue(OH,!0),QH=ue(Zy,!0,2);var PFe=ue(CH,!0,2),JH=ue(AH,!0,2);var ZH=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},e$={};var zo,Nb;(function(){var t;function e(C,v){function A(){}A.prototype=v.prototype,C.D=v.prototype,C.prototype=new A,C.prototype.constructor=C,C.C=function(R,N,O){for(var D=Array(arguments.length-2),Vn=2;Vn<arguments.length;Vn++)D[Vn-2]=arguments[Vn];return v.prototype[N].apply(R,D)}}function n(){this.blockSize=-1}function r(){this.blockSize=-1,this.blockSize=64,this.g=Array(4),this.B=Array(this.blockSize),this.o=this.h=0,this.s()}e(r,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};function i(C,v,A){A||(A=0);var R=Array(16);if(typeof v=="string")for(var N=0;16>N;++N)R[N]=v.charCodeAt(A++)|v.charCodeAt(A++)<<8|v.charCodeAt(A++)<<16|v.charCodeAt(A++)<<24;else for(N=0;16>N;++N)R[N]=v[A++]|v[A++]<<8|v[A++]<<16|v[A++]<<24;v=C.g[0],A=C.g[1],N=C.g[2];var O=C.g[3],D=v+(O^A&(N^O))+R[0]+3614090360&4294967295;v=A+(D<<7&4294967295|D>>>25),D=O+(N^v&(A^N))+R[1]+3905402710&4294967295,O=v+(D<<12&4294967295|D>>>20),D=N+(A^O&(v^A))+R[2]+606105819&4294967295,N=O+(D<<17&4294967295|D>>>15),D=A+(v^N&(O^v))+R[3]+3250441966&4294967295,A=N+(D<<22&4294967295|D>>>10),D=v+(O^A&(N^O))+R[4]+4118548399&4294967295,v=A+(D<<7&4294967295|D>>>25),D=O+(N^v&(A^N))+R[5]+1200080426&4294967295,O=v+(D<<12&4294967295|D>>>20),D=N+(A^O&(v^A))+R[6]+2821735955&4294967295,N=O+(D<<17&4294967295|D>>>15),D=A+(v^N&(O^v))+R[7]+4249261313&4294967295,A=N+(D<<22&4294967295|D>>>10),D=v+(O^A&(N^O))+R[8]+1770035416&4294967295,v=A+(D<<7&4294967295|D>>>25),D=O+(N^v&(A^N))+R[9]+2336552879&4294967295,O=v+(D<<12&4294967295|D>>>20),D=N+(A^O&(v^A))+R[10]+4294925233&4294967295,N=O+(D<<17&4294967295|D>>>15),D=A+(v^N&(O^v))+R[11]+2304563134&4294967295,A=N+(D<<22&4294967295|D>>>10),D=v+(O^A&(N^O))+R[12]+1804603682&4294967295,v=A+(D<<7&4294967295|D>>>25),D=O+(N^v&(A^N))+R[13]+4254626195&4294967295,O=v+(D<<12&4294967295|D>>>20),D=N+(A^O&(v^A))+R[14]+2792965006&4294967295,N=O+(D<<17&4294967295|D>>>15),D=A+(v^N&(O^v))+R[15]+1236535329&4294967295,A=N+(D<<22&4294967295|D>>>10),D=v+(N^O&(A^N))+R[1]+4129170786&4294967295,v=A+(D<<5&4294967295|D>>>27),D=O+(A^N&(v^A))+R[6]+3225465664&4294967295,O=v+(D<<9&4294967295|D>>>23),D=N+(v^A&(O^v))+R[11]+643717713&4294967295,N=O+(D<<14&4294967295|D>>>18),D=A+(O^v&(N^O))+R[0]+3921069994&4294967295,A=N+(D<<20&4294967295|D>>>12),D=v+(N^O&(A^N))+R[5]+3593408605&4294967295,v=A+(D<<5&4294967295|D>>>27),D=O+(A^N&(v^A))+R[10]+38016083&4294967295,O=v+(D<<9&4294967295|D>>>23),D=N+(v^A&(O^v))+R[15]+3634488961&4294967295,N=O+(D<<14&4294967295|D>>>18),D=A+(O^v&(N^O))+R[4]+3889429448&4294967295,A=N+(D<<20&4294967295|D>>>12),D=v+(N^O&(A^N))+R[9]+568446438&4294967295,v=A+(D<<5&4294967295|D>>>27),D=O+(A^N&(v^A))+R[14]+3275163606&4294967295,O=v+(D<<9&4294967295|D>>>23),D=N+(v^A&(O^v))+R[3]+4107603335&4294967295,N=O+(D<<14&4294967295|D>>>18),D=A+(O^v&(N^O))+R[8]+1163531501&4294967295,A=N+(D<<20&4294967295|D>>>12),D=v+(N^O&(A^N))+R[13]+2850285829&4294967295,v=A+(D<<5&4294967295|D>>>27),D=O+(A^N&(v^A))+R[2]+4243563512&4294967295,O=v+(D<<9&4294967295|D>>>23),D=N+(v^A&(O^v))+R[7]+1735328473&4294967295,N=O+(D<<14&4294967295|D>>>18),D=A+(O^v&(N^O))+R[12]+2368359562&4294967295,A=N+(D<<20&4294967295|D>>>12),D=v+(A^N^O)+R[5]+4294588738&4294967295,v=A+(D<<4&4294967295|D>>>28),D=O+(v^A^N)+R[8]+2272392833&4294967295,O=v+(D<<11&4294967295|D>>>21),D=N+(O^v^A)+R[11]+1839030562&4294967295,N=O+(D<<16&4294967295|D>>>16),D=A+(N^O^v)+R[14]+4259657740&4294967295,A=N+(D<<23&4294967295|D>>>9),D=v+(A^N^O)+R[1]+2763975236&4294967295,v=A+(D<<4&4294967295|D>>>28),D=O+(v^A^N)+R[4]+1272893353&4294967295,O=v+(D<<11&4294967295|D>>>21),D=N+(O^v^A)+R[7]+4139469664&4294967295,N=O+(D<<16&4294967295|D>>>16),D=A+(N^O^v)+R[10]+3200236656&4294967295,A=N+(D<<23&4294967295|D>>>9),D=v+(A^N^O)+R[13]+681279174&4294967295,v=A+(D<<4&4294967295|D>>>28),D=O+(v^A^N)+R[0]+3936430074&4294967295,O=v+(D<<11&4294967295|D>>>21),D=N+(O^v^A)+R[3]+3572445317&4294967295,N=O+(D<<16&4294967295|D>>>16),D=A+(N^O^v)+R[6]+76029189&4294967295,A=N+(D<<23&4294967295|D>>>9),D=v+(A^N^O)+R[9]+3654602809&4294967295,v=A+(D<<4&4294967295|D>>>28),D=O+(v^A^N)+R[12]+3873151461&4294967295,O=v+(D<<11&4294967295|D>>>21),D=N+(O^v^A)+R[15]+530742520&4294967295,N=O+(D<<16&4294967295|D>>>16),D=A+(N^O^v)+R[2]+3299628645&4294967295,A=N+(D<<23&4294967295|D>>>9),D=v+(N^(A|~O))+R[0]+4096336452&4294967295,v=A+(D<<6&4294967295|D>>>26),D=O+(A^(v|~N))+R[7]+1126891415&4294967295,O=v+(D<<10&4294967295|D>>>22),D=N+(v^(O|~A))+R[14]+2878612391&4294967295,N=O+(D<<15&4294967295|D>>>17),D=A+(O^(N|~v))+R[5]+4237533241&4294967295,A=N+(D<<21&4294967295|D>>>11),D=v+(N^(A|~O))+R[12]+1700485571&4294967295,v=A+(D<<6&4294967295|D>>>26),D=O+(A^(v|~N))+R[3]+2399980690&4294967295,O=v+(D<<10&4294967295|D>>>22),D=N+(v^(O|~A))+R[10]+4293915773&4294967295,N=O+(D<<15&4294967295|D>>>17),D=A+(O^(N|~v))+R[1]+2240044497&4294967295,A=N+(D<<21&4294967295|D>>>11),D=v+(N^(A|~O))+R[8]+1873313359&4294967295,v=A+(D<<6&4294967295|D>>>26),D=O+(A^(v|~N))+R[15]+4264355552&4294967295,O=v+(D<<10&4294967295|D>>>22),D=N+(v^(O|~A))+R[6]+2734768916&4294967295,N=O+(D<<15&4294967295|D>>>17),D=A+(O^(N|~v))+R[13]+1309151649&4294967295,A=N+(D<<21&4294967295|D>>>11),D=v+(N^(A|~O))+R[4]+4149444226&4294967295,v=A+(D<<6&4294967295|D>>>26),D=O+(A^(v|~N))+R[11]+3174756917&4294967295,O=v+(D<<10&4294967295|D>>>22),D=N+(v^(O|~A))+R[2]+718787259&4294967295,N=O+(D<<15&4294967295|D>>>17),D=A+(O^(N|~v))+R[9]+3951481745&4294967295,C.g[0]=C.g[0]+v&4294967295,C.g[1]=C.g[1]+(N+(D<<21&4294967295|D>>>11))&4294967295,C.g[2]=C.g[2]+N&4294967295,C.g[3]=C.g[3]+O&4294967295}r.prototype.u=function(C,v){v===void 0&&(v=C.length);for(var A=v-this.blockSize,R=this.B,N=this.h,O=0;O<v;){if(N==0)for(;O<=A;)i(this,C,O),O+=this.blockSize;if(typeof C=="string"){for(;O<v;)if(R[N++]=C.charCodeAt(O++),N==this.blockSize){i(this,R),N=0;break}}else for(;O<v;)if(R[N++]=C[O++],N==this.blockSize){i(this,R),N=0;break}}this.h=N,this.o+=v},r.prototype.v=function(){var C=Array((56>this.h?this.blockSize:2*this.blockSize)-this.h);C[0]=128;for(var v=1;v<C.length-8;++v)C[v]=0;var A=8*this.o;for(v=C.length-8;v<C.length;++v)C[v]=A&255,A/=256;for(this.u(C),C=Array(16),v=A=0;4>v;++v)for(var R=0;32>R;R+=8)C[A++]=this.g[v]>>>R&255;return C};function o(C,v){var A=a;return Object.prototype.hasOwnProperty.call(A,C)?A[C]:A[C]=v(C)}function s(C,v){this.h=v;for(var A=[],R=!0,N=C.length-1;0<=N;N--){var O=C[N]|0;R&&O==v||(A[N]=O,R=!1)}this.g=A}var a={};function c(C){return-128<=C&&128>C?o(C,function(v){return new s([v|0],0>v?-1:0)}):new s([C|0],0>C?-1:0)}function l(C){if(isNaN(C)||!isFinite(C))return h;if(0>C)return S(l(-C));for(var v=[],A=1,R=0;C>=A;R++)v[R]=C/A|0,A*=4294967296;return new s(v,0)}function d(C,v){if(C.length==0)throw Error("number format error: empty string");if(v=v||10,2>v||36<v)throw Error("radix out of range: "+v);if(C.charAt(0)=="-")return S(d(C.substring(1),v));if(0<=C.indexOf("-"))throw Error('number format error: interior "-" character');for(var A=l(Math.pow(v,8)),R=h,N=0;N<C.length;N+=8){var O=Math.min(8,C.length-N),D=parseInt(C.substring(N,N+O),v);8>O?(O=l(Math.pow(v,O)),R=R.j(O).add(l(D))):(R=R.j(A),R=R.add(l(D)))}return R}var h=c(0),f=c(1),g=c(16777216);t=s.prototype,t.m=function(){if(I(this))return-S(this).m();for(var C=0,v=1,A=0;A<this.g.length;A++){var R=this.i(A);C+=(0<=R?R:4294967296+R)*v,v*=4294967296}return C},t.toString=function(C){if(C=C||10,2>C||36<C)throw Error("radix out of range: "+C);if(E(this))return"0";if(I(this))return"-"+S(this).toString(C);for(var v=l(Math.pow(C,6)),A=this,R="";;){var N=oe(A,v).g;A=L(A,N.j(v));var O=((0<A.g.length?A.g[0]:A.h)>>>0).toString(C);if(A=N,E(A))return O+R;for(;6>O.length;)O="0"+O;R=O+R}},t.i=function(C){return 0>C?0:C<this.g.length?this.g[C]:this.h};function E(C){if(C.h!=0)return!1;for(var v=0;v<C.g.length;v++)if(C.g[v]!=0)return!1;return!0}function I(C){return C.h==-1}t.l=function(C){return C=L(this,C),I(C)?-1:E(C)?0:1};function S(C){for(var v=C.g.length,A=[],R=0;R<v;R++)A[R]=~C.g[R];return new s(A,~C.h).add(f)}t.abs=function(){return I(this)?S(this):this},t.add=function(C){for(var v=Math.max(this.g.length,C.g.length),A=[],R=0,N=0;N<=v;N++){var O=R+(this.i(N)&65535)+(C.i(N)&65535),D=(O>>>16)+(this.i(N)>>>16)+(C.i(N)>>>16);R=D>>>16,O&=65535,D&=65535,A[N]=D<<16|O}return new s(A,A[A.length-1]&-2147483648?-1:0)};function L(C,v){return C.add(S(v))}t.j=function(C){if(E(this)||E(C))return h;if(I(this))return I(C)?S(this).j(S(C)):S(S(this).j(C));if(I(C))return S(this.j(S(C)));if(0>this.l(g)&&0>C.l(g))return l(this.m()*C.m());for(var v=this.g.length+C.g.length,A=[],R=0;R<2*v;R++)A[R]=0;for(R=0;R<this.g.length;R++)for(var N=0;N<C.g.length;N++){var O=this.i(R)>>>16,D=this.i(R)&65535,Vn=C.i(N)>>>16,es=C.i(N)&65535;A[2*R+2*N]+=D*es,V(A,2*R+2*N),A[2*R+2*N+1]+=O*es,V(A,2*R+2*N+1),A[2*R+2*N+1]+=D*Vn,V(A,2*R+2*N+1),A[2*R+2*N+2]+=O*Vn,V(A,2*R+2*N+2)}for(R=0;R<v;R++)A[R]=A[2*R+1]<<16|A[2*R];for(R=v;R<2*v;R++)A[R]=0;return new s(A,0)};function V(C,v){for(;(C[v]&65535)!=C[v];)C[v+1]+=C[v]>>>16,C[v]&=65535,v++}function K(C,v){this.g=C,this.h=v}function oe(C,v){if(E(v))throw Error("division by zero");if(E(C))return new K(h,h);if(I(C))return v=oe(S(C),v),new K(S(v.g),S(v.h));if(I(v))return v=oe(C,S(v)),new K(S(v.g),v.h);if(30<C.g.length){if(I(C)||I(v))throw Error("slowDivide_ only works with positive integers.");for(var A=f,R=v;0>=R.l(C);)A=ge(A),R=ge(R);var N=te(A,1),O=te(R,1);for(R=te(R,2),A=te(A,2);!E(R);){var D=O.add(R);0>=D.l(C)&&(N=N.add(A),O=D),R=te(R,1),A=te(A,1)}return v=L(C,N.j(v)),new K(N,v)}for(N=h;0<=C.l(v);){for(A=Math.max(1,Math.floor(C.m()/v.m())),R=Math.ceil(Math.log(A)/Math.LN2),R=48>=R?1:Math.pow(2,R-48),O=l(A),D=O.j(v);I(D)||0<D.l(C);)A-=R,O=l(A),D=O.j(v);E(O)&&(O=f),N=N.add(O),C=L(C,D)}return new K(N,C)}t.A=function(C){return oe(this,C).h},t.and=function(C){for(var v=Math.max(this.g.length,C.g.length),A=[],R=0;R<v;R++)A[R]=this.i(R)&C.i(R);return new s(A,this.h&C.h)},t.or=function(C){for(var v=Math.max(this.g.length,C.g.length),A=[],R=0;R<v;R++)A[R]=this.i(R)|C.i(R);return new s(A,this.h|C.h)},t.xor=function(C){for(var v=Math.max(this.g.length,C.g.length),A=[],R=0;R<v;R++)A[R]=this.i(R)^C.i(R);return new s(A,this.h^C.h)};function ge(C){for(var v=C.g.length+1,A=[],R=0;R<v;R++)A[R]=C.i(R)<<1|C.i(R-1)>>>31;return new s(A,C.h)}function te(C,v){var A=v>>5;v%=32;for(var R=C.g.length-A,N=[],O=0;O<R;O++)N[O]=0<v?C.i(O+A)>>>v|C.i(O+A+1)<<32-v:C.i(O+A);return new s(N,C.h)}r.prototype.digest=r.prototype.v,r.prototype.reset=r.prototype.s,r.prototype.update=r.prototype.u,Nb=e$.Md5=r,s.prototype.add=s.prototype.add,s.prototype.multiply=s.prototype.j,s.prototype.modulo=s.prototype.A,s.prototype.compare=s.prototype.l,s.prototype.toNumber=s.prototype.m,s.prototype.toString=s.prototype.toString,s.prototype.getBits=s.prototype.i,s.fromNumber=l,s.fromString=d,zo=e$.Integer=s}).apply(typeof ZH<"u"?ZH:typeof self<"u"?self:typeof window<"u"?window:{});var aI=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},qo={};var wb,rse,Fd,bb,fg,cI,Ob,Mb,Lb;(function(){var t,e=typeof Object.defineProperties=="function"?Object.defineProperty:function(u,p,m){return u==Array.prototype||u==Object.prototype||(u[p]=m.value),u};function n(u){u=[typeof globalThis=="object"&&globalThis,u,typeof window=="object"&&window,typeof self=="object"&&self,typeof aI=="object"&&aI];for(var p=0;p<u.length;++p){var m=u[p];if(m&&m.Math==Math)return m}throw Error("Cannot find global object")}var r=n(this);function i(u,p){if(p)e:{var m=r;u=u.split(".");for(var _=0;_<u.length-1;_++){var b=u[_];if(!(b in m))break e;m=m[b]}u=u[u.length-1],_=m[u],p=p(_),p!=_&&p!=null&&e(m,u,{configurable:!0,writable:!0,value:p})}}function o(u,p){u instanceof String&&(u+="");var m=0,_=!1,b={next:function(){if(!_&&m<u.length){var k=m++;return{value:p(k,u[k]),done:!1}}return _=!0,{done:!0,value:void 0}}};return b[Symbol.iterator]=function(){return b},b}i("Array.prototype.values",function(u){return u||function(){return o(this,function(p,m){return m})}});var s=s||{},a=this||self;function c(u){var p=typeof u;return p=p!="object"?p:u?Array.isArray(u)?"array":p:"null",p=="array"||p=="object"&&typeof u.length=="number"}function l(u){var p=typeof u;return p=="object"&&u!=null||p=="function"}function d(u,p,m){return u.call.apply(u.bind,arguments)}function h(u,p,m){if(!u)throw Error();if(2<arguments.length){var _=Array.prototype.slice.call(arguments,2);return function(){var b=Array.prototype.slice.call(arguments);return Array.prototype.unshift.apply(b,_),u.apply(p,b)}}return function(){return u.apply(p,arguments)}}function f(u,p,m){return f=Function.prototype.bind&&Function.prototype.bind.toString().indexOf("native code")!=-1?d:h,f.apply(null,arguments)}function g(u,p){var m=Array.prototype.slice.call(arguments,1);return function(){var _=m.slice();return _.push.apply(_,arguments),u.apply(this,_)}}function E(u,p){function m(){}m.prototype=p.prototype,u.aa=p.prototype,u.prototype=new m,u.prototype.constructor=u,u.Qb=function(_,b,k){for(var X=Array(arguments.length-2),it=2;it<arguments.length;it++)X[it-2]=arguments[it];return p.prototype[b].apply(_,X)}}function I(u){let p=u.length;if(0<p){let m=Array(p);for(let _=0;_<p;_++)m[_]=u[_];return m}return[]}function S(u,p){for(let m=1;m<arguments.length;m++){let _=arguments[m];if(c(_)){let b=u.length||0,k=_.length||0;u.length=b+k;for(let X=0;X<k;X++)u[b+X]=_[X]}else u.push(_)}}class L{constructor(p,m){this.i=p,this.j=m,this.h=0,this.g=null}get(){let p;return 0<this.h?(this.h--,p=this.g,this.g=p.next,p.next=null):p=this.i(),p}}function V(u){return/^[\s\xa0]*$/.test(u)}function K(){var u=a.navigator;return u&&(u=u.userAgent)?u:""}function oe(u){return oe[" "](u),u}oe[" "]=function(){};var ge=K().indexOf("Gecko")!=-1&&!(K().toLowerCase().indexOf("webkit")!=-1&&K().indexOf("Edge")==-1)&&!(K().indexOf("Trident")!=-1||K().indexOf("MSIE")!=-1)&&K().indexOf("Edge")==-1;function te(u,p,m){for(let _ in u)p.call(m,u[_],_,u)}function C(u,p){for(let m in u)p.call(void 0,u[m],m,u)}function v(u){let p={};for(let m in u)p[m]=u[m];return p}let A="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" ");function R(u,p){let m,_;for(let b=1;b<arguments.length;b++){_=arguments[b];for(m in _)u[m]=_[m];for(let k=0;k<A.length;k++)m=A[k],Object.prototype.hasOwnProperty.call(_,m)&&(u[m]=_[m])}}function N(u){var p=1;u=u.split(":");let m=[];for(;0<p&&u.length;)m.push(u.shift()),p--;return u.length&&m.push(u.join(":")),m}function O(u){a.setTimeout(()=>{throw u},0)}function D(){var u=ns;let p=null;return u.g&&(p=u.g,u.g=u.g.next,u.g||(u.h=null),p.next=null),p}class Vn{constructor(){this.h=this.g=null}add(p,m){let _=es.get();_.set(p,m),this.h?this.h.next=_:this.g=_,this.h=_}}var es=new L(()=>new ts,u=>u.reset());class ts{constructor(){this.next=this.g=this.h=null}set(p,m){this.h=p,this.g=m,this.next=null}reset(){this.next=this.g=this.h=null}}let Da,Ra=!1,ns=new Vn,Ul=()=>{let u=a.Promise.resolve(void 0);Da=()=>{u.then(hm)}};var hm=()=>{for(var u;u=D();){try{u.h.call(u.g)}catch(m){O(m)}var p=es;p.j(u),100>p.h&&(p.h++,u.next=p.g,p.g=u)}Ra=!1};function _i(){this.s=this.s,this.C=this.C}_i.prototype.s=!1,_i.prototype.ma=function(){this.s||(this.s=!0,this.N())},_i.prototype.N=function(){if(this.C)for(;this.C.length;)this.C.shift()()};function nn(u,p){this.type=u,this.g=this.target=p,this.defaultPrevented=!1}nn.prototype.h=function(){this.defaultPrevented=!0};var kv=(function(){if(!a.addEventListener||!Object.defineProperty)return!1;var u=!1,p=Object.defineProperty({},"passive",{get:function(){u=!0}});try{let m=()=>{};a.addEventListener("test",m,p),a.removeEventListener("test",m,p)}catch{}return u})();function He(u,p){if(nn.call(this,u?u.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,u){var m=this.type=u.type,_=u.changedTouches&&u.changedTouches.length?u.changedTouches[0]:null;if(this.target=u.target||u.srcElement,this.g=p,p=u.relatedTarget){if(ge){e:{try{oe(p.nodeName);var b=!0;break e}catch{}b=!1}b||(p=null)}}else m=="mouseover"?p=u.fromElement:m=="mouseout"&&(p=u.toElement);this.relatedTarget=p,_?(this.clientX=_.clientX!==void 0?_.clientX:_.pageX,this.clientY=_.clientY!==void 0?_.clientY:_.pageY,this.screenX=_.screenX||0,this.screenY=_.screenY||0):(this.clientX=u.clientX!==void 0?u.clientX:u.pageX,this.clientY=u.clientY!==void 0?u.clientY:u.pageY,this.screenX=u.screenX||0,this.screenY=u.screenY||0),this.button=u.button,this.key=u.key||"",this.ctrlKey=u.ctrlKey,this.altKey=u.altKey,this.shiftKey=u.shiftKey,this.metaKey=u.metaKey,this.pointerId=u.pointerId||0,this.pointerType=typeof u.pointerType=="string"?u.pointerType:Fv[u.pointerType]||"",this.state=u.state,this.i=u,u.defaultPrevented&&He.aa.h.call(this)}}E(He,nn);var Fv={2:"touch",3:"pen",4:"mouse"};He.prototype.h=function(){He.aa.h.call(this);var u=this.i;u.preventDefault?u.preventDefault():u.returnValue=!1};var Na="closure_listenable_"+(1e6*Math.random()|0),Uv=0;function Vv(u,p,m,_,b){this.listener=u,this.proxy=null,this.src=p,this.type=m,this.capture=!!_,this.ha=b,this.key=++Uv,this.da=this.fa=!1}function Vl(u){u.da=!0,u.listener=null,u.proxy=null,u.src=null,u.ha=null}function Bl(u){this.src=u,this.g={},this.h=0}Bl.prototype.add=function(u,p,m,_,b){var k=u.toString();u=this.g[k],u||(u=this.g[k]=[],this.h++);var X=wh(u,p,_,b);return-1<X?(p=u[X],m||(p.fa=!1)):(p=new Vv(p,this.src,k,!!_,b),p.fa=m,u.push(p)),p};function Gl(u,p){var m=p.type;if(m in u.g){var _=u.g[m],b=Array.prototype.indexOf.call(_,p,void 0),k;(k=0<=b)&&Array.prototype.splice.call(_,b,1),k&&(Vl(p),u.g[m].length==0&&(delete u.g[m],u.h--))}}function wh(u,p,m,_){for(var b=0;b<u.length;++b){var k=u[b];if(!k.da&&k.listener==p&&k.capture==!!m&&k.ha==_)return b}return-1}var jl="closure_lm_"+(1e6*Math.random()|0),Je={};function Hl(u,p,m,_,b){if(_&&_.once)return sr(u,p,m,_,b);if(Array.isArray(p)){for(var k=0;k<p.length;k++)Hl(u,p[k],m,_,b);return null}return m=zl(m),u&&u[Na]?u.K(p,m,l(_)?!!_.capture:!!_,b):rt(u,p,m,!1,_,b)}function rt(u,p,m,_,b,k){if(!p)throw Error("Invalid event type");var X=l(b)?!!b.capture:!!b,it=wa(u);if(it||(u[jl]=it=new Bl(u)),m=it.add(p,m,_,X,k),m.proxy)return m;if(_=bh(),m.proxy=_,_.src=u,_.listener=m,u.addEventListener)kv||(b=X),b===void 0&&(b=!1),u.addEventListener(p.toString(),_,b);else if(u.attachEvent)u.attachEvent(Wr(p.toString()),_);else if(u.addListener&&u.removeListener)u.addListener(_);else throw Error("addEventListener and attachEvent are unavailable.");return m}function bh(){function u(m){return p.call(u.src,u.listener,m)}let p=fm;return u}function sr(u,p,m,_,b){if(Array.isArray(p)){for(var k=0;k<p.length;k++)sr(u,p[k],m,_,b);return null}return m=zl(m),u&&u[Na]?u.L(p,m,l(_)?!!_.capture:!!_,b):rt(u,p,m,!0,_,b)}function rs(u,p,m,_,b){if(Array.isArray(p))for(var k=0;k<p.length;k++)rs(u,p[k],m,_,b);else _=l(_)?!!_.capture:!!_,m=zl(m),u&&u[Na]?(u=u.i,p=String(p).toString(),p in u.g&&(k=u.g[p],m=wh(k,m,_,b),-1<m&&(Vl(k[m]),Array.prototype.splice.call(k,m,1),k.length==0&&(delete u.g[p],u.h--)))):u&&(u=wa(u))&&(p=u.g[p.toString()],u=-1,p&&(u=wh(p,m,_,b)),(m=-1<u?p[u]:null)&&$l(m))}function $l(u){if(typeof u!="number"&&u&&!u.da){var p=u.src;if(p&&p[Na])Gl(p.i,u);else{var m=u.type,_=u.proxy;p.removeEventListener?p.removeEventListener(m,_,u.capture):p.detachEvent?p.detachEvent(Wr(m),_):p.addListener&&p.removeListener&&p.removeListener(_),(m=wa(p))?(Gl(m,u),m.h==0&&(m.src=null,p[jl]=null)):Vl(u)}}}function Wr(u){return u in Je?Je[u]:Je[u]="on"+u}function fm(u,p){if(u.da)u=!0;else{p=new He(p,this);var m=u.listener,_=u.ha||u.src;u.fa&&$l(u),u=m.call(_,p)}return u}function wa(u){return u=u[jl],u instanceof Bl?u:null}var Wl="__closure_events_fn_"+(1e9*Math.random()>>>0);function zl(u){return typeof u=="function"?u:(u[Wl]||(u[Wl]=function(p){return u.handleEvent(p)}),u[Wl])}function dt(){_i.call(this),this.i=new Bl(this),this.M=this,this.F=null}E(dt,_i),dt.prototype[Na]=!0,dt.prototype.removeEventListener=function(u,p,m,_){rs(this,u,p,m,_)};function yt(u,p){var m,_=u.F;if(_)for(m=[];_;_=_.F)m.push(_);if(u=u.M,_=p.type||p,typeof p=="string")p=new nn(p,u);else if(p instanceof nn)p.target=p.target||u;else{var b=p;p=new nn(_,u),R(p,b)}if(b=!0,m)for(var k=m.length-1;0<=k;k--){var X=p.g=m[k];b=wr(X,_,!0,p)&&b}if(X=p.g=u,b=wr(X,_,!0,p)&&b,b=wr(X,_,!1,p)&&b,m)for(k=0;k<m.length;k++)X=p.g=m[k],b=wr(X,_,!1,p)&&b}dt.prototype.N=function(){if(dt.aa.N.call(this),this.i){var u=this.i,p;for(p in u.g){for(var m=u.g[p],_=0;_<m.length;_++)Vl(m[_]);delete u.g[p],u.h--}}this.F=null},dt.prototype.K=function(u,p,m,_){return this.i.add(String(u),p,!1,m,_)},dt.prototype.L=function(u,p,m,_){return this.i.add(String(u),p,!0,m,_)};function wr(u,p,m,_){if(p=u.i.g[String(p)],!p)return!0;p=p.concat();for(var b=!0,k=0;k<p.length;++k){var X=p[k];if(X&&!X.da&&X.capture==m){var it=X.listener,gn=X.ha||X.src;X.fa&&Gl(u.i,X),b=it.call(gn,_)!==!1&&b}}return b&&!_.defaultPrevented}function ql(u,p,m){if(typeof u=="function")m&&(u=f(u,m));else if(u&&typeof u.handleEvent=="function")u=f(u.handleEvent,u);else throw Error("Invalid listener argument");return 2147483647<Number(p)?-1:a.setTimeout(u,p||0)}function ba(u){u.g=ql(()=>{u.g=null,u.i&&(u.i=!1,ba(u))},u.l);let p=u.h;u.h=null,u.m.apply(null,p)}class Kl extends _i{constructor(p,m){super(),this.m=p,this.l=m,this.h=null,this.i=!1,this.g=null}j(p){this.h=arguments,this.g?this.i=!0:ba(this)}N(){super.N(),this.g&&(a.clearTimeout(this.g),this.g=null,this.i=!1,this.h=null)}}function co(u){_i.call(this),this.h=u,this.g={}}E(co,_i);var lo=[];function Oa(u){te(u.g,function(p,m){this.g.hasOwnProperty(m)&&$l(p)},u),u.g={}}co.prototype.N=function(){co.aa.N.call(this),Oa(this)},co.prototype.handleEvent=function(){throw Error("EventHandler.handleEvent not implemented")};var is=a.JSON.stringify,pm=a.JSON.parse,gm=class{stringify(u){return a.JSON.stringify(u,void 0)}parse(u){return a.JSON.parse(u,void 0)}};function Yl(){}Yl.prototype.h=null;function Xl(u){return u.h||(u.h=u.i())}function Ql(){}var br={OPEN:"a",kb:"b",Ja:"c",wb:"d"};function Ti(){nn.call(this,"d")}E(Ti,nn);function Jl(){nn.call(this,"c")}E(Jl,nn);var yi={},Oh=null;function Ma(){return Oh=Oh||new dt}yi.La="serverreachability";function Mh(u){nn.call(this,yi.La,u)}E(Mh,nn);function Ii(u){let p=Ma();yt(p,new Mh(p))}yi.STAT_EVENT="statevent";function La(u,p){nn.call(this,yi.STAT_EVENT,u),this.stat=p}E(La,nn);function ct(u){let p=Ma();yt(p,new La(p,u))}yi.Ma="timingevent";function uo(u,p){nn.call(this,yi.Ma,u),this.size=p}E(uo,nn);function ho(u,p){if(typeof u!="function")throw Error("Fn must not be null and must be a function");return a.setTimeout(function(){u()},p)}function fo(){this.g=!0}fo.prototype.xa=function(){this.g=!1};function Bv(u,p,m,_,b,k){u.info(function(){if(u.g)if(k)for(var X="",it=k.split("&"),gn=0;gn<it.length;gn++){var Fe=it[gn].split("=");if(1<Fe.length){var vn=Fe[0];Fe=Fe[1];var Sn=vn.split("_");X=2<=Sn.length&&Sn[1]=="type"?X+(vn+"="+Fe+"&"):X+(vn+"=redacted&")}}else X=null;else X=k;return"XMLHTTP REQ ("+_+") [attempt "+b+"]: "+p+`
|
|
154
154
|
`+m+`
|
|
155
155
|
`+X})}function mm(u,p,m,_,b,k,X){u.info(function(){return"XMLHTTP RESP ("+_+") [ attempt "+b+"]: "+p+`
|
|
156
156
|
`+m+`
|
|
@@ -171,4 +171,4 @@ This typically indicates that your device does not have a healthy Internet conne
|
|
|
171
171
|
`+e.join(`
|
|
172
172
|
`)+`
|
|
173
173
|
)`}copy(e,n){let r=new t;return r.comparator=this.comparator,r.keyedMap=e,r.sortedSet=n,r}};var av=class{constructor(){this.fa=new pt(Z.comparator)}track(e){let n=e.doc.key,r=this.fa.get(n);r?e.type!==0&&r.type===3?this.fa=this.fa.insert(n,e):e.type===3&&r.type!==1?this.fa=this.fa.insert(n,{type:r.type,doc:e.doc}):e.type===2&&r.type===2?this.fa=this.fa.insert(n,{type:2,doc:e.doc}):e.type===2&&r.type===0?this.fa=this.fa.insert(n,{type:0,doc:e.doc}):e.type===1&&r.type===0?this.fa=this.fa.remove(n):e.type===1&&r.type===2?this.fa=this.fa.insert(n,{type:1,doc:r.doc}):e.type===0&&r.type===1?this.fa=this.fa.insert(n,{type:2,doc:e.doc}):re(63341,{At:e,ga:r}):this.fa=this.fa.insert(n,e)}pa(){let e=[];return this.fa.inorderTraversal((n,r)=>{e.push(r)}),e}},_h=class t{constructor(e,n,r,i,o,s,a,c,l){this.query=e,this.docs=n,this.oldDocs=r,this.docChanges=i,this.mutatedKeys=o,this.fromCache=s,this.syncStateChanged=a,this.excludesMetadataChanges=c,this.hasCachedResults=l}static fromInitialDocuments(e,n,r,i,o){let s=[];return n.forEach(a=>{s.push({type:0,doc:a})}),new t(e,n,sv.emptySet(n),s,r,i,!0,!1,o)}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)&&Cv(this.query,e.query)&&this.docs.isEqual(e.docs)&&this.oldDocs.isEqual(e.oldDocs)))return!1;let n=this.docChanges,r=e.docChanges;if(n.length!==r.length)return!1;for(let i=0;i<n.length;i++)if(n[i].type!==r[i].type||!n[i].doc.isEqual(r[i].doc))return!1;return!0}};var T0=class{constructor(){this.ya=void 0,this.wa=[]}Sa(){return this.wa.some(e=>e.ba())}},y0=class{constructor(){this.queries=o3(),this.onlineState="Unknown",this.Da=new Set}terminate(){(function(n,r){let i=se(n),o=i.queries;i.queries=o3(),o.forEach((s,a)=>{for(let c of a.wa)c.onError(r)})})(this,new j(x.ABORTED,"Firestore shutting down"))}};function o3(){return new pi(t=>J3(t),Cv)}function EM(t,e){return y(this,null,function*(){let n=se(t),r=3,i=e.query,o=n.queries.get(i);o?!o.Sa()&&e.ba()&&(r=2):(o=new T0,r=e.ba()?0:1);try{switch(r){case 0:o.ya=yield n.onListen(i,!0);break;case 1:o.ya=yield n.onListen(i,!1);break;case 2:yield n.onFirstRemoteStoreListen(i)}}catch(s){let a=mM(s,`Initialization of query '${Wd(e.query)}' failed`);return void e.onError(a)}n.queries.set(i,o),o.wa.push(e),e.va(n.onlineState),o.ya&&e.Ca(o.ya)&&TM(n)})}function _M(t,e){return y(this,null,function*(){let n=se(t),r=e.query,i=3,o=n.queries.get(r);if(o){let s=o.wa.indexOf(e);s>=0&&(o.wa.splice(s,1),o.wa.length===0?i=e.ba()?0:1:!o.Sa()&&e.ba()&&(i=2))}switch(i){case 0:return n.queries.delete(r),n.onUnlisten(r,!0);case 1:return n.queries.delete(r),n.onUnlisten(r,!1);case 2:return n.onLastRemoteStoreUnlisten(r);default:return}})}function Lae(t,e){let n=se(t),r=!1;for(let i of e){let o=i.query,s=n.queries.get(o);if(s){for(let a of s.wa)a.Ca(i)&&(r=!0);s.ya=i}}r&&TM(n)}function Pae(t,e,n){let r=se(t),i=r.queries.get(e);if(i)for(let o of i.wa)o.onError(n);r.queries.delete(e)}function TM(t){t.Da.forEach(e=>{e.next()})}var I0,s3;(s3=I0||(I0={})).Fa="default",s3.Cache="cache";var Jg=class{constructor(e,n,r){this.query=e,this.Ma=n,this.xa=!1,this.Oa=null,this.onlineState="Unknown",this.options=r||{}}Ca(e){if(!this.options.includeMetadataChanges){let r=[];for(let i of e.docChanges)i.type!==3&&r.push(i);e=new _h(e.query,e.docs,e.oldDocs,r,e.mutatedKeys,e.fromCache,e.syncStateChanged,!0,e.hasCachedResults)}let n=!1;return this.xa?this.Na(e)&&(this.Ma.next(e),n=!0):this.Ba(e,this.onlineState)&&(this.La(e),n=!0),this.Oa=e,n}onError(e){this.Ma.error(e)}va(e){this.onlineState=e;let n=!1;return this.Oa&&!this.xa&&this.Ba(this.Oa,e)&&(this.La(this.Oa),n=!0),n}Ba(e,n){if(!e.fromCache||!this.ba())return!0;let r=n!=="Offline";return(!this.options.ka||!r)&&(!e.docs.isEmpty()||e.hasCachedResults||n==="Offline")}Na(e){if(e.docChanges.length>0)return!0;let n=this.Oa&&this.Oa.hasPendingWrites!==e.hasPendingWrites;return!(!e.syncStateChanged&&!n)&&this.options.includeMetadataChanges===!0}La(e){e=_h.fromInitialDocuments(e.query,e.docs,e.mutatedKeys,e.fromCache,e.hasCachedResults),this.xa=!0,this.Ma.next(e)}ba(){return this.options.source!==I0.Cache}};var cv=class{constructor(e){this.key=e}},lv=class{constructor(e){this.key=e}},v0=class{constructor(e,n){this.query=e,this.Ha=n,this.Ya=null,this.hasCachedResults=!1,this.current=!1,this.Za=be(),this.mutatedKeys=be(),this.Xa=eW(e),this.eu=new sv(this.Xa)}get tu(){return this.Ha}nu(e,n){let r=n?n.ru:new av,i=n?n.eu:this.eu,o=n?n.mutatedKeys:this.mutatedKeys,s=i,a=!1,c=this.query.limitType==="F"&&i.size===this.query.limit?i.last():null,l=this.query.limitType==="L"&&i.size===this.query.limit?i.first():null;if(e.inorderTraversal((d,h)=>{let f=i.get(d),g=cm(this.query,h)?h:null,E=!!f&&this.mutatedKeys.has(f.key),I=!!g&&(g.hasLocalMutations||this.mutatedKeys.has(g.key)&&g.hasCommittedMutations),S=!1;f&&g?f.data.isEqual(g.data)?E!==I&&(r.track({type:3,doc:g}),S=!0):this.iu(f,g)||(r.track({type:2,doc:g}),S=!0,(c&&this.Xa(g,c)>0||l&&this.Xa(g,l)<0)&&(a=!0)):!f&&g?(r.track({type:0,doc:g}),S=!0):f&&!g&&(r.track({type:1,doc:f}),S=!0,(c||l)&&(a=!0)),S&&(g?(s=s.add(g),o=I?o.add(d):o.delete(d)):(s=s.delete(d),o=o.delete(d)))}),this.query.limit!==null)for(;s.size>this.query.limit;){let d=this.query.limitType==="F"?s.last():s.first();s=s.delete(d.key),o=o.delete(d.key),r.track({type:1,doc:d})}return{eu:s,ru:r,Ds:a,mutatedKeys:o}}iu(e,n){return e.hasLocalMutations&&n.hasCommittedMutations&&!n.hasLocalMutations}applyChanges(e,n,r,i){let o=this.eu;this.eu=e.eu,this.mutatedKeys=e.mutatedKeys;let s=e.ru.pa();s.sort((d,h)=>(function(g,E){let I=S=>{switch(S){case 0:return 1;case 2:case 3:return 2;case 1:return 0;default:return re(20277,{At:S})}};return I(g)-I(E)})(d.type,h.type)||this.Xa(d.doc,h.doc)),this.su(r),i=i!=null&&i;let a=n&&!i?this.ou():[],c=this.Za.size===0&&this.current&&!i?1:0,l=c!==this.Ya;return this.Ya=c,s.length!==0||l?{snapshot:new _h(this.query,e.eu,o,s,e.mutatedKeys,c===0,l,!1,!!r&&r.resumeToken.approximateByteSize()>0),_u:a}:{_u:a}}va(e){return this.current&&e==="Offline"?(this.current=!1,this.applyChanges({eu:this.eu,ru:new av,mutatedKeys:this.mutatedKeys,Ds:!1},!1)):{_u:[]}}au(e){return!this.Ha.has(e)&&!!this.eu.has(e)&&!this.eu.get(e).hasLocalMutations}su(e){e&&(e.addedDocuments.forEach(n=>this.Ha=this.Ha.add(n)),e.modifiedDocuments.forEach(n=>{}),e.removedDocuments.forEach(n=>this.Ha=this.Ha.delete(n)),this.current=e.current)}ou(){if(!this.current)return[];let e=this.Za;this.Za=be(),this.eu.forEach(r=>{this.au(r.key)&&(this.Za=this.Za.add(r.key))});let n=[];return e.forEach(r=>{this.Za.has(r)||n.push(new lv(r))}),this.Za.forEach(r=>{e.has(r)||n.push(new cv(r))}),n}uu(e){this.Ha=e.qs,this.Za=be();let n=this.nu(e.documents);return this.applyChanges(n,!0)}cu(){return _h.fromInitialDocuments(this.query,this.eu,this.mutatedKeys,this.Ya===0,this.hasCachedResults)}},Dh="SyncEngine",S0=class{constructor(e,n,r){this.query=e,this.targetId=n,this.view=r}},A0=class{constructor(e){this.key=e,this.lu=!1}},C0=class{constructor(e,n,r,i,o,s){this.localStore=e,this.remoteStore=n,this.eventManager=r,this.sharedClientState=i,this.currentUser=o,this.maxConcurrentLimboResolutions=s,this.hu={},this.Pu=new pi(a=>J3(a),Cv),this.Tu=new Map,this.Iu=new Set,this.du=new pt(Z.comparator),this.Eu=new Map,this.Au=new Kg,this.Ru={},this.Vu=new Map,this.mu=gh.ur(),this.onlineState="Unknown",this.fu=void 0}get isPrimaryClient(){return this.fu===!0}};function xae(t,e,n=!0){return y(this,null,function*(){let r=wv(t),i,o=r.Pu.get(e);return o?(r.sharedClientState.addLocalQueryTarget(o.targetId),i=o.view.cu()):i=yield XW(r,e,n,!0),i})}function kae(t,e){return y(this,null,function*(){let n=wv(t);yield XW(n,e,!0,!1)})}function XW(t,e,n,r){return y(this,null,function*(){let i=yield ZI(t.localStore,Rr(e)),o=i.targetId,s=t.sharedClientState.addLocalQueryTarget(o,n),a;return r&&(a=yield yM(t,e,o,s==="current",i.resumeToken)),t.isPrimaryClient&&n&&Nv(t.remoteStore,i),a})}function yM(t,e,n,r,i){return y(this,null,function*(){t.gu=(h,f,g)=>(function(I,S,L,V){return y(this,null,function*(){let K=S.view.nu(L);K.Ds&&(K=yield i0(I.localStore,S.query,!1).then(({documents:C})=>S.view.nu(C,K)));let oe=V&&V.targetChanges.get(S.targetId),ge=V&&V.targetMismatches.get(S.targetId)!=null,te=S.view.applyChanges(K,I.isPrimaryClient,oe,ge);return D0(I,S.targetId,te._u),te.snapshot})})(t,h,f,g);let o=yield i0(t.localStore,e,!0),s=new v0(e,o.qs),a=s.nu(o.documents),c=$g.createSynthesizedTargetChangeForCurrentChange(n,r&&t.onlineState!=="Offline",i),l=s.applyChanges(a,t.isPrimaryClient,c);D0(t,n,l._u);let d=new S0(e,n,s);return t.Pu.set(e,d),t.Tu.has(n)?t.Tu.get(n).push(e):t.Tu.set(n,[e]),l.snapshot})}function Fae(t,e,n){return y(this,null,function*(){let r=se(t),i=r.Pu.get(e),o=r.Tu.get(i.targetId);if(o.length>1)return r.Tu.set(i.targetId,o.filter(s=>!Cv(s,e))),void r.Pu.delete(e);r.isPrimaryClient?(r.sharedClientState.removeLocalQueryTarget(i.targetId),r.sharedClientState.isActiveQueryTarget(i.targetId)||(yield mh(r.localStore,i.targetId,!1).then(()=>{r.sharedClientState.clearQueryState(i.targetId),n&&Eh(r.remoteStore,i.targetId),Th(r,i.targetId)}).catch(va))):(Th(r,i.targetId),yield mh(r.localStore,i.targetId,!0))})}function Uae(t,e){return y(this,null,function*(){let n=se(t),r=n.Pu.get(e),i=n.Tu.get(r.targetId);n.isPrimaryClient&&i.length===1&&(n.sharedClientState.removeLocalQueryTarget(r.targetId),Eh(n.remoteStore,r.targetId))})}function Vae(t,e,n){return y(this,null,function*(){let r=AM(t);try{let i=yield(function(s,a){let c=se(s),l=Tt.now(),d=a.reduce((g,E)=>g.add(E.key),be()),h,f;return c.persistence.runTransaction("Locally write mutations","readwrite",g=>{let E=Dr(),I=be();return c.Os.getEntries(g,d).next(S=>{E=S,E.forEach((L,V)=>{V.isValidDocument()||(I=I.add(L))})}).next(()=>c.localDocuments.getOverlayedDocuments(g,E)).next(S=>{h=S;let L=[];for(let V of a){let K=Qse(V,h.get(V.key).overlayedDocument);K!=null&&L.push(new gi(V.key,K,$3(K.value.mapValue),yn.exists(!0)))}return c.mutationQueue.addMutationBatch(g,l,L,a)}).next(S=>{f=S;let L=S.applyToLocalDocumentSet(h,I);return c.documentOverlayCache.saveOverlays(g,S.batchId,L)})}).then(()=>({batchId:f.batchId,changes:nW(h)}))})(r.localStore,e);r.sharedClientState.addPendingMutation(i.batchId),(function(s,a,c){let l=s.Ru[s.currentUser.toKey()];l||(l=new pt(Ie)),l=l.insert(a,c),s.Ru[s.currentUser.toKey()]=l})(r,i.batchId,n),yield Ca(r,i.changes),yield Ah(r.remoteStore)}catch(i){let o=mM(i,"Failed to persist write");n.reject(o)}})}function QW(t,e){return y(this,null,function*(){let n=se(t);try{let r=yield Tae(n.localStore,e);e.targetChanges.forEach((i,o)=>{let s=n.Eu.get(o);s&&(ae(i.addedDocuments.size+i.modifiedDocuments.size+i.removedDocuments.size<=1,22616),i.addedDocuments.size>0?s.lu=!0:i.modifiedDocuments.size>0?ae(s.lu,14607):i.removedDocuments.size>0&&(ae(s.lu,42227),s.lu=!1))}),yield Ca(n,r,e)}catch(r){yield va(r)}})}function a3(t,e,n){let r=se(t);if(r.isPrimaryClient&&n===0||!r.isPrimaryClient&&n===1){let i=[];r.Pu.forEach((o,s)=>{let a=s.view.va(e);a.snapshot&&i.push(a.snapshot)}),(function(s,a){let c=se(s);c.onlineState=a;let l=!1;c.queries.forEach((d,h)=>{for(let f of h.wa)f.va(a)&&(l=!0)}),l&&TM(c)})(r.eventManager,e),i.length&&r.hu.J_(i),r.onlineState=e,r.isPrimaryClient&&r.sharedClientState.setOnlineState(e)}}function Bae(t,e,n){return y(this,null,function*(){let r=se(t);r.sharedClientState.updateQueryState(e,"rejected",n);let i=r.Eu.get(e),o=i&&i.key;if(o){let s=new pt(Z.comparator);s=s.insert(o,Zt.newNoDocument(o,le.min()));let a=be().add(o),c=new Hg(le.min(),new Map,new pt(Ie),s,a);yield QW(r,c),r.du=r.du.remove(o),r.Eu.delete(e),SM(r)}else yield mh(r.localStore,e,!1).then(()=>Th(r,e,n)).catch(va)})}function Gae(t,e){return y(this,null,function*(){let n=se(t),r=e.batch.batchId;try{let i=yield _ae(n.localStore,e);vM(n,r,null),IM(n,r),n.sharedClientState.updateMutationState(r,"acknowledged"),yield Ca(n,i)}catch(i){yield va(i)}})}function jae(t,e,n){return y(this,null,function*(){let r=se(t);try{let i=yield(function(s,a){let c=se(s);return c.persistence.runTransaction("Reject batch","readwrite-primary",l=>{let d;return c.mutationQueue.lookupMutationBatch(l,a).next(h=>(ae(h!==null,37113),d=h.keys(),c.mutationQueue.removeMutationBatch(l,h))).next(()=>c.mutationQueue.performConsistencyCheck(l)).next(()=>c.documentOverlayCache.removeOverlaysForBatchId(l,d,a)).next(()=>c.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(l,d)).next(()=>c.localDocuments.getDocuments(l,d))})})(r.localStore,e);vM(r,e,n),IM(r,e),r.sharedClientState.updateMutationState(e,"rejected",n),yield Ca(r,i)}catch(i){yield va(i)}})}function IM(t,e){(t.Vu.get(e)||[]).forEach(n=>{n.resolve()}),t.Vu.delete(e)}function vM(t,e,n){let r=se(t),i=r.Ru[r.currentUser.toKey()];if(i){let o=i.get(e);o&&(n?o.reject(n):o.resolve(),i=i.remove(e)),r.Ru[r.currentUser.toKey()]=i}}function Th(t,e,n=null){t.sharedClientState.removeLocalQueryTarget(e);for(let r of t.Tu.get(e))t.Pu.delete(r),n&&t.hu.pu(r,n);t.Tu.delete(e),t.isPrimaryClient&&t.Au.zr(e).forEach(r=>{t.Au.containsKey(r)||JW(t,r)})}function JW(t,e){t.Iu.delete(e.path.canonicalString());let n=t.du.get(e);n!==null&&(Eh(t.remoteStore,n),t.du=t.du.remove(e),t.Eu.delete(n),SM(t))}function D0(t,e,n){for(let r of n)r instanceof cv?(t.Au.addReference(r.key,e),Hae(t,r)):r instanceof lv?(H(Dh,"Document no longer in limbo: "+r.key),t.Au.removeReference(r.key,e),t.Au.containsKey(r.key)||JW(t,r.key)):re(19791,{yu:r})}function Hae(t,e){let n=e.key,r=n.path.canonicalString();t.du.get(n)||t.Iu.has(r)||(H(Dh,"New document in limbo: "+n),t.Iu.add(r),SM(t))}function SM(t){for(;t.Iu.size>0&&t.du.size<t.maxConcurrentLimboResolutions;){let e=t.Iu.values().next().value;t.Iu.delete(e);let n=new Z(ke.fromString(e)),r=t.mu.next();t.Eu.set(r,new A0(n)),t.du=t.du.insert(n,r),Nv(t.remoteStore,new ph(Rr(am(n.path)),r,"TargetPurposeLimboResolution",Ar.ue))}}function Ca(t,e,n){return y(this,null,function*(){let r=se(t),i=[],o=[],s=[];r.Pu.isEmpty()||(r.Pu.forEach((a,c)=>{s.push(r.gu(c,e,n).then(l=>{var d;if((l||n)&&r.isPrimaryClient){let h=l?!l.fromCache:(d=n?.targetChanges.get(c.targetId))===null||d===void 0?void 0:d.current;r.sharedClientState.updateQueryState(c.targetId,h?"current":"not-current")}if(l){i.push(l);let h=t0.Es(c.targetId,l);o.push(h)}}))}),yield Promise.all(s),r.hu.J_(i),yield(function(c,l){return y(this,null,function*(){let d=se(c);try{yield d.persistence.runTransaction("notifyLocalViewChanges","readwrite",h=>P.forEach(l,f=>P.forEach(f.Is,g=>d.persistence.referenceDelegate.addReference(h,f.targetId,g)).next(()=>P.forEach(f.ds,g=>d.persistence.referenceDelegate.removeReference(h,f.targetId,g)))))}catch(h){if(!Sa(h))throw h;H(hM,"Failed to update sequence numbers: "+h)}for(let h of l){let f=h.targetId;if(!h.fromCache){let g=d.Fs.get(f),E=g.snapshotVersion,I=g.withLastLimboFreeSnapshotVersion(E);d.Fs=d.Fs.insert(f,I)}}})})(r.localStore,o))})}function $ae(t,e){return y(this,null,function*(){let n=se(t);if(!n.currentUser.isEqual(e)){H(Dh,"User change. New user:",e.toKey());let r=yield kW(n.localStore,e);n.currentUser=e,(function(o,s){o.Vu.forEach(a=>{a.forEach(c=>{c.reject(new j(x.CANCELLED,s))})}),o.Vu.clear()})(n,"'waitForPendingWrites' promise is rejected due to a user change."),n.sharedClientState.handleUserChange(e,r.removedBatchIds,r.addedBatchIds),yield Ca(n,r.Bs)}})}function Wae(t,e){let n=se(t),r=n.Eu.get(e);if(r&&r.lu)return be().add(r.key);{let i=be(),o=n.Tu.get(e);if(!o)return i;for(let s of o){let a=n.Pu.get(s);i=i.unionWith(a.view.tu)}return i}}function zae(t,e){return y(this,null,function*(){let n=se(t),r=yield i0(n.localStore,e.query,!0),i=e.view.uu(r);return n.isPrimaryClient&&D0(n,e.targetId,i._u),i})}function qae(t,e){return y(this,null,function*(){let n=se(t);return VW(n.localStore,e).then(r=>Ca(n,r))})}function Kae(t,e,n,r){return y(this,null,function*(){let i=se(t),o=yield(function(a,c){let l=se(a),d=se(l.mutationQueue);return l.persistence.runTransaction("Lookup mutation documents","readonly",h=>d.Xn(h,c).next(f=>f?l.localDocuments.getDocuments(h,f):P.resolve(null)))})(i.localStore,e);o!==null?(n==="pending"?yield Ah(i.remoteStore):n==="acknowledged"||n==="rejected"?(vM(i,e,r||null),IM(i,e),(function(a,c){se(se(a).mutationQueue).rr(c)})(i.localStore,e)):re(6720,"Unknown batchState",{wu:n}),yield Ca(i,o)):H(Dh,"Cannot apply mutation batch with id: "+e)})}function Yae(t,e){return y(this,null,function*(){let n=se(t);if(wv(n),AM(n),e===!0&&n.fu!==!0){let r=n.sharedClientState.getAllActiveQueryTargets(),i=yield c3(n,r.toArray());n.fu=!0,yield E0(n.remoteStore,!0);for(let o of i)Nv(n.remoteStore,o)}else if(e===!1&&n.fu!==!1){let r=[],i=Promise.resolve();n.Tu.forEach((o,s)=>{n.sharedClientState.isLocalQueryTarget(s)?r.push(s):i=i.then(()=>(Th(n,s),mh(n.localStore,s,!0))),Eh(n.remoteStore,s)}),yield i,yield c3(n,r),(function(s){let a=se(s);a.Eu.forEach((c,l)=>{Eh(a.remoteStore,l)}),a.Au.jr(),a.Eu=new Map,a.du=new pt(Z.comparator)})(n),n.fu=!1,yield E0(n.remoteStore,!1)}})}function c3(t,e,n){return y(this,null,function*(){let r=se(t),i=[],o=[];for(let s of e){let a,c=r.Tu.get(s);if(c&&c.length!==0){a=yield ZI(r.localStore,Rr(c[0]));for(let l of c){let d=r.Pu.get(l),h=yield zae(r,d);h.snapshot&&o.push(h.snapshot)}}else{let l=yield UW(r.localStore,s);a=yield ZI(r.localStore,l),yield yM(r,ZW(l),s,!1,a.resumeToken)}i.push(a)}return r.hu.J_(o),i})}function ZW(t){return X3(t.path,t.collectionGroup,t.orderBy,t.filters,t.limit,"F",t.startAt,t.endAt)}function Xae(t){return(function(n){return se(se(n).persistence).Ps()})(se(t).localStore)}function Qae(t,e,n,r){return y(this,null,function*(){let i=se(t);if(i.fu)return void H(Dh,"Ignoring unexpected query state notification.");let o=i.Tu.get(e);if(o&&o.length>0)switch(n){case"current":case"not-current":{let s=yield VW(i.localStore,Z3(o[0])),a=Hg.createSynthesizedRemoteEventForCurrentChange(e,n==="current",Gt.EMPTY_BYTE_STRING);yield Ca(i,s,a);break}case"rejected":yield mh(i.localStore,e,!0),Th(i,e,r);break;default:re(64155,n)}})}function Jae(t,e,n){return y(this,null,function*(){let r=wv(t);if(r.fu){for(let i of e){if(r.Tu.has(i)&&r.sharedClientState.isActiveQueryTarget(i)){H(Dh,"Adding an already active target "+i);continue}let o=yield UW(r.localStore,i),s=yield ZI(r.localStore,o);yield yM(r,ZW(o),s.targetId,!1,s.resumeToken),Nv(r.remoteStore,s)}for(let i of n)r.Tu.has(i)&&(yield mh(r.localStore,i,!1).then(()=>{Eh(r.remoteStore,i),Th(r,i)}).catch(va))}})}function wv(t){let e=se(t);return e.remoteStore.remoteSyncer.applyRemoteEvent=QW.bind(null,e),e.remoteStore.remoteSyncer.getRemoteKeysForTarget=Wae.bind(null,e),e.remoteStore.remoteSyncer.rejectListen=Bae.bind(null,e),e.hu.J_=Lae.bind(null,e.eventManager),e.hu.pu=Pae.bind(null,e.eventManager),e}function AM(t){let e=se(t);return e.remoteStore.remoteSyncer.applySuccessfulWrite=Gae.bind(null,e),e.remoteStore.remoteSyncer.rejectFailedWrite=jae.bind(null,e),e}var CM=(()=>{class t{constructor(){this.kind="memory",this.synchronizeTabs=!1}initialize(n){return y(this,null,function*(){this.serializer=Dv(n.databaseInfo.databaseId),this.sharedClientState=this.bu(n),this.persistence=this.Du(n),yield this.persistence.start(),this.localStore=this.vu(n),this.gcScheduler=this.Cu(n,this.localStore),this.indexBackfillerScheduler=this.Fu(n,this.localStore)})}Cu(n,r){return null}Fu(n,r){return null}vu(n){return xW(this.persistence,new JI,n.initialUser,this.serializer)}Du(n){return new Yg(XI.Vi,this.serializer)}bu(n){return new nv}terminate(){return y(this,null,function*(){var n,r;(n=this.gcScheduler)===null||n===void 0||n.stop(),(r=this.indexBackfillerScheduler)===null||r===void 0||r.stop(),this.sharedClientState.shutdown(),yield this.persistence.shutdown()})}}return t.provider={build:()=>new t},t})(),R0=class extends CM{constructor(e){super(),this.cacheSizeBytes=e}Cu(e,n){ae(this.persistence.referenceDelegate instanceof QI,46915);let r=this.persistence.referenceDelegate.garbageCollector;return new qI(r,e.asyncQueue,n)}Du(e){let n=this.cacheSizeBytes!==void 0?rr.withCacheSize(this.cacheSizeBytes):rr.DEFAULT;return new Yg(r=>QI.Vi(r,n),this.serializer)}},uv=class t extends CM{constructor(e,n,r){super(),this.Mu=e,this.cacheSizeBytes=n,this.forceOwnership=r,this.kind="persistent",this.synchronizeTabs=!1}initialize(e){return y(this,null,function*(){yield Ga(t.prototype,this,"initialize").call(this,e),yield this.Mu.initialize(this,e),yield AM(this.Mu.syncEngine),yield Ah(this.Mu.remoteStore),yield this.persistence.ji(()=>(this.gcScheduler&&!this.gcScheduler.started&&this.gcScheduler.start(),this.indexBackfillerScheduler&&!this.indexBackfillerScheduler.started&&this.indexBackfillerScheduler.start(),Promise.resolve()))})}vu(e){return xW(this.persistence,new JI,e.initialUser,this.serializer)}Cu(e,n){let r=this.persistence.referenceDelegate.garbageCollector;return new qI(r,e.asyncQueue,n)}Fu(e,n){let r=new Jb(n,this.persistence);return new Qb(e.asyncQueue,r)}Du(e){let n=PW(e.databaseInfo.databaseId,e.databaseInfo.persistenceKey),r=this.cacheSizeBytes!==void 0?rr.withCacheSize(this.cacheSizeBytes):rr.DEFAULT;return new e0(this.synchronizeTabs,n,e.clientId,r,e.asyncQueue,$W(),II(),this.serializer,this.sharedClientState,!!this.forceOwnership)}bu(e){return new nv}},N0=class t extends uv{constructor(e,n){super(e,n,!1),this.Mu=e,this.cacheSizeBytes=n,this.synchronizeTabs=!0}initialize(e){return y(this,null,function*(){yield Ga(t.prototype,this,"initialize").call(this,e);let n=this.Mu.syncEngine;this.sharedClientState instanceof Ng&&(this.sharedClientState.syncEngine={Do:Kae.bind(null,n),vo:Qae.bind(null,n),Co:Jae.bind(null,n),Ps:Xae.bind(null,n),bo:qae.bind(null,n)},yield this.sharedClientState.start()),yield this.persistence.ji(r=>y(this,null,function*(){yield Yae(this.Mu.syncEngine,r),this.gcScheduler&&(r&&!this.gcScheduler.started?this.gcScheduler.start():r||this.gcScheduler.stop()),this.indexBackfillerScheduler&&(r&&!this.indexBackfillerScheduler.started?this.indexBackfillerScheduler.start():r||this.indexBackfillerScheduler.stop())}))})}bu(e){let n=$W();if(!Ng.C(n))throw new j(x.UNIMPLEMENTED,"IndexedDB persistence is only available on platforms that support LocalStorage.");let r=PW(e.databaseInfo.databaseId,e.databaseInfo.persistenceKey);return new Ng(n,e.asyncQueue,r,e.clientId,e.initialUser)}},DM=(()=>{class t{initialize(n,r){return y(this,null,function*(){this.localStore||(this.localStore=n.localStore,this.sharedClientState=n.sharedClientState,this.datastore=this.createDatastore(r),this.remoteStore=this.createRemoteStore(r),this.eventManager=this.createEventManager(r),this.syncEngine=this.createSyncEngine(r,!n.synchronizeTabs),this.sharedClientState.onlineStateHandler=i=>a3(this.syncEngine,i,1),this.remoteStore.remoteSyncer.handleCredentialChange=$ae.bind(null,this.syncEngine),yield E0(this.remoteStore,this.syncEngine.isPrimaryClient))})}createEventManager(n){return(function(){return new y0})()}createDatastore(n){let r=Dv(n.databaseInfo.databaseId),i=(function(s){return new u0(s)})(n.databaseInfo);return(function(s,a,c,l){return new p0(s,a,c,l)})(n.authCredentials,n.appCheckCredentials,i,r)}createRemoteStore(n){return(function(i,o,s,a,c){return new m0(i,o,s,a,c)})(this.localStore,this.datastore,n.asyncQueue,r=>a3(this.syncEngine,r,0),(function(){return rv.C()?new rv:new s0})())}createSyncEngine(n,r){return(function(o,s,a,c,l,d,h){let f=new C0(o,s,a,c,l,d);return h&&(f.fu=!0),f})(this.localStore,this.remoteStore,this.eventManager,this.sharedClientState,n.initialUser,n.maxConcurrentLimboResolutions,r)}terminate(){return y(this,null,function*(){var n,r;yield(function(o){return y(this,null,function*(){let s=se(o);H(Ml,"RemoteStore shutting down."),s.Ia.add(5),yield lm(s),s.Ea.shutdown(),s.Aa.set("Unknown")})})(this.remoteStore),(n=this.datastore)===null||n===void 0||n.terminate(),(r=this.eventManager)===null||r===void 0||r.terminate()})}}return t.provider={build:()=>new t},t})();var Zg=class{constructor(e){this.observer=e,this.muted=!1}next(e){this.muted||this.observer.next&&this.xu(this.observer.next,e)}error(e){this.muted||(this.observer.error?this.xu(this.observer.error,e):Mt("Uncaught Error in snapshot listener:",e.toString()))}Ou(){this.muted=!0}xu(e,n){setTimeout(()=>{this.muted||e(n)},0)}};var w0=class{constructor(e){this.datastore=e,this.readVersions=new Map,this.mutations=[],this.committed=!1,this.lastTransactionError=null,this.writtenDocs=new Set}lookup(e){return y(this,null,function*(){if(this.ensureCommitNotCalled(),this.mutations.length>0)throw this.lastTransactionError=new j(x.INVALID_ARGUMENT,"Firestore transactions require all reads to be executed before all writes."),this.lastTransactionError;let n=yield(function(i,o){return y(this,null,function*(){let s=se(i),a={documents:o.map(h=>Wg(s.serializer,h))},c=yield s.Jo("BatchGetDocuments",s.serializer.databaseId,ke.emptyPath(),a,o.length),l=new Map;c.forEach(h=>{let f=iae(s.serializer,h);l.set(f.key.toString(),f)});let d=[];return o.forEach(h=>{let f=l.get(h.toString());ae(!!f,55234,{key:h}),d.push(f)}),d})})(this.datastore,e);return n.forEach(r=>this.recordVersion(r)),n})}set(e,n){this.write(n.toMutation(e,this.precondition(e))),this.writtenDocs.add(e.toString())}update(e,n){try{this.write(n.toMutation(e,this.preconditionForUpdate(e)))}catch(r){this.lastTransactionError=r}this.writtenDocs.add(e.toString())}delete(e){this.write(new wl(e,this.precondition(e))),this.writtenDocs.add(e.toString())}commit(){return y(this,null,function*(){if(this.ensureCommitNotCalled(),this.lastTransactionError)throw this.lastTransactionError;let e=this.readVersions;this.mutations.forEach(n=>{e.delete(n.key.toString())}),e.forEach((n,r)=>{let i=Z.fromPath(r);this.mutations.push(new Bg(i,this.precondition(i)))}),yield(function(r,i){return y(this,null,function*(){let o=se(r),s={writes:i.map(a=>zg(o.serializer,a))};yield o.Wo("Commit",o.serializer.databaseId,ke.emptyPath(),s)})})(this.datastore,this.mutations),this.committed=!0})}recordVersion(e){let n;if(e.isFoundDocument())n=e.version;else{if(!e.isNoDocument())throw re(50498,{Wu:e.constructor.name});n=le.min()}let r=this.readVersions.get(e.key.toString());if(r){if(!n.isEqual(r))throw new j(x.ABORTED,"Document version changed between two reads.")}else this.readVersions.set(e.key.toString(),n)}precondition(e){let n=this.readVersions.get(e.toString());return!this.writtenDocs.has(e.toString())&&n?n.isEqual(le.min())?yn.exists(!1):yn.updateTime(n):yn.none()}preconditionForUpdate(e){let n=this.readVersions.get(e.toString());if(!this.writtenDocs.has(e.toString())&&n){if(n.isEqual(le.min()))throw new j(x.INVALID_ARGUMENT,"Can't update a document that doesn't exist.");return yn.updateTime(n)}return yn.exists(!0)}write(e){this.ensureCommitNotCalled(),this.mutations.push(e)}ensureCommitNotCalled(){}};var b0=class{constructor(e,n,r,i,o){this.asyncQueue=e,this.datastore=n,this.options=r,this.updateFunction=i,this.deferred=o,this.Gu=r.maxAttempts,this.F_=new Qg(this.asyncQueue,"transaction_retry")}zu(){this.Gu-=1,this.ju()}ju(){this.F_.g_(()=>y(this,null,function*(){let e=new w0(this.datastore),n=this.Ju(e);n&&n.then(r=>{this.asyncQueue.enqueueAndForget(()=>e.commit().then(()=>{this.deferred.resolve(r)}).catch(i=>{this.Hu(i)}))}).catch(r=>{this.Hu(r)})}))}Ju(e){try{let n=this.updateFunction(e);return!im(n)&&n.catch&&n.then?n:(this.deferred.reject(Error("Transaction callback must return a Promise")),null)}catch(n){return this.deferred.reject(n),null}}Hu(e){this.Gu>0&&this.Yu(e)?(this.Gu-=1,this.asyncQueue.enqueueAndForget(()=>(this.ju(),Promise.resolve()))):this.deferred.reject(e)}Yu(e){if(e.name==="FirebaseError"){let n=e.code;return n==="aborted"||n==="failed-precondition"||n==="already-exists"||!dW(n)}return!1}};var Ia="FirestoreClient",O0=class{constructor(e,n,r,i,o){this.authCredentials=e,this.appCheckCredentials=n,this.asyncQueue=r,this.databaseInfo=i,this.user=Vt.UNAUTHENTICATED,this.clientId=wg.newId(),this.authCredentialListener=()=>Promise.resolve(),this.appCheckCredentialListener=()=>Promise.resolve(),this._uninitializedComponentsProvider=o,this.authCredentials.start(r,s=>y(this,null,function*(){H(Ia,"Received user=",s.uid),yield this.authCredentialListener(s),this.user=s})),this.appCheckCredentials.start(r,s=>(H(Ia,"Received new app check token=",s),this.appCheckCredentialListener(s,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 e=new ir;return this.asyncQueue.enqueueAndForgetEvenWhileRestricted(()=>y(this,null,function*(){try{this._onlineComponents&&(yield this._onlineComponents.terminate()),this._offlineComponents&&(yield this._offlineComponents.terminate()),this.authCredentials.shutdown(),this.appCheckCredentials.shutdown(),e.resolve()}catch(n){let r=mM(n,"Failed to shutdown persistence");e.reject(r)}})),e.promise}};function Bb(t,e){return y(this,null,function*(){t.asyncQueue.verifyOperationInProgress(),H(Ia,"Initializing OfflineComponentProvider");let n=t.configuration;yield e.initialize(n);let r=n.initialUser;t.setCredentialChangeListener(i=>y(null,null,function*(){r.isEqual(i)||(yield kW(e.localStore,i),r=i)})),e.persistence.setDatabaseDeletedListener(()=>{Qo("Terminating Firestore due to IndexedDb database deletion"),t.terminate().then(()=>{H("Terminating Firestore due to IndexedDb database deletion completed successfully")}).catch(i=>{Qo("Terminating Firestore due to IndexedDb database deletion failed",i)})}),t._offlineComponents=e})}function l3(t,e){return y(this,null,function*(){t.asyncQueue.verifyOperationInProgress();let n=yield Zae(t);H(Ia,"Initializing OnlineComponentProvider"),yield e.initialize(n,t.configuration),t.setCredentialChangeListener(r=>i3(e.remoteStore,r)),t.setAppCheckTokenChangeListener((r,i)=>i3(e.remoteStore,i)),t._onlineComponents=e})}function Zae(t){return y(this,null,function*(){if(!t._offlineComponents)if(t._uninitializedComponentsProvider){H(Ia,"Using user provided OfflineComponentProvider");try{yield Bb(t,t._uninitializedComponentsProvider._offline)}catch(e){let n=e;if(!(function(i){return i.name==="FirebaseError"?i.code===x.FAILED_PRECONDITION||i.code===x.UNIMPLEMENTED:!(typeof DOMException<"u"&&i instanceof DOMException)||i.code===22||i.code===20||i.code===11})(n))throw n;Qo("Error using user provided cache. Falling back to memory cache: "+n),yield Bb(t,new CM)}}else H(Ia,"Using default OfflineComponentProvider"),yield Bb(t,new R0(void 0));return t._offlineComponents})}function RM(t){return y(this,null,function*(){return t._onlineComponents||(t._uninitializedComponentsProvider?(H(Ia,"Using user provided OnlineComponentProvider"),yield l3(t,t._uninitializedComponentsProvider._online)):(H(Ia,"Using default OnlineComponentProvider"),yield l3(t,new DM))),t._onlineComponents})}function ece(t){return RM(t).then(e=>e.syncEngine)}function e6(t){return RM(t).then(e=>e.datastore)}function dv(t){return y(this,null,function*(){let e=yield RM(t),n=e.eventManager;return n.onListen=xae.bind(null,e.syncEngine),n.onUnlisten=Fae.bind(null,e.syncEngine),n.onFirstRemoteStoreListen=kae.bind(null,e.syncEngine),n.onLastRemoteStoreUnlisten=Uae.bind(null,e.syncEngine),n})}function tce(t,e,n={}){let r=new ir;return t.asyncQueue.enqueueAndForget(()=>y(null,null,function*(){return(function(o,s,a,c,l){let d=new Zg({next:f=>{d.Ou(),s.enqueueAndForget(()=>_M(o,h));let g=f.docs.has(a);!g&&f.fromCache?l.reject(new j(x.UNAVAILABLE,"Failed to get document because the client is offline.")):g&&f.fromCache&&c&&c.source==="server"?l.reject(new j(x.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(f)},error:f=>l.reject(f)}),h=new Jg(am(a.path),d,{includeMetadataChanges:!0,ka:!0});return EM(o,h)})(yield dv(t),t.asyncQueue,e,n,r)})),r.promise}function nce(t,e,n={}){let r=new ir;return t.asyncQueue.enqueueAndForget(()=>y(null,null,function*(){return(function(o,s,a,c,l){let d=new Zg({next:f=>{d.Ou(),s.enqueueAndForget(()=>_M(o,h)),f.fromCache&&c.source==="server"?l.reject(new j(x.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.)')):l.resolve(f)},error:f=>l.reject(f)}),h=new Jg(a,d,{includeMetadataChanges:!0,ka:!0});return EM(o,h)})(yield dv(t),t.asyncQueue,e,n,r)})),r.promise}function rce(t,e,n){let r=new ir;return t.asyncQueue.enqueueAndForget(()=>y(null,null,function*(){try{let i=yield e6(t);r.resolve((function(s,a,c){return y(this,null,function*(){var l;let d=se(s),{request:h,ft:f,parent:g}=aae(d.serializer,Bse(a),c);d.connection.Qo||delete h.parent;let E=(yield d.Jo("RunAggregationQuery",d.serializer.databaseId,g,h,1)).filter(S=>!!S.result);ae(E.length===1,64727);let I=(l=E[0].result)===null||l===void 0?void 0:l.aggregateFields;return Object.keys(I).reduce((S,L)=>(S[f[L]]=I[L],S),{})})})(i,e,n))}catch(i){r.reject(i)}})),r.promise}function t6(t){let e={};return t.timeoutSeconds!==void 0&&(e.timeoutSeconds=t.timeoutSeconds),e}var u3=new Map;var n6="firestore.googleapis.com",d3=!0,hv=class{constructor(e){var n,r;if(e.host===void 0){if(e.ssl!==void 0)throw new j(x.INVALID_ARGUMENT,"Can't provide ssl option if host option is not set");this.host=n6,this.ssl=d3}else this.host=e.host,this.ssl=(n=e.ssl)!==null&&n!==void 0?n:d3;if(this.isUsingEmulator=e.emulatorOptions!==void 0,this.credentials=e.credentials,this.ignoreUndefinedProperties=!!e.ignoreUndefinedProperties,this.localCache=e.localCache,e.cacheSizeBytes===void 0)this.cacheSizeBytes=RW;else{if(e.cacheSizeBytes!==-1&&e.cacheSizeBytes<OW)throw new j(x.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");this.cacheSizeBytes=e.cacheSizeBytes}ase("experimentalForceLongPolling",e.experimentalForceLongPolling,"experimentalAutoDetectLongPolling",e.experimentalAutoDetectLongPolling),this.experimentalForceLongPolling=!!e.experimentalForceLongPolling,this.experimentalForceLongPolling?this.experimentalAutoDetectLongPolling=!1:e.experimentalAutoDetectLongPolling===void 0?this.experimentalAutoDetectLongPolling=!0:this.experimentalAutoDetectLongPolling=!!e.experimentalAutoDetectLongPolling,this.experimentalLongPollingOptions=t6((r=e.experimentalLongPollingOptions)!==null&&r!==void 0?r:{}),(function(o){if(o.timeoutSeconds!==void 0){if(isNaN(o.timeoutSeconds))throw new j(x.INVALID_ARGUMENT,`invalid long polling timeout: ${o.timeoutSeconds} (must not be NaN)`);if(o.timeoutSeconds<5)throw new j(x.INVALID_ARGUMENT,`invalid long polling timeout: ${o.timeoutSeconds} (minimum allowed value is 5)`);if(o.timeoutSeconds>30)throw new j(x.INVALID_ARGUMENT,`invalid long polling timeout: ${o.timeoutSeconds} (maximum allowed value is 30)`)}})(this.experimentalLongPollingOptions),this.useFetchStreams=!!e.useFetchStreams}isEqual(e){return this.host===e.host&&this.ssl===e.ssl&&this.credentials===e.credentials&&this.cacheSizeBytes===e.cacheSizeBytes&&this.experimentalForceLongPolling===e.experimentalForceLongPolling&&this.experimentalAutoDetectLongPolling===e.experimentalAutoDetectLongPolling&&(function(r,i){return r.timeoutSeconds===i.timeoutSeconds})(this.experimentalLongPollingOptions,e.experimentalLongPollingOptions)&&this.ignoreUndefinedProperties===e.ignoreUndefinedProperties&&this.useFetchStreams===e.useFetchStreams}},Ll=class{constructor(e,n,r,i){this._authCredentials=e,this._appCheckCredentials=n,this._databaseId=r,this._app=i,this.type="firestore-lite",this._persistenceKey="(lite)",this._settings=new hv({}),this._settingsFrozen=!1,this._emulatorOptions={},this._terminateTask="notTerminated"}get app(){if(!this._app)throw new j(x.FAILED_PRECONDITION,"Firestore was not initialized using the Firebase SDK. 'app' is not available");return this._app}get _initialized(){return this._settingsFrozen}get _terminated(){return this._terminateTask!=="notTerminated"}_setSettings(e){if(this._settingsFrozen)throw new j(x.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 hv(e),this._emulatorOptions=e.emulatorOptions||{},e.credentials!==void 0&&(this._authCredentials=(function(r){if(!r)return new Gb;switch(r.type){case"firstParty":return new Wb(r.sessionIndex||"0",r.iamToken||null,r.authTokenFactory||null);case"provider":return r.client;default:throw new j(x.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 this._terminateTask==="notTerminated"&&(this._terminateTask=this._terminate()),this._terminateTask}_restart(){return y(this,null,function*(){this._terminateTask==="notTerminated"?yield this._terminate():this._terminateTask="notTerminated"})}toJSON(){return{app:this._app,databaseId:this._databaseId,settings:this._settings}}_terminate(){return(function(n){let r=u3.get(n);r&&(H("ComponentProvider","Removing Datastore"),u3.delete(n),r.terminate())})(this),Promise.resolve()}};function r6(t,e,n,r={}){var i;t=or(t,Ll);let o=_r(e),s=t._getSettings(),a=Object.assign(Object.assign({},s),{emulatorOptions:t._getEmulatorOptions()}),c=`${e}:${n}`;o&&(ks(`https://${c}`),Fc("Firestore",!0)),s.host!==n6&&s.host!==c&&Qo("Host has been set in both settings() and connectFirestoreEmulator(), emulator host will be used.");let l=Object.assign(Object.assign({},s),{host:c,ssl:o,emulatorOptions:r});if(!oi(l,a)&&(t._setSettings(l),r.mockUserToken)){let d,h;if(typeof r.mockUserToken=="string")d=r.mockUserToken,h=Vt.MOCK_USER;else{d=FT(r.mockUserToken,(i=t._app)===null||i===void 0?void 0:i.options.projectId);let f=r.mockUserToken.sub||r.mockUserToken.user_id;if(!f)throw new j(x.INVALID_ARGUMENT,"mockUserToken must contain 'sub' or 'user_id' field!");h=new Vt(f)}t._authCredentials=new jb(new vI(d,h))}}var mi=class t{constructor(e,n,r){this.converter=n,this._query=r,this.type="query",this.firestore=e}withConverter(e){return new t(this.firestore,e,this._query)}},en=class t{constructor(e,n,r){this.converter=n,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 ua(this.firestore,this.converter,this._key.path.popLast())}withConverter(e){return new t(this.firestore,e,this._key)}toJSON(){return{type:t._jsonSchemaVersion,referencePath:this._key.toString()}}static fromJSON(e,n,r){if(rm(n,t._jsonSchema))return new t(e,r||null,new Z(ke.fromString(n.referencePath)))}};en._jsonSchemaVersion="firestore/documentReference/1.0",en._jsonSchema={type:Bt("string",en._jsonSchemaVersion),referencePath:Bt("string")};var ua=class t extends mi{constructor(e,n,r){super(e,n,am(r)),this._path=r,this.type="collection"}get id(){return this._query.path.lastSegment()}get path(){return this._query.path.canonicalString()}get parent(){let e=this._path.popLast();return e.isEmpty()?null:new en(this.firestore,null,new Z(e))}withConverter(e){return new t(this.firestore,e,this._path)}};function i6(t,e,...n){if(t=Me(t),X0("collection","path",e),t instanceof Ll){let r=ke.fromString(e,...n);return s$(r),new ua(t,null,r)}{if(!(t instanceof en||t instanceof ua))throw new j(x.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore");let r=t._path.child(ke.fromString(e,...n));return s$(r),new ua(t.firestore,null,r)}}function o6(t,e){if(t=or(t,Ll),X0("collectionGroup","collection id",e),e.indexOf("/")>=0)throw new j(x.INVALID_ARGUMENT,`Invalid collection ID '${e}' passed to function collectionGroup(). Collection IDs must not contain '/'.`);return new mi(t,null,(function(r){return new ao(ke.emptyPath(),r)})(e))}function s6(t,e,...n){if(t=Me(t),arguments.length===1&&(e=wg.newId()),X0("doc","path",e),t instanceof Ll){let r=ke.fromString(e,...n);return o$(r),new en(t,null,new Z(r))}{if(!(t instanceof en||t instanceof ua))throw new j(x.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore");let r=t._path.child(ke.fromString(e,...n));return o$(r),new en(t.firestore,t instanceof ua?t.converter:null,new Z(r))}}var h3="AsyncQueue",fv=class{constructor(e=Promise.resolve()){this.Zu=[],this.Xu=!1,this.ec=[],this.tc=null,this.nc=!1,this.rc=!1,this.sc=[],this.F_=new Qg(this,"async_queue_retry"),this.oc=()=>{let r=II();r&&H(h3,"Visibility state changed to "+r.visibilityState),this.F_.y_()},this._c=e;let n=II();n&&typeof n.addEventListener=="function"&&n.addEventListener("visibilitychange",this.oc)}get isShuttingDown(){return this.Xu}enqueueAndForget(e){this.enqueue(e)}enqueueAndForgetEvenWhileRestricted(e){this.ac(),this.uc(e)}enterRestrictedMode(e){if(!this.Xu){this.Xu=!0,this.rc=e||!1;let n=II();n&&typeof n.removeEventListener=="function"&&n.removeEventListener("visibilitychange",this.oc)}}enqueue(e){if(this.ac(),this.Xu)return new Promise(()=>{});let n=new ir;return this.uc(()=>this.Xu&&this.rc?Promise.resolve():(e().then(n.resolve,n.reject),n.promise)).then(()=>n.promise)}enqueueRetryable(e){this.enqueueAndForget(()=>(this.Zu.push(e),this.cc()))}cc(){return y(this,null,function*(){if(this.Zu.length!==0){try{yield this.Zu[0](),this.Zu.shift(),this.F_.reset()}catch(e){if(!Sa(e))throw e;H(h3,"Operation failed with retryable error: "+e)}this.Zu.length>0&&this.F_.g_(()=>this.cc())}})}uc(e){let n=this._c.then(()=>(this.nc=!0,e().catch(r=>{throw this.tc=r,this.nc=!1,Mt("INTERNAL UNHANDLED ERROR: ",f3(r)),r}).then(r=>(this.nc=!1,r))));return this._c=n,n}enqueueAfterDelay(e,n,r){this.ac(),this.sc.indexOf(e)>-1&&(n=0);let i=_0.createAndSchedule(this,e,n,r,o=>this.lc(o));return this.ec.push(i),i}ac(){this.tc&&re(47125,{hc:f3(this.tc)})}verifyOperationInProgress(){}Pc(){return y(this,null,function*(){let e;do e=this._c,yield e;while(e!==this._c)})}Tc(e){for(let n of this.ec)if(n.timerId===e)return!0;return!1}Ic(e){return this.Pc().then(()=>{this.ec.sort((n,r)=>n.targetTimeMs-r.targetTimeMs);for(let n of this.ec)if(n.skipDelay(),e!=="all"&&n.timerId===e)break;return this.Pc()})}dc(e){this.sc.push(e)}lc(e){let n=this.ec.indexOf(e);this.ec.splice(n,1)}};function f3(t){let e=t.message||"";return t.stack&&(e=t.stack.includes(t.message)?t.stack:t.message+`
|
|
174
|
-
`+t.stack),e}function p3(t){return(function(n,r){if(typeof n!="object"||n===null)return!1;let i=n;for(let o of r)if(o in i&&typeof i[o]=="function")return!0;return!1})(t,["next","error","complete"])}var Ei=class extends Ll{constructor(e,n,r,i){super(e,n,r,i),this.type="firestore",this._queue=new fv,this._persistenceKey=i?.name||"[DEFAULT]"}_terminate(){return y(this,null,function*(){if(this._firestoreClient){let e=this._firestoreClient.terminate();this._queue=new fv(e),this._firestoreClient=void 0,yield e}})}};function bv(t,e,n){n||(n=Fg);let r=Xi(t,"firestore");if(r.isInitialized(n)){let i=r.getImmediate({identifier:n}),o=r.getOptions(n);if(oi(o,e))return i;throw new j(x.FAILED_PRECONDITION,"initializeFirestore() has already been called with different options. To avoid this error, call initializeFirestore() with the same options as when it was originally called, or call getFirestore() to return the already initialized instance.")}if(e.cacheSizeBytes!==void 0&&e.localCache!==void 0)throw new j(x.INVALID_ARGUMENT,"cache and cacheSizeBytes cannot be specified at the same time as cacheSizeBytes willbe deprecated. Instead, specify the cache size in the cache object");if(e.cacheSizeBytes!==void 0&&e.cacheSizeBytes!==-1&&e.cacheSizeBytes<OW)throw new j(x.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");return e.host&&_r(e.host)&&ks(e.host),r.initialize({options:e,instanceIdentifier:n})}function Rh(t,e){let n=typeof t=="object"?t:er(),r=typeof t=="string"?t:e||Fg,i=Xi(n,"firestore").getImmediate({identifier:r});if(!i._initialized){let o=ud("firestore");o&&r6(i,...o)}return i}function Nh(t){if(t._terminated)throw new j(x.FAILED_PRECONDITION,"The client has already been terminated.");return t._firestoreClient||ice(t),t._firestoreClient}function ice(t){var e,n,r;let i=t._freezeSettings(),o=(function(a,c,l,d){return new nO(a,c,l,d.host,d.ssl,d.experimentalForceLongPolling,d.experimentalAutoDetectLongPolling,t6(d.experimentalLongPollingOptions),d.useFetchStreams,d.isUsingEmulator)})(t._databaseId,((e=t._app)===null||e===void 0?void 0:e.options.appId)||"",t._persistenceKey,i);t._componentsProvider||!((n=i.localCache)===null||n===void 0)&&n._offlineComponentProvider&&(!((r=i.localCache)===null||r===void 0)&&r._onlineComponentProvider)&&(t._componentsProvider={_offline:i.localCache._offlineComponentProvider,_online:i.localCache._onlineComponentProvider}),t._firestoreClient=new O0(t._authCredentials,t._appCheckCredentials,t._queue,o,t._componentsProvider&&(function(a){let c=a?._online.build();return{_offline:a?._offline.build(c),_online:c}})(t._componentsProvider))}var M0=class{constructor(e="count",n){this._internalFieldPath=n,this.type="AggregateField",this.aggregateType=e}},L0=class{constructor(e,n,r){this._userDataWriter=n,this._data=r,this.type="AggregateQuerySnapshot",this.query=e}data(){return this._userDataWriter.convertObjectMap(this._data)}};var Xo=class t{constructor(e){this._byteString=e}static fromBase64String(e){try{return new t(Gt.fromBase64String(e))}catch(n){throw new j(x.INVALID_ARGUMENT,"Failed to construct data from Base64 string: "+n)}}static fromUint8Array(e){return new t(Gt.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)}toJSON(){return{type:t._jsonSchemaVersion,bytes:this.toBase64()}}static fromJSON(e){if(rm(e,t._jsonSchema))return t.fromBase64String(e.bytes)}};Xo._jsonSchemaVersion="firestore/bytes/1.0",Xo._jsonSchema={type:Bt("string",Xo._jsonSchemaVersion),bytes:Bt("string")};var yh=class{constructor(...e){for(let n=0;n<e.length;++n)if(e[n].length===0)throw new j(x.INVALID_ARGUMENT,"Invalid field name at argument $(i + 1). Field names must not be empty.");this._internalPath=new Jt(e)}isEqual(e){return this._internalPath.isEqual(e._internalPath)}};var em=class{constructor(e){this._methodName=e}};var da=class t{constructor(e,n){if(!isFinite(e)||e<-90||e>90)throw new j(x.INVALID_ARGUMENT,"Latitude must be a number between -90 and 90, but was: "+e);if(!isFinite(n)||n<-180||n>180)throw new j(x.INVALID_ARGUMENT,"Longitude must be a number between -180 and 180, but was: "+n);this._lat=e,this._long=n}get latitude(){return this._lat}get longitude(){return this._long}isEqual(e){return this._lat===e._lat&&this._long===e._long}_compareTo(e){return Ie(this._lat,e._lat)||Ie(this._long,e._long)}toJSON(){return{latitude:this._lat,longitude:this._long,type:t._jsonSchemaVersion}}static fromJSON(e){if(rm(e,t._jsonSchema))return new t(e.latitude,e.longitude)}};da._jsonSchemaVersion="firestore/geoPoint/1.0",da._jsonSchema={type:Bt("string",da._jsonSchemaVersion),latitude:Bt("number"),longitude:Bt("number")};var ha=class t{constructor(e){this._values=(e||[]).map(n=>n)}toArray(){return this._values.map(e=>e)}isEqual(e){return(function(r,i){if(r.length!==i.length)return!1;for(let o=0;o<r.length;++o)if(r[o]!==i[o])return!1;return!0})(this._values,e._values)}toJSON(){return{type:t._jsonSchemaVersion,vectorValues:this._values}}static fromJSON(e){if(rm(e,t._jsonSchema)){if(Array.isArray(e.vectorValues)&&e.vectorValues.every(n=>typeof n=="number"))return new t(e.vectorValues);throw new j(x.INVALID_ARGUMENT,"Expected 'vectorValues' field to be a number array")}}};ha._jsonSchemaVersion="firestore/vectorValue/1.0",ha._jsonSchema={type:Bt("string",ha._jsonSchemaVersion),vectorValues:Bt("object")};var oce=/^__.*__$/,P0=class{constructor(e,n,r){this.data=e,this.fieldMask=n,this.fieldTransforms=r}toMutation(e,n){return this.fieldMask!==null?new gi(e,this.data,this.fieldMask,n,this.fieldTransforms):new Ta(e,this.data,n,this.fieldTransforms)}},pv=class{constructor(e,n,r){this.data=e,this.fieldMask=n,this.fieldTransforms=r}toMutation(e,n){return new gi(e,this.data,this.fieldMask,n,this.fieldTransforms)}};function a6(t){switch(t){case 0:case 2:case 1:return!0;case 3:case 4:return!1;default:throw re(40011,{Ec:t})}}var x0=class t{constructor(e,n,r,i,o,s){this.settings=e,this.databaseId=n,this.serializer=r,this.ignoreUndefinedProperties=i,o===void 0&&this.Ac(),this.fieldTransforms=o||[],this.fieldMask=s||[]}get path(){return this.settings.path}get Ec(){return this.settings.Ec}Rc(e){return new t(Object.assign(Object.assign({},this.settings),e),this.databaseId,this.serializer,this.ignoreUndefinedProperties,this.fieldTransforms,this.fieldMask)}Vc(e){var n;let r=(n=this.path)===null||n===void 0?void 0:n.child(e),i=this.Rc({path:r,mc:!1});return i.fc(e),i}gc(e){var n;let r=(n=this.path)===null||n===void 0?void 0:n.child(e),i=this.Rc({path:r,mc:!1});return i.Ac(),i}yc(e){return this.Rc({path:void 0,mc:!0})}wc(e){return mv(e,this.settings.methodName,this.settings.Sc||!1,this.path,this.settings.bc)}contains(e){return this.fieldMask.find(n=>e.isPrefixOf(n))!==void 0||this.fieldTransforms.find(n=>e.isPrefixOf(n.field))!==void 0}Ac(){if(this.path)for(let e=0;e<this.path.length;e++)this.fc(this.path.get(e))}fc(e){if(e.length===0)throw this.wc("Document fields must not be empty");if(a6(this.Ec)&&oce.test(e))throw this.wc('Document fields cannot begin and end with "__"')}},k0=class{constructor(e,n,r){this.databaseId=e,this.ignoreUndefinedProperties=n,this.serializer=r||Dv(e)}Dc(e,n,r,i=!1){return new x0({Ec:e,methodName:n,bc:r,path:Jt.emptyPath(),mc:!1,Sc:i},this.databaseId,this.serializer,this.ignoreUndefinedProperties)}};function Ov(t){let e=t._freezeSettings(),n=Dv(t._databaseId);return new k0(t._databaseId,!!e.ignoreUndefinedProperties,n)}function c6(t,e,n,r,i,o={}){let s=t.Dc(o.merge||o.mergeFields?2:0,e,n,i);NM("Data must be an object, but it was:",s,r);let a=u6(r,s),c,l;if(o.merge)c=new Cr(s.fieldMask),l=s.fieldTransforms;else if(o.mergeFields){let d=[];for(let h of o.mergeFields){let f=F0(e,h,n);if(!s.contains(f))throw new j(x.INVALID_ARGUMENT,`Field '${f}' is specified in your field mask but missing from your input data.`);h6(d,f)||d.push(f)}c=new Cr(d),l=s.fieldTransforms.filter(h=>c.covers(h.field))}else c=null,l=s.fieldTransforms;return new P0(new Fn(a),c,l)}var gv=class t extends em{_toFieldTransform(e){if(e.Ec!==2)throw e.Ec===1?e.wc(`${this._methodName}() can only appear at the top level of your update data`):e.wc(`${this._methodName}() cannot be used with set() unless you pass {merge:true}`);return e.fieldMask.push(e.path),null}isEqual(e){return e instanceof t}};function sce(t,e,n,r){let i=t.Dc(1,e,n);NM("Data must be an object, but it was:",i,r);let o=[],s=Fn.empty();Aa(r,(c,l)=>{let d=wM(e,c,n);l=Me(l);let h=i.gc(d);if(l instanceof gv)o.push(d);else{let f=um(l,h);f!=null&&(o.push(d),s.set(d,f))}});let a=new Cr(o);return new pv(s,a,i.fieldTransforms)}function ace(t,e,n,r,i,o){let s=t.Dc(1,e,n),a=[F0(e,r,n)],c=[i];if(o.length%2!=0)throw new j(x.INVALID_ARGUMENT,`Function ${e}() needs to be called with an even number of arguments that alternate between field names and values.`);for(let f=0;f<o.length;f+=2)a.push(F0(e,o[f])),c.push(o[f+1]);let l=[],d=Fn.empty();for(let f=a.length-1;f>=0;--f)if(!h6(l,a[f])){let g=a[f],E=c[f];E=Me(E);let I=s.gc(g);if(E instanceof gv)l.push(g);else{let S=um(E,I);S!=null&&(l.push(g),d.set(g,S))}}let h=new Cr(l);return new pv(d,h,s.fieldTransforms)}function l6(t,e,n,r=!1){return um(n,t.Dc(r?4:3,e))}function um(t,e){if(d6(t=Me(t)))return NM("Unsupported field value:",e,t),u6(t,e);if(t instanceof em)return(function(r,i){if(!a6(i.Ec))throw i.wc(`${r._methodName}() can only be used with update() and set()`);if(!i.path)throw i.wc(`${r._methodName}() is not currently supported inside arrays`);let o=r._toFieldTransform(i);o&&i.fieldTransforms.push(o)})(t,e),null;if(t===void 0&&e.ignoreUndefinedProperties)return null;if(e.path&&e.fieldMask.push(e.path),t instanceof Array){if(e.settings.mc&&e.Ec!==4)throw e.wc("Nested arrays are not supported");return(function(r,i){let o=[],s=0;for(let a of r){let c=um(a,i.yc(s));c==null&&(c={nullValue:"NULL_VALUE"}),o.push(c),s++}return{arrayValue:{values:o}}})(t,e)}return(function(r,i){if((r=Me(r))===null)return{nullValue:"NULL_VALUE"};if(typeof r=="number")return zse(i.serializer,r);if(typeof r=="boolean")return{booleanValue:r};if(typeof r=="string")return{stringValue:r};if(r instanceof Date){let o=Tt.fromDate(r);return{timestampValue:fh(i.serializer,o)}}if(r instanceof Tt){let o=new Tt(r.seconds,1e3*Math.floor(r.nanoseconds/1e3));return{timestampValue:fh(i.serializer,o)}}if(r instanceof da)return{geoPointValue:{latitude:r.latitude,longitude:r.longitude}};if(r instanceof Xo)return{bytesValue:fW(i.serializer,r._byteString)};if(r instanceof en){let o=i.databaseId,s=r.firestore._databaseId;if(!s.isEqual(o))throw i.wc(`Document reference is for database ${s.projectId}/${s.database} but should be for database ${o.projectId}/${o.database}`);return{referenceValue:lM(r.firestore._databaseId||i.databaseId,r._key.path)}}if(r instanceof ha)return(function(s,a){return{mapValue:{fields:{[rM]:{stringValue:iM},[ch]:{arrayValue:{values:s.toArray().map(l=>{if(typeof l!="number")throw a.wc("VectorValues must only contain numeric values.");return cM(a.serializer,l)})}}}}}})(r,i);throw i.wc(`Unsupported field value: ${_v(r)}`)})(t,e)}function u6(t,e){let n={};return k3(t)?e.path&&e.path.length>0&&e.fieldMask.push(e.path):Aa(t,(r,i)=>{let o=um(i,e.Vc(r));o!=null&&(n[r]=o)}),{mapValue:{fields:n}}}function d6(t){return!(typeof t!="object"||t===null||t instanceof Array||t instanceof Date||t instanceof Tt||t instanceof da||t instanceof Xo||t instanceof en||t instanceof em||t instanceof ha)}function NM(t,e,n){if(!d6(n)||!y3(n)){let r=_v(n);throw r==="an object"?e.wc(t+" a custom object"):e.wc(t+" "+r)}}function F0(t,e,n){if((e=Me(e))instanceof yh)return e._internalPath;if(typeof e=="string")return wM(t,e);throw mv("Field path arguments must be of type string or ",t,!1,void 0,n)}var cce=new RegExp("[~\\*/\\[\\]]");function wM(t,e,n){if(e.search(cce)>=0)throw mv(`Invalid field path (${e}). Paths must not contain '~', '*', '/', '[', or ']'`,t,!1,void 0,n);try{return new yh(...e.split("."))._internalPath}catch{throw mv(`Invalid field path (${e}). Paths must not be empty, begin with '.', end with '.', or contain '..'`,t,!1,void 0,n)}}function mv(t,e,n,r,i){let o=r&&!r.isEmpty(),s=i!==void 0,a=`Function ${e}() called with invalid data`;n&&(a+=" (via `toFirestore()`)"),a+=". ";let c="";return(o||s)&&(c+=" (found",o&&(c+=` in field ${r}`),s&&(c+=` in document ${i}`),c+=")"),new j(x.INVALID_ARGUMENT,a+t+c)}function h6(t,e){return t.some(n=>n.isEqual(e))}var Pl=class{constructor(e,n,r,i,o){this._firestore=e,this._userDataWriter=n,this._key=r,this._document=i,this._converter=o}get id(){return this._key.path.lastSegment()}get ref(){return new en(this._firestore,this._converter,this._key)}exists(){return this._document!==null}data(){if(this._document){if(this._converter){let e=new U0(this._firestore,this._userDataWriter,this._key,this._document,null);return this._converter.fromFirestore(e)}return this._userDataWriter.convertValue(this._document.data.value)}}get(e){if(this._document){let n=this._document.data.field(Mv("DocumentSnapshot.get",e));if(n!==null)return this._userDataWriter.convertValue(n)}}},U0=class extends Pl{data(){return super.data()}};function Mv(t,e){return typeof e=="string"?wM(t,e):e instanceof yh?e._internalPath:e._delegate._internalPath}function f6(t){if(t.limitType==="L"&&t.explicitOrderBy.length===0)throw new j(x.UNIMPLEMENTED,"limitToLast() queries require specifying at least one orderBy() clause")}var tm=class{},Ih=class extends tm{};function p6(t,e,...n){let r=[];e instanceof tm&&r.push(e),r=r.concat(n),(function(o){let s=o.filter(c=>c instanceof vh).length,a=o.filter(c=>c instanceof nm).length;if(s>1||s>0&&a>0)throw new j(x.INVALID_ARGUMENT,"InvalidQuery. When using composite filters, you cannot use more than one filter at the top level. Consider nesting the multiple filters within an `and(...)` statement. For example: change `query(query, where(...), or(...))` to `query(query, and(where(...), or(...)))`.")})(r);for(let i of r)t=i._apply(t);return t}var nm=class t extends Ih{constructor(e,n,r){super(),this._field=e,this._op=n,this._value=r,this.type="where"}static _create(e,n,r){return new t(e,n,r)}_apply(e){let n=this._parse(e);return I6(e._query,n),new mi(e.firestore,e.converter,gO(e._query,n))}_parse(e){let n=Ov(e.firestore);return(function(o,s,a,c,l,d,h){let f;if(l.isKeyField()){if(d==="array-contains"||d==="array-contains-any")throw new j(x.INVALID_ARGUMENT,`Invalid Query. You can't perform '${d}' queries on documentId().`);if(d==="in"||d==="not-in"){m3(h,d);let E=[];for(let I of h)E.push(g3(c,o,I));f={arrayValue:{values:E}}}else f=g3(c,o,h)}else d!=="in"&&d!=="not-in"&&d!=="array-contains-any"||m3(h,d),f=l6(a,s,h,d==="in"||d==="not-in");return Le.create(l,d,f)})(e._query,"where",n,e.firestore._databaseId,this._field,this._op,this._value)}};function g6(t,e,n){let r=e,i=Mv("where",t);return nm._create(i,r,n)}var vh=class t extends tm{constructor(e,n){super(),this.type=e,this._queryConstraints=n}static _create(e,n){return new t(e,n)}_parse(e){let n=this._queryConstraints.map(r=>r._parse(e)).filter(r=>r.getFilters().length>0);return n.length===1?n[0]:Xe.create(n,this._getOperator())}_apply(e){let n=this._parse(e);return n.getFilters().length===0?e:((function(i,o){let s=i,a=o.getFlattenedFilters();for(let c of a)I6(s,c),s=gO(s,c)})(e._query,n),new mi(e.firestore,e.converter,gO(e._query,n)))}_getQueryConstraints(){return this._queryConstraints}_getOperator(){return this.type==="and"?"and":"or"}};function m6(...t){return t.forEach(e=>v6("or",e)),vh._create("or",t)}function E6(...t){return t.forEach(e=>v6("and",e)),vh._create("and",t)}var V0=class t extends Ih{constructor(e,n){super(),this._field=e,this._direction=n,this.type="orderBy"}static _create(e,n){return new t(e,n)}_apply(e){let n=(function(i,o,s){if(i.startAt!==null)throw new j(x.INVALID_ARGUMENT,"Invalid query. You must not call startAt() or startAfter() before calling orderBy().");if(i.endAt!==null)throw new j(x.INVALID_ARGUMENT,"Invalid query. You must not call endAt() or endBefore() before calling orderBy().");return new Cl(o,s)})(e._query,this._field,this._direction);return new mi(e.firestore,e.converter,(function(i,o){let s=i.explicitOrderBy.concat([o]);return new ao(i.path,i.collectionGroup,s,i.filters.slice(),i.limit,i.limitType,i.startAt,i.endAt)})(e._query,n))}};function _6(t,e="asc"){let n=e,r=Mv("orderBy",t);return V0._create(r,n)}var B0=class t extends Ih{constructor(e,n,r){super(),this.type=e,this._limit=n,this._limitType=r}static _create(e,n,r){return new t(e,n,r)}_apply(e){return new mi(e.firestore,e.converter,kI(e._query,this._limit,this._limitType))}};function T6(t){return cse("limit",t),B0._create("limit",t,"F")}var G0=class t extends Ih{constructor(e,n,r){super(),this.type=e,this._docOrFields=n,this._inclusive=r}static _create(e,n,r){return new t(e,n,r)}_apply(e){let n=lce(e,this.type,this._docOrFields,this._inclusive);return new mi(e.firestore,e.converter,(function(i,o){return new ao(i.path,i.collectionGroup,i.explicitOrderBy.slice(),i.filters.slice(),i.limit,i.limitType,o,i.endAt)})(e._query,n))}};function y6(...t){return G0._create("startAfter",t,!1)}function lce(t,e,n,r){if(n[0]=Me(n[0]),n[0]instanceof Pl)return(function(o,s,a,c,l){if(!c)throw new j(x.NOT_FOUND,`Can't use a DocumentSnapshot that doesn't exist for ${a}().`);let d=[];for(let h of Xd(o))if(h.field.isKeyField())d.push(Al(s,c.key));else{let f=c.data.field(h.field);if(vv(f))throw new j(x.INVALID_ARGUMENT,'Invalid query. You are trying to start or end a query using a document for which the field "'+h.field+'" is an uncommitted server timestamp. (Since the value of this field is unknown, you cannot start/end a query with it.)');if(f===null){let g=h.field.canonicalString();throw new j(x.INVALID_ARGUMENT,`Invalid query. You are trying to start or end a query using a document for which the field '${g}' (used as the orderBy) does not exist.`)}d.push(f)}return new so(d,l)})(t._query,t.firestore._databaseId,e,n[0]._document,r);{let i=Ov(t.firestore);return(function(s,a,c,l,d,h){let f=s.explicitOrderBy;if(d.length>f.length)throw new j(x.INVALID_ARGUMENT,`Too many arguments provided to ${l}(). The number of arguments must be less than or equal to the number of orderBy() clauses`);let g=[];for(let E=0;E<d.length;E++){let I=d[E];if(f[E].field.isKeyField()){if(typeof I!="string")throw new j(x.INVALID_ARGUMENT,`Invalid query. Expected a string for document ID in ${l}(), but got a ${typeof I}`);if(!sM(s)&&I.indexOf("/")!==-1)throw new j(x.INVALID_ARGUMENT,`Invalid query. When querying a collection and ordering by documentId(), the value passed to ${l}() must be a plain document ID, but '${I}' contains a slash.`);let S=s.path.child(ke.fromString(I));if(!Z.isDocumentKey(S))throw new j(x.INVALID_ARGUMENT,`Invalid query. When querying a collection group and ordering by documentId(), the value passed to ${l}() must result in a valid document path, but '${S}' is not because it contains an odd number of segments.`);let L=new Z(S);g.push(Al(a,L))}else{let S=l6(c,l,I);g.push(S)}}return new so(g,h)})(t._query,t.firestore._databaseId,i,e,n,r)}}function g3(t,e,n){if(typeof(n=Me(n))=="string"){if(n==="")throw new j(x.INVALID_ARGUMENT,"Invalid query. When querying with documentId(), you must provide a valid document ID, but it was an empty string.");if(!sM(e)&&n.indexOf("/")!==-1)throw new j(x.INVALID_ARGUMENT,`Invalid query. When querying a collection by documentId(), you must provide a plain document ID, but '${n}' contains a '/' character.`);let r=e.path.child(ke.fromString(n));if(!Z.isDocumentKey(r))throw new j(x.INVALID_ARGUMENT,`Invalid query. When querying a collection group by documentId(), the value provided must result in a valid document path, but '${r}' is not because it has an odd number of segments (${r.length}).`);return Al(t,new Z(r))}if(n instanceof en)return Al(t,n._key);throw new j(x.INVALID_ARGUMENT,`Invalid query. When querying with documentId(), you must provide a valid string or a DocumentReference, but it was: ${_v(n)}.`)}function m3(t,e){if(!Array.isArray(t)||t.length===0)throw new j(x.INVALID_ARGUMENT,`Invalid Query. A non-empty array is required for '${e.toString()}' filters.`)}function I6(t,e){let n=(function(i,o){for(let s of i)for(let a of s.getFlattenedFilters())if(o.indexOf(a.op)>=0)return a.op;return null})(t.filters,(function(i){switch(i){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[]}})(e.op));if(n!==null)throw n===e.op?new j(x.INVALID_ARGUMENT,`Invalid query. You cannot use more than one '${e.op.toString()}' filter.`):new j(x.INVALID_ARGUMENT,`Invalid query. You cannot use '${e.op.toString()}' filters with '${n.toString()}' filters.`)}function v6(t,e){if(!(e instanceof nm||e instanceof vh))throw new j(x.INVALID_ARGUMENT,`Function ${t}() requires AppliableConstraints created with a call to 'where(...)', 'or(...)', or 'and(...)'.`)}var Ev=class{convertValue(e,n="none"){switch(ga(e)){case 0:return null;case 1:return e.booleanValue;case 2:return _t(e.integerValue||e.doubleValue);case 3:return this.convertTimestamp(e.timestampValue);case 4:return this.convertServerTimestamp(e,n);case 5:return e.stringValue;case 6:return this.convertBytes(Zo(e.bytesValue));case 7:return this.convertReference(e.referenceValue);case 8:return this.convertGeoPoint(e.geoPointValue);case 9:return this.convertArray(e.arrayValue,n);case 11:return this.convertObject(e.mapValue,n);case 10:return this.convertVectorValue(e.mapValue);default:throw re(62114,{value:e})}}convertObject(e,n){return this.convertObjectMap(e.fields,n)}convertObjectMap(e,n="none"){let r={};return Aa(e,(i,o)=>{r[i]=this.convertValue(o,n)}),r}convertVectorValue(e){var n,r,i;let o=(i=(r=(n=e.fields)===null||n===void 0?void 0:n[ch].arrayValue)===null||r===void 0?void 0:r.values)===null||i===void 0?void 0:i.map(s=>_t(s.doubleValue));return new ha(o)}convertGeoPoint(e){return new da(_t(e.latitude),_t(e.longitude))}convertArray(e,n){return(e.values||[]).map(r=>this.convertValue(r,n))}convertServerTimestamp(e,n){switch(n){case"previous":let r=Sv(e);return r==null?null:this.convertValue(r,n);case"estimate":return this.convertTimestamp(kg(e));default:return null}}convertTimestamp(e){let n=Jo(e);return new Tt(n.seconds,n.nanos)}convertDocumentKey(e,n){let r=ke.fromString(e);ae(vW(r),9688,{name:e});let i=new ah(r.get(1),r.get(3)),o=new Z(r.popFirst(5));return i.isEqual(n)||Mt(`Document ${o} contains a document reference within a different database (${i.projectId}/${i.database}) which is not supported. It will be treated as a reference in the current database (${n.projectId}/${n.database}) instead.`),o}};function S6(t,e,n){let r;return r=t?n&&(n.merge||n.mergeFields)?t.toFirestore(e,n):t.toFirestore(e):e,r}var j0=class extends Ev{constructor(e){super(),this.firestore=e}convertBytes(e){return new Xo(e)}convertReference(e){let n=this.convertDocumentKey(e,this.firestore._databaseId);return new en(this.firestore,null,n)}};function uce(){return new M0("count")}var la=class{constructor(e,n){this.hasPendingWrites=e,this.fromCache=n}isEqual(e){return this.hasPendingWrites===e.hasPendingWrites&&this.fromCache===e.fromCache}},fa=class t extends Pl{constructor(e,n,r,i,o,s){super(e,n,r,i,s),this._firestore=e,this._firestoreImpl=e,this.metadata=o}exists(){return super.exists()}data(e={}){if(this._document){if(this._converter){let n=new Jd(this._firestore,this._userDataWriter,this._key,this._document,this.metadata,null);return this._converter.fromFirestore(n,e)}return this._userDataWriter.convertValue(this._document.data.value,e.serverTimestamps)}}get(e,n={}){if(this._document){let r=this._document.data.field(Mv("DocumentSnapshot.get",e));if(r!==null)return this._userDataWriter.convertValue(r,n.serverTimestamps)}}toJSON(){if(this.metadata.hasPendingWrites)throw new j(x.FAILED_PRECONDITION,"DocumentSnapshot.toJSON() attempted to serialize a document with pending writes. Await waitForPendingWrites() before invoking toJSON().");let e=this._document,n={};return n.type=t._jsonSchemaVersion,n.bundle="",n.bundleSource="DocumentSnapshot",n.bundleName=this._key.toString(),!e||!e.isValidDocument()||!e.isFoundDocument()?n:(this._userDataWriter.convertObjectMap(e.data.value.mapValue.fields,"previous"),n.bundle=(this._firestore,this.ref.path,"NOT SUPPORTED"),n)}};fa._jsonSchemaVersion="firestore/documentSnapshot/1.0",fa._jsonSchema={type:Bt("string",fa._jsonSchemaVersion),bundleSource:Bt("string","DocumentSnapshot"),bundleName:Bt("string"),bundle:Bt("string")};var Jd=class extends fa{data(e={}){return super.data(e)}},Sl=class t{constructor(e,n,r,i){this._firestore=e,this._userDataWriter=n,this._snapshot=i,this.metadata=new la(i.hasPendingWrites,i.fromCache),this.query=r}get docs(){let e=[];return this.forEach(n=>e.push(n)),e}get size(){return this._snapshot.docs.size}get empty(){return this.size===0}forEach(e,n){this._snapshot.docs.forEach(r=>{e.call(n,new Jd(this._firestore,this._userDataWriter,r.key,r,new la(this._snapshot.mutatedKeys.has(r.key),this._snapshot.fromCache),this.query.converter))})}docChanges(e={}){let n=!!e.includeMetadataChanges;if(n&&this._snapshot.excludesMetadataChanges)throw new j(x.INVALID_ARGUMENT,"To include metadata changes with your document changes, you must also pass { includeMetadataChanges:true } to onSnapshot().");return this._cachedChanges&&this._cachedChangesIncludeMetadataChanges===n||(this._cachedChanges=(function(i,o){if(i._snapshot.oldDocs.isEmpty()){let s=0;return i._snapshot.docChanges.map(a=>{let c=new Jd(i._firestore,i._userDataWriter,a.doc.key,a.doc,new la(i._snapshot.mutatedKeys.has(a.doc.key),i._snapshot.fromCache),i.query.converter);return a.doc,{type:"added",doc:c,oldIndex:-1,newIndex:s++}})}{let s=i._snapshot.oldDocs;return i._snapshot.docChanges.filter(a=>o||a.type!==3).map(a=>{let c=new Jd(i._firestore,i._userDataWriter,a.doc.key,a.doc,new la(i._snapshot.mutatedKeys.has(a.doc.key),i._snapshot.fromCache),i.query.converter),l=-1,d=-1;return a.type!==0&&(l=s.indexOf(a.doc.key),s=s.delete(a.doc.key)),a.type!==1&&(s=s.add(a.doc),d=s.indexOf(a.doc.key)),{type:dce(a.type),doc:c,oldIndex:l,newIndex:d}})}})(this,n),this._cachedChangesIncludeMetadataChanges=n),this._cachedChanges}toJSON(){if(this.metadata.hasPendingWrites)throw new j(x.FAILED_PRECONDITION,"QuerySnapshot.toJSON() attempted to serialize a document with pending writes. Await waitForPendingWrites() before invoking toJSON().");let e={};e.type=t._jsonSchemaVersion,e.bundleSource="QuerySnapshot",e.bundleName=wg.newId(),this._firestore._databaseId.database,this._firestore._databaseId.projectId;let n=[],r=[],i=[];return this.docs.forEach(o=>{o._document!==null&&(n.push(o._document),r.push(this._userDataWriter.convertObjectMap(o._document.data.value.mapValue.fields,"previous")),i.push(o.ref.path))}),e.bundle=(this._firestore,this.query._query,e.bundleName,"NOT SUPPORTED"),e}};function dce(t){switch(t){case 0:return"added";case 2:case 3:return"modified";case 1:return"removed";default:return re(61501,{type:t})}}function A6(t){t=or(t,en);let e=or(t.firestore,Ei);return tce(Nh(e),t._key).then(n=>b6(e,t,n))}Sl._jsonSchemaVersion="firestore/querySnapshot/1.0",Sl._jsonSchema={type:Bt("string",Sl._jsonSchemaVersion),bundleSource:Bt("string","QuerySnapshot"),bundleName:Bt("string"),bundle:Bt("string")};var xl=class extends Ev{constructor(e){super(),this.firestore=e}convertBytes(e){return new Xo(e)}convertReference(e){let n=this.convertDocumentKey(e,this.firestore._databaseId);return new en(this.firestore,null,n)}};function C6(t){t=or(t,mi);let e=or(t.firestore,Ei),n=Nh(e),r=new xl(e);return f6(t._query),nce(n,t._query).then(i=>new Sl(e,r,t,i))}function D6(t,e,n){t=or(t,en);let r=or(t.firestore,Ei),i=S6(t.converter,e,n);return w6(r,[c6(Ov(r),"setDoc",t._key,i,t.converter!==null,n).toMutation(t._key,yn.none())])}function R6(t){return w6(or(t.firestore,Ei),[new wl(t._key,yn.none())])}function N6(t,...e){var n,r,i;t=Me(t);let o={includeMetadataChanges:!1,source:"default"},s=0;typeof e[s]!="object"||p3(e[s])||(o=e[s++]);let a={includeMetadataChanges:o.includeMetadataChanges,source:o.source};if(p3(e[s])){let h=e[s];e[s]=(n=h.next)===null||n===void 0?void 0:n.bind(h),e[s+1]=(r=h.error)===null||r===void 0?void 0:r.bind(h),e[s+2]=(i=h.complete)===null||i===void 0?void 0:i.bind(h)}let c,l,d;if(t instanceof en)l=or(t.firestore,Ei),d=am(t._key.path),c={next:h=>{e[s]&&e[s](b6(l,t,h))},error:e[s+1],complete:e[s+2]};else{let h=or(t,mi);l=or(h.firestore,Ei),d=h._query;let f=new xl(l);c={next:g=>{e[s]&&e[s](new Sl(l,f,h,g))},error:e[s+1],complete:e[s+2]},f6(t._query)}return(function(f,g,E,I){let S=new Zg(I),L=new Jg(g,S,E);return f.asyncQueue.enqueueAndForget(()=>y(null,null,function*(){return EM(yield dv(f),L)})),()=>{S.Ou(),f.asyncQueue.enqueueAndForget(()=>y(null,null,function*(){return _M(yield dv(f),L)}))}})(Nh(l),d,a,c)}function w6(t,e){return(function(r,i){let o=new ir;return r.asyncQueue.enqueueAndForget(()=>y(null,null,function*(){return Vae(yield ece(r),i,o)})),o.promise})(Nh(t),e)}function b6(t,e,n){let r=n.docs.get(e._key),i=new xl(t);return new fa(t,i,e._key,r,new la(n.hasPendingWrites,n.fromCache),e.converter)}function O6(t){return M6(t,{count:uce()})}function M6(t,e){let n=or(t.firestore,Ei),r=Nh(n),i=xse(e,(o,s)=>new TO(s,o.aggregateType,o._internalFieldPath));return rce(r,t._query,i).then(o=>(function(a,c,l){let d=new xl(a);return new L0(c,d,l)})(n,t,o))}var H0=class{constructor(e){let n;this.kind="persistent",e?.tabManager?(e.tabManager._initialize(e),n=e.tabManager):(n=hce(void 0),n._initialize(e)),this._onlineComponentProvider=n._onlineComponentProvider,this._offlineComponentProvider=n._offlineComponentProvider}toJSON(){return{kind:this.kind}}};function bM(t){return new H0(t)}var $0=class{constructor(e){this.forceOwnership=e,this.kind="persistentSingleTab"}toJSON(){return{kind:this.kind}}_initialize(e){this._onlineComponentProvider=DM.provider,this._offlineComponentProvider={build:n=>new uv(n,e?.cacheSizeBytes,this.forceOwnership)}}},W0=class{constructor(){this.kind="PersistentMultipleTab"}toJSON(){return{kind:this.kind}}_initialize(e){this._onlineComponentProvider=DM.provider,this._offlineComponentProvider={build:n=>new N0(n,e?.cacheSizeBytes)}}};function hce(t){return new $0(t?.forceOwnership)}function OM(){return new W0}var fce={maxAttempts:5};function yg(t,e){if((t=Me(t)).firestore!==e)throw new j(x.INVALID_ARGUMENT,"Provided document reference is from a different Firestore instance.");return t}var z0=class{constructor(e,n){this._firestore=e,this._transaction=n,this._dataReader=Ov(e)}get(e){let n=yg(e,this._firestore),r=new j0(this._firestore);return this._transaction.lookup([n._key]).then(i=>{if(!i||i.length!==1)return re(24041);let o=i[0];if(o.isFoundDocument())return new Pl(this._firestore,r,o.key,o,n.converter);if(o.isNoDocument())return new Pl(this._firestore,r,n._key,null,n.converter);throw re(18433,{doc:o})})}set(e,n,r){let i=yg(e,this._firestore),o=S6(i.converter,n,r),s=c6(this._dataReader,"Transaction.set",i._key,o,i.converter!==null,r);return this._transaction.set(i._key,s),this}update(e,n,r,...i){let o=yg(e,this._firestore),s;return s=typeof(n=Me(n))=="string"||n instanceof yh?ace(this._dataReader,"Transaction.update",o._key,n,r,i):sce(this._dataReader,"Transaction.update",o._key,n),this._transaction.update(o._key,s),this}delete(e){let n=yg(e,this._firestore);return this._transaction.delete(n._key),this}};var q0=class extends z0{constructor(e,n){super(e,n),this._firestore=e}get(e){let n=yg(e,this._firestore),r=new xl(this._firestore);return super.get(e).then(i=>new fa(this._firestore,r,n._key,i._document,new la(!1,!1),n.converter))}};function L6(t,e,n){t=or(t,Ei);let r=Object.assign(Object.assign({},fce),n);return(function(o){if(o.maxAttempts<1)throw new j(x.INVALID_ARGUMENT,"Max attempts must be at least 1")})(r),(function(o,s,a){let c=new ir;return o.asyncQueue.enqueueAndForget(()=>y(null,null,function*(){let l=yield e6(o);new b0(o.asyncQueue,l,a,s,c).zu()})),c.promise})(Nh(t),i=>e(new q0(t,i)),r)}(function(e,n=!0){(function(i){Sh=i})(Bs),$n(new Xt("firestore",(r,{instanceIdentifier:i,options:o})=>{let s=r.getProvider("app").getImmediate(),a=new Ei(new Hb(r.getProvider("auth-internal")),new zb(s,r.getProvider("app-check-internal")),(function(l,d){if(!Object.prototype.hasOwnProperty.apply(l.options,["projectId"]))throw new j(x.INVALID_ARGUMENT,'"projectId" not provided in firebase.initializeApp.');return new ah(l.options.projectId,d)})(s,i),s);return o=Object.assign({useFetchStreams:n},o),a._setSettings(o),a},"PUBLIC").setMultipleInstances(!0)),Ge(t$,n$,e),Ge(t$,n$,"esm2017")})();var FUe=ue(E6,!0,2);var Lv=ue(i6,!0,2),P6=ue(o6,!0,2);var x6=ue(R6,!0,2);var dm=ue(s6,!0,2);var k6=ue(O6,!0),MM=ue(A6,!0);var F6=ue(C6,!0);var UUe=ue(T6,!0,2);var U6=ue(N6,!0);var VUe=ue(m6,!0,2),BUe=ue(_6,!0,2),V6=ue(p6,!0,2);var B6=ue(L6,!0),G6=ue(D6,!0,2);var GUe=ue(y6,!0,2);var jUe=ue(g6,!0,2);var Pv=class{static getFirestoreProdDbName(e,n){return n?.databaseURL?.includes("snippyly-plugin.firebaseio.com")||n?.databaseURL?.includes("snippyly-plugin-staging.firebaseio.com")?"sfdb":n?.storeDbId??(this.isTestingDb(n?.databaseURL??"")?"sdktest":`apikey${e.toLowerCase()}`)}static isTestingDb(e){try{return e.includes("-test")}catch(n){return M.error("Error in isTestingDb:",n),!1}}};var j6=(()=>{let e=class e{constructor(r,i,o){this.configService=r,this.authService=i,this.loggingService=o,this.firestore$=new ie(null);try{Ka([this.authService.getFirebaseConfig$(),this.configService.getApiKey$(),this.configService.getFirestorePersistentCacheEnabled$()]).pipe(mn(([s,a])=>!!s&&!!a),En(1)).subscribe(([s,a,c])=>{if(s&&a&&s?.firebaseOptions?.storeDbId){try{let h=sessionStorage?.getItem("veltFirestoreLogLevel")||qt?.firebaseLogLevel||"silent";K0(h)}catch(h){this.loggingService.catch("Error in FirestoreService setLogLevel: ",h)}let l=Pv.getFirestoreProdDbName(a,s.firebaseOptions),d=this.configService.getProxyConfig();if(d?.v2DbHost){let h={host:d.v2DbHost,ssl:!0};d.forceLongPolling?h.experimentalForceLongPolling=!0:h.experimentalAutoDetectLongPolling=!0,c&&(h.localCache=bM({tabManager:OM()}));try{this.firestore$.next(bv(er(),h,l))}catch(f){this.loggingService.catch("Firestore proxy: initializeFirestore failed, falling back to existing instance. Proxy settings may not be applied: ",f),this.firestore$.next(Rh(l))}}else if(c)try{let h=er(),f=bv(h,{localCache:bM({tabManager:OM()})},l);this.firestore$.next(f)}catch{this.firestore$.next(Rh(l))}else this.firestore$.next(Rh(l))}},s=>{})}catch{}}getFirestore(){return this.firestore$.asObservable()}getFirestoreValue(){return this.firestore$.value}generateFirestoreDocumentId(){try{let r=this.getFirestoreValue()||Rh("DocumentIdDb");if(r){let i=Lv(r,"generateDocumentId");return dm(i).id}return}catch(r){this.loggingService.catch("Error in FirestoreService generateFirestoreDocumentId: ",r);return}}};e.\u0275fac=function(i){return new(i||e)($(Ji),$(_d),$(bt))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();var xv=(()=>{let e=class e{constructor(r,i,o){this.authService=r,this.configService=i,this.loggingService=o,this.db$=new ie(null);try{this.authService.getFirebaseConfig$().subscribe(s=>{if(s){let a=this.configService.getProxyConfig(),c=s.firebaseOptions.databaseURL;a?.v1DbHost&&c&&(c=bV(c,a.v1DbHost),a?.forceLongPolling&&vb());let l=xd(void 0,c);a?.v1DbHost&&c&&this.lockDatabaseHost(l),this.db$.next(l)}},s=>{this.loggingService.catch("Error in DatabaseService constructor: ",s)})}catch(s){this.loggingService.catch("Error in DatabaseService constructor:",s)}}getDb(){return this.db$.asObservable()}getDbValue(){return this.db$.getValue()}lockDatabaseHost(r){try{let o=r?._repo?.repoInfo_;if(o){let s=o.host;Object.defineProperty(o,"host",{get:()=>s,set:()=>{},configurable:!0}),o.internalHost=s}}catch(i){this.loggingService.catch("Error in DatabaseService lockDatabaseHost: ",i)}}};e.\u0275fac=function(i){return new(i||e)($(_d),$(Ji),$(bt))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();var Nr={doc:dm,collection:Lv,collectionGroup:P6,query:V6,getDoc:MM,getDocs:F6,getCountFromServer:k6,setDoc:G6,deleteDoc:x6,onSnapshot:U6,runTransaction:B6},$6=(()=>{let e=class e{constructor(r,i,o){this.firestoreService=r,this.databaseService=i,this.loggingService=o}read(r){return y(this,null,function*(){if((r.store??"firestore")==="rtdb"){let a=this.databaseService.getDbValue();return a?{data:(yield hg(kd(a,r.location)))?.val()}:{data:void 0}}let o=this.firestoreService.getFirestoreValue();return o?{data:(yield MM(dm(o,r.location)))?.data()}:{data:void 0}})}runTransaction(r){return y(this,null,function*(){return r()})}firestoreDoc(r,i){return Nr.doc(r,i)}firestoreCollection(r,i){return Nr.collection(r,i)}firestoreCollectionGroup(r,i){return Nr.collectionGroup(r,i)}firestoreQuery(r,...i){return Nr.query(r,...i)}firestoreGetDoc(r){return Nr.getDoc(r)}firestoreGetDocs(r){return Nr.getDocs(r)}firestoreGetCountFromServer(r){return Nr.getCountFromServer(r)}firestoreSetDoc(r,i,o){return o?Nr.setDoc(r,i,o):Nr.setDoc(r,i)}firestoreDeleteDoc(r){return Nr.deleteDoc(r)}firestoreOnSnapshot(r,i,o){return o?Nr.onSnapshot(r,i,o):Nr.onSnapshot(r,i)}firestoreRunTransaction(r,i){return Nr.runTransaction(r,i)}addComment(r){return this.deferred("addComment")}editComment(r){return this.deferred("editComment")}addReaction(r){return this.deferred("addReaction")}editReaction(r){return this.deferred("editReaction")}deleteReaction(r){return this.deferred("deleteReaction")}addArea(r){return this.deferred("addArea")}deleteArea(r){return this.deferred("deleteArea")}recordDocumentView(r){return this.deferred("recordDocumentView")}getActivitiesForDocuments(r){return this.deferred("getActivitiesForDocuments")}getActivitiesForEntity(r){return this.deferred("getActivitiesForEntity")}deleteComment(r){return this.deferred("deleteComment")}setCommentResolved(r){return this.deferred("setCommentResolved")}setCommentMetadata(r){return this.deferred("setCommentMetadata")}bumpCommentViews(r){return this.deferred("bumpCommentViews")}markCommentThreadRead(r){return this.deferred("markCommentThreadRead")}markNotificationRead(r){return this.deferred("markNotificationRead")}addNotification(r){return this.deferred("addNotification")}deleteNotification(r){return this.deferred("deleteNotification")}updateNotification(r){return this.deferred("updateNotification")}updatePresence(r){return this.deferred("updatePresence")}grantAccess(r){return this.deferred("grantAccess")}revokeAccess(r){return this.deferred("revokeAccess")}getAccess(r){return this.deferred("getAccess")}upsertOrgUserProfile(r){return this.deferred("upsertOrgUserProfile")}upsertDocMetadata(r){return this.deferred("upsertDocMetadata")}upsertOrgMetadata(r){return this.deferred("upsertOrgMetadata")}createActivity(r){return this.deferred("createActivity")}saveCrdtVersion(r){return this.deferred("saveCrdtVersion")}getCrdtVersion(r){return this.deferred("getCrdtVersion")}listCrdtVersions(r){return this.deferred("listCrdtVersions")}getOrganizationUsers(r){return this.deferred("getOrganizationUsers")}setLocationMetadata(r){return this.deferred("setLocationMetadata")}fetchLocations(r){return this.deferred("fetchLocations")}createFolder(r){return this.deferred("createFolder")}setDocumentMetadata(r){return this.deferred("setDocumentMetadata")}getDocuments(r){return this.deferred("getDocuments")}fetchDocuments(r){return this.deferred("fetchDocuments")}fetchFolders(r){return this.deferred("fetchFolders")}fetchCommentAnnotations(r){return this.deferred("fetchCommentAnnotations")}getCommentAnnotationsCount(r){return this.deferred("getCommentAnnotationsCount")}markNotificationReadDoc(r){return this.deferred("markNotificationReadDoc")}getUploadUrl(r){return this.deferred("getUploadUrl")}getDownloadUrl(r){return this.deferred("getDownloadUrl")}deleteAttachment(r){return this.deferred("deleteAttachment")}getNotificationsForDocuments(r){return this.deferred("getNotificationsForDocuments")}getDocumentMetadataFromIds(r){return this.deferred("getDocumentMetadataFromIds")}getCrossOrgUserNotifications(r){return this.deferred("getCrossOrgUserNotifications")}deferred(r){return this.loggingService.warn(`[WB] FirebaseDbAdapter.${r} called but write-op wiring is deferred to Phase A (self-hosting Step 0). The SDK uses its existing direct write path in Step 0.`),Promise.resolve({ok:!1,code:"unimplemented",message:`FirebaseDbAdapter.${r} wiring deferred to Phase A`})}};e.\u0275fac=function(i){return new(i||e)($(j6),$(xv),$(bt))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();var gce={comment:{mode:"persistent",scope:"doc"},notification:{mode:"persistent",scope:"user"},notificationIndex:{mode:"persistent",scope:"user"},crdt:{mode:"persistent",scope:"doc"},presence:{mode:"ephemeral",scope:"doc"},crdtSyncPresence:{mode:"ephemeral",scope:"doc"},crdtPresence:{mode:"ephemeral",scope:"doc"},liveState:{mode:"ephemeral",scope:"doc"},cursor:{mode:"ephemeral",scope:"doc"},huddle:{mode:"ephemeral",scope:"doc"},syncVideoPlayer:{mode:"ephemeral",scope:"doc"},heartbeat:{mode:"ephemeral",scope:"org"},flockSession:{mode:"ephemeral",scope:"doc"},selection:{mode:"ephemeral",scope:"doc"},reaction:{mode:"persistent",scope:"doc"},area:{mode:"persistent",scope:"doc"},lastActivityTimestamp:{mode:"persistent",scope:"org"},lastNotificationTimestamp:{mode:"persistent",scope:"org"},documentViews:{mode:"persistent",scope:"doc"}};function W6(t){return gce[t]}var Qe={getDatabase:xd,ref:kd,query:KH,get:hg,set:QH,update:JH,remove:YH,push:qH,runTransaction:XH,onValue:Rb,onChildAdded:HH,onChildChanged:$H,onChildRemoved:WH,off:jH,objectVal:BH,listVal:VH,stateChanges:GH,onDisconnect:zH},z6=(()=>{let e=class e{constructor(r,i){this.databaseService=r,this.loggingService=i}getServerTimeOffset(){return y(this,null,function*(){try{let r=this.databaseService.getDbValue();if(!r)return 0;let o=(yield hg(kd(r,e.SERVER_TIME_OFFSET_PATH)))?.val();return typeof o=="number"?o:0}catch(r){return this.loggingService.catch("Error in FirebaseRealtimeAdapter getServerTimeOffset: ",r),0}})}onServerTimeOffset(r){let i=null,o=null;try{o=this.databaseService.getDb().subscribe(s=>{if(s){let a=kd(s,e.SERVER_TIME_OFFSET_PATH);i=Rb(a,c=>{try{r(c?.val())}catch(l){this.loggingService.catch("Error in FirebaseRealtimeAdapter onServerTimeOffset callback: ",l)}})}})}catch(s){this.loggingService.catch("Error in FirebaseRealtimeAdapter onServerTimeOffset: ",s)}return()=>{try{i&&(i(),i=null),o?.unsubscribe(),o=null}catch(s){this.loggingService.catch("Error tearing down FirebaseRealtimeAdapter onServerTimeOffset: ",s)}}}getChannelTag(r){return W6(r)}getDatabaseInstance(r){return r?Qe.getDatabase(void 0,r):Qe.getDatabase()}rtdbRef(r,i){return Qe.ref(r,i)}rtdbQueryRef(r,...i){return Qe.query(r,...i)}rtdbGet(r){return Qe.get(r)}rtdbSet(r,i,o){return this.getChannelTag(r),Qe.set(i,o)}rtdbUpdate(r,i,o){return this.getChannelTag(r),Qe.update(i,o)}rtdbRemove(r,i){return this.getChannelTag(r),Qe.remove(i)}rtdbPush(r,i,o){return this.getChannelTag(r),o===void 0?Qe.push(i):Qe.push(i,o)}rtdbRunTransaction(r,i,o){return this.getChannelTag(r),Qe.runTransaction(i,o)}rtdbOnValue(r,i,o,s,a){return this.getChannelTag(r),typeof s=="function"?a?Qe.onValue(i,o,s,a):Qe.onValue(i,o,s):s?Qe.onValue(i,o,s):Qe.onValue(i,o)}rtdbOnChildAdded(r,i,o,s){return this.getChannelTag(r),s?Qe.onChildAdded(i,o,s):Qe.onChildAdded(i,o)}rtdbOnChildChanged(r,i,o,s){return this.getChannelTag(r),s?Qe.onChildChanged(i,o,s):Qe.onChildChanged(i,o)}rtdbOnChildRemoved(r,i,o,s){return this.getChannelTag(r),s?Qe.onChildRemoved(i,o,s):Qe.onChildRemoved(i,o)}rtdbOff(r,i,o){Qe.off(r,i,o)}rtdbObjectVal$(r,i){return this.getChannelTag(r),Qe.objectVal(i)}rtdbListVal$(r,i){return this.getChannelTag(r),Qe.listVal(i)}rtdbStateChanges$(r,i){return this.getChannelTag(r),Qe.stateChanges(i)}rtdbOnDisconnectSet(r,i,o){return this.getChannelTag(r),Qe.onDisconnect(i).set(o)}rtdbOnDisconnectUpdate(r,i,o){return this.getChannelTag(r),Qe.onDisconnect(i).update(o)}rtdbOnDisconnectRemove(r,i){return this.getChannelTag(r),Qe.onDisconnect(i).remove()}rtdbOnDisconnectCancel(r,i){return this.getChannelTag(r),Qe.onDisconnect(i).cancel()}subscribe(r,i,o,s){return{unsubscribe:()=>{}}}publish(r,i,o){return y(this,null,function*(){return{ok:!1,code:"unimplemented",message:"RealtimeAdapter.publish wiring deferred to Phase A"}})}presence(r,i){return y(this,null,function*(){return{ok:!1,code:"unimplemented",message:"RealtimeAdapter.presence wiring deferred to Phase A"}})}onDisconnect(r,i){return y(this,null,function*(){return()=>{}})}};e.SERVER_TIME_OFFSET_PATH=".info/serverTimeOffset",e.\u0275fac=function(i){return new(i||e)($(xv),$(bt))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();function _Ve(t,e,n){let r=t?.[e];return typeof r!="function"?Promise.resolve({ok:!1,code:"unimplemented",message:`the portable adapter does not implement '${e}'`}):r.call(t,n)}var Fl=null,LM=new Set;function q6(t){return LM.add(t),()=>LM.delete(t)}function TVe(t){return new Promise(e=>{let n=!1,r=null,i=()=>{if(!n){n=!0,clearTimeout(o);try{r?.()}catch{}e()}},o=setTimeout(i,t);r=q6(i),Fl&&i()})}function yVe(t){return tf(()=>{let e=!1;try{if(t.isPortableFeedActive())return lt(null)}catch(r){e=!0,t.onError("portable check",r)}let n=new fe(r=>q6(()=>{try{(e||t.isPortableFeedActive())&&r.next(null)}catch(i){e=!0,r.next(null),t.onError("registration re-check",i)}}));return gs(t.firebaseDb$().pipe(mn(r=>!!r)),n)})}function mce(t){let e=t?.message;return typeof e=="string"&&/^NG0205(?!\d)/.test(e)}function IVe(t){if(Fl=t??null,Fl)for(let e of Array.from(LM))try{e()}catch(n){M.catch("Error in portable adapter registration listener: ",n)}}function P2(){return Fl}var vVe=(()=>{let e=class e{constructor(r){this.injector=r}get configService(){return this._configService??=this.injector.get(Ji)}get authService(){return this._authService??=this.injector.get(_d)}isPortableBackendActive(){return this.isPortableActive()}evaluatePortableGates(){try{return{chunkRegistered:!!Fl,flagOn:this.configService.getEnablePortableBackend()===!0,identifyRecorded:!!this.authService.getPortableBackend()}}catch(r){return mce(r)||M.catch("Error in AdapterSelectorService evaluatePortableGates: ",r),null}}isPortableActive(){let r=this.evaluatePortableGates();return!!r&&r.chunkRegistered&&r.flagOn&&r.identifyRecorded}isPortableBackendPending(){let r=this.evaluatePortableGates();return!!r&&!r.chunkRegistered&&r.flagOn&&r.identifyRecorded}isPortableSession(){let r=this.evaluatePortableGates();return!!r&&r.flagOn&&r.identifyRecorded}portableConnectionAnnounces(r){try{return this.resolveRealtimeAdapter()?.hasCapability?.(r)===!0}catch(i){return M.catch("Error in AdapterSelectorService portableConnectionAnnounces: ",i),!1}}resolveDbAdapter(){return this.isPortableActive()?Fl.db:this.injector.get($6)}resolveRealtimeAdapter(){return this.isPortableActive()?Fl.realtime:this.injector.get(z6)}};e.\u0275fac=function(i){return new(i||e)($(ze))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();var DVe=new Set(n2);function RVe(t){try{let e=t?.reasonCode;return typeof e!="string"||!e.trim()?"":` [reason: ${e.trim()}]`}catch{return""}}var wVe="portable transport not connected",bVe="portable transport disconnected",OVe="portable transport send failed",Ece="portable publish op '",_ce="' requires a channel on the OperationRequest";function MVe(t){return`${Ece}${t}${_ce}`}var LVe="portable request timed out",PVe="portable request failed in transport",xVe="portable session not established",kVe="portable apiEndpoint is not a secure URL; request not sent",FVe="portable request body could not be serialized; request not sent",UVe="portable request failed before it was sent";export{B as a,me as b,i4 as c,Tce as d,yce as e,Ice as f,y as g,gt as h,fe as i,lS as j,Rt as k,ie as l,Xa as m,K4 as n,Y4 as o,Wa as p,cr as q,lt as r,X4 as s,Q4 as t,x4 as u,De as v,Ka as w,tf as x,J4 as y,wi as z,oz as A,To as B,w4 as C,gs as D,mn as E,_4 as F,oS as G,sS as H,R4 as I,Jm as J,En as K,cS as L,yo as M,Qh as N,Ya as O,Zm as P,dS as Q,b4 as R,hS as S,O4 as T,Qa as U,Mr as V,ps as W,M4 as X,eE as Y,L4 as Z,F4 as _,J as $,SE as aa,Q as ba,So as ca,z as da,$ as ea,Y as fa,Xn as ga,Nn as ha,bi as ia,yP as ja,IP as ka,MP as la,LP as ma,ze as na,on as oa,Hn as pa,lr as qa,ki as ra,Ec as sa,Lr as ta,Fz as ua,zt as va,vC as wa,n8 as xa,Ns as ya,i_ as za,y_ as Aa,u8 as Ba,q8 as Ca,K8 as Da,Y8 as Ea,J8 as Fa,Z8 as Ga,m5 as Ha,Ro as Ia,Ae as Ja,A5 as Ka,fq as La,pq as Ma,Vi as Na,bf as Oa,bo as Pa,L_ as Qa,st as Ra,Aq as Sa,ji as Ta,vc as Ua,c1 as Va,h9 as Wa,ws as Xa,Hi as Ya,Mf as Za,p1 as _a,v9 as $a,E1 as ab,_1 as bb,k_ as cb,bs as db,A1 as eb,C1 as fb,w9 as gb,O9 as hb,M9 as ib,L9 as jb,P9 as kb,x9 as lb,k9 as mb,D1 as nb,aD as ob,cD as pb,R1 as qb,lD as rb,uD as sb,N1 as tb,dD as ub,hD as vb,b1 as wb,j9 as xb,O1 as yb,L1 as zb,P1 as Ab,q9 as Bb,Y9 as Cb,X9 as Db,J9 as Eb,Z9 as Fb,eK as Gb,tK as Hb,nK as Ib,rK as Jb,iK as Kb,B1 as Lb,G1 as Mb,EK as Nb,TK as Ob,wK as Pb,X1 as Qb,fD as Rb,Q1 as Sb,J1 as Tb,Z1 as Ub,LK as Vb,eF as Wb,nF as Xb,PK as Yb,xK as Zb,kK as _b,FK as $b,jK as ac,HK as bc,$K as cc,WK as dc,zK as ec,qK as fc,KK as gc,YK as hc,XK as ic,QK as jc,JK as kc,ZK as lc,tY as mc,rY as nc,iY as oc,oY as pc,sY as qc,aY as rc,uY as sc,Uf as tc,Vf as uc,_D as vc,QSe as wc,JSe as xc,ZSe as yc,BY as zc,bD as Ac,eAe as Bc,tAe as Cc,nAe as Dc,$i as Ec,LF as Fc,a7 as Gc,XF as Hc,c7 as Ic,FD as Jc,l7 as Kc,u7 as Lc,d7 as Mc,h7 as Nc,p7 as Oc,m7 as Pc,_7 as Qc,UD as Rc,tT as Sc,nT as Tc,P7 as Uc,F7 as Vc,TU as Wc,aX as Xc,cX as Yc,XD as Zc,MU as _c,eR as $c,ud as ad,_r as bd,ks as cd,FT as dd,Fc as ed,Jn as fd,Me as gd,Xt as hd,$n as id,Xi as jd,Zn as kd,Bs as ld,er as md,Ge as nd,JJ as od,SLe as pd,ALe as qd,CLe as rd,si as sd,Gs as td,Go as ud,ai as vd,ue as wd,ci as xd,jo as yd,HLe as zd,$Le as Ad,WLe as Bd,Hs as Cd,Iee as Dd,See as Ed,kee as Fd,Hc as Gd,$c as Hd,Rxe as Id,Nxe as Jd,NFe as Kd,wFe as Ld,bFe as Md,OFe as Nd,MFe as Od,LFe as Pd,Ho as Qd,zxe as Rd,qxe as Sd,Kxe as Td,xU as Ud,NX as Vd,np as Wd,qt as Xd,M as Yd,SDe as Zd,ADe as _d,CDe as $d,DDe as ae,RDe as be,NDe as ce,wDe as de,Wi as ee,bDe as fe,ODe as ge,MDe as he,LDe as ie,dX as je,hX as ke,fX as le,pX as me,gX as ne,mX as oe,PDe as pe,EX as qe,QD as re,_X as se,Er as te,uT as ue,TX as ve,ed as we,Mn as xe,yX as ye,dT as ze,IX as Ae,vX as Be,SX as Ce,xDe as De,kDe as Ee,FDe as Fe,AX as Ge,F as He,bU as Ie,TRe as Je,yRe as Ke,IRe as Le,vRe as Me,td as Ne,DRe as Oe,RRe as Pe,NRe as Qe,Ur as Re,Et as Se,kU as Te,FU as Ue,rNe as Ve,iNe as We,UU as Xe,tR as Ye,VU as Ze,nR as _e,IT as $e,wX as af,bX as bf,OX as cf,MX as df,LX as ef,PX as ff,xX as gf,kX as hf,FX as if,UX as jf,VX as kf,BX as lf,HU as mf,$U as nf,WU as of,zU as pf,qU as qf,zi as rf,wNe as sf,vT as tf,KU as uf,YU as vf,XU as wf,QU as xf,JU as yf,ZU as zf,eV as Af,tV as Bf,nV as Cf,rV as Df,iV as Ef,oV as Ff,sV as Gf,dwe as Hf,hwe as If,aV as Jf,rR as Kf,cV as Lf,lV as Mf,dV as Nf,hV as Of,Wwe as Pf,zwe as Qf,GX as Rf,jX as Sf,XOe as Tf,ST as Uf,lR as Vf,Pc as Wf,bV as Xf,a0e as Yf,Mc as Zf,Vo as _f,c0e as $f,l0e as ag,u0e as bg,MV as cg,d0e as dg,h0e as eg,f0e as fg,p0e as gg,g0e as hg,m0e as ig,E0e as jg,LV as kg,PV as lg,_0e as mg,T0e as ng,$X as og,y0e as pg,I0e as qg,v0e as rg,S0e as sg,A0e as tg,xV as ug,rd as vg,C0e as wg,kV as xg,UV as yg,_V as zg,TV as Ag,WX as Bg,zX as Cg,wT as Dg,sp as Eg,D0e as Fg,R0e as Gg,qi as Hg,N0e as Ig,id as Jg,YX as Kg,w0e as Lg,gR as Mg,IV as Ng,XX as Og,DT as Pg,b0e as Qg,O0e as Rg,VV as Sg,BV as Tg,QX as Ug,Oc as Vg,JX as Wg,tQ as Xg,M0e as Yg,nQ as Zg,L0e as _g,rQ as $g,iQ as ah,oQ as bh,sQ as ch,xc as dh,P0e as eh,x0e as fh,k0e as gh,dR as hh,F0e as ih,cQ as jh,U0e as kh,V0e as lh,$V as mh,B0e as nh,G0e as oh,j0e as ph,H0e as qh,$0e as rh,W0e as sh,z0e as th,AT as uh,q0e as vh,K0e as wh,Y0e as xh,mR as yh,X0e as zh,DV as Ah,Q0e as Bh,J0e as Ch,Z0e as Dh,eMe as Eh,tMe as Fh,nMe as Gh,rMe as Hh,iMe as Ih,oMe as Jh,sMe as Kh,aMe as Lh,cMe as Mh,lMe as Nh,uMe as Oh,dMe as Ph,hMe as Qh,fMe as Rh,pMe as Sh,gMe as Th,mMe as Uh,EMe as Vh,_Me as Wh,hQ as Xh,TMe as Yh,yMe as Zh,IMe as _h,RV as $h,vMe as ai,SMe as bi,cp as ci,fQ as di,AMe as ei,CMe as fi,DMe as gi,RMe as hi,pQ as ii,NMe as ji,wMe as ki,QV as li,_R as mi,sd as ni,bMe as oi,op as pi,OMe as qi,MMe as ri,LMe as si,fR as ti,PMe as ui,xMe as vi,kMe as wi,FMe as xi,MQ as yi,UMe as zi,VMe as Ai,BMe as Bi,NV as Ci,GMe as Di,LQ as Ei,qQ as Fi,KQ as Gi,St as Hi,gd as Ii,jDe as Ji,HDe as Ki,$De as Li,WDe as Mi,zDe as Ni,qDe as Oi,KDe as Pi,YDe as Qi,XDe as Ri,QDe as Si,JDe as Ti,ZDe as Ui,hT as Vi,eRe as Wi,tRe as Xi,nRe as Yi,fT as Zi,rRe as _i,iRe as $i,oRe as aj,sRe as bj,aRe as cj,cRe as dj,lRe as ej,pT as fj,uRe as gj,dRe as hj,gT as ij,AU as jj,CU as kj,DU as lj,RU as mj,mT as nj,zs as oj,bt as pj,Ji as qj,zc as rj,rne as sj,dne as tj,hke as uj,ly as vj,XG as wj,Lke as xj,Wn as yj,Pke as zj,FUe as Aj,UUe as Bj,VUe as Cj,BUe as Dj,GUe as Ej,jUe as Fj,Pv as Gj,j6 as Hj,xv as Ij,$6 as Jj,W6 as Kj,z6 as Lj,_Ve as Mj,q6 as Nj,TVe as Oj,yVe as Pj,IVe as Qj,P2 as Rj,vVe as Sj,n2 as Tj,jke as Uj,Hke as Vj,$ke as Wj,Wke as Xj,zke as Yj,qke as Zj,Kke as _j,RVe as $j,wVe as ak,bVe as bk,OVe as ck,Ece as dk,_ce as ek,MVe as fk,LVe as gk,PVe as hk,xVe as ik,kVe as jk,FVe as kk,UVe as lk,c2 as mk,l2 as nk,fy as ok,i1e as pk,o1e as qk,M2 as rk,_d as sk};
|
|
174
|
+
`+t.stack),e}function p3(t){return(function(n,r){if(typeof n!="object"||n===null)return!1;let i=n;for(let o of r)if(o in i&&typeof i[o]=="function")return!0;return!1})(t,["next","error","complete"])}var Ei=class extends Ll{constructor(e,n,r,i){super(e,n,r,i),this.type="firestore",this._queue=new fv,this._persistenceKey=i?.name||"[DEFAULT]"}_terminate(){return y(this,null,function*(){if(this._firestoreClient){let e=this._firestoreClient.terminate();this._queue=new fv(e),this._firestoreClient=void 0,yield e}})}};function bv(t,e,n){n||(n=Fg);let r=Xi(t,"firestore");if(r.isInitialized(n)){let i=r.getImmediate({identifier:n}),o=r.getOptions(n);if(oi(o,e))return i;throw new j(x.FAILED_PRECONDITION,"initializeFirestore() has already been called with different options. To avoid this error, call initializeFirestore() with the same options as when it was originally called, or call getFirestore() to return the already initialized instance.")}if(e.cacheSizeBytes!==void 0&&e.localCache!==void 0)throw new j(x.INVALID_ARGUMENT,"cache and cacheSizeBytes cannot be specified at the same time as cacheSizeBytes willbe deprecated. Instead, specify the cache size in the cache object");if(e.cacheSizeBytes!==void 0&&e.cacheSizeBytes!==-1&&e.cacheSizeBytes<OW)throw new j(x.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");return e.host&&_r(e.host)&&ks(e.host),r.initialize({options:e,instanceIdentifier:n})}function Rh(t,e){let n=typeof t=="object"?t:er(),r=typeof t=="string"?t:e||Fg,i=Xi(n,"firestore").getImmediate({identifier:r});if(!i._initialized){let o=ud("firestore");o&&r6(i,...o)}return i}function Nh(t){if(t._terminated)throw new j(x.FAILED_PRECONDITION,"The client has already been terminated.");return t._firestoreClient||ice(t),t._firestoreClient}function ice(t){var e,n,r;let i=t._freezeSettings(),o=(function(a,c,l,d){return new nO(a,c,l,d.host,d.ssl,d.experimentalForceLongPolling,d.experimentalAutoDetectLongPolling,t6(d.experimentalLongPollingOptions),d.useFetchStreams,d.isUsingEmulator)})(t._databaseId,((e=t._app)===null||e===void 0?void 0:e.options.appId)||"",t._persistenceKey,i);t._componentsProvider||!((n=i.localCache)===null||n===void 0)&&n._offlineComponentProvider&&(!((r=i.localCache)===null||r===void 0)&&r._onlineComponentProvider)&&(t._componentsProvider={_offline:i.localCache._offlineComponentProvider,_online:i.localCache._onlineComponentProvider}),t._firestoreClient=new O0(t._authCredentials,t._appCheckCredentials,t._queue,o,t._componentsProvider&&(function(a){let c=a?._online.build();return{_offline:a?._offline.build(c),_online:c}})(t._componentsProvider))}var M0=class{constructor(e="count",n){this._internalFieldPath=n,this.type="AggregateField",this.aggregateType=e}},L0=class{constructor(e,n,r){this._userDataWriter=n,this._data=r,this.type="AggregateQuerySnapshot",this.query=e}data(){return this._userDataWriter.convertObjectMap(this._data)}};var Xo=class t{constructor(e){this._byteString=e}static fromBase64String(e){try{return new t(Gt.fromBase64String(e))}catch(n){throw new j(x.INVALID_ARGUMENT,"Failed to construct data from Base64 string: "+n)}}static fromUint8Array(e){return new t(Gt.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)}toJSON(){return{type:t._jsonSchemaVersion,bytes:this.toBase64()}}static fromJSON(e){if(rm(e,t._jsonSchema))return t.fromBase64String(e.bytes)}};Xo._jsonSchemaVersion="firestore/bytes/1.0",Xo._jsonSchema={type:Bt("string",Xo._jsonSchemaVersion),bytes:Bt("string")};var yh=class{constructor(...e){for(let n=0;n<e.length;++n)if(e[n].length===0)throw new j(x.INVALID_ARGUMENT,"Invalid field name at argument $(i + 1). Field names must not be empty.");this._internalPath=new Jt(e)}isEqual(e){return this._internalPath.isEqual(e._internalPath)}};var em=class{constructor(e){this._methodName=e}};var da=class t{constructor(e,n){if(!isFinite(e)||e<-90||e>90)throw new j(x.INVALID_ARGUMENT,"Latitude must be a number between -90 and 90, but was: "+e);if(!isFinite(n)||n<-180||n>180)throw new j(x.INVALID_ARGUMENT,"Longitude must be a number between -180 and 180, but was: "+n);this._lat=e,this._long=n}get latitude(){return this._lat}get longitude(){return this._long}isEqual(e){return this._lat===e._lat&&this._long===e._long}_compareTo(e){return Ie(this._lat,e._lat)||Ie(this._long,e._long)}toJSON(){return{latitude:this._lat,longitude:this._long,type:t._jsonSchemaVersion}}static fromJSON(e){if(rm(e,t._jsonSchema))return new t(e.latitude,e.longitude)}};da._jsonSchemaVersion="firestore/geoPoint/1.0",da._jsonSchema={type:Bt("string",da._jsonSchemaVersion),latitude:Bt("number"),longitude:Bt("number")};var ha=class t{constructor(e){this._values=(e||[]).map(n=>n)}toArray(){return this._values.map(e=>e)}isEqual(e){return(function(r,i){if(r.length!==i.length)return!1;for(let o=0;o<r.length;++o)if(r[o]!==i[o])return!1;return!0})(this._values,e._values)}toJSON(){return{type:t._jsonSchemaVersion,vectorValues:this._values}}static fromJSON(e){if(rm(e,t._jsonSchema)){if(Array.isArray(e.vectorValues)&&e.vectorValues.every(n=>typeof n=="number"))return new t(e.vectorValues);throw new j(x.INVALID_ARGUMENT,"Expected 'vectorValues' field to be a number array")}}};ha._jsonSchemaVersion="firestore/vectorValue/1.0",ha._jsonSchema={type:Bt("string",ha._jsonSchemaVersion),vectorValues:Bt("object")};var oce=/^__.*__$/,P0=class{constructor(e,n,r){this.data=e,this.fieldMask=n,this.fieldTransforms=r}toMutation(e,n){return this.fieldMask!==null?new gi(e,this.data,this.fieldMask,n,this.fieldTransforms):new Ta(e,this.data,n,this.fieldTransforms)}},pv=class{constructor(e,n,r){this.data=e,this.fieldMask=n,this.fieldTransforms=r}toMutation(e,n){return new gi(e,this.data,this.fieldMask,n,this.fieldTransforms)}};function a6(t){switch(t){case 0:case 2:case 1:return!0;case 3:case 4:return!1;default:throw re(40011,{Ec:t})}}var x0=class t{constructor(e,n,r,i,o,s){this.settings=e,this.databaseId=n,this.serializer=r,this.ignoreUndefinedProperties=i,o===void 0&&this.Ac(),this.fieldTransforms=o||[],this.fieldMask=s||[]}get path(){return this.settings.path}get Ec(){return this.settings.Ec}Rc(e){return new t(Object.assign(Object.assign({},this.settings),e),this.databaseId,this.serializer,this.ignoreUndefinedProperties,this.fieldTransforms,this.fieldMask)}Vc(e){var n;let r=(n=this.path)===null||n===void 0?void 0:n.child(e),i=this.Rc({path:r,mc:!1});return i.fc(e),i}gc(e){var n;let r=(n=this.path)===null||n===void 0?void 0:n.child(e),i=this.Rc({path:r,mc:!1});return i.Ac(),i}yc(e){return this.Rc({path:void 0,mc:!0})}wc(e){return mv(e,this.settings.methodName,this.settings.Sc||!1,this.path,this.settings.bc)}contains(e){return this.fieldMask.find(n=>e.isPrefixOf(n))!==void 0||this.fieldTransforms.find(n=>e.isPrefixOf(n.field))!==void 0}Ac(){if(this.path)for(let e=0;e<this.path.length;e++)this.fc(this.path.get(e))}fc(e){if(e.length===0)throw this.wc("Document fields must not be empty");if(a6(this.Ec)&&oce.test(e))throw this.wc('Document fields cannot begin and end with "__"')}},k0=class{constructor(e,n,r){this.databaseId=e,this.ignoreUndefinedProperties=n,this.serializer=r||Dv(e)}Dc(e,n,r,i=!1){return new x0({Ec:e,methodName:n,bc:r,path:Jt.emptyPath(),mc:!1,Sc:i},this.databaseId,this.serializer,this.ignoreUndefinedProperties)}};function Ov(t){let e=t._freezeSettings(),n=Dv(t._databaseId);return new k0(t._databaseId,!!e.ignoreUndefinedProperties,n)}function c6(t,e,n,r,i,o={}){let s=t.Dc(o.merge||o.mergeFields?2:0,e,n,i);NM("Data must be an object, but it was:",s,r);let a=u6(r,s),c,l;if(o.merge)c=new Cr(s.fieldMask),l=s.fieldTransforms;else if(o.mergeFields){let d=[];for(let h of o.mergeFields){let f=F0(e,h,n);if(!s.contains(f))throw new j(x.INVALID_ARGUMENT,`Field '${f}' is specified in your field mask but missing from your input data.`);h6(d,f)||d.push(f)}c=new Cr(d),l=s.fieldTransforms.filter(h=>c.covers(h.field))}else c=null,l=s.fieldTransforms;return new P0(new Fn(a),c,l)}var gv=class t extends em{_toFieldTransform(e){if(e.Ec!==2)throw e.Ec===1?e.wc(`${this._methodName}() can only appear at the top level of your update data`):e.wc(`${this._methodName}() cannot be used with set() unless you pass {merge:true}`);return e.fieldMask.push(e.path),null}isEqual(e){return e instanceof t}};function sce(t,e,n,r){let i=t.Dc(1,e,n);NM("Data must be an object, but it was:",i,r);let o=[],s=Fn.empty();Aa(r,(c,l)=>{let d=wM(e,c,n);l=Me(l);let h=i.gc(d);if(l instanceof gv)o.push(d);else{let f=um(l,h);f!=null&&(o.push(d),s.set(d,f))}});let a=new Cr(o);return new pv(s,a,i.fieldTransforms)}function ace(t,e,n,r,i,o){let s=t.Dc(1,e,n),a=[F0(e,r,n)],c=[i];if(o.length%2!=0)throw new j(x.INVALID_ARGUMENT,`Function ${e}() needs to be called with an even number of arguments that alternate between field names and values.`);for(let f=0;f<o.length;f+=2)a.push(F0(e,o[f])),c.push(o[f+1]);let l=[],d=Fn.empty();for(let f=a.length-1;f>=0;--f)if(!h6(l,a[f])){let g=a[f],E=c[f];E=Me(E);let I=s.gc(g);if(E instanceof gv)l.push(g);else{let S=um(E,I);S!=null&&(l.push(g),d.set(g,S))}}let h=new Cr(l);return new pv(d,h,s.fieldTransforms)}function l6(t,e,n,r=!1){return um(n,t.Dc(r?4:3,e))}function um(t,e){if(d6(t=Me(t)))return NM("Unsupported field value:",e,t),u6(t,e);if(t instanceof em)return(function(r,i){if(!a6(i.Ec))throw i.wc(`${r._methodName}() can only be used with update() and set()`);if(!i.path)throw i.wc(`${r._methodName}() is not currently supported inside arrays`);let o=r._toFieldTransform(i);o&&i.fieldTransforms.push(o)})(t,e),null;if(t===void 0&&e.ignoreUndefinedProperties)return null;if(e.path&&e.fieldMask.push(e.path),t instanceof Array){if(e.settings.mc&&e.Ec!==4)throw e.wc("Nested arrays are not supported");return(function(r,i){let o=[],s=0;for(let a of r){let c=um(a,i.yc(s));c==null&&(c={nullValue:"NULL_VALUE"}),o.push(c),s++}return{arrayValue:{values:o}}})(t,e)}return(function(r,i){if((r=Me(r))===null)return{nullValue:"NULL_VALUE"};if(typeof r=="number")return zse(i.serializer,r);if(typeof r=="boolean")return{booleanValue:r};if(typeof r=="string")return{stringValue:r};if(r instanceof Date){let o=Tt.fromDate(r);return{timestampValue:fh(i.serializer,o)}}if(r instanceof Tt){let o=new Tt(r.seconds,1e3*Math.floor(r.nanoseconds/1e3));return{timestampValue:fh(i.serializer,o)}}if(r instanceof da)return{geoPointValue:{latitude:r.latitude,longitude:r.longitude}};if(r instanceof Xo)return{bytesValue:fW(i.serializer,r._byteString)};if(r instanceof en){let o=i.databaseId,s=r.firestore._databaseId;if(!s.isEqual(o))throw i.wc(`Document reference is for database ${s.projectId}/${s.database} but should be for database ${o.projectId}/${o.database}`);return{referenceValue:lM(r.firestore._databaseId||i.databaseId,r._key.path)}}if(r instanceof ha)return(function(s,a){return{mapValue:{fields:{[rM]:{stringValue:iM},[ch]:{arrayValue:{values:s.toArray().map(l=>{if(typeof l!="number")throw a.wc("VectorValues must only contain numeric values.");return cM(a.serializer,l)})}}}}}})(r,i);throw i.wc(`Unsupported field value: ${_v(r)}`)})(t,e)}function u6(t,e){let n={};return k3(t)?e.path&&e.path.length>0&&e.fieldMask.push(e.path):Aa(t,(r,i)=>{let o=um(i,e.Vc(r));o!=null&&(n[r]=o)}),{mapValue:{fields:n}}}function d6(t){return!(typeof t!="object"||t===null||t instanceof Array||t instanceof Date||t instanceof Tt||t instanceof da||t instanceof Xo||t instanceof en||t instanceof em||t instanceof ha)}function NM(t,e,n){if(!d6(n)||!y3(n)){let r=_v(n);throw r==="an object"?e.wc(t+" a custom object"):e.wc(t+" "+r)}}function F0(t,e,n){if((e=Me(e))instanceof yh)return e._internalPath;if(typeof e=="string")return wM(t,e);throw mv("Field path arguments must be of type string or ",t,!1,void 0,n)}var cce=new RegExp("[~\\*/\\[\\]]");function wM(t,e,n){if(e.search(cce)>=0)throw mv(`Invalid field path (${e}). Paths must not contain '~', '*', '/', '[', or ']'`,t,!1,void 0,n);try{return new yh(...e.split("."))._internalPath}catch{throw mv(`Invalid field path (${e}). Paths must not be empty, begin with '.', end with '.', or contain '..'`,t,!1,void 0,n)}}function mv(t,e,n,r,i){let o=r&&!r.isEmpty(),s=i!==void 0,a=`Function ${e}() called with invalid data`;n&&(a+=" (via `toFirestore()`)"),a+=". ";let c="";return(o||s)&&(c+=" (found",o&&(c+=` in field ${r}`),s&&(c+=` in document ${i}`),c+=")"),new j(x.INVALID_ARGUMENT,a+t+c)}function h6(t,e){return t.some(n=>n.isEqual(e))}var Pl=class{constructor(e,n,r,i,o){this._firestore=e,this._userDataWriter=n,this._key=r,this._document=i,this._converter=o}get id(){return this._key.path.lastSegment()}get ref(){return new en(this._firestore,this._converter,this._key)}exists(){return this._document!==null}data(){if(this._document){if(this._converter){let e=new U0(this._firestore,this._userDataWriter,this._key,this._document,null);return this._converter.fromFirestore(e)}return this._userDataWriter.convertValue(this._document.data.value)}}get(e){if(this._document){let n=this._document.data.field(Mv("DocumentSnapshot.get",e));if(n!==null)return this._userDataWriter.convertValue(n)}}},U0=class extends Pl{data(){return super.data()}};function Mv(t,e){return typeof e=="string"?wM(t,e):e instanceof yh?e._internalPath:e._delegate._internalPath}function f6(t){if(t.limitType==="L"&&t.explicitOrderBy.length===0)throw new j(x.UNIMPLEMENTED,"limitToLast() queries require specifying at least one orderBy() clause")}var tm=class{},Ih=class extends tm{};function p6(t,e,...n){let r=[];e instanceof tm&&r.push(e),r=r.concat(n),(function(o){let s=o.filter(c=>c instanceof vh).length,a=o.filter(c=>c instanceof nm).length;if(s>1||s>0&&a>0)throw new j(x.INVALID_ARGUMENT,"InvalidQuery. When using composite filters, you cannot use more than one filter at the top level. Consider nesting the multiple filters within an `and(...)` statement. For example: change `query(query, where(...), or(...))` to `query(query, and(where(...), or(...)))`.")})(r);for(let i of r)t=i._apply(t);return t}var nm=class t extends Ih{constructor(e,n,r){super(),this._field=e,this._op=n,this._value=r,this.type="where"}static _create(e,n,r){return new t(e,n,r)}_apply(e){let n=this._parse(e);return I6(e._query,n),new mi(e.firestore,e.converter,gO(e._query,n))}_parse(e){let n=Ov(e.firestore);return(function(o,s,a,c,l,d,h){let f;if(l.isKeyField()){if(d==="array-contains"||d==="array-contains-any")throw new j(x.INVALID_ARGUMENT,`Invalid Query. You can't perform '${d}' queries on documentId().`);if(d==="in"||d==="not-in"){m3(h,d);let E=[];for(let I of h)E.push(g3(c,o,I));f={arrayValue:{values:E}}}else f=g3(c,o,h)}else d!=="in"&&d!=="not-in"&&d!=="array-contains-any"||m3(h,d),f=l6(a,s,h,d==="in"||d==="not-in");return Le.create(l,d,f)})(e._query,"where",n,e.firestore._databaseId,this._field,this._op,this._value)}};function g6(t,e,n){let r=e,i=Mv("where",t);return nm._create(i,r,n)}var vh=class t extends tm{constructor(e,n){super(),this.type=e,this._queryConstraints=n}static _create(e,n){return new t(e,n)}_parse(e){let n=this._queryConstraints.map(r=>r._parse(e)).filter(r=>r.getFilters().length>0);return n.length===1?n[0]:Xe.create(n,this._getOperator())}_apply(e){let n=this._parse(e);return n.getFilters().length===0?e:((function(i,o){let s=i,a=o.getFlattenedFilters();for(let c of a)I6(s,c),s=gO(s,c)})(e._query,n),new mi(e.firestore,e.converter,gO(e._query,n)))}_getQueryConstraints(){return this._queryConstraints}_getOperator(){return this.type==="and"?"and":"or"}};function m6(...t){return t.forEach(e=>v6("or",e)),vh._create("or",t)}function E6(...t){return t.forEach(e=>v6("and",e)),vh._create("and",t)}var V0=class t extends Ih{constructor(e,n){super(),this._field=e,this._direction=n,this.type="orderBy"}static _create(e,n){return new t(e,n)}_apply(e){let n=(function(i,o,s){if(i.startAt!==null)throw new j(x.INVALID_ARGUMENT,"Invalid query. You must not call startAt() or startAfter() before calling orderBy().");if(i.endAt!==null)throw new j(x.INVALID_ARGUMENT,"Invalid query. You must not call endAt() or endBefore() before calling orderBy().");return new Cl(o,s)})(e._query,this._field,this._direction);return new mi(e.firestore,e.converter,(function(i,o){let s=i.explicitOrderBy.concat([o]);return new ao(i.path,i.collectionGroup,s,i.filters.slice(),i.limit,i.limitType,i.startAt,i.endAt)})(e._query,n))}};function _6(t,e="asc"){let n=e,r=Mv("orderBy",t);return V0._create(r,n)}var B0=class t extends Ih{constructor(e,n,r){super(),this.type=e,this._limit=n,this._limitType=r}static _create(e,n,r){return new t(e,n,r)}_apply(e){return new mi(e.firestore,e.converter,kI(e._query,this._limit,this._limitType))}};function T6(t){return cse("limit",t),B0._create("limit",t,"F")}var G0=class t extends Ih{constructor(e,n,r){super(),this.type=e,this._docOrFields=n,this._inclusive=r}static _create(e,n,r){return new t(e,n,r)}_apply(e){let n=lce(e,this.type,this._docOrFields,this._inclusive);return new mi(e.firestore,e.converter,(function(i,o){return new ao(i.path,i.collectionGroup,i.explicitOrderBy.slice(),i.filters.slice(),i.limit,i.limitType,o,i.endAt)})(e._query,n))}};function y6(...t){return G0._create("startAfter",t,!1)}function lce(t,e,n,r){if(n[0]=Me(n[0]),n[0]instanceof Pl)return(function(o,s,a,c,l){if(!c)throw new j(x.NOT_FOUND,`Can't use a DocumentSnapshot that doesn't exist for ${a}().`);let d=[];for(let h of Xd(o))if(h.field.isKeyField())d.push(Al(s,c.key));else{let f=c.data.field(h.field);if(vv(f))throw new j(x.INVALID_ARGUMENT,'Invalid query. You are trying to start or end a query using a document for which the field "'+h.field+'" is an uncommitted server timestamp. (Since the value of this field is unknown, you cannot start/end a query with it.)');if(f===null){let g=h.field.canonicalString();throw new j(x.INVALID_ARGUMENT,`Invalid query. You are trying to start or end a query using a document for which the field '${g}' (used as the orderBy) does not exist.`)}d.push(f)}return new so(d,l)})(t._query,t.firestore._databaseId,e,n[0]._document,r);{let i=Ov(t.firestore);return(function(s,a,c,l,d,h){let f=s.explicitOrderBy;if(d.length>f.length)throw new j(x.INVALID_ARGUMENT,`Too many arguments provided to ${l}(). The number of arguments must be less than or equal to the number of orderBy() clauses`);let g=[];for(let E=0;E<d.length;E++){let I=d[E];if(f[E].field.isKeyField()){if(typeof I!="string")throw new j(x.INVALID_ARGUMENT,`Invalid query. Expected a string for document ID in ${l}(), but got a ${typeof I}`);if(!sM(s)&&I.indexOf("/")!==-1)throw new j(x.INVALID_ARGUMENT,`Invalid query. When querying a collection and ordering by documentId(), the value passed to ${l}() must be a plain document ID, but '${I}' contains a slash.`);let S=s.path.child(ke.fromString(I));if(!Z.isDocumentKey(S))throw new j(x.INVALID_ARGUMENT,`Invalid query. When querying a collection group and ordering by documentId(), the value passed to ${l}() must result in a valid document path, but '${S}' is not because it contains an odd number of segments.`);let L=new Z(S);g.push(Al(a,L))}else{let S=l6(c,l,I);g.push(S)}}return new so(g,h)})(t._query,t.firestore._databaseId,i,e,n,r)}}function g3(t,e,n){if(typeof(n=Me(n))=="string"){if(n==="")throw new j(x.INVALID_ARGUMENT,"Invalid query. When querying with documentId(), you must provide a valid document ID, but it was an empty string.");if(!sM(e)&&n.indexOf("/")!==-1)throw new j(x.INVALID_ARGUMENT,`Invalid query. When querying a collection by documentId(), you must provide a plain document ID, but '${n}' contains a '/' character.`);let r=e.path.child(ke.fromString(n));if(!Z.isDocumentKey(r))throw new j(x.INVALID_ARGUMENT,`Invalid query. When querying a collection group by documentId(), the value provided must result in a valid document path, but '${r}' is not because it has an odd number of segments (${r.length}).`);return Al(t,new Z(r))}if(n instanceof en)return Al(t,n._key);throw new j(x.INVALID_ARGUMENT,`Invalid query. When querying with documentId(), you must provide a valid string or a DocumentReference, but it was: ${_v(n)}.`)}function m3(t,e){if(!Array.isArray(t)||t.length===0)throw new j(x.INVALID_ARGUMENT,`Invalid Query. A non-empty array is required for '${e.toString()}' filters.`)}function I6(t,e){let n=(function(i,o){for(let s of i)for(let a of s.getFlattenedFilters())if(o.indexOf(a.op)>=0)return a.op;return null})(t.filters,(function(i){switch(i){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[]}})(e.op));if(n!==null)throw n===e.op?new j(x.INVALID_ARGUMENT,`Invalid query. You cannot use more than one '${e.op.toString()}' filter.`):new j(x.INVALID_ARGUMENT,`Invalid query. You cannot use '${e.op.toString()}' filters with '${n.toString()}' filters.`)}function v6(t,e){if(!(e instanceof nm||e instanceof vh))throw new j(x.INVALID_ARGUMENT,`Function ${t}() requires AppliableConstraints created with a call to 'where(...)', 'or(...)', or 'and(...)'.`)}var Ev=class{convertValue(e,n="none"){switch(ga(e)){case 0:return null;case 1:return e.booleanValue;case 2:return _t(e.integerValue||e.doubleValue);case 3:return this.convertTimestamp(e.timestampValue);case 4:return this.convertServerTimestamp(e,n);case 5:return e.stringValue;case 6:return this.convertBytes(Zo(e.bytesValue));case 7:return this.convertReference(e.referenceValue);case 8:return this.convertGeoPoint(e.geoPointValue);case 9:return this.convertArray(e.arrayValue,n);case 11:return this.convertObject(e.mapValue,n);case 10:return this.convertVectorValue(e.mapValue);default:throw re(62114,{value:e})}}convertObject(e,n){return this.convertObjectMap(e.fields,n)}convertObjectMap(e,n="none"){let r={};return Aa(e,(i,o)=>{r[i]=this.convertValue(o,n)}),r}convertVectorValue(e){var n,r,i;let o=(i=(r=(n=e.fields)===null||n===void 0?void 0:n[ch].arrayValue)===null||r===void 0?void 0:r.values)===null||i===void 0?void 0:i.map(s=>_t(s.doubleValue));return new ha(o)}convertGeoPoint(e){return new da(_t(e.latitude),_t(e.longitude))}convertArray(e,n){return(e.values||[]).map(r=>this.convertValue(r,n))}convertServerTimestamp(e,n){switch(n){case"previous":let r=Sv(e);return r==null?null:this.convertValue(r,n);case"estimate":return this.convertTimestamp(kg(e));default:return null}}convertTimestamp(e){let n=Jo(e);return new Tt(n.seconds,n.nanos)}convertDocumentKey(e,n){let r=ke.fromString(e);ae(vW(r),9688,{name:e});let i=new ah(r.get(1),r.get(3)),o=new Z(r.popFirst(5));return i.isEqual(n)||Mt(`Document ${o} contains a document reference within a different database (${i.projectId}/${i.database}) which is not supported. It will be treated as a reference in the current database (${n.projectId}/${n.database}) instead.`),o}};function S6(t,e,n){let r;return r=t?n&&(n.merge||n.mergeFields)?t.toFirestore(e,n):t.toFirestore(e):e,r}var j0=class extends Ev{constructor(e){super(),this.firestore=e}convertBytes(e){return new Xo(e)}convertReference(e){let n=this.convertDocumentKey(e,this.firestore._databaseId);return new en(this.firestore,null,n)}};function uce(){return new M0("count")}var la=class{constructor(e,n){this.hasPendingWrites=e,this.fromCache=n}isEqual(e){return this.hasPendingWrites===e.hasPendingWrites&&this.fromCache===e.fromCache}},fa=class t extends Pl{constructor(e,n,r,i,o,s){super(e,n,r,i,s),this._firestore=e,this._firestoreImpl=e,this.metadata=o}exists(){return super.exists()}data(e={}){if(this._document){if(this._converter){let n=new Jd(this._firestore,this._userDataWriter,this._key,this._document,this.metadata,null);return this._converter.fromFirestore(n,e)}return this._userDataWriter.convertValue(this._document.data.value,e.serverTimestamps)}}get(e,n={}){if(this._document){let r=this._document.data.field(Mv("DocumentSnapshot.get",e));if(r!==null)return this._userDataWriter.convertValue(r,n.serverTimestamps)}}toJSON(){if(this.metadata.hasPendingWrites)throw new j(x.FAILED_PRECONDITION,"DocumentSnapshot.toJSON() attempted to serialize a document with pending writes. Await waitForPendingWrites() before invoking toJSON().");let e=this._document,n={};return n.type=t._jsonSchemaVersion,n.bundle="",n.bundleSource="DocumentSnapshot",n.bundleName=this._key.toString(),!e||!e.isValidDocument()||!e.isFoundDocument()?n:(this._userDataWriter.convertObjectMap(e.data.value.mapValue.fields,"previous"),n.bundle=(this._firestore,this.ref.path,"NOT SUPPORTED"),n)}};fa._jsonSchemaVersion="firestore/documentSnapshot/1.0",fa._jsonSchema={type:Bt("string",fa._jsonSchemaVersion),bundleSource:Bt("string","DocumentSnapshot"),bundleName:Bt("string"),bundle:Bt("string")};var Jd=class extends fa{data(e={}){return super.data(e)}},Sl=class t{constructor(e,n,r,i){this._firestore=e,this._userDataWriter=n,this._snapshot=i,this.metadata=new la(i.hasPendingWrites,i.fromCache),this.query=r}get docs(){let e=[];return this.forEach(n=>e.push(n)),e}get size(){return this._snapshot.docs.size}get empty(){return this.size===0}forEach(e,n){this._snapshot.docs.forEach(r=>{e.call(n,new Jd(this._firestore,this._userDataWriter,r.key,r,new la(this._snapshot.mutatedKeys.has(r.key),this._snapshot.fromCache),this.query.converter))})}docChanges(e={}){let n=!!e.includeMetadataChanges;if(n&&this._snapshot.excludesMetadataChanges)throw new j(x.INVALID_ARGUMENT,"To include metadata changes with your document changes, you must also pass { includeMetadataChanges:true } to onSnapshot().");return this._cachedChanges&&this._cachedChangesIncludeMetadataChanges===n||(this._cachedChanges=(function(i,o){if(i._snapshot.oldDocs.isEmpty()){let s=0;return i._snapshot.docChanges.map(a=>{let c=new Jd(i._firestore,i._userDataWriter,a.doc.key,a.doc,new la(i._snapshot.mutatedKeys.has(a.doc.key),i._snapshot.fromCache),i.query.converter);return a.doc,{type:"added",doc:c,oldIndex:-1,newIndex:s++}})}{let s=i._snapshot.oldDocs;return i._snapshot.docChanges.filter(a=>o||a.type!==3).map(a=>{let c=new Jd(i._firestore,i._userDataWriter,a.doc.key,a.doc,new la(i._snapshot.mutatedKeys.has(a.doc.key),i._snapshot.fromCache),i.query.converter),l=-1,d=-1;return a.type!==0&&(l=s.indexOf(a.doc.key),s=s.delete(a.doc.key)),a.type!==1&&(s=s.add(a.doc),d=s.indexOf(a.doc.key)),{type:dce(a.type),doc:c,oldIndex:l,newIndex:d}})}})(this,n),this._cachedChangesIncludeMetadataChanges=n),this._cachedChanges}toJSON(){if(this.metadata.hasPendingWrites)throw new j(x.FAILED_PRECONDITION,"QuerySnapshot.toJSON() attempted to serialize a document with pending writes. Await waitForPendingWrites() before invoking toJSON().");let e={};e.type=t._jsonSchemaVersion,e.bundleSource="QuerySnapshot",e.bundleName=wg.newId(),this._firestore._databaseId.database,this._firestore._databaseId.projectId;let n=[],r=[],i=[];return this.docs.forEach(o=>{o._document!==null&&(n.push(o._document),r.push(this._userDataWriter.convertObjectMap(o._document.data.value.mapValue.fields,"previous")),i.push(o.ref.path))}),e.bundle=(this._firestore,this.query._query,e.bundleName,"NOT SUPPORTED"),e}};function dce(t){switch(t){case 0:return"added";case 2:case 3:return"modified";case 1:return"removed";default:return re(61501,{type:t})}}function A6(t){t=or(t,en);let e=or(t.firestore,Ei);return tce(Nh(e),t._key).then(n=>b6(e,t,n))}Sl._jsonSchemaVersion="firestore/querySnapshot/1.0",Sl._jsonSchema={type:Bt("string",Sl._jsonSchemaVersion),bundleSource:Bt("string","QuerySnapshot"),bundleName:Bt("string"),bundle:Bt("string")};var xl=class extends Ev{constructor(e){super(),this.firestore=e}convertBytes(e){return new Xo(e)}convertReference(e){let n=this.convertDocumentKey(e,this.firestore._databaseId);return new en(this.firestore,null,n)}};function C6(t){t=or(t,mi);let e=or(t.firestore,Ei),n=Nh(e),r=new xl(e);return f6(t._query),nce(n,t._query).then(i=>new Sl(e,r,t,i))}function D6(t,e,n){t=or(t,en);let r=or(t.firestore,Ei),i=S6(t.converter,e,n);return w6(r,[c6(Ov(r),"setDoc",t._key,i,t.converter!==null,n).toMutation(t._key,yn.none())])}function R6(t){return w6(or(t.firestore,Ei),[new wl(t._key,yn.none())])}function N6(t,...e){var n,r,i;t=Me(t);let o={includeMetadataChanges:!1,source:"default"},s=0;typeof e[s]!="object"||p3(e[s])||(o=e[s++]);let a={includeMetadataChanges:o.includeMetadataChanges,source:o.source};if(p3(e[s])){let h=e[s];e[s]=(n=h.next)===null||n===void 0?void 0:n.bind(h),e[s+1]=(r=h.error)===null||r===void 0?void 0:r.bind(h),e[s+2]=(i=h.complete)===null||i===void 0?void 0:i.bind(h)}let c,l,d;if(t instanceof en)l=or(t.firestore,Ei),d=am(t._key.path),c={next:h=>{e[s]&&e[s](b6(l,t,h))},error:e[s+1],complete:e[s+2]};else{let h=or(t,mi);l=or(h.firestore,Ei),d=h._query;let f=new xl(l);c={next:g=>{e[s]&&e[s](new Sl(l,f,h,g))},error:e[s+1],complete:e[s+2]},f6(t._query)}return(function(f,g,E,I){let S=new Zg(I),L=new Jg(g,S,E);return f.asyncQueue.enqueueAndForget(()=>y(null,null,function*(){return EM(yield dv(f),L)})),()=>{S.Ou(),f.asyncQueue.enqueueAndForget(()=>y(null,null,function*(){return _M(yield dv(f),L)}))}})(Nh(l),d,a,c)}function w6(t,e){return(function(r,i){let o=new ir;return r.asyncQueue.enqueueAndForget(()=>y(null,null,function*(){return Vae(yield ece(r),i,o)})),o.promise})(Nh(t),e)}function b6(t,e,n){let r=n.docs.get(e._key),i=new xl(t);return new fa(t,i,e._key,r,new la(n.hasPendingWrites,n.fromCache),e.converter)}function O6(t){return M6(t,{count:uce()})}function M6(t,e){let n=or(t.firestore,Ei),r=Nh(n),i=xse(e,(o,s)=>new TO(s,o.aggregateType,o._internalFieldPath));return rce(r,t._query,i).then(o=>(function(a,c,l){let d=new xl(a);return new L0(c,d,l)})(n,t,o))}var H0=class{constructor(e){let n;this.kind="persistent",e?.tabManager?(e.tabManager._initialize(e),n=e.tabManager):(n=hce(void 0),n._initialize(e)),this._onlineComponentProvider=n._onlineComponentProvider,this._offlineComponentProvider=n._offlineComponentProvider}toJSON(){return{kind:this.kind}}};function bM(t){return new H0(t)}var $0=class{constructor(e){this.forceOwnership=e,this.kind="persistentSingleTab"}toJSON(){return{kind:this.kind}}_initialize(e){this._onlineComponentProvider=DM.provider,this._offlineComponentProvider={build:n=>new uv(n,e?.cacheSizeBytes,this.forceOwnership)}}},W0=class{constructor(){this.kind="PersistentMultipleTab"}toJSON(){return{kind:this.kind}}_initialize(e){this._onlineComponentProvider=DM.provider,this._offlineComponentProvider={build:n=>new N0(n,e?.cacheSizeBytes)}}};function hce(t){return new $0(t?.forceOwnership)}function OM(){return new W0}var fce={maxAttempts:5};function yg(t,e){if((t=Me(t)).firestore!==e)throw new j(x.INVALID_ARGUMENT,"Provided document reference is from a different Firestore instance.");return t}var z0=class{constructor(e,n){this._firestore=e,this._transaction=n,this._dataReader=Ov(e)}get(e){let n=yg(e,this._firestore),r=new j0(this._firestore);return this._transaction.lookup([n._key]).then(i=>{if(!i||i.length!==1)return re(24041);let o=i[0];if(o.isFoundDocument())return new Pl(this._firestore,r,o.key,o,n.converter);if(o.isNoDocument())return new Pl(this._firestore,r,n._key,null,n.converter);throw re(18433,{doc:o})})}set(e,n,r){let i=yg(e,this._firestore),o=S6(i.converter,n,r),s=c6(this._dataReader,"Transaction.set",i._key,o,i.converter!==null,r);return this._transaction.set(i._key,s),this}update(e,n,r,...i){let o=yg(e,this._firestore),s;return s=typeof(n=Me(n))=="string"||n instanceof yh?ace(this._dataReader,"Transaction.update",o._key,n,r,i):sce(this._dataReader,"Transaction.update",o._key,n),this._transaction.update(o._key,s),this}delete(e){let n=yg(e,this._firestore);return this._transaction.delete(n._key),this}};var q0=class extends z0{constructor(e,n){super(e,n),this._firestore=e}get(e){let n=yg(e,this._firestore),r=new xl(this._firestore);return super.get(e).then(i=>new fa(this._firestore,r,n._key,i._document,new la(!1,!1),n.converter))}};function L6(t,e,n){t=or(t,Ei);let r=Object.assign(Object.assign({},fce),n);return(function(o){if(o.maxAttempts<1)throw new j(x.INVALID_ARGUMENT,"Max attempts must be at least 1")})(r),(function(o,s,a){let c=new ir;return o.asyncQueue.enqueueAndForget(()=>y(null,null,function*(){let l=yield e6(o);new b0(o.asyncQueue,l,a,s,c).zu()})),c.promise})(Nh(t),i=>e(new q0(t,i)),r)}(function(e,n=!0){(function(i){Sh=i})(Bs),$n(new Xt("firestore",(r,{instanceIdentifier:i,options:o})=>{let s=r.getProvider("app").getImmediate(),a=new Ei(new Hb(r.getProvider("auth-internal")),new zb(s,r.getProvider("app-check-internal")),(function(l,d){if(!Object.prototype.hasOwnProperty.apply(l.options,["projectId"]))throw new j(x.INVALID_ARGUMENT,'"projectId" not provided in firebase.initializeApp.');return new ah(l.options.projectId,d)})(s,i),s);return o=Object.assign({useFetchStreams:n},o),a._setSettings(o),a},"PUBLIC").setMultipleInstances(!0)),Ge(t$,n$,e),Ge(t$,n$,"esm2017")})();var UUe=ue(E6,!0,2);var Lv=ue(i6,!0,2),P6=ue(o6,!0,2);var x6=ue(R6,!0,2);var dm=ue(s6,!0,2);var k6=ue(O6,!0),MM=ue(A6,!0);var F6=ue(C6,!0);var VUe=ue(T6,!0,2);var U6=ue(N6,!0);var BUe=ue(m6,!0,2),GUe=ue(_6,!0,2),V6=ue(p6,!0,2);var B6=ue(L6,!0),G6=ue(D6,!0,2);var jUe=ue(y6,!0,2);var HUe=ue(g6,!0,2);var Pv=class{static getFirestoreProdDbName(e,n){return n?.databaseURL?.includes("snippyly-plugin.firebaseio.com")||n?.databaseURL?.includes("snippyly-plugin-staging.firebaseio.com")?"sfdb":n?.storeDbId??(this.isTestingDb(n?.databaseURL??"")?"sdktest":`apikey${e.toLowerCase()}`)}static isTestingDb(e){try{return e.includes("-test")}catch(n){return M.error("Error in isTestingDb:",n),!1}}};var j6=(()=>{let e=class e{constructor(r,i,o){this.configService=r,this.authService=i,this.loggingService=o,this.firestore$=new ie(null);try{Ka([this.authService.getFirebaseConfig$(),this.configService.getApiKey$(),this.configService.getFirestorePersistentCacheEnabled$()]).pipe(mn(([s,a])=>!!s&&!!a),En(1)).subscribe(([s,a,c])=>{if(s&&a&&s?.firebaseOptions?.storeDbId){try{let h=sessionStorage?.getItem("veltFirestoreLogLevel")||qt?.firebaseLogLevel||"silent";K0(h)}catch(h){this.loggingService.catch("Error in FirestoreService setLogLevel: ",h)}let l=Pv.getFirestoreProdDbName(a,s.firebaseOptions),d=this.configService.getProxyConfig();if(d?.v2DbHost){let h={host:d.v2DbHost,ssl:!0};d.forceLongPolling?h.experimentalForceLongPolling=!0:h.experimentalAutoDetectLongPolling=!0,c&&(h.localCache=bM({tabManager:OM()}));try{this.firestore$.next(bv(er(),h,l))}catch(f){this.loggingService.catch("Firestore proxy: initializeFirestore failed, falling back to existing instance. Proxy settings may not be applied: ",f),this.firestore$.next(Rh(l))}}else if(c)try{let h=er(),f=bv(h,{localCache:bM({tabManager:OM()})},l);this.firestore$.next(f)}catch{this.firestore$.next(Rh(l))}else this.firestore$.next(Rh(l))}},s=>{})}catch{}}getFirestore(){return this.firestore$.asObservable()}getFirestoreValue(){return this.firestore$.value}generateFirestoreDocumentId(){try{let r=this.getFirestoreValue()||Rh("DocumentIdDb");if(r){let i=Lv(r,"generateDocumentId");return dm(i).id}return}catch(r){this.loggingService.catch("Error in FirestoreService generateFirestoreDocumentId: ",r);return}}};e.\u0275fac=function(i){return new(i||e)($(Ji),$(_d),$(bt))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();var xv=(()=>{let e=class e{constructor(r,i,o){this.authService=r,this.configService=i,this.loggingService=o,this.db$=new ie(null);try{this.authService.getFirebaseConfig$().subscribe(s=>{if(s){let a=this.configService.getProxyConfig(),c=s.firebaseOptions.databaseURL;a?.v1DbHost&&c&&(c=bV(c,a.v1DbHost),a?.forceLongPolling&&vb());let l=xd(void 0,c);a?.v1DbHost&&c&&this.lockDatabaseHost(l),this.db$.next(l)}},s=>{this.loggingService.catch("Error in DatabaseService constructor: ",s)})}catch(s){this.loggingService.catch("Error in DatabaseService constructor:",s)}}getDb(){return this.db$.asObservable()}getDbValue(){return this.db$.getValue()}lockDatabaseHost(r){try{let o=r?._repo?.repoInfo_;if(o){let s=o.host;Object.defineProperty(o,"host",{get:()=>s,set:()=>{},configurable:!0}),o.internalHost=s}}catch(i){this.loggingService.catch("Error in DatabaseService lockDatabaseHost: ",i)}}};e.\u0275fac=function(i){return new(i||e)($(_d),$(Ji),$(bt))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();var Nr={doc:dm,collection:Lv,collectionGroup:P6,query:V6,getDoc:MM,getDocs:F6,getCountFromServer:k6,setDoc:G6,deleteDoc:x6,onSnapshot:U6,runTransaction:B6},$6=(()=>{let e=class e{constructor(r,i,o){this.firestoreService=r,this.databaseService=i,this.loggingService=o}read(r){return y(this,null,function*(){if((r.store??"firestore")==="rtdb"){let a=this.databaseService.getDbValue();return a?{data:(yield hg(kd(a,r.location)))?.val()}:{data:void 0}}let o=this.firestoreService.getFirestoreValue();return o?{data:(yield MM(dm(o,r.location)))?.data()}:{data:void 0}})}runTransaction(r){return y(this,null,function*(){return r()})}firestoreDoc(r,i){return Nr.doc(r,i)}firestoreCollection(r,i){return Nr.collection(r,i)}firestoreCollectionGroup(r,i){return Nr.collectionGroup(r,i)}firestoreQuery(r,...i){return Nr.query(r,...i)}firestoreGetDoc(r){return Nr.getDoc(r)}firestoreGetDocs(r){return Nr.getDocs(r)}firestoreGetCountFromServer(r){return Nr.getCountFromServer(r)}firestoreSetDoc(r,i,o){return o?Nr.setDoc(r,i,o):Nr.setDoc(r,i)}firestoreDeleteDoc(r){return Nr.deleteDoc(r)}firestoreOnSnapshot(r,i,o){return o?Nr.onSnapshot(r,i,o):Nr.onSnapshot(r,i)}firestoreRunTransaction(r,i){return Nr.runTransaction(r,i)}addComment(r){return this.deferred("addComment")}editComment(r){return this.deferred("editComment")}addReaction(r){return this.deferred("addReaction")}editReaction(r){return this.deferred("editReaction")}deleteReaction(r){return this.deferred("deleteReaction")}addArea(r){return this.deferred("addArea")}deleteArea(r){return this.deferred("deleteArea")}recordDocumentView(r){return this.deferred("recordDocumentView")}getActivitiesForDocuments(r){return this.deferred("getActivitiesForDocuments")}getActivitiesForEntity(r){return this.deferred("getActivitiesForEntity")}deleteComment(r){return this.deferred("deleteComment")}setCommentResolved(r){return this.deferred("setCommentResolved")}setCommentMetadata(r){return this.deferred("setCommentMetadata")}bumpCommentViews(r){return this.deferred("bumpCommentViews")}markCommentThreadRead(r){return this.deferred("markCommentThreadRead")}markNotificationRead(r){return this.deferred("markNotificationRead")}addNotification(r){return this.deferred("addNotification")}deleteNotification(r){return this.deferred("deleteNotification")}updateNotification(r){return this.deferred("updateNotification")}updatePresence(r){return this.deferred("updatePresence")}grantAccess(r){return this.deferred("grantAccess")}revokeAccess(r){return this.deferred("revokeAccess")}getAccess(r){return this.deferred("getAccess")}upsertOrgUserProfile(r){return this.deferred("upsertOrgUserProfile")}upsertDocMetadata(r){return this.deferred("upsertDocMetadata")}upsertOrgMetadata(r){return this.deferred("upsertOrgMetadata")}createActivity(r){return this.deferred("createActivity")}saveCrdtVersion(r){return this.deferred("saveCrdtVersion")}getCrdtVersion(r){return this.deferred("getCrdtVersion")}listCrdtVersions(r){return this.deferred("listCrdtVersions")}getOrganizationUsers(r){return this.deferred("getOrganizationUsers")}setLocationMetadata(r){return this.deferred("setLocationMetadata")}fetchLocations(r){return this.deferred("fetchLocations")}createFolder(r){return this.deferred("createFolder")}setDocumentMetadata(r){return this.deferred("setDocumentMetadata")}getDocuments(r){return this.deferred("getDocuments")}fetchDocuments(r){return this.deferred("fetchDocuments")}fetchFolders(r){return this.deferred("fetchFolders")}fetchCommentAnnotations(r){return this.deferred("fetchCommentAnnotations")}getCommentAnnotationsCount(r){return this.deferred("getCommentAnnotationsCount")}markNotificationReadDoc(r){return this.deferred("markNotificationReadDoc")}getUploadUrl(r){return this.deferred("getUploadUrl")}getDownloadUrl(r){return this.deferred("getDownloadUrl")}deleteAttachment(r){return this.deferred("deleteAttachment")}getNotificationsForDocuments(r){return this.deferred("getNotificationsForDocuments")}getDocumentMetadataFromIds(r){return this.deferred("getDocumentMetadataFromIds")}getCrossOrgUserNotifications(r){return this.deferred("getCrossOrgUserNotifications")}deferred(r){return this.loggingService.warn(`[WB] FirebaseDbAdapter.${r} called but write-op wiring is deferred to Phase A (self-hosting Step 0). The SDK uses its existing direct write path in Step 0.`),Promise.resolve({ok:!1,code:"unimplemented",message:`FirebaseDbAdapter.${r} wiring deferred to Phase A`})}};e.\u0275fac=function(i){return new(i||e)($(j6),$(xv),$(bt))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();var gce={comment:{mode:"persistent",scope:"doc"},notification:{mode:"persistent",scope:"user"},notificationIndex:{mode:"persistent",scope:"user"},crdt:{mode:"persistent",scope:"doc"},presence:{mode:"ephemeral",scope:"doc"},crdtSyncPresence:{mode:"ephemeral",scope:"doc"},crdtPresence:{mode:"ephemeral",scope:"doc"},liveState:{mode:"ephemeral",scope:"doc"},cursor:{mode:"ephemeral",scope:"doc"},huddle:{mode:"ephemeral",scope:"doc"},syncVideoPlayer:{mode:"ephemeral",scope:"doc"},heartbeat:{mode:"ephemeral",scope:"org"},flockSession:{mode:"ephemeral",scope:"doc"},selection:{mode:"ephemeral",scope:"doc"},reaction:{mode:"persistent",scope:"doc"},area:{mode:"persistent",scope:"doc"},lastActivityTimestamp:{mode:"persistent",scope:"org"},lastNotificationTimestamp:{mode:"persistent",scope:"org"},documentViews:{mode:"persistent",scope:"doc"},commentViews:{mode:"persistent",scope:"doc"},organizationCommentViews:{mode:"persistent",scope:"org"},folderCommentViews:{mode:"persistent",scope:"org"}};function W6(t){return gce[t]}var Qe={getDatabase:xd,ref:kd,query:KH,get:hg,set:QH,update:JH,remove:YH,push:qH,runTransaction:XH,onValue:Rb,onChildAdded:HH,onChildChanged:$H,onChildRemoved:WH,off:jH,objectVal:BH,listVal:VH,stateChanges:GH,onDisconnect:zH},z6=(()=>{let e=class e{constructor(r,i){this.databaseService=r,this.loggingService=i}getServerTimeOffset(){return y(this,null,function*(){try{let r=this.databaseService.getDbValue();if(!r)return 0;let o=(yield hg(kd(r,e.SERVER_TIME_OFFSET_PATH)))?.val();return typeof o=="number"?o:0}catch(r){return this.loggingService.catch("Error in FirebaseRealtimeAdapter getServerTimeOffset: ",r),0}})}onServerTimeOffset(r){let i=null,o=null;try{o=this.databaseService.getDb().subscribe(s=>{if(s){let a=kd(s,e.SERVER_TIME_OFFSET_PATH);i=Rb(a,c=>{try{r(c?.val())}catch(l){this.loggingService.catch("Error in FirebaseRealtimeAdapter onServerTimeOffset callback: ",l)}})}})}catch(s){this.loggingService.catch("Error in FirebaseRealtimeAdapter onServerTimeOffset: ",s)}return()=>{try{i&&(i(),i=null),o?.unsubscribe(),o=null}catch(s){this.loggingService.catch("Error tearing down FirebaseRealtimeAdapter onServerTimeOffset: ",s)}}}getChannelTag(r){return W6(r)}getDatabaseInstance(r){return r?Qe.getDatabase(void 0,r):Qe.getDatabase()}rtdbRef(r,i){return Qe.ref(r,i)}rtdbQueryRef(r,...i){return Qe.query(r,...i)}rtdbGet(r){return Qe.get(r)}rtdbSet(r,i,o){return this.getChannelTag(r),Qe.set(i,o)}rtdbUpdate(r,i,o){return this.getChannelTag(r),Qe.update(i,o)}rtdbRemove(r,i){return this.getChannelTag(r),Qe.remove(i)}rtdbPush(r,i,o){return this.getChannelTag(r),o===void 0?Qe.push(i):Qe.push(i,o)}rtdbRunTransaction(r,i,o){return this.getChannelTag(r),Qe.runTransaction(i,o)}rtdbOnValue(r,i,o,s,a){return this.getChannelTag(r),typeof s=="function"?a?Qe.onValue(i,o,s,a):Qe.onValue(i,o,s):s?Qe.onValue(i,o,s):Qe.onValue(i,o)}rtdbOnChildAdded(r,i,o,s){return this.getChannelTag(r),s?Qe.onChildAdded(i,o,s):Qe.onChildAdded(i,o)}rtdbOnChildChanged(r,i,o,s){return this.getChannelTag(r),s?Qe.onChildChanged(i,o,s):Qe.onChildChanged(i,o)}rtdbOnChildRemoved(r,i,o,s){return this.getChannelTag(r),s?Qe.onChildRemoved(i,o,s):Qe.onChildRemoved(i,o)}rtdbOff(r,i,o){Qe.off(r,i,o)}rtdbObjectVal$(r,i){return this.getChannelTag(r),Qe.objectVal(i)}rtdbListVal$(r,i){return this.getChannelTag(r),Qe.listVal(i)}rtdbStateChanges$(r,i){return this.getChannelTag(r),Qe.stateChanges(i)}rtdbOnDisconnectSet(r,i,o){return this.getChannelTag(r),Qe.onDisconnect(i).set(o)}rtdbOnDisconnectUpdate(r,i,o){return this.getChannelTag(r),Qe.onDisconnect(i).update(o)}rtdbOnDisconnectRemove(r,i){return this.getChannelTag(r),Qe.onDisconnect(i).remove()}rtdbOnDisconnectCancel(r,i){return this.getChannelTag(r),Qe.onDisconnect(i).cancel()}subscribe(r,i,o,s){return{unsubscribe:()=>{}}}publish(r,i,o){return y(this,null,function*(){return{ok:!1,code:"unimplemented",message:"RealtimeAdapter.publish wiring deferred to Phase A"}})}presence(r,i){return y(this,null,function*(){return{ok:!1,code:"unimplemented",message:"RealtimeAdapter.presence wiring deferred to Phase A"}})}onDisconnect(r,i){return y(this,null,function*(){return()=>{}})}};e.SERVER_TIME_OFFSET_PATH=".info/serverTimeOffset",e.\u0275fac=function(i){return new(i||e)($(xv),$(bt))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();function TVe(t,e,n){let r=t?.[e];return typeof r!="function"?Promise.resolve({ok:!1,code:"unimplemented",message:`the portable adapter does not implement '${e}'`}):r.call(t,n)}var Fl=null,LM=new Set;function q6(t){return LM.add(t),()=>LM.delete(t)}function yVe(t){return new Promise(e=>{let n=!1,r=null,i=()=>{if(!n){n=!0,clearTimeout(o);try{r?.()}catch{}e()}},o=setTimeout(i,t);r=q6(i),Fl&&i()})}function IVe(t){return tf(()=>{let e=!1;try{if(t.isPortableFeedActive())return lt(null)}catch(r){e=!0,t.onError("portable check",r)}let n=new fe(r=>q6(()=>{try{(e||t.isPortableFeedActive())&&r.next(null)}catch(i){e=!0,r.next(null),t.onError("registration re-check",i)}}));return gs(t.firebaseDb$().pipe(mn(r=>!!r)),n)})}function mce(t){let e=t?.message;return typeof e=="string"&&/^NG0205(?!\d)/.test(e)}function vVe(t){if(Fl=t??null,Fl)for(let e of Array.from(LM))try{e()}catch(n){M.catch("Error in portable adapter registration listener: ",n)}}function P2(){return Fl}var SVe=(()=>{let e=class e{constructor(r){this.injector=r}get configService(){return this._configService??=this.injector.get(Ji)}get authService(){return this._authService??=this.injector.get(_d)}isPortableBackendActive(){return this.isPortableActive()}evaluatePortableGates(){try{return{chunkRegistered:!!Fl,flagOn:this.configService.getEnablePortableBackend()===!0,identifyRecorded:!!this.authService.getPortableBackend()}}catch(r){return mce(r)||M.catch("Error in AdapterSelectorService evaluatePortableGates: ",r),null}}isPortableActive(){let r=this.evaluatePortableGates();return!!r&&r.chunkRegistered&&r.flagOn&&r.identifyRecorded}isPortableBackendPending(){let r=this.evaluatePortableGates();return!!r&&!r.chunkRegistered&&r.flagOn&&r.identifyRecorded}isPortableSession(){let r=this.evaluatePortableGates();return!!r&&r.flagOn&&r.identifyRecorded}portableConnectionAnnounces(r){try{return this.resolveRealtimeAdapter()?.hasCapability?.(r)===!0}catch(i){return M.catch("Error in AdapterSelectorService portableConnectionAnnounces: ",i),!1}}resolveDbAdapter(){return this.isPortableActive()?Fl.db:this.injector.get($6)}resolveRealtimeAdapter(){return this.isPortableActive()?Fl.realtime:this.injector.get(z6)}};e.\u0275fac=function(i){return new(i||e)($(ze))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();var RVe=new Set(n2);function NVe(t){try{let e=t?.reasonCode;return typeof e!="string"||!e.trim()?"":` [reason: ${e.trim()}]`}catch{return""}}var bVe="portable transport not connected",OVe="portable transport disconnected",MVe="portable transport send failed",Ece="portable publish op '",_ce="' requires a channel on the OperationRequest";function LVe(t){return`${Ece}${t}${_ce}`}var PVe="portable request timed out",xVe="portable request failed in transport",kVe="portable session not established",FVe="portable apiEndpoint is not a secure URL; request not sent",UVe="portable request body could not be serialized; request not sent",VVe="portable request failed before it was sent";export{B as a,me as b,i4 as c,Tce as d,yce as e,Ice as f,y as g,gt as h,fe as i,lS as j,Rt as k,ie as l,Xa as m,K4 as n,Y4 as o,Wa as p,cr as q,lt as r,X4 as s,Q4 as t,x4 as u,De as v,Ka as w,tf as x,J4 as y,wi as z,oz as A,To as B,w4 as C,gs as D,mn as E,_4 as F,oS as G,sS as H,R4 as I,Jm as J,En as K,cS as L,yo as M,Qh as N,Ya as O,Zm as P,dS as Q,b4 as R,hS as S,O4 as T,Qa as U,Mr as V,ps as W,M4 as X,eE as Y,L4 as Z,F4 as _,J as $,SE as aa,Q as ba,So as ca,z as da,$ as ea,Y as fa,Xn as ga,Nn as ha,bi as ia,yP as ja,IP as ka,MP as la,LP as ma,ze as na,on as oa,Hn as pa,lr as qa,ki as ra,Ec as sa,Lr as ta,Fz as ua,zt as va,vC as wa,n8 as xa,Ns as ya,i_ as za,y_ as Aa,u8 as Ba,q8 as Ca,K8 as Da,Y8 as Ea,J8 as Fa,Z8 as Ga,m5 as Ha,Ro as Ia,Ae as Ja,A5 as Ka,fq as La,pq as Ma,Vi as Na,bf as Oa,bo as Pa,L_ as Qa,st as Ra,Aq as Sa,ji as Ta,vc as Ua,c1 as Va,h9 as Wa,ws as Xa,Hi as Ya,Mf as Za,p1 as _a,v9 as $a,E1 as ab,_1 as bb,k_ as cb,bs as db,A1 as eb,C1 as fb,w9 as gb,O9 as hb,M9 as ib,L9 as jb,P9 as kb,x9 as lb,k9 as mb,D1 as nb,aD as ob,cD as pb,R1 as qb,lD as rb,uD as sb,N1 as tb,dD as ub,hD as vb,b1 as wb,j9 as xb,O1 as yb,L1 as zb,P1 as Ab,q9 as Bb,Y9 as Cb,X9 as Db,J9 as Eb,Z9 as Fb,eK as Gb,tK as Hb,nK as Ib,rK as Jb,iK as Kb,B1 as Lb,G1 as Mb,EK as Nb,TK as Ob,wK as Pb,X1 as Qb,fD as Rb,Q1 as Sb,J1 as Tb,Z1 as Ub,LK as Vb,eF as Wb,nF as Xb,PK as Yb,xK as Zb,kK as _b,FK as $b,jK as ac,HK as bc,$K as cc,WK as dc,zK as ec,qK as fc,KK as gc,YK as hc,XK as ic,QK as jc,JK as kc,ZK as lc,tY as mc,rY as nc,iY as oc,oY as pc,sY as qc,aY as rc,uY as sc,Uf as tc,Vf as uc,_D as vc,QSe as wc,JSe as xc,ZSe as yc,BY as zc,bD as Ac,eAe as Bc,tAe as Cc,nAe as Dc,$i as Ec,LF as Fc,a7 as Gc,XF as Hc,c7 as Ic,FD as Jc,l7 as Kc,u7 as Lc,d7 as Mc,h7 as Nc,p7 as Oc,m7 as Pc,_7 as Qc,UD as Rc,tT as Sc,nT as Tc,P7 as Uc,F7 as Vc,TU as Wc,aX as Xc,cX as Yc,XD as Zc,MU as _c,eR as $c,ud as ad,_r as bd,ks as cd,FT as dd,Fc as ed,Jn as fd,Me as gd,Xt as hd,$n as id,Xi as jd,Zn as kd,Bs as ld,er as md,Ge as nd,JJ as od,SLe as pd,ALe as qd,CLe as rd,si as sd,Gs as td,Go as ud,ai as vd,ue as wd,ci as xd,jo as yd,HLe as zd,$Le as Ad,WLe as Bd,Hs as Cd,Iee as Dd,See as Ed,kee as Fd,Hc as Gd,$c as Hd,Rxe as Id,Nxe as Jd,wFe as Kd,bFe as Ld,OFe as Md,MFe as Nd,LFe as Od,PFe as Pd,Ho as Qd,zxe as Rd,qxe as Sd,Kxe as Td,xU as Ud,NX as Vd,np as Wd,qt as Xd,M as Yd,SDe as Zd,ADe as _d,CDe as $d,DDe as ae,RDe as be,NDe as ce,wDe as de,Wi as ee,bDe as fe,ODe as ge,MDe as he,LDe as ie,dX as je,hX as ke,fX as le,pX as me,gX as ne,mX as oe,PDe as pe,EX as qe,QD as re,_X as se,Er as te,uT as ue,TX as ve,ed as we,Mn as xe,yX as ye,dT as ze,IX as Ae,vX as Be,SX as Ce,xDe as De,kDe as Ee,FDe as Fe,AX as Ge,F as He,bU as Ie,TRe as Je,yRe as Ke,IRe as Le,vRe as Me,td as Ne,DRe as Oe,RRe as Pe,NRe as Qe,Ur as Re,Et as Se,kU as Te,FU as Ue,rNe as Ve,iNe as We,UU as Xe,tR as Ye,VU as Ze,nR as _e,IT as $e,wX as af,bX as bf,OX as cf,MX as df,LX as ef,PX as ff,xX as gf,kX as hf,FX as if,UX as jf,VX as kf,BX as lf,HU as mf,$U as nf,WU as of,zU as pf,qU as qf,zi as rf,wNe as sf,vT as tf,KU as uf,YU as vf,XU as wf,QU as xf,JU as yf,ZU as zf,eV as Af,tV as Bf,nV as Cf,rV as Df,iV as Ef,oV as Ff,sV as Gf,dwe as Hf,hwe as If,aV as Jf,rR as Kf,cV as Lf,lV as Mf,dV as Nf,hV as Of,Wwe as Pf,zwe as Qf,GX as Rf,jX as Sf,XOe as Tf,ST as Uf,lR as Vf,Pc as Wf,bV as Xf,a0e as Yf,Mc as Zf,Vo as _f,c0e as $f,l0e as ag,u0e as bg,MV as cg,d0e as dg,h0e as eg,f0e as fg,p0e as gg,g0e as hg,m0e as ig,E0e as jg,LV as kg,PV as lg,_0e as mg,T0e as ng,$X as og,y0e as pg,I0e as qg,v0e as rg,S0e as sg,A0e as tg,xV as ug,rd as vg,C0e as wg,kV as xg,UV as yg,_V as zg,TV as Ag,WX as Bg,zX as Cg,wT as Dg,sp as Eg,D0e as Fg,R0e as Gg,qi as Hg,N0e as Ig,id as Jg,YX as Kg,w0e as Lg,gR as Mg,IV as Ng,XX as Og,DT as Pg,b0e as Qg,O0e as Rg,VV as Sg,BV as Tg,QX as Ug,Oc as Vg,JX as Wg,tQ as Xg,M0e as Yg,nQ as Zg,L0e as _g,rQ as $g,iQ as ah,oQ as bh,sQ as ch,xc as dh,P0e as eh,x0e as fh,k0e as gh,dR as hh,F0e as ih,cQ as jh,U0e as kh,V0e as lh,$V as mh,B0e as nh,G0e as oh,j0e as ph,H0e as qh,$0e as rh,W0e as sh,z0e as th,AT as uh,q0e as vh,K0e as wh,Y0e as xh,mR as yh,X0e as zh,DV as Ah,Q0e as Bh,J0e as Ch,Z0e as Dh,eMe as Eh,tMe as Fh,nMe as Gh,rMe as Hh,iMe as Ih,oMe as Jh,sMe as Kh,aMe as Lh,cMe as Mh,lMe as Nh,uMe as Oh,dMe as Ph,hMe as Qh,fMe as Rh,pMe as Sh,gMe as Th,mMe as Uh,EMe as Vh,_Me as Wh,hQ as Xh,TMe as Yh,yMe as Zh,IMe as _h,RV as $h,vMe as ai,SMe as bi,cp as ci,fQ as di,AMe as ei,CMe as fi,DMe as gi,RMe as hi,pQ as ii,NMe as ji,wMe as ki,QV as li,_R as mi,sd as ni,bMe as oi,op as pi,OMe as qi,MMe as ri,LMe as si,fR as ti,PMe as ui,xMe as vi,kMe as wi,FMe as xi,MQ as yi,UMe as zi,VMe as Ai,BMe as Bi,NV as Ci,GMe as Di,LQ as Ei,qQ as Fi,KQ as Gi,St as Hi,gd as Ii,jDe as Ji,HDe as Ki,$De as Li,WDe as Mi,zDe as Ni,qDe as Oi,KDe as Pi,YDe as Qi,XDe as Ri,QDe as Si,JDe as Ti,ZDe as Ui,hT as Vi,eRe as Wi,tRe as Xi,nRe as Yi,fT as Zi,rRe as _i,iRe as $i,oRe as aj,sRe as bj,aRe as cj,cRe as dj,lRe as ej,pT as fj,uRe as gj,dRe as hj,gT as ij,AU as jj,CU as kj,DU as lj,RU as mj,mT as nj,zs as oj,bt as pj,Ji as qj,zc as rj,rne as sj,dne as tj,hke as uj,ly as vj,XG as wj,Lke as xj,Wn as yj,Pke as zj,UUe as Aj,VUe as Bj,BUe as Cj,GUe as Dj,jUe as Ej,HUe as Fj,Pv as Gj,j6 as Hj,xv as Ij,$6 as Jj,W6 as Kj,z6 as Lj,TVe as Mj,q6 as Nj,yVe as Oj,IVe as Pj,vVe as Qj,P2 as Rj,SVe as Sj,n2 as Tj,jke as Uj,Hke as Vj,$ke as Wj,Wke as Xj,zke as Yj,qke as Zj,Kke as _j,Yke as $j,NVe as ak,bVe as bk,OVe as ck,MVe as dk,Ece as ek,_ce as fk,LVe as gk,PVe as hk,xVe as ik,kVe as jk,FVe as kk,UVe as lk,VVe as mk,c2 as nk,l2 as ok,fy as pk,o1e as qk,s1e as rk,M2 as sk,_d as tk};
|