");const S=q?q.createHTML(o):o;if(Ve===ye)try{l=new sn().parseFromString(S,Re)}catch{}if(!l||!l.documentElement){l=et.createDocument(Ve,"template",null);try{l.documentElement.innerHTML=H?qe:S}catch{}}const K=l.body||l.documentElement;return o&&u&&K.insertBefore(M.createTextNode(u),K.childNodes[0]||null),Ve===ye?Pe.call(l,We?"html":"body")[0]:We?l.documentElement:K},Vn=function(o){return se.call(o.ownerDocument||o,o,ft.SHOW_ELEMENT|ft.SHOW_COMMENT|ft.SHOW_TEXT|ft.SHOW_PROCESSING_INSTRUCTION|ft.SHOW_CDATA_SECTION,null)},Gn=function(o){return o instanceof dr&&(typeof o.__depth<"u"&&typeof o.__depth!="number"||typeof o.__removalCount<"u"&&typeof o.__removalCount!="number"||typeof o.nodeName!="string"||typeof o.textContent!="string"||typeof o.removeChild!="function"||!(o.attributes instanceof cr)||typeof o.removeAttribute!="function"||typeof o.setAttribute!="function"||typeof o.namespaceURI!="string"||typeof o.insertBefore!="function"||typeof o.hasChildNodes!="function")},jn=function(o){return typeof an=="function"&&o instanceof an},xe=function(o,l,u){ie[o]&&m(ie[o],S=>{S.call(f,l,u,Ge)})},$n=function(o){let l=null;if(xe("beforeSanitizeElements",o,null),Gn(o))return de(o),!0;const u=$(o.nodeName);if(xe("uponSanitizeElement",o,{tagName:u,allowedTags:j}),o.hasChildNodes()&&!jn(o.firstElementChild)&&Q(/<[/\w]/g,o.innerHTML)&&Q(/<[/\w]/g,o.textContent)||o.nodeType===Ee.progressingInstruction||we&&o.nodeType===Ee.comment&&Q(/<[/\w]/g,o.data))return de(o),!0;if(!j[u]||Fe[u]){if(!Fe[u]&&mn(u)&&(V.tagNameCheck instanceof RegExp&&Q(V.tagNameCheck,u)||V.tagNameCheck instanceof Function&&V.tagNameCheck(u)))return!1;if(He&&!ge[u]){const S=Oe(o)||o.parentNode,K=On(o)||o.childNodes;if(K&&S){const Y=K.length;for(let ee=Y-1;ee>=0;--ee){const te=In(K[ee],!0);te.__removalCount=(o.__removalCount||0)+1,S.insertBefore(te,An(o))}}}return de(o),!0}return o instanceof Ln&&!pr(o)||(u==="noscript"||u==="noembed"||u==="noframes")&&Q(/<\/no(script|embed|frames)/i,o.innerHTML)?(de(o),!0):(ze&&o.nodeType===Ee.text&&(l=o.textContent,m([nt,rt,_t],S=>{l=ce(l,S," ")}),o.textContent!==l&&(J(f.removed,{element:o.cloneNode()}),o.textContent=l)),xe("afterSanitizeElements",o,null),!1)},be=function(o,l,u){if(yt&&(l==="id"||l==="name")&&(u in M||u in kt||u==="__depth"||u==="__removalCount"))return!1;if(!(Mt&&!wt[l]&&Q(Wn,l))){if(!(it&&Q(ln,l))){if(!G[l]||wt[l]){if(!(mn(o)&&(V.tagNameCheck instanceof RegExp&&Q(V.tagNameCheck,o)||V.tagNameCheck instanceof Function&&V.tagNameCheck(o))&&(V.attributeNameCheck instanceof RegExp&&Q(V.attributeNameCheck,l)||V.attributeNameCheck instanceof Function&&V.attributeNameCheck(l))||l==="is"&&V.allowCustomizedBuiltInElements&&(V.tagNameCheck instanceof RegExp&&Q(V.tagNameCheck,u)||V.tagNameCheck instanceof Function&&V.tagNameCheck(u))))return!1}else if(!at[l]){if(!Q(Rn,ce(u,Wt,""))){if(!((l==="src"||l==="xlink:href"||l==="href")&&o!=="script"&&B(u,"data:")===0&&Dt[o])){if(!(hn&&!Q(Mn,ce(u,Wt,"")))){if(u)return!1}}}}}}return!0},mn=function(o){return o!=="annotation-xml"&&_e(o,hr)},_n=function(o){xe("beforeSanitizeAttributes",o,null);const{attributes:l}=o;if(!l)return;const u={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:G};let S=l.length;for(;S--;){const K=l[S],{name:Y,namespaceURI:ee,value:te}=K,dt=$(Y);let ne=Y==="value"?te:ut(te);if(u.attrName=dt,u.attrValue=ne,u.keepAttr=!0,u.forceKeepAttr=void 0,xe("uponSanitizeAttribute",o,u),ne=u.attrValue,u.forceKeepAttr||(zt(Y,o),!u.keepAttr))continue;if(!un&&Q(/\/>/i,ne)){zt(Y,o);continue}if(we&&Q(/((--!?|])>)|<\/(style|title)/i,ne)){zt(Y,o);continue}ze&&m([nt,rt,_t],vn=>{ne=ce(ne,vn," ")});const wn=$(o.nodeName);if(be(wn,dt,ne)){if(bt&&(dt==="id"||dt==="name")&&(zt(Y,o),ne=St+ne),q&&typeof mt=="object"&&typeof mt.getAttributeType=="function"&&!ee)switch(mt.getAttributeType(wn,dt)){case"TrustedHTML":{ne=q.createHTML(ne);break}case"TrustedScriptURL":{ne=q.createScriptURL(ne);break}}try{ee?o.setAttributeNS(ee,Y,ne):o.setAttribute(Y,ne),Gn(o)?de(o):N(f.removed)}catch{}}}xe("afterSanitizeAttributes",o,null)},Yn=function g(o){let l=null;const u=Vn(o);for(xe("beforeSanitizeShadowDOM",o,null);l=u.nextNode();){if(xe("uponSanitizeShadowNode",l,null),$n(l))continue;const S=Oe(l);l.nodeType===Ee.element&&(S&&S.__depth?l.__depth=(l.__removalCount||0)+S.__depth+1:l.__depth=1),(l.__depth>=fn||l.__depth<0||Zt(l.__depth))&&de(l),l.content instanceof Te&&(l.content.__depth=l.__depth,g(l.content)),_n(l)}xe("afterSanitizeShadowDOM",o,null)};return f.sanitize=function(g){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},l=null,u=null,S=null,K=null;if(H=!g,H&&(g=""),u=l.ownerDocument.importNode(g,!0),u.nodeType===Ee.element&&u.nodeName==="BODY"||u.nodeName==="HTML"?l=u:l.appendChild(u);else{if(!Me&&!ze&&!We&&g.indexOf("<")===-1)return q&&pe?q.createHTML(g):g;if(l=Hn(g),!l)return Me?null:pe?qe:""}l&&Be&&de(l.firstChild);const Y=Vn(ot?g:l);for(;S=Y.nextNode();){if($n(S))continue;const te=Oe(S);S.nodeType===Ee.element&&(te&&te.__depth?S.__depth=(S.__removalCount||0)+te.__depth+1:S.__depth=1),(S.__depth>=fn||S.__depth<0||Zt(S.__depth))&&de(S),S.content instanceof Te&&(S.content.__depth=S.__depth,Yn(S.content)),_n(S)}if(ot)return g;if(Me){if(vt)for(K=tt.call(l.ownerDocument);l.firstChild;)K.appendChild(l.firstChild);else K=l;return(G.shadowroot||G.shadowrootmode)&&(K=Pn.call(O,K,!0)),K}let ee=We?l.outerHTML:l.innerHTML;return We&&j["!doctype"]&&l.ownerDocument&&l.ownerDocument.doctype&&l.ownerDocument.doctype.name&&Q(xn,l.ownerDocument.doctype.name)&&(ee=" `+ee),ze&&m([nt,rt,_t],te=>{ee=ce(ee,te," ")}),q&&pe?q.createHTML(ee):ee},f.setConfig=function(){let g=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Ft(g),Rt=!0},f.clearConfig=function(){Ge=null,Rt=!1},f.isValidAttribute=function(g,o,l){Ge||Ft({});const u=$(g),S=$(o);return be(u,S,l)},f.addHook=function(g,o){typeof o=="function"&&(ie[g]=ie[g]||[],J(ie[g],o))},f.removeHook=function(g){if(ie[g])return N(ie[g])},f.removeHooks=function(g){ie[g]&&(ie[g]=[])},f.removeAllHooks=function(){ie={}},f}var on=Pt();return on})},885262:(p,P,h)=>{var I,b;/*! * JavaScript Cookie v2.2.1 * https://github.com/js-cookie/js-cookie * * Copyright 2006, 2015 Klaus Hartl & Fagner Brack * Released under the MIT license */(function(k){var v;if(I=k,b=typeof I=="function"?I.call(P,h,P,p):I,b!==void 0&&(p.exports=b),v=!0,p.exports=k(),v=!0,!v){var C=window.Cookies,A=window.Cookies=k();A.noConflict=function(){return window.Cookies=C,A}}})(function(){function k(){for(var A=0,w={};A"u")){z=k({path:"/"},w.defaults,z),typeof z.expires=="number"&&(z.expires=new Date(new Date*1+z.expires*864e5)),z.expires=z.expires?z.expires.toUTCString():"";try{var Ce=JSON.stringify(J);/^[\{\[]/.test(Ce)&&(J=Ce)}catch{}J=A.write?A.write(J,N):encodeURIComponent(String(J)).replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g,decodeURIComponent),N=encodeURIComponent(String(N)).replace(/%(23|24|26|2B|5E|60|7C)/g,decodeURIComponent).replace(/[\(\)]/g,escape);var _e="";for(var ce in z)z[ce]&&(_e+="; "+ce,z[ce]!==!0&&(_e+="="+z[ce].split(";")[0]));return document.cookie=N+"="+J+_e}}function m(N,J){if(!(typeof document>"u")){for(var z={},Ce=document.cookie?document.cookie.split("; "):[],_e=0;_e{var I=h(577139),b=h(686019),k="[object Date]";function v(C){return b(C)&&I(C)==k}p.exports=v},907113:(p,P,h)=>{var I=h(139136),b=h(998458),k=h(9437),v=h(360982);function C(A,w){var D=v(A)?I:b;return D(A,k(w))}p.exports=C},774899:(p,P,h)=>{var I=h(312491),b=h(33876),k=h(653602),v=k&&k.isDate,C=v?b(v):I;p.exports=C},66551:(p,P,h)=>{var I=h(577139),b=h(866476),k="[object AsyncFunction]",v="[object Function]",C="[object GeneratorFunction]",A="[object Proxy]";function w(D){if(!b(D))return!1;var m=I(D);return m==v||m==C||m==k||m==A}p.exports=w},866476:p=>{function P(h){var I=typeof h;return h!=null&&(I=="object"||I=="function")}p.exports=P},951291:(p,P,h)=>{var I=h(994454),b=h(16483),k=h(617905);function v(C){return k(C)?I(C):b(C)}p.exports=v},899115:(p,P,h)=>{"use strict";function I(e){return!e||typeof e=="string"||typeof e=="number"||typeof e=="boolean"||typeof e=="bigint"||typeof e=="symbol"}function b(e){for(const t in e.console){const n=t;if(typeof e.console[n]!="function"||n==="Console"||n==="assert"||n==="dir"||n==="dirxml"||n==="table")continue;const r=e.console[n];if(n==="error"){const i=e.console;i.orig={error:r}}e.console[n]=function(...i){return r(...i.map(a=>{if(I(a))return a;try{return JSON.stringify(a)}catch{return`Can't stringify ${a} - circular reference`}}))},Object.defineProperty(e.console[n],"name",{value:n,writable:!1})}}function k(e){if(e instanceof Error){const t=e.stack,n=e.message,r=e.code;Error.captureStackTrace?.(e),Object.setPrototypeOf(e,{});for(const i of Reflect.ownKeys(e))delete e[i];e.message=I(n)?n:JSON.stringify(n),e.stack=I(t)?t:JSON.stringify(t),e.code=I(r)?r:JSON.stringify(r),Reflect.preventExtensions(e)}}function v(e){return function(n){const r=n&&("error"in n&&n.error||"reason"in n&&n.reason);return e.setTimeout(()=>k(r),0),console.error("Unhandled error/rejection",n),n&&n.preventDefault&&n.preventDefault(),!0}}function C(e){b(e);const t=v(e);e.addEventListener("unhandledrejection",t),e.addEventListener("error",t)}function A(e){e._leakOverrides||(e._leakOverrides=!0,C(e))}var w=function(e){return e.Cold="Cold",e.Warm="Warm",e.Rollback="Rollback",e.Update="Update",e.Local="Local",e.Container="Container",e.Unknown="Unknown",e}({}),D=function(e){return e.SessionID="tmp.sessionId",e.DeviceID="tmp.deviceId",e.IsRelaunchFromOOPs="tmp.relaunchFromOOPs",e.PreAuthUserID="tmp.preAuthUserId",e.T2WebOptInSessionId="tmp.t2WebOptInSessionId",e.AttemptedWebBootCount="tmp.numT2WebBootAttempts",e}({}),m=function(e){return e.IndexPageReadStart="read-index-html",e.IndexPageSlowReadStart="slow-read-index-html",e.IndexPageStart="execute-index-html-script",e.CoreModuleLoaded="exp_loader_core_module_loaded",e.NotifyDesktop="exp_loader_notified_desktop",e.ConfigLoaded="exp_loader_config_loaded",e.MainChunksLoadingStart="exp_loader_load_bundles_start",e.MainChunksLoadingStop="exp_loader_load_bundles_stop",e.IndexPageStop="exp_loader_index_stop",e.MissingDeepLink="exp_loader_missing_deep_link",e.AsyncEntryModuleFederationUrlsInited="exp_loader_init_module_federation_remote_urls_failure",e.AsyncEntryDownloadStart="exp_loader_async_entry_load_start",e.AsyncEntryDownloadStop="exp_loader_async_entry_load_stop",e.AsyncEntryImportFailure="exp_loader_import_async_entry_failure",e.ActivateAppStart="exp_loader_start_activate_app",e.ClientStartStop="client_start_stop",e.RegisterServiceWorker="exp_loader_register_service_worker",e.TriggerSWCacheMainChunks="exp_loader_trigger_sw_main_chunks_cache",e}({}),N=function(e){return e.ExpLoaderFailure="ExpLoaderFailure",e.LoadBundlesFailure="LoadBundlesFailure",e.ParseIndexPageFailure="ParseIndexPageFailure",e.CoreStartTimeout="CoreStartTimeout",e.PreTelemetryCoreInitFailure="PreTelemetryCoreInitFailure",e}({}),J=function(e){return e.Windows="windows",e.Mac="mac",e.Linux="linux",e.ChromeOS="chromeos",e.Android="android",e.IOS="ios",e.WindowsPhone="windowsphone",e.Unknown="unknown",e}({}),z=function(e){return e.Web="web",e.PWA="pwa",e.Desktop="desktop",e.CDLWorker="cdlworker",e.Embed="embed",e.Maglev="maglev",e.OutlookWeb="Outlook Web",e.OutlookDesktop="Outlook Desktop",e.OfficeWeb="Office Web",e.OfficeDesktop="Office Desktop",e.WordWeb="Word Web",e.WordDesktop="Word Desktop",e.ExcelWeb="Excel Web",e.ExcelDesktop="Excel Desktop",e.PowerPointWeb="PowerPoint Web",e.PowerPointDesktop="PowerPoint Desktop",e}({}),Ce=function(e){return e.Embed="embed",e}({}),_e=function(e){return e.Outlook="outlook",e.Unknown="unknown",e}({}),ce=function(e){return e.Edge="edge",e.Safari="safari",e.Chrome="chrome",e.Firefox="firefox",e.Electron="electron",e.Unknown="unknown",e}({}),B=function(e){return e[e.Web=1415]="Web",e[e.Desktop=27]="Desktop",e[e.Mac=28]="Mac",e[e.HoloLens=36]="HoloLens",e[e.Linux=41]="Linux",e[e.Rigel=34]="Rigel",e[e.SurfaceHub=35]="SurfaceHub",e[e.SurfaceHub2=38]="SurfaceHub2",e[e.Maglev=48]="Maglev",e[e.MaglevT21=49]="MaglevT21",e[e.MaglevMacT21=50]="MaglevMacT21",e[e.MaglevRoomsT21=51]="MaglevRoomsT21",e[e.MetaOsOffice=5500]="MetaOsOffice",e[e.MetaOsOutlook=5501]="MetaOsOutlook",e[e.MetaOsBing=5502]="MetaOsBing",e[e.MetaOsCopilot=5503]="MetaOsCopilot",e[e.MetaOsEdgeSidebar=5504]="MetaOsEdgeSidebar",e[e.MetaOsExcel=5505]="MetaOsExcel",e[e.MetaOsLoop=5506]="MetaOsLoop",e[e.MetaOsPowerpoint=5507]="MetaOsPowerpoint",e[e.MetaOsWindows=5508]="MetaOsWindows",e[e.MetaOsWord=5509]="MetaOsWord",e[e.TV=3623]="TV",e[e.Automotive=3624]="Automotive",e[e.SttOutlookWeb=5600]="SttOutlookWeb",e}({}),ut=function(e){return e.Supported="Supported",e.Unsupported="Unsupported",e.Unknown="Unknown",e}({});const ae="prod",Q="infer",Ne=2,Zt=/(maglev|Teams)\/(\d+\.\d+\.\d+\.\d+)/,re="teams-precache-v2";function ir(e){return e.includes("local")?"local":e.includes("-oncdn-")?"container":"production"}function E(e,t){try{const r=Sn(e)?.dataset?.config;return r?JSON.parse(decodeURIComponent(r)):{}}catch(n){const r=`Failed to parse head-data config with error: ${n}`;t?.errorToTelemetry?t?.errorToTelemetry?.(r,"webclient_framework_head_config",void 0,!0):t?.error?.(r)}return{}}function Sn(e){const t=e?.document.getElementsByTagName("head");if(t)return t[0]}function ke(e){const t=e?.navigator.userAgent||"";return t.indexOf("maglev/")!==-1||t.indexOf("Teams/")!==-1}function pt(e){const t=/(maglev|Teams)\/(\d+\.\d+\.\d+\.\d+)(?:\/| \()(\d+)(?:\s|\)|$)/,n=e.match(t),r=3;if(n&&n.length>r)switch(n[r]){case"49":return B.MaglevT21;case"50":return B.MaglevMacT21;case"51":return B.MaglevRoomsT21}return B.Maglev}const Jt=e=>pt(e?.navigator.userAgent||"");function Kt(e){const t=e.navigator.userAgent.match(Zt);return t&&t.length>Ne?t[Ne]:void 0}function It(e,t){let n=t?.environment||ae;return n===Q&&(n=Xt(e)),n}function or(e){const t=e.config.clientType;return t!==ClientType.Web?t:e.config.isPwa?ClientType.PWA:t}const Qt=e=>e==="UpgradeNonBlocking"||e==="Warm",ar=e=>e==="Clean"||e==="UpgradeBlocking"||e===void 0||e===null;function Xt(e){return e.location.origin.includes("gov")?"gcchigh":e.location.origin.includes("dod")?"dod":e.location.origin.includes("cn")?"gallatin":e.location.origin.includes("live")?"life":"prod"}function Ue(e){return e.navigator?.serviceWorker?.controller?.state==="activated"}function qt(e,t){const n=e&&Ue(t)&&t.performance.getEntriesByType("resource");if(n&&n.length>0){const r=n.find(i=>i.name===e);if(r&&r.workerStart>0)return!0}return!1}async function gt(e,t,n){let r=!1;try{e&&Ue(t)&&(r=await t.caches.match(e,{cacheName:re})!==void 0)}catch{n?.error("Checking assets in sw cache failed")}return r}async function At(e,t,n){let r=!1;try{if(e&&Ue(t)){const i=await t.caches.open(re);if(i){const a=await i.keys(),s=new RegExp(`https:\\/\\/staticsint\\.teams\\.cdn\\.office\\.net\\/teams-modular-packages\\/hashed-assets\\/${e}-[a-f0-9]{16}\\.js$`,"i");a.find(c=>s.test(c.url))!==void 0&&(r=!0)}}}catch{n?.error(`Checking assets in sw cache by name failed, chunk name: ${e}`)}return r}const Cn=5e3;async function kn(e,t,n){let r="";try{if(t){let i=0;const a=new Promise(c=>{i=e.setTimeout(()=>{c()},Cn)}),s=async()=>{r=await En(t,"getSWVersion"),e.clearTimeout(i),i=0};await Promise.race([s,a])}}catch{n?.error("Get registerred SW version failed.")}return r}async function En(e,t){return new Promise((n,r)=>{const i=new MessageChannel;i.port1.onmessage=a=>{a.data.error?r(a.data.error):n(a.data)},e.postMessage(t,[i.port2])})}async function sr(e,t){let n;if("serviceWorker"in e.navigator)try{const r=await e.navigator.serviceWorker.getRegistration(t);r&&(r.active?n=r.active:r.waiting?n=r.waiting:r.installing&&(n=r.installing))}catch{}return n?.state||"NotFound"}function Tn(e,t,n,r){let i;if(en([t,n],r))try{r.measure(e,t,n),i=r.getEntriesByName(e)[0]?.duration,i&&(i=Math.round(i)),r.clearMeasures(e)}catch{i=void 0}return i}function en(e,t){return!e.some(n=>t.getEntriesByName(n).length<=0)}function Ot(e,t){const n=t.getEntriesByName(e);if(n&&n.length>0)return n[0]}function tn(e,t){Ot(e,t)===void 0&&t.mark(e)}function xn(e,t,n,r){e.measure(t,n,r),e.clearMeasures(t),e.clearMarks(n),r&&e.clearMarks(r)}function lr(e,t,n){e.mark(t,n),e.clearMarks(t)}const Ae="tmp",Ee=3,nn=2,rn=4e4,Pt=145e3,on=135e3,L=3,f=3e4,M=`${Ae}.experienceLoaderOverrides`,O=`${Ae}.numT2WebBootAttempts`,X=`${Ae}.lastT2WebBootAttemptRecordTime`,Te=`${Ae}.isOptedIntoT2Web`,Qe=`${Ae}.lastT2WebOptOutInfo`,an="ts.previousSessionLogs",Ln="tmp.previousSessionLogs",ft="tmp.previousSessionErrorLogs",cr="tmp.forceT2Only",dr="tmp.wasAutoOptedIntoT2Web",sn="clientexperience",mt="ocdiRedirect",Xe="ocdiRedirect",In=";path=/;secure;samesite=none;partitioned",An="Thu, 01 Jan 1970 00:00:00 GMT",On=3e4,Oe="tmp.globalScriptErrorFromPreviousSession",q=1e3,qe="/diagnostics/network",et=[m.IndexPageReadStart,m.IndexPageStart,m.CoreModuleLoaded,m.NotifyDesktop,m.ConfigLoaded,m.MainChunksLoadingStart,m.MainChunksLoadingStop,m.IndexPageStop,m.AsyncEntryDownloadStart,m.AsyncEntryModuleFederationUrlsInited,m.AsyncEntryDownloadStop];var se=function(e){return e.Failure="failure",e.Timeout="timeout",e.Abandoned="abandoned",e}({}),tt=function(e){return e.ClientStart="client_start",e.WebClientInputInvalid="web_client_input_invalid",e.ShowPreCoreErrorPage="precore_error_page",e.FallbackToT1Web="fallback_to_t1_web",e.ClearSWForClientStartFailure="clear_sw_for_client_start_failure",e.SidecarScriptError="sidecar-script-error",e.SidecarSemverMismatch="sidecar-semver-mismatch",e.SidecarCoreError="sidecar-core-error",e}({});function Pe(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class Pn{async loadBuild(t){this.logger.debugNoPii("Build manifest:",t);const{asyncEntry:n,chunks:r,buildTimeConfigs:i}=t;if(i){const a=`config-${this.platformService.environment}`,s=i.filter(c=>c.path.indexOf(a)>=0);if(s.length>0){const c=s[0],d=this.globalWindow.document.createElement("link");d.href=c.path,d.as="script",d.rel="preload",c.integrity&&(d.integrity=c.integrity),d.crossOrigin="anonymous",this.globalWindow.document.head.appendChild(d)}}if(r){const a=!!this.globalWindow.localStorage.getItem(Oe);a&&this.globalWindow.localStorage.removeItem(Oe),this.globalWindow.performance.mark(m.MainChunksLoadingStart);try{this.diagnosticsService.persistDiagnostics();let s=[];if(n?.chunks?.length){const x=n.chunks.map(R=>this.loadScriptWithRetry(R,Ee,nn,a));s=await Promise.all(x)}let c=r;this.platformService.enableSriForDynamicImports||(c=r.filter(x=>!x.isIntegritiesManifest));const d=c.map(x=>this.loadScriptWithRetry(x,Ee,nn,a)),_=await Promise.all(d),T=[...s,..._];this.telemetryService.generateLoadBundlesRetryInfo(T),tn(m.MainChunksLoadingStop,this.globalWindow.performance)}catch(s){const c=s.errorMessage||s,d=s.errorType||se.Failure,_=s.isLoadFromSWCache||"";throw this.logger.errorNoPii(s),this.globalWindow.performance.mark(m.MainChunksLoadingStop),await this.telemetryService.failClientStartScenarioWithMarks([m.IndexPageStart,m.MainChunksLoadingStart],d,{reason:c,isLoadedFromServiceWorkerCache:_}),s}}else this.logger.errorNoPii("Something wrong, there is no main chunks to load")}async loadScriptWithRetry(t,n,r,i){return new Promise(async(a,s)=>{let c=0,d=0,_=!1,T={};for(;!_&&c<=n&&d<=r;)try{await this.loadScriptInternal(t,c,i),_=!0}catch(x){c++,x.errorType===se.Timeout&&d++,T=x}_&&a({retryCount:c,retryDetails:t.path}),s(T)})}async loadScriptInternal(t,n,r){return new Promise((i,a)=>{const s=this.globalWindow.document.createElement("script"),c=this.globalWindow.setTimeout(async()=>{const x=`Download timeout: ${t.path}`;this.logger.warnNoPii(x);const R=await gt(t.path,this.globalWindow),oe={errorMessage:x,errorType:se.Timeout,isLoadFromSWCache:R.toString()};a(oe)},On);s.onload=async()=>{c&&this.globalWindow.clearTimeout(c),i()},s.onerror=async x=>{c&&this.globalWindow.clearTimeout(c);const R=`Failed to load: ${t.path} ${typeof x=="string"?x:x instanceof ErrorEvent?x.message:""}`.trim();this.logger.errorNoPii(R),this.globalWindow.document.head.removeChild(s);const oe=await gt(t.path,this.globalWindow),me={errorMessage:R,errorType:se.Failure,isLoadFromSWCache:oe.toString()};a(me)},t.integrity&&(s.integrity=t.integrity,s.crossOrigin="anonymous"),s.noModule=t.isPolyfill,s.defer=!0,s.async=!1,s.type=t.isTypeModule?"module":"";let d="";(n>0||r)&&(d=`?cb=${Date.now()}`);const _=`${t.path}${d}`;this.logger.logNoPii(`Trying to load: ${_}`);let T;this.urlPolicy?T=this.urlPolicy.createScriptURL(_):T=this.createTrustedChunkSrcFunction(_),T.toString()?s.src=T:a(`Load ${_} was failed.`),this.globalWindow.document.head.appendChild(s)})}createTrustedChunkSrcFunction(t){let n;return t.startsWith("/")?n=new URL(t,this.staticsPath):n=new URL(t),this.staticsPath?this.staticsPath===n.origin&&n.protocol==="https:"?t:"":(this.logger.errorNoPii("staticPath is not valid"),"")}constructor(t,n,r,i,a){Pe(this,"globalWindow",void 0),Pe(this,"telemetryService",void 0),Pe(this,"diagnosticsService",void 0),Pe(this,"platformService",void 0),Pe(this,"logger",void 0),Pe(this,"urlPolicy",void 0),Pe(this,"staticsPath",void 0),this.globalWindow=t,this.telemetryService=r,this.diagnosticsService=i,this.platformService=a,this.logger=n.newLogger("BuildLoader","frameworks-loader");const s=this.globalWindow.__webpack_public_path__;this.staticsPath="";try{if(s){const c=new URL(s);this.staticsPath=c.origin}else this.logger.errorNoPii("staticPath is not valid")}catch{this.logger.warnNoPii(`Failed to parse dynamic staticsPath origin from '${s}'`)}this.urlPolicy=window.trustedTypes?.createPolicy("@msteams/frameworks-loader#load-build-chunk",{createScriptURL:this.createTrustedChunkSrcFunction.bind(this)})}}var ie=function(e){return e[e.loadingApp=0]="loadingApp",e[e.coreInit=1]="coreInit",e}({});const nt="tmp.default.default.react-web-client.",rt="previousSuccessfulInstalledBuild",_t="main-chunks-cached";var Wn=function(e){return e.Perf="perf",e.Scenario="scenarions",e.Logging="loggingns",e.Heartbeat="heartbeatns",e.Http="httpns",e.UserBI="userbins",e.Endpoint="endpointns",e}({}),ln=function(e){return e.ExpLoader="ExpLoader",e.Core="Core",e.Auth="Auth",e.App="App",e}({});const Mn=/[xy]/g;function Wt(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(Mn,e=>{const t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function hr(e,t){try{if(e!==void 0&&typeof e=="number")return t===LogResultType.None?!(e&LogResultType.LoggedInConsole):!!(e&t)}catch{console.log("Not valid")}}function Rn(e,t){return t|e}var j=h(907113),cn=h.n(j),G='"',dn="-",V="*",Fe="prototype",wt=Object[Fe].hasOwnProperty;function it(e,t){if(e)for(var n in e)wt.call(e,n)&&t.call(e,n,e[n])}function Mt(e,t){var n="https://browser.events.data.microsoft.com/OneCollector/1.0/",r;if(t)if(t.endpointUrl&&(n=t.endpointUrl),t.apikey)r=t.apikey;else return"invalid ApiKey (aka tenant-token)";var i=un(new Date),a=0;if(e===null||typeof e>"u")return"input is null or undefined";if(e.name===null||typeof e.name>"u")return"telemetry item expects valid name";e.iKey===null||typeof e.iKey>"u"?e.iKey=ot(r):r.indexOf(e.iKey)!=0&&console.warn("event iKey does not match the apikey (tenant-token). There may be issues ingesting telemetry"),(e.time===null||typeof e.time>"u")&&(e.time=i);var s=e.baseData,c=e.data,d=pe("name",e.name,!0);return d+=pe("time",e.time),d+=pe("ver",e.ver),d+=pe("iKey","o:"+e.iKey),d+="&apikey="+r,e.ext&&it(e.ext,function(_,T){it(T,function(x,R){if(yt(R)){var oe=at(x,R,!0);yt(oe)&&(d+=pe("ext."+_+"."+x,oe.value))}})}),it(s,function(_,T){var x=dn+_,R=at(_,T,!0);R&&(a=Me(R.value,R.kind,R.propertyType),a>0&&(x=x+"*"+a.toString()),d+=pe(x,R.value))}),it(c,function(_,T){var x=V+_,R=at(_,T,!0);R&&(a=Me(R.value,R.kind,R.propertyType),a>0&&(x=x+"*"+a.toString()),d+=pe(x,R.value))}),n+"t.js?"+d}function hn(e){return Object[Fe].toString.call(e)==="[object Date]"}function un(e){if(hn(e)){var t=function(n){var r=String(n);return r.length===1&&(r="0"+r),r};return e.getUTCFullYear()+"-"+t(e.getUTCMonth()+1)+"-"+t(e.getUTCDate())+"T"+t(e.getUTCHours())+":"+t(e.getUTCMinutes())+":"+t(e.getUTCSeconds())+"."+String((e.getUTCMilliseconds()/1e3).toFixed(3)).slice(2,5)+"Z"}}function ze(e){return e<<13}function we(e){return He(e,"number")}function We(e){return e<<5}function Rt(e){return!!(we(e)&&e>=0&&e<=9)}function Be(e){return He(e,"boolean")}function Me(e,t,n){var r=-1;return St(e)?r:(t&&t>0&&(t===32?r=ze(1):t<=13&&(r=We(t))),Dt(n)&&Rt(n)?(r===-1&&(r=0),r|n):(ge(e)&&(e=e[0]),r!==-1?r|vt(e):we(e)?6:r))}function vt(e){return St(e)?-1:we(e)?6:ve(e)?1:Be(e)?7:-1}function pe(e,t,n){if(n===void 0&&(n=!1),yt(t)){var r;return n?r="qsp=true&":r="&",we(t)||Be(t)?r+=e+"="+t:typeof t=="object"?r+=e+"="+JSON.stringify(t):r+=e+"="+G+encodeURIComponent(t)+G,r}else return""}function yt(e){return!(bt(e)||e==="")}function bt(e){return St(e)||e===null}function St(e){return e===void 0||He(e,"undefined")}function He(e,t){return typeof e===t}function ot(e){if(e){var t=e.indexOf("-");if(t>-1)return e.substring(0,t)}return""}function ve(e){return He(e,"string")}function ge(e){return e instanceof Array}function pn(e){return e.length>0}function Dt(e){return!St(e)}function gn(e){return!!(e&&we(e)&&(e>=0&&e<=13||e===32))}function at(e,t,n){if(!ve(e)||bt(t)||t==="")return null;if(ve(t)||we(t)||Be(t)||ge(t))t={value:t};else if(typeof t=="object"&&!wt.call(t,"value"))t={value:n?JSON.stringify(t):t};else if(bt(t.value)||t.value===""||!ve(t.value)&&!we(t.value)&&!Be(t.value)&&!ge(t.value))return null;if(ge(t.value)&&!pn(t.value))return null;if(Dt(t.kind)){if(ge(t.value)||!gn(t.kind))return null;t.value=t.value.toString()}return t}function st(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class Ct{async sendTelemetry(t,n,r){return new Promise(i=>{const a={...this.baseEventData};a.name=t,this.setDataContext(a,n);const s=this.document.createElement("img");s.src=Mt(a,{apikey:this.apikey}),s.onload=()=>{this.logger.log("Telemetry sent."),i()},s.onerror=c=>{const d=`Telemetry failed to send: ${typeof c=="string"?c:c instanceof ErrorEvent?c.message:c instanceof Event?c.type:""}, reason ${r}`;this.logger.error(d),i()},this.document.body.appendChild(s)})}setEventBaseContext(t){this.baseEventData={...this.baseEventData,...t}}setDataContext(t,n){return cn()(n,(r,i)=>{t.data&&(t.data[i]=r)}),t}initialize(t){this.setEventBaseContext(t),this.baseEventData.data={},this.apikey=this.baseEventData.iKey,this.baseEventData.iKey=void 0}constructor(t,n,r){st(this,"document",void 0),st(this,"logger",void 0),st(this,"baseEventData",void 0),st(this,"apikey",void 0),this.document=n,this.baseEventData={name:""},this.initialize(r),this.logger=t.newLogger("TelemetrySenderGetCollector","services-io-sender-get-collector")}}const lt={instrumentationKey:"bc3902d8132f43e3ae086a009979fa88-632130b2-9455-44a6-80e2-d7457b6eb8ca-7193"};function ye(e){if(e.indexOf("pre_core_error_")===0)return N.PreTelemetryCoreInitFailure;let t=N.ExpLoaderFailure;switch(e){case m.IndexPageStart:t=N.ParseIndexPageFailure;break;case m.MainChunksLoadingStart:t=N.LoadBundlesFailure;break;case m.MainChunksLoadingStop:case m.IndexPageStop:case m.AsyncEntryModuleFederationUrlsInited:case m.AsyncEntryDownloadStart:case m.AsyncEntryDownloadStop:t=N.CoreStartTimeout;break}return t}async function Ve(e){let t="online",n=0;try{const r=new Promise(s=>{n=e.setTimeout(()=>{t="pingTimeout",s()},q)}),i=new URL(`${qe}?cb=${Date.now()}`,e.location.href),a=e.fetch(i).then(()=>{n&&(e.clearTimeout(n),n=0)});await Promise.race([a,r])}catch{t="offline"}return t}function H(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const Nt="ringFinder";class Dn{async failClientStartScenarioWithMarks(t,n,r){if(this.clientStartScenarioAlreadyFailed){this.logger.logNoPii("client_start already completed.");return}if(this.clientStartScenarioAlreadyFailed=!0,!this.allowSendTelemetry){this.logger.logNoPii("Block failing client_start scenario with marks.");return}this.globalWindow.performance.mark(m.ClientStartStop),(!t||t.length===0)&&(t=this.getExistingClientStartMarks()),t.push(m.ClientStartStop);const i=[],a=t.length-1;for(let c=0;c<=a;c++){let d="success",_=t[c],T="";if(_.indexOf("pre_core_error_")===0&&_.indexOf(":reason:")>0){d="failure";const x=_.split(":reason:");_=x[0],T=x[1]}(a===c||d!=="success")&&this.addUxStatus("FullPageErrorDisplayed"),i.push(this.createTelemetryStep(d,T,0,"",(c+1).toString(),_,c>0?t[c-1]:void 0)),c===a-1&&T!==""&&(r={...r||{},reason:`${T} ${r?.reason}`,...this.appUxStatus&&{AppInfo_UxStatus:this.appUxStatus}})}const s=i[a];s.Scenario_Step="stop",s.Scenario_Status=n,s.userAgent=this.globalWindow.navigator?.userAgent,a>0&&(s.previousStep=i[a-1].Scenario_Step,s.errorCode=ye(i[a-1].Scenario_Step||"")),r&&Object.keys(r).length>0&&(i[a]={...s,...r}),await this.failClientStartScenarioWithSteps(i)}generateLoadBundlesRetryInfo(t){t&&t.length>0?this.chunckLoadingRetryInfo=t.reduce((n,r)=>r.retryCount>0?{retryCount:n.retryCount+1,retryDetails:`${n.retryDetails} ${r.retryDetails}: ${r.retryCount};`}:n,{retryCount:0,retryDetails:""}):this.chunckLoadingRetryInfo=void 0}getSuccessClientStartTelemetrySteps(){const t=[];return et.forEach(n=>{const r=this.createTelemetryStep("success","",0,"","",n);n===m.MainChunksLoadingStop&&this.addRetryInfoToStep(r),t.push(r)}),t}get deviceInfo(){return this._deviceInfo}get sessionId(){return this._sessionId}get preAuthUserId(){return this._preAuthUserId}get deviceId(){return this._deviceInfo?.deviceId||this.globalWindow.localStorage.getItem(D.DeviceID)?.toString()}get appUxStatus(){return Array.from(this._appUxStatus).join(",")}addUxStatus(t){this._appUxStatus.add(t)}get RelaunchReason(){return this._isRelaunchFromPreCoreOOPs?"ErrorPageReboot; source: expLoader":void 0}async sendNewScenarioThroughONEDS(t,n,r){if(!this.allowSendTelemetry){this.logger.logNoPii("Block sending new scenario through OneDS.");return}const a={...await this.createGeneralScenarioData(),...n};a.Scenario_Name=t,a.Scenario_Status=n.Scenario_Status||se.Failure,a.Scenario_Step="stop",this.sendTelemetryThroughOneDS(a,r)}clearLoaderMarks(){et.forEach(t=>{t!==m.IndexPageStart&&this.globalWindow.performance.clearMarks(t)})}getSWCacheStatus(){const t=this.globalWindow.localStorage.getItem(`${nt}${rt}`);return!t||t===_t?"ActiveAndPartiallyCached":"ActiveAndFullyCached"}async failClientStartScenarioWithSteps(t){if(!this.allowSendTelemetry||t.length===0||t[0].Scenario_Name!==tt.ClientStart){this.logger.logNoPii("Block failing client_start scenario wtih steps.");return}this.addUxStatus("FullPageErrorDisplayed");const n=await this.createGeneralScenarioData();if(this.loaderPlatformService.isMaglev&&this.hostCommsService){const r=t.map(i=>({...n,...i}));await this.failClientStartScenarioThroughPIE(r)}else{const r=t.find(s=>s.Scenario_Step==="stop"),i=this.createStepsTelemetry(t),a={showOops:"true",...n,...r,Scenario_Steps:JSON.stringify(i)};this.shouldClientStartBeAbandoned(a)&&(a.Scenario_Status=se.Abandoned),this.sendTelemetryThroughOneDS(a,"fail_client_start")}this.clearLoaderMarks()}createStepsTelemetry(t){const n=[];return t.length>this._maxStepsCountCanBeSentViaTelemetryCollector&&(t=t.slice(0,this._firstStepCountWhenStepsBeThrottled).concat(t.slice(t.length+this._firstStepCountWhenStepsBeThrottled-this._maxStepsCountCanBeSentViaTelemetryCollector))),t.forEach(r=>{n.push({Scenario_Status:r.Scenario_Status,Scenario_Step:r.Scenario_Step,stepDelta:r.stepDelta,sequence:r.sequence})}),n}getExistingClientStartMarks(){const t=[];for(const r of et)Ot(r,this.globalWindow.performance)&&t.push(r);const n=this.getAdditionalClientStartMarks();return t.concat(n)}sendTelemetryThroughOneDS(t,n){this.oneDSSender||this.createOneDSSender(),this.oneDSSender?.sendTelemetry(Wn.Scenario,t,n),this.logger.logNoPii(`Send ONEDS Telemetry for scenario: ${t.Scenario_Name}, step: ${t.Scenario_Step}, status: ${t.Scenario_Status}`)}createOneDSSender(){const t={iKey:lt.instrumentationKey};this.oneDSSender=new Ct(this.loggerFactory,this.globalWindow.document,t)}async failClientStartScenarioThroughPIE(t){try{if(this.loaderPlatformService.isMaglev&&this.hostCommsService){let n;const r=[];t.forEach(i=>{i.Scenario_Step==="stop"?n={scenarioName:i.Scenario_Name||"",scenarioStatus:i.Scenario_Status,addTelemetry:!0,logData:this.generateOneStepDataForPIE({...i,showOops:"true"}),previousSteps:r}:r.push({name:i.Scenario_Step||"",logData:this.generateOneStepDataForPIE(i)})}),n?((await this.hostCommsService.loadModule("scenario"))?.setScenarioCompletion?.(n),this.logger.error?.(`Send scenario ${n.scenarioStatus} through PIE`)):this.logger.error?.("Failed generating failure scenario telemetry for PIE API")}}catch(n){this.logger.error?.(`Send telemetry through PIE failed with error ${n}`)}}generateOneStepDataForPIE(t){return Object.keys(t).filter(r=>t[r]!==void 0).map(r=>({name:r,value:t[r]?.toString()||""}))}async createGeneralScenarioData(){if(!this.generalScenarioData){this.logger.logNoPii("Create general scenario telemetry info"),await this.initiateTelemetryValuesPromise;const t=this.getRingFinderInfo(),{bootType:n,buildVersion:r,deeplinkId:i,environment:a,isMaglev:s,networkState:c,pdsEnvironment:d,platformId:_,ring:T}=this.loaderPlatformService;let x="";c==="suspectedOnline"&&(x=await Ve(this.globalWindow));const R=this.globalWindow.localStorage.getItem(D.T2WebOptInSessionId);let oe="noActiveFound";const me=Ue(this.globalWindow);let ue="";me&&(oe=this.getSWCacheStatus(),this.loaderPlatformService.activeServiceWorkerVersion!==void 0?ue=this.loaderPlatformService.activeServiceWorkerVersion:this.loaderPlatformService.activeServiceWorkerVersionPromise!==void 0&&(ue=await this.loaderPlatformService.activeServiceWorkerVersionPromise));const Gt=new URLSearchParams(this.globalWindow.location.search).get("correlationId");this.generalScenarioData={AppInfo_BootType:n,AppInfo_ClientType:s?"maglev":"web",AppInfo_ExperienceName:this.config.experienceName,AppInfo_PlatformId:`${_}`,AppInfo_Version:`${_}/${r}`,AppInfo_Environment:a,AppInfo_ServiceWorkerState:oe,AppInfo_UxStatus:this.appUxStatus,deeplinkId:i||void 0,DeviceInfo_Id:this.deviceId,DeviceInfo_OsName:this._deviceInfo?.osName,DeviceInfo_OsVersion:this._deviceInfo?.osVersion,EventInfo_ExternalCorrelationId:Gt||void 0,environment:d,indexVersionQSP:this.loaderPlatformService.indexVersionQSP,loaderNetworkPingState:x,navigatorNetworkState:c,RelaunchReason:this.RelaunchReason,AppInfo_ServiceWorkerVersion:ue,Session_Id:this.sessionId,Session_TelemetryContext:"experience_loader",t2WebOptInSessionId:R||void 0,userAgent:this.globalWindow.navigator.userAgent,UserInfo_Ring:T,UserInfo_Id:t?.oid,UserInfo_TenantId:t?.tid,UserInfo_TelemetryRegion:"ROW",telemetryRegionFetchComplete:!1}}return this.generalScenarioData}setAllowSendTelemetry(){const{bootType:t}=this.loaderPlatformService;this.skipTelemetryBootType.includes(t)?(this.logger.logNoPii(`No telemetry should be sent for bootType ${t}`),this.allowSendTelemetry=!1):this.allowSendTelemetry=!0}async initiateTelemetryValues(){let t,n;if(this.loaderPlatformService.isMaglev&&this.hostCommsService){n=await this.hostCommsService.loadModule("telemetry");const r=await n?.getContext?.({columns:["sessionId"]});r&&r.length===1&&r[0].column==="sessionId"&&(this._sessionId=r[0].value);const i=await this.hostCommsService.loadModule("osutils");this._deviceInfo=await i?.getDeviceInfo?.(),t=this._deviceInfo?.deviceId}return t||(t=this.globalWindow.localStorage.getItem(D.DeviceID)||Wt()),this.loaderPlatformService.isMaglev||(this._isRelaunchFromPreCoreOOPs=!!this.globalWindow.sessionStorage.getItem(D.IsRelaunchFromOOPs),this._isRelaunchFromPreCoreOOPs&&this.globalWindow.sessionStorage.removeItem(D.IsRelaunchFromOOPs)),this._sessionId||(this._sessionId=Wt()),this._preAuthUserId||(this._preAuthUserId=await n?.getPreAuthUserSamplingId?.()),this.globalWindow.sessionStorage.setItem(D.SessionID,this._sessionId),this.logger.logNoPii(`SessionId set as ${this._sessionId}`),this.globalWindow.localStorage.setItem(D.DeviceID,t),this.logger.logNoPii(`DeviceId set as ${t}`),Promise.resolve()}getRingFinderInfo(){try{const t=this.loaderPlatformService.getCookieByName(Nt);return t?JSON.parse(decodeURIComponent(t)):void 0}catch(t){this.logger.errorNoPii(`Error parsing ringFinder cookie: ${t}`);return}}addRetryInfoToStep(t){this.chunckLoadingRetryInfo&&this.chunckLoadingRetryInfo.retryCount>0&&t&&!t.retryCount&&(t.retryCount=this.chunckLoadingRetryInfo.retryCount,t.retryReason=this.chunckLoadingRetryInfo.retryDetails)}createTelemetryStep(t,n,r,i,a,s,c){const d=c&&this.calculateStepDelta(c,s),_=Ot(s,this.globalWindow.performance);return{scenarioPhase:s.startsWith("core_")?ln.Core:ln.ExpLoader,Scenario_Name:tt.ClientStart,Scenario_Status:t,Scenario_Step:s,error:n,stepDelta:d?.toString(),timeStamp:_?.startTime||this.globalWindow.performance.now(),sequence:a,retryCount:r,retryReason:i}}calculateStepDelta(t,n){return Tn("calculateStepdetlata",t,n,this.globalWindow.performance)}getAdditionalClientStartMarks(){const t=this.globalWindow.performance?.getEntriesByType("mark"),n=t.filter(i=>i.name&&(i.name.startsWith("exp_loader_err_")||i.name.startsWith("core_"))).map(i=>i.name.split(" ")[0]);let r=t.filter(i=>i.name&&i.name.startsWith("pre_core_error_")).map(i=>i.name);return r.length>this._firstStepCountWhenStepsBeThrottled&&(r=r.slice(0,this._firstStepCountWhenStepsBeThrottled)),n.concat(r.reverse())}shouldClientStartBeAbandoned(t){return(t.Scenario_Status===se.Failure||t.Scenario_Status===se.Timeout)&&t.previousStep===m.MainChunksLoadingStart&&t.AppInfo_ClientType==="web"&&t.AppInfo_ServiceWorkerState!=="active"&&!!t.navigatorNetworkState&&t.loaderNetworkPingState!=="online"}constructor(t,n,r,i,a){H(this,"globalWindow",void 0),H(this,"loggerFactory",void 0),H(this,"loaderPlatformService",void 0),H(this,"hostCommsService",void 0),H(this,"config",void 0),H(this,"logger",void 0),H(this,"skipTelemetryBootType",void 0),H(this,"allowSendTelemetry",void 0),H(this,"_sessionId",void 0),H(this,"_deviceInfo",void 0),H(this,"_isRelaunchFromPreCoreOOPs",void 0),H(this,"chunckLoadingRetryInfo",void 0),H(this,"generalScenarioData",void 0),H(this,"initiateTelemetryValuesPromise",void 0),H(this,"clientStartScenarioAlreadyFailed",void 0),H(this,"oneDSSender",void 0),H(this,"_preAuthUserId",void 0),H(this,"_maxStepsCountCanBeSentViaTelemetryCollector",void 0),H(this,"_firstStepCountWhenStepsBeThrottled",void 0),H(this,"_appUxStatus",void 0),this.globalWindow=t,this.loggerFactory=n,this.loaderPlatformService=r,this.hostCommsService=i,this.config=a,this.skipTelemetryBootType=[w.Unknown,w.Local],this.allowSendTelemetry=!0,this._isRelaunchFromPreCoreOOPs=!1,this.generalScenarioData=void 0,this.clientStartScenarioAlreadyFailed=!1,this.oneDSSender=void 0,this._maxStepsCountCanBeSentViaTelemetryCollector=50,this._firstStepCountWhenStepsBeThrottled=10,this.logger=this.loggerFactory.newLogger("LoaderTelemetryService","frameworks-loader"),this.initiateTelemetryValuesPromise=this.initiateTelemetryValues(),this.setAllowSendTelemetry(),this._appUxStatus=new Set(this.loaderPlatformService.isMaglev?["WindowAppeared"]:[])}}function Re(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const ct="provider-cache-storage",Nn=5e3;class ${async getItem(t){await this.migrateToCacheStorage(t);try{return await timed(this.getItemRaw(t),this.cacheStorageTimeoutMS)}catch(n){const r=isTimedError(n)?`Timed out getting item from CacheStorage: ${t}`:`Failed to get item from CacheStorage: ${t}`;this.logger.errorToTelemetry?.(r,"provider_cache_storage")}return null}async setItem(t,n){try{await timed(this.setItemRaw(t,n),this.cacheStorageTimeoutMS)}catch(r){const i=isTimedError(r)?`Timed out setting item in CacheStorage: ${t}`:`Failed to set item in CacheStorage: ${t}`;this.logger.errorToTelemetry?.(i,"provider_cache_storage")}}async removeItem(t){try{await timed(this.removeItemRaw(t),this.cacheStorageTimeoutMS)}catch(n){const r=isTimedError(n)?`Timed out removing item from CacheStorage: ${t}`:`Failed to remove item from CacheStorage: ${t}`;this.logger.errorToTelemetry?.(r,"provider_cache_storage")}}async getKeys(){try{return await timed(this.getKeysRaw(),this.cacheStorageTimeoutMS)}catch(t){const n=isTimedError(t)?"Timed out getting keys from CacheStorage":"Failed to get keys from CacheStorage";this.logger.errorToTelemetry?.(n,"provider_cache_storage")}return[]}async migrateToCacheStorage(t){const n=this.host.localStorage.getItem(t);if(n)try{await timed(this.setItemRaw(t,n),this.cacheStorageTimeoutMS),this.host.localStorage.removeItem(t),this.logger.infoToTelemetry?.(`Migrated provider cache storage from LocalStorage to CacheStorage: ${t}`,"provider_cache_storage")}catch(r){isTimedError(r)?this.logger.errorToTelemetry?.(`Timed out migrating provider cache storage from LocalStorage to CacheStorage: ${t}`,"provider_cache_storage"):this.logger.errorToTelemetry?.(`Failed to migrate provider cache storage from LocalStorage to CacheStorage: ${t}`,"provider_cache_storage")}}async getItemRaw(t){const n=await this.host.caches.open(ct);let r=await n.match(new Request(this.getRootRelativeKey(t)));return r||(r=await n.match(new Request(this.getDirectoryRelativeKey(t)))),r?r.text():null}async setItemRaw(t,n){const r=await this.host.caches.open(ct),i=new Response(n);await r.put(new Request(this.getRootRelativeKey(t)),i)}async removeItemRaw(t){const n=await this.host.caches.open(ct);await Promise.all([n.delete(this.getRootRelativeKey(t)),n.delete(this.getDirectoryRelativeKey(t))])}async getKeysRaw(){const t=await this.host.caches.open(ct),n=[],r=await t.keys();for(const i of r)n.push(i.url);return n.map(i=>i.substring(i.lastIndexOf("/")+1))}getRootRelativeKey(t){return t.charAt(0)==="/"?t:`/${t}`}getDirectoryRelativeKey(t){return t.charAt(0)==="/"?t.substring(1):t}constructor(t,n,r=Nn){Re(this,"host",void 0),Re(this,"cacheStorageTimeoutMS",void 0),Re(this,"logger",void 0),this.host=t,this.cacheStorageTimeoutMS=r,this.logger=n.newLogger("AsyncCacheStorage","core-services-settings")}}const Ge=async(e,t)=>{t?.logNoPii?.("Purging cached ECS settings"),e.caches?await e.caches.delete(ct)?t?.logNoPii?.("Successfully deleted cached ECS settings from cache storage"):t?.logNoPii?.("ECS settings not found in cache storage"):t?.errorNoPii?.("Caches is not defined on host")},fn=async(e,t)=>{const n=t?.newLogger("purgeCachedSettings","core-services-settings");n?.logNoPii?.("Purging cached settings"),await Ge(e,n),n?.logNoPii?.("Completed purging cached settings")};var kt=function(e){return e[e.Loading=0]="Loading",e[e.Error=1]="Error",e}({});const Ut={"af-za":{loading_aria_label:"Laai tans \u2026",oops_error_title:"Oeps",oops_error:"Oeps, onbekende fout!",oops_loading_error:"Oeps, toepassing kon nie laai nie!",oops_init_error:"Oeps, toepassing kon nie begin nie!",retry_error:"Probeer weer",clear_cache_error:"Vee cache uit en probeer weer."},"ar-sa":{loading_aria_label:"\u064A\u062A\u0645 \u0627\u0644\u0622\u0646 \u0627\u0644\u062A\u062D\u0645\u064A\u0644...",oops_error_title:"\u0639\u0630\u0631\u0627\u064B",oops_error:"\u0639\u0630\u0631\u0627\u064B\u060C \u0647\u0646\u0627\u0643 \u062E\u0637\u0623 \u063A\u064A\u0631 \u0645\u0639\u0631\u0648\u0641!",oops_loading_error:"\u0639\u0630\u0631\u0627\u064B\u060C \u0641\u0634\u0644 \u062A\u062D\u0645\u064A\u0644 \u0627\u0644\u062A\u0637\u0628\u064A\u0642.",oops_init_error:"\u0639\u0630\u0631\u0627\u064B\u060C \u0641\u0634\u0644\u062A \u062A\u0647\u064A\u0626\u0629 \u0627\u0644\u062A\u0637\u0628\u064A\u0642.",retry_error:"\u0625\u0639\u0627\u062F\u0629 \u0645\u062D\u0627\u0648\u0644\u0629",clear_cache_error:"\u0645\u0633\u062D \u0630\u0627\u0643\u0631\u0629 \u0627\u0644\u062A\u062E\u0632\u064A\u0646 \u0627\u0644\u0645\u0624\u0642\u062A \u0648\u0625\u0639\u0627\u062F\u0629 \u0627\u0644\u0645\u062D\u0627\u0648\u0644\u0629"},"az-latn-az":{loading_aria_label:"Y\xFCkl\u0259nir...",oops_error_title:"Ups",oops_error:"Ups, nam\u0259lum x\u0259ta!",oops_loading_error:"Proqram y\xFCkl\u0259nm\u0259di.",oops_init_error:"Proqram\u0131 ba\u015Flatmaq olmad\u0131.",retry_error:"T\u0259krar c\u0259hd et",clear_cache_error:"Ke\xE7i t\u0259mizl\u0259yin v\u0259 yenid\u0259n c\u0259hd edin"},"bg-bg":{loading_aria_label:"\u0417\u0430\u0440\u0435\u0436\u0434\u0430\u043D\u0435...",oops_error_title:"\u0413\u0440\u0435\u0448\u043A\u0430",oops_error:"\u041D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043D\u0430 \u0433\u0440\u0435\u0448\u043A\u0430!",oops_loading_error:"\u041E\u043F\u0430, \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0442\u043E \u043D\u0435 \u0443\u0441\u043F\u044F \u0434\u0430 \u0441\u0435 \u0437\u0430\u0440\u0435\u0434\u0438!",oops_init_error:"\u041E\u043F\u0430, \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435\u0442\u043E \u043D\u0435 \u0443\u0441\u043F\u044F \u0434\u0430 \u0441\u0435 \u0438\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0438\u0440\u0430!",retry_error:"\u041F\u043E\u0432\u0442\u043E\u0440\u0435\u043D \u043E\u043F\u0438\u0442",clear_cache_error:"\u0418\u0437\u0447\u0438\u0441\u0442\u0432\u0430\u043D\u0435 \u043D\u0430 \u043A\u0435\u0448\u0430 \u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u0435\u043D \u043E\u043F\u0438\u0442"},"bs-latn-ba":{loading_aria_label:"U\u010Ditavanje...",oops_error_title:"Ups",oops_error:"Ups, nepoznata gre\u0161ka!",oops_loading_error:"Ups, u\u010Ditavanje aplikacije nije uspjelo!",oops_init_error:"Ups, inicijalizovanje aplikacije nije uspjelo!",retry_error:"Poku\u0161aj ponovo",clear_cache_error:"Obri\u0161i ke\u0161 memoriju i poku\u0161aj ponovo"},"ca-es":{loading_aria_label:"S'est\xE0 carregant...",oops_error_title:"Vaja!",oops_error:"Vaja, error desconegut!",oops_loading_error:"Vaja, no s'ha pogut carregar l'aplicaci\xF3.",oops_init_error:"Vaja, no s'ha pogut inicialitzar l'aplicaci\xF3.",retry_error:"Torna-ho a provar",clear_cache_error:"Esborra la mem\xF2ria cau i torna-ho a provar"},"ca-es-valencia":{loading_aria_label:"S'est\xE0 carregant...",oops_error_title:"Vaja!",oops_error:"Vaja, error desconegut!",oops_loading_error:"Vaja, no s'ha pogut carregar l'aplicaci\xF3.",oops_init_error:"Vaja, no s'ha pogut inicialitzar l'aplicaci\xF3.",retry_error:"Torna-ho a provar",clear_cache_error:"Esborra la mem\xF2ria cau i torna-ho a provar"},"cs-cz":{loading_aria_label:"Na\u010D\xEDt\xE1n\xED\u2026",oops_error_title:"Jejda",oops_error:"Jejda, nezn\xE1m\xE1 chyba",oops_loading_error:"Ale ne, aplikaci se nepovedlo na\u010D\xEDst!",oops_init_error:"Ale ne, aplikaci se nepovedlo inicializovat!",retry_error:"Zkusit znovu",clear_cache_error:"Vymazat mezipam\u011B\u0165 a zkusit to znovu"},"cy-gb":{loading_aria_label:"Llwytho...",oops_error_title:"Wps",oops_error:"Wps, gwall anhysbys!",oops_loading_error:"Wps, wedi methu \xE2 llwytho'r ap!",oops_init_error:"Wps, wedi methu ag ymgychwyn yr ap!",retry_error:"Ailgynnig",clear_cache_error:"Cliriwch y storfa a rhoi cynnig arall arni"},"da-dk":{loading_aria_label:"Indl\xE6ser...",oops_error_title:"Ups",oops_error:"Ups, ukendt fejl!",oops_loading_error:"Ups, appen kunne ikke indl\xE6ses!",oops_init_error:"Ups, appen kunne ikke initialiseres!",retry_error:"Pr\xF8v igen",clear_cache_error:"Ryd cachen, og pr\xF8v igen"},"de-de":{loading_aria_label:"Wird geladen...",oops_error_title:"Hoppla",oops_error:"Hoppla, unbekannter Fehler!",oops_loading_error:"Hoppla, die App konnte nicht geladen werden!",oops_init_error:"Hoppla, die App konnte nicht gestartet werden!",retry_error:"Wiederholen",clear_cache_error:"Cache l\xF6schen und erneut versuchen"},"el-gr":{loading_aria_label:"\u0393\u03AF\u03BD\u03B5\u03C4\u03B1\u03B9 \u03C6\u03CC\u03C1\u03C4\u03C9\u03C3\u03B7...",oops_error_title:"\u03A9\u03C7",oops_error:"\u03A9\u03C7, \u03AC\u03B3\u03BD\u03C9\u03C3\u03C4\u03BF \u03C3\u03C6\u03AC\u03BB\u03BC\u03B1!",oops_loading_error:"\u0394\u03C5\u03C3\u03C4\u03C5\u03C7\u03CE\u03C2, \u03B7 \u03C6\u03CC\u03C1\u03C4\u03C9\u03C3\u03B7 \u03C4\u03B7\u03C2 \u03B5\u03C6\u03B1\u03C1\u03BC\u03BF\u03B3\u03AE\u03C2 \u03B1\u03C0\u03AD\u03C4\u03C5\u03C7\u03B5!",oops_init_error:"\u0394\u03C5\u03C3\u03C4\u03C5\u03C7\u03CE\u03C2, \u03B7 \u03B5\u03C6\u03B1\u03C1\u03BC\u03BF\u03B3\u03AE \u03B1\u03C0\u03AD\u03C4\u03C5\u03C7\u03B5 \u03BD\u03B1 \u03BA\u03AC\u03BD\u03B5\u03B9 \u03C0\u03C1\u03BF\u03B5\u03C4\u03BF\u03B9\u03BC\u03B1\u03C3\u03AF\u03B1!",retry_error:"\u0395\u03C0\u03B1\u03BD\u03AC\u03BB\u03B7\u03C8\u03B7",clear_cache_error:"\u0395\u03BA\u03BA\u03B1\u03B8\u03AC\u03C1\u03B9\u03C3\u03B7 cache \u03BA\u03B1\u03B9 \u03B5\u03C0\u03B1\u03BD\u03AC\u03BB\u03B7\u03C8\u03B7"},"en-gb":{loading_aria_label:"Loading...",oops_error_title:"Oops",oops_error:"Oops, unknown error!",oops_loading_error:"Oops, app failed to load!",oops_init_error:"Oops, app failed to init!",retry_error:"Retry",clear_cache_error:"Clear cache and retry"},"en-us":{loading_aria_label:"Loading...",oops_error_title:"Oops",oops_error:"Oops, unknown error!",oops_loading_error:"Oops, app failed to load!",oops_init_error:"Oops, app failed to init!",retry_error:"Retry",clear_cache_error:"Clear cache and retry"},"es-es":{loading_aria_label:"Cargando...",oops_error_title:"\xA1Vaya!",oops_error:"\xA1Vaya! Se ha producido un error desconocido.",oops_loading_error:"\xA1Vaya! No se ha podido cargar la aplicaci\xF3n.",oops_init_error:"\xA1Vaya! No se ha podido iniciar la aplicaci\xF3n.",retry_error:"Reintentar",clear_cache_error:"Borrar cach\xE9 y reintentar"},"es-mx":{loading_aria_label:"Cargando...",oops_error_title:"\xA1Uy!",oops_error:"\xA1Uy! Se ha producido un error desconocido.",oops_loading_error:"\xA1Uy! No se pudo cargar la aplicaci\xF3n.",oops_init_error:"\xA1Uy! No se pudo iniciar la aplicaci\xF3n.",retry_error:"Reintentar",clear_cache_error:"Borrar cach\xE9 y reintentar"},"et-ee":{loading_aria_label:"Laadimine\u2026",oops_error_title:"Oih",oops_error:"Oih, tundmatu t\xF5rge!",oops_loading_error:"Rakendust ei saanud laadida!",oops_init_error:"Rakendust ei saanud l\xE4htestada!",retry_error:"Proovi uuesti",clear_cache_error:"T\xFChjenda vahem\xE4lu ja proovi uuesti"},"eu-es":{loading_aria_label:"Kargatzen\u2026",oops_error_title:"Hara!",oops_error:"Hara! Errore ezezaguna!",oops_loading_error:"Ezin izan da kargatu aplikazioa.",oops_init_error:"Ezin izan da abiarazi aplikazioa.",retry_error:"Saiatu berriro",clear_cache_error:"Ezabatu katxea eta saiatu berriro"},"fa-ir":{loading_aria_label:"\u062F\u0631 \u062D\u0627\u0644 \u0628\u0627\u0631\u06AF\u06CC\u0631\u06CC...",oops_error_title:"\u0645\u062A\u0623\u0633\u0641\u06CC\u0645",oops_error:"\u062E\u0637\u0627\u06CC \u0646\u0627\u0645\u0634\u062E\u0635 \u0631\u062E \u062F\u0627\u062F!",oops_loading_error:"\u0628\u0627\u0631\u06AF\u0630\u0627\u0631\u06CC \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u0646\u062C\u0627\u0645 \u0646\u0634\u062F!",oops_init_error:"\u0631\u0627\u0647\u200C\u0627\u0646\u062F\u0627\u0632\u06CC \u0628\u0631\u0646\u0627\u0645\u0647 \u0627\u0646\u062C\u0627\u0645 \u0646\u0634\u062F!",retry_error:"\u0627\u0645\u062A\u062D\u0627\u0646 \u0645\u062C\u062F\u062F",clear_cache_error:"\u062D\u0627\u0641\u0638\u0647 \u067E\u0646\u0647\u0627\u0646 \u0631\u0627 \u067E\u0627\u06A9 \u06A9\u0646\u06CC\u062F \u0648 \u062F\u0648\u0628\u0627\u0631\u0647 \u0627\u0645\u062A\u062D\u0627\u0646 \u06A9\u0646\u06CC\u062F"},"fi-fi":{loading_aria_label:"Ladataan...",oops_error_title:"Virhe",oops_error:"Hups, tuntematon virhe!",oops_loading_error:"Sovelluksen lataaminen ep\xE4onnistui.",oops_init_error:"Sovelluksen k\xE4ynnist\xE4minen ep\xE4onnistui.",retry_error:"Yrit\xE4 uudelleen",clear_cache_error:"Tyhjenn\xE4 v\xE4limuisti ja yrit\xE4 uudelleen"},"fil-ph":{loading_aria_label:"Naglo-load...",oops_error_title:"Oops",oops_error:"Oops, hindi kilalang error!",oops_loading_error:"Oops, nabigong i-load ang app!",oops_init_error:"Oops, nabigong mag-init ang app!",retry_error:"Subukang muli",clear_cache_error:"I-clear ang cache at subukang muli"},"fr-ca":{loading_aria_label:"T\xE9l\xE9versement en cours...",oops_error_title:"Oups",oops_error:"Une erreur inconnue s\u2019est produite!",oops_loading_error:"Oups, impossible de charger l\u2019application!",oops_init_error:"Oups, impossible de d\xE9marrer l\u2019application!",retry_error:"R\xE9essayer",clear_cache_error:"Videz le cache et r\xE9essayez"},"fr-fr":{loading_aria_label:"Le chargement est en cours...",oops_error_title:"Oups",oops_error:"D\xE9sol\xE9... Nous avons rencont\xE9 une erreur inconnue.",oops_loading_error:"Nous sommes d\xE9sol\xE9s, l\u2019application n\u2019a pas pu \xEAtre charg\xE9e !",oops_init_error:"Nous sommes d\xE9sol\xE9s, l\u2019application n\u2019a pas pu d\xE9marrer !",retry_error:"R\xE9essayer",clear_cache_error:"Videz le cache et r\xE9essayez"},"gl-es":{loading_aria_label:"Cargando...",oops_error_title:"Vaites!",oops_error:"Vaites! Hai un erro desco\xF1ecido.",oops_loading_error:"Vaia, produciuse un erro ao cargar a aplicaci\xF3n!",oops_init_error:"Vaia, produciuse un erro ao iniciar a aplicaci\xF3n!",retry_error:"Tentalo de novo",clear_cache_error:"Limpar cach\xE9 e tentar de novo"},"he-il":{loading_aria_label:"\u05D8\u05D5\u05E2\u05DF...",oops_error_title:"\u05D0\u05D5\u05E4\u05E1",oops_error:"\u05E9\u05D2\u05D9\u05D0\u05D4 \u05DC\u05D0 \u05D9\u05D3\u05D5\u05E2\u05D4!",oops_loading_error:"\u05D0\u05D5\u05E4\u05E1, \u05D8\u05E2\u05D9\u05E0\u05EA \u05D4\u05D0\u05E4\u05DC\u05D9\u05E7\u05E6\u05D9\u05D4 \u05E0\u05DB\u05E9\u05DC\u05D4!",oops_init_error:"\u05D0\u05D5\u05E4\u05E1, \u05D4\u05D9\u05D9\u05E9\u05D5\u05DD \u05DC\u05D0 \u05D4\u05E6\u05DC\u05D9\u05D7 \u05DC\u05D1\u05E6\u05E2 \u05D0\u05EA\u05D7\u05D5\u05DC!",retry_error:"\u05E0\u05E1\u05D4 \u05E9\u05E0\u05D9\u05EA",clear_cache_error:"\u05E0\u05E7\u05D4 \u05DE\u05D8\u05DE\u05D5\u05DF \u05D5\u05E0\u05E1\u05D4 \u05E9\u05E0\u05D9\u05EA"},"hi-in":{loading_aria_label:"\u0932\u094B\u0921 \u0939\u094B \u0930\u0939\u093E \u0939\u0948...",oops_error_title:"\u0909\u092B\u093C",oops_error:"\u0913\u0939, \u0905\u091C\u094D\u091E\u093E\u0924 \u0924\u094D\u0930\u0941\u091F\u093F!",oops_loading_error:"\u0913\u0939, \u0910\u092A \u0932\u094B\u0921 \u0939\u094B\u0928\u0947 \u092E\u0947\u0902 \u0935\u093F\u092B\u0932 \u0930\u0939\u093E!",oops_init_error:"\u0913\u0939, \u0910\u092A \u0936\u0941\u0930\u0942 \u0939\u094B\u0928\u0947 \u092E\u0947\u0902 \u0935\u093F\u092B\u0932 \u0930\u0939\u093E!",retry_error:"\u092A\u0941\u0928\u0903 \u092A\u094D\u0930\u092F\u093E\u0938 \u0915\u0930\u0947\u0902",clear_cache_error:"\u0915\u0948\u0936 \u0938\u093E\u092B\u093C \u0915\u0930\u0947\u0902 \u0914\u0930 \u092A\u0941\u0928\u0930\u094D\u092A\u094D\u0930\u092F\u093E\u0938 \u0915\u0930\u0947\u0902"},"hr-hr":{loading_aria_label:"U\u010Ditavanje...",oops_error_title:"Ups",oops_error:"Ups, nepoznata pogre\u0161ka!",oops_loading_error:"Uh, u\u010Ditavanje aplikacije nije uspjelo!",oops_init_error:"Uh, inicijalizacija aplikacije nije uspjela!",retry_error:"Poku\u0161ajte ponovo",clear_cache_error:"O\u010Distite predmemoriju i poku\u0161ajte ponovo"},"hu-hu":{loading_aria_label:"Bet\xF6lt\xE9s...",oops_error_title:"Hopp\xE1!",oops_error:"Hopp\xE1, ismeretlen hiba t\xF6rt\xE9nt!",oops_loading_error:"Hopp\xE1, az alkalmaz\xE1st nem siker\xFClt bet\xF6lteni!",oops_init_error:"Hopp\xE1, az alkalmaz\xE1st nem siker\xFClt inicializ\xE1lni!",retry_error:"\xDAjra",clear_cache_error:"Gyors\xEDt\xF3t\xE1r ki\xFCr\xEDt\xE9se \xE9s \xFAjrapr\xF3b\xE1lkoz\xE1s"},"id-id":{loading_aria_label:"Memuat...",oops_error_title:"Ups",oops_error:"Ups, kesalahan tidak diketahui!",oops_loading_error:"Ups, aplikasi gagal dimuat!",oops_init_error:"Ups, aplikasi gagal dimulai!",retry_error:"Coba lagi",clear_cache_error:"Bersihkan cache lalu coba lagi"},"is-is":{loading_aria_label:"Hle\xF0ur...",oops_error_title:"\xDAps",oops_error:"\xDAps, \xF3\xFEekkt villa!",oops_loading_error:"\xDAps, ekki t\xF3kst a\xF0 hla\xF0a forriti!",oops_init_error:"\xDAps, ekki t\xF3kst a\xF0 frumstilla forrit!",retry_error:"Reyna aftur",clear_cache_error:"Hreinsa skyndiminni og reyna aftur"},"it-it":{loading_aria_label:"Caricamento in corso...",oops_error_title:"Ops",oops_error:"Errore sconosciuto.",oops_loading_error:"Ops, l'app non \xE8 stata caricata!",oops_init_error:"Ops, l'app non \xE8 riuscita ad avviarsi!",retry_error:"Riprova",clear_cache_error:"Svuota cache e riprova"},"ja-jp":{loading_aria_label:"\u8AAD\u307F\u8FBC\u307F\u4E2D...",oops_error_title:"\u7533\u3057\u8A33\u3054\u3056\u3044\u307E\u305B\u3093",oops_error:"\u4E0D\u660E\u306A\u30A8\u30E9\u30FC\u304C\u767A\u751F\u3057\u307E\u3057\u305F\u3002",oops_loading_error:"\u7533\u3057\u8A33\u3054\u3056\u3044\u307E\u305B\u3093\u3002\u30A2\u30D7\u30EA\u3092\u8AAD\u307F\u8FBC\u3081\u307E\u305B\u3093\u3067\u3057\u305F\u3002",oops_init_error:"\u7533\u3057\u8A33\u3054\u3056\u3044\u307E\u305B\u3093\u3002\u30A2\u30D7\u30EA\u3092\u521D\u671F\u5316\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002",retry_error:"\u518D\u8A66\u884C",clear_cache_error:"\u30AD\u30E3\u30C3\u30B7\u30E5\u3092\u30AF\u30EA\u30A2\u3057\u3066\u518D\u8A66\u884C"},"ka-ge":{loading_aria_label:"\u10E9\u10D0\u10E2\u10D5\u10D8\u10E0\u10D7\u10D5\u10D0...",oops_error_title:"\u10E3\u10D8",oops_error:"\u10E1\u10D0\u10DB\u10EC\u10E3\u10EE\u10D0\u10E0\u10DD\u10D3, \u10E3\u10EA\u10DC\u10DD\u10D1\u10D8 \u10E8\u10D4\u10EA\u10D3\u10DD\u10DB\u10D0\u10D0!",oops_loading_error:"\u10E1\u10D0\u10DB\u10EC\u10E3\u10EE\u10D0\u10E0\u10DD\u10D3, \u10D0\u10DE\u10D8 \u10D5\u10D4\u10E0 \u10E9\u10D0\u10D8\u10E2\u10D5\u10D8\u10E0\u10D7\u10D0!",oops_init_error:"\u10E1\u10D0\u10DB\u10EC\u10E3\u10EE\u10D0\u10E0\u10DD\u10D3, \u10D0\u10DE\u10D8\u10E1 \u10D8\u10DC\u10D8\u10EA\u10D8\u10D0\u10DA\u10D8\u10D6\u10D4\u10D1\u10D0 \u10D5\u10D4\u10E0 \u10E8\u10D4\u10E1\u10E0\u10E3\u10DA\u10D3\u10D0!",retry_error:"\u10EE\u10D4\u10DA\u10D0\u10EE\u10DA\u10D0 \u10EA\u10D3\u10D0",clear_cache_error:"\u10D9\u10D4\u10E8\u10D8-\u10DB\u10D4\u10EE\u10E1\u10D8\u10D4\u10E0\u10D4\u10D1\u10D8\u10E1 \u10D2\u10D0\u10E1\u10E3\u10E4\u10D7\u10D0\u10D5\u10D4\u10D1\u10D0 \u10D3\u10D0 \u10EE\u10D4\u10DA\u10D0\u10EE\u10DA\u10D0 \u10EA\u10D3\u10D0"},"kk-kz":{loading_aria_label:"\u0416\u04AF\u043A\u0442\u0435\u043B\u0443\u0434\u0435...",oops_error_title:"\u041E\u0439!",oops_error:"\u041E\u0439, \u0431\u0435\u043B\u0433\u0456\u0441\u0456\u0437 \u049B\u0430\u0442\u0435!",oops_loading_error:"\u041E\u0439, \u0431\u0430\u0493\u0434\u0430\u0440\u043B\u0430\u043C\u0430\u043D\u044B \u0436\u04AF\u043A\u0442\u0435\u0443 \u0441\u04D9\u0442\u0441\u0456\u0437 \u0430\u044F\u049B\u0442\u0430\u043B\u0434\u044B!",oops_init_error:"\u041E\u0439, \u0431\u0430\u0493\u0434\u0430\u0440\u043B\u0430\u043C\u0430\u043D\u044B \u0431\u0430\u043F\u0442\u0430\u043D\u0434\u044B\u0440\u0443 \u0441\u04D9\u0442\u0441\u0456\u0437 \u0430\u044F\u049B\u0442\u0430\u043B\u0434\u044B!",retry_error:"\u049A\u0430\u0439\u0442\u0430\u043B\u0430\u0443",clear_cache_error:"\u041A\u044D\u0448\u0442\u0456 \u0442\u0430\u0437\u0430\u043B\u0430\u043F, \u049B\u0430\u0439\u0442\u0430\u043B\u0430\u04A3\u044B\u0437"},"km-kh":{loading_aria_label:"\u1780\u17C6\u1796\u17BB\u1784\u1791\u17B6\u1789...",oops_error_title:"\u17A2\u17BC\u17CE",oops_error:"\u17A2\u17BC\u17CE \u1798\u17B6\u1793\u1794\u1789\u17D2\u17A0\u17B6\u178A\u17C2\u179B\u1798\u17B7\u1793\u179F\u17D2\u1782\u17B6\u179B\u17CB!",oops_loading_error:"\u17A2\u17BC\u17CE \u1780\u1798\u17D2\u1798\u179C\u17B7\u1792\u17B8\u1798\u17B7\u1793\u17A2\u17B6\u1785\u1791\u17B6\u1789\u1794\u17B6\u1793\u1791\u17C1!",oops_init_error:"\u17A2\u17CE\u17BC \u1780\u1798\u17D2\u1798\u179C\u17B7\u1792\u17B8\u1798\u17B7\u1793\u17A2\u17B6\u1785\u1785\u17BC\u179B\u1794\u17B6\u1793\u1791\u17C1!",retry_error:"\u1796\u17D2\u1799\u17B6\u1799\u17B6\u1798\u1798\u17D2\u178F\u1784\u1791\u17C0\u178F",clear_cache_error:"\u179B\u17BB\u1794\u1780\u17B6\u179A\u1794\u1798\u17D2\u179A\u17BB\u1784\u1791\u17BB\u1780\u1794\u178E\u17D2\u178A\u17C4\u17C7\u17A2\u17B6\u179F\u1793\u17D2\u1793 \u179A\u17BD\u1785\u1796\u17D2\u1799\u17B6\u1799\u17B6\u1798\u1798\u17D2\u178A\u1784\u1791\u17C0\u178F"},"ko-kr":{loading_aria_label:"\uB85C\uB4DC \uC911...",oops_error_title:"\uC2E4\uC218",oops_error:"\uC774\uB7F0, \uC54C \uC218 \uC5C6\uB294 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4!",oops_loading_error:"\uC8C4\uC1A1\uD569\uB2C8\uB2E4. \uC571\uC744 \uB85C\uB4DC\uD558\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4.",oops_init_error:"\uC8C4\uC1A1\uD569\uB2C8\uB2E4. \uC571\uC5D0\uC11C \uCD08\uAE30\uD654\uD558\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4!",retry_error:"\uC7AC\uC2DC\uB3C4",clear_cache_error:"\uCE90\uC2DC \uC9C0\uC6B0\uAE30 \uBC0F \uB2E4\uC2DC \uC2DC\uB3C4"},"lo-la":{loading_aria_label:"\u0E81\u0EB3\u0EA5\u0EB1\u0E87\u0EC2\u0EAB\u0EBC\u0E94...",oops_error_title:"\u0E82\u0ECD\u0EAD\u0EB0\u0EC4\u0E9E",oops_error:"\u0E82\u0ECD\u0EAD\u0EB0\u0EC4\u0E9E, \u0E82\u0ECD\u0EC9\u0E9C\u0EB4\u0E94\u0E9E\u0EB2\u0E94\u0E97\u0EB5\u0EC8\u0E9A\u0ECD\u0EC8\u0EAE\u0EB9\u0EC9\u0E88\u0EB1\u0E81!",oops_loading_error:"\u0E82\u0ECD\u0EAD\u0EB0\u0EC4\u0E9E, \u0EC2\u0EAB\u0EBC\u0E94\u0EC1\u0EAD\u0EB1\u0E9A\u0E9A\u0ECD\u0EC8\u200B\u0EAA\u0ECD\u0EB2\u200B\u0EC0\u0EA5\u0EB1\u0E94!",oops_init_error:"\u0E82\u0ECD\u0EAD\u0EB0\u0EC4\u0E9E, \u0EC0\u0EA5\u0EB5\u0EC8\u0EA1\u0EC1\u0EAD\u0EB1\u0E9A\u0E9A\u0ECD\u0EC8\u200B\u0EAA\u0ECD\u0EB2\u200B\u0EC0\u0EA5\u0EB1\u0E94!",retry_error:"\u0EA5\u0EAD\u0E87\u0EC3\u0EDD\u0EC8",clear_cache_error:"\u0EA5\u0EB6\u0E9A\u0EA5\u0EC9\u0EB2\u0E87\u0EC1\u0E84\u0E8A\u0ECC \u0EC1\u0EA5\u0EB0 \u0EA5\u0EAD\u0E87\u0EC3\u0EDD\u0EC8\u0EAD\u0EB5\u0E81"},"lt-lt":{loading_aria_label:"\u012Ekeliama...",oops_error_title:"Oi",oops_error:"Oi, ne\u017Einoma klaida!",oops_loading_error:"Deja, programos \u012Fkelti nepavyko!",oops_init_error:"Deja, programos paleisti nepavyko!",retry_error:"Kartoti",clear_cache_error:"I\u0161valyti talpykl\u0105 ir bandyti dar kart\u0105"},"lv-lv":{loading_aria_label:"Iel\u0101d\u0113...",oops_error_title:"Ak vai",oops_error:"Atvainojiet, nezin\u0101ma k\u013C\u016Bda!",oops_loading_error:"Diem\u017E\u0113l programmu neizdev\u0101s iel\u0101d\u0113t!",oops_init_error:"Diem\u017E\u0113l programmu neizdev\u0101s inicializ\u0113t!",retry_error:"M\u0113\u0123in\u0101t v\u0113lreiz",clear_cache_error:"Not\u012Br\u012Bt ke\u0161atmi\u0146u un m\u0113\u0123in\u0101t v\u0113lreiz"},"mk-mk":{loading_aria_label:"\u0421\u0435 \u0432\u0447\u0438\u0442\u0443\u0432\u0430...",oops_error_title:"\u041E\u043F\u0430",oops_error:"\u041E\u043F\u0430, \u043D\u0435\u043F\u043E\u0437\u043D\u0430\u0442\u0430 \u0433\u0440\u0435\u0448\u043A\u0430!",oops_loading_error:"\u041E\u043F\u0430, \u0430\u043F\u043B\u0438\u043A\u0430\u0446\u0438\u0458\u0430\u0442\u0430 \u043D\u0435 \u0443\u0441\u043F\u0435\u0430 \u0434\u0430 \u0441\u0435 \u0432\u0447\u0438\u0442\u0430!",oops_init_error:"\u041E\u043F\u0430, \u0430\u043F\u043B\u0438\u043A\u0430\u0446\u0438\u0458\u0430\u0442\u0430 \u043D\u0435 \u0443\u0441\u043F\u0435\u0430 \u0434\u0430 \u0437\u0430\u043F\u043E\u0447\u043D\u0435!",retry_error:"\u041E\u0431\u0438\u0434\u0435\u0442\u0435 \u0441\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u043D\u043E",clear_cache_error:"\u0418\u0441\u0447\u0438\u0441\u0442\u0438 \u0433\u043E \u043A\u0435\u0448\u043E\u0442 \u0438 \u043E\u0431\u0438\u0434\u0438 \u0441\u0435 \u043F\u043E\u0432\u0442\u043E\u0440\u043D\u043E"},"ms-my":{loading_aria_label:"Memuatkan...",oops_error_title:"Alamak",oops_error:"Op, ralat tidak diketahui!",oops_loading_error:"Op, aplikasi gagal untuk dimuat!",oops_init_error:"Op, aplikasi gagal untuk dimulakan!",retry_error:"Cuba lagi",clear_cache_error:"Kosongkan cache dan cuba semula"},"mt-mt":{loading_aria_label:"Qed jillowdja...",oops_error_title:"Oops",oops_error:"Oops, \u017Cball mhux mag\u0127ruf!",oops_loading_error:"Oops, l-app ma rnexxilniex tillowdja!",oops_init_error:"Oops, l-app ma rnexxilniex tinizjalizza!",retry_error:"Er\u0121a\u2019 pprova",clear_cache_error:"Ne\u0127\u0127i l-cache u er\u0121a\u2019 pprova"},"nb-no":{loading_aria_label:"Laster inn...",oops_error_title:"Uff da",oops_error:"Ukjent feil!",oops_loading_error:"Obs! Appen kan ikke lastes inn!",oops_init_error:"Obs! Appen ble ikke startet!",retry_error:"Pr\xF8v p\xE5 nytt",clear_cache_error:"T\xF8m hurtigbufferen, og pr\xF8v p\xE5 nytt"},"nl-nl":{loading_aria_label:"Laden...",oops_error_title:"Oeps",oops_error:"Onbekende fout",oops_loading_error:"De app is niet geladen.",oops_init_error:"De app is niet ge\xEFnitialiseerd.",retry_error:"Opnieuw proberen",clear_cache_error:"Cache wissen en opnieuw proberen"},"nn-no":{loading_aria_label:"Lastar inn ...",oops_error_title:"Uff da",oops_error:"Uff, ukjend feil!",oops_loading_error:"Obs! Kan ikkje laste inn appen!",oops_init_error:"Obs! Kan ikkje starte appen!",retry_error:"Pr\xF8v igjen",clear_cache_error:"T\xF8m hurtigbuffer og pr\xF8v p\xE5 nytt"},"pl-pl":{loading_aria_label:"Trwa \u0142adowanie...",oops_error_title:"Ojej",oops_error:"Wyst\u0105pi\u0142 nieznany b\u0142\u0105d!",oops_loading_error:"Niestety, nie mo\u017Cna za\u0142adowa\u0107 aplikacji!",oops_init_error:"Niestety, nie mo\u017Cna zainicjowa\u0107 aplikacji!",retry_error:"Spr\xF3buj ponownie",clear_cache_error:"Wyczy\u015B\u0107 pami\u0119\u0107 podr\u0119czn\u0105 i pon\xF3w pr\xF3b\u0119"},"pt-br":{loading_aria_label:"Carregando...",oops_error_title:"Opa",oops_error:"Oops, erro desconhecido!",oops_loading_error:"Falha ao carregar o aplicativo!",oops_init_error:"Falha ao inicializar o aplicativo!",retry_error:"Repetir",clear_cache_error:"Limpar cache e tentar novamente"},"pt-pt":{loading_aria_label:"A carregar...",oops_error_title:"Ups",oops_error:"Ups, erro desconhecido!",oops_loading_error:"Ups, n\xE3o foi poss\xEDvel carregar a aplica\xE7\xE3o!",oops_init_error:"Ups, n\xE3o foi poss\xEDvel iniciar a aplica\xE7\xE3o!",retry_error:"Tentar novamente",clear_cache_error:"Limpar cache e tentar novamente"},"ro-ro":{loading_aria_label:"Se \xEEncarc\u0103...",oops_error_title:"Ups!",oops_error:"Ups, eroare necunoscut\u0103!",oops_loading_error:"Ups, aplica\u021Bia nu s-a \xEEnc\u0103rcat!",oops_init_error:"Ups, aplica\u021Bia nu a putut fi ini\u021Bializat\u0103!",retry_error:"Re\xEEncerca\u021Bi",clear_cache_error:"Goli\u021Bi memoria cache \u0219i re\xEEncerca\u021Bi"},"ru-ru":{loading_aria_label:"\u0417\u0430\u0433\u0440\u0443\u0437\u043A\u0430\u2026",oops_error_title:"\u041E\u0439",oops_error:"\u041D\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043D\u0430\u044F \u043E\u0448\u0438\u0431\u043A\u0430!",oops_loading_error:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0437\u0430\u0433\u0440\u0443\u0437\u0438\u0442\u044C \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435.",oops_init_error:"\u041D\u0435 \u0443\u0434\u0430\u043B\u043E\u0441\u044C \u0438\u043D\u0438\u0446\u0438\u0430\u043B\u0438\u0437\u0438\u0440\u043E\u0432\u0430\u0442\u044C \u043F\u0440\u0438\u043B\u043E\u0436\u0435\u043D\u0438\u0435.",retry_error:"\u041F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u044C \u043F\u043E\u043F\u044B\u0442\u043A\u0443",clear_cache_error:"\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u044C \u043A\u044D\u0448 \u0438 \u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u044C \u043F\u043E\u043F\u044B\u0442\u043A\u0443"},"sk-sk":{loading_aria_label:"Na\u010D\xEDtava sa...",oops_error_title:"Ach nie",oops_error:"Ach nie, nezn\xE1ma chyba!",oops_loading_error:"Ale nie, aplik\xE1ciu sa nepodarilo na\u010D\xEDta\u0165!",oops_init_error:"Ale nie, aplik\xE1ciu sa nepodarilo inicializova\u0165!",retry_error:"Zk\xFAsi\u0165 znova",clear_cache_error:"Vymaza\u0165 vyrovn\xE1vaciu pam\xE4\u0165 a sk\xFAsi\u0165 to znova"},"sl-si":{loading_aria_label:"Nalaganje...",oops_error_title:"Ojej",oops_error:"Ojej, neznana napaka.",oops_loading_error:"Aplikacije ni bilo mogo\u010De nalo\u017Eiti.",oops_init_error:"Aplikacije ni bilo mogo\u010De inicializirati.",retry_error:"Poskusi znova",clear_cache_error:"Po\u010Disti predpomnilnik in poskusi znova"},"sq-al":{loading_aria_label:"Duke u ngarkuar...",oops_error_title:"Mos!",oops_error:"Mos, gabim i panjohur!",oops_loading_error:"Oops, aplikacioni d\xEBshtoi t\xEB niset!",oops_init_error:"Oops, aplikacioni d\xEBshtoi t\xEB niset!",retry_error:"Riprovo",clear_cache_error:"Pastro memorien specifike dhe provo s\xEBrish"},"sr-cyrl-rs":{loading_aria_label:"\u0423\u0447\u0438\u0442\u0430\u0432\u0430\u045A\u0435 \u0458\u0435 \u0443 \u0442\u043E\u043A\u0443...",oops_error_title:"\u0423\u043F\u0441",oops_error:"\u0423\u043F\u0441, \u043D\u0435\u043F\u043E\u0437\u043D\u0430\u0442\u0430 \u0433\u0440\u0435\u0448\u043A\u0430!",oops_loading_error:"\u0423\u043F\u0441, \u0443\u0447\u0438\u0442\u0430\u0432\u0430\u045A\u0435 \u0430\u043F\u043B\u0438\u043A\u0430\u0446\u0438\u0458\u0435 \u043D\u0438\u0458\u0435 \u0443\u0441\u043F\u0435\u043B\u043E!",oops_init_error:"\u0423\u043F\u0441, \u0430\u043F\u043B\u0438\u043A\u0430\u0446\u0438\u0458\u0430 \u043D\u0438\u0458\u0435 \u0443\u0441\u043F\u0435\u043B\u0430 \u0434\u0430 \u0441\u0435 \u0438\u043D\u0438\u0446\u0438\u0458\u0430\u043B\u0438\u0437\u0443\u0458\u0435!",retry_error:"\u041F\u043E\u043A\u0443\u0448\u0430\u0458\u0442\u0435 \u043F\u043E\u043D\u043E\u0432\u043E",clear_cache_error:"\u041E\u0431\u0440\u0438\u0448\u0438 \u043A\u0435\u0448 \u0438 \u043F\u043E\u043A\u0443\u0448\u0430\u0458 \u043F\u043E\u043D\u043E\u0432\u043E"},"sr-latn-rs":{loading_aria_label:"U\u010Ditavanje\u2026",oops_error_title:"Ups",oops_error:"Ups, nepoznata gre\u0161ka!",oops_loading_error:"Ups, u\u010Ditavanje aplikacije nije uspelo!",oops_init_error:"Ups, pokretanje aplikacije nije uspelo!",retry_error:"Poku\u0161aj ponovo",clear_cache_error:"Obri\u0161i ke\u0161 i poku\u0161aj ponovo"},"sv-se":{loading_aria_label:"L\xE4ser in...",oops_error_title:"Hoppsan",oops_error:"Hoppsan, ok\xE4nt fel!",oops_loading_error:"Hoppsan, det gick inte att l\xE4sa in appen!",oops_init_error:"Hoppsan, det gick inte att initiera appen!",retry_error:"F\xF6rs\xF6k igen",clear_cache_error:"Rensa cacheminnet och f\xF6rs\xF6k igen"},"th-th":{loading_aria_label:"\u0E01\u0E33\u0E25\u0E31\u0E07\u0E42\u0E2B\u0E25\u0E14...",oops_error_title:"\u0E02\u0E2D\u0E2D\u0E20\u0E31\u0E22",oops_error:"\u0E02\u0E2D\u0E2D\u0E20\u0E31\u0E22 \u0E02\u0E49\u0E2D\u0E1C\u0E34\u0E14\u0E1E\u0E25\u0E32\u0E14\u0E17\u0E35\u0E48\u0E44\u0E21\u0E48\u0E23\u0E39\u0E49\u0E08\u0E31\u0E01",oops_loading_error:"\u0E02\u0E2D\u0E2D\u0E20\u0E31\u0E22 \u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E42\u0E2B\u0E25\u0E14\u0E41\u0E2D\u0E1B\u0E44\u0E14\u0E49!",oops_init_error:"\u0E02\u0E2D\u0E2D\u0E20\u0E31\u0E22 \u0E44\u0E21\u0E48\u0E2A\u0E32\u0E21\u0E32\u0E23\u0E16\u0E40\u0E23\u0E34\u0E48\u0E21\u0E41\u0E2D\u0E1B\u0E44\u0E14\u0E49!",retry_error:"\u0E25\u0E2D\u0E07\u0E2D\u0E35\u0E01\u0E04\u0E23\u0E31\u0E49\u0E07",clear_cache_error:"\u0E25\u0E49\u0E32\u0E07\u0E41\u0E04\u0E0A\u0E41\u0E25\u0E49\u0E27\u0E25\u0E2D\u0E07\u0E2D\u0E35\u0E01\u0E04\u0E23\u0E31\u0E49\u0E07"},"tr-tr":{loading_aria_label:"Y\xFCkleniyor...",oops_error_title:"Hay aksi",oops_error:"Hay aksi, bilinmeyen hata!",oops_loading_error:"Ne yaz\u0131k ki uygulama y\xFCklenemedi.",oops_init_error:"Ne yaz\u0131k ki uygulama ba\u015Flat\u0131lamad\u0131.",retry_error:"Yeniden dene",clear_cache_error:"\xD6nbelle\u011Fi temizle ve yeniden dene"},"uk-ua":{loading_aria_label:"\u0417\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0435\u043D\u043D\u044F\u2026",oops_error_title:"\u041E\u0442\u0430\u043A\u043E\u0457",oops_error:"\u041D\u0435\u0432\u0456\u0434\u043E\u043C\u0430 \u043F\u043E\u043C\u0438\u043B\u043A\u0430",oops_loading_error:"\u041D\u0430 \u0436\u0430\u043B\u044C, \u043D\u0435 \u0432\u0434\u0430\u043B\u043E\u0441\u044F \u0437\u0430\u0432\u0430\u043D\u0442\u0430\u0436\u0438\u0442\u0438 \u043F\u0440\u043E\u0433\u0440\u0430\u043C\u0443.",oops_init_error:"\u041D\u0430 \u0436\u0430\u043B\u044C, \u043D\u0435 \u0432\u0434\u0430\u043B\u043E\u0441\u044F \u0456\u043D\u0456\u0446\u0456\u0430\u043B\u0456\u0437\u0443\u0432\u0430\u0442\u0438 \u043F\u0440\u043E\u0433\u0440\u0430\u043C\u0443.",retry_error:"\u0421\u043F\u0440\u043E\u0431\u0443\u0432\u0430\u0442\u0438 \u0437\u043D\u043E\u0432\u0443",clear_cache_error:"\u041E\u0447\u0438\u0441\u0442\u0438\u0442\u0438 \u043A\u0435\u0448 \u0456 \u043F\u043E\u0432\u0442\u043E\u0440\u0438\u0442\u0438 \u0441\u043F\u0440\u043E\u0431\u0443"},"uz-latn-uz":{loading_aria_label:"Yuklanmoqda...",oops_error_title:"Voy!",oops_error:"Voy, noma\u02BClum xato!",oops_loading_error:"Voy, ilova yuklanmadi!",oops_init_error:"Voy, ilova ishga tushmadi!",retry_error:"Qayta urinish",clear_cache_error:"Keshni tozalab, qayta urinib ko\u02BBring"},"vi-vn":{loading_aria_label:"\u0110ang t\u1EA3i...",oops_error_title:"R\u1EA5t ti\u1EBFc",oops_error:"R\u1EA5t ti\u1EBFc, l\u1ED7i kh\xF4ng x\xE1c \u0111\u1ECBnh!",oops_loading_error:"R\u1EA5t ti\u1EBFc, kh\xF4ng t\u1EA3i \u0111\u01B0\u1EE3c \u1EE9ng d\u1EE5ng!",oops_init_error:"R\u1EA5t ti\u1EBFc, kh\xF4ng kh\u1EDFi t\u1EA1o \u0111\u01B0\u1EE3c \u1EE9ng d\u1EE5ng!",retry_error:"Th\u1EED l\u1EA1i",clear_cache_error:"X\xF3a b\u1ED9 nh\u1EDB \u0111\u1EC7m v\xE0 th\u1EED l\u1EA1i"},"zh-cn":{loading_aria_label:"\u6B63\u5728\u52A0\u8F7D...",oops_error_title:"\u7CDF\u7CD5",oops_error:"\u7CDF\u7CD5\uFF0C\u672A\u77E5\u9519\u8BEF!",oops_loading_error:"\u7CDF\u7CD5\uFF0C\u5E94\u7528\u52A0\u8F7D\u5931\u8D25!",oops_init_error:"\u7CDF\u7CD5\uFF0C\u5E94\u7528\u65E0\u6CD5\u521D\u59CB\u5316!",retry_error:"\u91CD\u8BD5",clear_cache_error:"\u6E05\u9664\u7F13\u5B58\u5E76\u91CD\u8BD5"},"zh-tw":{loading_aria_label:"\u6B63\u5728\u8F09\u5165...",oops_error_title:"\u7CDF\u7CD5",oops_error:"\u7CDF\u7CD5\uFF0C\u767C\u751F\u672A\u77E5\u7684\u932F\u8AA4!",oops_loading_error:"\u7CDF\u7CD5\uFF0C\u7121\u6CD5\u8F09\u5165\u61C9\u7528\u7A0B\u5F0F\u3002",oops_init_error:"\u7CDF\u7CD5\uFF0C\u7121\u6CD5\u521D\u59CB\u5316\u61C9\u7528\u7A0B\u5F0F!",retry_error:"\u91CD\u8A66",clear_cache_error:"\u6E05\u9664\u5FEB\u53D6\u4E26\u91CD\u8A66"}};var Ft=function(e){return e.None="None",e.Core="Core",e.MeetNow="MeetNow",e.Loading="Loading",e.Main="Main",e.Mini="Mini",e.ChatPopout="ChatPopout",e.Meeting="Meeting",e.Presenter="Presenter",e}({}),Un=function(e){return e.ButtonsOnly="ButtonsOnly",e.FullWidth="FullWidth",e}({}),Fn=function(e){return e.TopLeft="TopLeft",e.TopRight="TopRight",e.BottomLeft="BottomLeft",e.BottomRight="BottomRight",e}({}),ur=function(e){return e.Hidden="Hidden",e.Visible="Visible",e.Disabled="Disabled",e}({}),zn=function(e){return e.Rectangle="Rectangle",e}({}),Bn=function(e){return e.Subtract="Subtract",e}({}),pr=function(e){return e.Meeting="Meeting",e.Send="Send",e}({}),de=function(e){return e.Leave="Leave",e.Stay="Stay",e}({}),zt=function(e){return e.Left="Left",e.Right="Right",e}({}),Hn=function(e){return e.Left="Left",e.Center="Center",e.Right="Right",e.Start="Start",e.End="End",e}({}),Vn=function(e){return e.Top="Top",e.Center="Center",e.Bottom="Bottom",e}({}),Gn=function(e){return e.Hide="Hide",e.Show="Show",e.ShowNoActivate="ShowNoActivate",e.Maximize="Maximize",e.Minimize="Minimize",e.Restore="Restore",e.FullScreen="FullScreen",e}({}),jn=function(e){return e.Meeting="Meeting",e.Chat="Chat",e.CallMonitor="CallMonitor",e}({}),xe=function(e){return e.Inside="Inside",e.Outside="Outside",e}({}),$n=function(e){return e.Unknown="Unknown",e.ConflictingVisibility="ConflictingVisibility",e.InvalidPersistedWindowType="InvalidPersistedWindowType",e.PlacementPersistenceNotEnabled="PlacementPersistenceNotEnabled",e.ScreenNotFound="ScreenNotFound",e.WindowAlignmentTargetWindowNotFound="WindowAlignmentTargetWindowNotFound",e.WindowAlignmentInvalidPreference="WindowAlignmentInvalidPreference",e}({});function be(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class mn{async showTitleBar({showActionButtons:t}={showActionButtons:!1}){const n=this.document.getElementById("pre-core-title-bar");if(n&&(n.classList.add("show"),n.removeAttribute("aria-hidden"),n.classList.remove("hide-delayed-animation")),await(await this.getWindowControlsModule())?.isCustomFrameRenderingButtons?.()){const a=this.document.getElementById("pre-core-action-buttons");a?.parentNode?.removeChild(a)}else t&&this.showActionButtons()}hideTitleBar(){const t=this.document.getElementById("pre-core-title-bar");if(t){t.setAttribute("aria-hidden","true"),t.classList.remove("show");const n=t.cloneNode(!0);t.parentNode?.replaceChild(n,t)}this.disposeWindowStateChangeSubscription&&this.disposeWindowStateChangeSubscription()}showActionButtons(){this.document.getElementById("pre-core-action-buttons")?.classList.add("show");const t=this.document.getElementById("pre-core-title-bar-minimize-button");t&&(t.onclick=()=>this.minimizeWindow());const n=this.document.getElementById("pre-core-title-bar-maximize-restore-button");n&&(this.displayMaximumOrRestoreIcon(),n.onclick=()=>this.maximizeRestoreHandler(),this.registerForWindowStateChange());const r=this.document.getElementById("pre-core-title-bar-close-button");r&&(r.onclick=()=>this.closeWindow())}closeWindow(){this.window.close()}async displayMaximumOrRestoreIcon(t){const n=this.document.getElementById("pre-core-maximize-icon"),r=this.document.getElementById("pre-core-restore-icon");if(!n||!r)return;let i=t;i||(i=await this.getWindowState()),i?.maximized?(n.classList.add("hide"),r.classList.remove("hide")):(n.classList.remove("hide"),r.classList.add("hide"))}async getWindowControlsModule(){return this.windowControlsModule||(this.windowControlsModule=await this.hostCommunication?.loadModule("windowcontrols")),this.windowControlsModule}async getWindowId(){return this.permanentWindowId?this.permanentWindowId:(await this.getWindowControlsModule())?.getWindowByTag?.(Ft.Main)}async getWindowState(){const t={minimized:!1,maximized:!1,fullscreen:!1,closed:!1},n=await this.getWindowId();return n?await(await this.getWindowControlsModule())?.getWindowState?.(n)||t:(this.logger?.errorNoPii?.("Window ID is invalid."),t)}async maximizeWindow(){const t=await this.getWindowId(),n=await this.getWindowControlsModule();return t&&n?.maximize?.(t)}async minimizeWindow(){const t=await this.getWindowId(),n=await this.getWindowControlsModule();return t&&n?.minimize?.(t)}async restoreWindow(){const t=await this.getWindowId(),n=await this.getWindowControlsModule();return t&&n?.restore?.(t)}async registerForWindowStateChange(){if(this.disposeWindowStateChangeSubscription)return;const t=await this.getWindowControlsModule(),n=async r=>{if(!r){this.logger?.errorNoPii?.("No data of window state changed event was found.");return}const i=await this.getWindowId();if(!r.windowId||i&&r.windowId!==i){this.logger?.errorNoPii?.(`WindowId was not match. ${r.windowId}, current window id: ${i}`);return}this.displayMaximumOrRestoreIcon(r.placement)};this.disposeWindowStateChangeSubscription=t?.registerForWindowStateChanged?.(n)}constructor(t,n,r,i){be(this,"window",void 0),be(this,"permanentWindowId",void 0),be(this,"logger",void 0),be(this,"hostCommunication",void 0),be(this,"windowControlsModule",void 0),be(this,"disposeWindowStateChangeSubscription",void 0),be(this,"document",void 0),be(this,"maximizeRestoreHandler",void 0),this.window=t,this.permanentWindowId=n,this.logger=r,this.hostCommunication=i,this.maximizeRestoreHandler=async()=>{(await this.getWindowState())?.maximized?await this.restoreWindow():await this.maximizeWindow(),await this.displayMaximumOrRestoreIcon()},this.document=this.window.document}}const _n=["aao","abh","abv","acm","acq","acw","acx","acy","adf","ads","ae","aeb","aec","afb","ajp","apc","apd","ar","arb","arc","arq","ars","ary","arz","auz","avl","ayh","ayl","ayn","ayp","bbz","bcc","bqi","ckb","dv","fa","glk","hbo","he","jpr","ku","men","mzn","nqo","pbt","pbu","peo","pes","pga","pnb","prd","prp","prs","ps","pst","sam","sd","shu","sqr","ssh","ug","ur","xaa","xmn","ydd","yhd","yi","yih","yud","pseudo_rtl"];function Yn(e){const t=e.trim().split("-")[0].toLocaleLowerCase();return _n.indexOf(t)>-1}var g=h(20003);const o=(e,t)=>{const n=Yn(t),r=e.document.documentElement;r.setAttribute("lang",t),r.setAttribute("dir",n?"rtl":"ltr")},l=(e,t)=>{e.document.title=`${t} | Microsoft Teams`},u=e=>{e.document.documentElement.classList.add("mica")},S=e=>{e.document.documentElement.classList.add("flyout")},K=(e,t)=>te(e,{...ee(["content","focusable","nonce","onclick"],["link","meta","script","#comment","!doctype"],{RETURN_DOM:!1,WHOLE_DOCUMENT:!0}),TRUSTED_TYPES_POLICY:t}),Y=(e,t)=>te(e,{...ee(["content","focusable","onclick"],["#comment"],{RETURN_DOM:!0,WHOLE_DOCUMENT:!1,FORCE_BODY:!0}),TRUSTED_TYPES_POLICY:t}),ee=(e,t,n)=>({ADD_ATTR:e,ADD_TAGS:t,RETURN_TRUSTED_TYPE:!0,...n}),te=(e,t)=>(0,g.sanitize)(e,t),dt="teams-precache-v2",ne="react-web-client",wn="client-start-failure-count",vn=2;async function gr(e,t){let n=!1,r="unRegisterServiceWorker skipped";if(!("serviceWorker"in e.navigator))return t?.log(`${r}, since ServiceWorker is not available`),!1;try{const i=new URL("serviceworker.js",e.location.href).pathname,a=await e.navigator.serviceWorker.getRegistration(i);if(a)if(await a.unregister())n=await e.caches.delete(dt),n?(e.localStorage.removeItem(`${nt}${rt}`),r="ServiceWorker successfully unregister and cache deleted"):r="Unregister ServiceWorker succeed, but deleting cache failed";else return t?.error("ServiceWorker unregister failed"),!1;else r=`${r}, no active ServiceWorker`}catch(i){return t?.error(`ServiceWorker unregister failed with error: ${i.message}`),!1}return t?.log(r),n}function zr(e,t){const n=fr(e,t);e.localStorage.removeItem(n)}function Br(e,t,n){if(e.navigator?.serviceWorker?.controller?.state!=="activated")return!1;let i=0;const a=fr(e,t);let s=!1;try{const c=e.localStorage.getItem(a);c&&(i=parseInt(c,10)||0),i{this.updateCarouselText(t)},Hr)))}showTitleBarIfRequired(){this.platformService.deeplinkTarget!=="flyout"&&this.titleBarHandler.showTitleBar({showActionButtons:this.platformService.isMaglev})}async startPulseAnimation(){const t=Zn(this.platformService.platformId),n=jr(this.platformService.environment),r=n&&t,i=this.window.document.getElementById("pre-core-title-bar-logo");if(i&&i.classList.add("hide"),n&&!r)return;const a=this.window.document.getElementById("loading-screen"),s=this.window.document.getElementById("loading-screen-logo");if(a){if((t||r)&&s)if(s.classList.add("scale-animation-T2_1"),this._enable2025BrandIcons)s.classList.add("t2-icon-2025"),this._animationTimeout=this.window.setTimeout(()=>{s?.classList.add("t2-icon-2025-glint")},Vr);else if(this.platformService.platformId===B.Web)s.classList.add("t2-icon");else if(r)s.classList.add("t2-icon");else switch(this.platformService.appIconLabel){case"PRE":s.classList.add("t2-icon-pre");break;case"NEW":s.classList.add("t2-icon-new");break;default:s.classList.add("t2-icon");break}else a.classList.add("pulse-animation");const c=Ut[this.platformService.locale];c&&a.setAttribute("aria-valuetext",c.loading_aria_label)}}stopPulseAnimationAndHideLoadingScreen(){const t=this.window.document.getElementById("loading-screen"),n=Zn(this.platformService.platformId),r=this.window.document.getElementById("loading-screen-logo");if(t){t.setAttribute("aria-hidden","true");const i=({animationName:a})=>{a==="fade-out"&&(t.removeEventListener("animationend",i),t.remove())};n?r?.addEventListener("animationend",i):t.classList.remove("pulse-animation"),t.addEventListener("animationend",i),n?t.classList.add("fade-out-animation-T2_1"):t.classList.add("fade-out-animation")}this.window.clearInterval(this.carouselInterval),this.carouselInterval=void 0}hideErrorScreenElement(){this.window.document.getElementById("error-screen")?.classList.remove("show")}displayError(t){this.window.document.getElementById("error-screen")?.classList.add("show");const r=this.platformService.locale,i=Ut[r];if(!i)return;const a=this.window.document.getElementById("error-title"),s=this.window.document.getElementById("error-description"),c=this.window.document.getElementById("error-action");if(l(this.window,i.oops_error_title),a&&(a.innerText=i.oops_error_title),s){let _=i.oops_error;switch(t){case ie.loadingApp:_=i.oops_loading_error;break;case ie.coreInit:_=i.oops_init_error;break}s.innerText=_}c&&(c.innerText=i.retry_error,c.onclick=this.handleRetry);const d=this.window.document.getElementById("error-action-clear-cache");d&&(d.innerText=i.clear_cache_error,d.onclick=this.handleClearCacheAndRetry)}updateCarouselText(t){this.carouselIndex>0&&this.slideOutCarouselText();const n=this.window.document.getElementsByClassName("text-slider")[0];if(n){const r=this.window.document.createElement("div");r.innerText=t[this.carouselIndex%t.length],r.className="text-slide-in",n.appendChild(r)}this.carouselIndex++}slideOutCarouselText(){this.window.document.getElementsByClassName("text-slide-out")[0]?.remove();const t=this.window.document.getElementsByClassName("text-slide-in")[0];t&&(t.className="text-slide-out")}constructor(t,n,r,i,a){fe(this,"window",void 0),fe(this,"platformService",void 0),fe(this,"hostCommunication",void 0),fe(this,"experienceLoaderSettings",void 0),fe(this,"logger",void 0),fe(this,"titleBarHandler",void 0),fe(this,"carouselInterval",void 0),fe(this,"carouselIndex",void 0),fe(this,"_animationTimeout",void 0),fe(this,"_enable2025BrandIcons",void 0),fe(this,"handleClearCacheAndRetry",void 0),fe(this,"handleRetry",void 0),this.window=n,this.platformService=r,this.hostCommunication=i,this.experienceLoaderSettings=a,this.carouselIndex=0,this._enable2025BrandIcons=!1,this.handleClearCacheAndRetry=async()=>{await gr(this.window,this.logger),await this.handleRetry()},this.handleRetry=async()=>{this.window.sessionStorage.setItem(D.IsRelaunchFromOOPs,"1"),this.window.location.reload()},this.logger=t.newLogger("PreCoreUiAdapter","frameworks-loader"),this.titleBarHandler=new mn(this.window,void 0,this.logger,this.hostCommunication),this._enable2025BrandIcons=this.platformService.isTeams2025IconPackEnabled||this.experienceLoaderSettings?.enableSplashScreen2025||!1,this.logger.log(`enable2025BrandIcons: ${this._enable2025BrandIcons}, isTeams2025IconPackEnabled: ${this.platformService.isTeams2025IconPackEnabled}, experienceLoaderSettings.enableSplashScreen2025: ${this.experienceLoaderSettings?.enableSplashScreen2025}`)}}function Zn(e){return e===B.MaglevT21||e===B.MaglevMacT21||e===B.Web}function jr(e){return e==="life"}function je(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class $r{async showLoadingScreen(){const t=this.windowManager.getWindow(kt.Loading);if(!t){this.logger.logNoPii("No loading window will be shown.");return}await this.getOrCreateUiAdapter(t).showLoadingScreen()}showErrorScreen(t){const n=this.getErrorWindow();if(n){const r=this.getOrCreateUiAdapter(n);this.isErrorScreenVisible=!0,r.showErrorScreen(t),this.telemetryService.addUxStatus("FullPageErrorDisplayed"),this.telemetryService.sendNewScenarioThroughONEDS(tt.ShowPreCoreErrorPage,{reason:t!==void 0?ie[t]:void 0},"show_web_oops_page"),fn(n,this.loggerFactory)}}hideErrorScreen(){if(!this.isErrorScreenVisible)return;const t=this.getErrorWindow();t&&(this.getOrCreateUiAdapter(t).hideErrorScreen(),this.isErrorScreenVisible=!1)}getErrorWindow(){const t=this.windowManager.getWindow(kt.Error);if(!t){this.logger.warnNoPii("No error window will be shown.");return}return t}getOrCreateUiAdapter(t){return t.preCoreUiAdapter||(t.preCoreUiAdapter=new Gr(this.loggerFactory,t,this.platformService,this.hostCommunication,this.experienceLoaderSettings)),t.preCoreUiAdapter}constructor(t,n,r,i,a,s){je(this,"loggerFactory",void 0),je(this,"windowManager",void 0),je(this,"platformService",void 0),je(this,"telemetryService",void 0),je(this,"experienceLoaderSettings",void 0),je(this,"hostCommunication",void 0),je(this,"logger",void 0),je(this,"isErrorScreenVisible",void 0),this.loggerFactory=t,this.windowManager=n,this.platformService=r,this.telemetryService=i,this.experienceLoaderSettings=a,this.hostCommunication=s,this.isErrorScreenVisible=!1,this.logger=t.newLogger("PreCoreUiManager","frameworks-loader")}}var Bt=function(e){return e.flyout="flyout",e.iFrame="iFrame",e.primary="primary",e.secondary="secondary",e.immersive="immersive",e.notification="notification",e}({}),po=function(e){return e.standAlone="main",e.iframe="iFrame",e.secondary="MW",e.embedded="EDOM",e.worker="Worker",e}({}),mr=function(e){return e.flyout="flyout",e.main="main",e.notifications="notifications",e}({}),go=function(e){return e.owa="OWA",e.outlook="Outlook",e.officeOnline="OfficeOnline",e.wordWeb="WordWeb",e.word="Word",e.excelWeb="ExcelWeb",e.excel="Excel",e.powerPointWeb="PowerPointWeb",e.powerPoint="PowerPoint",e.lmsBlackBoard="BlackBoard",e.lmsCanvas="Canvas",e.lmsMoodle="Moodle",e.lmsBrightspace="Brightspace",e.lmsOther="OtherLMS",e.lmsOpenLMS="OpenLMS",e.lmsSchoology="Schoology",e.unknown="unknown",e.thirdParty="ThirdParty",e.dynamics="Dynamics",e.onePlayer="OnePlayer",e.devHost="DevHost",e.edge="Edge",e.purview="Purview",e.mesh="Mesh",e}({}),fo=function(e){return e.userInitiated="userInitiated",e}({}),mo=h(895522);const Yr="data:image";function _o(e,t){return new URL(e,t)}function wo(e,t,n,r){try{return t(new URL(n,r))}catch{return e}}function vo(e){const t=new URL(e),n="//";return t.protocol+n+t.host}function yo(e){return _r(e)}function bo(e){return _r(e,!0)}function _r(e,t=!1){try{let n=e;n.startsWith("blob:")&&(n=n.replace("blob:",""));const r=Kr(n.toLowerCase()),i=new URL(r);return i?t?(i.pathname||"")+(i.search||"")+(i.hash||""):i.hostname||"":e.toLowerCase()}catch{return e}}function So(e,t,n){if(!e)return"";if(e.startsWith("/"))return e;const r=e.indexOf(":");if(r<=0)return"";e=e.replace(/(\')/g,"%27"),e=e.replace(/(\")/g,"%22"),e=e.replace(/{/g,"%7B"),e=e.replace(/}/g,"%7D");const i=e.substring(0,r).toLowerCase();for(const a of t)if(i===a)return a==="blob"&&!n?.some(s=>Jr(e,new URL(s)?.origin??""))?"":e;return i==="http"?`https${e.substring(r)}`:""}function Zr(e,t){if(!t)return t;const n=new RegExp(`[?&]${e}=([^&#]*)`).exec(t);return n&&n.length>1?decodeURI(n[1]):""}function Co(e,t,n){if(!e||!t||e.match(new RegExp(`[?&]${t}=`)))return e;const i=`${e.indexOf("?")>=0?"&":"?"}${t}=${n}`;if(e.indexOf("#")!==-1){const a=e.split("#");return`${a[0]}${i}#${a[1]}`}return`${e}${i}`}const Jr=(e,t)=>Qr(e)?!1:new RegExp(`^(blob:)(${t})`,"i").test(e),ko=e=>/^(data:)/i.test(e),Eo=e=>/^(http)(s?):\/\//i.test(e);function To(e){if(!e||e.startsWith("/")&&!e.startsWith("//"))return!1;try{return new URL(e).port.length>0}catch{return!1}}const xo=e=>(e.charAt(0)!=="/"&&(e=`/${e}`),e);function Lo(e,t){if(!e||!t)return e;const n=e.indexOf("?");if(n<0)return e;let r=e.indexOf("#");r<0&&(r=e.length);const i=e.substring(r),a=e.substring(0,n),s=e.substring(n+1,r),c=`${encodeURIComponent(t)}=`,d=s.split(/[&;]/g);return forEachRight(d,(_,T)=>{_.lastIndexOf(c,0)!==-1&&d.splice(T,1)}),`${a}${d.length>0?`?${d.join("&")}`:""}${i}`}function Io(e){return e&&(e.indexOf("#")>=0?e.substring(0,e.indexOf("#")):e)}function Kr(e){return hasProtocol(e)?e:`https://${e}`}const Ao=e=>(e.endsWith("/")||(e+="/"),e),Oo=e=>(e.endsWith("/")&&(e=e.slice(0,-1)),e);function Qr(e){return e.startsWith(Yr)}function Po(e,t,n,r){try{const i=new URL(e),a=i.pathname.split("/"),s=a.indexOf(n);return s===-1||s+1>=a.length||a[s+1]!==r?e:(a.splice(s+1,0,encodeURIComponent(t)),i.pathname=a.join("/"),i.toString())}catch{return e}}const Xr=(e,t)=>{const n=`theme-${t}`,r=qr(e);r?r!==n&&e.documentElement.classList.replace(r,`theme-${t}`):e.documentElement.classList.add(n)},qr=e=>{let t;return e.documentElement.classList.forEach(n=>{n.startsWith("theme")&&(t=n)}),t};function $e(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const wr="about:blank",ei=`${wr}?window=loading`,ti=`${wr}?minimize=true`;var ni=function(e){return e[e.None=0]="None",e[e.GlobalWindow=1]="GlobalWindow",e[e.PopoutWindow=2]="PopoutWindow",e[e.MinimizedPopoutWindow=3]="MinimizedPopoutWindow",e}(ni||{});class ri{getWindow(t){if(this.visibleWindow)return this.visibleWindow;const n=this.getRequiredWindowType(t);switch(n){case 0:return null;case 2:case 3:this.visibleWindow=this.createPopoutWindow(n);break;case 1:default:this.visibleWindow=this.window,Xr(this.visibleWindow.document,this.platformService.theme),this.writeTemplate(this.visibleWindow,!0);break}return this.platformService.isMaglev&&u(this.visibleWindow),this.platformService.deeplinkTarget==="flyout"&&S(this.visibleWindow),this.visibleWindow}getLoadingWindow(){if(this.visibleWindow&&this.platformService.isMaglev){const t=this.visibleWindow;return this.logger.logNoPii("Acquiring the visible window from the loader."),this.visibleWindow=null,t}return null}openWindowRequest(t,n,r){if(this.visibleWindow&&this.platformService.isMaglev){this.logger.logNoPii("Acquiring the visible window from the loader.");const i=this.visibleWindow;this.visibleWindow=null;const{viewportContext:a}=this.platformService;let s;if(t&&(s=Zr("window",t)),!s||this.getWindowTagFromViewportContext(a)===s)return this.resetLoadingWindow(t,n,r),i;i.close()}return this.logger.logNoPii(`url: '${t}' target: '${n}' features: '${r}'`),this.window.open(t,n,r)}createPopoutWindow(t){const n=t===3?ti:ei;this.logger.logNoPii("Getting loading window from Maglev client:",n);const r=this.window.open(n);if(!r){const i="Could not get loading window.";throw this.logger.errorNoPii(i),new Error(i)}return this.writeTemplate(r),r}getRequiredWindowType(t){const{isMaglev:n,deeplinkTarget:r}=this.platformService;if(this.logger.logNoPii("Determining window type based on:",{purpose:t,isMaglev:n,deeplinkTarget:r}),n){if(r==="core"&&this.config.enableNonRenderingCoreForNativeClient)switch(t){case kt.Error:return 3;default:return 0}if(this.config.enablePopoutWindowForNativeClient)return 2}return 1}writeTemplate(t,n=!1){const{__webpack_nonce__:r,__webpack_public_path__:i}=this.window,a=i&&`window.__webpack_public_path__="${i}"`,s={theme:this.platformService.theme,environment:this.platformService.environment,cspNonce:r,publicPathScript:a,containerVer:this.config.build,viewportContext:this.platformService.viewportContext,contentOnly:n},c=this.templateGenerator(s);if(n){const d=Y(c,this.dompurifyTrustedPolicy);t.document.body.append(...d.childNodes)}else{const d=K(c,this.dompurifyTrustedPolicy);t.document.write(d),t.document.close()}}async resetLoadingWindow(t,n,r){try{(await this.hostCommunication?.loadModule("core"))?.resetLoadingWindow?.({url:t,windowName:n,windowFeatures:r})}catch(i){this.logger.errorNoPii("Unable to reset loading window:",i)}}getWindowTagFromViewportContext(t){switch(t){case Bt.flyout:return mr.flyout;case Bt.primary:return mr.main;default:return}}constructor(t,n,r,i,a,s,c){$e(this,"window",void 0),$e(this,"config",void 0),$e(this,"templateGenerator",void 0),$e(this,"platformService",void 0),$e(this,"hostCommunication",void 0),$e(this,"dompurifyTrustedPolicy",void 0),$e(this,"visibleWindow",void 0),$e(this,"logger",void 0),this.window=t,this.config=n,this.templateGenerator=r,this.platformService=a,this.hostCommunication=s,this.dompurifyTrustedPolicy=c,this.visibleWindow=null,this.logger=i.newLogger("WindowManager","frameworks-loader"),this.dompurifyTrustedPolicy=t.trustedTypes?.createPolicy("@msteams/frameworks-loader#dompurify",{createHTML:d=>d,createScriptURL:()=>""})}}const ii=(e,t,n,r,i)=>new Dn(e,t,n,r,i),oi=(e,t,n,r,i,a)=>new ri(e,t,n,r,i,a),ai=(e,t,n,r,i,a)=>new $r(e,t,n,r,i,a),si=(e,t,n,r,i)=>new Pn(e,t,n,r,i);function vr(e){return new Promise((t,n)=>{e<0?n(new Error("negative timeout")):setTimeout(t,e)})}function Wo(e,t){return vr(t).then(e)}const li=(e,t)=>{const n=new URL(e.location.href);if(n.searchParams.has(sn)){n.searchParams.delete(sn);try{e.history.replaceState("","",n.href)}catch{t.logNoPii("[removeClientExperienceQspFromUrl] replaceState threw an error")}}};var yr=h(885262),ci=h.n(yr);function di(){return new Worker("/v2/worker/precompiled-web-worker-aabd0868e979ac22.js")}function hi(){return new Worker("/v2/worker/precompiled-web-worker-e7e295cfd225321c.js")}function ui(){return new SharedWorker("/v2/worker/precompiled-shared-worker-edcdebbaeb945fac.js")}function pi(){return new SharedWorker("/v2/worker/precompiled-shared-worker-f3d41022398e7444.js")}var yn=function(e){return e.ag08="ag08",e.ag09="ag09",e.dod="dod",e.gallatin="gallatin",e.gcc="gcc",e.gcchigh="gcchigh",e.life="life",e.prod="prod",e.bleu="bleu",e.delos="delos",e}({});const gi="precore-worker",br=(e,t,n,r,i,a,s,c,d,_,T,x,R,oe,me,ue=!1,Ie,Gt,qn,Ye,jt,$t,Yt)=>{const Tt=new Date(Date.now());let Ze={experienceName:e,ring:t,environment:n,sessionId:r,platformId:i,buildVersion:a,localeCode:s,workerId:c,preAuthUserId:d,publicPath:x,deviceId:R,isOcdi:oe,isPwa:me,workerChunkLoadMaxRetries:Gt,workerChunkLoadRetryDelay:qn,workerChunkLoadMaxRetryDelay:Ye,shouldFetchWorkerChunksBeforeImportScripts:jt,useDiagnosticsServiceV2:Ie,turboCohort:$t,enableLazyLoadedWorker:Yt,workerCreationTime:Tt.getTime(),...ue&&{date:`${Tt.getMonth()}-${Tt.getDate()}`}};return T!==void 0?Ze={...Ze,userConsoleLogLevel:T}:_!==void 0&&(Ze={...Ze,preECSConsoleLogLevel:_}),JSON.stringify(Ze)},Mo=e=>e.hash?JSON.parse(decodeURIComponent(e.hash.substr(1))):{};let Ht;const fi=(e,t,n)=>{if(Ht)return Ht;try{const r=n||"@msteams/core-cdl-worker-common#create-cdl-worker";return Ht=window.trustedTypes?.createPolicy(r,{createScriptURL:i=>Cr(i,t)}),Ht}catch(r){t.errorToTelemetry?.(`Create CDL worker URL trustedType policy failed. This is not a critical error, falling back to function validation. Error ${r}`,"cdl_worker_startup_error_trusted_policy",{endpointUrl:e},!0)}},Ro=()=>{Ht=void 0},Sr=(e,t,n,r,i,a,s)=>{class c{constructor(_){const T=r?`${_}#${r}`:_;mi(t,T,!1,typeof e==typeof Worker?"cdlWorker":"cdlsharedWorker",n),i?.(T);const R=fi(T,t,a);if(R){const me=R.createScriptURL(T);return s?.(Date.now()),new e(me)}const oe=Cr(T,t);return s?.(Date.now()),new e(oe)}}return c},mi=(e,t,n,r,i)=>{e.log(`{"hostRendererId":${r},"component":${i} Creating CDL Worker with ${n?"passed":"determined"} url ${t} }`)};function Cr(e,t){try{const n=new URL(e,kr().location.origin);let r=!0,i="CDL Web worker URL is invalid.";if(n.origin!==kr().location.origin&&(i=i.concat("OriginValidationFailed"),r=!1),r)return e;throw new Error(i)}catch(n){t.errorToTelemetry?.("CDL web worker url is not valid","cdl_worker_startup_error_invalid_url",{endpointUrl:e},!0);const r=new Error(n.message);throw r.name="InvalidUrl",r}}function kr(){return window}function he(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class _i{initPrecoreWorker(t){const n=br(this.config.experienceName,this.ring,yn[t.environment],t.sessionId,this.platformService.platformId,t.buildVersion,t.locale,this.workerId,t.preAuthUserId,this.platformService.preECSConsoleLogLevel,this.platformService.userConsoleLogLevel,this.webpackPublicPath,t.deviceId,this.platformService.isOcdi,t.isPwa,void 0,this.config.useDiagnosticsServiceV2,this.experienceLoaderSettings.workerChunkLoadMaxRetries,this.experienceLoaderSettings.workerChunkLoadRetryDelay,this.experienceLoaderSettings.workerChunkLoadMaxRetryDelay,this.experienceLoaderSettings.shouldFetchWorkerChunksBeforeImportScripts,this.config.turboCohort,this.experienceLoaderSettings.enableLazyLoadedWorker),r=Worker;Worker=Sr(r,this.logger,"ExperienceLoader",n,a=>{this.cdlWorkerUrl=a},"@msteams/frameworks-loader#create-cdl-worker",a=>{this.workerInitializationTime=a});let i;this.experienceLoaderSettings?.enableLazyLoadedWorker?i=new hi:i=new di,Worker=r,this.worker=i,i.onerror=a=>{this.logger.error(`Error in worker: ${a.message}`),this.workerErrorBuffer.push(a)}}initPrecoreSharedWorker(t){const n=br(this.config.experienceName,this.ring,yn[t.environment],this.config.experienceName==="embed-client"?ci().get("sessionId"):t.sessionId,this.platformService.platformId,t.buildVersion,t.locale,this.workerId,t.preAuthUserId,this.platformService.preECSConsoleLogLevel,this.platformService.userConsoleLogLevel,this.webpackPublicPath,t.deviceId,this.platformService.isOcdi,t.isPwa,this.config.limitCDLSharedWorkerConnectionTimeframe,this.config.useDiagnosticsServiceV2,this.experienceLoaderSettings.workerChunkLoadMaxRetries,this.experienceLoaderSettings.workerChunkLoadRetryDelay,this.experienceLoaderSettings.workerChunkLoadMaxRetryDelay,this.experienceLoaderSettings.shouldFetchWorkerChunksBeforeImportScripts,this.config.turboCohort,this.experienceLoaderSettings.enableLazyLoadedWorker),r=SharedWorker;SharedWorker=Sr(r,this.logger,"ExperienceLoader",n,a=>{this.cdlSharedWorkerUrl=a},void 0,a=>{this.workerInitializationTime=a});let i;this.experienceLoaderSettings?.enableLazyLoadedWorker?i=new pi:i=new ui,SharedWorker=r,this.sharedWorker=i,i.onerror=a=>{this.logger.error(`Error in worker: ${a.message}`),this.workerErrorBuffer.push(a)}}getWorkerId(){return this.workerId}getWorker(){return this.worker}getSharedWorker(){return this.sharedWorker}getCdlWorkerUrl(){return this.cdlWorkerUrl}getCdlSharedWorkerUrl(){return this.cdlSharedWorkerUrl}getWorkerInitializationTime(){return this.workerInitializationTime}getWorkerErrorBuffer(){return this.workerErrorBuffer}clearWorker(){this.worker=void 0,this.cdlWorkerUrl=void 0,this.sharedWorker=void 0,this.cdlSharedWorkerUrl=void 0,this.workerInitializationTime=void 0,this.workerId="",this.workerErrorBuffer=[]}constructor(t,n,r,i,a){he(this,"config",void 0),he(this,"platformService",void 0),he(this,"logger",void 0),he(this,"experienceLoaderSettings",void 0),he(this,"worker",void 0),he(this,"workerId",void 0),he(this,"sharedWorker",void 0),he(this,"cdlWorkerUrl",void 0),he(this,"cdlSharedWorkerUrl",void 0),he(this,"webpackPublicPath",void 0),he(this,"ring",void 0),he(this,"workerInitializationTime",void 0),he(this,"workerErrorBuffer",void 0),this.config=n,this.platformService=r,this.logger=i,this.experienceLoaderSettings=a,this.workerErrorBuffer=[],this.webpackPublicPath=t.__webpack_public_path__;const s=this.platformService.ring;this.ring=!s||s==="unknown"?"general":s,this.workerId=gi}}var Z=function(e){return e[e.None=0]="None",e[e.Error=1]="Error",e[e.Warn=2]="Warn",e[e.Info=3]="Info",e[e.Debug=4]="Debug",e[e.Verbose=5]="Verbose",e[e.Max=6]="Max",e}({}),wi=h(774899),vi=h.n(wi);function bn(e){return e==null||e.length===0?e:` ${e}`.substr(1)}function Er(e,t){const n=new WeakSet;return JSON.stringify(e,(r,i)=>{if(!n.has(i)){if(i&&typeof i=="object"){if(n.add(i),i instanceof Map||i instanceof Set)return Array.from(i);if(i instanceof Error)return`${i.name}: ${i.message}`;if(i.constructor&&i.constructor!==Object&&i.constructor!==Array||i.prototype)return}return i}},t)}function yi(e){if(e===null)return"null";if(e===void 0)return"undefined";const t=typeof e;if(t==="string")return e;if(t==="number"||t==="boolean")return String(e);if(t==="function")return"";if(vi()(e))return e.toISOString();try{return JSON.stringify(e)}catch{return Er(e)}}function bi(e,t){return t|e}function Tr(e,t){return`${Ae}.${t}.${e}`}var Vt=function(e){return e[e.None=0]="None",e[e.LoggedInConsole=1]="LoggedInConsole",e[e.AddedIntoDiagnostics=2]="AddedIntoDiagnostics",e[e.ThrottledForDiagnostics=4]="ThrottledForDiagnostics",e[e.SentToTelemetry=8]="SentToTelemetry",e}({});function Jn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const Si="localDebug";class Ci{log(t,...n){return this.invoke(console.log,t,Z.Info,!1,...n)}warn(t,...n){return this.invoke(console.warn,t,Z.Warn,!1,...n)}error(t,...n){const r=this.invoke(console.error,t,Z.Error,!1,...n);return this.diagnosticsService.persistDiagnostics(),r}debug(t,...n){return this.enableDebugLogging?this.invoke(console.debug,t,Z.Debug,!1,...n):Vt.None}logNoPii(t,...n){return this.invoke(console.log,t,Z.Info,!0,...n)}warnNoPii(t,...n){return this.invoke(console.warn,t,Z.Warn,!0,...n)}errorNoPii(t,...n){const r=this.invoke(console.error,t,Z.Error,!0,...n);return this.diagnosticsService.persistDiagnostics(),r}debugNoPii(t,...n){return this.enableDebugLogging?this.invoke(console.debug,t,Z.Debug,!0,...n):Vt.None}invoke(t,n,r,i,...a){n=bn(`${this.label}: ${n}`);let s=Vt.None;if((r<=Z.Warn||this.enableDebugLogging)&&(t.call(console,n,...a),s=s||Vt.LoggedInConsole),r0){const c=a.map(d=>yi(d)).join(", ");n=bn(`${n} ${c}`)}this.diagnosticsService.pushDiagnosticsEvent(r,n,i),s=bi(s,Vt.AddedIntoDiagnostics)}return s}constructor(t,n,r){Jn(this,"diagnosticsService",void 0),Jn(this,"label",void 0),Jn(this,"enableDebugLogging",void 0),this.diagnosticsService=n,this.label=r,this.enableDebugLogging=!1;try{this.enableDebugLogging=t.localStorage.getItem(Si)==="true"}catch{}}}function Le(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const Kn="loaderDiagnostics",xr="previousLoaderDiagnostics",Lr=512,ki="...",Ir="=====";class Ei{pushDiagnosticsEvent(t,n,r){this._isLoaderCompleted||this.pushDiagnosticsEventInternal(t,n,r)}completeDiagnostics(){this._isLoaderCompleted||(this.persistDiagnostics()&&(this.eventsBufferArray=[]),this._isLoaderCompleted=!0)}persistDiagnostics(){if(this._isLoaderCompleted)return!1;let t=!1;try{t=this.persistDiagnosticsLogsInternal(this.window.localStorage,this.eventsBufferArray,this.getStorageKey(Kn))}catch(n){this.pushDiagnosticsEvent(Z.Error,`LoaderDiagnosticsService: window_localstorage save logs failure, ${n?.name}`,!0)}return t}getDiagnosticsEvents(){return Promise.resolve(this.eventsBufferArray)}async getLogsFiles(t){const n=this.getLogsFromLocalStorage(this.window.localStorage,this.getStorageKey(xr),!!t);let r="";return this._isLoaderCompleted&&this.eventsBufferArray.length===0?r=this.getLogsFromLocalStorage(this.window.localStorage,this.getStorageKey(Kn),!!t):r=await this.getDiagnosticsLogs(!!t),Promise.resolve([{isPiiFree:!0,fileName:"loader-diagnostics-logs-previous-session.txt",content:n||"No logs found"},{isPiiFree:!0,fileName:"loader-diagnostics-logs.txt",content:r||"No logs found"}])}getSystemInfo(){return Promise.resolve(new Map)}persistDiagnosticsAsPreviousSessionLogs(){if(!this._previousSessionLogsPersisted){this._previousSessionLogsPersisted=!0;try{let t=this.eventsBufferArray;if(this._isLoaderCompleted&&t.length===0){const n=this.getLogsArrayFromLocalStorage(this.window.localStorage,this.getStorageKey(Kn),!0);n&&n.logsArray.length>0&&(t=n.logsArray)}t.length>0&&this.persistDiagnosticsLogsInternal(this.window.localStorage,t,this.getStorageKey(xr))}catch(t){this.pushDiagnosticsEvent(Z.Error,`LoaderDiagnosticsService: persist previous session logs failure, ${t?.name}`,!0)}}}setSessionId(t){this._sessionId=t}addEvent(t){this.eventsBufferArray.length>=this.DEFAULT_QUEUE_CAPACITY&&this.eventsBufferArray.shift(),this.eventsBufferArray.push(t)}async getDiagnosticsLogs(t){const n=await this.getDiagnosticsEvents();return this.formatEvents(t?this.filterLogsForPiiFreeOnly(n):n)}filterLogsForPiiFreeOnly(t){return t.length?t.filter(n=>n.isPiiFree):t}formatEvents(t){if(!t||t.length===0)return"";let n="";const r=3;return t.forEach(i=>{if(i)if(i.message?.startsWith(Ir)&&i.message?.endsWith(Ir))n+=` ${i.message}\r `;else{const a=typeof i.timeStamp?.toISOString=="function"?i.timeStamp.toISOString():i.timeStamp,s=typeof i.levelName=="string"?i.levelName.substring(0,r):"unknownLevelName";n+=`${a} ${s} ${i.message}\r `}}),bn(n)}persistDiagnosticsLogsInternal(t,n,r){let i=!1;if(!t)return i;try{const a=Er({sessionId:this._sessionId,logsArray:n});t.setItem(r,a),i=!0}catch{}return i}convertToDiagnostisEvent(t){const n={message:`DiagnosticsService - Converting event from localStorage failed - ${t}`,isPiiFree:!0,level:Z.Error,levelName:"error",timeStamp:new Date};try{const r=t;if("timeStamp"in r){if(typeof r.timeStamp=="string")if(!isNaN(Date.parse(r.timeStamp)))r.timeStamp=new Date(r.timeStamp);else return n;return r}}catch{}return n}pushDiagnosticsEventInternal(t,n,r,i){n.length>Lr&&(n=n.substring(0,Lr)+ki),n=bn(n);const a={message:n,level:t,levelName:Z[t],timeStamp:i||new Date,isPiiFree:r};return this.addEvent(a),a}getLogsFromLocalStorage(t,n,r){let i="";try{const a=this.getLogsArrayFromLocalStorage(t,n,!1);a&&a.logsArray.length>0&&(r&&(a.logsArray=this.filterLogsForPiiFreeOnly(a.logsArray)),i=this.formatEvents(a.logsArray))}catch{i="Session logs parsing failed"}return i}getLogsArrayFromLocalStorage(t,n,r){let i=t.getItem(n);if(i)try{const a=JSON.parse(i);if(i=null,a)return r&&t.removeItem(n),"logsArray"in a?{sessionId:a.sessionId,logsArray:a.logsArray.map(s=>this.convertToDiagnostisEvent(s))}:{sessionId:"",logsArray:a}}catch{}}constructor(t,n){Le(this,"window",void 0),Le(this,"loaderConfig",void 0),Le(this,"DEFAULT_QUEUE_CAPACITY",void 0),Le(this,"eventsBufferArray",void 0),Le(this,"_previousSessionLogsPersisted",void 0),Le(this,"_isLoaderCompleted",void 0),Le(this,"_sessionId",void 0),Le(this,"logsProviderName",void 0),Le(this,"newLogger",void 0),Le(this,"getStorageKey",void 0),this.window=t,this.loaderConfig=n,this.DEFAULT_QUEUE_CAPACITY=200,this.eventsBufferArray=[],this._previousSessionLogsPersisted=!1,this._isLoaderCompleted=!1,this._sessionId="",this.logsProviderName="LoaderDiagnosticsService",this.newLogger=r=>new Ci(this.window,this,`[ExpLoader] ${r}`),this.getStorageKey=r=>Tr(r,this.loaderConfig.experienceName),t?.addEventListener&&t.addEventListener("beforeunload",()=>{this.persistDiagnosticsAsPreviousSessionLogs()})}}const Ar={"az-az":"az-latn-az","be-by":"ru-ru","de-at":"de-de","de-ch":"de-de","de-li":"de-de","de-lu":"de-de","en-029":"en-us","en-au":"en-gb","en-bz":"en-us","en-ca":"en-gb","en-ie":"en-gb","en-in":"en-gb","en-jm":"en-us","en-my":"en-gb","en-nz":"en-gb","en-ph":"en-us","en-sg":"en-gb","en-tt":"en-us","en-za":"en-gb","en-zw":"en-gb","es-419":"es-es","es-ar":"es-mx","es-bo":"es-mx","es-cl":"es-mx","es-co":"es-mx","es-cr":"es-mx","es-do":"es-mx","es-ec":"es-mx","es-gt":"es-mx","es-hn":"es-mx","es-ni":"es-mx","es-pa":"es-mx","es-pe":"es-mx","es-pr":"es-mx","es-py":"es-mx","es-sv":"es-mx","es-us":"es-mx","es-uy":"es-mx","es-ve":"es-mx","fl-ip":"en-us","fr-be":"fr-fr","fr-ch":"fr-fr","fr-lu":"fr-fr","fr-mc":"fr-fr","it-ch":"it-it","iu-latn":"iu-latn-ca","ky-kg":"ru-ru","lb-lu":"de-de","mn-mong":"mn-mong-mn","nl-be":"nl-nl","qut-gt":"es-es","quz-pe":"es-es","sr-cyrl":"sr-cyrl-rs","sr-latn":"sr-latn-rs","sr-rs":"sr-latn-rs","sv-fi":"sv-se","tg-cyrl-tj":"ru-ru","tk-tm":"ru-ru","tt-ru":"ru-ru","ug-cn":"zh-cn","wo-sn":"fr-fr","zh-chs":"zh-cn","zh-cht":"zh-tw","zh-hans-cn":"zh-cn","zh-hans-sg":"zh-cn","zh-hans":"zh-cn","zh-hant-hk":"zh-tw","zh-hant-mo":"zh-tw","zh-hant-tw":"zh-tw","zh-hant":"zh-tw","zh-hk":"zh-tw","zh-mo":"zh-tw","zh-sg":"zh-cn",af:"af-za",am:"am-et",ar:"ar-sa",as:"as-in",az:"az-latn-az",ba:"ba-ru",bg:"bg-bg",bo:"bo-cn",brx:"brx-in",bs:"bs-latn-ba",ca:"ca-es",cs:"cs-cz",cy:"cy-gb",da:"da-dk",de:"de-de",dsb:"dsb-de",dv:"dv-mv",el:"el-gr",en:"en-us",es:"es-es",et:"et-ee",eu:"eu-es",fa:"fa-ir",fi:"fi-fi",fil:"fil-ph",fo:"fo-fo",fr:"fr-fr",ga:"ga-ie",gl:"gl-es",gu:"gu-in",ha:"ha-latn-ng",he:"he-il",hi:"hi-in",hr:"hr-hr",hsb:"hsb-de",hu:"hu-hu",hy:"hy-am",id:"id-id",ig:"ig-ng",is:"is-is",it:"it-it",ja:"ja-jp",ka:"ka-ge",kk:"kk-kz",km:"km-kh",kn:"kn-in",ko:"ko-kr",ks:"ks-deva-in",ky:"ky-kg",ln:"ln-cd",lo:"lo-la",lt:"lt-lt",lv:"lv-lv",mg:"mg-mg",mi:"mi-nz",mk:"mk-mk",ml:"ml-in",mni:"mni-in",mr:"mr-in",ms:"ms-my",mt:"mt-mt",my:"my-mm",nb:"nb-no",ne:"ne-np",nl:"nl-nl",nn:"nn-no",or:"or-in",pa:"pa-in",pl:"pl-pl",prs:"prs-af",pt:"pt-br",ro:"ro-ro",ru:"ru-ru",rw:"rw-rw",sd:"sd-deva-in",si:"si-lk",sk:"sk-sk",sl:"sl-si",so:"so-so",sq:"sq-al",sr:"sr-latn-rs",st:"st-ls",sv:"sv-se",sw:"sw-tz",ta:"ta-in",te:"te-in",th:"th-th",ti:"ti-et",tk:"tk-tm",tn:"tn-bo",to:"to-to",tr:"tr-tr",tt:"tt-ru",uk:"uk-ua",ur:"ur-pk",uz:"uz-latn-uz",vi:"vi-vn",yo:"yo-ng",zh:"en-us",zu:"zu-za"},Ti=["sq-al","af-za","ar-sa","az-latn-az","eu-es","bg-bg","bs-latn-ba","ca-es","zh-cn","zh-sg","zh-hk","zh-mo","zh-tw","hr-hr","cs-cz","da-dk","nl-be","nl-nl","en-au","en-bz","en-ca","en-029","en-in","en-ie","en-jm","en-my","en-nz","en-ph","en-sg","en-za","en-tt","en-gb","en-us","en-zw","et-ee","fa-ir","fil-ph","fi-fi","fr-be","fr-ca","fr-fr","fr-lu","fr-mc","fr-ch","gl-es","ka-ge","de-at","de-de","de-li","de-lu","de-ch","el-gr","he-il","hi-in","hu-hu","is-is","id-id","it-it","it-ch","ja-jp","kk-kz","ko-kr","lv-lv","lt-lt","mk-mk","ms-my","mt-mt","nb-no","nn-no","pl-pl","pseudo","pseudo_rtl","pt-br","pt-pt","ro-ro","fl-ip","ru-ru","sr-cyrl-rs","sr-latn-rs","sk-sk","sl-si","es-ar","es-ve","es-bo","es-cl","es-co","es-cr","es-do","es-ec","es-sv","es-gt","es-hn","es-mx","es-ni","es-py","es-pa","es-pe","es-pr","es-es","es-us","es-uy","sv-fi","sv-se","th-th","tr-tr","uk-ua","ca-es-valencia","vi-vn","cy-gb"],Do=e=>{for(const t of e){const n=Or(t);if(n.locale!==null)return n.originalLocale=e.toLocaleString(),n}return{locale:"en-us",reason:"No supported language found - falling back to en-us",originalLocale:e.toLocaleString()}},Qn=e=>{const t=Or(e);return t.locale!==null?t:{locale:"en-us",reason:"No supported language found - falling back to en-us",originalLocale:e}},Or=e=>{const t=e.trim().toLowerCase();let n=Li(t);return Ar[n]?(n=Ar[n],{locale:n,reason:"Found in fallback table",originalLocale:e}):xi(n)?{locale:n,reason:"Supported language"}:{locale:null,reason:"Didn't find supported language.",originalLocale:e}},xi=e=>{const t=e.toLowerCase();for(const n of Ti)if(t===n.toLowerCase())return!0;return!1},Li=e=>{const n=new Date().getTimezoneOffset(),r=120,i=420;return e==="fr"&&n>=r&&n<=i?"fr-ca":e},No=e=>e.reason==="Supported language"||e.reason==="Found in fallback table",Uo=e=>{let t=e&&getAvailableLanguageByCode(e,!0);if(!t){const n=Qn(e||"")?.locale;t=getAvailableLanguageByCode(n,!0)}return t},Fo=e=>e.replace(/\s*\([^)]*\)/g,"");var zo=function(e){return e.Windows="windows",e.Mac="mac",e.Linux="linux",e.ChromeOS="chromeos",e.Android="android",e.IOS="ios",e.WindowsPhone="windowsphone",e.Unknown="unknown",e}({}),De=function(e){return e.Default="default",e.DefaultV2="defaultV2",e.DefaultTfl="tfl-default",e.Dark="dark",e.DarkV2="darkV2",e.DarkTfl="tfl-dark",e.HighContrast="contrast",e}({}),ht=function(e){return e.Dark="dark",e.Light="light",e.Contrast="contrast",e}({}),Bo=function(e){return e.Light="0",e.Dark="1",e.Contrast="2",e.DefaultV2="3",e.DarkV2="4",e.DefaultTfl="5",e.DarkTfl="6",e}({}),Ho=function(e){return e.HighContrast="#FFFFFF_#000000_#FFFF00",e}({}),Et=function(e){return e.ColorContrastOverride="(forced-colors: active)",e.Light="(prefers-color-scheme: light)",e.Dark="(prefers-color-scheme: dark)",e}({});const Ii="tmp.desktopTheme",Ai=(e,t)=>{try{if(e.matchMedia(Et.ColorContrastOverride).matches)return t?.log(`OS Theme Matches: ${Et.ColorContrastOverride}`),ht.Contrast;const n=e.localStorage.getItem(Ii);return n||(e.matchMedia(Et.Dark).matches?(t?.log(`OS Theme Matches: ${Et.Dark}`),ht.Dark):e.matchMedia(Et.Light).matches?(t?.log(`OS Theme Matches: ${Et.Light}`),ht.Light):(t?.log("OS Theme Matches: None. Returning theme type light."),ht.Light))}catch(n){t?.log(`Couldn't resolve getOsTheme: ${n.message}`);return}},Oi=e=>({[ht.Light]:e===yn.life?De.DefaultTfl:De.DefaultV2,[ht.Dark]:e===yn.life?De.DarkTfl:De.DarkV2,[ht.Contrast]:De.HighContrast}),Pr=(e,t)=>t[e]||De.DefaultV2,Pi=()=>({[Theme.Default]:ThemeType.Light,[Theme.DefaultV2]:ThemeType.Light,[Theme.DefaultTfl]:ThemeType.Light,[Theme.Dark]:ThemeType.Dark,[Theme.DarkV2]:ThemeType.Dark,[Theme.DarkTfl]:ThemeType.Dark,[Theme.HighContrast]:ThemeType.Contrast}),Wi=(e,t)=>t[e]||ThemeType.Light,Vo=e=>Wi(e,Pi()),Go=(e,t,n,r)=>{const i=e.getPreferences("theme")??{};return Wr(i,t,n,r)},Wr=(e,t,n,r)=>{const i=Mi(t);if(i)return i;if(e.followOsTheme){const a=Ai(t,r);if(a)return Pr(a,n)}else if(e.userTheme)return Pr(e.userTheme,n);return De.DefaultV2},Mi=e=>{const n=new URLSearchParams(e.location.search).get("theme");if(n){const r=Object.keys(De).find(i=>i.toUpperCase()===n.toUpperCase());return De[r]}};function U(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const Ri="buildNumber",Di="logLevel",Ni="(display-mode: standalone)";class Ui{get appIconLabel(){return this._appIconLabel}get isTeams2025IconPackEnabled(){return this._isTeams2025IconPackEnabled}get environment(){return this._environment===void 0&&(this._environment=It(this.window,this._headConfig)),this._environment}get pdsEnvironment(){return this._headConfig?.pdsEnvironment}get indexVersionQSP(){return this._indexVersionQSP===void 0&&(this._indexVersionQSP=this.getindexVersionQSP()),this._indexVersionQSP}get isMaglev(){return this._isMaglev===void 0&&(this._isMaglev=ke(this.window)),this._isMaglev}get platformId(){return this._platformId===void 0&&(this._platformId=this.isMaglev?Jt(this.window):B.Web),this._platformId}get isOcdi(){return!!this.headConfig?.isOcdi}get enableSriForDynamicImports(){return this.headConfig.disableSriDI?!1:this.headConfig.unauthenticated?!!this.headConfig.enableSriDIUnauthenticated:!0}get enableEarlyServiceWorkerRegistration(){return!!this.headConfig.enableEarlyServiceWorkerRegistration}get isPwa(){return!!this.window.matchMedia(Ni).matches}get deeplinkTarget(){return this._deeplinkTarget===void 0&&(this._deeplinkTarget=this.getHashItem("deepLink")),this._deeplinkTarget}get viewportContext(){return this._viewportContext===void 0&&(this.deeplinkTarget==="flyout"?this._viewportContext=Bt.flyout:this._viewportContext=Bt.primary),this._viewportContext}get theme(){return this._theme===void 0&&(this._theme=this.getTheme()),this._theme}get locale(){return this._locale===void 0&&(this._locale=this.detectLocale()),this._locale}get bootType(){return this._bootType===void 0&&(this._bootType=this.getBootTypeInternal()),this._bootType}get buildVersion(){return this.config?.build||this._headConfig?.buildVersion||""}get ring(){if(this.bootType===w.Local){const n=this.getRingFromQSP();if(n)return n}const t=this._headConfig?.ring;return t?typeof t=="string"?t:t.id||"unknown":"unknown"}getCookieByName(t){return yr.get(t)}get headConfig(){return this._headConfig||(this._headConfig=E(this.window,this.logger)),this._headConfig}get deeplinkId(){return this._deeplinkId===void 0&&(this._deeplinkId=this.getHashItem("deeplinkId")),this._deeplinkId}get networkState(){return this._networkState==="suspectedOnline"&&!this.window.navigator.onLine&&(this._networkState="unstable"),this._networkState}get preECSConsoleLogLevel(){if(this.userConsoleLogLevel===void 0){if(this._preECSConsoleLogLevel===void 0)if(this.bootType===w.Local)this._preECSConsoleLogLevel=Z.Warn;else{let t=this.ring;const n=this.getRingFromQSP();n&&(t=n),t.indexOf("general")>=0||t.indexOf("ring3")>=0?this._preECSConsoleLogLevel=Z.None:this._preECSConsoleLogLevel=Z.Warn}return this._preECSConsoleLogLevel}}get userConsoleLogLevel(){if(this._userConsoleLogLevel===void 0)try{const t=this.window.localStorage.getItem(Di);if(t){const n=parseInt(t,10);n>=Z.None&&n<=Z.Max&&(this._userConsoleLogLevel=n)}}catch{this.logger?.warnNoPii("The `logLevel` value in localStorage is not valid")}return this._userConsoleLogLevel}get activeServiceWorkerVersion(){return this._activeServiceWorkerVersion}get activeServiceWorkerVersionPromise(){return this._getServiceWorkerVersionPromise}async loadHostCapabilities(t){try{const r=await(await t?.loadModule("hostcapabilities"))?.getInitialCapabilities?.()??[];for(const i of r)i.name==="appIconLabel"?this._appIconLabel=i.value?`${i.value}`:void 0:i.name==="localMigratedSettings"?this.loadMigratedLocale(i.value):i.name==="isTeams2025IconPackEnabled"&&(this._isTeams2025IconPackEnabled=i.value===!0)}catch{this.logger?.logNoPii("Unable to load host capabilities")}}cleanUpNetworkStateListener(){this.window.removeEventListener("online",this.onlineHandler),this.window.removeEventListener("offline",this.offlineHandler)}loadMigratedLocale(t){if(typeof t!="string"){this.logger?.logNoPii("localMigratedSettings is not a string.");return}try{const n=JSON.parse(t);this._migratedLocale=n.language?`${n.language}`:void 0}catch{this.logger?.errorNoPii("Unable to parse migrated locale.")}}getTheme(){const t=Oi(this.environment);return Wr(this.getThemeValueFromStorage(),this.window,t,this.logger)}getBootTypeInternal(){const t=this.config?.build,n=this.config?.experienceName;if(!t)return this.logger?.errorNoPii("build number is missing"),w.Unknown;if(!n)return this.logger?.errorNoPii("experience name is missing"),w.Unknown;const r=this.window.localStorage.getItem(Tr(Ri,n)),i=this.getAppBootType(t,r);return i===w.Unknown?this.logger?.errorNoPii(`Build Number Format Is Invalid. CurrentBuildNumber: ${t}, PreviousBuildNumber: ${r}`):this.logger?.logNoPii(`App boot type: ${i}`),i}getAppBootType(t,n){if(t&&t.toLowerCase().startsWith("local"))return w.Local;if(t&&t.toLowerCase().includes("oncdn"))return w.Container;if(n){if(n.toLowerCase().startsWith("local"))return w.Cold;if(n.toLowerCase().includes("oncdn"))return w.Cold}if(!Ue(this.window))return w.Cold;if(!n)return w.Warm;const r=Number(t),i=Number(n);return isNaN(r)||isNaN(i)?w.Unknown:ri?w.Update:w.Warm}getindexVersionQSP(){let t="";const n=new URL(this.window.location.href);return n.searchParams.get("container")&&(t=`${t};container`),n.searchParams.get("version")&&(t=`${t};version`),n.searchParams.get("ring")&&(t=`${t};ring`),n.searchParams.get("clearcontainer")&&(t=`${t};clearcontainer`),t.length>0?t.substring(1):""}getHashItem(t){if(this._urlSearchParams===void 0){let n=this.window.location.hash||"";n.startsWith("#")&&(n=n.substr(1)),this._urlSearchParams=new URLSearchParams(decodeURIComponent(n))}return this._urlSearchParams.get(t)}setInitConsoleLogLevel(){this.window.defaultConsoleLogLevel||(this.window.defaultConsoleLogLevel={userConsoleLogLevel:this.userConsoleLogLevel,preECSConsoleLogLevel:this.preECSConsoleLogLevel})}getThemeValueFromStorage(){const t="local-user-preferences",n=`tmp.${this.config?.experienceName}.${t}`;if(n){const r=this.window.localStorage.getItem(n);if(r)return JSON.parse(r).theme}return{}}setUpNetworkStateListener(){this._networkState=this.window.navigator.onLine?"suspectedOnline":"suspectedOffline",this.window.addEventListener("online",this.onlineHandler),this.window.addEventListener("offline",this.offlineHandler)}getRingFromQSP(){const t=this.window.location.search;return!this._headConfig?.isInternalUser||!t?null:new URLSearchParams(t).get("ring")}readSettingsFromUrlHash(){try{const t=this.getHashItem("theme");this._theme=t||void 0;const n=this.getHashItem("language");this._migratedLocale=n||void 0,this.logger?.logNoPii(`${this._migratedLocale} locale and ${this._theme} theme parsed from URL hash`)}catch(t){this.logger?.errorNoPii(`Failed to parse theme and language settings from URL hash - ${t.message}`)}}setServiceWorkerVersion(){this.window.navigator.serviceWorker?.controller?(this._getServiceWorkerVersionPromise=kn(this.window,this.window.navigator.serviceWorker?.controller,this.logger),this._getServiceWorkerVersionPromise.then(n=>{this._activeServiceWorkerVersion=n})):this._activeServiceWorkerVersion=""}setPlatformIdCookie(){try{const t=new Date;t.setFullYear(t.getFullYear()+1),this.window.document.cookie=`platformId=${this.platformId}; expires=${t.toUTCString()}`,this.logger?.logNoPii?.(`Setting platformId cookie ${this.platformId}.`)}catch{this.logger?.errorNoPii?.("Setting platformId cookie failed.")}}constructor(t,n,r){U(this,"window",void 0),U(this,"config",void 0),U(this,"logger",void 0),U(this,"_appIconLabel",void 0),U(this,"_bootType",void 0),U(this,"_deeplinkId",void 0),U(this,"_deeplinkTarget",void 0),U(this,"_environment",void 0),U(this,"_headConfig",void 0),U(this,"_isMaglev",void 0),U(this,"_locale",void 0),U(this,"_migratedLocale",void 0),U(this,"_platformId",void 0),U(this,"_theme",void 0),U(this,"_urlSearchParams",void 0),U(this,"_viewportContext",void 0),U(this,"_preECSConsoleLogLevel",void 0),U(this,"_userConsoleLogLevel",void 0),U(this,"_networkState",void 0),U(this,"_activeServiceWorkerVersion",void 0),U(this,"_indexVersionQSP",void 0),U(this,"_getServiceWorkerVersionPromise",void 0),U(this,"_isTeams2025IconPackEnabled",void 0),U(this,"detectLocale",void 0),U(this,"onlineHandler",void 0),U(this,"offlineHandler",void 0),this.window=t,this.config=n,this.logger=r,this._appIconLabel=void 0,this._bootType=void 0,this._deeplinkId=void 0,this._deeplinkTarget=void 0,this._environment=void 0,this._headConfig=void 0,this._isMaglev=void 0,this._locale=void 0,this._migratedLocale=void 0,this._platformId=void 0,this._theme=void 0,this._urlSearchParams=void 0,this._viewportContext=void 0,this._preECSConsoleLogLevel=void 0,this._userConsoleLogLevel=void 0,this._networkState="unknown",this._activeServiceWorkerVersion=void 0,this._indexVersionQSP=void 0,this._getServiceWorkerVersionPromise=void 0,this._isTeams2025IconPackEnabled=!1,this.detectLocale=()=>this.window.localStorage.getItem("localeCode")||this._migratedLocale&&Qn(this._migratedLocale).locale||Qn(this.window.navigator.language).locale,this.onlineHandler=()=>{this._networkState==="suspectedOffline"&&(this._networkState="unstable",this.cleanUpNetworkStateListener())},this.offlineHandler=()=>{this._networkState==="suspectedOnline"&&(this._networkState="unstable",this.cleanUpNetworkStateListener())},this._headConfig=E(t,r),this._bootType=this.getBootTypeInternal(),this.setInitConsoleLogLevel(),this.setUpNetworkStateListener(),this.readSettingsFromUrlHash(),this.setServiceWorkerVersion(),this.logger?.logNoPii(`Index with QSP: ${this.indexVersionQSP}`),this.setPlatformIdCookie()}}const Fi=e=>{try{const t=Rr();if(t!==void 0)return t}catch(t){e.error(`Failed to get experience loader settings from local storage: ${t}`)}try{const t=document.head.getAttribute("data-config");return(t?JSON.parse(decodeURIComponent(t)):{}).experienceLoaderSettings||{}}catch(t){return e.error(`Failed to get experience loader settings from element: ${t}`),{}}},Mr=e=>`tmp.${e}.experience-loader-ecs-flags`,Rr=()=>{const e=Mr(globalThis.loaderConfig.experienceName),t=globalThis.localStorage.getItem(e);return t?JSON.parse(t):void 0},Dr=e=>{const t=Mr(globalThis.loaderConfig.experienceName);globalThis.localStorage.setItem(t,JSON.stringify(e))},jo=(e,t)=>{try{const n=Rr()||{},r=Bi(n,e);return r.length>0?(Dr(e),r):[]}catch(n){return t.error(`SetExperienceLoaderSettings - Failed to get experience loader settings in local storage: ${n}`),Dr(e),Object.keys(e)}},zi=(e,t)=>Array.isArray(e)&&Array.isArray(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e===t,Bi=(e,t)=>{const n=[];for(const r of Object.keys(e)){const i=e[r],a=t[r];!zi(i,a)&&!(i===!1&&a===void 0)&&n.push(r)}for(const r of Object.keys(t)){const i=e[r],a=t[r];i===void 0&&a!==void 0&&a!==!1&&n.push(r)}return n};function F(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const Xn={Created:"Created",CriticalError:"CriticalError",HostNotified:"HostNotified"};class Hi{getLogsProvider(){return this.diagnosticsService}clearLoaderMarks(){this.telemetryService.clearLoaderMarks()}async execute(){try{if(li(this.globalWindow,this.logger),this.redirectToOcdi(),this.preLoadCacheStorage(),this.config.loadingScreenDelayInMs||this.setExpLoaderTimer(),this.logger.logNoPii(Xn.HostNotified),await this.platformService.loadHostCapabilities(this.hostCommunication),this.diagnosticsService.setSessionId(this.telemetryService.sessionId||""),this.globalWindow?.performance?.mark("exp_loader_init"),this.telemetryService.addUxStatus("SplashScreenDisplayed"),this.uiManager.showLoadingScreen(),this.checkInput(),this.logger.logNoPii(`Loading build version: ${this.config.build}`),this.config.preInitWorker&&this.precoreWorkers.initPrecoreWorker(this.getProperties()),this.config.preInitSharedWorker&&this.precoreWorkers.initPrecoreSharedWorker(this.getProperties()),this.config.loadingScreenDelayInMs&&await vr(this.config.loadingScreenDelayInMs),this.globalWindow?.performance?.mark("show_loading_screen"),this.config?.manifest?.chunks&&this.config?.manifest?.chunks?.length>0)this.globalWindow.performance.mark(m.ConfigLoaded),this.loadingBundlesPromise=this.buildLoader.loadBuild(this.config.manifest),this.sendStepsToMaglev("exp_loader_steps_config_loaded"),await this.loadingBundlesPromise;else return this.globalWindow.performance.mark("exp_loader_err_manifest_chunks_empty"),this.showCriticalErrorScreen("ExpLoaderBuildDownloadFailure",new Error("Loader manifest is not valid"))}catch(t){return this.globalWindow.performance.mark("exp_loader_err_download_general_error"),this.sendStepsToMaglev("exp_loader_steps_general_error"),this.showCriticalErrorScreen("ExpLoaderBuildDownloadFailure",t)}try{this.diagnosticsService.persistDiagnostics(),this.globalWindow.performance.mark("exp_loader_before_core_init_start"),this.errorHappened?this.globalWindow.performance.mark("exp_loader_err_general_error_handler"):await this.waitForCoreInitStarted()}catch(t){return this.globalWindow.performance.mark("exp_loader_err_wait_for_core_init"),this.showCriticalErrorScreen("CoreInitBeginTimeout",t)}}async redirectToOcdi(){if(!this.ecsSettings.enableOCDIRedirects){this.logger.warnNoPii("OCDI redirect: Not redirecting - not enabled");return}const t=new URL(this.globalWindow.location.href),n=this.ecsSettings.ocdiRedirectCookieName||mt,r=this.ecsSettings.ocdiRedirectCookieAdditionalOptions||In;if(t.searchParams.has(Xe)){this.globalWindow.document.cookie=`${n}=; expires=${An}${r}`,this.logger.warnNoPii("OCDI redirect: Not redirecting - we arrived here due to a client redirect.");return}for(const _ of this.ecsSettings.ocdiNoRedirectQSPs||[])if(t.searchParams.has(_)){this.logger.warnNoPii(`OCDI redirect: Not redirecting - URL contains '${_}', which is a no-redirect QSP`);return}if(!this.globalWindow.document.cookie.split("; ").find(_=>_.startsWith(`${n}=`))){this.logger.logNoPii("OCDI redirect: Not redirecting - cookie not set");return}const a=this.ecsSettings.ocdiRedirectPath||"";let s;try{s=new URL(a,this.ecsSettings.ocdiRedirectBaseUri)}catch{this.logger.errorNoPii(`OCDI redirect: Not redirecting - could not parse assigned URL. assignedBaseUri: ${this.ecsSettings.ocdiRedirectBaseUri}, assignedPath: ${a}`);return}if(t.hostname===s.hostname&&t.pathname===s.pathname){this.logger.warnNoPii("OCDI redirect: Not redirecting - already on assigned URL");return}this.logger.warnNoPii("OCDI redirect: Redirecting to assigned URL");const d=new URL(this.globalWindow.location.href);d.hostname=s.hostname,d.pathname=s.pathname,d.searchParams.set(Xe,"index"),this.globalWindow.location.replace(d.href)}async preLoadCacheStorage(){const t=["provider-cache-storage","teams-labs-service-cache-storage"];for(const n of t)try{await(await caches.open(n)).keys()}catch{this.logger.warnNoPii(`Failed to pre-load CacheStorage: ${n}`)}}openWindow(t,n,r){return this.windowManager.openWindowRequest(t,n,r)}getLoadingWindow(){return this.windowManager.getLoadingWindow()}getErrorWindow(){return this.windowManager.getWindow(kt.Error)}getClientStartTelemetrySteps(){return this.telemetryService.getSuccessClientStartTelemetrySteps()}getProperties(){return{activeServiceWorkerVersion:this.platformService.activeServiceWorkerVersion,bootType:this.platformService.bootType,buildVersion:this.platformService.buildVersion,deeplinkId:this.platformService.deeplinkId,deeplinkTarget:this.platformService.deeplinkTarget,environment:this.platformService.environment,experienceName:this.config.experienceName,headConfig:this.platformService.headConfig,indexVersionQSP:this.platformService.indexVersionQSP,isMaglev:this.platformService.isMaglev,isPwa:this.platformService.isPwa,locale:this.platformService.locale,ring:this.platformService.ring,sessionId:this.telemetryService.sessionId,deviceId:this.telemetryService.deviceId,pdsEnvironment:this.platformService.pdsEnvironment,deviceInfo:this.telemetryService.deviceInfo,RelaunchReason:this.telemetryService.RelaunchReason,preAuthUserId:this.telemetryService.preAuthUserId,preCoreHostCommunication:this.hostCommunication,experienceLoaderSettings:this.ecsSettings,enableEarlyServiceWorkerRegistration:this.platformService.enableEarlyServiceWorkerRegistration,swCacheStatus:this.telemetryService.getSWCacheStatus()}}getInitConsoleLogLevel(){return{preECSConsoleLogLevel:this.platformService.preECSConsoleLogLevel,userConsoleLogLevel:this.platformService.userConsoleLogLevel}}getWorkerId(){return this.precoreWorkers.getWorkerId()}getWorker(){return this.precoreWorkers.getWorker()}getWorkerErrorBuffer(){return this.precoreWorkers.getWorkerErrorBuffer()}getSharedWorker(){return this.precoreWorkers.getSharedWorker()}getCdlWorkerUrl(){return this.precoreWorkers.getCdlWorkerUrl()}getCdlSharedWorkerUrl(){return this.precoreWorkers.getCdlSharedWorkerUrl()}getWorkerInitializationTime(){return this.precoreWorkers.getWorkerInitializationTime()}clearWorker(){this.precoreWorkers.clearWorker()}signalCoreInitStarted(){this.sendStepsToMaglev("exp_loader_steps_received_core_started"),this.logger.logNoPii("Received signal indicating core init started."),this.unregisterErrorHandlers(),this.waitForExpLoaderCompleteTimeout&&this.globalWindow.clearTimeout(this.waitForExpLoaderCompleteTimeout),this.waitForCoreInitStartTimeout&&this.globalWindow.clearTimeout(this.waitForCoreInitStartTimeout),this.coreInitStarted=!0,this.markIndexPageStop(),this.uiManager.hideErrorScreen(),this.resolveHandshakePromise&&(this.resolveHandshakePromise(),this.resolveHandshakePromise=void 0)}stopPieTimer(){this.waitForPieTimeout&&(this.logger.logNoPii("Stop the timer waiting for sending client_start events via PIE api."),this.globalWindow.clearTimeout(this.waitForPieTimeout),this.waitForPieTimeout=void 0,this.pieTimerStopped=!0,this.globalWindow.performance.mark("exp_loader_stop_pie_timer"),this.diagnosticsService.completeDiagnostics())}async onErrorHandler(t,n){this.unregisterErrorHandlers();let r=typeof t=="string"?t:[`Message: ${t?.message}`,`Filename: ${this.removeAllQSPandHash(t?.filename)}`,`Line: ${t?.lineno}`,`Column: ${t?.colno}`,`Error object: ${JSON.stringify(t?.error)}`].join(" - ");r=this.scrubQspEmailEuii(r)||"",this.globalWindow.performance.mark("exp_loader_err_global_window_error"),this.platformService.platformId===B.Web&&t?.message&&t.message.indexOf("Script error")>=0&&this.globalWindow.localStorage.setItem(Oe,"true"),await this.handleGeneralError(r,t,n)}async flushTelemetry(){return this.loadingBundlesPromise?(await this.loadingBundlesPromise,!0):!1}persistLoaderLogsAsPreviousSession(){this.diagnosticsService?.persistDiagnosticsAsPreviousSessionLogs()}async checkClientStartFailureCount(){if(this.clientStartFailureCountChecked||!this.platformService.headConfig.enableUnregisterSWWhenClientStartFail)return;this.clientStartFailureCountChecked=!0,Br(this.globalWindow,this.config.experienceName,this.logger)&&(await gr(this.globalWindow,this.logger),zr(this.globalWindow),this.telemetryService.sendNewScenarioThroughONEDS(tt.ClearSWForClientStartFailure,{Scenario_Status:"success"},"clear_sw_for_multiple_start_failure"))}checkInput(){if(this.platformService.isMaglev&&!this.platformService.deeplinkTarget){this.globalWindow.performance.mark(m.MissingDeepLink);const t="missing_deeplink";this.logger.errorNoPii(t),this.telemetryService.sendNewScenarioThroughONEDS(tt.WebClientInputInvalid,{reason:t},"miss_deeplink")}}markIndexPageStop(){tn(m.MainChunksLoadingStop,this.globalWindow.performance),this.globalWindow.performance.mark(m.IndexPageStop)}async loadCoreModule(){return this.coreModule?this.coreModule:this.hostCommunication?.loadModule("core")}async loadScenarioModule(){return this.scenarioModule||(this.scenarioModule=await this.hostCommunication?.loadModule("scenario")),this.scenarioModule}async sendStepsToMaglev(t){(await this.loadScenarioModule())?.setScenarioMarks?.("client_start",[{stepName:t,eventData:[{name:"scenarioPhase",value:"ExpLoader"}]}])}loadConfigOverrides(){try{const t=this.globalWindow.localStorage.getItem(M);if(t){const n=JSON.parse(t);this.config=Object.assign(this.config,n)}}catch(t){this.logger.logNoPii("Failed to load config overrides:",t)}}waitForCoreInitStarted(){return new Promise((t,n)=>{this.coreInitStarted?(this.logger.logNoPii("Core initialization has started."),this.pieTimerStopped||this.waitForPie(),t()):(this.logger.logNoPii("Waiting for core init start."),this.resolveHandshakePromise=t,this.waitForCoreInitStartTimeout=this.globalWindow.setTimeout(()=>{const r=`Core init hasn't started within ${rn} ms.`;this.logger.warnNoPii(r),this.telemetryService.failClientStartScenarioWithMarks([],se.Timeout,{reason:r}),n(new Error(r))},rn),this.pieTimerStopped||this.waitForPie())})}waitForPie(){this.waitForPieTimeout=this.globalWindow.setTimeout(()=>{const t=`Core init hasn't finished within ${Pt} ms.`;this.logger.warnNoPii(t),this.telemetryService.failClientStartScenarioWithMarks([],se.Timeout,{reason:t})},Pt)}setExpLoaderTimer(){this.waitForExpLoaderCompleteTimeout=this.globalWindow.setTimeout(()=>this.expLoaderTimeoutHandler(),on)}expLoaderTimeoutHandler(){this.waitForCoreInitStartTimeout&&this.globalWindow.clearTimeout(this.waitForCoreInitStartTimeout),this.waitForPieTimeout&&(this.globalWindow.clearTimeout(this.waitForPieTimeout),this.pieTimerStopped=!0);const t=`ExpLoader hasn't finished within ${on} ms.`;this.logger.warnNoPii(t),this.showCriticalErrorScreen("ExpLoaderBuildDownloadTimeout",new Error(t))}isTrustedTypeError(t){return t?t.indexOf("TrustedScriptURL")>=0||t.indexOf("TrustedHTML")>=0||t.indexOf("TrustedScript")>=0:!1}registerErrorHandlers(){this.onErrorHandlerCallback=t=>t&&`${t.message}${t.filename}`.indexOf("-extension://")>=0?(this.logger.log("onErrorHandlerCallback: Error is from extension, skip handling"),!0):this.isTrustedTypeError(t?.message)?(this.logger.errorNoPii(`onErrorHandlerCallback: TrustedTypeError: ${t?.message}.`),!0):(this.onErrorHandler(t).catch(n=>{this.logger.errorNoPii(`onErrorHandlerCallback: Error handling error: ${n?.message}.`)}),!0),this.globalWindow.addEventListener("error",this.onErrorHandlerCallback),this.unhandledRejectionHandlerCallback=t=>{this.unhandledRejectionHandler(t).catch(n=>{this.logger.errorNoPii(`unhandledRejectionHandlerCallback: Error handling unhandled rejection: ${n?.message}.`)})},this.globalWindow.addEventListener("unhandledrejection",this.unhandledRejectionHandlerCallback)}async unhandledRejectionHandler(t){this.unregisterErrorHandlers();let n="";if(t?.reason){let r="";try{r=JSON.stringify(t.reason)}catch{}r&&r!=="{}"?n=r:typeof t.reason=="object"&&(n=`${t.reason.message??""} ${t.reason.stack??""}`.trim())}n=n||"ExpLoaderUnhandledRejection",await this.handleGeneralError(n,t)}async handleGeneralError(t,n,r){this.errorHappened=!0,this.loadingBundlesPromise&&await this.loadingBundlesPromise,this.logger?.errorNoPii(t,"webclient_framework_exp_loader_event");const i=await this.checkIsChunkLoadingErrorFromSWCache(t);await this.telemetryService.failClientStartScenarioWithMarks(void 0,se.Failure,{reason:t,errorCode:N.ExpLoaderFailure,isLoadedFromServiceWorkerCache:i}),this.showCriticalErrorScreen(r||"CoreInitUnhandledPromiseRejectionFailure",new Error(t)),r==="CoreInitFailure"&&await this.checkClientStartFailureCount(),n?.preventDefault?.()}async showCriticalErrorScreen(t,n){this.waitForExpLoaderCompleteTimeout&&this.globalWindow.clearTimeout(this.waitForExpLoaderCompleteTimeout),this.waitForCoreInitStartTimeout&&this.globalWindow.clearTimeout(this.waitForCoreInitStartTimeout),this.logger.errorNoPii(Xn.CriticalError,n),await this.telemetryService.failClientStartScenarioWithMarks([],t==="ExpLoaderBuildDownloadTimeout"?se.Timeout:se.Failure,{reason:`Web critical error - ${n.message}`}),this.diagnosticsService?.persistDiagnosticsAsPreviousSessionLogs();const r=await this.loadCoreModule();if(r?.reportCriticalError)return r.reportCriticalError({type:t});let i;switch(t){case"ExpLoaderBuildDownloadFailure":case"ExpLoaderBuildDownloadTimeout":i=ie.loadingApp;break;case"CoreInitBeginTimeout":case"CoreInitFailure":case"CoreInitGlobalWindowErrorFailure":case"CoreInitUnhandledPromiseRejectionFailure":i=ie.coreInit;break}this.uiManager.showErrorScreen(i)}unregisterErrorHandlers(){this.onErrorHandlerCallback&&(this.globalWindow.removeEventListener("error",this.onErrorHandlerCallback),this.onErrorHandlerCallback=void 0),this.unhandledRejectionHandlerCallback&&(this.globalWindow.removeEventListener("unhandledrejection",this.unhandledRejectionHandlerCallback),this.unhandledRejectionHandlerCallback=void 0),this.platformService.cleanUpNetworkStateListener()}scrubQspEmailEuii(t){if(!t)return t;const n=new RegExp("=+[a-zA-Z0-9.!#$%&'*+\\/?^_`{|}~-]+(@|_(A|a)(T|t)_|%40)(?!(T|t)(H|h)(R|r)(E|e)(A|a)(D|d).(V|v)2)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*","g");let r=t;r=r.replace(n,"=email-euii");const i=new RegExp(/[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+.[a-zA-Z]{2,}/,"g");return r=r.replace(i,"=email-euii"),r}removeAllQSPandHash(t){if(!t)return t;try{const n=new URL(t);return n.search||n.hash?(n.search="",n.hash="",n.toString()):n.href}catch{const n=t.indexOf("?"),r=t.indexOf("#");let i=-1;return n>=0&&r>=0?i=n=0?i=n:r>=0&&(i=r),i===-1?t:t.substring(0,i)}}createHostCommunications(){if(this.globalWindow.nativeModules){const{Core:t,Osutils:n,Windowcontrols:r,Scenario:i,Telemetry:a,Hostcapabilities:s,Logscollection:c}=this.globalWindow.nativeModules;return{loadModule:async d=>{switch(d){case"core":return t;case"windowcontrols":return r;case"osutils":return n;case"scenario":return i;case"telemetry":return a;case"hostcapabilities":return s;case"logscollection":return c;default:return}}}}}async checkIsChunkLoadingErrorFromSWCache(t){let n="";try{if(t&&t.indexOf('"message":"Loading chunk')>=0){const r=JSON.parse(t.replace(/[\u0000-\u001F\u007F-\u009F]/g,""));r&&"request"in r&&r.request&&"name"in r&&r.name==="ChunkLoadError"&&(n=(await gt(r.request,this.globalWindow)).toString())}}catch{this.logger.errorNoPii("Parsing IsChunkLoadingErrorFromSWCache fail.")}return n}async registerSW(){try{if(this.platformService.platformId!==B.Web||!this.platformService.enableEarlyServiceWorkerRegistration||!this.globalWindow.navigator.serviceWorker||this.globalWindow.navigator.serviceWorker.controller)return;const t=window.trustedTypes?.createPolicy("@msteams/frameworks-loader#register-service-worker-early",{createScriptURL:this.createSWURL.bind(this)});if(t){this.globalWindow.performance.mark(m.RegisterServiceWorker);const n=new URL("serviceworker.js",this.globalWindow.location.href).pathname,r="all",i=await this.globalWindow.navigator.serviceWorker.register(t.createScriptURL(n),{updateViaCache:r}),a=i.installing||i.waiting||i.active;a&&(this.globalWindow.performance.mark(m.TriggerSWCacheMainChunks),this.requestSWToPreCacheMainChunks(a))}else this.logger.warnNoPii("trustedScriptURl for sw is NOT created")}catch(t){this.logger.error(`sw registration fail in expLoader: ${t}`)}}createSWURL(t){const n=new URL(t,this.globalWindow.location.origin);if(n.origin===this.globalWindow.location.origin)return n;throw new Error(`invalid swURL: ${n.href}`)}requestSWToPreCacheMainChunks(t){try{const n=this.getPreCacheChunkList();if(n&&n.length>0){const r=new MessageChannel;t.postMessage({message:"preCacheMainChunks",mainChunksArray:n},[r.port2])}this.globalWindow.localStorage.setItem(`${nt}${rt}`,_t)}catch{this.logger.error("Failed on triggering Service Worker preCacheMain chunks")}}getPreCacheChunkList(){const t=[];if(this.config?.manifest){const{asyncEntry:n,chunks:r,buildTimeConfigs:i}=this.config.manifest;if(i){const a=`config-${this.platformService.environment}`,s=i.filter(c=>c.path.indexOf(a)>=0);if(s.length>0){const c=s[0];t.push({url:c.path,integrity:c.integrity})}}if(r){n?.chunks?.length&&n.chunks.forEach(s=>t.push({url:s.path,integrity:s.integrity}));let a=r;this.platformService.enableSriForDynamicImports||(a=r.filter(s=>!s.isIntegritiesManifest)),a.forEach(s=>t.push({url:s.path,integrity:s.integrity}))}}return this.globalWindow.location.search||t.push({url:`${this.globalWindow.location.origin}${this.globalWindow.location.pathname}`}),t}constructor(t,n,r,i,a,s,c){F(this,"globalWindow",void 0),F(this,"config",void 0),F(this,"diagnosticsService",void 0),F(this,"logger",void 0),F(this,"platformService",void 0),F(this,"hostCommunication",void 0),F(this,"coreModule",void 0),F(this,"scenarioModule",void 0),F(this,"telemetryService",void 0),F(this,"windowManager",void 0),F(this,"uiManager",void 0),F(this,"buildLoader",void 0),F(this,"coreInitStarted",void 0),F(this,"pieTimerStopped",void 0),F(this,"errorHappened",void 0),F(this,"waitForCoreInitStartTimeout",void 0),F(this,"waitForPieTimeout",void 0),F(this,"waitForExpLoaderCompleteTimeout",void 0),F(this,"resolveHandshakePromise",void 0),F(this,"onErrorHandlerCallback",void 0),F(this,"unhandledRejectionHandlerCallback",void 0),F(this,"loadingBundlesPromise",void 0),F(this,"precoreWorkers",void 0),F(this,"ecsSettings",void 0),F(this,"clientStartFailureCountChecked",void 0),this.globalWindow=t,this.coreInitStarted=!1,this.pieTimerStopped=!1,this.errorHappened=!1,this.clientStartFailureCountChecked=!1,this.config=Object.assign(lt,n),this.diagnosticsService=new Ei(t,this.config),this.logger=this.diagnosticsService.newLogger("ExperienceLoader"),this.loadConfigOverrides(),this.platformService=new Ui(t,this.config,this.logger),this.platformService.isMaglev&&(this.hostCommunication=this.createHostCommunications()),this.telemetryService=i(t,this.diagnosticsService,this.platformService,this.hostCommunication,this.config),this.windowManager=a(t,this.config,r,this.diagnosticsService,this.platformService,this.hostCommunication),this.ecsSettings=Fi(this.logger),this.uiManager=s(this.diagnosticsService,this.windowManager,this.platformService,this.telemetryService,this.ecsSettings,this.hostCommunication),this.buildLoader=c(t,this.diagnosticsService,this.telemetryService,this.diagnosticsService,this.platformService),this.precoreWorkers=new _i(this.globalWindow,this.config,this.platformService,this.logger,this.ecsSettings),this.registerErrorHandlers(),this.logger.logNoPii(Xn.Created),this.registerSW()}}async function Vi(e){try{console.log("[ExpLoader] Getting things ready...");const t=window;await Gi(t);const n=new Hi(t,t.loaderConfig,e,ii,oi,ai,si);t.loader=n,await n.execute()}catch(t){throw console.error("[ExpLoader] Unhandled Exception:",t),t}}async function Gi(e){try{if(ke(e)&&"nativeModules"in e){e.performance.mark(m.NotifyDesktop);const t=e.nativeModules;t?.Core?.notifyLoaderStarted&&(await t.Core.notifyLoaderStarted(),console.log("[ExpLoader] notify loader started signal sent to desktop"))}}catch(t){console.error("[ExpLoader] notify loader started fail:",t)}}function ji(e){var t,n="",r=Array.prototype.join;function i(){n+=r.call(arguments,"")}return n+=`
`,e.titleBar&&(n+=`
`),n+=`
Loading...
`,n}function $i(e){var t,n="";return n+=``,n}function Yi(e){var t,n="";return n+=``,n}function Zi(e){var t,n="",r=Array.prototype.join;function i(){n+=r.call(arguments,"")}return n+=`
`,osPlatform==="windows"&&(n+=`
`),n+=`
`,n}function Ji(e){var t,n="",r=Array.prototype.join;function i(){n+=r.call(arguments,"")}return n}const Ki={splashStyles:$i,favicons:Yi,splash:ji,preloadTitleBar:Zi,devtools:Ji};function Qi(e){var t,n="",r=Array.prototype.join;function i(){n+=r.call(arguments,"")}n+=` `,e.htmlWebpackPlugin.options.isMainWindow&&(n+=`