@veltdev/sdk-staging 6.0.21 → 6.0.22

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.
Files changed (59) hide show
  1. package/{chunk-BQVD76TQ.js → chunk-2MSZRYWM.js} +1 -1
  2. package/{chunk-JC7WVK34.js → chunk-3OM6I7TN.js} +1 -1
  3. package/{chunk-2PD23MCR.js → chunk-43WEFNU4.js} +1 -1
  4. package/{chunk-HRHQ2ONQ.js → chunk-524WXA3S.js} +1 -1
  5. package/chunk-7EBKJGNH.js +1 -0
  6. package/{chunk-PLEUR6AN.js → chunk-7G4ZWTCF.js} +1 -1
  7. package/{chunk-64VJSQ7G.js → chunk-7ZFAMF77.js} +1 -1
  8. package/{chunk-G6CVZGMW.js → chunk-A4Q5UDR3.js} +1 -1
  9. package/{chunk-KBPP2RJV.js → chunk-ANMTXHZB.js} +1 -1
  10. package/{chunk-TPPAZ2V2.js → chunk-B2TYIDTP.js} +1 -1
  11. package/{chunk-3QL3XETD.js → chunk-BNGXNKUM.js} +1 -1
  12. package/{chunk-Q5QIV3YT.js → chunk-BZKWBFHL.js} +1 -1
  13. package/chunk-CCIB4DFJ.js +1 -0
  14. package/{chunk-ACBISYSH.js → chunk-CXFGGMWL.js} +1 -1
  15. package/{chunk-YNU6L4ZC.js → chunk-DIKJYB45.js} +4 -4
  16. package/{chunk-TSAUKBNW.js → chunk-FKAAIBWB.js} +1 -1
  17. package/{chunk-XDDHCYC6.js → chunk-FW6FMPNE.js} +1 -1
  18. package/{chunk-PXOUAPOU.js → chunk-JLPYFVMR.js} +1 -1
  19. package/{chunk-PGPXYZZN.js → chunk-JMKDZAWV.js} +1 -1
  20. package/{chunk-UPKZBLXG.js → chunk-KNHREF2F.js} +1 -1
  21. package/{chunk-WXX73A2Z.js → chunk-KR4B63S5.js} +1 -1
  22. package/{chunk-RS4IIGBQ.js → chunk-M5PJOBPL.js} +1 -1
  23. package/{chunk-MOU625G2.js → chunk-MC7DJ3VW.js} +1 -1
  24. package/{chunk-I3NP7X72.js → chunk-NTLN3TMN.js} +1 -1
  25. package/{chunk-LG756VXD.js → chunk-OT4YSQ7A.js} +1 -1
  26. package/{chunk-GMP3ZGYE.js → chunk-R7DJGXNF.js} +1 -1
  27. package/{chunk-5CHLXJQA.js → chunk-RNP2NMA7.js} +1 -1
  28. package/{chunk-IYN573WN.js → chunk-SZPZFRQZ.js} +1 -1
  29. package/{chunk-TIDK55EX.js → chunk-TNZTPZI6.js} +1 -1
  30. package/{chunk-T4CZDGU7.js → chunk-TXXJ2VYN.js} +1 -1
  31. package/{chunk-NK4G7LFH.js → chunk-UECIUU3U.js} +1 -1
  32. package/{chunk-IV6TXG5Z.js → chunk-Y4JEJECZ.js} +1 -1
  33. package/{chunk-IUO7RNPW.js → chunk-YCTM5YK3.js} +1 -1
  34. package/{chunk-Z3NOEF5O.js → chunk-YY5SR5ZD.js} +1 -1
  35. package/{chunk-6EMXC6J7.js → chunk-ZBEKXAVQ.js} +1 -1
  36. package/package.json +1 -1
  37. package/velt-activity-log.js +1 -1
  38. package/velt-area.js +1 -1
  39. package/velt-arrow.js +1 -1
  40. package/velt-comment.js +7 -7
  41. package/velt-crdt.js +1 -1
  42. package/velt-cursor.js +1 -1
  43. package/velt-huddle.js +1 -1
  44. package/velt-live-state-sync.js +1 -1
  45. package/velt-notification.js +1 -1
  46. package/velt-portable.js +1 -1
  47. package/velt-presence.js +1 -1
  48. package/velt-reaction.js +1 -1
  49. package/velt-recorder.js +1 -1
  50. package/velt-rewriter.js +1 -1
  51. package/velt-selection.js +1 -1
  52. package/velt-tag.js +1 -1
  53. package/velt-user-invite.js +1 -1
  54. package/velt-user-request.js +1 -1
  55. package/velt-video-player.js +1 -1
  56. package/velt-views.js +1 -1
  57. package/velt.js +2 -2
  58. package/chunk-7YXWYOYZ.js +0 -1
  59. package/chunk-P2OUKDDH.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 rne={fetch:(t,e)=>fetch(t,e)},ine=5e3;function one(t){return`${t.replace(/\/+$/,"")}/operations/getProjectConfig`}function sne(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)},ine)});try{return yield Promise.race([rne.fetch(t,n?Ee(B({},e),{signal:n.signal}):e),i])}finally{r!==void 0&&clearTimeout(r)}})}function KG(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 sne(one(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}})}var ane=["unauthenticated","permission-denied","not-found","invalid-argument","failed-precondition","resource-exhausted"],YG=[...ane,"unimplemented"];function XG(t){return!!t&&t.backend==="portable"&&typeof t.wsEndpoint=="string"&&typeof t.apiEndpoint=="string"}var Ske="getaccess-any-user",Ake="ordered-deltas";var dy={import:()=>import("./velt-portable.js")},Tr=null,bp=!1;function QG(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 JG(){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 ZG(){Tr&&(Tr=Tr.then(()=>bp?dy.import().then(t=>{t.checkPortableBackendLiveness?.()}):void 0).catch(t=>{M.catch("Error checking portable backend liveness: ",t)}))}var e2=(()=>{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 t2=(()=>{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)($(e2),$(bt))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();var n2=(()=>{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 r2(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 dne(t){if(Array.isArray(t))return t}function hne(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 fne(){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 rne={fetch:(t,e)=>fetch(t,e)},ine=5e3;function one(t){return`${t.replace(/\/+$/,"")}/operations/getProjectConfig`}function sne(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)},ine)});try{return yield Promise.race([rne.fetch(t,n?Ee(B({},e),{signal:n.signal}):e),i])}finally{r!==void 0&&clearTimeout(r)}})}function KG(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 sne(one(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}})}var ane=["unauthenticated","permission-denied","not-found","invalid-argument","failed-precondition","resource-exhausted"],YG=[...ane,"unimplemented"];function XG(t){return!!t&&t.backend==="portable"&&typeof t.wsEndpoint=="string"&&typeof t.apiEndpoint=="string"}var Ske="getaccess-any-user",Ake="ordered-deltas",Cke="doc-notification-views",Dke="fetch-folders-include-children",Rke="notification-timestamp-by-document",Nke="per-editor-crdt-fold";var dy={import:()=>import("./velt-portable.js")},Tr=null,bp=!1;function QG(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 JG(){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 ZG(){Tr&&(Tr=Tr.then(()=>bp?dy.import().then(t=>{t.checkPortableBackendLiveness?.()}):void 0).catch(t=>{M.catch("Error checking portable backend liveness: ",t)}))}var e2=(()=>{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 t2=(()=>{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)($(e2),$(bt))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();var n2=(()=>{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 r2(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 dne(t){if(Array.isArray(t))return t}function hne(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 fne(){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 pne(t,e){return dne(t)||hne(t,e)||gne(t,e)||fne()}function gne(t,e){if(t){if(typeof t=="string")return r2(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)?r2(t,e):void 0}}var _2=Object.entries,i2=Object.setPrototypeOf,mne=Object.isFrozen,Ene=Object.getPrototypeOf,_ne=Object.getOwnPropertyDescriptor,Qt=Object.freeze,ln=Object.seal,gd=Object.create,T2=typeof Reflect<"u"&&Reflect,kN=T2.apply,FN=T2.construct;Qt||(Qt=function(e){return e});ln||(ln=function(e){return e});kN||(kN=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)});FN||(FN=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),Tne=kt(Array.prototype.lastIndexOf),o2=kt(Array.prototype.pop),Op=kt(Array.prototype.push),yne=kt(Array.prototype.splice),md=Array.isArray,Pp=kt(String.prototype.toLowerCase),bN=kt(String.prototype.toString),s2=kt(String.prototype.match),Mp=kt(String.prototype.replace),a2=kt(String.prototype.indexOf),Ine=kt(String.prototype.trim),vne=kt(Number.prototype.toString),Sne=kt(Boolean.prototype.toString),c2=typeof BigInt>"u"?null:kt(BigInt.prototype.toString),l2=typeof Symbol>"u"?null:kt(Symbol.prototype.toString),nr=kt(Object.prototype.hasOwnProperty),Lp=kt(Object.prototype.toString),Pn=kt(RegExp.prototype.test),Kc=Ane(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 kN(t,e,r)}}function Ane(t){return function(){for(var e=arguments.length,n=new Array(e),r=0;r<e;r++)n[r]=arguments[r];return FN(t,n)}}function xe(t,e){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:Pp;if(i2&&i2(t,null),!md(e))return t;let r=e.length;for(;r--;){let i=e[r];if(typeof i=="string"){let o=n(i);o!==i&&(mne(e)||(e[r]=o),i=o)}t[i]=!0}return t}function Cne(t){for(let e=0;e<t.length;e++)nr(t,e)||(t[e]=null);return t}function Ir(t){let e=gd(null);for(let r of _2(t)){var n=pne(r,2);let i=n[0],o=n[1];nr(t,i)&&(md(o)?e[i]=Cne(o):o&&typeof o=="object"&&o.constructor===Object?e[i]=Ir(o):e[i]=o)}return e}function Dne(t){switch(typeof t){case"string":return t;case"number":return vne(t);case"boolean":return Sne(t);case"bigint":return c2?c2(t):"0";case"symbol":return l2?l2(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=_ne(t,e);if(r){if(r.get)return kt(r.get);if(typeof r.value=="function")return kt(r.value)}t=Ene(t)}function n(){return null}return n}function Rne(t){try{return Pn(t,""),!0}catch{return!1}}var u2=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"]),ON=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"]),MN=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"]),Nne=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"]),LN=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"]),wne=Qt(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),d2=Qt(["#text"]),h2=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"]),PN=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"]),f2=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"]),bne=ln(/{{[\w\W]*|^[\w\W]*}}/g),One=ln(/<%[\w\W]*|^[\w\W]*%>/g),Mne=ln(/\${[\w\W]*/g),Lne=ln(/^data-[\-\w.\u00B7-\uFFFF]+$/),Pne=ln(/^aria-[\-\w]+$/),p2=ln(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp|matrix):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),xne=ln(/^(?:\w+script|data):/i),kne=ln(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Fne=ln(/^html$/i),Une=ln(/^[a-z][.\w]*(-[.\w]+)+$/i),g2=ln(/<[/\w!]/g),m2=ln(/<[/\w]/g),Vne=ln(/<\/no(script|embed|frames)/i),Bne=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},y2=["style","script","xmp","iframe","noembed","noframes","plaintext","noscript"],Gne=Qt(xe({},y2)),jne=(function(){let t={};return Yc(y2,e=>{t[e]=ln(new RegExp("</"+e+"(?=[\\t\\n\\f\\r />])","i"))}),Qt(t)})(),Hne=function(){return typeof window>"u"?null:window},$ne=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}},E2=function(){return{afterSanitizeAttributes:[],afterSanitizeElements:[],afterSanitizeShadowDOM:[],beforeSanitizeAttributes:[],beforeSanitizeElements:[],beforeSanitizeShadowDOM:[],uponSanitizeAttribute:[],uponSanitizeElement:[],uponSanitizeShadowNode:[]}},Ks=function(e,n,r,i){return nr(e,n)&&md(e[n])?xe(i.base?Ir(i.base):{},e[n],i.transform):r},xN=function(e,n,r){let i=nr(e,n)?e[n]:void 0;return i&&typeof i=="object"?Ir(i):r()};function I2(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Hne(),e=W=>I2(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=$ne(h,i),D=!0),O},ns=n,Fl=ns.implementation,hm=ns.createNodeIterator,_i=ns.createDocumentFragment,nn=ns.getElementsByTagName,kv=r.importNode,He=E2();e.isSupported=typeof _2=="function"&&typeof V=="function"&&Fl&&Fl.createHTMLDocument!==void 0;let Fv=bne,Na=One,Uv=Mne,Vv=Lne,Ul=Pne,Vl=xne,Bl=kne,wh=Une,Gl=p2,Je=null,jl=xe({},[...u2,...ON,...MN,...LN,...d2]),rt=null,bh=xe({},[...h2,...PN,...f2,...hy]),sr=Object.seal(gd(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,Hl=null,Wr=Object.seal(gd(null,{tagCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeCheck:{writable:!0,configurable:!1,enumerable:!0,value:null}})),fm=!0,wa=!0,$l=!1,Wl=!0,dt=!1,yt=!0,wr=!1,zl=!1,ba=null,ql=null,co=!1,lo=!1,Oa=!1,is=!1,pm=!0,gm=!1,Kl="user-content-",Yl=!0,Xl=!1,br={},Ti=null,Ql=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],bN),mm=Qt(["mi","mo","mn","ms","mtext"]),vi=xe({},mm),Em=Qt(["annotation-xml"]),Lh=xe({},Em),Jl=xe({},["title","style","font","a","script"]),os=null,Ph=["application/xhtml+xml","text/html"],Zl="text/html",$e=null,po=null,_m=n.createElement("form"),eu=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?Zl:T.PARSER_MEDIA_TYPE,$e=os==="application/xhtml+xml"?bN:Pp,Je=Ks(T,"ALLOWED_TAGS",jl,{transform:$e}),rt=Ks(T,"ALLOWED_ATTR",bh,{transform:$e}),fo=Ks(T,"ALLOWED_NAMESPACES",Bv,{transform:bN}),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",Ql,{transform:$e}),rs=Ks(T,"FORBID_TAGS",Ir({}),{transform:$e}),Hl=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,$l=T.ALLOW_UNKNOWN_PROTOCOLS||!1,Wl=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,Yl=T.KEEP_CONTENT!==!1,Xl=T.IN_PLACE||!1,Gl=Rne(T.ALLOWED_URI_REGEXP)?T.ALLOWED_URI_REGEXP:p2,uo=typeof T.NAMESPACE=="string"?T.NAMESPACE:ct,vi=xN(T,"MATHML_TEXT_INTEGRATION_POINTS",()=>xe({},mm)),Lh=xN(T,"HTML_INTEGRATION_POINTS",()=>xe({},Em));let w=xN(T,"CUSTOM_ELEMENT_HANDLING",()=>gd(null));if(sr=gd(null),nr(w,"tagNameCheck")&&eu(w.tagNameCheck)&&(sr.tagNameCheck=w.tagNameCheck),nr(w,"attributeNameCheck")&&eu(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({},d2),rt=gd(null),br.html===!0&&(xe(Je,u2),xe(rt,h2)),br.svg===!0&&(xe(Je,ON),xe(rt,PN),xe(rt,hy)),br.svgFilters===!0&&(xe(Je,MN),xe(rt,PN),xe(rt,hy)),br.mathMl===!0&&(xe(Je,LN),xe(rt,f2),xe(rt,hy))),Wr.tagCheck=null,Wr.attributeCheck=null,nr(T,"ADD_TAGS")&&(typeof T.ADD_TAGS=="function"?Wr.tagCheck=T.ADD_TAGS:md(T.ADD_TAGS)&&(Je===jl&&(Je=Ir(Je)),xe(Je,T.ADD_TAGS,$e))),nr(T,"ADD_ATTR")&&(typeof T.ADD_ATTR=="function"?Wr.attributeCheck=T.ADD_ATTR:md(T.ADD_ATTR)&&(rt===bh&&(rt=Ir(rt)),xe(rt,T.ADD_ATTR,$e))),nr(T,"ADD_FORBID_CONTENTS")&&md(T.ADD_FORBID_CONTENTS)&&(Ti===Ql&&(Ti=Ir(Ti)),xe(Ti,T.ADD_FORBID_CONTENTS,$e)),Yl&&(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({},[...ON,...MN,...Nne]),kh=xe({},[...LN,...wne]),Gv=function(T,w,G){return w.namespaceURI===ct?T==="svg":w.namespaceURI===Ii?T==="svg"&&(G==="annotation-xml"||vi[G]):!!xh[T]},tu=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]&&(Jl[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?tu(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(m2,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])}},nu=function(T){let w=null,G=null;if(co)T="<remove></remove>"+T;else{let de=s2(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=Fl.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)})},ru=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(g2,T.textContent)&&Pn(g2,T.innerHTML)||yt&&T.namespaceURI===ct&&Gne[w]&&(as(T.firstElementChild)||typeof T.textContent=="string"&&Pn(jne[w],T.textContent))||T.nodeType===yr.processingInstruction||yt&&T.nodeType===yr.comment&&Pn(m2,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},iu=function(T,w,G){if(!rs[w]&&cs(w)&&Yn(sr.tagNameCheck,w))return!1;if(Yl&&!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:(Xl&&xa(T),!0)},Ze=function(T,w){if(Or(He.beforeSanitizeElements,T,null),jh(T,w))return!0;if(ru(T))return Kn(T),!0;let G=$e(A(T));if(Je=Fa(He.uponSanitizeElement,Je,jl,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=iu(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(Vne,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(Hl[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(Ul,w)?!0:ee?Ma[w]||Pn(Gl,Mp(G,Bl,""))||(w==="src"||w==="xlink:href"||w==="href")&&T!=="script"&&a2(G,"data:")===0&&yi[T]||$l&&!Pn(Vl,Mp(G,Bl,""))?!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),ru(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||ru(T))return;rt=Fa(He.uponSanitizeAttribute,rt,bh,ql);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:Ine($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")&&a2(pn,Kl)!==0&&(go(et,T,de),pn=Kl+pn,ls=!0),yt&&Pn(/((--!?|])>)|<\/(style|script|title|xmp|textarea|noscript|iframe|noembed|noframes)/i,pn)){go(et,T,de);continue}if(It==="attributename"&&s2(pn,"href")){go(et,T,de);continue}if(!G.forceKeepAttr){if(!G.keepAttr){go(et,T,de);continue}if(!Wl&&Pn(Bne,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&&o2(e.removed)}}Or(He.afterSanitizeAttributes,T,null)},ou=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)&&ou(w.content),v(w)===yr.element){let ee=K(w);mo(ee)&&(Hh(ee),ou(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){ou(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=Dne(W),typeof W!="string"))throw Kc("dirty is not a string, aborting");if(!e.isSupported)return W;zl?(Je=ba,rt=ql):Pa(T),(He.uponSanitizeElement.length>0||He.uponSanitizeAttribute.length>0)&&(Je=Ir(Je)),He.uponSanitizeAttribute.length>0&&(rt=Ir(rt)),e.removed=[];let de=Xl&&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(ru(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=nu("<!---->"),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=nu(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)&&ou(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(Fne,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),zl=!0,ba=Je,ql=rt},e.clearConfig=function(){po=null,zl=!1,ba=null,ql=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=Tne(He[W],T);return w===-1?void 0:yne(He[W],w,1)[0]}return o2(He[W])}},e.removeHooks=function(W){nr(He,W)&&(He[W]=[])},e.removeAllHooks=function(){He=E2()},e}var fy=I2();var Wne=/^\/\/\*\[@id='([^']+)'\]/;function UN(t){try{if(typeof t!="string")return null;let e=Wne.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 zne=[/:r[0-9a-z]+:/i,/_r_[0-9a-z]+_/i,/«r[0-9a-z]+»/i,/^radix-/i];function S2(t){try{return t?zne.some(e=>e.test(t)):!1}catch{return!1}}function Pke(t){if(Array.isArray(t))return v2(t);if(!t||typeof t!="object"||!("documentIds"in t))return{documentIds:null};let e=t.documentIds;return Array.isArray(e)?v2(e):{documentIds:[],problem:"not-an-array"}}function v2(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 xke(t,e){return t===null||e===null?t===e:t.length===e.length&&t.every((n,r)=>n===e[r])}var A2={ADD_TAGS:["velt-skeleton-loader"],ADD_ATTR:["border-radius","target"]},C2=(()=>{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?jV("snippylyUserScalableNo","viewport","width=device-width, user-scalable=no"):HV("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)||S2(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 DV(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&&rd(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&&rd(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=[]:rd(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)&&rd(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=nd();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=UN(i);if(!i||!o||this.isGeneratedId(o.rootId))return{applicable:!1,element:null};let s=this.getUniqueElementById(o.rootId);if(!s||!this.isElementVisible(s)||!rd(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&&UN(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(Ee(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,A2)}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,A2)}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=nd(),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=/(?:&nbsp;\s*){2,}/g,e.TRIM_NBSP_REGEX=/^(?:&nbsp;\s*)+|(?:&nbsp;\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 VN=Symbol("velt-auth-state-pending");function Yne(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 D2(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 Ed=(()=>{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.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.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(TU).subscribe(f=>{this.activityService=f??void 0,f&&this.cachedActivityConfig&&f.setActivityFeatureConfig(this.cachedActivityConfig)}),this.serviceBook.observe(yU).subscribe(f=>{this.viewsService=f??null}),this.serviceBook.observe(IU).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=hd(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||hd(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)??[];D2(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)}),D2(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:Ee(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=PV(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 hd(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;d?.uid!==r?.userSnippylyId||r?.groupId!==I?.groupId||r?.organizationId!==I?.organizationId||i?.forceReset||!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,Ee(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?o.userSnippylyId!==r?.userSnippylyId||r?.groupId!==o.groupId||r?.organizationId!==o.organizationId||!!i?.forceReset:!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?FG({url:s,apiKey:this.apiKey,user:r,version:o,authToken:i}):(yield pd(this.functions,od({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();if(!i||Pc(i)){let o="the portable identify URL is not configured; the renewal credential was not sent";return{error:o,code:"network_error",message:o,source:"identify"}}return BG({url:VG(i,"refresh"),apiKey:this.apiKey,refreshToken:r,timeoutMs:xG()})})}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&&XG(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;if(this.portableSessionIdentity=B({user:r,epoch:s},a?{refreshToken:a,refreshTokenIssuer:c}:{}),this.portableSessionStartedAt=Date.now(),this.handlePortableBackendResponse(i),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;this.initializePortableSignedInUser(r,i)}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 KG({apiEndpoint:r?.apiEndpoint,token:r?.token});if(!i)return;this.setIsPrivateCommentsEnabled(i.isPrivateCommentsEnabled);let o=i.activityConfig??{immutable:!1,isEnabled:!1};this.cachedActivityConfig=o,this.activityService?.setActivityFeatureConfig(o)}catch(i){this.loggingService.catch("Error in applyPortableProjectConfig: ",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}),QG({backend:r?.backend,token:r?.token??null,wsEndpoint:r?.wsEndpoint,apiEndpoint:r?.apiEndpoint}),this.schedulePortableTokenRefresh(r?.token??null)}catch(i){this.loggingService.catch("Error in handlePortableBackendResponse: ",i)}}schedulePortableTokenRefresh(r){try{if(this.clearPortableTokenRefresh(),this.portableToken=r,!r)return;this.portableRefreshFailures=0,this.portableRefreshFailuresPastExpiry=0;let i=$G(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=wN(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"}`),ZG()}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=Ee(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===RN){this.endPortableSessionForDeadCredential(s,f,r);return}if(NN.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();wN(this.portableToken,S)&&this.portableRefreshFailuresPastExpiry++,this.armPortableRefreshTimer(WG(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=Ee(B({},this.portableSessionIdentity),{refreshToken:I,refreshTokenIssuer:l})),E.verdict==="persist"&&this.persistPortableSession(s,Ee(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){this.portableAuthUser$.value&&(this.resetServicesCache(),this.user$.next(null),this.clearPortableBackendState());return}let o=new zi;o.type="signedIn",o=B(B({},o),r),o.color=o.color||this.getUserAvatarColor(o.userId),o.textColor=o.textColor||this.getUserTextColor(o.userId),o.initial=o.initial||o.name?.charAt(0).toUpperCase()||o.email?.charAt(0).toUpperCase(),this.setUserToStorage(o),this.persistPortableSession(o,i);let s=Object.assign({},o);delete s.contacts,this.analyticsService.identifyUser(o.userSnippylyId,s,{forceReset:this.userOptions$.value?.forceReset}),this.user$.next(o),this.portableAuthUser$.next({uid:o.userSnippylyId})}catch(o){this.loggingService.catch("Error in initializePortableSignedInUser: ",o)}}clearPortableBackendState(){try{this.portableSignOutOwnsEpochBump||this.portableSessionEpoch++,this.releasePortableSession({clearStorage:!0})}catch(r){this.loggingService.catch("Error clearing portable backend state: ",r)}}releasePortableSession(r){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.portableRefreshFailures=0,this.portableRefreshFailuresPastExpiry=0,this.portableBackend$.next(null),this.portableAuthUser$.next(null),this.user$.next(null),JG())}endPortableSessionLocally(r){try{this.userPermissionService?.invalidateAllPermissionsState(),this.portableSessionEpoch++,this.portableLocalSessionEnds++,this.resetServicesCache(),this.user$.next(null),this.releasePortableSession({clearStorage:!1}),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?Ee(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()<=3e4}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(NN.has(f?.code)&&this.reportPortableRefreshMisconfigured(f),f?.code!==RN){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=Ee(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=Yne(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([hd(this.afAuth).pipe(Qa(VN)),this.portableAuthUser$]).pipe(mn(([i,o])=>(o!==null&&(r=!0),!!(i!==VN||o!==null||r))),De(([i,o])=>(i===VN?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 IG(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=nd(),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||{})}r.name=o?o?.name:this.providedUser?.name||r.name,r.clientUserName=o?o?.clientUserName:this.providedUser?.clientUserName||r.clientUserName,r.photoUrl=o?o?.photoUrl:this.providedUser?.photoUrl||r.photoUrl,r?.photoUrl===void 0&&(r.photoUrl=null),r.email=o?o?.email:this.providedUser?.email||r.email,r.color=o?.color||this.providedUser?.color||this.getUserAvatarColor(r.userId),r.textColor=o?.textColor||this.providedUser?.textColor||this.getUserTextColor(r.userId),r.initial=o?.initial||this.providedUser?.initial||r.initial||r.name?.charAt(0).toUpperCase()||r.email?.charAt(0).toUpperCase(),r.contacts=this.providedUser?.contacts||r.contacts,r.plan=this.providedUser?.plan||r.plan,r.groupId=this.providedUser?.groupId||r.groupId,r.clientGroupId=this.providedUser?.clientGroupId||r.clientGroupId,r.clientOrganizationId=this.providedUser?.clientOrganizationId||r.clientOrganizationId,r.organizationId=this.providedUser?.organizationId||r.organizationId,r.isAdmin=this.providedUser?.isAdmin,r.isReadOnly=this.providedUser?.isReadOnly,r.isAnonymous=this.providedUser?.isAnonymous,r.isGuest=this.providedUser?.isGuest,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}),this.getPlanDetailsCalled||this.getPlanDetailsFromDb();let o=pd(this.functions,od({url:this.endpointsService.getCloudFunctionUrl("sdkProxy"),apiProxyDomain:this.configService?.getApiProxyDomain()})),s=zV({methodName:"updateUserInternally",data:{type:"getProjectConfig"},getSdkProxy:o,userId:r?.userId??""}),a=Promise.resolve();if(this.userPermissionService?.isPermissionProviderAvailable()&&r.clientOrganizationId){let d=[{userId:r.userId,resource:{id:r.clientOrganizationId,type:HU.ORGANIZATION,source:vT.IDENTIFY,organizationId:r.clientOrganizationId}}],h=nd();this.coreActionsService.triggerAction(Wi.PERMISSION_PROVIDER,{event:St.Events.PermissionProvider.RESOURCE_ACCESS_REQUEST_FORMED,methodName:vT.IDENTIFY,uniqueId:h,timestamp:new Date().getTime(),source:"internal",payload:{requests:d}}),a=this.userPermissionService?.onResourceAccessRequired({requests:d,uniqueId:h,userId:r.userId,methodName:vT.IDENTIFY,fromCache:!1})??Promise.resolve()}let[c,l]=yield Promise.allSettled([s,a]);if(c.status==="fulfilled"){this.setIsPrivateCommentsEnabled(!!c.value?.data?.isPrivateCommentsEnabled);let d=c.value?.data?.activityConfig??{immutable:!1,isEnabled:!1};this.cachedActivityConfig=d,this.activityService?.setActivityFeatureConfig(d)}else this.loggingService.warn("Failed to fetch project config:",c.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)}})}updateUserToFirebase(r){this.loggingService.log("%c[WB] Calling FUNCTION: updateUserToFirebase","color: green;");try{let i=JSON.parse(JSON.stringify(r)),o=Ee(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 pd(this.functions,od({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 hd(this.afAuth).pipe(En(1)).toPromise().catch(o=>null);if(i){this.resetServicesCache(),this.user$.next(null),this.clearPortableBackendState();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 VV(1e3),vG(this.afAuth).catch(o=>{this.loggingService.catch("Error in signOutUser:",o)})}else return(this.portableAuthUser$.value||this.portableBackend$.value)&&(this.resetServicesCache(),this.user$.next(null),this.clearPortableBackendState()),Promise.resolve()}catch(i){this.loggingService.catch("Error in signOutUser: ",i)}finally{this.portableSignOutOwnsEpochBump=!1}})}isFeatureAllowed(r){return bV(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),$(t2),$(n2),$(C2),$(Ho),$(zs),$(bt),$(mT))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();var N2="@firebase/database",w2="1.0.20";var Ww="";function Xne(t){Ww=t}var qN=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:ad(n)}remove(e){this.domStorage_.removeItem(this.prefixedName_(e))}prefixedName_(e){return this.prefix_+e}toString(){return this.domStorage_.toString()}};var KN=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 aj=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 qN(e)}}catch{}return new KN},Jc=aj("localStorage"),YN=aj("sessionStorage");var Id=new Br("@firebase/database"),cj=(function(){let t=1;return function(){return t++}})(),lj=function(t){let e=pB(t),n=new PT;n.update(e);let r=n.digest();return cd.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,b2=!0,Qne=function(t,e){q(!e||t===!0||t===!1,"Can't turn on custom loggers persistently."),t===!0?(Id.logLevel=Re.VERBOSE,Zc=Id.log.bind(Id),e&&YN.set("logging_enabled",!0)):typeof t=="function"?Zc=t:(Zc=null,YN.remove("logging_enabled"))},un=function(...t){if(b2===!0&&(b2=!1,Zc===null&&YN.get("logging_enabled")===!0&&Qne(!0)),Zc){let e=ng.apply(null,t);Zc(e)}},rg=function(t){return function(...e){un(t,...e)}},XN=function(...t){let e="FIREBASE INTERNAL ERROR: "+ng(...t);Id.error(e)},Wo=function(...t){let e=`FIREBASE FATAL ERROR: ${ng(...t)}`;throw Id.error(e),new Error(e)},xn=function(...t){let e="FIREBASE WARNING: "+ng(...t);Id.warn(e)},Jne=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)},Zne=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=O2(t),r=O2(e);return n!==null?r!==null?n-r===0?t.length-e.length:n-r:-1:r!==null?1:t<e?-1:1}},ere=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))},zw=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+=zw(t[e[r]]);return n+="}",n},uj=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 dj=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()},tre=function(){return!!(typeof window=="object"&&window.chrome&&window.chrome.extension&&!/^chrome/.test(window.location.href))},nre=function(){return typeof Windows=="object"&&typeof Windows.UI=="object"};function rre(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 ire=new RegExp("^-?(0*)\\d{1,10}$"),ore=-2147483648,sre=2147483647,O2=function(t){if(ire.test(t)){let e=Number(t);if(e>=ore&&e<=sre)return e}return null},bd=function(t){try{t()}catch(e){setTimeout(()=>{let n=e.stack||"";throw xn("Exception was thrown by user callback.",n),e},Math.floor(0))}},are=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 QN=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 JN=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",hj="v",fj="s",pj="r",gj="f",mj=/(console\.firebase|firebase-console-\w+\.corp|firebase\.corp)\.google\.com/,Ej="ls",_j="p",ZN="ac",Tj="websocket",yj="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 cre(t){return t.host!==t.internalHost||t.isCustomHost()||t.includeNamespaceInQueryParams}function Ij(t,e,n){q(typeof e=="string","typeof type must == string"),q(typeof n=="object","typeof params must == object");let r;if(e===Tj)r=(t.secure?"wss://":"ws://")+t.internalHost+"/.ws?";else if(e===yj)r=(t.secure?"https://":"http://")+t.internalHost+"/.lp?";else throw new Error("Unknown connection type: "+e);cre(t)&&(n.ns=t.namespace);let i=[];return dn(n,(o,s)=>{i.push(o+"="+s)}),r+i.join("&")}var ew=class{constructor(){this.counters_={}}incrementCounter(e,n=1){Vr(this.counters_,e)||(this.counters_[e]=0),this.counters_[e]+=n}get(){return tB(this.counters_)}};var BN={},GN={};function qw(t){let e=t.toString();return BN[e]||(BN[e]=new ew),BN[e]}function lre(t,e){let n=t.toString();return GN[n]||(GN[n]=e()),GN[n]}var tw=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]&&bd(()=>{this.onMessage_(r[i])});if(this.currentResponseNum===this.closeAfterResponse){this.onClose&&(this.onClose(),this.onClose=null);break}this.currentResponseNum++}}};var M2="start",ure="close",dre="pLPCommand",hre="pRTLPCB",vj="id",Sj="pw",Aj="ser",fre="cb",pre="seg",gre="ts",mre="d",Ere="dframe",Cj=1870,Dj=30,_re=Cj-Dj,Tre=25e3,yre=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_=qw(n),this.urlFn=c=>(this.appCheckToken&&(c[ZN]=this.appCheckToken),Ij(n,yj,c))}open(e,n){this.curSegmentNum=0,this.onDisconnect_=n,this.myPacketOrderer=new tw(e),this.isClosed_=!1,this.connectTimeoutTimer_=setTimeout(()=>{this.log_("Timed out trying to connect."),this.onClosed_(),this.connectTimeoutTimer_=null},Math.floor(yre)),Zne(()=>{if(this.isClosed_)return;this.scriptTagHolder=new nw((...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===M2)this.id=a,this.password=c;else if(s===ure)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[M2]="t",r[Aj]=Math.floor(Math.random()*1e8),this.scriptTagHolder.uniqueCallbackIdentifier&&(r[fre]=this.scriptTagHolder.uniqueCallbackIdentifier),r[hj]=gy,this.transportSessionId&&(r[fj]=this.transportSessionId),this.lastSessionId&&(r[Ej]=this.lastSessionId),this.applicationId&&(r[_j]=this.applicationId),this.appCheckToken&&(r[ZN]=this.appCheckToken),typeof location<"u"&&location.hostname&&mj.test(location.hostname)&&(r[pj]=gj);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&&!tre()&&!nre()}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=uj(r,_re);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[Ere]="t",r[vj]=e,r[Sj]=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)}},nw=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=cj(),window[dre+this.uniqueCallbackIdentifier]=e,window[hre+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[vj]=this.myID,e[Sj]=this.myPW,e[Aj]=this.currentSerial;let n=this.urlFn(e),r="",i=0;for(;this.pendingSegs.length>0&&this.pendingSegs[0].d.length+Dj+r.length<=Cj;){let s=this.pendingSegs.shift();r=r+"&"+pre+i+"="+s.seg+"&"+gre+i+"="+s.ts+"&"+mre+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(Tre)),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 Ire=16384,vre=45e3,_y=null;typeof MozWebSocket<"u"?_y=MozWebSocket:typeof WebSocket<"u"&&(_y=WebSocket);var Td=(()=>{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_=qw(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[hj]=gy,!Ki()&&typeof location<"u"&&location.hostname&&mj.test(location.hostname)&&(a[pj]=gj),r&&(a[fj]=r),i&&(a[Ej]=i),o&&(a[ZN]=o),s&&(a[_j]=s),Ij(n,Tj,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}/${Ww}/${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=ad(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=uj(r,Ire);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(vre))}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})(),Rj=(()=>{class t{static get ALL_TRANSPORTS(){return[Ey,Td]}static get IS_TRANSPORT_INITIALIZED(){return this.globalTransportInitialized_}constructor(n){this.initTransports_(n)}initTransports_(n){let r=Td&&Td.isAvailable(),i=r&&!Td.previouslyFailed();if(n.webSocketOnly&&(r||xn("wss:// URL used, but browser isn't known to support websockets. Trying anyway."),i=!0),i)this.transports_=[Td];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})(),Sre=6e4,Are=5e3,Cre=10*1024,Dre=100*1024,jN="t",L2="d",Rre="s",P2="r",Nre="e",x2="o",k2="a",F2="n",U2="p",wre="h",rw=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 Rj(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>Dre?(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>Cre?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(jN in e){let n=e[jN];n===k2?this.upgradeIfSecondaryHealthy_():n===P2?(this.log_("Got a reset on secondary, closing it"),this.secondaryConn_.close(),(this.tx_===this.secondaryConn_||this.rx_===this.secondaryConn_)&&this.close()):n===x2&&(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:U2,d:{}}}))}proceedWithUpgrade_(){this.secondaryConn_.start(),this.log_("sending client ack on secondary"),this.secondaryConn_.send({t:"c",d:{t:k2,d:{}}}),this.log_("Ending transmission on primary"),this.conn_.send({t:"c",d:{t:F2,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(jN,e);if(L2 in e){let r=e[L2];if(n===wre){let i=Object.assign({},r);this.repoInfo_.isUsingEmulator&&(i.h=this.repoInfo_.host),this.onHandshake_(i)}else if(n===F2){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===Rre?this.onConnectionShutdown_(r):n===P2?this.onReset_(r):n===Nre?XN("Server Error: "+r):n===x2?(this.log_("got pong on primary."),this.onPrimaryResponse_(),this.sendPingOnPrimaryIfNecessary_()):XN("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(Sre))}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(Are))}sendPingOnPrimaryIfNecessary_(){!this.isHealthy_&&this.state_===1&&(this.log_("sending ping on primary."),this.sendData_({t:"c",d:{t:U2,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 V2=32,B2=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 Kw(t){return t.pieceNum_<t.pieces_.length?t.pieces_[t.pieces_.length-1]:null}function bre(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 Nj(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 Ore(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 Yw(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 iw=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]);wj(this)}};function Mre(t,e){t.parts_.length>0&&(t.byteLength_+=1),t.parts_.push(e),t.byteLength_+=mp(e),wj(t)}function Lre(t){let e=t.parts_.pop();t.byteLength_-=mp(e),t.parts_.length>0&&(t.byteLength_-=1)}function wj(t){if(t.byteLength_>B2)throw new Error(t.errorPrefix_+"has a key path longer than "+B2+" bytes ("+t.byteLength_+").");if(t.parts_.length>V2)throw new Error(t.errorPrefix_+"path specified exceeds the maximum depth that can be written ("+V2+") or object contains a cycle "+Qc(t))}function Qc(t){return t.parts_.length===0?"":"in property '"+t.parts_.join(".")+"'"}var ow=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,Pre=300*1e3,G2=30*1e3,xre=1.3,kre=3e4,Fre="server_kill",j2=3,Xw=(()=>{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_=Pre,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");ow.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||hB(n))&&(this.log_("Admin auth credential detected. Reducing max reconnect time."),this.maxReconnectDelay_=G2)}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=dB(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):XN("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),zl=!0,ba=Je,ql=rt},e.clearConfig=function(){po=null,zl=!1,ba=null,ql=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=Tne(He[W],T);return w===-1?void 0:yne(He[W],w,1)[0]}return o2(He[W])}},e.removeHooks=function(W){nr(He,W)&&(He[W]=[])},e.removeAllHooks=function(){He=E2()},e}var fy=I2();var Wne=/^\/\/\*\[@id='([^']+)'\]/;function UN(t){try{if(typeof t!="string")return null;let e=Wne.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 zne=[/:r[0-9a-z]+:/i,/_r_[0-9a-z]+_/i,/«r[0-9a-z]+»/i,/^radix-/i];function S2(t){try{return t?zne.some(e=>e.test(t)):!1}catch{return!1}}function Uke(t){if(Array.isArray(t))return v2(t);if(!t||typeof t!="object"||!("documentIds"in t))return{documentIds:null};let e=t.documentIds;return Array.isArray(e)?v2(e):{documentIds:[],problem:"not-an-array"}}function v2(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 Vke(t,e){return t===null||e===null?t===e:t.length===e.length&&t.every((n,r)=>n===e[r])}var A2={ADD_TAGS:["velt-skeleton-loader"],ADD_ATTR:["border-radius","target"]},C2=(()=>{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?jV("snippylyUserScalableNo","viewport","width=device-width, user-scalable=no"):HV("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)||S2(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 DV(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&&rd(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&&rd(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=[]:rd(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)&&rd(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=nd();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=UN(i);if(!i||!o||this.isGeneratedId(o.rootId))return{applicable:!1,element:null};let s=this.getUniqueElementById(o.rootId);if(!s||!this.isElementVisible(s)||!rd(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&&UN(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(Ee(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,A2)}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,A2)}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=nd(),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=/(?:&nbsp;\s*){2,}/g,e.TRIM_NBSP_REGEX=/^(?:&nbsp;\s*)+|(?:&nbsp;\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 VN=Symbol("velt-auth-state-pending");function Yne(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 D2(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 Ed=(()=>{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.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.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(TU).subscribe(f=>{this.activityService=f??void 0,f&&this.cachedActivityConfig&&f.setActivityFeatureConfig(this.cachedActivityConfig)}),this.serviceBook.observe(yU).subscribe(f=>{this.viewsService=f??null}),this.serviceBook.observe(IU).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=hd(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||hd(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)??[];D2(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)}),D2(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:Ee(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=PV(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 hd(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;d?.uid!==r?.userSnippylyId||r?.groupId!==I?.groupId||r?.organizationId!==I?.organizationId||i?.forceReset||!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,Ee(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?o.userSnippylyId!==r?.userSnippylyId||r?.groupId!==o.groupId||r?.organizationId!==o.organizationId||!!i?.forceReset:!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?FG({url:s,apiKey:this.apiKey,user:r,version:o,authToken:i}):(yield pd(this.functions,od({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();if(!i||Pc(i)){let o="the portable identify URL is not configured; the renewal credential was not sent";return{error:o,code:"network_error",message:o,source:"identify"}}return BG({url:VG(i,"refresh"),apiKey:this.apiKey,refreshToken:r,timeoutMs:xG()})})}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&&XG(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;if(this.portableSessionIdentity=B({user:r,epoch:s},a?{refreshToken:a,refreshTokenIssuer:c}:{}),this.portableSessionStartedAt=Date.now(),this.handlePortableBackendResponse(i),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;this.initializePortableSignedInUser(r,i)}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 KG({apiEndpoint:r?.apiEndpoint,token:r?.token});if(!i)return;this.setIsPrivateCommentsEnabled(i.isPrivateCommentsEnabled);let o=i.activityConfig??{immutable:!1,isEnabled:!1};this.cachedActivityConfig=o,this.activityService?.setActivityFeatureConfig(o)}catch(i){this.loggingService.catch("Error in applyPortableProjectConfig: ",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}),QG({backend:r?.backend,token:r?.token??null,wsEndpoint:r?.wsEndpoint,apiEndpoint:r?.apiEndpoint}),this.schedulePortableTokenRefresh(r?.token??null)}catch(i){this.loggingService.catch("Error in handlePortableBackendResponse: ",i)}}schedulePortableTokenRefresh(r){try{if(this.clearPortableTokenRefresh(),this.portableToken=r,!r)return;this.portableRefreshFailures=0,this.portableRefreshFailuresPastExpiry=0;let i=$G(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=wN(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"}`),ZG()}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=Ee(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===RN){this.endPortableSessionForDeadCredential(s,f,r);return}if(NN.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();wN(this.portableToken,S)&&this.portableRefreshFailuresPastExpiry++,this.armPortableRefreshTimer(WG(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=Ee(B({},this.portableSessionIdentity),{refreshToken:I,refreshTokenIssuer:l})),E.verdict==="persist"&&this.persistPortableSession(s,Ee(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){this.portableAuthUser$.value&&(this.resetServicesCache(),this.user$.next(null),this.clearPortableBackendState());return}let o=new zi;o.type="signedIn",o=B(B({},o),r),o.color=o.color||this.getUserAvatarColor(o.userId),o.textColor=o.textColor||this.getUserTextColor(o.userId),o.initial=o.initial||o.name?.charAt(0).toUpperCase()||o.email?.charAt(0).toUpperCase(),this.setUserToStorage(o),this.persistPortableSession(o,i);let s=Object.assign({},o);delete s.contacts,this.analyticsService.identifyUser(o.userSnippylyId,s,{forceReset:this.userOptions$.value?.forceReset}),this.user$.next(o),this.portableAuthUser$.next({uid:o.userSnippylyId})}catch(o){this.loggingService.catch("Error in initializePortableSignedInUser: ",o)}}clearPortableBackendState(){try{this.portableSignOutOwnsEpochBump||this.portableSessionEpoch++,this.releasePortableSession({clearStorage:!0})}catch(r){this.loggingService.catch("Error clearing portable backend state: ",r)}}releasePortableSession(r){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.portableRefreshFailures=0,this.portableRefreshFailuresPastExpiry=0,this.portableBackend$.next(null),this.portableAuthUser$.next(null),this.user$.next(null),JG())}endPortableSessionLocally(r){try{this.userPermissionService?.invalidateAllPermissionsState(),this.portableSessionEpoch++,this.portableLocalSessionEnds++,this.resetServicesCache(),this.user$.next(null),this.releasePortableSession({clearStorage:!1}),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?Ee(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()<=3e4}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(NN.has(f?.code)&&this.reportPortableRefreshMisconfigured(f),f?.code!==RN){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=Ee(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=Yne(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([hd(this.afAuth).pipe(Qa(VN)),this.portableAuthUser$]).pipe(mn(([i,o])=>(o!==null&&(r=!0),!!(i!==VN||o!==null||r))),De(([i,o])=>(i===VN?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 IG(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=nd(),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||{})}r.name=o?o?.name:this.providedUser?.name||r.name,r.clientUserName=o?o?.clientUserName:this.providedUser?.clientUserName||r.clientUserName,r.photoUrl=o?o?.photoUrl:this.providedUser?.photoUrl||r.photoUrl,r?.photoUrl===void 0&&(r.photoUrl=null),r.email=o?o?.email:this.providedUser?.email||r.email,r.color=o?.color||this.providedUser?.color||this.getUserAvatarColor(r.userId),r.textColor=o?.textColor||this.providedUser?.textColor||this.getUserTextColor(r.userId),r.initial=o?.initial||this.providedUser?.initial||r.initial||r.name?.charAt(0).toUpperCase()||r.email?.charAt(0).toUpperCase(),r.contacts=this.providedUser?.contacts||r.contacts,r.plan=this.providedUser?.plan||r.plan,r.groupId=this.providedUser?.groupId||r.groupId,r.clientGroupId=this.providedUser?.clientGroupId||r.clientGroupId,r.clientOrganizationId=this.providedUser?.clientOrganizationId||r.clientOrganizationId,r.organizationId=this.providedUser?.organizationId||r.organizationId,r.isAdmin=this.providedUser?.isAdmin,r.isReadOnly=this.providedUser?.isReadOnly,r.isAnonymous=this.providedUser?.isAnonymous,r.isGuest=this.providedUser?.isGuest,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}),this.getPlanDetailsCalled||this.getPlanDetailsFromDb();let o=pd(this.functions,od({url:this.endpointsService.getCloudFunctionUrl("sdkProxy"),apiProxyDomain:this.configService?.getApiProxyDomain()})),s=zV({methodName:"updateUserInternally",data:{type:"getProjectConfig"},getSdkProxy:o,userId:r?.userId??""}),a=Promise.resolve();if(this.userPermissionService?.isPermissionProviderAvailable()&&r.clientOrganizationId){let d=[{userId:r.userId,resource:{id:r.clientOrganizationId,type:HU.ORGANIZATION,source:vT.IDENTIFY,organizationId:r.clientOrganizationId}}],h=nd();this.coreActionsService.triggerAction(Wi.PERMISSION_PROVIDER,{event:St.Events.PermissionProvider.RESOURCE_ACCESS_REQUEST_FORMED,methodName:vT.IDENTIFY,uniqueId:h,timestamp:new Date().getTime(),source:"internal",payload:{requests:d}}),a=this.userPermissionService?.onResourceAccessRequired({requests:d,uniqueId:h,userId:r.userId,methodName:vT.IDENTIFY,fromCache:!1})??Promise.resolve()}let[c,l]=yield Promise.allSettled([s,a]);if(c.status==="fulfilled"){this.setIsPrivateCommentsEnabled(!!c.value?.data?.isPrivateCommentsEnabled);let d=c.value?.data?.activityConfig??{immutable:!1,isEnabled:!1};this.cachedActivityConfig=d,this.activityService?.setActivityFeatureConfig(d)}else this.loggingService.warn("Failed to fetch project config:",c.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)}})}updateUserToFirebase(r){this.loggingService.log("%c[WB] Calling FUNCTION: updateUserToFirebase","color: green;");try{let i=JSON.parse(JSON.stringify(r)),o=Ee(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 pd(this.functions,od({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 hd(this.afAuth).pipe(En(1)).toPromise().catch(o=>null);if(i){this.resetServicesCache(),this.user$.next(null),this.clearPortableBackendState();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 VV(1e3),vG(this.afAuth).catch(o=>{this.loggingService.catch("Error in signOutUser:",o)})}else return(this.portableAuthUser$.value||this.portableBackend$.value)&&(this.resetServicesCache(),this.user$.next(null),this.clearPortableBackendState()),Promise.resolve()}catch(i){this.loggingService.catch("Error in signOutUser: ",i)}finally{this.portableSignOutOwnsEpochBump=!1}})}isFeatureAllowed(r){return bV(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),$(t2),$(n2),$(C2),$(Ho),$(zs),$(bt),$(mT))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();var N2="@firebase/database",w2="1.0.20";var Ww="";function Xne(t){Ww=t}var qN=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:ad(n)}remove(e){this.domStorage_.removeItem(this.prefixedName_(e))}prefixedName_(e){return this.prefix_+e}toString(){return this.domStorage_.toString()}};var KN=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 aj=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 qN(e)}}catch{}return new KN},Jc=aj("localStorage"),YN=aj("sessionStorage");var Id=new Br("@firebase/database"),cj=(function(){let t=1;return function(){return t++}})(),lj=function(t){let e=pB(t),n=new PT;n.update(e);let r=n.digest();return cd.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,b2=!0,Qne=function(t,e){q(!e||t===!0||t===!1,"Can't turn on custom loggers persistently."),t===!0?(Id.logLevel=Re.VERBOSE,Zc=Id.log.bind(Id),e&&YN.set("logging_enabled",!0)):typeof t=="function"?Zc=t:(Zc=null,YN.remove("logging_enabled"))},un=function(...t){if(b2===!0&&(b2=!1,Zc===null&&YN.get("logging_enabled")===!0&&Qne(!0)),Zc){let e=ng.apply(null,t);Zc(e)}},rg=function(t){return function(...e){un(t,...e)}},XN=function(...t){let e="FIREBASE INTERNAL ERROR: "+ng(...t);Id.error(e)},Wo=function(...t){let e=`FIREBASE FATAL ERROR: ${ng(...t)}`;throw Id.error(e),new Error(e)},xn=function(...t){let e="FIREBASE WARNING: "+ng(...t);Id.warn(e)},Jne=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)},Zne=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=O2(t),r=O2(e);return n!==null?r!==null?n-r===0?t.length-e.length:n-r:-1:r!==null?1:t<e?-1:1}},ere=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))},zw=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+=zw(t[e[r]]);return n+="}",n},uj=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 dj=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()},tre=function(){return!!(typeof window=="object"&&window.chrome&&window.chrome.extension&&!/^chrome/.test(window.location.href))},nre=function(){return typeof Windows=="object"&&typeof Windows.UI=="object"};function rre(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 ire=new RegExp("^-?(0*)\\d{1,10}$"),ore=-2147483648,sre=2147483647,O2=function(t){if(ire.test(t)){let e=Number(t);if(e>=ore&&e<=sre)return e}return null},bd=function(t){try{t()}catch(e){setTimeout(()=>{let n=e.stack||"";throw xn("Exception was thrown by user callback.",n),e},Math.floor(0))}},are=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 QN=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 JN=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",hj="v",fj="s",pj="r",gj="f",mj=/(console\.firebase|firebase-console-\w+\.corp|firebase\.corp)\.google\.com/,Ej="ls",_j="p",ZN="ac",Tj="websocket",yj="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 cre(t){return t.host!==t.internalHost||t.isCustomHost()||t.includeNamespaceInQueryParams}function Ij(t,e,n){q(typeof e=="string","typeof type must == string"),q(typeof n=="object","typeof params must == object");let r;if(e===Tj)r=(t.secure?"wss://":"ws://")+t.internalHost+"/.ws?";else if(e===yj)r=(t.secure?"https://":"http://")+t.internalHost+"/.lp?";else throw new Error("Unknown connection type: "+e);cre(t)&&(n.ns=t.namespace);let i=[];return dn(n,(o,s)=>{i.push(o+"="+s)}),r+i.join("&")}var ew=class{constructor(){this.counters_={}}incrementCounter(e,n=1){Vr(this.counters_,e)||(this.counters_[e]=0),this.counters_[e]+=n}get(){return tB(this.counters_)}};var BN={},GN={};function qw(t){let e=t.toString();return BN[e]||(BN[e]=new ew),BN[e]}function lre(t,e){let n=t.toString();return GN[n]||(GN[n]=e()),GN[n]}var tw=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]&&bd(()=>{this.onMessage_(r[i])});if(this.currentResponseNum===this.closeAfterResponse){this.onClose&&(this.onClose(),this.onClose=null);break}this.currentResponseNum++}}};var M2="start",ure="close",dre="pLPCommand",hre="pRTLPCB",vj="id",Sj="pw",Aj="ser",fre="cb",pre="seg",gre="ts",mre="d",Ere="dframe",Cj=1870,Dj=30,_re=Cj-Dj,Tre=25e3,yre=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_=qw(n),this.urlFn=c=>(this.appCheckToken&&(c[ZN]=this.appCheckToken),Ij(n,yj,c))}open(e,n){this.curSegmentNum=0,this.onDisconnect_=n,this.myPacketOrderer=new tw(e),this.isClosed_=!1,this.connectTimeoutTimer_=setTimeout(()=>{this.log_("Timed out trying to connect."),this.onClosed_(),this.connectTimeoutTimer_=null},Math.floor(yre)),Zne(()=>{if(this.isClosed_)return;this.scriptTagHolder=new nw((...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===M2)this.id=a,this.password=c;else if(s===ure)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[M2]="t",r[Aj]=Math.floor(Math.random()*1e8),this.scriptTagHolder.uniqueCallbackIdentifier&&(r[fre]=this.scriptTagHolder.uniqueCallbackIdentifier),r[hj]=gy,this.transportSessionId&&(r[fj]=this.transportSessionId),this.lastSessionId&&(r[Ej]=this.lastSessionId),this.applicationId&&(r[_j]=this.applicationId),this.appCheckToken&&(r[ZN]=this.appCheckToken),typeof location<"u"&&location.hostname&&mj.test(location.hostname)&&(r[pj]=gj);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&&!tre()&&!nre()}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=uj(r,_re);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[Ere]="t",r[vj]=e,r[Sj]=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)}},nw=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=cj(),window[dre+this.uniqueCallbackIdentifier]=e,window[hre+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[vj]=this.myID,e[Sj]=this.myPW,e[Aj]=this.currentSerial;let n=this.urlFn(e),r="",i=0;for(;this.pendingSegs.length>0&&this.pendingSegs[0].d.length+Dj+r.length<=Cj;){let s=this.pendingSegs.shift();r=r+"&"+pre+i+"="+s.seg+"&"+gre+i+"="+s.ts+"&"+mre+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(Tre)),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 Ire=16384,vre=45e3,_y=null;typeof MozWebSocket<"u"?_y=MozWebSocket:typeof WebSocket<"u"&&(_y=WebSocket);var Td=(()=>{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_=qw(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[hj]=gy,!Ki()&&typeof location<"u"&&location.hostname&&mj.test(location.hostname)&&(a[pj]=gj),r&&(a[fj]=r),i&&(a[Ej]=i),o&&(a[ZN]=o),s&&(a[_j]=s),Ij(n,Tj,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}/${Ww}/${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=ad(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=uj(r,Ire);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(vre))}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})(),Rj=(()=>{class t{static get ALL_TRANSPORTS(){return[Ey,Td]}static get IS_TRANSPORT_INITIALIZED(){return this.globalTransportInitialized_}constructor(n){this.initTransports_(n)}initTransports_(n){let r=Td&&Td.isAvailable(),i=r&&!Td.previouslyFailed();if(n.webSocketOnly&&(r||xn("wss:// URL used, but browser isn't known to support websockets. Trying anyway."),i=!0),i)this.transports_=[Td];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})(),Sre=6e4,Are=5e3,Cre=10*1024,Dre=100*1024,jN="t",L2="d",Rre="s",P2="r",Nre="e",x2="o",k2="a",F2="n",U2="p",wre="h",rw=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 Rj(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>Dre?(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>Cre?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(jN in e){let n=e[jN];n===k2?this.upgradeIfSecondaryHealthy_():n===P2?(this.log_("Got a reset on secondary, closing it"),this.secondaryConn_.close(),(this.tx_===this.secondaryConn_||this.rx_===this.secondaryConn_)&&this.close()):n===x2&&(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:U2,d:{}}}))}proceedWithUpgrade_(){this.secondaryConn_.start(),this.log_("sending client ack on secondary"),this.secondaryConn_.send({t:"c",d:{t:k2,d:{}}}),this.log_("Ending transmission on primary"),this.conn_.send({t:"c",d:{t:F2,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(jN,e);if(L2 in e){let r=e[L2];if(n===wre){let i=Object.assign({},r);this.repoInfo_.isUsingEmulator&&(i.h=this.repoInfo_.host),this.onHandshake_(i)}else if(n===F2){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===Rre?this.onConnectionShutdown_(r):n===P2?this.onReset_(r):n===Nre?XN("Server Error: "+r):n===x2?(this.log_("got pong on primary."),this.onPrimaryResponse_(),this.sendPingOnPrimaryIfNecessary_()):XN("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(Sre))}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(Are))}sendPingOnPrimaryIfNecessary_(){!this.isHealthy_&&this.state_===1&&(this.log_("sending ping on primary."),this.sendData_({t:"c",d:{t:U2,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 V2=32,B2=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 Kw(t){return t.pieceNum_<t.pieces_.length?t.pieces_[t.pieces_.length-1]:null}function bre(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 Nj(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 Ore(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 Yw(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 iw=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]);wj(this)}};function Mre(t,e){t.parts_.length>0&&(t.byteLength_+=1),t.parts_.push(e),t.byteLength_+=mp(e),wj(t)}function Lre(t){let e=t.parts_.pop();t.byteLength_-=mp(e),t.parts_.length>0&&(t.byteLength_-=1)}function wj(t){if(t.byteLength_>B2)throw new Error(t.errorPrefix_+"has a key path longer than "+B2+" bytes ("+t.byteLength_+").");if(t.parts_.length>V2)throw new Error(t.errorPrefix_+"path specified exceeds the maximum depth that can be written ("+V2+") or object contains a cycle "+Qc(t))}function Qc(t){return t.parts_.length===0?"":"in property '"+t.parts_.join(".")+"'"}var ow=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,Pre=300*1e3,G2=30*1e3,xre=1.3,kre=3e4,Fre="server_kill",j2=3,Xw=(()=>{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_=Pre,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");ow.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||hB(n))&&(this.log_("Admin auth credential detected. Reducing max reconnect time."),this.maxReconnectDelay_=G2)}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=dB(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):XN("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_*xre)}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 rw(o,this.repoInfo_,this.applicationId_,this.appCheckToken_,this.authToken_,n,r,i,E=>{xn(E+" ("+this.repoInfo_.toString()+")"),this.interrupt(Fre)},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=>zw(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_>=j2&&(this.reconnectDelay_=G2,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_>=j2&&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+"."+Ww.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 vd=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 vd{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 yd=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})(),sw=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 yd(this.root_,null,this.comparator_,!1,e)}getIteratorFrom(e,n){return new yd(this.root_,e,this.comparator_,!1,n)}getReverseIteratorFrom(e,n){return new yd(this.root_,e,this.comparator_,!0,n)}getReverseIterator(e){return new yd(this.root_,null,this.comparator_,!0,e)}};Hr.EMPTY_NODE=new sw;function Ure(t,e){return al(t.name,e.name)}function Qw(t,e){return al(t,e)}var aw;function Vre(t){aw=t}var bj=function(t){return typeof t=="number"?"number:"+dj(t):"string:"+t},Oj=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===aw||t.isEmpty(),"priority of unexpected type.");q(t===aw||t.getPriority().isEmpty(),"Priority nodes can't have a priority of their own.")};var H2,Sd=(()=>{class t{static set __childrenNodeConstructor(n){H2=n}static get __childrenNodeConstructor(){return H2}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."),Oj(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:"+bj(this.priorityNode_.val())+":");let r=typeof this.value_;n+=r+":",r==="number"?n+=dj(this.value_):n+=this.value_,this.lazyHash_=lj(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})(),Mj,Lj;function Bre(t){Mj=t}function Gre(t){Lj=t}var cw=class extends vd{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 Sd("[PRIORITY-POST]",Lj))}makePost(e,n){let r=Mj(e);return new Oe(n,new Sd("[PRIORITY-POST]",r))}toString(){return".priority"}},ft=new cw;var jre=Math.log(2),lw=class{constructor(e){let n=o=>parseInt(Math.log(o)/jre,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 lw(t.length),a=o(s);return new Hr(r||e,a)};var HN,_d={},Ad=class t{static get Default(){return q(_d&&ft,"ChildrenNode.ts has not been loaded"),HN=HN||new t({".priority":_d},{".priority":ft}),HN}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=_d;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===_d)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 _d;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===_d)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(Qw),null,Ad.Default))}constructor(n,r,i){this.children_=n,this.priorityNode_=r,this.indexMap_=i,this.lazyHash_=null,this.priorityNode_&&Oj(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:"+bj(this.getPriority().val())+":"),this.forEachChild(ft,(r,i)=>{let o=i.hash();o!==""&&(n+=":"+r+":"+o)}),this.lazyHash_=n===""?"":lj(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})(),uw=class extends ve{constructor(){super(new Hr(Qw),ve.EMPTY_NODE,Ad.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 uw;Object.defineProperties(Oe,{MIN:{value:new Oe(tl,ve.EMPTY_NODE)},MAX:{value:new Oe(Zs,ig)}});vy.__EMPTY_NODE=ve.EMPTY_NODE;Sd.__childrenNodeConstructor=ve;Vre(ig);Gre(ig);var Hre=!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 Sd(n,At(e))}if(!(t instanceof Array)&&Hre){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,Ure,s=>s.name,Qw);if(r){let s=Sy(n,ft.getCompare());return new ve(o,At(e),new Ad({".priority":s},{".priority":ft}))}else return new ve(o,At(e),Ad.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))}}Bre(At);var Wp=class extends vd{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 dw=class extends vd{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"}},Pj=new dw;function xj(t){return{type:"value",snapshotNode:t}}function Cd(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 $re(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(Cd(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(Cd(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 hw=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(Cd(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(Cd(n,r))),a.updateImmediateChild(n,r).updateImmediateChild(l.name,ve.EMPTY_NODE)):e}};var fw=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 Wre(t){return t.loadsAllData()?new Kp(t.getIndex()):t.hasLimit()?new hw(t):new Ay(t)}function zre(t,e){let n=t.copy();return n.limitSet_=!0,n.limit_=e,n.viewFrom_="r",n}function qre(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 Kre(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 Yre(t,e){let n=t.copy();return n.index_=e,n}function $2(t){let e={};if(t.isDefault())return e;let n;if(t.index_===ft?n="$priority":t.index_===Pj?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 W2(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 pw=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=$2(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=$2(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=ad(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 gw=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 Od(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),Od(i,e,n)}}function mw(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)=>{Od(t,new Be(r),i)}),mw(t,e)}}else if(t.children.size>0){let n=Ne(e);return e=at(e),t.children.has(n)&&mw(t.children.get(n),e)&&t.children.delete(n),t.children.size===0}else return!0}function Ew(t,e,n){t.value!==null?n(e,t.value):Xre(t,(r,i)=>{let o=new Be(e.toString()+"/"+r);Ew(i,o,n)})}function Xre(t,e){t.children.forEach((n,r)=>{e(r,n)})}var _w=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 z2=10*1e3,Qre=30*1e3,Jre=300*1e3,Tw=class{constructor(e,n){this.server_=n,this.statsToReport_={},this.statsListener_=new _w(e);let r=z2+(Qre-z2)*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*Jre))}};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 Jw(){return{fromUser:!0,fromServer:!1,queryId:null,tagged:!1}}function Zw(){return{fromUser:!1,fromServer:!0,queryId:null,tagged:!1}}function eb(t){return{fromUser:!1,fromServer:!0,queryId:t,tagged:!0}}var yw=class t{constructor(e,n,r){this.path=e,this.affectedTree=n,this.revert=r,this.type=Zi.ACK_USER_WRITE,this.source=Jw()}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 Dd=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 Dd(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 Iw=class{constructor(e){this.query_=e,this.index_=this.query_._queryParams.getIndex()}};function Zre(t,e,n,r){let i=[],o=[];return e.forEach(s=>{s.type==="child_changed"&&t.index_.indexedValueChanged(s.oldSnap,s.snapshotNode)&&o.push($re(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)=>tie(t,a,c)),s.forEach(a=>{let c=eie(t,a,o);i.forEach(l=>{l.respondsTo(a.type)&&e.push(l.createEvent(c,t.query_))})})}function eie(t,e,n){return e.type==="value"||e.type==="child_removed"||(e.prevName=n.getPredecessorChildName(e.childName,e.snapshotNode,t.index_)),e}function tie(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 kj(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 $N,nie=()=>($N||($N=new Hr(ere)),$N),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=nie()){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 vw(t,e,n){let r=t;return dn(n,(i,o)=>{r=jp(r,Ct(e,i),o)}),r}function q2(t,e){if(we(e))return di.empty();{let n=t.writeTree_.setTree(e,new qn(null));return new di(n)}}function Sw(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 K2(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 Aw(t){return t.writeTree_.isEmpty()}function Rd(t,e){return Fj(Ve(),t.writeTree_,e)}function Fj(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=Fj(Ct(t,i),o,n)}),!n.getChild(t).isEmpty()&&r!==null&&(n=n.updateChild(Ct(t,".priority"),r)),n}}function jy(t,e){return Gj(e,t)}function rie(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 iie(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=vw(t.visibleWrites,e,n),t.lastWriteId=r}function oie(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 sie(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&&aie(a,r.path)?i=!1:jr(r.path,a.path)&&(o=!0)),s--}if(i){if(o)return cie(t),!0;if(r.snap)t.visibleWrites=q2(t.visibleWrites,r.path);else{let a=r.children;dn(a,c=>{t.visibleWrites=q2(t.visibleWrites,Ct(r.path,c))})}return!0}else return!1}function aie(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 cie(t){t.visibleWrites=Uj(t.allWrites,lie,Ve()),t.allWrites.length>0?t.lastWriteId=t.allWrites[t.allWrites.length-1].writeId:t.lastWriteId=-1}function lie(t){return t.visible}function Uj(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=vw(r,a,o.children);else if(jr(s,n))if(a=zn(s,n),we(a))r=vw(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 Vj(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(Aw(s))return n;if(n==null&&!Sw(s,Ve()))return null;{let a=n||ve.EMPTY_NODE;return Rd(s,a)}}}else{let o=Qs(t.visibleWrites,e);if(!i&&Aw(o))return n;if(!i&&n==null&&!Sw(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=Uj(t.allWrites,s,e),c=n||ve.EMPTY_NODE;return Rd(a,c)}}}function uie(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=Rd(Qs(o,new Be(s)),a);r=r.updateImmediateChild(s,c)}),K2(o).forEach(s=>{r=r.updateImmediateChild(s.name,s.node)}),r}else{let o=Qs(t.visibleWrites,e);return K2(o).forEach(s=>{r=r.updateImmediateChild(s.name,s.node)}),r}}function die(t,e,n,r,i){q(r||i,"Either existingEventSnap or existingServerSnap must exist");let o=Ct(e,n);if(Sw(t.visibleWrites,o))return null;{let s=Qs(t.visibleWrites,o);return Aw(s)?i.getChild(n):Rd(s,i.getChild(n))}}function hie(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 Rd(s,r.getNode().getImmediateChild(n))}else return null}function fie(t,e){return cl(t.visibleWrites,e)}function pie(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=Rd(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 gie(){return{visibleWrites:di.empty(),allWrites:[],lastWriteId:-1}}function Ny(t,e,n,r){return Vj(t.writeTree,t.treePath,e,n,r)}function tb(t,e){return uie(t.writeTree,t.treePath,e)}function Y2(t,e,n,r){return die(t.writeTree,t.treePath,e,n,r)}function wy(t,e){return fie(t.writeTree,Ct(t.treePath,e))}function mie(t,e,n,r,i,o){return pie(t.writeTree,t.treePath,e,n,r,i,o)}function nb(t,e,n){return hie(t.writeTree,t.treePath,e,n)}function Bj(t,e){return Gj(Ct(t.treePath,e),t.writeTree)}function Gj(t,e){return{treePath:t,writeTree:e}}var Cw=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,Cd(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 Dw=class{getCompleteChild(e){return null}getChildAfterChild(e,n,r){return null}},jj=new Dw,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 nb(this.writes_,e,r)}}getChildAfterChild(e,n,r){let i=this.optCompleteServerCache_!=null?this.optCompleteServerCache_:nl(this.viewCache_),o=mie(this.writes_,i,n,1,r,e);return o.length===0?null:o[0]}};function Eie(t){return{filter:t}}function _ie(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 Tie(t,e,n,r,i){let o=new Cw,s,a;if(n.type===Zi.OVERWRITE){let l=n;l.source.fromUser?s=Rw(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=Iie(t,e,l.path,l.children,r,i,o):(q(l.source.fromServer,"Unknown source."),a=l.source.tagged||e.serverCache.isFiltered(),s=Nw(t,e,l.path,l.children,r,i,a,o))}else if(n.type===Zi.ACK_USER_WRITE){let l=n;l.revert?s=Aie(t,e,l.path,r,i,o):s=vie(t,e,l.path,l.affectedTree,r,i,o)}else if(n.type===Zi.LISTEN_COMPLETE)s=Sie(t,e,n.path,r,o);else throw kc("Unknown operation type: "+n.type);let c=o.getChanges();return yie(e,s,c),{viewCache:s,changes:c}}function yie(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(xj(Ry(e)))}}function Hj(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=tb(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=Y2(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=Y2(r,n,s.getNode(),c);f!=null?h=s.getNode().getImmediateChild(l).updateChild(d,f):h=s.getNode().getImmediateChild(l)}else h=nb(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,jj,null)}let h=kj(e,l,c.isFullyInitialized()||we(n),d.filtersNodes()),f=new Xp(i,h,o);return Hj(t,h,n,i,f,a)}function Rw(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?Kw(f)===".priority"&&I.getChild(Nj(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 X2(t,e){return t.eventCache.isCompleteForChild(e)}function Iie(t,e,n,r,i,o,s){let a=e;return r.foreach((c,l)=>{let d=Ct(n,c);X2(e,Ne(d))&&(a=Rw(t,a,d,l,i,o,s))}),r.foreach((c,l)=>{let d=Ct(n,c);X2(e,Ne(d))||(a=Rw(t,a,d,l,i,o,s))}),a}function Q2(t,e,n){return n.foreach((r,i)=>{e=e.updateChild(r,i)}),e}function Nw(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=Q2(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=Q2(t,E,f);c=by(t,c,new Be(h),I,i,o,s,a)}}),c}function vie(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)}),Nw(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)))}),Nw(t,e,n,l,i,o,a,s)}}function Sie(t,e,n,r,i){let o=e.serverCache,s=kj(e,o.getNode(),o.isFullyInitialized()||we(n),o.isFiltered());return Hj(t,s,n,r,jj,i)}function Aie(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=tb(r,h)}d=d,l=t.filter.updateFullNode(c,d,o)}else{let d=Ne(n),h=nb(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 ww=class{constructor(e,n){this.query_=e,this.eventRegistrations_=[];let r=this.query_._queryParams,i=new Kp(r.getIndex()),o=Wre(r);this.processor_=Eie(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 Iw(this.query_)}get query(){return this.query_}};function Cie(t){return t.viewCache_.serverCache.getNode()}function Die(t){return Ry(t.viewCache_)}function Rie(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 J2(t){return t.eventRegistrations_.length===0}function Nie(t,e){t.eventRegistrations_.push(e)}function Z2(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 ej(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=Tie(t.processor_,i,e,n,r);return _ie(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,$j(t,o.changes,o.viewCache.eventCache.getNode(),null)}function wie(t,e){let n=t.viewCache_.eventCache,r=[];return n.getNode().isLeafNode()||n.getNode().forEachChild(ft,(o,s)=>{r.push(Cd(o,s))}),n.isFullyInitialized()&&r.push(xj(n.getNode())),$j(t,r,n.getNode(),e)}function $j(t,e,n,r){let i=r?[r]:t.eventRegistrations_;return Zre(t.eventGenerator_,e,n,i)}var Oy,My=class{constructor(){this.views=new Map}};function bie(t){q(!Oy,"__referenceConstructor has already been defined"),Oy=t}function Oie(){return q(Oy,"Reference.ts has not been loaded"),Oy}function Mie(t){return t.views.size===0}function rb(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."),ej(o,e,n,r)}else{let o=[];for(let s of t.views.values())o=o.concat(ej(s,e,n,r));return o}}function Wj(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=tb(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 ww(e,l)}return s}function Lie(t,e,n,r,i,o){let s=Wj(t,e,r,i,o);return t.views.has(e._queryIdentifier)||t.views.set(e._queryIdentifier,s),Nie(s,n),wie(s,n)}function Pie(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(Z2(l,n,r)),J2(l)&&(t.views.delete(c),l.query._queryParams.loadsAllData()||o.push(l.query));else{let c=t.views.get(i);c&&(s=s.concat(Z2(c,n,r)),J2(c)&&(t.views.delete(i),c.query._queryParams.loadsAllData()||o.push(c.query)))}return a&&!ta(t)&&o.push(new(Oie())(e._repo,e._path)),{removed:o,events:s}}function zj(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||Rie(r,e);return n}function qj(t,e){if(e._queryParams.loadsAllData())return Hy(t);{let r=e._queryIdentifier;return t.views.get(r)}}function Kj(t,e){return qj(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 xie(t){q(!Ly,"__referenceConstructor has already been defined"),Ly=t}function kie(){return q(Ly,"Reference.ts has not been loaded"),Ly}var Fie=1,Py=class{constructor(e){this.listenProvider_=e,this.syncPointTree_=new qn(null),this.pendingWriteTree_=gie(),this.tagToQueryMap=new Map,this.queryToTagMap=new Map}};function ib(t,e,n,r,i){return rie(t.pendingWriteTree_,e,n,r,i),i?Md(t,new Dd(Jw(),e,n)):[]}function Uie(t,e,n,r){iie(t.pendingWriteTree_,e,n,r);let i=qn.fromObject(n);return Md(t,new Yp(Jw(),e,i))}function Ys(t,e,n=!1){let r=oie(t.pendingWriteTree_,e);if(sie(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)}),Md(t,new yw(r.path,o,n))}else return[]}function og(t,e,n){return Md(t,new Dd(Zw(),e,n))}function Vie(t,e,n){let r=qn.fromObject(n);return Md(t,new Yp(Zw(),e,r))}function Bie(t,e){return Md(t,new Dy(Zw(),e))}function Gie(t,e,n){let r=ob(t,n);if(r){let i=sb(r),o=i.path,s=i.queryId,a=zn(o,e),c=new Dy(eb(s),a);return ab(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"||Kj(s,e))){let c=Pie(s,e,n,r);Mie(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=$ie(f);for(let E=0;E<g.length;++E){let I=g[E],S=I.query,L=Jj(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)}))}Wie(t,l)}return a}function Yj(t,e,n,r){let i=ob(t,r);if(i!=null){let o=sb(i),s=o.path,a=o.queryId,c=zn(s,e),l=new Dd(eb(a),c,n);return ab(t,s,l)}else return[]}function jie(t,e,n,r){let i=ob(t,r);if(i){let o=sb(i),s=o.path,a=o.queryId,c=zn(s,e),l=qn.fromObject(n),d=new Yp(eb(a),c,l);return ab(t,s,d)}else return[]}function bw(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=Kj(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=zie();t.queryToTagMap.set(f,g),t.tagToQueryMap.set(g,f)}let d=jy(t.pendingWriteTree_,i),h=Lie(a,e,n,d,o,c);if(!l&&!s&&!r){let f=qj(a,e);h=h.concat(qie(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 Vj(i,e,o,n,!0)}function Hie(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=Wj(i,e,a,o?s.getNode():ve.EMPTY_NODE,o);return Die(c)}function Md(t,e){return Xj(e,t.syncPointTree_,null,jy(t.pendingWriteTree_,Ve()))}function Xj(t,e,n,r){if(we(t.path))return Qj(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=Bj(r,s);o=o.concat(Xj(a,c,l,d))}return i&&(o=o.concat(rb(i,t,r,n))),o}}function Qj(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=Bj(r,s),d=t.operationForChild(s);d&&(o=o.concat(Qj(d,a,c,l)))}),i&&(o=o.concat(rb(i,t,r,n))),o}function Jj(t,e){let n=e.query,r=Qp(t,n);return{hashFn:()=>(Cie(e)||ve.EMPTY_NODE).hash(),onComplete:i=>{if(i==="ok")return r?Gie(t,n._path,r):Bie(t,n._path);{let o=rre(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 ob(t,e){return t.tagToQueryMap.get(e)}function sb(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 ab(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 rb(r,n,i,null)}function $ie(t){return t.fold((e,n,r)=>{if(n&&ta(n))return[Hy(n)];{let i=[];return n&&(i=zj(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 Wie(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 zie(){return Fie++}function qie(t,e,n){let r=e._path,i=Qp(t,e),o=Jj(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(zj(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 Ow=class t{constructor(e){this.node_=e}getImmediateChild(e){let n=this.node_.getImmediateChild(e);return new t(n)}node(){return this.node_}},Mw=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_)}},Kie=function(t){return t=t||{},t.timestamp=t.timestamp||new Date().getTime(),t},tj=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 Yie(t[".sv"],e,n);if(typeof t[".sv"]=="object")return Xie(t[".sv"],e);q(!1,"Unexpected server value: "+JSON.stringify(t,null,2))},Yie=function(t,e,n){if(t==="timestamp")return n.timestamp;q(!1,"Unexpected server value: "+t)},Xie=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},Zj=function(t,e,n,r){return lb(e,new Mw(n,t),r)},cb=function(t,e,n){return lb(t,new Ow(e),n)};function lb(t,e,n){let r=t.getPriority().val(),i=tj(r,e.getImmediateChild(".priority"),n),o;if(t.isLeafNode()){let s=t,a=tj(s.getValue(),e,n);return a!==s.getValue()||i!==s.getPriority().val()?new Sd(a,At(i)):t}else{let s=t;return o=s,i!==s.getPriority().val()&&(o=o.updatePriority(new Sd(i))),s.forEachChild(ft,(a,c)=>{let l=lb(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 ub(t,e){t.node.value=e,Lw(t)}function eH(t){return t.node.childCount>0}function Qie(t){return ll(t)===void 0&&!eH(t)}function qy(t,e){dn(t.node.children,(n,r)=>{e(new Jp(n,t,r))})}function tH(t,e,n,r){n&&!r&&e(t),qy(t,i=>{tH(i,e,!0,r)}),n&&r&&e(t)}function Jie(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 Lw(t){t.parent!==null&&Zie(t.parent,t.name,t)}function Zie(t,e,n){let r=Qie(n),i=Vr(t.node.children,e);r&&i?(delete t.node.children[e],t.node.childCount--,Lw(t)):!r&&!i&&(t.node.children[e]=n.node,t.node.childCount++,Lw(t))}var eoe=/[\[\].#$\/\u0000-\u001F\u007F]/,toe=/[\[\].#$\u0000-\u001F\u007F]/,WN=10*1024*1024,Ky=function(t){return typeof t=="string"&&t.length!==0&&!eoe.test(t)},nH=function(t){return typeof t=="string"&&t.length!==0&&!toe.test(t)},noe=function(t){return t&&(t=t.replace(/^\/*\.info(\/|$)/,"/")),nH(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 iw(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>WN/3&&mp(e)>WN)throw new Error(t+"contains a string greater than "+WN+" 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 "]"`);Mre(r,s),ag(t,a,r),Lre(r)}),i&&o)throw new Error(t+' contains ".value" child '+Qc(r)+" in addition to actual children.")}},roe=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(Ore);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}},rH=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)),Kw(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)}),roe(i,o)},ioe=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).")}},iH=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 "]").`)},db=function(t,e,n,r){if(!(r&&n===void 0)&&!nH(n))throw new Error(Us(t,e)+'was an invalid path = "'+n+`". Paths must be non-empty strings and can't contain ".", "#", "$", "[", or "]"`)},ooe=function(t,e,n,r){n&&(n=n.replace(/^\/*\.info(\/|$)/,"/")),db(t,e,n,r)},Xs=function(t,e){if(Ne(e)===".info")throw new Error(t+" failed = Can't modify data under /.info/")},soe=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&&!noe(n))throw new Error(Us(t,"url")+`must be a valid firebase URL and the path can't contain ".", "#", "$", "[", or "]".`)};var Pw=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&&!Yw(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 oH(t,e,n){Yy(t,n),sH(t,r=>Yw(r,e))}function vr(t,e,n){Yy(t,n),sH(t,r=>jr(r,e)||jr(e,r))}function sH(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)?(aoe(t.eventLists_[r]),t.eventLists_[r]=null):n=!1}}n&&(t.eventLists_=[]),t.recursionDepth_--}function aoe(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()),bd(r)}}}var coe="repo_interrupt",loe=25,xw=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 Pw,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 uoe(t,e,n){if(t.stats_=qw(t.repoInfo_),t.forceRestClient_||are())t.server_=new pw(t.repoInfo_,(r,i,o,s)=>{nj(t,r,i,o,s)},t.authTokenProvider_,t.appCheckProvider_),setTimeout(()=>rj(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 Xw(t.repoInfo_,e,(r,i,o,s)=>{nj(t,r,i,o,s)},r=>{rj(t,r)},r=>{doe(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_=lre(t.repoInfo_,()=>new Tw(t.stats_,t.server_)),t.infoData_=new gw,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:()=>{}}),hb(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 aH(t){let n=t.infoData_.getNode(new Be(".info/serverTimeOffset")).val()||0;return new Date().getTime()+n}function cg(t){return Kie({timestamp:aH(t)})}function nj(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=jie(t.serverSyncTree_,o,c,i)}else{let c=At(n);s=Yj(t.serverSyncTree_,o,c,i)}else if(r){let c=pp(n,l=>At(l));s=Vie(t.serverSyncTree_,o,c)}else{let c=At(n);s=og(t.serverSyncTree_,o,c)}let a=o;s.length>0&&(a=Nd(t,o)),vr(t.eventQueue_,a,s)}function rj(t,e){hb(t,"connected",e),e===!1&&goe(t)}function doe(t,e){dn(e,(n,r)=>{hb(t,n,r)})}function hb(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 hoe(t,e,n){let r=Hie(t.serverSyncTree_,e);return r!=null?Promise.resolve(r):t.server_.get(e).then(i=>{let o=At(i).withIndex(e._queryParams.getIndex());bw(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=Yj(t.serverSyncTree_,e._path,o,a)}return vr(t.eventQueue_,e._path,s),xy(t.serverSyncTree_,e,n,null,!0),o},i=>(Ld(t,"get for query "+xt(e)+" failed: "+i),Promise.reject(new Error(i))))}function foe(t,e,n,r,i){Ld(t,"set",{path:e.toString(),value:n,priority:r});let o=cg(t),s=At(n,r),a=$y(t.serverSyncTree_,e),c=cb(s,a,o),l=Xy(t),d=ib(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=pb(t,e);Nd(t,h),vr(t.eventQueue_,h,[])}function poe(t,e,n,r){Ld(t,"update",{path:e.toString(),value:n});let i=!0,o=cg(t),s={};if(dn(n,(a,c)=>{i=!1,s[a]=Zj(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=Uie(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?Nd(t,e):e;vr(t.eventQueue_,g,f),na(t,r,l,d)}),dn(n,l=>{let d=pb(t,Ct(e,l));Nd(t,d)}),vr(t.eventQueue_,e,[])}}function goe(t){Ld(t,"onDisconnectEvents");let e=cg(t),n=Cy();Ew(t.onDisconnect_,Ve(),(i,o)=>{let s=Zj(i,o,t.serverSyncTree_,e);Od(n,i,s)});let r=[];Ew(n,Ve(),(i,o)=>{r=r.concat(og(t.serverSyncTree_,i,o));let s=pb(t,i);Nd(t,s)}),t.onDisconnect_=Cy(),vr(t.eventQueue_,Ve(),r)}function moe(t,e,n){t.server_.onDisconnectCancel(e.toString(),(r,i)=>{r==="ok"&&mw(t.onDisconnect_,e),na(t,n,r,i)})}function ij(t,e,n,r){let i=At(n);t.server_.onDisconnectPut(e.toString(),i.val(!0),(o,s)=>{o==="ok"&&Od(t.onDisconnect_,e,i),na(t,r,o,s)})}function Eoe(t,e,n,r,i){let o=At(n,r);t.server_.onDisconnectPut(e.toString(),o.val(!0),(s,a)=>{s==="ok"&&Od(t.onDisconnect_,e,o),na(t,i,s,a)})}function _oe(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);Od(t.onDisconnect_,Ct(e,s),c)}),na(t,r,i,o)})}function Toe(t,e,n){let r;Ne(e._path)===".info"?r=bw(t.infoSyncTree_,e,n):r=bw(t.serverSyncTree_,e,n),oH(t.eventQueue_,e._path,r)}function kw(t,e,n){let r;Ne(e._path)===".info"?r=xy(t.infoSyncTree_,e,n):r=xy(t.serverSyncTree_,e,n),oH(t.eventQueue_,e._path,r)}function yoe(t){t.persistentConnection_&&t.persistentConnection_.interrupt(coe)}function Ld(t,...e){let n="";t.persistentConnection_&&(n=t.persistentConnection_.id+":"),un(n,...e)}function na(t,e,n,r){e&&bd(()=>{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 Ioe(t,e,n,r,i,o){Ld(t,"transaction on "+e);let s={path:e,update:n,onComplete:r,status:null,order:cj(),applyLocally:o,retryCount:0,unwatcher:i,abortReason:null,currentWriteId:null,currentInputSnapshot:null,currentOutputSnapshotRaw:null,currentOutputSnapshotResolved:null},a=fb(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),ub(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=cb(g,a,f);s.currentOutputSnapshotRaw=g,s.currentOutputSnapshotResolved=E,s.currentWriteId=Xy(t);let I=ib(t.serverSyncTree_,e,E,s.currentWriteId,s.applyLocally);vr(t.eventQueue_,e,I),Qy(t,t.transactionQueueTree_)}}function fb(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=lH(t,e);q(n.length>0,"Sending zero length transaction queue"),n.every(i=>i.status===0)&&voe(t,sg(e),n)}else eH(e)&&qy(e,n=>{Qy(t,n)})}function voe(t,e,n){let r=n.map(l=>l.currentWriteId),i=fb(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=>{Ld(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++)bd(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}Nd(t,e)}},s)}function Nd(t,e){let n=cH(t,e),r=sg(n),i=lH(t,n);return Soe(t,i,r),r}function Soe(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>=loe)d=!0,h="maxretry",i=i.concat(Ys(t.serverSyncTree_,c.currentWriteId,!0));else{let f=fb(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=cb(E,f,L);c.currentOutputSnapshotRaw=E,c.currentOutputSnapshotResolved=V,c.currentWriteId=Xy(t),s.splice(s.indexOf(S),1),i=i.concat(ib(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++)bd(r[a]);Qy(t,t.transactionQueueTree_)}function cH(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 lH(t,e){let n=[];return uH(t,e,n),n.sort((r,i)=>r.order-i.order),n}function uH(t,e,n){let r=ll(e);if(r)for(let i=0;i<r.length;i++)n.push(r[i]);qy(e,i=>{uH(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,ub(e,n.length>0?n:void 0)}qy(e,r=>{Jy(t,r)})}function pb(t,e){let n=sg(cH(t,e)),r=zy(t.transactionQueueTree_,e);return Jie(r,i=>{zN(t,i)}),zN(t,r),tH(r,i=>{zN(t,i)}),n}function zN(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?ub(e,void 0):n.length=o+1,vr(t.eventQueue_,sg(e),i);for(let s=0;s<r.length;s++)bd(r[s])}}function Aoe(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 Coe(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 oj=function(t,e){let n=Doe(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||Jne();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)}},Doe=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=Aoe(t.substring(d,h)));let f=Coe(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 sj="-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz",Roe=(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]=sj.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+=sj.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 Fw=class{constructor(e,n){this._repo=e,this._path=n}cancel(){let e=new cn;return moe(this._repo,this._path,e.wrapCallback(()=>{})),e.promise}remove(){Xs("OnDisconnect.remove",this._path);let e=new cn;return ij(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 ij(this._repo,this._path,e,n.wrapCallback(()=>{})),n.promise}setWithPriority(e,n){Xs("OnDisconnect.setWithPriority",this._path),rl("OnDisconnect.setWithPriority",e,this._path,!1),ioe("OnDisconnect.setWithPriority",n,!1);let r=new cn;return Eoe(this._repo,this._path,e,n,r.wrapCallback(()=>{})),r.promise}update(e){Xs("OnDisconnect.update",this._path),rH("OnDisconnect.update",e,this._path,!1);let n=new cn;return _oe(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:Kw(this._path)}get ref(){return new hi(this._repo,this._path)}get _queryIdentifier(){let e=W2(this._queryParams),n=zw(e);return n==="{}"?"default":n}get _queryObject(){return W2(this._queryParams)}isEqual(e){if(e=Me(e),!(e instanceof t))return!1;let n=this._repo===e._repo,r=Yw(this._path,e._path),i=this._queryIdentifier===e._queryIdentifier;return n&&r&&i}toJSON(){return this.toString()}toString(){return this._repo.toString()+bre(this._path)}};function Noe(t,e){if(t._orderByCalled===!0)throw new Error(e+": You can't combine multiple orderBy calls.")}function gb(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()===Pj,"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 dH(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 fw,!1)}get parent(){let e=Nj(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}},wd=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 hH(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?ooe("child","path",e,!1):db("child","path",e,!1),new hi(t._repo,Ct(t._path,e))}function fH(t){return t=Me(t),new Fw(t._repo,t._path)}function pH(t,e){t=Me(t),Xs("push",t._path),rl("push",e,t._path,!0);let n=aH(t._repo),r=Roe(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 gH(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 foe(t._repo,t._path,e,null,n.wrapCallback(()=>{})),n.promise}function mH(t,e){rH("update",e,t._path,!1);let n=new cn;return poe(t._repo,t._path,e,n.wrapCallback(()=>{})),n.promise}function eI(t){t=Me(t);let e=new eg(()=>{}),n=new tg(e);return hoe(t._repo,t,n).then(r=>new wd(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 wd(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 wd(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)=>{kw(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 Toe(t._repo,t,a),()=>kw(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 mb(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)),kw(t._repo,t,r)}var sl=class{},Uw=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=Kre(e._queryParams,this._value,this._key);if(dH(n),gb(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=qre(e._queryParams,this._value,this._key);if(dH(n),gb(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 EH(t=null,e){return iH("startAt","key",e,!0),new Vy(t,e)}var Vw=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,zre(e._queryParams,this._limit),e._orderByCalled)}};function _H(t){if(typeof t!="number"||Math.floor(t)!==t||t<=0)throw new Error("limitToLast: First argument must be a positive integer.");return new Vw(t)}var Bw=class extends sl{constructor(e){super(),this._path=e,this.type="orderByChild"}_apply(e){Noe(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=Yre(e._queryParams,r);return gb(i),new il(e._repo,e._path,i,!0)}};function TH(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 db("orderByChild","path",t,!1),new Bw(t)}var Gw=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 Uw(this._value,this._key)._apply(new Vy(this._value,this._key)._apply(e))}};function yH(t,e){return iH("equalTo","key",e,!0),new Gw(t,e)}function IH(t,...e){let n=Me(t);for(let r of e)n=r._apply(n);return n}bie(hi);xie(hi);var woe="FIREBASE_DATABASE_EMULATOR_HOST",jw={},boe=!1;function Ooe(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 Moe(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=oj(o,i),a=s.repoInfo,c,l;typeof process<"u"&&process.env&&(l=process.env[woe]),l?(c=!0,o=`http://${l}?ns=${a.namespace}`,s=oj(o,i),a=s.repoInfo):c=!s.repoInfo.secure;let d=i&&c?new Bp(Bp.OWNER):new JN(t.name,t.options,e);soe("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=Poe(a,t,d,new QN(t,n));return new Hw(h,t)}function Loe(t,e){let n=jw[e];(!n||n[t.key]!==t)&&Wo(`Database ${e}(${t.repoInfo_}) has already been deleted.`),yoe(t),delete n[t.key]}function Poe(t,e,n,r){let i=jw[e.name];i||(i={},jw[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 xw(t,boe,n,r),i[t.toURLString()]=o,o}var Hw=class{constructor(e,n){this._repoInternal=e,this.app=n,this.type="database",this._instanceStarted=!1}get _repo(){return this._instanceStarted||(uoe(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&&(Loe(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 xoe(){Rj.IS_TRANSPORT_INITIALIZED&&xn("Transport has already been initialized. Please call this function before calling ref or setting up a listener")}function Eb(){xoe(),Td.forceDisallow(),Ey.forceAllow()}function Pd(t=er(),e){let n=Xi(t,"database").getImmediate({identifier:e});if(!n._instanceStarted){let r=ld("database");r&&vH(n,...r)}return n}function vH(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)),Ooe(o,i,r,s)}function koe(t){Xne(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 Moe(r,i,o,n)},"PUBLIC").setMultipleInstances(!0)),Ge(N2,w2,t),Ge(N2,w2,"esm2017")}var $w=class{constructor(e,n){this.committed=e,this.snapshot=n}toJSON(){return{committed:this.committed,snapshot:this.snapshot.toJSON()}}};function SH(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 wd(d,new hi(t._repo,t._path),ft),o.resolve(new $w(l,h)))},a=ug(t,()=>{});return Ioe(t._repo,t._path,e,s,a,i),o.promise}Xw.prototype.simpleListen=function(t,e){this.sendRequest("q",{p:t},e)};Xw.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||{}),Foe=Object.freeze((ul={},ul[hn.added]=tI,ul[hn.removed]=rI,ul[hn.changed]=nI,ul[hn.moved]=mb,ul[hn.value]=ug,ul));function sI(t,e){return new fe(function(n){var r=Foe[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 _b(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 AH(t){return(t==null||t.length===0)&&(t=[hn.added,hn.removed,hn.changed,hn.moved]),t}function CH(t,e){return e===void 0&&(e={}),sI(t,hn.value).pipe(De(function(n){return Tb(n,e)}))}function Tb(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 DH(t,e){e===void 0&&(e={});var n=AH(e.events),r=n.map(function(i){return sI(t,i)});return gs.apply(void 0,r)}function Uoe(t){return cr(eI(t)).pipe(De(function(e){var n=hn.value;return{snapshot:e,prevKey:null,event:n}}))}function RH(t,e){e===void 0&&(e={});var n=AH(e.events);return Uoe(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(Boe,[]))}),yo())}function NH(t,e){return e===void 0&&(e={}),RH(t).pipe(De(function(n){return n.map(function(r){return Tb(r,e)})}))}function wH(t,e){for(var n=t.length,r=0;r<n;r++)if(t[r].snapshot.key===e)return r;return-1}function Voe(t,e){if(e==null)return 0;var n=wH(t,e);return n===-1?t.length:n+1}function Boe(t,e){var n=e.snapshot,r=e.prevKey,i=e.event,o=n.key,s=wH(t,o),a=Voe(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=_b(_b([],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 _b([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}},bH="database",yb=class{constructor(){return Go(bH)}};var Ib=new z("angularfire2.database-instances");function Goe(t,e){let n=Gs(bH,t,e);return n&&new dg(n)}function joe(t){return(e,n)=>{let r=e.runOutsideAngular(()=>t(n));return new dg(r)}}var Hoe={provide:yb,deps:[[new zt,Ib]]},$oe={provide:dg,useFactory:Goe,deps:[[new zt,Ib],ci]};function tFe(t,...e){return Ge("angularfire",si.full,"rtdb"),Xn([$oe,Hoe,{provide:Ib,useFactory:joe(t),multi:!0,deps:[Ae,ze,ai,jo,[new zt,$c],[new zt,Hs],...e]}])}var OH=ue(NH,!0);var MH=ue(CH,!0),LH=ue(DH,!0);var nFe=ue(yH,!0,2);var hg=ue(eI,!0),rFe=ue(Pd,!0);var iFe=ue(_H,!0,2),PH=ue(iI,!0),xH=ue(tI,!0),kH=ue(nI,!0);var FH=ue(rI,!0),UH=ue(fH,!0),vb=ue(ug,!0),oFe=ue(TH,!0,2);var VH=ue(pH,!0,2),BH=ue(IH,!0,2),xd=ue(hH,!0,2);var GH=ue(gH,!0,2),jH=ue(SH,!0),HH=ue(Zy,!0,2);var sFe=ue(EH,!0,2),$H=ue(mH,!0,2);var WH=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},zH={};var zo,Sb;(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,Sb=zH.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=zH.Integer=s}).apply(typeof WH<"u"?WH: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 Ab,Woe,kd,Cb,fg,cI,Db,Rb,Nb;(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,Fl=()=>{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 Ul(u){u.da=!0,u.listener=null,u.proxy=null,u.src=null,u.ha=null}function Vl(u){this.src=u,this.g={},this.h=0}Vl.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 Bl(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&&(Ul(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 Gl="closure_lm_"+(1e6*Math.random()|0),Je={};function jl(u,p,m,_,b){if(_&&_.once)return sr(u,p,m,_,b);if(Array.isArray(p)){for(var k=0;k<p.length;k++)jl(u,p[k],m,_,b);return null}return m=Wl(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[Gl]=it=new Vl(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=Wl(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=Wl(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&&(Ul(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)&&Hl(m))}function Hl(u){if(typeof u!="number"&&u&&!u.da){var p=u.src;if(p&&p[Na])Bl(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))?(Bl(m,u),m.h==0&&(m.src=null,p[Gl]=null)):Ul(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&&Hl(u),u=m.call(_,p)}return u}function wa(u){return u=u[Gl],u instanceof Vl?u:null}var $l="__closure_events_fn_"+(1e9*Math.random()>>>0);function Wl(u){return typeof u=="function"?u:(u[$l]||(u[$l]=function(p){return u.handleEvent(p)}),u[$l])}function dt(){_i.call(this),this.i=new Vl(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;_++)Ul(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&&Bl(u.i,X),b=it.call(gn,_)!==!1&&b}}return b&&!_.defaultPrevented}function zl(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=zl(()=>{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 ql 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)&&Hl(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 Kl(){}Kl.prototype.h=null;function Yl(u){return u.h||(u.h=u.i())}function Xl(){}var br={OPEN:"a",kb:"b",Ja:"c",wb:"d"};function Ti(){nn.call(this,"d")}E(Ti,nn);function Ql(){nn.call(this,"c")}E(Ql,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+"."+Ww.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 vd=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 vd{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 yd=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})(),sw=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 yd(this.root_,null,this.comparator_,!1,e)}getIteratorFrom(e,n){return new yd(this.root_,e,this.comparator_,!1,n)}getReverseIteratorFrom(e,n){return new yd(this.root_,e,this.comparator_,!0,n)}getReverseIterator(e){return new yd(this.root_,null,this.comparator_,!0,e)}};Hr.EMPTY_NODE=new sw;function Ure(t,e){return al(t.name,e.name)}function Qw(t,e){return al(t,e)}var aw;function Vre(t){aw=t}var bj=function(t){return typeof t=="number"?"number:"+dj(t):"string:"+t},Oj=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===aw||t.isEmpty(),"priority of unexpected type.");q(t===aw||t.getPriority().isEmpty(),"Priority nodes can't have a priority of their own.")};var H2,Sd=(()=>{class t{static set __childrenNodeConstructor(n){H2=n}static get __childrenNodeConstructor(){return H2}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."),Oj(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:"+bj(this.priorityNode_.val())+":");let r=typeof this.value_;n+=r+":",r==="number"?n+=dj(this.value_):n+=this.value_,this.lazyHash_=lj(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})(),Mj,Lj;function Bre(t){Mj=t}function Gre(t){Lj=t}var cw=class extends vd{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 Sd("[PRIORITY-POST]",Lj))}makePost(e,n){let r=Mj(e);return new Oe(n,new Sd("[PRIORITY-POST]",r))}toString(){return".priority"}},ft=new cw;var jre=Math.log(2),lw=class{constructor(e){let n=o=>parseInt(Math.log(o)/jre,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 lw(t.length),a=o(s);return new Hr(r||e,a)};var HN,_d={},Ad=class t{static get Default(){return q(_d&&ft,"ChildrenNode.ts has not been loaded"),HN=HN||new t({".priority":_d},{".priority":ft}),HN}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=_d;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===_d)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 _d;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===_d)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(Qw),null,Ad.Default))}constructor(n,r,i){this.children_=n,this.priorityNode_=r,this.indexMap_=i,this.lazyHash_=null,this.priorityNode_&&Oj(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:"+bj(this.getPriority().val())+":"),this.forEachChild(ft,(r,i)=>{let o=i.hash();o!==""&&(n+=":"+r+":"+o)}),this.lazyHash_=n===""?"":lj(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})(),uw=class extends ve{constructor(){super(new Hr(Qw),ve.EMPTY_NODE,Ad.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 uw;Object.defineProperties(Oe,{MIN:{value:new Oe(tl,ve.EMPTY_NODE)},MAX:{value:new Oe(Zs,ig)}});vy.__EMPTY_NODE=ve.EMPTY_NODE;Sd.__childrenNodeConstructor=ve;Vre(ig);Gre(ig);var Hre=!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 Sd(n,At(e))}if(!(t instanceof Array)&&Hre){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,Ure,s=>s.name,Qw);if(r){let s=Sy(n,ft.getCompare());return new ve(o,At(e),new Ad({".priority":s},{".priority":ft}))}else return new ve(o,At(e),Ad.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))}}Bre(At);var Wp=class extends vd{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 dw=class extends vd{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"}},Pj=new dw;function xj(t){return{type:"value",snapshotNode:t}}function Cd(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 $re(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(Cd(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(Cd(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 hw=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(Cd(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(Cd(n,r))),a.updateImmediateChild(n,r).updateImmediateChild(l.name,ve.EMPTY_NODE)):e}};var fw=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 Wre(t){return t.loadsAllData()?new Kp(t.getIndex()):t.hasLimit()?new hw(t):new Ay(t)}function zre(t,e){let n=t.copy();return n.limitSet_=!0,n.limit_=e,n.viewFrom_="r",n}function qre(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 Kre(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 Yre(t,e){let n=t.copy();return n.index_=e,n}function $2(t){let e={};if(t.isDefault())return e;let n;if(t.index_===ft?n="$priority":t.index_===Pj?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 W2(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 pw=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=$2(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=$2(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=ad(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 gw=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 Od(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),Od(i,e,n)}}function mw(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)=>{Od(t,new Be(r),i)}),mw(t,e)}}else if(t.children.size>0){let n=Ne(e);return e=at(e),t.children.has(n)&&mw(t.children.get(n),e)&&t.children.delete(n),t.children.size===0}else return!0}function Ew(t,e,n){t.value!==null?n(e,t.value):Xre(t,(r,i)=>{let o=new Be(e.toString()+"/"+r);Ew(i,o,n)})}function Xre(t,e){t.children.forEach((n,r)=>{e(r,n)})}var _w=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 z2=10*1e3,Qre=30*1e3,Jre=300*1e3,Tw=class{constructor(e,n){this.server_=n,this.statsToReport_={},this.statsListener_=new _w(e);let r=z2+(Qre-z2)*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*Jre))}};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 Jw(){return{fromUser:!0,fromServer:!1,queryId:null,tagged:!1}}function Zw(){return{fromUser:!1,fromServer:!0,queryId:null,tagged:!1}}function eb(t){return{fromUser:!1,fromServer:!0,queryId:t,tagged:!0}}var yw=class t{constructor(e,n,r){this.path=e,this.affectedTree=n,this.revert=r,this.type=Zi.ACK_USER_WRITE,this.source=Jw()}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 Dd=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 Dd(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 Iw=class{constructor(e){this.query_=e,this.index_=this.query_._queryParams.getIndex()}};function Zre(t,e,n,r){let i=[],o=[];return e.forEach(s=>{s.type==="child_changed"&&t.index_.indexedValueChanged(s.oldSnap,s.snapshotNode)&&o.push($re(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)=>tie(t,a,c)),s.forEach(a=>{let c=eie(t,a,o);i.forEach(l=>{l.respondsTo(a.type)&&e.push(l.createEvent(c,t.query_))})})}function eie(t,e,n){return e.type==="value"||e.type==="child_removed"||(e.prevName=n.getPredecessorChildName(e.childName,e.snapshotNode,t.index_)),e}function tie(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 kj(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 $N,nie=()=>($N||($N=new Hr(ere)),$N),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=nie()){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 vw(t,e,n){let r=t;return dn(n,(i,o)=>{r=jp(r,Ct(e,i),o)}),r}function q2(t,e){if(we(e))return di.empty();{let n=t.writeTree_.setTree(e,new qn(null));return new di(n)}}function Sw(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 K2(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 Aw(t){return t.writeTree_.isEmpty()}function Rd(t,e){return Fj(Ve(),t.writeTree_,e)}function Fj(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=Fj(Ct(t,i),o,n)}),!n.getChild(t).isEmpty()&&r!==null&&(n=n.updateChild(Ct(t,".priority"),r)),n}}function jy(t,e){return Gj(e,t)}function rie(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 iie(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=vw(t.visibleWrites,e,n),t.lastWriteId=r}function oie(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 sie(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&&aie(a,r.path)?i=!1:jr(r.path,a.path)&&(o=!0)),s--}if(i){if(o)return cie(t),!0;if(r.snap)t.visibleWrites=q2(t.visibleWrites,r.path);else{let a=r.children;dn(a,c=>{t.visibleWrites=q2(t.visibleWrites,Ct(r.path,c))})}return!0}else return!1}function aie(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 cie(t){t.visibleWrites=Uj(t.allWrites,lie,Ve()),t.allWrites.length>0?t.lastWriteId=t.allWrites[t.allWrites.length-1].writeId:t.lastWriteId=-1}function lie(t){return t.visible}function Uj(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=vw(r,a,o.children);else if(jr(s,n))if(a=zn(s,n),we(a))r=vw(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 Vj(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(Aw(s))return n;if(n==null&&!Sw(s,Ve()))return null;{let a=n||ve.EMPTY_NODE;return Rd(s,a)}}}else{let o=Qs(t.visibleWrites,e);if(!i&&Aw(o))return n;if(!i&&n==null&&!Sw(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=Uj(t.allWrites,s,e),c=n||ve.EMPTY_NODE;return Rd(a,c)}}}function uie(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=Rd(Qs(o,new Be(s)),a);r=r.updateImmediateChild(s,c)}),K2(o).forEach(s=>{r=r.updateImmediateChild(s.name,s.node)}),r}else{let o=Qs(t.visibleWrites,e);return K2(o).forEach(s=>{r=r.updateImmediateChild(s.name,s.node)}),r}}function die(t,e,n,r,i){q(r||i,"Either existingEventSnap or existingServerSnap must exist");let o=Ct(e,n);if(Sw(t.visibleWrites,o))return null;{let s=Qs(t.visibleWrites,o);return Aw(s)?i.getChild(n):Rd(s,i.getChild(n))}}function hie(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 Rd(s,r.getNode().getImmediateChild(n))}else return null}function fie(t,e){return cl(t.visibleWrites,e)}function pie(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=Rd(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 gie(){return{visibleWrites:di.empty(),allWrites:[],lastWriteId:-1}}function Ny(t,e,n,r){return Vj(t.writeTree,t.treePath,e,n,r)}function tb(t,e){return uie(t.writeTree,t.treePath,e)}function Y2(t,e,n,r){return die(t.writeTree,t.treePath,e,n,r)}function wy(t,e){return fie(t.writeTree,Ct(t.treePath,e))}function mie(t,e,n,r,i,o){return pie(t.writeTree,t.treePath,e,n,r,i,o)}function nb(t,e,n){return hie(t.writeTree,t.treePath,e,n)}function Bj(t,e){return Gj(Ct(t.treePath,e),t.writeTree)}function Gj(t,e){return{treePath:t,writeTree:e}}var Cw=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,Cd(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 Dw=class{getCompleteChild(e){return null}getChildAfterChild(e,n,r){return null}},jj=new Dw,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 nb(this.writes_,e,r)}}getChildAfterChild(e,n,r){let i=this.optCompleteServerCache_!=null?this.optCompleteServerCache_:nl(this.viewCache_),o=mie(this.writes_,i,n,1,r,e);return o.length===0?null:o[0]}};function Eie(t){return{filter:t}}function _ie(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 Tie(t,e,n,r,i){let o=new Cw,s,a;if(n.type===Zi.OVERWRITE){let l=n;l.source.fromUser?s=Rw(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=Iie(t,e,l.path,l.children,r,i,o):(q(l.source.fromServer,"Unknown source."),a=l.source.tagged||e.serverCache.isFiltered(),s=Nw(t,e,l.path,l.children,r,i,a,o))}else if(n.type===Zi.ACK_USER_WRITE){let l=n;l.revert?s=Aie(t,e,l.path,r,i,o):s=vie(t,e,l.path,l.affectedTree,r,i,o)}else if(n.type===Zi.LISTEN_COMPLETE)s=Sie(t,e,n.path,r,o);else throw kc("Unknown operation type: "+n.type);let c=o.getChanges();return yie(e,s,c),{viewCache:s,changes:c}}function yie(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(xj(Ry(e)))}}function Hj(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=tb(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=Y2(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=Y2(r,n,s.getNode(),c);f!=null?h=s.getNode().getImmediateChild(l).updateChild(d,f):h=s.getNode().getImmediateChild(l)}else h=nb(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,jj,null)}let h=kj(e,l,c.isFullyInitialized()||we(n),d.filtersNodes()),f=new Xp(i,h,o);return Hj(t,h,n,i,f,a)}function Rw(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?Kw(f)===".priority"&&I.getChild(Nj(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 X2(t,e){return t.eventCache.isCompleteForChild(e)}function Iie(t,e,n,r,i,o,s){let a=e;return r.foreach((c,l)=>{let d=Ct(n,c);X2(e,Ne(d))&&(a=Rw(t,a,d,l,i,o,s))}),r.foreach((c,l)=>{let d=Ct(n,c);X2(e,Ne(d))||(a=Rw(t,a,d,l,i,o,s))}),a}function Q2(t,e,n){return n.foreach((r,i)=>{e=e.updateChild(r,i)}),e}function Nw(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=Q2(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=Q2(t,E,f);c=by(t,c,new Be(h),I,i,o,s,a)}}),c}function vie(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)}),Nw(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)))}),Nw(t,e,n,l,i,o,a,s)}}function Sie(t,e,n,r,i){let o=e.serverCache,s=kj(e,o.getNode(),o.isFullyInitialized()||we(n),o.isFiltered());return Hj(t,s,n,r,jj,i)}function Aie(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=tb(r,h)}d=d,l=t.filter.updateFullNode(c,d,o)}else{let d=Ne(n),h=nb(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 ww=class{constructor(e,n){this.query_=e,this.eventRegistrations_=[];let r=this.query_._queryParams,i=new Kp(r.getIndex()),o=Wre(r);this.processor_=Eie(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 Iw(this.query_)}get query(){return this.query_}};function Cie(t){return t.viewCache_.serverCache.getNode()}function Die(t){return Ry(t.viewCache_)}function Rie(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 J2(t){return t.eventRegistrations_.length===0}function Nie(t,e){t.eventRegistrations_.push(e)}function Z2(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 ej(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=Tie(t.processor_,i,e,n,r);return _ie(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,$j(t,o.changes,o.viewCache.eventCache.getNode(),null)}function wie(t,e){let n=t.viewCache_.eventCache,r=[];return n.getNode().isLeafNode()||n.getNode().forEachChild(ft,(o,s)=>{r.push(Cd(o,s))}),n.isFullyInitialized()&&r.push(xj(n.getNode())),$j(t,r,n.getNode(),e)}function $j(t,e,n,r){let i=r?[r]:t.eventRegistrations_;return Zre(t.eventGenerator_,e,n,i)}var Oy,My=class{constructor(){this.views=new Map}};function bie(t){q(!Oy,"__referenceConstructor has already been defined"),Oy=t}function Oie(){return q(Oy,"Reference.ts has not been loaded"),Oy}function Mie(t){return t.views.size===0}function rb(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."),ej(o,e,n,r)}else{let o=[];for(let s of t.views.values())o=o.concat(ej(s,e,n,r));return o}}function Wj(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=tb(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 ww(e,l)}return s}function Lie(t,e,n,r,i,o){let s=Wj(t,e,r,i,o);return t.views.has(e._queryIdentifier)||t.views.set(e._queryIdentifier,s),Nie(s,n),wie(s,n)}function Pie(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(Z2(l,n,r)),J2(l)&&(t.views.delete(c),l.query._queryParams.loadsAllData()||o.push(l.query));else{let c=t.views.get(i);c&&(s=s.concat(Z2(c,n,r)),J2(c)&&(t.views.delete(i),c.query._queryParams.loadsAllData()||o.push(c.query)))}return a&&!ta(t)&&o.push(new(Oie())(e._repo,e._path)),{removed:o,events:s}}function zj(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||Rie(r,e);return n}function qj(t,e){if(e._queryParams.loadsAllData())return Hy(t);{let r=e._queryIdentifier;return t.views.get(r)}}function Kj(t,e){return qj(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 xie(t){q(!Ly,"__referenceConstructor has already been defined"),Ly=t}function kie(){return q(Ly,"Reference.ts has not been loaded"),Ly}var Fie=1,Py=class{constructor(e){this.listenProvider_=e,this.syncPointTree_=new qn(null),this.pendingWriteTree_=gie(),this.tagToQueryMap=new Map,this.queryToTagMap=new Map}};function ib(t,e,n,r,i){return rie(t.pendingWriteTree_,e,n,r,i),i?Md(t,new Dd(Jw(),e,n)):[]}function Uie(t,e,n,r){iie(t.pendingWriteTree_,e,n,r);let i=qn.fromObject(n);return Md(t,new Yp(Jw(),e,i))}function Ys(t,e,n=!1){let r=oie(t.pendingWriteTree_,e);if(sie(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)}),Md(t,new yw(r.path,o,n))}else return[]}function og(t,e,n){return Md(t,new Dd(Zw(),e,n))}function Vie(t,e,n){let r=qn.fromObject(n);return Md(t,new Yp(Zw(),e,r))}function Bie(t,e){return Md(t,new Dy(Zw(),e))}function Gie(t,e,n){let r=ob(t,n);if(r){let i=sb(r),o=i.path,s=i.queryId,a=zn(o,e),c=new Dy(eb(s),a);return ab(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"||Kj(s,e))){let c=Pie(s,e,n,r);Mie(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=$ie(f);for(let E=0;E<g.length;++E){let I=g[E],S=I.query,L=Jj(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)}))}Wie(t,l)}return a}function Yj(t,e,n,r){let i=ob(t,r);if(i!=null){let o=sb(i),s=o.path,a=o.queryId,c=zn(s,e),l=new Dd(eb(a),c,n);return ab(t,s,l)}else return[]}function jie(t,e,n,r){let i=ob(t,r);if(i){let o=sb(i),s=o.path,a=o.queryId,c=zn(s,e),l=qn.fromObject(n),d=new Yp(eb(a),c,l);return ab(t,s,d)}else return[]}function bw(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=Kj(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=zie();t.queryToTagMap.set(f,g),t.tagToQueryMap.set(g,f)}let d=jy(t.pendingWriteTree_,i),h=Lie(a,e,n,d,o,c);if(!l&&!s&&!r){let f=qj(a,e);h=h.concat(qie(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 Vj(i,e,o,n,!0)}function Hie(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=Wj(i,e,a,o?s.getNode():ve.EMPTY_NODE,o);return Die(c)}function Md(t,e){return Xj(e,t.syncPointTree_,null,jy(t.pendingWriteTree_,Ve()))}function Xj(t,e,n,r){if(we(t.path))return Qj(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=Bj(r,s);o=o.concat(Xj(a,c,l,d))}return i&&(o=o.concat(rb(i,t,r,n))),o}}function Qj(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=Bj(r,s),d=t.operationForChild(s);d&&(o=o.concat(Qj(d,a,c,l)))}),i&&(o=o.concat(rb(i,t,r,n))),o}function Jj(t,e){let n=e.query,r=Qp(t,n);return{hashFn:()=>(Cie(e)||ve.EMPTY_NODE).hash(),onComplete:i=>{if(i==="ok")return r?Gie(t,n._path,r):Bie(t,n._path);{let o=rre(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 ob(t,e){return t.tagToQueryMap.get(e)}function sb(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 ab(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 rb(r,n,i,null)}function $ie(t){return t.fold((e,n,r)=>{if(n&&ta(n))return[Hy(n)];{let i=[];return n&&(i=zj(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 Wie(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 zie(){return Fie++}function qie(t,e,n){let r=e._path,i=Qp(t,e),o=Jj(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(zj(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 Ow=class t{constructor(e){this.node_=e}getImmediateChild(e){let n=this.node_.getImmediateChild(e);return new t(n)}node(){return this.node_}},Mw=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_)}},Kie=function(t){return t=t||{},t.timestamp=t.timestamp||new Date().getTime(),t},tj=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 Yie(t[".sv"],e,n);if(typeof t[".sv"]=="object")return Xie(t[".sv"],e);q(!1,"Unexpected server value: "+JSON.stringify(t,null,2))},Yie=function(t,e,n){if(t==="timestamp")return n.timestamp;q(!1,"Unexpected server value: "+t)},Xie=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},Zj=function(t,e,n,r){return lb(e,new Mw(n,t),r)},cb=function(t,e,n){return lb(t,new Ow(e),n)};function lb(t,e,n){let r=t.getPriority().val(),i=tj(r,e.getImmediateChild(".priority"),n),o;if(t.isLeafNode()){let s=t,a=tj(s.getValue(),e,n);return a!==s.getValue()||i!==s.getPriority().val()?new Sd(a,At(i)):t}else{let s=t;return o=s,i!==s.getPriority().val()&&(o=o.updatePriority(new Sd(i))),s.forEachChild(ft,(a,c)=>{let l=lb(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 ub(t,e){t.node.value=e,Lw(t)}function eH(t){return t.node.childCount>0}function Qie(t){return ll(t)===void 0&&!eH(t)}function qy(t,e){dn(t.node.children,(n,r)=>{e(new Jp(n,t,r))})}function tH(t,e,n,r){n&&!r&&e(t),qy(t,i=>{tH(i,e,!0,r)}),n&&r&&e(t)}function Jie(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 Lw(t){t.parent!==null&&Zie(t.parent,t.name,t)}function Zie(t,e,n){let r=Qie(n),i=Vr(t.node.children,e);r&&i?(delete t.node.children[e],t.node.childCount--,Lw(t)):!r&&!i&&(t.node.children[e]=n.node,t.node.childCount++,Lw(t))}var eoe=/[\[\].#$\/\u0000-\u001F\u007F]/,toe=/[\[\].#$\u0000-\u001F\u007F]/,WN=10*1024*1024,Ky=function(t){return typeof t=="string"&&t.length!==0&&!eoe.test(t)},nH=function(t){return typeof t=="string"&&t.length!==0&&!toe.test(t)},noe=function(t){return t&&(t=t.replace(/^\/*\.info(\/|$)/,"/")),nH(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 iw(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>WN/3&&mp(e)>WN)throw new Error(t+"contains a string greater than "+WN+" 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 "]"`);Mre(r,s),ag(t,a,r),Lre(r)}),i&&o)throw new Error(t+' contains ".value" child '+Qc(r)+" in addition to actual children.")}},roe=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(Ore);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}},rH=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)),Kw(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)}),roe(i,o)},ioe=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).")}},iH=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 "]").`)},db=function(t,e,n,r){if(!(r&&n===void 0)&&!nH(n))throw new Error(Us(t,e)+'was an invalid path = "'+n+`". Paths must be non-empty strings and can't contain ".", "#", "$", "[", or "]"`)},ooe=function(t,e,n,r){n&&(n=n.replace(/^\/*\.info(\/|$)/,"/")),db(t,e,n,r)},Xs=function(t,e){if(Ne(e)===".info")throw new Error(t+" failed = Can't modify data under /.info/")},soe=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&&!noe(n))throw new Error(Us(t,"url")+`must be a valid firebase URL and the path can't contain ".", "#", "$", "[", or "]".`)};var Pw=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&&!Yw(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 oH(t,e,n){Yy(t,n),sH(t,r=>Yw(r,e))}function vr(t,e,n){Yy(t,n),sH(t,r=>jr(r,e)||jr(e,r))}function sH(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)?(aoe(t.eventLists_[r]),t.eventLists_[r]=null):n=!1}}n&&(t.eventLists_=[]),t.recursionDepth_--}function aoe(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()),bd(r)}}}var coe="repo_interrupt",loe=25,xw=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 Pw,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 uoe(t,e,n){if(t.stats_=qw(t.repoInfo_),t.forceRestClient_||are())t.server_=new pw(t.repoInfo_,(r,i,o,s)=>{nj(t,r,i,o,s)},t.authTokenProvider_,t.appCheckProvider_),setTimeout(()=>rj(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 Xw(t.repoInfo_,e,(r,i,o,s)=>{nj(t,r,i,o,s)},r=>{rj(t,r)},r=>{doe(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_=lre(t.repoInfo_,()=>new Tw(t.stats_,t.server_)),t.infoData_=new gw,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:()=>{}}),hb(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 aH(t){let n=t.infoData_.getNode(new Be(".info/serverTimeOffset")).val()||0;return new Date().getTime()+n}function cg(t){return Kie({timestamp:aH(t)})}function nj(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=jie(t.serverSyncTree_,o,c,i)}else{let c=At(n);s=Yj(t.serverSyncTree_,o,c,i)}else if(r){let c=pp(n,l=>At(l));s=Vie(t.serverSyncTree_,o,c)}else{let c=At(n);s=og(t.serverSyncTree_,o,c)}let a=o;s.length>0&&(a=Nd(t,o)),vr(t.eventQueue_,a,s)}function rj(t,e){hb(t,"connected",e),e===!1&&goe(t)}function doe(t,e){dn(e,(n,r)=>{hb(t,n,r)})}function hb(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 hoe(t,e,n){let r=Hie(t.serverSyncTree_,e);return r!=null?Promise.resolve(r):t.server_.get(e).then(i=>{let o=At(i).withIndex(e._queryParams.getIndex());bw(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=Yj(t.serverSyncTree_,e._path,o,a)}return vr(t.eventQueue_,e._path,s),xy(t.serverSyncTree_,e,n,null,!0),o},i=>(Ld(t,"get for query "+xt(e)+" failed: "+i),Promise.reject(new Error(i))))}function foe(t,e,n,r,i){Ld(t,"set",{path:e.toString(),value:n,priority:r});let o=cg(t),s=At(n,r),a=$y(t.serverSyncTree_,e),c=cb(s,a,o),l=Xy(t),d=ib(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=pb(t,e);Nd(t,h),vr(t.eventQueue_,h,[])}function poe(t,e,n,r){Ld(t,"update",{path:e.toString(),value:n});let i=!0,o=cg(t),s={};if(dn(n,(a,c)=>{i=!1,s[a]=Zj(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=Uie(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?Nd(t,e):e;vr(t.eventQueue_,g,f),na(t,r,l,d)}),dn(n,l=>{let d=pb(t,Ct(e,l));Nd(t,d)}),vr(t.eventQueue_,e,[])}}function goe(t){Ld(t,"onDisconnectEvents");let e=cg(t),n=Cy();Ew(t.onDisconnect_,Ve(),(i,o)=>{let s=Zj(i,o,t.serverSyncTree_,e);Od(n,i,s)});let r=[];Ew(n,Ve(),(i,o)=>{r=r.concat(og(t.serverSyncTree_,i,o));let s=pb(t,i);Nd(t,s)}),t.onDisconnect_=Cy(),vr(t.eventQueue_,Ve(),r)}function moe(t,e,n){t.server_.onDisconnectCancel(e.toString(),(r,i)=>{r==="ok"&&mw(t.onDisconnect_,e),na(t,n,r,i)})}function ij(t,e,n,r){let i=At(n);t.server_.onDisconnectPut(e.toString(),i.val(!0),(o,s)=>{o==="ok"&&Od(t.onDisconnect_,e,i),na(t,r,o,s)})}function Eoe(t,e,n,r,i){let o=At(n,r);t.server_.onDisconnectPut(e.toString(),o.val(!0),(s,a)=>{s==="ok"&&Od(t.onDisconnect_,e,o),na(t,i,s,a)})}function _oe(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);Od(t.onDisconnect_,Ct(e,s),c)}),na(t,r,i,o)})}function Toe(t,e,n){let r;Ne(e._path)===".info"?r=bw(t.infoSyncTree_,e,n):r=bw(t.serverSyncTree_,e,n),oH(t.eventQueue_,e._path,r)}function kw(t,e,n){let r;Ne(e._path)===".info"?r=xy(t.infoSyncTree_,e,n):r=xy(t.serverSyncTree_,e,n),oH(t.eventQueue_,e._path,r)}function yoe(t){t.persistentConnection_&&t.persistentConnection_.interrupt(coe)}function Ld(t,...e){let n="";t.persistentConnection_&&(n=t.persistentConnection_.id+":"),un(n,...e)}function na(t,e,n,r){e&&bd(()=>{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 Ioe(t,e,n,r,i,o){Ld(t,"transaction on "+e);let s={path:e,update:n,onComplete:r,status:null,order:cj(),applyLocally:o,retryCount:0,unwatcher:i,abortReason:null,currentWriteId:null,currentInputSnapshot:null,currentOutputSnapshotRaw:null,currentOutputSnapshotResolved:null},a=fb(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),ub(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=cb(g,a,f);s.currentOutputSnapshotRaw=g,s.currentOutputSnapshotResolved=E,s.currentWriteId=Xy(t);let I=ib(t.serverSyncTree_,e,E,s.currentWriteId,s.applyLocally);vr(t.eventQueue_,e,I),Qy(t,t.transactionQueueTree_)}}function fb(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=lH(t,e);q(n.length>0,"Sending zero length transaction queue"),n.every(i=>i.status===0)&&voe(t,sg(e),n)}else eH(e)&&qy(e,n=>{Qy(t,n)})}function voe(t,e,n){let r=n.map(l=>l.currentWriteId),i=fb(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=>{Ld(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++)bd(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}Nd(t,e)}},s)}function Nd(t,e){let n=cH(t,e),r=sg(n),i=lH(t,n);return Soe(t,i,r),r}function Soe(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>=loe)d=!0,h="maxretry",i=i.concat(Ys(t.serverSyncTree_,c.currentWriteId,!0));else{let f=fb(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=cb(E,f,L);c.currentOutputSnapshotRaw=E,c.currentOutputSnapshotResolved=V,c.currentWriteId=Xy(t),s.splice(s.indexOf(S),1),i=i.concat(ib(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++)bd(r[a]);Qy(t,t.transactionQueueTree_)}function cH(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 lH(t,e){let n=[];return uH(t,e,n),n.sort((r,i)=>r.order-i.order),n}function uH(t,e,n){let r=ll(e);if(r)for(let i=0;i<r.length;i++)n.push(r[i]);qy(e,i=>{uH(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,ub(e,n.length>0?n:void 0)}qy(e,r=>{Jy(t,r)})}function pb(t,e){let n=sg(cH(t,e)),r=zy(t.transactionQueueTree_,e);return Jie(r,i=>{zN(t,i)}),zN(t,r),tH(r,i=>{zN(t,i)}),n}function zN(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?ub(e,void 0):n.length=o+1,vr(t.eventQueue_,sg(e),i);for(let s=0;s<r.length;s++)bd(r[s])}}function Aoe(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 Coe(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 oj=function(t,e){let n=Doe(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||Jne();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)}},Doe=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=Aoe(t.substring(d,h)));let f=Coe(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 sj="-0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ_abcdefghijklmnopqrstuvwxyz",Roe=(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]=sj.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+=sj.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 Fw=class{constructor(e,n){this._repo=e,this._path=n}cancel(){let e=new cn;return moe(this._repo,this._path,e.wrapCallback(()=>{})),e.promise}remove(){Xs("OnDisconnect.remove",this._path);let e=new cn;return ij(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 ij(this._repo,this._path,e,n.wrapCallback(()=>{})),n.promise}setWithPriority(e,n){Xs("OnDisconnect.setWithPriority",this._path),rl("OnDisconnect.setWithPriority",e,this._path,!1),ioe("OnDisconnect.setWithPriority",n,!1);let r=new cn;return Eoe(this._repo,this._path,e,n,r.wrapCallback(()=>{})),r.promise}update(e){Xs("OnDisconnect.update",this._path),rH("OnDisconnect.update",e,this._path,!1);let n=new cn;return _oe(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:Kw(this._path)}get ref(){return new hi(this._repo,this._path)}get _queryIdentifier(){let e=W2(this._queryParams),n=zw(e);return n==="{}"?"default":n}get _queryObject(){return W2(this._queryParams)}isEqual(e){if(e=Me(e),!(e instanceof t))return!1;let n=this._repo===e._repo,r=Yw(this._path,e._path),i=this._queryIdentifier===e._queryIdentifier;return n&&r&&i}toJSON(){return this.toString()}toString(){return this._repo.toString()+bre(this._path)}};function Noe(t,e){if(t._orderByCalled===!0)throw new Error(e+": You can't combine multiple orderBy calls.")}function gb(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()===Pj,"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 dH(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 fw,!1)}get parent(){let e=Nj(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}},wd=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 hH(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?ooe("child","path",e,!1):db("child","path",e,!1),new hi(t._repo,Ct(t._path,e))}function fH(t){return t=Me(t),new Fw(t._repo,t._path)}function pH(t,e){t=Me(t),Xs("push",t._path),rl("push",e,t._path,!0);let n=aH(t._repo),r=Roe(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 gH(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 foe(t._repo,t._path,e,null,n.wrapCallback(()=>{})),n.promise}function mH(t,e){rH("update",e,t._path,!1);let n=new cn;return poe(t._repo,t._path,e,n.wrapCallback(()=>{})),n.promise}function eI(t){t=Me(t);let e=new eg(()=>{}),n=new tg(e);return hoe(t._repo,t,n).then(r=>new wd(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 wd(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 wd(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)=>{kw(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 Toe(t._repo,t,a),()=>kw(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 mb(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)),kw(t._repo,t,r)}var sl=class{},Uw=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=Kre(e._queryParams,this._value,this._key);if(dH(n),gb(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=qre(e._queryParams,this._value,this._key);if(dH(n),gb(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 EH(t=null,e){return iH("startAt","key",e,!0),new Vy(t,e)}var Vw=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,zre(e._queryParams,this._limit),e._orderByCalled)}};function _H(t){if(typeof t!="number"||Math.floor(t)!==t||t<=0)throw new Error("limitToLast: First argument must be a positive integer.");return new Vw(t)}var Bw=class extends sl{constructor(e){super(),this._path=e,this.type="orderByChild"}_apply(e){Noe(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=Yre(e._queryParams,r);return gb(i),new il(e._repo,e._path,i,!0)}};function TH(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 db("orderByChild","path",t,!1),new Bw(t)}var Gw=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 Uw(this._value,this._key)._apply(new Vy(this._value,this._key)._apply(e))}};function yH(t,e){return iH("equalTo","key",e,!0),new Gw(t,e)}function IH(t,...e){let n=Me(t);for(let r of e)n=r._apply(n);return n}bie(hi);xie(hi);var woe="FIREBASE_DATABASE_EMULATOR_HOST",jw={},boe=!1;function Ooe(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 Moe(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=oj(o,i),a=s.repoInfo,c,l;typeof process<"u"&&process.env&&(l=process.env[woe]),l?(c=!0,o=`http://${l}?ns=${a.namespace}`,s=oj(o,i),a=s.repoInfo):c=!s.repoInfo.secure;let d=i&&c?new Bp(Bp.OWNER):new JN(t.name,t.options,e);soe("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=Poe(a,t,d,new QN(t,n));return new Hw(h,t)}function Loe(t,e){let n=jw[e];(!n||n[t.key]!==t)&&Wo(`Database ${e}(${t.repoInfo_}) has already been deleted.`),yoe(t),delete n[t.key]}function Poe(t,e,n,r){let i=jw[e.name];i||(i={},jw[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 xw(t,boe,n,r),i[t.toURLString()]=o,o}var Hw=class{constructor(e,n){this._repoInternal=e,this.app=n,this.type="database",this._instanceStarted=!1}get _repo(){return this._instanceStarted||(uoe(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&&(Loe(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 xoe(){Rj.IS_TRANSPORT_INITIALIZED&&xn("Transport has already been initialized. Please call this function before calling ref or setting up a listener")}function Eb(){xoe(),Td.forceDisallow(),Ey.forceAllow()}function Pd(t=er(),e){let n=Xi(t,"database").getImmediate({identifier:e});if(!n._instanceStarted){let r=ld("database");r&&vH(n,...r)}return n}function vH(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)),Ooe(o,i,r,s)}function koe(t){Xne(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 Moe(r,i,o,n)},"PUBLIC").setMultipleInstances(!0)),Ge(N2,w2,t),Ge(N2,w2,"esm2017")}var $w=class{constructor(e,n){this.committed=e,this.snapshot=n}toJSON(){return{committed:this.committed,snapshot:this.snapshot.toJSON()}}};function SH(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 wd(d,new hi(t._repo,t._path),ft),o.resolve(new $w(l,h)))},a=ug(t,()=>{});return Ioe(t._repo,t._path,e,s,a,i),o.promise}Xw.prototype.simpleListen=function(t,e){this.sendRequest("q",{p:t},e)};Xw.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||{}),Foe=Object.freeze((ul={},ul[hn.added]=tI,ul[hn.removed]=rI,ul[hn.changed]=nI,ul[hn.moved]=mb,ul[hn.value]=ug,ul));function sI(t,e){return new fe(function(n){var r=Foe[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 _b(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 AH(t){return(t==null||t.length===0)&&(t=[hn.added,hn.removed,hn.changed,hn.moved]),t}function CH(t,e){return e===void 0&&(e={}),sI(t,hn.value).pipe(De(function(n){return Tb(n,e)}))}function Tb(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 DH(t,e){e===void 0&&(e={});var n=AH(e.events),r=n.map(function(i){return sI(t,i)});return gs.apply(void 0,r)}function Uoe(t){return cr(eI(t)).pipe(De(function(e){var n=hn.value;return{snapshot:e,prevKey:null,event:n}}))}function RH(t,e){e===void 0&&(e={});var n=AH(e.events);return Uoe(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(Boe,[]))}),yo())}function NH(t,e){return e===void 0&&(e={}),RH(t).pipe(De(function(n){return n.map(function(r){return Tb(r,e)})}))}function wH(t,e){for(var n=t.length,r=0;r<n;r++)if(t[r].snapshot.key===e)return r;return-1}function Voe(t,e){if(e==null)return 0;var n=wH(t,e);return n===-1?t.length:n+1}function Boe(t,e){var n=e.snapshot,r=e.prevKey,i=e.event,o=n.key,s=wH(t,o),a=Voe(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=_b(_b([],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 _b([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}},bH="database",yb=class{constructor(){return Go(bH)}};var Ib=new z("angularfire2.database-instances");function Goe(t,e){let n=Gs(bH,t,e);return n&&new dg(n)}function joe(t){return(e,n)=>{let r=e.runOutsideAngular(()=>t(n));return new dg(r)}}var Hoe={provide:yb,deps:[[new zt,Ib]]},$oe={provide:dg,useFactory:Goe,deps:[[new zt,Ib],ci]};function oFe(t,...e){return Ge("angularfire",si.full,"rtdb"),Xn([$oe,Hoe,{provide:Ib,useFactory:joe(t),multi:!0,deps:[Ae,ze,ai,jo,[new zt,$c],[new zt,Hs],...e]}])}var OH=ue(NH,!0);var MH=ue(CH,!0),LH=ue(DH,!0);var sFe=ue(yH,!0,2);var hg=ue(eI,!0),aFe=ue(Pd,!0);var cFe=ue(_H,!0,2),PH=ue(iI,!0),xH=ue(tI,!0),kH=ue(nI,!0);var FH=ue(rI,!0),UH=ue(fH,!0),vb=ue(ug,!0),lFe=ue(TH,!0,2);var VH=ue(pH,!0,2),BH=ue(IH,!0,2),xd=ue(hH,!0,2);var GH=ue(gH,!0,2),jH=ue(SH,!0),HH=ue(Zy,!0,2);var uFe=ue(EH,!0,2),$H=ue(mH,!0,2);var WH=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},zH={};var zo,Sb;(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,Sb=zH.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=zH.Integer=s}).apply(typeof WH<"u"?WH: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 Ab,Woe,kd,Cb,fg,cI,Db,Rb,Nb;(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,Fl=()=>{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 Ul(u){u.da=!0,u.listener=null,u.proxy=null,u.src=null,u.ha=null}function Vl(u){this.src=u,this.g={},this.h=0}Vl.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 Bl(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&&(Ul(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 Gl="closure_lm_"+(1e6*Math.random()|0),Je={};function jl(u,p,m,_,b){if(_&&_.once)return sr(u,p,m,_,b);if(Array.isArray(p)){for(var k=0;k<p.length;k++)jl(u,p[k],m,_,b);return null}return m=Wl(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[Gl]=it=new Vl(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=Wl(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=Wl(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&&(Ul(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)&&Hl(m))}function Hl(u){if(typeof u!="number"&&u&&!u.da){var p=u.src;if(p&&p[Na])Bl(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))?(Bl(m,u),m.h==0&&(m.src=null,p[Gl]=null)):Ul(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&&Hl(u),u=m.call(_,p)}return u}function wa(u){return u=u[Gl],u instanceof Vl?u:null}var $l="__closure_events_fn_"+(1e9*Math.random()>>>0);function Wl(u){return typeof u=="function"?u:(u[$l]||(u[$l]=function(p){return u.handleEvent(p)}),u[$l])}function dt(){_i.call(this),this.i=new Vl(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;_++)Ul(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&&Bl(u.i,X),b=it.call(gn,_)!==!1&&b}}return b&&!_.defaultPrevented}function zl(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=zl(()=>{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 ql 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)&&Hl(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 Kl(){}Kl.prototype.h=null;function Yl(u){return u.h||(u.h=u.i())}function Xl(){}var br={OPEN:"a",kb:"b",Ja:"c",wb:"d"};function Ti(){nn.call(this,"d")}E(Ti,nn);function Ql(){nn.call(this,"c")}E(Ql,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}},Eh=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 p0=class{constructor(){this.ya=void 0,this.wa=[]}Sa(){return this.wa.some(e=>e.ba())}},g0=class{constructor(){this.queries=Q$(),this.onlineState="Unknown",this.Da=new Set}terminate(){(function(n,r){let i=se(n),o=i.queries;i.queries=Q$(),o.forEach((s,a)=>{for(let c of a.wa)c.onError(r)})})(this,new j(x.ABORTED,"Firestore shutting down"))}};function Q$(){return new pi(t=>$3(t),Cv)}function hM(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 p0,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=dM(s,`Initialization of query '${$d(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)&&pM(n)})}function fM(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 Iae(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&&pM(n)}function vae(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 pM(t){t.Da.forEach(e=>{e.next()})}var m0,J$;(J$=m0||(m0={})).Fa="default",J$.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 Eh(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=Eh.fromInitialDocuments(e.query,e.docs,e.mutatedKeys,e.fromCache,e.hasCachedResults),this.xa=!0,this.Ma.next(e)}ba(){return this.options.source!==m0.Cache}};var cv=class{constructor(e){this.key=e}},lv=class{constructor(e){this.key=e}},E0=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=z3(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 Eh(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 Eh.fromInitialDocuments(this.query,this.eu,this.mutatedKeys,this.Ya===0,this.hasCachedResults)}},Ch="SyncEngine",_0=class{constructor(e,n,r){this.query=e,this.targetId=n,this.view=r}},T0=class{constructor(e){this.key=e,this.lu=!1}},y0=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=>$3(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=ph.ur(),this.onlineState="Unknown",this.fu=void 0}get isPrimaryClient(){return this.fu===!0}};function Sae(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 jW(r,e,n,!0),i})}function Aae(t,e){return y(this,null,function*(){let n=wv(t);yield jW(n,e,!0,!1)})}function jW(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 gM(t,e,o,s==="current",i.resumeToken)),t.isPrimaryClient&&n&&Nv(t.remoteStore,i),a})}function gM(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 ZO(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 I0(I,S.targetId,te._u),te.snapshot})})(t,h,f,g);let o=yield ZO(t.localStore,e,!0),s=new E0(e,o.qs),a=s.nu(o.documents),c=$g.createSynthesizedTargetChangeForCurrentChange(n,r&&t.onlineState!=="Offline",i),l=s.applyChanges(a,t.isPrimaryClient,c);I0(t,n,l._u);let d=new _0(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 Cae(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 gh(r.localStore,i.targetId,!1).then(()=>{r.sharedClientState.clearQueryState(i.targetId),n&&mh(r.remoteStore,i.targetId),_h(r,i.targetId)}).catch(va))):(_h(r,i.targetId),yield gh(r.localStore,i.targetId,!0))})}function Dae(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),mh(n.remoteStore,r.targetId))})}function Rae(t,e,n){return y(this,null,function*(){let r=TM(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=Vse(V,h.get(V.key).overlayedDocument);K!=null&&L.push(new gi(V.key,K,k3(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:K3(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 Sh(r.remoteStore)}catch(i){let o=dM(i,"Failed to persist write");n.reject(o)}})}function HW(t,e){return y(this,null,function*(){let n=se(t);try{let r=yield aae(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 Z$(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&&pM(c)})(r.eventManager,e),i.length&&r.hu.J_(i),r.onlineState=e,r.isPrimaryClient&&r.sharedClientState.setOnlineState(e)}}function Nae(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 HW(r,c),r.du=r.du.remove(o),r.Eu.delete(e),_M(r)}else yield gh(r.localStore,e,!1).then(()=>_h(r,e,n)).catch(va)})}function wae(t,e){return y(this,null,function*(){let n=se(t),r=e.batch.batchId;try{let i=yield sae(n.localStore,e);EM(n,r,null),mM(n,r),n.sharedClientState.updateMutationState(r,"acknowledged"),yield Ca(n,i)}catch(i){yield va(i)}})}function bae(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);EM(r,e,n),mM(r,e),r.sharedClientState.updateMutationState(e,"rejected",n),yield Ca(r,i)}catch(i){yield va(i)}})}function mM(t,e){(t.Vu.get(e)||[]).forEach(n=>{n.resolve()}),t.Vu.delete(e)}function EM(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 _h(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)||$W(t,r)})}function $W(t,e){t.Iu.delete(e.path.canonicalString());let n=t.du.get(e);n!==null&&(mh(t.remoteStore,n),t.du=t.du.remove(e),t.Eu.delete(n),_M(t))}function I0(t,e,n){for(let r of n)r instanceof cv?(t.Au.addReference(r.key,e),Oae(t,r)):r instanceof lv?(H(Ch,"Document no longer in limbo: "+r.key),t.Au.removeReference(r.key,e),t.Au.containsKey(r.key)||$W(t,r.key)):re(19791,{yu:r})}function Oae(t,e){let n=e.key,r=n.path.canonicalString();t.du.get(n)||t.Iu.has(r)||(H(Ch,"New document in limbo: "+n),t.Iu.add(r),_M(t))}function _M(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 T0(n)),t.du=t.du.insert(n,r),Nv(t.remoteStore,new fh(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=XO.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(aM,"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 Mae(t,e){return y(this,null,function*(){let n=se(t);if(!n.currentUser.isEqual(e)){H(Ch,"User change. New user:",e.toKey());let r=yield NW(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 Lae(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 Pae(t,e){return y(this,null,function*(){let n=se(t),r=yield ZO(n.localStore,e.query,!0),i=e.view.uu(r);return n.isPrimaryClient&&I0(n,e.targetId,i._u),i})}function xae(t,e){return y(this,null,function*(){let n=se(t);return OW(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 Sh(i.remoteStore):n==="acknowledged"||n==="rejected"?(EM(i,e,r||null),mM(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(Ch,"Cannot apply mutation batch with id: "+e)})}function Fae(t,e){return y(this,null,function*(){let n=se(t);if(wv(n),TM(n),e===!0&&n.fu!==!0){let r=n.sharedClientState.getAllActiveQueryTargets(),i=yield e3(n,r.toArray());n.fu=!0,yield h0(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(()=>(_h(n,s),gh(n.localStore,s,!0))),mh(n.remoteStore,s)}),yield i,yield e3(n,r),(function(s){let a=se(s);a.Eu.forEach((c,l)=>{mh(a.remoteStore,l)}),a.Au.jr(),a.Eu=new Map,a.du=new pt(Z.comparator)})(n),n.fu=!1,yield h0(n.remoteStore,!1)}})}function e3(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 Pae(r,d);h.snapshot&&o.push(h.snapshot)}}else{let l=yield bW(r.localStore,s);a=yield ZI(r.localStore,l),yield gM(r,WW(l),s,!1,a.resumeToken)}i.push(a)}return r.hu.J_(o),i})}function WW(t){return j3(t.path,t.collectionGroup,t.orderBy,t.filters,t.limit,"F",t.startAt,t.endAt)}function Uae(t){return(function(n){return se(se(n).persistence).Ps()})(se(t).localStore)}function Vae(t,e,n,r){return y(this,null,function*(){let i=se(t);if(i.fu)return void H(Ch,"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 OW(i.localStore,W3(o[0])),a=Hg.createSynthesizedRemoteEventForCurrentChange(e,n==="current",Gt.EMPTY_BYTE_STRING);yield Ca(i,s,a);break}case"rejected":yield gh(i.localStore,e,!0),_h(i,e,r);break;default:re(64155,n)}})}function Bae(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(Ch,"Adding an already active target "+i);continue}let o=yield bW(r.localStore,i),s=yield ZI(r.localStore,o);yield gM(r,WW(o),s.targetId,!1,s.resumeToken),Nv(r.remoteStore,s)}for(let i of n)r.Tu.has(i)&&(yield gh(r.localStore,i,!1).then(()=>{mh(r.remoteStore,i),_h(r,i)}).catch(va))}})}function wv(t){let e=se(t);return e.remoteStore.remoteSyncer.applyRemoteEvent=HW.bind(null,e),e.remoteStore.remoteSyncer.getRemoteKeysForTarget=Lae.bind(null,e),e.remoteStore.remoteSyncer.rejectListen=Nae.bind(null,e),e.hu.J_=Iae.bind(null,e.eventManager),e.hu.pu=vae.bind(null,e.eventManager),e}function TM(t){let e=se(t);return e.remoteStore.remoteSyncer.applySuccessfulWrite=wae.bind(null,e),e.remoteStore.remoteSyncer.rejectFailedWrite=bae.bind(null,e),e}var yM=(()=>{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 RW(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})(),v0=class extends yM{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 yM{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 TM(this.Mu.syncEngine),yield Sh(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 RW(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 qb(n,this.persistence);return new zb(e.asyncQueue,r)}Du(e){let n=DW(e.databaseInfo.databaseId,e.databaseInfo.persistenceKey),r=this.cacheSizeBytes!==void 0?rr.withCacheSize(this.cacheSizeBytes):rr.DEFAULT;return new YO(this.synchronizeTabs,n,e.clientId,r,e.asyncQueue,kW(),II(),this.serializer,this.sharedClientState,!!this.forceOwnership)}bu(e){return new nv}},S0=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:Vae.bind(null,n),Co:Bae.bind(null,n),Ps:Uae.bind(null,n),bo:xae.bind(null,n)},yield this.sharedClientState.start()),yield this.persistence.ji(r=>y(this,null,function*(){yield Fae(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=kW();if(!Ng.C(n))throw new j(x.UNIMPLEMENTED,"IndexedDB persistence is only available on platforms that support LocalStorage.");let r=DW(e.databaseInfo.databaseId,e.databaseInfo.persistenceKey);return new Ng(n,e.asyncQueue,r,e.clientId,e.initialUser)}},IM=(()=>{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=>Z$(this.syncEngine,i,1),this.remoteStore.remoteSyncer.handleCredentialChange=Mae.bind(null,this.syncEngine),yield h0(this.remoteStore,this.syncEngine.isPrimaryClient))})}createEventManager(n){return(function(){return new g0})()}createDatastore(n){let r=Dv(n.databaseInfo.databaseId),i=(function(s){return new o0(s)})(n.databaseInfo);return(function(s,a,c,l){return new l0(s,a,c,l)})(n.authCredentials,n.appCheckCredentials,i,r)}createRemoteStore(n){return(function(i,o,s,a,c){return new d0(i,o,s,a,c)})(this.localStore,this.datastore,n.asyncQueue,r=>Z$(this.syncEngine,r,0),(function(){return rv.C()?new rv:new t0})())}createSyncEngine(n,r){return(function(o,s,a,c,l,d,h){let f=new y0(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 A0=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=zse(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 C0=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 A0(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"||!rW(n)}return!1}};var Ia="FirestoreClient",D0=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=dM(n,"Failed to shutdown persistence");e.reject(r)}})),e.promise}};function xb(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 NW(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 t3(t,e){return y(this,null,function*(){t.asyncQueue.verifyOperationInProgress();let n=yield Gae(t);H(Ia,"Initializing OnlineComponentProvider"),yield e.initialize(n,t.configuration),t.setCredentialChangeListener(r=>X$(e.remoteStore,r)),t.setAppCheckTokenChangeListener((r,i)=>X$(e.remoteStore,i)),t._onlineComponents=e})}function Gae(t){return y(this,null,function*(){if(!t._offlineComponents)if(t._uninitializedComponentsProvider){H(Ia,"Using user provided OfflineComponentProvider");try{yield xb(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 xb(t,new yM)}}else H(Ia,"Using default OfflineComponentProvider"),yield xb(t,new v0(void 0));return t._offlineComponents})}function vM(t){return y(this,null,function*(){return t._onlineComponents||(t._uninitializedComponentsProvider?(H(Ia,"Using user provided OnlineComponentProvider"),yield t3(t,t._uninitializedComponentsProvider._online)):(H(Ia,"Using default OnlineComponentProvider"),yield t3(t,new IM))),t._onlineComponents})}function jae(t){return vM(t).then(e=>e.syncEngine)}function zW(t){return vM(t).then(e=>e.datastore)}function dv(t){return y(this,null,function*(){let e=yield vM(t),n=e.eventManager;return n.onListen=Sae.bind(null,e.syncEngine),n.onUnlisten=Cae.bind(null,e.syncEngine),n.onFirstRemoteStoreListen=Aae.bind(null,e.syncEngine),n.onLastRemoteStoreUnlisten=Dae.bind(null,e.syncEngine),n})}function Hae(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(()=>fM(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 hM(o,h)})(yield dv(t),t.asyncQueue,e,n,r)})),r.promise}function $ae(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(()=>fM(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 hM(o,h)})(yield dv(t),t.asyncQueue,e,n,r)})),r.promise}function Wae(t,e,n){let r=new ir;return t.asyncQueue.enqueueAndForget(()=>y(null,null,function*(){try{let i=yield zW(t);r.resolve((function(s,a,c){return y(this,null,function*(){var l;let d=se(s),{request:h,ft:f,parent:g}=Yse(d.serializer,Nse(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 qW(t){let e={};return t.timeoutSeconds!==void 0&&(e.timeoutSeconds=t.timeoutSeconds),e}var n3=new Map;var KW="firestore.googleapis.com",r3=!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=KW,this.ssl=r3}else this.host=e.host,this.ssl=(n=e.ssl)!==null&&n!==void 0?n:r3;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=TW;else{if(e.cacheSizeBytes!==-1&&e.cacheSizeBytes<SW)throw new j(x.INVALID_ARGUMENT,"cacheSizeBytes must be at least 1048576");this.cacheSizeBytes=e.cacheSizeBytes}Yoe("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=qW((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 kb;switch(r.type){case"firstParty":return new Bb(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=n3.get(n);r&&(H("ComponentProvider","Removing Datastore"),n3.delete(n),r.terminate())})(this),Promise.resolve()}};function YW(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!==KW&&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 Fb(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 XW(t,e,...n){if(t=Me(t),W0("collection","path",e),t instanceof Ll){let r=ke.fromString(e,...n);return JH(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 JH(r),new ua(t.firestore,null,r)}}function QW(t,e){if(t=or(t,Ll),W0("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 JW(t,e,...n){if(t=Me(t),arguments.length===1&&(e=wg.newId()),W0("doc","path",e),t instanceof Ll){let r=ke.fromString(e,...n);return QH(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 QH(r),new en(t.firestore,t instanceof ua?t.converter:null,new Z(r))}}var i3="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(i3,"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(i3,"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: ",o3(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=f0.createAndSchedule(this,e,n,r,o=>this.lc(o));return this.ec.push(i),i}ac(){this.tc&&re(47125,{hc:o3(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 o3(t){let e=t.message||"";return t.stack&&(e=t.stack.includes(t.message)?t.stack:t.message+`
174
- `+t.stack),e}function s3(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<SW)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 Dh(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=ld("firestore");o&&YW(i,...o)}return i}function Rh(t){if(t._terminated)throw new j(x.FAILED_PRECONDITION,"The client has already been terminated.");return t._firestoreClient||zae(t),t._firestoreClient}function zae(t){var e,n,r;let i=t._freezeSettings(),o=(function(a,c,l,d){return new Qb(a,c,l,d.host,d.ssl,d.experimentalForceLongPolling,d.experimentalAutoDetectLongPolling,qW(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 D0(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 R0=class{constructor(e="count",n){this._internalFieldPath=n,this.type="AggregateField",this.aggregateType=e}},N0=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 Th=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 qae=/^__.*__$/,w0=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 ZW(t){switch(t){case 0:case 2:case 1:return!0;case 3:case 4:return!1;default:throw re(40011,{Ec:t})}}var b0=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(ZW(this.Ec)&&qae.test(e))throw this.wc('Document fields cannot begin and end with "__"')}},O0=class{constructor(e,n,r){this.databaseId=e,this.ignoreUndefinedProperties=n,this.serializer=r||Dv(e)}Dc(e,n,r,i=!1){return new b0({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 O0(t._databaseId,!!e.ignoreUndefinedProperties,n)}function e6(t,e,n,r,i,o={}){let s=t.Dc(o.merge||o.mergeFields?2:0,e,n,i);SM("Data must be an object, but it was:",s,r);let a=n6(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=M0(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.`);i6(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 w0(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 Kae(t,e,n,r){let i=t.Dc(1,e,n);SM("Data must be an object, but it was:",i,r);let o=[],s=Fn.empty();Aa(r,(c,l)=>{let d=AM(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 Yae(t,e,n,r,i,o){let s=t.Dc(1,e,n),a=[M0(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(M0(e,o[f])),c.push(o[f+1]);let l=[],d=Fn.empty();for(let f=a.length-1;f>=0;--f)if(!i6(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 t6(t,e,n,r=!1){return um(n,t.Dc(r?4:3,e))}function um(t,e){if(r6(t=Me(t)))return SM("Unsupported field value:",e,t),n6(t,e);if(t instanceof em)return(function(r,i){if(!ZW(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 Pse(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:hh(i.serializer,o)}}if(r instanceof Tt){let o=new Tt(r.seconds,1e3*Math.floor(r.nanoseconds/1e3));return{timestampValue:hh(i.serializer,o)}}if(r instanceof da)return{geoPointValue:{latitude:r.latitude,longitude:r.longitude}};if(r instanceof Xo)return{bytesValue:oW(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:iM(r.firestore._databaseId||i.databaseId,r._key.path)}}if(r instanceof ha)return(function(s,a){return{mapValue:{fields:{[J0]:{stringValue:Z0},[ah]:{arrayValue:{values:s.toArray().map(l=>{if(typeof l!="number")throw a.wc("VectorValues must only contain numeric values.");return rM(a.serializer,l)})}}}}}})(r,i);throw i.wc(`Unsupported field value: ${_v(r)}`)})(t,e)}function n6(t,e){let n={};return N3(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 r6(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 SM(t,e,n){if(!r6(n)||!h3(n)){let r=_v(n);throw r==="an object"?e.wc(t+" a custom object"):e.wc(t+" "+r)}}function M0(t,e,n){if((e=Me(e))instanceof Th)return e._internalPath;if(typeof e=="string")return AM(t,e);throw mv("Field path arguments must be of type string or ",t,!1,void 0,n)}var Xae=new RegExp("[~\\*/\\[\\]]");function AM(t,e,n){if(e.search(Xae)>=0)throw mv(`Invalid field path (${e}). Paths must not contain '~', '*', '/', '[', or ']'`,t,!1,void 0,n);try{return new Th(...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 i6(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 L0(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)}}},L0=class extends Pl{data(){return super.data()}};function Mv(t,e){return typeof e=="string"?AM(t,e):e instanceof Th?e._internalPath:e._delegate._internalPath}function o6(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{},yh=class extends tm{};function s6(t,e,...n){let r=[];e instanceof tm&&r.push(e),r=r.concat(n),(function(o){let s=o.filter(c=>c instanceof Ih).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 yh{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 f6(e._query,n),new mi(e.firestore,e.converter,uO(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"){c3(h,d);let E=[];for(let I of h)E.push(a3(c,o,I));f={arrayValue:{values:E}}}else f=a3(c,o,h)}else d!=="in"&&d!=="not-in"&&d!=="array-contains-any"||c3(h,d),f=t6(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 a6(t,e,n){let r=e,i=Mv("where",t);return nm._create(i,r,n)}var Ih=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)f6(s,c),s=uO(s,c)})(e._query,n),new mi(e.firestore,e.converter,uO(e._query,n)))}_getQueryConstraints(){return this._queryConstraints}_getOperator(){return this.type==="and"?"and":"or"}};function c6(...t){return t.forEach(e=>p6("or",e)),Ih._create("or",t)}function l6(...t){return t.forEach(e=>p6("and",e)),Ih._create("and",t)}var P0=class t extends yh{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 u6(t,e="asc"){let n=e,r=Mv("orderBy",t);return P0._create(r,n)}var x0=class t extends yh{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 d6(t){return Xoe("limit",t),x0._create("limit",t,"F")}var k0=class t extends yh{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=Qae(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 h6(...t){return k0._create("startAfter",t,!1)}function Qae(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 Yd(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(!tM(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=t6(c,l,I);g.push(S)}}return new so(g,h)})(t._query,t.firestore._databaseId,i,e,n,r)}}function a3(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(!tM(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 c3(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 f6(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 p6(t,e){if(!(e instanceof nm||e instanceof Ih))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[ah].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(pW(r),9688,{name:e});let i=new sh(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 g6(t,e,n){let r;return r=t?n&&(n.merge||n.mergeFields)?t.toFirestore(e,n):t.toFirestore(e):e,r}var F0=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 Jae(){return new R0("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 Qd(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 Qd=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 Qd(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 Qd(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 Qd(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:Zae(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 Zae(t){switch(t){case 0:return"added";case 2:case 3:return"modified";case 1:return"removed";default:return re(61501,{type:t})}}function m6(t){t=or(t,en);let e=or(t.firestore,Ei);return Hae(Rh(e),t._key).then(n=>v6(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 E6(t){t=or(t,mi);let e=or(t.firestore,Ei),n=Rh(e),r=new xl(e);return o6(t._query),$ae(n,t._query).then(i=>new Sl(e,r,t,i))}function _6(t,e,n){t=or(t,en);let r=or(t.firestore,Ei),i=g6(t.converter,e,n);return I6(r,[e6(Ov(r),"setDoc",t._key,i,t.converter!==null,n).toMutation(t._key,yn.none())])}function T6(t){return I6(or(t.firestore,Ei),[new wl(t._key,yn.none())])}function y6(t,...e){var n,r,i;t=Me(t);let o={includeMetadataChanges:!1,source:"default"},s=0;typeof e[s]!="object"||s3(e[s])||(o=e[s++]);let a={includeMetadataChanges:o.includeMetadataChanges,source:o.source};if(s3(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](v6(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]},o6(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 hM(yield dv(f),L)})),()=>{S.Ou(),f.asyncQueue.enqueueAndForget(()=>y(null,null,function*(){return fM(yield dv(f),L)}))}})(Rh(l),d,a,c)}function I6(t,e){return(function(r,i){let o=new ir;return r.asyncQueue.enqueueAndForget(()=>y(null,null,function*(){return Rae(yield jae(r),i,o)})),o.promise})(Rh(t),e)}function v6(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 S6(t){return A6(t,{count:Jae()})}function A6(t,e){let n=or(t.firestore,Ei),r=Rh(n),i=Sse(e,(o,s)=>new pO(s,o.aggregateType,o._internalFieldPath));return Wae(r,t._query,i).then(o=>(function(a,c,l){let d=new xl(a);return new N0(c,d,l)})(n,t,o))}var U0=class{constructor(e){let n;this.kind="persistent",e?.tabManager?(e.tabManager._initialize(e),n=e.tabManager):(n=ece(void 0),n._initialize(e)),this._onlineComponentProvider=n._onlineComponentProvider,this._offlineComponentProvider=n._offlineComponentProvider}toJSON(){return{kind:this.kind}}};function CM(t){return new U0(t)}var V0=class{constructor(e){this.forceOwnership=e,this.kind="persistentSingleTab"}toJSON(){return{kind:this.kind}}_initialize(e){this._onlineComponentProvider=IM.provider,this._offlineComponentProvider={build:n=>new uv(n,e?.cacheSizeBytes,this.forceOwnership)}}},B0=class{constructor(){this.kind="PersistentMultipleTab"}toJSON(){return{kind:this.kind}}_initialize(e){this._onlineComponentProvider=IM.provider,this._offlineComponentProvider={build:n=>new S0(n,e?.cacheSizeBytes)}}};function ece(t){return new V0(t?.forceOwnership)}function DM(){return new B0}var tce={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 G0=class{constructor(e,n){this._firestore=e,this._transaction=n,this._dataReader=Ov(e)}get(e){let n=yg(e,this._firestore),r=new F0(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=g6(i.converter,n,r),s=e6(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 Th?Yae(this._dataReader,"Transaction.update",o._key,n,r,i):Kae(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 j0=class extends G0{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 C6(t,e,n){t=or(t,Ei);let r=Object.assign(Object.assign({},tce),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 zW(o);new C0(o.asyncQueue,l,a,s,c).zu()})),c.promise})(Rh(t),i=>e(new j0(t,i)),r)}(function(e,n=!0){(function(i){vh=i})(Bs),$n(new Xt("firestore",(r,{instanceIdentifier:i,options:o})=>{let s=r.getProvider("app").getImmediate(),a=new Ei(new Ub(r.getProvider("auth-internal")),new Gb(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 sh(l.options.projectId,d)})(s,i),s);return o=Object.assign({useFetchStreams:n},o),a._setSettings(o),a},"PUBLIC").setMultipleInstances(!0)),Ge(qH,KH,e),Ge(qH,KH,"esm2017")})();var uUe=ue(l6,!0,2);var Lv=ue(XW,!0,2),D6=ue(QW,!0,2);var R6=ue(T6,!0,2);var dm=ue(JW,!0,2);var N6=ue(S6,!0),RM=ue(m6,!0);var w6=ue(E6,!0);var dUe=ue(d6,!0,2);var b6=ue(y6,!0);var hUe=ue(c6,!0,2),fUe=ue(u6,!0,2),O6=ue(s6,!0,2);var M6=ue(C6,!0),L6=ue(_6,!0,2);var pUe=ue(h6,!0,2);var gUe=ue(a6,!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 P6=(()=>{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";H0(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=CM({tabManager:DM()}));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(Dh(l))}}else if(c)try{let h=er(),f=bv(h,{localCache:CM({tabManager:DM()})},l);this.firestore$.next(f)}catch{this.firestore$.next(Dh(l))}else this.firestore$.next(Dh(l))}},s=>{})}catch{}}getFirestore(){return this.firestore$.asObservable()}getFirestoreValue(){return this.firestore$.value}generateFirestoreDocumentId(){try{let r=this.getFirestoreValue()||Dh("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),$(Ed),$(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=CV(c,a.v1DbHost),a?.forceLongPolling&&Eb());let l=Pd(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)($(Ed),$(Ji),$(bt))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();var Nr={doc:dm,collection:Lv,collectionGroup:D6,query:O6,getDoc:RM,getDocs:w6,getCountFromServer:N6,setDoc:L6,deleteDoc:R6,onSnapshot:b6,runTransaction:M6},k6=(()=>{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(xd(a,r.location)))?.val()}:{data:void 0}}let o=this.firestoreService.getFirestoreValue();return o?{data:(yield RM(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")}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")}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)($(P6),$(xv),$(bt))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();var rce={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"},lastActivityTimestamp:{mode:"persistent",scope:"org"},lastNotificationTimestamp:{mode:"persistent",scope:"org"},documentViews:{mode:"persistent",scope:"doc"}};function F6(t){return rce[t]}var Qe={getDatabase:Pd,ref:xd,query:BH,get:hg,set:HH,update:$H,remove:GH,push:VH,runTransaction:jH,onValue:vb,onChildAdded:xH,onChildChanged:kH,onChildRemoved:FH,off:PH,objectVal:MH,listVal:OH,stateChanges:LH,onDisconnect:UH},U6=(()=>{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(xd(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=xd(s,e.SERVER_TIME_OFFSET_PATH);i=vb(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 F6(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})();var Nh=null,NM=new Set;function V6(t){return NM.add(t),()=>NM.delete(t)}function WUe(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=V6(i),Nh&&i()})}function zUe(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=>V6(()=>{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 ice(t){let e=t?.message;return typeof e=="string"&&/^NG0205(?!\d)/.test(e)}function qUe(t){if(Nh=t??null,Nh)for(let e of Array.from(NM))try{e()}catch(n){M.catch("Error in portable adapter registration listener: ",n)}}var KUe=(()=>{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(Ed)}isPortableBackendActive(){return this.isPortableActive()}evaluatePortableGates(){try{return{chunkRegistered:!!Nh,flagOn:this.configService.getEnablePortableBackend()===!0,identifyRecorded:!!this.authService.getPortableBackend()}}catch(r){return ice(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}resolveDbAdapter(){return this.isPortableActive()?Nh.db:this.injector.get(k6)}resolveRealtimeAdapter(){return this.isPortableActive()?Nh.realtime:this.injector.get(U6)}};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 JUe=new Set(YG);function ZUe(t){try{let e=t?.reasonCode;return typeof e!="string"||!e.trim()?"":` [reason: ${e.trim()}]`}catch{return""}}export{B as a,Ee as b,X6 as c,oce as d,sce as e,ace as f,y as g,gt as h,fe as i,lS as j,Rt as k,ie as l,Xa as m,B4 as n,G4 as o,Wa as p,cr as q,lt as r,j4 as s,H4 as t,R4 as u,De as v,Ka as w,tf as x,$4 as y,wi as z,Q4 as A,To as B,I4 as C,gs as D,mn as E,u4 as F,oS as G,sS as H,T4 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,v4 as R,hS as S,S4 as T,Qa as U,Mr as V,ps as W,A4 as X,eE as Y,C4 as Z,w4 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,gP as ja,mP as ka,RP as la,NP as ma,ze as na,on as oa,Hn as pa,lr as qa,ki as ra,Ec as sa,Lr as ta,wz as ua,zt as va,vC as wa,Kz as xa,Ns as ya,i_ as za,y_ as Aa,n8 as Ba,V8 as Ca,B8 as Da,G8 as Ea,$8 as Fa,W8 as Ga,c5 as Ha,Ro as Ia,Ae as Ja,m5 as Ka,oq as La,sq as Ma,Vi as Na,bf as Oa,bo as Pa,L_ as Qa,st as Ra,mq as Sa,ji as Ta,vc as Ua,r1 as Va,i9 as Wa,ws as Xa,Hi as Ya,Mf as Za,l1 as _a,p9 as $a,h1 as ab,f1 as bb,k_ as cb,bs as db,T1 as eb,y1 as fb,I9 as gb,S9 as hb,A9 as ib,C9 as jb,D9 as kb,R9 as lb,N9 as mb,I1 as nb,aD as ob,cD as pb,v1 as qb,lD as rb,uD as sb,S1 as tb,dD as ub,hD as vb,C1 as wb,P9 as xb,D1 as yb,N1 as zb,w1 as Ab,V9 as Bb,G9 as Cb,j9 as Db,$9 as Eb,W9 as Fb,z9 as Gb,q9 as Hb,K9 as Ib,Y9 as Jb,X9 as Kb,x1 as Lb,k1 as Mb,lK as Nb,dK as Ob,IK as Pb,W1 as Qb,fD as Rb,z1 as Sb,q1 as Tb,K1 as Ub,CK as Vb,Y1 as Wb,Q1 as Xb,DK as Yb,RK as Zb,NK as _b,wK as $b,PK as ac,xK as bc,kK as cc,FK as dc,UK as ec,VK as fc,BK as gc,GK as hc,jK as ic,HK as jc,$K as kc,WK as lc,qK as mc,YK as nc,XK as oc,QK as pc,JK as qc,ZK as rc,nY as sc,Uf as tc,Vf as uc,_D as vc,FSe as wc,USe as xc,VSe as yc,MY as zc,bD as Ac,BSe as Bc,GSe as Cc,jSe as Dc,$i as Ec,NF as Fc,ZY as Gc,WF as Hc,e7 as Ic,FD as Jc,t7 as Kc,n7 as Lc,r7 as Mc,i7 as Nc,s7 as Oc,c7 as Pc,u7 as Qc,UD as Rc,tT as Sc,nT as Tc,D7 as Uc,w7 as Vc,pU as Wc,Z7 as Xc,eX as Yc,XD as Zc,RU as _c,eR as $c,ld 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,$J as od,aLe as pd,cLe as qd,lLe as rd,si as sd,Gs as td,Go as ud,ai as vd,ue as wd,ci as xd,jo as yd,RLe as zd,NLe as Ad,wLe as Bd,Hs as Cd,fee as Dd,gee as Ed,Nee as Fd,Hc as Gd,$c as Hd,dxe as Id,hxe as Jd,tFe as Kd,nFe as Ld,rFe as Md,iFe as Nd,oFe as Od,sFe as Pd,Ho as Qd,bxe as Rd,Oxe as Sd,Mxe as Td,bU as Ud,yX as Vd,np as Wd,qt as Xd,M as Yd,lDe as Zd,uDe as _d,dDe as $d,hDe as ae,fDe as be,pDe as ce,gDe as de,Wi as ee,mDe as fe,EDe as ge,_De as he,TDe as ie,rX as je,iX as ke,oX as le,sX as me,aX as ne,cX as oe,yDe as pe,lX as qe,QD as re,uX as se,Er as te,uT as ue,dX as ve,Zu as we,Mn as xe,hX as ye,dT as ze,fX as Ae,pX as Be,gX as Ce,IDe as De,vDe as Ee,SDe as Fe,mX as Ge,F as He,CU as Ie,oRe as Je,sRe as Ke,aRe as Le,cRe as Me,ed as Ne,hRe as Oe,fRe as Pe,pRe as Qe,Ur as Re,Et as Se,OU as Te,MU as Ue,HRe as Ve,$Re as We,LU as Xe,tR as Ye,PU as Ze,nR as _e,IT as $e,IX as af,vX as bf,SX as cf,AX as df,CX as ef,DX as ff,RX as gf,NX as hf,wX as if,bX as jf,OX as kf,MX as lf,UU as mf,VU as nf,BU as of,GU as pf,jU as qf,zi as rf,gNe as sf,vT as tf,HU as uf,$U as vf,WU as wf,zU as xf,qU as yf,KU as zf,YU as Af,XU as Bf,QU as Cf,JU as Df,ZU as Ef,eV as Ff,tV as Gf,QNe as Hf,JNe as If,nV as Jf,rR as Kf,rV as Lf,iV as Mf,sV as Nf,aV as Of,Owe as Pf,Mwe as Qf,LX as Rf,PX as Sf,kOe as Tf,ST as Uf,lR as Vf,Pc as Wf,CV as Xf,qOe as Yf,Mc as Zf,Vo as _f,KOe as $f,YOe as ag,RV as bg,XOe as cg,QOe as dg,JOe as eg,ZOe as fg,e0e as gg,t0e as hg,n0e as ig,NV as jg,wV as kg,r0e as lg,i0e as mg,kX as ng,o0e as og,s0e as pg,a0e as qg,c0e as rg,bV as sg,nd as tg,l0e as ug,OV as vg,LV as wg,fV as xg,pV as yg,FX as zg,UX as Ag,wT as Bg,sp as Cg,u0e as Dg,d0e as Eg,qi as Fg,h0e as Gg,rd as Hg,GX as Ig,f0e as Jg,gR as Kg,mV as Lg,jX as Mg,DT as Ng,p0e as Og,g0e as Pg,PV as Qg,xV as Rg,HX as Sg,Oc as Tg,$X as Ug,qX as Vg,m0e as Wg,KX as Xg,E0e as Yg,YX as Zg,XX as _g,QX as $g,JX as ah,xc as bh,_0e as ch,T0e as dh,y0e as eh,dR as fh,I0e as gh,eQ as hh,v0e as ih,S0e as jh,VV as kh,A0e as lh,C0e as mh,D0e as nh,R0e as oh,N0e as ph,w0e as qh,b0e as rh,AT as sh,O0e as th,M0e as uh,L0e as vh,mR as wh,P0e as xh,IV as yh,x0e as zh,k0e as Ah,F0e as Bh,U0e as Ch,V0e as Dh,B0e as Eh,G0e as Fh,j0e as Gh,H0e as Hh,$0e as Ih,W0e as Jh,z0e as Kh,q0e as Lh,K0e as Mh,Y0e as Nh,X0e as Oh,Q0e as Ph,J0e as Qh,Z0e as Rh,eMe as Sh,tMe as Th,nMe as Uh,iQ as Vh,rMe as Wh,iMe as Xh,oMe as Yh,vV as Zh,sMe as _h,aMe as $h,cp as ai,oQ as bi,cMe as ci,lMe as di,uMe as ei,dMe as fi,sQ as gi,hMe as hi,fMe as ii,zV as ji,_R as ki,od as li,pMe as mi,op as ni,gMe as oi,mMe as pi,EMe as qi,fR as ri,_Me as si,TMe as ti,yMe as ui,IMe as vi,AQ as wi,vMe as xi,SMe as yi,AMe as zi,SV as Ai,CMe as Bi,CQ as Ci,VQ as Di,BQ as Ei,St as Fi,pd as Gi,NDe as Hi,wDe as Ii,bDe as Ji,ODe as Ki,MDe as Li,LDe as Mi,PDe as Ni,xDe as Oi,kDe as Pi,FDe as Qi,UDe as Ri,VDe as Si,hT as Ti,BDe as Ui,GDe as Vi,jDe as Wi,fT as Xi,HDe as Yi,$De as Zi,WDe as _i,zDe as $i,qDe as aj,KDe as bj,YDe as cj,pT as dj,XDe as ej,QDe as fj,gT as gj,TU as hj,yU as ij,IU as jj,vU as kj,mT as lj,zs as mj,bt as nj,Ji as oj,zc as pj,tne as qj,Xxe as rj,ly as sj,mke as tj,Wn as uj,Eke as vj,YG as wj,Ske as xj,Ake as yj,uUe as zj,dUe as Aj,hUe as Bj,fUe as Cj,pUe as Dj,gUe as Ej,Pv as Fj,P6 as Gj,xv as Hj,k6 as Ij,F6 as Jj,U6 as Kj,V6 as Lj,WUe as Mj,zUe as Nj,qUe as Oj,KUe as Pj,ZUe as Qj,t2 as Rj,n2 as Sj,fy as Tj,Pke as Uj,xke as Vj,C2 as Wj,Ed as Xj};
174
+ `+t.stack),e}function s3(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<SW)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 Dh(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=ld("firestore");o&&YW(i,...o)}return i}function Rh(t){if(t._terminated)throw new j(x.FAILED_PRECONDITION,"The client has already been terminated.");return t._firestoreClient||zae(t),t._firestoreClient}function zae(t){var e,n,r;let i=t._freezeSettings(),o=(function(a,c,l,d){return new Qb(a,c,l,d.host,d.ssl,d.experimentalForceLongPolling,d.experimentalAutoDetectLongPolling,qW(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 D0(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 R0=class{constructor(e="count",n){this._internalFieldPath=n,this.type="AggregateField",this.aggregateType=e}},N0=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 Th=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 qae=/^__.*__$/,w0=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 ZW(t){switch(t){case 0:case 2:case 1:return!0;case 3:case 4:return!1;default:throw re(40011,{Ec:t})}}var b0=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(ZW(this.Ec)&&qae.test(e))throw this.wc('Document fields cannot begin and end with "__"')}},O0=class{constructor(e,n,r){this.databaseId=e,this.ignoreUndefinedProperties=n,this.serializer=r||Dv(e)}Dc(e,n,r,i=!1){return new b0({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 O0(t._databaseId,!!e.ignoreUndefinedProperties,n)}function e6(t,e,n,r,i,o={}){let s=t.Dc(o.merge||o.mergeFields?2:0,e,n,i);SM("Data must be an object, but it was:",s,r);let a=n6(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=M0(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.`);i6(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 w0(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 Kae(t,e,n,r){let i=t.Dc(1,e,n);SM("Data must be an object, but it was:",i,r);let o=[],s=Fn.empty();Aa(r,(c,l)=>{let d=AM(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 Yae(t,e,n,r,i,o){let s=t.Dc(1,e,n),a=[M0(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(M0(e,o[f])),c.push(o[f+1]);let l=[],d=Fn.empty();for(let f=a.length-1;f>=0;--f)if(!i6(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 t6(t,e,n,r=!1){return um(n,t.Dc(r?4:3,e))}function um(t,e){if(r6(t=Me(t)))return SM("Unsupported field value:",e,t),n6(t,e);if(t instanceof em)return(function(r,i){if(!ZW(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 Pse(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:hh(i.serializer,o)}}if(r instanceof Tt){let o=new Tt(r.seconds,1e3*Math.floor(r.nanoseconds/1e3));return{timestampValue:hh(i.serializer,o)}}if(r instanceof da)return{geoPointValue:{latitude:r.latitude,longitude:r.longitude}};if(r instanceof Xo)return{bytesValue:oW(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:iM(r.firestore._databaseId||i.databaseId,r._key.path)}}if(r instanceof ha)return(function(s,a){return{mapValue:{fields:{[J0]:{stringValue:Z0},[ah]:{arrayValue:{values:s.toArray().map(l=>{if(typeof l!="number")throw a.wc("VectorValues must only contain numeric values.");return rM(a.serializer,l)})}}}}}})(r,i);throw i.wc(`Unsupported field value: ${_v(r)}`)})(t,e)}function n6(t,e){let n={};return N3(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 r6(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 SM(t,e,n){if(!r6(n)||!h3(n)){let r=_v(n);throw r==="an object"?e.wc(t+" a custom object"):e.wc(t+" "+r)}}function M0(t,e,n){if((e=Me(e))instanceof Th)return e._internalPath;if(typeof e=="string")return AM(t,e);throw mv("Field path arguments must be of type string or ",t,!1,void 0,n)}var Xae=new RegExp("[~\\*/\\[\\]]");function AM(t,e,n){if(e.search(Xae)>=0)throw mv(`Invalid field path (${e}). Paths must not contain '~', '*', '/', '[', or ']'`,t,!1,void 0,n);try{return new Th(...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 i6(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 L0(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)}}},L0=class extends Pl{data(){return super.data()}};function Mv(t,e){return typeof e=="string"?AM(t,e):e instanceof Th?e._internalPath:e._delegate._internalPath}function o6(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{},yh=class extends tm{};function s6(t,e,...n){let r=[];e instanceof tm&&r.push(e),r=r.concat(n),(function(o){let s=o.filter(c=>c instanceof Ih).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 yh{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 f6(e._query,n),new mi(e.firestore,e.converter,uO(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"){c3(h,d);let E=[];for(let I of h)E.push(a3(c,o,I));f={arrayValue:{values:E}}}else f=a3(c,o,h)}else d!=="in"&&d!=="not-in"&&d!=="array-contains-any"||c3(h,d),f=t6(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 a6(t,e,n){let r=e,i=Mv("where",t);return nm._create(i,r,n)}var Ih=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)f6(s,c),s=uO(s,c)})(e._query,n),new mi(e.firestore,e.converter,uO(e._query,n)))}_getQueryConstraints(){return this._queryConstraints}_getOperator(){return this.type==="and"?"and":"or"}};function c6(...t){return t.forEach(e=>p6("or",e)),Ih._create("or",t)}function l6(...t){return t.forEach(e=>p6("and",e)),Ih._create("and",t)}var P0=class t extends yh{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 u6(t,e="asc"){let n=e,r=Mv("orderBy",t);return P0._create(r,n)}var x0=class t extends yh{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 d6(t){return Xoe("limit",t),x0._create("limit",t,"F")}var k0=class t extends yh{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=Qae(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 h6(...t){return k0._create("startAfter",t,!1)}function Qae(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 Yd(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(!tM(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=t6(c,l,I);g.push(S)}}return new so(g,h)})(t._query,t.firestore._databaseId,i,e,n,r)}}function a3(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(!tM(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 c3(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 f6(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 p6(t,e){if(!(e instanceof nm||e instanceof Ih))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[ah].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(pW(r),9688,{name:e});let i=new sh(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 g6(t,e,n){let r;return r=t?n&&(n.merge||n.mergeFields)?t.toFirestore(e,n):t.toFirestore(e):e,r}var F0=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 Jae(){return new R0("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 Qd(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 Qd=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 Qd(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 Qd(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 Qd(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:Zae(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 Zae(t){switch(t){case 0:return"added";case 2:case 3:return"modified";case 1:return"removed";default:return re(61501,{type:t})}}function m6(t){t=or(t,en);let e=or(t.firestore,Ei);return Hae(Rh(e),t._key).then(n=>v6(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 E6(t){t=or(t,mi);let e=or(t.firestore,Ei),n=Rh(e),r=new xl(e);return o6(t._query),$ae(n,t._query).then(i=>new Sl(e,r,t,i))}function _6(t,e,n){t=or(t,en);let r=or(t.firestore,Ei),i=g6(t.converter,e,n);return I6(r,[e6(Ov(r),"setDoc",t._key,i,t.converter!==null,n).toMutation(t._key,yn.none())])}function T6(t){return I6(or(t.firestore,Ei),[new wl(t._key,yn.none())])}function y6(t,...e){var n,r,i;t=Me(t);let o={includeMetadataChanges:!1,source:"default"},s=0;typeof e[s]!="object"||s3(e[s])||(o=e[s++]);let a={includeMetadataChanges:o.includeMetadataChanges,source:o.source};if(s3(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](v6(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]},o6(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 hM(yield dv(f),L)})),()=>{S.Ou(),f.asyncQueue.enqueueAndForget(()=>y(null,null,function*(){return fM(yield dv(f),L)}))}})(Rh(l),d,a,c)}function I6(t,e){return(function(r,i){let o=new ir;return r.asyncQueue.enqueueAndForget(()=>y(null,null,function*(){return Rae(yield jae(r),i,o)})),o.promise})(Rh(t),e)}function v6(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 S6(t){return A6(t,{count:Jae()})}function A6(t,e){let n=or(t.firestore,Ei),r=Rh(n),i=Sse(e,(o,s)=>new pO(s,o.aggregateType,o._internalFieldPath));return Wae(r,t._query,i).then(o=>(function(a,c,l){let d=new xl(a);return new N0(c,d,l)})(n,t,o))}var U0=class{constructor(e){let n;this.kind="persistent",e?.tabManager?(e.tabManager._initialize(e),n=e.tabManager):(n=ece(void 0),n._initialize(e)),this._onlineComponentProvider=n._onlineComponentProvider,this._offlineComponentProvider=n._offlineComponentProvider}toJSON(){return{kind:this.kind}}};function CM(t){return new U0(t)}var V0=class{constructor(e){this.forceOwnership=e,this.kind="persistentSingleTab"}toJSON(){return{kind:this.kind}}_initialize(e){this._onlineComponentProvider=IM.provider,this._offlineComponentProvider={build:n=>new uv(n,e?.cacheSizeBytes,this.forceOwnership)}}},B0=class{constructor(){this.kind="PersistentMultipleTab"}toJSON(){return{kind:this.kind}}_initialize(e){this._onlineComponentProvider=IM.provider,this._offlineComponentProvider={build:n=>new S0(n,e?.cacheSizeBytes)}}};function ece(t){return new V0(t?.forceOwnership)}function DM(){return new B0}var tce={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 G0=class{constructor(e,n){this._firestore=e,this._transaction=n,this._dataReader=Ov(e)}get(e){let n=yg(e,this._firestore),r=new F0(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=g6(i.converter,n,r),s=e6(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 Th?Yae(this._dataReader,"Transaction.update",o._key,n,r,i):Kae(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 j0=class extends G0{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 C6(t,e,n){t=or(t,Ei);let r=Object.assign(Object.assign({},tce),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 zW(o);new C0(o.asyncQueue,l,a,s,c).zu()})),c.promise})(Rh(t),i=>e(new j0(t,i)),r)}(function(e,n=!0){(function(i){vh=i})(Bs),$n(new Xt("firestore",(r,{instanceIdentifier:i,options:o})=>{let s=r.getProvider("app").getImmediate(),a=new Ei(new Ub(r.getProvider("auth-internal")),new Gb(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 sh(l.options.projectId,d)})(s,i),s);return o=Object.assign({useFetchStreams:n},o),a._setSettings(o),a},"PUBLIC").setMultipleInstances(!0)),Ge(qH,KH,e),Ge(qH,KH,"esm2017")})();var pUe=ue(l6,!0,2);var Lv=ue(XW,!0,2),D6=ue(QW,!0,2);var R6=ue(T6,!0,2);var dm=ue(JW,!0,2);var N6=ue(S6,!0),RM=ue(m6,!0);var w6=ue(E6,!0);var gUe=ue(d6,!0,2);var b6=ue(y6,!0);var mUe=ue(c6,!0,2),EUe=ue(u6,!0,2),O6=ue(s6,!0,2);var M6=ue(C6,!0),L6=ue(_6,!0,2);var _Ue=ue(h6,!0,2);var TUe=ue(a6,!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 P6=(()=>{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";H0(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=CM({tabManager:DM()}));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(Dh(l))}}else if(c)try{let h=er(),f=bv(h,{localCache:CM({tabManager:DM()})},l);this.firestore$.next(f)}catch{this.firestore$.next(Dh(l))}else this.firestore$.next(Dh(l))}},s=>{})}catch{}}getFirestore(){return this.firestore$.asObservable()}getFirestoreValue(){return this.firestore$.value}generateFirestoreDocumentId(){try{let r=this.getFirestoreValue()||Dh("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),$(Ed),$(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=CV(c,a.v1DbHost),a?.forceLongPolling&&Eb());let l=Pd(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)($(Ed),$(Ji),$(bt))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();var Nr={doc:dm,collection:Lv,collectionGroup:D6,query:O6,getDoc:RM,getDocs:w6,getCountFromServer:N6,setDoc:L6,deleteDoc:R6,onSnapshot:b6,runTransaction:M6},k6=(()=>{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(xd(a,r.location)))?.val()}:{data:void 0}}let o=this.firestoreService.getFirestoreValue();return o?{data:(yield RM(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")}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")}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)($(P6),$(xv),$(bt))},e.\u0275prov=Q({token:e,factory:e.\u0275fac,providedIn:"root"});let t=e;return t})();var rce={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"},lastActivityTimestamp:{mode:"persistent",scope:"org"},lastNotificationTimestamp:{mode:"persistent",scope:"org"},documentViews:{mode:"persistent",scope:"doc"}};function F6(t){return rce[t]}var Qe={getDatabase:Pd,ref:xd,query:BH,get:hg,set:HH,update:$H,remove:GH,push:VH,runTransaction:jH,onValue:vb,onChildAdded:xH,onChildChanged:kH,onChildRemoved:FH,off:PH,objectVal:MH,listVal:OH,stateChanges:LH,onDisconnect:UH},U6=(()=>{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(xd(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=xd(s,e.SERVER_TIME_OFFSET_PATH);i=vb(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 F6(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})();var Nh=null,NM=new Set;function V6(t){return NM.add(t),()=>NM.delete(t)}function YUe(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=V6(i),Nh&&i()})}function XUe(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=>V6(()=>{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 ice(t){let e=t?.message;return typeof e=="string"&&/^NG0205(?!\d)/.test(e)}function QUe(t){if(Nh=t??null,Nh)for(let e of Array.from(NM))try{e()}catch(n){M.catch("Error in portable adapter registration listener: ",n)}}var JUe=(()=>{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(Ed)}isPortableBackendActive(){return this.isPortableActive()}evaluatePortableGates(){try{return{chunkRegistered:!!Nh,flagOn:this.configService.getEnablePortableBackend()===!0,identifyRecorded:!!this.authService.getPortableBackend()}}catch(r){return ice(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}resolveDbAdapter(){return this.isPortableActive()?Nh.db:this.injector.get(k6)}resolveRealtimeAdapter(){return this.isPortableActive()?Nh.realtime:this.injector.get(U6)}};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 nVe=new Set(YG);function rVe(t){try{let e=t?.reasonCode;return typeof e!="string"||!e.trim()?"":` [reason: ${e.trim()}]`}catch{return""}}export{B as a,Ee as b,X6 as c,oce as d,sce as e,ace as f,y as g,gt as h,fe as i,lS as j,Rt as k,ie as l,Xa as m,B4 as n,G4 as o,Wa as p,cr as q,lt as r,j4 as s,H4 as t,R4 as u,De as v,Ka as w,tf as x,$4 as y,wi as z,Q4 as A,To as B,I4 as C,gs as D,mn as E,u4 as F,oS as G,sS as H,T4 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,v4 as R,hS as S,S4 as T,Qa as U,Mr as V,ps as W,A4 as X,eE as Y,C4 as Z,w4 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,gP as ja,mP as ka,RP as la,NP as ma,ze as na,on as oa,Hn as pa,lr as qa,ki as ra,Ec as sa,Lr as ta,wz as ua,zt as va,vC as wa,Kz as xa,Ns as ya,i_ as za,y_ as Aa,n8 as Ba,V8 as Ca,B8 as Da,G8 as Ea,$8 as Fa,W8 as Ga,c5 as Ha,Ro as Ia,Ae as Ja,m5 as Ka,oq as La,sq as Ma,Vi as Na,bf as Oa,bo as Pa,L_ as Qa,st as Ra,mq as Sa,ji as Ta,vc as Ua,r1 as Va,i9 as Wa,ws as Xa,Hi as Ya,Mf as Za,l1 as _a,p9 as $a,h1 as ab,f1 as bb,k_ as cb,bs as db,T1 as eb,y1 as fb,I9 as gb,S9 as hb,A9 as ib,C9 as jb,D9 as kb,R9 as lb,N9 as mb,I1 as nb,aD as ob,cD as pb,v1 as qb,lD as rb,uD as sb,S1 as tb,dD as ub,hD as vb,C1 as wb,P9 as xb,D1 as yb,N1 as zb,w1 as Ab,V9 as Bb,G9 as Cb,j9 as Db,$9 as Eb,W9 as Fb,z9 as Gb,q9 as Hb,K9 as Ib,Y9 as Jb,X9 as Kb,x1 as Lb,k1 as Mb,lK as Nb,dK as Ob,IK as Pb,W1 as Qb,fD as Rb,z1 as Sb,q1 as Tb,K1 as Ub,CK as Vb,Y1 as Wb,Q1 as Xb,DK as Yb,RK as Zb,NK as _b,wK as $b,PK as ac,xK as bc,kK as cc,FK as dc,UK as ec,VK as fc,BK as gc,GK as hc,jK as ic,HK as jc,$K as kc,WK as lc,qK as mc,YK as nc,XK as oc,QK as pc,JK as qc,ZK as rc,nY as sc,Uf as tc,Vf as uc,_D as vc,FSe as wc,USe as xc,VSe as yc,MY as zc,bD as Ac,BSe as Bc,GSe as Cc,jSe as Dc,$i as Ec,NF as Fc,ZY as Gc,WF as Hc,e7 as Ic,FD as Jc,t7 as Kc,n7 as Lc,r7 as Mc,i7 as Nc,s7 as Oc,c7 as Pc,u7 as Qc,UD as Rc,tT as Sc,nT as Tc,D7 as Uc,w7 as Vc,pU as Wc,Z7 as Xc,eX as Yc,XD as Zc,RU as _c,eR as $c,ld 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,$J as od,aLe as pd,cLe as qd,lLe as rd,si as sd,Gs as td,Go as ud,ai as vd,ue as wd,ci as xd,jo as yd,RLe as zd,NLe as Ad,wLe as Bd,Hs as Cd,fee as Dd,gee as Ed,Nee as Fd,Hc as Gd,$c as Hd,dxe as Id,hxe as Jd,oFe as Kd,sFe as Ld,aFe as Md,cFe as Nd,lFe as Od,uFe as Pd,Ho as Qd,bxe as Rd,Oxe as Sd,Mxe as Td,bU as Ud,yX as Vd,np as Wd,qt as Xd,M as Yd,lDe as Zd,uDe as _d,dDe as $d,hDe as ae,fDe as be,pDe as ce,gDe as de,Wi as ee,mDe as fe,EDe as ge,_De as he,TDe as ie,rX as je,iX as ke,oX as le,sX as me,aX as ne,cX as oe,yDe as pe,lX as qe,QD as re,uX as se,Er as te,uT as ue,dX as ve,Zu as we,Mn as xe,hX as ye,dT as ze,fX as Ae,pX as Be,gX as Ce,IDe as De,vDe as Ee,SDe as Fe,mX as Ge,F as He,CU as Ie,oRe as Je,sRe as Ke,aRe as Le,cRe as Me,ed as Ne,hRe as Oe,fRe as Pe,pRe as Qe,Ur as Re,Et as Se,OU as Te,MU as Ue,HRe as Ve,$Re as We,LU as Xe,tR as Ye,PU as Ze,nR as _e,IT as $e,IX as af,vX as bf,SX as cf,AX as df,CX as ef,DX as ff,RX as gf,NX as hf,wX as if,bX as jf,OX as kf,MX as lf,UU as mf,VU as nf,BU as of,GU as pf,jU as qf,zi as rf,gNe as sf,vT as tf,HU as uf,$U as vf,WU as wf,zU as xf,qU as yf,KU as zf,YU as Af,XU as Bf,QU as Cf,JU as Df,ZU as Ef,eV as Ff,tV as Gf,QNe as Hf,JNe as If,nV as Jf,rR as Kf,rV as Lf,iV as Mf,sV as Nf,aV as Of,Owe as Pf,Mwe as Qf,LX as Rf,PX as Sf,kOe as Tf,ST as Uf,lR as Vf,Pc as Wf,CV as Xf,qOe as Yf,Mc as Zf,Vo as _f,KOe as $f,YOe as ag,RV as bg,XOe as cg,QOe as dg,JOe as eg,ZOe as fg,e0e as gg,t0e as hg,n0e as ig,NV as jg,wV as kg,r0e as lg,i0e as mg,kX as ng,o0e as og,s0e as pg,a0e as qg,c0e as rg,bV as sg,nd as tg,l0e as ug,OV as vg,LV as wg,fV as xg,pV as yg,FX as zg,UX as Ag,wT as Bg,sp as Cg,u0e as Dg,d0e as Eg,qi as Fg,h0e as Gg,rd as Hg,GX as Ig,f0e as Jg,gR as Kg,mV as Lg,jX as Mg,DT as Ng,p0e as Og,g0e as Pg,PV as Qg,xV as Rg,HX as Sg,Oc as Tg,$X as Ug,qX as Vg,m0e as Wg,KX as Xg,E0e as Yg,YX as Zg,XX as _g,QX as $g,JX as ah,xc as bh,_0e as ch,T0e as dh,y0e as eh,dR as fh,I0e as gh,eQ as hh,v0e as ih,S0e as jh,VV as kh,A0e as lh,C0e as mh,D0e as nh,R0e as oh,N0e as ph,w0e as qh,b0e as rh,AT as sh,O0e as th,M0e as uh,L0e as vh,mR as wh,P0e as xh,IV as yh,x0e as zh,k0e as Ah,F0e as Bh,U0e as Ch,V0e as Dh,B0e as Eh,G0e as Fh,j0e as Gh,H0e as Hh,$0e as Ih,W0e as Jh,z0e as Kh,q0e as Lh,K0e as Mh,Y0e as Nh,X0e as Oh,Q0e as Ph,J0e as Qh,Z0e as Rh,eMe as Sh,tMe as Th,nMe as Uh,iQ as Vh,rMe as Wh,iMe as Xh,oMe as Yh,vV as Zh,sMe as _h,aMe as $h,cp as ai,oQ as bi,cMe as ci,lMe as di,uMe as ei,dMe as fi,sQ as gi,hMe as hi,fMe as ii,zV as ji,_R as ki,od as li,pMe as mi,op as ni,gMe as oi,mMe as pi,EMe as qi,fR as ri,_Me as si,TMe as ti,yMe as ui,IMe as vi,AQ as wi,vMe as xi,SMe as yi,AMe as zi,SV as Ai,CMe as Bi,CQ as Ci,VQ as Di,BQ as Ei,St as Fi,pd as Gi,NDe as Hi,wDe as Ii,bDe as Ji,ODe as Ki,MDe as Li,LDe as Mi,PDe as Ni,xDe as Oi,kDe as Pi,FDe as Qi,UDe as Ri,VDe as Si,hT as Ti,BDe as Ui,GDe as Vi,jDe as Wi,fT as Xi,HDe as Yi,$De as Zi,WDe as _i,zDe as $i,qDe as aj,KDe as bj,YDe as cj,pT as dj,XDe as ej,QDe as fj,gT as gj,TU as hj,yU as ij,IU as jj,vU as kj,mT as lj,zs as mj,bt as nj,Ji as oj,zc as pj,tne as qj,Xxe as rj,ly as sj,mke as tj,Wn as uj,Eke as vj,YG as wj,Ske as xj,Ake as yj,Cke as zj,Dke as Aj,Rke as Bj,Nke as Cj,pUe as Dj,gUe as Ej,mUe as Fj,EUe as Gj,_Ue as Hj,TUe as Ij,Pv as Jj,P6 as Kj,xv as Lj,k6 as Mj,F6 as Nj,U6 as Oj,V6 as Pj,YUe as Qj,XUe as Rj,QUe as Sj,JUe as Tj,rVe as Uj,t2 as Vj,n2 as Wj,fy as Xj,Uke as Yj,Vke as Zj,C2 as _j,Ed as $j};