1var __defProp=Object.defineProperty,__defNormalProp=(e,n,t)=>n in e?__defProp(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,__publicField=(e,n,t)=>__defNormalProp(e,"symbol"!=typeof n?n+"":n,t);!function(){"use strict";const e="GameInterface",n={"[ads]":{name:"ADS",color:"#3b88c3"},"[track]":{name:"TRACK",color:"#9b59b6"},"[storage]":{name:"STORAGE",color:"#03fc2c"},"[gameStates]":{name:"GAMESTATES",color:"#f1c40f"},"[intern]":{name:"INTERN",color:"#253342"},"[listener]":{name:"LISTENER",color:"#F07857"},"[mock]":{name:"MOCK",color:"#32a0a8"},"[leaderboard]":{name:"LDRBRD",color:"#544680"},"[game]":{name:"GAME",color:"#2ecc71"},"[start]":{name:"START",color:"#581845"},"[iap]":{name:"IAP",color:"#2B1858"},"[portal]":{name:"PORTAL",color:"#e7a996"},"[bridge]":{name:"BRIDGE",color:"#76aeb2"},"[events]":{name:"EVENTS",color:"#fdb2c8"},"[player]":{name:"PLAYER",color:"#1abc9c"},"[test]":{name:"TEST",color:"#5d61c3"}};let t;function i(i,a,...o){if(!a&&(void 0===t&&(t=["1","true"].includes(new URLSearchParams(window.location.search||"").get("isVerboseLoggingEnabled")||"")),!0!==(null==window?void 0:window.isVerboseLoggingEnabled)&&!1===t))return;if(((e,...n)=>{const t=Array.isArray(e)?e:[e];return n.some(e=>"string"==typeof e&&t.some(n=>e.includes(n)))})(["isRewardedAdAvailable","isInterstitialAdAvailable"],...o))return;if("string"!=typeof o[0])return void console[i](...o);const r=[...o];let s=r[0].split(" ")[0];const u=r[0].match(/^(\[[^\]]+\])/);if(s=u?u[1]:r[0].split(" ")[0],s in n){const t=s;let i=r[0];i.startsWith(s+" ")?i=i.substring(s.length+1):i.startsWith(s)&&(i=i.substring(s.length));const a=i.length>0&&!i.startsWith(" ")?" ":"";r[0]=`%c${e}%c %c${n[t].name}%c`+a+i,r.splice(1,0,"display: inline-block; color: #fff; background: #e74c3c; padding: 1px 4px; border-radius: 3px;"),r.splice(2,0,""),r.splice(3,0,"display: inline-block; color: #fff; background: "+n[t].color+"; padding: 1px 4px; border-radius: 3px;"),r.splice(4,0,"")}else r[0]=`%c${e}%c `+r[0],r.splice(1,0,"display: inline-block; color: #fff; background: #e74c3c; padding: 1px 4px; border-radius: 3px;"),r.splice(2,0,"");console[i](...r)}const a={log(...e){i("log",!1,...e)},warn(...e){i("warn",!1,...e)},force(...e){i("log",!0,...e)},scopes:n},o=(e,n)=>{if("object"!=typeof n||null===n)return n;const t=n;let i;i="object"!=typeof e||null===e?Array.isArray(n)?[]:{}:e;for(const a of Object.keys(t))i[a]=o(i[a],t[a]);return i},r="[safeClone]",s=(e,n)=>{throw new TypeError(`${r} Unsupported value at "${n}": ${(e=>Object.prototype.toString.call(e))(e)}. State values must be plain objects, arrays, Date instances, primitives, or functions.`)},u=(e,n,t)=>{if(null==e)return e;if("function"==typeof e||"object"!=typeof e)return e;if(e instanceof Date)return new Date(e.getTime());if("undefined"!=typeof Node&&e instanceof Node&&s(e,t),Array.isArray(e)){const i=n.get(e);if(i)return i;const a=[];return n.set(e,a),e.forEach((e,i)=>{a[i]=u(e,n,`${t}[${i}]`)}),a}(e=>{const n=Object.getPrototypeOf(e);return n===Object.prototype||null===n})(e)||s(e,t);const i=n.get(e);if(i)return i;if(Reflect.ownKeys(e).some(e=>"symbol"==typeof e))throw new TypeError(`${r} Symbol keys are not supported at "${t}".`);const a=Object.getOwnPropertyDescriptors(e);for(const[s,u]of Object.entries(a))if(!u.enumerable)throw new TypeError(`${r} Non-enumerable property "${t}.${s}" is not supported.`);const o={};n.set(e,o);for(const r of Object.keys(e)){const i=e[r];void 0!==i&&(o[r]=u(i,n,`${t}.${r}`))}return o},l=e=>u(e,new WeakMap,"$");function c(e,n,t=!1){const i=n.split(".");let a=e;for(let o=0;o<i.length-1;o++){const e=i[o];if(null==a[e]){if(!t)return;a[e]={}}a=a[e]}return{parent:a,key:i[i.length-1]}}function h(e){let n=l(e);return{get:()=>l(n),set(e,t){const i=(null==t?void 0:t.mode)??"merge",a=l(n);"override"===i?(Object.keys(e).forEach(n=>{a[n]=l(e[n])}),n=a):n=o(a,e)},increment(e){const t=l(n);Object.entries(e).forEach(([e,n])=>{const i=c(t,e,!0);if(!i)return;const a=Number(i.parent[i.key]??0);i.parent[i.key]=a+n}),n=t},push(e){const t=l(n);Object.entries(e).forEach(([e,n])=>{const i=c(t,e,!0);if(!i)return;const a=i.parent[i.key],o=Array.isArray(a)?[...a,n]:[n];i.parent[i.key]=o}),n=t},reset(){n=l(e)}}}const d=h({loggingEnabled:!1}),g=h({name:"missing_sdk_name"}),p=h({dev:!1,analyticsDebug:!1,gameId:void 0,gameIdOnPortal:void 0,name:void 0,locale:"en",files:[],features:{audio:!0,pause:!0,score:!0,progress:!0,copyright:!0,credits:!0,version:!0,tutorial:!0,visibilitychange:!0,iap:!0,home:!0,privacy:!0,standalone:!1},ads:{interstitial:{enabled:!0,preload:0,retry:0,timeout:0,cooldown:0,eventIds:[],passiveCooldown:10,initialCooldown:10},rewarded:{enabled:!0,preload:0,retry:0,timeout:0,eventIds:[]},forcePreloadOnOrientationChange:!1,isAutoMuting:!0,isAutoPausing:!0},shouldMock:!1,userId:void 0,userid:void 0,maxLevels:void 0,version:void 0,semanticVersion:void 0,sequentialVersion:void 0,exportedAt:void 0,label:void 0,scoreTypes:[],iap:{products:[],xsolla:{projectId:void 0,isSandbox:!1,endpoint:void 0}},analytics:{enabled:!1},auth:{enabled:!1,providers:{google:{enabled:!0}},overlay:{enabled:!1,autoShow:!1,mode:"manual",floatingButtonPosition:"bottomRight"},cloudSave:{enabled:!1,autoRestore:!0,autoSync:!0,debounceMs:2e3}},famobiTracking:{enabled:!1,debug:!1,version:"0"},console:{enabled:!0,enforce:!0},isVerboseLoggingEnabled:!1,displayName:void 0});function m(e=Date.now()){const n=new Date(e),t=e=>e.toString().padStart(2,"0");return`[${t(n.getHours())}:${t(n.getMinutes())}:${t(n.getSeconds())}]`}const f=e=>{switch(e){case"log":return"Log";case"game":return"Game";case"dev":return"GameInterface";case"sdk":return`SDK:${g.get().name}`;case"mock":return`MOCK:${p.get().currentMock}`;case"devError":return"Error";case"postMessage":return">> Post >>";case"receiveMessage":return"<< Receive <<"}},v=e=>{switch(e){case"log":case"game":return"color: #fff; background: #e74c3c;";case"dev":return"color: #000000; background: #ffffff;";case"sdk":return"color: #ffffff; background: #8f0866;";case"mock":return"color: #000000; background: #f2ff00;";case"devError":return"color: #ffffff; background: #ff0000;";case"postMessage":return"color: #ffffff; background: #343ce4;";case"receiveMessage":return"color: #ffffff; background: #00931b;"}},w=(e,...n)=>{const t=[`%c${m()} %c${f(e)}`,"color: #aaa;",`display: inline-block; ${v(e)} padding: 1px 4px; border-radius: 3px;`,...n];console.log(...t)},y=(...e)=>{p.get().dev&&w("dev",...e),a.log("[dev]",...e)},b=(...e)=>{p.get().dev&&w("devError",...e),a.log("[devError]",...e)},S=(...e)=>{p.get().dev&&d.get().sdkLoggingEnabled&&w("sdk",...e),a.log("[sdk]",...e)},C=(...e)=>{d.get().loggingEnabled&&w("game",...e),a.log("[game]",...e)},L=(e,n)=>new Promise((t,i)=>{const a=document.createElement("script");
1if(a.src=e,n)for(const e in n){const t=n[e];!1!==t&&a.setAttribute(e,!0===t?"":t)}a.onload=()=>t(),a.onerror=()=>i(new Error(`Failed to load script: ${e}`)),document.head.appendChild(a)}),T=(e,n)=>new Promise((t,i)=>{const a=document.createElement("link");if(a.rel="stylesheet",a.type="text/css",a.href=e,n)for(const e in n){const t=n[e];!1!==t&&a.setAttribute(e,!0===t?"":t)}a.onload=()=>t(),a.onerror=()=>{y(`Could not load stylesheet ${e}`),t()},document.head.appendChild(a)}),E={isReady:!1,isInitializing:!1,config:{parentNetworkCode:"",childNetworkCode:"",interstitialUnit:"",rewardedUnit:"",testMode:!1},ads:{interstitial:{slot:null,showAdCallback:null,resolveShow:null,resolvePreload:null,rejectPreload:null,preloadPromise:null,requestCount:0},rewarded:{slot:null,showAdCallback:null,resolveShow:null,resolvePreload:null,rejectPreload:null,preloadPromise:null,isRewardGranted:!1,requestCount:0}}},k="37336410",D="eos/default-h5-game-interstitial",x="eos/default-h5-game-rewarded";function A(){if("undefined"==typeof window)return!1;try{return window.self!==window.top}catch(e){return!0}}const Y=(e,n)=>{const t=E.ads[e];return E.isReady?t.preloadPromise?(y(`[GAM] (${e}) Preload already in progress`),t.preloadPromise):(t.preloadPromise=new Promise((i,a)=>{const o=setTimeout(()=>{t.rejectPreload&&t.rejectPreload(new Error(`[GAM] (${e}) Preload cancelled, timeout reached`))},3e4);t.resolvePreload=e=>{clearTimeout(o),t.resolvePreload=null,t.rejectPreload=null,i(e)},t.rejectPreload=e=>{clearTimeout(o),t.resolvePreload=null,t.rejectPreload=null,t.preloadPromise=null,a(e)},googletag.cmd.push(()=>{t.slot&&googletag.destroySlots([t.slot]);const i=(e=>{if(E.config.testMode)return"interstitial"===e?"/6355419/Travel/Europe/France/Paris":"/22639388115/rewarded_web_example";const n="interstitial"===e?E.config.interstitialUnit:E.config.rewardedUnit;return`/${E.config.childNetworkCode?`${E.config.parentNetworkCode},${E.config.childNetworkCode}`:E.config.parentNetworkCode}/${n}`})(e),a="interstitial"===e?googletag.enums.OutOfPageFormat.GAME_MANUAL_INTERSTITIAL:googletag.enums.OutOfPageFormat.REWARDED;if(t.slot=googletag.defineOutOfPageSlot(i,a),t.slot){t.requestCount++;const a="interstitial"===e?"adxfcgmi":"adxfcr",r={gid:p.get().gameId||"unknown",arc:String(t.requestCount),if:A()?"1":"0",rt:a,...n};try{t.slot.addService(googletag.pubads()),t.slot.setConfig({targeting:r}),googletag.display(t.slot),y(`[GAM] (${e}) Preloading unit ${i}`,r)}catch(o){t.rejectPreload&&t.rejectPreload(new Error(`[GAM] (${e}) Slot setup failed: ${o}`))}}else t.rejectPreload&&t.rejectPreload(new Error(`[GAM] (${e}) Slot definition failed`))})}),t.preloadPromise):Promise.reject(new Error("[GAM] Not initialized"))},_=async(e=k,n=D,t=x,i={})=>{if(E.isReady||E.isInitializing)return void y("[GAM] Init cancelled, API already active or initializing");E.isInitializing=!0,E.config={parentNetworkCode:e,childNetworkCode:i.childNetworkCode||"",interstitialUnit:n,rewardedUnit:t,testMode:!!i.testMode};const a=E.config.childNetworkCode?`${E.config.parentNetworkCode},${E.config.childNetworkCode}`:E.config.parentNetworkCode;y(`[GAM] Init (Network: ${a}, TestMode: ${E.config.testMode})`);try{window.googletag=window.googletag||{cmd:[]},await(async e=>{var n,t,i,a;for(const{src:o,...r}of e){if(y(`Load file: ${o}`),!o)continue;const e=null==(a=null==(i=null==(n=o.split)?void 0:(t=n.call(o,"?")[0]).split)?void 0:i.call(t,".").pop())?void 0:a.toLowerCase();"js"===e||"cjs"===e?await L(o,r):"css"===e?await T(o,r):y(`Could not load file, unknown extension: ${e}`)}})([{src:"https://securepubads.g.doubleclick.net/tag/js/gpt.js",async:!0,crossorigin:"anonymous"}]),await new Promise(e=>{window.googletag.cmd.push(()=>{(()=>{const e=googletag.pubads();e.addEventListener("slotRenderEnded",e=>{y("[GAM] slotRenderEnded",e),e.isEmpty&&(e.slot===E.ads.interstitial.slot&&E.ads.interstitial.rejectPreload&&E.ads.interstitial.rejectPreload(new Error("[GAM] No fill for Interstitial")),e.slot===E.ads.rewarded.slot&&E.ads.rewarded.rejectPreload&&E.ads.rewarded.rejectPreload(new Error("[GAM] No fill for Rewarded Ad")))}),e.addEventListener("gameManualInterstitialSlotReady",e=>{y("[GAM] gameManualInterstitialSlotReady",e),e.slot===E.ads.interstitial.slot&&(y("[GAM] Interstitial is READY."),E.ads.interstitial.showAdCallback=e.makeGameManualInterstitialVisible,E.ads.interstitial.resolvePreload&&E.ads.interstitial.resolvePreload(!0))}),e.addEventListener("gameManualInterstitialSlotClosed",e=>{y("[GAM] gameManualInterstitialSlotClosed",e),e.slot===E.ads.interstitial.slot&&(y("[GAM] Interstitial CLOSED."),E.ads.interstitial.showAdCallback=null,E.ads.interstitial.resolveShow&&(E.ads.interstitial.resolveShow(!0),E.ads.interstitial.resolveShow=null),E.ads.interstitial.preloadPromise=null)}),e.addEventListener("rewardedSlotReady",e=>{y("[GAM] rewardedSlotReady",e),e.slot===E.ads.rewarded.slot&&(y("[GAM] Rewarded Ad is READY."),E.ads.rewarded.showAdCallback=e.makeRewardedVisible,E.ads.rewarded.resolvePreload&&E.ads.rewarded.resolvePreload(!0))}),e.addEventListener("rewardedSlotGranted",e=>{y("[GAM] rewardedSlotGranted",e),e.slot===E.ads.rewarded.slot&&(y("[GAM] Reward GRANTED."),E.ads.rewarded.isRewardGranted=!0)}),e.addEventListener("rewardedSlotClosed",e=>{y("[GAM] rewardedSlotClosed",e),e.slot===E.ads.rewarded.slot&&(y(`[GAM] Rewarded Ad CLOSED. Granted: ${E.ads.rewarded.isRewardGranted}`),E.ads.rewarded.showAdCallback=null,E.ads.rewarded.resolveShow&&(E.ads.rewarded.resolveShow(E.ads.rewarded.isRewardGranted),E.ads.rewarded.resolveShow=null),E.ads.rewarded.preloadPromise=null)})})(),googletag.setConfig({disableInitialLoad:!1,targeting:i.globalTargeting||{}}),googletag.enableServices(),E.isReady=!0,y("[GAM] Publisher Tag is ready."),e()})})}catch(o){b("[GAM] Initialization failed:",o)}finally{E.isInitializing=!1}};var I=(e=>(e.LEVEL_START="event/level/start",e.LEVEL_END="event/level/end",e.
1LEVEL_UPDATE="event/level/update",e.PING="event/ping",e.AD="event/ad",e.INFO_PAID="event/info/paid",e.PAYMENT="event/payment",e.CUSTOM="event/custom",e))(I||{});const P=new Set(Object.values(I)),N="trackingUid";let M=null;const Z=async()=>{if("string"==typeof M&&M.length)return M;let e;a.log(`${W()} retrieve userId...`);try{if(e=await F(),void 0!==e)return e}catch{}return a.log(`${W()} no local userId found, requesting new user...`),e=await J(),await X(e).catch(e=>{a.warn(`${W()} saving userId failed.`)}),M=e,e},J=async e=>{var n;a.log(`${W()} create new user...`);const t=U()+"event/user",i=R(),o=B();if(a.log(`${W()} fetch('${t}'`,i,o),$())return H();const r=await fetch(t,{method:"POST",headers:i,body:JSON.stringify(o),signal:AbortSignal.timeout(1e4)});if(!r.ok)throw new Error(`http error! status: ${r.status}`);const s=await r.json();if("string"==typeof(null==(n=null==s?void 0:s.data)?void 0:n.uid))return s.data.uid;throw new Error("retrieving valid uid failed!")},B=()=>{var e,n,t;const i={locale:(null==(e=navigator.languages)?void 0:e[0])??navigator.language??"en",host:window.location?window.location.host:"unknown",domain:window.location?window.location.hostname:"unknown",path:window.location?window.location.pathname:"unknown",url:window.location?window.location.href:"unknown"},a=new URLSearchParams(window.location.search);return a.get("campaign")&&(i.tag=String(a.get("campaign"))),(null==(t=null==(n=window.famobi)?void 0:n.config)?void 0:t.aid)&&(i.aid=window.famobi.config.aid),i},R=e=>{var n,t;const i=p.get().gameId||"unknown",a={"Content-Type":"application/json","X-Version":z(),"X-Game":i,"X-Platform":V()};"string"==typeof(null==(t=null==(n=window.famobi)?void 0:n.config)?void 0:t.aid)&&(a["X-AID"]=window.famobi.config.aid),a["X-User"]=H();const o=new URLSearchParams(window.location.search);return o.get("original_ref")&&(a["X-Referrer"]=String(o.get("original_ref"))),a},F=async e=>{const n=`${p.get().gameId||"unknown"}:${N}`;a.log(`${W()} loading uid ('${n}')...`);const t=window.localStorage.getItem(n);if(null===t||"string"!=typeof t||!t.length||"undefined"===t||"null"===t)throw new Error("no valid userId found");return t},X=async(e,n)=>{const t=p.get().gameId||"unknown";if("string"!=typeof e||!e.length)throw new Error("no valid userId");const i=`${t}:${N}`;a.log(`${W()} saving userId '${e}' ('${i}')...`),window.localStorage.setItem(i,e)},H=()=>{let e=(new Date).getTime();return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,n=>{const t=(e+16*Math.random())%16|0;return e=Math.floor(e/16),("x"==n?t:3&t|8).toString(16)})};const G="[track] [famobi_tracking]",O={enabled:!1,debug:!0,version:"0",isMocked:!1};let Q=!1;const K=async()=>{if(Q)return void a.warn(`${G} init cancelled - already initialized`);const e=await Z();Q=!0,a.log(`${G} user initialized! (uid: '${e}')`),await ne().catch(e=>{a.warn(`${G} processQueue() failed`,e)})},j=()=>{setInterval(function(){setTimeout(function(){window.document.hidden?a.log("[track] hidden: famobi_tracking.EVENTS.PING skipped!"):ee(I.PING,{})},1e3*Math.floor(60*Math.random()))},6e4)},W=()=>G,U=()=>O.debug?"https://tracking.plutoniumbytes.de/":"https://master.tracking.html5games.com/",z=()=>{const{famobiTracking:e,version:n}=p.get(),t=null==e?void 0:e.version;return t&&"0"!==t?t:n||"0"},$=()=>(O.isMocked&&a.warn(`${G} --- MOCKED ---`),O.isMocked),V=()=>{if(void 0!==window.cordova&&window.cordova.platformId)switch(window.cordova.platformId){case"android":return"playstore";case"ios":return"appstore"}switch(g.get().name){case"googlePlayStore":return"playstore";case"appleAppStore":return"appstore"}return"unknown"},q=[],ee=async(e,n)=>{a.log(`${W()} trackEvent('${e}', ${JSON.stringify(n||{})})`),(e=>P.has(e))(e)&&"[object Object]"===Object.prototype.toString.call(n)&&(q.push({event:e,data:n||{}}),Q?await ne().catch(e=>{a.warn(`${W()} processQueue() failed`,e)}):a.warn(`${W()} isUserInitialized: false`))},ne=async()=>{for(;q.length>0;){const e=q.shift();e&&await te(e.event,e.data).catch(e=>{a.warn(`${W()} sendRequest failed:`,e)})}},te=async(e,n)=>{a.log(`${W()} sendRequest('${e}')`);const t=await Z().catch(e=>{}),i=U()+e,o=ie(t);if(a.log(`${W()} fetch(${i}`,o,n||{}),$())return;const r=await fetch(i,{method:"POST",headers:o,body:JSON.stringify(n),signal:AbortSignal.timeout(1e4)});if(!r.ok)throw new Error(`http error! status: ${r.status}`)},ie=e=>{var n,t;const i={"Content-Type":"application/json","X-Game":p.get().gameId||"unknown","X-Version":z(),"X-Platform":V()};return"string"==typeof e&&e.length&&(i["X-User"]=e),i["X-AID"]=(null==(t=null==(n=window.famobi)?void 0:n.config)?void 0:t.aid)||g.get().name||"unknown",i},ae=()=>!!p.get().features.iap;let oe=null;function re(e){a.log("[intern] showBlockingLoader(0.75)");const n=function(e){if(oe)return oe;const n=document.createElement("div");n.id="BlockingLoader",e=e??.75,Object.assign(n.style,{position:"absolute",inset:"0",width:"100%",height:"100%",background:`rgba(0, 0, 0, ${e})`,zIndex:"999",display:"none",pointerEvents:"none",touchAction:"none",userSelect:"none",opacity:"0",transition:"opacity 0.18s ease-out"});const t=e=>{e.preventDefault(),e.stopPropagation()};["pointerdown","pointerup","touchstart","touchend","mousedown","click"].forEach(e
vendor: 4,343 bytes, line 1
1=>{n.addEventListener(e,t,{passive:!1})});const i=document.querySelector("canvas");return i&&i.parentElement?i.parentElement.insertBefore(n,i.nextSibling):document.body.appendChild(n),oe=n,n}(e);n.style.display="block",n.getBoundingClientRect(),n.style.opacity="1",n.style.pointerEvents="auto"}var se={};const ue=function(e){const n=[];let t=0;for(let i=0;i<e.length;i++){let a=e.charCodeAt(i);a<128?n[t++]=a:a<2048?(n[t++]=a>>6|192,n[t++]=63&a|128):55296==(64512&a)&&i+1<e.length&&56320==(64512&e.charCodeAt(i+1))?(a=65536+((1023&a)<<10)+(1023&e.charCodeAt(++i)),n[t++]=a>>18|240,n[t++]=a>>12&63|128,n[t++]=a>>6&63|128,n[t++]=63&a|128):(n[t++]=a>>12|224,n[t++]=a>>6&63|128,n[t++]=63&a|128)}return n},le={byteToCharMap_:null,charToByteMap_:null,byteToCharMapWebSafe_:null,charToByteMapWebSafe_:null,ENCODED_VALS_BASE:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",get ENCODED_VALS(){return this.ENCODED_VALS_BASE+"+/="},get ENCODED_VALS_WEBSAFE(){return this.ENCODED_VALS_BASE+"-_."},HAS_NATIVE_SUPPORT:"function"==typeof atob,encodeByteArray(e,n){if(!Array.isArray(e))throw Error("encodeByteArray takes an array as a parameter");this.init_();const t=n?this.byteToCharMapWebSafe_:this.byteToCharMap_,i=[];for(let a=0;a<e.length;a+=3){const n=e[a],o=a+1<e.length,r=o?e[a+1]:0,s=a+2<e.length,u=s?e[a+2]:0,l=n>>2,c=(3&n)<<4|r>>4;let h=(15&r)<<2|u>>6,d=63&u;s||(d=64,o||(h=64)),i.push(t[l],t[c],t[h],t[d])}return i.join("")},encodeString(e,n){return this.HAS_NATIVE_SUPPORT&&!n?btoa(e):this.encodeByteArray(ue(e),n)},decodeString(e,n){return this.HAS_NATIVE_SUPPORT&&!n?atob(e):function(e){const n=[];let t=0,i=0;for(;t<e.length;){const a=e[t++];if(a<128)n[i++]=String.fromCharCode(a);else if(a>191&&a<224){const o=e[t++];n[i++]=String.fromCharCode((31&a)<<6|63&o)}else if(a>239&&a<365){const o=((7&a)<<18|(63&e[t++])<<12|(63&e[t++])<<6|63&e[t++])-65536;n[i++]=String.fromCharCode(55296+(o>>10)),n[i++]=String.fromCharCode(56320+(1023&o))}else{const o=e[t++],r=e[t++];n[i++]=String.fromCharCode((15&a)<<12|(63&o)<<6|63&r)}}return n.join("")}(this.decodeStringToByteArray(e,n))},decodeStringToByteArray(e,n){this.init_();const t=n?this.charToByteMapWebSafe_:this.charToByteMap_,i=[];for(let a=0;a<e.length;){const n=t[e.charAt(a++)],o=a<e.length?t[e.charAt(a)]:0;++a;const r=a<e.length?t[e.charAt(a)]:64;++a;const s=a<e.length?t[e.charAt(a)]:64;if(++a,null==n||null==o||null==r||null==s)throw new ce;const u=n<<2|o>>4;if(i.push(u),64!==r){const e=o<<4&240|r>>2;if(i.push(e),64!==s){const e=r<<6&192|s;i.push(e)}}}return i},init_(){if(!this.byteToCharMap_){this.byteToCharMap_={},this.charToByteMap_={},this.byteToCharMapWebSafe_={},this.charToByteMapWebSafe_={};for(let e=0;e<this.ENCODED_VALS.length;e++)this.byteToCharMap_[e]=this.ENCODED_VALS.charAt(e),this.charToByteMap_[this.byteToCharMap_[e]]=e,this.byteToCharMapWebSafe_[e]=this.ENCODED_VALS_WEBSAFE.charAt(e),this.charToByteMapWebSafe_[this.byteToCharMapWebSafe_[e]]=e,e>=this.ENCODED_VALS_BASE.length&&(this.charToByteMap_[this.ENCODED_VALS_WEBSAFE.charAt(e)]=e,this.charToByteMapWebSafe_[this.ENCODED_VALS.charAt(e)]=e)}}};class ce extends Error{constructor(){super(...arguments),this.name="DecodeBase64StringError"}}const he=function(e){return function(e){const n=ue(e);return le.encodeByteArray(n,!0)}(e).replace(/\./g,"")},de=function(e){try{return le.decodeString(e,!0)}catch(n){console.error("base64Decode failed: ",n)}return null};const ge=()=>function(){if("undefined"!=typeof self)return self;if("undefined"!=typeof window)return window;if("undefined"!=typeof global)return global;throw new Error("Unable to locate global object.")}().__FIREBASE_DEFAULTS__,pe=()=>{try{return ge()||(()=>{if("undefined"==typeof process)return;const e=se.__FIREBASE_DEFAULTS__;return e?JSON.parse(e):void 0})()||(()=>{if("undefined"==typeof document)return;let e;try{e=document.cookie.match(/__FIREBASE_DEFAULTS__=([^;]+)/)}catch(t){return}const n=e&&de(e[1]);return n&&JSON.parse(n)})()}catch(e){return void console.info(`Unable to get __FIREBASE_DEFAULTS__ due to: ${e}`)}},me=e=>{var n,t;return null===(t=null===(n=pe())||void 0===n?void 0:n.emulatorHosts)||void 0===t?void 0:t[e]},fe=()=>{var e;return null===(e=pe())||void 0===e?void 0:e.config},ve=e=>{var n;return null===(n=pe())||void 0===n?void 0:n[`_${e}`]};class we{constructor(){this.reject=()=>{},this.resolve=()=>{}
1,this.promise=new Promise((e,n)=>{this.resolve=e,this.reject=n})}wrapCallback(e){return(n,t)=>{n?this.reject(n):this.resolve(t),"function"==typeof e&&(this.promise.catch(()=>{}),1===e.length?e(n):e(n,t))}}}function ye(){return"undefined"!=typeof navigator&&"string"==typeof navigator.userAgent?navigator.userAgent:""}function be(){return!function(){var e;const n=null===(e=pe())||void 0===e?void 0:e.forceEnvironment;if("node"===n)return!0;if("browser"===n)return!1;try{return"[object process]"===Object.prototype.toString.call(global.process)}catch(t){return!1}}()&&!!navigator.userAgent&&navigator.userAgent.includes("Safari")&&!navigator.userAgent.includes("Chrome")}class Se extends Error{constructor(e,n,t){super(n),this.code=e,this.customData=t,this.name="FirebaseError",Object.setPrototypeOf(this,Se.prototype),Error.captureStackTrace&&Error.captureStackTrace(this,Ce.prototype.create)}}class Ce{constructor(e,n,t){this.service=e,this.serviceName=n,this.errors=t}create(e,...n){const t=n[0]||{},i=`${this.service}/${e}`,a=this.errors[e],o=a?function(e,n){return e.replace(Le,(e,t)=>{const i=n[t];return null!=i?String(i):`<${t}?>`})}(a,t):"Error",r=`${this.serviceName}: ${o} (${i}).`;return new Se(i,r,t)}}const Le=/\{\$([^}]+)}/g;function Te(e,n){if(e===n)return!0;const t=Object.keys(e),i=Object.keys(n);for(const a of t){if(!i.includes(a))return!1;const t=e[a],o=n[a];if(Ee(t)&&Ee(o)){if(!Te(t,o))return!1}else if(t!==o)return!1}for(const a of i)if(!t.includes(a))return!1;return!0}function Ee(e){return null!==e&&"object"==typeof e}function ke(e){const n=[];for(const[t,i]of Object.entries(e))Array.isArray(i)?i.forEach(e=>{n.push(encodeURIComponent(t)+"="+encodeURIComponent(e))}):n.push(encodeURIComponent(t)+"="+encodeURIComponent(i));return n.length?"&"+n.join("&"):""}class De{constructor(e,n){this.observers=[],this.unsubscribes=[],this.observerCount=0,this.task=Promise.resolve(),this.finalized=!1,this.onNoObservers=n,this.task.then(()=>{e(this)}).catch(e=>{this.error(e)})}next(e){this.forEachObserver(n=>{n.next(e)})}error(e){this.forEachObserver(n=>{n.error(e)}),this.close(e)}complete(){this.forEachObserver(e=>{e.complete()}),this.close()}subscribe(e,n,t){let i;if(void 0===e&&void 0===n&&void 0===t)throw new Error("Missing Observer.");i=function(e,n){if("object"!=typeof e||null===e)return!1;for(const t of n)if(t in e&&"function"==typeof e[t])return!0;return!1}(e,["next","error","complete"])?e:{next:e,error:n,complete:t},void 0===i.next&&(i.next=xe),void 0===i.error&&(i.error=xe),void 0===i.complete&&(i.complete=xe);const a=this.unsubscribeOne.bind(this,this.observers.length);return this.finalized&&this.task.then(()=>{try{this.finalError?i.error(this.finalError):i.complete()}catch(e){}}),this.observers.push(i),a}unsubscribeOne(e){void 0!==this.observers&&void 0!==this.observers[e]&&(delete this.observers[e],this.observerCount-=1,0===this.observerCount&&void 0!==this.onNoObservers&&this.onNoObservers(this))}forEachObserver(e){if(!this.finalized)for(let n=0;n<this.observers.length;n++)this.sendOne(n,e)}sendOne(e,n){this.task.then(()=>{if(void 0!==this.observers&&void 0!==this.observers[e])try{n(this.observers[e])}catch(t){"undefined"!=typeof console&&console.error&&console.error(t)}})}close(e){this.finalized||(this.finalized=!0,void 0!==e&&(this.finalError=e),this.task.then(()=>{this.observers=void 0,this.onNoObservers=void 0}))}}function xe(){}function Ae(e){return e&&e._delegate?e._delegate:e}class Ye{constructor(e,n,t){this.name=e,this.instanceFactory=n,this.type=t,this.multipleInstances=!1,this.serviceProps={},this.instantiationMode="LAZY",this.onInstanceCreated=null}setInstantiationMode(e){return this.instantiationMode=e,this}setMultipleInstances(e){return this.multipleInstances=e,this}setServiceProps(e){return this.serviceProps=e,this}setInstanceCreatedCallback(e){return this.onInstanceCreated=e,this}}const _e="[DEFAULT]";class Ie{constructor(e,n){this.name=e,this.container=n,this.component=null,this.instances=new Map,this.instancesDeferred=new Map,this.instancesOptions=new Map,this.onInitCallbacks=new Map}get(e){const n=this.normalizeInstanceIdentifier(e);if(!this.instancesDeferred.has(n)){const e=new we;if(this.instancesDeferred.set(n,e),this.isInitialized(n)||this.shouldAutoInitialize())try{const t=this.getOrInitializeService({instanceIdentifier:n});t&&e.resolve(t)}catch(t){}}return this.instancesDeferred.get(n).promise}getImmediate(e){var n;const t=this.normalizeInstanceIdentifier(null==e?void 0:e.identifier),i=null!==(n=null==e?void 0:e.optional)&&void 0!==n&&n;if(!this.isInitialized(t)&&!this.shouldAutoInitialize()){if(i)return null;throw Error(`Service ${this.name} is not available`)}try{return this.getOrInitializeService({instanceIdentifier:t})}catch(a){if(i)return null;throw a}}getComponent(){return this.component}setComponent(e){if(e.name!==this.name)throw Error(`Mismatching Component ${e.name} for Provider ${this.name}.`);if(this.component)throw Error(`Component for ${this.name} has already been provided`);if(this.component=e,this.shouldAutoInitialize()){if(function(e){return"EAGER"===e.instantiationMode}(e))try{this.getOrInitializeService({instanceIdentifier:_e})}catch(n){}for(const[e,t]of this.instancesDeferred.entries()){const i=this.normalizeInstanceIdentifier(e);try{const e=this.getOrInitializeService({instanceIdentifier:i});t.resolve(e)}catch(n){}}}}clearInstance(e=_e){this.instancesDeferred.delete(e),this.instancesOptions.delete(e),this.instances.delete(e)}async delete(){const e=Array.from(this.instances.values());await Promise.all([...e.filter(e=>"INTERNAL"in e).map(e=>e.INTERNAL.delete()),...e.filter(e=>"_delete"in e).map(e=>e._delete())])}isComponentSet(){return null!=this.component}isInitialized(e=_e){return this.instances.has(e)}getOptions(e=_e){return this.instancesOptions.get(e)||{}}initialize(e={}){const{options:n={}}=e,t=this.normalizeInstanceIdentifier(e.instanceIdentifier);if(this.isInitialized(t))throw Error(`${this.name}(${t}) has already been initialized`);if(!this.isComponentSet())throw Error(`Component ${this.name} has not been registered yet`);const i=this.getOrInitializeService({instanceIdentifier:t,options:n});
vendor: 5,066 bytes, line 1
1for(const[a,o]of this.instancesDeferred.entries()){t===this.normalizeInstanceIdentifier(a)&&o.resolve(i)}return i}onInit(e,n){var t;const i=this.normalizeInstanceIdentifier(n),a=null!==(t=this.onInitCallbacks.get(i))&&void 0!==t?t:new Set;a.add(e),this.onInitCallbacks.set(i,a);const o=this.instances.get(i);return o&&e(o,i),()=>{a.delete(e)}}invokeOnInitCallbacks(e,n){const t=this.onInitCallbacks.get(n);if(t)for(const a of t)try{a(e,n)}catch(i){}}getOrInitializeService({instanceIdentifier:e,options:n={}}){let t=this.instances.get(e);if(!t&&this.component&&(t=this.component.instanceFactory(this.container,{instanceIdentifier:(i=e,i===_e?void 0:i),options:n}),this.instances.set(e,t),this.instancesOptions.set(e,n),this.invokeOnInitCallbacks(t,e),this.component.onInstanceCreated))try{this.component.onInstanceCreated(this.container,e,t)}catch(a){}var i;return t||null}normalizeInstanceIdentifier(e=_e){return this.component?this.component.multipleInstances?e:_e:e}shouldAutoInitialize(){return!!this.component&&"EXPLICIT"!==this.component.instantiationMode}}class Pe{constructor(e){this.name=e,this.providers=new Map}addComponent(e){const n=this.getProvider(e.name);if(n.isComponentSet())throw new Error(`Component ${e.name} has already been registered with ${this.name}`);n.setComponent(e)}addOrOverwriteComponent(e){this.getProvider(e.name).isComponentSet()&&this.providers.delete(e.name),this.addComponent(e)}getProvider(e){if(this.providers.has(e))return this.providers.get(e);const n=new Ie(e,this);return this.providers.set(e,n),n}getProviders(){return Array.from(this.providers.values())}}var Ne,Me;(Me=Ne||(Ne={}))[Me.DEBUG=0]="DEBUG",Me[Me.VERBOSE=1]="VERBOSE",Me[Me.INFO=2]="INFO",Me[Me.WARN=3]="WARN",Me[Me.ERROR=4]="ERROR",Me[Me.SILENT=5]="SILENT";const Ze={debug:Ne.DEBUG,verbose:Ne.VERBOSE,info:Ne.INFO,warn:Ne.WARN,error:Ne.ERROR,silent:Ne.SILENT},Je=Ne.INFO,Be={[Ne.DEBUG]:"log",[Ne.VERBOSE]:"log",[Ne.INFO]:"info",[Ne.WARN]:"warn",[Ne.ERROR]:"error"},Re=(e,n,...t)=>{if(n<e.logLevel)return;const i=(new Date).toISOString(),a=Be[n];if(!a)throw new Error(`Attempted to log a message with an invalid logType (value: ${n})`);console[a](`[${i}] ${e.name}:`,...t)};class Fe{constructor(e){this.name=e,this._logLevel=Je,this._logHandler=Re,this._userLogHandler=null}get logLevel(){return this._logLevel}set logLevel(e){if(!(e in Ne))throw new TypeError(`Invalid value "${e}" assigned to \`logLevel\``);this._logLevel=e}setLogLevel(e){this._logLevel="string"==typeof e?Ze[e]:e}get logHandler(){return this._logHandler}set logHandler(e){if("function"!=typeof e)throw new TypeError("Value assigned to `logHandler` must be a function");this._logHandler=e}get userLogHandler(){return this._userLogHandler}set userLogHandler(e){this._userLogHandler=e}debug(...e){this._userLogHandler&&this._userLogHandler(this,Ne.DEBUG,...e),this._logHandler(this,Ne.DEBUG,...e)}log(...e){this._userLogHandler&&this._userLogHandler(this,Ne.VERBOSE,...e),this._logHandler(this,Ne.VERBOSE,...e)}info(...e){this._userLogHandler&&this._userLogHandler(this,Ne.INFO,...e),this._logHandler(this,Ne.INFO,...e)}warn(...e){this._userLogHandler&&this._userLogHandler(this,Ne.WARN,...e),this._logHandler(this,Ne.WARN,...e)}error(...e){this._userLogHandler&&this._userLogHandler(this,Ne.ERROR,...e),this._logHandler(this,Ne.ERROR,...e)}}let Xe,He;const Ge=new WeakMap,Oe=new WeakMap,Qe=new WeakMap,Ke=new WeakMap,je=new WeakMap;let We={get(e,n,t){if(e instanceof IDBTransaction){if("done"===n)return Oe.get(e);if("objectStoreNames"===n)return e.objectStoreNames||Qe.get(e);if("store"===n)return t.objectStoreNames[1]?void 0:t.objectStore(t.objectStoreNames[0])}return $e(e[n])},set:(e,n,t)=>(e[n]=t,!0),has:(e,n)=>e instanceof IDBTransaction&&("done"===n||"store"===n)||n in e};function Ue(e){return e!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(He||(He=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(e)?function(...n){return e.apply(Ve(this),n),$e(Ge.get(this))}:function(...n){return $e(e.apply(Ve(this),n))}:function(n,...t){const i=e.call(Ve(this),n,...t);return Qe.set(i,n.sort?n.sort():[n]),$e(i)}}function ze(e){return"function"==typeof e?Ue(e):(e instanceof IDBTransaction&&function(e){if(Oe.has(e))return;const n=new Promise((n,t)=>{const i=()=>{e.removeEventListener("complete",a),e.removeEventListener("error",o),e.removeEventListener("abort",o)},a=()=>{n(),i()},o=()=>{t(e.error||new DOMException("AbortError","AbortError")),i()};e.addEventListener("complete",a),e.addEventListener("error",o),e.addEventListener("abort",o)});Oe.set(e,n)}(e),n=e,(Xe||(Xe=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])).some(e=>n instanceof e)?new Proxy(e,We):e);var n}function $e(e){if(e instanceof IDBRequest)return function(e){const n=new Promise((n,t)=>{const i=()=>{e.removeEventListener("success",a),e.removeEventListener("error",o)},a=()=>{n($e(e.result)),i()},o=()=>{t(e.error),i()};e.addEventListener("success",a),e.addEventListener("error",o)});return n.then(n=>
1{n instanceof IDBCursor&&Ge.set(n,e)}).catch(()=>{}),je.set(n,e),n}(e);if(Ke.has(e))return Ke.get(e);const n=ze(e);return n!==e&&(Ke.set(e,n),je.set(n,e)),n}const Ve=e=>je.get(e);const qe=["get","getKey","getAll","getAllKeys","count"],en=["put","add","delete","clear"],nn=new Map;function tn(e,n){if(!(e instanceof IDBDatabase)||n in e||"string"!=typeof n)return;if(nn.get(n))return nn.get(n);const t=n.replace(/FromIndex$/,""),i=n!==t,a=en.includes(t);if(!(t in(i?IDBIndex:IDBObjectStore).prototype)||!a&&!qe.includes(t))return;const o=async function(e,...n){const o=this.transaction(e,a?"readwrite":"readonly");let r=o.store;return i&&(r=r.index(n.shift())),(await Promise.all([r[t](...n),a&&o.done]))[0]};return nn.set(n,o),o}We=(e=>({...e,get:(n,t,i)=>tn(n,t)||e.get(n,t,i),has:(n,t)=>!!tn(n,t)||e.has(n,t)}))(We);class an{constructor(e){this.container=e}getPlatformInfoString(){return this.container.getProviders().map(e=>{if(function(e){const n=e.getComponent();return"VERSION"===(null==n?void 0:n.type)}(e)){const n=e.getImmediate();return`${n.library}/${n.version}`}return null}).filter(e=>e).join(" ")}}const on="@firebase/app",rn="0.10.13",sn=new Fe("@firebase/app"),un="@firebase/app-compat",ln="@firebase/analytics-compat",cn="@firebase/analytics",hn="@firebase/app-check-compat",dn="@firebase/app-check",gn="@firebase/auth",pn="@firebase/auth-compat",mn="@firebase/database",fn="@firebase/data-connect",vn="@firebase/database-compat",wn="@firebase/functions",yn="@firebase/functions-compat",bn="@firebase/installations",Sn="@firebase/installations-compat",Cn="@firebase/messaging",Ln="@firebase/messaging-compat",Tn="@firebase/performance",En="@firebase/performance-compat",kn="@firebase/remote-config",Dn="@firebase/remote-config-compat",xn="@firebase/storage",An="@firebase/storage-compat",Yn="@firebase/firestore",_n="@firebase/vertexai-preview",In="@firebase/firestore-compat",Pn="firebase",Nn="[DEFAULT]",Mn={[on]:"fire-core",[un]:"fire-core-compat",[cn]:"fire-analytics",[ln]:"fire-analytics-compat",[dn]:"fire-app-check",[hn]:"fire-app-check-compat",[gn]:"fire-auth",[pn]:"fire-auth-compat",[mn]:"fire-rtdb",[fn]:"fire-data-connect",[vn]:"fire-rtdb-compat",[wn]:"fire-fn",[yn]:"fire-fn-compat",[bn]:"fire-iid",[Sn]:"fire-iid-compat",[Cn]:"fire-fcm",[Ln]:"fire-fcm-compat",[Tn]:"fire-perf",[En]:"fire-perf-compat",[kn]:"fire-rc",[Dn]:"fire-rc-compat",[xn]:"fire-gcs",[An]:"fire-gcs-compat",[Yn]:"fire-fst",[In]:"fire-fst-compat",[_n]:"fire-vertex","fire-js":"fire-js",[Pn]:"fire-js-all"},Zn=new Map,Jn=new Map,Bn=new Map;function Rn(e,n){try{e.container.addComponent(n)}catch(t){sn.debug(`Component ${n.name} failed to register with FirebaseApp ${e.name}`,t)}}function Fn(e){const n=e.name;if(Bn.has(n))return sn.debug(`There were multiple attempts to register component ${n}.`),!1;Bn.set(n,e);for(const t of Zn.values())Rn(t,e);for(const t of Jn.values())Rn(t,e);return!0}function Xn(e,n){const t=e.container.getProvider("heartbeat").getImmediate({optional:!0});return t&&t.triggerHeartbeat(),e.container.getProvider(n)}function Hn(e){return void 0!==e.settings}const Gn=new Ce("app","Firebase",{"no-app":"No Firebase App '{$appName}' has been created - call initializeApp() first","bad-app-name":"Illegal App name: '{$appName}'","duplicate-app":"Firebase App named '{$appName}' already exists with different options or config","app-deleted":"Firebase App named '{$appName}' already deleted","server-app-deleted":"Firebase Server App has been deleted","no-options":"Need to provide options, when not being deployed to hosting via source.","invalid-app-argument":"firebase.{$appName}() takes either no argument or a Firebase App instance.","invali
1d-log-argument":"First argument to `onLog` must be null or a function.","idb-open":"Error thrown when opening IndexedDB. Original error: {$originalErrorMessage}.","idb-get":"Error thrown when reading from IndexedDB. Original error: {$originalErrorMessage}.","idb-set":"Error thrown when writing to IndexedDB. Original error: {$originalErrorMessage}.","idb-delete":"Error thrown when deleting from IndexedDB. Original error: {$originalErrorMessage}.","finalization-registry-not-supported":"FirebaseServerApp deleteOnDeref field defined but the JS runtime does not support FinalizationRegistry.","invalid-server-app-environment":"FirebaseServerApp is not for use in browser environments."});class On{constructor(e,n,t){this._isDeleted=!1,this._options=Object.assign({},e),this._config=Object.assign({},n),this._name=n.name,this._automaticDataCollectionEnabled=n.automaticDataCollectionEnabled,this._container=t,this.container.addComponent(new Ye("app",()=>this,"PUBLIC"))}get automaticDataCollectionEnabled(){return this.checkDestroyed(),this._automaticDataCollectionEnabled}set automaticDataCollectionEnabled(e){this.checkDestroyed(),this._automaticDataCollectionEnabled=e}get name(){return this.checkDestroyed(),this._name}get options(){return this.checkDestroyed(),this._options}get config(){return this.checkDestroyed(),this._config}get container(){return this._container}get isDeleted(){return this._isDeleted}set isDeleted(e){this._isDeleted=e}checkDestroyed(){if(this.isDeleted)throw Gn.create("app-deleted",{appName:this._name})}}const Qn="10.14.1";function Kn(e,n={}){let t=e;if("object"!=typeof n){n={name:n}}const i=Object.assign({name:Nn,automaticDataCollectionEnabled:!1},n),a=i.name;if("string"!=typeof a||!a)throw Gn.create("bad-app-name",{appName:String(a)});if(t||(t=fe()),!t)throw Gn.create("no-options");const o=Zn.get(a);if(o){if(Te(t,o.options)&&Te(i,o.config))return o;throw Gn.create("duplicate-app",{appName:a})}const r=new Pe(a);for(const u of Bn.values())r.addComponent(u);const s=new On(t,i,r);return Zn.set(a,s),s}function jn(e=Nn){const n=Zn.get(e);if(!n&&e===Nn&&fe())return Kn();if(!n)throw Gn.create("no-app",{appName:e});return n}function Wn(e,n,t){var i;let a=null!==(i=Mn[e])&&void 0!==i?i:e;t&&(a+=`-${t}`);const o=a.match(/\s|\//),r=n.match(/\s|\//);if(o||r){const e=[`Unable to register library "${a}" with version "${n}":`];return o&&e.push(`library name "${a}" contains illegal characters (whitespace or "/")`),o&&r&&e.push("and"),r&&e.push(`version name "${n}" contains illegal characters (whitespace or "/")`),void sn.warn(e.join(" "))}Fn(new Ye(`${a}-version`,()=>({library:a,version:n}),"VERSION"))}const Un="firebase-heartbeat-store";let zn=null;function $n(){return zn||(zn=function(e,n,{blocked:t,upgrade:i,blocking:a,terminated:o}={}){const r=indexedDB.open(e,n),s=$e(r);return i&&r.addEventListener("upgradeneeded",e=>{i($e(r.result),e.oldVersion,e.newVersion,$e(r.transaction),e)}),t&&r.addEventListener("blocked",e=>t(e.oldVersion,e.newVersion,e)),s.then(e=>{o&&e.addEventListener("close",()=>o()),a&&e.addEventListener("versionchange",e=>a(e.oldVersion,e.newVersion,e))}).catch(()=>{}),s}("firebase-heartbeat-database",1,{upgrade:(e,n)=>{if(0===n)try{e.createObjectStore(Un)}catch(t){console.warn(t)}}}).catch(e=>{throw Gn.create("idb-open",{originalErrorMessage:e.message})})),zn}async function Vn(e,n){try{const t=(await $n()).transaction(Un,"readwrite"),i=t.objectStore(Un);await i.put(n,qn(e)),await t.done}catch(t){if(t instanceof Se)sn.warn(t.message);else{const e=Gn.create("idb-set",{originalErrorMessage:null==t?void 0:t.message});sn.warn(e.message)}}}function qn(e){return`${e.name}!${e.options.appId}`}class et{constructor(e){this.container=e,this._heartbeatsCache=null;const n=this.container.getProvider("app").getImmediate();this._storage=new tt(n),this._heartbeatsCachePromise=this._storage.read().then(e=>(this._heartbeatsCache=e,e))}async triggerHeartbeat(){var e,n;try{const t=this.container.getProvider("platform-logger").getImmediate().getPlatformInfoString(),i=nt();if(null==(null===(e=this._heartbeatsCache)||void 0===e?void 0:e.heartbeats)&&(this._heartbeatsCache=await this._heartbeatsCachePromise,null==(null===(n=this._heartbeatsCache)||void 0===n?void 0:n.heartbeats)))return;if(this._heartbeatsCache.lastSentHeartbeatDate===i||this._heartbeatsCache.heartbeats.some(e=>e.date===i))return;return this._heartbeatsCache.heartbeats.push({date:i,agent:t}),this._heartbeatsCache.heartbeats=this._heartbeatsCache.heartbeats.filter(e=>{const n=new Date(e.date).valueOf();return Date.now()-n<=2592e6}),this._storage.overwrite(this._heartbeatsCache)}catch(t){sn.warn(t)}}async getHeartbeatsHeader(){var e;try{if(null===this._heartbeatsCache&&await this._heartbeatsCachePromise,null==(null===(e=this._heartbeatsCache)||void 0===e?void 0:e.heartbeats)||0===this._heartbeatsCache.heartbeats.length)return"";const n=nt(),{heartbeatsToSend:t,unsentEntries:i}=function(e,n=1024){const t=[];let i=e.slice();for(const a of e){const e=t.find(e=>e.agent===a.agent);if(e){if(e.dates.push(a.date),it(t)>n){e.dates.pop();break}}else if(t.push({agent:a.agent,dates:[a.date]}),it(t)>n){t.pop();break}i=i.slice(1)}return{heartbeatsToSend:t,unsentEntries:i}}(this._heartbeatsCache.heartbeats),a=he(JSON.stringify({version:2,heartbeats:t}));return this._heartbeatsCache.lastSentHeartbeatDate=n,i.length>0?(this._heartbeatsCache.heartbeats=i,await this._storage.overwrite(this._heartbeatsCache)):(this._heartbeatsCache.heartbeats=[],this._storage.overwrite(this._heartbeatsCache)),a}catch(n){return sn.warn(n),""}}}function nt(){return(new Date).toISOString().substring(0,10)}class tt{constructor(e){this.app=e,this._canUseIndexedDBPromise=this.runIndexedDBEnvironmentCheck()}async runIndexedDBEnvironmentCheck(){return!!function(){try{return"object"==typeof indexedDB}catch(e){return!1}}
1()&&new Promise((e,n)=>{try{let t=!0;const i="validate-browser-context-for-indexeddb-analytics-module",a=self.indexedDB.open(i);a.onsuccess=()=>{a.result.close(),t||self.indexedDB.deleteDatabase(i),e(!0)},a.onupgradeneeded=()=>{t=!1},a.onerror=()=>{var e;n((null===(e=a.error)||void 0===e?void 0:e.message)||"")}}catch(t){n(t)}}).then(()=>!0).catch(()=>!1)}async read(){if(await this._canUseIndexedDBPromise){const e=await async function(e){try{const n=(await $n()).transaction(Un),t=await n.objectStore(Un).get(qn(e));return await n.done,t}catch(n){if(n instanceof Se)sn.warn(n.message);else{const e=Gn.create("idb-get",{originalErrorMessage:null==n?void 0:n.message});sn.warn(e.message)}}}(this.app);return(null==e?void 0:e.heartbeats)?e:{heartbeats:[]}}return{heartbeats:[]}}async overwrite(e){var n;if(await this._canUseIndexedDBPromise){const t=await this.read();return Vn(this.app,{lastSentHeartbeatDate:null!==(n=e.lastSentHeartbeatDate)&&void 0!==n?n:t.lastSentHeartbeatDate,heartbeats:e.heartbeats})}}async add(e){var n;if(await this._canUseIndexedDBPromise){const t=await this.read();return Vn(this.app,{lastSentHeartbeatDate:null!==(n=e.lastSentHeartbeatDate)&&void 0!==n?n:t.lastSentHeartbeatDate,heartbeats:[...t.heartbeats,...e.heartbeats]})}}}function it(e){return he(JSON.stringify({version:2,heartbeats:e})).length}var at;at="",Fn(new Ye("platform-logger",e=>new an(e),"PRIVATE")),Fn(new Ye("heartbeat",e=>new et(e),"PRIVATE")),Wn(on,rn,at),Wn(on,rn,"esm2017"),Wn("fire-js","");var ot,rt,st="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};(function(){var e;function n(){this.blockSize=-1,this.blockSize=64,this.g=Array(4),this.B=Array(this.blockSize),this.o=this.h=0,this.s()}function t(e,n,t){t||(t=0);var i=Array(16);if("string"==typeof n)for(var a=0;16>a;++a)i[a]=n.charCodeAt(t++)|n.charCodeAt(t++)<<8|n.charCodeAt(t++)<<16|n.charCodeAt(t++)<<24;else for(a=0;16>a;++a)i[a]=n[t++]|n[t++]<<8|n[t++]<<16|n[t++]<<24;n=e.g[0],t=e.g[1],a=e.g[2];var o=e.g[3],r=n+(o^t&(a^o))+i[0]+3614090360&4294967295;r=(t=(a=(o=(n=(t=(a=(o=(n=(t=(a=(o=(n=(t=(a=(o=(n=(t=(a=(o=(n=(t=(a=(o=(n=(t=(a=(o=(n=(t=(a=(o=(n=(t=(a=(o=(n=(t=(a=(o=(n=(t=(a=(o=(n=(t=(a=(o=(n=(t=(a=(o=(n=(t=(a=(o=(n=(t=(a=(o=(n=t+(r<<7&4294967295|r>>>25))+((r=o+(a^n&(t^a))+i[1]+3905402710&4294967295)<<12&4294967295|r>>>20))+((r=a+(t^o&(n^t))+i[2]+606105819&4294967295)<<17&4294967295|r>>>15))+((r=t+(n^a&(o^n))+i[3]+3250441966&4294967295)<<22&4294967295|r>>>10))+((r=n+(o^t&(a^o))+i[4]+4118548399&4294967295)<<7&4294967295|r>>>25))+((r=o+(a^n&(t^a))+i[5]+1200080426&4294967295)<<12&4294967295|r>>>20))+((r=a+(t^o&(n^t))+i[6]+2821735955&4294967295)<<17&4294967295|r>>>15))+((r=t+(n^a&(o^n))+i[7]+4249261313&4294967295)<<22&4294967295|r>>>10))+((r=n+(o^t&(a^o))+i[8]+1770035416&4294967295)<<7&4294967295|r>>>25))+((r=o+(a^n&(t^a))+i[9]+2336552879&4294967295)<<12&4294967295|r>>>20))+((r=a+(t^o&(n^t))+i[10]+4294925233&4294967295)<<17&4294967295|r>>>15))+((r=t+(n^a&(o^n))+i[11]+2304563134&4294967295)<<22&4294967295|r>>>10))+((r=n+(o^t&(a^o))+i[12]+1804603682&4294967295)<<7&4294967295|r>>>25))+((r=o+(a^n&(t^a))+i[13]+4254626195&4294967295)<<12&4294967295|r>>>20))+((r=a+(t^o&(n^t))+i[14]+2792965006&4294967295)<<17&4294967295|r>>>15))+((r=t+(n^a&(o^n))+i[15]+1236535329&4294967295)<<22&4294967295|r>>>10))+((r=n+(a^o&(t^a))+i[1]+4129170786&4294967295)<<5&4294967295|r>>>27))+((r=o+(t^a&(n^t))+i[6]+3225465664&4294967295)<<9&4294967295|r>>>23))+((r=a+(n^t&(o^n))+i[11]+643717713&4294967295)<<14&4294967295|r>>>18))+((r=t+(o^n&(a^o))+i[0]+3921069994&4294967295)<<20&4294967295|r>>>12))+((r=n+(a^o&(t^a))+i[5]+3593408605&4294967295)<<5&4294967295|r>>>27))+((r=o+(t^a&(n^t))+i[10]+38016083&4294967295)<<9&4294967295|r>>>23))+((r=a+(n^t&(o^n))+i[15]+3634488961&4294967295)<<14&4294967295|r>>>18))+((r=t+(o^n&(a^o))+i[4]+3889429448&4294967295)<<20&4294967295|r>>>12))+((r=n+(a^o&(t^a))+i[9]+568446438&4294967295)<<5&4294967295|r>>>27))+((r=o+(t^a&(n^t))+i[14]+3275163606&4294967295)<<9&4294967295|r>>>23))+((r=a+(n^t&(o^n))+i[3]+4107603335&4294967295)<<14&4294967295|r>>>18))+((r=t+(o^n&(a^o))+i[8]+1163531501&4294967295)<<20&4294967295|r>>>12))+((r=n+(a^o&(t^a))+i[13]+2850285829&4294967295)<<5&4294967295|r>>>27))+((r=o+(t^a&(n^t))+i[2]+4243563512&4294967295)<<9&4294967295|r>>>23))+((r=a+(n^t&(o^n))+i[7]+1735328473&4294967295)<<14&4294967295|r>>>18))+((r=t+(o^n&(a^o))+i[12]+2368359562&4294967295)<<20&4294967295|r>>>
112))+((r=n+(t^a^o)+i[5]+4294588738&4294967295)<<4&4294967295|r>>>28))+((r=o+(n^t^a)+i[8]+2272392833&4294967295)<<11&4294967295|r>>>21))+((r=a+(o^n^t)+i[11]+1839030562&4294967295)<<16&4294967295|r>>>16))+((r=t+(a^o^n)+i[14]+4259657740&4294967295)<<23&4294967295|r>>>9))+((r=n+(t^a^o)+i[1]+2763975236&4294967295)<<4&4294967295|r>>>28))+((r=o+(n^t^a)+i[4]+1272893353&4294967295)<<11&4294967295|r>>>21))+((r=a+(o^n^t)+i[7]+4139469664&4294967295)<<16&4294967295|r>>>16))+((r=t+(a^o^n)+i[10]+3200236656&4294967295)<<23&4294967295|r>>>9))+((r=n+(t^a^o)+i[13]+681279174&4294967295)<<4&4294967295|r>>>28))+((r=o+(n^t^a)+i[0]+3936430074&4294967295)<<11&4294967295|r>>>21))+((r=a+(o^n^t)+i[3]+3572445317&4294967295)<<16&4294967295|r>>>16))+((r=t+(a^o^n)+i[6]+76029189&4294967295)<<23&4294967295|r>>>9))+((r=n+(t^a^o)+i[9]+3654602809&4294967295)<<4&4294967295|r>>>28))+((r=o+(n^t^a)+i[12]+3873151461&4294967295)<<11&4294967295|r>>>21))+((r=a+(o^n^t)+i[15]+530742520&4294967295)<<16&4294967295|r>>>16))+((r=t+(a^o^n)+i[2]+3299628645&4294967295)<<23&4294967295|r>>>9))+((r=n+(a^(t|~o))+i[0]+4096336452&4294967295)<<6&4294967295|r>>>26))+((r=o+(t^(n|~a))+i[7]+1126891415&4294967295)<<10&4294967295|r>>>22))+((r=a+(n^(o|~t))+i[14]+2878612391&4294967295)<<15&4294967295|r>>>17))+((r=t+(o^(a|~n))+i[5]+4237533241&4294967295)<<21&4294967295|r>>>11))+((r=n+(a^(t|~o))+i[12]+1700485571&4294967295)<<6&4294967295|r>>>26))+((r=o+(t^(n|~a))+i[3]+2399980690&4294967295)<<10&4294967295|r>>>22))+((r=a+(n^(o|~t))+i[10]+4293915773&4294967295)<<15&4294967295|r>>>17))+((r=t+(o^(a|~n))+i[1]+2240044497&4294967295)<<21&4294967295|r>>>11))+((r=n+(a^(t|~o))+i[8]+1873313359&4294967295)<<6&4294967295|r>>>26))+((r=o+(t^(n|~a))+i[15]+4264355552&4294967295)<<10&4294967295|r>>>22))+((r=a+(n^(o|~t))+i[6]+2734768916&4294967295)<<15&4294967295|r>>>17))+((r=t+(o^(a|~n))+i[13]+1309151649&4294967295)<<21&4294967295|r>>>11))+((o=(n=t+((r=n+(a^(t|~o))+i[4]+4149444226&4294967295)<<6&4294967295|r>>>26))+((r=o+(t^(n|~a))+i[11]+3174756917&4294967295)<<10&4294967295|r>>>22))^((a=o+((r=a+(n^(o|~t))+i[2]+718787259&4294967295)<<15&4294967295|r>>>17))|~n))+i[9]+3951481745&4294967295,e.g[0]=e.g[0]+n&4294967295,e.g[1]=e.g[1]+(a+(r<<21&4294967295|r>>>11))&4294967295,e.g[2]=e.g[2]+a&4294967295,e.g[3]=e.g[3]+o&4294967295}function i(e,n){this.h=n;for(var t=[],i=!0,a=e.length-1;0<=a;a--){var o=0|e[a];i&&o==n||(t[a]=o,i=!1)}this.g=t}!function(e,n){function t(){}t.prototype=n.prototype,e.D=n.prototype,e.prototype=new t,e.prototype.constructor=e,e.C=function(e,t,i){for(var a=Array(arguments.length-2),o=2;o<arguments.length;o++)a[o-2]=arguments[o];return n.prototype[t].apply(e,a)}}(n,function(){this.blockSize=-1}),n.prototype.s=function(){this.g[0]=1732584193,this.g[1]=4023233417,this.g[2]=2562383102,this.g[3]=271733878,this.o=this.h=0},n.prototype.u=function(e,n){void 0===n&&(n=e.length);for(var i=n-this.blockSize,a=this.B,o=this.h,r=0;r<n;){if(0==o)for(;r<=i;)t(this,e,r),r+=this.blockSize;if("string"==typeof e){for(;r<n;)if(a[o++]=e.charCodeAt(r++),o==this.blockSize){t(this,a),o=0;break}}else for(;r<n;)if(a[o++]=e[r++],o==this.blockSize){t(this,a),o=0;break}}this.h=o,this.o+=n},n.prototype.v=function(){var e=Array((56>this.h?this.blockSize:2*this.blockSize)-this.h);e[0]=128;for(var n=1;n<e.length-8;++n)e[n]=0;var t=8*this.o;for(n=e.length-8;n<e.length;++n)e[n]=255&t,t/=256;for(this.u(e),e=Array(16),n=t=0;4>n;++n)for(var i=0;32>i;i+=8)e[t++]=this.g[n]>>>i&255;return e};var a={};function o(e){return-128<=e&&128>e?function(e,n){var t=a;return Object.prototype.hasOwnProperty.call(t,e)?t[e]:t[e]=n(e)}(e,function(e){return new i([0|e],0>e?-1:0)}):new i([0|e],0>e?-1:0)}function r(e){if(isNaN(e)||!isFinite(e))return s;if(0>e)return d(r(-e));for(var n=[],t=1,a=0;e>=t;a++)n[a]=e/t|0,t*=4294967296;return new i(n,0)}var s=o(0),u=o(1),l=o(16777216);function c(e){if(0!=e.h)return!1;for(var n=0;n<e.g.length;n++)if(0!=e.g[n])return!1;return!0}function h(e){return-1==e.h}function d(e){for(var n=e.g.length,t=[],a=0;a<n;a++)t[a]=~e.g[a];return new i(t,~e.h).add(u)}function g(e,n){return e.add(d(n))}function p(e,n){for(;(65535&e[n])!=e[n];)e[n+1]+=e[n]>>>16,e[n]&=65535,n++}function m(e,n){this.g=e,this.h=n}function f(e,n){if(c(n))throw Error("division by zero");if(c(e))return new m(s,s);if(h(e))return n=f(d(e),n),new m(d(n.g),d(n.h));if(h(n))return n=f(e,d(n)),new m(d(n.g),n.h);if(30<e.g.length){if(h(e)||h(n))throw Error("slowDivide_ only works with positive integers.");for(var t=u,i=n;0>=i.l(e);)t=v(t),i=v(i);var a=w(t,1),o=w(i,1);for(i=w(i,2),t=w(t,2);!c(i);){var l=o.add(i);0>=l.l(e)&&(a=a.add(t),o=l),i=w(i,1),t=w(t,1)}return n=g(e,a.j(n)),new m(a,n)}for(a=s;0<=e.l(n);){for(t=Math.max(1,Math.floor(e.m()/n.m())),i=48>=(i=Math.ceil(Math.log(t)/Math.LN2))?1:Math.pow(2,i-48),l=(o=r(t)).j(n);h(l)||0<l.l(e);)l=(o=r(t-=i)).j(n);c(o)&&(o=u),a=a.add(o),e=g(e,l)}return new m(a,e)}function v(e){for(var n=e.g.length+1,t=[],a=0;a<n;a++)t[a]=e.i(a)<<1|e.i(a-1)>>>31;return new i(t,e.h)}function w(e,n){var t=n>>5;n%=32;for(var a=e.g.length-t,o=[],r=0;r<a;r++)o[r]=0<n?e.i(r+t)>>>n|e.i(r+t+1)<<32-n:e.i(r+t);return new i(o,e.h)}(e=i.prototype).m=function(){if(h(this))return-d(this).m();for(var e=0,n=1,t=0;t<this.g.length;t++){var i=this.i(t);e+=(0<=i?i:4294967296+i)*n,n*=4294967296}return e},e.toString=function(e){if(2>(e=e||10)||36<e)throw Error("radix out of range: "+e);if(c(this))return"0";if(h(this))return"-"+d(this).toString(e);for(var n=r(Math.pow(e,6)),t=this,i="";;){var a=f(t,n).g,o=((0<(t=g(t,a.j(n))).g.length?t.g[0]:t.h)>>>0).toString(e);if(c(t=a))return o+i;for(;6>o.length;)o="0"+o;i=o+i}},e.i=function(e){return 0>e?0:e<this.g.length?this.g[e]:this.h},e.l=function(e){return h(e=g(this,e))?-1:c(e)?0:1},e.abs=function(){return h(this)?d(this):this},e.add=function(e){for(var n=Math.max(this.g.length,e.g.length),t=[],a=0,o=0;o<=n;o++){var r=a+(65535&this.i(o))+(65535&e.i(o)),s=(r>>>16)+(this.i(o)>>>16)+(e.i(o)>>>16);a=s>>>16,r&=65535,s&=65535,t[o]=s<<16|r}
1return new i(t,-2147483648&t[t.length-1]?-1:0)},e.j=function(e){if(c(this)||c(e))return s;if(h(this))return h(e)?d(this).j(d(e)):d(d(this).j(e));if(h(e))return d(this.j(d(e)));if(0>this.l(l)&&0>e.l(l))return r(this.m()*e.m());for(var n=this.g.length+e.g.length,t=[],a=0;a<2*n;a++)t[a]=0;for(a=0;a<this.g.length;a++)for(var o=0;o<e.g.length;o++){var u=this.i(a)>>>16,g=65535&this.i(a),m=e.i(o)>>>16,f=65535&e.i(o);t[2*a+2*o]+=g*f,p(t,2*a+2*o),t[2*a+2*o+1]+=u*f,p(t,2*a+2*o+1),t[2*a+2*o+1]+=g*m,p(t,2*a+2*o+1),t[2*a+2*o+2]+=u*m,p(t,2*a+2*o+2)}for(a=0;a<n;a++)t[a]=t[2*a+1]<<16|t[2*a];for(a=n;a<2*n;a++)t[a]=0;return new i(t,0)},e.A=function(e){return f(this,e).h},e.and=function(e){for(var n=Math.max(this.g.length,e.g.length),t=[],a=0;a<n;a++)t[a]=this.i(a)&e.i(a);return new i(t,this.h&e.h)},e.or=function(e){for(var n=Math.max(this.g.length,e.g.length),t=[],a=0;a<n;a++)t[a]=this.i(a)|e.i(a);return new i(t,this.h|e.h)},e.xor=function(e){for(var n=Math.max(this.g.length,e.g.length),t=[],a=0;a<n;a++)t[a]=this.i(a)^e.i(a);return new i(t,this.h^e.h)},n.prototype.digest=n.prototype.v,n.prototype.reset=n.prototype.s,n.prototype.update=n.prototype.u,rt=n,i.prototype.add=i.prototype.add,i.prototype.multiply=i.prototype.j,i.prototype.modulo=i.prototype.A,i.prototype.compare=i.prototype.l,i.prototype.toNumber=i.prototype.m,i.prototype.toString=i.prototype.toString,i.prototype.getBits=i.prototype.i,i.fromNumber=r,i.fromString=function e(n,t){if(0==n.length)throw Error("number format error: empty string");if(2>(t=t||10)||36<t)throw Error("radix out of range: "+t);if("-"==n.charAt(0))return d(e(n.substring(1),t));if(0<=n.indexOf("-"))throw Error('number format error: interior "-" character');for(var i=r(Math.pow(t,8)),a=s,o=0;o<n.length;o+=8){var u=Math.min(8,n.length-o),l=parseInt(n.substring(o,o+u),t);8>u?(u=r(Math.pow(t,u)),a=a.j(u).add(r(l))):a=(a=a.j(i)).add(r(l))}return a},ot=i}).apply(void 0!==st?st:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{});var ut,lt,ct,ht,dt,gt,pt,mt,ft="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};(function(){var e,n="function"==typeof Object.defineProperties?Object.defineProperty:function(e,n,t){return e==Array.prototype||e==Object.prototype||(e[n]=t.value),e};var t=function(e){e=["object"==typeof globalThis&&globalThis,e,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof ft&&ft];for(var n=0;n<e.length;++n){var t=e[n];if(t&&t.Math==Math)return t}throw Error("Cannot find global object")}(this);!function(e,i){if(i)e:{var a=t;e=e.split(".");for(var o=0;o<e.length-1;o++){var r=e[o];if(!(r in a))break e;a=a[r]}(i=i(o=a[e=e[e.length-1]]))!=o&&null!=i&&n(a,e,{configurable:!0,writable:!0,value:i})}}("Array.prototype.values",function(e){return e||function(){return function(e,n){e instanceof String&&(e+="");var t=0,i=!1,a={next:function(){if(!i&&t<e.length){var a=t++;return{value:n(a,e[a]),done:!1}}return i=!0,{done:!0,value:void 0}}};return a[Symbol.iterator]=function(){return a},a}(this,function(e,n){return n})}});var i=i||{},a=this||self;function o(e){var n=typeof e;return"array"==(n="object"!=n?n:e?Array.isArray(e)?"array":n:"null")||"object"==n&&"number"==typeof e.length}function r(e){var n=typeof e;return"object"==n&&null!=e||"function"==n}function s(e,n,t){return e.call.apply(e.bind,arguments)}function u(e,n,t){if(!e)throw Error();if(2<arguments.length){var i=Array.prototype.slice.call(arguments,2);return function(){var t=Array.prototype.slice.call(arguments);return Array.prototype.unshift.apply(t,i),e.apply(n,t)}}return function(){return e.apply(n,arguments)}}function l(e,n,t){return(l=Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?s:u).apply(null,arguments)}function c(e,n){var t=Array.prototype.slice.call(arguments,1);return function(){var n=t.slice();return n.push.apply(n,arguments),e.apply(this,n)}}function h(e,n){function t(){}t.prototype=n.prototype,e.aa=n.prototype,e.prototype=new t,e.prototype.constructor=e,e.Qb=function(e,t,i){for(var a=Array(arguments.length-2),o=2;o<arguments.length;o++)a[o-2]=arguments[o];return n.prototype[t].apply(e,a)}}function d(e){const n=e.length;if(0<n){const t=Array(n);for(let i=0;i<n;i++)t[i]=e[i];return t}return[]}function g(e,n){for(let t=1;t<arguments.length;t++){const n=arguments[t];if(o(n)){const t=e.length||0,i=n.length||0;e.length=t+i;for(let a=0;a<i;a++)e[t+a]=n[a]}else e.push(n)}}function p(e){return/^[\s\xa0]*$/.test(e)}function m(){var e=a.navigator;return e&&(e=e.userAgent)?e:""}function f(e){return f[" "](e),e}f[" "]=function(){};var v=!(-1==m().indexOf("Gecko")||-1!=m().toLowerCase().indexOf("webkit")&&-1==m().indexOf("Edge")||-1!=m().indexOf("Trident")||-1!=m().indexOf("MSIE")||-1!=m().indexOf("Edge"));function w(e,n,t){for(const i in e)n.call(t,e[i],i,e)}function y(e){const n={};for(const t in e)n[t]=e[t];return n}const b="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleStr
1ing toString valueOf".split(" ");function S(e,n){let t,i;for(let a=1;a<arguments.length;a++){for(t in i=arguments[a],i)e[t]=i[t];for(let n=0;n<b.length;n++)t=b[n],Object.prototype.hasOwnProperty.call(i,t)&&(e[t]=i[t])}}function C(e){var n=1;e=e.split(":");const t=[];for(;0<n&&e.length;)t.push(e.shift()),n--;return e.length&&t.push(e.join(":")),t}function L(e){a.setTimeout(()=>{throw e},0)}function T(){var e=A;let n=null;return e.g&&(n=e.g,e.g=e.g.next,e.g||(e.h=null),n.next=null),n}var E=new class{constructor(e,n){this.i=e,this.j=n,this.h=0,this.g=null}get(){let e;return 0<this.h?(this.h--,e=this.g,this.g=e.next,e.next=null):e=this.i(),e}}(()=>new k,e=>e.reset());class k{constructor(){this.next=this.g=this.h=null}set(e,n){this.h=e,this.g=n,this.next=null}reset(){this.next=this.g=this.h=null}}let D,x=!1,A=new class{constructor(){this.h=this.g=null}add(e,n){const t=E.get();t.set(e,n),this.h?this.h.next=t:this.g=t,this.h=t}},Y=()=>{const e=a.Promise.resolve(void 0);D=()=>{e.then(_)}};var _=()=>{for(var e;e=T();){try{e.h.call(e.g)}catch(t){L(t)}var n=E;n.j(e),100>n.h&&(n.h++,e.next=n.g,n.g=e)}x=!1};function I(){this.s=this.s,this.C=this.C}function P(e,n){this.type=e,this.g=this.target=n,this.defaultPrevented=!1}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()()},P.prototype.h=function(){this.defaultPrevented=!0};var N=function(){if(!a.addEventListener||!Object.defineProperty)return!1;var e=!1,n=Object.defineProperty({},"passive",{get:function(){e=!0}});try{const e=()=>{};a.addEventListener("test",e,n),a.removeEventListener("test",e,n)}catch(t){}return e}();function M(e,n){if(P.call(this,e?e.type:""),this.relatedTarget=this.g=this.target=null,this.button=this.screenY=this.screenX=this.clientY=this.clientX=0,this.key="",this.metaKey=this.shiftKey=this.altKey=this.ctrlKey=!1,this.state=null,this.pointerId=0,this.pointerType="",this.i=null,e){var t=this.type=e.type,i=e.changedTouches&&e.changedTouches.length?e.changedTouches[0]:null;if(this.target=e.target||e.srcElement,this.g=n,n=e.relatedTarget){if(v){e:{try{f(n.nodeName);var a=!0;break e}catch(o){}a=!1}a||(n=null)}}else"mouseover"==t?n=e.fromElement:"mouseout"==t&&(n=e.toElement);this.relatedTarget=n,i?(this.clientX=void 0!==i.clientX?i.clientX:i.pageX,this.clientY=void 0!==i.clientY?i.clientY:i.pageY,this.screenX=i.screenX||0,this.screenY=i.screenY||0):(this.clientX=void 0!==e.clientX?e.clientX:e.pageX,this.clientY=void 0!==e.clientY?e.clientY:e.pageY,this.screenX=e.screenX||0,this.screenY=e.screenY||0),this.button=e.button,this.key=e.key||"",this.ctrlKey=e.ctrlKey,this.altKey=e.altKey,this.shiftKey=e.shiftKey,this.metaKey=e.metaKey,this.pointerId=e.pointerId||0,this.pointerType="string"==typeof e.pointerType?e.pointerType:Z[e.pointerType]||"",this.state=e.state,this.i=e,e.defaultPrevented&&M.aa.h.call(this)}}h(M,P);var Z={2:"touch",3:"pen",4:"mouse"};M.prototype.h=function(){M.aa.h.call(this);var e=this.i;e.preventDefault?e.preventDefault():e.returnValue=!1};var J="closure_listenable_"+(1e6*Math.random()|0),B=0;function R(e,n,t,i,a){this.listener=e,this.proxy=null,this.src=n,this.type=t,this.capture=!!i,this.ha=a,this.key=++B,this.da=this.fa=!1}function F(e){e.da=!0,e.listener=null,e.proxy=null,e.src=null,e.ha=null}function X(e){this.src=e,this.g={},this.h=0}function H(e,n){var t=n.type;if(t in e.g){var i,a=e.g[t],o=Array.prototype.indexOf.call(a,n,void 0);(i=0<=o)&&Array.prototype.splice.call(a,o,1),i&&(F(n),0==e.g[t].length&&(delete e.g[t],e.h--))}}function G(e,n,t,i){for(var a=0;a<e.length;++a){var o=e[a];if(!o.da&&o.listener==n&&o.capture==!!t&&o.ha==i)return a}return-1}X.prototype.add=function(e,n,t,i,a){var o=e.toString();(e=this.g[o])||(e=this.g[o]=[],this.h++);var r=G(e,n,i,a);return-1<r?(n=e[r],t||(n.fa=!1)):((n=new R(n,this.src,o,!!i,a)).fa=t,e.push(n)),n};var O="closure_lm_"+(1e6*Math.random()|0),Q={};function K(e,n,t,i,a){if(Array.isArray(n)){for(var o=0;o<n.length;o++)K(e,n[o],t,i,a);return null}return t=q(t),e&&e[J]?e.K(n,t,!!r(i)&&!!i.capture,a):function(e,n,t,i,a,o){if(!n)throw Error("Invalid event type");var s=r(a)?!!a.capture:!!a,u=$(e);
1if(u||(e[O]=u=new X(e)),t=u.add(n,t,i,s,o),t.proxy)return t;if(i=function(){function e(t){return n.call(e.src,e.listener,t)}const n=z;return e}(),t.proxy=i,i.src=e,i.listener=t,e.addEventListener)N||(a=s),void 0===a&&(a=!1),e.addEventListener(n.toString(),i,a);else if(e.attachEvent)e.attachEvent(U(n.toString()),i);else{if(!e.addListener||!e.removeListener)throw Error("addEventListener and attachEvent are unavailable.");e.addListener(i)}return t}(e,n,t,!1,i,a)}function j(e,n,t,i,a){if(Array.isArray(n))for(var o=0;o<n.length;o++)j(e,n[o],t,i,a);else i=r(i)?!!i.capture:!!i,t=q(t),e&&e[J]?(e=e.i,(n=String(n).toString())in e.g&&(-1<(t=G(o=e.g[n],t,i,a))&&(F(o[t]),Array.prototype.splice.call(o,t,1),0==o.length&&(delete e.g[n],e.h--)))):e&&(e=$(e))&&(n=e.g[n.toString()],e=-1,n&&(e=G(n,t,i,a)),(t=-1<e?n[e]:null)&&W(t))}function W(e){if("number"!=typeof e&&e&&!e.da){var n=e.src;if(n&&n[J])H(n.i,e);else{var t=e.type,i=e.proxy;n.removeEventListener?n.removeEventListener(t,i,e.capture):n.detachEvent?n.detachEvent(U(t),i):n.addListener&&n.removeListener&&n.removeListener(i),(t=$(n))?(H(t,e),0==t.h&&(t.src=null,n[O]=null)):F(e)}}}function U(e){return e in Q?Q[e]:Q[e]="on"+e}function z(e,n){if(e.da)e=!0;else{n=new M(n,this);var t=e.listener,i=e.ha||e.src;e.fa&&W(e),e=t.call(i,n)}return e}function $(e){return(e=e[O])instanceof X?e:null}var V="__closure_events_fn_"+(1e9*Math.random()>>>0);function q(e){return"function"==typeof e?e:(e[V]||(e[V]=function(n){return e.handleEvent(n)}),e[V])}function ee(){I.call(this),this.i=new X(this),this.M=this,this.F=null}function ne(e,n){var t,i=e.F;if(i)for(t=[];i;i=i.F)t.push(i);if(e=e.M,i=n.type||n,"string"==typeof n)n=new P(n,e);else if(n instanceof P)n.target=n.target||e;else{var a=n;S(n=new P(i,e),a)}if(a=!0,t)for(var o=t.length-1;0<=o;o--){var r=n.g=t[o];a=te(r,i,!0,n)&&a}if(a=te(r=n.g=e,i,!0,n)&&a,a=te(r,i,!1,n)&&a,t)for(o=0;o<t.length;o++)a=te(r=n.g=t[o],i,!1,n)&&a}function te(e,n,t,i){if(!(n=e.i.g[String(n)]))return!0;n=n.concat();for(var a=!0,o=0;o<n.length;++o){var r=n[o];if(r&&!r.da&&r.capture==t){var s=r.listener,u=r.ha||r.src;r.fa&&H(e.i,r),a=!1!==s.call(u,i)&&a}}return a&&!i.defaultPrevented}function ie(e,n,t){if("function"==typeof e)t&&(e=l(e,t));else{if(!e||"function"!=typeof e.handleEvent)throw Error("Invalid listener argument");e=l(e.handleEvent,e)}return 2147483647<Number(n)?-1:a.setTimeout(e,n||0)}function ae(e){e.g=ie(()=>{e.g=null,e.i&&(e.i=!1,ae(e))},e.l);const n=e.h;e.h=null,e.m.apply(null,n)}h(ee,I),ee.prototype[J]=!0,ee.prototype.removeEventListener=function(e,n,t,i){j(this,e,n,t,i)},ee.prototype.N=function(){if(ee.aa.N.call(this),this.i){var e,n=this.i;for(e in n.g){for(var t=n.g[e],i=0;i<t.length;i++)F(t[i]);delete n.g[e],n.h--}}this.F=null},ee.prototype.K=function(e,n,t,i){return this.i.add(String(e),n,!1,t,i)},ee.prototype.L=function(e,n,t,i){return this.i.add(String(e),n,!0,t,i)};class oe extends I{constructor(e,n){super(),this.m=e,this.l=n,this.h=null,this.i=!1,this.g=null}j(e){this.h=arguments,this.g?this.i=!0:ae(this)}N(){super.N(),this.g&&(a.clearTimeout(this.g),this.g=null,this.i=!1,this.h=null)}}function re(e){I.call(this),this.h=e,this.g={}}h(re,I);var se=[];function ue(e){w(e.g,function(e,n){this.g.hasOwnProperty(n)&&W(e)},e),e.g={}}re.prototype.N=function(){re.aa.N.call(this),ue(this)},re.prototype.handleEvent=function(){throw Error("EventHandler.handleEvent not implemented")};
1var le=a.JSON.stringify,ce=a.JSON.parse,he=class{stringify(e){return a.JSON.stringify(e,void 0)}parse(e){return a.JSON.parse(e,void 0)}};function de(){}function ge(e){return e.h||(e.h=e.i())}function pe(){}de.prototype.h=null;var me={OPEN:"a",kb:"b",Ja:"c",wb:"d"};function fe(){P.call(this,"d")}function ve(){P.call(this,"c")}h(fe,P),h(ve,P);var we={},ye=null;function be(){return ye=ye||new ee}function Se(e){P.call(this,we.La,e)}function Ce(e){const n=be();ne(n,new Se(n))}function Le(e,n){P.call(this,we.STAT_EVENT,e),this.stat=n}function Te(e){const n=be();ne(n,new Le(n,e))}function Ee(e,n){P.call(this,we.Ma,e),this.size=n}function ke(e,n){if("function"!=typeof e)throw Error("Fn must not be null and must be a function");return a.setTimeout(function(){e()},n)}function De(){this.g=!0}function xe(e,n,t,i){e.info(function(){return"XMLHTTP TEXT ("+n+"): "+function(e,n){if(!e.g)return n;if(!n)return null;try{var t=JSON.parse(n);if(t)for(e=0;e<t.length;e++)if(Array.isArray(t[e])){var i=t[e];if(!(2>i.length)){var a=i[1];if(Array.isArray(a)&&!(1>a.length)){var o=a[0];if("noop"!=o&&"stop"!=o&&"close"!=o)for(var r=1;r<a.length;r++)a[r]=""}}}return le(t)}catch(s){return n}}(e,t)+(i?" "+i:"")})}we.La="serverreachability",h(Se,P),we.STAT_EVENT="statevent",h(Le,P),we.Ma="timingevent",h(Ee,P),De.prototype.xa=function(){this.g=!1},De.prototype.info=function(){};var Ae,Ye={NO_ERROR:0,gb:1,tb:2,sb:3,nb:4,rb:5,ub:6,Ia:7,TIMEOUT:8,xb:9},_e={lb:"complete",Hb:"success",Ja:"error",Ia:"abort",zb:"ready",Ab:"readystatechange",TIMEOUT:"timeout",vb:"incrementaldata",yb:"progress",ob:"downloadprogress",Pb:"uploadprogress"};function Ie(){}function Pe(e,n,t,i){this.j=e,this.i=n,this.l=t,this.R=i||1,this.U=new re(this),this.I=45e3,this.H=null,this.o=!1,this.m=this.A=this.v=this.L=this.F=this.S=this.B=null,this.D=[],this.g=null,this.C=0,this.s=this.u=null,this.X=-1,this.J=!1,this.O=0,this.M=null,this.W=this.K=this.T=this.P=!1,this.h=new Ne}function Ne(){this.i=null,this.g="",this.h=!1}h(Ie,de),Ie.prototype.g=function(){return new XMLHttpRequest},Ie.prototype.i=function(){return{}},Ae=new Ie;var Me={},Ze={};function Je(e,n,t){e.L=1,e.v=cn(on(n)),e.m=t,e.P=!0,Be(e,null)}function Be(e,n){e.F=Date.now(),Xe(e),e.A=on(e.v);var t=e.A,i=e.R;Array.isArray(i)||(i=[String(i)]),Ln(t.i,"t",i),e.C=0,t=e.j.J,e.h=new Ne,e.g=yt(e.j,t?n:null,!e.m),0<e.O&&(e.M=new oe(l(e.Y,e,e.g),e.O)),n=e.U,t=e.g,i=e.ca;var a="readystatechange";Array.isArray(a)||(a&&(se[0]=a.toString()),a=se);for(var o=0;o<a.length;o++){var r=K(t,a[o],i||n.handleEvent,!1,n.h||n);if(!r)break;n.g[r.key]=r}n=e.H?y(e.H):{},e.m?(e.u||(e.u="POST"),n["Content-Type"]="application/x-www-form-urlencoded",e.g.ea(e.A,e.u,e.m,n)):(e.u="GET",e.g.ea(e.A,e.u,null,n)),Ce(),function(e,n,t,i,a,o){e.info(function(){if(e.g)if(o)for(var r="",s=o.split("&"),u=0;u<s.length;u++){var l=s[u].split("=");if(1<l.length){var c=l[0];l=l[1];var h=c.split("_");r=2<=h.length&&"type"==h[1]?r+(c+"=")+l+"&":r+(c+"=redacted&")}}else r=null;else r=o;return"XMLHTTP REQ ("+i+") [attempt "+a+"]: "+n+"\n"+t+"\n"+r})}(e.i,e.u,e.A,e.l,e.R,e.m)}function Re(e){return!!e.g&&("GET"==e.u&&2!=e.L&&e.j.Ca)}function Fe(e,n){var t=e.C,i=n.indexOf("\n",t);return-1==i?Ze:(t=Number(n.substring(t,i)),isNaN(t)?Me:(i+=1)+t>n.length?Ze:(n=n.slice(i,i+t),e.C=i+t,n))}function Xe(e){e.S=Date.now()+e.I,He(e,e.I)}function He(e,n){if(null!=e.B)throw Error("WatchDog timer not null");e.B=ke(l(e.ba,e),n)}function Ge(e){e.B&&(a.clearTimeout(e.B),e.B=null)}function Oe(e){0==e.j.G||e.J||ot(e.j,e)}function Qe(e){Ge(e);var n=e.M;n&&"function"==typeof n.ma&&n.ma(),e.M=null,ue(e.U),e.g&&(n=e.g,e.g=null,n.abort(),n.ma())}function Ke(e,n){try{var t=e.j;if(0!=t.G&&(t.g==e||$e(t.h,e)))if(!e.K&&$e(t.h,e)&&3==t.G){try{var i=t.Da.g.parse(n)}catch(c){i=null}if(Array.isArray(i)&&3==i.length){var a=i;if(0==a[0]){e:if(!t.u){if(t.g){if(!(t.g.F+3e3<e.F))break e;at(t),Wn(t)}nt(t),Te(18)}}else t.za=a[1],0<t.za-t.T&&37500>a[2]&&t.F&&0==t.v&&!t.C&&(t.C=ke(l(t.Za,t),6e3));if(1>=ze(t.h)&&t.ca){try{t.ca()}catch(c){}t.ca=void 0}}else st(t,11)}else if((e.K||t.g==e)&&at(t),!p(n))for(a=t.Da.g.parse(n),n=0;n<a.length;n++){let l=a[n];if(t.T=l[0],l=l[1],2==t.G)if("c"==l[0]){t.K=l[1],t.ia=l[2];const n=l[3];null!=n&&(t.la=n,t.j.info("VER="+t.la));const a=l[4];null!=a&&(t.Aa=a,t.j.info("SVER="+t.Aa));const c=l[5];null!=c&&"number"==typeof c&&0<c&&(i=1.5*c,t.L=i,t.j.info("backChannelRequestTimeoutMs_="+i)),i=t;const h=e.g;if(h){const e=h.g?h.g.getResponseHeader("X-Client-Wire-Protocol"):null;if(e){var o=i.h;o.g||-1==e.indexOf("spdy")&&-1==e.indexOf("quic")&&-1==e.indexOf("h2")||(o.j=o.l,o.g=new Set,o.h&&(Ve(o,o.h),o.h=null))}if(i.D){const e=h.g?h.g.getResponseHeader("X-HTTP-Session-Id"):null;e&&(i.ya=e,ln(i.I,i.D,e))}}t.G=3,t.l&&t.l.ua(),t.ba&&(t.R=Date.now()-e.F,t.j.info("Handshake RTT: "+t.R+"ms"));var r=e;if((i=t).qa=wt(i,i.J?i.ia:null,i.W),r.K){qe(i.h,r);var s=r,u=i.L;u&&(s.I=u),s.B&&(Ge(s),Xe(s)),i.g=r}else et(i);0<t.i.length&&zn(t)}else"stop"!=l[0]&&"close"!=l[0]||st(t,7);else 3==t.G&&("stop"==l[0]||"close"==l[0]?"stop"==l[0]?st(t,7):jn(t):"noop"!=l[0]&&t.l&&t.l.ta(l),t.v=0)}Ce()}catch(c){}}Pe.prototype.ca=function(e){e=e.target;const n=this.M;n&&3==Gn(e)?n.j():this.Y(e)},Pe.prototype.Y=function(e){try{if(e==this.g)e:{const d=Gn(this.g);var n=this.g.Ba();this.g.Z();if(!(3>d)&&(3!=d||this.g&&(this.h.h||this.g.oa()||On(this.g)))){this.J||4!=d||7==n||Ce(),Ge(this);var t=this.g.Z();this.X=t;n:if(Re(this)){var i=On(this.g);e="";var o=i.length,r=4==Gn(this.g);if(!this.h.i){if("undefined"==typeof TextDecoder){Qe(this),Oe(this);var s="";break n}this.h.i=new a.TextDecoder}for(n=0;n<o;n++)this.h.h=!0,e+=this.h.i.decode(i[n],{stream:!(r&&n==o-1)});i.length=0,this.h.g+=e,this.C=0,s=this.h.g}else s=this.g.oa();if(this.o=200==t,function(e,n,t,i,a,o,r){e.info(function(){return"XMLHTTP RESP ("+i+") [ attempt "+a+"]: "+n+"\n"+t+"\n"+o+" "+r})}(this.i,this.u,this.A,this.l,this.R,d,t),this.o){if(this.T&&!this.K){n:{if(this.g){var u,l=this.g;if((u=l.g?l.g.getResponseHeader("X-HTTP-Initial-Response"):null)&&!p(u)){var c=u;break n}}c=null}if(!(t=c)){this.o=!1,this.s=3,Te(12),Qe(this),Oe(this);break e}xe(this.i,this.l,t,"Initial handshake response via X-HTTP-Initial-Response"),this.K=!0,Ke(this,t)}if(this.P){let e;for(t=!0;!this.J&&this.C<s.length;){if(e=Fe(this,s),e==Ze){4==d&&(this.s=4,Te(14),t=!1),xe(this.i,this.l,null,"[Incomplete Response]");break}if(e==Me){this.s=4,Te(15),xe(this.i,this.l,s,"[Invalid Chunk]"),t=!1;break}xe(this.i,this.l,e,null),Ke(this,e)}if(Re(this)&&0!=this.C&&(this.h.g=this.h.g.slice(this.C),this.C=0),4!=d||0!=s.length||this.h.h||(this.s=1,Te(16),t=!1),this.o=this.o&&t,t){if(0<s.length&&!this.W){this.W=!0;var h=this.j;h.g==this&&h.ba&&!h.M&&(h.j.info("Great, no buffering proxy detected. Bytes received: "+s.length),tt(h),h.M=!0,Te(11))}}else xe(this.i,this.l,s,"[Invalid Chunked Response]"),Qe(this),Oe(this)}else xe(this.i,this.l,s,null),Ke(this,s);4==d&&Qe(this),this.o&&!this.J&&(4==d?ot(this.j,this):(this.o=!1,Xe(this)))}else(function(e){const n={};e=(e.g&&2<=Gn(e)&&e.g.getAllResponseHeaders()||"").split("\r\n");for(let i=0;i<e.length;i++){if(p(e[i]))continue;var t=C(e[i]);const a=t[0];
1if("string"!=typeof(t=t[1]))continue;t=t.trim();const o=n[a]||[];n[a]=o,o.push(t)}!function(e,n){for(const t in e)n.call(void 0,e[t],t,e)}(n,function(e){return e.join(", ")})})(this.g),400==t&&0<s.indexOf("Unknown SID")?(this.s=3,Te(12)):(this.s=0,Te(13)),Qe(this),Oe(this)}}}catch(d){}},Pe.prototype.cancel=function(){this.J=!0,Qe(this)},Pe.prototype.ba=function(){this.B=null;const e=Date.now();0<=e-this.S?(function(e,n){e.info(function(){return"TIMEOUT: "+n})}(this.i,this.A),2!=this.L&&(Ce(),Te(17)),Qe(this),this.s=2,Oe(this)):He(this,this.S-e)};var je=class{constructor(e,n){this.g=e,this.map=n}};function We(e){this.l=e||10,a.PerformanceNavigationTiming?e=0<(e=a.performance.getEntriesByType("navigation")).length&&("hq"==e[0].nextHopProtocol||"h2"==e[0].nextHopProtocol):e=!!(a.chrome&&a.chrome.loadTimes&&a.chrome.loadTimes()&&a.chrome.loadTimes().wasFetchedViaSpdy),this.j=e?this.l:1,this.g=null,1<this.j&&(this.g=new Set),this.h=null,this.i=[]}function Ue(e){return!!e.h||!!e.g&&e.g.size>=e.j}function ze(e){return e.h?1:e.g?e.g.size:0}function $e(e,n){return e.h?e.h==n:!!e.g&&e.g.has(n)}function Ve(e,n){e.g?e.g.add(n):e.h=n}function qe(e,n){e.h&&e.h==n?e.h=null:e.g&&e.g.has(n)&&e.g.delete(n)}function en(e){if(null!=e.h)return e.i.concat(e.h.D);if(null!=e.g&&0!==e.g.size){let n=e.i;for(const t of e.g.values())n=n.concat(t.D);return n}return d(e.i)}function nn(e,n){if(e.forEach&&"function"==typeof e.forEach)e.forEach(n,void 0);else if(o(e)||"string"==typeof e)Array.prototype.forEach.call(e,n,void 0);else for(var t=function(e){if(e.na&&"function"==typeof e.na)return e.na();if(!e.V||"function"!=typeof e.V){if("undefined"!=typeof Map&&e instanceof Map)return Array.from(e.keys());if(!("undefined"!=typeof Set&&e instanceof Set)){if(o(e)||"string"==typeof e){var n=[];e=e.length;for(var t=0;t<e;t++)n.push(t);return n}n=[],t=0;for(const i in e)n[t++]=i;return n}}}(e),i=function(e){if(e.V&&"function"==typeof e.V)return e.V();if("undefined"!=typeof Map&&e instanceof Map||"undefined"!=typeof Set&&e instanceof Set)return Array.from(e.values());if("string"==typeof e)return e.split("");if(o(e)){for(var n=[],t=e.length,i=0;i<t;i++)n.push(e[i]);return n}for(i in n=[],t=0,e)n[t++]=e[i];return n}(e),a=i.length,r=0;r<a;r++)n.call(void 0,i[r],t&&t[r],e)}We.prototype.cancel=function(){if(this.i=en(this),this.h)this.h.cancel(),this.h=null;else if(this.g&&0!==this.g.size){for(const e of this.g.values())e.cancel();this.g.clear()}};var tn=RegExp("^(?:([^:/?#.]+):)?(?://(?:([^\\\\/?#]*)@)?([^\\\\/?#]*?)(?::([0-9]+))?(?=[\\\\/?#]|$))?([^?#]+)?(?:\\?([^#]*))?(?:#([\\s\\S]*))?$");function an(e){if(this.g=this.o=this.j="",this.s=null,this.m=this.l="",this.h=!1,e instanceof an){this.h=e.h,rn(this,e.j),this.o=e.o,this.g=e.g,sn(this,e.s),this.l=e.l;var n=e.i,t=new yn;t.i=n.i,n.g&&(t.g=new Map(n.g),t.h=n.h),un(this,t),this.m=e.m}else e&&(n=String(e).match(tn))?(this.h=!1,rn(this,n[1]||"",!0),this.o=hn(n[2]||""),this.g=hn(n[3]||"",!0),sn(this,n[4]),this.l=hn(n[5]||"",!0),un(this,n[6]||"",!0),this.m=hn(n[7]||"")):(this.h=!1,this.i=new yn(null,this.h))}function on(e){return new an(e)}function rn(e,n,t){e.j=t?hn(n,!0):n,e.j&&(e.j=e.j.replace(/:$/,""))}function sn(e,n){if(n){if(n=Number(n),isNaN(n)||0>n)throw Error("Bad port number "+n);e.s=n}else e.s=null}
1function un(e,n,t){n instanceof yn?(e.i=n,function(e,n){n&&!e.j&&(bn(e),e.i=null,e.g.forEach(function(e,n){var t=n.toLowerCase();n!=t&&(Sn(this,n),Ln(this,t,e))},e)),e.j=n}(e.i,e.h)):(t||(n=dn(n,vn)),e.i=new yn(n,e.h))}function ln(e,n,t){e.i.set(n,t)}function cn(e){return ln(e,"zx",Math.floor(2147483648*Math.random()).toString(36)+Math.abs(Math.floor(2147483648*Math.random())^Date.now()).toString(36)),e}function hn(e,n){return e?n?decodeURI(e.replace(/%25/g,"%2525")):decodeURIComponent(e):""}function dn(e,n,t){return"string"==typeof e?(e=encodeURI(e).replace(n,gn),t&&(e=e.replace(/%25([0-9a-fA-F]{2})/g,"%$1")),e):null}function gn(e){return"%"+((e=e.charCodeAt(0))>>4&15).toString(16)+(15&e).toString(16)}an.prototype.toString=function(){var e=[],n=this.j;n&&e.push(dn(n,pn,!0),":");var t=this.g;return(t||"file"==n)&&(e.push("//"),(n=this.o)&&e.push(dn(n,pn,!0),"@"),e.push(encodeURIComponent(String(t)).replace(/%25([0-9a-fA-F]{2})/g,"%$1")),null!=(t=this.s)&&e.push(":",String(t))),(t=this.l)&&(this.g&&"/"!=t.charAt(0)&&e.push("/"),e.push(dn(t,"/"==t.charAt(0)?fn:mn,!0))),(t=this.i.toString())&&e.push("?",t),(t=this.m)&&e.push("#",dn(t,wn)),e.join("")};var pn=/[#\/\?@]/g,mn=/[#\?:]/g,fn=/[#\?]/g,vn=/[#\?@]/g,wn=/#/g;function yn(e,n){this.h=this.g=null,this.i=e||null,this.j=!!n}function bn(e){e.g||(e.g=new Map,e.h=0,e.i&&function(e,n){if(e){e=e.split("&");for(var t=0;t<e.length;t++){var i=e[t].indexOf("="),a=null;if(0<=i){var o=e[t].substring(0,i);a=e[t].substring(i+1)}else o=e[t];n(o,a?decodeURIComponent(a.replace(/\+/g," ")):"")}}}(e.i,function(n,t){e.add(decodeURIComponent(n.replace(/\+/g," ")),t)}))}function Sn(e,n){bn(e),n=Tn(e,n),e.g.has(n)&&(e.i=null,e.h-=e.g.get(n).length,e.g.delete(n))}function Cn(e,n){return bn(e),n=Tn(e,n),e.g.has(n)}function Ln(e,n,t){Sn(e,n),0<t.length&&(e.i=null,e.g.set(Tn(e,n),d(t)),e.h+=t.length)}function Tn(e,n){return n=String(n),e.j&&(n=n.toLowerCase()),n}function En(e,n,t,i,a){try{a&&(a.onload=null,a.onerror=null,a.onabort=null,a.ontimeout=null),i(t)}catch(o){}}function kn(){this.g=new he}function Dn(e,n,t){const i=t||"";try{nn(e,function(e,t){let a=e;r(e)&&(a=le(e)),n.push(i+t+"="+encodeURIComponent(a))})}catch(a){throw n.push(i+"type="+encodeURIComponent("_badmap")),a}}function xn(e){this.l=e.Ub||null,this.j=e.eb||!1}function An(e,n){ee.call(this),this.D=e,this.o=n,this.m=void 0,this.status=this.readyState=0,this.responseType=this.responseText=this.response=this.statusText="",this.onreadystatechange=null,this.u=new Headers,this.h=null,this.B="GET",this.A="",this.g=!1,this.v=this.j=this.l=null}function Yn(e){e.j.read().then(e.Pa.bind(e)).catch(e.ga.bind(e))}function _n(e){e.readyState=4,e.l=null,e.j=null,e.v=null,In(e)}function In(e){e.onreadystatechange&&e.onreadystatechange.call(e)}function Pn(e){let n="";return w(e,function(e,t){n+=t,n+=":",n+=e,n+="\r\n"}),n}function Nn(e,n,t){e:{for(i in t){var i=!1;break e}i=!0}i||(t=Pn(t),"string"==typeof e?null!=t&&encodeURIComponent(String(t)):ln(e,n,t))}function Mn(e){ee.call(this),this.headers=new Map,this.o=e||null,this.h=!1,this.v=this.g=null,this.D="",this.m=0,this.l="",this.j=this.B=this.u=this.A=!1,this.I=null,this.H="",this.J=!1}(e=yn.prototype).add=function(e,n){bn(this),this.i=null,e=Tn(this,e);var t=this.g.get(e);return t||this.g.set(e,t=[]),t.push(n),this.h+=1,this},e.forEach=function(e,n){bn(this),this.g.forEach(function(t,i){t.forEach(function(t){e.call(n,t,i,this)},this)},this)},e.na=function(){bn(this);const e=Array.from(this.g.values()),n=Array.from(this.g.keys()),t=[];for(let i=0;i<n.length;i++){const a=e[i];for(let e=0;e<a.length;e++)t.push(n[i])}return t},e.V=function(e){bn(this);let n=[];if("string"==typeof e)Cn(this,e)&&(n=n.concat(this.g.get(Tn(this,e))));else{e=Array.from(this.g.values());for(let t=0;t<e.length;t++)n=n.concat(e[t])}return n},e.set=function(e,n){return bn(this),this.i=null,Cn(this,e=Tn(this,e))&&(this.h-=this.g.get(e).length),this.g.set(e,[n]),this.h+=1,this},e.get=function(e,n){return e&&0<(e=this.V(e)).length?String(e[0]):n},e.toString=function(){if(this.i)return this.i;if(!this.g)return"";const e=[],n=Array.from(this.g.keys());for(var t=0;t<n.length;t++){var i=n[t];const o=encodeURIComponent(String(i)),r=this.V(i);for(i=0;i<r.length;i++){var a=o;""!==r[i]&&(a+="="+encodeURIComponent(String(r[i]))),e.push(a)}}return this.i=e.join("&")},h(xn,de),xn.prototype.g=function(){return new An(this.l,this.j)},xn.prototype.i=function(e){return function(){return e}}({}),h(An,ee),(e=An.prototype).open=function(e,n){if(0!=this.readyState)throw this.abort(),Error("Error reopening a connection");this.B=e,this.A=n,this.readyState=1,In(this)},e.send=function(e){if(1!=this.readyState)throw this.abort(),Error("need to call open() first. ");this.g=!0;const n={headers:this.u,method:this.B,credentials:this.m,cache:void 0};
vendor: 4,354 bytes, line 1
1e&&(n.body=e),(this.D||a).fetch(new Request(this.A,n)).then(this.Sa.bind(this),this.ga.bind(this))},e.abort=function(){this.response=this.responseText="",this.u=new Headers,this.status=0,this.j&&this.j.cancel("Request was aborted.").catch(()=>{}),1<=this.readyState&&this.g&&4!=this.readyState&&(this.g=!1,_n(this)),this.readyState=0},e.Sa=function(e){if(this.g&&(this.l=e,this.h||(this.status=this.l.status,this.statusText=this.l.statusText,this.h=e.headers,this.readyState=2,In(this)),this.g&&(this.readyState=3,In(this),this.g)))if("arraybuffer"===this.responseType)e.arrayBuffer().then(this.Qa.bind(this),this.ga.bind(this));else if(void 0!==a.ReadableStream&&"body"in e){if(this.j=e.body.getReader(),this.o){if(this.responseType)throw Error('responseType must be empty for "streamBinaryChunks" mode responses.');this.response=[]}else this.response=this.responseText="",this.v=new TextDecoder;Yn(this)}else e.text().then(this.Ra.bind(this),this.ga.bind(this))},e.Pa=function(e){if(this.g){if(this.o&&e.value)this.response.push(e.value);else if(!this.o){var n=e.value?e.value:new Uint8Array(0);(n=this.v.decode(n,{stream:!e.done}))&&(this.response=this.responseText+=n)}e.done?_n(this):In(this),3==this.readyState&&Yn(this)}},e.Ra=function(e){this.g&&(this.response=this.responseText=e,_n(this))},e.Qa=function(e){this.g&&(this.response=e,_n(this))},e.ga=function(){this.g&&_n(this)},e.setRequestHeader=function(e,n){this.u.append(e,n)},e.getResponseHeader=function(e){return this.h&&this.h.get(e.toLowerCase())||""},e.getAllResponseHeaders=function(){if(!this.h)return"";const e=[],n=this.h.entries();for(var t=n.next();!t.done;)t=t.value,e.push(t[0]+": "+t[1]),t=n.next();return e.join("\r\n")},Object.defineProperty(An.prototype,"withCredentials",{get:function(){return"include"===this.m},set:function(e){this.m=e?"include":"same-origin"}}),h(Mn,ee);var Zn=/^https?$/i,Jn=["POST","PUT"];function Bn(e,n){e.h=!1,e.g&&(e.j=!0,e.g.abort(),e.j=!1),e.l=n,e.m=5,Rn(e),Xn(e)}function Rn(e){e.A||(e.A=!0,ne(e,"complete"),ne(e,"error"))}function Fn(e){if(e.h&&void 0!==i&&(!e.v[1]||4!=Gn(e)||2!=e.Z()))if(e.u&&4==Gn(e))ie(e.Ea,0,e);else if(ne(e,"readystatechange"),4==Gn(e)){e.h=!1;try{const i=e.Z();e:switch(i){case 200:case 201:case 202:case 204:case 206:case 304:case 1223:var n=!0;break e;default:n=!1}var t;if(!(t=n)){var o;if(o=0===i){var r=String(e.D).match(tn)[1]||null;!r&&a.self&&a.self.location&&(r=a.self.location.protocol.slice(0,-1)),o=!Zn.test(r?r.toLowerCase():"")}t=o}if(t)ne(e,"complete"),ne(e,"success");else{e.m=6;try{var s=2<Gn(e)?e.g.statusText:""}catch(u){s=""}e.l=s+" ["+e.Z()+"]",Rn(e)}}finally{Xn(e)}}}function Xn(e,n){if(e.g){Hn(e);const i=e.g,a=e.v[0]?()=>{}:null;e.g=null,e.v=null,n||ne(e,"ready");try{i.onreadystatechange=a}catch(t){}}}function Hn(e){e.I&&(a.clearTimeout(e.I),e.I=null)}function Gn(e){return e.g?e.g.readyState:0}function On(e){try{if(!e.g)return null;if("response"in e.g)return e.g.response;switch(e.H){case"":case"text":return e.g.responseText;case"arraybuffer":if("mozResponseArrayBuffer"in e.g)return e.g.mozResponseArrayBuffer}return null}catch(n){return null}}function Qn(e,n,t){return t&&t.internalChannelParams&&t.internalChannelParams[e]||n}function Kn(e){this.Aa=0,this.i=[],this.j=new De,this.ia=this.qa=this.I=this.W=this.g=this.ya=this.D=this.H=this.m=this.S=this.o=null,this.Ya=this.U=0,this.Va=Qn("failFast",!1,e),this.F=this.C=this.u=this.s=this.l=null,this.X=!0,this.za=this.T=-1,this.Y=this.v=this.B=0,this.Ta=Qn("baseRetryDelayMs",5e3,e),this.cb=Qn("retryDelaySeedMs",1e4,e),this.Wa=Qn("forwardChannelMaxRetries",2,e),this.wa=Qn("forwardChannelRequestTimeoutMs",2e4,e),this.pa=e&&e.xmlHttpFactory||void 0,this.Xa=e&&e.Tb||void 0,this.Ca=e&&e.useFetchStreams||!1,this.L=void 0,this.J=e&&e.supportsCrossDomainXhr||!1,this.K="",this.h=new We(e&&e.concurrentRequestLimit),this.Da=new kn,this.P=e&&e.fastHandshake||!1,this.O=e&&e.encodeInitMessageHeaders||!1,this.P&&this.O&&(this.O=!1),this.Ua=e&&e.Rb||!1,e&&e.xa&&this.j.xa(),e&&e.forceLongPolling&&(this.X=!1),this.ba=!this.P&&this.X&&e&&e.detectBufferingProxy||!1,this.ja=void 0,e&&e.longPollingTimeout&&0<e.longPollingTimeout&&(this.ja=e.longPollingTimeout),this.ca=void 0,this.R=0,this.M=!1,this.ka=this.A=null}function jn(e){if(Un(e),3==e.G){var n=e.U++,t=on(e.I);if(ln(t,"SID",e.K),ln(t,"RID",n),ln(t,"TYPE","terminate"),Vn(e,t),(n=new Pe
1(e,e.j,n)).L=2,n.v=cn(on(t)),t=!1,a.navigator&&a.navigator.sendBeacon)try{t=a.navigator.sendBeacon(n.v.toString(),"")}catch(i){}!t&&a.Image&&((new Image).src=n.v,t=!0),t||(n.g=yt(n.j,null),n.g.ea(n.v)),n.F=Date.now(),Xe(n)}vt(e)}function Wn(e){e.g&&(tt(e),e.g.cancel(),e.g=null)}function Un(e){Wn(e),e.u&&(a.clearTimeout(e.u),e.u=null),at(e),e.h.cancel(),e.s&&("number"==typeof e.s&&a.clearTimeout(e.s),e.s=null)}function zn(e){if(!Ue(e.h)&&!e.s){e.s=!0;var n=e.Ga;D||Y(),x||(D(),x=!0),A.add(n,e),e.B=0}}function $n(e,n){var t;t=n?n.l:e.U++;const i=on(e.I);ln(i,"SID",e.K),ln(i,"RID",t),ln(i,"AID",e.T),Vn(e,i),e.m&&e.o&&Nn(i,e.m,e.o),t=new Pe(e,e.j,t,e.B+1),null===e.m&&(t.H=e.o),n&&(e.i=n.D.concat(e.i)),n=qn(e,t,1e3),t.I=Math.round(.5*e.wa)+Math.round(.5*e.wa*Math.random()),Ve(e.h,t),Je(t,i,n)}function Vn(e,n){e.H&&w(e.H,function(e,t){ln(n,t,e)}),e.l&&nn({},function(e,t){ln(n,t,e)})}function qn(e,n,t){t=Math.min(e.i.length,t);var i=e.l?l(e.l.Na,e.l,e):null;e:{var a=e.i;let n=-1;for(;;){const e=["count="+t];-1==n?0<t?(n=a[0].g,e.push("ofs="+n)):n=0:e.push("ofs="+n);let r=!0;for(let s=0;s<t;s++){let t=a[s].g;const u=a[s].map;if(t-=n,0>t)n=Math.max(0,a[s].g-100),r=!1;else try{Dn(u,e,"req"+t+"_")}catch(o){i&&i(u)}}if(r){i=e.join("&");break e}}}return e=e.i.splice(0,t),n.D=e,i}function et(e){if(!e.g&&!e.u){e.Y=1;var n=e.Fa;D||Y(),x||(D(),x=!0),A.add(n,e),e.v=0}}function nt(e){return!(e.g||e.u||3<=e.v)&&(e.Y++,e.u=ke(l(e.Fa,e),rt(e,e.v)),e.v++,!0)}function tt(e){null!=e.A&&(a.clearTimeout(e.A),e.A=null)}function it(e){e.g=new Pe(e,e.j,"rpc",e.Y),null===e.m&&(e.g.H=e.o),e.g.O=0;var n=on(e.qa);ln(n,"RID","rpc"),ln(n,"SID",e.K),ln(n,"AID",e.T),ln(n,"CI",e.F?"0":"1"),!e.F&&e.ja&&ln(n,"TO",e.ja),ln(n,"TYPE","xmlhttp"),Vn(e,n),e.m&&e.o&&Nn(n,e.m,e.o),e.L&&(e.g.I=e.L);var t=e.g;e=e.ia,t.L=1,t.v=cn(on(n)),t.m=null,t.P=!0,Be(t,e)}function at(e){null!=e.C&&(a.clearTimeout(e.C),e.C=null)}function ot(e,n){var t=null;if(e.g==n){at(e),tt(e),e.g=null;var i=2}else{if(!$e(e.h,n))return;t=n.D,qe(e.h,n),i=1}if(0!=e.G)if(n.o)if(1==i){t=n.m?n.m.length:0,n=Date.now()-n.F;var a=e.B;ne(i=be(),new Ee(i,t)),zn(e)}else et(e);else if(3==(a=n.s)||0==a&&0<n.X||!(1==i&&function(e,n){return!(ze(e.h)>=e.h.j-(e.s?1:0)||(e.s?(e.i=n.D.concat(e.i),0):1==e.G||2==e.G||e.B>=(e.Va?0:e.Wa)||(e.s=ke(l(e.Ga,e,n),rt(e,e.B)),e.B++,0)))}(e,n)||2==i&&nt(e)))switch(t&&0<t.length&&(n=e.h,n.i=n.i.concat(t)),a){case 1:st(e,5);break;case 4:st(e,10);break;case 3:st(e,6);break;default:st(e,2)}}function rt(e,n){let t=e.Ta+Math.floor(Math.random()*e.cb);return e.isActive()||(t*=2),t*n}function st(e,n){if(e.j.info("Error code "+n),2==n){var t=l(e.fb,e),i=e.Xa;const n=!i;i=new an(i||"//www.google.com/images/cleardot.gif"),a.location&&"http"==a.location.protocol||rn(i,"https"),cn(i),n?function(e,n){const t=new De;if(a.Image){const i=new Image;i.onload=c(En,t,"TestLoadImage: loaded",!0,n,i),i.onerror=c(En,t,"TestLoadImage: error",!1,n,i),i.onabort=c(En,t,"TestLoadImage: abort",!1,n,i),i.ontimeout=c(En,t,"TestLoadImage: timeout",!1,n,i),a.setTimeout(function(){i.ontimeout&&i.ontimeout()},1e4),i.src=e}else n(!1)}
1(i.toString(),t):function(e,n){new De;const t=new AbortController,i=setTimeout(()=>{t.abort(),En(0,0,!1,n)},1e4);fetch(e,{signal:t.signal}).then(e=>{clearTimeout(i),e.ok?En(0,0,!0,n):En(0,0,!1,n)}).catch(()=>{clearTimeout(i),En(0,0,!1,n)})}(i.toString(),t)}else Te(2);e.G=0,e.l&&e.l.sa(n),vt(e),Un(e)}function vt(e){if(e.G=0,e.ka=[],e.l){const n=en(e.h);0==n.length&&0==e.i.length||(g(e.ka,n),g(e.ka,e.i),e.h.i.length=0,d(e.i),e.i.length=0),e.l.ra()}}function wt(e,n,t){var i=t instanceof an?on(t):new an(t);if(""!=i.g)n&&(i.g=n+"."+i.g),sn(i,i.s);else{var o=a.location;i=o.protocol,n=n?n+"."+o.hostname:o.hostname,o=+o.port;var r=new an(null);i&&rn(r,i),n&&(r.g=n),o&&sn(r,o),t&&(r.l=t),i=r}return t=e.D,n=e.ya,t&&n&&ln(i,t,n),ln(i,"VER",e.la),Vn(e,i),i}function yt(e,n,t){if(n&&!e.J)throw Error("Can't create secondary domain capable XhrIo object.");return(n=e.Ca&&!e.pa?new Mn(new xn({eb:t})):new Mn(e.pa)).Ha(e.J),n}function bt(){}function St(){}function Ct(e,n){ee.call(this),this.g=new Kn(n),this.l=e,this.h=n&&n.messageUrlParams||null,e=n&&n.messageHeaders||null,n&&n.clientProtocolHeaderRequired&&(e?e["X-Client-Protocol"]="webchannel":e={"X-Client-Protocol":"webchannel"}),this.g.o=e,e=n&&n.initMessageHeaders||null,n&&n.messageContentType&&(e?e["X-WebChannel-Content-Type"]=n.messageContentType:e={"X-WebChannel-Content-Type":n.messageContentType}),n&&n.va&&(e?e["X-WebChannel-Client-Profile"]=n.va:e={"X-WebChannel-Client-Profile":n.va}),this.g.S=e,(e=n&&n.Sb)&&!p(e)&&(this.g.m=e),this.v=n&&n.supportsCrossDomainXhr||!1,this.u=n&&n.sendRawJson||!1,(n=n&&n.httpSessionIdParam)&&!p(n)&&(this.g.D=n,null!==(e=this.h)&&n in e&&(n in(e=this.h)&&delete e[n])),this.j=new Et(this)}function Lt(e){fe.call(this),e.__headers__&&(this.headers=e.__headers__,this.statusCode=e.__status__,delete e.__headers__,delete e.__status__);var n=e.__sm__;if(n){e:{for(const t in n){e=t;break e}e=void 0}(this.i=e)&&(e=this.i,n=null!==n&&e in n?n[e]:void 0),this.data=n}else this.data=e}function Tt(){ve.call(this),this.status=1}function Et(e){this.g=e}(e=Mn.prototype).Ha=function(e){this.J=e},e.ea=function(e,n,t,i){if(this.g)throw Error("[goog.net.XhrIo] Object is active with another request="+this.D+"; newUri="+e);n=n?n.toUpperCase():"GET",this.D=e,this.l="",this.m=0,this.A=!1,this.h=!0,this.g=this.o?this.o.g():Ae.g(),this.v=this.o?ge(this.o):ge(Ae),this.g.onreadystatechange=l(this.Ea,this);try{this.B=!0,this.g.open(n,String(e),!0),this.B=!1}catch(r){return void Bn(this,r)}if(e=t||"",t=new Map(this.headers),i)if(Object.getPrototypeOf(i)===Object.prototype)for(var o in i)t.set(o,i[o]);else{if("function"!=typeof i.keys||"function"!=typeof i.get)throw Error("Unknown input type for opt_headers: "+String(i));for(const e of i.keys())t.set(e,i.get(e))}i=Array.from(t.keys()).find(e=>"content-type"==e.toLowerCase()),o=a.FormData&&e instanceof a.FormData,!(0<=Array.prototype.indexOf.call(Jn,n,void 0))||i||o||t.set("Content-Type","application/x-www-form-urlencoded;charset=utf-8");for(const[a,s]of t)this.g.setRequestHeader(a,s);this.H&&(this.g.responseType=this.H),"withCredentials"in this.g&&this.g.withCredentials!==this.J&&(this.g.withCredentials=this.J);try{Hn(this),this.u=!0,this.g.send(e),this.u=!1}catch(r){Bn(this,r)}},e.abort=function(e){this.g&&this.h&&(this.h=!1,this.j=!0,this.g.abort(),this.j=!1,this.m=e||7,ne(this,"complete"),ne(this,"abort"),Xn(this))},e.N=function(){this.g&&(this.h&&(this.h=!1,this.j=!0,this.g.abort(),this.j=!1),Xn(this,!0)),Mn.aa.N.call(this)},e.Ea=function(){this.s||(this.B||this.u||this.j?Fn(this):this.bb())},e.bb=function(){Fn(this)},e.isActive=function(){return!!this.g},e.Z=function(){try{return 2<Gn(this)?this.g.status:-1}catch(e){return-1}},e.oa=function(){try{return this.g?this.g.responseText:""}catch(e){return""}},e.Oa=function(e){if(this.g){var n=this.g.responseText;return e&&0==n.indexOf(e)&&(n=n.substring(e.length)),ce(n)}},e.Ba=function(){return this.m},e.Ka=function(){return"string"==typeof this.l?this.l:String(this.l)},(e=Kn.prototype).la=8,e.G=1,e.connect=function(e,n,t,i){Te(0),this.W=e,this.H=n||{},t&&void 0!==i&&(this.H.OSID=t,this.H.OAID=i),this.F=this.X,this.I=wt(this,null,this.W),zn(this)},e.Ga=function(e){if(this.s)if(this.s=null,1==this.G){if(!e){this.U=Math.floor(1e5*Math.random()),e=this.U++;
1const a=new Pe(this,this.j,e);let o=this.o;if(this.S&&(o?(o=y(o),S(o,this.S)):o=this.S),null!==this.m||this.O||(a.H=o,o=null),this.P)e:{for(var n=0,t=0;t<this.i.length;t++){var i=this.i[t];if(void 0===(i="__data__"in i.map&&"string"==typeof(i=i.map.__data__)?i.length:void 0))break;if(4096<(n+=i)){n=t;break e}if(4096===n||t===this.i.length-1){n=t+1;break e}}n=1e3}else n=1e3;n=qn(this,a,n),ln(t=on(this.I),"RID",e),ln(t,"CVER",22),this.D&&ln(t,"X-HTTP-Session-Id",this.D),Vn(this,t),o&&(this.O?n="headers="+encodeURIComponent(String(Pn(o)))+"&"+n:this.m&&Nn(t,this.m,o)),Ve(this.h,a),this.Ua&&ln(t,"TYPE","init"),this.P?(ln(t,"$req",n),ln(t,"SID","null"),a.T=!0,Je(a,t,null)):Je(a,t,n),this.G=2}}else 3==this.G&&(e?$n(this,e):0==this.i.length||Ue(this.h)||$n(this))},e.Fa=function(){if(this.u=null,it(this),this.ba&&!(this.M||null==this.g||0>=this.R)){var e=2*this.R;this.j.info("BP detection timer enabled: "+e),this.A=ke(l(this.ab,this),e)}},e.ab=function(){this.A&&(this.A=null,this.j.info("BP detection timeout reached."),this.j.info("Buffering proxy detected and switch to long-polling!"),this.F=!1,this.M=!0,Te(10),Wn(this),it(this))},e.Za=function(){null!=this.C&&(this.C=null,Wn(this),nt(this),Te(19))},e.fb=function(e){e?(this.j.info("Successfully pinged google.com"),Te(2)):(this.j.info("Failed to ping google.com"),Te(1))},e.isActive=function(){return!!this.l&&this.l.isActive(this)},(e=bt.prototype).ua=function(){},e.ta=function(){},e.sa=function(){},e.ra=function(){},e.isActive=function(){return!0},e.Na=function(){},St.prototype.g=function(e,n){return new Ct(e,n)},h(Ct,ee),Ct.prototype.m=function(){this.g.l=this.j,this.v&&(this.g.J=!0),this.g.connect(this.l,this.h||void 0)},Ct.prototype.close=function(){jn(this.g)},Ct.prototype.o=function(e){var n=this.g;if("string"==typeof e){var t={};t.__data__=e,e=t}else this.u&&((t={}).__data__=le(e),e=t);n.i.push(new je(n.Ya++,e)),3==n.G&&zn(n)},Ct.prototype.N=function(){this.g.l=null,delete this.j,jn(this.g),delete this.g,Ct.aa.N.call(this)},h(Lt,fe),h(Tt,ve),h(Et,bt),Et.prototype.ua=function(){ne(this.g,"a")},Et.prototype.ta=function(e){ne(this.g,new Lt(e))},Et.prototype.sa=function(e){ne(this.g,new Tt)},Et.prototype.ra=function(){ne(this.g,"b")},St.prototype.createWebChannel=St.prototype.g,Ct.prototype.send=Ct.prototype.o,Ct.prototype.open=Ct.prototype.m,Ct.prototype.close=Ct.prototype.close,mt=function(){return new St},pt=function(){return be()},gt=we,dt={mb:0,pb:1,qb:2,Jb:3,Ob:4,Lb:5,Mb:6,Kb:7,Ib:8,Nb:9,PROXY:10,NOPROXY:11,Gb:12,Cb:13,Db:14,Bb:15,Eb:16,Fb:17,ib:18,hb:19,jb:20},Ye.NO_ERROR=0,Ye.TIMEOUT=8,Ye.HTTP_ERROR=6,ht=Ye,_e.COMPLETE="complete",ct=_e,pe.EventType=me,me.OPEN="a",me.CLOSE="b",me.ERROR="c",me.MESSAGE="d",ee.prototype.listen=ee.prototype.K,lt=pe,Mn.prototype.listenOnce=Mn.prototype.L,Mn.prototype.getLastError=Mn.prototype.Ka,Mn.prototype.getLastErrorCode=Mn.prototype.Ba,Mn.prototype.getStatus=Mn.prototype.Z,Mn.prototype.getResponseJson=Mn.prototype.Oa,Mn.prototype.getResponseText=Mn.prototype.oa,Mn.prototype.send=Mn.prototype.ea,Mn.prototype.setWithCredentials=Mn.prototype.Ha,ut=Mn}).apply(void 0!==ft?ft:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{});const vt="@firebase/firestore";class wt{constructor(e){this.uid=e}isAuthenticated(){return null!=this.uid}toKey(){return this.isAuthenticated()?"uid:"+this.uid:"anonymous-user"}isEqual(e){return e.uid===this.uid}}wt.UNAUTHENTICATED=new wt(null),wt.GOOGLE_CREDENTIALS=new wt("google-credentials-uid"),wt.FIRST_PARTY=new wt("first-party-uid"),wt.MOCK_USER=new wt("mock-user");let yt="10.14.0";const bt=new Fe("@firebase/firestore");function St(){return bt.logLevel}function Ct(e,...n){if(bt.logLevel<=Ne.DEBUG){const t=n.map(Et);bt.debug(`Firestore (${yt}): ${e}`,...t)}}function Lt(e,...n){if(bt.logLevel<=Ne.ERROR){const t=n.map(Et);bt.error(`Firestore (${yt}): ${e}`,...t)}}function Tt(e,...n){if(bt.logLevel<=Ne.WARN){const t=n.map(Et);bt.warn(`Firestore (${yt}): ${e}`,...t)}}function Et(e){if("string"==typeof e)return e;try{return n=e,JSON.stringify(n)}catch(t){return e}var n}function kt(e="Unexpected state"){const n=`FIRESTORE (${yt}) INTERNAL ASSERTION FAILED: `+e;throw Lt(n),new Error(n)}function Dt(e,n){e||kt()}function xt(e,n){return e}const At={OK:"ok",CANCELLED:"cancelled",UNKNOWN:"unknown",INVALID_ARGUMENT:"invalid-argument",DEADLINE_EXCEEDED:"deadline-exceeded",NOT_FOUND:"not-found",ALREADY_EXISTS:"already-exists",PERMISSION_DENIED:"permission-denied",UNAUTHENTICATED:"unauthenticated",RESOURCE_EXHAUSTED:"resource-exhausted",FAILED_PRECONDITION:"failed-precondition",ABORTED:"aborted",OUT_OF_RANGE:"out-of-range",UNIMPLEMENT
1ED:"unimplemented",INTERNAL:"internal",UNAVAILABLE:"unavailable",DATA_LOSS:"data-loss"};class Yt extends Se{constructor(e,n){super(e,n),this.code=e,this.message=n,this.toString=()=>`${this.name}: [code=${this.code}]: ${this.message}`}}class _t{constructor(){this.promise=new Promise((e,n)=>{this.resolve=e,this.reject=n})}}class It{constructor(e,n){this.user=n,this.type="OAuth",this.headers=new Map,this.headers.set("Authorization",`Bearer ${e}`)}}class Pt{getToken(){return Promise.resolve(null)}invalidateToken(){}start(e,n){e.enqueueRetryable(()=>n(wt.UNAUTHENTICATED))}shutdown(){}}class Nt{constructor(e){this.token=e,this.changeListener=null}getToken(){return Promise.resolve(this.token)}invalidateToken(){}start(e,n){this.changeListener=n,e.enqueueRetryable(()=>n(this.token.user))}shutdown(){this.changeListener=null}}class Mt{constructor(e){this.t=e,this.currentUser=wt.UNAUTHENTICATED,this.i=0,this.forceRefresh=!1,this.auth=null}start(e,n){Dt(void 0===this.o);let t=this.i;const i=e=>this.i!==t?(t=this.i,n(e)):Promise.resolve();let a=new _t;this.o=()=>{this.i++,this.currentUser=this.u(),a.resolve(),a=new _t,e.enqueueRetryable(()=>i(this.currentUser))};const o=()=>{const n=a;e.enqueueRetryable(async()=>{await n.promise,await i(this.currentUser)})},r=e=>{Ct("FirebaseAuthCredentialsProvider","Auth detected"),this.auth=e,this.o&&(this.auth.addAuthTokenListener(this.o),o())};this.t.onInit(e=>r(e)),setTimeout(()=>{if(!this.auth){const e=this.t.getImmediate({optional:!0});e?r(e):(Ct("FirebaseAuthCredentialsProvider","Auth not yet detected"),a.resolve(),a=new _t)}},0),o()}getToken(){const e=this.i,n=this.forceRefresh;return this.forceRefresh=!1,this.auth?this.auth.getToken(n).then(n=>this.i!==e?(Ct("FirebaseAuthCredentialsProvider","getToken aborted due to token change."),this.getToken()):n?(Dt("string"==typeof n.accessToken),new It(n.accessToken,this.currentUser)):null):Promise.resolve(null)}invalidateToken(){this.forceRefresh=!0}shutdown(){this.auth&&this.o&&this.auth.removeAuthTokenListener(this.o),this.o=void 0}u(){const e=this.auth&&this.auth.getUid();return Dt(null===e||"string"==typeof e),new wt(e)}}class Zt{constructor(e,n,t){this.l=e,this.h=n,this.P=t,this.type="FirstParty",this.user=wt.FIRST_PARTY,this.I=new Map}T(){return this.P?this.P():null}get headers(){this.I.set("X-Goog-AuthUser",this.l);const e=this.T();return e&&this.I.set("Authorization",e),this.h&&this.I.set("X-Goog-Iam-Authorization-Token",this.h),this.I}}class Jt{constructor(e,n,t){this.l=e,this.h=n,this.P=t}getToken(){return Promise.resolve(new Zt(this.l,this.h,this.P))}start(e,n){e.enqueueRetryable(()=>n(wt.FIRST_PARTY))}shutdown(){}invalidateToken(){}}class Bt{constructor(e){this.value=e,this.type="AppCheck",this.headers=new Map,e&&e.length>0&&this.headers.set("x-firebase-appcheck",this.value)}}class Rt{constructor(e){this.A=e,this.forceRefresh=!1,this.appCheck=null,this.R=null}start(e,n){Dt(void 0===this.o);const t=e=>{null!=e.error&&Ct("FirebaseAppCheckTokenProvider",`Error getting App Check token; using placeholder token instead. Error: ${e.error.message}`);const t=e.token!==this.R;return this.R=e.token,Ct("FirebaseAppCheckTokenProvider",`Received ${t?"new":"existing"} token.`),t?n(e.token):Promise.resolve()};this.o=n=>{e.enqueueRetryable(()=>t(n))};const i=e=>{Ct("FirebaseAppCheckTokenProvider","AppCheck detected"),this.appCheck=e,this.o&&this.appCheck.addTokenListener(this.o)};this.A.onInit(e=>i(e)),setTimeout(()=>{if(!this.appCheck){const e=this.A.getImmediate({optional:!0});e?i(e):Ct("FirebaseAppCheckTokenProvider","AppCheck not yet detected")}},0)}getToken(){const e=this.forceRefresh;return this.forceRefresh=!1,this.appCheck?this.appCheck.getToken(e).then(e=>e?(Dt("string"==typeof e.token),this.R=e.token,new Bt(e.token)):null):Promise.resolve(null)}invalidateToken(){this.forceRefresh=!0}shutdown(){this.appCheck&&this.o&&this.appCheck.removeTokenListener(this.o),this.o=void 0}}function Ft(e){const n="undefined"!=typeof self&&(self.crypto||self.msCrypto),t=new Uint8Array(e);if(n&&"function"==typeof n.getRandomValues)n.getRandomValues(t);else for(let i=0;i<e;
1i++)t[i]=Math.floor(256*Math.random());return t}class Xt{static newId(){const e="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789",n=62*Math.floor(256/62);let t="";for(;t.length<20;){const i=Ft(40);for(let a=0;a<i.length;++a)t.length<20&&i[a]<n&&(t+=e.charAt(i[a]%62))}return t}}function Ht(e,n){return e<n?-1:e>n?1:0}function Gt(e,n,t){return e.length===n.length&&e.every((e,i)=>t(e,n[i]))}class Ot{constructor(e,n){if(this.seconds=e,this.nanoseconds=n,n<0)throw new Yt(At.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+n);if(n>=1e9)throw new Yt(At.INVALID_ARGUMENT,"Timestamp nanoseconds out of range: "+n);if(e<-62135596800)throw new Yt(At.INVALID_ARGUMENT,"Timestamp seconds out of range: "+e);if(e>=253402300800)throw new Yt(At.INVALID_ARGUMENT,"Timestamp seconds out of range: "+e)}static now(){return Ot.fromMillis(Date.now())}static fromDate(e){return Ot.fromMillis(e.getTime())}static fromMillis(e){const n=Math.floor(e/1e3),t=Math.floor(1e6*(e-1e3*n));return new Ot(n,t)}toDate(){return new Date(this.toMillis())}toMillis(){return 1e3*this.seconds+this.nanoseconds/1e6}_compareTo(e){return this.seconds===e.seconds?Ht(this.nanoseconds,e.nanoseconds):Ht(this.seconds,e.seconds)}isEqual(e){return e.seconds===this.seconds&&e.nanoseconds===this.nanoseconds}toString(){return"Timestamp(seconds="+this.seconds+", nanoseconds="+this.nanoseconds+")"}toJSON(){return{seconds:this.seconds,nanoseconds:this.nanoseconds}}valueOf(){const e=this.seconds- -62135596800;return String(e).padStart(12,"0")+"."+String(this.nanoseconds).padStart(9,"0")}}class Qt{constructor(e){this.timestamp=e}static fromTimestamp(e){return new Qt(e)}static min(){return new Qt(new Ot(0,0))}static max(){return new Qt(new Ot(253402300799,999999999))}compareTo(e){return this.timestamp._compareTo(e.timestamp)}isEqual(e){return this.timestamp.isEqual(e.timestamp)}toMicroseconds(){return 1e6*this.timestamp.seconds+this.timestamp.nanoseconds/1e3}toString(){return"SnapshotVersion("+this.timestamp.toString()+")"}toTimestamp(){return this.timestamp}}class Kt{constructor(e,n,t){void 0===n?n=0:n>e.length&&kt(),void 0===t?t=e.length-n:t>e.length-n&&kt(),this.segments=e,this.offset=n,this.len=t}get length(){return this.len}isEqual(e){return 0===Kt.comparator(this,e)}child(e){const n=this.segments.slice(this.offset,this.limit());return e instanceof Kt?e.forEach(e=>{n.push(e)}):n.push(e),this.construct(n)}limit(){return this.offset+this.length}popFirst(e){return e=void 0===e?1:e,this.construct(this.segments,this.offset+e,this.length-e)}popLast(){return this.construct(this.segments,this.offset,this.length-1)}firstSegment(){return this.segments[this.offset]}lastSegment(){return this.get(this.length-1)}get(e){return this.segments[this.offset+e]}isEmpty(){return 0===this.length}isPrefixOf(e){if(e.length<this.length)return!1;for(let n=0;n<this.length;n++)if(this.get(n)!==e.get(n))return!1;return!0}isImmediateParentOf(e){if(this.length+1!==e.length)return!1;for(let n=0;n<this.length;n++)if(this.get(n)!==e.get(n))return!1;return!0}forEach(e){for(let n=this.offset,t=this.limit();n<t;n++)e(this.segments[n])}toArray(){return this.segments.slice(this.offset,this.limit())}static comparator(e,n){const t=Math.min(e.length,n.length);for(let i=0;i<t;i++){const t=e.get(i),a=n.get(i);if(t<a)return-1;if(t>a)return 1}return e.length<n.length?-1:e.length>n.length?1:0}}class jt extends Kt{construct(e,n,t){return new jt(e,n,t)}canonicalString(){return this.toArray().join("/")}toString(){return this.canonicalString()}toUriEncodedString(){return this.toArray().map(encodeURIComponent).join("/")}static fromString(...e){const n=[];for(const t of e){if(t.indexOf("//")>=0)throw new Yt(At.INVALID_ARGUMENT,`Invalid segment (${t}). Paths must not contain // in them.`);n.push(...t.split("/").filter(e=>e.length>0))}return new jt(n)}static emptyPath(){return new jt([])}}const Wt=/^[_a-zA-Z][_a-zA-Z0-9]*$/;class Ut extends Kt{construct(e,n,t){return new Ut(e,n,t)}static isValidIdentifier(e){return Wt.test(e)}canonicalString(){return this.toArray().map(e=>(e=e.replace(/\\/g,"\\\\").replace(/`/g,"\\`"),Ut.isValidIdentifier(e)||(e="`"+e+"`"),e)).join(".")}toString(){return this.canonicalString()}isKeyField(){return 1===this.length&&"__name__"===this.get(0)}static keyField(){return new Ut(["__name__"])}static fromServerFormat(e){const n=[];let t="",i=0;const a=()=>
1{if(0===t.length)throw new Yt(At.INVALID_ARGUMENT,`Invalid field path (${e}). Paths must not be empty, begin with '.', end with '.', or contain '..'`);n.push(t),t=""};let o=!1;for(;i<e.length;){const n=e[i];if("\\"===n){if(i+1===e.length)throw new Yt(At.INVALID_ARGUMENT,"Path has trailing escape character: "+e);const n=e[i+1];if("\\"!==n&&"."!==n&&"`"!==n)throw new Yt(At.INVALID_ARGUMENT,"Path has invalid escape sequence: "+e);t+=n,i+=2}else"`"===n?(o=!o,i++):"."!==n||o?(t+=n,i++):(a(),i++)}if(a(),o)throw new Yt(At.INVALID_ARGUMENT,"Unterminated ` in path: "+e);return new Ut(n)}static emptyPath(){return new Ut([])}}class zt{constructor(e){this.path=e}static fromPath(e){return new zt(jt.fromString(e))}static fromName(e){return new zt(jt.fromString(e).popFirst(5))}static empty(){return new zt(jt.emptyPath())}get collectionGroup(){return this.path.popLast().lastSegment()}hasCollectionId(e){return this.path.length>=2&&this.path.get(this.path.length-2)===e}getCollectionGroup(){return this.path.get(this.path.length-2)}getCollectionPath(){return this.path.popLast()}isEqual(e){return null!==e&&0===jt.comparator(this.path,e.path)}toString(){return this.path.toString()}static comparator(e,n){return jt.comparator(e.path,n.path)}static isDocumentKey(e){return e.length%2==0}static fromSegments(e){return new zt(new jt(e.slice()))}}function $t(e){return new Vt(e.readTime,e.key,-1)}class Vt{constructor(e,n,t){this.readTime=e,this.documentKey=n,this.largestBatchId=t}static min(){return new Vt(Qt.min(),zt.empty(),-1)}static max(){return new Vt(Qt.max(),zt.empty(),-1)}}function qt(e,n){let t=e.readTime.compareTo(n.readTime);return 0!==t?t:(t=zt.comparator(e.documentKey,n.documentKey),0!==t?t:Ht(e.largestBatchId,n.largestBatchId))}class ei{constructor(){this.onCommittedListeners=[]}addOnCommittedListener(e){this.onCommittedListeners.push(e)}raiseOnCommittedEvent(){this.onCommittedListeners.forEach(e=>e())}}async function ni(e){if(e.code!==At.FAILED_PRECONDITION||"The current tab is not in the required state to perform this operation. It might be necessary to refresh the browser tab."!==e.message)throw e;Ct("LocalStore","Unexpectedly lost primary lease")}class ti{constructor(e){this.nextCallback=null,this.catchCallback=null,this.result=void 0,this.error=void 0,this.isDone=!1,this.callbackAttached=!1,e(e=>{this.isDone=!0,this.result=e,this.nextCallback&&this.nextCallback(e)},e=>{this.isDone=!0,this.error=e,this.catchCallback&&this.catchCallback(e)})}catch(e){return this.next(void 0,e)}next(e,n){return this.callbackAttached&&kt(),this.callbackAttached=!0,this.isDone?this.error?this.wrapFailure(n,this.error):this.wrapSuccess(e,this.result):new ti((t,i)=>{this.nextCallback=n=>{this.wrapSuccess(e,n).next(t,i)},this.catchCallback=e=>{this.wrapFailure(n,e).next(t,i)}})}toPromise(){return new Promise((e,n)=>{this.next(e,n)})}wrapUserFunction(e){try{const n=e();return n instanceof ti?n:ti.resolve(n)}catch(n){return ti.reject(n)}}wrapSuccess(e,n){return e?this.wrapUserFunction(()=>e(n)):ti.resolve(n)}wrapFailure(e,n){return e?this.wrapUserFunction(()=>e(n)):ti.reject(n)}static resolve(e){return new ti((n,t)=>{n(e)})}static reject(e){return new ti((n,t)=>{t(e)})}static waitFor(e){return new ti((n,t)=>{let i=0,a=0,o=!1;e.forEach(e=>{++i,e.next(()=>{++a,o&&a===i&&n()},e=>t(e))}),o=!0,a===i&&n()})}static or(e){let n=ti.resolve(!1);for(const t of e)n=n.next(e=>e?ti.resolve(e):t());return n}static forEach(e,n){const t=[];return e.forEach((e,i)=>{t.push(n.call(this,e,i))}),this.waitFor(t)}static mapArray(e,n){return new ti((t,i)=>{const a=e.length,o=new Array(a);let r=0;for(let s=0;s<a;s++){const u=s;n(e[u]).next(e=>{o[u]=e,++r,r===a&&t(o)},e=>i(e))}})}static doWhile(e,n){return new ti((t,i)=>{const a=()=>{!0===e()?n().next(()=>{a()},i):t()};a()})}}function ii(e){return"IndexedDbTransactionError"===e.name}class ai{constructor(e,n){this.previousValue=e,n&&(n.sequenceNumberHandler=e=>this.ie(e),this.se=e=>n.writeSequenceNumber(e))}ie(e){return this.previousValue=Math.max(e,this.previousValue),this.previousValue}next(){const e=++this.previousValue;return this.se&&this.se(e),e}}function oi(e){return null==e}function ri(e){return 0===e&&1/e==-1/0}function si(e){let n=0;for(const t in e)Object.prototype.hasOwnProperty.call(e,t)&&n++;return n}function ui(e,n){for(const t in e)Object.prototype.hasOwnProperty.call(e,t)&&n(t,e[t])}function li(e){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n))return!1;return!0}ai.oe=-1;class ci{constructor(e,n){this.comparator=e,this.root=n||di.EMPTY}insert(e,n){return new ci(this.comparator,this.root.insert(e,n,this.comparator).copy(null,null,di.BLACK,null,
vendor: 4,485 bytes, line 1
1null))}remove(e){return new ci(this.comparator,this.root.remove(e,this.comparator).copy(null,null,di.BLACK,null,null))}get(e){let n=this.root;for(;!n.isEmpty();){const t=this.comparator(e,n.key);if(0===t)return n.value;t<0?n=n.left:t>0&&(n=n.right)}return null}indexOf(e){let n=0,t=this.root;for(;!t.isEmpty();){const i=this.comparator(e,t.key);if(0===i)return n+t.left.size;i<0?t=t.left:(n+=t.left.size+1,t=t.right)}return-1}isEmpty(){return this.root.isEmpty()}get size(){return this.root.size}minKey(){return this.root.minKey()}maxKey(){return this.root.maxKey()}inorderTraversal(e){return this.root.inorderTraversal(e)}forEach(e){this.inorderTraversal((n,t)=>(e(n,t),!1))}toString(){const e=[];return this.inorderTraversal((n,t)=>(e.push(`${n}:${t}`),!1)),`{${e.join(", ")}}`}reverseTraversal(e){return this.root.reverseTraversal(e)}getIterator(){return new hi(this.root,null,this.comparator,!1)}getIteratorFrom(e){return new hi(this.root,e,this.comparator,!1)}getReverseIterator(){return new hi(this.root,null,this.comparator,!0)}getReverseIteratorFrom(e){return new hi(this.root,e,this.comparator,!0)}}class hi{constructor(e,n,t,i){this.isReverse=i,this.nodeStack=[];let a=1;for(;!e.isEmpty();)if(a=n?t(e.key,n):1,n&&i&&(a*=-1),a<0)e=this.isReverse?e.left:e.right;else{if(0===a){this.nodeStack.push(e);break}this.nodeStack.push(e),e=this.isReverse?e.right:e.left}}getNext(){let e=this.nodeStack.pop();const n={key:e.key,value:e.value};if(this.isReverse)for(e=e.left;!e.isEmpty();)this.nodeStack.push(e),e=e.right;else for(e=e.right;!e.isEmpty();)this.nodeStack.push(e),e=e.left;return n}hasNext(){return this.nodeStack.length>0}peek(){if(0===this.nodeStack.length)return null;const e=this.nodeStack[this.nodeStack.length-1];return{key:e.key,value:e.value}}}class di{constructor(e,n,t,i,a){this.key=e,this.value=n,this.color=null!=t?t:di.RED,this.left=null!=i?i:di.EMPTY,this.right=null!=a?a:di.EMPTY,this.size=this.left.size+1+this.right.size}copy(e,n,t,i,a){return new di(null!=e?e:this.key,null!=n?n:this.value,null!=t?t:this.color,null!=i?i:this.left,null!=a?a:this.right)}isEmpty(){return!1}inorderTraversal(e){return this.left.inorderTraversal(e)||e(this.key,this.value)||this.right.inorderTraversal(e)}reverseTraversal(e){return this.right.reverseTraversal(e)||e(this.key,this.value)||this.left.reverseTraversal(e)}min(){return this.left.isEmpty()?this:this.left.min()}minKey(){return this.min().key}maxKey(){return this.right.isEmpty()?this.key:this.right.maxKey()}insert(e,n,t){let i=this;const a=t(e,i.key);return i=a<0?i.copy(null,null,null,i.left.insert(e,n,t),null):0===a?i.copy(null,n,null,null,null):i.copy(null,null,null,null,i.right.insert(e,n,t)),i.fixUp()}removeMin(){if(this.left.isEmpty())return di.EMPTY;let e=this;return e.left.isRed()||e.left.left.isRed()||(e=e.moveRedLeft()),e=e.copy(null,null,null,e.left.removeMin(),null),e.fixUp()}remove(e,n){let t,i=this;if(n(e,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(e,n),null);else{if(i.left.isRed()&&(i=i.rotateRight()),i.right.isEmpty()||i.right.isRed()||i.right.left.isRed()||(i=i.moveRedRight()),0===n(e,i.key)){if(i.right.isEmpty())return di.EMPTY;t=i.right.min(),i=i.copy(t.key,t.value,null,null,i.right.removeMin())}i=i.copy(null,null,null,null,i.right.remove(e,n))}return i.fixUp()}isRed(){return this.color}fixUp(){let e=this;return e.right.isRed()&&!e.left.isRed()&&(e=e.rotateLeft()),e.left.isRed()&&e.left.left.isRed()&&(e=e.rotateRight()),e.left.isRed()&&e.right.isRed()&&(e=e.colorFlip()),e}moveRedLeft(){let e=this.colorFlip();return e.right.left.isRed()&&(e=e.copy(null,null,null,null,e.right.rotateRight()),e=e.rotateLeft(),e=e.colorFlip()),e}moveRedRight(){let e=this.colorFlip();return e.left.left.isRed()&&(e=e.rotateRight(),e=e.colorFlip()),e}rotateLeft(){const e=this.copy(null,null,di.RED,null,this.right.left);return this.right.copy(null,null,this.color,e,null)}rotateRight(){const e=this.copy(null,null,di.RED,this.left.right,null);return this.left.copy(null,null,this.color,null,e)}colorFlip(){const e=this.left.copy(null,null,!this.left.color,null,null),n=this.right.copy(null,null,!this.right.color,null,null);return this.copy(null,null,!this.color,e,n)}checkMaxDepth(){const e=this.check();return Math.pow(2,e)<=this.size+1}check(){if(this.isRed()&&this.left.isRed())throw kt();if(this.right.isRed())throw kt();const e=this.left.check();if(e!==this.right.check())throw kt();return e+(this.isRed()?0:1)}}
1di.EMPTY=null,di.RED=!0,di.BLACK=!1,di.EMPTY=new class{constructor(){this.size=0}get key(){throw kt()}get value(){throw kt()}get color(){throw kt()}get left(){throw kt()}get right(){throw kt()}copy(e,n,t,i,a){return this}insert(e,n,t){return new di(e,n)}remove(e,n){return this}isEmpty(){return!0}inorderTraversal(e){return!1}reverseTraversal(e){return!1}minKey(){return null}maxKey(){return null}isRed(){return!1}checkMaxDepth(){return!0}check(){return 0}};class gi{constructor(e){this.comparator=e,this.data=new ci(this.comparator)}has(e){return null!==this.data.get(e)}first(){return this.data.minKey()}last(){return this.data.maxKey()}get size(){return this.data.size}indexOf(e){return this.data.indexOf(e)}forEach(e){this.data.inorderTraversal((n,t)=>(e(n),!1))}forEachInRange(e,n){const t=this.data.getIteratorFrom(e[0]);for(;t.hasNext();){const i=t.getNext();if(this.comparator(i.key,e[1])>=0)return;n(i.key)}}forEachWhile(e,n){let t;for(t=void 0!==n?this.data.getIteratorFrom(n):this.data.getIterator();t.hasNext();)if(!e(t.getNext().key))return}firstAfterOrEqual(e){const n=this.data.getIteratorFrom(e);return n.hasNext()?n.getNext().key:null}getIterator(){return new pi(this.data.getIterator())}getIteratorFrom(e){return new pi(this.data.getIteratorFrom(e))}add(e){return this.copy(this.data.remove(e).insert(e,!0))}delete(e){return this.has(e)?this.copy(this.data.remove(e)):this}isEmpty(){return this.data.isEmpty()}unionWith(e){let n=this;return n.size<e.size&&(n=e,e=this),e.forEach(e=>{n=n.add(e)}),n}isEqual(e){if(!(e instanceof gi))return!1;if(this.size!==e.size)return!1;const n=this.data.getIterator(),t=e.data.getIterator();for(;n.hasNext();){const e=n.getNext().key,i=t.getNext().key;if(0!==this.comparator(e,i))return!1}return!0}toArray(){const e=[];return this.forEach(n=>{e.push(n)}),e}toString(){const e=[];return this.forEach(n=>e.push(n)),"SortedSet("+e.toString()+")"}copy(e){const n=new gi(this.comparator);return n.data=e,n}}class pi{constructor(e){this.iter=e}getNext(){return this.iter.getNext().key}hasNext(){return this.iter.hasNext()}}class mi{constructor(e){this.fields=e,e.sort(Ut.comparator)}static empty(){return new mi([])}unionWith(e){let n=new gi(Ut.comparator);for(const t of this.fields)n=n.add(t);for(const t of e)n=n.add(t);return new mi(n.toArray())}covers(e){for(const n of this.fields)if(n.isPrefixOf(e))return!0;return!1}isEqual(e){return Gt(this.fields,e.fields,(e,n)=>e.isEqual(n))}}class fi extends Error{constructor(){super(...arguments),this.name="Base64DecodeError"}}class vi{constructor(e){this.binaryString=e}static fromBase64String(e){const n=function(e){try{return atob(e)}catch(n){throw"undefined"!=typeof DOMException&&n instanceof DOMException?new fi("Invalid base64 string: "+n):n}}(e);return new vi(n)}static fromUint8Array(e){const n=function(e){let n="";for(let t=0;t<e.length;++t)n+=String.fromCharCode(e[t]);return n}(e);return new vi(n)}[Symbol.iterator](){let e=0;return{next:()=>e<this.binaryString.length?{value:this.binaryString.charCodeAt(e++),done:!1}:{value:void 0,done:!0}}}toBase64(){return e=this.binaryString,btoa(e);var e}toUint8Array(){return function(e){const n=new Uint8Array(e.length);for(let t=0;t<e.length;t++)n[t]=e.charCodeAt(t);return n}(this.binaryString)}approximateByteSize(){return 2*this.binaryString.length}compareTo(e){return Ht(this.binaryString,e.binaryString)}isEqual(e){return this.binaryString===e.binaryString}}vi.EMPTY_BYTE_STRING=new vi("");const wi=new RegExp(/^\d{4}-\d\d-\d\dT\d\d:\d\d:\d\d(?:\.(\d+))?Z$/);function yi(e){if(Dt(!!e),"string"==typeof e){let n=0;const t=wi.exec(e);if(Dt(!!t),t[1]){let e=t[1];e=(e+"000000000").substr(0,9),n=Number(e)}const i=new Date(e);return{seconds:Math.floor(i.getTime()/1e3),nanos:n}}return{seconds:bi(e.seconds),nanos:bi(e.nanos)}}function bi(e){return"number"==typeof e?e:"string"==typeof e?Number(e):0}function Si(e){return"string"==typeof e?vi.fromBase64String(e):vi.fromUint8Array(e)}function Ci(e){var n,t;return"server_timestamp"===(null===(t=((null===(n=null==e?void 0:e.mapValue)||void 0===n?void 0:n.fields)||{}).__type__)||void 0===t?void 0:t.stringValue)}function Li(e){const n=e.mapValue.fields.__previous_value__;return Ci(n)?Li(n):n}function Ti(e){const n=yi(e.mapValue.fields.__local_write_time__.timestampValue);return new Ot(n.seconds,n.nanos)}class Ei{constructor(e,n,t,i,a,o,r,s,u){this.databaseId=e,this.appId=n,this.persistenceKey=t,this.host=i,this.ssl=a,this.forceLongPolling=o,this.autoDetectLongPolling=r,this.longPollingOptions=s,this.useFetchStreams=u}}class ki{constructor(e,n){this.projectId=e,this.database=n||"(default)"}static empty(){return new ki("","")}get isDefaultDatabase(){return"(default)"===this.database}isEqual(e){return e instanceof ki&&e.projectId===this.projectId&&e.database===this.database}}const Di={};function xi(e){return"nullValue"in e?0:"booleanValue"in e?1:"integerValue"in e||"doubleValue"in e?2:"timestampValue"in e?3:"stringValue"in e?5:"bytesValue"in e?6:"referenceValue"in e?7:"geoPointValue"in e?8:"arrayValue"in e?9:"mapValue"in e?Ci(e)?4:function(e){return"__max__"===(((e.mapValue||{}).fields||{}).__type__||{}).stringValue}(e)?9007199254740991:function(e){var n,t;return"__vector__"===(null===(t=((null===(n=null==e?void 0:e.mapValue)||void 0===n?void 0:n.fields)||{}).__type__)||void 0===t?void 0:t.stringValue)}(e)?10:11:kt()}function Ai(e,n){if(e===n)return!0;const t=xi(e);if(t!==xi(n))return!1;switch(t){case 0:case 9007199254740991:return!0;case 1:return e.booleanValue===n.booleanValue;case 4:return Ti(e).isEqual(Ti(n));case 3:return function(e,n){if("string"==typeof e.timestampValue&&"string"==typeof n.timestampValue&&e.timestampValue.length===n.timestampValue.length)return e.timestampValue===n.timestampValue;const t=yi(e.timestampValue),i=yi(n.timestampValue);return t.seconds===i.seconds&&t.nanos===i.nanos}(e,n);case 5:return e.stringValue===n.stringValue;case 6:return i=n,Si(e.bytesValue).isEqual(Si(i.bytesValue));case 7:return e.referenceValue===n.referenceValue;case 8:return function(e,n){return bi(e.geoPointValue.latitude)===bi(n.geoPointValue.latitude)&&bi(e.geoPointValue.longitude)===bi(n.geoPointValue.longitude)}(e,n);case 2:return function(e,n){if("integerValue"in e&&"integerValue"in n)return bi(e.integerValue)===bi(n.integerValue);if("doubleValue"in e&&"doubleValue"in n){const t=bi(e.doubleValue),i=bi(n.doubleValue);return t===i?ri(t)===ri(i):isNaN(t)&&isNaN(i)}return!1}(e,n);case 9:return Gt(e.arrayValue.values||[],n.arrayValue.values||[],Ai);case 10:case 11:return function(e,n){const t=e.mapValue.fields||{},i=n.mapValue.fields||{};if(si(t)!==si(i))return!1;for(const a in t)if(t.hasOwnProperty(a)&&(void 0===i[a]||!Ai(t[a
1],i[a])))return!1;return!0}(e,n);default:return kt()}var i}function Yi(e,n){return void 0!==(e.values||[]).find(e=>Ai(e,n))}function _i(e,n){if(e===n)return 0;const t=xi(e),i=xi(n);if(t!==i)return Ht(t,i);switch(t){case 0:case 9007199254740991:return 0;case 1:return Ht(e.booleanValue,n.booleanValue);case 2:return function(e,n){const t=bi(e.integerValue||e.doubleValue),i=bi(n.integerValue||n.doubleValue);return t<i?-1:t>i?1:t===i?0:isNaN(t)?isNaN(i)?0:-1:1}(e,n);case 3:return Ii(e.timestampValue,n.timestampValue);case 4:return Ii(Ti(e),Ti(n));case 5:return Ht(e.stringValue,n.stringValue);case 6:return function(e,n){const t=Si(e),i=Si(n);return t.compareTo(i)}(e.bytesValue,n.bytesValue);case 7:return function(e,n){const t=e.split("/"),i=n.split("/");for(let a=0;a<t.length&&a<i.length;a++){const e=Ht(t[a],i[a]);if(0!==e)return e}return Ht(t.length,i.length)}(e.referenceValue,n.referenceValue);case 8:return function(e,n){const t=Ht(bi(e.latitude),bi(n.latitude));return 0!==t?t:Ht(bi(e.longitude),bi(n.longitude))}(e.geoPointValue,n.geoPointValue);case 9:return Pi(e.arrayValue,n.arrayValue);case 10:return function(e,n){var t,i,a,o;const r=e.fields||{},s=n.fields||{},u=null===(t=r.value)||void 0===t?void 0:t.arrayValue,l=null===(i=s.value)||void 0===i?void 0:i.arrayValue,c=Ht((null===(a=null==u?void 0:u.values)||void 0===a?void 0:a.length)||0,(null===(o=null==l?void 0:l.values)||void 0===o?void 0:o.length)||0);return 0!==c?c:Pi(u,l)}(e.mapValue,n.mapValue);case 11:return function(e,n){if(e===Di&&n===Di)return 0;if(e===Di)return 1;if(n===Di)return-1;const t=e.fields||{},i=Object.keys(t),a=n.fields||{},o=Object.keys(a);i.sort(),o.sort();for(let r=0;r<i.length&&r<o.length;++r){const e=Ht(i[r],o[r]);if(0!==e)return e;const n=_i(t[i[r]],a[o[r]]);if(0!==n)return n}return Ht(i.length,o.length)}(e.mapValue,n.mapValue);default:throw kt()}}function Ii(e,n){if("string"==typeof e&&"string"==typeof n&&e.length===n.length)return Ht(e,n);const t=yi(e),i=yi(n),a=Ht(t.seconds,i.seconds);return 0!==a?a:Ht(t.nanos,i.nanos)}function Pi(e,n){const t=e.values||[],i=n.values||[];for(let a=0;a<t.length&&a<i.length;++a){const e=_i(t[a],i[a]);if(e)return e}return Ht(t.length,i.length)}function Ni(e){return Mi(e)}function Mi(e){return"nullValue"in e?"null":"booleanValue"in e?""+e.booleanValue:"integerValue"in e?""+e.integerValue:"doubleValue"in e?""+e.doubleValue:"timestampValue"in e?function(e){const n=yi(e);return`time(${n.seconds},${n.nanos})`}(e.timestampValue):"stringValue"in e?e.stringValue:"bytesValue"in e?Si(e.bytesValue).toBase64():"referenceValue"in e?function(e){return zt.fromName(e).toString()}(e.referenceValue):"geoPointValue"in e?function(e){return`geo(${e.latitude},${e.longitude})`}(e.geoPointValue):"arrayValue"in e?function(e){let n="[",t=!0;for(const i of e.values||[])t?t=!1:n+=",",n+=Mi(i);return n+"]"}(e.arrayValue):"mapValue"in e?function(e){const n=Object.keys(e.fields||{}).sort();let t="{",i=!0;for(const a of n)i?i=!1:t+=",",t+=`${a}:${Mi(e.fields[a])}`;return t+"}"}(e.mapValue):kt()}function Zi(e){return!!e&&"integerValue"in e}function Ji(e){return!!e&&"arrayValue"in e}function Bi(e){return!!e&&"nullValue"in e}function Ri(e){return!!e&&"doubleValue"in e&&isNaN(Number(e.doubleValue))}function Fi(e){return!!e&&"mapValue"in e}function Xi(e){if(e.geoPointValue)return{geoPointValue:Object.assign({},e.geoPointValue)};if(e.timestampValue&&"object"==typeof e.timestampValue)return{timestampValue:Object.assign({},e.timestampValue)};if(e.mapValue){const n={mapValue:{fields:{}}};return ui(e.mapValue.fields,(e,t)=>n.mapValue.fields[e]=Xi(t)),n}if(e.arrayValue){const n={arrayValue:{values:[]}};for(let t=0;t<(e.arrayValue.values||[]).length;++t)n.arrayValue.values[t]=Xi(e.arrayValue.values[t]);return n}return Object.assign({},e)}class Hi{constructor(e){this.value=e}static empty(){return new Hi({mapValue:{}})}field(e){if(e.isEmpty())return this.value;{let n=this.value;for(let t=0;t<e.length-1;++t)if(n=(n.mapValue.fields||{})[e.get(t)],!Fi(n))return null;return n=(n.mapValue.fields||{})[e.lastSegment()],n||null}}set(e,n){this.getFieldsMap(e.popLast())[e.lastSegment()]=Xi(n)}setAll(e){let n=Ut.emptyPath(),t={},i=[];e.forEach((e,a)=>{if(!n.isImmediateParentOf(a)){const e=this.getFieldsMap(n);this.applyChanges(e,t,i),t={},i=[],n=a.popLast()}e?t[a.lastSegment()]=Xi(e):i.push(a.lastSegment())});const a=this.getFieldsMap(n);this.applyChanges(a,t,i)}delete(e){const n=this.field(e.popLast());Fi(n)&&n.mapValue.fields&&delete n.mapValue.fields[e.lastSegment()]}isEqual(e){return Ai(this.value,e.value)}getFieldsMap(e){let n=this.value;n.mapValue.fields||(n.mapValue={fields:{}});for(let t=0;t<e.length;++t){let i=n.mapValue.fields[e.get(t)];Fi(i)&&i.mapValue.fields||(i={mapValue:{fields:{}}},n.mapValue.fields[e.get(t)]=i),n=i}return n.mapValue.fields}
1applyChanges(e,n,t){ui(n,(n,t)=>e[n]=t);for(const i of t)delete e[i]}clone(){return new Hi(Xi(this.value))}}function Gi(e){const n=[];return ui(e.fields,(e,t)=>{const i=new Ut([e]);if(Fi(t)){const e=Gi(t.mapValue).fields;if(0===e.length)n.push(i);else for(const t of e)n.push(i.child(t))}else n.push(i)}),new mi(n)}class Oi{constructor(e,n,t,i,a,o,r){this.key=e,this.documentType=n,this.version=t,this.readTime=i,this.createTime=a,this.data=o,this.documentState=r}static newInvalidDocument(e){return new Oi(e,0,Qt.min(),Qt.min(),Qt.min(),Hi.empty(),0)}static newFoundDocument(e,n,t,i){return new Oi(e,1,n,Qt.min(),t,i,0)}static newNoDocument(e,n){return new Oi(e,2,n,Qt.min(),Qt.min(),Hi.empty(),0)}static newUnknownDocument(e,n){return new Oi(e,3,n,Qt.min(),Qt.min(),Hi.empty(),2)}convertToFoundDocument(e,n){return!this.createTime.isEqual(Qt.min())||2!==this.documentType&&0!==this.documentType||(this.createTime=e),this.version=e,this.documentType=1,this.data=n,this.documentState=0,this}convertToNoDocument(e){return this.version=e,this.documentType=2,this.data=Hi.empty(),this.documentState=0,this}convertToUnknownDocument(e){return this.version=e,this.documentType=3,this.data=Hi.empty(),this.documentState=2,this}setHasCommittedMutations(){return this.documentState=2,this}setHasLocalMutations(){return this.documentState=1,this.version=Qt.min(),this}setReadTime(e){return this.readTime=e,this}get hasLocalMutations(){return 1===this.documentState}get hasCommittedMutations(){return 2===this.documentState}get hasPendingWrites(){return this.hasLocalMutations||this.hasCommittedMutations}isValidDocument(){return 0!==this.documentType}isFoundDocument(){return 1===this.documentType}isNoDocument(){return 2===this.documentType}isUnknownDocument(){return 3===this.documentType}isEqual(e){return e instanceof Oi&&this.key.isEqual(e.key)&&this.version.isEqual(e.version)&&this.documentType===e.documentType&&this.documentState===e.documentState&&this.data.isEqual(e.data)}mutableCopy(){return new Oi(this.key,this.documentType,this.version,this.readTime,this.createTime,this.data.clone(),this.documentState)}toString(){return`Document(${this.key}, ${this.version}, ${JSON.stringify(this.data.value)}, {createTime: ${this.createTime}}), {documentType: ${this.documentType}}), {documentState: ${this.documentState}})`}}class Qi{constructor(e,n){this.position=e,this.inclusive=n}}function Ki(e,n,t){let i=0;for(let a=0;a<e.position.length;a++){const o=n[a],r=e.position[a];if(i=o.field.isKeyField()?zt.comparator(zt.fromName(r.referenceValue),t.key):_i(r,t.data.field(o.field)),"desc"===o.dir&&(i*=-1),0!==i)break}return i}function ji(e,n){if(null===e)return null===n;if(null===n)return!1;if(e.inclusive!==n.inclusive||e.position.length!==n.position.length)return!1;for(let t=0;t<e.position.length;t++)if(!Ai(e.position[t],n.position[t]))return!1;return!0}class Wi{constructor(e,n="asc"){this.field=e,this.dir=n}}function Ui(e,n){return e.dir===n.dir&&e.field.isEqual(n.field)}class zi{}class $i extends zi{constructor(e,n,t){super(),this.field=e,this.op=n,this.value=t}static create(e,n,t){return e.isKeyField()?"in"===n||"not-in"===n?this.createKeyFieldInFilter(e,n,t):new aa(e,n,t):"array-contains"===n?new ua(e,t):"in"===n?new la(e,t):"not-in"===n?new ca(e,t):"array-contains-any"===n?new ha(e,t):new $i(e,n,t)}static createKeyFieldInFilter(e,n,t){return"in"===n?new oa(e,t):new ra(e,t)}matches(e){const n=e.data.field(this.field);return"!="===this.op?null!==n&&this.matchesComparison(_i(n,this.value)):null!==n&&xi(this.value)===xi(n)&&this.matchesComparison(_i(n,this.value))}matchesComparison(e){switch(this.op){case"<":return e<0;case"<=":return e<=0;case"==":return 0===e;case"!=":return 0!==e;case">":return e>0;case">=":return e>=0;default:return kt()}}isInequality(){return["<","<=",">",">=","!=","not-in"].indexOf(this.op)>=0}getFlattenedFilters(){return[this]}getFilters(){return[this]}}class Vi extends zi{constructor(e,n){super(),this.filters=e,this.op=n,this.ae=null}static create(e,n){return new Vi(e,n)}matches(e){return qi(this)?void 0===this.filters.find(n=>!n.matches(e)):void 0!==this.filters.find(n=>n.matches(e))}getFlattenedFilters(){return null!==this.ae||(this.ae=this.filters.reduce((e,n)=>e.concat(n.getFlattenedFilters()),[])),this.ae}getFilters(){return Object.assign([],this.filters)}}function qi(e){return"and"===e.op}function ea(e){return function(e){for(const n of e.filters)if(n instanceof Vi)return!1;return!0}(e)&&qi(e)}function na(e){if(e instanceof $i)return e.field.canonicalString()+e.op.toString()+Ni(e.value);if(ea(e))return e.filters.map(e=>na(e)).join(",");{const n=e.filters.map(e=>na(e)).join(",");
1return`${e.op}(${n})`}}function ta(e,n){return e instanceof $i?(t=e,(i=n)instanceof $i&&t.op===i.op&&t.field.isEqual(i.field)&&Ai(t.value,i.value)):e instanceof Vi?function(e,n){return n instanceof Vi&&e.op===n.op&&e.filters.length===n.filters.length&&e.filters.reduce((e,t,i)=>e&&ta(t,n.filters[i]),!0)}(e,n):void kt();var t,i}function ia(e){return e instanceof $i?`${(n=e).field.canonicalString()} ${n.op} ${Ni(n.value)}`:e instanceof Vi?function(e){return e.op.toString()+" {"+e.getFilters().map(ia).join(" ,")+"}"}(e):"Filter";var n}class aa extends $i{constructor(e,n,t){super(e,n,t),this.key=zt.fromName(t.referenceValue)}matches(e){const n=zt.comparator(e.key,this.key);return this.matchesComparison(n)}}class oa extends $i{constructor(e,n){super(e,"in",n),this.keys=sa("in",n)}matches(e){return this.keys.some(n=>n.isEqual(e.key))}}class ra extends $i{constructor(e,n){super(e,"not-in",n),this.keys=sa("not-in",n)}matches(e){return!this.keys.some(n=>n.isEqual(e.key))}}function sa(e,n){var t;return((null===(t=n.arrayValue)||void 0===t?void 0:t.values)||[]).map(e=>zt.fromName(e.referenceValue))}class ua extends $i{constructor(e,n){super(e,"array-contains",n)}matches(e){const n=e.data.field(this.field);return Ji(n)&&Yi(n.arrayValue,this.value)}}class la extends $i{constructor(e,n){super(e,"in",n)}matches(e){const n=e.data.field(this.field);return null!==n&&Yi(this.value.arrayValue,n)}}class ca extends $i{constructor(e,n){super(e,"not-in",n)}matches(e){if(Yi(this.value.arrayValue,{nullValue:"NULL_VALUE"}))return!1;const n=e.data.field(this.field);return null!==n&&!Yi(this.value.arrayValue,n)}}class ha extends $i{constructor(e,n){super(e,"array-contains-any",n)}matches(e){const n=e.data.field(this.field);return!(!Ji(n)||!n.arrayValue.values)&&n.arrayValue.values.some(e=>Yi(this.value.arrayValue,e))}}class da{constructor(e,n=null,t=[],i=[],a=null,o=null,r=null){this.path=e,this.collectionGroup=n,this.orderBy=t,this.filters=i,this.limit=a,this.startAt=o,this.endAt=r,this.ue=null}}function ga(e,n=null,t=[],i=[],a=null,o=null,r=null){return new da(e,n,t,i,a,o,r)}function pa(e){const n=xt(e);if(null===n.ue){let e=n.path.canonicalString();null!==n.collectionGroup&&(e+="|cg:"+n.collectionGroup),e+="|f:",e+=n.filters.map(e=>na(e)).join(","),e+="|ob:",e+=n.orderBy.map(e=>{return(n=e).field.canonicalString()+n.dir;var n}).join(","),oi(n.limit)||(e+="|l:",e+=n.limit),n.startAt&&(e+="|lb:",e+=n.startAt.inclusive?"b:":"a:",e+=n.startAt.position.map(e=>Ni(e)).join(",")),n.endAt&&(e+="|ub:",e+=n.endAt.inclusive?"a:":"b:",e+=n.endAt.position.map(e=>Ni(e)).join(",")),n.ue=e}return n.ue}function ma(e,n){if(e.limit!==n.limit)return!1;if(e.orderBy.length!==n.orderBy.length)return!1;for(let t=0;t<e.orderBy.length;t++)if(!Ui(e.orderBy[t],n.orderBy[t]))return!1;if(e.filters.length!==n.filters.length)return!1;for(let t=0;t<e.filters.length;t++)if(!ta(e.filters[t],n.filters[t]))return!1;return e.collectionGroup===n.collectionGroup&&!!e.path.isEqual(n.path)&&!!ji(e.startAt,n.startAt)&&ji(e.endAt,n.endAt)}function fa(e){return zt.isDocumentKey(e.path)&&null===e.collectionGroup&&0===e.filters.length}class va{constructor(e,n=null,t=[],i=[],a=null,o="F",r=null,s=null){this.path=e,this.collectionGroup=n,this.explicitOrderBy=t,this.filters=i,this.limit=a,this.limitType=o,this.startAt=r,this.endAt=s,this.ce=null,this.le=null,this.he=null,this.startAt,this.endAt}}function wa(e){return new va(e)}function ya(e){return 0===e.filters.length&&null===e.limit&&null==e.startAt&&null==e.endAt&&(0===e.explicitOrderBy.length||1===e.explicitOrderBy.length&&e.explicitOrderBy[0].field.isKeyField())}function ba(e){const n=xt(e);if(null===n.ce){n.ce=[];const e=new Set;for(const i of n.explicitOrderBy)n.ce.push(i),e.add(i.field.canonicalString());const t=n.explicitOrderBy.length>0?n.explicitOrderBy[n.explicitOrderBy.length-1].dir:"asc";(function(e){let n=new gi(Ut.comparator);return e.filters.forEach(e=>{e.getFlattenedFilters().forEach(e=>{e.isInequality()&&(n=n.add(e.field))})}),n})(n).forEach(i=>{e.has(i.canonicalString())||i.isKeyField()||n.ce.push(new Wi(i,t))}),e.has(Ut.keyField().canonicalString())||n.ce.push(new Wi(Ut.keyField(),t))}return n.ce}function Sa(e){const n=xt(e);return n.le||(n.le=function(e,n){if("F"===e.limitType)return ga(e.path,e.collectionGroup,n,e.filters,e.limit,e.startAt,e.endAt);{n=n.map(e=>{const n="desc"===e.dir?"asc":"desc";return new Wi(e.field,n)});const t=e.endAt?new Qi(e.endAt.position,e.endAt.inclusive):null,i=e.startAt?new Qi(e.startAt.position,e.startAt.inclusive):null;return ga(e.path,e.collectionGroup,n,e.filters,e.limit,t,i)}}(n,ba(e))),n.le}function Ca(e,n,t){return new va(e.path,e.collectionGroup,e.explicitOrderBy.slice(),e.filters.slice(),n,t,e.startAt,e.endAt)}function La(e,n){return ma(Sa(e),Sa(n))&&e.limitType===n.limitType}function Ta(e){return`${pa(Sa(e))}|lt:${e.limitType}`}function Ea(e){return`Query(target=${function(e){let n=e.path.canonicalString();return null!==e.collectionGroup&&(n+=" collectionGroup="+e.collectionGroup),e.filters.length>0&&(n+=`, filters: [${e.filters.map(e=>ia(e)).join(", ")}]`),oi(e.limit)||(n+=", limit: "+e.limit),e.orderBy.length>0&&(n+=`, orderBy: [${e.orderBy.map(e=>{return`${(n=e).field.canonicalString()} (${n.dir})`;var n}).join(", ")}]`),e.startAt&&(n+=", startAt: ",n+=e.startAt.inclusive?"b:":"a:",n+=e.startAt.position.map(e=>Ni(e)).join(",")),e.endAt&&(n+=", endAt: ",n+=e.endAt.inclusive?"a:":"b:",n+=e.endAt.position.map(e=>Ni(e)).join(",")),`Target(${n})`}(Sa(e))}; limitType=${e.limitType})`}function ka(e,n){return n.isFoundDocument()&&function(e,n){const t=n.key.path;return null!==e.collectionGroup?n.key.hasCollectionId(e.collectionGroup)&&e.path.isPrefixOf(t):zt.isDocumentKey(e.path)?e.path.isEqual(t):e.path.isImmediateParentOf(t)}(e,n)&&function(e,n){for(const t of ba(e))if(!t.field.isKeyField()&&null===n.data.field(t.field))return!1;return!0}(e,n)&&function(e,n){for(const t of e.filters)if(!t.matches(n))return!1;return!0}(e,n)&&(i=n,!((t=e).startAt&&!function(e,n,t){const i=Ki(e,n,t);return e.inclusive?i<=0:i<0}(t.startAt,ba(t),i)||t.endAt&&!function(e,n,t){const i=Ki(e,n,t);return e.inclusive?i>=0:i>0}(t.endAt,ba(t),i)));var t,i}function Da(e){return(n,t)=>{let i=!1;for(const a of ba(e)){const e=xa(a,n,t);
1if(0!==e)return e;i=i||a.field.isKeyField()}return 0}}function xa(e,n,t){const i=e.field.isKeyField()?zt.comparator(n.key,t.key):function(e,n,t){const i=n.data.field(e),a=t.data.field(e);return null!==i&&null!==a?_i(i,a):kt()}(e.field,n,t);switch(e.dir){case"asc":return i;case"desc":return-1*i;default:return kt()}}class Aa{constructor(e,n){this.mapKeyFn=e,this.equalsFn=n,this.inner={},this.innerSize=0}get(e){const n=this.mapKeyFn(e),t=this.inner[n];if(void 0!==t)for(const[i,a]of t)if(this.equalsFn(i,e))return a}has(e){return void 0!==this.get(e)}set(e,n){const t=this.mapKeyFn(e),i=this.inner[t];if(void 0===i)return this.inner[t]=[[e,n]],void this.innerSize++;for(let a=0;a<i.length;a++)if(this.equalsFn(i[a][0],e))return void(i[a]=[e,n]);i.push([e,n]),this.innerSize++}delete(e){const n=this.mapKeyFn(e),t=this.inner[n];if(void 0===t)return!1;for(let i=0;i<t.length;i++)if(this.equalsFn(t[i][0],e))return 1===t.length?delete this.inner[n]:t.splice(i,1),this.innerSize--,!0;return!1}forEach(e){ui(this.inner,(n,t)=>{for(const[i,a]of t)e(i,a)})}isEmpty(){return li(this.inner)}size(){return this.innerSize}}const Ya=new ci(zt.comparator);function _a(){return Ya}const Ia=new ci(zt.comparator);function Pa(...e){let n=Ia;for(const t of e)n=n.insert(t.key,t);return n}function Na(e){let n=Ia;return e.forEach((e,t)=>n=n.insert(e,t.overlayedDocument)),n}function Ma(){return Ja()}function Za(){return Ja()}function Ja(){return new Aa(e=>e.toString(),(e,n)=>e.isEqual(n))}const Ba=new ci(zt.comparator),Ra=new gi(zt.comparator);function Fa(...e){let n=Ra;for(const t of e)n=n.add(t);return n}const Xa=new gi(Ht);function Ha(e,n){if(e.useProto3Json){if(isNaN(n))return{doubleValue:"NaN"};if(n===1/0)return{doubleValue:"Infinity"};if(n===-1/0)return{doubleValue:"-Infinity"}}return{doubleValue:ri(n)?"-0":n}}function Ga(e){return{integerValue:""+e}}function Oa(e,n){return function(e){return"number"==typeof e&&Number.isInteger(e)&&!ri(e)&&e<=Number.MAX_SAFE_INTEGER&&e>=Number.MIN_SAFE_INTEGER}(n)?Ga(n):Ha(e,n)}class Qa{constructor(){this._=void 0}}function Ka(e,n,t){return e instanceof Ua?function(e,n){const t={fields:{__type__:{stringValue:"server_timestamp"},__local_write_time__:{timestampValue:{seconds:e.seconds,nanos:e.nanoseconds}}}};return n&&Ci(n)&&(n=Li(n)),n&&(t.fields.__previous_value__=n),{mapValue:t}}(t,n):e instanceof za?$a(e,n):e instanceof Va?qa(e,n):function(e,n){const t=Wa(e,n),i=no(t)+no(e.Pe);return Zi(t)&&Zi(e.Pe)?Ga(i):Ha(e.serializer,i)}(e,n)}function ja(e,n,t){return e instanceof za?$a(e,n):e instanceof Va?qa(e,n):t}function Wa(e,n){return e instanceof eo?Zi(t=n)||(i=t)&&"doubleValue"in i?n:{integerValue:0}:null;var t,i}class Ua extends Qa{}class za extends Qa{constructor(e){super(),this.elements=e}}function $a(e,n){const t=to(n);for(const i of e.elements)t.some(e=>Ai(e,i))||t.push(i);return{arrayValue:{values:t}}}class Va extends Qa{constructor(e){super(),this.elements=e}}function qa(e,n){let t=to(n);for(const i of e.elements)t=t.filter(e=>!Ai(e,i));return{arrayValue:{values:t}}}class eo extends Qa{constructor(e,n){super(),this.serializer=e,this.Pe=n}}function no(e){return bi(e.integerValue||e.doubleValue)}function to(e){return Ji(e)&&e.arrayValue.values?e.arrayValue.values.slice():[]}class io{constructor(e,n){this.version=e,this.transformResults=n}}class ao{constructor(e,n){this.updateTime=e,this.exists=n}static none(){return new ao}static exists(e){return new ao(void 0,e)}static updateTime(e){return new ao(e)}get isNone(){return void 0===this.updateTime&&void 0===this.exists}isEqual(e){return this.exists===e.exists&&(this.updateTime?!!e.updateTime&&this.updateTime.isEqual(e.updateTime):!e.updateTime)}}function oo(e,n){return void 0!==e.updateTime?n.isFoundDocument()&&n.version.isEqual(e.updateTime):void 0===e.exists||e.exists===n.isFoundDocument()}class ro{}function so(e,n){if(!e.hasLocalMutations||n&&0===n.fields.length)return null;if(null===n)return e.isNoDocument()?new wo(e.key,ao.none()):new go(e.key,e.data,ao.none());{const t=e.data,i=Hi.empty();let a=new gi(Ut.comparator);for(let e of n.fields)if(!a.has(e)){let n=t.field(e);null===n&&e.length>1&&(e=e.popLast(),n=t.field(e)),null===n?i.delete(e):i.set(e,n),a=a.add(e)}return new po(e.key,i,new mi(a.toArray()),ao.none())}}function uo(e,n,t){var i;e instanceof go?function(e,n,t){const i=e.value.clone(),a=fo(e.f
1ieldTransforms,n,t.transformResults);i.setAll(a),n.convertToFoundDocument(t.version,i).setHasCommittedMutations()}(e,n,t):e instanceof po?function(e,n,t){if(!oo(e.precondition,n))return void n.convertToUnknownDocument(t.version);const i=fo(e.fieldTransforms,n,t.transformResults),a=n.data;a.setAll(mo(e)),a.setAll(i),n.convertToFoundDocument(t.version,a).setHasCommittedMutations()}(e,n,t):(i=t,n.convertToNoDocument(i.version).setHasCommittedMutations())}function lo(e,n,t,i){return e instanceof go?function(e,n,t,i){if(!oo(e.precondition,n))return t;const a=e.value.clone(),o=vo(e.fieldTransforms,i,n);return a.setAll(o),n.convertToFoundDocument(n.version,a).setHasLocalMutations(),null}(e,n,t,i):e instanceof po?function(e,n,t,i){if(!oo(e.precondition,n))return t;const a=vo(e.fieldTransforms,i,n),o=n.data;return o.setAll(mo(e)),o.setAll(a),n.convertToFoundDocument(n.version,o).setHasLocalMutations(),null===t?null:t.unionWith(e.fieldMask.fields).unionWith(e.fieldTransforms.map(e=>e.field))}(e,n,t,i):(a=n,o=t,oo(e.precondition,a)?(a.convertToNoDocument(a.version).setHasLocalMutations(),null):o);var a,o}function co(e,n){let t=null;for(const i of e.fieldTransforms){const e=n.data.field(i.field),a=Wa(i.transform,e||null);null!=a&&(null===t&&(t=Hi.empty()),t.set(i.field,a))}return t||null}function ho(e,n){return e.type===n.type&&!!e.key.isEqual(n.key)&&!!e.precondition.isEqual(n.precondition)&&(t=e.fieldTransforms,i=n.fieldTransforms,!!(void 0===t&&void 0===i||t&&i&&Gt(t,i,(e,n)=>function(e,n){return e.field.isEqual(n.field)&&(t=e.transform,i=n.transform,t instanceof za&&i instanceof za||t instanceof Va&&i instanceof Va?Gt(t.elements,i.elements,Ai):t instanceof eo&&i instanceof eo?Ai(t.Pe,i.Pe):t instanceof Ua&&i instanceof Ua);var t,i}(e,n)))&&(0===e.type?e.value.isEqual(n.value):1!==e.type||e.data.isEqual(n.data)&&e.fieldMask.isEqual(n.fieldMask)));var t,i}class go extends ro{constructor(e,n,t,i=[]){super(),this.key=e,this.value=n,this.precondition=t,this.fieldTransforms=i,this.type=0}getFieldMask(){return null}}class po extends ro{constructor(e,n,t,i,a=[]){super(),this.key=e,this.data=n,this.fieldMask=t,this.precondition=i,this.fieldTransforms=a,this.type=1}getFieldMask(){return this.fieldMask}}function mo(e){const n=new Map;return e.fieldMask.fields.forEach(t=>{if(!t.isEmpty()){const i=e.data.field(t);n.set(t,i)}}),n}function fo(e,n,t){const i=new Map;Dt(e.length===t.length);for(let a=0;a<t.length;a++){const o=e[a],r=o.transform,s=n.data.field(o.field);i.set(o.field,ja(r,s,t[a]))}return i}function vo(e,n,t){const i=new Map;for(const a of e){const e=a.transform,o=t.data.field(a.field);i.set(a.field,Ka(e,o,n))}return i}class wo extends ro{constructor(e,n){super(),this.key=e,this.precondition=n,this.type=2,this.fieldTransforms=[]}getFieldMask(){return null}}class yo extends ro{constructor(e,n){super(),this.key=e,this.precondition=n,this.type=3,this.fieldTransforms=[]}getFieldMask(){return null}}class bo{constructor(e,n,t,i){this.batchId=e,this.localWriteTime=n,this.baseMutations=t,this.mutations=i}applyToRemoteDocument(e,n){const t=n.mutationResults;for(let i=0;i<this.mutations.length;i++){const n=this.mutations[i];n.key.isEqual(e.key)&&uo(n,e,t[i])}}applyToLocalView(e,n){for(const t of this.baseMutations)t.key.isEqual(e.key)&&(n=lo(t,e,n,this.localWriteTime));for(const t of this.mutations)t.key.isEqual(e.key)&&(n=lo(t,e,n,this.localWriteTime));return n}applyToLocalDocumentSet(e,n){const t=Za();return this.mutations.forEach(i=>{const a=e.get(i.key),o=a.overlayedDocument;let r=this.applyToLocalView(o,a.mutatedFields);r=n.has(i.key)?null:r;const s=so(o,r);null!==s&&t.set(i.key,s),o.isValidDocument()||o.convertToNoDocument(Qt.min())}),t}keys(){return this.mutations.reduce((e,n)=>e.add(n.key),Fa())}isEqual(e){return this.batchId===e.batchId&&Gt(this.mutations,e.mutations,(e,n)=>ho(e,n))&&Gt(this.baseMutations,e.baseMutations,(e,n)=>ho(e,n))}}class So{constructor(e,n,t,i){this.batch=e,this.commitVersion=n,this.mutationResults=t,this.docVersions=i}static from(e,n,t){Dt(e.mutations.length===t.length);let i=function(){return Ba}();const a=e.mutations;for(let o=0;o<a.length;o++)i=i.insert(a[o].key,t[o].version);return new So(e,n,t,i)}}class Co{constructor(e,n){this.largestBatchId=e,this.mutation=n}getKey(){return this.mutation.key}isEqual(e){return null!==e&&this.mutation===e.mutation}toString(){return`Overlay{\n largestBatchId: ${this.largestBatchId},\n mutation: ${this.mutation.toString()}\n }`}}class Lo{constructor(e,n){this.count=e,this.unchangedNames=n}}var To,Eo;function ko(e){switch(e){default:return kt();case At.CANCELLED:case At.UNKNOWN:case At.DEADLINE_EXCEEDED:case At.RESOURCE_EXHAUSTED:case At.INTERNAL:case At.UNAVAILABLE:case At.UNAUTHENTICATED:return!1;case At.INVALID_ARGUMENT:case At.NOT_FOUND:case At.ALREADY_EXISTS:case At.PERMISSION_DENIED:case At.FAILED_PRECONDITION:case At.ABORTED:case At.OUT_OF_RANGE:case At.UNIMPLEMENT
vendor: 4,232 bytes, line 1
1ED:case At.DATA_LOSS:return!0}}function Do(e){if(void 0===e)return Lt("GRPC error has no .code"),At.UNKNOWN;switch(e){case To.OK:return At.OK;case To.CANCELLED:return At.CANCELLED;case To.UNKNOWN:return At.UNKNOWN;case To.DEADLINE_EXCEEDED:return At.DEADLINE_EXCEEDED;case To.RESOURCE_EXHAUSTED:return At.RESOURCE_EXHAUSTED;case To.INTERNAL:return At.INTERNAL;case To.UNAVAILABLE:return At.UNAVAILABLE;case To.UNAUTHENTICATED:return At.UNAUTHENTICATED;case To.INVALID_ARGUMENT:return At.INVALID_ARGUMENT;case To.NOT_FOUND:return At.NOT_FOUND;case To.ALREADY_EXISTS:return At.ALREADY_EXISTS;case To.PERMISSION_DENIED:return At.PERMISSION_DENIED;case To.FAILED_PRECONDITION:return At.FAILED_PRECONDITION;case To.ABORTED:return At.ABORTED;case To.OUT_OF_RANGE:return At.OUT_OF_RANGE;case To.UNIMPLEMENTED:return At.UNIMPLEMENTED;case To.DATA_LOSS:return At.DATA_LOSS;default:return kt()}}(Eo=To||(To={}))[Eo.OK=0]="OK",Eo[Eo.CANCELLED=1]="CANCELLED",Eo[Eo.UNKNOWN=2]="UNKNOWN",Eo[Eo.INVALID_ARGUMENT=3]="INVALID_ARGUMENT",Eo[Eo.DEADLINE_EXCEEDED=4]="DEADLINE_EXCEEDED",Eo[Eo.NOT_FOUND=5]="NOT_FOUND",Eo[Eo.ALREADY_EXISTS=6]="ALREADY_EXISTS",Eo[Eo.PERMISSION_DENIED=7]="PERMISSION_DENIED",Eo[Eo.UNAUTHENTICATED=16]="UNAUTHENTICATED",Eo[Eo.RESOURCE_EXHAUSTED=8]="RESOURCE_EXHAUSTED",Eo[Eo.FAILED_PRECONDITION=9]="FAILED_PRECONDITION",Eo[Eo.ABORTED=10]="ABORTED",Eo[Eo.OUT_OF_RANGE=11]="OUT_OF_RANGE",Eo[Eo.UNIMPLEMENTED=12]="UNIMPLEMENTED",Eo[Eo.INTERNAL=13]="INTERNAL",Eo[Eo.UNAVAILABLE=14]="UNAVAILABLE",Eo[Eo.DATA_LOSS=15]="DATA_LOSS";const xo=new ot([4294967295,4294967295],0);function Ao(e){const n=(new TextEncoder).encode(e),t=new rt;return t.update(n),new Uint8Array(t.digest())}function Yo(e){const n=new DataView(e.buffer),t=n.getUint32(0,!0),i=n.getUint32(4,!0),a=n.getUint32(8,!0),o=n.getUint32(12,!0);return[new ot([t,i],0),new ot([a,o],0)]}class _o{constructor(e,n,t){if(this.bitmap=e,this.padding=n,this.hashCount=t,n<0||n>=8)throw new Io(`Invalid padding: ${n}`);if(t<0)throw new Io(`Invalid hash count: ${t}`);if(e.length>0&&0===this.hashCount)throw new Io(`Invalid hash count: ${t}`);if(0===e.length&&0!==n)throw new Io(`Invalid padding when bitmap length is 0: ${n}`);this.Ie=8*e.length-n,this.Te=ot.fromNumber(this.Ie)}Ee(e,n,t){let i=e.add(n.multiply(ot.fromNumber(t)));return 1===i.compare(xo)&&(i=new ot([i.getBits(0),i.getBits(1)],0)),i.modulo(this.Te).toNumber()}de(e){return!!(this.bitmap[Math.floor(e/8)]&1<<e%8)}mightContain(e){if(0===this.Ie)return!1;const n=Ao(e),[t,i]=Yo(n);for(let a=0;a<this.hashCount;a++){const e=this.Ee(t,i,a);if(!this.de(e))return!1}return!0}static create(e,n,t){const i=e%8==0?0:8-e%8,a=new Uint8Array(Math.ceil(e/8)),o=new _o(a,i,n);return t.forEach(e=>o.insert(e)),o}insert(e){if(0===this.Ie)return;const n=Ao(e),[t,i]=Yo(n);for(let a=0;a<this.hashCount;a++){const e=this.Ee(t,i,a);this.Ae(e)}}Ae(e){const n=Math.floor(e/8),t=e%8;this.bitmap[n]|=1<<t}}class Io extends Error{constructor(){super(...arguments),this.name="BloomFilterError"}}class Po{constructor(e,n,t,i,a){this.snapshotVersion=e,this.targetChanges=n,this.targetMismatches=t,this.documentUpdates=i,this.resolvedLimboDocuments=a}static createSynthesizedRemoteEventForCurrentChange(e,n,t){const i=new Map;return i.set(e,No.createSynthesizedTargetChangeForCurrentChange(e,n,t)),new Po(Qt.min(),i,new ci(Ht),_a(),Fa())}}class No{constructor(e,n,t,i,a){this.resumeToken=e,this.current=n,this.addedDocuments=t,this.modifiedDocuments=i,this.removedDocuments=a}static createSynthesizedTargetChangeForCurrentChange(e,n,t){return new No(t,n,Fa(),Fa(),Fa())}}class Mo{constructor(e,n,t,i){this.Re=e,this.removedTargetIds=n,this.key=t,this.Ve=i}}class Zo{constructor(e,n){this.targetId=e,this.me=n}}class Jo{constructor(e,n,t=vi.EMPTY_BYTE_STRING,i=null){this.state=e,this.targetIds=n,this.resumeToken=t,this.cause=i}}class Bo{constructor(){this.fe=0,this.ge=Xo(),this.pe=vi.EMPTY_BYTE_STRING,this.ye=!1,this.we=!0}get current(){return this.ye}get resumeToken(){return this.pe}get Se(){return 0!==this.fe}get be(){return this.we}De(e){e.approximateByteSize()>0&&(this.we=!0,this.pe=e)}ve(){let e=Fa(),n=Fa(),t=Fa();return this.ge.forEach((i,a)=>{switch(a){case 0:e=e.add(i);break;case 2:n=n.add(i);break;case 1:t=t.add(i);break;
1default:kt()}}),new No(this.pe,this.ye,e,n,t)}Ce(){this.we=!1,this.ge=Xo()}Fe(e,n){this.we=!0,this.ge=this.ge.insert(e,n)}Me(e){this.we=!0,this.ge=this.ge.remove(e)}xe(){this.fe+=1}Oe(){this.fe-=1,Dt(this.fe>=0)}Ne(){this.we=!0,this.ye=!0}}class Ro{constructor(e){this.Le=e,this.Be=new Map,this.ke=_a(),this.qe=Fo(),this.Qe=new ci(Ht)}Ke(e){for(const n of e.Re)e.Ve&&e.Ve.isFoundDocument()?this.$e(n,e.Ve):this.Ue(n,e.key,e.Ve);for(const n of e.removedTargetIds)this.Ue(n,e.key,e.Ve)}We(e){this.forEachTarget(e,n=>{const t=this.Ge(n);switch(e.state){case 0:this.ze(n)&&t.De(e.resumeToken);break;case 1:t.Oe(),t.Se||t.Ce(),t.De(e.resumeToken);break;case 2:t.Oe(),t.Se||this.removeTarget(n);break;case 3:this.ze(n)&&(t.Ne(),t.De(e.resumeToken));break;case 4:this.ze(n)&&(this.je(n),t.De(e.resumeToken));break;default:kt()}})}forEachTarget(e,n){e.targetIds.length>0?e.targetIds.forEach(n):this.Be.forEach((e,t)=>{this.ze(t)&&n(t)})}He(e){const n=e.targetId,t=e.me.count,i=this.Je(n);if(i){const a=i.target;if(fa(a))if(0===t){const e=new zt(a.path);this.Ue(n,e,Oi.newNoDocument(e,Qt.min()))}else Dt(1===t);else{const i=this.Ye(n);if(i!==t){const t=this.Ze(e),a=t?this.Xe(t,e,i):1;if(0!==a){this.je(n);const e=2===a?"TargetPurposeExistenceFilterMismatchBloom":"TargetPurposeExistenceFilterMismatch";this.Qe=this.Qe.insert(n,e)}}}}}Ze(e){const n=e.me.unchangedNames;if(!n||!n.bits)return null;const{bits:{bitmap:t="",padding:i=0},hashCount:a=0}=n;let o,r;try{o=Si(t).toUint8Array()}catch(s){if(s instanceof fi)return Tt("Decoding the base64 bloom filter in existence filter failed ("+s.message+"); ignoring the bloom filter and falling back to full re-query."),null;throw s}try{r=new _o(o,i,a)}catch(s){return Tt(s instanceof Io?"BloomFilter error: ":"Applying bloom filter failed: ",s),null}return 0===r.Ie?null:r}Xe(e,n,t){return n.me.count===t-this.nt(e,n.targetId)?0:2}nt(e,n){const t=this.Le.getRemoteKeysForTarget(n);let i=0;return t.forEach(t=>{const a=this.Le.tt(),o=`projects/${a.projectId}/databases/${a.database}/documents/${t.path.canonicalString()}`;e.mightContain(o)||(this.Ue(n,t,null),i++)}),i}rt(e){const n=new Map;this.Be.forEach((t,i)=>{const a=this.Je(i);if(a){if(t.current&&fa(a.target)){const n=new zt(a.target.path);null!==this.ke.get(n)||this.it(i,n)||this.Ue(i,n,Oi.newNoDocument(n,e))}t.be&&(n.set(i,t.ve()),t.Ce())}});let t=Fa();this.qe.forEach((e,n)=>{let i=!0;n.forEachWhile(e=>{const n=this.Je(e);return!n||"TargetPurposeLimboResolution"===n.purpose||(i=!1,!1)}),i&&(t=t.add(e))}),this.ke.forEach((n,t)=>t.setReadTime(e));const i=new Po(e,n,this.Qe,this.ke,t);return this.ke=_a(),this.qe=Fo(),this.Qe=new ci(Ht),i}$e(e,n){if(!this.ze(e))return;const t=this.it(e,n.key)?2:0;this.Ge(e).Fe(n.key,t),this.ke=this.ke.insert(n.key,n),this.qe=this.qe.insert(n.key,this.st(n.key).add(e))}Ue(e,n,t){if(!this.ze(e))return;const i=this.Ge(e);this.it(e,n)?i.Fe(n,1):i.Me(n),this.qe=this.qe.insert(n,this.st(n).delete(e)),t&&(this.ke=this.ke.insert(n,t))}removeTarget(e){this.Be.delete(e)}Ye(e){const n=this.Ge(e).ve();return this.Le.getRemoteKeysForTarget(e).size+n.addedDocuments.size-n.removedDocuments.size}xe(e){this.Ge(e).xe()}Ge(e){let n=this.Be.get(e);return n||(n=new Bo,this.Be.set(e,n)),n}st(e){let n=this.qe.get(e);return n||(n=new gi(Ht),this.qe=this.qe.insert(e,n)),n}ze(e){const n=null!==this.Je(e);return n||Ct("WatchChangeAggregator","Detected inactive target",e),n}Je(e){const n=this.Be.get(e);return n&&n.Se?null:this.Le.ot(e)}je(e){this.Be.set(e,new Bo),this.Le.getRemoteKeysForTarget(e).forEach(n=>{this.Ue(e,n,null)})}it(e,n){return this.Le.getRemoteKeysForTarget(e).has(n)}}function Fo(){return new ci(zt.comparator)}function Xo(){return new ci(zt.comparator)}const Ho=(()=>({asc:"ASCENDING",desc:"DESCENDING"}))(),Go=(()=>({"<":"LESS_THAN","<=":"LESS_THAN_OR_EQUAL",">":"GREATER_THAN",">=":"GREATER_THAN_OR_EQUAL","==":"EQUAL","!=":"NOT_EQUAL","array-contains":"ARRAY_CONTAINS",in:"IN","not-in":"NOT_IN","array-contains-any":"ARRAY_CONTAINS_ANY"}))(),Oo=(()=>({and:"AND",or:"OR"}))();class Qo{constructor(e,n){this.databaseId=e,this.useProto3Json=n}}function Ko(e,n){return e.useProto3Json||oi(n)?n:{value:n}}function jo(e,n){return e.useProto3Json?`${new Date(1e3*n.seconds).toISOString().replace(/\.\d*/,"").replace("Z","")}.${("000000000"+n.nanoseconds).slice(-9)}Z`:{seconds:""+n.seconds,nanos:n.nanoseconds}}function Wo(e,n){return e.useProto3Json?n.toBase64():n.toUint8Array()}function Uo(e,n){return jo(e,n.toTimestamp())}function zo(e){return Dt(!!e),Qt.fromTimestamp(function(e){const n=yi(e);return new Ot(n.seconds,n.nanos)}(e))}function $o(e,n){return Vo(e,n).canonicalString()}function Vo(e,n){const t=(i=e,new jt(["projects",i.projectId,"databases",i.database])).child("documents");var i;return void 0===n?t:t.child(n)}function qo(e){const n=jt.fromString(e);return Dt(wr(n)),n}function er(e,n){return $o(e.databaseId,n.path)}function nr(e,n){const t=qo(n);
1if(t.get(1)!==e.databaseId.projectId)throw new Yt(At.INVALID_ARGUMENT,"Tried to deserialize key from different project: "+t.get(1)+" vs "+e.databaseId.projectId);if(t.get(3)!==e.databaseId.database)throw new Yt(At.INVALID_ARGUMENT,"Tried to deserialize key from different database: "+t.get(3)+" vs "+e.databaseId.database);return new zt(ar(t))}function tr(e,n){return $o(e.databaseId,n)}function ir(e){return new jt(["projects",e.databaseId.projectId,"databases",e.databaseId.database]).canonicalString()}function ar(e){return Dt(e.length>4&&"documents"===e.get(4)),e.popFirst(5)}function or(e,n,t){return{name:er(e,n),fields:t.value.mapValue.fields}}function rr(e,n){let t;if(n instanceof go)t={update:or(e,n.key,n.value)};else if(n instanceof wo)t={delete:er(e,n.key)};else if(n instanceof po)t={update:or(e,n.key,n.data),updateMask:vr(n.fieldMask)};else{if(!(n instanceof yo))return kt();t={verify:er(e,n.key)}}return n.fieldTransforms.length>0&&(t.updateTransforms=n.fieldTransforms.map(e=>function(e,n){const t=n.transform;if(t instanceof Ua)return{fieldPath:n.field.canonicalString(),setToServerValue:"REQUEST_TIME"};if(t instanceof za)return{fieldPath:n.field.canonicalString(),appendMissingElements:{values:t.elements}};if(t instanceof Va)return{fieldPath:n.field.canonicalString(),removeAllFromArray:{values:t.elements}};if(t instanceof eo)return{fieldPath:n.field.canonicalString(),increment:t.Pe};throw kt()}(0,e))),n.precondition.isNone||(t.currentDocument=(i=e,void 0!==(a=n.precondition).updateTime?{updateTime:Uo(i,a.updateTime)}:void 0!==a.exists?{exists:a.exists}:kt())),t;var i,a}function sr(e,n){return{documents:[tr(e,n.path)]}}function ur(e,n){const t={structuredQuery:{}},i=n.path;let a;null!==n.collectionGroup?(a=i,t.structuredQuery.from=[{collectionId:n.collectionGroup,allDescendants:!0}]):(a=i.popLast(),t.structuredQuery.from=[{collectionId:i.lastSegment()}]),t.parent=tr(e,a);const o=function(e){if(0!==e.length)return fr(Vi.create(e,"and"))}(n.filters);o&&(t.structuredQuery.where=o);const r=function(e){if(0!==e.length)return e.map(e=>{return{field:pr((n=e).field),direction:hr(n.dir)};var n})}(n.orderBy);r&&(t.structuredQuery.orderBy=r);const s=Ko(e,n.limit);return null!==s&&(t.structuredQuery.limit=s),n.startAt&&(t.structuredQuery.startAt={before:(u=n.startAt).inclusive,values:u.position}),n.endAt&&(t.structuredQuery.endAt=function(e){return{before:!e.inclusive,values:e.position}}(n.endAt)),{_t:t,parent:a};var u}function lr(e){let n=function(e){const n=qo(e);return 4===n.length?jt.emptyPath():ar(n)}(e.parent);const t=e.structuredQuery,i=t.from?t.from.length:0;let a=null;if(i>0){Dt(1===i);const e=t.from[0];e.allDescendants?a=e.collectionId:n=n.child(e.collectionId)}let o=[];t.where&&(o=function(e){const n=cr(e);return n instanceof Vi&&ea(n)?n.getFilters():[n]}(t.where));let r=[];t.orderBy&&(r=t.orderBy.map(e=>{return new Wi(mr((n=e).field),function(e){switch(e){case"ASCENDING":return"asc";case"DESCENDING":return"desc";default:return}}(n.direction));var n}));let s=null;t.limit&&(s=function(e){let n;return n="object"==typeof e?e.value:e,oi(n)?null:n}(t.limit));let u=null;t.startAt&&(u=function(e){const n=!!e.before,t=e.values||[];return new Qi(t,n)}(t.startAt));let l=null;return t.endAt&&(l=function(e){const n=!e.before,t=e.values||[];return new Qi(t,n)}(t.endAt)),function(e,n,t,i,a,o,r,s){return new va(e,n,t,i,a,o,r,s)}(n,a,r,o,s,"F",u,l)}function cr(e){return void 0!==e.unaryFilter?function(e){switch(e.unaryFilter.op){case"IS_NAN":const n=mr(e.unaryFilter.field);return $i.create(n,"==",{doubleValue:NaN});case"IS_NULL":const t=mr(e.unaryFilter.field);return $i.create(t,"==",{nullValue:"NULL_VALUE"});case"IS_NOT_NAN":const i=mr(e.unaryFilter.field);return $i.create(i,"!=",{doubleValue:NaN});case"IS_NOT_NULL":const a=mr(e.unaryFilter.field);return $i.create(a,"!=",{nullValue:"NULL_VALUE"});default:return kt()}}(e):void 0!==e.fieldFilter?(n=e,$i.create(mr(n.fieldFilter.field),function(e){switch(e){case"EQUAL":return"==";case"NOT_EQUAL":return"!=";case"GREATER_THAN":return">";case"GREATER_THAN_OR_EQUAL":return">=";case"LESS_THAN":return"<";case"LESS_THAN_OR_EQUAL":return"<=";case"ARRAY_CONTAINS":return"array-contains";case"IN":return"in";case"NOT_IN":return"not-in";case"ARRAY_CONTAINS_ANY":return"array-contains-any";default:return kt()}}(n.fieldFilter.op),n.fieldFilter.value)):void 0!==e.compositeFilter?function(e){return Vi.create(e.compositeFilter.filters.map(e=>cr(e)),function(e){switch(e){case"AND":return"and";case"OR":return"or";default:return kt()}}(e.compositeFilter.op))}(e):kt();var n}function hr(e){return Ho[e]}function dr(e){return Go[e]}function gr(e){return Oo[e]}function pr(e){return{fieldPath:e.canonicalString()}}function mr(e){return Ut.fromServerFormat(e.fieldPath)}function fr(e){return e instanceof $i?function(e){if("=="===e.op){if(Ri(e.value))return{unaryFilter:{field:pr(e.field),op:"IS_NAN"}};if(Bi(e.value))return{unaryFilter:{field:pr(e.field),op:"IS_NULL"}}}else if("!="===e.op){if(Ri(e.value))return{unaryFilter:{field:pr(e.field),op:"IS_NOT_NA
1N"}};if(Bi(e.value))return{unaryFilter:{field:pr(e.field),op:"IS_NOT_NULL"}}}return{fieldFilter:{field:pr(e.field),op:dr(e.op),value:e.value}}}(e):e instanceof Vi?function(e){const n=e.getFilters().map(e=>fr(e));return 1===n.length?n[0]:{compositeFilter:{op:gr(e.op),filters:n}}}(e):kt()}function vr(e){const n=[];return e.fields.forEach(e=>n.push(e.canonicalString())),{fieldPaths:n}}function wr(e){return e.length>=4&&"projects"===e.get(0)&&"databases"===e.get(2)}class yr{constructor(e,n,t,i,a=Qt.min(),o=Qt.min(),r=vi.EMPTY_BYTE_STRING,s=null){this.target=e,this.targetId=n,this.purpose=t,this.sequenceNumber=i,this.snapshotVersion=a,this.lastLimboFreeSnapshotVersion=o,this.resumeToken=r,this.expectedCount=s}withSequenceNumber(e){return new yr(this.target,this.targetId,this.purpose,e,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,this.expectedCount)}withResumeToken(e,n){return new yr(this.target,this.targetId,this.purpose,this.sequenceNumber,n,this.lastLimboFreeSnapshotVersion,e,null)}withExpectedCount(e){return new yr(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,this.lastLimboFreeSnapshotVersion,this.resumeToken,e)}withLastLimboFreeSnapshotVersion(e){return new yr(this.target,this.targetId,this.purpose,this.sequenceNumber,this.snapshotVersion,e,this.resumeToken,this.expectedCount)}}class br{constructor(e){this.ct=e}}function Sr(e){const n=lr({parent:e.parent,structuredQuery:e.structuredQuery});return"LAST"===e.limitType?Ca(n,n.limit,"L"):n}class Cr{constructor(){this.un=new Lr}addToCollectionParentIndex(e,n){return this.un.add(n),ti.resolve()}getCollectionParents(e,n){return ti.resolve(this.un.getEntries(n))}addFieldIndex(e,n){return ti.resolve()}deleteFieldIndex(e,n){return ti.resolve()}deleteAllFieldIndexes(e){return ti.resolve()}createTargetIndexes(e,n){return ti.resolve()}getDocumentsMatchingTarget(e,n){return ti.resolve(null)}getIndexType(e,n){return ti.resolve(0)}getFieldIndexes(e,n){return ti.resolve([])}getNextCollectionGroupToUpdate(e){return ti.resolve(null)}getMinOffset(e,n){return ti.resolve(Vt.min())}getMinOffsetFromCollectionGroup(e,n){return ti.resolve(Vt.min())}updateCollectionGroup(e,n,t){return ti.resolve()}updateIndexEntries(e,n){return ti.resolve()}}class Lr{constructor(){this.index={}}add(e){const n=e.lastSegment(),t=e.popLast(),i=this.index[n]||new gi(jt.comparator),a=!i.has(t);return this.index[n]=i.add(t),a}has(e){const n=e.lastSegment(),t=e.popLast(),i=this.index[n];return i&&i.has(t)}getEntries(e){return(this.index[e]||new gi(jt.comparator)).toArray()}}class Tr{constructor(e){this.Ln=e}next(){return this.Ln+=2,this.Ln}static Bn(){return new Tr(0)}static kn(){return new Tr(-1)}}class Er{constructor(){this.changes=new Aa(e=>e.toString(),(e,n)=>e.isEqual(n)),this.changesApplied=!1}addEntry(e){this.assertNotApplied(),this.changes.set(e.key,e)}removeEntry(e,n){this.assertNotApplied(),this.changes.set(e,Oi.newInvalidDocument(e).setReadTime(n))}getEntry(e,n){this.assertNotApplied();const t=this.changes.get(n);return void 0!==t?ti.resolve(t):this.getFromCache(e,n)}getEntries(e,n){return this.getAllFromCache(e,n)}apply(e){return this.assertNotApplied(),this.changesApplied=!0,this.applyChanges(e)}assertNotApplied(){}}class kr{constructor(e,n){this.overlayedDocument=e,this.mutatedFields=n}}class Dr{constructor(e,n,t,i){this.remoteDocumentCache=e,this.mutationQueue=n,this.documentOverlayCache=t,this.indexManager=i}getDocument(e,n){let t=null;return this.documentOverlayCache.getOverlay(e,n).next(i=>(t=i,this.remoteDocumentCache.getEntry(e,n))).next(e=>(null!==t&&lo(t.mutation,e,mi.empty(),Ot.now()),e))}getDocuments(e,n){return this.remoteDocumentCache.getEntries(e,n).next(n=>this.getLocalViewOfDocuments(e,n,Fa()).next(()=>n))}getLocalViewOfDocuments(e,n,t=Fa()){const i=Ma();return this.populateOverlays(e,i,n).next(()=>this.computeViews(e,n,i,t).next(e=>{let n=Pa();return e.forEach((e,t)=>{n=n.insert(e,t.overlayedDocument)}),n}))}getOverlayedDocuments(e,n){const t=Ma();return this.populateOverlays(e,t,n).next(()=>this.computeViews(e,n,t,Fa()))}populateOverlays(e,n,t){const i=[];
1return t.forEach(e=>{n.has(e)||i.push(e)}),this.documentOverlayCache.getOverlays(e,i).next(e=>{e.forEach((e,t)=>{n.set(e,t)})})}computeViews(e,n,t,i){let a=_a();const o=Ja(),r=Ja();return n.forEach((e,n)=>{const r=t.get(n.key);i.has(n.key)&&(void 0===r||r.mutation instanceof po)?a=a.insert(n.key,n):void 0!==r?(o.set(n.key,r.mutation.getFieldMask()),lo(r.mutation,n,r.mutation.getFieldMask(),Ot.now())):o.set(n.key,mi.empty())}),this.recalculateAndSaveOverlays(e,a).next(e=>(e.forEach((e,n)=>o.set(e,n)),n.forEach((e,n)=>{var t;return r.set(e,new kr(n,null!==(t=o.get(e))&&void 0!==t?t:null))}),r))}recalculateAndSaveOverlays(e,n){const t=Ja();let i=new ci((e,n)=>e-n),a=Fa();return this.mutationQueue.getAllMutationBatchesAffectingDocumentKeys(e,n).next(e=>{for(const a of e)a.keys().forEach(e=>{const o=n.get(e);if(null===o)return;let r=t.get(e)||mi.empty();r=a.applyToLocalView(o,r),t.set(e,r);const s=(i.get(a.batchId)||Fa()).add(e);i=i.insert(a.batchId,s)})}).next(()=>{const o=[],r=i.getReverseIterator();for(;r.hasNext();){const i=r.getNext(),s=i.key,u=i.value,l=Za();u.forEach(e=>{if(!a.has(e)){const i=so(n.get(e),t.get(e));null!==i&&l.set(e,i),a=a.add(e)}}),o.push(this.documentOverlayCache.saveOverlays(e,s,l))}return ti.waitFor(o)}).next(()=>t)}recalculateAndSaveOverlaysForDocumentKeys(e,n){return this.remoteDocumentCache.getEntries(e,n).next(n=>this.recalculateAndSaveOverlays(e,n))}getDocumentsMatchingQuery(e,n,t,i){return a=n,zt.isDocumentKey(a.path)&&null===a.collectionGroup&&0===a.filters.length?this.getDocumentsMatchingDocumentQuery(e,n.path):function(e){return null!==e.collectionGroup}(n)?this.getDocumentsMatchingCollectionGroupQuery(e,n,t,i):this.getDocumentsMatchingCollectionQuery(e,n,t,i);var a}getNextDocuments(e,n,t,i){return this.remoteDocumentCache.getAllFromCollectionGroup(e,n,t,i).next(a=>{const o=i-a.size>0?this.documentOverlayCache.getOverlaysForCollectionGroup(e,n,t.largestBatchId,i-a.size):ti.resolve(Ma());let r=-1,s=a;return o.next(n=>ti.forEach(n,(n,t)=>(r<t.largestBatchId&&(r=t.largestBatchId),a.get(n)?ti.resolve():this.remoteDocumentCache.getEntry(e,n).next(e=>{s=s.insert(n,e)}))).next(()=>this.populateOverlays(e,n,a)).next(()=>this.computeViews(e,s,n,Fa())).next(e=>({batchId:r,changes:Na(e)})))})}getDocumentsMatchingDocumentQuery(e,n){return this.getDocument(e,new zt(n)).next(e=>{let n=Pa();return e.isFoundDocument()&&(n=n.insert(e.key,e)),n})}getDocumentsMatchingCollectionGroupQuery(e,n,t,i){const a=n.collectionGroup;let o=Pa();return this.indexManager.getCollectionParents(e,a).next(r=>ti.forEach(r,r=>{const s=(u=n,l=r.child(a),new va(l,null,u.explicitOrderBy.slice(),u.filters.slice(),u.limit,u.limitType,u.startAt,u.endAt));var u,l;return this.getDocumentsMatchingCollectionQuery(e,s,t,i).next(e=>{e.forEach((e,n)=>{o=o.insert(e,n)})})}).next(()=>o))}getDocumentsMatchingCollectionQuery(e,n,t,i){let a;return this.documentOverlayCache.getOverlaysForCollection(e,n.path,t.largestBatchId).next(o=>(a=o,this.remoteDocumentCache.getDocumentsMatchingQuery(e,n,t,a,i))).next(e=>{a.forEach((n,t)=>{const i=t.getKey();null===e.get(i)&&(e=e.insert(i,Oi.newInvalidDocument(i)))});let t=Pa();return e.forEach((e,i)=>{const o=a.get(e);void 0!==o&&lo(o.mutation,i,mi.empty(),Ot.now()),ka(n,i)&&(t=t.insert(e,i))}),t})}}class xr{constructor(e){this.serializer=e,this.hr=new Map,this.Pr=new Map}getBundleMetadata(e,n){return ti.resolve(this.hr.get(n))}saveBundleMetadata(e,n){return this.hr.set(n.id,{id:(t=n).id,version:t.version,createTime:zo(t.createTime)}),ti.resolve();var t}getNamedQuery(e,n){return ti.resolve(this.Pr.get(n))}saveNamedQuery(e,n){return this.Pr.set(n.name,{name:(t=n).name,query:Sr(t.bundledQuery),readTime:zo(t.readTime)}),ti.resolve();var t}}class Ar{constructor(){this.overlays=new ci(zt.comparator),this.Ir=new Map}getOverlay(e,n){return ti.resolve(this.overlays.get(n))}getOverlays(e,n){const t=Ma();return ti.forEach(n,n=>this.getOverlay(e,n).next(e=>{null!==e&&t.set(n,e)})).next(()=>t)}saveOverlays(e,n,t){return t.forEach((t,i)=>{this.ht(e,n,i)}),ti.resolve()}removeOverlaysForBatchId(e,n,t){const i=this.Ir.get(t);
1return void 0!==i&&(i.forEach(e=>this.overlays=this.overlays.remove(e)),this.Ir.delete(t)),ti.resolve()}getOverlaysForCollection(e,n,t){const i=Ma(),a=n.length+1,o=new zt(n.child("")),r=this.overlays.getIteratorFrom(o);for(;r.hasNext();){const e=r.getNext().value,o=e.getKey();if(!n.isPrefixOf(o.path))break;o.path.length===a&&e.largestBatchId>t&&i.set(e.getKey(),e)}return ti.resolve(i)}getOverlaysForCollectionGroup(e,n,t,i){let a=new ci((e,n)=>e-n);const o=this.overlays.getIterator();for(;o.hasNext();){const e=o.getNext().value;if(e.getKey().getCollectionGroup()===n&&e.largestBatchId>t){let n=a.get(e.largestBatchId);null===n&&(n=Ma(),a=a.insert(e.largestBatchId,n)),n.set(e.getKey(),e)}}const r=Ma(),s=a.getIterator();for(;s.hasNext()&&(s.getNext().value.forEach((e,n)=>r.set(e,n)),!(r.size()>=i)););return ti.resolve(r)}ht(e,n,t){const i=this.overlays.get(t.key);if(null!==i){const e=this.Ir.get(i.largestBatchId).delete(t.key);this.Ir.set(i.largestBatchId,e)}this.overlays=this.overlays.insert(t.key,new Co(n,t));let a=this.Ir.get(n);void 0===a&&(a=Fa(),this.Ir.set(n,a)),this.Ir.set(n,a.add(t.key))}}class Yr{constructor(){this.sessionToken=vi.EMPTY_BYTE_STRING}getSessionToken(e){return ti.resolve(this.sessionToken)}setSessionToken(e,n){return this.sessionToken=n,ti.resolve()}}class _r{constructor(){this.Tr=new gi(Ir.Er),this.dr=new gi(Ir.Ar)}isEmpty(){return this.Tr.isEmpty()}addReference(e,n){const t=new Ir(e,n);this.Tr=this.Tr.add(t),this.dr=this.dr.add(t)}Rr(e,n){e.forEach(e=>this.addReference(e,n))}removeReference(e,n){this.Vr(new Ir(e,n))}mr(e,n){e.forEach(e=>this.removeReference(e,n))}gr(e){const n=new zt(new jt([])),t=new Ir(n,e),i=new Ir(n,e+1),a=[];return this.dr.forEachInRange([t,i],e=>{this.Vr(e),a.push(e.key)}),a}pr(){this.Tr.forEach(e=>this.Vr(e))}Vr(e){this.Tr=this.Tr.delete(e),this.dr=this.dr.delete(e)}yr(e){const n=new zt(new jt([])),t=new Ir(n,e),i=new Ir(n,e+1);let a=Fa();return this.dr.forEachInRange([t,i],e=>{a=a.add(e.key)}),a}containsKey(e){const n=new Ir(e,0),t=this.Tr.firstAfterOrEqual(n);return null!==t&&e.isEqual(t.key)}}class Ir{constructor(e,n){this.key=e,this.wr=n}static Er(e,n){return zt.comparator(e.key,n.key)||Ht(e.wr,n.wr)}static Ar(e,n){return Ht(e.wr,n.wr)||zt.comparator(e.key,n.key)}}class Pr{constructor(e,n){this.indexManager=e,this.referenceDelegate=n,this.mutationQueue=[],this.Sr=1,this.br=new gi(Ir.Er)}checkEmpty(e){return ti.resolve(0===this.mutationQueue.length)}addMutationBatch(e,n,t,i){const a=this.Sr;this.Sr++,this.mutationQueue.length>0&&this.mutationQueue[this.mutationQueue.length-1];const o=new bo(a,n,t,i);this.mutationQueue.push(o);for(const r of i)this.br=this.br.add(new Ir(r.key,a)),this.indexManager.addToCollectionParentIndex(e,r.key.path.popLast());return ti.resolve(o)}lookupMutationBatch(e,n){return ti.resolve(this.Dr(n))}getNextMutationBatchAfterBatchId(e,n){const t=n+1,i=this.vr(t),a=i<0?0:i;return ti.resolve(this.mutationQueue.length>a?this.mutationQueue[a]:null)}getHighestUnacknowledgedBatchId(){return ti.resolve(0===this.mutationQueue.length?-1:this.Sr-1)}getAllMutationBatches(e){return ti.resolve(this.mutationQueue.slice())}getAllMutationBatchesAffectingDocumentKey(e,n){const t=new Ir(n,0),i=new Ir(n,Number.POSITIVE_INFINITY),a=[];return this.br.forEachInRange([t,i],e=>{const n=this.Dr(e.wr);a.push(n)}),ti.resolve(a)}getAllMutationBatchesAffectingDocumentKeys(e,n){let t=new gi(Ht);return n.forEach(e=>{const n=new Ir(e,0),i=new Ir(e,Number.POSITIVE_INFINITY);this.br.forEachInRange([n,i],e=>{t=t.add(e.wr)})}),ti.resolve(this.Cr(t))}getAllMutationBatchesAffectingQuery(e,n){const t=n.path,i=t.length+1;let a=t;zt.isDocumentKey(a)||(a=a.child(""));const o=new Ir(new zt(a),0);let r=new gi(Ht);return this.br.forEachWhile(e=>{const n=e.key.path;return!!t.isPrefixOf(n)&&(n.length===i&&(r=r.add(e.wr)),!0)},o),ti.resolve(this.Cr(r))}Cr(e){const n=[];return e.forEach(e=>{const t=this.Dr(e);null!==t&&n.push(t)}),n}removeMutationBatch(e,n){Dt(0===this.Fr(n.batchId,"removed")),this.mutationQueue.shift();let t=this.br;return ti.forEach(n.mutations,i=>{const a=new Ir(i.key,n.batchId);return t=t.delete(a),this.referenceDelegate.markPotentiallyOrphaned(e,i.key)}).next(()=>{this.br=t})}On(e){}containsKey(e,n){const t=new Ir(n,0),i=this.br.firstAfterOrEqual(t);return ti.resolve(n.isEqual(i&&i.key))}
1performConsistencyCheck(e){return this.mutationQueue.length,ti.resolve()}Fr(e,n){return this.vr(e)}vr(e){return 0===this.mutationQueue.length?0:e-this.mutationQueue[0].batchId}Dr(e){const n=this.vr(e);return n<0||n>=this.mutationQueue.length?null:this.mutationQueue[n]}}class Nr{constructor(e){this.Mr=e,this.docs=new ci(zt.comparator),this.size=0}setIndexManager(e){this.indexManager=e}addEntry(e,n){const t=n.key,i=this.docs.get(t),a=i?i.size:0,o=this.Mr(n);return this.docs=this.docs.insert(t,{document:n.mutableCopy(),size:o}),this.size+=o-a,this.indexManager.addToCollectionParentIndex(e,t.path.popLast())}removeEntry(e){const n=this.docs.get(e);n&&(this.docs=this.docs.remove(e),this.size-=n.size)}getEntry(e,n){const t=this.docs.get(n);return ti.resolve(t?t.document.mutableCopy():Oi.newInvalidDocument(n))}getEntries(e,n){let t=_a();return n.forEach(e=>{const n=this.docs.get(e);t=t.insert(e,n?n.document.mutableCopy():Oi.newInvalidDocument(e))}),ti.resolve(t)}getDocumentsMatchingQuery(e,n,t,i){let a=_a();const o=n.path,r=new zt(o.child("")),s=this.docs.getIteratorFrom(r);for(;s.hasNext();){const{key:e,value:{document:r}}=s.getNext();if(!o.isPrefixOf(e.path))break;e.path.length>o.length+1||qt($t(r),t)<=0||(i.has(r.key)||ka(n,r))&&(a=a.insert(r.key,r.mutableCopy()))}return ti.resolve(a)}getAllFromCollectionGroup(e,n,t,i){kt()}Or(e,n){return ti.forEach(this.docs,e=>n(e))}newChangeBuffer(e){return new Mr(this)}getSize(e){return ti.resolve(this.size)}}class Mr extends Er{constructor(e){super(),this.cr=e}applyChanges(e){const n=[];
1return this.changes.forEach((t,i)=>{i.isValidDocument()?n.push(this.cr.addEntry(e,i)):this.cr.removeEntry(t)}),ti.waitFor(n)}getFromCache(e,n){return this.cr.getEntry(e,n)}getAllFromCache(e,n){return this.cr.getEntries(e,n)}}class Zr{constructor(e){this.persistence=e,this.Nr=new Aa(e=>pa(e),ma),this.lastRemoteSnapshotVersion=Qt.min(),this.highestTargetId=0,this.Lr=0,this.Br=new _r,this.targetCount=0,this.kr=Tr.Bn()}forEachTarget(e,n){return this.Nr.forEach((e,t)=>n(t)),ti.resolve()}getLastRemoteSnapshotVersion(e){return ti.resolve(this.lastRemoteSnapshotVersion)}getHighestSequenceNumber(e){return ti.resolve(this.Lr)}allocateTargetId(e){return this.highestTargetId=this.kr.next(),ti.resolve(this.highestTargetId)}setTargetsMetadata(e,n,t){return t&&(this.lastRemoteSnapshotVersion=t),n>this.Lr&&(this.Lr=n),ti.resolve()}Kn(e){this.Nr.set(e.target,e);const n=e.targetId;n>this.highestTargetId&&(this.kr=new Tr(n),this.highestTargetId=n),e.sequenceNumber>this.Lr&&(this.Lr=e.sequenceNumber)}addTargetData(e,n){return this.Kn(n),this.targetCount+=1,ti.resolve()}updateTargetData(e,n){return this.Kn(n),ti.resolve()}removeTargetData(e,n){return this.Nr.delete(n.target),this.Br.gr(n.targetId),this.targetCount-=1,ti.resolve()}removeTargets(e,n,t){let i=0;const a=[];return this.Nr.forEach((o,r)=>{r.sequenceNumber<=n&&null===t.get(r.targetId)&&(this.Nr.delete(o),a.push(this.removeMatchingKeysForTargetId(e,r.targetId)),i++)}),ti.waitFor(a).next(()=>i)}getTargetCount(e){return ti.resolve(this.targetCount)}getTargetData(e,n){const t=this.Nr.get(n)||null;return ti.resolve(t)}addMatchingKeys(e,n,t){return this.Br.Rr(n,t),ti.resolve()}removeMatchingKeys(e,n,t){this.Br.mr(n,t);const i=this.persistence.referenceDelegate,a=[];return i&&n.forEach(n=>{a.push(i.markPotentiallyOrphaned(e,n))}),ti.waitFor(a)}removeMatchingKeysForTargetId(e,n){return this.Br.gr(n),ti.resolve()}getMatchingKeysForTargetId(e,n){const t=this.Br.yr(n);return ti.resolve(t)}containsKey(e,n){return ti.resolve(this.Br.containsKey(n))}}class Jr{constructor(e,n){this.qr={},this.overlays={},this.Qr=new ai(0),this.Kr=!1,this.Kr=!0,this.$r=new Yr,this.referenceDelegate=e(this),this.Ur=new Zr(this),this.indexManager=new Cr,this.remoteDocumentCache=new Nr(e=>this.referenceDelegate.Wr(e)),this.serializer=new br(n),this.Gr=new xr(this.serializer)}start(){return Promise.resolve()}shutdown(){return this.Kr=!1,Promise.resolve()}get started(){return this.Kr}setDatabaseDeletedListener(){}setNetworkEnabled(){}getIndexManager(e){return this.indexManager}getDocumentOverlayCache(e){let n=this.overlays[e.toKey()];return n||(n=new Ar,this.overlays[e.toKey()]=n),n}getMutationQueue(e,n){let t=this.qr[e.toKey()];return t||(t=new Pr(n,this.referenceDelegate),this.qr[e.toKey()]=t),t}getGlobalsCache(){return this.$r}getTargetCache(){return this.Ur}getRemoteDocumentCache(){return this.remoteDocumentCache}getBundleCache(){return this.Gr}runTransaction(e,n,t){Ct("MemoryPersistence","Starting transaction:",e);const i=new Br(this.Qr.next());return this.referenceDelegate.zr(),t(i).next(e=>this.referenceDelegate.jr(i).next(()=>e)).toPromise().then(e=>(i.raiseOnCommittedEvent(),e))}Hr(e,n){return ti.or(Object.values(this.qr).map(t=>()=>t.containsKey(e,n)))}}class Br extends ei{constructor(e){super(),this.currentSequenceNumber=e}}class Rr{constructor(e){this.persistence=e,this.Jr=new _r,this.Yr=null}static Zr(e){return new Rr(e)}get Xr(){if(this.Yr)return this.Yr;throw kt()}addReference(e,n,t){return this.Jr.addReference(t,n),this.Xr.delete(t.toString()),ti.resolve()}removeReference(e,n,t){return this.Jr.removeReference(t,n),this.Xr.add(t.toString()),ti.resolve()}markPotentiallyOrphaned(e,n){return this.Xr.add(n.toString()),ti.resolve()}removeTarget(e,n){this.Jr.gr(n.targetId).forEach(e=>this.Xr.add(e.toString()));const t=this.persistence.getTargetCache();return t.getMatchingKeysForTargetId(e,n.targetId).next(e=>{e.forEach(e=>this.Xr.add(e.toString()))}).next(()=>t.removeTargetData(e,n))}zr(){this.Yr=new Set}jr(e){const n=this.persistence.getRemoteDocumentCache().newChangeBuffer();return ti.forEach(this.Xr,t=>{const i=zt.fromPath(t);return this.ei(e,i).next(e=>{e||n.removeEntry(i,Qt.min())})}).next(()=>(this.Yr=null,n.apply(e)))}updateLimboDocument(e,n){return this.ei(e,n).next(e=>{e?this.Xr.delete(n.toString()):this.Xr.add(n.toString())})}Wr(e){return 0}ei(e,n){return ti.or([()=>ti.resolve(this.Jr.containsKey(n)),()=>this.persistence.getTargetCache().containsKey(e,n),()=>this.persistence.Hr(e,n)])}}class Fr{constructor(e,n,t,i){this.targetId=e,this.fromCache=n,this.$i=t,this.Ui=i}static Wi(e,n){let t=Fa(),i=Fa();for(const a of n.docChanges)switch(a.type){case 0:t=t.add(a.doc.key);break;case 1:i=i.add(a.doc.key)}return new Fr(e,n.fromCache,t,i)}}class Xr{constructor(){this._documentReadCount=0}get documentReadCount(){return this._documentReadCount}incrementDocumentReadCount(e){this._documentReadCount+=e}}class Hr{constructor(){this.Gi=!1,this.zi=!1,this.ji=100,this.Hi=be()?8:function(e){const n=e.match(/Android ([\d.]+)/i),t=n?n[1].split(".").slice(0,2).join("."):"-1";return Number(t)}(ye())>0?6:4}initialize(e,n){this.Ji=e,this.indexManager=n,this.Gi=!0}getDocumentsMatchingQuery(e,n,t,i){const a={result:null};return this.Yi(e,n).next(e=>{a.result=e}).next(()=>{if(!a.result)return this.Zi(e,n,i,t).next(e=>{a.result=e})}).next(()=>{if(a.result)return;const t=new Xr;return this.Xi(e,n,t).next(i=>{if(a.result=i,this.zi)return this.es(e,n,t,i.size)})}).next(()=>a.result)}es(e,n,t,i){return t.documentReadCount<this.ji?(St()<=Ne.DEBUG&&Ct("QueryEngine","SDK will not create cache indexes for query:",Ea(n),"since it only creates cache indexes for collection contains","more than or equal to",this.ji,"documents"),ti.resolve()):(St()<=Ne.DEBUG&&Ct("QueryEngine","Query:",Ea(n),"scans",t.documentReadCount,"local documents and returns",i,"documents as results."),t.documentReadCount>this.Hi*i?(St()<=Ne.DEBUG&&Ct("QueryEngine","The SDK decides to create cache indexes for query:",Ea(n),"as using cache indexes may help improve performance."),this.indexManager.createTargetIndexes(e,Sa(n))):ti.resolve())}Yi(e,n){if(ya(n))return ti.resolve(null);let t=Sa(n);return this.indexManager.getIndexType(e,t).next(i=>0===i?null:(null!==n.limit&&1===i&&(n=Ca(n,null,"F"),t=Sa(n)),this.indexManager.getDocumentsMatchingTarget(e,t).next(i=>{const a=Fa(...i);return this.Ji.getDocuments(e,a).next(i=>this.indexManager.getMinOffset(e,t).next(t=>{const o=this.ts(n,i);return this.ns(n,o,a,t.readTime)?this.Yi(e,Ca(n,null,"F")):this.rs(e,o,n,t)}))})))}Zi(e,n,t,i){return ya(n)||i.isEqual(Qt.min())?ti.resolve(null):this.Ji.getDocuments(e,t).next(a=>{const o=this.ts(n,a);return this.ns(n,o,t,i)?ti.resolve(null):(St()<=Ne.DEBUG&&Ct("QueryEngine","Re-using previous result from %s to execute query: %s",i.toString(),Ea(n)),this.rs(e,o,n,function(e,n){const t=e.toTimestamp().seconds,i=e.toTimestamp().nanoseconds+1,a=Qt.fromTimestamp(1e9===i?new Ot(t+1,0):new Ot(t,i));return new Vt(a,zt.empty(),n)}(i,-1)).next(e=>e))})}ts(e,n){let t=new gi(Da(e));
1return n.forEach((n,i)=>{ka(e,i)&&(t=t.add(i))}),t}ns(e,n,t,i){if(null===e.limit)return!1;if(t.size!==n.size)return!0;const a="F"===e.limitType?n.last():n.first();return!!a&&(a.hasPendingWrites||a.version.compareTo(i)>0)}Xi(e,n,t){return St()<=Ne.DEBUG&&Ct("QueryEngine","Using full collection scan to execute query:",Ea(n)),this.Ji.getDocumentsMatchingQuery(e,n,Vt.min(),t)}rs(e,n,t,i){return this.Ji.getDocumentsMatchingQuery(e,t,i).next(e=>(n.forEach(n=>{e=e.insert(n.key,n)}),e))}}class Gr{constructor(e,n,t,i){this.persistence=e,this.ss=n,this.serializer=i,this.os=new ci(Ht),this._s=new Aa(e=>pa(e),ma),this.us=new Map,this.cs=e.getRemoteDocumentCache(),this.Ur=e.getTargetCache(),this.Gr=e.getBundleCache(),this.ls(t)}ls(e){this.documentOverlayCache=this.persistence.getDocumentOverlayCache(e),this.indexManager=this.persistence.getIndexManager(e),this.mutationQueue=this.persistence.getMutationQueue(e,this.indexManager),this.localDocuments=new Dr(this.cs,this.mutationQueue,this.documentOverlayCache,this.indexManager),this.cs.setIndexManager(this.indexManager),this.ss.initialize(this.localDocuments,this.indexManager)}collectGarbage(e){return this.persistence.runTransaction("Collect garbage","readwrite-primary",n=>e.collect(n,this.os))}}async function Or(e,n){const t=xt(e);return await t.persistence.runTransaction("Handle user change","readonly",e=>{let i;return t.mutationQueue.getAllMutationBatches(e).next(a=>(i=a,t.ls(n),t.mutationQueue.getAllMutationBatches(e))).next(n=>{const a=[],o=[];let r=Fa();for(const e of i){a.push(e.batchId);for(const n of e.mutations)r=r.add(n.key)}for(const e of n){o.push(e.batchId);for(const n of e.mutations)r=r.add(n.key)}return t.localDocuments.getDocuments(e,r).next(e=>({hs:e,removedBatchIds:a,addedBatchIds:o}))})})}function Qr(e){const n=xt(e);return n.persistence.runTransaction("Get last remote snapshot version","readonly",e=>n.Ur.getLastRemoteSnapshotVersion(e))}function Kr(e,n){const t=xt(e),i=n.snapshotVersion;let a=t.os;return t.persistence.runTransaction("Apply remote event","readwrite-primary",e=>{const o=t.cs.newChangeBuffer({trackRemovals:!0});a=t.os;const r=[];
1n.targetChanges.forEach((o,s)=>{const u=a.get(s);if(!u)return;r.push(t.Ur.removeMatchingKeys(e,o.removedDocuments,s).next(()=>t.Ur.addMatchingKeys(e,o.addedDocuments,s)));let l=u.withSequenceNumber(e.currentSequenceNumber);var c,h,d;null!==n.targetMismatches.get(s)?l=l.withResumeToken(vi.EMPTY_BYTE_STRING,Qt.min()).withLastLimboFreeSnapshotVersion(Qt.min()):o.resumeToken.approximateByteSize()>0&&(l=l.withResumeToken(o.resumeToken,i)),a=a.insert(s,l),h=l,d=o,(0===(c=u).resumeToken.approximateByteSize()||h.snapshotVersion.toMicroseconds()-c.snapshotVersion.toMicroseconds()>=3e8||d.addedDocuments.size+d.modifiedDocuments.size+d.removedDocuments.size>0)&&r.push(t.Ur.updateTargetData(e,l))});let s=_a(),u=Fa();if(n.documentUpdates.forEach(i=>{n.resolvedLimboDocuments.has(i)&&r.push(t.persistence.referenceDelegate.updateLimboDocument(e,i))}),r.push(function(e,n,t){let i=Fa(),a=Fa();return t.forEach(e=>i=i.add(e)),n.getEntries(e,i).next(e=>{let i=_a();return t.forEach((t,o)=>{const r=e.get(t);o.isFoundDocument()!==r.isFoundDocument()&&(a=a.add(t)),o.isNoDocument()&&o.version.isEqual(Qt.min())?(n.removeEntry(t,o.readTime),i=i.insert(t,o)):!r.isValidDocument()||o.version.compareTo(r.version)>0||0===o.version.compareTo(r.version)&&r.hasPendingWrites?(n.addEntry(o),i=i.insert(t,o)):Ct("LocalStore","Ignoring outdated watch update for ",t,". Current version:",r.version," Watch version:",o.version)}),{Ps:i,Is:a}})}(e,o,n.documentUpdates).next(e=>{s=e.Ps,u=e.Is})),!i.isEqual(Qt.min())){const n=t.Ur.getLastRemoteSnapshotVersion(e).next(n=>t.Ur.setTargetsMetadata(e,e.currentSequenceNumber,i));r.push(n)}return ti.waitFor(r).next(()=>o.apply(e)).next(()=>t.localDocuments.getLocalViewOfDocuments(e,s,u)).next(()=>s)}).then(e=>(t.os=a,e))}function jr(e,n){const t=xt(e);return t.persistence.runTransaction("Get next mutation batch","readonly",e=>(void 0===n&&(n=-1),t.mutationQueue.getNextMutationBatchAfterBatchId(e,n)))}async function Wr(e,n,t){const i=xt(e),a=i.os.get(n),o=t?"readwrite":"readwrite-primary";try{t||await i.persistence.runTransaction("Release target",o,e=>i.persistence.referenceDelegate.removeTarget(e,a))}catch(r){if(!ii(r))throw r;Ct("LocalStore",`Failed to update sequence numbers for target ${n}: ${r}`)}i.os=i.os.remove(n),i._s.delete(a.target)}function Ur(e,n,t){const i=xt(e);let a=Qt.min(),o=Fa();return i.persistence.runTransaction("Execute query","readwrite",e=>function(e,n,t){const i=xt(e),a=i._s.get(t);return void 0!==a?ti.resolve(i.os.get(a)):i.Ur.getTargetData(n,t)}(i,e,Sa(n)).next(n=>{if(n)return a=n.lastLimboFreeSnapshotVersion,i.Ur.getMatchingKeysForTargetId(e,n.targetId).next(e=>{o=e})}).next(()=>i.ss.getDocumentsMatchingQuery(e,n,t?a:Qt.min(),t?o:Fa())).next(e=>(function(e,n,t){let i=e.us.get(n)||Qt.min();t.forEach((e,n)=>{n.readTime.compareTo(i)>0&&(i=n.readTime)}),e.us.set(n,i)}(i,function(e){return e.collectionGroup||(e.path.length%2==1?e.path.lastSegment():e.path.get(e.path.length-2))}(n),e),{documents:e,Ts:o})))}class zr{constructor(){this.activeTargetIds=Xa}fs(e){this.activeTargetIds=this.activeTargetIds.add(e)}gs(e){this.activeTargetIds=this.activeTargetIds.delete(e)}Vs(){const e={activeTargetIds:this.activeTargetIds.toArray(),updateTimeMs:Date.now()};return JSON.stringify(e)}}class $r{constructor(){this.so=new zr,this.oo={},this.onlineStateHandler=null,this.sequenceNumberHandler=null}addPendingMutation(e){}updateMutationState(e,n,t){}addLocalQueryTarget(e,n=!0){return n&&this.so.fs(e),this.oo[e]||"not-current"}updateQueryState(e,n,t){this.oo[e]=n}removeLocalQueryTarget(e){this.so.gs(e)}isLocalQueryTarget(e){return this.so.activeTargetIds.has(e)}clearQueryState(e){delete this.oo[e]}getAllActiveQueryTargets(){return this.so.activeTargetIds}isActiveQueryTarget(e){return this.so.activeTargetIds.has(e)}start(){return this.so=new zr,Promise.resolve()}handleUserChange(e,n,t){}setOnlineState(e){}shutdown(){}writeSequenceNumber(e){}notifyBundleLoaded(e){}}class Vr{_o(e){}shutdown(){}}class qr{constructor(){this.ao=()=>this.uo(),this.co=()=>this.lo(),this.ho=[],this.Po()}_o(e){this.ho.push(e)}shutdown(){window.removeEventListener("online",this.ao),window.removeEventListener("offline",this.co)}Po(){window.addEventListener("online",this.ao),window.addEventListener("offline",this.co)}uo(){Ct("ConnectivityMonitor","Network connectivity changed: AVAILABLE");for(const e of this.ho)e(0)}lo(){Ct("ConnectivityMonitor","Network connectivity changed: UNAVAILABLE");for(const e of this.ho)e(1)}static D(){return"undefined"!=typeof window&&void 0!==window.addEventListener&&void 0!==window.removeEventListener}}let es=null;function ns(){return null===es?es=268435456+Math.round(2147483648*Math.random()):es++,"0x"+es.toString(16)}const ts={BatchGetDocuments:"batchGet",Commit:"commit",RunQuery:"runQuery",RunAggregation
1Query:"runAggregationQuery"};class is{constructor(e){this.Io=e.Io,this.To=e.To}Eo(e){this.Ao=e}Ro(e){this.Vo=e}mo(e){this.fo=e}onMessage(e){this.po=e}close(){this.To()}send(e){this.Io(e)}yo(){this.Ao()}wo(){this.Vo()}So(e){this.fo(e)}bo(e){this.po(e)}}const as="WebChannelConnection";class os extends class{constructor(e){this.databaseInfo=e,this.databaseId=e.databaseId;const n=e.ssl?"https":"http",t=encodeURIComponent(this.databaseId.projectId),i=encodeURIComponent(this.databaseId.database);this.Do=n+"://"+e.host,this.vo=`projects/${t}/databases/${i}`,this.Co="(default)"===this.databaseId.database?`project_id=${t}`:`project_id=${t}&database_id=${i}`}get Fo(){return!1}Mo(e,n,t,i,a){const o=ns(),r=this.xo(e,n.toUriEncodedString());Ct("RestConnection",`Sending RPC '${e}' ${o}:`,r,t);const s={"google-cloud-resource-prefix":this.vo,"x-goog-request-params":this.Co};return this.Oo(s,i,a),this.No(e,r,s,t).then(n=>(Ct("RestConnection",`Received RPC '${e}' ${o}: `,n),n),n=>{throw Tt("RestConnection",`RPC '${e}' ${o} failed with error: `,n,"url: ",r,"request:",t),n})}Lo(e,n,t,i,a,o){return this.Mo(e,n,t,i,a)}Oo(e,n,t){e["X-Goog-Api-Client"]="gl-js/ fire/"+yt,e["Content-Type"]="text/plain",this.databaseInfo.appId&&(e["X-Firebase-GMPID"]=this.databaseInfo.appId),n&&n.headers.forEach((n,t)=>e[t]=n),t&&t.headers.forEach((n,t)=>e[t]=n)}xo(e,n){const t=ts[e];return`${this.Do}/v1/${n}:${t}`}terminate(){}}{constructor(e){super(e),this.forceLongPolling=e.forceLongPolling,this.autoDetectLongPolling=e.autoDetectLongPolling,this.useFetchStreams=e.useFetchStreams,this.longPollingOptions=e.longPollingOptions}No(e,n,t,i){const a=ns();return new Promise((o,r)=>{const s=new ut;s.setWithCredentials(!0),s.listenOnce(ct.COMPLETE,()=>{try{switch(s.getLastErrorCode()){case ht.NO_ERROR:const n=s.getResponseJson();Ct(as,`XHR for RPC '${e}' ${a} received:`,JSON.stringify(n)),o(n);break;case ht.TIMEOUT:Ct(as,`RPC '${e}' ${a} timed out`),r(new Yt(At.DEADLINE_EXCEEDED,"Request time out"));break;case ht.HTTP_ERROR:const t=s.getStatus();if(Ct(as,`RPC '${e}' ${a} failed with status:`,t,"response text:",s.getResponseText()),t>0){let e=s.getResponseJson();Array.isArray(e)&&(e=e[0]);const n=null==e?void 0:e.error;if(n&&n.status&&n.message){const e=function(e){const n=e.toLowerCase().replace(/_/g,"-");return Object.values(At).indexOf(n)>=0?n:At.UNKNOWN}(n.status);r(new Yt(e,n.message))}else r(new Yt(At.UNKNOWN,"Server responded with status "+s.getStatus()))}else r(new Yt(At.UNAVAILABLE,"Connection failed."));break;
1default:kt()}}finally{Ct(as,`RPC '${e}' ${a} completed.`)}});const u=JSON.stringify(i);Ct(as,`RPC '${e}' ${a} sending request:`,i),s.send(n,"POST",u,t,15)})}Bo(e,n,t){const i=ns(),a=[this.Do,"/","google.firestore.v1.Firestore","/",e,"/channel"],o=mt(),r=pt(),s={httpSessionIdParam:"gsessionid",initMessageHeaders:{},messageUrlParams:{database:`projects/${this.databaseId.projectId}/databases/${this.databaseId.database}`},sendRawJson:!0,supportsCrossDomainXhr:!0,internalChannelParams:{forwardChannelRequestTimeoutMs:6e5},forceLongPolling:this.forceLongPolling,detectBufferingProxy:this.autoDetectLongPolling},u=this.longPollingOptions.timeoutSeconds;void 0!==u&&(s.longPollingTimeout=Math.round(1e3*u)),this.useFetchStreams&&(s.useFetchStreams=!0),this.Oo(s.initMessageHeaders,n,t),s.encodeInitMessageHeaders=!0;const l=a.join("");Ct(as,`Creating RPC '${e}' stream ${i}: ${l}`,s);const c=o.createWebChannel(l,s);let h=!1,d=!1;const g=new is({Io:n=>{d?Ct(as,`Not sending because RPC '${e}' stream ${i} is closed:`,n):(h||(Ct(as,`Opening RPC '${e}' stream ${i} transport.`),c.open(),h=!0),Ct(as,`RPC '${e}' stream ${i} sending:`,n),c.send(n))},To:()=>c.close()}),p=(e,n,t)=>{e.listen(n,e=>{try{t(e)}catch(n){setTimeout(()=>{throw n},0)}})};return p(c,lt.EventType.OPEN,()=>{d||(Ct(as,`RPC '${e}' stream ${i} transport opened.`),g.yo())}),p(c,lt.EventType.CLOSE,()=>{d||(d=!0,Ct(as,`RPC '${e}' stream ${i} transport closed`),g.So())}),p(c,lt.EventType.ERROR,n=>{d||(d=!0,Tt(as,`RPC '${e}' stream ${i} transport errored:`,n),g.So(new Yt(At.UNAVAILABLE,"The operation could not be completed")))}),p(c,lt.EventType.MESSAGE,n=>{var t;if(!d){const a=n.data[0];Dt(!!a);const o=a,r=o.error||(null===(t=o[0])||void 0===t?void 0:t.error);if(r){Ct(as,`RPC '${e}' stream ${i} received error:`,r);const n=r.status;let t=function(e){const n=To[e];if(void 0!==n)return Do(n)}(n),a=r.message;void 0===t&&(t=At.INTERNAL,a="Unknown error status: "+n+" with message "+r.message),d=!0,g.So(new Yt(t,a)),c.close()}else Ct(as,`RPC '${e}' stream ${i} received:`,a),g.bo(a)}}),p(r,gt.STAT_EVENT,n=>{n.stat===dt.PROXY?Ct(as,`RPC '${e}' stream ${i} detected buffering proxy`):n.stat===dt.NOPROXY&&Ct(as,`RPC '${e}' stream ${i} detected no buffering proxy`)}),setTimeout(()=>{g.wo()},0),g}}function rs(){return"undefined"!=typeof document?document:null}function ss(e){return new Qo(e,!0)}class us{constructor(e,n,t=1e3,i=1.5,a=6e4){this.ui=e,this.timerId=n,this.ko=t,this.qo=i,this.Qo=a,this.Ko=0,this.$o=null,this.Uo=Date.now(),this.reset()}reset(){this.Ko=0}Wo(){this.Ko=this.Qo}Go(e){this.cancel();const n=Math.floor(this.Ko+this.zo()),t=Math.max(0,Date.now()-this.Uo),i=Math.max(0,n-t);i>0&&Ct("ExponentialBackoff",`Backing off for ${i} ms (base delay: ${this.Ko} ms, delay with jitter: ${n} ms, last attempt: ${t} ms ago)`),this.$o=this.ui.enqueueAfterDelay(this.timerId,i,()=>(this.Uo=Date.now(),e())),this.Ko*=this.qo,this.Ko<this.ko&&(this.Ko=this.ko),this.Ko>this.Qo&&(this.Ko=this.Qo)}jo(){null!==this.$o&&(this.$o.skipDelay(),this.$o=null)}
1cancel(){null!==this.$o&&(this.$o.cancel(),this.$o=null)}zo(){return(Math.random()-.5)*this.Ko}}class ls{constructor(e,n,t,i,a,o,r,s){this.ui=e,this.Ho=t,this.Jo=i,this.connection=a,this.authCredentialsProvider=o,this.appCheckCredentialsProvider=r,this.listener=s,this.state=0,this.Yo=0,this.Zo=null,this.Xo=null,this.stream=null,this.e_=0,this.t_=new us(e,n)}n_(){return 1===this.state||5===this.state||this.r_()}r_(){return 2===this.state||3===this.state}start(){this.e_=0,4!==this.state?this.auth():this.i_()}async stop(){this.n_()&&await this.close(0)}s_(){this.state=0,this.t_.reset()}o_(){this.r_()&&null===this.Zo&&(this.Zo=this.ui.enqueueAfterDelay(this.Ho,6e4,()=>this.__()))}a_(e){this.u_(),this.stream.send(e)}async __(){if(this.r_())return this.close(0)}u_(){this.Zo&&(this.Zo.cancel(),this.Zo=null)}c_(){this.Xo&&(this.Xo.cancel(),this.Xo=null)}async close(e,n){this.u_(),this.c_(),this.t_.cancel(),this.Yo++,4!==e?this.t_.reset():n&&n.code===At.RESOURCE_EXHAUSTED?(Lt(n.toString()),Lt("Using maximum backoff delay to prevent overloading the backend."),this.t_.Wo()):n&&n.code===At.UNAUTHENTICATED&&3!==this.state&&(this.authCredentialsProvider.invalidateToken(),this.appCheckCredentialsProvider.invalidateToken()),null!==this.stream&&(this.l_(),this.stream.close(),this.stream=null),this.state=e,await this.listener.mo(n)}l_(){}auth(){this.state=1;const e=this.h_(this.Yo),n=this.Yo;Promise.all([this.authCredentialsProvider.getToken(),this.appCheckCredentialsProvider.getToken()]).then(([e,t])=>{this.Yo===n&&this.P_(e,t)},n=>{e(()=>{const e=new Yt(At.UNKNOWN,"Fetching auth token failed: "+n.message);return this.I_(e)})})}P_(e,n){const t=this.h_(this.Yo);this.stream=this.T_(e,n),this.stream.Eo(()=>{t(()=>this.listener.Eo())}),this.stream.Ro(()=>{t(()=>(this.state=2,this.Xo=this.ui.enqueueAfterDelay(this.Jo,1e4,()=>(this.r_()&&(this.state=3),Promise.resolve())),this.listener.Ro()))}),this.stream.mo(e=>{t(()=>this.I_(e))}),this.stream.onMessage(e=>{t(()=>1==++this.e_?this.E_(e):this.onNext(e))})}i_(){this.state=5,this.t_.Go(async()=>{this.state=0,this.start()})}I_(e){return Ct("PersistentStream",`close with error: ${e}`),this.stream=null,this.close(4,e)}h_(e){return n=>{this.ui.enqueueAndForget(()=>this.Yo===e?n():(Ct("PersistentStream","stream callback skipped by getCloseGuardedDispatcher."),Promise.resolve()))}}}class cs extends ls{constructor(e,n,t,i,a,o){super(e,"listen_stream_connection_backoff","listen_stream_idle","health_check_timeout",n,t,i,o),this.serializer=a}T_(e,n){return this.connection.Bo("Listen",e,n)}E_(e){return this.onNext(e)}onNext(e){this.t_.reset();const n=function(e,n){let t;if("targetChange"in n){n.targetChange;const a="NO_CHANGE"===(i=n.targetChange.targetChangeType||"NO_CHANGE")?0:"ADD"===i?1:"REMOVE"===i?2:"CURRENT"===i?3:"RESET"===i?4:kt(),o=n.targetChange.targetIds||[],r=function(e,n){return e.useProto3Json?(Dt(void 0===n||"string"==typeof n),vi.fromBase64String(n||"")):(Dt(void 0===n||n instanceof Buffer||n instanceof Uint8Array),vi.fromUint8Array(n||new Uint8Array))}(e,n.targetChange.resumeToken),s=n.targetChange.cause,u=s&&function(e){const n=void 0===e.code?At.UNKNOWN:Do(e.code);return new Yt(n,e.message||"")}(s);t=new Jo(a,o,r,u||null)}else if("documentChange"in n){n.documentChange;const i=n.documentChange;i.document,i.document.name,i.document.updateTime;const a=nr(e,i.document.name),o=zo(i.document.updateTime),r=i.document.createTime?zo(i.document.createTime):Qt.min(),s=new Hi({mapValue:{fields:i.document.fields}}),u=Oi.newFoundDocument(a,o,r,s),l=i.targetIds||[],c=i.removedTargetIds||[];t=new Mo(l,c,u.key,u)}else if("documentDelete"in n){n.documentDelete;const i=n.documentDelete;i.document;const a=nr(e,i.document),o=i.readTime?zo(i.readTime):Qt.min(),r=Oi.newNoDocument(a,o),s=i.removedTargetIds||[];t=new Mo([],s,r.key,r)}else if("documentRemove"in n){n.documentRemove;const i=n.documentRemove;i.document;const a=nr(e,i.document),o=i.removedTargetIds||[];t=new Mo([],o,a,null)}else{if(!("filter"in n))return kt();{n.filter;const e=n.filter;e.targetId;const{count:i=0,unchangedNames:a}=e,o=new Lo(i,a),r=e.targetId;t=new Zo(r,o)}}var i;return t}(this.serializer,e),t=function(e){if(!("targetChange"in e))return Qt.min();const n=e.targetChange;return n.targetIds&&n.targetIds.length?Qt.min():n.readTime?zo(n.readTime):Qt.min()}(e);return this.listener.d_(n,t)}A_(e){const n={};n.database=ir(this.serializer),n.addTarget=function(e,n){let t;const i=n.target;if(t=fa(i)?{documents:sr(e,i)}:{query:ur(e,i)._t},t.targetId=n.targetId,n.resumeToken.approximateByteSize()>0){t.resumeToken=Wo(e,n.resumeToken);const i=Ko(e,n.expectedCount);null!==i&&(t.expectedCount=i)}else if(n.snapshotVersion.compareTo(Qt.min())>0){t.readTime=jo(e,n.snapshotVersion.toTimestamp());const i=Ko(e,n.expectedCount);null!==i&&(t.expectedCount=i)}return t}(this.serializer,e);const t=function(e,n){const t=function(e){switch(e){case"TargetPurposeListen":return null;case"TargetPurposeExistenceFilterMismatch":return"existence-filter-mismatch";case"TargetPurposeExistenceFilterMismatchBloom":return"existence-filter-mismatch-bloom";case"TargetPurposeLimboResolution":return"limbo-document";default:return kt()}}(n.purpose);return null==t?null:{"goog-listen-tags":t}}(this.serializer,e);t&&(n.labels=t),this.a_(n)}R_(e){const n={};n.database=ir(this.serializer),n.removeTarget=e,this.a_(n)}}class hs extends ls{constructor(e,n,t,i,a,o){super(e,"write_stream_connection_backoff","write_stream_idle","health_check_timeout",n,t,i,o),this.serializer
1=a}get V_(){return this.e_>0}start(){this.lastStreamToken=void 0,super.start()}l_(){this.V_&&this.m_([])}T_(e,n){return this.connection.Bo("Write",e,n)}E_(e){return Dt(!!e.streamToken),this.lastStreamToken=e.streamToken,Dt(!e.writeResults||0===e.writeResults.length),this.listener.f_()}onNext(e){Dt(!!e.streamToken),this.lastStreamToken=e.streamToken,this.t_.reset();const n=function(e,n){return e&&e.length>0?(Dt(void 0!==n),e.map(e=>function(e,n){let t=e.updateTime?zo(e.updateTime):zo(n);return t.isEqual(Qt.min())&&(t=zo(n)),new io(t,e.transformResults||[])}(e,n))):[]}(e.writeResults,e.commitTime),t=zo(e.commitTime);return this.listener.g_(t,n)}p_(){const e={};e.database=ir(this.serializer),this.a_(e)}m_(e){const n={streamToken:this.lastStreamToken,writes:e.map(e=>rr(this.serializer,e))};this.a_(n)}}class ds extends class{}{constructor(e,n,t,i){super(),this.authCredentials=e,this.appCheckCredentials=n,this.connection=t,this.serializer=i,this.y_=!1}w_(){if(this.y_)throw new Yt(At.FAILED_PRECONDITION,"The client has already been terminated.")}Mo(e,n,t,i){return this.w_(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then(([a,o])=>this.connection.Mo(e,Vo(n,t),i,a,o)).catch(e=>{throw"FirebaseError"===e.name?(e.code===At.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),e):new Yt(At.UNKNOWN,e.toString())})}Lo(e,n,t,i,a){return this.w_(),Promise.all([this.authCredentials.getToken(),this.appCheckCredentials.getToken()]).then(([o,r])=>this.connection.Lo(e,Vo(n,t),i,o,r,a)).catch(e=>{throw"FirebaseError"===e.name?(e.code===At.UNAUTHENTICATED&&(this.authCredentials.invalidateToken(),this.appCheckCredentials.invalidateToken()),e):new Yt(At.UNKNOWN,e.toString())})}terminate(){this.y_=!0,this.connection.terminate()}}class gs{constructor(e,n){this.asyncQueue=e,this.onlineStateHandler=n,this.state="Unknown",this.S_=0,this.b_=null,this.D_=!0}v_(){0===this.S_&&(this.C_("Unknown"),this.b_=this.asyncQueue.enqueueAfterDelay("online_state_timeout",1e4,()=>(this.b_=null,this.F_("Backend didn't respond within 10 seconds."),this.C_("Offline"),Promise.resolve())))}M_(e){"Online"===this.state?this.C_("Unknown"):(this.S_++,this.S_>=1&&(this.x_(),this.F_(`Connection failed 1 times. Most recent error: ${e.toString()}`),this.C_("Offline")))}set(e){this.x_(),this.S_=0,"Online"===e&&(this.D_=!1),this.C_(e)}C_(e){e!==this.state&&(this.state=e,this.onlineStateHandler(e))}F_(e){const n=`Could not reach Cloud Firestore backend. ${e}\nThis typically indicates that your device does not have a healthy Internet connection at the moment. The client will operate in offline mode until it is able to successfully connect to the backend.`;this.D_?(Lt(n),this.D_=!1):Ct("OnlineStateTracker",n)}x_(){null!==this.b_&&(this.b_.cancel(),this.b_=null)}}class ps{constructor(e,n,t,i,a){this.localStore=e,this.datastore=n,this.asyncQueue=t,this.remoteSyncer={},this.O_=[],this.N_=new Map,this.L_=new Set,this.B_=[],this.k_=a,this.k_._o(e=>{t.enqueueAndForget(async()=>{Ls(this)&&(Ct("RemoteStore","Restarting streams for network reachability change."),await async function(e){const n=xt(e);n.L_.add(4),await fs(n),n.q_.set("Unknown"),n.L_.delete(4),await ms(n)}(this))})}),this.q_=new gs(t,i)}}async function ms(e){if(Ls(e))for(const n of e.B_)await n(!0)}async function fs(e){for(const n of e.B_)await n(!1)}function vs(e,n){const t=xt(e);t.N_.has(n.targetId)||(t.N_.set(n.targetId,n),Cs(t)?Ss(t):Xs(t).r_()&&ys(t,n))}function ws(e,n){const t=xt(e),i=Xs(t);t.N_.delete(n),i.r_()&&bs(t,n),0===t.N_.size&&(i.r_()?i.o_():Ls(t)&&t.q_.set("Unknown"))}function ys(e,n){if(e.Q_.xe(n.targetId),n.resumeToken.approximateByteSize()>0||n.snapshotVersion.compareTo(Qt.min())>0){const t=e.remoteSyncer.getRemoteKeysForTarget(n.targetId).size;n=n.withExpectedCount(t)}Xs(e).A_(n)}function bs(e,n){e.Q_.xe(n),Xs(e).R_(n)}function Ss(e){e.Q_=new Ro({getRemoteKeysForTarget:n=>e.remoteSyncer.getRemoteKeysForTarget(n),ot:n=>e.N_.get(n)||null,tt:()=>e.datastore.serializer.databaseId}),Xs(e).start(),e.q_.v_()}function Cs(e){return Ls(e)&&!Xs(e).n_()&&e.N_.size>0}function Ls(e){return 0===xt(e).L_.size}function Ts(e){e.Q_=void 0}async function Es(e){e.q_.set("Online")}async function ks(e){e.N_.forEach((n,t)=>{ys(e,n)})}async function Ds(e,n){Ts(e),Cs(e)?(e.q_.M_(n),Ss(e)):e.q_.set("Unknown")}async function xs(e,n,t){if(e.q_.set("Online"),n instanceof Jo&&2===n.state&&n.cause)try{await async function(e,n){const t=n.cause;for(const i of n.targetIds)e.N_.has(i)&&(await e.remoteSyncer.rejectListen(i,t),e.N_.delete(i),e.Q_.removeTarget(i))}
1(e,n)}catch(i){Ct("RemoteStore","Failed to remove targets %s: %s ",n.targetIds.join(","),i),await As(e,i)}else if(n instanceof Mo?e.Q_.Ke(n):n instanceof Zo?e.Q_.He(n):e.Q_.We(n),!t.isEqual(Qt.min()))try{const n=await Qr(e.localStore);t.compareTo(n)>=0&&await function(e,n){const t=e.Q_.rt(n);return t.targetChanges.forEach((t,i)=>{if(t.resumeToken.approximateByteSize()>0){const a=e.N_.get(i);a&&e.N_.set(i,a.withResumeToken(t.resumeToken,n))}}),t.targetMismatches.forEach((n,t)=>{const i=e.N_.get(n);if(!i)return;e.N_.set(n,i.withResumeToken(vi.EMPTY_BYTE_STRING,i.snapshotVersion)),bs(e,n);const a=new yr(i.target,n,t,i.sequenceNumber);ys(e,a)}),e.remoteSyncer.applyRemoteEvent(t)}(e,t)}catch(a){Ct("RemoteStore","Failed to raise snapshot:",a),await As(e,a)}}async function As(e,n,t){if(!ii(n))throw n;e.L_.add(1),await fs(e),e.q_.set("Offline"),t||(t=()=>Qr(e.localStore)),e.asyncQueue.enqueueRetryable(async()=>{Ct("RemoteStore","Retrying IndexedDB access"),await t(),e.L_.delete(1),await ms(e)})}function Ys(e,n){return n().catch(t=>As(e,t,n))}async function _s(e){const n=xt(e),t=Hs(n);let i=n.O_.length>0?n.O_[n.O_.length-1].batchId:-1;for(;Is(n);)try{const e=await jr(n.localStore,i);if(null===e){0===n.O_.length&&t.o_();break}i=e.batchId,Ps(n,e)}catch(a){await As(n,a)}Ns(n)&&Ms(n)}function Is(e){return Ls(e)&&e.O_.length<10}function Ps(e,n){e.O_.push(n);const t=Hs(e);t.r_()&&t.V_&&t.m_(n.mutations)}function Ns(e){return Ls(e)&&!Hs(e).n_()&&e.O_.length>0}function Ms(e){Hs(e).start()}async function Zs(e){Hs(e).p_()}async function Js(e){const n=Hs(e);for(const t of e.O_)n.m_(t.mutations)}async function Bs(e,n,t){const i=e.O_.shift(),a=So.from(i,n,t);await Ys(e,()=>e.remoteSyncer.applySuccessfulWrite(a)),await _s(e)}async function Rs(e,n){n&&Hs(e).V_&&await async function(e,n){if(ko(t=n.code)&&t!==At.ABORTED){const t=e.O_.shift();Hs(e).s_(),await Ys(e,()=>e.remoteSyncer.rejectFailedWrite(t.batchId,n)),await _s(e)}var t}(e,n),Ns(e)&&Ms(e)}async function Fs(e,n){const t=xt(e);t.asyncQueue.verifyOperationInProgress(),Ct("RemoteStore","RemoteStore received new credentials");const i=Ls(t);t.L_.add(3),await fs(t),i&&t.q_.set("Unknown"),await t.remoteSyncer.handleCredentialChange(n),t.L_.delete(3),await ms(t)}function Xs(e){return e.K_||(e.K_=function(e,n,t){const i=xt(e);return i.w_(),new cs(n,i.connection,i.authCredentials,i.appCheckCredentials,i.serializer,t)}(e.datastore,e.asyncQueue,{Eo:Es.bind(null,e),Ro:ks.bind(null,e),mo:Ds.bind(null,e),d_:xs.bind(null,e)}),e.B_.push(async n=>{n?(e.K_.s_(),Cs(e)?Ss(e):e.q_.set("Unknown")):(await e.K_.stop(),Ts(e))})),e.K_}function Hs(e){return e.U_||(e.U_=function(e,n,t){const i=xt(e);return i.w_(),new hs(n,i.connection,i.authCredentials,i.appCheckCredentials,i.serializer,t)}(e.datastore,e.asyncQueue,{Eo:()=>Promise.resolve(),Ro:Zs.bind(null,e),mo:Rs.bind(null,e),f_:Js.bind(null,e),g_:Bs.bind(null,e)}),e.B_.push(async n=>{n?(e.U_.s_(),await _s(e)):(await e.U_.stop(),e.O_.length>0&&(Ct("RemoteStore",`Stopping write stream with ${e.O_.length} pending writes`),e.O_=[]))})),e.U_}class Gs{constructor(e,n,t,i,a){this.asyncQueue=e,this.timerId=n,this.targetTimeMs=t,this.op=i,this.removalCallback=a,this.deferred=new _t,this.then=this.deferred.promise.then.bind(this.deferred.promise),this.deferred.promise.catch(e=>{})}get promise(){return this.deferred.promise}static createAndSchedule(e,n,t,i,a){const o=Date.now()+t,r=new Gs(e,n,o,i,a);return r.start(t),r}start(e){this.timerHandle=setTimeout(()=>this.handleDelayElapsed(),e)}skipDelay(){return this.handleDelayElapsed()}cancel(e){null!==this.timerHandle&&(this.clearTimeout(),this.deferred.reject(new Yt(At.CANCELLED,"Operation cancelled"+(e?": "+e:""))))}handleDelayElapsed(){this.asyncQueue.enqueueAndForget(()=>null!==this.timerHandle?(this.clearTimeout(),this.op().then(e=>this.deferred.resolve(e))):Promise.resolve())}clearTimeout(){null!==this.timerHandle&&(this.removalCallback(this),clearTimeout(this.timerHandle),this.timerHandle=null)}}function Os(e,n){if(Lt("AsyncQueue",`${n}: ${e}`),ii(e))return new Yt(At.UNAVAILABLE,`${n}: ${e}`);throw e}class Qs{constructor(e){this.comparator=e?(n,t)=>e(n,t)||zt.comparator(n.key,t.key):(e,n)=>zt.comparator(e.key,n.key),this.keyedMap=Pa(),this.sortedSet=new ci(this.comparator)}static emptySet(e){return new Qs(e.comparator)}has(e){return null!=this.keyedMap.get(e)}get(e){return this.keyedMap.get(e)}first(){return this.sortedSet.minKey()}last(){return this.sortedSet.maxKey()}isEmpty(){return this.sortedSet.isEmpty()}indexOf(e){const n=this.keyedMap.get(e);return n?this.sortedSet.indexOf(n):-1}get size(){return this.sortedSet.size}forEach(e){this.sortedSet.inorderTraversal((n,t)=>(e(n),!1))}add(e){const n=this.delete(e.key);return n.copy(n.keyedMap.insert(e.key,e),n.sortedSet.insert(e,null))}delete(e){const n=this.get(e);return n?this.copy(this.keyedMap.remove(e),this.sortedSet.remove(n)):this}isEqual(e){if(!(e instanceof Qs))return!1;if(this.size!==e.size)return!1;const n=this.sortedSet.getIterator(),t=e.sortedSet.getIterator();for(;n.hasNext();){const e=n.getNext().key,i=t.getNext().key;if(!e.isEqual(i))return!1}return!0}toString(){const e=[];return this.forEach(n=>{e.push(n.toString())}),0===e.length?"DocumentSet ()":"DocumentSet (\n "+e.join(" \n")+"\n)"}copy(e,n){const t=new Qs;return t.comparator=this.comparator,t.keyedMap=e,t.sortedSet=n,t}}class Ks{constructor(){this.W_=new ci(zt.comparator)}track(e){const n=e.doc.key,t=this.W_.get(n);t?0!==e.type&&3===t.type?this.W_=this.W_.insert(n,e):3===e.type&&1!==t.type?this.W_=this.W_.insert(n,{type:t.type,doc:e.doc}):2===e.type&&2===t.type?this.W_=this.W_.insert(n,{type:2,doc:e.doc}):2===e.type&&0===t.type?this.W_=this.W_.insert(n,{type:0,doc:e.doc}):1===e.type&&0===t.type?this.W_=this.W_.remove(n):1===e.type&&2===t.type?this.W_=this.W_.insert(n,{type:1,doc:t.doc}):0===e.type&&1===t.type?this.W_=this.W_.insert(n,{type:2,doc:e.doc}):kt():this.W_=this.W_.insert(n,e)}G_(){const e=[];return this.W_.inorderTraversal((n,t)=>{e.push(t)}),e}}class js{constructor(e,n,t,i,a,o,r,s,u){this.query=e,this.docs=n,this.oldDocs=t,this.docChanges=i,this.mutatedKeys=a,this.fromCache=o,this.syncStateChanged=r,this.excludesMetadataChanges=s,this.hasCachedResults=u}static fromInitialDocuments(e,n,t,i,a){const o=[];
1return n.forEach(e=>{o.push({type:0,doc:e})}),new js(e,n,Qs.emptySet(n),o,t,i,!0,!1,a)}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)&&La(this.query,e.query)&&this.docs.isEqual(e.docs)&&this.oldDocs.isEqual(e.oldDocs)))return!1;const n=this.docChanges,t=e.docChanges;if(n.length!==t.length)return!1;for(let i=0;i<n.length;i++)if(n[i].type!==t[i].type||!n[i].doc.isEqual(t[i].doc))return!1;return!0}}class Ws{constructor(){this.z_=void 0,this.j_=[]}H_(){return this.j_.some(e=>e.J_())}}class Us{constructor(){this.queries=zs(),this.onlineState="Unknown",this.Y_=new Set}terminate(){!function(e,n){const t=xt(e),i=t.queries;t.queries=zs(),i.forEach((e,t)=>{for(const i of t.j_)i.onError(n)})}(this,new Yt(At.ABORTED,"Firestore shutting down"))}}function zs(){return new Aa(e=>Ta(e),La)}function $s(e,n){const t=xt(e);let i=!1;for(const a of n){const e=a.query,n=t.queries.get(e);if(n){for(const e of n.j_)e.X_(a)&&(i=!0);n.z_=a}}i&&qs(t)}function Vs(e,n,t){const i=xt(e),a=i.queries.get(n);if(a)for(const o of a.j_)o.onError(t);i.queries.delete(n)}function qs(e){e.Y_.forEach(e=>{e.next()})}var eu,nu;(nu=eu||(eu={})).ea="default",nu.Cache="cache";class tu{constructor(e,n,t){this.query=e,this.ta=n,this.na=!1,this.ra=null,this.onlineState="Unknown",this.options=t||{}}X_(e){if(!this.options.includeMetadataChanges){const n=[];for(const t of e.docChanges)3!==t.type&&n.push(t);e=new js(e.query,e.docs,e.oldDocs,n,e.mutatedKeys,e.fromCache,e.syncStateChanged,!0,e.hasCachedResults)}let n=!1;return this.na?this.ia(e)&&(this.ta.next(e),n=!0):this.sa(e,this.onlineState)&&(this.oa(e),n=!0),this.ra=e,n}onError(e){this.ta.error(e)}Z_(e){this.onlineState=e;let n=!1;return this.ra&&!this.na&&this.sa(this.ra,e)&&(this.oa(this.ra),n=!0),n}sa(e,n){if(!e.fromCache)return!0;if(!this.J_())return!0;const t="Offline"!==n;return(!this.options._a||!t)&&(!e.docs.isEmpty()||e.hasCachedResults||"Offline"===n)}ia(e){if(e.docChanges.length>0)return!0;const n=this.ra&&this.ra.hasPendingWrites!==e.hasPendingWrites;return!(!e.syncStateChanged&&!n)&&!0===this.options.includeMetadataChanges}oa(e){e=js.fromInitialDocuments(e.query,e.docs,e.mutatedKeys,e.fromCache,e.hasCachedResults),this.na=!0,this.ta.next(e)}J_(){return this.options.source!==eu.Cache}}class iu{constructor(e){this.key=e}}class au{constructor(e){this.key=e}}class ou{constructor(e,n){this.query=e,this.Ta=n,this.Ea=null,this.hasCachedResults=!1,this.current=!1,this.da=Fa(),this.mutatedKeys=Fa(),this.Aa=Da(e),this.Ra=new Qs(this.Aa)}get Va(){return this.Ta}ma(e,n){const t=n?n.fa:new Ks,i=n?n.Ra:this.Ra;let a=n?n.mutatedKeys:this.mutatedKeys,o=i,r=!1;const s="F"===this.query.limitType&&i.size===this.query.limit?i.last():null,u="L"===this.query.limitType&&i.size===this.query.limit?i.first():null;if(e.inorderTraversal((e,n)=>{const l=i.get(e),c=ka(this.query,n)?n:null,h=!!l&&this.mutatedKeys.has(l.key),d=!!c&&(c.hasLocalMutations||this.mutatedKeys.has(c.key)&&c.hasCommittedMutations);let g=!1;l&&c?l.data.isEqual(c.data)?h!==d&&(t.track({type:3,doc:c}),g=!0):this.ga(l,c)||(t.track({type:2,doc:c}),g=!0,(s&&this.Aa(c,s)>0||u&&this.Aa(c,u)<0)&&(r=!0)):!l&&c?(t.track({type:0,doc:c}),g=!0):l&&!c&&(t.track({type:1,doc:l}),g=!0,(s||u)&&(r=!0)),g&&(c?(o=o.add(c),a=d?a.add(e):a.delete(e)):(o=o.delete(e),a=a.delete(e)))}),null!==this.query.limit)for(;o.size>this.query.limit;){const e="F"===this.query.limitType?o.last():o.first();o=o.delete(e.key),a=a.delete(e.key),t.track({type:1,doc:e})}return{Ra:o,fa:t,ns:r,mutatedKeys:a}}ga(e,n){return e.hasLocalMutations&&n.hasCommittedMutations&&!n.hasLocalMutations}applyChanges(e,n,t,i){const a=this.Ra;this.Ra=e.Ra,this.mutatedKeys=e.mutatedKeys;const o=e.fa.G_();o.sort((e,n)=>function(e,n){const t=e=>{switch(e){case 0:return 1;case 2:case 3:return 2;case 1:return 0;default:return kt()}};return t(e)-t(n)}(e.type,n.type)||this.Aa(e.doc,n.doc)),this.pa(t),i=null!=i&&i;const r=n&&!i?this.ya():[],s=0===this.da.size&&this.current&&!i?1:0,u=s!==this.Ea;return this.Ea=s,0!==o.length||u?{snapshot:new js(this.query,e.Ra,a,o,e.mutatedKeys,0===s,u,!1,!!t&&t.resumeToken.approximateByteSize()>0),wa:r}:{wa:r}}Z_(e){return this.current&&"Offline"===e?(this.current=!1,this.applyChanges({Ra:this.Ra,fa:new Ks,mutatedKeys:this.mutatedKeys,ns:!1},!1)):{wa:[]}}Sa(e){return!this.Ta.has(e)&&!!this.Ra.has(e)&&!this.Ra.get(e).hasLocalMutations}
1pa(e){e&&(e.addedDocuments.forEach(e=>this.Ta=this.Ta.add(e)),e.modifiedDocuments.forEach(e=>{}),e.removedDocuments.forEach(e=>this.Ta=this.Ta.delete(e)),this.current=e.current)}ya(){if(!this.current)return[];const e=this.da;this.da=Fa(),this.Ra.forEach(e=>{this.Sa(e.key)&&(this.da=this.da.add(e.key))});const n=[];return e.forEach(e=>{this.da.has(e)||n.push(new au(e))}),this.da.forEach(t=>{e.has(t)||n.push(new iu(t))}),n}ba(e){this.Ta=e.Ts,this.da=Fa();const n=this.ma(e.documents);return this.applyChanges(n,!0)}Da(){return js.fromInitialDocuments(this.query,this.Ra,this.mutatedKeys,0===this.Ea,this.hasCachedResults)}}class ru{constructor(e,n,t){this.query=e,this.targetId=n,this.view=t}}class su{constructor(e){this.key=e,this.va=!1}}class uu{constructor(e,n,t,i,a,o){this.localStore=e,this.remoteStore=n,this.eventManager=t,this.sharedClientState=i,this.currentUser=a,this.maxConcurrentLimboResolutions=o,this.Ca={},this.Fa=new Aa(e=>Ta(e),La),this.Ma=new Map,this.xa=new Set,this.Oa=new ci(zt.comparator),this.Na=new Map,this.La=new _r,this.Ba={},this.ka=new Map,this.qa=Tr.kn(),this.onlineState="Unknown",this.Qa=void 0}get isPrimaryClient(){return!0===this.Qa}}async function lu(e,n,t=!0){const i=Yu(e);let a;const o=i.Fa.get(n);return o?(i.sharedClientState.addLocalQueryTarget(o.targetId),a=o.view.Da()):a=await hu(i,n,t,!0),a}async function cu(e,n){const t=Yu(e);await hu(t,n,!0,!1)}async function hu(e,n,t,i){const a=await function(e,n){const t=xt(e);return t.persistence.runTransaction("Allocate target","readwrite",e=>{let i;return t.Ur.getTargetData(e,n).next(a=>a?(i=a,ti.resolve(i)):t.Ur.allocateTargetId(e).next(a=>(i=new yr(n,a,"TargetPurposeListen",e.currentSequenceNumber),t.Ur.addTargetData(e,i).next(()=>i))))}).then(e=>{const i=t.os.get(e.targetId);return(null===i||e.snapshotVersion.compareTo(i.snapshotVersion)>0)&&(t.os=t.os.insert(e.targetId,e),t._s.set(n,e.targetId)),e})}(e.localStore,Sa(n)),o=a.targetId,r=e.sharedClientState.addLocalQueryTarget(o,t);let s;return i&&(s=await async function(e,n,t,i,a){e.Ka=(n,t,i)=>async function(e,n,t,i){let a=n.view.ma(t);a.ns&&(a=await Ur(e.localStore,n.query,!1).then(({documents:e})=>n.view.ma(e,a)));const o=i&&i.targetChanges.get(n.targetId),r=i&&null!=i.targetMismatches.get(n.targetId),s=n.view.applyChanges(a,e.isPrimaryClient,o,r);return Tu(e,n.targetId,s.wa),s.snapshot}(e,n,t,i);const o=await Ur(e.localStore,n,!0),r=new ou(n,o.Ts),s=r.ma(o.documents),u=No.createSynthesizedTargetChangeForCurrentChange(t,i&&"Offline"!==e.onlineState,a),l=r.applyChanges(s,e.isPrimaryClient,u);Tu(e,t,l.wa);const c=new ru(n,t,r);return e.Fa.set(n,c),e.Ma.has(t)?e.Ma.get(t).push(n):e.Ma.set(t,[n]),l.snapshot}(e,n,o,"current"===r,a.resumeToken)),e.isPrimaryClient&&t&&vs(e.remoteStore,a),s}async function du(e,n,t){const i=xt(e),a=i.Fa.get(n),o=i.Ma.get(a.targetId);if(o.length>1)return i.Ma.set(a.targetId,o.filter(e=>!La(e,n))),void i.Fa.delete(n);i.isPrimaryClient?(i.sharedClientState.removeLocalQueryTarget(a.targetId),i.sharedClientState.isActiveQueryTarget(a.targetId)||await Wr(i.localStore,a.targetId,!1).then(()=>{i.sharedClientState.clearQueryState(a.targetId),t&&ws(i.remoteStore,a.targetId),Cu(i,a.targetId)}).catch(ni)):(Cu(i,a.targetId),await Wr(i.localStore,a.targetId,!0))}async function gu(e,n){const t=xt(e),i=t.Fa.get(n),a=t.Ma.get(i.targetId);t.isPrimaryClient&&1===a.length&&(t.sharedClientState.removeLocalQueryTarget(i.targetId),ws(t.remoteStore,i.targetId))}async function pu(e,n,t){const i=function(e){const n=xt(e);return n.remoteStore.remoteSyncer.applySuccessfulWrite=wu.bind(null,n),n.remoteStore.remoteSyncer.rejectFailedWrite=yu.bind(null,n),n}(e);try{const e=await function(e,n){const t=xt(e),i=Ot.now(),a=n.reduce((e,n)=>e.add(n.key),Fa());let o,r;return t.persistence.runTransaction("Locally write mutations","readwrite",e=>{let s=_a(),u=Fa();return t.cs.getEntries(e,a).next(e=>{s=e,s.forEach((e,n)=>{n.isValidDocument()||(u=u.add(e))})}).next(()=>t.localDocuments.getOverlayedDocuments(e,s)).next(a=>{o=a;const r=[];for(const e of n){const n=co(e,o.get(e.key).overlayedDocument);null!=n&&r.push(new po(e.key,n,Gi(n.value.mapValue),ao.exists(!0)))}
1return t.mutationQueue.addMutationBatch(e,i,r,n)}).next(n=>{r=n;const i=n.applyToLocalDocumentSet(o,u);return t.documentOverlayCache.saveOverlays(e,n.batchId,i)})}).then(()=>({batchId:r.batchId,changes:Na(o)}))}(i.localStore,n);i.sharedClientState.addPendingMutation(e.batchId),function(e,n,t){let i=e.Ba[e.currentUser.toKey()];i||(i=new ci(Ht)),i=i.insert(n,t),e.Ba[e.currentUser.toKey()]=i}(i,e.batchId,t),await Du(i,e.changes),await _s(i.remoteStore)}catch(a){const e=Os(a,"Failed to persist write");t.reject(e)}}async function mu(e,n){const t=xt(e);try{const e=await Kr(t.localStore,n);n.targetChanges.forEach((e,n)=>{const i=t.Na.get(n);i&&(Dt(e.addedDocuments.size+e.modifiedDocuments.size+e.removedDocuments.size<=1),e.addedDocuments.size>0?i.va=!0:e.modifiedDocuments.size>0?Dt(i.va):e.removedDocuments.size>0&&(Dt(i.va),i.va=!1))}),await Du(t,e,n)}catch(i){await ni(i)}}function fu(e,n,t){const i=xt(e);if(i.isPrimaryClient&&0===t||!i.isPrimaryClient&&1===t){const e=[];i.Fa.forEach((t,i)=>{const a=i.view.Z_(n);a.snapshot&&e.push(a.snapshot)}),function(e,n){const t=xt(e);t.onlineState=n;let i=!1;t.queries.forEach((e,t)=>{for(const a of t.j_)a.Z_(n)&&(i=!0)}),i&&qs(t)}(i.eventManager,n),e.length&&i.Ca.d_(e),i.onlineState=n,i.isPrimaryClient&&i.sharedClientState.setOnlineState(n)}}async function vu(e,n,t){const i=xt(e);i.sharedClientState.updateQueryState(n,"rejected",t);const a=i.Na.get(n),o=a&&a.key;if(o){let e=new ci(zt.comparator);e=e.insert(o,Oi.newNoDocument(o,Qt.min()));const t=Fa().add(o),a=new Po(Qt.min(),new Map,new ci(Ht),e,t);await mu(i,a),i.Oa=i.Oa.remove(o),i.Na.delete(n),ku(i)}else await Wr(i.localStore,n,!1).then(()=>Cu(i,n,t)).catch(ni)}async function wu(e,n){const t=xt(e),i=n.batch.batchId;try{const e=await function(e,n){const t=xt(e);return t.persistence.runTransaction("Acknowledge batch","readwrite-primary",e=>{const i=n.batch.keys(),a=t.cs.newChangeBuffer({trackRemovals:!0});return function(e,n,t,i){const a=t.batch,o=a.keys();let r=ti.resolve();return o.forEach(e=>{r=r.next(()=>i.getEntry(n,e)).next(n=>{const o=t.docVersions.get(e);Dt(null!==o),n.version.compareTo(o)<0&&(a.applyToRemoteDocument(n,t),n.isValidDocument()&&(n.setReadTime(t.commitVersion),i.addEntry(n)))})}),r.next(()=>e.mutationQueue.removeMutationBatch(n,a))}(t,e,n,a).next(()=>a.apply(e)).next(()=>t.mutationQueue.performConsistencyCheck(e)).next(()=>t.documentOverlayCache.removeOverlaysForBatchId(e,i,n.batch.batchId)).next(()=>t.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(e,function(e){let n=Fa();for(let t=0;t<e.mutationResults.length;++t)e.mutationResults[t].transformResults.length>0&&(n=n.add(e.batch.mutations[t].key));return n}(n))).next(()=>t.localDocuments.getDocuments(e,i))})}(t.localStore,n);Su(t,i,null),bu(t,i),t.sharedClientState.updateMutationState(i,"acknowledged"),await Du(t,e)}catch(a){await ni(a)}}async function yu(e,n,t){const i=xt(e);try{const e=await function(e,n){const t=xt(e);return t.persistence.runTransaction("Reject batch","readwrite-primary",e=>{let i;return t.mutationQueue.lookupMutationBatch(e,n).next(n=>(Dt(null!==n),i=n.keys(),t.mutationQueue.removeMutationBatch(e,n))).next(()=>t.mutationQueue.performConsistencyCheck(e)).next(()=>t.documentOverlayCache.removeOverlaysForBatchId(e,i,n)).next(()=>t.localDocuments.recalculateAndSaveOverlaysForDocumentKeys(e,i)).next(()=>t.localDocuments.getDocuments(e,i))})}(i.localStore,n);Su(i,n,t),bu(i,n),i.sharedClientState.updateMutationState(n,"rejected",t),await Du(i,e)}catch(a){await ni(a)}}function bu(e,n){(e.ka.get(n)||[]).forEach(e=>{e.resolve()}),e.ka.delete(n)}function Su(e,n,t){const i=xt(e);let a=i.Ba[i.currentUser.toKey()];if(a){const e=a.get(n);e&&(t?e.reject(t):e.resolve(),a=a.remove(n)),i.Ba[i.currentUser.toKey()]=a}}function Cu(e,n,t=null){e.sharedClientState.removeLocalQueryTarget(n);for(const i of e.Ma.get(n))e.Fa.delete(i),t&&e.Ca.$a(i,t);e.Ma.delete(n),e.isPrimaryClient&&e.La.gr(n).forEach(n=>{e.La.containsKey(n)||Lu(e,n)})}function Lu(e,n){e.xa.delete(n.path.canonicalString());const t=e.Oa.get(n);null!==t&&(ws(e.remoteStore,t),e.Oa=e.Oa.remove(n),e.Na.delete(t),ku(e))}function Tu(e,n,t){for(const i of t)i instanceof iu?(e.La.addReference(i.key,n),Eu(e,i)):i instanceof au?(Ct("SyncEngine","Document no longer in limbo: "+i.key),e.La.removeReference(i.key,n),e.La.containsKey(i.key)||Lu(e,i.key)):kt()}function Eu(e,n){const t=n.key,i=t.path.canonicalString();e.Oa.get(t)||e.xa.has(i)||(Ct("SyncEngine","New document in limbo: "+t),e.xa.add(i),ku(e))}function ku(e){for(;e.xa.size>0&&e.Oa.size<e.maxConcurrentLimboResolutions;){const n=e.xa.values().next().value;e.xa.delete(n);const t=new zt(jt.fromString(n)),i=e.qa.next();e.Na.set(i,new su(t)),e.Oa=e.Oa.insert(t,i),vs(e.remoteStore,new yr(Sa(wa(t.path)),i,"TargetPurposeLimboResolution",ai.oe))}}async function Du(e,n,t){const i=xt(e),a=[],o=[],r=[];
1i.Fa.isEmpty()||(i.Fa.forEach((e,s)=>{r.push(i.Ka(s,n,t).then(e=>{var n;if((e||t)&&i.isPrimaryClient){const a=e?!e.fromCache:null===(n=null==t?void 0:t.targetChanges.get(s.targetId))||void 0===n?void 0:n.current;i.sharedClientState.updateQueryState(s.targetId,a?"current":"not-current")}if(e){a.push(e);const n=Fr.Wi(s.targetId,e);o.push(n)}}))}),await Promise.all(r),i.Ca.d_(a),await async function(e,n){const t=xt(e);try{await t.persistence.runTransaction("notifyLocalViewChanges","readwrite",e=>ti.forEach(n,n=>ti.forEach(n.$i,i=>t.persistence.referenceDelegate.addReference(e,n.targetId,i)).next(()=>ti.forEach(n.Ui,i=>t.persistence.referenceDelegate.removeReference(e,n.targetId,i)))))}catch(i){if(!ii(i))throw i;Ct("LocalStore","Failed to update sequence numbers: "+i)}for(const a of n){const e=a.targetId;if(!a.fromCache){const n=t.os.get(e),i=n.snapshotVersion,a=n.withLastLimboFreeSnapshotVersion(i);t.os=t.os.insert(e,a)}}}(i.localStore,o))}async function xu(e,n){const t=xt(e);if(!t.currentUser.isEqual(n)){Ct("SyncEngine","User change. New user:",n.toKey());const e=await Or(t.localStore,n);t.currentUser=n,a="'waitForPendingWrites' promise is rejected due to a user change.",(i=t).ka.forEach(e=>{e.forEach(e=>{e.reject(new Yt(At.CANCELLED,a))})}),i.ka.clear(),t.sharedClientState.handleUserChange(n,e.removedBatchIds,e.addedBatchIds),await Du(t,e.hs)}var i,a}function Au(e,n){const t=xt(e),i=t.Na.get(n);if(i&&i.va)return Fa().add(i.key);{let e=Fa();const i=t.Ma.get(n);if(!i)return e;for(const n of i){const i=t.Fa.get(n);e=e.unionWith(i.view.Va)}return e}}function Yu(e){const n=xt(e);return n.remoteStore.remoteSyncer.applyRemoteEvent=mu.bind(null,n),n.remoteStore.remoteSyncer.getRemoteKeysForTarget=Au.bind(null,n),n.remoteStore.remoteSyncer.rejectListen=vu.bind(null,n),n.Ca.d_=$s.bind(null,n.eventManager),n.Ca.$a=Vs.bind(null,n.eventManager),n}class _u{constructor(){this.kind="memory",this.synchronizeTabs=!1}async initialize(e){this.serializer=ss(e.databaseInfo.databaseId),this.sharedClientState=this.Wa(e),this.persistence=this.Ga(e),await this.persistence.start(),this.localStore=this.za(e),this.gcScheduler=this.ja(e,this.localStore),this.indexBackfillerScheduler=this.Ha(e,this.localStore)}ja(e,n){return null}Ha(e,n){return null}za(e){return function(e,n,t,i){return new Gr(e,n,t,i)}(this.persistence,new Hr,e.initialUser,this.serializer)}Ga(e){return new Jr(Rr.Zr,this.serializer)}Wa(e){return new $r}async terminate(){var e,n;null===(e=this.gcScheduler)||void 0===e||e.stop(),null===(n=this.indexBackfillerScheduler)||void 0===n||n.stop(),this.sharedClientState.shutdown(),await this.persistence.shutdown()}}_u.provider={build:()=>new _u};class Iu{async initialize(e,n){this.localStore||(this.localStore=e.localStore,this.sharedClientState=e.sharedClientState,this.datastore=this.createDatastore(n),this.remoteStore=this.createRemoteStore(n),this.eventManager=this.createEventManager(n),this.syncEngine=this.createSyncEngine(n,!e.synchronizeTabs),this.sharedClientState.onlineStateHandler=e=>fu(this.syncEngine,e,1),this.remoteStore.remoteSyncer.handleCredentialChange=xu.bind(null,this.syncEngine),await async function(e,n){const t=xt(e);n?(t.L_.delete(2),await ms(t)):n||(t.L_.add(2),await fs(t),t.q_.set("Unknown"))}(this.remoteStore,this.syncEngine.isPrimaryClient))}createEventManager(e){return new Us}createDatastore(e){const n=ss(e.databaseInfo.databaseId),t=(i=e.databaseInfo,new os(i));var i;return function(e,n,t,i){return new ds(e,n,t,i)}(e.authCredentials,e.appCheckCredentials,t,n)}createRemoteStore(e){return n=this.localStore,t=this.datastore,i=e.asyncQueue,a=e=>fu(this.syncEngine,e,0),o=qr.D()?new qr:new Vr,new ps(n,t,i,a,o);var n,t,i,a,o}createSyncEngine(e,n){return function(e,n,t,i,a,o,r){const s=new uu(e,n,t,i,a,o);return r&&(s.Qa=!0),s}(this.localStore,this.remoteStore,this.eventManager,this.sharedClientState,e.initialUser,e.maxConcurrentLimboResolutions,n)}async terminate(){var e,n;await async function(e){const n=xt(e);Ct("RemoteStore","RemoteStore shutting down."),n.L_.add(5),await fs(n),n.k_.shutdown(),n.q_.set("Unknown")}(this.remoteStore),null===(e=this.datastore)||void 0===e||e.terminate(),null===(n=this.eventManager)||void 0===n||n.terminate()}}Iu.provider={build:()=>new Iu};class Pu{constructor(e){this.observer=e,this.muted=!1}next(e){this.muted||this.observer.next&&this.Ya(this.observer.next,e)}error(e){this.muted||(this.observer.error?this.Ya(this.observer.error,e):Lt("Uncaught Error in snapshot listener:",e.toString()))}Za(){this.muted=!0}
1Ya(e,n){setTimeout(()=>{this.muted||e(n)},0)}}class Nu{constructor(e){this.datastore=e,this.readVersions=new Map,this.mutations=[],this.committed=!1,this.lastTransactionError=null,this.writtenDocs=new Set}async lookup(e){if(this.ensureCommitNotCalled(),this.mutations.length>0)throw this.lastTransactionError=new Yt(At.INVALID_ARGUMENT,"Firestore transactions require all reads to be executed before all writes."),this.lastTransactionError;const n=await async function(e,n){const t=xt(e),i={documents:n.map(e=>er(t.serializer,e))},a=await t.Lo("BatchGetDocuments",t.serializer.databaseId,jt.emptyPath(),i,n.length),o=new Map;a.forEach(e=>{const n=function(e,n){return"found"in n?function(e,n){Dt(!!n.found),n.found.name,n.found.updateTime;const t=nr(e,n.found.name),i=zo(n.found.updateTime),a=n.found.createTime?zo(n.found.createTime):Qt.min(),o=new Hi({mapValue:{fields:n.found.fields}});return Oi.newFoundDocument(t,i,a,o)}(e,n):"missing"in n?function(e,n){Dt(!!n.missing),Dt(!!n.readTime);const t=nr(e,n.missing),i=zo(n.readTime);return Oi.newNoDocument(t,i)}(e,n):kt()}(t.serializer,e);o.set(n.key.toString(),n)});const r=[];return n.forEach(e=>{const n=o.get(e.toString());Dt(!!n),r.push(n)}),r}(this.datastore,e);return n.forEach(e=>this.recordVersion(e)),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(t){this.lastTransactionError=t}this.writtenDocs.add(e.toString())}delete(e){this.write(new wo(e,this.precondition(e))),this.writtenDocs.add(e.toString())}async commit(){if(this.ensureCommitNotCalled(),this.lastTransactionError)throw this.lastTransactionError;const e=this.readVersions;this.mutations.forEach(n=>{e.delete(n.key.toString())}),e.forEach((e,n)=>{const t=zt.fromPath(n);this.mutations.push(new yo(t,this.precondition(t)))}),await async function(e,n){const t=xt(e),i={writes:n.map(e=>rr(t.serializer,e))};await t.Mo("Commit",t.serializer.databaseId,jt.emptyPath(),i)}(this.datastore,this.mutations),this.committed=!0}recordVersion(e){let n;if(e.isFoundDocument())n=e.version;else{if(!e.isNoDocument())throw kt();n=Qt.min()}const t=this.readVersions.get(e.key.toString());if(t){if(!n.isEqual(t))throw new Yt(At.ABORTED,"Document version changed between two reads.")}else this.readVersions.set(e.key.toString(),n)}precondition(e){const n=this.readVersions.get(e.toString());return!this.writtenDocs.has(e.toString())&&n?n.isEqual(Qt.min())?ao.exists(!1):ao.updateTime(n):ao.none()}preconditionForUpdate(e){const n=this.readVersions.get(e.toString());if(!this.writtenDocs.has(e.toString())&&n){if(n.isEqual(Qt.min()))throw new Yt(At.INVALID_ARGUMENT,"Can't update a document that doesn't exist.");return ao.updateTime(n)}return ao.exists(!0)}write(e){this.ensureCommitNotCalled(),this.mutations.push(e)}ensureCommitNotCalled(){}}class Mu{constructor(e,n,t,i,a){this.asyncQueue=e,this.datastore=n,this.options=t,this.updateFunction=i,this.deferred=a,this._u=t.maxAttempts,this.t_=new us(this.asyncQueue,"transaction_retry")}au(){this._u-=1,this.uu()}uu(){this.t_.Go(async()=>{const e=new Nu(this.datastore),n=this.cu(e);n&&n.then(n=>{this.asyncQueue.enqueueAndForget(()=>e.commit().then(()=>{this.deferred.resolve(n)}).catch(e=>{this.lu(e)}))}).catch(e=>{this.lu(e)})})}cu(e){try{const n=this.updateFunction(e);return!oi(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}}lu(e){this._u>0&&this.hu(e)?(this._u-=1,this.asyncQueue.enqueueAndForget(()=>(this.uu(),Promise.resolve()))):this.deferred.reject(e)}hu(e){if("FirebaseError"===e.name){const n=e.code;return"aborted"===n||"failed-precondition"===n||"already-exists"===n||!ko(n)}return!1}}class Zu{constructor(e,n,t,i,a){this.authCredentials=e,this.appCheckCredentials=n,this.asyncQueue=t,this.databaseInfo=i,this.user=wt.UNAUTHENTICATED,this.clientId=Xt.newId(),this.authCredentialListener=()=>Promise.resolve(),this.appCheckCredentialListener=()=>Promise.resolve(),this._uninitializedComponentsProvider=a,this.authCredentials.start(t,async e=>{Ct("FirestoreClient","Received user=",e.uid),await this.authCredentialListener(e),this.user=e}),this.appCheckCredentials.start(t,e=>(Ct("FirestoreClient","Received new app check token=",e),this.appCheckCredentialListener(e,this.user)))}get configuration(){return{asyncQueue:this.asyncQueue,databaseInfo:this.databaseInfo,clientId:this.clientId,authCredentials:this.authCredentials,appCheckCredentials:this.appCheckCredentials,initialUser:this.user,maxConcurrentLimboResolutions:100}}setCredentialChangeListener(e){this.authCredentialListener=e}setAppCheckTokenChangeListener(e){this.appCheckCredentialListener=e}terminate(){this.asyncQueue.enterRestrictedMode();const e=new _t;return this.asyncQueue.enqueueAndForgetEvenWhileRestricted(async()=>{try{this._onlineComponents&&await this._onlineComponents.terminate(),this._offlineComponents&&await this._offlineComponents.terminate(),this.authCredentials.shutdown(),this.appCheckCredentials.shutdown(),e.resolve()}catch(n){const t=Os(n,"Failed to shutdown persistence");e.reject(t)}}),e.promise}}async function Ju(e,n){e.asyncQueue.verifyOperationInProgress(),Ct("FirestoreClient","Initializing OfflineComponentProvider");const t=e.configuration;await n.initialize(t);let i=t.initialUser;e.setCredentialChangeListener(async e=>{i.isEqual(e)||(await Or(n.localStore,e),i=e)}),n.persistence.setDatabaseDeletedListener(()=>e.terminate()),e._offlineComponents=n}async function Bu(e,n){e.asyncQueue.verifyOperationInProgress();const t=await async function(e){if(!e._offlineComponents)if(e._uninitializedComponentsProvider){Ct("FirestoreClient","Using user provided OfflineComponentProvider");try{await Ju(e,e._uninitializedComponentsProvider._offline)}catch(n){const a=n;if(!("FirebaseError"===(t=a).name?t.code===At.FAILED_PRECONDITION||t.code===At.UNIMPLEMENT
1ED:!("undefined"!=typeof DOMException&&t instanceof DOMException)||22===t.code||20===t.code||11===t.code))throw a;Tt("Error using user provided cache. Falling back to memory cache: "+a),await Ju(e,new _u)}}else Ct("FirestoreClient","Using default OfflineComponentProvider"),await Ju(e,new _u);var t;return e._offlineComponents}(e);Ct("FirestoreClient","Initializing OnlineComponentProvider"),await n.initialize(t,e.configuration),e.setCredentialChangeListener(e=>Fs(n.remoteStore,e)),e.setAppCheckTokenChangeListener((e,t)=>Fs(n.remoteStore,t)),e._onlineComponents=n}async function Ru(e){return e._onlineComponents||(e._uninitializedComponentsProvider?(Ct("FirestoreClient","Using user provided OnlineComponentProvider"),await Bu(e,e._uninitializedComponentsProvider._online)):(Ct("FirestoreClient","Using default OnlineComponentProvider"),await Bu(e,new Iu))),e._onlineComponents}async function Fu(e){const n=await Ru(e),t=n.eventManager;return t.onListen=lu.bind(null,n.syncEngine),t.onUnlisten=du.bind(null,n.syncEngine),t.onFirstRemoteStoreListen=cu.bind(null,n.syncEngine),t.onLastRemoteStoreUnlisten=gu.bind(null,n.syncEngine),t}function Xu(e,n,t={}){const i=new _t;return e.asyncQueue.enqueueAndForget(async()=>function(e,n,t,i,a){const o=new Pu({next:s=>{o.Za(),n.enqueueAndForget(()=>async function(e,n){const t=xt(e),i=n.query;let a=3;const o=t.queries.get(i);if(o){const e=o.j_.indexOf(n);e>=0&&(o.j_.splice(e,1),0===o.j_.length?a=n.J_()?0:1:!o.H_()&&n.J_()&&(a=2))}switch(a){case 0:return t.queries.delete(i),t.onUnlisten(i,!0);case 1:return t.queries.delete(i),t.onUnlisten(i,!1);case 2:return t.onLastRemoteStoreUnlisten(i);default:return}}(e,r));const u=s.docs.has(t);!u&&s.fromCache?a.reject(new Yt(At.UNAVAILABLE,"Failed to get document because the client is offline.")):u&&s.fromCache&&i&&"server"===i.source?a.reject(new Yt(At.UNAVAILABLE,'Failed to get document from server. (However, this document does exist in the local cache. Run again without setting source to "server" to retrieve the cached document.)')):a.resolve(s)},error:e=>a.reject(e)}),r=new tu(wa(t.path),o,{includeMetadataChanges:!0,_a:!0});return async function(n,t){const i=xt(n);let a=3;const o=t.query;let r=i.queries.get(o);r?!r.H_()&&t.J_()&&(a=2):(r=new Ws,a=t.J_()?0:1);try{switch(a){case 0:r.z_=await i.onListen(o,!0);break;case 1:r.z_=await i.onListen(o,!1);break;case 2:await i.onFirstRemoteStoreListen(o)}}catch(e){const i=Os(e,`Initialization of query '${Ea(t.query)}' failed`);return void t.onError(i)}i.queries.set(o,r),r.j_.push(t),t.Z_(i.onlineState),r.z_&&t.X_(r.z_)&&qs(i)}(e,r)}(await Fu(e),e.asyncQueue,n,t,i)),i.promise}function Hu(e){const n={};return void 0!==e.timeoutSeconds&&(n.timeoutSeconds=e.timeoutSeconds),n}const Gu=new Map;function Ou(e){if(!zt.isDocumentKey(e))throw new Yt(At.INVALID_ARGUMENT,`Invalid document reference. Document references must have an even number of segments, but ${e} has ${e.length}.`)}function Qu(e){if(void 0===e)return"undefined";if(null===e)return"null";if("string"==typeof e)return e.length>20&&(e=`${e.substring(0,20)}...`),JSON.stringify(e);if("number"==typeof e||"boolean"==typeof e)return""+e;if("object"==typeof e){if(e instanceof Array)return"an array";{const t=(n=e).constructor?n.constructor.name:null;return t?`a custom ${t} object`:"an object"}}var n;return"function"==typeof e?"a function":kt()}function Ku(e,n){if("_delegate"in e&&(e=e._delegate),!(e instanceof n)){if(n.name===e.constructor.name)throw new Yt(At.INVALID_ARGUMENT,"Type does not match the expected instance. Did you pass a reference from a different Firestore SDK?");{const t=Qu(e);throw new Yt(At.INVALID_ARGUMENT,`Expected type '${n.name}', but it was: ${t}`)}}return e}class ju{constructor(e){var n,t;if(void 0===e.host){if(void 0!==e.ssl)throw new Yt(At.INVALID_ARGUMENT,"Can't provide ssl option if host option is not set");this.host="firestore.googleapis.com",this.ssl=!0}else this.host=e.host,this.ssl=null===(n=e.ssl)||void 0===n||n;if(this.credentials=e.credentials,this.ignoreUndefinedProperties=!!e.ignoreUndefinedProperties,this.localCache=e.localCache,void 0===e.cacheSizeBytes)this.cacheSizeBytes=41943040;else{if(-1!==e.cacheSizeBytes&&e.cacheSizeBytes<1048576)throw new Yt(At.INVA
1LID_ARGUMENT,"cacheSizeBytes must be at least 1048576");this.cacheSizeBytes=e.cacheSizeBytes}(function(e,n,t,i){if(!0===n&&!0===i)throw new Yt(At.INVALID_ARGUMENT,`${e} and ${t} cannot be used together.`)})("experimentalForceLongPolling",e.experimentalForceLongPolling,"experimentalAutoDetectLongPolling",e.experimentalAutoDetectLongPolling),this.experimentalForceLongPolling=!!e.experimentalForceLongPolling,this.experimentalForceLongPolling?this.experimentalAutoDetectLongPolling=!1:void 0===e.experimentalAutoDetectLongPolling?this.experimentalAutoDetectLongPolling=!0:this.experimentalAutoDetectLongPolling=!!e.experimentalAutoDetectLongPolling,this.experimentalLongPollingOptions=Hu(null!==(t=e.experimentalLongPollingOptions)&&void 0!==t?t:{}),function(e){if(void 0!==e.timeoutSeconds){if(isNaN(e.timeoutSeconds))throw new Yt(At.INVALID_ARGUMENT,`invalid long polling timeout: ${e.timeoutSeconds} (must not be NaN)`);if(e.timeoutSeconds<5)throw new Yt(At.INVALID_ARGUMENT,`invalid long polling timeout: ${e.timeoutSeconds} (minimum allowed value is 5)`);if(e.timeoutSeconds>30)throw new Yt(At.INVALID_ARGUMENT,`invalid long polling timeout: ${e.timeoutSeconds} (maximum allowed value is 30)`)}}(this.experimentalLongPollingOptions),this.useFetchStreams=!!e.useFetchStreams}isEqual(e){return this.host===e.host&&this.ssl===e.ssl&&this.credentials===e.credentials&&this.cacheSizeBytes===e.cacheSizeBytes&&this.experimentalForceLongPolling===e.experimentalForceLongPolling&&this.experimentalAutoDetectLongPolling===e.experimentalAutoDetectLongPolling&&(n=this.experimentalLongPollingOptions,t=e.experimentalLongPollingOptions,n.timeoutSeconds===t.timeoutSeconds)&&this.ignoreUndefinedProperties===e.ignoreUndefinedProperties&&this.useFetchStreams===e.useFetchStreams;var n,t}}class Wu{constructor(e,n,t,i){this._authCredentials=e,this._appCheckCredentials=n,this._databaseId=t,this._app=i,this.type="firestore-lite",this._persistenceKey="(lite)",this._settings=new ju({}),this._settingsFrozen=!1,this._terminateTask="notTerminated"}get app(){if(!this._app)throw new Yt(At.FAILED_PRECONDITION,"Firestore was not initialized using the Firebase SDK. 'app' is not available");return this._app}get _initialized(){return this._settingsFrozen}get _terminated(){return"notTerminated"!==this._terminateTask}_setSettings(e){if(this._settingsFrozen)throw new Yt(At.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 ju(e),void 0!==e.credentials&&(this._authCredentials=function(e){if(!e)return new Pt;switch(e.type){case"firstParty":return new Jt(e.sessionIndex||"0",e.iamToken||null,e.authTokenFactory||null);case"provider":return e.client;default:throw new Yt(At.INVALID_ARGUMENT,"makeAuthCredentialsProvider failed due to invalid credential type")}}(e.credentials))}_getSettings(){return this._settings}_freezeSettings(){return this._settingsFrozen=!0,this._settings}_delete(){return"notTerminated"===this._terminateTask&&(this._terminateTask=this._terminate()),this._terminateTask}async _restart(){"notTerminated"===this._terminateTask?await this._terminate():this._terminateTask="notTerminated"}toJSON(){return{app:this._app,databaseId:this._databaseId,settings:this._settings}}_terminate(){return function(e){const n=Gu.get(e);n&&(Ct("ComponentProvider","Removing Datastore"),Gu.delete(e),n.terminate())}(this),Promise.resolve()}}function Uu(e,n,t,i={}){var a;const o=(e=Ku(e,Wu))._getSettings(),r=`${n}:${t}`;if("firestore.googleapis.com"!==o.host&&o.host!==r&&Tt("Host has been set in both settings() and connectFirestoreEmulator(), emulator host will be used."),e._setSettings(Object.assign(Object.assign({},o),{host:r,ssl:!1})),i.mockUserToken){let n,t;if("string"==typeof i.mockUserToken)n=i.mockUserToken,t=wt.MOCK_USER;else{n=function(e,n){if(e.uid)throw new Error('The "uid" field is no longer supported by mockUserToken. Please use "sub" instead for Firebase Auth User ID.');const t=n||"demo-project",i=e.iat||0,a=e.sub||e.user_id;if(!a)throw new Error("mockUserToken must contain 'sub' or 'user_id' field!");const o=Object.assign({iss:`https://securetoken.google.com/${t}`,aud:t,iat:i,exp:i+3600,auth_time:i,sub:a,user_id:a,firebase:{sign_in_provider:"custom",identities:{}}},e);return[he(JSON.stringify({alg:"none",type:"JWT"})),he(JSON.stringify(o)),""].join(".")}(i.mockUserToken,null===(a=e._app)||void 0===a?void 0:a.options.projectId);const o=i.mockUserToken.sub||i.mockUserToken.user_id;
1if(!o)throw new Yt(At.INVALID_ARGUMENT,"mockUserToken must contain 'sub' or 'user_id' field!");t=new wt(o)}e._authCredentials=new Nt(new It(n,t))}}class zu{constructor(e,n,t){this.converter=n,this._query=t,this.type="query",this.firestore=e}withConverter(e){return new zu(this.firestore,e,this._query)}}class $u{constructor(e,n,t){this.converter=n,this._key=t,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 Vu(this.firestore,this.converter,this._key.path.popLast())}withConverter(e){return new $u(this.firestore,e,this._key)}}class Vu extends zu{constructor(e,n,t){super(e,n,wa(t)),this._path=t,this.type="collection"}get id(){return this._query.path.lastSegment()}get path(){return this._query.path.canonicalString()}get parent(){const e=this._path.popLast();return e.isEmpty()?null:new $u(this.firestore,null,new zt(e))}withConverter(e){return new Vu(this.firestore,e,this._path)}}function qu(e,n,...t){if(e=Ae(e),1===arguments.length&&(n=Xt.newId()),function(e,n,t){if(!t)throw new Yt(At.INVALID_ARGUMENT,`Function ${e}() cannot be called with an empty ${n}.`)}("doc","path",n),e instanceof Wu){const i=jt.fromString(n,...t);return Ou(i),new $u(e,null,new zt(i))}{if(!(e instanceof $u||e instanceof Vu))throw new Yt(At.INVALID_ARGUMENT,"Expected first argument to collection() to be a CollectionReference, a DocumentReference or FirebaseFirestore");const i=e._path.child(jt.fromString(n,...t));return Ou(i),new $u(e.firestore,e instanceof Vu?e.converter:null,new zt(i))}}class el{constructor(e=Promise.resolve()){this.Pu=[],this.Iu=!1,this.Tu=[],this.Eu=null,this.du=!1,this.Au=!1,this.Ru=[],this.t_=new us(this,"async_queue_retry"),this.Vu=()=>{const e=rs();e&&Ct("AsyncQueue","Visibility state changed to "+e.visibilityState),this.t_.jo()},this.mu=e;const n=rs();n&&"function"==typeof n.addEventListener&&n.addEventListener("visibilitychange",this.Vu)}get isShuttingDown(){return this.Iu}enqueueAndForget(e){this.enqueue(e)}enqueueAndForgetEvenWhileRestricted(e){this.fu(),this.gu(e)}enterRestrictedMode(e){if(!this.Iu){this.Iu=!0,this.Au=e||!1;const n=rs();n&&"function"==typeof n.removeEventListener&&n.removeEventListener("visibilitychange",this.Vu)}}enqueue(e){if(this.fu(),this.Iu)return new Promise(()=>{});const n=new _t;return this.gu(()=>this.Iu&&this.Au?Promise.resolve():(e().then(n.resolve,n.reject),n.promise)).then(()=>n.promise)}enqueueRetryable(e){this.enqueueAndForget(()=>(this.Pu.push(e),this.pu()))}async pu(){if(0!==this.Pu.length){try{await this.Pu[0](),this.Pu.shift(),this.t_.reset()}catch(e){if(!ii(e))throw e;Ct("AsyncQueue","Operation failed with retryable error: "+e)}this.Pu.length>0&&this.t_.Go(()=>this.pu())}}gu(e){const n=this.mu.then(()=>(this.du=!0,e().catch(e=>{this.Eu=e,this.du=!1;throw Lt("INTERNAL UNHANDLED ERROR: ",function(e){let n=e.message||"";return e.stack&&(n=e.stack.includes(e.message)?e.stack:e.message+"\n"+e.stack),n}(e)),e}).then(e=>(this.du=!1,e))));return this.mu=n,n}enqueueAfterDelay(e,n,t){this.fu(),this.Ru.indexOf(e)>-1&&(n=0);const i=Gs.createAndSchedule(this,e,n,t,e=>this.yu(e));return this.Tu.push(i),i}fu(){this.Eu&&kt()}verifyOperationInProgress(){}async wu(){let e;do{e=this.mu,await e}while(e!==this.mu)}Su(e){for(const n of this.Tu)if(n.timerId===e)return!0;return!1}bu(e){return this.wu().then(()=>{this.Tu.sort((e,n)=>e.targetTimeMs-n.targetTimeMs);for(const n of this.Tu)if(n.skipDelay(),"all"!==e&&n.timerId===e)break;return this.wu()})}Du(e){this.Ru.push(e)}yu(e){const n=this.Tu.indexOf(e);this.Tu.splice(n,1)}}class nl extends Wu{constructor(e,n,t,i){super(e,n,t,i),this.type="firestore",this._queue=new el,this._persistenceKey=(null==i?void 0:i.name)||"[DEFAULT]"}async _terminate(){if(this._firestoreClient){const e=this._firestoreClient.terminate();this._queue=new el(e),this._firestoreClient=void 0,await e}}}function tl(e,n){const t="string"==typeof e?e:"(default)",i=Xn("object"==typeof e?e:jn(),"firestore").getImmediate({identifier:t});if(!i._initialized){const e=(e=>{const n=me(e);
1if(!n)return;const t=n.lastIndexOf(":");if(t<=0||t+1===n.length)throw new Error(`Invalid host ${n} with no separate hostname and port!`);const i=parseInt(n.substring(t+1),10);return"["===n[0]?[n.substring(1,t-1),i]:[n.substring(0,t),i]})("firestore");e&&Uu(i,...e)}return i}function il(e){if(e._terminated)throw new Yt(At.FAILED_PRECONDITION,"The client has already been terminated.");return e._firestoreClient||function(e){var n,t,i;const a=e._freezeSettings(),o=(r=e._databaseId,s=(null===(n=e._app)||void 0===n?void 0:n.options.appId)||"",u=e._persistenceKey,l=a,new Ei(r,s,u,l.host,l.ssl,l.experimentalForceLongPolling,l.experimentalAutoDetectLongPolling,Hu(l.experimentalLongPollingOptions),l.useFetchStreams));var r,s,u,l;e._componentsProvider||(null===(t=a.localCache)||void 0===t?void 0:t._offlineComponentProvider)&&(null===(i=a.localCache)||void 0===i?void 0:i._onlineComponentProvider)&&(e._componentsProvider={_offline:a.localCache._offlineComponentProvider,_online:a.localCache._onlineComponentProvider}),e._firestoreClient=new Zu(e._authCredentials,e._appCheckCredentials,e._queue,o,e._componentsProvider&&function(e){const n=null==e?void 0:e._online.build();return{_offline:null==e?void 0:e._offline.build(n),_online:n}}(e._componentsProvider))}(e),e._firestoreClient}class al{constructor(e){this._byteString=e}static fromBase64String(e){try{return new al(vi.fromBase64String(e))}catch(n){throw new Yt(At.INVALID_ARGUMENT,"Failed to construct data from Base64 string: "+n)}}static fromUint8Array(e){return new al(vi.fromUint8Array(e))}toBase64(){return this._byteString.toBase64()}toUint8Array(){return this._byteString.toUint8Array()}toString(){return"Bytes(base64: "+this.toBase64()+")"}isEqual(e){return this._byteString.isEqual(e._byteString)}}class ol{constructor(...e){for(let n=0;n<e.length;++n)if(0===e[n].length)throw new Yt(At.INVALID_ARGUMENT,"Invalid field name at argument $(i + 1). Field names must not be empty.");this._internalPath=new Ut(e)}isEqual(e){return this._internalPath.isEqual(e._internalPath)}}class rl{constructor(e){this._methodName=e}}class sl{constructor(e,n){if(!isFinite(e)||e<-90||e>90)throw new Yt(At.INVALID_ARGUMENT,"Latitude must be a number between -90 and 90, but was: "+e);if(!isFinite(n)||n<-180||n>180)throw new Yt(At.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}toJSON(){return{latitude:this._lat,longitude:this._long}}_compareTo(e){return Ht(this._lat,e._lat)||Ht(this._long,e._long)}}class ul{constructor(e){this._values=(e||[]).map(e=>e)}toArray(){return this._values.map(e=>e)}isEqual(e){return function(e,n){if(e.length!==n.length)return!1;for(let t=0;t<e.length;++t)if(e[t]!==n[t])return!1;return!0}(this._values,e._values)}}const ll=/^__.*__$/;class cl{constructor(e,n,t){this.data=e,this.fieldMask=n,this.fieldTransforms=t}toMutation(e,n){return null!==this.fieldMask?new po(e,this.data,this.fieldMask,n,this.fieldTransforms):new go(e,this.data,n,this.fieldTransforms)}}class hl{constructor(e,n,t){this.data=e,this.fieldMask=n,this.fieldTransforms=t}toMutation(e,n){return new po(e,this.data,this.fieldMask,n,this.fieldTransforms)}}function dl(e){switch(e){case 0:case 2:case 1:return!0;case 3:case 4:return!1;default:throw kt()}}class gl{constructor(e,n,t,i,a,o){this.settings=e,this.databaseId=n,this.serializer=t,this.ignoreUndefinedProperties=i,void 0===a&&this.vu(),this.fieldTransforms=a||[],this.fieldMask=o||[]}get path(){return this.settings.path}get Cu(){return this.settings.Cu}Fu(e){return new gl(Object.assign(Object.assign({},this.settings),e),this.databaseId,this.serializer,this.ignoreUndefinedProperties,this.fieldTransforms,this.fieldMask)}Mu(e){var n;const t=null===(n=this.path)||void 0===n?void 0:n.child(e),i=this.Fu({path:t,xu:!1});return i.Ou(e),i}Nu(e){var n;const t=null===(n=this.path)||void 0===n?void 0:n.child(e),i=this.Fu({path:t,xu:!1});return i.vu(),i}Lu(e){return this.Fu({path:void 0,xu:!0})}Bu(e){return El(e,this.settings.methodName,this.settings.ku||!1,this.path,this.settings.qu)}contains(e){return void 0!==this.fieldMask.find(n=>e.isPrefixOf(n))||void 0!==this.fieldTransforms.find(n=>e.isPrefixOf(n.field))}vu(){if(this.path)for(let e=0;e<this.path.length;e++)this.Ou(this.path.get(e))}Ou(e){if(0===e.length)throw this.Bu("Document fields must not be empty");if(dl(this.Cu)&&ll.test(e))throw this.Bu('Document fields cannot begin and end with "__"')}}class pl{constructor(e,n,t){this.databaseId=e,this.ignoreUndefinedProperties=n,this.serializer
1=t||ss(e)}Qu(e,n,t,i=!1){return new gl({Cu:e,methodName:n,qu:t,path:Ut.emptyPath(),xu:!1,ku:i},this.databaseId,this.serializer,this.ignoreUndefinedProperties)}}function ml(e){const n=e._freezeSettings(),t=ss(e._databaseId);return new pl(e._databaseId,!!n.ignoreUndefinedProperties,t)}function fl(e,n,t,i,a,o={}){const r=e.Qu(o.merge||o.mergeFields?2:0,n,t,a);Sl("Data must be an object, but it was:",r,i);const s=yl(i,r);let u,l;if(o.merge)u=new mi(r.fieldMask),l=r.fieldTransforms;else if(o.mergeFields){const e=[];for(const i of o.mergeFields){const a=Cl(n,i,t);if(!r.contains(a))throw new Yt(At.INVALID_ARGUMENT,`Field '${a}' is specified in your field mask but missing from your input data.`);kl(e,a)||e.push(a)}u=new mi(e),l=r.fieldTransforms.filter(e=>u.covers(e.field))}else u=null,l=r.fieldTransforms;return new cl(new Hi(s),u,l)}class vl extends rl{_toFieldTransform(e){if(2!==e.Cu)throw 1===e.Cu?e.Bu(`${this._methodName}() can only appear at the top level of your update data`):e.Bu(`${this._methodName}() cannot be used with set() unless you pass {merge:true}`);return e.fieldMask.push(e.path),null}isEqual(e){return e instanceof vl}}function wl(e,n){if(bl(e=Ae(e)))return Sl("Unsupported field value:",n,e),yl(e,n);if(e instanceof rl)return function(e,n){if(!dl(n.Cu))throw n.Bu(`${e._methodName}() can only be used with update() and set()`);if(!n.path)throw n.Bu(`${e._methodName}() is not currently supported inside arrays`);const t=e._toFieldTransform(n);t&&n.fieldTransforms.push(t)}(e,n),null;if(void 0===e&&n.ignoreUndefinedProperties)return null;if(n.path&&n.fieldMask.push(n.path),e instanceof Array){if(n.settings.xu&&4!==n.Cu)throw n.Bu("Nested arrays are not supported");return function(e,n){const t=[];let i=0;for(const a of e){let e=wl(a,n.Lu(i));null==e&&(e={nullValue:"NULL_VALUE"}),t.push(e),i++}return{arrayValue:{values:t}}}(e,n)}return function(e,n){if(null===(e=Ae(e)))return{nullValue:"NULL_VALUE"};if("number"==typeof e)return Oa(n.serializer,e);if("boolean"==typeof e)return{booleanValue:e};if("string"==typeof e)return{stringValue:e};if(e instanceof Date){const t=Ot.fromDate(e);return{timestampValue:jo(n.serializer,t)}}if(e instanceof Ot){const t=new Ot(e.seconds,1e3*Math.floor(e.nanoseconds/1e3));return{timestampValue:jo(n.serializer,t)}}if(e instanceof sl)return{geoPointValue:{latitude:e.latitude,longitude:e.longitude}};if(e instanceof al)return{bytesValue:Wo(n.serializer,e._byteString)};if(e instanceof $u){const t=n.databaseId,i=e.firestore._databaseId;if(!i.isEqual(t))throw n.Bu(`Document reference is for database ${i.projectId}/${i.database} but should be for database ${t.projectId}/${t.database}`);return{referenceValue:$o(e.firestore._databaseId||n.databaseId,e._key.path)}}if(e instanceof ul)return t=n,{mapValue:{fields:{__type__:{stringValue:"__vector__"},value:{arrayValue:{values:e.toArray().map(e=>{if("number"!=typeof e)throw t.Bu("VectorValues must only contain numeric values.");return Ha(t.serializer,e)})}}}}};var t;throw n.Bu(`Unsupported field value: ${Qu(e)}`)}(e,n)}function yl(e,n){const t={};return li(e)?n.path&&n.path.length>0&&n.fieldMask.push(n.path):ui(e,(e,i)=>{const a=wl(i,n.Mu(e));null!=a&&(t[e]=a)}),{mapValue:{fields:t}}}function bl(e){return!("object"!=typeof e||null===e||e instanceof Array||e instanceof Date||e instanceof Ot||e instanceof sl||e instanceof al||e instanceof $u||e instanceof rl||e instanceof ul)}function Sl(e,n,t){if(!bl(t)||("object"!=typeof(i=t)||null===i||Object.getPrototypeOf(i)!==Object.prototype&&null!==Object.getPrototypeOf(i))){const i=Qu(t);throw"an object"===i?n.Bu(e+" a custom object"):n.Bu(e+" "+i)}var i}function Cl(e,n,t){if((n=Ae(n))instanceof ol)return n._internalPath;if("string"==typeof n)return Tl(e,n);throw El("Field path arguments must be of type string or ",e,!1,void 0,t)}const Ll=new RegExp("[~\\*/\\[\\]]");function Tl(e,n,t){if(n.search(Ll)>=0)throw El(`Invalid field path (${n}). Paths must not contain '~', '*', '/', '[', or ']'`,e,!1,void 0,t);try{return new ol(...n.split("."))._internalPath}catch(i){throw El(`Invalid field path (${n}). Paths must not be empty, begin with '.', end with '.', or contain '..'`,e,!1,void 0,t)}}function El(e,n,t,i,a){const o=i&&!i.isEmpty(),r=void 0!==a;let s=`Function ${n}
1() called with invalid data`;t&&(s+=" (via `toFirestore()`)"),s+=". ";let u="";return(o||r)&&(u+=" (found",o&&(u+=` in field ${i}`),r&&(u+=` in document ${a}`),u+=")"),new Yt(At.INVALID_ARGUMENT,s+e+u)}function kl(e,n){return e.some(e=>e.isEqual(n))}class Dl{constructor(e,n,t,i,a){this._firestore=e,this._userDataWriter=n,this._key=t,this._document=i,this._converter=a}get id(){return this._key.path.lastSegment()}get ref(){return new $u(this._firestore,this._converter,this._key)}exists(){return null!==this._document}data(){if(this._document){if(this._converter){const e=new xl(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){const n=this._document.data.field(Al("DocumentSnapshot.get",e));if(null!==n)return this._userDataWriter.convertValue(n)}}}class xl extends Dl{data(){return super.data()}}function Al(e,n){return"string"==typeof n?Tl(e,n):n instanceof ol?n._internalPath:n._delegate._internalPath}class Yl{convertValue(e,n="none"){switch(xi(e)){case 0:return null;case 1:return e.booleanValue;case 2:return bi(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(Si(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 kt()}}convertObject(e,n){return this.convertObjectMap(e.fields,n)}convertObjectMap(e,n="none"){const t={};return ui(e,(e,i)=>{t[e]=this.convertValue(i,n)}),t}convertVectorValue(e){var n,t,i;const a=null===(i=null===(t=null===(n=e.fields)||void 0===n?void 0:n.value.arrayValue)||void 0===t?void 0:t.values)||void 0===i?void 0:i.map(e=>bi(e.doubleValue));return new ul(a)}convertGeoPoint(e){return new sl(bi(e.latitude),bi(e.longitude))}convertArray(e,n){return(e.values||[]).map(e=>this.convertValue(e,n))}convertServerTimestamp(e,n){switch(n){case"previous":const t=Li(e);return null==t?null:this.convertValue(t,n);case"estimate":return this.convertTimestamp(Ti(e));default:return null}}convertTimestamp(e){const n=yi(e);return new Ot(n.seconds,n.nanos)}convertDocumentKey(e,n){const t=jt.fromString(e);Dt(wr(t));const i=new ki(t.get(1),t.get(3)),a=new zt(t.popFirst(5));return i.isEqual(n)||Lt(`Document ${a} 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.`),a}}function _l(e,n,t){let i;return i=e?t&&(t.merge||t.mergeFields)?e.toFirestore(n,t):e.toFirestore(n):n,i}class Il extends Yl{constructor(e){super(),this.firestore=e}convertBytes(e){return new al(e)}convertReference(e){const n=this.convertDocumentKey(e,this.firestore._databaseId);return new $u(this.firestore,null,n)}}class Pl{constructor(e,n){this.hasPendingWrites=e,this.fromCache=n}isEqual(e){return this.hasPendingWrites===e.hasPendingWrites&&this.fromCache===e.fromCache}}class Nl extends Dl{constructor(e,n,t,i,a,o){super(e,n,t,i,o),this._firestore=e,this._firestoreImpl=e,this.metadata=a}exists(){return super.exists()}data(e={}){if(this._document){if(this._converter){const n=new Ml(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){const t=this._document.data.field(Al("DocumentSnapshot.get",e));if(null!==t)return this._userDataWriter.convertValue(t,n.serverTimestamps)}}}class Ml extends Nl{data(e={}){return super.data(e)}}function Zl(e){e=Ku(e,$u);const n=Ku(e.firestore,nl);return Xu(il(n),e._key).then(t=>function(e,n,t){const i=t.docs.get(n._key),a=new Jl(e);return new Nl(e,a,n._key,i,new Pl(t.hasPendingWrites,t.fromCache),n.converter)}(n,e,t))}class Jl extends Yl{constructor(e){super(),this.firestore=e}convertBytes(e){return new al(e)}convertReference(e){const n=this.convertDocumentKey(e,this.firestore._databaseId);
1return new $u(this.firestore,null,n)}}function Bl(e,n,t){e=Ku(e,$u);const i=Ku(e.firestore,nl),a=_l(e.converter,n,t);return function(e,n){return function(e,n){const t=new _t;return e.asyncQueue.enqueueAndForget(async()=>pu(await function(e){return Ru(e).then(e=>e.syncEngine)}(e),n,t)),t.promise}(il(e),n)}(i,[fl(ml(i),"setDoc",e._key,a,null!==e.converter,t).toMutation(e._key,ao.none())])}const Rl={maxAttempts:5};function Fl(e,n){if((e=Ae(e)).firestore!==n)throw new Yt(At.INVALID_ARGUMENT,"Provided document reference is from a different Firestore instance.");return e}class Xl extends class{constructor(e,n){this._firestore=e,this._transaction=n,this._dataReader=ml(e)}get(e){const n=Fl(e,this._firestore),t=new Il(this._firestore);return this._transaction.lookup([n._key]).then(e=>{if(!e||1!==e.length)return kt();const i=e[0];if(i.isFoundDocument())return new Dl(this._firestore,t,i.key,i,n.converter);if(i.isNoDocument())return new Dl(this._firestore,t,n._key,null,n.converter);throw kt()})}set(e,n,t){const i=Fl(e,this._firestore),a=_l(i.converter,n,t),o=fl(this._dataReader,"Transaction.set",i._key,a,null!==i.converter,t);return this._transaction.set(i._key,o),this}update(e,n,t,...i){const a=Fl(e,this._firestore);let o;return o="string"==typeof(n=Ae(n))||n instanceof ol?function(e,n,t,i,a,o){const r=e.Qu(1,n,t),s=[Cl(n,i,t)],u=[a];if(o.length%2!=0)throw new Yt(At.INVALID_ARGUMENT,`Function ${n}() needs to be called with an even number of arguments that alternate between field names and values.`);for(let d=0;d<o.length;d+=2)s.push(Cl(n,o[d])),u.push(o[d+1]);const l=[],c=Hi.empty();for(let d=s.length-1;d>=0;--d)if(!kl(l,s[d])){const e=s[d];let n=u[d];n=Ae(n);const t=r.Nu(e);if(n instanceof vl)l.push(e);else{const i=wl(n,t);null!=i&&(l.push(e),c.set(e,i))}}const h=new mi(l);return new hl(c,h,r.fieldTransforms)}(this._dataReader,"Transaction.update",a._key,n,t,i):function(e,n,t,i){const a=e.Qu(1,n,t);Sl("Data must be an object, but it was:",a,i);const o=[],r=Hi.empty();ui(i,(e,i)=>{const s=Tl(n,e,t);i=Ae(i);const u=a.Nu(s);if(i instanceof vl)o.push(s);else{const e=wl(i,u);null!=e&&(o.push(s),r.set(s,e))}});const s=new mi(o);return new hl(r,s,a.fieldTransforms)}(this._dataReader,"Transaction.update",a._key,n),this._transaction.update(a._key,o),this}delete(e){const n=Fl(e,this._firestore);return this._transaction.delete(n._key),this}}{constructor(e,n){super(e,n),this._firestore=e}get(e){const n=Fl(e,this._firestore),t=new Jl(this._firestore);return super.get(e).then(e=>new Nl(this._firestore,t,n._key,e._document,new Pl(!1,!1),n.converter))}}function Hl(e,n,t){e=Ku(e,nl);const i=Object.assign(Object.assign({},Rl),t);return function(e){if(e.maxAttempts<1)throw new Yt(At.INVALID_ARGUMENT,"Max attempts must be at least 1")}(i),function(e,n,t){const i=new _t;return e.asyncQueue.enqueueAndForget(async()=>{const a=await function(e){return Ru(e).then(e=>e.datastore)}(e);new Mu(e.asyncQueue,a,t,n,i).au()}),i.promise}(il(e),t=>n(new Xl(e,t)),i)}function Gl(e,n){var t={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&n.indexOf(i)<0&&(t[i]=e[i]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(i=Object.getOwnPropertySymbols(e);a<i.length;a++)n.indexOf(i[a])<0&&Object.prototype.propertyIsEnumerable.call(e,i[a])&&(t[i[a]]=e[i[a]])}return t}function Ol(){return{"dependent-sdk-initialized-before-auth":"Another Firebase SDK was initialized and is trying to use Auth before Auth is initialized. Please be sure to call `initializeAuth` or `getAuth` before starting any other Firebase SDK."}}!function(e,n=!0){yt=Qn,Fn(new Ye("firestore",(e,{instanceIdentifier:t,options:i})=>{const a=e.getProvider("app").getImmediate(),o=new nl(new Mt(e.getProvider("auth-internal")),new Rt(e.getProvider("app-check-internal")),function(e,n){if(!Object.prototype.hasOwnProperty.apply(e.options,["projectId"]))throw new Yt(At.INVALID_ARGUMENT,'"projectId" not provided in firebase.initializeApp.');return new ki(e.options.projectId,n)}(a,t),a);return i=Object.assign({useFetchStreams:n},i),o._setSettings(i),o},"PUBLIC").setMultipleInstances(!0)),Wn(vt,"4.7.3",e),Wn(vt,"4.7.3","esm2017")}(),"function"==typeof SuppressedError&&SuppressedError;const Ql=Ol,Kl=new Ce("auth","Firebase",{"dependent-sdk-initialized-before-auth":"Another Firebase SDK was initialized and is trying to use Auth before Auth is initialized. Please be sure to call `initializeAuth` or `getAuth` before starting any other Firebase SDK."}),jl=new Fe("@firebase/auth");function Wl(e,...n){jl.logLevel<=Ne.ERROR&&jl.error(`Auth (${Qn}): ${e}`,...n)}function Ul(e,...n){throw ec(e,...n)}function zl(e,...n){return ec(e,...n)}function $l(e,n,t){const i=Object.assign(Object.assign({},Ql()),{[n]:t});
vendor: 4,991 bytes, line 1
1return new Ce("auth","Firebase",i).create(n,{appName:e.name})}function Vl(e){return $l(e,"operation-not-supported-in-this-environment","Operations that alter the current user are not supported in conjunction with FirebaseServerApp")}function ql(e,n,t){if(!(n instanceof t))throw t.name!==n.constructor.name&&Ul(e,"argument-error"),$l(e,"argument-error",`Type of ${n.constructor.name} does not match expected instance.Did you pass a reference from a different Auth SDK?`)}function ec(e,...n){if("string"!=typeof e){const t=n[0],i=[...n.slice(1)];return i[0]&&(i[0].appName=e.name),e._errorFactory.create(t,...i)}return Kl.create(e,...n)}function nc(e,n,...t){if(!e)throw ec(n,...t)}function tc(e){const n="INTERNAL ASSERTION FAILED: "+e;throw Wl(n),new Error(n)}function ic(e,n){e||tc(n)}function ac(){var e;return"undefined"!=typeof self&&(null===(e=self.location)||void 0===e?void 0:e.href)||""}function oc(){var e;return"undefined"!=typeof self&&(null===(e=self.location)||void 0===e?void 0:e.protocol)||null}function rc(){return"undefined"==typeof navigator||!navigator||!("onLine"in navigator)||"boolean"!=typeof navigator.onLine||"http:"!==oc()&&"https:"!==oc()&&!function(){const e="object"==typeof chrome?chrome.runtime:"object"==typeof browser?browser.runtime:void 0;return"object"==typeof e&&void 0!==e.id}()&&!("connection"in navigator)||navigator.onLine}class sc{constructor(e,n){this.shortDelay=e,this.longDelay=n,ic(n>e,"Short delay should be less than long delay!"),this.isMobile="undefined"!=typeof window&&!!(window.cordova||window.phonegap||window.PhoneGap)&&/ios|iphone|ipod|ipad|android|blackberry|iemobile/i.test(ye())||"object"==typeof navigator&&"ReactNative"===navigator.product}get(){return rc()?this.isMobile?this.longDelay:this.shortDelay:Math.min(5e3,this.shortDelay)}}function uc(e,n){ic(e.emulator,"Emulator should always be set here");const{url:t}=e.emulator;return n?`${t}${n.startsWith("/")?n.slice(1):n}`:t}class lc{static initialize(e,n,t){this.fetchImpl=e,n&&(this.headersImpl=n),t&&(this.responseImpl=t)}static fetch(){return this.fetchImpl?this.fetchImpl:"undefined"!=typeof self&&"fetch"in self?self.fetch:"undefined"!=typeof globalThis&&globalThis.fetch?globalThis.fetch:"undefined"!=typeof fetch?fetch:void tc("Could not find fetch implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}static headers(){return this.headersImpl?this.headersImpl:"undefined"!=typeof self&&"Headers"in self?self.Headers:"undefined"!=typeof globalThis&&globalThis.Headers?globalThis.Headers:"undefined"!=typeof Headers?Headers:void tc("Could not find Headers implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}static response(){return this.responseImpl?this.responseImpl:"undefined"!=typeof self&&"Response"in self?self.Response:"undefined"!=typeof globalThis&&globalThis.Response?globalThis.Response:"undefined"!=typeof Response?Response:void tc("Could not find Response implementation, make sure you call FetchProvider.initialize() with an appropriate polyfill")}}const cc={CREDENTIAL_MISMATCH:"custom-token-mismatch",MISSING_CUSTOM_TOKEN:"internal-error",INVALID_IDENTIFIER:"invalid-email",MISSING_CONTINUE_URI:"internal-error",INVALID_PASSWORD:"wrong-password",MISSING_PASSWORD:"missing-password",INVALID_LOGIN_CREDENTIALS:"invalid-credential",EMAIL_EXISTS:"email-already-in-use",PASSWORD_LOGIN_DISABLED:"operation-not-allowed",INVALID_IDP_RESPONSE:"invalid-credential",INVALID_PENDING_TOKEN:"invalid-credential",FEDERATED_USER_ID_ALREADY_LINKED:"credential-already-in-use",MISSING_REQ_TYPE:"internal-error",EMAIL_NOT_FOUND:"user-not-found",RESET_PASSWORD_EXCEED_LIMIT:"too-many-requests",EXPIRED_OOB_CODE:"expired-action-code",INVALID_OOB_CODE:"invalid-action-code",MISSING_OOB_CODE:"internal-error",CREDENTIAL_TOO_OLD_LOGIN_AGAIN:"requires-recent-login",INVALID_ID_TOKEN:"invalid-user-token",TOKEN_EXPIRED:"user-token-expired",USER_NOT_FOUND:"user-token-expired",TOO_MANY_ATTEMPTS_TRY_LATER:"too-many-requests",PASSWORD_DOES_NOT_MEET_REQUIREMENTS:"password-does-not-meet-requirements",INVALID_CODE:"invalid-verification-code",INVALID_SESSION_INFO:"invalid-verification-id",INVALID_TEMPORARY_PROOF:"invalid-credential",MISSING_SESSION_INFO:"missing-verification-id",SESSION_EXPIRED:"code-expired",MISSING_ANDROID_PACKAGE_NAME:"missing-android-pkg-name",UNAUTHORIZED_DOMAIN:"unauthorized-continue-uri",INVALID_OAUTH_CLIENT_ID:"invalid-oauth-client-id",ADMIN_ONLY_OPERATION:"admin-restricted-operation",INVALID_MFA_PENDING_CREDENTIAL:"invalid-multi-factor-session",MFA_ENROLLMENT_NOT_FOUND:"multi-factor-info-not-found",MISSING_MFA_ENROLLMENT_ID:"missing-multi-factor-info",MISSING_MFA_PENDING_CREDENTIAL:"missing-multi-factor-session",SECOND_FACTOR_EXISTS:"second-factor-already-in-use",SECOND_FACTOR_LIMIT_EXCEEDED:"maximum-second-factor-count-exceeded",BLOCKING_FUNCTION_ERROR_RESPONSE:"internal-error",RECAPTCHA_NOT_ENABLED:"recaptcha-not-enabled",MISSING_RECAPTCHA_TOKEN:"missing-rec
1aptcha-token",INVALID_RECAPTCHA_TOKEN:"invalid-recaptcha-token",INVALID_RECAPTCHA_ACTION:"invalid-recaptcha-action",MISSING_CLIENT_TYPE:"missing-client-type",MISSING_RECAPTCHA_VERSION:"missing-recaptcha-version",INVALID_RECAPTCHA_VERSION:"invalid-recaptcha-version",INVALID_REQ_TYPE:"invalid-req-type"},hc=new sc(3e4,6e4);function dc(e,n){return e.tenantId&&!n.tenantId?Object.assign(Object.assign({},n),{tenantId:e.tenantId}):n}async function gc(e,n,t,i,a={}){return pc(e,a,async()=>{let a={},o={};i&&("GET"===n?o=i:a={body:JSON.stringify(i)});const r=ke(Object.assign({key:e.config.apiKey},o)).slice(1),s=await e._getAdditionalHeaders();s["Content-Type"]="application/json",e.languageCode&&(s["X-Firebase-Locale"]=e.languageCode);const u=Object.assign({method:n,headers:s},a);return"undefined"!=typeof navigator&&"Cloudflare-Workers"===navigator.userAgent||(u.referrerPolicy="no-referrer"),lc.fetch()(fc(e,e.config.apiHost,t,r),u)})}async function pc(e,n,t){e._canInitEmulator=!1;const i=Object.assign(Object.assign({},cc),n);try{const n=new vc(e),a=await Promise.race([t(),n.promise]);n.clearNetworkTimeout();const o=await a.json();if("needConfirmation"in o)throw wc(e,"account-exists-with-different-credential",o);if(a.ok&&!("errorMessage"in o))return o;{const n=a.ok?o.errorMessage:o.error.message,[t,r]=n.split(" : ");if("FEDERATED_USER_ID_ALREADY_LINKED"===t)throw wc(e,"credential-already-in-use",o);if("EMAIL_EXISTS"===t)throw wc(e,"email-already-in-use",o);if("USER_DISABLED"===t)throw wc(e,"user-disabled",o);const s=i[t]||t.toLowerCase().replace(/[_\s]+/g,"-");if(r)throw $l(e,s,r);Ul(e,s)}}catch(a){if(a instanceof Se)throw a;Ul(e,"network-request-failed",{message:String(a)})}}async function mc(e,n,t,i,a={}){const o=await gc(e,n,t,i,a);return"mfaPendingCredential"in o&&Ul(e,"multi-factor-auth-required",{_serverResponse:o}),o}function fc(e,n,t,i){const a=`${n}${t}?${i}`;return e.config.emulator?uc(e.config,a):`${e.config.apiScheme}://${a}`}class vc{constructor(e){this.auth=e,this.timer=null,this.promise=new Promise((e,n)=>{this.timer=setTimeout(()=>n(zl(this.auth,"network-request-failed")),hc.get())})}clearNetworkTimeout(){clearTimeout(this.timer)}}function wc(e,n,t){const i={appName:e.name};t.email&&(i.email=t.email),t.phoneNumber&&(i.phoneNumber=t.phoneNumber);const a=zl(e,n,i);return a.customData._tokenResponse=t,a}async function yc(e,n){return gc(e,"POST","/v1/accounts:lookup",n)}function bc(e){if(e)try{const n=new Date(Number(e));if(!isNaN(n.getTime()))return n.toUTCString()}catch(n){}}function Sc(e){return 1e3*Number(e)}function Cc(e){const[n,t,i]=e.split(".");if(void 0===n||void 0===t||void 0===i)return Wl("JWT malformed, contained fewer than 3 sections"),null;try{const e=de(t);return e?JSON.parse(e):(Wl("Failed to decode base64 JWT payload"),null)}catch(a){return Wl("Caught error parsing JWT payload as JSON",null==a?void 0:a.toString()),null}}function Lc(e){const n=Cc(e);return nc(n,"internal-error"),nc(void 0!==n.exp,"internal-error"),nc(void 0!==n.iat,"internal-error"),Number(n.exp)-Number(n.iat)}async function Tc(e,n,t=!1){if(t)return n;try{return await n}catch(i){throw i instanceof Se&&function({code:e}){return"auth/user-disabled"===e||"auth/user-token-expired"===e}(i)&&e.auth.currentUser===e&&await e.auth.signOut(),i}}class Ec{constructor(e){this.user=e,this.isRunning=!1,this.timerId=null,this.errorBackoff=3e4}_start(){this.isRunning||(this.isRunning=!0,this.schedule())}_stop(){this.isRunning&&(this.isRunning=!1,null!==this.timerId&&clearTimeout(this.timerId))}getInterval(e){var n;if(e){const e=this.errorBackoff;return this.errorBackoff=Math.min(2*this.errorBackoff,96e4),e}{this.errorBackoff=3e4;const e=(null!==(n=this.user.stsTokenManager.expirationTime)&&void 0!==n?n:0)-Date.now()-3e5;return Math.max(0,e)}}schedule(e=!1){if(!this.isRunning)return;const n=this.getInterval(e);this.timerId=setTimeout(async()=>{await this.iteration()},n)}async iteration(){try{await this.user.getIdToken(!0)}catch(e){return void("auth/network-request-failed"===(null==e?void 0:e.code)&&this.schedule(!0))}this.schedule()}}class kc{constructor(e,n){this.createdAt=e,this.lastLoginAt=n,this._initializeTime()}_initializeTime(){this.lastSignInTime=bc(this.lastLoginAt),this.creationTime=bc(this.createdAt)}_copy(e){this.createdAt=e.createdAt,this.lastLoginAt=e.lastLoginAt,this._initializeTime()}toJSON(){return{createdAt:this.createdAt,lastLoginAt:this.lastLoginAt}}}async function Dc(e){var n;const t=e.auth,i=await e.getIdToken(),a=await Tc(e,yc(t,{idToken:i}));nc(null==a?void 0:a.users.length,t,"internal-error");const o=a.users[0];e._notifyReloadListener(o);const r=(null===(n=o.providerUserInfo)||void 0===n?void 0:n.length)?xc(o.providerUserInfo):[],s=(u=e.providerData,l=r,[...u.filter(e=>!l.some(n=>n.providerId===e.providerId)),...l]);var u,l;const c=e.isAnonymous,h=!(e.email&&o.passwordHash||(null==s?void 0:s.length)),d=!!c&&h,g={uid:o.localId,displayName:o.displayName||null,photoURL:o.photoUrl||null,email:o.email||null,emailVerified:o.emailVerified||!1,phoneNumber:o.phoneNumber||null,tenantId:o.tenantId||null,providerData:s,metadata:new kc(o.createdAt,o.lastLoginAt),isAnonymous:d};Object.assign(e,g)}function xc(e){return e.map(e=>{var{providerId:n}=e,t=Gl(e,["providerId"]);
vendor: 13,297 bytes, line 1
1return{providerId:n,uid:t.rawId||"",displayName:t.displayName||null,email:t.email||null,phoneNumber:t.phoneNumber||null,photoURL:t.photoUrl||null}})}class Ac{constructor(){this.refreshToken=null,this.accessToken=null,this.expirationTime=null}get isExpired(){return!this.expirationTime||Date.now()>this.expirationTime-3e4}updateFromServerResponse(e){nc(e.idToken,"internal-error"),nc(void 0!==e.idToken,"internal-error"),nc(void 0!==e.refreshToken,"internal-error");const n="expiresIn"in e&&void 0!==e.expiresIn?Number(e.expiresIn):Lc(e.idToken);this.updateTokensAndExpiration(e.idToken,e.refreshToken,n)}updateFromIdToken(e){nc(0!==e.length,"internal-error");const n=Lc(e);this.updateTokensAndExpiration(e,null,n)}async getToken(e,n=!1){return n||!this.accessToken||this.isExpired?(nc(this.refreshToken,e,"user-token-expired"),this.refreshToken?(await this.refresh(e,this.refreshToken),this.accessToken):null):this.accessToken}clearRefreshToken(){this.refreshToken=null}async refresh(e,n){const{accessToken:t,refreshToken:i,expiresIn:a}=await async function(e,n){const t=await pc(e,{},async()=>{const t=ke({grant_type:"refresh_token",refresh_token:n}).slice(1),{tokenApiHost:i,apiKey:a}=e.config,o=fc(e,i,"/v1/token",`key=${a}`),r=await e._getAdditionalHeaders();return r["Content-Type"]="application/x-www-form-urlencoded",lc.fetch()(o,{method:"POST",headers:r,body:t})});return{accessToken:t.access_token,expiresIn:t.expires_in,refreshToken:t.refresh_token}}(e,n);this.updateTokensAndExpiration(t,i,Number(a))}updateTokensAndExpiration(e,n,t){this.refreshToken=n||null,this.accessToken=e||null,this.expirationTime=Date.now()+1e3*t}static fromJSON(e,n){const{refreshToken:t,accessToken:i,expirationTime:a}=n,o=new Ac;return t&&(nc("string"==typeof t,"internal-error",{appName:e}),o.refreshToken=t),i&&(nc("string"==typeof i,"internal-error",{appName:e}),o.accessToken=i),a&&(nc("number"==typeof a,"internal-error",{appName:e}),o.expirationTime=a),o}toJSON(){return{refreshToken:this.refreshToken,accessToken:this.accessToken,expirationTime:this.expirationTime}}_assign(e){this.accessToken=e.accessToken,this.refreshToken=e.refreshToken,this.expirationTime=e.expirationTime}_clone(){return Object.assign(new Ac,this.toJSON())}_performRefresh(){return tc("not implemented")}}function Yc(e,n){nc("string"==typeof e||void 0===e,"internal-error",{appName:n})}class _c{constructor(e){var{uid:n,auth:t,stsTokenManager:i}=e,a=Gl(e,["uid","auth","stsTokenManager"]);this.providerId="firebase",this.proactiveRefresh=new Ec(this),this.reloadUserInfo=null,this.reloadListener=null,this.uid=n,this.auth=t,this.stsTokenManager=i,this.accessToken=i.accessToken,this.displayName=a.displayName||null,this.email=a.email||null,this.emailVerified=a.emailVerified||!1,this.phoneNumber=a.phoneNumber||null,this.photoURL=a.photoURL||null,this.isAnonymous=a.isAnonymous||!1,this.tenantId=a.tenantId||null,this.providerData=a.providerData?[...a.providerData]:[],this.metadata=new kc(a.createdAt||void 0,a.lastLoginAt||void 0)}async getIdToken(e){const n=await Tc(this,this.stsTokenManager.getToken(this.auth,e));return nc(n,this.auth,"internal-error"),this.accessToken!==n&&(this.accessToken=n,await this.auth._persistUserIfCurrent(this),this.auth._notifyListenersIfCurrent(this)),n}getIdTokenResult(e){return async function(e,n=!1){const t=Ae(e),i=await t.getIdToken(n),a=Cc(i);nc(a&&a.exp&&a.auth_time&&a.iat,t.auth,"internal-error");const o="object"==typeof a.firebase?a.firebase:void 0,r=null==o?void 0:o.sign_in_provider;return{claims:a,token:i,authTime:bc(Sc(a.auth_time)),issuedAtTime:bc(Sc(a.iat)),expirationTime:bc(Sc(a.exp)),signInProvider:r||null,signInSecondFactor:(null==o?void 0:o.sign_in_second_factor)||null}}(this,e)}reload(){return async function(e){const n=Ae(e);await Dc(n),await n.auth._persistUserIfCurrent(n),n.auth._notifyListenersIfCurrent(n)}(this)}_assign(e){this!==e&&(nc(this.uid===e.uid,this.auth,"internal-error"),this.displayName=e.displayName,this.photoURL=e.photoURL,this.email=e.email,this.emailVerified=e.emailVerified,this.phoneNumber=e.phoneNumber,this.isAnonymous=e.isAnonymous,this.tenantId=e.tenantId,this.providerData=e.providerData.map(e=>Object.assign({},e)),this.metadata._copy(e.metadata),this.stsTokenManager._assign(e.stsTokenManager))}_clone(e){const n=new _c(Object.assign(Object.assign({},this),{auth:e,stsTokenManager:this.stsTokenManager._clone()}));return n.metadata._copy(this.metadata),n}_onReload(e){nc(!this.reloadListener,this.auth,"internal-error"),this.reloadListener=e,this.reloadUserInfo&&(this._notifyReloadListener(this.reloadUserInfo),this.reloadUserInfo=null)}_notifyReloadListener(e){this.reloadListener?this.reloadListener(e):this.reloadUserInfo=e}_startProactiveRefresh(){this.proactiveRefresh._start()}_stopProactiveRefresh(){this.proactiveRefresh._stop()}async _updateTokensIfNecessary(e,n=!1){let t=!1;e.idToken&&e.idToken!==this.stsTokenManager.accessToken&&(this.stsTokenManager.updateFromServerResponse(e),t=!0),n&&await Dc(this),await this.auth._persistUserIfCurrent(this),t&&this.auth._notifyListenersIfCurrent(this)}async delete(){if(Hn(this.auth.app))return Promise.reject(Vl(this.auth));const e=await this.getIdToken();return await Tc(this,async function(e,n){return gc(e,"POST","/v1/accounts:delete",n)}(this.auth,{idToken:e})),this.stsTokenManager.clearRefreshToken(),this.auth.signOut()}toJSON(){return Object.assign(Object.assign({uid:this.uid,email:this.email||void 0,emailVerified:this.emailVerified,displayName:this.displayName||void 0,isAnonymous:this.isAnonymous,photoURL:this.photoURL||void 0,phoneNumber:this.phoneNumber||void 0,tenantId:this.tenantId||void 0,providerData:this.providerData.map(e=>Object.assign({},e)),stsTokenManager:this.stsTokenManager.toJSON(),_redirectEventId:this._redirectEventId},this.metadata.toJSON()),{apiKey:this.auth.config.apiKey,appName:this.auth.name})}get refreshToken(){return this.stsTokenManager.refreshToken||""}static _fromJSON(e,n){var t,i,a,o,r,s,u,l;const c=null!==(t=n.displayName)&&void 0!==t?t:void 0,h=null!==(i=n.email)&&void 0!==i?i:void 0,d=null!==(a=n.phoneNumber)&&void 0!==a?a:void 0,g=null!==(o=n.photoURL)&&void 0!==o?o:void 0,p=null!==(r=n.tenantId)&&void 0!==r?r:void 0,m=null!==(s=n._redirectEventId)&&void 0!==s?s:void 0,f=null!==(u=n.createdAt)&&void 0!==u?u:void 0,v=null!==(l=n.lastLoginAt)&&void 0!==l?l:void 0,{uid:w,emailVerified:y,isAnonymous:b,providerData:S,stsTokenManager:C}=n;nc(w&&C,e,"internal-error");const L=Ac.fromJSON(this.name,C);nc("string"==typeof w,e,"internal-error"),Yc(c,e.name),Yc(h,e.name),nc("boolean"==typeof y,e,"internal-error"),nc("boolean"==typeof b,e,"internal-error"),Yc(d,e.name),Yc(g,e.name),Yc(p,e.name),Yc(m,e.name),Yc(f,e.name),Yc(v,e.name);const T=new _c({uid:w,auth:e,email:h,emailVerified:y,displayName:c,isAnonymous:b,photoURL:g,phoneNumber:d,tenantId:p,stsTokenManager:L,createdAt:f,lastLoginAt:v});return S&&Array.isArray(S)&&(T.providerData=S.map(e=>Object.assign({},e))),m&&(T._redirectEventId=m),T}static async _fromIdTokenResponse(e,n,t=!1){const i=new Ac;i.updateFromServerResponse(n);const a=new _c({uid:n.localId,auth:e,stsTokenManager:i,isAnonymous:t});return await Dc(a),a}static async _fromGetAccountInfoResponse(e,n,t){const i=n.users[0];nc(void 0!==i.localId,"internal-error");const a=void 0!==i.providerUserInfo?xc(i.providerUserInfo):[],o=!(i.email&&i.passwordHash||(null==a?void 0:a.length)),r=new Ac;r.updateFromIdToken(t);const s=new _c({uid:i.localId,auth:e,stsTokenManager:r,isAnonymous:o}),u={uid:i.localId,displayName:i.displayName||null,photoURL:i.photoUrl||null,email:i.email||null,emailVerified:i.emailVerified||!1,phoneNumber:i.phoneNumber||null,tenantId:i.tenantId||null,providerData:a,metadata:new kc(i.createdAt,i.lastLoginAt),isAnonymous:!(i.email&&i.passwordHash||(null==a?void 0:a.length))};return Object.assign(s,u),s}}const Ic=new Map;function Pc(e){ic(e instanceof Function,"Expected a class definition");let n=Ic.get(e);return n?(ic(n instanceof e,"Instance stored in cache mismatched with class"),n):(n=new e,Ic.set(e,n),n)}class Nc{constructor(){this.type="NONE",this.storage={}}async _isAvailable(){return!0}async _set(e,n){this.storage[e]=n}async _get(e){const n=this.storage[e];return void 0===n?null:n}async _remove(e){delete this.storage[e]}_addListener(e,n){}_removeListener(e,n){}}Nc.type="NONE";const Mc=Nc;function Zc(e,n,t){return`firebase:${e}:${n}:${t}`}class Jc{constructor(e,n,t){this.persistence=e,this.auth=n,this.userKey=t;const{config:i,name:a}=this.auth;this.fullUserKey=Zc(this.userKey,i.apiKey,a),this.fullPersistenceKey=Zc("persistence",i.apiKey,a),this.boundEventHandler=n._onStorageEvent.bind(n),this.persistence._addListener(this.fullUserKey,this.boundEventHandler)}setCurrentUser(e){return this.persistence._set(this.fullUserKey,e.toJSON())}async getCurrentUser(){const e=await this.persistence._get(this.fullUserKey);return e?_c._fromJSON(this.auth,e):null}removeCurrentUser(){return this.persistence._remove(this.fullUserKey)}savePersistenceForRedirect(){return this.persistence._set(this.fullPersistenceKey,this.persistence.type)}async setPersistence(e){if(this.persistence===e)return;const n=await this.getCurrentUser();return await this.removeCurrentUser(),this.persistence=e,n?this.setCurrentUser(n):void 0}delete(){this.persistence._removeListener(this.fullUserKey,this.boundEventHandler)}static async create(e,n,t="authUser"){if(!n.length)return new Jc(Pc(Mc),e,t);const i=(await Promise.all(n.map(async e=>{if(await e._isAvailable())return e}))).filter(e=>e);let a=i[0]||Pc(Mc);const o=Zc(t,e.config.apiKey,e.name);let r=null;for(const l of n)try{const n=await l._get(o);if(n){const t=_c._fromJSON(e,n);l!==a&&(r=t),a=l;break}}catch(u){}const s=i.filter(e=>e._shouldAllowMigration);return a._shouldAllowMigration&&s.length?(a=s[0],r&&await a._set(o,r.toJSON()),await Promise.all(n.map(async e=>{if(e!==a)try{await e._remove(o)}catch(u){}})),new Jc(a,e,t)):new Jc(a,e,t)}}function Bc(e){const n=e.toLowerCase();if(n.includes("opera/")||n.includes("opr/")||n.includes("opios/"))return"Opera";if(Hc(n))return"IEMobile";if(n.includes("msie")||n.includes("trident/"))return"IE";if(n.includes("edge/"))return"Edge";if(Rc(n))return"Firefox";if(n.includes("silk/"))return"Silk";if(Oc(n))return"Blackberry";if(Qc(n))return"Webos";if(Fc(n))return"Safari";if((n.includes("chrome/")||Xc(n))&&!n.includes("edge/"))return"Chrome";if(Gc(n))return"Android";{const n=/([a-zA-Z\d\.]+)\/[a-zA-Z\d\.]*$/,t=e.match(n);if(2===(null==t?void 0:t.length))return t[1]}return"Other"}function Rc(e=ye()){return/firefox\//i.test(e)}function Fc(e=ye()){const n=e.toLowerCase();return n.includes("safari/")&&!n.includes("chrome/")&&!n.includes("crios/")&&!n.includes("android")}function Xc(e=ye()){return/crios\//i.test(e)}function Hc(e=ye()){return/iemobile/i.test(e)}function Gc(e=ye()){return/android/i.test(e)}function Oc(e=ye()){return/blackberry/i.test(e)}function Qc(e=ye()){return/webos/i.test(e)}function Kc(e=ye()){return/iphone|ipad|ipod/i.test(e)||/macintosh/i.test(e)&&/mobile/i.test(e)}function jc(){return function(){const e=ye();return e.indexOf("MSIE ")>=0||e.indexOf("Trident/")>=0}()&&10===document.documentMode}function Wc(e=ye()){return Kc(e)||Gc(e)||Qc(e)||Oc(e)||/windows phone/i.test(e)||Hc(e)}function Uc(e,n=[]){let t;switch(e){case"Browser":t=Bc(ye());break;case"Worker":t=`${Bc(ye())}-${e}`;break;default:t=e}const i=n.length?n.join(","):"FirebaseCore-web";return`${t}/JsCore/${Qn}/${i}`}class zc{constructor(e){this.auth=e,this.queue=[]}pushCallback(e,n){const t=n=>new Promise((t,i)=>{try{t(e(n))}catch(a){i(a)}});t.onAbort=n,this.queue.push(t);const i=this.queue.length-1;return()=>{this.queue[i]=()=>Promise.resolve()}}async runMiddleware(e){if(this.auth.currentUser===e)return;const n=[];try{for(const t of this.queue)await t(e),t.onAbort&&n.push(t.onAbort)}catch(t){n.reverse();for(const e of n)try{e()}catch(i){}throw this.auth._errorFactory.create("login-blocked",{originalMessage:null==t?void 0:t.message})}}}class $c{constructor(e){var n,t,i,a;const o=e.customStrengthOptions;this.customStrengthOptions={},this.customStrengthOptions.minPasswordLength=null!==(n=o.minPasswordLength)&&void 0!==n?n:6,o.maxPasswordLength&&(this.customStrengthOptions.maxPasswordLength=o.maxPasswordLength),void 0!==o.containsLowercaseCharacter&&(this.customStrengthOptions.containsLowercaseLetter=o.containsLowercaseCharacter),void 0!==o.containsUppercaseCharacter&&(this.customStrengthOptions.containsUppercaseLetter=o.containsUppercaseCharacter),void 0!==o.containsNumericCharacter&&(this.customStrengthOptions.containsNumericCharacter=o.containsNumericCharacter),void 0!==o.containsNonAlphanumericCharacter&&(this.customStrengthOptions.containsNonAlphanumericCharacter=o.containsNonAlphanumericCharacter),this.enforcementState=e.enforcementState,"ENFORCEMENT_STATE_UNSPECIFIED"===this.enforcementState&&(this.enforcementState="OFF"),this.allowedNonAlphanumericCharacters=null!==(i=null===(t=e.allowedNonAlphanumericCharacters)||void 0===t?void 0:t.join(""))&&void 0!==i?i:"",this.forceUpgradeOnSignin=null!==(a=e.forceUpgradeOnSignin)&&void 0!==a&&a,this.schemaVersion=e.schemaVersion}validatePassword(e){var n,t,i,a,o,r;const s={isValid:!0,passwordPolicy:this};return this.validatePasswordLengthOptions(e,s),this.validatePasswordCharacterOptions(e,s),s.isValid&&
1(s.isValid=null===(n=s.meetsMinPasswordLength)||void 0===n||n),s.isValid&&(s.isValid=null===(t=s.meetsMaxPasswordLength)||void 0===t||t),s.isValid&&(s.isValid=null===(i=s.containsLowercaseLetter)||void 0===i||i),s.isValid&&(s.isValid=null===(a=s.containsUppercaseLetter)||void 0===a||a),s.isValid&&(s.isValid=null===(o=s.containsNumericCharacter)||void 0===o||o),s.isValid&&(s.isValid=null===(r=s.containsNonAlphanumericCharacter)||void 0===r||r),s}validatePasswordLengthOptions(e,n){const t=this.customStrengthOptions.minPasswordLength,i=this.customStrengthOptions.maxPasswordLength;t&&(n.meetsMinPasswordLength=e.length>=t),i&&(n.meetsMaxPasswordLength=e.length<=i)}validatePasswordCharacterOptions(e,n){let t;this.updatePasswordCharacterOptionsStatuses(n,!1,!1,!1,!1);for(let i=0;i<e.length;i++)t=e.charAt(i),this.updatePasswordCharacterOptionsStatuses(n,t>="a"&&t<="z",t>="A"&&t<="Z",t>="0"&&t<="9",this.allowedNonAlphanumericCharacters.includes(t))}updatePasswordCharacterOptionsStatuses(e,n,t,i,a){this.customStrengthOptions.containsLowercaseLetter&&(e.containsLowercaseLetter||(e.containsLowercaseLetter=n)),this.customStrengthOptions.containsUppercaseLetter&&(e.containsUppercaseLetter||(e.containsUppercaseLetter=t)),this.customStrengthOptions.containsNumericCharacter&&(e.containsNumericCharacter||(e.containsNumericCharacter=i)),this.customStrengthOptions.containsNonAlphanumericCharacter&&(e.containsNonAlphanumericCharacter||(e.containsNonAlphanumericCharacter=a))}}class Vc{constructor(e,n,t,i){this.app=e,this.heartbeatServiceProvider=n,this.appCheckServiceProvider=t,this.config=i,this.currentUser=null,this.emulatorConfig=null,this.operations=Promise.resolve(),this.authStateSubscription=new eh(this),this.idTokenSubscription=new eh(this),this.beforeStateQueue=new zc(this),this.redirectUser=null,this.isProactiveRefreshEnabled=!1,this.EXPECTED_PASSWORD_POLICY_SCHEMA_VERSION=1,this._canInitEmulator=!0,this._isInitialized=!1,this._deleted=!1,this._initializationPromise=null,this._popupRedirectResolver=null,this._errorFactory=Kl,this._agentRecaptchaConfig=null,this._tenantRecaptchaConfigs={},this._projectPasswordPolicy=null,this._tenantPasswordPolicies={},this.lastNotifiedUid=void 0,this.languageCode=null,this.tenantId=null,this.settings={appVerificationDisabledForTesting:!1},this.frameworks=[],this.name=e.name,this.clientVersion=i.sdkClientVersion}_initializeWithPersistence(e,n){return n&&(this._popupRedirectResolver=Pc(n)),this._initializationPromise=this.queue(async()=>{var t,i;if(!this._deleted&&(this.persistenceManager=await Jc.create(this,e),!this._deleted)){if(null===(t=this._popupRedirectResolver)||void 0===t?void 0:t._shouldInitProactively)try{await this._popupRedirectResolver._initialize(this)}catch(a){}await this.initializeCurrentUser(n),this.lastNotifiedUid=(null===(i=this.currentUser)||void 0===i?void 0:i.uid)||null,this._deleted||(this._isInitialized=!0)}}),this._initializationPromise}async _onStorageEvent(){if(this._deleted)return;const e=await this.assertedPersistence.getCurrentUser();return this.currentUser||e?this.currentUser&&e&&this.currentUser.uid===e.uid?(this._currentUser._assign(e),void(await this.currentUser.getIdToken())):void(await this._updateCurrentUser(e,!0)):void 0}async initializeCurrentUserFromIdToken(e){try{const n=await yc(this,{idToken:e}),t=await _c._fromGetAccountInfoResponse(this,n,e);await this.directlySetCurrentUser(t)}catch(n){console.warn("FirebaseServerApp could not login user with provided authIdToken: ",n),await this.directlySetCurrentUser(null)}}async initializeCurrentUser(e){var n;if(Hn(this.app)){const e=this.app.settings.authIdToken;return e?new Promise(n=>{setTimeout(()=>this.initializeCurrentUserFromIdToken(e).then(n,n))}):this.directlySetCurrentUser(null)}const t=await this.assertedPersistence.getCurrentUser();let i=t,a=!1;if(e&&this.config.authDomain){await this.getOrInitRedirectPersistenceManager();const t=null===(n=this.redirectUser)||void 0===n?void 0:n._redirectEventId,o=null==i?void 0:i._redirectEventId,r=await this.tryRedirectSignIn(e);t&&t!==o||!(null==r?void 0:r.user)||(i=r.user,a=!0)}if(!i)return this.directlySetCurrentUser(null);
vendor: 15,164 bytes, line 1
1if(!i._redirectEventId){if(a)try{await this.beforeStateQueue.runMiddleware(i)}catch(o){i=t,this._popupRedirectResolver._overrideRedirectResult(this,()=>Promise.reject(o))}return i?this.reloadAndSetCurrentUserOrClear(i):this.directlySetCurrentUser(null)}return nc(this._popupRedirectResolver,this,"argument-error"),await this.getOrInitRedirectPersistenceManager(),this.redirectUser&&this.redirectUser._redirectEventId===i._redirectEventId?this.directlySetCurrentUser(i):this.reloadAndSetCurrentUserOrClear(i)}async tryRedirectSignIn(e){let n=null;try{n=await this._popupRedirectResolver._completeRedirectFn(this,e,!0)}catch(t){await this._setRedirectUser(null)}return n}async reloadAndSetCurrentUserOrClear(e){try{await Dc(e)}catch(n){if("auth/network-request-failed"!==(null==n?void 0:n.code))return this.directlySetCurrentUser(null)}return this.directlySetCurrentUser(e)}useDeviceLanguage(){this.languageCode=function(){if("undefined"==typeof navigator)return null;const e=navigator;return e.languages&&e.languages[0]||e.language||null}()}async _delete(){this._deleted=!0}async updateCurrentUser(e){if(Hn(this.app))return Promise.reject(Vl(this));const n=e?Ae(e):null;return n&&nc(n.auth.config.apiKey===this.config.apiKey,this,"invalid-user-token"),this._updateCurrentUser(n&&n._clone(this))}async _updateCurrentUser(e,n=!1){if(!this._deleted)return e&&nc(this.tenantId===e.tenantId,this,"tenant-id-mismatch"),n||await this.beforeStateQueue.runMiddleware(e),this.queue(async()=>{await this.directlySetCurrentUser(e),this.notifyAuthListeners()})}async signOut(){return Hn(this.app)?Promise.reject(Vl(this)):(await this.beforeStateQueue.runMiddleware(null),(this.redirectPersistenceManager||this._popupRedirectResolver)&&await this._setRedirectUser(null),this._updateCurrentUser(null,!0))}setPersistence(e){return Hn(this.app)?Promise.reject(Vl(this)):this.queue(async()=>{await this.assertedPersistence.setPersistence(Pc(e))})}_getRecaptchaConfig(){return null==this.tenantId?this._agentRecaptchaConfig:this._tenantRecaptchaConfigs[this.tenantId]}async validatePassword(e){this._getPasswordPolicyInternal()||await this._updatePasswordPolicy();const n=this._getPasswordPolicyInternal();return n.schemaVersion!==this.EXPECTED_PASSWORD_POLICY_SCHEMA_VERSION?Promise.reject(this._errorFactory.create("unsupported-password-policy-schema-version",{})):n.validatePassword(e)}_getPasswordPolicyInternal(){return null===this.tenantId?this._projectPasswordPolicy:this._tenantPasswordPolicies[this.tenantId]}async _updatePasswordPolicy(){const e=await async function(e,n={}){return gc(e,"GET","/v2/passwordPolicy",dc(e,n))}(this),n=new $c(e);null===this.tenantId?this._projectPasswordPolicy=n:this._tenantPasswordPolicies[this.tenantId]=n}_getPersistence(){return this.assertedPersistence.persistence.type}_updateErrorMap(e){this._errorFactory=new Ce("auth","Firebase",e())}onAuthStateChanged(e,n,t){return this.registerStateListener(this.authStateSubscription,e,n,t)}beforeAuthStateChanged(e,n){return this.beforeStateQueue.pushCallback(e,n)}onIdTokenChanged(e,n,t){return this.registerStateListener(this.idTokenSubscription,e,n,t)}authStateReady(){return new Promise((e,n)=>{if(this.currentUser)e();else{const t=this.onAuthStateChanged(()=>{t(),e()},n)}})}async revokeAccessToken(e){if(this.currentUser){const n={providerId:"apple.com",tokenType:"ACCESS_TOKEN",token:e,idToken:await this.currentUser.getIdToken()};null!=this.tenantId&&(n.tenantId=this.tenantId),await async function(e,n){return gc(e,"POST","/v2/accounts:revokeToken",dc(e,n))}(this,n)}}toJSON(){var e;return{apiKey:this.config.apiKey,authDomain:this.config.authDomain,appName:this.name,currentUser:null===(e=this._currentUser)||void 0===e?void 0:e.toJSON()}}async _setRedirectUser(e,n){const t=await this.getOrInitRedirectPersistenceManager(n);return null===e?t.removeCurrentUser():t.setCurrentUser(e)}async getOrInitRedirectPersistenceManager(e){if(!this.redirectPersistenceManager){const n=e&&Pc(e)||this._popupRedirectResolver;nc(n,this,"argument-error"),this.redirectPersistenceManager=await Jc.create(this,[Pc(n._redirectPersistence)],"redirectUser"),this.redirectUser=await this.redirectPersistenceManager.getCurrentUser()}return this.redirectPersistenceManager}async _redirectUserForId(e){var n,t;return this._isInitialized&&await this.queue(async()=>{}),(null===(n=this._currentUser)||void 0===n?void 0:n._redirectEventId)===e?this._currentUser:(null===(t=this.redirectUser)||void 0===t?void 0:t._redirectEventId)===e?this.redirectUser:null}async _persistUserIfCurrent(e){if(e===this.currentUser)return this.queue(async()=>this.directlySetCurrentUser(e))}_notifyListenersIfCurrent(e){e===this.currentUser&&this.notifyAuthListeners()}_key(){return`${this.config.authDomain}:${this.config.apiKey}:${this.name}`}_startProactiveRefresh(){this.isProactiveRefreshEnabled=!0,this.currentUser&&this._currentUser._startProactiveRefresh()}_stopProactiveRefresh(){this.isProactiveRefreshEnabled=!1,this.currentUser&&this._currentUser._stopProactiveRefresh()}get _currentUser(){return this.currentUser}notifyAuthListeners(){var e,n;if(!this._isInitialized)return;this.idTokenSubscription.next(this.currentUser);const t=null!==(n=null===(e=this.currentUser)||void 0===e?void 0:e.uid)&&void 0!==n?n:null;this.lastNotifiedUid!==t&&(this.lastNotifiedUid=t,this.authStateSubscription.next(this.currentUser))}registerStateListener(e,n,t,i){if(this._deleted)return()=>{};const a="function"==typeof n?n:n.next.bind(n);let o=!1;const r=this._isInitialized?Promise.resolve():this._initializationPromise;if(nc(r,this,"internal-error"),r.then(()=>{o||a(this.currentUser)}),"function"==typeof n){const a=e.addObserver(n,t,i);return()=>{o=!0,a()}}{const t=e.addObserver(n);return()=>{o=!0,t()}}}async directlySetCurrentUser(e){this.currentUser&&this.currentUser!==e&&this._currentUser._stopProactiveRefresh(),e&&this.isProactiveRefreshEnabled&&e._startProactiveRefresh(),this.currentUser=e,e?await this.assertedPersistence.setCurrentUser(e):await this.assertedPersistence.removeCurrentUser()}queue(e){return this.operations=this.operations.then(e,e),this.operations}get assertedPersistence(){return nc(this.persistenceManager,this,"internal-error"),this.persistenceManager}_logFramework(e){e&&!this.frameworks.includes(e)&&(this.frameworks.push(e),this.frameworks.sort(),this.clientVersion=Uc(this.config.clientPlatform,this._getFrameworks()))}_getFrameworks(){return this.frameworks}async _getAdditionalHeaders(){var e;const n={"X-Client-Version":this.clientVersion};this.app.options.appId&&(n["X-Firebase-gmpid"]=this.app.options.appId);const t=await(null===(e=this.heartbeatServiceProvider.getImmediate({optional:!0}))||void 0===e?void 0:e.getHeartbeatsHeader());t&&(n["X-Firebase-Client"]=t);const i=await this._getAppCheckToken();return i&&(n["X-Firebase-AppCheck"]=i),n}async _getAppCheckToken(){var e;const n=await(null===(e=this.appCheckServiceProvider.getImmediate({optional:!0}))||void 0===e?void 0:e.getToken());return(null==n?void 0:n.error)&&function(e,...n){jl.logLevel<=Ne.WARN&&jl.warn(`Auth (${Qn}): ${e}`,...n)}(`Error while retrieving App Check token: ${n.error}`),null==n?void 0:n.token}}function qc(e){return Ae(e)}class eh{constructor(e){this.auth=e,this.observer=null,this.addObserver=function(e,n){const t=new De(e,n);return t.subscribe.bind(t)}(e=>this.observer=e)}get next(){return nc(this.observer,this.auth,"internal-error"),this.observer.next.bind(this.observer)}}let nh={async loadJS(){throw new Error("Unable to load external scripts")},recaptchaV2Script:"",recaptchaEnterpriseScript:"",gapiScript:""};function th(e,n,t){const i=qc(e);nc(i._canInitEmulator,i,"emulator-config-failed"),nc(/^https?:\/\//.test(n),i,"invalid-emulator-scheme");const a=ih(n),{host:o,port:r}=function(e){const n=ih(e),t=/(\/\/)?([^?#/]+)/.exec(e.substr(n.length));if(!t)return{host:"",port:null};const i=t[2].split("@").pop()||"",a=/^(\[[^\]]+\])(:|$)/.exec(i);if(a){const e=a[1];return{host:e,port:ah(i.substr(e.length+1))}}{const[e,n]=i.split(":");return{host:e,port:ah(n)}}}(n),s=null===r?"":`:${r}`;i.config.emulator={url:`${a}//${o}${s}/`},i.settings.appVerificationDisabledForTesting=!0,i.emulatorConfig=Object.freeze({host:o,port:r,protocol:a.replace(":",""),options:Object.freeze({disableWarnings:!1})}),function(){function e(){const e=document.createElement("p"),n=e.style;e.innerText="Running in emulator mode. Do not use with production credentials.",n.position="fixed",n.width="100%",n.backgroundColor="#ffffff",n.border=".1em solid #000000",n.color="#b50000",n.bottom="0px",n.left="0px",n.margin="0px",n.zIndex="10000",n.textAlign="center",e.classList.add("firebase-emulator-warning"),document.body.appendChild(e)}"undefined"!=typeof console&&"function"==typeof console.info&&console.info("WARNING: You are using the Auth Emulator, which is intended for local testing only. Do not use with production credentials.");"undefined"!=typeof window&&"undefined"!=typeof document&&("loading"===document.readyState?window.addEventListener("DOMContentLoaded",e):e())}()}function ih(e){const n=e.indexOf(":");return n<0?"":e.substr(0,n+1)}function ah(e){if(!e)return null;const n=Number(e);return isNaN(n)?null:n}class oh{constructor(e,n){this.providerId=e,this.signInMethod=n}toJSON(){return tc("not implemented")}_getIdTokenResponse(e){return tc("not implemented")}_linkToIdToken(e,n){return tc("not implemented")}_getReauthenticationResolver(e){return tc("not implemented")}}async function rh(e,n){return mc(e,"POST","/v1/accounts:signInWithIdp",dc(e,n))}class sh extends oh{constructor(){super(...arguments),this.pendingToken=null}static _fromParams(e){const n=new sh(e.providerId,e.signInMethod);return e.idToken||e.accessToken?(e.idToken&&(n.idToken=e.idToken),e.accessToken&&(n.accessToken=e.accessToken),e.nonce&&!e.pendingToken&&(n.nonce=e.nonce),e.pendingToken&&(n.pendingToken=e.pendingToken)):e.oauthToken&&e.oauthTokenSecret?(n.accessToken=e.oauthToken,n.secret=e.oauthTokenSecret):Ul("argument-error"),n}toJSON(){return{idToken:this.idToken,accessToken:this.accessToken,secret:this.secret,nonce:this.nonce,pendingToken:this.pendingToken,providerId:this.providerId,signInMethod:this.signInMethod}}static fromJSON(e){const n="string"==typeof e?JSON.parse(e):e,{providerId:t,signInMethod:i}=n,a=Gl(n,["providerId","signInMethod"]);if(!t||!i)return null;const o=new sh(t,i);return o.idToken=a.idToken||void 0,o.accessToken=a.accessToken||void 0,o.secret=a.secret,o.nonce=a.nonce,o.pendingToken=a.pendingToken||null,o}_getIdTokenResponse(e){return rh(e,this.buildRequest())}_linkToIdToken(e,n){const t=this.buildRequest();return t.idToken=n,rh(e,t)}_getReauthenticationResolver(e){const n=this.buildRequest();return n.autoCreate=!1,rh(e,n)}buildRequest(){const e={requestUri:"http://localhost",returnSecureToken:!0};if(this.pendingToken)e.pendingToken=this.pendingToken;else{const n={};this.idToken&&(n.id_token=this.idToken),this.accessToken&&(n.access_token=this.accessToken),this.secret&&(n.oauth_token_secret=this.secret),n.providerId=this.providerId,this.nonce&&!this.pendingToken&&(n.nonce=this.nonce),e.postBody=ke(n)}return e}}class uh{constructor(e){this.providerId=e,this.defaultLanguageCode=null,this.customParameters={}}setDefaultLanguage(e){this.defaultLanguageCode=e}setCustomParameters(e){return this.customParameters=e,this}getCustomParameters(){return this.customParameters}}class lh extends uh{constructor(){super(...arguments),this.scopes=[]}addScope(e){return this.scopes.includes(e)||this.scopes.push(e),this}getScopes(){return[...this.scopes]}}class ch extends lh{constructor(){super("facebook.com")}static credential(e){return sh._fromParams({providerId:ch.PROVIDER_ID,signInMethod:ch.FACEBOOK_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return ch.credentialFromTaggedObject(e)}static credentialFromError(e){return ch.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e||!("oauthAccessToken"in e))return null;if(!e.oauthAccessToken)return null;try{return ch.credential(e.oauthAccessToken)}catch(n){return null}}}ch.FACEBOOK_SIGN_IN_METHOD="facebook.com",ch.PROVIDER_ID="facebook.com";class hh extends lh{constructor(){super("google.com"),this.addScope("profile")}static credential(e,n){return sh._fromParams({providerId:hh.PROVIDER_ID,signInMethod:hh.GOOGLE_SIGN_IN_METHOD,idToken:e,accessToken:n})}static credentialFromResult(e){return hh.credentialFromTaggedObject(e)}static credentialFromError(e){return hh.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;const{oauthIdToken:n,oauthAccessToken:t}=e;if(!n&&!t)return null;try{return hh.credential(n,t)}catch(i){return null}}}hh.GOOGLE_SIGN_IN_METHOD="google.com",hh.PROVIDER_ID="google.com";class dh extends lh{constructor(){super("github.com")}static credential(e){return sh._fromParams({providerId:dh.PROVIDER_ID,signInMethod:dh.GITHUB_SIGN_IN_METHOD,accessToken:e})}static credentialFromResult(e){return dh.credentialFromTaggedObject(e)}static credentialFromError(e){return dh.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e||!("oauthAccessToken"in e))return null;if(!e.oauthAccessToken)return null;try{return dh.credential(e.oauthAccessToken)}catch(n){return null}}}dh.GITHUB_SIGN_IN_METHOD="github.com",dh.PROVIDER_ID="github.com";class gh extends lh{constructor(){super("twitter.com")}static credential(e,n){return sh._fromParams({providerId:gh.PROVIDER_ID,signInMethod:gh.TWITTER_SIGN_IN_METHOD,oauthToken:e,oauthTokenSecret:n})}static credentialFromResult(e){return gh.credentialFromTaggedObject(e)}static credentialFromError(e){return gh.credentialFromTaggedObject(e.customData||{})}static credentialFromTaggedObject({_tokenResponse:e}){if(!e)return null;const{oauthAccessToken:n,oauthTokenSecret:t}=e;if(!n||!t)return null;try{return gh.credential(n,t)}catch(i){return null}}}gh.TWITTER_SIGN_IN_METHOD="twitter.com",gh.PROVIDER_ID="twitter.com";class ph{constructor(e){this.user=e.user,this.providerId=e.providerId,this._tokenResponse=e._tokenResponse,this.operationType=e.operationType}static async _fromIdTokenResponse(e,n,t,i=!1){const a=await _c._fromIdTokenResponse(e,t,i),o=mh(t);return new ph({user:a,providerId:o,_tokenResponse:t,operationType:n})}static async _forOperation(e,n,t){await e._updateTokensIfNecessary(t,!0);const i=mh(t);return new ph({user:e,providerId:i,_tokenResponse:t,operationType:n})}}function mh(e){return e.providerId?e.providerId:"phoneNumber"in e?"phone":null}async function fh(e){var n;if(Hn(e.app))return Promise.reject(Vl(e));const t=qc(e);if(await t._initializationPromise,null===(n=t.currentUser)||void 0===n?void 0:n.isAnonymous)return new ph({user:t.currentUser,providerId:null,operationType:"signIn"});const i=await async function(e,n){return mc(e,"POST","/v1/accounts:signUp",dc(e,n))}(t,{returnSecureToken:!0}),a=await ph._fromIdTokenResponse(t,"signIn",i,!0);return await t._updateCurrentUser(a.user),a}class vh extends Se{constructor(e,n,t,i){var a;super(n.code,n.message),this.operationType=t,this.user=i,Object.setPrototypeOf(this,vh.prototype),this.customData={appName:e.n
1ame,tenantId:null!==(a=e.tenantId)&&void 0!==a?a:void 0,_serverResponse:n.customData._serverResponse,operationType:t}}static _fromErrorAndOperation(e,n,t,i){return new vh(e,n,t,i)}}function wh(e,n,t,i){return("reauthenticate"===n?t._getReauthenticationResolver(e):t._getIdTokenResponse(e)).catch(t=>{if("auth/multi-factor-auth-required"===t.code)throw vh._fromErrorAndOperation(e,t,n,i);throw t})}async function yh(e,n,t){await Dc(n);var i;nc((i=n.providerData,new Set(i.map(({providerId:e})=>e).filter(e=>!!e))).has(t)===e,n.auth,"provider-already-linked")}const bh="__sak";class Sh{constructor(e,n){this.storageRetriever=e,this.type=n}_isAvailable(){try{return this.storage?(this.storage.setItem(bh,"1"),this.storage.removeItem(bh),Promise.resolve(!0)):Promise.resolve(!1)}catch(e){return Promise.resolve(!1)}}_set(e,n){return this.storage.setItem(e,JSON.stringify(n)),Promise.resolve()}_get(e){const n=this.storage.getItem(e);return Promise.resolve(n?JSON.parse(n):null)}_remove(e){return this.storage.removeItem(e),Promise.resolve()}get storage(){return this.storageRetriever()}}class Ch extends Sh{constructor(){super(()=>window.localStorage,"LOCAL"),this.boundEventHandler=(e,n)=>this.onStorageEvent(e,n),this.listeners={},this.localCache={},this.pollTimer=null,this.fallbackToPolling=Wc(),this._shouldAllowMigration=!0}forAllChangedKeys(e){for(const n of Object.keys(this.listeners)){const t=this.storage.getItem(n),i=this.localCache[n];t!==i&&e(n,i,t)}}onStorageEvent(e,n=!1){if(!e.key)return void this.forAllChangedKeys((e,n,t)=>{this.notifyListeners(e,t)});const t=e.key;n?this.detachListener():this.stopPolling();const i=()=>{const e=this.storage.getItem(t);(n||this.localCache[t]!==e)&&this.notifyListeners(t,e)},a=this.storage.getItem(t);jc()&&a!==e.newValue&&e.newValue!==e.oldValue?setTimeout(i,10):i()}notifyListeners(e,n){this.localCache[e]=n;const t=this.listeners[e];if(t)for(const i of Array.from(t))i(n?JSON.parse(n):n)}startPolling(){this.stopPolling(),this.pollTimer=setInterval(()=>{this.forAllChangedKeys((e,n,t)=>{this.onStorageEvent(new StorageEvent("storage",{key:e,oldValue:n,newValue:t}),!0)})},1e3)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}attachListener(){window.addEventListener("storage",this.boundEventHandler)}detachListener(){window.removeEventListener("storage",this.boundEventHandler)}_addListener(e,n){0===Object.keys(this.listeners).length&&(this.fallbackToPolling?this.startPolling():this.attachListener()),this.listeners[e]||(this.listeners[e]=new Set,this.localCache[e]=this.storage.getItem(e)),this.listeners[e].add(n)}_removeListener(e,n){this.listeners[e]&&(this.listeners[e].delete(n),0===this.listeners[e].size&&delete this.listeners[e]),0===Object.keys(this.listeners).length&&(this.detachListener(),this.stopPolling())}async _set(e,n){await super._set(e,n),this.localCache[e]=JSON.stringify(n)}async _get(e){const n=await super._get(e);return this.localCache[e]=JSON.stringify(n),n}async _remove(e){await super._remove(e),delete this.localCache[e]}}Ch.type="LOCAL";const Lh=Ch;class Th extends Sh{constructor(){super(()=>window.sessionStorage,"SESSION")}_addListener(e,n){}_removeListener(e,n){}}Th.type="SESSION";const Eh=Th;class kh{constructor(e){this.eventTarget=e,this.handlersMap={},this.boundEventHandler=this.handleEvent.bind(this)}static _getInstance(e){const n=this.receivers.find(n=>n.isListeningto(e));if(n)return n;const t=new kh(e);return this.receivers.push(t),t}isListeningto(e){return this.eventTarget===e}async handleEvent(e){const n=e,{eventId:t,eventType:i,data:a}=n.data,o=this.handlersMap[i];if(!(null==o?void 0:o.size))return;n.ports[0].postMessage({status:"ack",eventId:t,eventType:i});const r=Array.from(o).map(async e=>e(n.origin,a)),s=await function(e){return Promise.all(e.map(async e=>{try{return{fulfilled:!0,value:await e}}catch(n){return{fulfilled:!1,reason:n}}}))}(r);n.ports[0].postMessage({status:"done",eventId:t,eventType:i,response:s})}_subscribe(e,n){0===Object.keys(this.handlersMap).length&&this.eventTarget.addEventListener("message",this.boundEventHandler),this.handlersMap[e]||(this.handlersMap[e]=new Set),this.handlersMap[e].add(n)}_unsubscribe(e,n){this.handlersMap[e]&&n&&this.handlersMap[e].delete(n),n&&0!==this.handlersMap[e].size||delete this.handlersMap[e],0===Object.keys(this.handlersMap).length&&this.eventTarget.removeEventListener("message",this.boundEventHandler)}}function Dh(e="",n=10){let t="";for(let i=0;i<n;i++)t+=Math.floor(10*Math.random());return e+t}kh.receivers=[];class xh{constructor(e){this.target=e,this.handlers=new Set}removeMessageHandler(e){e.messageChannel&&(e.messageChannel.port1.removeEventListener("message",e.onMessage),e.messageChannel.port1.close()),this.handlers.delete(e)}async _send(e,n,t=50){const i="undefined"!=typeof MessageChannel?new MessageChannel:null;if(!i)throw new Error("connection_unavailable");let a,o;return new Promise((r,s)=>{const u=Dh("",20);i.port1.start();const l=setTimeout(()=>{s(new Error("unsupported_event"))},t);o={messageChannel:i,onMessage(e){const n=e;if(n.data.eventId===u)switch(n.data.status){case"ack":clearTimeout(l),a=setTimeout(()=>{s(new Error("timeout"))},3e3);break;case"done":clearTimeout(a),r(n.data.response);break;default:clearTimeout(l),clearTimeout(a),s(new Error("invalid_response"))}}},this.handlers.add(o),i.port1.addEventListener("message",o.onMessage),this.target.postMessage({eventType:e,eventId:u,data:n},[i.port2])}).finally(()=>{o&&this.removeMessageHandler(o)})}}function Ah(){return window}
1function Yh(){return void 0!==Ah().WorkerGlobalScope&&"function"==typeof Ah().importScripts}const _h="firebaseLocalStorageDb",Ih="firebaseLocalStorage",Ph="fbase_key";class Nh{constructor(e){this.request=e}toPromise(){return new Promise((e,n)=>{this.request.addEventListener("success",()=>{e(this.request.result)}),this.request.addEventListener("error",()=>{n(this.request.error)})})}}function Mh(e,n){return e.transaction([Ih],n?"readwrite":"readonly").objectStore(Ih)}function Zh(){const e=indexedDB.open(_h,1);return new Promise((n,t)=>{e.addEventListener("error",()=>{t(e.error)}),e.addEventListener("upgradeneeded",()=>{const n=e.result;try{n.createObjectStore(Ih,{keyPath:Ph})}catch(i){t(i)}}),e.addEventListener("success",async()=>{const t=e.result;t.objectStoreNames.contains(Ih)?n(t):(t.close(),await function(){const e=indexedDB.deleteDatabase(_h);return new Nh(e).toPromise()}(),n(await Zh()))})})}async function Jh(e,n,t){const i=Mh(e,!0).put({[Ph]:n,value:t});return new Nh(i).toPromise()}function Bh(e,n){const t=Mh(e,!0).delete(n);return new Nh(t).toPromise()}class Rh{constructor(){this.type="LOCAL",this._shouldAllowMigration=!0,this.listeners={},this.localCache={},this.pollTimer=null,this.pendingWrites=0,this.receiver=null,this.sender=null,this.serviceWorkerReceiverAvailable=!1,this.activeServiceWorker=null,this._workerInitializationPromise=this.initializeServiceWorkerMessaging().then(()=>{},()=>{})}async _openDb(){return this.db||(this.db=await Zh()),this.db}async _withRetries(e){let n=0;for(;;)try{const n=await this._openDb();return await e(n)}catch(t){if(n++>3)throw t;this.db&&(this.db.close(),this.db=void 0)}}async initializeServiceWorkerMessaging(){return Yh()?this.initializeReceiver():this.initializeSender()}async initializeReceiver(){this.receiver=kh._getInstance(Yh()?self:null),this.receiver._subscribe("keyChanged",async(e,n)=>({keyProcessed:(await this._poll()).includes(n.key)}
1)),this.receiver._subscribe("ping",async(e,n)=>["keyChanged"])}async initializeSender(){var e,n;if(this.activeServiceWorker=await async function(){if(!(null===navigator||void 0===navigator?void 0:navigator.serviceWorker))return null;try{return(await navigator.serviceWorker.ready).active}catch(e){return null}}(),!this.activeServiceWorker)return;this.sender=new xh(this.activeServiceWorker);const t=await this.sender._send("ping",{},800);t&&(null===(e=t[0])||void 0===e?void 0:e.fulfilled)&&(null===(n=t[0])||void 0===n?void 0:n.value.includes("keyChanged"))&&(this.serviceWorkerReceiverAvailable=!0)}async notifyServiceWorker(e){var n;if(this.sender&&this.activeServiceWorker&&((null===(n=null===navigator||void 0===navigator?void 0:navigator.serviceWorker)||void 0===n?void 0:n.controller)||null)===this.activeServiceWorker)try{await this.sender._send("keyChanged",{key:e},this.serviceWorkerReceiverAvailable?800:50)}catch(n){}}async _isAvailable(){try{if(!indexedDB)return!1;const e=await Zh();return await Jh(e,bh,"1"),await Bh(e,bh),!0}catch(e){}return!1}async _withPendingWrite(e){this.pendingWrites++;try{await e()}finally{this.pendingWrites--}}async _set(e,n){return this._withPendingWrite(async()=>(await this._withRetries(t=>Jh(t,e,n)),this.localCache[e]=n,this.notifyServiceWorker(e)))}async _get(e){const n=await this._withRetries(n=>async function(e,n){const t=Mh(e,!1).get(n),i=await new Nh(t).toPromise();return void 0===i?null:i.value}(n,e));return this.localCache[e]=n,n}async _remove(e){return this._withPendingWrite(async()=>(await this._withRetries(n=>Bh(n,e)),delete this.localCache[e],this.notifyServiceWorker(e)))}async _poll(){const e=await this._withRetries(e=>{const n=Mh(e,!1).getAll();return new Nh(n).toPromise()});if(!e)return[];if(0!==this.pendingWrites)return[];const n=[],t=new Set;if(0!==e.length)for(const{fbase_key:i,value:a}of e)t.add(i),JSON.stringify(this.localCache[i])!==JSON.stringify(a)&&(this.notifyListeners(i,a),n.push(i));for(const i of Object.keys(this.localCache))this.localCache[i]&&!t.has(i)&&(this.notifyListeners(i,null),n.push(i));return n}notifyListeners(e,n){this.localCache[e]=n;const t=this.listeners[e];if(t)for(const i of Array.from(t))i(n)}startPolling(){this.stopPolling(),this.pollTimer=setInterval(async()=>this._poll(),800)}stopPolling(){this.pollTimer&&(clearInterval(this.pollTimer),this.pollTimer=null)}_addListener(e,n){0===Object.keys(this.listeners).length&&this.startPolling(),this.listeners[e]||(this.listeners[e]=new Set,this._get(e)),this.listeners[e].add(n)}_removeListener(e,n){this.listeners[e]&&(this.listeners[e].delete(n),0===this.listeners[e].size&&delete this.listeners[e]),0===Object.keys(this.listeners).length&&this.stopPolling()}}Rh.type="LOCAL";const Fh=Rh;function Xh(e,n){return n?Pc(n):(nc(e._popupRedirectResolver,e,"argument-error"),e._popupRedirectResolver)}new sc(3e4,6e4);class Hh extends oh{constructor(e){super("custom","custom"),this.params=e}_getIdTokenResponse(e){return rh(e,this._buildIdpRequest())}_linkToIdToken(e,n){return rh(e,this._buildIdpRequest(n))}_getReauthenticationResolver(e){return rh(e,this._buildIdpRequest())}_buildIdpRequest(e){const n={requestUri:this.params.requestUri,sessionId:this.params.sessionId,postBody:this.params.postBody,tenantId:this.params.tenantId,pendingToken:this.params.pendingToken,returnSecureToken:!0,returnIdpCredential:!0};return e&&(n.idToken=e),n}}function Gh(e){return async function(e,n,t=!1){if(Hn(e.app))return Promise.reject(Vl(e));const i="signIn",a=await wh(e,i,n),o=await ph._fromIdTokenResponse(e,i,a);return t||await e._updateCurrentUser(o.user),o}(e.auth,new Hh(e),e.bypassAuthState)}function Oh(e){const{auth:n,user:t}=e;return nc(t,n,"internal-error"),async function(e,n,t=!1){const{auth:i}=e;if(Hn(i.app))return Promise.reject(Vl(i));const a="reauthenticate";try{const o=await Tc(e,wh(i,a,n,e),t);nc(o.idToken,i,"internal-error");const r=Cc(o.idToken);nc(r,i,"internal-error");const{sub:s}=r;return nc(e.uid===s,i,"user-mismatch"),ph._forOperation(e,a,o)}catch(o){throw"auth/user-not-found"===(null==o?void 0:o.code)&&Ul(i,"user-mismatch"),o}}(t,new Hh(e),e.bypassAuthState)}async function Qh(e){const{auth:n,user:t}=e;return nc(t,n,"internal-error"),async function(e,n,t=!1){const i=await Tc(e,n._linkToIdToken(e.auth,await e.getIdToken()),t);return ph._forOperation(e,"link",i)}(t,new Hh(e),e.bypassAuthState)}class Kh{constructor(e,n,t,i,a=!1){this.auth=e,this.resolver=t,this.user=i,this.bypassAuthState=a,this.pendingPromise=null,this.eventManager=null,this.filter=Array.isArray(n)?n:[n]}execute(){return new Promise(async(e,n)=>{this.pendingPromise={resolve:e,reject:n};try{this.eventManager=await this.resolver._initialize(this.auth),await this.onExecution(),this.eventManager.registerConsumer(this)}catch(t){this.reject(t)}})}async onAuthEvent(e){const{urlResponse:n,sessionId:t,postBody:i,tenantId:a,error:o,type:r}=e;if(o)return void this.reject(o);const s={auth:this.auth,requestUri:n,sessionId:t,tenantId:a||void 0,postBody:i||void 0,user:this.user,bypassAuthState:this.bypassAuthState};try{this.resolve(await this.getIdpTask(r)(s))}catch(u){this.reject(u)}}onError(e){this.reject(e)}getIdpTask(e){switch(e){case"signInViaPopup":case"signInViaRedirect":return Gh;case"linkViaPopup":case"linkViaRedirect":return Qh;case"reauthViaPopup":case"reauthViaRedirect":return Oh;default:Ul(this.auth,"internal-error")}}resolve(e){ic(this.pendingPromise,"Pending promise was never set"),this.pendingPromise.resolve(e),this.unregisterAndCleanUp()}reject(e){ic(this.pendingPromise,"Pending promise was never set"),this.pendingPromise.reject(e),this.unregisterAndCleanUp()}unregisterAndCleanUp(){this.eventManager&&this.eventManager.unregisterConsumer(this),this.pendingPromise=null,this.cleanUp()}}const jh=new sc(2e3,1e4);async function Wh(e,n,t){if(Hn(e.app))return Promise.reject(zl(e,"operation-not-supported-in-this-environment"));const i=qc(e);ql(e,n,uh);const a=Xh(i,t);return new Uh(i,"signInViaPopup",n,a).executeNotNull()}class Uh extends Kh{constructor(e,n,t,i,a){super(e,n,i,a),this.provider=t,this.authWindow=null,this.pollId=null,Uh.currentPopupAction&&Uh.currentPopupAction.cancel(),Uh.currentPopupAction=this}async executeNotNull(){const e=await this.execute();return nc(e,this.auth,"internal-error"),e}async onExecution(){ic(1===this.filter.length,"Popup operations only handle one event");const e=Dh();this.authWindow=await this.resolver._openPopup(this.auth,this.provider,this.filter[0],e),this.authWindow.associatedEvent=e,this.resolver._originValidation(this.auth).catch(e=>{this.reject(e)}),this.resolver._isIframeWebStorageSupported(this.auth,e=>{e||this.reject(zl(this.auth,"web-storage-unsupported"))}),this.pollUserCancellation()}get eventId(){var e;return(null===(e=this.authWindow)||void 0===e?void 0:e.associatedEvent)||null}cancel(){this.reject(zl(this.auth,"cancelled-popup-request"))}cleanUp(){this.authWindow&&this.authWindow.close(),this.pollId&&window.clearTimeout(this.pollId),this.authWindow=null,this.pollId=null,Uh.currentPopupAction=null}pollUserCancellation(){const e=()=>{var n,t;(null===(t=null===(n=this.authWindow)||void 0===n?void 0:n.window)||void 0===t?void 0:t.closed)?this.pollId=window.setTimeout(()=>{this.pollId=null,this.reject(zl(this.auth,"popup-closed-by-user"))},8e3):this.pollId=window.setTimeout(e,jh.get())};e()}}Uh.currentPopupAction=null;const zh=new Map;class $h extends Kh{constructor(e,n,t=!1){super(e,["signInViaRedirect","linkViaRedirect","reauthViaRedirect","unknown"],n,void 0,t),this.eventId=null}async execute(){let e=zh.get(this.auth._key());if(!e){try{const n=await async function(e,n){const t=nd(n),i=ed(e);if(!(await i._isAvailable()))return!1;const a="true"===await i._get(t);return await i._remove(t),a}(this.resolver,this.auth)?await super.execute():null;e=()=>Promise.resolve(n)}catch(n){e=()=>Promise.reject(n)}zh.set(this.auth._key(),e)}return this.bypassAuthState||zh.set(this.auth._key(),()=>Promise.resolve(null)),e()}async onAuthEvent(e){if("signInViaRedirect"===e.type)return super.onAuthEvent(e);
1if("unknown"!==e.type){if(e.eventId){const n=await this.auth._redirectUserForId(e.eventId);if(n)return this.user=n,super.onAuthEvent(e);this.resolve(null)}}else this.resolve(null)}async onExecution(){}cleanUp(){}}async function Vh(e,n){return ed(e)._set(nd(n),"true")}function qh(e,n){zh.set(e._key(),n)}function ed(e){return Pc(e._redirectPersistence)}function nd(e){return Zc("pendingRedirect",e.config.apiKey,e.name)}function td(e,n,t){return async function(e,n,t){if(Hn(e.app))return Promise.reject(Vl(e));const i=qc(e);ql(e,n,uh),await i._initializationPromise;const a=Xh(i,t);return await Vh(a,i),a._openRedirect(i,n,"signInViaRedirect")}(e,n,t)}function id(e,n,t){return async function(e,n,t){const i=Ae(e);ql(i.auth,n,uh),await i.auth._initializationPromise;const a=Xh(i.auth,t);await yh(!1,i,n.providerId),await Vh(a,i.auth);const o=await async function(e){const n=Dh(`${e.uid}:::`);return e._redirectEventId=n,await e.auth._setRedirectUser(e),await e.auth._persistUserIfCurrent(e),n}(i);return a._openRedirect(i.auth,n,"linkViaRedirect",o)}(e,n,t)}async function ad(e,n,t=!1){if(Hn(e.app))return Promise.reject(Vl(e));const i=qc(e),a=Xh(i,n),o=new $h(i,a,t),r=await o.execute();return r&&!t&&(delete r.user._redirectEventId,await i._persistUserIfCurrent(r.user),await i._setRedirectUser(null,n)),r}class od{constructor(e){this.auth=e,this.cachedEventUids=new Set,this.consumers=new Set,this.queuedRedirectEvent=null,this.hasHandledPotentialRedirect=!1,this.lastProcessedEventTime=Date.now()}registerConsumer(e){this.consumers.add(e),this.queuedRedirectEvent&&this.isEventForConsumer(this.queuedRedirectEvent,e)&&(this.sendToConsumer(this.queuedRedirectEvent,e),this.saveEventToCache(this.queuedRedirectEvent),this.queuedRedirectEvent=null)}unregisterConsumer(e){this.consumers.delete(e)}onEvent(e){if(this.hasEventBeenHandled(e))return!1;let n=!1;return this.consumers.forEach(t=>{this.isEventForConsumer(e,t)&&(n=!0,this.sendToConsumer(e,t),this.saveEventToCache(e))}),this.hasHandledPotentialRedirect||!function(e){switch(e.type){case"signInViaRedirect":case"linkViaRedirect":case"reauthViaRedirect":return!0;case"unknown":return sd(e);default:return!1}}(e)||(this.hasHandledPotentialRedirect=!0,n||(this.queuedRedirectEvent=e,n=!0)),n}sendToConsumer(e,n){var t;if(e.error&&!sd(e)){const i=(null===(t=e.error.code)||void 0===t?void 0:t.split("auth/")[1])||"internal-error";n.onError(zl(this.auth,i))}else n.onAuthEvent(e)}isEventForConsumer(e,n){const t=null===n.eventId||!!e.eventId&&e.eventId===n.eventId;return n.filter.includes(e.type)&&t}hasEventBeenHandled(e){return Date.now()-this.lastProcessedEventTime>=6e5&&this.cachedEventUids.clear(),this.cachedEventUids.has(rd(e))}saveEventToCache(e){this.cachedEventUids.add(rd(e)),this.lastProcessedEventTime=Date.now()}}function rd(e){return[e.type,e.eventId,e.sessionId,e.tenantId].filter(e=>e).join("-")}function sd({type:e,error:n}){return"unknown"===e&&"auth/no-auth-event"===(null==n?void 0:n.code)}const ud=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,ld=/^https?/;async function cd(e){if(e.config.emulator)return;const{authorizedDomains:n}=await async function(e,n={}){return gc(e,"GET","/v1/projects",n)}(e);for(const i of n)try{if(hd(i))return}catch(t){}Ul(e,"unauthorized-domain")}function hd(e){const n=ac(),{protocol:t,hostname:i}=new URL(n);if(e.startsWith("chrome-extension://")){const a=new URL(e);return""===a.hostname&&""===i?"chrome-extension:"===t&&e.replace("chrome-extension://","")===n.replace("chrome-extension://",""):"chrome-extension:"===t&&a.hostname===i}if(!ld.test(t))return!1;if(ud.test(e))return i===e;const a=e.replace(/\./g,"\\.");return new RegExp("^(.+\\."+a+"|"+a+")$","i").test(i)}const dd=new sc(3e4,6e4);function gd(){const e=Ah().___jsl;if(null==e?void 0:e.H)for(const n of Object.keys(e.H))if(e.H[n].r=e.H[n].r||[],e.H[n].L=e.H[n].L||[],e.H[n].r=[...e.H[n].L],e.CP)for(let t=0;t<e.CP.length;t++)e.CP[t]=null}function pd(e){return new Promise((n,t)=>{var i,a,o,r;function s(){gd(),gapi.load("gapi.iframes",{callback:()=>{n(gapi.iframes.getContext())},ontimeout:()=>{gd(),t(zl(e,"network-request-failed"))},timeout:dd.get()})}if(null===(a=null===(i=Ah().gapi)||void 0===i?void 0:i.iframes)||void 0===a?void 0:a.Iframe)n(gapi.iframes.getContext());else{if(!(null===(o=Ah().gapi)||void 0===o?void 0:o.load)){const n=`__${"iframefcb"}${Math.floor(1e6*Math.random())}`;return Ah()[n]=()=>{gapi.load?s():t(zl(e,"network-request-failed"))},(r=`${nh.gapiScript}?onload=${n}`,nh.loadJS(r)).catch(e=>t(e))}s()}}).catch(e=>{throw md=null,e})}let md=null;const fd=new sc(5e3,15e3),vd={style:{position:"absolute",top:"-100px",width:"1px",height:"1px"},"aria-hidden":"true",tabindex:"-1"},wd=new Map([["identitytoolkit.googleapis.com","p"],["staging-identitytoolkit.sandbox.googleapis.com","s"],["test-identitytoolkit.sandbox.googleapis.com","t"]]);function yd(e){const n=e.config;nc(n.authDomain,e,"auth-domain-config-required");const t=n.emulator?uc(n,"emulator/auth/iframe"):`https://${e.config.authDomain}
1/__/auth/iframe`,i={apiKey:n.apiKey,appName:e.name,v:Qn},a=wd.get(e.config.apiHost);a&&(i.eid=a);const o=e._getFrameworks();return o.length&&(i.fw=o.join(",")),`${t}?${ke(i).slice(1)}`}async function bd(e){const n=await function(e){return md=md||pd(e),md}(e),t=Ah().gapi;return nc(t,e,"internal-error"),n.open({where:document.body,url:yd(e),messageHandlersFilter:t.iframes.CROSS_ORIGIN_IFRAMES_FILTER,attributes:vd,dontclear:!0},n=>new Promise(async(t,i)=>{await n.restyle({setHideOnLeave:!1});const a=zl(e,"network-request-failed"),o=Ah().setTimeout(()=>{i(a)},fd.get());function r(){Ah().clearTimeout(o),t(n)}n.ping(r).then(r,()=>{i(a)})}))}const Sd={location:"yes",resizable:"yes",statusbar:"yes",toolbar:"no"};class Cd{constructor(e){this.window=e,this.associatedEvent=null}close(){if(this.window)try{this.window.close()}catch(e){}}}function Ld(e,n,t,i=500,a=600){const o=Math.max((window.screen.availHeight-a)/2,0).toString(),r=Math.max((window.screen.availWidth-i)/2,0).toString();let s="";const u=Object.assign(Object.assign({},Sd),{width:i.toString(),height:a.toString(),top:o,left:r}),l=ye().toLowerCase();t&&(s=Xc(l)?"_blank":t),Rc(l)&&(n=n||"http://localhost",u.scrollbars="yes");const c=Object.entries(u).reduce((e,[n,t])=>`${e}${n}=${t},`,"");if(function(e=ye()){var n;return Kc(e)&&!!(null===(n=window.navigator)||void 0===n?void 0:n.standalone)}(l)&&"_self"!==s)return function(e,n){const t=document.createElement("a");t.href=e,t.target=n;const i=document.createEvent("MouseEvent");i.initMouseEvent("click",!0,!0,window,1,0,0,0,0,!1,!1,!1,!1,1,null),t.dispatchEvent(i)}(n||"",s),new Cd(null);const h=window.open(n||"",s,c);nc(h,e,"popup-blocked");try{h.focus()}catch(d){}return new Cd(h)}const Td="__/auth/handler",Ed="emulator/auth/handler",kd=encodeURIComponent("fac");async function Dd(e,n,t,i,a,o){nc(e.config.authDomain,e,"auth-domain-config-required"),nc(e.config.apiKey,e,"invalid-api-key");const r={apiKey:e.config.apiKey,appName:e.name,authType:t,redirectUrl:i,v:Qn,eventId:a};if(n instanceof uh){n.setDefaultLanguage(e.languageCode),r.providerId=n.providerId||"",function(e){for(const n in e)if(Object.prototype.hasOwnProperty.call(e,n))return!1;return!0}(n.getCustomParameters())||(r.customParameters=JSON.stringify(n.getCustomParameters()));for(const[e,n]of Object.entries({}))r[e]=n}if(n instanceof lh){const e=n.getScopes().filter(e=>""!==e);e.length>0&&(r.scopes=e.join(","))}e.tenantId&&(r.tid=e.tenantId);const s=r;for(const c of Object.keys(s))void 0===s[c]&&delete s[c];const u=await e._getAppCheckToken(),l=u?`#${kd}=${encodeURIComponent(u)}`:"";return`${function({config:e}){if(!e.emulator)return`https://${e.authDomain}/${Td}`;return uc(e,Ed)}(e)}?${ke(s).slice(1)}${l}`}const xd="webStorageSupport";const Ad=class{constructor(){this.eventManagers={},this.iframes={},this.originValidationPromises={},this._redirectPersistence=Eh,this._completeRedirectFn=ad,this._overrideRedirectResult=qh}async _openPopup(e,n,t,i){var a;ic(null===(a=this.eventManagers[e._key()])||void 0===a?void 0:a.manager,"_initialize() not called before _openPopup()");return Ld(e,await Dd(e,n,t,ac(),i),Dh())}async _openRedirect(e,n,t,i){await this._originValidation(e);return function(e){Ah().location.href=e}(await Dd(e,n,t,ac(),i)),new Promise(()=>{})}_initialize(e){const n=e._key();if(this.eventManagers[n]){const{manager:e,promise:t}=this.eventManagers[n];return e?Promise.resolve(e):(ic(t,"If manager is not set, promise should be"),t)}const t=this.initAndGetManager(e);return this.eventManagers[n]={promise:t},t.catch(()=>{delete this.eventManagers[n]}),t}async initAndGetManager(e){const n=await bd(e),t=new od(e);return n.register("authEvent",n=>{nc(null==n?void 0:n.authEvent,e,"invalid-auth-event");return{status:t.onEvent(n.authEvent)?"ACK":"ERROR"}},gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER),this.eventManagers[e._key()]={manager:t},this.iframes[e._key()]=n,t}_isIframeWebStorageSupported(e,n){this.iframes[e._key()].send(xd,{type:xd},t=>{var i;const a=null===(i=null==t?void 0:t[0])||void 0===i?void 0:i[xd];void 0!==a&&n(!!a),Ul(e,"internal-error")},gapi.iframes.CROSS_ORIGIN_IFRAMES_FILTER)}_originValidation(e){const n=e._key();return this.originValidationPromises[n]||(this.originValidationPromises[n]=cd(e)),this.originValidationPromises[n]}get _shouldInitProactively(){return Wc()||Fc()||Kc()}};var Yd="@firebase/auth",_d="1.7.9";class Id{constructor(e){this.auth=e,this.internalListeners=new Map}getUid(){var e;return this.assertAuthConfigured(),(null===(e=this.auth.currentUser)||void 0===e?void 0:e.uid)||null}async getToken(e){if(this.assertAuthConfigured(),await this.auth._initializationPromise,!this.auth.currentUser)return null;return{accessToken:await this.auth.currentUser.getIdToken(e)}}addAuthTokenListener(e){if(this.assertAuthConfigured(),this.internalListeners.has(e))return;const n=this.auth.onIdTokenChanged(n=>{e((null==n?void 0:n.stsTokenManager.accessToken)||null)});this.internalListeners.set(e,n),this.updateProactiveRefresh()}removeAuthTokenListener(e){this.assertAuthConfigured();const n=this.internalListeners.get(e);n&&(this.internalListeners.delete(e),n(),this.updateProactiveRefresh())}assertAuthConfigured(){nc(this.auth._initializationPromise,"dependent-sdk-initialized-before-auth")}updateProactiveRefresh(){this.internalListeners.size>0?this.auth._startProactiveRefresh():this.auth._stopProactiveRefresh()}}const Pd=ve("authIdTokenMaxAge")||300;let Nd=null;function Md(e=jn()){const n=Xn(e,"auth");if(n.isInitialized())return n.getImmediate();const t=function(e,n){const t=Xn(e,"auth");if(t.isInitialized()){const e=t.getImmediate();if(Te(t.getOptions(),null!=n?n:{}))return e;Ul(e,"already-initialized")}return t.initialize({options:n})}(e,{popupRedirectResolver:Ad,persistence:[Fh,Lh,Eh]}),i=ve("authTokenSyncURL");if(i&&"boolean"==typeof isSecureContext&&isSecureContext){const e=new URL(i,location.origin);if(location.origin===e.origin){const n=(a=e.toString(),async e=>{const n=e&&await e.getIdTokenResult(),t=n&&((new Date).getTime()-Date.parse(n.issuedAtTime))/1e3;if(t&&t>Pd)return;const i=null==n?void 0:n.token;Nd!==i&&(Nd=i,await fetch(a,{method:i?"POST":"DELETE",headers:i?{Authorization:`Bearer ${i}`}:{}}))});!function(e,n,t){Ae(e).beforeAuthStateChanged(n,t)}(t,n,()=>n(t.currentUser)),function(e,n,t,i){Ae(e).onIdTokenChanged(n,t,i)}(t,e=>n(e))}}var a;const o=me("auth");return o&&th(t,`http://${o}`),t}var Zd;function Jd(e,n,t){if("function"==typeof e?e===n:e.has(n))return arguments.length<3?n:t;throw new TypeError("Private element is not present on this object")}
1function Bd(e,n){return e.get(Jd(e,n))}function Rd(e,n,t){(function(e,n){if(n.has(e))throw new TypeError("Cannot initialize the same private elements twice on an object")})(e,n),n.set(e,t)}nh={loadJS:e=>new Promise((n,t)=>{const i=document.createElement("script");var a,o;i.setAttribute("src",e),i.onload=n,i.onerror=e=>{const n=zl("internal-error");n.customData=e,t(n)},i.type="text/javascript",i.charset="UTF-8",(null!==(o=null===(a=document.getElementsByTagName("head"))||void 0===a?void 0:a[0])&&void 0!==o?o:document).appendChild(i)}),gapiScript:"https://apis.google.com/js/api.js",recaptchaV2Script:"https://www.google.com/recaptcha/api.js",recaptchaEnterpriseScript:"https://www.google.com/recaptcha/enterprise.js?render="},Zd="Browser",Fn(new Ye("auth",(e,{options:n})=>{const t=e.getProvider("app").getImmediate(),i=e.getProvider("heartbeat"),a=e.getProvider("app-check-internal"),{apiKey:o,authDomain:r}=t.options;nc(o&&!o.includes(":"),"invalid-api-key",{appName:t.name});const s={apiKey:o,authDomain:r,clientPlatform:Zd,apiHost:"identitytoolkit.googleapis.com",tokenApiHost:"securetoken.googleapis.com",apiScheme:"https",sdkClientVersion:Uc(Zd)},u=new Vc(t,i,a,s);return function(e,n){const t=(null==n?void 0:n.persistence)||[],i=(Array.isArray(t)?t:[t]).map(Pc);(null==n?void 0:n.errorMap)&&e._updateErrorMap(n.errorMap),e._initializeWithPersistence(i,null==n?void 0:n.popupRedirectResolver)}(u,n),u},"PUBLIC").setInstantiationMode("EXPLICIT").setInstanceCreatedCallback((e,n,t)=>{e.getProvider("auth-internal").initialize()})),Fn(new Ye("auth-internal",e=>{const n=qc(e.getProvider("auth").getImmediate());return new Id(n)},"PRIVATE").setInstantiationMode("EXPLICIT")),Wn(Yd,_d,function(e){switch(e){case"Node":return"node";case"ReactNative":return"rn";case"Worker":return"webworker";case"Cordova":return"cordova";case"WebExtension":return"web-extension";default:return}}(Zd)),Wn(Yd,_d,"esm2017");const Fd={},Xd=e=>new Promise(n=>{if(!e)return n();const t=window.scrollX,i=window.scrollY;Fd.restoreFocusTimeout=setTimeout(()=>{Fd.previousActiveElement instanceof HTMLElement?(Fd.previousActiveElement.focus(),Fd.previousActiveElement=null):document.body&&document.body.focus(),n()},100),window.scrollTo(t,i)}),Hd="swal2-",Gd=["container","shown","height-auto","iosfix","popup","modal","no-backdrop","no-transition","toast","toast-shown","show","hide","close","title","html-container","actions","confirm","deny","cancel","footer","icon","icon-content","image","input","file","range","select","radio","checkbox","label","textarea","inputerror","input-label","validation-message","progress-steps","active-progress-step","progress-step","progress-step-line","loader","loading","styled","top","top-start","top-end","top-left","top-right","center","center-start","center-end","center-left","center-right","bottom","bottom-start","bottom-end","bottom-left","bottom-right","grow-row","grow-column","grow-fullscreen","rtl","timer-progress-bar","timer-progress-bar-container","scrollbar-measure","icon-success","icon-warning","icon-info","icon-question","icon-error","draggable","dragging"].reduce((e,n)=>(e[n]=Hd+n,e),{}),Od=["success","warning","info","question","error"].reduce((e,n)=>(e[n]=Hd+n,e),{}),Qd="SweetAlert2:",Kd=e=>e.charAt(0).toUpperCase()+e.slice(1),jd=e=>{console.warn(`${Qd} ${"object"==typeof e?e.join(" "):e}`)},Wd=e=>{console.error(`${Qd} ${e}`)},Ud=[],zd=(e,n=null)=>{var t;t=`"${e}" is deprecated and will be removed in the next major release.${n?` Use "${n}" instead.`:""}`,Ud.includes(t)||(Ud.push(t),jd(t))},$d=e=>"function"==typeof e?e():e,Vd=e=>e&&"function"==typeof e.toPromise,qd=e=>Vd(e)?e.toPromise():Promise.resolve(e),eg=e=>e&&Promise.resolve(e)===e,ng=()=>document.body.querySelector(`.${Gd.container}`),tg=e=>{const n=ng();return n?n.querySelector(e):null},ig=e=>tg(`.${e}`),ag=()=>ig(Gd.popup),og=()=>ig(Gd.icon),rg=()=>ig(Gd.title),sg=()=>ig(Gd["html-container"]),ug=()=>ig(Gd.image),lg=()=>ig(Gd["progress-steps"]),cg=()=>ig(Gd["validation-message"]),hg=()=>tg(`.${Gd.actions} .${Gd.confirm}`),dg=()=>tg(`.${Gd.actions} .${Gd.cancel}`),gg=()=>tg(`.${Gd.actions} .${Gd.deny}`),pg=()=>tg(`.${Gd.loader}`),mg=()=>ig(Gd.actions),fg=()=>ig(Gd.footer),vg=()=>ig(Gd["timer-progress-bar"]),wg=()=>ig(Gd.close),yg=()=>{const e=ag();if(!e)return[];
vendor: 1,030 bytes, line 1
1const n=e.querySelectorAll('[tabindex]:not([tabindex="-1"]):not([tabindex="0"])'),t=Array.from(n).sort((e,n)=>{const t=parseInt(e.getAttribute("tabindex")||"0"),i=parseInt(n.getAttribute("tabindex")||"0");return t>i?1:t<i?-1:0}),i=e.querySelectorAll('\n a[href],\n area[href],\n input:not([disabled]),\n select:not([disabled]),\n textarea:not([disabled]),\n button:not([disabled]),\n iframe,\n object,\n embed,\n [tabindex="0"],\n [contenteditable],\n audio[controls],\n video[controls],\n summary\n'),a=Array.from(i).filter(e=>"-1"!==e.getAttribute("tabindex"));return[...new Set(t.concat(a))].filter(e=>Jg(e))},bg=()=>Lg(document.body,Gd.shown)&&!Lg(document.body,Gd["toast-shown"])&&!Lg(document.body,Gd["no-backdrop"]),Sg=()=>{const e=ag();return!!e&&Lg(e,Gd.toast)},Cg=(e,n)=>{if(e.textContent="",n){const t=(new DOMParser).parseFromString(n,"text/html"),i=t.querySelector("head");i&&Array.from(i.childNodes).forEach(n=>{e.appendChild(n)});const a=t.querySelector("body");a&&Array.from(a.childNodes).forEach(n=>
1{n instanceof HTMLVideoElement||n instanceof HTMLAudioElement?e.appendChild(n.cloneNode(!0)):e.appendChild(n)})}},Lg=(e,n)=>{if(!n)return!1;const t=n.split(/\s+/);for(let i=0;i<t.length;i++)if(!e.classList.contains(t[i]))return!1;return!0},Tg=(e,n,t)=>{if(((e,n)=>{Array.from(e.classList).forEach(t=>{Object.values(Gd).includes(t)||Object.values(Od).includes(t)||Object.values(n.showClass||{}).includes(t)||e.classList.remove(t)})})(e,n),!n.customClass)return;const i=n.customClass[t];i&&("string"==typeof i||i.forEach?xg(e,i):jd(`Invalid type of customClass.${t}! Expected string or iterable object, got "${typeof i}"`))},Eg=(e,n)=>{if(!n)return null;switch(n){case"select":case"textarea":case"file":return e.querySelector(`.${Gd.popup} > .${Gd[n]}`);case"checkbox":return e.querySelector(`.${Gd.popup} > .${Gd.checkbox} input`);case"radio":return e.querySelector(`.${Gd.popup} > .${Gd.radio} input:checked`)||e.querySelector(`.${Gd.popup} > .${Gd.radio} input:first-child`);case"range":return e.querySelector(`.${Gd.popup} > .${Gd.range} input`);default:return e.querySelector(`.${Gd.popup} > .${Gd.input}`)}},kg=e=>{if(e.focus(),"file"!==e.type){const n=e.value;e.value="",e.value=n}},Dg=(e,n,t)=>{e&&n&&("string"==typeof n&&(n=n.split(/\s+/).filter(Boolean)),n.forEach(n=>{Array.isArray(e)?e.forEach(e=>{t?e.classList.add(n):e.classList.remove(n)}):t?e.classList.add(n):e.classList.remove(n)}))},xg=(e,n)=>{Dg(e,n,!0)},Ag=(e,n)=>{Dg(e,n,!1)},Yg=(e,n)=>{const t=Array.from(e.children);for(let i=0;i<t.length;i++){const e=t[i];if(e instanceof HTMLElement&&Lg(e,n))return e}},_g=(e,n,t)=>{t===`${parseInt(`${t}`)}`&&(t=parseInt(t)),t||0===parseInt(`${t}`)?e.style.setProperty(n,"number"==typeof t?`${t}px`:t):e.style.removeProperty(n)},Ig=(e,n="flex")=>{e&&(e.style.display=n)},Pg=e=>{e&&(e.style.display="none")},Ng=(e,n="block")=>{e&&new MutationObserver(()=>{Zg(e,e.innerHTML,n)}).observe(e,{childList:!0,subtree:!0})},Mg=(e,n,t,i)=>{const a=e.querySelector(n);a&&a.style.setProperty(t,i)},Zg=(e,n,t="flex")=>{n?Ig(e,t):Pg(e)},Jg=e=>Boolean(e&&(e.offsetWidth||e.offsetHeight||e.getClientRects().length)),Bg=e=>Boolean(e.scrollHeight>e.clientHeight),Rg=e=>{const n=window.getComputedStyle(e),t=parseFloat(n.getPropertyValue("animation-duration")||"0"),i=parseFloat(n.getPropertyValue("transition-duration")||"0");return t>0||i>0},Fg=(e,n=!1)=>{const t=vg();t&&Jg(t)&&(n&&(t.style.transition="none",t.style.width="100%"),setTimeout(()=>{t.style.transition=`width ${e/1e3}s linear`,t.style.width="0%"},10))},Xg=`\n <div aria-labelledby="${Gd.title}" aria-describedby="${Gd["html-container"]}" class="${Gd.popup}" tabindex="-1">\n <button type="button" class="${Gd.close}"></button>\n <ul class="${Gd["progress-steps"]}"></ul>\n <div class="${Gd.icon}"></div>\n <img class="${Gd.image}" />\n <h2 class="${Gd.title}" id="${Gd.title}"></h2>\n <div class="${Gd["html-container"]}" id="${Gd["html-container"]}"></div>\n <input class="${Gd.input}" id="${Gd.input}" />\n <input type="file" class="${Gd.file}" />\n <div class="${Gd.range}">\n <input type="range" />\n <output></output>\n </div>\n <select class="${Gd.select}" id="${Gd.select}"></select>\n <div class="${Gd.radio}"></div>\n <label class="${Gd.checkbox}">\n <input type="checkbox" id="${Gd.checkbox}" />\n <span class="${Gd.label}"></span>\n </label>\n <textarea class="${Gd.textarea}" id="${Gd.textarea}"></textarea>\n <div class="${Gd["validation-message"]}" id="${Gd["validation-message"]}"></div>\n <div class="${Gd.actions}">\n <div class="${Gd.loader}"></div>\n <button type="button" class="${Gd.confirm}"></button>\n <button type="button" class="${Gd.deny}"></button>\n <button type="button" class="${Gd.cancel}"></button>\n </div>\n <div class="${Gd.footer}"></div>\n <div class="${Gd["timer-progress-bar-container"]}">\n <div class="${Gd["timer-progress-bar"]}"></div>\n </div>\n </div>\n`.replace(/(^|\n)\s*/g,""),Hg=()=>{Fd.currentInstance&&Fd.currentInstance.resetValidationMessage()},Gg=e=>{const n=(()=>{const e=ng();return!!e&&(e.remove(),Ag([document.documentElement,document.body],[Gd["no-backdrop"],Gd["toast-shown"],Gd["has-column"]]),!0)})();if("undefined"==typeof window||"undefined"==typeof document)return void Wd("SweetAlert2 requires document to initialize");const t=document.createElement("div");t.className=Gd.container,n&&xg(t,Gd["no-transition"]),Cg(t,Xg),t.dataset.swal2Theme=e.theme;const i=(e=>{if("string"==typeof e){const n=document.querySelector(e);
vendor: 14,903 bytes, line 1
1if(!n)throw new Error(`Target element "${e}" not found`);return n}return e})(e.target||"body");i.appendChild(t),e.topLayer&&(t.setAttribute("popover",""),t.showPopover()),(e=>{const n=ag();n&&(n.setAttribute("role",e.toast?"alert":"dialog"),n.setAttribute("aria-live",e.toast?"polite":"assertive"),e.toast||n.setAttribute("aria-modal","true"))})(e),(e=>{"rtl"===window.getComputedStyle(e).direction&&(xg(ng(),Gd.rtl),Fd.isRTL=!0)})(i),(()=>{const e=ag();if(!e)return;const n=Yg(e,Gd.input),t=Yg(e,Gd.file),i=e.querySelector(`.${Gd.range} input`),a=e.querySelector(`.${Gd.range} output`),o=Yg(e,Gd.select),r=e.querySelector(`.${Gd.checkbox} input`),s=Yg(e,Gd.textarea);n&&(n.oninput=Hg),t&&(t.onchange=Hg),o&&(o.onchange=Hg),r&&(r.onchange=Hg),s&&(s.oninput=Hg),i&&a&&(i.oninput=()=>{Hg(),a.value=i.value},i.onchange=()=>{Hg(),a.value=i.value})})()},Og=(e,n)=>{e instanceof HTMLElement?n.appendChild(e):"object"==typeof e?Qg(e,n):e&&Cg(n,e)},Qg=(e,n)=>{"jquery"in e?Kg(n,e):Cg(n,e.toString())},Kg=(e,n)=>{if(e.textContent="",0 in n)for(let t=0;t in n;t++)e.appendChild(n[t].cloneNode(!0));else e.appendChild(n.cloneNode(!0))},jg=(e,n)=>{const t=mg(),i=pg();t&&i&&(n.showConfirmButton||n.showDenyButton||n.showCancelButton?Ig(t):Pg(t),Tg(t,n,"actions"),function(e,n,t){const i=hg(),a=gg(),o=dg();if(!i||!a||!o)return;Ug(i,"confirm",t),Ug(a,"deny",t),Ug(o,"cancel",t),function(e,n,t,i){if(!i.buttonsStyling)return void Ag([e,n,t],Gd.styled);xg([e,n,t],Gd.styled),i.confirmButtonColor&&e.style.setProperty("--swal2-confirm-button-background-color",i.confirmButtonColor);i.denyButtonColor&&n.style.setProperty("--swal2-deny-button-background-color",i.denyButtonColor);i.cancelButtonColor&&t.style.setProperty("--swal2-cancel-button-background-color",i.cancelButtonColor);Wg(e),Wg(n),Wg(t)}(i,a,o,t),t.reverseButtons&&(t.toast?(e.insertBefore(o,i),e.insertBefore(a,i)):(e.insertBefore(o,n),e.insertBefore(a,n),e.insertBefore(i,n)))}(t,i,n),Cg(i,n.loaderHtml||""),Tg(i,n,"loader"))};function Wg(e){const n=window.getComputedStyle(e);if(n.getPropertyValue("--swal2-action-button-focus-box-shadow"))return;const t=n.backgroundColor.replace(/rgba?\((\d+), (\d+), (\d+).*/,"rgba($1, $2, $3, 0.5)");e.style.setProperty("--swal2-action-button-focus-box-shadow",n.getPropertyValue("--swal2-outline").replace(/ rgba\(.*/,` ${t}`))}function Ug(e,n,t){const i=Kd(n);Zg(e,t[`show${i}Button`],"inline-block"),Cg(e,t[`${n}ButtonText`]||""),e.setAttribute("aria-label",t[`${n}ButtonAriaLabel`]||""),e.className=Gd[n],Tg(e,t,`${n}Button`)}const zg=(e,n)=>{const t=ng();t&&(!function(e,n){"string"==typeof n?e.style.background=n:n||xg([document.documentElement,document.body],Gd["no-backdrop"])}(t,n.backdrop),function(e,n){if(!n)return;n in Gd?xg(e,Gd[n]):(jd('The "position" parameter is not valid, defaulting to "center"'),xg(e,Gd.center))}(t,n.position),function(e,n){if(!n)return;xg(e,Gd[`grow-${n}`])}(t,n.grow),Tg(t,n,"container"))};var $g={innerParams:new WeakMap,domCache:new WeakMap,focusedElement:new WeakMap};const Vg=["input","file","range","select","radio","checkbox","textarea"],qg=e=>{if(!e.input)return;if(!rp[e.input])return void Wd(`Unexpected type of input! Expected ${Object.keys(rp).join(" | ")}, got "${e.input}"`);const n=ap(e.input);if(!n)return;const t=rp[e.input](n,e);Ig(n),e.inputAutoFocus&&setTimeout(()=>{kg(t)})},ep=(e,n)=>{const t=ag();if(!t)return;const i=Eg(t,e);if(i){(e=>{for(let n=0;n<e.attributes.length;n++){const t=e.attributes[n].name;["id","type","value","style"].includes(t)||e.removeAttribute(t)}})(i);for(const e in n)i.setAttribute(e,n[e])}},np=e=>{if(!e.input)return;const n=ap(e.input);n&&Tg(n,e,"input")},tp=(e,n)=>{!e.placeholder&&n.inputPlaceholder&&(e.placeholder=n.inputPlaceholder)},ip=(e,n,t)=>{if(t.inputLabel){const i=document.createElement("label"),a=Gd["input-label"];i.setAttribute("for",e.id),i.className=a,"object"==typeof t.customClass&&xg(i,t.customClass.inputLabel),i.innerText=t.inputLabel,n.insertAdjacentElement("beforebegin",i)}},ap=e=>{const n=ag();if(n)return Yg(n,Gd[e]||Gd.input)},op=(e,n)=>{["string","number"].includes(typeof n)?e.value=`${n}`:eg(n)||jd(`Unexpected type of inputValue! Expected "string", "number" or "Promise", got "${typeof n}"`)},rp={};rp.text=rp.email=rp.password=rp.number=rp.tel=rp.url=rp.search=rp.date=rp["datetime-local"]=rp.time=rp.week=rp.month=(e,n)=>{const t=e;return op(t,n.inputValue),ip(t,t,n),tp(t,n),t.type=n.input,t},rp.file=(e,n)=>{const t=e;return ip(t,t,n),tp(t,n),t},rp.range=(e,n)=>{const t=e,i=t.querySelector("input"),a=t.querySelector("output");return i&&(op(i,n.inputValue),i.type=n.input,ip(i,e,n)),a&&op(a,n.inputValue),e},rp.select=(e,n)=>{const t=e;if(t.textContent="",n.inputPlaceholder){const e=document.createElement("option");Cg(e,n.inputPlaceholder),e.value="",e.disabled=!0,e.selected=!0,t.appendChild(e)}return ip(t,t,n),t},rp.radio=e=>(e.textContent="",e),rp.checkbox=(e,n)=>{const t=ag();if(!t)throw new Error("Popup not found");const i=Eg(t,"checkbox");if(!i)throw new Error("Checkbox input not found");i.value="1",i.checked=Boolean(n.inputValue);const a=e.querySelector("span");if(a){const e=n.inputPlaceholder||n.inputLabel;e&&Cg(a,e)}return i},rp.textarea=(e,n)=>{const t=e;op(t,n.inputValue),tp(t,n),ip(t,t,n);return setTimeout(()=>{if("MutationObserver"in window){const e=ag();if(!e)return;const i=parseInt(window.getComputedStyle(e).width);new MutationObserver(()=>{if(!document.body.contains(t))return;const e=t.offsetWidth+(a=t,parseInt(window.getComputedStyle(a).marginLeft)+parseInt(window.getComputedStyle(a).marginRight));var a;const o=ag();o&&(e>i?o.style.width=`${e}px`:_g(o,"width",n.width))}).observe(t,{attributes:!0,attributeFilter:["style"]})}}),t};const sp=(e,n)=>{const t=sg();t&&(Ng(t),Tg(t,n,"htmlContainer"),n.html?(Og(n.html,t),Ig(t,"block")):n.text?(t.textContent=n.text,Ig(t,"block")):Pg(t),((e,n)=>{const t=ag();if(!t)return;const i=$g.innerParams.get(e),a=!i||n.input!==i.input;Vg.forEach(e=>{const i=Yg(t,Gd[e]);i&&(ep(e,n.inputAttributes),i.className=Gd[e],a&&Pg(i))}),n.input&&(a&&qg(n),np(n))})(e,n))},up=(e,n)=>{for(const[t,i]of Object.entries(Od))n.icon!==t&&Ag(e,i);xg(e,n.icon&&Od[n.icon]),hp(e,n),lp(),Tg(e,n,"icon")},lp=()=>{const e=ag();if(!e)return;const n=window.getComputedStyle(e).getPropertyValue("background-color"),t=e.querySelectorAll("[class^=swal2-success-circular-line], .swal2-success-fix");for(let i=0;i<t.length;i++)t[i].style.backgroundColor=n},cp=(e,n)=>{if(!n.icon&&!n.iconHtml)return;let t=e.innerHTML,i="";if(n.iconHtml)i=dp(n.iconHtml);else if("success"===n.icon)i=(e=>`\n ${e.animation?'<div class="swal2-success-circular-line-left"></div>':""}\n <span class="swal2-success-line-tip"></span> <span class="swal2-success-line-long"></span>\n <div class="swal2-success-ring"></div>\n ${e.animation?'<div class="swal2-success-fix"></div>':""}\n ${e.animation?'<div class="swal2-success-circular-line-right"></div>':""}\n`)(n),t=t.replace(/ style=".*?"/g,"");else if("error"===n.icon)i='\n <span class="swal2-x-mark">\n <span class="swal2-x-mark-line-left"></span>\n <span class="swal2-x-mark-line-right"></span>\n </span>\n';else if(n.icon){i=dp({question:"?",warning:"!",info:"i"}[n.icon])}t.trim()!==i.trim()&&Cg(e,i)},hp=(e,n)=>{if(n.iconColor){e.style.color=n.iconColor,e.style.borderColor=n.iconColor;for(const t of[".swal2-success-line-tip",".swal2-success-line-long",".swal2-x-mark-line-left",".swal2-x-mark-line-right"])Mg(e,t,"background-color",n.iconColor);Mg(e,".swal2-success-ring","border-color",n.iconColor)}},dp=e=>`<div class="${Gd["icon-content"]}">${e}</div>`;let gp=!1,pp=0,mp=0,fp=0,vp=0;const wp=e=>{const n=ag();if(!n)return;const t=og();if(e.target===n||t&&t.contains(e.target)){gp=!0;const t=Sp(e);pp=t.clientX,mp=t.clientY,fp=parseInt(n.style.insetInlineStart)||0,vp=parseInt(n.style.insetBlockStart)||0,xg(n,"swal2-dragging")}},yp=e=>{const n=ag();if(n&&gp){let{clientX:t,clientY:i}=Sp(e);const a=t-pp;n.style.insetInlineStart=`${fp+(Fd.isRTL?-a:a)}px`,n.style.insetBlockStart=`${vp+(i-mp)}px`}},bp=()=>{const e=ag();gp=!1,Ag(e,"swal2-dragging")},Sp=e=>{let n=0,t=0;return e.type.startsWith("mouse")?(n=e.clientX,t=e.clientY):e.type.startsWith("touch")&&(n=e.touches[0].clientX,t=e.touches[0].clientY),{clientX:n,clientY:t}},Cp=(e,n)=>{const t=ng(),i=ag();if(t&&i){if(n.toast){_g(t,"width",n.width),i.style.width="100%";const e=pg();e&&i.insertBefore(e,og())}else _g(i,"width",n.width);_g(i,"padding",n.padding),n.color&&(i.style.color=n.color),n.background&&(i.style.background=n.background),Pg(cg()),Lp(i,n),n.draggable&&!n.toast?(xg(i,Gd.draggable),(e=>{e.addEventListener("mousedown",wp),document.body.addEventListener("mousemove",yp),e.addEventListener("mouseup",bp),e.addEventListener("touchstart",wp),document.body.addEventListener("touchmove",yp),e.addEventListener("touchend",bp)})(i)):(Ag(i,Gd.draggable),(e=>{e.removeEventListener("mousedown",wp),document.body.removeEventListener("mousemove",yp),e.removeEventListener("mouseup",bp),e.removeEventListener("touchstart",wp),document.body.removeEventListener("touchmove",yp),e.removeEventListener("touchend",bp)})(i))}},Lp=(e,n)=>{const t=n.showClass||{};e.className=`${Gd.popup} ${Jg(e)?t.popup:""}`,n.toast?(xg([document.documentElement,document.body],Gd["toast-shown"]),xg(e,Gd.toast)):xg(e,Gd.modal),Tg(e,n,"popup"),"string"==typeof n.customClass&&xg(e,n.customClass),n.icon&&xg(e,Gd[`icon-${n.icon}`])},Tp=e=>{const n=document.createElement("li");return xg(n,Gd["progress-step"]),Cg(n,e),n},Ep=e=>{const n=document.createElement("li");return xg(n,Gd["progress-step-line"]),e.progressStepsDistance&&_g(n,"width",e.progressStepsDistance),n},kp=(e,n)=>{var t;Cp(0,n),zg(0,n),((e,n)=>{const t=lg();if(!t)return;const{progressSteps:i,currentProgressStep:a}=n;i&&0!==i.length&&void 0!==a?(Ig(t),t.textContent="",a>=i.length&&jd("Invalid currentProgressStep parameter, it should be less than progressSteps.length (currentProgressStep like JS arrays starts from 0)"),i.forEach((e,o)=>{const r=Tp(e);if(t.appendChild(r),o===a&&xg(r,Gd["active-progress-step"]),o!==i.length-1){const e=Ep(n);t.appendChild(e)}})):Pg(t)})(0,n),((e,n)=>{const t=$g.innerParams.get(e),i=og();if(!i)return;if(t&&n.icon===t.icon)return cp(i,n),void up(i,n);if(!n.icon&&!n.iconHtml)return void Pg(i);if(n.icon&&-1===Object.keys(Od).indexOf(n.icon))return Wd(`Unknown icon! Expected "success", "error", "warning", "info" or "question", got "${n.icon}"`),void Pg(i);Ig(i),cp(i,n),up(i,n),xg(i,n.showClass&&n.showClass.icon),window.matchMedia("(prefers-color-scheme: dark)").addEventListener("change",lp)})(e,n),((e,n)=>{const t=ug();t&&(n.imageUrl?(Ig(t,""),t.setAttribute("src",n.imageUrl),t.setAttribute("alt",n.imageAlt||""),_g(t,"width",n.imageWidth),_g(t,"height",n.imageHeight),t.className=Gd.image,Tg(t,n,"image")):Pg(t))})(0,n),((e,n)=>{const t=rg();t&&(Ng(t),Zg(t,Boolean(n.title||n.titleText),"block"),n.title&&Og(n.title,t),n.titleText&&(t.innerText=n.titleText),Tg(t,n,"title"))})(0,n),((e,n)=>{const t=wg();t&&(Cg(t,n.closeButtonHtml||""),Tg(t,n,"closeButton"),Zg(t,n.showCloseButton),t.setAttribute("aria-label",n.closeButtonAriaLabel||""))})(0,n),sp(e,n),jg(0,n),((e,n)=>{const t=fg();t&&(Ng(t),Zg(t,Boolean(n.footer),"block"),n.footer&&Og(n.footer,t),Tg(t,n,"footer"))})(0,n);const i=ag();"function"==typeof n.didRender&&i&&n.didRender(i),null===(t=Fd.eventEmitter)||void 0===t||t.emit("didRender",i)},Dp=()=>{var e;return null===(e=hg())||void 0===e?void 0:e.click()},xp=Object.freeze({cancel:"cancel",backdrop:"backdrop",close:"close",esc:"esc",timer:"timer"}),Ap=e=>{if(e.keydownTarget&&e.keydownHandlerAdded&&e.keydownHandler){const n=e.keydownHandler;e.keydownTarget.removeEventListener("keydown",n,{capture:e.keydownListenerCapture}),e.keydownHandlerAdded=!1}},Yp=(e,n)=>{var t;const i=yg();if(i.length)return-2===(e+=n)&&(e=i.length-1),e===i.length?e=0:-1===e&&(e=i.length-1),void i[e].focus();null===(t=ag())||void 0===t||t.focus()},_p=["ArrowRight","ArrowDown"],Ip=["ArrowLeft","ArrowUp"],Pp=(e,n,t)=>{e&&(n.isComposing||229===n.keyCode||(e.stopKeydownPropagation&&n.stopPropagation(),"Enter"===n.key?Np(n,e):"Tab"===n.key?Mp(n):[..._p,...Ip].includes(n.key)?Zp(n.key):"Escape"===n.key&&Jp(n,e,t)))},Np=(e,n)=>{if(!$d(n.allowEnterKey))return;const t=ag();if(!t||!n.input)return;const i=Eg(t,n.input);if(e.target&&i&&e.target instanceof HTMLElement&&e.target.outerHTML===i.outerHTML){if(["textarea","file"].includes(n.input))return;Dp(),e.preventDefault()}},Mp=e=>{const n=e.target,t=yg();let i=-1;for(let a=0;a<t.length;a++)if(n===t[a]){i=a;break}e.shiftKey?Yp(i,-1):Yp(i,1),e.stopPropagation(),e.preventDefault()},Zp=e=>{const n=mg(),t=hg(),i=gg(),a=dg();if(!(n&&t&&i&&a))return;const o=[t,i,a];if(document.activeElement instanceof HTMLElement&&!o.includes(document.activeElement))return;const r=_p.includes(e)?"nextElementSibling":"previousElementSibling";let s=document.activeElement;if(s){for(let e=0;e<n.children.length;e++){if(s=s[r],!s)return;if(s instanceof HTMLButtonElement&&Jg(s))break}s instanceof HTMLButtonElement&&s.focus()}},Jp=(e,n,t)=>{e.preventDefault(),$d(n.allowEscapeKey)&&t(xp.esc)};var Bp={swalPromiseResolve:new WeakMap,swalPromiseReject:new WeakMap};const Rp=()=>{Array.from(document.body.children).forEach(e=>{e.hasAttribute("data-previous-aria-hidden")?(e.setAttribute("aria-hidden",e.getAttribute("data-previous-aria-hidden")||""),e.removeAttribute("data-previous-aria-hidden")):e.removeAttribute("aria-hidden")})},Fp="undefined"!=typeof window&&Boolean(window.GestureEvent),Xp=()=>{const e=ng();if(!e)return;let n;e.ontouchstart=e=>{n=Hp(e)},e.ontouchmove=e=>{n&&(e.preventDefault(),e.stopPropagation())}},Hp=e=>{const n=e.target,t=ng(),i=sg();return!(!t||!i)&&(!Gp(e)&&!Op(e)&&(n===t||!(Bg(t)||!(n instanceof HTMLElement)||((e,n)=>{let t=e;for(;t&&t!==n;){if(Bg(t))return!0;t=t.parentElement}return!1})(n,i)||"INPUT"===n.tagName||"TEXTAREA"===n.tagName||Bg(i)&&i.contains(n))))},Gp=e=>Boolean(e.touches&&e.touches.length&&"stylus"===e.touches[0].touchType),Op=e=>e.touches&&e.touches.length>1;let Qp=null;const Kp=e=>{null===Qp&&(document.body.scrollHeight>window.innerHeight||"scroll"===e)&&(Qp=parseInt(window.getComputedStyle(document.body).getPropertyValue("padding-right")),document.body.style.paddingRight=`${Qp+(()=>{const e=document.createElement("div");e.className=Gd["scrollbar-measure"],document.body.appendChild(e);const n=e.getBoundingClientRect().width-e.clientWidth;return document.body.removeChild(e),n})()}px`)};function jp(e,n,t,i){Sg()?nm(e,i):(Xd(t).then(()=>nm(e,i)),Ap(Fd)),Fp?(n.setAttribute("style","display:none !important"),n.removeAttribute("class"),n.innerHTML=""):n.remove(),bg()&&(null!==Qp&&(document.body.style.paddingRight=`${Qp}px`,Qp=null),(()=>{if(Lg(document.body,Gd.iosfix)){const e=parseInt(document.body.style.top,10);Ag(document.body,Gd.iosfix),document.body.style.top="",document.body.scrollTop=-1*e}})(),Rp()),Ag([document.documentElement,document.body],[Gd.shown,Gd["he
1ight-auto"],Gd["no-backdrop"],Gd["toast-shown"]])}function Wp(e){e=Vp(e);const n=Bp.swalPromiseResolve.get(this),t=Up(this);this.isAwaitingPromise?e.isDismissed||($p(this),n(e)):t&&n(e)}const Up=e=>{const n=ag();if(!n)return!1;const t=$g.innerParams.get(e);if(!t||Lg(n,t.hideClass.popup))return!1;Ag(n,t.showClass.popup),xg(n,t.hideClass.popup);const i=ng();return Ag(i,t.showClass.backdrop),xg(i,t.hideClass.backdrop),qp(e,n,t),!0};function zp(e){const n=Bp.swalPromiseReject.get(this);$p(this),n&&n(e)}const $p=e=>{e.isAwaitingPromise&&(delete e.isAwaitingPromise,$g.innerParams.get(e)||e._destroy())},Vp=e=>void 0===e?{isConfirmed:!1,isDenied:!1,isDismissed:!0}:Object.assign({isConfirmed:!1,isDenied:!1,isDismissed:!1},e),qp=(e,n,t)=>{var i;const a=ng(),o=Rg(n);"function"==typeof t.willClose&&t.willClose(n),null===(i=Fd.eventEmitter)||void 0===i||i.emit("willClose",n),o&&a?em(e,n,a,Boolean(t.returnFocus),t.didClose):a&&jp(e,a,Boolean(t.returnFocus),t.didClose)},em=(e,n,t,i,a)=>{Fd.swalCloseEventFinishedCallback=jp.bind(null,e,t,i,a);const o=function(e){var t;e.target===n&&(null===(t=Fd.swalCloseEventFinishedCallback)||void 0===t||t.call(Fd),delete Fd.swalCloseEventFinishedCallback,n.removeEventListener("animationend",o),n.removeEventListener("transitionend",o))};n.addEventListener("animationend",o),n.addEventListener("transitionend",o)},nm=(e,n)=>{setTimeout(()=>{var t;"function"==typeof n&&n.bind(e.params)(),null===(t=Fd.eventEmitter)||void 0===t||t.emit("didClose"),e._destroy&&e._destroy()})},tm=e=>{let n=ag();if(n||new Mf,n=ag(),!n)return;const t=pg();Sg()?Pg(og()):im(n,e),Ig(t),n.setAttribute("data-loading","true"),n.setAttribute("aria-busy","true"),n.focus()},im=(e,n)=>{const t=mg(),i=pg();t&&i&&(!n&&Jg(hg())&&(n=hg()),Ig(t),n&&(Pg(n),i.setAttribute("data-button-to-replace",n.className),t.insertBefore(i,n)),xg([e,t],Gd.loading))},am=e=>e.checked?1:0,om=e=>e.checked?e.value:null,rm=e=>e.files&&e.files.length?null!==e.getAttribute("multiple")?e.files:e.files[0]:null,sm=(e,n)=>{const t=ag();if(!t)return;const i=e=>{"select"===n.input?function(e,n,t){const i=Yg(e,Gd.select);if(!i)return;const a=(e,n,i)=>{const a=document.createElement("option");a.value=i,Cg(a,n),a.selected=cm(i,t.inputValue),e.appendChild(a)};n.forEach(e=>{const n=e[0],t=e[1];if(Array.isArray(t)){const e=document.createElement("optgroup");e.label=n,e.disabled=!1,i.appendChild(e),t.forEach(n=>a(e,n[1],n[0]))}else a(i,t,n)}),i.focus()}(t,lm(e),n):"radio"===n.input&&function(e,n,t){const i=Yg(e,Gd.radio);if(!i)return;n.forEach(e=>{const n=e[0],a=e[1],o=document.createElement("input"),r=document.createElement("label");o.type="radio",o.name=Gd.radio,o.value=n,cm(n,t.inputValue)&&(o.checked=!0);const s=document.createElement("span");Cg(s,a),s.className=Gd.label,r.appendChild(o),r.appendChild(s),i.appendChild(r)});const a=i.querySelectorAll("input");a.length&&a[0].focus()}(t,lm(e),n)};Vd(n.inputOptions)||eg(n.inputOptions)?(tm(hg()),qd(n.inputOptions).then(n=>
1{e.hideLoading(),i(n)})):"object"==typeof n.inputOptions?i(n.inputOptions):Wd("Unexpected type of inputOptions! Expected object, Map or Promise, got "+typeof n.inputOptions)},um=(e,n)=>{const t=e.getInput();t&&(Pg(t),qd(n.inputValue).then(i=>{t.value="number"===n.input?`${parseFloat(i)||0}`:`${i}`,Ig(t),t.focus(),e.hideLoading()}).catch(n=>{Wd(`Error in inputValue promise: ${n}`),t.value="",Ig(t),t.focus(),e.hideLoading()}))};const lm=e=>{const n=[];return e instanceof Map?e.forEach((e,t)=>{let i=e;"object"==typeof i&&(i=lm(i)),n.push([t,i])}):Object.keys(e).forEach(t=>{let i=e[t];"object"==typeof i&&(i=lm(i)),n.push([t,i])}),n},cm=(e,n)=>Boolean(n)&&null!=n&&n.toString()===e.toString(),hm=(e,n)=>{const t=$g.innerParams.get(e);if(!t.input)return void Wd(`The "input" parameter is needed to be set when using returnInputValueOn${Kd(n)}`);const i=e.getInput(),a=((e,n)=>{const t=e.getInput();if(!t)return null;switch(n.input){case"checkbox":return am(t);case"radio":return om(t);case"file":return rm(t);default:return n.inputAutoTrim?t.value.trim():t.value}})(e,t);t.inputValidator?dm(e,a,n):i&&!i.checkValidity()?(e.enableButtons(),e.showValidationMessage(t.validationMessage||i.validationMessage)):"deny"===n?gm(e,a):fm(e,a)},dm=(e,n,t)=>{const i=$g.innerParams.get(e);e.disableInput();Promise.resolve().then(()=>qd(i.inputValidator(n,i.validationMessage))).then(i=>{e.enableButtons(),e.enableInput(),i?e.showValidationMessage(i):"deny"===t?gm(e,n):fm(e,n)})},gm=(e,n)=>{const t=$g.innerParams.get(e);if(t.showLoaderOnDeny&&tm(gg()),t.preDeny){e.isAwaitingPromise=!0;Promise.resolve().then(()=>qd(t.preDeny(n,t.validationMessage))).then(t=>{!1===t?(e.hideLoading(),$p(e)):e.close({isDenied:!0,value:void 0===t?n:t})}).catch(n=>mm(e,n))}else e.close({isDenied:!0,value:n})},pm=(e,n)=>{e.close({isConfirmed:!0,value:n})},mm=(e,n)=>{e.rejectPromise(n)},fm=(e,n)=>{const t=$g.innerParams.get(e);if(t.showLoaderOnConfirm&&tm(),t.preConfirm){e.resetValidationMessage(),e.isAwaitingPromise=!0;Promise.resolve().then(()=>qd(t.preConfirm(n,t.validationMessage))).then(t=>{Jg(cg())||!1===t?(e.hideLoading(),$p(e)):pm(e,void 0===t?n:t)}).catch(n=>mm(e,n))}else pm(e,n)};function vm(){const e=$g.innerParams.get(this);if(!e)return;const n=$g.domCache.get(this);Pg(n.loader),Sg()?e.icon&&Ig(og()):wm(n),Ag([n.popup,n.actions],Gd.loading),n.popup.removeAttribute("aria-busy"),n.popup.removeAttribute("data-loading"),n.confirmButton.disabled=!1,n.denyButton.disabled=!1,n.cancelButton.disabled=!1;const t=$g.focusedElement.get(this);t instanceof HTMLElement&&(t.focus(),$g.focusedElement.delete(this))}const wm=e=>{const n=e.loader.getAttribute("data-button-to-replace"),t=n?e.popup.getElementsByClassName(n):[];t.length?Ig(t[0],"inline-block"):Jg(hg())||Jg(gg())||Jg(dg())||Pg(e.actions)};function ym(){const e=$g.innerParams.get(this),n=$g.domCache.get(this);return n?Eg(n.popup,e.input):null}function bm(e,n,t){const i=$g.domCache.get(e);n.forEach(e=>{i[e].disabled=t})}function Sm(e,n){const t=ag();if(t&&e)if("radio"===e.type){const e=t.querySelectorAll(`[name="${Gd.radio}"]`);for(let t=0;t<e.length;t++)e[t].disabled=n}else e.disabled=n}function Cm(){bm(this,["confirmButton","denyButton","cancelButton"],!1);const e=$g.focusedElement.get(this);e instanceof HTMLElement&&(e.focus(),$g.focusedElement.delete(this))}function Lm(){$g.focusedElement.set(this,document.activeElement),bm(this,["confirmButton","denyButton","cancelButton"],!0)}function Tm(){Sm(this.getInput(),!1)}function Em(){Sm(this.getInput(),!0)}function km(e){const n=$g.domCache.get(this),t=$g.innerParams.get(this);Cg(n.validationMessage,e),n.validationMessage.className=Gd["validation-message"],t.customClass&&t.customClass.validationMessage&&xg(n.validationMessage,t.customClass.validationMessage),Ig(n.validationMessage);const i=this.getInput();i&&(i.setAttribute("aria-invalid","true"),i.setAttribute("aria-describedby",Gd["validation-message"]),kg(i),xg(i,Gd.inputerror))}function Dm(){const e=$g.domCache.get(this);e.validationMessage&&Pg(e.validationMessage);const n=this.getInput();n&&(n.removeAttribute("aria-invalid"),n.removeAttribute("aria-describedby"),Ag(n,Gd.inputerror))}const xm={title:"",titleText:"",text:"",html:"",footer:"",icon:void 0,iconColor:void 0,iconHtml:void 0,template:void 0,toast:!1,draggable:!1,animation:!0,theme:"light",showClass:{popup:"swal2-show",backdrop:"swal2-backdrop-show",icon:"swal2-icon-show"},hideClass:{popup:"swal2-hide",backdrop:"swal2-backdrop-hide",icon:"swal2-icon-hide"},customClass:{},target:"body",color:void 0,backdrop:!0,heightAuto:!0,allowOutsideClick:!0,allowEscapeKey:!0,allowEnterKey:!0,stopKeydownPropagation:!0,keydownListenerCapture:!1,showConfirmButton:!0,showDenyButton:!1,showCancelButton:!1,preConfirm:void 0,preDeny:void 0,confirmButtonText:"OK",confirmButtonAriaLabel:"",confirmButtonColor:void 0,denyButtonText:"No",denyButtonAriaLabel:"",denyButtonColor:void 0,cancelButtonText:"Cancel",cancelButtonAriaLabel:"",cancelButtonColor:void 0,buttonsStyling:!0,reverseButtons:!1,focusConfirm:!0,focusDeny:!1,focusCancel:!1,returnFocus:!0,showCloseButton:!1,closeButtonHtml:"×",closeButtonAriaLabel:"Close this dialog",loaderHtml:"",showLoaderOnConfirm:!1,showLoaderOnDeny:!1,imageUrl:void 0,imageWidth:void 0,imageHeight:void 0,imageAlt:"",timer:void 0,timerProgressBar:!1,width:void 0,padding:void 0,background:void 0,input:void 0,inputPlaceholder:"",inputLabel:"",inputValue:"",inputOptions:{},inputAutoFocus:!0,inputAutoTrim:!0,inputAttributes:{},inputValidator:void 0,returnInputValueOnDeny:!1,validationMessage:void 0,grow:!1,position:"center",progressSteps:[],currentProgressStep:void 0,progressStepsDistance:void 0,willOpen:void 0,didOpen:void 0,didRender:void 0,willClose:void 0,didClose
vendor: 15,890 bytes, line 1
1:void 0,didDestroy:void 0,scrollbarPadding:!0,topLayer:!1},Am=["allowEscapeKey","allowOutsideClick","background","buttonsStyling","cancelButtonAriaLabel","cancelButtonColor","cancelButtonText","closeButtonAriaLabel","closeButtonHtml","color","confirmButtonAriaLabel","confirmButtonColor","confirmButtonText","currentProgressStep","customClass","denyButtonAriaLabel","denyButtonColor","denyButtonText","didClose","didDestroy","draggable","footer","hideClass","html","icon","iconColor","iconHtml","imageAlt","imageHeight","imageUrl","imageWidth","preConfirm","preDeny","progressSteps","returnFocus","reverseButtons","showCancelButton","showCloseButton","showConfirmButton","showDenyButton","text","title","titleText","theme","willClose"],Ym={allowEnterKey:void 0},_m=["allowOutsideClick","allowEnterKey","backdrop","draggable","focusConfirm","focusDeny","focusCancel","returnFocus","heightAuto","keydownListenerCapture"],Im=e=>Object.prototype.hasOwnProperty.call(xm,e),Pm=e=>-1!==Am.indexOf(e),Nm=e=>Ym[e],Mm=e=>{Im(e)||jd(`Unknown parameter "${e}"`)},Zm=e=>{_m.includes(e)&&jd(`The parameter "${e}" is incompatible with toasts`)},Jm=e=>{const n=Nm(e);n&&zd(e,n)},Bm=e=>{!1===e.backdrop&&e.allowOutsideClick&&jd('"allowOutsideClick" parameter requires `backdrop` parameter to be set to `true`'),e.theme&&!["light","dark","auto","minimal","borderless","bootstrap-4","bootstrap-4-light","bootstrap-4-dark","bootstrap-5","bootstrap-5-light","bootstrap-5-dark","material-ui","material-ui-light","material-ui-dark","embed-iframe","bulma","bulma-light","bulma-dark"].includes(e.theme)&&jd(`Invalid theme "${e.theme}"`);for(const n in e)Mm(n),e.toast&&Zm(n),Jm(n)};function Rm(e){const n=ng(),t=ag(),i=$g.innerParams.get(this);if(!t||Lg(t,i.hideClass.popup))return void jd("You're trying to update the closed or closing popup, that won't work. Use the update() method in preConfirm parameter or show a new popup.");const a=Fm(e),o=Object.assign({},i,a);Bm(o),n&&(n.dataset.swal2Theme=o.theme),kp(this,o),$g.innerParams.set(this,o),Object.defineProperties(this,{params:{value:Object.assign({},this.params,e),writable:!1,enumerable:!0}})}const Fm=e=>{const n={};return Object.keys(e).forEach(t=>{if(Pm(t)){const i=e;n[t]=i[t]}else jd(`Invalid parameter to update: ${t}`)}),n};function Xm(){var e;const n=$g.domCache.get(this),t=$g.innerParams.get(this);t?(n.popup&&Fd.swalCloseEventFinishedCallback&&(Fd.swalCloseEventFinishedCallback(),delete Fd.swalCloseEventFinishedCallback),"function"==typeof t.didDestroy&&t.didDestroy(),null===(e=Fd.eventEmitter)||void 0===e||e.emit("didDestroy"),Hm(this)):Gm(this)}const Hm=e=>{Gm(e),delete e.params,delete Fd.keydownHandler,delete Fd.keydownTarget,delete Fd.currentInstance},Gm=e=>{e.isAwaitingPromise?(Om($g,e),e.isAwaitingPromise=!0):(Om(Bp,e),Om($g,e),delete e.isAwaitingPromise,delete e.disableButtons,delete e.enableButtons,delete e.getInput,delete e.disableInput,delete e.enableInput,delete e.hideLoading,delete e.disableLoading,delete e.showValidationMessage,delete e.resetValidationMessage,delete e.close,delete e.closePopup,delete e.closeModal,delete e.closeToast,delete e.rejectPromise,delete e.update,delete e._destroy)},Om=(e,n)=>{for(const t in e)e[t].delete(n)};var Qm=Object.freeze({__proto__:null,_destroy:Xm,close:Wp,closeModal:Wp,closePopup:Wp,closeToast:Wp,disableButtons:Lm,disableInput:Em,disableLoading:vm,enableButtons:Cm,enableInput:Tm,getInput:ym,handleAwaitingPromise:$p,hideLoading:vm,rejectPromise:zp,resetValidationMessage:Dm,showValidationMessage:km,update:Rm});const Km=(e,n,t)=>{n.popup.onclick=()=>{e&&(jm(e)||e.timer||e.input)||t(xp.close)}},jm=e=>Boolean(e.showConfirmButton||e.showDenyButton||e.showCancelButton||e.showCloseButton);let Wm=!1;const Um=e=>{e.popup.onmousedown=()=>{e.container.onmouseup=function(n){e.container.onmouseup=()=>{},n.target===e.container&&(Wm=!0)}}},zm=e=>{e.container.onmousedown=n=>{n.target===e.container&&n.preventDefault(),e.popup.onmouseup=function(n){e.popup.onmouseup=()=>{},(n.target===e.popup||n.target instanceof HTMLElement&&e.popup.contains(n.target))&&(Wm=!0)}}},$m=(e,n,t)=>{n.container.onclick=i=>{Wm?Wm=!1:i.target===n.container&&$d(e.allowOutsideClick)&&t(xp.backdrop)}},Vm=e=>e instanceof Element||(e=>"object"==typeof e&&null!==e&&"jquery"in e)(e);const qm=()=>{if(Fd.timeout)return(()=>{const e=vg();if(!e)return;const n=parseInt(window.getComputedStyle(e).width);e.style.removeProperty("transition"),e.style.width="100%";const t=n/parseInt(window.getComputedStyle(e).width)*100;e.style.width=`${t}%`})(),Fd.timeout.stop()},ef=()=>{if(Fd.timeout){const e=Fd.timeout.start();return Fg(e),e}};let nf=!1;const tf={};const af=e=>{for(let n=e.target;n&&n!==document;n=n.parentNode)for(const e in tf){const t=n.getAttribute&&n.getAttribute(e);if(t)return void tf[e].fire({template:t})}};Fd.eventEmitter=new class{constructor(){this.events={}}_getHandlersByEventName(e){return void 0===this.events[e]&&(this.events[e]=[]),this.events[e]}on(e,n){const t=this._getHandlersByEventName(e);t.includes(n)||t.push(n)}once(e,n){const t=(...i)=>{this.removeListener(e,t),n.apply(this,i)};this.on(e,t)}emit(e,...n){this._getHandlersByEventName(e).forEach(e=>{try{e.apply(this,n)}catch(t){console.error(t)}})}removeListener(e,n){const t=this._getHandlersByEventName(e),i=t.indexOf(n);i>-1&&t.splice(i,1)}removeAllListeners(e){void 0!==this.events[e]&&(this.events[e].length=0)}reset(){this.events={}}};var of=Object.freeze({__proto__:null,argsToParams:e=>{const n={};return"object"!=typeof e[0]||Vm(e[0])?["title","html","icon"].forEach((t,i)=>{const a=e[i];"string"==typeof a||Vm(a)?n[t]=a:void 0!==a&&Wd(`Unexpected type of ${t}! Expected "string" or "Element", got ${typeof a}`)}):Object.assign(n,e[0]),n},bindClickHandler:function(e="data-swal-template"){tf[e]=this,nf||(document.body.addEventListener("click",af),nf=!0)},clickCancel:()=>{var e;return null===(e=dg())||void 0===e?void 0:e.click()},clickConfirm:Dp,clickDeny:()=>{var e;return null===(e=gg())||void 0===e?void 0:e.click()},enableLoading:tm,fire:function(...e){return new this(...e)},getActions:mg,getCancelButton:dg,getCloseButton:wg,getConfirmButton:hg,getContainer:ng,getDenyButton:gg,getFocusableElements:yg,getFooter:fg,getHtmlContainer:sg,getIcon:og,getIconContent:()=>ig(Gd["icon-content"]),getImage:ug,getInputLabel:()=>ig(Gd["input-label"]),getLoader:pg,getPopup:ag,getProgressSteps:lg,getTimerLeft:()=>Fd.timeout&&Fd.timeout.getTimerLeft(),getTimerProgressBar:vg,getTitle:rg,getValidationMessage:cg,increaseTimer:e=>{if(Fd.timeout){const n=Fd.timeout.increase(e);return Fg(n,!0),n}},isDeprecatedParameter:Nm,isLoading:()=>{const e=ag();return!!e&&e.hasAttribute("data-loading")},isTimerRunning:()=>Boolean(Fd.timeout&&Fd.timeout.isRunning()),isUpdatableParameter:Pm,isValidParameter:Im,isVisible:()=>Jg(ag()),mixin:function(e){return class extends(this){_main(n,t){return super._main(n,Object.assign({},e,t))}}},off:(e,n)=>{Fd.eventEmitter&&(e?n?Fd.eventEmitter.removeListener(e,n):Fd.eventEmitter.removeAllListeners(e):Fd.eventEmitter.reset())},on:(e,n)=>{Fd.eventEmitter&&Fd.eventEmitter.on(e,n)},once:(e,n)=>{Fd.eventEmitter&&Fd.eventEmitter.once(e,n)},resumeTimer:ef,showLoading:tm,stopTimer:qm,toggleTimer:()=>{const e=Fd.timeout;return e&&(e.running?qm():ef())}});class rf{constructor(e,n){this.callback=e,this.remaining=n,this.running=!1,this.start()}start(){return this.running||(this.running=!0,this.started=new Date,this.id=setTimeout(this.callback,this.remaining)),this.remaining}stop(){return this.started&&this.running&&(this.running=!1,clearTimeout(this.id),this.remaining-=(new Date).getTime()-this.started.getTime()),this.remaining}increase(e){const n=this.running;return n&&this.stop(),this.remaining+=e,n&&this.start(),this.remaining}getTimerLeft(){return this.running&&(this.stop(),this.start()),this.remaining}isRunning(){return this.running}}const sf=["swal-title","swal-html","swal-footer"],uf=e=>{const n={};return Array.from(e.querySelectorAll("swal-param")).forEach(e=>{ff(e,["name","value"]);const t=e.getAttribute("name"),i=e.getAttribute("value");t&&i&&(n[t]=t in xm&&"boolean"==typeof xm[t]?"false"!==i:t in xm&&"object"==typeof xm[t]?JSON.parse(i):i)}),n},lf=e=>{const n={};return Array.from(e.querySelectorAll("swal-function-param")).forEach(e=>{const t=e.getAttribute("name"),i=e.getAttribute("value");t&&i&&(n[t]=new Function(`return ${i}`)())}),n},cf=e=>{const n={};return Array.from(e.querySelectorAll("swal-button")).forEach(e=>{ff(e,["type","color","aria-label"]);const t=e.getAttribute("type");if(t&&["confirm","cancel","deny"].includes(t)){if(n[`${t}ButtonText`]=e.innerHTML,n[`show${Kd(t)}Button`]=!0,e.hasAttribute("color")){const i=e.getAttribute("color");null!==i&&(n[`${t}ButtonColor`]=i)}if(e.hasAttribute("aria-label")){const i=e.getAttribute("aria-label");null!==i&&(n[`${t}ButtonAriaLabel`]=i)}}}),n},hf=e=>{const n={},t=e.querySelector("swal-image");return t&&(ff(t,["src","width","height","alt"]),t.hasAttribute("src")&&(n.imageUrl=t.getAttribute("src")||void 0),t.hasAttribute("width")&&(n.imageWidth=t.getAttribute("width")||void 0),t.hasAttribute("height")&&(n.imageHeight=t.getAttribute("height")||void 0),t.hasAttribute("alt")&&(n.imageAlt=t.getAttribute("alt")||void 0)),n},df=e=>{const n={},t=e.querySelector("swal-icon");return t&&(ff(t,["type","color"]),t.hasAttribute("type")&&(n.icon=t.getAttribute("type")),t.hasAttribute("color")&&(n.iconColor=t.getAttribute("color")),n.iconHtml=t.innerHTML),n},gf=e=>{const n={},t=e.querySelector("swal-input");t&&(ff(t,["type","label","placeholder","value"]),n.input=t.getAttribute("type")||"text",t.hasAttribute("label")&&(n.inputLabel=t.getAttribute("label")),t.hasAttribute("placeholder")&&(n.inputPlaceholder=t.getAttribute("placeholder")),t.hasAttribute("value")&&(n.inputValue=t.getAttribute("value")));const i=Array.from(e.querySelectorAll("swal-input-option"));return i.length&&(n.inputOptions={},i.forEach(e=>{ff(e,["value"]);const t=e.getAttribute("value");if(!t)return;const i=e.innerHTML;n.inputOptions[t]=i})),n},pf=(e,n)=>{const t={};for(const i in n){const a=n[i],o=e.querySelector(a);o&&(ff(o,[]),t[a.replace(/^swal-/,"")]=o.innerHTML.trim())}return t},mf=e=>{const n=sf.concat(["swal-param","swal-function-param","swal-button","swal-image","swal-icon","swal-input","swal-input-option"]);Array.from(e.children).forEach(e=>{const t=e.tagName.toLowerCase();n.includes(t)||jd(`Unrecognized element <${t}>`)})},ff=(e,n)=>{Array.from(e.attributes).forEach(t=>{-1===n.indexOf(t.name)&&jd([`Unrecognized attribute "${t.name}" on <${e.tagName.toLowerCase()}>.`,""+(n.length?`Allowed attributes are: ${n.join(", ")}`:"To set the value, use HTML within the element.")])})},vf=e=>{var n,t;const i=ng(),a=ag();if(!i||!a)return;"function"==typeof e.willOpen&&e.willOpen(a),null===(n=Fd.eventEmitter)||void 0===n||n.emit("willOpen",a);const o=window.getComputedStyle(document.body).overflowY;if(Sf(i,a,e),setTimeout(()=>{yf(i,a)},10),bg()&&(bf(i,void 0!==e.scrollbarPadding&&e.scrollbarPadding,o),(()=>{const e=ng();Array.from(document.body.children).forEach(n=>{n.contains(e)||(n.hasAttribute("aria-hidden")&&n.setAttribute("data-previous-aria-hidden",n.getAttribute("aria-hidden")||""),n.setAttribute("aria-hidden","true"))})})()),Sg()||Fd.previousActiveElement||(Fd.previousActiveElement=document.activeElement),"function"==typeof e.didOpen){const n=e.didOpen;setTimeout(()=>n(a))}null===(t=Fd.eventEmitter)||void 0===t||t.emit("didOpen",a)},wf=e=>{const n=ag();if(!n||e.target!==n)return;const t=ng();t&&(n.removeEventListener("animationend",wf),n.removeEventListener("transitionend",wf),t.style.overflowY="auto",Ag(t,Gd["no-transition"]))},yf=(e,n)=>{Rg(n)?(e.style.overflowY="hidden",n.addEventListener("animationend",wf),n.addEventListener("transitionend",wf)):e.style.overflowY="auto"},bf=(e,n,t)=>{(()=>{if(Fp&&!Lg(document.body,Gd.iosfix)){const e=document.body.scrollTop;document.body.style.top=-1*e+"px",xg(document.body,Gd.iosfix),Xp()}})(),n&&"hidden"!==t&&Kp(t),setTimeout(()=>{e.scrollTop=0})},Sf=(e,n,t)=>{var i;null!==(i=t.showClass)&&void 0!==i&&i.backdrop&&xg(e,t.showClass.backdrop),t.animation?(n.style.setProperty("opacity","0","important"),Ig(n,"grid"),setTimeout(()=>{var e;null!==(e=t.showClass)&&void 0!==e&&e.popup&&xg(n,t.showClass.popup),n.style.removeProperty("opacity")},10)):Ig(n,"grid"),xg([document.documentElement,document.body],Gd.shown),t.heightAuto&&t.backdrop&&!t.toast&&xg([document.documentElement,document.body],Gd["height-auto"])};var Cf=(e,n)=>/^[a-zA-Z0-9.+_'-]+@[a-zA-Z0-9.-]+\.[a-zA-Z0-9-]+$/.test(e)?Promise.resolve():Promise.resolve(n||"Invalid email address"),Lf=(e,n)=>/^https?:\/\/(www\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\.[a-z]{2,63}\b([-a-zA-Z0-9@:%_+.~#?&/=]*)$/.test(e)?Promise.resolve():Promise.resolve(n||"Invalid URL");function Tf(e){!function(e){e.inputValidator||("email"===e.input&&(e.inputValidator=Cf),"url"===e.input&&(e.inputValidator=Lf))}(e),e.showLoaderOnConfirm&&!e.preConfirm&&jd("showLoaderOnConfirm is set to true, but preConfirm is not defined.\nshowLoaderOnConfirm should be used together with preConfirm, see usage example:\nhttps://sweetalert2.github.io/#ajax-request"),function(e){(!e.target||"string"==typeof e.target&&!document.querySelector(e.target)||"string"!=typeof e.target&&!e.target.appendChild)&&(jd('Target parameter is not valid, defaulting to "body"'),e.target="body")}(e),"string"==typeof e.title&&(e.title=e.title.split("\n").join("<br />")),Gg(e)}let Ef;var kf=new WeakMap;class Df{constructor(...e){if(Rd(this,kf,Promise.resolve({isConfirmed:!1,isDenied:!1,isDismissed:!0})),"undefined"==typeof window)return;Ef=this;const n=Object.freeze(this.constructor.argsToParams(e));var t,i,a;this.params=n,this.isAwaitingPromise=!1,t=kf,i=this,a=this._main(Ef.params),t.set(Jd(t,i),a)}_main(e,n={}){if(Bm(Object.assign({},n,e)),Fd.currentInstance){const e=Bp.swalPromiseResolve.get(Fd.currentInstance),{isAwaitingPromise:n}=Fd.currentInstance;Fd.currentInstance._destroy(),n||e({isDismissed:!0}),bg()&&Rp()}Fd.currentInstance=Ef;const t=Af(e,n);Tf(t),Object.freeze(t),Fd.timeout&&(Fd.timeout.stop(),delete Fd.timeout),clearTimeout(Fd.restoreFocusTimeout);const i=Yf(Ef);return kp(Ef,t),$g.innerParams.set(Ef,t),xf(Ef,i,t)}then(e){return Bd(kf,this).then(e)}finally(e){return Bd(kf,this).finally(e)}}const xf=(e,n,t)=>new Promise((i,a)=>{const o=n=>{e.close({isDismissed:!0,dismiss:n,isConfirmed:!1,isDenied:!1})};Bp.swalPromiseResolve.set(e,i),Bp.swalPromiseReject.set(e,a),n.confirmButton.onclick=()=>{(e=>{const n=$g.innerParams.get(e);e.disableButtons(),n.input?hm(e,"confirm"):fm(e,!0)})(e)},n.denyButton.onclick=()=>{(e=>{const n=$g.innerParams.get(e);e.disableButtons(),n.returnInputValueOnDeny?hm(e,"deny"):gm(e,!1)})(e)},n.cancelButton.onclick=()=>{((e,n)=>{e.disableButtons(),n(xp.cancel)})(e,o)},n.closeButton.onclick=()=>{o(xp.close)},((e,n,t)=>{e.toast?Km(e,n,t):(Um(n),zm(n),$m(e,n,t))})(t,n,o),((e,n,t)=>{if(Ap(e),!n.toast){const i=e=>Pp(n,e,t);e.keydownHandler=i;const a=n.keydownListenerCapture?window:ag();if(a){e.keydownTarget=a,e.keydownListenerCapture=n.keydownListenerCapture;const t=i;e.keydownTarget.addEventListener("keydown",t,{capture:e.keydownListenerCapture}),e.keydownHandlerAdded=!0}}})(Fd,t,o),((e,n)=>{"select"===n.input||"radio"===n.input?sm(e,n):["text","email","number","tel","textarea"].some(e=>e===n.input)&&(Vd(n.inputValue)||eg(n.inputValue))&&(tm(hg()),um(e,n))})(e,t),vf(t),_f(Fd,t,o),If(n,t),setTimeout(()=>{n.container.scrollTop=0})}),Af=(e,n)=>{const t=(e=>{const n="string"==typeof e.template?document.querySelector(e.template):e.template;if(!n)return{};const t=n.content;return mf(t),Object.assign(uf(t),lf(t),cf(t),hf(t),df(t),gf(t),pf(t,sf))})(e),i=Object.assign({},xm,n,t,e);return i.showClass=Object.assign({},xm.showClass,i.showClass),i.hideClass=Object.assign({},xm.hideClass,i.hideClass),!1===i.animation&&(i.showClass={backdrop:"swal2-noanimation"},i.hideClass={}),i},Yf=e=>
vendor: 4,093 bytes, line 1
1{const n={popup:ag(),container:ng(),actions:mg(),confirmButton:hg(),denyButton:gg(),cancelButton:dg(),loader:pg(),closeButton:wg(),validationMessage:cg(),progressSteps:lg()};return $g.domCache.set(e,n),n},_f=(e,n,t)=>{const i=vg();Pg(i),n.timer&&(e.timeout=new rf(()=>{t("timer"),delete e.timeout},n.timer),n.timerProgressBar&&i&&(Ig(i),Tg(i,n,"timerProgressBar"),setTimeout(()=>{e.timeout&&e.timeout.running&&Fg(n.timer)})))},If=(e,n)=>{if(!n.toast)return $d(n.allowEnterKey)?void(Pf(e)||Nf(e,n)||Yp(-1,1)):(zd("allowEnterKey","preConfirm: () => false"),void e.popup.focus())},Pf=e=>{const n=Array.from(e.popup.querySelectorAll("[autofocus]"));for(const t of n)if(t instanceof HTMLElement&&Jg(t))return t.focus(),!0;return!1},Nf=(e,n)=>n.focusDeny&&Jg(e.denyButton)?(e.denyButton.focus(),!0):n.focusCancel&&Jg(e.cancelButton)?(e.cancelButton.focus(),!0):!(!n.focusConfirm||!Jg(e.confirmButton))&&(e.confirmButton.focus(),!0);Df.prototype.disableButtons=Lm,Df.prototype.enableButtons=Cm,Df.prototype.getInput=ym,Df.prototype.disableInput=Em,Df.prototype.enableInput=Tm,Df.prototype.hideLoading=vm,Df.prototype.disableLoading=vm,Df.prototype.showValidationMessage=km,Df.prototype.resetValidationMessage=Dm,Df.prototype.close=Wp,Df.prototype.closePopup=Wp,Df.prototype.closeModal=Wp,Df.prototype.closeToast=Wp,Df.prototype.rejectPromise=zp,Df.prototype.update=Rm,Df.prototype._destroy=Xm,Object.assign(Df,of),Object.keys(Qm).forEach(e=>{Df[e]=function(...n){if(Ef&&Ef[e])return Ef[e](...n)}}),Df.DismissReason=xp,Df.version="11.26.20";const Mf=Df;Mf.default=Mf,"undefined"!=typeof document&&function(e,n){var t=e.createElement("style");if(e.getElementsByTagName("head")[0].appendChild(t),t.styleSheet)t.styleSheet.disabled||(t.styleSheet.cssText=n);else try{t.innerHTML=n}catch(i){t.innerText=n}}(document,':root{--swal2-outline: 0 0 0 3px rgba(100, 150, 200, 0.5);--swal2-container-padding: 0.625em;--swal2-backdrop: rgba(0, 0, 0, 0.4);--swal2-backdrop-transition: background-color 0.15s;--swal2-width: 32em;--swal2-padding: 0 0 1.25em;--swal2-border: none;--swal2-border-radius: 0.3125rem;--swal2-background: white;--swal2-color: #545454;--swal2-show-animation: swal2-show 0.3s;--swal2-hide-animation: swal2-hide 0.15s forwards;--swal2-icon-zoom: 1;--swal2-icon-animations: true;--swal2-title-padding: 0.8em 1em 0;--swal2-html-container-padding: 1em 1.6em 0.3em;--swal2-input-border: 1px solid #d9d9d9;--swal2-input-border-radius: 0.1875em;--swal2-input-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06), 0 0 0 3px transparent;--swal2-input-background: transparent;--swal2-input-transition: border-color 0.2s, box-shadow 0.2s;--swal2-input-hover-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06), 0 0 0 3px transparent;--swal2-input-focus-border: 1px solid #b4dbed;--swal2-input-focus-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.06), 0 0 0 3px rgba(100, 150, 200, 0.5);--swal2-progress-step-background: #add8e6;--swal2-validation-message-background: #f0f0f0;--swal2-validation-message-color: #666;--swal2-footer-border-color: #eee;--swal2-footer-background: transparent;--swal2-footer-color: inherit;--swal2-timer-progress-bar-background: rgba(0, 0, 0, 0.3);--swal2-close-button-position: initial;--swal2-close-button-inset: auto;--swal2-close-button-font-size: 2.5em;--swal2-close-button-color: #ccc;--swal2-close-button-transition: color 0.2s, box-shadow 0.2s;--swal2-close-button-outline: initial;--swal2-close-button-box-shadow: inset 0 0 0 3px transparent;--swal2-close-button-focus-box-shadow: inset var(--swal2-outline);--swal2-close-button-hover-transform: none;--swal2-actions-justify-content: center;--swal2-actions-width: auto;--swal2-actions-margin: 1.25em auto 0;--swal2-actions-padding: 0;--swal2-actions-border-radius: 0;--swal2-actions-background: transparent;--swal2-action-button-transition: background-color 0.2s, box-shadow 0.2s;--swal2-action-button-hover: black 10%;--swal2-action-button-active: black 10%;--swal2-confirm-button-box-shadow: none;--swal2-confirm-button-border-radius: 0.25em;--swal2-confirm-button-background-color: #7066e0;--swal2-confirm-button-color: #fff;
1--swal2-deny-button-box-shadow: none;--swal2-deny-button-border-radius: 0.25em;--swal2-deny-button-background-color: #dc3741;--swal2-deny-button-color: #fff;--swal2-cancel-button-box-shadow: none;--swal2-cancel-button-border-radius: 0.25em;--swal2-cancel-button-background-color: #6e7881;--swal2-cancel-button-color: #fff;--swal2-toast-show-animation: swal2-toast-show 0.5s;--swal2-toast-hide-animation: swal2-toast-hide 0.1s forwards;--swal2-toast-border: none;--swal2-toast-box-shadow: 0 0 1px hsl(0deg 0% 0% / 0.075), 0 1px 2px hsl(0deg 0% 0% / 0.075), 1px 2px 4px hsl(0deg 0% 0% / 0.075), 1px 3px 8px hsl(0deg 0% 0% / 0.075), 2px 4px 16px hsl(0deg 0% 0% / 0.075)}[data-swal2-theme=dark]{--swal2-dark-theme-black: #19191a;--swal2-dark-theme-white: #e1e1e1;--swal2-background: var(--swal2-dark-theme-black);--swal2-color: var(--swal2-dark-theme-white);--swal2-footer-border-color: #555;--swal2-input-background: color-mix(in srgb, var(--swal2-dark-theme-black), var(--swal2-dark-theme-white) 10%);--swal2-validation-message-background: color-mix( in srgb, var(--swal2-dark-theme-black), var(--swal2-dark-theme-white) 10% );--swal2-validation-message-color: var(--swal2-dark-theme-white);--swal2-timer-progress-bar-background: rgba(255, 255, 255, 0.7)}@media(prefers-color-scheme: dark){[data-swal2-theme=auto]{--swal2-dark-theme-black: #19191a;--swal2-dark-theme-white: #e1e1e1;--swal2-background: var(--swal2-dark-theme-black);--swal2-color: var(--swal2-dark-theme-white);--swal2-footer-border-color: #555;--swal2-input-background: color-mix(in srgb, var(--swal2-dark-theme-black), var(--swal2-dark-theme-white) 10%);--swal2-validation-message-background: color-mix( in srgb, var(--swal2-dark-theme-black), var(--swal2-dark-theme-white) 10% );--swal2-validation-message-color: var(--swal2-dark-theme-white);--swal2-timer-progress-bar-background: rgba(255, 255, 255, 0.7)}}body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown){overflow:hidden}body.swal2-height-auto{height:auto !important}body.swal2-no-backdrop .swal2-container{background-color:rgba(0,0,0,0) !important;pointer-events:none}body.swal2-no-backdrop .swal2-container .swal2-popup{pointer-events:all}body.swal2-no-backdrop .swal2-container .swal2-modal{box-shadow:0 0 10px var(--swal2-backdrop)}body.swal2-toast-shown .swal2-container{box-sizing:border-box;width:360px;max-width:100%;background-color:rgba(0,0,0,0);pointer-events:none}body.swal2-toast-shown .swal2-container.swal2-top{inset:0 auto auto 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-top-end,body.swal2-toast-shown .swal2-container.swal2-top-right{inset:0 0 auto auto}body.swal2-toast-shown .swal2-container.swal2-top-start,body.swal2-toast-shown .swal2-container.swal2-top-left{inset:0 auto auto 0}body.swal2-toast-shown .swal2-container.swal2-center-start,body.swal2-toast-shown .swal2-container.swal2-center-left{inset:50% auto auto 0;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-center{inset:50% auto auto 50%;transform:translate(-50%, -50%)}body.swal2-toast-shown .swal2-container.swal2-center-end,body.swal2-toast-shown .swal2-container.swal2-center-right{inset:50% 0 auto auto;transform:translateY(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-start,body.swal2-toast-shown .swal2-container.swal2-bottom-left{inset:auto auto 0 0}body.swal2-toast-shown .swal2-container.swal2-bottom{inset:auto auto 0 50%;transform:translateX(-50%)}body.swal2-toast-shown .swal2-container.swal2-bottom-end,body.swal2-toast-shown .swal2-container.swal2-bottom-right{inset:auto 0 0 auto}@media print{body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown){overflow-y:scroll !important}body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown)>[aria-hidden=true]{display:none}body.swal2-shown:not(.swal2-no-backdrop,.swal2-toast-shown) .swal2-container{position:static !important}}div:where(.swal2-container){display:grid;position:fixed;z-index:1060;inset:0;box-sizing:border-box;grid-template-areas:"top-start top top-end" "center-start center center-end" "bottom-start bottom-center bottom-end";grid-template-rows:minmax(min-content, auto) minmax(min-content, auto) minmax(min-content, auto);height:100%;padding:var(--swal2-container-padding);overflow-x:hidden;transition:var(--swal2-backdrop-transition);-webkit-overflow-scrolling:touch}div:where(.swal2-container).swal2-backdrop-show,div:where(.swal2-container).swal2-noanimation{background:var(--swal2-backdrop)}div:where(.swal2-container).swal2-backdrop-hide{background:rgba(0,0,0,0) !important}div:where(.swal2-container).swal2-top-start,div:where(.swal2-container).swal2-center-start,div:where(.swal2-container).swal2-bottom-start{grid-template-columns:minmax(0, 1fr) auto auto}div:where(.swal2-container).swal2-top,div:where(.swal2-container).swal2-center,div:where(.swal2-container).swal2-bottom{grid-template-columns:auto minmax(0, 1fr) auto}div:where(.swal2-container).swal2-top-end,div:where(.swal2-container).swal2-center-end,div:where(.swal2-container).swal2-bottom-end{grid-template-columns:auto auto minmax(0, 1fr)}div:where(.swal2-container).swal2-top-start>.swal2-popup{align-self:start}div:where(.swal2-container).swal2-top>.swal2-popup{grid-column:2;place-self:start center}div:where(.swal2-container).swal2-top-end>.swal2-popup,div:where(.swal2-container).swal2-top-right>.swal2-popup{grid-column:3;place-self:start end}div:where(.swal2-container).swal2-center-start>.swal2-popup,div:where(.swal2-container).swal2-center-left>.swal2-popup{grid-row:2;
1align-self:center}div:where(.swal2-container).swal2-center>.swal2-popup{grid-column:2;grid-row:2;place-self:center center}div:where(.swal2-container).swal2-center-end>.swal2-popup,div:where(.swal2-container).swal2-center-right>.swal2-popup{grid-column:3;grid-row:2;place-self:center end}div:where(.swal2-container).swal2-bottom-start>.swal2-popup,div:where(.swal2-container).swal2-bottom-left>.swal2-popup{grid-column:1;grid-row:3;align-self:end}div:where(.swal2-container).swal2-bottom>.swal2-popup{grid-column:2;grid-row:3;place-self:end center}div:where(.swal2-container).swal2-bottom-end>.swal2-popup,div:where(.swal2-container).swal2-bottom-right>.swal2-popup{grid-column:3;grid-row:3;place-self:end end}div:where(.swal2-container).swal2-grow-row>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{grid-column:1/4;width:100%}div:where(.swal2-container).swal2-grow-column>.swal2-popup,div:where(.swal2-container).swal2-grow-fullscreen>.swal2-popup{grid-row:1/4;align-self:stretch}div:where(.swal2-container).swal2-no-transition{transition:none !important}div:where(.swal2-container)[popover]{width:auto;border:0}div:where(.swal2-container) div:where(.swal2-popup){display:none;position:relative;box-sizing:border-box;grid-template-columns:minmax(0, 100%);width:var(--swal2-width);max-width:100%;padding:var(--swal2-padding);border:var(--swal2-border);border-radius:var(--swal2-border-radius);background:var(--swal2-background);color:var(--swal2-color);font-family:inherit;font-size:1rem;container-name:swal2-popup
vendor: 9,849 bytes, line 1
1}div:where(.swal2-container) div:where(.swal2-popup):focus{outline:none}div:where(.swal2-container) div:where(.swal2-popup).swal2-loading{overflow-y:hidden}div:where(.swal2-container) div:where(.swal2-popup).swal2-draggable{cursor:grab}div:where(.swal2-container) div:where(.swal2-popup).swal2-draggable div:where(.swal2-icon){cursor:grab}div:where(.swal2-container) div:where(.swal2-popup).swal2-dragging{cursor:grabbing}div:where(.swal2-container) div:where(.swal2-popup).swal2-dragging div:where(.swal2-icon){cursor:grabbing}div:where(.swal2-container) h2:where(.swal2-title){position:relative;max-width:100%;margin:0;padding:var(--swal2-title-padding);color:inherit;font-size:1.875em;font-weight:600;text-align:center;text-transform:none;overflow-wrap:break-word;cursor:initial}div:where(.swal2-container) div:where(.swal2-actions){display:flex;z-index:1;box-sizing:border-box;flex-wrap:wrap;align-items:center;justify-content:var(--swal2-actions-justify-content);width:var(--swal2-actions-width);margin:var(--swal2-actions-margin);padding:var(--swal2-actions-padding);border-radius:var(--swal2-actions-border-radius);background:var(--swal2-actions-background)}div:where(.swal2-container) div:where(.swal2-loader){display:none;align-items:center;justify-content:center;width:2.2em;height:2.2em;margin:0 1.875em;animation:swal2-rotate-loading 1.5s linear 0s infinite normal;border-width:.25em;border-style:solid;border-radius:100%;border-color:#2778c4 rgba(0,0,0,0) #2778c4 rgba(0,0,0,0)}div:where(.swal2-container) button:where(.swal2-styled){margin:.3125em;padding:.625em 1.1em;transition:var(--swal2-action-button-transition);border:none;box-shadow:0 0 0 3px rgba(0,0,0,0);font-weight:500}div:where(.swal2-container) button:where(.swal2-styled):not([disabled]){cursor:pointer}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-confirm){border-radius:var(--swal2-confirm-button-border-radius);background:initial;background-color:var(--swal2-confirm-button-background-color);box-shadow:var(--swal2-confirm-button-box-shadow);color:var(--swal2-confirm-button-color);font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-confirm):hover{background-color:color-mix(in srgb, var(--swal2-confirm-button-background-color), var(--swal2-action-button-hover))}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-confirm):active{background-color:color-mix(in srgb, var(--swal2-confirm-button-background-color), var(--swal2-action-button-active))}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-deny){border-radius:var(--swal2-deny-button-border-radius);background:initial;background-color:var(--swal2-deny-button-background-color);box-shadow:var(--swal2-deny-button-box-shadow);color:var(--swal2-deny-button-color);font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-deny):hover{background-color:color-mix(in srgb, var(--swal2-deny-button-background-color), var(--swal2-action-button-hover))}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-deny):active{background-color:color-mix(in srgb, var(--swal2-deny-button-background-color), var(--swal2-action-button-active))}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-cancel){border-radius:var(--swal2-cancel-button-border-radius);background:initial;background-color:var(--swal2-cancel-button-background-color);box-shadow:var(--swal2-cancel-button-box-shadow);color:var(--swal2-cancel-button-color);font-size:1em}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-cancel):hover{background-color:color-mix(in srgb, var(--swal2-cancel-button-background-color), var(--swal2-action-button-hover))}div:where(.swal2-container) button:where(.swal2-styled):where(.swal2-cancel):active{background-color:color-mix(in srgb, var(--swal2-cancel-button-background-color), var(--swal2-action-button-active))}div:where(.swal2-container) button:where(.swal2-styled):focus-visible{outline:none;box-shadow:var(--swal2-action-button-focus-box-shadow)}div:where(.swal2-container) button:where(.swal2-styled)[disabled]:not(.swal2-loading){opacity:.4}div:where(.swal2-container) button:where(.swal2-styled)::-moz-focus-inner{border:0}div:where(.swal2-container) div:where(.swal2-footer){margin:1em 0 0;padding:1em 1em 0;border-top:1px solid var(--swal2-footer-border-color);background:var(--swal2-footer-background);color:var(--swal2-footer-color);font-size:1em;text-align:center;cursor:initial}div:where(.swal2-container) .swal2-timer-progress-bar-container{position:absolute;right:0;bottom:0;left:0;grid-column:auto !important;overflow:hidden;border-bottom-right-radius:var(--swal2-border-radius);border-bottom-left-radius:var(--swal2-border-radius)}div:where(.swal2-container) div:where(.swal2-timer-progress-bar){width:100%;height:.25em;background:var(--swal2-timer-progress-bar-background)}div:where(.swal2-container) img:where(.swal2-image){max-width:100%;margin:2em auto 1em;cursor:initial}div:where(.swal2-container) button:where(.swal2-close){position:var(--swal2-close-button-position);inset:var(--swal2-close-button-inset);z-index:2;align-items:center;justify-content:center;width:1.2em;height:1.2em;margin-top:0;margin-right:0;margin-bottom:-1.2em;padding:0;overflow:hidden;transition:var(--swal2-close-button-transition);border:none;border-radius:var(--swal2-border-radius);outline:var(--swal2-close-button-outline);background:rgba(0,0,0,0);color:var(--swal2-close-button-color);font-family:monospace;font-size:var(--swal2-close-button-font-size);cursor:pointer;justify-self:end}div:where(.swal2-container) button:where(.swal2-close):hover{transform:var(--swal2-close-button-hover-transform);background:rgba(0,0,0,0);color:#f27474}div:where(.swal2-container) button:where(.swal2-close):focus-visible{outline:none;box-shadow:var(--swal2-close-button-focus-box-shadow)}div:where(.swal2-container) button:where(.swal2-close)::-moz-focus-inner{border:0}div:where(.swal2-container) div:where(.swal2-html-container){z-index:1;justify-content:center;margin:0;padding:var(--swal2-html-container-padding);overflow:auto;color:inherit;font-size:1.125em;font-weight:normal;line-height:normal;text-align:center;overflow-wrap:break-word;word-break:break-word;cursor:initial}div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) textarea:where(.swal2-textarea),div:where(.swal2-container) select:where(.swal2-select),div:where(.swal2-container) div:where(.swal2-radio),div:where(.swal2-container) label:where(.swal2-checkbox){margin:1em 2em 3px}div:where(.swal2-container) input:where(.swal2-input),div:where(.swal2-container) input:where(.swal2-file),div:where(.swal2-container) textarea:where(.swal2-textarea){box-sizing:border-box;width:auto;transition:var(--swal2-input-transition);border:var(--swal2-input-border);border-radius:var(--swal2-input-border-radius);background:var(--swal2-input-background);box-shadow:var(--swal2-input-box-shadow);color:inherit;font-size:1.125em}div:where(.swal2-container) input:where(.swal2-input).swal2-inputerror,div:where(.swal2-container) input:where(.swal2-file).swal2-inputerror,div:where(.swal2-container) textarea:where(.swal2-textarea).swal2-inputerror{border-color:#f27474 !important;box-shadow:0 0 2px #f27474 !important}div:where(.swal2-container) input:where(.swal2-input):hover,div:where(.swal2-container) input:where(.swal2-file):hover,div:where(.swal2-container) textarea:where(.swal2-textarea):hover{box-shadow:var(--swal2-input-hover-box-shadow)}div:where(.swal2-container) input:where(.swal2-input):focus,div:where(.swal2-container) input:where(.swal2-file):focus,div:where(.swal2-container) textarea:where(.swal2-textarea):focus{border:var(--swal2-input-focus-border);outline:none;box-shadow:var(--swal2-input-focus-box-shadow)}div:where(.swal2-container) input:where(.swal2-input)::placeholder,div:where(.swal2-container) input:where(.swal2-file)::placeholder,div:where(.swal2-container) textarea:where(.swal2-textarea)::placeholder{color:#ccc}div:where(.swal2-container) .swal2-range{margin:1em 2em 3px;background:var(--swal2-background)}div:where(.swal2-container) .swal2-range input{width:80%}div:where(.swal2-container) .swal2-range output{width:20%;color:inherit;font-weight:600;text-align:center}div:where(.swal2-container) .swal2-range input,div:where(.swal2-container) .swal2-range output{height:2.625em;padding:0;font-size:1.125em;line-height:2.625em}div:where(.swal2-container) .swal2-input{height:2.625em;padding:0 .75em}div:where(.swal2-container) .swal2-file{width:75%;margin-right:auto;margin-left:auto;background:var(--swal2-input-background);font-size:1.125em}div:where(.swal2-container) .swal2-textarea{height:6.75em;padding:.75em}div:where(.swal2-container) .swal2-select{min-width:50%;max-width:100%;padding:.375em .625em;background:var(--swal2-input-background);color:inherit;font-size:1.125em}div:where(.swal2-container) .swal2-radio,div:where(.swal2-container) .swal2-checkbox{align-items:center;justify-content:center;background:var(--swal2-background);color:inherit}div:where(.swal2-container) .swal2-radio label,div:where(.swal2-container) .swal2-checkbox label{margin:0 .6em;font-size:1.125em}div:where(.swal2-container) .swal2-radio input,div:where(.swal2-container) .swal2-checkbox input{flex-shrink:0;margin:0 .4em}div:where(.swal2-container) label:where(.swal2-input-label){display:flex;justify-content:center;margin:1em auto 0}div:where(.swal2-container) div:where(.swal2-validation-message){align-items:center;justify-content:center;margin:1em 0 0;padding:.625em;overflow:hidden;background:var(--swal2-validation-message-background);color:var(--swal2-validation-message-color);font-size:1em;font-weight:300}div:where(.swal2-container) div:where(.swal2-validation-message)::before{content:
1"!";display:inline-block;width:1.5em;min-width:1.5em;height:1.5em;margin:0 .625em;border-radius:50%;background-color:#f27474;color:#fff;font-weight:600;line-height:1.5em;text-align:center}div:where(.swal2-container) .swal2-progress-steps{flex-wrap:wrap;align-items:center;max-width:100%;margin:1.25em auto;padding:0;background:rgba(0,0,0,0);font-weight:600}div:where(.swal2-container) .swal2-progress-steps li{display:inline-block;position:relative}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step{z-index:20;flex-shrink:0;width:2em;height:2em;border-radius:2em;background:#2778c4;color:#fff;line-height:2em;text-align:center}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step{background:#2778c4}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step{background:var(--swal2-progress-step-background);color:#fff}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step.swal2-active-progress-step~.swal2-progress-step-line{background:var(--swal2-progress-step-background)}div:where(.swal2-container) .swal2-progress-steps .swal2-progress-step-line{z-index:10;flex-shrink:0;width:2.5em;height:.4em;margin:0 -1px;background:#2778c4}div:where(.swal2-icon){position:relative;box-sizing:content-box;justify-content:center;width:5em;height:5em;margin:2.5em auto .6em;zoom:var(--swal2-icon-zoom);border:.25em solid rgba(0,0,0,0);border-radius:50%;border-color:#000;font-family:inherit;line-height:5em;cursor:default;user-select:none}div:where(.swal2-icon) .swal2-icon-content{display:flex;align-items:center;font-size:3.75em}div:where(.swal2-icon).swal2-error{border-color:#f27474;color:#f27474}div:where(.swal2-icon).swal2-error .swal2-x-mark{position:relative;flex-grow:1}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line]{display:block;position:absolute;top:2.3125em;width:2.9375em;height:.3125em;border-radius:.125em;background-color:#f27474}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=left]{left:1.0625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-error [class^=swal2-x-mark-line][class$=right]{right:1em;transform:rotate(-45deg)}@container swal2-popup style(--swal2-icon-animations:true){div:where(.swal2-icon).swal2-error.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-error.swal2-icon-show .swal2-x-mark{animation:swal2-animate-error-x-mark .5s}}div:where(.swal2-icon).swal2-warning{border-color:#f8bb86;color:#f8bb86}@container swal2-popup style(--swal2-icon-animations:true){div:where(.swal2-icon).swal2-warning.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-warning.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .5s}}div:where(.swal2-icon).swal2-info{border-color:#3fc3ee;color:#3fc3ee}@container swal2-popup style(--swal2-icon-animations:true){div:where(.swal2-icon).swal2-info.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-info.swal2-icon-show .swal2-icon-content{animation:swal2-animate-i-mark .8s}}div:where(.swal2-icon).swal2-question{border-color:#87adbd;color:#87adbd}@container swal2-popup style(--swal2-icon-animations:true){div:where(.swal2-icon).swal2-question.swal2-icon-show{animation:swal2-animate-error-icon .5s}div:where(.swal2-icon).swal2-question.swal2-icon-show .swal2-icon-content{animation:swal2-animate-question-mark .8s}}div:where(.swal2-icon).swal2-success{border-color:#a5dc86;color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line]{position:absolute;width:3.75em;height:7.5em;border-radius:50%}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.4375em;left:-2.0635em;transform:rotate(-45deg);transform-origin:3.75em 3.75em;border-radius:7.5em 0 0 7.5em}div:where(.swal2-icon).swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.6875em;left:1.875em;transform:rotate(-45deg);transform-origin:0 3.75em;border-radius:0 7.5em 7.5em 0}div:where(.swal2-icon).swal2-success .swal2-success-ring{position:absolute;z-index:2;top:-0.25em;
1left:-0.25em;box-sizing:content-box;width:100%;height:100%;border:.25em solid rgba(165,220,134,.3);border-radius:50%}div:where(.swal2-icon).swal2-success .swal2-success-fix{position:absolute;z-index:1;top:.5em;left:1.625em;width:.4375em;height:5.625em;transform:rotate(-45deg)}div:where(.swal2-icon).swal2-success [class^=swal2-success-line]{display:block;position:absolute;z-index:2;height:.3125em;border-radius:.125em;background-color:#a5dc86}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=tip]{top:2.875em;left:.8125em;width:1.5625em;transform:rotate(45deg)}div:where(.swal2-icon).swal2-success [class^=swal2-success-line][class$=long]{top:2.375em;right:.5em;width:2.9375em;transform:rotate(-45deg)}@container swal2-popup style(--swal2-icon-animations:true){div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-animate-success-line-tip .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-animate-success-line-long .75s}div:where(.swal2-icon).swal2-success.swal2-icon-show .swal2-success-circular-line-right{animation:swal2-rotate-success-circular-line 4.25s ease-in}}[class^=swal2]{-webkit-tap-highlight-color:rgba(0,0,0,0)}.swal2-show{animation:var(--swal2-show-animation)}.swal2-hide{animation:var(--swal2-hide-animation)}.swal2-noanimation{transition:none}.swal2-scrollbar-measure{position:absolute;top:-9999px;width:50px;height:50px;overflow:scroll}.swal2-rtl .swal2-close{margin-right:initial;margin-left:0}.swal2-rtl .swal2-timer-progress-bar{right:0;left:auto}.swal2-toast{box-sizing:border-box;grid-column:1/4 !important;grid-row:1/4 !important;grid-template-columns:min-content auto min-content;padding:1em;overflow-y:hidden;border:var(--swal2-toast-border);background:var(--swal2-background);box-shadow:var(--swal2-toast-box-shadow);pointer-events:all}.swal2-toast>*{grid-column:2}.swal2-toast h2:where(.swal2-title){margin:.5em 1em;padding:0;font-size:1em;text-align:initial}.swal2-toast .swal2-loading{justify-content:center}.swal2-toast input:where(.swal2-input){height:2em;margin:.5em;font-size:1em}.swal2-toast .swal2-validation-message{font-size:1em}.swal2-toast div:where(.swal2-footer){margin:.5em 0 0;padding:.5em 0 0;font-size:.8em}.swal2-toast button:where(.swal2-close){grid-column:3/3;grid-row:1/99;align-self:center;width:.8em;height:.8em;margin:0;font-size:2em}.swal2-toast div:where(.swal2-html-container){margin:.5em 1em;padding:0;overflow:initial;font-size:1em;text-align:initial}.swal2-toast div:where(.swal2-html-container):empty{padding:0}.swal2-toast .swal2-loader{grid-column:1;grid-row:1/99;align-self:center;width:2em;height:2em;margin:.25em}.swal2-toast .swal2-icon{grid-column:1;grid-row:1/99;align-self:center;width:2em;min-width:2em;height:2em;margin:0 .5em 0 0}.swal2-toast .swal2-icon .swal2-icon-content{display:flex;align-items:center;font-size:1.8em;font-weight:bold}.swal2-toast .swal2-icon.swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line]{top:.875em;width:1.375em}.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=left]{left:.3125em}.swal2-toast .swal2-icon.swal2-error [class^=swal2-x-mark-line][class$=right]{right:.3125em}.swal2-toast div:where(.swal2-actions){justify-content:flex-start;height:auto;margin:0;margin-top:.5em;padding:0 .5em}.swal2-toast button:where(.swal2-styled){margin:.25em .5em;padding:.4em .6em;font-size:1em}.swal2-toast .swal2-success{border-color:#a5dc86}.swal2-toast .swal2-success [class^=swal2-success-circular-line]{position:absolute;width:1.6em;height:3em;border-radius:50%}.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=left]{top:-0.8em;left:-0.5em;transform:rotate(-45deg);transform-origin:2em 2em;border-radius:4em 0 0 4em}.swal2-toast .swal2-success [class^=swal2-success-circular-line][class$=right]{top:-0.25em;left:.9375em;transform-origin:0 1.5em;border-radius:0 4em 4em 0}.swal2-toast .swal2-success .swal2-success-ring{width:2em;height:2em}.swal2-toast .swal2-success .swal2-success-fix{top:0;left:.4375em;width:.4375em;height:2.6875em}.swal2-toast .swal2-success [class^=swal2-success-line]{height:.3125em}.swal2-toast .swal2-success [class^=swal2-success-line][class$=tip]{top:1.125em;
1left:.1875em;width:.75em}.swal2-toast .swal2-success [class^=swal2-success-line][class$=long]{top:.9375em;right:.1875em;width:1.375em}@container swal2-popup style(--swal2-icon-animations:true){.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-tip{animation:swal2-toast-animate-success-line-tip .75s}.swal2-toast .swal2-success.swal2-icon-show .swal2-success-line-long{animation:swal2-toast-animate-success-line-long .75s}}.swal2-toast.swal2-show{animation:var(--swal2-toast-show-animation)}.swal2-toast.swal2-hide{animation:var(--swal2-toast-hide-animation)}@keyframes swal2-show{0%{transform:translate3d(0, -50px, 0) scale(0.9);opacity:0}100%{transform:translate3d(0, 0, 0) scale(1);opacity:1}}@keyframes swal2-hide{0%{transform:translate3d(0, 0, 0) scale(1);opacity:1}100%{transform:translate3d(0, -50px, 0) scale(0.9);opacity:0}}@keyframes swal2-animate-success-line-tip{0%{top:1.1875em;left:.0625em;width:0}54%{top:1.0625em;left:.125em;width:0}70%{top:2.1875em;left:-0.375em;width:3.125em}84%{top:3em;left:1.3125em;width:1.0625em}100%{top:2.8125em;left:.8125em;width:1.5625em}}@keyframes swal2-animate-success-line-long{0%{top:3.375em;right:2.875em;width:0}65%{top:3.375em;right:2.875em;width:0}84%{top:2.1875em;right:0;width:3.4375em}100%{top:2.375em;right:.5em;width:2.9375em}}@keyframes swal2-rotate-success-circular-line{0%{transform:rotate(-45deg)}5%{transform:rotate(-45deg)}12%{transform:rotate(-405deg)}100%{transform:rotate(-405deg)}}@keyframes swal2-animate-error-x-mark{0%{margin-top:1.625em;transform:scale(0.4);opacity:0}
150%{margin-top:1.625em;transform:scale(0.4);opacity:0}80%{margin-top:-0.375em;transform:scale(1.15)}100%{margin-top:0;transform:scale(1);opacity:1}}@keyframes swal2-animate-error-icon{0%{transform:rotateX(100deg);opacity:0}100%{transform:rotateX(0deg);opacity:1}}@keyframes swal2-rotate-loading{0%{transform:rotate(0deg)}100%{transform:rotate(360deg)}}@keyframes swal2-animate-question-mark{0%{transform:rotateY(-360deg)}100%{transform:rotateY(0)}}@keyframes swal2-animate-i-mark{0%{transform:rotateZ(45deg);opacity:0}25%{transform:rotateZ(-25deg);opacity:.4}50%{transform:rotateZ(15deg);opacity:.8}75%{transform:rotateZ(-5deg);opacity:1}100%{transform:rotateX(0);opacity:1}}@keyframes swal2-toast-show{0%{transform:translateY(-0.625em) rotateZ(2deg)}33%{transform:translateY(0) rotateZ(-2deg)}66%{transform:translateY(0.3125em) rotateZ(2deg)}100%{transform:translateY(0) rotateZ(0deg)}}@keyframes swal2-toast-hide{100%{transform:rotateZ(1deg);opacity:0}}@keyframes swal2-toast-animate-success-line-tip{0%{top:.5625em;left:.0625em;width:0}54%{top:.125em;left:.125em;width:0}70%{top:.625em;left:-0.25em;width:1.625em}84%{top:1.0625em;left:.75em;width:.5em}100%{top:1.125em;left:.1875em;width:.75em}}@keyframes swal2-toast-animate-success-line-long{0%{top:1.625em;right:1.375em;width:0}65%{top:1.25em;right:.9375em;width:0}84%{top:.9375em;right:0;width:1.125em}100%{top:.9375em;right:.1875em;width:1.375em}}');const Zf=e=>(e||"").trim().toLowerCase().replace(/_/g,"-"),Jf=e=>e.split("-")[0],Bf=(e,n)=>{const t=Zf(e);if(!t)return;const i=n.find(e=>Zf(e)===t);if(i)return i;const a=Jf(t),o=n.find(e=>Zf(e)===a);if(o)return o;const r=n.filter(e=>Jf(Zf(e))===a);return 1===r.length?r[0]:void 0},Rf={popupChrome:{themeToggleDark:"Turn dark theme on",themeToggleLight:"Turn light theme on"},auth:{privacyPolicy:"Privacy Policy",connect:{title:"Save Your Progress",message:"Sign in with Google to save and restore your game progress.",confirmButtonText:"Continue with Google",cancelButtonText:"Not now"},restore:{title:"Restore Progress",message:"Sign in with Google to re
1cover your cloud save.",confirmButtonText:"Continue with Google",cancelButtonText:"Close"},manage:{title:"Account",message:"You are signed in. You can sign out to return to an anonymous session.",confirmButtonText:"Sign out",cancelButtonText:"Close"},floatingButton:{readyLabel:"Login?",pausedLabel:"Login",loginAriaLabel:"Log in",menuAriaLabel:"Open login menu"},errors:{"auth/popup-blocked":"The Google sign-in popup was blocked by the browser. Please allow popups for this site and try again.","auth/popup-closed-by-user":"The Google sign-in popup was closed before the login finished.","auth/unauthorized-domain":"This domain is not authorized in Firebase Auth. Add localhost to the Authorized domains list and try again.","auth/operation-not-allowed":"Google sign-in is not enabled for this Firebase project.","auth/cancelled-popup-request":"A previous sign-in popup is still pending. Close it or try again.",missing_config:"Firebase auth configuration is missing or incomplete.",timeout:"Firebase auth initialization timed out. Please reload and try again.",default:"Google sign-in failed. Please try again.",signOutDefault:"Sign out failed. Please try again."}},loginUi:{yandex:{floatingButton:{readyLabel:"Save Progress",pausedLabel:"Save Progress",ariaLabel:"Save Progress",menuAriaLabel:"Menu"},connect:{title:"Save your progress",message:"Sign in with your account to save your progress and purchases.",confirmButtonText:"Login",cancelButtonText:"Later"},restore:{title:"Restore your progress",message:"Sign in with your account to restore your progress and purchases on this device.",confirmButtonText:"Restore",cancelButtonText:"Later"},manage:{title:"Account",message:"Your account is managed by the platform.",confirmButtonText:"Continue"},errors:{canceled:"Login was canceled. You can try again anytime.",default:"Login failed. Please try again."}}},saveConflict:{title:"Cloud Conflict",message:"Your local game save data conflicts with what is stored in the cloud.",warningLabel:"Warning:",warningMessage:"The game will restart to apply the cloud save.",progressLabel:"Progress",updatedLabel:"Updated",localTitle:"This device",localBadge:"Local",remoteTitle:"Cloud save",remoteBadge:"Cloud",confirmButtonText:"Confirm"},saveRestored:{title:"Cloud Save Restored",message:"Your selected cloud save is ready.",panelTitle:"Applying your progress",panelMessage:"Reloading the game to apply the selected save."}},Ff={popupChrome:{themeToggleDark:"Activar tema oscuro",themeToggleLight:"Activar tema claro"},auth:{privacyPolicy:"PolÃtica de privacidad",connect:{title:"Guarda tu progreso",message:"Inicia sesión con Google para guardar y restaurar el progreso de tu juego.",confirmButtonText:"Continuar con Google",cancelButtonText:"Ahora no"},restore:{title:"Restaurar progreso",message:"Inicia sesión con Google para recuperar tu guardado en la nube.",confirmButtonText:"Continuar con Google",cancelButtonText:"Cerrar"},manage:{title:"Cuenta",message:"Has iniciado sesión. Puedes cerrar sesión para volver a una sesión anónima.",confirmButtonText:"Cerrar sesión",cancelButtonText:"Cerrar"},floatingButton:{readyLabel:"¿Iniciar sesión?",pausedLabel:"Iniciar sesión",loginAriaLabel:"Iniciar sesión",menuAriaLabel:"Abrir menú de inicio de sesión"},errors:{"auth/popup-blocked":"El navegador bloqueó la ventana emergente de inicio de sesión de Google. Permite las ventanas emergentes para este sitio e inténtalo de nuevo.","auth/popup-closed-by-user":"La ventana emergente de inicio de sesión de Google se cerró antes de completar el acceso.","auth/unauthorized-domain":"Este dominio no está autorizado en Firebase Auth. Añade localhost a la lista de dominios autorizados y vuelve a intentarlo.","auth/operation-not-allowed":"El inicio de sesión con Google no está habilitado para este proyecto de Firebase.","auth/cancelled-popup-request":"Ya hay una ventana emergente de inicio de sesión pendiente. Ciérrala o vuelve a intentarlo.",missing_config:"La configuración de autenticación de Firebase falta o está incompleta.",timeout:"La inicialización de la autenticación de Firebase agotó el tiempo de espera. Recarga la página e inténtalo de nuevo.",default:"El inicio de sesión con Google falló. Inténtalo de nuevo.",signOutDefault:"No se pudo cerrar la sesión. Inténtalo de nuevo."}},loginUi:{yandex:{floatingButton:{readyLabel:"Guardar progreso",pausedLabel:"Guardar progreso",ariaLabel:"Guardar progreso",menuAriaLabel:"Menú"},connect:{title:"Guarda tu progreso",message:"Inicia sesión con tu cuenta para conservar tu progreso y tus compras.",confirmButtonText:"Registro",cancelButtonText:"Cancelar"},restore:{title:"Restaura tu progreso",message:"Inicia sesión con tu cuenta para restaurar tu progreso y tus compras en este dispositivo.",confirmButtonText:"Registro",cancelButtonText:"Cancelar"},manage:{title:"Cuenta",message:"Tu cuenta es gestionada por la plataforma.",confirmButtonText:"Continuar"},errors:{canceled:"Se canceló el inicio de sesión. Puedes volver a intentarlo en cualquier momento.",default:"Error al iniciar sesión. Por favor, inténtalo de nuevo."}}},saveConflict:{title:"Conflicto en la nube",message:"Los datos de guardado locales de tu juego entran en conflicto con lo que está almacenado en la nube.",warningLabel:"Advertencia:",warningMessage:"El juego se reiniciará para aplicar el guardado en la nube.",progressLabel:"Progreso",updatedLabel:"Actualizado",localTitle:"Este dispositivo",localBadge:"Local",remoteTitle:"Guardado en la nube",remoteBadge:"Nube",confirmButtonText:"Confirmar"},saveRestored:{title:"Guardado en la nube restaurado",message:"El guardado en la nube que seleccionaste está listo.",panelTitle:"Aplicando tu progreso",panelMessage:"Recargando el juego para aplicar el guardado seleccionado."}},Xf={popupChrome:{themeToggleDark:"Activer le thème sombre",themeToggleLight:"Activer le thème clair"},auth:{privacyPolicy:"Politique de confidentialité",connect:{title:"Sauvegardez votre progression",message:"Connectez-vous avec Google pour sauvegarder et restaurer votre progression.",confirmButtonText:"Continuer avec Google",cancelButtonText:"Pas maintenant"},restore:{title:"Restaurer la progression",message:"Connectez-vous avec Google pour récupérer votre sauvegarde cloud.",confirmButtonText:"Continuer avec Google",cancelButtonText:"Fermer"},manage:{title:"Compte",message:"Vous êtes connecté. Vous pouvez vous déconnecter pour revenir à une session anonyme.",confirmButtonText:"Se déconnecter",cancelButtonText:"Fermer"},floatingButton:{readyLabel:"Connexion ?",pausedLabel:"Connexion",loginAriaLabel:"Se connecter",menuAriaLabel:"Ouvrir le menu de connexion"},errors:{"auth/popup-blocked":"La fenêtre pop-up de connexion Google a été bloquée par le navigateur. Autorisez les pop-ups pour ce site et réessayez.","auth/popup-closed-by-user":"La fenêtre pop-up de connexion Google a été fermée avant la fin de la connexion.","auth/un
1authorized-domain":"Ce domaine n'est pas autorisé dans Firebase Auth. Ajoutez localhost à la liste des domaines autorisés et réessayez.","auth/operation-not-allowed":"La connexion avec Google n'est pas activée pour ce projet Firebase.","auth/cancelled-popup-request":"Une précédente fenêtre de connexion est toujours en attente. Fermez-la ou réessayez.",missing_config:"La configuration d'authentification Firebase est manquante ou incomplète.",timeout:"L'initialisation de Firebase Auth a expiré. Rechargez la page et réessayez.",default:"La connexion avec Google a échoué. Réessayez.",signOutDefault:"La déconnexion a échoué. Réessayez."}},loginUi:{yandex:{floatingButton:{readyLabel:"Enregistrer la progression",pausedLabel:"Enregistrer la progression",ariaLabel:"Enregistrer la progression",menuAriaLabel:"Menu"},connect:{title:"Enregistrez votre progression",message:"Connectez-vous avec votre compte pour conserver votre progression et vos achats.",confirmButtonText:"Se connecter",cancelButtonText:"Annuler"},restore:{title:"Restaurer votre progression",message:"Connectez-vous avec votre compte pour restaurer votre progression et vos achats sur cet appareil.",confirmButtonText:"Se connecter",cancelButtonText:"Annuler"},manage:{title:"Compte",message:"Votre compte est géré par la plateforme.",confirmButtonText:"Continuer"},errors:{canceled:"La connexion a été annulée. Vous pouvez réessayer à tout moment.",default:"Ãchec de la connexion. Veuillez réessayer."}}},saveConflict:{title:"Conflit cloud",message:"Les données de sauvegarde locales de votre jeu sont en conflit avec celles stockées dans le cloud.",warningLabel:"Attention :",warningMessage:"Le jeu va redémarrer pour appliquer la sauvegarde cloud.",progressLabel:"Progression",updatedLabel:"Mis à jour",localTitle:"Cet appareil",localBadge:"Local",remoteTitle:"Sauvegarde cloud",remoteBadge:"Cloud",confirmButtonText:"Confirmer"},saveRestored:{title:"Sauvegarde cloud restaurée",message:"La sauvegarde cloud sélectionnée est prête.",panelTitle:"Application de votre progression",panelMessage:"Rechargement du jeu pour appliquer la sauvegarde sélectionnée."}},Hf={popupChrome:{themeToggleDark:"Attiva il tema scuro",themeToggleLight:"Attiva il tema chiaro"},auth:{privacyPolicy:"Informativa sulla privacy",connect:{title:"Salva i tuoi progressi",message:"Accedi con Google per salvare e ripristinare i progressi di gioco.",confirmButtonText:"Continua con Google",cancelButtonText:"Non ora"},restore:{title:"Ripristina i progressi",message:"Accedi con Google per recuperare il tuo salvataggio in cloud.",confirmButtonText:"Continua con Google",cancelButtonText:"Chiudi"},manage:{title:"Account",message:"Hai effettuato l'accesso. Puoi disconnetterti per tornare a una sessione anonima.",confirmButtonText:"Disconnettiti",cancelButtonText:"Chiudi"},floatingButton:{readyLabel:"Accedi?",pausedLabel:"Accedi",loginAriaLabel:"Accedi",menuAriaLabel:"Apri il menu di accesso"},errors:{"auth/popup-blocked":"Il popup di accesso a Google è stato bloccato dal browser. Consenti i popup per questo sito e riprova.","auth/popup-closed-by-user":"Il popup di accesso a Google è stato chiuso prima di terminare l'accesso.","auth/unauthorized-domain":"Questo dominio non è autorizzato in Firebase Auth. Aggiungi localhost all'elenco dei domini autorizzati e riprova.","auth/operation-not-allowed":"L'accesso con Google non è abilitato per questo progetto Firebase.","auth/cancelled-popup-request":"Un precedente popup di accesso è ancora in sospeso. Chiudilo o riprova.",missing_config:"La configurazione di Firebase Auth è mancante o incompleta.",timeout:"Inizializzazione di Firebase Auth scaduta. Ricarica la pagina e riprova.",default:"Accesso con Google non riuscito. Riprova.",signOutDefault:"Disconnessione non riuscita. Riprova."}},loginUi:{yandex:{floatingButton:{readyLabel:"Salva progressi",pausedLabel:"Salva progressi",ariaLabel:"Salva progressi",menuAriaLabel:"Menu"},connect:{title:"Salva i tuoi progressi",message:"Accedi con il tuo account per salvare i tuoi progressi e gli acquisti.",confirmButtonText:"Accedi",cancelButtonText:"Più tardi"},restore:{title:"Ripristina i tuoi progressi",message:"Accedi con il tuo account per ripristinare i tuoi progressi e gli acquisti su questo dispositivo.",confirmButtonText:"Ripristina",cancelButtonText:"Più tardi"},manage:{title:"Account",message:"Il tuo account è gestito dalla piattaforma.",confirmButtonText:"Continua"},errors:{canceled:"L'accesso è stato annullato. Puoi riprovare in qualsiasi momento.",default:"Accesso non riuscito. Riprova."}}},saveConflict:{title:"Conflitto cloud",message:"I dati di salvataggio locali del gioco sono in conflitto con quelli archiviati nel cloud.",warningLabel:"Avviso:",warningMessage:"Il gioco si riavvierà per applicare il salvataggio in cloud.",progressLabel:"Progressi",updatedLabel:"Aggiornato",localTitle:"Questo dispositivo",localBadge:"Locale",remoteTitle:"Salvataggio cloud",remoteBadge:"Cloud",confirmButtonText:"Conferma"},saveRestored:{title:"Salvataggio in cloud ripristinato",message:"Il salvataggio in cloud selezionato è pronto.",panelTitle:"Ap
1plicazione dei progressi in corso",panelMessage:"Ricaricamento del gioco per applicare il salvataggio selezionato."}},Gf={popupChrome:{themeToggleDark:"ãã¼ã¯ãã¼ããæå¹ã«ãã",themeToggleLight:"ã©ã¤ããã¼ããæå¹ã«ãã"},auth:{privacyPolicy:"ãã©ã¤ãã·ã¼ããªã·ã¼",connect:{title:"é²è¡ç¶æ³ãä¿å",message:"Google ã§ãã°ã¤ã³ãã¦ãã²ã¼ã ã®é²è¡ç¶æ³ãä¿åã»å¾©å
ãã¾ãããã",confirmButtonText:"Google ã§ç¶è¡",cancelButtonText:"ä»ã¯ããªã"},restore:{title:"é²è¡ç¶æ³ã復å
",message:"Google ã§ãã°ã¤ã³ãã¦ãã¯ã©ã¦ãã»ã¼ãã復å
ãã¾ãããã",confirmButtonText:"Google ã§ç¶è¡",cancelButtonText:"éãã"},manage:{title:"ã¢ã«ã¦ã³ã",message:"ãã°ã¤ã³æ¸ã¿ã§ãããã°ã¢ã¦ãããã¨å¿åã»ãã·ã§ã³ã«æ»ãã¾ãã",confirmButtonText:"ãã°ã¢ã¦ã",cancelButtonText:"éãã"},floatingButton:{readyLabel:"ãã°ã¤ã³ãã¾ããï¼",pausedLabel:"ãã°ã¤ã³",loginAriaLabel:"ãã°ã¤ã³",menuAriaLabel:"ãã°ã¤ã³ã¡ãã¥ã¼ãéã"},errors:{"auth/popup-blocked":"Google ãã°ã¤ã³ã®ãããã¢ããããã©ã¦ã¶ã«ãããã¯ããã¾ããããã®ãµã¤ãã§ãããã¢ããã許å¯ãã¦ãããä¸åº¦ã試ããã ããã","auth/popup-closed-by-user":"Google ãã°ã¤ã³ã®ãããã¢ãããããã°ã¤ã³å®äºåã«éãããã¾ããã","auth/unauthorized-domain":"ãã®ãã¡ã¤ã³ã¯ Firebase Auth ã§è¨±å¯ããã¦ãã¾ãããlocalhost ã Authorized domains ã«è¿½å ãã¦ãããä¸åº¦ã試ããã ããã","auth/operation-not-allowed":"ãã® Firebase ããã¸ã§ã¯ãã§ã¯ Google ãã°ã¤ã³ãæå¹ã«ãªã£ã¦ãã¾ããã","auth/cancelled-popup-request":"ååã®ãã°ã¤ã³ç¨ãããã¢ãããã¾ã å¦çä¸ã§ããéããããããä¸åº¦ã試ããã ããã",missing_config:"Firebase Auth ã®è¨å®ãä¸è¶³ãã¦ããããä¸å®å
¨ã§ãã",timeout:"Firebase Auth ã®åæåãã¿ã¤ã ã¢ã¦ããã¾ããããã¼ã¸ãåèªã¿è¾¼ã¿ãã¦ãããä¸åº¦ã試ããã ããã",default:"Google ãã°ã¤ã³ã«å¤±æãã¾ãããããä¸åº¦ã試ããã ããã",signOutDefault:"ãã°ã¢ã¦ãã«å¤±æãã¾ãããããä¸åº¦ã試ããã ããã"}},loginUi:{yandex:{floatingButton:{readyLabel:"é²è¡ç¶æ³ãä¿å",pausedLabel:"é²è¡ç¶æ³ãä¿å",ariaLabel:"é²è¡ç¶æ³ãä¿å",menuAriaLabel:"ã¡ãã¥ã¼"},connect:{title:"é²è¡ç¶æ³ãä¿å",message:"ã¢ã«ã¦ã³ãã§ãã°ã¤ã³ãã¦ãé²è¡ç¶æ³ã¨è³¼å
¥æ
å ±ãä¿æãã¾ãããã",confirmButtonText:"ãã°ã¤ã³",cancelButtonText:"ãã¨ã§"},restore:{title:"é²è¡ç¶æ³ã復å
",message:"ã¢ã«ã¦ã³ãã§ãã°ã¤ã³ãã¦ããã®ããã¤ã¹ã§é²è¡ç¶æ³ã¨è³¼å
¥æ
å ±ã復å
ãã¾ãããã",confirmButtonText:"復å
",cancelButtonText:"ãã¨ã§"},manage:{title:"ã¢ã«ã¦ã³ã",message:"ããªãã®ã¢ã«ã¦ã³ãã¯ãã©ãããã©ã¼ã ã«ãã£ã¦ç®¡çããã¦ãã¾ãã",confirmButtonText:"ç¶ãã"},errors:{canceled:"ãã°ã¤ã³ããã£ã³ã»ã«ããã¾ããããã¤ã§ãå試è¡ã§ãã¾ãã",default:"ãã°ã¤ã³ã«å¤±æãã¾ãããããä¸åº¦ã試ããã ããã"}}},saveConflict:{title:"ã¯ã©ã¦ãç«¶å",message:"ãã¼ã«ã«ã®ã»ã¼ããã¼ã¿ããã¯ã©ã¦ãã«ä¿åããã¦ãããã¼ã¿ã¨ç«¶åãã¦ãã¾ãã",warningLabel:"è¦å:",warningMessage:"ã¯ã©ã¦ãã»ã¼ããé©ç¨ãããããã²ã¼ã ãåèµ·åãã¾ãã",progressLabel:"é²è¡ç¶æ³",updatedLabel:"æ´æ°",localTitle:"ãã®ç«¯æ«",localBadge:"ãã¼ã«ã«",remoteTitle:"ã¯ã©ã¦ãã»ã¼ã",remoteBadge:"ã¯ã©ã¦ã",confirmButtonText:"確èª"},saveRestored:{title:"ã¯ã©ã¦ãã»ã¼ãã復å
ãã¾ãã",message:"鏿ããã¯ã©ã¦ãã»ã¼ããå©ç¨ã§ãã¾ãã",panelTitle:"é²è¡ç¶æ³ãé©ç¨ãã¦ãã¾ã",panelMessage:"鏿ããã»ã¼ããã¼ã¿ãé©ç¨ãããããã²ã¼ã ãåèªã¿è¾¼ã¿ãã¦ãã¾ãã"}}
1,Of={popupChrome:{themeToggleDark:"ë¤í¬ í
ë§ ì¼ê¸°",themeToggleLight:"ë¼ì´í¸ í
ë§ ì¼ê¸°"},auth:{privacyPolicy:"ê°ì¸ì ë³´ ì²ë¦¬ë°©ì¹¨",connect:{title:"ì§í ìí© ì ì¥",message:"Googleë¡ ë¡ê·¸ì¸íì¬ ê²ì ì§í ìí©ì ì ì¥íê³ ë³µìíì¸ì.",confirmButtonText:"Googleë¡ ê³ì",cancelButtonText:"ì§ê¸ì ì í¨"},restore:{title:"ì§í ìí© ë³µì",message:"Googleë¡ ë¡ê·¸ì¸íì¬ í´ë¼ì°ë ì ì¥ ë°ì´í°ë¥¼ 복구íì¸ì.",confirmButtonText:"Googleë¡ ê³ì",cancelButtonText:"ë«ê¸°"},manage:{title:"ê³ì ",message:"ë¡ê·¸ì¸ëì´ ììµëë¤. ë¡ê·¸ììíë©´ ìµëª
ì¸ì
ì¼ë¡ ëìê°ëë¤.",confirmButtonText:"ë¡ê·¸ìì",cancelButtonText:"ë«ê¸°"},floatingButton:{readyLabel:"ë¡ê·¸ì¸í ê¹ì?",pausedLabel:"ë¡ê·¸ì¸",loginAriaLabel:"ë¡ê·¸ì¸",menuAriaLabel:"ë¡ê·¸ì¸ ë©ë´ ì´ê¸°"},errors:{"auth/popup-blocked":"ë¸ë¼ì°ì ìì Google ë¡ê·¸ì¸ íì
ì ì°¨ë¨íìµëë¤. ì´ ì¬ì´í¸ì íì
ì íì©í ë¤ ë¤ì ìëíì¸ì.","auth/popup-closed-by-user":"ë¡ê·¸ì¸ì´ ìë£ë기 ì ì Google ë¡ê·¸ì¸ íì
ì´ ë«íìµëë¤.","auth/unauthorized-domain":"ì´ ëë©ì¸ì Firebase Authìì íì©ëì§ ììµëë¤. Authorized domains 목ë¡ì localhost를 ì¶ê°í ë¤ ë¤ì ìëíì¸ì.","auth/operation-not-allowed":"ì´ Firebase íë¡ì í¸ììë Google ë¡ê·¸ì¸ì´ íì±íëì´ ìì§ ììµëë¤.","auth/cancelled-popup-request":"ì´ì ì ìì²í ë¡ê·¸ì¸ íì
ì´ ìì§ ì´ë ¤ ììµëë¤. ë«ê±°ë ë¤ì ìëíì¸ì.",missing_config:"Firebase ì¸ì¦ ì¤ì ì´ ìê±°ë ë¶ìì í©ëë¤.",timeout:"Firebase ì¸ì¦ ì´ê¸°í ìê°ì´ ì´ê³¼ëììµëë¤. íì´ì§ë¥¼ ìë¡ê³ 침í ë¤ ë¤ì ìëíì¸ì.",default:"Google ë¡ê·¸ì¸ì ì¤í¨íìµëë¤. ë¤ì ìëíì¸ì.",signOutDefault:"ë¡ê·¸ììì ì¤í¨íìµëë¤. ë¤ì ìëíì¸ì."}},loginUi:{yandex:{floatingButton:{readyLabel:"ì§í ìí© ì ì¥",pausedLabel:"ì§í ìí© ì ì¥",ariaLabel:"ì§í ìí© ì ì¥",menuAriaLabel:"ë©ë´"},connect:{title:"ì§í ìí© ì ì¥",message:" ê³ì ì¼ë¡ ë¡ê·¸ì¸íì¬ ì§í ìí©ê³¼ 구매 ë´ìì ì ì§íì¸ì.",confirmButtonText:"ë¡ê·¸ì¸",cancelButtonText:"ëì¤ì"},restore:{title:"ì§í ìí© ë³µì",message:"ê³ì ì¼ë¡ ë¡ê·¸ì¸íì¬ ì´ ê¸°ê¸°ìì ì§í ìí©ê³¼ 구매 ë´ìì ë³µìíì¸ì.",confirmButtonText:"ë³µì",cancelButtonText:"ëì¤ì"},manage:{title:"ê³ì ",message:"ê·íì ê³ì ì íë«í¼ìì ê´ë¦¬ë©ëë¤.",confirmButtonText:"ê³ì"},errors:{canceled:"ë¡ê·¸ì¸ì´ ì·¨ìëììµëë¤. ì¸ì ë ì§ ë¤ì ìëí ì ììµëë¤.",default:"ë¡ê·¸ì¸ì ì¤í¨íìµëë¤. ë¤ì ìëí´ ì£¼ì¸ì."}}},saveConflict:{title:"í´ë¼ì°ë ì¶©ë",message:"ë¡ì»¬ ê²ì ì ì¥ ë°ì´í°ê° í´ë¼ì°ëì ì ì¥ë ë°ì´í°ì ì¶©ëí©ëë¤.",warningLabel:"ê²½ê³ :",warningMessage:"í´ë¼ì°ë ì ì¥ ë°ì´í°ë¥¼ ì ì©íë ¤ë©´ ê²ìì´ ë¤ì ììë©ëë¤.",progressLabel:"ì§í ìí©",updatedLabel:"ì
ë°ì´í¸ë¨",localTitle:"ì´ ê¸°ê¸°",localBadge:"ë¡ì»¬",remoteTitle:"í´ë¼ì°ë ì ì¥",remoteBadge:"í´ë¼ì°ë",confirmButtonText:"íì¸"},saveRestored:{title:"í´ë¼ì°ë ì ì¥ ë³µìë¨",message:"ì íí í´ë¼ì°ë ì ì¥ ë°ì´í°ë¥¼ ì¬ì©í ì ììµëë¤.",panelTitle:"ì§í ìí© ì ì© ì¤",panelMessage:"ì íí ì ì¥ ë°ì´í°ë¥¼ ì ì©í기 ìí´ ê²ìì ë¤ì ë¶ë¬ì¤ë ì¤ì
ëë¤."}},Qf={popupChrome:{themeToggleDark:"Ativar tema escuro",themeToggleLight:"Ativar tema claro"},auth:{privacyPolicy:"PolÃtica de Privacidade",connect:{title:"Salve seu progresso",message:"Faça login com o Google para salvar e restaurar o progresso do seu jogo.",confirmButtonText:"Continuar com Google",cancelButtonText:"Agora não"},restore:{title:"Restaurar progresso",message:"Faça login com o Google para recuperar seu salvamento na nuvem.",confirmButtonText:"Continuar com Google",cancelButtonText:"Fechar"},manage:{title:"Conta",message:"Você está conectado. Você pode sair para voltar a uma sessão anônima.",confirmButtonText:"Sair",cancelButtonText:"Fechar"},floatingButton:{readyLabel:"Fazer login?",pausedLabel:"Fazer login",loginAriaLabel:"Fazer login",menuAriaLabel:"Abrir menu de login"},errors:{"auth/popup-blocked":"A janela pop-up de login do Google foi bloqueada pelo navegador. Permita pop-ups para este site e tente novamente.","auth/popup-closed-by-user":"A janela pop-up de login do Google foi fechada antes da conclusão do login.","auth/un
1authorized-domain":"Este domÃnio não está autorizado no Firebase Auth. Adicione localhost à lista de domÃnios autorizados e tente novamente.","auth/operation-not-allowed":"O login com Google não está habilitado para este projeto do Firebase.","auth/cancelled-popup-request":"Ainda há uma janela de login pendente. Feche-a ou tente novamente.",missing_config:"A configuração de autenticação do Firebase está ausente ou incompleta.",timeout:"A inicialização da autenticação do Firebase excedeu o tempo limite. Recarregue a página e tente novamente.",default:"Falha no login com Google. Tente novamente.",signOutDefault:"Falha ao sair. Tente novamente."}},loginUi:{yandex:{floatingButton:{readyLabel:"Salvar Progresso",pausedLabel:"Salvar Progresso",ariaLabel:"Salvar Progresso",menuAriaLabel:"Menu"},connect:{title:"Salve seu progresso",message:"Faça login com sua conta para salvar seu progresso e compras.",confirmButtonText:"Entrar",cancelButtonText:"Depois"},restore:{title:"Restaurar seu progresso",message:"Faça login com sua conta para restaurar seu progresso e compras neste dispositivo.",confirmButtonText:"Restaurar",cancelButtonText:"Depois"},manage:{title:"Conta",message:"Sua conta é gerenciada pela plataforma.",confirmButtonText:"Continuar"},errors:{canceled:"O login foi cancelado. Você pode tentar novamente a qualquer momento.",default:"Falha no login. Por favor, tente novamente."}}},saveConflict:{title:"Conflito na nuvem",message:"Os dados de salvamento locais do seu jogo entram em conflito com o que está armazenado na nuvem.",warningLabel:"Aviso:",warningMessage:"O jogo será reiniciado para aplicar o salvamento na nuvem.",progressLabel:"Progresso",updatedLabel:"Atualizado",localTitle:"Este dispositivo",localBadge:"Local",remoteTitle:"Salvamento na nuvem",remoteBadge:"Nuvem",confirmButtonText:"Confirmar"},saveRestored:{title:"Salvamento na nuvem restaurado",message:"O salvamento na nuvem selecionado está pronto.",panelTitle:"Aplicando seu progresso",panelMessage:"Recarregando o jogo para aplicar o salvamento selecionado."}},Kf={popupChrome:{themeToggleDark:"ÐклÑÑиÑÑ ÑемнÑÑ ÑемÑ",themeToggleLight:"ÐклÑÑиÑÑ ÑвеÑлÑÑ ÑемÑ"},auth:{privacyPolicy:"ÐолиÑика конÑиденÑиалÑноÑÑи",connect:{title:"СоÑ
ÑаниÑе пÑогÑеÑÑ",message:"ÐойдиÑе ÑеÑез Google, ÑÑÐ¾Ð±Ñ ÑоÑ
ÑанÑÑÑ Ð¸ воÑÑÑанавливаÑÑ Ð¸Ð³Ñовой пÑогÑеÑÑ.",confirmButtonText:"ÐÑодолжиÑÑ Ñ Google",cancelButtonText:"Ðе ÑейÑаÑ"},restore:{title:"ÐоÑÑÑановиÑÑ Ð¿ÑогÑеÑÑ",message:"ÐойдиÑе ÑеÑез Google, ÑÑÐ¾Ð±Ñ Ð²Ð¾ÑÑÑановиÑÑ Ð¾Ð±Ð»Ð°Ñное ÑоÑ
Ñанение.",confirmButtonText:"ÐÑодолжиÑÑ Ñ Google",cancelButtonText:"ÐакÑÑÑÑ"},manage:{title:"ÐккаÑнÑ",message:"ÐÑ Ð²Ð¾Ñли в ÑиÑÑемÑ. ÐÑ Ð¼Ð¾Ð¶ÐµÑе вÑйÑи, ÑÑÐ¾Ð±Ñ Ð²ÐµÑнÑÑÑÑÑ Ðº анонимной ÑеÑÑии.",confirmButtonText:"ÐÑйÑи",cancelButtonText:"ÐакÑÑÑÑ"},floatingButton:{readyLabel:"ÐойÑи?",pausedLabel:"ÐойÑи",loginAriaLabel:"ÐойÑи",menuAriaLabel:"ÐÑкÑÑÑÑ Ð¼ÐµÐ½Ñ Ð²Ñ
ода"},errors:{"auth/popup-blocked":"ÐÑаÑÐ·ÐµÑ Ð·Ð°Ð±Ð»Ð¾ÐºÐ¸Ñовал вÑплÑваÑÑее окно вÑ
ода ÑеÑез Google. РазÑеÑиÑе вÑплÑваÑÑие окна Ð´Ð»Ñ ÑÑого ÑайÑа и попÑобÑйÑе Ñнова.","auth/popup-closed-by-user":"ÐÑплÑваÑÑее окно вÑ
ода ÑеÑез Google бÑло закÑÑÑо до завеÑÑÐµÐ½Ð¸Ñ Ð²Ñ
ода.","auth/unauthorized-domain":"ÐÑÐ¾Ñ Ð´Ð¾Ð¼ÐµÐ½ не авÑоÑизован в Firebase Auth. ÐобавÑÑе localhost в ÑпиÑок Authorized domains и попÑобÑйÑе Ñнова.","auth/operation-not-allowed":"ÐÑ
од ÑеÑез Google не вклÑÑен Ð´Ð»Ñ ÑÑого пÑоекÑа Firebase.","auth/cancelled-popup-request":"ÐÑедÑдÑÑее окно вÑ
ода вÑе еÑе Ð¾Ð¶Ð¸Ð´Ð°ÐµÑ Ð·Ð°Ð²ÐµÑÑениÑ. ÐакÑойÑе его или попÑобÑйÑе Ñнова.",missing_config:"ÐонÑигÑÑаÑÐ¸Ñ Firebase Auth оÑÑÑÑÑÑвÑÐµÑ Ð¸Ð»Ð¸ заполнена не полноÑÑÑÑ.",timeout:"Ð
1ÑÐµÐ¼Ñ Ð¾Ð¶Ð¸Ð´Ð°Ð½Ð¸Ñ Ð¸Ð½Ð¸ÑиализаÑии Firebase Auth иÑÑекло. ÐеÑезагÑÑзиÑе ÑÑÑаниÑÑ Ð¸ попÑобÑйÑе Ñнова.",default:"Ðе ÑдалоÑÑ Ð²Ð¾Ð¹Ñи ÑеÑез Google. ÐопÑобÑйÑе Ñнова.",signOutDefault:"Ðе ÑдалоÑÑ Ð²ÑйÑи из аккаÑнÑа. ÐопÑобÑйÑе Ñнова."}},loginUi:{yandex:{floatingButton:{readyLabel:"СоÑ
ÑаниÑÑ Ð¿ÑогÑеÑÑ",pausedLabel:"СоÑ
ÑаниÑÑ Ð¿ÑогÑеÑÑ",ariaLabel:"СоÑ
ÑаниÑÑ Ð¿ÑогÑеÑÑ",menuAriaLabel:"ÐенÑ"},connect:{title:"СоÑ
ÑаниÑе Ñвой пÑогÑеÑÑ",message:"ÐойдиÑе в аккаÑнÑ, ÑÑÐ¾Ð±Ñ ÑоÑ
ÑаниÑÑ Ð¿ÑогÑеÑÑ Ð¸ пÑиобÑеÑеннÑе ÑоваÑÑ.",confirmButtonText:"ÐойÑи",cancelButtonText:"Ðозже"},restore:{title:"ÐоÑÑÑановиÑе Ñвой пÑогÑеÑÑ",message:"ÐойдиÑе в аккаÑнÑ, ÑÑÐ¾Ð±Ñ Ð²Ð¾ÑÑÑановиÑÑ Ð¿ÑогÑеÑÑ Ð¸ пÑиобÑеÑеннÑе ÑоваÑÑ Ð½Ð° ÑÑом ÑÑÑÑойÑÑве.",confirmButtonText:"ÐоÑÑÑановиÑÑ",cancelButtonText:"Ðозже"},manage:{title:"ÐккаÑнÑ",message:"ÐÐ°Ñ Ð°ÐºÐºÐ°ÑÐ½Ñ ÑпÑавлÑеÑÑÑ Ð¿Ð»Ð°ÑÑоÑмой.",confirmButtonText:"ÐÑодолжиÑÑ"},errors:{canceled:"ÐÑ
од бÑл оÑменен. ÐÑ Ð¼Ð¾Ð¶ÐµÑе попÑобоваÑÑ Ñнова в лÑбое вÑемÑ.",default:"Ðе ÑдалоÑÑ Ð²Ð¾Ð¹Ñи ÑеÑез. ÐопÑобÑйÑе Ñнова."}}},saveConflict:{title:"ÐонÑÐ»Ð¸ÐºÑ Ñ Ð¾Ð±Ð»Ð°ÐºÐ¾Ð¼",message:"ÐокалÑнÑе даннÑе ÑоÑ
ÑÐ°Ð½ÐµÐ½Ð¸Ñ Ð¸Ð³ÑÑ ÐºÐ¾Ð½ÑликÑÑÑÑ Ñ ÑоÑ
Ñанением в облаке.",warningLabel:"Ðнимание:",warningMessage:"ÐгÑа бÑÐ´ÐµÑ Ð¿ÐµÑезапÑÑена, ÑÑÐ¾Ð±Ñ Ð¿ÑимениÑÑ Ð¾Ð±Ð»Ð°Ñное ÑоÑ
Ñанение.",progressLabel:"ÐÑогÑеÑÑ",updatedLabel:"Ðбновлено",localTitle:"ÐÑо ÑÑÑÑойÑÑво",localBadge:"ÐокалÑно",remoteTitle:"ÐблаÑное ÑоÑ
Ñанение",remoteBadge:"Ðблако",confirmButtonText:"ÐодÑвеÑдиÑÑ"},saveRestored:{title:"ÐблаÑное ÑоÑ
Ñанение воÑÑÑановлено",message:"ÐÑбÑанное облаÑное ÑоÑ
Ñанение гоÑово.",panelTitle:"ÐÑименÑем Ð²Ð°Ñ Ð¿ÑогÑеÑÑ",panelMessage:"ÐгÑа пеÑезагÑÑжаеÑÑÑ, ÑÑÐ¾Ð±Ñ Ð¿ÑимениÑÑ Ð²ÑбÑанное ÑоÑ
Ñанение."}},jf={popupChrome:{themeToggleDark:"Koyu temayı aç",themeToggleLight:"Açık temayı aç"},auth:{privacyPolicy:"Gizlilik Politikası",connect:{title:"İlerlemeni kaydet",message:"Oyun ilerlemeni kaydetmek ve geri yüklemek için Google ile oturum aç.",confirmButtonText:"Google ile devam et",cancelButtonText:"Åimdi deÄil"},restore:{title:"İlerlemeyi geri yükle",message:"Bulut kaydını geri yüklemek için Google ile oturum aç.",confirmButtonText:"Google ile devam et",cancelButtonText:"Kapat"},manage:{title:"Hesap",message:"Oturum açtın. Anonim oturuma dönmek için çıkıŠyapabilirsin.",confirmButtonText:"ÃıkıŠyap",cancelButtonText:"Kapat"},floatingButton:{readyLabel:"GiriÅ yap?",pausedLabel:"GiriÅ yap",loginAriaLabel:"GiriÅ yap",menuAriaLabel:"GiriÅ menüsünü aç"},errors:{"auth/popup-blocked":"Google oturum açma açılır penceresi tarayıcı tarafından engellendi. Bu site için açılır pencerelere izin verip tekrar dene.","auth/popup-closed-by-user":"Google oturum açma açılır penceresi, giriÅ tamamlanmadan kapatıldı.","auth/unauthorized-domain":"Bu alan adı Firebase Auth içinde yetkilendirilmemiÅ. localhost'u Authorized domains listesine ekleyip tekrar dene.","auth/operation-not-allowed":"Bu Firebase projesinde Google ile oturum açma etkin deÄil.","auth/cancelled-popup-request":"Ãnceki bir oturum açma penceresi hâlâ açık. Kapat veya tekrar dene.",missing_config:"Firebase kimlik doÄrulama yapılandırması eksik ya da tamamlanmamıÅ.",timeout:"Firebase kimlik doÄrulama baÅlatımı zaman aÅımına uÄradı. Sayfayı yenileyip tekrar dene.",default:"Google ile oturum açma baÅarısız oldu. Tekrar dene.",signOutDefault:"ÃıkıŠyapılamadı. Tekrar dene."}},loginUi:{yandex:{floatingButton:{readyLabel:"İlerlemeyi Kaydet",pausedLabel:"İlerlemeyi Kaydet",ariaLabel:"İlerlemeyi Kaydet",menuAriaLabel:"Menü"},connect:{title:"İlerlemenizi kaydedin",message:"İlerlemenizi ve satın alımlarınızı kaydetmek için hesabınızla giriÅ yapın.",confirmButtonText:"GiriÅ Yap",cancelButtonText:"Daha Sonra"},restore:{title:"İlerlemenizi geri yükleyin",message:"Bu cihazda ilerlemenizi ve satın alımlarınızı geri yüklemek için hesabınızla giriÅ yapın.",confirmButtonText:"Geri Yükle",cancelButtonText:"Daha Sonra"},manage:{title:"hesabı",message:"hesabınız platform tarafından yönetilmektedir.",confirmButtonText:"Devam Et"},errors:{canceled:"GiriÅ iptal edildi. İstediÄiniz zaman tekrar deneyebilirsiniz.",default:"giriÅi baÅarısız oldu. Lütfen tekrar deneyin."}}},saveConflict:{title:"Bulut çakıÅması",message:"Yerel oyun kayıt verilerin bulutta saklanan verilerle çakıÅıyor.",warningLabel:"Uyarı:",warningMessage:"Bulut kaydını uygulamak için oyun yeniden baÅlatılacak.",progressLabel:"İlerleme",updatedLabel:"Güncellendi",localTitle:"Bu cihaz",localBadge:"Yerel",remoteTitle:"Bulut kaydı",remoteBadge:"Bulut",confirmButtonText:"Onayla"},saveRestored:{title:"Bulut kaydı geri yüklendi",message:"SeçtiÄin bulut kaydı hazır.",panelTitle:"İlerlemen uygulanıyor",panelMessage:"Seçilen kaydı uygulamak için oyun yeniden yükleniyor."}},Wf={popupChrome:{themeToggleDark:"å¼å¯æ·±è²ä¸»é¢",themeToggleLight:"å¼å¯æµ
è²ä¸»é¢"},auth:{privacyPolicy:"éç§æ¿ç",connect:{title:"ä¿åä½ çè¿åº¦",message:"ä½¿ç¨ Google ç»å½ï¼ä»¥ä¿å忢å¤ä½ çæ¸¸æè¿åº¦ã",confirmButtonText:"ä½¿ç¨ Google ç»§ç»",cancelButtonText:"æä¸"},restore:{title:"æ¢å¤è¿åº¦",message:"ä½¿ç¨ Google ç»å½ï¼ä»¥æ¢å¤ä½ çäºåæ¡£ã",confirmButtonText:"ä½¿ç¨ Google ç»§ç»",cancelButtonText:"å
³é"},manage:{title:"è´¦å·",message:"ä½ å·²ç»å½ãä½ å¯ä»¥éåºç»å½ä»¥è¿åå¿åä¼è¯ã",confirmButtonText:"éåºç»å½",cancelButtonText:"å
³é"},floatingButton:{readyLabel:"ç»å½ï¼",pausedLabel:"ç»å½",loginAriaLabel:"ç»å½",menuAriaLabel:"æå¼ç»å½èå"},errors:{"auth/popup-blocked":"Google ç»å½å¼¹çªå·²è¢«æµè§å¨æ¦æªã请å
许æ¤ç½ç«å¼¹çªåéè¯ã","auth/popup-closed-by-user":"Google ç»å½å¼¹çªå¨ç»å½å®æå已被å
³éã","auth/un
1authorized-domain":"æ¤ååæªå¨ Firebase Auth ä¸è·å¾ææãè¯·å° localhost æ·»å å° Authorized domains å表åéè¯ã","auth/operation-not-allowed":"æ¤ Firebase é¡¹ç®æªå¯ç¨ Google ç»å½ã","auth/cancelled-popup-request":"ä¹åçç»å½å¼¹çªä»å¨çå¾
å¤çã请å
å
³é宿éè¯ã",missing_config:"Firebase 身份éªè¯é
置缺失æä¸å®æ´ã",timeout:"Firebase 身份éªè¯åå§åè¶
æ¶ãè¯·éæ°å 载页é¢åéè¯ã",default:"Google ç»å½å¤±è´¥ã请éè¯ã",signOutDefault:"éåºç»å½å¤±è´¥ã请éè¯ã"}},loginUi:{yandex:{floatingButton:{readyLabel:"ä¿åè¿åº¦",pausedLabel:"ä¿åè¿åº¦",ariaLabel:"ä¿åè¿åº¦",menuAriaLabel:"èå"},connect:{title:"ä¿åæ¨çè¿åº¦",message:"ä½¿ç¨æ¨ç è´¦å·ç»å½ï¼ä»¥ä¿åæ¨çè¿åº¦åè´ä¹°è®°å½ã",confirmButtonText:"ç»å½",cancelButtonText:"ç¨å"},restore:{title:"æ¢å¤æ¨çè¿åº¦",message:"ä½¿ç¨æ¨ç è´¦å·ç»å½ï¼ä»¥å¨æ¤è®¾å¤ä¸æ¢å¤æ¨çè¿åº¦åè´ä¹°è®°å½ã",confirmButtonText:"æ¢å¤",cancelButtonText:"ç¨å"},manage:{title:"è´¦å·",message:"æ¨ç è´¦å·ç±å¹³å°ç®¡çã",confirmButtonText:"ç»§ç»"},errors:{canceled:"ç»å½å·²åæ¶ãæ¨å¯ä»¥éæ¶éè¯ã",default:"ç»å½å¤±è´¥ã请éè¯ã"}}},saveConflict:{title:"äºç«¯å²çª",message:"ä½ çæ¬å°æ¸¸æåæ¡£ä¸äºç«¯åå¨çå
容åçå²çªã",warningLabel:"è¦åï¼",warningMessage:"游æå°éæ°å¯å¨ä»¥åºç¨äºåæ¡£ã",progressLabel:"è¿åº¦",updatedLabel:"æ´æ°æ¶é´",localTitle:"æ¤è®¾å¤",localBadge:"æ¬å°",remoteTitle:"äºåæ¡£",remoteBadge:"äºç«¯",confirmButtonText:"确认"},saveRestored:{title:"äºå档已æ¢å¤",message:"ä½ éæ©çäºå档已åå¤å°±ç»ªã",panelTitle:"æ£å¨åºç¨ä½ çè¿åº¦",panelMessage:"æ£å¨éæ°å 载游æä»¥åºç¨æéåæ¡£ã"}},Uf=(e,n)=>{if("string"==typeof e||"string"==typeof n)return"string"==typeof n&&n.trim()?n:e;const t=Object.keys(e).map(t=>{const i=e[t],a=n[t]??i;return[t,Uf(i,a)]});return Object.fromEntries(t)},zf={de:Uf(Rf,{popupChrome:{themeToggleDark:"Dunkles Design aktivieren",themeToggleLight:"Helles Design aktivieren"},auth:{privacyPolicy:"Datenschutzerklärung",connect:{title:"Spielstand speichern",message:"Melden Sie sich mit Google an, um Ihren Spielfortsc
1hritt zu speichern und wiederherzustellen.",confirmButtonText:"Mit Google fortfahren",cancelButtonText:"Jetzt nicht"},restore:{title:"Fortschritt wiederherstellen",message:"Melden Sie sich mit Google an, um Ihren Cloud-Spielstand wiederherzustellen.",confirmButtonText:"Mit Google fortfahren",cancelButtonText:"SchlieÃen"},manage:{title:"Konto",message:"Sie sind angemeldet. Sie können sich abmelden, um zu einer anonymen Sitzung zurückzukehren.",confirmButtonText:"Abmelden",cancelButtonText:"SchlieÃen"},floatingButton:{readyLabel:"Anmelden?",pausedLabel:"Anmelden",loginAriaLabel:"Anmelden",menuAriaLabel:"Anmeldemenü öffnen"},errors:{"auth/popup-blocked":"Das Google-Anmeldefenster wurde vom Browser blockiert. Bitte erlauben Sie Pop-ups für diese Website und versuchen Sie es erneut.","auth/popup-closed-by-user":"Das Google-Anmeldefenster wurde geschlossen, bevor die Anmeldung abgeschlossen war.","auth/unauthorized-domain":"Diese Domain ist in Firebase Auth nicht autorisiert. Fügen Sie localhost zur Liste der autorisierten Domains hinzu und versuchen Sie es erneut.","auth/operation-not-allowed":"Die Google-Anmeldung ist für dieses Firebase-Projekt nicht aktiviert.","auth/cancelled-popup-request":"Ein vorheriges Anmeldefenster ist noch offen. SchlieÃen Sie es oder versuchen Sie es erneut.",missing_config:"Die Firebase-Auth-Konfiguration fehlt oder ist unvollständig.",timeout:"Die Initialisierung von Firebase Auth hat zu lange gedauert. Bitte laden Sie die Seite neu und versuchen Sie es erneut.",default:"Die Google-Anmeldung ist fehlgeschlagen. Bitte versuchen Sie es erneut.",signOutDefault:"Die Abmeldung ist fehlgeschlagen. Bitte versuchen Sie es erneut."}},loginUi:{yandex:{floatingButton:{readyLabel:"Spielstand speichern",pausedLabel:"Spielstand speichern",ariaLabel:"Spielstand speichern",menuAriaLabel:"Menü"},connect:{title:"Spielstand speichern",message:"Melde dich mit deinem Konto an, um deinen Fortschritt und Käufe zu speichern.",confirmButtonText:"Anmelden",cancelButtonText:"Abbrechen"},restore:{title:"Spielstand wiederherstellen",message:"Melde dich mit deinem Konto an, um deinen Fortschritt und deine Käufe auf diesem Gerät wiederherzustellen.",confirmButtonText:"Anmelden",cancelButtonText:"Abbrechen"},manage:{title:"Konto",message:"Ihr Konto wird von der Plattform verwaltet.",confirmButtonText:"Weiter"},errors:{canceled:"Die Anmeldung wurde abgebrochen. Sie können es jederzeit erneut versuchen.",default:"Die Anmeldung ist fehlgeschlagen. Bitte versuchen Sie es erneut."}}},saveConflict:{title:"Cloud-Konflikt",message:"Ihre lokalen Spielstandsdaten stehen im Konflikt mit dem in der Cloud gespeicherten Spielstand.",warningLabel:"Warnung:",warningMessage:"Das Spiel wird neu gestartet, um den Cloud-Spielstand anzuwenden.",progressLabel:"Fortschritt",updatedLabel:"Aktualisiert",localTitle:"Dieses Gerät",localBadge:"Lokal",remoteTitle:"Cloud-Spielstand",remoteBadge:"Cloud",confirmButtonText:"Bestätigen"},saveRestored:{title:"Cloud-Spielstand wiederhergestellt",message:"Der ausgewählte Cloud-Spielstand ist bereit.",panelTitle:"Ihr Fortschritt wird angewendet",panelMessage:"Das Spiel wird neu geladen, um den ausgewählten Spielstand anzuwenden."}}),en:Rf,es:Uf(Rf,Ff),fr:Uf(Rf,Xf),it:Uf(Rf,Hf),ja:Uf(Rf,Gf),ko:Uf(Rf,Of),"pt-br":Uf(Rf,Qf),ru:Uf(Rf,Kf),tr:Uf(Rf,jf),"zh-cn":Uf(Rf,Wf)},$f=Object.keys(zf),Vf=()=>{var e,n,t;const i=null==(n=(e=g.get()).getCurrentLanguage)?void 0:n.call(e);if(i)return i;const a=p.get().locale;return a||("undefined"!=typeof window&&"function"==typeof(null==(t=window.famobi)?void 0:t.getCurrentLanguage)?window.famobi.getCurrentLanguage():"undefined"!=typeof navigator?navigator.language:null)},qf=()=>{return zf[(e=Vf(),Bf(e,$f)??"en")];var e},ev=(e,n="")=>{if("string"==typeof e)return e;if(!e||"object"!=typeof e)return n;const t=Object.entries(e).filter(e=>"string"==typeof e[1]&&Boolean(e[1].trim())).map(([e])=>e),i=Bf(Vf(),t)??Bf("en",t)??t[0];return(i?e[i]:void 0)??n},nv=(e,n)=>{const t=document.createElement("style");if(t.textContent=e,n)for(const i in n){const e=n[i];!1!==e&&t.setAttribute(i,!0===e?"":e)}document.head.appendChild(t)},tv="data-game-interface-auth-overlay-template";let iv=!1;const av=e=>e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),ov={popup:"game-interface-auth-connect-popup",htmlContainer:"game-interface-auth-connect-html",container:"game-interface-auth-connect-container"},rv=()=>{iv||(nv("\n .game-interface-auth-connect-popup {\n width: min(100%, 540px);\n max-height: calc(100svh - 32px);\n padding: 0;\n overflow: visible;\n background: transparent;\n border-radius: 0;\n box-shadow: none;\n }\n\n .game-interface-auth-connect-html {\n margin: 0;\n padding: 0;\n border-radius: 28px;\n overflow: hidden;\n }\n\n .game-interface-auth-connect-container {\n padding: 24px;\n --famobi-blue: #00a3e0;\n --famobi-blue-dark: #087ead;\n --famobi-orange: #ff7f20;\n --famobi-dark: #222831;\n --text-muted: #566070;\n --page-bg: #f3f6f9;\n --modal-bg: #ffffff;\n --modal-shadow: rgba(34, 40, 49, 0.16);\n --secondary-bg: #ffffff;\n --secondary-border: #c9ced6;\n --modal-radius: 28px;\n }\n\n .game-interface-auth-connect-container .save-progress-modal {\n position: relative;\n width: min(100%, 540px);\n max-height: calc(100svh - 32px);\n padding: 42px 44px 36px;\n overflow-x: hidden;\n overflow-y: auto;\n text-align: center;\n color: var(--famobi-dark);\n background:\n radial-gradient(circle at top left, rgba(0, 163, 224, 0.16) 0 27%, transparent 28%),\n radial-gradient(circle at bottom right, rgba(255, 127, 32, 0.26) 0 22%, transparent 23%), var(--modal-bg);\n border-radius: var(--modal-radius);\n box-shadow:\n 0 18px 45px var(--modal-shadow),\n inset 0 0 0 1px rgba(255, 255, 255, 0.8);\n animation: game-interface-auth-connect-pop-in 260ms ease-out both;\n box-sizing: border-box;\n font-family: Arial, Helvetica, sans-serif;\n isolation: isolate;\n scrollbar-width: thin;\n transition:\n background 180ms ease,\n color 180ms ease,\n box-shadow 180ms ease;\n }\n\n .game-interface-auth-connect-container .save-progress-modal[data-background-visible='false'] {\n background: var(--modal-bg);\n }\n\n .game-interface-auth-connect-container .save-progress-modal::before,\n .game-interface-auth-connect-container .save-progress-modal::after {\n content: '';\n position: absolute;\n z-index: 0;\n transform: rotate(45deg);\n pointer-events: none;\n animation: game-interface-auth-connect-sparkle-pulse 1.8s ease-in-out infinite;\n }\n\n .game-interface-auth-connect-container .save-progress-modal[data-background-visible='false']::before,\n .game-interface-auth-connect-container .save-progress-modal[data-background-visible='false']::after {\n display: none;\n }\n\n .game-interface-auth-connect-container .save-progress-modal::before {\n top: 66px;\n right: 76px;
1\n width: 20px;\n height: 20px;\n background: var(--famobi-blue);\n }\n\n .game-interface-auth-connect-container .save-progress-modal::after {\n top: 98px;\n right: 34px;\n width: 18px;\n height: 18px;\n background: var(--famobi-orange);\n animation-delay: 0.25s;\n }\n\n .game-interface-auth-connect-container .famobi-logo,\n .game-interface-auth-connect-container .theme-toggle,\n .game-interface-auth-connect-container .save-icon,\n .game-interface-auth-connect-container h1,\n .game-interface-auth-connect-container p,\n .game-interface-auth-connect-container .save-actions,\n .game-interface-auth-connect-container .save-popup-footer,\n .game-interface-auth-connect-container .auth-connect-error,\n .game-interface-auth-connect-container .save-conflict-comparison,\n .game-interface-auth-connect-container .save-conflict-alerts,\n .game-interface-auth-connect-container .save-restored-panel {\n position: relative;\n z-index: 1;\n }\n\n .game-interface-auth-connect-container[data-theme='dark'] {\n --famobi-dark: #f7fafc;\n --text-muted: #cbd5e1;\n --page-bg: #111827;\n --modal-bg: #1f2937;\n --modal-shadow: rgba(0, 0, 0, 0.42);\n --secondary-bg: #111827;\n --secondary-border: #374151;\n }\n\n .game-interface-auth-connect-container[data-theme='dark'] .save-progress-modal {\n background:\n radial-gradient(circle at top left, rgba(0, 163, 224, 0.22) 0 27%, transparent 28%),\n radial-gradient(circle at bottom right, rgba(255, 127, 32, 0.24) 0 22%, transparent 23%), var(--modal-bg);\n box-shadow:\n 0 22px 55px var(--modal-shadow),\n inset 0 0 0 1px rgba(255, 255, 255, 0.08);\n }\n\n @keyframes game-interface-auth-connect-pop-in {\n from {\n transform: scale(0.96) translateY(12px);\n opacity: 0;\n }\n to {\n transform: scale(1) translateY(0);\n opacity: 1;\n }\n }\n\n .game-interface-auth-connect-container .famobi-logo {\n position: absolute;\n top: 26px;\n left: 28px;\n z-index: 1;\n display: inline-flex;\n align-items: center;\n color: var(--famobi-dark);\n }\n\n .game-interface-auth-connect-container .auth-overlay-logo-image {\n display: block;\n max-width: 140px;\n max-height: 48px;\n width: auto;\n height: auto;\n object-fit: contain;\n }\n\n .game-interface-auth-connect-container .famobi-mark {\n position: relative;\n display: grid;\n grid-template-columns: repeat(2, 14px);\n grid-template-rows: repeat(3, 14px);\n gap: 2px;\n width: 30px;\n height: 46px;\n flex: 0 0 auto;\n }\n\n .game-interface-auth-connect-container .famobi-mark span {\n display: block;\n }\n\n .game-interface-auth-connect-container .famobi-mark span:nth-child(1),\n .game-interface-auth-connect-container .famobi-mark span:nth-child(2) {\n background: var(--famobi-blue);\n }\n\n .game-interface-auth-connect-container .famobi-mark span:nth-child(3) {\n background: var(--famobi-orange);\n }\n\n .game-interface-auth-connect-container .famobi-mark span:nth-child(4) {\n grid-row: 3;\n grid-column: 1;\n background: var(--famobi-dark);\n }\n\n .game-interface-auth-connect-container .famobi-mark::after {\n content: '';\n position: absolute;\n left: 16px;\n top: 16px;\n width: 0;\n height: 0;\n border-top: 7px solid transparent;\n border-bottom: 7px solid transparent;\n border-left: 11px solid var(--famobi-orange);\n }\n\n @keyframes game-interface-auth-connect-sparkle-pulse {\n 0%,\n 100% {\n transform: rotate(45deg) scale(0.82);\n opacity: 0.72;\n }\n 50% {\n transform: rotate(45deg) scale(1);\n opacity: 1;\n }\n }\n\n .game-interface-auth-connect-container .save-icon {\n width: 118px;\n height: 96px;\n margin: 0 auto 22px;\n display: flex;\n align-items: center;\n justify-content: center;\n color: var(--famobi-blue);\n }\n\n .game-interface-auth-connect-container .save-icon-svg {\n width: 104px;\n height: 104px;\n display: block;\n filter: drop-shadow(0 8px 14px rgba(0, 163, 224, 0.18));\n }\n\n .game-interface-auth-connect-container .theme-toggle {\n position: absolute;\n top: 24px;
1\n right: 26px;\n z-index: 2;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n padding: 0;\n color: var(--famobi-blue);\n background: transparent;\n border: 0;\n cursor: pointer;\n transition:\n transform 120ms ease,\n color 180ms ease,\n opacity 180ms ease;\n }\n\n .game-interface-auth-connect-container .theme-toggle:hover {\n opacity: 0.8;\n }\n\n .game-interface-auth-connect-container .theme-toggle:active {\n transform: scale(0.92);\n }\n\n .game-interface-auth-connect-container .theme-toggle svg {\n width: 22px;\n height: 22px;\n display: block;\n color: currentColor;\n }\n\n .game-interface-auth-connect-container[data-theme='dark'] .theme-toggle {\n color: var(--famobi-orange);\n }\n\n .game-interface-auth-connect-container h1 {\n margin: 0 0 12px;\n font-size: clamp(32px, 6vw, 46px);\n line-height: 1.05;\n font-weight: 900;\n letter-spacing: -1px;\n }\n\n .game-interface-auth-connect-container p {\n max-width: 440px;\n margin: 0 auto 28px;\n color: var(--text-muted);\n font-size: clamp(17px, 3.2vw, 22px);\n line-height: 1.4;\n }\n\n .game-interface-auth-connect-container .auth-account-email {\n width: fit-content;\n max-width: min(100%, 440px);\n margin: -10px auto 28px;\n padding: 10px 14px;\n color: var(--famobi-dark);\n background: rgba(0, 163, 224, 0.1);\n border: 1px solid rgba(0, 163, 224, 0.2);\n border-radius: 999px;\n font-size: clamp(15px, 3vw, 18px);\n font-weight: 700;\n line-height: 1.3;\n word-break: break-word;\n }\n\n .game-interface-auth-connect-container[data-theme='dark'] .auth-account-email {\n background: rgba(0, 163, 224, 0.18);\n border-color: rgba(0, 163, 224, 0.3);\n }\n\n .game-interface-auth-connect-container .save-actions {\n display: flex;\n flex-direction: column;\n gap: 14px;\n }\n\n .game-interface-auth-connect-container .save-popup-footer {\n display: grid;\n gap: 10px;\n margin-top: 18px;\n }\n\n .game-interface-auth-connect-container .save-popup-privacy-link {\n display: inline-block;\n margin: 0 auto;\n color: rgba(86, 96, 112, 0.78);\n font-size: 12px;\n line-height: 1.35;\n text-decoration: underline;\n text-underline-offset: 2px;\n transition:\n color 120ms ease,\n opacity 120ms ease;\n }\n\n .game-interface-auth-connect-container .save-popup-privacy-link:hover {\n color: rgba(86, 96, 112, 0.96);\n }\n\n .game-interface-auth-connect-container .save-popup-privacy-link:focus-visible {\n outline: 2px solid rgba(0, 163, 224, 0.35);\n outline-offset: 3px;\n border-radius: 4px;\n }\n\n .game-interface-auth-connect-container[data-theme='dark'] .save-popup-privacy-link {\n color: rgba(203, 213, 225, 0.62);\n }\n\n .game-interface-auth-connect-container[data-theme='dark'] .save-popup-privacy-link:hover {\n color: rgba(203, 213, 225, 0.82);\n }\n\n .game-interface-auth-connect-container .save-actions button {\n width: 100%;\n min-height: 62px;\n border-radius: 10px;\n font-size: clamp(17px, 3.4vw, 23px);\n font-weight: 900;\n cursor: pointer;\n transition:\n transform 120ms ease,\n box-shadow 120ms ease,\n opacity 120ms ease;\n }\n\n .game-interface-auth-connect-container .save-actions button:active {\n transform: scale(0.98);\n }\n\n .game-interface-auth-connect-container .google-button {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 18px;\n overflow: hidden;\n color: #ffffff;\n background: var(--famobi-blue);\n border: 0;\n box-shadow:\n 0 8px 0 var(--famobi-blue-dark),\n 0 12px 22px rgba(0, 163, 224, 0.28);\n }\n\n .game-interface-auth-connect-container .primary-button {\n position: relative;\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 18px;\n overflow: hidden;\n color: #ffffff;\n background: var(--famobi-blue);\n border: 0;\n box-shadow:\n 0 8px 0 var(--famobi-blue-dark),\n 0 12px 22px rgba(0, 163, 224, 0.28);\n }\n\n .game-interface-auth-connect-container .warning-button {\n position: relative;\n display: flex;
1\n align-items: center;\n justify-content: center;\n gap: 18px;\n overflow: hidden;\n color: #ffffff;\n background: var(--famobi-orange);\n border: 0;\n box-shadow:\n 0 8px 0 #d86308,\n 0 12px 22px rgba(255, 127, 32, 0.28);\n }\n\n .game-interface-auth-connect-container .google-button::after,\n .game-interface-auth-connect-container .primary-button::after {\n content: '';\n position: absolute;\n right: -1px;\n bottom: -1px;\n width: 78px;\n height: 78px;\n background: var(--famobi-orange);\n clip-path: polygon(100% 0, 0 100%, 100% 100%);\n }\n\n .game-interface-auth-connect-container .warning-button::after {\n content: '';\n position: absolute;\n right: -1px;\n bottom: -1px;\n width: 78px;\n height: 78px;\n background: var(--famobi-blue);\n clip-path: polygon(100% 0, 0 100%, 100% 100%);\n }\n\n .game-interface-auth-connect-container .google-icon {\n position: relative;\n z-index: 1;\n width: 44px;\n height: 44px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex: 0 0 auto;\n background: #ffffff;\n border-radius: 50%;\n }\n\n .game-interface-auth-connect-container .google-icon svg {\n width: 22px;\n height: 22px;\n display: block;\n }\n\n .game-interface-auth-connect-container .google-button .button-label,\n .game-interface-auth-connect-container .primary-button .button-label,\n .game-interface-auth-connect-container .warning-button .button-label {\n position: relative;\n z-index: 1;\n }\n\n .game-interface-auth-connect-container .secondary-button {\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 18px;\n color: var(--famobi-dark);\n background: var(--secondary-bg);\n border: 2px solid var(--secondary-border);\n box-shadow: inset 0 -3px 0 rgba(0, 0, 0, 0.08);\n }\n\n .game-interface-auth-connect-container .button-icon {\n position: relative;\n z-index: 1;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n flex: 0 0 auto;\n }\n\n .game-interface-auth-connect-container .button-icon-image {\n width: 28px;\n height: 28px;\n display: block;\n object-fit: contain;\n }\n\n .game-interface-auth-connect-container .google-button:hover,\n .game-interface-auth-connect-container .primary-button:hover,\n .game-interface-auth-connect-container .warning-button:hover,\n .game-interface-auth-connect-container .secondary-button:hover {\n opacity: 0.94;\n }\n\n .game-interface-auth-connect-container .google-button:disabled,\n .game-interface-auth-connect-container .primary-button:disabled,\n .game-interface-auth-connect-container .warning-button:disabled,\n .game-interface-auth-connect-container .secondary-button:disabled {\n cursor: wait;\n opacity: 0.7;\n }\n\n .game-interface-auth-connect-container .auth-connect-error {\n display: none;\n margin: 18px auto 0;\n max-width: 440px;\n padding: 12px 14px;\n border-radius: 12px;\n background: rgba(255, 59, 48, 0.1);\n color: #b42318;\n font-family: Arial, Helvetica, sans-serif;\n font-size: 15px;\n line-height: 1.35;\n text-align: left;\n }\n\n .game-interface-auth-connect-container .auth-connect-error[data-visible='true'] {\n display: block;\n }\n\n @media (max-width: 420px) {\n .game-interface-auth-connect-popup {\n max-height: calc(100svh - 16px);\n }\n\n .game-interface-auth-connect-html {\n border-radius: 24px;\n }\n\n .game-interface-auth-connect-container {\n padding: 8px;\n }\n\n .game-interface-auth-connect-container .save-progress-modal {\n max-height: calc(100svh - 16px);\n padding: 28px 18px 22px;\n border-radius: 24px;\n }\n\n .game-interface-auth-connect-container .famobi-logo {\n top: 18px;\n left: 18px;\n }\n\n .game-interface-auth-connect-container .theme-toggle {\n top: 16px;\n right: 16px;\n }\n\n .game-interface-auth-connect-container .theme-toggle svg {\n width: 18px;\n height: 18px;\n }\n\n .game-interface-auth-connect-container .save-icon {\n width: 84px;\n height: 68px;\n margin-bottom: 14px;\n }\n\n .game-interface-auth-connect-container .save-icon-svg {\n width: 72px;\n height: 72px;\n }\n\n .game-interface-auth-connect-container .save-actions button {\n min-height: 52px;\n font-size: clamp(16px, 4.8vw, 20px);\n }\n\n .game-interface-auth-connect-container .google-icon {\n width: 34px;\n height: 34px;\n }\n\n .game-interface-auth-connect-container .google-icon svg {\n width: 18px;\n height: 18px;\n }\n }\n\n @media (max-height: 760px) {\n .game-interface-auth-connect-container {\n padding: 8px;\n }\n\n .game-interface-auth-connect-html {\n border-radius: 22px;\n }\n\n .game-interface-auth-connect-container .save-progress-modal {\n max-height: calc(100svh - 16px);\n padding: 24px 18px 20px;\n border-radius: 22px;\n }\n\n .game-interface-auth-connect-container .famobi-logo {\n top: 16px;\n left: 18px;\n transform: scale(0.9);\n transform-origin: top left;\n }\n\n .game-interface-auth-connect-container .theme-toggle {\n top: 14px;\n right: 14px;\n }\n\n .game-interface-auth-connect-container h1 {\n margin-bottom: 10px;\n font-size: clamp(26px, 5vw, 38px);\n }\n\n .game-interface-auth-connect-container p {\n margin-bottom: 18px;\n font-size: clamp(15px, 2.8vw, 18px);\n }\n\n .game-interface-auth-connect-container .save-icon {\n width: 78px;\n height: 64px;\n margin-bottom: 12px;\n }\n\n .game-interface-auth-connect-container .save-icon-svg {\n width: 68px;\n height: 68px;\n }\n\n .game-interface-auth-connect-container .save-actions {\n gap: 10px;\n }\n\n .game-interface-auth-connect-container .save-actions button {\n min-height: 50px;\n font-size: clamp(15px, 3vw, 19px);\n }\n }\n",{[tv]:"true"}),iv=!0)},sv='\n fill="none"\n stroke="currentColor"\n stroke-width="4"\n stroke-linecap="round"\n stroke-linejoin="round"\n',uv=(e,n
1)=>`\n <svg viewBox="0 0 64 64" class="save-icon-svg" xmlns="http://www.w3.org/2000/svg">\n <path d="M22 46h20c6.6 0 12-5.1 12-11.5S48.6 23 42 23h-1.1C39.3 17.8 34.7 14 29.3 14c-6.2 0-11.4 4.9-11.9 11.1C12.1 26 8 30.5 8 36c0 5.5 4.5 10 10 10h4" ${sv} />\n <path d="${e}" fill="none" stroke="currentColor" stroke-width="4" stroke-linecap="round" />\n <path d="${n}" ${sv} />\n </svg>\n `,lv={connect:uv("M32 46V30","M25 37l7-7 7 7"),restore:uv("M32 27v13","M25 33l7 7 7-7"),manage:`\n <svg viewBox="0 0 64 64" class="save-icon-svg" xmlns="http://www.w3.org/2000/svg">\n <path d="M46 18v28" ${sv} />\n <path d="M28 24L18 32l10 8" ${sv} />\n <path d="M20 32h18" fill="none" stroke="currentColor" stroke-width="4" stroke-linecap="round" />\n </svg>\n `},cv=(e,n)=>{if(!n||!1===n.visible)return"";const t=n.variant??("cancel"===e?"secondary":"google");return`\n <button class="${"primary"===t?"primary-button":"warning"===t?"warning-button":"secondary"===t?"secondary-button":"google-button"}" type="button" data-auth-connect-action="${e}">\n ${n.iconHtml??("google"===n.iconVariant||void 0===n.iconVariant&&"google"===t?'\n <span class="google-icon" aria-hidden="true">\n <svg viewBox="0 0 18 18" xmlns="http://www.w3.org/2000/svg">\n <path\n fill="#EA4335"\n d="M9 3.48c1.69 0 2.84.73 3.49 1.34l2.54-2.48C13.46.89 11.43 0 9 0 5.48 0 2.44 2.02.96 4.96l2.96 2.29C4.8 4.84 6.76 3.48 9 3.48z"\n />\n <path\n fill="#4285F4"\n d="M17.64 9.2c0-.64-.06-1.25-.16-1.84H9v3.48h4.84c-.21 1.12-.84 2.07-1.8 2.71v2.25h2.91c1.7-1.57 2.69-3.88 2.69-6.6z"\n />\n <path\n fill="#FBBC05"\n d="M3.92 10.71c-.18-.54-.29-1.11-.29-1.71s.1-1.17.29-1.71V5.04H.96A8.96 8.96 0 0 0 0 9c0 1.43.34 2.78.96 3.96l2.96-2.25z"\n />\n <path\n fill="#34A853"\n d="M9 18c2.43 0 4.46-.8 5.95-2.16l-2.91-2.25c-.8.54-1.82.86-3.04.86-2.24 0-4.18-1.36-4.87-3.29L.96 13.41A9 9 0 0 0 9 18z"\n />\n </svg>\n </span>\n':"")}\n <span class="button-label">${av(n.label)}</span>\n </button>\n `},hv=e=>{const n=qf().popupChrome,t=e.privacyLinkUrl??"https://famobi.com/privacy-policy",i=e.backgroundStyle?` style="${av(e.backgroundStyle)}"`:"",a=e.logoHtml??(!1===e.showDefaultLogo?"":'\n <div class="famobi-logo" aria-label="Famobi">\n <div class="famobi-mark" aria-hidden="true">\n <span></span>\n <span></span>\n <span></span>\n <span></span>\n </div>\n </div>\n '),o=e.privacyLinkLabel?`\n <a class="save-popup-privacy-link" href="${av(t)}" target="_blank" rel="noreferrer">\n ${av(e.privacyLinkLabel)}\n </a>\n `:"",r=e.footerHtml||o?`\n <div class="save-popup-footer">\n ${e.footerHtml??""}\n ${o}\n </div>\n `:"";return`\n <section class="save-progress-modal" aria-modal="true" role="dialog" aria-labelledby="saveTitle" data-background-visible="${String(!1!==e.backgroundVisible)}"${i}>\n <button class="theme-toggle" type="button" data-auth-overlay-action="themeToggle" aria-pressed="false" aria-label="${av(n.themeToggleDark)}">\n <svg data-auth-overlay-theme-icon viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">\n <path\n d="M21 14.8A8.6 8.6 0 0 1 9.2 3a7.8 7.8 0 1 0 11.8 11.8z"\n fill="none"\n stroke="currentColor"\n stroke-width="2.2"\n stroke-linecap="round"\n stroke-linejoin="round"\n />\n </svg>\n </button>\n\n ${a}\n\n ${e.iconHtml?`<div class="save-icon" aria-hidden="true">${e.iconHtml}</div>`:""}\n\n <h1 id="saveTitle">${av(e.title)}</h1>\n ${e.message?`<p>${av(e.message)}</p>`:""}\n ${e.contentHtml??""}\n\n <div class="save-actions">\n ${e.actionsHtml}\n </div>\n\n ${r}\n </section>\n `},dv=e=>{const n=qf().popupChrome,t=e.querySelector('[data-auth-overlay-action="themeToggle"]'),i=e.querySelector("[data-auth-overlay-theme-icon]"),a=e.closest(".game-interface-auth-connect-container"),o=e=>{a&&i&&t&&(a.dataset.theme=e?"dark":"light",i.innerHTML=e?'\n <circle cx="12" cy="12" r="4.2" fill="none" stroke="currentColor" stroke-width="2.2" />\n <path\n d="M12 2.5v2.2M12 19.3v2.2M4.6 4.6l1.6 1.6M17.8 17.8l1.6 1.6M2.5 12h2.2M19.3 12h2.2M4.6 19.4l1.6-1.6M17.8 6.2l1.6-1.6"\n fill="none"\n stroke="currentColor"\n stroke-width="2.2"\n stroke-linecap="round"\n />\n ':'\n <path\n d="M21 14.8A8.6 8.6 0 0 1 9.2 3a7.8 7.8 0 1 0 11.8 11.8z"\n fill="none"\n stroke="currentColor"\n stroke-width="2.2"\n stroke-linecap="round"\n stroke-linejoin="round"\n />\n ',t.setAttribute("aria-pressed",String(e)),t.setAttribute("aria-label",e?n.themeToggleLight:n.themeToggleDark))},r="undefined"!=typeof window&&"function"==typeof window.matchMedia&&window.matchMedia("(prefers-color-scheme: dark)").matches;o(r),null==t||t.addEventListener("click",()=>{o("dark"!==(null==a?void 0:a.dataset.theme))})},gv=async e=>{var n,t,i;rv();const a=e.iconVariant?(o=e.iconVariant,lv[o]):"";var o;const r=e.iconHtml??a,s=!1===(null==(n=e.confirmButton)?void 0:n.visible)?void 0:e.confirmButton,u=!1===(null==(t=e.cancelButton)?void 0:t.visible)?void 0:e.cancelButton,l=(null==(i=e.errorMessage)?void 0:i.trim())??"";let c;await Mf.fire({html:hv({title:e.title,message:e.message,contentHtml:e.contentHtml,privacyLinkLabel:e.privacyLinkLabel,privacyLinkUrl:e.privacyLinkUrl,iconHtml:r,logoHtml:e.logoHtml,showDefaultLogo:e.showDefaultLogo,backgroundVisible:e.backgroundVisible,backgroundStyle:e.backgroundStyle,actionsHtml:`${cv("confirm",s)}${cv("cancel",u)}`,footerHtml:`<div class="auth-connect-error" data-auth-connect-error data-visible="${String(B
1oolean(l))}">${av(l)}</div>`}),showConfirmButton:!1,showCancelButton:!1,allowOutsideClick:()=>!Mf.isLoading(),allowEscapeKey:()=>!Mf.isLoading(),customClass:ov,didOpen:n=>{const t=n.querySelector('[data-auth-connect-action="confirm"]'),i=n.querySelector('[data-auth-connect-action="cancel"]'),a=n.querySelector("[data-auth-connect-error]");dv(n);const o=()=>Mf.getPopup()===n,r=e=>{t&&(t.disabled=e),i&&(i.disabled=e),o()&&(e?Mf.showLoading():Mf.hideLoading())},s=e=>{a&&(a.textContent=e??"",a.dataset.visible=String(Boolean(e)))},u=async e=>{var n;s(null),r(!0);try{const t=await(null==(n=null==e?void 0:e.onClick)?void 0:n.call(e));if(!t||"close"===t.type)return c=null==t?void 0:t.afterClose,void(o()&&Mf.close());if("error"===t.type)return s(t.message),void r(!1);r(!1)}catch(t){s(String(t)),r(!1)}};null==t||t.addEventListener("click",async()=>{await u(e.confirmButton)}),null==i||i.addEventListener("click",async()=>{var n;Mf.isLoading()||((null==(n=e.cancelButton)?void 0:n.onClick)?await u(e.cancelButton):Mf.close())})}}),await(null==c?void 0:c())};var pv=(e=>(e[e.UNKNOWN=0]="UNKNOWN",e[e.ACTIVE=1]="ACTIVE",e[e.PAUSED=2]="PAUSED",e[e.INTERRUPTED=3]="INTERRUPTED",e[e.TERMINATED=4]="TERMINATED",e))(pv||{});const mv=h({isMuted:!1,isPaused:!1,userMutePref:!1,userPausePref:!1,gameplayState:pv.UNKNOWN,callbacks:{},gameReadyAt:null,playerReadyAt:null,offsets:{}});let fv={},vv=!1;const wv=()=>fv,yv=e=>{vv=e},bv="game-interface-auth-floating-button";let Sv=!1;const Cv=`\n #${bv} {\n position: fixed;\n inset: auto auto auto auto;\n z-index: 2147483000;\n display: flex;\n align-items: center;\n touch-action: none;\n user-select: none;\n -webkit-user-select: none;\n -webkit-tap-highlight-color: transparent;\n }\n\n #${bv}[data-hidden='true'] {\n display: none;\n }\n\n #${bv}[data-draggable='false'] {\n touch-action: auto;\n }\n\n #${bv} button {\n border: 0;\n cursor: pointer;\n font: 600 14px/1.2 system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;\n letter-spacing: 0.01em;\n box-shadow: 0 12px 28px rgba(0, 0, 0, 0.28);\n transition:\n opacity 0.18s ease,\n transform 0.18s ease,\n width 0.18s ease,\n padding 0.18s ease,\n margin 0.18s ease;\n }\n\n #${bv} .game-interface-auth-floating-button__handle {\n width: 16px;\n height: 100%;\n display: inline-grid;\n grid-template-columns: repeat(2, 4px);\n grid-template-rows: repeat(3, 4px);\n gap: 4px;\n place-content: center;\n flex: 0 0 auto;\n pointer-events: none;\n opacity: 0.72;\n }\n\n #${bv}[data-draggable='false'] .game-interface-auth-floating-button__handle {\n display: none;\n }\n\n #${bv} .game-interface-auth-floating-button__handle-dot {\n width: 4px;\n height: 4px;\n border-radius: 999px;\n background: rgba(255, 255, 255, 0.74);\n }\n\n #${bv} .game-interface-auth-floating-button__login {\n display: inline-flex;\n align-items: center;\n gap: 10px;\n min-height: 42px;\n padding: 0 16px 0 12px;\n border-radius: 999px;\n background: rgba(22, 27, 45, 0.94);\n color: #ffffff;\n white-space: nowrap;\n }\n\n #${bv}[data-draggable='false'] .game-interface-auth-floating-button__login {\n padding-left: 16px;\n }\n\n #${bv} .game-interface-auth-floating-button__icon {\n display: none;\n align-items: center;\n justify-content: center;\n flex: 0 0 auto;\n }\n\n #${bv} .game-interface-auth-floating-button__icon[data-visible='true'] {\n display: inline-flex;\n }\n\n #${bv} .game-interface-auth-floating-button__icon-image {\n width: 20px;\n height: 20px;\n display: block;\n object-fit: contain;\n }\n\n #${bv} .game-interface-auth-floating-button__label {\n display: inline-flex;\n align-items: center;\n }\n\n #${bv} .game-interface-auth-floating-button__burger {\n display: none;\n width: 42px;\n height: 42px;\n align-items: center;\n justify-content: center;\n flex: 0 0 auto;\n border-radius: 50%;\n background: rgba(22, 27, 45, 0.94);\n color: #ffffff;\n font-size: 20px;\n }\n\n #${bv}[data-mode='paused'][data-collapsed='true'] .game-interface-auth-floating-button__login {\n width: 0;\n min-width: 0;\n padding-left: 0;\n padding-right: 0;\n margin: 0;\n opacity: 0;\n transform: translateX(8px);\n pointer-events: none;\n overflow: hidden;\n }\n\n #${bv}[data-mode='paused'][data-collapsed='true'] .game-interface-auth-floating-button__handle,\n #${bv}[data-mode='paused'][data-collapsed='true'] .game-interface-auth-floating-button__label {\n opacity: 0;\n }\n\n #${bv}[data-mode='paused'][data-collapsed='true'] .game-interface-auth-floating-button__burger {\n display: inline-flex;\n }\n`,Lv=(e,n="")=>ev(e,n),Tv=(e,n,t="",i={})=>{const a=!1!==i.decorative?' aria-hidden="true"':"",o=!1!==i.decorative?"":t;return`<img class="${n}" src="${av(e)}
1" alt="${av(o)}"${a} />`},Ev=(e,n,t="",i={})=>!1===(null==e?void 0:e.visible)?"":"function"==typeof(null==e?void 0:e.render)?e.render():(null==e?void 0:e.imageUrl)?Tv(e.imageUrl,n,Lv(e.alt,t),i):void 0,kv=e=>{const n=Ev(null==e?void 0:e.icon,"button-icon-image");if("string"==typeof n)return n?`<span class="button-icon" aria-hidden="true">${n}</span>`:""},Dv=(e,n="")=>e&&"close"!==e.type?"keepOpen"===e.type?e:{type:"error",message:Lv(e.message,n)}:{type:"close",afterClose:null==e?void 0:e.afterClose},xv=(e,n)=>{if(e||n)return{...e,...n,icon:{...null==e?void 0:e.icon,...null==n?void 0:n.icon}}},Av=(e,n)=>({...e,...n,logo:{...null==e?void 0:e.logo,...null==n?void 0:n.logo},background:{...null==e?void 0:e.background,...null==n?void 0:n.background},icon:{...null==e?void 0:e.icon,...null==n?void 0:n.icon},privacyPolicy:{...null==e?void 0:e.privacyPolicy,...null==n?void 0:n.privacyPolicy},confirmButton:xv(null==e?void 0:e.confirmButton,null==n?void 0:n.confirmButton),cancelButton:xv(null==e?void 0:e.cancelButton,null==n?void 0:n.cancelButton),actions:{...null==e?void 0:e.actions,...null==n?void 0:n.actions}}),Yv=(e,n)=>({...e,...n,icon:{...null==e?void 0:e.icon,...null==n?void 0:n.icon}}),_v=16;let Iv="hidden",Pv=!1,Nv=null,Mv=null,Zv=null,Jv=null,Bv=null,Rv=null,Fv=!1,Xv={},Hv=!0,Gv={x:0,y:0,initialized:!1},Ov=null,Qv=0;const Kv=()=>Yv(Hv?wv().button:void 0,Xv),jv=()=>{const e=Kv().visible;return"function"==typeof e?e():"boolean"!=typeof e||e},Wv=()=>{null!==Rv&&(clearTimeout(Rv),Rv=null)},Uv=()=>{const e=Kv();return!0!==e.anchored&&("boolean"!=typeof e.draggable||e.draggable)},zv=()=>{Nv&&Gv.initialized&&((()=>{if(!Nv||!Gv.initialized)return;const e=Math.max(_v,window.innerWidth-Nv.offsetWidth-_v),n=Math.max(_v,window.innerHeight-Nv.offsetHeight-_v);Gv.x=Math.min(Math.max(Gv.x,_v),e),Gv.y=Math.min(Math.max(Gv.y,_v),n)})(),Nv.style.left=`${Gv.x}px`,Nv.style.top=`${Gv.y}px`)},$v=(e=!1)=>{if(!Nv||Gv.initialized&&!e)return;const n=(()=>{const e=Kv().position??"bottomRight",n=(null==Nv?void 0:Nv.offsetWidth)??0,t=(null==Nv?void 0:Nv.offsetHeight)??0,i=Math.max(_v,window.innerWidth-n-_v),a=Math.max(_v,window.innerHeight-t-_v),o=Math.max(_v,Math.round((window.innerWidth-n)/2)),r=Math.max(_v,Math.round((window.innerHeight-t)/2));switch(e){case"topLeft":return{x:_v,y:_v};case"topCenter":return{x:o,y:_v};case"topRight":return{x:i,y:_v};case"centerLeft":return{x:_v,y:r};case"center":return{x:o,y:r};case"centerRight":return{x:i,y:r};case"bottomLeft":return{x:_v,y:a};case"bottomCenter":return{x:o,y:a};default:return{x:i,y:a}}})();Gv={x:n.x,y:n.y,initialized:!0},zv()},Vv=()=>{if(!(Mv&&Zv&&Jv&&Bv))return;const e=Kv(),n=Lv(e.label),t=Lv(e.pausedLabel,n);Jv.textContent="paused"===Iv?t:n,Mv.setAttribute("aria-label",Lv(e.ariaLabel,"paused"===Iv?t:n)),Zv.textContent="â°",Zv.setAttribute("aria-label",Lv(e.menuAriaLabel,"Menu"));const i=Ev(null==(a=e)?void 0:a.icon,"game-interface-auth-floating-button__icon-image");var a;Bv.innerHTML=i??"",Bv.dataset.visible=String(Boolean(i))},qv=()=>{if(!Nv)return;Vv();const e=!Fv&&"hidden"!==Iv&&jv()&&!vv,n=Uv();Nv.dataset.hidden=String(!e),Nv.dataset.mode=Iv,Nv.dataset.collapsed=String("paused"===Iv&&Pv),Nv.dataset.draggable=String(n),e?(n||$v(!0),zv()):Wv()},ew=()=>{Wv(),"paused"===Iv&&(Rv=window.setTimeout(()=>{"paused"===Iv&&(Pv=!0,qv())},3e3))},nw=e=>{Nv&&null!==e.target&&e.target instanceof Node&&(Date.now()<Qv?e.preventDefault():(null==Zv?void 0:Zv.contains(e.target))||"paused"===Iv&&Pv?Date.now()<Qv||"paused"!==Iv||(Pv=!1,qv(),ew()):((null==Mv?void 0:Mv.contains(e.target))||Nv.contains(e.target))&&(async e=>{var n,t;if(e.preventDefault(),!(Date.now()<Qv))try{await(null==(t=(n=Kv()).onClick)?void 0:t.call(n))}catch(i){b("Login UI floating button click failed:",i)}})(e))},tw=e=>{0===e.button&&Nv&&Uv()&&(Ov={pointerId:e.pointerId,startPointerX:e.clientX,startPointerY:e.clientY,startX:Gv.x,startY:Gv.y,moved:!1},Nv.setPointerCapture(e.pointerId))},iw=e=>{if(!Ov||Ov.pointerId!==e.pointerId||!Nv||!Uv())return;const n=e.clientX-Ov.startPointerX,t=e.clientY-Ov.startPointerY;!Ov.moved&&Math.hypot(n,t)>=6&&(Ov.moved=!0),Ov.moved&&(Gv.x=Ov.startX+n,Gv.y=Ov.startY+t,zv(),e.preventDefault())},aw=e=>{Ov&&Ov.pointerId===e.pointerId&&Nv&&(Nv.hasPointerCapture(e.pointerId)&&Nv.releasePointerCapture(e.pointerId),Ov.moved&&(Qv=Date.now()+250),Ov=null)},ow=()=>
1{if("undefined"!=typeof window&&"undefined"!=typeof document&&(Sv||(nv(Cv,{"data-game-interface-auth-floating-button":"true"}),Sv=!0),!Nv)){const{rootElement:e,loginButtonElement:n,burgerButtonElement:t}=(()=>{const e=document.createElement("div");e.id=bv,e.dataset.hidden="true",e.dataset.mode="hidden",e.dataset.collapsed="false",e.dataset.draggable="true";const n=document.createElement("button");n.type="button",n.className="game-interface-auth-floating-button__login",n.setAttribute("aria-label","");const t=document.createElement("span");t.className="game-interface-auth-floating-button__handle",t.setAttribute("aria-hidden","true");for(let r=0;r<6;r+=1){const e=document.createElement("span");e.className="game-interface-auth-floating-button__handle-dot",t.appendChild(e)}const i=document.createElement("span");i.className="game-interface-auth-floating-button__label";const a=document.createElement("span");a.className="game-interface-auth-floating-button__icon",a.dataset.visible="false",a.setAttribute("aria-hidden","true"),n.append(t,a,i);const o=document.createElement("button");return o.type="button",o.className="game-interface-auth-floating-button__burger",o.setAttribute("aria-label",""),e.append(n,o),{rootElement:e,loginButtonElement:n,burgerButtonElement:o}})();document.body.appendChild(e),Nv=e,Mv=n,Zv=t,Jv=n.querySelector(".game-interface-auth-floating-button__label"),Bv=n.querySelector(".game-interface-auth-floating-button__icon"),Vv(),$v(!0),e.addEventListener("pointerdown",tw),e.addEventListener("pointermove",iw),e.addEventListener("pointerup",aw),e.addEventListener("pointercancel",aw),e.addEventListener("click",nw),window.addEventListener("resize",zv)}},rw=(e,n={})=>{ow(),Hv=!1!==n.useRegistration,Xv=Yv(Xv,e),Iv=(null==e?void 0:e.mode)??("hidden"===Iv?"ready":Iv),Fv=!1,Pv=!1,Uv()?Gv.initialized||$v():$v(!0),qv(),"paused"===Iv?ew():Wv()},sw=()=>{Iv="hidden",Pv=!1,Wv(),qv()},uw=()=>Boolean(fv.button)&&"auto"===(fv.lifecycle??"manual"),lw=()=>{qv(),"paused"===Iv&&jv()&&!Pv&&ew()},cw=(e,n,t)=>e||("cancel"===t?"secondary":"manage"===n?"warning":"primary"),hw=e
1=>{var n;const t=wv(),i=(null==e?void 0:e.mode)??(null==(n=t.overlay)?void 0:n.mode)??"connect";return Av(((e,n)=>{var t;const i=e.overlay,a=n?null==(t=e.overlayModes)?void 0:t[n]:void 0;return Av({...i,actions:{...e.actions,...null==i?void 0:i.actions}},{...a,actions:{...e.actions,...null==i?void 0:i.actions,...null==a?void 0:a.actions}})})(t,i),e)},dw=async(e,n={})=>{var t,i,a,o,r,s,u,l,c,h,d,g,p,m,f,v,w,y,b,S,C,L,T,E,k;if(Mf.isVisible())return;const D=!1===n.useRegistration?Av(void 0,e):hw(e),x=D.mode??"connect",A=((e,n,t)=>{var i;return n||(e?null==(i=t.actions)?void 0:i[e]:void 0)})(x,null==(t=D.confirmButton)?void 0:t.action,D),Y=null==(i=D.cancelButton)?void 0:i.action,{backgroundVisible:_,backgroundStyle:I}=(e=>{const n=Boolean((null==e?void 0:e.cssValue)||(null==e?void 0:e.imageUrl));return{backgroundVisible:!1!==(null==e?void 0:e.visible)&&!n,backgroundStyle:!1===(null==e?void 0:e.visible)?"background: var(--modal-bg);":(null==e?void 0:e.cssValue)?`background: ${e.cssValue};`:(null==e?void 0:e.imageUrl)?`background: var(--modal-bg) url("${e.imageUrl}") center / cover no-repeat;`:void 0}})(D.background);yv(!0);try{await gv({title:Lv(D.title),message:Lv(D.message),errorMessage:Lv(D.errorMessage),contentHtml:D.contentHtml,privacyLinkLabel:!1===(null==(a=D.privacyPolicy)?void 0:a.visible)?void 0:Lv(null==(o=D.privacyPolicy)?void 0:o.label),privacyLinkUrl:null==(r=D.privacyPolicy)?void 0:r.url,backgroundVisible:_,backgroundStyle:I,logoHtml:(N=D.logo,!1===(null==N?void 0:N.visible)?"":"function"==typeof(null==N?void 0:N.render)?N.render():(null==N?void 0:N.imageUrl)?`\n <div class="famobi-logo" aria-label="${av(Lv(N.alt,"Brand logo"))}">\n ${Tv(N.imageUrl,"auth-overlay-logo-image",Lv(N.alt,"Brand logo"),{decorative:!1})}\n </div>\n `:void 0),showDefaultLogo:!1!==(null==(s=D.logo)?void 0:s.visible),iconVariant:!1===(null==(u=D.icon)?void 0:u.visible)||(null==(l=D.icon)?void 0:l.imageUrl)||(null==(c=D.icon)?void 0:c.render)?void 0:(null==(h=D.icon)?void 0:h.variant)??x,iconHtml:(P=D.icon,Ev(P,"save-icon-svg","",{decorative:!0})),confirmButton:!1===(null==(d=D.confirmButton)?void 0:d.visible)?void 0:{visible:!0,label:Lv(null==(g=D.confirmButton)?void 0:g.label),variant:cw(null==(p=D.confirmButton)?void 0:p.variant,x,"confirm"),iconVariant:!1===(null==(f=null==(m=D.confirmButton)?void 0:m.icon)?void 0:f.visible)?void 0:(null==(w=null==(v=D.confirmButton)?void 0:v.icon)?void 0:w.kind)??("google"===cw(null==(y=D.confirmButton)?void 0:y.variant,x,"confirm")?"google":void 0),iconHtml:kv(D.confirmButton),onClick:async()=>A?Dv(await A()):{type:"close"}},cancelButton:!1===(null==(b=D.cancelButton)?void 0:b.visible)?void 0:{visible:!0,label:Lv(null==(S=D.cancelButton)?void 0:S.label),variant:cw(null==(C=D.cancelButton)?void 0:C.variant,x,"cancel"),iconVariant:!1===(null==(T=null==(L=D.cancelButton)?void 0:L.icon)?void 0:T.visible)||null==(k=null==(E=D.cancelButton)?void 0:E.icon)?void 0:k.kind,iconHtml:kv(D.cancelButton),onClick:async()=>Y?Dv(await Y()):{type:"close"}}})}finally{yv(!1),lw()}var P,N},gw=()=>{if("undefined"==typeof document||!document.body)return yv(!1),void lw();Mf.isVisible()&&Mf.close(),yv(!1),lw()},pw="game-interface-sdk",mw="authOverlay",fw={apiKey:"AIzaSyBW0ZUtnhcyX8yBxwVMdfGr-hBLp9xJpBA",authDomain:"famobi-games.firebaseapp.com",projectId:"famobi-games",storageBucket:"famobi-games.firebasestorage.app",messagingSenderId:"792529222731",appId:"1:792529222731:web:9e863a89c229ecf156a1ce"},vw=()=>{var e;return!0===(null==(e=p.get().auth)?void 0:e.enabled)},ww=()=>{var e;const n=null==(e=p.get().auth)?void 0:e.firebase;return Boolean(n&&Object.keys(n).length>0)?n:fw},yw=()=>{var e,n,t;return vw()&&!1!==(null==(t=null==(n=null==(e=p.get().auth)?void 0:e.providers)?void 0:n.google)?void 0:t.enabled)},bw=()=>{var e,n;return vw()&&!0===(null==(n=null==(e=p.get().auth)?void 0:e.overlay)?void 0:n.enabled)},Sw=()=>{var e;const n=null==(e=p.get().auth)?void 0:e.timeoutMs;return"number"==typeof n&&Number.isFinite(n)&&n>0?n:5e3};Wn("firebase","10.14.1","app");const Cw=h({status:"idle",isAnonymous:null,userId:null,email:null,isLinked:!1,providerId:null,canSignIn:!1,canSignOut:!1,isOverlayVisible:!1,lastError:null}),Lw=new Set,Tw=()=>Cw.get(),Ew=(e={},n)=>{const t=((e={},n)=>{const t={...Cw.get(),...e},i="boolean"==typeof t.isAnonymous?t.isAnonymous:null,a=n?((e,n=null)=>{var t;return(null==e?void 0:e.isAnonymous)?"anonymous":(null==(t=null==e?void 0:e.providerData)?void 0:t.some(e=>"google.com"===e.providerId))?"google":n})(n,t.providerId):!0===i?"anonymous":t.providerId??null,o=!1===i&&null!==a,r=n?n.email??null:!0===i?
1null:t.email??null;return{status:t.status??"idle",userId:t.userId??null,email:r,isAnonymous:i,isLinked:o,providerId:a,canSignIn:yw(),canSignOut:o,isOverlayVisible:t.isOverlayVisible??!1,lastError:t.lastError??null}})(e,n);var i,a;(i=Cw.get(),a=t,i.status!==a.status||i.userId!==a.userId||i.email!==a.email||i.isAnonymous!==a.isAnonymous||i.isLinked!==a.isLinked||i.providerId!==a.providerId||i.canSignIn!==a.canSignIn||i.canSignOut!==a.canSignOut||i.isOverlayVisible!==a.isOverlayVisible||i.lastError!==a.lastError)&&(Cw.set(t,{mode:"override"}),(()=>{const e=Cw.get();Lw.forEach(n=>{try{n(e)}catch(t){b("Auth state listener error:",t)}})})())},kw=e=>{Ew({isOverlayVisible:e})},Dw=e=>{Ew({status:"ready",userId:e.uid,isAnonymous:e.isAnonymous??!0,lastError:null},e)},xw=e=>(Lw.add(e),e(Tw()),()=>{Lw.delete(e)}),Aw={initPromise:null,authInstance:null,firebaseAppInstance:null,hasHandledUrlTriggeredOverlay:!1,autoOverlayShownByReason:{progress:!1,iap:!1},reloadAfterNextRestore:!1},Yw=e=>{const n=Array.from(Zn.values()).find(e=>e.name===pw);return n||Kn(e,pw)},_w=()=>{if(!Aw.authInstance)throw new Error("Firebase auth is not initialized");return Aw.authInstance},Iw=()=>{if(!Aw.firebaseAppInstance)throw new Error("Firebase app is not initialized");return Aw.firebaseAppInstance},Pw=async()=>{const e=_w(),n=await fh(e);Dw(n.user)},Nw=async e=>{const n=await async function(e,n){return await qc(e)._initializationPromise,ad(e,n,!1)}(e);return(null==n?void 0:n.user)??null},Mw=e=>{const n=qf().auth.errors;return e?n[e]??e:n.default},Zw=e=>e||qf().auth.errors.signOutDefault,Jw=e=>{switch(e){case"restore":return"restore";case"manage":return"manage";default:return"connect"}},Bw=(e,n="")=>ev(e,n),Rw=(e,n="")=>e&&"close"!==e.type?"keepOpen"===e.type?e:{type:"error",message:Bw(e.message,n)}:{type:"close",afterClose:null==e?void 0:e.afterClose},Fw=(e,n,t)=>e||("cancel"===t?"secondary":"manage"===n?"warning":"google"),Xw=()=>{const e=(()=>{if(Aw.hasHandledUrlTriggeredOverlay||"undefined"==typeof window)return null;Aw.hasHandledUrlTriggeredOverlay=!0;const e=new URL(window.location.href),n=(e=>{switch(e){case"connect":case"restore":case"manage":return e;default:return null}})(e.searchParams.get(mw));return e.searchParams.has(mw)?(e.searchParams.delete(mw),window.history.replaceState(window.history.state,"",`${e.pathname}${e.search}${e.hash}`),n):null})();if(!e)return;const n=Tw();if("manage"===e&&!n.canSignOut)return void y("Skipping URL-triggered manage overlay because no linked account is signed in.");("undefined"!=typeof window?window.setTimeout:setTimeout)(()=>{Uw({mode:e})},0)},Hw=()=>{if(Aw.initPromise){const e=Tw().status;if(null!==Aw.authInstance||!vw()||"pending"===e||"ready"===e)return Aw.initPromise;Aw.initPromise=null}return Aw.initPromise=new Promise(e=>{const n="undefined"!=typeof window?window.setTimeout:setTimeout;if(!vw())return Ew({status:"skipped",userId:null,isAnonymous:null,providerId:null,lastError:null,isOverlayVisible:!1}),void e("skipped");const t=ww();if(!(e=>Boolean((null==e?void 0:e.apiKey)&&(null==e?void 0:e.authDomain)&&(null==e?void 0:e.projectId)&&(null==e?void 0:e.appId)))(t))return b("Auth enabled, but Firebase config is missing or incomplete."),Ew({status:"failed",userId:null,isAnonymous:!0,providerId:"anonymous",lastError:"missing_config"}),void n(()=>{e("failed")},Sw());y("init auth...");const i=(e=>{const n=Yw(e);return Aw.firebaseAppInstance=n,Aw.authInstance=Md(n),Aw.authInstance})(t);let a=!1;const o=n=>{a||(a=!0,e(n),"ready"===n&&Xw())};let r=!1,s=!1;Ew({status:"pending",userId:Tw().userId,isAnonymous:Tw().isAnonymous??!0,lastError:null}),Nw(i).catch(e=>{b("Redirect auth completion failed:",e),Ew({lastError:String((null==e?void 0:e.code)||e)})});const u=n(()=>{const e=r?"failed":"timeout";"pending"===Tw().status&&Ew({status:e,lastError:e}),o(e)},Sw());!function(e,n,t,i){Ae(e).onAuthStateChanged(n,t,i)}(i,async e=>{try{if(!s&&(s=!0,!e))return await Pw(),clearTimeout(u),void o("ready");if(!e)return;clearTimeout(u),Dw(e),o("ready")}catch(n){b("Anonymous auth failed:",n),r=!0,Ew({status:"failed",userId:null,isAnonymous:!0,providerId:"anonymous",lastError:String((null==n?void 0:n.code)||n)}),o("failed")}},e=>{b("Auth state observer error:",e)})}),Aw.initPromise},Gw=async()=>Hw(),Ow=()=>{Aw.reloadAfterNextRestore=!0},Qw=()=>{Aw.reloadAfterNextRestore=!1},Kw=()=>vw(),jw=async(e="google")=>{if(await Hw(),!vw())return Tw();if("google"!==e||!yw())return Ew({lastError:"provider_disabled"}),Tw();const n=Tw(),t=new hh;Ew({status:"pending",lastError:null});try{const e=_w();let n=null;const a=e.currentUser;if(null==a?void 0:a.isAnonymous)try{const e=await async function(e,n,t){const i=Ae(e);ql(i.auth,n,uh);const a=Xh(i.auth,t);return new Uh(i.auth,"linkViaPopup",n,a,i).executeNotNull()}(a,t);n=e.user}catch(i){const o=String((null==i?void 0:i.code)||"");if("auth/credential-already-in-use"!==o&&"auth/provider-already-linked"!==o&&"auth/email-already-in-use"!==o){if("auth/popup-blocked"===o)return await id(a,t),Tw();throw i}n=(await Wh(e,t)).user}else try{n=(await Wh(e,t)).user}catch(i){if("auth/popup-blocked"===String((null==i?void 0:i.code)||""))return await td(e,t),Tw();throw i}return n&&Dw(n),Tw()}catch(i){return b("Google sign-in failed:",i),Ew({...n,status:"ready"===n.status?"ready":"failed",lastError:String((null==i?void 0:i.code)||i)}),Tw()}},Ww=async()=>
1{if(await Hw(),!vw())return Tw();const e=Tw();Ew({status:"pending",lastError:null});try{const e=_w();return await function(e){return Ae(e).signOut()}(e),await Pw(),Tw()}catch(n){return b("Sign-out failed:",n),Ew({...e,status:"ready"===e.status?"ready":"failed",lastError:String((null==n?void 0:n.code)||n)}),Tw()}},Uw=async(e={})=>{var n,t,i,a,o,r,s,u,l,c,h,d,g,p,m,f,v,w,y,b,S;if(await Hw(),!bw()||Mf.isVisible())return;const C=Tw(),L=e.mode??(C.canSignOut?"manage":"connect"),T=(e=>{const n=qf().auth;switch(e){case"manage":return{...n.manage,privacyLinkLabel:n.privacyPolicy};case"restore":return{...n.restore,privacyLinkLabel:n.privacyPolicy};default:return{...n.connect,privacyLinkLabel:n.privacyPolicy}}})(L),E="manage"===L&&C.email?`<div class="auth-account-email">${av(C.email)}</div>`:void 0,k=Bw(null==(n=e.confirmButton)?void 0:n.label,T.confirmButtonText),D=Bw(null==(t=e.cancelButton)?void 0:t.label,T.cancelButtonText),x=!1===(null==(i=e.privacyPolicy)?void 0:i.visible)?void 0:Bw(null==(a=e.privacyPolicy)?void 0:a.label,T.privacyLinkLabel),A=(e=>async()=>{const n="manage"===e?await Ww():await jw("google");return"manage"===e?!0===n.isAnonymous&&Boolean(n.userId)?{type:"close"}:{type:"error",message:Zw(n.lastError)}:!1===n.isAnonymous&&Boolean(n.userId)?{type:"close"}:{type:"error",message:Mw(n.lastError)}})(L);kw(!0);try{await dw({mode:L,title:Bw(e.title,T.title),message:Bw(e.message,T.message),contentHtml:e.contentHtml??E,logo:e.logo,background:e.background,icon:!1===(null==(o=e.icon)?void 0:o.visible)?e.icon:{...e.icon,variant:(null==(r=e.icon)?void 0:r.imageUrl)||(null==(s=e.icon)?void 0:s.render)?null==(u=e.icon)?void 0:u.variant:(null==(l=e.icon)?void 0:l.variant)??Jw(L)},privacyPolicy:{...e.privacyPolicy,label:x,url:(null==(c=e.privacyPolicy)?void 0:c.url)??"https://famobi.com/privacy-policy"},confirmButton:!1===(null==(h=e.confirmButton)?void 0:h.visible)?void 0:{visible:!0,label:k,variant:Fw(null==(d=e.confirmButton)?void 0:d.variant,L,"confirm"),icon:{...null==(g=e.confirmButton)?void 0:g.icon,kind:!1===(null==(m=null==(p=e.confirmButton)?void 0:p.icon)?void 0:m.visible)?void 0:(null==(v=null==(f=e.confirmButton)?void 0:f.icon)?void 0:v.kind)??("google"===Fw(null==(w=e.confirmButton)?void 0:w.variant,L,"confirm")?"google":void 0)},action:async()=>{var n;const t=(null==(n=e.confirmButton)?void 0:n.action)?await e.confirmButton.action():await A();return Rw(t,"manage"===L?Zw(null):Mw(null))}},cancelButton:!1===(null==(y=e.cancelButton)?void 0:y.visible)?void 0:{visible:!0,label:D,variant:Fw(null==(b=e.cancelButton)?void 0:b.variant,L,"cancel"),icon:null==(S=e.cancelButton)?void 0:S.icon,action:async()=>{var n;if(!(null==(n=e.cancelButton)?void 0:n.action))return{type:"close"};const t=await e.cancelButton.action();return Rw(t)}}},{useRegistration:!1})}finally{kw(!1)}},zw=async(e,n={})=>{if(await Hw(),!1===n.hasLocalSavegame||!(()=>{var e;const n=null==(e=p.get().auth)?void 0:e.overlay;return bw()&&!0===(null==n?void 0:n.autoShow)&&"manual"!==n.mode})()||Aw.autoOverlayShownByReason[e])return;const t=Tw();var i,a;!0===t.isAnonymous&&t.canSignIn&&(Aw.autoOverlayShownByReason[e]=!0,await Uw({mode:"restorePrompt"===(null==(a=null==(i=p.get().auth)?void 0:i.overlay)?void 0:a.mode)?"restore":"connect"}))},$w=async e=>{const n=mv.get().gameReadyAt;null===n||Date.now()-n<(()=>{var e,n;const t=null==(n=null==(e=p.get().auth)?void 0:e.overlay)?void 0:n.minPlaytimeMs;return"number"==typeof t&&Number.isFinite(t)&&t>=0?t:3e5})()||await zw("progress",{hasLocalSavegame:e})},Vw=()=>{var e,n;return!0===(null==(n=null==(e=p.get().auth)?void 0:e.cloudSave)?void 0:n.enabled)},qw=async()=>{if(!Vw()||!Kw())return null;await Gw();const e=Tw();if("ready"!==e.status||!1!==e.isAnonymous||!e.userId)return null;const n=p.get().gameId||p.get().gameIdOnPortal;return n?{gameId:n,userId:e.userId}:null},ey=async()=>{if(!(()=>
1{if(!0===p.get().dev)return!0;if("undefined"==typeof window)return!1;const e=window.location.hostname.toLowerCase();return"localhost"===e||"127.0.0.1"===e||"[::1]"===e})())return{enabled:!1,error:"Cloud user inspection is only available on localhost or when SDK dev mode is enabled.",path:null,gameId:null,userId:null,exists:!1,data:null};const e=await qw();if(!e)return{enabled:!0,error:null,path:null,gameId:null,userId:null,exists:!1,data:null};const n=`games/${e.gameId}/users/${e.userId}`,t=tl(Iw()),i=await Zl(qu(t,"games",e.gameId,"users",e.userId));return{enabled:!0,error:null,path:n,gameId:e.gameId,userId:e.userId,exists:i.exists(),data:i.exists()&&i.data()||null}},ny=e=>{if(!e||"object"!=typeof e)return null;const n=e,t="local"===n.source||"cloud"===n.source?n.source:null;return t?{savegame:"object"==typeof n.savegame&&n.savegame?n.savegame:{},savegameUpdatedAt:"number"==typeof n.savegameUpdatedAt&&Number.isFinite(n.savegameUpdatedAt)?n.savegameUpdatedAt:0,savegameVersion:"number"==typeof n.savegameVersion&&Number.isFinite(n.savegameVersion)?n.savegameVersion:1,gameVersion:"string"==typeof n.gameVersion?n.gameVersion:null,level:"number"==typeof n.level&&Number.isInteger(n.level)?n.level:null,source:t,backedUpAt:"number"==typeof n.backedUpAt&&Number.isFinite(n.backedUpAt)?n.backedUpAt:0}:null},ty=async e=>{const n=await qw();if(!n)return!1;const t={gameId:n.gameId,userId:n.userId,savegame:e.data,savegameUpdatedAt:e.updatedAt,savegameVersion:e.version,gameVersion:p.get().version??null,level:"number"==typeof e.level&&Number.isInteger(e.level)?e.level:null,sdkName:g.get().name||null,portal:g.get().name||null,lastSeenAt:Date.now()},i=tl(Iw());return await Bl(qu(i,"games",n.gameId,"users",n.userId),t,{merge:!0}),!0};let iy=null;const ay=()=>{iy||(iy=xw(()=>{lw()}))},oy=()=>{var e;const n=p.get().auth,t=Tw();return!0===(null==n?void 0:n.enabled)&&!0===(null==(e=n.overlay)?void 0:e.enabled)&&Vw()&&
1!0===t.isAnonymous&&t.canSignIn&&!0!==t.isOverlayVisible},ry=async()=>{!0===Tw().isAnonymous&&Ow(),await Uw({mode:"connect"}),!0===Tw().isAnonymous&&Qw()},sy=e=>{var n,t;const i=qf().auth.floatingButton;return{mode:e,position:(null==(t=null==(n=p.get().auth)?void 0:n.overlay)?void 0:t.floatingButtonPosition)??"bottomRight",draggable:!0,visible:oy,label:i.readyLabel,pausedLabel:i.pausedLabel,ariaLabel:i.loginAriaLabel,menuAriaLabel:i.menuAriaLabel,onClick:ry}},uy=()=>Boolean(fv.button||fv.overlay||fv.overlayModes||fv.actions),ly=()=>{uw()&&rw({mode:"ready"},{useRegistration:!0}),uy()||(ay(),rw(sy("ready"),{useRegistration:!1}))},cy=()=>{uw()&&rw({mode:"paused"},{useRegistration:!0}),uy()||(ay(),rw(sy("paused"),{useRegistration:!1}))},hy=()=>{uw()&&sw(),uy()||sw()},dy=async()=>{if(!ae())return null;if(!Kw())return null;await Gw();const e=Tw();if("ready"!==e.status||!1!==e.isAnonymous||!e.userId)return null;const n=p.get().gameId||p.get().gameIdOnPortal;return n?{gameId:n,userId:e.userId}:null},gy=e=>Boolean(e)&&"object"==typeof e&&!Array.isArray(e),py=e=>"number"==typeof e&&Number.isFinite(e)?e:null,my=e=>"string"==typeof e&&e.length>0?e:null,fy=e=>gy(e)?{amount:py(e.amount),currency:my(e.currency),displayPrice:my(e.displayPrice)}:null,vy=e=>"consumed"===e?"consumed":"purchased",wy=e=>{const n=gy(e)&&gy(e.purchases)?Object.entries(e.purchases).reduce((e,[n,t])=>{const i=((e,n)=>{if(!gy(n))return null;const t=my(n.sku),i=my(n.firebaseUserId);return t&&i?{provider:"xsolla",sku:t,title:my(n.title),description:my(n.description),paymentId:py(n.paymentId),famobiPaymentToken:my(n.famobiPaymentToken)||(e.startsWith("token:")?e.slice(6):null),externalUserId:my(n.externalUserId),firebaseUserId:i,status:vy(n.status),purchasedAt:py(n.purchasedAt),consumedAt:py(n.consumedAt),updatedAt:py(n.updatedAt)??0,price:fy(n.price)}:null})(n,t);return i&&(e[n]=i),e},{}):{},t=gy(e)&&gy(e.items)?Object.entries(e.items).reduce((e,[n,t])=>{const i=((e,n)=>gy(n)?{sku:e,title:my(n.title),description:my(n.description),purchaseCount:"number"==typeof n.purchaseCount&&Number.isFinite(n.purchaseCount)&&n.purchaseCount>0?n.purchaseCount:0,firstPurchasedAt:py(n.firstPurchasedAt),lastPurchasedAt:py(n.lastPurchasedAt),lastPaymentId:py(n.lastPaymentId),lastStatus:vy(n.lastStatus),lastPrice:fy(n.lastPrice),updatedAt:py(n.updatedAt)??0}:null)(n,t);return i&&(e[n]=i),e},{}):{};return{externalUserId:gy(e)?my(e.externalUserId):null,firebaseUserId:gy(e)?my(e.firebaseUserId):null,updatedAt:gy(e)?py(e.updatedAt)??0:0,purchases:n,items:t}},yy=e=>{const n=gy(e)&&gy(e.providers)?e.providers:{};return{updatedAt:gy(e)?py(e.updatedAt)??0:0,providers:{xsolla:n.xsolla?wy(n.xsolla):void 0}}},by=async()=>{try{const e=await dy();if(!e)return null;const n=qu(tl(Iw()),"games",e.gameId,"users",e.userId),t=await Zl(n);if(!t.exists())return null;const i=t.data();return yy(i.iap)}catch(e){return b("Error reading cloud IAP state:",e),null}},Sy=async()=>{const e=await by(),n=null==e?void 0:e.providers.xsolla;return n?(e=>Object.values(e.purchases).filter(e=>"purchased"===e.status).sort((e,n)=>(e.purchasedAt??e.updatedAt)-(n.purchasedAt??n.updatedAt)))(n).map(e=>({sku:e.sku,paymentId:e.paymentId??void 0,famobiPaymentToken:e.famobiPaymentToken??void 0})):[]},Cy=async()=>{var e;if(!ae())return null;const n=Tw();if("ready"!==n.status||!1!==n.isAnonymous||!n.userId)return null;const t=await by(),i=null==(e=null==t?void 0:t.providers.xsolla)?void 0:e.updatedAt;return"number"!=typeof i||i<=0?`${n.userId}:0`:`${n.userId}:${i}`},Ly="gi-xsolla-userid-explicit",Ty=e=>{const n=localStorage.getItem(e);return"string"==typeof n&&n.length>0?n:null},Ey=(e,n=Ly)=>{localStorage.setItem(n,e)},ky=()=>Ty(Ly),Dy=(e="gi-xsolla-userid")=>{const n=(()=>{const e=Tw();return"ready"===e.status&&!1===e.isAnonymous&&e.userId?e.userId:null})();if(n)return n;const t=ky();if(t)return t;let i=Ty(e);return i||(i=crypto.randomUUID?crypto.randomUUID():"user-"+Date.now()+"-"+Math.random().toString(36).substring(2,9),Ey(i,e)),i},xy=e=>[...e].sort((e,n)=>n.updatedAt-e.updatedAt)[0]||null,Ay=e=>{var n;const t=e.previousSummary,i=(a=e.sku,o=e.purchases,Object.values(o).filter(e=>e.sku===a));var a,o;const r=xy(i),s=xy(i.filter(e=>"purchased"===e.status)),u=i.map(e=>e.purchasedAt).filter(e=>"number"==typeof e&&Number.isFinite(e)),l=u.length?Math.min(...u):(null==t?void 0:t.firstPurchasedAt)??null,c=u.length?Math.max(...u):(null==t?void 0:t.lastPurchasedAt)??null,h=(e=>[...e].sort((e,n)=>n.updatedAt-e.updatedAt).find(e=>e.title||e.description||e.price)||null)(i),d=s??r;return{sku:e.sku,title:(null==h?void 0:h.title)??(null==t?void 0:t.t
1itle)??null,description:(null==h?void 0:h.description)??(null==t?void 0:t.description)??null,purchaseCount:i.length,firstPurchasedAt:l,lastPurchasedAt:c,lastPaymentId:(null==d?void 0:d.paymentId)??(null==t?void 0:t.lastPaymentId)??null,lastStatus:(null==d?void 0:d.status)??(null==t?void 0:t.lastStatus)??"purchased",lastPrice:(null==(n=s??h)?void 0:n.price)??(null==t?void 0:t.lastPrice)??null,updatedAt:(null==d?void 0:d.updatedAt)??(null==t?void 0:t.updatedAt)??0}},Yy=async e=>{try{const n=await dy();if(!n)return!1;const t=tl(Iw()),i=qu(t,"games",n.gameId,"users",n.userId);return await Hl(t,async t=>{const a=await t.get(i),o=a.exists()?a.data():void 0,r=yy(null==o?void 0:o.iap),s=r.providers.xsolla||wy(void 0),u=(e=>"number"==typeof e.paymentId&&Number.isFinite(e.paymentId)?`payment:${e.paymentId}`:"string"==typeof e.famobiPaymentToken&&e.famobiPaymentToken.length>0?`token:${e.famobiPaymentToken}`:`sku:${e.sku}`)(e),l=s.purchases[u],c=s.items[e.sku],h=Date.now(),d=(e=>{var n,t,i;const a=e.previousRecord,o=e.previousSummary,r=(null==(n=e.catalog)?void 0:n.price)||(null==a?void 0:a.price)||(null==o?void 0:o.lastPrice)||null,s=((e,n)=>"consumed"===(null==n?void 0:n.status)?"consumed":e)(e.status,a);return{provider:"xsolla",sku:e.sku,title:(null==(t=e.catalog)?void 0:t.title)??(null==a?void 0:a.title)??(null==o?void 0:o.title)??null,description:(null==(i=e.catalog)?void 0:i.description)??(null==a?void 0:a.description)??(null==o?void 0:o.description)??null,paymentId:"number"==typeof e.paymentId&&Number.isFinite(e.paymentId)?e.paymentId:(null==a?void 0:a.paymentId)??null,famobiPaymentToken:e.famobiPaymentToken||(null==a?void 0:a.famobiPaymentToken)||null,externalUserId:e.externalUserId??(null==a?void 0:a.externalUserId)??null,firebaseUserId:e.firebaseUserId,status:s,purchasedAt:(null==a?void 0:a.purchasedAt)??e.purchasedAt??null,consumedAt:"consumed"===s?(null==a?void 0:a.consumedAt)??e.consumedAt??null:null,updatedAt:e.updatedAt,price:r}})({...e,firebaseUserId:n.userId,externalUserId:ky(),previousRecord:l,previousSummary:c,consumedAt:"consumed"===e.status?e.consumedAt??h:e.consumedAt,updatedAt:h}),g={...s.purchases,[u]:d},p=Ay({sku:e.sku,purchases:g,previousSummary:c}),m=Math.max(s.updatedAt,d.updatedAt,p.updatedAt),f={externalUserId:d.externalUserId,firebaseUserId:n.userId,updatedAt:m,purchases:g,items:{...s.items,[e.sku]:p}},v={updatedAt:Math.max(r.updatedAt,m),providers:{...r.providers,xsolla:f}};t.set(i,{iap:v},{merge:!0})}),!0}catch(n){return b("Error persisting cloud IAP purchase:",n),!1}},_y="https://us-central1-famobi-payment.cloudfunctions.net",Iy="https://store.xsolla.com/api/v2/project";let Py=null;const Ny=async()=>{if(!ae())return[];if(Py)return Py;Py=(async()=>{var e,n;a.log("[iap][xsolla] get products...");const t=null==(n=null==(e=p.get().iap)?void 0:e.xsolla)?void 0:n.projectId;if(void 0===t)throw new Error("invalid projectId");const i=await fetch((e=>`${Iy}/${e}/items/virtual_items`)(t));if(!i.ok)throw new Error(`http error! status: ${i.status}`);const o=await i.json();return a.log("[iap][xsolla] products found:",JSON.stringify(o.items)),Array.isArray(o.items)?o.items:[]})();try{return await Py}catch(e){throw Py=null,e}},My=async e=>{var n;if("crazyGames"===g.get().name){a.log("[portal] window.CrazyGames.SDK.user.getXsollaUserToken()...");const e=await(null==(n=window.CrazyGames)?void 0:n.SDK.user.getXsollaUserToken().catch(e=>{a.warn("[iap][xsolla] Error:",e)}));if("string"==typeof e)return e}const t=(()=>{var e,n;return(null==(n=null==(e=p.get().iap)?void 0:e.xsolla)?void 0:n.endpoint)||_y})();a.log(`[iap][xsolla] retrieve bearer token... (endpoint: '${t}')`,e);const i=await fetch(`${t}/xsollaToken`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(!i.ok)throw new Error(`http error! status: ${i.status}`);return(await i.json()).token},Zy=()=>{const e=navigator.userAgent.toLowerCase(),n=window.innerWidth;return/smart-tv|smarttv|appletv|googletv|hbbtv|pov_tv|netcast.tv|roku|viera|tv/i.test(e)?"tv":/(ipad|tablet|playbook|silk)|(android(?!.*mobile))/i.test(e)||n>=600&&n<=1024?"tablet":/(mobi|iphone|ipod|blackberry|phone|windows phone|opera mini|android)/i.test(e)||n<600?"mobile":"desktop"};let Jy=!1,By=null;let Ry=!1;const Fy=e=>new Error(e),Xy=e=>{var n,t;const i=!!(null==(t=null==(n=p.get().iap)?void 0:n.xsolla)?void 0:t.isSandbox);if(Ry)return a.warn("[iap] Xsolla iframe is already open â additional call ignored"),Promise.reject(Fy("canceled"));Ry=!0;const o=`https://${i?"sandbox-secure":"secure"}.xsolla.com/paystation4/?token=${e}`;
1return a.log("Xsolla iframe URL:",o),new Promise((e,n)=>{const t=document.createElement("iframe");t.src=o,t.allow="clipboard-read; clipboard-write; payment",t.style.position="fixed",t.style.top="30px",t.style.left="0",t.style.width="100%",t.style.height="100%",t.style.border="none",t.style.background="transparent",t.style.zIndex="1000",t.onload=()=>{a.log("Xsolla iframe loaded")},t.onerror=()=>{a.warn("Error loading Xsolla iframe"),s(),n(new Error("failed"))},document.body.appendChild(t);const i=document.createElement("button");i.innerText="X",i.style.position="absolute",i.style.top="0px",i.style.right="15px",i.style.zIndex="10001",i.style.color="#fff",i.style.border="none",i.style.padding="5px",i.style.fontSize="12px",i.style.cursor="pointer",i.style.boxShadow="2px 4px 6px rgba(0, 0, 0, 0.1)",i.style.background="transparent",document.body.appendChild(i);const r=t=>{if(!t.origin.includes("xsolla.com"))return;let i;try{i="string"==typeof t.data?JSON.parse(t.data):t.data}catch(u){return void a.warn("Failed to parse Xsolla message",u)}const o=null==i?void 0:i.command,r=null==i?void 0:i.data;switch(a.log(`Xsolla message: ${o}`,i),o){case"change-status":"done"===(null==r?void 0:r.value)&&(s(),e({result:!0,paymentId:2}));break;case"close":a.log("Xsolla sent close command"),s(),n(Fy("closed by Xsolla"))}},s=()=>{Ry=!1,t.parentNode&&document.body.removeChild(t),i.parentNode&&document.body.removeChild(i),window.removeEventListener("message",r)};i.addEventListener("pointerup",()=>{s(),n(Fy("Payment canceled by user (close button)"))},{once:!0}),window.addEventListener("message",r);const u=setTimeout(()=>{Ry&&(a.warn("[iap] Iframe timeout â forcing cleanup"),s(),n(Fy("Iframe timeout")))},3e5),l=n;n=e=>{clearTimeout(u),l(e)}}).finally(()=>{Ry=!1})},Hy=async e=>{var n,t;const i=!!(null==(t=null==(n=p.get().iap)?void 0:n.xsolla)?void 0:t.isSandbox);a.log("[iap] openXsollaWidget()");try{if(Ry)return Promise.reject(Fy("canceled"));if(Ry=!0,await function(e){return Jy?Promise.resolve():By||(By=new Promise((n,t)=>{a.log(`[iap][xsolla] load ${e?"sandbox ":""}script`);const i=document.createElement("script");i.type="text/javascript",i.async=!0,i.src=e?"//cdn.xsolla.net/embed/paystation/1.3.0/widget.min.js":"//cdn.xsolla.net/payments-bucket-prod/embed/1.5.1/widget.min.js",i.onload=()=>{Jy=!0,By=null,n()},i.onerror=()=>{By=null,t(new Error("Xsolla widget script failed to load"))},document.head.appendChild(i)}),By)}(i),!window.XPayStationWidget)throw new Error("failed");const n=window.XPayStationWidget;return n.init({sandbox:i,access_token:e}),new Promise((e,t)=>{const i=n=>{var t,i;o(),Ry=!1,e({result:!0,paymentId:Number(null==(i=null==(t=n.detail)?void 0:t.paymentInfo)?void 0:i.invoice)})},a=()=>{o(),Ry=!1,t(Fy("closed"))},o=()=>{n.off(n.eventTypes.STATUS_DONE,i),n.off(n.eventTypes.CLOSE,a)};n.on(n.eventTypes.STATUS_DONE,i),n.on(n.eventTypes.CLOSE,a),n.open()})}catch(o){throw a.warn("Xsolla widget error",o),o}},Gy=async(e,n,t,i)=>{const o=((e,n)=>`${Iy}/${e}/payment/item/${n}`)(e,n);i=i||Oy(),a.log(`[iap][xsolla][getXsollaToken] get xsolla token... (projectId: '${e}', sku: '${n}', bearerToken: '${t}', endpoint: '${o}')`,i);const r=await fetch(o,{method:"POST",headers:{"Content-Type":"application/json",Authorization:"Bearer "+t},body:JSON.stringify(i)});if(!r.ok)throw new Error(`http error! status: ${r.status}`);return(await r.json()).token},Oy=()=>{var e,n;const t="mobile"===Zy();return{sandbox:!!(null==(n=null==(e=p.get().iap)?void 0:e.xsolla)?void 0:n.isSandbox),settings:{ui:{size:t?"small":"large",theme:"default",version:t?"mobile":"desktop",desktop:{header:{is_visible:!0,visible_logo:!0,visible_name:!0,visible_purchase:!0,type:"normal",close_button:!1}},mobile:{footer:{is_visible:!0},header:{close_button:!1}}}}}};var Qy,Ky={exports:{}};var jy,Wy,Uy=(Qy||(Qy=1,jy=Ky,Wy=function(){var e=String.fromCharCode,n="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=",t="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-$",i={};function a(e,n){if(!i[e]){i[e]={};for(var t=0;t<e.length;t++)i[e][e.charAt(t)]=t}return i[e][n]}var o={compressToBase64:function(e){if(null==e)return"";var t=o._compress(e,6,function(e){return n.charAt(e)});switch(t.length%4){default:case 0:return t;case 1:return t+"===";case 2:return t+"==";case 3:return t+"="}},decompressFromBase64:function(e){return null==e?"":""==e?null:o._decompress(e.length,32,function(t){return a(n,e.charAt(t))})},compressToUTF16:function(n){return null==n?"":o._compress(n,15,function(n){return e(n+32)})+" "},decompressFromUTF16:function(e){return null==e?"":""==e?null:o._decompress(e.length,16384,function(n){return e.charCodeAt(n)-32})},compressToUint8Array:function(e){for(var n=o.compress(e),t=new Uint8Array(2*n.length),i=0,a=n.length;i<a;i++){var r=n.charCodeAt(i);t[2*i]=r>>>8,t[2*i+1]=r%256}return t},decompressFromUint8Array:function(n){if(null==n)return o.decompress(n);for(var t=new Array(n.length/2),i=0,a=t.length;i<a;i++)t[i]=256*n[2*i]+n[2*i+1];var r=[];return t.forEach(function(n){r.push(e(n))}),o.decompress(r.join(""))},compressToEncodedURIComponent:function(e){return null==e?"":o._compress(e,6,function(e){return t.charAt(e)})},decompressFromEncodedURIComponent:function(e){return null==e?"":""==e?null:(e=e.replace(/ /g,"+"),o._decompress(e.length,32,function(n){return a(t,e.charAt(n))}))},compress:function(n){return o._compress(n,16,function(n){return e(n)})},_compress:function(e,n,t){if(null==e)return"";var i,a,o,r={},s={},u="",l="",c="",h=2,d=3,g=2,p=[],m=0,f=0;for(o=0;o<e.length;o+=1)if(u=e.charAt(o),Object.prototype.hasOwnProperty.call(r,u)||(r[u]=d++,s[u]=!0),l=c+u,Object.prototype.hasOwnProperty.call(r,l))c=l;else{if(Object.prototype.hasOwnProperty.call(s,c)){if(c.charCodeAt(0)<256){for(i=0;i<g;i++)m<<=1,f==n-1?(f=0,p.push(t(m)),m=0):f++;for(a=c.charCodeAt(0),i=0;i<8;i++)m=m<<1|1&a,f==n-1?(f=0,p.push(t(m)),m=0):f++,a>>=1}else{for(a=1,i=0;i<g;i++)m=m<<1|a,f==n-1?(f=0,p.push(t(m)),m=0):f++,a=0;for(a=c.charCodeAt(0),i=0;i<16;i++)m=m<<1|1&a,f==n-1?(f=0,p.push(t(m)),m=0):f++,a>>=1}0==--h&&(h=Math.pow(2,g),g++),delete s[c]}else for(a=r[c],i=0;i<g;i++)m=m<<1|1&a,f==n-1?(f=0,p.push(t(m)),m=0):f++,a>>=1;0==--h&&(h=Math.pow(2,g),g++),r[l]=d++,c=String(u)}if(""!==c){if(Object.prototype.hasOwnProperty.call(s,c)){if(c.charCodeAt(0)<256){for(i=0;i<g;i++)m<<=1,f==n-1?(f=0,p.push(t(m)),m=0):f++;for(a=c.charCodeAt(0),i=0;i<8;i++)m=m<<1|1&a,f==n-1?(f=0,p.push(t(m)),m=0):f++,a>>=1}else{for(a=1,i=0;i<g;i++)m=m<<1|a,f==n-1?(f=0,p.push(t(m)),m=0):f++,a=0;for(a=c.charCodeAt(0),i=0;i<16;i++)m=m<<1|1&a,f==n-1?(f=0,p.push(t(m)),m=0):f++,a>>=1}0==--h&&(h=Math.pow(2,g),g++),delete s[c]}else for(a=r[c],i=0;i<g;i++)m=m<<1|1&a,f==n-1?(f=0,p.push(t(m)),m=0):f++,a>>=1;0==--h&&(h=Math.pow(2,g),g++)}for(a=2,i=0;i<g;i++)m=m<<1|1&a,f==n-1?(f=0,p.push(t(m)),m=0):f++,a>>=1;for(;;){if(m<<=1,f==n-1){p.push(t(m));break}f++}return p.join("")},decompress:function(e){return null==e?"":""==e?null:o._decompress(e.length,32768,function(n){return e.charCodeAt(n)})},_decompress:function(n,t,i){var a,o,r,s,u,l,c,h=[],d=4,g=4,p=3,m="",f=[],v={val:i(0),position:t,index:1};for(a=0;a<3;a+=1)h[a]=a;for(r=0,u=Math.pow(2,2),l=1;l!=u;)s=v.val&v.position,v.position>>=1,0==v.position&&(v.position=t,v.val=i(v.index++)),r|=(s>0?1:0)*l,l<<=1;switch(r){case 0:for(r=0,u=Math.pow(2,8),l=1;l!=u;)s=v.val&v.position,v.position>>=1,0==v.position&&(v.position=t,v.val=i(v.index++)),r|=(s>0?1:0)*l,l<<=1;c=e(r);break;case 1:for(r=0,u=Math.pow(2,16),l=1;l!=u;)s=v.val&v.position,v.position>>=1,0==v.position&&(v.position=t,v.val=i(v.index++)),r|=(s>0?1:0)*l,l<<=1;c=e(r);break;case 2:return""}for(h[3]=c,o=c,f.push(c);;){if(v.index>n)return"";for(r=0,u=Math.pow(2,p),l=1;l!=u;)s=v.val&v.position,v.position>>=1,0==v.position&&(v.position=t,v.val=i(v.index++)),r|=(s>0?1:0)*l,l<<=1;switch(c=r){case 0:for(r=0,u=Math.pow(2,8),l=1;l!=u;)s=v.val&v.position,v.position>>=1,0==v.position&&(v.position=t,v.val=i(v.index++)),r|=(s>0?1:0)*l,l<<=1;h[g++]=e(r),c=g-1,d--;break;case 1:for(r=0,u=Math.pow(2,16),l=1;l!=u;)s=v.val&v.position,v.position>>=1,0==v.position&&(v.position=t,v.val=i(v.index++)),r|=(s>0?1:0)*l,l<<=1;h[g++]=e(r),c=g-1,d--;break;case 2:return f.join("")}if(0==d&&(d=Math.pow(2,p),p++),h[c])m=h[c];else{if(c!==g)return null;m=o+o.charAt(0)}f.push(m),h[g++]=o+m.charAt(0),o=m,0==--d&&(d=Math.pow(2,p),p++)}}};return o}(),null!=jy?jy.exports=Wy:"undefined"!=typeof angular&&null!=angular&&angular.module("LZString",[]).factory("LZString",function(){return Wy}
1)),Ky.exports);const zy=async(e,n)=>{if(y("[compress] Compressing..."),"string"==typeof e&&e.length)try{return e=Uy.compressToUTF16(e)}catch(t){console.warn("[compress] Failed to compress string with LZString",t)}return y("[compress] ... skipped!"),e},$y=async(e,n,t=!1)=>{if(y("[decompress] Decompressing..."),"string"==typeof e&&e.length){let n=null;try{if(n=Uy.decompressFromUTF16(e),t)try{JSON.parse(n)}catch{return console.warn("Failed to parse the decompressed savegame. Returning the original string instead!"),e}return n}catch(i){console.warn("[decompress] Failed to decompress string with LZString",i)}}return y("[decompress] ... skipped!"),e},Vy="gi-xsolla-pending-purchase",qy=async(e,n,t,i,o)=>{var r;const s=`${Vy}-${n}`;a.log(`[iap][xsolla] store pending purchase ('${s}')`);const u={uid:e,paymentId:i,famobiPaymentToken:n,isSandbox:t,timestamp:(new Date).toISOString()},l=await zy(JSON.stringify(u)).catch(e=>{throw e});if(null===l)throw new Error("[iap][xsolla] could not save the pending purchase.");null==(r=null==window?void 0:window.localStorage)||r.setItem(s,l)},eb=async(e,n)=>{const t=`${Vy}-${e}`;a.log(`removeItem('${t}')`),window.localStorage.removeItem(t)},nb={providers:new Map,onEventCallback:null,queuedEvents:[],deliveredPurchaseKeys:new Set,providerRestoreFingerprints:new Map,authRestoreListenerAttached:!1},tb=e=>({type:"PURCHASE_SUCCESS_EVENT",detail:{sku:e.sku,purchase:e}}),ib=(e,n)=>{const t="PURCHASE_SUCCESS_EVENT"===n.type?(e=>{const n=e.detail.purchase;return"number"==typeof(null==n?void 0:n.paymentId)&&Number.isFinite(n.paymentId)?`payment:${n.paymentId}`:"string"==typeof(null==n?void 0:n.famobiPaymentToken)&&n.famobiPaymentToken.length>0?`token:${n.famobiPaymentToken}`:"string"==typeof(null==n?void 0:n.token)&&n.token.length>0?`token:${n.token}`:"string"==typeof(null==n?void 0:n.sku)&&n.sku.length>0?`sku:${n.sku}`:"string"==typeof e.detail.sku&&e.detail.sku.length>0?`sku:${e.detail.sku}`:null})(n):null;if(t&&nb.deliveredPurchaseKeys.has(t))return!0;try{return e(n),t&&nb.deliveredPurchaseKeys.add(t),!0}catch(i){return a.warn("[iap][restore] event callback failed",i),!1}},ab=e=>{a.log("[iap][restore] dispatch event"),"function"!=typeof nb.onEventCallback?nb.queuedEvents.push(e):ib(nb.onEventCallback,e)||nb.queuedEvents.push(e)},ob=async e=>{if(!e.getRestoreFingerprint||!e.getRestorablePurchases)return;const n=await e.getRestoreFingerprint();if(!n)return void nb.providerRestoreFingerprints.delete(e.id);if(nb.providerRestoreFingerprints.get(e.id)===n)return;const t=await e.getRestorablePurchases();for(const i of t)ab(tb(i));nb.providerRestoreFingerprints.set(e.id,n)},rb=async()=>{for(const e of nb.providers.values())await ob(e)},sb=()=>{nb.authRestoreListenerAttached||(nb.authRestoreListenerAttached=!0,xw(e=>{if("ready"!==e.status||!1!==e.isAnonymous||!e.userId)return nb.deliveredPurchaseKeys=new Set,void nb.providerRestoreFingerprints.clear();rb().catch(e=>{a.warn("[iap][restore] replaying cloud purchases failed",e)})}))},ub=async e=>{if(!e.getPendingPurchases)return;const n=await e.getPendingPurchases();for(const t of n)ab(tb(t))},lb=e=>{nb.onEventCallback=e,(()=>{if("function"==typeof nb.onEventCallback&&nb.queuedEvents.length)for(;nb.queuedEvents.length;){const e=nb.queuedEvents[0];if(!e||!ib(nb.onEventCallback,e))return;nb.queuedEvents.shift()}})(),(async()=>{for(const e of nb.providers.values())await ub(e)})().catch(e=>{a.warn("[iap][restore] replaying pending purchases failed",e)}),rb().catch(e=>{a.warn("[iap][restore] replaying restored purchases failed",e)})},cb=async e=>{var n,t;e=e||Dy(),a.log(`[iap][xsolla] getting pending purchases (uid: '${e}')...`);const i=await(async()=>{const e=[];let n,t;return Object.keys(localStorage).filter(e=>e.startsWith(`${Vy}
1`)).forEach(async i=>{var a;t=await $y(null==(a=null==window?void 0:window.localStorage)?void 0:a.getItem(i)),null!==t&&t.length&&(n=JSON.parse(t),e.push(n))}),e})();if(!i.length)throw new Error("[iap][xsolla] No stored pending purchases found.");i.sort((e,n)=>+new Date(n.timestamp)-+new Date(e.timestamp));const o=i[0];if(!(null==(n=null==o?void 0:o.uid)?void 0:n.length)||!(null==(t=null==o?void 0:o.famobiPaymentToken)?void 0:t.length))throw new Error("[iap][xsolla] stored pending purchase is invalid.");const r=await fetch((()=>{var e,n;return`${(null==(n=null==(e=p.get().iap)?void 0:e.xsolla)?void 0:n.endpoint)||_y}/getPendingPurchase`})(),{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({sandbox:!!o.isSandbox,uid:o.uid,famobiPaymentToken:o.famobiPaymentToken})});if(!r.ok)throw await eb(o.famobiPaymentToken).catch(e=>{a.warn("[iap][xsolla] error: ",e)}),new Error(`http error! status: ${r.status}`);const s=await r.json();if("ERROR"===s.code&&"TOO_MANY_REQUESTS"===s.message&&(a.warn(`[iap][xsolla] too many requests: removing stored pending purchase ('${o.famobiPaymentToken}')`),await eb(o.famobiPaymentToken)),void 0===s.sku||"undefined"===s.paymentId)throw new Error("[iap][xsolla] pending purchase is invalid.");return{sku:s.sku,paymentId:s.paymentId,famobiPaymentToken:o.famobiPaymentToken}};let hb=!1;const db=()=>{var e;hb||(hb=!0,e={id:"xsolla",getPendingPurchases:async()=>{const e=await cb().catch(()=>{});return e?[e]:[]},getRestoreFingerprint:Cy,getRestorablePurchases:Sy},nb.providers.set(e.id,e),sb())},gb=e=>{ae()&&ab(e)},pb=async e=>{const n=await(async e=>(await Ny()).find(n=>n.sku===e)||null)(e);return n?{title:n.name,description:n.description,price:{amount:n.price.amount,currency:n.price.currency,displayPrice:`${n.price.amount} ${n.price.currency}`}}:null},mb=async(e,n,t=!0)=>{var i,o;if(!ae())return void a.log(`[iap][xsolla] buy product skipped because IAP feature is disabled (sku: ${e})`);a.log(`[iap][xsolla] buy product (sku: ${e}...)`),t&&re();const r=Math.random().toString(36).substring(2,10);try{const n=null==(o=null==(i=p.get().iap)?void 0:i.xsolla)?void 0:o.projectId;if(void 0===n)throw new Error("invalid projectId");const t=((e,n,t)=>{var i,a,o;const r=Dy();return{packageId:n,sandbox:!!(null==(a=null==(i=p.get().iap)?void 0:i.xsolla)?void 0:a.isSandbox),token:r,gameId:p.get().gameId||p.get().gameIdOnPortal||"unknown",projectId:e,uid:r,aid:(null==(o=window.famobi)?void 0:o.config.aid)||g.get().name,famobiPaymentToken:t||Math.random().toString(36).substring(2,10),payload:JSON.stringify({})}})(n,e,r),s=await My(t).catch(e=>{throw e});await qy(t.uid,t.famobiPaymentToken,t.sandbox).catch(e=>{throw e});const u=await Gy(n,e,s).catch(e=>{throw e}),l=await(e=>"mobile"===Zy()?Xy(e):Hy(e))(u).catch(e=>{throw e});if(void 0===l||!l.result||!l.paymentId)throw new Error("invalid xsolla shop result");await qy(t.uid,t.famobiPaymentToken,t.sandbox,l.paymentId).catch(e=>{a.warn("[iap][xsolla] error:",e)}),gb({type:"PURCHASE_SUCCESS_EVENT",detail:{sku:e,purchase:{token:u,paymentId:l.paymentId,sku:e,famobiPaymentToken:t.famobiPaymentToken}}}),(async()=>{const n=await pb(e).catch(e=>(a.warn("[iap][xsolla] could not resolve product catalog snapshot",e),null));await Yy({sku:e,status:"purchased",paymentId:l.paymentId,famobiPaymentToken:t.famobiPaymentToken,catalog:n,purchasedAt:Date.now()}).catch(e=>(a.warn("[iap][xsolla] cloud IAP purchase sync failed",e),!1))})()}catch(s){throw await eb(r),gb({type:"PURCHASE_FAIL_EVENT",detail:{sku:e}}),s}finally{t&&(a.log("[intern] hideBlockingLoader()"),oe&&(oe.style.opacity="0",oe.style.pointerEvents="none",setTimeout(()=>{oe&&(oe.style.display="none")},200)))}},fb=h({savegame:{},savegameUpdatedAt:0,savegameVersion:1,savegameLevel:null}),vb=async e=>{if(!ae())return void a.log(`[iap][xsolla] consume skipped because IAP feature is disabled (sku: ${e.sku})`);a.log(`[iap][xsolla] consume product (sku: ${e.sku})...`);const n=JSON.stringify(fb.get().savegame||{});a.log("[iap][xsolla] current savegame retrieved.");const t=await fetch(`${(null==(o=null==(i=p.get().iap)?void 0:i.xsolla)?void 0:o.endpoint)||_y}/updatePaymentGameState`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({paymentId:e.paymentId,gameState:n})});var i,o;if(!t.ok)throw new Error(`http error! status: ${t.status}`);const r=await t.json();a.log("[iap][xsolla] payment payload updated:",r),Yy({sku:e.sku,status:"consumed",paymentId:e.paymentId,famobiPaymentToken:e.famobiPaymentToken,consumedAt:Date.now()}).catch(e=>(a.warn("[iap][xsolla] cloud IAP consume sync failed",e),!1)),void 0!==e.famobiPaymentToken&&await eb(e.famobiPaymentToken).c
1atch(e=>{a.warn("[iap][xsolla] error: ",e)})},wb="__gameInterfaceEnvelope",yb=new Set([wb,"data","updatedAt","version","level"]),bb=e=>Boolean(e)&&"object"==typeof e&&!Array.isArray(e),Sb=e=>bb(e)?e:{},Cb=e=>({__gameInterfaceEnvelope:!0,data:e.data,updatedAt:e.updatedAt,version:e.version,level:"number"==typeof e.level&&Number.isInteger(e.level)?e.level:null}),Lb=e=>(e=>{if(!bb(e))return!1;const n=Object.keys(e);return!(n.length<4||n.length>yb.size)&&!!n.every(e=>yb.has(e))&&!0===e[wb]&&bb(e.data)&&"number"==typeof e.updatedAt&&Number.isFinite(e.updatedAt)&&e.updatedAt>=0&&"number"==typeof e.version&&Number.isFinite(e.version)&&e.version>0&&(!("level"in e)||null===e.level||"number"==typeof e.level&&Number.isFinite(e.level))})(e)?{data:e.data,updatedAt:e.updatedAt,version:e.version,level:"number"==typeof e.level&&Number.isInteger(e.level)?e.level:null}:{data:Sb(e),updatedAt:0,version:1,level:null},Tb=e=>e.updatedAt>0||Object.keys(e.data).length>0,Eb=e=>Array.isArray(e)?e.map(e=>Eb(e)):bb(e)?Object.keys(e).sort().reduce((n,t)=>(n[t]=Eb(e[t]),n),{}):e,kb=(e,n)=>JSON.stringify(Eb(e.data))===JSON.stringify(Eb(n.data)),Db=()=>{var e,n;const t=null==(n=null==(e=p.get().auth)?void 0:e.cloudSave)?void 0:n.debounceMs;return"number"==typeof t&&Number.isFinite(t)&&t>=0?t:2e3},xb=()=>{var e,n;return!0===(null==(n=null==(e=p.get().auth)?void 0:e.cloudSave)?void 0:n.enabled)};let Ab=!1,Yb=null,_b=null,Ib=null;const Pb=()=>{if(!xb()||!1===(null==(n=null==(e=p.get().auth)?void 0:e.cloudSave)?void 0:n.autoSync))return;var e,n;const t=Tw();"ready"===t.status&&!1===t.isAnonymous&&t.userId&&(Ib&&clearTimeout(Ib),Ib=setTimeout(async()=>{Ib=null;try{await ty(Rb())}catch(e){b("Error syncing cloud save:",e)}},Db()))},Nb=()=>{Yb&&(clearTimeout(Yb),Yb=null)},Mb=()=>(_b||(_b=Zb().catch(e=>{throw b("Error saving savegame:",e),e}).finally(()=>{_b=null})),_b),Zb=async()=>{for(;Ab;){Ab=!1;const{storagePrefix:n="famobi",storageKey:t="savegame",shouldCompress:i}=fb.get(),a=`${n}:${t}`,{storage:o}=g.get(),r=Rb(),s=JSON.stringify(Cb(r)),u=(i?await zy(s):s)??s;if(u)try{(null==o?void 0:o.setItem)?(y(`Flushing savegame to Portal: ${a}`),await o.setItem(a,u)):(y(`Flushing savegame to localStorage: ${a}`),window.localStorage.setItem(a,u))}catch(e){throw Ab=!0,e}}},Jb=e=>"number"==typeof e&&Number.isInteger(e)?e:null,Bb=()=>{const e=Jb(mv.get().level);return null!==e?e:Jb(fb.get().savegameLevel)},Rb=()=>{const{savegame:e,savegameUpdatedAt:n,savegameVersion:t,savegameLevel:i}=fb.get();return{data:Sb(e),updatedAt:"number"==typeof n?n:0,version:"number"==typeof t&&t>0?t:1,level:Jb(i)}},Fb=(e,n)=>{fb.set({savegame:e.data,savegameUpdatedAt:e.updatedAt,savegameVersion:e.version,savegameLevel:Jb(e.level)},{mode:"override"}),(null==n?void 0:n.persist)&&(()=>{var e;let n=fb.get().flushDelay||0;n=n<1e3?1e3*n:n;const t=(null==(e=g.get().storage)?void 0:e.flushMode)??"deferred";if(Ab=!0,Pb(),!_b)n<=0&&"immediate"===t?(Nb(),Mb().catch(()=>{})):Yb||(Yb=setTimeout(()=>{Yb=null,Mb().catch(()=>{})},n))})()},Xb=async()=>{Nb(),_b&&await _b,Ab&&await Mb()},Hb="data-game-interface-save-restored-template";let Gb=!1;const Ob=()=>{const e=qf().saveRestored;return hv({title:e.title,message:e.message,iconHtml:'\n <svg viewBox="0 0 64 64" class="save-icon-svg" xmlns="http://www.w3.org/2000/svg">\n <path\n d="M22 46h20c6.6 0 12-5.1 12-11.5S48.6 23 42 23h-1.1C39.3 17.8 34.7 14 29.3 14c-6.2 0-11.4 4.9-11.9 11.1C12.1 26 8 30.5 8 36c0 5.5 4.5 10 10 10h4"\n fill="none"\n stroke="currentColor"\n stroke-width="4"\n stroke-linecap="round"\n stroke-linejoin="round"\n />\n <path d="M32 27v13" fill="none" stroke="currentColor" stroke-width="4" stroke-linecap="round" />\n <path\n d="M25 33l7 7 7-7"\n fill="none"\n stroke="currentColor"\n stroke-width="4"\n stroke-linecap="round"\n stroke-linejoin="round"\n />\n </svg>\n',contentHtml:`\n <div class="save-restored-panel">\n <h2 class="save-restored-title">${av(e.panelTitle)}</h2>\n <p class="save-restored-copy">\n <span class="save-restored-spinner" aria-hidden="true"></span>\n ${av(e.panelMessage)}\n </p>\n </div>\n `,actionsHtml:""})},Qb=async()=>{rv(),Gb||(nv("\n .game-interface-auth-connect-container .save-restored-panel {\n margin: 4px 0 8px;\n padding: 18px 18px 16px;\n text-align: left;\n background: rgba(16, 185, 129, 0.12);\n border: 1px solid rgba(16, 185, 129, 0.22);\n border-radius: 18px;\n color: #166534;\n box-shadow: 0 10px 24px rgba(22, 101, 52, 0.08);\n }\n\n .game-interface-auth-connect-container[data-theme='dark'] .save-restored-panel {\n background: rgba(16, 185, 129, 0.18);\n border-color: rgba(74, 222, 128, 0.24);\n color: #dcfce7;\n box-shadow: 0 12px 28px rgba(0, 0, 0, 0.2);\n }\n\n .game-interface-auth-connect-container .save-restored-title {\n margin: 0 0 8px;\n font-size: 18px;\n font-weight: 900;\n color: inherit;\n }\n\n .game-interface-auth-connect-container .save-restored-copy {\n margin: 0;\n font-size: 15px;\n line-height: 1.45;\n color: inherit;\n }\n\n .game-interface-auth-connect-container .save-restored-spinner {\n display: inline-flex;\n width: 18px;\n height: 18px;\n margin-right: 10px;\n vertical-align: text-bottom;\n border: 2px solid currentColor;\n border-right-color: transparent;\n border-radius: 999px;\n animation: game-interface-save-restored-spin 0.8s linear infinite;\n }\n\n @keyframes game-interface-save-restored-spin {\n from {\n transform: rotate(0deg);\n }\n to {\n transform: rotate(360deg);\n }\n }\n\n @media (max-width: 420px) {\n .game-interface-auth-connect-container .save-restored-panel {\n padding: 16px;\n border-radius: 16px;\n }\n\n .game-interface-auth-connect-container .save-restored-title {\n font-size: 17px;\n }\n }\n",{[Hb]:"true"}),Gb=!0),await Mf.fire({html:Ob(),showConfirmButton:!1,showCancelButton:!1,allowOutsideClick:!1,allowEscapeKey:!1,timer:1200,customClass:ov,didOpen:e=>{dv(e)}})},Kb="data-game-interface-save-conflict-template";let jb=!1;const Wb=e=>`\n <button class="save-conflict-card" type="button" data-save-conflict-choice="${e.choiceValue}" data-selected="false">
1\n <span class="save-conflict-card-header">\n <span class="save-conflict-card-title">${av(e.title)}</span>\n <span class="save-conflict-card-header-right">\n <span class="save-conflict-badge ${av(e.badgeClassName)}">${av(e.badgeLabel)}</span>\n <span class="save-conflict-check">\n <svg viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg" aria-hidden="true">\n <path\n d="M3.4 8.2l2.8 2.8 6-6"\n fill="none"\n stroke="currentColor"\n stroke-width="2"\n stroke-linecap="round"\n stroke-linejoin="round"\n />\n </svg>\n</span>\n </span>\n </span>\n <span class="save-conflict-meta">\n <span class="save-conflict-meta-row">\n <span class="save-conflict-meta-label">${av(e.progressTitle)}</span>\n <span class="save-conflict-meta-value">${av(e.progressLabel)}</span>\n </span>\n <span class="save-conflict-meta-row">\n <span class="save-conflict-meta-label">${av(e.updatedTitle)}</span>\n <span class="save-conflict-meta-value">${av(e.updatedAtLabel)}</span>\n </span>\n </span>\n </button>\n `,Ub=e=>{const n=qf().saveConflict,t=`<div class="save-conflict-alert"><strong>${av(n.warningLabel)}</strong> ${av(n.warningMessage)}</div>`;return hv({title:n.title,message:n.message,iconHtml:"",contentHtml:`\n <div class="save-conflict-comparison">\n ${Wb({choiceValue:"local",title:n.localTitle,badgeLabel:n.localBadge,badgeClassName:"device",progressTitle:n.progressLabel,updatedTitle:n.updatedLabel,progressLabel:e.localSummary.progressLabel,updatedAtLabel:e.localSummary.updatedAtLabel})}\n ${Wb({choiceValue:"remote",title:n.remoteTitle,badgeLabel:n.remoteBadge,badgeClassName:"cloud",progressTitle:n.progressLabel,updatedTitle:n.updatedLabel,progressLabel:e.remoteSummary.progressLabel,updatedAtLabel:e.remoteSummary.updatedAtLabel})}\n </div>\n <div class="save-conflict-alerts" data-save-conflict-alerts data-visible="false">${t}</div>\n `,actionsHtml:`\n <button class="primary-button save-conflict-confirm" type="button" data-save-conflict-action="confirm" disabled>\n <span class="button-label">${av(n.confirmButtonText)}</span>\n </button>\n `})},zb=async e=>{rv(),jb||(nv("\n .game-interface-auth-connect-container .save-conflict-comparison {\n display: grid;\n gap: 10px;\n margin: 4px 0 16px;\n text-align: left;\n }\n\n .game-interface-auth-connect-container .save-conflict-card {\n position: relative;\n display: block;\n width: 100%;\n padding: 14px 14px 12px;\n text-align: left;\n font: inherit;\n background: rgba(255, 255, 255, 0.84);\n border: 1px solid rgba(0, 163, 224, 0.14);\n border-radius: 18px;\n box-shadow: 0 8px 18px rgba(34, 40, 49, 0.08);\n cursor: pointer;\n transition:\n transform 120ms ease,\n border-color 120ms ease,\n box-shadow 120ms ease,\n background 120ms ease;\n }\n\n .game-interface-auth-connect-container .save-conflict-card:hover {\n transform: translateY(-1px);\n border-color: rgba(0, 163, 224, 0.3);\n box-shadow: 0 12px 24px rgba(34, 40, 49, 0.12);\n }\n\n .game-interface-auth-connect-container .save-conflict-card:focus-visible {\n outline: 3px solid rgba(0, 163, 224, 0.28);\n outline-offset: 2px;\n }\n\n .game-interface-auth-connect-container .save-conflict-card[data-selected='true'] {\n border-color: rgba(0, 163, 224, 0.5);\n box-shadow:\n 0 0 0 3px rgba(0, 163, 224, 0.12),\n 0 12px 24px rgba(34, 40, 49, 0.12);\n background: rgba(0, 163, 224, 0.08);\n }\n\n .game-interface-auth-connect-container[data-theme='dark'] .save-conflict-card {\n background: rgba(17, 24, 39, 0.82);\n border-color: rgba(148, 163, 184, 0.18);\n box-shadow: 0 10px 22px rgba(0, 0, 0, 0.22);\n }\n\n .game-interface-auth-connect-container .save-conflict-card-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 12px;\n margin-bottom: 10px;\n }\n\n .game-interface-auth-connect-container .save-conflict-card-title {\n margin: 0;\n font-size: 17px;\n font-weight: 900;\n color: var(--famobi-dark);\n }\n\n .game-interface-auth-connect-container .save-conflict-card-header-right {\n display: inline-flex;
1\n align-items: center;\n gap: 8px;\n }\n\n .game-interface-auth-connect-container .save-conflict-badge {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n min-height: 24px;\n padding: 0 8px;\n color: #ffffff;\n background: var(--famobi-blue);\n border-radius: 999px;\n font-size: 11px;\n font-weight: 800;\n letter-spacing: 0.04em;\n text-transform: uppercase;\n white-space: nowrap;\n }\n\n .game-interface-auth-connect-container .save-conflict-badge.device {\n background: #222831;\n }\n\n .game-interface-auth-connect-container[data-theme='dark'] .save-conflict-badge.device {\n color: #111827;\n background: #f7fafc;\n }\n\n .game-interface-auth-connect-container .save-conflict-meta {\n display: flex;\n flex-wrap: wrap;\n gap: 10px 14px;\n }\n\n .game-interface-auth-connect-container .save-conflict-meta-row {\n display: flex;\n flex: 1 1 160px;\n min-width: 0;\n flex-direction: column;\n gap: 4px;\n }\n\n .game-interface-auth-connect-container .save-conflict-meta-label {\n font-size: 12px;\n font-weight: 800;\n letter-spacing: 0.05em;\n text-transform: uppercase;\n color: var(--text-muted);\n }\n\n .game-interface-auth-connect-container .save-conflict-meta-value {\n font-size: 16px;\n font-weight: 800;\n color: var(--famobi-dark);\n }\n\n .game-interface-auth-connect-container .save-conflict-check {\n width: 24px;\n height: 24px;\n display: inline-flex;\n align-items: center;\n justify-content: center;\n color: #ffffff;\n background: rgba(0, 163, 224, 0.18);\n border: 2px solid rgba(0, 163, 224, 0.22);\n border-radius: 999px;\n box-sizing: border-box;\n transition:\n background 120ms ease,\n border-color 120ms ease,\n color 120ms ease,\n transform 120ms ease;\n }\n\n .game-interface-auth-connect-container .save-conflict-card[data-selected='true'] .save-conflict-check {\n background: var(--famobi-blue);\n border-color: var(--famobi-blue);\n transform: scale(1.04);\n }\n\n .game-interface-auth-connect-container .save-conflict-check svg {\n width: 12px;\n height: 12px;\n opacity: 0;\n transition: opacity 120ms ease;\n }\n\n .game-interface-auth-connect-container .save-conflict-card[data-selected='true'] .save-conflict-check svg {\n opacity: 1;\n }\n\n .game-interface-auth-connect-container .save-conflict-alerts {\n display: grid;\n gap: 10px;\n margin: 0 0 16px;\n }\n\n .game-interface-auth-connect-container .save-conflict-alerts[data-visible='false'] {\n display: none;\n }\n\n .game-interface-auth-connect-container .save-conflict-alert {\n padding: 14px 16px;\n text-align: left;\n border-radius: 16px;\n background: rgba(255, 59, 48, 0.12);\n border: 1px solid rgba(220, 38, 38, 0.18);\n color: #991b1b;\n font-size: 15px;\n line-height: 1.4;\n }\n\n .game-interface-auth-connect-container[data-theme='dark'] .save-conflict-alert {\n background: rgba(127, 29, 29, 0.28);\n border-color: rgba(248, 113, 113, 0.24);\n color: #fecaca;\n }\n\n .game-interface-auth-connect-container .save-conflict-alert strong {\n display: inline-block;\n margin-right: 6px;\n }\n\n .game-interface-auth-connect-container .save-conflict-confirm {\n width: 100%;\n }\n\n .game-interface-auth-connect-container .save-conflict-confirm:disabled {\n cursor: not-allowed;\n opacity: 0.48;\n }\n\n @media (max-width: 420px) {\n .game-interface-auth-connect-container .save-conflict-comparison {\n gap: 8px;\n margin-bottom: 12px;\n }\n\n .game-interface-auth-connect-container .save-conflict-card {\n padding: 12px 12px 10px;\n border-radius: 16px;\n }\n\n .game-interface-auth-connect-container .save-conflict-card-title {\n font-size: 15px;\n }\n\n .game-interface-auth-connect-container .save-conflict-badge {\n min-height: 22px;\n padding: 0 7px;\n font-size: 11px;\n }\n\n .game-interface-auth-connect-container .save-conflict-meta-value {\n font-size: 14px;\n }\n\n .game-interface-auth-connect-container .save-conflict-alerts {\n gap: 8px;\n margin-bottom: 12px;\n }\n\n .game-interface-auth-connect-container .save-conflict-alert {\n padding: 12px 12px;\n border-radius: 14px;\n font-size: 14px;\n }\n }\n\n @media (max-height: 760px) {\n .game-interface-auth-connect-container .save-conflict-comparison {\n gap: 8px;\n margin-bottom: 12px;\n }\n\n .game-interface-auth-connect-container .save-conflict-card {\n padding: 12px 12px 10px;\n border-radius: 16px;\n }\n\n .game-interface-auth-connect-container .save-conflict-card-header {\n margin-bottom: 8px;\n }\n\n .game-interface-auth-connect-container .save-conflict-card-title {\n font-size: 15px;\n }\n\n .game-interface-auth-connect-container .save-conflict-meta {\n gap: 8px 12px;\n }\n\n .game-interface-auth-connect-container .save-conflict-meta-value {\n font-size: 14px;\n }\n\n .game-interface-auth-connect-container .save-conflict-alerts {\n gap: 8px;\n margin-bottom: 12px;\n }\n\n .game-interface-auth-connect-container .save-conflict-alert {\n padding: 12px 12px;\n border-radius: 14px;\n font-size: 14px;\n }\n }\n",{[Kb]:"true"}),jb=!0);let n="local",t=null;return await Mf.fire({html:Ub(e),showConfirmButton:!1,showCancelButton:!1,allowOutsideClick:!1,allowEscapeKey:!1,customClass:ov,didOpen:e=>{const i=e.querySelector('[data-save-conflict-action="confirm"]'),a=e.querySelector("[data-save-conflict-alerts]"),o=Array.from(e.querySelectorAll("[data-save-conflict-choice]"));dv(e);
1o.forEach(e=>{e.addEventListener("click",()=>{var r;r="remote"===e.dataset.saveConflictChoice?"remote":"local",t=r,n=r,o.forEach(e=>{const n=e.dataset.saveConflictChoice===r;e.dataset.selected=String(n)}),a&&(a.dataset.visible=String("remote"===r)),i&&(i.disabled=!1)})}),null==i||i.addEventListener("click",()=>{t&&Mf.close()})}}),n},$b=["level","currentLevel","maxLevel","stage"],Vb=(e,n=new WeakSet)=>{if("string"==typeof e){const t=e.trim();if(!t||"{"!==t[0]&&"["!==t[0])return null;try{return Vb(JSON.parse(t),n)}catch{return null}}if(!e||"object"!=typeof e)return null;if(n.has(e))return null;if(n.add(e),Array.isArray(e)){let t=null;for(const i of e){const e=Vb(i,n);"number"==typeof e&&Number.isFinite(e)&&(t=null===t?e:Math.max(t,e))}return t}const t=e;let i=null;for(const a of $b){const e=t[a];"number"==typeof e&&Number.isFinite(e)&&(i=null===i?e:Math.max(i,e))}for(const a of Object.values(t)){const e=Vb(a,n);"number"==typeof e&&Number.isFinite(e)&&(i=null===i?e:Math.max(i,e))}return i},qb=e=>"number"==typeof e.level&&Number.isInteger(e.level)?e.level:Vb(e.data),eS=e=>{const n=qb(e);return{progressLabel:null!==n?`Level ${n}`:"Progress unavailable",updatedAtLabel:e.updatedAt>0?new Date(e.updatedAt).toLocaleString():"Unknown"}},nS=e=>{if("string"==typeof e){const n=JSON.stringify(e.length>80?`${e.slice(0,77)}...`:e);return e.length>80?`${n} (${e.length} chars)`:n}if(Array.isArray(e))return`Array(${e.length})`;if(bb(e))return`Object(${Object.keys(e).length})`;const n=JSON.stringify(e);return"string"==typeof n?n:String(e)},tS=(e,n,t)=>{const i=t.get(e);if(null==i?void 0:i.has(n))return!0;const a=i??new WeakSet;return a.add(n),t.set(e,a),!1},iS=()=>{const{gameReadyAt:e,playerReadyAt:n}=mv.get();return null===e&&null===n},aS=(e,n)=>{const t=((e,n,t=8)=>{const i=[],a=new WeakMap,o=(e,n,r)=>{if(!(i.length>=t||Object.is(e,n)))if(Array.isArray(e)&&Array.isArray(n)){if(tS(e,n,a))return;e.length!==n.length&&i.push(`${r||"$"} length: ${e.length} !== ${n.length}`);for(let a=0;a<Math.max(e.length,n.length);a+=1)if(o(e[a],n[a],`${r||"$"}[${a}]`),i.length>=t)return}else{if(bb(e)&&bb(n)){if(tS(e,n,a))return;const s=Array.from(new Set([...Object.keys(e),...Object.keys(n)])).sort();for(const a of s)if(o(e[a],n[a],r?`${r}.${a}`:a),i.length>=t)return;return}i.push(`${r||"$"}: ${nS(e)} !== ${nS(n)}`)}};return o(e,n,""),i})(e.data,n.data);a.force("[storage] Cloud save conflict detected",{localUpdatedAt:e.updatedAt,remoteUpdatedAt:n.updatedAt,updatedAtDeltaMs:Math.abs(e.updatedAt-n.updatedAt),localLevel:e.level,remoteLevel:n.level,differingPaths:t})},oS=(e,n,t)=>{if(!0!==(null==t?void 0:t.isAutomatic)||!iS())return!1;if(e.updatedAt<=n.updatedAt)return!1;if(e.updatedAt-n.updatedAt>Math.max(5e3,Db()+2e3))return!1;const i=qb(e),a=qb(n);return null!==i&&null!==a&&i===a};let rS=!1,sS=null;const uS=async e=>{if(xb()&&Tb(e))try{await ty(e)}catch(n){b("Error syncing local save to cloud:",n)}},lS=async(e,n)=>{if(xb()&&Tb(e))try{await(async(e,n)=>{const t=await qw();if(!t)return!1;const i={savegame:e.data,savegameUpdatedAt:e.updatedAt,savegameVersion:e.version,gameVersion:p.get().version??null,level:"number"==typeof e.level&&Number.isInteger(e.level)?e.level:null,source:n,backedUpAt:Date.now()},a=tl(Iw());return await Bl(qu(a,"games",t.gameId,"users",t.userId),{gameVersion:p.get().version??null,oldSavegame:i},{merge:!0}),!0})(e,n)}catch(t){b("Error backing up savegame to cloud:",t)}},cS=async(e,n,t)=>{await(async e=>{Fb(e,{persist:!0}),await Xb()})(n),(!0===(null==t?void 0:t.forceReload)||((e,n,t)=>!0===t&&!kb(e,n))(e,n,null==t?void 0:t.reloadOnRemoteApply))&&await(async()=>{await Qb(),window.location.reload()})()},hS=()=>{rS||(rS=!0,xw(e=>{if("ready"!==e.status||!1!==e.isAnonymous||!e.userId)return void(sS=null);if(e.isOverlayVisible)return;if(!xb()||!1===(null==(t=null==(n=p.get().auth)?void 0:n.cloudSave)?void 0:t.autoRestore)||sS===e.userId)return;var n,t;sS=e.userId;const i=(()=>{const e=Aw.reloadAfterNextRestore;return Aw.reloadAfterNextRestore=!1,e})();dS({promptOnConflict:!0,reloadOnRemoteApply:i,isAutomatic:!0}).catch(e=>{b("Automatic cloud save restore failed:",e),sS=null})}))},dS=async(e={})=>
1{if(!xb())return!1;const n=Tw();if("ready"!==n.status||!1!==n.isAnonymous||!n.userId)return!1;try{const n=Rb(),t=await(async()=>{const e=await qw();if(!e)return null;const n=tl(Iw()),t=await Zl(qu(n,"games",e.gameId,"users",e.userId));if(!t.exists())return null;const i=t.data();return{gameId:e.gameId,userId:e.userId,savegame:"object"==typeof i.savegame&&i.savegame?i.savegame:{},savegameUpdatedAt:"number"==typeof i.savegameUpdatedAt&&Number.isFinite(i.savegameUpdatedAt)?i.savegameUpdatedAt:0,savegameVersion:"number"==typeof i.savegameVersion&&Number.isFinite(i.savegameVersion)?i.savegameVersion:1,gameVersion:"string"==typeof i.gameVersion?i.gameVersion:null,level:"number"==typeof i.level&&Number.isInteger(i.level)?i.level:null,oldSavegame:ny(i.oldSavegame),sdkName:"string"==typeof i.sdkName?i.sdkName:null,portal:"string"==typeof i.portal?i.portal:null,lastSeenAt:"number"==typeof i.lastSeenAt&&Number.isFinite(i.lastSeenAt)?i.lastSeenAt:0}})();if(!t)return await uS(n),!1;const i={data:Sb(t.savegame),updatedAt:t.savegameUpdatedAt,version:t.savegameVersion||1,level:"number"==typeof t.level&&Number.isInteger(t.level)?t.level:null};if(!Tb(i))return await uS(n),!1;if(!Tb(n))return await cS(n,i,e),!0;if(kb(n,i))return n.updatedAt>=i.updatedAt?(await uS(n),!1):(await cS(n,i,e),!0);if(oS(n,i,e))return a.force("[storage] Auto-resolving startup cloud conflict to local save",{localUpdatedAt:n.updatedAt,remoteUpdatedAt:i.updatedAt,updatedAtDeltaMs:n.updatedAt-i.updatedAt,localProgress:qb(n),remoteProgress:qb(i),isAutomatic:!0===e.isAutomatic,isDuringInitialCloudRestoreWindow:iS()}),await lS(i,"cloud"),await uS(n),!1;if(aS(n,i),!1!==e.promptOnConflict){const t=await(async(e,n)=>zb({localSummary:eS(e),remoteSummary:eS(n)}))(n,i);return"local"===t?(await lS(i,"cloud"),await uS(n),!1):(await lS(n,"local"),await cS(n,i,{...e,forceReload:!0}),!0)}return n.updatedAt>=i.updatedAt?(await uS(n),!1):(await cS(n,i,e),!0)}catch(t){return b("Error restoring cloud save:",t),!1}},gS=async()=>{var e,n,t;y("init storage...");const{gameId:i="{FAMOBI_GAMEID}"}=p.get();fb.set({storagePrefix:i});const{storagePrefix:a="famobi",storageKey:o="savegame",shouldCompress:r,indexedDBName:s}=fb.get(),u=`${a}:${o}`;let l={data:{},updatedAt:0,version:1,level:null};if(null==(e=g.get().storage)?void 0:e.getItem)try{let e=await(null==(t=null==(n=g.get().storage)?void 0:n.getItem)?void 0:t.call(n,u));r&&(e=await $y(e,0,!0)),l=Lb(e&&JSON.parse(e)||{}
1),y(`Loaded from Portal: ${u}`)}catch(c){b("Error loading Portal data:",c)}else{const e=window.localStorage.getItem(u),n=r?await $y(e,0,!0):e;if(n)try{l=Lb(JSON.parse(n))}catch{b("Error loading data:",n)}}if(!Tb(l)&&(null==s?void 0:s.length)){const e=await(async(e,n="keyvaluepairs")=>{const t=(await indexedDB.databases()).find(n=>n.name===e);return t&&t.name&&t.version?new Promise(e=>{const i=indexedDB.open(t.name,t.version);i.onerror=()=>{e(null)},i.onsuccess=t=>{const i=t.target.result;if(!Array.from(i.objectStoreNames).includes(n))return i.close(),void e(null);const a=i.transaction(n,"readonly").objectStore(n).getAll();a.onsuccess=()=>{i.close(),e("string"==typeof a.result[0]?a.result[0]:null)},a.onerror=()=>{i.close(),e(null)}}}):null})(s);if(null!==e)try{l=Lb(JSON.parse(e))}catch{l=Lb(e)}}Fb(l),hS(),window.addEventListener("visibilitychange",()=>{"hidden"===document.visibilityState&&Xb().catch(()=>{})}),window.addEventListener("beforeunload",()=>{Xb().catch(()=>{})})},pS=async(e,n)=>{if(!ae())return void a.log(`[iap][xsolla] redeem code skipped because IAP feature is disabled (code: '${e}')`);a.log(`[iap][xsolla] redeem code '${e}' (params: ${JSON.stringify(n||{})})...`);const t=await fetch(`${(null==(o=null==(i=p.get().iap)?void 0:i.xsolla)?void 0:o.endpoint)||_y}/redeemCode`,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({code:e,sandbox:!!(null==n?void 0:n.isSandbox)})});var i,o;if(!t.ok)throw new Error(`http error! status: ${t.status}`);const r=await t.json();if(r.success&&"string"==typeof r.gameState)return a.log("[iap][xsolla] game data received. overwrite existing savegame..."),(e=>{try{a.log("[storage] Overwriting existing savegame"),a.log("[storage] OLD:",fb.get().savegame||{}),a.log("[storage] NEW:",e);const n=Lb(JSON.parse(e));Fb(n,{persist:!0})}catch{throw new Error("overwriting savegame failed!")}})(r.gameState),a.warn("[iap][xsolla] reloading page..."),window.location.replace(window.location.href);throw new Error("invalid gameState")},mS=h({}),fS=async(e=[],n=!1)=>{if(!Array.isArray(e))return b("'files' is not of type 'array'");const t=(e||[]).length;if(t<=0)return;y(`Trying to load ${t} files`);const i=Date.now(),a=await vS(e.filter(e=>"function"!=typeof e));await wS(a),e.filter(e=>"function"==typeof e).forEach(e=>e()),y(t,"Files loaded (",Date.now()-i,"ms )")},vS=async(e=[])=>(await Promise.all(e.map(async e=>{if(y(`Download file: ${e}`),!e)return null;const n=CS(e);if("js"===n||"css"===n){const t=await fetch(e,{});if(!t.ok)throw new Error(`Failed to fetch: ${e}`);return{file:e,ext:n,content:await t.text()}}return null}))).filter(e=>null!==e),wS=async e=>{for(const n of e)n&&n.content?(y(`Load file: ${n.file}`),"js"===n.ext?await bS(n.content,n.file):"css"===n.ext&&await SS(n.content,n.file)):b("Could not load file")},yS=e=>{var n;const t=null==(n=document.querySelector("script[nonce]"))?void 0:n.getAttribute("nonce");return t&&e.setAttribute("nonce",t),e},bS=(e,n)=>new Promise((t,i)=>{const a=new Blob([e],{type:"text/javascript"}),o=URL.createObjectURL(a),r=yS(document.createElement("script"));r.src=o,r.async=!1,r.charset="utf-8",r.onload=()=>{URL.revokeObjectURL(o),t()},r.onerror=e=>{URL.revokeObjectURL(o),i(new Error(`Failed to load ${n||"blob script"}`))},document.head.appendChild(r)}),SS=(e,n)=>new Promise((t,i)=>{const a=new Blob([e],{type:"text/css"}),o=URL.createObjectURL(a),r=yS(document.createElement("link"));r.rel="stylesheet",r.href=o,r.onload=()=>{URL.revokeObjectURL(o),t()},r.onerror=()=>{URL.revokeObjectURL(o),i(new Error(`Failed to load CSS ${n||""}`))},document.head.appendChild(r)}),CS=e=>{var n;return(null==(n=e.split("?")[0].split("#")[0].split(".").pop())?void 0:n.toLowerCase())||null};const LS=e=>new Promise(n=>{setTimeout(n,e)});let TS=0,ES=Date.now(),kS=null,DS=!1,xS=!1;const AS=()=>TS,YS=()=>{xS=!1,a.log("[intern] Resume playtime tracking...")},_S="https://game-collector.famobi.com/collect";let IS=!1,PS=null,NS="",MS="",ZS="",JS=0,BS=null,RS=null,FS=null,XS=null,HS=null,GS=1e3,OS=!1,QS=!1;const KS=[],jS=()=>{var e;return!1!==(null==(e=p.get().analytics)?void 0:e.enabled)},WS=()=>
1{if("undefined"!=typeof crypto&&"function"==typeof crypto.randomUUID)return crypto.randomUUID();return`${Date.now().toString(16)}-${Math.random().toString(16).slice(2)}-${Math.random().toString(16).slice(2)}`},US=(e,n)=>{const t=((e,n)=>{try{return(null==e?void 0:e.getItem(n))??null}catch{return null}})(e,n);if(t)return t;const i=WS();return((e,n,t)=>{try{null==e||e.setItem(n,t)}catch{}})(e,n,i),i},zS=e=>e.replace(/([a-z0-9])([A-Z])/g,"$1_$2").replace(/[\s-]+/g,"_").toLowerCase(),$S=e=>{const n=(e=>{if("number"==typeof e&&Number.isFinite(e))return e;if("string"==typeof e&&e.trim().length){const n=Number(e);if(Number.isFinite(n))return n}return null})(e);return null===n?null:Math.round(n)},VS=(e,n)=>"webview"!==n||"android"!==e&&"ios"!==e?"web":e,qS=()=>{if("undefined"==typeof navigator)return null;const e=navigator.userAgent||"";return/ipad/i.test(e)||/tablet/i.test(e)?"tablet":/mobi|android|iphone|ipod/i.test(e)?"mobile":"desktop"},eC=()=>{const e=p.get(),n=Cw.get(),t=g.get().name,i=t&&"missing_sdk_name"!==t?t:"microsite",a="undefined"!=typeof window?window.location.href:null,o="undefined"!=typeof window?window.location.host:null,r=(e=>{if(!e)return null;try{return new URL(e).host}catch{return null}})("undefined"!=typeof document?document.referrer:""),s=e.locale||("undefined"!=typeof navigator?navigator.language:null),u=n.userId||e.userId||e.userid||null,l="boolean"==typeof n.isAnonymous?n.isAnonymous:!u,c=(()=>{if("undefined"==typeof navigator)return null;const e=navigator.userAgent||"";return/windows/i.test(e)?"windows":/android/i.test(e)?"android":/iphone|ipad|ipod/i.test(e)?"ios":/mac os x/i.test(e)?"macos":/linux/i.test(e)?"linux":null})(),h=(()=>
1{if("undefined"==typeof navigator)return null;const e=navigator.userAgent||"";return/edg/i.test(e)?"edge":/firefox/i.test(e)?"firefox":/chrome/i.test(e)&&!/edg|opr/i.test(e)?"chrome":/safari/i.test(e)&&!/chrome|crios|edg/i.test(e)?"safari":null})(),d=(()=>{var e,n;if("undefined"==typeof window||"undefined"==typeof navigator)return null;const t=navigator.userAgent||"",i=/iphone|ipad|ipod/i.test(t),a=/android/i.test(t);return void 0!==window.ReactNativeWebView||void 0!==window.NativeBridge||void 0!==window.WindowsGameBridge||void 0!==(null==(e=window.chrome)?void 0:e.webview)||void 0!==window.cordova||void 0!==window.Capacitor||void 0!==(null==(n=window.webkit)?void 0:n.messageHandlers)||a&&/\bwv\b/i.test(t)||i&&/applewebkit/i.test(t)&&!/safari/i.test(t)?"webview":"browser"})(),m=e.gameId||e.gameIdOnPortal||"unknown";"unknown"===m&&y("Analytics: missing game_id, using fallback 'unknown'.");const f=Boolean(e.dev)||Boolean(e.currentMock);return{game_id:m,platform:VS(c,d),session_id:NS,app_session_id:MS,portal:i,sdk_name:"eos-sdk",sdk_version:"6a5a4a7bcfdfb5ed800f25c1f8e405cf45640d44",game_version:e.version||null,build_env:f?"dev":"prod",is_dev:f,is_mocked:Boolean(e.currentMock),portal_game_id:e.gameIdOnPortal||null,page_url:a,page_host:o,host_domain:r,referrer_domain:r,language:s||null,user_id:u,anon_id:ZS||null,is_anonymous:l,os:c,browser:h,client_runtime:d,device_type:qS(),country:null}},nC=()=>{if(IS)return;IS=!0,PS=Date.now();const e="undefined"!=typeof window?window.sessionStorage:void 0,n="undefined"!=typeof window?window.localStorage:void 0;NS=US(e,"eos_sdk_session_id"),MS=WS(),ZS=US(n,"eos_sdk_anon_id"),JS=0,null===XS&&"undefined"!=typeof window&&(XS=window.setInterval(()=>{rC(!1)},5e3),window.addEventListener("visibilitychange",()=>{"hidden"===document.visibilityState&&rC(!0)}),window.addEventListener("pagehide",e=>{"persisted"in e&&!0===e.persisted||uC("pagehide"),rC(!0)}),window.addEventListener("beforeunload",()=>{uC("unload"),rC(!0)})),y("init analytics collector...")},tC=(e,n={})=>{KS.length>=100&&(KS.shift(),y("Analytics: queue full, dropping oldest event.")),KS.push(e),(n.flushNow??1)&&(KS.length>=25||"game_end"===e.event_name)&&rC(!1)},iC=()=>{null===HS&&"undefined"!=typeof window&&(HS=window.setTimeout(()=>{HS=null,rC(!1)},GS),GS=Math.min(2*GS,3e4))},aC=()=>{GS=1e3},oC=e=>{KS.unshift(...e),KS.length>100&&(KS.length=100)},rC=async e=>{if(0===KS.length)return;const n=!OS;if(!n&&!e)return;n&&(OS=!0);let t=[];try{if(e||await(async()=>{if(Kw())try{await Gw()}catch{}})(),0===KS.length)return;t=KS.splice(0,e?KS.length:25);const n={...eC(),events:t},a=JSON.stringify(n);if(p.get().analyticsDebug)return console.log("[analytics][debug] batch",n),void oC(t);if((e=>!!e&&"undefined"!=typeof navigator&&"function"==typeof navigator.sendBeacon)(e)){const e=new Blob([a],{type:"application/json"});if(navigator.sendBeacon(_S,e))return void aC()}const o=await fetch(_S,{method:"POST",headers:{"Content-Type":"application/json"},body:a,credentials:"omit",keepalive:e});o.ok?aC():(i=o.status)>=500||408===i||429===i?(oC(t),iC()):aC()}catch{t.length>0&&(oC(t),iC())}finally{n&&(OS=!1)}var i},sC=(e,n,t)=>{const i=Date.now(),a=zS(e),o=zS(t);let r=a;const s=new Set(["sdk_init","game_ready","game_start","game_end","game_pause","game_resume","audio_mute_changed","progress_updated","score_updated","ad_request","ad_impression","ad_result","iap_purchase_result","ui_action","custom_event","player_ready","game_finished","stage_start","stage_end"]);r="game_over"===o||"game_complete"===o||"game_quit"===o?"game_end":s.has(a)?a:s.has(o)?o:"custom_event";const u=(({eventName:e,runSessionId:n,stage:t})=>"game_start"===e&&n?"active_run_session":(e=>"game_end"===e||"stage_start"===e||"stage_end"===e)(e)&&!n?"missing_run_session":!(e=>"stage_start"===e||"stage_end"===e)(e)||"number"==typeof t&&Number.isFinite(t)&&Number.isInteger(t)?null:"invalid_stage")({eventName:r,runSessionId:BS,stage:n.stage??mv.get().stage});if("active_run_session"===u)return y("Analytics: ignored 'game_start' because a gameplay run is already active."),null;if("missing_run_session"===u)return y(`Analytics: ignored '${r}' without an active run_session_id.`),null;if("invalid_stage"===u)return y(`Analytics: ignored '${r}
1' with an invalid stage.`),null;if("score_updated"===r)return null;const l={event_id:WS(),event_name:r,event_ts:i,event_seq:++JS,run_session_id:BS};if("sdk_init"===r&&(l.time_since_init_ms=0),"game_ready"===r&&(l.time_since_init_ms=PS?Math.max(0,i-PS):null),"game_start"===r){(e=>{BS=WS(),RS=e,FS=AS()})(i),l.run_session_id=BS;const e=$S(n.level??mv.get().level);l.level=e;const t=mv.get().gameReadyAt;l.time_since_ready_ms=t?Math.max(0,i-t):null}if("game_end"===r){l.run_session_id=BS;const e=$S(n.level??mv.get().level);l.level=e;const t=$S(n.score_total??mv.get().score);l.score_total=t,l.duration_wall_ms=RS?Math.max(0,i-RS):null,l.playtime_active_ms=null!==FS?Math.max(0,Math.round(AS()-FS)):null,"string"==typeof n.end_reason?l.end_reason=n.end_reason:"game_over"===o?l.end_reason="over":"game_complete"===o?l.end_reason="complete":"game_quit"===o&&(l.end_reason="quit"),BS=null,RS=null,FS=null}let c=null;if("custom_event"===r&&(c="string"==typeof n.name?n.name:"custom_event"!==o?o:null,c&&(l.custom_name=c),"string"==typeof n.category&&(l.custom_category=n.category),void 0!==n.value)){const e=n.value;if("string"==typeof e||"number"==typeof e||"boolean"==typeof e||"bigint"==typeof e)l.custom_value=String(e);else try{l.custom_value=JSON.stringify(e)??Object.prototype.toString.call(e)}catch{l.custom_value=Object.prototype.toString.call(e)}}const h={...n};return"custom_event"===r&&c&&"string"!=typeof h.name&&(h.name=c),Object.keys(h).length>0&&(l.params_json=h),l},uC=e=>{if(!BS)return;const n=sC("game_end",{end_reason:"quit",quit_reason:e,synthetic_end:!0},"game_end");n&&tC(n,{flushNow:!1})},lC=(e,n={},t)=>{if(!jS())return;nC();let i=e,a=n,o=e||"";if(!i){const e=(()=>{var e,n;const t=null==(e=mv.get().history)?void 0:e.gameEvents;if(!(null==t?void 0:t.length))return null;const i=t[t.length-1],a={};return null==(n=i.params)||n.forEach(e=>{a[e.name]=e.value}),{name:i.name,params:a}})();if(!e)return;i=e.name,a=e.params,o=e.name}t&&(a=((e,n={})=>{const t={...e},i=mv.get(),a="number"==typeof t.level?t.level:"number"==typeof n.level?n.level:i.level,o="number"==typeof t.stage?t.stage:"number"==typeof n.stage?n.stage:i.stage;if(n.includeLevel&&"number"==typeof a&&(t.level=a),n.includeStage&&"number"==typeof o&&(t.stage=o),"number"==typeof t.stage&&(t.stage=t.stage/1e3+(a||0)),n.includeScore){const e=n.scoreKey??"score_total";if("number"!=typeof t[e]){const a="number"==typeof n.score?n.score:i.score;"number"==typeof a&&(t[e]=a)}}return t})(a,t));const r=sC(i,a,o);r&&tC(r)},cC=h({rewardedAdAvailable:!1,interstitialAdAvailable:!1,types:{preroll:{state:"off"},interstitial:{state:"off"},rewarded:{state:"off"},banner:{state:"off"}},callbacks:{onRewardedAdAvailabilityChange:void 0,onInterstitialAdAvailabilityChange:void 0,onOffsetChange:void 0},offsets:{top:0,bottom:0,left:0,right:0},skipValidation:{rewarded:!1,interstitial:!1,banner:!1,preroll:!1}}),hC="off",dC="idle",gC="preloading",pC="ready",mC="playing",fC="closed",vC=(e="",n="")=>{const t=["preroll","start","pause","resume","quit","browse","next","break"],i="string"==typeof n?n.toLowerCase():"";if(t.includes(i))return i;const a="string"==typeof e?e.toLowerCase():"";if(!a)return"browse";const o=a.split(":");if("break"===o[0])return"break";const r=o[o.length-1];return t.includes(r)?r:"browse"},wC={init:{once:!0,next:["gameReady"]},gameReady:{once:!0,next:["playerReady","stageStart","gameStart"]},playerReady:{once:!0,next:["stageStart","gameStart"]},gameStart:{next:["stageStart","gameEnd"]},gameEnd:{next:["gameStart","gameFinished"]},stageStart:{next:["stageEnd","gameEnd"]},stageEnd:{next:["stageStart","gameStart","gameEnd"]},gameFinished:{once:!0,next:[]}},yC=[],bC={isStarted:!1,isPaused:!1,isExternalPaused:{ad:!1,browser:!1,external:!1}};let SC=null;const CC=(e,n)=>{"function"==typeof n&&mv.set({callbacks:{[e]:n}})},LC=(e=!0,n=!1,t="unknown",i=!1)=>{var o,r;a.log(`[intern] setMute(${e}, ${n}, '${t}', ${i})...`);const{isMuted:s,userMutePref:u,callbacks:l}=mv.get();let c=e;n?(c=e||u,mv.set({isMuted:c})):mv.set({isMuted:c,userMutePref:c}),(s!==c||i)&&(lC("audio_mute_changed",{is_muted:c,mute_trigger:t}),null==(o=l.onAudioStateChange)||o.call(l,c,n),null==(r=l.onMuteStateChange)||r.call(l,c,n))},TC=(e=!0,n=!1)=>{var t;a.log(`[intern] setPause(${e}, ${n})...`);const{isPaused:i,userPausePref:o,callbacks:r}=mv.get();let s=i;
1if(n?(s=e||o,s!==i&&mv.set({isPaused:s})):(s=e,mv.set({isPaused:s,userPausePref:s})),kC("setPause",[{name:"isAdTriggered",value:n},{name:"isPaused",value:s}]),s!==i){const e={pause_reason:n?"ad":"user"};if(s)SC=Date.now(),lC("game_pause",e,{includeLevel:!0});else{const n=SC?Date.now()-SC:null;SC=null;const t={...e};null!==n&&(t.pause_duration_ms=n),lC("game_resume",t,{includeLevel:!0})}null==(t=r.onPauseStateChange)||t.call(r,s,n)}};function EC(e,n){var t;const i=(null==(t=mv.get().history)?void 0:t.gameEvents)||[];i.push({name:e,params:n}),mv.set({history:{gameEvents:i}}),kC(e,n);const a={eventName:e,data:n};document.dispatchEvent(new CustomEvent("gameevent",{detail:a})),document.dispatchEvent(new CustomEvent("gameevent ",{detail:a})),VC("game-event",{eventName:e}),(async e=>{var n;if(!(e in wC))return!0;if(yC.push(e),wC[e].once&&yC.filter(n=>n===e).length>1)return VC("invalid-game-event",{error:"INVALID_GAME_EVENT",message:`Event '${e}' can only be called once!`}),!1;if(yC.length>1){const t=yC[yC.length-2],i=(null==(n=wC[t])?void 0:n.next)??[];if(!i.includes(e))return VC("invalid-game-event",{error:"INVALID_GAME_EVENT",message:`Event '${e}' is not allowed after '${t}' - only the following events can follow: ${i.map(e=>`'${e}'`).join(", ")}`}),!1}})(e)}const kC=(e,n)=>{const t=mv.get().gameplayState,i=((e,n)=>{var t,i,a;const o=mv.get().gameplayState;switch(e){case"gameStart":case"stageStart":return bC.isStarted=!0,pv.ACTIVE;case"gameEnd":case"stageEnd":case"gameFinished":return bC.isStarted=!1,pv.TERMINATED;case"gamePause":return bC.isPaused=!0,pv.PAUSED;case"gameResume":return bC.isPaused=!1,pv.ACTIVE;case"visibilitychange":if(bC.isExternalPaused.browser=null==(t=null==n?void 0:n.find(e=>"hidden"===e.name))?void 0:t.value,bC.isStarted&&bC.isExternalPaused.browser)return pv.INTERRUPTED;break;case"setPause":{const e=null==(i=null==n?void 0:n.find(e=>"isAdTriggered"===e.name))?void 0:i.value;if(bC.isExternalPaused[e?"ad":"external"]=(null==(a=null==n?void 0:n.find(e=>"isPaused"===e.name))?void 0:a.value)||!1,bC.isStarted&&bC.isExternalPaused[e?"ad":"external"])return pv.INTERRUPTED;break}}return bC.isStarted&&Object.values(bC.isExternalPaused).every(e=>!1===e)?bC.isPaused?pv.PAUSED:pv.ACTIVE:o})(e,n);t!==i&&(mv.set({gameplayState:i}),a.log(`[game] gameplay state changed: ${i}`),document.dispatchEvent(new CustomEvent("gameplaystatechange",{detail:{state:i}})),VC("gameplaystatechange",{state:i}))},DC=e=>{var n,t;const i=JC("interstitial",e),a=(null==(t=(n=g.get()).isInterstitialAdAvailable)?void 0:t.call(n,e))??!0,o=i&&a;return S(`isInterstitialAdAvailable('${e}') -> ${o}`),o},xC=async(e,n)=>{var t,i;C(`track(${e}, ${JSON.stringify(n||{})})`),lC("custom_event",{name:e,data:n}),await(null==(i=(t=g.get()).track)?void 0:i.call(t,e,n))},AC=async(e,n)=>{C("showInterstitialAd",e,n),await xC("showInterstitialAd",{eventId:e,placementType:n,isInternal:!0}),await MC("interstitial",e,n)},YC="break:gameplay:internal",_C=(e,n=!1)=>{var t;const i=cC.get(),a=i.types[e],o=a.state===pC;if((a.wasReady||!1)!==o||n){a.wasReady=o,cC.set(i),o&&y(`[${e}] Ad is available.`);const n=p.get(),r=null==(t=null==n?void 0:n.ads)?void 0:t[e];if(!r)return;const{eventIds:s=[]}=r;"interstitial"===e?s.forEach(e=>{setTimeout(()=>{var n,t;null==(t=(n=i.callbacks).onInterstitialAdAvailabilityChange)||t.call(n,e,o)},50)}):"rewarded"===e&&s.forEach(e=>{setTimeout(()=>{var n,t;null==(t=(n=i.callbacks).onRewardedAdAvailabilityChange)||t.call(n,e,o)},50)})}},IC=async(e,n,t)=>{var i;const a=p.get(),o=cC.get();switch(o.types[e].state=n,cC.set(o),y(`[${e}] state changed to '${n}'`),n){case mC:a.ads.isAutoMuting&&(o.types[e].timeoutAutoMuting=setTimeout(()=>{y("auto-mute the game..."),LC(!0,!0)},500)),a.ads.isAutoPausing&&(o.types[e].timeoutAutoPausing=setTimeout(()=>{y("auto-pause the game..."),TC(!0,!0)},500)),cC.set(o);break;case fC:void 0!==t&&(o.types[e].lastCalled=t),cC.set(o),await LS((null==(i=a.ads[e])?void 0:i.timeout)??0),a.ads.isAutoPausing&&(y("auto-resume the game..."),clearTimeout(o.types[e].timeoutAutoPausing),TC(!1,!0)),a.ads.isAutoMuting&&(y("auto-unmute the game..."),clearTimeout(o.types[e].timeoutAutoMuting),LC(!1,!0));break;case dC:PC(e);break;case pC:o.types[e].isLandscape=window.innerWidth>window.innerHeight,cC.set(o)}},PC=async e=>{const n=p.get().ads[e];if(!(null==n?void 0:n.enabled))return;await LS(n.preload??0);cC.get().types[e].state===dC&&await NC(e,async()=>{var n,t;return await(null==(t=(n=g.get()).preloadAd)?void 0:t.call(n,e))??!0})},NC=async(e,n)=>{var t;const i=p.get(),a=cC.get().types[e];if(a&&a.state===dC){IC(e,gC);try{const t=await n(e);if(!1===t)throw new Error("Not preloaded by portal");if(void 0===t)return void IC(e,dC);IC(e,pC)}catch{y(`[${e}] preloading... FAILED`);const n=(null==(t=i.ads[e])?void 0:t.retry)??0,a=n>0?n:2e3;await LS(a),IC(e,dC)}}},MC=async(e,n,t)=>{var i;const{skipAdValidation:a=!1,showInterstitialAd:o,showRewardedAd:r}=g.get(),s=cC.get(),u=s.types[e];if(Object.values(s.types).some(e=>e.state===mC))return y(`[${e}] skipped [Another ad already playing]`),{isRewardGranted:!1};if(!a){if(!FC(n,e))return y(`[${e}] event '${n}' is blocked or not allowed.`),{isRewardGranted:!1};if(u.isLocked)return y(`[${e}] Ad is locked.`),{isRewardGranted:!1};if(u.state!==pC)return y(`[${e}] skipped (state: ${u.state})`),{isRewardGranted:!1};if(!BC(e))return y(`[${e}] skipped (cooldown)`),{isRewardGranted:!1};if(!RC(e))return y(`[${e}] skipped (passive cooldown)`),{isRewardGranted:!1}}const l=vC(n,t),c=Date.now();lC("ad_request",{ad_type:e,ad_event_key:n,ad_placement_type:l});try{IC(e,mC),y(`[${e}] showing ad (event: '${n}', placement: '${l}')`);let a=!1;return"interstitial"===e&&await(null==o?void 0:o(n,t)),"rewarded"===e&&(a=!!(null==(i=await(null==r?void 0:r(n)))?void 0:i.isRewardGranted)),await ZC(e,n,l,a,!0,Date.now()-c)}catch{return await ZC(e,n,l,!1,!1)}};async function ZC(e,n,t,i,a,o){if(a){const i={ad_type:e,ad_event_key:n,ad_placement_type:t};"number"==typeof o&&Number.isFinite(o)&&o>=0&&(i.ad_duration_ms=Math.round(o)),lC("ad_impression",i)}const r={ad_type:e,ad_event_key:n,ad_placement_type:t,ad_result:a?"rewarded"===e&&i?"completed":"closed":"failed"};return"rewarded"===e&&(r.reward_granted=i),a||(r.error_code="show_failed"),lC("ad_result",r),a?await IC(e,fC,Date.now()):await IC(e,fC),setTimeout(()=>{IC(e,dC)},250),{isRewardGranted:i}}const JC=(e,n="")=>{if(g.get().skipAdValidation)return!0;const t=cC.get();return!Object.values(t.types).some(e=>e.state===mC)&&(!!FC(n,e)&&(t.types[e].state===pC&&!0!==t.types[e].isLocked&&(!!BC(e,!0)&&!!RC(e,!0))))},BC=(e,n=!1)=>{const t=cC.get();if("interstitial"!==e)return!0;const i=t.types[e],{lastCalled:a}=i;if(!a)return!0;const o=XC(e);if(!o||o<=0)return!0;const r=o<1e3?1e3*o:o,s=Date.now()-a;return!(s<r)||(n||y(`[${e}] not cooled down yet. Needs ${r-s}ms more.`),!1)},RC=(e,n=!1)=>{var t,i;const a=cC.get(),o=p.get();if("interstitial"!==e)return!0;const r=(null==(i=null==(t=o.ads)?void 0:t.interstitial)?void 0:i.passiveCooldown)||0;if(r<=0)return!0;const{lastCalled:s}=a.types.rewarded;if(!s)return!0;const u=r<1e3?1e3*r:r,l=Date.now()-s;return!(l<u)||(n||y(`[${e}] not passive cooled down yet. Needs ${u-l}ms more.`),!1)},FC=(e,n)=>{var t;if(cC.get().skipValidation[n])return!0;const i=p.get(),a=null==(t=null==i?void 0:i.ads)?void 0:t[n];if(!a)return!1;const{eventIds:o=[]}=a;return o.includes(e)},XC=e=>{var n;if("interstitial"!==e)return 0;const t=p.get(),i=null==(n=null==t?void 0:t.ads)?void 0:n[e];if(!i)return 0;const a=t.ads[e],o=i.cooldown??(null==a?void 0:a.cooldown)??0;return o<1e3?1e3*o:o},HC=e=>{const n=cC.get();return Object.values(n.types).some(e=>e.state===mC)},GC=()=>{let e=window.innerWidth>window.innerHeight,n=0;window.addEventListener("resize",t=>{const i=window.innerWidth>window.innerHeight;clearTimeout(n),n=setTimeout(()=>{if(e!==i){e=i,S("orientation change detected "+(e?"landscape":"portrait"));const n=cC.get();
1Object.entries(n.types).forEach(([n,t])=>{t.isLandscape===e||t.state!==pC&&t.state!==gC||IC(n,dC)})}},500)})},OC=()=>{var e,n,t;if(!((null==(t=null==(n=null==(e=p.get())?void 0:e.ads)?void 0:n.interstitial)?void 0:t.eventIds)||[]).includes(YC))return;nv(".swal2-popup.adbreak-overlay-rounded{border-radius:20px!important;overflow:hidden;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}.swal2-popup.adbreak-overlay-rounded{box-shadow:0 10px 25px #0000002e}.swal2-popup,.swal2-title,.swal2-html-container{font-family:Arial,Helvetica,sans-serif!important}");let i=!1,a=null,o=null;document.addEventListener("gameplaystatechange",e=>{const n=e.detail;(null==n?void 0:n.state)===pv.ACTIVE?o=setInterval(()=>{a=setTimeout(async()=>{if(!i){if(i=!0,mv.get().gameplayState===pv.ACTIVE&&DC(YC)){let e=null;await Mf.fire({html:"An ad will start in <b></b> seconds...",timer:5e3,toast:!0,timerProgressBar:!0,position:"top",showConfirmButton:!1,background:"rgb(255, 255, 255, 0.9)",color:"#00000",didOpen:()=>{Mf.showLoading();const n=Mf.getPopup();if(n){const t=n.querySelector("b");t&&(e=setInterval(()=>{const e=Mf.getTimerLeft();e&&(t.textContent=`${Math.ceil(e/1e3)}`)},100))}},willClose(n){e&&clearInterval(e)},customClass:{popup:"adbreak-overlay-rounded"}}),await LS(500),mv.get().gameplayState===pv.ACTIVE&&await AC(YC,"break")}i=!1}},2e3)},1e3):mv.get().gameplayState!==pv.TERMINATED&&mv.get().gameplayState!==pv.UNKNOWN||(o&&clearInterval(o),a&&clearTimeout(a))})},QC={},KC=async()=>{if(!Boolean(QC.pendingGameFiles||QC.bootPromise))throw new Error("No prepared game is available to boot");return QC.bootPromise||(QC.bootPromise=(async()=>{const e=QC.pendingGameFiles||[];QC.pendingGameFiles=void 0,await fS(e)})()),QC.bootPromise};let jC={};const WC=[],UC=(e,n)=>{if(a.log(`[events] addEventListener('${e}')`),jC[e]||(jC[e]=[]),"function"!=typeof n)throw new Error("[events] callback is not a function");jC[e].push(n);const t=WC.filter(n=>n.event===e);t.length&&a.log(`[events] ${t.length} cached '${e}' events found!`),t.forEach(e=>VC(e.event,e.data,!0));for(let i=WC.length-1;i>=0;i--)WC[i].event===e&&WC.splice(i,1);return()=>zC(e,n)},zC=(e,n)=>{if(a.log(`[events] removeEventListener('${e}')`),!jC[e])return;const t=jC[e].length;jC[e]=jC[e].filter(e=>e!==n);const i=t-jC[e].length;a.log(`[events] Removed ${i} listener(s) for '${e}'`),0===jC[e].length&&delete jC[e]},$C=async(e,n)=>{switch(a.log(`[events] sendEvent('${e}')`,n),n=n||{},e){case"disableAds":return t=(t=n.adType)||"interstitial",a.log(`[ads] disableAds('${t}')`),void IC(t,hC).catch(e=>{a.warn("[ads] disableAds error",e)});case"xsollaSetup":return(e=>"string"==typeof(null==e?void 0:e.uid)&&e.uid.length>0)(n)?(Ey(n.uid),!0):(a.warn("[events] famobi xsollaSetup ignored: missing or invalid 'uid'"),!1);case"micrositeBootGame":return KC();default:a.warn(`[events] Unknown event '${e}'`)}var t;await LS(0)},VC=(e,n,t=!1)=>{if(a.log(`[events] emitEvent('${e}', data, ${t})`),!jC[e])return void(t||(a.warn(`[events] no callbacks for event '${e}' found -> cached!`),WC.push({event:e,data:n})));const i=[...jC[e]];for(const r of i)try{r(n)}catch(o){a.warn(`[events] Error in event listener for '${e}':`,o)}};const qC=async()=>Promise.resolve();Error;const eL=(()=>{const e={};return e})();let nL=!0,tL=!0,iL=null;const aL=["log","info","warn","table","debug"],oL=Object.fromEntries(aL.map(e=>[e,console[e].bind(console)])),rL=Object.fromEntries(aL.map(e=>[e,(...n)=>{nL&&oL[e](...n)}])),sL=(e=!1)=>{if(!tL&&!e)return;const n=console;for(const t of aL)n[t]!==rL[t]&&(n[t]=rL[t])},uL=h({}),lL=async e=>{try{const n=await fetch(e,{method:"GET",headers:{"Content-Type":"application/json"}});if(!n.ok)return;return await n.json()}catch{return}},cL=(e=p.get().auth,n)=>{var t,i,a,o;const r=(null==e?void 0:e.firebase)||(null==n?void 0:n.firebase)?{...null==e?void 0:e.firebase,...null==n?void 0:n.firebase}:void 0,s=(null==e?void 0:e.overlay)||(null==n?void 0:n.overlay)?{...null==e?void 0:e.overlay,...null==n?void 0:n.overlay,...!0===(null==(t=null==n?void 0:n.overlay)?void 0:t.autoShow)&&void 0===(null==(i=null==n?void 0:n.overlay)?void 0:i.mode)?{mode:"loginRequired"}:{}}:void 0;return{...e,...n,firebase:r,providers:{...null==e?void 0:e.providers,...null==n?void 0:n.providers,google:{...null==(a=null==e?void 0:e.providers)?void 0:a.google,...null==(o=null==n?void 0:n.providers)?void 0:o.google}},overlay:s,cloudSave:{...null==e?void 0:e.cloudSave,...null==n?void 0:n.cloudSave}}}
1,hL=e=>{if(!e||"object"!=typeof e||Array.isArray(e))return;const n=Object.entries(e).filter(([e,n])=>!(!e||"__proto__"===e||"constructor"===e||"prototype"===e)&&(null===n||"string"==typeof n||"boolean"==typeof n||"number"==typeof n&&Number.isFinite(n)));return n.length>0?Object.fromEntries(n):void 0},dL=(e,n)=>{const t=hL(null==n?void 0:n.metrics);return t?{...e,metrics:t}:e},gL=e=>{const n=hL(e);if(!n)return;const t=Object.entries(n).reduce((e,[n,t])=>("number"==typeof t&&Number.isFinite(t)&&(e[n]=t),e),{});return Object.keys(t).length>0?t:void 0},pL=async e=>{var n,t;C("gameComplete"),EC("gameEnd",[{name:"reason",value:"complete"}]),lC("game_end",dL({end_reason:"complete"},e),{includeLevel:!0,includeScore:!0,scoreKey:"score_total"});const i=mv.get().level,a={success:!0,level:"number"==typeof i&&Number.isInteger(i)?i:void 0},o=gL(null==e?void 0:e.metrics);o&&(a.data=o),ee(I.LEVEL_END,a),await(null==(t=(n=g.get()).gameComplete)?void 0:t.call(n,e)),Tb(Rb())&&(Ow(),await $w(!0),!0===Tw().isAnonymous&&Qw())},mL=async(e,n)=>{switch(C("gameEnd",e),e){case"complete":return pL(n);case"quit":return(async e=>{var n,t;C("gameQuit"),EC("gameEnd",[{name:"reason",value:"quit"}]),lC("game_end",dL({end_reason:"quit"},e),{includeLevel:!0,includeScore:!0,scoreKey:"score_total"});const i=mv.get().level,a={level:"number"==typeof i&&Number.isInteger(i)?i:void 0},o=gL(null==e?void 0:e.metrics);o&&(a.data=o),ee(I.LEVEL_END,a),await(null==(t=(n=g.get()).gameQuit)?void 0:t.call(n,e))})(n);default:return(async e=>{var n,t;C("gameOver"),EC("gameEnd",[{name:"reason",value:"fail"}]),lC("game_end",dL({end_reason:"over"},e),{includeLevel:!0,includeScore:!0,scoreKey:"score_total"});const i=mv.get().level,a={success:!1,level:"number"==typeof i&&Number.isInteger(i)?i:void 0},o=gL(null==e?void 0:e.metrics);o&&(a.data=o),ee(I.LEVEL_END,a),await(null==(t=(n=g.get()).gameOver)?void 0:t.call(n,e))})(n)}},fL=async e=>mL("complete",e),vL=async e=>mL("fail",e),wL=(e,n="gameInterfaceAssets")=>{try{const t=n.replace(/\/+$/,""),i=e.replace(/^\/+/,"");return t?i?t+"/"+i:t:i}catch{return""}},yL={pauseGameplay:()=>{},resumeGameplay:()=>{},disableAudio:()=>{},enableAudio:()=>{},disableMusic:()=>{},enableMusic:()=>{},changeVolume:()=>{},onOffsetChange:()=>{},restartGame:()=>{}},bL={};let SL=1,CL=0;const LL=async()=>{var e;(null==(e=window.famobi_gameID)?void 0:e.length)&&"{FAMOBI_GAMEID}"!==window.famobi_gameID&&p.set({gameId:window.famobi_gameID});const n=wL("branding-button.png"),t=await lL("famobi.json");window.famobi_tracking={init:e=>{y(`[bridge] famobi_tracking.init('${e}')`)},trackEvent:(e,n)=>{a.log(`[bridge] famobi_tracking.trackEvent('${e}')`,JSON.stringify(n))},EVENTS:I},window.famobi_analytics={trackEvent:async(e,n)=>{var t;y(`[bridge] ${e} (${JSON.stringify(n)})`);let i=0;"string"==typeof(null==n?void 0:n.levelName)&&(i=parseInt(null==(t=null==n?void 0:n.levelName)?void 0:t.replace(/\D/g,""))),i=isNaN(i)?0:i;let a=!1;switch(e){case"EVENT_CUSTOM":"LEVELEND"===(null==n?void 0:n.eventName)||"LEVELEND"===(null==n?void 0:n.event)?"success"===n.result?await fL():await vL():await window.GameInterface.track(e,n||{}).catch(()=>{});break;case"EVENT_LEVELSTART":case"EVENT_LEVELRESTART":await window.GameInterface.gameStart(i);break;case"EVENT_TOTALSCORE":"number"==typeof(null==n?void 0:n.totalScore)&&Number.isInteger(n.totalScore)&&window.GameInterface.sendScore(n.totalScore,{type:"total"});break;case"EVENT_LEVELSCORE":"number"==typeof(null==n?void 0:n.levelScore)&&Number.isInteger(n.levelScore)&&window.GameInterface.sendScore(null==n?void 0:n.levelScore,{type:"level"});break;case"EVENT_LIVESCORE":"number"==typeof(null==n?void 0:n.liveScore)&&Number.isInteger(n.liveScore)&&window.GameInterface.sendScore(null==n?void 0:n.liveScore,{type:"live"});break;case"EVENT_LEVELSUCCESS":a=!0;break;case"EVENT_LEVELFAIL":"quit"===(null==n?void 0:n.reason)?await window.GameInterface.gameQuit():a=!0;break;case"EVENT_VOLUMECHANGE":window.GameInterface.gameMuted(0===(null==n?void 0:n.bgmVolume)&&0===(null==n?void 0:n.sfxVolume),"system");break;case"EVENT_PAUSE":await window.GameInterface.gamePause();break;case"EVENT_RESUME":await window.GameInterface.gameResume()}if(a)return new Promise(e=>{var n;null==(n=window.famobi)||n.showAd(()=>{e()})})},getEvents:async()=>(await qC(),[]),EVENT_CUSTOM:"EVENT_CUSTOM",EVENT_LEVELFAIL:"EVENT_LEVELFAIL",EVENT_LEVELRESTART:"EVENT_LEVELRESTART",EVENT_LEVELSTART:"EVENT_LEVELSTART",EVENT_LEVELSUCCESS:"EVENT_LEVELSUCCESS",EVENT_LIVESCORE:"EVENT_LIVESCORE",EVENT_LEVELSCORE:"EVENT_LEVELSCORE",EVENT_TOTALSCORE:"EVENT_TOTALSCORE",EVENT_TUTORIALCOMPLETED:"EVENT_TUTORIALCOMPLETED",EVENT_TUTORIALSKIPPED:"EVENT_TUTORIALSKIPPED",EVENT_VOLUMECHANGE:"EVENT_VOLUMECHANGE",EVENT_PAUSE:"EVENT_PAUSE",EVENT_RESUME:"EVENT_RESUME",trackScreen:async(e,n)=>{a.log(`[bridge] famobi_tracking.trackScreen('${e}', '${n||"-"}')`),await qC()},trackStats:async(e,n,t)=>{a.log("[bridge] famobi_tracking.trackStats",e,n,t),await qC()},getScreen:()=>"",getPageTitle:()=>"",SCREEN_OTHER:"SCREEN_OTHER",SCREEN_BONUS:"SCREEN_BONUS",SCREEN_CHARACTER:"SCREEN_CHARACTER",SCREEN_CREDITS:"SCREEN_CREDITS",SCREEN_GAMERESULT:"SCREEN_GAMERESULT",SCREEN_HELP:"SCREEN_HELP",SCREEN_HOME:"SCREEN_HOME",SCREEN_LEVEL:"SCREEN_LEVEL",SCREEN_LEVELINTRO:"SCREEN_LEVELINTRO",SCREEN_LEVELLOADING:"SCREEN_LEVELLOADING",SCREEN_LEVELRESULT:"SCREEN_LEVELRESULT",SCREEN_LEVELSELECT:"SCREEN_LEVELSELECT",SCREEN_PAUSE:"SCREEN_PAUSE",SCREEN_SETTINGS:"SCREEN_SETTINGS",SCREEN_SHOP:"SCREEN_SHOP",SCREEN_SPLASH:"SCREEN_SPLASH",SCREEN_TUTORIAL:"SCREEN_TUTORIAL"},window.famobi={setPreloadProgress:e=>{if("number"==typeof e){const n=(e=Math.floor(e))!==CL;CL=e,n&&window.GameInterface.sendPreloadProgress(CL)}},log:(...e)=>{window.GameInterface.log(...e)},gameReady:(e=!1)=>{window.GameInterface.gameReady(e)},playerReady:()=>{window.GameInterface.playerReady()},setVolume:e=>{var n;const t=e!==SL;SL=e,t&&(null==(n=yL.changeVolume)||n.call(yL,SL))},getVolume:()=>SL,hasFeature:e=>{let n=e;switch(e){case"standalone":case"multiplayer_local":return!0;case"external_mute":n="audio";break;case"external_pause":n="pause";break;case"external_focus":n="visibilitychange"}switch(e in bL||(bL[e]=window.GameInterface.hasFeature(n)),e){case"external_mute":case"external_pause":case"external_focus":return!bL[e];default:return bL[e]}},getOrientation:()=>window.innerHeight>window.innerWidth?"portrait":window.innerHeight<window.innerWidth?"landscape":"",onOrientationChange:e=>{window.addEventListener("orientationchange",e)},getCurrentLanguage:()=>window.GameInterface.getCurrentLanguage(),showInterstitialAd:async(e,n)=>{const t=e=>"string"==typeof e,i=e=>"function"==typeof e;"object"==typeof e&&(n=e.callback,e=e.eventId);const a=t(e)?e:t(n)?n:"",o=i(n)?n:i(e)?e:()=>{};await window.GameInterface.showInterstitialAd(a,vC(a)),"function"==typeof o&&o()}
1,hasRewardedAd:e=>window.GameInterface.isRewardedAdAvailable(e||"rewarded:multipass"),rewardedAd:async(e,n)=>{const t=await window.GameInterface.showRewardedAd(n||"rewarded:multipass");"function"==typeof e&&e({rewardGranted:t.isRewardGranted})},getOffsets:()=>window.GameInterface.getOffsets(),onOffsetChange:e=>{yL.onOffsetChange=e,yL.onOffsetChange(window.GameInterface.getOffsets())},showAd:async e=>{await window.GameInterface.showInterstitialAd("interstitial:multipass","browse").then(()=>{"function"==typeof e&&e()})},forceAd:e=>{var n;null==(n=window.famobi)||n.showAd(e,!0)},__:e=>(null==t?void 0:t.game_i18n)?((e,n,t,i)=>{var a,o;if("more_games_image"===e)return(null==(a=window.famobi)?void 0:a.getBrandingButtonImage())||null;if(t=t||(null==(o=window.famobi)?void 0:o.getCurrentLanguage())||"en",i=i||"A-12345",n){if(n[t]&&(n[t]=Object.assign(n[t],n[i+"."+t])),n[t]&&n[t][e]){let i=n[t][e];return"string"==typeof i?(i=i.replace("{lang}",t),i):n[t][e]}if(n.default&&(n.default=Object.assign(n.default,n[i+".default"])),n.default&&n.default[e])return"string"==typeof n.default[e]?n.default[e].replace("{lang}",t):n.default[e]}return null})(e,t.game_i18n):null,getFeatureProperties:()=>({}),ads:{hasCooledDown:()=>BC("interstitial"),isEnabled(){var e;return(null==(e=p.get().ads.interstitial)?void 0:e.enabled)||!1}},adapters:{add:(e,n,t)=>{a.log(`[bridge] famobi.adapters.add('${e}', '${n}', ${typeof t})`)},run:(e,n)=>{a.log(`[bridge] famobi.adapters.run('${e}', '${n}')`)}},onRequest:(e,n)=>{switch(e){case"enableAudio":case"disableAudio":case"enableMusic":case"disableMusic":case"pauseGameplay":case"resumeGameplay":case"restartGame":case"changeVolume":a.log(`[bridge] onRequest('${e}')`),yL[e]=n;break;default:a.warn(`[bridge] onRequest: unknown event '${e}'`)}},localStorage:{setItem:(e,n)=>{window.GameInterface.storage.setItem(e,n)},getItem:e=>window.GameInterface.storage.getItem(e),removeItem:e=>{window.GameInterface.storage.removeItem(e)},clear:()=>{window.GameInterface.storage.clear()}},iap:{getProducts:async()=>window.GameInterface.iap.getProducts(),buyProduct:e=>{window.GameInterface.iap.buyProduct(e)},onEvent:e=>{window.GameInterface.iap.onEvent(e)},consumeProduct:async e=>{var n,t,i;try{await(null==(i=null==(t=null==(n=window.GameInterface)?void 0:n.iap)?void 0:t.consumeProduct)?void 0:i.call(t,e))}catch(o){throw a.warn("[bridge] iap.consumeProduct()",o),o}}},game:{isWaiting:()=>window.GameInterface.isPaused()},config:{aid:"A-GAMEINTERFACE"},getBrandingButtonImage:()=>n,openBrandingLink:()=>{},submitHighscore:(e,n)=>{a.log(`[bridge] submitHighscore('${e}', ${n})`)},levelUp:()=>{},gameOver:()=>{},moreGamesLink:()=>{},getMoreGamesButtonImage:()=>n},window.fenster={offsets:{top:0,right:0,bottom:0,left:0},fnResize:null,get innerHeight(){return window.innerHeight-this.offsets.top-this.offsets.bottom},get innerWidth(){return window.innerWidth-this.offsets.left-this.offsets.right},update(){var e,n;null==(e=this.fnResize)||e.call(this),(null==(n=mS.get().famobi)?void 0:n.applyCanvasOffset)&&setTimeout(()=>{const e=document.getElementsByTagName("canvas")[0];e&&(e.style.marginLeft=this.offsets.left+"px",e.style.marginTop=this.offsets.top+"px")},50)},subscribeToOffsetUpdates(e){this.fnResize=e},set(e,n=0,t=0,i=0){this.offsets.top=("object"==typeof e?e.top:e)||0,this.offsets.right=("object"==typeof e?e.right:n)||0,this.offsets.bottom=("object"==typeof e?e.bottom:t)||0,this.offsets.left=("object"==typeof e?e.left:i)||0,this.update()},get(){return this.offsets}},window.GameInterface.onMuteStateChange((e,n)=>{var t,i,o,r,s,u;a.log(`[bridge] onMuteStateChange(isMuted: ${e}, isAdTriggered: ${n})`),n||(e?(null==(t=window.famobi)||t.setVolume(0),null==(i=yL.disableAudio)||i.call(yL),null==(o=yL.disableMusic)||o.call(yL)):(null==(r=window.famobi)||r.setVolume(1),null==(s=yL.enableAudio)||s.call(yL),null==(u=yL.enableMusic)||u.call(yL)))}),window.GameInterface.onPauseStateChange((e,n)=>{var t,i,o,r;a.log(`[bridge] onPauseStateChange(isPaused: ${e}, isAdTriggered: ${n})`),e?n?(a.log("[bridge] onPauseStateChange -> window.famobi_onPauseRequested?.()"),null==(t=window.famobi_onPauseRequested)||t.call(window)):null==(i=yL.pauseGameplay)||i.call(yL):n?(a.log("[bridge] onPauseStateChange -> window.famobi_onResumeRequested?.()"),null==(o=window.famobi_onResumeRequested)||o.call(window)):null==(r=yL.resumeGameplay)||r.call(yL)}),window.GameInterface.onRestartGame(()=>{var e;a.log("[bridge] onRestartGame -> requestAdapterCallbacks.restartGame?.()"),null==(e=yL.restartGame)||e.call(yL)}),window.GameInterface.onOffsetChange(e=>{var n,t;null==(n=yL.onOffsetChange)||n.call(yL,e),null==(t=window.fenster)||t.set(e)})},TL=h({currentScores:{},bestScores:{},isAutoSaving:!1,key:"scoring"}),EL=e=>{const n={audio:!0,copyright:!0,credits:!0,pause:!0,progress:!0,score:!0,tutorial:!0,version:!0,visibilitychange:!0,iap:!0,home:!0,privacy:!0,standalone:!1};
1return e.features?(Object.keys(n).forEach(t=>{void 0!==e.features[t]&&(n[t]=!!e.features[t])}),n):n},kL=e=>!!["","true","1"].includes(e.toLowerCase()),DL=(e,n)=>{const t=e.get(n);return null!==t&&kL(t)},xL=e=>{const n={};return["audio","copyright","credits","pause","progress","score","tutorial","version","visibilitychange","iap","home","privacy","standalone"].forEach(t=>{const i=e.get(t);null!==i&&(n[t]=kL(i))}),n},AL=(e,n,t,i)=>{const a=e.get(t);if(null!==a)switch(i){case"string":n.set({[t]:a});break;case"boolean":"mock"===t?n.set({shouldMock:kL(a)}):n.set({[t]:kL(a)});break;case"number":n.set({[t]:parseInt(a)})}},YL=()=>g.get().name,_L=async e=>{if(await qC(),"youtubePlayables"===YL()){const n=e.indexOf("playcanvas-stable.min.js");-1!==n&&e.splice(n+1,0,()=>{(()=>{var e,n,t,i,o,r;try{if(void 0!==(null==(t=null==(n=null==(e=null==window?void 0:window.pc)?void 0:e.Asset)?void 0:n.prototype)?void 0:t.getFileUrl)){const e=null==(r=null==(o=null==(i=null==window?void 0:window.pc)?void 0:i.Asset)?void 0:o.prototype)?void 0:r.getFileUrl;e&&(window.pc.Asset.prototype.getFileUrl=function(n){const t=e.call(this,n);if("string"==typeof t)return t.replace(/([?&])t=[^&]+(&|$)/,"$2")})}}catch(s){a.warn(s)}})()})}return e},IL=async({gameFiles:e=[],params:n={},isFamobiLegacy:t=!1,logLabel:i})=>{var o,r;const s=Date.now();C(i),EC("init"),QC.pendingGameFiles=void 0,QC.bootPromise=void 0,gw(),Xv={},Hv=!0,Iv="hidden",Pv=!1,Fv=!1,Wv(),qv(),fv={},await(async e=>{var n,t,i,a,o,r,s;y("init params..."),p.set({dev:e.dev??p.get().dev??!1,gameId:e.gameId||void 0,locale:e.locale||void 0,eventDelay:e.eventDelay||0,features:EL(e),shouldMock:e.mock||!1,analyticsDebug:e.analyticsDebug||!1,userId:void 0,maxLevels:e.maxLevels||void 0,scoreTypes:e.scoreTypes||void 0,version:e.version||void 0}),mv.set({isMuted:e.isMuted||!1});const u=e.loggingEnabled??!1;d.set({loggingEnabled:u}),fb.set({storageKey:(null==(n=e.storage)?void 0:n.storageKey)||void 0,storagePrefix:(null==(t=e.storage)?void 0:t.storagePrefix)||void 0,flushDelay:(null==(i=e.storage)?void 0:i.flushDelay)??0,isLegacyMode:(null==(a=e.storage)?void 0:a.isLegacyMode)??!1,chunkSize:(null==(o=e.storage)?void 0:o.chunkSize)??0,shouldCompress:(null==(r=e.storage)?void 0:r.shouldCompress)??!1,indexedDBName:(null==(s=e.storage)?void 0:s.indexedDBName)||void 0}),TL.set({isAutoSaving:e.isAutoSaving??!1})})(n),await(async()=>{var e,n,t,i,a,o,r,s,u,l,c,h,d,g,m,f,v,w,b,S,C,L,T,E,k,D,x,A,Y;y("Load famobi.json...");const _=await lL("famobi.json");if(_&&"object"==typeof _){const{gameId:y,gameIdOnPortal:I,name:P,ads:N,features:M,maxLevels:Z,scoreTypes:J,analytics:B,auth:R}=p.get(),F=uL.get(),X=_.versionInfo;uL.set({features:{...F.features,..._.features},maxLevels:_.maxLevels,scoreTypes:_.scoreTypes,ads:{interstitial:{eventIds:(null==(n=null==(e=_.ads)?void 0:e.interstitial)?void 0:n.eventIds)||[]},rewarded:{eventIds:(null==(i=null==(t=_.ads)?void 0:t.rewarded)?void 0:i.eventIds)||[]}},iap:{products:(null==(a=_.iap)?void 0:a.products)||[]},analytics:{...B,..._.analytics},auth:cL(R,_.auth)}),p.set({gameId:!y&&_.gameId?_.gameId.toString():void 0,gameIdOnPortal:!I&&_.gameIdOnPortal?_.gameIdOnPortal.toString():void 0,name:!P&&_.name?_.name.toString():void 0,version:(null==X?void 0:X.version)||_.version||void 0,semanticVersion:(null==X?void 0:X.semanticVersion)||_.gameVersion||_.version||void 0,sequentialVersion:"number"==typeof(null==X?void 0:X.sequentialVersion)?X.sequentialVersion:void 0,exportedAt:(null==X?void 0:X.exportedAt)||_.exportedAt,label:(null==X?void 0:X.label)||void 0,ads:{interstitial:{...N.interstitial,...null==(o=_.ads)?void 0:o.interstitial},rewarded:{...N.rewarded,...null==(r=_.ads)?void 0:r.rewarded},banner:{...N.banner,...null==(s=_.ads)?void 0:s.banner},forcePreloadOnOrientationChange:(null==(u=_.ads)?void 0:u.forcePreloadOnOrientationChange)??!0,isAutoMuting:(null==(l=_.ads)?void 0:l.isAutoMuting)??!0,isAutoPausing:(null==(c=_.ads)?void 0:c.isAutoPausing)??!0,hasBackfillAds:(null==(h=_.ads)?void 0:h.hasBackfillAds)??!1},features:{...M,..._.features},maxLevels:Z??_.maxLevels??void 0,scoreTypes:J??_.scoreTypes??void 0,iap:{products:(null==(d=_.iap)?void 0:d.products)||[],xsolla:{projectId:(null==(m=null==(g=_.iap)?void 0:g.xsolla)?void 0:m.projectId)||void 0,isSandbox:(null==(v=null==(f=_.iap)?void 0:f.xsolla)?void 0:v.isSandbox)||!1,endpoint:(null==(b=null==(w=_.iap)?void 0:w.xsolla)?void 0:b.endpoint)||void 0}},auth:cL(R,_.auth),analytics:{...B,..._.analytics},famobiTracking:{enabled:(null==(S=_.famobiTracking)?void 0:S.enabled)||!1,debug:(null==(C=_.famobiTracking)?void 0:C.debug)||!1,version:(null==(L=_.famobiTracking)?void 0:L.version)||"0"},console:{enabled:(null==(T=_.console)?void 0:T.enabled)??!0,enforce:(null==(E=_.console)?void 0:E.enforce)??!0}}),mS.set({microsoftStart:_.microsoftStart,glance:_.glance,arkadium:_.ark
1adium,gameSnacks:_.gameSnacks,upify:_.upify,microsite:_.microsite,famobi:_.famobi,samsung:_.samsung,yandex:_.yandex}),fb.set({flushDelay:null==(k=_.storage)?void 0:k.flushDelay,isLegacyMode:null==(D=_.storage)?void 0:D.isLegacyMode,chunkSize:null==(x=_.storage)?void 0:x.chunkSize,shouldCompress:null==(A=_.storage)?void 0:A.shouldCompress,indexedDBName:null==(Y=_.storage)?void 0:Y.indexedDBName})}else y("A file is missing from the project. This issue might result in unexpected behaviour.")})(),await(async()=>{var e,n,t;const i=g.get().name;if(!["microsoftStart","samsung"].includes(i))return;const a=await lL(`https://remote-config.famobi.com/${i}/latest.json`);switch(i){case"microsoftStart":const i=(null==a?void 0:a.config)||{};mS.set({microsoftStart:{remoteConfig:i}});const o=p.get().gameId||"";if(!(o in i))break;const r=null==(t=null==(n=null==(e=i.games)?void 0:e[o])?void 0:n.ads)?void 0:t.hasBackfillAds;"boolean"==typeof r&&p.set({ads:{hasBackfillAds:r}});break;case"samsung":mS.set({samsung:{remoteConfig:(null==a?void 0:a.config)||{}}})}})(),(()=>{y("init url params...");const e=new URLSearchParams(window.location.search);if(e.has("dev")){const n=DL(e,"dev");p.set({dev:n})}const n=DL(e,"sdkLoggingEnabled"),t=DL(e,"messageLoggingEnabled");d.set({sdkLoggingEnabled:n,messageLoggingEnabled:t}),p.set({features:{...p.get().features,...xL(e)}}),AL(e,p,"gameId","string"),AL(e,p,"locale","string"),AL(e,p,"eventDelay","number"),AL(e,p,"mock","boolean"),AL(e,p,"userId","string"),AL(e,p,"analyticsDebug","boolean"),AL(e,p,"isVerboseLoggingEnabled","boolean"),AL(e,mv,"isMuted","boolean"),AL(e,fb,"storageKey","string"),AL(e,fb,"storagePrefix","string"),AL(e,TL,"isAutoSaving","boolean")})(),((e=500)=>{var n,t;p.get().dev||p.get().isVerboseLoggingEnabled?nL=tL=!0:(nL=!!(null==(n=p.get().console)?void 0:n.enabled),tL=!!(null==(t=p.get().console)?void 0:t.enforce)),sL(),null===iL&&(iL=setInterval(sL,e),window.addEventListener("beforeunload",()=>{iL&&clearInterval(iL)}))})(),Hw();const u=(()=>{var e;if(!p.get().shouldMock)return!1;const n=g.get().name;return p.set({currentMock:n}),null==(e=eL[n])||e.call(eL),!0})();await(async(e=!1)=>{var n,t;if(O.enabled=(null==(n=p.get().famobiTracking)?void 0:n.enabled)??O.enabled,O.isMocked=e,O.debug=(null==(t=p.get().famobiTracking)?void 0:t.debug)??O.debug,O.version=z(),a.log(`${G} initFamobiTracking() - options:`,JSON.stringify(O)),O.enabled)try{await K(),j()}catch(i){a.warn(`${G} Error init:`,i)}else a.warn(`${G} famobiTracking is disabled! init() was skipped.`)})(u),t?await LL():await fS(p.get().files),await(null==(r=(o=g.get()).init)?void 0:r.call(o,e,n,u)),await(async()=>{const e=cC.get(),n=p.get();Object.entries(e.types).forEach(([t])=>{var i,a,o;const r=t;if(null==(i=n.ads[r])?void 0:i.enabled){if("interstitial"===r){let t=(null==(a=n.ads[r])?void 0:a.initialCooldown)||(null==(o=n.ads[r])?void 0:o.cooldown)||0;t=t<1e3?1e3*t:t,t>0&&(e.types[r].lastCalled=Date.now()-XC(r)+t,cC.set(e))}setInterval(()=>{_C(r)},250),IC(r,dC)}}),n.ads.forcePreloadOnOrientationChange&&GC(),OC()})(),await gS(),await(async(e=0)=>{jS()?(nC(),QS||(QS=!0,lC("sdk_init",{files_count:e}))):y("Analytics disabled via famobi.json.")})(e.length),await(async()=>{y("init gameState..."),mv.set({userMutePref:mv.get().isMuted}),document.addEventListener("visibilitychange",()=>{kC("visibilitychange",[{name:"hidden",value:document.hidden}])})})();const l=await _L(e);return y(`${i} preparation completed (`,Date.now()-s,"ms )"),l},PL={},NL=e=>{var n,t,i;if(e in PL)return PL[e];C("hasFeature",e);const{ads:a,features:o}=p.get();return g.get().hasFeature?PL[e]=(null==(t=(n=g.get()).hasFeature)?void 0:t.call(n,e))||!1:PL[e]="rewarded"===e?!!(null==(i=a.rewarded)?void 0:i.enabled):!!o[e]},ML=()=>{var e,n;C("playerReady"),EC("playerReady"),null===kS?(DS||(["mousemove","keydown","click","touchstart"].forEach(e=>{window.addEventListener(e,()=>{ES=Date.now()})}),DS=!0),a.log("[intern] Start playtime tracking..."),kS=setInterval(()=>{const e="visible"===document.visibilityState,n=Date.now()-ES<1e4;!HC()&&!xS&&e&&n&&(TS+=500)},500)):a.log("[intern] Playtime tracking already started!"),lC("player_ready"),mv.set({playerReadyAt:Date.now()}),null==(n=(e=g.get()).playerReady)||n.call(e)},ZL=(e,n=6)=>e.length>n?`'${e.slice(0,n)}...'`:`'${e}'`,JL=e=>{if(null===e||"object"!=typeof e)return e;if(Array.isArray(e))return e.map(JL);const n=e,t={};
1return Object.keys(n).forEach(e=>{const i=n[e];"function"!=typeof i&&(t[e]=JL(i))}),t},BL=new WeakMap,RL=async(e,n)=>{switch(C("stageEnd",e),e){case"complete":return(async e=>{var n,t;C("stageComplete"),EC("stageEnd",[{name:"reason",value:"complete"}]),lC("stage_end",dL({end_reason:"complete"},e),{includeLevel:!0,includeStage:!0});const i=mv.get().stage,a={stage:"number"==typeof i&&Number.isInteger(i)?i:void 0},o=gL(null==e?void 0:e.metrics);o&&(a.data=o),ee(I.LEVEL_UPDATE,a),await(null==(t=(n=g.get()).stageComplete)?void 0:t.call(n,e))})(n);case"quit":return(async e=>{var n,t;C("stageQuit"),EC("stageEnd",[{name:"reason",value:"quit"}]),lC("stage_end",dL({end_reason:"quit"},e),{includeLevel:!0,includeStage:!0}),await(null==(t=(n=g.get()).stageQuit)?void 0:t.call(n,e))})(n);default:return(async e=>{var n,t;C("stageOver"),EC("stageEnd",[{name:"reason",value:"fail"}]),lC("stage_end",dL({end_reason:"over"},e),{includeLevel:!0,includeStage:!0}),await(null==(t=(n=g.get()).stageOver)?void 0:t.call(n,e))})(n)}};var FL=["\0","�","�","�","�","�","�","�","\b","\t","\n","\v","\f","\r","�","�","�","�","�","�","�","�","�","�","�","�","�","�","�","�","�","�"," ","!",'"',"#","$","%","&","'","(",")","*","+",",","-",".","/","0","1","2","3","4","5","6","7","8","9",":",";","<","=",">","?","@","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","[","\\","]","^","_","`","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","{","|","}","~","�",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null," ","!","C/","PS","$?","Y=","|","SS",'"',"(c)","a","<<","!",null,"(r)","-","deg","+-","2","3","'","u","P","*",",","1","o",">>","1/4","1/2","3/4","?","A","A","A","A","A","A","AE","C","E","E","E","E","I","I","I","I","D","N","O","O","O","O","O","x","O","U","U","U","U","U","Th","ss","a","a","a","a","a","a","ae","c","e","e","e","e","i","i","i","i","d","n","o","o","o","o","o","/","o","u","u","u","u","y","th","y"],XL=["a","a","a","a","a","a","a","a","A","A","A","A","A","A","A","A","e","e","e","e","e","e",null,null,"E","E","E","E","E","E",null,null,"e","e","e","e","e","e","e","e","E","E","E","E","E","E","E","E","i","i","i","i","i","i","i","i","I","I","I","I","I","I","I","I","o","o","o","o","o","o",null,null,"O","O","O","O","O","O",null,null,"u","u","u","u","u","u","u","u",null,"U",null,"U",null,"U",null,"U","o","o","o","o","o","o","o","o","O","O","O","O","O","O","O","O","a","a","e","e","e","e","i","i","o","o","u","u","o","o",null,null,"a","a","a","a","a","a","a","a","A","A","A","A","A","A","A","A","e","e","e","e","e","e","e","e","E","E","E","E","E","E","E","E","o","o","o","o","o","o","o","o","O","O","O","O","O","O","O","O","a","a","a","a","a",null,"a","a","A","A","A","A","A","'","i","'","~",'"~',"e","e","e",null,"e","e","E","E","E","E","E","'`","''","'~","i","i","i","i",null,null,"i","i","I","I","I","I",null,"`'","`'","`~","u","u","u","u","R","R","u","u","U","U","U","U","R",'"`',"\"'","`",null,null,"o","o","o",null,"o","o","O","O","O","O","O","'","`"],HL=[" "," "," "," "," "," "," "," "," "," "," "," ",null,null,null,null,"-","-","-","-","--","--","||","_","'","'",",","'",'"','"',",,",'"',"+","++","*","*>",".","..","...",".","\n","\n\n",null,null,null,null,null," ","%0","%00","'","''","'''","`","``","```","^","<",">","*","!!","!?","-","_","-","^","***","--","/","-[","]-",null,"?!","!?","7","PP","(]","[)",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"0",null,null,null,"4","5","6","7","8","9","+","-","=","(",")","n","0","1","2","3","4","5","6","7","8","9","+","-","=","(",")",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"ECU","CL","Cr","FF","L","mil","N","Pts","Rs","W","NS","D","EU","K","T","Dr"],GL=["g","gg","n","d","dd","r","m","b","bb","s","ss","","j","jj","c","k","t","p","h"],OL=["a","ae","ya","yae","eo","e","yeo","ye","o","wa","wae","oe","yo","u","weo","we","wi","yu","eu","yi","i"],QL=["","g","gg","gs","n","nj","nh","d","l","lg","lm","lb","ls","lt","lp","lh","m","b","bs","s","ss","ng","j","c","k","t","p","h"],KL=[];KL[0]=FL,KL[1]=["A","a","A","a","A","a","C","c","C","c","C","c","C","c","D","d","D","d","E","e","E","e","E","e","E","e","E","e","G","g","G","g","G","g","G","g","H","h","H","h","I","i","I","i","I","i","I","i","I","i","IJ","ij","J","j","K","k","k","L","l","L","l","L","l","L","l","L","l","N","n","N","n","N","n","'n","NG","ng","O","o","O","o","O","o","OE","oe","R","r","R","r","R","r","S","s","S","s","S","s","S","s","T","t","T","t","T","t","U","u","U","u","U","u","U","u","U","u","U","u","W","w","Y","y","Y","Z","z","Z","z","Z","z","s","b","B","B","b","6","6","O","C","c","D","D","D","d","d","3","@","E","F","f","G","G","hv","I","I","K","k","l","l","W","N","n","O","O","o","OI","oi","P","p","YR","2","2","SH","sh","t","T","t","T","U","u","Y","V","Y","y","Z","z","ZH","ZH","zh","zh","2","5","5","ts","w","|","||","|=","!","DZ","Dz","dz","LJ","Lj","lj","NJ","Nj","nj","A","a","I","i","O","o","U","u","U","u","U","u","U","u","U","u","@","A","a","A","a","AE","ae","G","g","G","g","K","k","O","o","O","o","ZH","zh","j","DZ","D","dz","G","g","HV","W","N","n","A","a","AE","ae","O","o"],KL[2]=["A","a","A","a","E","e","E","e","I","i","I","i","O","o","O","o","R","r","R","r","U","u","U","u","S","s","T","t","Y","y","H","h","N","d","OU","ou","Z","z","A","a","E","e","O","o","O","o","O","o","O","o","Y","y","l","n","t","j","db","qp","A","C","c","L","T","s","z","?","?","B","U","V","E","e","J","j","Q","q","R","r","Y","y","a","a","a","b","o","c","d","d","e","@","@","e","e","e","e","j","g","g","g","g","u","Y","h","h","i","i","I","l","l","l","lZ","W","W","m","n","n","n","o","OE","O","F","R","R","R","R","r","r","R","R","R","s","S","j","S","S","t","t","U","U","v","^","W","Y","Y","z","z","Z","Z","?","?","?","C","@","B","E","G","H","j","k","L","q","?","?","dz","dZ","dz","ts","tS","tC","fN","ls","lz","WW","]]","h","h","k","h","j","r","r","r","r","w","y","'",'"',"`","'","`","`","'","?","?","<",">","^","V","^","V","'","-","/","\\",",","_","\\","/",":",".","`","'","^","V","+","-","V",".","@",",","~",'"',"R","X","G","l","s","x","?",null,null,null,null,null,null,null,"V","=",'"'],KL[3]=[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"'",",",null,null,null,null,null,null,null,null,"?",null,null,null,null,null,null,null,"A",";","E","I","I",null,"O",null,"U","O","I","A","V","G","D","E","Z","I","Th","I","K","L","M","N","X","O","P","R",null,"S","T","Y","F","H","Ps","O","I","Y","a","e","i","i","y","a","v","g","d","e","z","i","th","i","k","l","m","n","x","o","p","r","s","s","t","y","f","h","ps","o","i","y","o","y","o",null,"b","th","U","U","U","ph","p","&",null,null,"St","st","W","w","Q","q","Sp","sp","Sh","sh","F","f","Kh","kh","H","h","G","g","CH","ch","Ti","ti","k","r","c","j"],KL[4]=["Jo","Yo","Dj","Gj","Ie","Dz","I","Yi","J","Lj","Nj","Tsh","Kj","I","U","Dzh","A","B","V","G","D","E","Zh","Z","I","Y","K","L","M","N","O","P","R","S","T","U","F","H","C","Ch","Sh","Shch",null,"Y",null,"E","Yu","Ya","a","b","v","g","d","e","zh","z","i","y","k","l","m","n","o","p","r","s","t","u","f","h","c","ch","sh","shch",null,"y",null,"e","yu","ya","je","yo","dj","gj","ie","dz","i","yi","j","lj","nj","tsh","kj","i","u","dzh","O","o","E","e","Ie","ie","E","e","Ie","ie","O","o","Io","io","Ks","ks","Ps","ps","F","f","Y","y","Y","y","u","u","O","o","O","o","Ot","ot","Q","q","*1000*",null,null,null,null,null,"*100.000*","*1.000.000*",null,null,'"','"',"R'","r'","G'","g'","G'","g'","G'","g'","Zh'","zh'","Z'","z'","K'","k'","K'","k'","K'","k'","K'","k'","N'","n'","Ng","ng","P'","p'","Kh","kh","S'","s'","T'","t'","U","u","U'","u'","Kh'","kh'","Tts","tts","Ch'","ch'","Ch'","ch'","H","h","Ch","ch","Ch'","ch'","`","Zh","zh","K'","k'",null,null,"N'","n'",null,null,"Ch","ch",null,null,null,"a","a","A","a","Ae","ae","Ie","ie","@","@","@","@","Zh","zh","Z","z","Dz","dz","I","i","I","i","O","o","O","o","O","o","E","e","U","u","U","u","U","u","Ch","ch",null,null,"Y","y"],KL[5]=[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"A","B","G","D","E","Z","E","E","T`","Zh","I","L","Kh","Ts","K","H","Dz","Gh","Ch","M","Y","N","Sh","O","Ch`","P","J","Rh","S","V","T","R","Ts`","W","P`","K`","O","F",null,null,"<","'","/","!",",","?",".",null,"a","b","g","d","e","z","e","e","t`","zh","i","l","kh","ts","k","h","dz","gh","ch","m","y","n","sh","o","ch`","p","j","rh","s","v","t","r","ts`","w","p`","k`","o","f","ew",null,".","-",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"@","e","a","o","i","e","e","a","a","o",null,"u","'",null,null,null,null,null,null,":",null,null,null,null,null,null,null,null,null,null,null,null,null,"b","g","d","h","v","z","kh","t","y","k","k","l","m","m","n","n","s","`","p","p","ts","ts","q","r","sh","t",null,null,null,null,null,"V","oy","i","'",'"'],KL[6]=[null,null,null,null,null,null,null,null,null,null,null,null,",",null,null,null,null,null,null,null,null,null,null,null,null,null,null,";",null,null,null,"?",null,null,"a","'","w'",null,"y'",null,"b","@","t","th","j","H","kh","d","dh","r","z","s","sh","S","D","T","Z","aa","G",null,null,null,null,null,null,"f","q","k","l","m","n","h","w","~","y","an","un","in","a","u","i","W",null,null,"'","'",null,null,null,null,null,null,null,null,null,null,"0","1","2","3","4","5","6","7","8","9","%",".",",","*",null,null,null,"'","'","'",null,"'","'w","'u","'y","tt","tth","b","t","T","p","th","bh","'h","H","ny","dy","H","ch","cch","dd","D","D","Dt","dh","ddh","d","D","D","rr","R","R","R","R","R","R","j","R","S","S","S","S","S","T","GH","F","F","F","v","f","ph","Q","Q","kh","k","K","K","ng","K","g","G","N","G","G","G","L","L","L","L","N","N","N","N","N","h","Ch","hy","h","H","@","W","oe","oe","u","yu","yu","W","v","y","Y","Y","W",null,null,"y","y'",".","ae",null,null,null,null,null,null,null,"@","#",null,null,null,null,null,null,null,null,null,null,"^",null,null,null,null,null,null,"0","1","2","3","4","5","6","7","8","9","Sh","D","Gh","&","+m"],KL[7]=["//","/",",","!","!","-",",",",",";","?","~","{","}","*",null,null,"'",null,"b","g","g","d","d","h","w","z","H","t","t","y","yh","k","l","m","n","s","s","`","p","p","S","q","r","sh","t",null,null,null,"a","a","a","A","A","A","e","e","e","E","i","i","u","u","u","o",null,"`","'",null,null,"X","Q","@","@","|","+",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"h","sh","n","r","b","L","k","'","v","m","f","dh","th","l","g","ny","s","d","z","t","y","p","j","ch","tt","hh","kh","th","z","sh","s","d","t","z","`","gh","q","w","a","aa","i","ee","u","oo","e","ey","o","oa"],KL[9]=[null,"N","N","H",null,"a","aa","i","ii","u","uu","R","L","eN","e","e","ai","oN","o","o","au","k","kh","g","gh","ng","c","ch","j","jh","ny","tt","tth","dd","ddh","nn","t","th","d","dh","n","nnn","p","ph","b","bh","m","y","r","rr","l","l","lll","v","sh","ss","s","h",null,null,"'","'","aa","i","ii","u","uu","R","RR","eN","e","e","ai","oN","o","o","au",null,null,null,"AUM","'","'","`","'",null,null,null,"q","khh","ghh","z","dddh","rh","f","yy","RR","LL","L","LL"," / "," // ","0","1","2","3","4","5","6","7","8","9",".",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"N","N","H",null,"a","aa","i","ii","u","uu","R","RR",null,null,"e","ai",null,null,"o","au","k","kh","g","gh","ng","c","ch","j","jh","ny","tt","tth","dd","ddh","nn","t","th","d","dh","n",null,"p","ph","b","bh","m","y","r",null,"l",null,null,null,"sh","ss","s","h",null,null,"'",null,"aa","i","ii","u","uu","R","RR",null,null,"e","ai",null,null,"o","au",null,null,null,null,null,null,null,null,null,null,"+",null,null,null,null,"rr","rh",null,"yy","RR","LL","L","LL",null,null,"0","1","2","3","4","5","6","7","8","9","r'","r`","Rs","Rs","1/","2/","3/","4/"," 1 - 1/","/16"],KL[10]=[null,null,"N",null,null,"a","aa","i","ii","u","uu",null,null,null,null,"ee","ai",null,null,"oo","au","k","kh","g","gh","ng","c","ch","j","jh","ny","tt","tth","dd","ddh","nn","t","th","d","dh","n",null,"p","ph","b","bb","m","y","r",null,"l","ll",null,"v","sh",null,"s","h",null,null,"'",null,"aa","i","ii","u","uu",null,null,null,null,"ee","ai",null,null,"oo","au",null,null,null,null,null,null,null,null,null,null,null,null,"khh","ghh","z","rr",null,"f",null,null,null,null,null,null,null,"0","1","2","3","4","5","6","7","8","9","N","H",null,null,"G.E.O.",null,null,null,null,null,null,null,null,null,null,null,null,"N","N","H",null,"a","aa","i","ii","u","uu","R",null,"eN",null,"e","ai","oN",null,"o","au","k","kh","g","gh","ng","c","ch","j","jh","ny","tt","tth","dd","ddh","nn","t","th","d","dh","n",null,"p","ph","b","bh","m","ya","r",null,"l","ll",null,"v","sh","ss","s","h",null,null,"'","'","aa","i","ii","u","uu","R","RR","eN",null,"e","ai","oN",null,"o","au",null,null,null,"AUM",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"RR",null,null,null,null,null,"0","1","2","3","4","5","6","7","8","9"],KL[11]=[null,"N","N","H",null,"a","aa","i","ii","u","uu","R","L",null,null,"e","ai",null,null,"o","au","k","kh","g","gh","ng","c","ch","j","jh","ny","tt","tth","dd","ddh","nn","t","th","d","dh","n",null,"p","ph","b","bh","m","y","r",null,"l","ll",null,null,"sh","ss","s","h",null,null,"'","'","aa","i","ii","u","uu","R",null,null,null,"e","ai",null,null,"o","au",null,null,null,null,null,null,null,null,null,"+","+",null,null,null,null,"rr","rh",null,"yy","RR","LL",null,null,null,null,"0","1","2","3","4","5","6","7","8","9",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"N","H",null,"a","aa","i","ii","u","uu",null,null,null,"e","ee","ai",null,"o","oo","au","k",null,null,null,"ng","c",null,"j",null,"ny","tt",null,null,null,"nn","t",null,null,null,"n","nnn","p",null,null,null,"m","y","r","rr","l","ll","lll","v",null,"ss","s","h",null,null,null,null,"aa","i","ii","u","uu",null,null,null,"e","ee","ai",null,"o","oo","au",null,null,null,null,null,null,null,null,null,null,"+",null,null,null,null,null,null,null,null,null,null,null,null,null,null,"0","1","2","3","4","5","6","7","8","9","+10+","+100+","+1000+"],KL[12]=[null,"N","N","H",null,"a","aa","i","ii","u","uu","R","L",null,"e","ee","ai",null,"o","oo","au","k","kh","g","gh","ng","c","ch","j","jh","ny","tt","tth","dd","ddh","nn","t","th","d","dh","n",null,"p","ph","b","bh","m","y","r","rr","l","ll",null,"v","sh","ss","s","h",null,null,null,null,"aa","i","ii","u","uu","R","RR",null,"e","ee","ai",null,"o","oo","au",null,null,null,null,null,null,null,null,"+","+",null,null,null,null,null,null,null,null,null,"RR","LL",null,null,null,null,"0","1","2","3","4","5","6","7","8","9",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"N","H",null,"a","aa","i","ii","u","uu","R","L",null,"e","ee","ai",null,"o","oo","au","k","kh","g","gh","ng","c","ch","j","jh","ny","tt","tth","dd","ddh","nn","t","th","d","dh","n",null,"p","ph","b","bh","m","y","r","rr","l","ll",null,"v","sh","ss","s","h",null,null,null,null,"aa","i","ii","u","uu","R","RR",null,"e","ee","ai",null,"o","oo","au",null,null,null,null,null,null,null,null,"+","+",null,null,null,null,null,null,null,"lll",null,"RR","LL",null,null,null,null,"0","1","2","3",
1"4","5","6","7","8","9"],KL[13]=[null,null,"N","H",null,"a","aa","i","ii","u","uu","R","L",null,"e","ee","ai",null,"o","oo","au","k","kh","g","gh","ng","c","ch","j","jh","ny","tt","tth","dd","ddh","nn","t","th","d","dh","n",null,"p","ph","b","bh","m","y","r","rr","l","ll","lll","v","sh","ss","s","h",null,null,null,null,"aa","i","ii","u","uu","R",null,null,"e","ee","ai",null,"o","oo","au",null,null,null,null,null,null,null,null,null,null,"+",null,null,null,null,null,null,null,null,"RR","LL",null,null,null,null,"0","1","2","3","4","5","6","7","8","9",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"N","H",null,"a","aa","ae","aae","i","ii","u","uu","R","RR","L","LL","e","ee","ai","o","oo","au",null,null,null,"k","kh","g","gh","ng","nng","c","ch","j","jh","ny","jny","nyj","tt","tth","dd","ddh","nn","nndd","t","th","d","dh","n",null,"nd","p","ph","b","bh","m","mb","y","r",null,"l",null,null,"v","sh","ss","s","h","ll","f",null,null,null,null,null,null,null,null,"aa","ae","aae","i","ii","u",null,"uu",null,"R","e","ee","ai","o","oo","au","L",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"RR","LL"," . "],KL[14]=[null,"k","kh","kh","kh","kh","kh","ng","cch","ch","ch","ch","ch","y","d","t","th","th","th","n","d","t","th","th","th","n","b","p","ph","f","ph","f","ph","m","y","r","R","l","L","w","s","s","s","h","l","`","h","~","a","a","aa","am","i","ii","ue","uue","u","uu","'",null,null,null,null,"Bh.","e","ae","o","ai","ai","ao","+",null,null,null,null,null,null,"M",null," * ","0","1","2","3","4","5","6","7","8","9"," // "," /// ",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"k","kh",null,"kh",null,null,"ng","ch",null,"s",null,null,"ny",null,null,null,null,null,null,"d","h","th","th",null,"n","b","p","ph","f","ph","f",null,"m","y","r",null,"l",null,"w",null,null,"s","h",null,"`",null,"~","a",null,"aa","am","i","ii","y","yy","u","uu",null,"o","l","ny",null,null,"e","ei","o","ay","ai",null,"+",null,null,null,null,null,null,"M",null,null,"0","1","2","3","4","5","6","7","8","9",null,null,"hn","hm"],KL[15]=["AUM",null,null,null,null,null,null,null," // "," * ",null,"-"," / "," / "," // "," -/ "," +/ "," X/ "," /XX/ "," /X/ ",",",null,null,null,null,null,null,null,null,null,null,null,"0","1","2","3","4","5","6","7","8","9",".5","1.5","2.5","3.5","4.5","5.5","6.5","7.5","8.5","-.5","+","*","^","_",null,"~",null,"]","[[","]]",null,null,"k","kh","g","gh","ng","c","ch","j",null,"ny","tt","tth","dd","ddh","nn","t","th","d","dh","n","p","ph","b","bh","m","ts","tsh","dz","dzh","w","zh","z","'","y","r","l","sh","ssh","s","h","a","kss","r",null,null,null,null,null,null,"aa","i","ii","u","uu","R","RR","L","LL","e","ee","o","oo","M","H","i","ii",null,null,null,null,null,null,null,null,null,null,null,null,null,null,"k","kh","g","gh","ng","c","ch","j",null,"ny","tt","tth","dd","ddh","nn","t","th","d","dh","n","p","ph","b","bh","m","ts","tsh","dz","dzh","w","zh","z","'","y","r","l","sh","ss","s","h","a","kss","w","y","r",null,"X"," :X: "," /O/ "," /o/ "," \\o\\ "," (O) "],KL[16]=["k","kh","g","gh","ng","c","ch","j","jh","ny","nny","tt","tth","dd","ddh","nn","tt","th","d","dh","n","p","ph","b","bh","m","y","r","l","w","s","h","ll","a",null,"i","ii","u","uu","e",null,"o","au",null,"aa","i","ii","u","uu","e","ai",null,null,null,"N","'",":",null,null,null,null,null,null,null,"0","1","2","3","4","5","6","7","8","9"," / "," // ","n*","r*","l*","e*","sh","ss","R","RR","L","LL","R","RR","L","LL",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"A","B","G","D","E","V","Z","T`","I","K","L","M","N","O","P","Zh","R","S","T","U","P`","K`","G'","Q","Sh","Ch`","C`","Z'","C","Ch","X","J","H","E","Y","W","Xh","OE",null,null,null,null,null,null,null,null,null,null,"a","b","g","d","e","v","z","t`","i","k","l","m","n","o","p","zh","r","s","t","u","p`","k`","g'","q","sh","ch`","c`","z'","c","ch","x","j","h","e","y","w","xh","oe","f",null,null,null,null," // "],KL[17]=["g","gg","n","d","dd","r","m","b","bb","s","ss",null,"j","jj","c","k","t","p","h","ng","nn","nd","nb","dg","rn","rr","rh","rN","mb","mN","bg","bn",null,"bs","b
1sg","bst","bsb","bss","bsj","bj","bc","bt","bp","bN","bbN","sg","sn","sd","sr","sm","sb","sbg","sss","s","sj","sc","sk","st","sp","sh",null,null,null,null,"Z","g","d","m","b","s","Z",null,"j","c","t","p","N","j",null,null,null,null,"ck","ch",null,null,"pb","pN","hh","Q",null,null,null,null,null,null,null,"a","ae","ya","yae","eo","e","yeo","ye","o","wa","wae","oe","yo","u","weo","we","wi","yu","eu","yi","i","a-o","a-u","ya-o","ya-yo","eo-o","eo-u","eo-eu","yeo-o","yeo-u","o-eo","o-e","o-ye","o-o","o-u","yo-ya","yo-yae","yo-yeo","yo-o","yo-i","u-a","u-ae","u-eo-eu","u-ye","u-u","yu-a","yu-eo","yu-e","yu-yeo","yu-ye","yu-u","yu-i","eu-u","eu-eu","yi-u","i-a","i-ya","i-o","i-u","i-eu","i-U","U","U-eo","U-u","U-i","UU",null,null,null,null,null,"g","gg","gs","n","nj","nh","d","l","lg","lm","lb","ls","lt","lp","lh","m","b","bs","s","ss","ng","j","c","k","t","p","h","gl","gsg","ng","nd","ns","nZ","nt","dg","tl","lgs","ln","ld","lth","ll","lmg","lms","lbs","lbh","rNp","lss","lZ","lk","lQ","mg","ml","mb","ms","mss","mZ","mc","mh","mN","bl","bp","ph","pN","sg","sd","sl","sb","Z","g","ss",null,"kh","N","Ns","NZ","pb","pN","hn","hl","hm","hb","Q"],KL[18]=["ha","hu","hi","haa","hee","he","ho",null,"la","lu","li","laa","lee","le","lo","lwa","hha","hhu","hhi","hhaa","hhee","hhe","hho","hhwa","ma","mu","mi","maa","mee","me","mo","mwa","sza","szu","szi","szaa","szee","sze","szo","szwa","ra","ru","ri","raa","ree","re","ro","rwa","sa","su","si","saa","see","se","so","swa","sha","shu","shi","shaa","shee","she","sho","shwa","qa","qu","qi","qaa","qee","qe","qo",null,"qwa",null,"qwi","qwaa","qwee","qwe",null,null,"qha","qhu","qhi","qhaa","qhee","qhe","qho",null,"qhwa",null,"qhwi","qhwaa","qhwee","qhwe",null,null,"ba","bu","bi","baa","bee","be","bo","bwa","va","vu","vi","vaa","vee","ve","vo","vwa","ta","tu","ti","taa","tee","te","to","twa","ca","cu","ci","caa","cee","ce","co","cwa","xa","xu","xi","xaa","xee","xe","xo",null,"xwa",null,"xwi","xwaa","xwee","xwe",null,null,"na","nu","ni","naa","nee","ne","no","nwa","nya","nyu","nyi","nyaa","nyee","nye","nyo","nywa","'a","'u",null,"'aa","'ee","'e","'o","'wa","ka","ku","ki","kaa","kee","ke","ko",null,"kwa",null,"kwi","kwaa","kwee","kwe",null,null,"kxa","kxu","kxi","kxaa","kxee","kxe","kxo",null,"kxwa",null,"kxwi","kxwaa","kxwee","kxwe",null,null,"wa","wu","wi","waa","wee","we","wo",null,"`a","`u","`i","`aa","`ee","`e","`o",null,"za","zu","zi","zaa","zee","ze","zo","zwa","zha","zhu","zhi","zhaa","zhee","zhe","zho","zhwa","ya","yu","yi","yaa","yee","ye","yo",null,"da","du","di","daa","dee","de","do","dwa","dda","ddu","ddi","ddaa","ddee","dde","ddo","ddwa"],KL[19]=["ja","ju","ji","jaa","jee","je","jo","jwa","ga","gu","gi","gaa","gee","ge","go",null,"gwa",null,"gwi","gwaa","gwee","gwe",null,null,"gga","ggu","ggi","ggaa","ggee","gge","ggo",null,"tha","thu","thi","thaa","thee","the","tho","thwa","cha","chu","chi","chaa","chee","che","cho","chwa","pha","phu","phi","phaa","phee","phe","pho","phwa","tsa","tsu","tsi","tsaa","tsee","tse","tso","tswa","tza","tzu","tzi","tzaa","tzee","tze","tzo",null,"fa","fu","fi","faa","fee","fe","fo","fwa","pa","pu","pi","paa","pee","pe","po","pwa","rya","mya","fya",null,null,null,null,null,null," ",".",",",";",":",":: ","?","//","1","2","3","4","5","6","7","8","9","10+","20+","30+","40+","50+","60+","70+","80+","90+","100+","10,000+",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"a","e","i","o","u","v","ga","ka","ge","gi","go","gu","gv","ha","he","hi","ho","hu","hv","la","le","li","lo","lu","lv","ma","me","mi","mo","mu","na","hna","nah","ne","ni","no","nu","nv","qua","que","qui","quo","quu","quv","sa","s","se","si","so","su","sv","da","ta","de","te","di","ti","do","du","dv","dla","tla","tle","tli","tlo","tlu","tlv","tsa","tse","tsi","tso","tsu","tsv","wa","we","wi","wo","wu","wv","ya","ye","yi","yo","yu","yv"],KL[20]=[null,"ai","aai","i","ii","u","uu","oo","ee","i","a","aa","we","we","wi","wi","wii","wii","wo","wo","woo","woo","woo","wa","wa","waa","waa","waa","ai","w","'","t","k","sh","s","n","w","n",null,"w","c","?","l","en","in","on","an","pai","paai","pi","pii","pu","puu","poo","hee","hi","pa","paa","pwe","pwe","pwi","pwi","pwii","pwii","pwo","pwo","pwoo","pwoo","pwa","pwa","pwaa","pwaa","pwaa","p","p","h","tai","taai","ti","tii","tu","tuu","too","dee","di","ta","taa","twe","t
1we","twi","twi","twii","twii","two","two","twoo","twoo","twa","twa","twaa","twaa","twaa","t","tte","tti","tto","tta","kai","kaai","ki","kii","ku","kuu","koo","ka","kaa","kwe","kwe","kwi","kwi","kwii","kwii","kwo","kwo","kwoo","kwoo","kwa","kwa","kwaa","kwaa","kwaa","k","kw","keh","kih","koh","kah","gai","caai","gi","gii","gu","guu","coo","ga","gaa","cwe","cwe","cwi","cwi","cwii","cwii","cwo","cwo","cwoo","cwoo","cwa","cwa","cwaa","cwaa","cwaa","g","th","mai","maai","mi","mii","mu","muu","moo","ma","maa","mwe","mwe","mwi","mwi","mwii","mwii","mwo","mwo","mwoo","mwoo","mwa","mwa","mwaa","mwaa","mwaa","m","m","mh","m","m","nai","naai","ni","nii","nu","nuu","noo","na","naa","nwe","nwe","nwa","nwa","nwaa","nwaa","nwaa","n","ng","nh","lai","laai","li","lii","lu","luu","loo","la","laa","lwe","lwe","lwi","lwi","lwii","lwii","lwo","lwo","lwoo","lwoo","lwa","lwa","lwaa","lwaa","l","l","l","sai","saai","si","sii","su","suu","soo","sa","saa","swe","swe","swi","swi","swii","swii","swo","swo","swoo","swoo"],KL[21]=["swa","swa","swaa","swaa","swaa","s","s","sw","s","sk","skw","sW","spwa","stwa","skwa","scwa","she","shi","shii","sho","shoo","sha","shaa","shwe","shwe","shwi","shwi","shwii","shwii","shwo","shwo","shwoo","shwoo","shwa","shwa","shwaa","shwaa","sh","jai","yaai","ji","jii","ju","juu","yoo","ja","jaa","ywe","ywe","ywi","ywi","ywii","ywii","ywo","ywo","ywoo","ywoo","ywa","ywa","ywaa","ywaa","ywaa","j","y","y","yi","re","rai","le","raai","ri","rii","ru","ruu","lo","ra","raa","la","rwaa","rwaa","r","r","r","vai","faai","vi","vii","vu","vuu","va","vaa","fwaa","fwaa","v","the","the","thi","thi","thii","thii","tho","thoo","tha","thaa","thwaa","thwaa","th","tthe","tthi","ttho","ttha","tth","tye","tyi","tyo","tya","he","hi","hii","ho","hoo","ha","haa","h","h","hk","qaai","qi","qii","qu","quu","qa","qaa","q","tlhe","tlhi","tlho","tlha","re","ri","ro","ra","ngaai","ngi","ngii","ngu","nguu","nga","ngaa","ng","nng","she","shi","sho","sha","the","thi","tho","tha","th","lhi","lhii","lho","lhoo","lha","lhaa","lh","the","thi","thii","tho","thoo","tha","thaa","th","b","e","i","o","a","we","wi","wo","wa","ne","ni","no","na","ke","ki","ko","ka","he","hi","ho","ha","ghu","gho","ghe","ghee","ghi","gha","ru","ro","re","ree","ri","ra","wu","wo","we","wee","wi","wa","hwu","hwo","hwe","hwee","hwi","hwa","thu","tho","the","thee","thi","tha","ttu","tto","tte","ttee","tti","tta","pu","po","pe","pee","pi","pa","p","gu","go","ge","gee","gi","ga","khu","kho","khe","khee","khi","kha","kku","kko","kke","kkee","kki"],KL[22]=["kka","kk","nu","no","ne","nee","ni","na","mu","mo","me","mee","mi","ma","yu","yo","ye","yee","yi","ya","ju","ju","jo","je","jee","ji","ji","ja","jju","jjo","jje","jjee","jji","jja","lu","lo","le","lee","li","la","dlu","dlo","dle","dlee","dli","dla","lhu","lho","lhe","lhee","lhi","lha","tlhu","tlho","tlhe","tlhee","tlhi","tlha","tlu","tlo","tle","tlee","tli","tla","zu","zo","ze","zee","zi","za","z","z","dzu","dzo","dze","dzee","dzi","dza","su","so","se","see","si","sa","shu","sho","she","shee","shi","sha","sh","tsu","tso","tse","tsee","tsi","tsa","chu","cho","che","chee","chi","cha","ttsu","ttso","ttse","ttsee","ttsi","ttsa","X",".","qai","ngai","nngi","nngii","nngo","nngoo","nnga","nngaa",null,null,null,null,null,null,null,null,null," ","b","l","f","s","n","h","d","t","c","q","m","g","ng","z","r","a","o","u","e","i","ch","th","ph","p","x","p","<",">",null,null,null,"f","v","u","yr","y","w","th","th","a","o","ac","ae","o","o","o","oe","on","r","k","c","k","g","ng","g","g","w","h","h","h","h","n","n","n","i","e","j","g","ae","a","eo","p","z","s","s","s","c","z","t","t","d","b","b","p","p","e","m","m","m","l","l","ng","ng","d","o","ear","ior","qu","qu","qu","s","yr","yr","yr","q","x",".",":","+","17","18","19"],KL[23]=[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"k","kh","g","gh","ng","c","ch","j","jh","ny","t","tth","d","ddh","nn","t","th","d","dh","n","p","ph","b","bh","m","y","r","l","v","sh","ss","s","h","l","q","a","aa","i","ii","u","uk","uu","uuv","ry","ryy","ly","lyy","e","ai","oo","oo","au","a","aa","aa","i","ii","y","yy","u","uu","ua","oe","ya","ie","e","ae","ai","oo","au","M","H","a`",null,null,null,"r",null,"!",null,null,null,null,null,"."," // ",":","+","++"," * "," /// ","KR","'",null,null,null,"0","1","2","3","4","5","6","7","8","9"],KL[24]=[" @ "," ... ",",",". ",": "," // ",null,"-",",",". ",null,null,null,null,null,null,"0","1","2","3","4","5","6","7","8","9",null,null,null,null,null,null,"a","e","i","o","u","O","U","ee","n","ng","b","p","q","g","m","l","s","sh","t","d","ch","j","y","r","w","f","k","kha","ts","z","h","zr","lh","zh","ch","-","e","i","o","u","O","U","ng","b","p","q","g","m","t","d","ch","j","ts","y","w","k","g","h","jy","ny","dz","e","i","iy","U","u","ng","k","g","h","p","sh","t","d","j","f","g","h","ts","z","r","ch","zh","i","k","r","f","zh",null,null,null,null,null,null,null,null,null,"H","X","W","M"," 3 "," 333 ","a","i","k","ng","c","tt","tth","dd","nn","t","d","p","ph","ss","zh","z","a","t","zh","gh","ng","c","jh","tta","ddh","t","dh","ss","cy","zh","z","u","y","bh","'"],KL[30]=["A","a","B","b","B","b","B","b","C","c","D","d","D","d","D","d","D","d","D","d","E","e","E","e","E","e","E","e","E","e","F","f","G","g","H","h","H","h","H","h","H","h","H","h","I","i","I","i","K","k","K","k","K","k","L","l","L","l","L","l","L","l","M","m","M","m","M","m","N","n","N","n","N","n","N","n","O","o","O","o","O","o","O","o","P","p","P","p","R","r","R","r","R","r","R","r","S","s","S","s","S","s","S","s","S","s","T","t","T","t","T","t","T","t","U","u","U","u","U","u","U","u","U","u","V","v","V","v","W","w","W","w","W","w","W","w","W","w","X","x","X","x","Y","y","Z","z","Z","z","Z","z","h","t","w","y","a","S",null,null,null,null,"A","a","A","a","A","a","A","a","A","a","A","a","A","a","A","a","A","a","A","a","A","a","A","a","E","e","E","e","E","e","E","e","E","e","E","e","E","e","E","e","I","i","I","i","O","o","O","o","O","o","O","o","O","o","O","o","O","o","O","o","O","o","O","o","O","o","O","o","U","u","U","u","U","u","U","u","U","u","U","u","U","u","Y","y","Y","y","Y","y","Y","y"],KL[31]=XL,KL[32]=HL,KL[33]=[null,null,"C",null,null,null,null,null,null,null,"g","H","H","H","h",null,"I","I","L","l","lb","N","no","(p)","P","P","Q","R","R","R",null,null,"(sm)","(tel)","(tm)",null,"Z",null,null,"mho","Z",null,null,null,"B","C","e","e",null,"F",null,"M","o",null,null,null,null,"i","Q","(fax)","pi",null,null,"Pi",null,"G","L","L","Y","D","d","e","i","j",null,null,"per",null,null,null,null,null,null," 1/3 "," 2/3 "," 1/5 "," 2/5 "," 3/5 "," 4/5 "," 1/6 "," 5/6 "," 1/8 "," 3/8 "," 5/8 "," 7/8 "," 1/","I","II","III","IV","V","VI","VII","VIII","IX","X","XI","XII","L","C","D","M","i","ii","iii","iv","v","vi","vii","viii","ix","x","xi","xii","l","c","d","m","(D","D)","((|))",")",null,null,null,null,null,null,null,null,null,null,null,null,"-","|","-","|","-","|","\\","/","\\","/","-","-","~","~","-","|","-","|","-","-","-","|","-","|","|","-","-","-","-","-","-","|","|","|","|","|","|","|","^","V","\\","=","V","^","-","-","|","|","-","-","|","|","=","|","=","=","|","=","|","=","=","=","=","=","=","|","=","|","=","|","\\","/","\\","/","=","=","~","~","|","|","-","|","-","|","-","-","-","|","-","|","|","|","|","|","|","|","-","\\","\\","|"],KL[37]=["-","-","|","|","-","-","|","|","-","-","|","|","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","-","-","|","|","-","|","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","+","/","\\","X","-","|","-","|","-","|","-","|","-","|","-","|","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","-","|",null,null,null,null,null,null,null,null,null,null,"#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","#","^","^","^","^",">",">",">",">",">",">","V","V","V","V","<","<","<","<","<","<","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","*","#","#","#","#","#","^","^","^","O","#","#","#","#","#","#","#","#"],KL[40]=[" ","a","1","b","'","k","2","l","@","c","i","f","/","m","s","p",'"',"e","3","h","9","o","6","r","^","d","j","g",">","n","t","q",",","*","5","<","-","u","8","v",".","%","[","$","+","x","!","&",";",":","4","\\","0","z","7","(","_","?","w","]","#","y",")","=","[d7]","[d17]","[d27]","[d127]","[d37]","[d137]","[d237]","[d1237]","[d47]","[d147]","[d247]","[d1247]","[d347]","[d1347]","[d2347]","[d12347]","[d57]","[d157]","[d257]","[d1257]","[d357]","[d1357]","[d2357]","[d12357]","[d457]","[d1457]","[d2457]","[d12457]","[d3457]","[d13457]","[d23457]","[d123457]","[d67]","[d167]","[d267]","[d1267]","[d367]","[d1367]","[d2367]","[d12367]","[d467]","[d1467]","[d2467]","[d12467]","[d3467]","[d13467]","[d23467]","[d123467]","[d567]","[d1567]","[d2567]","[d12567]","[d3567]","[d13567]","[d23567]","[d123567]","[d4567]","[d14567]","[d24567]","[d124567]","[d34567]","[d134567]","[d234567]","[d1234567]","[d8]","[d18]","[d28]","[d128]","[d38]","[d138]","[d238]","[d1238]","[d48]","[d148]","[d248]","[d1248]","[d348]","[d1348]","[d2348]","[d12348]","[d58]","[d158]","[d258]","[d1258]","[d358]","[d1358]","[d2358]","[d12358]","[d458]","[d1458]","[d2458]","[d12458]","[d3458]","[d13458]","[d23458]","[d123458]","[d68]","[d168]","[d268]","[d1268]","[d368]","[d1368]","[d2368]","[d12368]","[d468]","[d1468]","[d2468]","[d12468]","[d3468]","[d13468]","[d23468]","[d123468]","[d568]","[d1568]","[d2568]","[d12568]","[d3568]","[d13568]","[d23568]","[d123568]","[d4568]","[d14568]","[d24568]","[d124568]","[d34568]","[d134568]","[d234568]","[d1234568]","[d78]","[d178]","[d278]","[d1278]","[d378]","[d1378]","[d2378]","[d12378]","[d478]","[d1478]","[d2478]","[d12478]","[d3478]","[d13478]","[d23478]","[d123478]","[d578]","[d1578]","[d2578]","[d12578]","[d3578]","[d13578]","[d23578]","[d123578]","[d4578]","[d14578]","[d24578]","[d124578]","[d34578]","[d134578]","[d234578]","[d1234578]","[d678]","[d1678]","[d2678]","[d12678]","[d3678]","[d13678]","[d23678]","[d123678]","[d4678]","[d14678]","[d24678]","[d124678]","[d34678]","[d134678]","[d234678]","[d1234678]","[d5678]","[d15678]","[d25678]","[d125678]","[d35678]","[d135678]","[d235678]","[d1235678]","[d45678]","[d145678]","[d245678]","[d1245678]","[d345678]","[d1345678]","[d2345678]","[d12345678]"],KL[48]=[" ",",",". ",'"',"[JIS]",'"',"/","0","<","> ","<<",">> ","[","] ","{","} ","[(",")] ","@","X ","[","] ","[[","]] ","((",")) ","[[","]] ","~ ","``","''",",,","@","1","2","3","4","5","6","7","8","9",null,null,null,null,null,null,"~","+","+","+","+",null,"@"," // ","+10+","+20+","+30+",null,null,null,null,null,null,"a","a","i","i","u","u","e","e","o","o","ka","ga","ki","gi","ku","gu","ke","ge","ko","go","sa","za","si","zi","su","zu","se","ze","so","zo","ta","da","ti","di","tu","tu","du","te","de","to","do","na","ni","nu","ne","no","ha","ba","pa","hi","bi","pi","hu","bu","pu","he","be","pe","ho","bo","po","ma","mi","mu","me","mo","ya","ya","yu","yu","yo","yo","ra","ri","ru","re","ro","wa","wa","wi","we","wo","n","vu",null,null,null,null,null,null,null,null,'"','"',null,null,"a","a","i","i","u","u","e","e","o","o","ka","ga","ki","gi","ku","gu","ke","ge","ko","go","sa","za","si","zi","su","zu","se","ze","so","zo","ta","da","ti","di","tu","tu","du","te","de","to","do","na","ni","nu","ne","no","ha","ba","pa","hi","bi","pi","hu","bu","pu","he","be","pe","ho","bo","po","ma","mi","mu","me","mo","ya","ya","yu","yu","yo","yo","ra","ri","ru","re","ro","wa","wa","wi","we","wo","n","vu","ka","ke","va","vi","ve","vo",null,null,'"','"'],KL[49]=[null,null,null,null,null,"B","P","M","F","D","T","N","L","G","K","H","J","Q","X","ZH","CH","SH","R","Z","C","S","A","O","E","EH","AI","EI","AU","O
1U","AN","EN","ANG","ENG","ER","I","U","IU","V","NG","GN",null,null,null,null,"g","gg","gs","n","nj","nh","d","dd","r","lg","lm","lb","ls","lt","lp","rh","m","b","bb","bs","s","ss",null,"j","jj","c","k","t","p","h","a","ae","ya","yae","eo","e","yeo","ye","o","wa","wae","oe","yo","u","weo","we","wi","yu","eu","yi","i",null,"nn","nd","ns","nZ","lgs","ld","lbs","lZ","lQ","mb","ms","mZ","mN","bg",null,"bsg","bst","bj","bt","bN","bbN","sg","sn","sd","sb","sj","Z",null,"N","Ns","NZ","pN","hh","Q","yo-ya","yo-yae","yo-i","yu-yeo","yu-ye","yu-i","U","U-i",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"BU","ZI","JI","GU","EE","ENN","OO","ONN","IR","ANN","INN","UNN","IM","NGG","AINN","AUNN","AM","OM","ONG","INNN","P","T","K","H"],KL[50]=["(g)","(n)","(d)","(r)","(m)","(b)","(s)","()","(j)","(c)","(k)","(t)","(p)","(h)","(ga)","(na)","(da)","(ra)","(ma)","(ba)","(sa)","(a)","(ja)","(ca)","(ka)","(ta)","(pa)","(ha)","(ju)",null,null,null,"(1) ","(2) ","(3) ","(4) ","(5) ","(6) ","(7) ","(8) ","(9) ","(10) ","(Yue) ","(Huo) ","(Shui) ","(Mu) ","(Jin) ","(Tu) ","(Ri) ","(Zhu) ","(You) ","(She) ","(Ming) ","(Te) ","(Cai) ","(Zhu) ","(Lao) ","(Dai) ","(Hu) ","(Xue) ","(Jian) ","(Qi) ","(Zi) ","(Xie) ","(Ji) ","(Xiu) ","<<",">>",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"(g)","(n)","(d)","(r)","(m)","(b)","(s)","()","(j)","(c)","(k)","(t)","(p)","(h)","(ga)","(na)","(da)","(ra)","(ma)","(ba)","(sa)","(a)","(ja)","(ca)","(ka)","(ta)","(pa)","(ha)",null,null,null,"KIS ","(1) ","(2) ","(3) ","(4) ","(5) ","(6) ","(7) ","(8) ","(9) ","(10) ","(Yue) ","(Huo) ","(Shui) ","(Mu) ","(Jin) ","(Tu) ","(Ri) ","(Zhu) ","(You) ","(She) ","(Ming) ","(Te) ","(Cai) ","(Zhu) ","(Lao) ","(Mi) ","(Nan) ","(Nu) ","(Shi) ","(You) ","(Yin) ","(Zhu) ","(Xiang) ","(Xiu) ","(Xie) ","(Zheng) ","(Shang) ","(Zhong) ","(Xia) ","(Zuo) ","(You) ","(Yi) ","(Zong) ","(Xue) ","(Jian) ","(Qi) ","(Zi) ","(Xie) ","(Ye) ",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"1M","2M","3M","4M","5M","6M","7M","8M","9M","10M","11M","12M",null,null,null,null,"a","i","u","u","o","ka","ki","ku","ke","ko","sa","si","su","se","so","ta","ti","tu","te","to","na","ni","nu","ne","no","ha","hi","hu","he","ho","ma","mi","mu","me","mo","ya","yu","yo","ra","ri","ru","re","ro","wa","wi","we","wo"],KL[51]=["apartment","alpha","ampere","are","inning","inch","won","escudo","acre","ounce","ohm","kai-ri","carat","calorie","gallon","gamma","giga","guinea","curie","guilder","kilo","kilogram","kilometer","kilowatt","gram","gram ton","cruzeiro","krone","case","koruna","co-op","cycle","centime","shilling","centi","cent","dozen","desi","dollar","ton","nano","knot","heights","percent","parts","barrel","piaster","picul","pico","building","farad","feet","bushel","franc","hectare","peso","pfennig","hertz","pence","page","beta","point","volt","hon","pound","hall","horn","micro","mile","mach","mark","mansion","micron","milli","millibar","mega","megaton","meter","yard","yard","yuan","liter","lira","rupee","ruble","rem","roentgen","watt","0h","1h","2h","3h","4h","5h","6h","7h","8h","9h","10h","11h","12h","13h","14h","15h","16h","17h","18h","19h","20h","21h","22h","23h","24h","HPA","da","AU","bar","oV","pc",null,null,null,null,"Heisei","Syouwa","Taisyou","Meiji","Inc.","pA","nA","microamp","mA","kA","kB","MB","GB","cal","kcal","pF","nF","microFarad","microgram","mg","kg","Hz","kHz","MHz","GHz","THz","microliter","ml","dl","kl","fm","nm","micrometer","mm","cm","km","mm^2","cm^2","m^2","km^2","mm^4","cm^3","m^3","km^3","m/s","m/s^2","Pa","kPa","MPa","GPa","rad","rad/s","rad/s^2","ps","ns","microsecond","ms","pV","nV","microvolt","mV","kV","MV","pW","nW","microwatt","mW","kW","MW","kOhm","MOhm","a.m.","Bq","cc","cd","C/kg","Co.","dB","Gy","ha","HP","in","K.K.","KM","kt","lm","ln","log","lx","mb","mil","mol","pH","p.m.","PPM","PR","sr","Sv","Wb",null,null,"1d","2d","3d","4d","5d","6d","7d","8d","9d","10d","11d","12d","13d","14d","15d","16d","17d","18d","19d","20d","21d","22d","23d","24d","25d","26d","27d","28d","29d","30d","31d"],KL[78]=["Yi","Ding","Kao","Qi","Shang","Xia",null,"Wan","Zhang","San","Shang","Xia","Ji","Bu","Yu","Mian","Gai","Chou","Chou","Zhuan","Qie","Pi","Shi","Shi","Qiu","Bing","Ye","Cong","Dong","Si","Cheng","Diu","Qiu","Liang","Diu","You","Liang","Yan","Bing","Sang","Gun","Jiu","Ge","Ya","Qiang","Zhong","Ji","Jie","Feng","Guan","Chuan","Chan","Lin","Zhuo","Zhu","Ha","Wan","Dan","Wei","Zhu","Jing","Li","Ju","Pie","Fu","Yi","Yi","Nai","Shime","Jiu","Jiu","Zhe","Me","Yi",null,"Zhi","Wu","Zha","Hu","Fa","Le","Zhong","Ping","Pang","Qiao","Hu","Guai","Cheng","Cheng","Yi","Yin",null,"Mie","Jiu","Qi","Ye","Xi","Xiang","Gai","Diu","Hal",null,"Shu","Twul","Shi","Ji","Nang","Jia","Kel","Shi",null,"Ol","Mai","Luan","Cal","Ru","Xue","Yan","Fu","Sha","Na","Gan","Sol","
1El","Cwul",null,"Gan","Chi","Gui","Gan","Luan","Lin","Yi","Jue","Liao","Ma","Yu","Zheng","Shi","Shi","Er","Chu","Yu","Yu","Yu","Yun","Hu","Qi","Wu","Jing","Si","Sui","Gen","Gen","Ya","Xie","Ya","Qi","Ya","Ji","Tou","Wang","Kang","Ta","Jiao","Hai","Yi","Chan","Heng","Mu",null,"Xiang","Jing","Ting","Liang","Xiang","Jing","Ye","Qin","Bo","You","Xie","Dan","Lian","Duo","Wei","Ren","Ren","Ji","La","Wang","Yi","Shi","Ren","Le","Ding","Ze","Jin","Pu","Chou","Ba","Zhang","Jin","Jie","Bing","Reng","Cong","Fo","San","Lun","Sya","Cang","Zi","Shi","Ta","Zhang","Fu","Xian","Xian","Tuo","Hong","Tong","Ren","Qian","Gan","Yi","Di","Dai","Ling","Yi","Chao","Chang","Sa",null,"Yi","Mu","Men","Ren","Jia","Chao","Yang","Qian","Zhong","Pi","Wan","Wu","Jian","Jie","Yao","Feng","Cang","Ren","Wang","Fen","Di","Fang"],KL[79]=["Zhong","Qi","Pei","Yu","Diao","Dun","Wen","Yi","Xin","Kang","Yi","Ji","Ai","Wu","Ji","Fu","Fa","Xiu","Jin","Bei","Dan","Fu","Tang","Zhong","You","Huo","Hui","Yu","Cui","Chuan","San","Wei","Chuan","Che","Ya","Xian","Shang","Chang","Lun","Cang","Xun","Xin","Wei","Zhu",null,"Xuan","Nu","Bo","Gu","Ni","Ni","Xie","Ban","Xu","Ling","Zhou","Shen","Qu","Si","Beng","Si","Jia","Pi","Yi","Si","Ai","Zheng","Dian","Han","Mai","Dan","Zhu","Bu","Qu","Bi","Shao","Ci","Wei","Di","Zhu","Zuo","You","Yang","Ti","Zhan","He","Bi","Tuo","She","Yu","Yi","Fo","Zuo","Kou","Ning","Tong","Ni","Xuan","Qu","Yong","Wa","Qian",null,"Ka",null,"Pei","Huai","He","Lao","Xiang","Ge","Yang","Bai","Fa","Ming","Jia","Er","Bing","Ji","Hen","Huo","Gui","Quan","Tiao","Jiao","Ci","Yi","Shi","Xing","Shen","Tuo","Kan","Zhi","Gai","Lai","Yi","Chi","Kua","Guang","Li","Yin","Shi","Mi","Zhu","Xu","You","An","Lu","Mou","Er","Lun","Tong","Cha","Chi","Xun","Gong","Zhou","Yi","Ru","Jian","Xia","Jia","Zai","Lu","Ko","Jiao","Zhen","Ce","Qiao","Kuai","Chai","Ning","Nong","Jin","Wu","Hou","Jiong","Cheng","Zhen","Zuo","Chou","Qin","Lu","Ju","Shu","Ting","Shen","Tuo","Bo","Nan","Hao","Bian","Tui","Yu","Xi","Cu","E","Qiu","Xu","Kuang","Ku","Wu","Jun","Yi","Fu","Lang","Zu","Qiao","Li","Yong","Hun","Jing","Xian","San","Pai","Su","Fu","Xi","Li","Fu","Ping","Bao","Yu","Si","Xia","Xin","Xiu","Yu","Ti","Che","Chou",null,"Yan","Lia","Li","Lai",null,"Jian","Xiu","Fu","He","Ju","Xiao","Pai","Jian","Biao","Chu","Fei","Feng","Ya","An","Bei","Yu","Xin","Bi","Jian"],KL[80]=["Chang","Chi","Bing","Zan","Yao","Cui","Lia","Wan","Lai","Cang","Zong","Ge","Guan","Bei","Tian","Shu","Shu","Men","Dao","Tan","Jue","Chui","Xing","Peng","Tang","Hou","Yi","Qi","Ti","Gan","Jing","Jie","Sui","Chang","Jie","Fang","Zhi","Kong","Juan","Zong","Ju","Qian","Ni","Lun","Zhuo","Wei","Luo","Song","Leng","Hun","Dong","Zi","Ben","Wu","Ju","Nai","Cai","Jian","Zhai","Ye","Zhi","Sha","Qing",null,"Ying","Cheng","Jian","Yan","Nuan","Zhong","Chun","Jia","Jie","Wei","Yu","Bing","Ruo","Ti","Wei","Pian","Yan","Feng","Tang","Wo","E","Xie","Che","Sheng","Kan","Di","Zuo","Cha","Ting","Bei","Ye","Huang","Yao","Zhan","Chou","Yan","You","Jian","Xu","Zha","Ci","Fu","Bi","Zhi","Zong","Mian","Ji","Yi","Xie","Xun","Si","Duan","Ce","Zhen","Ou","Tou","Tou","Bei","Za","Lu","Jie","Wei","Fen","Chang","Gui","Sou","Zhi","Su","Xia","Fu","Yuan","Rong","Li","Ru","Yun","Gou","Ma","Bang","Dian","Tang","Hao","Jie","Xi","Shan","Qian","Jue","Cang","Chu","San","Bei","Xiao","Yong","Yao","Tan","Suo","Yang","Fa","Bing","Jia","Dai","Zai","Tang",null,"Bin","Chu","Nuo","Can","Lei","Cui","Yong","Zao","Zong","Peng","Song","Ao","Chuan","Yu","Zhai","Cou","Shang","Qiang","Jing","Chi","Sha","Han","Zhang","Qing","Yan","Di","Xi","Lu","Bei","Piao","Jin","Lian","Lu","Man","Qian","Xian","Tan","Ying","Dong","Zhuan","Xiang","Shan","Qiao","Jiong","Tui","Zun","Pu","Xi","Lao","Chang","Guang","Liao","Qi","Deng","Chan","Wei","Ji","Fan","Hui","Chuan","Jian","Dan","Jiao","Jiu","Seng","Fen","Xian","Jue","E","Jiao","Jian","Tong","Lin","Bo","Gu",null,"Su","Xian","Jiang","Min","Ye","Jin","Jia","Qiao","Pi","Feng","Zhou","Ai","Sai"],KL[81]=["Yi","Jun","Nong","Chan","Yi","Dang","Jing","Xuan","Kuai","Jian","Chu","Dan","Jiao","Sha","Zai",null,"Bin","An","Ru","Tai","Chou","Chai","Lan","Ni","Jin","Qian","Meng","Wu","Ning","Qiong","Ni","Chang","Lie","Lei","Lu","Kuang","Bao","Du","Biao","Zan","Zhi","Si","You","Hao","Chen","Chen","Li","Teng","Wei","Long","Chu","Chan","Rang","Shu","Hui","Li","Luo","Zan","Nuo","Tang","Yan","Lei","Nang","Er","Wu","Yun","Zan","Yuan","Xiong","Chong","Zhao","Xiong","Xian","Guang","Dui","Ke","Dui","Mian","Tu","Chang","Er","Dui","Er","Xin","Tu","Si","Yan","Yan","Shi","Shi","Dang","Qian","Dou","Fen","Mao","Shen","Dou","Bai","Jing","Li","Huang","Ru","Wang","Nei","Quan","Liang","Yu","Ba","Gong","Liu","Xi",null,"Lan","Gong","Tian","Guan","Xing","Bing","Qi","Ju","Dian","Zi","Ppwun","Yang","Jian","Shou","Ji","Yi","Ji","Chan","Jiong","Mao","Ran","Nei","Yuan","Mao","Gang","Ran","Ce","Jiong","Ce","Zai","Gua","Jiong","Mao","Zhou","Mou","Gou","Xu","Mian","Mi","Rong","Yin","Xie","Kan","Jun","Nong","Yi","Mi","Shi","Guan","Meng","Zhong","Ju","Yuan","Ming","Kou","Lam","Fu","Xie","Mi","Bing","Dong","Tai","Gang","Feng","Bing","Hu","Chong","Jue","Hu","Kuang","Ye","Leng","Pan","Fu","Min","Dong","Xian","Lie","Xia","Jian","Jing","Shu","Mei","Tu","Qi","Gu","Zhun","Song","Jing","Liang","Qing","Diao","Ling","Dong","Gan","Jian","Yin","Cou","Yi","Li","Cang","Ming","Zhuen","Cui","Si","Duo","Jin","Lin","Lin","Ning","Xi","Du","Ji","Fan","Fan","Fan","Feng","Ju","Chu","Tako","Feng","Mok","Ci","Fu","Feng","Ping","Feng","Kai","Huang","Kai","Gan","Deng","Ping","Qu","Xiong","Kuai","Tu","Ao","Chu","Ji","Dang","Han","Han","Zao"],KL[82]=["Dao","Diao","Dao","Ren","Ren","Chuang","Fen","Qie","Yi","Ji","Kan","Qian","Cun","Chu","Wen","Ji","Dan","Xing","Hua","Wan","Jue","Li","Yue","Lie","Liu","Ze","Gang","Chuang","Fu","Chu","Qu","Ju","Shan","Min","Ling","Zhong","Pan","Bie","Jie","Jie","Bao","Li","Shan","Bie","Chan","Jing","Gua","Gen","Dao","Chuang","Kui","Ku","Duo","Er","Zhi","Shua","Quan","Cha","Ci","Ke","Jie","Gui","Ci","Gui","Kai","Duo","Ji","Ti","Jing","Lou","Gen","Ze","Yuan","Cuo","Xue","Ke","La","Qian","Cha","Chuang","Gua","Jian","Cuo","Li","Ti","Fe
1i","Pou","Chan","Qi","Chuang","Zi","Gang","Wan","Bo","Ji","Duo","Qing","Yan","Zhuo","Jian","Ji","Bo","Yan","Ju","Huo","Sheng","Jian","Duo","Duan","Wu","Gua","Fu","Sheng","Jian","Ge","Zha","Kai","Chuang","Juan","Chan","Tuan","Lu","Li","Fou","Shan","Piao","Kou","Jiao","Gua","Qiao","Jue","Hua","Zha","Zhuo","Lian","Ju","Pi","Liu","Gui","Jiao","Gui","Jian","Jian","Tang","Huo","Ji","Jian","Yi","Jian","Zhi","Chan","Cuan","Mo","Li","Zhu","Li","Ya","Quan","Ban","Gong","Jia","Wu","Mai","Lie","Jin","Keng","Xie","Zhi","Dong","Zhu","Nu","Jie","Qu","Shao","Yi","Zhu","Miao","Li","Jing","Lao","Lao","Juan","Kou","Yang","Wa","Xiao","Mou","Kuang","Jie","Lie","He","Shi","Ke","Jing","Hao","Bo","Min","Chi","Lang","Yong","Yong","Mian","Ke","Xun","Juan","Qing","Lu","Pou","Meng","Lai","Le","Kai","Mian","Dong","Xu","Xu","Kan","Wu","Yi","Xun","Weng","Sheng","Lao","Mu","Lu","Piao","Shi","Ji","Qin","Qiang","Jiao","Quan","Yang","Yi","Jue","Fan","Juan","Tong","Ju","Dan","Xie","Mai","Xun","Xun","Lu","Li","Che","Rang","Quan","Bao","Shao","Yun","Jiu","Bao","Gou","Wu"],KL[83]=["Yun","Mwun","Nay","Gai","Gai","Bao","Cong",null,"Xiong","Peng","Ju","Tao","Ge","Pu","An","Pao","Fu","Gong","Da","Jiu","Qiong","Bi","Hua","Bei","Nao","Chi","Fang","Jiu","Yi","Za","Jiang","Kang","Jiang","Kuang","Hu","Xia","Qu","Bian","Gui","Qie","Zang","Kuang","Fei","Hu","Tou","Gui","Gui","Hui","Dan","Gui","Lian","Lian","Suan","Du","Jiu","Qu","Xi","Pi","Qu","Yi","Qia","Yan","Bian","Ni","Qu","Shi","Xin","Qian","Nian","Sa","Zu","Sheng","Wu","Hui","Ban","Shi","Xi","Wan","Hua","Xie","Wan","Bei","Zu","Zhuo","Xie","Dan","Mai","Nan","Dan","Ji","Bo","Shuai","Bu","Kuang","Bian","Bu","Zhan","Qia","Lu","You","Lu","Xi","Gua","Wo","Xie","Jie","Jie","Wei","Ang","Qiong","Zhi","Mao","Yin","Wei","Shao","Ji","Que","Luan","Shi","Juan","Xie","Xu","Jin","Que","Wu","Ji","E","Qing","Xi",null,"Han","Zhan","E","Ting","Li","Zhe","Han","Li","Ya","Ya","Yan","She","Zhi","Zha","Pang",null,"He","Ya","Zhi","Ce","Pang","Ti","Li","She","Hou","Ting","Zui","Cuo","Fei","Yuan","Ce","Yuan","Xiang","Yan","Li","Jue","Sha","Dian","Chu","Jiu","Qin","Ao","Gui","Yan","Si","Li","Chang","Lan","Li","Yan","Yan","Yuan","Si","Gong","Lin","Qiu","Qu","Qu","Uk","Lei","Du","Xian","Zhuan","San","Can","Can","Can","Can","Ai","Dai","You","Cha","Ji","You","Shuang","Fan","Shou","Guai","Ba","Fa","Ruo","Shi","Shu","Zhuo","Qu","Shou","Bian","Xu","Jia","Pan","Sou","Gao","Wei","Sou","Die","Rui","Cong","Kou","Gu","Ju","Ling","Gua","Tao","Kou","Zhi","Jiao","Zhao","Ba","Ding","Ke","Tai","Chi","Shi","You","Qiu","Po","Ye","Hao","Si","Tan","Chi","Le","Diao","Ji",null,"Hong"],KL[84]=["Mie","Xu","Mang","Chi","Ge","Xuan","Yao","Zi","He","Ji","Diao","Cun","Tong","Ming","Hou","Li","Tu","Xiang","Zha","Xia","Ye","Lu","A","Ma","Ou","Xue","Yi","Jun","Chou","Lin","Tun","Yin","Fei","Bi","Qin","Qin","Jie","Bu","Fou","Ba","Dun","Fen","E","Han","Ting","Hang","Shun","Qi","Hong","Zhi","Shen","Wu","Wu","Chao","Ne","Xue","Xi","Chui","Dou","Wen","Hou","Ou","Wu","Gao","Ya","Jun","Lu","E","Ge","Mei","Ai","Qi","Cheng","Wu","Gao","Fu","Jiao","Hong","Chi","Sheng","Ne","Tun","Fu","Yi","Dai","Ou","Li","Bai","Yuan","Kuai",null,"Qiang","Wu","E","Shi","Quan","Pen","Wen","Ni","M","Ling","Ran","You","Di","Zhou","Shi","Zhou","Tie","Xi","Yi","Qi","Ping","Zi","Gu","Zi","Wei","Xu","He","Nao","Xia","Pei","Yi","Xiao","Shen","Hu","Ming","Da","Qu","Ju","Gem","Za","Tuo","Duo","Pou","Pao","Bi","Fu","Yang","He","Zha","He","Hai","Jiu","Yong","Fu","Que","Zhou","Wa","Ka","Gu","Ka","Zuo","Bu","Long","Dong","Ning","Tha","Si","Xian","Huo","Qi","Er","E","Guang","Zha","Xi","Yi","Lie","Zi","Mie","Mi","Zhi","Yao","Ji","Zhou","Ge","Shuai","Zan","Xiao","Ke","Hui","Kua","Huai","Tao","Xian","E","Xuan","Xiu","Wai","Yan","Lao","Yi","Ai","Pin","Shen","Tong","Hong","Xiong","Chi","Wa","Ha","Zai","Yu","Di","Pai","Xiang","Ai","Hen","Kuang","Ya","Da","Xiao","Bi","Yue",null,"Hua","Sasou","Kuai","Duo",null,"Ji","Nong","Mou","Yo","Hao","Yuan","Long","Pou","Mang","Ge","E","Chi","Shao","Li","Na","Zu","He","Ku","Xiao","Xian","Lao","Bo","Zhe","Zha","Liang","Ba","Mie","Le","Sui","Fou","Bu","Han","Heng","Geng","Shuo","Ge"],KL[85
1]=["You","Yan","Gu","Gu","Bai","Han","Suo","Chun","Yi","Ai","Jia","Tu","Xian","Huan","Li","Xi","Tang","Zuo","Qiu","Che","Wu","Zao","Ya","Dou","Qi","Di","Qin","Ma","Mal","Hong","Dou","Kes","Lao","Liang","Suo","Zao","Huan","Lang","Sha","Ji","Zuo","Wo","Feng","Yin","Hu","Qi","Shou","Wei","Shua","Chang","Er","Li","Qiang","An","Jie","Yo","Nian","Yu","Tian","Lai","Sha","Xi","Tuo","Hu","Ai","Zhou","Nou","Ken","Zhuo","Zhuo","Shang","Di","Heng","Lan","A","Xiao","Xiang","Tun","Wu","Wen","Cui","Sha","Hu","Qi","Qi","Tao","Dan","Dan","Ye","Zi","Bi","Cui","Chuo","He","Ya","Qi","Zhe","Pei","Liang","Xian","Pi","Sha","La","Ze","Qing","Gua","Pa","Zhe","Se","Zhuan","Nie","Guo","Luo","Yan","Di","Quan","Tan","Bo","Ding","Lang","Xiao",null,"Tang","Chi","Ti","An","Jiu","Dan","Ke","Yong","Wei","Nan","Shan","Yu","Zhe","La","Jie","Hou","Han","Die","Zhou","Chai","Wai","Re","Yu","Yin","Zan","Yao","Wo","Mian","Hu","Yun","Chuan","Hui","Huan","Huan","Xi","He","Ji","Kui","Zhong","Wei","Sha","Xu","Huang","Du","Nie","Xuan","Liang","Yu","Sang","Chi","Qiao","Yan","Dan","Pen","Can","Li","Yo","Zha","Wei","Miao","Ying","Pen","Phos","Kui","Xi","Yu","Jie","Lou","Ku","Sao","Huo","Ti","Yao","He","A","Xiu","Qiang","Se","Yong","Su","Hong","Xie","Yi","Suo","Ma","Cha","Hai","Ke","Ta","Sang","Tian","Ru","Sou","Wa","Ji","Pang","Wu","Xian","Shi","Ge","Zi","Jie","Luo","Weng","Wa","Si","Chi","Hao","Suo","Jia","Hai","Suo","Qin","Nie","He","Cis","Sai","Ng","Ge","Na","Dia","Ai",null,"Tong","Bi","Ao","Ao","Lian","Cui","Zhe","Mo","Sou","Sou","Tan"],KL[86]=["Di","Qi","Jiao","Chong","Jiao","Kai","Tan","San","Cao","Jia","Ai","Xiao","Piao","Lou","Ga","Gu","Xiao","Hu","Hui","Guo","Ou","Xian","Ze","Chang","Xu","Po","De","Ma","Ma","Hu","Lei","Du","Ga","Tang","Ye","Beng","Ying","Saai","Jiao","Mi","Xiao","Hua","Mai","Ran","Zuo","Peng","Lao","Xiao","Ji","Zhu","Chao","Kui","Zui","Xiao","Si","Hao","Fu","Liao","Qiao","Xi","Xiu","Tan","Tan","Mo","Xun","E","Zun","Fan","Chi","Hui","Zan","Chuang","Cu","Dan","Yu","Tun","Cheng","Jiao","Ye","Xi","Qi","Hao","Lian","Xu","Deng","Hui","Yin","Pu","Jue","Qin","Xun","Nie","Lu","Si","Yan","Ying","Da","Dan","Yu","Zhou","Jin","Nong","Yue","Hui","Qi","E","Zao","Yi","Shi","Jiao","Yuan","Ai","Yong","Jue","Kuai","Yu","Pen","Dao","Ge","Xin","Dun","Dang","Sin","Sai","Pi","Pi","Yin","Zui","Ning","Di","Lan","Ta","Huo","Ru","Hao","Xia","Ya","Duo","Xi","Chou","Ji","Jin","Hao","Ti","Chang",null,null,"Ca","Ti","Lu","Hui","Bo","You","Nie","Yin","Hu","Mo","Huang","Zhe","Li","Liu","Haai","Nang","Xiao","Mo","Yan","Li","Lu","Long","Fu","Dan","Chen","Pin","Pi","Xiang","Huo","Mo","Xi","Duo","Ku","Yan","Chan","Ying","Rang","Dian","La","Ta","Xiao","Jiao","Chuo","Huan","Huo","Zhuan","Nie","Xiao","Ca","Li","Chan","Chai","Li","Yi","Luo","Nang","Zan","Su","Xi","So","Jian","Za","Zhu","Lan","Nie","Nang",null,null,"Wei","Hui","Yin","Qiu","Si","Nin","Jian","Hui","Xin","Yin","Nan","Tuan","Tuan","Dun","Kang","Yuan","Jiong","Pian","Yun","Cong","Hu","Hui","Yuan","You","Guo","Kun","Cong","Wei","Tu","Wei","Lun","Guo","Qun","Ri","Ling","Gu","Guo","Tai","Guo","Tu","You"],KL[87]=["Guo","Yin","Hun","Pu","Yu","Han","Yuan","Lun","Quan","Yu","Qing","Guo","Chuan","Wei","Yuan","Quan","Ku","Fu","Yuan","Yuan","E","Tu","Tu","Tu","Tuan","Lue","Hui","Yi","Yuan","Luan","Luan","Tu","Ya","Tu","Ting","Sheng","Pu","Lu","Iri","Ya","Zai","Wei","Ge","Yu","Wu","Gui","Pi","Yi","Di","Qian","Qian","Zhen","Zhuo","Dang","Qia","Akutsu","Yama","Kuang","Chang","Qi","Nie","Mo","Ji","Jia","Zhi","Zhi","Ban","Xun","Tou","Qin","Fen","Jun","Keng","Tun","Fang","Fen","Ben","Tan","Kan","Pi","Zuo","Keng","Bi","Xing","Di","Jing","Ji","Kuai","Di","Jing","Jian","Tan","Li","Ba","Wu","Fen","Zhui","Po","Pan","Tang","Kun","Qu","Tan","Zhi","Tuo","Gan","Ping","Dian","Gua","Ni","Tai","Pi","Jiong","Yang","Fo","Ao","Liu","Qiu","Mu","Ke","Gou","Xue","Ba","Chi","Che","Ling","Zhu","Fu","Hu","Zhi","Chui","La","Long","Long","Lu","Ao","Tay","Pao",null,"Xing","Dong","Ji","Ke","Lu","Ci","Chi","Lei","Gai","Yin","Hou","Dui","Zhao","Fu","Guang","Yao","Duo","Duo","Gui","Cha","Yang","Yin","Fa","Gou","Yuan","Die","Xie","Ken","Jiong","Shou","E","Ha","Dian","Hong","Wu","Kua",null,"Tao","Dang","Kai","Gake","N
1ao","An","Xing","Xian","Huan","Bang","Pei","Ba","Yi","Yin","Han","Xu","Chui","Cen","Geng","Ai","Peng","Fang","Que","Yong","Xun","Jia","Di","Mai","Lang","Xuan","Cheng","Yan","Jin","Zhe","Lei","Lie","Bu","Cheng","Gomi","Bu","Shi","Xun","Guo","Jiong","Ye","Nian","Di","Yu","Bu","Ya","Juan","Sui","Pi","Cheng","Wan","Ju","Lun","Zheng","Kong","Chong","Dong","Dai","Tan","An","Cai","Shu","Beng","Kan","Zhi","Duo","Yi","Zhi","Yi","Pei","Ji","Zhun","Qi","Sao","Ju","Ni"],KL[88]=["Ku","Ke","Tang","Kun","Ni","Jian","Dui","Jin","Gang","Yu","E","Peng","Gu","Tu","Leng",null,"Ya","Qian",null,"An",null,"Duo","Nao","Tu","Cheng","Yin","Hun","Bi","Lian","Guo","Die","Zhuan","Hou","Bao","Bao","Yu","Di","Mao","Jie","Ruan","E","Geng","Kan","Zong","Yu","Huang","E","Yao","Yan","Bao","Ji","Mei","Chang","Du","Tuo","Yin","Feng","Zhong","Jie","Zhen","Feng","Gang","Chuan","Jian","Pyeng","Toride","Xiang","Huang","Leng","Duan",null,"Xuan","Ji","Ji","Kuai","Ying","Ta","Cheng","Yong","Kai","Su","Su","Shi","Mi","Ta","Weng","Cheng","Tu","Tang","Que","Zhong","Li","Peng","Bang","Sai","Zang","Dui","Tian","Wu","Cheng","Xun","Ge","Zhen","Ai","Gong","Yan","Kan","Tian","Yuan","Wen","Xie","Liu","Ama","Lang","Chang","Peng","Beng","Chen","Cu","Lu","Ou","Qian","Mei","Mo","Zhuan","Shuang","Shu","Lou","Chi","Man","Biao","Jing","Qi","Shu","Di","Zhang","Kan","Yong","Dian","Chen","Zhi","Xi","Guo","Qiang","Jin","Di","Shang","Mu","Cui","Yan","Ta","Zeng","Qi","Qiang","Liang",null,"Zhui","Qiao","Zeng","Xu","Shan","Shan","Ba","Pu","Kuai","Dong","Fan","Que","Mo","Dun","Dun","Dun","Di","Sheng","Duo","Duo","Tan","Deng","Wu","Fen","Huang","Tan","Da","Ye","Sho","Mama","Yu","Qiang","Ji","Qiao","Ken","Yi","Pi","Bi","Dian","Jiang","Ye","Yong","Bo","Tan","Lan","Ju","Huai","Dang","Rang","Qian","Xun","Lan","Xi","He","Ai","Ya","Dao","Hao","Ruan","Mama","Lei","Kuang","Lu","Yan","Tan","Wei","Huai","Long","Long","Rui","Li","Lin","Rang","Ten","Xun","Yan","Lei","Ba",null,"Shi","Ren",null,"Zhuang","Zhuang","Sheng","Yi","Mai","Ke","Zhu","Zhuang","Hu","Hu","Kun","Yi","Hu","Xu","Kun","Shou","Mang","Zun"],KL[89]=["Shou","Yi","Zhi","Gu","Chu","Jiang","Feng","Bei","Cay","Bian","Sui","Qun","Ling","Fu","Zuo","Xia","Xiong",null,"Nao","Xia","Kui","Xi","Wai","Yuan","Mao","Su","Duo","Duo","Ye","Qing","Uys","Gou","Gou","Qi","Meng","Meng","Yin","Huo","Chen","Da","Ze","Tian","Tai","Fu","Guai","Yao","Yang","Hang","Gao","Shi","Ben","Tai","Tou","Yan","Bi","Yi","Kua","Jia","Duo","Kwu","Kuang","Yun","Jia","Pa","En","Lian","Huan","Di","Yan","Pao","Quan","Qi","Nai","Feng","Xie","Fen","Dian",null,"Kui","Zou","Huan","Qi","Kai","Zha","Ben","Yi","Jiang","Tao","Zang","Ben","Xi","Xiang","Fei","Diao","Xun","Keng","Dian","Ao","She","Weng","Pan","Ao","Wu","Ao","Jiang","Lian","Duo","Yun","Jiang","Shi","Fen","Huo","Bi","Lian","Duo","Nu","Nu","Ding","Nai","Qian","Jian","Ta","Jiu","Nan","Cha","Hao","Xian","Fan","Ji","Shuo","Ru","Fei","Wang","Hong","Zhuang","Fu","Ma","Dan","Ren","Fu","Jing","Yan","Xie","Wen","Zhong","Pa","Du","Ji","Keng","Zhong","Yao","Jin","Yun","Miao","Pei","Shi","Yue","Zhuang","Niu","Yan","Na","Xin","Fen","Bi","Yu","Tuo","Feng","Yuan","Fang","Wu","Yu","Gui","Du","Ba","Ni","Zhou","Zhuo","Zhao","Da","Nai","Yuan","Tou","Xuan","Zhi","E","Mei","Mo","Qi","Bi","Shen","Qie","E","He","Xu","Fa","Zheng","Min","Ban","Mu","Fu","Ling","Zi","Zi","Shi","Ran","Shan","Yang","Man","Jie","Gu","Si","Xing","Wei","Zi","Ju","Shan","Pin","Ren","Yao","Tong","Jiang","Shu","Ji","Gai","Shang","Kuo","Juan","Jiao","Gou","Mu","Jian","Jian","Yi","Nian","Zhi","Ji","Ji","Xian","Heng","Guang","Jun","Kua","Yan","Ming","Lie","Pei","Yan","You","Yan","Cha","Shen","Yin","Chi","Gui","Quan","Zi"],KL[90]=["Song","Wei","Hong","Wa","Lou","Ya","Rao","Jiao","Luan","Ping","Xian","Shao","Li","Cheng","Xiao","Mang","Fu","Suo","Wu","Wei","Ke","Lai","Chuo","Ding","Niang","Xing","Nan","Yu","Nuo","Pei","Nei","Juan","Shen","Zhi","Han","Di","Zhuang","E","Pin","Tui","Han","Mian","Wu","Yan","Wu","Xi","Yan","Yu","Si","Yu","Wa",null,"Xian","Ju","Qu","Shui","Qi","Xian","Zhui","Dong","Chang","Lu","Ai","E","E","Lou","Mian","Cong","Pou","Ju","Po","Cai","Ding","Wan","Biao","Xiao","Shu","Qi","Hui","Fu","E","Wo","Tan","Fei","Wei","Jie","Tian","Ni","Quan","Jing","Hun","Jing","Qian","Dian","Xing","Hu","Wa","Lai","Bi","Yin","Chou","Chuo","Fu","Jing","Lun","Yan","Lan","Kun","Yin","Ya","Ju","Li","Dian","Xian","Hwa","Hua","Ying","Chan","Shen","Ting","Dang","Yao","Wu","Nan","Ruo","Jia","Tou","Xu","Yu","Wei","Ti","Rou","Mei","Dan","Ruan","Qin","Hui","Wu","Qian","Chun","Mao","Fu","Jie","Duan","Xi","Zhong","Mei","Huang","Mian","An","Ying","Xuan","Jie","Wei","Mei","Yuan","Zhen","Qiu","Ti","Xie","Tuo","Lian","Mao","Ran","Si","Pian","Wei","Wa","Jiu","Hu","Ao",null,"Bou","Xu","Tou","Gui","Zou","Yao","Pi","Xi","Yuan","Ying","Rong","Ru","Chi","Liu","Mei","Pan","Ao","Ma","Gou","Kui","Qin","Jia","Sao","Zhen","Yuan","Cha","Yong","Ming","Ying","Ji","Su","Niao","Xian","Tao","Pang","Lang","Nao","Bao","Ai","Pi","Pin","Yi","P
1iao","Yu","Lei","Xuan","Man","Yi","Zhang","Kang","Yong","Ni","Li","Di","Gui","Yan","Jin","Zhuan","Chang","Ce","Han","Nen","Lao","Mo","Zhe","Hu","Hu","Ao","Nen","Qiang","Ma","Pie","Gu","Wu","Jiao","Tuo","Zhan","Mao","Xian","Xian","Mo","Liao","Lian","Hua"],KL[91]=["Gui","Deng","Zhi","Xu","Yi","Hua","Xi","Hui","Rao","Xi","Yan","Chan","Jiao","Mei","Fan","Fan","Xian","Yi","Wei","Jiao","Fu","Shi","Bi","Shan","Sui","Qiang","Lian","Huan","Xin","Niao","Dong","Yi","Can","Ai","Niang","Neng","Ma","Tiao","Chou","Jin","Ci","Yu","Pin","Yong","Xu","Nai","Yan","Tai","Ying","Can","Niao","Wo","Ying","Mian","Kaka","Ma","Shen","Xing","Ni","Du","Liu","Yuan","Lan","Yan","Shuang","Ling","Jiao","Niang","Lan","Xian","Ying","Shuang","Shuai","Quan","Mi","Li","Luan","Yan","Zhu","Lan","Zi","Jie","Jue","Jue","Kong","Yun","Zi","Zi","Cun","Sun","Fu","Bei","Zi","Xiao","Xin","Meng","Si","Tai","Bao","Ji","Gu","Nu","Xue",null,"Zhuan","Hai","Luan","Sun","Huai","Mie","Cong","Qian","Shu","Chan","Ya","Zi","Ni","Fu","Zi","Li","Xue","Bo","Ru","Lai","Nie","Nie","Ying","Luan","Mian","Ning","Rong","Ta","Gui","Zhai","Qiong","Yu","Shou","An","Tu","Song","Wan","Rou","Yao","Hong","Yi","Jing","Zhun","Mi","Zhu","Dang","Hong","Zong","Guan","Zhou","Ding","Wan","Yi","Bao","Shi","Shi","Chong","Shen","Ke","Xuan","Shi","You","Huan","Yi","Tiao","Shi","Xian","Gong","Cheng","Qun","Gong","Xiao","Zai","Zha","Bao","Hai","Yan","Xiao","Jia","Shen","Chen","Rong","Huang","Mi","Kou","Kuan","Bin","Su","Cai","Zan","Ji","Yuan","Ji","Yin","Mi","Kou","Qing","Que","Zhen","Jian","Fu","Ning","Bing","Huan","Mei","Qin","Han","Yu","Shi","Ning","Qin","Ning","Zhi","Yu","Bao","Kuan","Ning","Qin","Mo","Cha","Ju","Gua","Qin","Hu","Wu","Liao","Shi","Zhu","Zhai","Shen","Wei","Xie","Kuan","Hui","Liao","Jun","Huan","Yi","Yi","Bao","Qin","Chong","Bao","Feng","Cun","Dui","Si","Xun","Dao","Lu","Dui","Shou"],KL[92]=["Po","Feng","Zhuan","Fu","She","Ke","Jiang","Jiang","Zhuan","Wei","Zun","Xun","Shu","Dui","Dao","Xiao","Ji","Shao","Er","Er","Er","Ga","Jian","Shu","Chen","Shang","Shang","Mo","Ga","Chang","Liao","Xian","Xian",null,"Wang","Wang","You","Liao","Liao","Yao","Mang","Wang","Wang","Wang","Ga","Yao","Duo","Kui","Zhong","Jiu","Gan","Gu","Gan","Tui","Gan","Gan","Shi","Yin","Chi","Kao","Ni","Jin","Wei","Niao","Ju","Pi","Ceng","Xi","Bi","Ju","Jie","Tian","Qu","Ti","Jie","Wu","Diao","Shi","Shi","Ping","Ji","Xie","Chen","Xi","Ni","Zhan","Xi",null,"Man","E","Lou","Ping","Ti","Fei","Shu","Xie","Tu","Lu","Lu","Xi","Ceng","Lu","Ju","Xie","Ju","Jue","Liao","Jue","Shu","Xi","Che","Tun","Ni","Shan",null,"Xian","Li","Xue","Nata",null,"Long","Yi","Qi","Ren","Wu","Han","Shen","Yu","Chu","Sui","Qi",null,"Yue","Ban","Yao","Ang","Ya","Wu","Jie","E","Ji","Qian","Fen","Yuan","Qi","Cen","Qian","Qi","Cha","Jie","Qu","Gang","Xian","Ao","Lan","Dao","Ba","Zuo","Zuo","Yang","Ju","Gang","Ke","Gou","Xue","Bei","Li","Tiao","Ju","Yan","Fu","Xiu","Jia","Ling","Tuo","Pei","You","Dai","Kuang","Yue","Qu","Hu","Po","Min","An","Tiao","Ling","Chi","Yuri","Dong","Cem","Kui","Xiu","Mao","Tong","Xue","Yi","Kura","He","Ke","Luo","E","Fu","Xun","Die","Lu","An","Er","Gai","Quan","Tong","Yi","Mu","Shi","An","Wei","Hu","Zhi","Mi","Li","Ji","Tong","Wei","You","Sang","Xia","Li","Yao","Jiao","Zheng","Luan","Jiao","E","E","Yu","Ye","Bu","Qiao","Qun","Feng","Feng","Nao","Li","You","Xian","Hong","Dao","Shen","Cheng","Tu","Geng","Jun","Hao","Xia","Yin","Yu"],KL[93]=["Lang","Kan","Lao","Lai","Xian","Que","Kong","Chong","Chong","Ta","Lin","Hua","Ju","Lai","Qi","Min","Kun","Kun","Zu","Gu","Cui","Ya","Ya","Gang","Lun","Lun","Leng","Jue","Duo","Zheng","Guo","Yin","Dong","Han","Zheng","Wei","Yao","Pi","Yan","Song","Jie","Beng","Zu","Jue","Dong","Zhan","Gu","Yin",null,"Ze","Huang","Yu","Wei","Yang","Feng","Qiu","Dun","Ti","Yi","Zhi","Shi","Zai","Yao","E","Zhu","Kan","Lu","Yan","Mei","Gan","Ji","Ji","Huan","Ting","Sheng","Mei","Qian","Wu","Yu","Zong","Lan","Jue","Yan","Yan","Wei","Zong","Cha","Sui","Rong","Yamashina","Qin","Yu","Kewashii","Lou","Tu","Dui","Xi","Weng","Cang","Dang","Hong","Jie","Ai","Liu","Wu","Song","Qiao","Zi","Wei","Beng","Dian","Cuo","Qian","Yong","Nie","Cuo","Ji",null,"Tao","Song","Zong","Jiang","Liao","Kang","Chan","Die","Cen","Ding","Tu","Lou","Zhang","Zhan","Zhan","Ao","Cao","Qu","Qiang","Zui","Zui","Dao","Dao","Xi","Yu","Bo","Long","Xiang","Ceng","Bo","Qin","Jiao","Yan","Lao","Zhan","Lin","Liao","Liao","Jin","Deng","Duo","Zun","Jiao","Gui","Yao","Qiao","Yao","Jue","Zh
1an","Yi","Xue","Nao","Ye","Ye","Yi","E","Xian","Ji","Xie","Ke","Xi","Di","Ao","Zui",null,"Ni","Rong","Dao","Ling","Za","Yu","Yue","Yin",null,"Jie","Li","Sui","Long","Long","Dian","Ying","Xi","Ju","Chan","Ying","Kui","Yan","Wei","Nao","Quan","Chao","Cuan","Luan","Dian","Dian",null,"Yan","Yan","Yan","Nao","Yan","Chuan","Gui","Chuan","Zhou","Huang","Jing","Xun","Chao","Chao","Lie","Gong","Zuo","Qiao","Ju","Gong","Kek","Wu","Pwu","Pwu","Chai","Qiu","Qiu","Ji","Yi","Si","Ba","Zhi","Zhao","Xiang","Yi","Jin","Xun","Juan","Phas","Xun","Jin","Fu"],KL[94]=["Za","Bi","Shi","Bu","Ding","Shuai","Fan","Nie","Shi","Fen","Pa","Zhi","Xi","Hu","Dan","Wei","Zhang","Tang","Dai","Ma","Pei","Pa","Tie","Fu","Lian","Zhi","Zhou","Bo","Zhi","Di","Mo","Yi","Yi","Ping","Qia","Juan","Ru","Shuai","Dai","Zheng","Shui","Qiao","Zhen","Shi","Qun","Xi","Bang","Dai","Gui","Chou","Ping","Zhang","Sha","Wan","Dai","Wei","Chang","Sha","Qi","Ze","Guo","Mao","Du","Hou","Zheng","Xu","Mi","Wei","Wo","Fu","Yi","Bang","Ping","Tazuna","Gong","Pan","Huang","Dao","Mi","Jia","Teng","Hui","Zhong","Shan","Man","Mu","Biao","Guo","Ze","Mu","Bang","Zhang","Jiong","Chan","Fu","Zhi","Hu","Fan","Chuang","Bi","Hei",null,"Mi","Qiao","Chan","Fen","Meng","Bang","Chou","Mie","Chu","Jie","Xian","Lan","Gan","Ping","Nian","Qian","Bing","Bing","Xing","Gan","Yao","Huan","You","You","Ji","Guang","Pi","Ting","Ze","Guang","Zhuang","Mo","Qing","Bi","Qin","Dun","Chuang","Gui","Ya","Bai","Jie","Xu","Lu","Wu",null,"Ku","Ying","Di","Pao","Dian","Ya","Miao","Geng","Ci","Fu","Tong","Pang","Fei","Xiang","Yi","Zhi","Tiao","Zhi","Xiu","Du","Zuo","Xiao","Tu","Gui","Ku","Pang","Ting","You","Bu","Ding","Cheng","Lai","Bei","Ji","An","Shu","Kang","Yong","Tuo","Song","Shu","Qing","Yu","Yu","Miao","Sou","Ce","Xiang","Fei","Jiu","He","Hui","Liu","Sha","Lian","Lang","Sou","Jian","Pou","Qing","Jiu","Jiu","Qin","Ao","Kuo","Lou","Yin","Liao","Dai","Lu","Yi","Chu","Chan","Tu","Si","Xin","Miao","Chang","Wu","Fei","Guang","Koc","Kuai","Bi","Qiang","Xie","Lin","Lin","Liao","Lu",null,"Ying","Xian","Ting","Yong","Li","Ting","Yin","Xun","Yan","Ting","Di","Po","Jian","Hui","Nai","Hui","Gong","Nian"],KL[95]=["Kai","Bian","Yi","Qi","Nong","Fen","Ju","Yan","Yi","Zang","Bi","Yi","Yi","Er","San","Shi","Er","Shi","Shi","Gong","Diao","Yin","Hu","Fu","Hong","Wu","Tui","Chi","Jiang","Ba","Shen","Di","Zhang","Jue","Tao","Fu","Di","Mi","Xian","Hu","Chao","Nu","Jing","Zhen","Yi","Mi","Quan","Wan","Shao","Ruo","Xuan","Jing","Dun","Zhang","Jiang","Qiang","Peng","Dan","Qiang","Bi","Bi","She","Dan","Jian","Gou","Sei","Fa","Bi","Kou","Nagi","Bie","Xiao","Dan","Kuo","Qiang","Hong","Mi","Kuo","Wan","Jue","Ji","Ji","Gui","Dang","Lu","Lu","Tuan","Hui","Zhi","Hui","Hui","Yi","Yi","Yi","Yi","Huo","Huo","Shan","Xing","Wen","Tong","Yan","Yan","Yu","Chi","Cai","Biao","Diao","Bin","Peng","Yong","Piao","Zhang","Ying","Chi","Chi","Zhuo","Tuo","Ji","Pang","Zhong","Yi","Wang","Che","Bi","Chi","Ling","Fu","Wang","Zheng","Cu","Wang","Jing","Dai","Xi","Xun","Hen","Yang","Huai","Lu","Hou","Wa","Cheng","Zhi","Xu","Jing","Tu","Cong",null,"Lai","Cong","De","Pai","Xi",null,"Qi","Chang","Zhi","Cong","Zhou","Lai","Yu","Xie","Jie","Jian","Chi","Jia","Bian","Huang","Fu","Xun","Wei","Pang","Yao","Wei","Xi","Zheng","Piao","Chi","De","Zheng","Zheng","Bie","De","Chong","Che","Jiao","Wei","Jiao","Hui","Mei","Long","Xiang","Bao","Qu","Xin","Shu","Bi","Yi","Le","Ren","Dao","Ding","Gai","Ji","Ren","Ren","Chan","Tan","Te","Te","Gan","Qi","Shi","Cun","Zhi","Wang","Mang","Xi","Fan","Ying","Tian","Min","Min","Zhong","Chong","Wu","Ji","Wu","Xi","Ye","You","Wan","Cong","Zhong","Kuai","Yu","Bian","Zhi","Qi","Cui","Chen","Tai","Tun","Qian","Nian","Hun","Xiong","Niu","Wang","Xian","Xin","Kang","Hu","Kai","Fen"],KL[96]=["Huai","Tai","Song","Wu","Ou","Chang","Chuang","Ju","Yi","Bao","Chao","Min","Pei","Zuo","Zen","Yang","Kou","Ban","Nu","Nao","Zheng","Pa","Bu","Tie","Gu","Hu","Ju","Da","Lian","Si","Chou","Di","Dai","Yi","Tu","You","Fu","Ji","Peng","Xing","Yuan","Ni","Guai","Fu","Xi","Bi","You","Qie","Xuan","Cong","Bing","Huang","Xu","Chu","Pi","Xi","Xi","Tan","Koraeru","Zong","Dui",null,"Ki","Yi","Chi","Ren","Xun","Shi","Xi","Lao","Heng","Kuang","Mu","Zhi","Xie","Lian","Tiao","Huang","Die","Hao","Kong","Gui","Heng","Xi","Xiao","Shu","S","Kua","Qiu","Yang","Hui","Hui","Chi","Jia","Yi","Xiong","Guai","Lin","Hui","Zi","Xu","Chi","Xiang","Nu","Hen","En","Ke","Tong","Tian","Gong","Quan","Xi","Qia","Yue","Peng","Ken","De","Hui","E","Kyuu","Tong","Yan","Kai","Ce","Nao","Yun","Mang","Yong","Yong","Yuan","Pi","Kun","Qiao","Yue","Yu","Yu","Jie","Xi","Zhe","Lin","Ti","Han","Hao","Qie","Ti","Bu","Yi","Qian","Hui","Xi","Bei","Man","Yi","Heng","Song","Quan","Cheng","Hui","Wu","Wu","You","Li","
1Liang","Huan","Cong","Yi","Yue","Li","Nin","Nao","E","Que","Xuan","Qian","Wu","Min","Cong","Fei","Bei","Duo","Cui","Chang","Men","Li","Ji","Guan","Guan","Xing","Dao","Qi","Kong","Tian","Lun","Xi","Kan","Kun","Ni","Qing","Chou","Dun","Guo","Chan","Liang","Wan","Yuan","Jin","Ji","Lin","Yu","Huo","He","Quan","Tan","Ti","Ti","Nie","Wang","Chuo","Bu","Hun","Xi","Tang","Xin","Wei","Hui","E","Rui","Zong","Jian","Yong","Dian","Ju","Can","Cheng","De","Bei","Qie","Can","Dan","Guan","Duo","Nao","Yun","Xiang","Zhui","Die","Huang","Chun","Qiong","Re","Xing","Ce","Bian","Hun","Zong","Ti"],KL[97]=["Qiao","Chou","Bei","Xuan","Wei","Ge","Qian","Wei","Yu","Yu","Bi","Xuan","Huan","Min","Bi","Yi","Mian","Yong","Kai","Dang","Yin","E","Chen","Mou","Ke","Ke","Yu","Ai","Qie","Yan","Nuo","Gan","Yun","Zong","Sai","Leng","Fen",null,"Kui","Kui","Que","Gong","Yun","Su","Su","Qi","Yao","Song","Huang","Ji","Gu","Ju","Chuang","Ni","Xie","Kai","Zheng","Yong","Cao","Sun","Shen","Bo","Kai","Yuan","Xie","Hun","Yong","Yang","Li","Sao","Tao","Yin","Ci","Xu","Qian","Tai","Huang","Yun","Shen","Ming",null,"She","Cong","Piao","Mo","Mu","Guo","Chi","Can","Can","Can","Cui","Min","Te","Zhang","Tong","Ao","Shuang","Man","Guan","Que","Zao","Jiu","Hui","Kai","Lian","Ou","Song","Jin","Yin","Lu","Shang","Wei","Tuan","Man","Qian","She","Yong","Qing","Kang","Di","Zhi","Lou","Juan","Qi","Qi","Yu","Ping","Liao","Cong","You","Chong","Zhi","Tong","Cheng","Qi","Qu","Peng","Bei","Bie","Chun","Jiao","Zeng","Chi","Lian","Ping","Kui","Hui","Qiao","Cheng","Yin","Yin","Xi","Xi","Dan","Tan","Duo","Dui","Dui","Su","Jue","Ce","Xiao","Fan","Fen","Lao","Lao","Chong","Han","Qi","Xian","Min","Jing","Liao","Wu","Can","Jue","Cu","Xian","Tan","Sheng","Pi","Yi","Chu","Xian","Nao","Dan","Tan","Jing","Song","Han","Jiao","Wai","Huan","Dong","Qin","Qin","Qu","Cao","Ken","Xie","Ying","Ao","Mao","Yi","Lin","Se","Jun","Huai","Men","Lan","Ai","Lin","Yan","Gua","Xia","Chi","Yu","Yin","Dai","Meng","Ai","Meng","Dui","Qi","Mo","Lan","Men","Chou","Zhi","Nuo","Nuo","Yan","Yang","Bo","Zhi","Kuang","Kuang","You","Fu","Liu","Mie","Cheng",null,"Chan","Meng","Lan","Huai","Xuan","Rang","Chan","Ji","Ju","Huan","She","Yi"],KL[98]=["Lian","Nan","Mi","Tang","Jue","Gang","Gang","Gang","Ge","Yue","Wu","Jian","Xu","Shu","Rong","Xi","Cheng","Wo","Jie","Ge","Jian","Qiang","Huo","Qiang","Zhan","Dong","Qi","Jia","Die","Zei","Jia","Ji","Shi","Kan","Ji","Kui","Gai","Deng","Zhan","Chuang","Ge","Jian","Jie","Yu","Jian","Yan","Lu","Xi","Zhan","Xi","Xi","Chuo","Dai","Qu","Hu","Hu","Hu","E","Shi","Li","Mao","Hu","Li","Fang","Suo","Bian","Dian","Jiong","Shang","Yi","Yi","Shan","Hu","Fei","Yan","Shou","T","Cai","Zha","Qiu","Le","Bu","Ba","Da","Reng","Fu","Hameru","Zai","Tuo","Zhang","Diao","Kang","Yu","Ku","Han","Shen","Cha","Yi","Gu","Kou","Wu","Tuo","Qian","Zhi","Ren","Kuo","Men","Sao","Yang","Niu","Ban","Che","Rao","Xi","Qian","Ban","Jia","Yu","Fu","Ao","Xi","Pi","Zhi","Zi","E","Dun","Zhao","Cheng","Ji","Yan","Kuang","Bian","Chao","Ju","Wen","Hu","Yue","Jue","Ba","Qin","Zhen","Zheng","Yun","Wan","Nu","Yi","Shu","Zhua","Pou","Tou","Dou","Kang","Zhe","Pou","Fu","Pao","Ba","Ao","Ze","Tuan","Kou","Lun","Qiang",null,"Hu","Bao","Bing","Zhi","Peng","Tan","Pu","Pi","Tai","Yao","Zhen","Zha","Yang","Bao","He","Ni","Yi","Di","Chi","Pi","Za","Mo","Mo","Shen","Ya","Chou","Qu","Min","Chu","Jia","Fu","Zhan","Zhu","Dan","Chai","Mu","Nian","La","Fu","Pao","Ban","Pai","Ling","Na","Guai","Qian","Ju","Tuo","Ba","Tuo","Tuo","Ao","Ju","Zhuo","Pan","Zhao","Bai","Bai","Di","Ni","Ju","Kuo","Long","Jian",null,"Yong","Lan","Ning","Bo","Ze","Qian","Hen","Gua","Shi","Jie","Zheng","Nin","Gong","Gong","Quan","Shuan","Cun","Zan","Kao","Chi","Xie","Ce","Hui","Pin","Zhuai","Shi","Na"],KL[99]=["Bo","Chi","Gua","Zhi","Kuo","Duo","Duo","Zhi","Qie","An","Nong","Zhen","Ge","Jiao","Ku","Dong","Ru","Tiao","Lie","Zha","Lu","Die","Wa","Jue","Mushiru","Ju","Zhi","Luan","Ya","Zhua","Ta","Xie","Nao","Dang","Jiao","Zheng","Ji","Hui","Xun","Ku","Ai","Tuo","Nuo","Cuo","Bo","Geng","Ti","Zhen","Cheng","Suo","Suo","Keng","Mei","Long","Ju","Peng","Jian","Yi","Ting","Shan","Nuo","Wan","Xie","Cha","Feng","Jiao","Wu","Jun","Jiu","Tong","Kun","Huo","Tu","Zhuo","Pou","Le","Ba","Han","Shao","Nie","Juan","Ze","Song","Ye","Jue","Bu","Huan","Bu","Zun","Yi","Zhai","Lu","Sou","Tuo","Lao","Sun","Bang","Jian","Huan","Dao",null,"Wan","Qin","Peng","She","Lie","Min","Men","Fu","Bai","Ju","Dao","Wo","Ai","Juan","Yue","Zong","Chen","Chui","Jie","Tu","Ben","Na","Nian","Nuo","Zu","Wo","Xi","Xian","Cheng","Dian","Sao","Lun","Qing","Gang","Duo","Shou","Diao","Pou","Di","Zhang","Gun","Ji","Tao","Qia","Qi","Pai","Shu","Qian","Ling","Yi","Ya","Jue","Zheng","Liang","Gua","Yi","Huo","Shan","Zheng","Lue","Cai","Tan","Che","Bing","Jie","Ti","Kong","Tui","Yan","Cuo","Zou","Ju","Tian","Qian","Ken","Bai","Shou","Jie","Lu","Guo","Haba",null,"Zhi","Dan","Mang","Xian","Sao","Guan","Peng","Yuan","Nuo","Jian","Zhen","Jiu","Jian","Yu","Yan","Kui","Nan","Hong","Rou","Pi","Wei","Sai","Zou","Xuan","Miao","Ti","Nie","Cha","Shi","Zong","Zhen","Yi","Shun","Heng","Bian","Yang","Huan","Yan","Zuan","An","Xu","Ya","Wo","Ke","Chuai","Ji","Ti","La","La","Cheng","Kai","Jiu","Jiu","Tu","Jie","Hui","Geng","Chong","Shuo","She","Xie","Yuan","Qian","Ye","Cha","Zha","Bei","Yao",null,null,"Lan","Wen","Qin"],KL[100]=["Chan","Ge","Lou","Zong","Geng","Jiao","Gou","Qin","Yong","Que","Chou","Chi","Zhan","Sun","Sun","Bo","Chu","Rong","Beng","Cuo","Sao","Ke","Yao","Dao","Zhi","Nu","Xie","Jian","Sou","Qiu","Gao","Xian","Shuo","Sang","Jin","Mie","E","Chui","Nuo","Shan","Ta","Jie","Tang","Pan","Ban","Da","Li","Tao","Hu","Zhi","Wa","Xia","Qian","Wen","Qiang","Tian","Zhen","E","Xi","Nuo","Quan","Cha","Zha","Ge","Wu","En","She","Kang","She","Shu","Bai","Yao","Bin","Sou","Tan","Sa","Chan","Suo","Liao","Chong","Chuang","Guo","Bing","Feng","Shuai","Di","Qi","Sou","Zhai","Lian","Tang","Chi","Guan","Lu","Luo","Lou","Zong","Gai","Hu","Zha","Chuang","Tang","Hua","Cui","Nai","Mo","Jiang","Gui","Ying","Zhi","Ao","Zhi","Nie","Man","Shan","Kou","Shu","Suo","Tuan","Jiao","Mo","Mo","Zhe","Xian","Keng","Piao","Jiang","Yin","Gou","Qian","Lue","Ji","Ying","Jue","Pie","Pie","Lao","Dun","Xian","Ruan","Kui","Zan","Yi","Xun","Cheng","Cheng","Sa","Nao","Heng","Si","Qian","Huang","Da","Zun","Nian","Lin","Zheng","Hui","Zhuang","Jiao","Ji","Cao","Dan","Dan","Che","Bo","Che","Jue","Xiao","Liao","Ben","Fu","Qiao","Bo","Cuo","Zhuo","Zhuan","Tuo","Pu","Qin","Dun","Nian",null,"Xie","Lu","Jiao","Cuan","Ta","Han","Qiao","Zhua","Jian","Gan","Yong","Lei","Kuo","Lu","Shan","Zhuo","Ze","Pu","Chuo","Ji","Dang","Suo","Cao","Qing","Jing","Huan","Jie","Qin","Kuai","Dan","Xi","Ge","Pi","Bo","Ao","Ju","Ye",null,"Mang","Sou","Mi","Ji","Tai","Zhuo","Dao","Xing","Lan","Ca","Ju","Ye","Ru","Ye","Ye","Ni","Hu","Ji","Bin","Ning","Ge","Zhi","Jie","Kuo","Mo","Jian","Xie","Lie","Tan","Bai","Sou","Lu","Lue","Rao","Zhi"],KL[101]=["Pan","Yang","Lei","Sa","Shu","Zan","Nian","Xian","Jun","Huo","Li","La","Han","Ying","Lu","Long","Qian","Qian","Zan","Qian","Lan","San","Ying","Mei","Rang","Chan",null,"Cuan","Xi","She","Luo","Jun","Mi","Li","Zan","Luan","Tan","Zuan","Li","Dian","Wa","Dang","Jiao","Jue","Lan","Li","Nang","Zhi","Gui","Gui","Qi","Xin","Pu","Sui","Shou","Kao","You","Gai","Yi","Gong","Gan","Ban","Fang","Zheng","Bo","Dian","Kou","Min","Wu","Gu","He","Ce","Xiao","Mi","Chu","Ge","Di","Xu","Jiao","Min","Chen","Jiu","Zhen","Duo","Yu","Chi","Ao","Bai","Xu","Jiao","Duo","Lian","Nie","Bi","Chang","Dian","Duo","Yi","Gan","San","Ke","Yan","Dun","Qi","Dou","Xiao","Duo","Jiao","Jing","Yang","Xia","Min","Shu","Ai","Qiao","Ai","Zheng","Di","Zhen","Fu","Shu","Liao","Qu","Xiong","Xi","Jia
1o","Sen","Jiao","Zhuo","Yi","Lian","Bi","Li","Xiao","Xiao","Wen","Xue","Qi","Qi","Zhai","Bin","Jue","Zhai",null,"Fei","Ban","Ban","Lan","Yu","Lan","Wei","Dou","Sheng","Liao","Jia","Hu","Xie","Jia","Yu","Zhen","Jiao","Wo","Tou","Chu","Jin","Chi","Yin","Fu","Qiang","Zhan","Qu","Zhuo","Zhan","Duan","Zhuo","Si","Xin","Zhuo","Zhuo","Qin","Lin","Zhuo","Chu","Duan","Zhu","Fang","Xie","Hang","Yu","Shi","Pei","You","Mye","Pang","Qi","Zhan","Mao","Lu","Pei","Pi","Liu","Fu","Fang","Xuan","Jing","Jing","Ni","Zu","Zhao","Yi","Liu","Shao","Jian","Es","Yi","Qi","Zhi","Fan","Piao","Fan","Zhan","Guai","Sui","Yu","Wu","Ji","Ji","Ji","Huo","Ri","Dan","Jiu","Zhi","Zao","Xie","Tiao","Xun","Xu","Xu","Xu","Gan","Han","Tai","Di","Xu","Chan","Shi","Kuang","Yang","Shi","Wang","Min","Min","Tun","Chun","Wu"],KL[102]=["Yun","Bei","Ang","Ze","Ban","Jie","Kun","Sheng","Hu","Fang","Hao","Gui","Chang","Xuan","Ming","Hun","Fen","Qin","Hu","Yi","Xi","Xin","Yan","Ze","Fang","Tan","Shen","Ju","Yang","Zan","Bing","Xing","Ying","Xuan","Pei","Zhen","Ling","Chun","Hao","Mei","Zuo","Mo","Bian","Xu","Hun","Zhao","Zong","Shi","Shi","Yu","Fei","Die","Mao","Ni","Chang","Wen","Dong","Ai","Bing","Ang","Zhou","Long","Xian","Kuang","Tiao","Chao","Shi","Huang","Huang","Xuan","Kui","Xu","Jiao","Jin","Zhi","Jin","Shang","Tong","Hong","Yan","Gai","Xiang","Shai","Xiao","Ye","Yun","Hui","Han","Han","Jun","Wan","Xian","Kun","Zhou","Xi","Cheng","Sheng","Bu","Zhe","Zhe","Wu","Han","Hui","Hao","Chen","Wan","Tian","Zhuo","Zui","Zhou","Pu","Jing","Xi","Shan","Yi","Xi","Qing","Qi","Jing","Gui","Zhen","Yi","Zhi","An","Wan","Lin","Liang","Chang","Wang","Xiao","Zan","Hi","Xuan","Xuan","Yi","Xia","Yun","Hui","Fu","Min","Kui","He","Ying","Du","Wei","Shu","Qing","Mao","Nan","Jian","Nuan","An","Yang","Chun","Yao","Suo","Jin","Ming","Jiao","Kai","Gao","Weng","Chang","Qi","Hao","Yan","Li","Ai","Ji","Gui","Men","Zan","Xie","Hao","Mu","Mo","Cong","Ni","Zhang","Hui","Bao","Han","Xuan","Chuan","Liao","Xian","Dan","Jing","Pie","Lin","Tun","Xi","Yi","Ji","Huang","Tai","Ye","Ye","Li","Tan","Tong","Xiao","Fei","Qin","Zhao","Hao","Yi","Xiang","Xing","Sen","Jiao","Bao","Jing","Yian","Ai","Ye","Ru","Shu","Meng","Xun","Yao","Pu","Li","Chen","Kuang","Die",null,"Yan","Huo","Lu","Xi","Rong","Long","Nang","Luo","Luan","Shai","Tang","Yan","Chu","Yue","Yue","Qu","Yi","Geng","Ye","Hu","He","Shu","Cao","Cao","Noboru","Man","Ceng","Ceng","Ti"],KL[103]=["Zui","Can","Xu","Hui","Yin","Qie","Fen","Pi","Yue","You","Ruan","Peng","Ban","Fu","Ling","Fei","Qu",null,"Nu","Tiao","Shuo","Zhen","Lang","Lang","Juan","Ming","Huang","Wang","Tun","Zhao","Ji","Qi","Ying","Zong","Wang","Tong","Lang",null,"Meng","Long","Mu","Deng","Wei","Mo","Ben","Zha","Zhu","Shu",null,"Zhu","Ren","Ba","Po","Duo","Duo","Dao","Li","Qiu","Ji","Jiu","Bi","Xiu","Ting","Ci","Sha","Eburi","Za","Quan","Qian","Yu","Gan","Wu","Cha","Shan","Xun","Fan","Wu","Zi","Li","Xing","Cai","Cun","Ren","Shao","Tuo","Di","Zhang","Mang","Chi","Yi","Gu","Gong","Du","Yi","Qi","Shu","Gang","Tiao","Moku","Soma","Tochi","Lai","Sugi","Mang","Yang","Ma","Miao","Si","Yuan","Hang","Fei","Bei","Jie","Dong","Gao","Yao","Xian","Chu","Qun","Pa","Shu","Hua","Xin","Chou","Zhu","Chou","Song","Ban","Song","Ji","Yue","Jin","Gou","Ji","Mao","Pi","Bi","Wang","Ang","Fang","Fen","Yi","Fu","Nan","Xi","Hu","Ya","Dou","Xun","Zhen","Yao","Lin","Rui","E","Mei","Zhao","Guo","Zhi","Cong","Yun","Waku","Dou","Shu","Zao",null,"Li","Haze","Jian","Cheng","Matsu","Qiang","Feng","Nan","Xiao","Xian","Ku","Ping","Yi","Xi","Zhi","Guai","Xiao","Jia","Jia","Gou","Fu","Mo","Yi","Ye","Ye","Shi","Nie","Bi","Duo","Yi","Ling","Bing","Ni","La","He","Pan","Fan","Zhong","Dai","Ci","Yang","Fu","Bo","Mou","Gan","Qi","Ran","Rou","Mao","Zhao","Song","Zhe","Xia","You","Shen","Ju","Tuo","Zuo","Nan","Ning","Yong","Di","Zhi","Zha","Cha","Dan","Gu","Pu","Jiu","Ao","Fu","Jian","Bo","Duo","Ke","Nai","Zhu","Bi","Liu","Chai","Zha","Si","Zhu","Pei","Shi","Guai","Cha","Yao","Jue","Jiu","Shi"],KL[104]
vendor: 1,591 bytes, line 1
1=["Zhi","Liu","Mei","Hoy","Rong","Zha",null,"Biao","Zhan","Jie","Long","Dong","Lu","Sayng","Li","Lan","Yong","Shu","Xun","Shuan","Qi","Zhen","Qi","Li","Yi","Xiang","Zhen","Li","Su","Gua","Kan","Bing","Ren","Xiao","Bo","Ren","Bing","Zi","Chou","Yi","Jie","Xu","Zhu","Jian","Zui","Er","Er","You","Fa","Gong","Kao","Lao","Zhan","Li","Yin","Yang","He","Gen","Zhi","Chi","Ge","Zai","Luan","Fu","Jie","Hang","Gui","Tao","Guang","Wei","Kuang","Ru","An","An","Juan","Yi","Zhuo","Ku","Zhi","Qiong","Tong","Sang","Sang","Huan","Jie","Jiu","Xue","Duo","Zhui","Yu","Zan","Kasei","Ying","Masu",null,"Zhan","Ya","Nao","Zhen","Dang","Qi","Qiao","Hua","Kuai","Jiang","Zhuang","Xun","Suo","Sha","Zhen","Bei","Ting","Gua","Jing","Bo","Ben","Fu","Rui","Tong","Jue","Xi","Lang","Liu","Feng","Qi","Wen","Jun","Gan","Cu","Liang","Qiu","Ting","You","Mei","Bang","Long","Peng","Zhuang","Di","Xuan","Tu","Zao","Ao","Gu","Bi","Di","Han","Zi","Zhi","Ren","Bei","Geng","Jian","Huan","Wan","Nuo","Jia","Tiao","Ji","Xiao","Lu","Huan","Shao","Cen","Fen","Song","Meng","Wu","Li","Li","Dou","Cen","Ying","Suo","Ju","Ti","Jie","Kun","Zhuo","Shu","Chan","Fan","Wei","Jing","Li","Bing","Fumoto","Shikimi","Tao","Zhi","Lai","Lian","Jian","Zhuo","Ling","Li","Qi","Bing","Zhun","Cong","Qian","Mian","Qi","Qi","Cai","Gun","Chan","Te","Fei","Pai","Bang","Pou","Hun","Zong","Cheng","Zao","Ji","Li","Peng","Yu","Yu","Gu","Hun","Dong","Tang","Gang","Wang","Di","Xi","Fan","Cheng","Zhan","Qi","Yuan","Yan","Yu","Quan","Yi","Sen","Ren","Chui","Leng","Qi","Zhuo","Fu","Ke","Lai","Zou","Zou","Zhuo","Guan","Fen","Fen","Chen","Qiong","Nie"]
1,KL[105]=["Wan","Guo","Lu","Hao","Jie","Yi","Chou","Ju","Ju","Cheng","Zuo","Liang","Qiang","Zhi","Zhui","Ya","Ju","Bei","Jiao","Zhuo","Zi","Bin","Peng","Ding","Chu","Chang","Kunugi","Momiji","Jian","Gui","Xi","Du","Qian","Kunugi","Soko","Shide","Luo","Zhi","Ken","Myeng","Tafu",null,"Peng","Zhan",null,"Tuo","Sen","Duo","Ye","Fou","Wei","Wei","Duan","Jia","Zong","Jian","Yi","Shen","Xi","Yan","Yan","Chuan","Zhan","Chun","Yu","He","Zha","Wo","Pian","Bi","Yao","Huo","Xu","Ruo","Yang","La","Yan","Ben","Hun","Kui","Jie","Kui","Si","Feng","Xie","Tuo","Zhi","Jian","Mu","Mao","Chu","Hu","Hu","Lian","Leng","Ting","Nan","Yu","You","Mei","Song","Xuan","Xuan","Ying","Zhen","Pian","Ye","Ji","Jie","Ye","Chu","Shun","Yu","Cou","Wei","Mei","Di","Ji","Jie","Kai","Qiu","Ying","Rou","Heng","Lou","Le","Hazou","Katsura","Pin","Muro","Gai","Tan","Lan","Yun","Yu","Chen","Lu","Ju","Sakaki",null,"Pi","Xie","Jia","Yi","Zhan","Fu","Nai","Mi","Lang","Rong","Gu","Jian","Ju","Ta","Yao","Zhen","Bang","Sha","Yuan","Zi","Ming","Su","Jia","Yao","Jie","Huang","Gan","Fei","Zha","Qian","Ma","Sun","Yuan","Xie","Rong","Shi","Zhi","Cui","Yun","Ting","Liu","Rong","Tang","Que","Zhai","Si","Sheng","Ta","Ke","Xi","Gu","Qi","Kao","Gao","Sun","Pan","Tao","Ge","Xun","Dian","Nou","Ji","Shuo","Gou","Chui","Qiang","Cha","Qian","Huai","Mei","Xu","Gang","Gao","Zhuo","Tuo","Hashi","Yang","Dian","Jia","Jian","Zui","Kashi","Ori","Bin","Zhu",null,"Xi","Qi","Lian","Hui","Yong","Qian","Guo","Gai","Gai","Tuan","Hua","Cu","Sen","Cui","Beng","You","Hu","Jiang","Hu","Huan","Kui","Yi","Nie","Gao","Kang","Gui","Gui","Cao","Man","Jin"],KL[106]=["Di","Zhuang","Le","Lang","Chen","Cong","Li","Xiu","Qing","Shuang","Fan","Tong","Guan","Ji","Suo","Lei","Lu","Liang","Mi","Lou","Chao","Su","Ke","Shu","Tang","Biao","Lu","Jiu","Shu","Zha","Shu","Zhang","Men","Mo","Niao","Yang","Tiao","Peng","Zhu","Sha","Xi","Quan","Heng","Jian","Cong",null,"Hokuso","Qiang","Tara","Ying","Er","Xin","Zhi","Qiao","Zui","Cong","Pu","Shu","Hua","Kui","Zhen","Zun","Yue","Zhan","Xi","Xun","Dian","Fa","Gan","Mo","Wu","Qiao","Nao","Lin","Liu","Qiao","Xian","Run","Fan","Zhan","Tuo","Lao","Yun","Shun","Tui","Cheng","Tang","Meng","Ju","Cheng","Su","Jue","Jue","Tan","Hui","Ji","Nuo","Xiang","Tuo","Ning","Rui","Zhu","Chuang","Zeng","Fen","Qiong","Ran","Heng","Cen","Gu","Liu","Lao","Gao","Chu","Zusa","Nude","Ca","San","Ji","Dou","Shou","Lu",null,null,"Yuan","Ta","Shu","Jiang","Tan","Lin","Nong","Yin","Xi","Sui","Shan","Zui","Xuan","Cheng","Gan","Ju","Zui","Yi","Qin","Pu","Yan","Lei","Feng","Hui","Dang","Ji","Sui","Bo","Bi","Ding","Chu","Zhua","Kuai","Ji","Jie","Jia","Qing","Zhe","Jian","Qiang","Dao","Yi","Biao","Song","She","Lin","Kunugi","Cha","Meng","Yin","Tao","Tai","Mian","Qi","Toan","Bin","Huo","Ji","Qian","Mi","Ning","Yi","Gao","Jian","Yin","Er","Qing","Yan","Qi","Mi","Zhao","Gui","Chun","Ji","Kui","Po","Deng","Chu",null,"Mian","You","Zhi","Guang","Qian","Lei","Lei","Sa","Lu","Li","Cuan","Lu","Mie","Hui","Ou","Lu","Jie","Gao","Du","Yuan","Li","Fei","Zhuo","Sou","Lian","Tamo","Chu",null,"Zhu","Lu","Yan","Li","Zhu","Chen","Jie","E","Su","Huai","Nie","Yu","Long","Lai",null,"Xian","Kwi","Ju","Xiao","Ling","Ying","Jian","Yin","You","Ying"],KL[107]=["Xiang","Nong","Bo","Chan","Lan","Ju","Shuang","She","Wei","Cong","Quan","Qu","Cang",null,"Yu","Luo","Li","Zan","Luan","Dang","Jue","Em","Lan","Lan","Zhu","Lei","Li","Ba","Nang","Yu","Ling","Tsuki","Qian","Ci","Huan","Xin","Yu","Yu","Qian","Ou","Xu","Chao","Chu","Chi","Kai","Yi","Jue","Xi","Xu","Xia","Yu","Kuai","Lang","Kuan","Shuo","Xi","Ai","Yi","Qi","Hu","Chi","Qin","Kuan","Kan","Kuan","Kan","Chuan","Sha","Gua","Yin","Xin","Xie","Yu","Qian","Xiao","Yi","Ge","Wu","Tan","Jin","Ou","Hu","Ti","Huan","Xu","Pen","Xi","Xiao","Xu","Xi","Sen","Lian","Chu","Yi","Kan","Yu","Chuo","Huan","Zhi","Zheng","Ci","Bu","Wu","Qi","Bu","Bu","Wai","Ju","Qian","Chi","Se","Chi","Se","Zhong","Sui","Sui","Li","Cuo","Yu","Li","Gui","Dai","Dai","Si","Jian","Zhe","Mo","Mo","Yao","Mo","Cu","Yang","Tian","Sheng","Dai","Shang","Xu","Xun","Shu","Can","Jue","Piao","Qia","Qiu","Su","Qing","Yun","Lian","Yi","Fou","Zhi","Ye","Can","Hun","Dan","Ji","Ye","Zhen","Yun","Wen","Chou","Bin","Ti","Jin","Shang","Yin","Diao","Cu","Hui","Cuan","Yi","Dan","Du","Jiang","Lian","Bin","Du","Tsukusu","Jian","Shu","Ou","Duan","Zhu","Yin","Qing","Yi","Sha","Que","Ke","Yao","Jun","Dian","Hui","Hui","Gu","Que","Ji","Yi","Ou","Hui","Duan","Yi","Xiao","Wu","Guan","Mu","Mei","Mei","Ai","Zuo","Du","Yu","Bi","Bi","Bi","Pi","Pi","Bi","Chan","Mao",null,null,"Pu","Mushiru","Jia","Zhan","Sai","Mu","Tuo","Xun","Er","Rong","Xian","Ju","Mu","Hao","Qiu","Dou","Mushiru","Tan","Pei","Ju","Duo","Cui","Bi","San",null,"Mao","Sui","Yu","Yu","Tuo","He","Jian","Ta","San"],KL[108]=["Lu","Mu","Li","Tong","Rong","Chang","Pu","Luo","Zhan","Sao","Zhan","Meng","Luo","Qu","Die","Shi","Di","Min","Jue","Mang","Qi","Pie","Nai","Qi","Dao","Xian","Chuan","Fen","Ri","Nei",null,"Fu","Shen","Dong","Qing","Qi","Yin","Xi","Hai","Yang","An","Ya","Ke","Qing","Ya","Dong","Dan","Lu","Qing","Yang","Yun","Yun","Shui","San","Zheng","Bing","Yong","Dang","Shitamizu","Le","Ni","Tun","Fan","Gui","Ting","Zhi","Qiu","Bin","Ze","Mian","Cuan","Hui","Diao","Han","Cha","Zhuo","Chuan","Wan","Fan","Dai","Xi","Tuo","Mang","Qiu","Qi","Shan","Pai","Han","Qian","Wu","Wu","Xun","Si","Ru","Gong","Jiang","Chi","Wu","Tsuchi",null,"Tang","Zhi","Chi","Qian","Mi","Yu","Wang","Qing","Jing","Rui","Jun","Hong","Tai","Quan","Ji","Bian","Bian","Gan","Wen","Zhong","Fang","Xiong","Jue","Hang","Niou","Qi","Fen","Xu","Xu","Qin","Yi","Wo","Yun","Yuan","Hang","Yan","Shen","Chen","Dan","You","Dun","Hu","Huo","Qie","Mu","Rou","Mei","Ta","Mian","Wu","Chong","Tian","Bi","Sha","Zhi","Pei","Pan","Zhui","Za","Gou","Liu","Mei","Ze","Feng","Ou","Li","
1Lun","Cang","Feng","Wei","Hu","Mo","Mei","Shu","Ju","Zan","Tuo","Tuo","Tuo","He","Li","Mi","Yi","Fa","Fei","You","Tian","Zhi","Zhao","Gu","Zhan","Yan","Si","Kuang","Jiong","Ju","Xie","Qiu","Yi","Jia","Zhong","Quan","Bo","Hui","Mi","Ben","Zhuo","Chu","Le","You","Gu","Hong","Gan","Fa","Mao","Si","Hu","Ping","Ci","Fan","Chi","Su","Ning","Cheng","Ling","Pao","Bo","Qi","Si","Ni","Ju","Yue","Zhu","Sheng","Lei","Xuan","Xue","Fu","Pan","Min","Tai","Yang","Ji","Yong","Guan","Beng","Xue","Long","Lu",null,"Bo","Xie","Po","Ze","Jing","Yin"],KL[109]=["Zhou","Ji","Yi","Hui","Hui","Zui","Cheng","Yin","Wei","Hou","Jian","Yang","Lie","Si","Ji","Er","Xing","Fu","Sa","Suo","Zhi","Yin","Wu","Xi","Kao","Zhu","Jiang","Luo",null,"An","Dong","Yi","Mou","Lei","Yi","Mi","Quan","Jin","Mo","Wei","Xiao","Xie","Hong","Xu","Shuo","Kuang","Tao","Qie","Ju","Er","Zhou","Ru","Ping","Xun","Xiong","Zhi","Guang","Huan","Ming","Huo","Wa","Qia","Pai","Wu","Qu","Liu","Yi","Jia","Jing","Qian","Jiang","Jiao","Cheng","Shi","Zhuo","Ce","Pal","Kuai","Ji","Liu","Chan","Hun","Hu","Nong","Xun","Jin","Lie","Qiu","Wei","Zhe","Jun","Han","Bang","Mang","Zhuo","You","Xi","Bo","Dou","Wan","Hong","Yi","Pu","Ying","Lan","Hao","Lang","Han","Li","Geng","Fu","Wu","Lian","Chun","Feng","Yi","Yu","Tong","Lao","Hai","Jin","Jia","Chong","Weng","Mei","Sui","Cheng","Pei","Xian","Shen","Tu","Kun","Pin","Nie","Han","Jing","Xiao","She","Nian","Tu","Yong","Xiao","Xian","Ting","E","Su","Tun","Juan","Cen","Ti","Li","Shui","Si","Lei","Shui","Tao","Du","Lao","Lai","Lian","Wei","Wo","Yun","Huan","Di",null,"Run","Jian","Zhang","Se","Fu","Guan","Xing","Shou","Shuan","Ya","Chuo","Zhang","Ye","Kong","Wo","Han","Tuo","Dong","He","Wo","Ju","Gan","Liang","Hun","Ta","Zhuo","Dian","Qie","De","Juan","Zi","Xi","Yao","Qi","Gu","Guo","Han","Lin","Tang","Zhou","Peng","Hao","Chang","Shu","Qi","Fang","Chi","Lu","Nao","Ju","Tao","Cong","Lei","Zhi","Peng","Fei","Song","Tian","Pi","Dan","Yu","Ni","Yu","Lu","Gan","Mi","Jing","Ling","Lun","Yin","Cui","Qu","Huai","Yu","Nian","Shen","Piao","Chun","Wa","Yuan","Lai","Hun","Qing","Yan","Qian","Tian","Miao","Zhi","Yin","Mi"],KL[110]=["Ben","Yuan","Wen","Re","Fei","Qing","Yuan","Ke","Ji","She","Yuan","Shibui","Lu","Zi","Du",null,"Jian","Min","Pi","Tani","Yu","Yuan","Shen","Shen","Rou","Huan","Zhu","Jian","Nuan","Yu","Qiu","Ting","Qu","Du","Feng","Zha","Bo","Wo","Wo","Di","Wei","Wen","Ru","Xie","Ce","Wei","Ge","Gang","Yan","Hong","Xuan","Mi","Ke","Mao","Ying","Yan","You","Hong","Miao","Xing","Mei","Zai","Hun","Nai","Kui","Shi","E","Pai","Mei","Lian","Qi","Qi","Mei","Tian","Cou","Wei","Can","Tuan","Mian","Hui","Mo","Xu","Ji","Pen","Jian","Jian","Hu","Feng","Xiang","Yi","Yin","Zhan","Shi","Jie","Cheng","Huang","Tan","Yu","Bi","Min","Shi","Tu","Sheng","Yong","Qu","Zhong","Suei","Jiu","Jiao","Qiou","Yin","Tang","Long","Huo","Yuan","Nan","Ban","You","Quan","Chui","Liang","Chan","Yan","Chun","Nie","Zi","Wan","Shi","Man","Ying","Ratsu","Kui",null,"Jian","Xu","Lu","Gui","Gai",null,null,"Po","Jin","Gui","Tang","Yuan","Suo","Yuan","Lian","Yao","Meng","Zhun","Sheng","Ke","Tai","Da","Wa","Liu","Gou","Sao","Ming","Zha","Shi","Yi","Lun","Ma","Pu","Wei","Li","Cai","Wu","Xi","Wen","Qiang","Ze","Shi","Su","Yi","Zhen","Sou","Yun","Xiu","Yin","Rong","Hun","Su","Su","Ni","Ta","Shi","Ru","Wei","Pan","Chu","Chu","Pang","Weng","Cang","Mie","He","Dian","Hao","Huang","Xi","Zi","Di","Zhi","Ying","Fu","Jie","Hua","Ge","Zi","Tao","Teng","Sui","Bi","Jiao","Hui","Gun","Yin","Gao","Long","Zhi","Yan","She","Man","Ying","Chun","Lu","Lan","Luan",null,"Bin","Tan","Yu","Sou","Hu","Bi","Biao","Zhi","Jiang","Kou","Shen","Shang","Di","Mi","Ao","Lu","Hu","Hu","You","Chan","Fan","Yong","Gun","Man"],KL[111]=["Qing","Yu","Piao","Ji","Ya","Jiao","Qi","Xi","Ji","Lu","Lu","Long","Jin","Guo","Cong","Lou","Zhi","Gai","Qiang","Li","Yan","Cao","Jiao","Cong","Qun","Tuan","Ou","Teng","Ye","Xi","Mi","Tang","Mo","Shang","Han","Lian","Lan","Wa","Li","Qian","Feng","Xuan","Yi","Man","Zi","Mang","Kang","Lei","Peng","Shu","Zhang","Zhang","Chong","Xu","Huan","Kuo","Jian","Yan","Chuang","Liao","Cui","Ti","Yang","Jiang","Cong","Ying","Hong","Xun","Shu","Guan","Ying","Xiao",null,null,"Xu","Lian","Zhi","Wei","Pi","Jue","Jiao","Po","Dang","Hui","Jie","Wu","Pa","Ji","Pan","Gui","Xiao","Qian","Qian","Xi","Lu","Xi","Xuan","Dun","Huang","Min","Run","Su","Liao","Zhen","Zhong","Yi","Di","Wan","Dan","Tan","Chao","Xun","Kui","Yie","Shao","Tu","Zhu","San","Hei","Bi","Shan","Chan","Chan","Shu","Tong","Pu","Lin","Wei","Se","Se","Cheng","Jiong","Cheng","Hua","Jiao","Lao","Che","Gan","Cun","Heng","Si","Shu","Peng","Han","Yun","Liu","Hong","Fu","Hao","He","Xian","Jian","Shan","Xi","Oki",null,"Lan",null,"Yu","Lin","Min","Zao","Dang","Wan","Ze","Xie","Yu","Li","Shi","Xue","Ling","Man","Zi","Yong","Kuai","Can","
1Lian","Dian","Ye","Ao","Huan","Zhen","Chan","Man","Dan","Dan","Yi","Sui","Pi","Ju","Ta","Qin","Ji","Zhuo","Lian","Nong","Guo","Jin","Fen","Se","Ji","Sui","Hui","Chu","Ta","Song","Ding",null,"Zhu","Lai","Bin","Lian","Mi","Shi","Shu","Mi","Ning","Ying","Ying","Meng","Jin","Qi","Pi","Ji","Hao","Ru","Zui","Wo","Tao","Yin","Yin","Dui","Ci","Huo","Jing","Lan","Jun","Ai","Pu","Zhuo","Wei","Bin","Gu","Qian","Xing","Hama","Kuo","Fei",null,"Boku","Jian","Wei","Luo","Zan","Lu","Li"],KL[112]=["You","Yang","Lu","Si","Jie","Ying","Du","Wang","Hui","Xie","Pan","Shen","Biao","Chan","Mo","Liu","Jian","Pu","Se","Cheng","Gu","Bin","Huo","Xian","Lu","Qin","Han","Ying","Yong","Li","Jing","Xiao","Ying","Sui","Wei","Xie","Huai","Hao","Zhu","Long","Lai","Dui","Fan","Hu","Lai",null,null,"Ying","Mi","Ji","Lian","Jian","Ying","Fen","Lin","Yi","Jian","Yue","Chan","Dai","Rang","Jian","Lan","Fan","Shuang","Yuan","Zhuo","Feng","She","Lei","Lan","Cong","Qu","Yong","Qian","Fa","Guan","Que","Yan","Hao","Hyeng","Sa","Zan","Luan","Yan","Li","Mi","Shan","Tan","Dang","Jiao","Chan",null,"Hao","Ba","Zhu","Lan","Lan","Nang","Wan","Luan","Xun","Xian","Yan","Gan","Yan","Yu","Huo","Si","Mie","Guang","Deng","Hui","Xiao","Xiao","Hu","Hong","Ling","Zao","Zhuan","Jiu","Zha","Xie","Chi","Zhuo","Zai","Zai","Can","Yang","Qi","Zhong","Fen","Niu","Jiong","Wen","Po","Yi","Lu","Chui","Pi","Kai","Pan","Yan","Kai","Pang","Mu","Chao","Liao","Gui","Kang","Tun","Guang","Xin","Zhi","Guang","Guang","Wei","Qiang",null,"Da","Xia","Zheng","Zhu","Ke","Zhao","Fu","Ba","Duo","Duo","Ling","Zhuo","Xuan","Ju","Tan","Pao","Jiong","Pao","Tai","Tai","Bing","Yang","Tong","Han","Zhu","Zha","Dian","Wei","Shi","Lian","Chi","Huang",null,"Hu","Shuo","Lan","Jing","Jiao","Xu","Xing","Quan","Lie","Huan","Yang","Xiao","Xiu","Xian","Yin","Wu","Zhou","Yao","Shi","Wei","Tong","Xue","Zai","Kai","Hong","Luo","Xia","Zhu","Xuan","Zheng","Po","Yan","Hui","Guang","Zhe","Hui","Kao",null,"Fan","Shao","Ye","Hui",null,"Tang","Jin","Re",null,"Xi","Fu","Jiong","Che","Pu","Jing","Zhuo","Ting","Wan","Hai","Peng","Lang","Shan","Hu","Feng","Chi","Rong"],KL[113]=["Hu","Xi","Shu","He","Xun","Ku","Jue","Xiao","Xi","Yan","Han","Zhuang","Jun","Di","Xie","Ji","Wu",null,null,"Han","Yan","Huan","Men","Ju","Chou","Bei","Fen","Lin","Kun","Hun","Tun","Xi","Cui","Wu","Hong","Ju","Fu","Wo","Jiao","Cong","Feng","Ping","Qiong","Ruo","Xi","Qiong","Xin","Zhuo","Yan","Yan","Yi","Jue","Yu","Gang","Ran","Pi","Gu",null,"Sheng","Chang","Shao",null,null,null,null,"Chen","He","Kui","Zhong","Duan","Xia","Hui","Feng","Lian","Xuan","Xing","Huang","Jiao","Jian","Bi","Ying","Zhu","Wei","Tuan","Tian","Xi","Nuan","Nuan","Chan","Yan","Jiong","Jiong","Yu","Mei","Sha","Wei","Ye","Xin","Qiong","Rou","Mei","Huan","Xu","Zhao","Wei","Fan","Qiu","Sui","Yang","Lie","Zhu","Jie","Gao","Gua","Bao","Hu","Yun","Xia",null,null,"Bian","Gou","Tui","Tang","Chao","Shan","N","Bo","Huang","Xie","Xi","Wu","Xi","Yun","He","He","Xi","Yun","Xiong","Nai","Shan","Qiong","Yao","Xun","Mi","Lian","Ying","Wen","Rong","Oozutsu",null,"Qiang","Liu","Xi","Bi","Biao","Zong","Lu","Jian","Shou","Yi","Lou","Feng","Sui","Yi","Tong","Jue","Zong","Yun","Hu","Yi","Zhi","Ao","Wei","Liao","Han","Ou","Re","Jiong","Man",null,"Shang","Cuan","Zeng","Jian","Xi","Xi","Xi","Yi","Xiao","Chi","Huang","Chan","Ye","Qian","Ran","Yan","Xian","Qiao","Zun","Deng","Dun","Shen","Jiao","Fen","Si","Liao","Yu","Lin","Tong","Shao","Fen","Fan","Yan","Xun","Lan","Mei","Tang","Yi","Jing","Men",null,null,"Ying","Yu","Yi","Xue","Lan","Tai","Zao","Can","Sui","Xi","Que","Cong","Lian","Hui","Zhu","Xie","Ling","Wei","Yi","Xie","Zhao","Hui","Tatsu","Nung","Lan","Ru","Xian","Kao","Xun","Jin","Chou","Chou","Yao"],KL[114]=["He","Lan","Biao","Rong","Li","Mo","Bao","Ruo","Lu","La","Ao","Xun","Kuang","Shuo",null,"Li","Lu","Jue","Liao","Yan","Xi","Xie","Long","Ye",null,"Rang","Yue","Lan","Cong","Jue","Tong","Guan",null,"Che","Mi","Tang","Lan","Zhu",null,"Ling","Cuan","Yu","Zhua","Tsumekanmuri","Pa","Zheng","Pao","Cheng","Yuan","Ai","Wei",null,"Jue","Jue","Fu","Ye","Ba","Die","Ye","Yao","Zu","Shuang","Er","Qiang","Chuang","Ge","Zang","Die","Qiang","Yong","Qiang","Pian","Ban","Pan","Shao","Jian","Pai","Du","Chuang","Tou","Zha","Bian","Die","Bang","Bo","Chuang","You",null,"Du","Ya","Cheng","Niu","Ushihen","Pin","Jiu","Mou","Tuo","Mu","Lao","Ren","Mang","Fang","Mao","Mu","Gang","Wu","Yan","Ge","Bei","Si","Jian","Gu","You","Ge","Sheng","Mu","Di","Qian","Quan","Quan","Zi","Te","Xi","Mang","Keng","Qian","Wu","Gu","Xi","Li","Li","Pou","Ji","Gang","Zhi","Ben","Quan","Run","Du","Ju","Jia","Jian","Feng","Pian","Ke","Ju","Kao","Chu","Xi","Bei","Luo","Jie","Ma","San","Wei","Li","Dun","Tong",null,"Jiang","Ikenie","Li","Du","Lie","Pi","Piao","Bao","Xi","Chou","Wei","Kui","Chou","Quan","Fan","Ba","Fan","Qiu","Ji","Cai","Chuo","An","Jie","Zhuang","Guang","Ma","You","Kang","Bo","Hou","Ya","Yin","Huan","Zhuang","Yun","Kuang","Niu","Di","Qing","Zhong","Mu","Bei","Pi","Ju","Ni","Sheng","Pao","Xia","Tuo","Hu","Ling","Fei","Pi","Ni","Ao","You","Gou","Yue","Ju","Dan","Po","Gu","Xian","Ning","Huan","Hen","Jiao","He","Zhao","Ji","Xun","Shan","Ta","Rong","Shou","Tong","Lao","Du","Xia","Shi","Hua","Zheng","Yu","Sun","Yu","Bi","Mang","Xi","Juan","Li","Xia","Yin","Suan","Lang","Bei","Zhi","Yan"],KL[115]=["Sha","Li","Han","Xian","Jing","Pai","Fei","Yao","Ba","Qi","Ni","Biao","Yin","Lai","Xi","Jian","Qiang","Kun","Yan","Guo","Zong","Mi","Chang","Yi","Zhi","Zheng","Ya","Meng","Cai","Cu","She","Kari","Cen","Luo","Hu","Zong","Ji","Wei","Feng","Wo","Yuan","Xing","Zhu","Mao","Wei","Yuan","Xian","Tuan","Ya","Nao","Xie","Jia","Hou","Bian","You","You","Mei","Zha","Yao","Sun","Bo","Ming","Hua","Yuan","Sou","Ma","Yuan","Dai","Yu","Shi","Hao",null,"Yi","Zhen","Chuang","Hao","Man","Jing","Jiang","Mu","Zhang","Chan","Ao","Ao","Hao","Cui","Fen","Jue","Bi","Bi","Huang","Pu","Lin","Yu","Tong","Yao","Liao","Shuo","Xiao","Swu","Ton","Xi","Ge","Juan","Du","Hui","Kuai","Xian","Xie","Ta","Xian","Xun","Ning","Pin","Huo","Nou","Meng","Lie","N
1ao","Guang","Shou","Lu","Ta","Xian","Mi","Rang","Huan","Nao","Luo","Xian","Qi","Jue","Xuan","Miao","Zi","Lu","Lu","Yu","Su","Wang","Qiu","Ga","Ding","Le","Ba","Ji","Hong","Di","Quan","Gan","Jiu","Yu","Ji","Yu","Yang","Ma","Gong","Wu","Fu","Wen","Jie","Ya","Fen","Bian","Beng","Yue","Jue","Yun","Jue","Wan","Jian","Mei","Dan","Pi","Wei","Huan","Xian","Qiang","Ling","Dai","Yi","An","Ping","Dian","Fu","Xuan","Xi","Bo","Ci","Gou","Jia","Shao","Po","Ci","Ke","Ran","Sheng","Shen","Yi","Zu","Jia","Min","Shan","Liu","Bi","Zhen","Zhen","Jue","Fa","Long","Jin","Jiao","Jian","Li","Guang","Xian","Zhou","Gong","Yan","Xiu","Yang","Xu","Luo","Su","Zhu","Qin","Ken","Xun","Bao","Er","Xiang","Yao","Xia","Heng","Gui","Chong","Xu","Ban","Pei",null,"Dang","Ei","Hun","Wen","E","Cheng","Ti","Wu","Wu","Cheng","Jun","Mei","Bei","Ting","Xian","Chuo"],KL[116]=["Han","Xuan","Yan","Qiu","Quan","Lang","Li","Xiu","Fu","Liu","Ye","Xi","Ling","Li","Jin","Lian","Suo","Chiisai",null,"Wan","Dian","Pin","Zhan","Cui","Min","Yu","Ju","Chen","Lai","Wen","Sheng","Wei","Dian","Chu","Zhuo","Pei","Cheng","Hu","Qi","E","Kun","Chang","Qi","Beng","Wan","Lu","Cong","Guan","Yan","Diao","Bei","Lin","Qin","Pi","Pa","Que","Zhuo","Qin","Fa",null,"Qiong","Du","Jie","Hun","Yu","Mao","Mei","Chun","Xuan","Ti","Xing","Dai","Rou","Min","Zhen","Wei","Ruan","Huan","Jie","Chuan","Jian","Zhuan","Yang","Lian","Quan","Xia","Duan","Yuan","Ye","Nao","Hu","Ying","Yu","Huang","Rui","Se","Liu","Shi","Rong","Suo","Yao","Wen","Wu","Jin","Jin","Ying","Ma","Tao","Liu","Tang","Li","
1Lang","Gui","Zhen","Qiang","Cuo","Jue","Zhao","Yao","Ai","Bin","Tu","Chang","Kun","Zhuan","Cong","Jin","Yi","Cui","Cong","Qi","Li","Ying","Suo","Qiu","Xuan","Ao","Lian","Man","Zhang","Yin",null,"Ying","Zhi","Lu","Wu","Deng","Xiou","Zeng","Xun","Qu","Dang","Lin","Liao","Qiong","Su","Huang","Gui","Pu","Jing","Fan","Jin","Liu","Ji",null,"Jing","Ai","Bi","Can","Qu","Zao","Dang","Jiao","Gun","Tan","Hui","Huan","Se","Sui","Tian",null,"Yu","Jin","Lu","Bin","Shou","Wen","Zui","Lan","Xi","Ji","Xuan","Ruan","Huo","Gai","Lei","Du","Li","Zhi","Rou","Li","Zan","Qiong","Zhe","Gui","Sui","La","Long","Lu","Li","Zan","Lan","Ying","Mi","Xiang","Xi","Guan","Dao","Zan","Huan","Gua","Bo","Die","Bao","Hu","Zhi","Piao","Ban","Rang","Li","Wa","Dekaguramu","Jiang","Qian","Fan","Pen","Fang","Dan","Weng","Ou","Deshiguramu","Miriguramu","Thon","Hu","Ling","Yi","Ping","Ci","Hekutogura","Juan","Chang","Chi","Sarake","Dang","Meng","Pou"],KL[117]=["Zhui","Ping","Bian","Zhou","Zhen","Senchigura","Ci","Ying","Qi","Xian","Lou","Di","Ou","Meng","Zhuan","Peng","Lin","Zeng","Wu","Pi","Dan","Weng","Ying","Yan","Gan","Dai","Shen","Tian","Tian","Han","Chang","Sheng","Qing","Sheng","Chan","Chan","Rui","Sheng","Su","Sen","Yong","Shuai","Lu","Fu","Yong","Beng","Feng","Ning","Tian","You","Jia","Shen","Zha","Dian","Fu","Nan","Dian","Ping","Ting","Hua","Ting","Quan","Zi","Meng","Bi","Qi","Liu","Xun","Liu","Chang","Mu","Yun","Fan","Fu","Geng","Tian","Jie","Jie","Quan","Wei","Fu","Tian","Mu","Tap","Pan","Jiang","Wa","Da","Nan","Liu","Ben","Zhen","Chu","Mu","Mu","Ce","Cen","Gai","Bi","Da","Zhi","Lue","Qi","Lue","Pan","Kesa","Fan","Hua","Yu","Yu","Mu","Jun","Yi","Liu","Yu","Die","Chou","Hua","Dang","Chuo","Ji","Wan","Jiang","Sheng","Chang","Tuan","Lei","Ji","Cha","Liu","Tatamu","Tuan","Lin","Jiang","Jiang","Chou","Bo","Die","Die","Pi","Nie","Dan","Shu","Shu","Zhi","Yi","Chuang","Nai","Ding","Bi","Jie","Liao","Gong","Ge","Jiu","Zhou","Xia","Shan","Xu","Nue","Li","Yang","Chen","You","Ba","Jie","Jue","Zhi","Xia","Cui","Bi","Yi","Li","Zong","Chuang","Feng","Zhu","Pao","Pi","Gan","Ke","Ci","Xie","Qi","Dan","Zhen","Fa","Zhi","Teng","Ju","Ji","Fei","Qu","Dian","Jia","Xian","Cha","Bing","Ni","Zheng","Yong","Jing","Quan","Chong","Tong","Yi","Kai","Wei","Hui","Duo","Yang","Chi","Zhi","Hen","Ya","Mei","Dou","Jing","Xiao","Tong","Tu","Mang","Pi","Xiao","Suan","Pu","Li","Zhi","Cuo","Duo","Wu","Sha","Lao","Shou","Huan","Xian","Yi","Peng","Zhang","Guan","Tan","Fei","Ma","Lin","Chi","Ji","Dian","An","Chi","Bi","Bei","Min","Gu","Dui","E","Wei"],KL[118]=["Yu","Cui","Ya","Zhu","Cu","Dan","Shen","Zhung","Ji","Yu","Hou","Feng","La","Yang","Shen","Tu","Yu","Gua","Wen","Huan","Ku","Jia","Yin","Yi","Lu","Sao","Jue","Chi","Xi","Guan","Yi","Wen","Ji","Chuang","Ban","Lei","Liu","Chai","Shou","Nue","Dian","Da","Pie","Tan","Zhang","Biao","Shen","Cu","Luo","Yi","Zong","Chou","Zhang","Zhai","Sou","Suo","Que","Diao","Lou","Lu","Mo","Jin","Yin","Ying","Huang","Fu","Liao","Long","Qiao","Liu","Lao","Xian","Fei","Dan","Yin","He","Ai","Ban","Xian","Guan","Guai","Nong","Yu","Wei","Yi","Yong","Pi","Lei","Li","Shu","Dan","Lin","Dian","Lin","Lai","Pie","Ji","Chi","Yang","Xian","Jie","Zheng",null,"Li","Huo","Lai","Shaku","Dian","Xian","Ying","Yin","Qu","Yong","Tan","Dian","Luo","Luan","Luan","Bo",null,"Gui","Po","Fa","Deng","Fa","Bai","Bai","Qie","Bi","Zao","Zao","Mao","De","Pa","Jie","Huang","Gui","Ci","Ling","Gao","Mo","Ji","Jiao","Peng","Gao","Ai","E","Hao","Han","Bi","Wan","Chou","Qian","Xi","Ai","Jiong","Hao","Huang","Hao","Ze","Cui","Hao","Xiao","Ye","Po","Hao","Jiao","Ai","Xing","Huang","Li","Piao","He","Jiao","Pi","Gan","Pao","Zhou","Jun","Qiu","Cun","Que","Zha","Gu","Jun","Jun","Zhou","Zha","Gu","Zhan","Du","Min","Qi","Ying","Yu","Bei","Zhao","Zhong","Pen","He","Ying","He","Yi","Bo","Wan","He","Ang","Zhan","Yan","Jian","He","Yu","Kui","Fan","Gai","Dao","Pan","Fu","Qiu","Sheng","Dao","Lu","Zhan","Meng","Li","Jin","Xu","Jian","Pan","Guan","An","Lu","Shu","Zhou","Dang","An","Gu","Li","Mu","Cheng","Gan","Xu","Mang","Mang","Zhi","Qi","Ruan","Tian","Xiang","Dun","Xin","Xi","Pan","Feng","Dun","Min"],KL[119]=["Ming","Sheng","Shi","Yun","Mian","Pan","Fang","Miao","Dan","Mei","Mao","Kan","Xian","Ou","Shi","Yang","Zheng","Yao","Shen","Huo","Da","Zhen","Kuang","Ju","Shen","Chi","Sheng","Mei","Mo","Zhu","Zhen","Zhen","Mian","Di","Yuan","Die","Yi","Zi","Zi","Chao","Zha","Xuan","Bing","Mi","Long","Sui","Dong","Mi","Die","Yi","Er","Ming","Xuan","Chi","Kuang","Juan","Mou","Zhen","Tiao","Yang","Yan","Mo","Zhong","Mai","Zhao","Zheng","Mei","Jun","Shao","Han","Huan","Di","Cheng","Cuo","Juan","E","Wan","Xian","Xi","Kun","Lai","Jian","Shan","Tian","Hun","Wan","Ling","Shi","Qiong","Lie","Yai","Jing","Zheng","Li","
1Lai","Sui","Juan","Shui","Sui","Du","Bi","Bi","Mu","Hun","Ni","Lu","Yi","Jie","Cai","Zhou","Yu","Hun","Ma","Xia","Xing","Xi","Gun","Cai","Chun","Jian","Mei","Du","Hou","Xuan","Ti","Kui","Gao","Rui","Mou","Xu","Fa","Wen","Miao","Chou","Kui","Mi","Weng","Kou","Dang","Chen","Ke","Sou","Xia","Qiong","Mao","Ming","Man","Shui","Ze","Zhang","Yi","Diao","Ou","Mo","Shun","Cong","Lou","Chi","Man","Piao","Cheng","Ji","Meng",null,"Run","Pie","Xi","Qiao","Pu","Zhu","Deng","Shen","Shun","Liao","Che","Xian","Kan","Ye","Xu","Tong","Mou","Lin","Kui","Xian","Ye","Ai","Hui","Zhan","Jian","Gu","Zhao","Qu","Wei","Chou","Sao","Ning","Xun","Yao","Huo","Meng","Mian","Bin","Mian","Li","Kuang","Jue","Xuan","Mian","Huo","Lu","Meng","Long","Guan","Man","Xi","Chu","Tang","Kan","Zhu","Mao","Jin","Lin","Yu","Shuo","Ce","Jue","Shi","Yi","Shen","Zhi","Hou","Shen","Ying","Ju","Zhou","Jiao","Cuo","Duan","Ai","Jiao","Zeng","Huo","Bai","Shi","Ding","Qi","Ji","Zi","Gan","Wu","Tuo","Ku","Qiang","Xi","Fan","Kuang"],KL[120]=["Dang","Ma","Sha","Dan","Jue","Li","Fu","Min","Nuo","Huo","Kang","Zhi","Qi","Kan","Jie","Fen","E","Ya","Pi","Zhe","Yan","Sui","Zhuan","Che","Dun","Pan","Yan",null,"Feng","Fa","Mo","Zha","Qu","Yu","Luo","Tuo","Tuo","Di","Zhai","Zhen","Ai","Fei","Mu","Zhu","Li","Bian","Nu","Ping","Peng","Ling","Pao","Le","Po","Bo","Po","Shen","Za","Nuo","Li","Long","Tong",null,"Li","Aragane","Chu","Keng","Quan","Zhu","Kuang","Huo","E","Nao","Jia","Lu","Wei","Ai","Luo","Ken","Xing","Yan","Tong","Peng","Xi",null,"Hong","Shuo","Xia","Qiao",null,"Wei","Qiao",null,"Keng","Xiao","Que","Chan","Lang","Hong","Yu","Xiao","Xia","Mang","Long","Iong","Che","Che","E","Liu","Ying","Mang","Que","Yan","Sha","Kun","Yu",null,"Kaki","Lu","Chen","Jian","Nue","Song","Zhuo","Keng","Peng","Yan","Zhui","Kong","Ceng","Qi","Zong","Qing","Lin","Jun","Bo","Ding","Min","Diao","Jian","He","Lu","Ai","Sui","Que","Ling","Bei","Yin","Dui","Wu","Qi","Lun","Wan","Dian","Gang","Pei","Qi","Chen","Ruan","Yan","Die","Ding","Du","Tuo","Jie","Ying","Bian","Ke","Bi","Wei","Shuo","Zhen","Duan","Xia","Dang","Ti","Nao","Peng","Jian","Di","Tan","Cha","Seki","Qi",null,"Feng","Xuan","Que","Que","Ma","Gong","Nian","Su","E","Ci","Liu","Si","Tang","Bang","Hua","Pi","Wei","Sang","Lei","Cuo","Zhen","Xia","Qi","Lian","Pan","Wei","Yun","Dui","Zhe","Ke","La",null,"Qing","Gun","Zhuan","Chan","Qi","Ao","Peng","Lu","Lu","Kan","Qiang","Chen","Yin","Lei","Biao","Qi","Mo","Qi","Cui","Zong","Qing","Chuo",null,"Ji","Shan","Lao","Qu","Zeng","Deng","Jian","Xi","Lin","Ding","Dian","Huang","Pan","Za","Qiao","Di","Li"],KL[121]=["Tani","Jiao",null,"Zhang","Qiao","Dun","Xian","Yu","Zhui","He","Huo","Zhai","Lei","Ke","Chu","Ji","Que","Dang","Yi","Jiang","Pi","Pi","Yu","Pin","Qi","Ai","Kai","Jian","Yu","Ruan","Meng","Pao","Ci",null,null,"Mie","Ca","Xian","Kuang","Lei","Lei","Zhi","Li","Li","Fan","Que","Pao","Ying","Li","Long","Long","Mo","Bo","Shuang","Guan","Lan","Zan","Yan","Shi","Shi","Li","Reng","She","Yue","Si","Qi","Ta","Ma","Xie","Xian","Xian","Zhi","Qi","Zhi","Beng","Dui","Zhong",null,"Yi","Shi","You","Zhi","Tiao","Fu","Fu","Mi","Zu","Zhi","Suan","Mei","Zuo","Qu","Hu","Zhu","Shen","Sui","Ci","Chai","Mi","Lu","Yu","Xiang","Wu","Tiao","Piao","Zhu","Gui","Xia","Zhi","Ji","Gao","Zhen","Gao","Shui","Jin","Chen","Gai","Kun","Di","Dao","Huo","Tao","Qi","Gu","Guan","Zui","Ling","Lu","Bing","Jin","Dao","Zhi","Lu","Shan","Bei","Zhe","Hui","You","Xi","Yin","Zi","Huo","Zhen","Fu","Yuan","Wu","Xian","Yang","Ti","Yi","Mei","Si","Di",null,"Zhuo","Zhen","Yong","Ji","Gao","Tang","Si","Ma","Ta",null,"Xuan","Qi","Yu","Xi","Ji","Si","Chan","Tan","Kuai","Sui","Li","Nong","Ni","Dao","Li","Rang","Yue","Ti","Zan","Lei","Rou","Yu","Yu","Chi","Xie","Qin","He","Tu","Xiu","Si","Ren","Tu","Zi","Cha","Gan","Yi","Xian","Bing","Nian","Qiu","Qiu","Zhong","Fen","Hao","Yun","Ke","Miao","Zhi","Geng","Bi","Zhi","Yu","Mi","Ku","Ban","Pi","Ni","Li","You","Zu","Pi","Ba","Ling","Mo","Cheng","Nian","Qin","Yang","Zuo","Zhi","Zhi","Shu","Ju","Zi","Huo","Ji","Cheng","Tong","Zhi","Huo","He","Yin","Zi","Zhi","Jie","Ren","Du","Yi","Zhu","Hui","Nong","Fu"],KL[122]=["Xi","Kao","Lang","Fu","Ze","Shui","Lu","Kun","Gan","Geng","Ti","Cheng","Tu","Shao","Shui","Ya","Lun","Lu","Gu","Zuo","Ren","Zhun","Bang","Bai","Ji","Zhi","Zhi","Kun","Leng","Peng","Ke","Bing","Chou","Zu","Yu","Su","Lue",null,"Yi","Xi","Bian","Ji","Fu","Bi","Nuo","Jie","Zhong","Zong","Xu","Cheng","Dao","Wen","Lian","Zi","Yu","Ji","Xu","Zhen","Zhi","Dao","Jia","Ji","Gao","Gao","Gu","Rong","Sui","You","Ji","Kang","Mu","Shan","Men","Zhi","Ji","Lu","Su","Ji","Ying","Wen","Qiu","Se",null,"Yi","Huang","Qie","Ji","Sui","Xiao","Pu","Jiao","Zhuo","Tong","Sai","Lu","Sui","Nong","Se","Hui","Rang","Nuo","Yu","Bin","Ji","Tui","Wen","Cheng","Huo","Gong","Lu","Biao",null,"Rang","Zhuo","Li","Zan","Xue","Wa","Jiu","Qiong","Xi","Qiong","Kong","Yu","Sen","Jing","Yao","Chuan","Zhun","Tu","Lao","Qie","Zhai","Yao","Bian","Bao","Yao","Bing","Wa","Zhu","Jiao","Qiao","Diao","Wu","Gui","Yao","Zhi","Chuang","Yao","Tiao","Jiao","Chuang","Jiong","Xiao","Cheng","Kou","Cuan","Wo","Dan","Ku","Ke","Zhui","Xu","Su","Guan","Kui","Dou",null,"Yin","Wo","Wa","Ya","Yu","Ju","Qiong","Yao","Yao","Tiao","Chao","Yu","Tian","Diao","Ju","Liao","Xi","Wu","Kui","Chuang","Zh
1ao",null,"Kuan","Long","Cheng","Cui","Piao","Zao","Cuan","Qiao","Qiong","Dou","Zao","Long","Qie","Li","Chu","Shi","Fou","Qian","Chu","Hong","Qi","Qian","Gong","Shi","Shu","Miao","Ju","Zhan","Zhu","Ling","Long","Bing","Jing","Jing","Zhang","Yi","Si","Jun","Hong","Tong","Song","Jing","Diao","Yi","Shu","Jing","Qu","Jie","Ping","Duan","Shao","Zhuan","Ceng","Deng","Cui","Huai","Jing","Kan","Jing","Zhu","Zhu","Le","Peng","Yu","Chi","Gan"],KL[123]=["Mang","Zhu","Utsubo","Du","Ji","Xiao","Ba","Suan","Ji","Zhen","Zhao","Sun","Ya","Zhui","Yuan","Hu","Gang","Xiao","Cen","Pi","Bi","Jian","Yi","Dong","Shan","Sheng","Xia","Di","Zhu","Na","Chi","Gu","Li","Qie","Min","Bao","Tiao","Si","Fu","Ce","Ben","Pei","Da","Zi","Di","Ling","Ze","Nu","Fu","Gou","Fan","Jia","Ge","Fan","Shi","Mao","Po","Sey","Jian","Qiong","Long","Souke","Bian","Luo","Gui","Qu","Chi","Yin","Yao","Xian","Bi","Qiong","Gua","Deng","Jiao","Jin","Quan","Sun","Ru","Fa","Kuang","Zhu","Tong","Ji","Da","Xing","Ce","Zhong","Kou","Lai","Bi","Shai","Dang","Zheng","Ce","Fu","Yun","Tu","Pa","Li","Lang","Ju","Guan","Jian","Han","Tong","Xia","Zhi","Cheng","Suan","Shi","Zhu","Zuo","Xiao","Shao","Ting","Ce","Yan","Gao","Kuai","Gan","Chou","Kago","Gang","Yun","O","Qian","Xiao","Jian","Pu","Lai","Zou","Bi","Bi","Bi","Ge","Chi","Guai","Yu","Jian","Zhao","Gu","Chi","Zheng","Jing","Sha","Zhou","Lu","Bo","Ji","Lin","Suan","Jun","Fu","Zha","Gu","Kong","Qian","Quan","Jun","Chui","Guan","Yuan","Ce","Ju","Bo","Ze","Qie","Tuo","Luo","Dan","Xiao","Ruo","Jian","Xuan","Bian","Sun","Xiang","Xian","Ping","Zhen","Sheng","Hu","Shi","Zhu","Yue","Chun","Lu","Wu","Dong","Xiao","Ji","Jie","Huang","Xing","Mei","Fan","Chui","Zhuan","Pian","Feng","Zhu","Hong","Qie","Hou","Qiu","Miao","Qian",null,"Kui","Sik","Lou","Yun","He","Tang","Yue","Chou","Gao","Fei","Ruo","Zheng","Gou","Nie","Qian","Xiao","Cuan","Gong","Pang","Du","Li","Bi","Zhuo","Chu","Shai","Chi","Zhu","Qiang","Long","Lan","Jian","Bu","Li","Hui","Bi","Di","Cong","Yan","Peng","Sen","Zhuan","Pai","Piao","Dou","Yu","Mie","Zhuan"],KL[124]=["Ze","Xi","Guo","Yi","Hu","Chan","Kou","Cu","Ping","Chou","Ji","Gui","Su","Lou","Zha","Lu","Nian","Suo","Cuan","Sasara","Suo","Le","Duan","Yana","Xiao","Bo","Mi","Si","Dang","Liao","Dan","Dian","Fu","Jian","Min","Kui","Dai","Qiao","Deng","Huang","Sun","Lao","Zan","Xiao","Du","Shi","Zan",null,"Pai","Hata","Pai","Gan","Ju","Du","Lu","Yan","Bo","Dang","Sai","Ke","Long","Qian","Lian","Bo","Zhou","Lai",null,"Lan","Kui","Yu","Yue","Hao","Zhen","Tai","Ti","Mi","Chou","Ji",null,"Hata","Teng","Zhuan","Zhou","Fan","Sou","Zhou","Kuji","Zhuo","Teng","Lu","Lu","Jian","Tuo","Ying","Yu","Lai","Long","Shinshi","Lian","Lan","Qian","Yue","Zhong","Qu","Lian","Bian","Duan","Zuan","Li","Si","Luo","Ying","Yue","Zhuo","Xu","Mi","Di","Fan","Shen","Zhe","Shen","Nu","Xie","Lei","Xian","Zi","Ni","Cun",null,"Qian","Kume","Bi","Ban","Wu","Sha","Kang","Rou","Fen","Bi","Cui",null,"Li","Chi","Nukamiso","Ro","Ba","Li","Gan","Ju","Po","Mo","Cu","Nian","Zhou","Li","Su","Tiao","Li","Qi","Su","Hong","Tong","Zi","Ce","Yue","Zhou","Lin","Zhuang","Bai",null,"Fen","Ji",null,"Sukumo","Liang","Xian","Fu","Liang","Can","Geng","Li","Yue","Lu","Ju","Qi","Cui","Bai","Zhang","Lin","Zong","Jing","Guo","Kouji","San","San","Tang","Bian","Rou","Mian","Hou","Xu","Zong","Hu","Jian","Zan","Ci","Li","Xie","Fu","Ni","Bei","Gu","Xiu","Gao","Tang","Qiu","Sukumo","Cao","Zhuang","Tang","Mi","San","Fen","Zao","Kang","Jiang","Mo","San","San","Nuo","Xi","Liang","Jiang","Kuai","Bo","Huan",null,"Zong","Xian","Nuo","Tuan","Nie","Li","Zuo","Di","Nie","Tiao","Lan","Mi","Jiao","Jiu","Xi","Gong","Zheng","Jiu","You"],KL[125]=["Ji","Cha","Zhou","Xun","Yue","Hong","Yu","He","Wan","Ren","Wen","Wen","Qiu","Na","Zi","Tou","Niu","Fou","Jie","Shu","Chun","Pi","Yin","Sha","Hong","Zhi","Ji","Fen","Yun","Ren","Dan","Jin","Su","Fang","Suo","Cui","Jiu","Zha","Kinu","Jin","Fu","Zhi","Ci","Zi","Chou","Hong","Zha","Lei","Xi","Fu","Xie","Shen","Bei","Zhu","Qu","Ling","Zhu","Shao","Gan","Yang","Fu","Tuo","Zhen","Dai","Zhuo","Shi","Zhong","Xian","Zu","Jiong","Ban","Ju","Mo","Shu","Zui","Wata","Jing","Ren","Heng","Xie","Jie","Zhu","Chou","Gua","Bai","Jue","Kuang","Hu","Ci","Geng","Geng","Tao","Xie","Ku","Jiao","Quan","Gai","Luo","Xuan","Bing","Xian","Fu","Gei","Tong","Rong","Tiao","Yin","Lei","Xie","Quan","Xu","Lun","Die","Tong","Si","Jiang","Xiang","Hui","Jue","Zhi","Jian","Juan","Chi","Mian","Zhen","Lu","Cheng","Qiu","Shu","Bang","Tong","Xiao","Wan","Qin","Geng","Xiu","Ti","Xiu","Xie","Hong","Xi","Fu","Ting","Sui","Dui","Kun","Fu","Jing","Hu","Zhi","Yan","Jiong","Feng","Ji","Sok","Kase","Zong","Lin","Duo","Li","Lu","Liang","Chou","Quan","Shao","Qi","Qi","Zhun","Qi","Wan","Qian","Xian","Shou","Wei","Qi","Tao","Wan","Gang","Wang","Beng","Zhui","Cai","Guo","Cui","Lun","Liu","Qi","Zhan","Bei","Chuo","Ling","Mian","Qi","Qie","Tan","Zong","Gun","Zou","Yi","Zi","Xing","Liang","Jin","Fei","Rui","Min","Yu","Zong","Fan","Lu","Xu","Yingl","Zh
1ang","Kasuri","Xu","Xiang","Jian","Ke","Xian","Ruan","Mian","Qi","Duan","Zhong","Di","Min","Miao","Yuan","Xie","Bao","Si","Qiu","Bian","Huan","Geng","Cong","Mian","Wei","Fu","Wei","Yu","Gou","Miao","Xie","Lian","Zong","Bian","Yun","Yin","Ti","Gua","Zhi","Yun","Cheng","Chan","Dai"],KL[126]=["Xia","Yuan","Zong","Xu","Nawa","Odoshi","Geng","Sen","Ying","Jin","Yi","Zhui","Ni","Bang","Gu","Pan","Zhou","Jian","Cuo","Quan","Shuang","Yun","Xia","Shuai","Xi","Rong","Tao","Fu","Yun","Zhen","Gao","Ru","Hu","Zai","Teng","Xian","Su","Zhen","Zong","Tao","Horo","Cai","Bi","Feng","Cu","Li","Suo","Yin","Xi","Zong","Lei","Zhuan","Qian","Man","Zhi","Lu","Mo","Piao","Lian","Mi","Xuan","Zong","Ji","Shan","Sui","Fan","Shuai","Beng","Yi","Sao","Mou","Zhou","Qiang","Hun","Sem","Xi","Jung","Xiu","Ran","Xuan","Hui","Qiao","Zeng","Zuo","Zhi","Shan","San","Lin","Yu","Fan","Liao","Chuo","Zun","Jian","Rao","Chan","Rui","Xiu","Hui","Hua","Zuan","Xi","Qiang","Un","Da","Sheng","Hui","Xi","Se","Jian","Jiang","Huan","Zao","Cong","Jie","Jiao","Bo","Chan","Yi","Nao","Sui","Yi","Shai","Xu","Ji","Bin","Qian","Lan","Pu","Xun","Zuan","Qi","Peng","Li","Mo","Lei","Xie","Zuan","Kuang","You","Xu","Lei","Xian","Chan","Kou","Lu","Chan","Ying","Cai","Xiang","Xian","Zui","Zuan","Luo","Xi","Dao","Lan","Lei","Lian","Si","Jiu","Yu","Hong","Zhou","Xian","He","Yue","Ji","Wan","Kuang","Ji","Ren","Wei","Yun","Hong","Chun","Pi","Sha","Gang","Na","Ren","Zong","Lun","Fen","Zhi","Wen","Fang","Zhu","Yin","Niu","Shu","Xian","Gan","Xie","Fu","Lian","Zu","Shen","Xi","Zhi","Zhong","Zhou","Ban","Fu","Zhuo","Shao","Yi","Jing","Dai","Bang","Rong","Jie","Ku","Rao","Die","Heng","Hui","Gei","Xuan","Jiang","Luo","Jue","Jiao","Tong","Geng","Xiao","Juan","Xiu","Xi","Sui","Tao","Ji","Ti","Ji","Xu","Ling",null,"Xu","Qi","Fei","Chuo","Zhang","Gun","Sheng","Wei","Mian","Shou","Beng","Chou","Tao","Liu","Quan","Zong","Zhan","Wan","Lu"],KL[127]=["Zhui","Zi","Ke","Xiang","Jian","Mian","Lan","Ti","Miao","Qi","Yun","Hui","Si","Duo","Duan","Bian","Xian","Gou","Zhui","Huan","Di","Lu","Bian","Min","Yuan","Jin","Fu","Ru","Zhen","Feng","Shuai","Gao","Chan","Li","Yi","Jian","Bin","Piao","Man","Lei","Ying","Suo","Mou","Sao","Xie","Liao","Shan","Zeng","Jiang","Qian","Zao","Huan","Jiao","Zuan","Fou","Xie","Gang","Fou","Que","Fou","Kaakeru","Bo","Ping","Hou",null,"Gang","Ying","Ying","Qing","Xia","Guan","Zun","Tan","Chang","Qi","Weng","Ying","Lei","Tan","Lu","Guan","Wang","Wang","Gang","Wang","Han",null,"Luo","Fu","Mi","Fa","Gu","Zhu","Ju","Mao","Gu","Min","Gang","Ba","Gua","Ti","Juan","Fu","Lin","Yan","Zhao","Zui","Gua","Zhuo","Yu","Zhi","An","Fa","Nan","Shu","Si","Pi","Ma","Liu","Ba","Fa","Li","Chao","Wei","Bi","Ji","Zeng","Tong","Liu","Ji","Juan","Mi","Zhao","Luo","Pi","Ji","Ji","Luan","Yang","Mie","Qiang","Ta","Mei","Yang","You","You","Fen","Ba","Gao","Yang","Gu","Qiang","Zang","Gao","Ling","Yi","Zhu","Di","Xiu","Qian","Yi","Xian","Rong","Qun","Qun","Qian","Huan","Zui","Xian","Yi","Yashinau","Qiang","Xian","Yu","Geng","Jie","Tang","Yuan","Xi","Fan","Shan","Fen","Shan","
1Lian","Lei","Geng","Nou","Qiang","Chan","Yu","Gong","Yi","Chong","Weng","Fen","Hong","Chi","Chi","Cui","Fu","Xia","Pen","Yi","La","Yi","Pi","Ling","Liu","Zhi","Qu","Xi","Xie","Xiang","Xi","Xi","Qi","Qiao","Hui","Hui","Xiao","Se","Hong","Jiang","Di","Cui","Fei","Tao","Sha","Chi","Zhu","Jian","Xuan","Shi","Pian","Zong","Wan","Hui","Hou","He","He","Han","Ao","Piao","Yi","Lian","Qu",null,"Lin","Pen","Qiao","Ao","Fan","Yi","Hui","Xuan","Dao"],KL[128]=["Yao","Lao",null,"Kao","Mao","Zhe","Qi","Gou","Gou","Gou","Die","Die","Er","Shua","Ruan","Er","Nai","Zhuan","Lei","Ting","Zi","Geng","Chao","Hao","Yun","Pa","Pi","Chi","Si","Chu","Jia","Ju","He","Chu","Lao","Lun","Ji","Tang","Ou","Lou","Nou","Gou","Pang","Ze","Lou","Ji","Lao","Huo","You","Mo","Huai","Er","Zhe","Ting","Ye","Da","Song","Qin","Yun","Chi","Dan","Dan","Hong","Geng","Zhi",null,"Nie","Dan","Zhen","Che","Ling","Zheng","You","Wa","Liao","Long","Zhi","Ning","Tiao","Er","Ya","Die","Gua",null,"Lian","Hao","Sheng","Lie","Pin","Jing","Ju","Bi","Di","Guo","Wen","Xu","Ping","Cong","Shikato",null,"Ting","Yu","Cong","Kui","Tsuraneru","Kui","Cong","Lian","Weng","Kui","Lian","Lian","Cong","Ao","Sheng","Song","Ting","Kui","Nie","Zhi","Dan","Ning","Qie","Ji","Ting","Ting","Long","Yu","Yu","Zhao","Si","Su","Yi","Su","Si","Zhao","Zhao","Rou","Yi","Le","Ji","Qiu","Ken","Cao","Ge","Di","Huan","Huang","Yi","Ren","Xiao","Ru","Zhou","Yuan","Du","Gang","Rong","Gan","Cha","Wo","Chang","Gu","Zhi","Han","Fu","Fei","Fen","Pei","Pang","Jian","Fang","Zhun","You","Na","Hang","Ken","Ran","Gong","Yu","Wen","Yao","Jin","Pi","Qian","Xi","Xi","Fei","Ken","Jing","Tai","Shen","Zhong","Zhang","Xie","Shen","Wei","Zhou","Die","Dan","Fei","Ba","Bo","Qu","Tian","Bei","Gua","Tai","Zi","Ku","Zhi","Ni","Ping","Zi","Fu","Pang","Zhen","Xian","Zuo","Pei","Jia","Sheng","Zhi","Bao","Mu","Qu","Hu","Ke","Yi","Yin","Xu","Yang","Long","Dong","Ka","Lu","Jing","Nu","Yan","Pang","Kua","Yi","Guang","Gai","Ge","Dong","Zhi","Xiao","Xiong","Xiong","Er","E","Xing","Pian","Neng","Zi","Gui"],KL[129]=["Cheng","Tiao","Zhi","Cui","Mei","Xie","Cui","Xie","Mo","Mai","Ji","Obiyaakasu",null,"Kuai","Sa","Zang","Qi","Nao","Mi","Nong","Luan","Wan","Bo","Wen","Guan","Qiu","Jiao","Jing","Rou","Heng","Cuo","Lie","Shan","Ting","Mei","Chun","Shen","Xie","De","Zui","Cu","Xiu","Xin","Tuo","Pao","Cheng","Nei","Fu","Dou","Tuo","Niao","Noy","Pi","Gu","Gua","Li","Lian","Zhang","Cui","Jie","Liang","Zhou","Pi","Biao","Lun","Pian","Guo","Kui","Chui","Dan","Tian","Nei","Jing","Jie","La","Yi","An","Ren","Shen","Chuo","Fu","Fu","Ju","Fei","Qiang","Wan","Dong","Pi","Guo","Zong","Ding","Wu","Mei","Ruan","Zhuan","Zhi","Cou","Gua","Ou","Di","An","Xing","Nao","Yu","Chuan","Nan","Yun","Zhong","Rou","E","Sai","Tu","Yao","Jian","Wei","Jiao","Yu","Jia","Duan","Bi","Chang","Fu","Xian","Ni","Mian","Wa","Teng","Tui","Bang","Qian","Lu","Wa","Sou","Tang","Su","Zhui","Ge","Yi","Bo","Liao","Ji","Pi","Xie","Gao","Lu","Bin","Ou","Chang","Lu","Guo","Pang","Chuai","Piao","Jiang","Fu","Tang","Mo","Xi","Zhuan","Lu","Jiao","Ying","Lu","Zhi","Tara","Chun","Lian","Tong","Peng","Ni","Zha","Liao","Cui","Gui","Xiao","Teng","Fan","Zhi","Jia
1o","Shan","Wu","Cui","Run","Xiang","Sui","Fen","Ying","Tan","Zhua","Dan","Kuai","Nong","Tun","Lian","Bi","Yong","Jue","Chu","Yi","Juan","La","Lian","Sao","Tun","Gu","Qi","Cui","Bin","Xun","Ru","Huo","Zang","Xian","Biao","Xing","Kuan","La","Yan","Lu","Huo","Zang","Luo","Qu","Zang","Luan","Ni","Zang","Chen","Qian","Wo","Guang","Zang","Lin","Guang","Zi","Jiao","Nie","Chou","Ji","Gao","Chou","Mian","Nie","Zhi","Zhi","Ge","Jian","Die","Zhi","Xiu","Tai","Zhen","Jiu","Xian","Yu","Cha"],KL[130]=["Yao","Yu","Chong","Xi","Xi","Jiu","Yu","Yu","Xing","Ju","Jiu","Xin","She","She","Yadoru","Jiu","Shi","Tan","Shu","Shi","Tian","Dan","Pu","Pu","Guan","Hua","Tan","Chuan","Shun","Xia","Wu","Zhou","Dao","Gang","Shan","Yi",null,"Pa","Tai","Fan","Ban","Chuan","Hang","Fang","Ban","Que","Hesaki","Zhong","Jian","Cang","Ling","Zhu","Ze","Duo","Bo","Xian","Ge","Chuan","Jia","Lu","Hong","Pang","Xi",null,"Fu","Zao","Feng","Li","Shao","Yu","Lang","Ting",null,"Wei","Bo","Meng","Nian","Ju","Huang","Shou","Zong","Bian","Mao","Die",null,"Bang","Cha","Yi","Sao","Cang","Cao","Lou","Dai","Sori","Yao","Tong","Yofune","Dang","Tan","Lu","Yi","Jie","Jian","Huo","Meng","Qi","Lu","Lu","Chan","Shuang","Gen","Liang","Jian","Jian","Se","Yan","Fu","Ping","Yan","Yan","Cao","Cao","Yi","Le","Ting","Qiu","Ai","Nai","Tiao","Jiao","Jie","Peng","Wan","Yi","Chai","Mian","Mie","Gan","Qian","Yu","Yu","Shuo","Qiong","Tu","Xia","Qi","Mang","Zi","Hui","Sui","Zhi","Xiang","Bi","Fu","Tun","Wei","Wu","Zhi","Qi","Shan","Wen","Qian","Ren","Fou","Kou","Jie","Lu","Xu","Ji","Qin","Qi","Yuan","Fen","Ba","Rui","Xin","Ji","Hua","Hua","Fang","Wu","Jue","Gou","Zhi","Yun","Qin","Ao","Chu","Mao","Ya","Fei","Reng","Hang","Cong","Yin","You","Bian","Yi","Susa","Wei","Li","Pi","E","Xian","Chang","Cang","Meng","Su","Yi","Yuan","Ran","Ling","Tai","Tiao","Di","Miao","Qiong","Li","Yong","Ke","Mu","Pei","Bao","Gou","Min","Yi","Yi","Ju","Pi","Ruo","Ku","Zhu","Ni","Bo","Bing","Shan","Qiu","Yao","Xian","Ben","Hong","Ying","Zha","Dong","Ju","Die","Nie","Gan","Hu","Ping","Mei","Fu","Sheng","Gu","Bi","Wei"],KL[131]=["Fu","Zhuo","Mao","Fan","Qie","Mao","Mao","Ba","Zi","Mo","Zi","Di","Chi","Ji","Jing","Long",null,"Niao",null,"Xue","Ying","Qiong","Ge","Ming","Li","Rong","Yin","Gen","Qian","Chai","Chen","Yu","Xiu","Zi","Lie","Wu","Ji","Kui","Ce","Chong","Ci","Gou","Guang","Mang","Chi","Jiao","Jiao","Fu","Yu","Zhu","Zi","Jiang","Hui","Yin","Cha","Fa","Rong","Ru","Chong","Mang","Tong","Zhong",null,"Zhu","Xun","Huan","Kua","Quan","Gai","Da","Jing","Xing","Quan","Cao","Jing","Er","An","Shou","Chi","Ren","Jian","Ti","Huang","Ping","Li","Jin","Lao","Shu","Zhuang","Da","Jia","Rao","Bi","Ze","Qiao","Hui","Qi","Dang",null,"Rong","Hun","Ying","Luo","Ying","Xun","Jin","Sun","Yin","Mai","Hong","Zhou","Yao","Du","Wei","Chu","Dou","Fu","Ren","Yin","He","Bi","Bu","Yun","Di","Tu","Sui","Sui","Cheng","Chen","Wu","Bie","Xi","Geng","Li","Fu","Zhu","Mo","Li","Zhuang","Ji","Duo","Qiu","Sha","Suo","Chen","Feng","Ju","Mei","Meng","Xing","Jing","Che","Xin","Jun","Yan","Ting","Diao","Cuo","Wan","Han","You","Cuo","Jia","Wang","You","Niu","Shao","Xian","Lang","Fu","E","Mo","Wen","Jie","Nan","Mu","Kan","Lai","
1Lian","Shi","Wo","Usagi","Lian","Huo","You","Ying","Ying","Nuc","Chun","Mang","Mang","Ci","Wan","Jing","Di","Qu","Dong","Jian","Zou","Gu","La","Lu","Ju","Wei","Jun","Nie","Kun","He","Pu","Zi","Gao","Guo","Fu","Lun","Chang","Chou","Song","Chui","Zhan","Men","Cai","Ba","Li","Tu","Bo","Han","Bao","Qin","Juan","Xi","Qin","Di","Jie","Pu","Dang","Jin","Zhao","Tai","Geng","Hua","Gu","Ling","Fei","Jin","An","Wang","Beng","Zhou","Yan","Ju","Jian","Lin","Tan","Shu","Tian","Dao"],KL[132]=["Hu","Qi","He","Cui","Tao","Chun","Bei","Chang","Huan","Fei","Lai","Qi","Meng","Ping","Wei","Dan","Sha","Huan","Yan","Yi","Tiao","Qi","Wan","Ce","Nai","Kutabireru","Tuo","Jiu","Tie","Luo",null,null,"Meng",null,"Yaji",null,"Ying","Ying","Ying","Xiao","Sa","Qiu","Ke","Xiang","Wan","Yu","Yu","Fu","Lian","Xuan","Yuan","Nan","Ze","Wo","Chun","Xiao","Yu","Pian","Mao","An","E","Luo","Ying","Huo","Gua","Jiang","Mian","Zuo","Zuo","Ju","Bao","Rou","Xi","Xie","An","Qu","Jian","Fu","Lu","Jing","Pen","Feng","Hong","Hong","Hou","Yan","Tu","Zhu","Zi","Xiang","Shen","Ge","Jie","Jing","Mi","Huang","Shen","Pu","Gai","Dong","Zhou","Qian","Wei","Bo","Wei","Pa","Ji","Hu","Zang","Jia","Duan","Yao","Jun","Cong","Quan","Wei","Xian","Kui","Ting","Hun","Xi","Shi","Qi","Lan","Zong","Yao","Yuan","Mei","Yun","Shu","Di","Zhuan","Guan","Sukumo","Xue","Chan","Kai","Kui",null,"Jiang","Lou","Wei","Pai",null,"Sou","Yin","Shi","Chun","Shi","Yun","Zhen","Lang","Nu","Meng","He","Que","Suan","Yuan","Li","Ju","Xi","Pang","Chu","Xu","Tu","Liu","Wo","Zhen","Qian","Zu","Po","Cuo","Yuan","Chu","Yu","Kuai","Pan","Pu","Pu","Na","Shuo","Xi","Fen","Yun","Zheng","Jian","Ji","Ruo","Cang","En","Mi","Hao","Sun","Zhen","Ming","Sou","Xu","Liu","Xi","Gu","Lang","Rong","Weng","Gai","Cuo","Shi","Tang","Luo","Ru","Suo","Xian","Bei","Yao","Gui","Bi","Zong","Gun","Za","Xiu","Ce","Hai","Lan",null,"Ji","Li","Can","Lang","Yu",null,"Ying","Mo","Diao","Tiao","Mao","Tong","Zhu","Peng","An","Lian","Cong","Xi","Ping","Qiu","Jin","Chun","Jie","Wei","Tui","Cao","Yu","Yi","Ji","Liao","Bi","Lu","Su"],KL[133]=["Bu","Zhang","Luo","Jiang","Man","Yan","Ling","Ji","Piao","Gun","Han","Di","Su","Lu","She","Shang","Di","Mie","Xun","Man","Bo","Di","Cuo","Zhe","Sen","Xuan","Wei","Hu","Ao","Mi","Lou","Cu","Zhong","Cai","Po","Jiang","Mi","Cong","Niao","Hui","Jun","Yin","Jian","Yan","Shu","Yin","Kui","Chen","Hu","Sha","Kou","Qian","Ma","Zang","Sonoko","Qiang","Dou","Lian","Lin","Kou","Ai","Bi","Li","Wei","Ji","Xun","Sheng","Fan","Meng","Ou","Chan","Dian","Xun","Jiao","Rui","Rui","Lei","Yu","Qiao","Chu","Hua","Jian","Mai","Yun","Bao","You","Qu","Lu","Rao","Hui","E","Teng","Fei","Jue","Zui","Fa","Ru","Fen","Kui","Shun","Rui","Ya","Xu","Fu","Jue","Dang","Wu","Tong","Si","Xiao","Xi","Long","Yun",null,"Qi","Jian","Yun","Sun","Ling","Yu","Xia","Yong","Ji","Hong","Si","Nong","Lei","Xuan","Yun","Yu","Xi","Hao","Bo","Hao","Ai","Wei","Hui","Wei","Ji","Ci","Xiang","Luan","Mie","Yi","Leng","Jiang","Can","Shen","Qiang","Lian","Ke","Yuan","Da","Ti","Tang","Xie","Bi","Zhan","Sun","Lian","Fan","Ding","Jie","Gu","Xie","Shu","Jian","Kao","Hong","Sa","Xin","Xun","Yao","Hie","Sou","Shu","Xun","Dui","Pin","Wei","Neng","Chou","Mai","Ru","Piao","Tai","Qi","Zao","Chen","Zhen","Er","Ni","Ying","Gao","Cong","Xiao","Qi","Fa","Jian","Xu","Kui","Jie","Bian","Diao","Mi","Lan","Jin","Cang","Miao","Qiong","Qie","Xian",null,"Ou","Xian","Su","Lu","Yi","Xu","Xie","Li","Yi","La","Lei","Xiao","Di","Zhi","Bei","Teng","Yao","Mo","Huan","Piao","Fan","Sou","Tan","Tui","Qiong","Qiao","Wei","Liu","Hui",null,"Gao","Yun",null,"Li","Shu","Chu","Ai","Lin","Zao","Xuan","Chen","Lai","Huo"],KL[134]=["Tuo","Wu","Rui","Rui","Qi","Heng","Lu","Su","Tui","Mang","Yun","Pin","Yu","Xun","Ji","Jiong","Xian","Mo","Hagi","Su","Jiong",null,"Nie","Bo","Rang","Yi","Xian","Yu","Ju","Lian","Lian","Yin","Qiang","Ying","Long","Tong","Wei","Yue","Ling","Qu","Yao","Fan","Mi","Lan","Kui","Lan","Ji","Dang","Katsura","Lei","Lei","Hua","Feng","Zhi","Wei","Kui","Zhan","Huai","Li","Ji","Mi","Lei","Huai","Luo","Ji","Kui","Lu","Jian","San",null,"Lei","Quan","Xiao","Yi","Luan","Men","Bie","Hu","Hu","Lu","Nue","Lu","Si","Xiao","Qian","Chu","Hu","Xu","Cuo","Fu","Xu","Xu","Lu","Hu","Yu","Hao","Jiao","Ju","Guo","Bao","Yan","Zhan","Zhan","Kui","Ban","Xi","Shu","Chong","Qiu","Diao","Ji","Qiu","Cheng","Shi",null,"Di","Zhe","She","Yu","Gan","Zi","Hong","Hui","Meng","Ge","Sui","Xia","Chai","Shi","Yi","Ma","Xiang","Fang","E","Pa","Chi","Qian","Wen","Wen","Rui","Bang","Bi","Yue","Yue","Jun","Qi","Ran","Yin","Qi","Tian","Yuan","Jue","Hui","Qin","Qi","Zhong","Ya","Ci","Mu","Wang","Fen","Fen","Hang","Gong","Zao","Fu","Ran","Jie","Fu","Chi","Dou","Piao","Xian","Ni","Te","Qiu","You","Zha","Ping","Chi","You","He","Han","Ju","Li","Fu","Ran","Zha","Gou","Pi","Bo","Xian","Zhu","Diao","Bie","Bing","Gu","Ran","Qu","She","Tie","Ling","Gu","Dan","Gu","Ying","Li","Cheng","Qu","Mou","Ge","Ci","Hui","Hui","Mang","Fu","Yang","Wa","Lie","Zhu","Yi","Xian","Kuo","Jiao","Li","Yi","P
1ing","Ji","Ha","She","Yi","Wang","Mo","Qiong","Qie","Gui","Gong","Zhi","Man","Ebi","Zhi","Jia","Rao","Si","Qi","Xing","Lie","Qiu","Shao","Yong","Jia","Shui","Che","Bai","E","Han"],KL[135]=["Shu","Xuan","Feng","Shen","Zhen","Fu","Xian","Zhe","Wu","Fu","Li","Lang","Bi","Chu","Yuan","You","Jie","Dan","Yan","Ting","Dian","Shui","Hui","Gua","Zhi","Song","Fei","Ju","Mi","Qi","Qi","Yu","Jun","Zha","Meng","Qiang","Si","Xi","Lun","Li","Die","Tiao","Tao","Kun","Gan","Han","Yu","Bang","Fei","Pi","Wei","Dun","Yi","Yuan","Su","Quan","Qian","Rui","Ni","Qing","Wei","Liang","Guo","Wan","Dong","E","Ban","Di","Wang","Can","Yang","Ying","Guo","Chan",null,"La","Ke","Ji","He","Ting","Mai","Xu","Mian","Yu","Jie","Shi","Xuan","Huang","Yan","Bian","Rou","Wei","Fu","Yuan","Mei","Wei","Fu","Ruan","Xie","You","Qiu","Mao","Xia","Ying","Shi","Chong","Tang","Zhu","Zong","Ti","Fu","Yuan","Hui","Meng","La","Du","Hu","Qiu","Die","Li","Gua","Yun","Ju","Nan","Lou","Qun","Rong","Ying","Jiang",null,"Lang","Pang","Si","Xi","Ci","Xi","Yuan","Weng","Lian","Sou","Ban","Rong","Rong","Ji","Wu","Qiu","Han","Qin","Yi","Bi","Hua","Tang","Yi","Du","Nai","He","Hu","Hui","Ma","Ming","Yi","Wen","Ying","Teng","Yu","Cang","So","Ebi","Man",null,"Shang","Zhe","Cao","Chi","Di","Ao","Lu","Wei","Zhi","Tang","Chen","Piao","Qu","Pi","Yu","Jian","Luo","Lou","Qin","Zhong","Yin","Jiang","Shuai","Wen","Jiao","Wan","Zhi","Zhe","Ma","Ma","Guo","Liu","Mao","Xi","Cong","Li","Man","Xiao","Kamakiri","Zhang","Mang","Xiang","Mo","Zui","Si","Qiu","Te","Zhi","Peng","Peng","Jiao","Qu","Bie","Liao","Pan","Gui","Xi","Ji","Zhuan","Huang","Fei","Lao","Jue","Jue","Hui","Yin","Chan","Jiao","Shan","Rao","Xiao","Mou","Chong","Xun","Si",null,"Cheng","Dang","Li","Xie","Shan","Yi","Jing","Da","Chan","Qi"],KL[136]=["Ci","Xiang","She","Luo","Qin","Ying","Chai","Li","Ze","Xuan","Lian","Zhu","Ze","Xie","Mang","Xie","Qi","Rong","Jian","Meng","Hao","Ruan","Huo","Zhuo","Jie","Bin","He","Mie","Fan","Lei","Jie","La","Mi","Li","Chun","Li","Qiu","Nie","Lu","Du","Xiao","Zhu","Long","Li","Long","Feng","Ye","Beng","Shang","Gu","Juan","Ying",null,"Xi","Can","Qu","Quan","Du","Can","Man","Jue","Jie","Zhu","Zha","Xie","Huang","Niu","Pei","Nu","Xin","Zhong","Mo","Er","Ke","Mie","Xi","Xing","Yan","Kan","Yuan",null,"Ling","Xuan","Shu","Xian","Tong","Long","Jie","Xian","Ya","Hu","Wei","Dao","Chong","Wei","Dao","Zhun","Heng","Qu","Yi","Yi","Bu","Gan","Yu","Biao","Cha","Yi","Shan","Chen","Fu","Gun","Fen","Shuai","Jie","Na","Zhong","Dan","Ri","Zhong","Zhong","Xie","Qi","Xie","Ran","Zhi","Ren","Qin","Jin","Jun","Yuan","Mei","Chai","Ao","Niao","Hui","Ran","Jia","Tuo","Ling","Dai","Bao","Pao","Yao","Zuo","Bi","Shao","Tan","Ju","He","Shu","Xiu","Zhen","Yi","Pa","Bo","Di","Wa","Fu","Gun","Zhi","Zhi","Ran","Pan","Yi","Mao","Tuo","Na","Kou","Xian","Chan","Qu","Bei","Gun","Xi","Ne","Bo","Horo","Fu","Yi","Chi","Ku","Ren","Jiang","Jia","Cun","Mo","Jie","Er","Luo","Ru","Zhu","Gui","Yin","Cai","Lie","Kamishimo","Yuki","Zhuang","Dang",null,"Kun","Ken","Niao","Shu","Jia","Kun","Cheng","Li","Juan","Shen","Pou","Ge","Yi","Yu","Zhen","Liu","Qiu","Qun","Ji","Yi","Bu","Zhuang","Shui","Sha","Qun","Li","Lian","Lian","Ku","Jian","Fou","Chan","Bi","Gun","Tao","Yuan","Ling","Chi","Chang","Chou","Duo","Biao","Liang","Chang","Pei","Pei","Fei","Yuan","Luo","Guo","Yan","Du","Xi","Zhi","Ju","Qi"],KL[137]=["Ji","Zhi","Gua","Ken","Che","Ti","Ti","Fu","Chong","Xie","Bian","Die","Kun","Duan","Xiu","Xiu","He","Yuan","Bao","Bao","Fu","Yu","Tuan","Yan","Hui","Bei","Chu","Lu","Ena","Hitoe","Yun","Da","Gou","Da","Huai","Rong","Yuan","Ru","Nai","Jiong","Suo","Ban","Tun","Chi","Sang","Niao","Ying","Jie","Qian","Huai","Ku","Lian","Bao","Li","Zhe","Shi","Lu","Yi","Die","Xie","Xian","Wei","Biao","Cao","Ji","Jiang","Sen","Bao","Xiang","Chihaya","Pu","Jian","Zhuan","Jian","Zui","Ji","Dan","Za","Fan","Bo","Xiang","Xin","Bie","Rao","Man","Lan","Ao","Duo","Gui","Cao","Sui","Nong","Chan","Lian","Bi","Jin","Dang","Shu","Tan","Bi","Lan","Pu","Ru","Zhi",null,"Shu","Wa","Shi","Bai","Xie","Bo","Chen","Lai","Long","Xi","Xian","Lan","Zhe","Dai","Tasuki","Zan","Shi","Jian","Pan","Yi","Ran","Ya","Xi","Xi","Yao","Feng","Tan",null,"Biao","Fu","Ba","He","Ji","Ji","Jian","Guan","Bian","Yan","Gui","Jue","Pian","Mao","Mi","Mi","Mie","Shi","Si","Zhan","Luo","Jue","Mi","Tiao","Lian","Yao","Zhi","Jun","Xi","Shan","Wei","Xi","Tian","Yu","Lan","E","Du","Qin","Pang","Ji","Ming","Ying","Gou","Qu","Zhan","Jin","Guan","Deng","Jian","
1Luo","Qu","Jian","Wei","Jue","Qu","Luo","Lan","Shen","Di","Guan","Jian","Guan","Yan","Gui","Mi","Shi","Zhan","Lan","Jue","Ji","Xi","Di","Tian","Yu","Gou","Jin","Qu","Jiao","Jiu","Jin","Cu","Jue","Zhi","Chao","Ji","Gu","Dan","Zui","Di","Shang","Hua","Quan","Ge","Chi","Jie","Gui","Gong","Chu","Jie","Hun","Qiu","Xing","Su","Ni","Ji","Lu","Zhi","Zha","Bi","Xing","Hu","Shang","Gong","Zhi","Xue","Chu","Xi","Yi","Lu","Jue","Xi","Yan","Xi"],KL[138]=["Yan","Yan","Ding","Fu","Qiu","Qiu","Jiao","Hong","Ji","Fan","Xun","Diao","Hong","Cha","Tao","Xu","Jie","Yi","Ren","Xun","Yin","Shan","Qi","Tuo","Ji","Xun","Yin","E","Fen","Ya","Yao","Song","Shen","Yin","Xin","Jue","Xiao","Ne","Chen","You","Zhi","Xiong","Fang","Xin","Chao","She","Xian","Sha","Tun","Xu","Yi","Yi","Su","Chi","He","Shen","He","Xu","Zhen","Zhu","Zheng","Gou","Zi","Zi","Zhan","Gu","Fu","Quan","Die","Ling","Di","Yang","Li","Nao","Pan","Zhou","Gan","Yi","Ju","Ao","Zha","Tuo","Yi","Qu","Zhao","Ping","Bi","Xiong","Qu","Ba","Da","Zu","Tao","Zhu","Ci","Zhe","Yong","Xu","Xun","Yi","Huang","He","Shi","Cha","Jiao","Shi","Hen","Cha","Gou","Gui","Quan","Hui","Jie","Hua","Gai","Xiang","Wei","Shen","Chou","Tong","Mi","Zhan","Ming","E","Hui","Yan","Xiong","Gua","Er","Beng","Tiao","Chi","Lei","Zhu","Kuang","Kua","Wu","Yu","Teng","Ji","Zhi","Ren","Su","Lang","E","Kuang","E","Shi","Ting","Dan","Bo","Chan","You","Heng","Qiao","Qin","Shua","An","Yu","Xiao","Cheng","Jie","Xian","Wu","Wu","Gao","Song","Pu","Hui","Jing","Shuo","Zhen","Shuo","Du","Yasashi","Chang","Shui","Jie","Ke","Qu","Cong","Xiao","Sui","Wang","Xuan","Fei","Chi","Ta","Yi","Na","Yin","Diao","Pi","Chuo","Chan","Chen","Zhun","Ji","Qi","Tan","Zhui","Wei","Ju","Qing","Jian","Zheng","Ze","Zou","Qian","Zhuo","Liang","Jian","Zhu","Hao","Lun","Shen","Biao","Huai","Pian","Yu","Die","Xu","Pian","Shi","Xuan","Shi","Hun","Hua","E","Zhong","Di","Xie","Fu","Pu","Ting","Jian","Qi","Yu","Zi","Chuan","Xi","Hui","Yin","An","Xian","Nan","Chen","Feng","Zhu","Yang","Yan","Heng","Xuan","Ge","Nuo","Qi"],KL[139]=["Mou","Ye","Wei",null,"Teng","Zou","Shan","Jian","Bo","Ku","Huang","Huo","Ge","Ying","Mi","Xiao","Mi","Xi","Qiang","Chen","Nue","Ti","Su","Bang","Chi","Qian","Shi","Jiang","Yuan","Xie","Xue","Tao","Yao","Yao",null,"Yu","Biao","Cong","Qing","Li","Mo","Mo","Shang","Zhe","Miu","Jian","Ze","Jie","Lian","Lou","Can","Ou","Guan","Xi","Zhuo","Ao","Ao","Jin","Zhe","Yi","Hu","Jiang","Man","Chao","Han","Hua","Chan","Xu","Zeng","Se","Xi","She","Dui","Zheng","Nao","Lan","E","Ying","Jue","Ji","Zun","Jiao","Bo","Hui","Zhuan","Mu","Zen","Zha","Shi","Qiao","Tan","Zen","Pu","Sheng","Xuan","Zao","Tan","Dang","Sui","Qian","Ji","Jiao","Jing","Lian","Nou","Yi","Ai","Zhan","Pi","Hui","Hua","Yi","Yi","Shan","Rang","Nou","Qian","Zhui","Ta","Hu","Zhou","Hao","Ye","Ying","Jian","Yu","Jian","Hui","Du","Zhe","Xuan","Zan","Lei","Shen","Wei","Chan","Li","Yi","Bian","Zhe","Yan","E","Chou","Wei","Chou","Yao","Chan","Rang","Yin","Lan","Chen","Huo","Zhe","Huan","Zan","Yi","Dang","Zhan","Yan","Du","Yan","Ji","Ding","Fu","Ren","Ji","Jie","Hong","Tao","Rang","Shan","Qi","Tuo","Xun","Yi","Xun","Ji","Ren","Jiang","Hui","Ou","Ju","Ya","Ne","Xu","
1E","Lun","Xiong","Song","Feng","She","Fang","Jue","Zheng","Gu","He","Ping","Zu","Shi","Xiong","Zha","Su","Zhen","Di","Zou","Ci","Qu","Zhao","Bi","Yi","Yi","Kuang","Lei","Shi","Gua","Shi","Jie","Hui","Cheng","Zhu","Shen","Hua","Dan","Gou","Quan","Gui","Xun","Yi","Zheng","Gai","Xiang","Cha","Hun","Xu","Zhou","Jie","Wu","Yu","Qiao","Wu","Gao","You","Hui","Kuang","Shuo","Song","Ai","Qing","Zhu","Zou","Nuo","Du","Zhuo","Fei","Ke","Wei"],KL[140]=["Yu","Shui","Shen","Diao","Chan","Liang","Zhun","Sui","Tan","Shen","Yi","Mou","Chen","Die","Huang","Jian","Xie","Nue","Ye","Wei","E","Yu","Xuan","Chan","Zi","An","Yan","Di","Mi","Pian","Xu","Mo","Dang","Su","Xie","Yao","Bang","Shi","Qian","Mi","Jin","Man","Zhe","Jian","Miu","Tan","Zen","Qiao","Lan","Pu","Jue","Yan","Qian","Zhan","Chen","Gu","Qian","Hong","Xia","Jue","Hong","Han","Hong","Xi","Xi","Huo","Liao","Han","Du","Long","Dou","Jiang","Qi","Shi","Li","Deng","Wan","Bi","Shu","Xian","Feng","Zhi","Zhi","Yan","Yan","Shi","Chu","Hui","Tun","Yi","Tun","Yi","Jian","Ba","Hou","E","Cu","Xiang","Huan","Jian","Ken","Gai","Qu","Fu","Xi","Bin","Hao","Yu","Zhu","Jia",null,"Xi","Bo","Wen","Huan","Bin","Di","Zong","Fen","Yi","Zhi","Bao","Chai","Han","Pi","Na","Pi","Gou","Na","You","Diao","Mo","Si","Xiu","Huan","Kun","He","He","Mo","Han","Mao","Li","Ni","Bi","Yu","Jia","Tuan","Mao","Pi","Xi","E","Ju","Mo","Chu","Tan","Huan","Jue","Bei","Zhen","Yuan","Fu","Cai","Gong","Te","Yi","Hang","Wan","Pin","Huo","Fan","Tan","Guan","Ze","Zhi","Er","Zhu","Shi","Bi","Zi","Er","Gui","Pian","Bian","Mai","Dai","Sheng","Kuang","Fei","Tie","Yi","Chi","Mao","He","Bi","Lu","Ren","Hui","Gai","Pian","Zi","Jia","Xu","Zei","Jiao","Gai","Zang","Jian","Ying","Xun","Zhen","She","Bin","Bin","Qiu","She","Chuan","Zang","Zhou","Lai","Zan","Si","Chen","Shang","Tian","Pei","Geng","Xian","Mai","Jian","Sui","Fu","Tan","Cong","Cong","Zhi","Ji","Zhang","Du","Jin","Xiong","Shun","Yun","Bao","Zai","Lai","Feng","Cang","Ji","Sheng","Ai","Zhuan","Fu","Gou","Sai","Ze","Liao"],KL[141]=["Wei","Bai","Chen","Zhuan","Zhi","Zhui","Biao","Yun","Zeng","Tan","Zan","Yan",null,"Shan","Wan","Ying","Jin","Gan","Xian","Zang","Bi","Du","Shu","Yan",null,"Xuan","Long","Gan","Zang","Bei","Zhen","Fu","Yuan","Gong","Cai","Ze","Xian","Bai","Zhang","Huo","Zhi","Fan","Tan","Pin","Bian","Gou","Zhu","Guan","Er","Jian","Bi","Shi","Tie","Gui","Kuang","Dai","Mao","Fei","He","Yi","Zei","Zhi","Jia","Hui","Zi","Ren","Lu","Zang","Zi","Gai","Jin","Qiu","Zhen","Lai","She","Fu","Du","Ji","Shu","Shang","Si","Bi","Zhou","Geng","Pei","Tan","Lai","Feng","Zhui","Fu","Zhuan","Sai","Ze","Yan","Zan","Yun","Zeng","Shan","Ying","Gan","Chi","Xi","She","Nan","Xiong","Xi","Cheng","He","Cheng","Zhe","Xia","Tang","Zou","Zou","Li","Jiu","Fu","Zhao","Gan","Qi","Shan","Qiong","Qin","Xian","Ci","Jue","Qin","Chi","Ci","Chen","Chen","Die","Ju","Chao","Di","Se","Zhan","Zhu","Yue","Qu","Jie","Chi","Chu","Gua","Xue","Ci","Tiao","Duo","Lie","Gan","Suo","Cu","Xi","Zhao","Su","Yin","Ju","Jian","Que","Tang","Chuo","Cui","Lu","Qu","Dang","Qiu","Zi","Ti","Qu","Chi","Huang","Qiao","Qiao","Yao","Zao","Ti",null,"Zan","Zan","Zu","Pa","Bao","Ku","Ke","Dun","Jue","Fu","Chen","Jian","Fang","Zhi","Sa","Yue","Pa","Qi","Yue","Qiang","Tuo","Tai","Yi","Nian","Ling","Mei","Ba","Die","Ku","Tuo","Jia","Ci","Pao","Qia","Zhu","Ju","Die","Zhi","Fu","Pan","Ju","Shan","Bo","Ni","Ju","Li","Gen","Yi","Ji","Dai","Xian","Jiao","Duo","Zhu","Zhuan","Kua","Zhuai","Gui","Qiong","Kui","Xiang","Chi","Lu","Beng","Zhi","Jia","Tiao","Cai","Jian","Ta","Qiao","Bi","Xian","Duo","Ji","Ju","Ji","Shu","Tu"],KL[142]=["Chu","Jing","Nie","Xiao","Bo","Chi","Qun","Mou","Shu","Lang","Yong","Jiao","Chou","Qiao",null,"Ta","Jian","Qi","Wo","Wei","Zhuo","Jie","Ji","Nie","Ju","Ju","Lun","Lu","Leng","Huai","Ju","Chi","Wan","Quan","Ti","Bo","Zu","Qie","Ji","Cu","Zong","Cai","Zong","Peng","Zhi","Zheng","Dian","Zhi","Yu","Duo","Dun","Chun","Yong","Zhong","Di","Zhe","Chen","Chuai","Jian","Gua","Tang","Ju","Fu","Zu","Die","Pian","Rou","Nuo","Ti","Cha","Tui","Jian","Dao","Cuo","Xi","Ta","Qiang","Zhan","Dian","Ti","Ji","Nie","Man","Liu","Zhan","Bi","Chong","Lu","Liao","Cu","Tang","Dai","Suo","Xi","Kui","Ji","Zhi","Qiang","Di","Man","Zong","Lian","Beng","Zao","Nian","Bie","Tui","Ju","Deng","Ceng","Xian","Fan","Chu","Zhong","Dun","Bo","Cu","Zu","Jue","Jue","Lin","Ta","Qiao","Qiao","Pu","Liao","Dun","Cuan","Kuang","Zao","Ta","Bi","Bi","Zhu","Ju","Chu","Qiao","Dun","Chou","Ji","Wu","Yue","Nian","Lin","Lie","Zhi","Li","Zhi","Chan","Chu","Duan","Wei","Long","Lin","Xian","Wei","Zuan","Lan","Xie","Rang","Xie","Nie","Ta","Qu","Jie","Cuan","Zuan","Xi","Kui","Jue","Lin","Shen","Gong","Dan","Segare","Qu","Ti","Duo","Duo","Gong","Lang","Nerau","Luo","Ai","Ji","Ju","Tang","Utsuke",null,"Yan","Shitsuke","Kang","Qu","Lou","Lao","Tuo","Zhi","Yagate","Ti","Dao","Yagate","Yu","Che","Ya","Gui","Jun","Wei","Yue","Xin","Di","Xuan","Fan","Ren","Shan","Qiang","Shu","Tun","Chen","Dai","E","Na","Qi","Mao","Ruan","Ren","Fan","Zhuan","Hong","Hu","Qu","Huang","Di","Ling","Dai","Ao","Zhen","Fan","Kuang","Ang","Peng","Bei","Gu","Ku","Pao","Zhu","Rong","E","Ba","Zhou","Zhi","Yao","Ke","Yi","Qing","Shi","Ping"],KL[143]=["Er","Qiong","Ju","Jiao","Guang","Lu","Kai","Quan","Zhou","Zai","Zhi","She","Liang","Yu","Shao","You","Huan","Yun","Zhe","Wan","Fu","Qing","Zhou","Ni","Ling","Zhe","Zhan","Liang","Zi","Hui","Wang","Chuo","Guo","Kan","Yi","Peng","Qian","Gun","Nian","Pian","Guan","Bei","Lun","Pai","Liang","Ruan","Rou","Ji","Yang","Xian","Chuan","Cou","Qun","Ge","You","Hong","Shu","Fu","Zi","Fu","Wen","Ben","Zhan","Yu","Wen","Tao","Gu","Zhen","Xia","Yuan","Lu","Jiu","Chao","Zhuan","Wei","Hun","Sori","Che","Jiao","Zhan","Pu","Lao","Fen","Fan","Lin","Ge","Se","Kan","Huan","Yi","Ji","Dui","Er","Yu","Xian","Hong","Lei","Pei","Li","Li","Lu","Lin","Che","Ya","Gui","Xuan","Di","Ren","Zhuan","E","Lun","Ruan","Hong","Ku","Ke","Lu","Zhou","Zhi","Yi","Hu","Zhen","Li","Yao","Qing","Shi","Zai","Zhi","Jia
1o","Zhou","Quan","Lu","Jiao","Zhe","Fu","Liang","Nian","Bei","Hui","Gun","Wang","Liang","Chuo","Zi","Cou","Fu","Ji","Wen","Shu","Pei","Yuan","Xia","Zhan","Lu","Che","Lin","Xin","Gu","Ci","Ci","Pi","Zui","Bian","La","La","Ci","Xue","Ban","Bian","Bian","Bian",null,"Bian","Ban","Ci","Bian","Bian","Chen","Ru","Nong","Nong","Zhen","Chuo","Chuo","Suberu","Reng","Bian","Bian","Sip","Ip","Liao","Da","Chan","Gan","Qian","Yu","Yu","Qi","Xun","Yi","Guo","Mai","Qi","Za","Wang","Jia","Zhun","Ying","Ti","Yun","Jin","Hang","Ya","Fan","Wu","Da","E","Huan","Zhe","Totemo","Jin","Yuan","Wei","Lian","Chi","Che","Ni","Tiao","Zhi","Yi","Jiong","Jia","Chen","Dai","Er","Di","Po","Wang","Die","Ze","Tao","Shu","Tuo","Kep","Jing","Hui","Tong","You","Mi","Beng","Ji","Nai","Yi","Jie","Zhui","Lie","Xun"],KL[144]=["Tui","Song","Gua","Tao","Pang","Hou","Ni","Dun","Jiong","Xuan","Xun","Bu","You","Xiao","Qiu","Tou","Zhu","Qiu","Di","Di","Tu","Jing","Ti","Dou","Yi","Zhe","Tong","Guang","Wu","Shi","Cheng","Su","Zao","Qun","Feng","Lian","Suo","Hui","Li","Sako","Lai","Ben","Cuo","Jue","Beng","Huan","Dai","Lu","You","Zhou","Jin","Yu","Chuo","Kui","Wei","Ti","Yi","Da","Yuan","Luo","Bi","Nuo","Yu","Dang","Sui","Dun","Sui","Yan","Chuan","Chi","Ti","Yu","Shi","Zhen","You","Yun","E","Bian","Guo","E","Xia","Huang","Qiu","Dao","Da","Wei","Appare","Yi","Gou","Yao","Chu","Liu","Xun","Ta","Di","Chi","Yuan","Su","Ta","Qian",null,"Yao","Guan","Zhang","Ao","Shi","Ce","Chi","Su","Zao","Zhe","Dun","Di","Lou","Chi","Cuo","Lin","Zun","Rao","Qian","Xuan","Yu","Yi","Wu","Liao","Ju","Shi","Bi","Yao","Mai","Xie","Sui","Huan","Zhan","Teng","Er","Miao","Bian","Bian","La","Li","Yuan","Yao","Luo","Li","Yi","Ting","Deng","Qi","Yong","Shan","Han","Yu","Mang","Ru","Qiong",null,"Kuang","Fu","Kang","Bin","Fang","Xing","Na","Xin","Shen","Bang","Yuan","Cun","Huo","Xie","Bang","Wu","Ju","You","Han","Tai","Qiu","Bi","Pei","Bing","Shao","Bei","Wa","Di","Zou","Ye","Lin","Kuang","Gui","Zhu","Shi","Ku","Yu","Gai","Ge","Xi","Zhi","Ji","Xun","Hou","Xing","Jiao","Xi","Gui","Nuo","Lang","Jia","Kuai","Zheng","Otoko","Yun","Yan","Cheng","Dou","Chi","Lu","Fu","Wu","Fu","Gao","Hao","Lang","Jia","Geng","Jun","Ying","Bo","Xi","Bei","Li","Yun","Bu","Xiao","Qi","Pi","Qing","Guo","Zhou","Tan","Zou","Ping","Lai","Ni","Chen","You","Bu","Xiang","Dan","Ju","Yong","Qiao","Yi","Du","Yan","Mei"],KL[145]=["Ruo","Bei","E","Yu","Juan","Yu","Yun","Hou","Kui","Xiang","Xiang","Sou","Tang","Ming","Xi","Ru","Chu","Zi","Zou","Ju","Wu","Xiang","Yun","Hao","Yong","Bi","Mo","Chao","Fu","Liao","Yin","Zhuan","Hu","Qiao","Yan","Zhang","Fan","Qiao","Xu","Deng","Bi","Xin","Bi","Ceng","Wei","Zheng","Mao","Shan","
1Lin","Po","Dan","Meng","Ye","Cao","Kuai","Feng","Meng","Zou","Kuang","Lian","Zan","Chan","You","Qi","Yan","Chan","Zan","Ling","Huan","Xi","Feng","Zan","Li","You","Ding","Qiu","Zhuo","Pei","Zhou","Yi","Hang","Yu","Jiu","Yan","Zui","Mao","Dan","Xu","Tou","Zhen","Fen","Sakenomoto",null,"Yun","Tai","Tian","Qia","Tuo","Zuo","Han","Gu","Su","Po","Chou","Zai","Ming","Luo","Chuo","Chou","You","Tong","Zhi","Xian","Jiang","Cheng","Yin","Tu","Xiao","Mei","Ku","Suan","Lei","Pu","Zui","Hai","Yan","Xi","Niang","Wei","Lu","Lan","Yan","Tao","Pei","Zhan","Chun","Tan","Zui","Chuo","Cu","Kun","Ti","Mian","Du","Hu","Xu","Xing","Tan","Jiu","Chun","Yun","Po","Ke","Sou","Mi","Quan","Chou","Cuo","Yun","Yong","Ang","Zha","Hai","Tang","Jiang","Piao","Shan","Yu","Li","Zao","Lao","Yi","Jiang","Pu","Jiao","Xi","Tan","Po","Nong","Yi","Li","Ju","Jiao","Yi","Niang","Ru","Xun","Chou","Yan","Ling","Mi","Mi","Niang","Xin","Jiao","Xi","Mi","Yan","Bian","Cai","Shi","You","Shi","Shi","Li","Chong","Ye","Liang","Li","Jin","Jin","Qiu","Yi","Diao","Dao","Zhao","Ding","Po","Qiu","He","Fu","Zhen","Zhi","Ba","Luan","Fu","Nai","Diao","Shan","Qiao","Kou","Chuan","Zi","Fan","Yu","Hua","Han","Gong","Qi","Mang","Ri","Di","Si","Xi","Yi","Chai","Shi","Tu","Xi","Nu","Qian","Ishiyumi","Jian","Pi","Ye","Yin"],KL[146]=["Ba","Fang","Chen","Xing","Tou","Yue","Yan","Fu","Pi","Na","Xin","E","Jue","Dun","Gou","Yin","Qian","Ban","Ji","Ren","Chao","Niu","Fen","Yun","Ji","Qin","Pi","Guo","Hong","Yin","Jun","Shi","Yi","Zhong","Nie","Gai","Ri","Huo","Tai","Kang","Habaki","Irori","Ngaak",null,"Duo","Zi","Ni","Tu","Shi","Min","Gu","E","Ling","Bing","Yi","Gu","Ba","Pi","Yu","Si","Zuo","Bu","You","Dian","Jia","Zhen","Shi","Shi","Tie","Ju","Zhan","Shi","She","Xuan","Zhao","Bao","He","Bi","Sheng","Chu","Shi","Bo","Zhu","Chi","Za","Po","Tong","Qian","Fu","Zhai","Liu","Qian","Fu","Li","Yue","Pi","Yang","Ban","Bo","Jie","Gou","Shu","Zheng","Mu","Ni","Nie","Di","Jia","Mu","Dan","Shen","Yi","Si","Kuang","Ka","Bei","Jian","Tong","Xing","Hong","Jiao","Chi","Er","Ge","Bing","Shi","Mou","Jia","Yin","Jun","Zhou","Chong","Shang","Tong","Mo","Lei","Ji","Yu","Xu","Ren","Zun","Zhi","Qiong","Shan","Chi","Xian","Xing","Quan","Pi","Tie","Zhu","Hou","Ming","Kua","Yao","Xian","Xian","Xiu","Jun","Cha","Lao","Ji","Pi","Ru","Mi","Yi","Yin","Guang","An","Diou","You","Se","Kao","Qian","Luan","Kasugai","Ai","Diao","Han","Rui","Shi","Keng","Qiu","Xiao","Zhe","Xiu","Zang","Ti","Cuo","Gua","Gong","Zhong","Dou","Lu","Mei","Lang","Wan","Xin","Yun","Bei","Wu","Su","Yu","Chan","Ting","Bo","Han","Jia","Hong","Cuan","Feng","Chan","Wan","Zhi","Si","Xuan","Wu","Wu","Tiao","Gong","Zhuo","Lue","Xing","Qian","Shen","Han","Lue","Xie","Chu","Zheng","Ju","Xian","Tie","Mang","Pu","Li","Pan","Rui","Cheng","Gao","Li","Te","Pyeng","Zhu",null,"Tu","Liu","Zui","Ju","Chang","Yuan","Jian","Gang","Diao","Tao","Chang"],KL[147]=["Lun","Kua","Ling","Bei","Lu","Li","Qiang","Pou","Juan","Min","Zui","Peng","An","Pi","Xian","Ya","Zhui","Lei","A","Kong","Ta","Kun","Du","Wei","Chui","Zi","Zheng","Ben","Nie","Cong","Qun","Tan","Ding","Qi","Qian","Zhuo","Qi","Yu","Jin","Guan","Mao","Chang","Tian","Xi","Lian","Tao","Gu","Cuo","Shu","Zhen","Lu","Meng","Lu","Hua","Biao","Ga","Lai","Ken","Kazari","Bu","Nai","Wan","Zan",null,"De","Xian",null,"Huo","Liang",null,"Men","Kai","Ying","Di","Lian","Guo","Xian","Du","Tu","Wei","Cong","Fu","Rou","Ji","E","Rou","Chen","Ti","Zha","Hong","Yang","Duan","Xia","Yu","Keng","Xing","Huang","Wei","Fu","Zhao","Cha","Qie","She","Hong","Kui","Tian","Mou","Qiao","Qiao","Hou","Tou","Cong","Huan","Ye","Min","Jian","Duan","Jian","Song","Kui","Hu","Xuan","Duo","Jie","Zhen","Bian","Zhong","Zi","Xiu","Ye","Mei","Pai","Ai","Jie",null,"Mei","Chuo","Ta","Bang","Xia","Lian","Suo","Xi","Liu","Zu","Ye","Nou","Weng","Rong","Tang","Suo","Qiang","Ge","Shuo","Chui","Bo","Pan","Sa","Bi","Sang","Gang","Zi","Wu","Ying","Huang","Tiao","Liu","Kai","Sun","Sha","Sou","Wan","Hao","Zhen","Zhen","Luo","Yi","Yuan","Tang","Nie","Xi","Jia","Ge","Ma","Juan","Kasugai","Habaki","Suo",null,null,null,"Na","Lu","Suo","Ou","Zu","Tuan","Xiu","Guan","Xuan","Lian","Shou","Ao","Man","Mo","Luo","Bi","Wei","Liu","Di","Qiao","Cong","Yi","Lu","Ao","Keng","Qiang","Cui","Qi","Chang","Tang","Man","Yong","Chan","Feng","Jing","Biao","Shu","Lou","Xiu","Cong","Long","Zan","Jian","Cao","Li","Xia","Xi","Kang",null,"Beng",null,null,"Zheng","Lu","Hua","Ji","Pu","Hui","Qiang","Po","Lin","Suo","Xiu","San","Cheng"],KL[148]=["Kui","Si","Liu","Nao","Heng","Pie","Sui","Fan","Qiao","Quan","Yang","Tang","Xiang","Jue","Jiao","Zun","Liao","Jie","Lao","Dui","Tan","Zan","Ji","Jian","Zhong","Deng","Ya","Ying","Dui","Jue","Nou","Ti","Pu","Tie",null,null,"Ding","Shan","Kai","Jian","Fei","Sui","Lu","Juan","Hui","Yu","Lian","Zhuo","Qiao","Qian","Zhuo","Lei","Bi","Tie","Huan","Ye","Duo","Guo","Dang","Ju","Fen","Da","Bei","Yi","Ai","Zong","Xun","Diao","Zhu","Heng","Zhui","Ji","Nie","Ta","Huo","Qing","Bin","Ying","Kui","Ning","Xu","Jian","Jian","Yari","Cha","Zhi","Mie","Li","
1Lei","Ji","Zuan","Kuang","Shang","Peng","La","Du","Shuo","Chuo","Lu","Biao","Bao","Lu",null,null,"Long","E","Lu","Xin","Jian","Lan","Bo","Jian","Yao","Chan","Xiang","Jian","Xi","Guan","Cang","Nie","Lei","Cuan","Qu","Pan","Luo","Zuan","Luan","Zao","Nie","Jue","Tang","Shu","Lan","Jin","Qiu","Yi","Zhen","Ding","Zhao","Po","Diao","Tu","Qian","Chuan","Shan","Ji","Fan","Diao","Men","Nu","Xi","Chai","Xing","Gai","Bu","Tai","Ju","Dun","Chao","Zhong","Na","Bei","Gang","Ban","Qian","Yao","Qin","Jun","Wu","Gou","Kang","Fang","Huo","Tou","Niu","Ba","Yu","Qian","Zheng","Qian","Gu","Bo","E","Po","Bu","Ba","Yue","Zuan","Mu","Dan","Jia","Dian","You","Tie","Bo","Ling","Shuo","Qian","Liu","Bao","Shi","Xuan","She","Bi","Ni","Pi","Duo","Xing","Kao","Lao","Er","Mang","Ya","You","Cheng","Jia","Ye","Nao","Zhi","Dang","Tong","Lu","Diao","Yin","Kai","Zha","Zhu","Xian","Ting","Diu","Xian","Hua","Quan","Sha","Jia","Yao","Ge","Ming","Zheng","Se","Jiao","Yi","Chan","Chong","Tang","An","Yin","Ru","Zhu","Lao","Pu","Wu","Lai","Te","Lian","Keng"],KL[149]=["Xiao","Suo","Li","Zheng","Chu","Guo","Gao","Tie","Xiu","Cuo","Lue","Feng","Xin","Liu","Kai","Jian","Rui","Ti","Lang","Qian","Ju","A","Qiang","Duo","Tian","Cuo","Mao","Ben","Qi","De","Kua","Kun","Chang","Xi","Gu","Luo","Chui","Zhui","Jin","Zhi","Xian","Juan","Huo","Pou","Tan","Ding","Jian","Ju","Meng","Zi","Qie","Ying","Kai","Qiang","Song","E","Cha","Qiao","Zhong","Duan","Sou","Huang","Huan","Ai","Du","Mei","Lou","Zi","Fei","Mei","Mo","Zhen","Bo","Ge","Nie","Tang","Juan","Nie","Na","Liu","Hao","Bang","Yi","Jia","Bin","Rong","Biao","Tang","Man","Luo","Beng","Yong","Jing","Di","Zu","Xuan","Liu","Tan","Jue","Liao","Pu","Lu","Dui","Lan","Pu","Cuan","Qiang","Deng","Huo","Lei","Huan","Zhuo","Lian","Yi","Cha","Biao","La","Chan","Xiang","Chang","Chang","Jiu","Ao","Die","Qu","Liao","Mi","Chang","Men","Ma","Shuan","Shan","Huo","Men","Yan","Bi","Han","Bi","San","Kai","Kang","Beng","Hong","Run","San","Xian","Xian","Jian","Min","Xia","Yuru","Dou","Zha","Nao","Jian","Peng","Xia","Ling","Bian","Bi","Run","He","Guan","Ge","Ge","Fa","Chu","Hong","Gui","Min","Se","Kun","Lang","Lu","Ting","Sha","Ju","Yue","Yue","Chan","Qu","Lin","Chang","Shai","Kun","Yan","Min","Yan","E","Hun","Yu","Wen","Xiang","Bao","Xiang","Qu","Yao","Wen","Ban","An","Wei","Yin","Kuo","Que","Lan","Du",null,"Phwung","Tian","Nie","Ta","Kai","He","Que","Chuang","Guan","Dou","Qi","Kui","Tang","Guan","Piao","Kan","Xi","Hui","Chan","Pi","Dang","Huan","Ta","Wen",null,"Men","Shuan","Shan","Yan","Han","Bi","Wen","Chuang","Run","Wei","Xian","Hong","Jian","Min","Kang","Men","Zha","Nao","Gui","Wen","Ta","Min","Lu","Kai"],KL[150]=["Fa","Ge","He","Kun","Jiu","Yue","Lang","Du","Yu","Yan","Chang","Xi","Wen","Hun","Yan","E","Chan","Lan","Qu","Hui","Kuo","Que","Ge","Tian","Ta","Que","Kan","Huan","Fu","Fu","Le","Dui","Xin","Qian","Wu","Yi","Tuo","Yin","Yang","Dou","E","Sheng","Ban","Pei","Keng","Yun","Ruan","Zhi","Pi","Jing","Fang","Yang","Yin","Zhen","Jie","Cheng","E","Qu","Di","Zu","Zuo","Dian","Ling","A","Tuo","Tuo","Po","Bing","Fu","Ji","Lu","Long","Chen","Xing","Duo","Lou","Mo","Jiang","Shu","Duo","Xian","Er","Gui","Yu","Gai","Shan","Xun","Qiao","Xing","Chun","Fu","Bi","Xia","Shan","Sheng","Zhi","Pu","Dou","Yuan","Zhen","Chu","Xian","Tou","Nie","Yun","Xian","Pei","Pei","Zou","Yi","Dui","Lun","Yin","Ju","Chui","Chen","Pi","Ling","Tao","Xian","Lu","Sheng","Xian","Yin","Zhu","Yang","Reng","Shan","Chong","Yan","Yin","Yu","Ti","Yu","Long","Wei","Wei","Nie","Dui","Sui","An","Huang","Jie","Sui","Yin","Gai","Yan","Hui","Ge","Yun","Wu","Wei","Ai","Xi","Tang","Ji","Zhang","Dao","Ao","Xi","Yin",null,"Rao","Lin","Tui","Deng","Pi","Sui","Sui","Yu","Xian","Fen","Ni","Er","Ji","Dao","Xi","Yin","E","Hui","Long","Xi","Li","Li","Li","Zhui","He","Zhi","Zhun","Jun","Nan","Yi","Que","Yan","Qian","Ya","Xiong","Ya","Ji","Gu","Huan","Zhi","Gou","Jun","Ci","Yong","Ju","Chu","Hu","Za","Luo","Yu","Chou","Diao","Sui","Han","Huo","Shuang","Guan","Chu","Za","Yong","Ji","Xi","Chou","Liu","Li","Nan","Xue","Za","Ji","Ji","Yu","Yu","Xue","Na","Fou","Se","Mu","Wen","Fen","Pang","Yun","Li","Li","Ang","Ling","Lei","An","Bao","Meng","Dian","Dang","Xing","Wu","Zhao"],KL[151]=["Xu","Ji","Mu","Chen","Xiao","Zha","Ting","Zhen","Pei","Mei","Ling","Qi","Chou","Huo","Sha","Fei","Weng","Zhan","Yin","Ni","Chou","Tun","Lin",null,"Dong","Ying","Wu","Ling","Shuang","Ling","Xia","Hong","Yin","Mo","Mai","Yun","Liu","Meng","Bin","Wu","Wei","Huo","Yin","Xi","Yi","Ai","Dan","Deng","Xian","Yu","Lu","Long","Dai","Ji","Pang","Yang","Ba","P
1i","Wei",null,"Xi","Ji","Mai","Meng","Meng","Lei","Li","Huo","Ai","Fei","Dai","Long","Ling","Ai","Feng","Li","Bao",null,"He","He","Bing","Qing","Qing","Jing","Tian","Zhen","Jing","Cheng","Qing","Jing","Jing","Dian","Jing","Tian","Fei","Fei","Kao","Mi","Mian","Mian","Pao","Ye","Tian","Hui","Ye","Ge","Ding","Cha","Jian","Ren","Di","Du","Wu","Ren","Qin","Jin","Xue","Niu","Ba","Yin","Sa","Na","Mo","Zu","Da","Ban","Yi","Yao","Tao","Tuo","Jia","Hong","Pao","Yang","Tomo","Yin","Jia","Tao","Ji","Xie","An","An","Hen","Gong","Kohaze","Da","Qiao","Ting","Wan","Ying","Sui","Tiao","Qiao","Xuan","Kong","Beng","Ta","Zhang","Bing","Kuo","Ju","La","Xie","Rou","Bang","Yi","Qiu","Qiu","He","Xiao","Mu","Ju","Jian","Bian","Di","Jian","On","Tao","Gou","Ta","Bei","Xie","Pan","Ge","Bi","Kuo","Tang","Lou","Gui","Qiao","Xue","Ji","Jian","Jiang","Chan","Da","Huo","Xian","Qian","Du","Wa","Jian","Lan","Wei","Ren","Fu","Mei","Juan","Ge","Wei","Qiao","Han","Chang",null,"Rou","Xun","She","Wei","Ge","Bei","Tao","Gou","Yun",null,"Bi","Wei","Hui","Du","Wa","Du","Wei","Ren","Fu","Han","Wei","Yun","Tao","Jiu","Jiu","Xian","Xie","Xian","Ji","Yin","Za","Yun","Shao","Le","Peng","Heng","Ying","Yun","Peng","Yin","Yin","Xiang"],KL[152]=["Hu","Ye","Ding","Qing","Pan","Xiang","Shun","Han","Xu","Yi","Xu","Gu","Song","Kui","Qi","Hang","Yu","Wan","Ban","Dun","Di","Dan","Pan","Po","Ling","Ce","Jing","Lei","He","Qiao","E","E","Wei","Jie","Gua","Shen","Yi","Shen","Hai","Dui","Pian","Ping","Lei","Fu","Jia","Tou","Hui","Kui","Jia","Le","Tian","Cheng","Ying","Jun","Hu","Han","Jing","Tui","Tui","Pin","Lai","Tui","Zi","Zi","Chui","Ding","Lai","Yan","Han","Jian","Ke","Cui","Jiong","Qin","Yi","Sai","Ti","E","E","Yan","Hun","Kan","Yong","Zhuan","Yan","Xian","Xin","Yi","Yuan","Sang","Dian","Dian","Jiang","Ku","Lei","Liao","Piao","Yi","Man","Qi","Rao","Hao","Qiao","Gu","Xun","Qian","Hui","Zhan","Ru","Hong","Bin","Xian","Pin","Lu","Lan","Nie","Quan","Ye","Ding","Qing","Han","Xiang","Shun","Xu","Xu","Wan","Gu","Dun","Qi","Ban","Song","Hang","Yu","Lu","Ling","Po","Jing","Jie","Jia","Tian","Han","Ying","Jiong","Hai","Yi","Pin","Hui","Tui","Han","Ying","Ying","Ke","Ti","Yong","E","Zhuan","Yan","E","Nie","Man","Dian","Sang","Hao","Lei","Zhan","Ru","Pin","Quan","Feng","Biao","Oroshi","Fu","Xia","Zhan","Biao","Sa","Ba","Tai","Lie","Gua","Xuan","Shao","Ju","Bi","Si","Wei","Yang","Yao","Sou","Kai","Sao","Fan","Liu","Xi","Liao","Piao","Piao","Liu","Biao","Biao","Biao","Liao",null,"Se","Feng","Biao","Feng","Yang","Zhan","Biao","Sa","Ju","Si","Sou","Yao","Liu","Piao","Biao","Biao","Fei","Fan","Fei","Fei","Shi","Shi","Can","Ji","Ding","Si","Tuo","Zhan","Sun","Xiang","Tun","Ren","Yu","Juan","Chi","Yin","Fan","Fan","Sun","Yin","Zhu","Yi","Zhai","Bi","Jie","Tao","Liu","Ci","Tie","Si","Bao","Shi","Duo"],KL[153]=["Hai","Ren","Tian","Jiao","Jia","Bing","Yao","Tong","Ci","Xiang","Yang","Yang","Er","Yan","Le","Yi","Can","Bo","Nei","E","Bu","Jun","Dou","Su","Yu","Shi","Yao","Hun","Guo","Shi","Jian","Zhui","Bing","Xian","Bu","Ye","Tan","Fei","Zhang","Wei","Guan","E","Nuan","Hun","Hu","Huang","Tie","Hui","Jian","Hou","He","Xing","Fen","Wei","Gu","Cha","Song","Tang","Bo","Gao","Xi","Kui","Liu","Sou","Tao","Ye","Yun","Mo","Tang","Man","Bi","Yu","Xiu","Jin","San","Kui","Zhuan","Shan","Chi","Dan","Yi","Ji","Rao","Cheng","Yong","Tao","Hui","Xiang","Zhan","Fen","Hai","Meng","Yan","Mo","Chan","Xiang","Luo","Zuan","Nang","Shi","Ding","Ji","Tuo","Xing","Tun","Xi","Ren","Yu","Chi","Fan","Yin","Jian","Shi","Bao","Si","Duo","Yi","Er","Rao","Xiang","Jia","Le","Jiao","Yi","Bing","Bo","Dou","E","Yu","Nei","Jun","Guo","Hun","Xian","Guan","Cha","Kui","Gu","Sou","Chan","Ye","Mo","Bo","Liu","Xiu","Jin","Man","San","Zhuan","Nang","Shou","Kui","Guo","Xiang","Fen","Ba","Ni","Bi","Bo","Tu","Han","Fei","Jian","An","Ai","Fu","Xian","Wen","Xin","Fen","Bin","Xing","Ma","Yu","Feng","Han","Di","Tuo","Tuo","Chi","Xun","Zhu","Zhi","Pei","Xin","Ri","Sa","Yin","Wen","Zhi","Dan","Lu","You","Bo","Bao","Kuai","Tuo","Yi","Qu",null,"Qu","Jiong","Bo","Zhao","Yuan","Peng","Zhou","Ju","Zhu","Nu","Ju","Pi","Zang","Jia","Ling","Zhen","Tai","Fu","Yang","Shi","Bi","Tuo","Tuo","Si","Liu","Ma","P
1ian","Tao","Zhi","Rong","Teng","Dong","Xun","Quan","Shen","Jiong","Er","Hai","Bo","Zhu","Yin","Luo","Shuu","Dan","Xie","Liu","Ju","Song","Qin","Mang","Liang","Han","Tu","Xuan","Tui","Jun"],KL[154]=["E","Cheng","Xin","Ai","Lu","Zhui","Zhou","She","Pian","Kun","Tao","Lai","Zong","Ke","Qi","Qi","Yan","Fei","Sao","Yan","Jie","Yao","Wu","Pian","Cong","Pian","Qian","Fei","Huang","Jian","Huo","Yu","Ti","Quan","Xia","Zong","Kui","Rou","Si","Gua","Tuo","Kui","Sou","Qian","Cheng","Zhi","Liu","Pang","Teng","Xi","Cao","Du","Yan","Yuan","Zou","Sao","Shan","Li","Zhi","Shuang","Lu","Xi","Luo","Zhang","Mo","Ao","Can","Piao","Cong","Qu","Bi","Zhi","Yu","Xu","Hua","Bo","Su","Xiao","Lin","Chan","Dun","Liu","Tuo","Zeng","Tan","Jiao","Tie","Yan","Luo","Zhan","Jing","Yi","Ye","Tuo","Bin","Zou","Yan","Peng","Lu","Teng","Xiang","Ji","Shuang","Ju","Xi","Huan","Li","Biao","Ma","Yu","Tuo","Xun","Chi","Qu","Ri","Bo","Lu","Zang","Shi","Si","Fu","Ju","Zou","Zhu","Tuo","Nu","Jia","Yi","Tai","Xiao","Ma","Yin","Jiao","Hua","Luo","Hai","Pian","Biao","Li","Cheng","Yan","Xin","Qin","Jun","Qi","Qi","Ke","Zhui","Zong","Su","Can","Pian","Zhi","Kui","Sao","Wu","Ao","Liu","Qian","Shan","Piao","Luo","Cong","Chan","Zou","Ji","Shuang","Xiang","Gu","Wei","Wei","Wei","Yu","Gan","Yi","Ang","Tou","Xie","Bao","Bi","Chi","Ti","Di","Ku","Hai","Qiao","Gou","Kua","Ge","Tui","Geng","Pian","Bi","Ke","Ka","Yu","Sui","Lou","Bo","Xiao","Pang","Bo","Ci","Kuan","Bin","Mo","Liao","Lou","Nao","Du","Zang","Sui","Ti","Bin","Kuan","Lu","Gao","Gao","Qiao","Kao","Qiao","Lao","Zao","Biao","Kun","Kun","Ti","Fang","Xiu","Ran","Mao","Dan","Kun","Bin","Fa","Tiao","Peng","Zi","Fa","Ran","Ti","Pao","Pi","Mao","Fu","Er","Rong","Qu","Gong","Xiu","Gua","Ji","Peng","Zhua","Shao","Sha"],KL[155]=["Ti","Li","Bin","Zong","Ti","Peng","Song","Zheng","Quan","Zong","Shun","Jian","Duo","Hu","La","Jiu","Qi","Lian","Zhen","Bin","Peng","Mo","San","Man","Man","Seng","Xu","Lie","Qian","Qian","Nong","Huan","Kuai","Ning","Bin","Lie","Rang","Dou","Dou","Nao","Hong","Xi","Dou","Han","Dou","Dou","Jiu","Chang","Yu","Yu","Li","Juan","Fu","Qian","Gui","Zong","Liu","Gui","Shang","Yu","Gui","Mei","Ji","Qi","Jie","Kui","Hun","Ba","Po","Mei","Xu","Yan","Xiao","Liang","Yu","Tui","Qi","Wang","Liang","Wei","Jian","Chi","Piao","Bi","Mo","Ji","Xu","Chou","Yan","Zhan","Yu","Dao","Ren","Ji","Eri","Gong","Tuo","Diao","Ji","Xu","E","E","Sha","Hang","Tun","Mo","Jie","Shen","Fan","Yuan","Bi","Lu","Wen","Hu","Lu","Za","Fang","Fen","Na","You","Namazu","Todo","He","Xia","Qu","Han","Pi","Ling","Tuo","Bo","Qiu","Ping","Fu","Bi","Ji","Wei","Ju","Diao","Bo","You","Gun","Pi","Nian","Xing","Tai","Bao","Fu","Zha","Ju","Gu","Kajika","Tong",null,"Ta","Jie","Shu","Hou","Xiang","Er","An","Wei","Tiao","Zhu","Yin","Lie","Luo","Tong","Yi","Qi","Bing","Wei","Jiao","Bu","Gui","Xian","Ge","Hui","Bora","Mate","Kao","Gori","Duo","Jun","Ti","Man","Xiao","Za","Sha","Qin","Yu","Nei","Zhe","Gun","Geng","Su","Wu","Qiu","Ting","Fu","Wan","You","Li","Sha","Sha","Gao","Meng","Ugui","Asari","Subashiri","Kazunoko","Yong","Ni","Zi","Qi","Qing","Xiang","Nei","Chun","Ji","Diao","Qie","Gu","Zhou","Dong","Lai","Fei","Ni","Yi","Kun","Lu","Jiu","Chang","Jing","Lun","Ling","Zou","Li","Meng","Zong","Zhi","Nian","Shachi","Dojou","Sukesou","Shi","Shen","Hun","Shi","Hou","Xing","Zhu","La","Zong","Ji","Bian","Bian"],KL[156]=["Huan","Quan","Ze","Wei","Wei","Yu","Qun","Rou","Die","Huang","Lian","Yan","Qiu","Qiu","Jian","Bi","E","Yang","Fu","Sai","Jian","Xia","Tuo","Hu","Muroaji","Ruo","Haraka","Wen","Jian","Hao","Wu","Fang","Sao","Liu","Ma","Shi","Shi","Yin","Z","Teng","Ta","Yao","Ge","Rong","Qian","Qi","Wen","Ruo","Hatahata","Lian","Ao","Le","Hui","Min","Ji","Tiao","Qu","Jian","Sao","Man","Xi","Qiu","Biao","Ji","Ji","Zhu","Jiang","Qiu","Zhuan","Yong","Zhang","Kang","Xue","Bie","Jue","Qu","Xiang","Bo","Jiao","Xun","Su","Huang","Zun","Shan","Shan","Fan","Jue","Lin","Xun","Miao","Xi","Eso","Kyou","Fen","Guan","Hou","Kuai","Zei","Sao","Zhan","Gan","Gui","Sheng","Li","Chang","Hatahata","Shiira","Mutsu","Ru","Ji","Xu","Huo","Shiira","Li","Lie","Li","Mie","Zhen","Xiang","E","Lu","Guan","Li","Xian","Yu","Dao","Ji","You","Tun","Lu","Fang","Ba","He","Bo","P
1ing","Nian","Lu","You","Zha","Fu","Bo","Bao","Hou","Pi","Tai","Gui","Jie","Kao","Wei","Er","Tong","Ze","Hou","Kuai","Ji","Jiao","Xian","Za","Xiang","Xun","Geng","Li","Lian","Jian","Li","Shi","Tiao","Gun","Sha","Wan","Jun","Ji","Yong","Qing","Ling","Qi","Zou","Fei","Kun","Chang","Gu","Ni","Nian","Diao","Jing","Shen","Shi","Zi","Fen","Die","Bi","Chang","Shi","Wen","Wei","Sai","E","Qiu","Fu","Huang","Quan","Jiang","Bian","Sao","Ao","Qi","Ta","Yin","Yao","Fang","Jian","Le","Biao","Xue","Bie","Man","Min","Yong","Wei","Xi","Jue","Shan","Lin","Zun","Huo","Gan","Li","Zhan","Guan","Niao","Yi","Fu","Li","Jiu","Bu","Yan","Fu","Diao","Ji","Feng","Nio","Gan","Shi","Feng","Ming","Bao","Yuan","Zhi","Hu","Qin","Fu","Fen","Wen","Jian","Shi","Yu"],KL[157]=["Fou","Yiao","Jue","Jue","Pi","Huan","Zhen","Bao","Yan","Ya","Zheng","Fang","Feng","Wen","Ou","Te","Jia","Nu","Ling","Mie","Fu","Tuo","Wen","Li","Bian","Zhi","Ge","Yuan","Zi","Qu","Xiao","Zhi","Dan","Ju","You","Gu","Zhong","Yu","Yang","Rong","Ya","Tie","Yu","Shigi","Ying","Zhui","Wu","Er","Gua","Ai","Zhi","Yan","Heng","Jiao","Ji","Lie","Zhu","Ren","Yi","Hong","Luo","Ru","Mou","Ge","Ren","Jiao","Xiu","Zhou","Zhi","Luo","Chidori","Toki","Ten","Luan","Jia","Ji","Yu","Huan","Tuo","Bu","Wu","Juan","Yu","Bo","Xun","Xun","Bi","Xi","Jun","Ju","Tu","Jing","Ti","E","E","Kuang","Hu","Wu","Shen","Lai","Ikaruga","Kakesu","Lu","Ping","Shu","Fu","An","Zhao","Peng","Qin","Qian","Bei","Diao","Lu","Que","Jian","Ju","Tu","Ya","Yuan","Qi","Li","Ye","Zhui","Kong","Zhui","Kun","Sheng","Qi","Jing","Yi","Yi","Jing","Zi","Lai","Dong","Qi","Chun","Geng","Ju","Qu","Isuka","Kikuitadaki","Ji","Shu",null,"Chi","Miao","Rou","An","Qiu","Ti","Hu","Ti","E","Jie","Mao","Fu","Chun","Tu","Yan","He","Yuan","Pian","Yun","Mei","Hu","Ying","Dun","Mu","Ju","Tsugumi","Cang","Fang","Gu","Ying","Yuan","Xuan","Weng","Shi","He","Chu","Tang","Xia","Ruo","Liu","Ji","Gu","Jian","Zhun","Han","Zi","Zi","Ni","Yao","Yan","Ji","Li","Tian","Kou","Ti","Ti","Ni","Tu","Ma","Jiao","Gao","Tian","Chen","Li","Zhuan","Zhe","Ao","Yao","Yi","Ou","Chi","Zhi","Liao","Rong","Lou","Bi","Shuang","Zhuo","Yu","Wu","Jue","Yin","Quan","Si","Jia
1o","Yi","Hua","Bi","Ying","Su","Huang","Fan","Jiao","Liao","Yan","Kao","Jiu","Xian","Xian","Tu","Mai","Zun","Yu","Ying","Lu","Tuan","Xian","Xue","Yi","Pi"],KL[158]=["Shu","Luo","Qi","Yi","Ji","Zhe","Yu","Zhan","Ye","Yang","Pi","Ning","Huo","Mi","Ying","Meng","Di","Yue","Yu","Lei","Bao","Lu","He","Long","Shuang","Yue","Ying","Guan","Qu","Li","Luan","Niao","Jiu","Ji","Yuan","Ming","Shi","Ou","Ya","Cang","Bao","Zhen","Gu","Dong","Lu","Ya","Xiao","Yang","Ling","Zhi","Qu","Yuan","Xue","Tuo","Si","Zhi","Er","Gua","Xiu","Heng","Zhou","Ge","Luan","Hong","Wu","Bo","Li","Juan","Hu","E","Yu","Xian","Ti","Wu","Que","Miao","An","Kun","Bei","Peng","Qian","Chun","Geng","Yuan","Su","Hu","He","E","Gu","Qiu","Zi","Mei","Mu","Ni","Yao","Weng","Liu","Ji","Ni","Jian","He","Yi","Ying","Zhe","Liao","Liao","Jiao","Jiu","Yu","Lu","Xuan","Zhan","Ying","Huo","Meng","Guan","Shuang","Lu","Jin","Ling","Jian","Xian","Cuo","Jian","Jian","Yan","Cuo","Lu","You","Cu","Ji","Biao","Cu","Biao","Zhu","Jun","Zhu","Jian","Mi","Mi","Wu","Liu","Chen","Jun","Lin","Ni","Qi","Lu","Jiu","Jun","Jing","Li","Xiang","Yan","Jia","Mi","Li","She","Zhang","Lin","Jing","Ji","Ling","Yan","Cu","Mai","Mai","Ge","Chao","Fu","Mian","Mian","Fu","Pao","Qu","Qu","Mou","Fu","Xian","Lai","Qu","Mian",null,"Feng","Fu","Qu","Mian","Ma","Mo","Mo","Hui","Ma","Zou","Nen","Fen","Huang","Huang","Jin","Guang","Tian","Tou","Heng","Xi","Kuang","Heng","Shu","Li","Nian","Chi","Hei","Hei","Yi","Qian","Dan","Xi","Tuan","Mo","Mo","Qian","Dai","Chu","You","Dian","Yi","Xia","Yan","Qu","Mei","Yan","Jing","Yu","Li","Dang","Du","Can","Yin","An","Yan","Tan","An","Zhen","Dai","Can","Yi","Mei","Dan","Yan","Du","Lu","Zhi","Fen","Fu","Fu","Min","Min","Yuan"],KL[159]=["Cu","Qu","Chao","Wa","Zhu","Zhi","Mang","Ao","Bie","Tuo","Bi","Yuan","Chao","Tuo","Ding","Mi","Nai","Ding","Zi","Gu","Gu","Dong","Fen","Tao","Yuan","Pi","Chang","Gao","Qi","Yuan","Tang","Teng","Shu","Shu","Fen","Fei","Wen","Ba","Diao","Tuo","Tong","Qu","Sheng","Shi","You","Shi","Ting","Wu","Nian","Jing","Hun","Ju","Yan","Tu","Ti","Xi","Xian","Yan","Lei","Bi","Yao","Qiu","Han","Wu","Wu","Hou","Xi","Ge","Zha","Xiu","Weng","Zha","Nong","Nang","Qi","Zhai","Ji","Zi","Ji","Ji","Qi","Ji","Chi","Chen","Chen","He","Ya","Ken","Xie","Pao","Cuo","Shi","Zi","Chi","Nian","Ju","Tiao","Ling","Ling","Chu","Quan","Xie","Ken","Nie","Jiu","Yao","Chuo","Kun","Yu","Chu","Yi","Ni","Cuo","Zou","Qu","Nen","Xian","Ou","E","Wo","Yi","Chuo","Zou","Dian","Chu","Jin","Ya","Chi","Chen","He","Ken","Ju","Ling","Pao","Tiao","Zi","Ken","Yu","Chuo","Qu","Wo","Long","Pang","Gong","Pang","Yan","Long","Long","Gong","Kan","Ta","Ling","Ta","Long","Gong","Kan","Gui","Qiu","Bie","Gui","Yue","Chui","He","Jue","Xie","Yu"],KL[160]=["it","ix","i","ip","iet","iex","ie","iep","at","ax","a","ap","uox","uo","uop","ot","ox","o","op","ex","e","wu","bit","bix","bi","bip","biet","biex","bie","biep","bat","bax","ba","bap","buox","buo","buop","bot","box","bo","bop","bex","be","bep","but","bux","bu","bup","burx","bur","byt","byx","by","byp","byrx","byr","pit","pix","pi","pip","piex","pie","piep","pat","pax","pa","pap","puox","puo","puop","pot","pox","po","pop","put","pux","pu","pup","purx","pur","pyt","pyx","py","pyp","pyrx","pyr","bbit","bbix","bbi","bbip","bbiet","bbiex","bbie","bbiep","bbat","bbax","bba","bbap","bbuox","bbuo","bbuop","bbot","bbox","bbo","bbop","bbex","bbe","bbep","bbut","bbux","bbu","bbup","bburx","bbur","bbyt","bbyx","bby","bbyp","nbit","nbix","nbi","nbip","nbiex","nbie","nbiep","nbat","nbax","nba","nbap","nbot","nbox","nbo","nbop","nbut","nbux","nbu","nbup","nburx","nbur","nbyt","nbyx","nby","nbyp","nbyrx","nbyr","hmit","hmix","hmi","hmip","hmiex","hmie","hmiep","hmat","hmax","hma","hmap","hmuox","hmuo","hmuop","hmot","hmox","hmo","hmop","hmut","hmux","hmu","hmup","hmurx","hmur","hmyx","hmy","hmyp","hmyrx","hmyr","mit","mix","mi","mip","miex","mie","miep","mat","max","ma","map","muot","muox","muo","muop","mot","mox","mo","mop","mex","me","mut","mux","mu","mup","murx","mur","myt","myx","my","myp","fit","fix","fi","fip","fat","fax","fa","fap","fox","fo","fop","fut","fux","fu","fup","furx","fur","fyt","fyx","fy","fyp","vit","vix","vi","vip","viet","viex","vie","viep","vat","vax","va","vap","vot","vox","vo","vop","vex","vep","vut","vux","vu","vup","vurx","vur","vyt","vyx","vy","vyp","vyrx","vyr"],KL[161]=["dit","dix","di","dip","diex","die","diep","dat","dax","da","dap","duox","duo","dot","dox","do","dop","dex","de","dep","dut","dux","du","dup","durx","dur","tit","tix","ti","tip","tiex","tie","tiep","tat","tax","ta","tap","tuot","tuox","tuo","tuop","tot","tox","to","top","tex","te","tep","tut","tux","tu","tup","turx","tur","ddit","ddix","ddi","ddip","ddiex","ddie","ddiep","ddat","ddax","dda","ddap","dduox","dduo","dduop","ddot","ddox","ddo","ddop","ddex","dde","ddep","ddut","ddux","ddu","ddup","ddurx","ddur","ndit","ndix","ndi","ndip","ndiex","ndie","ndat","ndax","nda","ndap","ndot","ndox","ndo","ndop","ndex","nde","ndep","ndut","ndux","ndu","n
1dup","ndurx","ndur","hnit","hnix","hni","hnip","hniet","hniex","hnie","hniep","hnat","hnax","hna","hnap","hnuox","hnuo","hnot","hnox","hnop","hnex","hne","hnep","hnut","nit","nix","ni","nip","niex","nie","niep","nax","na","nap","nuox","nuo","nuop","not","nox","no","nop","nex","ne","nep","nut","nux","nu","nup","nurx","nur","hlit","hlix","hli","hlip","hliex","hlie","hliep","hlat","hlax","hla","hlap","hluox","hluo","hluop","hlox","hlo","hlop","hlex","hle","hlep","hlut","hlux","hlu","hlup","hlurx","hlur","hlyt","hlyx","hly","hlyp","hlyrx","hlyr","lit","lix","li","lip","liet","liex","lie","liep","lat","lax","la","lap","luot","luox","luo","luop","lot","lox","lo","lop","lex","le","lep","lut","lux","lu","lup","lurx","lur","lyt","lyx","ly","lyp","lyrx","lyr","git","gix","gi","gip","giet","giex","gie","giep","gat","gax","ga","gap","guot","guox","guo","guop","got","gox","go","gop","get","gex","ge","gep","gut","gux","gu","gup","gurx","gur","kit","kix","ki","kip","kiex","kie","kiep","kat"],KL[162]=["kax","ka","kap","kuox","kuo","kuop","kot","kox","ko","kop","ket","kex","ke","kep","kut","kux","ku","kup","kurx","kur","ggit","ggix","ggi","ggiex","ggie","ggiep","ggat","ggax","gga","ggap","gguot","gguox","gguo","gguop","ggot","ggox","ggo","ggop","gget","ggex","gge","ggep","ggut","ggux","ggu","ggup","ggurx","ggur","mgiex","mgie","mgat","mgax","mga","mgap","mguox","mguo","mguop","mgot","mgox","mgo","mgop","mgex","mge","mgep","mgut","mgux","mgu","mgup","mgurx","mgur","hxit","hxix","hxi","hxip","hxiet","hxiex","hxie","hxiep","hxat","hxax","hxa","hxap","hxuot","hxuox","hxuo","hxuop","hxot","hxox","hxo","hxop","hxex","hxe","hxep","ngiex","ngie","ngiep","ngat","ngax","nga","ngap","nguot","nguox","nguo","ngot","ngox","ngo","ngop","ngex","nge","ngep","hit","hiex","hie","hat","hax","ha","hap","huot","huox","huo","huop","hot","hox","ho","hop","hex","he","hep","wat","wax","wa","wap","wuox","wuo","wuop","wox","wo","wop","wex","we","wep","zit","zix","zi","zip","ziex","zie","ziep","zat","zax","za","zap","zuox","zuo","zuop","zot","zox","zo","zop","zex","ze","zep","zut","zux","zu","zup","zurx","zur","zyt","zyx","zy","zyp","zyrx","zyr","cit","cix","ci","cip","ciet","ciex","cie","ciep","cat","cax","ca","cap","cuox","cuo","cuop","cot","cox","co","cop","cex","ce","cep","cut","cux","cu","cup","curx","cur","cyt","cyx","cy","cyp","cyrx","cyr","zzit","zzix","zzi","zzip","zziet","zziex","zzie","zziep","zzat","zzax","zza","zzap","zzox","zzo","zzop","zzex","zze","zzep","zzux","zzu","zzup","zzurx","zzur","zzyt","zzyx","zzy","zzyp","zzyrx","zzyr","nzit","nzix","nzi","nzip","nziex","nzie","nziep","nzat","nzax","nza","nzap","nzuox","nzuo","nzox","nzop","nzex","nze","nzux","nzu"],KL[163]=["nzup","nzurx","nzur","nzyt","nzyx","nzy","nzyp","nzyrx","nzyr","sit","six","si","sip","siex","sie","siep","sat","sax","sa","sap","suox","suo","suop","sot","sox","so","sop","sex","se","sep","sut","sux","su","sup","surx","sur","syt","syx","sy","syp","syrx","syr","ssit","ssix","ssi","ssip","ssiex","ssie","ssiep","ssat","ssax","ssa","ssap","ssot","ssox","sso","ssop","ssex","sse","ssep","ssut","ssux","ssu","ssup","ssyt","ssyx","ssy","ssyp","ssyrx","ssyr","zhat","zhax","zha","zhap","zhuox","zhuo","zhuop","zhot","zhox","zho","zhop","zhet","zhex","zhe","zhep","zhut","zhux","zhu","zhup","zhurx","zhur","zhyt","zhyx","zhy","zhyp","zhyrx","zhyr","chat","chax","cha","chap","chuot","chuox","chuo","chuop","chot","chox","cho","chop","chet","chex","che","chep","chux","chu","chup","churx","chur","chyt","chyx","chy","chyp","chyrx","chyr","rrax","rra","rruox","rruo","rrot","rrox","rro","rrop","rret","rrex","rre","rrep","rrut","rrux","rru","rrup","rrurx","rrur","rryt","rryx","rry","rryp","rryrx","rryr","nrat","nrax","nra","nrap","nrox","nro","nrop","nret","nrex","nre","nrep","nrut","nrux","nru","nrup","nrurx","nrur","nryt","nryx","nry","nryp","nryrx","nryr","shat","shax","sha","shap","shuox","shuo","shuop","shot","shox","sho","shop","shet","shex","she","shep","shut","shux","shu","shup","shurx","shur","shyt","shyx","shy","shyp","shyrx","shyr","rat","rax","ra","rap","ruox","ruo","ruop","rot","rox","ro","rop","rex","re","rep","rut","rux","ru","rup","rurx","rur","ryt","ryx","ry","ryp","ryrx","ryr","jit","jix","ji","jip","jiet","jiex","jie","jiep","juot","juox","juo","juop","jot","jox","jo","jop","jut","jux","ju","jup","jurx","jur","jyt","jyx","jy","jyp","jyrx","jyr","qit","qix","qi","qip"],KL[164]=["qiet","qiex","qie","qiep","quot","quox","quo","quop","qot","qox","qo","qop","qut","qux","qu","qup","qurx","qur","qyt","qyx","qy","qyp","qyrx","qyr","jjit","jjix","jji","jjip","jjiet","jjiex","jjie","jjiep","jjuox","jjuo","jjuop","jjot","jjox","jjo","jjop","jjut","jjux","jju","jjup","jjurx","jjur","jjyt","jjyx","jjy","jjyp","njit","njix","nji","njip","njiet","njiex","njie","njiep","njuox","njuo","njot","njox","njo","njop","njux","nju","njup","njurx","njur","njyt","njyx","njy","njyp","njyrx","njyr","nyit","nyix","nyi","nyip","nyiet","nyiex","nyie","nyiep","nyuox","nyuo","nyuop","nyot","nyox","nyo","nyop","nyut","nyux","nyu","nyup","xit","xix","xi","xip","xiet","xiex","xie","xiep","xuox","xuo","xot","xox","xo","xop","xyt","xyx","xy","xyp","xyrx","xyr","yit","yix","yi","yip","yiet","yiex","yie","yiep","yuot","yuox","yuo","yuop","yot","yox","yo","yop","yut","yux","yu","yup","yurx","yur","yyt","yyx","yy","yyp","yyrx","yyr",null,null,null,"Qot","Li","Kit","Nyip","Cyp","Ssi","Ggop","Gep","Mi","Hxit","Lyr","Bbut","Mop","Yo","Put","Hxuo","Tat","Ga",null,null,"Ddur","Bur","Gguo","Nyop","Tu","Op","Jjut","Zot","Pyt","Hmo","Yit","Vur","Shy","Vep","Za","Jo",null,"Jjy","Got","Jjie","Wo","Du","Shur","Lie","Cy","Cuop","Cip","Hxop","Shat",null,"Shop","Che","Zziet",null,"Ke"],KL[167]=[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"A","a","A","a","HENG","heng","TZ","tz","3","3","4","4","4","4","F","S","AA","aa","AO","ao","AU","au","AV","av","AV-","av-","AY","ay","C","c","K","k","K","k","K","k","L","l","L","l","O","o","O","o","OO","oo","P","p","P","p","P","p","Q","q","Q","q","R","r","R","r","V","v","VY","vy","Z","z","TH","th","TH","th","Y","y","ET","et","IS","is","CON","con","US","us","dum","lum","num","rum","RUM","tum","um","D","d","F","f","G","G","g","L","l","R","r","S","s","T","t","^",":","=","'","'","H","l",".","N","n","C","c","c","h","B","b","F","f","AE","ae","OE","oe","UE","ue","G","g","K","k","N","n","R","r","S","s","H","E","G","L","I","Q","K","T","J","CHI","B","b","O","o","U","u",null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"I","H","oe","M","F","P","M","I","M1"],KL[249]=["Kay","Kayng","Ke","Ko","Kol","Koc","Kwi","Kwi","Kyun","Kul","Kum","Na","Na","Na","La","Na","Na","Na","Na","Na","Nak","Nak","Nak","Nak","Nak","Nak","Nak","Nan","Nan","Nan","Nan","Nan","Nan","Nam","Nam","Nam","Nam","Nap","Nap","Nap","Nang","Nang","Nang","Nang","Nang","Nay","Nayng","No","No","No","No","No","No","No","No","No","No","No","No","Nok","Nok","Nok","Nok","Nok","Nok","Non","Nong","Nong","Nong","Nong","Noy","Noy","Noy","Noy","Nwu","Nwu","Nwu","Nwu","Nwu","Nwu","Nwu","Nwu","Nuk","Nuk","Num","Nung","Nung","Nung","Nung","Nung","Twu","La","Lak","Lak","Lan","Lyeng","Lo","Lyul","Li","Pey","Pen","Pyen","Pwu","Pwul","Pi","S
1ak","Sak","Sam","Sayk","Sayng","Sep","Sey","Sway","Sin","Sim","Sip","Ya","Yak","Yak","Yang","Yang","Yang","Yang","Yang","Yang","Yang","Yang","Ye","Ye","Ye","Ye","Ye","Ye","Ye","Ye","Ye","Ye","Ye","Yek","Yek","Yek","Yek","Yen","Yen","Yen","Yen","Yen","Yen","Yen","Yen","Yen","Yen","Yen","Yen","Yen","Yen","Yel","Yel","Yel","Yel","Yel","Yel","Yem","Yem","Yem","Yem","Yem","Yep","Yeng","Yeng","Yeng","Yeng","Yeng","Yeng","Yeng","Yeng","Yeng","Yeng","Yeng","Yeng","Yeng","Yey","Yey","Yey","Yey","O","Yo","Yo","Yo","Yo","Yo","Yo","Yo","Yo","Yo","Yo","Yong","Wun","Wen","Yu","Yu","Yu","Yu","Yu","Yu","Yu","Yu","Yu","Yu","Yuk","Yuk","Yuk","Yun","Yun","Yun","Yun","Yul","Yul","Yul","Yul","Yung","I","I","I","I","I","I","I","I","I","I","I","I","I","I","Ik","Ik","In","In","In","In","In","In","In","Im","Im","Im","Ip","Ip","Ip","Cang","Cek","Ci","Cip","Cha","Chek"],KL[250]=["Chey","Thak","Thak","Thang","Thayk","Thong","Pho","Phok","Hang","Hang","Hyen","Hwak","Wu","Huo",null,null,"Zhong",null,"Qing",null,null,"Xi","Zhu","Yi","Li","Shen","Xiang","Fu","Jing","Jing","Yu",null,"Hagi",null,"Zhu",null,null,"Yi","Du",null,null,null,"Fan","Si","Guan"],KL[251]=["ff","fi","fl","ffi","ffl","st","st",null,null,null,null,null,null,null,null,null,null,null,null,"mn","me","mi","vn","mkh",null,null,null,null,null,"yi",null,"ay","`",null,"d","h","k","l","m","m","t","+","sh","s","sh","s","a","a",null,"b","g","d","h","v","z",null,"t","y","k","k","l",null,"l",null,"n","n",null,"p","p",null,"ts","ts","r","sh","t","vo","b","k","p","l"],KL[254]=[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,"~",null,null,null,null,null,null,null,null,null,null,null,null,"..","--","-","_","_","(",") ","{","} ","[","] ","[(",")] ","<<",">> ","<","> ","[","] ","{","}",null,null,null,null,null,null,null,null,null,null,null,",",",",".",null,";",":","?","!","-","(",")","{","}","{","}","#","&","*","+","-","<",">","=",null,"\\","$","%","@"],KL[255]=[null,"!",'"',"#","$","%","&","'","(",")","*","+",",","-",".","/","0","1","2","3","4","5","6","7","8","9",":",";","<","=",">","?","@","A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z","[","\\","]","^","_","`","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z","{","|","}","~",null,null,".","[","]",",","*","wo","a","i","u","e","o","ya","yu","yo","tu","+","a","i","u","e","o","ka","ki","ku","ke","ko","sa","si","su","se","so","ta","ti","tu","te","to","na","ni","nu","ne","no","ha","hi","hu","he","ho","ma","mi","mu","me","mo","ya","yu","yo","ra","ri","ru","re","ro","wa","n",":",";",null,"g","gg","gs","n","nj","nh","d","dd","r","lg","lm","lb","ls","lt","lp","rh","m","b","bb","bs","s","ss",null,"j","jj","c","k","t","p","h",null,null,null,"a","ae","ya","yae","eo","e",null,null,"yeo","ye","o","wa","wae","oe",null,null,"yo","u","weo","we","wi","yu",null,null,"eu","yi","i",null,null,null,"/C","PS","!","-","|","Y=","W=",null,"|","-","|","-","|","#","O",null,null,null,null,null,null,null,null,null,null,"{","|","}"];var jL={};for(let ET=0;ET<KL.length;ET++){let e=KL[ET];if(e)for(let n=0;n<e.length;n++){let t=e[n];t&&(jL[String.fromCharCode((ET<<8)+n)]=t)}}for(let ET=44032;ET<=55203;ET++){let e=ET-44032;jL[String.fromCharCode(ET)]=GL[e/588|0]+OL[e%588/28|0]+QL[e%28]}var WL=/[-[\]/{}()*+?.\\^$|]/g,UL=/[\u2E80-\u2E99\u2E9B-\u2EF3\u2F00-\u2FD5\u3005\u3007\u3021-\u3029\u3038-\u303B\u3400-\u4DBF\u4E00-\u9FFC\uF900-\uFA6D\uFA70-\uFAD9]|\uD81B[\uDFF0\uDFF1]|[\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879\uD880-\uD883][\uDC00-\uDFFF]|\uD869[\uDC00-\uDEDD\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uD884[\uDC00-\uDF4A]/,zL=/[\s!-#%-*,-/:;?@[-\]_{}\xA1\xA7\xAB\xB6\xB7\xBB\xBF\u037E\u0387\u055A-\u055F\u0589\u058A\u05BE\u05C0\u05C3\u05C6\u05F3\u05F4\u0609\u060A\u060C\u060D\u061B\u061E\u061F\u066A-\u066D\u06D4\u0700-\u070D\u07F7-\u07F9\u0830-\u083E\u085E\u0964\u0965\u0970\u09FD\u0A76\u0AF0\u0C77\u0C84\u0DF4\u0E4F\u0E5A\u0E5B\u0F04-\u0F12\u0F14\u0F3A-\u0F3D\u0F85\u0FD0-\u0FD4\u0FD9\u0FDA\u104A-\u104F\u10FB\u1360-\u1368\u1400\u166E\u169B\u169C\u16EB-\u16ED\u1735\u1736\u17D4-\u17D6\u17D8-\u17DA\u1800-\u180A\u1944\u1945\u1A1E\u1A1F\u1AA0-\u1AA6\u1AA8-\u1AAD\u1B5A-\u1B60\u1BFC-\u1BFF\u1C3B-\u1C3F\u1C7E\u1C7F\u1CC0-\u1CC7\u1CD3\u2010-\u2027\u2030-\u2043\u2045-\u2051\u2053-\u205E\u207D\u207E\u208D\u208E\u2308-\u230B\u2329\u232A\u2768-\u2775\u27C5\u27C6\u27E6-\u27EF\u2983-\u2998\u29D8-\u29DB\u29FC\u29FD\u2CF9-\u2CFC\u2CFE\u2CFF\u2D70\u2E00-\u2E2E\u2E30-\u2E4F\u2E52\u3001-\u3003\u3008-\u3011\u3014-\u301F\u3030\u303D\u30A0\u30FB\uA4FE\uA4FF\uA60D-\uA60F\uA673\uA67E\uA6F2-\uA6F7\uA874-\uA877\uA8CE\uA8CF\uA8F8-\uA8FA\uA8FC\uA92E\uA92F\uA95F\uA9C1-\uA9CD\uA9DE\uA9DF\uAA5C-\uAA5F\uAADE\uAADF\uAAF0\uAAF1\uABEB\uFD3E\uFD3F\uFE10-\uFE19\uFE30-\uFE52\uFE54-\uFE61\uFE63\uFE68\uFE6A\uFE6B\uFF01-\uFF03\uFF05-\uFF0A\uFF0C-\uFF0F\uFF1A\uFF1B\uFF1F\uFF20\uFF3B-\uFF3D\uFF3F\uFF5B\uFF5D\uFF5F-\uFF65]|\uD800[\uDD00-\uDD02\uDF9F\uDFD0]|\uD801\uDD6F|\uD802[\uDC57\uDD1F\uDD3F\uDE50-\uDE58\uDE7F\uDEF0-\uDEF6\uDF39-\uDF3F\uDF99-\uDF9C]|\uD803[\uDEAD\uDF55-\uDF59]|\uD804[\uDC47-\uDC4D\uDCBB\uDCBC\uDCBE-\uDCC1\uDD40-\uDD43\uDD74\uDD75\uDDC5-\uDDC8\uDDCD\uDDDB\uDDDD-\uDDDF\uDE38-\uDE3D\uDEA9]|\uD805[\uDC4B-\uDC4F\uDC5A\uDC5B\uDC5D\uDCC6\uDDC1-\uDDD7\uDE41-\uDE43\uDE60-\uDE6C\uDF3C-\uDF3E]|\uD806[\uDC3B\uDD44-\uDD46\uDDE2\uDE3F-\uDE46\uDE9A-\uDE9C\uDE9E-\uDEA2]|\uD807[\uDC41-\uDC45\uDC70\uDC71\uDEF7\uDEF8\uDFFF]|\uD809[\uDC70-\uDC74]|\uD81A[\uDE6E\uDE6F\uDEF5\uDF37-\uDF3B\uDF44]|\uD81B[\uDE97-\uDE9A\uDFE2]|\uD82F\uDC9F|\uD836[\uDE87-\uDE8B]|\uD83A[\uDD5E\uDD5F]/,$L=-1,VL=0,qL=1;function eT(e){return(e||"").replace(WL,"\\$&")}function nT(e){return UL.test(e)}function tT(e){return zL.test(e)}function iT(e){if(Array.isArray(e))return e.map(e=>iT(e));if(e instanceof Date)return new Date(e.valueOf());if(e instanceof RegExp)return new RegExp(e.source,e.flags);if(null!==e&&"object"==typeof e){let n={};for(let t in e)Object.hasOwn(e,t)&&(n[t]=iT(e[t]));return n}return e}function aT(e,n){return e<n[0]?$L:e>n[1]?qL:VL}function oT(e,n){if(0===n.length)return!1;let t=0,i=n.length-1;for(;t<=i;){let a=t+i>>>1,o=aT(e,n[a]);if(o===VL)return!0;o===$L?i=a-1:t=a+1}return!1}function rT(e,n,t,i=[]){let a=i.length?new RegExp(i.map(eT).join("|"),"g"):null,o=new RegExp(n.source,`${n.flags.replace("g","")}g`),r="",s=0;for(;;){let n=o.exec(e),i="",u=0;if(!n){r+=e.substring(s,e.length);break}for(;;){let e=null==a?void 0:a.exec(n[0]);if(!e||!a){i+=n[0].length>u?t:"";break}i+=e.index>
1u?t:"",i+=e[0],u=a.lastIndex}r+=e.substring(s,n.index)+i,s=o.lastIndex}return r}var sT=/[\uD800-\uDBFF]/,uT=/[\uDC00-\uDFFF]/,lT=/[^\s\S]/,cT={ignore:[],replace:[],replaceAfter:[],trim:!1,unknown:"",fixChineseSpacing:!0},hT=class{get options(){return iT({...cT,...this.confOptions})}constructor(e=iT(cT),n=jL){this.confOptions=e,this.defaultMap=n,this.map=n}config(e,n=!1){return n&&(this.confOptions={}),e&&"object"==typeof e&&(this.confOptions=iT(e)),this.confOptions}codeMapReplace(e,n,t=[]){let i=0,a="",o=n.fixChineseSpacing&&nT(e),r=!1;for(let s=0;s<e.length;s++){let u,l=sT.test(e[s])&&uT.test(e[s+1])?e[s]+e[s+1]:e[s],c=!1;oT(i,t)||2===l.length&&oT(i+1,t)?(u=l,t.find(e=>e[1]>=i&&e[0]===i)||(c=!0)):u=this.map[l]||n.unknown||"",o&&(r&&!c&&!tT(u)&&(u=` ${u}`),r=!!u&&nT(l)),a+=u,i+=l.length,s+=l.length-1}return a}formatReplaceOption(e){if(Array.isArray(e))return iT(e);let n=[];for(let t in e)Object.hasOwn(e,t)&&n.push([t,e[t]]);return n}replaceString(e,n,t=[]){let i=iT(n),a=e;for(let o of i){switch(!0){case o[0]instanceof RegExp:o[0]=new RegExp(o[0].source,`${o[0].flags.replace("g","")}g`);break;case"string"==typeof o[0]&&o[0].length>0:o[0]=new RegExp(eT(o[0]),"g");break;default:o[0]=lT}a=rT(a,o[0],o[1],t)}return a}setData(e,n=!1){if(n&&(this.map=iT(this.defaultMap)),e&&"object"==typeof e&&Object.keys(e).length){this.map=iT(this.map);for(let n in e)Object.hasOwn(e,n)&&n.length<3&&n<="ô¿¿"&&(this.map[n]=e[n])}return this.map}transliterate(e,n){let t="object"==typeof n?n:{},i=iT({...this.options,...t}),a="string"==typeof e?e:String(e),o=this.formatReplaceOption(i.replace);o.length&&(a=this.replaceString(a,o,i.ignore));let r=i.ignore&&i.ignore.length>0?function(e,n){let t=[];for(let o of n){let n=e.indexOf(o);for(;n>-1;)t.push([n,n+o.length-1]),n=e.indexOf(o,n+1)}let i,a=t.sort((e,n)=>e[0]-n[0]||e[1]-n[1]);t=[];for(let o of a)!i||o[0]>i[1]+1?(i=o,t.push(i)):o[1]>i[1]&&(i[1]=o[1]);return t}(a,i.ignore):[];a=this.codeMapReplace(a,i,r),i.trim&&(a=a.trim());let s=this.formatReplaceOption(i.replaceAfter);return s.length&&(a=this.replaceString(a,s)),a}},dT={...iT(cT),allowedChars:"a-zA-Z0-9-_.~",lowercase:!0,separator:"-",uppercase:!1,fixChineseSpacing:!0},gT=new hT,pT=gT.transliterate.bind(gT);pT.config=gT.config.bind(gT),pT.setData=gT.setData.bind(gT);var mT=new class extends hT{get options(){return iT({...dT,...this.confOptions})}config(e,n=!1){return n&&(this.confOptions={}),e&&"object"==typeof e&&(this.confOptions=iT(e)),this.confOptions}slugify(e,n){let t="object"==typeof n?n:{},i=iT({...this.options,...t}),a=i.separator?eT(i.separator):"",o=this.transliterate(e,i);return o=rT(o,new RegExp(`[^${i.allowedChars}]+`,"g"),i.separator??"-",i.ignore??[]),a&&(o=o.replace(new RegExp(`${a}+`,"g"),i.separator),o=o.replace(new RegExp(`^${a}+|${a}+$`,"g"),"")),i.lowercase&&(o=o.toLowerCase()),i.uppercase&&(o=o.toUpperCase()),o}},fT=mT.slugify.bind(mT);fT.config=mT.config.bind(mT),fT.setData=mT.setData.bind(mT);const vT={init:async(e=[],n={},t=!1)=>{const i=Date.now(),a=await IL({gameFiles:e,params:n,isFamobiLegacy:t,logLabel:"init"});await fS(a),y("Init completed (",Date.now()-i,"ms )")},prepareGame:async(e=[],n={},t=!1)=>{(e=>{QC.pendingGameFiles=e,QC.bootPromise=void 0})(await IL({gameFiles:e,params:n,isFamobiLegacy:t,logLabel:"prepareGame"}))},bootPreparedGame:async()=>{const e=Date.now();await KC(),y("Prepared game boot completed (",Date.now()-e,"ms )")},sendPreloadProgress:e=>{var n,t;C("sendPreloadProgress",e),lC("progress_updated",{progress:e,progress_kind:"preload"}),null==(t=(n=g.get()).sendPreloadProgress)||t.call(n,e)},gameReady:(e=!0)=>{var n,t;C("gameReady"),EC("gameReady"),lC("game_ready"),mv.set({gameReadyAt:Date.now()}),ly(),null==(t=(n=g.get()).gameReady)||t.call(n),NL("visibilitychange")||void 0===window.cr_setSuspended||(a.log("[intern] overwriting cr_setSuspended..."),window.cr_setSuspended=()=>{a.warn("[intern] suspending is disabled!")}),!0===e&&ML()},playerReady:ML,gameStart:async(e,n)=>{var t,i;Array.isArray(e)&&(e=e.length?e[0]:void 0),C("gameStart",e||"endless"),EC("gameStart",[{name:"level",value:e}]),mv.set({level:e}),YS();const a={};"number"==typeof e&&(a.level=e),lC("game_start",dL(a,n));const o={level:"number"==typeof(null==a?void 0:a.level)&&Number.isInteger(a.level)?a.level:void 0},r=gL(null==n?void 0:n.metrics);r&&(o.data=r),ee(I.LEVEL_START,o),hy(),await(null==(i=(t=g.get()).gameStart)?void 0:i.call(t,e,n))},sendProgress:e=>{var n,t;C("sendProgress",e),lC("progress_updated",{progress:e,progress_kind:"gameplay"},{includeLevel:!0}),null==(t=(n=g.get()).sendProgress)||t.call(n,e)},sendScore:(e,n)=>{var t,i;if(C("sendScore",e,n||{}),!Number.isInteger(e))return;mv.set({score:e}),(n=n||{}).type=n.type||"live";const a={score:e};(null==n?void 0:n.type)&&(a.score_type=n.type),lC("score_updated",a,{includeLevel:!0,level:(null==n?void 0:n.level)??null}),null==(i=(t=g.get()).sendScore)||i.call(t,e,n)},gameComplete:fL,gameOver:vL,gameQuit:async e=>mL("quit",e),gamePause:async e=>{var n,t;C("gamePause"),EC("gamePause"),xS=!0,a.log("[intern] Playtime tracking paused!"),lC("game_pause",dL({pause_reason:"user"},e),{includeLevel:!0}),cy(),await(null==(t=(n=g.get()).gamePause)?void 0:t.call(n,e))},gameResume:async e=>{var n,t;C("gameResume"),EC("gameResume"),YS(),lC("game_resume",dL({pause_reason:"user"},e),{includeLevel:!0}),hy(),await(null==(t=(n=g.get()).gameResume)?void 0:t.call(n,e))},gameMuted:(e=!0,n="user")=>{var t,i;C("gameMuted",e),lC("audio_mute_changed",{is_muted:e,mute_trigger:n}),null==(i=(t=g.get()).gameMuted)||i.call(t,e)},showInterstitialAd:AC,showRewardedAd:async e=>{C("showRewardedAd",e);return{isRewardGranted:!!(await MC("rewarded",e,"reward")).isRewardGranted}},onGoToHome:e=>{var n,t;C("onGoToHome"),null==(t=(n=g.get()).onGoToHome)||t.call(n,e),CC("onGoToHome",e)},onGoToNextLevel:e=>{var n,t;C("onGoToNextLevel"),null==(t=(n=g.get()).onGoToNextLevel)||t.call(n,e),CC("onGoToNextLevel",e)},onGoToLevel:e=>{var n,t;C("onGoToLevel"),null==(t=(n=g.get()).onGoToLevel)||t.call(n,e),CC("onGoToLevel",e)},onRestartGame:e=>{var n,t;C("onRestartGame"),null==(t=(n=g.get()).onRestartGame)||t.call(n,e),CC("onRestartGame",e)},onQuitGame:e=>{var n,t;C("onQuitGame"),null==(t=(n=g.get()).onQuitGame)||t.call(n,e),CC("onQuitGame",e)},onGameOver:e=>{var n,t;C("onGameOver"),null==(t=(n=g.get()).onGameOver)||t.call(n,e),CC("onGameOver",e)},onAudioStateChange:e=>{var n,t;C("onAudioStateChange"),null==(t=(n=g.get()).onAudioStateChange)||t.call(n,e),CC("onAudioStateChange",e)},onMuteStateChange:e=>{var n,t;C("onMuteStateChange"),null==(t=(n=g.get()).onMuteStateChange)||t.call(n,e),CC("onMuteStateChange",e)},onPauseStateChange:e=>{var n,t;C("onPauseStateChange"),null==(t=(n=g.get()).onPauseStateChange)||t.call(n,e),CC("onPauseStateChange",e)},onRewardedAdAvailabilityChange:async e=>{var n,t;C("onRewardedAdAvailabilityChange"),null==(t=(n=g.get()).onRewardedAdAvailabilityChange)||t.call(n,e),(e=>{cC.set({callbacks:{onRewardedAdAvailabilityChange:e}}),_C("rewarded",!0)})(e)},onInterstitialAdAvailabilityChange:async e=>{var n,t;C("onInterstitialAdAvailabilityChange"),null==(t=(n=g.get()).onInterstitialAdAvailabilityChange)||t.call(n,e),(e=>{cC.set({callbacks:{onInterstitialAdAvailabilityChange:e}}),_C("interstitial",!0)})(e)},onOffsetChange:async e=>{var n,t;C("onOffsetChange"),null==(t=(n=g.get()).onOffsetChange)||t.call(n,e),cC.set({callbacks:{onOffsetChange:e}}),null==e||e(cC.get().offsets)},isMuted:()=>{var e,n;return C("isMuted"),(null==(n=(e=g.get()).isMuted)?void 0:n.call(e))??mv.get().isMuted},isPaused:()=>{var e,n;return C("isPaused"),(null==(n=(e=g.get()).isPaused)?void 0:n.call(e))||mv.get().isPaused},hasFeature:NL,hasRewardedAd:async e=>{var n,t;
1const i=JC("rewarded",e),a=await(null==(t=(n=g.get()).hasRewardedAd)?void 0:t.call(n,e))??!0,o=i&&a;return C(`hasRewardedAd('${e}') -> ${o}`),o},isInterstitialAdAvailable:DC,isRewardedAdAvailable:e=>{var n,t;const i=JC("rewarded",e),a=(null==(t=(n=g.get()).isRewardedAdAvailable)?void 0:t.call(n,e))??!0,o=i&&a;return S(`isRewardedAdAvailable('${e}') -> ${o}`),o},getOffsets:()=>{var e,n;return(null==(n=(e=g.get()).getOffsets)?void 0:n.call(e))||cC.get().offsets},getCurrentLanguage:()=>{var e,n,t;C("getCurrentLanguage");const i=(null==(n=(e=g.get()).getCurrentLanguage)?void 0:n.call(e))||p.get().locale||navigator.language||"en";return(null==(t=null==i?void 0:i.trim().match(/^([a-zA-Z]{2,3})/))?void 0:t[1].toLowerCase())||"en"},getCopyrightLogoURL:(e="xlarge",n="dark")=>{C("getCopyrightLogoURL",e,n);const t=n+"_"+e,i={dark_small:wL("copyright-dark-64.png"),dark_medium:wL("copyright-dark-128.png"),dark_large:wL("copyright-dark-256.png"),dark_xlarge:wL("copyright-dark-512.png"),light_small:wL("copyright-light-64.png"),light_medium:wL("copyright-light-128.png"),light_large:wL("copyright-light-256.png"),light_xlarge:wL("copyright-light-512.png"),default:wL("copyright-light-1024.png")};return i[t]??i.default},storage:{getItem:e=>{C("getItem",e);const n=(e=>{const{storagePrefix:n="famobi",isLegacyMode:t,savegame:i}=fb.get();if(y(`${t?"[legacy]":""} storage.getItem: ${e}`),t){const t=`${n}:${e}`;try{return window.localStorage.getItem(t)}catch{return null}}if(!e)return i;const a=i[e];return void 0===a?null:a})(e);return"test"===g.get().name&&("string"==typeof n?a.force(`[storage] getItem('${e}') [data.length: ${n.length}]`):a.force(`[storage] getItem('${e}') -> null`)),n},setItem:(e,n)=>{C("setItem",e,n),"test"===g.get().name&&("string"==typeof n?a.force(`[storage] setItem('${e}', ${ZL(n)}}) [data.length: ${n.length}]`):a.force(`[storage] setItem('${e}')`)),((e,n)=>{const{storagePrefix:t="famobi",isLegacyMode:i,savegame:a}=fb.get();if(y(`${i?"[legacy]":""} storage.setItem: ${e}`),i){const i=`${t}:${e}`;try{window.localStorage.setItem(i,String(n))}catch{}return}if(a[e]!==n){const t=Bb(),i={...a,[e]:n};Fb({data:i,updatedAt:Date.now(),version:1,level:t},{persist:!0}),y(`make dirty and setItem: ${e}`,i)}})(e,n)},removeItem:e=>{C("removeItem",e),"test"===g.get().name&&a.force(`[storage] removeItem('${e}')`),(e=>{const{storagePrefix:n="famobi",isLegacyMode:t,savegame:i}=fb.get();if(y(`${t?"[legacy]":""} storage.removeItem: ${e}`),t){const t=`${n}:${e}`;try{window.localStorage.removeItem(t)}catch{}return}if(Object.prototype.hasOwnProperty.call(i,e)){const n=Bb(),t={...i};delete t[e],Fb({data:t,updatedAt:Date.now(),version:1,level:n},{persist:!0}),y(`make dirty and removeItem: ${e}`)}})(e)},clear:()=>{C("clear"),"test"===g.get().name&&a.force("[storage] clear()"),(()=>{const{storagePrefix:e="famobi",isLegacyMode:n}=fb.get();if(y((n?"[legacy]":"")+" storage.clear"),n){const n=`${e}:`;for(const e in window.localStorage)if(e.startsWith(n))try{window.localStorage.removeItem(e)}catch{}return}Fb({data:{},updatedAt:Date.now(),version:1,level:null},{persist:!0}),y("make dirty and clear")})()},redeemCode:async(e,n)=>{var t,i;C("storage.redeemCode",e,JSON.stringify(n||{})),await(null==(i=null==(t=g.get().storage)?void 0:t.redeemCode)?void 0:i.call(t,e,n))}},iap:{getProducts:async()=>{var e,n;C("iap.getProducts");let t=[];return(null==NL?void 0:NL("iap"))?(t=await(null==(n=null==(e=g.get().iap)?void 0:e.getProducts)?void 0:n.call(e))||t,t):t},buyProduct:async(e,n)=>{var t,i;(null==NL?void 0:NL("iap"))&&await(null==(i=null==(t=g.get().iap)?void 0:t.buyProduct)?void 0:i.call(t,e,n))},consumeProduct:async e=>{var n,t;(null==NL?void 0:NL("iap"))&&await(null==(t=null==(n=g.get().iap)?void 0:n.consumeProduct)?void 0:t.call(n,e))},onEvent:e=>{var n,t;if(!(null==NL?void 0:NL("iap")))return;let i=BL.get(e);i||(i=n=>{var t,i,a;const o="PURCHASE_SUCCESS_EVENT"===n.type?"success":"fail",r=(null==(t=n.detail)?void 0:t.sku)||(null==(a=null==(i=n.detail)?void 0:i.purchase)?void 0:a.sku),s={iap_result:o};r&&(s.sku=r),lC("iap_purchase_result",s);const u=e(n);"PURCHASE_SUCCESS_EVENT"===n.type&&Promise.resolve(u).finally(()=>{(async()=>{await zw("iap")})()})},BL.set(e,i),null==(t=null==(n=g.get().iap)?void 0:n.onEvent)||t.call(n,i)),mv.set({callbacks:{...mv.get().callbacks,onIAPEvent:i}})}},auth:{getState:()=>(C("auth.getState"),Tw()),onStateChange:e=>
1(C("auth.onStateChange"),xw(e)),signIn:async(e="google")=>{C("auth.signIn",e);const n=!0===Tw().isAnonymous;n&&Ow();const t=await jw(e);return n&&!0===t.isAnonymous&&Qw(),t},signOut:async()=>(C("auth.signOut"),Ww()),showOverlay:async e=>{C("auth.showOverlay");const n=!0===Tw().isAnonymous&&"manage"!==(null==e?void 0:e.mode),t=e?{mode:e.mode,title:e.title,message:e.message}:void 0;n&&Ow(),await Uw(t),n&&!0===Tw().isAnonymous&&Qw()},hideOverlay:()=>{C("auth.hideOverlay"),gw(),kw(!1)},restoreSave:async()=>(C("auth.restoreSave"),dS())},track:xC,log:(...e)=>((...e)=>{d.get().loggingEnabled&&w("log",...e)})(...e),enableLogging:(e={loggingEnabled:!d.get().loggingEnabled})=>{((e=!0,n=!0)=>{nL=!!e,tL=!!n,sL(!0)})(!0),d.set({...e})},getInfo:(e="all")=>{const n=Date.now(),t=cC.get(),i=p.get(),a=Object.fromEntries(Object.keys(t.types).map(e=>{var a,o;if("banner"===e||"preroll"===e)return[];const r=t.types[e],s=(null==(o=null==(a=i.ads)?void 0:a[e])?void 0:o.cooldown)??0,u=r.lastCalled??0;return[e,{...r,isReady:JC(e,""),cooledDown:BC(e,!0),passiveCooledDown:RC(e,!0),cooldownRemaining:Math.max(0,(s<1e3?1e3*s:s)-(n-u))}]})),o=Object.fromEntries(Object.keys(i.features).map(e=>[e,NL(e)])),r={settings:JL(p.get()),sdk:JL(g.get()),ads:JL({...t,types:a}),auth:JL(Cw.get()),game:JL(mv.get()),console:JL(d.get()),scoring:JL(TL.get()),storage:JL(fb.get()),portal:JL(mS.get()),features:o};return"all"!==e&&e?r[e]:r},getCloudUserData:async()=>(C("getCloudUserData"),ey()),getConfig:e=>{var n,t;return C("getConfig",e),null==(t=(n=g.get()).getConfig)?void 0:t.call(n,e)},getVersionInfo:()=>{const{version:e,semanticVersion:n,sequentialVersion:t,exportedAt:i,label:a}=p.get();return{version:e,semanticVersion:n,sequentialVersion:t,exportedAt:i,label:a}},getSDKName:YL,addEventListener:(e,n)=>(C(`addEventListener('${e}')`),UC(e,n)),removeEventListener:(e,n)=>{C(`removeEventListener('${e}')`),zC(e,n)},clearEventListener:e=>{C(`clearEventListener('${e}')`),(e=>{a.log(`[events] clearEventListener(${e?`'${e}'`:""})`),void 0!==e?delete jC[e]:jC={}})(e)},sendEvent:async(e,n)=>{var t,i;return C("sendEvent"),await(null==(i=(t=g.get()).sendEvent)?void 0:i.call(t,e,n))??await $C(e,n)},stageStart:async(e,n)=>{var t,i;C(`stageStart(${e})`),EC("stageStart",[{name:"stage",value:e}]),mv.set({stage:e});const a={};Number.isFinite(e)&&Number.isInteger(e)&&(a.stage=e),lC("stage_start",dL(a,n),{includeLevel:!0}),await(null==(i=(t=g.get()).stageStart)?void 0:i.call(t,e,n))},stageComplete:async e=>
1RL("complete",e),stageOver:async e=>RL("fail",e),stageQuit:async e=>RL("quit",e),player:{getDisplayName:e=>{var n,t;C("player.getDisplayName");let i=null==(t=null==(n=g.get().player)?void 0:n.getDisplayName)?void 0:t.call(n,e);return"string"==typeof i&&(i=pT(i)),i},isLoggedIn:()=>{var e,n;return C("player.isLoggedIn"),(null==(n=null==(e=g.get().player)?void 0:e.isLoggedIn)?void 0:n.call(e))??!1},onLoginStateChange:e=>{var n,t,i,a;C("onLoginStateChange"),null==(t=null==(n=g.get().player)?void 0:n.onLoginStateChange)||t.call(n,e),null==e||e((null==(a=null==(i=g.get().player)?void 0:i.isLoggedIn)?void 0:a.call(i))??!1)},openLoginDialog:async()=>{var e,n;C("openLoginDialog"),await(null==(n=null==(e=g.get().player)?void 0:e.openLoginDialog)?void 0:n.call(e))}},gameEnd:mL,gameFail:async e=>mL("fail",e),stageEnd:RL,stageFail:async e=>RL("fail",e),gameFinished:async e=>{var n,t;C("gameFinished"),EC("gameFinished"),lC("game_finished",dL({},e)),await(null==(t=(n=g.get()).gameFinished)?void 0:t.call(n,e))}},wT=(e,n={})=>{const t=(()=>{if("undefined"==typeof window)return;const e=window.SitePlayBootstrap;return"function"==typeof(null==e?void 0:e.track)?e:void 0})();if(t)try{t.track("event",e,n)}catch(i){y(`[Microsite][GA4] ${e} failed`,i)}else y(`[Microsite][GA4] ${e} skipped: SitePlayBootstrap is unavailable`)},yT=(e,n)=>{var t;(null==(t=p.get().famobiTracking)?void 0:t.enabled)&&("rewarded"!==e||n)&&ee(I.AD,{adType:e,fill:n,blocked:void 0===window.googletag})},bT=()=>{const{level:e,score:n}=mv.get();return{..."number"==typeof e?{level:e}:{},..."number"==typeof n?{score_total:n}:{}}},ST=e=>{wT("game_end",{end_reason:e,...bT()})},CT=({adType:e,eventId:n,placementType:t,result:i,rewardGranted:a,durationMs:o,errorCode:r})=>{const s={ad_type:e,ad_event_key:n,ad_placement_type:t};"failed"!==i&&wT("ad_impression",{...s,...void 0===o?{}:{ad_duration_ms:Math.round(o)}}),wT("ad_result",{...s,ad_result:i,...void 0===a?{}:{reward_granted:a},...void 0===r?{}:{error_code:r}}),"interstitial"===e?yT("interstitial","failed"!==i):a&&yT("rewarded",!0)},LT={name:"microsite",init:async(e,n,t)=>{const i=(e=>{var n,t,i,a,o,r,s,u,l,c,h,d,g,p;const m=mS.get().microsite;return{googleAdClient:(null==(n=null==e?void 0:e.microsite)?void 0:n.googleAdClient)||(null==m?void 0:m.googleAdClient),testAdsEnabled:(null==(t=null==e?void 0:e.microsite)?void 0:t.testAdsEnabled)??(null==m?void 0:m.testAdsEnabled)??!1,gam:{parentNetworkCode:(null==(a=null==(i=null==e?void 0:e.microsite)?void 0:i.gam)?void 0:a.parentNetworkCode)||(null==(o=null==m?void 0:m.gam)?void 0:o.parentNetworkCode),childNetworkCode:(null==(s=null==(r=null==e?void 0:e.microsite)?void 0:r.gam)?void 0:s.childNetworkCode)||(null==(u=null==m?void 0:m.gam)?void 0:u.childNetworkCode),interstitialUnit:(null==(c=null==(l=null==e?void 0:e.microsite)?void 0:l.gam)?void 0:c.interstitialUnit)||(null==(h=null==m?void 0:m.gam)?void 0:h.interstitialUnit),rewardedUnit:(null==(g=null==(d=null==e?void 0:e.microsite)?void 0:d.gam)?void 0:g.rewardedUnit)||(null==(p=null==m?void 0:m.gam)?void 0:p.rewardedUnit)}}})(n);if(!(()=>{var e,n;const t=p.get().ads;return Boolean((null==(e=t.interstitial)?void 0:e.enabled)||(null==(n=t.rewarded)?void 0:n.enabled))})())return void y("[Microsite] ads disabled in settings, skip Google ads init");const a=i.gam.parentNetworkCode||k,o=i.gam.interstitialUnit||D,r=i.gam.rewardedUnit||x,s={childNetworkCode:i.gam.childNetworkCode,testMode:i.testAdsEnabled||!0===t};_(a,o,r,s)},gameReady:()=>{wT("game_ready")},gameStart:async e=>{wT("game_start","number"==typeof e?{level:e}:{})},gameComplete:async()=>{ST("complete")},gameOver:async()=>{ST("over")},gameQuit:async()=>{ST("quit")},async preloadAd(e){switch(e){case"interstitial":case"rewarded":return Y(e).catch(n=>(y(`[Microsite] ${e} preload failed ${n}`),!1));default:return Promise.reject()}},async showInterstitialAd(e,n){y(`[Microsite] showInterstitialAd (${e}, ${n})`);const t=vC(e,n),i=Date.now();wT("ad_request",{ad_type:"interstitial",ad_event_key:e,ad_placement_type:t});try{if(!(await(async()=>{if(!E.isReady)return y("[GAM] Interstitial request failed: GAM not ready."),!1;const e=E.ads.interstitial;return"function"==typeof e.showAdCallback?(y("[GAM] Showing Interstitial..."),new Promise(n=>{const t=setTimeout(()=>{b("[GAM] Interstitial cancelled, Timeout reached"),e.resolveShow=null,e.showAdCallback=null,e.preloadPromise=null,n(!1)},12e4);e.resolveShow=e=>{clearTimeout(t),n(e)},e.showAdCallback()})):(y("[GAM] Interstitial not ready yet."),!1)})()))throw CT({adType:"interstitial",eventId:e,placementType:t,result:"failed",errorCode:"show_failed"}),new Error("[Microsite] Interstitial ad did not display");CT({adType:"interstitial",eventId:e,placementType:t,result:"closed",durationMs:Date.now()-i})}catch(a){if(a instanceof Error&&"[Microsite] Interstitial ad did not display"===a.message)throw a;throw CT({adType:"interstitial",eventId:e,placementType:t,result:"failed",errorCode:"show_failed"}),a}}
1,async showRewardedAd(e){y(`[Microsite] showRewardedAd (${e})`);const n="reward",t=Date.now();wT("ad_request",{ad_type:"rewarded",ad_event_key:e,ad_placement_type:n});try{const i=await(async()=>{if(!E.isReady)return y("[GAM] Rewarded request failed: GAM not ready."),{isRewardGranted:!1,wasShown:!1};const e=E.ads.rewarded;return"function"==typeof e.showAdCallback?(y("[GAM] Showing Rewarded Ad..."),e.isRewardGranted=!1,new Promise(n=>{const t=setTimeout(()=>{b("[GAM] Rewarded cancelled, Timeout reached"),e.resolveShow=null,e.showAdCallback=null,e.preloadPromise=null,n({isRewardGranted:!1,wasShown:!1})},18e4);e.resolveShow=e=>{clearTimeout(t),n({isRewardGranted:e,wasShown:!0})},e.showAdCallback()})):(y("[GAM] Rewarded Ad not ready yet."),{isRewardGranted:!1,wasShown:!1})})();if(!i.wasShown)throw CT({adType:"rewarded",eventId:e,placementType:n,result:"failed",rewardGranted:!1,errorCode:"show_failed"}),new Error("[Microsite] Rewarded ad did not display");return CT({adType:"rewarded",eventId:e,placementType:n,result:i.isRewardGranted?"completed":"closed",rewardGranted:i.isRewardGranted,durationMs:Date.now()-t}),{isRewardGranted:i.isRewardGranted}}catch(i){if(i instanceof Error&&"[Microsite] Rewarded ad did not display"===i.message)throw i;throw CT({adType:"rewarded",eventId:e,placementType:n,result:"failed",rewardGranted:!1,errorCode:"show_failed"}),i}},hasRewardedAd:async()=>E.isReady&&"function"==typeof E.ads.rewarded.showAdCallback,iap:{getProducts:async()=>(a.log("[microsite][iap] getProducts()"),await(async()=>ae()?(await Ny()).map(e=>({sku:e.sku,displayPrice:e.price.amount+" "+e.price.currency,currencyImageURI:void 0})):[])().catch(e=>{a.warn("[microsite][iap]",e)})||[]),buyProduct:async(e,n)=>(a.log(`[microsite][iap] buyProduct('${e}')`,n),mb(e).catch(e=>{a.warn("[microsite][iap]",e)})),onEvent(e){a.log("[microsite][iap] onEvent()"),(e=>{ae()?"function"==typeof e&&(a.log("[iap][xsolla] onEvent handler set"),db(),lb(e)):a.log("[iap][xsolla] onEvent registration skipped because IAP feature is disabled")})(e)},consumeProduct:async e=>(a.log("[microsite][iap] consumeProduct()",JSON.stringify(e)),vb(e).catch(e=>{a.warn("[microsite][iap]",e)}))},storage:{redeemCode:async(e,n)=>(a.log(`[microsite][storage] redeemCode('${e}')`),pS(e,n).catch(e=>{a.warn("[microsite][storage]",e)}))}};var TT;TT=LT,g.set({...TT}),window.gameInterface={...TT,...vT},window.gameInterface&&(window.GameInterface=window.gameInterface)}();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.