");const E=q?q.createHTML(o):o;if(je===Se)try{c=new Rt().parseFromString(E,De)}catch{}if(!c||!c.documentElement){c=rt.createDocument(je,"template",null);try{c.documentElement.innerHTML=H?nt:E}catch{}}const Q=c.body||c.documentElement;return o&&h&&Q.insertBefore(M.createTextNode(h),Q.childNodes[0]||null),je===Se?We.call(c,Me?"html":"body")[0]:Me?c.documentElement:Q},Gn=function(o){return le.call(o.ownerDocument||o,o,et.SHOW_ELEMENT|et.SHOW_COMMENT|et.SHOW_TEXT|et.SHOW_PROCESSING_INSTRUCTION|et.SHOW_CDATA_SECTION,null)},jn=function(o){return o instanceof Pn&&(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 Mt)||typeof o.removeAttribute!="function"||typeof o.setAttribute!="function"||typeof o.namespaceURI!="string"||typeof o.insertBefore!="function"||typeof o.hasChildNodes!="function")},Yn=function(o){return typeof Wt=="function"&&o instanceof Wt},xe=function(o,c,h){ie[o]&&_(ie[o],E=>{E.call(m,c,h,Ye)})},Ce=function(o){let c=null;if(xe("beforeSanitizeElements",o,null),jn(o))return he(o),!0;const h=Z(o.nodeName);if(xe("uponSanitizeElement",o,{tagName:h,allowedTags:j}),o.hasChildNodes()&&!Yn(o.firstElementChild)&&X(/<[/\w]/g,o.innerHTML)&&X(/<[/\w]/g,o.textContent)||o.nodeType===Le.progressingInstruction||ye&&o.nodeType===Le.comment&&X(/<[/\w]/g,o.data))return he(o),!0;if(!j[h]||He[h]){if(!He[h]&&vn(h)&&(V.tagNameCheck instanceof RegExp&&X(V.tagNameCheck,h)||V.tagNameCheck instanceof Function&&V.tagNameCheck(h)))return!1;if(Ge&&!me[h]){const E=Oe(o)||o.parentNode,Q=Wn(o)||o.childNodes;if(Q&&E){const Y=Q.length;for(let ee=Y-1;ee>=0;--ee){const oe=An(Q[ee],!0);oe.__removalCount=(o.__removalCount||0)+1,E.insertBefore(oe,On(o))}}}return he(o),!0}return o instanceof cn&&!pr(o)||(h==="noscript"||h==="noembed"||h==="noframes")&&X(/<\/no(script|embed|frames)/i,o.innerHTML)?(he(o),!0):(Ve&&o.nodeType===Le.text&&(c=o.textContent,_([it,ot,vt],E=>{c=de(c,E," ")}),o.textContent!==c&&(J(m.removed,{element:o.cloneNode()}),o.textContent=c)),xe("afterSanitizeElements",o,null),!1)},wn=function(o,c,h){if(St&&(c==="id"||c==="name")&&(h in M||h in kt||h==="__depth"||h==="__removalCount"))return!1;if(!(Nt&&!yt[c]&&X(Rn,c))){if(!(at&&X(dn,c))){if(!$[c]||yt[c]){if(!(vn(o)&&(V.tagNameCheck instanceof RegExp&&X(V.tagNameCheck,o)||V.tagNameCheck instanceof Function&&V.tagNameCheck(o))&&(V.attributeNameCheck instanceof RegExp&&X(V.attributeNameCheck,c)||V.attributeNameCheck instanceof Function&&V.attributeNameCheck(c))||c==="is"&&V.allowCustomizedBuiltInElements&&(V.tagNameCheck instanceof RegExp&&X(V.tagNameCheck,h)||V.tagNameCheck instanceof Function&&V.tagNameCheck(h))))return!1}else if(!lt[c]){if(!X(Nn,de(h,Dt,""))){if(!((c==="src"||c==="xlink:href"||c==="href")&&o!=="script"&&U(h,"data:")===0&&Ft[o])){if(!(pn&&!X(Dn,de(h,Dt,"")))){if(h)return!1}}}}}}return!0},vn=function(o){return o!=="annotation-xml"&&ve(o,ur)},yn=function(o){xe("beforeSanitizeAttributes",o,null);const{attributes:c}=o;if(!c)return;const h={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:$};let E=c.length;for(;E--;){const Q=c[E],{name:Y,namespaceURI:ee,value:oe}=Q,ht=Z(Y);let te=Y==="value"?oe:gt(oe);if(h.attrName=ht,h.attrValue=te,h.keepAttr=!0,h.forceKeepAttr=void 0,xe("uponSanitizeAttribute",o,h),te=h.attrValue,h.forceKeepAttr||(Vt(Y,o),!h.keepAttr))continue;if(!fn&&X(/\/>/i,te)){Vt(Y,o);continue}if(ye&&X(/((--!?|])>)|<\/(style|title)/i,te)){Vt(Y,o);continue}Ve&&_([it,ot,vt],$t=>{te=de(te,$t," ")});const bn=Z(o.nodeName);if(wn(bn,ht,te)){if(Ct&&(ht==="id"||ht==="name")&&(Vt(Y,o),te=Et+te),q&&typeof wt=="object"&&typeof wt.getAttributeType=="function"&&!ee)switch(wt.getAttributeType(bn,ht)){case"TrustedHTML":{te=q.createHTML(te);break}case"TrustedScriptURL":{te=q.createScriptURL(te);break}}try{ee?o.setAttributeNS(ee,Y,te):o.setAttribute(Y,te),jn(o)?he(o):N(m.removed)}catch{}}}xe("afterSanitizeAttributes",o,null)},Zn=function f(o){let c=null;const h=Gn(o);for(xe("beforeSanitizeShadowDOM",o,null);c=h.nextNode();){if(xe("uponSanitizeShadowNode",c,null),Ce(c))continue;const E=Oe(c);c.nodeType===Le.element&&(E&&E.__depth?c.__depth=(c.__removalCount||0)+E.__depth+1:c.__depth=1),(c.__depth>=_n||c.__depth<0||Qt(c.__depth))&&he(c),c.content instanceof se&&(c.content.__depth=c.__depth,f(c.content)),yn(c)}xe("afterSanitizeShadowDOM",o,null)};return m.sanitize=function(f){let o=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},c=null,h=null,E=null,Q=null;if(H=!f,H&&(f=""),h=c.ownerDocument.importNode(f,!0),h.nodeType===Le.element&&h.nodeName==="BODY"||h.nodeName==="HTML"?c=h:c.appendChild(h);else{if(!Re&&!Ve&&!Me&&f.indexOf("<")===-1)return q&&ge?q.createHTML(f):f;if(c=$n(f),!c)return Re?null:ge?nt:""}c&&$e&&he(c.firstChild);const Y=Gn(st?f:c);for(;E=Y.nextNode();){if(Ce(E))continue;const oe=Oe(E);E.nodeType===Le.element&&(oe&&oe.__depth?E.__depth=(E.__removalCount||0)+oe.__depth+1:E.__depth=1),(E.__depth>=_n||E.__depth<0||Qt(E.__depth))&&he(E),E.content instanceof se&&(E.content.__depth=E.__depth,Zn(E.content)),yn(E)}if(st)return f;if(Re){if(bt)for(Q=Be.call(c.ownerDocument);c.firstChild;)Q.appendChild(c.firstChild);else Q=c;return($.shadowroot||$.shadowrootmode)&&(Q=Mn.call(I,Q,!0)),Q}let ee=Me?c.outerHTML:c.innerHTML;return Me&&j["!doctype"]&&c.ownerDocument&&c.ownerDocument.doctype&&c.ownerDocument.doctype.name&&X(In,c.ownerDocument.doctype.name)&&(ee=" `+ee),Ve&&_([it,ot,vt],oe=>{ee=de(ee,oe," ")}),q&&ge?q.createHTML(ee):ee},m.setConfig=function(){let f=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Ht(f),Ut=!0},m.clearConfig=function(){Ye=null,Ut=!1},m.isValidAttribute=function(f,o,c){Ye||Ht({});const h=Z(f),E=Z(o);return wn(h,E,c)},m.addHook=function(f,o){typeof o=="function"&&(ie[f]=ie[f]||[],J(ie[f],o))},m.removeHook=function(f){if(ie[f])return N(ie[f])},m.removeHooks=function(f){ie[f]&&(ie[f]=[])},m.removeAllHooks=function(){ie={}},m}var ln=Ot();return ln})},885262:(g,O,u)=>{var P,C;/*! * 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(T){var y;if(P=T,C=typeof P=="function"?P.call(O,u,O,g):P,C!==void 0&&(g.exports=C),y=!0,g.exports=T(),y=!0,!y){var k=window.Cookies,A=window.Cookies=T();A.noConflict=function(){return window.Cookies=k,A}}})(function(){function T(){for(var A=0,v={};A"u")){B=T({path:"/"},v.defaults,B),typeof B.expires=="number"&&(B.expires=new Date(new Date*1+B.expires*864e5)),B.expires=B.expires?B.expires.toUTCString():"";try{var ke=JSON.stringify(J);/^[\{\[]/.test(ke)&&(J=ke)}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 ve="";for(var de in B)B[de]&&(ve+="; "+de,B[de]!==!0&&(ve+="="+B[de].split(";")[0]));return document.cookie=N+"="+J+ve}}function _(N,J){if(!(typeof document>"u")){for(var B={},ke=document.cookie?document.cookie.split("; "):[],ve=0;ve{var P=u(577139),C=u(686019),T="[object Date]";function y(k){return C(k)&&P(k)==T}g.exports=y},907113:(g,O,u)=>{var P=u(139136),C=u(998458),T=u(9437),y=u(360982);function k(A,v){var D=y(A)?P:C;return D(A,T(v))}g.exports=k},774899:(g,O,u)=>{var P=u(312491),C=u(33876),T=u(653602),y=T&&T.isDate,k=y?C(y):P;g.exports=k},66551:(g,O,u)=>{var P=u(577139),C=u(866476),T="[object AsyncFunction]",y="[object Function]",k="[object GeneratorFunction]",A="[object Proxy]";function v(D){if(!C(D))return!1;var _=P(D);return _==y||_==k||_==T||_==A}g.exports=v},866476:g=>{function O(u){var P=typeof u;return u!=null&&(P=="object"||P=="function")}g.exports=O},951291:(g,O,u)=>{var P=u(994454),C=u(16483),T=u(617905);function y(k){return T(k)?P(k):C(k)}g.exports=y},292586:(g,O,u)=>{"use strict";function P(e){return!e||typeof e=="string"||typeof e=="number"||typeof e=="boolean"||typeof e=="bigint"||typeof e=="symbol"}function C(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(P(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 T(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=P(n)?n:JSON.stringify(n),e.stack=P(t)?t:JSON.stringify(t),e.code=P(r)?r:JSON.stringify(r),Reflect.preventExtensions(e)}}function y(e){return function(n){const r=n&&("error"in n&&n.error||"reason"in n&&n.reason);return e.setTimeout(()=>T(r),0),console.error("Unhandled error/rejection",n),n&&n.preventDefault&&n.preventDefault(),!0}}function k(e){C(e);const t=y(e);e.addEventListener("unhandledrejection",t),e.addEventListener("error",t)}function A(e){e._leakOverrides||(e._leakOverrides=!0,k(e))}var v=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}({}),_=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}({}),B=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}({}),ke=function(e){return e.Embed="embed",e}({}),ve=function(e){return e.Outlook="outlook",e.Unknown="unknown",e}({}),de=function(e){return e.Edge="edge",e.Safari="safari",e.Chrome="chrome",e.Firefox="firefox",e.Electron="electron",e.Unknown="unknown",e}({}),U=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}({}),gt=function(e){return e.Supported="Supported",e.Unsupported="Unsupported",e.Unknown="Unknown",e}({});const ae="prod",X="infer",Ue=2,Qt=/(maglev|Teams)\/(\d+\.\d+\.\d+\.\d+)/,re="teams-precache-v2";function ar(e){return e.includes("local")?"local":e.includes("-oncdn-")?"container":"production"}function L(e,t){try{const r=En(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 En(e){const t=e?.document.getElementsByTagName("head");if(t)return t[0]}function Te(e){const t=e?.navigator.userAgent||"";return t.indexOf("maglev/")!==-1||t.indexOf("Teams/")!==-1}function mt(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 U.MaglevT21;case"50":return U.MaglevMacT21;case"51":return U.MaglevRoomsT21}return U.Maglev}const Xt=e=>mt(e?.navigator.userAgent||"");function qt(e){const t=e.navigator.userAgent.match(Qt);return t&&t.length>Ue?t[Ue]:void 0}function It(e,t){let n=t?.environment||ae;return n===X&&(n=tn(e)),n}function sr(e){const t=e.config.clientType;return t!==ClientType.Web?t:e.config.isPwa?ClientType.PWA:t}const en=e=>e==="UpgradeNonBlocking"||e==="Warm",lr=e=>e==="Clean"||e==="UpgradeBlocking"||e===void 0||e===null;function tn(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 Fe(e){return e.navigator?.serviceWorker?.controller?.state==="activated"}function nn(e,t){const n=e&&Fe(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 _t(e,t,n){let r=!1;try{e&&Fe(t)&&(r=await t.caches.match(e,{cacheName:re})!==void 0)}catch{n?.error("Checking assets in sw cache failed")}return r}async function Pt(e,t,n){let r=!1;try{if(e&&Fe(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(l=>s.test(l.url))!==void 0&&(r=!0)}}}catch{n?.error(`Checking assets in sw cache by name failed, chunk name: ${e}`)}return r}const kn=5e3;async function Tn(e,t,n){let r="";try{if(t){let i=0;const a=new Promise(l=>{i=e.setTimeout(()=>{l()},kn)}),s=async()=>{r=await Ln(t,"getSWVersion"),e.clearTimeout(i),i=0};await Promise.race([s,a])}}catch{n?.error("Get registerred SW version failed.")}return r}async function Ln(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 cr(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 xn(e,t,n,r){let i;if(rn([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 rn(e,t){return!e.some(n=>t.getEntriesByName(n).length<=0)}function At(e,t){const n=t.getEntriesByName(e);if(n&&n.length>0)return n[0]}function on(e,t){At(e,t)===void 0&&t.mark(e)}function In(e,t,n,r){e.measure(t,n,r),e.clearMeasures(t),e.clearMarks(n),r&&e.clearMarks(r)}function dr(e,t,n){e.mark(t,n),e.clearMarks(t)}const Ae="tmp",Le=3,an=2,sn=4e4,Ot=145e3,ln=135e3,x=3,m=3e4,M=`${Ae}.experienceLoaderOverrides`,I=`${Ae}.numT2WebBootAttempts`,G=`${Ae}.lastT2WebBootAttemptRecordTime`,se=`${Ae}.isOptedIntoT2Web`,ze=`${Ae}.lastT2WebOptOutInfo`,Wt="ts.previousSessionLogs",cn="tmp.previousSessionLogs",et="tmp.previousSessionErrorLogs",Mt="tmp.forceT2Only",Pn="tmp.wasAutoOptedIntoT2Web",Rt="clientexperience",wt="ocdiRedirect",tt="ocdiRedirect",An=";path=/;secure;samesite=none;partitioned",On="Thu, 01 Jan 1970 00:00:00 GMT",Wn=3e4,Oe="tmp.globalScriptErrorFromPreviousSession",q=1e3,nt="/diagnostics/network",rt=[_.IndexPageReadStart,_.IndexPageStart,_.CoreModuleLoaded,_.NotifyDesktop,_.ConfigLoaded,_.MainChunksLoadingStart,_.MainChunksLoadingStop,_.IndexPageStop,_.AsyncEntryDownloadStart,_.AsyncEntryModuleFederationUrlsInited,_.AsyncEntryDownloadStop];var le=function(e){return e.Failure="failure",e.Timeout="timeout",e.Abandoned="abandoned",e}({}),Be=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 We(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 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(l=>l.path.indexOf(a)>=0);if(s.length>0){const l=s[0],d=this.globalWindow.document.createElement("link");d.href=l.path,d.as="script",d.rel="preload",l.integrity&&(d.integrity=l.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(_.MainChunksLoadingStart);try{this.diagnosticsService.persistDiagnostics();let s=[];if(n?.chunks?.length){const b=n.chunks.map(R=>this.loadScriptWithRetry(R,Le,an,a));s=await Promise.all(b)}let l=r;this.platformService.enableSriForDynamicImports||(l=r.filter(b=>!b.isIntegritiesManifest));const d=l.map(b=>this.loadScriptWithRetry(b,Le,an,a)),p=await Promise.all(d),w=[...s,...p];this.telemetryService.generateLoadBundlesRetryInfo(w),on(_.MainChunksLoadingStop,this.globalWindow.performance)}catch(s){const l=s.errorMessage||s,d=s.errorType||le.Failure,p=s.isLoadFromSWCache||"";throw this.logger.errorNoPii(s),this.globalWindow.performance.mark(_.MainChunksLoadingStop),await this.telemetryService.failClientStartScenarioWithMarks([_.IndexPageStart,_.MainChunksLoadingStart],d,{reason:l,isLoadedFromServiceWorkerCache:p}),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 l=0,d=0,p=!1,w={};for(;!p&&l<=n&&d<=r;)try{await this.loadScriptInternal(t,l,i),p=!0}catch(b){l++,b.errorType===le.Timeout&&d++,w=b}p&&a({retryCount:l,retryDetails:t.path}),s(w)})}async loadScriptInternal(t,n,r){return new Promise((i,a)=>{const s=this.globalWindow.document.createElement("script"),l=this.globalWindow.setTimeout(async()=>{const b=`Download timeout: ${t.path}`;this.logger.warnNoPii(b);const R=await _t(t.path,this.globalWindow),ne={errorMessage:b,errorType:le.Timeout,isLoadFromSWCache:R.toString()};a(ne)},Wn);s.onload=async()=>{l&&this.globalWindow.clearTimeout(l),i()},s.onerror=async b=>{l&&this.globalWindow.clearTimeout(l);const R=`Failed to load: ${t.path} ${typeof b=="string"?b:b instanceof ErrorEvent?b.message:""}`.trim();this.logger.errorNoPii(R),this.globalWindow.document.head.removeChild(s);const ne=await _t(t.path,this.globalWindow),we={errorMessage:R,errorType:le.Failure,isLoadFromSWCache:ne.toString()};a(we)},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 p=`${t.path}${d}`;this.logger.logNoPii(`Trying to load: ${p}`);let w;this.urlPolicy?w=this.urlPolicy.createScriptURL(p):w=this.createTrustedChunkSrcFunction(p),w.toString()?s.src=w:a(`Load ${p} 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){We(this,"globalWindow",void 0),We(this,"telemetryService",void 0),We(this,"diagnosticsService",void 0),We(this,"platformService",void 0),We(this,"logger",void 0),We(this,"urlPolicy",void 0),We(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 l=new URL(s);this.staticsPath=l.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 it="tmp.default.default.react-web-client.",ot="previousSuccessfulInstalledBuild",vt="main-chunks-cached";var Rn=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}({}),dn=function(e){return e.ExpLoader="ExpLoader",e.Core="Core",e.Auth="Auth",e.App="App",e}({});const Dn=/[xy]/g;function Dt(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(Dn,e=>{const t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}function ur(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 Nn(e,t){return t|e}var j=u(907113),un=u.n(j),$='"',hn="-",V="*",He="prototype",yt=Object[He].hasOwnProperty;function at(e,t){if(e)for(var n in e)yt.call(e,n)&&t.call(e,n,e[n])}function Nt(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=fn(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=st(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,l=e.data,d=ge("name",e.name,!0);return d+=ge("time",e.time),d+=ge("ver",e.ver),d+=ge("iKey","o:"+e.iKey),d+="&apikey="+r,e.ext&&at(e.ext,function(p,w){at(w,function(b,R){if(St(R)){var ne=lt(b,R,!0);St(ne)&&(d+=ge("ext."+p+"."+b,ne.value))}})}),at(s,function(p,w){var b=hn+p,R=lt(p,w,!0);R&&(a=Re(R.value,R.kind,R.propertyType),a>0&&(b=b+"*"+a.toString()),d+=ge(b,R.value))}),at(l,function(p,w){var b=V+p,R=lt(p,w,!0);R&&(a=Re(R.value,R.kind,R.propertyType),a>0&&(b=b+"*"+a.toString()),d+=ge(b,R.value))}),n+"t.js?"+d}function pn(e){return Object[He].toString.call(e)==="[object Date]"}function fn(e){if(pn(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 Ve(e){return e<<13}function ye(e){return Ge(e,"number")}function Me(e){return e<<5}function Ut(e){return!!(ye(e)&&e>=0&&e<=9)}function $e(e){return Ge(e,"boolean")}function Re(e,t,n){var r=-1;return Et(e)?r:(t&&t>0&&(t===32?r=Ve(1):t<=13&&(r=Me(t))),Ft(n)&&Ut(n)?(r===-1&&(r=0),r|n):(me(e)&&(e=e[0]),r!==-1?r|bt(e):ye(e)?6:r))}function bt(e){return Et(e)?-1:ye(e)?6:be(e)?1:$e(e)?7:-1}function ge(e,t,n){if(n===void 0&&(n=!1),St(t)){var r;return n?r="qsp=true&":r="&",ye(t)||$e(t)?r+=e+"="+t:typeof t=="object"?r+=e+"="+JSON.stringify(t):r+=e+"="+$+encodeURIComponent(t)+$,r}else return""}function St(e){return!(Ct(e)||e==="")}function Ct(e){return Et(e)||e===null}function Et(e){return e===void 0||Ge(e,"undefined")}function Ge(e,t){return typeof e===t}function st(e){if(e){var t=e.indexOf("-");if(t>-1)return e.substring(0,t)}return""}function be(e){return Ge(e,"string")}function me(e){return e instanceof Array}function gn(e){return e.length>0}function Ft(e){return!Et(e)}function mn(e){return!!(e&&ye(e)&&(e>=0&&e<=13||e===32))}function lt(e,t,n){if(!be(e)||Ct(t)||t==="")return null;if(be(t)||ye(t)||$e(t)||me(t))t={value:t};else if(typeof t=="object"&&!yt.call(t,"value"))t={value:n?JSON.stringify(t):t};else if(Ct(t.value)||t.value===""||!be(t.value)&&!ye(t.value)&&!$e(t.value)&&!me(t.value))return null;if(me(t.value)&&!gn(t.value))return null;if(Ft(t.kind)){if(me(t.value)||!mn(t.kind))return null;t.value=t.value.toString()}return t}function ct(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class ue{async sendTelemetry(t,n,r){return new Promise((i,a)=>{const s={...this.baseEventData};s.name=t,this.setDataContext(s,n);const l=document.createElement("script"),d=Nt(s,{apikey:this.apikey});let p;if(ue.UrlPolicy?p=ue.UrlPolicy.createScriptURL(d,this.logger):p=ue.createTrustedURLFunction(d,this.logger),p.toString())l.src=p;else{a("Sending telemetry failed, 1DS URL is not valid");return}l.onload=()=>{this.logger.log("Telemetry sent."),i()},l.onerror=w=>{const b=`Telemetry failed to send: ${typeof w=="string"?w:w instanceof ErrorEvent?w.message:w instanceof Event?w.type:""}, reason ${r}`;this.logger.error(b),i()},document.body.appendChild(l)})}setEventBaseContext(t){this.baseEventData={...this.baseEventData,...t}}setDataContext(t,n){return un()(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}static createTrustedURLFunction(t,n){try{const r=new URL(t);if(r.protocol==="https:"&&r.host==="browser.events.data.microsoft.com"&&r.pathname.startsWith("/OneCollector"))return t}catch{n.errorNoPii?.("1DS collector url is not valid")}return""}constructor(t,n){if(ct(this,"logger",void 0),ct(this,"baseEventData",{name:""}),ct(this,"apikey",void 0),this.initialize(n),this.logger=t.newLogger("TelemetrySenderGetCollector","services-io-sender-get-collector"),!ue.UrlPolicy)try{const r=window.trustedTypes?.createPolicy("@msteams/frameworks-loader#telemetry-sender",{createScriptURL:ue.createTrustedURLFunction});ue.UrlPolicy=r}catch(r){this.logger.errorNoPii?.(`Create 1ds URL trustedType policy failed with error ${r}`)}}}ct(ue,"UrlPolicy",void 0);const dt={instrumentationKey:"bc3902d8132f43e3ae086a009979fa88-632130b2-9455-44a6-80e2-d7457b6eb8ca-7193"};function Se(e){if(e.indexOf("pre_core_error_")===0)return N.PreTelemetryCoreInitFailure;let t=N.ExpLoaderFailure;switch(e){case _.IndexPageStart:t=N.ParseIndexPageFailure;break;case _.MainChunksLoadingStart:t=N.LoadBundlesFailure;break;case _.MainChunksLoadingStop:case _.IndexPageStop:case _.AsyncEntryModuleFederationUrlsInited:case _.AsyncEntryDownloadStart:case _.AsyncEntryDownloadStop:t=N.CoreStartTimeout;break}return t}async function je(e){let t="online",n=0;try{const r=new Promise(s=>{n=e.setTimeout(()=>{t="pingTimeout",s()},q)}),i=new URL(`${nt}?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 zt="ringFinder";class Un{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(_.ClientStartStop),(!t||t.length===0)&&(t=this.getExistingClientStartMarks()),t.push(_.ClientStartStop);const i=[],a=t.length-1;for(let l=0;l<=a;l++){let d="success",p=t[l],w="";if(p.indexOf("pre_core_error_")===0&&p.indexOf(":reason:")>0){d="failure";const b=p.split(":reason:");p=b[0],w=b[1]}(a===l||d!=="success")&&this.addUxStatus("FullPageErrorDisplayed"),i.push(this.createTelemetryStep(d,w,0,"",(l+1).toString(),p,l>0?t[l-1]:void 0)),l===a-1&&w!==""&&(r={...r||{},reason:`${w} ${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=Se(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 rt.forEach(n=>{const r=this.createTelemetryStep("success","",0,"","",n);n===_.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||le.Failure,a.Scenario_Step="stop",this.sendTelemetryThroughOneDS(a,r)}clearLoaderMarks(){rt.forEach(t=>{t!==_.IndexPageStart&&this.globalWindow.performance.clearMarks(t)})}getSWCacheStatus(){const t=this.globalWindow.localStorage.getItem(`${it}${ot}`);return!t||t===vt?"ActiveAndPartiallyCached":"ActiveAndFullyCached"}async failClientStartScenarioWithSteps(t){if(!this.allowSendTelemetry||t.length===0||t[0].Scenario_Name!==Be.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=le.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 rt)At(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(Rn.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:dt.instrumentationKey};this.oneDSSender=new ue(this.loggerFactory,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:l,pdsEnvironment:d,platformId:p,ring:w}=this.loaderPlatformService;let b="";l==="suspectedOnline"&&(b=await je(this.globalWindow));const R=this.globalWindow.localStorage.getItem(D.T2WebOptInSessionId);let ne="noActiveFound";const we=Fe(this.globalWindow);let fe="";we&&(ne=this.getSWCacheStatus(),this.loaderPlatformService.activeServiceWorkerVersion!==void 0?fe=this.loaderPlatformService.activeServiceWorkerVersion:this.loaderPlatformService.activeServiceWorkerVersionPromise!==void 0&&(fe=await this.loaderPlatformService.activeServiceWorkerVersionPromise));const Zt=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:`${p}`,AppInfo_Version:`${p}/${r}`,AppInfo_Environment:a,AppInfo_ServiceWorkerState:ne,AppInfo_UxStatus:this.appUxStatus,deeplinkId:i||void 0,DeviceInfo_Id:this.deviceId,DeviceInfo_OsName:this._deviceInfo?.osName,DeviceInfo_OsVersion:this._deviceInfo?.osVersion,EventInfo_ExternalCorrelationId:Zt||void 0,environment:d,indexVersionQSP:this.loaderPlatformService.indexVersionQSP,loaderNetworkPingState:b,navigatorNetworkState:l,RelaunchReason:this.RelaunchReason,AppInfo_ServiceWorkerVersion:fe,Session_Id:this.sessionId,Session_TelemetryContext:"experience_loader",t2WebOptInSessionId:R||void 0,userAgent:this.globalWindow.navigator.userAgent,UserInfo_Ring:w,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)||Dt()),this.loaderPlatformService.isMaglev||(this._isRelaunchFromPreCoreOOPs=!!this.globalWindow.sessionStorage.getItem(D.IsRelaunchFromOOPs),this._isRelaunchFromPreCoreOOPs&&this.globalWindow.sessionStorage.removeItem(D.IsRelaunchFromOOPs)),this._sessionId||(this._sessionId=Dt()),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(zt);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,l){const d=l&&this.calculateStepDelta(l,s),p=At(s,this.globalWindow.performance);return{scenarioPhase:s.startsWith("core_")?dn.Core:dn.ExpLoader,Scenario_Name:Be.ClientStart,Scenario_Status:t,Scenario_Step:s,error:n,stepDelta:d?.toString(),timeStamp:p?.startTime||this.globalWindow.performance.now(),sequence:a,retryCount:r,retryReason:i}}calculateStepDelta(t,n){return xn("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===le.Failure||t.Scenario_Status===le.Timeout)&&t.previousStep===_.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=[v.Unknown,v.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 De(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const ut="provider-cache-storage",Fn=5e3;class Z{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(ut);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(ut),i=new Response(n);await r.put(new Request(this.getRootRelativeKey(t)),i)}async removeItemRaw(t){const n=await this.host.caches.open(ut);await Promise.all([n.delete(this.getRootRelativeKey(t)),n.delete(this.getDirectoryRelativeKey(t))])}async getKeysRaw(){const t=await this.host.caches.open(ut),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=Fn){De(this,"host",void 0),De(this,"cacheStorageTimeoutMS",void 0),De(this,"logger",void 0),this.host=t,this.cacheStorageTimeoutMS=r,this.logger=n.newLogger("AsyncCacheStorage","core-services-settings")}}const Ye=async(e,t)=>{t?.logNoPii?.("Purging cached ECS settings"),e.caches?await e.caches.delete(ut)?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")},_n=async(e,t)=>{const n=t?.newLogger("purgeCachedSettings","core-services-settings");n?.logNoPii?.("Purging cached settings"),await Ye(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 Bt={"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"},"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"},"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"},"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 Ht=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}({}),zn=function(e){return e.ButtonsOnly="ButtonsOnly",e.FullWidth="FullWidth",e}({}),Bn=function(e){return e.TopLeft="TopLeft",e.TopRight="TopRight",e.BottomLeft="BottomLeft",e.BottomRight="BottomRight",e}({}),hr=function(e){return e.Hidden="Hidden",e.Visible="Visible",e.Disabled="Disabled",e}({}),Hn=function(e){return e.Rectangle="Rectangle",e}({}),Vn=function(e){return e.Subtract="Subtract",e}({}),pr=function(e){return e.Meeting="Meeting",e.Send="Send",e}({}),he=function(e){return e.Leave="Leave",e.Stay="Stay",e}({}),Vt=function(e){return e.Left="Left",e.Right="Right",e}({}),$n=function(e){return e.Left="Left",e.Center="Center",e.Right="Right",e.Start="Start",e.End="End",e}({}),Gn=function(e){return e.Top="Top",e.Center="Center",e.Bottom="Bottom",e}({}),jn=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}({}),Yn=function(e){return e.Meeting="Meeting",e.Chat="Chat",e.CallMonitor="CallMonitor",e}({}),xe=function(e){return e.Inside="Inside",e.Outside="Outside",e}({});function Ce(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class wn{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?.(Ht.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){Ce(this,"window",void 0),Ce(this,"permanentWindowId",void 0),Ce(this,"logger",void 0),Ce(this,"hostCommunication",void 0),Ce(this,"windowControlsModule",void 0),Ce(this,"disposeWindowStateChangeSubscription",void 0),Ce(this,"document",void 0),Ce(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 vn=["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 vn.indexOf(t)>-1}var Zn=u(20003);const f=(e,t)=>{const n=yn(t),r=e.document.documentElement;r.setAttribute("lang",t),r.setAttribute("dir",n?"rtl":"ltr")},o=(e,t)=>{e.document.title=`${t} | Microsoft Teams`},c=e=>{e.document.documentElement.classList.add("mica")},h=e=>{e.document.documentElement.classList.add("flyout")},E=(e,t)=>ee(e,{...Y(["content","focusable","nonce","onclick"],["link","meta","script","#comment","!doctype"],{RETURN_DOM:!1,WHOLE_DOCUMENT:!0}),TRUSTED_TYPES_POLICY:t}),Q=(e,t)=>ee(e,{...Y(["content","focusable","onclick"],["#comment"],{RETURN_DOM:!0,WHOLE_DOCUMENT:!1,FORCE_BODY:!0}),TRUSTED_TYPES_POLICY:t}),Y=(e,t,n)=>({ADD_ATTR:e,ADD_TAGS:t,RETURN_TRUSTED_TYPE:!0,...n}),ee=(e,t)=>(0,Zn.sanitize)(e,t),oe="teams-precache-v2",ht="react-web-client",te="client-start-failure-count",bn=2;async function $t(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(oe),n?(e.localStorage.removeItem(`${it}${ot}`),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 Hr(e,t){const n=fr(e,t);e.localStorage.removeItem(n)}function Vr(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 l=e.localStorage.getItem(a);l&&(i=parseInt(l,10)||0),i{this.updateCarouselText(t)},$r)))}showTitleBarIfRequired(){this.platformService.deeplinkTarget!=="flyout"&&this.titleBarHandler.showTitleBar({showActionButtons:this.platformService.isMaglev})}async startPulseAnimation(){const t=Kn(this.platformService.platformId),n=Yr(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")},Gr);else if(this.platformService.platformId===U.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 l=Bt[this.platformService.locale];l&&a.setAttribute("aria-valuetext",l.loading_aria_label)}}stopPulseAnimationAndHideLoadingScreen(){const t=this.window.document.getElementById("loading-screen"),n=Kn(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=Bt[r];if(!i)return;const a=this.window.document.getElementById("error-title"),s=this.window.document.getElementById("error-description"),l=this.window.document.getElementById("error-action");if(o(this.window,i.oops_error_title),a&&(a.innerText=i.oops_error_title),s){let p=i.oops_error;switch(t){case ie.loadingApp:p=i.oops_loading_error;break;case ie.coreInit:p=i.oops_init_error;break}s.innerText=p}l&&(l.innerText=i.retry_error,l.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){_e(this,"window",void 0),_e(this,"platformService",void 0),_e(this,"hostCommunication",void 0),_e(this,"experienceLoaderSettings",void 0),_e(this,"logger",void 0),_e(this,"titleBarHandler",void 0),_e(this,"carouselInterval",void 0),_e(this,"carouselIndex",void 0),_e(this,"_animationTimeout",void 0),_e(this,"_enable2025BrandIcons",void 0),_e(this,"handleClearCacheAndRetry",void 0),_e(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 $t(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 wn(this.window,void 0,this.logger,this.hostCommunication);const s=this.window.document.getElementById("teams-favicon");if(this._enable2025BrandIcons=this.platformService.isTeams2025IconPackEnabled||this.experienceLoaderSettings?.enableSplashScreen2025||!1,this.logger.log(`enable2025BrandIcons: ${this._enable2025BrandIcons}, isTeams2025IconPackEnabled: ${this.platformService.isTeams2025IconPackEnabled}, experienceLoaderSettings.enableSplashScreen2025: ${this.experienceLoaderSettings?.enableSplashScreen2025}`),s){let l="";this._enable2025BrandIcons?l="https://statics.teams.cdn.office.net/evergreen-assets/icons/microsoft_teams_logo_refresh_v2025.ico":l="https://statics.teams.cdn.office.net/evergreen-assets/icons/microsoft_teams_logo_refresh.ico",s.setAttribute("href",l)}}}function Kn(e){return e===U.MaglevT21||e===U.MaglevMacT21||e===U.Web}function Yr(e){return e==="life"}function Ze(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}class Zr{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(Be.ShowPreCoreErrorPage,{reason:t!==void 0?ie[t]:void 0},"show_web_oops_page"),_n(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 jr(this.loggerFactory,t,this.platformService,this.hostCommunication,this.experienceLoaderSettings)),t.preCoreUiAdapter}constructor(t,n,r,i,a,s){Ze(this,"loggerFactory",void 0),Ze(this,"windowManager",void 0),Ze(this,"platformService",void 0),Ze(this,"telemetryService",void 0),Ze(this,"experienceLoaderSettings",void 0),Ze(this,"hostCommunication",void 0),Ze(this,"logger",void 0),Ze(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 Gt=function(e){return e.flyout="flyout",e.iFrame="iFrame",e.primary="primary",e.secondary="secondary",e.immersive="immersive",e.notification="notification",e}({}),go=function(e){return e.standAlone="main",e.iframe="iFrame",e.secondary="MW",e.embedded="EDOM",e.worker="Worker",e}({}),gr=function(e){return e.flyout="flyout",e.main="main",e.notifications="notifications",e}({}),mo=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}({}),_o=function(e){return e.userInitiated="userInitiated",e}({}),wo=u(895522);const Kr="data:image";function vo(e,t){return new URL(e,t)}function yo(e,t,n,r){try{return t(new URL(n,r))}catch{return e}}function bo(e){const t=new URL(e),n="//";return t.protocol+n+t.host}function So(e){return mr(e)}function Co(e){return mr(e,!0)}function mr(e,t=!1){try{let n=e;n.startsWith("blob:")&&(n=n.replace("blob:",""));const r=Xr(n.toLowerCase()),i=new URL(r);return i?t?(i.pathname||"")+(i.search||"")+(i.hash||""):i.hostname||"":e.toLowerCase()}catch{return e}}function Eo(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=>Qr(e,new URL(s)?.origin??""))?"":e;return i==="http"?`https${e.substring(r)}`:""}function Jr(e,t){if(!t)return t;const n=new RegExp(`[?&]${e}=([^&#]*)`).exec(t);return n&&n.length>1?decodeURI(n[1]):""}function ko(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 Qr=(e,t)=>qr(e)?!1:new RegExp(`^(blob:)(${t})`,"i").test(e),To=e=>/^(data:)/i.test(e),Lo=e=>/^(http)(s?):\/\//i.test(e);function xo(e){if(!e||e.startsWith("/")&&!e.startsWith("//"))return!1;try{return new URL(e).port.length>0}catch{return!1}}const Io=e=>(e.charAt(0)!=="/"&&(e=`/${e}`),e);function Po(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),l=`${encodeURIComponent(t)}=`,d=s.split(/[&;]/g);return forEachRight(d,(p,w)=>{p.lastIndexOf(l,0)!==-1&&d.splice(w,1)}),`${a}${d.length>0?`?${d.join("&")}`:""}${i}`}function Ao(e){return e&&(e.indexOf("#")>=0?e.substring(0,e.indexOf("#")):e)}function Xr(e){return hasProtocol(e)?e:`https://${e}`}const Oo=e=>(e.endsWith("/")||(e+="/"),e),Wo=e=>(e.endsWith("/")&&(e=e.slice(0,-1)),e);function qr(e){return e.startsWith(Kr)}const ei=(e,t)=>{const n=`theme-${t}`,r=ti(e);r?r!==n&&e.documentElement.classList.replace(r,`theme-${t}`):e.documentElement.classList.add(n)},ti=e=>{let t;return e.documentElement.classList.forEach(n=>{n.startsWith("theme")&&(t=n)}),t};function Ke(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const _r="about:blank",ni=`${_r}?window=loading`,ri=`${_r}?minimize=true`;var ii=function(e){return e[e.None=0]="None",e[e.GlobalWindow=1]="GlobalWindow",e[e.PopoutWindow=2]="PopoutWindow",e[e.MinimizedPopoutWindow=3]="MinimizedPopoutWindow",e}(ii||{});class oi{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,ei(this.visibleWindow.document,this.platformService.theme),this.writeTemplate(this.visibleWindow,!0);break}return this.platformService.isMaglev&&c(this.visibleWindow),this.platformService.deeplinkTarget==="flyout"&&h(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=Jr("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?ri:ni;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},l=this.templateGenerator(s);if(n){const d=Q(l,this.dompurifyTrustedPolicy);t.document.body.append(...d.childNodes)}else{const d=E(l,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 Gt.flyout:return gr.flyout;case Gt.primary:return gr.main;default:return}}constructor(t,n,r,i,a,s,l){Ke(this,"window",void 0),Ke(this,"config",void 0),Ke(this,"templateGenerator",void 0),Ke(this,"platformService",void 0),Ke(this,"hostCommunication",void 0),Ke(this,"dompurifyTrustedPolicy",void 0),Ke(this,"visibleWindow",void 0),Ke(this,"logger",void 0),this.window=t,this.config=n,this.templateGenerator=r,this.platformService=a,this.hostCommunication=s,this.dompurifyTrustedPolicy=l,this.visibleWindow=null,this.logger=i.newLogger("WindowManager","frameworks-loader"),this.dompurifyTrustedPolicy=t.trustedTypes?.createPolicy("@msteams/frameworks-loader#dompurify",{createHTML:d=>d,createScriptURL:()=>""})}}const ai=(e,t,n,r,i)=>new Un(e,t,n,r,i),si=(e,t,n,r,i,a)=>new oi(e,t,n,r,i,a),li=(e,t,n,r,i,a)=>new Zr(e,t,n,r,i,a),ci=(e,t,n,r,i)=>new Mn(e,t,n,r,i);function wr(e){return new Promise((t,n)=>{e<0?n(new Error("negative timeout")):setTimeout(t,e)})}function Mo(e,t){return wr(t).then(e)}const di=(e,t,n)=>{const r="[T2->T1 auto-redirection]";if(n.platformId!==U.Web){t.logNoPii(`${r} loading T2 - not on web platform`);return}if(!e.localStorage){t.errorNoPii(`${r} loading T2 - local storage unavailable`);return}if(ui(e),!n.headConfig.enableAutoRedirectionToT1){t.warnNoPii(`${r} loading T2 - auto-redirection disabled`);return}const i=new URL(e.location.href),a=["clearcontainer","container","version","meetingjoin","enablemcasfort21"];for(const w of a)if(i.searchParams.has(w)){t.warnNoPii(`${r} loading T2 - URL contains '${w}', which is a no-redirect QSP parameter`);return}const s=e.localStorage.getItem(se);if(s&&["AdminDisabled","UserChoice","OptOut"].includes(s)){t.warnNoPii(`${r} redirecting to T1 - user previously opted out either manually or by TAC policy. optInFlagValue='${s}'`),Jn(e,`ExpLoader_OptInFlagValue_${s}`);return}if(i.searchParams.get(Rt)==="t2"){t.warnNoPii(`${r} loading T2 - clientexperience QSP is set to T2 (meaning PDS loaded T2 first), auto-opting user into T2Only`);try{e.localStorage.setItem(se,"true"),e.localStorage.setItem(Mt,"true"),e.localStorage.setItem(Pn,"true")}catch{t.errorNoPii(`${r} failed to write opt-in flags to local storage`)}return}if(e.localStorage.getItem(Mt)==="true"){t.warnNoPii(`${r} loading T2 - force T2 only flag is set`);return}if(e.localStorage.getItem(se)==="true"){t.warnNoPii(`${r} loading T2 - user is opted into T2 web`);return}t.warnNoPii(`${r} redirecting to T1 - opt-in flag was not found`),Jn(e,"ExpLoader_OptInFlagNotFound")},Jn=(e,t)=>{const n=new URL(e.location.href);n.pathname="/",n.searchParams.set("clientexperience","t1"),n.searchParams.set("redirectreason",t),e.location.replace(n.href)},ui=e=>{e.localStorage.removeItem(Wt),e.localStorage.removeItem(cn),e.localStorage.removeItem(et)},hi=(e,t,n,r)=>{const i="[RecordWebBootAttempt]";if(n.platformId!==U.Web){t.warnNoPii(`${i} not recording web boot attempt - not on web platform`);return}if(!n.headConfig.enableAutoRedirectionToT1){t.warnNoPii(`${i} not recording web boot attempt - auto-redirection disabled`);return}if(!e.localStorage){t.errorNoPii(`${i} failed to record T2 web boot attempt - local storage unavailable`);return}if(n.headConfig.enableIframeCheckInWebBootAttemptCounter&&fi(e)){t.warnNoPii(`${i} not recording web boot attempt - we are inside an iframe`);return}if(e.localStorage.getItem(se)==null){t.warnNoPii(`${i} not recording T2 web boot attempt - user not opted into T2`);return}if(e.localStorage.getItem(Mt)==="true"){t.warnNoPii(`${i} not recording T2 web boot attempt - force T2 only flag is set`);return}const s=e.localStorage.getItem(I),l=s?parseInt(s,10):0,d=e.localStorage.getItem(G),p=d?parseInt(d,10):0,w=Date.now()-p;if(w{const n=new URL(e.location.href);if(n.searchParams.has(Rt)){n.searchParams.delete(Rt);try{e.history.replaceState("","",n.href)}catch{t.logNoPii("[removeClientExperienceQspFromUrl] replaceState threw an error")}}};function fi(e){try{return e.self!==e.top}catch{return!0}}var vr=u(885262),gi=u.n(vr);function yr(){return new Worker("/v2/worker/precompiled-web-worker-90ca3d29a6d64427.js")}function br(){return new SharedWorker("/v2/worker/precompiled-shared-worker-87a299a52af1616a.js")}var Sn=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 mi="precore-worker",Sr=(e,t,n,r,i,a,s,l,d,p,w,b,R,ne,we,fe=!1,Pe,Zt,tr,Je,Kt,Jt)=>{const ft=new Date(Date.now());let Qe={experienceName:e,ring:t,environment:n,sessionId:r,platformId:i,buildVersion:a,localeCode:s,workerId:l,preAuthUserId:d,publicPath:b,deviceId:R,isOcdi:ne,isPwa:we,workerChunkLoadMaxRetries:Zt,workerChunkLoadRetryDelay:tr,workerChunkLoadMaxRetryDelay:Je,shouldFetchWorkerChunksBeforeImportScripts:Kt,useDiagnosticsServiceV2:Pe,turboCohort:Jt,workerCreationTime:ft.getTime(),...fe&&{date:`${ft.getMonth()}-${ft.getDate()}`}};return w!==void 0?Qe={...Qe,userConsoleLogLevel:w}:p!==void 0&&(Qe={...Qe,preECSConsoleLogLevel:p}),JSON.stringify(Qe)},Ro=e=>e.hash?JSON.parse(decodeURIComponent(e.hash.substr(1))):{};let jt;const _i=(e,t,n)=>{if(jt)return jt;try{const r=n||"@msteams/core-cdl-worker-common#create-cdl-worker";return jt=window.trustedTypes?.createPolicy(r,{createScriptURL:i=>Er(i,t)}),jt}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)}},Do=()=>{jt=void 0},Cr=(e,t,n,r,i,a,s)=>{class l{constructor(p){const w=r?`${p}#${r}`:p;wi(t,w,!1,typeof e==typeof Worker?"cdlWorker":"cdlsharedWorker",n),i?.(w);const R=_i(w,t,a);if(R){const we=R.createScriptURL(w);return s?.(Date.now()),new e(we)}const ne=Er(w,t);return s?.(Date.now()),new e(ne)}}return l},wi=(e,t,n,r,i)=>{e.log(`{"hostRendererId":${r},"component":${i} Creating CDL Worker with ${n?"passed":"determined"} url ${t} }`)};function Er(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 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 vi{initPrecoreWorker(t){const n=Sr(this.config.experienceName,this.ring,Sn[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),r=Worker;Worker=Cr(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 yr:i=new yr,Worker=r,this.worker=i,i.onerror=a=>{this.logger.error(`Error in worker: ${a.message}`),this.workerErrorBuffer.push(a)}}initPrecoreSharedWorker(t){const n=Sr(this.config.experienceName,this.ring,Sn[t.environment],this.config.experienceName==="embed-client"?gi().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),r=SharedWorker;SharedWorker=Cr(r,this.logger,"ExperienceLoader",n,a=>{this.cdlSharedWorkerUrl=a},void 0,a=>{this.workerInitializationTime=a});let i;this.experienceLoaderSettings?.enableLazyLoadedWorker?i=new br:i=new br,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){pe(this,"config",void 0),pe(this,"platformService",void 0),pe(this,"logger",void 0),pe(this,"experienceLoaderSettings",void 0),pe(this,"worker",void 0),pe(this,"workerId",void 0),pe(this,"sharedWorker",void 0),pe(this,"cdlWorkerUrl",void 0),pe(this,"cdlSharedWorkerUrl",void 0),pe(this,"webpackPublicPath",void 0),pe(this,"ring",void 0),pe(this,"workerInitializationTime",void 0),pe(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=mi}}var K=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}({}),yi=u(774899),bi=u.n(yi);function Cn(e){return e==null||e.length===0?e:` ${e}`.substr(1)}function Tr(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 Si(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(bi()(e))return e.toISOString();try{return JSON.stringify(e)}catch{return Tr(e)}}function Ci(e,t){return t|e}function Lr(e,t){return`${Ae}.${t}.${e}`}var Yt=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 Qn(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const Ei="localDebug";class ki{log(t,...n){return this.invoke(console.log,t,K.Info,!1,...n)}warn(t,...n){return this.invoke(console.warn,t,K.Warn,!1,...n)}error(t,...n){const r=this.invoke(console.error,t,K.Error,!1,...n);return this.diagnosticsService.persistDiagnostics(),r}debug(t,...n){return this.enableDebugLogging?this.invoke(console.debug,t,K.Debug,!1,...n):Yt.None}logNoPii(t,...n){return this.invoke(console.log,t,K.Info,!0,...n)}warnNoPii(t,...n){return this.invoke(console.warn,t,K.Warn,!0,...n)}errorNoPii(t,...n){const r=this.invoke(console.error,t,K.Error,!0,...n);return this.diagnosticsService.persistDiagnostics(),r}debugNoPii(t,...n){return this.enableDebugLogging?this.invoke(console.debug,t,K.Debug,!0,...n):Yt.None}invoke(t,n,r,i,...a){n=Cn(`${this.label}: ${n}`);let s=Yt.None;if((r<=K.Warn||this.enableDebugLogging)&&(t.call(console,n,...a),s=s||Yt.LoggedInConsole),r0){const l=a.map(d=>Si(d)).join(", ");n=Cn(`${n} ${l}`)}this.diagnosticsService.pushDiagnosticsEvent(r,n,i),s=Ci(s,Yt.AddedIntoDiagnostics)}return s}constructor(t,n,r){Qn(this,"diagnosticsService",void 0),Qn(this,"label",void 0),Qn(this,"enableDebugLogging",void 0),this.diagnosticsService=n,this.label=r,this.enableDebugLogging=!1;try{this.enableDebugLogging=t.localStorage.getItem(Ei)==="true"}catch{}}}function Ie(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="loaderDiagnostics",xr="previousLoaderDiagnostics",Ir=512,Ti="...",Pr="=====";class Li{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(Xn))}catch(n){this.pushDiagnosticsEvent(K.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(Xn),!!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(Xn),!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(K.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(Pr)&&i.message?.endsWith(Pr))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 `}}),Cn(n)}persistDiagnosticsLogsInternal(t,n,r){let i=!1;if(!t)return i;try{const a=Tr({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:K.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>Ir&&(n=n.substring(0,Ir)+Ti),n=Cn(n);const a={message:n,level:t,levelName:K[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){Ie(this,"window",void 0),Ie(this,"loaderConfig",void 0),Ie(this,"DEFAULT_QUEUE_CAPACITY",void 0),Ie(this,"eventsBufferArray",void 0),Ie(this,"_previousSessionLogsPersisted",void 0),Ie(this,"_isLoaderCompleted",void 0),Ie(this,"_sessionId",void 0),Ie(this,"logsProviderName",void 0),Ie(this,"newLogger",void 0),Ie(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 ki(this.window,this,`[ExpLoader] ${r}`),this.getStorageKey=r=>Lr(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"},xi=["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"],No=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=Pi(t);return Ar[n]?(n=Ar[n],{locale:n,reason:"Found in fallback table",originalLocale:e}):Ii(n)?{locale:n,reason:"Supported language"}:{locale:null,reason:"Didn't find supported language.",originalLocale:e}},Ii=e=>{const t=e.toLowerCase();for(const n of xi)if(t===n.toLowerCase())return!0;return!1},Pi=e=>{const n=new Date().getTimezoneOffset(),r=120,i=420;return e==="fr"&&n>=r&&n<=i?"fr-ca":e},Uo=e=>e.reason==="Supported language"||e.reason==="Found in fallback table",Fo=e=>{let t=e&&getAvailableLanguageByCode(e,!0);if(!t){const n=qn(e||"")?.locale;t=getAvailableLanguageByCode(n,!0)}return t},zo=e=>e.replace(/\s*\([^)]*\)/g,"");var Bo=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}({}),Ne=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}({}),pt=function(e){return e.Dark="dark",e.Light="light",e.Contrast="contrast",e}({}),Ho=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}({}),Vo=function(e){return e.HighContrast="#FFFFFF_#000000_#FFFF00",e}({}),Tt=function(e){return e.ColorContrastOverride="(forced-colors: active)",e.Light="(prefers-color-scheme: light)",e.Dark="(prefers-color-scheme: dark)",e}({});const Ai="tmp.desktopTheme",Oi=(e,t)=>{try{if(e.matchMedia(Tt.ColorContrastOverride).matches)return t?.log(`OS Theme Matches: ${Tt.ColorContrastOverride}`),pt.Contrast;const n=e.localStorage.getItem(Ai);return n||(e.matchMedia(Tt.Dark).matches?(t?.log(`OS Theme Matches: ${Tt.Dark}`),pt.Dark):e.matchMedia(Tt.Light).matches?(t?.log(`OS Theme Matches: ${Tt.Light}`),pt.Light):(t?.log("OS Theme Matches: None. Returning theme type light."),pt.Light))}catch(n){t?.log(`Couldn't resolve getOsTheme: ${n.message}`);return}},Wi=e=>({[pt.Light]:e===Sn.life?Ne.DefaultTfl:Ne.DefaultV2,[pt.Dark]:e===Sn.life?Ne.DarkTfl:Ne.DarkV2,[pt.Contrast]:Ne.HighContrast}),Wr=(e,t)=>t[e]||Ne.DefaultV2,Mi=()=>({[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}),Ri=(e,t)=>t[e]||ThemeType.Light,$o=e=>Ri(e,Mi()),Go=(e,t,n,r)=>{const i=e.getPreferences("theme")??{};return Mr(i,t,n,r)},Mr=(e,t,n,r)=>{const i=Di(t);if(i)return i;if(e.followOsTheme){const a=Oi(t,r);if(a)return Wr(a,n)}else if(e.userTheme)return Wr(e.userTheme,n);return Ne.DefaultV2},Di=e=>{const n=new URLSearchParams(e.location.search).get("theme");if(n){const r=Object.keys(Ne).find(i=>i.toUpperCase()===n.toUpperCase());return Ne[r]}};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 Ni="buildNumber",Ui="logLevel",Fi="(display-mode: standalone)";class zi{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=Te(this.window)),this._isMaglev}get platformId(){return this._platformId===void 0&&(this._platformId=this.isMaglev?Xt(this.window):U.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(Fi).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=Gt.flyout:this._viewportContext=Gt.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===v.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 vr.get(t)}get headConfig(){return this._headConfig||(this._headConfig=L(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===v.Local)this._preECSConsoleLogLevel=K.Warn;else{let t=this.ring;const n=this.getRingFromQSP();n&&(t=n),t.indexOf("general")>=0||t.indexOf("ring3")>=0?this._preECSConsoleLogLevel=K.None:this._preECSConsoleLogLevel=K.Warn}return this._preECSConsoleLogLevel}}get userConsoleLogLevel(){if(this._userConsoleLogLevel===void 0)try{const t=this.window.localStorage.getItem(Ui);if(t){const n=parseInt(t,10);n>=K.None&&n<=K.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=Wi(this.environment);return Mr(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"),v.Unknown;if(!n)return this.logger?.errorNoPii("experience name is missing"),v.Unknown;const r=this.window.localStorage.getItem(Lr(Ni,n)),i=this.getAppBootType(t,r);return i===v.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 v.Local;if(t&&t.toLowerCase().includes("oncdn"))return v.Container;if(n){if(n.toLowerCase().startsWith("local"))return v.Cold;if(n.toLowerCase().includes("oncdn"))return v.Cold}if(!Fe(this.window))return v.Cold;if(!n)return v.Warm;const r=Number(t),i=Number(n);return isNaN(r)||isNaN(i)?v.Unknown:ri?v.Update:v.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=Tn(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){F(this,"window",void 0),F(this,"config",void 0),F(this,"logger",void 0),F(this,"_appIconLabel",void 0),F(this,"_bootType",void 0),F(this,"_deeplinkId",void 0),F(this,"_deeplinkTarget",void 0),F(this,"_environment",void 0),F(this,"_headConfig",void 0),F(this,"_isMaglev",void 0),F(this,"_locale",void 0),F(this,"_migratedLocale",void 0),F(this,"_platformId",void 0),F(this,"_theme",void 0),F(this,"_urlSearchParams",void 0),F(this,"_viewportContext",void 0),F(this,"_preECSConsoleLogLevel",void 0),F(this,"_userConsoleLogLevel",void 0),F(this,"_networkState",void 0),F(this,"_activeServiceWorkerVersion",void 0),F(this,"_indexVersionQSP",void 0),F(this,"_getServiceWorkerVersionPromise",void 0),F(this,"_isTeams2025IconPackEnabled",void 0),F(this,"detectLocale",void 0),F(this,"onlineHandler",void 0),F(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=L(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 Bi=e=>{try{const t=Dr();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}`),{}}},Rr=e=>`tmp.${e}.experience-loader-ecs-flags`,Dr=()=>{const e=Rr(globalThis.loaderConfig.experienceName),t=globalThis.localStorage.getItem(e);return t?JSON.parse(t):void 0},Nr=e=>{const t=Rr(globalThis.loaderConfig.experienceName);globalThis.localStorage.setItem(t,JSON.stringify(e))},jo=(e,t)=>{try{const n=Dr()||{},r=Vi(n,e);return r.length>0?(Nr(e),r):[]}catch(n){return t.error(`SetExperienceLoaderSettings - Failed to get experience loader settings in local storage: ${n}`),Nr(e),Object.keys(e)}},Hi=(e,t)=>Array.isArray(e)&&Array.isArray(t)?e.length===t.length&&e.every((n,r)=>n===t[r]):e===t,Vi=(e,t)=>{const n=[];for(const r of Object.keys(e)){const i=e[r],a=t[r];!Hi(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 z(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}const er={Created:"Created",CriticalError:"CriticalError",HostNotified:"HostNotified"};class $i{getLogsProvider(){return this.diagnosticsService}clearLoaderMarks(){this.telemetryService.clearLoaderMarks()}async execute(){try{if(di(this.globalWindow,this.logger,this.platformService),pi(this.globalWindow,this.logger),this.redirectToOcdi(),hi(this.globalWindow,this.logger,this.platformService,this.telemetryService),this.preLoadCacheStorage(),this.config.loadingScreenDelayInMs||this.setExpLoaderTimer(),this.logger.logNoPii(er.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 wr(this.config.loadingScreenDelayInMs),this.globalWindow?.performance?.mark("show_loading_screen"),this.config?.manifest?.chunks&&this.config?.manifest?.chunks?.length>0)this.globalWindow.performance.mark(_.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||wt,r=this.ecsSettings.ocdiRedirectCookieAdditionalOptions||An;if(t.searchParams.has(tt)){this.globalWindow.document.cookie=`${n}=; expires=${On}${r}`,this.logger.warnNoPii("OCDI redirect: Not redirecting - we arrived here due to a client redirect.");return}for(const p of this.ecsSettings.ocdiNoRedirectQSPs||[])if(t.searchParams.has(p)){this.logger.warnNoPii(`OCDI redirect: Not redirecting - URL contains '${p}', which is a no-redirect QSP`);return}if(!this.globalWindow.document.cookie.split("; ").find(p=>p.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(tt,"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===U.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,Vr(this.globalWindow,this.config.experienceName,this.logger)&&(await $t(this.globalWindow,this.logger),Hr(this.globalWindow),this.telemetryService.sendNewScenarioThroughONEDS(Be.ClearSWForClientStartFailure,{Scenario_Status:"success"},"clear_sw_for_multiple_start_failure"))}checkInput(){if(this.platformService.isMaglev&&!this.platformService.deeplinkTarget){this.globalWindow.performance.mark(_.MissingDeepLink);const t="missing_deeplink";this.logger.errorNoPii(t),this.telemetryService.sendNewScenarioThroughONEDS(Be.WebClientInputInvalid,{reason:t},"miss_deeplink")}}markIndexPageStop(){on(_.MainChunksLoadingStop,this.globalWindow.performance),this.globalWindow.performance.mark(_.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 ${sn} ms.`;this.logger.warnNoPii(r),this.telemetryService.failClientStartScenarioWithMarks([],le.Timeout,{reason:r}),n(new Error(r))},sn),this.pieTimerStopped||this.waitForPie())})}waitForPie(){this.waitForPieTimeout=this.globalWindow.setTimeout(()=>{const t=`Core init hasn't finished within ${Ot} ms.`;this.logger.warnNoPii(t),this.telemetryService.failClientStartScenarioWithMarks([],le.Timeout,{reason:t})},Ot)}setExpLoaderTimer(){this.waitForExpLoaderCompleteTimeout=this.globalWindow.setTimeout(()=>this.expLoaderTimeoutHandler(),ln)}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 ${ln} 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,le.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(er.CriticalError,n),await this.telemetryService.failClientStartScenarioWithMarks([],t==="ExpLoaderBuildDownloadTimeout"?le.Timeout:le.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:l}=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 l;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 _t(r.request,this.globalWindow)).toString())}}catch{this.logger.errorNoPii("Parsing IsChunkLoadingErrorFromSWCache fail.")}return n}async registerSW(){try{if(this.platformService.platformId!==U.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(_.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(_.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(`${it}${ot}`,vt)}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(l=>l.path.indexOf(a)>=0);if(s.length>0){const l=s[0];t.push({url:l.path,integrity:l.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,l){z(this,"globalWindow",void 0),z(this,"config",void 0),z(this,"diagnosticsService",void 0),z(this,"logger",void 0),z(this,"platformService",void 0),z(this,"hostCommunication",void 0),z(this,"coreModule",void 0),z(this,"scenarioModule",void 0),z(this,"telemetryService",void 0),z(this,"windowManager",void 0),z(this,"uiManager",void 0),z(this,"buildLoader",void 0),z(this,"coreInitStarted",void 0),z(this,"pieTimerStopped",void 0),z(this,"errorHappened",void 0),z(this,"waitForCoreInitStartTimeout",void 0),z(this,"waitForPieTimeout",void 0),z(this,"waitForExpLoaderCompleteTimeout",void 0),z(this,"resolveHandshakePromise",void 0),z(this,"onErrorHandlerCallback",void 0),z(this,"unhandledRejectionHandlerCallback",void 0),z(this,"loadingBundlesPromise",void 0),z(this,"precoreWorkers",void 0),z(this,"ecsSettings",void 0),z(this,"clientStartFailureCountChecked",void 0),this.globalWindow=t,this.coreInitStarted=!1,this.pieTimerStopped=!1,this.errorHappened=!1,this.clientStartFailureCountChecked=!1,this.config=Object.assign(dt,n),this.diagnosticsService=new Li(t,this.config),this.logger=this.diagnosticsService.newLogger("ExperienceLoader"),this.loadConfigOverrides(),this.platformService=new zi(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=Bi(this.logger),this.uiManager=s(this.diagnosticsService,this.windowManager,this.platformService,this.telemetryService,this.ecsSettings,this.hostCommunication),this.buildLoader=l(t,this.diagnosticsService,this.telemetryService,this.diagnosticsService,this.platformService),this.precoreWorkers=new vi(this.globalWindow,this.config,this.platformService,this.logger,this.ecsSettings),this.registerErrorHandlers(),this.logger.logNoPii(er.Created),this.registerSW()}}async function Gi(e){try{console.log("[ExpLoader] Getting things ready...");const t=window;await ji(t);const n=new $i(t,t.loaderConfig,e,ai,si,li,ci);t.loader=n,await n.execute()}catch(t){throw console.error("[ExpLoader] Unhandled Exception:",t),t}}async function ji(e){try{if(Te(e)&&"nativeModules"in e){e.performance.mark(_.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 Yi(e){var t,n="",r=Array.prototype.join;function i(){n+=r.call(arguments,"")}return n+=`
`,e.titleBar&&(n+=`
`),n+=`
Loading...
`,n}function Zi(e){var t,n="";return n+=``,n}function Ki(e){var t,n="";return n+=``,n}function Ji(e){var t,n="",r=Array.prototype.join;function i(){n+=r.call(arguments,"")}return n+=`
`,osPlatform==="windows"&&(n+=`
`),n+=`
`,n}function Qi(e){var t,n="",r=Array.prototype.join;function i(){n+=r.call(arguments,"")}return n}const Xi={splashStyles:Zi,favicons:Ki,splash:Yi,preloadTitleBar:Ji,devtools:Qi};function qi(e){var t,n="",r=Array.prototype.join;function i(){n+=r.call(arguments,"")}n+=` `,e.htmlWebpackPlugin.options.isMainWindow&&(n+=`