profile-viewer 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/dist/119.92ddbd8a86d8c3ca559e.bundle.js +2 -0
- data/dist/119.92ddbd8a86d8c3ca559e.bundle.js.map +1 -0
- data/dist/{9.071a712ea648c8b30416.bundle.js → 9.32828795506af73ed4a1.bundle.js} +2 -2
- data/dist/9.32828795506af73ed4a1.bundle.js.map +1 -0
- data/dist/_headers +1 -2
- data/dist/contribute.json +31 -35
- data/dist/docs/js/init.js +1 -1
- data/dist/index.html +1 -1
- data/dist/locales/README.md +1 -0
- data/dist/locales/be/app.ftl +21 -3
- data/dist/main.fc4f388a376c68dab444.bundle.js +199 -0
- data/dist/main.fc4f388a376c68dab444.bundle.js.map +1 -0
- data/dist/photon/index.html +3 -2
- data/dist/photon/main.1dffe4a955d6a0630bc4.bundle.js +2 -0
- data/dist/photon/main.1dffe4a955d6a0630bc4.bundle.js.map +1 -0
- data/dist/robots.txt +4 -0
- data/dist/sw.js +1 -1
- data/dist/sw.js.map +1 -1
- data/ruby-bin/profile-viewer +36 -7
- data/ruby-bin/profile-viewer-version.rb +3 -0
- metadata +44 -15
- data/dist/119.cc58ce313e67f80f50f3.bundle.js +0 -2
- data/dist/119.cc58ce313e67f80f50f3.bundle.js.map +0 -1
- data/dist/9.071a712ea648c8b30416.bundle.js.map +0 -1
- data/dist/before-load.js +0 -1
- data/dist/main.8208fda2d35ddbe38d55.bundle.js +0 -199
- data/dist/main.8208fda2d35ddbe38d55.bundle.js.map +0 -1
- data/dist/photon/main.8c8260452e7439ec6df9.bundle.js +0 -2
- data/dist/photon/main.8c8260452e7439ec6df9.bundle.js.map +0 -1
- /data/dist/{main.8208fda2d35ddbe38d55.bundle.js.LICENSE.txt → main.fc4f388a376c68dab444.bundle.js.LICENSE.txt} +0 -0
@@ -0,0 +1,199 @@
|
|
1
|
+
/*! For license information please see main.fc4f388a376c68dab444.bundle.js.LICENSE.txt */
|
2
|
+
(()=>{var e,t,n,r,o={454:e=>{"use strict";const t=(e,t,n)=>{const r=t<0?e.length+t:t;if(r>=0&&r<e.length){const r=n<0?e.length+n:n,[o]=e.splice(t,1);e.splice(r,0,o)}};e.exports=(e,n,r)=>(e=[...e],t(e,n,r),e),e.exports.mutate=t},3758:e=>{e.exports=function(e,t){var n="number"==typeof e,r="number"==typeof t;n&&!r?(t=e,e=0):n||r||(e=0,t=0);var o=(t|=0)-(e|=0);if(o<0)throw new Error("array length must be positive");for(var a=new Array(o),i=0,s=e;i<o;i++,s++)a[i]=s;return a}},6014:(e,t,n)=>{"use strict";var r={};n.r(r),n.d(r,{exclude:()=>St,extract:()=>yt,parse:()=>vt,parseUrl:()=>kt,pick:()=>xt,stringify:()=>wt,stringifyUrl:()=>Et});var o={};n.r(o),n.d(o,{getActiveTabProfileSpecificState:()=>Ha,getAllCommittedRanges:()=>Ya,getAssemblyViewIsOpen:()=>ni,getAssemblyViewNativeSymbol:()=>ri,getAssemblyViewScrollGeneration:()=>oi,getCommittedRangeLabels:()=>zi,getCurrentSearchString:()=>li,getDataSource:()=>Va,getFileNameInZipFilePath:()=>Li,getFirstSelectedThreadIndex:()=>fi,getFormattedMetaInfoString:()=>Di,getFullProfileSpecificState:()=>Wa,getGlobalTrackOrder:()=>Ci,getHash:()=>ja,getHiddenGlobalTracks:()=>yi,getHiddenLocalTracks:()=>ki,getHiddenLocalTracksByPid:()=>vi,getImplementationFilter:()=>qa,getInvertCallstack:()=>Xa,getIsActiveTabResourcesPanelOpen:()=>si,getIsBottomBoxOpen:()=>Mi,getLastSelectedCallTreeSummaryStrategy:()=>Ja,getLegacyHiddenThreads:()=>bi,getLegacyThreadOrder:()=>Ai,getLocalTrackOrder:()=>Ei,getLocalTrackOrderByPid:()=>wi,getMarkersSearchString:()=>ci,getMarkersSearchStrings:()=>Si,getMarkersSearchStringsAsRegExp:()=>_i,getNetworkSearchString:()=>di,getNetworkSearchStrings:()=>Ti,getNetworkSearchStringsAsRegExp:()=>Ii,getPathInZipFileFromUrl:()=>Ri,getProfileNameForStorage:()=>Ui,getProfileNameFromUrl:()=>Ka,getProfileNameWithDefault:()=>Oi,getProfileSpecificState:()=>Ga,getProfileUrl:()=>Za,getProfilesToCompare:()=>$a,getSearchStrings:()=>xi,getSearchStringsAsRegExp:()=>Bi,getSelectedTab:()=>ui,getSelectedThreadIndexes:()=>pi,getSelectedThreadIndexesOrNull:()=>hi,getSelectedThreadsKey:()=>mi,getShowJsTracerSummary:()=>ai,getShowUserTimings:()=>Qa,getSourceViewFile:()=>ei,getSourceViewScrollGeneration:()=>ti,getSymbolServerUrl:()=>Gi,getTimelineTrackOrganization:()=>ii,getTimelineType:()=>gi,getTransformStack:()=>Ni,getUrlPredictor:()=>Fi,getUrlState:()=>za});var a={};n.r(a),n.d(a,{getActiveTabGlobalTrackFromReference:()=>Sl,getActiveTabGlobalTrackReferences:()=>xl,getActiveTabGlobalTracks:()=>wl,getActiveTabID:()=>nl,getActiveTabMainTrack:()=>vl,getActiveTabProfileView:()=>vs,getActiveTabResourceTrackFromReference:()=>Tl,getActiveTabResourceTracks:()=>kl,getActiveTabResourcesThreadsKey:()=>El,getActiveTabTimeline:()=>yl,getCategories:()=>Qs,getCommittedRange:()=>Is,getContainsPrivateBrowsingInformation:()=>Ul,getContentfulSpeedIndexProgress:()=>qs,getCounter:()=>Vs,getCounterSelectors:()=>ol,getCurrentTableViewOptions:()=>Es,getDefaultCategory:()=>Us,getFocusCallTreeGeneration:()=>Bs,getFullProfileView:()=>ys,getGlobalTrackAndIndexByPid:()=>dl,getGlobalTrackFromReference:()=>cl,getGlobalTrackName:()=>Al,getGlobalTrackNames:()=>gl,getGlobalTrackReferences:()=>sl,getGlobalTracks:()=>il,getHasPreferenceMarkers:()=>ll,getHiddenTrackCount:()=>_l,getIPCMarkerCorrelations:()=>al,getInnerWindowIDSetByTabID:()=>Fl,getInnerWindowIDToPageMap:()=>Il,getLastNonShiftClick:()=>Ws,getLocalTrackFromReference:()=>pl,getLocalTrackName:()=>Cl,getLocalTrackNamesByPid:()=>bl,getLocalTracks:()=>hl,getLocalTracksByPid:()=>ul,getMarkerSchema:()=>el,getMarkerSchemaByName:()=>tl,getMeta:()=>js,getMouseTimePosition:()=>Ps,getOriginsProfileView:()=>ws,getOriginsTimeline:()=>Bl,getPageList:()=>Os,getPagesMap:()=>Pl,getPerceptualSpeedIndexProgress:()=>Ys,getPreviewSelection:()=>Ms,getPreviewSelectionRange:()=>Fs,getProcessesWithMemoryTrack:()=>ml,getProfile:()=>Ds,getProfileExtraInfo:()=>Vl,getProfileFilterPageData:()=>Ll,getProfileInterval:()=>Ls,getProfileOrNull:()=>Rs,getProfileRootRange:()=>xs,getProfileUsesFrameImplementation:()=>Gl,getProfileUsesMultipleStackTypes:()=>Hl,getProfileView:()=>Cs,getProfileViewOptions:()=>ks,getProfiledThreadIds:()=>zl,getProfilerConfiguration:()=>Js,getRelevantInnerWindowIDsForActiveTab:()=>Rl,getRelevantInnerWindowIDsForCurrentTab:()=>Dl,getRelevantPagesForActiveTab:()=>Ml,getRightClickedThreadIndex:()=>fl,getRightClickedTrack:()=>Hs,getSampleUnits:()=>Xs,getScrollToSelectionGeneration:()=>Ts,getShouldDisplaySearchfox:()=>Wl,getSymbolicationStatus:()=>Ss,getTableViewOptionSelectors:()=>Ns,getThreadIdToNameMap:()=>Ol,getThreadNames:()=>Gs,getThreads:()=>zs,getVisualMetrics:()=>$s,getVisualMetricsOrNull:()=>Zs,getVisualProgress:()=>Ks,getZeroAt:()=>_s});var i={};n.r(i),n.d(i,{getExpandedZipFileIndexes:()=>$l,getHasZipFile:()=>ql,getSelectedZipFileIndex:()=>Zl,getZipFile:()=>Yl,getZipFileErrorMessage:()=>Jl,getZipFileMaxDepth:()=>ec,getZipFileState:()=>Kl,getZipFileTable:()=>Ql,getZipFileTableOrNull:()=>Xl,getZipFileTree:()=>nc,getZipFileTreeOrNull:()=>tc,getZippedProfilesState:()=>jl});var s={};n.r(s),n.d(s,{getApp:()=>rc,getBrowserConnection:()=>mc,getBrowserConnectionStatus:()=>pc,getCurrentProfileUploadedInformation:()=>yc,getExperimental:()=>hc,getHasZoomedViaMousewheel:()=>ic,getIsDragAndDropDragging:()=>bc,getIsDragAndDropOverlayRegistered:()=>Cc,getIsEventDelayTracksEnabled:()=>fc,getIsExperimentalCPUGraphsEnabled:()=>gc,getIsExperimentalProcessCPUTracksEnabled:()=>Ac,getIsNewProfileLoadAllowed:()=>kc,getIsNewlyPublished:()=>uc,getIsSidebarOpen:()=>sc,getLastVisibleThreadTabSlug:()=>cc,getPanelLayoutGeneration:()=>lc,getScreenshotTrackHeight:()=>vc,getSidebarOpenCategories:()=>xc,getTimelineHeight:()=>wc,getTimelineMarginLeft:()=>Ec,getTrackThreadHeights:()=>dc,getUrlSetupPhase:()=>ac,getView:()=>oc});var l={};n.r(l),n.d(l,{getIconClassName:()=>Iu,getIcons:()=>_u,getIconsWithClassNames:()=>Pu});var c={};n.r(c),n.d(c,{getAbortFunction:()=>qu,getCheckedSharingOptions:()=>Lu,getFilenameString:()=>Ou,getHasPrePublishedState:()=>Qu,getHasSanitizedProfile:()=>th,getIsHidingStaleProfile:()=>eh,getPrePublishedState:()=>Xu,getPublishState:()=>Du,getRemoveProfileInformation:()=>Uu,getSanitizedProfile:()=>Wu,getSanitizedProfileData:()=>Hu,getShouldSanitizeByDefault:()=>Ju,getUploadError:()=>Ku,getUploadGeneration:()=>Zu,getUploadPhase:()=>ju,getUploadProgress:()=>$u,getUploadProgressString:()=>Yu,getUploadState:()=>Vu});var d={};n.r(d),n.d(d,{getAreThereAnyProcessCPUCounters:()=>rh,getIsCPUUtilizationProvided:()=>nh,getMaxThreadCPUDeltaPerMs:()=>sh});var u={};n.r(u),n.d(u,{getAssemblyCodeCache:()=>dh,getAssemblyViewCode:()=>hh,getSourceCodeCache:()=>lh,getSourceViewCode:()=>ch});var h={};n.r(h),n.d(h,{getDirection:()=>gh,getL10nState:()=>ph,getLocalization:()=>mh,getPrimaryLocale:()=>fh,getPseudoStrategy:()=>bh,getRequestedLocales:()=>Ah});var p={};n.r(p),n.d(p,{addCollapseResourceTransformToStack:()=>jp,addTransformToStack:()=>Vp,changeCallTreeSearchString:()=>Tp,changeCallTreeSummaryStrategy:()=>Lp,changeExpandedCallNodes:()=>_p,changeGlobalTrackOrder:()=>cp,changeHoveredMarker:()=>Np,changeImplementationFilter:()=>Dp,changeInvertCallstack:()=>Op,changeLocalTrackOrder:()=>yp,changeMarkersSearchString:()=>Fp,changeMouseTimePosition:()=>qp,changeNetworkSearchString:()=>Rp,changeProfileName:()=>Kp,changeRightClickedCallNode:()=>Jh,changeRightClickedMarker:()=>Mp,changeRightClickedTrack:()=>sp,changeSelectedCallNode:()=>qh,changeSelectedMarker:()=>Ip,changeSelectedNetworkMarker:()=>Pp,changeSelectedThreads:()=>ep,changeShowJsTracerSummary:()=>zp,changeShowUserTimings:()=>Up,changeTableViewOptions:()=>Jp,changeTimelineType:()=>$p,closeAssemblyView:()=>em,closeBottomBox:()=>tm,commitRange:()=>Wp,expandAllCallNodeDescendants:()=>Bp,focusCallTree:()=>ip,handleCallNodeTransformShortcut:()=>nm,hideGlobalTrack:()=>dp,hideLocalTrack:()=>wp,hideProvidedTracks:()=>mp,isolateLocalTrack:()=>Ep,isolateProcess:()=>Ap,isolateProcessMainThread:()=>Cp,isolateScreenshot:()=>bp,openAssemblyView:()=>Qp,popCommittedRanges:()=>Hp,popTransformsFromStack:()=>Zp,selectActiveTabTrack:()=>ap,selectLeafCallNode:()=>Xh,selectRootCallNode:()=>Qh,selectTrackFromTid:()=>op,selectTrackWithModifiers:()=>rp,setContextMenuVisibility:()=>lp,setDataSource:()=>Yp,showAllTracks:()=>hp,showGlobalTrack:()=>fp,showGlobalTrackIncludingLocalTracks:()=>gp,showLocalTrack:()=>kp,showProvidedTracks:()=>pp,updateBottomBoxContentsAndMaybeOpen:()=>Xp,updatePreviewSelection:()=>Gp});var m={};n.r(m),n.d(m,{_fetchProfile:()=>Pm,bulkProcessSymbolicationSteps:()=>Cm,changeTimelineTrackOrganization:()=>hm,doSymbolicateProfile:()=>wm,doneSymbolicating:()=>bm,finalizeActiveTabProfileView:()=>um,finalizeFullProfileView:()=>lm,finalizeOriginProfileView:()=>dm,finalizeProfileView:()=>sm,getProfileUrlForHash:()=>Lm,loadProfile:()=>im,receiveZipFile:()=>Sm,receivedSymbolTableReply:()=>gm,requestingSymbolTable:()=>fm,resymbolicateProfile:()=>pm,retrieveProfileForRawUrl:()=>Vm,retrieveProfileFromBrowser:()=>km,retrieveProfileFromFile:()=>Wm,retrieveProfileFromStore:()=>Om,retrieveProfileOrZipFromUrl:()=>Um,retrieveProfilesToCompare:()=>Hm,startSymbolicating:()=>Am,temporaryError:()=>Tm,triggerLoadingFromUrl:()=>om,viewProfile:()=>mm,waitingForProfileFromBrowser:()=>am,waitingForProfileFromFile:()=>zm,waitingForProfileFromStore:()=>Em,waitingForProfileFromUrl:()=>xm});var f={};n.r(f),n.d(f,{changeProfilesToCompare:()=>Zm,changeSelectedTab:()=>jm,changeSidebarOpenState:()=>qm,dismissNewlyPublished:()=>nf,enableEventDelayTracks:()=>cf,enableExperimentalCPUGraphs:()=>df,enableExperimentalProcessCPUTracks:()=>uf,invalidatePanelLayout:()=>Jm,profileRemotelyDeleted:()=>pf,registerDragAndDropOverlay:()=>af,reportTrackThreadHeight:()=>tf,setCurrentProfileUploadedInformation:()=>hf,setHasZoomedViaMousewheel:()=>Xm,setupInitialUrlState:()=>Qm,show404:()=>Ym,startDragging:()=>rf,startFetchingProfiles:()=>$m,stopDragging:()=>of,toggleOpenCategoryInSidebar:()=>ff,toggleResourcesPanel:()=>lf,unregisterDragAndDropOverlay:()=>sf,updateBrowserConnectionStatus:()=>mf,updateUrlState:()=>ef,urlSetupDone:()=>Km});var g={};n.r(g),n.d(g,{receiveL10n:()=>Nf,requestL10n:()=>Pf,togglePseudoStrategy:()=>Mf});var A={};n.r(A),n.d(A,{iconHasLoaded:()=>qA,iconIsInError:()=>JA,iconStartLoading:()=>QA});var b={};n.r(b),n.d(b,{beginLoadingAssemblyCodeFromBrowserConnection:()=>Dw,beginLoadingAssemblyCodeFromUrl:()=>Rw,beginLoadingSourceCodeFromBrowserConnection:()=>Nw,beginLoadingSourceCodeFromUrl:()=>Pw,failLoadingAssemblyCode:()=>Ow,failLoadingSourceCode:()=>Fw,finishLoadingAssemblyCode:()=>Lw,finishLoadingSourceCode:()=>Mw});var C={};n.r(C),n.d(C,{attemptToPublish:()=>Zk,hideStaleProfile:()=>Jk,profilePublished:()=>Yk,profileSanitized:()=>Kk,resetUploadState:()=>$k,revertToPrePublishedState:()=>qk,toggleCheckedSharingOptions:()=>Gk,updateUploadProgress:()=>Vk,uploadCompressionStarted:()=>Wk,uploadFailed:()=>jk,uploadStarted:()=>Hk});var y={};n.r(y),n.d(y,{changeExpandedZipFile:()=>ME,changeSelectedZipFile:()=>NE,returnToZipFileList:()=>DE,showErrorForNoFileInZip:()=>LE,viewProfileFromPathInZipFile:()=>RE,viewProfileFromZip:()=>FE});var v=n(3379),w=n.n(v),k=n(7795),E=n.n(k),x=n(569),S=n.n(x),T=n(3565),B=n.n(T),I=n(9216),P=n.n(I),N=n(4589),M=n.n(N),F=n(8216),R={};R.styleTagTransform=M(),R.setAttributes=B(),R.insert=S().bind(null,"head"),R.domAPI=E(),R.insertStyleElement=P(),w()(F.Z,R),F.Z&&F.Z.locals&&F.Z.locals;var D=n(7545),L={};L.styleTagTransform=M(),L.setAttributes=B(),L.insert=S().bind(null,"head"),L.domAPI=E(),L.insertStyleElement=P(),w()(D.Z,L),D.Z&&D.Z.locals&&D.Z.locals;var O=n(7904),U={};U.styleTagTransform=M(),U.setAttributes=B(),U.insert=S().bind(null,"head"),U.domAPI=E(),U.insertStyleElement=P(),w()(O.Z,U),O.Z&&O.Z.locals&&O.Z.locals;var z=n(4172),G={};G.styleTagTransform=M(),G.setAttributes=B(),G.insert=S().bind(null,"head"),G.domAPI=E(),G.insertStyleElement=P(),w()(z.Z,G),z.Z&&z.Z.locals&&z.Z.locals;var W=n(776),H={};H.styleTagTransform=M(),H.setAttributes=B(),H.insert=S().bind(null,"head"),H.domAPI=E(),H.insertStyleElement=P(),w()(W.Z,H),W.Z&&W.Z.locals&&W.Z.locals;var V=n(1832),j={};j.styleTagTransform=M(),j.setAttributes=B(),j.insert=S().bind(null,"head"),j.domAPI=E(),j.insertStyleElement=P(),w()(V.Z,j),V.Z&&V.Z.locals&&V.Z.locals;var Z=n(8082),$={};$.styleTagTransform=M(),$.setAttributes=B(),$.insert=S().bind(null,"head"),$.domAPI=E(),$.insertStyleElement=P(),w()(Z.Z,$),Z.Z&&Z.Z.locals&&Z.Z.locals;var K=n(1514),Y={};Y.styleTagTransform=M(),Y.setAttributes=B(),Y.insert=S().bind(null,"head"),Y.domAPI=E(),Y.insertStyleElement=P(),w()(K.Z,Y),K.Z&&K.Z.locals&&K.Z.locals;var q=n(804),J={};J.styleTagTransform=M(),J.setAttributes=B(),J.insert=S().bind(null,"head"),J.domAPI=E(),J.insertStyleElement=P(),w()(q.Z,J),q.Z&&q.Z.locals&&q.Z.locals;var X=n(7294),Q=n(3935);function ee(e,t){for(const n of e)if(n.hasMessage(t))return n;return null}class te extends Array{static from(e){return e instanceof this?e:new this(e)}}class ne extends te{constructor(e){if(super(),!(Symbol.iterator in Object(e)))throw new TypeError("Argument must implement the iteration protocol.");this.iterator=e[Symbol.iterator]()}[Symbol.iterator](){const e=this;let t=0;return{next:()=>(e.length<=t&&e.push(e.iterator.next()),e[t++])}}touchNext(e=1){let t=0;for(;t++<e;){const e=this[this.length-1];if(e&&e.done)break;this.push(this.iterator.next())}return this[this.length-1]}}class re extends te{constructor(e){if(super(),Symbol.asyncIterator in Object(e))this.iterator=e[Symbol.asyncIterator]();else{if(!(Symbol.iterator in Object(e)))throw new TypeError("Argument must implement the iteration protocol.");this.iterator=e[Symbol.iterator]()}}[Symbol.asyncIterator](){const e=this;let t=0;return{next:async()=>(e.length<=t&&e.push(e.iterator.next()),e[t++])}}async touchNext(e=1){let t=0;for(;t++<e;){const e=this[this.length-1];if(e&&(await e).done)break;this.push(this.iterator.next())}return this[this.length-1]}}let oe;const ae={menuitem:!0,area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},ie=/<|&#?\w+;/,se=e=>{console.warn(`[@fluent/react] ${e.name}: ${e.message}`)};class le{constructor(e,t=function(){if("undefined"==typeof document)throw new Error("`document` is undefined. Without it, translations cannot be safely sanitized. Consult the documentation at https://github.com/projectfluent/fluent.js/wiki/React-Overlays.");if(!oe){const e=document.createElement("template");oe=function(t){return e.innerHTML=t,Array.from(e.content.childNodes)}}return oe}(),n){this.bundles=ne.from(e),this.parseMarkup=t,this.reportError=n||se}getBundle(e){return t=this.bundles,n=e,Array.isArray(n)?n.map((e=>ee(t,e))):ee(t,n);var t,n}areBundlesEmpty(){return Boolean(this.bundles[Symbol.iterator]().next().done)}getString(e,t,n){const r=this.getBundle(e);if(r){const n=r.getMessage(e);if(n&&n.value){let e=[],o=r.formatPattern(n.value,t,e);for(let t of e)this.reportError(t);return o}}else this.areBundlesEmpty()?this.reportError(new Error("Attempting to get a string when no localization bundles are present.")):this.reportError(new Error(`The id "${e}" did not match any messages in the localization bundles.`));return n||e}getElement(e,t,n={}){const r=this.getBundle(t);if(null===r)return t?this.areBundlesEmpty()?this.reportError(new Error("Attempting to get a localized element when no localization bundles are present.")):this.reportError(new Error(`The id "${t}" did not match any messages in the localization bundles.`)):this.reportError(new Error("No string id was provided when localizing a component.")),(0,X.createElement)(X.Fragment,null,e);const o=r.getMessage(t);let a,i=[];if(n.attrs&&o.attributes){a={},i=[];for(const[e,t]of Object.entries(n.attrs))t&&e in o.attributes&&(a[e]=r.formatPattern(o.attributes[e],n.vars,i));for(let e of i)this.reportError(e)}if("string"==typeof e.type&&e.type in ae)return(0,X.cloneElement)(e,a);if(null===o.value)return(0,X.cloneElement)(e,a);i=[];const s=r.formatPattern(o.value,n.vars,i);for(let e of i)this.reportError(e);if(!ie.test(s)||null===this.parseMarkup)return(0,X.cloneElement)(e,a,s);let l;if(n.elems){l=new Map;for(let[e,t]of Object.entries(n.elems))(0,X.isValidElement)(t)&&l.set(e.toLowerCase(),t)}const c=this.parseMarkup(s).map((({nodeName:e,textContent:t})=>{if("#text"===e)return t;const n=e.toLowerCase(),r=null==l?void 0:l.get(n);return r?"string"==typeof r.type&&r.type in ae?r:(0,X.cloneElement)(r,void 0,t):t}));return(0,X.cloneElement)(e,a,...c)}}let ce=(0,X.createContext)(null);function de(e){return(0,X.createElement)(ce.Provider,{value:e.l10n},e.children)}function ue(e){const{id:t,attrs:n,vars:r,elems:o,children:a}=e,i=(0,X.useContext)(ce);if(!i)throw new Error("The <Localized /> component was not properly wrapped in a <LocalizationProvider />.");let s;if(Array.isArray(a)){if(a.length>1)throw new Error("Expected to receive a single React element to localize.");s=a[0]}else s=null!=a?a:null;if(!(0,X.isValidElement)(s)){const e="string"==typeof s?s:void 0,n=i.getString(t,r,e);return X.createElement(X.Fragment,null,n)}return i.getElement(s,t,{attrs:n,vars:r,elems:o})}var he=n(1688),pe=n(2798);let me=function(e){e()};const fe=()=>me,ge=Symbol.for("react-redux-context"),Ae="undefined"!=typeof globalThis?globalThis:{};function be(){var e;if(!X.createContext)return{};const t=null!=(e=Ae[ge])?e:Ae[ge]=new Map;let n=t.get(X.createContext);return n||(n=X.createContext(null),t.set(X.createContext,n)),n}const Ce=be();let ye=null;function ve(){return ve=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},ve.apply(this,arguments)}function we(e,t){if(null==e)return{};var n,r,o={},a=Object.keys(e);for(r=0;r<a.length;r++)n=a[r],t.indexOf(n)>=0||(o[n]=e[n]);return o}var ke=n(8679),Ee=n.n(ke),xe=n(2973);const Se=["initMapStateToProps","initMapDispatchToProps","initMergeProps"];function Te(e,t,n,r,{areStatesEqual:o,areOwnPropsEqual:a,areStatePropsEqual:i}){let s,l,c,d,u,h=!1;return function(p,m){return h?function(h,p){const m=!a(p,l),f=!o(h,s,p,l);return s=h,l=p,m&&f?(c=e(s,l),t.dependsOnOwnProps&&(d=t(r,l)),u=n(c,d,l),u):m?(e.dependsOnOwnProps&&(c=e(s,l)),t.dependsOnOwnProps&&(d=t(r,l)),u=n(c,d,l),u):f?function(){const t=e(s,l),r=!i(t,c);return c=t,r&&(u=n(c,d,l)),u}():u}(p,m):(s=p,l=m,c=e(s,l),d=t(r,l),u=n(c,d,l),h=!0,u)}}function Be(e){return function(t){const n=e(t);function r(){return n}return r.dependsOnOwnProps=!1,r}}function _e(e){return e.dependsOnOwnProps?Boolean(e.dependsOnOwnProps):1!==e.length}function Ie(e,t){return function(t,{displayName:n}){const r=function(e,t){return r.dependsOnOwnProps?r.mapToProps(e,t):r.mapToProps(e,void 0)};return r.dependsOnOwnProps=!0,r.mapToProps=function(t,n){r.mapToProps=e,r.dependsOnOwnProps=_e(e);let o=r(t,n);return"function"==typeof o&&(r.mapToProps=o,r.dependsOnOwnProps=_e(o),o=r(t,n)),o},r}}function Pe(e,t){return(n,r)=>{throw new Error(`Invalid value of type ${typeof e} for ${t} argument when connecting component ${r.wrappedComponentName}.`)}}function Ne(e,t,n){return ve({},n,e,t)}const Me={notify(){},get:()=>[]};function Fe(e,t){let n,r=Me;function o(){i.onStateChange&&i.onStateChange()}function a(){n||(n=t?t.addNestedSub(o):e.subscribe(o),r=function(){const e=fe();let t=null,n=null;return{clear(){t=null,n=null},notify(){e((()=>{let e=t;for(;e;)e.callback(),e=e.next}))},get(){let e=[],n=t;for(;n;)e.push(n),n=n.next;return e},subscribe(e){let r=!0,o=n={callback:e,next:null,prev:n};return o.prev?o.prev.next=o:t=o,function(){r&&null!==t&&(r=!1,o.next?o.next.prev=o.prev:n=o.prev,o.prev?o.prev.next=o.next:t=o.next)}}}}())}const i={addNestedSub:function(e){return a(),r.subscribe(e)},notifyNestedSubs:function(){r.notify()},handleChangeWrapper:o,isSubscribed:function(){return Boolean(n)},trySubscribe:a,tryUnsubscribe:function(){n&&(n(),n=void 0,r.clear(),r=Me)},getListeners:()=>r};return i}const Re="undefined"!=typeof window&&void 0!==window.document&&void 0!==window.document.createElement?X.useLayoutEffect:X.useEffect;function De(e,t){return e===t?0!==e||0!==t||1/e==1/t:e!=e&&t!=t}function Le(e,t){if(De(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;const n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(let r=0;r<n.length;r++)if(!Object.prototype.hasOwnProperty.call(t,n[r])||!De(e[n[r]],t[n[r]]))return!1;return!0}const Oe=["reactReduxForwardedRef"];let Ue=()=>{throw new Error("uSES not initialized!")};const ze=[null,null];function Ge(e,t,n,r,o,a){e.current=r,n.current=!1,o.current&&(o.current=null,a())}function We(e,t){return e===t}const He=function({store:e,context:t,children:n,serverState:r,stabilityCheck:o="once",noopCheck:a="once"}){const i=X.useMemo((()=>{const t=Fe(e);return{store:e,subscription:t,getServerState:r?()=>r:void 0,stabilityCheck:o,noopCheck:a}}),[e,r,o,a]),s=X.useMemo((()=>e.getState()),[e]);Re((()=>{const{subscription:t}=i;return t.onStateChange=t.notifyNestedSubs,t.trySubscribe(),s!==e.getState()&&t.notifyNestedSubs(),()=>{t.tryUnsubscribe(),t.onStateChange=void 0}}),[i,s]);const l=t||Ce;return X.createElement(l.Provider,{value:i},n)};var Ve;function je(e){const{mapStateToProps:t,mapDispatchToProps:n,mergeProps:r,options:o,component:a}=e;return function(e,t,n,{pure:r,areStatesEqual:o=We,areOwnPropsEqual:a=Le,areStatePropsEqual:i=Le,areMergedPropsEqual:s=Le,forwardRef:l=!1,context:c=Ce}={}){const d=c,u=function(e){return e?"function"==typeof e?Ie(e):Pe(e,"mapStateToProps"):Be((()=>({})))}(e),h=function(e){return e&&"object"==typeof e?Be((t=>function(e,t){const n={};for(const r in e){const o=e[r];"function"==typeof o&&(n[r]=(...e)=>t(o(...e)))}return n}(e,t))):e?"function"==typeof e?Ie(e):Pe(e,"mapDispatchToProps"):Be((e=>({dispatch:e})))}(t),p=function(e){return e?"function"==typeof e?function(e){return function(t,{displayName:n,areMergedPropsEqual:r}){let o,a=!1;return function(t,n,i){const s=e(t,n,i);return a?r(s,o)||(o=s):(a=!0,o=s),o}}}(e):Pe(e,"mergeProps"):()=>Ne}(n),m=Boolean(e);return e=>{const t=e.displayName||e.name||"Component",n=`Connect(${t})`,r={shouldHandleStateChanges:m,displayName:n,wrappedComponentName:t,WrappedComponent:e,initMapStateToProps:u,initMapDispatchToProps:h,initMergeProps:p,areStatesEqual:o,areStatePropsEqual:i,areOwnPropsEqual:a,areMergedPropsEqual:s};function c(t){const[n,o,a]=X.useMemo((()=>{const{reactReduxForwardedRef:e}=t,n=we(t,Oe);return[t.context,e,n]}),[t]),i=X.useMemo((()=>n&&n.Consumer&&(0,xe.isContextConsumer)(X.createElement(n.Consumer,null))?n:d),[n,d]),s=X.useContext(i),l=Boolean(t.store)&&Boolean(t.store.getState)&&Boolean(t.store.dispatch),c=Boolean(s)&&Boolean(s.store),u=l?t.store:s.store,h=c?s.getServerState:u.getState,p=X.useMemo((()=>function(e,t){let{initMapStateToProps:n,initMapDispatchToProps:r,initMergeProps:o}=t,a=we(t,Se);return Te(n(e,a),r(e,a),o(e,a),e,a)}(u.dispatch,r)),[u]),[f,g]=X.useMemo((()=>{if(!m)return ze;const e=Fe(u,l?void 0:s.subscription),t=e.notifyNestedSubs.bind(e);return[e,t]}),[u,l,s]),A=X.useMemo((()=>l?s:ve({},s,{subscription:f})),[l,s,f]),b=X.useRef(),C=X.useRef(a),y=X.useRef(),v=X.useRef(!1),w=(X.useRef(!1),X.useRef(!1)),k=X.useRef();Re((()=>(w.current=!0,()=>{w.current=!1})),[]);const E=X.useMemo((()=>()=>y.current&&a===C.current?y.current:p(u.getState(),a)),[u,a]),x=X.useMemo((()=>e=>f?function(e,t,n,r,o,a,i,s,l,c,d){if(!e)return()=>{};let u=!1,h=null;const p=()=>{if(u||!s.current)return;const e=t.getState();let n,p;try{n=r(e,o.current)}catch(e){p=e,h=e}p||(h=null),n===a.current?i.current||c():(a.current=n,l.current=n,i.current=!0,d())};return n.onStateChange=p,n.trySubscribe(),p(),()=>{if(u=!0,n.tryUnsubscribe(),n.onStateChange=null,h)throw h}}(m,u,f,p,C,b,v,w,y,g,e):()=>{}),[f]);var S,T;let B;S=Ge,T=[C,b,v,a,y,g],Re((()=>S(...T)),void 0);try{B=Ue(x,E,h?()=>p(h(),a):E)}catch(e){throw k.current&&(e.message+=`\nThe error may be correlated with this previous error:\n${k.current.stack}\n\n`),e}Re((()=>{k.current=void 0,y.current=void 0,b.current=B}));const _=X.useMemo((()=>X.createElement(e,ve({},B,{ref:o}))),[o,e,B]);return X.useMemo((()=>m?X.createElement(i.Provider,{value:A},_):_),[i,_,A])}const f=X.memo(c);if(f.WrappedComponent=e,f.displayName=c.displayName=n,l){const t=X.forwardRef((function(e,t){return X.createElement(f,ve({},e,{reactReduxForwardedRef:t}))}));return t.displayName=n,t.WrappedComponent=e,Ee()(t,e)}return Ee()(f,e)}}(t,n,r,o)(a)}ye=pe.useSyncExternalStoreWithSelector,(e=>{Ue=e})(he.useSyncExternalStore),Ve=Q.unstable_batchedUpdates,me=Ve;var Ze="NOT_FOUND",$e=function(e,t){return e===t};function Ke(e,t){var n,r,o="object"==typeof t?t:{equalityCheck:t},a=o.equalityCheck,i=void 0===a?$e:a,s=o.maxSize,l=void 0===s?1:s,c=o.resultEqualityCheck,d=function(e){return function(t,n){if(null===t||null===n||t.length!==n.length)return!1;for(var r=t.length,o=0;o<r;o++)if(!e(t[o],n[o]))return!1;return!0}}(i),u=1===l?(n=d,{get:function(e){return r&&n(r.key,e)?r.value:Ze},put:function(e,t){r={key:e,value:t}},getEntries:function(){return r?[r]:[]},clear:function(){r=void 0}}):function(e,t){var n=[];function r(e){var r=n.findIndex((function(n){return t(e,n.key)}));if(r>-1){var o=n[r];return r>0&&(n.splice(r,1),n.unshift(o)),o.value}return Ze}return{get:r,put:function(t,o){r(t)===Ze&&(n.unshift({key:t,value:o}),n.length>e&&n.pop())},getEntries:function(){return n},clear:function(){n=[]}}}(l,d);function h(){var t=u.get(arguments);if(t===Ze){if(t=e.apply(null,arguments),c){var n=u.getEntries().find((function(e){return c(e.value,t)}));n&&(t=n.value)}u.put(arguments,t)}return t}return h.clearCache=function(){return u.clear()},h}function Ye(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return function(){for(var t=arguments.length,r=new Array(t),o=0;o<t;o++)r[o]=arguments[o];var a,i=0,s={memoizeOptions:void 0},l=r.pop();if("object"==typeof l&&(s=l,l=r.pop()),"function"!=typeof l)throw new Error("createSelector expects an output function after the inputs, but received: ["+typeof l+"]");var c=s.memoizeOptions,d=void 0===c?n:c,u=Array.isArray(d)?d:[d],h=function(e){var t=Array.isArray(e[0])?e[0]:e;if(!t.every((function(e){return"function"==typeof e}))){var n=t.map((function(e){return"function"==typeof e?"function "+(e.name||"unnamed")+"()":typeof e})).join(", ");throw new Error("createSelector expects all input-selectors to be functions, but received the following types: ["+n+"]")}return t}(r),p=e.apply(void 0,[function(){return i++,l.apply(null,arguments)}].concat(u)),m=e((function(){for(var e=[],t=h.length,n=0;n<t;n++)e.push(h[n].apply(null,arguments));return a=p.apply(null,e)}));return Object.assign(m,{resultFunc:l,memoizedResultFunc:p,dependencies:h,lastResult:function(){return a},recomputations:function(){return i},resetRecomputations:function(){return i=0}}),m}}var qe=Ye(Ke);function Je(e,t=`There was an unhandled case for the value: "${e}"`){throw new Error(t)}function Xe(e){const t=e;switch(t){case"calltree":case"stack-chart":case"marker-chart":case"network-chart":case"marker-table":case"flame-graph":case"js-tracer":return t;default:return null}}function Qe(e){const t=e;switch(t){case"merge-call-node":case"merge-function":case"focus-subtree":case"focus-function":case"focus-category":case"collapse-resource":case"collapse-direct-recursion":case"collapse-recursion":case"collapse-function-subtree":case"drop-function":case"filter-samples":return t;default:return null}}function et(e){return Object.entries(e)}function tt(e,t){const n={};for(const[r,o]of et(e))n[r]=t(o,r);return n}function nt(e,t){if(null===e)throw new Error(t||"Expected an item to exist, and it was null.");if(void 0===e)throw new Error(t||"Expected an item to exist, and it was undefined.");return e}function rt(e){return e.values().next().value}const ot="%[a-f0-9]{2}",at=new RegExp("("+ot+")|([^%]+?)","gi"),it=new RegExp("("+ot+")+","gi");function st(e,t){try{return[decodeURIComponent(e.join(""))]}catch{}if(1===e.length)return e;t=t||1;const n=e.slice(0,t),r=e.slice(t);return Array.prototype.concat.call([],st(n),st(r))}function lt(e){try{return decodeURIComponent(e)}catch{let t=e.match(at)||[];for(let n=1;n<t.length;n++)t=(e=st(t,n).join("")).match(at)||[];return e}}function ct(e,t){if("string"!=typeof e||"string"!=typeof t)throw new TypeError("Expected the arguments to be of type `string`");if(""===e||""===t)return[];const n=e.indexOf(t);return-1===n?[]:[e.slice(0,n),e.slice(n+t.length)]}function dt(e,t){const n={};if(Array.isArray(t))for(const r of t){const t=Object.getOwnPropertyDescriptor(e,r);t?.enumerable&&Object.defineProperty(n,r,t)}else for(const r of Reflect.ownKeys(e)){const o=Object.getOwnPropertyDescriptor(e,r);o.enumerable&&t(r,e[r],e)&&Object.defineProperty(n,r,o)}return n}const ut=e=>null==e,ht=e=>encodeURIComponent(e).replace(/[!'()*]/g,(e=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`)),pt=Symbol("encodeFragmentIdentifier");function mt(e){if("string"!=typeof e||1!==e.length)throw new TypeError("arrayFormatSeparator must be single character string")}function ft(e,t){return t.encode?t.strict?ht(e):encodeURIComponent(e):e}function gt(e,t){return t.decode?function(e){if("string"!=typeof e)throw new TypeError("Expected `encodedURI` to be of type `string`, got `"+typeof e+"`");try{return decodeURIComponent(e)}catch{return function(e){const t={"%FE%FF":"��","%FF%FE":"��"};let n=it.exec(e);for(;n;){try{t[n[0]]=decodeURIComponent(n[0])}catch{const e=lt(n[0]);e!==n[0]&&(t[n[0]]=e)}n=it.exec(e)}t["%C2"]="�";const r=Object.keys(t);for(const n of r)e=e.replace(new RegExp(n,"g"),t[n]);return e}(e)}}(e):e}function At(e){return Array.isArray(e)?e.sort():"object"==typeof e?At(Object.keys(e)).sort(((e,t)=>Number(e)-Number(t))).map((t=>e[t])):e}function bt(e){const t=e.indexOf("#");return-1!==t&&(e=e.slice(0,t)),e}function Ct(e,t){return t.parseNumbers&&!Number.isNaN(Number(e))&&"string"==typeof e&&""!==e.trim()?e=Number(e):!t.parseBooleans||null===e||"true"!==e.toLowerCase()&&"false"!==e.toLowerCase()||(e="true"===e.toLowerCase()),e}function yt(e){const t=(e=bt(e)).indexOf("?");return-1===t?"":e.slice(t+1)}function vt(e,t){mt((t={decode:!0,sort:!0,arrayFormat:"none",arrayFormatSeparator:",",parseNumbers:!1,parseBooleans:!1,...t}).arrayFormatSeparator);const n=function(e){let t;switch(e.arrayFormat){case"index":return(e,n,r)=>{t=/\[(\d*)]$/.exec(e),e=e.replace(/\[\d*]$/,""),t?(void 0===r[e]&&(r[e]={}),r[e][t[1]]=n):r[e]=n};case"bracket":return(e,n,r)=>{t=/(\[])$/.exec(e),e=e.replace(/\[]$/,""),t?void 0!==r[e]?r[e]=[...r[e],n]:r[e]=[n]:r[e]=n};case"colon-list-separator":return(e,n,r)=>{t=/(:list)$/.exec(e),e=e.replace(/:list$/,""),t?void 0!==r[e]?r[e]=[...r[e],n]:r[e]=[n]:r[e]=n};case"comma":case"separator":return(t,n,r)=>{const o="string"==typeof n&&n.includes(e.arrayFormatSeparator),a="string"==typeof n&&!o&>(n,e).includes(e.arrayFormatSeparator);n=a?gt(n,e):n;const i=o||a?n.split(e.arrayFormatSeparator).map((t=>gt(t,e))):null===n?n:gt(n,e);r[t]=i};case"bracket-separator":return(t,n,r)=>{const o=/(\[])$/.test(t);if(t=t.replace(/\[]$/,""),!o)return void(r[t]=n?gt(n,e):n);const a=null===n?[]:n.split(e.arrayFormatSeparator).map((t=>gt(t,e)));void 0!==r[t]?r[t]=[...r[t],...a]:r[t]=a};default:return(e,t,n)=>{void 0!==n[e]?n[e]=[...[n[e]].flat(),t]:n[e]=t}}}(t),r=Object.create(null);if("string"!=typeof e)return r;if(!(e=e.trim().replace(/^[?#&]/,"")))return r;for(const o of e.split("&")){if(""===o)continue;const e=t.decode?o.replace(/\+/g," "):o;let[a,i]=ct(e,"=");void 0===a&&(a=e),i=void 0===i?null:["comma","separator","bracket-separator"].includes(t.arrayFormat)?i:gt(i,t),n(gt(a,t),i,r)}for(const[e,n]of Object.entries(r))if("object"==typeof n&&null!==n)for(const[e,r]of Object.entries(n))n[e]=Ct(r,t);else r[e]=Ct(n,t);return!1===t.sort?r:(!0===t.sort?Object.keys(r).sort():Object.keys(r).sort(t.sort)).reduce(((e,t)=>{const n=r[t];return Boolean(n)&&"object"==typeof n&&!Array.isArray(n)?e[t]=At(n):e[t]=n,e}),Object.create(null))}function wt(e,t){if(!e)return"";mt((t={encode:!0,strict:!0,arrayFormat:"none",arrayFormatSeparator:",",...t}).arrayFormatSeparator);const n=n=>t.skipNull&&ut(e[n])||t.skipEmptyString&&""===e[n],r=function(e){switch(e.arrayFormat){case"index":return t=>(n,r)=>{const o=n.length;return void 0===r||e.skipNull&&null===r||e.skipEmptyString&&""===r?n:null===r?[...n,[ft(t,e),"[",o,"]"].join("")]:[...n,[ft(t,e),"[",ft(o,e),"]=",ft(r,e)].join("")]};case"bracket":return t=>(n,r)=>void 0===r||e.skipNull&&null===r||e.skipEmptyString&&""===r?n:null===r?[...n,[ft(t,e),"[]"].join("")]:[...n,[ft(t,e),"[]=",ft(r,e)].join("")];case"colon-list-separator":return t=>(n,r)=>void 0===r||e.skipNull&&null===r||e.skipEmptyString&&""===r?n:null===r?[...n,[ft(t,e),":list="].join("")]:[...n,[ft(t,e),":list=",ft(r,e)].join("")];case"comma":case"separator":case"bracket-separator":{const t="bracket-separator"===e.arrayFormat?"[]=":"=";return n=>(r,o)=>void 0===o||e.skipNull&&null===o||e.skipEmptyString&&""===o?r:(o=null===o?"":o,0===r.length?[[ft(n,e),t,ft(o,e)].join("")]:[[r,ft(o,e)].join(e.arrayFormatSeparator)])}default:return t=>(n,r)=>void 0===r||e.skipNull&&null===r||e.skipEmptyString&&""===r?n:null===r?[...n,ft(t,e)]:[...n,[ft(t,e),"=",ft(r,e)].join("")]}}(t),o={};for(const[t,r]of Object.entries(e))n(t)||(o[t]=r);const a=Object.keys(o);return!1!==t.sort&&a.sort(t.sort),a.map((n=>{const o=e[n];return void 0===o?"":null===o?ft(n,t):Array.isArray(o)?0===o.length&&"bracket-separator"===t.arrayFormat?ft(n,t)+"[]":o.reduce(r(n),[]).join("&"):ft(n,t)+"="+ft(o,t)})).filter((e=>e.length>0)).join("&")}function kt(e,t){t={decode:!0,...t};let[n,r]=ct(e,"#");return void 0===n&&(n=e),{url:n?.split("?")?.[0]??"",query:vt(yt(e),t),...t&&t.parseFragmentIdentifier&&r?{fragmentIdentifier:gt(r,t)}:{}}}function Et(e,t){t={encode:!0,strict:!0,[pt]:!0,...t};const n=bt(e.url).split("?")[0]||"";let r=wt({...vt(yt(e.url),{sort:!1}),...e.query},t);r&&(r=`?${r}`);let o=function(e){let t="";const n=e.indexOf("#");return-1!==n&&(t=e.slice(n)),t}(e.url);if(e.fragmentIdentifier){const r=new URL(n);r.hash=e.fragmentIdentifier,o=t[pt]?r.hash:`#${e.fragmentIdentifier}`}return`${n}${r}${o}`}function xt(e,t,n){n={parseFragmentIdentifier:!0,[pt]:!1,...n};const{url:r,query:o,fragmentIdentifier:a}=kt(e,n);return Et({url:r,query:dt(o,t),fragmentIdentifier:a},n)}function St(e,t,n){return xt(e,Array.isArray(t)?e=>!t.includes(e):(e,n)=>!t(e,n),n)}const Tt=r;var Bt=n(9909),_t=n.n(Bt),It=n(4038),Pt=n.n(It);const Nt=_t()((function({places:e,style:t}){return new Intl.NumberFormat(void 0,{minimumFractionDigits:e,maximumFractionDigits:e,style:t})}),{cache:new(Pt())});function Mt(e,t=2,n=3,r="decimal"){let o=Math.floor(Math.log10(Math.abs(e)))+1;"percent"===r&&(o+=2);let a=t-o;return a<0?a=0:a>n&&(a=n),Nt({places:a,style:r}).format(e)}function Ft(e,t,n){let r;switch(e){case"tracing-ms":r=1;break;case"samples":case"bytes":r=0;break;default:throw Je(e,"Unhandled WeightType.")}return t&&(r=3),Mt(n,3,r)}function Rt(e,t,n){switch(e){case"tracing-ms":return Mt(n,3,t?3:1)+"ms";case"samples":{const e=1===n?" sample":" samples";return Mt(n,3,0)+e}case"bytes":{const e=1===n?" byte":" bytes";return Mt(n,3,0)+e}default:throw Je(e,"Unhandled WeightType.")}}function Dt(e){return Mt(e,2,1,"percent")}function Lt(e){return(100*e).toFixed(4)+"%"}function Ot(e,t=3,n=2){return e<1e4?Mt(e,0)+"B":e<1048576?Mt(e/1024,t,n)+"KB":e<1073741824?Mt(e/1048576,t,n)+"MB":Mt(e/1073741824,t,n)+"GB"}function Ut(e){return e<1e4?Mt(e):e<1e6?Mt(e/1e3,3,2)+"K":e<1e9?Mt(e/1e6,3,2)+"M":Mt(e/1e9,3,2)+"G"}function zt(e,t=3,n=4){return Mt(e,t,n)+"ns"}function Gt(e,t=2,n=3){return Mt(e,t,n)+"μs"}function Wt(e,t=2,n=3){return Mt(e,t,n)+"ms"}function Ht(e,t=5,n=3,r=1/0){const o=1e3,a=e/o;let i="";if(0!==r&&r<o){const e=Math.floor(Math.log10(r/o)),t=Math.max(0,-e);i=a.toFixed(t)}else i=Mt(a,t,n);return i+"s"}function Vt(e,t=5,n=2,r=1/0){const o=1e3,a=6e4;r>=o&&(e=Math.round(e/o)*o);const i=e%a;return Mt((e-i)/a,t,0)+"min"+(i>0&&(n>0||r<a)?Ht(i,t,0,r):"")}function jt(e,t=5,n=1,r=1/0){const o=6e4;r>=o&&(e=Math.round(e/o)*o);const a=36e5,i=e%a;return Mt((e-i)/a,t,0)+"h"+(i>0&&(n>0||r<a)?Vt(i,t,0,r):"")}function Zt(e,t=5,n=3,r=1/0){return r!==1/0&&e>(r=10**Math.floor(Math.log10(r)))&&(e=Math.round(e/r)*r),e>=6e4-(r===1/0?500:0)?e>=36e5-(r===1/0?500:0)?e>=864e5-(r===1/0?3e4:0)?function(e,t=5,n=1,r=1/0){const o=36e5;r>=o&&(e=Math.round(e/o)*o);const a=864e5,i=e%a;return Mt((e-i)/a,t,0)+"d"+(i>0&&(n>0||r<a)?jt(i,t,0,r):"")}(e,t,n,r):jt(e,t,n,r):Vt(e,t,n,r):e>=1e3?Ht(e,t,Number.isInteger(e/1e3)?0:n,r):e>=1?Wt(e,t,Number.isInteger(e)?0:n):1e3*e>=1?Gt(1e3*e,t,Number.isInteger(1e3*e)?0:n):0===e?"0s":zt(1e3*e*1e3,t,Number.isInteger(1e3*e*1e3)?0:n)}function $t(e,t,n=String,r=!0){const o=n(e)+" / "+n(t);let a="";return r&&(a=" ("+Dt(e/t)+")"),o+a}function Kt(e=""){return e?e.split("~").map((e=>{const t=e.match(/^(-?[0-9]+)?([mun])([0-9]+)$/);if(!t)return console.error(`The range "${e}" couldn't be parsed, ignoring.`),null;const n=t[1]?Number(t[1]):0,r=t[2],o=Number(t[3]);if(isNaN(n)||isNaN(o))return console.error(`The range "${e}" couldn't be parsed, ignoring. This shouldn't happen.`),null;let a,i;switch(r){case"m":a=n,i=n+o;break;case"u":a=n/1e3,i=(n+o)/1e3;break;case"n":a=n/1e6,i=(n+o)/1e6;break;default:throw new Error(`We couldn't recognize the unit ${r}, which can't happen because the regexp wouldn't match.`)}return a===i&&(i+=1e-4),{start:a,end:i}})).filter(Boolean):[]}function Yt({start:e,end:t}){const n=Math.floor(1e6*e),r=Math.ceil(1e6*t)-n,o=String(r);let a;if(r>9e6){const e=String(n).slice(0,-6);let t=o.slice(0,-6);o.endsWith("000000")||(t=Number(t)+1),a=`${e}m${t}`}else if(r>9e3){const e=String(n).slice(0,-3);let t=o.slice(0,-3);o.endsWith("000")||(t=Number(t)+1),a=`${e}u${t}`}else a=0===r?`${n}n1`:`${n}n${o}`;return a}function qt(e=[]){return e.map(Yt).join("~")}function Jt(e,t=1/0){return Zt(e,2,2,t)}const Xt="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ._",Qt=Xt[32];function en(e){const t=Array.from(e);return t.sort(((e,t)=>e-t)),tn(t)}function tn(e){let t="";for(let n=0;n<e.length;n++){const r=rn(e,n);0!==r?(n+=r,t+=Qt,t+=on(e[n])):t+=on(e[n])}return t}function nn(e){const t=[];let n=0;for(;n<e.length;){const{value:r,hasLeadingZero:o,nextI:a}=sn(e,n);if(o&&t.length>=1){const e=t[t.length-1],n=r;if(n>e)for(let r=e+1;r<n;r++)t.push(r);else for(let r=e-1;r>n;r--)t.push(r)}t.push(r),n=a}return t}function rn(e,t){if(t<1||t+1>=e.length)return 0;const n=e[t-1],r=e[t],o=e[t+1];let a=0;if(r===n+1&&o===r+1)for(a=1;t+a+1<e.length&&e[t+a+1]===r+a+1;)a++;else if(r===n-1&&o===r-1)for(a=1;t+a+1<e.length&&e[t+a+1]===r-a-1;)a++;return a}function on(e){let t=e,n=Xt[31&t];for(t>>=5;0!==t;)n=Xt[32+(31&t)]+n,t>>=5;return n}function an(e){switch(e){case"0":default:return 0;case"1":return 1;case"2":return 2;case"3":return 3;case"4":return 4;case"5":return 5;case"6":return 6;case"7":return 7;case"8":return 8;case"9":return 9;case"a":return 10;case"b":return 11;case"c":return 12;case"d":return 13;case"e":return 14;case"f":return 15;case"g":return 16;case"h":return 17;case"i":return 18;case"j":return 19;case"k":return 20;case"l":return 21;case"m":return 22;case"n":return 23;case"o":return 24;case"p":return 25;case"q":return 26;case"r":return 27;case"s":return 28;case"t":return 29;case"u":return 30;case"v":return 31;case"w":return 32;case"x":return 33;case"y":return 34;case"z":return 35;case"A":return 36;case"B":return 37;case"C":return 38;case"D":return 39;case"E":return 40;case"F":return 41;case"G":return 42;case"H":return 43;case"I":return 44;case"J":return 45;case"K":return 46;case"L":return 47;case"M":return 48;case"N":return 49;case"O":return 50;case"P":return 51;case"Q":return 52;case"R":return 53;case"S":return 54;case"T":return 55;case"U":return 56;case"V":return 57;case"W":return 58;case"X":return 59;case"Y":return 60;case"Z":return 61;case".":return 62;case"_":return 63}}function sn(e,t){let n=t,r=an(e[n]),o=32&r,a=31&r;const i=0!==o&&0===a;let s=a;for(n++;o&&n<e.length;)r=an(e[n]),o=32&r,a=31&r,s=s<<5|a,n++;return{value:s,hasLeadingZero:i,nextI:n}}var ln,cn,dn=n(1780),un=n.n(dn),hn=function(){function e(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,n,r){return n&&e(t.prototype,n),r&&e(t,r),t}}(),pn=(ln=["",""],cn=["",""],Object.freeze(Object.defineProperties(ln,{raw:{value:Object.freeze(cn)}}))),mn=function(){function e(){for(var t=this,n=arguments.length,r=Array(n),o=0;o<n;o++)r[o]=arguments[o];return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,e),this.tag=function(e){for(var n=arguments.length,r=Array(n>1?n-1:0),o=1;o<n;o++)r[o-1]=arguments[o];return"function"==typeof e?t.interimTag.bind(t,e):"string"==typeof e?t.transformEndResult(e):(e=e.map(t.transformString.bind(t)),t.transformEndResult(e.reduce(t.processSubstitutions.bind(t,r))))},r.length>0&&Array.isArray(r[0])&&(r=r[0]),this.transformers=r.map((function(e){return"function"==typeof e?e():e})),this.tag}return hn(e,[{key:"interimTag",value:function(e,t){for(var n=arguments.length,r=Array(n>2?n-2:0),o=2;o<n;o++)r[o-2]=arguments[o];return this.tag(pn,e.apply(void 0,[t].concat(r)))}},{key:"processSubstitutions",value:function(e,t,n){var r=this.transformSubstitution(e.shift(),t);return"".concat(t,r,n)}},{key:"transformString",value:function(e){return this.transformers.reduce((function(e,t){return t.onString?t.onString(e):e}),e)}},{key:"transformSubstitution",value:function(e,t){return this.transformers.reduce((function(e,n){return n.onSubstitution?n.onSubstitution(e,t):e}),e)}},{key:"transformEndResult",value:function(e){return this.transformers.reduce((function(e,t){return t.onEndResult?t.onEndResult(e):e}),e)}}]),e}();const fn=mn;var gn={separator:"",conjunction:"",serial:!1};const An=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:gn;return{onSubstitution:function(t,n){if(Array.isArray(t)){var r=t.length,o=e.separator,a=e.conjunction,i=e.serial,s=n.match(/(\n?[^\S\n]+)$/);if(t=s?t.join(o+s[1]):t.join(o+" "),a&&r>1){var l=t.lastIndexOf(o);t=t.slice(0,l)+(i?o:"")+" "+a+t.slice(l+1)}}return t}}},bn=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"initial";return{onEndResult:function(t){if("initial"===e){var n=t.match(/^[^\S\n]*(?=\S)/gm),r=n&&Math.min.apply(Math,function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)}(n.map((function(e){return e.length}))));if(r){var o=new RegExp("^.{"+r+"}","gm");return t.replace(o,"")}return t}if("all"===e)return t.replace(/^[^\S\n]+/gm,"");throw new Error("Unknown type: "+e)}}},Cn=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return{onEndResult:function(t){if(""===e)return t.trim();if("start"===(e=e.toLowerCase())||"left"===e)return t.replace(/^\s*/,"");if("end"===e||"right"===e)return t.replace(/\s*$/,"");throw new Error("Side not supported: "+e)}}};new fn(An({separator:","}),bn,Cn),new fn(An({separator:",",conjunction:"and"}),bn,Cn),new fn(An({separator:",",conjunction:"or"}),bn,Cn);const yn=function(e){return{onSubstitution:function(t,n){if(null==e||"string"!=typeof e)throw new Error("You need to specify a string character to split by.");return"string"==typeof t&&t.includes(e)&&(t=t.split(e)),t}}};var vn=function(e){return null!=e&&!Number.isNaN(e)&&"boolean"!=typeof e};new fn(yn("\n"),(function(){return{onSubstitution:function(e){return Array.isArray(e)?e.filter(vn):vn(e)?e:""}}}),An,bn,Cn);const wn=function(e,t){return{onSubstitution:function(n,r){if(null==e||null==t)throw new Error("replaceSubstitutionTransformer requires at least 2 arguments.");return null==n?n:n.toString().replace(e,t)}}};new fn(yn("\n"),An,bn,Cn,wn(/&/g,"&"),wn(/</g,"<"),wn(/>/g,">"),wn(/"/g,"""),wn(/'/g,"'"),wn(/`/g,"`"));const kn=function(e,t){return{onEndResult:function(n){if(null==e||null==t)throw new Error("replaceResultTransformer requires at least 2 arguments.");return n.replace(e,t)}}},En=new fn(kn(/(?:\n(?:\s*))+/g," "),Cn);new fn(kn(/(?:\n\s*)/g,""),Cn),new fn(An({separator:","}),kn(/(?:\s+)/g," "),Cn),new fn(An({separator:",",conjunction:"or"}),kn(/(?:\s+)/g," "),Cn),new fn(An({separator:",",conjunction:"and"}),kn(/(?:\s+)/g," "),Cn),new fn(An,bn,Cn),new fn(An,kn(/(?:\s+)/g," "),Cn);const xn=new fn(bn,Cn);new fn(bn("all"),Cn);class Sn{constructor(e=[]){this._array=void 0,this._stringToIndex=void 0,this._array=e.slice(0),this._stringToIndex=new Map;for(let t=0;t<e.length;t++)this._stringToIndex.set(e[t],t)}getString(e,t){if(!this.hasIndex(e)){if(t)return console.warn(`index ${e} not in UniqueStringArray`),t;throw new Error(`index ${e} not in UniqueStringArray`)}return this._array[e]}hasIndex(e){return e in this._array}hasString(e){return this._stringToIndex.has(e)}indexForString(e){let t=this._stringToIndex.get(e);return void 0===t&&(t=this._array.length,this._stringToIndex.set(e,t),this._array.push(e)),t}serializeToArray(){return this._array.slice(0)}}const Tn=28,Bn=47,_n=15,In=150,Pn="grey",Nn="profile-store",Mn="http://localhost:5252",Fn="https://localhost:5252",Rn=0,Dn=1,Ln=2,On=3;function Un(e){return{address:e.address.slice(),inlineDepth:e.inlineDepth.slice(),category:e.category.slice(),subcategory:e.subcategory.slice(),func:e.func.slice(),nativeSymbol:e.nativeSymbol.slice(),innerWindowID:e.innerWindowID.slice(),implementation:e.implementation.slice(),line:e.line.slice(),column:e.column.slice(),length:e.length}}function zn(e){return{isJS:e.isJS.slice(),relevantForJS:e.relevantForJS.slice(),name:e.name.slice(),resource:e.resource.slice(),fileName:e.fileName.slice(),lineNumber:e.lineNumber.slice(),columnNumber:e.columnNumber.slice(),length:e.length}}const Gn={unknown:0,library:1,addon:2,webhost:3,otherhost:4,url:5};function Wn(e){return{processType:"default",processStartupTime:0,processShutdownTime:null,registerTime:0,unregisterTime:null,pausedRanges:[],name:"Empty",isMainThread:!1,pid:"0",tid:0,samples:{weightType:"samples",weight:null,eventDelay:[],stack:[],time:[],length:0},markers:{data:[],name:[],startTime:[],endTime:[],phase:[],category:[],length:0},stackTable:{frame:[],prefix:[],category:[],subcategory:[],length:0},frameTable:{address:[],inlineDepth:[],category:[],subcategory:[],func:[],nativeSymbol:[],innerWindowID:[],implementation:[],line:[],column:[],length:0},stringTable:new Sn,funcTable:{isJS:[],relevantForJS:[],name:[],resource:[],fileName:[],lineNumber:[],columnNumber:[],length:0},resourceTable:{lib:[],name:[],host:[],type:[],length:0},nativeSymbols:{libIndex:[],address:[],name:[],functionSize:[],length:0},...e}}function Hn(){return{meta:{interval:1,startTime:0,abi:"",misc:"",oscpu:"",platform:"",processType:0,extensions:{id:[],name:[],baseURL:[],length:0},categories:[{name:"Other",color:"grey",subcategories:["Other"]},{name:"Idle",color:"transparent",subcategories:["Other"]},{name:"Layout",color:"purple",subcategories:["Other"]},{name:"JavaScript",color:"yellow",subcategories:["Other"]},{name:"GC / CC",color:"orange",subcategories:["Other"]},{name:"Network",color:"lightblue",subcategories:["Other"]},{name:"Graphics",color:"green",subcategories:["Other"]},{name:"DOM",color:"blue",subcategories:["Other"]}],product:"Firefox",stackwalk:0,toolkit:"",version:Tn,preprocessedProfileVersion:Bn,appBuildID:"",sourceURL:"",physicalCPUs:0,logicalCPUs:0,CPUName:"",symbolicated:!0,markerSchema:[]},libs:[],pages:[],threads:[]}}function Vn(e){const t=self.ga;t&&t("send",e)}const jn=3,Zn={};let $n;function Kn(e,t){if("undefined"!=typeof performance){const n=performance.now(),r=t(),o=Math.round(performance.now()-n),a=Zn[e]||0;return a<jn&&(Zn[e]=1+a,Vn({hitType:"timing",timingCategory:"timeCode",timingVar:e,timingValue:o})),r}return t()}function Yn(e){return e.join("-")}$n=Symbol.iterator;class qn{constructor(e){if(this._table=void 0,e instanceof qn)this._table=new Map(e._table);else if(this._table=new Map,e)for(const t of e)this._table.set(Yn(t),t)}add(e){return this._table.set(Yn(e),e),this}clear(){this._table.clear()}delete(e){return this._table.delete(Yn(e))}*values(){yield*this._table.values()}*entries(){for(const e of this)yield[e,e]}forEach(e,t){for(const n of this)e.call(t,n,n,this)}has(e){return this._table.has(Yn(e))}get size(){return this._table.size}*[$n](){yield*this._table.values()}}var Jn=n(7365);const Xn=/^(?<vcs>hg|git):(?<repo>[^:]*):(?<path>[^:]*):(?<rev>.*)$/,Qn=/^s3:(?<bucket>[^:]*):(?<digest>[0-9a-f]*)\/(?<path>[^:]*):$/,er=/^cargo:(?<registry>[^:]*):(?<crate>[^/]+)-(?<version>[0-9]+\.[0-9]+\.[0-9]+):(?<path>[^:]*)$/,tr=new RegExp("^(?<host>"+Mn+")/source(?<path>.*)$");function nr(e){const t=Xn.exec(e);if(null!==t&&t.groups){const{vcs:e,repo:n,path:r,rev:o}=t.groups;if("hg"!==e&&"git"!==e)throw new Error('The regexp ensures that "vcs" is "hg" or "git", so this cannot happen.');return{type:e,repo:n,path:r,rev:o}}const n=Qn.exec(e);if(null!==n&&n.groups){const{bucket:e,digest:t,path:r}=n.groups;return{type:"s3",bucket:e,digest:t,path:r}}const r=er.exec(e);if(null!==r&&r.groups){const{registry:e,crate:t,version:n,path:o}=r.groups;return{type:"cargo",registry:e,crate:t,version:n,path:`${t}-${n}/${o}`}}const o=tr.exec(e);if(null!==o&&o.groups){const{host:e,path:t}=o.groups;return{type:"localhost",host:e+"/source",path:t}}return{type:"normal",path:e}}function rr(e,t,n,r){return Kn("getCallNodeInfo",(()=>{const o=new Uint32Array(e.length),a=n.length,i=new Map,s=[],l=[],c=[],d=[],u=[],h=[],p=[];let m=0;function f(e,t,n,r,o,a){const i=m++;s[i]=e,l[i]=t,c[i]=n,d[i]=r,u[i]=o,p[i]=a,h[i]=-1===e?0:h[e]+1}for(let n=0;n<e.length;n++){const s=e.prefix[n],l=null===s?-1:o[s],u=e.frame[n],h=e.category[n],g=e.subcategory[n],A=t.innerWindowID[u]||0,b=t.inlineDepth[u]>0?t.nativeSymbol[u]:null,C=t.func[u],y=l*a+C;let v=i.get(y);void 0===v?(v=m,f(l,C,h,g,A,b),i.set(y,v)):(c[v]!==h?(c[v]=r,d[v]=0):d[v]!==g&&(d[v]=0),p[v]!==b&&(p[v]=-1)),o[n]=v}return{callNodeTable:{prefix:new Int32Array(s),func:new Int32Array(l),category:new Int32Array(c),subcategory:new Int32Array(d),innerWindowID:new Float64Array(u),sourceFramesInlinedIntoSymbol:p,depth:h,length:m},stackIndexToCallNodeIndex:o}}))}function or(e,t){return e.map((e=>null===e?null:t[e]))}function ar(e,t,n,r){const o=new Array(t.length),a=-1===r||null===r?0:e.depth[r],i=new Array(a);for(let t=r,n=a;n>=0&&null!==t;n--,t=e.prefix[t])i[n]=t;function s(t,n){let o=t;if(null===o)return null===n?"FILTERED_OUT_BY_ACTIVE_TAB":"FILTERED_OUT_BY_TRANSFORM";if(null===r)return"SELECTED";let s=e.depth[o];for(;s>a;)o=e.prefix[o],s--;if(o===r)return"SELECTED";for(;;){const t=o;if(o=e.prefix[o],s--,-1===o||o===i[s])return t<=i[s+1]?"UNSELECTED_ORDERED_BEFORE_SELECTED":"UNSELECTED_ORDERED_AFTER_SELECTED"}throw new Error("unreachable")}for(let e=0;e<t.length;e++)o[e]=s(t[e],n[e]);return o}function ir(e){if(0===e.length)throw new Error("getLeafFuncIndex assumes that the path isn't empty.");return e[e.length-1]}function sr(e,t,n,r,o,a,i,s,l,c,d){return lr(Er(e,t.callNodeTable),t,0,r,o,a,i,s,l,c,d)}function lr(e,{callNodeTable:t,stackIndexToCallNodeIndex:n},r,o,a,i,s,l,c,d,u){const{stackTable:h,stringTable:p}=a,{stackTable:m,funcTable:f,frameTable:g}=i,A=l.findIndex((({name:e})=>"JavaScript"===e)),b={selfTime:{value:0,breakdownByImplementation:null,breakdownByCategory:null},totalTime:{value:0,breakdownByImplementation:null,breakdownByCategory:null}},C={selfTime:{value:0,breakdownByImplementation:null,breakdownByCategory:null},totalTime:{value:0,breakdownByImplementation:null,breakdownByCategory:null}};let y=0;function v(e){const t=g.implementation[e];if(null===t)return"interpreter";const n=p.getString(t);switch(n){case"baseline":case"blinterp":case"ion":case"yjit":return n;default:return"unknown"}}function w(e,t,n,r){e.value+=r;const o=function(e){const t=d.stack[e+s];if(null===t)return console.error("We got a null stack, this should not happen."),"native";const n=m.frame[t],r=g.func[n],o=f.isJS[r]?v(n):function(e){if(m.category[e]!==A)return"native";for(let t=e;null!==t;t=m.prefix[t]){const e=m.frame[t],n=g.func[e];if(f.isJS[n])return v(e)}return"native"}(t);return o}(t);u?(null===e.breakdownByImplementation&&(e.breakdownByImplementation={}),void 0===e.breakdownByImplementation[o]&&(e.breakdownByImplementation[o]=0),e.breakdownByImplementation[o]+=r):e.breakdownByImplementation=null;const a=d.stack[t+s];if(null!==a){const t=m.category[a],n=m.subcategory[a];null===e.breakdownByCategory&&(e.breakdownByCategory=l.map((e=>({entireCategoryValue:0,subcategoryBreakdown:Array(e.subcategories.length).fill(0)})))),e.breakdownByCategory[t].entireCategoryValue+=r,e.breakdownByCategory[t].subcategoryBreakdown[n]+=r}}if(null===e)return{forPath:b,forFunc:C,rootTime:y};const k=t.func[e];for(let r=0;r<c.length;r++){const a=c.stack[r];if(null===a)continue;const i=c.weight?c.weight[r]:1;y+=Math.abs(i);const s=n[a],l=t.func[s];o||(s===e&&w(b.selfTime,r,0,i),l===k&&w(C.selfTime,r,0,i));let d,u=!1,p=!1;for(let s=a;null!==s;s=d){const a=n[s],l=t.func[a];if(d=h.prefix[s],a===e&&(o||w(b.totalTime,r,0,i),p=!0),u||l!==k||(o||w(C.totalTime,r,0,i),u=!0),!o&&u&&p)break;o&&null===d&&(a===e&&(b.selfTime.value+=i),l===k&&w(C.selfTime,r,0,i),p&&w(b.totalTime,r,0,i),u&&w(C.totalTime,r,0,i))}}return{forPath:b,forFunc:C,rootTime:y}}const cr=_t()((function({samples:e,markers:t,jsAllocations:n,nativeAllocations:r},o){const a={start:1/0,end:-1/0};if(e.length){const t=e.length-1;a.start=e.time[0],a.end=e.time[t]+o}else if(t.length)for(let e=0;e<t.length;e++){const n=t.startTime[e],r=t.endTime[e];switch(t.phase[e]){case Rn:case Ln:{const e=nt(n);a.start=Math.min(a.start,e),a.end=Math.max(a.end,e+o);break}case On:{const e=nt(r);a.start=Math.min(a.start,e),a.end=Math.max(a.end,e+o);break}case Dn:{const e=nt(n),t=nt(r);a.start=Math.min(a.start,e,t),a.end=Math.max(a.end,e+o,t+o);break}default:throw new Error("Unhandled marker phase type.")}}if(n){const e=n.length-1;a.start=Math.min(a.start,n.time[0]),a.end=Math.max(a.end,n.time[e]+o)}if(r){const e=r.length-1;a.start=Math.min(a.start,r.time[0]),a.end=Math.max(a.end,r.time[e]+o)}return a}),{cache:new(un())});function dr(e){const t={start:1/0,end:-1/0};return void 0!==e.meta.profilingStartTime&&e.meta.profilingEndTime?{start:e.meta.profilingStartTime,end:e.meta.profilingEndTime}:(e.threads.forEach((n=>{const r=cr(n,e.meta.interval);t.start=Math.min(t.start,r.start),t.end=Math.max(t.end,r.end)})),t)}function ur(e){switch(e){case"cpp":case"js":return e;default:return"combined"}}function hr(e){switch(e){case"timing":case"js-allocations":case"native-retained-allocations":case"native-allocations":case"native-deallocations-sites":case"native-deallocations-memory":return e;default:return"timing"}}function pr(e,t,n){const{funcTable:r,stringTable:o}=e;switch(t){case"cpp":return mr(e,(e=>{if(r.isJS[e])return!1;const t=o.getString(r.name[e]);return!(-1===r.resource[e]&&t.startsWith("0x"))}),n);case"js":return mr(e,(e=>r.isJS[e]||r.relevantForJS[e]),n);default:return e}}function mr(e,t,n){return Kn("filterThread",(()=>{const{stackTable:r,frameTable:o}=e,a={length:0,frame:[],prefix:[],category:[],subcategory:[]},i=new Map,s=o.length,l=new Map;return _r(e,a,(function e(c){if(null===c)return null;let d=i.get(c);if(void 0===d){const u=e(r.prefix[c]),h=r.frame[c],p=o.func[h];if(t(p)){const e=(null===u?-1:u)*s+h;d=l.get(e),void 0===d?(d=a.length++,a.prefix[d]=u,a.frame[d]=h,a.category[d]=r.category[c],a.subcategory[d]=r.subcategory[c]):a.category[d]!==r.category[c]?(a.category[d]=n,a.subcategory[d]=0):a.subcategory[c]!==r.subcategory[c]&&(a.subcategory[c]=0),i.set(c,d),l.set(e,d)}else d=u}return d}))}))}function fr(e,t){if(!t)return e;const n=t.toLowerCase(),{funcTable:r,frameTable:o,stackTable:a,stringTable:i,resourceTable:s}=e,l=new Map;const c=new Map;function d(e){if(null===e)return!1;let t=c.get(e);if(void 0===t){if(d(a.prefix[e]))t=!0;else{const c=a.frame[e];t=function(e){let t=l.get(e);return void 0===t&&(t=function(e){const t=r.name[e];if(i.getString(t).toLowerCase().includes(n))return!0;const o=r.fileName[e];if(null!==o&&i.getString(o).toLowerCase().includes(n))return!0;const a=r.resource[e];if(-1!==a){const e=s.name[a];if(i.getString(e).toLowerCase().includes(n))return!0}return!1}(e),l.set(e,t)),t}(o.func[c])}c.set(e,t)}return t}return _r(e,a,(e=>d(e)?e:null))}function gr(e,t){return Kn("filterThreadByTab",(()=>{if(0===t.size)return e;const{frameTable:n,stackTable:r}=e,o=new Map,a=new Map;function i(e){if(null===e)return!1;const s=a.get(e);if(void 0!==s)return s;if(i(r.prefix[e]))return a.set(e,!0),!0;const l=function(e){const r=o.get(e);if(void 0!==r)return r;const a=n.innerWindowID[e],i=!!(a&&a>0)&&t.has(a);return o.set(e,i),i}(r.frame[e]);return a.set(e,l),l}return _r(e,r,(e=>i(e)?e:null))}))}function Ar(e,t){const{stackTable:n,frameTable:r,funcTable:o,stringTable:a}=t;if(void 0===e||0===e.length||0===n.length)return!1;const i=e.stack.find((e=>null!==e));if(null==i)return!1;if(null===n.prefix[i]){const t=n.frame[i],s=r.func[t],l=o.name[s];if("(root)"===a.getString(l))return e.stack.some((e=>null!==e&&e!==i))}return!0}function br(e,t,n){const r=(0,Jn.q)(e.time,t);return[r,(0,Jn.q)(e.time,n,r)]}function Cr(e,t,n){let[r,o]=br(e,t,n);return r>0&&r--,o<e.length&&o++,[r,o]}function yr(e,t,n){const{samples:r,jsAllocations:o,nativeAllocations:a}=e,[i,s]=br(r,t,n),l={length:s-i,time:r.time.slice(i,s),weight:r.weight?r.weight.slice(i,s):null,weightType:r.weightType,stack:r.stack.slice(i,s)};r.eventDelay?l.eventDelay=r.eventDelay.slice(i,s):r.responsiveness&&(l.responsiveness=r.responsiveness.slice(i,s)),r.threadCPUDelta&&(l.threadCPUDelta=r.threadCPUDelta.slice(i,s)),r.threadId&&(l.threadId=r.threadId.slice(i,s));const c={...e,samples:l};if(o){const[e,r]=br(o,t,n);c.jsAllocations={time:o.time.slice(e,r),className:o.className.slice(e,r),typeName:o.typeName.slice(e,r),coarseType:o.coarseType.slice(e,r),weight:o.weight.slice(e,r),weightType:o.weightType,inNursery:o.inNursery.slice(e,r),stack:o.stack.slice(e,r),length:r-e}}if(a){const[e,r]=br(a,t,n),o=a.time.slice(e,r),i=a.weight.slice(e,r),s=a.stack.slice(e,r),l=r-e;a.memoryAddress?c.nativeAllocations={time:o,weight:i,weightType:a.weightType,stack:s,memoryAddress:a.memoryAddress.slice(e,r),threadId:a.threadId.slice(e,r),length:l}:c.nativeAllocations={time:o,weight:i,weightType:a.weightType,stack:s,length:l}}return c}function vr(e,t,n){const r=e.map(((e,r)=>{let o=0;const a=n&&n[r]?n[r][0]:0,i=n&&n[r]?n[r][1]:e.length;for(let n=a;n<i;n++){const r=e.count[n]/(0===n?t:e.time[n]-e.time[n-1]);o=Math.max(r,o)}return o}));return r}function wr(e,t){const n=new Map;return e.map((e=>function(e,t,n){const r=Yn(e),o=n.get(r);if(void 0!==o)return o;const a=[r];let i,s=e.length;for(;--s>0;){const t=Yn(e.slice(0,s));if(i=n.get(t),void 0!==i)break;a.push(t)}for(void 0===i&&(i=-1);s<e.length;){const r=kr(i,e[s],t);if(null===r)return null;const o=a.pop();n.set(o,r),i=r,s++}return i<0?null:i}(e,t,n)))}function kr(e,t,n){for(let r=e+1;r<n.length;r++)if(n.prefix[r]===e&&n.func[r]===t)return r;return null}function Er(e,t){const[n]=wr([e],t);return n}function xr(e,t){if(null===e||-1===e)return[];const n=[];let r=e;for(;-1!==r;)n.push(t.func[r]),r=t.prefix[r];return n.reverse(),n}function Sr(e,t){const{stackTable:n,frameTable:r}=e,o=[];for(let e=t;null!==e;e=n.prefix[e]){const t=n.frame[e];o.push({category:n.category[e],func:r.func[t]})}return o.reverse()}function Tr(e,t){let n=-1;const{callNodeTable:r,stackIndexToCallNodeIndex:o}=t;for(let t=0;t<e.length;t++){const a=e.stack[t];if(null===a)continue;const i=o[a],s=r.depth[i];n=Math.max(n,s)}return n+1}function Br(e,t,n){const{jsAllocations:r,nativeAllocations:o,samples:a}=e,i={...a,stack:n(a.stack,a.time)},s={...e,samples:i,stackTable:t};return r&&(s.jsAllocations={...r,stack:n(r.stack,r.time)}),o&&(s.nativeAllocations={...o,stack:n(o.stack,o.time)}),s}function _r(e,t,n){return Br(e,t,((e,t)=>e.map((e=>n(e)))))}function Ir(e){return t=>{if(null===t)return null;const n=e.get(t);if(void 0===n)throw new Error("Could not find a stack when converting from an old stack to new stack.");return n}}function Pr(e,t){let n,r;if("GeckoMain"===t.name)if(t["eTLD+1"])n=t["eTLD+1"],r=e.filter((e=>"GeckoMain"===e.name&&e["eTLD+1"]===n));else if(t.processName)n=t.processName,r=e.filter((e=>"GeckoMain"===e.name&&e.processName===n));else switch(t.processType){case"default":n="Parent Process";break;case"gpu":n="GPU Process";break;case"rdd":n="Remote Data Decoder";break;case"tab":n="Content Process",r=e.filter((e=>"GeckoMain"===e.name&&"tab"===e.processType));break;case"plugin":n="Plugin Process";break;case"socket":n="Socket Process"}if(n||(n=t.name),r&&r.length>1){const e=1+r.indexOf(t);n+=` (${e}/${r.length})`}return n}function Nr(e,t){let n=`${t}\n`;return n+=`Thread: "${e.name}"`,void 0!==e.tid&&(n+=` (${e.tid})`),e.processType&&(n+=`\nProcess: "${e.processType}"`,void 0!==e.pid&&(n+=` (${e.pid})`)),e.isPrivateBrowsing&&(n+="\nPrivate Browsing: Yes"),e.userContextId&&(n+=`\nContainer Id: ${e.userContextId}`),n}function Mr(e,t,n,r){let o=null,a=null;const i=t.resource[e];if(-1!==i){o=n.type[i];const e=n.name[i];a=r.getString(e)}const s=t.fileName[e];let l;if(null!==s){l=r.getString(s),l=nr(l).path;const n=t.lineNumber[e];if(null!==n){l+=":"+n;const r=t.columnNumber[e];null!==r&&(l+=":"+r)}}return l?a&&function(e,t,n){return!e.startsWith(t)&&n!==Gn.library}(l,a,o)?`${a}: ${l}`:l:a||""}function Fr(e){const t=zn(e.funcTable),n=new Map,r=[Gn.addon,Gn.url,Gn.webhost,Gn.otherhost],{resourceTable:o}=e;for(let e=0;e<o.length;e++){const a=o.type[e],i=o.name[e],s=r.includes(a),l=a===Gn.url?i:null,c=t.length;t.isJS.push(s),t.relevantForJS.push(s),t.name.push(i),t.resource.push(e),t.fileName.push(l),t.lineNumber.push(null),t.columnNumber.push(null),t.length++,n.set(e,c)}return{thread:{...e,funcTable:t},reservedFunctionsForResources:n}}function Rr(e,t){const{funcTable:n,stringTable:r,resourceTable:o}=t;return e.map((e=>{const{category:t,func:a}=e;return{funcName:r.getString(n.name[a]),category:t,isFrameLabel:-1===n.resource[a],origin:Mr(a,n,o,r)}}))}function Dr(e){switch(e){case"interpreter":return"Ruby interpreter";case"blinterp":case"baseline":case"ion":case"yjit":return`Ruby JIT (${e})`;case"native":return"Native code";case"unknown":return e;default:throw Je(e)}}function Lr(e,t,n){const r=e[t];return 0!==n?`${r.name}: ${r.subcategories[n]}`:`${r.name}`}function Or(e,t,n,r){let o,a;try{const t=new URL(e);if("http:"!==t.protocol&&"https:"!==t.protocol&&"moz-extension:"!==t.protocol)throw new Error("not a webhost or extension protocol");o=t.origin,a=t.host}catch(t){o=e,a=null}let i=r.get(o);return void 0!==i||(i=t.length++,r.set(o,i),a?(t.lib[i]=null,t.name[i]=n.indexForString(o),t.host[i]=n.indexForString(a),t.type[i]=Gn.webhost):(t.lib[i]=null,t.name[i]=n.indexForString(e),t.host[i]=null,t.type[i]=Gn.url)),i}function Ur(e){return 1===e.size?nt(rt(e)):[...e].sort(((e,t)=>t-e)).join(",")}function zr(e,t){const n=(""+t).split(",").map((e=>+e));for(const t of n)if(!e.has(t))return!1;return!0}function Gr(e,t,n){const{samples:r,markers:o,jsAllocations:a,nativeAllocations:i}=e,s={...r,stack:r.stack.map((e=>{if(null===e)return null;const n=t.get(e);if(void 0===n)throw new Error(`Missing mapForSamplingSelfStacks entry for stack ${e}`);return n}))};function l(e){if(null===e)return null;const t=n.get(e);if(void 0===t)throw new Error(`Missing mapForBacktraceSelfStacks entry for stack ${e}`);return t}const c={...o,data:o.data.map((function(e){return e&&"cause"in e&&e.cause?{...e,cause:{...e.cause,stack:l(e.cause.stack)}}:e}))};let d,u;return void 0!==a&&(d={...a,stack:a.stack.map(l)}),void 0!==i&&(u={...i,stack:i.stack.map(l)}),{...e,samples:s,markers:c,jsAllocations:d,nativeAllocations:u}}function Wr(e,t,n){const{stackTable:r,frameTable:o,funcTable:a,stringTable:i,resourceTable:s,nativeSymbols:l}=n,c=t.callNodeTable.func[e],d=a.fileName[c],u=null!==d?i.getString(d):null,h=a.resource[c],p=-1!==h&&s.type[h]===Gn.library?s.lib[h]:null,m=function(e,{stackIndexToCallNodeIndex:t},n,r){const o=new Set;for(let a=0;a<n.length;a++)if(t[a]===e){const e=n.frame[a],t=r.nativeSymbol[e];null!==t&&o.add(t)}return[...o]}(e,t,r,o),f=m.map((e=>function(e,t,n,r){const o=t.functionSize[e],a=o??function(e,t,n){let r=t;for(let t=0;t<e.length;t++)if(e.nativeSymbol[t]===n){const n=e.address[t];n>r&&(r=n)}return r+1-t}(n,t.address[e],e);return{libIndex:t.libIndex[e],address:t.address[e],name:r.getString(t.name[e]),functionSize:a,functionSizeIsKnown:null!==o}}(e,l,o,i)));return{libIndex:p,sourceFile:u,nativeSymbols:f}}function Hr(e){return e.meta.categories?e.meta.sampleUnits&&e.threads.some((e=>e.samples.threadCPUDelta))?"cpu-category":"category":"stack"}function Vr(e){return function(e){let t="",n=0,r=null,o=0;for(let a=1;a<e.length;a++)"<"===e[a]?(" "!==e[a-1]&&"."!==e[a-1]&&null===r&&(t+=e.slice(o,a),o=a,r=n),n++):">"===e[a]&&(n--,n===r&&(o=a+1,r=null));return t+=e.slice(o),t}(function(e){const t=e.replace(/ \[clone [^]+\]$/,"").replace(/ const$/,"").replace(/^static /,"");if(")"!==t[t.length-1])return e;let n=0;for(let e=t.length-1;e>0;e--)if(")"===t[e])n++;else if("("===t[e]&&(n--,0===n))return t.substr(0,e);return t}(e))}const jr=n.p+"79856ce399cb305fafb8.svg";class Zr{constructor(e,t,n,r,o,a,i,s,l,c,d){this._categories=void 0,this._callNodeInfo=void 0,this._callNodeTable=void 0,this._callNodeSummary=void 0,this._callNodeChildCount=void 0,this._thread=void 0,this._rootTotalSummary=void 0,this._rootCount=void 0,this._displayDataByIndex=void 0,this._children=void 0,this._jsOnly=void 0,this._interval=void 0,this._isHighPrecision=void 0,this._weightType=void 0,this._categories=t,this._callNodeInfo=n,this._callNodeTable=n.callNodeTable,this._callNodeSummary=r,this._callNodeChildCount=o,this._thread=e,this._rootTotalSummary=a,this._rootCount=i,this._displayDataByIndex=new Map,this._children=[],this._jsOnly=s,this._interval=l,this._isHighPrecision=c,this._weightType=d}getRoots(){return this.getChildren(-1)}getChildren(e){let t=this._children[e];if(void 0===t){const n=-1===e?this._rootCount:this._callNodeChildCount[e];t=[];for(let r=e+1;r<this._callNodeTable.length&&t.length<n;r++){const n=this._callNodeTable.prefix[r],o=this._callNodeSummary.total[r],a=this._callNodeChildCount[r];n!==e||0===o&&0===a||t.push(r)}t.sort(((e,t)=>Math.abs(this._callNodeSummary.total[t])-Math.abs(this._callNodeSummary.total[e]))),this._children[e]=t}return t}hasChildren(e){return 0!==this.getChildren(e).length}_addDescendantsToSet(e,t){for(const n of this.getChildren(e))t.add(n),this._addDescendantsToSet(n,t)}getAllDescendants(e){const t=new Set;return this._addDescendantsToSet(e,t),t}getParent(e){return this._callNodeTable.prefix[e]}getDepth(e){return this._callNodeTable.depth[e]}hasSameNodeIds(e){return this._callNodeTable===e._callNodeTable}getNodeData(e){const t=this._callNodeTable.func[e],n=this._thread.stringTable.getString(this._thread.funcTable.name[t]),r=this._callNodeSummary.total[e],o=r/this._rootTotalSummary,a=this._callNodeSummary.self[e];return{funcName:n,total:r,totalRelative:o,self:a,selfRelative:a/this._rootTotalSummary}}_getInliningBadge(e,t){const n=Vr(t),r=this._callNodeTable.sourceFramesInlinedIntoSymbol[e];if(null===r)return;if(-1===r)return{name:"divergent-inlining",vars:{calledFunction:n},localizationId:"CallTree--divergent-inlining-badge",contentFallback:"",titleFallback:`Some calls to ${n} were inlined by the compiler.`};const o=Vr(this._thread.stringTable.getString(this._thread.nativeSymbols.name[r]));return{name:"inlined",vars:{calledFunction:n,outerFunction:o},localizationId:"CallTree--inlining-badge",contentFallback:"(inlined)",titleFallback:`Calls to ${n} were inlined into ${o} by the compiler.`}}getDisplayData(e){let t=this._displayDataByIndex.get(e);if(void 0===t){const{funcName:n,total:r,totalRelative:o,self:a}=this.getNodeData(e),i=this._callNodeTable.func[e],s=this._callNodeTable.category[e],l=this._callNodeTable.subcategory[e],c=this._getInliningBadge(e,n),d=this._thread.funcTable.resource[i],u=this._thread.resourceTable.type[d],h=-1===d,p=this._getOriginAnnotation(i),m=this._weightType;let f=null,g=null;if(u===Gn.webhost)g=f=function(e){try{const t=new URL("/favicon.ico",e);return"http:"===t.protocol&&(t.protocol="https:"),t.href}catch(t){return console.error("Error while extracing the favicon from the libname",e),null}}(p);else if(u===Gn.addon){f=jr;const e=this._thread.resourceTable.name[d];g=this._thread.stringTable.getString(e)}const A=Ft(m,this._isHighPrecision,r),b=Ft(m,this._isHighPrecision,a),C=`${Dt(o)}`;let y,v,w;switch(m){case"tracing-ms":v=`${A}ms`,w=`${b}ms`,y=En`
|
3
|
+
${n},
|
4
|
+
running time is ${v} (${C}),
|
5
|
+
self time is ${w}
|
6
|
+
`;break;case"samples":v=1===r?`${A} sample`:`${A} samples`,w=1===a?`${b} sample`:`${b} samples`,y=En`
|
7
|
+
${n},
|
8
|
+
running count is ${v} (${C}),
|
9
|
+
self count is ${w}
|
10
|
+
`;break;case"bytes":v=`${A} bytes`,w=`${b} bytes`,y=En`
|
11
|
+
${n},
|
12
|
+
total size is ${v} (${C}),
|
13
|
+
self size is ${w}
|
14
|
+
`;break;default:throw Je(m,"Unhandled WeightType.")}t={total:0===r?"—":A,totalWithUnit:0===r?"—":v,self:0===a?"—":b,selfWithUnit:0===a?"—":w,totalPercent:C,name:n,lib:p.slice(0,1e3),isFrameLabel:h,badge:c,categoryName:Lr(this._categories,s,l),categoryColor:this._categories[s].color,iconSrc:f,icon:g,ariaLabel:y},this._displayDataByIndex.set(e,t)}return t}_getOriginAnnotation(e){return Mr(e,this._thread.funcTable,this._thread.resourceTable,this._thread.stringTable)}getBottomBoxInfoForCallNode(e){return Wr(e,this._callNodeInfo,this._thread)}}function $r(e,t,n){const r=new Int32Array(t.length);for(let e=0;e<t.length;e++){const n=t.prefix[e];r[e]=-1===n?e:r[n]}const o=new Float32Array(t.length),a=new Float32Array(t.length);for(let t=0;t<n.length;t++){const i=n[t];if(null!==i){const n=r[i],s=e.weight?e.weight[t]:1;o[n]+=s,a[i]+=s}}return{callNodeSelf:o,callNodeLeaf:a}}function Kr(e,t,n){const r=new Float32Array(t.length);for(let t=0;t<n.length;t++){const o=n[t];if(null!==o){const n=e.weight?e.weight[t]:1;r[o]+=n}}return{callNodeSelf:r,callNodeLeaf:r}}function Yr(e,{callNodeTable:t,stackIndexToCallNodeIndex:n},r,o){const a=or(e.stack,n),{callNodeSelf:i,callNodeLeaf:s}=o?$r(e,t,a):Kr(e,t,a),l=new Float32Array(t.length),c=new Uint32Array(t.length);let d=0,u=0;for(let e=t.length-1;e>=0;e--){l[e]+=s[e],d+=Math.abs(s[e]);const n=0!==c[e],r=0!==l[e];if(!n&&!r)continue;const o=t.prefix[e];-1===o?u++:(l[o]+=l[e],c[o]++)}return{callNodeSummary:{self:i,total:l},callNodeChildCount:c,rootTotalSummary:d,rootCount:u}}function qr(e,t,n,r,o,a,i){return Kn("getCallTree",(()=>{const{callNodeSummary:s,callNodeChildCount:l,rootTotalSummary:c,rootCount:d}=a;return new Zr(e,r,n,s,l,c,d,"js"===o,t,Boolean(e.isJsTracer),i)}))}function Jr(e,t){switch(t){case"timing":return e.samples;case"js-allocations":return nt(e.jsAllocations,'Expected the NativeAllocationTable to exist when using a "js-allocation" strategy');case"native-retained-allocations":{const t=nt(e.nativeAllocations,'Expected the NativeAllocationTable to exist when using a "native-allocation" strategy');if(!t.memoryAddress)throw new Error("Attempting to filter by retained allocations data that is missing the memory addresses.");return function(e){const t=new Map,n=[];for(let r=0;r<e.length;r++){const o=e.weight[r],a=e.memoryAddress[r];if(o>=0)t.set(a,r),n[r]=!0;else{n[r]=!1;const e=t.get(a);void 0!==e&&(n[e]=!1,t.delete(a))}}const r={time:[],weight:[],weightType:"bytes",stack:[],memoryAddress:[],threadId:[],length:0};for(let t=0;t<e.length;t++){const o=e.weight[t];n[t]&&(r.time.push(e.time[t]),r.stack.push(e.stack[t]),r.weight.push(o),r.memoryAddress.push(e.memoryAddress[t]),r.threadId.push(e.threadId[t]),r.length++)}return r}(t)}case"native-allocations":return function(e){let t;if(e.memoryAddress){t={time:[],weight:[],weightType:"bytes",stack:[],memoryAddress:[],threadId:[],length:0};for(let n=0;n<e.length;n++){const r=e.weight[n];r>0&&(t.time.push(e.time[n]),t.stack.push(e.stack[n]),t.weight.push(r),t.memoryAddress.push(e.memoryAddress[n]),t.threadId.push(e.threadId[n]),t.length++)}}else{t={time:[],weight:[],weightType:"bytes",stack:[],length:0};for(let n=0;n<e.length;n++){const r=e.weight[n];r>0&&(t.time.push(e.time[n]),t.stack.push(e.stack[n]),t.weight.push(r),t.length++)}}return t}(nt(e.nativeAllocations,'Expected the NativeAllocationTable to exist when using a "native-allocations" strategy'));case"native-deallocations-sites":return function(e){let t;if(e.memoryAddress){t={time:[],weight:[],weightType:"bytes",stack:[],memoryAddress:[],threadId:[],length:0};for(let n=0;n<e.length;n++){const r=e.weight[n];r<0&&(t.time.push(e.time[n]),t.stack.push(e.stack[n]),t.weight.push(r),t.memoryAddress.push(e.memoryAddress[n]),t.threadId.push(e.threadId[n]),t.length++)}}else{t={time:[],weight:[],weightType:"bytes",stack:[],length:0};for(let n=0;n<e.length;n++){const r=e.weight[n];r<0&&(t.time.push(e.time[n]),t.stack.push(e.stack[n]),t.weight.push(r),t.length++)}}return t}(nt(e.nativeAllocations,'Expected the NativeAllocationTable to exist when using a "native-deallocations-sites" strategy'));case"native-deallocations-memory":{const t=nt(e.nativeAllocations,'Expected the NativeAllocationTable to exist when using a "native-deallocations-memory" strategy');if(!t.memoryAddress)throw new Error("Attempting to filter by retained allocations data that is missing the memory addresses.");return function(e){const t=[],n={time:[],weight:[],weightType:"bytes",stack:[],memoryAddress:[],threadId:[],length:0};for(let r=0;r<e.length;r++){const o=e.weight[r],a=e.memoryAddress[r];if(o>=0){a in t&&console.error(En`
|
15
|
+
The address ${a} was already present when we wanted to add it.
|
16
|
+
This probably means the deallocation wasn't collected, which may sometimes
|
17
|
+
happen. We will overwrite the previous entry.
|
18
|
+
`),t[a]=e.stack[r];continue}const i=t[a];void 0!==i&&(n.time.push(e.time[r]),n.stack.push(i),n.weight.push(o),n.memoryAddress.push(a),n.threadId.push(e.threadId[r]),n.length++,delete t[a])}return n}(nt(t,'Expected the NativeAllocationTable to exist when using a "js-allocation" strategy'))}default:throw Je(t)}}function Xr(e,{callNodeTable:t,stackIndexToCallNodeIndex:n},r,o){if("samples"!==e.weightType||e.weight)return null;const a=[];for(let t=0;t<e.length-1;t++)a.push(e.time[t+1]-e.time[t]);e.length>0&&a.push(r);const i={...e,weight:a},s=or(e.stack,n),{callNodeSelf:l,callNodeLeaf:c}=o?$r(i,t,s):Kr(i,t,s),d=new Float32Array(t.length),u=new Uint32Array(t.length);for(let e=t.length-1;e>=0;e--){d[e]+=c[e];const n=0!==u[e],r=0!==d[e];if(!n&&!r)continue;const o=t.prefix[e];-1!==o&&(d[o]+=d[e],u[o]++)}return{self:l,running:d}}var Qr=n(3150),eo=n.n(Qr);const to=new RegExp(`\\b((?:${["http","https","ftp","file","moz-extension","moz-page-thumb"].join("|")})://)/?[^\\s/$.?#][^\\s)]*`,"gi");function no(e,t="<URL>"){return e.replace(to,"$1"+t)}function ro(e,t="<PATH>"){let n=null,r=e.lastIndexOf("/");return-1!==r?n="/":(r=e.lastIndexOf("\\"),-1!==r&&(n="\\")),null===n?e:t+n+e.slice(r+1)}const oo=e=>{if(!e)return null;const t=e.split(",").map((e=>e.trim())).filter((e=>e));return t.length?t:null},ao=e=>{if(!e||!e.length)return null;const t=e.map(eo()).join("|");return new RegExp(t,"gi")},io=[{name:"Jank",display:["marker-table","marker-chart"],tooltipLabel:"Jank – event processing delay",tableLabel:"Event processing delay",data:[{label:"Description",value:En`
|
19
|
+
Jank markers show when the main event loop of a thread has been busy. It is
|
20
|
+
a good indicator that there may be some kind of performance problem that
|
21
|
+
is worth investigating.
|
22
|
+
`}]},{name:"IPC",tooltipLabel:"IPC — {marker.data.niceDirection}",tableLabel:"{marker.name} — {marker.data.messageType} — {marker.data.niceDirection}",chartLabel:"{marker.data.messageType}",display:["marker-chart","marker-table","timeline-ipc"],data:[{key:"messageType",label:"Type",format:"string",searchable:!0},{key:"sync",label:"Sync",format:"string"},{key:"sendThreadName",label:"From",format:"string"},{key:"recvThreadName",label:"To",format:"string"},{key:"otherPid",label:"Other Pid",format:"string",searchable:!0}]},{name:"Network",display:["marker-table","marker-chart"],chartLabel:"{marker.data.URI}",data:[]}];function so(e,t,n){if(n){const{type:r}=n;return"tracing"===r&&n.category?void 0===e[n.category]?"tracing":n.category:"Text"===r?void 0===e[t]?"Text":t:n.type}return t}function lo(e,t,n){return e[so(e,t,n)]||null}function co(e,t,n,r){const o=r.split(/{([^}]+)}/);if(1===o.length)return()=>r;function a(e,t){return console.error(En`
|
23
|
+
Error processing the label "${e}" because of the ${t}.
|
24
|
+
Currently the labels in the marker schema take the form of
|
25
|
+
"marker.data.keyName" or "marker.startTime". No other type
|
26
|
+
of access is currently supported.
|
27
|
+
`),()=>""}const i=o.map(((o,i)=>{if(i%2==0)return()=>o;const s=o.trim().split(".");if(2!==s.length&&3!==s.length)return a(r,o);const[l,c,d]=s;if("marker"!==l)return a(r,o);if(2===s.length)switch(c){case"start":return e=>Zt(e.start);case"end":return e=>null===e.end?"unknown":Zt(e.end);case"duration":return e=>null===e.end?"unknown":Zt(e.end-e.start);case"name":return e=>e.name;case"category":return e=>t[e.category].name;default:return a(r,o)}if("data"===c){let t=null;for(const n of e.data)if(void 0===n.value&&n.key===d){t=n.format;break}return r=>{if(!r.data)return"";const o=r.data[d];return null==o?"":t?po(e.name,t,o,n):o}}return a(r,o)}));return e=>{let t="";for(const n of i)t+=n(e);return t}}const uo={tooltipLabel:e=>e.name,chartLabel:e=>"",tableLabel:e=>{let t=e.name;if(e.data){const n=e.data;"FileIO"===n.type&&(n.source&&(t=`(${n.source}) `),t+=n.operation,n.filename&&(t=n.operation?`${t} — ${n.filename}`:n.filename))}return t}};function ho(e,t,n,r,o,a){const i=new Map;for(const e of t){const t=e[a];t&&i.set(e.name,co(e,r,o,t))}const s=nt(uo[a],"Unable to find a fallback label function."),l=new Map;return t=>{let r=l.get(t);if(void 0===r){const o=e(t),a=so(n,o.name,o.data),c=i.get(a);r=c?c(o):s(o),l.set(t,r)}return r}}function po(e,t,n,r){if(null==n)return console.warn(`Formatting ${n} for ${e} with format ${JSON.stringify(t)}`),"(empty)";if("object"==typeof t){if("table"===t.type){const{columns:o}=t;if(!(n instanceof Array))throw new Error("Expected an array for table type");const a=o.some((e=>e.label))?[o.map((e=>e.label||"(empty)"))]:[],i=n.map(((t,n)=>{if(!(t instanceof Array))throw new Error("Expected an array for table row");if(t.length!==o.length)throw new Error(`Row ${n} length doesn't match column count (row: ${t.length}, cols: ${o.length})`);return t.map(((t,n)=>{const{format:a}=o[n];return po(e,a||"string",t,r)}))}));return a.push(...i),a.map((e=>`(${e.join(", ")})`)).join(",")}throw new Error(`Unknown format type ${JSON.stringify(t.type)}`)}switch(t){case"url":case"file-path":case"string":return String(n)||"(empty)";case"unique-string":return r.getString(n,"(empty)");case"duration":case"time":return Zt(n);case"seconds":return Ht(n);case"milliseconds":return Wt(n);case"microseconds":return Gt(n);case"nanoseconds":return zt(n);case"bytes":return Ot(n);case"integer":return Mt(n,0,0);case"decimal":return Mt(n);case"percentage":return Dt(n);case"list":if(!(n instanceof Array))throw new Error("Expected an array for list format");return n.map((t=>po(e,"string",t,r))).join(", ");default:return console.warn(`A marker schema of type "${e}" had an unknown format ${JSON.stringify(t)}`),n}}const mo=/^http(s?):\/\//;function fo(e,t,n,r){if(null==n)return console.warn(`Formatting ${n} for ${JSON.stringify(e)}`),"(empty)";if("url"!==t&&"object"!=typeof t&&"list"!==t)return po(e,t,n,r);if("object"==typeof t){if("table"===t.type){const{columns:o}=t;if(!(n instanceof Array))throw new Error("Expected an array for table type");const a=o.some((e=>e.label));return X.createElement("table",{className:"marker-table-value"},a?X.createElement("thead",null,X.createElement("tr",null,o.map(((e,t)=>X.createElement("th",{key:t},e.label||""))))):null,X.createElement("tbody",null,n.map(((t,n)=>{if(!(t instanceof Array))throw new Error("Expected an array for table row");if(t.length!==o.length)throw new Error(`Row ${n} length doesn't match column count (row: ${t.length}, cols: ${o.length})`);return X.createElement("tr",{key:n},t.map(((t,n)=>X.createElement("td",{key:n},fo(e,o[n].type||"string",t,r)))))}))))}throw new Error(`Unknown format type ${JSON.stringify(t)}`)}switch(t){case"list":if(!(n instanceof Array))throw new Error("Expected an array for list format");return X.createElement("ul",{className:"marker-list-value"},n.map(((t,o)=>X.createElement("li",{key:o},po(e,"string",n[o],r)))));case"url":return mo.test(n)?X.createElement("a",{href:n,target:"_blank",rel:"noreferrer",className:"marker-link-value"},n.replace(mo,"")):n;default:throw new Error(`Unknown format type ${JSON.stringify(t)}`)}}function go(e,t,n){const{data:r}=t;if(!r)return!1;n.lastIndex=0;for(const t of e.data)if(t.searchable){const e=r[t.key];if(null==e||""===e)continue;if(n.test(e))return!0}return!1}function Ao(e,t,n,r,o){if(!r)return t;const a=r,i=[];for(const r of t){const t=e(r),{data:s,name:l,category:c}=t;if(a.lastIndex=0,void 0!==o[c]){const e=o[c].name;if(a.test(e)){i.push(r);continue}}if(a.test(l))i.push(r);else if(s&&"object"==typeof s){if(a.test(s.type)){i.push(r);continue}const e=lo(n,t.name,t.data);if(e&&go(e,t,a)){i.push(r);continue}}}return i}function bo(e,t,n,r=!0){if(0===n.size)return t;const o=[];for(const a of t){const{name:t,data:i}=e(a);if(r){if("Jank"===t){o.push(a);continue}}else if(i&&"Network"===i.type)continue;i&&i.innerWindowID&&n.has(i.innerWindowID)&&o.push(a)}return o}class Co{constructor(){this._correlations=void 0,this._correlations=new Map}set(e,t,n){let r=this._correlations.get(e);r||(r=new Map,this._correlations.set(e,r)),r.set(t,n)}get(e,t){const n=this._correlations.get(e);if(n)return n.get(t)}}function yo(e){function t(e,t){let n;return n="sending"===t.direction?`${e.pid},${t.otherPid}`:`${t.otherPid},${e.pid}`,n+`,${t.messageSeqno},${t.messageType}`}function n(e){if(null!=e){const t=a.get(e);if(void 0!==t)return`${t} (Thread ID: ${e})`}}function r(e){const{phase:t}=e;if("sending"===e.direction)switch(t){case"endpoint":case void 0:return 0;case"transferStart":return 1;case"transferEnd":return 2;default:throw Je(t,"Unhandled IPC phase type.")}else switch(t){case"transferEnd":return 3;case"endpoint":case void 0:return 4;case"transferStart":throw new Error('Unexpected "transferStart" phase found on receiving side.');default:throw Je(t,"Unhandled IPC phase type.")}}const o=new Map,a=new Map;for(const n of e)if(n.stringTable.hasString("IPC")&&"number"==typeof n.tid){const i=n.tid;a.set(i,Pr(e,n));for(let e=0;e<n.markers.length;e++){const a=n.markers.data[e];if(!a||"IPC"!==a.type)continue;const s=t(n,a);o.has(s)||o.set(s,new Array(5).fill(void 0));const l=nt(o.get(s)),c=r(a);void 0===l[c]?l[c]={tid:i,index:e,data:a}:console.warn("Duplicate IPC marker found for key",s)}}const i=new Co;for(const e of o.values()){const t=e[0],r=e[4],o=t?t.tid:void 0,a=r?r.tid:void 0,s={startTime:t?t.data.startTime:void 0,sendStartTime:e[1]?e[1].data.startTime:void 0,sendEndTime:e[2]?e[2].data.startTime:void 0,recvEndTime:e[3]?e[3].data.startTime:void 0,endTime:r?r.data.startTime:void 0,sendTid:o,recvTid:a,sendThreadName:n(o),recvThreadName:n(a)},l=new Set;if(t&&(l.add(t.tid),i.set(t.tid,t.index,s)),r&&(l.add(r.tid),i.set(r.tid,r.index,s)),!t||!r)for(const t of e.slice(1,4))void 0===t||l.has(t.tid)||(i.set(t.tid,t.index,s),l.add(t.tid))}return i}function vo(e,t,n,r,o){const a=[],i=[],s=new Map,l=new Map;function c(e,t){i.push(e),a.push(t)}const d=new Map;for(let a=0;a<e.length;a++){const i=e.name[a],p=e.startTime[a],m=e.endTime[a],f=e.phase[a],g=e.data[a],A=e.category[a],b=e.threadId?e.threadId[a]:null;if(g)switch(g.type){case"Network":{const n="Network markers are assumed to have a start and end time.";if("STATUS_START"===g.status)l.set(g.id,a);else{const o=g,s=l.get(g.id);if(void 0!==s){l.delete(g.id);const r=e.data[s],d=nt(e.startTime[s],n),u=nt(p,n);c([s,a],{start:d,end:nt(m,n),name:t.getString(i),category:A,threadId:b,data:{...o,startTime:d,fetchStart:u,cause:r.cause||o.cause}})}else{const e=Math.min(r.start,nt(p,"Network markers are assumed to have a start time."));c([a],{start:e,end:nt(m,n),name:t.getString(i),category:A,threadId:b,data:{...o,startTime:e,fetchStart:o.startTime,cause:o.cause},incomplete:!0})}}continue}case"CompositorScreenshot":{const{windowID:n}=g,r=d.get(n);if(void 0!==r){d.delete(n);const t=nt(e.startTime[r],"Expected to find a start time for a screenshot marker."),o=nt(p,"The CompositorScreenshot is assumed to have a start time."),a=e.data[r];c([r],{start:t,end:o,name:"CompositorScreenshot",category:A,threadId:e.threadId?e.threadId[r]:null,data:a})}if("CompositorScreenshotWindowDestroyed"===t.getString(i))break;d.set(n,a);continue}case"IPC":{const e=o.get(n||0,a);if(!e)continue;if("sending"===g.direction&&"transferEnd"===g.phase&&void 0!==e.sendStartTime)continue;let t="sending"===g.direction?"IPCOut":"IPCIn";g.sync&&(t="Sync"+t);let r=nt(g.startTime,"Expected IPC startTime to exist in the payload."),i=r,s=!0;void 0!==e.startTime&&void 0!==e.endTime&&(r=e.startTime,i=e.endTime,s=!1),c([a],{start:r,end:i,name:t,category:A,threadId:b,data:{...g,...e,niceDirection:"sending"===g.direction?`sent to ${e.recvThreadName||g.otherPid}`:`received from ${e.sendThreadName||g.otherPid}`},incomplete:s});continue}}switch(f){case Rn:c([a],{start:nt(p,"An Instant marker did not have a startTime."),end:null,name:t.getString(i),category:A,threadId:b,data:g});break;case Dn:c([a],{start:nt(p,"An Interval marker did not have a startTime."),end:nt(m,"An Interval marker did not have a startTime."),name:t.getString(i),category:A,threadId:b,data:g});break;case Ln:{let e=s.get(i);e||(e=[],s.set(i,e)),e.push(a)}break;case On:{const n=s.get(i);let o;n&&(o=n.pop());const l=nt(m,"An IntervalEnd marker did not have an endTime");void 0!==o?c([o,a],{start:nt(e.startTime[o],"An IntervalStart marker did not have a startTime"),name:t.getString(i),end:l,category:A,threadId:b,data:(u=e.data[o],h=g,u||h?{...u,...h}:null)}):c([a],{start:Math.min(l,r.start),name:t.getString(i),end:l,category:A,threadId:b,data:g,incomplete:!0})}break;default:throw new Error("Unhandled marker phase type.")}}var u,h;const p=r.end;for(const n of s.values())for(const r of n){const n=nt(e.startTime[r],"Encountered a marker without a startTime. Eventually this needs to be handled for phase-style markers.");c([r],{start:n,end:Math.max(p,n),name:t.getString(e.name[r]),data:e.data[r],category:e.category[r],threadId:e.threadId?e.threadId[r]:null,incomplete:!0})}for(const n of l.values()){const r=nt(e.startTime[n],"Network markers are assumed to always have a start time.");c([n],{start:r,end:Math.max(p,r),name:t.getString(e.name[n]),category:e.category[n],threadId:e.threadId?e.threadId[n]:null,data:e.data[n],incomplete:!0})}for(const t of d.values()){const n=nt(e.startTime[t],"Expected to find a CompositorScreenshot marker with a start time.");c([t],{start:n,end:Math.max(p,n),name:"CompositorScreenshot",category:e.category[t],threadId:e.threadId?e.threadId[t]:null,data:e.data[t]})}return{markers:a,markerIndexToRawMarkerIndexes:i}}function wo(e,t,n,r){const{markers:o,markerIndexToRawMarkerIndexes:a}=t,i=new Set;for(let e=0;e<o.length;e++){const{start:t,end:s}=o[e];if(null===s){if(t<r&&t>=n)for(const t of a[e])i.add(t)}else if(t<r&&s>=n)for(const t of a[e])i.add(t)}return[...i].sort(((e,t)=>e-t))}function ko(e,t,n){return t.filter((t=>n(e(t))))}function Eo(e,t,n,r){return ko(e,t,(e=>e.start<=r&&(e.end||e.start)>=n))}function xo(e){return!(!e.data||"Network"!==e.data.type)}function So(e){return!(!e.data||"UserTiming"!==e.data.type)}function To({name:e,data:t}){return"TTI"===e||(t?"Navigation"===t.category&&("Load"===e||"DOMContentLoaded"===e):"Navigation::Start"===e||!!e.startsWith("Contentful paint "))}function Bo(e){const{data:t}=e;if(t&&"FileIO"===t.type)return void 0===t.threadId}function _o(e){return t=>{const{data:n}=t;return!n||!e[n.type]||void 0}}function Io(e){let t;try{t=new URL(e.URI)}catch(e){return null}const n=t.pathname,r=n.lastIndexOf(".");if(r<0)return null;const o=n.slice(r+1);switch(o){case"js":return"application/javascript";case"css":case"html":return`text/${o}`;case"gif":case"png":return`image/${o}`;case"jpeg":case"jpg":return"image/jpeg";case"svg":return"image/svg+xml";default:return null}}function Po(e){switch(e){case"text/css":return"network-color-css";case"text/html":return"network-color-html";case"application/javascript":return"network-color-js";case null:return"network-color-other";default:return e.startsWith("image/")?"network-color-img":"network-color-other"}}function No(e,t){const n=new Map;for(const r of t){const t=e(r),{data:o}=t;if(o&&"CompositorScreenshot"===o.type){let e=n.get(o.windowID);void 0===e&&(e=[],n.set(o.windowID,e)),e.push(t)}}return n}function Mo(e){return{...e,URI:"",RedirectURI:""}}function Fo(e){return{...e,name:no(e.name)}}function Ro(e,t){return["ExtensionParent","ExtensionChild"].includes(e)?{...t,name:t.name.replace(/^.*, (api_(call|event): )/,"$1")}:"Extension Suspend"===e?{...t,name:t.name.replace(/ by .*$/,"")}:t}function Do(e,t){for(const n of e.data)if(void 0!==n.key&&void 0!==n.format){const e=n.key,r=n.format;if(!(e in t))continue;"url"===r?t={...t,[e]:no(t[e])}:"file-path"===r&&(t={...t,[e]:ro(t[e])})}return t}function Lo(e){}function Oo(e,t,n,r,o,a=Lo){const i=function(e,t){const n=new Set;for(const{display:r,name:o}of e)r.includes(t)&&n.add(o);return n}(n,o);return ko(e,t,(e=>{const t=a(e);return void 0!==t?t:i.has(so(r,e.name,e.data))}))}function Uo(e,t){const{windowWidth:n,windowHeight:r}=e,o=r>n?t/r:t/n;let a=n*o,i=r*o;return a=Math.round(a),i=Math.round(i),{width:a,height:i}}const zo={},Go={};function Wo(e){if(!e)return[];const t=[];return e.split("~").forEach((e=>{const n=e.split("-"),r=n[0],o=Qe(Go[r]);if(null!==o)switch(o){case"collapse-resource":{const[,e,r,a]=n,i=parseInt(r,10),s=parseInt(a,10);if(isNaN(i)||isNaN(s))break;i>=0&&t.push({type:o,resourceIndex:i,collapsedFuncIndex:s,implementation:ur(e)});break}case"collapse-recursion":{const[,e]=n,r=parseInt(e,10);if(isNaN(r)||r<0)break;t.push({type:"collapse-recursion",funcIndex:r});break}case"collapse-direct-recursion":{const[,e,r]=n,o=parseInt(r,10);if(isNaN(o)||o<0)break;t.push({type:"collapse-direct-recursion",funcIndex:o,implementation:ur(e)});break}case"merge-function":case"focus-function":case"drop-function":case"collapse-function-subtree":{const[,e]=n,r=parseInt(e,10);if(!isNaN(r)&&r>=0)switch(o){case"merge-function":t.push({type:"merge-function",funcIndex:r});break;case"focus-function":t.push({type:"focus-function",funcIndex:r});break;case"drop-function":t.push({type:"drop-function",funcIndex:r});break;case"collapse-function-subtree":t.push({type:"collapse-function-subtree",funcIndex:r});break;default:throw new Error("Unmatched transform.")}break}case"focus-category":{const[,e]=n,r=parseInt(e,10);!isNaN(r)&&r>=0&&t.push({type:"focus-category",category:r});break}case"focus-subtree":case"merge-call-node":{const[,e,r,a]=n,i=ur(e),s=nn(r),l=Boolean(a);switch(o){case"focus-subtree":t.push({type:"focus-subtree",implementation:i,callNodePath:s,inverted:l});break;case"merge-call-node":t.push({type:"merge-call-node",implementation:i,callNodePath:s});break;default:throw new Error("Unmatched transform.")}break}case"filter-samples":{const[,e,...r]=n,o=r.join("-"),a=function(e){if("m"===e)return"marker-search";throw new Error("Unknown filter type.")}(e);t.push({type:"filter-samples",filterType:a,filter:o});break}default:throw Je(o)}else console.error("Unrecognized transform was passed to the URL.",r)})),t}function Ho(e){return e.map((e=>{const t=zo[e.type];if(!t)throw new Error("Expected to be able to convert a transform into its short key.");switch(e.type){case"merge-function":case"drop-function":case"collapse-function-subtree":case"focus-function":case"collapse-recursion":return`${t}-${e.funcIndex}`;case"focus-category":return`${t}-${e.category}`;case"collapse-resource":return`${t}-${e.implementation}-${e.resourceIndex}-${e.collapsedFuncIndex}`;case"collapse-direct-recursion":return`${t}-${e.implementation}-${e.funcIndex}`;case"focus-subtree":case"merge-call-node":{let n=[t,e.implementation,tn(e.callNodePath)].join("-");return e.inverted&&(n+="-i"),n}case"filter-samples":return`${t}-${function(e){if("marker-search"===e)return"m";throw Je(e)}(e.filterType)}-${e.filter}`;default:throw Je(e)}})).join("~")}function Vo(e,t,n,r){const{funcTable:o,stringTable:a,resourceTable:i}=t,{categories:s}=e,l=r.map((e=>{if("collapse-resource"===e.type){const t=i.name[e.resourceIndex];return{l10nId:"TransformNavigator--collapse-resource",item:a.getString(t)}}if("focus-category"===e.type){if(void 0===s)throw new Error("Expected categories to be defined.");return{l10nId:"TransformNavigator--focus-category",item:s[e.category].name}}if("filter-samples"===e.type){if("marker-search"===e.filterType)return{l10nId:"TransformNavigator--drop-samples-outside-of-markers-matching",item:e.filter};throw Je(e.filterType)}let t;switch(e.type){case"focus-subtree":case"merge-call-node":t=e.callNodePath[e.callNodePath.length-1];break;case"focus-function":case"merge-function":case"drop-function":case"collapse-direct-recursion":case"collapse-recursion":case"collapse-function-subtree":t=e.funcIndex;break;default:throw Je(e)}const n=o.name[t],r=Vr(a.getString(n));switch(e.type){case"focus-subtree":return{l10nId:"TransformNavigator--focus-subtree",item:r};case"focus-function":return{l10nId:"TransformNavigator--focus-function",item:r};case"merge-call-node":return{l10nId:"TransformNavigator--merge-call-node",item:r};case"merge-function":return{l10nId:"TransformNavigator--merge-function",item:r};case"drop-function":return{l10nId:"TransformNavigator--drop-function",item:r};case"collapse-direct-recursion":return{l10nId:"TransformNavigator--collapse-direct-recursion-only",item:r};case"collapse-recursion":return{l10nId:"TransformNavigator--collapse-recursion",item:r};case"collapse-function-subtree":return{l10nId:"TransformNavigator--collapse-function-subtree",item:r};default:throw Je(e)}}));return l.unshift({l10nId:"TransformNavigator--complete",item:n}),l}function jo(e,t,n,r){switch(t.type){case"focus-subtree":return function(e,t){return Zo(e,t)?t.slice(e.length-1):[]}(t.callNodePath,e);case"focus-function":return function(e,t){const n=t.indexOf(e);return-1===n?[]:t.slice(n)}(t.funcIndex,e);case"focus-category":return function(e,t,n,r){const o=[];let a=-1;for(const e of n){const n=kr(a,e,r);if(null===n)throw new Error(`We couldn't find a node with prefix ${a} and func ${e}, this shouldn't happen.`);r.category[n]===t&&o.push(e),a=n}return o}(0,t.category,e,r);case"merge-call-node":return function(e,t){return Zo(e,t)?t.filter(((t,n)=>n!==e.length-1)):t}(t.callNodePath,e);case"merge-function":return function(e,t){return t.filter((t=>t!==e))}(t.funcIndex,e);case"drop-function":return function(e,t){return t.includes(e)?[]:t}(t.funcIndex,e);case"collapse-resource":return function(e,t,n,r){return r.map((r=>n.resource[r]===e?t:r)).filter(((e,n,r)=>e!==r[n-1]||e!==t))}(t.resourceIndex,t.collapsedFuncIndex,n.funcTable,e);case"collapse-direct-recursion":return function(e,t){const n=[];let r;for(let o=0;o<t.length;o++){const a=t[o];a===e&&a===r||n.push(a),r=a}return n}(t.funcIndex,e);case"collapse-recursion":return function(e,t){const n=t.indexOf(e),r=t.lastIndexOf(e);return-1===n?t:t.slice(0,n).concat(t.slice(r))}(t.funcIndex,e);case"collapse-function-subtree":return function(e,t){const n=t.indexOf(e);return-1===n?t:t.slice(0,n+1)}(t.funcIndex,e);case"filter-samples":return e;default:throw Je(t)}}function Zo(e,t){return e.length<=t.length&&e.every(((e,n)=>e===t[n]))}["focus-subtree","focus-function","focus-category","merge-call-node","merge-function","drop-function","collapse-resource","collapse-direct-recursion","collapse-recursion","collapse-function-subtree","filter-samples"].forEach((e=>{let t;switch(e){case"focus-subtree":t="f";break;case"focus-function":t="ff";break;case"focus-category":t="fg";break;case"merge-call-node":t="mcn";break;case"merge-function":t="mf";break;case"drop-function":t="df";break;case"collapse-resource":t="cr";break;case"collapse-direct-recursion":t="drec";break;case"collapse-recursion":t="rec";break;case"collapse-function-subtree":t="cfs";break;case"filter-samples":t="fs";break;default:throw Je(e)}zo[e]=t,Go[t]=e}));const $o={combined:(e,t)=>!0,cpp:(e,t)=>{const{funcTable:n,stringTable:r}=e;if(e.funcTable.isJS[t])return!1;const o=r.getString(n.name[t]);return!(-1===n.resource[t]&&o.startsWith("0x"))},js:(e,t)=>e.funcTable.isJS[t]||e.funcTable.relevantForJS[t]};function Ko(e,t,n){const{stackTable:r,frameTable:o}=e,a=$o[t],i=[];let s=null;for(let t=0;t<r.length;t++){const l=r.prefix[t],c=r.frame[t],d=o.func[c],u=null===l?-1:i[l];if(null===u)continue;const h=u+1;if(n[h]===d){if(i[t]=h,h===n.length-1){s=t;break}}else a(e,d)?i[t]=null:i[t]=u}if(null===s)return[];const l=[];for(let e=s;null!==e;e=r.prefix[e]){const t=r.frame[e],n=o.func[t];l.push(n)}return l.reverse()}function Yo(e,t,n){const r=$o[t];return n.filter((t=>r(e,t.func)))}function qo(e,t,n){const{stackTable:r,frameTable:o}=e,a=new Set,i=$o[t];for(let t=0;t<r.length;t++){const s=r.frame[t],l=r.prefix[t],c=o.func[s],d=null!==l&&a.has(l);if(n===c){if(d)return!0;a.add(t)}else d&&!i(e,c)&&a.add(t)}return!1}function Jo(e,t){const{stackTable:n,frameTable:r}=e,o=new Set;for(let e=0;e<n.length;e++){const a=n.frame[e],i=n.prefix[e],s=r.func[a],l=null!==i&&o.has(i);if(t===s){if(l)return!0;o.add(e)}else l&&o.add(e)}return!1}function Xo(e,t,n,r,o,a,i){switch(t.type){case"focus-subtree":return t.inverted?function(e,t,n){return Kn("focusInvertedSubtree",(()=>{const r=t.length,{stackTable:o,frameTable:a}=e,i=$o[n],s=new Map;return s.set(null,null),_r(e,o,(n=>{let l=s.get(n);return void 0===l&&(l=function(n){let s=0;for(let l=n;null!==l;l=o.prefix[l]){const n=o.frame[l],c=a.func[n];if(c===t[s]){if(s++,s===r)return l}else if(i(e,c))return null}return null}(n),s.set(n,l)),l}))}))}(e,t.callNodePath,t.implementation):function(e,t,n){return Kn("focusSubtree",(()=>{const{stackTable:r,frameTable:o}=e,a=t.length,i=new Int32Array(r.length),s=$o[n],l=new Map;l.set(null,null);const c={frame:[],prefix:[],category:[],subcategory:[],length:0};for(let n=0;n<r.length;n++){const d=r.prefix[n],u=null!==d?i[d]:0;let h=-1;if(-1!==u){const i=r.frame[n],p=r.category[n],m=r.subcategory[n];if(u===a)h=a;else{const n=o.func[i];n===t[u]?h=u+1:s(e,n)||(h=u)}if(h===a){const e=c.length++,t=l.get(d);c.prefix[e]=t??null,c.frame[e]=i,c.category[e]=p,c.subcategory[e]=m,l.set(n,e)}}i[n]=h}return _r(e,c,(e=>{if(null===e||i[e]!==a)return null;const t=l.get(e);if(void 0===t)throw new Error("Converting from the old stack to a new stack cannot be undefined");return t}))}))}(e,t.callNodePath,t.implementation);case"merge-call-node":return function(e,t,n){return Kn("mergeCallNode",(()=>{const{stackTable:r,frameTable:o}=e,a=t.length-1,i=new Map;i.set(null,null);const s={frame:[],prefix:[],category:[],subcategory:[],length:0},l=[],c=[],d=$o[n];for(let n=0;n<r.length;n++){const u=r.prefix[n],h=r.frame[n],p=r.category[n],m=r.subcategory[n],f=o.func[h],g=null===u||c[u],A=null===u?-1:l[u],b=t[A+1];let C,y=!1,v=A;if(g&&v<a?b===f?(C=!0,v+1===a?y=!0:v++):C=!d(e,f):C=!1,c[n]=C,l[n]=v,y){const e=i.get(u);i.set(n,void 0===e?null:e)}else{const e=s.length++,t=i.get(u);s.prefix[e]=void 0===t?null:t,s.frame[e]=h,s.category[e]=p,s.subcategory[e]=m,i.set(n,e)}}return _r(e,s,Ir(i))}))}(e,t.callNodePath,t.implementation);case"merge-function":return function(e,t){const{stackTable:n,frameTable:r}=e,o=new Map;o.set(null,null);const a={frame:[],prefix:[],category:[],subcategory:[],length:0};for(let e=0;e<n.length;e++){const i=n.prefix[e],s=n.frame[e],l=n.category[e],c=n.subcategory[e];if(r.func[s]===t){const t=o.get(i);o.set(e,void 0===t?null:t)}else{const t=a.length++,n=o.get(i);a.prefix[t]=void 0===n?null:n,a.frame[t]=s,a.category[t]=l,a.subcategory[t]=c,o.set(e,t)}}return _r(e,a,Ir(o))}(e,t.funcIndex);case"drop-function":return function(e,t){const{stackTable:n,frameTable:r}=e,o=new Uint8Array(n.length);for(let e=0;e<n.length;e++){const a=n.prefix[e],i=n.frame[e];(r.func[i]===t||null!==a&&1===o[a])&&(o[e]=1)}return _r(e,n,(e=>null!==e&&1===o[e]?null:e))}(e,t.funcIndex);case"focus-function":return function(e,t){return Kn("focusFunction",(()=>{const{stackTable:n,frameTable:r}=e,o=new Uint32Array(n.length),a={frame:[],prefix:[],category:[],subcategory:[],length:0};for(let e=0;e<n.length;e++){const i=n.prefix[e],s=n.frame[e],l=r.func[s],c=null===i?0:o[i],d=0===c?null:c-1;if(null!==d||l===t){const t=a.length++;a.prefix[t]=d,a.frame[t]=s,a.category[t]=n.category[e],a.subcategory[t]=n.subcategory[e],o[e]=t+1}}return _r(e,a,(e=>{if(null===e)return null;const t=o[e];return 0===t?null:t-1}))}))}(e,t.funcIndex);case"focus-category":return function(e,t){return Kn("focusCategory",(()=>{const{stackTable:n}=e,r=new Map;r.set(null,null);const o={frame:[],prefix:[],category:[],subcategory:[],length:0};for(let e=0;e<n.length;e++){const a=n.prefix[e],i=r.get(a);if(void 0===i)throw new Error("The prefix should not map to an undefined value");if(n.category[e]!==t){r.set(e,i);continue}const s=o.length++;o.prefix[s]=i,o.frame[s]=n.frame[e],o.category[s]=n.category[e],o.subcategory[s]=n.subcategory[e],r.set(e,s)}return _r(e,o,Ir(r))}))}(e,t.category);case"collapse-resource":return function(e,t,n,r,o){const{stackTable:a,funcTable:i,frameTable:s}=e,l=Un(s),c={frame:[],prefix:[],category:[],subcategory:[],length:0},d=new Map,u=new Map,h=new Set,p=$o[r];let m;d.set(null,null);for(let r=0;r<a.length;r++){const f=a.prefix[r],g=a.frame[r],A=a.category[r],b=a.subcategory[r],C=s.func[g],y=i.resource[C],v=d.get(f);if(void 0===v)throw new Error("newStackPrefix must not be undefined");if(y===t)if(h.has(v))d.set(r,v);else{const e=u.get(f);if(void 0===e){const e=c.length++;h.add(e),d.set(r,e),u.set(f,e),void 0===m&&(m=l.length++,l.address.push(s.address[g]),l.inlineDepth.push(s.inlineDepth[g]),l.category.push(s.category[g]),l.subcategory.push(s.subcategory[g]),l.func.push(n),l.nativeSymbol.push(s.nativeSymbol[g]),l.line.push(s.line[g]),l.column.push(s.column[g]),l.innerWindowID.push(s.innerWindowID[g]),l.implementation.push(s.implementation[g])),c.prefix.push(v),c.frame.push(m),c.category.push(A),c.subcategory.push(b)}else{if(null===e)throw new Error("existingCollapsedStack cannot be null");d.set(r,e),c.category[e]!==A?(c.category[e]=o,c.subcategory[e]=0):c.subcategory[e]!==b&&(c.subcategory[e]=0)}}else{if(!p(e,C)&&null!==v){const e=c.frame[v],n=l.func[e];if(i.resource[n]===t){d.set(r,v);continue}}const n=c.length++;c.prefix.push(v),c.frame.push(g),c.category.push(A),c.subcategory.push(b),d.set(r,n)}}return _r({...e,frameTable:l},c,Ir(d))}(e,t.resourceIndex,t.collapsedFuncIndex,t.implementation,n);case"collapse-direct-recursion":return function(e,t,n){const{stackTable:r,frameTable:o}=e,a=new Map,i=$o[n],s=r.prefix.slice();for(let n=0;n<r.length;n++){const l=r.prefix[n],c=r.frame[n],d=o.func[c],u=null!==l?a.get(l):void 0;void 0===u?d===t&&a.set(n,l):i(e,d)?d===t&&(a.set(n,u),s[n]=u):a.set(n,u)}return{...e,stackTable:{...r,prefix:s}}}(e,t.funcIndex,t.implementation);case"collapse-recursion":return function(e,t){const{stackTable:n,frameTable:r}=e,o=new Map,a=n.prefix.slice();for(let e=0;e<n.length;e++){const i=n.prefix[e],s=n.frame[e],l=r.func[s],c=null!==i?o.get(i):void 0;void 0===c?l===t&&o.set(e,i):(o.set(e,c),l===t&&(a[e]=c))}return{...e,stackTable:{...n,prefix:a}}}(e,t.funcIndex);case"collapse-function-subtree":return function(e,t,n){const{stackTable:r,frameTable:o}=e,a=new Map;a.set(null,null);const i=new Set,s={frame:[],prefix:[],category:[],subcategory:[],length:0};for(let e=0;e<r.length;e++){const l=r.prefix[e];if(i.has(l)){const t=a.get(l);if(void 0===t)throw new Error("newPrefixStackIndex cannot be undefined");a.set(e,t),i.add(e),null!==t&&(s.category[t]!==r.category[e]?(s.category[t]=n,s.subcategory[t]=0):s.subcategory[t]!==r.subcategory[e]&&(s.subcategory[t]=0))}else{const n=s.length++,c=a.get(l);if(void 0===c)throw new Error("The newStackPrefix must exist because prefix < stackIndex as the StackTable is ordered.");const d=r.frame[e],u=r.category[e],h=r.subcategory[e];s.prefix[n]=c,s.frame[n]=d,s.category[n]=u,s.subcategory[n]=h,a.set(e,n),t===o.func[d]&&i.add(e)}}return _r(e,s,Ir(a))}(e,t.funcIndex,n);case"filter-samples":return function(e,t,n,r,o,a,i){return Kn("filterSamples",(()=>{const s=function(e){if(0===e.length)return[];const t=e.slice().sort(((e,t)=>e.start-t.start));let n={...t[0]};const r=[n];for(let e=1;e<t.length;e++){const o=t[e];o.start>=o.end||o.end<=n.end||(o.start<=n.end?n.end=o.end:(n={...o},r.push(n)))}return r}(function(){if("marker-search"===a)return function(e,t,n,r,o){const a=[],i=Ao(e,t,n,ao(oo(o)),r);for(const t of i){const{start:n,end:r}=e(t);null!==n&&null!==r&&a.push({start:n,end:r})}return a}(t,n,r,o,i);throw Je(a)}());return Br(e,e.stackTable,(function(e,t){const n=e.slice();let r=0;const o=t.length;for(const e of s){const{start:a,end:i}=e;for(;r<o&&!(t[r]>=a);r++)n[r]=null;for(;r<o&&!(t[r]>=i);r++);}for(;r<o;)n[r]=null,r++;return n}))}))}(e,r,o,a,i,t.filterType,t.filter);default:throw Je(t)}}const Qo={calltree:"TabBar--calltree-tab","flame-graph":"TabBar--flame-graph-tab","stack-chart":"TabBar--stack-chart-tab","marker-chart":"TabBar--marker-chart-tab","marker-table":"TabBar--marker-table-tab","network-chart":"TabBar--network-tab","js-tracer":"TabBar--js-tracer-tab"},ea=Object.getOwnPropertyNames(Qo),ta=(ea.map((e=>({name:e,title:Qo[e]}))),["calltree","flame-graph","stack-chart"]),na=10;let ra=!1,oa=0;function aa(){oa++,ra=!0}function ia(){if(oa--,oa<0)throw new Error("_maybeDisableHistoryReplaceState was called more than _enableHistoryReplaceState which should never happen.");0===oa&&(ra=!1)}function sa(e){aa();try{e()}finally{ia()}}function la(e){const t=function(e){const{dataSource:t}=e;switch(t){case"none":return[];case"compare":return null===e.profilesToCompare?["compare"]:["compare",e.selectedTab];case"uploaded-recordings":return["uploaded-recordings"];case"from-browser":case"unpublished":case"from-file":return[t,e.selectedTab];case"public":case"local":return[t,e.hash,e.selectedTab];case"from-url":return["from-url",encodeURIComponent(e.profileUrl),e.selectedTab];default:throw Je(t)}}(e),n=function(e){const{dataSource:t}=e;switch(t){case"none":case"uploaded-recordings":return"";case"compare":if(null===e.profilesToCompare)return"";break;case"public":case"local":case"from-browser":case"unpublished":case"from-file":case"from-url":break;default:throw Je(t)}const{selectedThreads:n}=e.profileSpecific,r=null!==n?Ur(n):null;let o,a;const{timelineTrackOrganization:i}=e;switch(i.type){case"full":break;case"active-tab":a=i.type,o=i.tabID;break;case"origins":a=i.type;break;default:throw Je(i,"Unhandled TimelineTrackOrganization case")}let s,l;switch(i.type){case"full":s={},s.globalTrackOrder=tn(e.profileSpecific.full.globalTrackOrder)||void 0,s.hiddenGlobalTracks=function(e){if(e.size>0)return en(e)}(e.profileSpecific.full.hiddenGlobalTracks),s.hiddenLocalTracksByPid=function(e){const t=[];for(const[n,r]of e)r.size>0&&t.push(`${n}-${en(r)}`);return t.join("~")||void 0}(e.profileSpecific.full.hiddenLocalTracksByPid),s.localTrackOrderByPid=function(e,t){const n=[];for(const r of t){const t=e.get(r);t&&t.length>0&&n.push(`${r}-${tn(t)}`)}return n.join("~")||void 0}(e.profileSpecific.full.localTrackOrderByPid,e.profileSpecific.full.localTrackOrderChangedPids);break;case"active-tab":s={},s.resources=e.profileSpecific.activeTab.isResourcesPanelOpen?null:void 0,s.ctxId=o||void 0;break;case"origins":s={};break;default:throw Je(i,"Unhandled GlobalTrack type.")}s={...s,range:qt(e.profileSpecific.committedRanges)||void 0,thread:null===n?void 0:en(n),file:e.pathInZipFile||void 0,profiles:e.profilesToCompare||void 0,view:a,v:na,profileName:e.profileName||void 0,symbolServer:e.symbolServerUrl||void 0,implementation:"combined"===e.profileSpecific.implementation?void 0:e.profileSpecific.implementation,timelineType:"cpu-category"===e.profileSpecific.timelineType?void 0:e.profileSpecific.timelineType};const c=e.selectedTab;switch(c){case"stack-chart":case"flame-graph":case"calltree":{"stack-chart"===c?(l=s,l.showUserTimings=e.profileSpecific.showUserTimings?null:void 0):l=s,l.search=e.profileSpecific.callTreeSearchString||void 0,l.invertCallstack=e.profileSpecific.invertCallstack?null:void 0,null!==r&&e.profileSpecific.transforms[r]&&(l.transforms=Ho(e.profileSpecific.transforms[r])||void 0),l.ctSummary="timing"===e.profileSpecific.lastSelectedCallTreeSummaryStrategy?void 0:e.profileSpecific.lastSelectedCallTreeSummaryStrategy;const{sourceView:t,assemblyView:n,isBottomBoxOpenPerPanel:o}=e.profileSpecific;o[c]&&(null!==t.sourceFile&&(l.sourceView=t.sourceFile),n.isOpen&&null!==n.nativeSymbol&&(l.assemblyView=function(e){const{libIndex:t,address:n,name:r,functionSize:o,functionSizeIsKnown:a}=e,i=n.toString(16);let s=o.toString(16);return a||(s+="_"),`${t}~${i}~${s}~${r}`}(n.nativeSymbol)));break}case"marker-table":case"marker-chart":l=s,l.markerSearch=e.profileSpecific.markersSearchString||void 0;break;case"network-chart":l=s,l.networkSearch=e.profileSpecific.networkSearchString||void 0;break;case"js-tracer":{l=s;const{timelineTrackOrganization:t}=e;switch(t.type){case"full":case"origins":l.summary=e.profileSpecific.full.showJsTracerSummary?null:void 0;break;case"active-tab":break;default:throw Je(t,"Unhandled timelineTrackOrganization case")}break}default:throw Je(c)}return Tt.stringify(l,{arrayFormat:"bracket"})}(e),{dataSource:r}=e;return"none"===r?"/":(0===t.length?"/":"/"+t.join("/")+"/")+(n?"?"+n:"")}function ca(e){const t=e||"none";switch(t){case"none":case"from-browser":case"unpublished":case"from-file":case"local":case"public":case"from-url":case"compare":case"uploaded-recordings":return t;default:throw Je(t,`Unexpected data source ${t}`)}}function da(e,t){const{pathname:n,query:r}=function(e,t){e.pathname=e.pathname.replace(/^\/+from-addon/,"/from-browser");const n=+e.query.v||0;if(null===t||n===na)return e;if(n>na)throw new pa(`Unable to parse a url of version ${n}, most likely profiler.firefox.com needs to be refreshed. The most recent version understood by this version of profiler.firefox.com is version ${na}.\nYou can try refreshing this page in case profiler.firefox.com has updated in the meantime.`);for(let r=n+1;r<=na;r++)r in ma&&(0,ma[r])(e,t);return e.query.v=na,e}({pathname:e.pathname,hash:e.hash,query:Tt.parse(e.search.substr(1),{arrayFormat:"bracket"})},t),o=n.split("/").filter((e=>e)),a=ca(o[0]),i=void 0!==r.thread?nn(r.thread):[],s=0!==i.length?new Set(i):null,l=null!==s?Ur(s):null,c=["local","public"].includes(a),d=["from-url"].includes(a),u=c||d?2:1;let h="combined";"js"!==r.implementation&&"cpp"!==r.implementation||(h=r.implementation);const p={};null!==l&&(p[l]=Wo(r.transforms));let m=null;r.ctxId&&Number.isInteger(Number(r.ctxId))&&(m=Number(r.ctxId));const f=Xe(o[u])||"calltree",g={scrollGeneration:0,libIndex:null,sourceFile:null},A={isOpen:!1,scrollGeneration:0,nativeSymbol:null,allNativeSymbolsForInitiatingCallNode:[]},b={};if(ea.forEach((e=>b[e]=!1)),r.sourceView&&(g.sourceFile=r.sourceView,b[f]=!0),r.assemblyView){const e=function(e){const[t,n,r,o]=e.split("~"),a=parseInt(t,10),i=parseInt(n,16),[s,l]=r.endsWith("_")?[r.slice(0,-1),!1]:[r,!0],c=parseInt(s,16);return isNaN(a)||isNaN(i)||isNaN(c)?null:{libIndex:a,address:i,name:o,functionSize:c,functionSizeIsKnown:l}}(r.assemblyView);null!==e&&(A.nativeSymbol=e,A.allNativeSymbolsForInitiatingCallNode=[e],A.isOpen=!0,b[f]=!0)}const C=function(e){if(!e)return new Map;const t=new Map;for(const n of e.split("~")){if(!n.includes("-"))continue;const e=n.slice(0,n.indexOf("-")),r=nn(n.slice(e.length+1));r.every((e=>!isNaN(e)))&&t.set(e,r)}return t}(r.localTrackOrderByPid),y=new Set(C.keys());return{dataSource:a,hash:c?o[1]:"",profileUrl:d?decodeURIComponent(o[1]):"",profilesToCompare:r.profiles||null,selectedTab:f,pathInZipFile:r.file||null,profileName:r.profileName,symbolServerUrl:r.symbolServer||null,timelineTrackOrganization:Aa(r.view,m),profileSpecific:{implementation:h,lastSelectedCallTreeSummaryStrategy:hr(r.ctSummary||void 0),invertCallstack:void 0!==r.invertCallstack,showUserTimings:void 0!==r.showUserTimings,committedRanges:r.range?Kt(r.range):[],selectedThreads:s,callTreeSearchString:r.search||"",markersSearchString:r.markerSearch||"",networkSearchString:r.networkSearch||"",transforms:p,sourceView:g,assemblyView:A,isBottomBoxOpenPerPanel:b,timelineType:ba(r.timelineType),full:{showJsTracerSummary:void 0!==r.summary,globalTrackOrder:(v=r.globalTrackOrder,v?nn(v):[]),hiddenGlobalTracks:ua(r.hiddenGlobalTracks),hiddenLocalTracksByPid:ha(r.hiddenLocalTracksByPid),localTrackOrderByPid:C,localTrackOrderChangedPids:y,legacyThreadOrder:r.threadOrder?r.threadOrder.split("-").map((e=>Number(e))):null,legacyHiddenThreads:r.hiddenThreads?r.hiddenThreads.split("-").map((e=>Number(e))):null},activeTab:{isResourcesPanelOpen:void 0!==r.resources}}};var v}function ua(e){return e?new Set(nn(e)):new Set}function ha(e){if(!e)return new Map;const t=new Map;for(const n of e.split("~")){if(!n.includes("-"))continue;const e=n.slice(0,n.indexOf("-")),r=nn(n.slice(e.length+1));r.every((e=>!isNaN(e)))&&t.set(e,new Set(r))}return t}class pa extends Error{constructor(...e){super(...e),this.name="UrlUpgradeError"}}const ma={1:e=>{if("/"===e.pathname){const t=Object.assign({},e.query,Tt.parse(e.hash));"report"in t&&(e.pathname=`/public/${t.report}/calltree/`,e.hash="",e.query={})}void 0!==e.query.jsOnly&&(delete e.query.jsOnly,e.query.implementation="js"),e.query.callTreeFilters&&(e.query.transforms=e.query.callTreeFilters.split("~").map((e=>{const[t,n]=e.split("-");switch(t){case"prefix":return`f-combined-${n}`;case"prefixjs":return`f-js-${n}`;case"postfix":return`f-combined-${n}-i`;case"postfixjs":return`f-js-${n}-i`;default:return}})).filter((e=>e)).join("~"),delete e.query.callTreeFilters)},2:e=>{e.pathname=e.pathname.replace(/^(\/[^/]+\/[^/]+)\/timeline\/?/,"$1/stack-chart/").replace(/^(\/[^/]+\/[^/]+)\/markers\/?/,"$1/marker-table/")},3:e=>{const{query:t}=e;"hidePlatformDetails"in t&&(delete t.hidePlatformDetails,t.implementation="js")},4:(e,t)=>{const n=e.query,r=void 0===n.thread?null:+n.thread;if(null===r||void 0===t)return;const o=Wo(n.transforms);if(!o||0===o.length)return;const a=t.threads[r];for(let e=0;e<o.length;e++){const t=o[e];if(!t.implementation||"js"!==t.implementation||!t.callNodePath)continue;const n=fa(a,t.callNodePath);null!==n&&(t.callNodePath=ga(a,n))}e.query.transforms=Ho(o)},5:({query:e})=>{e.range&&(e.range=e.range.split("~").map((e=>{const t=e.match(/^(-?[0-9.]+)_(-?[0-9.]+)$/);if(!t)return console.error(`The range "${e}" couldn't be parsed, ignoring.`),null;const n=1e3*Number(t[1]),r=1e3*Number(t[2]);return isNaN(n)||isNaN(r)?(console.error(`The range "${e}" couldn't be parsed, ignoring.`),null):Yt({start:n,end:r})})).filter(Boolean).join("~"))},6:({query:e})=>{if(e.globalTrackOrder){const t=e.globalTrackOrder.split("-").map((e=>+e));e.globalTrackOrder=tn(t)||void 0}if(e.hiddenGlobalTracks){const t=new Set(e.hiddenGlobalTracks.split("-").map((e=>+e)));e.hiddenGlobalTracks=en(t)||void 0}if(e.hiddenLocalTracksByPid&&(e.hiddenLocalTracksByPid=e.hiddenLocalTracksByPid.split("~").map((e=>{const[t,...n]=e.split("-"),r=new Set(n.map((e=>+e)));return`${t}-${en(r)}`})).join("~")),e.localTrackOrderByPid&&(e.localTrackOrderByPid=e.localTrackOrderByPid.split("~").map((e=>{const[t,...n]=e.split("-"),r=n.map((e=>+e));return`${t}-${tn(r)}`})).join("~")),e.thread){const t=new Set(e.thread.split(",").map((e=>+e)));e.thread=en(t)}e.transforms&&e.transforms.includes(";")&&delete e.transforms},7:({query:e})=>{switch(e.timelineType){case"cpu-category":delete e.timelineType;break;case"stack":break;default:e.timelineType="category"}},8:e=>{},9:({query:e})=>{if(e.transforms){const t=e.transforms.split("~");e.transforms=t.map((function(e){if(e.startsWith("irec-")){const[,,t]=e.split("-");return`rec-${t}`}return e.startsWith("rec-")?"d"+e:e})).join("~")}},10:({query:e},t)=>{if(!e.transforms||!e.thread||!t)return;const n=nn(e.thread);if(1!==n.length)return;const r=n[0],o=t.threads[r].funcTable.length,a=e.transforms.split("~");e.transforms=a.map((function(e){if(e.startsWith("cr-")){const[,t,n]=e.split("-"),r=o+ +n;if(!isNaN(r))return`cr-${t}-${n}-${r}`}return e})).join("~")}};for(let e=1;e<=na;e++)if(!ma[e])throw new Error(`There is no upgrader for version ${e}.`);for(const e of Object.keys(ma)){const t=+e;if(t>na)throw new Error(En`
|
28
|
+
There is an upgrader for version ${t}, which is larger than
|
29
|
+
CURRENT_URL_VERSION (${na}). If you added a new upgrader,
|
30
|
+
make sure and bump the CURRENT_URL_VERSION variable.
|
31
|
+
`)}function fa(e,t){const{stackTable:n,funcTable:r,frameTable:o}=e,a=new Map;a.set(null,-1);for(let e=0;e<n.length;e++){const i=n.prefix[e],s=n.frame[e],l=o.func[s],c=r.isJS[l];if(null!==i&&!a.has(i))continue;const d=nt(a.get(i),"Unable to find the stack depth for a prefix"),u=d+1;if(c&&t[u]===l){if(u===t.length-1)return e;a.set(e,u)}else a.set(e,d)}return null}function ga(e,t){const{funcTable:n,stackTable:r,frameTable:o}=e,a=[];let i=t;for(;null!==i;){const e=r.frame[i],t=o.func[e];(n.isJS[t]||n.relevantForJS[t])&&a.unshift(t),i=r.prefix[i]}return a}function Aa(e,t){switch(e){case"full":default:return{type:"full"};case"active-tab":return{type:"active-tab",tabID:t};case"origins":return{type:"origins"}}}function ba(e){const t=e;switch(t){case"stack":case"cpu-category":case"category":return t;default:return"cpu-category"}}class Ca{constructor(e,t){this._zipFileTable=void 0,this._parentToChildren=void 0,this._displayDataByIndex=void 0,this._zipFileUrl=void 0,this._zipFileTable=e,this._zipFileUrl=t,this._displayDataByIndex=new Map,this._parentToChildren=new Map,this._parentToChildren.set(null,this._computeChildrenArray(null))}getRoots(){return this.getChildren(null)}getChildren(e){let t=this._parentToChildren.get(e);return t||(t=this._computeChildrenArray(e),this._parentToChildren.set(e,t)),t}_computeChildrenArray(e){const t=[];for(let n=0;n<this._zipFileTable.length;n++)this._zipFileTable.prefix[n]===e&&t.push(n);return t}hasChildren(e){return this.getChildren(e).length>0}getAllDescendants(e){if(null===e)return new Set(Array.from({length:this._zipFileTable.length},((e,t)=>t)));const t=new Set;for(const n of this.getChildren(e)){t.add(n);for(const e of this.getAllDescendants(n))t.add(e)}return t}getParent(e){const t=this._zipFileTable.prefix[e];return null===t?-1:t}getDepth(e){return this._zipFileTable.depth[e]}hasSameNodeIds(e){return this._zipFileTable===e._zipFileTable}getDisplayData(e){let t=this._displayDataByIndex.get(e);if(void 0===t){let n=null;this.hasChildren(e)||(n=window.location.origin+"/from-url/"+encodeURIComponent(this._zipFileUrl)+"/"+function(e){const t=Xe(e);if(!t)throw new Error(`Attempted to assert that "${e}" is a valid TransformType, and it was not.`);return t}("calltree")+"/?file="+encodeURIComponent(this._zipFileTable.path[e])),t={name:this._zipFileTable.partName[e],url:n,zipTableIndex:e},this._displayDataByIndex.set(e,t)}return t}}const ya=["localhost","127.0.0.1","::1"];function va(e){try{const t=e instanceof URL?e:new URL(e);return ya.includes(t.hostname)}catch(e){return!1}}function wa(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function ka(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function Ea(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};t%2?ka(Object(n),!0).forEach((function(t){wa(e,t,n[t])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):ka(Object(n)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(n,t))}))}return e}function xa(e){return"Minified Redux error #"+e+"; visit https://redux.js.org/Errors?code="+e+" for the full message or use the non-minified dev environment for full errors. "}var Sa="function"==typeof Symbol&&Symbol.observable||"@@observable",Ta=function(){return Math.random().toString(36).substring(7).split("").join(".")},Ba={INIT:"@@redux/INIT"+Ta(),REPLACE:"@@redux/REPLACE"+Ta(),PROBE_UNKNOWN_ACTION:function(){return"@@redux/PROBE_UNKNOWN_ACTION"+Ta()}};function _a(e){for(var t=Object.keys(e),n={},r=0;r<t.length;r++){var o=t[r];"function"==typeof e[o]&&(n[o]=e[o])}var a,i=Object.keys(n);try{!function(e){Object.keys(e).forEach((function(t){var n=e[t];if(void 0===n(void 0,{type:Ba.INIT}))throw new Error(xa(12));if(void 0===n(void 0,{type:Ba.PROBE_UNKNOWN_ACTION()}))throw new Error(xa(13))}))}(n)}catch(e){a=e}return function(e,t){if(void 0===e&&(e={}),a)throw a;for(var r=!1,o={},s=0;s<i.length;s++){var l=i[s],c=n[l],d=e[l],u=c(d,t);if(void 0===u)throw t&&t.type,new Error(xa(14));o[l]=u,r=r||u!==d}return(r=r||i.length!==Object.keys(e).length)?o:e}}function Ia(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return 0===t.length?function(e){return e}:1===t.length?t[0]:t.reduce((function(e,t){return function(){return e(t.apply(void 0,arguments))}}))}const Pa=(e="calltree",t)=>{switch(t.type){case"CHANGE_SELECTED_TAB":case"SELECT_TRACK":case"VIEW_FULL_PROFILE":return t.selectedTab;case"FOCUS_CALL_TREE":return"calltree";default:return e}},Na=_a({globalTrackOrder:(e=[],t)=>{switch(t.type){case"VIEW_FULL_PROFILE":case"CHANGE_GLOBAL_TRACK_ORDER":return t.globalTrackOrder;case"SANITIZED_PROFILE_PUBLISHED":return t.oldThreadIndexToNew?[]:e;default:return e}},hiddenGlobalTracks:(e=new Set,t)=>{switch(t.type){case"VIEW_FULL_PROFILE":case"ISOLATE_LOCAL_TRACK":case"ISOLATE_PROCESS":case"ISOLATE_PROCESS_MAIN_THREAD":case"ISOLATE_SCREENSHOT_TRACK":return t.hiddenGlobalTracks;case"HIDE_GLOBAL_TRACK":{const n=new Set(e);return n.add(t.trackIndex),n}case"SHOW_ALL_TRACKS":return new Set;case"SHOW_PROVIDED_TRACKS":{const n=new Set(e);return t.globalTracksToShow.forEach(Set.prototype.delete,n),n}case"SHOW_GLOBAL_TRACK":case"SHOW_GLOBAL_TRACK_INCLUDING_LOCAL_TRACKS":{const n=new Set(e);return n.delete(t.trackIndex),n}case"HIDE_PROVIDED_TRACKS":{const n=new Set(e);return t.globalTracksToHide.forEach(Set.prototype.add,n),n}case"SANITIZED_PROFILE_PUBLISHED":return t.oldThreadIndexToNew?new Set:e;default:return e}},hiddenLocalTracksByPid:(e=new Map,t)=>{switch(t.type){case"VIEW_FULL_PROFILE":return t.hiddenLocalTracksByPid;case"HIDE_LOCAL_TRACK":{const n=new Map(e),r=new Set(n.get(t.pid));return r.add(t.trackIndex),n.set(t.pid,r),n}case"SHOW_ALL_TRACKS":{const t=new Map(e);for(const e of t)t.set(e[0],new Set);return t}case"SHOW_PROVIDED_TRACKS":{const n=new Map(e);for(const[r,o]of t.localTracksByPidToShow.entries()){const t=e.get(r)??new Set,a=new Set(t);o.forEach(Set.prototype.delete,a),n.set(r,a)}return n}case"SHOW_LOCAL_TRACK":{const n=new Map(e),r=new Set(n.get(t.pid));return r.delete(t.trackIndex),n.set(t.pid,r),n}case"SHOW_GLOBAL_TRACK_INCLUDING_LOCAL_TRACKS":{const n=new Map(e);return n.set(t.pid,new Set),n}case"HIDE_PROVIDED_TRACKS":{const n=new Map(e);for(const[r,o]of t.localTracksByPidToHide.entries()){const t=e.get(r)??new Set,a=new Set(t);o.forEach(Set.prototype.add,a),n.set(r,a)}return n}case"ISOLATE_PROCESS_MAIN_THREAD":case"ISOLATE_LOCAL_TRACK":{const n=new Map(e);return n.set(t.pid,t.hiddenLocalTracks),n}case"SANITIZED_PROFILE_PUBLISHED":return t.oldThreadIndexToNew?new Map:e;default:return e}},localTrackOrderByPid:(e=new Map,t)=>{switch(t.type){case"VIEW_FULL_PROFILE":case"ENABLE_EVENT_DELAY_TRACKS":case"ENABLE_EXPERIMENTAL_PROCESS_CPU_TRACKS":return t.localTrackOrderByPid;case"CHANGE_LOCAL_TRACK_ORDER":{const n=new Map(e);return n.set(t.pid,t.localTrackOrder),n}case"SANITIZED_PROFILE_PUBLISHED":return t.oldThreadIndexToNew?new Map:e;default:return e}},localTrackOrderChangedPids:(e=new Set,t)=>{switch(t.type){case"CHANGE_LOCAL_TRACK_ORDER":{const n=new Set(e);return n.add(t.pid),n}case"SANITIZED_PROFILE_PUBLISHED":return t.oldThreadIndexToNew?new Set:e;default:return e}},showJsTracerSummary:(e=!1,t)=>"CHANGE_SHOW_JS_TRACER_SUMMARY"===t.type?t.showSummary:e,legacyThreadOrder:(e=null)=>e,legacyHiddenThreads:(e=null)=>e}),Ma=_a({isResourcesPanelOpen:(e=!1,t)=>"TOGGLE_RESOURCES_PANEL"===t.type?!e:e}),Fa=_a({selectedThreads:(e=null,t)=>{switch(t.type){case"CHANGE_SELECTED_THREAD":case"SELECT_TRACK":case"VIEW_FULL_PROFILE":case"VIEW_ORIGINS_PROFILE":case"VIEW_ACTIVE_TAB_PROFILE":case"ISOLATE_PROCESS":case"ISOLATE_PROCESS_MAIN_THREAD":case"HIDE_GLOBAL_TRACK":case"HIDE_LOCAL_TRACK":case"HIDE_PROVIDED_TRACKS":case"ISOLATE_LOCAL_TRACK":case"TOGGLE_RESOURCES_PANEL":return t.selectedThreadIndexes;case"SANITIZED_PROFILE_PUBLISHED":{const{oldThreadIndexToNew:n}=t;if(null===e||!n)return e;const r=new Set;for(const t of e){const e=n.get(t);if(void 0===e)return console.error(En`
|
32
|
+
Unable to map an old thread index to a new thread index for the selected
|
33
|
+
thread when sanitizing a profile
|
34
|
+
`),null;r.add(e)}return r}default:return e}},implementation:(e="combined",t)=>{switch(t.type){case"PROFILE_LOADED":return t.implementationFilter||e;case"CHANGE_IMPLEMENTATION_FILTER":return t.implementation;default:return e}},lastSelectedCallTreeSummaryStrategy:(e="timing",t)=>"CHANGE_CALL_TREE_SUMMARY_STRATEGY"===t.type?t.callTreeSummaryStrategy:e,invertCallstack:(e=!1,t)=>"CHANGE_INVERT_CALLSTACK"===t.type?t.invertCallstack:e,showUserTimings:(e=!1,t)=>"CHANGE_SHOW_USER_TIMINGS"===t.type?t.showUserTimings:e,committedRanges:(e=[],t)=>{switch(t.type){case"COMMIT_RANGE":{const{start:n,end:r}=t;return[...e,{start:n,end:r}]}case"POP_COMMITTED_RANGES":return e.slice(0,t.firstPoppedFilterIndex);case"SANITIZED_PROFILE_PUBLISHED":return t.committedRanges?t.committedRanges:e;default:return e}},callTreeSearchString:(e="",t)=>"CHANGE_CALL_TREE_SEARCH_STRING"===t.type?t.searchString:e,markersSearchString:(e="",t)=>"CHANGE_MARKER_SEARCH_STRING"===t.type?t.searchString:e,networkSearchString:(e="",t)=>"CHANGE_NETWORK_SEARCH_STRING"===t.type?t.searchString:e,transforms:(e={},t)=>{switch(t.type){case"PROFILE_LOADED":return t.transformStacks||e;case"ADD_TRANSFORM_TO_STACK":{const{threadsKey:n,transform:r}=t,o=e[n]||[];return Object.assign({},e,{[n]:[...o,r]})}case"POP_TRANSFORMS_FROM_STACK":{const{threadsKey:n,firstPoppedFilterIndex:r}=t,o=e[n]||[];return Object.assign({},e,{[n]:o.slice(0,r)})}case"SANITIZED_PROFILE_PUBLISHED":{const{oldThreadIndexToNew:n}=t;if(!n)return e;const r={};for(const[t,o]of et(e)){const e=n.get(Number(t));void 0!==e&&(r[e]=o)}return r}default:return e}},sourceView:(e={scrollGeneration:0,libIndex:null,sourceFile:null},t)=>"UPDATE_BOTTOM_BOX"===t.type?{scrollGeneration:e.scrollGeneration+1,libIndex:t.libIndex,sourceFile:t.sourceFile}:e,assemblyView:(e={scrollGeneration:0,nativeSymbol:null,allNativeSymbolsForInitiatingCallNode:[],isOpen:!1},t)=>{switch(t.type){case"UPDATE_BOTTOM_BOX":return{scrollGeneration:e.scrollGeneration+1,nativeSymbol:t.nativeSymbol,allNativeSymbolsForInitiatingCallNode:t.allNativeSymbolsForInitiatingCallNode,isOpen:e.isOpen||t.shouldOpenAssemblyView};case"OPEN_ASSEMBLY_VIEW":return{...e,isOpen:!0};case"CLOSE_ASSEMBLY_VIEW":return{...e,isOpen:!1};default:return e}},isBottomBoxOpenPerPanel:(e=function(){const e={};return ea.forEach((t=>e[t]=!1)),e}(),t)=>{switch(t.type){case"UPDATE_BOTTOM_BOX":{const{currentTab:n,shouldOpenBottomBox:r}=t;return r&&!e[n]?{...e,[n]:!0}:e}case"CLOSE_BOTTOM_BOX_FOR_TAB":{const{tab:n}=t;return e[n]?{...e,[n]:!1}:e}default:return e}},timelineType:(e="cpu-category",t)=>{switch(t.type){case"CHANGE_TIMELINE_TYPE":return t.timelineType;case"VIEW_FULL_PROFILE":case"VIEW_ACTIVE_TAB_PROFILE":return null!==t.timelineType?t.timelineType:e;default:return e}},full:Na,activeTab:Ma});var Ra;const Da=(Ra=_a({dataSource:(e="none",t)=>{switch(t.type){case"WAITING_FOR_PROFILE_FROM_FILE":return"from-file";case"PROFILE_PUBLISHED":case"SANITIZED_PROFILE_PUBLISHED":return"public";case"TRIGGER_LOADING_FROM_URL":return"from-url";case"PROFILE_REMOTELY_DELETED":return"unpublished";case"SET_DATA_SOURCE":return t.dataSource;default:return e}},hash:(e="",t)=>{switch(t.type){case"PROFILE_PUBLISHED":case"SANITIZED_PROFILE_PUBLISHED":return t.hash;case"PROFILE_REMOTELY_DELETED":return"";default:return e}},profileUrl:(e="",t)=>{switch(t.type){case"WAITING_FOR_PROFILE_FROM_URL":return t.profileUrl?t.profileUrl:e;case"TRIGGER_LOADING_FROM_URL":return t.profileUrl;default:return e}},profilesToCompare:(e=null,t)=>"CHANGE_PROFILES_TO_COMPARE"===t.type?t.profiles:e,selectedTab:Pa,pathInZipFile:(e=null,t)=>{switch(t.type){case"PROCESS_PROFILE_FROM_ZIP_FILE":return t.pathInZipFile?t.pathInZipFile:null;case"PROFILE_PUBLISHED":case"SANITIZED_PROFILE_PUBLISHED":case"RETURN_TO_ZIP_FILE_LIST":return null;default:return e}},profileSpecific:Fa,profileName:(e=null,t)=>{switch(t.type){case"PROFILE_PUBLISHED":case"SANITIZED_PROFILE_PUBLISHED":case"CHANGE_PROFILE_NAME":return t.profileName;default:return e}},timelineTrackOrganization:(e={type:"full"},t)=>{switch(t.type){case"VIEW_FULL_PROFILE":return{type:"full"};case"VIEW_ACTIVE_TAB_PROFILE":return{type:"active-tab",tabID:t.tabID};case"VIEW_ORIGINS_PROFILE":return{type:"origins"};default:return e}},symbolServerUrl:(e=null)=>e}),(e,t)=>{switch(t.type){case"UPDATE_URL_STATE":return t.newUrlState?t.newUrlState:Ra(void 0,t);case"RETURN_TO_ZIP_FILE_LIST":case"WAITING_FOR_PROFILE_FROM_FILE":return{...Ra(e,t),profileSpecific:Fa(void 0,e),selectedTab:Pa(void 0,t)};default:return Ra(e,t)}});function La(e){return e.endsWith(".0")?e.slice(0,-2):e}function Oa(e){const t=e.product||"",n=La(function(e){if(e){const t=/[\d.]+$/.exec(e);if(t)return t[0]}return""}(e.misc));return t+(n?" "+n:"")}function Ua(e){switch(e.toolkit){case"android":return e.platform?La(e.platform):"Android";case"cocoa":return e.oscpu?e.oscpu.replace(/^Intel /,"").replace(/^Mac OS X/,"macOS"):"macOS";case"windows":return e.oscpu?La(e.oscpu.replace(/;.*$/,"").replace(/ NT/,"")):"Windows";case"gtk":case"gtk3":return e.oscpu?e.oscpu.slice(0,e.oscpu.indexOf(" ")):"Linux";default:return e.oscpu||""}}const za=e=>e.urlState,Ga=e=>za(e).profileSpecific,Wa=e=>Ga(e).full,Ha=e=>Ga(e).activeTab,Va=e=>za(e).dataSource,ja=e=>za(e).hash,Za=e=>za(e).profileUrl,$a=e=>za(e).profilesToCompare,Ka=e=>za(e).profileName,Ya=e=>Ga(e).committedRanges,qa=e=>Ga(e).implementation,Ja=e=>Ga(e).lastSelectedCallTreeSummaryStrategy,Xa=e=>Ga(e).invertCallstack,Qa=e=>Ga(e).showUserTimings,ei=e=>Ga(e).sourceView.sourceFile,ti=e=>Ga(e).sourceView.scrollGeneration,ni=e=>Ga(e).assemblyView.isOpen,ri=e=>Ga(e).assemblyView.nativeSymbol,oi=e=>Ga(e).assemblyView.scrollGeneration,ai=e=>Wa(e).showJsTracerSummary,ii=e=>za(e).timelineTrackOrganization,si=e=>Ha(e).isResourcesPanelOpen,li=e=>Ga(e).callTreeSearchString,ci=e=>Ga(e).markersSearchString,di=e=>Ga(e).networkSearchString,ui=e=>za(e).selectedTab,hi=e=>Ga(e).selectedThreads,pi=e=>nt(hi(e),"Attempted to get a thread index before a profile was loaded."),mi=e=>Ur(pi(e)),fi=e=>nt(rt(pi(e)),"Expected to find at least one thread index in the selected thread indexes"),gi=e=>Ga(e).timelineType,Ai=e=>Wa(e).legacyThreadOrder,bi=e=>Wa(e).legacyHiddenThreads,Ci=e=>Wa(e).globalTrackOrder,yi=e=>Wa(e).hiddenGlobalTracks,vi=e=>Wa(e).hiddenLocalTracksByPid,wi=e=>Wa(e).localTrackOrderByPid,ki=(e,t)=>nt(vi(e).get(t),"Unable to get the hidden tracks from the given pid"),Ei=(e,t)=>nt(wi(e).get(t),"Unable to get the track order from the given pid"),xi=qe(li,oo),Si=qe(ci,oo),Ti=qe(di,oo),Bi=qe(xi,ao),_i=qe(Si,ao),Ii=qe(Ti,ao),Pi=[],Ni=(e,t)=>Ga(e).transforms[t]||Pi,Mi=e=>{const t=ui(e);return Ga(e).isBottomBoxOpenPerPanel[t]},Fi=qe(za,(e=>t=>la((Array.isArray(t)?t:[t]).reduce(Da,e)))),Ri=e=>za(e).pathInZipFile,Di=e=>{const{profile:t}=e.profileView;return t?function(e){const t=Oa(e),n=Ua(e);return t+(n?` – ${n}`:"")}(t.meta):null},Li=qe(Ri,(e=>e?function(e){const t=/(?:[^/]+\/)?[^/]+$/.exec(e);return null!==t?t[0]:""}(e):null)),Oi=qe(Ka,Li,Di,((e,t,n)=>e||t||n||"Untitled profile")),Ui=qe(Ka,Li,((e,t)=>e||t||"")),zi=qe(Ya,(function(e){return e.map((e=>Jt(e.end-e.start)))})),Gi=qe(za,(({symbolServerUrl:e})=>e&&function(e){try{const t=new URL(e);return!!va(t)||(["symbols.mozilla.org","symbolication.services.mozilla.com"].includes(t.hostname)?"https:"===t.protocol||(console.error(`HTTPS is required for non-localhost symbol servers. Rejecting ${e} and defaulting to ${Fn}.`),!1):(console.error(`The symbol server URL was not in the list of allowed domains. Rejecting ${e} and defaulting to ${Fn}.`),!1))}catch(t){return console.error(`The symbol server URL was not valid. Rejecting ${e} and defaulting to ${Fn}.`,t),!1}}(e)?e.endsWith("/")?e.slice(0,-1):e:Fn));function Wi(e,t){let n=0;for(let r=0;r<e.length;r++){const{samples:o}=e[r],{threadCPUDelta:a}=o;if(a)for(let e=1;e<o.length;e++){const r=0===e?t:o.time[e]-o.time[e-1],i=(a[e]||0)/r;n=Math.max(n,i)}}return n}function Hi(e){switch(e){case"µs":return 1e3;case"ns":return 1e6;case"variable CPU cycles":return 1;default:throw Je(e,"Unhandled threadCPUDelta unit in the processing.")}}function Vi(e,t,n=0){if(n>=e.length)throw new Error("Expected the distance to be less than the array length.");if(t+n<e.length){const r=e[t+n];if(null!==r)return r}if(t-n>=0){const r=e[t-n];if(null!==r)return r}return Vi(e,t,++n)}function ji(e,t){return new Set([...e].filter((e=>t.has(e))))}const Zi={thread:0,network:1,memory:2,ipc:3,"event-delay":4,"process-cpu":5,power:6,marker:7},$i={network:0,memory:1,power:2,ipc:3,thread:4,"event-delay":5,"process-cpu":6,marker:7},Ki={process:0,screenshots:1,"visual-progress":2,"perceptual-visual-progress":3,"contentful-visual-progress":4},Yi={"visual-progress":0,"perceptual-visual-progress":1,"contentful-visual-progress":2,screenshots:3,process:4};function qi(e,t){const n=e.map(((e,t)=>t)),r=new Intl.Collator("en-US",{numeric:!0});return n.sort(((n,o)=>{if("thread"===e[n].type&&"ipc"===e[o].type&&e[n].threadIndex===e[o].threadIndex)return-1;if("ipc"===e[n].type&&"thread"===e[o].type&&e[n].threadIndex===e[o].threadIndex)return 1;if(t&&t.counters&&"power"===e[n].type&&"power"===e[o].type){const a=e[n].counterIndex,i=e[o].counterIndex;if(t.meta.keepProfileThreadOrder)return a-i;const s=t.counters[a].name,l=t.counters[i].name;return r.compare(s,l)}if("thread"===e[n].type&&"thread"===e[o].type&&t){const a=e[n].threadIndex,i=e[o].threadIndex;if(void 0===a||void 0===i)return-1;if(t&&t.meta.keepProfileThreadOrder)return a-i;const s=t.threads[a].name,l=t.threads[i].name;return r.compare(s,l)||t.threads[a].registerTime-t.threads[i].registerTime}return $i[e[n].type]-$i[e[o].type]})),n}function Ji(e,t,n,r){const o=new Map;if(null===n)for(const[n,a]of t){let t=qi(a,r);if(null!==e){let r=e.get(n);if(void 0!==r){if(r.length!==t.length){const e=r.slice();for(let n=r.length;n<t.length;n++)e.push(n);r=e}os(a.length,r)&&(t=r)}}o.set(n,t)}else for(const[e,r]of t){const t=[];for(const e of n){const n=r.findIndex((t=>"thread"===t.type&&t.threadIndex===e));-1!==n&&t.push(n)}for(let e=0;e<r.length;e++)t.includes(e)||t.push(e);o.set(e,t)}return o}function Xi(e,t){if(void 0!==t.meta.initialSelectedThreads)return new Set(t.meta.initialSelectedThreads.filter((e=>e<t.threads.length||(console.warn(`The specified thread index ${e} is higher than the maximum thread index ${t.threads.length-1}.`),!1))));const n=function(e){if(0===e.length)return null;const t=e.findIndex((e=>"GeckoMain"===e.name&&"tab"===e.processType)),n=-1!==t?t:function(e){const t=e.map(((e,t)=>t));return t.sort(((t,n)=>{const r=e[t].name,o=e[n].name;return r===o?t-n:"Compositor"===r?1:"Compositor"===o?-1:"Renderer"===r?1:"Renderer"===o?-1:t-n})),t}(e)[0];return e[n]}(e.map((e=>t.threads[e]))),r=t.threads.indexOf(n);if(-1===r)throw new Error("Expected to find a thread index to select.");return new Set([r])}function Qi(e,t,n){const r=new Set([...t].map((t=>e.threads[t].pid))),o=new Set(n.globalTrackOrder.filter((e=>{const t=n.globalTracks[e];return"process"===t.type&&!r.has(t.pid)}))),a=new Map;for(const[e,o]of n.localTrackOrderByPid){if(!r.has(e)){a.set(e,new Set(o));continue}const i=n.localTracksByPid.get(e)??[],s=new Set(o.filter((e=>!ss(i[e],t))));a.set(e,s)}return{hiddenGlobalTracks:o,hiddenLocalTracksByPid:a}}function es({globalTracks:e,localTracksByPid:t},{hiddenGlobalTracks:n,hiddenLocalTracksByPid:r}){const o=[];for(let a=0;a<e.length;a++){if(n.has(a))continue;const i=e[a];if("process"===i.type){const{mainThreadIndex:e,pid:n}=i;null!==e&&o.push(e);const a=nt(t.get(n),"A local track was expected to exist for the given pid."),s=nt(r.get(n),"Hidden tracks were expected to exists for the given pid.");for(let e=0;e<a.length;e++){const t=a[e];if("thread"===t.type){const{threadIndex:n}=t;s.has(e)||o.push(n)}}}}return o}function ts(e,t,n){switch(e.type){case"thread":return Pr(t,t[e.threadIndex]);case"network":return"Network";case"memory":return"Memory";case"ipc":return`IPC — ${Pr(t,t[e.threadIndex])}`;case"event-delay":return Pr(t,t[e.threadIndex])+" Event Delay";case"process-cpu":return"Process CPU";case"power":return n[e.counterIndex].name;case"marker":return t[e.threadIndex].stringTable.getString(e.markerName);default:throw Je(e,"Unhandled LocalTrack type.")}}const ns=.05,rs=40;function os(e,t){return t.length===e&&t.slice().sort(((e,t)=>e-t)).every(((e,t)=>e===t))}function as(e,t,n,r){if(!r)return null;const o=ao(oo(r));if(!o)return null;const a=new Set;for(let r=0;r<e.length;r++){const i=e[r];switch(o.lastIndex=0,i.type){case"process":{const{mainThreadIndex:e}=i;if(o.test(i.pid.toString())){a.add(r);continue}if(null!==e){const i=n[e],s=t[r];if(o.test(s)){a.add(r);continue}const{tid:l}=i;if(l&&o.test(l.toString())){a.add(r);continue}if(o.test(i.processType)){a.add(r);continue}const{processName:c}=i;if(c&&o.test(c)){a.add(r);continue}const d=i["eTLD+1"];if(d&&o.test(d)){a.add(r);continue}}break}case"screenshots":case"visual-progress":case"perceptual-visual-progress":case"contentful-visual-progress":{const{type:e}=i;if(o.test(e)){a.add(r);continue}break}default:throw Je(i,"Unhandled GlobalTrack type.")}}return a}function is(e,t,n,r){if(!r)return null;const o=ao(oo(r));if(!o)return null;const a=new Map;for(const[r,i]of e){const e=new Set,s=t.get(r);if(void 0===s)throw new Error("Failed to get the local track names");for(let t=0;t<i.length;t++){const a=i[t];if(o.lastIndex=0,o.test(r.toString()))e.add(t);else switch(a.type){case"thread":{const{threadIndex:r}=a,i=n[r],l=s[t];if(o.test(l)){e.add(t);continue}const{tid:c}=i;if(c&&o.test(c.toString())){e.add(t);continue}if(o.test(i.processType)){e.add(t);continue}const{processName:d}=i;if(d&&o.test(d)){e.add(t);continue}const u=i["eTLD+1"];if(u&&o.test(u)){e.add(t);continue}break}case"network":case"memory":case"marker":case"ipc":case"event-delay":case"power":case"process-cpu":{const{type:n}=a;if(o.test(n)){e.add(t);continue}break}default:throw Je(a,"Unhandled LocalTrack type.")}}e.size>0&&a.set(r,e)}return a}function ss(e,t){switch(e.type){case"thread":return t.has(e.threadIndex);case"marker":case"network":case"memory":case"event-delay":case"process-cpu":case"power":return!0;case"ipc":return!1;default:throw Je(e,"Unhandled LocalTrack type.")}}class ls extends Error{constructor(e,t,...n){super([e,...n.map((e=>` - ${e.name}: ${e.message}`))].join("\n")),this.library=void 0,this.errors=void 0,this.__proto__=ls.prototype,this.name="SymbolsNotFoundError",this.library=t,this.errors=n}}function cs(e,t,n){const{frameTable:r,funcTable:o,nativeSymbols:a,stackTable:i,stringTable:s}=e,{threadLibSymbolicationInfo:l,resultsForLib:c}=t,{resourceIndex:d,allFramesForThisLib:u,allFuncsForThisLib:h,allNativeSymbolsForThisLib:p,libIndex:m}=l,f=new Set(h),g=new Set(p),A=new Map,b=new Map,C=new Map,y=new Set,v=new Set;for(const e of u)r.inlineDepth[e]>0?y.add(e):v.add(e);const{stackTable:w,oldStackToNewStack:k}=function(e,t){if(0===t.size)return{stackTable:e,oldStackToNewStack:null};const n={frame:[],prefix:[],category:[],subcategory:[],length:0},r=new Map;for(let o=0;o<e.length;o++){const a=e.frame[o],i=e.prefix[o],s=null===i?null:r.get(i)??null;if(t.has(a)){r.set(o,s);continue}const l=n.length;n.frame.push(a),n.prefix.push(s),n.category.push(e.category[o]),n.subcategory.push(e.subcategory[o]),n.length++,r.set(o,l)}return{stackTable:n,oldStackToNewStack:r}}(i,y);for(const e of v){const t=r.nativeSymbol[e],n=r.address[e];let o=c.get(n);if(void 0===o)if(null!==t){const e=s.getString(a.name[t]);o={symbolAddress:a.address[t],name:e}}else o={symbolAddress:n,name:`0x${n.toString(16)}`};const i=o.symbolAddress;if(A.set(e,i),b.set(i,o),null!==t&&!C.has(i)&&g.has(t)){const e=t;g.delete(e),C.set(i,e)}}const E=g.values(),x=function(e){return{libIndex:e.libIndex.slice(),address:e.address.slice(),name:e.name.slice(),functionSize:e.functionSize.slice(),length:e.length}}(a);for(const[e,t]of b){const n=s.indexForString(t.name);let r=C.get(e);void 0===r&&(r=E.next().value,void 0===r&&(r=x.length,x.libIndex[r]=m,x.length++),C.set(e,r)),x.address[r]=e,x.name[r]=n,x.functionSize[r]=t.functionSize??null}const S=r.nativeSymbol.slice();for(const[e,t]of A){const n=C.get(t);if(void 0===n)throw new Error("Impossible, all symbolAddresses have a canonical symbol at this point.");S[e]=n}const T=Un({...r,nativeSymbol:S}),B=zn(o),_=f.values(),I=new Map,P=y.values(),N=new Map,M=[];for(const e of v){const t=r.func[e],n=S[e];if(null===n)throw new Error("Impossible, all frames now have native symbols.");const o=r.address[e];let a=c.get(o);if(void 0===a){const o=x.name[n],i=B.fileName[t];a={symbolAddress:x.address[n],name:s.getString(o),file:null!==i?s.getString(i):void 0,line:r.line[e]??void 0}}const i=a.inlines?a.inlines.slice():[];i.push({name:a.name,file:a.file,line:a.line}),i.reverse();const l=[],u=[];for(let t=0;t<i.length;t++){const r=i[t],a=s.indexForString(r.name),c=void 0!==r.file?s.indexForString(r.file):null,h=`${a}:${c??""}`;let p,m=I.get(h);if(void 0===m&&(m=_.next().value,void 0===m&&(m=B.length,B.isJS[m]=!1,B.relevantForJS[m]=!1,B.resource[m]=d,B.fileName[m]=null,B.lineNumber[m]=null,B.columnNumber[m]=null,B.length++),B.name[m]=a,B.fileName[m]=c,I.set(h,m)),u.push(m),0===t)p=e;else{p=P.next().value,void 0===p&&(p=T.length,T.length++);const t=T.category[e],r=T.subcategory[e],a=T.innerWindowID[e],i=T.implementation[e];T.category[p]=t,T.subcategory[p]=r,T.innerWindowID[p]=a,T.implementation[p]=i,T.address[p]=o,T.nativeSymbol[p]=n}T.inlineDepth[p]=t,T.func[p]=m,T.line[p]=r.line??null,T.column[p]=null,l.push(p)}l.length>1&&N.set(e,l),M.push([t,u.join("#")])}const F=function(e){const t=new Map,n=new Set;for(const[r,o]of e){if(n.has(r))continue;const e=t.get(r);void 0!==e?e!==o&&(t.delete(r),n.add(r)):t.set(r,o)}return t}(M);for(const[e,t]of F)n.set(e,t.split("#").map((e=>+e)));let R={...e,frameTable:T,stackTable:w,funcTable:B,nativeSymbols:x,stringTable:s};null!==k&&(R=Gr(R,k,k));const{stackTable:D,oldStackToNewStack:L}=function(e,t){if(0===t.size)return{stackTable:e,oldStackToNewStack:null};const n={frame:[],prefix:[],category:[],subcategory:[],length:0},r=new Map;for(let o=0;o<e.length;o++){const a=e.frame[o],i=e.prefix[o],s=e.category[o],l=e.subcategory[o];let c=t.get(a);void 0===c&&(c=[a]);let d=null===i?null:r.get(i)??null;for(let e=0;e<c.length;e++){const t=c[e],r=n.length;n.frame.push(t),n.prefix.push(d),n.category.push(s),n.subcategory.push(l),n.length++,d=r}null!==d&&r.set(o,d)}return{stackTable:n,oldStackToNewStack:r}}(w,N);return null!==L&&(R=Gr({...R,stackTable:D},L,L)),R}function ds(e,t){return t.reduce(((t,n)=>{const r=e.get(n);return void 0===r?[...t,n]:[...t,...r]}),[])}function us(e,t){const n=[];for(const r of t){const t=ds(e,r);n.push(t);const o=ds(e,[r[r.length-1]]).length;if(o>1)for(let e=1;e<o;e++)n.push(t.slice(0,t.length-e))}return new qn(n)}const hs={selectedCallNodePath:[],expandedCallNodePaths:new qn,selectedMarker:null,selectedNetworkMarker:null};function ps(e,t){return e[t]||hs}function ms(e,t,n){const r={...e};return r[t]={...ps(e,t),...n},r}const fs={fixedColumnWidths:null},gs=(As=_a({viewOptions:_a({perThread:(e={},t)=>{switch(t.type){case"PROFILE_LOADED":return{};case"BULK_SYMBOLICATION":{const{oldFuncToNewFuncsMaps:n}=t;return tt(e,((e,t)=>{const r=+t;if(Number.isNaN(r))throw new Error("Bulk symbolication only supports a single thread, and a ThreadsKey with multiple threads was used.");const o=n.get(r);return void 0===o?e:{...e,selectedCallNodePath:ds(o,e.selectedCallNodePath),expandedCallNodePaths:us(o,e.expandedCallNodePaths)}}))}case"CHANGE_SELECTED_CALL_NODE":{const{selectedCallNodePath:n,threadsKey:r,optionalExpandedToCallNodePath:o}=t,a=ps(e,r);if(function(e,t){if(e===t)return!0;if(e.length!==t.length)return!1;for(let n=e.length-1;n>=0;n--)if(e[n]!==t[n])return!1;return!0}(n,a.selectedCallNodePath)&&!o)return e;let{expandedCallNodePaths:i}=a;const s=o||n,l=[];for(let e=1;e<s.length;e++)l.push(s.slice(0,e));return l.some((e=>!i.has(e)))&&(i=new qn(i),l.forEach((e=>i.add(e)))),ms(e,r,{selectedCallNodePath:n,expandedCallNodePaths:i})}case"CHANGE_INVERT_CALLSTACK":{const{callTree:n,callNodeTable:r,selectedThreadIndexes:o}=t;return tt(e,((e,t)=>{if(t===Ur(o).toString()){const t=function(e,t,n){let r=Er(e,n);if(null===r)return[];let o=[r];const a=[];do{r=o[0],a.push(r),o=t.getChildren(r)}while(o&&o.length>0);return a.map((e=>n.func[e])).reverse()}(e.selectedCallNodePath,n,r),o=new qn;for(let e=1;e<t.length;e++)o.add(t.slice(0,e));return{...e,selectedCallNodePath:t,expandedCallNodePaths:o}}return e}))}case"CHANGE_EXPANDED_CALL_NODES":{const{threadsKey:n,expandedCallNodePaths:r}=t;return ms(e,n,{expandedCallNodePaths:new qn(r)})}case"CHANGE_SELECTED_MARKER":{const{threadsKey:n,selectedMarker:r}=t;return ms(e,n,{selectedMarker:r})}case"CHANGE_SELECTED_NETWORK_MARKER":{const{threadsKey:n,selectedNetworkMarker:r}=t;return ms(e,n,{selectedNetworkMarker:r})}case"ADD_TRANSFORM_TO_STACK":{const{threadsKey:n,transform:r,transformedThread:o,callNodeTable:a}=t,i=ps(e,n),s=new qn(Array.from(i.expandedCallNodePaths).map((e=>jo(e,r,o,a))).filter((e=>e.length>0)));return ms(e,n,{selectedCallNodePath:jo(i.selectedCallNodePath,r,o,a),expandedCallNodePaths:s})}case"POP_TRANSFORMS_FROM_STACK":{const{threadsKey:n}=t;return ms(e,n,{selectedCallNodePath:[],expandedCallNodePaths:new qn})}case"CHANGE_IMPLEMENTATION_FILTER":{const{transformedThread:n,threadsKey:r,previousImplementation:o,implementation:a}=t;if(o===a)return e;let i=ps(e,r).selectedCallNodePath;"combined"===a?i=Ko(n,o,i):("combined"!==o&&(i=Ko(n,o,i)),i=function(e,t,n){const r=$o[t];return n.filter((t=>r(e,t)))}(n,a,i));const s=new qn;for(let e=1;e<i.length;e++)s.add(i.slice(0,e));return ms(e,r,{selectedCallNodePath:i,expandedCallNodePaths:s})}default:return e}},symbolicationStatus:(e="DONE",t)=>{switch(t.type){case"START_SYMBOLICATING":return"SYMBOLICATING";case"DONE_SYMBOLICATING":return"DONE";default:return e}},waitingForLibs:(e=new Set,t)=>{switch(t.type){case"REQUESTING_SYMBOL_TABLE":{const n=new Set(e);return n.add(t.requestedLib),n}case"RECEIVED_SYMBOL_TABLE_REPLY":{const n=new Set(e);return n.delete(t.requestedLib),n}default:return e}},previewSelection:(e={hasSelection:!1,isModifying:!1},t)=>{switch(t.type){case"UPDATE_PREVIEW_SELECTION":return t.previewSelection;case"COMMIT_RANGE":case"POP_COMMITTED_RANGES":return{hasSelection:!1,isModifying:!1};default:return e}},scrollToSelectionGeneration:(e=0,t)=>{switch(t.type){case"CHANGE_INVERT_CALLSTACK":case"CHANGE_SELECTED_THREAD":case"SELECT_TRACK":case"HIDE_GLOBAL_TRACK":case"HIDE_LOCAL_TRACK":case"HIDE_PROVIDED_TRACKS":case"CHANGE_CALL_TREE_SEARCH_STRING":case"CHANGE_MARKER_SEARCH_STRING":case"CHANGE_NETWORK_SEARCH_STRING":return e+1;case"CHANGE_SELECTED_CALL_NODE":case"CHANGE_SELECTED_MARKER":case"CHANGE_SELECTED_NETWORK_MARKER":return"pointer"===t.context.source?e:e+1;default:return e}},focusCallTreeGeneration:(e=0,t)=>"FOCUS_CALL_TREE"===t.type?e+1:e,rootRange:(e={start:0,end:1},t)=>"PROFILE_LOADED"===t.type?dr(t.profile):e,lastNonShiftClick:(e=null,t)=>{switch(t.type){case"SELECT_TRACK":return t.lastNonShiftClickInformation;case"HIDE_GLOBAL_TRACK":{if(!e)return null;const{clickedTrack:n}=e;return"global"===n.type&&n.trackIndex===t.trackIndex||"local"===n.type&&n.pid===t.pid?null:e}case"HIDE_LOCAL_TRACK":{if(!e)return null;const{clickedTrack:n}=e;return"local"===n.type&&n.pid===t.pid&&n.trackIndex===t.trackIndex?null:e}default:return e}},rightClickedTrack:(e=null,t)=>"CHANGE_RIGHT_CLICKED_TRACK"===t.type?t.trackReference:e,rightClickedCallNode:(e=null,t)=>{switch(t.type){case"BULK_SYMBOLICATION":{if(null===e)return null;const{oldFuncToNewFuncsMaps:n}=t,r=n.get(+e.threadsKey);return void 0===r?e:{...e,callNodePath:ds(r,e.callNodePath)}}case"CHANGE_RIGHT_CLICKED_CALL_NODE":return null!==t.callNodePath?{threadsKey:t.threadsKey,callNodePath:t.callNodePath}:null;case"SET_CONTEXT_MENU_VISIBILITY":return t.isVisible?e:null;case"PROFILE_LOADED":case"CHANGE_INVERT_CALLSTACK":case"ADD_TRANSFORM_TO_STACK":case"POP_TRANSFORMS_FROM_STACK":case"CHANGE_IMPLEMENTATION_FILTER":return null;default:return e}},rightClickedMarker:(e=null,t)=>{switch(t.type){case"CHANGE_RIGHT_CLICKED_MARKER":return null!==t.markerIndex?{threadsKey:t.threadsKey,markerIndex:t.markerIndex}:null;case"SET_CONTEXT_MENU_VISIBILITY":return t.isVisible?e:null;case"PROFILE_LOADED":return null;default:return e}},hoveredMarker:(e=null,t)=>{switch(t.type){case"CHANGE_HOVERED_MARKER":return null!==t.markerIndex?{threadsKey:t.threadsKey,markerIndex:t.markerIndex}:null;case"PROFILE_LOADED":return null;default:return e}},mouseTimePosition:(e=null,t)=>"CHANGE_MOUSE_TIME_POSITION"===t.type?t.mouseTimePosition:e,perTab:(e={},t)=>"CHANGE_TABLE_VIEW_OPTIONS"===t.type?function(e,t,n){const r={...e};return r[t]={...e[t]??fs,...n},r}(e,t.tab,t.tableViewOptions):e}),profile:(e=null,t)=>{switch(t.type){case"PROFILE_LOADED":return t.profile;case"BULK_SYMBOLICATION":{if(null===e)throw new Error("Assumed that a profile would be loaded in time for a coalesced functions update.");if(!e.threads.length)return e;const{symbolicatedThreads:n}=t;return{...e,threads:n}}case"DONE_SYMBOLICATING":if(null===e)throw new Error("Strangely we're done symbolicating a non-existent profile.");return{...e,meta:{...e.meta,symbolicated:!0}};default:return e}},full:_a({globalTracks:(e=[],t)=>"VIEW_FULL_PROFILE"===t.type?t.globalTracks:e,localTracksByPid:(e=new Map,t)=>{switch(t.type){case"VIEW_FULL_PROFILE":case"ENABLE_EVENT_DELAY_TRACKS":case"ENABLE_EXPERIMENTAL_PROCESS_CPU_TRACKS":return t.localTracksByPid;default:return e}}}),activeTab:_a({activeTabTimeline:(e=null,t)=>"VIEW_ACTIVE_TAB_PROFILE"===t.type?t.activeTabTimeline:e}),origins:_a({originsTimeline:(e=[],t)=>"VIEW_ORIGINS_PROFILE"===t.type?t.originsTimeline:e})}),(e,t)=>{switch(t.type){case"SANITIZED_PROFILE_PUBLISHED":case"REVERT_TO_PRE_PUBLISHED_STATE":case"RETURN_TO_ZIP_FILE_LIST":return As(void 0,t);default:return As(e,t)}});var As;const bs=gs,Cs=e=>e.profileView,ys=e=>Cs(e).full,vs=e=>Cs(e).activeTab,ws=e=>Cs(e).origins,ks=e=>Cs(e).viewOptions,Es=e=>ks(e).perTab[ui(e)]||fs,xs=e=>ks(e).rootRange,Ss=e=>ks(e).symbolicationStatus,Ts=e=>ks(e).scrollToSelectionGeneration,Bs=e=>ks(e).focusCallTreeGeneration,_s=e=>xs(e).start,Is=qe(xs,_s,Ya,((e,t,n)=>{if(n.length>0){let{start:e,end:r}=n[n.length-1];return e+=t,r+=t,{start:e,end:r}}return e})),Ps=e=>ks(e).mouseTimePosition,Ns=e=>t=>ks(t).perTab[e]||fs,Ms=e=>ks(e).previewSelection,Fs=qe(Is,Ms,((e,t)=>t.hasSelection?{start:t.selectionStart,end:t.selectionEnd}:e)),Rs=e=>Cs(e).profile,Ds=e=>nt(Rs(e),"Tried to access the profile before it was loaded."),Ls=e=>Ds(e).meta.interval,Os=e=>Ds(e).pages||null,Us=e=>Qs(e).findIndex((e=>"grey"===e.color)),zs=e=>Ds(e).threads,Gs=e=>Ds(e).threads.map((e=>e.name)),Ws=e=>ks(e).lastNonShiftClick,Hs=e=>ks(e).rightClickedTrack,Vs=e=>Ds(e).counters||null,js=e=>Ds(e).meta,Zs=e=>js(e).visualMetrics||null,$s=e=>nt(Zs(e),"Tried to access the visual metrics when it does not exist."),Ks=e=>$s(e).VisualProgress,Ys=e=>$s(e).PerceptualSpeedIndexProgress??null,qs=e=>$s(e).ContentfulSpeedIndexProgress??null,Js=e=>js(e).configuration,Xs=e=>js(e).sampleUnits,Qs=qe(Ds,(e=>{const{categories:t}=e.meta;return t||[{name:"Other",color:"grey",subcategories:["Other"]},{name:"Idle",color:"transparent",subcategories:["Other"]},{name:"Layout",color:"purple",subcategories:["Other"]},{name:"JavaScript",color:"yellow",subcategories:["Other"]},{name:"GC / CC",color:"orange",subcategories:["Other"]},{name:"Network",color:"lightblue",subcategories:["Other"]},{name:"Graphics",color:"green",subcategories:["Other"]},{name:"DOM",color:"blue",subcategories:["Other"]}]})),el=qe((e=>js(e).markerSchema),(e=>{const t=new Set([...io.map((e=>e.name))]);return[...e.filter((e=>!t.has(e.name))),...io]})),tl=qe(el,(e=>{const t=Object.create(null);for(const n of e)t[n.name]=n;return t})),nl=e=>{const t=Js(e);return t&&t.activeTabID&&0!==t.activeTabID?t.activeTabID:null},rl={},ol=e=>{let t=rl[e];return t||(t=function(e){const t=qe(Ds,(t=>function(e){const t=e.sampleGroups.map((e=>{const{samples:t}=e,n=t.count.slice(),r=void 0!==t.number?t.number.slice():void 0;return n[0]=0,void 0!==r&&(r[0]=0),{...e,samples:{...t,number:r,count:n}}}));return{...e,sampleGroups:t}}(nt(t.counters,"Attempting to get a counter by index, but no counters exist.")[e]))),n=qe(t,Is,((e,t)=>e.sampleGroups.map((e=>Cr(e.samples,t.start,t.end))))),r=qe(t,n,((e,t)=>function(e,t){const n=e.map(((e,n)=>{let r=0,o=0,a=0;const i=Array(e.length).fill(0),s=t&&t[n]?t[n][0]:0,l=t&&t[n]?t[n][1]:e.length;for(let t=s;t<l;t++)a+=e.count[t],r=Math.min(a,r),o=Math.max(a,o),i[t]=a;return{minCount:r,maxCount:o,countRange:o-r,accumulatedCounts:i}}));return n}(e.sampleGroups.map((e=>e.samples)),t))),o=qe(t,Ls,((e,t)=>vr(e.sampleGroups.map((e=>e.samples)),t))),a=qe(t,Ls,n,((e,t,n)=>vr(e.sampleGroups.map((e=>e.samples)),t,n)));return{getCounter:t,getDescription:e=>t(e).description,getPid:e=>t(e).pid,getAccumulateCounterSamples:r,getMaxCounterSampleCountsPerMs:o,getMaxRangeCounterSampleCountsPerMs:a,getCommittedRangeCounterSampleRanges:n}}(e),rl[e]=t),t},al=qe(zs,yo),il=e=>ys(e).globalTracks,sl=qe(il,(e=>e.map(((e,t)=>({type:"global",trackIndex:t}))))),ll=qe(zs,(e=>e.some((({stringTable:e,markers:t})=>{const n=e.indexForString("PreferenceRead");return t.name.some((e=>e===n))})))),cl=(e,t)=>il(e)[t.trackIndex],dl=(e,t)=>{const n=il(e),r=n.findIndex((e=>"process"===e.type&&e.pid===t));if(-1===r)throw new Error("Unable to find the track index for the given pid.");const o=n[r];if("process"!==o.type)throw new Error("The globalTrack must be a process type.");return{globalTrackIndex:r,globalTrack:o}},ul=e=>ys(e).localTracksByPid,hl=(e,t)=>nt(ys(e).localTracksByPid.get(t),"Unable to get the tracks for the given pid."),pl=(e,t)=>hl(e,t.pid)[t.trackIndex],ml=qe(ul,(e=>{const t=new Set;for(const[n,r]of e.entries())r.some((e=>"memory"===e.type))&&t.add(n);return t})),fl=qe(Hs,il,ul,((e,t,n)=>{if(null===e)return null;if("global"===e.type){const n=t[e.trackIndex];return"process"===n.type?n.mainThreadIndex:null}const{pid:r,trackIndex:o}=e,a=nt(n.get(r),"No local tracks found at that pid.")[o];return"thread"===a.type?a.threadIndex:null})),gl=qe(il,zs,((e,t)=>e.map((e=>function(e,t){switch(e.type){case"process":if(null===e.mainThreadIndex){const n=e.pid;return t.filter((e=>e.pid===n)).map((e=>e.processName)).find((e=>!!e))||`Process ${n}`}return Pr(t,t[e.mainThreadIndex]).replace(/^https?:\/\//i,"");case"screenshots":return"Screenshots";case"visual-progress":return"Visual Progress";case"perceptual-visual-progress":return"Perceptual Visual Progress";case"contentful-visual-progress":return"Contentful Visual Progress";default:throw Je(e,"Unhandled GlobalTrack type.")}}(e,t))))),Al=(e,t)=>gl(e)[t],bl=qe(ul,zs,Vs,((e,t,n)=>{const r=new Map;for(const[o,a]of e)r.set(o,a.map((e=>ts(e,t,n||[]))));return r})),Cl=(e,t,n)=>nt(bl(e).get(t),"Could not find the track names from the given pid")[n],yl=e=>vs(e).activeTabTimeline,vl=e=>yl(e).mainTrack,wl=e=>[...yl(e).screenshots,yl(e).mainTrack],kl=e=>yl(e).resources,El=e=>yl(e).resourcesThreadsKey,xl=qe(wl,(e=>e.map(((e,t)=>({type:"global",trackIndex:t}))))),Sl=(e,t)=>wl(e)[t.trackIndex],Tl=(e,t)=>kl(e)[t.trackIndex],Bl=e=>ws(e).originsTimeline,_l=qe(il,ul,vi,yi,((e,t,n,r)=>{let o=0,a=0;for(const[i,s]of t){const t=n.get(i)||new Set,l=e.findIndex((e=>"process"===e.type&&e.pid===i));if(-1===l)throw new Error("Unable to find a global track from the given pid.");if(!t)throw new Error("Unable to find the hidden local tracks from the given pid");r.has(l)?o+=s.length:o+=t.size,a+=s.length}return a+=e.length,o+=r.size,{hidden:o,total:a}})),Il=qe(Os,(e=>{if(!e)return null;const t=new Map;for(const n of e)t.set(n.innerWindowID,n);return t})),Pl=qe(Os,Il,((e,t)=>{if(null===e||null===t||0===e.length)return null;const n=new Map,r=(e,t)=>{const r=n.get(e);void 0===r?n.set(e,[t]):r.push(t)};for(const n of e)if(void 0===n.embedderInnerWindowID)r(n.tabID,n.innerWindowID);else{const e=n=>{const r=t.get(n.embedderInnerWindowID);return void 0!==r?e(r):n};r(e(n).tabID,n)}return n})),Nl=[],Ml=qe(Pl,nl,((e,t)=>null===e||0===e.size||null===t?Nl:e.get(t)??Nl)),Fl=qe(Pl,(e=>{if(null===e||0===e.size)return null;const t=new Map;for(const[n,r]of e)t.set(n,new Set(r.map((e=>e.innerWindowID))));return t})),Rl=qe(Fl,nl,((e,t)=>null===e||0===e.size||null===t?new Set:e.get(t)??new Set)),Dl=qe(ii,Rl,((e,t)=>{switch(e.type){case"active-tab":return t;case"full":case"origins":return new Set;default:throw Je(e,"Unhandled timelineTrackOrganization case")}})),Ll=qe(Os,Dl,(function(e,t){if(0===t.size||null===e)return null;let n=e.filter((e=>0===e.embedderInnerWindowID&&t.has(e.innerWindowID)));if(n.length>1&&(n=n.filter((e=>!e.url.startsWith("about:")))),0===n.length)return console.error("Expected a relevant page but couldn't find it."),null;const r=n[0].url;if(r.startsWith("about:"))return{origin:r,hostname:r,favicon:null};try{const e=new URL(r),t=new URL("/favicon.ico",e.origin);return"http:"===t.protocol&&(t.protocol="https:"),{origin:e.origin,hostname:e.hostname,favicon:t.href}}catch(e){return console.error("Error while extracing the hostname and favicon from the page url",r),null}})),Ol=qe(zs,(e=>{const t=new Map;for(const n of e)t.set(n.tid,Pr(e,n));return t})),Ul=qe(Ds,(e=>{const{threads:t,pages:n}=e;return!(!n||!n.some((e=>e.isPrivateBrowsing)))||t.some((e=>e.isPrivateBrowsing))})),zl=qe(zs,(e=>{const t=new Set;for(const{tid:n}of e)t.add(n);return t})),Gl=e=>{const{profile:t}=e.profileView;return!t||!0!==t.meta.doesNotUseFrameImplementation},Wl=e=>{const{profile:t}=e.profileView;return!t||!0!==t.meta.sourceCodeIsNotOnSearchfox},Hl=e=>{const{profile:t}=e.profileView;return!t||!0!==t.meta.usesOnlyOneStackType},Vl=qe(Ds,(e=>e.meta.extra||[])),jl=e=>e.zippedProfiles,Zl=e=>jl(e).selectedZipFileIndex,$l=e=>jl(e).expandedZipFileIndexes,Kl=e=>jl(e).zipFile,Yl=e=>Kl(e).zip,ql=e=>"NO_ZIP_FILE"!==Kl(e).phase,Jl=e=>{const{error:t}=jl(e);return null===t?null:t.message},Xl=qe(Yl,(e=>null===e?null:function(e){const t=et(e.files).filter((([e,t])=>!t.dir)).map((([e,t])=>e)),n=new Map,r={prefix:[],path:[],partName:[],file:[],depth:[],length:0};for(const o of t){const t=o.split("/").filter((e=>e));let a="",i=null;for(let s=0;s<t.length;s++){const l=t[s];a?a+="/"+l:a=l;const c=n.get(a);if(void 0!==c){i=c;continue}const d=r.length++;r.prefix[d]=i,r.path[d]=a,r.partName[d]=l,r.depth[d]=s,r.file[d]=s+1===t.length?e.files[o]:null,n.set(a,d),i=d}}return r}(e))),Ql=e=>nt(Xl(e),"Attempted to view a profile from a zip, when there is no zip file loaded."),ec=qe(Ql,(function(e){if(!e)return 0;let t=0;for(let n=0;n<e.length;n++)t=Math.max(t,e.depth[n]);return t})),tc=qe(Ql,Za,((e,t)=>null===e?null:new Ca(e,t))),nc=e=>nt(tc(e),"Attempted to view a profile from a zip, when there is no zip file loaded."),rc=e=>e.app,oc=e=>rc(e).view,ac=e=>rc(e).urlSetupPhase,ic=e=>rc(e).hasZoomedViaMousewheel,sc=e=>rc(e).isSidebarOpenPerPanel[ui(e)],lc=e=>rc(e).panelLayoutGeneration,cc=e=>rc(e).lastVisibleThreadTabSlug,dc=e=>rc(e).trackThreadHeights,uc=e=>rc(e).isNewlyPublished,hc=e=>rc(e).experimental,pc=e=>rc(e).browserConnectionStatus,mc=qe(pc,(e=>"ESTABLISHED"===e.status?e.browserConnection:null)),fc=e=>hc(e).eventDelayTracks,gc=e=>hc(e).cpuGraphs,Ac=e=>hc(e).processCPUTracks,bc=e=>rc(e).isDragAndDropDragging,Cc=e=>rc(e).isDragAndDropOverlayRegistered,yc=e=>rc(e).currentProfileUploadedInformation,vc=qe(ii,(e=>{switch(e.type){case"active-tab":return 30;case"full":case"origins":return 50;default:throw Je(e,"Unhandled TimelineTrackOrganization")}})),wc=qe(ii,il,ul,yi,vi,dc,yl,si,vc,((e,t,n,r,o,a,i,s,l)=>{let c=20;switch(e.type){case"origins":return c+500;case"active-tab":{i.resources.length>0&&(c+=20);const{threadsKey:e}=i.mainTrack,t=a[e];if(void 0===t)return null;c+=t+1;for(let e=0;e<i.screenshots.length;e++)c+=l+1;if(s)for(const e of i.resources)switch(e.type){case"sub-frame":case"thread":{const{threadIndex:t}=e;if(null===t)c+=31;else{const e=a[t];if(void 0===e)return null;c+=e+20+1}}break;default:throw Je(e)}return c}case"full":{for(const[e,n]of t.entries())if(!r.has(e))switch(n.type){case"screenshots":c+=l+1;break;case"visual-progress":case"perceptual-visual-progress":case"contentful-visual-progress":c+=40;break;case"process":{const{mainThreadIndex:e}=n;if(null===e)c+=31;else{const t=a[e];if(void 0===t)return null;c+=t+1}break}default:throw Je(n)}const e=new Set;for(const n of r){const r=t[n];"process"===r.type&&e.add(r.pid)}for(const[t,r]of n)if(!e.has(t))for(const[e,n]of r.entries())if(!nt(o.get(t),"Could not look up the hidden local tracks from the given PID").has(e))switch(n.type){case"thread":{const e=a[n.threadIndex];if(void 0===e)return null;c+=e+1}break;case"network":c+=36;break;case"memory":case"event-delay":c+=41;break;case"ipc":case"process-cpu":case"power":case"marker":c+=26;break;default:throw Je(n)}return c}default:throw Je(e,"Unhandled TimelineTrackOrganization")}})),kc=qe(oc,Va,Kl,((e,t,n)=>{const r=e.phase,o=n.phase;return!("INITIALIZING"===r&&"none"!==t||"PROCESS_PROFILE_FROM_ZIP_FILE"===o)})),Ec=qe(ii,(e=>{switch(e.type){case"active-tab":return 0;case"full":case"origins":return In;default:throw Je(e,"Unhandled TimelineTrackOrganization")}})),xc=qe(rc,(e=>e.sidebarOpenCategories));var Sc=n(5733),Tc=n.n(Sc);function Bc(e,t,n){const r=e.get(t);return r?r.find(n):void 0}function _c(e,t,n){const r=e.get(t);return r?r.filter(n):[]}function Ic(e,t,n,r,o){const a=`${o.pid}:${o.tid}`,i=e.get(a);if(i)return i;const s=Wn();s.pid=`${o.pid}`,s.tid=a,s.processType="unknown",s.name="Chrome Thread";const l=Bc(n,"thread_name",(e=>e.pid===o.pid&&e.tid===o.tid));l&&(s.name=l.args.name,s.isMainThread=s.name.startsWith("Cr")&&s.name.endsWith("Main"));const c=Bc(n,"process_name",(e=>e.pid===o.pid));c&&(s.processName=c.args.name);const d=Bc(n,"process_labels",(e=>e.pid===o.pid));if(d){const e=d.args.labels;s.processName?s.processName=`${s.processName} (${e})`:s.processName=`Process ${o.pid} (${e})`}const u=Bc(n,"process_sort_index",(e=>e.pid===o.pid));let h=0;u&&(h=u.args.sort_index);const p=Bc(n,"thread_sort_index",(e=>e.pid===o.pid&&e.tid===o.tid));let m=0;p?m=p.args.sort_index:!l||"CrBrowserMain"!==l.args.name&&"CrGpuMain"!==l.args.name||(m=-1),r.threads.push(s);const f=new Map;f.set(void 0,null);const g={thread:s,nodeIdToStackId:f,funcKeyToFuncId:new Map,originToResourceIndex:new Map,lastSeenTime:o.ts/1e3,lastSampledTime:0,pid:o.pid,processSortIndex:h,threadSortIndex:m,tieBreakerIndex:t.size};return e.set(a,g),t.set(s,g),g}function Pc(e){switch(e.name){case"ProfileChunk":return e.args.data.timeDeltas;case"CpuProfile":return e.args.data.cpuProfile.timeDeltas;default:return}}function Nc(e){return new Promise((t=>{const n=new Image;n.src=e,n.addEventListener("load",(()=>{t({width:n.width,height:n.height})})),n.addEventListener("error",(()=>{t(null)}))}))}function Mc(e){const t=new Set([null]);for(let n=0;n<e.length;n++){if(!t.has(e.prefix[n]))throw new Error("The stack ordering is incorrect");t.add(n)}}class Fc{constructor(e){this._libs=void 0,this._libRanges=void 0,this._libs=e,this._libRanges=e.map((e=>{const t=BigInt(e.start);return{baseAddress:t-BigInt(e.offset),start:t,end:BigInt(e.end)}}))}locateAddress(e){const t=BigInt(e),n=this._libRanges;let r=0,o=n.length-1;for(;r<=o;){const e=(r+o)/2|0;if(t>=n[e].end)r=e+1;else{if(!(t<n[e].start)){const r=e,o=t-n[r].baseAddress;return{lib:this._libs[r],relativeAddress:Number(o)}}o=e-1}}return{lib:null,relativeAddress:parseInt(e,16)}}}function Rc(e,t,n){function r(t,n){if(t!==n)for(const r in e)if("length"!==r){const o=e[r],a=o[t];o[t]=o[n],o[n]=a}}return function e(o,a){if(o<a){const i=function(e,o,a){const i=t[e];let s=o,l=e;for(let e=o;e<=a;e++)n(t[e],i)<0&&(r(e,s),s===l&&(l=e),s++);return r(s,l),s}(o+a>>1,o,a);e(o,i-1),e(i+1,a)}}(0,e.length-1),e}const Dc=0;function Lc(e){if(e){const t=e.split(" -> ");return t[t.length-1]}return e}function Oc(e){for(const t of e.threads)for(let e=0;e<t.markers.length;e++){const n=t.markers.data[e],r="default"===t.processType?0:t.processStartupTime;if(n){if("stack"in n&&n.stack&&n.stack.samples.data.length>0){const e=n.stack,t=e.samples.data[0][e.samples.schema.stack],o=e.samples.data[0][e.samples.schema.time];null!==t&&(n.cause={time:o+r,stack:t})}delete n.stack}}}function Uc(e){for(const t of[{name:"Idle",color:"transparent",subcategories:["Other"]},{name:"Other",color:"grey",subcategories:["Other"]},{name:"Layout",color:"purple",subcategories:["Other"]},{name:"JavaScript",color:"yellow",subcategories:["Other"]},{name:"GC / CC",color:"orange",subcategories:["Other"]},{name:"Network",color:"lightblue",subcategories:["Other"]},{name:"Graphics",color:"green",subcategories:["Other"]},{name:"DOM",color:"blue",subcategories:["Other"]}])-1===e.meta.categories.findIndex((e=>e.name===t.name))&&e.meta.categories.push(t);const t=e.meta.categories.findIndex((e=>"Other"===e.name)),n=new Map([["DOMEvent","DOM"],["Navigation::DOMComplete","DOM"],["Navigation::DOMInteractive","DOM"],["Navigation::Start","DOM"],["UserTiming","DOM"],["CC","GC / CC"],["GCMajor","GC / CC"],["GCMinor","GC / CC"],["GCSlice","GC / CC"],["Paint","Graphics"],["VsyncTimestamp","Graphics"],["CompositorScreenshot","Graphics"],["JS allocation","JavaScript"],["Styles","Layout"],["nsRefreshDriver::Tick waiting for paint","Layout"],["Navigation","Network"],["Network","Network"],["firstLoadURI","Other"],["IPC","Other"],["Text","Other"],["MainThreadLongTask","Other"],["FileIO","Other"],["Log","Other"],["PreferenceRead","Other"],["BHR-detected hang","Other"],["MainThreadLongTask","Other"]].map((([t,n])=>{const r=e.meta.categories.findIndex((e=>e.name===n));if(-1===r)throw new Error("Could not find a category index to map to.");return[t,r]})));for(const r of e.threads){const{markers:e,stringArray:o}=r;e.category||(e.category=[]);for(let r=0;r<e.length&&"number"!=typeof e.category[r];r++){const a=e.name[r],i=e.data[r];let s=o[a];i&&i.type&&(s="tracing"===i.type?i.category:i.type);let l=n.get(s);void 0===l&&(l=t),e.category[r]=l}}}const zc={1:e=>{Kn("sorting thread markers",(()=>{for(const t of e.threads)Rc(t.markers,t.markers.time,((e,t)=>e-t))}));for(const t of e.threads)"processType"in t||("Content"===t.name?(t.processType="tab",t.name="GeckoMain"):"Plugin"===t.name?t.processType="plugin":t.processType="default")},2:e=>{for(const n of e.threads)for(const r of n.libs)"debugName"in r||(r.debugName=r.pdbName,r.path=r.name,r.name=r.debugName.endsWith(".pdb")?r.debugName.substr(0,r.debugName.length-4):r.debugName,r.arch="x86_64-gcc3"===(t=e.meta.abi)?"x86_64":t,delete r.pdbName,delete r.pdbAge,delete r.pdbSignature);var t},3:e=>{for(const t of e.threads)for(const e of t.libs)e.debugPath=e.debugPath||""},4:e=>{e.threads.forEach((e=>{const{funcTable:t,stringArray:n,resourceTable:r}=e,o=new Sn(n),a={length:0,type:[],name:[],lib:[],icon:[],addonId:[],host:[]};function i(e,t){const n=a.length++;a.type[n]=Gn.library,a.name[n]=e,a.lib[n]=t}function s(e,t){const n=a.length++;a.type[n]=Gn.webhost,a.name[n]=e,a.host[n]=t}function l(e){const t=a.length++;a.type[t]=Gn.url,a.name[t]=e}const c=new Map,d=new Map;for(let e=0;e<r.length;e++)if(r.type[e]===Gn.library)c.set(e,a.length),i(r.name[e],r.lib[e]);else if(r.type[e]===Gn.url){const t=o.getString(r.name[e]);let n,i,u=null;try{const e=new URL(t);if("http:"!==e.protocol&&"https:"!==e.protocol)throw new Error("not a webhost protocol");n=e.origin,i=e.host}catch(e){n=t,i=null}if(d.has(n))u=d.get(n);else{u=a.length,d.set(n,u);const e=o.indexForString(n);i?s(e,o.indexForString(i)):l(o.indexForString(t))}c.set(e,u)}t.fileName=[],t.lineNumber=[];for(let e=0;e<t.length;e++){const n=t.resource[e];c.has(n)&&(t.resource[e]=c.get(n));let r=null,a=null;if(t.isJS[e]){const n=o.getString(t.name[e]),i=/^(.*) \((.*):([0-9]+)\)$/.exec(n)||/^()(.*):([0-9]+)$/.exec(n);if(i){const n=Lc(i[2]);i[1]?t.name[e]=o.indexForString(i[1]):t.name[e]=o.indexForString(n),r=o.indexForString(n),a=0|Number(i[3])}}t.fileName[e]=r,t.lineNumber[e]=a}e.resourceTable=a,e.stringArray=o.serializeToArray()}))},5:e=>{for(const t of e.threads)delete t.samples.frameNumber},6:e=>{for(const t of e.threads){const{stringArray:e,markers:n}=t,r=new Sn(e),o=[];for(let e=0;e<n.length;e++){const t=r.getString(n.name[e]),a=n.data[e];o[e]="DOMEvent"===t?{type:"DOMEvent",startTime:a.startTime,endTime:a.endTime,eventType:a.type,phase:a.phase}:a}t.markers.data=o}},7:e=>{for(const t of e.threads)t.pausedRanges=[],t.processStartupTime=0,t.processShutdownTime=null,t.registerTime=0,t.unregisterTime=null},8:e=>{for(const t of e.threads){if("default"===t.processType)continue;const{stringArray:e,markers:n}=t,r=new Sn(e),o=[];for(let e=0;e<n.length;e++){const a=r.getString(n.name[e]),i=n.data[e];"DOMEvent"===a&&i.timeStamp?o[e]={type:"DOMEvent",startTime:i.startTime,endTime:i.endTime,timeStamp:i.timeStamp+t.processStartupTime,eventType:i.eventType,phase:i.phase}:o[e]=i}t.markers.data=o}},9:e=>{function t(e){const t=function(e){if("timings"in e&&!("status"in e.timings)){const t=e.timings;t.status="completed",Array.isArray(t.sices)&&(t.slices_list=t.slices,t.slices=t.slices.length),t.allocated_bytes=1024*t.allocated*1024}return e}(e),n=t.timings;switch(n.status){case"completed":{const{totals:e,...o}=n,a={...o,phase_times:r(e),mmu_20ms:n.mmu_20ms/100,mmu_50ms:n.mmu_50ms/100};return{type:"GCMajor",startTime:t.startTime,endTime:t.endTime,timings:a}}case"aborted":return{type:"GCMajor",startTime:t.startTime,endTime:t.endTime,timings:{status:"aborted"}};default:throw console.log("Unknown GCMajor status"),new Error("Unknown GCMajor status")}}function n(e){if("nursery"in e){if("status"in e.nursery)return"no collection"===e.nursery.status&&(e.nursery.status="nursery empty"),Object.assign(e);const t=Object.assign(e,{nursery:Object.assign(e.nursery,{status:"complete",bytes_used:e.nursery.nursery_bytes,new_capacity:e.nursery.new_nursery_bytes,phase_times:e.nursery.timings})});return delete t.nursery.nursery_bytes,delete t.nursery.new_nursery_bytes,delete t.nursery.timings,t}return e}function r(e){const t={};for(const n in e)t[n]=1e3*e[n];return t}for(const o of e.threads)for(let e=0;e<o.markers.length;e++){let a=o.markers.data[e];if(a){switch(a.type){case"GCMinor":a=n(a);break;case"GCSlice":a.timings&&a.timings.times&&(a.timings.phase_times=r(a.timings.times),delete a.timings.times);break;case"GCMajor":a=t(a)}o.markers.data[e]=a}}},10:e=>{Oc(e)},11:e=>{for(const t of e.threads){const{stringArray:e,markers:n}=t;if(0===n.length)continue;const r=new Sn(e),o=[];for(let e=0;e<n.length;e++){const t=r.getString(n.name[e]),a=n.data[e];"DOMEvent"===t&&(n.data[e]={type:"tracing",category:"DOMEvent",timeStamp:a.timeStamp,interval:"start",eventType:a.eventType,phase:a.phase},o.push({data:{type:"tracing",category:"DOMEvent",timeStamp:a.timeStamp,interval:"end",eventType:a.eventType,phase:a.phase},time:a.endTime,name:n.name[e]}))}if(o.length>0){o.sort(((e,t)=>e.time-t.time));const e={length:0,name:[],time:[],data:[]};let r=0,a=n.time[0],i=0,s=o[0].time;for(;r<n.length||i<o.length;)a<=s?(e.name.push(n.name[r]),e.time.push(n.time[r]),e.data.push(n.data[r]),e.length++,r++,a=r<n.length?n.time[r]:1/0):(e.name.push(o[i].name),e.time.push(o[i].time),e.data.push(o[i].data),e.length++,i++,s=i<o.length?o[i].time:1/0);t.markers=e}}},12:e=>{e.meta.categories=[{name:"Idle",color:"transparent"},{name:"Other",color:"grey"},{name:"JavaScript",color:"yellow"},{name:"Layout",color:"purple"},{name:"Graphics",color:"green"},{name:"DOM",color:"blue"},{name:"GC / CC",color:"orange"},{name:"Network",color:"lightblue"}];const t={16:1,32:3,64:2,128:6,256:6,512:7,1024:4,2048:1,4096:1},n=new Map([["-[GeckoNSApplication nextEventMatchingMask:untilDate:inMode:dequeue:]",0],["base::MessagePumpDefault::Run(base::MessagePump::Delegate*)",0],["mozilla::widget::WinUtils::WaitForMessage(unsigned long)",0],["mozilla::ThreadEventQueue<mozilla::PrioritizedEventQueue<mozilla::LabeledEventQueue> >::GetEvent(bool,mozilla::EventPriority *)",0],["mozilla::ThreadEventQueue<mozilla::PrioritizedEventQueue<mozilla::EventQueue> >::GetEvent(bool,mozilla::EventPriority *)",0],["mozilla::ThreadEventQueue<mozilla::EventQueue>::GetEvent(bool,mozilla::EventPriority *)",0],["mozilla::layers::PaintThread::AsyncPaintContents(mozilla::layers::CompositorBridgeChild *,mozilla::layers::CapturedPaintState *,bool (*)(mozilla::layers::CapturedPaintState *))",4],["PresShell::DoFlushPendingNotifications InterruptibleLayout",3],["nsRefreshDriver::Tick",3],["nsLayoutUtils::GetFrameForPoint",3],["nsAppShell::ProcessGeckoEvents",1],["PollWrapper(_GPollFD*, unsigned int, int)",0],["mozilla::image::DecodePoolImpl::PopWorkLocked(bool)",0],["nsCCUncollectableMarker::Observe(nsISupports*, char const*, char16_t const*)",6],["g_main_context_dispatch",1],["Events::ProcessGeckoEvents",1],["widget::ChildView::drawUsingOpenGL",1],["nsContentSink::StartLayout(bool)",3],["Paint::PresShell::Paint",4],["JS::EvaluateString",2],["js::RunScript",2]]),r=new Map([["PresShell::DoFlushPendingNotifications",3],["PresShell::DoReflow",3],["layout::DoReflow",3],["JS::Compile",2]]);function o(e){const t=n.get(e);if(void 0!==t)return t;const o=r.get(function(e){const t=e.indexOf(" ");return-1===t?e:e.substr(0,t)}(e));return o}const a=/^(get |set )?\w+(\.\w+| constructor)$/;for(const n of e.threads){const{frameTable:e,funcTable:r,stringArray:i}=n,s=new Sn(i);for(let n=0;n<e.length;n++){const i=e.func[n],l=s.getString(r.name[i]),c=o(l);if(void 0!==c)e.category[n]=c;else{const o=e.category[n];if(null!==o)if(!r.isJS[i]&&a.test(l))e.category[n]=5;else{const r=o in t?t[o]:1;e.category[n]=r}}}}},13:e=>{const{meta:t,threads:n}=e,r=t.categories.findIndex((e=>"grey"===e.color));for(const e of n){const{stackTable:t,frameTable:n}=e;t.category=new Array(t.length);for(let e=0;e<t.length;e++){const o=t.frame[e],a=n.category[o];if(null!==a)t.category[e]=a;else{const n=t.prefix[e];t.category[e]=null!==n?t.category[n]:r}}}},14:e=>{const{threads:t}=e;for(let e=0;e<t.length;e++){const n=t[e];null!==n.pid&&void 0!==n.pid||(n.pid=`Unknown Process ${e+1}`)}},15:e=>{for(const t of e.threads){t.frameTable.column=new Array(t.frameTable.length);for(let e=0;e<t.frameTable.length;e++)t.frameTable.column[e]=null}},16:e=>{for(const t of e.threads){const{stringArray:e,markers:n}=t,r=new Sn(e),o=[];for(let e=0;e<n.length;e++){const t=r.getString(n.name[e]),a=n.data[e];switch(t){case"VsyncTimestamp":o[e]={type:"VsyncTimestamp",vsync:a.vsync};break;case"LayerTranslation":o[e]={type:"LayerTranslation",layer:a.layer,x:a.x,y:a.y};break;case"CompositorScreenshot":o[e]={type:"CompositorScreenshot",url:a.url,windowID:a.windowID,windowWidth:a.windowWidth,windowHeight:a.windowHeight};break;default:o[e]=a}}t.markers.data=o}},17:e=>{const t=/^(get |set )?\w+(\.\w+| constructor)$/;for(const n of e.threads){const{funcTable:e,stringArray:r}=n,o=new Sn(r);e.relevantForJS=new Array(e.length);for(let n=0;n<e.length;n++){const r=o.getString(e.name[n]);r.startsWith("AutoEntryScript ")?(e.name[n]=o.indexForString(r.substring("AutoEntryScript ".length)),e.relevantForJS[n]=!0):e.relevantForJS[n]=t.test(r)}n.stringArray=o.serializeToArray()}},18:e=>{for(const t of e.threads){const{funcTable:e,stringArray:n}=t,r=new Sn(n);e.columnNumber=[];for(let n=0;n<t.funcTable.length;n++)if(e.columnNumber[n]=null,e.isJS[n]){const t=e.fileName[n];if(null!==t){const o=r.getString(t),a=/^(.*):([0-9]+)$/.exec(o);a&&(e.columnNumber[n]=e.lineNumber[n],e.fileName[n]=r.indexForString(a[1]),e.lineNumber[n]=parseInt(a[2],10))}}t.stringArray=r.serializeToArray()}},19:e=>{for(const t of e.threads){const e=t.markers,n=t.processStartupTime;for(let r=0;r<t.markers.length;r++){const t=e.data[r];t&&"type"in t&&"Network"===t.type&&(t.domainLookupStart&&(t.domainLookupStart+=n),t.domainLookupEnd&&(t.domainLookupEnd+=n),t.connectStart&&(t.connectStart+=n),t.tcpConnectEnd&&(t.tcpConnectEnd+=n),t.secureConnectionStart&&(t.secureConnectionStart+=n),t.connectEnd&&(t.connectEnd+=n),t.requestStart&&(t.requestStart+=n),t.responseStart&&(t.responseStart+=n),t.responseEnd&&(t.responseEnd+=n))}}},20:e=>{},21:e=>{Oc(e)},22:e=>{for(const t of e.threads){if(-1===t.stringArray.indexOf("DiskIO"))continue;let e=t.stringArray.indexOf("FileIO");-1===e&&(e=t.stringArray.length,t.stringArray.push("FileIO"));for(let n=0;n<t.markers.length;n++){const r=t.markers.data[n];r&&"DiskIO"===r.type&&(r.type="FileIO",t.markers.name[n]=e)}}},23:e=>{for(const t of e.meta.categories)t.subcategories=["Other"];for(const t of e.threads){const{frameTable:e,stackTable:n}=t;e.subcategory=e.category.map((e=>null===e?null:0)),n.subcategory=n.category.map((e=>null===e?null:0))}},24:e=>{Uc(e)},25:e=>{if(e.pages&&e.pages.length>0){const t=new Map,n=new Map;let r=1,o=1;for(const a of e.pages){t.set(`d${a.docshellId}h${a.historyId}`,o);let e=n.get(a.docshellId);e||(e=r++,n.set(a.docshellId,e)),a.browsingContextID=e,a.innerWindowID=o,a.embedderInnerWindowID=0,o++,delete a.docshellId,delete a.historyId,delete a.isSubFrame}for(const n of e.threads){const{markers:e}=n;e.data=e.data.map((e=>{if(e&&void 0!==e.docShellId&&void 0!==e.docshellHistoryId){const n=t.get(`d${e.docShellId}h${e.docshellHistoryId}`);void 0===n?console.error("No page found with given docShellId and historyId"):e.innerWindowID=n,delete e.docShellId,delete e.docshellHistoryId}return e}))}}},26:e=>{if(e.counters&&e.counters.length>0)for(const t of e.counters)t.sampleGroups=[t.sampleGroups]},27:e=>{for(const t of e.threads){const{frameTable:e}=t;e.innerWindowID=new Array(e.length).fill(0)}},28:e=>{for(const t of e.threads){const{markers:n}=t;if(null===n.category[0])return void Uc(e)}},29:e=>{for(const t of e.threads)t.samples.duration&&(t.samples.weightType="samples",t.samples.weight=t.samples.duration,delete t.samples.duration),t.nativeAllocations&&(t.nativeAllocations.weightType="bytes",t.nativeAllocations.weight=t.nativeAllocations.duration,delete t.nativeAllocations.duration),t.jsAllocations&&(t.jsAllocations.weightType="bytes",t.jsAllocations.weight=t.jsAllocations.duration,delete t.jsAllocations.duration),t.samples.weight||(t.samples.weight=null),t.samples.weightType||(t.samples.weightType="samples")},30:e=>{for(const{markers:t}of e.threads){const e=t.time,n=[],r=[],o=[];delete t.time,t.startTime=n,t.endTime=r,t.phase=o;for(let a=0;a<t.length;a++){const i=t.data[a],s=e[a];let l=s,c=null,d=0;if(i){const{startTime:e,endTime:t,type:n,interval:r}=i;"tracing"===n?"start"===r?(l=s,c=null,d=2):(l=null,c=s,d=3):e!==t&&"number"==typeof e&&"number"==typeof t&&(l=e,c=t,d=1),"IPC"!==i.type&&"Network"!==i.type&&(delete i.startTime,delete i.endTime)}n.push(l),r.push(c),o.push(d)}}},31:e=>{for(const{markers:t}of e.threads)for(let e=0;e<t.length;e++){const n=t.data[e];if(n){const{type:r,interval:o}=n;"tracing"===r&&"start"!==o&&"end"!==o&&(t.phase[e]=0,t.startTime[e]=t.endTime[e],t.endTime[e]=null)}}},32:e=>{for(const{markers:t}of e.threads)for(let e=0;e<t.length;e++){const n=t.data[e];if(n&&"tracing"===n.type&&"DOMEvent"===n.category){const r=t.startTime[e];n.type="DOMEvent",void 0!==n.timeStamp&&null!==r&&(n.latency=r-n.timeStamp),delete n.timeStamp}}},33:e=>{e.meta.markerSchema=[{name:"GCMajor",display:["marker-chart","marker-table","timeline-memory"],data:[]},{name:"GCMinor",display:["marker-chart","marker-table","timeline-memory"],data:[]},{name:"GCSlice",display:["marker-chart","marker-table","timeline-memory"],data:[]},{name:"CC",tooltipLabel:"Cycle Collect",display:["marker-chart","marker-table","timeline-memory"],data:[]},{name:"FileIO",display:["marker-chart","marker-table"],data:[{key:"operation",label:"Operation",format:"string",searchable:!0},{key:"source",label:"Source",format:"string",searchable:!0},{key:"filename",label:"Filename",format:"file-path",searchable:!0}]},{name:"MediaSample",display:["marker-chart","marker-table"],data:[{key:"sampleStartTimeUs",label:"Sample start time",format:"microseconds"},{key:"sampleEndTimeUs",label:"Sample end time",format:"microseconds"}]},{name:"Styles",display:["marker-chart","marker-table","timeline-overview"],data:[{key:"elementsTraversed",label:"Elements traversed",format:"integer"},{key:"elementsStyled",label:"Elements styled",format:"integer"},{key:"elementsMatched",label:"Elements matched",format:"integer"},{key:"stylesShared",label:"Styles shared",format:"integer"},{key:"stylesReused",label:"Styles reused",format:"integer"}]},{name:"PreferenceRead",display:["marker-chart","marker-table"],data:[{key:"prefName",label:"Name",format:"string"},{key:"prefKind",label:"Kind",format:"string"},{key:"prefType",label:"Type",format:"string"},{key:"prefValue",label:"Value",format:"string"}]},{name:"UserTiming",tooltipLabel:"{marker.data.name}",chartLabel:"{marker.data.name}",tableLabel:"{marker.data.name}",display:["marker-chart","marker-table"],data:[{label:"Marker",value:"UserTiming"},{key:"entryType",label:"Entry Type",format:"string"},{label:"Description",value:"UserTiming is created using the DOM APIs performance.mark() and performance.measure()."}]},{name:"Text",tableLabel:"{marker.name} — {marker.data.name}",chartLabel:"{marker.name} — {marker.data.name}",display:["marker-chart","marker-table"],data:[{key:"name",label:"Details",format:"string"}]},{name:"Log",display:["marker-table"],tableLabel:"({marker.data.module}) {marker.data.name}",data:[{key:"module",label:"Module",format:"string"},{key:"name",label:"Name",format:"string"}]},{name:"DOMEvent",tooltipLabel:"{marker.data.eventType} — DOMEvent",tableLabel:"{marker.data.eventType}",chartLabel:"{marker.data.eventType}",display:["marker-chart","marker-table","timeline-overview"],data:[{key:"latency",label:"Latency",format:"duration"}]},{name:"Paint",display:["marker-chart","marker-table","timeline-overview"],data:[{key:"category",label:"Type",format:"string"}]},{name:"Navigation",display:["marker-chart","marker-table","timeline-overview"],data:[{key:"category",label:"Type",format:"string"}]},{name:"Layout",display:["marker-chart","marker-table","timeline-overview"],data:[{key:"category",label:"Type",format:"string"}]},{name:"IPC",tooltipLabel:"IPC — {marker.data.niceDirection}",tableLabel:"{marker.name} — {marker.data.messageType} — {marker.data.niceDirection}",chartLabel:"{marker.data.messageType}",display:["marker-chart","marker-table","timeline-ipc"],data:[{key:"messageType",label:"Type",format:"string"},{key:"sync",label:"Sync",format:"string"},{key:"sendThreadName",label:"From",format:"string"},{key:"recvThreadName",label:"To",format:"string"}]},{name:"RefreshDriverTick",display:["marker-chart","marker-table","timeline-overview"],data:[{key:"name",label:"Tick Reasons",format:"string"}]},{name:"Network",display:["marker-table"],data:[]}]},34:e=>{for(const t of e.threads){const e=t.processStartupTime,{markers:n}=t;for(const t of n.data)t&&"tracing"!==t.type&&"Styles"!==t.type&&t.cause&&void 0!==t.cause.time&&(t.cause.time+=e)}},35:e=>{if(e.meta.configuration&&e.meta.configuration.activeBrowsingContextID&&(e.meta.configuration.activeTabID=e.meta.configuration.activeBrowsingContextID,delete e.meta.configuration.activeBrowsingContextID),e.pages&&e.pages.length>0)for(const t of e.pages)t.tabID=t.browsingContextID,delete t.browsingContextID},36:e=>{for(const t of e.threads){const e={libIndex:[],address:[],name:[],length:0},{frameTable:n,funcTable:r,resourceTable:o}=t,a=new Map;for(let t=0;t<r.length;t++){const n=r.resource[t];if(-1===n)continue;if(o.type[n]!==Gn.library)continue;const i=o.lib[n];if(null==i||-1===i)continue;const s=r.address[t],l=e.length;e.libIndex.push(i),e.address.push(-1===s?null:s),e.name.push(r.name[t]),e.length++,a.set(t,l)}delete r.address,n.nativeSymbol=n.func.map((e=>a.get(e)??null)),t.nativeSymbols=e}},37:e=>{for(const t of e.threads)"Java Main Thread"===t.name&&(t.name="AndroidUI (JVM)")},38:e=>{for(const t of e.threads){const e=new Set,n=new Set,{samples:r,markers:o,jsAllocations:a,nativeAllocations:i,stackTable:s,frameTable:l}=t;for(let t=0;t<r.length;t++){const n=r.stack[t];null!==n&&e.add(n)}for(let e=0;e<o.length;e++){const t=o.data[e];if(t&&t.cause){const e=t.cause.stack;null!==e&&n.add(e)}}if(void 0!==a)for(let e=0;e<a.length;e++){const t=a.stack[e];null!==t&&n.add(t)}if(void 0!==i)for(let e=0;e<i.length;e++){const t=i.stack[e];null!==t&&n.add(t)}const c=new Uint32Array(l.length),d=new Set;for(const t of e){const e=s.frame[t];c[e]=e,-1!==l.address[e]&&d.add(e)}const u=new Map,h=new Set;for(const e of n){const t=s.frame[e],n=l.address[t];-1!==n&&u.set(t,n)}for(let e=0;e<s.length;e++){const t=s.prefix[e];if(null===t||h.has(t))continue;h.add(t);const n=s.frame[t],r=l.address[n];-1!==r&&u.set(n,r)}if(0===d.size&&0===u.size)continue;for(const[e,t]of u){if(d.has(e)){const n=l.length;l.address.push(t),l.category.push(l.category[e]),l.subcategory.push(l.subcategory[e]),l.func.push(l.func[e]),l.nativeSymbol.push(l.nativeSymbol[e]),l.innerWindowID.push(l.innerWindowID[e]),l.implementation.push(l.implementation[e]),l.line.push(l.line[e]),l.column.push(l.column[e]),l.optimizations.push(l.optimizations[e]),l.length++,c[e]=n}l.address[e]=t-1}const p={frame:[],prefix:[],category:[],subcategory:[],length:0},m=new Map,f=new Map,g=new Uint32Array(s.length);for(let t=0;t<s.length;t++){const r=s.frame[t],o=s.category[t],a=s.subcategory[t],i=s.prefix[t],l=null===i?null:g[i];if(h.has(t)||n.has(t)){const e=p.length;p.frame.push(r),p.category.push(o),p.subcategory.push(a),p.prefix.push(l),p.length++,g[t]=e,f.set(t,e)}if(e.has(t)){const e=c[r],n=p.length;p.frame.push(e),p.category.push(o),p.subcategory.push(a),p.prefix.push(l),p.length++,m.set(t,n)}}t.stackTable=p,r.stack=r.stack.map((e=>null===e?null:m.get(e)??null)),o.data.forEach((e=>{e&&"cause"in e&&e.cause&&(e.cause.stack=f.get(e.cause.stack))})),void 0!==a&&(a.stack=a.stack.map((e=>null===e?null:f.get(e)??null))),void 0!==i&&(i.stack=i.stack.map((e=>null===e?null:f.get(e)??null)))}},39:e=>{for(const t of e.threads)t.samples.threadCPUDelta&&(t.samples.threadCPUDelta.some((e=>null!==e))||delete t.samples.threadCPUDelta)},40:e=>{for(const t of e.threads)t.frameTable.inlineDepth=Array(t.frameTable.length).fill(0)},41:e=>{const t=[],n=new Map;for(const r of e.threads){const{libs:e,resourceTable:o,nativeSymbols:a,stringTable:i}=r,s=new Map;delete r.libs;const l=r=>{let o=s.get(r);if(void 0===o){const a=e[r],{debugName:i,breakpadId:l}=a,c=`${i}/${l}`;if(o=n.get(c),void 0===o){o=t.length;const{arch:e,name:r,path:s,debugPath:d,codeId:u}=a;t.push({arch:e,name:r,path:s,debugName:i,debugPath:d,breakpadId:l,codeId:u??null}),n.set(c,o)}s.set(r,o)}return o};for(let e=0;e<o.length;e++){const t=o.name[e];-1!==t&&null!=t||(o.name[e]=i.indexForString("<unnamed resource>"));const n=o.host[e];-1!==n&&void 0!==n||(o.host[e]=null);const r=o.lib[e];if(null==r||-1===r){o.lib[e]=null;continue}const a=l(r);o.lib[e]=a}for(let e=0;e<a.length;e++){const t=l(a.libIndex[e]);a.libIndex[e]=t}}e.libs=t},42:e=>{for(const t of e.threads){const{nativeSymbols:e}=t;e.functionSize=Array(e.length).fill(null)}},43:e=>{},44:e=>{for(const t of e.meta.markerSchema){let e;switch(t.name){case"FileIO":t.data.push({key:"threadId",label:"Thread ID",format:"string",searchable:!0}),e=[];break;case"Log":e=["name","module"];break;case"DOMEvent":t.data.push({key:"eventType",label:"Event Type",format:"string",searchable:!0}),e=["target"];break;case"TraceEvent":e=["name1","name2","val1","val2"];break;default:e=["name","category"]}for(const n of t.data)e.includes(n.key)&&(n.searchable=!0)}},45:e=>{for(const t of e.threads)delete t.frameTable.optimizations},46:e=>{for(const t of e.threads)t.isMainThread="GeckoMain"===t.name||"string"==typeof t.pid||String(t.pid)===t.tid},47:e=>{for(const t of e.threads){t.pid=`${t.pid}`;for(const e of t.markers.data)e&&"IPC"===e.type&&(e.otherPid=`${e.otherPid}`)}if(e.counters)for(const t of e.counters)t.pid=`${t.pid}`;if(e.profilerOverhead)for(const t of e.profilerOverhead)t.pid=`${t.pid}`}},Gc=0;function Wc(e){if(e&&"object"==typeof e&&e.meta&&"object"==typeof e.meta)return e.meta;throw new Error("Could not find the meta property on a profile.")}const Hc={1:()=>{throw new Error("Gecko profiles without version numbers are very old and no conversion code has been written for that version of the profile format.")},2:()=>{throw new Error("Gecko profile version 1 is very old and no conversion code has been written for that version of the profile format.")},3:()=>{throw new Error("Gecko profile version 2 is very old and no conversion code has been written for that version of the profile format.")},4:e=>{!function e(t){t.libs=JSON.parse(t.libs).map((e=>{if("breakpadId"in e)e.debugName=e.name.substr(e.name.lastIndexOf("/")+1);else{e.debugName=e.pdbName;const t=e.pdbSignature.replace(/[{}-]/g,"").toUpperCase();e.breakpadId=t+e.pdbAge}var n;return delete e.pdbName,delete e.pdbAge,delete e.pdbSignature,e.path=e.name,e.name=e.debugName.endsWith(".pdb")?e.debugName.substr(0,e.debugName.length-4):e.debugName,e.arch="x86_64-gcc3"===(n=t.meta.abi)?"x86_64":n,e.debugPath="",e})).sort(((e,t)=>e.start-t.start));for(let n=0;n<t.threads.length;n++)if("string"==typeof t.threads[n]){const r=JSON.parse(t.threads[n]);e(r),t.threads[n]=JSON.stringify(r)}else{const e=t.threads[n];"processType"in e||("Content"===e.name?(e.processType="tab",e.name="GeckoMain"):"Plugin"===e.name?e.processType="plugin":e.processType="default")}t.meta.version=4}(e)},5:e=>{!function e(t){const n=t.threads.map((t=>{if("string"==typeof t){const n=JSON.parse(t);return e(n),{type:"process",data:n}}return{type:"thread",data:t}}));t.processes=n.filter((e=>"process"===e.type)).map((e=>e.data)),t.threads=n.filter((e=>"thread"===e.type)).map((e=>e.data)),t.meta.version=5}(e)},6:e=>{!function e(t){for(const e of t.threads){delete e.samples.schema.frameNumber;for(let t=0;t<e.samples.data.length;t++)e.samples.data[t].splice(5)}for(const n of t.processes)e(n)}(e)},7:e=>{!function e(t){for(const e of t.threads){const t=new Sn(e.stringTable),n=e.markers.schema.name,r=e.markers.schema.data;for(let o=0;o<e.markers.data.length;o++)if("DOMEvent"===t.getString(e.markers.data[o][n])){const t=e.markers.data[o][r];t.eventType=t.type,t.type="DOMEvent"}}for(const n of t.processes)e(n)}(e)},8:e=>{!function e(t){t.pausedRanges=[],t.meta.shutdownTime=null;for(const e of t.threads)e.registerTime=0,e.unregisterTime=null;for(const n of t.processes)e(n)}(e)},9:e=>{function t(e){if("timings"in e&&!("status"in e.timings)){const t=e.timings;t.status="completed",Array.isArray(t.sices)&&(t.slices_list=t.slices,t.slices=t.slices.length),t.allocated_bytes=1024*t.allocated*1024}return e}function n(e){if("nursery"in e){if("status"in e.nursery)return"no collection"===e.nursery.status&&(e.nursery.status="nursery empty"),Object.assign(e);const t=Object.assign(e,{nursery:Object.assign(e.nursery,{status:"complete",bytes_used:e.nursery.nursery_bytes,new_capacity:e.nursery.new_nursery_bytes,phase_times:e.nursery.timings})});return delete t.nursery.nursery_bytes,delete t.nursery.new_nursery_bytes,delete t.nursery.timings,t}return e}!function e(r){for(const e of r.threads){const r=e.markers.schema.data;for(let o=0;o<e.markers.data.length;o++){let a=e.markers.data[o][r];if(a){switch(a.type){case"GCMinor":a=n(a);break;case"GCMajor":a=t(a)}e.markers.data[o][r]=a}}}for(const t of r.processes)e(t)}(e)},10:e=>{!function e(t){for(const e of t.threads){const{markers:t}=e,n=new Sn(e.stringTable),r=t.schema.name,o=t.schema.data,a=t.schema.time,i=[];for(let e=0;e<t.data.length;e++){const s=t.data[e],l=n.getString(s[r]),c=s[o];if("DOMEvent"===l&&"tracing"!==c.type){const e=[];e[o]={type:"tracing",category:"DOMEvent",timeStamp:c.timeStamp,interval:"end",eventType:c.eventType,phase:c.phase},e[a]=c.endTime,e[r]=s[r],i.push(e),s[a]=c.startTime,s[o]={type:"tracing",category:"DOMEvent",timeStamp:c.timeStamp,interval:"start",eventType:c.eventType,phase:c.phase}}}t.data=t.data.concat(i)}for(const n of t.processes)e(n)}(e)},11:e=>{let t=0;!function e(n){for(const e of n.threads)null!==e.pid&&void 0!==e.pid||(e.pid="Unknown Process "+ ++t);for(const t of n.processes)e(t)}(e);const n=[{name:"Idle",color:"transparent"},{name:"Other",color:"grey"},{name:"JavaScript",color:"yellow"},{name:"Layout",color:"purple"},{name:"Graphics",color:"green"},{name:"DOM",color:"blue"},{name:"GC / CC",color:"orange"},{name:"Network",color:"lightblue"}],r={16:1,32:3,64:2,128:6,256:6,512:7,1024:4,2048:1,4096:1};!function e(t){t.meta.categories=n;for(const e of t.threads){const t=e.frameTable.schema.category;for(const n of e.frameTable.data)t in n&&null!==n[t]&&(n[t]in r?n[t]=r[n[t]]:n[t]=1)}for(const n of t.processes)e(n)}(e)},12:e=>{!function e(t){for(const e of t.threads){const t=e.frameTable.schema.category;for(const n of e.frameTable.data)n.hasOwnProperty(t)&&(n[5]=n[4],n[4]=null);e.frameTable.schema.category=5,e.frameTable.schema.column=4}for(const n of t.processes)e(n)}(e)},13:e=>{!function e(t){for(const e of t.threads){const t=new Sn(e.stringTable),n=e.markers.schema.name,r=e.markers.schema.data;for(let o=0;o<e.markers.data.length;o++){const a=t.getString(e.markers.data[o][n]),i=e.markers.data[o][r];switch(a){case"VsyncTimestamp":case"LayerTranslation":case"CompositorScreenshot":i.type=a,delete i.category}}}for(const n of t.processes)e(n)}(e)},14:e=>{const t=/^(get |set )?\w+(\.\w+| constructor)$/;!function e(n){for(const e of n.threads){e.frameTable.schema={location:0,relevantForJS:1,implementation:2,optimizations:3,line:4,column:5,category:6};const n=e.frameTable.schema.location,r=e.frameTable.schema.relevantForJS,o=new Sn(e.stringTable);for(let a=0;a<e.frameTable.data.length;a++){const i=e.frameTable.data[a];i.splice(r,0,!1);const s=o.getString(i[n]);s.startsWith("AutoEntryScript ")?(i[r]=!0,i[n]=o.indexForString(s.substring("AutoEntryScript ".length))):i[r]=t.test(s)}e.stringTable=o.serializeToArray()}for(const t of n.processes)e(t)}(e)},15:e=>{!function e(t){for(const e of t.threads){if(-1===e.stringTable.indexOf("DiskIO"))continue;let t=e.stringTable.indexOf("FileIO");-1===t&&(t=e.stringTable.length,e.stringTable.push("FileIO"));const n=e.markers.schema.name,r=e.markers.schema.data;for(let o=0;o<e.markers.data.length;o++){const a=e.markers.data[o],i=a[r];i&&"DiskIO"===i.type&&(a[n]=t,i.type="FileIO")}}for(const n of t.processes)e(n)}(e)},16:e=>{!function e(t){for(const e of t.meta.categories)e.subcategories=["Other"];for(const e of t.threads){const{frameTable:t}=e;t.schema.subcategory=7;for(let e=0;e<t.data.length;e++)t.data[e][t.schema.category]&&(t.data[e][t.schema.subcategory]=0)}for(const n of t.processes)e(n)}(e);for(const t of[{name:"Idle",color:"transparent",subcategories:["Other"]},{name:"Other",color:"grey",subcategories:["Other"]},{name:"Layout",color:"purple",subcategories:["Other"]},{name:"JavaScript",color:"yellow",subcategories:["Other"]},{name:"GC / CC",color:"orange",subcategories:["Other"]},{name:"Network",color:"lightblue",subcategories:["Other"]},{name:"Graphics",color:"green",subcategories:["Other"]},{name:"DOM",color:"blue",subcategories:["Other"]}])-1===e.meta.categories.findIndex((e=>e.name===t.name))&&e.meta.categories.push(t);const t=e.meta.categories.findIndex((e=>"Other"===e.name)),n=new Map([["DOMEvent","DOM"],["Navigation::DOMComplete","DOM"],["Navigation::DOMInteractive","DOM"],["Navigation::Start","DOM"],["UserTiming","DOM"],["CC","GC / CC"],["GCMajor","GC / CC"],["GCMinor","GC / CC"],["GCSlice","GC / CC"],["Paint","Graphics"],["VsyncTimestamp","Graphics"],["CompositorScreenshot","Graphics"],["JS allocation","JavaScript"],["Styles","Layout"],["nsRefreshDriver::Tick waiting for paint","Layout"],["Navigation","Network"],["Network","Network"],["firstLoadURI","Other"],["IPC","Other"],["Text","Other"],["MainThreadLongTask","Other"],["FileIO","Other"],["Log","Other"],["PreferenceRead","Other"],["BHR-detected hang","Other"],["MainThreadLongTask","Other"]].map((([t,n])=>{const r=e.meta.categories.findIndex((e=>e.name===n));if(-1===r)throw new Error("Could not find a category index to map to.");return[t,r]})));!function e(r){for(const e of r.threads){const{markers:r,stringTable:o}=e;if(void 0!==r.schema.category)return;r.schema.category=3;for(let e=0;e<r.data.length;e++){const a=r.data[e][r.schema.name],i=r.data[e][r.schema.data];let s=o[a];i&&i.type&&(s="tracing"===i.type?i.category:i.type);let l=n.get(s);void 0===l&&(l=t),r.data[e][r.schema.category]=l}}for(const t of r.processes)e(t)}(e)},17:e=>{let t=1,n=1;!function e(r){if(r.pages&&r.pages.length>0){const e=new Map,o=new Map;for(const a of r.pages){e.set(`d${a.docshellId}h${a.historyId}`,n);let r=o.get(a.docshellId);r||(r=t++,o.set(a.docshellId,r)),a.browsingContextID=r,a.innerWindowID=n,a.embedderInnerWindowID=0,n++,delete a.docshellId,delete a.historyId,delete a.isSubFrame}for(const t of r.threads){const{markers:n}=t,r=n.schema.data;for(let n=0;n<t.markers.data.length;n++){const o=t.markers.data[n][r];if(o&&void 0!==o.docShellId&&void 0!==o.docshellHistoryId){const t=e.get(`d${o.docShellId}h${o.docshellHistoryId}`);void 0===t?console.error("No page found with given docShellId and historyId"):o.innerWindowID=t,delete o.docShellId,delete o.docshellHistoryId}}}}for(const t of r.processes)e(t)}(e)},18:e=>{!function e(t){if(t.counters&&t.counters.length>0)for(const e of t.counters)"samples"in e.sample_groups?e.sample_groups=[e.sample_groups]:e.sample_groups=[];for(const n of t.processes)e(n)}(e)},19:e=>{!function e(t){for(const e of t.threads){const{frameTable:t}=e;t.schema={location:0,relevantForJS:1,innerWindowID:2,implementation:3,optimizations:4,line:5,column:6,category:7,subcategory:8};for(let e=0;e<t.data.length;e++){const n=t.schema.innerWindowID;t.data[e].splice(n,0,0)}}for(const n of t.processes)e(n)}(e)},20:e=>{!function e(t){for(const e of t.threads){const{markers:t}=e,n=t.schema,r={name:0,startTime:1,endTime:2,phase:3,category:4,data:5};t.schema=r;for(let e=0;e<t.data.length;e++){const o=t.data[e],a=o[n.name],i=o[n.time],s=o[n.category],l=o[n.data];let c=i,d=null,u=0;if(l){const{startTime:e,endTime:t,type:n,interval:r}=l;"tracing"===n?"start"===r?(c=i,d=null,u=2):"end"===r&&(c=null,d=i,u=3):e!==t&&"number"==typeof e&&"number"==typeof t&&(c=e,d=t,u=1),"IPC"!==l.type&&"Network"!==l.type&&(delete l.startTime,delete l.endTime)}const h=[];h[r.name]=a,h[r.startTime]=c,h[r.endTime]=d,h[r.phase]=u,h[r.category]=s,h[r.data]=l,t.data[e]=h}}for(const n of t.processes)e(n)}(e)},21:e=>{!function e(t){for(const e of t.threads){const{markers:t}=e;for(let e=0;e<t.data.length;e++){const n=t.data[e],r=n[t.schema.data];if(r&&"tracing"===r.type&&"DOMEvent"===r.category){const e=n[t.schema.startTime];r.type="DOMEvent",void 0!==r.timeStamp&&(r.latency=e-r.timeStamp),delete r.timeStamp}}}for(const n of t.processes)e(n)}(e)},22:e=>{const t=e;t.meta.markerSchema=[{name:"GCMajor",display:["marker-chart","marker-table","timeline-memory"],data:[]},{name:"GCMinor",display:["marker-chart","marker-table","timeline-memory"],data:[]},{name:"GCSlice",display:["marker-chart","marker-table","timeline-memory"],data:[]},{name:"CC",tooltipLabel:"Cycle Collect",display:["marker-chart","marker-table","timeline-memory"],data:[]},{name:"FileIO",display:["marker-chart","marker-table"],data:[{key:"operation",label:"Operation",format:"string",searchable:!0},{key:"source",label:"Source",format:"string",searchable:!0},{key:"filename",label:"Filename",format:"file-path",searchable:!0}]},{name:"MediaSample",display:["marker-chart","marker-table"],data:[{key:"sampleStartTimeUs",label:"Sample start time",format:"microseconds"},{key:"sampleEndTimeUs",label:"Sample end time",format:"microseconds"}]},{name:"Styles",display:["marker-chart","marker-table","timeline-overview"],data:[{key:"elementsTraversed",label:"Elements traversed",format:"integer"},{key:"elementsStyled",label:"Elements styled",format:"integer"},{key:"elementsMatched",label:"Elements matched",format:"integer"},{key:"stylesShared",label:"Styles shared",format:"integer"},{key:"stylesReused",label:"Styles reused",format:"integer"}]},{name:"PreferenceRead",display:["marker-chart","marker-table"],data:[{key:"prefName",label:"Name",format:"string"},{key:"prefKind",label:"Kind",format:"string"},{key:"prefType",label:"Type",format:"string"},{key:"prefValue",label:"Value",format:"string"}]},{name:"UserTiming",tooltipLabel:"{marker.data.name}",chartLabel:"{marker.data.name}",tableLabel:"{marker.data.name}",display:["marker-chart","marker-table"],data:[{label:"Marker",value:"UserTiming"},{key:"entryType",label:"Entry Type",format:"string"},{label:"Description",value:"UserTiming is created using the DOM APIs performance.mark() and performance.measure()."}]},{name:"Text",tableLabel:"{marker.name} — {marker.data.name}",chartLabel:"{marker.name} — {marker.data.name}",display:["marker-chart","marker-table"],data:[{key:"name",label:"Details",format:"string"}]},{name:"Log",display:["marker-table"],tableLabel:"({marker.data.module}) {marker.data.name}",data:[{key:"module",label:"Module",format:"string"},{key:"name",label:"Name",format:"string"}]},{name:"DOMEvent",tooltipLabel:"{marker.data.eventType} — DOMEvent",tableLabel:"{marker.data.eventType}",chartLabel:"{marker.data.eventType}",display:["marker-chart","marker-table","timeline-overview"],data:[{key:"latency",label:"Latency",format:"duration"}]},{name:"Paint",display:["marker-chart","marker-table","timeline-overview"],data:[{key:"category",label:"Type",format:"string"}]},{name:"Navigation",display:["marker-chart","marker-table","timeline-overview"],data:[{key:"category",label:"Type",format:"string"}]},{name:"Layout",display:["marker-chart","marker-table","timeline-overview"],data:[{key:"category",label:"Type",format:"string"}]},{name:"IPC",tooltipLabel:"IPC — {marker.data.niceDirection}",tableLabel:"{marker.name} — {marker.data.messageType} — {marker.data.niceDirection}",chartLabel:"{marker.data.messageType}",display:["marker-chart","marker-table","timeline-ipc"],data:[{key:"messageType",label:"Type",format:"string"},{key:"sync",label:"Sync",format:"string"},{key:"sendThreadName",label:"From",format:"string"},{key:"recvThreadName",label:"To",format:"string"}]},{name:"RefreshDriverTick",display:["marker-chart","marker-table","timeline-overview"],data:[{key:"name",label:"Tick Reasons",format:"string"}]},{name:"Network",display:["marker-table"],data:[]}];for(const e of t.processes)e.meta.markerSchema=[]},23:e=>{!function t(n){if(e.meta.configuration&&e.meta.configuration.activeBrowsingContextID&&(e.meta.configuration.activeTabID=e.meta.configuration.activeBrowsingContextID,delete e.meta.configuration.activeBrowsingContextID),n.pages&&n.pages.length>0)for(const e of n.pages)e.tabID=e.browsingContextID,delete e.browsingContextID;for(const e of n.processes)t(e)}(e)},24:e=>{},25:e=>{},26:e=>{!function e(t){for(const e of t.meta.markerSchema){let t;switch(e.name){case"FileIO":e.data.push({key:"threadId",label:"Thread ID",format:"string",searchable:!0}),t=[];break;case"Log":t=["name","module"];break;case"DOMEvent":e.data.push({key:"eventType",label:"Event Type",format:"string",searchable:!0}),t=["target"];break;case"TraceEvent":t=["name1","name2","val1","val2"];break;default:t=["name","category"]}for(const n of e.data)t.includes(n.key)&&(n.searchable=!0)}for(const n of t.processes)e(n)}(e)},27:e=>{!function e(t){for(const e of t.threads)delete e.frameTable.schema.optimizations;for(const n of t.processes)e(n)}(e)},28:e=>{}},Vc=[{name:"User",color:"yellow",subcategories:["Other"]},{name:"Kernel",color:"orange",subcategories:["Other"]}],jc=0,Zc=1;function $c(e){const t=new Map;function n(e,n,r,o,a){let i=t.get(n);void 0===i&&(i=function(e,t,n){const r={schema:{name:0,startTime:1,endTime:2,phase:3,category:4,data:5},data:[]},o={schema:{stack:0,time:1,responsiveness:2},data:[]},a={schema:{location:0,relevantForJS:1,innerWindowID:2,implementation:3,optimizations:4,line:5,column:6,category:7,subcategory:8},data:[]},i={schema:{prefix:0,frame:1},data:[]},s=[],l=new Map,c=new Map;return{addSample:function(t,n,r){e!==t&&(e=t);const d=n.reduce(((e,t)=>function(e,t){const n=null===t?`${e}`:`${e},${t}`;let r=l.get(n);return void 0===r&&(r=i.data.length,i.data.push([t,e]),l.set(n,r)),r}(function(e){let t=c.get(e);if(void 0===t){t=a.data.length;const n=s.length;s.push(e);const r=e.includes("kallsyms")||e.includes("/vmlinux)")||e.endsWith(".ko)")?Zc:jc,o=null,i=null,l=null,d=!1,u=null,h=0,p=null;a.data.push([n,d,h,o,i,l,p,r,u]),c.set(e,t)}return t}(t),e)),null);o.data.push([d,r,0])},finish:()=>({tid:n,pid:t,name:e,markers:r,samples:o,frameTable:a,stackTable:i,stringTable:s,registerTime:0,unregisterTime:null,processType:"default"})}}(r,e,n),t.set(n,i)),i.addSample(r,a,o)}const r=e.split("\n");let o=0,a=0;for(;o<r.length;){const e=r[o++];if(""===e||e.startsWith("#"))continue;const t=e,i=/^(.*)\s+([\d.]+):/.exec(t);if(!i){console.log('Could not parse line as the start of a sample in the "perf script" profile format: "%s"',t);continue}const s=i[1],l=1e3*parseFloat(i[2]),c=/^(.*)\s+(?:(\d+)\/)?(\d+)\b/.exec(s);if(!c){console.log('Could not parse line as the start of a sample in the "perf script" profile format: "%s"',t);continue}const d=c[1].trim(),u=Number(c[2]||0),h=Number(c[3]||0);0===a&&(a=l);const p=[];for(;o<r.length;){const e=r[o++];if(""===e.trim())break;const t=/^\s*(\w+)\s*(.+) \(([^)]*)\)/.exec(e);if(t){let e=t[2];const n=t[3];if(e=e.replace(/\+0x[\da-f]+$/,""),e.startsWith("("))continue;n&&(e+=` (in ${n})`),p.push(e)}}0!==p.length&&(p.reverse(),n(u,h,d,l,p))}const i=Array.from(t.values()).map((e=>e.finish()));for(const e of i){const t=e.samples.schema.time;e.samples.data.sort(((e,n)=>e[t]-n[t]))}return{meta:{interval:1,processType:0,product:"Firefox",stackwalk:1,debug:0,gcpoison:0,asyncstack:1,startTime:a,shutdownTime:null,version:24,presymbolicated:!0,categories:Vc,markerSchema:[]},libs:[],threads:i,processes:[],pausedRanges:[]}}const Kc=1464814675,Yc=1,qc=2,Jc=3,Xc=240,Qc=3,ed=-4,td="\n".charCodeAt(0);class nd{constructor(e){this._decoder=void 0,this._u8View=void 0,this._dataView=void 0,this._pos=void 0,this._decoder=new TextDecoder("utf-8",{fatal:!0}),this._u8View=e,this._dataView=new DataView(this._u8View.buffer),this._pos=0}eof(){return this._pos>=this._u8View.length}curPos(){return this._pos}setCurPos(e){this._pos=e}getU8(){const e=this._dataView.getUint8(this._pos);return this._pos+=1,e}getU16(){const e=this._dataView.getUint16(this._pos,!0);return this._pos+=2,e}getU32(){const e=this._dataView.getUint32(this._pos,!0);return this._pos+=4,e}getU64(){const e=this.getU32();return this.getU32()*Math.pow(2,32)+e}getBytesUntil(e){if(e<this._pos)throw new Error(`getBytesUntil() called with a target position in the past (curPos: ${this._pos}, endPos: ${e})`);const t=this._u8View.subarray(this._pos,e);return this._pos=e,t}getBytes(e){return this.getBytesUntil(this._pos+e)}getString(e){const t=this.getBytes(e);return this._decoder.decode(t)}getLine(){let e=this._u8View.indexOf(td,this._pos);-1===e&&(e=this._u8View.length);const t=this._u8View.subarray(this._pos,e);return this._pos=e+1,this._decoder.decode(t)}}function rd(e){try{const t="*version\nX\n".length,n=e.slice(0,t),r=(new TextDecoder).decode(n);if(/\*version\n[1-3]\n/.test(r))return"regular"}catch(e){}try{if(new DataView(e).getUint32(0,!0)===Kc)return"streaming"}catch(e){}return"unrecognized"}function od(e){if(e!==Kc){const t=`0x${Kc.toString(16)}`,n=`0x${e.toString(16)}`;throw new Error(`Unexpected magic header, expected ${t} (little endian), got ${n}`)}}function ad(e){if(e<1||e>3)throw new Error(`This code only knows how to parse versions 1 to 3, got version ${e}.`)}function id(e,t){if(e!==t)throw new Error(`Error: version number mismatch; got ${t} in summary but ${e} in data section`)}function sd(e){let t=e.getLine();if("*version"!==t)throw new Error("Expected *version, got "+t);const n=+e.getLine();ad(n);const r={summaryVersion:n,clock:"thread-cpu"};for(;t=e.getLine(),t&&!t.startsWith("*");){const[e,n]=t.split("=");r[e]=n}return{summaryVersion:n,summaryDetails:r,lineAfterSummary:t}}function ld(e){const[t,n,r,o]=e.split("\t");return{methodId:+t,className:n,methodName:r,signature:o}}function cd(e,t){switch(t){case 1:return 9;case 2:return 10;default:return e.getU16()}}function dd(e,t,n,r){const o=e.curPos(),a=1===t?e.getU8():e.getU16(),i=e.getU32(),s=i&ed,l=i&Qc;if(l>2)throw new Error("Unexpected method action "+l);let c,d;switch(r){case"wall":c=e.getU32(),d=c;break;case"dual":d=e.getU32(),c=e.getU32();break;default:d=e.getU32(),c=d}return e.setCurPos(o+n),{tid:a,methodId:s,globalTime:c,threadTime:d,action:["enter","exit","exit-unroll"][l]}}function ud(e){try{const t=new nd(new Uint8Array(e));switch(rd(e)){case"regular":return function(e){const{summaryVersion:t,summaryDetails:n,lineAfterSummary:r}=sd(e);if("*threads"!==r)throw new Error("Expected *threads, got "+r);const{threads:o,lineAfterThreads:a}=function(e){const t=[];let n="";for(;n=e.getLine(),n&&!n.startsWith("*");){const[e,r]=n.split("\t");t.push({tid:+e,threadName:r})}return{threads:t,lineAfterThreads:n}}(e);if("*methods"!==a)throw new Error("Expected *methods, got "+a);const{methods:i,lineAfterMethods:s}=function(e){const t=[];let n="";for(;n=e.getLine(),n&&!n.startsWith("*");)t.push(ld(n));return{methods:t,lineAfterMethods:n}}(e);if("*end"!==s)throw new Error("Expected *end, got "+s);const l=e.curPos();od(e.getU32());const c=e.getU16();id(c,t);const d=e.getU16(),u=e.getU64(),h=cd(e,c);e.setCurPos(l+d);const{clock:p}=n,m=[];for(;!e.eof();)m.push(dd(e,c,h,p));return{summaryDetails:n,threads:o,methods:i,methodActions:m,startTimeInUsecSinceBoot:u}}(t);case"streaming":return function(e){const t=e.curPos();od(e.getU32());const n=e.getU16()^Xc;ad(n);const r=e.getU16(),o=e.getU64(),a=cd(e,n);e.setCurPos(t+r);const i=[],s=[],l=[];let c={clock:"thread-cpu"};for(;!e.eof();){const t=e.curPos();if(0!==e.getU16()){l.push(t),e.setCurPos(t+a);continue}const r=e.getU8();if(r===Yc){const t=e.getU16();i.push(ld(e.getString(t)))}else{if(r!==qc){if(r===Jc){const t=e.getU32(),r=e.getBytes(t),o=sd(new nd(r));id(n,o.summaryVersion),c=o.summaryDetails;break}throw new Error(`Invalid trace format: got invalid code ${r}.`)}{const t=e.getU16(),n=e.getU16(),r=e.getString(n);s.push({tid:t,threadName:r})}}}const{clock:d}=c,u=[];for(const t of l)e.setCurPos(t),u.push(dd(e,n,a,d));return{summaryDetails:c,threads:s,methods:i,methodActions:u,startTimeInUsecSinceBoot:o}}(t);default:throw new Error("Not an ART trace")}}catch(e){throw console.error("Source exception:",e),new Error(`Could not parse the profile array buffer as an ART trace: ${e}`)}}class hd{constructor(e){this.idleCategory=0,this.otherCategory=1,this.blockingCategory=2,this.androidCategory=3,this.javaCategory=4,this.kotlinCategory=5,this.androidxCategory=6,this.specialCategory=7,this.categories=[{name:"Idle",color:"transparent"},{name:"Other",color:"grey"},{name:"Blocked",color:"lightblue"},{name:"Android",color:"yellow"},{name:"Java",color:"blue"},{name:"Kotlin / KotlinX",color:"purple"},{name:"AndroidX",color:"orange"},{name:"Special",color:"green"}],this._specialCategoryInfo=void 0,this._specialCategoryInfo=function(e){function t(e){const t=e.startsWith("org.")||e.startsWith("com.")?e.substring(4):e,n=t.indexOf(".");return-1===n?t:t.substring(0,n)}const n=new Map;for(let r=0;r<e.length;r++){const o=t(e[r].className);switch(o){case"android":case"java":case"sun":case"kotlin":case"androidx":case"kotlinx":break;default:{const e=n.get(o)||0;n.set(o,e+1)}}}const r=Array.from(n.entries());if(0===r.length)return;r.sort((([e,t],[n,r])=>r-t));const[o]=r[0];return{prefixes:[`${o}.`,`com.${o}.`,`org.${o}.`],name:o[0].toUpperCase()+o.slice(1)}}(e),this._specialCategoryInfo&&(this.categories[this.specialCategory].name=this._specialCategoryInfo.name)}inferJavaCategory(e){return"android.os.MessageQueue.nativePollOnce"===e?this.idleCategory:"java.lang.Object.wait"===e?this.blockingCategory:e.startsWith("android.")||e.startsWith("com.android.")?this.androidCategory:e.startsWith("java.")||e.startsWith("sun.")||e.startsWith("com.sun.")?this.javaCategory:e.startsWith("kotlin.")||e.startsWith("kotlinx.")?this.kotlinCategory:e.startsWith("androidx.")?this.androidxCategory:this._specialCategoryInfo&&this._specialCategoryInfo.prefixes.some((t=>e.startsWith(t)))?this.specialCategory:this.otherCategory}}class pd{constructor(e,t,n,r,o,a,i){this._markers={schema:{name:0,time:1,data:2},data:[]},this._samples={schema:{stack:0,time:1,responsiveness:2,rss:3,uss:4},data:[]},this._frameTable={schema:{location:0,implementation:1,optimizations:2,line:3,category:4},data:[]},this._stackTable={schema:{frame:0,prefix:1},data:[]},this._stringTable=[],this._currentStack=null,this._nextSampleTimestamp=0,this._stackMap=new Map,this._frameMap=new Map,this._registerTime=0,this._name=void 0,this._pid=void 0,this._tid=void 0,this._methodMap=void 0,this._intervalInMsec=void 0,this._honorOriginalSamplingTimestamps=void 0,this._categoryInfo=void 0,this._name=e,this._pid=t,this._tid=n,this._methodMap=r,this._intervalInMsec=o,this._honorOriginalSamplingTimestamps=a,this._categoryInfo=i}_getOrCreateStack(e,t){const n=null===t?`${e}`:`${e},${t}`;let r=this._stackMap.get(n);return void 0===r&&(r=this._stackTable.data.length,this._stackTable.data.push([e,t]),this._stackMap.set(n,r)),r}_getOrCreateFrameForMethodId(e){let t=this._frameMap.get(e);if(void 0===t){const n=this._methodMap.get(e);let r;if(void 0===n)r="<unknown method ID 0x"+e.toString(16)+">";else{const{className:e,methodName:t}=n;r=e+"."+t}const o=this._stringTable.length;this._stringTable.push(r);const a=this._categoryInfo.inferJavaCategory(r);t=this._frameTable.data.length,this._frameTable.data.push([o,null,null,null,a]),this._frameMap.set(e,t)}return t}enterMethod(e){const t=this._getOrCreateFrameForMethodId(e);this._currentStack=this._getOrCreateStack(t,this._currentStack)}exitMethod(e){null!==this._currentStack&&(this._currentStack=this._stackTable.data[this._currentStack][1])}advanceTimeTo(e){if(0===this._nextSampleTimestamp)return this._nextSampleTimestamp=e,void("main"!==this._name&&(this._registerTime=e));for(;this._nextSampleTimestamp<e;){if(this._samples.data.push([this._currentStack,this._nextSampleTimestamp]),this._honorOriginalSamplingTimestamps&&e-this._nextSampleTimestamp<2*this._intervalInMsec){this._nextSampleTimestamp=e;break}this._nextSampleTimestamp+=this._intervalInMsec}}finish(){return null!==this._nextSampleTimestamp&&this._samples.data.push([this._currentStack,this._nextSampleTimestamp]),{tid:this._tid,pid:this._pid,name:this._name,registerTime:this._registerTime,unregisterTime:null,markers:this._markers,samples:this._samples,frameTable:this._frameTable,stackTable:this._stackTable,stringTable:this._stringTable}}}function md(e){const{funcTable:t,stringTable:n}=e,r=new Map;for(let e=0;e<t.length;e++){if(!t.isJS[e])continue;const o=t.lineNumber[e],a=t.columnNumber[e],i=t.fileName[e];if(null!==a&&null!==o&&null!==i){const t=`${n.getString(i)}:${o}:${a}`;r.has(t)?r.set(t,null):r.set(t,e)}}return r}function fd(e,t,n){const r=function(e){if(0===e.length)return{events:[],start:[],end:[],line:[],column:[],length:0};let t=e.timestamps[0],n=t+e.durations[0];const r=[t],o=[n],a={events:e.events,start:r,end:o,line:e.line,column:e.column,length:e.length};for(let a=1;a<e.length;a++){const i=e.durations[a];let s=e.timestamps[a],l=s+(null===i?0:i);if(s<t)if(t<l)s=t;else{const e=l-s;s=t,l=Math.min(n,s+e)}else l<n||n<=s||(n-s<l-n?s=n:l=n);r.push(s),o.push(l),t=s,n=l}return a}(t),{thread:o,stackMap:a}=function(e,t,n){const r={address:[],inlineDepth:[],category:[],subcategory:[],func:[],nativeSymbol:[],innerWindowID:[],implementation:[],line:[],column:[],length:0},o={frame:[],prefix:[],category:[],subcategory:[],length:0},a={...e.funcTable},{stringTable:i}=e,s={...e,markers:{data:[],name:[],startTime:[],endTime:[],phase:[],category:[],length:0},funcTable:a,stackTable:o,frameTable:r,samples:{weightType:"samples",weight:null,eventDelay:[],stack:[],time:[],length:0,weight:[],weightType:"tracing-ms"}};let l=0;const c=[null],d=[0],u=new Map,h=new Map,p=new Map,m=i.indexForString(""),f=n.findIndex((e=>"Other"===e.name));if(-1===f)throw new Error("Expected to find an 'Other' category.");const g=md(s),A={Interpreter:i.indexForString("interpreter"),Baseline:i.indexForString("baseline"),IonMonkey:i.indexForString("ion")},b=new Set(Object.keys(A));for(let e=0;e<t.length;e++){const n=t.events[e],s=i.getString(n),C=t.end[e],y=t.column[e],v=t.line[e];let w=null;if(null!==y&&null!==v){const e=`${s}:${v}:${y}`,t=g.get(e);null!=t&&(w=t,u.set(n,w))}if(null===w){const e=u.get(n);void 0===e?(w=a.length++,a.name.push(n),a.isJS.push(!1),a.resource.push(-1),a.relevantForJS.push(!0),a.fileName.push(null),a.lineNumber.push(null),a.columnNumber.push(null),u.set(n,w)):w=e}let k=c[l];for(;null!==k&&!(C<=d[l]);)k=c[l],l--;let E=null;if(b.has(s))E=A[s];else if(null!==k){const e=p.get(k);if(void 0===e)throw new Error(`Expected to find an implementation from a js tracer prefix index prefixIndex: ${k}`);E=e}p.set(e,E);const x=r.length++;r.address.push(m),r.inlineDepth.push(0),r.category.push(f),r.func.push(w),r.nativeSymbol.push(null),r.innerWindowID.push(0),r.implementation.push(E),r.line.push(v),r.column.push(y);const S=o.length++;o.frame.push(x),o.category.push(f),o.prefix.push(k),h.set(e,S),l++,0===l&&(l=1),c[l]=e,d[l]=C}return{thread:s,stackMap:h}}(e,r,n);return o.samples=function(e,t,n){const r=1e-5,o=(e,t)=>Math.abs(e-t)<r,{stringTable:a}=e,i={weightType:"samples",weight:null,eventDelay:[],stack:[],time:[],length:0},s=[];function l(e,t,r){if(o(t,r))return;const a=nt(n.get(e),"The JS tracer event did not exist in the stack map.");i.stack.push(a),i.time.push(t/1e3),s.push((r-t)/1e3),i.length++}i.weight=s;const c=[],d=[],u=[];let h=-1;for(let e=0;e<t.length;e++){const n=t.start[e],i=t.end[e];if(-1!==h)for(;;){const s=c[h],p=d[h],m=u[h];if(!(p<=n+r)){if(i<p+r){l(m,s,n),c[h]=i,h++,c[h]=n,d[h]=i,u[h]=e;break}if(o(p,i)){o(s,n)||(l(m,s,n),c[h]=n),u[h]=e;break}{const r=a.getString(t.events[m]),o=a.getString(t.events[e]);throw console.error("Current JS Tracer information:",{jsTracer:t,stringTable:a,prefixEventIndex:m,currentEventIndex:e}),console.error(`Prefix (parent) times for "${r}": ${s}ms to ${p}ms`),console.error(`Current (child) times for "${o}": ${n}ms to ${i}ms`),new Error("The JS Tracer information was malformed. Some event lasted longer than its parent event.")}}if(l(m,s,p),h--,-1===h){h=0,u[h]=e,c[h]=n,d[h]=i;break}}else h=0,c[h]=n,d[h]=i,u[h]=e}for(;h>=0;h--)l(u[h],c[h],d[h]);return i}(o,r,a),o}function gd(e){const t={length:e.data.length};for(const n in e.schema){const r=e.schema[n];if("number"!=typeof r)throw new Error("fieldIndex must be a number in the Gecko profile table.");t[n]=e.data.map((e=>r in e?e[r]:null))}return t}class Ad{constructor(){this._libs=[],this._libKeyToLibIndex=new Map}indexForLib(e){const{debugName:t,breakpadId:n}=e,r=`${t}/${n}`;let o=this._libKeyToLibIndex.get(r);if(void 0===o){o=this._libs.length;const{arch:a,name:i,path:s,debugPath:l,codeId:c}=e;this._libs.push({arch:a,name:i,path:s,debugName:t,debugPath:l,breakpadId:n,codeId:c??null}),this._libKeyToLibIndex.set(r,o)}return o}finish(){return{libs:this._libs}}}function bd(e,t,n){if(!t.startsWith("0x"))return null;const{addressLocator:r,libToResourceIndex:o,resourceTable:a,funcTable:i,stringTable:s}=e;let l=-1,c=-1;try{const n=t,{lib:i,relativeAddress:d}=r.locateAddress(n);if(null!==i){c=d;const t=e.globalDataCollector.indexForLib(i);l=o.get(t),void 0===l&&(l=a.length++,a.lib[l]=t,a.name[l]=s.indexForString(i.name),a.host[l]=null,a.type[l]=Gn.library,o.set(t,l))}}catch(e){}const d=i.length++;return i.name[d]=n,i.resource[d]=l,i.relevantForJS[d]=!1,i.isJS[d]=!1,i.fileName[d]=null,i.lineNumber[d]=null,i.columnNumber[d]=null,{funcIndex:d,frameAddress:c}}function Cd(e,t){const n=/^(.*) \(in ([^)]*)\) (\+ [0-9]+)$/.exec(t)||/^(.*) \(in ([^)]*)\) (\(.*:.*\))$/.exec(t)||/^(.*) \(in ([^)]*)\)$/.exec(t);if(!n)return null;const{funcTable:r,stringTable:o,stringToNewFuncIndexAndFrameAddress:a,libNameToResourceIndex:i,resourceTable:s}=e,[,l,c]=n,d=function(e){const t="non-virtual thunk to ";return e.startsWith&&e.startsWith(t)?e.substr(t.length):e}(l),u=o.indexForString(d),h=o.indexForString(c),p=a.get(d);if(void 0!==p)return p.funcIndex;let m=i.get(h);void 0===m&&(m=s.length++,i.set(h,m),s.lib[m]=null,s.name[m]=h,s.host[m]=null,s.type[m]=Gn.library);const f=r.length++;return r.name[f]=u,r.resource[f]=m,r.relevantForJS[f]=!1,r.isJS[f]=!1,r.fileName[f]=null,r.lineNumber[f]=null,r.columnNumber[f]=null,f}function yd(e,t,n){const{originToResourceIndex:r,resourceTable:o,stringTable:a}=e,i=new URL(t.baseURL[n]).origin;let s=r.get(i);if(void 0===s){s=o.length++,r.set(i,s);const e=`Extension ${JSON.stringify(t.name[n])} (ID: ${t.id[n]})`,l=a.indexForString(t.id[n]);o.lib[s]=null,o.name[s]=a.indexForString(e),o.host[s]=l,o.type[s]=Gn.addon}}function vd(e,t){const n=/^(.*) \((.+?):([0-9]+)(?::([0-9]+))?\)$/.exec(t)||/^()(.+?):([0-9]+)(?::([0-9]+))?$/.exec(t);if(!n)return null;const{funcTable:r,stringTable:o,resourceTable:a,originToResourceIndex:i}=e,[,s,l]=n,c=function(e){if(e){const t=e.split(" -> ");return t[t.length-1]}return e}(l),d=Or(c,a,o,i);let u;u=s?o.indexForString(s):o.indexForString(`(root scope) ${c}`);const h=o.indexForString(c),p=parseInt(n[3],10),m=n[4]?parseInt(n[4],10):null,f=r.length++;return r.name[f]=u,r.resource[f]=d,r.relevantForJS[f]=!1,r.isJS[f]=!0,r.fileName[f]=h,r.lineNumber[f]=p,r.columnNumber[f]=m,f}function wd({funcTable:e},t,n){const r=e.length++;return e.name[r]=t,e.resource[r]=-1,e.relevantForJS[r]=n,e.isJS[r]=!1,e.fileName[r]=null,e.lineNumber[r]=null,e.columnNumber[r]=null,r}function kd(e){if(!e)return null;if(e.stack&&e.stack.samples.data.length>0){const{samples:t}=e.stack;return t.data[0][t.schema.stack]}return null}function Ed(e){const t={};for(const n in e)t[n]=1e3*e[n];return t}function xd(e){if(!e)return null;const t=function(e){if("stack"in e&&e.stack&&e.stack.samples.data.length>0){const{stack:t,...n}=e,r=t.samples.data[0][t.samples.schema.stack],o=t.samples.data[0][t.samples.schema.time];return null!==r?{...n,cause:{tid:t.tid,time:o,stack:r}}:n}return e}(e);switch(t.type){case"GCSlice":{const{times:e,...n}=t.timings;return{type:"GCSlice",timings:{...n,phase_times:e?Ed(e):{}}}}case"GCMajor":{const e=t.timings;switch(e.status){case"completed":{const{totals:t,...n}=e;return{type:"GCMajor",timings:{...n,phase_times:Ed(t),mmu_20ms:e.mmu_20ms/100,mmu_50ms:e.mmu_50ms/100}}}case"aborted":return{type:"GCMajor",timings:{status:"aborted"}};default:throw console.log("Unknown GCMajor status"),new Error("Unknown GCMajor status")}}case"IPC":{const{startTime:e,endTime:n,otherPid:r,messageType:o,messageSeqno:a,side:i,direction:s,phase:l,sync:c,threadId:d}=t;return{type:"IPC",startTime:e,endTime:n,otherPid:`${r}`,messageType:o,messageSeqno:a,side:i,direction:s,phase:l,sync:c,threadId:d}}default:return t}}function Sd(e,t,n){const r=e.counters,o=e.threads.find((e=>"GeckoMain"===e.name));if(!o||!r)return[];const a=`${o.pid}`,i=t.findIndex((e=>"GeckoMain"===e.name&&e.pid===a));if(-1===i)throw new Error("Unable to find the main thread in the stable thread list. This means that the logic in the _processCounters function is wrong.");return r.reduce(((e,{name:t,category:r,description:o,sample_groups:s})=>{if(0===s.length)return e;const l=s.map((e=>({id:e.id,samples:_d(gd(e.samples),n)})));return e.push({name:t,category:r,description:o,pid:a,mainThreadIndex:i,sampleGroups:l}),e}),[])}function Td(e,t,n){const r=e.profilerOverhead,o=e.threads.find((e=>"GeckoMain"===e.name));if(!o||!r)return null;const a=`${o.pid}`,i=t.findIndex((e=>"GeckoMain"===e.name&&e.pid===a));if(-1===i)throw new Error("Unable to find the main thread in the stable thread list. This means that the logic in the _processProfilerOverhead function is wrong.");return{samples:Pd(gd(r.samples),n),pid:a,mainThreadIndex:i,statistics:r.statistics}}function Bd(e,t,n,r){const o=gd(e.frameTable),a=gd(e.stackTable),i=gd(e.samples),s=gd(function(e){const{startTime:t,endTime:n}=e.schema,r=e.data.slice(0);return r.sort(((e,r)=>{const o=e[n]||e[t],a=r[n]||r[t];if(null===o)throw console.error(e),new Error("A marker had null start and end time.");if(null===a)throw console.error(r),new Error("A marker had null start and end time.");return o-a})),Object.assign({},e,{data:r})}(e.markers)),{libs:l,pausedRanges:c,meta:d}=t,{categories:u,shutdownTime:h}=d,p=new Sn(e.stringTable),{funcTable:m,resourceTable:f,frameFuncs:g,frameAddresses:A}=function(e,t,n,r,o={id:[],name:[],baseURL:[],length:0},a){const i={funcTable:{isJS:[],relevantForJS:[],name:[],resource:[],fileName:[],lineNumber:[],columnNumber:[],length:0},resourceTable:{lib:[],name:[],host:[],type:[],length:0},stringTable:n,addressLocator:new Fc(r),libToResourceIndex:new Map,originToResourceIndex:new Map,libNameToResourceIndex:new Map,stringToNewFuncIndexAndFrameAddress:new Map,globalDataCollector:a};for(let e=0;e<o.length;e++)yd(i,o,e);const s=[],l=[];for(let r=0;r<e.length;r++){const o=e[r],a=n.getString(o),c=t[r],d=i.stringToNewFuncIndexAndFrameAddress.get(a);if(void 0!==d){const{funcIndex:e,frameAddress:t}=d;s.push(e),l.push(t);continue}let u=null,h=null;const p=bd(i,a,o);null!==p?(u=p.funcIndex,h=p.frameAddress):(u=Cd(i,a),null===u&&(u=vd(i,a),null===u&&(u=wd(i,o,c)))),i.stringToNewFuncIndexAndFrameAddress.set(a,{funcIndex:u,frameAddress:h}),s.push(u),l.push(h)}return{funcTable:i.funcTable,resourceTable:i.resourceTable,frameFuncs:s,frameAddresses:l}}(o.location,o.relevantForJS,p,l,n,r),b=function(e,t,n){return{address:n.map((e=>e??-1)),inlineDepth:Array(e.length).fill(0),category:e.category,subcategory:e.subcategory,func:t,nativeSymbol:Array(e.length).fill(null),innerWindowID:e.innerWindowID,implementation:e.implementation,line:e.line,column:e.column,length:e.length}}(o,g,A),C=function(e,t,n){const r=n.findIndex((e=>"grey"===e.color))||0,o=new Array(e.length),a=new Array(e.length);for(let n=0;n<e.length;n++){const i=e.frame[n],s=t.category[i],l=t.subcategory[i];let c,d;if(null!==s)c=s,d=l||0;else{const t=e.prefix[n];null!==t?(c=o[t],d=a[t]):(c=r,d=0)}o[n]=c,a[n]=d}return{frame:e.frame,category:o,subcategory:a,prefix:e.prefix,length:e.length}}(a,b,u),{markers:y,jsAllocations:v,nativeAllocations:w}=function(e){const t={data:[],name:[],startTime:[],endTime:[],phase:[],category:[],length:0},n={time:[],className:[],typeName:[],coarseType:[],weight:[],weightType:"bytes",inNursery:[],stack:[],length:0},r={time:[],weight:[],weightType:"bytes",stack:[],length:0},o=[],a=[];let i,s;for(let s=0;s<e.length;s++){const l=e.data[s];if(l)switch(l.type){case"JS allocation":n.time.push(nt(e.startTime[s],"JS Allocations are assumed to have a startTime")),n.className.push(l.className),n.typeName.push(l.typeName),n.coarseType.push(l.coarseType),n.weight.push(l.size),n.inNursery.push(l.inNursery),n.stack.push(kd(l)),n.length++;continue;case"Native allocation":void 0===i&&(i="memoryAddress"in l),r.time.push(nt(e.startTime[s],"Native Allocations are assumed to have a startTime")),r.weight.push(l.size),r.stack.push(kd(l)),r.length++,i&&(o.push(nt(l.memoryAddress,"Could not find the memoryAddress property on a gecko marker payload.")),a.push(nt(l.threadId,"Could not find a threadId property on a gecko marker payload.")));continue}const c=xd(l),d=e.name[s],u=e.startTime[s],h=e.endTime[s],p=e.phase[s],m=e.category[s];t.name.push(d),t.startTime.push(u),t.endTime.push(h),t.phase.push(p),t.category.push(m),t.data.push(c),t.length++}return s=0===r.length?null:i?{time:r.time,weight:r.weight,weightType:r.weightType,stack:r.stack,memoryAddress:o,threadId:a,length:r.length}:{time:r.time,weight:r.weight,weightType:r.weightType,stack:r.stack,length:r.length},{markers:t,jsAllocations:0===n.length?null:n,nativeAllocations:s}}(s),k=function(e){const t={stack:e.stack,time:e.time,weightType:"samples",weight:null,length:e.length};if(e.threadCPUDelta&&e.threadCPUDelta.some((e=>null!==e))&&(t.threadCPUDelta=e.threadCPUDelta),e.eventDelay)t.eventDelay=e.eventDelay;else{if(!e.responsiveness)throw new Error("The profile processor expected an eventDelay or responsiveness array in the samples table, but none was found.");t.responsiveness=e.responsiveness}return t}(i),E={name:e.name,isMainThread:"GeckoMain"===e.name,"eTLD+1":e["eTLD+1"],processType:e.processType,processName:"string"==typeof e.processName?e.processName:"",processStartupTime:0,processShutdownTime:h,registerTime:e.registerTime,unregisterTime:e.unregisterTime,tid:e.tid,pid:`${e.pid}`,pausedRanges:c||[],frameTable:b,funcTable:m,nativeSymbols:{libIndex:[],address:[],name:[],functionSize:[],length:0},resourceTable:f,stackTable:C,markers:y,stringTable:p,samples:k};return void 0!==e.isPrivateBrowsing&&(E.isPrivateBrowsing=e.isPrivateBrowsing),void 0!==e.userContextId&&(E.userContextId=e.userContextId),v&&(E.jsAllocations=v),w&&(E.nativeAllocations=w),function(){const{jsTracerEvents:n}=e,{jsTracerDictionary:r}=t;if(n&&r){const e=new Array(r.length);for(let t=0;t<r.length;t++)e[t]=E.stringTable.indexForString(r[t]);const t=n.events.slice();for(let n=0;n<t.length;n++){const r=t[n];t[n]=e[r]}E.jsTracer={...n,events:t}}}(),function(e){const{samplingSelfStacks:t,syncBacktraceSelfStacks:n}=function(e){const t=new Set,n=new Set,{samples:r,markers:o,jsAllocations:a,nativeAllocations:i}=e;for(let e=0;e<r.length;e++){const n=r.stack[e];null!==n&&t.add(n)}for(let e=0;e<o.length;e++){const t=o.data[e];if(t&&t.cause){const e=t.cause.stack;null!==e&&n.add(e)}}if(void 0!==a)for(let e=0;e<a.length;e++){const t=a.stack[e];null!==t&&n.add(t)}if(void 0!==i)for(let e=0;e<i.length;e++){const t=i.stack[e];null!==t&&n.add(t)}return{samplingSelfStacks:t,syncBacktraceSelfStacks:n}}(e),{stackTable:r,frameTable:o}=e,a=new Uint32Array(o.length),i=new Set;for(const e of t){const t=r.frame[e];a[t]=t,-1!==o.address[t]&&i.add(t)}const s=new Map,l=new Set;for(const e of n){const t=r.frame[e],n=o.address[t];-1!==n&&s.set(t,n)}for(let e=0;e<r.length;e++){const t=r.prefix[e];if(null===t||l.has(t))continue;l.add(t);const n=r.frame[t],a=o.address[n];-1!==a&&s.set(n,a)}if(0===i.size&&0===s.size)return e;const c=Un(o);for(const[e,t]of s){if(i.has(e)){const n=c.length;c.address.push(t),c.inlineDepth.push(o.inlineDepth[e]),c.category.push(o.category[e]),c.subcategory.push(o.subcategory[e]),c.func.push(o.func[e]),c.nativeSymbol.push(o.nativeSymbol[e]),c.innerWindowID.push(o.innerWindowID[e]),c.implementation.push(o.implementation[e]),c.line.push(o.line[e]),c.column.push(o.column[e]),c.length++,a[e]=n}c.address[e]=t-1}const d={frame:[],prefix:[],category:[],subcategory:[],length:0},u=new Map,h=new Map,p=new Uint32Array(r.length);for(let e=0;e<r.length;e++){const o=r.frame[e],i=r.category[e],s=r.subcategory[e],c=r.prefix[e],m=null===c?null:p[c];if(l.has(e)||n.has(e)){const t=d.length;d.frame.push(o),d.category.push(i),d.subcategory.push(s),d.prefix.push(m),d.length++,p[e]=t,h.set(e,t)}if(t.has(e)){const t=a[o],n=d.length;d.frame.push(t),d.category.push(i),d.subcategory.push(s),d.prefix.push(m),d.length++,u.set(e,n)}}return Gr({...e,frameTable:c,stackTable:d},u,h)}(E)}function _d(e,t){return{...e,time:e.time.map((e=>e+t))}}function Id(e,t){const n=1e3*t;return{...e,timestamps:e.timestamps.map((e=>e+n))}}function Pd(e,t){return{...e,time:e.time.map((e=>e/1e3+t))}}function Nd(e,t){function n(e){return null===e?e:e+t}return{...e,startTime:e.startTime.map(n),endTime:e.endTime.map(n),data:e.data.map((e=>{if(!e)return e;const n=function(e,...t){return Object.assign({},e,...t)}(e);return"number"==typeof n.startTime&&(n.startTime+=t),"number"==typeof n.endTime&&(n.endTime+=t),n.cause&&void 0!==n.cause.time&&(n.cause.time+=t),"Network"===n.type&&("number"==typeof n.domainLookupStart&&(n.domainLookupStart+=t),"number"==typeof n.domainLookupEnd&&(n.domainLookupEnd+=t),"number"==typeof n.connectStart&&(n.connectStart+=t),"number"==typeof n.tcpConnectEnd&&(n.tcpConnectEnd+=t),"number"==typeof n.secureConnectionStart&&(n.secureConnectionStart+=t),"number"==typeof n.connectEnd&&(n.connectEnd+=t),"number"==typeof n.requestStart&&(n.requestStart+=t),"number"==typeof n.responseStart&&(n.responseStart+=t),"number"==typeof n.responseEnd&&(n.responseEnd+=t)),n}))}}function Md(e){const t=e.meta.markerSchema,n=new Set(e.meta.markerSchema.map((({name:e})=>e)));for(const r of e.processes)for(const e of r.meta.markerSchema)n.has(e.name)||(n.add(e.name),t.push(e));return t}function Fd(e){!function(e){const t=Wc(e).version||Gc;if(t!==Tn){if(t>Tn)throw new Error(`Unable to parse a Gecko profile of version ${t}, most likely profiler.firefox.com needs to be refreshed. The most recent version understood by this version of profiler.firefox.com is version ${Tn}.\nYou can try refreshing this page in case profiler.firefox.com has updated in the meantime.`);for(let n=t+1;n<=Tn;n++)n in Hc&&Hc[n](e);Wc(e).version=Tn}}(e);let t=[];const n=e.meta.extensions?gd(e.meta.extensions):{id:[],name:[],baseURL:[],length:0},r=new Ad;for(const o of e.threads)t.push(Bd(o,e,n,r));const o=Sd(e,t,0),a=[Td(e,t,0)];for(const i of e.processes){const s=i.meta.startTime-e.meta.startTime;t=t.concat(i.threads.map((e=>{const t=Bd(e,i,n,r);return t.samples=_d(t.samples,s),t.markers=Nd(t.markers,s),t.jsTracer&&(t.jsTracer=Id(t.jsTracer,s)),t.jsAllocations&&(t.jsAllocations=_d(t.jsAllocations,s)),t.nativeAllocations&&(t.nativeAllocations=_d(t.nativeAllocations,s)),t.processStartupTime+=s,null!==t.processShutdownTime&&(t.processShutdownTime+=s),t.registerTime+=s,null!==t.unregisterTime&&(t.unregisterTime+=s),t}))),o.push(...Sd(i,t,s)),a.push(Td(i,t,s))}let i=[...e.pages||[]];for(const t of e.processes)i=i.concat(t.pages||[]);const s={interval:e.meta.interval,startTime:e.meta.startTime,abi:e.meta.abi,extensions:n,misc:e.meta.misc,oscpu:e.meta.oscpu,platform:e.meta.platform,processType:e.meta.processType,product:e.meta.product||"",stackwalk:e.meta.stackwalk,debug:!!e.meta.debug,toolkit:e.meta.toolkit,version:e.meta.version,categories:e.meta.categories,preprocessedProfileVersion:Bn,appBuildID:e.meta.appBuildID,visualMetrics:e.meta.visualMetrics,configuration:e.meta.configuration,sourceURL:e.meta.sourceURL,physicalCPUs:e.meta.physicalCPUs,logicalCPUs:e.meta.logicalCPUs,CPUName:e.meta.CPUName,symbolicated:!!e.meta.presymbolicated,updateChannel:e.meta.updateChannel,markerSchema:Md(e),sampleUnits:e.meta.sampleUnits,device:e.meta.device};void 0!==e.meta.profilingStartTime&&(s.profilingStartTime=e.meta.profilingStartTime,s.profilingEndTime=e.meta.profilingEndTime);const l=a.reduce(((e,t)=>(null!==t&&e.push(t),e)),[]);let c={...e.profilingLog||{}};for(const t of e.processes)c={...c,...t.profilingLog||{}};const d={...e.profileGatheringLog||{}};for(const n of t.slice()){const{jsTracer:r}=n;if(r){const o=Pr(t,n),a=fd(n,r,e.meta.categories);a.isJsTracer=!0,a.name=`JS Tracer of ${o}`,t.push(a),delete n.jsTracer}}s.visualMetrics&&function(e,t,n){const{visualMetrics:r}=t;if(0===n.length||!r)return;const o=e.findIndex((e=>"GeckoMain"===e.name&&"default"===e.processType)),a=function(e,t){for(let n=0;n<e.length;n++){const r=e[n];if("GeckoMain"!==r.name||"tab"!==r.processType)continue;const o=new Set(t.filter((e=>0===e.embedderInnerWindowID)).map((e=>e.innerWindowID)));if(!r.stringTable.hasString("RefreshDriverTick"))continue;const a=r.stringTable.indexForString("RefreshDriverTick"),{markers:i}=r;for(let e=0;e<i.length;e++)if(i.name[e]===a&&i.data[e]&&i.data[e].innerWindowID&&o.has(i.data[e].innerWindowID))return n}return null}(e,n);if(-1===o||!a)return;const i=e[o],s=e[a],l=["Visual","ContentfulSpeedIndex","PerceptualSpeedIndex"];if(void 0===t.categories)return;const c=t.categories.findIndex((e=>"Test"===e.name));function d(e,t,n,r,o,a){n!==On&&null===r||(n===Dn||n===On)&&null===o||(e.markers.name.push(e.stringTable.indexForString(t)),e.markers.startTime.push(r),e.markers.endTime.push(o),e.markers.phase.push(n),e.markers.category.push(c),e.markers.data.push(a??null),e.markers.length++)}let u=null;if(s.stringTable.hasString("Navigation::Start")){const e=s.stringTable.indexForString("Navigation::Start"),t=s.markers.name.findIndex((t=>t===e));-1===t?console.error("Failed to find the navigation start marker."):u=s.markers.startTime[t]}for(const e of l){const n=r[`${e}Progress`];if(!n)continue;const o=u??n[0].timestamp,a=n[n.length-1].timestamp,l=`${e} Progress`;d(i,l,Dn,o,a),d(s,l,Dn,o,a);const c={name:"VisualMetricProgress",tableLabel:"{marker.name} — {marker.data.percentage}",display:["marker-chart","marker-table"],data:[{key:"percentage",label:"Percentage",format:"percentage"}]};t.markerSchema.push(c);const h=`${e} Change`;for(const{timestamp:e,percent:t}of n){const n={type:"VisualMetricProgress",percentage:t/100};d(i,h,Rn,e,null,n),d(s,h,Rn,e,null,n)}}}(t,s,i);const{libs:u}=r.finish();return{meta:s,libs:u,pages:i,counters:o,profilerOverhead:l,threads:t,profilingLog:c,profileGatheringLog:d}}async function Rd(e){try{if("[object ArrayBuffer]"===String(e)){const t=e;if("unrecognized"!==rd(t))e=function(e){const t=ud(e),n=function(e){const{methodActions:t}=e,n=[],r=new Map,o=Math.min(500,t.length);for(let e=0;e<o;e++){const{tid:o,globalTime:a}=t[e],i=r.get(o);if(a!==i){if(void 0!==i){const e=a-i;n.push(e)}r.set(o,a)}}if(n.sort(((e,t)=>e-t)),n.length<5)return n[0];const a=n.slice(0,Math.floor(n.length/5));return a.reduce(((e,t)=>e+t),0)/a.length}(t);let r,o=!1;!n||n<100?r=.1:(r=Math.round(n/100)/10,o=!0);const{summaryDetails:a,threads:i,methods:s,methodActions:l}=t,c=new hd(s),d=new Map(s.map((e=>[e.methodId,e]))),u=new Map;if(l.length>0)for(let e=0;e<l.length;e++){const{tid:t,methodId:n,globalTime:s,action:h}=l[e];let p=u.get(t);if(void 0===p){const e=i.find((e=>e.tid===t));if(!e)throw new Error(`Encountered method action for unknown thread ${t}`);p=new pd(e.threadName,a.pid?+a.pid:1,t,d,r,o,c),u.set(t,p)}switch(p.advanceTimeTo(s/1e3),h){case"enter":p.enterMethod(n);break;case"exit":case"exit-unroll":p.exitMethod(n);break;default:throw new Error(`Unexpected action ${h}`)}}const h=Array.from(u.values()).map((e=>e.finish()));return{meta:{interval:r,processType:0,product:"ART Trace (Android)",importedFrom:"ART Trace (Android)",pid:a.pid,stackwalk:1,startTime:0,shutdownTime:null,version:11,presymbolicated:!0,categories:c.categories},libs:[],threads:h,processes:[],pausedRanges:[]}}(t);else try{const n=new TextDecoder("utf-8",{fatal:!0});e=await n.decode(t)}catch(e){throw console.error("Source exception:",e),new Error("The profile array buffer could not be parsed as a UTF-8 string.")}}"string"==typeof e&&(e=function(e){if(e.startsWith("# ========\n"))return!0;if(e.startsWith("{"))return!1;const t=e.substring(0,e.indexOf("\n"));return/^\S.*?\s+(?:\d+\/)?\d+\s+(?:\[\d+\]\s+)?[\d.]+:/.test(t)}(e)?$c(e):JSON.parse(e));const t=e,n=function(e){if(!e||"object"!=typeof e)return null;const{meta:t}=e;if(!t||"object"!=typeof t)return null;if("number"!=typeof t.preprocessedProfileVersion){const{threads:t}=e;if(!t||!Array.isArray(t))return null;const[n]=t;if(!n||"object"!=typeof n||!n.stringArray)return null}const n="number"==typeof t.preprocessedProfileVersion?t.preprocessedProfileVersion:Dc;if(n===Bn)return e;if(n>Bn)throw new Error(`Unable to parse a processed profile of version ${n}, most likely profiler.firefox.com needs to be refreshed. The most recent version understood by this version of profiler.firefox.com is version ${Bn}.\nYou can try refreshing this page in case profiler.firefox.com has updated in the meantime.`);for(let t=n+1;t<=Bn;t++)t in zc&&zc[t](e);const r=e;return r.meta.preprocessedProfileVersion=Bn,r}(function(e){if(!e||"object"!=typeof e)return e;const{meta:t}=e;if(!t||"object"!=typeof t)return e;if("number"!=typeof t.preprocessedProfileVersion)return e;const{threads:n}=e;if(!n||!Array.isArray(n)||!n.length)return e;const[r]=n;if(r.stringArray)return e;if(!r.stringTable)return e;for(const t of e.threads)t.stringArray=t.stringTable._array,delete t.stringTable;return e}(t));if(n)return function({threads:e,...t}){return{...t,threads:e.map((({stringArray:e,...t})=>({...t,stringTable:new Sn(e)})))}}(n);const r=function(e){if(!e)return null;let t;if(Array.isArray(e)){const n=e[0];n&&"object"==typeof n&&"ph"in n&&"cat"in n&&"args"in n&&(t=e)}else"object"==typeof e&&"samples"in e&&"timeDeltas"in e&&"startTime"in e&&"endTime"in e?(t=[],t.push({name:"CpuProfile",args:{data:{cpuProfile:e}},cat:"other",pid:0,tid:0,ts:0,ph:"I"})):"object"==typeof e&&"traceEvents"in e&&Array.isArray(e.traceEvents)&&(t=e.traceEvents);if(!t)return null;const n=new Map;for(const e of t){if("object"!=typeof e||null===e||"string"!=typeof e.name)throw new Error("A tracing event in the chrome profile did not follow the expected form.");const{name:t}=e;let r=n.get(t);r||(r=[],n.set(t,r)),r.push(e)}return async function(e){const t=Hn();t.meta.categories=[{name:"Other",color:"grey",subcategories:["Other"]},{name:"Idle",color:"transparent",subcategories:["Other"]},{name:"JavaScript",color:"yellow",subcategories:["Other"]},{name:"GC / CC",color:"orange",subcategories:["Other"]},{name:"Graphics",color:"green",subcategories:["Other"]},{name:"Native",color:"blue",subcategories:["Other"]}],t.meta.product="Chrome Trace",t.meta.importedFrom="Chrome Trace",t.meta.interval=.5;let n=e.get("Profile")||[];if(e.has("CpuProfile")){const t=e.get("CpuProfile");n=n.concat(t)}const r=function(e){const t=e.findIndex((e=>"JavaScript"===e.name)),n=e.findIndex((e=>"GC / CC"===e.name)),r=e.findIndex((e=>"Native"===e.name)),o=e.findIndex((e=>"Other"===e.name)),a=e.findIndex((e=>"Idle"===e.name));if(-1===t||-1===n||-1===r||-1===o||-1===a)throw new Error("Unable to find the a category in the the defaultCategories.");return function(e,i){switch(e){case"(idle)":return{category:a,isJS:!1,relevantForJS:!1};case"(root)":case"(program)":return{category:o,isJS:!1,relevantForJS:!1};case"(garbage collector)":return{category:n,isJS:!1,relevantForJS:!1};default:return i||"<WASM UNNAMED>"===e||"(unresolved function)"===e?{category:t,isJS:!0,relevantForJS:!1}:{category:r,isJS:!1,relevantForJS:!0}}}}(nt(t.meta.categories)),o=new Map,a=new Map;for(const i of n){const n=Ic(o,a,e,t,i),{thread:s,funcKeyToFuncId:l,nodeIdToStackId:c,originToResourceIndex:d}=n;let u=[];if("Profile"===i.name){n.lastSeenTime=i.args.data.startTime/1e3;const{id:t,pid:r}=i;u=_c(e,"ProfileChunk",(e=>e.id===t&&e.pid===r))}else"CpuProfile"===i.name&&(n.lastSeenTime=i.args.data.cpuProfile.startTime/1e3,u=[i]);for(const e of u){if(!e.args.data||!e.args.data.cpuProfile)continue;const{cpuProfile:o}=e.args.data,{nodes:a,samples:i}=o,u=Pc(e);if(!u)continue;const{funcTable:h,frameTable:p,stackTable:m,stringTable:f,samples:g,resourceTable:A}=s;if(a){const e=new Map;for(const t of a){const{callFrame:n,id:o}=t;let a;if(a=void 0!==t.parent?t.parent:e.get(o),void 0!==t.children){const n=t.children;for(let t=0;t<n.length;t++)e.set(n[t],o)}let{url:i,lineNumber:s,columnNumber:u}=n;-1===s&&(s=void 0),-1===u&&(u=void 0),void 0!==s&&s++,void 0!==u&&u++,""===i&&(i=void 0);const{functionName:g}=n,b=`${g}:${i||""}:${s||0}:${u||0}`,{category:C,isJS:y,relevantForJS:v}=r(g,void 0!==i||void 0!==s);let w=l.get(b);if(void 0===w){w=h.length++,h.isJS.push(y),h.relevantForJS.push(v);const e=""!==g?g:"(anonymous)";h.name.push(f.indexForString(e)),h.resource.push(y?Or(i||"<unknown>",A,f,d):-1),h.fileName.push(y?f.indexForString(i||"<unknown>"):null),h.lineNumber.push(void 0===s?null:s),h.columnNumber.push(void 0===u?null:u),l.set(b,w)}const k=o-1,E=c.get(a);if(void 0===E)throw new Error("Unable to find the prefix stack index from a node index.");p.address[k]=-1,p.category[k]=C,p.subcategory[k]=0,p.func[k]=w,p.nativeSymbol[k]=null,p.innerWindowID[k]=0,p.implementation[k]=null,p.line[k]=void 0===s?null:s,p.column[k]=void 0===u?null:u,p.length=Math.max(p.length,k+1),m.frame.push(k),m.category.push(C),m.subcategory.push(0),m.prefix.push(E),c.set(o,m.length++)}}for(let e=0;e<i.length;e++){const r=i[e];if(n.lastSeenTime+=u[e]/1e3,n.lastSeenTime-n.lastSampledTime>=t.meta.interval){n.lastSampledTime=n.lastSeenTime;const e=nt(c.get(r),"Could not find the stack information for a sample when decoding a Chrome profile.");nt(g.eventDelay,"Could not find the eventDelay in samplesTable inside the newly created Chrome profile thread.").push(null),g.stack.push(e),g.time.push(n.lastSampledTime),g.length++}}}}for(const e of t.threads)Mc(e.stackTable);return await async function(e,t,n,r,o){if(!o)return;if(!o||0===o.length)return;const{thread:a}=Ic(e,t,n,r,o[0]),i=nt(r.meta.categories).findIndex((e=>"Graphics"===e.name));if(-1===i)throw new Error("Could not find the Graphics category in the profile's category list.");for(const e of o){const t="data:image/jpg;base64,"+e.args.snapshot,n=await Nc(t);null!==n&&(a.markers.data.push({type:"CompositorScreenshot",url:a.stringTable.indexForString(t),windowID:"id",windowWidth:n.width,windowHeight:n.height}),a.markers.name.push(a.stringTable.indexForString("CompositorScreenshot")),a.markers.startTime.push(e.ts/1e3),a.markers.endTime.push(null),a.markers.phase.push(Rn),a.markers.category.push(i),a.markers.length++)}}(o,a,e,t,e.get("Screenshot")),function(e,t,n,r){const o=nt(r.meta.categories).findIndex((e=>"Other"===e.name));if(-1===o)throw new Error('No "Other" category in empty profile category list');r.meta.markerSchema=[{name:"EventDispatch",chartLabel:"{marker.data.type2}",tooltipLabel:"{marker.data.type2} - EventDispatch",tableLabel:"{marker.data.type2}",display:["marker-chart","marker-table","timeline-overview"],data:[{key:"type2",label:"Event Type",format:"string",searchable:!0}]}];for(const[a,i]of n.entries())if("Profile"!==a&&"ProfileChunk"!==a&&"CpuProfile"!==a)for(const s of i)if(void 0!==s.ts&&Number.isFinite(s.ts)&&("X"===s.ph&&void 0!==s.dur&&Number.isFinite(s.dur)||"B"===s.ph||"E"===s.ph||"b"===s.ph||"n"===s.ph||"e"===s.ph||"i"===s.ph||"I"===s.ph||"R"===s.ph)){const i=s.ts/1e3,l=Ic(e,t,n,r,s),{thread:c}=l,{markers:d,stringTable:u}=c;let h=null;s.args&&"object"==typeof s.args&&(h=s.args.data||null),d.name.push(u.indexForString(a)),d.category.push(o),h&&"type"in h&&(h.type2=h.type),h&&"category"in h&&(h.category2=h.category);const p={...h,type:a,category:s.cat};if(d.data.push(p),"X"===s.ph){const e=s.dur/1e3;d.phase.push(Dn),d.startTime.push(i),d.endTime.push(i+e)}else"B"===s.ph||"b"===s.ph?(d.startTime.push(i),d.endTime.push(null),d.phase.push(Ln)):"E"===s.ph||"e"===s.ph?(d.startTime.push(null),d.endTime.push(i),d.phase.push(On)):(d.startTime.push(i),d.endTime.push(null),d.phase.push(Rn));d.length++}}(o,a,e,t),t.threads.sort(((e,t)=>{const n=a.get(e),r=a.get(t);if(!n||!r)throw console.error({threadA:e,threadB:t}),new Error("Unexpected thread");if(n.pid===r.pid){if(n.threadSortIndex!==r.threadSortIndex)return n.threadSortIndex-r.threadSortIndex}else if(n.processSortIndex!==r.processSortIndex)return n.processSortIndex-r.processSortIndex;return n.tieBreakerIndex-r.tieBreakerIndex})),t}(n)}(t);if(r)return r;const o=function(e){if(!e||"object"!=typeof e)return null;const{dhatFileVersion:t}=e;if("number"!=typeof t)return null;if(2!==t)throw new Error(`This importer only supports dhat version 2. The file provided was version ${t}.`);const n=e,r=Hn();r.meta.product=n.cmd+" (dhat)",r.meta.importedFrom="dhat";const o={time:[],weight:[],weightType:"bytes",stack:[],length:0},{funcTable:a,stringTable:i,stackTable:s,frameTable:l}=Wn(),c=new Map;for(let e of n.ftbl){let t=n.cmd,r=-1,o=null,s=null;const d=e.match(/^0x([0-9a-f]+): (.+) \((.+):(\d+):(\d+)\)$/i);d&&(r=parseInt(d[1],16),e=d[2],t=d[3],o=Number(d[4]),s=Number(d[5]));const u=`${e} ${t}`;let h=c.get(u);void 0===h&&(a.name.push(i.indexForString(e)),a.isJS.push(!1),a.relevantForJS.push(!1),a.resource.push(-1),a.fileName.push(i.indexForString(t)),a.lineNumber.push(o),a.columnNumber.push(s),h=a.length++,c.set(u,h)),l.address.push(r),l.line.push(o),l.column.push(s),l.category.push(0),l.subcategory.push(0),l.innerWindowID.push(null),l.implementation.push(null),l.func.push(h),l.length++}const d=[],u=[],h=[],p=[],m=new Map;for(const e of n.pps){let t=0,n=null;for(let r=e.fs.length-1;r>=0;r--){const o=e.fs[r],a=nt(l.func[o],"Expected to find a funcIndex from a frameIndex");t=s.length;const i=m.get(n);if(i)for(const e of i){const n=s.frame[e];if(l.func[n]===a){t=e;break}}t===s.length&&(s.frame.push(o),s.category.push(0),s.category.push(0),s.prefix.push(n),i?i.push(t):m.set(n,[t]),s.length++),n=t}d.push(e.tb),u.push(e.mb),h.push(e.gb),p.push(e.eb),o.time.push(0),o.stack.push(t),o.length++}return r.threads=[{name:"Total Bytes",weight:d},{name:"Maximum Bytes",weight:u},{name:"Bytes at Global Max",weight:h},{name:"Bytes at End",weight:p}].map((({name:e,weight:t},r)=>{const c=Wn();return c.pid=n.pid,c.tid=r,c.name=e,c.stringTable=new Sn(i.serializeToArray()),c.funcTable.name=a.name.slice(),c.funcTable.isJS=a.isJS.slice(),c.funcTable.relevantForJS=a.relevantForJS.slice(),c.funcTable.resource=a.resource.slice(),c.funcTable.fileName=a.fileName.slice(),c.funcTable.lineNumber=a.lineNumber.slice(),c.funcTable.columnNumber=a.columnNumber.slice(),c.funcTable.length=a.length,c.frameTable.address=l.address.slice(),c.frameTable.line=l.line.slice(),c.frameTable.column=l.column.slice(),c.frameTable.category=l.category.slice(),c.frameTable.subcategory=l.subcategory.slice(),c.frameTable.innerWindowID=l.innerWindowID.slice(),c.frameTable.implementation=l.implementation.slice(),c.frameTable.func=l.func.slice(),c.frameTable.length=l.length,c.stackTable.frame=s.frame.slice(),c.stackTable.category=s.category.slice(),c.stackTable.category=s.category.slice(),c.stackTable.prefix=s.prefix.slice(),c.stackTable.length=s.length,c.nativeAllocations={time:o.time.slice(),stack:o.stack.slice(),weight:t,weightType:"bytes",length:o.length},c})),r}(t);return o||function(e){if(!e)throw new Error("The profile was empty.");if("object"!=typeof e)throw new Error("The profile was not an object");const t=e.profile?e.profile:e;if(!t.meta)throw new Error("This does not appear to be a valid Gecko Profile, there is no meta field.");return Fd(t)}(t)}catch(e){throw console.error("UnserializationError:",e),new Error(`Unserializing the profile failed: ${e}`)}}class Dd{constructor(e,t=200,n=12096e5){this._dbPromise=void 0,this._maxCount=void 0,this._maxAge=void 0,this._dbPromise=this._setupDB(e),this._maxCount=t,this._maxAge=n}_getDB(){return this._dbPromise?this._dbPromise:Promise.reject(new Error("The database is closed."))}_setupDB(e){const t=window.indexedDB;if(!t)throw new Error("Could not find indexedDB on the window object.");return new Promise(((n,r)=>{const o=t.open(e,2);o.onerror=()=>{if("VersionError"===o.error.name){const o=t.deleteDatabase(e);o.onerror=()=>r(o.error),o.onsuccess=()=>{this._setupDB(e).then(n,r)}}else r(o.error)},o.onupgradeneeded=({oldVersion:e})=>{const t=o.result;t.onerror=r,1===e&&t.deleteObjectStore("symbol-tables"),t.createObjectStore("symbol-tables",{keyPath:["debugName","breakpadId"]}).createIndex("lastUsedDate","lastUsedDate")},o.onblocked=()=>{r(new Error("The symbol store database could not be upgraded because it is open in another tab. Please close all your other profiler.firefox.com tabs and refresh."))},o.onsuccess=()=>{const e=o.result;e.onversionchange=()=>{e.close()},n(e),this._deleteAllBeforeDate(e,new Date(+new Date-this._maxAge)).catch((e=>{console.error("Encountered error while cleaning out database:",e)}))}}))}storeSymbolTable(e,t,[n,r,o]){return this._getDB().then((a=>new Promise(((i,s)=>{const l=a.transaction("symbol-tables","readwrite");l.onerror=()=>s(l.error);const c=l.objectStore("symbol-tables");this._deleteLeastRecentlyUsedUntilCountIsNoMoreThanN(c,this._maxCount-1,(()=>{const a=new Date;c.add({debugName:e,breakpadId:t,addrs:n,index:r,buffer:o,lastUsedDate:a}).onsuccess=()=>i()}))}))))}getSymbolTable(e,t){return this._getDB().then((n=>new Promise(((r,o)=>{const a=n.transaction("symbol-tables","readwrite");a.onerror=()=>o(a.error);const i=a.objectStore("symbol-tables").openCursor([e,t]);i.onsuccess=()=>{const n=i.result;if(n){const e=n.value;e.lastUsedDate=new Date;const t=n.update(e),{addrs:o,index:a,buffer:i}=e;t.onsuccess=()=>r([o,a,i])}else o(new ls("The requested library does not exist in the database.",{debugName:e,breakpadId:t}))}}))))}close(){return this._getDB().then((e=>{e.close(),this._dbPromise=null}))}_deleteAllBeforeDate(e,t){return new Promise(((n,r)=>{const o=e.transaction("symbol-tables","readwrite");o.onerror=()=>r(o.error);const a=o.objectStore("symbol-tables");this._deleteRecordsLastUsedBeforeDate(a,t,n)}))}_deleteRecordsLastUsedBeforeDate(e,t,n){const r=e.index("lastUsedDate"),o=window.IDBKeyRange.upperBound(t,!0),a=r.openCursor(o);a.onsuccess=()=>{const e=a.result;e?e.delete().onsuccess=()=>{e.continue()}:n()}}_deleteNLeastRecentlyUsedRecords(e,t,n){const r=e.index("lastUsedDate").openCursor();let o=0;r.onsuccess=()=>{const e=r.result;e?e.delete().onsuccess=()=>{o++,o<t?e.continue():n()}:n()}}_count(e,t){const n=e.count();n.onsuccess=()=>t(n.result)}_deleteLeastRecentlyUsedUntilCountIsNoMoreThanN(e,t,n){this._count(e,(r=>{if(r>t){const o=r-t;this._deleteNLeastRecentlyUsedRecords(e,o,n)}else n()}))}}function Ld(e,t,n){const[r,o,a]=t,i=Uint32Array.from(e);i.sort();const s=new TextDecoder,l=new Map;let c,d,u="";for(let e=0;e<i.length;e++){const t=i[e],h=(0,Jn.e)(r,t,c)-1;if(h>=0){if(h!==c){const e=o[h],t=o[h+1],i=a.subarray(e,t);u=n(s.decode(i)),d=h<r.length-1?r[h+1]-r[h]:void 0,c=h}l.set(t,{symbolAddress:r[h],name:u,functionSize:d})}else l.set(t,{symbolAddress:0,name:"<before first symbol>"})}return l}class Od{constructor(e,t){this._symbolProvider=void 0,this._db=void 0,this._symbolProvider=t,this._db=new Dd(`${e}-symbol-tables`)}async closeDb(){await this._db.close()}_storeSymbolTableInDB(e,t){return this._db.storeSymbolTable(e.debugName,e.breakpadId,t).catch((t=>{console.log(`Failed to store the symbol table for ${e.debugName} in the database:`,t)}))}async getSymbols(e,t,r){e=e.filter((e=>{const{debugName:t,breakpadId:n}=e.lib;return""!==t&&""!==n||(r(e,new ls(`Failed to symbolicate library ${t}/${n}`,e.lib,new Error("Invalid debugName or breakpadId"))),!1)}));const o=[],a=[];await Promise.all(e.map((async e=>{const{lib:t,addresses:n}=e,{debugName:r,breakpadId:i}=t;try{const e=await this._db.getSymbolTable(r,i);a.push({lib:t,addresses:n,symbolTable:e})}catch(t){if(!(t instanceof ls))throw t;o.push(e)}})));const i=function(e,t,n,r){const o=[];for(const t of e){const e=r(t);let n=o.find((({value:t,elements:n})=>t+e<=1e4&&n.length+1<=10));void 0===n&&(n={value:0,elements:[]},o.push(n)),n.elements.push(t),n.value+=e}return o.map((({elements:e})=>e))}(o,0,0,(({addresses:e})=>e.size)).map((e=>[e,this._symbolProvider.requestSymbolsFromServer(e)])),s=await async function(){try{const{demangle_any:e}=await n.e(914).then(n.bind(n,9914));return e}catch(e){return console.error("Demangling module could not be imported.",e),e=>e}}();for(const{lib:e,addresses:n,symbolTable:r}of a)t(e,Ld(n,r,s));await Promise.all(i.map((async([n,o])=>{const a=new Map(e.map((e=>[e,[]]))),i=await this._processSuccessfulResponsesAndReturnRemaining(n,o,a,t);if(0===i.length)return;const l=this._symbolProvider.requestSymbolsFromBrowser(i),c=await this._processSuccessfulResponsesAndReturnRemaining(i,l,a,t);0!==c.length&&await this._getSymbolTablesFromBrowser(c,a,s,t,r)})))}async _processSuccessfulResponsesAndReturnRemaining(e,t,n,r){try{const e=await t,o=[];for(let t=0;t<e.length;t++){const a=e[t];if("SUCCESS"===a.type){const{lib:e,results:t}=a;r(e,t)}else{const{request:e,error:t}=a;o.push(e),nt(n.get(e)).push(t)}}return o}catch(t){for(const r of e)nt(n.get(r)).push(t);return e}}async _getSymbolTablesFromBrowser(e,t,n,r,o){for(const a of e){const{lib:e,addresses:i}=a;try{const t=await this._symbolProvider.requestSymbolTableFromBrowser(e);r(e,Ld(i,t,n)),await this._storeSymbolTableInDB(e,t)}catch(n){o(a,new ls(`Could not obtain symbols for ${e.debugName}/${e.breakpadId}.`,e,...t.get(a)??[],n))}}}}function Ud(e,t,n,r){return(e=yr(e,n,r)).markers=function(e,t,n,r){const o={data:[],name:[],startTime:[],endTime:[],phase:[],category:[],length:0},a=[];e.threadId&&(o.threadId=a);const i=wo(0,t,n,r);for(const t of i)o.startTime.push(e.startTime[t]),o.endTime.push(e.endTime[t]),o.phase.push(e.phase[t]),o.name.push(e.name[t]),o.data.push(e.data[t]),o.category.push(e.category[t]),e.threadId&&a.push(e.threadId[t]),o.length++;return o}(e.markers,t,n,r),e}function zd(e,t){return e.map((e=>{const n=t.get(e);if(void 0===n)throw new Error(xn`
|
35
|
+
Category with index ${e} hasn't been found in the translation map.
|
36
|
+
This shouldn't happen and indicates a bug in the profiler's code.
|
37
|
+
`);return n}))}function Gd(e,t){return e.map((e=>{if(null===e)return e;const n=t.get(e);if(void 0===n)throw new Error(xn`
|
38
|
+
Lib with index ${e} hasn't been found in the translation map.
|
39
|
+
This shouldn't happen and indicates a bug in the profiler's code.
|
40
|
+
`);return n}))}function Wd(e,t){return e.map((e=>{const n=t.get(e);if(void 0===n)throw new Error(xn`
|
41
|
+
Lib with index ${e} hasn't been found in the translation map.
|
42
|
+
This shouldn't happen and indicates a bug in the profiler's code.
|
43
|
+
`);return n}))}function Hd(e,t){return e.map((e=>{if(null===e)return null;const n=t.get(e);if(void 0===n)throw new Error(xn`
|
44
|
+
Category with index ${e} hasn't been found in the translation map.
|
45
|
+
This shouldn't happen and indicates a bug in the profiler's code.
|
46
|
+
`);return n}))}function Vd(e,t){const n=new Map,r=[],o={lib:[],name:[],host:[],type:[],length:0};return t.forEach((t=>{const a=new Map,{resourceTable:i,stringTable:s}=t;for(let t=0;t<i.length;t++){const r=i.lib[t],l=i.name[t],c=s.getString(l)??"",d=i.host[t],u=null!==d?s.getString(d):null,h=i.type[t],p=[c,h].join("#"),m=n.get(p);void 0===m?(a.set(t,o.length),n.set(p,o.length),o.lib.push(r),o.name.push(e.indexForString(c)),o.host.push(null===u?null:e.indexForString(u)),o.type.push(h),o.length++):a.set(t,m)}r.push(a)})),{resourceTable:o,translationMaps:r}}function jd(e,t){const n=new Map,r=[],o={libIndex:[],address:[],name:[],functionSize:[],length:0};return t.forEach((t=>{const a=new Map,{nativeSymbols:i,stringTable:s}=t;for(let t=0;t<i.length;t++){const r=i.libIndex[t],l=i.name[t],c=s.getString(l),d=i.address[t],u=i.functionSize[t],h=[c,d].join("#"),p=n.get(h);void 0===p?(a.set(t,o.length),n.set(h,o.length),o.libIndex.push(r),o.name.push(e.indexForString(c)),o.address.push(d),o.functionSize.push(u),o.length++):a.set(t,p)}r.push(a)})),{nativeSymbols:o,translationMaps:r}}function Zd(e,t,n){const r=new Map,o=[],a={isJS:[],relevantForJS:[],name:[],resource:[],fileName:[],lineNumber:[],columnNumber:[],length:0};return n.forEach(((n,i)=>{const{funcTable:s,stringTable:l}=n,c=new Map,d=e[i];for(let e=0;e<s.length;e++){const n=s.fileName[e],o="number"==typeof n?l.getString(n):null,i=s.resource[e]>=0?d.get(s.resource[e]):-1;if(void 0===i)throw new Error(xn`
|
47
|
+
We couldn't find the resource of func ${e} in the translation map.
|
48
|
+
This is a programming error.
|
49
|
+
`);const u=l.getString(s.name[e]),h=s.lineNumber[e],p=[u,i,h].join("#"),m=r.get(p);void 0===m?(r.set(p,a.length),c.set(e,a.length),a.isJS.push(s.isJS[e]),a.name.push(t.indexForString(u)),a.resource.push(i),a.relevantForJS.push(s.relevantForJS[e]),a.fileName.push(null===o?null:t.indexForString(o)),a.lineNumber.push(h),a.columnNumber.push(s.columnNumber[e]),a.length++):c.set(e,m)}o.push(c)})),{funcTable:a,translationMaps:o}}function $d(e,t,n,r,o){const a=[],i={address:[],inlineDepth:[],category:[],subcategory:[],func:[],nativeSymbol:[],innerWindowID:[],implementation:[],line:[],column:[],length:0};return o.forEach(((o,s)=>{const{frameTable:l,stringTable:c}=o,d=new Map,u=t[s],h=t=>null===e?t:e[s].get(t),p=n[s];for(let e=0;e<l.length;e++){const t=l.category[e],n=null===t?null:h(t);if(void 0===n)throw new Error(xn`
|
50
|
+
We couldn't find the category of frame ${e} in the translation map.
|
51
|
+
This is a programming error.
|
52
|
+
`);const o=u.get(l.func[e]);if(void 0===o)throw new Error(xn`
|
53
|
+
We couldn't find the function of frame ${e} in the translation map.
|
54
|
+
This is a programming error.
|
55
|
+
`);const a=l.implementation[e],s="number"==typeof a?c.getString(a):null,m=l.nativeSymbol[e],f=null===m?null:p.get(m);if(void 0===f)throw new Error(xn`
|
56
|
+
We couldn't find the nativeSymbol of frame ${e} in the translation map.
|
57
|
+
This is a programming error.
|
58
|
+
`);i.address.push(l.address[e]),i.inlineDepth.push(l.inlineDepth[e]),i.category.push(n),i.subcategory.push(l.subcategory[e]),i.nativeSymbol.push(f),i.func.push(o),i.innerWindowID.push(l.innerWindowID[e]),i.implementation.push(null===s?null:r.indexForString(s)),i.line.push(l.line[e]),i.column.push(l.column[e]),d.set(e,i.length),i.length++}a.push(d)})),{frameTable:i,translationMaps:a}}function Kd(e,t,n){const r=[],o={frame:[],prefix:[],category:[],subcategory:[],length:0};return n.forEach(((n,a)=>{const{stackTable:i}=n,s=new Map,l=t[a];for(let t=0;t<i.length;t++){const n=l.get(i.frame[t]);if(void 0===n)throw new Error(xn`
|
59
|
+
We couldn't find the frame of stack ${t} in the translation map.
|
60
|
+
This is a programming error.
|
61
|
+
`);const r=(c=i.category[t],null===e?c:e[a].get(c));if(void 0===r)throw new Error(xn`
|
62
|
+
We couldn't find the category of stack ${t} in the translation map.
|
63
|
+
This is a programming error.
|
64
|
+
`);const d=i.prefix[t],u=null===d?null:s.get(d);if(void 0===u)throw new Error(xn`
|
65
|
+
We couldn't find the prefix of stack ${t} in the translation map.
|
66
|
+
This is a programming error.
|
67
|
+
`);o.frame.push(n),o.category.push(r),o.subcategory.push(i.subcategory[t]),o.prefix.push(u),s.set(t,o.length),o.length++}var c;r.push(s)})),{stackTable:o,translationMaps:r}}function Yd(e,t){const n={...t.markers},r=[];return e.forEach((e=>{if(e.stringTable.hasString("CompositorScreenshot")){const o=new Map,{markers:a,stringTable:i}=e;for(let r=0;r<a.length;r++){const s=a.data[r];if(null!==s&&"CompositorScreenshot"===s.type){const l=a.name[r],c=l>=0?i.getString(l):null,d=void 0===s.url?void 0:i.getString(s.url),u={...s,url:void 0===d?void 0:t.stringTable.indexForString(d)};n.data.push(u),n.name.push(null===c?-1:t.stringTable.indexForString(c)),n.startTime.push(a.startTime[r]),n.endTime.push(a.endTime[r]),n.phase.push(a.phase[r]),n.category.push(a.category[r]),n.threadId&&n.threadId.push(a.threadId?a.threadId[r]:e.tid),o.set(r,n.length),n.length++}}r.push(o)}})),{markerTable:n,translationMaps:r}}const qd=class{constructor(e){return new window.Worker(`/${e}.js`)}},Jd=[];function Xd(e){e.onmessage=function(e){const t=e.data,n=Jd[t.callbackID];n&&(n[t.type](t.data),Jd[t.callbackID]=null)}}function Qd(e){return new Promise((function(t,n){const r=new qd("zee-worker");Xd(r),r.postMessage({request:"decompress",data:e,callbackID:Jd.length},[e.buffer]),Jd.push({success:t,error:n})}))}function eu(e){return e.byteLength>=3&&31===e[0]&&139===e[1]&&8===e[2]}const tu="application/vnd.firefox-profiler+json;version=1.0";async function nu(e){let t=e;if(!t.startsWith("https://profiler.firefox.com/")){const e=new URL(t);e.protocol="https",e.host="profiler.firefox.com",e.port="",t=e.toString()}const n=`${Mn}/shorten`,r={longUrl:t},o=await fetch(n,{method:"POST",headers:{Accept:tu,"Content-Type":"application/json"},body:JSON.stringify(r)});if(!o.ok)throw new Error(`An error happened while shortening the long url ${t}: ${o.statusText} (${o.status})`);return(await o.json()).shortUrl}class ru extends Error{constructor(e,t=null){super(e),this.attempt=void 0,this.__proto__=ru.prototype,this.name="TemporaryError",this.attempt=t}}function ou(e,t){const n=qe(Ds,(t=>function(e){const t=new Sn,{resourceTable:n,translationMaps:r}=Vd(t,e),{nativeSymbols:o,translationMaps:a}=jd(t,e),{funcTable:i,translationMaps:s}=Zd(r,t,e),{frameTable:l,translationMaps:c}=$d(null,s,a,t,e),{stackTable:d,translationMaps:u}=Kd(null,c,e),h=function(e,t){const n=t.map((e=>e.samples)),r=Array(n.length).fill(0),o=[],a={weightType:"samples",weight:null,eventDelay:[],stack:[],time:[],length:0,threadId:o};for(;;){let i=null,s=1/0;for(let e=0;e<n.length;e++){const t=n[e],o=r[e],a=t.time[o];o<t.length&&a<s&&(i=e,s=a)}if(null===i)break;const l=n[i],c=r[i],d=l.stack[c],u=null===d?null:e[i].get(d);if(void 0===u)throw new Error(xn`
|
68
|
+
We couldn't find the stack of sample ${c} in the translation map.
|
69
|
+
This is a programming error.
|
70
|
+
`);a.stack.push(u),nt(a.eventDelay).push(null),a.time.push(l.time[c]),o.push(l.threadId?l.threadId[c]:t[i].tid),a.length++,r[i]++}return a}(u,e),{markerTable:p}=function(e,t,n){const r=[],o={data:[],name:[],startTime:[],endTime:[],phase:[],category:[],length:0,threadId:r},a=[];return n.forEach(((n,i)=>{const s=e[i],l=new Map,{markers:c,stringTable:d}=n;for(let e=0;e<c.length;e++){const a=c.name[e],i=a>=0?d.getString(a):null,u=c.data[e];if(u&&"cause"in u&&u.cause){const e=u.cause.stack,t=s.get(e);if(void 0===t)throw new Error(`Missing old stack entry ${e} in the translation map.`);o.data.push({...u,cause:{...u.cause,stack:t}})}else if(u&&"CompositorScreenshot"===u.type){const e=void 0===u.url?void 0:d.getString(u.url);o.data.push({...u,url:void 0===e?void 0:t.indexForString(e)})}else o.data.push(u);o.name.push(null===i?-1:t.indexForString(i)),o.startTime.push(c.startTime[e]),o.endTime.push(c.endTime[e]),o.phase.push(c.phase[e]),o.category.push(c.category[e]),r.push(c.threadId?c.threadId[e]:n.tid),l.set(e,o.length),o.length++}a.push(l)})),{markerTable:o,translationMaps:a}}(u,t,e);let m=1/0,f=-1/0,g=1/0,A=-1/0;for(const t of e)m=Math.min(t.processStartupTime,m),f=Math.max(t.processShutdownTime||1/0,f),g=Math.min(t.registerTime,g),A=Math.max(t.unregisterTime||1/0,A);return{processType:"merged",processStartupTime:m,processShutdownTime:f===1/0?null:f,registerTime:g,unregisterTime:A===1/0?null:A,pausedRanges:[],name:"Merged thread",pid:"Merged thread",tid:"Merged thread",isMainThread:!0,samples:h,markers:p,stackTable:d,frameTable:l,stringTable:t,funcTable:i,nativeSymbols:o,resourceTable:n}}([...e].map((e=>t.threads[e]))))),r=t=>1===e.size?Ds(t).threads[nt(rt(e))]:n(t),o=e=>r(e).stringTable,a=e=>r(e).samples,i=e=>r(e).nativeAllocations,s=e=>r(e).jsAllocations,l=qe(r,Xs,Ls,((e,t,n)=>null!==e.samples&&void 0!==e.samples.threadCPUDelta&&t?function(e,t,n){const{samples:r}=e,{threadCPUDelta:o}=r;if(!o)throw new Error("processThreadCPUDelta should not be called for the profiles that don't include threadCPUDelta.");const a=new Array(r.length),i=Hi(t.threadCPUDelta);for(let e=0;e<r.length;e++){const s=Vi(o,e),l=t.threadCPUDelta;switch(l){case"µs":case"ns":{const t=0===e?n*i:(r.time[e]-r.time[e-1])*i;a[e]=s>t?t:s;break}case"variable CPU cycles":a[e]=s;break;default:throw Je(l,"Unhandled threadCPUDelta unit in the processing.")}}return function(t){const n={...r,threadCPUDelta:t};return{...e,samples:n}}(a)}(e,t,n):e)),c=qe(l,Fr),d=e=>c(e).thread,u=qe(d,Dl,((e,t)=>0===t.size?e:gr(e,t))),h=qe(d,Rl,((e,t)=>0===t.size?e:gr(e,t))),p=qe(u,Is,((e,t)=>{const{start:n,end:r}=t;return yr(e,n,r)})),m=qe(r,Ja,((e,t)=>{switch(t){case"timing":if(0===e.samples.length&&e.nativeAllocations&&e.nativeAllocations.length>0)return"native-allocations";break;case"js-allocations":if(!e.jsAllocations)return"timing";break;case"native-allocations":case"native-retained-allocations":case"native-deallocations-sites":case"native-deallocations-memory":if(!e.nativeAllocations)return"timing";break;default:Je(t,"Unhandled call tree sumary strategy.")}return t})),f=qe(r,m,Jr),g=qe(f,Is,((e,{start:t,end:n})=>{const[r]=br(e,t,n);return r})),A=qe(zs,r,Pr),b=qe(r,A,Nr),C=qe(a,r,Ar),y=qe(s,r,Ar),v=qe(i,r,Ar),w=e=>r(e).jsTracer||null,k=qe(w,r,((e,t)=>null===e?null:function(e,t){const n=[],{stringTable:r,funcTable:o}=t,a=md(t);for(let t=0;t<e.length;t++){const i=e.events[t],s=e.column[t],l=e.line[t];let c=r.getString(i),d=null;if(null!==s&&null!==l){const e=`${c}:${l}:${s}`,t=a.get(e);void 0!==t&&(null===t?c=`(multiple matching functions) ${c}`:(d=t,c=`ƒ ${r.getString(o.name[d])} ${c}`))}for(let r=0;r<=n.length;r++){let o=n[r];o||(o={start:[],end:[],index:[],label:[],func:[],name:"Tracing Information",length:0},n.push(o));const a=e.timestamps[t]/1e3,i=e.durations[t],s=null===i?0:i/1e3,l=o.end[o.length-1];if(void 0===l||l<=a){o.start.push(a),o.end.push(a+s),o.label.push(c),o.index.push(t),o.func.push(d),o.length++;break}}}return n}(e,t))),E=qe(w,o,((e,t)=>null===e?null:function(e,t){const n=new Map,r=[],o=/:\/\//;function a(a,i,s){if(i===s)return;const l=e.events[a],c=t.getString(l),d=function(e){const n=r[e];if(void 0!==n)return n;const a=o.test(t.getString(e));return r[e]=a,a}(l)?"Script":c;let u=n.get(d);void 0===u&&(u={start:[],end:[],index:[],label:[],func:[],name:d,length:0},n.set(d,u));{const e=u.start[u.length-1],t=u.end[u.length-1],n=u.end[u.length-2];if(s<i)throw new Error("end is less than the start");if(t<e)throw new Error(`currEnd < currStart "${c} - ${t} < ${e}"`);if(e<n)throw new Error(`currStart < prevEnd "${c} - ${e} < ${n}"`)}u.start.push(i/1e3),u.end.push(s/1e3),u.label.push(c),u.index.push(a),u.length++}const i=[],s=[],l=[];let c=-1;for(let n=0;n<e.length;n++){const r=e.timestamps[n],o=e.durations[n];let d=r+(null===o?0:o);if(-1!==c)for(;;){const o=i[c],u=s[c],h=l[c];if(o<=r&&u>r&&u<d&&(d=u),!(u<=r)){if(u>d){a(h,o,r),i[c]=d,c++,i[c]=r,s[c]=d,l[c]=n;break}if(u===d){o!==r?(a(h,o,r),i[c]=r,l[c]=n):l[c]=n;break}{const a=t.getString(e.events[h]),i=t.getString(e.events[n]);throw console.error("Current JS Tracer information:",{jsTracer:e,stringTable:t,prefixEventIndex:h,currentEventIndex:n}),console.error(`Prefix (parent) times for "${a}": ${o}ms to ${u}ms`),console.error(`Current (child) times for "${i}": ${r}ms to ${d}ms`),new Error("The JS Tracer algorithm encountered some data it could not handle.")}}if(a(h,o,u),c--,-1===c){c=0,l[c]=n,i[c]=r,s[c]=d;break}}else c=0,i[c]=r,s[c]=d,l[c]=n}for(;c>=0;c--)a(l[c],i[c],s[c]);return[...n.values()].sort(((e,t)=>e.name>t.name?1:e.name<t.name?-1:0))}(e,t))),x=qe(a,Ls,((e,t)=>null===e||void 0===e.eventDelay?null:function(e,t){if(!e.eventDelay)throw new Error("processEventDelays step should not be called for older profiles");const n=new Float32Array(e.length),r=nt(e.eventDelay,"eventDelays field is not present in this profile");let o=e.time[0],a=0;for(let i=1;i<e.length;i++){const s=r[i],l=r[i+1]||0,c=e.time[i];if(null==s)continue;if(s<l)continue;const d=c-s,u=i-Math.trunc(s/t);if(u<0){o=c,a=i;continue}if(a===u){o=d,a=u;continue}let h=c-o;for(let t=a+1;t<=u;t++)n[t]+=h,h-=e.time[t+1]-e.time[t];o=d,a=u}let i=Number.MAX_SAFE_INTEGER,s=0;for(const e of n)e&&(i=Math.min(e,i),s=Math.max(e,s));return{eventDelays:n,minDelay:i,maxDelay:s,delayRange:s-i}}(e,t)));return{getThread:r,getStringTable:o,getSamplesTable:a,getSamplesWeightType:e=>a(e).weightType||"samples",getNativeAllocations:i,getJsAllocations:s,getThreadRange:e=>cr(r(e),Ls(e)),getReservedFunctionsForResources:e=>c(e).reservedFunctionsForResources,getRangeFilteredThread:p,getUnfilteredSamplesForCallTree:f,getSampleIndexOffsetFromCommittedRange:g,getFriendlyThreadName:A,getThreadProcessDetails:b,getViewOptions:e=>ks(e).perThread[t]||hs,getJsTracerTable:w,getExpensiveJsTracerTiming:k,getExpensiveJsTracerLeafTiming:E,getHasUsefulTimingSamples:C,getHasUsefulJsAllocations:y,getHasUsefulNativeAllocations:v,getCanShowRetainedMemory:e=>{const t=i(e);return!!t&&"memoryAddress"in t},getCPUProcessedThread:l,getFunctionsReservedThread:d,getTabFilteredThread:u,getActiveTabFilteredThread:h,getProcessedEventDelays:e=>nt(x(e),"Could not get the processed event delays"),getCallTreeSummaryStrategy:m}}function au(e,t,n){const r=_t()(Xo,{cache:new(un())}),o=e=>Ni(e,n),a=qe(e.getRangeFilteredThread,o,Us,e.getMarkerGetter,e.getFullMarkerListIndexes,tl,Qs,((e,t,n,o,a,i,s)=>t.reduce(((e,t)=>r(e,t,n,o,a,i,s)),e))),i=qe(a,qa,Us,pr),s=qe(i,xi,((e,t)=>function(e,t){return Kn("filterThreadToSearchStrings",(()=>t&&t.length?t.reduce(fr,e):e))}(e,t))),l=qe(s,Xa,Us,((e,t,n)=>t?function(e,t){return Kn("invertCallstack",(()=>{const{stackTable:n,frameTable:r}=e,o={length:0,frame:[],category:[],subcategory:[],prefix:[]},a=new Map,i=r.length;function s(e,n,r,s){const l=(null===e?-1:e)*i+n;let c=a.get(l);return void 0===c?(c=o.length++,o.prefix[c]=e,o.frame[c]=n,o.category[c]=r,o.subcategory[c]=s,a.set(l,c)):o.category[c]!==r?(o.category[c]=t,o.subcategory[c]=0):o.subcategory[c]!==s&&(o.subcategory[c]=0),c}const l=new Map;return _r(e,o,(function(e){if(null===e)return null;let t=l.get(e);if(void 0===t){t=null;for(let r=e;null!==r;r=n.prefix[r])t=s(t,n.frame[r],n.category[r],n.subcategory[r]);l.set(e,t)}return t}))}))}(e,n):e)),c=qe(l,Ms,((e,t)=>{if(!t.hasSelection)return e;const{selectionStart:n,selectionEnd:r}=t;return yr(e,n,r)})),d=qe(l,e.getCallTreeSummaryStrategy,Jr),u=qe(c,e.getCallTreeSummaryStrategy,Jr),h=qe(d,Ms,e.getSampleIndexOffsetFromCommittedRange,((e,t,n)=>{if(!t.hasSelection)return n;const[r]=br(e,t.selectionStart,t.selectionEnd);return n+r})),p=qe(js,a,e.getFriendlyThreadName,o,Vo);return{getTransformStack:o,getRangeAndTransformFilteredThread:a,getFilteredThread:l,getPreviewFilteredThread:c,getFilteredSamplesForCallTree:d,getPreviewFilteredSamplesForCallTree:u,getSampleIndexOffsetFromPreviewRange:h,getTransformLabelL10nIds:p,getLocalizedTransformLabels:qe(p,(e=>e.map((e=>X.createElement(ue,{id:e.l10nId,vars:{item:e.item},key:e.item})))))}}function iu(e,t,n,r){const o=new Map,a=new Map;for(const i of t){const t=e(i),s=e=>{e.start.push(t.start),e.end.push(null===t.end?t.start:t.end),e.label.push(n(i)),e.index.push(i),e.length++},l=r?r[t.category].name:"None",c=t.data&&"Network"===t.data.type?"Network Requests":t.name,d=({instantOnly:e})=>({start:[],end:[],index:[],label:[],name:c,bucket:l,instantOnly:e,length:0});if(null===t.end){let e=a.get(c);e||(e=d({instantOnly:!0}),a.set(c,e)),s(e);continue}let u=o.get(c);void 0===u&&(u=[],o.set(c,u));const h=u.find((e=>e.end[e.length-1]<=t.start));if(h){s(h);continue}const p=d({instantOnly:!1});s(p),u.push(p)}const i=[...a.values()].concat(...o.values());return i.sort(((e,t)=>{if(e.bucket!==t.bucket)return"Test"===e.bucket?-1:"Test"===t.bucket||"Other"===e.bucket?1:"Other"===t.bucket?-1:e.bucket>t.bucket?1:-1;if(e.name===t.name)return e.instantOnly?-1:t.instantOnly?1:0;if("Network"===e.bucket){if("Network Requests"===e.name)return 1;if("Network Requests"===t.name)return-1}return e.name.toLowerCase()>t.name.toLowerCase()?1:-1})),i}function su(e,t,n,r){const o=iu(e,t,n,r),a=[];let i;for(const e of o)e.bucket!==i&&(a.push(e.bucket),i=e.bucket),a.push(e);return a}const lu=qe(ks,(e=>e.rightClickedMarker));function cu(e,t,n){const r=qe((t=>e.getThread(t).markers),e.getStringTable,(t=>e.getThread(t).tid),e.getThreadRange,al,vo),o=qe(r,(({markers:e})=>e)),a=qe(r,(({markerIndexToRawMarkerIndexes:e})=>e)),i=qe(e.getSamplesTable,Us,((e,t)=>function(e,t,n){const r=()=>i.push({start:a-o,end:a,name:"Jank",category:n,threadId:null,data:{type:"Jank"}});let o=0,a=0;const i=[];for(let t=0;t<e.length;t++){let n;e.eventDelay?n=e.eventDelay[t]:e.responsiveness&&(n=e.responsiveness[t]),null!=n&&(n<o&&o>=50&&r(),o=n,a=e.time[t])}return o>=50&&r(),i}(e,0,t))),s=qe(o,i,((e,t)=>[...e,...t].sort(((e,t)=>e.start-t.start)))),l=qe(s,(e=>t=>{const n=e[t];if(!n)throw new Error(xn`
|
71
|
+
Tried to get marker index ${t} but it's not in the full list.
|
72
|
+
This is a programming error.
|
73
|
+
`);return n})),c=qe(s,(e=>e.map(((e,t)=>t)))),d=e=>(t,n)=>ko(t,n,e),u=qe(l,c,Is,((e,t,n)=>{const{start:r,end:o}=n;return Eo(e,t,r,o)})),h=qe(l,u,Dl,bo),p=qe(l,h,el,tl,(()=>"timeline-overview"),Oo),m=qe(l,c,Rl,((e,t,n)=>bo(e,t,n,!1))),f=qe(l,h,d(To)),g=qe(l,h,i,((e,t,n)=>{const r=n.length>0?"Jank":"BHR-detected hang";return d((e=>Boolean(e.data&&e.data.type===r)))(e,t)})),A=qe(l,h,tl,_i,Qs,Ao),b=qe(l,A,Ms,((e,t,n)=>{if(!n.hasSelection)return t;const{selectionStart:r,selectionEnd:o}=n;return Eo(e,t,r,o)})),C=qe(s,(e=>e.every((e=>!xo(e))))),y=qe(l,u,d(xo)),v=qe(l,u,d(So)),w=qe(l,y,tl,Ii,Qs,Ao),k=qe(s,(e=>e.every((e=>xo(e))))),E=qe(l,A,el,tl,((e,t,n,r)=>Oo(e,t,n,r,"marker-chart",_o(r)))),x=qe(l,b,el,tl,((e,t,n,r)=>Oo(e,t,n,r,"marker-table",_o(r)))),S=qe(l,el,tl,Qs,e.getStringTable,(()=>"tooltipLabel"),ho),T=qe(l,el,tl,Qs,e.getStringTable,(()=>"tableLabel"),ho),B=qe(l,el,tl,Qs,e.getStringTable,(()=>"chartLabel"),ho),_=T,I=qe(l,E,B,Qs,su),P=qe(l,h,el,tl,(()=>"timeline-fileio"),(()=>Bo),Oo),N=qe(l,h,el,tl,(()=>"timeline-memory"),Oo),M=qe(l,h,el,tl,(()=>"timeline-ipc"),Oo),F=qe(l,y,B,iu),R=qe(l,v,B,iu),D=qe(l,u,No),L=t=>e.getViewOptions(t).selectedMarker,O=t=>e.getViewOptions(t).selectedNetworkMarker,U=qe(lu,(e=>null!==e&&e.threadsKey===n?e.markerIndex:null)),z=qe(l,U,((e,t)=>"number"==typeof t?e(t):null)),G=qe(ks,(({hoveredMarker:e})=>null!==e&&e.threadsKey===n?e.markerIndex:null)),W={};return{getMarkerGetter:l,getTimelineJankMarkerIndexes:g,getDerivedMarkerInfo:r,getMarkerIndexToRawMarkerIndexes:a,getFullMarkerList:s,getFullMarkerListIndexes:c,getNetworkMarkerIndexes:y,getSearchFilteredNetworkMarkerIndexes:w,getAreMarkerPanelsEmptyInFullRange:k,getMarkerTableMarkerIndexes:x,getMarkerChartMarkerIndexes:E,getMarkerTooltipLabelGetter:S,getMarkerTableLabelGetter:T,getMarkerLabelToCopyGetter:_,getMarkerChartTimingAndBuckets:I,getCommittedRangeFilteredMarkerIndexes:u,getCommittedRangeAndTabFilteredMarkerIndexes:h,getTimelineOverviewMarkerIndexes:p,getActiveTabFilteredMarkerIndexesWithoutGlobals:m,getTimelineVerticalMarkerIndexes:f,getTimelineFileIoMarkerIndexes:P,getTimelineMemoryMarkerIndexes:N,getTimelineIPCMarkerIndexes:M,getNetworkTrackTiming:F,getRangeFilteredScreenshotsById:D,getSearchFilteredMarkerIndexes:A,getPreviewFilteredMarkerIndexes:b,getSelectedMarkerIndex:L,getSelectedMarker:e=>{const t=l(e),n=L(e);return null===n?null:t(n)},getSelectedNetworkMarkerIndex:O,getSelectedNetworkMarker:e=>{const t=l(e),n=O(e);return null===n?null:t(n)},getIsNetworkChartEmptyInFullRange:C,getUserTimingMarkerIndexes:v,getUserTimingMarkerTiming:R,getRightClickedMarkerIndex:U,getRightClickedMarker:z,getHoveredMarkerIndex:G,getMarkerTrackSelectors:(t,n)=>{const r=t.name;return W[r]||(W[r]={}),W[r][n]||(W[r][n]=function(t,n){const r=qe(s,e.getStringTable,((e,r)=>{if(void 0===t.graphs)throw new Error(`No graphs for marker ${n}. This shouldn't happen.`);const o=[];let a=1/0,i=-1/0;const s=[],{graphs:l,name:c}=t,d=l.map((e=>(s.push([]),e.key))),u=r.getString(n);return e.forEach(((e,t)=>{const n=e.data;if(n&&e.name===u&&so(tl,e.name,n)===c&&d.every((e=>e in n))){o.push(t);for(let e=0;e<d.length;++e){const t=n[d[e]];s[e].push(t),t<a&&(a=t),t>i&&(i=t)}}})),{minNumber:a,maxNumber:i,numbersPerLine:s,markerIndexes:o}})),o=qe(r,Is,l,((e,t,n)=>Cr({time:e.markerIndexes.map((e=>n(e).start)),length:e.markerIndexes.length},t.start,t.end)));return{getCollectedCustomMarkerSamples:r,getCommittedRangeMarkerSampleRange:o}}(t,n)),W[r][n]}}}function du(e,t,n,r){const{callNodeTable:o,stackIndexToCallNodeIndex:a}=t,i=Array.from({length:n},(()=>({start:[],end:[],callNode:[],length:0}))),s={startTimeByDepth:[],callNodeIndexByDepth:[]};let l=-1;for(let t=0;t<e.length;t++){const n=e.stack[t],r=e.time[t];if(null===n)hu(i,s,-1,l,r),l=-1;else{const e=a[n],t=o.depth[e];hu(i,s,uu(o,e,s,t),l,r),pu(o,s,t,e,r),l=t}}const c=e.length-1;return hu(i,s,-1,l,e.time[c]+r),i}function uu(e,t,n,r){let o=t;for(let t=r;t>=0;t--){if(n.callNodeIndexByDepth[t]===o)return t;o=e.prefix[o]}return-1}function hu(e,t,n,r,o){for(let a=n+1;a<=r;a++)e[a].start.push(t.startTimeByDepth[a]),e[a].end.push(o),e[a].callNode.push(t.callNodeIndexByDepth[a]),e[a].length++,delete t.callNodeIndexByDepth[a],delete t.startTimeByDepth[a]}function pu(e,t,n,r,o){let a=r;for(let r=n;r>=0&&-1!==a&&void 0===t.callNodeIndexByDepth[r];r--)t.callNodeIndexByDepth[r]=a,t.startTimeByDepth[r]=o,a=e.prefix[a]}function mu(e,t,n){const{callNodeChildCount:r,callNodeSummary:o,rootTotalSummary:a}=n,{roots:i,children:s}=function(e,t,n,r){const o=[],a=new Uint32Array(t.length),i=new Uint32Array(t.length+1);let s=0,l=0;for(;s<t.length;s++){if(i[s]=l,l+=n[s],0===r[s])continue;const c=t.prefix[s];if(-1===c){o.push(s);continue}const d=e.stringTable.getString(e.funcTable.name[t.func[s]]),u=i[c],h=i[c]+n[c]-1;let p=u;for(;p<h&&!(0!==a[p+1]&&d>e.stringTable.getString(e.funcTable.name[t.func[a[p+1]]]));)a[p]=a[p+1],p++;a[p]=s}return i[s]=l,o.sort(((n,r)=>{const[o,a]=[n,r].map((n=>e.stringTable.getString(e.funcTable.name[t.func[n]])));return o<a?1:o===a?0:-1})),{roots:o,children:{array:a,offsets:i}}}(e,t.callNodeTable,r,o.total),l=[],c=i.map((e=>({nodeIndex:e,depth:0}))),d=[0];for(;c.length;){const{depth:e,nodeIndex:t}=c.pop();let n=l[e];void 0===n&&(n={start:[],end:[],selfRelative:[],callNode:[],length:0},l[e]=n);const r=Math.abs(o.total[t]/a),i=Math.abs(o.self[t]/a);n.start.push(d[e]),n.end.push(d[e]+r),n.selfRelative.push(i),n.callNode.push(t),n.length++,d[e+1]=d[e],d[e]+=r;for(let n=s.offsets[t];n<s.offsets[t+1];n++)c.push({nodeIndex:s.array[n],depth:e+1})}return l}const fu=qe(ks,(e=>e.rightClickedCallNode));var gu=n(6093);const Au={totalAddressHits:new Map,selfAddressHits:new Map};function bu(e,t){if(null===e)return Au;const{selfAddress:n,stackAddresses:r}=e,o=new Map,a=new Map;for(let e=0;e<t.length;e++){const i=t.stack[e];if(null===i)continue;const s=t.weight?t.weight[e]:1,l=r[i];if(null!==l)for(const e of l){const t=o.get(e)??0;o.set(e,t+s)}const c=n[i];if(null!==c){const e=a.get(c)??0;a.set(c,e+s)}}return{totalAddressHits:o,selfAddressHits:a}}const Cu=Ye(Ke,{maxSize:2});function yu(e,t,n){const r=qe(e.getThread,Ls,((e,t)=>{const{time:n}=e.samples;return 0===n.length?null:{start:n[0],end:n[n.length-1]+t}})),o=Cu((t=>e.getFilteredThread(t).stackTable),(t=>e.getFilteredThread(t).frameTable),(t=>e.getFilteredThread(t).funcTable),Us,rr),a=qe(e.getFilteredThread,ei,Xa,(({stackTable:e,frameTable:t,funcTable:n,stringTable:r},o,a)=>null===o?null:(0,gu.Up)(e,t,n,r.indexForString(o),a))),i=qe(e.getFilteredThread,ri,(({nativeSymbols:e},t)=>null===t?null:e.address.findIndex(((n,r)=>n===t.address&&e.libIndex[r]===t.libIndex)))),s=qe(e.getFilteredThread,i,Xa,(({stackTable:e,frameTable:t,funcTable:n},r,o)=>null===r?null:function(e,t,n,r,o){return o?function(e,t,n,r){const o=[],a=[];for(let n=0;n<e.length;n++){const i=e.frame[n],s=e.prefix[n],l=t.nativeSymbol[i];let c=null,d=null;if(null===s)l===r&&(c=t.address[i],-1!==c&&(d=new Set([c])));else if(c=o[s],d=a[s],l===r){const e=t.address[i];-1!==e&&(null===d?d=new Set([e]):d.has(e)||(d=new Set(d),d.add(e)))}o.push(c),a.push(d)}return{selfAddress:o,stackAddresses:a}}(e,t,0,r):function(e,t,n,r){const o=[],a=[];for(let n=0;n<e.length;n++){const i=e.frame[n],s=e.prefix[n],l=t.nativeSymbol[i];let c=null,d=null!==s?a[s]:null;l===r&&(c=t.address[i],-1!==c&&(null===d?d=new Set([c]):d.has(c)||(d=new Set(d),d.add(c)))),o.push(c),a.push(d)}return{selfAddress:o,stackAddresses:a}}(e,t,0,r)}(e,t,0,r,o))),l=qe(e.getViewOptions,(e=>e.selectedCallNodePath)),c=qe(o,l,((e,t)=>Er(t,e.callNodeTable))),d=qe(e.getViewOptions,(e=>e.expandedCallNodePaths)),u=qe(o,d,(({callNodeTable:e},t)=>wr(Array.from(t),e))),h=qe(e.getFilteredThread,e.getTabFilteredThread,o,c,((e,t,{callNodeTable:n,stackIndexToCallNodeIndex:r},o)=>e.isJsTracer?null:ar(n,or(e.samples.stack,r),or(t.samples.stack,r),o))),p=qe(e.getFilteredThread,o,((e,{callNodeTable:t,stackIndexToCallNodeIndex:n})=>function(e,t){return function(n,r){const o=t[n],a=t[r];return null===o?null===a?0:1:null===a?-1:function(t,n){const r=e.depth[t],o=e.depth[n];let a=r,i=o;for(;a>i;)t=e.prefix[t],a--;for(;i>a;)n=e.prefix[n],i--;if(t===n)return r-o;for(;;){const r=e.prefix[t],o=e.prefix[n];if(r===o)break;t=r,n=o}return t-n}(o,a)}}(t,or(e.samples.stack,n)))),m=qe(e.getFilteredSamplesForCallTree,o,Tr),f=qe(e.getPreviewFilteredSamplesForCallTree,o,Tr),g=qe(e.getUnfilteredSamplesForCallTree,(e=>e.weightType||"samples")),A=qe(e.getPreviewFilteredSamplesForCallTree,o,Ls,Xa,Yr);return{unfilteredSamplesRange:r,getWeightTypeForCallTree:g,getCallNodeInfo:o,getSourceViewStackLineInfo:a,getAssemblyViewNativeSymbolIndex:i,getAssemblyViewStackAddressInfo:s,getSelectedCallNodePath:l,getSelectedCallNodeIndex:c,getExpandedCallNodePaths:d,getExpandedCallNodeIndexes:u,getSamplesSelectedStatesInFilteredThread:h,getTreeOrderComparatorInFilteredThread:p,getCallTree:qe(e.getPreviewFilteredThread,Ls,o,Qs,qa,A,g,qr),getSourceViewLineTimings:qe(a,e.getPreviewFilteredSamplesForCallTree,gu.cK),getAssemblyViewAddressTimings:qe(s,e.getPreviewFilteredSamplesForCallTree,bu),getTracedTiming:qe(e.getFilteredSamplesForCallTree,o,Ls,Xa,Xr),getStackTimingByDepth:qe(e.getFilteredSamplesForCallTree,o,m,Ls,du),getFilteredCallNodeMaxDepth:m,getPreviewFilteredCallNodeMaxDepth:f,getFlameGraphTiming:qe(e.getPreviewFilteredThread,o,A,mu),getRightClickedCallNodeIndex:qe(fu,o,((e,{callNodeTable:t})=>null!==e&&n===e.threadsKey?Er(e.callNodePath,t):null))}}const vu={},wu=_t()((e=>{const t=new Set((""+e).split(",").map((e=>+e)));return Su(t,e)}),{limit:5}),ku=e=>{if(e in vu)return vu[e];const t=Su(new Set([e]));return vu[e]=t,t},Eu=e=>{let t=null,n=null;return"number"==typeof e?t=e:n=e,null!==t?ku(t):(n=nt(n),xu(Ur(n),n))},xu=(e,t=new Set((""+e).split(",").map((e=>+e))))=>1===t.size?ku(nt(rt(t))):wu(e);function Su(e,t=Ur(e)){let n=ou(e,t);var r;return n={...n,...cu(n,0,t)},n={...n,...au(n,0,t)},n={...n,...yu(n,0,t)},n={...n,...(r=n,{getUsefulTabs:qe(r.getThread,r.getIsNetworkChartEmptyInFullRange,r.getJsTracerTable,((e,t,n)=>{if("comparison"===e.processType)return["calltree"];let r=ea;t&&(r=r.filter((e=>"network-chart"!==e))),n||(r=r.filter((e=>"js-tracer"!==e)));const{samples:o,jsAllocations:a,nativeAllocations:i}=e;return[o,a,i].some((t=>Ar(t,e)))||(r=r.filter((e=>!ta.includes(e)))),r})),getCombinedTimingRows:qe(r.getUserTimingMarkerTiming,r.getStackTimingByDepth,((e,t)=>[...e,...t]))})},n}const Tu=(()=>{const e=Eu(0),t={};for(const n in e)t[n]=e=>Eu(pi(e))[n](e);return t})(),Bu=(()=>{const e=qe(Tu.getSelectedCallNodePath,Tu.getFilteredThread,((e,{stringTable:t,funcTable:n})=>{if(!e.length)return"";const r=ir(e);return t.getString(n.name[r])})),t=qe(Tu.getSelectedCallNodePath,Tu.getFilteredThread,((e,{funcTable:t})=>{if(!e.length)return!1;const n=ir(e);return t.isJS[n]})),n=qe(Tu.getSelectedCallNodePath,Tu.getFilteredThread,((e,{stringTable:t,funcTable:n,resourceTable:r})=>e.length?Mr(ir(e),n,r,t):"")),r=qe(Tu.getSelectedCallNodePath,Tu.getCallNodeInfo,Ls,Xa,Tu.getPreviewFilteredThread,Tu.getThread,Tu.getSampleIndexOffsetFromPreviewRange,Qs,Tu.getPreviewFilteredSamplesForCallTree,Tu.getUnfilteredSamplesForCallTree,Gl,sr),o=qe(Tu.getFilteredThread,ei,Tu.getCallNodeInfo,Tu.getSelectedCallNodeIndex,Xa,(({stackTable:e,frameTable:t,funcTable:n,stringTable:r},o,a,i,s)=>{if(null===o||null===i)return null;const l=a.callNodeTable.func[i],c=n.fileName[l];return null===c||r.getString(c)!==o?null:(0,gu.QK)(e,t,i,a,s)})),a=qe(o,Tu.getPreviewFilteredSamplesForCallTree,gu.cK),i=qe(Tu.getFilteredThread,Tu.getAssemblyViewNativeSymbolIndex,Tu.getCallNodeInfo,Tu.getSelectedCallNodeIndex,Xa,(({stackTable:e,frameTable:t},n,r,o,a)=>null===n||null===o?null:function(e,t,n,r,o,a){return a?function(e,t,n,{stackIndexToCallNodeIndex:r},o){const a=[],i=[];for(let s=0;s<e.length;s++){let l=null,c=null;const d=e.prefix[s];if(r[s]===n&&t.nativeSymbol[e.frame[s]]===o){const n=e.frame[s],r=t.address[n];-1!==r&&(c=new Set([r]),null===d&&(l=r))}else null===d||(l=a[d],c=i[d]);a.push(l),i.push(c)}return{selfAddress:a,stackAddresses:i}}(e,t,n,r,o):function(e,t,n,{stackIndexToCallNodeIndex:r},o){const a=[],i=[];for(let s=0;s<e.length;s++){let l=null,c=null;const d=e.frame[s];if(r[s]===n&&t.nativeSymbol[d]===o)l=t.address[d],-1!==l&&(c=new Set([l]));else{const t=e.prefix[s];c=null!==t?i[t]:null}a.push(l),i.push(c)}return{selfAddress:a,stackAddresses:i}}(e,t,n,r,o)}(e,t,o,r,n,a)));return{getName:e,getIsJS:t,getLib:n,getTimingsForSidebar:r,getSourceViewStackLineInfo:o,getSourceViewLineTimings:a,getAssemblyViewStackAddressInfo:i,getAssemblyViewAddressTimings:qe(i,Tu.getPreviewFilteredSamplesForCallTree,bu)}})(),_u=e=>e.icons,Iu=(e,t)=>{const n=_u(e);return null!==t&&n.has(t)?Nu(t):""},Pu=qe(_u,(e=>[...e].map((e=>({icon:e,className:Nu(e)})))));function Nu(e){return e.replace(/[/:.+>< ~()#,]/g,"_")}var Mu=n(5627),Fu=n.n(Mu);function Ru(e){switch(e.meta.updateChannel){case"esr":case"release":case"beta":return!0;default:return!1}}const Du=e=>e.publish,Lu=e=>Du(e).checkedSharingOptions,Ou=qe(Ds,xs,((e,t)=>{const{startTime:n,product:r}=e.meta,o=e=>e<10?`0${e}`:`${e}`,a=new Date(n+t.start);return`${r} ${o(a.getFullYear())}-${o(a.getMonth()+1)}-${o(a.getDate())} ${o(a.getHours())}.${o(a.getMinutes())} profile.json`})),Uu=qe(Lu,Ds,Is,yi,vi,il,ul,ll,Ul,ii,nl,((e,t,n,r,o,a,i,s,l,c,d)=>{let u=!0;for(const t in e)("includePreferenceValues"!==t||s)&&("includePrivateBrowsingData"!==t||l)&&(u=u&&e[t]);if(u)return null;const h=new Set;if("full"===c.type&&!e.includeHiddenThreads){for(const e of r){const t=a[e];if("process"===t.type){null!==t.mainThreadIndex&&h.add(t.mainThreadIndex);const e=nt(i.get(t.pid),"Expected to be able to get a local track by PID.");for(const t of e)"thread"===t.type&&h.add(t.threadIndex)}}for(const[e,t]of o){const n=nt(i.get(e),"Expected to be able to get a local track by PID");for(const e of t){const t=n[e];"thread"===t.type&&h.add(t.threadIndex)}}}const p="active-tab"!==c.type||e.includeAllTabs?null:d;return{shouldFilterToCommittedRange:e.includeFullTimeRange?null:n,shouldRemoveUrls:!e.includeUrls,shouldRemoveThreadsWithScreenshots:new Set(e.includeScreenshots?[]:t.threads.map(((e,t)=>t))),shouldRemoveThreads:h,shouldRemoveExtensions:!e.includeExtension,shouldRemovePreferenceValues:!e.includePreferenceValues,shouldRemovePrivateBrowsingData:!e.includePrivateBrowsingData,shouldRemoveTabsExceptTabID:p}}));let zu=null,Gu=null;const Wu=qe(Ds,(function(e){const t=zs(e);return zu===t&&null!==Gu||(zu=t,Gu=zs(e).map(((t,n)=>Eu(n).getDerivedMarkerInfo(e)))),Gu}),Uu,tl,(function(e,t,n,r){if(null===n)return{profile:e,isSanitized:!1,oldThreadIndexToNew:null,committedRanges:null};const o=n,a=new Map,i=new Set,s=new Set;let l=e.pages;if(l){if(o.shouldRemovePrivateBrowsingData||null!==o.shouldRemoveTabsExceptTabID){l=l.slice();for(let e=l.length-1;e>=0;e--){const t=l[e];let n=!1;o.shouldRemovePrivateBrowsingData&&t.isPrivateBrowsing&&(i.add(t.innerWindowID),n=!0),null!==o.shouldRemoveTabsExceptTabID&&(t.tabID===o.shouldRemoveTabsExceptTabID?s.add(t.innerWindowID):n=!0),n&&l.splice(e,1)}}o.shouldRemoveUrls&&(l=l.map(((e,t)=>({...e,url:no(e.url,`<Page #${t}>`)}))))}const c={...e,meta:{...e.meta,extensions:o.shouldRemoveExtensions?{id:[],name:[],baseURL:[],length:0}:e.meta.extensions},pages:l,threads:e.threads.reduce(((e,n,l)=>{const c=function(e,t,n,r,o,a,i){if(r.shouldRemoveThreads.has(n))return null;if(r.shouldRemovePrivateBrowsingData&&e.isPrivateBrowsing)return null;const s=e.stringTable.serializeToArray();let l=function(e){return{data:e.data.slice(),name:e.name.slice(),startTime:e.startTime.slice(),endTime:e.endTime.slice(),phase:e.phase.slice(),category:e.category.slice(),length:e.length}}(e.markers);const c=new Set;if(r.shouldRemoveUrls||r.shouldRemovePreferenceValues||r.shouldRemoveExtensions||r.shouldRemoveThreadsWithScreenshots.size>0||r.shouldRemovePrivateBrowsingData||null!==r.shouldRemoveTabsExceptTabID)for(let t=0;t<l.length;t++){let u=l.data[t];if(r.shouldRemovePreferenceValues&&u&&"PreferenceRead"===u.type&&(l.data[t]=(d=u,{...d,prefValue:""})),u&&r.shouldRemoveUrls){const n=l.name[t],r=lo(i,e.stringTable.getString(n),u);if(r&&(u=l.data[t]=Do(r,u)),"Network"===u.type){l.data[t]=Mo(u);const e=l.name[t];s[e]=s[e].replace(/:.*/,"")}"Text"===u.type&&(l.data[t]=Fo(u),u=l.data[t])}if(r.shouldRemoveExtensions&&u&&"Text"===u.type){const e=s[l.name[t]];l.data[t]=Ro(e,u)}if(r.shouldRemoveThreadsWithScreenshots.has(n)&&u&&"CompositorScreenshot"===u.type){const e=u.url;void 0!==e&&(s[e]=""),c.add(t)}r.shouldRemovePrivateBrowsingData&&(u&&"Network"===u.type&&u.isPrivateBrowsing&&c.add(t),u&&u.innerWindowID&&o.has(u.innerWindowID)&&c.add(t)),null!==r.shouldRemoveTabsExceptTabID&&(u?u.innerWindowID&&a.has(u.innerWindowID)||"CompositorScreenshot"!==u.type&&c.add(t):c.add(t))}var d;let u;if(c.size>0||null!==r.shouldFilterToCommittedRange)if(l=function(e,t,n,r){const o={data:[],name:[],startTime:[],endTime:[],phase:[],category:[],length:0},a=[];e.threadId&&(o.threadId=a);const i=new Map,s=t=>{n.has(t)||(i.set(t,o.length),o.name.push(e.name[t]),o.startTime.push(e.startTime[t]),o.endTime.push(e.endTime[t]),o.phase.push(e.phase[t]),o.data.push(e.data[t]),o.category.push(e.category[t]),e.threadId&&a.push(e.threadId[t]),o.length++)};if(null===r)for(let t=0;t<e.length;t++)s(t);else{const{start:e,end:n}=r,o=wo(0,t,e,n);for(const e of o)s(e)}return{rawMarkerTable:o,oldMarkerIndexToNew:i}}(l,t,c,r.shouldFilterToCommittedRange).rawMarkerTable,null!==r.shouldFilterToCommittedRange){const{start:t,end:n}=r.shouldFilterToCommittedRange;u=yr(e,t,n)}else u={...e};else u={...e};if(r.shouldRemoveUrls)for(let e=0;e<s.length;e++)s[e]=no(s[e]);if(r.shouldRemoveUrls&&u["eTLD+1"]&&delete u["eTLD+1"],o.size>0||null!==r.shouldRemoveTabsExceptTabID){const e=new Map,t=new Set,{frameTable:n,funcTable:i,resourceTable:l,stackTable:c,samples:d}=u;for(let i=0;i<n.length;i++){const s=n.innerWindowID[i],l=n.func[i],c=s&&o.has(s),d=s&&null!==r.shouldRemoveTabsExceptTabID&&!a.has(s);if(c||d){let t=e.get(l);t||(t=[],e.set(l,t)),t.push(i)}else t.add(l)}if(e.size){const r=new Set,o=u.funcTable=zn(i),a=u.frameTable={...n,innerWindowID:n.innerWindowID.slice(),func:n.func.slice(),line:n.line.slice(),column:n.column.slice()};for(const[n,l]of e.entries()){if(t.has(n)){const e=o.length;o.name.push(s.length),s.push(`<Func #${e}>`),o.isJS.push(i.isJS[n]),o.relevantForJS.push(i.isJS[n]),o.resource.push(-1),o.fileName.push(null),o.lineNumber.push(null),o.columnNumber.push(null),o.length++,l.forEach((t=>a.func[t]=e))}else o.name[n]=s.length,s.push(`<Func #${n}>`),o.fileName[n]=null,o.resource[n]>=0&&r.add(o.resource[n]),o.resource[n]=-1,o.lineNumber[n]=null,o.columnNumber[n]=null;l.forEach((e=>{a.line[e]=null,a.column[e]=null,a.innerWindowID[e]=null}))}if(r.size){const e=u.resourceTable={...l,lib:l.lib.slice(),name:l.name.slice(),host:l.host.slice()},t=new Set(o.resource);for(const n of r)t.has(n)||(e.name[n]=s.length,s.push(`<Resource #${n}>`),e.lib[n]=null,e.host[n]=null)}}const h=u.samples={...d,stack:d.stack.slice()},p=new Uint8Array(c.length),m=1,f=2;for(let e=0;e<c.length;e++){const t=c.prefix[e];if(null!==t&&(p[e]=p[t],p[e]===f))continue;const i=c.frame[e],s=n.innerWindowID[i];if(!s)continue;const l=o.has(s),d=null!==r.shouldRemoveTabsExceptTabID&&a.has(s);l?p[e]=f:d&&(p[e]=m)}for(let e=0;e<d.length;e++){const t=d.stack[e];if(null===t)continue;const n=p[t];n!==f&&(null===r.shouldRemoveTabsExceptTabID||n===m)||(h.stack[e]=null)}}return u.stringTable=new Sn(s),u.markers=l,function(e){if(e.markers.length>0)return!0;return e.samples.stack.some((e=>null!==e))}(u)?u:null}(n,t[l],l,o,i,s,r);return null!==c&&(a.set(l,e.length),e.push(c)),e}),[]),counters:e.counters?e.counters.reduce(((e,t)=>{const n=function(e,t,n){const r=n.get(e.mainThreadIndex);if(void 0===r)return null;let o=e;if(null!==t.shouldFilterToCommittedRange){const{start:e,end:n}=t.shouldFilterToCommittedRange;o=function(e,t,n){const r={...e};r.sampleGroups=[...r.sampleGroups];const{sampleGroups:o}=r;for(let e=0;e<o.length;e++){o[e]={...o[e]};const r=o[e],[a,i]=Cr(r.samples,t,n);r.samples={length:i-a,time:r.samples.time.slice(a,i),count:r.samples.count.slice(a,i),number:r.samples.number?r.samples.number.slice(a,i):void 0}}return r}(o,e,n)}return{...o,mainThreadIndex:r}}(t,o,a);return null!==n&&e.push(n),e}),[]):void 0,profilerOverhead:e.profilerOverhead?e.profilerOverhead.reduce(((e,t)=>{const n=a.get(t.mainThreadIndex);return void 0!==n&&e.push({...t,mainThreadIndex:n}),e}),[]):void 0};if(null!==o.shouldFilterToCommittedRange){const{start:e,end:t}=o.shouldFilterToCommittedRange;c.meta.profilingStartTime=e,c.meta.profilingEndTime=t}return{profile:c,isSanitized:!0,committedRanges:o.shouldFilterToCommittedRange?[]:null,oldThreadIndexToNew:a.size===e.threads.length?null:a}})),Hu=qe(Wu,(({profile:e})=>Promise.resolve().then((()=>function(e,t){const n=new qd("zee-worker");Xd(n);const r="string"==typeof e?(new TextEncoder).encode(e):e;return new Promise((function(e,t){n.postMessage({request:"compress",data:r,compressionLevel:undefined,callbackID:Jd.length},[r.buffer]),Jd.push({success:e,error:t})}))}(function(e){return JSON.stringify(function({threads:e,...t}){return{...t,threads:e.map((({stringTable:e,...t})=>({...t,stringArray:e.serializeToArray()})))}}(e))}(e)))))),Vu=e=>Du(e).upload,ju=e=>Vu(e).phase,Zu=e=>Vu(e).generation,$u=qe(Vu,(({uploadProgress:e})=>Fu()(e,.1,.95))),Ku=e=>Vu(e).error,Yu=qe($u,(e=>Mt(e,0,0,"percent"))),qu=e=>Vu(e).abortFunction,Ju=qe(Ds,Ru),Xu=e=>Du(e).prePublishedState,Qu=e=>Boolean(Xu(e)),eh=e=>Du(e).isHidingStaleProfile,th=e=>Du(e).hasSanitizedProfile,nh=qe(Xs,js,ih,((e,t,n)=>void 0!==e&&(t.configuration&&t.configuration.features.includes("cpu")||n.some((e=>void 0!==e.samples.threadCPUDelta))))),rh=qe(Vs,(e=>null!==e&&e.some((e=>"CPU"===e.category))));let oh=null,ah=null;function ih(e){const t=zs(e);return oh===t&&null!==ah||(oh=t,ah=t.map(((t,n)=>Eu(n).getCPUProcessedThread(e)))),ah}const sh=qe(ih,Ls,Wi),lh=e=>e.code.sourceCodeCache,ch=qe(lh,ei,((e,t)=>t?e.get(t):void 0)),dh=e=>e.code.assemblyCodeCache,uh=qe(ri,Rs,((e,t)=>null===t||null===e?null:t.libs[e.libIndex])),hh=qe(dh,ri,uh,((e,t,n)=>{if(null===t||null===n)return;const{debugName:r,breakpadId:o}=n,a=`${r}/${o}/${t.address.toString(16)}`;return e.get(a)})),ph=e=>e.l10n,mh=e=>ph(e).localization,fh=e=>ph(e).primaryLocale,gh=e=>ph(e).direction,Ah=e=>ph(e).requestedLocales,bh=e=>ph(e).pseudoStrategy,Ch={app:s,profile:a,urlState:o,icons:l,publish:c,zippedProfiles:i,selectedThread:Tu,selectedNode:Bu,l10n:h,cpu:d,code:u};function yh(e,t){const n=Eu(e),r=n.getActiveTabFilteredThread(t);for(const e of r.samples.stack)if(null!==e)return!1;return!(n.getActiveTabFilteredMarkerIndexesWithoutGlobals(t).length>0)}function vh(e,t){const{frameTable:n,markers:r}=e;for(let e=0;e<n.length;e++){const r=n.innerWindowID[e];if(null!==r&&t.has(r))return!0}for(let e=0;e<r.length;e++){const n=r.data[e];if(n&&n.innerWindowID&&"Network"!==n.type&&t.has(n.innerWindowID))return!0}return!1}function wh(e,t){if(e.isMainThread){let n=nt(e.frameTable.innerWindowID).find((e=>e&&0!==e&&t.has(e)));if(null==n){const r=e.markers.data.find((e=>{if(e&&e.innerWindowID&&0!==e.innerWindowID&&"Network"!==e.type){const n=t.get(e.innerWindowID);return n&&"about:blank"!==n.url&&"about:newtab"!==n.url}return!1}));r&&r.innerWindowID&&(n=r.innerWindowID)}if(null==n)throw new Error("There must be an innerWindowID in the thread");return nt(t.get(n)).url}return e.name}class kh{constructor(e){this._ctx=void 0,this._previousFillColor=void 0,this._ctx=e,this._previousFillColor=""}set(e){e!==this._previousFillColor&&(this._ctx.fillStyle=e,this._previousFillColor=e)}}function Eh(e,t,n){let r=n.start,o=n.end;if(null===o){const a=(t-e)/40;r=n.start-a,o=n.start+a}return{start:r,end:o}}function xh(e){return{ctrlOrMeta:(e.ctrlKey||e.metaKey)&&!e.altKey,shift:e.shiftKey&&!e.altKey}}function Sh(e){let t,n=-1/0;for(const[r,o]of e)o>n&&(n=o,t=r);return t}const Th=(e,t)=>t.some((t=>e instanceof t));let Bh,_h;const Ih=new WeakMap,Ph=new WeakMap,Nh=new WeakMap,Mh=new WeakMap,Fh=new WeakMap;let Rh={get(e,t,n){if(e instanceof IDBTransaction){if("done"===t)return Ph.get(e);if("objectStoreNames"===t)return e.objectStoreNames||Nh.get(e);if("store"===t)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return Lh(e[t])},set:(e,t,n)=>(e[t]=n,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function Dh(e){return"function"==typeof e?(t=e)!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(_h||(_h=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(t)?function(...e){return t.apply(Oh(this),e),Lh(Ih.get(this))}:function(...e){return Lh(t.apply(Oh(this),e))}:function(e,...n){const r=t.call(Oh(this),e,...n);return Nh.set(r,e.sort?e.sort():[e]),Lh(r)}:(e instanceof IDBTransaction&&function(e){if(Ph.has(e))return;const t=new Promise(((t,n)=>{const r=()=>{e.removeEventListener("complete",o),e.removeEventListener("error",a),e.removeEventListener("abort",a)},o=()=>{t(),r()},a=()=>{n(e.error||new DOMException("AbortError","AbortError")),r()};e.addEventListener("complete",o),e.addEventListener("error",a),e.addEventListener("abort",a)}));Ph.set(e,t)}(e),Th(e,Bh||(Bh=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction]))?new Proxy(e,Rh):e);var t}function Lh(e){if(e instanceof IDBRequest)return function(e){const t=new Promise(((t,n)=>{const r=()=>{e.removeEventListener("success",o),e.removeEventListener("error",a)},o=()=>{t(Lh(e.result)),r()},a=()=>{n(e.error),r()};e.addEventListener("success",o),e.addEventListener("error",a)}));return t.then((t=>{t instanceof IDBCursor&&Ih.set(t,e)})).catch((()=>{})),Fh.set(t,e),t}(e);if(Mh.has(e))return Mh.get(e);const t=Dh(e);return t!==e&&(Mh.set(e,t),Fh.set(t,e)),t}const Oh=e=>Fh.get(e),Uh=["get","getKey","getAll","getAllKeys","count"],zh=["put","add","delete","clear"],Gh=new Map;function Wh(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if(Gh.get(t))return Gh.get(t);const n=t.replace(/FromIndex$/,""),r=t!==n,o=zh.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!o&&!Uh.includes(n))return;const a=async function(e,...t){const a=this.transaction(e,o?"readwrite":"readonly");let i=a.store;return r&&(i=i.index(t.shift())),(await Promise.all([i[n](...t),o&&a.done]))[0]};return Gh.set(t,a),a}var Hh;Hh=Rh,Rh={...Hh,get:(e,t,n)=>Wh(e,t)||Hh.get(e,t,n),has:(e,t)=>!!Wh(e,t)||Hh.has(e,t)};const Vh="published-profiles-store",jh="published-profiles",Zh=2;async function $h(){if(!window.indexedDB)throw new Error("Could not find indexedDB on the window object.");let e;try{e=await async function(){return await function(e,t,{blocked:n,upgrade:r,blocking:o,terminated:a}={}){const i=indexedDB.open(e,t),s=Lh(i);return r&&i.addEventListener("upgradeneeded",(e=>{r(Lh(i.result),e.oldVersion,e.newVersion,Lh(i.transaction),e)})),n&&i.addEventListener("blocked",(e=>n(e.oldVersion,e.newVersion,e))),s.then((e=>{a&&e.addEventListener("close",(()=>a())),o&&e.addEventListener("versionchange",(e=>o(e.oldVersion,e.newVersion,e)))})).catch((()=>{})),s}(Vh,Zh,{upgrade(e,t,n,r){switch(t){case 0:e.createObjectStore(jh,{keyPath:"profileToken"}).createIndex("originHostname","originHostname");case 1:nt(r.store).createIndex("publishedDate","publishedDate")}}})}()}catch(e){if("VersionError"===e.name)throw window.deleteDB=()=>function(e,{blocked:t}={}){const n=indexedDB.deleteDatabase(e);return t&&n.addEventListener("blocked",(e=>t(e.oldVersion,e))),Lh(n).then((()=>{}))}(Vh),new Error(xn`
|
74
|
+
We tried to open an existing published profiles store database with a
|
75
|
+
smaller version than the current one. We can't do that with IndexedDB.
|
76
|
+
The only way to recover is to delete the database and create a new one,
|
77
|
+
but we don't want to do this automatically.
|
78
|
+
Until this is fixed we won't be able to store newly published profiles
|
79
|
+
or retrieve previously published profiles.
|
80
|
+
|
81
|
+
If you want to delete the database, you can do so by running 'deleteDB()'
|
82
|
+
in the console, or using the developer tools.
|
83
|
+
`);throw e}return e}async function Kh(e){const t=await $h();await t.put(jh,e)}async function Yh(e){if(!e)return null;const t=await $h();return await t.get(jh,e)||null}function qh(e,t,n={source:"auto"},r){if(r)for(let e=0;e<t.length;e++)if(t[e]!==r[e])throw new Error(En`
|
84
|
+
The optional expanded call node path provided to the changeSelectedCallNode
|
85
|
+
must contain the selected call node path.
|
86
|
+
`);return{type:"CHANGE_SELECTED_CALL_NODE",selectedCallNodePath:t,optionalExpandedToCallNodePath:r,threadsKey:e,context:n}}function Jh(e,t){return{type:"CHANGE_RIGHT_CLICKED_CALL_NODE",threadsKey:e,callNodePath:t}}function Xh(e,t){return(n,r)=>{const o=xu(e),a=o.getFilteredThread(r()),i=o.getCallNodeInfo(r());let s=-1;if(null!==t){const e=a.samples.stack[t];null!=e&&(s=i.stackIndexToCallNodeIndex[e])}n(qh(e,xr(s,i.callNodeTable)))}}function Qh(e,t){return(n,r)=>{const o=xu(e),a=o.getFilteredThread(r()),i=o.getCallNodeInfo(r());if(null===t)return void n(qh(e,[]));const s=a.samples.stack[t];if(null==s)return void n(qh(e,[]));const l=xr(i.stackIndexToCallNodeIndex[s],i.callNodeTable),c=[l[0]];n(qh(e,c,{source:"auto"},l))}}function ep(e){return{type:"CHANGE_SELECTED_THREAD",selectedThreadIndexes:e}}function tp(e,t){switch(t.type){case"global":{const n=cl(e,t);switch(n.type){case"process":{const{mainThreadIndex:r,pid:o}=n;return null===r?null:{type:"global",trackReference:t,threadIndex:r,relatedThreadIndex:r,globalTrackIndex:t.trackIndex,pid:o,localTrackIndex:null,relatedTab:"network-chart"===ui(e)?cc(e):null}}case"screenshots":case"visual-progress":case"perceptual-visual-progress":case"contentful-visual-progress":return null;default:throw Je(n,"Unhandled GlobalTrack type.")}}case"local":{const n=pl(e,t),{globalTrackIndex:r}=dl(e,t.pid),o={type:"local",trackReference:t,pid:t.pid,globalTrackIndex:r,localTrackIndex:t.trackIndex};switch(n.type){case"thread":return{...o,threadIndex:n.threadIndex,relatedThreadIndex:n.threadIndex,relatedTab:"network-chart"===ui(e)?cc(e):null};case"network":return{...o,threadIndex:null,relatedThreadIndex:n.threadIndex,relatedTab:"network-chart"};case"marker":case"ipc":return{...o,threadIndex:null,relatedThreadIndex:n.threadIndex,relatedTab:"marker-chart"};case"event-delay":return{...o,threadIndex:null,relatedThreadIndex:n.threadIndex,relatedTab:null};case"memory":case"process-cpu":case"power":{const t=ol(n.counterIndex).getCounter(e);return{...o,threadIndex:null,relatedThreadIndex:t.mainThreadIndex,relatedTab:null}}default:throw Je(n,"Unhandled LocalTrack type.")}}default:throw Je(t,"Unhandled TrackReference type")}}function np(e,t){const n=new Set([e.relatedThreadIndex]);return{type:"SELECT_TRACK",selectedThreadIndexes:n,selectedTab:t,lastNonShiftClickInformation:{clickedTrack:e.trackReference,selection:n}}}function rp(e,t={}){return(n,r)=>{const o=tp(r(),e);if(!o)return;let a=o.relatedTab??ui(r());const i=Eu(o.relatedThreadIndex).getUsefulTabs(r());i.includes(a)||(a=i[0]),t.shift?n(function(e,t){return(n,r)=>{const o=Ws(r());let a=o&&o.clickedTrack;if(!a){const e=rt(pi(r()));void 0!==e&&(a=function(e,t,n){for(let n=0;n<t.length;n++){const r=t[n];if("process"===r.type&&r.mainThreadIndex===e)return{type:"global",trackIndex:n}}for(const[t,r]of n)for(let n=0;n<r.length;n++){const o=r[n];if("thread"===o.type&&o.threadIndex===e)return{type:"local",pid:t,trackIndex:n}}return null}(e,il(r()),ul(r())))}if(a){const i=tp(r(),a);if(i){const a=function(e,t,n){const r=il(e),o=Ci(e),a=yi(e),i=[];(function(e,t,n){if(t.globalTrackIndex===n.globalTrackIndex){const r=Ei(e,t.pid);return r.indexOf(t.localTrackIndex)-r.indexOf(n.localTrackIndex)}const r=Ci(e);return r.indexOf(t.globalTrackIndex)-r.indexOf(n.globalTrackIndex)})(e,t,n)>0&&([n,t]=[t,n]);const s=o.indexOf(t.globalTrackIndex),l=o.indexOf(n.globalTrackIndex);for(let c=s;c<=l;c++){const d=o[c];if(a.has(d))continue;const u=r[d];if("process"!==u.type)continue;const h=Ei(e,u.pid),p=ki(e,u.pid),m=hl(e,u.pid);let f=!0,g=0,A=h.length-1;c===s&&"local"===t.type&&(f=!1,g=h.indexOf(t.localTrackIndex)),c===l&&(A="global"===n.type?-1:h.indexOf(n.localTrackIndex)),f&&null!==u.mainThreadIndex&&i.push(u.mainThreadIndex);for(let e=g;e<=A;e++){const t=h[e];if(p.has(t))continue;const n=m[t];"thread"===n.type&&i.push(n.threadIndex)}}return i.push(t.relatedThreadIndex),i.push(n.relatedThreadIndex),i}(r(),i,e);return void n({type:"SELECT_TRACK",selectedThreadIndexes:new Set([...a,...o?o.selection:[]]),selectedTab:t,lastNonShiftClickInformation:o})}}n(np(e,t))}}(o,a)):t.ctrlOrMeta?n(function(e,t){return(n,r)=>{const o=new Set(pi(r()));if(o.has(e.relatedThreadIndex)){if(o.delete(e.relatedThreadIndex),0===o.size)return}else o.add(e.relatedThreadIndex);n({type:"SELECT_TRACK",selectedThreadIndexes:o,selectedTab:t,lastNonShiftClickInformation:{clickedTrack:e.trackReference,selection:o}})}}(o,a)):n(np(o,a))}}function op(e){return(t,n)=>{const r=il(n()),o=ul(n()),a=zs(n()),i=function(e,t,n,r){for(let n=0;n<t.length;n++){const o=t[n];if("process"===o.type&&null!==o.mainThreadIndex&&r[o.mainThreadIndex].tid===e)return{type:"global",trackIndex:n}}for(const[t,o]of n)for(let n=0;n<o.length;n++){const a=o[n];if("thread"===a.type&&r[a.threadIndex].tid===e)return{type:"local",pid:t,trackIndex:n}}return null}(e,r,o,a);if(null!==i){switch(i.type){case"global":t(fp(i.trackIndex));break;case"local":{const{globalTrackIndex:e}=dl(n(),i.pid);t(fp(e)),t(kp(i.pid,i.trackIndex));break}default:throw Je(i.type)}t(rp(i))}else console.warn(`Failed to find a track with tid: ${e}`)}}function ap(e){return(t,n)=>{const r=ui(n()),o=pi(n());let a,i=r;switch(e.type){case"global":{const t=Sl(n(),e);switch(t.type){case"tab":a=new Set([...t.threadIndexes]),"network-chart"===i&&(i=cc(n()));break;case"screenshots":return;default:throw Je(t,"Unhandled ActiveTabGlobalTrack type.")}break}case"resource":{const t=Tl(n(),e);switch(t.type){case"sub-frame":case"thread":a=new Set([t.threadIndex]),"network-chart"===i&&(i=cc(n()));break;default:throw Je(t,"Unhandled ActiveTabResourceTrack type.")}break}default:throw Je(e,"Unhandled TrackReference type")}const s=Eu(a).getUsefulTabs(n());s.includes(i)||(i=s[0]),r===i&&o===a||t({type:"SELECT_TRACK",selectedThreadIndexes:a,selectedTab:i,lastNonShiftClickInformation:null})}}function ip(){return{type:"FOCUS_CALL_TREE"}}function sp(e){return{type:"CHANGE_RIGHT_CLICKED_TRACK",trackReference:e}}function lp(e){return{type:"SET_CONTEXT_MENU_VISIBILITY",isVisible:e}}function cp(e){return Vn({hitType:"event",eventCategory:"timeline",eventAction:"change global track order"}),{type:"CHANGE_GLOBAL_TRACK_ORDER",globalTrackOrder:e}}function dp(e){return(t,n)=>{const r=yi(n());if(r.has(e))return;const o=il(n());if(o.length===r.size+1)return;const a=o[e],i=new Set(pi(n()));up(n,i,a,e),0!==i.size&&(Vn({hitType:"event",eventCategory:"timeline",eventAction:"hide global track"}),t({type:"HIDE_GLOBAL_TRACK",trackIndex:e,pid:"process"===a.type?a.pid:null,selectedThreadIndexes:i}))}}function up(e,t,n,r){if("process"===n.type){if(null!==n.mainThreadIndex&&t.delete(n.mainThreadIndex),0!==t.size)for(const r of hl(e(),n.pid))"thread"===r.type&&t.delete(r.threadIndex);if(0===t.size){const n=vp(e,new Set([r]));if(null===n)return;t.add(n)}}}function hp(){return e=>{Vn({hitType:"event",eventCategory:"timeline",eventAction:"show all tracks"}),e({type:"SHOW_ALL_TRACKS"})}}function pp(e,t){return(n,r)=>{Vn({hitType:"event",eventCategory:"timeline",eventAction:"show provided tracks"});const o=il(r());for(const[n,r]of o.entries())r.pid&&t.has(r.pid)&&e.add(n);n({type:"SHOW_PROVIDED_TRACKS",globalTracksToShow:e,localTracksByPidToShow:t})}}function mp(e,t){return(n,r)=>{Vn({hitType:"event",eventCategory:"timeline",eventAction:"hide provided tracks"});const o=yi(r()),a=il(r());if(!(o.size+e.size-ji(o,e).size<a.length))return void console.warn("No other visible global track left after hiding");const i=new Set(pi(r()));for(const t of e)up(r,i,a[t],t);for(const[e,o]of t){const t=hl(r(),e),a=ki(r(),e);for(const e of o){const n=t[e];"thread"===n.type&&i.delete(n.threadIndex)}if(new Set([...a,...o]).size===t.length){const{globalTrack:t,globalTrackIndex:o}=dl(r(),e);null===t.mainThreadIndex&&n(dp(o))}}if(0===i.size){const n=vp(r,e,t);null!==n&&i.add(n)}0!==i.size&&n({type:"HIDE_PROVIDED_TRACKS",globalTracksToHide:e,localTracksByPidToHide:t,selectedThreadIndexes:i})}}function fp(e){return t=>{Vn({hitType:"event",eventCategory:"timeline",eventAction:"show global track"}),t({type:"SHOW_GLOBAL_TRACK",trackIndex:e})}}function gp(e,t){return n=>{Vn({hitType:"event",eventCategory:"timeline",eventAction:"show global track including local tracks"}),n({type:"SHOW_GLOBAL_TRACK_INCLUDING_LOCAL_TRACKS",trackIndex:e,pid:t})}}function Ap(e){return(t,n)=>{const r=il(n())[e],o=Ci(n());if("process"!==r.type)return;const a=pi(n()),i=hl(n(),r.pid),s=new Set;null!==r.mainThreadIndex&&a.has(r.mainThreadIndex)&&s.add(r.mainThreadIndex);for(const e of i)void 0!==e.threadIndex&&a.has(e.threadIndex)&&s.add(e.threadIndex);if(0===s.size){if(null===r.mainThreadIndex){for(const e of i)if("thread"===e.type){s.add(e.threadIndex);break}}else s.add(r.mainThreadIndex);if(0===s.size)return}Vn({hitType:"event",eventCategory:"timeline",eventAction:"isolate process"}),t({type:"ISOLATE_PROCESS",hiddenGlobalTracks:new Set(o.filter((t=>t!==e))),isolatedTrackIndex:e,selectedThreadIndexes:s})}}function bp(e){return(t,n)=>{const r=il(n()),o=r[e];if("screenshots"!==o.type)return;if(null===o.threadIndex)return;const a=new Set(yi(n()));for(let t=0;t<r.length;t++)"screenshots"===r[t].type&&t!==e&&a.add(t);Vn({hitType:"event",eventCategory:"timeline",eventAction:"isolate screenshot track"}),t({type:"ISOLATE_SCREENSHOT_TRACK",hiddenGlobalTracks:a})}}function Cp(e){return(t,n)=>{const r=il(n())[e],o=Ci(n());if("process"!==r.type)return;const a=r.mainThreadIndex;null!==a&&(Vn({hitType:"event",eventCategory:"timeline",eventAction:"isolate process main thread"}),t({type:"ISOLATE_PROCESS_MAIN_THREAD",pid:r.pid,hiddenGlobalTracks:new Set(o.filter((t=>t!==e))),isolatedTrackIndex:e,selectedThreadIndexes:new Set([a]),hiddenLocalTracks:new Set(Ei(n(),r.pid))}))}}function yp(e,t){return Vn({hitType:"event",eventCategory:"timeline",eventAction:"change local track order"}),{type:"CHANGE_LOCAL_TRACK_ORDER",pid:e,localTrackOrder:t}}function vp(e,t,n){const r=il(e()),o=Ci(e()),a=yi(e());for(const i of o){const o=r[i];if(void 0!==t&&t.has(i)||a.has(i)||"process"!==o.type)continue;if(null!==o.mainThreadIndex)return o.mainThreadIndex;const s=hl(e(),o.pid),l=Ei(e(),o.pid),c=ki(e(),o.pid),d=n?n.get(o.pid)??new Set:new Set;for(const e of l){const t=s[e];if(!c.has(e)&&"thread"===t.type&&!d.has(e))return t.threadIndex}}return null}function wp(e,t){return(n,r)=>{const o=hl(r(),e),a=ki(r(),e),i=o[t],s=pi(r()),l=new Set(s);if("thread"===i.type&&l.delete(i.threadIndex),a.has(t))return;const{globalTrack:c,globalTrackIndex:d}=dl(r(),e);if(a.size+1!==o.length||null!==c.mainThreadIndex){if(0===l.size){for(let e=0;e<o.length;e++){const n=o[e];if(!a.has(e)&&"thread"===n.type&&e!==t){l.add(n.threadIndex);break}}if(0===l.size&&null!==c.mainThreadIndex&&void 0!==c.mainThreadIndex&&l.add(c.mainThreadIndex),0===l.size){const n=vp(r,new Set([d]),new Map([[e,new Set([t])]]));null!==n&&l.add(n)}if(0===l.size)return}Vn({hitType:"event",eventCategory:"timeline",eventAction:"hide local track"}),n({type:"HIDE_LOCAL_TRACK",pid:e,trackIndex:t,selectedThreadIndexes:l})}else n(dp(d))}}function kp(e,t){return n=>{Vn({hitType:"event",eventCategory:"timeline",eventAction:"show local track"}),n({type:"SHOW_LOCAL_TRACK",trackIndex:t,pid:e})}}function Ep(e,t){return(n,r)=>{const o=hl(r(),e)[t],{globalTrack:a,globalTrackIndex:i}=dl(r(),e),s=Ci(r()),l=Ei(r(),e),c=new Set;"thread"===o.type?c.add(o.threadIndex):"process"===a.type&&null!==a.mainThreadIndex&&c.add(a.mainThreadIndex),0!==c.size&&(Vn({hitType:"event",eventCategory:"timeline",eventAction:"isolate local track"}),n({type:"ISOLATE_LOCAL_TRACK",pid:e,hiddenGlobalTracks:new Set(s.filter((e=>e!==i))),hiddenLocalTracks:new Set(l.filter((e=>e!==t))),selectedThreadIndexes:c}))}}let xp,Sp=!1;function Tp(e){return Sp||(Sp=!0,Vn({hitType:"event",eventCategory:"profile",eventAction:"call tree search string"})),{type:"CHANGE_CALL_TREE_SEARCH_STRING",searchString:e}}function Bp(e,t,n){return(r,o)=>{const a=Tu.getExpandedCallNodeIndexes(o()),i=Tu.getCallTree(o()).getAllDescendants(t);i.add(t),a.forEach((e=>{null!==e&&i.add(e)}));const s=[...i].map((e=>xr(e,n.callNodeTable)));r(_p(e,s))}}function _p(e,t){return{type:"CHANGE_EXPANDED_CALL_NODES",threadsKey:e,expandedCallNodePaths:t}}function Ip(e,t,n={source:"auto"}){return{type:"CHANGE_SELECTED_MARKER",selectedMarker:t,threadsKey:e,context:n}}function Pp(e,t,n={source:"auto"}){return{type:"CHANGE_SELECTED_NETWORK_MARKER",selectedNetworkMarker:t,threadsKey:e,context:n}}function Np(e,t){return{type:"CHANGE_HOVERED_MARKER",markerIndex:t,threadsKey:e}}function Mp(e,t){return{type:"CHANGE_RIGHT_CLICKED_MARKER",threadsKey:e,markerIndex:t}}function Fp(e){return{type:"CHANGE_MARKER_SEARCH_STRING",searchString:e}}function Rp(e){return{type:"CHANGE_NETWORK_SEARCH_STRING",searchString:e}}function Dp(e){return(t,n)=>{const r=qa(n()),o=mi(n()),a=Tu.getRangeAndTransformFilteredThread(n());Vn({hitType:"event",eventCategory:"profile",eventAction:"change implementation filter",eventLabel:e}),t({type:"CHANGE_IMPLEMENTATION_FILTER",implementation:e,threadsKey:o,transformedThread:a,previousImplementation:r})}}function Lp(e){return Vn({hitType:"event",eventCategory:"profile",eventAction:"change call tree summary strategy",eventLabel:e}),{type:"CHANGE_CALL_TREE_SUMMARY_STRATEGY",callTreeSummaryStrategy:e}}function Op(e){return(t,n)=>{Vn({hitType:"event",eventCategory:"profile",eventAction:"change invert callstack"}),t({type:"CHANGE_INVERT_CALLSTACK",invertCallstack:e,selectedThreadIndexes:pi(n()),callTree:Tu.getCallTree(n()),callNodeTable:Tu.getCallNodeInfo(n()).callNodeTable})}}function Up(e){return t=>{Vn({hitType:"event",eventCategory:"profile",eventAction:"toggle user timings"}),t({type:"CHANGE_SHOW_USER_TIMINGS",showUserTimings:e})}}function zp(e){return t=>{Vn({hitType:"event",eventCategory:"profile",eventAction:e?"show JS tracer summary":"show JS tracer stacks"}),t({type:"CHANGE_SHOW_JS_TRACER_SUMMARY",showSummary:e})}}function Gp(e){return(t,n)=>{(function(e,t){let n=0,r=0;for(const r in e)if(Object.prototype.hasOwnProperty.call(e,r)&&(n++,e[r]!==t[r]))return!1;for(const e in t)Object.prototype.hasOwnProperty.call(t,e)&&r++;return n===r})(Ms(n()),e)||t({type:"UPDATE_PREVIEW_SELECTION",previewSelection:e})}}function Wp(e,t){return t===e&&(t+=1e-6),{type:"COMMIT_RANGE",start:e,end:t}}function Hp(e){return{type:"POP_COMMITTED_RANGES",firstPoppedFilterIndex:e}}function Vp(e,t){return(n,r)=>{const o=xu(e),a=o.getRangeAndTransformFilteredThread(r()),{callNodeTable:i}=o.getCallNodeInfo(r());n({type:"ADD_TRANSFORM_TO_STACK",threadsKey:e,transform:t,transformedThread:a,callNodeTable:i}),Vn({hitType:"event",eventCategory:"profile",eventAction:"add transform",eventLabel:t.type})}}function jp(e,t,n){return(r,o)=>{const a=nt(nt(xu(e).getReservedFunctionsForResources(o())).get(t));r(Vp(e,{type:"collapse-resource",resourceIndex:t,collapsedFuncIndex:a,implementation:n}))}}function Zp(e){return(t,n)=>{t({type:"POP_TRANSFORMS_FROM_STACK",threadsKey:mi(n()),firstPoppedFilterIndex:e})}}function $p(e){return{type:"CHANGE_TIMELINE_TYPE",timelineType:e}}function Kp(e){return async(t,n)=>{if(t({type:"CHANGE_PROFILE_NAME",profileName:e}),window.indexedDB){const t=ja(n());await async function(e,t){const n=await Yh(e);if(n&&n.name!==t){const e=la({...da(new URL(n.urlPath,window.location.href)),profileName:t}),r={...n,name:t,urlPath:e};await Kh(r)}}(t,e||"")}Vn({hitType:"event",eventCategory:"profile",eventAction:"change profile name"})}}function Yp(e){return{type:"SET_DATA_SOURCE",dataSource:e}}function qp(e){return{type:"CHANGE_MOUSE_TIME_POSITION",mouseTimePosition:e}}function Jp(e,t){return{type:"CHANGE_TABLE_VIEW_OPTIONS",tab:e,tableViewOptions:t}}function Xp(e,{libIndex:t,sourceFile:n,nativeSymbols:r}){const o=0!==r.length?r[0]:null;return{type:"UPDATE_BOTTOM_BOX",libIndex:t,sourceFile:n,nativeSymbol:o,allNativeSymbolsForInitiatingCallNode:r,currentTab:e,shouldOpenBottomBox:null!==n||null!==o,shouldOpenAssemblyView:null===n&&null!==o}}function Qp(){return{type:"OPEN_ASSEMBLY_VIEW"}}function em(){return{type:"CLOSE_ASSEMBLY_VIEW"}}function tm(){return(e,t)=>{e({type:"CLOSE_BOTTOM_BOX_FOR_TAB",tab:ui(t())})}}function nm(e,t,n){return(r,o)=>{if(e.metaKey||e.ctrlKey||e.altKey)return;const a=xu(t),i=a.getThread(o()),{callNodeTable:s}=a.getCallNodeInfo(o()),l=qa(o()),c=Xa(o()),d=xr(n,s),u=s.func[n],h=s.category[n];switch(e.key){case"F":r(Vp(t,{type:"focus-subtree",callNodePath:d,implementation:l,inverted:c}));break;case"f":r(Vp(t,{type:"focus-function",funcIndex:u}));break;case"M":r(Vp(t,{type:"merge-call-node",callNodePath:d,implementation:l}));break;case"m":r(Vp(t,{type:"merge-function",funcIndex:u}));break;case"d":r(Vp(t,{type:"drop-function",funcIndex:u}));break;case"C":{const{funcTable:e}=i,n=e.resource[u];r(jp(t,n,l));break}case"r":Jo(i,u)&&r(Vp(t,{type:"collapse-recursion",funcIndex:u}));break;case"R":qo(i,l,u)&&r(Vp(t,{type:"collapse-direct-recursion",funcIndex:u,implementation:l}));break;case"c":r(Vp(t,{type:"collapse-function-subtree",funcIndex:u}));break;case"g":r(Vp(t,{type:"focus-category",category:h}))}}}function rm(e){return{type:"FATAL_ERROR",error:e}}function om(e){return{type:"TRIGGER_LOADING_FROM_URL",profileUrl:e}}function am(){return{type:"WAITING_FOR_PROFILE_FROM_BROWSER"}}function im(e,t={},n=!1){return async r=>{if(0===e.threads.length)return console.error("This profile has no threads.",e),void r(rm(new Error("No threads were captured in this profile, there is nothing to display.")));r({type:"PROFILE_LOADED",profile:e,pathInZipFile:t.pathInZipFile,implementationFilter:t.implementationFilter,transformStacks:t.transformStacks}),!1===n&&await r(sm(t.browserConnection??null,t.timelineTrackOrganization,t.skipSymbolication))}}function sm(e=null,t,n){return async(r,o)=>{if(n)throw new Error("Please do not use skipSymbolication outside of tests");const a=Rs(o());if(null===a||"PROFILE_LOADED"!==oc(o()).phase)return;const i=hi(o()),s=a.pages;switch(t||(t=ii(o())),t.type){case"full":r(lm(a,i));break;case"active-tab":{const e=nl(o());r(s&&null!==e?um(a,i,t.tabID):lm(a,i));break}case"origins":r(s?dm(a,s,i):lm(a,i));break;default:throw Je(t,"Unhandled TimelineTrackOrganization type.")}if(!n&&!1===a.meta.symbolicated){const t=vm(r,Gi(o()),e);t&&await wm(r,a,t)}}}function lm(e,t){return(n,r)=>{const o=null!==t,a=function(e){const t=new Map,n=[];for(let r=0;r<e.threads.length;r++){const o=e.threads[r],{pid:a,markers:i,stringTable:s}=o;if(o.isMainThread){let e=t.get(a);void 0===e?(e={type:"process",pid:a,mainThreadIndex:r},n.push(e),t.set(a,e)):e.mainThreadIndex=r}else if(!t.has(a)){const e={type:"process",pid:a,mainThreadIndex:null};n.push(e),t.set(a,e)}const l=new Set;if(s.hasString("CompositorScreenshot")){const e=s.indexForString("CompositorScreenshot");for(let t=0;t<i.length;t++)if(i.name[t]===e){const e=i.data[t];l.add(e.windowID)}for(const e of l)n.push({type:"screenshots",id:e,threadIndex:r})}}if(e.meta&&e.meta.visualMetrics){const t=e.meta.visualMetrics;t.VisualProgress&&n.push({type:"visual-progress"}),t.PerceptualSpeedIndexProgress&&n.push({type:"perceptual-visual-progress"}),t.ContentfulSpeedIndexProgress&&n.push({type:"contentful-visual-progress"})}return n.sort(((e,t)=>Ki[e.type]-Ki[t.type])),n}(e),i=function(e,t){const n=new Map,r=(e.meta.markerSchema||[]).filter((e=>void 0!==e.graphs));for(let o=0;o<e.threads.length;o++){const a=e.threads[o],{pid:i,markers:s}=a;let l=n.get(i);if(void 0===l&&(l=[],n.set(i,l)),a.isMainThread||l.push({type:"thread",threadIndex:o}),s.data.some((e=>e&&"Network"===e.type))&&l.push({type:"network",threadIndex:o}),s.data.some((e=>e&&"IPC"===e.type))&&l.push({type:"ipc",threadIndex:o}),r.length>0){const e=new Map;for(const t of r)e.set(t.name,{markerSchema:t,keys:(t.graphs||[]).map((e=>e.key)),markerNames:new Set});for(let n=0;n<s.length;++n){const r=s.name[n],o=s.data[n],i=so(t,a.stringTable.getString(r),o);if(o&&t){const t=e.get(i);t&&t.keys.every((e=>e in o))&&t.markerNames.add(r)}}for(const[,{markerSchema:t,markerNames:n}]of e)for(const e of n)l.push({type:"marker",threadIndex:o,markerSchema:t,markerName:e})}}const{counters:o}=e;if(o)for(let e=0;e<o.length;e++){const{pid:t,category:r,sampleGroups:a}=o[e];if("Memory"===r||"power"===r){if("power"===r&&a[0].samples.length<=2)continue;let o=n.get(t);void 0===o&&(o=[],n.set(t,o)),"Memory"===r?o.push({type:"memory",counterIndex:e}):o.push({type:"power",counterIndex:e})}}for(const e of n.values())e.sort(((e,t)=>Zi[e.type]-Zi[t.type]));return n}(e,tl(r())),s=Ai(r()),l=function(e,t,n){if(null!==n){const t=[];for(const r of n){const n=e.findIndex((e=>"process"===e.type&&e.mainThreadIndex===r));-1!==n&&t.push(n)}for(let n=0;n<e.length;n++)t.includes(n)||t.push(n);return t}if(null!==t&&t.length!==e.length){const n=t.slice();for(let r=t.length;r<e.length;r++)n.push(r);t=n}return null!==t&&os(e.length,t)?t:function(e){const t=e.map(((e,t)=>t));return t.sort(((t,n)=>Yi[e[t].type]-Yi[e[n].type])),t}(e)}(a,o?Ci(r()):null,s),c=Ji(o?wi(r()):null,i,s,e),d={globalTracks:a,globalTrackOrder:l,localTracksByPid:i,localTrackOrderByPid:c};let u=null;const h=bi(r());null!==h?u=function(e,t,n){const r=new Set(n.threads.map(((e,t)=>t))),o=new Set(t),a=(i=r,s=o,new Set([...i].filter((e=>!s.has(e)))));var i,s;return 0===a.size?null:Qi(n,a,e)}(d,h,e):o&&(u=function(e,t,n){const r=ji(new Set(e.globalTrackOrder),t),o=new Map;for(const[t,a]of e.localTrackOrderByPid){const i=new Set(a),s=ji(i,n.get(t)||new Set);if(o.set(t,s),s.size===i.size){const n=e.globalTracks.findIndex((e=>"process"===e.type&&e.pid===t&&null===e.mainThreadIndex));-1!==n&&r.add(n)}}const a={hiddenGlobalTracks:r,hiddenLocalTracksByPid:o};return 0===es(e,a).length?null:a}(d,yi(r()),vi(r()))),null===u&&(u=function(e,t){return Qi(t,function(e){const t=e.threads;if(0===t.length)throw new Error("No threads");if(void 0!==e.meta.initialVisibleThreads)return e.meta.initialVisibleThreads.forEach((t=>nt(e.threads[t]))),new Set(e.meta.initialVisibleThreads);const n=function(e){const t=e.meta.sampleUnits;if(!t)return null;const n=e.meta.interval,r=t.threadCPUDelta;switch(r){case"µs":case"ns":return Hi(r)*n;case"variable CPU cycles":return Wi(e.threads,n)*n;default:throw Je(r,"Unhandled threadCPUDelta unit in computeMaxCPUDeltaPerInterval.")}}(e),r=t.map(((t,r)=>{const o=function(e,t,n){const r=function(e){return"GeckoMain"===e.name&&"default"===e.processType&&(!e.processName||"Parent Process"===e.processName)||"GeckoMain"===e.name&&"gpu"===e.processType}(t),o=function(e){return/^(?:Audio|Media|GraphRunner|WebrtcWorker)/.test(e.name)}(t),a=function({meta:e},{samples:t,stackTable:n},r){if(e.sampleUnits&&t.threadCPUDelta)return t.threadCPUDelta.reduce(((e,t)=>e+(t??0)),0);const o=e.categories?e.categories.findIndex((e=>"Idle"===e.name)):-1;return t.stack.filter((e=>null!==e&&n.category[e]!==o)).length*(r??1)}(e,t,n);return{isEssentialFirefoxThread:r,isInterestingEvenWithMinimalActivity:o,sampleScore:a,boostedSampleScore:o?a*rs:a}}(e,t,n);return{threadIndex:r,score:o}}));r.sort((({score:e},{score:t})=>e.isEssentialFirefoxThread!==t.isEssentialFirefoxThread?e.isEssentialFirefoxThread?-1:1:t.boostedSampleScore-e.boostedSampleScore));const o=r.slice(0,15),a=Math.max(...r.map((({score:e})=>e.sampleScore)))*ns,i=o.filter((({score:e})=>!!e.isEssentialFirefoxThread||!!(e.isInterestingEvenWithMinimalActivity&&e.sampleScore>0)||e.sampleScore>=a));return new Set(i.map((({threadIndex:e})=>e)))}(t),e)}(d,e));const p=function(e,t,n){if(null===e)return Xi(t,n);const r=ji(e,new Set(t));return 0===r.size?Xi(t,n):r}(t,es(d,u),e);let m=null;o||(m=Hr(e));let f=ui(r());if(ta.includes(f)){let t=!1;for(const n of p){const r=e.threads[n],{samples:o,jsAllocations:a,nativeAllocations:i}=r;if(t=[o,a,i].some((e=>Ar(e,r))),t)break}t||(f="marker-chart")}sa((()=>{n({type:"VIEW_FULL_PROFILE",selectedThreadIndexes:p,selectedTab:f,globalTracks:a,globalTrackOrder:l,localTracksByPid:i,localTrackOrderByPid:c,timelineType:m,...u})}))}}function cm(e){if(e.startsWith("chrome://"))return e;try{const t=new URL(e);return"null"===t.origin?e:t.origin}catch{return e}}function dm(e,t,n){return r=>{const o=new Map;for(const e of t)o.set(e.innerWindowID,e);const a=[],i=new Map,s=new Map,l=new Set;for(let n=0;n<e.threads.length;n++){const{frameTable:r}=e.threads[n];let c=!1;for(let e=0;e<r.length;e++){const l=r.innerWindowID[e];if(null===l||0===l)continue;const d=o.get(l);if(!d){console.error("Could not find the page for an innerWindowID",{innerWindowID:l,pages:t});break}0===d.embedderInnerWindowID?i.set(l,n):s.set(l,n),c=!0,a[n]=d;break}c||(a[n]=null,l.add(n))}const c=[],d=new Map,u=new Map;for(const[t,n]of i){const r=e.threads[n],o=nt(a[n]);d.set(r.pid,t),u.set(t,t),c.push({type:"origin",innerWindowID:t,threadIndex:n,page:o,origin:cm(o.url),children:[]})}const h=new Set([...s]);let p=1/0;for(;p!==h.size;){p=h.size;for(const t of h){const[n,r]=t,o=nt(a[r]),i=u.get(o.embedderInnerWindowID);if(void 0===i)continue;const s=e.threads[r];d.set(s.pid,i),h.delete(t),u.set(n,i),nt(c.find((e=>e.innerWindowID===i))).children.push({type:"sub-origin",innerWindowID:n,threadIndex:r,origin:cm(o.url),page:o})}}const m=[];for(const t of l){const n=e.threads[t],r=d.get(n.pid),o={type:"no-origin",threadIndex:t};r?nt(c.find((e=>e.innerWindowID===r))).children.push(o):m.push(o)}r({type:"VIEW_ORIGINS_PROFILE",selectedThreadIndexes:null===n?new Set([0]):n,originsTimeline:[...m,...c]})}}function um(e,t,n){return(r,o)=>{const a=null!==t,i=Ml(o());if(0===i.length)return void r(lm(e,t));const s=function(e,t,n){const r=[],o=[],a=[],i=function(e){const t=[];for(const n of e)0===n.embedderInnerWindowID&&t.push(n.innerWindowID);return new Set(t)}(t),s=function(e){const t=new Map;for(const n of e)t.set(n.innerWindowID,n);return t}(t);for(let t=0;t<e.threads.length;t++){const l=e.threads[t],{markers:c,stringTable:d}=l;l.isMainThread?vh(l,i)?r.push(t):yh(t,n)||o.push({type:"sub-frame",threadIndex:t,name:wh(l,s)}):yh(t,n)||o.push({type:"thread",threadIndex:t,name:wh(l,s)});const u=new Set;if(d.hasString("CompositorScreenshot")){const e=d.indexForString("CompositorScreenshot");for(let t=0;t<c.length;t++)if(c.name[t]===e){const e=c.data[t];u.add(e.windowID)}for(const e of u)a.push({type:"screenshots",id:e,threadIndex:t})}}const l=new Set(r),c={type:"tab",threadIndexes:l,threadsKey:Ur(l)},d=Ur(new Set(o.map((e=>e.threadIndex))));return{mainTrack:c,screenshots:a,resources:o,resourcesThreadsKey:d}}(e,i,o());null===t&&(t=new Set([...s.mainTrack.threadIndexes]));let l=null;a||(l=Hr(e)),r({type:"VIEW_ACTIVE_TAB_PROFILE",activeTabTimeline:s,selectedThreadIndexes:t,tabID:n,timelineType:l})}}function hm(e){return(t,n)=>{const r=Ds(n()),o=null;switch(t({type:"DATA_RELOAD"}),e.type){case"full":t(lm(r,o));break;case"active-tab":t(um(r,o,e.tabID));break;case"origins":t(dm(r,nt(r.pages,"There was no page information in the profile."),o));break;default:throw Je(e,"Unhandled TimelineTrackOrganization type.")}}}function pm(){return async(e,t)=>{const n=vm(e,Gi(t()),null),r=Ds(t());if(!n)throw new Error("There was no symbol store when attempting to re-symbolicate.");await wm(e,r,n)}}function mm(e,t={}){return async n=>{await n(im(e,t,!1))}}function fm(e){return{type:"REQUESTING_SYMBOL_TABLE",requestedLib:e}}function gm(e){return{type:"RECEIVED_SYMBOL_TABLE_REPLY",requestedLib:e}}function Am(){return{type:"START_SYMBOLICATING"}}function bm(){return{type:"DONE_SYMBOLICATING"}}function Cm(e){return(t,n)=>{const{threads:r}=Ds(n()),o=new Map,a=r.map(((t,n)=>{const r=e.get(n);if(void 0===r)return t;const a=new Map;let i=t;for(const e of r)i=cs(i,e,a);return o.set(n,a),i}));t({type:"BULK_SYMBOLICATION",oldFuncToNewFuncsMaps:o,symbolicatedThreads:a})}}xp="object"==typeof window&&window.requestIdleCallback?window.requestIdleCallback:"object"==typeof process&&process.nextTick?process.nextTick:e=>setTimeout(e,0);const ym=new class{constructor(){this._updates=void 0,this._updateObservers=void 0,this._requestedUpdate=void 0,this._updates=new Map,this._updateObservers=[],this._requestedUpdate=!1}_scheduleUpdate(e){this._requestedUpdate||(xp((()=>this._dispatchUpdate(e)),{timeout:2e3}),this._requestedUpdate=!0)}_dispatchUpdate(e){const t=this._updates,n=this._updateObservers;this._updates=new Map,this._updateObservers=[],this._requestedUpdate=!1,e(Cm(t));for(const e of n)e()}enqueueSingleSymbolicationStep(e,t,n,r){this._scheduleUpdate(e);let o=this._updates.get(t);void 0===o&&(o=[],this._updates.set(t,o)),o.push(n),this._updateObservers.push(r)}};function vm(e,t,n){if(!window.indexedDB)return null;async function r(t,n,r){for(const{lib:t}of n)e(fm(t));try{return await async function(e,t,n){const r=t.map((e=>({request:e,addressArray:Array.from(e.addresses)}))),o={jobs:r.map((({request:e,addressArray:t})=>{const{debugName:n,breakpadId:r}=e.lib;return{memoryMap:[[n,r]],stacks:[t.map((e=>[0,e]))]}}))},a=function(e){if(!(e instanceof Object&&"results"in e))throw new Error("Expected an object with property `results`");const t=e.results;if(!Array.isArray(t))throw new Error("Expected `results` to be an array");for(const e of t){if(!(e instanceof Object&&"found_modules"in e&&"stacks"in e))throw new Error("Expected jobResult to have `found_modules` and `stacks` properties");if(!(e.found_modules instanceof Object))throw new Error("Expected `found_modules` to be an object");const t=e.stacks;if(!Array.isArray(t))throw new Error("Expected `stacks` to be an array");for(const e of t){if(!Array.isArray(e))throw new Error("Expected `stack` to be an array");for(const t of e){if(!(t instanceof Object))throw new Error("Expected `frameInfo` to be an object");if(!("module_offset"in t)||!("module"in t)||!("frame"in t))throw new Error("Expected frameInfo to have `module_offset`, `module` and `frame` properties");if("file"in t&&"string"!=typeof t.file)throw new Error("Expected frameInfo.file to be a string, if present");if("line"in t&&"number"!=typeof t.line)throw new Error("Expected frameInfo.line to be a number, if present");if("function_offset"in t&&"string"!=typeof t.function_offset)throw new Error("Expected frameInfo.function_offset to be a string, if present");if("function_size"in t&&"string"!=typeof t.function_size)throw new Error("Expected frameInfo.function_size to be a string, if present");if("inlines"in t){const e=t.inlines;if(!Array.isArray(e))throw new Error("Expected `inlines` to be an array");for(const t of e)if(!(t instanceof Object))throw new Error("Expected `inlineFrame` to be an object")}}}}return e}(await n("/symbolicate/v5",JSON.stringify(o)));return r.map((({request:t,addressArray:n},r)=>{const o=a.results[r];try{const{lib:r}=t,a=function(e,t,n,r){const{lib:o}=t,{debugName:a,breakpadId:i}=o;if(!r.found_modules[`${a}/${i}`])throw new Error(`The ${e} does not have symbols for ${a}/${i}.`);const s=r.stacks[0];if(s.length!==n.length)throw new Error(`The result from the ${e} has an unexpected length.`);const l=new Map;for(let e=0;e<s.length;e++){const t=n[e],r=s[e];let o;if(void 0!==r.function&&void 0!==r.function_offset){const e=r.function,n=parseInt(r.function_offset.substr(2),16);let a,i;if(void 0!==r.inlines){const e=r.inlines.length;a=r.inlines.map((({function:t,file:n,line:o},a)=>{const i=e-a;return{name:t??`<unknown at ${r.module_offset} at inline depth ${i}>`,file:n,line:o}}))}void 0!==r.function_size&&(i=parseInt(r.function_size.substr(2),16)),o={name:e,symbolAddress:t-n,file:r.file,line:r.line,inlines:a,functionSize:i}}else o={name:`<unknown at ${r.module_offset}>`,symbolAddress:t};l.set(t,o)}return l}(e,t,n,o);return{type:"SUCCESS",lib:r,results:a}}catch(e){return{type:"ERROR",request:t,error:e}}}))}(t,n,r)}catch(e){throw new Error(`There was a problem with the symbolication API request to the ${t}: ${e.message}`)}finally{for(const{lib:t}of n)e(gm(t))}}const o=new Od("perf-html-async-storage",{requestSymbolsFromServer:e=>r("symbol server",e,(async(e,n)=>(await fetch(t+e,{body:n,method:"POST",mode:"cors"})).json())),requestSymbolsFromBrowser:async e=>{if(null===n)throw new Error("No connection to the browser, cannot run querySymbolicationApi");const t=n;return r("browser",e,(async(e,n)=>JSON.parse(await t.querySymbolicationApi(e,n))))},requestSymbolTableFromBrowser:async t=>{if(null===n)throw new Error("No connection to the browser, cannot obtain symbol tables");const{debugName:r,breakpadId:o}=t;e(fm(t));try{const a=await n.getSymbolTable(r,o);return e(gm(t)),a}catch(n){throw e(gm(t)),n}}});return o}async function wm(e,t,n){e({type:"START_SYMBOLICATING"});const r=[];await async function(e,t,n){const r=e.threads.map((t=>function(e,t){const{frameTable:n,funcTable:r,nativeSymbols:o,resourceTable:a}=e,i=new Map;for(let e=0;e<a.length;e++){if(a.type[e]!==Gn.library)continue;const s=a.lib[e];if(null===s)continue;const l=t[s];if(void 0===l)throw new Error("Did not find a lib.");const c=new Set;for(let t=0;t<r.length;t++)r.resource[t]===e&&c.add(t);const d=new Set;for(let e=0;e<o.length;e++)o.libIndex[e]===s&&d.add(e);const u=[],h=[];for(let t=0;t<n.length;t++){const o=n.func[t];r.resource[o]===e&&(u.push(t),h.push(n.address[t]))}const p=`${l.debugName}/${l.breakpadId}`;i.set(p,{libIndex:s,resourceIndex:e,allFuncsForThisLib:c,allNativeSymbolsForThisLib:d,allFramesForThisLib:u,frameAddresses:h})}return i}(t,e.libs))),o=function(e){const t=new Map;for(const n of e)for(const[e,{frameAddresses:r}]of n){let n=t.get(e);void 0===n&&(n=new Set,t.set(e,n));for(const e of r)n.add(e)}return Array.from(t).map((([e,t])=>{const[n,r]=e.split("/");return{lib:{debugName:n,breakpadId:r},addresses:t}}))}(r);await t.getSymbols(o,((t,o)=>{const{debugName:a,breakpadId:i}=t;!function(e,t,n,r,o){const{threads:a}=e;for(let e=0;e<a.length;e++){const a=t[e].get(r);void 0!==a&&o(e,{threadLibSymbolicationInfo:a,resultsForLib:n})}}(e,r,o,`${a}/${i}`,n)}),((e,t)=>{if(!(t instanceof ls))throw t;console.warn(t)}))}(t,n,((t,n)=>{r.push(new Promise((r=>{ym.enqueueSingleSymbolicationStep(e,t,n,r)})))})),await Promise.all(r),e({type:"DONE_SYMBOLICATING"})}function km(e,t=!1){return async n=>{try{switch(e.status){case"ESTABLISHED":break;case"NOT_FIREFOX":throw new Error("/from-browser only works in Firefox browsers");case"NO_ATTEMPT":throw new Error("retrieveProfileFromBrowser should never be called while browserConnectionStatus is NO_ATTEMPT");case"WAITING":throw new Error("retrieveProfileFromBrowser should never be called while browserConnectionStatus is WAITING");case"DENIED":throw e.error;case"TIMED_OUT":throw new Error("Timed out when waiting for reply to WebChannel message");default:throw Je(e.status)}const r=e.browserConnection;n({type:"WAITING_FOR_PROFILE_FROM_BROWSER"});const o=await r.getProfile({onThirtySecondTimeout:()=>{n(Tm(new ru(En`
|
87
|
+
We were unable to connect to the browser within thirty seconds.
|
88
|
+
This might be because the profile is big or your machine is slower than usual.
|
89
|
+
Still waiting...
|
90
|
+
`)))}}),a=await async function(e){return"[object ArrayBuffer]"===Object.prototype.toString.call(e)?Rm(e):e}(o),i=Fd(a);await n(im(i,{browserConnection:r},t))}catch(e){n(rm(e)),console.error(e)}}}function Em(){return{type:"WAITING_FOR_PROFILE_FROM_STORE"}}function xm(e){return{type:"WAITING_FOR_PROFILE_FROM_URL",profileUrl:e}}function Sm(e){return{type:"RECEIVE_ZIP_FILE",zip:e}}function Tm(e){return{type:"TEMPORARY_ERROR",error:e}}function Bm(e){return new Promise((t=>setTimeout(t,e)))}function _m(e,t){if(!navigator.userAgent.match(/Safari\/\d+\.\d+/))return!1;const n=new URL(e);return"TypeError"===t.name&&"http:"===n.protocol&&va(n)&&"https:"===location.protocol}class Im extends Error{constructor(...e){super(...e),this.name="SafariLocalhostHTTPLoadError"}}async function Pm(e){let t=0;const{url:n,onTemporaryError:r}=e,o=e.reportError||console.error;for(;;){let e;try{e=await fetch(n)}catch(e){if(_m(n,e))throw new Im;throw e}if(e.ok)return Mm(n,e,o);if(403!==e.status)throw new Error(En`
|
91
|
+
Could not fetch the profile on remote server.
|
92
|
+
Response was: ${e.status} ${e.statusText}.
|
93
|
+
`);if(10==t++)break;r(new ru("Profile not found on remote server.",{count:t,total:11})),await Bm(1e3)}throw new Error(En`
|
94
|
+
Could not fetch the profile on remote server:
|
95
|
+
still not found after ${10} seconds.
|
96
|
+
`)}function Nm(e,t){return"application/zip"===t||"application/json"===t?t:e.match(/\.zip$/)?"application/zip":e.match(/\.json/)?"application/json":null}async function Mm(e,t,n){const r=Nm(e,t.headers.get("content-type"));switch(r){case"application/zip":return{responseType:"ZIP",zip:await Fm(t,n)};case"application/json":case null:return{responseType:"PROFILE",profile:await Dm(t,n,r)};default:throw Je(r)}}async function Fm(e,t){const n=await e.arrayBuffer();try{return await Tc().loadAsync(n)}catch(n){const r="Unable to unzip the zip file.";throw t(r),t("Error:",n),t("Fetch response:",e),new Error(`${r} The full error information has been printed out to the DevTool’s console.`)}}async function Rm(e){let t=new Uint8Array(e);eu(t)&&(t=await Qd(t));const n=new TextDecoder;return JSON.parse(n.decode(t))}async function Dm(e,t,n){try{return await Rm(await e.arrayBuffer())}catch(r){let o;throw o=r&&"object"==typeof r&&"AbortError"===r.name?"The network request to load the profile was aborted.":"application/json"===n?"The profile’s JSON could not be decoded.":En`
|
97
|
+
The profile could not be downloaded and decoded. This does not look like a supported file
|
98
|
+
type.
|
99
|
+
`,t(o),t("JSON parsing error:",r),t("Fetch response:",e),new Error(`${o} The full error information has been printed out to the DevTool’s console.`)}}function Lm(e){return`https://storage.googleapis.com/${Nn}/${e}`}function Om(e,t=!1){return Um(Lm(e),t)}function Um(e,t=!1){return async function(n){n(xm(e));try{const r=await Pm({url:e,onTemporaryError:e=>{n(Tm(e))}});switch(r.responseType){case"PROFILE":{const e=r.profile,o=await Rd(e);if(void 0===o)throw new Error("Unable to parse the profile.");await n(im(o,{},t));break}case"ZIP":{const e=r.zip;await n(Sm(e));break}default:throw Je(r.responseType,"Expected to receive a zip file or profile from _fetchProfile.")}}catch(e){n(rm(e))}}}function zm(){return{type:"WAITING_FOR_PROFILE_FROM_FILE"}}function Gm(e){const t=new FileReader,n=new Promise(((e,n)=>{t.onload=()=>e(t.result),t.onerror=()=>n(t.error)}));return{asText:()=>(t.readAsText(e),n),asArrayBuffer:()=>(t.readAsArrayBuffer(e),n)}}function Wm(e,t,n=Gm){return async r=>{r({type:"WAITING_FOR_PROFILE_FROM_FILE"});try{if("application/zip"===Nm(e.name,e.type)){const t=await n(e).asArrayBuffer(),o=await Tc().loadAsync(t);await r(Sm(o))}else{let o=await n(e).asArrayBuffer();const a=new Uint8Array(o);eu(a)&&(o=(await Qd(a)).buffer);const i=await Rd(o);if(void 0===i)throw new Error("Unable to parse the profile.");await async function(e){aa();try{await(async()=>{await r(mm(i,{browserConnection:t}))})()}finally{ia()}}()}}catch(e){r(rm(e))}}}function Hm(e,t=!1){return async n=>{n(xm());try{const r=await Promise.all(e.map((async e=>((e.startsWith("https://perfht.ml/")||e.startsWith("https://share.firefox.dev/")||e.startsWith("https://bit.ly/"))&&(e=await async function(e){const t=`${Mn}/expand`,n={shortUrl:e},r=await fetch(t,{method:"POST",headers:{Accept:tu,"Content-Type":"application/json"},body:JSON.stringify(n)});if(!r.ok)throw new Error(`An error happened while expanding the shortened url ${e}: ${r.statusText} (${r.status})`);return(await r.json()).longUrl}(e)),da(new URL(e))))));if(!r.every((e=>"public"===e.dataSource)))throw new Error("Only public uploaded profiles are supported by the comparison function.");const o=r.map((async({hash:e})=>{const t=Lm(e),r=await Pm({url:t,onTemporaryError:e=>{n(Tm(e))}});if("PROFILE"!==r.responseType)throw new Error("Expected to receive a profile from _fetchProfile");return Rd(r.profile)})),a=await Promise.all(o),{profile:i,implementationFilters:s,transformStacks:l}=function(e,t){if(e.length!==t.length)throw new Error("Passed arrays do not have the same length. This should not happen.");if(!e.length)throw new Error("There are no profiles to merge.");const n=Hn();n.meta.interval=Math.min(...e.map((e=>e.meta.interval))),e.every((e=>void 0===e.meta.symbolicated))?delete n.meta.symbolicated:n.meta.symbolicated=e.every((e=>e.meta.symbolicated));const{categories:r,translationMaps:o}=function(e){const t=[],n=[],r=new Map;return e.forEach((e=>{const o=new Map;n.push(o),e&&e.forEach(((e,n)=>{const{name:a}=e;let i=r.get(a);void 0===i&&(i=t.length,t.push(e),r.set(a,i)),o.set(n,i)}))})),{categories:t,translationMaps:n}}(e.map((e=>e.meta.categories)));n.meta.categories=r;const{libs:a,translationMaps:i}=function(e){const t=new Map,n=[],r=[];for(const o of e){const e=new Map;o.forEach(((n,o)=>{const a=[n.name,n.debugName].join("#"),i=t.get(a);void 0===i?(e.set(o,r.length),t.set(a,r.length),r.push(n)):e.set(o,i)})),n.push(e)}return{libs:r,translationMaps:n}}(e.map((e=>e.libs)));n.libs=a;const s={},l=[];let c;for(let r=0;r<t.length;r++){const{profileName:a,profileSpecific:d}=t[r],u=d.selectedThreads;if(null===u)throw new Error(`No thread has been selected in profile ${r}`);const h=rt(u);if(1!==u.size||void 0===h)throw new Error("Only one thread selection is currently supported for the comparison view.");const p=e[r];let m={...p.threads[h]};s[r]=d.transforms[h],l.push(d.implementation),m.stackTable={...m.stackTable,category:zd(m.stackTable.category,o[r])},m.frameTable={...m.frameTable,category:Hd(m.frameTable.category,o[r])},m.resourceTable={...m.resourceTable,lib:Gd(m.resourceTable.lib,i[r])},m.nativeSymbols={...m.nativeSymbols,libIndex:Wd(m.nativeSymbols.libIndex,i[r])};const{markerTable:f}=Yd(p.threads,m);m.markers={...m.markers,...f};const g=dr(p).start,A=d.committedRanges&&d.committedRanges.pop();A&&(c||(c=yo(p.threads)),m=Ud(m,vo(m.markers,m.stringTable,m.tid||0,A,c),A.start+g,A.end+g)),m.pid=`${m.pid} from profile ${r+1}`,m.tid=`${m.tid} from profile ${r+1}`,m.isMainThread=!0,m.processName=`${a||`Profile ${r+1}`}: ${m.processName||m.name}`;const b=-m.samples.time[0];m.samples=_d(m.samples,b),m.markers=Nd(m.markers,b),m.registerTime+=b,m.processStartupTime+=b,null!==m.processShutdownTime&&(m.processShutdownTime+=b),null!==m.unregisterTime&&(m.unregisterTime+=b),null===m.processShutdownTime&&null===m.unregisterTime&&(m.unregisterTime=cr(m,p.meta.interval).end),n.threads.push(m)}return 2===e.length&&n.threads.push(function(e,t){const n=new Sn,r=t.map((e=>e.thread)),{resourceTable:o,translationMaps:a}=Vd(n,r),{nativeSymbols:i,translationMaps:s}=jd(n,r),{funcTable:l,translationMaps:c}=Zd(a,n,r),{frameTable:d,translationMaps:u}=$d(e,c,s,n,r),{stackTable:h,translationMaps:p}=Kd(e,u,r),{samples:m}=function(e,t){const n=[new Map,new Map],[{thread:{samples:r,tid:o},weightMultiplier:a},{thread:{samples:i,tid:s},weightMultiplier:l}]=t,c=[],d=[],u={weightType:"samples",weight:null,eventDelay:[],stack:[],time:[],length:0,weight:c,threadId:d};let h=0,p=0;for(;h<r.length||p<i.length;)if(h<r.length&&(p>=i.length||r.time[h]<i.time[p])){const t=r.stack[h],i=null===t?null:e[0].get(t);if(void 0===i)throw new Error(xn`
|
100
|
+
We couldn't find the stack of sample ${h} in the translation map.
|
101
|
+
This is a programming error.
|
102
|
+
`);u.stack.push(i),u.eventDelay.push(null),u.time.push(r.time[h]),d.push(r.threadId?r.threadId[h]:o);const s=r.weight?r.weight[h]:1;c.push(-a*s),n[0].set(h,u.length),u.length++,h++}else{const t=i.stack[p],r=null===t?null:e[1].get(t);if(void 0===r)throw new Error(xn`
|
103
|
+
We couldn't find the stack of sample ${p} in the translation map.
|
104
|
+
This is a programming error.
|
105
|
+
`);u.stack.push(r),u.eventDelay.push(null),u.time.push(i.time[p]),d.push(i.threadId?i.threadId[p]:s);const o=i.weight?i.weight[p]:1;c.push(l*o),n[1].set(p,u.length),u.length++,p++}return{samples:u,translationMaps:n}}(p,t);return{processType:"comparison",processStartupTime:Math.min(r[0].processStartupTime,r[1].processStartupTime),processShutdownTime:Math.max(r[0].processShutdownTime||0,r[1].processShutdownTime||0)||null,registerTime:Math.min(r[0].registerTime,r[1].registerTime),unregisterTime:Math.max(r[0].unregisterTime||0,r[1].unregisterTime||0)||null,pausedRanges:[],name:"Diff between 1 and 2",pid:"Diff between 1 and 2",tid:"Diff between 1 and 2",isMainThread:!0,samples:m,markers:{data:[],name:[],startTime:[],endTime:[],phase:[],category:[],length:0},stackTable:h,frameTable:d,stringTable:n,funcTable:l,resourceTable:o,nativeSymbols:i}}(o,[{thread:n.threads[0],weightMultiplier:e[0].meta.interval/n.meta.interval},{thread:n.threads[1],weightMultiplier:e[1].meta.interval/n.meta.interval}])),n.meta.initialVisibleThreads=n.threads.map(((e,t)=>t)),{profile:n,implementationFilters:l,transformStacks:s}}(a,r);let c;s[0]===s[1]&&(c=s[0]),await n(im(i,{transformStacks:l,implementationFilter:c},t))}catch(e){n(rm(e))}}}function Vm(e,t){return async(n,r)=>{const o=e.pathname.split("/").filter((e=>e));let a=o[0];"from-addon"===a&&(a="from-browser");let i=ca(a);switch("from-file"===i&&(i="none"),n(Yp(i)),i){case"from-browser":if(void 0===t)throw new Error("Error: all callers of this function should supply a browserConnectionStatus argument for from-browser");await n(km(t,!0));break;case"public":await n(Om(o[1],!0));break;case"from-url":await n(Um(decodeURIComponent(o[1]),!0));break;case"compare":{const t=Tt.parse(e.search.substr(1),{arrayFormat:"bracket"});Array.isArray(t.profiles)&&await n(Hm(t.profiles,!0));break}case"uploaded-recordings":case"none":case"from-file":case"local":case"unpublished":break;default:throw Je(i,`Unknown dataSource ${i}.`)}return Rs(r())}}function jm(e){return(t,n)=>{ui(n())!==e&&(Vn({hitType:"pageview",page:e}),t({type:"CHANGE_SELECTED_TAB",selectedTab:e}))}}function Zm(e){return{type:"CHANGE_PROFILES_TO_COMPARE",profiles:e}}function $m(){return{type:"START_FETCHING_PROFILES"}}function Km(){return(e,t)=>{e({type:"URL_SETUP_DONE"});const n=Va(t());Vn({hitType:"pageview",page:"none"===n?"home":ui(t())}),Vn({hitType:"event",eventCategory:"datasource",eventAction:n})}}function Ym(e){return{type:"ROUTE_NOT_FOUND",url:e}}function qm(e,t){return{type:"CHANGE_SIDEBAR_OPEN_STATE",tab:e,isOpen:t}}function Jm(){return{type:"INCREMENT_PANEL_LAYOUT_GENERATION"}}function Xm(){return{type:"HAS_ZOOMED_VIA_MOUSEWHEEL"}}function Qm(e,t,n){return r=>{let o;try{o=da(e,t)}catch(t){return"UrlUpgradeError"===t.name?void r(rm(t)):(console.error(t),void r(Ym(e.pathname+e.search)))}"from-file"===o.dataSource&&(o=null),sa((()=>{r(ef(o)),r(sm(n)),r(Km())}))}}function ef(e){return{type:"UPDATE_URL_STATE",newUrlState:e}}function tf(e,t){return(n,r)=>{dc(r())[e]!==t&&n({type:"UPDATE_TRACK_THREAD_HEIGHT",height:t,threadsKey:e})}}function nf(){return{type:"DISMISS_NEWLY_PUBLISHED"}}function rf(){return{type:"START_DRAGGING"}}function of(){return{type:"STOP_DRAGGING"}}function af(){return{type:"REGISTER_DRAG_AND_DROP_OVERLAY"}}function sf(){return{type:"UNREGISTER_DRAG_AND_DROP_OVERLAY"}}function lf(){return(e,t)=>{const n=si(t());let r=pi(t());if(n){const e=vl(t());r=new Set([...e.threadIndexes])}e({type:"TOGGLE_RESOURCES_PANEL",selectedThreadIndexes:r})}}function cf(){return(e,t)=>{if(fc(t()))return console.error("Tried to enable the event delay tracks, but they are already enabled."),!1;if(void 0===Tu.getSamplesTable(t()).eventDelay)return console.error(En`
|
106
|
+
Tried to enable the event delay tracks, but this profile does
|
107
|
+
not have eventDelay values. It is likely an older profile.
|
108
|
+
`),!1;const n=ul(t()),r=function(e,t){const n=new Map;for(let r=0;r<e.length;r++){const o=e[r],{pid:a}=o;let i=n.get(a);void 0===i&&(i=t.get(a),void 0===i&&(i=[]),i=[...i]),i.push({type:"event-delay",threadIndex:r}),n.set(a,i)}return n}(zs(t()),n);return e({type:"ENABLE_EVENT_DELAY_TRACKS",localTracksByPid:r,localTrackOrderByPid:Ji(wi(t()),r,null)}),!0}}function df(){return(e,t)=>gc(t())?(console.error("Tried to enable the CPU graph tracks, but they are already enabled."),!1):nh(t())?(e({type:"ENABLE_EXPERIMENTAL_CPU_GRAPHS"}),!0):(console.error(En`
|
109
|
+
Tried to enable the CPU graph tracks, but this profile does
|
110
|
+
not have threadCPUDelta values. It is likely an older profile.
|
111
|
+
`),!1)}function uf(){return(e,t)=>{if(Ac(t()))return console.error("Tried to enable the process CPU tracks, but they are already enabled."),!1;if(!nh(t())&&rh(t()))return console.error(En`
|
112
|
+
Tried to enable the process CPU tracks, but this profile does
|
113
|
+
not have threadCPUDelta values or process CPU threads.
|
114
|
+
`),!1;const n=ul(t()),r=function(e,t){if(null===e)return t;const n=new Map(t);for(const[t,r]of e.entries()){if("CPU"!==r.category||"processCPU"!==r.name)continue;const{pid:e}=r;let o=n.get(e)??[];o=[...o,{type:"process-cpu",counterIndex:t}],n.set(e,o)}return n}(Vs(t()),n);return e({type:"ENABLE_EXPERIMENTAL_PROCESS_CPU_TRACKS",localTracksByPid:r,localTrackOrderByPid:Ji(wi(t()),r,null)}),!0}}function hf(e){return{type:"SET_CURRENT_PROFILE_UPLOADED_INFORMATION",uploadedProfileInformation:e}}function pf(){return{type:"PROFILE_REMOTELY_DELETED"}}function mf(e){return{type:"UPDATE_BROWSER_CONNECTION_STATUS",browserConnectionStatus:e}}function ff(e,t){return{type:"TOGGLE_SIDEBAR_OPEN_CATEGORY",kind:e,category:t}}async function gf(){const e=await yf({type:"STATUS_QUERY"});return!!e.version&&e.version>=1}const Af="font-weight: bold; color: #0a6";let bf=0;class Cf extends Error{constructor(e){super(`${e.error} (errno: ${e.errno})`),this.name="WebChannelError",this.errno=void 0,this.errno=e.errno}}function yf(e){const t=bf++;return e.type,new Promise(((n,r)=>{var o;window.addEventListener("WebChannelMessageToContent",(function e(o){const{id:a,message:i}=o.detail;if("profiler.firefox.com"===a&&i&&"object"==typeof i){!function(e){if("STATUS_RESPONSE"===e.type){const{menuButtonIsEnabled:t}=e;e.type="SUCCESS_RESPONSE",e.response={menuButtonIsEnabled:t}}else"ENABLE_MENU_BUTTON_DONE"===e.type&&(e.type="SUCCESS_RESPONSE",e.response=void 0)}(i);const o=i;o.type?o.requestId===t&&(window.removeEventListener("WebChannelMessageToContent",e,!0),"SUCCESS_RESPONSE"===o.type?n(o.response):r(new Error(o.error))):"string"==typeof o.error&&(console.error(`[webchannel] %c${o.error}`,Af),window.removeEventListener("WebChannelMessageToContent",e,!0),r(new Cf(o)))}else r(new Error("A malformed WebChannel event was received.")),console.error("[webchannel] %cmalformed event received",Af,o)}),!0),o={requestId:t,...e},window.dispatchEvent(new CustomEvent("WebChannelMessageToChrome",{detail:JSON.stringify({id:"profiler.firefox.com",message:o})}))}))}class vf{constructor(e){this._webChannelSupportsGetProfileAndSymbolication=void 0,this._geckoProfiler=void 0,this._webChannelSupportsGetProfileAndSymbolication=e}async _getConnectionViaFrameScript(){return this._geckoProfiler||(this._geckoProfiler=await window.geckoProfilerPromise),this._geckoProfiler}async getProfile(e){const t=setTimeout(e.onThirtySecondTimeout,3e4);if(this._webChannelSupportsGetProfileAndSymbolication){const e=await async function(){return yf({type:"GET_PROFILE"})}();return clearTimeout(t),e}const n=await this._getConnectionViaFrameScript(),r=await n.getProfile();return clearTimeout(t),r}async querySymbolicationApi(e,t){if(!this._webChannelSupportsGetProfileAndSymbolication)throw new Error("Can't use querySymbolicationApi in Firefox versions with the old WebChannel.");return async function(e,t){return yf({type:"QUERY_SYMBOLICATION_API",path:e,requestJson:t})}(e,t)}async getSymbolTable(e,t){if(this._webChannelSupportsGetProfileAndSymbolication)return async function(e,t){return yf({type:"GET_SYMBOL_TABLE",debugName:e,breakpadId:t})}(e,t);if(this._geckoProfiler)return this._geckoProfiler.getSymbolTable(e,t);throw new Error("Cannot obtain a symbol table: have neither WebChannel nor a GeckoProfiler object")}}class wf extends Error{constructor(...e){super(...e),this.name="TimeoutError"}}var kf=n(6831),Ef={};Ef.styleTagTransform=M(),Ef.setAttributes=B(),Ef.insert=S().bind(null,"head"),Ef.domAPI=E(),Ef.insertStyleElement=P(),w()(kf.Z,Ef),kf.Z&&kf.Z.locals&&kf.Z.locals;class xf extends X.PureComponent{render(){const{children:e,additionalMessage:t,showLoader:n,showBackHomeLink:r,title:o}=this.props;return X.createElement("div",{className:"rootMessageContainer"},X.createElement("div",{className:"rootMessage"},X.createElement(ue,{id:"ProfileRootMessage--title"},X.createElement("h1",{className:"rootMessageTitle"},"Firefox Profiler")),o?X.createElement("h2",null,o):null,X.createElement("div",{className:"rootMessageText"},X.createElement("p",null,e)),t?X.createElement("div",{className:"rootMessageAdditional"},t):null,r?X.createElement("div",{className:"rootBackHomeLink"},X.createElement("a",{href:"/"},X.createElement(ue,{id:"ProfileRootMessage--additional"},"Back to home"))):null,n?X.createElement("div",{className:"loading"},X.createElement("div",{className:"loading-div loading-div-1 loading-row-1"}),X.createElement("div",{className:"loading-div loading-div-2 loading-row-2"}),X.createElement("div",{className:"loading-div loading-div-3 loading-row-3"}),X.createElement("div",{className:"loading-div loading-div-4 loading-row-3"}),X.createElement("div",{className:"loading-div loading-div-5 loading-row-4"}),X.createElement("div",{className:"loading-div loading-div-6 loading-row-4"}),X.createElement("div",{className:"loading-div loading-div-7 loading-row-4"}),X.createElement("div",{className:"loading-div loading-div-8 loading-row-4"}),X.createElement("div",{className:"loading-div loading-div-9 loading-row-4"}),X.createElement("div",{className:"loading-div loading-div-10 loading-row-4"})):null))}}const Sf=Object.freeze({"from-browser":"ProfileLoaderAnimation--loading-unpublished",unpublished:"ProfileLoaderAnimation--loading-unpublished","from-file":"ProfileLoaderAnimation--loading-from-file",local:"ProfileLoaderAnimation--loading-local",public:"ProfileLoaderAnimation--loading-public","from-url":"ProfileLoaderAnimation--loading-from-url",compare:"ProfileLoaderAnimation--loading-compare"});class Tf extends X.PureComponent{render(){const{view:e,dataSource:t}=this.props,n=Sf[t],r=n||"ProfileLoaderAnimation--loading-view-not-found",o=Boolean(n),a=Boolean(e.additionalData&&e.additionalData.message);return X.createElement(ue,{id:r,attrs:{title:!0},elems:{a:X.createElement("span",null)}},X.createElement(xf,{additionalMessage:this._renderAdditionalMessage(),showLoader:o,showBackHomeLink:a},`Untranslated ${r}`))}_renderAdditionalMessage(){const{view:e}=this.props;if(!e.additionalData)return null;const{message:t,attempt:n}=e.additionalData;return X.createElement(X.Fragment,null,t?X.createElement("p",null,t):null,n?X.createElement("p",null,`Tried ${function(e){switch(e){case 1:return"once";case 2:return"twice";default:return`${e} times`}}(n.count)} out of ${n.total}.`):null)}}const Bf=je({mapStateToProps:e=>({view:oc(e),dataSource:Va(e)}),component:Tf});class _f extends X.PureComponent{constructor(...e){super(...e),this._updateState=()=>{const{updateUrlState:e,show404:t,urlState:n}=this.props;let r;if(window.history.state)r=window.history.state;else try{r=da(window.location)}catch(e){return console.error(e),void t(window.location.pathname+window.location.search)}const o=["from-browser","unpublished"].includes(n.dataSource)&&"public"===r.dataSource||"public"===n.dataSource&&["from-browser","unpublished"].includes(r.dataSource),a="public"===n.dataSource&&"public"===r.dataSource&&n.hash!==r.hash;o||a?window.history.replaceState(n,document.title,la(n)):e(r)}}async _processInitialUrls(){const{startFetchingProfiles:e,setupInitialUrlState:t,urlSetupDone:n,updateBrowserConnectionStatus:r}=this.props,o=this.props.retrieveProfileForRawUrl;let a;e();const i=window.location.pathname.split("/").filter((e=>e))[0];["from-browser","from-addon","from-file"].includes(i)&&(r({status:"WAITING"}),a=await async function(e=navigator.userAgent){if(!function(e){return Boolean(e.match(/Firefox\/\d+\.\d+/))}(e))return{status:"NOT_FIREFOX"};try{const e=await Promise.race([gf(),new Promise(((e,t)=>{setTimeout((()=>{t(new wf("Timed out after 5000ms"))}),5e3)}))]);return{status:"ESTABLISHED",browserConnection:new vf(e)}}catch(e){return e instanceof wf?{status:"TIMED_OUT"}:{status:"DENIED",error:new Error(En`
|
115
|
+
This profiler instance was unable to connect to the
|
116
|
+
WebChannel. This usually means that it’s running on a
|
117
|
+
different host from the one that is specified in the
|
118
|
+
preference devtools.performance.recording.ui-base-url. If
|
119
|
+
you would like to capture new profiles with this instance, you can go to about:config
|
120
|
+
and change the preference. Error: ${e.name}: ${e.message}
|
121
|
+
`)}}}("Firefox/123.0"),r(a));try{const e=await o(window.location,a),n=void 0!==a&&"ESTABLISHED"===a.status?a.browserConnection:null;t(window.location,e,n)}catch(e){console.error("There was an error in the initial URL setup.",e),n()}}componentDidMount(){this._processInitialUrls(),window.addEventListener("popstate",this._updateState)}componentWillUnmount(){window.removeEventListener("popstate",this._updateState)}componentDidUpdate(){const{urlSetupPhase:e,phase:t,urlState:n}=this.props;if("done"!==e)return;if("FATAL_ERROR"===t)return;const r=window.location.pathname+window.location.search,o=la(n);!window.history.state||ra?window.history.replaceState(n,document.title,o):o!==r&&window.history.pushState(n,document.title,o)}render(){const{urlSetupPhase:e,children:t}=this.props;switch(e){case"initial-load":return null;case"loading-profile":return X.createElement(Bf,null);case"done":return t;default:return Je(e,"Unhandled URL setup phase."),null}}}const If=je({mapStateToProps:e=>({urlState:e.urlState,urlSetupPhase:ac(e),phase:oc(e).phase}),mapDispatchToProps:{updateUrlState:ef,startFetchingProfiles:$m,urlSetupDone:Km,show404:Ym,setupInitialUrlState:Qm,retrieveProfileForRawUrl:Vm,updateBrowserConnectionStatus:mf},component:_f});function Pf(e){return{type:"REQUEST_L10N",locales:e}}function Nf(e,t,n){return{type:"RECEIVE_L10N",localization:e,primaryLocale:t,direction:n}}function Mf(e){return{type:"TOGGLE_PSEUDO_STRATEGY",pseudoStrategy:e}}class Ff{constructor(e){this.value=e}valueOf(){return this.value}}class Rf extends Ff{constructor(e="???"){super(e)}toString(e){return`{${this.value}}`}}class Df extends Ff{constructor(e,t={}){super(e),this.opts=t}toString(e){try{return e.memoizeIntlObject(Intl.NumberFormat,this.opts).format(this.value)}catch(t){return e.reportError(t),this.value.toString(10)}}}class Lf extends Ff{constructor(e,t={}){super(e),this.opts=t}toString(e){try{return e.memoizeIntlObject(Intl.DateTimeFormat,this.opts).format(this.value)}catch(t){return e.reportError(t),new Date(this.value).toISOString()}}}const Of=100,Uf="",zf="";function Gf(e,t,n){return n===t||(n instanceof Df&&t instanceof Df&&n.value===t.value||t instanceof Df&&"string"==typeof n&&n===e.memoizeIntlObject(Intl.PluralRules,t.opts).select(t.value))}function Wf(e,t,n){return t[n]?Zf(e,t[n].value):(e.reportError(new RangeError("No default")),new Rf)}function Hf(e,t){const n=[],r=Object.create(null);for(const o of t)"narg"===o.type?r[o.name]=Vf(e,o.value):n.push(Vf(e,o));return{positional:n,named:r}}function Vf(e,t){switch(t.type){case"str":return t.value;case"num":return new Df(t.value,{minimumFractionDigits:t.precision});case"var":return function(e,{name:t}){let n;if(e.params){if(!Object.prototype.hasOwnProperty.call(e.params,t))return new Rf(`$${t}`);n=e.params[t]}else{if(!e.args||!Object.prototype.hasOwnProperty.call(e.args,t))return e.reportError(new ReferenceError(`Unknown variable: $${t}`)),new Rf(`$${t}`);n=e.args[t]}if(n instanceof Ff)return n;switch(typeof n){case"string":return n;case"number":return new Df(n);case"object":if(n instanceof Date)return new Lf(n.getTime());default:return e.reportError(new TypeError(`Variable type not supported: $${t}, ${typeof n}`)),new Rf(`$${t}`)}}(e,t);case"mesg":return function(e,{name:t,attr:n}){const r=e.bundle._messages.get(t);if(!r)return e.reportError(new ReferenceError(`Unknown message: ${t}`)),new Rf(t);if(n){const o=r.attributes[n];return o?Zf(e,o):(e.reportError(new ReferenceError(`Unknown attribute: ${n}`)),new Rf(`${t}.${n}`))}return r.value?Zf(e,r.value):(e.reportError(new ReferenceError(`No value: ${t}`)),new Rf(t))}(e,t);case"term":return function(e,{name:t,attr:n,args:r}){const o=`-${t}`,a=e.bundle._terms.get(o);if(!a)return e.reportError(new ReferenceError(`Unknown term: ${o}`)),new Rf(o);if(n){const t=a.attributes[n];if(t){e.params=Hf(e,r).named;const n=Zf(e,t);return e.params=null,n}return e.reportError(new ReferenceError(`Unknown attribute: ${n}`)),new Rf(`${o}.${n}`)}e.params=Hf(e,r).named;const i=Zf(e,a.value);return e.params=null,i}(e,t);case"func":return function(e,{name:t,args:n}){let r=e.bundle._functions[t];if(!r)return e.reportError(new ReferenceError(`Unknown function: ${t}()`)),new Rf(`${t}()`);if("function"!=typeof r)return e.reportError(new TypeError(`Function ${t}() is not callable`)),new Rf(`${t}()`);try{let t=Hf(e,n);return r(t.positional,t.named)}catch(n){return e.reportError(n),new Rf(`${t}()`)}}(e,t);case"select":return function(e,{selector:t,variants:n,star:r}){let o=Vf(e,t);if(o instanceof Rf)return Wf(e,n,r);for(const t of n)if(Gf(e,o,Vf(e,t.key)))return Zf(e,t.value);return Wf(e,n,r)}(e,t);default:return new Rf}}function jf(e,t){if(e.dirty.has(t))return e.reportError(new RangeError("Cyclic reference")),new Rf;e.dirty.add(t);const n=[],r=e.bundle._useIsolating&&t.length>1;for(const o of t)if("string"!=typeof o){if(e.placeables++,e.placeables>Of)throw e.dirty.delete(t),new RangeError(`Too many placeables expanded: ${e.placeables}, max allowed is ${Of}`);r&&n.push(Uf),n.push(Vf(e,o).toString(e)),r&&n.push(zf)}else n.push(e.bundle._transform(o));return e.dirty.delete(t),n.join("")}function Zf(e,t){return"string"==typeof t?e.bundle._transform(t):jf(e,t)}class $f{constructor(e,t,n){this.dirty=new WeakSet,this.params=null,this.placeables=0,this.bundle=e,this.errors=t,this.args=n}reportError(e){if(!(this.errors&&e instanceof Error))throw e;this.errors.push(e)}memoizeIntlObject(e,t){let n=this.bundle._intls.get(e);n||(n={},this.bundle._intls.set(e,n));let r=JSON.stringify(t);return n[r]||(n[r]=new e(this.bundle.locales,t)),n[r]}}function Kf(e,t){const n=Object.create(null);for(const[r,o]of Object.entries(e))t.includes(r)&&(n[r]=o.valueOf());return n}const Yf=["unitDisplay","currencyDisplay","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits"];function qf(e,t){let n=e[0];if(n instanceof Rf)return new Rf(`NUMBER(${n.valueOf()})`);if(n instanceof Df)return new Df(n.valueOf(),{...n.opts,...Kf(t,Yf)});if(n instanceof Lf)return new Df(n.valueOf(),{...Kf(t,Yf)});throw new TypeError("Invalid argument to NUMBER")}const Jf=["dateStyle","timeStyle","fractionalSecondDigits","dayPeriod","hour12","weekday","era","year","month","day","hour","minute","second","timeZoneName"];function Xf(e,t){let n=e[0];if(n instanceof Rf)return new Rf(`DATETIME(${n.valueOf()})`);if(n instanceof Lf)return new Lf(n.valueOf(),{...n.opts,...Kf(t,Jf)});if(n instanceof Df)return new Lf(n.valueOf(),{...Kf(t,Jf)});throw new TypeError("Invalid argument to DATETIME")}const Qf=new Map;class eg{constructor(e,{functions:t,useIsolating:n=!0,transform:r=(e=>e)}={}){this._terms=new Map,this._messages=new Map,this.locales=Array.isArray(e)?e:[e],this._functions={NUMBER:qf,DATETIME:Xf,...t},this._useIsolating=n,this._transform=r,this._intls=function(e){const t=Array.isArray(e)?e.join(" "):e;let n=Qf.get(t);return void 0===n&&(n=new Map,Qf.set(t,n)),n}(e)}hasMessage(e){return this._messages.has(e)}getMessage(e){return this._messages.get(e)}addResource(e,{allowOverrides:t=!1}={}){const n=[];for(let r=0;r<e.body.length;r++){let o=e.body[r];if(o.id.startsWith("-")){if(!1===t&&this._terms.has(o.id)){n.push(new Error(`Attempt to override an existing term: "${o.id}"`));continue}this._terms.set(o.id,o)}else{if(!1===t&&this._messages.has(o.id)){n.push(new Error(`Attempt to override an existing message: "${o.id}"`));continue}this._messages.set(o.id,o)}}return n}formatPattern(e,t=null,n=null){if("string"==typeof e)return this._transform(e);let r=new $f(this,n,t);try{return jf(r,e).toString(r)}catch(e){if(r.errors&&e instanceof Error)return r.errors.push(e),(new Rf).toString(r);throw e}}}const tg=/^(-?[a-zA-Z][\w-]*) *= */gm,ng=/\.([a-zA-Z][\w-]*) *= */y,rg=/\*?\[/y,og=/(-?[0-9]+(?:\.([0-9]+))?)/y,ag=/([a-zA-Z][\w-]*)/y,ig=/([$-])?([a-zA-Z][\w-]*)(?:\.([a-zA-Z][\w-]*))?/y,sg=/^[A-Z][A-Z0-9_-]*$/,lg=/([^{}\n\r]+)/y,cg=/([^\\"\n\r]*)/y,dg=/\\([\\"])/y,ug=/\\u([a-fA-F0-9]{4})|\\U([a-fA-F0-9]{6})/y,hg=/^\n+/,pg=/ +$/,mg=/ *\r?\n/g,fg=/( *)$/,gg=/{\s*/y,Ag=/\s*}/y,bg=/\[\s*/y,Cg=/\s*] */y,yg=/\s*\(\s*/y,vg=/\s*->\s*/y,wg=/\s*:\s*/y,kg=/\s*,?\s*/y,Eg=/\s+/y;class xg{constructor(e){this.body=[],tg.lastIndex=0;let t=0;for(;;){let n=tg.exec(e);if(null===n)break;t=tg.lastIndex;try{this.body.push(s(n[1]))}catch(e){if(e instanceof SyntaxError)continue;throw e}}function n(n){return n.lastIndex=t,n.test(e)}function r(n,r){if(e[t]===n)return t++,!0;if(r)throw new r(`Expected ${n}`);return!1}function o(e,r){if(n(e))return t=e.lastIndex,!0;if(r)throw new r(`Expected ${e.toString()}`);return!1}function a(n){n.lastIndex=t;let r=n.exec(e);if(null===r)throw new SyntaxError(`Expected ${n.toString()}`);return t=n.lastIndex,r}function i(e){return a(e)[1]}function s(e){let t=l(),r=function(){let e=Object.create(null);for(;n(ng);){let t=i(ng),n=l();if(null===n)throw new SyntaxError("Expected attribute value");e[t]=n}return e}();if(null===t&&0===Object.keys(r).length)throw new SyntaxError("Expected message value or attributes");return{id:e,value:t,attributes:r}}function l(){let r;if(n(lg)&&(r=i(lg)),"{"===e[t]||"}"===e[t])return c(r?[r]:[],1/0);let o=A();return o?r?c([r,o],o.length):(o.value=b(o.value,hg),c([o],o.length)):r?b(r,pg):null}function c(r=[],o){for(;;){if(n(lg)){r.push(i(lg));continue}if("{"===e[t]){r.push(d());continue}if("}"===e[t])throw new SyntaxError("Unbalanced closing brace");let a=A();if(!a)break;r.push(a),o=Math.min(o,a.length)}let a=r.length-1,s=r[a];"string"==typeof s&&(r[a]=b(s,pg));let l=[];for(let e of r)e instanceof Sg&&(e=e.value.slice(0,e.value.length-o)),e&&l.push(e);return l}function d(){o(gg,SyntaxError);let e=u();if(o(Ag))return e;if(o(vg)){let t=function(){let e,t=[],o=0;for(;n(rg);){r("*")&&(e=o);let n=p(),a=l();if(null===a)throw new SyntaxError("Expected variant value");t[o++]={key:n,value:a}}if(0===o)return null;if(void 0===e)throw new SyntaxError("Expected default variant");return{variants:t,star:e}}();return o(Ag,SyntaxError),{type:"select",selector:e,...t}}throw new SyntaxError("Unclosed placeable")}function u(){if("{"===e[t])return d();if(n(ig)){let[,n,r,i=null]=a(ig);if("$"===n)return{type:"var",name:r};if(o(yg)){let a=function(){let n=[];for(;;){switch(e[t]){case")":return t++,n;case void 0:throw new SyntaxError("Unclosed argument list")}n.push(h()),o(kg)}}();if("-"===n)return{type:"term",name:r,attr:i,args:a};if(sg.test(r))return{type:"func",name:r,args:a};throw new SyntaxError("Function names must be all upper-case")}return"-"===n?{type:"term",name:r,attr:i,args:[]}:{type:"mesg",name:r,attr:i}}return m()}function h(){let e=u();return"mesg"!==e.type?e:o(wg)?{type:"narg",name:e.name,value:m()}:e}function p(){let e;return o(bg,SyntaxError),e=n(og)?f():{type:"str",value:i(ag)},o(Cg,SyntaxError),e}function m(){if(n(og))return f();if('"'===e[t])return function(){r('"',SyntaxError);let n="";for(;;){if(n+=i(cg),"\\"!==e[t]){if(r('"'))return{type:"str",value:n};throw new SyntaxError("Unclosed string literal")}n+=g()}}();throw new SyntaxError("Invalid expression")}function f(){let[,e,t=""]=a(og),n=t.length;return{type:"num",value:parseFloat(e),precision:n}}function g(){if(n(dg))return i(dg);if(n(ug)){let[,e,t]=a(ug),n=parseInt(e||t,16);return n<=55295||57344<=n?String.fromCodePoint(n):"�"}throw new SyntaxError("Unknown escape sequence")}function A(){let n=t;switch(o(Eg),e[t]){case".":case"[":case"*":case"}":case void 0:return!1;case"{":return C(e.slice(n,t))}return" "===e[t-1]&&C(e.slice(n,t))}function b(e,t){return e.replace(t,"")}function C(e){let t=e.replace(mg,"\n"),n=fg.exec(e)[1].length;return new Sg(t,n)}}}class Sg{constructor(e,t){this.value=e,this.length=t}}function Tg(e,t=!1,n="",r="",o){if(1===o.length)return o;const a=/(&[#\w]+;|<\s*.+?\s*>)/;return o.split(a).map((o=>a.test(o)?o:n+o.replace(/[a-z]/gi,(n=>{const r=n.charCodeAt(0);if(r>=97&&r<=122){const n=String.fromCodePoint(e.small[r-97]);return!t||97!==r&&101!==r&&111!==r&&117!==r?n:n+n}return r>=65&&r<=90?String.fromCodePoint(e.caps[r-65]):n}))+r)).join("")}const Bg={accented:Tg.bind(null,{caps:[550,385,391,7698,7702,401,403,294,298,308,310,319,7742,544,510,420,586,344,350,358,364,7804,7814,7818,7822,7824],small:[551,384,392,7699,7703,402,608,295,299,309,311,320,7743,414,511,421,587,345,351,359,365,7805,7815,7819,7823,7825]},!0,"",""),bidi:Tg.bind(null,{caps:[8704,1296,8579,5601,398,8498,8513,72,73,383,1276,8514,87,78,79,1280,210,7450,83,8869,8745,581,77,88,8516,90],small:[592,113,596,112,477,607,387,613,305,638,670,645,623,117,111,100,98,633,115,647,110,652,653,120,654,122]},!1,"","")},_g={accented:"ltr",bidi:"rtl"},Ig={hour:"numeric",minute:"numeric"},Pg={month:"short",day:"numeric",hour:"numeric",minute:"numeric"},Ng={year:"numeric",month:"short",day:"numeric"},Mg=(e,t)=>{const n=e[0],r=Date.now()-+n;return new Lf(n,r<0||r>31536e6?Ng:r>864e5?Pg:Ig)},Fg={be:"Беларуская",de:"Deutsch",el:"Ελληνικά","en-GB":"English (GB)","en-US":"English (US)","es-CL":"Español",fr:"Français","fy-NL":"Frysk",ia:"Interlingua",it:"Italiano",nl:"Nederlands","pt-BR":"Português (BR)","sv-SE":"Svenska",uk:"Українська","zh-CN":"简体中文","zh-TW":"正體中文"},Rg=Object.keys(Fg),Dg="en-US",Lg=["ar","he","fa","ps","ur"];async function Og(e){const t=await fetch(`/locales/${e}/app.ftl`,{mode:"no-cors",credentials:"include"});return[e,await t.text()]}class Ug extends X.PureComponent{constructor(...e){super(...e),this._onLocaleChange=e=>{this.props.requestL10n([e.currentTarget.value])}}render(){const{primaryLocale:e}=this.props;return e?X.createElement(ue,{id:"FooterLinks--languageSwitcher--select",attrs:{title:!0}},X.createElement("select",{className:"appFooterLinksLanguageSwitcher",onChange:this._onLocaleChange,value:e},Rg.map((e=>X.createElement("option",{value:e,key:e},Fg[e]??e))))):null}}const zg=je({component:Ug,mapStateToProps:e=>({primaryLocale:fh(e)}),mapDispatchToProps:{requestL10n:Pf}});var Gg=n(9284),Wg={};Wg.styleTagTransform=M(),Wg.setAttributes=B(),Wg.insert=S().bind(null,"head"),Wg.domAPI=E(),Wg.insertStyleElement=P(),w()(Gg.Z,Wg),Gg.Z&&Gg.Z.locals&&Gg.Z.locals;class Hg extends X.PureComponent{constructor(...e){super(...e),this._onClick=()=>{this.setState({hide:!0})},this.state={hide:!1}}render(){return this.state.hide?null:X.createElement("div",{className:"appFooterLinks"},X.createElement(ue,{id:"FooterLinks--hide-button",attrs:{title:!0,"aria-label":!0}},X.createElement("button",{className:"appFooterLinksClose",type:"button",onClick:this._onClick},"✕")),X.createElement("a",{className:"appFooterLinksLink",href:"https://www.mozilla.org/about/legal/terms/mozilla",target:"_blank",rel:"noopener noreferrer"},X.createElement(ue,{id:"FooterLinks--legal"},"Legal")),X.createElement("a",{className:"appFooterLinksLink",href:"https://www.mozilla.org/privacy/websites",target:"_blank",rel:"noopener noreferrer"},X.createElement(ue,{id:"FooterLinks--Privacy"},"Privacy")),X.createElement("a",{className:"appFooterLinksLink",href:"https://www.mozilla.org/privacy/websites/#cookies",target:"_blank",rel:"noopener noreferrer"},X.createElement(ue,{id:"FooterLinks--Cookies"},"Cookies")),X.createElement(zg,null))}}var Vg=n(6108),jg={};jg.styleTagTransform=M(),jg.setAttributes=B(),jg.insert=S().bind(null,"head"),jg.domAPI=E(),jg.insertStyleElement=P(),w()(Vg.Z,jg),Vg.Z&&Vg.Z.locals&&Vg.Z.locals;class Zg extends X.Component{constructor(...e){super(...e),this.state={hasError:!1,errorString:null}}componentDidCatch(e,{componentStack:t}){console.error("An unhandled error was thrown in a React component.",e,t);let n=null;if(e&&"object"==typeof e&&"function"==typeof e.toString){const t=e.toString();"string"==typeof t&&(n=t)}this.setState({hasError:!0,errorString:n}),function(e){const t=self.ga;t&&t("send","exception",e)}({exDescription:n?n+"\n"+t:t,exFatal:!0})}render(){if(this.state.hasError){const{errorString:e}=this.state;return X.createElement("div",{className:"appErrorBoundary"},X.createElement("div",{className:"appErrorBoundaryContents"},X.createElement("div",{className:"photon-message-bar photon-message-bar-error photon-message-bar-inner-content"},X.createElement("div",{className:"photon-message-bar-inner-text appErrorBoundaryInnerText"},X.createElement("p",null,this.props.message),e?X.createElement("p",null,e,"."):null,X.createElement("p",null,this.props.reportExplanationMessage)),X.createElement("a",{className:"photon-button photon-button-micro photon-message-bar-action-button",href:"https://github.com/firefox-devtools/profiler/issues/new?title=An%20error%20occurred%20in%20Firefox%20Profiler",target:"_blank",rel:"noreferrer"},this.props.buttonContent))))}return this.props.children}}function $g(e){return X.createElement(Zg,{...e,buttonContent:"Report the error on GitHub",reportExplanationMessage:"Please report this error to the developers, including the full error as displayed in the Developer Tools’ Web Console."})}function Kg(e){return X.createElement(Zg,{...e,buttonContent:X.createElement(ue,{id:"ErrorBoundary--report-error-on-github"},"Report the error on GitHub"),reportExplanationMessage:X.createElement(ue,{id:"ErrorBoundary--report-error-to-developers-description"},"Please report this issue to the developers, including the full error as displayed in the Developer Tools’ Web Console.")})}var Yg=n(5513),qg=n.n(Yg),Jg=n(4184),Xg=n.n(Jg),Qg=n(5752),eA={};eA.styleTagTransform=M(),eA.setAttributes=B(),eA.insert=S().bind(null,"head"),eA.domAPI=E(),eA.insertStyleElement=P(),w()(Qg.Z,eA),Qg.Z&&Qg.Z.locals&&Qg.Z.locals;class tA extends X.PureComponent{constructor(...e){super(...e),this._onClickListener=e=>{this.props.onSelectTab(e.currentTarget.dataset.name)},this._onMouseDown=e=>{this.props.onSelectTab(e.currentTarget.dataset.name),e.preventDefault()}}render(){const{selectedTabSlug:e,visibleTabs:t}=this.props;return X.createElement("ol",{className:"tabBarTabWrapper",role:"tablist","aria-label":"Profiler tabs"},t.map((t=>X.createElement("li",{className:Xg()({tabBarTab:!0,selected:t===e}),key:t,"data-name":t,onClick:this._onClickListener,onMouseDown:this._onMouseDown},X.createElement(ue,{id:Qo[t]},X.createElement("button",{className:"tabBarTabButton",type:"button",id:`${t}-tab-button`,role:"tab","aria-selected":t===e,"aria-controls":`${t}-tab`},Qo[t]))))))}}var nA=n(3758),rA=n.n(nA);let oA=null;function aA(){return oA||(oA=function(){const e=new Map,t=new Map;let n=null;function r(t,n){const r=e.get(t);r&&r.forEach((e=>e(n)))}function o(e){for(const n of e)document.hidden?t.set(n.target,n.contentRect):r(n.target,n.contentRect)}function a(){document.hidden||(t.forEach(((e,t)=>r(t,e))),t.clear())}function i(){return n||(n=new ResizeObserver(o),window.addEventListener("visibilitychange",a)),n}return{subscribe(t,n){const r=e.get(t)??new Set;e.set(t,r),r.add(n),i().observe(t)},unsubscribe(t,r){const o=e.get(t);o?(o.delete(r)||console.warn("[ResizeObserverWrapper.unsubscribe] We tried to unregister an unknown callback."),0===o.size&&(e.delete(t),i().unobserve(t)),0===e.size&&(n=null,window.removeEventListener("visibilitychange",a))):console.warn("[ResizeObserverWrapper.unsubscribe] We tried to unregister a callback for an element that wasn't registered in the first place. Ignoring...")}}}()),oA}class iA extends X.PureComponent{render(){const{renderItem:e,item:t,index:n,columnIndex:r}=this.props;return e(t,n,r)}}class sA extends X.PureComponent{render(){const{className:e,renderItem:t,items:n,specialItems:r,visibleRangeStart:o,visibleRangeEnd:a,columnIndex:i,forceRender:s}=this.props;return X.createElement("div",{className:e},rA()(o,Math.max(o,a)).map((e=>{const o=n[e],a=`${r.indexOf(o)}|${r.reduce(((e,t)=>t===o?e+1:e),0)}`;return X.createElement(iA,{key:e,index:e,columnIndex:i,renderItem:t,item:o,items:n,forceRenderItem:a,forceRender:s})})))}}class lA extends X.PureComponent{render(){const{itemHeight:e,className:t,renderItem:n,items:r,specialItems:o,visibleRangeStart:a,visibleRangeEnd:i,columnIndex:s,containerWidth:l,forceRender:c}=this.props,d=Math.floor(a/16),u=Math.ceil(i/16),h=rA()(d,Math.max(d,u)).map((e=>16*e));return X.createElement("div",{className:t,style:{height:(r.length+1)*e+"px",minWidth:1===s?l:void 0}},X.createElement("div",{className:`${t}TopSpacer`,key:-1,style:{height:Math.max(0,a)*e+"px"}}),h.map((e=>X.createElement(sA,{className:`${t}InnerChunk`,key:e,visibleRangeStart:Math.max(e,a),visibleRangeEnd:Math.min(e+16,i),columnIndex:s,renderItem:n,items:r,specialItems:o,forceRender:c}))))}}class cA extends X.PureComponent{constructor(...e){super(...e),this._container=X.createRef(),this.state={scrollTop:0,containerHeight:0},this._resizeListener=e=>{this.setState({containerHeight:e.height})},this._onScroll=e=>{this.setState({scrollTop:e.currentTarget.scrollTop})},this._onCopy=e=>{const{onCopy:t}=this.props;t&&document.activeElement===this._container.current&&t(e)},this._onMouseLeaveInnerWrapper=()=>{this.props.onMouseLeaveRenderedList&&this.props.onMouseLeaveRenderedList()}}componentDidMount(){document.addEventListener("copy",this._onCopy,!1);const e=this._container.current;if(!e)throw new Error("The container was assumed to exist while mounting The VirtualList.");aA().subscribe(e,this._resizeListener)}componentWillUnmount(){document.removeEventListener("copy",this._onCopy,!1);const e=this._container.current;if(!e)throw new Error("The container was assumed to exist while unmounting The VirtualList.");aA().unsubscribe(e,this._resizeListener)}computeVisibleRange(){const{itemHeight:e,disableOverscan:t}=this.props,{scrollTop:n,containerHeight:r}=this.state,o=t?0:25;let a=Math.floor(n/e)-o,i=Math.ceil((n+r)/e)+o;return t||(a=16*Math.floor(a/16),i=16*Math.ceil(i/16)),{visibleRangeStart:a,visibleRangeEnd:i}}_scrollContainerHorizontally(e,t,n){const r=t,o=t+400,a=e.clientWidth-n;e.scrollLeft>r?e.scrollLeft=r:e.scrollLeft+a<o&&(e.scrollLeft=Math.min(r,o-a))}scrollItemIntoView(e,t,n=0){const r=this._container.current;if(!r)return;let o=3*this.props.itemHeight;r.clientHeight<2*o&&(o=0);const a=e*this.props.itemHeight,i=a-o,s=a+this.props.itemHeight,l=s+o,c=16*this.props.itemHeight;if(a+c<r.scrollTop||s-c>r.scrollTop+r.clientHeight){const e=a-(r.clientHeight-this.props.itemHeight)/2;r.scrollTop=Math.min(i,e)}else i<r.scrollTop?r.scrollTop=i:l>r.scrollTop+r.clientHeight&&(r.scrollTop=Math.min(i,l-r.clientHeight));this._scrollContainerHorizontally(r,t,n)}focus(){const e=this._container.current;e&&e.focus()}render(){const{itemHeight:e,className:t,renderItem:n,items:r,focusable:o,specialItems:a,onKeyDown:i,containerWidth:s,forceRender:l,ariaRole:c,ariaLabel:d,ariaActiveDescendant:u}=this.props,h=this.props.columnCount||1,{visibleRangeStart:p,visibleRangeEnd:m}=this.computeVisibleRange();return X.createElement("div",{className:t,ref:this._container,tabIndex:o?0:-1,onKeyDown:i,role:c,"aria-label":d,"aria-activedescendant":u,onScroll:this._onScroll},X.createElement("div",{className:`${t}InnerWrapper`,onMouseLeave:this._onMouseLeaveInnerWrapper},rA()(h).map((o=>X.createElement(lA,{className:Xg()(`${t}Inner`,`${t}Inner${o}`),visibleRangeStart:Math.max(0,p),visibleRangeEnd:Math.min(r.length,m),itemHeight:e,renderItem:n,items:r,specialItems:a,columnIndex:o,containerWidth:s,forceRender:l,key:o})))))}}var dA=n(5697),uA=n.n(dA),hA=n(7418),pA=n.n(hA);function mA(e){for(var t=arguments.length,n=new Array(t>1?t-1:0),r=1;r<t;r++)n[r-1]=arguments[r];return"function"==typeof e&&e(...n)}function fA(e,t){return Object.prototype.hasOwnProperty.call(e,t)}const gA="react-contextmenu",AA="react-contextmenu--visible",bA="react-contextmenu-item",CA="react-contextmenu-item--disabled",yA="react-contextmenu-item--selected",vA={},wA=Boolean("undefined"!=typeof window&&window.document&&window.document.createElement),kA="REACT_CONTEXTMENU_SHOW",EA="REACT_CONTEXTMENU_HIDE";function xA(e,t){let n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:window;"function"==typeof window.CustomEvent?n=new window.CustomEvent(e,{detail:t}):(n=document.createEvent("CustomEvent"),n.initCustomEvent(e,!1,!0,t)),r&&(r.dispatchEvent(n),pA()(vA,t))}function SA(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;xA(kA,pA()({},e,{type:kA}),t)}function TA(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;xA(EA,pA()({},e,{type:EA}),t)}const BA=new class{constructor(){this.handleShowEvent=e=>{for(const t in this.callbacks)fA(this.callbacks,t)&&this.callbacks[t].show(e)},this.handleHideEvent=e=>{for(const t in this.callbacks)fA(this.callbacks,t)&&this.callbacks[t].hide(e)},this.register=(e,t)=>{const n=Math.random().toString(36).substring(7);return this.callbacks[n]={show:e,hide:t},n},this.unregister=e=>{e&&this.callbacks[e]&&delete this.callbacks[e]},this.callbacks={},wA&&(window.addEventListener(kA,this.handleShowEvent),window.addEventListener(EA,this.handleHideEvent))}};function _A(){return _A=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},_A.apply(this,arguments)}class IA extends X.Component{constructor(){super(...arguments),this.handleClick=e=>{0!==e.button&&1!==e.button&&e.preventDefault(),this.props.disabled||this.props.divider||(mA(this.props.onClick,e,pA()({},this.props.data,vA.data),vA.target),this.props.preventClose||TA())}}render(){const{attributes:e,children:t,className:n,disabled:r,divider:o,selected:a,role:i}=this.props,s=Xg()(n,bA,e.className,{[Xg()(CA,e.disabledClassName)]:r,[Xg()("react-contextmenu-item--divider",e.dividerClassName)]:o,[Xg()(yA,e.selectedClassName)]:a});return X.createElement("div",_A({},e,{className:s,role:i,tabIndex:"-1","aria-disabled":r?"true":"false","aria-orientation":o?"horizontal":null,ref:e=>{this.ref=e},onMouseMove:this.props.onMouseMove,onMouseLeave:this.props.onMouseLeave,onTouchEnd:this.handleClick,onClick:this.handleClick}),o?null:t)}}IA.propTypes={attributes:uA().object,children:uA().node,className:uA().string,data:uA().object,disabled:uA().bool,divider:uA().bool,onClick:uA().func,onMouseLeave:uA().func,onMouseMove:uA().func,preventClose:uA().bool,selected:uA().bool,role:uA().string},IA.defaultProps={attributes:{},children:null,className:"",data:{},disabled:!1,divider:!1,onClick:()=>null,onMouseMove:()=>null,onMouseLeave:()=>null,preventClose:!1,selected:!1,role:"menuitem"};class PA extends X.Component{constructor(e){var t;super(e),t=this,this.handleKeyNavigation=e=>{if(!1!==this.state.isVisible)switch(e.key){case"ArrowLeft":case"Left":case"Escape":case"Esc":e.preventDefault(),this.hideMenu(e);break;case"ArrowUp":case"Up":e.preventDefault(),this.selectChildren(!0);break;case"ArrowDown":case"Down":e.preventDefault(),this.selectChildren(!1);break;case"ArrowRight":case"Right":this.tryToOpenSubMenu(e);break;case"Enter":e.preventDefault(),this.tryToOpenSubMenu(e);{const t=this.seletedItemRef&&this.seletedItemRef.props&&this.seletedItemRef.props.disabled;this.seletedItemRef&&this.seletedItemRef.ref instanceof HTMLElement&&!t?this.seletedItemRef.ref.click():this.hideMenu(e)}}},this.handleForceClose=()=>{this.setState({forceSubMenuOpen:!1})},this.tryToOpenSubMenu=e=>{this.state.selectedItem&&this.state.selectedItem.type===this.getSubMenuType()&&(e.preventDefault(),this.setState({forceSubMenuOpen:!0}))},this.selectChildren=e=>{const{selectedItem:t}=this.state,n=[];let r=0,o={};const a=(e,t)=>{e&&([IA,this.getSubMenuType()].indexOf(e.type)<0?X.Children.forEach(e.props.children,a):e.props.divider||(e.props.disabled&&(++r,o[t]=!0),n.push(e)))};if(X.Children.forEach(this.props.children,a),r===n.length)return;const i=function(t){let r=t;do{e?--r:++r,r<0?r=n.length-1:r>=n.length&&(r=0)}while(r!==t&&o[r]);return r===t?null:r}(t?t.index:-1);null!==i&&this.setState({selectedItem:{index:i,type:n[i].type},forceSubMenuOpen:!1})},this.onChildMouseMove=(e,t)=>{null!==this.state.selectedItem&&this.state.selectedItem.index===t||this.setState({selectedItem:{index:t,type:e.type},forceSubMenuOpen:!1})},this.onChildMouseLeave=()=>{this.setState({selectedItem:null,forceSubMenuOpen:!1})},this.renderChildren=function(e){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{value:-1};return X.Children.map(e,(e=>{let r=n;const o={};if(!X.isValidElement(e))return e;if([IA,t.getSubMenuType()].indexOf(e.type)<0)return o.children=t.renderChildren(e.props.children,r),X.cloneElement(e,o);let a=null;return e.props.divider||(a=++r.value),o.onMouseLeave=t.onChildMouseLeave.bind(t),e.type===t.getSubMenuType()&&(o.forceOpen=t.state.forceSubMenuOpen&&t.state.selectedItem&&t.state.selectedItem.index===a,o.forceClose=t.handleForceClose,o.parentKeyNavigationHandler=t.handleKeyNavigation),!e.props.divider&&t.state.selectedItem&&t.state.selectedItem.index===a?(o.selected=!0,o.ref=e=>{t.seletedItemRef=e},X.cloneElement(e,o)):(o.onMouseMove=()=>t.onChildMouseMove(e,a),X.cloneElement(e,o))}))},this.seletedItemRef=null,this.state={selectedItem:null,forceSubMenuOpen:!1}}}function NA(){return NA=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},NA.apply(this,arguments)}PA.propTypes={children:uA().node.isRequired};class MA extends PA{constructor(e){super(e),this.getMenuPosition=()=>{const{innerWidth:e,innerHeight:t}=window,n=this.subMenu.getBoundingClientRect(),r={};return n.bottom>t?r.bottom=0:r.top=0,n.right<e?r.left="100%":r.right="100%",r},this.getRTLMenuPosition=()=>{const{innerHeight:e}=window,t=this.subMenu.getBoundingClientRect(),n={};return t.bottom>e?n.bottom=0:n.top=0,t.left<0?n.left="100%":n.right="100%",n},this.hideMenu=e=>{e.preventDefault(),this.hideSubMenu(e)},this.hideSubMenu=e=>{e.detail&&e.detail.id&&this.menu&&e.detail.id!==this.menu.id||(this.props.forceOpen&&this.props.forceClose(),this.setState({visible:!1,selectedItem:null}),this.unregisterHandlers())},this.handleClick=e=>{e.preventDefault(),this.props.disabled||(mA(this.props.onClick,e,pA()({},this.props.data,vA.data),vA.target),this.props.onClick&&!this.props.preventCloseOnClick&&TA())},this.handleMouseEnter=()=>{this.closetimer&&clearTimeout(this.closetimer),this.props.disabled||this.state.visible||(this.opentimer=setTimeout((()=>this.setState({visible:!0,selectedItem:null})),this.props.hoverDelay))},this.handleMouseLeave=()=>{this.opentimer&&clearTimeout(this.opentimer),this.state.visible&&(this.closetimer=setTimeout((()=>this.setState({visible:!1,selectedItem:null})),this.props.hoverDelay))},this.menuRef=e=>{this.menu=e},this.subMenuRef=e=>{this.subMenu=e},this.registerHandlers=()=>{document.removeEventListener("keydown",this.props.parentKeyNavigationHandler),document.addEventListener("keydown",this.handleKeyNavigation)},this.unregisterHandlers=e=>{document.removeEventListener("keydown",this.handleKeyNavigation),e||document.addEventListener("keydown",this.props.parentKeyNavigationHandler)},this.state=pA()({},this.state,{visible:!1})}componentDidMount(){this.listenId=BA.register((()=>{}),this.hideSubMenu)}getSubMenuType(){return MA}shouldComponentUpdate(e,t){return this.isVisibilityChange=!(this.state.visible===t.visible&&this.props.forceOpen===e.forceOpen||this.state.visible&&e.forceOpen||this.props.forceOpen&&t.visible),!0}componentDidUpdate(){if(this.isVisibilityChange)if(this.props.forceOpen||this.state.visible)(window.requestAnimationFrame||setTimeout)((()=>{const e=this.props.rtl?this.getRTLMenuPosition():this.getMenuPosition();this.subMenu.style.removeProperty("top"),this.subMenu.style.removeProperty("bottom"),this.subMenu.style.removeProperty("left"),this.subMenu.style.removeProperty("right"),fA(e,"top")&&(this.subMenu.style.top=e.top),fA(e,"left")&&(this.subMenu.style.left=e.left),fA(e,"bottom")&&(this.subMenu.style.bottom=e.bottom),fA(e,"right")&&(this.subMenu.style.right=e.right),this.subMenu.classList.add(AA),this.registerHandlers(),this.setState({selectedItem:null})}));else{const e=()=>{this.subMenu.removeEventListener("transitionend",e),this.subMenu.style.removeProperty("bottom"),this.subMenu.style.removeProperty("right"),this.subMenu.style.top=0,this.subMenu.style.left="100%",this.unregisterHandlers()};this.subMenu.addEventListener("transitionend",e),this.subMenu.classList.remove(AA)}}componentWillUnmount(){this.listenId&&BA.unregister(this.listenId),this.opentimer&&clearTimeout(this.opentimer),this.closetimer&&clearTimeout(this.closetimer),this.unregisterHandlers(!0)}render(){const{children:e,attributes:t,disabled:n,title:r,selected:o}=this.props,{visible:a}=this.state,i={ref:this.menuRef,onMouseEnter:this.handleMouseEnter,onMouseLeave:this.handleMouseLeave,className:Xg()(bA,"react-contextmenu-submenu",t.listClassName),style:{position:"relative"}},s={className:Xg()(bA,t.className,{[Xg()(CA,t.disabledClassName)]:n,[Xg()("react-contextmenu-item--active",t.visibleClassName)]:a,[Xg()(yA,t.selectedClassName)]:o}),onMouseMove:this.props.onMouseMove,onMouseOut:this.props.onMouseOut,onClick:this.handleClick},l={ref:this.subMenuRef,style:{position:"absolute",transition:"opacity 1ms",top:0,left:"100%"},className:Xg()(gA,this.props.className)};return X.createElement("nav",NA({},i,{role:"menuitem",tabIndex:"-1","aria-haspopup":"true"}),X.createElement("div",NA({},t,s),r),X.createElement("nav",NA({},l,{role:"menu",tabIndex:"-1"}),this.renderChildren(e)))}}MA.propTypes={children:uA().node.isRequired,attributes:uA().object,title:uA().node.isRequired,className:uA().string,disabled:uA().bool,hoverDelay:uA().number,rtl:uA().bool,selected:uA().bool,onMouseMove:uA().func,onMouseOut:uA().func,forceOpen:uA().bool,forceClose:uA().func,parentKeyNavigationHandler:uA().func},MA.defaultProps={disabled:!1,hoverDelay:500,attributes:{},className:"",rtl:!1,selected:!1,onMouseMove:()=>null,onMouseOut:()=>null,forceOpen:!1,forceClose:()=>null,parentKeyNavigationHandler:()=>null};class FA extends PA{constructor(e){var t;super(e),t=this,this.registerHandlers=()=>{document.addEventListener("mousedown",this.handleOutsideClick),document.addEventListener("touchstart",this.handleOutsideClick),this.props.preventHideOnScroll||document.addEventListener("scroll",this.handleHide),this.props.preventHideOnContextMenu||document.addEventListener("contextmenu",this.handleHide),document.addEventListener("keydown",this.handleKeyNavigation),this.props.preventHideOnResize||window.addEventListener("resize",this.handleHide)},this.unregisterHandlers=()=>{document.removeEventListener("mousedown",this.handleOutsideClick),document.removeEventListener("touchstart",this.handleOutsideClick),document.removeEventListener("scroll",this.handleHide),document.removeEventListener("contextmenu",this.handleHide),document.removeEventListener("keydown",this.handleKeyNavigation),window.removeEventListener("resize",this.handleHide)},this.handleShow=e=>{if(e.detail.id!==this.props.id||this.state.isVisible)return;const{x:t,y:n}=e.detail.position;this.setState({isVisible:!0,x:t,y:n}),this.registerHandlers(),mA(this.props.onShow,e)},this.handleHide=e=>{var t;!this.state.isVisible||e.detail&&e.detail.id&&e.detail.id!==this.props.id||(this.unregisterHandlers(),t=()=>{this.setState({isVisible:!1,selectedItem:null,forceSubMenuOpen:!1})},Q.flushSync?Q.flushSync(t):t(),mA(this.props.onHide,e))},this.handleOutsideClick=e=>{this.menu.contains(e.target)||TA()},this.handleMouseLeave=e=>{e.preventDefault(),mA(this.props.onMouseLeave,e,pA()({},this.props.data,vA.data),vA.target),this.props.hideOnLeave&&TA()},this.handleContextMenu=e=>{e.preventDefault(),this.handleHide(e)},this.hideMenu=e=>{"Escape"!==e.key&&"Esc"!==e.key&&"Enter"!==e.key||TA()},this.getMenuPosition=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r={top:n,left:e};if(!t.menu)return r;const{innerWidth:o,innerHeight:a}=window,i=t.menu.getBoundingClientRect();return n+i.height>a&&(r.top-=i.height),e+i.width>o&&(r.left-=i.width),r.top<0&&(r.top=i.height<a?(a-i.height)/2:0),r.left<0&&(r.left=i.width<o?(o-i.width)/2:0),r},this.getRTLMenuPosition=function(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,r={top:n,left:e};if(!t.menu)return r;const{innerWidth:o,innerHeight:a}=window,i=t.menu.getBoundingClientRect();return r.left=e-i.width,n+i.height>a&&(r.top-=i.height),r.left<0&&(r.left+=i.width),r.top<0&&(r.top=i.height<a?(a-i.height)/2:0),r.left+i.width>o&&(r.left=i.width<o?(o-i.width)/2:0),r},this.menuRef=e=>{this.menu=e},this.state=pA()({},this.state,{x:0,y:0,isVisible:!1})}getSubMenuType(){return MA}componentDidMount(){this.listenId=BA.register(this.handleShow,this.handleHide)}componentDidUpdate(){const e=window.requestAnimationFrame||setTimeout;this.state.isVisible?e((()=>{const{x:t,y:n}=this.state,{top:r,left:o}=this.props.rtl?this.getRTLMenuPosition(t,n):this.getMenuPosition(t,n);e((()=>{this.menu&&(this.menu.style.top="".concat(r,"px"),this.menu.style.left="".concat(o,"px"),this.menu.style.opacity=1,this.menu.style.pointerEvents="auto")}))})):e((()=>{this.menu&&(this.menu.style.opacity=0,this.menu.style.pointerEvents="none")}))}componentWillUnmount(){this.listenId&&BA.unregister(this.listenId),this.unregisterHandlers()}render(){const{children:e,className:t,style:n}=this.props,{isVisible:r}=this.state,o=pA()({},n,{position:"fixed",opacity:0,pointerEvents:"none"}),a=Xg()(gA,t,{[AA]:r});return X.createElement("nav",{role:"menu",tabIndex:"-1",ref:this.menuRef,style:o,className:a,onContextMenu:this.handleContextMenu,onMouseLeave:this.handleMouseLeave},this.renderChildren(e))}}FA.propTypes={id:uA().string.isRequired,children:uA().node.isRequired,data:uA().object,className:uA().string,hideOnLeave:uA().bool,rtl:uA().bool,onHide:uA().func,onMouseLeave:uA().func,onShow:uA().func,preventHideOnContextMenu:uA().bool,preventHideOnResize:uA().bool,preventHideOnScroll:uA().bool,style:uA().object},FA.defaultProps={className:"",data:{},hideOnLeave:!1,rtl:!1,onHide:()=>null,onMouseLeave:()=>null,onShow:()=>null,preventHideOnContextMenu:!1,preventHideOnResize:!1,preventHideOnScroll:!1,style:{}};class RA extends X.Component{constructor(){super(...arguments),this.touchHandled=!1,this.handleMouseDown=e=>{this.props.holdToDisplay>=0&&0===e.button&&(e.persist(),e.stopPropagation(),this.mouseDownTimeoutId=setTimeout((()=>this.handleContextClick(e)),this.props.holdToDisplay)),mA(this.props.attributes.onMouseDown,e)},this.handleMouseUp=e=>{0===e.button&&clearTimeout(this.mouseDownTimeoutId),mA(this.props.attributes.onMouseUp,e)},this.handleMouseOut=e=>{0===e.button&&clearTimeout(this.mouseDownTimeoutId),mA(this.props.attributes.onMouseOut,e)},this.handleTouchstart=e=>{this.touchHandled=!1,this.props.holdToDisplay>=0&&(e.persist(),e.stopPropagation(),this.touchstartTimeoutId=setTimeout((()=>{this.handleContextClick(e),this.touchHandled=!0}),this.props.holdToDisplay)),mA(this.props.attributes.onTouchStart,e)},this.handleTouchEnd=e=>{this.touchHandled&&e.preventDefault(),clearTimeout(this.touchstartTimeoutId),mA(this.props.attributes.onTouchEnd,e)},this.handleContextMenu=e=>{this.handleContextClick(e),mA(this.props.attributes.onContextMenu,e)},this.handleMouseClick=e=>{this.handleContextClick(e),mA(this.props.attributes.onClick,e)},this.handleContextClick=e=>{if(this.props.disable)return;if(this.props.disableIfShiftIsPressed&&e.shiftKey)return;e.preventDefault(),e.stopPropagation();let t=e.clientX||e.touches&&e.touches[0].pageX,n=e.clientY||e.touches&&e.touches[0].pageY;this.props.posX&&(t-=this.props.posX),this.props.posY&&(n-=this.props.posY),TA();let r=mA(this.props.collect,this.props),o={position:{x:t,y:n},target:this.elem,id:this.props.id};r&&"function"==typeof r.then?r.then((t=>{o.data=pA()({},t,{target:e.target}),SA(o)})):(o.data=pA()({},r,{target:e.target}),SA(o))},this.elemRef=e=>{this.elem=e}}render(){const{renderTag:e,attributes:t,children:n,triggerOnLeftClick:r}=this.props,o={...t,className:Xg()("react-contextmenu-wrapper",t.className),onContextMenu:this.handleContextMenu,onClick:r?this.handleMouseClick:null,onMouseDown:this.handleMouseDown,onMouseUp:this.handleMouseUp,onTouchStart:this.handleTouchstart,onTouchEnd:this.handleTouchEnd,onMouseOut:this.handleMouseOut,ref:this.elemRef};return X.createElement(e,o,n)}}RA.propTypes={id:uA().string.isRequired,children:uA().node.isRequired,attributes:uA().object,collect:uA().func,disable:uA().bool,holdToDisplay:uA().number,posX:uA().number,posY:uA().number,renderTag:uA().elementType,triggerOnLeftClick:uA().bool,disableIfShiftIsPressed:uA().bool},RA.defaultProps={attributes:{},collect:()=>null,disable:!1,holdToDisplay:1e3,renderTag:"div",posX:0,posY:0,triggerOnLeftClick:!1,disableIfShiftIsPressed:!1},Object.keys(RA.propTypes);class DA extends X.PureComponent{render(){return X.createElement(RA,{holdToDisplay:-1,...this.props})}}var LA=n(1286),OA={};function UA(e){const{children:t,id:n}=e;return n?X.createElement(ue,{...e},t):t}OA.styleTagTransform=M(),OA.setAttributes=B(),OA.insert=S().bind(null,"head"),OA.domAPI=E(),OA.insertStyleElement=P(),w()(LA.Z,OA),LA.Z&&LA.Z.locals&&LA.Z.locals;class zA extends X.PureComponent{constructor(...e){super(...e),this._onDividerMouseDown=e=>{this.props.onColumnWidthChangeStart(Number(e.currentTarget.dataset.columnIndex),e.clientX)},this._onDividerDoubleClick=e=>{this.props.onColumnWidthReset(Number(e.currentTarget.dataset.columnIndex))}}render(){const{fixedColumns:e,mainColumn:t,viewOptions:n}=this.props,r=n.fixedColumnWidths;return 0!==e.length||t.titleL10nId?X.createElement("div",{className:"treeViewHeader"},e.map(((e,t)=>{const n=r[t]+(e.headerWidthAdjustment||0);return X.createElement(X.Fragment,{key:e.propName},X.createElement(UA,{id:e.titleL10nId,attrs:{title:!0}},X.createElement("span",{style:{width:n},className:`treeViewHeaderColumn treeViewFixedColumn ${e.propName}`})),!0!==e.hideDividerAfter?X.createElement("span",{key:e.propName+"Divider",className:Xg()("treeViewColumnDivider",{isResizable:e.resizable}),onMouseDown:e.resizable?this._onDividerMouseDown:void 0,onDoubleClick:e.resizable?this._onDividerDoubleClick:void 0,"data-column-index":t}):null)})),X.createElement(UA,{id:t.titleL10nId,attrs:{title:!0}},X.createElement("span",{className:`treeViewHeaderColumn treeViewMainColumn ${t.propName}`}))):null}}function GA(e,t,n){if(!t)return e;t.lastIndex=0;const r=[];let o,a=0;for(;o=t.exec(e);){const i=o;if(null===i)break;r.push(e.substring(a,i.index)),a=t.lastIndex,r.push(X.createElement("span",{key:i.index,className:n},i[0]))}return r.push(e.substring(a)),r}class WA extends X.PureComponent{constructor(...e){super(...e),this._onClick=e=>{const{nodeId:t,onClick:n}=this.props;n(t,e)}}render(){const{displayData:e,columns:t,viewOptions:n,index:r,isSelected:o,isRightClicked:a,highlightRegExp:i,rowHeightStyle:s}=this.props,l=n.fixedColumnWidths;return X.createElement("div",{className:Xg()("treeViewRow","treeViewRowFixedColumns",{even:r%2==0,odd:r%2!=0,isSelected:o,isRightClicked:a}),style:s,onMouseDown:this._onClick},t.map(((t,n)=>{const r=t.component,o=e[t.propName]||"";return X.createElement(X.Fragment,{key:t.propName},X.createElement("span",{className:`treeViewRowColumn treeViewFixedColumn ${t.propName}`,title:o,style:{width:l[n]}},r?X.createElement(r,{displayData:e}):GA(o,i,"treeViewHighlighting")),!0!==t.hideDividerAfter?X.createElement("span",{className:"treeViewColumnDivider"}):null)})))}}class HA extends X.PureComponent{constructor(...e){super(...e),this._onMouseDown=e=>{const{nodeId:t,onClick:n}=this.props;e.target.classList.contains("treeRowToggleButton")||n(t,e)},this._onToggleClick=e=>{const{nodeId:t,isExpanded:n,onToggle:r}=this.props;r(t,!n,!0===e.altKey)}}render(){const{displayData:e,depth:t,mainColumn:n,appendageColumn:r,index:o,canBeExpanded:a,isExpanded:i,isSelected:s,isRightClicked:l,highlightRegExp:c,rowHeightStyle:d,indentWidth:u,nodeId:h}=this.props,p=n.component;let m=null;a&&(m=!1),i&&(m=!0);let f=e.selfTimeUnit;return"—"===f&&(f="0ms"),X.createElement("div",{className:Xg()("treeViewRow","treeViewRowScrolledColumns",{even:o%2==0,odd:o%2!=0,isSelected:s,isRightClicked:l}),style:d,onMouseDown:this._onMouseDown,"aria-expanded":m,"aria-level":t+1,"aria-selected":s,"aria-label":e.ariaLabel,role:"treeitem",id:`treeViewRow-${h}`},X.createElement("span",{className:"treeRowIndentSpacer",style:{width:t*u+"px"}}),X.createElement("span",{className:`treeRowToggleButton ${i?"expanded":"collapsed"} ${a?"canBeExpanded":"leaf"}`,onClick:this._onToggleClick}),e.categoryColor&&e.categoryName?X.createElement("span",{className:`colored-square category-color-${e.categoryColor}`,title:e.categoryName}):null,X.createElement("span",{className:Xg()("treeViewRowColumn","treeViewMainColumn",n.propName,{dim:e.isFrameLabel})},e.badge?X.createElement(ue,{id:e.badge.localizationId,vars:e.badge.vars,attrs:{title:!0}},X.createElement("span",{className:`treeBadge ${e.badge.name}`,title:e.badge.titleFallback},e.badge.contentFallback)):null,p?X.createElement(p,{displayData:e}):GA(e[n.propName],c,"treeViewHighlighting")),r?X.createElement("span",{className:`treeViewRowColumn treeViewAppendageColumn ${r.propName}`},GA(e[r.propName],c,"treeViewHighlighting")):null)}}class VA extends X.PureComponent{constructor(...e){super(...e),this._list=null,this._takeListRef=e=>this._list=e,this._currentMovedColumnState=null,this.state={fixedColumnWidths:null,isResizingColumns:!1},this._columnSizeChangedCounter=0,this._computeSpecialItemsMemoized=_t()(((e,t)=>[e??void 0,t??void 0]),{limit:1}),this._computeExpandedNodesMemoized=_t()((e=>new Set(e)),{limit:1}),this._computeInitialColumnWidthsMemoized=_t()((e=>e.map((e=>e.initialWidth)))),this._getCurrentFixedColumnWidths=()=>this.state.fixedColumnWidths||this.props.viewOptions.fixedColumnWidths||this._computeInitialColumnWidthsMemoized(this.props.fixedColumns),this._getCurrentViewOptions=()=>({fixedColumnWidths:this._getCurrentFixedColumnWidths()}),this._onColumnWidthChangeStart=(e,t)=>{this._currentMovedColumnState={columnIndex:e,startX:t,initialWidth:this._getCurrentFixedColumnWidths()[e]},this.setState({isResizingColumns:!0}),window.addEventListener("mousemove",this._onColumnWidthChangeMouseMove),window.addEventListener("mouseup",this._onColumnWidthChangeMouseUp)},this._cleanUpMouseHandlers=()=>{window.removeEventListener("mousemove",this._onColumnWidthChangeMouseMove),window.removeEventListener("mouseup",this._onColumnWidthChangeMouseUp)},this._onColumnWidthChangeMouseMove=e=>{const t=this._currentMovedColumnState;if(null!==t){const{columnIndex:n,startX:r,initialWidth:o}=t,a=this.props.fixedColumns[n],i=this._getCurrentFixedColumnWidths(),s=e.clientX-r,l=Math.max(o+s,a.minWidth||10);this.setState((e=>{this._columnSizeChangedCounter++;const t=(e.fixedColumnWidths||i).slice();return t[n]=l,{fixedColumnWidths:t}}))}},this._onColumnWidthChangeMouseUp=()=>{this.setState({isResizingColumns:!1}),this._cleanUpMouseHandlers(),this._currentMovedColumnState=null,this._propagateColumnWidthChange(this._getCurrentFixedColumnWidths())},this.componentWillUnmount=()=>{this._cleanUpMouseHandlers()},this._onColumnWidthReset=e=>{const t=this.props.fixedColumns[e],n=this._getCurrentFixedColumnWidths().slice();n[e]=t.initialWidth||10,this._columnSizeChangedCounter++,this.setState({fixedColumnWidths:n}),this._propagateColumnWidthChange(n)},this._propagateColumnWidthChange=e=>{const{onViewOptionsChange:t,viewOptions:n}=this.props;t&&t({...n,fixedColumnWidths:e})},this._computeAllVisibleRowsMemoized=_t()(((e,t)=>{function n(e,t,r,o){if(r.push(o),!t.has(o))return;const a=e.getChildren(o);for(let o=0;o<a.length;o++)n(e,t,r,a[o])}const r=e.getRoots(),o=[];for(let a=0;a<r.length;a++)n(e,t,o,r[a]);return o}),{limit:1}),this._renderRow=(e,t,n)=>{const{tree:r,fixedColumns:o,mainColumn:a,appendageColumn:i,selectedNodeId:s,rightClickedNodeId:l,highlightRegExp:c,rowHeight:d,indentWidth:u}=this.props,h=r.getDisplayData(e),p={height:d,lineHeight:`${d}px`};if(0===n)return X.createElement(WA,{displayData:h,columns:o,viewOptions:this._getCurrentViewOptions(),nodeId:e,index:t,isSelected:e===s,isRightClicked:e===l,onClick:this._onRowClicked,highlightRegExp:c||null,rowHeightStyle:p});const m=r.hasChildren(e),f=m&&!this._isCollapsed(e);return X.createElement(HA,{rowHeightStyle:p,displayData:h,mainColumn:a,appendageColumn:i,depth:r.getDepth(e),nodeId:e,index:t,canBeExpanded:m,isExpanded:f,isSelected:e===s,isRightClicked:e===l,onToggle:this._toggle,onClick:this._onRowClicked,highlightRegExp:c||null,indentWidth:u})},this._toggle=(e,t=this._isCollapsed(e),n=!1)=>{const r=new Set(this._getExpandedNodes());if(t){if(r.add(e),n)for(const t of this.props.tree.getAllDescendants(e))r.add(t)}else r.delete(e);this.props.onExpandedNodesChange(Array.from(r.values()))},this._onRowClicked=(e,t)=>{0===t.button?this._selectWithMouse(e):2===t.button&&this._rightClickSelect(e),2===t.detail&&0===t.button&&(this.props.onDoubleClick?this.props.onDoubleClick(e):this._toggle(e))},this._onCopy=e=>{e.preventDefault();const{tree:t,selectedNodeId:n,mainColumn:r}=this.props;if(n){const o=t.getDisplayData(n);e.clipboardData.setData("text/plain",o[r.propName])}},this._onKeyDown=e=>{this.props.onKeyDown&&this.props.onKeyDown(e);const t=e.ctrlKey||e.altKey,n=e.key.startsWith("Arrow")||e.key.startsWith("Page")||"Home"===e.key||"End"===e.key,r="*"===e.key,o="Enter"===e.key;if(t||!n&&!r&&!o)return;e.stopPropagation(),e.preventDefault();const a=this.props.selectedNodeId,i=this._getAllVisibleRows(),s=i.findIndex((e=>e===a));if(null===a||-1===s)return void this._selectWithKeyboard(i[0]);if(n)switch(e.key){case"ArrowUp":if(e.metaKey){this._selectWithKeyboard(i[0]);break}s>0&&this._selectWithKeyboard(i[s-1]);break;case"ArrowDown":if(e.metaKey){this._selectWithKeyboard(i[i.length-1]);break}s<i.length-1&&this._selectWithKeyboard(i[s+1]);break;case"PageUp":if(s>0){const e=Math.max(0,s-15);this._selectWithKeyboard(i[e])}break;case"PageDown":if(s<i.length-1){const e=Math.min(i.length-1,s+15);this._selectWithKeyboard(i[e])}break;case"Home":this._selectWithKeyboard(i[0]);break;case"End":this._selectWithKeyboard(i[i.length-1]);break;case"ArrowLeft":if(this._isCollapsed(a)){const e=this.props.tree.getParent(a);-1!==e&&this._selectWithKeyboard(e)}else this._toggle(a);break;case"ArrowRight":this._isCollapsed(a)?this._toggle(a):this.props.tree.hasChildren(a)&&this._selectWithKeyboard(this.props.tree.getChildren(a)[0]);break;default:throw new Error("Unhandled navigation key.")}const{rightClickedNodeId:l}=this.props,c=l??a;if(r&&this._toggleAll(c),o){const{onEnterKey:e}=this.props;e&&null!==c&&e(c)}}}scrollSelectionIntoView(){const{selectedNodeId:e,tree:t}=this.props,n=this._list;if(n)if(null===e)n.scrollItemIntoView(0,0);else{const r=this._getAllVisibleRows().indexOf(e),o=t.getDepth(e),a=this._getCurrentFixedColumnWidths().reduce(((e,t)=>e+t),0);n.scrollItemIntoView(r,10*o,a)}}_getExpandedNodes(){return this._computeExpandedNodesMemoized(this.props.expandedNodeIds)}_getAllVisibleRows(){const{tree:e}=this.props;return this._computeAllVisibleRowsMemoized(e,this._getExpandedNodes())}_getSpecialItems(){const{selectedNodeId:e,rightClickedNodeId:t}=this.props;return this._computeSpecialItemsMemoized(e,t)}_isCollapsed(e){return!this._getExpandedNodes().has(e)}_toggleAll(e,t=this._isCollapsed(e)){this._toggle(e,t,!0)}_selectWithMouse(e){this.props.onSelectionChange(e,{source:"pointer"})}_rightClickSelect(e){this.props.onRightClickSelection?this.props.onRightClickSelection(e):this._selectWithMouse(e)}_selectWithKeyboard(e){this.props.onSelectionChange(e,{source:"keyboard"})}focus(){this._list&&this._list.focus()}render(){const{fixedColumns:e,mainColumn:t,disableOverscan:n,contextMenu:r,contextMenuId:o,maxNodeDepth:a,rowHeight:i,selectedNodeId:s}=this.props,{isResizingColumns:l}=this.state;return X.createElement("div",{className:Xg()("treeView",{isResizingColumns:l})},X.createElement(zA,{fixedColumns:e,mainColumn:t,viewOptions:this._getCurrentViewOptions(),onColumnWidthChangeStart:this._onColumnWidthChangeStart,onColumnWidthReset:this._onColumnWidthReset}),X.createElement(DA,{id:o??"unknown",disable:!o,attributes:{className:"treeViewContextMenu"}},X.createElement(cA,{className:"treeViewBody",ariaRole:"tree",ariaLabel:"Call tree",ariaActiveDescendant:null!==s?`treeViewRow-${s}`:null,items:this._getAllVisibleRows(),renderItem:this._renderRow,itemHeight:i,columnCount:2,focusable:!0,onKeyDown:this._onKeyDown,specialItems:this._getSpecialItems(),disableOverscan:!!n||l,onCopy:this._onCopy,containerWidth:Math.max(3e3,10*a+2e3),ref:this._takeListRef,forceRender:this._columnSizeChangedCounter})),r)}}var jA=n(9549),ZA={};ZA.styleTagTransform=M(),ZA.setAttributes=B(),ZA.insert=S().bind(null,"head"),ZA.domAPI=E(),ZA.insertStyleElement=P(),w()(jA.Z,ZA),jA.Z&&jA.Z.locals&&jA.Z.locals;class $A extends X.PureComponent{render(){const{viewName:e,reason:t,threadName:n}=this.props;return X.createElement("div",{className:"EmptyReasons"},X.createElement("h3",null,"The ",e," is empty for “",n,"”"),X.createElement("p",null,t))}}class KA extends X.PureComponent{render(){const{thread:e,rangeFilteredThread:t,threadName:n}=this.props;let r;return r=0===e.samples.length?"This thread has no samples.":0===t.samples.length?"Broaden the selected range to view samples.":En`
|
122
|
+
Try broadening the selected range, removing search terms, or call tree transforms
|
123
|
+
to view samples.
|
124
|
+
`,X.createElement($A,{threadName:n,reason:r,viewName:"call tree"})}}const YA=je({mapStateToProps:e=>({threadName:Tu.getFriendlyThreadName(e),thread:Tu.getThread(e),rangeFilteredThread:Tu.getRangeFilteredThread(e)}),component:KA});function qA(e){return{type:"ICON_HAS_LOADED",icon:e}}function JA(e){return{type:"ICON_IN_ERROR",icon:e}}const XA=new Set;function QA(e){return t=>function(e){return XA.has(e)?Promise.resolve("cached"):(XA.add(e),new Promise((t=>{const n=new Image;n.src=e,n.referrerPolicy="no-referrer",n.onload=()=>{t("loaded")},n.onerror=()=>{t("error")}})))}(e).then((n=>{switch(n){case"loaded":t(qA(e));break;case"error":t(JA(e));break;case"cached":break;default:throw new Error(`Unknown icon load result ${n}`)}}))}var eb=n(8315),tb={};tb.styleTagTransform=M(),tb.setAttributes=B(),tb.insert=S().bind(null,"head"),tb.domAPI=E(),tb.insertStyleElement=P(),w()(eb.Z,tb),eb.Z&&eb.Z.locals&&eb.Z.locals;class nb extends X.PureComponent{constructor(e){super(e),e.icon&&e.iconStartLoading(e.icon)}componentDidUpdate(){this.props.icon&&this.props.iconStartLoading(this.props.icon)}render(){return X.createElement("div",{className:`nodeIcon ${this.props.className}`})}}const rb=je({mapStateToProps:(e,t)=>{const n=t.displayData?t.displayData.iconSrc:t.iconUrl;return{className:Iu(e,n),icon:n}},mapDispatchToProps:{iconStartLoading:QA},component:nb});var ob=n(4607),ab={};ab.styleTagTransform=M(),ab.setAttributes=B(),ab.insert=S().bind(null,"head"),ab.domAPI=E(),ab.insertStyleElement=P(),w()(ob.Z,ab),ob.Z&&ob.Z.locals&&ob.Z.locals;class ib extends X.PureComponent{constructor(...e){super(...e),this._mainColumn={propName:"name",titleL10nId:""},this._appendageColumn={propName:"lib",titleL10nId:""},this._treeView=null,this._takeTreeViewRef=e=>this._treeView=e,this._weightTypeToColumns=_t()((e=>{switch(e){case"tracing-ms":return[{propName:"totalPercent",titleL10nId:"",initialWidth:50,hideDividerAfter:!0},{propName:"total",titleL10nId:"CallTree--tracing-ms-total",minWidth:30,initialWidth:70,resizable:!0,headerWidthAdjustment:50},{propName:"self",titleL10nId:"CallTree--tracing-ms-self",minWidth:30,initialWidth:70,resizable:!0},{propName:"icon",titleL10nId:"",component:rb,initialWidth:10}];case"samples":return[{propName:"totalPercent",titleL10nId:"",initialWidth:50,hideDividerAfter:!0},{propName:"total",titleL10nId:"CallTree--samples-total",minWidth:30,initialWidth:70,resizable:!0,headerWidthAdjustment:50},{propName:"self",titleL10nId:"CallTree--samples-self",minWidth:30,initialWidth:70,resizable:!0},{propName:"icon",titleL10nId:"",component:rb,initialWidth:10}];case"bytes":return[{propName:"totalPercent",titleL10nId:"",initialWidth:50,hideDividerAfter:!0},{propName:"total",titleL10nId:"CallTree--bytes-total",minWidth:30,initialWidth:140,resizable:!0,headerWidthAdjustment:50},{propName:"self",titleL10nId:"CallTree--bytes-self",minWidth:30,initialWidth:90,resizable:!0},{propName:"icon",titleL10nId:"",component:rb,initialWidth:10}];default:throw Je(e,"Unhandled WeightType.")}}),{cache:new Map}),this._onSelectedCallNodeChange=(e,t)=>{const{callNodeInfo:n,threadsKey:r,changeSelectedCallNode:o}=this.props;o(r,xr(e,n.callNodeTable),t)},this._onRightClickSelection=e=>{const{callNodeInfo:t,threadsKey:n,changeRightClickedCallNode:r}=this.props;r(n,xr(e,t.callNodeTable))},this._onExpandedCallNodesChange=e=>{const{callNodeInfo:t,threadsKey:n,changeExpandedCallNodes:r}=this.props;r(n,e.map((e=>xr(e,t.callNodeTable))))},this._onKeyDown=e=>{const{selectedCallNodeIndex:t,rightClickedCallNodeIndex:n,handleCallNodeTransformShortcut:r,threadsKey:o}=this.props,a=null!==n?n:t;null!==a&&r(e,o,a)},this._onEnterOrDoubleClick=e=>{const{tree:t,updateBottomBoxContentsAndMaybeOpen:n}=this.props;n("calltree",t.getBottomBoxInfoForCallNode(e))}}componentDidMount(){this.focus(),this.maybeProcureInterestingInitialSelection(),null!==this.props.selectedCallNodeIndex&&this._treeView&&this._treeView.scrollSelectionIntoView()}componentDidUpdate(e){this.props.focusCallTreeGeneration>e.focusCallTreeGeneration&&this.focus(),this.maybeProcureInterestingInitialSelection(),null!==this.props.selectedCallNodeIndex&&this.props.scrollToSelectionGeneration>e.scrollToSelectionGeneration&&this._treeView&&this._treeView.scrollSelectionIntoView()}focus(){this._treeView&&this._treeView.focus()}maybeProcureInterestingInitialSelection(){const{tree:e,expandedCallNodeIndexes:t,selectedCallNodeIndex:n,callNodeInfo:{callNodeTable:r},categories:o}=this.props;if(null!==n||t.length>0)return;const a=o.findIndex((e=>"Idle"===e.name)),i=t.slice();let s=e.getRoots()[0];if(void 0!==s){i.push(s);for(let t=0;t<17;t++){const t=e.getChildren(s);if(0===t.length)break;const n=t.find((e=>r.category[e]!==a));s=void 0!==n?n:t[0],i.push(s)}this._onExpandedCallNodesChange(i),r.category[s]!==a&&this._onSelectedCallNodeChange(s,{source:"auto"})}}render(){const{tree:e,selectedCallNodeIndex:t,rightClickedCallNodeIndex:n,expandedCallNodeIndexes:r,searchStringsRegExp:o,disableOverscan:a,callNodeMaxDepth:i,weightType:s,tableViewOptions:l,onTableViewOptionsChange:c}=this.props;return 0===e.getRoots().length?X.createElement(YA,null):X.createElement(VA,{tree:e,fixedColumns:this._weightTypeToColumns(s),mainColumn:this._mainColumn,appendageColumn:this._appendageColumn,onSelectionChange:this._onSelectedCallNodeChange,onRightClickSelection:this._onRightClickSelection,onExpandedNodesChange:this._onExpandedCallNodesChange,selectedNodeId:t,rightClickedNodeId:n,expandedNodeIds:r,highlightRegExp:o,disableOverscan:a,ref:this._takeTreeViewRef,contextMenuId:"CallNodeContextMenu",maxNodeDepth:i,rowHeight:16,indentWidth:10,onKeyDown:this._onKeyDown,onEnterKey:this._onEnterOrDoubleClick,onDoubleClick:this._onEnterOrDoubleClick,viewOptions:l,onViewOptionsChange:c})}}const sb=je({mapStateToProps:e=>({threadsKey:mi(e),scrollToSelectionGeneration:Ts(e),focusCallTreeGeneration:Bs(e),tree:Tu.getCallTree(e),callNodeInfo:Tu.getCallNodeInfo(e),categories:Qs(e),selectedCallNodeIndex:Tu.getSelectedCallNodeIndex(e),rightClickedCallNodeIndex:Tu.getRightClickedCallNodeIndex(e),expandedCallNodeIndexes:Tu.getExpandedCallNodeIndexes(e),searchStringsRegExp:Bi(e),disableOverscan:Ms(e).isModifying,invertCallstack:Xa(e),implementationFilter:qa(e),callNodeMaxDepth:Tu.getFilteredCallNodeMaxDepth(e),weightType:Tu.getWeightTypeForCallTree(e),tableViewOptions:Es(e)}),mapDispatchToProps:{changeSelectedCallNode:qh,changeRightClickedCallNode:Jh,changeExpandedCallNodes:_p,addTransformToStack:Vp,handleCallNodeTransformShortcut:nm,updateBottomBoxContentsAndMaybeOpen:Xp,onTableViewOptionsChange:e=>Jp("calltree",e)},component:ib});var lb=n(5429),cb={};cb.styleTagTransform=M(),cb.setAttributes=B(),cb.insert=S().bind(null,"head"),cb.domAPI=E(),cb.insertStyleElement=P(),w()(lb.Z,cb),lb.Z&&lb.Z.locals&&lb.Z.locals;class db extends X.PureComponent{constructor(e){super(e),this._timeout=null,this._previouslyNotifiedValue=void 0,this._input=null,this._takeInputRef=e=>this._input=e,this._onSearchFieldFocus=e=>{e.currentTarget.select(),this.props.onFocus&&this.props.onFocus()},this._onSearchFieldBlur=e=>{this.props.onBlur&&this.props.onBlur(e.relatedTarget)},this._onSearchFieldChange=e=>{this.setState({value:e.currentTarget.value}),this._timeout&&clearTimeout(this._timeout),this._timeout=setTimeout(this._onTimeout,this.props.idlePeriod)},this._onTimeout=()=>{this._timeout=null,this._notifyIfChanged(this.state.value)},this._onClearButtonClick=()=>{this._input&&this._input.focus(),null!==this._timeout&&(clearTimeout(this._timeout),this._timeout=null),this.setState({value:""}),this._notifyIfChanged("")},this.state={value:e.defaultValue||"",previousDefaultValue:e.defaultValue||""},this._previouslyNotifiedValue=this.state.value}_notifyIfChanged(e){e!==this._previouslyNotifiedValue&&(this._previouslyNotifiedValue=e,this.props.onIdleAfterChange(e))}_onFormSubmit(e){e.preventDefault()}static getDerivedStateFromProps(e,t){return e.defaultValue!==t.previousDefaultValue?{previousDefaultValue:e.defaultValue||"",value:e.defaultValue||""}:null}render(){const{className:e,title:t}=this.props;return X.createElement("form",{className:Xg()("idleSearchField",e),onSubmit:this._onFormSubmit},X.createElement(ue,{id:"IdleSearchField--search-input",attrs:{placeholder:!0}},X.createElement("input",{type:"search",name:"search",placeholder:"Enter filter terms",className:"idleSearchFieldInput photon-input",required:"required",title:t,value:this.state.value,onChange:this._onSearchFieldChange,onFocus:this._onSearchFieldFocus,onBlur:this._onSearchFieldBlur,ref:this._takeInputRef})),X.createElement("input",{type:"reset",className:"idleSearchFieldButton",onClick:this._onClearButtonClick,tabIndex:-1}))}}var ub=n(2924),hb={};hb.styleTagTransform=M(),hb.setAttributes=B(),hb.insert=S().bind(null,"head"),hb.domAPI=E(),hb.insertStyleElement=P(),w()(ub.Z,hb),ub.Z&&ub.Z.locals&&ub.Z.locals;class pb extends X.PureComponent{constructor(...e){super(...e),this.state={searchFieldFocused:!1},this._onSearchFieldIdleAfterChange=e=>{this.props.onSearch(e)},this._onSearchFieldFocus=()=>{this.setState({searchFieldFocused:!0})},this._onSearchFieldBlur=()=>{this.setState((()=>({searchFieldFocused:!1})))}}render(){const{label:e,title:t,currentSearchString:n,className:r}=this.props,{searchFieldFocused:o}=this.state,a=o&&n&&!n.includes(",");return X.createElement("div",{className:Xg()("panelSearchField",r)},X.createElement("label",{className:"panelSearchFieldLabel"},e+" ",X.createElement(db,{className:"panelSearchFieldInput",title:t,idlePeriod:200,defaultValue:n,onIdleAfterChange:this._onSearchFieldIdleAfterChange,onBlur:this._onSearchFieldBlur,onFocus:this._onSearchFieldFocus})),X.createElement("div",{className:Xg()("panelSearchFieldIntroduction",{isHidden:!a,isDisplayed:a})},X.createElement(ue,{id:"PanelSearch--search-field-hint"},"Did you know you can use the comma (,) to search using several terms?")))}}var mb=n(8124),fb={};fb.styleTagTransform=M(),fb.setAttributes=B(),fb.insert=S().bind(null,"head"),fb.domAPI=E(),fb.insertStyleElement=P(),w()(mb.Z,fb),mb.Z&&mb.Z.locals&&mb.Z.locals;var gb=n(4562),Ab={};Ab.styleTagTransform=M(),Ab.setAttributes=B(),Ab.insert=S().bind(null,"head"),Ab.domAPI=E(),Ab.insertStyleElement=P(),w()(gb.Z,Ab),gb.Z&&gb.Z.locals&&gb.Z.locals;class bb extends X.PureComponent{constructor(...e){super(...e),this._onImplementationFilterChange=e=>{this.props.changeImplementationFilter(ur(e.currentTarget.value))}}_renderImplementationRadioButton(e,t){const n=`implementation-radio-${t}`;return X.createElement(X.Fragment,null,X.createElement(ue,{id:e,attrs:{title:!0}},X.createElement("input",{type:"radio",className:"photon-radio photon-radio-micro",value:t,id:n,onChange:this._onImplementationFilterChange,checked:this.props.implementationFilter===t})),X.createElement(ue,{id:e,attrs:{title:!0}},X.createElement("label",{className:"photon-label photon-label-micro photon-label-horiz-padding",htmlFor:n})))}render(){const{labelL10nId:e}=this.props;return X.createElement(X.Fragment,null,e?X.createElement("span",{className:"stackImplementationSettingLabel"},X.createElement(ue,{id:e})):null,this._renderImplementationRadioButton("StackSettings--implementation-all-frames","combined"),this._renderImplementationRadioButton("StackSettings--implementation-javascript2","js"),this._renderImplementationRadioButton("StackSettings--implementation-native2","cpp"))}}const Cb=je({mapStateToProps:e=>({implementationFilter:qa(e)}),mapDispatchToProps:{changeImplementationFilter:Dp},component:bb});class yb extends X.PureComponent{constructor(...e){super(...e),this._onCallTreeSummaryStrategyChange=e=>{this.props.changeCallTreeSummaryStrategy(hr(e.currentTarget.value))}}_renderCallTreeStrategyOption(e,t){return X.createElement(ue,{id:e,attrs:{title:!0}},X.createElement("option",{key:t,value:t}))}render(){const{hasUsefulTimingSamples:e,hasUsefulJsAllocations:t,hasUsefulNativeAllocations:n,canShowRetainedMemory:r,callTreeSummaryStrategy:o}=this.props;return X.createElement(X.Fragment,null,X.createElement("label",null,X.createElement(ue,{id:"StackSettings--use-data-source-label"})," ",X.createElement("select",{className:"stackSettingsSelect",onChange:this._onCallTreeSummaryStrategyChange,value:o},e?this._renderCallTreeStrategyOption("StackSettings--call-tree-strategy-timing","timing"):null,t?this._renderCallTreeStrategyOption("StackSettings--call-tree-strategy-js-allocations","js-allocations"):null,r?this._renderCallTreeStrategyOption("StackSettings--call-tree-strategy-native-retained-allocations","native-retained-allocations"):null,n?this._renderCallTreeStrategyOption("StackSettings--call-tree-native-allocations","native-allocations"):null,r?this._renderCallTreeStrategyOption("StackSettings--call-tree-strategy-native-deallocations-memory","native-deallocations-memory"):null,n?this._renderCallTreeStrategyOption("StackSettings--call-tree-strategy-native-deallocations-sites","native-deallocations-sites"):null)))}}const vb=je({mapStateToProps:e=>({hasUsefulTimingSamples:Tu.getHasUsefulTimingSamples(e),hasUsefulJsAllocations:Tu.getHasUsefulJsAllocations(e),hasUsefulNativeAllocations:Tu.getHasUsefulNativeAllocations(e),canShowRetainedMemory:Tu.getCanShowRetainedMemory(e),callTreeSummaryStrategy:Tu.getCallTreeSummaryStrategy(e)}),mapDispatchToProps:{changeCallTreeSummaryStrategy:Lp},component:yb});var wb=n(8812),kb={};kb.styleTagTransform=M(),kb.setAttributes=B(),kb.insert=S().bind(null,"head"),kb.domAPI=E(),kb.insertStyleElement=P(),w()(wb.Z,kb),wb.Z&&wb.Z.locals&&wb.Z.locals;class Eb extends X.PureComponent{constructor(...e){super(...e),this._onInvertCallstackClick=e=>{this.props.changeInvertCallstack(e.currentTarget.checked)},this._onShowUserTimingsClick=e=>{this.props.changeShowUserTimings(e.currentTarget.checked)},this._onSearch=e=>{this.props.changeCallTreeSearchString(e)}}render(){const{allowSwitchingStackType:e,invertCallstack:t,selectedTab:n,showUserTimings:r,hideInvertCallstack:o,currentSearchString:a,hasUsefulJsAllocations:i,hasUsefulNativeAllocations:s}=this.props,l=i||s;return X.createElement("div",{className:"stackSettings"},X.createElement("ul",{className:"panelSettingsList"},e?X.createElement("li",{className:"panelSettingsListItem"},X.createElement(Cb,null)):null,l?X.createElement("li",{className:"panelSettingsListItem"},X.createElement(vb,null)):null,o&&"stack-chart"!==n?null:X.createElement("li",{className:"panelSettingsListItem"},o?null:X.createElement("label",{className:"photon-label photon-label-micro photon-label-horiz-padding"},X.createElement("input",{type:"checkbox",className:"photon-checkbox photon-checkbox-micro stackSettingsCheckbox",onChange:this._onInvertCallstackClick,checked:t}),X.createElement(ue,{id:"StackSettings--invert-call-stack",attrs:{title:!0}},X.createElement("span",null,"Invert call stack"))),"stack-chart"!==n?null:X.createElement("label",{className:"photon-label photon-label-micro photon-label-horiz-padding"},X.createElement("input",{type:"checkbox",className:"photon-checkbox photon-checkbox-micro stackSettingsCheckbox",onChange:this._onShowUserTimingsClick,checked:r}),X.createElement(ue,{id:"StackSettings--show-user-timing"},"Show user timing")))),X.createElement(ue,{id:"StackSettings--panel-search",attrs:{label:!0,title:!0}},X.createElement(pb,{className:"stackSettingsSearchField",label:"Filter stacks:",title:"Only display stacks which contain a function whose name matches this substring",currentSearchString:a,onSearch:this._onSearch})))}}const xb=je({mapStateToProps:e=>({allowSwitchingStackType:Hl(e),invertCallstack:Xa(e),selectedTab:ui(e),showUserTimings:Qa(e),currentSearchString:li(e),hasUsefulJsAllocations:Tu.getHasUsefulJsAllocations(e),hasUsefulNativeAllocations:Tu.getHasUsefulNativeAllocations(e)}),mapDispatchToProps:{changeInvertCallstack:Op,changeCallTreeSearchString:Tp,changeShowUserTimings:Up},component:Eb});function Sb(e,t){return Sb=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},Sb(e,t)}function Tb(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,Sb(e,t)}const Bb=X.createContext(null);function _b(e,t){var n=Object.create(null);return e&&X.Children.map(e,(function(e){return e})).forEach((function(e){n[e.key]=function(e){return t&&(0,X.isValidElement)(e)?t(e):e}(e)})),n}function Ib(e,t,n){return null!=n[t]?n[t]:e.props[t]}function Pb(e,t,n){var r=_b(e.children),o=function(e,t){function n(n){return n in t?t[n]:e[n]}e=e||{},t=t||{};var r,o=Object.create(null),a=[];for(var i in e)i in t?a.length&&(o[i]=a,a=[]):a.push(i);var s={};for(var l in t){if(o[l])for(r=0;r<o[l].length;r++){var c=o[l][r];s[o[l][r]]=n(c)}s[l]=n(l)}for(r=0;r<a.length;r++)s[a[r]]=n(a[r]);return s}(t,r);return Object.keys(o).forEach((function(a){var i=o[a];if((0,X.isValidElement)(i)){var s=a in t,l=a in r,c=t[a],d=(0,X.isValidElement)(c)&&!c.props.in;!l||s&&!d?l||!s||d?l&&s&&(0,X.isValidElement)(c)&&(o[a]=(0,X.cloneElement)(i,{onExited:n.bind(null,i),in:c.props.in,exit:Ib(i,"exit",e),enter:Ib(i,"enter",e)})):o[a]=(0,X.cloneElement)(i,{in:!1}):o[a]=(0,X.cloneElement)(i,{onExited:n.bind(null,i),in:!0,exit:Ib(i,"exit",e),enter:Ib(i,"enter",e)})}})),o}var Nb=Object.values||function(e){return Object.keys(e).map((function(t){return e[t]}))},Mb=function(e){function t(t,n){var r,o=(r=e.call(this,t,n)||this).handleExited.bind(function(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}(r));return r.state={contextValue:{isMounting:!0},handleExited:o,firstRender:!0},r}Tb(t,e);var n=t.prototype;return n.componentDidMount=function(){this.mounted=!0,this.setState({contextValue:{isMounting:!1}})},n.componentWillUnmount=function(){this.mounted=!1},t.getDerivedStateFromProps=function(e,t){var n,r,o=t.children,a=t.handleExited;return{children:t.firstRender?(n=e,r=a,_b(n.children,(function(e){return(0,X.cloneElement)(e,{onExited:r.bind(null,e),in:!0,appear:Ib(e,"appear",n),enter:Ib(e,"enter",n),exit:Ib(e,"exit",n)})}))):Pb(e,o,a),firstRender:!1}},n.handleExited=function(e,t){var n=_b(this.props.children);e.key in n||(e.props.onExited&&e.props.onExited(t),this.mounted&&this.setState((function(t){var n=ve({},t.children);return delete n[e.key],{children:n}})))},n.render=function(){var e=this.props,t=e.component,n=e.childFactory,r=we(e,["component","childFactory"]),o=this.state.contextValue,a=Nb(this.state.children).map(n);return delete r.appear,delete r.enter,delete r.exit,null===t?X.createElement(Bb.Provider,{value:o},a):X.createElement(Bb.Provider,{value:o},X.createElement(t,r,a))},t}(X.Component);Mb.propTypes={},Mb.defaultProps={component:"div",childFactory:function(e){return e}};const Fb=Mb;function Rb(e,t){return e.replace(new RegExp("(^|\\s)"+t+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,"")}var Db=function(e){return e.scrollTop},Lb="unmounted",Ob="exited",Ub="entering",zb="entered",Gb="exiting",Wb=function(e){function t(t,n){var r;r=e.call(this,t,n)||this;var o,a=n&&!n.isMounting?t.enter:t.appear;return r.appearStatus=null,t.in?a?(o=Ob,r.appearStatus=Ub):o=zb:o=t.unmountOnExit||t.mountOnEnter?Lb:Ob,r.state={status:o},r.nextCallback=null,r}Tb(t,e),t.getDerivedStateFromProps=function(e,t){return e.in&&t.status===Lb?{status:Ob}:null};var n=t.prototype;return n.componentDidMount=function(){this.updateStatus(!0,this.appearStatus)},n.componentDidUpdate=function(e){var t=null;if(e!==this.props){var n=this.state.status;this.props.in?n!==Ub&&n!==zb&&(t=Ub):n!==Ub&&n!==zb||(t=Gb)}this.updateStatus(!1,t)},n.componentWillUnmount=function(){this.cancelNextCallback()},n.getTimeouts=function(){var e,t,n,r=this.props.timeout;return e=t=n=r,null!=r&&"number"!=typeof r&&(e=r.exit,t=r.enter,n=void 0!==r.appear?r.appear:t),{exit:e,enter:t,appear:n}},n.updateStatus=function(e,t){if(void 0===e&&(e=!1),null!==t)if(this.cancelNextCallback(),t===Ub){if(this.props.unmountOnExit||this.props.mountOnEnter){var n=this.props.nodeRef?this.props.nodeRef.current:Q.findDOMNode(this);n&&Db(n)}this.performEnter(e)}else this.performExit();else this.props.unmountOnExit&&this.state.status===Ob&&this.setState({status:Lb})},n.performEnter=function(e){var t=this,n=this.props.enter,r=this.context?this.context.isMounting:e,o=this.props.nodeRef?[r]:[Q.findDOMNode(this),r],a=o[0],i=o[1],s=this.getTimeouts(),l=r?s.appear:s.enter;e||n?(this.props.onEnter(a,i),this.safeSetState({status:Ub},(function(){t.props.onEntering(a,i),t.onTransitionEnd(l,(function(){t.safeSetState({status:zb},(function(){t.props.onEntered(a,i)}))}))}))):this.safeSetState({status:zb},(function(){t.props.onEntered(a)}))},n.performExit=function(){var e=this,t=this.props.exit,n=this.getTimeouts(),r=this.props.nodeRef?void 0:Q.findDOMNode(this);t?(this.props.onExit(r),this.safeSetState({status:Gb},(function(){e.props.onExiting(r),e.onTransitionEnd(n.exit,(function(){e.safeSetState({status:Ob},(function(){e.props.onExited(r)}))}))}))):this.safeSetState({status:Ob},(function(){e.props.onExited(r)}))},n.cancelNextCallback=function(){null!==this.nextCallback&&(this.nextCallback.cancel(),this.nextCallback=null)},n.safeSetState=function(e,t){t=this.setNextCallback(t),this.setState(e,t)},n.setNextCallback=function(e){var t=this,n=!0;return this.nextCallback=function(r){n&&(n=!1,t.nextCallback=null,e(r))},this.nextCallback.cancel=function(){n=!1},this.nextCallback},n.onTransitionEnd=function(e,t){this.setNextCallback(t);var n=this.props.nodeRef?this.props.nodeRef.current:Q.findDOMNode(this),r=null==e&&!this.props.addEndListener;if(n&&!r){if(this.props.addEndListener){var o=this.props.nodeRef?[this.nextCallback]:[n,this.nextCallback],a=o[0],i=o[1];this.props.addEndListener(a,i)}null!=e&&setTimeout(this.nextCallback,e)}else setTimeout(this.nextCallback,0)},n.render=function(){var e=this.state.status;if(e===Lb)return null;var t=this.props,n=t.children,r=(t.in,t.mountOnEnter,t.unmountOnExit,t.appear,t.enter,t.exit,t.timeout,t.addEndListener,t.onEnter,t.onEntering,t.onEntered,t.onExit,t.onExiting,t.onExited,t.nodeRef,we(t,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]));return X.createElement(Bb.Provider,{value:null},"function"==typeof n?n(e,r):X.cloneElement(X.Children.only(n),r))},t}(X.Component);function Hb(){}Wb.contextType=Bb,Wb.propTypes={},Wb.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:Hb,onEntering:Hb,onEntered:Hb,onExit:Hb,onExiting:Hb,onExited:Hb},Wb.UNMOUNTED=Lb,Wb.EXITED=Ob,Wb.ENTERING=Ub,Wb.ENTERED=zb,Wb.EXITING=Gb;const Vb=Wb;var jb=function(e,t){return e&&t&&t.split(" ").forEach((function(t){return r=t,void((n=e).classList?n.classList.remove(r):"string"==typeof n.className?n.className=Rb(n.className,r):n.setAttribute("class",Rb(n.className&&n.className.baseVal||"",r)));var n,r}))},Zb=function(e){function t(){for(var t,n=arguments.length,r=new Array(n),o=0;o<n;o++)r[o]=arguments[o];return(t=e.call.apply(e,[this].concat(r))||this).appliedClasses={appear:{},enter:{},exit:{}},t.onEnter=function(e,n){var r=t.resolveArguments(e,n),o=r[0],a=r[1];t.removeClasses(o,"exit"),t.addClass(o,a?"appear":"enter","base"),t.props.onEnter&&t.props.onEnter(e,n)},t.onEntering=function(e,n){var r=t.resolveArguments(e,n),o=r[0],a=r[1]?"appear":"enter";t.addClass(o,a,"active"),t.props.onEntering&&t.props.onEntering(e,n)},t.onEntered=function(e,n){var r=t.resolveArguments(e,n),o=r[0],a=r[1]?"appear":"enter";t.removeClasses(o,a),t.addClass(o,a,"done"),t.props.onEntered&&t.props.onEntered(e,n)},t.onExit=function(e){var n=t.resolveArguments(e)[0];t.removeClasses(n,"appear"),t.removeClasses(n,"enter"),t.addClass(n,"exit","base"),t.props.onExit&&t.props.onExit(e)},t.onExiting=function(e){var n=t.resolveArguments(e)[0];t.addClass(n,"exit","active"),t.props.onExiting&&t.props.onExiting(e)},t.onExited=function(e){var n=t.resolveArguments(e)[0];t.removeClasses(n,"exit"),t.addClass(n,"exit","done"),t.props.onExited&&t.props.onExited(e)},t.resolveArguments=function(e,n){return t.props.nodeRef?[t.props.nodeRef.current,e]:[e,n]},t.getClassNames=function(e){var n=t.props.classNames,r="string"==typeof n,o=r?(r&&n?n+"-":"")+e:n[e];return{baseClassName:o,activeClassName:r?o+"-active":n[e+"Active"],doneClassName:r?o+"-done":n[e+"Done"]}},t}Tb(t,e);var n=t.prototype;return n.addClass=function(e,t,n){var r=this.getClassNames(t)[n+"ClassName"],o=this.getClassNames("enter").doneClassName;"appear"===t&&"done"===n&&o&&(r+=" "+o),"active"===n&&e&&Db(e),r&&(this.appliedClasses[t][n]=r,function(e,t){e&&t&&t.split(" ").forEach((function(t){return r=t,void((n=e).classList?n.classList.add(r):function(e,t){return e.classList?!!t&&e.classList.contains(t):-1!==(" "+(e.className.baseVal||e.className)+" ").indexOf(" "+t+" ")}(n,r)||("string"==typeof n.className?n.className=n.className+" "+r:n.setAttribute("class",(n.className&&n.className.baseVal||"")+" "+r)));var n,r}))}(e,r))},n.removeClasses=function(e,t){var n=this.appliedClasses[t],r=n.base,o=n.active,a=n.done;this.appliedClasses[t]={},r&&jb(e,r),o&&jb(e,o),a&&jb(e,a)},n.render=function(){var e=this.props,t=(e.classNames,we(e,["classNames"]));return X.createElement(Vb,ve({},t,{onEnter:this.onEnter,onEntered:this.onEntered,onEntering:this.onEntering,onExit:this.onExit,onExiting:this.onExiting,onExited:this.onExited}))},t}(X.Component);Zb.defaultProps={classNames:""},Zb.propTypes={};const $b=Zb;var Kb=n(6080),Yb={};Yb.styleTagTransform=M(),Yb.setAttributes=B(),Yb.insert=S().bind(null,"head"),Yb.domAPI=E(),Yb.insertStyleElement=P(),w()(Kb.Z,Yb),Kb.Z&&Kb.Z.locals&&Kb.Z.locals;class qb extends X.PureComponent{constructor(...e){super(...e),this._onClick=()=>{const{index:e,onClick:t}=this.props;t&&t(e)}}render(){const{isFirstItem:e,isLastItem:t,isSelectedItem:n,children:r,additionalClassName:o,onClick:a,title:i}=this.props;return X.createElement("li",{className:Xg()("filterNavigatorBarItem",o,{filterNavigatorBarRootItem:e,filterNavigatorBarSelectedItem:n,filterNavigatorBarLeafItem:t}),title:i,onClick:a?this._onClick:null},a?X.createElement("button",{type:"button",className:"filterNavigatorBarItemContent"},r):X.createElement("span",{className:"filterNavigatorBarItemContent"},r))}}class Jb extends X.PureComponent{render(){const{className:e,items:t,selectedItem:n,uncommittedItem:r,onPop:o}=this.props;return X.createElement(Fb,{component:"ol",className:Xg()("filterNavigatorBar",e)},t.map(((e,a)=>X.createElement($b,{key:a,classNames:"filterNavigatorBarTransition",timeout:250},X.createElement(qb,{index:a,onClick:a!==t.length-1||r?o:null,isFirstItem:0===a,isLastItem:a===t.length-1,isSelectedItem:a===n},e)))),r?X.createElement($b,{key:t.length,classNames:"filterNavigatorBarUncommittedTransition",timeout:0},X.createElement(qb,{index:t.length,isFirstItem:!1,isLastItem:!0,isSelectedItem:!1,additionalClassName:"filterNavigatorBarUncommittedItem",title:r},r)):null)}}var Xb=n(270),Qb={};Qb.styleTagTransform=M(),Qb.setAttributes=B(),Qb.insert=S().bind(null,"head"),Qb.domAPI=E(),Qb.insertStyleElement=P(),w()(Xb.Z,Qb),Xb.Z&&Xb.Z.locals&&Xb.Z.locals;const eC=je({mapStateToProps:e=>{const t=Tu.getLocalizedTransformLabels(e);return{className:"calltreeTransformNavigator",items:t,selectedItem:t.length-1}},mapDispatchToProps:{onPop:Zp},component:Jb}),tC=()=>X.createElement("div",{className:"treeAndSidebarWrapper",id:"calltree-tab",role:"tabpanel","aria-labelledby":"calltree-tab-button"},X.createElement(xb,null),X.createElement(eC,null),X.createElement(sb,null));class nC extends X.PureComponent{render(){const{isMarkerTableEmptyInFullRange:e,threadName:t}=this.props;return X.createElement($A,{threadName:t,reason:e?"This thread contains no markers for this table.":"All markers were filtered out by the current selection or search term.",viewName:"marker table"})}}const rC=je({mapStateToProps:e=>({threadName:Tu.getFriendlyThreadName(e),isMarkerTableEmptyInFullRange:Tu.getAreMarkerPanelsEmptyInFullRange(e)}),component:nC});var oC=n(3697),aC={};aC.styleTagTransform=M(),aC.setAttributes=B(),aC.insert=S().bind(null,"head"),aC.domAPI=E(),aC.insertStyleElement=P(),w()(oC.Z,aC),oC.Z&&oC.Z.locals&&oC.Z.locals;class iC extends X.PureComponent{constructor(...e){super(...e),this._contextMenu=null,this._takeContextMenuRef=e=>{this._contextMenu=e}}_mouseDownHandler(e){e.preventDefault()}componentDidMount(){if(this._contextMenu){const e=Q.findDOMNode(this._contextMenu);e&&e.addEventListener("mousedown",this._mouseDownHandler)}}componentWillUnmount(){const e=Q.findDOMNode(this._contextMenu);e&&e.removeEventListener("mousedown",this._mouseDownHandler)}render(){return X.createElement(FA,{ref:this._takeContextMenuRef,...this.props},this.props.children?this.props.children:X.createElement("div",null))}}class sC extends X.PureComponent{constructor(...e){super(...e),this.filterSamplesByMarker=()=>{const{searchString:e,threadsKey:t,addTransformToStack:n}=this.props;n(t,{type:"filter-samples",filterType:"marker-search",filter:e})}}render(){const{searchString:e,onShow:t,onHide:n}=this.props;return X.createElement(iC,{id:"MarkerFiltersContextMenu",className:"markerFiltersContextMenu",onShow:t,onHide:n},X.createElement(IA,{onClick:this.filterSamplesByMarker},X.createElement(ue,{id:"MarkerFiltersContextMenu--drop-samples-outside-of-markers-matching",vars:{filter:e},elems:{strong:X.createElement("strong",null)}},X.createElement(X.Fragment,null,"Drop samples outside of markers matching “",X.createElement("strong",null,"$",e),"”"))))}}const lC=je({mapStateToProps:e=>({searchString:ci(e),threadsKey:mi(e)}),mapDispatchToProps:{addTransformToStack:Vp},component:sC});var cC=n(1334),dC={};dC.styleTagTransform=M(),dC.setAttributes=B(),dC.insert=S().bind(null,"head"),dC.domAPI=E(),dC.insertStyleElement=P(),w()(cC.Z,dC),cC.Z&&cC.Z.locals&&cC.Z.locals;class uC extends X.PureComponent{constructor(...e){super(...e),this.state={isMarkerFiltersMenuVisible:!1,isFilterMenuVisibleOnMouseDown:!1},this._onSearch=e=>{this.props.changeMarkersSearchString(e)},this._onClickToggleFilterButton=e=>{const{isFilterMenuVisibleOnMouseDown:t}=this.state;if(t)return;const n=e.currentTarget.getBoundingClientRect();SA({data:null,id:"MarkerFiltersContextMenu",position:{x:n.right>window.innerWidth-250?n.right:n.left,y:n.bottom},target:e.target})},this._onShowFiltersContextMenu=()=>{this.setState({isMarkerFiltersMenuVisible:!0})},this._onHideFiltersContextMenu=()=>{this.setState({isMarkerFiltersMenuVisible:!1})},this._onMouseDownToggleFilterButton=()=>{this.setState((e=>({isFilterMenuVisibleOnMouseDown:e.isMarkerFiltersMenuVisible})))}}render(){const{searchString:e,allowSwitchingStackType:t}=this.props,{isMarkerFiltersMenuVisible:n}=this.state;return X.createElement("div",{className:"markerSettings"},X.createElement("ul",{className:"panelSettingsList"},t?X.createElement("li",{className:"panelSettingsListItem"},X.createElement(Cb,{labelL10nId:"StackSettings--stack-implementation-label"})):null),X.createElement(ue,{id:"MarkerSettings--panel-search",attrs:{label:!0,title:!0}},X.createElement(pb,{className:"markerSettingsSearchField",label:"Filter Markers:",title:"Only display markers that match a certain name",currentSearchString:e,onSearch:this._onSearch})),X.createElement(ue,{id:"MarkerSettings--marker-filters",attrs:{title:!0}},X.createElement("button",{className:Xg()("filterMarkersButton","photon-button","photon-button-ghost",{"photon-button-ghost--checked":n}),title:"Marker filters",type:"button",onClick:this._onClickToggleFilterButton,onMouseDown:this._onMouseDownToggleFilterButton,disabled:!e})),X.createElement(lC,{onShow:this._onShowFiltersContextMenu,onHide:this._onHideFiltersContextMenu}))}}const hC=je({mapStateToProps:e=>({searchString:ci(e),allowSwitchingStackType:Hl(e)}),mapDispatchToProps:{changeMarkersSearchString:Fp},component:uC});var pC=n(9070),mC={};mC.styleTagTransform=M(),mC.setAttributes=B(),mC.insert=S().bind(null,"head"),mC.domAPI=E(),mC.insertStyleElement=P(),w()(pC.Z,mC),pC.Z&&pC.Z.locals&&pC.Z.locals;class fC{constructor(e,t,n,r,o){this._getMarker=void 0,this._markerIndexes=void 0,this._zeroAt=void 0,this._displayDataByIndex=void 0,this._markerSchemaByName=void 0,this._getMarkerLabel=void 0,this._getMarker=e,this._markerIndexes=t,this._zeroAt=n,this._displayDataByIndex=new Map,this._markerSchemaByName=r,this._getMarkerLabel=o}getRoots(){return this._markerIndexes}getChildren(e){return-1===e?this.getRoots():[]}hasChildren(e){return!1}getAllDescendants(){return new Set}getParent(){return-1}getDepth(){return 0}hasSameNodeIds(e){return this._markerIndexes===e._markerIndexes}getDisplayData(e){let t=this._displayDataByIndex.get(e);if(void 0===t){const o=this._getMarker(e);let a=this._getMarkerLabel(e);a.length>500&&(a=a.substring(0,500)+"…");let i=null;o.incomplete?i="unknown":null!==o.end&&(i=Zt(o.end-o.start)),t={start:(n=o.start,r=this._zeroAt,Ht(n-r)),duration:i,name:a,type:so(this._markerSchemaByName,o.name,o.data)},this._displayDataByIndex.set(e,t)}var n,r;return t}}class gC extends X.PureComponent{constructor(...e){super(...e),this._fixedColumns=[{propName:"start",titleL10nId:"MarkerTable--start",minWidth:30,initialWidth:90,resizable:!0},{propName:"duration",titleL10nId:"MarkerTable--duration",minWidth:30,initialWidth:80,resizable:!0},{propName:"type",titleL10nId:"MarkerTable--type",minWidth:30,initialWidth:150,resizable:!0}],this._mainColumn={propName:"name",titleL10nId:"MarkerTable--description"},this._expandedNodeIds=[],this._onExpandedNodeIdsChange=()=>{},this._treeView=void 0,this._takeTreeViewRef=e=>this._treeView=e,this.getMarkerTree=_t()(((...e)=>new fC(...e)),{limit:1}),this._onSelectionChange=(e,t)=>{const{threadsKey:n,changeSelectedMarker:r}=this.props;r(n,e,t)},this._onRightClickSelection=e=>{const{threadsKey:t,changeRightClickedMarker:n}=this.props;n(t,e)}}componentDidMount(){this.focus()}componentDidUpdate(e){this.props.scrollToSelectionGeneration>e.scrollToSelectionGeneration&&this._treeView&&this._treeView.scrollSelectionIntoView()}focus(){const e=this._treeView;e&&e.focus()}render(){const{getMarker:e,markerIndexes:t,zeroAt:n,selectedMarker:r,rightClickedMarkerIndex:o,markerSchemaByName:a,getMarkerLabel:i}=this.props,s=this.getMarkerTree(e,t,n,a,i);return X.createElement("div",{className:"markerTable",id:"marker-table-tab",role:"tabpanel","aria-labelledby":"marker-table-tab-button"},X.createElement(hC,null),0===t.length?X.createElement(rC,null):X.createElement(VA,{maxNodeDepth:0,tree:s,fixedColumns:this._fixedColumns,mainColumn:this._mainColumn,onSelectionChange:this._onSelectionChange,onRightClickSelection:this._onRightClickSelection,onExpandedNodesChange:this._onExpandedNodeIdsChange,selectedNodeId:r,rightClickedNodeId:o,expandedNodeIds:this._expandedNodeIds,ref:this._takeTreeViewRef,contextMenuId:"MarkerContextMenu",rowHeight:16,indentWidth:10,viewOptions:this.props.tableViewOptions,onViewOptionsChange:this.props.onTableViewOptionsChange}))}}const AC=je({mapStateToProps:e=>({threadsKey:mi(e),scrollToSelectionGeneration:Ts(e),getMarker:Tu.getMarkerGetter(e),markerIndexes:Tu.getMarkerTableMarkerIndexes(e),selectedMarker:Tu.getSelectedMarkerIndex(e),rightClickedMarkerIndex:Tu.getRightClickedMarkerIndex(e),zeroAt:_s(e),markerSchemaByName:tl(e),getMarkerLabel:Tu.getMarkerTableLabelGetter(e),tableViewOptions:Es(e)}),mapDispatchToProps:{changeSelectedMarker:Ip,changeRightClickedMarker:Mp,onTableViewOptionsChange:e=>Jp("marker-table",e)},component:gC});var bC=n(19),CC=n(4540),yC={};yC.styleTagTransform=M(),yC.setAttributes=B(),yC.insert=S().bind(null,"head"),yC.domAPI=E(),yC.insertStyleElement=P(),w()(CC.Z,yC),CC.Z&&CC.Z.locals&&CC.Z.locals;const{DOM_DELTA_PAGE:vC,DOM_DELTA_LINE:wC}="object"==typeof window&&window.WheelEvent?new WheelEvent("mouse"):{DOM_DELTA_LINE:1,DOM_DELTA_PAGE:2},kC={KeyQ:"zoomIn",KeyY:"zoomIn",KeyE:"zoomOut",KeyU:"zoomOut",KeyW:"up",KeyK:"up",KeyS:"down",KeyJ:"down",KeyA:"left",KeyH:"left",KeyD:"right",KeyL:"right"},EC={ArrowUp:"zoomIn",ArrowDown:"zoomOut"},xC=e=>{class t extends X.PureComponent{constructor(e){super(e),this.zoomScrollId=0,this._pendingPreviewSelectionUpdates=[],this._container=null,this._takeContainerRef=e=>{this.props.viewportProps.containerRef&&this.props.viewportProps.containerRef(e),this._container=e},this._lastKeyboardNavigationFrame=0,this._keysDown=new Set,this._deltaToZoomFactor=e=>Math.pow(1.003,e),this._dragX=0,this._dragY=0,this._setSize=()=>{if(this._container){const e=this._container.getBoundingClientRect(),{startsAtBottom:t}=this.props.viewportProps;this.state.containerWidth===e.width&&this.state.containerHeight===e.height||this.setState((n=>({containerWidth:e.width,containerHeight:e.height,containerLeft:e.left,viewportBottom:t?n.viewportBottom:n.viewportTop+e.height,viewportTop:t?n.viewportBottom-e.height:n.viewportTop,isSizeSet:!0})))}},this._setSizeNextFrame=()=>{requestAnimationFrame(this._setSize)},this._mouseWheelListener=e=>{e.preventDefault();const{disableHorizontalMovement:t}=this.props.viewportProps;if(e.ctrlKey||e.shiftKey){if(!t){const t=e.ctrlKey?3:1;this.zoomWithMouseWheel(e,t)}return}t||this.showScrollingHint();const{containerHeight:n}=this.state;this.moveViewport(-BC(e,n,"deltaX"),-BC(e,n,"deltaY"))},this.zoomRangeSelection=(e,t)=>{const{disableHorizontalMovement:n,maximumZoom:r}=this.props.viewportProps;n||this._addBatchedPreviewSelectionUpdate((({viewportLeft:n,viewportRight:o})=>{const a=o-n,i=SC(r,1,a*t),s=i-a,l=SC(0,1-i,n-s*e),c=SC(i,1,o+s*(1-e)),{viewportProps:{timeRange:d}}=this.props;if(0===l&&1===c)return{hasSelection:!1,isModifying:!1};const u=d.end-d.start;return{hasSelection:!0,isModifying:!1,selectionStart:d.start+u*l,selectionEnd:d.start+u*c}}))},this._mouseDownListener=e=>{e.preventDefault(),this._container&&this._container.focus(),window.addEventListener("mousemove",this._mouseMoveListener,!0),window.addEventListener("mouseup",this._mouseUpListener,!0)},this._mouseMoveListener=e=>{e.preventDefault();let{_dragX:t,_dragY:n}=this;this.state.isDragging||(t=e.clientX,n=e.clientY);const r=e.clientX-t,o=e.clientY-n;this._dragX=e.clientX,this._dragY=e.clientY,this.setState({isDragging:!0}),this.moveViewport(r,o)},this._keyDownListener=e=>{let t;e.ctrlKey||e.shiftKey||e.altKey||e.metaKey?e.ctrlKey&&(t=EC[e.nativeEvent.code]):t=kC[e.nativeEvent.code],void 0!==t&&(0===this._keysDown.size&&(requestAnimationFrame(this._keyboardNavigation),this._lastKeyboardNavigationFrame=performance.now()),this._keysDown.add(t),e.preventDefault())},this._keyUpListener=e=>{if(!e.ctrlKey)for(const e of(t=EC,Object.values(t)))this._keysDown.delete(e);var t;this._keysDown.delete(EC[e.nativeEvent.code]),this._keysDown.delete(kC[e.nativeEvent.code])},this._onBlur=()=>{this._keysDown.clear()},this._keyboardNavigation=e=>{if(0===this._keysDown.size)return;const t=Math.min(2e3*(e-this._lastKeyboardNavigationFrame)*.001,500);this._lastKeyboardNavigationFrame=e;for(const e of this._keysDown.values())switch(e){case"zoomIn":this.zoomRangeSelection(.5,this._deltaToZoomFactor(-t));break;case"zoomOut":this.zoomRangeSelection(.5,this._deltaToZoomFactor(t));break;case"up":this.moveViewport(0,t);break;case"down":this.moveViewport(0,-t);break;case"left":this.moveViewport(t,0);break;case"right":this.moveViewport(-t,0);break;default:throw Je(e)}requestAnimationFrame(this._keyboardNavigation)},this.moveViewport=(e,t)=>{const{viewportProps:{maxViewportHeight:n,timeRange:r,startsAtBottom:o,disableHorizontalMovement:a}}=this.props,{containerWidth:i,containerHeight:s,viewportTop:l,isSizeSet:c}=this.state;if(!c)return;let d=l-t,u=d+s;n<s?o?(d=n-s,u=n):(d=0,u=s):u>n?(d=n-s,u=n):d<0&&(d=0,u=s),d!==l&&this.setState({viewportTop:d,viewportBottom:u}),a||this._addBatchedPreviewSelectionUpdate((({viewportLeft:t,viewportRight:n})=>{const o=n-t;if(o>=1)return{hasSelection:!1,isModifying:!1};const a=o*e/i;let s=t-a,l=n-a;s<0&&(s=0,l=o),l>1&&(s=1-o,l=1);const c=r.end-r.start;return{hasSelection:!0,isModifying:!1,selectionStart:r.start+c*s,selectionEnd:r.start+c*l}}))},this._mouseUpListener=e=>{e.preventDefault(),window.removeEventListener("mousemove",this._mouseMoveListener,!0),window.removeEventListener("mouseup",this._mouseUpListener,!0),this.setState({isDragging:!1})},this.state=this.getDefaultState(e)}getHorizontalViewport(e,t){if(e.hasSelection){const{selectionStart:n,selectionEnd:r}=e,o=t.end-t.start;return{viewportLeft:(n-t.start)/o,viewportRight:(r-t.start)/o}}return{viewportLeft:0,viewportRight:1}}getDefaultState(e){const{previewSelection:t,timeRange:n}=e.viewportProps,r=this.getHorizontalViewport(t,n),{startsAtBottom:o,maxViewportHeight:a}=e.viewportProps;return{containerWidth:0,containerHeight:0,containerLeft:0,viewportTop:0,viewportBottom:o?a:0,horizontalViewport:r,isDragging:!1,isScrollHintVisible:!1,isSizeSet:!1}}showScrollingHint(){if(this.props.hasZoomedViaMousewheel)return;const e=++this.zoomScrollId;this.state.isScrollHintVisible||this.setState({isScrollHintVisible:!0}),setTimeout((()=>{e===this.zoomScrollId&&this.setState({isScrollHintVisible:!1})}),1e3)}UNSAFE_componentWillReceiveProps(e){if(this.props.viewportProps.viewportNeedsUpdate(this.props.chartProps,e.chartProps))this.setState(this.getDefaultState(e)),this._setSizeNextFrame();else if(this.props.viewportProps.previewSelection!==e.viewportProps.previewSelection||this.props.viewportProps.timeRange!==e.viewportProps.timeRange){const{previewSelection:t,timeRange:n}=e.viewportProps,r=this.getHorizontalViewport(t,n);this.setState({horizontalViewport:r})}else this.props.panelLayoutGeneration!==e.panelLayoutGeneration&&this._setSizeNextFrame()}_addBatchedPreviewSelectionUpdate(e){0===this._pendingPreviewSelectionUpdates.length&&requestAnimationFrame((()=>this._flushPendingPreviewSelectionUpdates())),this._pendingPreviewSelectionUpdates.push(e)}_flushPendingPreviewSelectionUpdates(){if(0!==this._pendingPreviewSelectionUpdates.length){const e=this._pendingPreviewSelectionUpdates;this._pendingPreviewSelectionUpdates=[];const{updatePreviewSelection:t,viewportProps:{previewSelection:n,timeRange:r}}=this.props;let o=n;for(const t of e)o=t(this.getHorizontalViewport(o,r));t(o)}}zoomWithMouseWheel(e,t=1){const{hasZoomedViaMousewheel:n,setHasZoomedViaMousewheel:r,viewportProps:{marginLeft:o,marginRight:a}}=this.props;!n&&r&&r();const i=BC(e,this.state.containerHeight,0===e.deltaY?"deltaX":"deltaY"),s=this._deltaToZoomFactor(i*t),l=e.clientX,{containerLeft:c,containerWidth:d}=this.state,u=(l-c-o)/(d-o-a);this.zoomRangeSelection(u,s)}componentDidMount(){if(this._setSize(),this._setSizeNextFrame(),this._container){const e=this._container;aA().subscribe(e,this._setSize),e.addEventListener("wheel",this._mouseWheelListener,{passive:!1})}}componentWillUnmount(){window.removeEventListener("resize",this._setSizeNextFrame,!1),window.removeEventListener("mousemove",this._mouseMoveListener,!0),window.removeEventListener("mouseup",this._mouseUpListener,!0);const e=this._container;e&&(aA().unsubscribe(e,this._setSize),e.removeEventListener("wheel",this._mouseWheelListener,{passive:!1}))}render(){const{chartProps:t,hasZoomedViaMousewheel:n,viewportProps:{className:r}}=this.props,{containerWidth:o,containerHeight:a,viewportTop:i,viewportBottom:s,horizontalViewport:{viewportLeft:l,viewportRight:c},isDragging:d,isScrollHintVisible:u,isSizeSet:h}=this.state,p=Xg()({chartViewport:!0,dragging:d},r),m=Xg()({chartViewportScroll:!0,hidden:n||!u}),f={containerWidth:o,containerHeight:a,viewportLeft:l,viewportRight:c,viewportTop:i,viewportBottom:s,isDragging:d,moveViewport:this.moveViewport,isSizeSet:h};return X.createElement("div",{className:p,onMouseDown:this._mouseDownListener,onKeyDown:this._keyDownListener,onKeyUp:this._keyUpListener,onBlur:this._onBlur,ref:this._takeContainerRef,tabIndex:0},X.createElement(e,{...t,viewport:f}),X.createElement("div",{className:m},"Zoom Chart:",X.createElement("kbd",{className:"chartViewportScrollKbd"},"Ctrl + Scroll"),"or",X.createElement("kbd",{className:"chartViewportScrollKbd"},"Shift + Scroll")))}}return je({mapStateToProps:e=>({panelLayoutGeneration:lc(e),hasZoomedViaMousewheel:ic(e)}),mapDispatchToProps:{setHasZoomedViaMousewheel:Xm,updatePreviewSelection:Gp},component:t})};function SC(e,t,n){return Math.max(e,Math.min(t,n))}const TC=15;function BC(e,t,n){const r="deltaY"===n?e.deltaY:e.deltaX;switch(e.deltaMode){case vC:return r*t;case wC:return r*TC}return r}var _C=n(5322),IC={};IC.styleTagTransform=M(),IC.setAttributes=B(),IC.insert=S().bind(null,"head"),IC.domAPI=E(),IC.insertStyleElement=P(),w()(_C.Z,IC),_C.Z&&_C.Z.locals&&_C.Z.locals;class PC extends X.PureComponent{constructor(...e){super(...e),this._interiorElementRef=X.createRef(),this._previousPosition={horizontal:"after-mouse",vertical:"after-mouse"},this._overlayElement=nt(document.querySelector("#root-overlay"),"Expected to find a root overlay element.")}_computeNewPosition({mousePosition:e,elementSize:t,windowSize:n,previousPosition:r}){const o=[];let a,i;switch(e+11+t<n&&o.push("after-mouse"),e-11-t>=0&&o.push("before-mouse"),o.length){case 0:a="window-edge";break;case 1:a=o[0];break;case 2:a="window-edge"!==r?r:"before-mouse";break;default:throw new Error(`We got more than 2 possible positions ${o.length}, which shouldn't happen.`)}switch(a){case"after-mouse":i=e+11;break;case"before-mouse":i=e-t-11;break;case"window-edge":i=8;break;default:throw Je(a)}return{position:a,style:i}}setPositioningStyle(){const{mouseX:e,mouseY:t}=this.props,n=this._interiorElementRef.current;if(!n)return;const r=this._computeNewPosition({mousePosition:e,elementSize:n.offsetWidth,windowSize:window.innerWidth,previousPosition:this._previousPosition.horizontal}),o=this._computeNewPosition({mousePosition:t,elementSize:n.offsetHeight,windowSize:window.innerHeight,previousPosition:this._previousPosition.vertical});n.style.left=r.style+"px",n.style.top=o.style+"px",this._previousPosition={horizontal:r.position,vertical:o.position}}componentDidMount(){this.setPositioningStyle()}componentDidUpdate(){this.setPositioningStyle()}render(){return Q.createPortal(X.createElement("div",{className:"tooltip","data-testid":"tooltip",style:{left:0,top:0},ref:this._interiorElementRef},this.props.children),this._overlayElement)}}var NC=n(3057),MC={};MC.styleTagTransform=M(),MC.setAttributes=B(),MC.insert=S().bind(null,"head"),MC.domAPI=E(),MC.insertStyleElement=P(),w()(NC.Z,MC),NC.Z&&NC.Z.locals&&NC.Z.locals;class FC extends X.Component{constructor(...e){super(...e),this._devicePixelRatio=1,this._offsetX=0,this._offsetY=0,this._mouseDownOffsetX=0,this._mouseDownOffsetY=0,this._mouseMovedWhileClicked=!1,this._ctx=void 0,this._canvas=null,this._isDrawScheduled=!1,this.state={hoveredItem:null,pageX:0,pageY:0},this._onMouseDown=e=>{0===e.button&&(this._mouseDownOffsetX=e.nativeEvent.offsetX,this._mouseDownOffsetY=e.nativeEvent.offsetY,this._mouseMovedWhileClicked=!1),2===e.button&&this.props.onRightClick&&this.props.onRightClick(this.state.hoveredItem)},this._onClick=e=>{this._mouseMovedWhileClicked||0===e.button&&this.props.onSelectItem&&this.props.onSelectItem(this.state.hoveredItem)},this._onMouseLeave=e=>{this.props.onMouseLeave&&this.props.onMouseLeave(e)},this._onMouseMove=e=>{if(!this._canvas)return;this.props.onMouseMove&&this.props.onMouseMove(e),this._offsetX=e.nativeEvent.offsetX,this._offsetY=e.nativeEvent.offsetY;const t=0!=(1&e.buttons);!this._mouseMovedWhileClicked&&t&&(Math.abs(this._offsetX-this._mouseDownOffsetX)>5||Math.abs(this._offsetY-this._mouseDownOffsetY)>5)&&(this._mouseMovedWhileClicked=!0);const n=this.props.hitTest(this._offsetX,this._offsetY);null!==n?this.setState({hoveredItem:n,pageX:e.pageX,pageY:e.pageY}):null===this.state.hoveredItem||window.persistTooltips||this.setState({hoveredItem:null})},this._onMouseOut=()=>{null===this.state.hoveredItem||window.persistTooltips||this.setState({hoveredItem:null})},this._onDoubleClick=()=>{this.props.onDoubleClickItem(this.state.hoveredItem)},this._getHoveredItemInfo=()=>{const{hoveredItem:e}=this.state;return null===e?null:this.props.getHoveredItemInfo(e)},this._takeCanvasRef=e=>{this._canvas=e}}_scheduleDraw(e=!1,t=null){const{drawCanvasAfterRaf:n}=this.props;!1!==n?this._isDrawScheduled||(this._isDrawScheduled=!0,window.requestAnimationFrame((()=>{this._isDrawScheduled=!1,this._doDrawCanvas(e,t)}))):this._doDrawCanvas(e,t)}_prepCanvas(){const e=this._canvas,{containerWidth:t,containerHeight:n,scaleCtxToCssPixels:r}=this.props,{devicePixelRatio:o}=window;if(!e)return;let a=this._ctx;a||(a=e.getContext("2d",{alpha:!1}),this._ctx=a);const i=Math.floor(t*o),s=Math.floor(n*o);if(e.width===i&&e.height===s||(e.width=i,e.height=s,e.style.width=e.width/o+"px",e.style.height=e.height/o+"px",r&&a.scale(this._devicePixelRatio,this._devicePixelRatio)),this._devicePixelRatio!==o){if(r){const e=1/this._devicePixelRatio*o;a.scale(e,e)}this._devicePixelRatio=o}}_doDrawCanvas(e=!1,t=null){const{className:n,drawCanvas:r,scaleCtxToCssPixels:o}=this.props,{hoveredItem:a}=this.state;this._canvas&&Kn(`${n} render`,(()=>{this._prepCanvas();const n=this._devicePixelRatio;r(this._ctx,{cssToDeviceScale:n,cssToUserScale:o?1:n},{hoveredItem:a,prevHoveredItem:t,isHoveredOnlyDifferent:e})}))}UNSAFE_componentWillReceiveProps(){const{hoveredItem:e}=this.state;null===e||RC(this.props.hitTest(this._offsetX,this._offsetY),e)||this.setState({hoveredItem:null})}componentDidUpdate(e,t){e!==this.props?this._scheduleDraw():RC(t.hoveredItem,this.state.hoveredItem)||this._scheduleDraw(!0,t.hoveredItem)}render(){const{isDragging:e}=this.props,{hoveredItem:t,pageX:n,pageY:r}=this.state,o=Xg()({chartCanvas:!0,[this.props.className]:!0,hover:null!==t}),a=this._getHoveredItemInfo();return X.createElement("div",null,X.createElement("canvas",{className:o,ref:this._takeCanvasRef,onMouseDown:this._onMouseDown,onClick:this._onClick,onMouseLeave:this._onMouseLeave,onMouseMove:this._onMouseMove,onMouseOut:this._onMouseOut,onDoubleClick:this._onDoubleClick}),!e&&a?X.createElement(PC,{mouseX:n,mouseY:r},a):null)}}function RC(e,t){if(e&&t&&"object"==typeof e&&"object"==typeof t){if(e.length!==t.length)return!1;let n=!0;for(const r in e){let o=!1;for(const n in t)if(r===n){if(e[r]!==t[n])return!1;o=!0;break}if(n=n&&o,!n)return!1}return!0}return e===t}const DC=class{constructor(e){this._ctx=void 0,this._cache=void 0,this._averageCharWidth=void 0,this.overflowChar=void 0,this.minWidth=void 0,this._ctx=e,this._cache={},this._averageCharWidth=this._calcAverageCharWidth(),this.overflowChar="…",this.minWidth=this.getTextWidth(this.overflowChar)}_calcAverageCharWidth(){const e="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.()< /:-_";return this.getTextWidth(e)/e.length}getTextWidth(e){const t=this._cache[e];if(void 0!==t)return t;const n=this._ctx.measureText(e);return this._cache[e]=n.width,n.width}getFittedText(e,t){if(this.getTextWidth(e)<t)return e;const n=(t-this.minWidth)/this._averageCharWidth;let r=Math.floor(n);return r===n&&(r-=1),r>0?e.substring(0,r)+this.overflowChar:""}},LC="#ed00b5",OC="#6200a4",UC="#45a1ff",zC="#0060df",GC="#30e60b",WC="#12bc00",HC="#d70022",VC="#a4000f",jC="#ff9400",ZC="#a44900",$C="#d7d7db",KC="#b1b1b3",YC="#737373",qC={selectedFillStyle:KC,unselectedFillStyle:KC+"60",selectedTextColor:"#000",gravity:10},JC={selectedFillStyle:YC,unselectedFillStyle:YC+"60",selectedTextColor:"#fff",gravity:11},XC={transparent:{selectedFillStyle:"transparent",unselectedFillStyle:"transparent",selectedTextColor:"#000",gravity:0},lightblue:{selectedFillStyle:UC,unselectedFillStyle:UC+"60",selectedTextColor:"#000",gravity:1},red:{selectedFillStyle:HC,unselectedFillStyle:HC+"60",selectedTextColor:"#fff",gravity:1},lightred:{selectedFillStyle:VC+"60",unselectedFillStyle:VC+"30",selectedTextColor:"#000",gravity:1},orange:{selectedFillStyle:jC,unselectedFillStyle:jC+"60",selectedTextColor:"#fff",gravity:2},blue:{selectedFillStyle:zC,unselectedFillStyle:zC+"60",selectedTextColor:"#fff",gravity:3},green:{selectedFillStyle:WC,unselectedFillStyle:WC+"60",selectedTextColor:"#fff",gravity:4},purple:{selectedFillStyle:OC,unselectedFillStyle:OC+"60",selectedTextColor:"#fff",gravity:5},yellow:{selectedFillStyle:"#ffe129",unselectedFillStyle:"#ffe90070",selectedTextColor:"#000",gravity:6},brown:{selectedFillStyle:ZC,unselectedFillStyle:ZC+"60",selectedTextColor:"#fff",gravity:7},magenta:{selectedFillStyle:LC,unselectedFillStyle:LC+"60",selectedTextColor:"#fff",gravity:8},lightgreen:{selectedFillStyle:GC,unselectedFillStyle:GC+"60",selectedTextColor:"#fff",gravity:9},gray:qC,grey:qC,darkgray:JC,darkgrey:JC};function QC(e){const t=XC[e];return void 0!==t?t:(console.error(`Unknown color name '${e}' encountered. Consider updating this code to handle it.`),qC)}function ey(e){return"transparent"===e?{selectedFillStyle:$C,unselectedFillStyle:$C+"60",selectedTextColor:"#000",gravity:8}:QC(e)}var ty=n(9409),ny={};ny.styleTagTransform=M(),ny.setAttributes=B(),ny.insert=S().bind(null,"head"),ny.domAPI=E(),ny.insertStyleElement=P(),w()(ty.Z,ny),ty.Z&&ty.Z.locals&&ty.Z.locals;const ry=150;class oy extends X.PureComponent{_renderOneSubCategoryLine(e,t,n,r,o,a,i,s){const{categories:l,weightType:c}=this.props,d=l[t].color;return X.createElement(X.Fragment,{key:`${t}-${n}`},X.createElement("div",{className:Xg()({tooltipCallNodeName:!0,tooltipLabel:!0,tooltipCategoryRowHeader:s})},e),X.createElement("div",{className:Xg()("tooltipCallNodeGraph ",{tooltipCategoryRowHeader:s})},X.createElement("div",{className:"tooltipCallNodeGraphRunning",style:{width:ry*o/a,backgroundColor:`var(--category-color-${d})`}}),X.createElement("div",{className:"tooltipCallNodeGraphSelf",style:{width:ry*r/a,backgroundColor:`var(--category-color-${d})`}})),X.createElement("div",{className:Xg()({tooltipCallNodeTiming:!0,tooltipCategoryRowHeader:s})},Rt(c,i,o)),X.createElement("div",{className:Xg()({tooltipCallNodeTiming:!0,tooltipCategoryRowHeader:s})},0===r?"—":Rt(c,i,r)))}_maybeRenderOneCategoryGroup({selfTime:e,totalTime:t},n,r){if(null===t.breakdownByCategory)return null;const{entireCategoryValue:o,subcategoryBreakdown:a}=t.breakdownByCategory[n];if(0===o)return null;const{categories:i}=this.props,s=e.breakdownByCategory?e.breakdownByCategory[n].entireCategoryValue:0,l=[];if(function(e){let t=0;for(let n=0;n<e.length;n++)e[n]>0&&t++;return t}(a)<=1){const e=a.findIndex((e=>e>0));return l.push(this._renderOneSubCategoryLine(Lr(i,n,e),n,e,s,o,o,r,!0)),l}const c=i[n].name;l.push(this._renderOneSubCategoryLine(c,n,-1,s,o,o,r,!0));const d=t=>{const s=a[t];if(0===s)return;const c=e.breakdownByCategory?e.breakdownByCategory[n].subcategoryBreakdown[t]:0;l.push(this._renderOneSubCategoryLine(i[n].subcategories[t],n,t,c,s,o,r,!1))};for(let e=1;e<a.length;e++)d(e);return d(0),l}_renderCategoryTimings(e,t){if(!e||!t)return null;const{totalTime:n,selfTime:r}=e.forPath,o=n.breakdownByCategory;if(!o)return null;const{thread:a,weightType:i}=this.props,s=Boolean(a.isJsTracer);return X.createElement("div",{className:"tooltipCallNodeCategory"},X.createElement("div",null),X.createElement("div",{className:"tooltipCallNodeHeader"}),X.createElement("div",{className:"tooltipCallNodeHeader"},X.createElement("span",{className:"tooltipCallNodeHeaderSwatchRunning"}),"Running"),X.createElement("div",{className:"tooltipCallNodeHeader"},X.createElement("span",{className:"tooltipCallNodeHeaderSwatchSelf"}),"Self"),X.createElement("div",{className:"tooltipLabel tooltipCategoryLabel tooltipCategoryRowHeader"},"Overall"),X.createElement("div",{className:"tooltipCallNodeGraph tooltipCategoryRow tooltipCategoryRowHeader"},X.createElement("div",{className:"tooltipCallNodeGraphRunning",style:{width:ry}}),X.createElement("div",{className:"tooltipCallNodeGraphSelf",style:{width:ry*r.value/n.value}})),X.createElement("div",{className:"tooltipCallNodeTiming tooltipCategoryRow tooltipCategoryRowHeader"},Rt(i,s,n.value)),X.createElement("div",{className:"tooltipCallNodeTiming tooltipCategoryRow tooltipCategoryRowHeader"},0===r.value?"—":Rt(i,s,r.value)),o.map(((e,t)=>this._maybeRenderOneCategoryGroup({totalTime:n,selfTime:r},t,s))))}_canRenderImplementationTimings(e,t){return!(!e||!t)&&Boolean(e.forPath.totalTime.breakdownByImplementation)}_renderImplementationTimings(e,t){if(!e||!t)return null;const{totalTime:n,selfTime:r}=e.forPath;if(!n.breakdownByImplementation)return null;const o=et(n.breakdownByImplementation).sort(((e,t)=>t[1]-e[1])),{thread:a,weightType:i}=this.props,s=Boolean(a.isJsTracer);return X.createElement("div",{className:"tooltipCallNodeImplementation"},X.createElement("div",null),X.createElement("div",{className:"tooltipCallNodeHeader"}),X.createElement("div",{className:"tooltipCallNodeHeader"},X.createElement("span",{className:"tooltipCallNodeHeaderSwatchRunning"}),"Running"),X.createElement("div",{className:"tooltipCallNodeHeader"},X.createElement("span",{className:"tooltipCallNodeHeaderSwatchSelf"}),"Self"),X.createElement("div",{className:"tooltipLabel"},"Overall"),X.createElement("div",{className:"tooltipCallNodeGraph"},X.createElement("div",{className:"tooltipCallNodeGraphRunning",style:{width:ry}}),X.createElement("div",{className:"tooltipCallNodeGraphSelf",style:{width:ry*r.value/n.value}})),X.createElement("div",{className:"tooltipCallNodeTiming"},Rt(i,s,n.value)),X.createElement("div",{className:"tooltipCallNodeTiming"},0===r.value?"—":Rt(i,s,r.value)),o.map((([e,t],o)=>{let a=0;return r.breakdownByImplementation&&(a=r.breakdownByImplementation[e]||0),X.createElement(X.Fragment,{key:o},X.createElement("div",{className:"tooltipCallNodeName tooltipLabel"},Dr(e)),X.createElement("div",{className:"tooltipCallNodeGraph"},X.createElement("div",{className:"tooltipCallNodeGraphRunning",style:{width:ry*t/n.value}}),X.createElement("div",{className:"tooltipCallNodeGraphSelf",style:{width:ry*a/n.value}})),X.createElement("div",{className:"tooltipCallNodeTiming"},Rt(i,s,t)),X.createElement("div",{className:"tooltipCallNodeTiming"},0===a?"—":Rt(i,s,a)))})))}render(){const{callNodeIndex:e,thread:t,durationText:n,categories:r,callTree:o,timings:a,callTreeSummaryStrategy:i,innerWindowIDToPageMap:s,callNodeInfo:{callNodeTable:l},displayStackType:c}=this.props,d=l.category[e],u=r[d].color,h=l.subcategory[e],p=l.func[e],m=l.innerWindowID[e],f=t.funcTable.name[p],g=t.stringTable.getString(f);let A;o&&(A=o.getDisplayData(e));let b=null;const C=t.funcTable.fileName[p];if(null!==C){let e=t.stringTable.getString(C);e=nr(e).path;const n=t.funcTable.lineNumber[p];if(null!==n){e+=":"+n;const r=t.funcTable.columnNumber[p];null!==r&&(e+=":"+r)}b=[X.createElement("div",{className:"tooltipLabel",key:"file"},"File:"),X.createElement("div",{className:"tooltipDetailsUrl",key:"fileVal"},e)]}let y=null;const v=t.funcTable.resource[p];if(-1!==v){const e=t.resourceTable.name[v];y=[X.createElement("div",{className:"tooltipLabel",key:"resource"},"Resource:"),t.stringTable.getString(e)]}let w;if(s){const e=s.get(m);if(e)if(0!==e.embedderInnerWindowID){w=[X.createElement("div",{className:"tooltipLabel",key:"iframe"},"iframe URL:"),X.createElement("div",{className:"tooltipDetailsUrl",key:"iframeVal"},e.url)];const t=s.get(e.embedderInnerWindowID);t&&w.push(X.createElement("div",{className:"tooltipLabel",key:"page"},"Page URL:"),X.createElement("div",{key:"pageVal"},t.url,t.isPrivateBrowsing?" (private)":null))}else w=[X.createElement("div",{className:"tooltipLabel",key:"page"},"Page URL:"),X.createElement("div",{className:"tooltipDetailsUrl",key:"pageVal"},e.url,e.isPrivateBrowsing?" (private)":null)]}const k=function(e,t){return $o.cpp(e,t)?"native":$o.js(e,t)?"js":"unsymbolicated"}(t,p);let E;switch(k){case"native":E="Native";break;case"js":E="Ruby";break;case"unsymbolicated":E=t.funcTable.isJS[p]?"Unsymbolicated native":"Unsymbolicated or generated JIT instructions";break;default:throw new Error(`Unknown stack type case "${k}".`)}return X.createElement("div",{className:"tooltipCallNode",style:{"--graph-width":ry+"px","--graph-height":"10px"}},X.createElement("div",{className:"tooltipOneLine tooltipHeader"},X.createElement("div",{className:"tooltipTiming"},n),X.createElement("div",{className:"tooltipTitle"},g),X.createElement("div",{className:"tooltipIcon"},A&&A.icon?X.createElement(rb,{displayData:A}):null)),X.createElement("div",{className:"tooltipCallNodeDetails"},this._canRenderImplementationTimings(a,A)?this._renderImplementationTimings(a,A):this._renderCategoryTimings(a,A),"timing"!==i&&A?X.createElement("div",{className:"tooltipDetails tooltipCallNodeDetailsLeft"},X.createElement("div",{className:"tooltipLabel"},"Total Bytes:"),X.createElement("div",null,A.totalWithUnit),X.createElement("div",{className:"tooltipLabel"},"Self Bytes:"),X.createElement("div",null,A.selfWithUnit)):null,X.createElement("div",{className:"tooltipDetails tooltipCallNodeDetailsLeft"},c?X.createElement(X.Fragment,null,X.createElement("div",{className:"tooltipLabel"},"Stack Type:"),X.createElement("div",null,E)):null,X.createElement("div",{className:"tooltipLabel"},"Category:"),X.createElement("div",null,X.createElement("span",{className:`colored-square category-color-${u}`}),Lr(r,d,h)),w,b,y)))}}function ay({label:e,children:t}){return null==t||""===t?null:X.createElement(X.Fragment,null,X.createElement("div",{className:"tooltipLabel"},e,":"),t)}function iy(){return X.createElement("div",{className:"tooltipDetailSeparator"})}function sy({children:e}){return X.createElement("div",{className:"tooltipDetails"},e)}var ly=n(2043),cy={};cy.styleTagTransform=M(),cy.setAttributes=B(),cy.insert=S().bind(null,"head"),cy.domAPI=E(),cy.insertStyleElement=P(),w()(ly.Z,cy),ly.Z&&ly.Z.locals&&ly.Z.locals;const dy=["domainLookupStart","domainLookupEnd","connectStart","tcpConnectEnd","secureConnectionStart","connectEnd"],uy=["startTime",...dy,"requestStart","responseStart","responseEnd","endTime"],hy=uy.slice();hy.splice(1,dy.length);const py={startTime:"Waiting for socket thread",domainLookupStart:"DNS request",domainLookupEnd:"After DNS request",connectStart:"TCP connection",tcpConnectEnd:"After TCP connection",secureConnectionStart:"Establishing TLS session",connectEnd:"Waiting for HTTP request",requestStart:"HTTP request and waiting for response",responseStart:"HTTP response",responseEnd:"Waiting to transmit the response",endTime:"End"},my={startTime:0,domainLookupStart:.5,domainLookupEnd:.5,connectStart:.5,tcpConnectEnd:.5,secureConnectionStart:.5,connectEnd:.5,requestStart:.75,responseStart:1,responseEnd:0,endTime:0};class fy extends X.PureComponent{render(){const{startPosition:e,dur:t,propertyName:n,phaseDuration:r}=this.props,o=e/t*100,a=Math.max(.3,r/t*100),i=my[n];return X.createElement(X.Fragment,null,X.createElement("div",{className:"tooltipLabel"},py[n],":"),X.createElement("div",{"aria-label":`Starting at ${Mt(e)} milliseconds, duration is ${Mt(r)} milliseconds`},Wt(r)),X.createElement("div",{className:Xg()("tooltipNetworkPhase",{tooltipNetworkPhaseEmpty:0===i}),"aria-hidden":"true",style:{marginLeft:o+"%",marginRight:100-o-a+"%",opacity:0===i?null:i}}))}}class gy extends X.PureComponent{_getPhasesForProperties(e,t,n){if(e.length<2)return console.error("Only 1 preconnect property has been found, this should not happen."),null;const{payload:r}=this.props,o=[];for(let a=1;a<e.length;a++){const i=e[a],s=e[a-1],l=+r[s],c=+r[i]-l,d=l-n;o.push(X.createElement(fy,{key:s,propertyName:s,startPosition:d,phaseDuration:c,dur:t}))}return o}_getLatestPreconnectValue(){const{payload:e}=this.props;return"number"==typeof e.connectEnd?e.connectEnd:"number"==typeof e.domainLookupEnd?e.domainLookupEnd:null}_renderPreconnectPhases(){const{payload:e,zeroAt:t}=this.props,n=e.domainLookupStart;if("number"!=typeof n)return null;const r=this._getLatestPreconnectValue();if(null===r)return null;if(!(r<e.startTime))return null;const o=dy.filter((t=>"number"==typeof e[t])),a=r-n,i=this._getPhasesForProperties(o,a,n);return X.createElement(X.Fragment,null,X.createElement("h3",{className:"tooltipNetworkTitle3"},"Preconnect (starting at ",Wt(n-t),")"),i)}render(){const{payload:e}=this.props,t=Po(e.contentType||Io(e));if("STATUS_START"===e.status)return null;const n=this._renderPreconnectPhases(),r=(n?hy:uy).filter((t=>"number"==typeof e[t]));if(0===r.length||1===r.length)return null;const o=e.endTime-e.startTime;if(2===r.length)return X.createElement("div",{className:`tooltipNetworkPhases ${t}`},X.createElement(fy,{propertyName:"responseStart",startPosition:0,phaseDuration:o,dur:o}));const a=this._getPhasesForProperties(r,o,e.startTime);return X.createElement("div",{className:`tooltipNetworkPhases ${t}`},n?X.createElement(X.Fragment,null,n,X.createElement("h3",{className:"tooltipNetworkTitle3"},"Actual request")):null,a)}}var Ay=n(8170),by={};function Cy(e){const{stackIndex:t,thread:n,implementationFilter:r,maxStacks:o,categories:a}=e,i=Rr(Yo(n,r,Sr(n,t)),n).reverse();return i.length?X.createElement("ul",{className:"backtrace"},i.slice(0,o).map((({funcName:e,origin:t,isFrameLabel:n,category:r},o)=>X.createElement("li",{key:o,className:Xg()("backtraceStackFrame",{backtraceStackFrame_isFrameLabel:n})},X.createElement("span",{className:`colored-border category-color-${a[r].color}`,title:a[r].name}),e,X.createElement("em",{className:"backtraceStackFrameOrigin"},t)))),i.length>o?[X.createElement("span",{key:i.length,className:"colored-border ellipsis"}),"…"]:null):X.createElement("div",{className:"backtrace"},"(The stack is empty because all of its frames are filtered out by the implementation filter. Switch the implementation filter in the call tree to see more frames.)")}function yy(e){return X.createElement(ay,{key:"GC Phase - "+e.name,label:"Phase "+e.name},Wt(e.time/1e3))}function vy(e){const t=[];for(const n in e)"Total"!==n&&t.push({name:n,time:e[n]});return t}function wy(e,t,n){const r=t.shift();if(void 0===r)return;const o={name:"(temp)",time:0};let a=e.get(r);if(!a){const t={...o};a={branches:new Map,leaf:!1,value:t},e.set(r,a)}if(t.length>0)a.leaf=!1,wy(a.branches,t,n);else{if(a.value.name!==o.name)return void console.error(`Duplicate phase ${n.name} in _treeInsert in MarkerTooltipContents.js`);a.value=n,a.leaf=!0}}function ky(e){const t=[];for(const{branches:n,leaf:r,value:o}of e.values())r?t.push(o):t.push(...ky(n));return t}function Ey(e,t){for(const n of e.values())t(n),Ey(n.branches,t)}function xy(e,t){const n=vy(e),r=" (self-time)",o=new Map;for(const e of n)wy(o,e.name.split("."),e);Ey(o,(({leaf:e,branches:t,value:{time:n,name:o}})=>{if(!e){let e=n;for(const{value:n}of t.values())e-=n.time;const a={name:o+r,time:e};t.set(o,{branches:new Map,leaf:!0,value:a})}}));const a=ky(o).sort(((e,t)=>t.time-e.time)).slice(0,t).filter((e=>e.time>0)),i={};let s=0;for(const{name:e}of n)i[e]=s++,i[e+r]=s++;return a.sort(((e,t)=>i[e.name]-i[t.name]))}by.styleTagTransform=M(),by.setAttributes=B(),by.insert=S().bind(null,"head"),by.domAPI=E(),by.insertStyleElement=P(),w()(Ay.Z,by),Ay.Z&&Ay.Z.locals&&Ay.Z.locals;var Sy=n(5346),Ty={};function By(e,t){return void 0!==e&&void 0!==t?Wt(t-e):"unknown"}Ty.styleTagTransform=M(),Ty.setAttributes=B(),Ty.insert=S().bind(null,"head"),Ty.domAPI=E(),Ty.insertStyleElement=P(),w()(Sy.Z,Ty),Sy.Z&&Sy.Z.locals&&Sy.Z.locals;class _y extends X.PureComponent{constructor(...e){super(...e),this._maybeRenderPageUrl=()=>{const{pages:e,innerWindowIDToPageMap:t,marker:n}=this.props;if(!(e&&t&&n.data&&n.data.innerWindowID))return null;const r=n.data.innerWindowID,o=t.get(r);if(o){let t=null;e.filter((e=>e.url===o.url)).length>1&&(t=" (id: "+r+")");try{const{host:e}=new URL(o.url),n=o.url.indexOf(e);if(-1===n)throw new Error("Unable to find the host in the URL. This is a programming error.");const r=o.url.slice(0,n),a=o.url.slice(n+e.length);return X.createElement(ay,{label:"Page"},X.createElement("div",{className:"tooltipDetailsUrl"},X.createElement("span",{className:"tooltipDetailsDim"},r),e,X.createElement("span",{className:"tooltipDetailsDim"},a),t,o.isPrivateBrowsing?" (private)":null))}catch(e){let n=o.url;return t&&(n+=t),o.isPrivateBrowsing&&(n+=" (private)"),X.createElement(ay,{label:"Page"},n)}}return null}}_renderThreadDetails(){const{marker:e,threadIdToNameMap:t}=this.props,n=e.data,r=null!==e.threadId?t.get(e.threadId):this.props.threadName;if(n&&void 0!==n.threadId){const e=n.threadId,o=t.get(e);return[X.createElement(ay,{label:"Recording Thread",key:"recording"},r),o?X.createElement(ay,{label:"Occurring Thread",key:"occurring"},`${o} (TID: ${e})`):X.createElement(ay,{label:"Occurring Thread ID",key:"occurring"},e)]}return[X.createElement(ay,{label:"Thread",key:"thread"},r)]}_renderMarkerDetails(){const{marker:e,markerSchemaByName:t,thread:n}=this.props,r=e.data,o=[];if(r){const a=lo(t,e.name,e.data);if(a)for(const e of a.data){if(void 0===e.value){const{key:t,label:i,format:s}=e;if(t in r){const e=r[t];null!=e&&o.push(X.createElement(ay,{key:a.name+"-"+t,label:i||t},fo(a.name,s,e,n.stringTable)))}}if(void 0===e.key){const{label:t,value:n}=e,r=t+"-"+n;o.push(X.createElement(ay,{key:r,label:t},X.createElement("div",{className:"tooltipDetailsDescription"},n)))}}switch(r.type){case"GCMinor":o.push(...function(e){const t=[];if(e.nursery){const r=e.nursery;switch(r.status){case"complete":{const e=r.phase_times.CollectToFP?(n=r.phase_times,["TraceValues","TraceCells","TraceSlots","TraceWholeCells","TraceGenericEntries","MarkRuntime","MarkDebugger","CollectToFP"].map((e=>n[e]?n[e]:0)).reduce(((e,t)=>e+t),0)):void 0;t.push(X.createElement(ay,{label:"Reason",key:"GCMinor-Reason"},r.reason),X.createElement(ay,{label:"Bytes tenured",key:"GCMinor-Bytes tenured"},$t(r.bytes_tenured,r.bytes_used,Ot))),r.cells_tenured&&r.cells_allocated_nursery&&t.push(X.createElement(ay,{label:"Cells tenured",key:"GCMinor-Cells tenured"},$t(r.cells_tenured,r.cells_allocated_nursery,Ut))),r.cur_capacity&&t.push(X.createElement(ay,{label:"Bytes used",key:"GCMinor-Bytes used"},$t(r.bytes_used,r.cur_capacity,Ot))),r.new_capacity&&t.push(X.createElement(ay,{label:"New nursery size",key:"GCMinor-New nursery size"},Ot(r.new_capacity))),r.lazy_capacity&&t.push(X.createElement(ay,{label:"Lazy-allocated size",key:"GCMinor-Lazy-allocated size"},Ot(r.lazy_capacity))),r.cells_allocated_nursery&&r.cells_allocated_tenured&&t.push(X.createElement(ay,{label:"Nursery allocations since last minor GC",key:"GCMinor-Nursery allocations since last minor GC"},$t(r.cells_allocated_nursery,r.cells_allocated_nursery+r.cells_allocated_tenured,Ut))),e&&(t.push(X.createElement(ay,{label:"Tenuring allocation rate",key:"GCMinor-bytes_tenured"},Ot(r.bytes_tenured/(e/1e6))+"/s")),r.cells_tenured&&t.push(X.createElement(ay,{label:"Tenuring allocation rate",key:"GCMinor-cells_tenured"},Ut(r.cells_tenured/(e/1e7))+"/s")),r.strings_tenured&&r.strings_deduplicated&&t.push(X.createElement(ay,{label:"Strings deduplicated when tenuring",key:"GCMinor-strings_deduped"},$t(r.strings_deduplicated,r.strings_deduplicated+r.strings_tenured,Ut)))),r.chunk_alloc_us&&t.push(X.createElement(ay,{label:"Time spent allocating chunks in mutator",key:"GCMinor-Time spent allocating chunks in mutator"},Gt(r.chunk_alloc_us))),r.groups_pretenured&&t.push(X.createElement(ay,{label:"Number of groups to pretenure",key:"GCMinor-Number of groups to pretenure"},Mt(r.groups_pretenured,2,0))),t.push(...vy(r.phase_times).filter((e=>e.time>250)).map(yy));break}case"nursery disabled":t.push(X.createElement(ay,{label:"Status",key:"GCMinor-Status"},"Nursery disabled"));break;case"nursery empty":t.push(X.createElement(ay,{label:"Status",key:"GCMinor-nursery empty"},"Nursery empty"))}}var n;return t}(r));break;case"GCMajor":o.push(...function(e){const t=[],n=e.timings;switch(n.status){case"aborted":t.push(X.createElement(ay,{label:"Status",key:"GMajor-Status"},"Aborted (OOM)"));break;case"completed":{let e=null;n.nonincremental_reason&&"None"!==n.nonincremental_reason&&(e=X.createElement(ay,{label:"Non-incremental reason",key:"GMajor-Non-incremental reason"},n.nonincremental_reason));const r=xy(n.phase_times,6);let o;const a=n.post_heap_size;o=void 0!==a?X.createElement(ay,{label:"Heap size (pre - post)",key:"GMajor-Heap size (pre - post)"},Ot(n.allocated_bytes)+" - "+Ot(a)):X.createElement(ay,{label:"Heap size (pre)",key:"GMajor-Heap size (pre)"},Ot(n.allocated_bytes)),t.push(e,X.createElement(ay,{label:"Reason",key:"GCMajor-reason"},n.reason),X.createElement(ay,{label:"Total slice times",key:"GMajor-Total slice times"},Wt(n.total_time,3,2)),X.createElement(ay,{label:"Max Pause",key:"GMajor-Make Pause"},Wt(n.max_pause,3,2)),o,X.createElement(ay,{label:"MMU 20ms",key:"GMajor-MMU 20ms"},Dt(n.mmu_20ms)),X.createElement(ay,{label:"MMU 50ms",key:"GMajor-MMU 50s"},Dt(n.mmu_50ms)),X.createElement(ay,{label:"Minor GCs",key:"GMajor-Minor GCs"},n.minor_gcs),X.createElement(ay,{label:"Slices",key:"GMajor-Slices"},n.slices),X.createElement(ay,{label:"Zones",key:"GMajor-Zones"},$t(n.zones_collected,n.total_zones,String)),X.createElement(ay,{label:"Compartments",key:"GMajor-Compartments"},n.total_compartments),...r.map(yy));break}}return t}(r));break;case"GCSlice":o.push(...function(e){const t=[],n=e.timings;let r=null;n.trigger_amount&&n.trigger_threshold&&(r=X.createElement(ay,{label:"Trigger (amt/trig)",key:"GSlice-Trigger (amt/trig)"},$t(n.trigger_amount,n.trigger_threshold,Ot,!1)));const o=xy(n.phase_times,6);return t.push(X.createElement(ay,{label:"Reason",key:"GSlice-Reason"},n.reason),X.createElement(ay,{label:"Budget",key:"GSlice-Budget"},n.budget),X.createElement(ay,{label:"States (pre - post)",key:"GSlice-States (pre - post)"},n.initial_state+" – "+n.final_state),r,X.createElement(ay,{label:"Page faults",key:"GSlice-Page faults"},n.page_faults),...o.map(yy)),t}(r));break;case"Network":o.push(...function(e){let t=e.contentType,n="MIME type";null==t&&(t=Io(e),n="Guessed MIME type");const r=Po(t),o=[];return o.push(X.createElement(ay,{label:"Status",key:"Network-Status"},function(e){switch(e){case"STATUS_START":return"Waiting for response";case"STATUS_STOP":return"Response received";case"STATUS_REDIRECT":return"Redirecting request";case"STATUS_CANCEL":return"Request was canceled";default:throw Je(e)}}(e.status))),void 0!==e.redirectType&&o.push(X.createElement(ay,{label:"Redirection type",key:"Redirection-Type"},e.redirectType+(e.isHttpToHttpsRedirect?" (HTTP to HTTPS)":""))),o.push(X.createElement(ay,{label:"Cache",key:"Network-Cache"},e.cache),X.createElement(ay,{label:"URL",key:"Network-URL"},X.createElement("span",{className:"tooltipDetailsUrl"},e.URI))),e.RedirectURI&&o.push(X.createElement(ay,{label:"Redirect URL",key:"Network-Redirect URL"},X.createElement("span",{className:"tooltipDetailsUrl"},e.RedirectURI))),o.push(X.createElement(ay,{label:"Priority",key:"Network-Priority"},function(e){if("number"!=typeof e)return null;let t=null;return e<-10?t="Highest":e>=-10&&e<0?t="High":0===e?t="Normal":e<=10&&e>0?t="Low":e>10&&(t="Lowest"),t?t+"("+e+")":null}(e.pri))),t&&o.push(X.createElement(ay,{label:n,key:"Network-"+n},X.createElement("div",{className:"tooltipNetworkMimeType"},X.createElement("span",{className:`tooltipNetworkMimeTypeSwatch colored-square ${r}`,title:t}),t))),e.isPrivateBrowsing&&o.push(X.createElement(ay,{label:"Private Browsing",key:"Network-Private Browsing"},"Yes")),"number"==typeof e.count&&o.push(X.createElement(ay,{label:"Requested bytes",key:"Network-Requested Bytes"},Ot(e.count))),o}(r));break;case"IPC":o.push(X.createElement(ay,{label:"Send Thread Latency",key:"IPC-Send Thread Latency"},By(r.startTime,r.sendStartTime)),X.createElement(ay,{label:"IPC Send Duration",key:"IPC-IPC Send Duration"},By(r.sendStartTime,r.sendEndTime)),X.createElement(ay,{label:"IPC Recv Latency",key:"IPC-IPC Recv Latency"},By(r.sendEndTime,r.recvEndTime)),X.createElement(ay,{label:"Recv Thread Latency",key:"IPC-Recv Thread Latency"},By(r.recvEndTime,r.endTime)));break;case"CompositorScreenshot":if(void 0!==r.url){const{width:e,height:t}=Uo(r,350);o.push(X.createElement(ay,{label:"Image",key:"CompositorScreenshot-image"},X.createElement("img",{className:"tooltipScreenshotImg",src:n.stringTable.getString(r.url),style:{width:e,height:t}})),X.createElement(ay,{label:"Window Size",key:"CompositorScreenshot-window size"},X.createElement(X.Fragment,null,r.windowWidth,"px × ",r.windowHeight,"px")),X.createElement(ay,{label:"Description",key:"CompositorScreenshot-description"},"This marker spans the time between each composite of a window and shows the window contents during that time."),X.createElement(ay,{label:"Window ID",key:"CompositorScreenshot-window id"},r.windowID))}else"CompositorScreenshotWindowDestroyed"===e.name&&o.push(X.createElement(ay,{label:"Description",key:"CompositorScreenshot-description"},"This marker shows the moment a window has been destroyed."),X.createElement(ay,{label:"Window ID",key:"CompositorScreenshot-window id"},r.windowID))}}return o}_maybeRenderMarkerDuration(){const{marker:e}=this.props;if(null===e.end)return null;const t=e.incomplete?"unknown duration":Zt(e.end-e.start,3,1);return X.createElement("div",{className:"tooltipTiming"},t)}_maybeRenderBacktrace(){const{marker:e,thread:t,implementationFilter:n,restrictHeightWidth:r,categories:o}=this.props,{data:a,start:i}=e;if(a&&"cause"in a&&a.cause){const{cause:s}=a,l=void 0!==s.time?i-s.time:0;return[X.createElement(iy,{key:"backtrace-separator"}),X.createElement(ay,{label:"Stack",key:"backtrace"},X.createElement("div",{className:"tooltipDetailsBackTrace"},l>0?X.createElement("h2",{className:"tooltipBackTraceTitle"},"Styles"===a.type||"Reflow"===e.name?`First invalidated ${Zt(l)} before the flush, at:`:`Triggered ${Zt(l)} ago, at:`):null,X.createElement(Cy,{maxStacks:r?20:1/0,stackIndex:s.stack,thread:t,implementationFilter:n,categories:o})))]}return null}_maybeRenderNetworkPhases(){const{marker:{data:e},zeroAt:t}=this.props;return e&&"Network"===e.type?X.createElement(gy,{payload:e,zeroAt:t}):null}_renderTitle(){const{markerIndex:e,getMarkerLabel:t}=this.props;return t(e)}render(){const{className:e}=this.props;return X.createElement("div",{className:Xg()("tooltipMarker",e)},X.createElement("div",{className:"tooltipHeader"},X.createElement("div",{className:"tooltipOneLine"},this._maybeRenderMarkerDuration(),X.createElement("div",{className:"tooltipTitle"},this._renderTitle()))),X.createElement(sy,null,this._renderMarkerDetails(),this._renderThreadDetails(),this._maybeRenderPageUrl(),this._maybeRenderBacktrace()),this._maybeRenderNetworkPhases())}}const Iy=je({mapStateToProps:(e,t)=>{const n=xu(t.threadsKey);return{threadName:n.getFriendlyThreadName(e),thread:n.getThread(e),implementationFilter:qa(e),pages:Os(e),innerWindowIDToPageMap:Il(e),zeroAt:_s(e),threadIdToNameMap:Ol(e),markerSchemaByName:tl(e),getMarkerLabel:n.getMarkerTooltipLabelGetter(e),categories:Qs(e)}},component:_y});var Py=n(797),Ny={};Ny.styleTagTransform=M(),Ny.setAttributes=B(),Ny.insert=S().bind(null,"head"),Ny.domAPI=E(),Ny.insertStyleElement=P(),w()(Py.Z,Ny),Py.Z&&Py.Z.locals&&Py.Z.locals;class My extends X.PureComponent{constructor(...e){super(...e),this._textMeasurement=void 0,this._textMeasurementCssToDeviceScale=1,this._scrollSelectionIntoView=()=>{const{selectedCallNodeIndex:e,callNodeInfo:{callNodeTable:t}}=this.props;if(null===e)return;const n=16*t.depth[e];n<this.props.viewport.viewportTop?this.props.viewport.moveViewport(0,this.props.viewport.viewportTop-n):n+16>this.props.viewport.viewportBottom&&this.props.viewport.moveViewport(0,this.props.viewport.viewportBottom-(n+16))},this._drawCanvas=(e,t,n)=>{const{thread:r,rangeStart:o,rangeEnd:a,combinedTimingRows:i,stackFrameHeight:s,selectedCallNodeIndex:l,categories:c,callNodeInfo:{callNodeTable:d},getMarker:u,marginLeft:h,viewport:{containerWidth:p,containerHeight:m,viewportLeft:f,viewportRight:g,viewportTop:A,viewportBottom:b}}=this.props,{hoveredItem:C}=n,y=new kh(e),{cssToDeviceScale:v,cssToUserScale:w}=t;if(v!==w)throw new Error("StackChartCanvasImpl sets scaleCtxToCssPixels={false}, so canvas user space units should be equal to device pixels.");e.font=10*v+"px sans-serif",this._textMeasurement&&this._textMeasurementCssToDeviceScale===v||(this._textMeasurement=new DC(e),this._textMeasurementCssToDeviceScale=v);const k=this._textMeasurement,E=p*v,x=m*v;y.set("#ffffff"),e.fillRect(0,0,E,x);const S=a-o,T=g-f,B=A*v,_=Math.floor(A/s),I=Math.ceil(b/s),P=p-h-_n,N=P*v,M=e=>v*(h+(e-f)*P/T),F=16*v,R=1*v,D=3*v,L=11*v;let O=c.findIndex((e=>"JavaScript"===e.name));-1===O&&(O=0);for(let t=_;t<I;t++){const n=i[t];if(!n)continue;const a=o+S*f-S/(T*N)*h,s=o+S*g;let p=0;for(let i=0;i<n.length;i++)if(n.end[i]>a&&n.start[i]<s){const a=(n.start[i]-o)/S,s=(n.end[i]-o)/S,h=M(a),m=(s-a)*N/T-1;let f=h,g=m,A=!0;if(h>=p?A=!1:h+m>p&&(g=m-(p-h),f=p,A=!1),A)continue;const b=Math.floor(f),v=Math.round(t*F-B),w=Math.ceil(Math.max(1,g)),E=Math.round(F-R);let x,_,I;if(n.callNode){const e=n.callNode[i],t=d.func[e],o=r.funcTable.name[t];x=r.stringTable.getString(o),_=c[d.category[e]],I=l===e}else{const e=n.index[i];x=u(e).data.name,_=c[O],I=l===e}const P=C&&t===C.depth&&i===C.stackTimingIndex,U=ey(_.color);y.set(P||I?U.selectedFillStyle:U.unselectedFillStyle),e.fillRect(b,v,w+.4,E),p=b+w+1;const z=Math.max(h,0)+D,G=Math.max(0,m-(z-h));if(G>k.minWidth){const t=k.getFittedText(x,G);t&&(y.set(P||I?U.selectedTextColor:"#000000"),e.fillText(t,z,v+L))}}}y.set(bC.qN),e.fillRect(M(0),0,R,x),e.fillRect(M(1),0,R,x)},this._getHoveredStackInfo=({depth:e,stackTimingIndex:t})=>{const{thread:n,weightType:r,threadsKey:o,combinedTimingRows:a,categories:i,callNodeInfo:s,getMarker:l,shouldDisplayTooltips:c,interval:d,innerWindowIDToPageMap:u,displayStackType:h}=this.props;if(!c())return null;const p=a[e];if(p.index){const e=p.index[t];return X.createElement(Iy,{markerIndex:e,marker:l(e),threadsKey:o,restrictHeightWidth:!0})}const m=p.callNode[t],f=p.end[t]-p.start[t];return X.createElement(oy,{thread:n,weightType:r,innerWindowIDToPageMap:u,interval:d,callNodeIndex:m,callNodeInfo:s,categories:i,callTreeSummaryStrategy:"timing",durationText:Wt(f),displayStackType:h})},this._onDoubleClickStack=e=>{if(null===e)return;const{depth:t,stackTimingIndex:n}=e,{combinedTimingRows:r,updatePreviewSelection:o}=this.props;o({hasSelection:!0,isModifying:!1,selectionStart:r[t].start[n],selectionEnd:r[t].end[n]})},this._onSelectItem=e=>{const t=this._getCallNodeIndexOrMarkerIndexFromHoveredItem(e);t||this.props.onSelectionChange(null),t&&"call-node"===t.type&&this.props.onSelectionChange(t.index)},this._onRightClick=e=>{const t=this._getCallNodeIndexOrMarkerIndexFromHoveredItem(e);t&&"call-node"===t.type&&this.props.onRightClick(t.index)},this._hitTest=(e,t)=>{const{rangeStart:n,rangeEnd:r,combinedTimingRows:o,marginLeft:a,viewport:{viewportLeft:i,viewportRight:s,viewportTop:l,containerWidth:c}}=this.props,d=n+(i+(e-a)/(c-a-_n)*(s-i))*(r-n),u=Math.floor((t+l)/16),h=o[u];if(!h)return null;for(let e=0;e<h.length;e++){const t=h.start[e],n=h.end[e];if(t<d&&n>d)return{depth:u,stackTimingIndex:e}}return null},this.onMouseMove=e=>{const{changeMouseTimePosition:t,rangeStart:n,rangeEnd:r,marginLeft:o,viewport:{viewportLeft:a,viewportRight:i,containerWidth:s}}=this.props,l=s-o-_n,c=r-n,d=a+(i-a)*((e.nativeEvent.offsetX-o)/l);t(d<0||d>1?null:n+d*c)},this.onMouseLeave=()=>{this.props.changeMouseTimePosition(null)}}componentDidUpdate(e){this.props.viewport.isSizeSet&&(!e.viewport.isSizeSet||this.props.scrollToSelectionGeneration>e.scrollToSelectionGeneration)&&this._scrollSelectionIntoView()}_getCallNodeIndexOrMarkerIndexFromHoveredItem(e){if(null===e)return null;const{depth:t,stackTimingIndex:n}=e,{combinedTimingRows:r}=this.props;return r[t].callNode?{index:r[t].callNode[n],type:"call-node"}:{index:r[t].index[n],type:"marker"}}render(){const{containerWidth:e,containerHeight:t,isDragging:n}=this.props.viewport;return X.createElement(FC,{scaleCtxToCssPixels:!1,className:"stackChartCanvas",containerWidth:e,containerHeight:t,isDragging:n,onDoubleClickItem:this._onDoubleClickStack,getHoveredItemInfo:this._getHoveredStackInfo,drawCanvas:this._drawCanvas,hitTest:this._hitTest,onMouseMove:this.onMouseMove,onMouseLeave:this.onMouseLeave,onSelectItem:this._onSelectItem,onRightClick:this._onRightClick})}}const Fy=xC(My);class Ry extends X.PureComponent{render(){const{thread:e,rangeFilteredThread:t,threadName:n}=this.props;let r;return r=0===e.samples.length?"This thread has no samples.":0===t.samples.length?"Broaden the selected range to view samples.":En`
|
125
|
+
Try broadening the selected range, removing search terms, or call tree transforms
|
126
|
+
to view samples.
|
127
|
+
`,X.createElement($A,{threadName:n,reason:r,viewName:"stack chart"})}}const Dy=je({mapStateToProps:e=>({threadName:Tu.getFriendlyThreadName(e),thread:Tu.getThread(e),rangeFilteredThread:Tu.getRangeFilteredThread(e)}),component:Ry});var Ly=n(1331),Oy={};Oy.styleTagTransform=M(),Oy.setAttributes=B(),Oy.insert=S().bind(null,"head"),Oy.domAPI=E(),Oy.insertStyleElement=P(),w()(Ly.Z,Oy),Ly.Z&&Ly.Z.locals&&Ly.Z.locals;class Uy extends X.PureComponent{constructor(...e){super(...e),this._viewport=null,this._onSelectedCallNodeChange=e=>{const{callNodeInfo:t,threadsKey:n,changeSelectedCallNode:r}=this.props;r(n,xr(e,t.callNodeTable))},this._onRightClickedCallNodeChange=e=>{const{callNodeInfo:t,threadsKey:n,changeRightClickedCallNode:r}=this.props;r(n,xr(e,t.callNodeTable))},this._shouldDisplayTooltips=()=>null===this.props.rightClickedCallNodeIndex,this._takeViewportRef=e=>{this._viewport=e},this._focusViewport=()=>{this._viewport&&this._viewport.focus()},this._handleKeyDown=e=>{const{threadsKey:t,callTree:n,selectedCallNodeIndex:r,rightClickedCallNodeIndex:o,handleCallNodeTransformShortcut:a,updateBottomBoxContentsAndMaybeOpen:i}=this.props,s=null!==o?o:r;null!==s&&("Enter"!==e.key?a(e,t,s):i("stack-chart",n.getBottomBoxInfoForCallNode(s)))},this._onCopy=e=>{if(document.activeElement===this._viewport){e.preventDefault();const{callNodeInfo:{callNodeTable:t},selectedCallNodeIndex:n,thread:r}=this.props;if(null!==n){const o=t.func[n],a=r.stringTable.getString(r.funcTable.name[o]);e.clipboardData.setData("text/plain",a)}}}}getMaximumZoom(){const{timeRange:{start:e,end:t},interval:n,thread:r}=this.props;return(r.jsTracer?.001:n)/(t-e)}componentDidMount(){document.addEventListener("copy",this._onCopy,!1),this._focusViewport()}componentWillUnmount(){document.removeEventListener("copy",this._onCopy,!1)}render(){const{thread:e,threadsKey:t,maxStackDepth:n,combinedTimingRows:r,timeRange:o,interval:a,previewSelection:i,updatePreviewSelection:s,changeMouseTimePosition:l,callNodeInfo:c,categories:d,selectedCallNodeIndex:u,scrollToSelectionGeneration:h,innerWindowIDToPageMap:p,getMarker:m,userTimings:f,weightType:g,timelineMarginLeft:A,displayStackType:b}=this.props,C=16*n;return X.createElement("div",{className:"stackChart",id:"stack-chart-tab",role:"tabpanel","aria-labelledby":"stack-chart-tab-button"},X.createElement(xb,null),X.createElement(eC,null),0===n&&0===f.length?X.createElement(Dy,null):X.createElement(DA,{id:"CallNodeContextMenu",attributes:{className:"treeViewContextMenu"}},X.createElement("div",{className:"stackChartContent",onKeyDown:this._handleKeyDown},X.createElement(Fy,{viewportProps:{previewSelection:i,timeRange:o,maxViewportHeight:C,viewportNeedsUpdate:Gy,marginLeft:A,marginRight:_n,maximumZoom:this.getMaximumZoom(),containerRef:this._takeViewportRef},chartProps:{interval:a,thread:e,weightType:g,innerWindowIDToPageMap:p,threadsKey:t,combinedTimingRows:r,getMarker:m,updatePreviewSelection:s,changeMouseTimePosition:l,rangeStart:o.start,rangeEnd:o.end,stackFrameHeight:16,callNodeInfo:c,categories:d,selectedCallNodeIndex:u,onSelectionChange:this._onSelectedCallNodeChange,onRightClick:this._onRightClickedCallNodeChange,shouldDisplayTooltips:this._shouldDisplayTooltips,scrollToSelectionGeneration:h,marginLeft:A,displayStackType:b}}))))}}const zy=je({mapStateToProps:e=>{const t=Qa(e)?Tu.getCombinedTimingRows(e):Tu.getStackTimingByDepth(e);return{thread:Tu.getFilteredThread(e),weightType:Tu.getSamplesWeightType(e),maxStackDepth:Tu.getFilteredCallNodeMaxDepth(e),combinedTimingRows:t,timeRange:Is(e),interval:Ls(e),previewSelection:Ms(e),threadsKey:mi(e),callTree:Tu.getCallTree(e),callNodeInfo:Tu.getCallNodeInfo(e),categories:Qs(e),selectedCallNodeIndex:Tu.getSelectedCallNodeIndex(e),rightClickedCallNodeIndex:Tu.getRightClickedCallNodeIndex(e),scrollToSelectionGeneration:Ts(e),innerWindowIDToPageMap:Il(e),getMarker:Tu.getMarkerGetter(e),userTimings:Tu.getUserTimingMarkerIndexes(e),timelineMarginLeft:Ec(e),displayStackType:Hl(e)}},mapDispatchToProps:{changeSelectedCallNode:qh,changeRightClickedCallNode:Jh,updatePreviewSelection:Gp,handleCallNodeTransformShortcut:nm,updateBottomBoxContentsAndMaybeOpen:Xp,changeMouseTimePosition:qp},component:Uy});function Gy(e,t){return e.combinedTimingRows!==t.combinedTimingRows}const Wy="#2c77d1";class Hy extends X.PureComponent{constructor(...e){super(...e),this._textMeasurement=void 0,this.drawCanvas=(e,t,n)=>{const{rowHeight:r,markerTimingAndBuckets:o,rightClickedMarkerIndex:a,timelineTrackOrganization:i,viewport:{viewportTop:s,viewportBottom:l,containerWidth:c,containerHeight:d}}=this.props;let u=null,h=null,p=null,m=null;const{hoveredItem:f,prevHoveredItem:g,isHoveredOnlyDifferent:A}=n;f&&(u=f.markerIndex,h=f.rowIndexOfLabel),g&&(p=g.markerIndex,m=g.rowIndexOfLabel);const{cssToUserScale:b}=t;if(1!==b)throw new Error("StackChartCanvasImpl sets scaleCtxToCssPixels={true}, so canvas user space units should be equal to CSS pixels.");const C=Math.floor(s/r),y=Math.min(Math.ceil(l/r),o.length),v=this._getMarkerIndexToTimingRow(o),w=null===a?void 0:v.get(a);let k=null===u?void 0:v.get(u);if("active-tab"===i.type&&void 0===k&&null!==h&&(k=h),e.lineWidth=1,A){let t=null===p?void 0:v.get(p);"active-tab"===i.type&&void 0===t&&null!==m&&(t=m),void 0!==k&&(this.clearRow(e,k),this.highlightRow(e,k),this.drawMarkers(e,u,k,k+1),null===h&&this.drawSeparatorsAndLabels(e,k,k+1)),void 0!==t&&t!==k&&(t!==w&&this.clearRow(e,t),this.drawMarkers(e,u,t,t+1),this.drawSeparatorsAndLabels(e,t,t+1))}else e.fillStyle="#ffffff",e.fillRect(0,0,c,d),void 0!==w?this.highlightRow(e,w):void 0!==k&&this.highlightRow(e,k),this.drawMarkers(e,u,C,y),this.drawSeparatorsAndLabels(e,C,y)},this.highlightRow=(e,t)=>{const{rowHeight:n,viewport:{viewportTop:r,containerWidth:o}}=this.props;e.fillStyle="rgba(40, 122, 169, 0.2)",e.fillRect(0,t*n-r,o,n-1)},this._getMarkerIndexToTimingRow=_t()((e=>{const t=new Map;for(let n=0;n<e.length;n++){const r=e[n];if("string"!=typeof r)for(let e=0;e<r.length;e++)t.set(r.index[e],n)}return t}),{cache:new WeakMap}),this.hitTest=(e,t)=>{const{rangeStart:n,rangeEnd:r,markerTimingAndBuckets:o,rowHeight:a,marginLeft:i,marginRight:s,timelineTrackOrganization:l,viewport:{viewportLeft:c,viewportRight:d,viewportTop:u,containerWidth:h}}=this.props,p=.25*a;if(e<i-p)return null;let m=null,f=null;const g=h-i-s,A=r-n,b=d-c,C=p/g*b*A,y=n+(c+b*((e-i)/g))*A,v=Math.floor((t+u)/a),w=o[v];if(!w||"string"==typeof w||!w.length)return null;const k=e=>w.start[e]<y+C&&w.end[e]>y-C,E=(0,Jn.e)(w.start,y);if(E>0&&E<w.length){const e=E-1,t=w.start[E]-y,n=y-w.end[e]<t?e:E;k(n)&&(m=w.index[n])}else 0===E?k(E)&&(m=w.index[E]):k(E-1)&&(m=w.index[E-1]);return"active-tab"===l.type&&o[v-1].name!==w.name&&this._textMeasurement&&e<this._textMeasurement.getTextWidth(w.name)+10&&(f=v),null===m&&null===f?null:{markerIndex:m,rowIndexOfLabel:f}},this.onMouseMove=e=>{const{changeMouseTimePosition:t,rangeStart:n,rangeEnd:r,marginLeft:o,marginRight:a,viewport:{viewportLeft:i,viewportRight:s,containerWidth:l}}=this.props,c=l-o-a,d=i+(s-i)*((e.nativeEvent.offsetX-o)/c);t(d<0||d>1?null:n+d*(r-n))},this.onMouseLeave=()=>{this.props.changeMouseTimePosition(null)},this.onDoubleClickMarker=e=>{const t=null===e?null:e.markerIndex;if(null===t)return;const{getMarker:n,updatePreviewSelection:r,rangeStart:o,rangeEnd:a}=this.props,i=n(t),{start:s,end:l}=Eh(o,a,i);r({hasSelection:!0,isModifying:!1,selectionStart:s,selectionEnd:l})},this.onRightClickMarker=e=>{const t=null===e?null:e.markerIndex,{changeRightClickedMarker:n,threadsKey:r}=this.props;n(r,t)},this.getHoveredMarkerInfo=({markerIndex:e})=>{if(!this.props.shouldDisplayTooltips()||null===e)return null;const t=this.props.getMarker(e);return X.createElement(Iy,{markerIndex:e,marker:t,threadsKey:this.props.threadsKey,restrictHeightWidth:!0})}}drawOneMarker(e,t,n,r,o,a,i,s=!1){a?this.drawOneInstantMarker(e,t,n,o,s):this.drawOneIntervalMarker(e,t,n,r,o,i,s)}drawOneIntervalMarker(e,t,n,r,o,a,i){const{marginLeft:s}=this.props;if(r<=2)e.fillStyle=i?bC.ih:Wy,r=Math.max(r,1),e.fillRect(t,n+1,r,o-2);else{const l=this._getTextMeasurement(e);e.fillStyle=i?bC.vd:"#8ac4ff",e.strokeStyle=i?bC.ih:Wy,e.beginPath(),e.rect(t+.5,n+1+.5,r-1,o-2-1),e.fill(),e.stroke();const c=t<s?s+3:t+3,d=(t<s?r-s+t:r)-6;if(d>l.minWidth){const t=l.getFittedText(a,d);t&&(e.fillStyle=i?"white":"black",e.fillText(t,c,n+11))}}}drawOneInstantMarker(e,t,n,r,o){e.fillStyle=o?bC.vd:"#8ac4ff",e.strokeStyle=o?bC.ih:Wy,e.beginPath(),e.moveTo(t-r/4,n+r/2),e.lineTo(t,n+1.5),e.lineTo(t+r/4,n+r/2),e.lineTo(t,n+r-1.5),e.closePath(),e.fill(),e.stroke()}drawMarkers(e,t,n,r){const{rangeStart:o,rangeEnd:a,markerTimingAndBuckets:i,rowHeight:s,marginLeft:l,marginRight:c,rightClickedMarkerIndex:d,viewport:{containerWidth:u,containerHeight:h,viewportLeft:p,viewportRight:m,viewportTop:f}}=this.props,{devicePixelRatio:g}=window,A=u-l-c,b=a-o,C=m-p,y=o+b*p,v=o+b*m+c*(C*b/A),w=[];e.save(),e.beginPath(),e.rect(l,0,A,h),e.clip();for(let a=n;a<r;a++){const n=i[a];if(!n||"string"==typeof n)continue;let r=null;for(let i=0;i<n.length;i++){const c=n.start[i],u=n.end[i],h=c===u;if(u>=y&&c<v){const m=(c-o)/b;let y=(m-p)*A/C+l;const v=a*s-f;let k=((u-o)/b-m)*A/C;const E=s-1;y=Math.round(y*g)/g,k=Math.round(k*g)/g;const x=n.label[i],S=n.index[i];d===S||t===S?w.push({x:y,y:v,w:k,h:E,isInstantMarker:h,text:x}):(k>1||y!==r)&&(r=y,this.drawOneMarker(e,y,v,k,E,h,x))}}}w.forEach((t=>{this.drawOneMarker(e,t.x,t.y,t.w,t.h,t.isInstantMarker,t.text,!0)})),e.restore()}clearRow(e,t){const{rowHeight:n,viewport:{viewportTop:r,containerWidth:o}}=this.props;e.fillStyle="#fff",e.fillRect(0,t*n-r,o,n-1)}_getTextMeasurement(e){return this._textMeasurement||(this._textMeasurement=new DC(e)),this._textMeasurement}drawSeparatorsAndLabels(e,t,n){const{markerTimingAndBuckets:r,rowHeight:o,marginLeft:a,marginRight:i,timelineTrackOrganization:s,viewport:{viewportTop:l,containerWidth:c,containerHeight:d}}=this.props,u=c-i;e.fillStyle=bC.F_,"active-tab"!==s.type&&e.fillRect(a-1,0,1,d);for(let r=t;r<n;r++){const t=(r+1)*o-l-1;e.fillRect(0,t,u,1)}const h=this._getTextMeasurement(e);e.fillStyle="#000000";for(let a=t;a<n;a++){const t=r[a];if("string"==typeof t)continue;const{name:n}=t;if(a>0&&n===r[a-1].name)continue;const i=a*o-l,c=h.getFittedText(n,In);if("active-tab"===s.type){e.fillStyle="#ffffffbf";const t=h.getTextWidth(c);e.fillRect(0,i,t+10,o),e.fillStyle="#000000"}e.fillText(c,5,i+11)}for(let i=t;i<n;i++){const t=r[i];if("string"!=typeof t)continue;const n=i*o-l;e.fillStyle=bC.F_,e.fillRect(0,n-1,u,o),e.fillStyle=bC.qN,e.fillRect(0,n-1,u,1),e.fillRect(0,n+o-1,u,1),e.fillStyle="#000000",e.fillText(t,5+a,n+11)}}render(){const{containerWidth:e,containerHeight:t,isDragging:n}=this.props.viewport;return X.createElement(FC,{className:"markerChartCanvas",containerWidth:e,containerHeight:t,isDragging:n,scaleCtxToCssPixels:!0,onDoubleClickItem:this.onDoubleClickMarker,onRightClick:this.onRightClickMarker,getHoveredItemInfo:this.getHoveredMarkerInfo,drawCanvas:this.drawCanvas,hitTest:this.hitTest,onMouseMove:this.onMouseMove,onMouseLeave:this.onMouseLeave})}}const Vy=xC(Hy);class jy extends X.PureComponent{render(){const{isMarkerChartEmptyInFullRange:e,threadName:t}=this.props;return X.createElement($A,{threadName:t,reason:e?"This thread contains no markers for this chart.":"All markers were filtered out by the current selection or search term.",viewName:"marker chart"})}}const Zy=je({mapStateToProps:e=>({threadName:Tu.getFriendlyThreadName(e),isMarkerChartEmptyInFullRange:Tu.getAreMarkerPanelsEmptyInFullRange(e)}),component:jy});var $y=n(1301),Ky={};Ky.styleTagTransform=M(),Ky.setAttributes=B(),Ky.insert=S().bind(null,"head"),Ky.domAPI=E(),Ky.insertStyleElement=P(),w()($y.Z,Ky),$y.Z&&$y.Z.locals&&$y.Z.locals;class Yy extends X.PureComponent{constructor(...e){super(...e),this._viewport=null,this._shouldDisplayTooltips=()=>null===this.props.rightClickedMarkerIndex,this._takeViewportRef=e=>{this._viewport=e},this._focusViewport=()=>{this._viewport&&this._viewport.focus()}}getMaximumZoom(){const{timeRange:{start:e,end:t}}=this.props;return 1e-6/(t-e)}componentDidMount(){this._focusViewport()}render(){const{maxMarkerRows:e,timeRange:t,threadsKey:n,markerTimingAndBuckets:r,getMarker:o,previewSelection:a,updatePreviewSelection:i,changeMouseTimePosition:s,changeRightClickedMarker:l,rightClickedMarkerIndex:c,timelineMarginLeft:d,timelineTrackOrganization:u}=this.props,h=16*e;return X.createElement("div",{className:"markerChart",id:"marker-chart-tab",role:"tabpanel","aria-labelledby":"marker-chart-tab-button"},X.createElement(hC,null),0===e?X.createElement(Zy,null):X.createElement(DA,{id:"MarkerContextMenu",attributes:{className:"treeViewContextMenu"}},X.createElement(Vy,{key:n,viewportProps:{timeRange:t,previewSelection:a,maxViewportHeight:h,viewportNeedsUpdate:qy,maximumZoom:this.getMaximumZoom(),marginLeft:d,marginRight:_n,containerRef:this._takeViewportRef},chartProps:{markerTimingAndBuckets:r,getMarker:o,updatePreviewSelection:i,changeMouseTimePosition:s,changeRightClickedMarker:l,rangeStart:t.start,rangeEnd:t.end,rowHeight:16,threadsKey:n,marginLeft:d,marginRight:_n,rightClickedMarkerIndex:c,shouldDisplayTooltips:this._shouldDisplayTooltips,timelineTrackOrganization:u}})))}}function qy(e,t){return e.markerTimingAndBuckets!==t.markerTimingAndBuckets}const Jy=je({mapStateToProps:e=>{const t=Tu.getMarkerChartTimingAndBuckets(e);return{getMarker:Tu.getMarkerGetter(e),markerTimingAndBuckets:t,maxMarkerRows:t.length,timeRange:Is(e),threadsKey:mi(e),previewSelection:Ms(e),rightClickedMarkerIndex:Tu.getRightClickedMarkerIndex(e),timelineMarginLeft:Ec(e),timelineTrackOrganization:ii(e)}},mapDispatchToProps:{updatePreviewSelection:Gp,changeMouseTimePosition:qp,changeRightClickedMarker:Mp},component:Yy});var Xy=n(4570),Qy={};Qy.styleTagTransform=M(),Qy.setAttributes=B(),Qy.insert=S().bind(null,"head"),Qy.domAPI=E(),Qy.insertStyleElement=P(),w()(Xy.Z,Qy),Xy.Z&&Xy.Z.locals&&Xy.Z.locals;class ev extends X.PureComponent{constructor(...e){super(...e),this._onSearch=e=>{this.props.changeNetworkSearchString(e)}}render(){const{searchString:e}=this.props;return X.createElement("div",{className:"networkSettings"},X.createElement("div",{className:"networkSettingsSpacer"}),X.createElement(ue,{id:"NetworkSettings--panel-search",attrs:{label:!0,title:!0}},X.createElement(pb,{className:"networkSettingsSearchField",label:"Filter Networks:",title:"Only display network requests that match a certain name",currentSearchString:e,onSearch:this._onSearch})))}}const tv=je({mapStateToProps:e=>({searchString:di(e)}),mapDispatchToProps:{changeNetworkSearchString:Rp},component:ev});function nv(e){return class extends X.PureComponent{constructor(...e){super(...e),this.state={width:0,height:0},this._container=void 0,this._resizeListener=e=>{const t=this._container;t&&this._updateSize(t,e)}}componentDidMount(){const e=(0,Q.findDOMNode)(this);if(!e)throw new Error("Unable to find the DOMNode");this._container=e,aA().subscribe(e,this._resizeListener)}componentWillUnmount(){const e=this._container;e&&aA().unsubscribe(e,this._resizeListener),this._container=null}_updateSize(e,t){this.setState({width:t.width,height:t.height})}render(){return X.createElement(e,{...this.props,...this.state})}}}class rv extends X.PureComponent{render(){const{threadName:e}=this.props;return X.createElement($A,{threadName:e,reason:En`
|
128
|
+
All network requests were filtered out by the current selection or search
|
129
|
+
term. Try changing the search term, or zooming out.
|
130
|
+
`,viewName:"network chart"})}}const ov=je({mapStateToProps:e=>({threadName:Tu.getFriendlyThreadName(e)}),component:rv}),av=/(.*)(\/[^/]+\/?)$/,iv=["domainLookupStart","requestStart","responseStart","responseEnd"],sv=iv.reduce(((e,t,n,{length:r})=>(e[t]=r>1?n/(r-1):0,e)),{});function lv({name:e,previousName:t,value:n,duration:r,style:o}){return X.createElement("div",{className:"networkChartRowItemBarPhase",key:e,"data-name":e,"data-value":n,style:o,"aria-label":`${t} to ${e}: ${Mt(r)} milliseconds`})}class cv extends X.PureComponent{_timeToCssPixels(e){const{timeRange:t,width:n}=this.props,r=t.end-t.start,o=n-In-_n;return(e-t.start)/r*o+In}_getLatestPreconnectEndProperty(){const{networkPayload:e}=this.props;return"number"==typeof e.connectEnd?"connectEnd":"number"==typeof e.domainLookupEnd?"domainLookupEnd":null}_preconnectComponent(){const{networkPayload:e,marker:t}=this.props,n=e.domainLookupStart;if("number"!=typeof n)return null;const r=this._getLatestPreconnectEndProperty();if(!r)return null;const o=+e[r];if(!(o<t.start))return null;const a=o-n,i=this._timeToCssPixels(n),s=this._timeToCssPixels(o)-i,l={name:r,previousName:"domainLookupStart",value:o,duration:a,style:{left:0,width:"100%",opacity:sv.requestStart}};return X.createElement("div",{className:"networkChartRowItemBar",style:{width:s,left:i}},lv(l))}render(){const{marker:e,networkPayload:t}=this.props,n=e.start,r=nt(e.end,"Network markers are assumed to have an end time."),o=r-e.start,a=this._timeToCssPixels(n);let i=this._timeToCssPixels(r)-a;i<1&&(i=2.5);const s=this._preconnectComponent(),l=(s?iv.slice(1):iv).filter((e=>"number"==typeof t[e])),c=[];let d=n,u="startTime";return l.forEach(((e,r)=>{const a=+t[e];c.push({name:e,previousName:u,value:a,duration:a-d,style:{left:(d-n)/o*i,width:Math.max((a-d)/o*i,1),opacity:0===r?0:sv[e]}}),d=a,u=e})),c.push({name:"endTime",previousName:u,value:n+o,duration:n+o-d,style:{left:(d-n)/o*i,width:(n+o-d)/o*i,opacity:c.length?0:1}}),X.createElement(X.Fragment,null,s,X.createElement("div",{className:"networkChartRowItemBar",style:{width:i,left:a}},c.map((e=>X.createElement(lv,{key:e.name,...e})))))}}class dv extends X.PureComponent{constructor(...e){super(...e),this.state={pageX:0,pageY:0,hovered:!1},this._hoverIn=e=>{const t=e.pageX,n=e.pageY;this.setState({pageX:t,pageY:n,hovered:!0}),this.props.onHover&&this.props.onHover(this.props.markerIndex)},this._hoverOut=()=>{window.persistTooltips||this.setState({hovered:!1})},this._onMouseDown=e=>{const{markerIndex:t,onLeftClick:n,onRightClick:r}=this.props;0===e.button?n&&n(t):2===e.button&&r&&r(t)}}_findIndexOfLoadid(e){const t=e.search(/[:]/g);return-1===t?null:t}_cropNameToUrl(e){return e.slice(this._findIndexOfLoadid(e)+2)}_extractURI(e){try{return new URL(this._cropNameToUrl(e))}catch(e){return null}}_splitsURI(e){const t=this._extractURI(e);if(null!==t){let e=t.pathname,n="";const r=av.exec(t.pathname);return r&&([,n,e]=r),X.createElement(X.Fragment,null,X.createElement("span",{className:"networkChartRowItemUriOptional"},t.protocol+"//"),X.createElement("span",{className:"networkChartRowItemUriRequired"},t.host),n?X.createElement("span",{className:"networkChartRowItemUriOptional"},n):null,e?X.createElement("span",{className:"networkChartRowItemUriRequired"},e):null,t.search?X.createElement("span",{className:"networkChartRowItemUriOptional"},t.search):null,t.hash?X.createElement("span",{className:"networkChartRowItemUriOptional"},t.hash):null)}return e}_getClassNameTypeForMarker(){const{networkPayload:e}=this.props;return Po(void 0===e.contentType||null===e.contentType?Io(e):e.contentType)}render(){const{index:e,markerIndex:t,marker:n,networkPayload:r,width:o,timeRange:a,isRightClicked:i,shouldDisplayTooltips:s,isSelected:l,isHoveredFromState:c}=this.props;if(null===r)return null;const d=Xg()("networkChartRowItem",this._getClassNameTypeForMarker(),{odd:e%2==1,isRightClicked:i,isSelected:l,isHovered:c});return X.createElement("div",{className:d,onMouseEnter:this._hoverIn,onMouseLeave:this._hoverOut,onMouseDown:this._onMouseDown,"aria-selected":l,"aria-label":n.name,role:"option",id:`networkChartRowItem-${t}`},X.createElement("div",{className:"networkChartRowItemLabel"},this._splitsURI(n.name)),X.createElement(cv,{marker:n,networkPayload:r,width:o,timeRange:a}),s()&&this.state.hovered?X.createElement(PC,{mouseX:this.state.pageX,mouseY:this.state.pageY+5},X.createElement(Iy,{className:"tooltipNetwork",markerIndex:t,marker:n,threadsKey:this.props.threadsKey,restrictHeightWidth:!0})):null)}}var uv=n(3826),hv={};hv.styleTagTransform=M(),hv.setAttributes=B(),hv.insert=S().bind(null,"head"),hv.domAPI=E(),hv.insertStyleElement=P(),w()(uv.Z,hv),uv.Z&&uv.Z.locals&&uv.Z.locals;class pv extends X.PureComponent{constructor(...e){super(...e),this._virtualListRef=X.createRef(),this._memoizedGetSpecialItems=_t()(((e,t,n)=>{const r=[void 0,void 0,void 0];return null!==e&&(r[0]=e),null!==t&&(r[1]=t),null!==n&&(r[2]=n),r}),{limit:1}),this._getSpecialItems=()=>{const{selectedNetworkMarkerIndex:e,rightClickedMarkerIndex:t,hoveredMarkerIndexFromState:n}=this.props;return this._memoizedGetSpecialItems(e,t,n)},this._onCopy=e=>{},this._onKeyDown=e=>{const t=e.ctrlKey||e.altKey,n=e.key.startsWith("Arrow")||e.key.startsWith("Page")||"Home"===e.key||"End"===e.key,r="*"===e.key,o="Enter"===e.key;if(t||!n&&!r&&!o)return;e.stopPropagation(),e.preventDefault();const a=this.props.selectedNetworkMarkerIndex,i=this.props.markerIndexes,s=i.findIndex((e=>e===a));if(null!==a&&-1!==s){if(n)switch(e.key){case"ArrowUp":if(e.metaKey){this._selectWithKeyboard(i[0]);break}s>0&&this._selectWithKeyboard(i[s-1]);break;case"ArrowDown":if(e.metaKey){this._selectWithKeyboard(i[i.length-1]);break}s<i.length-1&&this._selectWithKeyboard(i[s+1]);break;case"PageUp":if(s>0){const e=Math.max(0,s-16);this._selectWithKeyboard(i[e])}break;case"PageDown":if(s<i.length-1){const e=Math.min(i.length-1,s+16);this._selectWithKeyboard(i[e])}break;case"Home":this._selectWithKeyboard(i[0]);break;case"End":this._selectWithKeyboard(i[i.length-1]);break;default:throw new Error("Unhandled navigation key.")}}else this._selectWithKeyboard(i[0])},this._onRightClick=e=>{const{threadsKey:t,changeRightClickedMarker:n}=this.props;n(t,e)},this._onLeftClick=e=>{this._onSelectionChange(e,{source:"pointer"})},this._onSelectionChange=(e,t)=>{const{threadsKey:n,changeSelectedNetworkMarker:r}=this.props;r(n,e,t)},this._onRowHovered=e=>{const{threadsKey:t,changeHoveredMarker:n}=this.props;n(t,e)},this._onMouseLeaveRenderedList=()=>{const{threadsKey:e,changeHoveredMarker:t}=this.props;t(e,null)},this._shouldDisplayTooltips=()=>null===this.props.rightClickedMarkerIndex,this._renderRow=(e,t)=>{const{threadsKey:n,getMarker:r,rightClickedMarkerIndex:o,selectedNetworkMarkerIndex:a,hoveredMarkerIndexFromState:i,timeRange:s,width:l}=this.props,c=r(e),d=function(e){return e.data&&"Network"===e.data.type?e.data:null}(c);if(null===d)throw new Error(En`
|
131
|
+
The NetworkChart is supposed to only receive Network markers, but some other
|
132
|
+
kind of marker payload was passed in.
|
133
|
+
`);return X.createElement(dv,{index:t,marker:c,markerIndex:e,networkPayload:d,threadsKey:n,timeRange:s,width:l,shouldDisplayTooltips:this._shouldDisplayTooltips,isRightClicked:o===e,isHoveredFromState:i===e,onRightClick:this._onRightClick,isSelected:a===e,onLeftClick:this._onLeftClick,onHover:this._onRowHovered})}}componentDidMount(){this.focus(),this.scrollSelectionIntoView()}componentDidUpdate(e){this.props.scrollToSelectionGeneration>e.scrollToSelectionGeneration&&this.scrollSelectionIntoView()}focus(){this._virtualListRef.current&&this._virtualListRef.current.focus()}scrollSelectionIntoView(){const{selectedNetworkMarkerIndex:e,markerIndexes:t}=this.props,n=this._virtualListRef.current;if(n&&null!==e){const r=t.findIndex((t=>t===e));n.scrollItemIntoView(r,0)}}_selectWithKeyboard(e){this._onSelectionChange(e,{source:"keyboard"})}render(){const{selectedNetworkMarkerIndex:e,markerIndexes:t,width:n,timeRange:r,disableOverscan:o}=this.props,a=`${r.start}-${r.end}-${n}`;return X.createElement("div",{className:"networkChart",id:"network-chart-tab",role:"tabpanel","aria-labelledby":"network-chart-tab-button"},X.createElement(tv,null),0===t.length?X.createElement(ov,null):X.createElement(DA,{id:"MarkerContextMenu",attributes:{className:"treeViewContextMenu"}},X.createElement(cA,{className:"treeViewBody",ariaRole:"listbox",ariaLabel:"List of all network markers",ariaActiveDescendant:null!==e?`networkChartRowItem-${e}`:null,items:t,renderItem:this._renderRow,itemHeight:16,columnCount:1,focusable:!0,specialItems:this._getSpecialItems(),containerWidth:n,forceRender:a,disableOverscan:o,onCopy:this._onCopy,onKeyDown:this._onKeyDown,ref:this._virtualListRef,onMouseLeaveRenderedList:this._onMouseLeaveRenderedList})))}}const mv=nv(je({mapStateToProps:e=>({markerIndexes:Tu.getSearchFilteredNetworkMarkerIndexes(e),scrollToSelectionGeneration:Ts(e),getMarker:Tu.getMarkerGetter(e),selectedNetworkMarkerIndex:Tu.getSelectedNetworkMarkerIndex(e),rightClickedMarkerIndex:Tu.getRightClickedMarkerIndex(e),hoveredMarkerIndexFromState:Tu.getHoveredMarkerIndex(e),timeRange:Fs(e),disableOverscan:Ms(e).isModifying,threadsKey:mi(e)}),mapDispatchToProps:{changeSelectedNetworkMarker:Pp,changeRightClickedMarker:Mp,changeHoveredMarker:Np},component:pv}));class fv extends X.PureComponent{render(){const{thread:e,rangeFilteredThread:t,threadName:n}=this.props;let r;return r=0===e.samples.length?"This thread has no samples.":0===t.samples.length?"Broaden the selected range to view samples.":En`
|
134
|
+
Try broadening the selected range, removing search terms, or call tree transforms
|
135
|
+
to view samples.
|
136
|
+
`,X.createElement($A,{threadName:n,reason:r,viewName:"flame graph"})}}const gv=je({mapStateToProps:e=>({threadName:Tu.getFriendlyThreadName(e),thread:Tu.getThread(e),rangeFilteredThread:Tu.getRangeFilteredThread(e)}),component:fv});var Av=n(5885),bv={};bv.styleTagTransform=M(),bv.setAttributes=B(),bv.insert=S().bind(null,"head"),bv.domAPI=E(),bv.insertStyleElement=P(),w()(Av.Z,bv),Av.Z&&Av.Z.locals&&Av.Z.locals;const Cv=16;function yv(e){return Math.floor(e+.5)}function vv(e,t){return yv(e/t)*t}class wv extends X.PureComponent{constructor(...e){super(...e),this._textMeasurement=void 0,this._textMeasurementCssToDeviceScale=1,this._scrollSelectionIntoView=()=>{const{selectedCallNodeIndex:e,maxStackDepth:t,callNodeInfo:{callNodeTable:n}}=this.props;if(null===e)return;const r=(t-n.depth[e]-1)*Cv;r<this.props.viewport.viewportTop?this.props.viewport.moveViewport(0,this.props.viewport.viewportTop-r):r+Cv>this.props.viewport.viewportBottom&&this.props.viewport.moveViewport(0,this.props.viewport.viewportBottom-(r+Cv))},this._drawCanvas=(e,t,n)=>{const{thread:r,flameGraphTiming:o,callNodeInfo:{callNodeTable:a},stackFrameHeight:i,maxStackDepth:s,rightClickedCallNodeIndex:l,selectedCallNodeIndex:c,categories:d,viewport:{containerWidth:u,containerHeight:h,viewportTop:p,viewportBottom:m}}=this.props,{hoveredItem:f}=n,{cssToDeviceScale:g,cssToUserScale:A}=t;if(g!==A)throw new Error("FlameGraphCanvasImpl sets scaleCtxToCssPixels={false}, so canvas user space units should be equal to device pixels.");const b=u*g,C=h*g;e.font=10*g+"px sans-serif",this._textMeasurement&&this._textMeasurementCssToDeviceScale===g||(this._textMeasurement=new DC(e),this._textMeasurementCssToDeviceScale=g);const y=this._textMeasurement,v=new kh(e),w=Math.round(3*g);v.set("#ffffff"),e.fillRect(0,0,b,C);const k=Math.floor(s-m/i),E=Math.ceil(s-p/i);for(let t=k;t<E;t++){const n=o[t];if(!n)continue;const i=(s-t)*Cv-p,u=yv(((s-t-1)*Cv-p)*g),h=yv(i*g)-1-u,m=u+yv(11*g);for(let o=0;o<n.length;o++){const i=n.start[o],s=n.end[o]*b,p=vv(i*b,2),g=vv(s,2)-.8,A=g-p;if(A<=0)continue;const C=n.callNode[o],k=c===C,E=l===C,x=f&&t===f.depth&&o===f.flameGraphTimingIndex,S=k||E||x,T=ey(d[a.category[C]].color),B=S?T.selectedFillStyle:T.unselectedFillStyle;v.set(B),e.fillRect(p,u,A,h);const _=p+w,I=g-_;if(I>y.minWidth){const t=a.func[C],n=r.stringTable.getString(r.funcTable.name[t]),o=y.getFittedText(n,I);if(o){const t=S?T.selectedTextColor:"#000";v.set(t),e.fillText(o,_,m)}}}}},this._getTimingsForCallNodeIndex=_t()(lr,{cache:new(un())}),this._getHoveredStackInfo=({depth:e,flameGraphTimingIndex:t})=>{const{thread:n,unfilteredThread:r,sampleIndexOffset:o,flameGraphTiming:a,callTree:i,callNodeInfo:s,shouldDisplayTooltips:l,categories:c,interval:d,isInverted:u,callTreeSummaryStrategy:h,innerWindowIDToPageMap:p,weightType:m,samples:f,unfilteredSamples:g,tracedTiming:A,displayImplementation:b,displayStackType:C}=this.props;if(!l())return null;const y=a[e],v=y.callNode[t];let w=Dt(y.end[t]-y.start[t]);A&&(w=`${Rt("tracing-ms",!1,A.running[v])} (${w})`);const k=!n.isJsTracer&&"timing"===h;return X.createElement(oy,{thread:n,weightType:m,innerWindowIDToPageMap:p,interval:d,callNodeIndex:v,callNodeInfo:s,categories:c,durationText:w,callTree:i,callTreeSummaryStrategy:h,timings:k?this._getTimingsForCallNodeIndex(v,s,d,u,n,r,o,c,f,g,b):void 0,displayStackType:C})},this._onSelectItem=e=>{const t=this._getCallNodeIndexFromHoveredItem(e);this.props.onSelectionChange(t)},this._onRightClick=e=>{const t=this._getCallNodeIndexFromHoveredItem(e);this.props.onRightClick(t)},this._onDoubleClick=e=>{const t=this._getCallNodeIndexFromHoveredItem(e);this.props.onDoubleClick(t)},this._hitTest=(e,t)=>{const{flameGraphTiming:n,maxStackDepth:r,viewport:{viewportTop:o,containerWidth:a}}=this.props,i=e/a,s=Math.floor(r-(t+o)/Cv),l=n[s];if(!l)return null;for(let e=0;e<l.length;e++){const t=l.start[e],n=l.end[e];if(t<i&&n>i)return{depth:s,flameGraphTimingIndex:e}}return null}}componentDidUpdate(e){e.maxStackDepth!==this.props.maxStackDepth&&this.props.viewport.moveViewport(0,(e.maxStackDepth-this.props.maxStackDepth)*Cv),(!e.viewport.isSizeSet&&this.props.viewport.isSizeSet||this.props.scrollToSelectionGeneration>e.scrollToSelectionGeneration)&&this._scrollSelectionIntoView()}_getCallNodeIndexFromHoveredItem(e){if(null===e)return null;const{depth:t,flameGraphTimingIndex:n}=e,{flameGraphTiming:r}=this.props;return r[t].callNode[n]}render(){const{containerWidth:e,containerHeight:t,isDragging:n}=this.props.viewport;return X.createElement(FC,{className:"flameGraphCanvas",containerWidth:e,containerHeight:t,isDragging:n,scaleCtxToCssPixels:!1,onDoubleClickItem:this._onDoubleClick,getHoveredItemInfo:this._getHoveredStackInfo,drawCanvas:this._drawCanvas,hitTest:this._hitTest,onSelectItem:this._onSelectItem,onRightClick:this._onRightClick,drawCanvasAfterRaf:!1})}}const kv=xC(wv);var Ev=n(5246),xv={};xv.styleTagTransform=M(),xv.setAttributes=B(),xv.insert=S().bind(null,"head"),xv.domAPI=E(),xv.insertStyleElement=P(),w()(Ev.Z,xv),Ev.Z&&Ev.Z.locals&&Ev.Z.locals;class Sv extends X.PureComponent{constructor(...e){super(...e),this._viewport=null,this._onSelectedCallNodeChange=e=>{const{callNodeInfo:t,threadsKey:n,changeSelectedCallNode:r}=this.props;r(n,xr(e,t.callNodeTable))},this._onRightClickedCallNodeChange=e=>{const{callNodeInfo:t,threadsKey:n,changeRightClickedCallNode:r}=this.props;r(n,xr(e,t.callNodeTable))},this._onCallNodeEnterOrDoubleClick=e=>{if(null===e)return;const{callTree:t,updateBottomBoxContentsAndMaybeOpen:n}=this.props;n("flame-graph",t.getBottomBoxInfoForCallNode(e))},this._shouldDisplayTooltips=()=>null===this.props.rightClickedCallNodeIndex,this._takeViewportRef=e=>{this._viewport=e},this.focus=()=>{this._viewport&&this._viewport.focus()},this._wideEnough=e=>{const{flameGraphTiming:t,callNodeInfo:{callNodeTable:n}}=this.props,r=t[n.depth[e]],o=r.callNode.indexOf(e);return r.end[o]-r.start[o]>.001},this._nextSelectableInRow=(e,t)=>{const{flameGraphTiming:n,callNodeInfo:{callNodeTable:r}}=this.props;let o=e;const a=n[r.depth[o]];let i=a.callNode.indexOf(o);do{if(i+=t,o=a.callNode[i],a.end[i]-a.start[i]>.001)break}while(void 0!==o);return o},this._handleKeyDown=e=>{const{threadsKey:t,callTree:n,callNodeInfo:{callNodeTable:r},selectedCallNodeIndex:o,rightClickedCallNodeIndex:a,changeSelectedCallNode:i,handleCallNodeTransformShortcut:s}=this.props;if(["ArrowDown","ArrowUp","ArrowLeft","ArrowRight"].includes(e.key)){if(null===o)return void i(t,xr(0,r));switch(e.key){case"ArrowDown":{const e=r.prefix[o];-1!==e&&i(t,xr(e,r));break}case"ArrowUp":{const[e]=n.getChildren(o);void 0!==e&&this._wideEnough(e)&&i(t,xr(e,r));break}case"ArrowLeft":case"ArrowRight":{const n=this._nextSelectableInRow(o,"ArrowLeft"===e.key?-1:1);void 0!==n&&i(t,xr(n,r));break}default:console.error(`An unknown key "${e.key}" was pressed, this shouldn't happen.`)}return}const l=null!==a?a:o;null!==l&&("Enter"!==e.key?s(e,t,l):this._onCallNodeEnterOrDoubleClick(l))},this._onCopy=e=>{if(document.activeElement===this._viewport){e.preventDefault();const{callNodeInfo:{callNodeTable:t},selectedCallNodeIndex:n,thread:r}=this.props;if(null!==n){const o=t.func[n],a=r.stringTable.getString(r.funcTable.name[o]);e.clipboardData.setData("text/plain",a)}}}}componentDidMount(){document.addEventListener("copy",this._onCopy,!1)}componentWillUnmount(){document.removeEventListener("copy",this._onCopy,!1)}render(){const{thread:e,unfilteredThread:t,sampleIndexOffset:n,threadsKey:r,maxStackDepth:o,flameGraphTiming:a,callTree:i,callNodeInfo:s,timeRange:l,previewSelection:c,rightClickedCallNodeIndex:d,selectedCallNodeIndex:u,scrollToSelectionGeneration:h,callTreeSummaryStrategy:p,categories:m,interval:f,isInverted:g,innerWindowIDToPageMap:A,weightType:b,samples:C,unfilteredSamples:y,tracedTiming:v,displayImplementation:w,displayStackType:k}=this.props,E=16*o;return X.createElement("div",{className:"flameGraphContent",onKeyDown:this._handleKeyDown},X.createElement(DA,{id:"CallNodeContextMenu",attributes:{className:"treeViewContextMenu"}},X.createElement(kv,{key:r,viewportProps:{timeRange:l,maxViewportHeight:E,maximumZoom:1,previewSelection:c,startsAtBottom:!0,disableHorizontalMovement:!0,viewportNeedsUpdate:Tv,marginLeft:0,marginRight:0,containerRef:this._takeViewportRef},chartProps:{thread:e,innerWindowIDToPageMap:A,weightType:b,unfilteredThread:t,sampleIndexOffset:n,maxStackDepth:o,flameGraphTiming:a,callTree:i,callNodeInfo:s,categories:m,selectedCallNodeIndex:u,rightClickedCallNodeIndex:d,scrollToSelectionGeneration:h,callTreeSummaryStrategy:p,stackFrameHeight:16,onSelectionChange:this._onSelectedCallNodeChange,onRightClick:this._onRightClickedCallNodeChange,onDoubleClick:this._onCallNodeEnterOrDoubleClick,shouldDisplayTooltips:this._shouldDisplayTooltips,interval:f,isInverted:g,samples:C,unfilteredSamples:y,tracedTiming:v,displayImplementation:w,displayStackType:k}})))}}function Tv(){return!1}const Bv=je({mapStateToProps:e=>({thread:Tu.getFilteredThread(e),unfilteredThread:Tu.getThread(e),weightType:Tu.getWeightTypeForCallTree(e),sampleIndexOffset:Tu.getSampleIndexOffsetFromCommittedRange(e),maxStackDepth:Tu.getFilteredCallNodeMaxDepth(e),flameGraphTiming:Tu.getFlameGraphTiming(e),callTree:Tu.getCallTree(e),timeRange:Is(e),previewSelection:Ms(e),callNodeInfo:Tu.getCallNodeInfo(e),categories:Qs(e),threadsKey:mi(e),selectedCallNodeIndex:Tu.getSelectedCallNodeIndex(e),rightClickedCallNodeIndex:Tu.getRightClickedCallNodeIndex(e),scrollToSelectionGeneration:Ts(e),interval:Ls(e),isInverted:Xa(e),callTreeSummaryStrategy:Tu.getCallTreeSummaryStrategy(e),innerWindowIDToPageMap:Il(e),samples:Tu.getPreviewFilteredSamplesForCallTree(e),unfilteredSamples:Tu.getUnfilteredSamplesForCallTree(e),tracedTiming:Tu.getTracedTiming(e),displayImplementation:Gl(e),displayStackType:Hl(e)}),mapDispatchToProps:{changeSelectedCallNode:qh,changeRightClickedCallNode:Jh,handleCallNodeTransformShortcut:nm,updateBottomBoxContentsAndMaybeOpen:Xp},options:{forwardRef:!0},component:Sv});var _v=n(6604),Iv={};Iv.styleTagTransform=M(),Iv.setAttributes=B(),Iv.insert=S().bind(null,"head"),Iv.domAPI=E(),Iv.insertStyleElement=P(),w()(_v.Z,Iv),_v.Z&&_v.Z.locals&&_v.Z.locals;class Pv extends X.PureComponent{constructor(...e){super(...e),this._flameGraph=X.createRef(),this._onSwitchToNormalCallstackClick=()=>{this.props.changeInvertCallstack(!1)}}componentDidMount(){const e=this._flameGraph.current;e&&e.focus()}render(){const{isPreviewSelectionEmpty:e,invertCallstack:t}=this.props;return e?X.createElement(gv,null):t?X.createElement("div",{className:"flameGraphDisabledMessage"},X.createElement("h3",null,"The Flame Graph is not available for inverted call stacks"),X.createElement("p",null,X.createElement("button",{type:"button",onClick:this._onSwitchToNormalCallstackClick},"Switch to the normal call stack")," ","to show the Flame Graph.")):X.createElement(Bv,{ref:this._flameGraph})}}const Nv=je({mapStateToProps:e=>({invertCallstack:Xa(e),isPreviewSelectionEmpty:0===Tu.getPreviewFilteredCallNodeMaxDepth(e)}),mapDispatchToProps:{changeInvertCallstack:Op},component:Pv}),Mv=()=>X.createElement("div",{className:"flameGraph",id:"flame-graph-tab",role:"tabpanel","aria-labelledby":"flame-graph-tab-button"},X.createElement(xb,{hideInvertCallstack:!0}),X.createElement(eC,null),X.createElement(Nv,null));class Fv extends X.PureComponent{constructor(...e){super(...e),this.state={hasFirstDraw:!1},this._textMeasurement=void 0,this._textMeasurementCssToDeviceScale=1,this.drawCanvas=(e,t,n)=>{const{rowHeight:r,jsTracerTimingRows:o,viewport:{viewportTop:a,viewportBottom:i,containerWidth:s,containerHeight:l}}=this.props,{hoveredItem:c}=n,{cssToDeviceScale:d,cssToUserScale:u}=t;if(d!==u)throw new Error("JsTracerCanvasImpl sets scaleCtxToCssPixels={false}, so canvas user space units should be equal to device pixels.");e.font=10*d+"px sans-serif",this._textMeasurement&&this._textMeasurementCssToDeviceScale===d||(this._textMeasurement=new DC(e),this._textMeasurementCssToDeviceScale=d);const h={ctx:e,textMeasurement:this._textMeasurement,fastFillStyle:new kh(e),startRow:Math.floor(a/r),endRow:Math.min(Math.ceil(i/r),o.length),devicePixels:{containerWidth:s*d,innerContainerWidth:(s-In-_n)*d,containerHeight:l*d,textOffsetStart:3*d,textOffsetTop:11*d,rowHeight:r*d,viewportTop:a*d,timelineMarginLeft:In*d,timelineMarginRight:_n*d,oneCssPixel:d,rowLabelOffsetLeft:5*d}};{const{fastFillStyle:t,devicePixels:n}=h;t.set("#ffffff"),e.fillRect(0,0,n.containerWidth,n.containerHeight)}this.drawEvents(h,c),this.drawSeparatorsAndLabels(h),this.setState((e=>e.hasFirstDraw?null:{hasFirstDraw:!0}))},this.hitTest=(e,t)=>{if(e<In)return null;const{rangeStart:n,rangeEnd:r,jsTracerTimingRows:o,rowHeight:a,viewport:{viewportLeft:i,viewportRight:s,viewportTop:l,containerWidth:c}}=this.props,d=c-In-_n,u=r-n,h=s-i,p=n+(i+h*((e-In)/d))*u,m=o[Math.floor((t+l)/a)],f=u*h/d;if(!m)return null;for(let e=0;e<m.length;e++){const t=m.start[e],n=Math.max(t+f,m.end[e]);if(t<=p&&p<n)return m.index[e]}return null},this.onDoubleClickEvent=e=>{},this.getHoveredItemInfo=e=>null}drawOneEvent(e,t,n,r,o,a,i,s){const{ctx:l,textMeasurement:c,fastFillStyle:d,devicePixels:u}=e,h=s?"Highlight":UC,p=s?"HighlightText":"white";if(d.set(h),a>=1){l.fillRect(t,n+1,r,o-2);const e=t+u.textOffsetStart,a=Math.max(0,r-u.textOffsetStart);if(a>c.minWidth){const t=c.getFittedText(i,a);t&&(d.set(p),l.fillText(t,e,n+u.textOffsetTop))}}else{const e=.9*r+.1;l.fillRect(t,n+2,e,o-4)}}drawEvents(e,t){const{startRow:n,endRow:r,devicePixels:o}=e,{rangeStart:a,rangeEnd:i,jsTracerTimingRows:s,viewport:{viewportLeft:l,viewportRight:c}}=this.props,d=i-a,u=c-l;for(let i=n;i<r;i++){const n=s[i];if(!n)continue;const r=a+d*l,h=a+d*c+o.timelineMarginRight*(u*d/o.containerWidth),p=o.rowHeight-o.oneCssPixel,m=i*o.rowHeight-o.viewportTop;let f=o.timelineMarginLeft,g=f+1,A=0;const b=t=>{A>0&&(this.drawOneEvent(e,f,t,A,p,A,"",!1),f++,g++,A=0)};for(let i=0;i<n.length;i++){const s=n.start[i],c=n.end[i];if(c>r&&s<h){const r=(s-a)/d,h=(c-a)/d;let C=(r-l)*o.innerContainerWidth/u+o.timelineMarginLeft;const y=(h-r)*o.innerContainerWidth/u,v=n.label[i],w=t===n.index[i];if(0===y)continue;if(C+y<o.timelineMarginLeft)continue;if(C>o.containerWidth-o.timelineMarginRight)continue;let k=y;C<o.timelineMarginLeft&&(k-=o.timelineMarginLeft-C,C=o.timelineMarginLeft);const E=Math.ceil(C);if(C+k<=E){C>=g&&(b(m),f=Math.floor(C),g=f+1),A+=k;continue}C>g&&(b(m),f=E-1,g=E),C=E,A+=E-C,b(m);const x=Math.floor(k);this.drawOneEvent(e,C,m,x,p,y,v,w),f=C+x,g=C+x+1,A=k-x}b(m)}}}drawSeparatorsAndLabels(e){const{ctx:t,textMeasurement:n,fastFillStyle:r,startRow:o,endRow:a,devicePixels:i}=e,{jsTracerTimingRows:s}=this.props;r.set(bC.F_),t.fillRect(i.timelineMarginLeft-i.oneCssPixel,0,i.oneCssPixel,i.containerHeight);for(let e=o;e<a;e++){const n=(e+1)*i.rowHeight-i.viewportTop-i.oneCssPixel;t.fillRect(0,n,i.containerWidth,i.oneCssPixel)}r.set("#000000");for(let e=o;e<a;e++){const{name:r}=s[e];if(e>0&&r===s[e-1].name)continue;const o=n.getFittedText(r,i.timelineMarginLeft),a=e*i.rowHeight-i.viewportTop;t.fillText(o,i.rowLabelOffsetLeft,a+i.textOffsetTop)}}render(){const{containerWidth:e,containerHeight:t,isDragging:n}=this.props.viewport;return X.createElement(FC,{className:Xg()({jsTracerCanvasFadeIn:this.props.doFadeIn,jsTracerCanvas:!0,jsTracerCanvasDrawn:this.state.hasFirstDraw}),containerWidth:e,containerHeight:t,isDragging:n,onDoubleClickItem:this.onDoubleClickEvent,getHoveredItemInfo:this.getHoveredItemInfo,drawCanvas:this.drawCanvas,hitTest:this.hitTest,scaleCtxToCssPixels:!1})}}const Rv=xC(Fv);var Dv=n(8263),Lv={};Lv.styleTagTransform=M(),Lv.setAttributes=B(),Lv.insert=S().bind(null,"head"),Lv.domAPI=E(),Lv.insertStyleElement=P(),w()(Dv.Z,Lv),Dv.Z&&Dv.Z.locals&&Dv.Z.locals;class Ov extends X.PureComponent{getMaximumZoom(){const{timeRange:{start:e,end:t}}=this.props;return.001/(t-e)}render(){const{timeRange:e,threadsKey:t,jsTracerTable:n,jsTracerTimingRows:r,previewSelection:o,updatePreviewSelection:a,doFadeIn:i}=this.props,s=16*r.length;return X.createElement(Rv,{key:t,viewportProps:{timeRange:e,previewSelection:o,maxViewportHeight:s,viewportNeedsUpdate:Uv,maximumZoom:this.getMaximumZoom(),marginLeft:In,marginRight:_n},chartProps:{jsTracerTimingRows:r,jsTracerTable:n,updatePreviewSelection:a,rangeStart:e.start,rangeEnd:e.end,rowHeight:16,threadsKey:t,doFadeIn:i}})}}function Uv(e,t){return e.jsTracerTimingRows!==t.jsTracerTimingRows}const zv=je({mapStateToProps:(e,t)=>({timeRange:Is(e),stringTable:Tu.getStringTable(e),threadsKey:mi(e),previewSelection:Ms(e),jsTracerTimingRows:nt(t.showJsTracerSummary?Tu.getExpensiveJsTracerLeafTiming(e):Tu.getExpensiveJsTracerTiming(e),"The JS tracer information must exist when mounting this component")}),mapDispatchToProps:{updatePreviewSelection:Gp},component:Ov}),Gv=new WeakMap;class Wv extends X.PureComponent{constructor(e){super(e),this.state={readyToRenderExpensiveChart:!1},this._doFadeIn=!1;let t=Gv.get(e.profile);void 0===t&&(t=new Set,Gv.set(e.profile,t)),t.has(e.keyString)||(this._doFadeIn=!0,t.add(e.keyString))}componentDidMount(){this._doFadeIn&&requestAnimationFrame((()=>{requestAnimationFrame((()=>{this.setState({readyToRenderExpensiveChart:!0})}))}))}render(){const{jsTracerTable:e,showJsTracerSummary:t}=this.props;return this.state.readyToRenderExpensiveChart||!this._doFadeIn?X.createElement(zv,{doFadeIn:this._doFadeIn,jsTracerTable:e,showJsTracerSummary:t}):X.createElement("div",{className:"jsTracerLoader"},"Re-constructing tracing information from"," ",this.props.jsTracerTable.events.length.toLocaleString()," events. This might take a moment.")}}class Hv extends X.PureComponent{render(){const{profile:e,jsTracerTable:t,showJsTracerSummary:n,threadsKey:r}=this.props,o=`${r}-${n?"true":"false"}`;return X.createElement(Wv,{key:o,keyString:o,jsTracerTable:t,showJsTracerSummary:n,profile:e})}}var Vv=n(8032),jv={};jv.styleTagTransform=M(),jv.setAttributes=B(),jv.insert=S().bind(null,"head"),jv.domAPI=E(),jv.insertStyleElement=P(),w()(Vv.Z,jv),Vv.Z&&Vv.Z.locals&&Vv.Z.locals;class Zv extends X.PureComponent{constructor(...e){super(...e),this._onCheckboxChange=()=>{this.props.changeShowJsTracerSummary(!this.props.showJsTracerSummary)}}render(){const{showJsTracerSummary:e}=this.props;return X.createElement("div",{className:"jsTracerSettings"},X.createElement("ul",{className:"jsTracerSettingsList"},X.createElement("li",{className:"jsTracerSettingsListItem"},X.createElement("label",{className:"jsTracerSettingsLabel"},X.createElement("input",{type:"checkbox",className:"jsTracerSettingsCheckbox",onChange:this._onCheckboxChange,checked:e}),X.createElement(ue,{id:"JsTracerSettings--show-only-self-time",attrs:{title:!0}},X.createElement("span",null,"Show only self time"))))))}}const $v=je({mapStateToProps:e=>({showJsTracerSummary:ai(e)}),mapDispatchToProps:{changeShowJsTracerSummary:zp},component:Zv});class Kv extends X.PureComponent{render(){const{threadName:e}=this.props;return X.createElement($A,{threadName:e,reason:"This thread contains no JS tracer information.",viewName:"js-tracer"})}}const Yv=je({mapStateToProps:e=>({threadName:Tu.getFriendlyThreadName(e)}),component:Kv});class qv extends X.PureComponent{render(){const{profile:e,jsTracerTable:t,showJsTracerSummary:n,threadsKey:r}=this.props;return X.createElement("div",{className:"jsTracer"},null===t||0===t.events.length?X.createElement(Yv,null):X.createElement(X.Fragment,null,X.createElement($v,null),X.createElement(Hv,{profile:e,jsTracerTable:t,showJsTracerSummary:n,threadsKey:r})))}}const Jv=je({mapStateToProps:e=>({profile:Ds(e),threadsKey:mi(e),jsTracerTable:Tu.getJsTracerTable(e),showJsTracerSummary:ai(e)}),mapDispatchToProps:{updatePreviewSelection:Gp},component:qv});class Xv extends X.PureComponent{_selectContent(e){const t=e.currentTarget;t.focus(),t.select()}_unselectContent(e){e.currentTarget.setSelectionRange(0,0)}render(){const{tagName:e,content:t,className:n}=this.props,r=e||"div";return X.createElement(r,{className:Xg()(n,"can-select-content"),title:`${t}\n(click to select)`},X.createElement("input",{value:t,className:"can-select-content-input",onFocus:this._selectContent,onBlur:this._unselectContent,readOnly:!0}))}}function Qv({label:e,value:t,percentage:n,indent:r}){return X.createElement(X.Fragment,null,X.createElement("div",{className:Xg()({"sidebar-label":!0,"sidebar-label-indent":r})},e),X.createElement("div",{className:"sidebar-percentage"},n),X.createElement("div",{className:"sidebar-value"},t))}class ew extends X.PureComponent{constructor(...e){super(...e),this._orderedImplementations=["native","interpreter","blinterp","yjit","baseline","ion","unknown"]}render(){const{breakdown:e,number:t}=this.props,n=[];for(const t of this._orderedImplementations){const r=e[t];(r||"unknown"!==t)&&n.push({group:Dr(t),value:r||0})}const r=n.reduce(((e,t)=>e+t.value),0);return n.filter((({value:e})=>e)).map((({group:e,value:n})=>X.createElement(X.Fragment,{key:e},X.createElement(Qv,{label:e,value:t(n),percentage:Dt(n/r)}),X.createElement("div",{className:"sidebar-histogram-bar"},X.createElement("div",{className:"sidebar-histogram-bar-color",style:{width:Lt(n/r),backgroundColor:"var(--grey-50)"}})))))}}class tw extends X.PureComponent{constructor(...e){super(...e),this._toggleCategory=e=>{const{toggleOpenCategoryInSidebar:t,kind:n}=this.props,{categoryIndex:r}=e.target.dataset;t(n,parseInt(r,10))}}render(){const{breakdown:e,categoryList:t,number:n,sidebarOpenCategories:r,kind:o}=this.props,a=e.map(((e,n)=>{const r=t[n];return{categoryIndex:n,category:r,value:e.entireCategoryValue||0,subcategories:r.subcategories.map(((t,n)=>({index:n,name:t,value:e.subcategoryBreakdown[n]}))).sort((({value:e},{value:t})=>t-e)).filter((({value:e})=>e))}})).sort((({value:e},{value:t})=>t-e)).filter((({value:e})=>e)),i=a.reduce(((e,{value:t})=>e+Math.abs(t)),0);return X.createElement(X.Fragment,null,a.map((({category:e,value:t,subcategories:a,categoryIndex:s})=>{const l=function(e){return e.subcategories.length>1}(e),c=r.get(o),d=void 0!==c&&c.has(s);return X.createElement(X.Fragment,{key:`category-${s}`},X.createElement(Qv,{label:l?X.createElement("button",{type:"button","data-category-index":s,onClick:this._toggleCategory,className:Xg()({"sidebar-toggle":!0,expanded:d})},e.name):e.name,value:n(t),percentage:Dt(t/i)}),X.createElement("div",{className:"sidebar-histogram-bar"},X.createElement("div",{className:`sidebar-histogram-bar-color category-color-${e.color}`,style:{width:Lt(t/i)}})),l&&d?a.map((({index:e,name:t,value:r})=>X.createElement(Qv,{key:`subcategory-${e}`,label:t,value:n(r),percentage:Dt(r/i),indent:!0}))):null)})))}}const nw=je({mapStateToProps:e=>({sidebarOpenCategories:xc(e)}),mapDispatchToProps:{toggleOpenCategoryInSidebar:ff},component:tw});function rw(e){switch(e){case"tracing-ms":return"milliseconds";case"samples":return"sample count";case"bytes":return"bytes";default:throw Je(e,"Unhandled WeightType.")}}class ow extends X.PureComponent{constructor(...e){super(...e),this._getWeightTypeDetails=_t()((e=>{switch(e){case"tracing-ms":return{running:"Running time",self:"Self time",number:e=>Wt(e,3,1)};case"samples":return{running:"Running samples",self:"Self samples",number:e=>Mt(e,0)};case"bytes":return{running:"Running size",self:"Self size",number:e=>Ot(e)};default:throw Je(e,"Unhandled WeightType.")}}),{cache:new Map})}render(){const{selectedNodeIndex:e,name:t,lib:n,timings:r,categoryList:o,weightType:a,tracedTiming:i}=this.props,{forPath:{selfTime:s,totalTime:l},rootTime:c}=r;if(null===e)return X.createElement("div",{className:"sidebar sidebar-calltree"},X.createElement(ue,{id:"CallTreeSidebar--select-a-node"},X.createElement("div",{className:"sidebar-contents-wrapper"},"Select a node to display some information about it.")));const{number:d,running:u,self:h}=this._getWeightTypeDetails(a),p=Math.round(l.value/c*100),m=Math.round(s.value/c*100),f=l.breakdownByCategory,g=s.breakdownByCategory,A=l.breakdownByImplementation,b=s.breakdownByImplementation;return X.createElement("aside",{className:"sidebar sidebar-calltree"},X.createElement("div",{className:"sidebar-contents-wrapper"},X.createElement("header",{className:"sidebar-titlegroup"},X.createElement(Xv,{tagName:"h2",className:"sidebar-title",content:t}),n?X.createElement(Xv,{tagName:"p",className:"sidebar-subtitle",content:n}):null),X.createElement("h4",{className:"sidebar-title3"},X.createElement("div",null,"Call node details")),i?X.createElement(Qv,{label:"Traced running time",value:Wt(i.running[e],3,1)}):null,i?X.createElement(Qv,{label:"Traced self time",value:0===i.self[e]?"—":Wt(i.self[e],3,1)}):null,X.createElement(Qv,{label:u,value:l.value?`${d(l.value)}`:"—",percentage:p?p+"%":"—"}),X.createElement(Qv,{label:h,value:s.value?`${d(s.value)}`:"—",percentage:m?m+"%":"—"}),f?X.createElement(X.Fragment,null,X.createElement("h4",{className:"sidebar-title3 sidebar-title-label"},X.createElement("div",{className:"sidebar-title-label-left"},"Categories"),X.createElement("div",{className:"sidebar-title-label-right"},"Running ",rw(a))),X.createElement(nw,{kind:"total",breakdown:f,categoryList:o,number:d})):null,g?X.createElement(X.Fragment,null,X.createElement("h4",{className:"sidebar-title3 sidebar-title-label"},X.createElement("div",{className:"sidebar-title-label-left"},"Categories"),X.createElement("div",{className:"sidebar-title-label-right"},"Self ",rw(a))),X.createElement(nw,{kind:"self",breakdown:g,categoryList:o,number:d})):null,A&&l.value?X.createElement(X.Fragment,null,X.createElement("h4",{className:"sidebar-title3 sidebar-title-label"},X.createElement("div",null,"Implementation"),X.createElement("div",null,"Running ",rw(a))),X.createElement(ew,{breakdown:A,number:d})):null,b&&s.value?X.createElement(X.Fragment,null,X.createElement("h4",{className:"sidebar-title3 sidebar-title-label"},X.createElement("div",null,"Implementation"),X.createElement("div",null,"Self ",rw(a))),X.createElement(ew,{breakdown:b,number:d})):null))}}const aw=je({mapStateToProps:e=>({selectedNodeIndex:Tu.getSelectedCallNodeIndex(e),callNodeTable:Tu.getCallNodeInfo(e).callNodeTable,selectedThreadsKey:mi(e),name:Vr(Bu.getName(e)),lib:Bu.getLib(e),timings:Bu.getTimingsForSidebar(e),categoryList:Qs(e),weightType:Tu.getWeightTypeForCallTree(e),tracedTiming:Tu.getTracedTiming(e)}),component:ow});class iw extends X.PureComponent{render(){const{marker:e,markerIndex:t,selectedThreadsKey:n}=this.props;return null===e||null===t?X.createElement("div",{className:"sidebar sidebar-marker-table"},X.createElement(ue,{id:"MarkerSidebar--select-a-marker"},X.createElement("div",{className:"sidebar-contents-wrapper"},"Select a marker to display some information about it."))):X.createElement("aside",{className:"sidebar sidebar-marker-table"},X.createElement("div",{className:"sidebar-contents-wrapper"},X.createElement(Iy,{markerIndex:t,marker:e,threadsKey:n,restrictHeightWidth:!1})))}}const sw=je({mapStateToProps:e=>({marker:Tu.getSelectedMarker(e),markerIndex:Tu.getSelectedMarkerIndex(e),selectedThreadsKey:mi(e)}),component:iw});var lw=n(9689),cw={};function dw(e){return{calltree:aw,"flame-graph":aw,"stack-chart":null,"marker-chart":null,"marker-table":sw,"network-chart":null,"js-tracer":null}[e]}cw.styleTagTransform=M(),cw.setAttributes=B(),cw.insert=S().bind(null,"head"),cw.domAPI=E(),cw.insertStyleElement=P(),w()(lw.Z,cw),lw.Z&&lw.Z.locals&&lw.Z.locals;var uw=n(640),hw=n.n(uw),pw=n(1368),mw={};mw.styleTagTransform=M(),mw.setAttributes=B(),mw.insert=S().bind(null,"head"),mw.domAPI=E(),mw.insertStyleElement=P(),w()(pw.Z,mw),pw.Z&&pw.Z.locals&&pw.Z.locals;class fw extends X.PureComponent{constructor(...e){super(...e),this._hidingTimeout=null,this._onShow=()=>{clearTimeout(this._hidingTimeout),this.props.setContextMenuVisibility(!0)},this._onHide=()=>{this._hidingTimeout=setTimeout((()=>{this._hidingTimeout=null,this.props.setContextMenuVisibility(!1)}))},this._handleClick=(e,t)=>{const{type:n}=t,r=Qe(n);if(r)this.addTransformToStack(r);else switch(n){case"show-file":this.showFile();break;case"searchfox":this.lookupFunctionOnSearchfox();break;case"copy-function-name":this.copyFunctionName();break;case"copy-url":this.copyUrl();break;case"copy-stack":this.copyStack();break;case"expand-all":this.expandAll();break;default:throw new Error(`Unknown type ${n}`)}}}_getFunctionName(){const e=this.getRightClickedCallNodeInfo();if(null===e)throw new Error("The context menu assumes there is a selected call node and there wasn't one.");const{callNodeIndex:t,thread:{stringTable:n,funcTable:r},callNodeInfo:{callNodeTable:o}}=e,a=o.func[t],i=r.isJS[a],s=r.name[a],l=n.getString(s);return i?l:Vr(l)}lookupFunctionOnSearchfox(){const e=this._getFunctionName();window.open(`https://searchfox.org/mozilla-central/search?q=${encodeURIComponent(e)}`,"_blank")}copyFunctionName(){hw()(this._getFunctionName())}_getFilePath(){const e=this.getRightClickedCallNodeInfo();if(null===e)throw new Error("The context menu assumes there is a selected call node and there wasn't one.");const{callNodeIndex:t,thread:{stringTable:n,funcTable:r},callNodeInfo:{callNodeTable:o}}=e,a=o.func[t],i=r.fileName[a];return null===i?null:n.getString(i)}showFile(){const{updateBottomBoxContentsAndMaybeOpen:e,selectedTab:t}=this.props,n=this.getRightClickedCallNodeInfo();if(null===n)throw new Error("The context menu assumes there is a selected call node and there wasn't one.");const{callNodeIndex:r,thread:o,callNodeInfo:a}=n;e(t,Wr(r,a,o))}copyUrl(){const e=this._getFilePath();e&&hw()(e)}copyStack(){const e=this.getRightClickedCallNodeInfo();if(null===e)throw new Error("The context menu assumes there is a selected call node and there wasn't one.");const{callNodeIndex:t,thread:{funcTable:n,resourceTable:r,stringTable:o},callNodeInfo:{callNodeTable:a}}=e;let i="",s=t;do{const e=a.func[s],t=n.name[e],l=o.getString(t),c=Mr(e,n,r,o);i+=l+(c?` [${c}]\n`:"\n"),s=a.prefix[s]}while(-1!==s);hw()(i)}addTransformToStack(e){const{addTransformToStack:t,addCollapseResourceTransformToStack:n,implementation:r,inverted:o}=this.props,a=this.getRightClickedCallNodeInfo();if(null===a)throw new Error("The context menu assumes there is a selected call node and there wasn't one.");const{threadsKey:i,callNodePath:s,thread:l,callNodeIndex:c,callNodeInfo:{callNodeTable:d}}=a,u=s[s.length-1],h=d.category[c];switch(e){case"focus-subtree":t(i,{type:"focus-subtree",callNodePath:s,implementation:r,inverted:o});break;case"focus-function":t(i,{type:"focus-function",funcIndex:u});break;case"merge-call-node":t(i,{type:"merge-call-node",callNodePath:s,implementation:r});break;case"merge-function":t(i,{type:"merge-function",funcIndex:u});break;case"drop-function":t(i,{type:"drop-function",funcIndex:u});break;case"collapse-resource":{const{funcTable:e}=l;n(i,e.resource[u],r);break}case"collapse-direct-recursion":t(i,{type:"collapse-direct-recursion",funcIndex:u,implementation:r});break;case"collapse-recursion":t(i,{type:"collapse-recursion",funcIndex:u});break;case"collapse-function-subtree":t(i,{type:"collapse-function-subtree",funcIndex:u});break;case"focus-category":t(i,{type:"focus-category",category:h});break;case"filter-samples":throw new Error("Filter samples transform can't be applied from the call node context menu.");default:Je(e)}}expandAll(){const{expandAllCallNodeDescendants:e}=this.props,t=this.getRightClickedCallNodeInfo();if(null===t)throw new Error("The context menu assumes there is a selected call node and there wasn't one.");const{threadsKey:n,callNodeIndex:r,callNodeInfo:o}=t;e(n,r,o)}getNameForSelectedResource(){const e=this.getRightClickedCallNodeInfo();if(null===e)throw new Error("The context menu assumes there is a selected call node and there wasn't one.");const{callNodePath:t,thread:{funcTable:n,stringTable:r,resourceTable:o}}=e,a=t[t.length-1];if(void 0===a)return null;if(n.isJS[a]){const e=n.fileName[a];return null===e?null:r.getString(e)}const i=n.resource[a];if(-1===i)return null;const s=o.name[i];return r.getString(s)}isRecursiveCall(e){const t=this.getRightClickedCallNodeInfo();if(null===t)return console.error("The context menu assumes there is a selected call node and there wasn't one."),!1;const{callNodePath:n,thread:r}=t,o=n[n.length-1];return void 0!==o&&(n[n.length-2]===o||e(r,o))}getRightClickedCallNodeInfo(){const{thread:e,threadsKey:t,callNodeInfo:n,rightClickedCallNodePath:r,rightClickedCallNodeIndex:o}=this.props;return e&&null!==t&&n&&r&&"number"==typeof o?{thread:e,threadsKey:t,callNodeInfo:n,callNodePath:r,callNodeIndex:o}:null}renderContextMenuContents(){const{inverted:e,selectedTab:t,displaySearchfox:n,categories:r}=this.props,o=this.getRightClickedCallNodeInfo();if(null===o)return console.error("The context menu assumes there is a selected call node and there wasn't one."),X.createElement("div",null);const{callNodeIndex:a,thread:{funcTable:i},callNodeInfo:{callNodeTable:s}}=o,l=s.category[a],c=s.func[a],d=i.isJS[c],u=-1!==l,h=this.getNameForSelectedResource(),p=u?r[l].name:"",m="calltree"===t,f=this._getFilePath(),g=d&&f,A=f&&nr(f).path.match(/[^\\/]+$/)?.[0];return X.createElement(X.Fragment,null,A?X.createElement(X.Fragment,null,this.renderMenuItemWithShortcut({l10nId:"CallNodeContextMenu--show-file",l10nProps:{vars:{fileName:A},elems:{strong:X.createElement("strong",null)}},onClick:this._handleClick,data:{type:"show-file"},shortcut:"⏎",content:`Show <strong>${A}</strong>`}),X.createElement("div",{className:"react-contextmenu-separator"})):null,this.renderTransformMenuItem({l10nId:"CallNodeContextMenu--transform-merge-function",shortcut:"m",icon:"Merge",onClick:this._handleClick,transform:"merge-function",title:"",content:"Merge function"}),e?null:this.renderTransformMenuItem({l10nId:"CallNodeContextMenu--transform-merge-call-node",shortcut:"M",icon:"Merge",onClick:this._handleClick,transform:"merge-call-node",title:"",content:"Merge node only"}),this.renderTransformMenuItem({l10nId:e?"CallNodeContextMenu--transform-focus-function-inverted":"CallNodeContextMenu--transform-focus-function",shortcut:"f",icon:"Focus",onClick:this._handleClick,transform:"focus-function",title:"",content:e?"Focus on function (inverted)":"Focus on function"}),this.renderTransformMenuItem({l10nId:"CallNodeContextMenu--transform-focus-subtree",shortcut:"F",icon:"Focus",onClick:this._handleClick,transform:"focus-subtree",title:"",content:"Focus on subtree only"}),u?this.renderTransformMenuItem({l10nId:"CallNodeContextMenu--transform-focus-category",l10nProps:{vars:{categoryName:p},elems:{strong:X.createElement("strong",null)}},shortcut:"g",icon:"Focus",onClick:this._handleClick,transform:"focus-category",title:"",content:"Focus on category"}):null,this.renderTransformMenuItem({l10nId:"CallNodeContextMenu--transform-collapse-function-subtree",shortcut:"c",icon:"Collapse",onClick:this._handleClick,transform:"collapse-function-subtree",title:"",content:"Collapse function"}),h?this.renderTransformMenuItem({l10nId:"CallNodeContextMenu--transform-collapse-resource",l10nProps:{vars:{nameForResource:h},elems:{strong:X.createElement("strong",null)}},shortcut:"C",icon:"Collapse",onClick:this._handleClick,transform:"collapse-resource",title:"",content:`Collapse <strong>${h}</strong>`}):null,this.isRecursiveCall(Jo)?this.renderTransformMenuItem({l10nId:"CallNodeContextMenu--transform-collapse-recursion",shortcut:"r",icon:"Collapse",onClick:this._handleClick,transform:"collapse-recursion",title:"",content:"Collapse recursion"}):null,this.isRecursiveCall(((e,t)=>qo(e,this.props.implementation,t)))?this.renderTransformMenuItem({l10nId:"CallNodeContextMenu--transform-collapse-direct-recursion-only",shortcut:"R",icon:"Collapse",onClick:this._handleClick,transform:"collapse-direct-recursion",title:"",content:"Collapse direct recursion only"}):null,this.renderTransformMenuItem({l10nId:"CallNodeContextMenu--transform-drop-function",shortcut:"d",icon:"Drop",onClick:this._handleClick,transform:"drop-function",title:"",content:"Drop samples with this function"}),X.createElement("div",{className:"react-contextmenu-separator"}),m?X.createElement(X.Fragment,null,this.renderMenuItemWithShortcut({l10nId:"CallNodeContextMenu--expand-all",onClick:this._handleClick,data:{type:"expand-all"},shortcut:"*",content:"Expand all"}),X.createElement("div",{className:"react-contextmenu-separator"})):null,n?X.createElement(ue,{id:"CallNodeContextMenu--searchfox"},X.createElement(IA,{onClick:this._handleClick,data:{type:"searchfox"}},"Look up the function name on Searchfox")):null,X.createElement(ue,{id:"CallNodeContextMenu--copy-function-name"},X.createElement(IA,{onClick:this._handleClick,data:{type:"copy-function-name"}},"Copy function name")),g?X.createElement(ue,{id:"CallNodeContextMenu--copy-script-url"},X.createElement(IA,{onClick:this._handleClick,data:{type:"copy-url"}},"Copy script URL")):null,X.createElement(ue,{id:"CallNodeContextMenu--copy-stack"},X.createElement(IA,{onClick:this._handleClick,data:{type:"copy-stack"}},"Copy stack")))}renderTransformMenuItem(e){return X.createElement(IA,{onClick:e.onClick,data:{type:e.transform}},X.createElement("span",{className:`react-contextmenu-icon callNodeContextMenuIcon${e.icon}`}),X.createElement(ue,{id:e.l10nId,attrs:{title:!0},...e.l10nProps},X.createElement(Aw,{className:"react-contextmenu-item-content",title:e.title},e.content)),X.createElement("kbd",{className:"callNodeContextMenuShortcut"},e.shortcut))}renderMenuItemWithShortcut(e){return X.createElement(IA,{onClick:e.onClick,data:{type:e.data.type}},X.createElement(ue,{id:e.l10nId,...e.l10nProps},X.createElement("div",{className:"react-contextmenu-item-content"},e.content)),X.createElement("kbd",{className:"callNodeContextMenuShortcut"},e.shortcut))}render(){return null===this.getRightClickedCallNodeInfo()?null:X.createElement(iC,{id:"CallNodeContextMenu",className:"callNodeContextMenu",onShow:this._onShow,onHide:this._onHide},this.renderContextMenuContents())}}const gw=je({mapStateToProps:e=>{const t=fu(e);let n=null,r=null,o=null,a=null,i=null;if(null!==t){const s=xu(t.threadsKey);n=s.getFilteredThread(e),r=t.threadsKey,o=s.getCallNodeInfo(e),a=t.callNodePath,i=s.getRightClickedCallNodeIndex(e)}return{thread:n,threadsKey:r,categories:Qs(e),callNodeInfo:o,rightClickedCallNodePath:a,rightClickedCallNodeIndex:i,implementation:qa(e),inverted:Xa(e),selectedTab:ui(e),displaySearchfox:Wl(e)}},mapDispatchToProps:{addTransformToStack:Vp,addCollapseResourceTransformToStack:jp,expandAllCallNodeDescendants:Bp,updateBottomBoxContentsAndMaybeOpen:Xp,setContextMenuVisibility:lp},component:fw});function Aw(e){return X.createElement("div",{className:e.className,title:En`${e.title}`},e.children)}var bw=n(6889),Cw={};Cw.styleTagTransform=M(),Cw.setAttributes=B(),Cw.insert=S().bind(null,"head"),Cw.domAPI=E(),Cw.insertStyleElement=P(),w()(bw.Z,Cw),bw.Z&&bw.Z.locals&&bw.Z.locals;class yw extends X.PureComponent{constructor(...e){super(...e),this._setStartRange=e=>{const{updatePreviewSelection:t,previewSelection:n,committedRange:r}=this.props;t({hasSelection:!0,isModifying:!1,selectionStart:e,selectionEnd:n.hasSelection?n.selectionEnd:r.end})},this._setEndRange=e=>{const{updatePreviewSelection:t,committedRange:n,previewSelection:r}=this.props,o=r.hasSelection?r.selectionStart:n.start;e===o&&(e+=1e-4),t({hasSelection:!0,isModifying:!1,selectionStart:o,selectionEnd:e})},this.setStartRangeFromMarkerStart=()=>{const{marker:e}=this.props;this._setStartRange(e.start)},this.setStartRangeFromMarkerEnd=()=>{const{marker:e}=this.props;this._setStartRange(e.end||e.start)},this.setEndRangeFromMarkerStart=()=>{const{marker:e}=this.props;this._setEndRange(e.start)},this.setEndRangeFromMarkerEnd=()=>{const{marker:e}=this.props;this._setEndRange(e.end||e.start)},this.setRangeByDuration=()=>{const{marker:e,updatePreviewSelection:t}=this.props;null!==e.end&&t({hasSelection:!0,isModifying:!1,selectionStart:e.start,selectionEnd:e.end})},this.copyMarkerJSON=()=>{hw()(JSON.stringify(this.props.marker,null,2))},this.copyMarkerDescription=()=>{const{markerIndex:e,getMarkerLabelToCopy:t}=this.props;hw()(t(e))},this.copyMarkerCause=()=>{const{marker:e}=this.props;if(e.data&&e.data.cause){const t=this._convertStackToString(e.data.cause.stack);t?hw()(t):hw()("The stack is empty because all of its frames are filtered out by the implementation filter. Switch the implementation filter in the call tree to see more frames.")}},this.copyUrl=()=>{const{marker:e}=this.props;e.data&&"Network"===e.data.type&&hw()(e.data.URI)},this.copyPageUrl=()=>{const{marker:e,innerWindowIDToPageMap:t}=this.props,{data:n}=e;if(!n||!n.innerWindowID||!t)return;const r=t.get(n.innerWindowID);r&&hw()(r.url)},this.selectOtherThreadForIPCMarkers=()=>{const{marker:e,selectTrackFromTid:t}=this.props;if(!e.data||"IPC"!==e.data.type)return;const{data:n}=e,r="sending"===n.direction?n.recvTid:n.sendTid;r?t(r):console.warn("Unable to find the other tid for IPC marker")},this._hidingTimeout=null,this._onHide=()=>{this._hidingTimeout=setTimeout((()=>{this._hidingTimeout=null,this.props.setContextMenuVisibility(!1)}))},this._onShow=()=>{clearTimeout(this._hidingTimeout),this.props.setContextMenuVisibility(!0)}}_isZeroDurationMarker(e){return!e||null===e.end}_convertStackToString(e){const{thread:t,implementationFilter:n}=this.props;return null===t?"":Rr(Yo(t,n,Sr(t,e)),t).map((({funcName:e,origin:t})=>`${e} [${t}]`)).join("\n")}maybeRenderIPCMarkerMenuItem(){const{marker:e,profiledThreadIds:t}=this.props,{data:n}=e;if(!n||"IPC"!==n.type)return null;let r;switch(n.direction){case"sending":if(!n.recvTid)return console.warn("Unable to find the receiver tid for IPC marker"),null;if(!t.has(n.recvTid))return console.warn("Unable to find the receiver thread for IPC marker"),null;r=X.createElement(ue,{id:"MarkerContextMenu--select-the-receiver-thread",vars:{threadName:n.recvThreadName},elems:{strong:X.createElement("strong",null)}},X.createElement(X.Fragment,null,"Select the receiver thread “",X.createElement("strong",null,n.recvThreadName),"”"));break;case"receiving":if(!n.sendTid)return console.warn("Unable to find the sender tid for IPC marker"),null;if(!t.has(n.sendTid))return console.warn("Unable to find the sender thread for IPC marker"),null;r=X.createElement(ue,{id:"MarkerContextMenu--select-the-sender-thread",vars:{threadName:n.sendThreadName},elems:{strong:X.createElement("strong",null)}},X.createElement(X.Fragment,null,"Select the sender thread “",X.createElement("strong",null,n.sendThreadName),"”"));break;default:throw Je(n.direction,"Unhandled IPC marker direction type.")}return X.createElement(IA,{onClick:this.selectOtherThreadForIPCMarkers},X.createElement("span",{className:"react-contextmenu-icon markerContextMenuSelectThread"}),r)}maybeRenderCopyPageUrlItem(){const{marker:e,innerWindowIDToPageMap:t}=this.props,{data:n}=e;return n&&n.innerWindowID&&t&&t.get(n.innerWindowID)?X.createElement(IA,{onClick:this.copyPageUrl},X.createElement("span",{className:"react-contextmenu-icon markerContextMenuIconCopyUrl"}),X.createElement(ue,{id:"MarkerContextMenu--copy-page-url"},"Copy page URL")):null}render(){const{marker:e,previewSelection:t,committedRange:n}=this.props,{data:r}=e,o=t.hasSelection?t.selectionEnd:n.end,a=t.hasSelection?t.selectionStart:n.start,i=e.end||e.start,s=e.start;return X.createElement(iC,{id:"MarkerContextMenu",className:"markerContextMenu",onShow:this._onShow,onHide:this._onHide},X.createElement(IA,{onClick:this.setRangeByDuration,disabled:this._isZeroDurationMarker(e)},X.createElement("span",{className:"react-contextmenu-icon markerContextMenuIconSetSelectionFromMarker"}),X.createElement(ue,{id:"MarkerContextMenu--set-selection-from-duration"},"Set selection from marker’s duration")),X.createElement("div",{className:"react-contextmenu-separator"}),this._isZeroDurationMarker(e)?X.createElement(X.Fragment,null,X.createElement(IA,{onClick:this.setStartRangeFromMarkerStart},X.createElement("span",{className:"react-contextmenu-icon markerContextMenuIconStartSelectionHere"}),X.createElement(ue,{id:"MarkerContextMenu--start-selection-here"},"Start selection here")),X.createElement(IA,{onClick:this.setEndRangeFromMarkerEnd},X.createElement("span",{className:"react-contextmenu-icon markerContextMenuIconEndSelectionHere"}),X.createElement(ue,{id:"MarkerContextMenu--end-selection-here"},"End selection here"))):X.createElement(X.Fragment,null,X.createElement(IA,{onClick:this.setStartRangeFromMarkerStart},X.createElement("span",{className:"react-contextmenu-icon markerContextMenuIconStartSelectionAtMarkerStart"}),X.createElement(ue,{id:"MarkerContextMenu--start-selection-at-marker-start",elems:{strong:X.createElement("strong",null)}},X.createElement("div",{className:"react-contextmenu-item-content"},"Start selection at marker’s ",X.createElement("strong",null,"start")))),X.createElement(IA,{onClick:this.setStartRangeFromMarkerEnd,disabled:i>o},X.createElement("span",{className:"react-contextmenu-icon markerContextMenuIconStartSelectionAtMarkerEnd"}),X.createElement(ue,{id:"MarkerContextMenu--start-selection-at-marker-end",elems:{strong:X.createElement("strong",null)}},X.createElement("div",{className:"react-contextmenu-item-content"},"Start selection at marker’s ",X.createElement("strong",null,"end")))),X.createElement("div",{className:"react-contextmenu-separator"}),X.createElement(IA,{onClick:this.setEndRangeFromMarkerStart,disabled:a>s},X.createElement("span",{className:"react-contextmenu-icon markerContextMenuIconEndSelectionAtMarkerStart"}),X.createElement(ue,{id:"MarkerContextMenu--end-selection-at-marker-start",elems:{strong:X.createElement("strong",null)}},X.createElement("div",{className:"react-contextmenu-item-content"},"End selection at marker’s ",X.createElement("strong",null,"start")))),X.createElement(IA,{onClick:this.setEndRangeFromMarkerEnd},X.createElement("span",{className:"react-contextmenu-icon markerContextMenuIconEndSelectionAtMarkerEnd"}),X.createElement(ue,{id:"MarkerContextMenu--end-selection-at-marker-end",elems:{strong:X.createElement("strong",null)}},X.createElement("div",{className:"react-contextmenu-item-content"},"End selection at marker’s ",X.createElement("strong",null,"end"))))),X.createElement("div",{className:"react-contextmenu-separator"}),X.createElement(IA,{onClick:this.copyMarkerDescription},X.createElement("span",{className:"react-contextmenu-icon markerContextMenuIconCopyDescription"}),X.createElement(ue,{id:"MarkerContextMenu--copy-description"},"Copy description")),r&&r.cause?X.createElement(IA,{onClick:this.copyMarkerCause},X.createElement("span",{className:"react-contextmenu-icon markerContextMenuIconCopyStack"}),X.createElement(ue,{id:"MarkerContextMenu--copy-call-stack"},"Copy call stack")):null,r&&"Network"===r.type?X.createElement(IA,{onClick:this.copyUrl},X.createElement("span",{className:"react-contextmenu-icon markerContextMenuIconCopyUrl"}),X.createElement(ue,{id:"MarkerContextMenu--copy-url"},"Copy URL")):null,this.maybeRenderCopyPageUrlItem(),X.createElement(IA,{onClick:this.copyMarkerJSON},X.createElement("span",{className:"react-contextmenu-icon markerContextMenuIconCopyPayload"}),X.createElement(ue,{id:"MarkerContextMenu--copy-as-json"},"Copy as JSON")),this.maybeRenderIPCMarkerMenuItem())}}const vw=je({mapStateToProps:(e,t)=>{const{threadsKey:n,markerIndex:r}=t.rightClickedMarkerInfo,o=xu(n);return{markerIndex:r,marker:o.getMarkerGetter(e)(r),previewSelection:Ms(e),committedRange:Is(e),implementationFilter:qa(e),thread:o.getThread(e),getMarkerLabelToCopy:o.getMarkerLabelToCopyGetter(e),profiledThreadIds:zl(e),innerWindowIDToPageMap:Il(e)}},mapDispatchToProps:{updatePreviewSelection:Gp,setContextMenuVisibility:lp,selectTrackFromTid:op},component:yw});class ww extends X.PureComponent{render(){const{rightClickedMarkerInfo:e}=this.props;return null===e?null:X.createElement(vw,{rightClickedMarkerInfo:e})}}const kw=je({mapStateToProps:e=>({rightClickedMarkerInfo:lu(e)}),component:ww});var Ew=n(8688),xw={};xw.styleTagTransform=M(),xw.setAttributes=B(),xw.insert=S().bind(null,"head"),xw.domAPI=E(),xw.insertStyleElement=P(),w()(Ew.Z,xw),Ew.Z&&Ew.Z.locals&&Ew.Z.locals;class Sw extends X.PureComponent{constructor(...e){super(...e),this._onSelectTab=e=>{const{changeSelectedTab:t}=this.props,n=Xe(e);if(!n)throw new Error("Attempted to change to a tab that does not exist.");t(n)},this._onClickSidebarButton=()=>{const{selectedTab:e,isSidebarOpen:t,changeSidebarOpenState:n}=this.props;n(e,!t)}}render(){const{visibleTabs:e,selectedTab:t,isSidebarOpen:n}=this.props,r=null!==dw(t);return X.createElement("div",{className:"Details"},X.createElement("div",{className:"Details-top-bar"},X.createElement(tA,{selectedTabSlug:t,visibleTabs:e,onSelectTab:this._onSelectTab}),r?X.createElement(ue,{id:n?"Details--close-sidebar-button":"Details--open-sidebar-button",attrs:{title:!0},vars:{isSidebarOpen:n}},X.createElement("button",{className:Xg()("sidebar-open-close-button","photon-button","photon-button-ghost",{"sidebar-open-close-button-isopen":n,"sidebar-open-close-button-isclosed":!n}),title:n?"Close the sidebar":"Open the sidebar",type:"button",onClick:this._onClickSidebarButton})):null),X.createElement(ue,{id:"Details--error-boundary-message",attrs:{message:!0}},X.createElement(Kg,{key:t,message:"Uh oh, some unknown error happened in this panel"},{calltree:X.createElement(tC,null),"flame-graph":X.createElement(Mv,null),"stack-chart":X.createElement(zy,null),"marker-chart":X.createElement(Jy,null),"marker-table":X.createElement(AC,null),"network-chart":X.createElement(mv,null),"js-tracer":X.createElement(Jv,null)}[t])),X.createElement(gw,null),X.createElement(kw,null))}}const Tw=je({mapStateToProps:e=>({visibleTabs:Tu.getUsefulTabs(e),selectedTab:ui(e),isSidebarOpen:sc(e)}),mapDispatchToProps:{changeSelectedTab:jm,changeSidebarOpenState:qm},component:Sw});var Bw=n(3456),_w={};_w.styleTagTransform=M(),_w.setAttributes=B(),_w.insert=S().bind(null,"head"),_w.domAPI=E(),_w.insertStyleElement=P(),w()(Bw.Z,_w),Bw.Z&&Bw.Z.locals&&Bw.Z.locals;const Iw=je({mapStateToProps:e=>({selectedTab:ui(e),isSidebarOpen:sc(e)}),mapDispatchToProps:{invalidatePanelLayout:Jm},component:function({selectedTab:e,isSidebarOpen:t,invalidatePanelLayout:n}){const r=dw(e);return X.createElement(qg(),{customClassName:"DetailsContainer",percentage:!0,secondaryInitialSize:20,onDragEnd:n},X.createElement(Tw,null),r&&t?X.createElement(r,null):null)}});function Pw(e,t){return{type:"SOURCE_CODE_LOADING_BEGIN_URL",file:e,url:t}}function Nw(e){return{type:"SOURCE_CODE_LOADING_BEGIN_BROWSER_CONNECTION",file:e}}function Mw(e,t){return{type:"SOURCE_CODE_LOADING_SUCCESS",file:e,code:t}}function Fw(e,t){return{type:"SOURCE_CODE_LOADING_ERROR",file:e,errors:t}}function Rw(e,t){return{type:"ASSEMBLY_CODE_LOADING_BEGIN_URL",nativeSymbolKey:e,url:t}}function Dw(e){return{type:"ASSEMBLY_CODE_LOADING_BEGIN_BROWSER_CONNECTION",nativeSymbolKey:e}}function Lw(e,t){return{type:"ASSEMBLY_CODE_LOADING_SUCCESS",nativeSymbolKey:e,instructions:t}}function Ow(e,t){return{type:"ASSEMBLY_CODE_LOADING_ERROR",nativeSymbolKey:e,errors:t}}class Uw{constructor(e){this._uint8Array=void 0,this._bufferView=void 0,this._position=0,this._asciiDecoder=new TextDecoder("ascii",{fatal:!0}),this._uint8Array=new Uint8Array(e),this._bufferView=new DataView(e)}readString(e){const t=this.readBuffer(e),n=t.indexOf(0);return-1===n?this._asciiDecoder.decode(t):this._asciiDecoder.decode(t.subarray(0,n))}readBuffer(e){const t=this._uint8Array.subarray(this.position(),this.position()+e);return this.seekBy(e),t}seekBy(e){this._position+=e}seekTo(e){this._position=e}peekUint32(){return this._bufferView.getUint32(this.position(),!0)}position(){return this._position}size(){return this._bufferView.byteLength}}function zw(e,t){const n=parseInt(e,t);if(isNaN(n))throw new Error("Parsing number failed");return n}function Gw(e,t){return""===e?null:zw(e,t)}class Ww{static parse(e){let t=new Uint8Array(e);const n=[],r=new TextDecoder("utf-8",{fatal:!0});for(;t.length>0;){const e=t.indexOf(32);if(-1===e)throw new Error("Expected space character");const o=zw(r.decode(t.subarray(0,e)),10),a=r.decode(t.subarray(0,o)).match(/^\d+ ([^=]+)=(.*)\n$/);if(null===a)throw new Error("Invalid PAX header data format.");const i=a[1];let s=a[2];0===s.length?s=null:/^\d+$/.test(s)&&(s=zw(s,10));const l={name:i,value:s};n.push(l),t=t.subarray(o)}return new Ww(n)}constructor(e){this._fields=void 0,this._fields=e}applyHeader(e){for(const t of this._fields){let n=t.name;const r=t.value;"path"===n?(n="name",void 0!==e.namePrefix&&delete e.namePrefix):"linkpath"===n&&(n="linkname"),null===r?delete e[n]:e[n]=r}}}class Hw{constructor(e){this._reader=void 0,this._globalPaxHeader=null,this._reader=new Uw(e)}hasNext(){return this._reader.position()+4<this._reader.size()&&0!==this._reader.peekUint32()}next(){return this._readNextFile()}_readNextFile(){const e=this._reader,t=e.position();let n=e.readString(100);const r=e.readString(8),o=Gw(e.readString(8),8),a=Gw(e.readString(8),8),i=zw(e.readString(12),8),s=Gw(e.readString(12),8),l=Gw(e.readString(8),10),c=e.readString(1),d=e.readString(100),u=e.readString(6);let h=null,p=null,m=null,f=null,g=null,A=null;u.indexOf("ustar")>-1&&(h=e.readString(2),p=e.readString(32),m=e.readString(32),f=Gw(e.readString(8),10),g=Gw(e.readString(8),10),A=e.readString(155),A.length>0&&(n=A+"/"+n));const b=t+512,C=b+(1+(i-1|511));if(e.seekTo(b),"g"===c)return this._globalPaxHeader=Ww.parse(e.readBuffer(i)),e.seekTo(C),this._readNextFile();if("x"===c){const t=Ww.parse(e.readBuffer(i));e.seekTo(C);const n=this._readNextFile();return t.applyHeader(n),n}const y="0"===c||""===c||"7"===c?e.readBuffer(i):null;e.seekTo(C);const v={name:n,type:c,buffer:y,mode:r,uid:o,gid:a,size:i,mtime:s,checksum:l,linkname:d,ustarFormat:u,version:h,uname:p,gname:m,devmajor:f,devminor:g,namePrefix:A};return null!==this._globalPaxHeader&&this._globalPaxHeader.applyHeader(v),v}}async function Vw(e,t,n,r,o){const a=[];try{const n=await r.queryBrowserSymbolicationApi(e,t);try{const e=JSON.parse(n);if(!e.error)return{type:"SUCCESS",convertedResponse:o(e)};a.push({type:"BROWSER_API_ERROR",apiErrorMessage:e.error})}catch(e){a.push({type:"BROWSER_API_MALFORMED_RESPONSE",errorMessage:e.toString()})}}catch(e){a.push({type:"BROWSER_CONNECTION_ERROR",browserConnectionErrorMessage:e.toString()})}if(null!==n){const i=n+e;try{const e=await r.fetchUrlResponse(i,t),n=await e.text();try{const e=JSON.parse(n);if(!e.error)return{type:"SUCCESS",convertedResponse:o(e)};a.push({type:"SYMBOL_SERVER_API_ERROR",apiErrorMessage:e.error})}catch(e){a.push({type:"SYMBOL_SERVER_API_MALFORMED_RESPONSE",errorMessage:e.toString()})}}catch(e){a.push({type:"NETWORK_ERROR",url:i,networkErrorMessage:e.toString()})}}return{type:"ERROR",errors:a}}class jw{constructor(e,t){this._browserConnection=void 0,this._callbacks=void 0,this._browserConnection=e,this._callbacks=t}async fetchUrlResponse(e,t){this._callbacks.onBeginUrlRequest(e);const n=void 0!==t?{body:t,method:"POST",mode:"cors",credentials:"omit"}:{credentials:"omit"},r=await fetch(e,n);if(200!==r.status)throw new Error(`The request to ${e} returned HTTP status ${r.status}`);return r}async queryBrowserSymbolicationApi(e,t){const n=this._browserConnection;if(null===n)throw new Error("No connection to the browser.");return this._callbacks.onBeginBrowserConnectionQuery(),n.querySymbolicationApi(e,t)}}function Zw(e){if(!("source"in e)||"string"!=typeof e.source)throw new Error('No string "source" property on API response');return e.source}class $w extends X.PureComponent{constructor(...e){super(...e),this._archiveCache=new Map}componentDidMount(){this._triggerSourceLoadingIfNeeded()}componentDidUpdate(){this._triggerSourceLoadingIfNeeded()}_triggerSourceLoadingIfNeeded(){const{sourceViewFile:e,sourceViewCode:t}=this.props;e&&!t&&this._fetchSourceForFile(e)}async _fetchSourceForFile(e){const{beginLoadingSourceCodeFromUrl:t,beginLoadingSourceCodeFromBrowserConnection:n,finishLoadingSourceCode:r,failLoadingSourceCode:o,symbolServerUrl:a,profile:i,browserConnection:s}=this.props,l=null!==i?function(e,t){const{libs:n}=e;for(const r of e.threads){const{frameTable:e,funcTable:o,resourceTable:a,stringTable:i}=r,s=i.indexForString(t),l=o.fileName.indexOf(s);if(-1===l)continue;const c=e.func.indexOf(l);if(-1===c)continue;const d=e.address[c];if(null===d)continue;const u=o.resource[l];if(a.type[u]!==Gn.library)continue;const h=a.lib[u];if(null===h)continue;const p=n[h],{debugName:m,breakpadId:f}=p;return{debugName:m,breakpadId:f,address:d}}return null}(i,e):null,c=new jw(s,{onBeginUrlRequest:n=>{t(e,n)},onBeginBrowserConnectionQuery:()=>{n(e)}}),d=await async function(e,t,n,r,o){const a=[];if(null!==n){const r=function(e){return va(e)}(t)?t:null,{debugName:i,breakpadId:s,address:l}=n,c=await Vw("/source/v1",JSON.stringify({debugName:i,debugId:s,moduleOffset:`0x${l.toString(16)}`,file:e}),r,o,Zw);switch(c.type){case"SUCCESS":return{type:"SUCCESS",source:c.convertedResponse};case"ERROR":a.push(...c.errors);break;default:throw Je(c.type)}}const i=function(e){switch(e.type){case"hg":{const{repo:t,rev:n,path:r}=e;return{type:"CORS_ENABLED_SINGLE_FILE",url:`https://${t}/raw-file/${n}/${r}`}}case"localhost":{const{host:t,path:n}=e;return{type:"CORS_ENABLED_SINGLE_FILE",url:`${t}${n}`}}case"git":{const{repo:t,rev:n,path:r}=e,o=t.indexOf("/");if(-1===o)return{type:"NO_KNOWN_CORS_URL"};const a=t.slice(0,o),i=t.slice(o+1);return"github.com"===a?{type:"CORS_ENABLED_SINGLE_FILE",url:`https://raw.githubusercontent.com/${i}/${n}/${r}`}:a.endsWith(".googlesource.com")?{type:"CORS_ENABLED_SINGLE_FILE",url:`https://googlesource-proxy.mstange.workers.dev/${a.slice(0,a.length-".googlesource.com".length)}/${i}.git/+/${n}/${r}`}:{type:"NO_KNOWN_CORS_URL"}}case"s3":{const{bucket:t,digest:n,path:r}=e;return{type:"CORS_ENABLED_SINGLE_FILE",url:`https://${t}.s3.amazonaws.com/${n}/${r}`}}case"cargo":{const{crate:t,version:n,path:r}=e;return{type:"CORS_ENABLED_ARCHIVE",archiveUrl:`https://crates.io/api/v1/crates/${t}/${n}/download`,pathInArchive:r}}case"normal":return{type:"NO_KNOWN_CORS_URL"};default:throw Je(e.type,"unhandled ParsedFile type")}}(nr(e));switch(i.type){case"CORS_ENABLED_SINGLE_FILE":{const{url:e}=i;try{const t=await o.fetchUrlResponse(e);return{type:"SUCCESS",source:await t.text()}}catch(t){a.push({type:"NETWORK_ERROR",url:e,networkErrorMessage:t.toString()})}break}case"CORS_ENABLED_ARCHIVE":{const{archiveUrl:e,pathInArchive:t}=i;let n=r.get(e);void 0===n&&(n=(async()=>{const t=await o.fetchUrlResponse(e),n=new Uint8Array(await t.arrayBuffer());return eu(n)?Qd(n):n})(),r.set(e,n));try{const r=await n,o=new Hw(r.buffer),i=new TextDecoder;for(;o.hasNext();){const e=o.next();if(e.name===t&&null!==e.buffer)return{type:"SUCCESS",source:i.decode(e.buffer)}}a.push({type:"NOT_PRESENT_IN_ARCHIVE",url:e,pathInArchive:t})}catch(t){a.push({type:"ARCHIVE_PARSING_ERROR",url:e,parsingErrorMessage:t.toString()})}break}case"NO_KNOWN_CORS_URL":a.push({type:"NO_KNOWN_CORS_URL"});break;default:throw Je(i.type)}return{type:"ERROR",errors:a}}(e,a,l,this._archiveCache,c);switch(d.type){case"SUCCESS":r(e,d.source);break;case"ERROR":o(e,d.errors);break;default:throw Je(d.type)}}render(){return null}}const Kw=je({mapStateToProps:e=>({sourceViewFile:ei(e),sourceViewCode:ch(e),symbolServerUrl:Gi(e),profile:Rs(e),browserConnection:mc(e)}),mapDispatchToProps:{beginLoadingSourceCodeFromUrl:Pw,beginLoadingSourceCodeFromBrowserConnection:Nw,finishLoadingSourceCode:Mw,failLoadingSourceCode:Fw},component:$w});function Yw(e){if(!e.startAddress)throw new Error("Missing startAddress field in asm response");if(!e.instructions)throw new Error("Missing instructions field in asm response");if(!Array.isArray(e.instructions))throw new Error("The instructions field in asm response is not an array");const{startAddress:t,instructions:n}=e,r=parseInt(t,16);if(isNaN(r))throw new Error("Invalid startAddress value in asm response");return n.map((e=>{if(!Array.isArray(e))throw new Error("Invalid instruction data (not an array)");if(e.length<2)throw new Error("Invalid instruction data (< 2 elements)");const[t,n]=e;if("number"!=typeof t)throw new Error("Invalid instruction offset");if("string"!=typeof n)throw new Error("Invalid instruction decodedString value");return{address:r+t,decodedString:n}}))}class qw extends X.PureComponent{componentDidMount(){this._triggerAssemblyLoadingIfNeeded()}componentDidUpdate(){this._triggerAssemblyLoadingIfNeeded()}_triggerAssemblyLoadingIfNeeded(){const{assemblyViewIsOpen:e,assemblyViewNativeSymbol:t,assemblyViewCode:n}=this.props;e&&t&&!n&&this._fetchAssemblyForNativeSymbol(t)}async _fetchAssemblyForNativeSymbol(e){const{beginLoadingAssemblyCodeFromUrl:t,beginLoadingAssemblyCodeFromBrowserConnection:n,finishLoadingAssemblyCode:r,failLoadingAssemblyCode:o,symbolServerUrl:a,profile:i,browserConnection:s}=this.props;if(null===i)return;const l=i.libs[e.libIndex],{debugName:c,breakpadId:d}=l,u=`${c}/${d}/${e.address.toString(16)}`,h=new jw(s,{onBeginUrlRequest:e=>{t(u,e)},onBeginBrowserConnectionQuery:()=>{n(u)}}),p=await async function(e,t,n,r){const o=function(e){return va(e)}(n)?n:null,{debugName:a,breakpadId:i,name:s,codeId:l}=t,{address:c}=e,d=await Vw("/asm/v1",JSON.stringify({debugName:a,debugId:i,name:s,codeId:l,startAddress:`0x${c.toString(16)}`,size:`0x${e.functionSize.toString(16)}`,continueUntilFunctionEnd:!e.functionSizeIsKnown}),o,r,Yw);switch(d.type){case"SUCCESS":return{type:"SUCCESS",instructions:d.convertedResponse};case"ERROR":return{type:"ERROR",errors:d.errors};default:throw Je(d.type)}}(e,l,a,h);switch(p.type){case"SUCCESS":r(u,p.instructions);break;case"ERROR":o(u,p.errors);break;default:throw Je(p.type)}}render(){return null}}const Jw=je({mapStateToProps:e=>({assemblyViewNativeSymbol:ri(e),assemblyViewCode:hh(e),assemblyViewIsOpen:ni(e),symbolServerUrl:Gi(e),profile:Rs(e),browserConnection:mc(e)}),mapDispatchToProps:{beginLoadingAssemblyCodeFromUrl:Rw,beginLoadingAssemblyCodeFromBrowserConnection:Dw,finishLoadingAssemblyCode:Lw,failLoadingAssemblyCode:Ow},component:qw});var Xw=n(9531),Qw={};Qw.styleTagTransform=M(),Qw.setAttributes=B(),Qw.insert=S().bind(null,"head"),Qw.domAPI=E(),Qw.insertStyleElement=P(),w()(Xw.Z,Qw),Xw.Z&&Xw.Z.locals&&Xw.Z.locals;const ek=()=>X.createElement("div",{className:"codeViewHeader"},X.createElement("span",{className:"codeViewHeaderColumn codeViewFixedColumn total",title:"The “total” sample count includes a summary of every sample where this\nline was observed to be on the stack. This includes the time where the\nline was actually running, and the time spent in the callers from this\nline."},"Total"),X.createElement("span",{className:"codeViewHeaderColumn codeViewFixedColumn self",title:"The “self” sample count only includes the samples where the line was\nthe end of the stack. If this line called into other functions,\nthen the “other” functions’ counts are not included. The “self” count is useful\nfor understanding where time was actually spent in a program."},"Self"),X.createElement("span",{className:"codeViewHeaderColumn codeViewMainColumn source"}));let tk=null;class nk extends X.PureComponent{constructor(...e){super(...e),this._ref=X.createRef(),this._editor=null}_scrollToHotSpot(e){const t=Sh(e.totalLineHits)??Sh(this.props.timings.totalLineHits);void 0!==t&&this._scrollToLine(t-5)}_scrollToLine(e){this._editor&&this._editor.scrollToLine(e)}_getMaxLineNumber(){const{sourceCode:e,timings:t}=this.props;let n=e.split("\n").length;return n<=1&&(n=Math.max(1,...t.totalLineHits.keys())+10),n}_getSourceCodeOrFallback(){const{sourceCode:e}=this.props;return""!==e?e:"\n".repeat(this._getMaxLineNumber())}render(){return X.createElement("div",{className:"sourceView codeView"},X.createElement(ek,null),X.createElement("div",{className:"codeMirrorContainer",ref:this._ref}))}componentDidMount(){null===tk&&(tk=Promise.all([n.e(119),n.e(9),n.e(131)]).then(n.bind(n,3131))),(async()=>{const e=nt(tk),t=await e,n=this._ref.current;if(!n)return;const{SourceViewEditor:r}=t,o=new r(this._getSourceCodeOrFallback(),this.props.filePath,this.props.timings,n);this._editor=o,this._scrollToHotSpot(this.props.hotSpotTimings)})()}componentDidUpdate(e){if(!this._editor)return;this.props.filePath!==e.filePath&&this._editor.updateLanguageForFilePath(this.props.filePath);let t=!1;(this.props.sourceCode!==e.sourceCode||""===this.props.sourceCode&&""===e.sourceCode&&this.props.timings!==e.timings)&&(this._editor.setContents(this._getSourceCodeOrFallback()),t=!0),(t||this.props.scrollToHotSpotGeneration!==e.scrollToHotSpotGeneration)&&this._scrollToHotSpot(this.props.hotSpotTimings),this.props.timings!==e.timings&&this._editor.setTimings(this.props.timings)}}const rk=()=>X.createElement("div",{className:"codeViewHeader"},X.createElement("span",{className:"codeViewHeaderColumn codeViewFixedColumn total",title:"The “total” sample count includes a summary of every sample where this\nline was observed to be on the stack. This includes the time where the\nline was actually running, and the time spent in the callers from this\nline."},"Total"),X.createElement("span",{className:"codeViewHeaderColumn codeViewFixedColumn self",title:"The “self” sample count only includes the samples where the line was\nthe end of the stack. If this line called into other functions,\nthen the “other” functions’ counts are not included. The “self” count is useful\nfor understanding where time was actually spent in a program."},"Self"),X.createElement("span",{className:"codeViewHeaderColumn codeViewMainColumn assembly"}));let ok=null;class ak extends X.PureComponent{constructor(...e){super(...e),this._ref=X.createRef(),this._editor=null}_scrollToHotSpot(e){const t=Sh(e.totalAddressHits)??Sh(this.props.timings.totalAddressHits);void 0!==t&&this._scrollToAddressWithSpaceOnTop(t,5)}_scrollToAddressWithSpaceOnTop(e,t){this._editor&&this._editor.scrollToAddressWithSpaceOnTop(e,t)}_getAssemblyCodeOrFallback(){const{assemblyCode:e}=this.props;if(0!==e.length)return e;const{timings:t,nativeSymbol:n}=this.props,r=[...t.totalAddressHits.keys()];return null===n||t.totalAddressHits.has(n.address)||r.push(n.address),r.sort(((e,t)=>e-t)),r.map((e=>({address:e,decodedString:""})))}render(){return X.createElement("div",{className:"assemblyView codeView"},X.createElement(rk,null),X.createElement("div",{className:"codeMirrorContainer",ref:this._ref}))}componentDidMount(){null===ok&&(ok=Promise.all([n.e(119),n.e(308)]).then(n.bind(n,7308))),(async()=>{const e=nt(ok),t=await e,n=this._ref.current;if(!n)return;const{AssemblyViewEditor:r}=t,o=new r(this._getAssemblyCodeOrFallback(),this.props.nativeSymbol,this.props.timings,n);this._editor=o,this._scrollToHotSpot(this.props.hotSpotTimings)})()}componentDidUpdate(e){if(!this._editor)return;let t=!1;(this.props.assemblyCode!==e.assemblyCode||0===this.props.assemblyCode.length&&0===e.assemblyCode.length&&this.props.timings!==e.timings)&&(this._editor.setContents(this._getAssemblyCodeOrFallback()),t=!0),(t||this.props.scrollToHotSpotGeneration!==e.scrollToHotSpotGeneration)&&this._scrollToHotSpot(this.props.hotSpotTimings),this.props.timings!==e.timings&&this._editor.setTimings(this.props.timings)}}class ik extends X.PureComponent{constructor(...e){super(...e),this._onClick=()=>{this.props.assemblyViewIsOpen?this.props.closeAssemblyView():this.props.openAssemblyView()}}render(){const{assemblyViewIsOpen:e}=this.props;return e?X.createElement(ue,{id:"AssemblyView--hide-button",attrs:{title:!0}},X.createElement("button",{className:Xg()("bottom-assembly-button","photon-button","photon-button-ghost","photon-button-ghost--checked"),title:"Hide the assembly view",type:"button",onClick:this._onClick})):X.createElement(ue,{id:"AssemblyView--show-button",attrs:{title:!0}},X.createElement("button",{className:Xg()("bottom-assembly-button","photon-button","photon-button-ghost"),title:"Show the assembly view",type:"button",onClick:this._onClick}))}}const sk=je({mapStateToProps:e=>({assemblyViewIsOpen:ni(e)}),mapDispatchToProps:{openAssemblyView:Qp,closeAssemblyView:em},component:ik});function lk({source:e}){switch(e.type){case"URL":{const{url:t}=e;let n;try{n=new URL(t).host}catch(e){n=t}return X.createElement(ue,{id:"SourceView--loading-url",vars:{host:n}},X.createElement("div",{className:"codeLoadingOverlay"},`Waiting for ${n}…`))}case"BROWSER_CONNECTION":return X.createElement(ue,{id:"SourceView--loading-browser-connection"},X.createElement("div",{className:"codeLoadingOverlay"},"Waiting for browser…"));default:throw Je(e.type)}}function ck({errors:e}){return X.createElement("ul",{className:"codeErrorOverlay"},e.map(((e,t)=>{switch(e.type){case"NO_KNOWN_CORS_URL":return X.createElement(ue,{key:t,id:"SourceView--no-known-cors-url"},X.createElement("li",null,"No known cross-origin-accessible URL."));case"NETWORK_ERROR":{const{url:n,networkErrorMessage:r}=e;return X.createElement(ue,{key:t,id:"SourceView--network-error-when-obtaining-source",vars:{url:n,networkErrorMessage:r}},X.createElement("li",null,`There was a network error when fetching the URL ${n}: ${r}`))}case"BROWSER_CONNECTION_ERROR":{const{browserConnectionErrorMessage:n}=e;return X.createElement(ue,{key:t,id:"SourceView--browser-connection-error-when-obtaining-source",vars:{browserConnectionErrorMessage:n}},X.createElement("li",null,`Could not query the browser’s symbolication API: ${n}`))}case"BROWSER_API_ERROR":{const{apiErrorMessage:t}=e;return X.createElement(ue,{id:"SourceView--browser-api-error-when-obtaining-source",vars:{apiErrorMessage:t}},X.createElement("li",null,`The browser’s symbolication API returned an error: ${t}`))}case"SYMBOL_SERVER_API_ERROR":{const{apiErrorMessage:t}=e;return X.createElement(ue,{id:"SourceView--local-symbol-server-api-error-when-obtaining-source",vars:{apiErrorMessage:t}},X.createElement("li",null,`The local symbol server’s symbolication API returned an error: ${t}`))}case"BROWSER_API_MALFORMED_RESPONSE":{const{errorMessage:t}=e;return X.createElement(ue,{id:"SourceView--browser-api-malformed-response-when-obtaining-source",vars:{errorMessage:t}},X.createElement("li",null,`The browser’s symbolication API returned a malformed response: ${t}`))}case"SYMBOL_SERVER_API_MALFORMED_RESPONSE":{const{errorMessage:t}=e;return X.createElement(ue,{id:"SourceView--local-symbol-server-api-malformed-response-when-obtaining-source",vars:{errorMessage:t}},X.createElement("li",null,`The local symbol server’s symbolication API returned a malformed response: ${t}`))}case"NOT_PRESENT_IN_ARCHIVE":{const{url:t,pathInArchive:n}=e;return X.createElement(ue,{id:"SourceView--not-in-archive-error-when-obtaining-source",vars:{url:t,pathInArchive:n}},X.createElement("li",null,`The file ${n} was not found in the archive from ${t}.`))}case"ARCHIVE_PARSING_ERROR":{const{url:t,parsingErrorMessage:n}=e;return X.createElement(ue,{id:"SourceView--archive-parsing-error-when-obtaining-source",vars:{url:t,parsingErrorMessage:n}},X.createElement("li",null,`The archive at ${t} could not be parsed: ${n}`))}default:throw Je(e.type)}})))}var dk=n(2920),uk={};function hk({errors:e}){return X.createElement("div",{className:"sourceCodeErrorOverlay"},X.createElement("div",null,X.createElement(ue,{id:"BottomBox--source-code-not-available-title"},X.createElement("h3",null,"Source code not available")),X.createElement(ue,{id:"SourceView--source-not-available-text",elems:{a:X.createElement("a",{href:"https://github.com/firefox-devtools/profiler/issues/3741",target:"_blank",rel:"noopener noreferrer"})}},X.createElement("p",null,"See",X.createElement("a",{href:"https://github.com/firefox-devtools/profiler/issues/3741",target:"_blank",rel:"noopener noreferrer"},"issue #3741"),"for supported scenarios and planned improvements.")),X.createElement(ck,{errors:e})))}function pk({errors:e}){return X.createElement("div",{className:"assemblyCodeErrorOverlay"},X.createElement("div",null,X.createElement(ue,{id:"BottomBox--assembly-code-not-available-title"},X.createElement("h3",null,"Assembly code not available")),X.createElement(ue,{id:"BottomBox--assembly-code-not-available-text",elems:{a:X.createElement("a",{href:"https://github.com/firefox-devtools/profiler/issues/4520",target:"_blank",rel:"noopener noreferrer"})}},X.createElement("p",null,"See",X.createElement("a",{href:"https://github.com/firefox-devtools/profiler/issues/4520",target:"_blank",rel:"noopener noreferrer"},"issue #4520"),"for supported scenarios and planned improvements.")),X.createElement(ck,{errors:e})))}uk.styleTagTransform=M(),uk.setAttributes=B(),uk.insert=S().bind(null,"head"),uk.domAPI=E(),uk.insertStyleElement=P(),w()(dk.Z,uk),dk.Z&&dk.Z.locals&&dk.Z.locals;class mk extends X.PureComponent{constructor(...e){super(...e),this._sourceView=X.createRef(),this._assemblyView=X.createRef(),this._onClickCloseButton=()=>{this.props.closeBottomBox()}}render(){const{sourceViewFile:e,sourceViewCode:t,globalLineTimings:n,disableOverscan:r,sourceViewScrollGeneration:o,selectedCallNodeLineTimings:a,assemblyViewIsOpen:i,assemblyViewScrollGeneration:s,assemblyViewNativeSymbol:l,assemblyViewCode:c,globalAddressTimings:d,selectedCallNodeAddressTimings:u}=this.props,h=t&&"AVAILABLE"===t.type?t.code:"",p=null!==e?nr(e).path:null,m=c&&"AVAILABLE"===c.type?c.instructions:[],f=X.createElement("div",{className:"bottom-box-header-trailing-buttons"},X.createElement(sk,null),X.createElement(ue,{id:"SourceView--close-button",attrs:{title:!0}},X.createElement("button",{className:Xg()("bottom-close-button","photon-button","photon-button-ghost"),title:"Close the source view",type:"button",onClick:this._onClickCloseButton})));return X.createElement("div",{className:"bottom-box"},X.createElement(qg(),{customClassName:"bottom-box",percentage:!0},X.createElement("div",{className:"bottom-box-pane"},X.createElement("div",{className:"bottom-box-bar"},X.createElement("h3",{className:"bottom-box-title"},p??"(no source file)"),i?null:f),X.createElement("div",{className:"bottom-sourceview-wrapper"},null!==e?X.createElement(nk,{disableOverscan:r,timings:n,sourceCode:h,filePath:p,scrollToHotSpotGeneration:o,hotSpotTimings:a,ref:this._sourceView}):null,void 0!==t&&"LOADING"===t.type?X.createElement(lk,{source:t.source}):null,void 0!==t&&"ERROR"===t.type?X.createElement(hk,{errors:t.errors}):null)),i?X.createElement("div",{className:"bottom-box-pane"},X.createElement("div",{className:"bottom-box-bar"},X.createElement("h3",{className:"bottom-box-title"},null!==l?l.name:"(no native symbol)"),f),X.createElement("div",{className:"bottom-assemblyview-wrapper"},null!==l?X.createElement(ak,{disableOverscan:r,timings:d,assemblyCode:m,nativeSymbol:l,scrollToHotSpotGeneration:s,hotSpotTimings:u,ref:this._assemblyView}):null,void 0!==c&&"LOADING"===c.type?X.createElement(lk,{source:c.source}):null,void 0!==c&&"ERROR"===c.type?X.createElement(pk,{errors:(g=c.errors,g.map((e=>e)))}):null)):null));var g}}const fk=je({mapStateToProps:e=>({sourceViewFile:ei(e),sourceViewCode:ch(e),globalLineTimings:Tu.getSourceViewLineTimings(e),selectedCallNodeLineTimings:Bu.getSourceViewLineTimings(e),sourceViewScrollGeneration:ti(e),assemblyViewNativeSymbol:ri(e),assemblyViewCode:hh(e),globalAddressTimings:Tu.getAssemblyViewAddressTimings(e),selectedCallNodeAddressTimings:Bu.getAssemblyViewAddressTimings(e),assemblyViewScrollGeneration:oi(e),assemblyViewIsOpen:ni(e),disableOverscan:Ms(e).isModifying}),mapDispatchToProps:{closeBottomBox:tm},component:mk});class gk extends X.PureComponent{constructor(...e){super(...e),this._getItemsWithFirstElement=_t()(((e,t)=>[e,...t]),{limit:1})}render(){const{className:e,items:t,selectedItem:n,uncommittedItem:r,onPop:o,filterPageData:a,rootRange:i}=this.props;let s;s=a?X.createElement(X.Fragment,null,a.favicon?X.createElement(rb,{iconUrl:a.favicon}):null,X.createElement("span",{title:a.origin},a.hostname," (",Jt(i.end-i.start),")")):X.createElement(ue,{id:"ProfileFilterNavigator--full-range-with-duration",vars:{fullRangeDuration:Jt(i.end-i.start)}},"Full Range");const l=this._getItemsWithFirstElement(s,t);return X.createElement(Jb,{className:e,items:l,selectedItem:n,uncommittedItem:r,onPop:o})}}const Ak=je({mapStateToProps:e=>{const t=zi(e),n=Ms(e),r=n.hasSelection?Jt(n.selectionEnd-n.selectionStart):void 0,o=Ll(e),a=xs(e);return{className:"profileFilterNavigator",items:t,selectedItem:t.length,uncommittedItem:r,filterPageData:o,rootRange:a}},mapDispatchToProps:{onPop:Hp},component:gk});var bk=n(1451),Ck={};Ck.styleTagTransform=M(),Ck.setAttributes=B(),Ck.insert=S().bind(null,"head"),Ck.domAPI=E(),Ck.insertStyleElement=P(),w()(bk.Z,Ck),bk.Z&&bk.Z.locals&&bk.Z.locals;var yk=n(4097),vk={};vk.styleTagTransform=M(),vk.setAttributes=B(),vk.insert=S().bind(null,"head"),vk.domAPI=E(),vk.insertStyleElement=P(),w()(yk.Z,vk),yk.Z&&yk.Z.locals&&yk.Z.locals;class wk extends X.PureComponent{constructor(...e){super(...e),this.closeTimeout=null,this.state={open:!1,isClosing:!1,openGeneration:0},this._onArrowPanelClick=e=>{"arrowPanelArrow"!==e.target.className&&e.stopPropagation()}}open(){this.state.open||this.setState({open:!0})}close(){this.setState((e=>{if(!e.open)return null;const t=e.openGeneration+1;return clearTimeout(this.closeTimeout),this.closeTimeout=setTimeout(this._onCloseAnimationFinish(t),400),{open:!1,isClosing:!0,openGeneration:t}}))}_onCloseAnimationFinish(e){return()=>{this.setState((t=>t.openGeneration===e?{isClosing:!1}:null))}}componentDidUpdate(e,t){!t.open&&this.state.open&&this.props.onOpen(),this.state.open||!t.isClosing||this.state.isClosing||this.props.onClose()}componentWillUnmount(){clearTimeout(this.closeTimeout)}render(){const{className:e,children:t}=this.props,{open:n,isClosing:r}=this.state;return n||r?X.createElement("div",{className:"arrowPanelAnchor"},X.createElement("div",{className:Xg()("arrowPanel",{open:n},e),onClick:this._onArrowPanelClick},X.createElement("div",{className:"arrowPanelArrow"}),X.createElement("div",{className:"arrowPanelContent"},t))):null}}var kk=n(5271),Ek={};Ek.styleTagTransform=M(),Ek.setAttributes=B(),Ek.insert=S().bind(null,"head"),Ek.domAPI=E(),Ek.insertStyleElement=P(),w()(kk.Z,Ek),kk.Z&&kk.Z.locals&&kk.Z.locals;class xk extends X.PureComponent{constructor(e){super(e),this._panel=null,this._buttonRef=X.createRef(),this._wrapperRef=X.createRef(),this._onPanelOpen=()=>{this.setState({open:!0}),this.props.onPanelOpen&&this.props.onPanelOpen()},this._onPanelClose=()=>{this.setState({open:!1}),this.isFocusWithin()&&this.focus(),this.props.onPanelClose&&this.props.onPanelClose()},this._takePanelRef=e=>{this._panel=e},this._onWindowClick=()=>{this.closePanel()},this._onButtonClick=()=>{this.state.open||setTimeout((()=>this.openPanel()))},this._onKeyDown=e=>{"Escape"===e.key&&this.closePanel()},this.state={open:!!e.initialOpen}}componentDidMount(){window.addEventListener("click",this._onWindowClick),window.addEventListener("keydown",this._onKeyDown),this.state.open&&this.openPanel()}componentWillUnmount(){window.removeEventListener("keydown",this._onKeyDown),window.removeEventListener("click",this._onWindowClick)}openPanel(){this._panel&&this._panel.open()}closePanel(){this._panel&&this.state.open&&this._panel.close()}focus(){this._buttonRef.current&&this._buttonRef.current.focus()}isFocusWithin(){try{if(this._wrapperRef.current)return this._wrapperRef.current.matches(":focus-within")}catch{}return!1}render(){const{className:e,label:t,panelContent:n,panelClassName:r,buttonClassName:o,title:a}=this.props,{open:i}=this.state;return X.createElement("div",{className:Xg()("buttonWithPanel",e,{open:i}),ref:this._wrapperRef},X.createElement("button",{type:"button",className:Xg()("buttonWithPanelButton",o),"aria-expanded":String(i),title:i?null:a,onClick:this._onButtonClick,ref:this._buttonRef},t),X.createElement(wk,{className:r,onOpen:this._onPanelOpen,onClose:this._onPanelClose,ref:this._takePanelRef},n))}}var Sk=n(2543),Tk={};Tk.styleTagTransform=M(),Tk.setAttributes=B(),Tk.insert=S().bind(null,"head"),Tk.domAPI=E(),Tk.insertStyleElement=P(),w()(Sk.Z,Tk),Sk.Z&&Sk.Z.locals&&Sk.Z.locals;class Bk extends X.PureComponent{render(){const{profilerOverhead:e}=this.props,t=new Map;let n=0,r=0,o=0,a=0;const i=["Overhead","Cleaning","Counter","Interval","Lockings"],s={Overhead:"MenuButtons--metaOverheadStatistics-statkeys-overhead",Cleaning:"MenuButtons--metaOverheadStatistics-statkeys-cleaning",Counter:"MenuButtons--metaOverheadStatistics-statkeys-counter",Interval:"MenuButtons--metaOverheadStatistics-statkeys-interval",Lockings:"MenuButtons--metaOverheadStatistics-statkeys-lockings"};for(const s of e){const{statistics:e}=s;if(void 0===e)continue;const{samplingCount:l}=e;n+=e.overheadDurations*l,r+=e.overheadPercentage*l,o+=e.profiledDuration*l,a+=l;for(const n of i){const r=e["max"+n],o=e["mean"+n],a=e["min"+n];let i=t.get(n);void 0===i&&(i=new _k,t.set(n,i)),i.accumulate(a,r,o,l)}}return t.size>0?X.createElement("details",null,X.createElement("summary",{className:"arrowPanelSubTitle"},X.createElement(ue,{id:"MenuButtons--metaOverheadStatistics-subtitle"},"Profiler overhead")),X.createElement("div",{className:"arrowPanelSection"},X.createElement("div",{className:"metaInfoGrid"},X.createElement("div",null),X.createElement("div",null,X.createElement(ue,{id:"MenuButtons--metaOverheadStatistics-mean"},"Mean")),X.createElement("div",null,X.createElement(ue,{id:"MenuButtons--metaOverheadStatistics-max"},"Max")),X.createElement("div",null,X.createElement(ue,{id:"MenuButtons--metaOverheadStatistics-min"},"Min")),[...t].map((([e,t])=>X.createElement(X.Fragment,{key:e},X.createElement(ue,{id:s[e],attrs:{title:!0}},X.createElement("div",null)),X.createElement("div",null,Gt(t.mean)),X.createElement("div",null,Gt(t.max)),X.createElement("div",null,Gt(t.min)))))),0!==n?X.createElement("div",{className:"metaInfoRow"},X.createElement("span",{className:"metaInfoWideLabel"},X.createElement(ue,{id:"MenuButtons--metaOverheadStatistics-overhead-duration"},"Overhead Durations:")),X.createElement("span",{className:"metaInfoValueRight"},Gt(n/a))):null,0!==r?X.createElement("div",{className:"metaInfoRow"},X.createElement("span",{className:"metaInfoWideLabel"},X.createElement(ue,{id:"MenuButtons--metaOverheadStatistics-overhead-percentage"},"Overhead Percentage:")),X.createElement("span",{className:"metaInfoValueRight"},Dt(r/a))):null,0!==o?X.createElement("div",{className:"metaInfoRow"},X.createElement("span",{className:"metaInfoWideLabel"},X.createElement(ue,{id:"MenuButtons--metaOverheadStatistics-profiled-duration"},"Profiled Duration:")),X.createElement("span",{className:"metaInfoValueRight"},Gt(o/a))):null)):null}}class _k{constructor(){this._accumulatedMax=0,this._accumulatedMin=0,this._accumulatedMean=0,this._accumulatedWeight=0}accumulate(e,t,n,r){this._accumulatedWeight+=r,this._accumulatedMin+=e*r,this._accumulatedMax+=t*r,this._accumulatedMean+=n*r}get min(){return this._accumulatedMin/this._accumulatedWeight}get max(){return this._accumulatedMax/this._accumulatedWeight}get mean(){return this._accumulatedMean/this._accumulatedWeight}}var Ik=n(6941),Pk={};Pk.styleTagTransform=M(),Pk.setAttributes=B(),Pk.insert=S().bind(null,"head"),Pk.domAPI=E(),Pk.insertStyleElement=P(),w()(Ik.Z,Pk),Ik.Z&&Ik.Z.locals&&Ik.Z.locals;class Nk extends X.PureComponent{constructor(...e){super(...e),this.state={showsMoreInfo:!1},this._handleMoreInfoButtonClick=e=>{e.preventDefault(),this.setState((e=>({showsMoreInfo:!e.showsMoreInfo})))}}renderSymbolication(){const{profile:e,symbolicationStatus:t,resymbolicateProfile:n}=this.props,r=e.meta.symbolicated;if(!0===e.meta.symbolicationNotSupported)return null;switch(t){case"DONE":return X.createElement(X.Fragment,null,X.createElement("div",{className:"metaInfoRow"},X.createElement("span",{className:"metaInfoLabel"},X.createElement(ue,{id:"MenuButtons--metaInfo--symbols"},"Symbols:")),X.createElement(ue,{id:r?"MenuButtons--metaInfo--profile-symbolicated":"MenuButtons--metaInfo--profile-not-symbolicated"})),X.createElement("div",{className:"metaInfoRow"},X.createElement("span",{className:"metaInfoLabel"}),X.createElement("button",{onClick:n,type:"button",className:"photon-button photon-button-micro"},X.createElement(ue,{id:r?"MenuButtons--metaInfo--resymbolicate-profile":"MenuButtons--metaInfo--symbolicate-profile"}))));case"SYMBOLICATING":return X.createElement("div",{className:"metaInfoRow"},X.createElement("span",{className:"metaInfoLabel"},X.createElement(ue,{id:"MenuButtons--metaInfo--symbols"},"Symbols:")),X.createElement(ue,{id:r?"MenuButtons--metaInfo--attempting-resymbolicate":"MenuButtons--metaInfo--currently-symbolicating"}));default:throw Je(t,"Unhandled SymbolicationStatus.")}}_renderMoreInfoSection(e){return X.createElement("div",{key:e.label},X.createElement("h2",{className:"metaInfoSubTitle"},e.label),X.createElement("div",{className:"metaInfoSection"},e.entries.map((({label:e,format:t,value:n})=>X.createElement("div",{className:"moreInfoRow",key:e},X.createElement("span",{className:"metaInfoWideLabel"},e),X.createElement("div",{className:"moreInfoValue"},po("moreInfo",t,n,new Sn)))))))}_renderMoreInfo(){return X.createElement("details",{className:"metaInfoRow",open:this.state.showsMoreInfo},X.createElement("summary",{className:"moreInfoSummary photon-button photon-button-default photon-button-micro",onClick:this._handleMoreInfoButtonClick},X.createElement(ue,{id:this.state.showsMoreInfo?"MenuButtons--index--hide-moreInfo-button":"MenuButtons--index--show-moreInfo-button"},this.state.showsMoreInfo?"Show Less":"Show More")),X.createElement("div",{className:"moreInfoPart"},this.props.profileExtraInfo.map(this._renderMoreInfoSection)))}render(){const{meta:e,profilerOverhead:t}=this.props.profile,{configuration:n}=e,r=Ua(e);let o=null;return e.physicalCPUs&&e.logicalCPUs?o=X.createElement(ue,{id:"MenuButtons--metaInfo--physical-and-logical-cpu",vars:{physicalCPUs:e.physicalCPUs,logicalCPUs:e.logicalCPUs}}):e.physicalCPUs?o=X.createElement(ue,{id:"MenuButtons--metaInfo--physical-cpu",vars:{physicalCPUs:e.physicalCPUs}}):e.logicalCPUs&&(o=X.createElement(ue,{id:"MenuButtons--metaInfo--logical-cpu",vars:{logicalCPUs:e.logicalCPUs}})),X.createElement(X.Fragment,null,X.createElement("div",{className:"metaInfoSection"},void 0!==e.profilingStartTime?X.createElement("div",{className:"metaInfoRow"},X.createElement("span",{className:"metaInfoLabel"},X.createElement(ue,{id:"MenuButtons--metaInfo--profiling-started"},"Recording started:")),Fk(e.startTime+e.profilingStartTime)):null,void 0!==e.profilingStartTime&&e.profilingEndTime?X.createElement("div",{className:"metaInfoRow"},X.createElement("span",{className:"metaInfoLabel"},X.createElement(ue,{id:"MenuButtons--metaInfo--profiling-session"},"Recording length:")),Zt(e.profilingEndTime-e.profilingStartTime)):null,void 0===e.profilingStartTime&&e.startTime?X.createElement("div",{className:"metaInfoRow"},X.createElement("span",{className:"metaInfoLabel"},X.createElement(ue,{id:"MenuButtons--metaInfo--main-process-started"},"Main process started:")),Fk(e.startTime)):null,e.endTime?X.createElement("div",{className:"metaInfoRow"},X.createElement("span",{className:"metaInfoLabel"},X.createElement(ue,{id:"MenuButtons--metaInfo--main-process-ended"},"Main process ended:")),Fk(e.endTime)):null,e.interval?X.createElement("div",{className:"metaInfoRow"},X.createElement("span",{className:"metaInfoLabel"},X.createElement(ue,{id:"MenuButtons--metaInfo--interval"},"Interval:")),Zt(e.interval,4,1)):null,n?X.createElement(X.Fragment,null,X.createElement("div",{className:"metaInfoRow"},X.createElement("span",{className:"metaInfoLabel"},X.createElement(ue,{id:"MenuButtons--metaInfo--buffer-capacity"},"Buffer capacity:")),Ot(8*n.capacity,0)),X.createElement("div",{className:"metaInfoRow"},X.createElement("span",{className:"metaInfoLabel"},X.createElement(ue,{id:"MenuButtons--metaInfo--buffer-duration"},"Buffer duration:")),n.duration?X.createElement(ue,{id:"MenuButtons--metaInfo--buffer-duration-seconds",vars:{configurationDuration:n.duration}},"{$configurationDuration} seconds"):X.createElement(ue,{id:"MenuButtons--metaInfo--buffer-duration-unlimited"},"Unlimited")),X.createElement("div",{className:"metaInfoSection"},Mk("MenuButtons--metaInfo-renderRowOfList-label-features",n.features),Mk("MenuButtons--metaInfo-renderRowOfList-label-threads-filter",n.threads))):null,this.renderSymbolication()),X.createElement("h2",{className:"metaInfoSubTitle"},X.createElement(ue,{id:"MenuButtons--metaInfo--application"},"Application")),X.createElement("div",{className:"metaInfoSection"},e.product?X.createElement("div",{className:"metaInfoRow"},X.createElement("span",{className:"metaInfoLabel"},X.createElement(ue,{id:"MenuButtons--metaInfo--name-and-version"},"Name and version:")),Oa(e)):null,e.profilingStartTime?X.createElement("div",{className:"metaInfoRow"},X.createElement("span",{className:"metaInfoLabel"},X.createElement(ue,{id:"MenuButtons--metaInfo--application-uptime"},"Uptime:")),Zt(e.profilingStartTime)):null,e.updateChannel?X.createElement("div",{className:"metaInfoRow"},X.createElement("span",{className:"metaInfoLabel"},X.createElement(ue,{id:"MenuButtons--metaInfo--update-channel"},"Update channel:")),e.updateChannel):null,e.appBuildID?X.createElement("div",{className:"metaInfoRow"},X.createElement("span",{className:"metaInfoLabel"},X.createElement(ue,{id:"MenuButtons--metaInfo--build-id"},"Build ID:")),e.sourceURL?X.createElement("a",{href:e.sourceURL,title:e.sourceURL,target:"_blank",rel:"noopener noreferrer"},e.appBuildID):e.appBuildID):null,void 0!==e.debug?X.createElement("div",{className:"metaInfoRow"},X.createElement("span",{className:"metaInfoLabel"},X.createElement(ue,{id:"MenuButtons--metaInfo--build-type"},"Build type:")),X.createElement(ue,{id:e.debug?"MenuButtons--metaInfo--build-type-debug":"MenuButtons--metaInfo--build-type-opt"})):null,e.extensions?Mk("MenuButtons--metaInfo-renderRowOfList-label-extensions",Array.from(e.extensions.name).sort()):null,e.arguments?X.createElement("div",{className:"metaInfoRow"},X.createElement("span",{className:"metaInfoLabel"},X.createElement(ue,{id:"MenuButtons--metaInfo--arguments"},"Arguments:")),X.createElement("div",{className:"metaInfoLargeContent"},e.arguments)):null),X.createElement("h2",{className:"metaInfoSubTitle"},X.createElement(ue,{id:"MenuButtons--metaInfo--platform"},"Platform")),X.createElement("div",{className:"metaInfoSection"},e.device?X.createElement("div",{className:"metaInfoRow"},X.createElement("span",{className:"metaInfoLabel"},X.createElement(ue,{id:"MenuButtons--metaInfo--device"},"Device:")),e.device):null,r?X.createElement("div",{className:"metaInfoRow"},X.createElement("span",{className:"metaInfoLabel"},X.createElement(ue,{id:"MenuButtons--metaInfo--os"},"OS:")),r):null,e.abi?X.createElement("div",{className:"metaInfoRow"},X.createElement("span",{className:"metaInfoLabel"},X.createElement(ue,{id:"MenuButtons--metaInfo--abi"},"ABI:")),e.abi):null,e.CPUName?X.createElement("div",{className:"metaInfoRow"},X.createElement("span",{className:"metaInfoLabel"},X.createElement(ue,{id:"MenuButtons--metaInfo--cpu-model"},"CPU model:")),e.CPUName):null,o?X.createElement("div",{className:"metaInfoRow"},X.createElement("span",{className:"metaInfoLabel"},X.createElement(ue,{id:"MenuButtons--metaInfo--cpu-cores"},"CPU cores:")),o):null,e.mainMemory?X.createElement("div",{className:"metaInfoRow"},X.createElement("span",{className:"metaInfoLabel"},X.createElement(ue,{id:"MenuButtons--metaInfo--main-memory"},"Main memory:")),Ot(e.mainMemory)):null),e.visualMetrics?X.createElement(X.Fragment,null,X.createElement("h2",{className:"metaInfoSubTitle"},X.createElement(ue,{id:"MenuButtons--metaInfo--visual-metrics"},"Visual metrics")),X.createElement("div",{className:"metaInfoSection"},X.createElement("div",{className:"metaInfoRow"},X.createElement("span",{className:"visualMetricsLabel"},X.createElement(ue,{id:"MenuButtons--metaInfo--speed-index"},"Speed Index:")),e.visualMetrics.SpeedIndex),X.createElement("div",{className:"metaInfoRow"},X.createElement("span",{className:"visualMetricsLabel"},X.createElement(ue,{id:"MenuButtons--metaInfo--perceptual-speed-index"},"Perceptual Speed Index:")),e.visualMetrics.PerceptualSpeedIndex),X.createElement("div",{className:"metaInfoRow"},X.createElement("span",{className:"visualMetricsLabel"},X.createElement(ue,{id:"MenuButtons--metaInfo--contentful-speed-Index"},"Contentful Speed Index:")),e.visualMetrics.ContentfulSpeedIndex))):null,t?X.createElement(Bk,{profilerOverhead:t}):null,0!==this.props.profileExtraInfo.length?this._renderMoreInfo():null)}}function Mk(e,t){return t.length?X.createElement("div",{className:"metaInfoRow metaInfoListRow"},X.createElement("span",{className:"metaInfoLabel"},X.createElement(ue,{id:e})),X.createElement("ul",{className:"metaInfoList"},t.map((e=>X.createElement("li",{className:"metaInfoListItem",key:e},e))))):null}function Fk(e){return new Date(e).toLocaleString(void 0,{month:"short",year:"numeric",day:"numeric",weekday:"short",hour:"numeric",minute:"numeric"})}const Rk=je({mapStateToProps:e=>({profile:Ds(e),symbolicationStatus:Ss(e),profileExtraInfo:Vl(e)}),mapDispatchToProps:{resymbolicateProfile:pm},component:Nk}),Dk=`${Mn}/compressed-store`,Lk="application/vnd.firefox-profiler+json;version=1.0";class Ok extends Error{constructor(...e){super(...e),this.name="UploadAbortedError"}}const Uk=/^(?:[a-zA-Z0-9_-])+\.(?:[a-zA-Z0-9_-])+\.(?:[a-zA-Z0-9_-])+$/;function zk(e){return Uk.test(e)}function Gk(e){return{type:"TOGGLE_CHECKED_SHARING_OPTION",slug:e}}function Wk(e){return{type:"UPLOAD_COMPRESSION_STARTED",abortFunction:e}}function Hk(){return{type:"UPLOAD_STARTED"}}function Vk(e){return{type:"UPDATE_UPLOAD_PROGRESS",uploadProgress:e}}function jk(e){return{type:"UPLOAD_FAILED",error:e}}function Zk(){return async(e,t)=>{try{Vn({hitType:"event",eventCategory:"profile upload",eventAction:"start"});const n=t(),r=Ui(n),o=Zu(n),{abortUpload:a,startUpload:i}=function(){const e=new XMLHttpRequest;let t=!1;return{abortUpload:()=>{t=!0,e.abort()},startUpload:(n,r)=>new Promise(((o,a)=>{t?a(new Ok("The request was already aborted.")):(e.onload=()=>{413===e.status?a(new Error(En`
|
137
|
+
The profile size is too large.
|
138
|
+
You can try enabling some of the privacy features to trim its size down.
|
139
|
+
`)):e.status>=200&&e.status<=299?o(e.responseText):a(new Error(`xhr onload with status != 200, xhr.statusText: ${e.statusText}`))},e.onerror=()=>{console.error("There was an XHR network error in uploadBinaryProfileData()",e);let t="Unable to make a connection to publish the profile.";e.statusText&&(t+=` The error response was: ${e.statusText}`),a(new Error(t))},e.onabort=()=>{a(new Ok("The error has been aborted by the user."))},e.upload.onprogress=e=>{r&&e.lengthComputable&&r(e.loaded/e.total)},e.open("POST",Dk),e.setRequestHeader("Accept",Lk),e.send(n))}))}}(),s=()=>{e({type:"UPLOAD_ABORTED"}),a()};e(Wk(s));const l=Wu(n),c=await Hu(n);if(o!==Zu(t()))return!1;e({type:"UPLOAD_STARTED"});const d=await i(c,(t=>{e(Vk(t))})),u=function(e){if(zk(e)){const t=function(e){if(!zk(e))return console.error("The token is an invalid JWT token."),null;try{const t=function(e){const t=e.replace("-","+").replace("_","/");return atob(t)}(e.split(".")[1]);return JSON.parse(t)}catch(t){return console.error(`We got an unexpected error when trying to decode the JWT token '${e}':`,t),null}}(e);if(!t)throw new Error("The JWT token that's been returned by the server is incorrect.");const{profileToken:n}=t;if(!n)throw new Error("The JWT token returned by the server doesn't contain a profile token.");return n}return e}(d);if(await async function(e,t,n,r){const o=_s(r),a=e=>({start:e.start-o,end:e.end-o}),i=Ui(r),s=Fi(r);let l;const c=Uu(r);if(c){const{committedRanges:t,oldThreadIndexToNew:r}=n;l=s(Kk(e,t,r,i,null))}else l=s(Yk(e,i,null));const d=Ds(r).meta,u=Ll(r);try{await Kh({profileToken:e,jwtToken:t,publishedDate:new Date,name:i,originHostname:u?u.hostname:null,preset:null,meta:{product:d.product,abi:d.abi,platform:d.platform,toolkit:d.toolkit,misc:d.misc,oscpu:d.oscpu,updateChannel:d.updateChannel,appBuildID:d.appBuildID},urlPath:l,publishedRange:c&&c.shouldFilterToCommittedRange?a(c.shouldFilterToCommittedRange):a(Is(r))})}catch(e){"InvalidStateError"===e.name?console.error(xn`
|
140
|
+
A DOMException 'InvalidStateError' was thrown when storing the profile data to a local indexedDB.
|
141
|
+
Are you in private mode?
|
142
|
+
We'll ignore the error, but you won't be able to act on this profile's data in the future.
|
143
|
+
`):console.error("An error was thrown while storing the profile data to a local indexedDB.",e)}}(u,d===u?null:d,l,n),o!==Zu(t()))return!1;if(Uu(n)){const{committedRanges:t,oldThreadIndexToNew:o,profile:a}=l;await e(Jk()),e(Kk(u,t,o,r,n)),sa((()=>{e(mm(a))}))}else{const t=Va(n);e(Yk(u,r,"unpublished"===t||"from-browser"===t?null:n))}Vn({hitType:"event",eventCategory:"profile upload",eventAction:"succeeded"})}catch(t){return"UploadAbortedError"===t.name?Vn({hitType:"event",eventCategory:"profile upload",eventAction:"aborted"}):(e(jk(t)),Vn({hitType:"event",eventCategory:"profile upload",eventAction:"failed"})),!1}return!0}}function $k(){return{type:"UPLOAD_RESET"}}function Kk(e,t,n,r,o){return{type:"SANITIZED_PROFILE_PUBLISHED",hash:e,committedRanges:t,oldThreadIndexToNew:n,profileName:r,prePublishedState:o}}function Yk(e,t,n){return{type:"PROFILE_PUBLISHED",hash:e,profileName:t,prePublishedState:n}}function qk(){return async(e,t)=>{const n=nt(Xu(t()),"Expected to find an original profile when reverting to it.");await e(Jk()),e({type:"REVERT_TO_PRE_PUBLISHED_STATE",prePublishedState:n})}}function Jk(){return e=>(e({type:"HIDE_STALE_PROFILE"}),new Promise((e=>{setTimeout(e,300)})))}class Xk extends X.PureComponent{constructor(...e){super(...e),this.state={url:"",prevBlob:null}}static getDerivedStateFromProps(e,t){return e.blob===t.prevBlob?null:(t.prevBlob&&URL.revokeObjectURL(t.url),{url:URL.createObjectURL(e.blob),prevBlob:e.blob})}componentWillUnmount(){URL.revokeObjectURL(this.state.url)}render(){const{blob:e,children:t,...n}=this.props;return X.createElement("a",{href:this.state.url,...n},t)}}const Qk=["B","kB","MB","GB","TB","PB","EB","ZB","YB"];var eE=n(2838),tE=n(4285),nE={};nE.styleTagTransform=M(),nE.setAttributes=B(),nE.insert=S().bind(null,"head"),nE.domAPI=E(),nE.insertStyleElement=P(),w()(tE.Z,nE),tE.Z&&tE.Z.locals&&tE.Z.locals;class rE extends X.PureComponent{constructor(...e){super(...e),this.state={compressError:null,prevCompressedPromise:null},this._toggles={includeHiddenThreads:()=>this.props.toggleCheckedSharingOptions("includeHiddenThreads"),includeAllTabs:()=>this.props.toggleCheckedSharingOptions("includeAllTabs"),includeFullTimeRange:()=>this.props.toggleCheckedSharingOptions("includeFullTimeRange"),includeScreenshots:()=>this.props.toggleCheckedSharingOptions("includeScreenshots"),includeUrls:()=>this.props.toggleCheckedSharingOptions("includeUrls"),includeExtension:()=>this.props.toggleCheckedSharingOptions("includeExtension"),includePreferenceValues:()=>this.props.toggleCheckedSharingOptions("includePreferenceValues"),includePrivateBrowsingData:()=>this.props.toggleCheckedSharingOptions("includePrivateBrowsingData")},this._onCompressError=e=>{this.setState({compressError:e})}}_renderCheckbox(e,t,n){const{checkedSharingOptions:r}=this.props,o=this._toggles[e];return X.createElement("label",{className:"photon-label menuButtonsPublishDataChoicesLabel"},X.createElement("input",{type:"checkbox",className:"photon-checkbox photon-checkbox-default",name:e,onChange:o,checked:r[e]}),X.createElement(ue,{id:t}),n)}static getDerivedStateFromProps(e,t){return t.prevCompressedPromise!==e.sanitizedProfileDataPromise?{prevCompressedPromise:e.sanitizedProfileDataPromise,compressError:null}:null}_renderPublishPanel(){const{shouldShowPreferenceOption:e,profileContainsPrivateBrowsingInformation:t,sanitizedProfileDataPromise:n,attemptToPublish:r,downloadFileName:o,shouldSanitizeByDefault:a,isRepublish:i,timelineTrackOrganizationType:s}=this.props,l="active-tab"===s;return X.createElement("div",{"data-testid":"MenuButtonsPublish-container"},X.createElement("form",{className:"menuButtonsPublishContent photon-body-10",onSubmit:r},X.createElement("h1",{className:"menuButtonsPublishTitle photon-title-40"},i?X.createElement(ue,{id:"MenuButtons--publish--reupload-performance-profile"},"Re-upload Performance Profile"):X.createElement(ue,{id:"MenuButtons--publish--share-performance-profile"},"Share Performance Profile")),X.createElement("p",{className:"menuButtonsPublishInfoDescription"},X.createElement(ue,{id:"MenuButtons--publish--info-description"},"Upload your profile and make it accessible to anyone with the link.")," ",a?X.createElement(ue,{id:"MenuButtons--publish--info-description-default"},"By default, your personal data is removed."):X.createElement(ue,{id:"MenuButtons--publish--info-description-firefox-nightly2"},"This profile is from Firefox Nightly, so by default most information is included.")),X.createElement("h3",{className:"photon-title-10"},X.createElement(ue,{id:"MenuButtons--publish--include-additional-data"},"Include additional data that may be identifiable")),X.createElement("div",{className:"menuButtonsPublishDataChoices"},l?this._renderCheckbox("includeAllTabs","MenuButtons--publish--renderCheckbox-label-include-other-tabs"):this._renderCheckbox("includeHiddenThreads","MenuButtons--publish--renderCheckbox-label-hidden-threads"),this._renderCheckbox("includeFullTimeRange","MenuButtons--publish--renderCheckbox-label-hidden-time"),this._renderCheckbox("includeScreenshots","MenuButtons--publish--renderCheckbox-label-include-screenshots"),this._renderCheckbox("includeUrls","MenuButtons--publish--renderCheckbox-label-resource"),this._renderCheckbox("includeExtension","MenuButtons--publish--renderCheckbox-label-extension"),e?this._renderCheckbox("includePreferenceValues","MenuButtons--publish--renderCheckbox-label-preference"):null,t?this._renderCheckbox("includePrivateBrowsingData","MenuButtons--publish--renderCheckbox-label-private-browsing",X.createElement(ue,{id:"MenuButtons--publish--renderCheckbox-label-private-browsing-warning-image",attrs:{title:!0}},X.createElement("img",{className:"menuButtonsPublishDataChoicesIndicator",src:eE,title:"This profile contains private browsing data"}))):null),this.state.compressError?X.createElement("div",{className:"photon-message-bar photon-message-bar-error photon-message-bar-inner-content"},X.createElement("div",{className:"photon-message-bar-inner-text"},X.createElement(ue,{id:"MenuButtons--publish--error-while-compressing"},"Error while compressing, try unchecking some checkboxes to reduce the profile size."))):null,X.createElement("div",{className:"menuButtonsPublishButtons"},X.createElement(aE,{downloadFileName:o,sanitizedProfileDataPromise:n,onCompressError:this._onCompressError}),X.createElement("button",{type:"submit",className:"photon-button photon-button-primary menuButtonsPublishButton menuButtonsPublishButtonsUpload",disabled:this.state.compressError},X.createElement("span",{className:"menuButtonsPublishButtonsSvg menuButtonsPublishButtonsSvgUpload"}),X.createElement(ue,{id:"MenuButtons--publish--button-upload"},"Upload")))))}_renderUploadPanel(){const{uploadProgress:e,uploadProgressString:t,abortFunction:n,downloadFileName:r,sanitizedProfileDataPromise:o}=this.props;return X.createElement("div",{className:"menuButtonsPublishUpload photon-body-10","data-testid":"MenuButtonsPublish-container"},X.createElement("div",{className:"menuButtonsPublishUploadTop"},X.createElement("div",{className:"menuButtonsPublishUploadTitle photon-title-20"},X.createElement(ue,{id:"MenuButtons--publish--upload-title"},"Uploading profile…")),X.createElement("div",{className:"menuButtonsPublishUploadPercentage"},t),X.createElement("div",{className:"menuButtonsPublishUploadBar"},X.createElement("div",{className:"menuButtonsPublishUploadBarInner",style:{width:100*e+"%"}}))),X.createElement("div",{className:"menuButtonsPublishButtons"},X.createElement(aE,{downloadFileName:r,sanitizedProfileDataPromise:o,onCompressError:this._onCompressError}),X.createElement("button",{type:"button",className:"photon-button photon-button-default menuButtonsPublishButton menuButtonsPublishButtonsCancelUpload",onClick:n},X.createElement(ue,{id:"MenuButtons--publish--cancel-upload"},"Cancel Upload"))))}_renderErrorPanel(){const{uploadError:e,resetUploadState:t}=this.props;let n="There was an unknown error when trying to upload the profile.";return e&&"object"==typeof e&&"message"in e&&"string"==typeof e.message?n=e.message:"string"==typeof e&&(n=e),X.createElement("div",{className:"menuButtonsPublishUpload photon-body-10","data-testid":"MenuButtonsPublish-container"},X.createElement("div",{className:"photon-message-bar photon-message-bar-error photon-message-bar-inner-content"},X.createElement("div",{className:"photon-message-bar-inner-text"},X.createElement(ue,{id:"MenuButtons--publish--message-something-went-wrong"},"Uh oh, something went wrong when uploading the profile.")),X.createElement("button",{className:"photon-button photon-button-micro photon-message-bar-action-button",type:"button",onClick:t},X.createElement(ue,{id:"MenuButtons--publish--message-try-again"},"Try again"))),X.createElement("div",{className:"menuButtonsPublishError"},n))}render(){const{uploadPhase:e}=this.props;switch(e){case"error":return this._renderErrorPanel();case"local":case"uploaded":return this._renderPublishPanel();case"uploading":case"compressing":return this._renderUploadPanel();default:throw Je(e)}}}const oE=je({mapStateToProps:e=>({profile:Ds(e),rootRange:xs(e),shouldShowPreferenceOption:ll(e),profileContainsPrivateBrowsingInformation:Ul(e),checkedSharingOptions:Lu(e),downloadFileName:Ou(e),sanitizedProfileDataPromise:Hu(e),uploadPhase:ju(e),uploadProgress:$u(e),uploadProgressString:Yu(e),uploadError:Ku(e),shouldSanitizeByDefault:Ju(e),abortFunction:qu(e),timelineTrackOrganizationType:ii(e).type}),mapDispatchToProps:{toggleCheckedSharingOptions:Gk,attemptToPublish:Zk,resetUploadState:$k},component:rE});class aE extends X.PureComponent{constructor(...e){super(...e),this._isMounted=!1,this.state={sanitizedProfileData:null,prevPromise:null,error:null}}static getDerivedStateFromProps(e,t){return t.prevPromise!==e.sanitizedProfileDataPromise?{sanitizedProfileData:null,prevPromise:e.sanitizedProfileDataPromise,error:null}:null}_unwrapPromise(){const{sanitizedProfileDataPromise:e}=this.props;e.then((e=>{this._isMounted&&this.setState({sanitizedProfileData:e,error:null})}),(e=>{this._isMounted&&(this.props.onCompressError(e),console.error("Error while compressing the profile data",e),this.setState({sanitizedProfileData:null,error:e}))}))}componentDidMount(){this._isMounted=!0,this._unwrapPromise()}componentDidUpdate(e){e.sanitizedProfileDataPromise!==this.props.sanitizedProfileDataPromise&&this._unwrapPromise()}componentWillUnmount(){this._isMounted=!1}render(){const{downloadFileName:e}=this.props,{sanitizedProfileData:t,error:n}=this.state,r="photon-button menuButtonsPublishButton menuButtonsPublishButtonsDownload";if(t){const n=new Blob([t],{type:"application/octet-binary"});return X.createElement(Xk,{blob:n,download:`${e}.gz`,className:r},X.createElement("span",{className:"menuButtonsPublishButtonsSvg menuButtonsPublishButtonsSvgDownload"}),X.createElement(ue,{id:"MenuButtons--publish--download"},"Download")," ",X.createElement("span",{className:"menuButtonsDownloadSize"},"(",(e=>{if(!Number.isFinite(e))throw new TypeError(`Expected a finite number, got ${typeof e}: ${e}`);const t=e<0;if(t&&(e=-e),e<1)return(t?"-":"")+e+" B";const n=Math.min(Math.floor(Math.log10(e)/3),Qk.length-1);return(t?"-":"")+Number((e/Math.pow(1e3,n)).toPrecision(3))+" "+Qk[n]})(n.size),")"))}return n?X.createElement("button",{type:"button",className:r,disabled:!0},X.createElement(ue,{id:"MenuButtons--publish--download"},"Download")):X.createElement("button",{type:"button",className:Xg()(r,"menuButtonsPublishButtonDisabled")},X.createElement(ue,{id:"MenuButtons--publish--compressing"},"Compressing…"))}}var iE=n(4971),sE={};sE.styleTagTransform=M(),sE.setAttributes=B(),sE.insert=S().bind(null,"head"),sE.domAPI=E(),sE.insertStyleElement=P(),w()(iE.Z,sE),iE.Z&&iE.Z.locals&&iE.Z.locals;class lE extends X.PureComponent{constructor(...e){super(...e),this._permalinkTextField=void 0,this._takePermalinkTextFieldRef=e=>{this._permalinkTextField=e},this.state={fullUrl:"",shortUrl:""},this._shortenUrlAndFocusTextFieldOnCompletion=async()=>{const{fullUrl:e}=this.state,t=window.location.href;if(e!==t){const e=this.props.injectedUrlShortener||nu;try{const n=await e(t);this.setState({shortUrl:n,fullUrl:t})}catch(e){console.warn("Unable to shorten the URL.",e),this.setState({shortUrl:t,fullUrl:""})}}const n=this._permalinkTextField;n&&(n.focus(),n.select())},this._onPermalinkPanelClose=()=>{this._permalinkTextField&&this._permalinkTextField.blur()}}render(){return X.createElement(ue,{id:"MenuButtons--permalink--button",attrs:{label:!0}},X.createElement(xk,{buttonClassName:"menuButtonsButton menuButtonsButton-hasIcon menuButtonsPermalinkButtonButton",label:"Permalink",initialOpen:this.props.isNewlyPublished,onPanelOpen:this._shortenUrlAndFocusTextFieldOnCompletion,onPanelClose:this._onPermalinkPanelClose,panelClassName:"menuButtonsPermalinkPanel",panelContent:X.createElement("input",{"data-testid":"MenuButtonsPermalink-input",type:"text",className:"menuButtonsPermalinkTextField photon-input",value:this.state.shortUrl,readOnly:"readOnly",ref:this._takePermalinkTextFieldRef})}))}}var cE=n(2867),dE={};dE.styleTagTransform=M(),dE.setAttributes=B(),dE.insert=S().bind(null,"head"),dE.domAPI=E(),dE.insertStyleElement=P(),w()(cE.Z,dE),cE.Z&&cE.Z.locals&&cE.Z.locals;class uE extends X.PureComponent{constructor(...e){super(...e),this._hasBeenDeleted=!1,this._componentDeleteButtonRef=X.createRef(),this.onCloseConfirmDialog=()=>{this._hasBeenDeleted&&this.props.onCloseSuccessMessage(),this.props.onCloseConfirmDialog()},this.onProfileDeleted=()=>{this._hasBeenDeleted=!0},this.onProfileDeleteCanceled=()=>{this._componentDeleteButtonRef.current&&this._componentDeleteButtonRef.current.closePanel()}}render(){const{profileName:e,smallProfileName:t,buttonClassName:n,jwtToken:r,profileToken:o}=this.props;return X.createElement(ue,{id:"ProfileDeleteButton--delete-button",attrs:{label:!0,title:!0},vars:{smallProfileName:t}},X.createElement(xk,{ref:this._componentDeleteButtonRef,buttonClassName:Xg()(n,"photon-button","photon-button-default"),panelClassName:"profileDeletePanel",label:"Delete",title:`Click here to delete the profile ${t}`,onPanelOpen:this.props.onOpenConfirmDialog,onPanelClose:this.onCloseConfirmDialog,panelContent:X.createElement(hE,{profileName:e,profileToken:o,jwtToken:r,onProfileDeleted:this.onProfileDeleted,onProfileDeleteCanceled:this.onProfileDeleteCanceled})}))}}class hE extends X.PureComponent{constructor(...e){super(...e),this.state={error:null,status:"idle"},this.onConfirmDeletion=async()=>{const{profileToken:e,jwtToken:t}=this.props;this.setState({status:"working"});try{if(!t)throw new Error("We have no JWT token for this profile, so we can't delete it. This shouldn't happen.");await async function({profileToken:e,jwtToken:t}){const n=`${Mn}/profile/${e}`,r=await fetch(n,{method:"DELETE",headers:{Accept:Lk,"Content-Type":"application/json",Authorization:`Bearer ${t}`}});if(!r.ok)throw new Error(`An error happened while deleting the profile with the token "${e}": ${r.statusText} (${r.status})`)}({profileToken:e,jwtToken:t}),await async function(e){return(await $h()).delete(jh,e)}(e),this.setState({status:"deleted"}),this.props.onProfileDeleted()}catch(e){this.setState({error:e,status:"idle"}),console.error("An error was triggered when we tried to delete a profile.",e)}}}preventClick(e){e.preventDefault()}_renderPossibleErrorMessage(){const{error:e}=this.state;return e?X.createElement(ue,{id:"ProfileDeletePanel--delete-error",elems:{a:X.createElement("a",{href:"#",title:e.message,onClick:this.preventClick})}},X.createElement("p",{className:"profileDeleteButtonError"},"An error happened while deleting this profile."," ",X.createElement("a",null,"Hover to know more."))):null}render(){const{profileName:e}=this.props,{status:t}=this.state;return"deleted"===t?X.createElement(pE,null):X.createElement("div",{className:"confirmDialog"},X.createElement(ue,{id:"ProfileDeletePanel--dialog-title",vars:{profileName:e}},X.createElement("h2",{className:"confirmDialogTitle"},"Delete ",e)),X.createElement("div",{className:"confirmDialogContent"},X.createElement(ue,{id:"ProfileDeletePanel--dialog-confirmation-question"},"Are you sure you want to delete uploaded data for this profile? Links that were previously shared will no longer work."),this._renderPossibleErrorMessage()),X.createElement("div",{className:"confirmDialogButtons"},X.createElement(ue,{id:"ProfileDeletePanel--dialog-cancel-button",attrs:{value:!0}},X.createElement("input",{type:"button",className:"photon-button photon-button-default",value:"Cancel",disabled:"working"===t,onClick:this.props.onProfileDeleteCanceled})),X.createElement(ue,{id:"working"===t?"ProfileDeletePanel--dialog-deleting-button":"ProfileDeletePanel--dialog-delete-button",attrs:{value:!0}},X.createElement("input",{type:"button",className:"photon-button photon-button-destructive",value:"working"===t?"Deleting…":"Delete",disabled:"working"===t,onClick:this.onConfirmDeletion}))))}}function pE(e){return X.createElement(ue,{id:"ProfileDeletePanel--message-success"},X.createElement("p",{className:"profileDeleteButtonSuccess"},"The uploaded data was successfully deleted."))}class mE extends X.PureComponent{constructor(...e){super(...e),this.state={metaInfoPanelState:"initial"},this._deleteThisProfileOnServer=()=>{this.setState({metaInfoPanelState:"delete-confirmation"})},this._onProfileDeleted=()=>{this.props.profileRemotelyDeleted(),this.setState({metaInfoPanelState:"profile-deleted"})},this._resetMetaInfoState=()=>{this.setState({metaInfoPanelState:"initial"})},this._changeTimelineTrackOrganizationToFull=()=>{this.props.changeTimelineTrackOrganization({type:"full"})}}componentDidMount(){this.props.dismissNewlyPublished()}_getUploadedStatus(e,t){switch(e){case"public":case"compare":return"uploaded";case"from-browser":case"unpublished":case"from-file":case"local":return"local";case"from-url":return va(t)?"local":"uploaded";case"none":case"uploaded-recordings":throw new Error(`The datasource ${e} shouldn't happen here.`);default:throw Je(e)}}_renderUploadedProfileActions(e){return X.createElement("div",{className:"profileInfoUploadedActions"},X.createElement("div",{className:"profileInfoUploadedDate"},X.createElement("span",{className:"profileInfoUploadedLabel"},X.createElement(ue,{id:"MenuButtons--index--profile-info-uploaded-label"},"Uploaded:")),e.publishedDate.toLocaleString(void 0,{month:"short",year:"numeric",day:"numeric",weekday:"short",hour:"numeric",minute:"numeric"})),X.createElement("div",{className:"profileInfoUploadedActionsButtons"},X.createElement("button",{type:"button",className:"photon-button photon-button-default photon-button-micro",onClick:this._deleteThisProfileOnServer,title:null===e.jwtToken?"This profile cannot be deleted because we lack the authorization information.":null,disabled:null===e.jwtToken},X.createElement(ue,{id:"MenuButtons--index--profile-info-uploaded-actions"},"Delete"))))}_renderMetaInfoPanel(){const{currentProfileUploadedInformation:e}=this.props,{metaInfoPanelState:t}=this.state;switch(t){case"initial":return X.createElement(X.Fragment,null,X.createElement("h2",{className:"metaInfoSubTitle"},X.createElement(ue,{id:"MenuButtons--index--metaInfo-subtitle"},"Profile Information")),e?this._renderUploadedProfileActions(e):null,X.createElement(Rk,null));case"delete-confirmation":{if(!e)throw new Error("We're in the state \"delete-confirmation\" but there's no stored data for this profile, this should not happen.");const{name:t,profileToken:n,jwtToken:r}=e;if(!r)throw new Error("We're in the state \"delete-confirmation\" but there's no JWT token for this profile, this should not happen.");const o=n.slice(0,6),a=t||`Profile #${o}`;return X.createElement(hE,{profileName:a,profileToken:n,jwtToken:r,onProfileDeleted:this._onProfileDeleted,onProfileDeleteCanceled:this._resetMetaInfoState})}case"profile-deleted":return X.createElement(pE,null);default:throw Je(t)}}_renderMetaInfoButton(){return X.createElement(ue,{id:"MenuButtons--index--metaInfo-button",attrs:{label:!0}},X.createElement(xk,{buttonClassName:"menuButtonsButton menuButtonsMetaInfoButtonButton menuButtonsButton-hasIcon",label:"",onPanelClose:this._resetMetaInfoState,panelClassName:"metaInfoPanel",panelContent:this._renderMetaInfoPanel()}))}_renderFullViewButtonForActiveTab(){const{timelineTrackOrganization:e}=this.props;return"active-tab"!==e.type?null:X.createElement("button",{type:"button",className:"menuButtonsButton menuButtonsButton-hasIcon menuButtonsRevertToFullView",onClick:this._changeTimelineTrackOrganizationToFull},X.createElement(ue,{id:"MenuButtons--index--full-view"},"Full View"))}_renderPublishPanel(){const{uploadPhase:e,dataSource:t,abortFunction:n,profileUrl:r}=this.props;if("uploading"===e||"compressing"===e)return X.createElement("button",{type:"button",className:"menuButtonsButton menuButtonsShareButtonButton menuButtonsButton-hasIcon menuButtonsShareButtonButton-uploading",onClick:n},X.createElement(ue,{id:"MenuButtons--index--cancel-upload"},"Cancel Upload"));const o="uploaded"===this._getUploadedStatus(t,r),a="error"===e;let i="MenuButtons--index--share-upload";return o&&(i="MenuButtons--index--share-re-upload"),a&&(i="MenuButtons--index--share-error-uploading"),X.createElement(ue,{id:i,attrs:{label:!0}},X.createElement(xk,{buttonClassName:Xg()("menuButtonsButton menuButtonsShareButtonButton menuButtonsButton-hasIcon",{menuButtonsShareButtonError:a}),panelClassName:"menuButtonsPublishPanel",label:"",panelContent:X.createElement(oE,{isRepublish:o})}))}_renderPermalink(){const{dataSource:e,isNewlyPublished:t,injectedUrlShortener:n,profileUrl:r}=this.props;return"uploaded"===this._getUploadedStatus(e,r)?X.createElement(lE,{isNewlyPublished:t,injectedUrlShortener:n}):null}_renderRevertProfile(){const{hasPrePublishedState:e,revertToPrePublishedState:t}=this.props;return e?X.createElement("button",{type:"button",className:"menuButtonsButton menuButtonsButton-hasIcon menuButtonsRevertButton",onClick:t},X.createElement(ue,{id:"MenuButtons--index--revert"},"Revert to Original Profile")):null}render(){return X.createElement(X.Fragment,null,this._renderFullViewButtonForActiveTab(),this._renderRevertProfile(),this._renderMetaInfoButton(),this._renderPublishPanel(),this._renderPermalink(),X.createElement("a",{href:"/docs/",target:"_blank",className:"menuButtonsButton menuButtonsButton-hasLeftBorder",title:"Open the documentation in a new window"},X.createElement(ue,{id:"MenuButtons--index--docs"},"Docs"),X.createElement("i",{className:"open-in-new"})))}}const fE=je({mapStateToProps:e=>({rootRange:xs(e),dataSource:Va(e),profileUrl:Za(e),isNewlyPublished:uc(e),uploadPhase:ju(e),hasPrePublishedState:Qu(e),abortFunction:qu(e),timelineTrackOrganization:ii(e),currentProfileUploadedInformation:yc(e)}),mapDispatchToProps:{dismissNewlyPublished:nf,revertToPrePublishedState:qk,changeTimelineTrackOrganization:hm,profileRemotelyDeleted:pf},component:mE});class gE extends X.PureComponent{async updateCurrentProfileInformationState(){const{hash:e,setCurrentProfileUploadedInformation:t}=this.props,n=await Yh(e);this.props.hash===e&&t(n||null)}componentDidMount(){this.updateCurrentProfileInformationState()}componentDidUpdate(){this.updateCurrentProfileInformationState()}render(){return null}}const AE=je({mapStateToProps:e=>({hash:ja(e)}),mapDispatchToProps:{setCurrentProfileUploadedInformation:hf},component:gE});var bE=n(1528),CE={};CE.styleTagTransform=M(),CE.setAttributes=B(),CE.insert=S().bind(null,"head"),CE.domAPI=E(),CE.insertStyleElement=P(),w()(bE.Z,CE),bE.Z&&bE.Z.locals&&bE.Z.locals;class yE extends X.PureComponent{render(){const{symbolicationStatus:e,waitingForLibs:t}=this.props;if("SYMBOLICATING"===e){if(t.size>0){const e=Array.from(t.values()).map((e=>e.debugName));return X.createElement("div",{className:"symbolicationStatusOverlay"},X.createElement("span",{className:"symbolicationStatusOverlayThrobber"}),`Waiting for symbols for ${n=e.length,1===n?"library":"libraries"} ${function(e){switch(e.length){case 0:return"";case 1:return e[0];default:return e.slice(0,e.length-1).join(", ")+" and "+e[e.length-1]}}(e)}...`)}return X.createElement("div",{className:"symbolicationStatusOverlay"},X.createElement("span",{className:"symbolicationStatusOverlayThrobber"}),"Symbolicating call stacks...")}var n;return X.createElement("div",{className:"symbolicationStatusOverlay hidden"})}}const vE=je({mapStateToProps:e=>({symbolicationStatus:Ss(e),waitingForLibs:ks(e).waitingForLibs}),component:yE});var wE=n(9576),kE={};kE.styleTagTransform=M(),kE.setAttributes=B(),kE.insert=S().bind(null,"head"),kE.domAPI=E(),kE.insertStyleElement=P(),w()(wE.Z,kE),wE.Z&&wE.Z.locals&&wE.Z.locals;class EE extends X.PureComponent{constructor(...e){super(...e),this.state={focusedWithKey:null,focusGeneration:0},this.inputRef=X.createRef(),this.changeProfileNameIfChanged=e=>{const{changeProfileName:t,profileNameWithDefault:n}=this.props,r=e.currentTarget.value.trim();this.blurInput(),r!==n&&t(r||null)},this.blurOnEscapeOrEnter=e=>{switch(e.key){case"Escape":this.blurInput();break;case"Enter":this.changeProfileNameIfChanged(e)}},this.handleButtonFocus=()=>{this.setState({focusedWithKey:this.getKey()});const e=this.inputRef.current;e&&requestAnimationFrame((()=>{e.focus(),e.select()}))}}blurInput(){this.setState((e=>({focusedWithKey:null,focusGeneration:e.focusGeneration+1})))}getKey(){return`${this.props.profileNameWithDefault}-${this.state.focusGeneration}`}render(){const{focusedWithKey:e}=this.state,{profileNameWithDefault:t}=this.props,n="Edit the profile name",r=this.getKey(),o=e===r;return X.createElement(X.Fragment,null,X.createElement("button",{type:"button",style:{display:o?"none":null},title:n,className:"profileNameButton menuButtonsButton menuButtonsButton-hasRightBorder menuButtonsButton-hasIcon",onFocus:this.handleButtonFocus,onClick:this.handleButtonFocus},t),X.createElement("input",{key:r,className:"profileNameInput",style:{display:o?null:"none"},defaultValue:t,"aria-label":"Profile name",title:n,onBlur:this.changeProfileNameIfChanged,ref:this.inputRef,onKeyDown:this.blurOnEscapeOrEnter}))}}const xE=je({mapStateToProps:e=>({profileNameWithDefault:Oi(e)}),mapDispatchToProps:{changeProfileName:Kp},component:EE});class SE extends X.PureComponent{constructor(...e){super(...e),this.handleUnload=e=>{e.preventDefault(),e.returnValue="Are you sure you want to close while uploading?"}}manageBeforeUnloadListener(){const{isUploading:e}=this.props;e?window.addEventListener("beforeunload",this.handleUnload):window.removeEventListener("beforeunload",this.handleUnload)}componentDidMount(){this.manageBeforeUnloadListener()}componentDidUpdate(){this.manageBeforeUnloadListener()}componentWillUnmount(){window.removeEventListener("beforeunload",this.handleUnload)}render(){return!1}}const TE=je({mapStateToProps:e=>({isUploading:"uploading"===ju(e)}),component:SE});var BE=n(5946),_E={};_E.styleTagTransform=M(),_E.setAttributes=B(),_E.insert=S().bind(null,"head"),_E.domAPI=E(),_E.insertStyleElement=P(),w()(BE.Z,_E),BE.Z&&BE.Z.locals&&BE.Z.locals;class IE extends X.PureComponent{constructor(...e){super(...e),this.state={isOpen:!1,focusAfterClosed:null},this._focusArea=X.createRef(),this._open=e=>{if(e.isOpen)return{};const t=document.activeElement;return this._trapFocus(),this._focus(),{isOpen:!0,focusAfterClosed:t}},this._close=e=>{const{focusAfterClosed:t,isOpen:n}=e;return n?(this._untrapFocus(),t&&requestAnimationFrame((()=>{t.focus()})),{isOpen:!1,focusAfterClosed:null}):{}},this._handleCloseClick=()=>{this.setState(this._close)},this._handleKeyPress=e=>{const t=e.target;switch(e.key){case"?":if("INPUT"===t.tagName||"TEXTAREA"===t.tagName||"SELECT"===t.tagName)return;this.setState((e=>e.isOpen?this._close(e):this._open(e)));break;case"Escape":this.setState(this._close)}},this._trapFocusHandler=e=>{const t=this._focusArea.current;t&&(t.contains(e.target)||t.focus())}}componentDidMount(){window.addEventListener("keydown",this._handleKeyPress)}_focus(){requestAnimationFrame((()=>{const e=this._focusArea.current;e&&e.focus()}))}componentWillUnmount(){window.removeEventListener("keydown",this._handleKeyPress),this._untrapFocus()}_trapFocus(){document.addEventListener("focus",this._trapFocusHandler,!0)}_untrapFocus(){document.removeEventListener("focus",this._trapFocusHandler,!0)}maybeRenderShortcuts(){return this.state.isOpen?X.createElement(X.Fragment,null,X.createElement("div",{className:"appKeyboardShortcutsHeader"},X.createElement("div",{className:"appKeyboardShortcutsHeaderTitle",id:"AppKeyboardShortcutsHeaderTitle"},"Keyboard shortcuts"),X.createElement("button",{type:"button",className:"appKeyboardShortcutsHeaderClose",onClick:this._handleCloseClick},"Close")),X.createElement("div",{className:"appKeyboardShortcutsContent"},X.createElement("div",{className:"appKeyboardShortcutsColumn"},X.createElement("h2",null,"Call Tree"),X.createElement(PE,{label:"Close call node",shortcut:"ArrowLeft"}),X.createElement(PE,{label:"Open call node",shortcut:"ArrowRight"}),X.createElement(PE,{label:"Open all child call nodes",shortcut:"*"}),X.createElement(PE,{label:"Copy call node label",shortcut:"ctrl,c",macShortcut:"cmd,c"}),X.createElement("h2",null,"Flame Graph"),X.createElement(PE,{label:"Move view up",shortcut:"w"}),X.createElement(PE,{label:"Move view down",shortcut:"s"}),X.createElement(PE,{label:"Move selection up",shortcut:"ArrowUp"}),X.createElement(PE,{label:"Move selection down",shortcut:"ArrowDown"}),X.createElement(PE,{label:"Move selection left",shortcut:"ArrowLeft"}),X.createElement(PE,{label:"Move selection right",shortcut:"ArrowRight"}),X.createElement(PE,{label:"Copy call node label",shortcut:"ctrl,c",macShortcut:"cmd,c"}),X.createElement("h2",null,"Marker Table"),X.createElement(PE,{label:"Copy marker label",shortcut:"ctrl,c",macShortcut:"cmd,c"})),X.createElement("div",{className:"appKeyboardShortcutsColumn"},X.createElement("h2",null,"Timeline"),X.createElement(PE,{label:"Select multiple threads",shortcut:"ctrl,click",macShortcut:"cmd,click"}),X.createElement("h2",null,"Call Tree Transforms"),X.createElement(PE,{label:"Merge function",shortcut:"m"}),X.createElement(PE,{label:"Merge node only",shortcut:"M"}),X.createElement(PE,{label:"Focus on function",shortcut:"f"}),X.createElement(PE,{label:"Focus on subtree only",shortcut:"F"}),X.createElement(PE,{label:"Collapse function",shortcut:"c"}),X.createElement(PE,{label:"Collapse library",shortcut:"C"}),X.createElement(PE,{label:"Drop samples with this function",shortcut:"d"})))):null}render(){const{wrapperClassName:e,children:t}=this.props,{isOpen:n}=this.state;return X.createElement(X.Fragment,null,X.createElement("div",{className:Xg()(e,{appKeyboardShortcutsNoInteract:n})},t),X.createElement("div",{className:Xg()({appKeyboardShortcuts:!0,open:n})},X.createElement("div",{className:"appKeyboardShortcutsBox",ref:this._focusArea,tabIndex:"0",role:"dialog","aria-modal":"true","aria-labelledby":"AppKeyboardShortcutsHeaderTitle"},this.maybeRenderShortcuts())))}}function PE(e){let t=e.shortcut;return e.macShortcut&&window.navigator.platform.includes("Mac")&&(t=e.macShortcut),X.createElement("div",{className:"appKeyboardShortcutsRow"},X.createElement("div",{className:"appKeyboardShortcutsLabel"},e.label),t.split(",").map(((e,t)=>X.createElement("kbd",{key:t,className:"appKeyboardShortcutsShortcut"},e))))}function NE(e){return{type:"CHANGE_SELECTED_ZIP_FILE",selectedZipFileIndex:e}}function ME(e){return{type:"CHANGE_EXPANDED_ZIP_FILES",expandedZipFileIndexes:e}}function FE(e,t=!1){return async(n,r)=>{const o=Ql(r()),a=o.path[e],i=o.file[e];if(!i)throw new Error("Attempted to load a zip file that did not exist or was a directory.");n({type:"PROCESS_PROFILE_FROM_ZIP_FILE",pathInZipFile:a});try{const e=await Rd(await i.async("string")),o=Kl(r());o.pathInZipFile===a&&"PROCESS_PROFILE_FROM_ZIP_FILE"===o.phase&&await n(im(e,{pathInZipFile:a},t))}catch(e){console.error("Failed to process the profile in the zip file with the following error:"),console.error(e),n({type:"FAILED_TO_PROCESS_PROFILE_FROM_ZIP_FILE",error:e})}}}function RE(e){return(t,n)=>{const r=Ql(n()).path.indexOf(e);return-1===r?(t(LE(e)),Promise.resolve()):t(FE(r))}}function DE(){return{type:"RETURN_TO_ZIP_FILE_LIST"}}function LE(e){return{type:"FILE_NOT_FOUND_IN_ZIP_FILE",pathInZipFile:e}}var OE=n(3038),UE={};UE.styleTagTransform=M(),UE.setAttributes=B(),UE.insert=S().bind(null,"head"),UE.domAPI=E(),UE.insertStyleElement=P(),w()(OE.Z,UE),OE.Z&&OE.Z.locals&&OE.Z.locals;var zE=n(7115),GE={};GE.styleTagTransform=M(),GE.setAttributes=B(),GE.insert=S().bind(null,"head"),GE.domAPI=E(),GE.insertStyleElement=P(),w()(zE.Z,GE),zE.Z&&zE.Z.locals&&zE.Z.locals;class WE extends X.PureComponent{constructor(...e){super(...e),this._canvas=null,this._takeCanvasRef=e=>this._canvas=e,this._resizeListener=()=>this.forceUpdate(),this._onClick=e=>{const t=this._canvas;if(t){const{rangeStart:n,rangeEnd:r,thread:o,interval:a}=this.props,i=t.getBoundingClientRect(),s=n+(e.pageX-i.left)/i.width*(r-n),l=function(e,t,n){const r=(0,Jn.e)(e.time,t);if(0===r)return 0;if(r===e.length)return e.length-1;const o=r-1;let a=n,i=n;if(e.weight){const t=e.weight;a=Math.abs(t[r]),i=Math.abs(t[o])}return e.time[r]+a/2-t<t-(e.time[o]+i/2)?r:r-1}(o.samples,s,a);if(null===o.samples.stack[l])return;this.props.onSampleClick(e,l)}}}_renderCanvas(){const e=this._canvas;null!==e&&Kn("ThreadHeightGraph render",(()=>{this.drawCanvas(e)}))}componentDidMount(){window.addEventListener("resize",this._resizeListener),this.forceUpdate()}componentWillUnmount(){window.removeEventListener("resize",this._resizeListener)}drawCanvas(e){const{thread:t,tabFilteredThread:n,interval:r,rangeStart:o,rangeEnd:a,callNodeInfo:i,selectedCallNodeIndex:s,categories:l,stacksGrowFromCeiling:c,maxValue:d,heightFunc:u}=this.props,h=e.ownerDocument?e.ownerDocument.defaultView.devicePixelRatio:1,p=e.getBoundingClientRect();e.width=Math.round(p.width*h),e.height=Math.round(p.height*h);const m=e.getContext("2d"),{callNodeTable:f,stackIndexToCallNodeIndex:g}=i,A=or(t.samples.stack,g),b=or(n.samples.stack,g),C=t.isJsTracer?null:ar(f,A,b,s),y=[o,a],v=y[1]-y[0],w=e.width/v,k=e.height/d,E=r*w,x=E<2?1.2:1,S=Math.max(.8,E*x),T=y[0]-S/w,B=y[1],_=(0,Jn.e)(t.samples.time,T),I=(0,Jn.e)(t.samples.time,B,_),P={height:[],xPos:[]},N={height:[],xPos:[]},M={height:[],xPos:[]},F=.25/w;let R=-1/0;for(let e=_;e<I;e++){const n=t.samples.time[e];if(n<R)continue;const r=A[e];if(null===r)continue;const o=u({sampleIndex:e,callNodeIndex:r,yPixelsPerHeight:k}),a=(n-y[0])*w;let i;if(null!==C&&"SELECTED"===C[e])i=M;else{const n=nt(t.samples.stack[e],"A stack must exist for this sample, since a callNodeIndex exists.");i="Idle"===l[t.stackTable.category[n]].name?N:P}i.height.push(o),i.xPos.push(a),R=n+F}function D(t,n){m.fillStyle=n;for(let n=0;n<t.height.length;n++){const r=t.height[n],o=c?0:e.height-r,a=t.xPos[n];m.fillRect(a,o,S,r)}}D(P,bC.Z_),D(M,bC.WW),D(N,"#c5e1fe")}render(){this._renderCanvas();const{className:e,trackName:t}=this.props;return X.createElement("div",{className:e},X.createElement("canvas",{className:Xg()(`${this.props.className}Canvas`,"threadHeightGraphCanvas"),ref:this._takeCanvasRef,onClick:this._onClick},X.createElement("h2",null,"Stack Graph for ",t),X.createElement("p",null,"This graph charts the stack height of each sample.")))}}class HE extends X.PureComponent{constructor(...e){super(...e),this._heightFunction=({callNodeIndex:e,yPixelsPerHeight:t})=>{const{callNodeInfo:n}=this.props,{callNodeTable:r}=n;return r.depth[e]*t}}render(){const{className:e,thread:t,tabFilteredThread:n,interval:r,rangeStart:o,rangeEnd:a,callNodeInfo:i,selectedCallNodeIndex:s,categories:l,trackName:c,onSampleClick:d}=this.props,{callNodeTable:u}=i;let h=0;for(let e=0;e<u.depth.length;e++)u.depth[e]>h&&(h=u.depth[e]);return X.createElement(WE,{heightFunc:this._heightFunction,maxValue:h,className:e,trackName:c,interval:r,thread:t,tabFilteredThread:n,rangeStart:o,rangeEnd:a,callNodeInfo:i,selectedCallNodeIndex:s,categories:l,onSampleClick:d})}}class VE extends X.PureComponent{constructor(...e){super(...e),this._heightFunction=({sampleIndex:e,yPixelsPerHeight:t})=>{const{thread:n}=this.props,{samples:r}=n;return e>=r.length-1?0:(nt(r.threadCPUDelta)[e+1]||0)/(r.time[e+1]-r.time[e])*t}}render(){const{className:e,thread:t,tabFilteredThread:n,interval:r,rangeStart:o,rangeEnd:a,callNodeInfo:i,selectedCallNodeIndex:s,categories:l,trackName:c,maxThreadCPUDeltaPerMs:d,onSampleClick:u}=this.props;return X.createElement(WE,{heightFunc:this._heightFunction,maxValue:d,className:e,trackName:c,interval:r,thread:t,tabFilteredThread:n,rangeStart:o,rangeEnd:a,callNodeInfo:i,selectedCallNodeIndex:s,categories:l,onSampleClick:u})}}var jE=Object.defineProperty,ZE=(e,t,n)=>(((e,t,n)=>{t in e?jE(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n})(e,"symbol"!=typeof t?t+"":t,n),n),$E=new Map,KE=new WeakMap,YE=0;function qE(e,t,n={},r=undefined){if(void 0===window.IntersectionObserver&&void 0!==r){const o=e.getBoundingClientRect();return t(r,{isIntersecting:r,target:e,intersectionRatio:"number"==typeof n.threshold?n.threshold:0,time:0,boundingClientRect:o,intersectionRect:o,rootBounds:o}),()=>{}}const{id:o,observer:a,elements:i}=function(e){let t=function(e){return Object.keys(e).sort().filter((t=>void 0!==e[t])).map((t=>{return`${t}_${"root"===t?(n=e.root,n?(KE.has(n)||(YE+=1,KE.set(n,YE.toString())),KE.get(n)):"0"):e[t]}`;var n})).toString()}(e),n=$E.get(t);if(!n){const r=new Map;let o;const a=new IntersectionObserver((t=>{t.forEach((t=>{var n;const a=t.isIntersecting&&o.some((e=>t.intersectionRatio>=e));e.trackVisibility&&void 0===t.isVisible&&(t.isVisible=a),null==(n=r.get(t.target))||n.forEach((e=>{e(a,t)}))}))}),e);o=a.thresholds||(Array.isArray(e.threshold)?e.threshold:[e.threshold||0]),n={id:t,observer:a,elements:r},$E.set(t,n)}return n}(n);let s=i.get(e)||[];return i.has(e)||i.set(e,s),s.push(t),a.observe(e),function(){s.splice(s.indexOf(t),1),0===s.length&&(i.delete(e),a.unobserve(e)),0===i.size&&(a.disconnect(),$E.delete(o))}}var JE=class extends X.Component{constructor(e){super(e),ZE(this,"node",null),ZE(this,"_unobserveCb",null),ZE(this,"handleNode",(e=>{this.node&&(this.unobserve(),e||this.props.triggerOnce||this.props.skip||this.setState({inView:!!this.props.initialInView,entry:void 0})),this.node=e||null,this.observeNode()})),ZE(this,"handleChange",((e,t)=>{e&&this.props.triggerOnce&&this.unobserve(),function(e){return"function"!=typeof e.children}(this.props)||this.setState({inView:e,entry:t}),this.props.onChange&&this.props.onChange(e,t)})),this.state={inView:!!e.initialInView,entry:void 0}}componentDidUpdate(e){e.rootMargin===this.props.rootMargin&&e.root===this.props.root&&e.threshold===this.props.threshold&&e.skip===this.props.skip&&e.trackVisibility===this.props.trackVisibility&&e.delay===this.props.delay||(this.unobserve(),this.observeNode())}componentWillUnmount(){this.unobserve(),this.node=null}observeNode(){if(!this.node||this.props.skip)return;const{threshold:e,root:t,rootMargin:n,trackVisibility:r,delay:o,fallbackInView:a}=this.props;this._unobserveCb=qE(this.node,this.handleChange,{threshold:e,root:t,rootMargin:n,trackVisibility:r,delay:o},a)}unobserve(){this._unobserveCb&&(this._unobserveCb(),this._unobserveCb=null)}render(){const{children:e}=this.props;if("function"==typeof e){const{inView:t,entry:n}=this.state;return e({inView:t,entry:n,ref:this.handleNode})}const{as:t,triggerOnce:n,threshold:r,root:o,rootMargin:a,onChange:i,skip:s,trackVisibility:l,delay:c,initialInView:d,fallbackInView:u,...h}=this.props;return X.createElement(t||"div",{ref:this.handleNode,...h},e)}},XE=n(8787),QE={};QE.styleTagTransform=M(),QE.setAttributes=B(),QE.insert=S().bind(null,"head"),QE.domAPI=E(),QE.insertStyleElement=P(),w()(XE.Z,QE),XE.Z&&XE.Z.locals&&XE.Z.locals;class ex extends X.PureComponent{constructor(...e){super(...e),this._canvas=null,this._takeCanvasRef=e=>this._canvas=e,this._canvasState={renderScheduled:!1,inView:!1},this._observerCallback=(e,t)=>{this._canvasState.inView=e,this._canvasState.renderScheduled&&this._renderCanvas()},this._onClick=e=>{const t=this._canvas;if(t){const{rangeStart:n,rangeEnd:r,thread:o}=this.props,a=t.getBoundingClientRect(),i=n+(e.pageX-a.left)/a.width*(r-n),s=function(e,t){const n=(0,Jn.e)(e.time,t);if(0===n)return 0;if(n===e.length)return e.length-1;const r=n-1;let o,a;if(e.weight){const i=e.weight,s=Math.abs(i[n]),l=Math.abs(i[r]);o=e.time[n]+s/2-t,a=t-(e.time[r]+l/2)}else o=e.time[n]-t,a=t-e.time[r];return o<a?n:n-1}(o.samples,i);if(null===o.samples.stack[s])return;this.props.onSampleClick(e,s)}}}_renderCanvas(){if(!this._canvasState.inView)return void(this._canvasState.renderScheduled=!0);this._canvasState.renderScheduled=!1;const e=this._canvas;null!==e&&Kn("ThreadSampleGraph render",(()=>{this.drawCanvas(e)}))}componentDidMount(){this._renderCanvas()}componentDidUpdate(){this._renderCanvas()}drawCanvas(e){const{thread:t,tabFilteredThread:n,interval:r,rangeStart:o,rangeEnd:a,callNodeInfo:i,selectedCallNodeIndex:s,categories:l,width:c,height:d}=this.props,u=e.ownerDocument?e.ownerDocument.defaultView.devicePixelRatio:1;e.width=Math.round(c*u),e.height=Math.round(d*u);const h=e.getContext("2d");let p=0;const{callNodeTable:m,stackIndexToCallNodeIndex:f}=i,g=or(t.samples.stack,f),A=or(n.samples.stack,f),b=t.isJsTracer?null:ar(m,g,A,s);for(let e=0;e<m.depth.length;e++)m.depth[e]>p&&(p=m.depth[e]);const C=[o,a],y=C[1]-C[0],v=e.width/y,w=r*v,k=w<2?1.2:1,E=Math.max(.8,w*k),x=Math.min(E,10),S=C[0]-E/v,T=C[1],B=(0,Jn.e)(t.samples.time,S),_=(0,Jn.e)(t.samples.time,T,B),I=[],P=[],N=[],M=.25/v;let F=-1/0;for(let e=B;e<_;e++){const n=t.samples.time[e];if(n<F)continue;if(null===g[e])continue;const r=(n-C[0])*v-x/2;let o;if(null!==b&&"SELECTED"===b[e])o=N;else{const n=nt(t.samples.stack[e],"A stack must exist for this sample, since a callNodeIndex exists.");o="Idle"===l[t.stackTable.category[n]].name?P:I}o.push(r),F=n+M}function R(t,n){for(let r=0;r<t.length;r++){h.fillStyle=n;const o=0,a=t[r];h.fillRect(a,o,x,e.height)}}R(I,bC.Z_),R(N,bC.WW),R(P,"#c5e1fe")}render(){const{className:e,trackName:t}=this.props;return X.createElement("div",{className:e},X.createElement(JE,{onChange:this._observerCallback},X.createElement("canvas",{className:Xg()(`${this.props.className}Canvas`,"threadSampleGraphCanvas"),ref:this._takeCanvasRef,onClick:this._onClick},X.createElement("h2",null,"Stack Graph for ",t),X.createElement("p",null,"This graph charts the stack height of each sample."))))}}const tx=nv(ex);var nx=n(741),rx={};rx.styleTagTransform=M(),rx.setAttributes=B(),rx.insert=S().bind(null,"head"),rx.domAPI=E(),rx.insertStyleElement=P(),w()(nx.Z,rx),nx.Z&&nx.Z.locals&&nx.Z.locals;const ox=[3,2,2],ax=function(e,t){const n=new Float32Array(15);return n[7]=1,dx(n,t),n}(0,ox);class ix{constructor(e,t,n){this.renderedComponentSettings=void 0,this.mutablePercentageBuffers=void 0,this.mutableFills=void 0,this.renderedComponentSettings=e,this.mutablePercentageBuffers=t,this.mutableFills=n}run(){this._accumulateSampleCategories();const e=this._accumulateUpperEdge().slice();for(const e of this.mutableFills)dx(e.perPixelContribution,ox);return{averageCPUPerPixel:e,upperGraphEdge:this._accumulateUpperEdge()}}_accumulateUpperEdge(){const{mutableFills:e}=this;{const{accumulatedUpperEdge:t,perPixelContribution:n}=e[0];for(let e=0;e<n.length;e++)t[e]=n[e]}let t=e[0].accumulatedUpperEdge;for(const{perPixelContribution:n,accumulatedUpperEdge:r}of e.slice(1)){for(let e=0;e<n.length;e++)r[e]=t[e]+n[e];t=r}return t}_accumulateSampleCategories(){const{fullThread:e,rangeFilteredThread:{samples:t,stackTable:n},interval:r,greyCategoryIndex:o,enableCPUUsage:a,sampleIndexOffset:i}=this.renderedComponentSettings;if(0===t.length)return;let s=t.time[0]-r,l=t.time[0];i>0&&(s=e.samples.time[i-1]);const{threadCPUDelta:c}=t;for(let e=0;e<t.length-1;e++){const r=t.time[e+1],i=t.stack[e],d=null===i?o:n.category[i];let u=null,h=null;a&&c&&(u=nt(c[e]),h=nt(c[e+1])),this._accumulateInCategory(d,e,s,l,r,u,h),s=l,l=r}const d=t.length-1,u=t.stack[d],h=null!==u?n.category[u]:o;let p=null,m=null;if(a&&c){p=nt(c[d]);const t=i+d+1;m=t<e.samples.length?nt(nt(e.samples.threadCPUDelta)[t]):p}this._accumulateInCategory(h,t.length-1,s,l,l+r,p,m)}_accumulateInCategory(e,t,n,r,o,a,i){const{rangeEnd:s,rangeStart:l,categoryDrawStyles:c}=this.renderedComponentSettings;if(r<l||r>=s)return;const d=c[e],u=this.mutablePercentageBuffers[e];"transparent"!==d.selectedFillStyle&&lx(this._pickPercentageBuffer(u,t),this.renderedComponentSettings,n,r,o,a,i,l)}_pickPercentageBuffer(e,t){const{samplesSelectedStates:n}=this.renderedComponentSettings;if(!n)return e.selectedPercentageAtPixel;switch(n[t]){case"FILTERED_OUT_BY_TRANSFORM":return e.filteredOutByTransformPercentageAtPixel;case"FILTERED_OUT_BY_ACTIVE_TAB":return e.filteredOutByTabPercentageAtPixel;case"UNSELECTED_ORDERED_BEFORE_SELECTED":return e.beforeSelectedPercentageAtPixel;case"SELECTED":return e.selectedPercentageAtPixel;case"UNSELECTED_ORDERED_AFTER_SELECTED":return e.afterSelectedPercentageAtPixel;default:throw new Error("Unexpected samplesSelectedStates value")}}}class sx{constructor(e,t,n,r){this.renderedComponentSettings=void 0,this.fills=void 0,this.averageCPUPerPixel=void 0,this.upperGraphEdge=void 0,this.renderedComponentSettings=e,this.fills=t,this.averageCPUPerPixel=n,this.upperGraphEdge=r}getSampleAndCpuRatioAtClick(e,t,n){const{rangeFilteredThread:{samples:r,stackTable:o}}=this.renderedComponentSettings,{devicePixelRatio:a}=window,i=Math.round(e*a),s=Math.round(t*a),l=this._categoryAtDevicePixel(i,s),c=this._getSamplesAtTime(n),d=this._getCPURatioAtX(i,c);if(null===l)return null===d?null:{sample:null,cpuRatioInTimeRange:d};const{category:u,categoryLowerEdge:h,yPercentage:p}=l;let m=h;for(const{sample:e,contribution:t}of c){const n=r.stack[e];if(null===n){console.error(`Stack index was null for sample index ${e}, this shouldn't happen normally, please fix your source of data.`);continue}const a=m+t;if(o.category[n]===u&&p<=a)return{sample:e,cpuRatioInTimeRange:d};m=a}return null}_getCPURatioAtX(e,t){const{rangeFilteredThread:{samples:n},interval:r}=this.renderedComponentSettings;if(0===t.length)return null;if(!n.threadCPUDelta)return null;const o=this.averageCPUPerPixel[e];let a=0;for(const{sample:e}of t)a+=0===e?r:n.time[e]-n.time[e-1];return{cpuRatio:o,timeRange:a}}_categoryAtDevicePixel(e,t){const{canvasPixelWidth:n,canvasPixelHeight:r}=this.renderedComponentSettings;if(e<0||e>=n||t<0||t>=r)return null;const o=1-t/r;let a=null,i=0,s=0;for(const{category:t,accumulatedUpperEdge:n}of this.fills){const r=n[e];if(t!==a&&(a=t,i=s),r!==s){if(o<=r)return{category:t,categoryLowerEdge:i,yPercentage:o};s=r}}return null}_getSamplesAtTime(e){const{rangeStart:t,treeOrderSampleComparator:n,xPixelsPerMs:r}=this.renderedComponentSettings,o=(e-t)*r|0,[a,i]=this._getSampleRangeContributingToPixelWhenSmoothed(o),s=[];for(let e=a;e<i;e++){const t=this._getSmoothedContributionFromSampleToPixel(o,e);t>0&&s.push({sample:e,contribution:t})}return n&&s.sort(((e,t)=>{const r=e.sample,o=t.sample;return n(r,o)})),s}_getSampleRangeContributingToPixelWhenSmoothed(e){const{rangeFilteredThread:{samples:t},rangeStart:n,xPixelsPerMs:r}=this.renderedComponentSettings,o=n+(e-7)/r,a=n+(e+7)/r,i=(0,Jn.e)(t.time,o),s=(0,Jn.e)(t.time,a);return[Math.max(0,i-1),Math.min(t.length-1,s)+1]}_getSmoothedContributionFromSampleToPixel(e,t){const{rangeFilteredThread:{samples:n},enableCPUUsage:r,interval:o,sampleIndexOffset:a,fullThread:i,xPixelsPerMs:s,rangeStart:l}=this.renderedComponentSettings,c=e-7,d=new Float32Array(ax.length),u=n.time[t],h=t+a,p=h>0?i.samples.time[h-1]:u-o,m=h+1<i.samples.length?i.samples.time[h+1]:u+o;let f=null,g=null;const{threadCPUDelta:A}=n;r&&A&&(f=nt(A[t]),g=nt(i.samples.threadCPUDelta)[h+1],g=null!=g?g:f);const b=l+c/s;lx(d,this.renderedComponentSettings,p,u,m,f,g,b);let C=0;for(let e=0;e<ax.length;e++)C+=ax[e]*d[e];return C}}function lx(e,t,n,r,o,a,i,s){const{xPixelsPerMs:l,maxThreadCPUDeltaPerMs:c}=t;let d=((n+r)/2-s)*l,u=((r+o)/2-s)*l;d=Math.max(0,d),u=Math.min(e.length-1,u);const h=(r-s)*l,p=Math.floor(d),m=Math.floor(u),f=Math.floor(h),g=null===a?1:a/(r-n)/c,A=null===i?1:i/(o-r)/c;for(let t=p;t<=f;t++)e[t]+=g;e[p]-=g*(d-p),e[f]-=g*(1-(h-f));for(let t=f;t<=m;t++)e[t]+=A;e[f]-=A*(h-f),e[m]-=A*(1-(u-m))}function cx(e,t,n){if(e.length<n)return void t.set(e);let r=0;for(let t=0;t<=n;++t)r+=e[t];t[0]=r/(2*n+1);for(let o=1;o<n+1;++o)r+=e[o+n],t[o]=r/(2*n+1);for(let o=n+1;o<e.length-n;++o)r-=e[o-n-1],r+=e[o+n],t[o]=r/(2*n+1);for(let o=e.length-n;o<e.length;++o)r-=e[o-n-1],t[o]=r/(2*n+1)}function dx(e,t){let n=e,r=new Float32Array(e.length);for(const e of t)cx(n,r,e),[r,n]=[n,r];if(r===e)for(let t=0;t<e.length;t++)e[t]=n[t]}class ux extends X.PureComponent{constructor(...e){super(...e),this._canvas=X.createRef(),this._categoryDrawStyles=null,this._canvasState={renderScheduled:!1,inView:!1},this._observerCallback=(e,t)=>{this._canvasState.inView=e,this._canvasState.renderScheduled&&this._renderCanvas()}}_renderCanvas(){if(!this._canvasState.inView)return void(this._canvasState.renderScheduled=!0);this._canvasState.renderScheduled=!1;const e=this._canvas.current;null!==e&&Kn("ThreadActivityGraph render",(()=>{this.drawCanvas(e)}))}_getCategoryDrawStyles(e){return null===this._categoryDrawStyles&&(this._categoryDrawStyles=this.props.categories.map((({color:t},n)=>{const r=QC(t);return{...r,category:n,filteredOutByTransformFillStyle:hx(e,r.unselectedFillStyle)}}))),this._categoryDrawStyles}componentDidMount(){this._renderCanvas()}componentDidUpdate(){this._renderCanvas()}drawCanvas(e){const{fullThread:t,rangeFilteredThread:n,interval:r,rangeStart:o,rangeEnd:a,sampleIndexOffset:i,samplesSelectedStates:s,treeOrderSampleComparator:l,categories:c,enableCPUUsage:d,maxThreadCPUDeltaPerMs:u,width:h,height:p}=this.props,m=e.getContext("2d"),f=Math.round(h*window.devicePixelRatio),g=Math.round(p*window.devicePixelRatio);e.width=f,e.height=g;const{fills:A,fillsQuerier:b}=function(e){const t=function({categoryDrawStyles:e,canvasPixelWidth:t}){return e.map((()=>({beforeSelectedPercentageAtPixel:new Float32Array(t),selectedPercentageAtPixel:new Float32Array(t),afterSelectedPercentageAtPixel:new Float32Array(t),filteredOutByTransformPercentageAtPixel:new Float32Array(t),filteredOutByTabPercentageAtPixel:new Float32Array(t)})))}(e),n=function(e,t){const n=e.map(((e,t)=>t)).sort(((t,n)=>e[n].gravity-e[t].gravity)),r=n.map((n=>{const r=e[n],o=t[n];return[{category:r.category,fillStyle:r.unselectedFillStyle,perPixelContribution:o.beforeSelectedPercentageAtPixel,accumulatedUpperEdge:new Float32Array(o.beforeSelectedPercentageAtPixel.length)},{category:r.category,fillStyle:r.selectedFillStyle,perPixelContribution:o.selectedPercentageAtPixel,accumulatedUpperEdge:new Float32Array(o.beforeSelectedPercentageAtPixel.length)},{category:r.category,fillStyle:r.unselectedFillStyle,perPixelContribution:o.afterSelectedPercentageAtPixel,accumulatedUpperEdge:new Float32Array(o.beforeSelectedPercentageAtPixel.length)},{category:r.category,fillStyle:r.filteredOutByTransformFillStyle,perPixelContribution:o.filteredOutByTransformPercentageAtPixel,accumulatedUpperEdge:new Float32Array(o.beforeSelectedPercentageAtPixel.length)}]}));return[].concat(...r)}(e.categoryDrawStyles,t),r=new ix(e,t,n),{averageCPUPerPixel:o,upperGraphEdge:a}=r.run();return{fills:n,fillsQuerier:new sx(e,n,o,a)}}({canvasPixelWidth:f,canvasPixelHeight:g,fullThread:t,rangeFilteredThread:n,interval:r,rangeStart:o,rangeEnd:a,sampleIndexOffset:i,samplesSelectedStates:s,enableCPUUsage:d,maxThreadCPUDeltaPerMs:u,xPixelsPerMs:f/(a-o),treeOrderSampleComparator:l,greyCategoryIndex:c.findIndex((e=>"grey"===e.color))||0,categoryDrawStyles:this._getCategoryDrawStyles(m)});this.props.passFillsQuerier(b),m.globalCompositeOperation="lighter";let C=new Float32Array(f);for(const{fillStyle:e,accumulatedUpperEdge:t}of A){m.fillStyle=e;let n=0;for(;n<f;){const e=px(t,C,n);if(e>=f)break;let r=f;m.beginPath(),m.moveTo(e,(1-C[e])*g);for(let n=e+1;n<f;n++){const e=C[n],o=t[n];if(m.lineTo(n,(1-e)*g),e===o){r=n;break}}for(let n=r-1;n>=e;n--)m.lineTo(n,(1-t[n])*g);m.closePath(),m.fill(),n=r}C=t}}render(){const{className:e,trackName:t,onClick:n}=this.props;return X.createElement(JE,{onChange:this._observerCallback},X.createElement("canvas",{className:e,ref:this._canvas,onClick:n},X.createElement("h2",null,"Activity Graph for ",t),X.createElement("p",null,"This graph shows a visual chart of thread activity.")))}}function hx(e,t){const n=document.createElement("canvas"),r=Math.round(window.devicePixelRatio);n.width=4*r,n.height=4*r;const o=n.getContext("2d");o.scale(r,r);const a=o.createLinearGradient(0,0,4,4);return a.addColorStop(0,t),a.addColorStop(.25,t),a.addColorStop(.25,"transparent"),a.addColorStop(.5,"transparent"),a.addColorStop(.5,t),a.addColorStop(.75,t),a.addColorStop(.75,"transparent"),a.addColorStop(1,"transparent"),o.fillStyle=a,o.fillRect(0,0,4,4),e.createPattern(n,"repeat")}function px(e,t,n){for(let r=n;r<e.length;r++)if(e[r]!==t[r])return r;return e.length}class mx extends X.PureComponent{render(){const{cpuRatio:e,timeRange:t}=this.props,n=`${Dt(e)} (average over ${Wt(t)})`;return X.createElement("div",{className:"tooltipDetails"},X.createElement("div",{className:"tooltipLabel"},"CPU:"),X.createElement("div",null,n))}}class fx extends X.PureComponent{render(){const{sampleIndex:e,rangeFilteredThread:t,categories:n,implementationFilter:r}=this.props,{samples:o,stackTable:a}=t,i=o.stack[e];if(null===i)return"No stack information";const s=a.category[i],l=a.subcategory[i],c=n[s].color;return X.createElement(X.Fragment,null,X.createElement("div",{className:"tooltipDetails"},X.createElement("div",{className:"tooltipLabel"},"Category:"),X.createElement("div",null,X.createElement("span",{className:`colored-square category-color-${c}`}),Lr(n,s,l))),X.createElement("div",{className:"tooltipDetails"},X.createElement("div",{className:"tooltipLabel"},"Stack:")),X.createElement(Cy,{maxStacks:20,stackIndex:i,thread:t,implementationFilter:r,categories:n}))}}class gx extends X.PureComponent{render(){const{cpuRatioInTimeRange:e,sampleIndex:t,rangeFilteredThread:n,categories:r,implementationFilter:o}=this.props;let a=!1;if(null!==t){const{samples:e,stackTable:r}=n,o=e.stack[t];if(e.length>0&&r.length>1){const e=Rr(Sr(n,nt(o)),n);a=e.length>1||"(root)"!==e[0].funcName}}return X.createElement(X.Fragment,null,null===e?null:X.createElement(mx,{cpuRatio:e.cpuRatio,timeRange:e.timeRange}),a&&null!==e?X.createElement(iy,null):null,a&&null!==t?X.createElement(fx,{sampleIndex:t,rangeFilteredThread:n,categories:r,implementationFilter:o}):null)}}function Ax(e){e.stopPropagation()}class bx extends X.PureComponent{constructor(...e){super(...e),this._fillsQuerier=null,this._container=null,this.state={hoveredPixelState:null,mouseX:0,mouseY:0},this._onMouseLeave=()=>{this.setState({hoveredPixelState:null})},this._onMouseMove=e=>{const t=e.currentTarget;if(!t)return;const n=t.getBoundingClientRect();this.setState({hoveredPixelState:this._getSampleAtMouseEvent(e),mouseX:e.pageX,mouseY:n.bottom-11})},this._setFillsQuerier=e=>{this._fillsQuerier=e},this._onClick=e=>{const t=this._getSampleAtMouseEvent(e);this.props.onSampleClick(e,t?t.sample:null)},this._takeContainerRef=e=>{this._container=e}}componentDidMount(){const e=this._container;null!==e&&e.addEventListener("transitionend",Ax)}componentWillUnmount(){const e=this._container;null!==e&&e.removeEventListener("transitionend",Ax)}_getSampleAtMouseEvent(e){const{width:t}=this.props,n=this._fillsQuerier;if(!e.currentTarget||!n)return null;const{rangeStart:r,rangeEnd:o}=this.props,a=e.nativeEvent.offsetX,i=e.nativeEvent.offsetY,s=r+a/t*(o-r);return n.getSampleAndCpuRatioAtClick(a,i,s)}render(){const{fullThread:e,rangeFilteredThread:t,categories:n,trackName:r,interval:o,rangeStart:a,rangeEnd:i,sampleIndexOffset:s,samplesSelectedStates:l,treeOrderSampleComparator:c,maxThreadCPUDeltaPerMs:d,enableCPUUsage:u,implementationFilter:h,width:p,height:m,timelineType:f}=this.props,{hoveredPixelState:g,mouseX:A,mouseY:b}=this.state;return X.createElement("div",{className:this.props.className,onMouseMove:this._onMouseMove,onMouseLeave:this._onMouseLeave,ref:this._takeContainerRef},X.createElement(ux,{className:Xg()(`${this.props.className}Canvas`,"threadActivityGraphCanvas"),trackName:r,fullThread:e,rangeFilteredThread:t,interval:o,rangeStart:a,rangeEnd:i,sampleIndexOffset:s,samplesSelectedStates:l,treeOrderSampleComparator:c,categories:n,passFillsQuerier:this._setFillsQuerier,onClick:this._onClick,enableCPUUsage:u,maxThreadCPUDeltaPerMs:d,width:p,height:m}),null===g?null:X.createElement(PC,{mouseX:A,mouseY:b},X.createElement(gx,{sampleIndex:g.sample,cpuRatioInTimeRange:"cpu-category"===f?g.cpuRatioInTimeRange:null,rangeFilteredThread:t,categories:n,implementationFilter:h})))}}const Cx=nv(bx),yx={top:0,height:6,background:"black",squareCorners:!1,borderLeft:null,borderRight:null},vx={...yx,top:6,background:bC.FL},wx={...vx,background:"#ffc600"};function kx(e){const{data:t,name:n}=e;return n in Ex?Ex[n]:t&&t.type in Ex?Ex[t.type]:Ex.default}const Ex={default:yx,RefreshDriverTick:{...yx,background:"hsla(0,0%,0%,0.05)",height:18,squareCorners:!0},RD:{...yx,background:"hsla(0,0%,0%,0.05)",height:18,squareCorners:!0},Scripts:{...yx,background:bC.yi,top:6},"requestAnimationFrame callbacks":{...yx,background:bC.yi,top:6},Styles:{...yx,background:bC.Nm,top:7},FireScrollEvent:{...yx,background:bC.yi,top:7},Reflow:{...yx,background:bC.wM,top:7},DispatchSynthMouseMove:{...yx,background:bC.yi,top:8},DisplayList:{...yx,background:bC._U,top:9},LayerBuilding:{...yx,background:bC.FL,top:9},Rasterize:{...yx,background:bC.UX,top:10},ForwardTransaction:{...yx,background:bC.qV,top:11},NotifyDidPaint:{...yx,background:bC.r5,top:12},LayerTransaction:{...yx,background:bC.qV},Composite:{...yx,background:bC.wM},Vsync:{...yx,background:"rgb(255, 128, 0)"},LayerContentGPU:{...yx,background:"rgba(0,200,0,0.5)"},LayerCompositorGPU:{...yx,background:"rgba(0,200,0,0.5)"},LayerOther:{...yx,background:"rgb(200,0,0)"},Jank:{...yx,background:"hsl(347, 100%, 60%)",borderLeft:bC.Wn,borderRight:bC.Wn,squareCorners:!0},"BHR-detected hang":{...yx,background:"hsl(347, 100%, 60%)",borderLeft:bC.Wn,borderRight:bC.Wn,squareCorners:!0},GCMajor:{...vx,squareCorners:!0,top:0},GCSlice:vx,GCMinor:vx,"GC Interrupt":vx,CC:{...wx,squareCorners:!0,top:0},CCSlice:wx,ForgetSkippable:wx,IdleCCSlice:wx,IdleForgetSkippable:wx,FileIO:{...yx,background:bC.wM},IPCOut:{...yx,background:bC.wM,top:2},SyncIPCOut:{...yx,background:bC.WW,top:6},IPCIn:{...yx,background:bC.e,top:13},SyncIPCIn:{...yx,background:bC.nK,top:17}},xx={HOVERED:"hsla(0,0%,100%,0.3)",PRESSED:"rgba(0,0,0,0.3)"};var Sx=n(8808),Tx={};function Bx(e){e.stopPropagation()}function _x(e,t,n,r,o,a){const i=Math.min(r/2,Math.min(o/2,a)),s=n+o;e.fillRect(t+i,n,r-2*i,i),e.fillRect(t,n+i,r,o-2*i),e.fillRect(t+i,s-i,r-2*i,i)}Tx.styleTagTransform=M(),Tx.setAttributes=B(),Tx.insert=S().bind(null,"head"),Tx.domAPI=E(),Tx.insertStyleElement=P(),w()(Sx.Z,Tx),Sx.Z&&Sx.Z.locals&&Sx.Z.locals;class Ix extends X.PureComponent{constructor(...e){super(...e),this._canvas=X.createRef(),this._requestedAnimationFrame=!1,this._canvasState={renderScheduled:!1,inView:!1},this._observerCallback=(e,t)=>{this._canvasState.inView=e,this._canvasState.renderScheduled&&this._scheduleDraw()}}_getMarkerState(e){const{hoveredMarker:t,mouseDownMarker:n,rightClickedMarker:r}=this.props;return r===e?"PRESSED":null!==n?e===n&&e===t?"PRESSED":"NONE":e===t?"HOVERED":"NONE"}drawCanvas(e){const{rangeStart:t,rangeEnd:n,width:r,height:o,getMarker:a,markerIndexes:i}=this.props;if(0===o||0===r)return;const s=e.ownerDocument?e.ownerDocument.defaultView.devicePixelRatio:1,l=Math.round(r*s),c=Math.round(o*s);e.width===l&&e.height===c||(e.width=l,e.height=c);const d=e.getContext("2d");if(null==d)return;d.clearRect(0,0,l,c),d.scale(s,s);let u=null;for(const e of i){const o=a(e),{start:i,end:l}=o,c=null===l?0:l-i;let h=(i-t)/(n-t)*r;if(h=Math.round(h*s)/s,u===h&&0===c)continue;u=h;const p=Number.isFinite(c)?Math.max(c/(n-t)*r,.3/s):Number.MAX_SAFE_INTEGER,m=kx(o);d.fillStyle=m.background,m.squareCorners?d.fillRect(h,m.top,p,m.height):_x(d,h,m.top,p,m.height,1/s),null!==m.borderLeft&&(d.fillStyle=m.borderLeft,d.fillRect(h,m.top,1,m.height)),null!==m.borderRight&&(d.fillStyle=m.borderRight,d.fillRect(h+p-1,m.top,1,m.height));const f=this._getMarkerState(o);"HOVERED"!==f&&"PRESSED"!==f||(d.fillStyle=xx[f],m.squareCorners?d.fillRect(h,m.top,p,m.height):_x(d,h,m.top,p,m.height,1/s))}d.scale(1/s,1/s)}_scheduleDraw(){this._canvasState.inView?(this._canvasState.renderScheduled=!1,this._requestedAnimationFrame||(this._requestedAnimationFrame=!0,window.requestAnimationFrame((()=>{this._requestedAnimationFrame=!1;const e=this._canvas.current;e&&Kn("TimelineMarkersImplementation render",(()=>{this.drawCanvas(e)}))})))):this._canvasState.renderScheduled=!0}componentDidMount(){this._scheduleDraw()}componentDidUpdate(){this._scheduleDraw()}render(){return X.createElement(JE,{onChange:this._observerCallback},X.createElement("canvas",{className:"timelineMarkersCanvas",ref:this._canvas,onMouseDown:this.props.onMouseDown,onMouseMove:this.props.onMouseMove,onMouseUp:this.props.onMouseUp,onMouseOut:this.props.onMouseOut}))}}class Px extends X.PureComponent{constructor(...e){super(...e),this._container=null,this.state={hoveredMarkerIndex:null,mouseDownMarker:null,mouseX:0,mouseY:0},this._onMouseMove=e=>{const t=this._hitTest(e);null!==t?this.setState({hoveredMarkerIndex:t,mouseX:e.pageX,mouseY:e.pageY}):null===this.state.hoveredMarkerIndex||window.persistTooltips||this.setState({hoveredMarkerIndex:null})},this._onMouseDown=e=>{const t=this._hitTest(e),{changeRightClickedMarker:n,threadsKey:r,getMarker:o}=this.props;if(2===e.button)n(r,t);else{const n=null!==t?o(t):null;if(this.setState({mouseDownMarker:n}),null!==n){const t=e.currentTarget;t.setCapture&&t.setCapture()}}},this._onMouseUp=e=>{const{mouseDownMarker:t}=this.state;if(null!==t){const n=this._hitTest(e),r=null===n?null:this.props.getMarker(n);if(t===r&&null!==r){e.stopPropagation();const{onSelect:t,rangeStart:n,rangeEnd:o}=this.props,{start:a,end:i}=Eh(n,o,r);t(a,i)}this.setState({hoveredMarkerIndex:n,mouseDownMarker:null})}},this._onMouseOut=()=>{window.persistTooltips||this.setState({hoveredMarkerIndex:null})},this._takeContainerRef=e=>{this._container=e}}_hitTest(e){const t=e.currentTarget.getBoundingClientRect(),{width:n,rangeStart:r,rangeEnd:o,getMarker:a,markerIndexes:i}=this.props,s=e.pageX-t.left,l=e.pageY-t.top,c=o-r,d=r+s/n*c,u=c/n*window.devicePixelRatio;for(let e=i.length-1;e>=0;e--){const t=i[e],n=a(t),{start:r,end:o}=n,s=null===o?0:o-r,c=Math.max(s,u);if(d<r||d>=r+c)continue;const h=kx(n);if(l>=h.top&&l<h.top+h.height)return t}return null}componentDidMount(){const e=this._container;null!==e&&e.addEventListener("transitionend",Bx)}componentWillUnmount(){const e=this._container;null!==e&&e.removeEventListener("transitionend",Bx)}render(){const{additionalClassName:e,isSelected:t,isModifyingSelection:n,threadsKey:r,testId:o,rightClickedMarker:a,getMarker:i}=this.props,{mouseDownMarker:s,hoveredMarkerIndex:l,mouseX:c,mouseY:d}=this.state,u=!n&&!s&&!a,h=null===l?null:i(l);return X.createElement("div",{"data-testid":o,className:Xg()("timelineMarkers",e,t?"selected":null),ref:this._takeContainerRef},X.createElement(DA,{id:"MarkerContextMenu"},X.createElement(Ix,{width:this.props.width,height:this.props.height,rangeStart:this.props.rangeStart,rangeEnd:this.props.rangeEnd,getMarker:this.props.getMarker,markerIndexes:this.props.markerIndexes,hoveredMarker:h,mouseDownMarker:s,rightClickedMarker:a,onMouseDown:this._onMouseDown,onMouseMove:this._onMouseMove,onMouseUp:this._onMouseUp,onMouseOut:this._onMouseOut})),u&&null!==l&&h?X.createElement(PC,{mouseX:c,mouseY:d},X.createElement(Iy,{markerIndex:l,marker:h,threadsKey:r,restrictHeightWidth:!0})):null)}}const Nx=nv(Px),Mx=_t()(((e,t)=>zr(e,t)),{limit:1}),Fx=je({mapStateToProps:(e,t)=>{const{threadsKey:n}=t,r=xu(n),o=pi(e);return{getMarker:r.getMarkerGetter(e),markerIndexes:r.getTimelineJankMarkerIndexes(e),isSelected:Mx(o,n),isModifyingSelection:Ms(e).isModifying,testId:"TimelineMarkersJank",rightClickedMarker:r.getRightClickedMarker(e)}},mapDispatchToProps:{changeRightClickedMarker:Mp},component:Nx}),Rx=je({mapStateToProps:(e,t)=>{const{threadsKey:n}=t,r=xu(n),o=pi(e);return{additionalClassName:r.getThread(e).isMainThread?"timelineMarkersGeckoMain":null,getMarker:r.getMarkerGetter(e),markerIndexes:r.getTimelineOverviewMarkerIndexes(e),isSelected:Mx(o,n),isModifyingSelection:Ms(e).isModifying,testId:"TimelineMarkersOverview",rightClickedMarker:r.getRightClickedMarker(e)}},mapDispatchToProps:{changeRightClickedMarker:Mp},component:Nx}),Dx=je({mapStateToProps:(e,t)=>{const{threadsKey:n}=t,r=xu(n),o=pi(e);return{getMarker:r.getMarkerGetter(e),markerIndexes:r.getTimelineFileIoMarkerIndexes(e),isSelected:Mx(o,n),isModifyingSelection:Ms(e).isModifying,testId:"TimelineMarkersFileIo",rightClickedMarker:r.getRightClickedMarker(e)}},mapDispatchToProps:{changeRightClickedMarker:Mp},component:Nx}),Lx=je({mapStateToProps:(e,t)=>{const{threadsKey:n}=t,r=xu(n),o=pi(e);return{getMarker:r.getMarkerGetter(e),markerIndexes:r.getTimelineMemoryMarkerIndexes(e),isSelected:Mx(o,n),isModifyingSelection:Ms(e).isModifying,additionalClassName:"timelineMarkersMemory",testId:"TimelineMarkersMemory",rightClickedMarker:r.getRightClickedMarker(e)}},mapDispatchToProps:{changeRightClickedMarker:Mp},component:Nx}),Ox=je({mapStateToProps:(e,t)=>{const{threadsKey:n}=t,r=xu(n),o=pi(e);return{getMarker:r.getMarkerGetter(e),markerIndexes:r.getTimelineIPCMarkerIndexes(e),isSelected:Mx(o,n),isModifyingSelection:Ms(e).isModifying,additionalClassName:"timelineMarkersIPC",testId:"TimelineMarkersIPC",rightClickedMarker:r.getRightClickedMarker(e)}},mapDispatchToProps:{changeRightClickedMarker:Mp},component:Nx});class Ux extends X.PureComponent{constructor(...e){super(...e),this.state={isMouseOver:!1,mouseX:0,mouseY:0},this._onMouseEnter=()=>{this.setState({isMouseOver:!0}),document.addEventListener("mousemove",this._onMouseMove,!1)},this._onMouseLeave=()=>{window.persistTooltips||this.setState({isMouseOver:!1}),document.removeEventListener("mousemove",this._onMouseMove,!1)},this._onMouseMove=e=>{this.setState({mouseX:e.pageX,mouseY:e.pageY})}}componentWillUnmount(){document.removeEventListener("mousemove",this._onMouseMove,!1)}render(){const{children:e,tooltip:t,...n}=this.props,{mouseX:r,mouseY:o,isMouseOver:a}=this.state,i=a;return X.createElement("div",{onMouseEnter:this._onMouseEnter,onMouseLeave:this._onMouseLeave,...n},e,i&&t?X.createElement(PC,{mouseX:r,mouseY:o},t):null)}}var zx=n(6669),Gx={};Gx.styleTagTransform=M(),Gx.setAttributes=B(),Gx.insert=S().bind(null,"head"),Gx.domAPI=E(),Gx.insertStyleElement=P(),w()(zx.Z,Gx),zx.Z&&zx.Z.locals&&zx.Z.locals;class Wx extends X.PureComponent{render(){const e=function(e){const{rangeStart:t,rangeEnd:n,width:r,unfilteredSamplesRange:o,interval:a,thread:{processShutdownTime:i,registerTime:s,unregisterTime:l}}=e,c=r/(n-t),d=null===l?i:l;let u=null;s>t&&(u={left:0,width:Math.min(r,(s-t)*c)});let h=null;null!==d&&d<n&&(h={right:0,width:Math.min(r,(n-d)*c)});let p=null;return null!==o&&o.start>=t+a&&s<n&&(p={left:Math.max(0,s-t)*c,width:Math.min(r,(o.start-Math.max(s,t))*c)}),{startup:u,shutdown:h,emptyBufferStart:p}}(this.props);return X.createElement("div",{className:"timelineEmptyThreadIndicator"},e.startup?X.createElement(Ux,{style:e.startup,className:"timelineEmptyThreadIndicatorBlock timelineEmptyThreadIndicatorStartup",tooltip:"This thread hasn't started yet"}):null,e.shutdown?X.createElement(Ux,{style:e.shutdown,className:"timelineEmptyThreadIndicatorBlock timelineEmptyThreadIndicatorShutdown",tooltip:"This thread has shut down here"}):null,e.emptyBufferStart?X.createElement(Ux,{style:e.emptyBufferStart,className:"timelineEmptyThreadIndicatorBlock timelineEmptyThreadIndicatorEmptyBuffer",tooltip:X.createElement("span",{className:"timelineEmptyThreadIndicatorLongTooltip"},En`
|
144
|
+
This buffer was empty. Either the profiler was still initializing for
|
145
|
+
a new thread, or the profiling buffer was full. Increase your buffer
|
146
|
+
size before recording to potentially include more samples.
|
147
|
+
`)}):null)}}const Hx=nv(Wx);var Vx=n(5125),jx={};jx.styleTagTransform=M(),jx.setAttributes=B(),jx.insert=S().bind(null,"head"),jx.domAPI=E(),jx.insertStyleElement=P(),w()(Vx.Z,jx),Vx.Z&&Vx.Z.locals&&Vx.Z.locals;class Zx extends X.PureComponent{constructor(...e){super(...e),this._onSampleClick=(e,t)=>{const n=xh(e);if(n.ctrlOrMeta||n.shift)return;const{threadsKey:r,selectLeafCallNode:o,selectRootCallNode:a,focusCallTree:i,invertCallstack:s,selectedThreadIndexes:l,callTreeVisible:c}=this.props;1===l.size&&(s?a(r,t):o(r,t),null!==t&&c&&i()),"number"==typeof r&&l.has(r)&&e.stopPropagation()},this._onMarkerSelect=(e,t)=>{const{rangeStart:n,rangeEnd:r,updatePreviewSelection:o}=this.props;o({hasSelection:!0,isModifying:!1,selectionStart:Math.max(n,e),selectionEnd:Math.min(r,t)})}}componentDidUpdate(){const{threadsKey:e,height:t,reportTrackThreadHeight:n}=this.props;n(e,t)}render(){const{fullThread:e,filteredThread:t,rangeFilteredThread:n,tabFilteredThread:r,threadsKey:o,interval:a,rangeStart:i,rangeEnd:s,sampleIndexOffset:l,callNodeInfo:c,selectedCallNodeIndex:d,unfilteredSamplesRange:u,categories:h,timelineType:p,hasFileIoMarkers:m,showMemoryMarkers:f,samplesSelectedStates:g,treeOrderSampleComparator:A,trackType:b,trackName:C,enableCPUUsage:y,maxThreadCPUDeltaPerMs:v,isExperimentalCPUGraphsEnabled:w,implementationFilter:k}=this.props,E=t.processType,x="plugin"!==E,S=("GeckoMain"===t.name||"Compositor"===t.name||"Renderer"===t.name||"AndroidUI (JVM)"===t.name||"CrRendererMain"===t.name||"Merged thread"===t.name||t.name.startsWith("MediaDecoderStateMachine"))&&"plugin"!==E;return X.createElement("div",{className:Xg()("timelineTrackThread",b)},"expanded"===b&&f?X.createElement(Lx,{rangeStart:i,rangeEnd:s,threadsKey:o,onSelect:this._onMarkerSelect}):null,"expanded"===b&&m?X.createElement(Dx,{rangeStart:i,rangeEnd:s,threadsKey:o,onSelect:this._onMarkerSelect}):null,x?X.createElement(Fx,{rangeStart:i,rangeEnd:s,threadsKey:o,onSelect:this._onMarkerSelect}):null,"expanded"===b&&S?X.createElement(Rx,{rangeStart:i,rangeEnd:s,threadsKey:o,onSelect:this._onMarkerSelect}):null,"category"!==p&&"cpu-category"!==p||t.isJsTracer?X.createElement(HE,{className:"threadStackGraph",trackName:C,interval:a,thread:t,tabFilteredThread:r,rangeStart:i,rangeEnd:s,callNodeInfo:c,selectedCallNodeIndex:d,categories:h,onSampleClick:this._onSampleClick}):X.createElement(X.Fragment,null,X.createElement(Cx,{className:"threadActivityGraph",trackName:C,interval:a,fullThread:e,rangeFilteredThread:n,rangeStart:i,rangeEnd:s,sampleIndexOffset:l,onSampleClick:this._onSampleClick,categories:h,samplesSelectedStates:g,treeOrderSampleComparator:A,enableCPUUsage:y,maxThreadCPUDeltaPerMs:v,implementationFilter:k,timelineType:p}),"expanded"===b?X.createElement(tx,{className:"threadSampleGraph",trackName:C,interval:a,thread:t,tabFilteredThread:r,rangeStart:i,rangeEnd:s,callNodeInfo:c,selectedCallNodeIndex:d,categories:h,onSampleClick:this._onSampleClick}):null,w&&void 0!==n.samples.threadCPUDelta?X.createElement(VE,{className:"threadCPUGraph",trackName:C,interval:a,thread:t,tabFilteredThread:r,rangeStart:i,rangeEnd:s,callNodeInfo:c,selectedCallNodeIndex:d,categories:h,onSampleClick:this._onSampleClick,maxThreadCPUDeltaPerMs:v}):null),X.createElement(Hx,{thread:t,interval:a,rangeStart:i,rangeEnd:s,unfilteredSamplesRange:u}))}}const $x=_t()(((e,t)=>zr(e,t)),{limit:1}),Kx=je({mapStateToProps:(e,t)=>{const{threadsKey:n}=t,r=xu(n),o=pi(e),a=Is(e),i=$x(o,n)?r.getSelectedCallNodeIndex(e):null,s=r.getCPUProcessedThread(e),l=gi(e),c="cpu-category"===l&&void 0!==s.samples.threadCPUDelta;return{invertCallstack:Xa(e),fullThread:s,filteredThread:r.getFilteredThread(e),rangeFilteredThread:r.getRangeFilteredThread(e),tabFilteredThread:r.getTabFilteredThread(e),callNodeInfo:r.getCallNodeInfo(e),selectedCallNodeIndex:i,unfilteredSamplesRange:r.unfilteredSamplesRange(e),interval:Ls(e),rangeStart:a.start,rangeEnd:a.end,sampleIndexOffset:r.getSampleIndexOffsetFromCommittedRange(e),categories:Qs(e),timelineType:l,hasFileIoMarkers:0!==r.getTimelineFileIoMarkerIndexes(e).length,samplesSelectedStates:r.getSamplesSelectedStatesInFilteredThread(e),treeOrderSampleComparator:r.getTreeOrderComparatorInFilteredThread(e),selectedThreadIndexes:o,enableCPUUsage:c,isExperimentalCPUGraphsEnabled:gc(e),maxThreadCPUDeltaPerMs:sh(e),implementationFilter:qa(e),callTreeVisible:r.getUsefulTabs(e).includes("calltree")}},mapDispatchToProps:{updatePreviewSelection:Gp,changeSelectedCallNode:qh,focusCallTree:ip,selectLeafCallNode:Xh,selectRootCallNode:Qh,reportTrackThreadHeight:tf},component:nv(Zx)});var Yx=n(268),qx={};qx.styleTagTransform=M(),qx.setAttributes=B(),qx.insert=S().bind(null,"head"),qx.domAPI=E(),qx.insertStyleElement=P(),w()(Yx.Z,qx),Yx.Z&&Yx.Z.locals&&Yx.Z.locals;class Jx extends X.PureComponent{constructor(...e){super(...e),this.state={offsetX:null,pageX:null,containerTop:null},this._handleMouseLeave=()=>{this.setState({offsetX:null,pageX:null,containerTop:null})},this._handleMouseMove=e=>{const{top:t,left:n}=e.currentTarget.getBoundingClientRect();this.setState({pageX:e.pageX,offsetX:e.pageX-n,containerTop:t})},this._selectScreenshotOnClick=e=>{const{screenshots:t,updatePreviewSelection:n,isMakingPreviewSelection:r}=this.props;if(r)return;const{left:o}=e.currentTarget.getBoundingClientRect(),a=e.pageX-o,i=this.findScreenshotAtMouse(a);if(null===i)return;const{start:s,end:l}=t[i];null!==l&&n({hasSelection:!0,isModifying:!1,selectionStart:s,selectionEnd:l})}}findScreenshotAtMouse(e){const{width:t,rangeStart:n,rangeEnd:r,screenshots:o}=this.props,a=e/t*(r-n)+n;for(let e=o.length-1;e>=0;e--)if(a>=o[e].start)return a>(o[e].end||1/0)?null:e;return null}render(){const{screenshots:e,thread:t,isMakingPreviewSelection:n,width:r,rangeStart:o,rangeEnd:a,trackHeight:i}=this.props,{pageX:s,offsetX:l,containerTop:c}=this.state;let d=null;if(null!==l){const t=this.findScreenshotAtMouse(l);null!==t&&(d=e[t].data)}return X.createElement("div",{className:"timelineTrackScreenshot",style:{height:i},onMouseLeave:this._handleMouseLeave,onMouseMove:this._handleMouseMove,onClick:this._selectScreenshotOnClick},X.createElement(tS,{thread:t,width:r,rangeStart:o,rangeEnd:a,screenshots:e,trackHeight:i}),d?X.createElement(eS,{thread:t,isMakingPreviewSelection:n,width:r,pageX:s,offsetX:l,containerTop:c,rangeEnd:a,rangeStart:o,trackHeight:i,payload:d}):null)}}const Xx=[],Qx=je({mapStateToProps:(e,t)=>{const{threadIndex:n,windowId:r}=t,o=Eu(n),{start:a,end:i}=Is(e),s=Ms(e);return{thread:o.getRangeFilteredThread(e),screenshots:o.getRangeFilteredScreenshotsById(e).get(r)||Xx,threadName:o.getFriendlyThreadName(e),rangeStart:a,rangeEnd:i,isMakingPreviewSelection:s.hasSelection&&s.isModifying,trackHeight:vc(e)}},mapDispatchToProps:{updatePreviewSelection:Gp},component:nv(Jx)});class eS extends X.PureComponent{constructor(...e){super(...e),this._overlayElement=nt(document.querySelector("#root-overlay"),"Expected to find a root overlay element.")}render(){const{thread:e,isMakingPreviewSelection:t,width:n,pageX:r,offsetX:o,containerTop:a,trackHeight:i,payload:s}=this.props;if(null===o||null===r)return null;if(void 0===s.url)return null;const{url:l}=s,c=t?100:350,{width:d,height:u}=Uo(s,c);let h=a+.5*(i-u);h=Math.floor(h),h<0&&(h=0);let p=r-.5*d;const m=r-o;return p<0?p=0:p+d>n+m&&(p=m+n-d),p=Math.floor(p),(0,Q.createPortal)(X.createElement("div",{className:"timelineTrackScreenshotHover",style:{left:p,top:h}},X.createElement("img",{className:"timelineTrackScreenshotHoverImg",src:e.stringTable.getString(l),style:{height:u,width:d}})),this._overlayElement)}}class tS extends X.PureComponent{render(){const{thread:e,width:t,rangeStart:n,rangeEnd:r,screenshots:o,trackHeight:a}=this.props;if(0===o.length)return null;const i=[],s=r-n,l=.75*a,c=e=>t*(e-n)/s,d=Math.max(c(o[0].start),0),u=Math.min(c(o[o.length-1].end||1/0),t);let h=0;for(let t=d;t<u;t+=l){for(let e=h;e<o.length&&c(o[e].start)<=t;e++)h=e;const n=o[h].data;if(void 0===n.url)continue;const{url:r,windowWidth:s,windowHeight:d}=n,p=a*s/d;i.push(X.createElement("div",{className:"timelineTrackScreenshotImgContainer",style:{left:t,width:Math.min(l,u-t)},key:t},X.createElement("img",{className:"timelineTrackScreenshotImg",src:e.stringTable.getString(r),style:{width:p,height:a}})))}return i.length>0?i:null}}var nS=n(2605),rS={};rS.styleTagTransform=M(),rS.setAttributes=B(),rS.insert=S().bind(null,"head"),rS.domAPI=E(),rS.insertStyleElement=P(),w()(nS.Z,rS),nS.Z&&nS.Z.locals&&nS.Z.locals;class oS extends X.PureComponent{constructor(...e){super(...e),this._canvas=null,this._requestedAnimationFrame=!1,this._takeCanvasRef=e=>{this._canvas=e}}drawCanvas(e){const{rangeStart:t,rangeEnd:n,height:r,width:o,lineWidth:a,interval:i,thread:s,eventDelays:l}=this.props;if(0===o)return;const c=e.getContext("2d"),d=window.devicePixelRatio,u=o*d,h=r*d,p=a*d,m=.5*p,f=h-p,g=n-t,A=u/g,b=i*A;e.width=Math.round(u),e.height=Math.round(h),c.clearRect(0,0,u,h);const{samples:C}=s;if(0===C.length)return;const{delayRange:y}=l;{c.lineWidth=p,c.lineJoin="bevel",c.strokeStyle="rgba(255, 0, 57, 0.7)",c.fillStyle="rgba(255, 0, 57, 0.3)",c.beginPath();let e=0,n=0;for(let r=0;r<C.length;r++)e=(C.time[r]-t)*A,n=f-f*(l.eventDelays[r]/y)+m,0===r?c.moveTo(e,n):c.lineTo(e,n);c.lineTo(e+b,n),c.stroke(),c.lineTo(e+b,h),c.lineTo(u*(C.time[0]-t)/g+i,h),c.fill()}}_scheduleDraw(){this._requestedAnimationFrame||(this._requestedAnimationFrame=!0,window.requestAnimationFrame((()=>{this._requestedAnimationFrame=!1;const e=this._canvas;e&&this.drawCanvas(e)})))}render(){return this._scheduleDraw(),X.createElement("canvas",{className:"timelineTrackEventDelayCanvas",ref:this._takeCanvasRef})}}class aS extends X.PureComponent{constructor(...e){super(...e),this.state={hoveredDelay:null,mouseX:0,mouseY:0},this._onMouseLeave=()=>{this.setState({hoveredDelay:null})},this._onMouseMove=e=>{const{pageX:t,pageY:n}=e,{left:r}=e.currentTarget.getBoundingClientRect(),{width:o,rangeStart:a,rangeEnd:i,interval:s,thread:l}=this.props,c=a+(t-r)/o*(i-a),{samples:d}=l;if(c<d.time[0]||c>d.time[d.length-1]+s)this.setState({hoveredDelay:null});else{let e;const r=(0,Jn.e)(d.time,c);e=r>0&&r<d.time.length&&c-d.time[r-1]<d.time[r]-c?r-1:r,e===d.length&&(e=d.time.length-1),this.setState({mouseX:t,mouseY:n,hoveredDelay:e})}}}_renderTooltip(e){const{eventDelays:t}=this.props.eventDelays,{delayRange:n}=this.props.eventDelays;return X.createElement("div",{className:"timelineTrackEventDelayTooltip"},X.createElement("div",{className:"timelineTrackEventDelayTooltipLine"},X.createElement("span",{className:"timelineTrackEventDelayTooltipNumber"},Wt(t[e]))," event delay"),X.createElement("div",{className:"timelineTrackEventDelayTooltipLine"},X.createElement("span",{className:"timelineTrackEventDelayTooltipNumber"},Wt(n))," delay range in graph"))}_renderEventDelayDot(e){const{rangeStart:t,rangeEnd:n,graphHeight:r,width:o,lineWidth:a,thread:i,eventDelays:s}=this.props,{samples:l}=i,c=n-t,{delayRange:d}=s,u=o*(l.time[e]-t)/c,h=r-a/2,p=h-s.eventDelays[e]/d*h+a/2;return X.createElement("div",{style:{left:u,top:p},className:"timelineTrackEventDelayGraphDot"})}render(){const{hoveredDelay:e,mouseX:t,mouseY:n}=this.state,{filteredThread:r,interval:o,rangeStart:a,rangeEnd:i,unfilteredSamplesRange:s,graphHeight:l,width:c,lineWidth:d,eventDelays:u,thread:h}=this.props;return X.createElement("div",{className:"timelineTrackEventDelayGraph",onMouseMove:this._onMouseMove,onMouseLeave:this._onMouseLeave},X.createElement(oS,{rangeStart:a,rangeEnd:i,height:l,width:c,lineWidth:d,interval:o,eventDelays:u,thread:h}),null===e?null:X.createElement(X.Fragment,null,this._renderEventDelayDot(e),X.createElement(PC,{mouseX:t,mouseY:n},this._renderTooltip(e))),X.createElement(Hx,{thread:r,interval:o,rangeStart:a,rangeEnd:i,unfilteredSamplesRange:s}))}}const iS=je({mapStateToProps:(e,t)=>{const{threadIndex:n}=t,{start:r,end:o}=Is(e),a=Eu(n);return{threadIndex:n,rangeStart:r,rangeEnd:o,interval:Ls(e),thread:a.getThread(e),filteredThread:a.getFilteredThread(e),unfilteredSamplesRange:a.unfilteredSamplesRange(e),eventDelays:a.getProcessedEventDelays(e)}},component:nv(aS)});class sS extends X.PureComponent{render(){const{threadIndex:e}=this.props;return X.createElement("div",{className:"timelineTrackEventDelay",style:{height:40,"--graph-height":"40px","--markers-height":"0px"}},X.createElement(iS,{threadIndex:e,lineWidth:2,graphHeight:40}))}}var lS=n(3769),cS={};cS.styleTagTransform=M(),cS.setAttributes=B(),cS.insert=S().bind(null,"head"),cS.domAPI=E(),cS.insertStyleElement=P(),w()(lS.Z,cS),lS.Z&&lS.Z.locals&&lS.Z.locals;class dS extends X.PureComponent{constructor(...e){super(...e),this._onMouseDown=e=>{2===e.button&&this.props.onRightClick&&e.currentTarget&&this.props.onRightClick(parseInt(e.currentTarget.dataset.markerIndex)),e.stopPropagation()}}render(){const{getMarker:e,verticalMarkerIndexes:t,innerWindowIDToPageMap:n,rangeStart:r,rangeEnd:o,zeroAt:a,width:i,shouldShowTooltip:s}=this.props;return t.map((t=>{const l=e(t);let c="#000";switch(l.name){case"Navigation::Start":c="var(--grey-40)";break;case"Load":c="var(--red-60)";break;case"DOMContentLoaded":c="var(--blue-50)";break;default:l.name.startsWith("Contentful paint ")&&(c="var(--green-60)")}const d=i/(o-r),u=(l.start-r)*d;let h=null;const{data:p}=l;if(n&&p&&"tracing"===p.type&&"Navigation"===p.category&&p.innerWindowID){const e=n.get(p.innerWindowID);e&&(h=X.createElement("div",{className:"timelineVerticalIndicatorsUrl"},(m=e.url).length<200?m:`${m.slice(0,150)}...${m.slice(-20)}`))}var m;return X.createElement(Ux,{key:t,"data-testid":"vertical-indicator-line",style:{"--vertical-indicator-color":c,left:u},className:"timelineVerticalIndicatorsLine",onMouseDown:this._onMouseDown,"data-marker-index":t,tooltip:s?X.createElement(X.Fragment,null,X.createElement("div",null,X.createElement("span",{className:"timelineVerticalIndicatorsSwatch",style:{backgroundColor:c}})," ",l.name,X.createElement("span",{className:"timelineVerticalIndicatorsDim"}," at "),X.createElement("span",{className:"timelineVerticalIndicatorsTime"},Ht(l.start-a))," "),h):null})}))}}var uS=n(8837),hS={};hS.styleTagTransform=M(),hS.setAttributes=B(),hS.insert=S().bind(null,"head"),hS.domAPI=E(),hS.insertStyleElement=P(),w()(uS.Z,hS),uS.Z&&uS.Z.locals&&uS.Z.locals;class pS extends X.PureComponent{constructor(...e){super(...e),this._requestedAnimationFrame=!1,this._canvas=X.createRef(),this._onMouseLeave=()=>{this.props.onHoveredMarkerChange(null)},this._onMouseMove=e=>{const t=this._hitTest(e);this.props.onHoveredMarkerChange(t,e.pageX,e.pageY)}}_hitTest(e){const{rangeStart:t,rangeEnd:n,networkTiming:r,width:o}=this.props,{offsetX:a,offsetY:i}=e.nativeEvent,s=n-t,l=t+a/o*s,c=5/o*s;let d=null,u=-1/0;for(let e=Math.floor(i/5);e<r.length;e+=7){const t=r[e],n=(0,Jn.e)(t.start,l)-1;if(n<0)continue;const o=t.start[n];let a=t.end[n];a-o<c&&(a=o+c),a<l||o>u&&(u=o,d=t.index[n])}return d}_scheduleDraw(){this._requestedAnimationFrame||(this._requestedAnimationFrame=!0,window.requestAnimationFrame((()=>{this._requestedAnimationFrame=!1;const e=this._canvas.current;e&&this.drawCanvas(e)})))}drawCanvas(e){const{rangeStart:t,rangeEnd:n,networkTiming:r,hoveredMarkerIndex:o,rightClickedMarkerIndex:a,selectedNetworkMarkerIndex:i,width:s}=this.props,l=n-t,c=window.devicePixelRatio,d=5*c;e.width=Math.round(s*c),e.height=Math.round(35*c);const u=e.getContext("2d");u.clearRect(0,0,e.width,e.height),u.strokeStyle="rgba(0, 127, 255, 0.3)",u.lineCap="round",u.lineWidth=.75*d;let h=null,p=null,m=null;for(let n=0;n<r.length;n++){const s=r[n];for(let r=0;r<s.length;r++){const c=e.width/l*(s.start[r]-t),f=e.width/l*(s.end[r]-t),g=n%7*d+.5*d,A=new Path2D;switch(A.moveTo(c,g),A.lineTo(f,g),s.index[r]){case a:p=A;break;case o:h=A;break;case i:m=A;break;default:u.stroke(A)}}}(h||p||m)&&(u.strokeStyle="#0069aa",h&&u.stroke(h),p&&u.stroke(p),m&&u.stroke(m))}render(){return this._scheduleDraw(),X.createElement("canvas",{className:"timelineTrackNetworkCanvas",ref:this._canvas,onMouseMove:this._onMouseMove,onMouseLeave:this._onMouseLeave})}}class mS extends X.PureComponent{constructor(...e){super(...e),this.state={hoveredMarkerIndex:null,mouseX:0,mouseY:0},this._onHoveredMarkerChange=(e,t,n)=>{const{threadIndex:r,changeHoveredMarker:o}=this.props;o(r,e),null===e?window.persistTooltips||this.setState({hoveredMarkerIndex:null}):this.setState({hoveredMarkerIndex:e,mouseX:t,mouseY:n})},this._onMouseDown=e=>{2===e.button?this._onRightClick():this._onLeftClick()},this._onRightClick=()=>{const{threadIndex:e,changeRightClickedMarker:t}=this.props,{hoveredMarkerIndex:n}=this.state;t(e,n)},this._onLeftClick=()=>{const{threadIndex:e,changeSelectedNetworkMarker:t}=this.props,{hoveredMarkerIndex:n}=this.state;null!==n&&t(e,n)},this._onVerticalIndicatorRightClick=e=>{const{threadIndex:t,changeRightClickedMarker:n}=this.props;n(t,e)}}render(){const{innerWindowIDToPageMap:e,rangeStart:t,rangeEnd:n,getMarker:r,verticalMarkerIndexes:o,zeroAt:a,networkTiming:i,isModifyingSelection:s,threadIndex:l,width:c,rightClickedMarkerIndex:d,selectedNetworkMarkerIndex:u,hoveredMarkerIndexFromState:h}=this.props,{hoveredMarkerIndex:p,mouseX:m,mouseY:f}=this.state,g=null===p?null:r(p),A=!s&&null===d;return X.createElement("div",{className:"timelineTrackNetwork",style:{height:35},onMouseDown:this._onMouseDown},X.createElement(DA,{id:"MarkerContextMenu",attributes:{className:"treeViewContextMenu"}},X.createElement(pS,{rangeStart:t,rangeEnd:n,networkTiming:i,hoveredMarkerIndex:null===p?h:p,rightClickedMarkerIndex:d,selectedNetworkMarkerIndex:u,width:c,onHoveredMarkerChange:this._onHoveredMarkerChange}),X.createElement(dS,{verticalMarkerIndexes:o,getMarker:r,innerWindowIDToPageMap:e,rangeStart:t,rangeEnd:n,zeroAt:a,width:c,onRightClick:this._onVerticalIndicatorRightClick,shouldShowTooltip:null===d}),A&&null!==p&&g?X.createElement(PC,{mouseX:m,mouseY:f},X.createElement(Iy,{className:"tooltipNetwork",markerIndex:p,marker:g,threadsKey:l,restrictHeightWidth:!0})):null))}}const fS=je({mapStateToProps:(e,t)=>{const{threadIndex:n}=t,r=Eu(n),{start:o,end:a}=Is(e),i=r.getNetworkTrackTiming(e);return{getMarker:r.getMarkerGetter(e),innerWindowIDToPageMap:Il(e),networkTiming:i,rangeStart:o,rangeEnd:a,zeroAt:_s(e),isModifyingSelection:Ms(e).isModifying,verticalMarkerIndexes:r.getTimelineVerticalMarkerIndexes(e),rightClickedMarkerIndex:r.getRightClickedMarkerIndex(e),selectedNetworkMarkerIndex:r.getSelectedNetworkMarkerIndex(e),hoveredMarkerIndexFromState:r.getHoveredMarkerIndex(e)}},mapDispatchToProps:{changeRightClickedMarker:Mp,changeSelectedNetworkMarker:Pp,changeHoveredMarker:Np},component:nv(mS)});var gS=n(6894),AS={};AS.styleTagTransform=M(),AS.setAttributes=B(),AS.insert=S().bind(null,"head"),AS.domAPI=E(),AS.insertStyleElement=P(),w()(gS.Z,AS),gS.Z&&gS.Z.locals&&gS.Z.locals;class bS extends X.PureComponent{constructor(...e){super(...e),this._canvas=null,this._requestedAnimationFrame=!1,this._canvasState={renderScheduled:!1,inView:!1},this._takeCanvasRef=e=>{this._canvas=e},this._observerCallback=(e,t)=>{this._canvasState.inView=e,this._canvasState.renderScheduled&&this._scheduleDraw()}}drawCanvas(e){const{rangeStart:t,rangeEnd:n,counter:r,height:o,width:a,lineWidth:i,interval:s,accumulatedSamples:l,counterSampleRanges:c}=this.props;if(0===a)return;const d=e.getContext("2d"),u=window.devicePixelRatio,h=a*u,p=o*u,m=i*u,f=.5*m,g=p-m,A=h/(n-t),b=s*A;if(e.width=Math.round(h),e.height=Math.round(p),d.clearRect(0,0,h,p),0===r.sampleGroups.length||0===c.length)throw new Error("No sample group found for memory counter");const C=r.sampleGroups[0].samples;if(0===C.length)return;if(0===l.length)throw new Error("No accumulated sample found for memory counter");const{minCount:y,countRange:v,accumulatedCounts:w}=l[0],[k,E]=c[0];{d.lineWidth=m,d.lineJoin="bevel",d.strokeStyle=bC.FL,d.fillStyle="#ff940088",d.beginPath();let e=0,n=0,r=0;for(let o=k;o<E;o++)e=(C.time[o]-t)*A,n=g-g*((w[o]-y)/v)+f,0===o?(r=e,d.moveTo(e,n)):d.lineTo(e,n);d.lineTo(e+b,n),d.stroke(),d.lineTo(e+b,p),d.lineTo(r,p),d.fill()}}_scheduleDraw(){this._canvasState.inView?(this._canvasState.renderScheduled=!1,this._requestedAnimationFrame||(this._requestedAnimationFrame=!0,window.requestAnimationFrame((()=>{this._requestedAnimationFrame=!1;const e=this._canvas;e&&this.drawCanvas(e)})))):this._canvasState.renderScheduled=!0}componentDidMount(){this._scheduleDraw()}componentDidUpdate(){this._scheduleDraw()}render(){return X.createElement(JE,{onChange:this._observerCallback},X.createElement("canvas",{className:"timelineTrackMemoryCanvas",ref:this._takeCanvasRef}))}}class CS extends X.PureComponent{constructor(...e){super(...e),this.state={hoveredCounter:null,mouseX:0,mouseY:0},this._onMouseLeave=()=>{window.persistTooltips||this.setState({hoveredCounter:null})},this._onMouseMove=e=>{const{pageX:t,pageY:n}=e,{left:r}=e.currentTarget.getBoundingClientRect(),{width:o,rangeStart:a,rangeEnd:i,counter:s,interval:l,counterSampleRanges:c}=this.props,d=a+(t-r)/o*(i-a);if(0===s.sampleGroups.length)throw new Error("No sample group found for memory counter");const{samples:u}=s.sampleGroups[0];if(d<u.time[0]||d>u.time[u.length-1]+l)this.setState({hoveredCounter:null});else{let e;const[r,o]=c[0],a=(0,Jn.e)(u.time,d,r,o);e=a>0&&a<u.time.length&&d-u.time[a-1]<u.time[a]-d?a-1:a,e===u.length&&(e=u.time.length-1),this.setState({mouseX:t,mouseY:n,hoveredCounter:e})}}}_renderTooltip(e){const{accumulatedSamples:t,counter:n,rangeStart:r,rangeEnd:o}=this.props,{mouseX:a,mouseY:i}=this.state;if(0===t.length)throw new Error("No accumulated sample found for memory counter");const{samples:s}=n.sampleGroups[0],l=s.time[e];if(l<r||l>o)return null;const{minCount:c,countRange:d,accumulatedCounts:u}=t[0],h=u[e]-c,p=void 0!==s.number?s.number[e]:null;return X.createElement(PC,{mouseX:a,mouseY:i},X.createElement("div",{className:"timelineTrackMemoryTooltip"},null!==p?X.createElement("div",{className:"timelineTrackMemoryTooltipLine"},X.createElement("span",{className:"timelineTrackMemoryTooltipNumber"},Mt(p,2,0)),X.createElement(ue,{id:"TrackMemoryGraph--operations-since-the-previous-sample"},"operations since the previous sample")):null,X.createElement("div",{className:"timelineTrackMemoryTooltipLine"},X.createElement("span",{className:"timelineTrackMemoryTooltipNumber"},Ot(h)),X.createElement(ue,{id:"TrackMemoryGraph--relative-memory-at-this-time"},"relative memory at this time")),X.createElement("div",{className:"timelineTrackMemoryTooltipLine"},X.createElement("span",{className:"timelineTrackMemoryTooltipNumber"},Ot(d)),X.createElement(ue,{id:"TrackMemoryGraph--memory-range-in-graph"},"memory range in graph"))))}_renderMemoryDot(e){const{counter:t,rangeStart:n,rangeEnd:r,graphHeight:o,width:a,lineWidth:i,accumulatedSamples:s}=this.props;if(0===t.sampleGroups.length)throw new Error("No sample group found for memory counter");const{samples:l}=t.sampleGroups[0],c=r-n,d=l.time[e];if(d<n||d>r)return null;const u=a*(d-n)/c;if(0===s.length)throw new Error("No accumulated sample found for memory counter");const{minCount:h,countRange:p,accumulatedCounts:m}=s[0],f=o-i/2,g=f-(m[e]-h)/p*f+i/2;return X.createElement("div",{style:{left:u,top:g},className:"timelineTrackMemoryGraphDot"})}render(){const{hoveredCounter:e}=this.state,{filteredThread:t,interval:n,rangeStart:r,rangeEnd:o,unfilteredSamplesRange:a,counter:i,counterSampleRanges:s,graphHeight:l,width:c,lineWidth:d,accumulatedSamples:u}=this.props;return X.createElement("div",{className:"timelineTrackMemoryGraph",onMouseMove:this._onMouseMove,onMouseLeave:this._onMouseLeave},X.createElement(bS,{rangeStart:r,rangeEnd:o,counter:i,counterSampleRanges:s,height:l,width:c,lineWidth:d,interval:n,accumulatedSamples:u}),null===e?null:X.createElement(X.Fragment,null,this._renderMemoryDot(e),this._renderTooltip(e)),X.createElement(Hx,{thread:t,interval:n,rangeStart:r,rangeEnd:o,unfilteredSamplesRange:a}))}}const yS=je({mapStateToProps:(e,t)=>{const{counterIndex:n}=t,r=ol(n),o=r.getCounter(e),{start:a,end:i}=Is(e),s=r.getCommittedRangeCounterSampleRanges(e),l=Eu(o.mainThreadIndex);return{counter:o,threadIndex:o.mainThreadIndex,accumulatedSamples:r.getAccumulateCounterSamples(e),rangeStart:a,rangeEnd:i,counterSampleRanges:s,interval:Ls(e),filteredThread:l.getFilteredThread(e),unfilteredSamplesRange:l.unfilteredSamplesRange(e)}},component:nv(CS)});class vS extends X.PureComponent{constructor(...e){super(...e),this._onMarkerSelect=(e,t)=>{const{rangeStart:n,rangeEnd:r,updatePreviewSelection:o}=this.props;o({hasSelection:!0,isModifying:!1,selectionStart:Math.max(n,e),selectionEnd:Math.min(r,t)})}}render(){const{counterIndex:e,rangeStart:t,rangeEnd:n,threadIndex:r}=this.props;return X.createElement("div",{className:"timelineTrackMemory",style:{height:40,"--graph-height":"25px","--markers-height":"15px"}},X.createElement(Lx,{rangeStart:t,rangeEnd:n,threadsKey:r,onSelect:this._onMarkerSelect}),X.createElement(yS,{counterIndex:e,lineWidth:2,graphHeight:25}))}}const wS=je({mapStateToProps:(e,t)=>{const{counterIndex:n}=t,r=ol(n).getCounter(e),{start:o,end:a}=Is(e);return{threadIndex:r.mainThreadIndex,rangeStart:o,rangeEnd:a}},mapDispatchToProps:{updatePreviewSelection:Gp},component:vS});var kS=n(9588),ES={};ES.styleTagTransform=M(),ES.setAttributes=B(),ES.insert=S().bind(null,"head"),ES.domAPI=E(),ES.insertStyleElement=P(),w()(kS.Z,ES),kS.Z&&kS.Z.locals&&kS.Z.locals;class xS extends X.PureComponent{constructor(...e){super(...e),this._onMarkerSelect=(e,t)=>{const{rangeStart:n,rangeEnd:r,updatePreviewSelection:o}=this.props;o({hasSelection:!0,isModifying:!1,selectionStart:Math.max(n,e),selectionEnd:Math.min(r,t)})}}render(){const{rangeStart:e,rangeEnd:t,threadIndex:n}=this.props;return X.createElement("div",{style:{height:25,"--markers-height":"25px"}},X.createElement(Ox,{rangeStart:e,rangeEnd:t,threadsKey:n,onSelect:this._onMarkerSelect}))}}const SS=je({mapStateToProps:e=>{const{start:t,end:n}=Is(e);return{rangeStart:t,rangeEnd:n}},mapDispatchToProps:{updatePreviewSelection:Gp},component:xS});var TS=n(9270),BS={};BS.styleTagTransform=M(),BS.setAttributes=B(),BS.insert=S().bind(null,"head"),BS.domAPI=E(),BS.insertStyleElement=P(),w()(TS.Z,BS),TS.Z&&TS.Z.locals&&TS.Z.locals;class _S extends X.PureComponent{constructor(...e){super(...e),this._canvas=null,this._requestedAnimationFrame=!1,this._takeCanvasRef=e=>{this._canvas=e}}drawCanvas(e){const{rangeStart:t,rangeEnd:n,counter:r,height:o,width:a,lineWidth:i,interval:s,maxCounterSampleCountsPerMs:l,counterSampleRanges:c}=this.props;if(0===a)return;const d=e.getContext("2d"),u=window.devicePixelRatio,h=a*u,p=o*u,m=i*u,f=.5*m,g=p-m,A=h/(n-t),b=s*A;if(e.width=Math.round(h),e.height=Math.round(p),d.clearRect(0,0,h,p),0===r.sampleGroups.length||0===c.length)throw new Error("No sample group found for process CPU counter");const C=r.sampleGroups[0].samples;if(0===C.length)return;const[y,v]=c[0],w=l[0];{d.lineWidth=m,d.lineJoin="bevel",d.strokeStyle=bC.S$,d.fillStyle="#73737388",d.beginPath();let e=0,n=0,r=0;for(let o=y;o<v;o++){e=(C.time[o]-t)*A;const a=0===o?s:C.time[o]-C.time[o-1];n=g-g*(C.count[o]/a/w)+f,0===o?(r=e,d.moveTo(e,n)):d.lineTo(e,n)}d.lineTo(e+b,n),d.stroke(),d.lineTo(e+b,p),d.lineTo(r,p),d.fill()}}_scheduleDraw(){this._requestedAnimationFrame||(this._requestedAnimationFrame=!0,window.requestAnimationFrame((()=>{this._requestedAnimationFrame=!1;const e=this._canvas;e&&this.drawCanvas(e)})))}render(){return this._scheduleDraw(),X.createElement("canvas",{className:"timelineTrackProcessCPUCanvas",ref:this._takeCanvasRef})}}class IS extends X.PureComponent{constructor(...e){super(...e),this.state={hoveredCounter:null,mouseX:0,mouseY:0},this._onMouseLeave=()=>{this.setState({hoveredCounter:null})},this._onMouseMove=e=>{const{pageX:t,pageY:n}=e,{left:r}=e.currentTarget.getBoundingClientRect(),{width:o,rangeStart:a,rangeEnd:i,counter:s,interval:l,counterSampleRanges:c}=this.props,d=a+(t-r)/o*(i-a);if(0===s.sampleGroups.length)throw new Error("No sample group found for process CPU counter");const{samples:u}=s.sampleGroups[0];if(d<u.time[0]||d>u.time[u.length-1]+l)this.setState({hoveredCounter:null});else{let e;const[r,o]=c[0],a=(0,Jn.e)(u.time,d,r,o);e=a>0&&a<u.time.length&&d-u.time[a-1]<u.time[a]-d?a-1:a,e===u.length&&(e=u.time.length-1),this.setState({mouseX:t,mouseY:n,hoveredCounter:e})}}}_renderTooltip(e){const{counter:t,maxCounterSampleCountsPerMs:n,interval:r,rangeStart:o,rangeEnd:a}=this.props,{mouseX:i,mouseY:s}=this.state,l=t.sampleGroups[0].samples;if(0===l.length)throw new Error("No sample found for process CPU counter");const c=l.time[e];if(c<o||c>a)return null;const d=n[0],u=l.count[e]/(0===e?r:l.time[e]-l.time[e-1])/d;return X.createElement(PC,{mouseX:i,mouseY:s},X.createElement("div",{className:"timelineTrackProcessCPUTooltip"},X.createElement("div",{className:"timelineTrackProcessCPUTooltipLine"},"CPU:"," ",X.createElement("span",{className:"timelineTrackProcessCPUTooltipNumber"},Dt(u)))))}_renderDot(e){const{counter:t,rangeStart:n,rangeEnd:r,graphHeight:o,width:a,lineWidth:i,maxCounterSampleCountsPerMs:s,interval:l}=this.props;if(0===t.sampleGroups.length)throw new Error("No sample group found for process CPU counter");const{samples:c}=t.sampleGroups[0],d=r-n,u=c.time[e];if(u<n||u>r)return null;const h=a*(c.time[e]-n)/d;if(0===c.length)throw new Error("No sample found for process CPU counter");const p=s[0],m=0===e?l:c.time[e]-c.time[e-1],f=o-i/2,g=f-c.count[e]/m/p*f+i/2;return X.createElement("div",{style:{left:h,top:g},className:"timelineTrackProcessCPUGraphDot"})}render(){const{hoveredCounter:e}=this.state,{filteredThread:t,interval:n,rangeStart:r,rangeEnd:o,unfilteredSamplesRange:a,counter:i,counterSampleRanges:s,graphHeight:l,width:c,lineWidth:d,maxCounterSampleCountsPerMs:u}=this.props;return X.createElement("div",{className:"timelineTrackProcessCPUGraph",onMouseMove:this._onMouseMove,onMouseLeave:this._onMouseLeave},X.createElement(_S,{rangeStart:r,rangeEnd:o,counter:i,counterSampleRanges:s,height:l,width:c,lineWidth:d,interval:n,maxCounterSampleCountsPerMs:u}),null===e?null:X.createElement(X.Fragment,null,this._renderDot(e),this._renderTooltip(e)),X.createElement(Hx,{thread:t,interval:n,rangeStart:r,rangeEnd:o,unfilteredSamplesRange:a}))}}const PS=je({mapStateToProps:(e,t)=>{const{counterIndex:n}=t,r=ol(n),o=r.getCounter(e),{start:a,end:i}=Is(e),s=r.getCommittedRangeCounterSampleRanges(e),l=Eu(o.mainThreadIndex);return{counter:o,threadIndex:o.mainThreadIndex,maxCounterSampleCountsPerMs:r.getMaxCounterSampleCountsPerMs(e),rangeStart:a,rangeEnd:i,counterSampleRanges:s,interval:Ls(e),filteredThread:l.getFilteredThread(e),unfilteredSamplesRange:l.unfilteredSamplesRange(e)}},component:nv(IS)});class NS extends X.PureComponent{render(){const{counterIndex:e}=this.props;return X.createElement("div",{className:"timelineTrackProcessCPU",style:{height:25,"--graph-height":"25px"}},X.createElement(PS,{counterIndex:e,lineWidth:2,graphHeight:25}))}}const MS=je({mapStateToProps:(e,t)=>{const{counterIndex:n}=t,r=ol(n).getCounter(e),{start:o,end:a}=Is(e);return{threadIndex:r.mainThreadIndex,rangeStart:o,rangeEnd:a}},mapDispatchToProps:{updatePreviewSelection:Gp},component:NS});var FS=Number.isNaN||function(e){return"number"==typeof e&&e!=e};function RS(e,t){if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++)if(!((r=e[n])===(o=t[n])||FS(r)&&FS(o)))return!1;var r,o;return!0}function DS(e,t){void 0===t&&(t=RS);var n=null;function r(){for(var r=[],o=0;o<arguments.length;o++)r[o]=arguments[o];if(n&&n.lastThis===this&&t(r,n.lastArgs))return n.lastResult;var a=e.apply(this,r);return n={lastResult:a,lastArgs:r,lastThis:this},a}return r.clear=function(){n=null},r}var LS={AFG:120.48,AFRICA:484.16,ALB:23.44,DZA:498.9,ASM:687.5,AGO:195.98,ATG:657.14,ARG:344.31,ARM:222.68,ABW:591.4,ASEAN:508.06,ASIA:535.23,AUS:501.7,AUT:157.52,AZE:532.9,BHS:698.11,BHR:494.02,BGD:577.03,BRB:644.86,BLR:415.64,BEL:165.36,BLZ:484.38,BEN:666.67,BTN:24.44,BOL:322.09,BIH:516.01,BWA:794.52,BRA:102.09,BRN:658.85,BGR:399.57,BFA:611.43,BDI:250,CPV:600,KHM:400.46,CMR:278.26,CAN:125.84,CYM:684.93,CAF:0,TCD:677.42,CHL:332.61,CHN:533.98,COL:168.95,COM:714.29,COG:395.52,COD:25.36,COK:400,CRI:37.21,CIV:410.75,HRV:246.46,CUB:602.23,CYP:589.35,CZE:415.35,DNK:180.71,DJI:666.67,DMA:529.41,DOM:549.8,ECU:188.71,EGY:469.63,SLV:194.23,GNQ:492.96,ERI:688.89,EST:464.03,SWZ:189.19,ETH:25.19,EU:277.19,EUROPE:296.45,FLK:500,FRO:428.57,FJI:289.47,FIN:130.98,FRA:84.82,GUF:254.72,PYF:471.43,G20:442.38,G7:343.92,GAB:397.38,GMB:700,GEO:134.83,DEU:384.83,GHA:361.2,GRC:343.82,GRL:133.33,GRD:714.29,GLP:623.53,GUM:670.33,GTM:291.55,GIN:208.63,GNB:750,GUY:642.28,HTI:606.06,HND:373.96,HKG:683.97,HUN:222.97,ISL:28.56,IND:633.4,IDN:619.02,IRN:487.86,IRQ:498.87,IRL:346.33,ISR:548.03,ITA:371.69,JAM:537.93,JPN:494.86,JOR:399.91,KAZ:635.57,KEN:100.57,KIR:666.67,XKX:768.73,KWT:551.74,KGZ:104.43,LAO:242.18,"LATIN AMERICA AND CARIBBEAN":238.68,LVA:181.82,LBN:605.74,LSO:20,LBR:304.35,LBY:550.42,LTU:194.25,LUX:168.14,MAC:491.53,MDG:483.25,MWI:133.8,MYS:543.87,MDV:651.52,MLI:463.13,MLT:495,MTQ:698.63,MRT:526.6,MUS:611.11,MEX:423.81,"MIDDLE EAST":516.02,MDA:677.18,MNG:749.66,MNE:399.38,MSR:1e3,MAR:610.41,MOZ:126.63,MMR:344.37,NAM:63.69,NRU:750,NPL:24.51,NLD:355.78,NCL:610.12,NZL:97.73,NIC:354.21,NER:622.22,NGA:368.11,"NORTH AMERICA":336.01,PRK:157.79,MKD:529.33,NOR:28.82,OCEANIA:449.71,OECD:340.95,OMN:488.27,PAK:344.16,PSE:465.12,PAN:186.61,PNG:526.75,PRY:25.49,PER:256.51,POL:633.1,PRT:234.03,PRI:681.47,QAT:489.88,REU:519.03,ROU:264.12,RUS:363.68,RWA:294.12,KNA:681.82,LCA:685.71,SPM:800,VCT:500,WSM:470.59,STP:600,SAU:557.78,SEN:523.13,SRB:569.38,SYC:615.39,SLE:47.62,SGP:488.78,SVK:140.67,SVN:237.38,SLB:727.27,SOM:634.15,ZAF:708.19,KOR:437.6,SSD:684.21,ESP:217.37,LKA:463,SDN:264.01,SUR:356.44,SWE:45.08,CHE:45.62,SYR:541.17,TWN:561.02,TJK:83.63,TZA:366.75,THA:501.57,PHL:582.84,TGO:460.32,TON:625,TTO:491.41,TUN:469.43,TUR:413.63,TKM:490.19,TCA:703.7,UGA:52.27,UKR:187.06,ARE:407.98,GBR:261.24,USA:367.26,URY:114.89,UZB:505.41,VUT:571.43,VEN:212.48,VNM:386.49,VGB:714.29,VIR:685.71,WORLD:437.26,YEM:543.91,ZMB:84.7,ZWE:392.28};LS.WORLD,Object.defineProperty,Object.defineProperties,Object.getOwnPropertyDescriptors,Object.getOwnPropertySymbols,Object.prototype.hasOwnProperty,Object.prototype.propertyIsEnumerable;class OS extends X.PureComponent{constructor(...e){super(...e),this._computePowerSumForCommittedRange=DS((({start:e,end:t})=>this._computePowerSumForRange(e,t))),this._computePowerSumForPreviewRange=DS((({selectionStart:e,selectionEnd:t})=>this._computePowerSumForRange(e,t)))}_computePowerSumForRange(e,t){const{counter:n}=this.props,r=n.sampleGroups[0].samples,[o,a]=br(r,e,t);let i=0;for(let e=o;e<a;e++)i+=r.count[e];return 1e-12*i}_computeCO2eFromPower(e){return e/1e3*(this.props.meta.gramsOfCO2ePerKWh||LS.WORLD)}_formatPowerValue(e,t,n,r,o){let a,i,s;const l=this._computeCO2eFromPower(e);return e>1e3?(a=Mt(e/1e3,3),s=Mt(l/1e3,2),i=t):e>1?(a=Mt(e,3),s=Mt(l,3),i=n):0===e?(a=0,s=0,i=n):e<.001&&o?(a=Mt(1e6*e),s=Mt(1e3*l),i=o):(a=Mt(1e3*e),s=Mt(1e3*l),i=r),X.createElement(ue,{id:i,vars:{value:a,carbonValue:s},attrs:{label:!0}},X.createElement(ay,{label:""},a))}render(){const{counter:e,counterSampleIndex:t,interval:n,committedRange:r,previewSelection:o}=this.props,a=e.sampleGroups[0].samples,i=1e-12*a.count[t]/(0===t?n:a.time[t]-a.time[t-1])*1e3*3600;return X.createElement("div",{className:"timelineTrackPowerTooltip"},X.createElement(sy,null,this._formatPowerValue(i,"TrackPower--tooltip-power-kilowatt","TrackPower--tooltip-power-watt","TrackPower--tooltip-power-milliwatt"),o.hasSelection?this._formatPowerValue(this._computePowerSumForPreviewRange(o),"TrackPower--tooltip-energy-carbon-used-in-preview-kilowatthour","TrackPower--tooltip-energy-carbon-used-in-preview-watthour","TrackPower--tooltip-energy-carbon-used-in-preview-milliwatthour","TrackPower--tooltip-energy-carbon-used-in-preview-microwatthour"):null,this._formatPowerValue(this._computePowerSumForCommittedRange(r),"TrackPower--tooltip-energy-carbon-used-in-range-kilowatthour","TrackPower--tooltip-energy-carbon-used-in-range-watthour","TrackPower--tooltip-energy-carbon-used-in-range-milliwatthour","TrackPower--tooltip-energy-carbon-used-in-range-microwatthour")))}}const US=je({mapStateToProps:e=>({interval:Ls(e),meta:js(e),committedRange:Is(e),previewSelection:Ms(e)}),component:OS});var zS=n(1141),GS={};GS.styleTagTransform=M(),GS.setAttributes=B(),GS.insert=S().bind(null,"head"),GS.domAPI=E(),GS.insertStyleElement=P(),w()(zS.Z,GS),zS.Z&&zS.Z.locals&&zS.Z.locals;class WS extends X.PureComponent{constructor(...e){super(...e),this._canvas=null,this._canvasState={renderScheduled:!1,inView:!1},this._takeCanvasRef=e=>{this._canvas=e},this._observerCallback=(e,t)=>{this._canvasState.inView=e,this._canvasState.renderScheduled&&this._renderCanvas()}}drawCanvas(e){const{rangeStart:t,rangeEnd:n,counter:r,height:o,width:a,lineWidth:i,interval:s,maxCounterSampleCountsPerMs:l,counterSampleRanges:c}=this.props;if(0===a)return;const d=e.getContext("2d"),u=window.devicePixelRatio,h=a*u,p=o*u,m=i*u,f=.5*m,g=p-m,A=h/(n-t),b=s*A;if(e.width=Math.round(h),e.height=Math.round(p),d.clearRect(0,0,h,p),0===r.sampleGroups.length||0===c.length)throw new Error("No sample group found for power counter");const C=r.sampleGroups[0].samples;if(0===C.length)return;const[y,v]=c[0],w=l[0];{d.lineWidth=m,d.lineJoin="bevel",d.strokeStyle=bC.S$,d.fillStyle="#73737388",d.beginPath();const e=e=>Math.round((C.time[e]-t)*A),n=e=>{const t=0===e?s:C.time[e]-C.time[e-1];return C.count[e]/t},r=e=>{const t=e/w;return Math.round(g-g*t+f)},o=e(y);let a=o,i=r(n(y));d.moveTo(a,i);for(let t=y+1;t<v;t++){const o=[n(t)];for(a=e(t),i=r(o[0]),d.lineTo(a,i);t+1<v&&e(t+1)===a;)o.push(n(++t));if(o.length>2){const e=r(Math.min(...o));e!==i&&(i=e,d.lineTo(a,i));const t=r(Math.max(...o));t!==i&&(i=t,d.lineTo(a,i))}const s=r(o[o.length-1]);s!==i&&(i=s,d.lineTo(a,i))}d.lineTo(a+b,i),d.stroke(),d.lineTo(a+b,p),d.lineTo(o,p),d.fill()}}_renderCanvas(){if(!this._canvasState.inView)return void(this._canvasState.renderScheduled=!0);this._canvasState.renderScheduled=!1;const e=this._canvas;e&&Kn("TrackPowerCanvas render",(()=>{this.drawCanvas(e)}))}render(){return this._renderCanvas(),X.createElement(JE,{onChange:this._observerCallback},X.createElement("canvas",{className:"timelineTrackPowerCanvas",ref:this._takeCanvasRef}))}}class HS extends X.PureComponent{constructor(...e){super(...e),this.state={hoveredCounter:null,mouseX:0,mouseY:0},this._onMouseLeave=()=>{this.setState({hoveredCounter:null})},this._onMouseMove=e=>{const{pageX:t,pageY:n}=e,{left:r}=e.currentTarget.getBoundingClientRect(),{width:o,rangeStart:a,rangeEnd:i,counter:s,interval:l,counterSampleRanges:c}=this.props,d=i-a,u=a+(t-r)/o*d;if(0===s.sampleGroups.length)throw new Error("No sample group found for power counter");const{samples:h}=s.sampleGroups[0];if(u<h.time[0]||u>h.time[h.length-1]+l)this.setState({hoveredCounter:null});else{let e;const[i,s]=c[0],l=(0,Jn.e)(h.time,u,i,s);if(l>0&&l<h.time.length){e=u-h.time[l-1]<h.time[l]-u?l-1:l;const n=e=>Math.round((e-a)/d*o+r);for(let r=e-1;n(h.time[r])===t&&r>0;--r)h.count[r]>h.count[e]&&(e=r);for(let r=e+1;n(h.time[r])===t&&r<h.time.length;++r)h.count[r]>h.count[e]&&(e=r)}else e=l;e===h.length&&(e=h.time.length-1),this.setState({mouseX:t,mouseY:n,hoveredCounter:e})}}}_renderTooltip(e){const{counter:t,rangeStart:n,rangeEnd:r}=this.props,{mouseX:o,mouseY:a}=this.state,i=t.sampleGroups[0].samples;if(0===i.length)throw new Error("No sample found for power counter");const s=i.time[e];return s<n||s>r?null:X.createElement(PC,{mouseX:o,mouseY:a},X.createElement(US,{counter:t,counterSampleIndex:e}))}_renderDot(e){const{counter:t,rangeStart:n,rangeEnd:r,graphHeight:o,width:a,lineWidth:i,maxCounterSampleCountsPerMs:s,interval:l}=this.props;if(0===t.sampleGroups.length)throw new Error("No sample group found for power counter");const{samples:c}=t.sampleGroups[0],d=r-n,u=c.time[e];if(u<n||u>r)return null;const h=a*(u-n)/d;if(0===c.length)throw new Error("No sample found for power counter");const p=s[0],m=0===e?l:c.time[e]-c.time[e-1],f=o-i/2,g=f-c.count[e]/m/p*f+i/2;return X.createElement("div",{style:{left:h,top:g},className:"timelineTrackPowerGraphDot"})}render(){const{hoveredCounter:e}=this.state,{filteredThread:t,interval:n,rangeStart:r,rangeEnd:o,unfilteredSamplesRange:a,counter:i,counterSampleRanges:s,graphHeight:l,width:c,lineWidth:d,maxCounterSampleCountsPerMs:u}=this.props;return X.createElement("div",{className:"timelineTrackPowerGraph",onMouseMove:this._onMouseMove,onMouseLeave:this._onMouseLeave},X.createElement(WS,{rangeStart:r,rangeEnd:o,counter:i,counterSampleRanges:s,height:l,width:c,lineWidth:d,interval:n,maxCounterSampleCountsPerMs:u}),null===e?null:X.createElement(X.Fragment,null,this._renderDot(e),this._renderTooltip(e)),X.createElement(Hx,{thread:t,interval:n,rangeStart:r,rangeEnd:o,unfilteredSamplesRange:a}))}}const VS=je({mapStateToProps:(e,t)=>{const{counterIndex:n}=t,r=ol(n),o=r.getCounter(e),{start:a,end:i}=Is(e),s=r.getCommittedRangeCounterSampleRanges(e),l=Eu(o.mainThreadIndex);return{counter:o,threadIndex:o.mainThreadIndex,maxCounterSampleCountsPerMs:r.getMaxRangeCounterSampleCountsPerMs(e),rangeStart:a,rangeEnd:i,counterSampleRanges:s,interval:Ls(e),filteredThread:l.getFilteredThread(e),unfilteredSamplesRange:l.unfilteredSamplesRange(e)}},component:nv(HS)});class jS extends X.PureComponent{render(){const{counterIndex:e}=this.props;return X.createElement("div",{className:"timelineTrackPower",style:{height:25,"--graph-height":"25px"}},X.createElement(VS,{counterIndex:e,lineWidth:2,graphHeight:25}))}}const ZS=je({mapStateToProps:(e,t)=>{const{counterIndex:n}=t,r=ol(n).getCounter(e),{start:o,end:a}=Is(e);return{threadIndex:r.mainThreadIndex,rangeStart:o,rangeEnd:a}},mapDispatchToProps:{updatePreviewSelection:Gp},component:jS});var $S=n(4349),KS={};function YS(e,t,n,r){let o;switch(e){case"line":case"line-filled":o=(r-t)/(n-t);break;case"bar":o=r/n;break;default:throw Je(e,`The type ${e} is unexpected in _calculateUnitValue`)}return.85*o}function qS(e){switch(e){case"magenta":return bC.C0;case"purple":return bC._U;case"blue":return bC.wM;case"teal":return bC.Nm;case"green":return bC.UX;case"yellow":return bC.Yu;case"red":return bC.Wn;case"orange":return bC.FL;case"grey":return bC.S$;case"ink":return bC.H1;default:throw new Error("Unexpected marker track stroke color: "+e)}}function JS(e){return qS(e)+"88"}function XS(e){switch(e){case"magenta":return bC.hT;case"purple":return bC.St;case"blue":return bC.vd;case"teal":return bC.jj;case"green":return bC.Ns;case"yellow":return bC.u9;case"red":return bC.ME;case"orange":return bC.yt;case"grey":return bC.NO;case"ink":return bC.qs;default:throw new Error("Unexpected marker track stroke color: "+e)}}KS.styleTagTransform=M(),KS.setAttributes=B(),KS.insert=S().bind(null,"head"),KS.domAPI=E(),KS.insertStyleElement=P(),w()($S.Z,KS),$S.Z&&$S.Z.locals&&$S.Z.locals;class QS extends X.PureComponent{constructor(...e){super(...e),this._canvas=null,this._requestedAnimationFrame=!1,this._canvasState={renderScheduled:!1,inView:!1},this._takeCanvasRef=e=>{this._canvas=e},this._observerCallback=(e,t)=>{this._canvasState.inView=e,this._canvasState.renderScheduled&&this._scheduleDraw()}}drawCanvas(e){const{rangeStart:t,rangeEnd:n,markerSchema:r,markerSampleRanges:o,collectedSamples:a,height:i,width:s,getMarker:l}=this.props;if(0===s)return;const{name:c,graphs:d}=r;if(void 0===d)throw new Error("No track config for marker");const u=e.getContext("2d"),h=window.devicePixelRatio,p=s*h,m=i*h,f=p/(n-t);e.width=Math.round(p),e.height=Math.round(m),u.clearRect(0,0,p,m);const g=2*h,A=.5*g;if(u.lineWidth=g,u.lineJoin="bevel",0===a.numbersPerLine.length)throw new Error("No lines for marker "+c);const{minNumber:b,maxNumber:C}=a,[y,v]=o;for(let e=0;e<d.length;e++){const{type:n,color:r}=d[e],o=a.numbersPerLine[e];u.strokeStyle=qS(r||Pn);const i=e=>Math.round((e-t)*f),s=e=>{const t=YS(n,b,C,o[e]);return Math.round(m-m*t-A)};switch(n){case"line":case"line-filled":{let e=0,t=0,o=0;u.beginPath();for(let n=y;n<v;n++){const r=l(a.markerIndexes[n]);e=i(r.start),t=s(n),n===y?(o=e,u.moveTo(e,t)):u.lineTo(e,t),r.end&&(e=i(r.end),u.lineTo(e,t))}u.stroke(),"line-filled"===n&&(u.lineTo(e,m),u.lineTo(o,m),u.fillStyle=JS(r||Pn),u.fill(),u.closePath());break}case"bar":u.fillStyle=u.strokeStyle;for(let e=y;e<v;e++){let t=l(a.markerIndexes[e]);const n=i(t.start);let r=s(e);for(;e+1<v;){const o=l(a.markerIndexes[e+1]);if(i(o.start)!==n||i(o.end||o.start)!==i(t.end||t.start))break;t=o,r=Math.min(r,s(++e))}const o=t.end?Math.max(n+1,i(t.end)):n+1;u.fillRect(n,r,o-n,m-r)}break;default:throw new Error("Unsupported type "+n)}}}_scheduleDraw(){this._canvasState.inView?(this._canvasState.renderScheduled=!1,this._requestedAnimationFrame||(this._requestedAnimationFrame=!0,window.requestAnimationFrame((()=>{this._requestedAnimationFrame=!1;const e=this._canvas;e&&Kn("TrackCustomMarkerCanvas render",(()=>{this.drawCanvas(e)}))})))):this._canvasState.renderScheduled=!0}componentDidMount(){this._scheduleDraw()}componentDidUpdate(){this._scheduleDraw()}render(){return X.createElement(JE,{onChange:this._observerCallback},X.createElement("canvas",{className:"timelineTrackCustomMarkerCanvas",ref:this._takeCanvasRef}))}}class eT extends X.PureComponent{constructor(...e){super(...e),this.state={hoveredCounter:null,mouseX:0,mouseY:0},this._onMouseLeave=()=>{window.persistTooltips||this.setState({hoveredCounter:null})},this._onMouseMove=e=>{const{pageX:t,pageY:n}=e,{left:r}=e.currentTarget.getBoundingClientRect(),{width:o,rangeStart:a,rangeEnd:i,markerSampleRanges:s,collectedSamples:l,getMarker:c}=this.props,d=a+(t-r)/o*(i-a),u=l.markerIndexes.map((e=>c(e))),h=u.map((e=>e.start));if(0===h.length||d<h[0]||d>h[h.length-1]+(u[h.length-1].end||0))this.setState({hoveredCounter:null});else{let e;const[r,o]=s,a=(0,Jn.e)(h,d,r,o);if(a>0&&a<h.length){const t=d-h[a-1],n=h[a]-d,r=u[a-1].end;e=r&&r>d||t<n?a-1:a}else e=a;e===h.length&&(e=h.length-1),this.setState({mouseX:t,mouseY:n,hoveredCounter:e})}}}_renderTooltip(e){const{collectedSamples:t,rangeStart:n,rangeEnd:r,markerSchema:o,threadIndex:a,getMarker:i}=this.props,{mouseX:s,mouseY:l}=this.state;if(0===t.numbersPerLine.length)throw new Error("No samples for marker "+o.name);const c=t.markerIndexes[e],d=i(c),u=d.start;return(d.end||u)<n||u>r?null:X.createElement(PC,{mouseX:s,mouseY:l},X.createElement(Iy,{markerIndex:c,marker:d,threadsKey:a,restrictHeightWidth:!0}))}_renderDot(e){const{markerSchema:t,rangeStart:n,rangeEnd:r,graphHeight:o,width:a,collectedSamples:i,getMarker:s}=this.props,{graphs:l}=t;if(void 0===l)throw new Error("No track config for marker");const c=r-n,d=s(i.markerIndexes[e]),u=d.start;if((d.end||u)<n||u>r)return null;const h=a*(u-n)/c,{minNumber:p,maxNumber:m,numbersPerLine:f}=i,g=[];for(let t=0;t<l.length;t++){const{type:n,color:r}=l[t],i=1,s=o-i,u={left:h,top:s-YS(n,p,m,f[t][e])*s-i};if(u.backgroundColor=XS(r||Pn),d.end){let e=a*(d.end-d.start)/c;const t=6;if(e>t){u.marginLeft=0,h<0&&(e+=h,u.left=0,u.borderTopLeftRadius=0,u.borderBottomLeftRadius=0);const t=Math.max(h,0);u.width=Math.min(e,a-t),e>a-t&&(u.borderTopRightRadius=0,u.borderBottomRightRadius=0)}else u.marginLeft=-(t-e)/2}g.push(X.createElement("div",{style:u,key:t,className:"timelineTrackCustomMarkerGraphDot"}))}return X.createElement(X.Fragment,null,g)}render(){const{hoveredCounter:e}=this.state,{rangeStart:t,rangeEnd:n,markerSchema:r,markerSampleRanges:o,graphHeight:a,width:i,collectedSamples:s,getMarker:l}=this.props;return X.createElement("div",{className:"timelineTrackCustomMarkerGraph",onMouseMove:this._onMouseMove,onMouseLeave:this._onMouseLeave},X.createElement(QS,{rangeStart:t,rangeEnd:n,markerSchema:r,markerSampleRanges:o,height:a,width:i,collectedSamples:s,getMarker:l}),null===e?null:X.createElement(X.Fragment,null,this._renderDot(e),this._renderTooltip(e)))}}const tT=je({mapStateToProps:(e,t)=>{const{threadIndex:n,markerSchema:r,markerName:o}=t,{start:a,end:i}=Is(e),s=Eu(n),l=s.getMarkerTrackSelectors(r,o);return{markerSampleRanges:l.getCommittedRangeMarkerSampleRange(e),collectedSamples:l.getCollectedCustomMarkerSamples(e),rangeStart:a,rangeEnd:i,getMarker:s.getMarkerGetter(e)}},component:nv(eT)});class nT extends X.PureComponent{render(){const{markerSchema:e,markerName:t,threadIndex:n}=this.props;return X.createElement("div",{className:"timelineTrackCustomMarker",style:{height:25,"--graph-height":"25px"}},X.createElement(tT,{threadIndex:n,markerSchema:e,markerName:t,graphHeight:25}))}}const rT=je({mapStateToProps:(e,t)=>{const{start:n,end:r}=Is(e);return{rangeStart:n,rangeEnd:r}},component:nT});class oT extends X.PureComponent{constructor(...e){super(...e),this._onContextMenu=()=>{this.props.changeRightClickedTrack(this._getTrackReference())},this._selectCurrentTrack=e=>{this.props.selectTrackWithModifiers(this._getTrackReference(),xh(e))},this._hideCurrentTrack=e=>{const{pid:t,trackIndex:n,hideLocalTrack:r}=this.props;r(t,n),e.stopPropagation()}}_getTrackReference(){const{pid:e,trackIndex:t}=this.props;return{type:"local",pid:e,trackIndex:t}}renderTrack(){const{localTrack:e,trackName:t}=this.props;switch(e.type){case"thread":return X.createElement(Kx,{threadsKey:e.threadIndex,trackType:"expanded",trackName:t});case"network":return X.createElement(fS,{threadIndex:e.threadIndex});case"memory":return X.createElement(wS,{counterIndex:e.counterIndex});case"ipc":return X.createElement(SS,{threadIndex:e.threadIndex});case"event-delay":return X.createElement(sS,{threadIndex:e.threadIndex});case"process-cpu":return X.createElement(MS,{counterIndex:e.counterIndex});case"power":return X.createElement(ZS,{counterIndex:e.counterIndex});case"marker":return X.createElement(rT,{threadIndex:e.threadIndex,markerSchema:e.markerSchema,markerName:e.markerName});default:return console.error("Unhandled localTrack type",e),null}}componentDidMount(){const{isSelected:e}=this.props;e&&this.props.setIsInitialSelectedPane(!0)}render(){const{isSelected:e,isHidden:t,titleText:n,trackName:r,style:o}=this.props;return t?X.createElement("li",{className:"timelineTrackHidden"}):X.createElement("li",{className:"timelineTrack timelineTrackLocal",style:o},X.createElement("div",{className:Xg()("timelineTrackRow timelineTrackLocalRow",{selected:e}),onClick:this._selectCurrentTrack},X.createElement(DA,{id:"TimelineTrackContextMenu",renderTag:"div",attributes:{title:n,className:"timelineTrackLabel timelineTrackLocalLabel timelineTrackLocalGrippy",onContextMenu:this._onContextMenu}},X.createElement("button",{type:"button",className:"timelineTrackNameButton"},r),X.createElement(ue,{id:"TrackNameButton--hide-track",attrs:{title:!0}},X.createElement("button",{type:"button",className:"timelineTrackCloseButton",title:"Hide track",onClick:this._hideCurrentTrack}))),X.createElement("div",{className:"timelineTrackTrack"},this.renderTrack())))}}const aT=je({mapStateToProps:(e,{pid:t,localTrack:n,trackIndex:r})=>{let o=null,a=!1;const i=pi(e);switch(n.type){case"thread":{const t=n.threadIndex,r=ui(e),s=Eu(t);a=i.has(t)&&"network-chart"!==r,o=s.getThreadProcessDetails(e);break}case"network":{const t=n.threadIndex,r=ui(e);a=i.has(t)&&"network-chart"===r;break}case"memory":case"process-cpu":case"power":o=ol(n.counterIndex).getDescription(e);break;case"marker":case"ipc":{const t=n.threadIndex,r=ui(e);a=i.has(t)&&"marker-chart"===r;break}case"event-delay":{const t=n.threadIndex,r=Eu(t);a=t===i.has(t),o="Event Delay of "+r.getThreadProcessDetails(e);break}default:throw Je(n,"Unhandled LocalTrack type.")}return{trackName:Cl(e,t,r),titleText:o,isSelected:a,isHidden:ki(e,t).has(r)}},mapDispatchToProps:{changeRightClickedTrack:sp,selectTrackWithModifiers:rp,hideLocalTrack:wp},component:oT});var iT=n(9880),sT={};sT.styleTagTransform=M(),sT.setAttributes=B(),sT.insert=S().bind(null,"head"),sT.domAPI=E(),sT.insertStyleElement=P(),w()(iT.Z,sT),iT.Z&&iT.Z.locals&&iT.Z.locals;class lT extends X.PureComponent{constructor(...e){super(...e),this._canvas=null,this._requestedAnimationFrame=!1,this._takeCanvasRef=e=>{this._canvas=e}}drawCanvas(e){const{rangeStart:t,rangeEnd:n,progressGraphData:r,height:o,width:a,lineWidth:i,interval:s}=this.props;if(0===a)return;const l=e.getContext("2d"),c=window.devicePixelRatio,d=a*c,u=o*c,h=i*c,p=.5*h,m=u-h;if(e.width=Math.round(d),e.height=Math.round(u),l.clearRect(0,0,d,u),0!==r.length){const e=n-t;l.lineWidth=h,l.strokeStyle=bC.wM,l.fillStyle="#0a84ff88",l.beginPath();let o=0,a=0,i=0;for(let n=0;n<r.length;n++)o=d*((r[n].timestamp??0)-t)/e,a=m-m*(r[n].percent/100)+p,0===n?l.moveTo(o,a):(l.lineTo(o,i),l.lineTo(o,a)),i=a;o=d*(n-t)/e,l.lineTo(o,a),l.stroke(),l.lineTo(o+s,u),l.lineTo(d*((r[0].timestamp??0)-t)/e+s,u),l.fill()}}_scheduleDraw(){this._requestedAnimationFrame||(this._requestedAnimationFrame=!0,window.requestAnimationFrame((()=>{this._requestedAnimationFrame=!1;const e=this._canvas;e&&this.drawCanvas(e)})))}render(){return this._scheduleDraw(),X.createElement("canvas",{className:"timelineTrackVisualProgressCanvas",ref:this._takeCanvasRef})}}class cT extends X.PureComponent{constructor(...e){super(...e),this.state={hoveredVisualProgress:null,mouseX:0,mouseY:0},this._onMouseLeave=()=>{this.setState({hoveredVisualProgress:null})},this._onMouseMove=e=>{const{pageX:t,pageY:n}=e,{left:r}=e.currentTarget.getBoundingClientRect(),{width:o,rangeStart:a,rangeEnd:i,progressGraphData:s,interval:l}=this.props,c=a+(t-r)/o*(i-a);if(c<(s[0].timestamp??0)||c>(s[s.length-1].timestamp??0)+l)this.setState({hoveredVisualProgress:null});else{const e=s.map((({timestamp:e})=>e??0));let r=(0,Jn.e)(e,c);r===s.length&&(r=s.length-1),this.setState({mouseX:t,mouseY:n,hoveredVisualProgress:r})}}}_renderTooltip(e){const{progressGraphData:t,graphDotTooltipText:n}=this.props,r=t[e].percent/100;return X.createElement("div",{className:"timelineTrackVisualProgressTooltip"},X.createElement("div",{className:"timelineTrackVisualProgressTooltipLine"},X.createElement("span",{className:"timelineTrackVisualProgressTooltipNumber"},Dt(r)),n))}_renderVisualProgressDot(e){const{progressGraphData:t,rangeStart:n,rangeEnd:r,graphHeight:o,width:a,lineWidth:i}=this.props,s=r-n,l=a*((t[e].timestamp??0)-n)/s,c=o-i/2,d=c-t[e].percent/100*c+i/2;return X.createElement("div",{style:{left:l,top:d,"--dot-color":bC.vd},className:"timelineTrackVisualProgressGraphDot"})}render(){const{hoveredVisualProgress:e,mouseX:t,mouseY:n}=this.state,{interval:r,rangeStart:o,rangeEnd:a,graphHeight:i,width:s,lineWidth:l,progressGraphData:c}=this.props;return X.createElement("div",{className:"timelineTrackVisualProgressGraph",onMouseMove:this._onMouseMove,onMouseLeave:this._onMouseLeave},X.createElement(lT,{rangeStart:o,rangeEnd:a,progressGraphData:c,height:i,width:s,lineWidth:l,interval:r}),null===e?null:X.createElement(X.Fragment,null,this._renderVisualProgressDot(e),X.createElement(PC,{mouseX:t,mouseY:n},this._renderTooltip(e))))}}const dT=je({mapStateToProps:e=>{const{start:t,end:n}=Is(e);return{rangeStart:t,rangeEnd:n,interval:Ls(e)}},component:nv(cT)});class uT extends X.PureComponent{render(){const{progressGraphData:e,graphDotTooltipText:t}=this.props;return X.createElement("div",{className:"timelineTrackVisualProgress",style:{height:40,"--graph-height":"40px"}},X.createElement(dT,{progressGraphData:e,lineWidth:2,graphHeight:40,graphDotTooltipText:t}))}}const hT=je({mapStateToProps:e=>{const{start:t,end:n}=Is(e);return{rangeStart:t,rangeEnd:n}},mapDispatchToProps:{updatePreviewSelection:Gp},component:uT});var pT=n(454),mT=n.n(pT);function fT(e,t){const n=window.getComputedStyle;return parseFloat(n(e).getPropertyValue(t))||0}function gT(e){const t=e.getClientRects();return 1!==t.length?new DOMRect(0,0,0,0):function(e,t){const n=fT(e,"padding-top"),r=fT(e,"padding-right"),o=fT(e,"padding-bottom"),a=fT(e,"padding-left");return new DOMRect(t.left+a,t.top+n,t.width-a-r,t.height-n-o)}(e,function(e,t){const n=fT(e,"border-top-width"),r=fT(e,"border-right-width"),o=fT(e,"border-bottom-width"),a=fT(e,"border-left-width");return new DOMRect(t.left+a,t.top+n,t.width-a-r,t.height-n-o)}(e,AT(t[0])))}function AT(e){return new DOMRect(e.left,e.top,e.width,e.height)}function bT(e){const t=e.getClientRects();return 1!==t.length?new DOMRect(0,0,0,0):function(e,t){const n=fT(e,"margin-top"),r=fT(e,"margin-right"),o=fT(e,"margin-bottom"),a=fT(e,"margin-left");return new DOMRect(t.left-a,t.top-n,t.width+a+r,t.height+n+o)}(e,AT(t[0]))}function CT(e,t){return e[t]}class yT extends X.PureComponent{constructor(...e){super(...e),this._xy={horizontal:{pageXY:"pageX",translateXY:"translateX",lefttop:"left",rightbottom:"right"},vertical:{pageXY:"pageY",translateXY:"translateY",lefttop:"top",rightbottom:"bottom"}},this.state={phase:"RESTING",manipulatingIndex:-1,destinationIndex:-1,manipulationDelta:0,adjustPrecedingBy:0,adjustSucceedingBy:0,finalOffset:0},this._onMouseDown=e=>{const t=e.currentTarget;if(e.target===t||!(e.target instanceof HTMLElement)||0!==e.button)return;let n=e.target;const{grippyClassName:r}=this.props;if(n.matches(`.${r}, .${r} *`)){for(;n instanceof HTMLElement&&n.parentNode!==t;)n=n.parentNode;n instanceof HTMLElement&&this._startDraggingElement(t,n,e)}}}_getXY(){return this._xy[this.props.orient]}_startDraggingElement(e,t,n){const r=this._getXY(),o=n[r.pageXY],a=bT(t),i=gT(e),s=CT(a,r.lefttop)-CT(i,r.lefttop),l=CT(i,r.rightbottom)-CT(a,r.rightbottom),c=Array.from(e.children);if(c.length<2)return;let d=!0,u=-1;const h=c.map(((e,n)=>{if(e===t)return u=n,d=!1,0;const o=bT(e);return d?CT(o,r.lefttop)-CT(a,r.lefttop):CT(o,r.rightbottom)-CT(a,r.rightbottom)}));if(-1===u)return;const p=h.map(((e,t)=>t===h.length-1?0:(h[t+1]+e)/2));p.pop();const m=u===c.length-1?CT(i,r.rightbottom):CT(bT(c[u+1]),r.lefttop),f=0===u?CT(i,r.lefttop):CT(bT(c[u-1]),r.rightbottom);this.setState({manipulatingIndex:u,manipulationDelta:0,destinationIndex:u,adjustPrecedingBy:m-CT(a,r.lefttop),adjustSucceedingBy:f-CT(a,r.rightbottom)});const g=e=>{"RESTING"===this.state.phase&&this.setState({phase:"MANIPULATING"});const t=Fu()(e[r.pageXY]-o,-s,l);this.setState({manipulationDelta:t,destinationIndex:(0,Jn.e)(p,t)})},A=e=>{if(window.removeEventListener("mousemove",g,!0),window.removeEventListener("mouseup",A,!0),"RESTING"===this.state.phase)return;g(e);const t=this.state.destinationIndex;this.setState({phase:"FINISHING",finalOffset:h[t]}),setTimeout((()=>{if(this.setState({phase:"RESTING"}),u!==t){const e=mT()(this.props.order,u,t);this.props.onChangeOrder(e)}}),200)};window.addEventListener("mousemove",g,!0),window.addEventListener("mouseup",A,!0)}render(){const{className:e,order:t,innerElementRef:n}=this.props,r=X.Children.toArray(this.props.children),o=t.map((e=>r[e])),a=this.props.tagName,i=this._getXY();if("RESTING"===this.state.phase)return X.createElement(a,{className:e,onMouseDown:this._onMouseDown,ref:n},o);const{phase:s,manipulatingIndex:l,destinationIndex:c,adjustPrecedingBy:d,adjustSucceedingBy:u}=this.state;return X.createElement(a,{className:e,ref:n},o.map(((e,t)=>{const n={transition:"200ms ease-in-out transform",willChange:"transform",position:"relative",zIndex:"1",transform:""};return t===l?(n.zIndex="2","MANIPULATING"===s?(delete n.transition,n.transform=`${i.translateXY}(${this.state.manipulationDelta}px)`):n.transform=`${i.translateXY}(${this.state.finalOffset}px)`):t<l&&t>=c?n.transform=`${i.translateXY}(${d}px)`:t>l&&t<=c&&(n.transform=`${i.translateXY}(${u}px)`),X.cloneElement(e,{style:n})})))}}class vT extends X.PureComponent{constructor(...e){super(...e),this._container=null,this._isInitialSelectedPane=null,this._onContextMenu=()=>{const{changeRightClickedTrack:e,trackReference:t}=this.props;e(t)},this._selectCurrentTrack=e=>{const{selectTrackWithModifiers:t,trackReference:n}=this.props;t(n,xh(e))},this._hideCurrentTrack=e=>{const{trackIndex:t,hideGlobalTrack:n}=this.props;n(t),e.stopPropagation()},this._changeLocalTrackOrder=e=>{const{globalTrack:t,changeLocalTrackOrder:n}=this.props;"process"===t.type&&n(t.pid,e)},this._takeContainerRef=e=>{const{isSelected:t}=this.props;this._container=e,t&&this.setIsInitialSelectedPane(!0)},this.setIsInitialSelectedPane=e=>{this._isInitialSelectedPane=e}}renderTrack(){const{globalTrack:e,processesWithMemoryTrack:t,progressGraphData:n,trackName:r}=this.props;switch(e.type){case"process":{const{mainThreadIndex:n}=e;return null===n?X.createElement("div",{className:"timelineTrackThreadBlank",style:{"--timeline-track-thread-blank-height":"30px"}}):X.createElement(Kx,{threadsKey:n,showMemoryMarkers:!t.has(e.pid),trackType:"expanded",trackName:r})}case"screenshots":{const{threadIndex:t,id:n}=e;return X.createElement(Qx,{threadIndex:t,windowId:n})}case"visual-progress":if(!n)throw new Error("Visual progress graph data is missing");return X.createElement(hT,{progressGraphData:n,graphDotTooltipText:" visual completeness at this time"});case"perceptual-visual-progress":if(!n)throw new Error("Perceptual visual progress graph data is missing");return X.createElement(hT,{progressGraphData:n,graphDotTooltipText:" perceptual visual completeness at this time"});case"contentful-visual-progress":if(!n)throw new Error("Contentful visual progress graph data is missing");return X.createElement(hT,{progressGraphData:n,graphDotTooltipText:" contentful visual completeness at this time"});default:return console.error("Unhandled globalTrack type",e),null}}renderLocalTracks(e){const{localTracks:t,localTrackOrder:n}=this.props;return X.createElement(yT,{tagName:"ol",className:"timelineTrackLocalTracks",order:n,orient:"vertical",grippyClassName:"timelineTrackLocalGrippy",onChangeOrder:this._changeLocalTrackOrder},t.map(((t,n)=>X.createElement(aT,{key:n,pid:e,localTrack:t,trackIndex:n,setIsInitialSelectedPane:this.setIsInitialSelectedPane}))))}componentDidMount(){this._isInitialSelectedPane&&null!==this._container&&this.props.setInitialSelected(this._container)}render(){const{isSelected:e,isHidden:t,titleText:n,trackName:r,style:o,localTracks:a,pid:i,globalTrack:s}=this.props;return t?X.createElement("li",{className:"timelineTrackHidden"}):X.createElement("li",{ref:this._takeContainerRef,className:"timelineTrack",style:o},X.createElement("div",{className:Xg()("timelineTrackRow timelineTrackGlobalRow",{selected:e}),onClick:this._selectCurrentTrack},X.createElement(DA,{id:"TimelineTrackContextMenu",renderTag:"div",attributes:{title:n,className:"timelineTrackLabel timelineTrackGlobalGrippy",onContextMenu:this._onContextMenu}},X.createElement("button",{type:"button",className:"timelineTrackNameButton"},r,null!==i&&null!==s.mainThreadIndex?X.createElement("div",{className:"timelineTrackNameButtonAdditionalDetails"},"PID: ",i):null),X.createElement(ue,{id:"TrackNameButton--hide-process",attrs:{title:!0}},X.createElement("button",{type:"button",className:"timelineTrackCloseButton",title:"Hide process",onClick:this._hideCurrentTrack}))),X.createElement("div",{className:"timelineTrackTrack"},this.renderTrack())),a.length>0&&null!==i?this.renderLocalTracks(i):null)}}const wT=[],kT=[],ET=je({mapStateToProps:(e,{trackIndex:t})=>{const n=il(e)[t],r=ui(e);let o=null,a=!1,i=null,s=wT,l=kT,c=null,d=null;switch(n.type){case"process":if(null!==n.mainThreadIndex){o=n.mainThreadIndex;const t=Eu(o);a=pi(e).has(o)&&"network-chart"!==r,i=t.getThreadProcessDetails(e)}c=n.pid,s=Ei(e,c),l=hl(e,c);break;case"screenshots":break;case"visual-progress":i="Visual Progress",d=Ks(e);break;case"perceptual-visual-progress":i="Perceptual Visual Progress",d=Ys(e);break;case"contentful-visual-progress":i="Contentful Visual Progress",d=qs(e);break;default:throw new Error(`Unhandled GlobalTrack type ${n}`)}return{trackName:Al(e,t),titleText:i,globalTrack:n,isSelected:a,localTrackOrder:s,localTracks:l,pid:c,isHidden:yi(e).has(t),selectedTab:r,processesWithMemoryTrack:ml(e),progressGraphData:d}},mapDispatchToProps:{changeRightClickedTrack:sp,changeLocalTrackOrder:yp,selectTrackWithModifiers:rp,hideGlobalTrack:dp},component:vT});var xT=n(1081),ST={};ST.styleTagTransform=M(),ST.setAttributes=B(),ST.insert=S().bind(null,"head"),ST.domAPI=E(),ST.insertStyleElement=P(),w()(xT.Z,ST),xT.Z&&xT.Z.locals&&xT.Z.locals;class TT extends X.PureComponent{_findNiceNumberGreaterOrEqualTo(e){const t=Math.floor(Math.log10(e));return e<=2*Math.pow(10,t)?{number:2*Math.pow(10,t),exponent:t}:e<=5*Math.pow(10,t)?{number:5*Math.pow(10,t),exponent:t}:{number:Math.pow(10,t+1),exponent:t+1}}_getNotches(){if(0===this.props.width)return{notches:[],decimalPlaces:0};const{zeroAt:e,rangeStart:t,rangeEnd:n,width:r}=this.props,o=r/(n-t),{number:a,exponent:i}=this._findNiceNumberGreaterOrEqualTo(55/o),s=Math.ceil((t-e)/a),l=Math.floor((n-e)/a),c=[];for(let n=s;n<=l;n++)c.push({time:n*a/1e3,pos:(n*a-(t-e))*o});return{notches:c,decimalPlaces:Math.max(0,-(i-3))}}render(){const{notches:e,decimalPlaces:t}=this._getNotches();return X.createElement("div",{className:"timelineRuler",style:{"--timeline-ruler-height":"20px"}},X.createElement("ol",{className:"timelineRulerContainer"},e.map((({time:e,pos:n},r)=>X.createElement("li",{className:"timelineRulerNotch",key:r,style:{left:`${n}px`}},X.createElement("span",{className:"timelineRulerNotchText"},`${e.toFixed(t)}s`))))))}}class BT extends X.PureComponent{constructor(...e){super(...e),this._container=null,this._handlers=null,this.state={dragging:!1},this._takeContainerRef=e=>{this._container=e},this._onMouseDown=e=>{if(!this._container||0!==e.button)return;e.stopPropagation(),e.preventDefault(),this.setState({dragging:!0});const t=e.pageX,n=e.pageY,r=this.props.value;this._installMoveAndUpHandlers((e=>{this.props.onMove(r,e.pageX-t,e.pageY-n,!0),e.preventDefault()}),(e=>{this.props.onMove(r,e.pageX-t,e.pageY-n,!1),e.stopPropagation(),e.preventDefault(),this._uninstallMoveAndUpHandlers(),this.setState({dragging:!1})}))}}_installMoveAndUpHandlers(e,t){this._uninstallMoveAndUpHandlers(),this._handlers={mouseMoveHandler:e,mouseUpHandler:t},window.addEventListener("mousemove",e,!0),window.addEventListener("mouseup",t,!0)}_uninstallMoveAndUpHandlers(){if(this._handlers){const{mouseMoveHandler:e,mouseUpHandler:t}=this._handlers;window.removeEventListener("mousemove",e,!0),window.removeEventListener("mouseup",t,!0),this._handlers=null}}componentWillUnmount(){this._uninstallMoveAndUpHandlers()}render(){const e=Object.assign({},this.props);return this.state.dragging&&(e.className+=" dragging"),delete e.onMove,delete e.value,delete e.children,X.createElement("div",{...e,onMouseDown:this._onMouseDown,ref:this._takeContainerRef},this.props.children)}}var _T=n(983),IT={};IT.styleTagTransform=M(),IT.setAttributes=B(),IT.insert=S().bind(null,"head"),IT.domAPI=E(),IT.insertStyleElement=P(),w()(_T.Z,IT),_T.Z&&_T.Z.locals&&_T.Z.locals;class PT extends X.PureComponent{constructor(...e){super(...e),this._handlers=void 0,this._container=void 0,this._containerCreated=e=>{this._container=e},this._onMouseDown=e=>{if(!this._container||0!==e.button||e.altKey||e.ctrlKey||e.metaKey||e.shiftKey)return;const t=gT(this._container);if(e.pageX<t.left||e.pageX>=t.right||e.pageY<t.top||e.pageY>=t.bottom)return;e.preventDefault();const{committedRange:n}=this.props,r=e.pageX,o=(r-t.left)/t.width*(n.end-n.start)+n.start;let a=!1;const i=e=>{const r=(e.pageX-t.left)/t.width*(n.end-n.start)+n.start;return{selectionStart:Fu()(Math.min(o,r),n.start,n.end),selectionEnd:Fu()(Math.max(o,r),n.start,n.end)}};this._installMoveAndClickHandlers((e=>{if((1&e.buttons)>0){if(a||Math.abs(e.pageX-r)>=3){a=!0;const{selectionStart:t,selectionEnd:n}=i(e);this.props.updatePreviewSelection({hasSelection:!0,selectionStart:t,selectionEnd:n,isModifying:!0})}}else{const{previewSelection:e}=this.props;if(a=!1,this._uninstallMoveAndClickHandlers(),e.hasSelection){const{selectionStart:t,selectionEnd:n}=e;this.props.updatePreviewSelection({hasSelection:!0,selectionStart:t,selectionEnd:n,isModifying:!1})}}}),(e=>{if(a){const{selectionStart:t,selectionEnd:n}=i(e);return this.props.updatePreviewSelection({hasSelection:!0,selectionStart:t,selectionEnd:n,isModifying:!1}),e.stopPropagation(),void this._uninstallMoveAndClickHandlers()}const{previewSelection:r}=this.props;if(r.hasSelection){const o=(e.pageX-t.left)/t.width*(n.end-n.start)+n.start,{selectionStart:a,selectionEnd:i}=r;(o<a||o>=i)&&(e.stopPropagation(),this.props.updatePreviewSelection({hasSelection:!1,isModifying:!1}))}this._uninstallMoveAndClickHandlers()}))},this._onMouseMove=e=>{if(!this._container)return;const{width:t,committedRange:n,changeMouseTimePosition:r}=this.props;if(0===t)return;const o=gT(this._container);if(e.pageX<o.left||e.pageX>=o.right||e.pageY<o.top||e.pageY>=o.bottom)r(null);else{const a=e.pageX-o.left;r((n.end-n.start)*a/t+n.start)}},this._onMouseLeave=()=>{this.props.changeMouseTimePosition(null)},this._makeOnMove=e=>(t,n,r,o)=>{const{committedRange:a,width:i,updatePreviewSelection:s}=this.props,l=n/i*(a.end-a.start),c=e(l),d=Math.max(a.start,t.selectionStart+c.startDelta);s({hasSelection:!0,isModifying:o,selectionStart:d,selectionEnd:Fu()(t.selectionEnd+c.endDelta,d,a.end)})},this._rangeStartOnMove=this._makeOnMove((e=>({startDelta:e,endDelta:0}))),this._moveRangeOnMove=this._makeOnMove((e=>({startDelta:e,endDelta:e}))),this._rangeEndOnMove=this._makeOnMove((e=>({startDelta:0,endDelta:e}))),this._zoomButtonOnMouseDown=e=>{e.stopPropagation()},this._zoomButtonOnClick=e=>{e.stopPropagation();const{previewSelection:t,zeroAt:n,commitRange:r}=this.props;t.hasSelection&&r(t.selectionStart-n,t.selectionEnd-n)}}_installMoveAndClickHandlers(e,t){this._uninstallMoveAndClickHandlers(),this._handlers={mouseMoveHandler:e,mouseClickHandler:t},window.addEventListener("mousemove",e,!0),window.addEventListener("click",t,!0)}_uninstallMoveAndClickHandlers(){if(this._handlers){const{mouseMoveHandler:e,mouseClickHandler:t}=this._handlers;window.removeEventListener("mousemove",e,!0),window.removeEventListener("click",t,!0),this._handlers=null}}renderSelectionOverlay(e){const{committedRange:t,width:n}=this.props,{selectionStart:r,selectionEnd:o}=e,a=(r-t.start)/(t.end-t.start)*n,i=(o-r)/(t.end-t.start)*n;return X.createElement("div",{className:"timelineSelectionOverlay"},X.createElement("div",{className:"timelineSelectionDimmerBefore",style:{width:`${a}px`}}),X.createElement("div",{className:"timelineSelectionOverlayWrapper"},X.createElement("div",{className:"timelineSelectionGrippy",style:{width:`${i}px`}},X.createElement(BT,{className:"timelineSelectionGrippyRangeStart",value:e,onMove:this._rangeStartOnMove}),X.createElement(BT,{className:"timelineSelectionGrippyMoveRange",value:e,onMove:this._moveRangeOnMove}),X.createElement(BT,{className:"timelineSelectionGrippyRangeEnd",value:e,onMove:this._rangeEndOnMove})),X.createElement("div",{className:"timelineSelectionOverlayInner"},X.createElement("span",{className:Xg()("timelineSelectionOverlayRange",{hidden:!e.isModifying})},Jt(o-r)),X.createElement("button",{className:Xg()("timelineSelectionOverlayZoomButton",{hidden:e.isModifying}),type:"button",onMouseDown:this._zoomButtonOnMouseDown,onClick:this._zoomButtonOnClick}))),X.createElement("div",{className:"timelineSelectionDimmerAfter"}))}render(){const{children:e,previewSelection:t,className:n,mouseTimePosition:r,width:o,committedRange:a,zeroAt:i}=this.props;let s=null;return null!==r&&(s=o*(r-a.start)/(a.end-a.start)),X.createElement("div",{className:Xg()("timelineSelection",n),ref:this._containerCreated,onMouseDown:this._onMouseDown,onMouseMove:this._onMouseMove,onMouseLeave:this._onMouseLeave},e,t.hasSelection?this.renderSelectionOverlay(t):null,X.createElement("div",{className:"timelineSelectionHoverLine",style:{visibility:t.isModifying||null===s?"hidden":void 0,left:null===s?"0":`${s}px`}},X.createElement("span",{className:"timelineSelectionOverlayTime"},null!==r?Jt(r-i,(a.end-a.start)/o):null)))}}const NT=je({mapStateToProps:e=>({previewSelection:Ms(e),committedRange:Is(e),zeroAt:_s(e),mouseTimePosition:Ps(e)}),mapDispatchToProps:{updatePreviewSelection:Gp,commitRange:Wp,changeMouseTimePosition:qp},component:PT});var MT=n(5531),FT={};FT.styleTagTransform=M(),FT.setAttributes=B(),FT.insert=S().bind(null,"head"),FT.domAPI=E(),FT.insertStyleElement=P(),w()(MT.Z,FT),MT.Z&&MT.Z.locals&&MT.Z.locals;class RT extends X.PureComponent{constructor(...e){super(...e),this._container=null,this._contentsWrapper=null,this._scrolledToInitialSelected=!1,this.state={overflowsOnTop:!1,overflowsOnRight:!1,overflowsOnBottom:!1,overflowsOnLeft:!1},this._takeContainerRef=e=>{this._container=e},this._takeContainerWrapperRef=e=>{this._contentsWrapper=e},this._onScroll=()=>{this._updateIndicatorStatus()}}componentDidMount(){this._updateIndicatorStatus()}componentDidUpdate(e){this._updateIndicatorStatus();const{initialSelected:t,forceLayoutGeneration:n}=this.props,r=this._container;void 0!==n&&n!==e.forceLayoutGeneration&&t&&null!==r&&t.offsetTop+t.offsetHeight>r.offsetTop+r.offsetHeight&&(r.scrollTop=t.offsetTop),!this._scrolledToInitialSelected&&t&&this._container&&(this._container.scrollTop=t.offsetTop,this._scrolledToInitialSelected=!0)}_updateIndicatorStatus(){const e=this._container,t=this._contentsWrapper;if(e&&t){const n=e.getBoundingClientRect(),r=t.getBoundingClientRect(),o=1/window.devicePixelRatio;this.setState({overflowsOnTop:r.top<=n.top-o,overflowsOnRight:r.right>=n.right+o,overflowsOnBottom:r.bottom>=n.bottom+o,overflowsOnLeft:r.left<=n.left-o})}}render(){const{className:e,children:t}=this.props;return X.createElement("div",{className:Xg()("overflowEdgeIndicator",e,this.state)},X.createElement("div",{className:"overflowEdgeIndicatorEdge topEdge"}),X.createElement("div",{className:"overflowEdgeIndicatorEdge rightEdge"}),X.createElement("div",{className:"overflowEdgeIndicatorEdge bottomEdge"}),X.createElement("div",{className:"overflowEdgeIndicatorEdge leftEdge"}),X.createElement("div",{className:Xg()("overflowEdgeIndicatorScrollbox",`${e}Scrollbox`),onScroll:this._onScroll,ref:this._takeContainerRef},X.createElement("div",{className:"overflowEdgeIndicatorContentsWrapper",ref:this._takeContainerWrapperRef},t)))}}var DT=n(5554),LT={};LT.styleTagTransform=M(),LT.setAttributes=B(),LT.insert=S().bind(null,"head"),LT.domAPI=E(),LT.insertStyleElement=P(),w()(DT.Z,LT),DT.Z&&DT.Z.locals&&DT.Z.locals;var OT=n(6298),UT={};UT.styleTagTransform=M(),UT.setAttributes=B(),UT.insert=S().bind(null,"head"),UT.domAPI=E(),UT.insertStyleElement=P(),w()(OT.Z,UT),OT.Z&&OT.Z.locals&&OT.Z.locals;class zT extends X.PureComponent{constructor(...e){super(...e),this.searchFieldInput=X.createRef(),this._onSearchFieldChange=e=>{this.props.onSearch(e.currentTarget.value)},this.focus=()=>{this.searchFieldInput.current&&this.searchFieldInput.current.focus()},this._onClearButtonClick=()=>{this.searchFieldInput.current&&this.searchFieldInput.current.focus(),this.props.onSearch("")}}_onFormSubmit(e){e.preventDefault()}render(){const{currentSearchString:e,className:t}=this.props;return X.createElement("form",{className:Xg()("trackSearchField",t),onSubmit:this._onFormSubmit},X.createElement(ue,{id:"TrackSearchField--search-input",attrs:{placeholder:!0,title:!0}},X.createElement("input",{type:"search",name:"search",placeholder:"Enter filter terms",className:"trackSearchFieldInput photon-input",required:"required",title:"Only display tracks that match a certain text",value:e,onChange:this._onSearchFieldChange,ref:this.searchFieldInput,autoComplete:"off"})),X.createElement("input",{type:"reset",className:"trackSearchFieldButton",onClick:this._onClearButtonClick,tabIndex:-1}))}}class GT extends FA{constructor(...e){super(...e),this.hideMenu=e=>{27===e.keyCode&&TA()}}}class WT extends X.PureComponent{constructor(...e){super(...e),this.state={searchFilter:""},this._globalTrackClickTimeout=null,this._trackSearchFieldElem=X.createRef(),this._showAllTracks=()=>{const{showAllTracks:e}=this.props;e()},this._showMatchingTracks=()=>{const{showProvidedTracks:e,globalTracks:t,globalTrackNames:n,localTracksByPid:r,localTrackNamesByPid:o,threads:a}=this.props,{searchFilter:i}=this.state,s=as(t,n,a,i),l=is(r,o,a,i);if(null===s||null===l)return;const c=new Map(l);for(const e of s){const n=t[e];if(!n.pid)continue;const o=nt(r.get(n.pid),"Expected to find local tracks for the given pid"),a=c.get(n.pid);void 0!==a&&o.length===a.size||c.set(n.pid,new Set(o.keys()))}e(s,c)},this._hideMatchedTracks=()=>{const{globalTracks:e,globalTrackNames:t,localTracksByPid:n,localTrackNamesByPid:r,threads:o,hideProvidedTracks:a}=this.props,{searchFilter:i}=this.state,s=as(e,t,o,i),l=is(n,r,o,i);null!==s&&null!==l?a(s,l):console.warn("Unexpected null search filtered tracks")},this._hideRightClickedTrack=()=>{const{rightClickedTrack:e,hideLocalTrack:t,hideGlobalTrack:n}=this.props;null!==e&&("global"!==e.type?t(e.pid,e.trackIndex):n(e.trackIndex))},this._toggleGlobalTrackVisibility=(e,t)=>{const{trackIndex:n}=t,{hiddenGlobalTracks:r,hideGlobalTrack:o,showGlobalTrack:a,globalTracks:i}=this.props;if(!(e.detail>2)){if(2===e.detail){clearTimeout(this._globalTrackClickTimeout),this._globalTrackClickTimeout=null;const t=i[n];if("process"===t.type)return void this._showLocalTracksInProcess(e,{trackIndex:n,pid:t.pid})}this._globalTrackClickTimeout=setTimeout((()=>{r.has(n)?a(n):o(n)}),150)}},this._toggleLocalTrackVisibility=(e,t)=>{const{trackIndex:n,pid:r,globalTrackIndex:o}=t,{hiddenLocalTracksByPid:a,hideLocalTrack:i,showLocalTrack:s,hiddenGlobalTracks:l,showGlobalTrack:c,localTrackOrderByPid:d}=this.props,u=nt(a.get(r),"Expected to find hidden local tracks for the given pid");l.has(o)?(c(o),nt(d.get(r),"Expected to find local tracks for the given pid").forEach((e=>{e===n?s(r,n):i(r,e)}))):u.has(n)?s(r,n):i(r,n)},this._isolateProcess=()=>{const{isolateProcess:e,rightClickedTrack:t}=this.props;if(null===t)throw new Error("Attempted to isolate the process with no right clicked track.");if("local"===t.type)throw new Error("Attempting to isolate a process track with a local track is selected.");e(t.trackIndex)},this._isolateScreenshot=()=>{const{isolateScreenshot:e,rightClickedTrack:t}=this.props;if(null===t)throw new Error("Attempted to isolate the screenshot with no right clicked track.");if("global"!==t.type)throw new Error("Attempting to isolate a screenshot track with a local track is selected.");e(t.trackIndex)},this._isolateProcessMainThread=()=>{const{isolateProcessMainThread:e,rightClickedTrack:t}=this.props;if(null===t)throw new Error("Attempted to isolate the process main thread with no right clicked track.");if("local"===t.type)throw new Error("Attempting to isolate a process track with a local track is selected.");e(t.trackIndex)},this._isolateLocalTrack=()=>{const{isolateLocalTrack:e,rightClickedTrack:t}=this.props;if(null===t)throw new Error("Attempted to isolate the local track with no right clicked track.");if("global"===t.type)throw new Error("Attempting to isolate a local track with a global track is selected.");const{pid:n,trackIndex:r}=t;e(n,r)},this._showLocalTracksInProcess=(e,t)=>{const{trackIndex:n,pid:r}=t,{showGlobalTrackIncludingLocalTracks:o}=this.props;o(n,r)},this._onSearch=e=>{this.setState({searchFilter:e})},this._onShow=()=>{const e=this._trackSearchFieldElem.current;e&&setTimeout((()=>{e.focus()}))},this._onHide=()=>{this.setState({searchFilter:""})}}_globalTrackHasSearchFilterMatchedChildren(e,t){if(!e.pid||null===t)return!1;const n=t.get(e.pid);return!!n&&0!==n.size}renderGlobalTrack(e,t,n){const{hiddenGlobalTracks:r,globalTrackNames:o,globalTracks:a}=this.props,i=r.has(e),s=a[e],l=this._globalTrackHasSearchFilterMatchedChildren(s,n),c=t&&!t.has(e);if(c&&!l)return null;const d=null!==t&&!c;let u=`${o[e]}`;return"process"===s.type&&(u+=` (Process ID: ${s.pid})`),X.createElement(X.Fragment,{key:e},X.createElement(IA,{preventClose:!0,data:{trackIndex:e},onClick:this._toggleGlobalTrackVisibility,role:"menuitemcheckbox",attributes:{className:Xg()("timelineTrackContextMenuItem",{checkable:!0,checked:!i}),title:u,"aria-checked":i?"false":"true"}},X.createElement("span",null,o[e]),X.createElement("span",{className:"timelineTrackContextMenuSpacer"}),"process"===s.type&&X.createElement("span",{className:"timelineTrackContextMenuPid"},"(",s.pid,")")),"process"===s.type?this.renderLocalTracks(e,s.pid,d,n):null)}renderLocalTracks(e,t,n,r){const{hiddenLocalTracksByPid:o,localTrackOrderByPid:a,localTrackNamesByPid:i,hiddenGlobalTracks:s,localTracksByPid:l}=this.props,c=s.has(e),d=a.get(t),u=o.get(t),h=i.get(t),p=l.get(t);let m=null;if(null===r||n||(m=r.get(t)),void 0===d||void 0===u||void 0===h||void 0===p)return console.error("Unable to find local track information for the given pid:",t),null;const f=[];for(const n of d){if(m&&!m.has(n))continue;const r=!u.has(n)&&!c;f.push(X.createElement(IA,{key:n,preventClose:!0,data:{pid:t,trackIndex:n,globalTrackIndex:e},onClick:this._toggleLocalTrackVisibility,role:"menuitemcheckbox",attributes:{className:Xg()("checkable indented",{checked:r}),"aria-checked":r?"true":"false"}},h[n]))}return f}getRightClickedTrackName(e){const{globalTrackNames:t,localTrackNamesByPid:n}=this.props;if("global"===e.type)return t[e.trackIndex];const r=n.get(e.pid);return void 0===r?(console.error("Expected to find a local track name for the given pid."),"Unknown Track"):r[e.trackIndex]}renderIsolateProcess(){const{rightClickedTrack:e,globalTracks:t,globalTrackOrder:n,hiddenGlobalTracks:r,hiddenLocalTracksByPid:o,localTracksByPid:a}=this.props;if(null===e)return null;if("global"!==e.type||1===t.length)return null;const i=t[e.trackIndex];if("process"!==i.type)return null;let s=r.size===n.length-1;if(!s&&null===i.mainThreadIndex){const e=a.get(i.pid),t=o.get(i.pid);if(void 0===e||void 0===t)return console.error("Local track information for the given pid."),null;let n=!1;for(let r=0;r<e.length;r++)if("thread"===e[r].type&&!t.has(r)){n=!0;break}n||(s=!0)}return X.createElement(IA,{onClick:this._isolateProcess,disabled:s},X.createElement(ue,{id:"TrackContextMenu--only-show-this-process"},"Only show this process"))}renderIsolateProcessMainThread(){const{rightClickedTrack:e,globalTracks:t,hiddenGlobalTracks:n,hiddenLocalTracksByPid:r,localTrackOrderByPid:o}=this.props;if(null===e)return null;if("global"!==e.type)return null;const a=t[e.trackIndex];if("process"!==a.type||null===a.mainThreadIndex)return null;const i=r.get(a.pid),s=o.get(a.pid);if(void 0===i||void 0===s)return console.error("Expected to find local track information for the given pid."),null;const l=i.size===s.length&&t.length-n.size==1,c=this.getRightClickedTrackName(e);return X.createElement(IA,{onClick:this._isolateProcessMainThread,disabled:l},X.createElement(ue,{id:"TrackContextMenu--only-show-track",vars:{trackName:c}},X.createElement(X.Fragment,null,"Only show ",`“${c}”`)))}renderIsolateLocalTrack(){const{rightClickedTrack:e,globalTracks:t,hiddenGlobalTracks:n,hiddenLocalTracksByPid:r,localTrackOrderByPid:o}=this.props;if(null===e)return null;if("global"===e.type)return null;const a=r.get(e.pid),i=o.get(e.pid);if(void 0===a||void 0===i)return console.error("Expected to find local track information for the given pid."),null;const s=t.length-n.size==1&&i.length-a.size==1,l=this.getRightClickedTrackName(e);return X.createElement(IA,{onClick:this._isolateLocalTrack,disabled:s},X.createElement(ue,{id:"TrackContextMenu--only-show-track",vars:{trackName:l}},X.createElement(X.Fragment,null,"Only show ","“rightClickedTrackName}”")))}renderShowLocalTracksInThisProcess(){const{rightClickedTrack:e,globalTracks:t,localTracksByPid:n,hiddenLocalTracksByPid:r}=this.props;if(null===e)return null;const{trackIndex:o}=e;let a;if("global"===e.type){const e=t[o];if(!e||"process"!==e.type)return null;a=e.pid}else a=e.pid;const i=n.get(a);if(!i||!i.length)return null;const s=r.get(a),l=!s||0===s.size;return X.createElement(IA,{onClick:this._showLocalTracksInProcess,disabled:l,data:{trackIndex:o,pid:a}},X.createElement(ue,{id:"TrackContextMenu--show-local-tracks-in-process"},"Show all tracks in this process"))}getVisibleScreenshotTracks(){const{globalTracks:e,hiddenGlobalTracks:t}=this.props;return e.filter(((e,n)=>"screenshots"===e.type&&!t.has(n)))}renderIsolateScreenshot(){const{rightClickedTrack:e,globalTracks:t}=this.props;if(null===e)return null;if("global"!==e.type)return null;if("screenshots"!==t[e.trackIndex].type)return null;const n=this.getVisibleScreenshotTracks().length<=1;return X.createElement(IA,{onClick:this._isolateScreenshot,disabled:n},X.createElement(ue,{id:"TrackContextMenu--hide-other-screenshots-tracks"},"Hide other Screenshots tracks"))}renderHideTrack(){const{rightClickedTrack:e}=this.props;if(null===e)return null;const t=e.trackIndex,n=this.getRightClickedTrackName(e);return X.createElement(IA,{key:t,preventClose:!1,onClick:this._hideRightClickedTrack},X.createElement(ue,{id:"TrackContextMenu--hide-track",vars:{trackName:n}},X.createElement(X.Fragment,null,"Hide ",`“${n}”`)))}renderShowAllTracks(){const{rightClickedTrack:e}=this.props;if(null!==e)return null;const t=[...this.props.hiddenLocalTracksByPid.values()].reduce(((e,t)=>e+t.size),0)+this.props.hiddenGlobalTracks.size===0;return X.createElement(IA,{onClick:this._showAllTracks,disabled:t},X.createElement(ue,{id:"TrackContextMenu--show-all-tracks"},"Show all tracks"))}renderShowProvidedTracks(){const{rightClickedTrack:e}=this.props;return null!==e?null:X.createElement(IA,{onClick:this._showMatchingTracks},X.createElement(ue,{id:"TrackContextMenu--show-all-matching-tracks"},"Show all matching tracks"))}renderHideMatchingTracks(e,t){const{rightClickedTrack:n,hiddenGlobalTracks:r,globalTracks:o,hiddenLocalTracksByPid:a,localTracksByPid:i}=this.props;if(null!==n)return null;const s=!(()=>{let n=0;for(const[e,s]of t){const t=nt(o.findIndex((t=>"process"===t.type&&t.pid===e)));if(r.has(t))continue;if(null!==o[t].mainThreadIndex)continue;const l=nt(i.get(e)),c=nt(a.get(e));c.size+s.size-ji(c,s).size===l.length&&(n+=1)}return r.size+e.size-ji(r,e).size+n<o.length})()||![...e].some((e=>!r.has(e)))&&!(()=>{const e=new Set;for(const t of r){const n=o[t];"process"===n.type&&e.add(n.pid)}let n=!1;for(const[r,o]of t){if(e.has(r))continue;const t=nt(a.get(r));if(n=[...o].some((e=>!t.has(e))),n)break}return n})();return X.createElement(IA,{onClick:this._hideMatchedTracks,disabled:s},X.createElement(ue,{id:"TrackContextMenu--hide-all-matching-tracks"},"Hide all matching tracks"))}renderTrackSearchField(){const{rightClickedTrack:e}=this.props,{searchFilter:t}=this.state;return null!==e?null:X.createElement(X.Fragment,null,X.createElement(zT,{className:"trackContextMenuSearchField",currentSearchString:t,onSearch:this._onSearch,ref:this._trackSearchFieldElem}),X.createElement("div",{className:"react-contextmenu-separator"}))}render(){const{threads:e,globalTrackOrder:t,globalTracks:n,globalTrackNames:r,localTracksByPid:o,localTrackNamesByPid:a,rightClickedTrack:i}=this.props,{searchFilter:s}=this.state,l=this.renderIsolateProcessMainThread(),c=this.renderIsolateProcess(),d=this.renderIsolateLocalTrack(),u=this.renderIsolateScreenshot(),h=this.renderShowLocalTracksInThisProcess(),p=this.renderHideTrack(),m=l||c||d||u||h||p?X.createElement("div",{className:"react-contextmenu-separator"}):null,f=as(n,r,e,s),g=is(o,a,e,s),A=t.map((e=>{const t=n[e];return null===i||"global"===i.type&&i.trackIndex===e||"local"===i.type&&"process"===t.type&&i.pid===t.pid?this.renderGlobalTrack(e,f,g):null})),b=A.every((e=>null===e));return X.createElement(GT,{id:"TimelineTrackContextMenu",className:"timelineTrackContextMenu",onShow:this._onShow,onHide:this._onHide},this.renderTrackSearchField(),s?this.renderShowProvidedTracks():this.renderShowAllTracks(),s&&f&&g?this.renderHideMatchingTracks(f,g):null,null===i?X.createElement("div",{className:"react-contextmenu-separator"}):null,l,c,d,u,p,h?X.createElement("div",{className:"react-contextmenu-separator"}):null,h,m,b?X.createElement(ue,{id:"TrackContextMenu--no-results-found",vars:{searchFilter:s},elems:{span:X.createElement("span",{className:"trackContextMenuSearchFilter"})}},X.createElement(IA,{disabled:!0},"No results found for “",X.createElement("span",{className:"trackContextMenuSearchFilter"},s),"”")):A)}}const HT=je({mapStateToProps:e=>({threads:zs(e),globalTrackOrder:Ci(e),hiddenGlobalTracks:yi(e),rightClickedTrack:Hs(e),globalTracks:il(e),hiddenLocalTracksByPid:vi(e),localTrackOrderByPid:wi(e),rightClickedThreadIndex:fl(e),globalTrackNames:gl(e),localTracksByPid:ul(e),localTrackNamesByPid:bl(e)}),mapDispatchToProps:{hideGlobalTrack:dp,showAllTracks:hp,showGlobalTrack:fp,showGlobalTrackIncludingLocalTracks:gp,isolateProcess:Ap,isolateLocalTrack:Ep,isolateProcessMainThread:Cp,isolateScreenshot:bp,hideLocalTrack:wp,showLocalTrack:kp,showProvidedTracks:pp,hideProvidedTracks:mp},component:WT});var VT=n(3420),jT={};jT.styleTagTransform=M(),jT.setAttributes=B(),jT.insert=S().bind(null,"head"),jT.domAPI=E(),jT.insertStyleElement=P(),w()(VT.Z,jT),VT.Z&&VT.Z.locals&&VT.Z.locals;class ZT extends X.PureComponent{constructor(...e){super(...e),this._showMenu=e=>{const t=e.currentTarget.getBoundingClientRect();this.props.changeRightClickedTrack(null),SA({data:null,id:"TimelineTrackContextMenu",position:{x:t.left,y:t.bottom},target:e.target})}}render(){const{hiddenTrackCount:e}=this.props;return X.createElement(ue,{id:"FullTimeline--tracks-button",elems:{span:X.createElement("span",{className:"timelineSettingsHiddenTracksNumber"})},vars:{visibleTrackCount:e.total-e.hidden,totalTrackCount:e.total}},X.createElement("button",{type:"button",onClick:this._showMenu,className:"timelineSettingsHiddenTracks"},X.createElement("span",{className:"timelineSettingsHiddenTracksNumber"},e.total-e.hidden)," / ",X.createElement("span",{className:"timelineSettingsHiddenTracksNumber"},e.total," "),"tracks"))}}class $T extends X.PureComponent{constructor(...e){super(...e),this.state={initialSelected:null},this.setInitialSelected=e=>{this.setState({initialSelected:e})}}render(){const{globalTracks:e,globalTrackOrder:t,changeGlobalTrackOrder:n,committedRange:r,zeroAt:o,width:a,globalTrackReferences:i,panelLayoutGeneration:s,hiddenTrackCount:l,changeRightClickedTrack:c,innerElementRef:d}=this.props;return X.createElement(X.Fragment,null,X.createElement(NT,{width:a},X.createElement("div",{className:"timelineHeader"},X.createElement(ZT,{hiddenTrackCount:l,changeRightClickedTrack:c}),X.createElement(TT,{zeroAt:o,rangeStart:r.start,rangeEnd:r.end,width:a})),X.createElement(RT,{className:"tracksContainer timelineOverflowEdgeIndicator",panelLayoutGeneration:s,initialSelected:this.state.initialSelected},X.createElement(yT,{tagName:"ol",className:"timelineThreadList",grippyClassName:"timelineTrackGlobalGrippy",order:t,orient:"vertical",onChangeOrder:n,innerElementRef:d},e.map(((e,t)=>X.createElement(ET,{key:t,trackIndex:t,trackReference:i[t],setInitialSelected:this.setInitialSelected})))))),X.createElement(HT,null))}}const KT=je({mapStateToProps:e=>({globalTracks:il(e),globalTrackOrder:Ci(e),globalTrackReferences:sl(e),committedRange:Is(e),zeroAt:_s(e),panelLayoutGeneration:lc(e),hiddenTrackCount:_l(e)}),mapDispatchToProps:{changeGlobalTrackOrder:cp,changeRightClickedTrack:sp},component:nv($T)});class YT extends X.PureComponent{constructor(e){super(e),this._container=null,this._isInitialSelectedPane=null,this._onClick=e=>t=>{const{isSelected:n}=this.props,{isOpen:r}=this.state;0===t.button&&(t.preventDefault(),"timelineTrackResourceLabel"===e&&(!n&&r||this.setState((e=>({isOpen:!e.isOpen})))),this.props.selectActiveTabTrack(this._getTrackReference()))},this.setIsInitialSelectedPane=e=>{this._isInitialSelectedPane=e},this._scrollIfNecessary=()=>{this.state.isOpen&&null!==this._container&&this.props.setInitialSelected(this._container,!0)},this._takeContainerRef=e=>{const{isSelected:t}=this.props;this._container=e,t&&this.setIsInitialSelectedPane(!0)},this.state={isOpen:e.isSelected}}_getTrackReference(){const{trackIndex:e}=this.props;return{type:"resource",trackIndex:e}}renderTrack(){const{resourceTrack:e}=this.props,{isOpen:t}=this.state;switch(e.type){case"sub-frame":case"thread":return X.createElement(Kx,{threadsKey:e.threadIndex,trackType:t?"expanded":"condensed",trackName:e.name});default:return console.error("Unhandled resourceTrack type",e),null}}componentDidMount(){const e=this._container;null!==e&&(this._isInitialSelectedPane&&this.props.setInitialSelected(e),e.addEventListener("transitionend",this._scrollIfNecessary))}componentWillUnmount(){const e=this._container;null!==e&&e.removeEventListener("transitionend",this._scrollIfNecessary)}render(){const{isSelected:e,resourceTrack:t}=this.props,{isOpen:n}=this.state;let r;switch(t.type){case"sub-frame":r="IFrame:";break;case"thread":r="Thread:";break;default:throw Je(t,"Unhandled ActiveTabResourceTrack type.")}return X.createElement("li",{ref:this._takeContainerRef,className:"timelineTrack timelineTrackResource"},X.createElement("div",{className:Xg()("timelineTrackRow timelineTrackResourceRow",{selected:e,opened:n}),onClick:this._onClick("timelineTrackRow")},X.createElement("div",{className:"timelineTrackResourceLabel",onClick:this._onClick("timelineTrackResourceLabel")},X.createElement("span",null,r)," ",t.name),X.createElement("div",{className:"timelineTrackTrack"},this.renderTrack())))}}const qT=je({mapStateToProps:(e,{resourceTrack:t})=>{const n=t.threadIndex;return{isSelected:pi(e).has(n)}},mapDispatchToProps:{selectActiveTabTrack:ap},component:YT});class JT extends X.PureComponent{render(){const{resourceTracks:e,toggleResourcesPanel:t,isActiveTabResourcesPanelOpen:n,setInitialSelected:r,resourcesThreadsKey:o}=this.props;return X.createElement("div",{className:"timelineResources",style:{"--resources-header-height":"20px"}},X.createElement("div",{onClick:t,className:Xg()("timelineResourcesHeader",{opened:n})},"Resources (",e.length,")",X.createElement(Kx,{threadsKey:o,trackType:"condensed",trackName:"Merged resource tracks"})),n?X.createElement("ol",{className:"timelineResourceTracks"},e.map(((e,t)=>X.createElement(qT,{key:t,resourceTrack:e,trackIndex:t,setInitialSelected:r})))):null)}}const XT=je({mapStateToProps:e=>({isActiveTabResourcesPanelOpen:si(e),resourcesThreadsKey:El(e)}),mapDispatchToProps:{toggleResourcesPanel:lf},component:nv(JT)});class QT extends X.PureComponent{constructor(...e){super(...e),this._container=null,this._isInitialSelectedPane=null,this._selectCurrentTrack=()=>{const{selectActiveTabTrack:e,trackReference:t}=this.props;e(t)},this._takeContainerRef=e=>{const{isSelected:t}=this.props;this._container=e,t&&(this._isInitialSelectedPane=!0)}}renderTrack(){const{globalTrack:e}=this.props;switch(e.type){case"tab":{const{threadsKey:t}=e;return X.createElement(Kx,{threadsKey:t,showMemoryMarkers:!1,trackType:"expanded",trackName:"Active Tab"})}case"screenshots":{const{threadIndex:t,id:n}=e;return X.createElement(Qx,{threadIndex:t,windowId:n})}default:return console.error("Unhandled active tab globalTrack type",e),null}}renderResourcesPanel(){const{resourceTracks:e,setInitialSelected:t}=this.props;return 0===e.length?null:X.createElement(XT,{resourceTracks:e,setInitialSelected:t})}componentDidMount(){this._isInitialSelectedPane&&null!==this._container&&this.props.setInitialSelected(this._container)}render(){const{isSelected:e}=this.props;return X.createElement("li",{ref:this._takeContainerRef,className:"timelineTrack"},X.createElement("div",{className:Xg()("timelineTrackRow timelineTrackGlobalRow activeTab",{selected:e}),onClick:this._selectCurrentTrack},X.createElement("div",{className:"timelineTrackTrack"},this.renderTrack())),this.renderResourcesPanel())}}const eB=[],tB=je({mapStateToProps:(e,{trackIndex:t})=>{const n=wl(e)[t];let r=!1,o=eB;switch(n.type){case"tab":r=zr(pi(e),n.threadsKey),o=kl(e);break;case"screenshots":break;default:throw Je(n,"Unhandled active tab GlobalTrack type.")}return{globalTrack:n,isSelected:r,resourceTracks:o}},mapDispatchToProps:{selectActiveTabTrack:ap},component:QT});var nB=n(9999),rB={};rB.styleTagTransform=M(),rB.setAttributes=B(),rB.insert=S().bind(null,"head"),rB.domAPI=E(),rB.insertStyleElement=P(),w()(nB.Z,rB),nB.Z&&nB.Z.locals&&nB.Z.locals;class oB extends X.PureComponent{constructor(...e){super(...e),this.state={initialSelected:null,forceLayoutGeneration:0},this.setInitialSelected=(e,t=!1)=>{t?this.setState((t=>({initialSelected:e,forceLayoutGeneration:t.forceLayoutGeneration+1}))):this.setState({initialSelected:e})}}render(){const{committedRange:e,zeroAt:t,width:n,panelLayoutGeneration:r,globalTracks:o,globalTrackReferences:a,innerElementRef:i}=this.props;return X.createElement(X.Fragment,null,X.createElement(NT,{width:n,className:"activeTab"},X.createElement(TT,{zeroAt:t,rangeStart:e.start,rangeEnd:e.end,width:n}),X.createElement(RT,{className:"tracksContainer timelineOverflowEdgeIndicator",panelLayoutGeneration:r,initialSelected:this.state.initialSelected,forceLayoutGeneration:this.state.forceLayoutGeneration},X.createElement("ol",{className:"timelineThreadList",ref:i},o.map(((e,t)=>X.createElement(tB,{key:t,trackIndex:t,trackReference:a[t],setInitialSelected:this.setInitialSelected})))))))}}const aB=je({mapStateToProps:e=>({globalTracks:wl(e),globalTrackReferences:xl(e),committedRange:Is(e),zeroAt:_s(e),panelLayoutGeneration:lc(e)}),component:nv(oB)});var iB=n(545),sB={};sB.styleTagTransform=M(),sB.setAttributes=B(),sB.insert=S().bind(null,"head"),sB.domAPI=E(),sB.insertStyleElement=P(),w()(iB.Z,sB),iB.Z&&iB.Z.locals&&iB.Z.locals;class lB extends X.PureComponent{constructor(...e){super(...e),this.state={initialSelected:null},this.setInitialSelected=e=>{this.setState({initialSelected:e})},this.clickTrack=_t()((e=>t=>{t.preventDefault(),this.props.changeSelectedThreads(new Set([e]))})),this.renderTrack=e=>{const{threads:t}=this.props;switch(e.type){case"origin":return X.createElement("li",{className:"originsTimelineTrack originsTimelineTrack-origin",key:e.threadIndex},X.createElement("a",{href:"#",onClick:this.clickTrack(e.threadIndex)},e.origin),X.createElement("ol",null,e.children.map(this.renderTrack)));case"no-origin":{const n=t[e.threadIndex];return X.createElement("li",{key:e.threadIndex,className:"originsTimelineTrack originsTimelineTrack-no-origin"},X.createElement("a",{href:"#",onClick:this.clickTrack(e.threadIndex)},Pr(t,n)))}case"sub-origin":return X.createElement("li",{className:"originsTimelineTrack originsTimelineTrack-sub-origin",key:e.threadIndex},X.createElement("a",{href:"#",onClick:this.clickTrack(e.threadIndex)},e.origin));default:throw Je(e,"Unhandled OriginsTimelineTrack.")}}}render(){const{committedRange:e,zeroAt:t,width:n,panelLayoutGeneration:r,originsTimeline:o,innerElementRef:a}=this.props;return X.createElement(X.Fragment,null,X.createElement(NT,{width:n},X.createElement(TT,{zeroAt:t,rangeStart:e.start,rangeEnd:e.end,width:n}),X.createElement(RT,{className:"tracksContainer timelineOverflowEdgeIndicator",panelLayoutGeneration:r,initialSelected:this.state.initialSelected},X.createElement("ol",{className:"timelineThreadList",ref:a},o.map(this.renderTrack)))))}}const cB=je({mapStateToProps:e=>({threads:zs(e),committedRange:Is(e),zeroAt:_s(e),panelLayoutGeneration:lc(e),originsTimeline:Bl(e)}),mapDispatchToProps:{changeSelectedThreads:ep},component:nv(lB)});class dB extends X.PureComponent{constructor(...e){super(...e),this._removeWheelListener=null,this._onTimelineMountWithRef=e=>{if(this._removeWheelListener&&(this._removeWheelListener(),this._removeWheelListener=null),!e)return;const t=e;t.addEventListener("wheel",this.preventPinchToZoom,{passive:!1}),this._removeWheelListener=()=>{t.removeEventListener("wheel",this.preventPinchToZoom,{passive:!1})}}}preventPinchToZoom(e){e.ctrlKey&&e.preventDefault()}componentWillUnmount(){this._removeWheelListener&&(this._removeWheelListener(),this._removeWheelListener=null)}render(){const{timelineTrackOrganization:e}=this.props;switch(e.type){case"full":return X.createElement(KT,{innerElementRef:this._onTimelineMountWithRef});case"active-tab":return X.createElement(aB,{innerElementRef:this._onTimelineMountWithRef});case"origins":return X.createElement(cB,{innerElementRef:this._onTimelineMountWithRef});default:throw Je(e,"Unhandled ViewType")}}}const uB=je({mapStateToProps:e=>({timelineTrackOrganization:ii(e)}),component:dB});class hB extends X.PureComponent{constructor(...e){super(...e),this._dom=void 0}componentDidMount(){const e=document.createElement("style");e.textContent=this.props.content;const t=document.head;t&&(t.appendChild(e),this._dom=e)}componentDidUpdate(e){const t=this._dom;e.content!==this.props.content&&t&&(t.textContent=this.props.content)}componentWillUnmount(){const e=this._dom;e&&(e.remove(),this._dom=null)}render(){return null}}class pB extends X.PureComponent{render(){const e=`\n .${this.props.className} {\n background-image: url(${this.props.url});\n }\n `;return X.createElement(hB,{content:e})}}var mB=n(8916),fB={};fB.styleTagTransform=M(),fB.setAttributes=B(),fB.insert=S().bind(null,"head"),fB.domAPI=E(),fB.insertStyleElement=P(),w()(mB.Z,fB),mB.Z&&mB.Z.locals&&mB.Z.locals;class gB extends X.PureComponent{constructor(...e){super(...e),this.state={isNoticeDisplayed:!0},this._onHideClick=()=>{this.setState({isNoticeDisplayed:!1}),this.props.onClose&&this.props.onClose()}}render(){if(!this.state.isNoticeDisplayed)return null;const{message:e,actionText:t,actionTitle:n,actionOnClick:r}=this.props;return X.createElement("div",{className:"warningMessageBarWrapper"},X.createElement("div",{className:"photon-message-bar photon-message-bar-warning warningMessageBar"},X.createElement("div",{className:"photon-message-bar-inner-content"},X.createElement("div",{className:"photon-message-bar-inner-text"},e),t?X.createElement("button",{className:"photon-button photon-button-micro photon-message-bar-action-button",type:"button",title:n,"aria-label":n,onClick:r},t):null),X.createElement("button",{className:"photon-button photon-message-bar-close-button",type:"button","aria-label":"Hide the message",title:"Hide the message",onClick:this._onHideClick})))}}class AB extends X.PureComponent{render(){const{meta:e}=this.props;return X.createElement(X.Fragment,null,e.debug?X.createElement(ue,{id:"DebugWarning--warning-message",attrs:{message:!0}},X.createElement(gB,{message:"This profile was recorded in a build without release optimizations. Performance observations might not apply to the release population."})):null)}}const bB=je({mapStateToProps:e=>({meta:js(e)}),component:AB});var CB=n(3584),yB={};yB.styleTagTransform=M(),yB.setAttributes=B(),yB.insert=S().bind(null,"head"),yB.domAPI=E(),yB.insertStyleElement=P(),w()(CB.Z,yB),CB.Z&&CB.Z.locals&&CB.Z.locals;class vB extends X.PureComponent{render(){const{hasZipFile:e,returnToZipFileList:t,invalidatePanelLayout:n,timelineHeight:r,isUploading:o,uploadProgress:a,isHidingStaleProfile:i,hasSanitizedProfile:s,icons:l,isBottomBoxOpen:c}=this.props;return X.createElement(IE,{wrapperClassName:Xg()({profileViewerWrapper:!0,profileViewerWrapperBackground:s})},l.map((({className:e,icon:t})=>X.createElement(pB,{className:e,url:t,key:e}))),X.createElement("div",{className:Xg()({profileViewer:!0,profileViewerFadeInSanitized:s&&!i,profileViewerFadeOut:i}),style:null===r?{}:{"--profile-viewer-splitter-max-height":`${r}px`}},X.createElement("div",{className:"profileViewerTopBar"},e?X.createElement("button",{type:"button",className:"profileViewerZipButton",title:"View all files in the zip file",onClick:t}):null,X.createElement(xE,null),X.createElement(Ak,null),X.createElement("div",{className:"profileViewerSpacer"}),X.createElement(fE,null),o?X.createElement("div",{className:"menuButtonsPublishUploadBarInner",style:{width:100*a+"%"}}):null),X.createElement(qg(),{customClassName:"profileViewerSplitter",vertical:!0,percentage:!1,primaryIndex:1,secondaryInitialSize:270,onDragEnd:n},X.createElement(uB,null),X.createElement(qg(),{vertical:!0,percentage:!0,primaryIndex:0,secondaryInitialSize:40,onDragEnd:n},X.createElement(Iw,null),c?X.createElement(fk,null):null)),X.createElement(vE,null),X.createElement(TE,null),X.createElement(bB,null),X.createElement(AE,null),X.createElement(Kw,null),X.createElement(Jw,null)))}}const wB=je({mapStateToProps:e=>({hasZipFile:ql(e),timelineHeight:wc(e),uploadProgress:$u(e),isUploading:"uploading"===ju(e),isHidingStaleProfile:eh(e),hasSanitizedProfile:th(e),icons:Pu(e),isBottomBoxOpen:Mi(e)}),mapDispatchToProps:{returnToZipFileList:DE,invalidatePanelLayout:Jm},component:vB});var kB=n(481),EB={};function xB(e){e.preventDefault()}EB.styleTagTransform=M(),EB.setAttributes=B(),EB.insert=S().bind(null,"head"),EB.domAPI=E(),EB.insertStyleElement=P(),w()(kB.Z,EB),kB.Z&&kB.Z.locals&&kB.Z.locals;class SB extends X.PureComponent{constructor(...e){super(...e),this._enteredElements=new Set,this._onDragEnter=e=>{e.preventDefault();const[t,n]=this._updateDragLocation(e);"OUTSIDE"===t&&"INSIDE"===n&&this.props.startDragging()},this._onDragLeave=e=>{e.preventDefault();const[t,n]=this._updateDragLocation(e);"INSIDE"===t&&"OUTSIDE"===n&&this.props.stopDragging()},this._handleProfileDrop=e=>{if(e.preventDefault(),this._resetDragLocation(),this.props.stopDragging(),!e.dataTransfer||!this.props.isNewProfileLoadAllowed)return;const{files:t}=e.dataTransfer;t.length>0&&this.props.retrieveProfileFromFile(t[0],this.props.browserConnection)}}_updateDragLocation(e){const t=this._enteredElements.size>0?"INSIDE":"OUTSIDE",n=e.currentTarget;if(this._enteredElements=new Set([...this._enteredElements].filter((e=>n.contains(e)))),e.target instanceof HTMLElement){const t=e.target;"dragenter"===e.type?this._enteredElements.add(t):"dragleave"===e.type&&this._enteredElements.delete(t)}return[t,this._enteredElements.size>0?"INSIDE":"OUTSIDE"]}_resetDragLocation(){this._enteredElements=new Set}componentDidMount(){document.addEventListener("drag",xB,!1),document.addEventListener("dragover",xB,!1),document.addEventListener("drop",xB,!1)}componentWillUnmount(){document.removeEventListener("drag",xB,!1),document.removeEventListener("dragover",xB,!1),document.removeEventListener("drop",xB,!1)}render(){const{className:e,children:t}=this.props;return X.createElement(X.Fragment,null,X.createElement("div",{className:Xg()(e,"dragAndDropArea"),onDragEnter:this._onDragEnter,onDragLeave:this._onDragLeave,onDrop:this._handleProfileDrop},t),this.props.useDefaultOverlay?X.createElement(_B,{isDefault:!0}):null)}}const TB=je({mapStateToProps:e=>({isNewProfileLoadAllowed:kc(e),useDefaultOverlay:!Cc(e),browserConnection:mc(e)}),mapDispatchToProps:{retrieveProfileFromFile:Wm,startDragging:rf,stopDragging:of},component:SB});class BB extends X.PureComponent{componentDidMount(){this.props.isDefault||this.props.registerDragAndDropOverlay()}componentWillUnmount(){this.props.isDefault||this.props.unregisterDragAndDropOverlay()}render(){return X.createElement("div",{className:Xg()("dragAndDropOverlayWrapper",!(!this.props.isDragging||!this.props.isNewProfileLoadAllowed)&&"dragging")},X.createElement("div",{className:"dragAndDropOverlay"},"Drop a saved profile here"))}}const _B=je({mapStateToProps:e=>({isDragging:bc(e),isNewProfileLoadAllowed:kc(e)}),mapDispatchToProps:{registerDragAndDropOverlay:af,unregisterDragAndDropOverlay:sf},component:BB});var IB=n(2090),PB={};PB.styleTagTransform=M(),PB.setAttributes=B(),PB.insert=S().bind(null,"head"),PB.domAPI=E(),PB.insertStyleElement=P(),w()(IB.Z,PB),IB.Z&&IB.Z.locals&&IB.Z.locals;class NB extends X.PureComponent{constructor(...e){super(...e),this._handleClick=e=>{if(e.metaKey||e.ctrlKey)return;e.preventDefault();const{viewProfileFromZip:t,displayData:{zipTableIndex:n}}=this.props;null!==n&&t(n)}}render(){const{name:e,url:t}=this.props.displayData;return t?X.createElement("a",{href:t,onClick:this._handleClick},e):e}}const MB=je({mapDispatchToProps:{viewProfileFromZip:FE},component:NB});class FB extends X.PureComponent{constructor(e){super(e),this._fixedColumns=[],this._mainColumn={propName:"name",titleL10nId:"",component:MB},this._treeView=void 0,this._takeTreeViewRef=e=>this._treeView=e,this._onEnterKey=e=>{this.props.viewProfileFromZip(e)};const{expandedZipFileIndexes:t,zipFileTree:n,changeExpandedZipFile:r}=this.props;0===t.length&&n&&r([...n.getAllDescendants(null)])}componentDidMount(){const{zipFileState:e,pathInZipFile:t,zipFileTree:n}=this.props;if("NONE"===e.phase&&t&&!n)throw new Error("The zipFileTree should exist if this component was mounted");this.focus()}componentDidUpdate(e){const{pathInZipFile:t,zipFileState:n,viewProfileFromPathInZipFile:r,returnToZipFileList:o}=this.props;t!==n.pathInZipFile&&(null===t?o():r(t)),"LIST_FILES_IN_ZIP_FILE"!==e.zipFileState.phase&&"LIST_FILES_IN_ZIP_FILE"===this.props.zipFileState.phase&&this.focus()}focus(){const e=this._treeView;e&&e.focus()}_renderMessage(e){return X.createElement("section",{className:"zipFileViewer"},X.createElement("div",{className:"zipFileViewerSection"},X.createElement("header",{className:"zipFileViewerHeader"},X.createElement("h1",null,"Firefox Profiler"),X.createElement("p",null,"Choose a profile from this zip file")),X.createElement("div",{className:"zipFileViewerMessage"},e),X.createElement(_B,null)))}_renderBackButton(){return X.createElement("button",{key:"backButton",type:"button",className:"homeSectionInstallButton",onClick:this.props.returnToZipFileList},"← Back to zip file list")}render(){const{zipFileState:e,zipFileTree:t,zipFileMaxDepth:n,selectedZipFileIndex:r,expandedZipFileIndexes:o,changeSelectedZipFile:a,changeExpandedZipFile:i,pathInZipFile:s,zipFileErrorMessage:l}=this.props;if(!t)return console.error("No zipFileTree was found in a ZipFileViewer."),null;const{phase:c}=e;switch(c){case"NO_ZIP_FILE":return console.error("Loaded the ZipFileViewer component when there is no zip file."),this._renderMessage(X.createElement("span",null,"Error: No zip file was found."));case"LIST_FILES_IN_ZIP_FILE":return X.createElement("section",{className:"zipFileViewer"},X.createElement("div",{className:"zipFileViewerSection"},X.createElement("header",{className:"zipFileViewerHeader"},X.createElement("h1",null,"Firefox Profiler"),X.createElement("p",null,"Choose a profile from this zip file")),X.createElement(VA,{maxNodeDepth:n,tree:t,fixedColumns:this._fixedColumns,mainColumn:this._mainColumn,onSelectionChange:a,onExpandedNodesChange:i,selectedNodeId:r,expandedNodeIds:o,ref:this._takeTreeViewRef,rowHeight:30,indentWidth:15,onEnterKey:this._onEnterKey,viewOptions:fs}),X.createElement(_B,null)));case"PROCESS_PROFILE_FROM_ZIP_FILE":return this._renderMessage(X.createElement("span",null,"Loading the profile from the zip file..."));case"FAILED_TO_PROCESS_PROFILE_FROM_ZIP_FILE":return this._renderMessage([X.createElement("p",{key:"message"},"Unable to load the profile at this path:"),X.createElement("span",{className:"zipFileViewerUntrustedFilePath",key:"path"},"/",s),X.createElement("p",{key:"error"},l),this._renderBackButton()]);case"FILE_NOT_FOUND_IN_ZIP_FILE":return this._renderMessage([X.createElement("span",{key:"message"},"Failed to find a file in the zip at the following path:"),X.createElement("span",{className:"zipFileViewerUntrustedFilePath",key:"path"},"/",s),this._renderBackButton()]);case"VIEW_PROFILE_IN_ZIP_FILE":return X.createElement(wB,null);default:throw new Error("Unknown zip file phase.")}}}const RB=je({mapStateToProps:e=>{const t=nc(e);if(null===t)throw new Error("The zipFileTree should exist if the ZipFileViewer is mounted.");return{zipFileState:Kl(e),pathInZipFile:Ri(e),zipFileTree:t,zipFileMaxDepth:ec(e),selectedZipFileIndex:Zl(e),expandedZipFileIndexes:$l(e),zipFileErrorMessage:Jl(e)}},mapDispatchToProps:{changeSelectedZipFile:NE,changeExpandedZipFile:ME,viewProfileFromZip:FE,viewProfileFromPathInZipFile:RE,returnToZipFileList:DE},component:FB});class DB extends X.PureComponent{constructor(...e){super(...e),this.onClick=e=>{const{setDataSource:t,dataSource:n}=this.props;e.ctrlKey||e.metaKey||(e.preventDefault(),t(n))}}render(){const{className:e,children:t,dataSource:n}=this.props,r="none"===n?"/":`/${n}/`;return X.createElement("a",{className:e,href:r,onClick:this.onClick},t)}}const LB=je({mapDispatchToProps:{setDataSource:Yp},component:DB});var OB=n(6031),UB={};UB.styleTagTransform=M(),UB.setAttributes=B(),UB.insert=S().bind(null,"head"),UB.domAPI=E(),UB.insertStyleElement=P(),w()(OB.Z,UB),OB.Z&&OB.Z.locals&&OB.Z.locals;class zB extends X.PureComponent{render(){return X.createElement("header",null,X.createElement("h1",{className:"appHeader"},X.createElement(ue,{id:"AppHeader--app-header",elems:{header:X.createElement(LB,{dataSource:"none",className:"appHeaderLink"}),subheader:X.createElement("span",{className:"appHeaderSubtext"})}},X.createElement("span",{className:"appHeaderSlogan"},X.createElement(LB,{dataSource:"none",className:"appHeaderLink"},"Firefox Profiler")," ","–"," ",X.createElement("span",{className:"appHeaderSubtext"},"Web app for Firefox performance analysis"))),X.createElement(ue,{id:"AppHeader--github-icon",attrs:{title:!0}},X.createElement("a",{className:"appHeaderGithubIcon",href:"https://github.com/firefox-devtools/profiler",target:"_blank",rel:"noopener noreferrer",title:"Go to our Git repository (this opens in a new window)"},X.createElement("svg",{width:"22",height:"22",className:"octicon octicon-mark-github",viewBox:"0 0 16 16",version:"1.1","aria-label":"github"},X.createElement("path",{fillRule:"evenodd",d:"M8 0C3.58 0 0 3.58 0 8c0 3.54 2.29 6.53 5.47 7.59.4.07.55-.17.55-.38 0-.19-.01-.82-.01-1.49-2.01.37-2.53-.49-2.69-.94-.09-.23-.48-.94-.82-1.13-.28-.15-.68-.52-.01-.53.63-.01 1.08.58 1.23.82.72 1.21 1.87.87 2.33.66.07-.52.28-.87.51-1.07-1.78-.2-3.64-.89-3.64-3.95 0-.87.31-1.59.82-2.15-.08-.2-.36-1.02.08-2.12 0 0 .67-.21 2.2.82.64-.18 1.32-.27 2-.27.68 0 1.36.09 2 .27 1.53-1.04 2.2-.82 2.2-.82.44 1.1.16 1.92.08 2.12.51.56.82 1.27.82 2.15 0 3.07-1.87 3.75-3.65 3.95.29.25.54.73.54 1.48 0 1.07-.01 1.93-.01 2.2 0 .21.15.46.55.38A8.013 8.013 0 0 0 16 8c0-4.42-3.58-8-8-8z"}))))))}}var GB=n(480),WB={};function HB({meta:e}){const t=Oa(e),n=Ua(e);return X.createElement("div",{className:"profileMetaInfoSummary"},X.createElement("div",{className:"profileMetaInfoSummaryProductAndVersion","data-product":e.product},t),X.createElement("div",{className:"profileMetaInfoSummaryPlatform","data-toolkit":n},n))}WB.styleTagTransform=M(),WB.setAttributes=B(),WB.insert=S().bind(null,"head"),WB.domAPI=E(),WB.insertStyleElement=P(),w()(GB.Z,WB),GB.Z&&GB.Z.locals&&GB.Z.locals;var VB=n(7178),jB={};jB.styleTagTransform=M(),jB.setAttributes=B(),jB.insert=S().bind(null,"head"),jB.domAPI=E(),jB.insertStyleElement=P(),w()(VB.Z,jB),VB.Z&&VB.Z.locals&&VB.Z.locals;class ZB extends X.PureComponent{constructor(...e){super(...e),this.state={confirmDialogIsOpen:!1},this.onOpenConfirmDialog=()=>{this.setState({confirmDialogIsOpen:!0})},this.onCloseConfirmDialog=()=>{this.setState({confirmDialogIsOpen:!1})},this.onCloseSuccessMessage=()=>{this.props.onProfileDelete()}}render(){const{uploadedProfileInformation:e,withActionButtons:t}=this.props,{confirmDialogIsOpen:n}=this.state;let{urlPath:r}=e;r.startsWith("/")||(r="/"+r);const o=e.profileToken.slice(0,6),a=e.name?e.name:`Profile #${o}`,i=e.name?e.name:"#"+o;return X.createElement("li",{className:Xg()("publishedProfilesListItem",{publishedProfilesListItem_ConfirmDialogIsOpen:n})},X.createElement(ue,{id:"ListOfPublishedProfiles--published-profiles-link",attrs:{title:!0},vars:{smallProfileName:i}},X.createElement("a",{className:"publishedProfilesLink",href:r,title:`Click here to load profile ${i}`},X.createElement("div",{className:"publishedProfilesDate"},X.createElement(ue,{id:"NumberFormat--short-date",vars:{date:e.publishedDate}})),X.createElement("div",{className:"publishedProfilesInfo"},X.createElement("div",{className:"publishedProfilesName"},X.createElement("strong",null,a)," (",Ht((s=e.publishedRange).end-s.start,3,1),")"),X.createElement(HB,{meta:e.meta})))),t?X.createElement("div",{className:"publishedProfilesActionButtons"},e.jwtToken?X.createElement(uE,{buttonClassName:"publishedProfilesDeleteButton",profileName:a,smallProfileName:i,jwtToken:e.jwtToken,profileToken:e.profileToken,onOpenConfirmDialog:this.onOpenConfirmDialog,onCloseConfirmDialog:this.onCloseConfirmDialog,onCloseSuccessMessage:this.onCloseSuccessMessage}):X.createElement(ue,{id:"ListOfPublishedProfiles--published-profiles-delete-button-disabled",attrs:{title:!0}},X.createElement("button",{className:"publishedProfilesDeleteButton photon-button photon-button-default",type:"button",title:"This profile cannot be deleted because we lack the authorization information.",disabled:!0},"Delete"))):null);var s}}class $B extends X.PureComponent{constructor(...e){super(...e),this._isMounted=!1,this.state={uploadedProfileInformationList:null},this._refreshList=async()=>{const e=await async function(){return(await $h()).getAllFromIndex(jh,"publishedDate")}();this._isMounted&&this.setState({uploadedProfileInformationList:e.reverse()})},this.onProfileDelete=()=>{this._refreshList()}}async componentDidMount(){this._isMounted=!0,this._refreshList(),window.addEventListener("focus",this._refreshList)}componentWillUnmount(){this._isMounted=!1,window.removeEventListener("focus",this._refreshList)}render(){const{limit:e,withActionButtons:t}=this.props,{uploadedProfileInformationList:n}=this.state;if(!n)return null;if(!n.length)return X.createElement("p",{className:"photon-body-30"},X.createElement(ue,{id:"ListOfPublishedProfiles--uploaded-profile-information-list-empty"},"No profile has been uploaded yet!"));const r=e?n.slice(0,e):n,o=n.length-r.length;let a;return a=o>0?X.createElement(ue,{id:"ListOfPublishedProfiles--uploaded-profile-information-label",vars:{profilesRestCount:o}},X.createElement(X.Fragment,null,"See and manage all your recordings (",o," more)")):X.createElement(ue,{id:"ListOfPublishedProfiles--uploaded-profile-information-list",vars:{uploadedProfileCount:n.length}},X.createElement(X.Fragment,null,"Manage this recording")),X.createElement(X.Fragment,null,X.createElement("ul",{className:"publishedProfilesList"},r.map((e=>X.createElement(ZB,{onProfileDelete:this.onProfileDelete,key:e.profileToken,uploadedProfileInformation:e,withActionButtons:t})))),t?null:X.createElement("p",null,X.createElement(LB,{dataSource:"uploaded-recordings"},a)))}}const KB=n.p+"b45b29da558efa211628.jpg",YB=n.p+"4d26f0e38c22eedde178.jpg";var qB=n(34),JB={};JB.styleTagTransform=M(),JB.setAttributes=B(),JB.insert=S().bind(null,"head"),JB.domAPI=E(),JB.insertStyleElement=P(),w()(qB.Z,JB),qB.Z&&qB.Z.locals&&qB.Z.locals;class XB extends X.PureComponent{constructor(...e){super(...e),this._fileInput=void 0,this.state={isLoadFromUrlPressed:!1},this._takeInputRef=e=>{this._fileInput=e},this._uploadProfileFromFile=async()=>{this._fileInput&&this.props.onLoadProfileFromFileRequested(this._fileInput.files[0])},this._loadFromFilePressed=()=>{this._fileInput&&this._fileInput.click()},this._loadFromUrlPressed=e=>{e.preventDefault(),this.setState((e=>({isLoadFromUrlPressed:!e.isLoadFromUrlPressed})))}}render(){return X.createElement("div",{className:"homeSectionLoadProfile"},X.createElement("div",{className:"homeSectionActionButtons"},X.createElement("input",{className:"homeSectionUploadFromFileInput",type:"file",ref:this._takeInputRef,onChange:this._uploadProfileFromFile}),X.createElement(ue,{id:"Home--upload-from-file-input-button"},X.createElement("button",{type:"button",className:"homeSectionButton",onClick:this._loadFromFilePressed},"Load a profile from file")),X.createElement(ue,{id:"Home--upload-from-url-button"},X.createElement("button",{type:"button",className:"homeSectionButton",onClick:this._loadFromUrlPressed,"aria-expanded":this.state.isLoadFromUrlPressed},"Load a profile from a URL"))),this.state.isLoadFromUrlPressed?X.createElement(QB,{onLoadProfileFromUrlRequested:this.props.onLoadProfileFromUrlRequested}):null)}}class QB extends X.PureComponent{constructor(...e){super(...e),this.state={value:""},this.handleChange=e=>{e.preventDefault(),this.setState({value:e.currentTarget.value})},this._upload=e=>{e.preventDefault(),this.state.value&&this.props.onLoadProfileFromUrlRequested(this.state.value)}}render(){return X.createElement("form",{className:"homeSectionLoadFromUrl",onSubmit:this._upload},X.createElement("input",{className:"homeSectionLoadFromUrlInput photon-input",type:"url",placeholder:"https://",value:this.state.value,onChange:this.handleChange,autoFocus:!0}),X.createElement(ue,{id:"Home--load-from-url-submit-button",attrs:{value:!0}},X.createElement("input",{type:"submit",className:"homeSectionButton homeSectionLoadFromUrlSubmitButton",value:"Load"})))}}function e_(){return X.createElement("a",{href:"/docs/",className:"homeSectionButton"},X.createElement("span",{className:"homeSectionDocsIcon"}),X.createElement(ue,{id:"Home--documentation-button"},"Documentation"))}function t_(e){return X.createElement($b,{...e,classNames:"homeTransition",timeout:300,exit:!1})}class n_ extends X.PureComponent{constructor(e){super(e),this._enableMenuButton=e=>{e.preventDefault(),async function(){await yf({type:"ENABLE_MENU_BUTTON"})}().then((()=>{this.setState({popupInstallPhase:"popup-enabled"})}),(e=>{console.error("Unable to enable the profiler popup button.",e)}))},this._onLoadProfileFromFileRequested=e=>{this.props.retrieveProfileFromFile(e,this.props.browserConnection)},this._onLoadProfileFromUrlRequested=e=>{this.props.triggerLoadingFromUrl(e)};let t="other-browser";Boolean(navigator.userAgent.match(/Firefox\/\d+\.\d+/))&&(t="checking-webchannel",async function(){return(await yf({type:"STATUS_QUERY"})).menuButtonIsEnabled}().then((e=>{this.setState({popupInstallPhase:e?"popup-enabled":"suggest-enable-popup"})}),(()=>{this.setState({popupInstallPhase:"webchannel-unavailable"})}))),this.state={popupInstallPhase:t}}_renderInstructions(){const{popupInstallPhase:e}=this.state;switch(e){case"checking-webchannel":case"suggest-enable-popup":return this._renderEnablePopupInstructions(!0);case"webchannel-unavailable":return this._renderEnablePopupInstructions(!1);case"popup-enabled":return this._renderRecordInstructions(YB);case"other-browser":return this._renderOtherBrowserInstructions();default:throw Je(e,"Unhandled PopupInstallPhase")}}_renderEnablePopupInstructions(e){return X.createElement(t_,{key:0},X.createElement("div",{className:"homeInstructions","data-testid":"home-enable-popup-instructions"},X.createElement("img",{className:"homeSectionScreenshot",src:KB,alt:"screenshot of profiler.firefox.com"}),X.createElement("div",null,X.createElement(ue,{id:"Home--enable-button-unavailable",attrs:{title:!e}},X.createElement("button",{type:"button",className:"homeSectionButton",onClick:this._enableMenuButton,disabled:!e,title:e?void 0:"This profiler instance was unable to connect to the WebChannel, so it cannot enable the profiler menu button."},X.createElement("span",{className:"homeSectionPlus"},"+"),X.createElement(ue,{id:"Home--menu-button"},"Enable Profiler Menu Button"))),X.createElement(e_,null),e?X.createElement(ue,{id:"Home--menu-button-instructions"},X.createElement("p",null,"Enable the profiler menu button to start recording a performance profile in Firefox, then analyze it and share it with profiler.firefox.com.")):X.createElement(ue,{id:"Home--web-channel-unavailable",elems:{code:X.createElement("code",null)}},X.createElement("p",null,"This profiler instance was unable to connect to the WebChannel. This usually means that it’s running on a different host from the one that is specified in the preference"," ",X.createElement("code",null,"devtools.performance.recording.ui-base-url"),". If you would like to capture new profiles with this instance, and give it programmatic control of the profiler menu button, you can go to ",X.createElement("code",null,"about:config"),"and change the preference.")),X.createElement(ue,{id:"Home--profile-firefox-android-instructions",elems:{a:X.createElement("a",{href:"https://profiler.firefox.com/docs/#/./guide-profiling-android-directly-on-device?id=profiling-firefox-for-android-directly-on-device"})}},X.createElement("p",null,"You can also profile Firefox for Android. For more information, please consult this documentation:"," ",X.createElement("a",null,"Profiling Firefox for Android directly on device"),".")))))}_renderRecordInstructions(e){return X.createElement(t_,{key:1},X.createElement("div",{className:"homeInstructions","data-testid":"home-record-instructions"},X.createElement("img",{className:"homeSectionScreenshot",src:e,alt:"Screenshot of the profiler settings from the Firefox menu."}),X.createElement("div",null,X.createElement(e_,null),X.createElement(ue,{id:"Home--record-instructions",elems:{kbd:X.createElement("kbd",null)}},X.createElement("p",null,"To start profiling, click on the profiling button, or use the keyboard shortcuts. The icon is blue when a profile is recording. Hit ",X.createElement("kbd",null,"Capture")," to load the data into profiler.firefox.com.")),this._renderShortcuts(),X.createElement(ue,{id:"Home--profile-firefox-android-instructions",elems:{a:X.createElement("a",{href:"https://profiler.firefox.com/docs/#/./guide-profiling-android-directly-on-device?id=profiling-firefox-for-android-directly-on-device"})}},X.createElement("p",null,"You can also profile Firefox for Android. For more information, please consult this documentation:"," ",X.createElement("a",null,"Profiling Firefox for Android directly on device"),".")))))}_renderOtherBrowserInstructions(){return X.createElement(t_,{key:0},X.createElement("div",{className:"homeInstructions","data-testid":"home-other-browser-instructions"},X.createElement("img",{className:"homeSectionScreenshot",src:KB,alt:"screenshot of profiler.firefox.com"}),X.createElement("div",null,X.createElement(e_,null),X.createElement(ue,{id:"Home--instructions-content",elems:{a:X.createElement("a",{href:"https://www.mozilla.org/en-US/firefox/new/"})}},X.createElement("p",null,"Recording performance profiles requires"," ",X.createElement("a",{href:"https://www.mozilla.org/en-US/firefox/new/"},"Firefox"),". However, existing profiles can be viewed in any modern browser.")),X.createElement(ue,{id:"Home--profile-firefox-android-instructions",elems:{a:X.createElement("a",{href:"https://profiler.firefox.com/docs/#/./guide-profiling-android-directly-on-device?id=profiling-firefox-for-android-directly-on-device"})}},X.createElement("p",null,"You can also profile Firefox for Android. For more information, please consult this documentation:"," ",X.createElement("a",null,"Profiling Firefox for Android directly on device"),".")))))}_renderShortcuts(){return X.createElement("div",null,X.createElement("p",null,X.createElement("kbd",null,"Ctrl"),"+",X.createElement("kbd",null,"Shift"),"+",X.createElement("kbd",null,"1")," ",X.createElement(ue,{id:"Home--record-instructions-start-stop"},"Stop and start profiling")),X.createElement("p",null,X.createElement("kbd",null,"Ctrl"),"+",X.createElement("kbd",null,"Shift"),"+",X.createElement("kbd",null,"2")," ",X.createElement(ue,{id:"Home--record-instructions-capture-load"},"Capture and load profile")))}render(){const{specialMessage:e}=this.props;return X.createElement("div",{className:"home"},X.createElement("main",{className:"homeSection"},X.createElement(zB,null),e?X.createElement("div",{className:"homeSpecialMessage"},e):null,X.createElement(ue,{id:"Home--profiler-motto"},X.createElement("p",null,"Capture a performance profile. Analyze it. Share it. Make the web faster.")),X.createElement(Fb,{className:"homeInstructionsTransitionGroup"},this._renderInstructions()),X.createElement("section",{className:"homeAdditionalContent"},X.createElement("h2",{className:"homeAdditionalContentTitle protocol-display-xs"},X.createElement(ue,{id:"Home--additional-content-title"},"Load existing profiles")),X.createElement("section",{className:"homeActions"},X.createElement(ue,{id:"Home--additional-content-content",elems:{strong:X.createElement("strong",null)}},X.createElement("p",null,"You can ",X.createElement("strong",null,"drag and drop")," a profile file here to load it, or:")),X.createElement(XB,{onLoadProfileFromFileRequested:this._onLoadProfileFromFileRequested,onLoadProfileFromUrlRequested:this._onLoadProfileFromUrlRequested}),X.createElement(ue,{id:"Home--load-files-from-other-tools2",elems:{perf:X.createElement("a",{href:"https://profiler.firefox.com/docs/#/./guide-perf-profiling"}),simpleperf:X.createElement("a",{href:"https://profiler.firefox.com/docs/#/./guide-android-profiling"}),androidstudio:X.createElement("a",{href:"https://developer.android.com/studio/profile/cpu-profiler"}),dhat:X.createElement("a",{href:"https://valgrind.org/docs/manual/dh-manual.html"}),write:X.createElement("a",{href:"https://github.com/firefox-devtools/profiler/blob/main/docs-developer/custom-importer.md"}),traceevent:X.createElement("a",{href:"https://docs.google.com/document/d/1CvAClvFfyA5R-PhYUmn5OOQtYMH4h6I0nSsKchNAySU/preview"})}},X.createElement("p",null,"The Firefox Profiler can also import profiles from other profilers, such as ",X.createElement("perf",null,"Linux perf"),",",X.createElement("simpleperf",null,"Android SimplePerf"),", the Chrome performance panel,"," ",X.createElement("androidstudio",null,"Android Studio"),", or any file using the ",X.createElement("dhat",null,"dhat format")," or"," ",X.createElement("traceevent",null,"Google’s Trace Event Format"),"."," ",X.createElement("write",null,"Learn how to write your own importer"),".")),X.createElement(ue,{id:"Home--compare-recordings-info",elems:{a:X.createElement(LB,{dataSource:"compare"})}},X.createElement("p",null,"You can also compare recordings."," ",X.createElement(LB,{dataSource:"compare"},"Open the comparing interface.")))),X.createElement("section",null,X.createElement("h2",{className:"homeRecentUploadedRecordingsTitle protocol-display-xxs"},X.createElement(ue,{id:"Home--your-recent-uploaded-recordings-title"},"Your recent uploaded recordings")),X.createElement($B,{limit:3,withActionButtons:!1}))),X.createElement(_B,null)))}}const r_=je({mapStateToProps:e=>({browserConnection:mc(e)}),mapDispatchToProps:{retrieveProfileFromFile:Wm,triggerLoadingFromUrl:om},component:n_});var o_=n(6528),a_={};a_.styleTagTransform=M(),a_.setAttributes=B(),a_.insert=S().bind(null,"head"),a_.domAPI=E(),a_.insertStyleElement=P(),w()(o_.Z,a_),o_.Z&&o_.Z.locals&&o_.Z.locals;class i_ extends X.PureComponent{constructor(...e){super(...e),this.state={profile1:"",profile2:""},this.handleInputChange=e=>{const{name:t,value:n}=e.target;this.setState({[t]:n})},this.handleFormSubmit=e=>{e.preventDefault();const{profile1:t,profile2:n}=this.state,{changeProfilesToCompare:r}=this.props;r([t,n])}}render(){const{profile1:e,profile2:t}=this.state;return X.createElement("main",{className:"compareHome"},X.createElement(zB,null),X.createElement("h2",{className:"photon-title-20"},X.createElement(ue,{id:"CompareHome--instruction-title"},"Enter the profile URLs that you’d like to compare")),X.createElement("p",{className:"photon-body-20"},X.createElement(ue,{id:"CompareHome--instruction-content"},"The tool will extract the data from the selected track and range for each profile, and put them both on the same view to make them easy to compare.")),X.createElement("form",{className:"compareHomeForm",onSubmit:this.handleFormSubmit},X.createElement("label",{className:"compareHomeFormLabel",htmlFor:"compareHomeProfile1"},X.createElement(ue,{id:"CompareHome--form-label-profile1"},"Profile 1:")),X.createElement("input",{name:"profile1",id:"compareHomeProfile1",className:"photon-input",type:"url",required:!0,placeholder:"http://",onChange:this.handleInputChange,value:e}),X.createElement("label",{className:"compareHomeFormLabel",htmlFor:"compareHomeProfile2"},X.createElement(ue,{id:"CompareHome--form-label-profile2"},"Profile 2:")),X.createElement("input",{name:"profile2",id:"compareHomeProfile2",className:"photon-input",type:"url",required:!0,placeholder:"http://",onChange:this.handleInputChange,value:t}),X.createElement(ue,{id:"CompareHome--submit-button",attrs:{value:!0}},X.createElement("input",{className:"compareHomeSubmitButton photon-button photon-button-primary",type:"submit",value:"Retrieve profiles"}))))}}const s_=je({mapDispatchToProps:{changeProfilesToCompare:Zm},component:i_});var l_=n(9913),c_={};c_.styleTagTransform=M(),c_.setAttributes=B(),c_.insert=S().bind(null,"head"),c_.domAPI=E(),c_.insertStyleElement=P(),w()(l_.Z,c_),l_.Z&&l_.Z.locals&&l_.Z.locals;class d_ extends X.PureComponent{render(){return X.createElement("main",{className:"uploadedRecordingsHome"},X.createElement(zB,null),X.createElement("h2",{className:"photon-title-30"},X.createElement(ue,{id:"UploadedRecordingsHome--title"},"Uploaded Recordings")),X.createElement($B,{withActionButtons:!0}))}}const u_=Object.freeze({"from-browser":"AppViewRouter--error-unpublished",unpublished:"AppViewRouter--error-unpublished","from-file":"AppViewRouter--error-from-file",local:"AppViewRouter--error-local",public:"AppViewRouter--error-public","from-url":"AppViewRouter--error-from-url",compare:"AppViewRouter--error-compare"});class h_ extends X.PureComponent{render(){const{view:e,dataSource:t,profilesToCompare:n,hasZipFile:r}=this.props,o=e.phase;switch(t){case"none":return X.createElement(r_,null);case"compare":if(null===n)return X.createElement(s_,null);break;case"uploaded-recordings":return X.createElement(d_,null);case"from-browser":case"unpublished":case"from-file":case"local":case"public":case"from-url":break;default:throw Je(t)}switch(o){case"INITIALIZING":case"PROFILE_LOADED":case"DATA_RELOAD":return X.createElement(Bf,null);case"FATAL_ERROR":{let n=u_[t]||"AppViewRouter--error-public",r=null;return e.error&&("SafariLocalhostHTTPLoadError"===e.error.name?n="AppViewRouter--error-from-localhost-url-safari":(console.error(e.error),r=X.createElement(X.Fragment,null,X.createElement("p",null,e.error.toString()),X.createElement("p",null,"The full stack has been written to the Web Console.")))),X.createElement(ue,{id:n,attrs:{title:!0},elems:{a:X.createElement("a",{href:"https://bugs.webkit.org/show_bug.cgi?id=171934",target:"_blank",rel:"noopener noreferrer"})}},X.createElement(xf,{additionalMessage:r,showLoader:!1,showBackHomeLink:!0},`missing translation for ${n}`))}case"DATA_LOADED":return r?X.createElement(RB,null):X.createElement(wB,null);case"TRANSITIONING_FROM_STALE_PROFILE":return null;default:return X.createElement(ue,{id:"AppViewRouter--route-not-found--home",attrs:{specialMessage:!0}},X.createElement(r_,{specialMessage:"The URL you tried to reach was not recognized."}))}}}const p_=je({mapStateToProps:e=>({view:oc(e),dataSource:Va(e),profilesToCompare:$a(e),hasZipFile:ql(e)}),component:h_});class m_ extends X.PureComponent{constructor(...e){super(...e),this._retrieveProfileFromDataSource=async()=>{const{dataSource:e,browserConnectionStatus:t,hash:n,profileUrl:r,profilesToCompare:o,retrieveProfileFromBrowser:a,retrieveProfileFromStore:i,retrieveProfileOrZipFromUrl:s,retrieveProfilesToCompare:l}=this.props;switch(e){case"from-browser":a(t);break;case"from-file":case"local":case"uploaded-recordings":case"unpublished":case"none":break;case"public":i(n).catch((e=>console.error(e)));break;case"from-url":s(r).catch((e=>console.error(e)));break;case"compare":o&&l(o);break;default:throw Je(e)}}}componentDidUpdate(e){"none"===e.dataSource&&"none"!==this.props.dataSource?this._retrieveProfileFromDataSource():"compare"===this.props.dataSource&&!e.profilesToCompare&&this.props.profilesToCompare&&this.props.retrieveProfilesToCompare(this.props.profilesToCompare)}render(){return null}}const f_=je({mapStateToProps:e=>({dataSource:Va(e),hash:ja(e),profileUrl:Za(e),profilesToCompare:$a(e),browserConnectionStatus:pc(e)}),mapDispatchToProps:{retrieveProfileFromStore:Om,retrieveProfileOrZipFromUrl:Um,retrieveProfileFromBrowser:km,retrieveProfilesToCompare:Hm},component:m_});try{self["workbox:window:7.0.0"]&&_()}catch(g_){}function g_(e,t){return new Promise((function(n){var r=new MessageChannel;r.port1.onmessage=function(e){n(e.data)},e.postMessage(t,[r.port2])}))}function A_(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function b_(e,t){var n;if("undefined"==typeof Symbol||null==e[Symbol.iterator]){if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return A_(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(e):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?A_(e,t):void 0}}(e))||t&&e&&"number"==typeof e.length){n&&(e=n);var r=0;return function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}return(n=e[Symbol.iterator]()).next.bind(n)}try{self["workbox:core:7.0.0"]&&_()}catch(g_){}var C_=function(){var e=this;this.promise=new Promise((function(t,n){e.resolve=t,e.reject=n}))};function y_(e,t){var n=location.href;return new URL(e,n).href===new URL(t,n).href}var v_=function(e,t){this.type=e,Object.assign(this,t)};function w_(e,t,n){return n?t?t(e):e:(e&&e.then||(e=Promise.resolve(e)),t?e.then(t):e)}function k_(){}var E_={type:"SKIP_WAITING"};function x_(e,t){if(!t)return e&&e.then?e.then(k_):Promise.resolve()}var S_=function(e){var t,n;function r(t,n){var r,o;return void 0===n&&(n={}),(r=e.call(this)||this).nn={},r.tn=0,r.rn=new C_,r.en=new C_,r.on=new C_,r.un=0,r.an=new Set,r.cn=function(){var e=r.fn,t=e.installing;r.tn>0||!y_(t.scriptURL,r.sn.toString())||performance.now()>r.un+6e4?(r.vn=t,e.removeEventListener("updatefound",r.cn)):(r.hn=t,r.an.add(t),r.rn.resolve(t)),++r.tn,t.addEventListener("statechange",r.ln)},r.ln=function(e){var t=r.fn,n=e.target,o=n.state,a=n===r.vn,i={sw:n,isExternal:a,originalEvent:e};!a&&r.mn&&(i.isUpdate=!0),r.dispatchEvent(new v_(o,i)),"installed"===o?r.wn=self.setTimeout((function(){"installed"===o&&t.waiting===n&&r.dispatchEvent(new v_("waiting",i))}),200):"activating"===o&&(clearTimeout(r.wn),a||r.en.resolve(n))},r.dn=function(e){var t=r.hn,n=t!==navigator.serviceWorker.controller;r.dispatchEvent(new v_("controlling",{isExternal:n,originalEvent:e,sw:t,isUpdate:r.mn})),n||r.on.resolve(t)},r.gn=(o=function(e){var t=e.data,n=e.ports,o=e.source;return w_(r.getSW(),(function(){r.an.has(o)&&r.dispatchEvent(new v_("message",{data:t,originalEvent:e,ports:n,sw:o}))}))},function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];try{return Promise.resolve(o.apply(this,e))}catch(e){return Promise.reject(e)}}),r.sn=t,r.nn=n,navigator.serviceWorker.addEventListener("message",r.gn),r}n=e,(t=r).prototype=Object.create(n.prototype),t.prototype.constructor=t,t.__proto__=n;var o,a=r.prototype;return a.register=function(e){var t=(void 0===e?{}:e).immediate,n=void 0!==t&&t;try{var r=this;return function(e,t){var n=e();return n&&n.then?n.then(t):t()}((function(){if(!n&&"complete"!==document.readyState)return x_(new Promise((function(e){return window.addEventListener("load",e)})))}),(function(){return r.mn=Boolean(navigator.serviceWorker.controller),r.yn=r.pn(),w_(r.bn(),(function(e){r.fn=e,r.yn&&(r.hn=r.yn,r.en.resolve(r.yn),r.on.resolve(r.yn),r.yn.addEventListener("statechange",r.ln,{once:!0}));var t=r.fn.waiting;return t&&y_(t.scriptURL,r.sn.toString())&&(r.hn=t,Promise.resolve().then((function(){r.dispatchEvent(new v_("waiting",{sw:t,wasWaitingBeforeRegister:!0}))})).then((function(){}))),r.hn&&(r.rn.resolve(r.hn),r.an.add(r.hn)),r.fn.addEventListener("updatefound",r.cn),navigator.serviceWorker.addEventListener("controllerchange",r.dn),r.fn}))}))}catch(e){return Promise.reject(e)}},a.update=function(){try{return this.fn?x_(this.fn.update()):void 0}catch(e){return Promise.reject(e)}},a.getSW=function(){return void 0!==this.hn?Promise.resolve(this.hn):this.rn.promise},a.messageSW=function(e){try{return w_(this.getSW(),(function(t){return g_(t,e)}))}catch(e){return Promise.reject(e)}},a.messageSkipWaiting=function(){this.fn&&this.fn.waiting&&g_(this.fn.waiting,E_)},a.pn=function(){var e=navigator.serviceWorker.controller;return e&&y_(e.scriptURL,this.sn.toString())?e:void 0},a.bn=function(){try{var e=this;return function(e,t){try{var n=e()}catch(e){return t(e)}return n&&n.then?n.then(void 0,t):n}((function(){return w_(navigator.serviceWorker.register(e.sn,e.nn),(function(t){return e.un=performance.now(),t}))}),(function(e){throw e}))}catch(e){return Promise.reject(e)}},(o=[{key:"active",get:function(){return this.en.promise}},{key:"controlling",get:function(){return this.on.promise}}])&&function(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}(r.prototype,o),r}(function(){function e(){this.Pn=new Map}var t=e.prototype;return t.addEventListener=function(e,t){this.Sn(e).add(t)},t.removeEventListener=function(e,t){this.Sn(e).delete(t)},t.dispatchEvent=function(e){e.target=this;for(var t,n=b_(this.Sn(e.type));!(t=n()).done;)(0,t.value)(e)},t.Sn=function(e){return this.Pn.has(e)||this.Pn.set(e,new Set),this.Pn.get(e)},e}()),T_=n(9712),B_={};B_.styleTagTransform=M(),B_.setAttributes=B(),B_.insert=S().bind(null,"head"),B_.domAPI=E(),B_.insertStyleElement=P(),w()(T_.Z,B_),T_.Z&&T_.Z.locals&&T_.Z.locals;class __ extends X.PureComponent{constructor(...e){super(...e),this.state={installStatus:"idle",isNoticeDisplayed:!1,updatedWhileNotReady:!1},this._workbox=null,this.applyServiceWorkerUpdate=()=>{const e=this._workbox;e&&(this.setState({installStatus:"activating"}),e.messageSkipWaiting())},this.reloadPage=()=>{window.location.reload()},this._onCloseNotice=()=>{this.setState({isNoticeDisplayed:!1})}}_installServiceWorker(){if(!("serviceWorker"in navigator))return;const e=this._workbox=new S_("/sw.js",{updateViaCache:"none"});e.register(),e.addEventListener("installing",(()=>{console.log("[ServiceWorker] An update has been found and the browser is downloading the new assets.")})),e.addEventListener("installed",(()=>{console.log("[ServiceWorker] App is ready for offline usage!")})),e.addEventListener("waiting",(()=>{console.log("[ServiceWorker] We have downloaded the new assets and we are ready to go."),this.setState({installStatus:"pending",isNoticeDisplayed:!0})})),e.addEventListener("controlling",(()=>{if(console.log("[ServiceWorker] The new version of the application has started handling the fetch requests."),"activating"===this.state.installStatus)return void this.reloadPage();const e=!this._hasDataSourceProfile()||this._isProfileLoadedAndReady();this.setState({installStatus:"controlling",updatedWhileNotReady:!e})}))}_hasDataSourceProfile(){const{dataSource:e}=this.props;switch(e){case"none":case"uploaded-recordings":return!1;case"from-file":case"from-browser":case"unpublished":case"public":case"from-url":case"compare":case"local":return!0;default:throw Je(e)}}_isProfileLoadedAndReady(){const{phase:e,symbolicationStatus:t}=this.props;if("DATA_LOADED"!==e)return!1;switch(t){case"DONE":return!0;case"SYMBOLICATING":return!1;default:throw Je(t)}}_canUpdateServiceWorker(){const{dataSource:e,profileUrl:t}=this.props;switch(e){case"none":case"uploaded-recordings":return!0;case"from-file":case"from-browser":case"unpublished":return!1;case"from-url":if(va(t))return!1;case"public":case"compare":case"local":return this._isProfileLoadedAndReady();default:throw Je(e)}}componentDidMount(){this._installServiceWorker()}componentDidUpdate(){const{phase:e,dataSource:t}=this.props,{installStatus:n}=this.state;this._workbox&&"idle"!==n&&"FATAL_ERROR"===e&&"from-file"!==t&&(this._workbox.messageSkipWaiting(),this.reloadPage())}renderButton(){const{installStatus:e}=this.state;switch(e){case"activating":return X.createElement(ue,{id:"ServiceWorkerManager--applying-button"},X.createElement("button",{className:"photon-button photon-button-micro photon-message-bar-action-button",type:"button"},"Applying…"));case"idle":throw new Error("We tried to render the notice's button but because we're in status 'idle', there should be no notice.");case"pending":return X.createElement(ue,{id:"ServiceWorkerManager--pending-button"},X.createElement("button",{className:"photon-button photon-button-micro photon-message-bar-action-button",type:"button",onClick:this.applyServiceWorkerUpdate},"Apply and reload"));case"controlling":return X.createElement(ue,{id:"ServiceWorkerManager--installed-button"},X.createElement("button",{className:"photon-button photon-button-micro photon-message-bar-action-button",type:"button",onClick:this.reloadPage},"Reload the application"));default:throw Je(e)}}render(){const{isNoticeDisplayed:e,updatedWhileNotReady:t}=this.state;return e?t?X.createElement("div",{className:"serviceworker-ready-notice-wrapper"},X.createElement("div",{className:"photon-message-bar photon-message-bar-warning serviceworker-ready-notice"},X.createElement("div",{className:"photon-message-bar-inner-content"},X.createElement("div",{className:"photon-message-bar-inner-text"},X.createElement(ue,{id:"ServiceWorkerManager--updated-while-not-ready"},"A new version of the application was applied before this page was fully loaded. You might see malfunctions.")),this._canUpdateServiceWorker()?this.renderButton():null),X.createElement(ue,{id:"ServiceWorkerManager--hide-notice-button",attrs:{"aria-label":!0,title:!0}},X.createElement("button",{"aria-label":"Hide the reload notice",title:"Hide the reload notice",className:"photon-button photon-message-bar-close-button",type:"button",onClick:this._onCloseNotice})))):this._canUpdateServiceWorker()?X.createElement("div",{className:"serviceworker-ready-notice-wrapper"},X.createElement("div",{className:"photon-message-bar serviceworker-ready-notice"},X.createElement("div",{className:"photon-message-bar-inner-content"},X.createElement("div",{className:"photon-message-bar-inner-text"},X.createElement(ue,{id:"ServiceWorkerManager--new-version-is-ready"},"A new version of the application has been downloaded and is ready to use.")),this.renderButton()),X.createElement(ue,{id:"ServiceWorkerManager--hide-notice-button",attrs:{"aria-label":!0,title:!0}},X.createElement("button",{"aria-label":"Hide the reload notice",title:"Hide the reload notice",className:"photon-button photon-message-bar-close-button",type:"button",onClick:this._onCloseNotice})))):null:null}}const I_=je({mapStateToProps:e=>({phase:oc(e).phase,dataSource:Va(e),profileUrl:Za(e),symbolicationStatus:Ss(e)}),component:__}),P_=" – ",N_="Firefox Profiler";class M_ extends X.PureComponent{_updateTitle(){const{profile:e,profileNameFromUrl:t,formattedMetaInfoString:n,fileNameInZipFilePath:r,listingZipFile:o,dataSource:a}=this.props;switch(a){case"none":document.title=N_;break;case"uploaded-recordings":document.title="Uploaded Recordings"+P_+N_;break;case"compare":document.title="Compare Profiles"+P_+N_;break;case"public":case"local":case"unpublished":case"from-browser":case"from-file":case"from-url":if(t)document.title=t+P_+N_;else if(e){const{meta:t}=e;let o="";n&&(o+=n+P_),o+=(i=t.startTime+(t.profilingStartTime||0),new Date(i).toLocaleString(void 0,{timeZone:"UTC",timeZoneName:"short"})),"public"===a&&(o+=` (${a})`),o+=P_+N_,r&&(o=r+P_+o),document.title=o}else document.title=o?"Zip File Contents"+P_+N_:N_;break;default:throw Je(a)}var i}componentDidMount(){this._updateTitle()}componentDidUpdate(){this._updateTitle()}render(){return null}}const F_=je({mapStateToProps:e=>({profileNameFromUrl:Ka(e),fileNameInZipFilePath:Li(e),formattedMetaInfoString:Di(e),profile:Rs(e),dataSource:Va(e),listingZipFile:"LIST_FILES_IN_ZIP_FILE"===Kl(e).phase}),component:M_}),R_=new RegExp("^([a-z]{2,3}|\\*)(?:-([a-z]{4}|\\*))?(?:-([a-z]{2}|\\*))?(?:-(([0-9][a-z0-9]{3}|[a-z0-9]{5,8})|\\*))?$","i");class D_{constructor(e){const t=R_.exec(e.replace(/_/g,"-"));if(!t)return void(this.isWellFormed=!1);let[,n,r,o,a]=t;n&&(this.language=n.toLowerCase()),r&&(this.script=r[0].toUpperCase()+r.slice(1)),o&&(this.region=o.toUpperCase()),this.variant=a,this.isWellFormed=!0}isEqual(e){return this.language===e.language&&this.script===e.script&&this.region===e.region&&this.variant===e.variant}matches(e,t=!1,n=!1){return(this.language===e.language||t&&void 0===this.language||n&&void 0===e.language)&&(this.script===e.script||t&&void 0===this.script||n&&void 0===e.script)&&(this.region===e.region||t&&void 0===this.region||n&&void 0===e.region)&&(this.variant===e.variant||t&&void 0===this.variant||n&&void 0===e.variant)}toString(){return[this.language,this.script,this.region,this.variant].filter((e=>void 0!==e)).join("-")}clearVariants(){this.variant=void 0}clearRegion(){this.region=void 0}addLikelySubtags(){const e=function(e){if(Object.prototype.hasOwnProperty.call(L_,e))return new D_(L_[e]);const t=new D_(e);return t.language&&O_.includes(t.language)?(t.region=t.language.toUpperCase(),t):null}(this.toString().toLowerCase());return!!e&&(this.language=e.language,this.script=e.script,this.region=e.region,this.variant=e.variant,!0)}}const L_={ar:"ar-arab-eg","az-arab":"az-arab-ir","az-ir":"az-arab-ir",be:"be-cyrl-by",da:"da-latn-dk",el:"el-grek-gr",en:"en-latn-us",fa:"fa-arab-ir",ja:"ja-jpan-jp",ko:"ko-kore-kr",pt:"pt-latn-br",sr:"sr-cyrl-rs","sr-ru":"sr-latn-ru",sv:"sv-latn-se",ta:"ta-taml-in",uk:"uk-cyrl-ua",zh:"zh-hans-cn","zh-hant":"zh-hant-tw","zh-hk":"zh-hant-hk","zh-mo":"zh-hant-mo","zh-tw":"zh-hant-tw","zh-gb":"zh-hant-gb","zh-us":"zh-hant-us"},O_=["az","bg","cs","de","es","fi","fr","hu","it","lt","lv","nl","pl","ro","ru"];class U_ extends X.PureComponent{async _setupLocalization(){const{requestedLocales:e,pseudoStrategy:t,receiveL10n:n}=this.props;if(!e)return;const r=function(e,t,{strategy:n="filtering",defaultLocale:r}={}){const o=function(e,t,n){const r=new Set,o=new Map;for(let e of t)new D_(e).isWellFormed&&o.set(e,new D_(e));e:for(const t of e){const e=t.toLowerCase(),a=new D_(e);if(void 0!==a.language){for(const t of o.keys())if(e===t.toLowerCase()){if(r.add(t),o.delete(t),"lookup"===n)return Array.from(r);if("filtering"===n)continue;continue e}for(const[e,t]of o.entries())if(t.matches(a,!0,!1)){if(r.add(e),o.delete(e),"lookup"===n)return Array.from(r);if("filtering"===n)continue;continue e}if(a.addLikelySubtags())for(const[e,t]of o.entries())if(t.matches(a,!0,!1)){if(r.add(e),o.delete(e),"lookup"===n)return Array.from(r);if("filtering"===n)continue;continue e}a.clearVariants();for(const[e,t]of o.entries())if(t.matches(a,!0,!0)){if(r.add(e),o.delete(e),"lookup"===n)return Array.from(r);if("filtering"===n)continue;continue e}if(a.clearRegion(),a.addLikelySubtags())for(const[e,t]of o.entries())if(t.matches(a,!0,!1)){if(r.add(e),o.delete(e),"lookup"===n)return Array.from(r);if("filtering"===n)continue;continue e}a.clearRegion();for(const[e,t]of o.entries())if(t.matches(a,!0,!0)){if(r.add(e),o.delete(e),"lookup"===n)return Array.from(r);if("filtering"===n)continue;continue e}}}return Array.from(r)}(Array.from(null!=e?e:[]).map(String),Array.from(null!=t?t:[]).map(String),n);if("lookup"===n){if(void 0===r)throw new Error("defaultLocale cannot be undefined for strategy `lookup`");0===o.length&&o.push(r)}else r&&!o.includes(r)&&o.push(r);return o}(e,Rg,{defaultLocale:Dg}),o=r.indexOf(Dg),a=r.slice(0,o+1),i=function*(e,t){const n=t?Bg[t]:void 0;for(const[t,r]of e){const e=new xg(r),o=new eg(t,{transform:n,functions:{SHORTDATE:Mg}});o.addResource(e),yield o}}(await Promise.all(a.map(Og)),t),s=new le(i),l=r[0],c=function(e,t){if(t&&t in _g)return _g[t];const n=e.split("-")[0];return Lg.includes(n)?"rtl":"ltr"}(l,t);n(s,l,c)}componentDidMount(){this._setupLocalization()}componentDidUpdate(){this._setupLocalization()}render(){return null}}class z_ extends X.PureComponent{componentDidMount(){const{requestL10n:e}=this.props;e(this._getPersistedLocale()??navigator.languages)}componentDidUpdate(){this._persistCurrentLocale()}_getPersistedLocale(){let e;try{e=localStorage.getItem("requestedLocales")}catch(e){console.warn("We got an error while trying to retrieve the previously requested locale. Cookies might be blocked in this browser.",e)}if(e)try{const t=JSON.parse(e);if(Array.isArray(t)&&t.length)return t;console.warn(`The stored locale information (${e}) looks incorrect.`)}catch(t){console.warn(`We got an error when trying to parse the previously stored locale information (${e}).`)}return null}_persistCurrentLocale(){const{requestedLocales:e}=this.props;if(e)try{localStorage.setItem("requestedLocales",JSON.stringify(e))}catch(e){console.warn("We got an error when trying to save the current requested locale. We may run in private mode.",e)}}render(){return null}}class G_ extends X.PureComponent{componentDidMount(){this._updateLocalizationDocumentAttribute()}componentDidUpdate(){this._updateLocalizationDocumentAttribute()}_updateLocalizationDocumentAttribute(){const{primaryLocale:e,direction:t}=this.props;e&&(nt(document.documentElement).setAttribute("dir",t),nt(document.documentElement).setAttribute("lang",e))}render(){const{primaryLocale:e,children:t,localization:n,requestedLocales:r,pseudoStrategy:o,receiveL10n:a,requestL10n:i}=this.props;return X.createElement(X.Fragment,null,X.createElement(z_,{requestL10n:i,requestedLocales:r}),X.createElement(U_,{requestedLocales:r,pseudoStrategy:o,receiveL10n:a}),e?X.createElement(de,{l10n:n},t):null)}}const W_=je({mapStateToProps:e=>({localization:mh(e),primaryLocale:fh(e),direction:gh(e),requestedLocales:Ah(e),pseudoStrategy:bh(e)}),mapDispatchToProps:{requestL10n:Pf,receiveL10n:Nf},component:G_});var H_=n(9116),V_={};V_.styleTagTransform=M(),V_.setAttributes=B(),V_.insert=S().bind(null,"head"),V_.domAPI=E(),V_.insertStyleElement=P(),w()(H_.Z,V_),H_.Z&&H_.Z.locals&&H_.Z.locals;class j_ extends X.PureComponent{render(){const{store:e}=this.props;return X.createElement($g,{message:"Uh oh, some unknown error happened in profiler.firefox.com."},X.createElement(He,{store:e},X.createElement(W_,null,X.createElement(ue,{id:"Root--error-boundary-message",attrs:{message:!0}},X.createElement(Kg,{message:"Uh oh, some unknown error happened in profiler.firefox.com."},X.createElement(TB,null,X.createElement(If,null,X.createElement(I_,null),X.createElement(f_,null),X.createElement(p_,null),X.createElement(Hg,null),X.createElement(F_,null))))))))}}function Z_(e){return function(t){var n=t.dispatch,r=t.getState;return function(t){return function(o){return"function"==typeof o?o(n,r,e):t(o)}}}}var $_=Z_();$_.withExtraArgument=Z_;const K_=$_;n(4500);const Y_=_a({eventDelayTracks:(e=!1,t)=>"ENABLE_EVENT_DELAY_TRACKS"===t.type||e,cpuGraphs:(e=!1,t)=>"ENABLE_EXPERIMENTAL_CPU_GRAPHS"===t.type||e,processCPUTracks:(e=!1,t)=>"ENABLE_EXPERIMENTAL_PROCESS_CPU_TRACKS"===t.type||e}),q_=_a({view:(e={phase:"INITIALIZING"},t)=>{switch(t.type){case"TEMPORARY_ERROR":return{phase:"INITIALIZING",additionalData:{message:t.error.message,attempt:t.error.attempt}};case"FATAL_ERROR":return{phase:"FATAL_ERROR",error:t.error};case"WAITING_FOR_PROFILE_FROM_BROWSER":case"WAITING_FOR_PROFILE_FROM_URL":case"WAITING_FOR_PROFILE_FROM_FILE":return{phase:"INITIALIZING"};case"ROUTE_NOT_FOUND":return{phase:"ROUTE_NOT_FOUND"};case"REVERT_TO_PRE_PUBLISHED_STATE":case"SANITIZED_PROFILE_PUBLISHED":return{phase:"TRANSITIONING_FROM_STALE_PROFILE"};case"PROFILE_LOADED":return{phase:"PROFILE_LOADED"};case"DATA_RELOAD":return{phase:"DATA_RELOAD"};case"RECEIVE_ZIP_FILE":case"VIEW_FULL_PROFILE":case"VIEW_ORIGINS_PROFILE":case"VIEW_ACTIVE_TAB_PROFILE":return{phase:"DATA_LOADED"};default:return e}},urlSetupPhase:(e="initial-load",t)=>{switch(t.type){case"START_FETCHING_PROFILES":return"loading-profile";case"ROUTE_NOT_FOUND":case"FATAL_ERROR":case"URL_SETUP_DONE":return"done";default:return e}},hasZoomedViaMousewheel:(e=!1,t)=>"HAS_ZOOMED_VIA_MOUSEWHEEL"===t.type||e,isSidebarOpenPerPanel:(e=function(){const e={};return ea.forEach((t=>e[t]=!1)),e.calltree=!0,e["marker-table"]=!0,e}(),t)=>{if("CHANGE_SIDEBAR_OPEN_STATE"===t.type){const{tab:n,isOpen:r}=t;return{...e,[n]:r}}return e},panelLayoutGeneration:(e=0,t)=>{switch(t.type){case"INCREMENT_PANEL_LAYOUT_GENERATION":case"CHANGE_SIDEBAR_OPEN_STATE":case"HIDE_GLOBAL_TRACK":case"SHOW_ALL_TRACKS":case"SHOW_PROVIDED_TRACKS":case"HIDE_PROVIDED_TRACKS":case"SHOW_GLOBAL_TRACK":case"SHOW_GLOBAL_TRACK_INCLUDING_LOCAL_TRACKS":case"ISOLATE_PROCESS":case"ISOLATE_PROCESS_MAIN_THREAD":case"HIDE_LOCAL_TRACK":case"SHOW_LOCAL_TRACK":case"ISOLATE_LOCAL_TRACK":case"TOGGLE_RESOURCES_PANEL":case"ENABLE_EXPERIMENTAL_CPU_GRAPHS":case"ENABLE_EXPERIMENTAL_PROCESS_CPU_TRACKS":case"COMMIT_RANGE":case"POP_COMMITTED_RANGES":case"UPDATE_BOTTOM_BOX":case"CLOSE_BOTTOM_BOX_FOR_TAB":return e+1;default:return e}},lastVisibleThreadTabSlug:(e="calltree",t)=>{switch(t.type){case"SELECT_TRACK":case"CHANGE_SELECTED_TAB":return"network-chart"!==t.selectedTab?t.selectedTab:e;case"FOCUS_CALL_TREE":return"calltree";default:return e}},trackThreadHeights:(e={},t)=>{if("UPDATE_TRACK_THREAD_HEIGHT"===t.type){const n={...e};return n[t.threadsKey]=t.height,n}return e},isNewlyPublished:(e=!1,t)=>{switch(t.type){case"PROFILE_PUBLISHED":case"SANITIZED_PROFILE_PUBLISHED":return!0;case"DISMISS_NEWLY_PUBLISHED":return!1;default:return e}},isDragAndDropDragging:(e=!1,t)=>{switch(t.type){case"START_DRAGGING":return!0;case"STOP_DRAGGING":return!1;default:return e}},isDragAndDropOverlayRegistered:(e=!1,t)=>{switch(t.type){case"REGISTER_DRAG_AND_DROP_OVERLAY":return!0;case"UNREGISTER_DRAG_AND_DROP_OVERLAY":return!1;default:return e}},experimental:Y_,currentProfileUploadedInformation:(e=null,t)=>"SET_CURRENT_PROFILE_UPLOADED_INFORMATION"===t.type?t.uploadedProfileInformation:e,browserConnectionStatus:(e={status:"NO_ATTEMPT"},t)=>"UPDATE_BROWSER_CONNECTION_STATUS"===t.type?t.browserConnectionStatus:e,sidebarOpenCategories:(e=new Map,t)=>{if("TOGGLE_SIDEBAR_OPEN_CATEGORY"===t.type){const n=new Map(e);let r=n.get(t.kind);return void 0===r&&(r=new Set),r.has(t.category)?r.delete(t.category):r.add(t.category),n.set(t.kind,r),n}return e}});function J_(e,t){const n=e.phase;if(n===t.phase)return t;let r;switch(n){case"NO_ZIP_FILE":r=["LIST_FILES_IN_ZIP_FILE","PROCESS_PROFILE_FROM_ZIP_FILE"];break;case"LIST_FILES_IN_ZIP_FILE":r=["PROCESS_PROFILE_FROM_ZIP_FILE","FILE_NOT_FOUND_IN_ZIP_FILE"];break;case"PROCESS_PROFILE_FROM_ZIP_FILE":r=["VIEW_PROFILE_IN_ZIP_FILE","FAILED_TO_PROCESS_PROFILE_FROM_ZIP_FILE","LIST_FILES_IN_ZIP_FILE"];break;case"FILE_NOT_FOUND_IN_ZIP_FILE":case"FAILED_TO_PROCESS_PROFILE_FROM_ZIP_FILE":case"VIEW_PROFILE_IN_ZIP_FILE":r=["LIST_FILES_IN_ZIP_FILE"];break;default:throw new Error(`Unhandled ZipFileState “${n}”`)}if(!r.includes(t.phase))throw console.error("Previous ZipFileState:",e),console.error("Next ZipFileState:",t),new Error(En`
|
148
|
+
Attempted to transition the ZipFileState from the phase “${e.phase}”
|
149
|
+
to “${t.phase}”, however “${e.phase}” can only transition to
|
150
|
+
“${r.join("”, “")}”.
|
151
|
+
`);return t}const X_=_a({zipFile:(e={phase:"NO_ZIP_FILE",zip:null,pathInZipFile:null},t)=>{switch(t.type){case"UPDATE_URL_STATE":return t.newUrlState&&null===t.newUrlState.pathInZipFile&&"VIEW_PROFILE_IN_ZIP_FILE"===e.phase?J_(e,{phase:"LIST_FILES_IN_ZIP_FILE",zip:e.zip,pathInZipFile:null}):e;case"RECEIVE_ZIP_FILE":return J_(e,{phase:"LIST_FILES_IN_ZIP_FILE",zip:t.zip,pathInZipFile:null});case"RETURN_TO_ZIP_FILE_LIST":case"DISMISS_PROCESS_PROFILE_FROM_ZIP_ERROR":return J_(e,{phase:"LIST_FILES_IN_ZIP_FILE",zip:nt(e.zip),pathInZipFile:null});case"PROCESS_PROFILE_FROM_ZIP_FILE":return J_(e,{phase:"PROCESS_PROFILE_FROM_ZIP_FILE",zip:nt(e.zip),pathInZipFile:t.pathInZipFile});case"FILE_NOT_FOUND_IN_ZIP_FILE":return J_(e,{phase:"FILE_NOT_FOUND_IN_ZIP_FILE",zip:nt(e.zip),pathInZipFile:t.pathInZipFile});case"FAILED_TO_PROCESS_PROFILE_FROM_ZIP_FILE":return J_(e,{phase:"FAILED_TO_PROCESS_PROFILE_FROM_ZIP_FILE",zip:nt(e.zip),pathInZipFile:nt(e.pathInZipFile)});case"FATAL_ERROR":return"NO_ZIP_FILE"===e.phase||"LIST_FILES_IN_ZIP_FILE"===e.phase?e:J_(e,{phase:"FAILED_TO_PROCESS_PROFILE_FROM_ZIP_FILE",zip:nt(e.zip),pathInZipFile:nt(e.pathInZipFile)});case"VIEW_ORIGINS_PROFILE":case"VIEW_FULL_PROFILE":case"VIEW_ACTIVE_TAB_PROFILE":return"NO_ZIP_FILE"===e.phase?e:J_(e,{phase:"VIEW_PROFILE_IN_ZIP_FILE",zip:nt(e.zip),pathInZipFile:nt(e.pathInZipFile)});case"PROFILE_PUBLISHED":case"SANITIZED_PROFILE_PUBLISHED":case"WAITING_FOR_PROFILE_FROM_FILE":return{phase:"NO_ZIP_FILE",zip:null,pathInZipFile:null};default:return e}},error:(e=null,t)=>{switch(t.type){case"FAILED_TO_PROCESS_PROFILE_FROM_ZIP_FILE":case"FATAL_ERROR":return t.error;default:return e}},selectedZipFileIndex:(e=null,t)=>"CHANGE_SELECTED_ZIP_FILE"===t.type?t.selectedZipFileIndex:e,expandedZipFileIndexes:(e=[],t)=>"CHANGE_EXPANDED_ZIP_FILES"===t.type?t.expandedZipFileIndexes:e}),Q_=()=>{},eI=_a({phase:(e="local",t)=>{switch(t.type){case"UPLOAD_COMPRESSION_STARTED":return"compressing";case"UPLOAD_STARTED":return"uploading";case"PROFILE_PUBLISHED":case"SANITIZED_PROFILE_PUBLISHED":return"uploaded";case"UPLOAD_FAILED":return"error";case"UPLOAD_ABORTED":case"UPLOAD_RESET":return"local";default:return e}},uploadProgress:(e=0,t)=>{switch(t.type){case"UPDATE_UPLOAD_PROGRESS":return t.uploadProgress;case"UPLOAD_STARTED":case"UPLOAD_ABORTED":case"UPLOAD_RESET":case"PROFILE_PUBLISHED":case"SANITIZED_PROFILE_PUBLISHED":case"UPLOAD_COMPRESSION_STARTED":case"UPLOAD_FAILED":return 0;default:return e}},abortFunction:(e=Q_,t)=>{switch(t.type){case"UPLOAD_ABORTED":case"PROFILE_PUBLISHED":case"SANITIZED_PROFILE_PUBLISHED":case"UPLOAD_FAILED":return Q_;case"UPLOAD_COMPRESSION_STARTED":return t.abortFunction;default:return e}},error:(e=null,t)=>{switch(t.type){case"UPLOAD_FAILED":return t.error;case"UPLOAD_COMPRESSION_STARTED":return null;default:return e}},generation:(e=0,t)=>{switch(t.type){case"PROFILE_PUBLISHED":case"SANITIZED_PROFILE_PUBLISHED":case"UPLOAD_ABORTED":case"UPLOAD_FAILED":case"HIDE_STALE_PROFILE":return e+1;default:return e}}}),tI=_a({checkedSharingOptions:(e={includeHiddenThreads:!1,includeAllTabs:!1,includeFullTimeRange:!1,includeScreenshots:!1,includeUrls:!1,includeExtension:!1,includePreferenceValues:!1,includePrivateBrowsingData:!1},t)=>{switch(t.type){case"PROFILE_LOADED":return Ru(t.profile)?{includeHiddenThreads:!1,includeAllTabs:!1,includeFullTimeRange:!1,includeScreenshots:!1,includeUrls:!1,includeExtension:!1,includePreferenceValues:!1,includePrivateBrowsingData:!1}:{includeHiddenThreads:!0,includeAllTabs:!0,includeFullTimeRange:!0,includeScreenshots:!0,includeUrls:!0,includeExtension:!0,includePreferenceValues:!0,includePrivateBrowsingData:!1};case"TOGGLE_CHECKED_SHARING_OPTION":return{...e,[t.slug]:!e[t.slug]};default:return e}},upload:eI,isHidingStaleProfile:(e=!1,t)=>{switch(t.type){case"HIDE_STALE_PROFILE":return!0;case"VIEW_FULL_PROFILE":case"VIEW_ORIGINS_PROFILE":case"VIEW_ACTIVE_TAB_PROFILE":return!1;default:return e}},hasSanitizedProfile:(e=!1,t)=>"HIDE_STALE_PROFILE"===t.type||e,prePublishedState:(e=null,t)=>{switch(t.type){case"SANITIZED_PROFILE_PUBLISHED":case"PROFILE_PUBLISHED":return t.prePublishedState;case"REVERT_TO_PRE_PUBLISHED_STATE":return null;default:return e}}}),nI=_a({localization:(e=new le([]),t)=>"RECEIVE_L10N"===t.type?t.localization:e,primaryLocale:(e=null,t)=>"RECEIVE_L10N"===t.type?t.primaryLocale:e,direction:(e="ltr",t)=>"RECEIVE_L10N"===t.type?t.direction:e,requestedLocales:(e=null,t)=>"REQUEST_L10N"===t.type?t.locales:e,pseudoStrategy:(e=null,t)=>"TOGGLE_PSEUDO_STRATEGY"===t.type?t.pseudoStrategy:e}),rI=_a({sourceCodeCache:(e=new Map,t)=>{switch(t.type){case"SOURCE_CODE_LOADING_BEGIN_URL":{const{file:n,url:r}=t,o=new Map(e);return o.set(n,{type:"LOADING",source:{type:"URL",url:r}}),o}case"SOURCE_CODE_LOADING_BEGIN_BROWSER_CONNECTION":{const{file:n}=t,r=new Map(e);return r.set(n,{type:"LOADING",source:{type:"BROWSER_CONNECTION"}}),r}case"SOURCE_CODE_LOADING_SUCCESS":{const{file:n,code:r}=t,o=new Map(e);return o.set(n,{type:"AVAILABLE",code:r}),o}case"SOURCE_CODE_LOADING_ERROR":{const{file:n,errors:r}=t,o=new Map(e);return o.set(n,{type:"ERROR",errors:r}),o}default:return e}},assemblyCodeCache:(e=new Map,t)=>{switch(t.type){case"ASSEMBLY_CODE_LOADING_BEGIN_URL":{const{nativeSymbolKey:n,url:r}=t,o=new Map(e);return o.set(n,{type:"LOADING",source:{type:"URL",url:r}}),o}case"ASSEMBLY_CODE_LOADING_BEGIN_BROWSER_CONNECTION":{const{nativeSymbolKey:n}=t,r=new Map(e);return r.set(n,{type:"LOADING",source:{type:"BROWSER_CONNECTION"}}),r}case"ASSEMBLY_CODE_LOADING_SUCCESS":{const{nativeSymbolKey:n,instructions:r}=t,o=new Map(e);return o.set(n,{type:"AVAILABLE",instructions:r}),o}case"ASSEMBLY_CODE_LOADING_ERROR":{const{nativeSymbolKey:n,errors:r}=t,o=new Map(e);return o.set(n,{type:"ERROR",errors:r}),o}default:return e}}});var oI;const aI=(oI=_a({app:q_,profileView:bs,urlState:Da,icons:(e=new Set,t)=>"ICON_HAS_LOADED"===t.type?new Set([...e,t.icon]):e,zippedProfiles:X_,publish:tI,l10n:nI,code:rI}),(e,t)=>"REVERT_TO_PRE_PUBLISHED_STATE"===t.type?t.prePublishedState:oI(e,t)),iI=Object.assign({},f,A,g,p,C,m,y,b),sI=Object.defineProperty;window.geckoProfilerPromise=new Promise((function(e){window.connectToGeckoProfiler=e}));const lI=function e(t,n,r){var o;if("function"==typeof n&&"function"==typeof r||"function"==typeof r&&"function"==typeof arguments[3])throw new Error(xa(0));if("function"==typeof n&&void 0===r&&(r=n,n=void 0),void 0!==r){if("function"!=typeof r)throw new Error(xa(1));return r(e)(t,n)}if("function"!=typeof t)throw new Error(xa(2));var a=t,i=n,s=[],l=s,c=!1;function d(){l===s&&(l=s.slice())}function u(){if(c)throw new Error(xa(3));return i}function h(e){if("function"!=typeof e)throw new Error(xa(4));if(c)throw new Error(xa(5));var t=!0;return d(),l.push(e),function(){if(t){if(c)throw new Error(xa(6));t=!1,d();var n=l.indexOf(e);l.splice(n,1),s=null}}}function p(e){if(!function(e){if("object"!=typeof e||null===e)return!1;for(var t=e;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t}(e))throw new Error(xa(7));if(void 0===e.type)throw new Error(xa(8));if(c)throw new Error(xa(9));try{c=!0,i=a(i,e)}finally{c=!1}for(var t=s=l,n=0;n<t.length;n++)(0,t[n])();return e}return p({type:Ba.INIT}),(o={dispatch:p,subscribe:h,getState:u,replaceReducer:function(e){if("function"!=typeof e)throw new Error(xa(10));a=e,p({type:Ba.REPLACE})}})[Sa]=function(){var e,t=h;return(e={subscribe:function(e){if("object"!=typeof e||null===e)throw new Error(xa(11));function n(){e.next&&e.next(u())}return n(),{unsubscribe:t(n)}}})[Sa]=function(){return this},e},o}(aI,function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return function(e){return function(){var n=e.apply(void 0,arguments),r=function(){throw new Error(xa(15))},o={getState:n.getState,dispatch:function(){return r.apply(void 0,arguments)}},a=t.map((function(e){return e(o)}));return r=Ia.apply(void 0,a)(n.dispatch),Ea(Ea({},n),{},{dispatch:r})}}}(K_));(0,Q.render)(X.createElement(j_,{store:lI}),nt(document.getElementById("root"),"Unable to find the DOM element to attach the React element to.")),function(e,t,n=window){sI(n,"profile",{enumerable:!0,get:()=>Ch.profile.getProfile(e())}),sI(n,"filteredThread",{enumerable:!0,get:()=>Ch.selectedThread.getPreviewFilteredThread(e())}),sI(n,"callTree",{enumerable:!0,get:()=>Ch.selectedThread.getCallTree(e())}),sI(n,"filteredMarkers",{enumerable:!0,get(){const t=e(),n=Ch.selectedThread.getMarkerGetter(t);return Ch.selectedThread.getPreviewFilteredMarkerIndexes(t).map(n)}}),n.experimental={enableEventDelayTracks(){t(iI.enableEventDelayTracks())&&console.log(xn`
|
152
|
+
✅ The event delay tracks are now enabled and should be displayed in the timeline.
|
153
|
+
👉 Note that this is an experimental feature that might still have bugs.
|
154
|
+
💡 As an experimental feature their presence isn't persisted as a URL parameter like the other things.
|
155
|
+
`)},enableCPUGraphs(){t(iI.enableExperimentalCPUGraphs())&&console.log(xn`
|
156
|
+
✅ The CPU graphs are now enabled and should be displayed in the timeline.
|
157
|
+
👉 Note that this is an experimental feature that might still have bugs.
|
158
|
+
💡 As an experimental feature their presence isn't persisted as a URL parameter like the other things.
|
159
|
+
`)},enableProcessCPUTracks(){t(iI.enableExperimentalProcessCPUTracks())&&console.log(xn`
|
160
|
+
✅ The process CPU tracks are now enabled and should be displayed in the timeline.
|
161
|
+
👉 Note that this is an experimental feature that might still have bugs.
|
162
|
+
💡 As an experimental feature their presence isn't persisted as a URL parameter like the other things.
|
163
|
+
`)}},n.togglePseudoLocalization=function(e){void 0===e||"accented"===e||"bidi"===e?(t(iI.togglePseudoStrategy(e??null)),e?console.log(xn`
|
164
|
+
✅ The pseudo strategy "${e}" is now enabled for the localization.
|
165
|
+
👉 To disable it, you can call togglePseudoLocalization() again without a parameter.
|
166
|
+
`):console.log(xn`
|
167
|
+
✅ The pseudo strategy is now disabled.
|
168
|
+
`)):console.log(xn`
|
169
|
+
❗ The pseudo strategy "${e}" is unknown.
|
170
|
+
💡 Valid strategies are: "accented" or "bidi".
|
171
|
+
Please try again 😊
|
172
|
+
`)},n.toggleTimelineType=function(e){"cpu-category"===e||"category"===e||"stack"===e?(t(iI.changeTimelineType(e)),console.log(xn`
|
173
|
+
✅ The timeline type "${e}" is now enabled for the timeline.
|
174
|
+
`)):console.log(xn`
|
175
|
+
❗ The timeline type "${e}" is unknown.
|
176
|
+
💡 Valid types are: "cpu-category", "category", or "stack".
|
177
|
+
Please try again 😊
|
178
|
+
`)},n.shortenUrl=nu,n.getState=e,n.selectors=Ch,n.dispatch=t,n.actions=iI,n.persistTooltips=!1}(lI.getState,lI.dispatch),function(){const e="font-weight: bold;",t="font-style: italic; text-decoration: underline;",n="";console.log(["%c __ _ __ "," / _(_) / _| ","| |_ _ _ __ ___| |_ _____ __ ","| _| | '__/ _ \\ _/ _ \\ \\/ / ","| | | | | | __/ || (_) > < __ _ _ ","|_| |_|_| \\___|_| \\___/_/\\_\\ / _(_) | "," ,. ,. _ __ _ __ ___ | |_ _| | ___ _ _ "," | \\ / | | '_ \\| '__/ _ \\| _| | |/ _ \\ '_| "," |/ \\ _ / \\| | |_) | | | (_) | | | | | __/ | "," | | | .__/|_| \\___/|_| |_|_|\\___|_| "," / - - \\ |_| "," ,- V__V -. "," -= __- * - .,=- "," `\\_ - _/ "," `-----' "].join("\n"),"font-family: Menlo, monospace;"),console.log(xn`
|
179
|
+
%cThe following profiler information is available via the console:%c
|
180
|
+
|
181
|
+
%cwindow.profile%c - The currently loaded profile
|
182
|
+
%cwindow.filteredThread%c - The current filtered thread
|
183
|
+
%cwindow.filteredMarkers%c - The current filtered and processed markers
|
184
|
+
%cwindow.callTree%c - The call tree of the current filtered thread
|
185
|
+
%cwindow.getState%c - The function that returns the current Redux state.
|
186
|
+
%cwindow.selectors%c - All the selectors that are used to get data from the Redux state.
|
187
|
+
%cwindow.dispatch%c - The function to dispatch a Redux action to change the state.
|
188
|
+
%cwindow.actions%c - All the actions that can be dispatched to change the state.
|
189
|
+
%cwindow.experimental%c - The object that holds flags of all the experimental features.
|
190
|
+
%cwindow.togglePseudoLocalization%c - Enable pseudo localizations by passing "accented" or "bidi" to this function, or disable using no parameters.
|
191
|
+
%cwindow.toggleTimelineType%c - Toggle timeline graph type by passing "cpu-category", "category", or "stack".
|
192
|
+
|
193
|
+
The profile format is documented here:
|
194
|
+
%chttps://github.com/firefox-devtools/profiler/blob/main/docs-developer/processed-profile-format.md%c
|
195
|
+
|
196
|
+
The CallTree class's source code is available here:
|
197
|
+
%chttps://github.com/firefox-devtools/profiler/blob/main/src/profile-logic/call-tree.js%c
|
198
|
+
`,"font-size: 130%;",n,e,n,e,n,e,n,e,n,e,n,e,n,e,n,e,n,e,n,e,n,e,n,t,n,t,n)}()},6093:(e,t,n)=>{"use strict";function r(e,t,n,r,o){return o?function(e,t,n,r){const o=[],a=[];for(let i=0;i<e.length;i++){const s=e.frame[i],l=e.prefix[i],c=t.func[s],d=n.fileName[c];let u=null,h=null;if(null===l)d===r&&(u=t.line[s],null!==u&&(h=new Set([u])));else if(u=o[l],h=a[l],d===r){const e=t.line[s];null!==e&&(null===h?h=new Set([e]):h.has(e)||(h=new Set(h),h.add(e)))}o.push(u),a.push(h)}return{selfLine:o,stackLines:a}}(e,t,n,r):function(e,t,n,r){const o=[],a=[];for(let i=0;i<e.length;i++){const s=e.frame[i],l=e.prefix[i],c=t.func[s],d=n.fileName[c];let u=null,h=null!==l?a[l]:null;d===r&&(u=t.line[s],null!==u&&(null===h?h=new Set([u]):h.has(u)||(h=new Set(h),h.add(u)))),o.push(u),a.push(h)}return{selfLine:o,stackLines:a}}(e,t,n,r)}function o(e,t,n,r,o){return o?function(e,t,n,{stackIndexToCallNodeIndex:r}){const o=[],a=[];for(let i=0;i<e.length;i++){let s=null,l=null;const c=e.prefix[i];if(r[i]===n){const n=e.frame[i],r=t.line[n];null!==r&&(l=new Set([r]),null===c&&(s=r))}else null===c||(s=o[c],l=a[c]);o.push(s),a.push(l)}return{selfLine:o,stackLines:a}}(e,t,n,r):function(e,t,n,{stackIndexToCallNodeIndex:r}){const o=[],a=[];for(let i=0;i<e.length;i++){let s=null,l=null;if(r[i]===n){const n=e.frame[i];s=t.line[n],null!==s&&(l=new Set([s]))}else{const t=e.prefix[i];l=null!==t?a[t]:null}o.push(s),a.push(l)}return{selfLine:o,stackLines:a}}(e,t,n,r)}n.d(t,{KM:()=>a,QK:()=>o,Up:()=>r,cK:()=>i});const a={totalLineHits:new Map,selfLineHits:new Map};function i(e,t){if(null===e)return a;const{selfLine:n,stackLines:r}=e,o=new Map,i=new Map;for(let e=0;e<t.length;e++){const a=t.stack[e];if(null===a)continue;const s=t.weight?t.weight[e]:1,l=r[a];if(null!==l)for(const e of l){const t=o.get(e)??0;o.set(e,t+s)}const c=n[a];if(null!==c){const e=i.get(c)??0;i.set(c,e+s)}}return{totalLineHits:o,selfLineHits:i}}},7365:(e,t,n)=>{"use strict";function r(e,t,n,r){if(n=n||0,r=r||e.length,n<0||n>e.length||r<0||r>e.length)throw new TypeError("low and high must lie within the array's range");for(;n<r;){const o=n+r>>1;t<e[o]?r=o:n=o+1}return n}function o(e,t,n,r){if(n=n||0,r=r||e.length,n<0||n>e.length||r<0||r>e.length)throw new TypeError("low and high must lie within the array's range");for(;n<r;){const o=n+r>>1;t<=e[o]?r=o:n=o+1}return n}n.d(t,{e:()=>r,q:()=>o})},5627:e=>{e.exports=function(e,t,n){return t<n?e<t?t:e>n?n:e:e<n?n:e>t?t:e}},4184:(e,t)=>{var n;!function(){"use strict";var r={}.hasOwnProperty;function o(){for(var e=[],t=0;t<arguments.length;t++){var n=arguments[t];if(n){var a=typeof n;if("string"===a||"number"===a)e.push(n);else if(Array.isArray(n)){if(n.length){var i=o.apply(null,n);i&&e.push(i)}}else if("object"===a){if(n.toString!==Object.prototype.toString&&!n.toString.toString().includes("[native code]")){e.push(n.toString());continue}for(var s in n)r.call(n,s)&&n[s]&&e.push(s)}}}return e.join(" ")}e.exports?(o.default=o,e.exports=o):void 0===(n=function(){return o}.apply(t,[]))||(e.exports=n)}()},640:(e,t,n)=>{"use strict";var r=n(1742),o={"text/plain":"Text","text/html":"Url",default:"Text"};e.exports=function(e,t){var n,a,i,s,l,c,d=!1;t||(t={}),n=t.debug||!1;try{if(i=r(),s=document.createRange(),l=document.getSelection(),(c=document.createElement("span")).textContent=e,c.ariaHidden="true",c.style.all="unset",c.style.position="fixed",c.style.top=0,c.style.clip="rect(0, 0, 0, 0)",c.style.whiteSpace="pre",c.style.webkitUserSelect="text",c.style.MozUserSelect="text",c.style.msUserSelect="text",c.style.userSelect="text",c.addEventListener("copy",(function(r){if(r.stopPropagation(),t.format)if(r.preventDefault(),void 0===r.clipboardData){n&&console.warn("unable to use e.clipboardData"),n&&console.warn("trying IE specific stuff"),window.clipboardData.clearData();var a=o[t.format]||o.default;window.clipboardData.setData(a,e)}else r.clipboardData.clearData(),r.clipboardData.setData(t.format,e);t.onCopy&&(r.preventDefault(),t.onCopy(r.clipboardData))})),document.body.appendChild(c),s.selectNodeContents(c),l.addRange(s),!document.execCommand("copy"))throw new Error("copy command was unsuccessful");d=!0}catch(r){n&&console.error("unable to copy using execCommand: ",r),n&&console.warn("trying IE specific stuff");try{window.clipboardData.setData(t.format||"text",e),t.onCopy&&t.onCopy(window.clipboardData),d=!0}catch(r){n&&console.error("unable to copy using clipboardData: ",r),n&&console.error("falling back to prompt"),a=function(e){var t=(/mac os x/i.test(navigator.userAgent)?"⌘":"Ctrl")+"+C";return e.replace(/#{\s*key\s*}/g,t)}("message"in t?t.message:"Copy to clipboard: #{key}, Enter"),window.prompt(a,e)}}finally{l&&("function"==typeof l.removeRange?l.removeRange(s):l.removeAllRanges()),c&&document.body.removeChild(c),i()}return d}},7545:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,":root{--magenta-50:#ff1ad9;--magenta-60:#ed00b5;--magenta-70:#b5007f;--magenta-80:#7d004f;--magenta-90:#440027;--purple-30:#c069ff;--purple-40:#ad3bff;--purple-50:#9400ff;--purple-60:#8000d7;--purple-70:#6200a4;--purple-80:#440071;--purple-90:#25003e;--blue-40:#45a1ff;--blue-50:#0a84ff;--blue-50-a30:#0a84ff4d;--blue-60:#0060df;--blue-70:#003eaa;--blue-80:#002275;--blue-90:#000f40;--teal-50:#00feff;--teal-60:#00c8d7;--teal-70:#008ea4;--teal-80:#005a71;--teal-90:#002d3e;--green-50:#30e60b;--green-60:#12bc00;--green-70:#058b00;--green-80:#006504;--green-90:#003706;--yellow-50:#ffe900;--yellow-60:#d7b600;--yellow-60-a30:#d7b6004d;--yellow-70:#a47f00;--yellow-80:#715100;--yellow-90:#3e2800;--red-50:#ff0039;--red-60:#d70022;--red-60-a30:#d700224d;--red-70:#a4000f;--red-80:#5a0002;--red-90:#3e0200;--orange-50:#ff9400;--orange-60:#d76e00;--orange-70:#a44900;--orange-80:#712b00;--orange-90:#3e1300;--grey-10:#f9f9fa;--grey-10-a10:#f9f9fa1a;--grey-10-a20:#f9f9fa33;--grey-10-a40:#f9f9fa66;--grey-10-a60:#f9f9fa99;--grey-10-a80:#f9f9facc;--grey-20:#ededf0;--grey-30:#d7d7db;--grey-40:#b1b1b3;--grey-50:#737373;--grey-60:#4a4a4f;--grey-70:#38383d;--grey-80:#2a2a2e;--grey-90:#0c0c0d;--grey-90-a05:#0c0c0d0d;--grey-90-a10:#0c0c0d1a;--grey-90-a20:#0c0c0d33;--grey-90-a30:#0c0c0d4d;--grey-90-a40:#0c0c0d66;--grey-90-a50:#0c0c0d80;--grey-90-a60:#0c0c0d99;--grey-90-a70:#0c0c0db3;--grey-90-a80:#0c0c0dcc;--grey-90-a90:#0c0c0de6;--ink-40:#7175a8;--ink-50:#595e91;--ink-60:#464b76;--ink-70:#363959;--ink-80:#202340;--ink-90:#0f1126;--white-100:#fff}","",{version:3,sources:["webpack://./node_modules/photon-colors/photon-colors.css"],names:[],mappings:"AAMA,MACE,oBAAqB,CACrB,oBAAqB,CACrB,oBAAqB,CACrB,oBAAqB,CACrB,oBAAqB,CAErB,mBAAoB,CACpB,mBAAoB,CACpB,mBAAoB,CACpB,mBAAoB,CACpB,mBAAoB,CACpB,mBAAoB,CACpB,mBAAoB,CAEpB,iBAAkB,CAClB,iBAAkB,CAClB,uBAAsC,CACtC,iBAAkB,CAClB,iBAAkB,CAClB,iBAAkB,CAClB,iBAAkB,CAElB,iBAAkB,CAClB,iBAAkB,CAClB,iBAAkB,CAClB,iBAAkB,CAClB,iBAAkB,CAElB,kBAAmB,CACnB,kBAAmB,CACnB,kBAAmB,CACnB,kBAAmB,CACnB,kBAAmB,CAEnB,mBAAoB,CACpB,mBAAoB,CACpB,yBAAuC,CACvC,mBAAoB,CACpB,mBAAoB,CACpB,mBAAoB,CAEpB,gBAAiB,CACjB,gBAAiB,CACjB,sBAAmC,CACnC,gBAAiB,CACjB,gBAAiB,CACjB,gBAAiB,CAEjB,mBAAoB,CACpB,mBAAoB,CACpB,mBAAoB,CACpB,mBAAoB,CACpB,mBAAoB,CAEpB,iBAAkB,CAClB,uBAAuC,CACvC,uBAAuC,CACvC,uBAAuC,CACvC,uBAAuC,CACvC,uBAAuC,CACvC,iBAAkB,CAClB,iBAAkB,CAClB,iBAAkB,CAClB,iBAAkB,CAClB,iBAAkB,CAClB,iBAAkB,CAClB,iBAAkB,CAClB,iBAAkB,CAClB,uBAAqC,CACrC,uBAAoC,CACpC,uBAAoC,CACpC,uBAAoC,CACpC,uBAAoC,CACpC,uBAAoC,CACpC,uBAAoC,CACpC,uBAAoC,CACpC,uBAAoC,CACpC,uBAAoC,CAEpC,gBAAiB,CACjB,gBAAiB,CACjB,gBAAiB,CACjB,gBAAiB,CACjB,gBAAiB,CACjB,gBAAiB,CAEjB,gBAEF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n/* AUTOGENERATED Photon Colors CSS Variables v3.3.2 */\n\n:root {\n --magenta-50: #ff1ad9;\n --magenta-60: #ed00b5;\n --magenta-70: #b5007f;\n --magenta-80: #7d004f;\n --magenta-90: #440027;\n\n --purple-30: #c069ff;\n --purple-40: #ad3bff;\n --purple-50: #9400ff;\n --purple-60: #8000d7;\n --purple-70: #6200a4;\n --purple-80: #440071;\n --purple-90: #25003e;\n\n --blue-40: #45a1ff;\n --blue-50: #0a84ff;\n --blue-50-a30: rgba(10, 132, 255, 0.3);\n --blue-60: #0060df;\n --blue-70: #003eaa;\n --blue-80: #002275;\n --blue-90: #000f40;\n\n --teal-50: #00feff;\n --teal-60: #00c8d7;\n --teal-70: #008ea4;\n --teal-80: #005a71;\n --teal-90: #002d3e;\n\n --green-50: #30e60b;\n --green-60: #12bc00;\n --green-70: #058b00;\n --green-80: #006504;\n --green-90: #003706;\n\n --yellow-50: #ffe900;\n --yellow-60: #d7b600;\n --yellow-60-a30: rgba(215, 182, 0, 0.3);\n --yellow-70: #a47f00;\n --yellow-80: #715100;\n --yellow-90: #3e2800;\n\n --red-50: #ff0039;\n --red-60: #d70022;\n --red-60-a30: rgba(215, 0, 34, 0.3);\n --red-70: #a4000f;\n --red-80: #5a0002;\n --red-90: #3e0200;\n\n --orange-50: #ff9400;\n --orange-60: #d76e00;\n --orange-70: #a44900;\n --orange-80: #712b00;\n --orange-90: #3e1300;\n\n --grey-10: #f9f9fa;\n --grey-10-a10: rgba(249, 249, 250, 0.1);\n --grey-10-a20: rgba(249, 249, 250, 0.2);\n --grey-10-a40: rgba(249, 249, 250, 0.4);\n --grey-10-a60: rgba(249, 249, 250, 0.6);\n --grey-10-a80: rgba(249, 249, 250, 0.8);\n --grey-20: #ededf0;\n --grey-30: #d7d7db;\n --grey-40: #b1b1b3;\n --grey-50: #737373;\n --grey-60: #4a4a4f;\n --grey-70: #38383d;\n --grey-80: #2a2a2e;\n --grey-90: #0c0c0d;\n --grey-90-a05: rgba(12, 12, 13, 0.05);\n --grey-90-a10: rgba(12, 12, 13, 0.1);\n --grey-90-a20: rgba(12, 12, 13, 0.2);\n --grey-90-a30: rgba(12, 12, 13, 0.3);\n --grey-90-a40: rgba(12, 12, 13, 0.4);\n --grey-90-a50: rgba(12, 12, 13, 0.5);\n --grey-90-a60: rgba(12, 12, 13, 0.6);\n --grey-90-a70: rgba(12, 12, 13, 0.7);\n --grey-90-a80: rgba(12, 12, 13, 0.8);\n --grey-90-a90: rgba(12, 12, 13, 0.9);\n\n --ink-40: #7175A8;\n --ink-50: #595E91;\n --ink-60: #464B76;\n --ink-70: #363959;\n --ink-80: #202340;\n --ink-90: #0f1126;\n\n --white-100: #ffffff;\n\n}\n"],sourceRoot:""}]);const s=i},804:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".splitter-layout{display:flex;flex-direction:row;height:100%;overflow:hidden;position:absolute;width:100%}.splitter-layout .layout-pane{flex:0 0 auto;overflow:auto;position:relative}.splitter-layout .layout-pane.layout-pane-primary{flex:1 1 auto}.splitter-layout>.layout-splitter{background-color:#ccc;cursor:col-resize;flex:0 0 auto;height:100%;width:4px}.splitter-layout .layout-splitter:hover{background-color:#bbb}.splitter-layout.layout-changing{cursor:col-resize}.splitter-layout.layout-changing>.layout-splitter{background-color:#aaa}.splitter-layout.splitter-layout-vertical{flex-direction:column}.splitter-layout.splitter-layout-vertical.layout-changing{cursor:row-resize}.splitter-layout.splitter-layout-vertical>.layout-splitter{cursor:row-resize;height:4px;width:100%}","",{version:3,sources:["webpack://./node_modules/react-splitter-layout/lib/index.css"],names:[],mappings:"AAAA,iBAEE,YAAa,CACb,kBAAmB,CAEnB,WAAY,CACZ,eAAgB,CALhB,iBAAkB,CAGlB,UAGF,CAEA,8BAEE,aAAc,CACd,aAAc,CAFd,iBAGF,CAEA,kDACE,aACF,CAEA,kCAKE,qBAAsB,CADtB,iBAAkB,CAHlB,aAAc,CAEd,WAAY,CADZ,SAIF,CAEA,wCACE,qBACF,CAEA,iCACE,iBACF,CAEA,kDACE,qBACF,CAEA,0CACE,qBACF,CAEA,0DACE,iBACF,CAEA,2DAGE,iBAAkB,CADlB,UAAW,CADX,UAGF",sourcesContent:[".splitter-layout {\n position: absolute;\n display: flex;\n flex-direction: row;\n width: 100%;\n height: 100%;\n overflow: hidden;\n}\n\n.splitter-layout .layout-pane {\n position: relative;\n flex: 0 0 auto;\n overflow: auto;\n}\n\n.splitter-layout .layout-pane.layout-pane-primary {\n flex: 1 1 auto;\n}\n\n.splitter-layout > .layout-splitter {\n flex: 0 0 auto;\n width: 4px;\n height: 100%;\n cursor: col-resize;\n background-color: #ccc;\n}\n\n.splitter-layout .layout-splitter:hover {\n background-color: #bbb;\n}\n\n.splitter-layout.layout-changing {\n cursor: col-resize;\n}\n\n.splitter-layout.layout-changing > .layout-splitter {\n background-color: #aaa;\n}\n\n.splitter-layout.splitter-layout-vertical {\n flex-direction: column;\n}\n\n.splitter-layout.splitter-layout-vertical.layout-changing {\n cursor: row-resize;\n}\n\n.splitter-layout.splitter-layout-vertical > .layout-splitter {\n width: 100%;\n height: 4px;\n cursor: row-resize;\n}\n"],sourceRoot:""}]);const s=i},8082:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,":root{--category-color-transparent:#fff;--category-color-purple:var(--purple-70);--category-color-green:var(--green-60);--category-color-orange:var(--orange-50);--category-color-yellow:#ffe129;--category-color-lightblue:var(--blue-40);--category-color-blue:var(--blue-60);--category-color-brown:var(--orange-70);--category-color-magenta:var(--magenta-60);--category-color-red:var(--red-60);--category-color-lightred:#a4000f9a;--category-color-gray:var(--grey-40);--category-color-grey:var(--grey-40);--category-color-darkgray:var(--grey-50);--category-color-darkgrey:var(--grey-50)}.category-color-transparent{background-color:var(--category-color-transparent);border-color:#0006}.category-color-purple{background-color:var(--category-color-purple)}.category-color-green{background-color:var(--category-color-green)}.category-color-orange{background-color:var(--category-color-orange)}.category-color-yellow{background-color:var(--category-color-yellow)}.category-color-lightblue{background-color:var(--category-color-lightblue)}.category-color-blue{background-color:var(--category-color-blue)}.category-color-brown{background-color:var(--category-color-brown)}.category-color-magenta{background-color:var(--category-color-magenta)}.category-color-red{background-color:var(--category-color-red)}.category-color-lightred{background-color:var(--category-color-lightred)}.category-color-gray,.category-color-grey{background-color:var(--category-color-grey)}.category-color-darkgray,.category-color-darkgrey{background-color:var(--category-color-darkgrey)}","",{version:3,sources:["webpack://./res/css/categories.css"],names:[],mappings:"AAIA,MACE,iCAAkC,CAClC,wCAAyC,CACzC,sCAAuC,CACvC,wCAAyC,CACzC,+BAAgC,CAChC,yCAA0C,CAC1C,oCAAqC,CACrC,uCAAwC,CACxC,0CAA2C,CAC3C,kCAAmC,CACnC,mCAAoC,CACpC,oCAAqC,CACrC,oCAAqC,CACrC,wCAAyC,CACzC,wCACF,CAQA,4BAEE,kDAAmD,CADnD,kBAEF,CAEA,uBACE,6CACF,CAEA,sBACE,4CACF,CAEA,uBACE,6CACF,CAEA,uBACE,6CACF,CAEA,0BACE,gDACF,CAEA,qBACE,2CACF,CAEA,sBACE,4CACF,CAEA,wBACE,8CACF,CAEA,oBACE,0CACF,CAEA,yBACE,+CACF,CAEA,0CAEE,2CACF,CAEA,kDAEE,+CACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n:root {\n --category-color-transparent: #fff;\n --category-color-purple: var(--purple-70);\n --category-color-green: var(--green-60);\n --category-color-orange: var(--orange-50);\n --category-color-yellow: #ffe129; /* this yellow has more contrast than yellow-50 */\n --category-color-lightblue: var(--blue-40);\n --category-color-blue: var(--blue-60);\n --category-color-brown: var(--orange-70);\n --category-color-magenta: var(--magenta-60);\n --category-color-red: var(--red-60);\n --category-color-lightred: #a4000f9a; /* red-70 with 60 alpha */\n --category-color-gray: var(--grey-40);\n --category-color-grey: var(--grey-40);\n --category-color-darkgray: var(--grey-50);\n --category-color-darkgrey: var(--grey-50);\n}\n\n/**\n * These classes should be used to create a small color swatch to describe a\n * category. They should be used with the class `colored-square` that's defined\n * in res/css/style.css.\n * They're global css classes that can be used across the project.\n */\n.category-color-transparent {\n border-color: rgb(0 0 0 / 0.4);\n background-color: var(--category-color-transparent);\n}\n\n.category-color-purple {\n background-color: var(--category-color-purple);\n}\n\n.category-color-green {\n background-color: var(--category-color-green);\n}\n\n.category-color-orange {\n background-color: var(--category-color-orange);\n}\n\n.category-color-yellow {\n background-color: var(--category-color-yellow);\n}\n\n.category-color-lightblue {\n background-color: var(--category-color-lightblue);\n}\n\n.category-color-blue {\n background-color: var(--category-color-blue);\n}\n\n.category-color-brown {\n background-color: var(--category-color-brown);\n}\n\n.category-color-magenta {\n background-color: var(--category-color-magenta);\n}\n\n.category-color-red {\n background-color: var(--category-color-red);\n}\n\n.category-color-lightred {\n background-color: var(--category-color-lightred);\n}\n\n.category-color-gray,\n.category-color-grey {\n background-color: var(--category-color-grey);\n}\n\n.category-color-darkgray,\n.category-color-darkgrey {\n background-color: var(--category-color-darkgrey);\n}\n"],sourceRoot:""}]);const s=i},8216:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,"button::-moz-focus-inner,input::-moz-focus-inner{border:0}button:focus-visible,input[type=button]:focus-visible,input[type=checkbox]:focus-visible,input[type=image]:focus-visible,input[type=radio]:focus-visible,input[type=range]:focus-visible,input[type=reset]:focus-visible,input[type=submit]:focus-visible,select:focus-visible{box-shadow:0 0 0 1px var(--blue-50) inset,0 0 0 1px var(--blue-50),0 0 0 4px var(--blue-50-a30);outline:0}a:focus-visible{box-shadow:0 0 0 2px var(--blue-50),0 0 0 6px var(--blue-50-a30);outline:0}","",{version:3,sources:["webpack://./res/css/focus.css"],names:[],mappings:"AAKA,iDAEE,QACF,CAEA,+QASE,+FAG8B,CAC9B,SACF,CAEA,gBACE,gEAE8B,CAC9B,SACF",sourcesContent:["/* the box shadow is taken from photon-button primary button focus styling\nhttps://design.firefox.com/photon/components/buttons.html */\n\n/* removes the default Firefox focus indicator,\nso that we can add a custom indicator */\ninput::-moz-focus-inner,\nbutton::-moz-focus-inner {\n border: 0;\n}\n\ninput[type='radio']:focus-visible,\ninput[type='checkbox']:focus-visible,\ninput[type='button']:focus-visible,\ninput[type='submit']:focus-visible,\ninput[type='reset']:focus-visible,\ninput[type='image']:focus-visible,\ninput[type='range']:focus-visible,\nselect:focus-visible,\nbutton:focus-visible {\n box-shadow:\n 0 0 0 1px var(--blue-50) inset,\n 0 0 0 1px var(--blue-50),\n 0 0 0 4px var(--blue-50-a30);\n outline: 0;\n}\n\na:focus-visible {\n box-shadow:\n 0 0 0 2px var(--blue-50),\n 0 0 0 6px var(--blue-50-a30);\n outline: 0;\n}\n"],sourceRoot:""}]);const s=i},1832:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".colored-square{border:.5px solid #0000001a;box-sizing:border-box;display:inline-block;height:9px;margin-right:3px;width:9px}.colored-border{border:2px solid #0000001a;margin-right:3px}.colored-border.ellipsis{opacity:0}","",{version:3,sources:["webpack://./res/css/global.css"],names:[],mappings:"AAQA,gBAKE,2BAAoC,CADpC,qBAAsB,CAHtB,oBAAqB,CAErB,UAAW,CAGX,gBAAiB,CAJjB,SAKF,CAEA,gBACE,0BAAkC,CAClC,gBACF,CAEA,yBACE,SACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n/**\n * This class should be used to create a small colored square. It's used\n * especially for categories and network mime types.\n */\n.colored-square {\n display: inline-block;\n width: 9px;\n height: 9px;\n box-sizing: border-box;\n border: 0.5px solid rgb(0 0 0 / 0.1);\n margin-right: 3px;\n}\n\n.colored-border {\n border: 2px solid rgb(0 0 0 / 0.1);\n margin-right: 3px;\n}\n\n.colored-border.ellipsis {\n opacity: 0;\n}\n"],sourceRoot:""}]);const s=i},1514:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".network-color-css{--marker-color:var(--purple-70)}.network-color-js{--marker-color:var(--yellow-60)}.network-color-html{--marker-color:var(--blue-70)}.network-color-img{--marker-color:var(--green-70)}.network-color-other{--marker-color:var(--grey-70)}","",{version:3,sources:["webpack://./res/css/network.css"],names:[],mappings:"AASA,mBACE,+BACF,CAEA,kBACE,+BACF,CAEA,oBACE,6BACF,CAEA,mBACE,8BACF,CAEA,qBACE,6BACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n/* These colors are used with network markers, to give a quick visual indication\n * of their mime types. They're used in the network chart and in the tooltip.\n * They're quite bright and strong on purpose, because the marker has some\n * transparency, and we need the marker to stand out, especially when only the\n * border is displayed. */\n.network-color-css {\n --marker-color: var(--purple-70);\n}\n\n.network-color-js {\n --marker-color: var(--yellow-60);\n}\n\n.network-color-html {\n --marker-color: var(--blue-70);\n}\n\n.network-color-img {\n --marker-color: var(--green-70);\n}\n\n.network-color-other {\n --marker-color: var(--grey-70);\n}\n"],sourceRoot:""}]);const s=i},6983:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".photon-button{align-items:center;background:none;background-color:var(--grey-90-a10);border:none;border-radius:2px;box-sizing:border-box;color:var(--grey-90);cursor:auto;display:inline-flex;font:inherit;justify-content:center;margin:0;padding:0 8px;text-decoration:none;-webkit-user-select:none;user-select:none}.photon-button::-moz-focus-inner{border:none}.photon-button:disabled{opacity:.4}.photon-button:hover:not(:disabled){background-color:var(--grey-90-a20)}.photon-button:hover:active:not(:disabled){background-color:var(--grey-90-a30)}.photon-button-default,.photon-button-destructive,.photon-button-primary{font-size:13px;height:32px;min-width:132px;padding:0 8px}.photon-button-primary{background-color:var(--blue-60);color:#fff}.photon-button-primary:hover:not(:disabled){background-color:var(--blue-70)}.photon-button-primary:hover:active:not(:disabled){background-color:var(--blue-80)}.photon-button-destructive{background-color:var(--red-60);color:#fff}.photon-button-destructive:hover:not(:disabled){background-color:var(--red-70)}.photon-button-destructive:hover:active:not(:disabled){background-color:var(--red-80)}.photon-button-ghost{background-color:initial;height:32px;width:32px}.photon-button-ghost--checked,.photon-button-ghost:hover:not(:disabled){background-color:var(--grey-90-a10)}.photon-button-ghost:hover:active:not(:disabled){background-color:var(--grey-90-a20)}.photon-button-micro{height:24px}","",{version:3,sources:["webpack://./res/css/photon/button.css"],names:[],mappings:"AAKA,eAKE,kBAAmB,CAQnB,eAAgB,CAGhB,mCAAoC,CARpC,WAAY,CACZ,iBAAkB,CALlB,qBAAsB,CAatB,oBAAqB,CACrB,WAAe,CAff,mBAAoB,CAgBpB,YAAa,CAbb,sBAAuB,CAIvB,QAAS,CAHT,aAAc,CAad,oBAAqB,CACrB,wBAAiB,CAAjB,gBACF,CAIA,iCACE,WACF,CAEA,wBACE,UACF,CAIA,oCACE,mCACF,CAEA,2CACE,mCACF,CAEA,yEAME,cAAe,CAFf,WAAY,CADZ,eAAgB,CAEhB,aAEF,CAEA,uBACE,+BAAgC,CAChC,UACF,CAEA,4CACE,+BACF,CAEA,mDACE,+BACF,CAGA,2BACE,8BAA+B,CAC/B,UACF,CAEA,gDACE,8BACF,CAEA,uDACE,8BACF,CAEA,qBAGE,wBAA6B,CAD7B,WAAY,CADZ,UAGF,CAEA,wEAEE,mCACF,CAEA,iDACE,mCACF,CAEA,qBACE,WACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n/* See https://design.firefox.com/photon/components/buttons.html for the spec */\n.photon-button {\n /* These flex and sizing properties aren't necessary when a real <button> is used,\n * but they are when a <a> element is used as a button. */\n display: inline-flex;\n box-sizing: border-box;\n align-items: center;\n justify-content: center;\n padding: 0 8px;\n border: none;\n border-radius: 2px;\n margin: 0;\n\n /* reset default styles */\n background: none;\n\n /* photon styles */\n background-color: var(--grey-90-a10);\n color: var(--grey-90);\n cursor: initial; /* reset the defaut link style when used as a button */\n font: inherit;\n text-decoration: none; /* reset the defaut link style when used as a button */\n user-select: none;\n}\n\n/* This is a Firefox-specific style because Firefox adds a focusring at a bad\n * position. We're adding our own below. */\n.photon-button::-moz-focus-inner {\n border: none;\n}\n\n.photon-button:disabled {\n opacity: 0.4;\n}\n\n/* Note: we're using :not(:disabled) instead of :enabled so that this can apply\n * to non-input elements too. */\n.photon-button:hover:not(:disabled) {\n background-color: var(--grey-90-a20);\n}\n\n.photon-button:hover:active:not(:disabled) {\n background-color: var(--grey-90-a30);\n}\n\n.photon-button-primary,\n.photon-button-destructive,\n.photon-button-default {\n min-width: 132px;\n height: 32px;\n padding: 0 8px;\n font-size: 13px;\n}\n\n.photon-button-primary {\n background-color: var(--blue-60);\n color: #fff;\n}\n\n.photon-button-primary:hover:not(:disabled) {\n background-color: var(--blue-70);\n}\n\n.photon-button-primary:hover:active:not(:disabled) {\n background-color: var(--blue-80);\n}\n\n/* Use this class for destructive actions only. */\n.photon-button-destructive {\n background-color: var(--red-60);\n color: #fff;\n}\n\n.photon-button-destructive:hover:not(:disabled) {\n background-color: var(--red-70);\n}\n\n.photon-button-destructive:hover:active:not(:disabled) {\n background-color: var(--red-80);\n}\n\n.photon-button-ghost {\n width: 32px;\n height: 32px;\n background-color: transparent;\n}\n\n.photon-button-ghost:hover:not(:disabled),\n.photon-button-ghost--checked {\n background-color: var(--grey-90-a10);\n}\n\n.photon-button-ghost:hover:active:not(:disabled) {\n background-color: var(--grey-90-a20);\n}\n\n.photon-button-micro {\n height: 24px;\n}\n"],sourceRoot:""}]);const s=i},9578:(e,t,n)=>{"use strict";n.d(t,{Z:()=>m});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a),s=n(1667),l=n.n(s),c=new URL(n(2460),n.b),d=new URL(n(4177),n.b),u=i()(o()),h=l()(c),p=l()(d);u.push([e.id,`.photon-checkbox{appearance:none;background-color:var(--grey-90-a10);border:1px solid var(--grey-90-a30);border-radius:2px;padding:0;position:relative}.photon-checkbox:focus-visible{border:none}.photon-checkbox-default{height:16px;margin:0 4px;width:16px}.photon-checkbox-micro{height:13px;margin:0 3px;width:13px}.photon-checkbox:hover:not([disabled]){background-color:var(--grey-90-a20)}.photon-checkbox:checked:not([disabled]){background-color:var(--blue-60);border:none}.photon-checkbox:hover:active:not([disabled]){background-color:var(--grey-90-a30)}.photon-checkbox-default:checked:not([disabled]){background-image:url(${h})}.photon-checkbox-micro:checked:not([disabled]){background-image:url(${p})}.photon-checkbox:checked:hover:not([disabled]){background-color:var(--blue-70)}.photon-checkbox:checked:hover:active:not([disabled]){background-color:var(--blue-80)}`,"",{version:3,sources:["webpack://./res/css/photon/checkbox.css"],names:[],mappings:"AAIA,iBAKE,eAAgB,CAChB,mCAAoC,CAHpC,mCAAoC,CACpC,iBAAkB,CAFlB,SAAU,CADV,iBAMF,CAGA,+BACE,WACF,CAGA,yBAEE,WAAY,CACZ,YAAa,CAFb,UAGF,CAGA,uBAEE,WAAY,CACZ,YAAa,CAFb,UAGF,CAEA,uCACE,mCACF,CAEA,yCAEE,+BAAgC,CADhC,WAEF,CAEA,8CACE,mCACF,CAEA,iDACE,wDACF,CAEA,+CACE,wDACF,CAEA,+CACE,+BACF,CAEA,sDACE,+BACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.photon-checkbox {\n position: relative;\n padding: 0;\n border: 1px solid var(--grey-90-a30);\n border-radius: 2px;\n appearance: none;\n background-color: var(--grey-90-a10);\n}\n\n/* Remove the border, as it compets with box-shadow styles applied with focus.css */\n.photon-checkbox:focus-visible {\n border: none;\n}\n\n/* Use this class with the photon-checkbox for the canonical photon styling. */\n.photon-checkbox-default {\n width: 16px;\n height: 16px;\n margin: 0 4px;\n}\n\n/* Use this class with the photon-checkbox for the custom micro variant. */\n.photon-checkbox-micro {\n width: 13px;\n height: 13px;\n margin: 0 3px;\n}\n\n.photon-checkbox:hover:not([disabled]) {\n background-color: var(--grey-90-a20);\n}\n\n.photon-checkbox:checked:not([disabled]) {\n border: none;\n background-color: var(--blue-60);\n}\n\n.photon-checkbox:hover:active:not([disabled]) {\n background-color: var(--grey-90-a30);\n}\n\n.photon-checkbox-default:checked:not([disabled]) {\n background-image: url(../../img/svg/checkbox-check-16.svg);\n}\n\n.photon-checkbox-micro:checked:not([disabled]) {\n background-image: url(../../img/svg/checkbox-check-13.svg);\n}\n\n.photon-checkbox:checked:hover:not([disabled]) {\n background-color: var(--blue-70);\n}\n\n.photon-checkbox:checked:hover:active:not([disabled]) {\n background-color: var(--blue-80);\n}\n"],sourceRoot:""}]);const m=u},8232:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".confirmDialogTitle{font-size:1.2em;margin:0;overflow:hidden;text-overflow:ellipsis}.confirmDialogContent{margin:16px 0}.confirmDialogButtons{display:flex;gap:8px}.confirmDialogButtons>.photon-button{flex:auto}","",{version:3,sources:["webpack://./res/css/photon/confirm-dialog.css"],names:[],mappings:"AAkCA,oBAGE,eAAgB,CADhB,QAAS,CADT,eAAgB,CAGhB,sBACF,CAEA,sBACE,aACF,CAEA,sBACE,YAAa,CACb,OACF,CAEA,qCACE,SACF",sourcesContent:['/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n/* This implements a confirm dialog using Photon components. \n * While not formally part of photon.\n *\n * This is how we can use it:\n *\n * <div className="confirmDialog">\n * <h3 className="confirmDialogTitle">\n * Wonderful title\n * </h3>\n * <div className="confirmDialogContent">\n * Wonderful content\n * </div>\n * <div className="confirmDialogButtons">\n * <input\n * type="button"\n * className="photon-button photon-button-default"\n * value="Cancel"\n * onClick={doSomethingOnCancel}\n * />\n * <input\n * type="button"\n * className="photon-button photon-button-destructive"\n * value="Confirm"\n * onClick={doSomethingOnConfirm}\n * />\n * </div>\n * </div>\n *\n */\n\n.confirmDialogTitle {\n overflow: hidden;\n margin: 0;\n font-size: 1.2em;\n text-overflow: ellipsis;\n}\n\n.confirmDialogContent {\n margin: 16px 0;\n}\n\n.confirmDialogButtons {\n display: flex;\n gap: 8px;\n}\n\n.confirmDialogButtons > .photon-button {\n flex: auto;\n}\n'],sourceRoot:""}]);const s=i},7904:(e,t,n)=>{"use strict";n.d(t,{Z:()=>g});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a),s=n(8075),l=n(6983),c=n(9578),d=n(1320),u=n(5173),h=n(3966),p=n(6775),m=n(8232),f=i()(o());f.i(s.Z),f.i(l.Z),f.i(c.Z),f.i(d.Z),f.i(u.Z),f.i(h.Z),f.i(p.Z),f.i(m.Z),f.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);const g=f},1320:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".photon-input{border:1px solid var(--grey-90-a20);border-radius:2px;box-shadow:none;height:32px;padding:0 8px}.photon-input:hover{border-color:var(--grey-90-a30)}.photon-input:focus-visible,.photon-input:focus-visible:invalid{border:1px solid var(--blue-50);box-shadow:0 0 0 1px var(--blue-50),0 0 0 4px var(--blue-50-a30);outline:0}.photon-input:invalid:not(:placeholder-shown){border:1px solid var(--red-60);box-shadow:0 0 0 1px var(--red-60),0 0 0 4px var(--red-60-a30)}","",{version:3,sources:["webpack://./res/css/photon/input.css"],names:[],mappings:"AAKA,cAGE,mCAAoC,CACpC,iBAAkB,CAClB,eAAgB,CAJhB,WAAY,CACZ,aAIF,CAEA,oBACE,+BACF,CAIA,gEAEE,+BAAgC,CAChC,gEAE8B,CAC9B,SACF,CAEA,8CACE,8BAA+B,CAC/B,8DAGF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n/* See https://design.firefox.com/photon/components/input-fields.html for the spec */\n.photon-input {\n height: 32px;\n padding: 0 8px;\n border: 1px solid var(--grey-90-a20);\n border-radius: 2px;\n box-shadow: none; /* remove the default Firefox style */\n}\n\n.photon-input:hover {\n border-color: var(--grey-90-a30);\n}\n\n/* The second selector is only here to have a specificity higher than the one in\n * `.photon-input:invalid:not(:placeholder-shown)`. */\n.photon-input:focus-visible,\n.photon-input:focus-visible:invalid {\n border: 1px solid var(--blue-50);\n box-shadow:\n 0 0 0 1px var(--blue-50),\n 0 0 0 4px var(--blue-50-a30);\n outline: 0;\n}\n\n.photon-input:invalid:not(:placeholder-shown) {\n border: 1px solid var(--red-60);\n box-shadow:\n 0 0 0 1px var(--red-60),\n 0 0 0 4px var(--red-60-a30);\n}\n"],sourceRoot:""}]);const s=i},5173:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".photon-label{align-items:center;color:var(--grey-90);display:inline-flex;padding:3px 0}.photon-label-default{font-size:13px}.photon-label-micro{font-size:11px}.photon-label-horiz-padding{padding:0 3px}","",{version:3,sources:["webpack://./res/css/photon/label.css"],names:[],mappings:"AAIA,cAEE,kBAAmB,CAEnB,oBAAqB,CAHrB,mBAAoB,CAEpB,aAEF,CAGA,sBACE,cACF,CAGA,oBACE,cACF,CAEA,4BACE,aACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.photon-label {\n display: inline-flex;\n align-items: center;\n padding: 3px 0;\n color: var(--grey-90);\n}\n\n/* Use this class with the photon-label for the canonical photon styling. */\n.photon-label-default {\n font-size: 13px;\n}\n\n/* Use this class with the photon-label for the custom micro variant styling. */\n.photon-label-micro {\n font-size: 11px;\n}\n\n.photon-label-horiz-padding {\n padding: 0 3px;\n}\n"],sourceRoot:""}]);const s=i},3966:(e,t,n)=>{"use strict";n.d(t,{Z:()=>y});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a),s=n(1667),l=n.n(s),c=new URL(n(9337),n.b),d=new URL(n(8115),n.b),u=new URL(n(5107),n.b),h=new URL(n(2838),n.b),p=new URL(n(9325),n.b),m=i()(o()),f=l()(c),g=l()(d),A=l()(u),b=l()(h),C=l()(p);m.push([e.id,`.photon-message-bar{background:url(${f}) no-repeat 8px 8px/16px 16px var(--grey-20);border-radius:4px;box-sizing:border-box;color:var(--grey-90);display:flex;flex-wrap:nowrap;font-size:13px;font-weight:400;line-height:1.4;min-height:32px;padding:4px 4px 4px 32px}.photon-message-bar-action-button{flex:none}.photon-message-bar-close-button{background:url(${g}) no-repeat 50%/16px 16px;flex:none;height:24px;margin-left:auto;width:24px}.photon-message-bar-inner-content{display:flex;flex-wrap:wrap;gap:8px;padding-right:8px}.photon-message-bar-inner-text{padding:2.9px 0}.photon-message-bar-error{background-color:var(--red-60);background-image:url(${A});color:#fff}.photon-message-bar-warning{background-color:var(--yellow-50);background-image:url(${b});color:var(--yellow-90)}.photon-message-bar-error .photon-message-bar-close-button{background-image:url(${C})}.photon-message-bar-close-button:hover{background-color:var(--grey-90-a10)}.photon-message-bar-error .photon-message-bar-action-button,.photon-message-bar-error .photon-message-bar-close-button:hover{background-color:var(--red-70);color:#fff}.photon-message-bar-warning .photon-message-bar-action-button,.photon-message-bar-warning .photon-message-bar-close-button:hover{background-color:var(--yellow-60)}.photon-message-bar-close-button:hover:active{background-color:var(--grey-90-a20)}.photon-message-bar-error .photon-message-bar-action-button:hover,.photon-message-bar-error .photon-message-bar-close-button:hover:active{background-color:var(--red-80)}.photon-message-bar-warning .photon-message-bar-action-button:hover,.photon-message-bar-warning .photon-message-bar-close-button:hover:active{background-color:var(--yellow-70);color:#fff}.photon-message-bar-error .photon-message-bar-action-button:hover:active{background-color:var(--red-90)}.photon-message-bar-warning .photon-message-bar-action-button:hover:active{background-color:var(--yellow-80)}`,"",{version:3,sources:["webpack://./res/css/photon/message-bar.css"],names:[],mappings:"AAKA,oBAeE,6FACgB,CANhB,iBAAkB,CAPlB,qBAAsB,CActB,oBAAqB,CAhBrB,YAAa,CAGb,gBAAiB,CAcjB,cAAe,CACf,eAAgB,CAChB,eAAgB,CAlBhB,eAAgB,CAOhB,wBAYF,CAEA,kCACE,SACF,CAEA,iCAKE,0EAA0E,CAF1E,SAAU,CADV,WAAY,CAEZ,gBAAiB,CAHjB,UAKF,CAEA,kCACE,YAAa,CACb,cAAe,CAEf,OAAQ,CADR,iBAEF,CAEA,+BAUE,eACF,CAEA,0BACE,8BAA+B,CAC/B,wDAA8C,CAC9C,UACF,CAEA,4BACE,iCAAkC,CAClC,wDAAgD,CAChD,sBACF,CAEA,2DACE,wDACF,CAIA,uCACE,mCACF,CAEA,6HAEE,8BAA+B,CAC/B,UACF,CAEA,iIAEE,iCACF,CAEA,8CACE,mCACF,CAEA,0IAEE,8BACF,CAEA,8IAEE,iCAAkC,CAClC,UACF,CAEA,yEACE,8BACF,CAEA,2EACE,iCACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n/* See https://design.firefox.com/photon/components/message-bars.html */\n.photon-message-bar {\n display: flex;\n min-height: 32px;\n box-sizing: border-box;\n flex-wrap: nowrap;\n\n /* Note: 32px is: 4px (left padding for the message bar) + 4px (left padding\n * for the icon) + 16px (icon width) + 4px (right padding for the icon) + 4px\n * (space between icon and text) */\n padding: 4px 4px 4px 32px;\n border-radius: 4px;\n\n /* Note: 8px is: 4px (left padding for the message bar) + 4px (left padding\n * for the icon). And same for the top positioning, because we want the icon\n * to stick at the top when the text is multiline */\n background: url(../../img/svg/info-icon.svg) no-repeat 8px 8px / 16px 16px\n var(--grey-20);\n color: var(--grey-90);\n font-size: 13px;\n font-weight: 400;\n line-height: 1.4;\n}\n\n.photon-message-bar-action-button {\n flex: none;\n}\n\n.photon-message-bar-close-button {\n width: 24px;\n height: 24px;\n flex: none;\n margin-left: auto;\n background: url(../../img/svg/close-dark.svg) no-repeat center / 16px 16px;\n}\n\n.photon-message-bar-inner-content {\n display: flex;\n flex-wrap: wrap;\n padding-right: 8px;\n gap: 8px;\n}\n\n.photon-message-bar-inner-text {\n /* This padding is carefully computed so that multi-line message bars have the\n * same top padding than single-line message bars. Having this property\n * shouldn't change anything for single-line message bars.\n * It's computed like this:\n * height of single-line message bars is 32px\n * padding of the message-bar div is 4px\n * height of the inner text is line-height * font-size = 1.4 * 13px = 18.2px\n * => (32 - 4 - 18.2) / 2 = 2.9px\n */\n padding: 2.9px 0;\n}\n\n.photon-message-bar-error {\n background-color: var(--red-60);\n background-image: url(../../img/svg/error.svg);\n color: #fff;\n}\n\n.photon-message-bar-warning {\n background-color: var(--yellow-50);\n background-image: url(../../img/svg/warning.svg);\n color: var(--yellow-90);\n}\n\n.photon-message-bar-error .photon-message-bar-close-button {\n background-image: url(../../img/svg/close-light.svg);\n}\n\n/* The default styles for this button are copied from the ghost button, mostly\n * for ease of usage. */\n.photon-message-bar-close-button:hover {\n background-color: var(--grey-90-a10);\n}\n\n.photon-message-bar-error .photon-message-bar-action-button,\n.photon-message-bar-error .photon-message-bar-close-button:hover {\n background-color: var(--red-70);\n color: #fff;\n}\n\n.photon-message-bar-warning .photon-message-bar-action-button,\n.photon-message-bar-warning .photon-message-bar-close-button:hover {\n background-color: var(--yellow-60);\n}\n\n.photon-message-bar-close-button:hover:active {\n background-color: var(--grey-90-a20);\n}\n\n.photon-message-bar-error .photon-message-bar-action-button:hover,\n.photon-message-bar-error .photon-message-bar-close-button:hover:active {\n background-color: var(--red-80);\n}\n\n.photon-message-bar-warning .photon-message-bar-action-button:hover,\n.photon-message-bar-warning .photon-message-bar-close-button:hover:active {\n background-color: var(--yellow-70);\n color: #fff;\n}\n\n.photon-message-bar-error .photon-message-bar-action-button:hover:active {\n background-color: var(--red-90);\n}\n\n.photon-message-bar-warning .photon-message-bar-action-button:hover:active {\n background-color: var(--yellow-80);\n}\n"],sourceRoot:""}]);const y=m},6775:(e,t,n)=>{"use strict";n.d(t,{Z:()=>m});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a),s=n(1667),l=n.n(s),c=new URL(n(4649),n.b),d=new URL(n(4567),n.b),u=i()(o()),h=l()(c),p=l()(d);u.push([e.id,`.photon-radio{appearance:none;background:none;background-color:var(--grey-90-a10);border:1px solid var(--grey-90-a30);border-radius:8px}.photon-radio-default{height:16px;margin:0 4px;width:16px}.photon-radio-micro{height:13px;margin:0 3px;width:13px}.photon-radio:hover{background-color:var(--grey-90-a20)}.photon-radio:checked{background-color:var(--blue-60);border:none}.photon-radio:hover:active{background-color:var(--grey-90-a30)}.photon-radio-default:checked{background-image:url(${h})}.photon-radio-micro:checked{background-image:url(${p})}.photon-radio:checked:hover{background-color:var(--blue-70)}.photon-radio:checked:hover:active{background-color:var(--blue-80)}`,"",{version:3,sources:["webpack://./res/css/photon/radio-button.css"],names:[],mappings:"AAIA,cAGE,eAAgB,CAChB,eAAgB,CAChB,mCAAoC,CAJpC,mCAAoC,CACpC,iBAIF,CAGA,sBAEE,WAAY,CACZ,YAAa,CAFb,UAGF,CAGA,oBAEE,WAAY,CACZ,YAAa,CAFb,UAGF,CAEA,oBACE,mCACF,CAEA,sBAEE,+BAAgC,CADhC,WAEF,CAEA,2BACE,mCACF,CAEA,8BACE,wDACF,CAEA,4BACE,wDACF,CAEA,4BACE,+BACF,CAEA,mCACE,+BACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.photon-radio {\n border: 1px solid var(--grey-90-a30);\n border-radius: 8px;\n appearance: none;\n background: none;\n background-color: var(--grey-90-a10);\n}\n\n/* Use this class with the photon-radio for the canonical photon styling. */\n.photon-radio-default {\n width: 16px;\n height: 16px;\n margin: 0 4px;\n}\n\n/* Use this class with the photon-radio for the custom micro variant styling. */\n.photon-radio-micro {\n width: 13px;\n height: 13px;\n margin: 0 3px;\n}\n\n.photon-radio:hover {\n background-color: var(--grey-90-a20);\n}\n\n.photon-radio:checked {\n border: none;\n background-color: var(--blue-60);\n}\n\n.photon-radio:hover:active {\n background-color: var(--grey-90-a30);\n}\n\n.photon-radio-default:checked {\n background-image: url(../../img/svg/radiobutton-marker-16.svg);\n}\n\n.photon-radio-micro:checked {\n background-image: url(../../img/svg/radiobutton-marker-13.svg);\n}\n\n.photon-radio:checked:hover {\n background-color: var(--blue-70);\n}\n\n.photon-radio:checked:hover:active {\n background-color: var(--blue-80);\n}\n"],sourceRoot:""}]);const m=u},8075:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".photon-display-20{font-size:36px;font-weight:200}.photon-title-40{font-size:28px;font-weight:300}.photon-title-30{font-size:22px;font-weight:300}.photon-title-20{font-size:17px;font-weight:700}.photon-title-10{font-size:13px;font-weight:700}.photon-body-30{font-size:17px;font-weight:400}.photon-body-20,.photon-caption-30{font-size:15px;font-weight:400}.photon-body-10,.photon-caption-20{font-size:13px;font-weight:400}.photon-caption-10{font-size:11px;font-weight:400}","",{version:3,sources:["webpack://./res/css/photon/typography.css"],names:[],mappings:"AAkBA,mBACE,cAAe,CACf,eACF,CAEA,iBACE,cAAe,CACf,eACF,CAEA,iBACE,cAAe,CACf,eACF,CAEA,iBACE,cAAe,CAGf,eACF,CAEA,iBACE,cAAe,CAGf,eACF,CAEA,gBACE,cAAe,CACf,eACF,CAEA,mCAEE,cAAe,CACf,eACF,CAEA,mCAEE,cAAe,CACf,eACF,CAEA,mBACE,cAAe,CACf,eACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n/* Specification at https://design.firefox.com/photon/visuals/typography.html */\n\n/* The idea is to use the same numbers for the same context (eg title 20 with\n * body 20 and caption 20), and of course use the hierarchy of titles when\n * needed.\n *\n * When using these styles one has to take care to colors and margins as well.\n * Margins are well described in\n * https://design.firefox.com/photon/visuals/grid.html.\n *\n * In the future we may want to make this more generic by applying these styles\n * by default to h1, h2, h3, etc.\n */\n\n.photon-display-20 {\n font-size: 36px;\n font-weight: 200;\n}\n\n.photon-title-40 {\n font-size: 28px;\n font-weight: 300;\n}\n\n.photon-title-30 {\n font-size: 22px;\n font-weight: 300;\n}\n\n.photon-title-20 {\n font-size: 17px;\n\n /* This should be 500 instead of bold, but 500 isn't available on all fonts */\n font-weight: bold;\n}\n\n.photon-title-10 {\n font-size: 13px;\n\n /* This should be 500 instead of bold, but 500 isn't available on all fonts */\n font-weight: bold;\n}\n\n.photon-body-30 {\n font-size: 17px;\n font-weight: 400;\n}\n\n.photon-body-20,\n.photon-caption-30 {\n font-size: 15px;\n font-weight: 400;\n}\n\n.photon-body-10,\n.photon-caption-20 {\n font-size: 13px;\n font-weight: 400;\n}\n\n.photon-caption-10 {\n font-size: 11px;\n font-weight: 400;\n}\n"],sourceRoot:""}]);const s=i},4172:(e,t,n)=>{"use strict";n.d(t,{Z:()=>c});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a),s=n(6587),l=i()(o());l.i(s.Z),l.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);const c=l},6587:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".protocol-display-xxl{font-size:64px;font-weight:700;line-height:1.1}.protocol-display-xl{font-size:56px;font-weight:700;line-height:1.1}.protocol-display-lg{font-size:48px;font-weight:700;line-height:1.1}.protocol-display-md{font-size:40px;font-weight:700;line-height:1.1}.protocol-display-sm{font-size:32px;font-weight:700;line-height:1.1}.protocol-display-xs{font-size:24px;font-weight:700;line-height:1.1}.protocol-display-xxs{font-size:16px;font-weight:700;line-height:1.1}.protocol-body-lg{font-size:18px;line-height:1.5}.protocol-body-md{font-size:16px;line-height:1.5}.protocol-body-sm{font-size:14px;line-height:1.5}.protocol-body-xs{font-size:12px;line-height:1.5}","",{version:3,sources:["webpack://./res/css/protocol/typography.css"],names:[],mappings:"AAYA,sBACE,cAAe,CACf,eAAiB,CACjB,eACF,CAEA,qBACE,cAAe,CACf,eAAiB,CACjB,eACF,CAEA,qBACE,cAAe,CACf,eAAiB,CACjB,eACF,CAEA,qBACE,cAAe,CACf,eAAiB,CACjB,eACF,CAEA,qBACE,cAAe,CACf,eAAiB,CACjB,eACF,CAEA,qBACE,cAAe,CACf,eAAiB,CACjB,eACF,CAEA,sBACE,cAAe,CACf,eAAiB,CACjB,eACF,CAEA,kBACE,cAAe,CACf,eACF,CAEA,kBACE,cAAe,CACf,eACF,CAEA,kBACE,cAAe,CACf,eACF,CAEA,kBACE,cAAe,CACf,eACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n/* Specification at https://protocol.mozilla.org/fundamentals/typography.html\n * This is the protocol styling guide, which is different than the photon design\n * guide. We can use it for content pages (as opposed to the app).\n *\n * In the future we may want to make this more generic by applying these styles\n * by default to h1, h2, h3, etc, in content pages.\n */\n\n.protocol-display-xxl {\n font-size: 64px;\n font-weight: bold;\n line-height: 1.1;\n}\n\n.protocol-display-xl {\n font-size: 56px;\n font-weight: bold;\n line-height: 1.1;\n}\n\n.protocol-display-lg {\n font-size: 48px;\n font-weight: bold;\n line-height: 1.1;\n}\n\n.protocol-display-md {\n font-size: 40px;\n font-weight: bold;\n line-height: 1.1;\n}\n\n.protocol-display-sm {\n font-size: 32px;\n font-weight: bold;\n line-height: 1.1;\n}\n\n.protocol-display-xs {\n font-size: 24px;\n font-weight: bold;\n line-height: 1.1;\n}\n\n.protocol-display-xxs {\n font-size: 16px;\n font-weight: bold;\n line-height: 1.1;\n}\n\n.protocol-body-lg {\n font-size: 18px;\n line-height: 1.5;\n}\n\n.protocol-body-md {\n font-size: 16px;\n line-height: 1.5;\n}\n\n.protocol-body-sm {\n font-size: 14px;\n line-height: 1.5;\n}\n\n.protocol-body-xs {\n font-size: 12px;\n line-height: 1.5;\n}\n"],sourceRoot:""}]);const s=i},776:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,"body,html{display:flex;flex:1;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen-Sans,Ubuntu,Noto Sans,Liberation Sans,Cantarell,Helvetica Neue,sans-serif;font-size:11px;font-variant-numeric:tabular-nums;height:100%;margin:0;min-width:0;overscroll-behavior:none;padding:0}:root{--animation-curve:cubic-bezier(0.07,0.95,0,1);color:var(--grey-90)}.profileFilterNavigator{flex-shrink:1;height:24px}.treeAndSidebarWrapper{display:flex;flex:1;flex-flow:column nowrap}","",{version:3,sources:["webpack://./res/css/style.css"],names:[],mappings:"AAIA,UAEE,YAAa,CAGb,MAAO,CAUP,6IAE8B,CAC9B,cAAe,CAGf,iCAAkC,CAjBlC,WAAY,CAGZ,QAAS,CAJT,WAAY,CAsBZ,wBAAyB,CAnBzB,SAsBF,CAEA,MAEE,6CAAiD,CAEjD,oBACF,CAEA,wBAEE,aAAc,CADd,WAEF,CAEA,uBACE,YAAa,CACb,MAAO,CACP,uBACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\nhtml,\nbody {\n display: flex;\n min-width: 0; /* This allows Flexible Layout to shrink this further than its min-content */\n height: 100%;\n flex: 1;\n padding: 0;\n margin: 0;\n\n /* This line has been stolen from\n * https://css-tricks.com/os-specific-fonts-css/\n * Just Noto Sans and Liberation Sans have been inserted before \"Cantarell\"\n * (used on Linux Gnome), because it lacks a glyph for the symbol µ.\n * Please keep it synced with res/photon/style.css.\n */\n font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto,\n Oxygen-Sans, Ubuntu, 'Noto Sans', 'Liberation Sans', Cantarell,\n 'Helvetica Neue', sans-serif;\n font-size: 11px;\n\n /* equal size all numbers, so that longer numbers are larger */\n font-variant-numeric: tabular-nums;\n\n /* Disable the \"rubberband\" overscrolling effect in Chrome. This happens when\n * using the charts and the scroll wheel. */\n overscroll-behavior: none;\n\n /* background-color is defined in the HTML file to prevent flashing a white screen. */\n}\n\n:root {\n /* Photon animation curve */\n --animation-curve: cubic-bezier(0.07, 0.95, 0, 1);\n\n color: var(--grey-90);\n}\n\n.profileFilterNavigator {\n height: 24px;\n flex-shrink: 1;\n}\n\n.treeAndSidebarWrapper {\n display: flex;\n flex: 1;\n flex-flow: column nowrap;\n}\n"],sourceRoot:""}]);const s=i},6031:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".appHeader{border-bottom:1px solid #ddd;display:flex;font-size:1.5em;justify-content:space-between;margin:0 -.2em .5em;padding-bottom:.5em}.appHeaderLink{color:inherit;text-decoration:none}.appHeaderLink:hover{text-decoration:underline}.appHeaderSlogan{margin:0 .2em}.appHeaderSubtext{font-weight:400}.appHeaderGithubIcon{margin:0 .2em;transition:opacity .25s var(--animation-curve)}.appHeaderGithubIcon svg{vertical-align:middle}.appHeaderGithubIcon:hover{opacity:.5}","",{version:3,sources:["webpack://./src/components/app/AppHeader.css"],names:[],mappings:"AAIA,WAIE,4BAA6B,CAH7B,YAAa,CAOb,eAAgB,CANhB,6BAA8B,CAK9B,mBAAsB,CAJtB,mBAMF,CAEA,eACE,aAAc,CACd,oBACF,CAGA,qBACE,yBACF,CAEA,iBACE,aACF,CAEA,kBACE,eACF,CAEA,qBACE,aAAe,CACf,8CACF,CAEA,yBACE,qBACF,CAEA,2BACE,UACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.appHeader {\n display: flex;\n justify-content: space-between;\n padding-bottom: 0.5em;\n border-bottom: 1px solid #ddd;\n\n /* Negative margin is here to compensate for the children's margins */\n margin: 0 -0.2em 0.5em;\n font-size: 1.5em;\n}\n\n.appHeaderLink {\n color: inherit;\n text-decoration: none;\n}\n\n/* Note that :focus-visible styles are defined in focus.css */\n.appHeaderLink:hover {\n text-decoration: underline;\n}\n\n.appHeaderSlogan {\n margin: 0 0.2em;\n}\n\n.appHeaderSubtext {\n font-weight: normal;\n}\n\n.appHeaderGithubIcon {\n margin: 0 0.2em;\n transition: opacity 250ms var(--animation-curve);\n}\n\n.appHeaderGithubIcon svg {\n vertical-align: middle;\n}\n\n.appHeaderGithubIcon:hover {\n opacity: 0.5;\n}\n"],sourceRoot:""}]);const s=i},2920:(e,t,n)=>{"use strict";n.d(t,{Z:()=>b});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a),s=n(1667),l=n.n(s),c=new URL(n(8115),n.b),d=new URL(n(8144),n.b),u=new URL(n(7928),n.b),h=new URL(n(5107),n.b),p=i()(o()),m=l()(c),f=l()(d),g=l()(u),A=l()(h);p.push([e.id,`.bottom-box-pane{display:flex;flex-flow:column nowrap;height:100%}.bottom-assemblyview-wrapper,.bottom-sourceview-wrapper{background:var(--grey-20);display:flex;flex:1;flex-flow:column;min-height:0;position:relative}.bottom-box .layout-splitter{background-color:var(--grey-30)!important;border:none;position:relative;width:1px}.bottom-box .layout-splitter:before{content:"";display:block;inset:0 -3px;position:absolute;z-index:1}.bottom-box-bar{align-items:center;background:var(--grey-10);border-bottom:1px solid var(--grey-30);display:flex;flex-flow:row;height:24px;justify-content:space-between;line-height:18px;overflow:hidden}.bottom-box-title{font:inherit;margin:0 8px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bottom-box-header-trailing-buttons{align-items:center;display:flex;flex-flow:row nowrap;height:100%}.bottom-assembly-button,.bottom-close-button{background-position:50%;background-repeat:no-repeat;background-size:16px 16px;flex-shrink:0;height:24px;width:24px}.bottom-close-button{background-image:url(${m})}.bottom-assembly-button{background-image:url(${f})}.assemblyCodeErrorOverlay,.codeLoadingOverlay,.sourceCodeErrorOverlay{align-items:center;background-color:#f0f0f0cc;border-radius:10px;display:flex;flex-flow:row;gap:15px;height:min-content;inset:0;margin:auto;max-width:min(500px,100%);min-width:200px;padding:15px;position:absolute;width:max-content;word-break:break-word}.codeLoadingOverlay:before{background:url(${g}) 50%/32px 32px no-repeat;content:"";display:block;flex-shrink:0;height:32px;width:32px}.assemblyCodeErrorOverlay:before,.sourceCodeErrorOverlay:before{background:url(${A}) 50%/32px 32px no-repeat;content:"";display:block;filter:brightness(70%) drop-shadow(0 1px rgb(255 255 255/.5));flex-shrink:0;height:50px;width:50px}.codeErrorOverlay{padding-left:20px}`,"",{version:3,sources:["webpack://./src/components/app/BottomBox.css"],names:[],mappings:"AAIA,iBACE,YAAa,CAEb,uBAAwB,CADxB,WAEF,CAEA,wDAOE,yBAA0B,CAJ1B,YAAa,CAEb,MAAO,CACP,gBAAiB,CAFjB,YAAa,CAFb,iBAMF,CAEA,6BAIE,yCAA2C,CAD3C,WAAY,CAFZ,iBAAkB,CAClB,SAGF,CAGA,oCAIE,UAAW,CADX,aAAc,CAEd,YAAa,CAJb,iBAAkB,CAClB,SAIF,CAEA,gBAKE,kBAAmB,CAGnB,yBAA0B,CAD1B,sCAAuC,CANvC,YAAa,CAGb,aAAc,CADd,WAAY,CAGZ,6BAA8B,CAG9B,gBAAiB,CAPjB,eAQF,CAEA,kBAGE,YAAa,CADb,YAAa,CADb,eAAgB,CAGhB,sBAAuB,CACvB,kBACF,CAEA,oCAIE,kBAAmB,CAHnB,YAAa,CAEb,oBAAqB,CADrB,WAGF,CAEA,6CAKE,uBAA2B,CAC3B,2BAA4B,CAC5B,yBAA0B,CAH1B,aAAc,CADd,WAAY,CADZ,UAMF,CAEA,qBACE,wDACF,CAEA,wBACE,wDACF,CAEA,sEAgBE,kBAAmB,CAInB,0BAAwC,CAFxC,kBAAmB,CARnB,YAAa,CAKb,aAAc,CAMd,QAAS,CAPT,kBAAmB,CAQnB,OAAQ,CAHR,WAAY,CANZ,yBAA2B,CAD3B,eAAgB,CAKhB,YAAa,CARb,iBAAkB,CAElB,iBAAkB,CAYlB,qBACF,CAGA,2BAKE,0EAAyE,CACzE,UAAW,CALX,aAAc,CAGd,aAAc,CADd,WAAY,CADZ,UAKF,CAGA,gEAME,0EAA2E,CAC3E,UAAW,CALX,aAAc,CAMd,6DAAiE,CAHjE,aAAc,CADd,WAAY,CADZ,UAMF,CAEA,kBACE,iBACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.bottom-box-pane {\n display: flex;\n height: 100%; /* direct child of SplitterLayout */\n flex-flow: column nowrap;\n}\n\n.bottom-sourceview-wrapper,\n.bottom-assemblyview-wrapper {\n position: relative; /* containing block for status overlay */\n display: flex;\n min-height: 0;\n flex: 1;\n flex-flow: column;\n background: var(--grey-20);\n}\n\n.bottom-box .layout-splitter {\n position: relative; /* containing block for absolute ::before */\n width: 1px;\n border: none;\n background-color: var(--grey-30) !important;\n}\n\n/* Provide 3px extra grabbable surface on each side of the splitter */\n.bottom-box .layout-splitter::before {\n position: absolute;\n z-index: 1;\n display: block;\n content: '';\n inset: 0 -3px;\n}\n\n.bottom-box-bar {\n display: flex;\n overflow: hidden;\n height: 24px;\n flex-flow: row;\n align-items: center;\n justify-content: space-between;\n border-bottom: 1px solid var(--grey-30);\n background: var(--grey-10);\n line-height: 18px;\n}\n\n.bottom-box-title {\n overflow: hidden;\n margin: 0 8px;\n font: inherit;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.bottom-box-header-trailing-buttons {\n display: flex;\n height: 100%;\n flex-flow: row nowrap;\n align-items: center;\n}\n\n.bottom-close-button,\n.bottom-assembly-button {\n width: 24px;\n height: 24px;\n flex-shrink: 0;\n background-position: center;\n background-repeat: no-repeat;\n background-size: 16px 16px;\n}\n\n.bottom-close-button {\n background-image: url(/res/img/svg/close-dark.svg);\n}\n\n.bottom-assembly-button {\n background-image: url(/res/img/svg/asm-icon.svg);\n}\n\n.codeLoadingOverlay,\n.sourceCodeErrorOverlay,\n.assemblyCodeErrorOverlay {\n /**\n * Put the overlay on top of everything in .bottom-main, but centered\n * horizontally and vertically. We center using margin: auto, and enforce\n * maximum sizes so that the line numbers and timings are still visible.\n */\n\n position: absolute;\n display: flex;\n width: max-content;\n min-width: 200px;\n max-width: min(500px, 100%);\n height: min-content;\n flex-flow: row;\n align-items: center;\n padding: 15px;\n border-radius: 10px;\n margin: auto;\n background-color: rgb(240 240 240 / 0.8);\n gap: 15px;\n inset: 0;\n word-break: break-word;\n}\n\n/* Use ::before to add a loading spinner image */\n.codeLoadingOverlay::before {\n display: block;\n width: 32px;\n height: 32px;\n flex-shrink: 0;\n background: url(/res/img/spinner.png) center center / 32px 32px no-repeat;\n content: '';\n}\n\n/* Use ::before to add an alert icon */\n.sourceCodeErrorOverlay::before,\n.assemblyCodeErrorOverlay::before {\n display: block;\n width: 50px;\n height: 50px;\n flex-shrink: 0;\n background: url(/res/img/svg/error.svg) center center / 32px 32px no-repeat;\n content: '';\n filter: brightness(70%) drop-shadow(0 1px rgb(255 255 255 / 0.5));\n}\n\n.codeErrorOverlay {\n padding-left: 20px;\n}\n"],sourceRoot:""}]);const b=p},6528:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".compareHome{background:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 5px 25px #0b1f50;font-size:130%;margin:auto;padding:8em;width:75%}.compareHomeForm{grid-gap:1em;align-items:center;display:grid;grid-template-columns:auto 1fr}.compareHomeSubmitButton{font-size:inherit;grid-column-start:span 2}.compareHomeFormLabel{white-space:nowrap}@media (max-width:450px){.compareHome{padding:1em;width:auto}}","",{version:3,sources:["webpack://./src/components/app/CompareHome.css"],names:[],mappings:"AAAA,aAWE,eAAgB,CALhB,qBAAsB,CACtB,iBAAkB,CAKlB,6BAA8B,CAC9B,cAAe,CALf,WAAY,CAHZ,WAAY,CAHZ,SAYF,CAEA,iBAGE,YAAa,CADb,kBAAmB,CADnB,YAAa,CAGb,8BACF,CAEA,yBACE,iBAAkB,CAClB,wBACF,CAEA,sBACE,kBACF,CAEA,yBACE,aAEE,WAAY,CADZ,UAEF,CACF",sourcesContent:[".compareHome {\n /* Position */\n width: 75%;\n\n /* Box */\n padding: 8em;\n border: 1px solid #ccc;\n border-radius: 3px;\n margin: auto;\n\n /* Other */\n background: #fff;\n box-shadow: 0 5px 25px #0b1f50;\n font-size: 130%;\n}\n\n.compareHomeForm {\n display: grid;\n align-items: center;\n grid-gap: 1em;\n grid-template-columns: auto 1fr;\n}\n\n.compareHomeSubmitButton {\n font-size: inherit; /* override the photon style to make it nicer with the rest of the form. */\n grid-column-start: span 2;\n}\n\n.compareHomeFormLabel {\n white-space: nowrap;\n}\n\n@media (max-width: 450px) {\n .compareHome {\n width: auto;\n padding: 1em;\n }\n}\n"],sourceRoot:""}]);const s=i},8688:(e,t,n)=>{"use strict";n.d(t,{Z:()=>m});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a),s=n(1667),l=n.n(s),c=new URL(n(3973),n.b),d=new URL(n(4295),n.b),u=i()(o()),h=l()(c),p=l()(d);u.push([e.id,`.Details{display:flex;flex:auto;flex-direction:column}.Details-top-bar{align-items:center;background:var(--grey-10);border:solid var(--grey-30);border-width:1px 0;display:flex;flex-flow:row nowrap;justify-content:space-between}.sidebar-open-close-button{background-position:50%;background-repeat:no-repeat;flex:none;height:24px;margin:0 4px;width:24px}.sidebar-open-close-button-isopen{background-image:url(${h})}.sidebar-open-close-button-isclosed{background-image:url(${p})}`,"",{version:3,sources:["webpack://./src/components/app/Details.css"],names:[],mappings:"AAAA,SACE,YAAa,CACb,SAAU,CACV,qBACF,CAGA,iBAGE,kBAAmB,CAInB,yBAA0B,CAF1B,2BAA4B,CAC5B,kBAAmB,CALnB,YAAa,CACb,oBAAqB,CAErB,6BAIF,CAEA,2BAKE,uBAA2B,CAC3B,2BAA4B,CAH5B,SAAU,CADV,WAAY,CAEZ,YAAa,CAHb,UAMF,CAEA,kCACE,wDACF,CAEA,oCACE,wDACF",sourcesContent:[".Details {\n display: flex;\n flex: auto;\n flex-direction: column;\n}\n\n/* contains the tabbar and, if present, the sidebar button */\n.Details-top-bar {\n display: flex;\n flex-flow: row nowrap;\n align-items: center;\n justify-content: space-between; /* This pushes the sidebar button to the right */\n border: solid var(--grey-30);\n border-width: 1px 0;\n background: var(--grey-10);\n}\n\n.sidebar-open-close-button {\n width: 24px;\n height: 24px;\n flex: none;\n margin: 0 4px;\n background-position: center;\n background-repeat: no-repeat;\n}\n\n.sidebar-open-close-button-isopen {\n background-image: url(../../../res/img/svg/pane-collapse.svg);\n}\n\n.sidebar-open-close-button-isclosed {\n background-image: url(../../../res/img/svg/pane-expand.svg);\n}\n"],sourceRoot:""}]);const m=u},3456:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".DetailsContainer .layout-pane>*{box-sizing:border-box;height:100%;width:100%}.DetailsContainer .layout-pane:not(.layout-pane-primary){max-width:600px}.DetailsContainer{position:unset}.DetailsContainer .layout-splitter{background:var(--grey-10);border-left:1px solid var(--grey-30);border-top:1px solid var(--grey-30)}.DetailsContainer .layout-splitter:hover{background:var(--grey-30)}","",{version:3,sources:["webpack://./src/components/app/DetailsContainer.css"],names:[],mappings:"AAAA,iCAGE,qBAAsB,CADtB,WAAY,CADZ,UAGF,CAEA,yDACE,eACF,CAGA,kBAGE,cACF,CAEA,mCAGE,yBAA0B,CAD1B,oCAAqC,CADrC,mCAGF,CAEA,yCACE,yBACF",sourcesContent:[".DetailsContainer .layout-pane > * {\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n}\n\n.DetailsContainer .layout-pane:not(.layout-pane-primary) {\n max-width: 600px;\n}\n\n/* overriding defaults from splitter-layout */\n.DetailsContainer {\n /* SplitterLayout injects position: absolute, this conflicts with our using\n * Flex Layout. */\n position: unset;\n}\n\n.DetailsContainer .layout-splitter {\n border-top: 1px solid var(--grey-30);\n border-left: 1px solid var(--grey-30);\n background: var(--grey-10); /* Same background as sidebars */\n}\n\n.DetailsContainer .layout-splitter:hover {\n background: var(--grey-30); /* same as the border above */\n}\n"],sourceRoot:""}]);const s=i},481:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".dragAndDropArea{display:inherit;isolation:isolate;width:100%}.dragAndDropOverlayWrapper{align-items:stretch;background-color:#ffffffe6;box-sizing:border-box;display:flex;height:100%;justify-content:center;left:0;opacity:0;padding:1em;pointer-events:none;position:absolute;top:0;transition:opacity .2s;width:100%}.dragAndDropOverlayWrapper.dragging{opacity:1}.dragAndDropOverlay{align-items:center;border:2px dashed #888;border-radius:10px;color:#666;display:flex;font-size:30px;justify-content:center;text-align:center;width:100%}","",{version:3,sources:["webpack://./src/components/app/DragAndDrop.css"],names:[],mappings:"AAIA,iBACE,eAAgB,CAEhB,iBAAkB,CADlB,UAEF,CAEA,2BAQE,mBAAoB,CAGpB,0BAAwC,CAJxC,qBAAsB,CAHtB,YAAa,CAEb,WAAY,CAGZ,sBAAuB,CANvB,MAAO,CASP,SAAU,CAFV,WAAY,CAGZ,mBAAoB,CAZpB,iBAAkB,CAClB,KAAM,CAYN,sBAAyB,CATzB,UAUF,CAEA,oCACE,SACF,CAEA,oBAGE,kBAAmB,CAEnB,sBAAuB,CACvB,kBAAmB,CACnB,UAAW,CANX,YAAa,CAOb,cAAe,CAJf,sBAAuB,CAKvB,iBAAkB,CAPlB,UAQF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.dragAndDropArea {\n display: inherit;\n width: 100%;\n isolation: isolate;\n}\n\n.dragAndDropOverlayWrapper {\n position: absolute;\n top: 0;\n left: 0;\n display: flex;\n width: 100%;\n height: 100%;\n box-sizing: border-box;\n align-items: stretch;\n justify-content: center;\n padding: 1em;\n background-color: rgb(255 255 255 / 0.9);\n opacity: 0;\n pointer-events: none;\n transition: opacity 200ms;\n}\n\n.dragAndDropOverlayWrapper.dragging {\n opacity: 1;\n}\n\n.dragAndDropOverlay {\n display: flex;\n width: 100%;\n align-items: center;\n justify-content: center;\n border: 2px dashed #888;\n border-radius: 10px;\n color: #666;\n font-size: 30px;\n text-align: center;\n}\n"],sourceRoot:""}]);const s=i},6108:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".appErrorBoundary{align-items:center;background-color:var(--grey-20);flex:1;justify-content:center;overflow:hidden;padding:10px}.appErrorBoundary,.appErrorBoundaryContents{box-sizing:border-box;display:flex;flex-direction:column}.appErrorBoundaryContents{max-height:100%;max-width:800px;width:100%}.appErrorBoundaryInnerText{display:flex;flex-direction:column;gap:4px}.appErrorBoundaryInnerText>p{margin:0;padding:0}","",{version:3,sources:["webpack://./src/components/app/ErrorBoundary.css"],names:[],mappings:"AAAA,kBAME,kBAAmB,CAGnB,+BAAgC,CALhC,MAAO,CAGP,sBAAuB,CALvB,eAAgB,CAMhB,YAEF,CAEA,4CATE,qBAAsB,CAFtB,YAAa,CAIb,qBAcF,CAPA,0BAIE,eAAgB,CADhB,eAAgB,CADhB,UAKF,CAEA,2BACE,YAAa,CACb,qBAAsB,CACtB,OACF,CAEA,6BAEE,QAAS,CADT,SAEF",sourcesContent:[".appErrorBoundary {\n display: flex;\n overflow: hidden;\n box-sizing: border-box;\n flex: 1;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 10px;\n background-color: var(--grey-20);\n}\n\n.appErrorBoundaryContents {\n display: flex;\n width: 100%;\n max-width: 800px;\n max-height: 100%;\n box-sizing: border-box;\n flex-direction: column;\n}\n\n.appErrorBoundaryInnerText {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.appErrorBoundaryInnerText > p {\n padding: 0;\n margin: 0;\n}\n"],sourceRoot:""}]);const s=i},9284:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".appFooterLinks{background-color:var(--grey-20);border-left:1px solid var(--grey-40);border-top:1px solid var(--grey-40);bottom:0;padding:0 3px;position:fixed;right:0}.appFooterLinksClose,.appFooterLinksLink{color:var(--blue-60);display:inline-block;margin:2px 4px;text-decoration:none}.appFooterLinksClose{background:none;border:none;cursor:pointer;font:inherit;margin:0}.appFooterLinksClose:hover,.appFooterLinksLink:hover{text-decoration:underline}.appFooterLinksLanguageSwitcher{color:inherit;font:inherit;margin:2px 5px}@media (max-width:767px){.appFooterLinks{text-align:center;width:100%}}","",{version:3,sources:["webpack://./src/components/app/FooterLinks.css"],names:[],mappings:"AAAA,gBAYE,+BAAgC,CADhC,oCAAqC,CADrC,mCAAoC,CANpC,QAAS,CAGT,aAAc,CALd,cAAe,CACf,OAUF,CAEA,yCAIE,oBAAqB,CAFrB,oBAAqB,CACrB,cAAe,CAEf,oBACF,CAEA,qBAGE,eAAgB,CAFhB,WAAY,CAGZ,cAAe,CACf,YAAa,CAHb,QAIF,CAEA,qDAEE,yBACF,CAEA,gCAEE,aAAc,CACd,YAAa,CAFb,cAGF,CAEA,yBACE,gBAEE,iBAAkB,CADlB,UAEF,CACF",sourcesContent:[".appFooterLinks {\n /* Position */\n position: fixed;\n right: 0;\n bottom: 0;\n\n /* Box */\n padding: 0 3px;\n\n /* Other */\n border-top: 1px solid var(--grey-40);\n border-left: 1px solid var(--grey-40);\n background-color: var(--grey-20);\n}\n\n.appFooterLinksLink,\n.appFooterLinksClose {\n display: inline-block;\n margin: 2px 4px;\n color: var(--blue-60);\n text-decoration: none;\n}\n\n.appFooterLinksClose {\n border: none;\n margin: 0;\n background: none;\n cursor: pointer;\n font: inherit;\n}\n\n.appFooterLinksLink:hover,\n.appFooterLinksClose:hover {\n text-decoration: underline;\n}\n\n.appFooterLinksLanguageSwitcher {\n margin: 2px 5px;\n color: inherit;\n font: inherit;\n}\n\n@media (max-width: 767px) {\n .appFooterLinks {\n width: 100%;\n text-align: center;\n }\n}\n"],sourceRoot:""}]);const s=i},34:(e,t,n)=>{"use strict";n.d(t,{Z:()=>h});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a),s=n(1667),l=n.n(s),c=new URL(n(4850),n.b),d=i()(o()),u=l()(c);d.push([e.id,`.home{align-items:center;align-self:flex-start;display:flex;justify-content:center;line-height:1.5;min-height:100vh;width:100%}.homeSpecialMessage{background-color:#798fc8;border:1px solid #000;border-radius:3px;color:#fff;margin:17px 0;padding:8px 16px}.homeSection{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 5px 25px #0b1f50;box-sizing:border-box;font-size:130%;max-width:1200px;overflow:hidden;padding:4em 8em;position:relative;width:75%}.homeSection kbd{background-color:#f6f6f6;border:1px solid #ccc;border-radius:.2em;box-shadow:.1em .1em 0 #bbb;display:inline-block;margin:0 .2em;padding:0 .5em}.homeSectionItems{margin:1em 0}.homeSectionScreenshot{border:1px solid #d1d1d1;border-radius:.4em;box-shadow:0 2px 4px #ddd;height:auto;max-width:100%;place-self:center;width:390px}.homeAdditionalContentTitle{grid-column:1/-1;margin-bottom:10px;margin-top:0}.homeActions>p:first-child,.homeRecentUploadedRecordingsTitle{margin-top:0}.homeSectionButton{background-color:#fff;border:2px solid;box-sizing:border-box;color:var(--grey-50);display:block;font-size:16px;font-weight:700;line-height:1.5;margin:15px 0;padding:.5em;text-align:center;text-decoration:none;transition:background-color .25s var(--animation-curve),color .25s var(--animation-curve);width:100%}.homeSectionButton:not(:disabled){color:var(--blue-60);cursor:pointer}.homeSectionLoadProfile{position:relative}.homeSectionActionButtons{display:flex}.homeSectionActionButtons .homeSectionButton{flex:1;margin:5px 0}.homeSectionActionButtons button:not(:first-of-type){border-left:none}.homeSectionLoadFromUrl{display:flex;justify-content:space-between;position:absolute;width:100%}.homeSectionActionButtons .homeSectionButton,.homeSectionLoadFromUrl .homeSectionButton{font-size:13px;padding:.3em 1em}.homeSectionButton:not(:disabled):hover,.homeSectionButton:not(:disabled)[aria-expanded=true]{background-color:var(--blue-60);color:#fff}.homeSectionPlus{font-size:26px;line-height:0;padding-left:5px;padding-right:12px;position:relative;top:2px}.homeSectionDocsIcon{background:url(${u});background-size:100% 100%;display:inline-block;height:20px;margin:0 10px -4px 3px;position:relative;width:20px}.homeSectionButton:hover .homeSectionDocsIcon{filter:grayscale(1) brightness(3)}.homeAdditionalContent,.homeInstructions{column-gap:30px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);margin-top:30px}.homeInstructionsTransitionGroup{position:relative}@media (prefers-reduced-motion:no-preference){.homeTransition-enter{opacity:.1;transform:translateX(100px)}.homeTransition-enter.homeTransition-enter-active{opacity:1;transform:translateX(0);transition:opacity .3s ease-out,transform .3s ease-out}}.homeSectionUploadFromFileInput{display:none}.homeSectionLoadFromUrlInput{flex:auto;margin:0 10px 0 0}.homeSectionLoadFromUrlSubmitButton{margin:0}@media (max-width:1300px){.homeSection{padding:5em}}@media (max-width:1100px){.homeSection{max-width:80%;padding:3em}.homeAdditionalContent,.homeInstructions{grid-template-columns:minmax(0,1fr)}}@media (max-width:767px){.homeSection{max-width:90%;padding-left:2em;padding-right:2em;width:90%}}@media (max-width:499px){.homeSection{max-width:95%;padding-left:1em;padding-right:1em;width:95%}}`,"",{version:3,sources:["webpack://./src/components/app/Home.css"],names:[],mappings:"AAIA,MAIE,kBAAmB,CACnB,qBAAsB,CAJtB,YAAa,CAKb,sBAAuB,CACvB,eAAgB,CAJhB,gBAAiB,CADjB,UAMF,CAEA,oBAKE,wBAAyB,CAHzB,qBAAsB,CACtB,iBAAkB,CAGlB,UAAW,CAFX,aAAc,CAHd,gBAMF,CAEA,aASE,qBAAsB,CAFtB,qBAAsB,CACtB,iBAAkB,CAElB,6BAA8B,CAL9B,qBAAsB,CAMtB,cAAe,CAPf,gBAAiB,CAFjB,eAAgB,CAIhB,eAAgB,CALhB,iBAAkB,CAElB,SASF,CAEA,iBAME,wBAAyB,CAHzB,qBAAsB,CACtB,kBAAoB,CAGpB,2BAA8B,CAN9B,oBAAqB,CAIrB,aAAe,CAHf,cAMF,CAEA,kBACE,YACF,CAEA,uBAIE,wBAAyB,CACzB,kBAAoB,CACpB,yBAA0B,CAH1B,WAAY,CADZ,cAAe,CAKf,iBAAkB,CANlB,WAOF,CAEA,4BAGE,gBAAmB,CADnB,kBAAmB,CADnB,YAGF,CAEA,8DAEE,YACF,CAEA,mBAOE,qBAAsB,CAFtB,gBAA8B,CAF9B,qBAAsB,CAKtB,oBAAqB,CAPrB,aAAc,CAQd,cAAe,CACf,eAAiB,CACjB,eAAgB,CALhB,aAAc,CAFd,YAAc,CAQd,iBAAkB,CAClB,oBAAqB,CACrB,yFAEoC,CAdpC,UAeF,CAEA,kCACE,oBAAqB,CACrB,cACF,CAEA,wBACE,iBACF,CAEA,0BACE,YACF,CAEA,6CACE,MAAO,CACP,YACF,CAEA,qDACE,gBACF,CAEA,wBAEE,YAAa,CAEb,6BAA8B,CAH9B,iBAAkB,CAElB,UAEF,CAEA,wFAGE,cAAe,CADf,gBAEF,CAEA,8FAEE,+BAAgC,CAChC,UACF,CAEA,iBAKE,cAAe,CACf,aAAc,CAFd,gBAAiB,CADjB,kBAAmB,CAFnB,iBAAkB,CAClB,OAKF,CAEA,qBAME,kDAAmD,CACnD,yBAA0B,CAL1B,oBAAqB,CAErB,WAAY,CACZ,sBAAuB,CAJvB,iBAAkB,CAElB,UAKF,CAEA,8CAEE,iCACF,CAEA,yCAIE,eAAgB,CAFhB,YAAa,CAOb,iDAAoD,CANpD,eAOF,CAEA,iCACE,iBACF,CAGA,8CACE,sBACE,UAAY,CACZ,2BACF,CAEA,kDACE,SAAU,CACV,uBAAwB,CACxB,sDAGF,CACF,CAEA,gCACE,YACF,CAEA,6BACE,SAAU,CACV,iBACF,CAEA,oCACE,QACF,CAEA,0BACE,aACE,WACF,CACF,CAEA,0BACE,aACE,aAAc,CACd,WACF,CAEA,yCAIE,mCACF,CACF,CAEA,yBACE,aAEE,aAAc,CAEd,gBAAiB,CADjB,iBAAkB,CAFlB,SAIF,CACF,CAEA,yBACE,aAEE,aAAc,CAEd,gBAAiB,CADjB,iBAAkB,CAFlB,SAIF,CACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.home {\n display: flex;\n width: 100%;\n min-height: 100vh;\n align-items: center;\n align-self: flex-start;\n justify-content: center;\n line-height: 1.5;\n}\n\n.homeSpecialMessage {\n padding: 8px 16px;\n border: 1px solid #000;\n border-radius: 3px;\n margin: 17px 0;\n background-color: #798fc8;\n color: #fff;\n}\n\n.homeSection {\n position: relative;\n overflow: hidden;\n width: 75%;\n max-width: 1200px;\n box-sizing: border-box;\n padding: 4em 8em;\n border: 1px solid #ccc;\n border-radius: 3px;\n background-color: #fff;\n box-shadow: 0 5px 25px #0b1f50;\n font-size: 130%;\n}\n\n.homeSection kbd {\n display: inline-block;\n padding: 0 0.5em;\n border: 1px solid #ccc;\n border-radius: 0.2em;\n margin: 0 0.2em;\n background-color: #f6f6f6;\n box-shadow: 0.1em 0.1em 0 #bbb;\n}\n\n.homeSectionItems {\n margin: 1em 0;\n}\n\n.homeSectionScreenshot {\n width: 390px;\n max-width: 100%;\n height: auto;\n border: 1px solid #d1d1d1;\n border-radius: 0.4em;\n box-shadow: 0 2px 4px #ddd;\n place-self: center;\n}\n\n.homeAdditionalContentTitle {\n margin-top: 0;\n margin-bottom: 10px;\n grid-column: 1 / -1; /* from start to end */\n}\n\n.homeActions > p:first-child,\n.homeRecentUploadedRecordingsTitle {\n margin-top: 0;\n}\n\n.homeSectionButton {\n display: block;\n width: 100%;\n box-sizing: border-box;\n padding: 0.5em;\n border: 2px solid currentcolor;\n margin: 15px 0;\n background-color: #fff;\n color: var(--grey-50);\n font-size: 16px;\n font-weight: bold;\n line-height: 1.5;\n text-align: center;\n text-decoration: none;\n transition:\n background-color 250ms var(--animation-curve),\n color 250ms var(--animation-curve);\n}\n\n.homeSectionButton:not(:disabled) {\n color: var(--blue-60);\n cursor: pointer;\n}\n\n.homeSectionLoadProfile {\n position: relative;\n}\n\n.homeSectionActionButtons {\n display: flex;\n}\n\n.homeSectionActionButtons .homeSectionButton {\n flex: 1;\n margin: 5px 0;\n}\n\n.homeSectionActionButtons button:not(:first-of-type) {\n border-left: none;\n}\n\n.homeSectionLoadFromUrl {\n position: absolute;\n display: flex;\n width: 100%;\n justify-content: space-between;\n}\n\n.homeSectionActionButtons .homeSectionButton,\n.homeSectionLoadFromUrl .homeSectionButton {\n padding: 0.3em 1em;\n font-size: 13px;\n}\n\n.homeSectionButton:not(:disabled):hover,\n.homeSectionButton:not(:disabled)[aria-expanded='true'] {\n background-color: var(--blue-60);\n color: #fff;\n}\n\n.homeSectionPlus {\n position: relative;\n top: 2px;\n padding-right: 12px;\n padding-left: 5px;\n font-size: 26px;\n line-height: 0;\n}\n\n.homeSectionDocsIcon {\n position: relative;\n display: inline-block;\n width: 20px;\n height: 20px;\n margin: 0 10px -4px 3px;\n background: url(../../../res/img/svg/help-blue.svg);\n background-size: 100% 100%;\n}\n\n.homeSectionButton:hover .homeSectionDocsIcon {\n /* Make the icon white */\n filter: grayscale(1) brightness(3);\n}\n\n.homeInstructions,\n.homeAdditionalContent {\n display: grid;\n margin-top: 30px;\n column-gap: 30px;\n\n /* minmax makes the grid ignore the element's intrinsic size.\n * If we use 1fr directly, the min is \"auto\", which depends on the content. If\n * the content is too large then this can break the layout. */\n grid-template-columns: minmax(0, 1fr) minmax(0, 1fr);\n}\n\n.homeInstructionsTransitionGroup {\n position: relative;\n}\n\n/* Only show the home transition when reduced motion is not preferred */\n@media (prefers-reduced-motion: no-preference) {\n .homeTransition-enter {\n opacity: 0.1;\n transform: translateX(100px);\n }\n\n .homeTransition-enter.homeTransition-enter-active {\n opacity: 1;\n transform: translateX(0);\n transition:\n opacity 300ms ease-out,\n transform 300ms ease-out;\n }\n}\n\n.homeSectionUploadFromFileInput {\n display: none;\n}\n\n.homeSectionLoadFromUrlInput {\n flex: auto;\n margin: 0 10px 0 0;\n}\n\n.homeSectionLoadFromUrlSubmitButton {\n margin: 0;\n}\n\n@media (max-width: 1300px) {\n .homeSection {\n padding: 5em;\n }\n}\n\n@media (max-width: 1100px) {\n .homeSection {\n max-width: 80%;\n padding: 3em;\n }\n\n .homeAdditionalContent,\n .homeInstructions {\n /* we switch to use just one column instead of 2.\n * Note tha/ minmax makes the grid ignore the element's intrinsic size. */\n grid-template-columns: minmax(0, 1fr);\n }\n}\n\n@media (max-width: 767px) {\n .homeSection {\n width: 90%;\n max-width: 90%;\n padding-right: 2em;\n padding-left: 2em;\n }\n}\n\n@media (max-width: 499px) {\n .homeSection {\n width: 95%;\n max-width: 95%;\n padding-right: 1em;\n padding-left: 1em;\n }\n}\n"],sourceRoot:""}]);const h=d},5946:(e,t,n)=>{"use strict";n.d(t,{Z:()=>h});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a),s=n(1667),l=n.n(s),c=new URL(n(8293),n.b),d=i()(o()),u=l()(c);d.push([e.id,`.appKeyboardShortcuts{animation:appKeyboardShortcutsFadeIn .2s;background:#000a;box-sizing:border-box;display:none;height:100vh;left:0;padding:20px;position:absolute;top:0;width:100vw}.appKeyboardShortcuts.open{align-items:center;display:flex}.appKeyboardShortcutsBox{animation:arrowPanelAppear .2s cubic-bezier(.07,.95,0,1);background:#fff;border-radius:5px;filter:drop-shadow(0 0 .5px rgb(0 0 0/.4)) drop-shadow(0 4px 5px rgb(0 0 0/.4));margin:0 auto;max-height:calc(100% - 40px);max-width:800px;overflow:hidden}.appKeyboardShortcutsScroll{overflow-y:scroll}.appKeyboardShortcutsRow{display:flex;margin:7px 0;max-width:400px}.appKeyboardShortcutsLabel{flex:1;font-size:13px;padding-inline-end:25px}.appKeyboardShortcutsShortcut{align-items:center;background:#dedee3c9;border-radius:3px;box-shadow:1px 1px #00000045;color:#000;display:inline-flex;margin-inline-start:6px;padding:0 5px}.appKeyboardShortcutsContent{grid-gap:80px;display:grid;grid-template-columns:1fr 1fr;margin:40px}.appKeyboardShortcutsContent h2{margin:40px 0 10px}.appKeyboardShortcutsContent h2:first-child{margin-top:0}.appKeyboardShortcutsHeader{background:var(--grey-20);border-bottom:1px solid var(--grey-30);display:flex;font-size:13px}.appKeyboardShortcutsHeaderTitle{flex:1;margin:10px}.appKeyboardShortcutsHeaderClose{background:url(${u}) 10px no-repeat;border:0;border-radius:3px;cursor:pointer;font-size:inherit;margin:4px;padding:6px 6px 6px 30px}.appKeyboardShortcutsHeaderClose:hover{background-color:var(--grey-30)}.appKeyboardShortcutsNoInteract{pointer-events:none}@keyframes appKeyboardShortcutsFadeIn{0%{background:#0000}to{background:#000a}}@media (prefers-reduced-motion){.appKeyboardShortcuts,.appKeyboardShortcutsBox{animation:none}}`,"",{version:3,sources:["webpack://./src/components/app/KeyboardShortcut.css"],names:[],mappings:"AAIA,sBASE,wCAA0C,CAC1C,gBAAiB,CAHjB,qBAAsB,CAHtB,YAAa,CAEb,YAAa,CAHb,MAAO,CAKP,YAAa,CAPb,iBAAkB,CAClB,KAAM,CAGN,WAMF,CAEA,2BAEE,kBAAmB,CADnB,YAEF,CAEA,yBAQE,wDAA+D,CAC/D,eAAgB,CAHhB,iBAAkB,CAIlB,+EACyC,CAJzC,aAAc,CAFd,4BAA6B,CAH7B,eAAgB,CADhB,eAWF,CAEA,4BACE,iBACF,CAEA,yBACE,YAAa,CAEb,YAAe,CADf,eAEF,CAEA,2BACE,MAAO,CACP,cAAe,CACf,uBACF,CAEA,8BAEE,kBAAmB,CAGnB,oBAAmC,CADnC,iBAAkB,CAElB,4BAAqC,CACrC,UAAW,CANX,mBAAoB,CAOpB,uBAAwB,CALxB,aAMF,CAEA,6BAGE,aAAc,CAFd,YAAa,CAGb,6BAA8B,CAF9B,WAGF,CAEA,gCACE,kBACF,CAEA,4CACE,YACF,CAEA,4BAGE,yBAA0B,CAD1B,sCAAuC,CADvC,YAAa,CAGb,cACF,CAEA,iCACE,MAAO,CACP,WACF,CAEA,iCAOE,iEACW,CANX,QAAS,CACT,iBAAkB,CAMlB,cAAe,CACf,iBAAkB,CAJlB,UAAW,CALX,wBAUF,CAEA,uCACE,+BACF,CAEA,gCACE,mBACF,CAEA,sCACE,GACE,gBACF,CAEA,GACE,gBACF,CACF,CAGA,gCACE,+CAEE,cACF,CACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.appKeyboardShortcuts {\n position: absolute;\n top: 0;\n left: 0;\n display: none;\n width: 100vw;\n height: 100vh;\n box-sizing: border-box;\n padding: 20px;\n animation: appKeyboardShortcutsFadeIn 0.2s;\n background: #000a;\n}\n\n.appKeyboardShortcuts.open {\n display: flex;\n align-items: center;\n}\n\n.appKeyboardShortcutsBox {\n overflow: hidden;\n max-width: 800px;\n\n /* appKeyboardShortcuts margin top + bottom = 40px */\n max-height: calc(100% - 40px);\n border-radius: 5px;\n margin: 0 auto;\n animation: arrowPanelAppear 0.2s cubic-bezier(0.07, 0.95, 0, 1);\n background: #fff;\n filter: drop-shadow(0 0 0.5px rgb(0 0 0 / 0.4))\n drop-shadow(0 4px 5px rgb(0 0 0 / 0.4));\n}\n\n.appKeyboardShortcutsScroll {\n overflow-y: scroll;\n}\n\n.appKeyboardShortcutsRow {\n display: flex;\n max-width: 400px;\n margin: 7px 0px;\n}\n\n.appKeyboardShortcutsLabel {\n flex: 1;\n font-size: 13px;\n padding-inline-end: 25px;\n}\n\n.appKeyboardShortcutsShortcut {\n display: inline-flex;\n align-items: center;\n padding: 0 5px;\n border-radius: 3px;\n background: rgb(222 222 227 / 0.79);\n box-shadow: 1px 1px rgb(0 0 0 / 0.27);\n color: #000;\n margin-inline-start: 6px;\n}\n\n.appKeyboardShortcutsContent {\n display: grid;\n margin: 40px;\n grid-gap: 80px;\n grid-template-columns: 1fr 1fr;\n}\n\n.appKeyboardShortcutsContent h2 {\n margin: 40px 0 10px;\n}\n\n.appKeyboardShortcutsContent h2:first-child {\n margin-top: 0;\n}\n\n.appKeyboardShortcutsHeader {\n display: flex;\n border-bottom: 1px solid var(--grey-30);\n background: var(--grey-20);\n font-size: 13px;\n}\n\n.appKeyboardShortcutsHeaderTitle {\n flex: 1;\n margin: 10px;\n}\n\n.appKeyboardShortcutsHeaderClose {\n padding: 6px 6px 6px 30px;\n border: 0;\n border-radius: 3px;\n\n /* Allow for the photon focus ring to fit in the space by using a 4px margin. */\n margin: 4px;\n background: url(../../../res/img/svg/searchfield-cancel.svg) 10px center\n no-repeat;\n cursor: pointer;\n font-size: inherit;\n}\n\n.appKeyboardShortcutsHeaderClose:hover {\n background-color: var(--grey-30);\n}\n\n.appKeyboardShortcutsNoInteract {\n pointer-events: none;\n}\n\n@keyframes appKeyboardShortcutsFadeIn {\n from {\n background: #0000;\n }\n\n to {\n background: #000a;\n }\n}\n\n/* Do not animate the panel or the background if user prefers reduced motion */\n@media (prefers-reduced-motion) {\n .appKeyboardShortcuts,\n .appKeyboardShortcutsBox {\n animation: none;\n }\n}\n"],sourceRoot:""}]);const h=d},7178:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".publishedProfilesList{list-style:none;margin:0;padding:0}.publishedProfilesListItem{display:flex;justify-content:space-between;margin:-2px 0;padding:2px 0}.publishedProfilesLink{color:inherit;display:flex;flex:auto;min-width:0;padding:4px 8px;text-decoration:none}.publishedProfilesLink:hover{background:var(--grey-90-a05)}.publishedProfilesListItem:focus-within,.publishedProfilesListItem_ConfirmDialogIsOpen{box-shadow:-3px 0 0 var(--blue-60)}.publishedProfilesDate{flex:none;padding-right:4px;white-space:nowrap;width:10em}.publishedProfilesInfo{min-width:0}.publishedProfilesName{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.publishedProfilesActionButtons{align-self:center;display:flex;opacity:0;padding-left:8px}.publishedProfilesListItem:focus-within .publishedProfilesActionButtons,.publishedProfilesListItem:hover .publishedProfilesActionButtons,.publishedProfilesListItem_ConfirmDialogIsOpen .publishedProfilesActionButtons{opacity:1}.publishedProfilesDeleteButton{margin-left:8px}","",{version:3,sources:["webpack://./src/components/app/ListOfPublishedProfiles.css"],names:[],mappings:"AA8BA,uBAGE,eAAgB,CADhB,QAAS,CADT,SAGF,CAEA,2BACE,YAAa,CACb,6BAA8B,CAM9B,aAAc,CADd,aAEF,CAEA,uBAKE,aAAc,CAJd,YAAa,CAEb,SAAU,CADV,WAAY,CAEZ,eAAgB,CAEhB,oBACF,CAEA,6BACE,6BACF,CAEA,uFAEE,kCACF,CAEA,uBAEE,SAAU,CACV,iBAAkB,CAClB,kBAAmB,CAHnB,UAIF,CAEA,uBACE,WACF,CAEA,uBACE,eAAgB,CAChB,sBAAuB,CACvB,kBACF,CAEA,gCAEE,iBAAkB,CADlB,YAAa,CAOb,SAAU,CALV,gBAMF,CAEA,wNAGE,SACF,CAEA,+BACE,eACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n/*\n * This implements the layout of the list of recorded profiles. This is used in\n * 2 locations: in the full uploaded recordings page, or as a small widget in\n * the home page.\n *\n * This is a list, where each list item's layout is:\n *\n * /-----------------------------------------------------------------------------------------------------\\\n * | li.publishedProfilesListItem - This is one line in the list. |\n * | /-------------------------------------------------------------\\ /---------------------------------\\ |\n * | | a.publishedProfilesLink | | .publishedProfilesActionButtons | |\n * | | /------------------------\\ /------------------------------\\ | | | |\n * | | | .publishedProfilesDate | | .publishedProfilesInfo | | | (This element is optional.) | |\n * | | | | | /--------------------------\\ | | | | |\n * | | | | | | .publishedProfilesName | | | | /---------------\\ | |\n * | | | | | \\--------------------------/ | | | | delete button | | |\n * | | | | | /--------------------------\\ | | | \\---------------/ | |\n * | | | | | | profile metainfo summary | | | | | |\n * | | | | | \\--------------------------/ | | | Eventually we'll have more | |\n * | | \\------------------------/ \\------------------------------/ | | buttons here. | |\n * | \\-------------------------------------------------------------/ \\---------------------------------/ |\n * \\-----------------------------------------------------------------------------------------------------/\n *\n * We use nested Flex boxes to achieve this layout.\n */\n\n.publishedProfilesList {\n padding: 0;\n margin: 0;\n list-style: none;\n}\n\n.publishedProfilesListItem {\n display: flex;\n justify-content: space-between;\n\n /* The padding compensates for the negative margin. The negative margin is\n * there so that the left border (implemented as a box-shadow below) go\n * outside the line. */\n padding: 2px 0;\n margin: -2px 0;\n}\n\n.publishedProfilesLink {\n display: flex;\n min-width: 0;\n flex: auto;\n padding: 4px 8px; /* 4px as vertical padding so that it's 8 when added up, and 8px for the left and right padddings */\n color: inherit;\n text-decoration: none;\n}\n\n.publishedProfilesLink:hover {\n background: var(--grey-90-a05);\n}\n\n.publishedProfilesListItem_ConfirmDialogIsOpen,\n.publishedProfilesListItem:focus-within {\n box-shadow: -3px 0 0 var(--blue-60); /* This is a border that doesn't move the content. */\n}\n\n.publishedProfilesDate {\n width: 10em;\n flex: none;\n padding-right: 4px;\n white-space: nowrap;\n}\n\n.publishedProfilesInfo {\n min-width: 0;\n}\n\n.publishedProfilesName {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.publishedProfilesActionButtons {\n display: flex;\n align-self: center;\n padding-left: 8px;\n\n /* We use opacity so that it's still reachable with the keyboard, both\n * backwards and forwards. Also with this technique this always stays in the\n * accessibility tree. */\n opacity: 0;\n}\n\n.publishedProfilesListItem_ConfirmDialogIsOpen .publishedProfilesActionButtons,\n.publishedProfilesListItem:hover .publishedProfilesActionButtons,\n.publishedProfilesListItem:focus-within .publishedProfilesActionButtons {\n opacity: 1;\n}\n\n.publishedProfilesDeleteButton {\n margin-left: 8px;\n}\n"],sourceRoot:""}]);const s=i},6941:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,'.metaInfoPanel{font-size:12px;line-height:20px;width:350px}.metaInfoPanel,.metaInfoPanel .arrowPanelArrow:before{background-color:#fff}.metaInfoSection{margin-bottom:12px;margin-top:7px}.metaInfoLabel,.metaInfoWideLabel{color:var(--grey-50);display:inline-block;width:120px}.metaInfoLargeContent{max-height:100px;overflow:scroll;overflow-wrap:anywhere}.metaInfoWideLabel{width:140px}.visualMetricsLabel{color:var(--grey-50);display:inline-block;width:145px}.metaInfoList{list-style:circle inside;margin:-19px 0 0 122px;padding:0}.metaInfoListRow+.metaInfoListRow{margin-top:7px}.metaInfoSubTitle{border-bottom:1px solid #0000000d;font-size:1.2em;font-weight:700;margin:0;padding-bottom:4px;padding-top:4px}.moreInfoSummary{align-items:center;display:flex;justify-content:center;margin-top:24px;-webkit-user-select:none;user-select:none}.moreInfoSummary::marker{content:""}.moreInfoPart{margin-top:15px}.moreInfoValue{overflow-x:scroll}',"",{version:3,sources:["webpack://./src/components/app/MenuButtons/MetaInfo.css"],names:[],mappings:"AAIA,eAEE,cAAe,CACf,gBAAiB,CAFjB,WAGF,CAEA,sDAEE,qBACF,CAEA,iBAEE,kBAAmB,CADnB,cAEF,CAEA,kCAIE,oBAAqB,CAFrB,oBAAqB,CACrB,WAEF,CAEA,sBAEE,gBAAiB,CADjB,eAAgB,CAEhB,sBACF,CAEA,mBACE,WACF,CAEA,oBAGE,oBAAqB,CAFrB,oBAAqB,CACrB,WAEF,CAEA,cAWE,wBAAyB,CADzB,sBAAuB,CATvB,SAWF,CAEA,kCACE,cACF,CAEA,kBAGE,iCAA0C,CAE1C,eAAgB,CAChB,eAAgB,CAFhB,QAAS,CAFT,kBAAmB,CADnB,eAMF,CAEA,iBAEE,kBAAmB,CADnB,YAAa,CAEb,sBAAuB,CACvB,eAAgB,CAChB,wBAAiB,CAAjB,gBACF,CAEA,yBACE,UACF,CAEA,cACE,eACF,CAEA,eACE,iBACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.metaInfoPanel {\n width: 350px;\n font-size: 12px;\n line-height: 20px;\n}\n\n.metaInfoPanel,\n.metaInfoPanel .arrowPanelArrow::before {\n background-color: white;\n}\n\n.metaInfoSection {\n margin-top: 7px;\n margin-bottom: 12px;\n}\n\n.metaInfoLabel,\n.metaInfoWideLabel {\n display: inline-block;\n width: 120px;\n color: var(--grey-50);\n}\n\n.metaInfoLargeContent {\n overflow: scroll;\n max-height: 100px;\n overflow-wrap: anywhere;\n}\n\n.metaInfoWideLabel {\n width: 140px;\n}\n\n.visualMetricsLabel {\n display: inline-block;\n width: 145px;\n color: var(--grey-50);\n}\n\n.metaInfoList {\n padding: 0;\n\n /* Explanations about this margin line:\n * - we need to reset it anyway, because we need to remove the default style\n * for <ul> tags.\n * - -19px moves the list up, next to the label.\n * - 122px is 120px (the width of the label) + a few pixels so that this looks\n * better.\n */\n margin: -19px 0 0 122px;\n list-style: circle inside;\n}\n\n.metaInfoListRow + .metaInfoListRow {\n margin-top: 7px;\n}\n\n.metaInfoSubTitle {\n padding-top: 4px;\n padding-bottom: 4px;\n border-bottom: 1px solid rgb(0 0 0 / 0.05);\n margin: 0;\n font-size: 1.2em;\n font-weight: 700;\n}\n\n.moreInfoSummary {\n display: flex;\n align-items: center;\n justify-content: center;\n margin-top: 24px;\n user-select: none;\n}\n\n.moreInfoSummary::marker {\n content: '';\n}\n\n.moreInfoPart {\n margin-top: 15px;\n}\n\n.moreInfoValue {\n overflow-x: scroll;\n}\n"],sourceRoot:""}]);const s=i},2543:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".metaInfoGrid{display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:20px}.metaInfoGrid>div{margin:2px 0}.metaInfoGrid>div:nth-child(-n+4){display:block;font-weight:500}.metaInfoGrid>div:nth-child(4n+1){color:var(--grey-50);font-weight:500}.metaInfoGrid>div:not(:nth-child(4n+1)){text-align:right}.metaInfoValueRight{display:inline-block;text-align:right;width:calc(100% - 140px)}","",{version:3,sources:["webpack://./src/components/app/MenuButtons/MetaOverheadStatistics.css"],names:[],mappings:"AAIA,cACE,YAAa,CAEb,mCAAqC,CADrC,kBAEF,CAEA,kBACE,YACF,CAEA,kCACE,aAAc,CACd,eACF,CAEA,kCACE,oBAAqB,CACrB,eACF,CAEA,wCACE,gBACF,CAEA,oBACE,oBAAqB,CAErB,gBAAiB,CADjB,wBAEF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.metaInfoGrid {\n display: grid;\n margin-bottom: 20px;\n grid-template-columns: repeat(4, 1fr);\n}\n\n.metaInfoGrid > div {\n margin: 2px 0;\n}\n\n.metaInfoGrid > div:nth-child(-n + 4) {\n display: block;\n font-weight: 500;\n}\n\n.metaInfoGrid > div:nth-child(4n + 1) {\n color: var(--grey-50);\n font-weight: 500;\n}\n\n.metaInfoGrid > div:not(:nth-child(4n + 1)) {\n text-align: right;\n}\n\n.metaInfoValueRight {\n display: inline-block;\n width: calc(100% - 140px);\n text-align: right;\n}\n"],sourceRoot:""}]);const s=i},4971:(e,t,n)=>{"use strict";n.d(t,{Z:()=>h});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a),s=n(1667),l=n.n(s),c=new URL(n(7156),n.b),d=i()(o()),u=l()(c);d.push([e.id,`.menuButtonsPermalinkButtonButton:before{background-image:url(${u})}.menuButtonsPermalinkPanel .arrowPanelContent{padding:4px}.menuButtonsPermalinkTextField{height:19px;width:16em}`,"",{version:3,sources:["webpack://./src/components/app/MenuButtons/Permalink.css"],names:[],mappings:"AAMA,yCACE,wDACF,CAEA,8CAEE,WACF,CAEA,+BAEE,WAAY,CADZ,UAEF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n/* This background image builds on the generic styles defined in\n * MenuButtons/index.css when using an icon. */\n.menuButtonsPermalinkButtonButton::before {\n background-image: url(firefox-profiler-res/img/svg/link-dark-12.svg);\n}\n\n.menuButtonsPermalinkPanel .arrowPanelContent {\n /* Override the default padding for ArrowPanel */\n padding: 4px;\n}\n\n.menuButtonsPermalinkTextField {\n width: 16em;\n height: 19px;\n}\n"],sourceRoot:""}]);const h=d},4285:(e,t,n)=>{"use strict";n.d(t,{Z:()=>w});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a),s=n(1667),l=n.n(s),c=new URL(n(1721),n.b),d=new URL(n(9998),n.b),u=new URL(n(5107),n.b),h=new URL(n(7786),n.b),p=new URL(n(9210),n.b),m=new URL(n(6577),n.b),f=i()(o()),g=l()(c),A=l()(d),b=l()(u),C=l()(h),y=l()(p),v=l()(m);f.push([e.id,`.menuButtonsShareButtonButton:before{background-image:url(${g})}.menuButtonsShareButtonButton-uploading:before{background-image:url(${A})}.menuButtonsShareButtonError{background-color:var(--red-60);color:#fff}.menuButtonsShareButtonError:hover{background-color:var(--red-70)}.buttonWithPanel.open>.menuButtonsShareButtonError,.menuButtonsShareButtonError:hover:active{background-color:var(--red-80)}.menuButtonsShareButtonError:before{background-image:url(${b})}.menuButtonsPublishPanel{--width:510px}.menuButtonsPublishContent{padding-left:70px;position:relative}.menuButtonsPublishTitle{background:url(${C}) 0 no-repeat;line-height:44px;margin:0 0 0 -60px;padding-left:60px}.menuButtonsPublishInfoDescription{flex:1;line-height:1.5;margin-bottom:1em}.menuButtonsPublishDataChoices{margin-left:10px}.menuButtonsPublishDataChoicesLabel{display:flex;margin:4px 0}.menuButtonsPublishDataChoicesIndicator{margin-left:8px}.menuButtonsPublishButtons{display:flex;justify-content:right;margin-top:20px}.menuButtonsPublishButton{align-items:center;box-sizing:initial;cursor:default;display:inline-flex;justify-content:center;margin:0 8px;min-width:132px;text-align:center;text-decoration:none}.menuButtonsPublishButtonDisabled{opacity:.6}.menuButtonsPublishButtonDisabled:active:hover,.menuButtonsPublishButtonDisabled:hover{background-color:var(--grey-90-a10)}.menuButtonsPublishButtonsSvg{display:inline-block;margin-right:5px;margin-top:-6px;position:relative;top:4px}.menuButtonsPublishButtonsSvgUpload{background:url(${y}) 50% no-repeat;height:20px;width:20px}.menuButtonsPublishButtonsSvgDownload{background:url(${v}) 50% no-repeat;height:20px;width:20px}.menuButtonsDownloadSize{display:inline-block;font-size:11px;margin:0 4px}.menuButtonsPublishUpload{padding:10px 0;position:relative}.menuButtonsPublishUploadTop{margin:10px}.menuButtonsPublishUploadPercentage{color:var(--blue-60);margin:10px 0}.menuButtonsPublishUploadBar{background-color:var(--grey-40);border-radius:2px;height:5px;overflow:hidden}.menuButtonsPublishUploadBarInner{animation:animate-stripes 1s linear infinite;background-color:var(--blue-50);background-image:linear-gradient(135deg,#0000 20%,#fff6 0,#fff6 40%,#0000 0,#0000 60%,#fff6 0,#fff6 80%,#0000 0);background-size:21px 20px,100% 100%,100% 100%;border-radius:0 2px 2px 0;height:3px;position:absolute;top:0}@keyframes animate-stripes{to{background-position:-21px 0}}.menuButtonsPublishError{margin:10px 0}@media (prefers-reduced-motion){.menuButtonsPublishUploadBarInner{animation:none}}`,"",{version:3,sources:["webpack://./src/components/app/MenuButtons/Publish.css"],names:[],mappings:"AAMA,qCACE,wDACF,CAEA,+CACE,wDACF,CAEA,6BACE,8BAA+B,CAC/B,UACF,CAEA,mCACE,8BACF,CAEA,6FAEE,8BACF,CAEA,oCACE,wDACF,CAEA,yBACE,aACF,CAEA,2BAIE,iBAAkB,CAHlB,iBAIF,CAEA,yBAKE,8DAA4E,CAC5E,gBAAiB,CAFjB,kBAAmB,CADnB,iBAIF,CAEA,mCACE,MAAO,CAEP,eAAgB,CADhB,iBAEF,CAEA,+BACE,gBACF,CAEA,oCACE,YAAa,CACb,YACF,CAEA,wCACE,eACF,CAEA,2BACE,YAAa,CACb,qBAAsB,CACtB,eACF,CAEA,0BAIE,kBAAmB,CADnB,kBAAuB,CAIvB,cAAe,CANf,mBAAoB,CAIpB,sBAAuB,CACvB,YAAa,CAJb,eAAgB,CAMhB,iBAAkB,CAClB,oBACF,CAEA,kCACE,UACF,CAEA,uFAEE,mCACF,CAEA,8BAGE,oBAAqB,CAErB,gBAAiB,CADjB,eAAgB,CAHhB,iBAAkB,CAClB,OAIF,CAEA,oCAGE,gEACW,CAFX,WAAY,CADZ,UAIF,CAEA,sCAGE,gEACW,CAFX,WAAY,CADZ,UAIF,CAEA,yBACE,oBAAqB,CAErB,cAAe,CADf,YAEF,CAEA,0BAEE,cAAe,CADf,iBAEF,CAEA,6BACE,WACF,CAEA,oCAEE,oBAAqB,CADrB,aAEF,CAEA,6BAIE,+BAAgC,CADhC,iBAAkB,CADlB,UAAW,CADX,eAIF,CAEA,kCAKE,4CAA6C,CAC7C,+BAAgC,CAChC,gHAUC,CACD,6CAGW,CAjBX,yBAA0B,CAD1B,UAAW,CAFX,iBAAkB,CAClB,KAoBF,CAEA,2BACE,GACE,2BACF,CACF,CAEA,yBACE,aACF,CAGA,gCACE,kCACE,cACF,CACF",sourcesContent:['/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n/* These two background images build on the generic styles defined in\n * MenuButtons/index.css when using an icon. */\n.menuButtonsShareButtonButton::before {\n background-image: url(firefox-profiler-res/img/svg/share-dark-12.svg);\n}\n\n.menuButtonsShareButtonButton-uploading::before {\n background-image: url(firefox-profiler-res/img/svg/sharing-animated-dark-12.svg);\n}\n\n.menuButtonsShareButtonError {\n background-color: var(--red-60);\n color: white;\n}\n\n.menuButtonsShareButtonError:hover {\n background-color: var(--red-70);\n}\n\n.buttonWithPanel.open > .menuButtonsShareButtonError,\n.menuButtonsShareButtonError:hover:active {\n background-color: var(--red-80);\n}\n\n.menuButtonsShareButtonError::before {\n background-image: url(firefox-profiler-res/img/svg/error.svg);\n}\n\n.menuButtonsPublishPanel {\n --width: 510px;\n}\n\n.menuButtonsPublishContent {\n position: relative;\n\n /* This aligns all content, except the big icon. */\n padding-left: 70px;\n}\n\n.menuButtonsPublishTitle {\n /* "60px" This is the value to put the background image at the right location.\n * This background image is 44x44, so this puts it 16px left of the text. */\n padding-left: 60px;\n margin: 0 0 0 -60px;\n background: url(firefox-profiler-res/img/svg/info.svg) left center no-repeat;\n line-height: 44px; /* This is the height of the background image */\n}\n\n.menuButtonsPublishInfoDescription {\n flex: 1;\n margin-bottom: 1em;\n line-height: 1.5;\n}\n\n.menuButtonsPublishDataChoices {\n margin-left: 10px;\n}\n\n.menuButtonsPublishDataChoicesLabel {\n display: flex;\n margin: 4px 0;\n}\n\n.menuButtonsPublishDataChoicesIndicator {\n margin-left: 8px;\n}\n\n.menuButtonsPublishButtons {\n display: flex;\n justify-content: right;\n margin-top: 20px;\n}\n\n.menuButtonsPublishButton {\n display: inline-flex;\n min-width: 132px;\n box-sizing: content-box;\n align-items: center;\n justify-content: center;\n margin: 0 8px;\n cursor: default;\n text-align: center;\n text-decoration: none;\n}\n\n.menuButtonsPublishButtonDisabled {\n opacity: 0.6;\n}\n\n.menuButtonsPublishButtonDisabled:hover,\n.menuButtonsPublishButtonDisabled:active:hover {\n background-color: var(--grey-90-a10);\n}\n\n.menuButtonsPublishButtonsSvg {\n position: relative;\n top: 4px;\n display: inline-block;\n margin-top: -6px;\n margin-right: 5px;\n}\n\n.menuButtonsPublishButtonsSvgUpload {\n width: 20px;\n height: 20px;\n background: url(firefox-profiler-res/img/svg/upload.svg) center center\n no-repeat;\n}\n\n.menuButtonsPublishButtonsSvgDownload {\n width: 20px;\n height: 20px;\n background: url(firefox-profiler-res/img/svg/download.svg) center center\n no-repeat;\n}\n\n.menuButtonsDownloadSize {\n display: inline-block;\n margin: 0 4px;\n font-size: 11px;\n}\n\n.menuButtonsPublishUpload {\n position: relative;\n padding: 10px 0;\n}\n\n.menuButtonsPublishUploadTop {\n margin: 10px;\n}\n\n.menuButtonsPublishUploadPercentage {\n margin: 10px 0;\n color: var(--blue-60);\n}\n\n.menuButtonsPublishUploadBar {\n overflow: hidden;\n height: 5px;\n border-radius: 2px;\n background-color: var(--grey-40);\n}\n\n.menuButtonsPublishUploadBarInner {\n position: absolute;\n top: 0;\n height: 3px;\n border-radius: 0 2px 2px 0;\n animation: animate-stripes 1s linear infinite;\n background-color: var(--blue-50);\n background-image: linear-gradient(\n 135deg,\n transparent 20%,\n rgb(255 255 255 / 0.4) 20%,\n rgb(255 255 255 / 0.4) 40%,\n transparent 40%,\n transparent 60%,\n rgb(255 255 255 / 0.4) 60%,\n rgb(255 255 255 / 0.4) 80%,\n transparent 80%\n );\n background-size:\n 21px 20px,\n 100% 100%,\n 100% 100%;\n}\n\n@keyframes animate-stripes {\n 100% {\n background-position: -21px 0;\n }\n}\n\n.menuButtonsPublishError {\n margin: 10px 0;\n}\n\n/* Do not animate the publish animation for stripes at the top loading bar. */\n@media (prefers-reduced-motion) {\n .menuButtonsPublishUploadBarInner {\n animation: none;\n }\n}\n'],sourceRoot:""}]);const w=f},1451:(e,t,n)=>{"use strict";n.d(t,{Z:()=>y});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a),s=n(1667),l=n.n(s),c=new URL(n(7067),n.b),d=new URL(n(1833),n.b),u=new URL(n(2612),n.b),h=new URL(n(9090),n.b),p=new URL(n(9455),n.b),m=i()(o()),f=l()(c),g=l()(d),A=l()(u),b=l()(h),C=l()(p);m.push([e.id,`.menuButtonsButton{align-items:center;background:none;border:0;color:inherit;cursor:default;display:flex;font-size:inherit;height:100%;margin:0;padding:0 12px;position:relative;text-decoration:none;white-space:nowrap}.menuButtonsButton:hover{background-color:#0000001a}.buttonWithPanel.open>.menuButtonsButton,.menuButtonsButton:hover:active{background-color:#0003}.menuButtonsButton-hasIcon:before{background:no-repeat 0/12px;content:"";height:12px;padding-right:4px;width:12px}.menuButtonsButton-hasLeftBorder,.menuButtonsButton-hasRightBorder{position:relative}.menuButtonsButton-hasLeftBorder:after,.menuButtonsButton-hasRightBorder:after{background:var(--grey-30);content:"";height:calc(100% - 8px);position:absolute;top:4px;width:1px}.menuButtonsButton-hasLeftBorder:after{left:0}.menuButtonsButton-hasRightBorder:after{right:0}.open-in-new{background:url(${f}) no-repeat 100%/12px;height:12px;padding-left:4px;width:12px}.menuButtonsMetaInfoButtonButton:before{background-image:url(${g})}.menuButtonsRevertButton:before{background-image:url(${A})}.menuButtonsRevertToFullView:before{background-image:url(${b})}.profileInfoUploadedActions{border-bottom:1px solid #0000000d;font-size:13px;padding:8px 0 8px 40px}.profileInfoUploadedLabel{color:var(--grey-50);padding-right:8px}.profileInfoUploadedDate{align-items:center;display:flex;margin:8px 0;position:relative}.profileInfoUploadedDate:before{background:url(${C}) no-repeat 0/32px;content:"";display:block;height:32px;left:-40px;opacity:.5;position:absolute;width:32px}.profileInfoUploadedActionsButtons{display:flex;gap:8px;justify-content:flex-end;margin-top:8px}`,"",{version:3,sources:["webpack://./src/components/app/MenuButtons/index.css"],names:[],mappings:"AAOA,mBAIE,kBAAmB,CAInB,eAAgB,CAFhB,QAAS,CAOT,aAAc,CAId,cAAe,CAff,YAAa,CAYb,iBAAkB,CAXlB,WAAY,CAIZ,QAAS,CAFT,cAAe,CAJf,iBAAkB,CAiBlB,oBAAqB,CATrB,kBAUF,CAGA,yBACE,0BACF,CAEA,yEAEE,sBACF,CAGA,kCAWE,2BAA+B,CAC/B,UAAW,CAHX,WAAY,CACZ,iBAAkB,CAFlB,UAKF,CAIA,mEAEE,iBACF,CAMA,+EAME,yBAA0B,CAC1B,UAAW,CAFX,uBAAwB,CAHxB,iBAAkB,CAClB,OAAQ,CACR,SAIF,CAEA,uCACE,MACF,CAEA,wCACE,OACF,CAIA,aASE,sEACc,CAHd,WAAY,CACZ,gBAAiB,CAFjB,UAKF,CAIA,wCACE,wDACF,CAGA,gCACE,wDACF,CAEA,oCACE,wDACF,CAEA,4BAEE,iCAA0C,CAC1C,cAAe,CAFf,sBAGF,CAEA,0BAEE,oBAAqB,CADrB,iBAEF,CAEA,yBAGE,kBAAmB,CADnB,YAAa,CAEb,YAAa,CAHb,iBAIF,CAEA,gCAME,mEACM,CACN,UAAW,CALX,aAAc,CAEd,WAAY,CAHZ,UAAW,CAOX,UAAY,CARZ,iBAAkB,CAGlB,UAMF,CAEA,mCACE,YAAa,CAGb,OAAQ,CAFR,wBAAyB,CACzB,cAEF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n/* Use this class to implement a button in the top menu bar.\n * This overrides most browser styles, for both links and buttons. */\n/* stylelint-disable order/properties-order */\n.menuButtonsButton {\n position: relative; /* This allows to absolutely position its children */\n display: flex;\n height: 100%;\n align-items: center;\n padding: 0 12px;\n border: 0;\n margin: 0;\n background: none;\n white-space: nowrap;\n\n /* Inherit some properties values from the environment, rather than using the\n * browser default for buttons or links. */\n color: inherit;\n font-size: inherit;\n\n /* These 2 styles are specific for links. */\n cursor: default;\n text-decoration: none;\n}\n/* stylelint-enable order/properties-order */\n\n.menuButtonsButton:hover {\n background-color: rgb(0 0 0 / 0.1);\n}\n\n.buttonWithPanel.open > .menuButtonsButton,\n.menuButtonsButton:hover:active {\n background-color: rgb(0 0 0 / 0.2);\n}\n\n/* Use this class if a button has an icon */\n.menuButtonsButton-hasIcon::before {\n /* The icon size and width and height are defined as 12px so that we control\n * better their size.\n * Then it has 4px padding on the right side (because it's at the left of the\n * content), and the image is at the left of this space.\n * So here is the layout for this element:\n * <-left padding-> <-ICON (12px)-> <-4px-> CONTENT\n */\n width: 12px;\n height: 12px;\n padding-right: 4px;\n background: no-repeat left/12px;\n content: '';\n}\n\n/* position: relative so that we can use position: absolute for the generated\n * element below. */\n.menuButtonsButton-hasRightBorder,\n.menuButtonsButton-hasLeftBorder {\n position: relative;\n}\n\n/* These classes define respectively a right or a left border. We use ::after for\n * both of them, so one element won't be able to have both a right and a left\n * borders with this technique.\n * We're using ::after for borders because ::before is used for icons. */\n.menuButtonsButton-hasRightBorder::after,\n.menuButtonsButton-hasLeftBorder::after {\n position: absolute;\n top: 4px;\n width: 1px;\n height: calc(100% - 8px);\n background: var(--grey-30);\n content: '';\n}\n\n.menuButtonsButton-hasLeftBorder::after {\n left: 0;\n}\n\n.menuButtonsButton-hasRightBorder::after {\n right: 0;\n}\n\n/* This icon is defined as a separate element, so that it can possibly be reused\n * in other places. */\n.open-in-new {\n /* The icon size and width and height are defined as 12px so that we control\n * better their size.\n * Then it has 4px padding on the left side (because it's at the right of the\n * content), and the image is at the right of this space.\n */\n width: 12px;\n height: 12px;\n padding-left: 4px;\n background: url(firefox-profiler-res/img/svg/open-in-new-12.svg) no-repeat\n right / 12px;\n}\n\n/* These classes define respective states for the metainfo button. They change\n * the icon whose generic styles are defined above. */\n.menuButtonsMetaInfoButtonButton::before {\n background-image: url(firefox-profiler-res/img/svg/info-12.svg);\n}\n\n/* This is the revert button, appearing after publishing a profile. */\n.menuButtonsRevertButton::before {\n background-image: url(firefox-profiler-res/img/svg/undo-dark-12.svg);\n}\n\n.menuButtonsRevertToFullView::before {\n background-image: url(firefox-profiler-res/img/svg/maximize-dark-12.svg);\n}\n\n.profileInfoUploadedActions {\n padding: 8px 0 8px 40px; /* The 40px padding leaves the room for the cloud image */\n border-bottom: 1px solid rgb(0 0 0 / 0.05);\n font-size: 13px;\n}\n\n.profileInfoUploadedLabel {\n padding-right: 8px;\n color: var(--grey-50);\n}\n\n.profileInfoUploadedDate {\n position: relative;\n display: flex;\n align-items: center;\n margin: 8px 0;\n}\n\n.profileInfoUploadedDate::before {\n position: absolute;\n left: -40px;\n display: block;\n width: 32px;\n height: 32px;\n background: url(firefox-profiler-res/img/svg/cloud-dark-12.svg) no-repeat left /\n 32px;\n content: '';\n opacity: 0.5;\n}\n\n.profileInfoUploadedActionsButtons {\n display: flex;\n justify-content: flex-end;\n margin-top: 8px;\n gap: 8px;\n}\n"],sourceRoot:""}]);const y=m},2867:(e,t,n)=>{"use strict";n.d(t,{Z:()=>m});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a),s=n(1667),l=n.n(s),c=new URL(n(2426),n.b),d=new URL(n(4898),n.b),u=i()(o()),h=l()(c),p=l()(d);u.push([e.id,`.profileDeleteButtonSuccess{background:url(${h}) no-repeat 0/16px 16px;margin:0;padding-left:20px;white-space:nowrap}.profileDeleteButtonError{background:url(${p}) no-repeat 0 4px/16px 16px;color:var(--red-60);padding-left:24px;word-break:break-word}.profileDeletePanel{max-width:80vw;width:500px}`,"",{version:3,sources:["webpack://./src/components/app/ProfileDeleteButton.css"],names:[],mappings:"AAIA,4BAIE,wEACM,CAFN,QAAS,CADT,iBAAkB,CAIlB,kBACF,CAEA,0BAKE,4EACM,CACN,mBAAoB,CALpB,iBAAkB,CAMlB,qBACF,CAEA,oBAEE,cAAe,CADf,WAEF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.profileDeleteButtonSuccess {\n /* Note: 20px is: 16px (icon width) + 4px (distance from the text) */\n padding-left: 20px;\n margin: 0;\n background: url(../../../res/img/svg/check-dark.svg) no-repeat left / 16px\n 16px;\n white-space: nowrap;\n}\n\n.profileDeleteButtonError {\n /* Note: 24px is: 16px (icon width) + 4px (icon padding) + 4px (distance from the text) */\n padding-left: 24px;\n\n /* The icon is 4px below the top */\n background: url(../../../res/img/svg/error-red.svg) no-repeat 0 4px / 16px\n 16px;\n color: var(--red-60);\n word-break: break-word;\n}\n\n.profileDeletePanel {\n width: 500px;\n max-width: 80vw;\n}\n"],sourceRoot:""}]);const m=u},9576:(e,t,n)=>{"use strict";n.d(t,{Z:()=>h});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a),s=n(1667),l=n.n(s),c=new URL(n(6013),n.b),d=i()(o()),u=l()(c);d.push([e.id,`.profileNameInput{border:none;border-radius:1px;color:var(--grey-60);font:inherit;font-weight:700;height:17px;line-height:17px;margin:4px;padding:0 6px}.profileNameButton{font-weight:700;margin-inline-end:5px;overflow:hidden;padding:0 9px;text-overflow:ellipsis;white-space:nowrap}.profileNameButton:before{background-image:url(${u})}.profileNameInput:focus-visible{box-shadow:0 0 0 2px var(--blue-50),0 0 0 4px var(--blue-50-a30);outline:0}`,"",{version:3,sources:["webpack://./src/components/app/ProfileName.css"],names:[],mappings:"AAIA,kBAGE,WAAY,CACZ,iBAAkB,CAElB,oBAAqB,CACrB,YAAa,CACb,eAAgB,CAPhB,WAAY,CAQZ,gBAAiB,CAJjB,UAAW,CAHX,aAQF,CAEA,mBAGE,eAAgB,CAChB,qBAAsB,CAHtB,eAAgB,CAChB,aAAc,CAGd,sBAAuB,CACvB,kBACF,CAEA,0BACE,wDACF,CAIA,gCACE,gEAE8B,CAC9B,SACF",sourcesContent:["/* this source code form is subject to the terms of the mozilla public\n * license, v. 2.0. if a copy of the mpl was not distributed with this\n * file, you can obtain one at http://mozilla.org/mpl/2.0/. */\n\n.profileNameInput {\n height: 17px;\n padding: 0 6px;\n border: none;\n border-radius: 1px;\n margin: 4px;\n color: var(--grey-60);\n font: inherit;\n font-weight: 700;\n line-height: 17px;\n}\n\n.profileNameButton {\n overflow: hidden;\n padding: 0 9px;\n font-weight: 700;\n margin-inline-end: 5px;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.profileNameButton::before {\n background-image: url(firefox-profiler-res/img/svg/edit-name-profiler.svg);\n}\n\n/* Using the style for links rather than for normal inputs, because we don't\n * want to trigger a border that would move things around. */\n.profileNameInput:focus-visible {\n box-shadow:\n 0 0 0 2px var(--blue-50),\n 0 0 0 4px var(--blue-50-a30);\n outline: 0;\n}\n"],sourceRoot:""}]);const h=d},6831:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".rootMessageContainer{align-items:center;display:flex;height:100%;justify-content:center;left:0;position:absolute;top:0;width:100%}.rootMessage{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 5px 25px #0b1f50;box-sizing:border-box;font-size:130%;max-width:600px;overflow:hidden;padding:3em;width:80%}.rootBackHomeLink,.rootMessageAdditional,.rootMessageText{line-height:1.5}.rootMessageTitle{margin-top:0}.rootMessageAdditional{border-top:1px solid #ccc;font-size:12px;margin-top:1em;padding-top:1em}.loading{height:40px;margin-top:10px;position:relative}.loading-div{animation-duration:4s;animation-iteration-count:infinite;animation-name:loadingdiv;border-radius:2px;height:8px;position:absolute}.loading-row-1{top:0}.loading-row-2{top:10px}.loading-row-3{top:20px}.loading-row-4{top:30px}.loading-div-1{animation-delay:-.9s;background-color:var(--red-50);width:100%}.loading-div-2{animation-delay:-.8s;background-color:var(--blue-50);left:1%;width:97%}.loading-div-3{animation-delay:-.7s;background-color:var(--orange-50);left:5%;width:30%}.loading-div-4{animation-delay:-.6s;left:43%;width:53%}.loading-div-4,.loading-div-5{background-color:var(--purple-50)}.loading-div-5{animation-delay:-.5s;left:8%;width:14%}.loading-div-6{animation-delay:-.4s;background-color:var(--green-50);left:23%;width:11%}.loading-div-7{animation-delay:-.3s;left:44%;width:15%}.loading-div-7,.loading-div-8{background-color:var(--orange-50)}.loading-div-8{animation-delay:-.2s;left:60%;width:17%}.loading-div-9{animation-delay:-.1s;background-color:var(--blue-50);left:78%;width:2%}.loading-div-10{animation-delay:0ms;background-color:var(--green-60);left:81%;width:11%}@keyframes loadingdiv{0%{opacity:0;transform:translateX(100px)}20%{opacity:0;transform:translateX(100px)}45%{opacity:1;transform:translateX(0)}65%{opacity:1;transform:translateX(0)}to{opacity:0;transform:translateX(-100px)}}@media (prefers-reduced-motion){.loading-div{animation:none}}","",{version:3,sources:["webpack://./src/components/app/ProfileRootMessage.css"],names:[],mappings:"AAIA,sBAOE,kBAAmB,CAHnB,YAAa,CAEb,WAAY,CAEZ,sBAAuB,CALvB,MAAO,CAFP,iBAAkB,CAClB,KAAM,CAGN,UAIF,CAEA,aAQE,qBAAsB,CAFtB,qBAAsB,CACtB,iBAAkB,CAElB,6BAA8B,CAL9B,qBAAsB,CAMtB,cAAe,CAPf,eAAgB,CAFhB,eAAgB,CAIhB,WAAY,CAHZ,SASF,CAEA,0DAGE,eACF,CAEA,kBACE,YACF,CAEA,uBAEE,yBAA0B,CAE1B,cAAe,CADf,cAAe,CAFf,eAIF,CAEA,SAEE,WAAY,CACZ,eAAgB,CAFhB,iBAGF,CAEA,aAIE,qBAA0B,CAC1B,kCAAmC,CACnC,yBAA0B,CAH1B,iBAAkB,CADlB,UAAW,CADX,iBAMF,CAEA,eACE,KACF,CAEA,eACE,QACF,CAEA,eACE,QACF,CAEA,eACE,QACF,CAEA,eAEE,oBAAuB,CACvB,8BAA+B,CAF/B,UAGF,CAEA,eAGE,oBAAuB,CACvB,+BAAgC,CAHhC,OAAQ,CACR,SAGF,CAEA,eAGE,oBAAuB,CACvB,iCAAkC,CAHlC,OAAQ,CACR,SAGF,CAEA,eAGE,oBAAuB,CAFvB,QAAS,CACT,SAGF,CAEA,8BAHE,iCAQF,CALA,eAGE,oBAAuB,CAFvB,OAAQ,CACR,SAGF,CAEA,eAGE,oBAAuB,CACvB,gCAAiC,CAHjC,QAAS,CACT,SAGF,CAEA,eAGE,oBAAuB,CAFvB,QAAS,CACT,SAGF,CAEA,8BAHE,iCAQF,CALA,eAGE,oBAAuB,CAFvB,QAAS,CACT,SAGF,CAEA,eAGE,oBAAuB,CACvB,+BAAgC,CAHhC,QAAS,CACT,QAGF,CAEA,gBAGE,mBAAoB,CACpB,gCAAiC,CAHjC,QAAS,CACT,SAGF,CAEA,sBACE,GACE,SAAU,CACV,2BACF,CAEA,IACE,SAAU,CACV,2BACF,CAEA,IACE,SAAU,CACV,uBACF,CAEA,IACE,SAAU,CACV,uBACF,CAEA,GACE,SAAU,CACV,4BACF,CACF,CAKA,gCACE,aACE,cACF,CACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.rootMessageContainer {\n position: absolute;\n top: 0;\n left: 0;\n display: flex;\n width: 100%;\n height: 100%;\n align-items: center;\n justify-content: center;\n}\n\n.rootMessage {\n overflow: hidden;\n width: 80%;\n max-width: 600px;\n box-sizing: border-box;\n padding: 3em;\n border: 1px solid #ccc;\n border-radius: 3px;\n background-color: #fff;\n box-shadow: 0 5px 25px #0b1f50;\n font-size: 130%;\n}\n\n.rootMessageText,\n.rootMessageAdditional,\n.rootBackHomeLink {\n line-height: 1.5;\n}\n\n.rootMessageTitle {\n margin-top: 0;\n}\n\n.rootMessageAdditional {\n padding-top: 1em;\n border-top: 1px solid #ccc;\n margin-top: 1em;\n font-size: 12px;\n}\n\n.loading {\n position: relative;\n height: 40px;\n margin-top: 10px;\n}\n\n.loading-div {\n position: absolute;\n height: 8px;\n border-radius: 2px;\n animation-duration: 4000ms;\n animation-iteration-count: infinite;\n animation-name: loadingdiv;\n}\n\n.loading-row-1 {\n top: 0;\n}\n\n.loading-row-2 {\n top: 10px;\n}\n\n.loading-row-3 {\n top: 20px;\n}\n\n.loading-row-4 {\n top: 30px;\n}\n\n.loading-div-1 {\n width: 100%;\n animation-delay: -900ms;\n background-color: var(--red-50);\n}\n\n.loading-div-2 {\n left: 1%;\n width: 97%;\n animation-delay: -800ms;\n background-color: var(--blue-50);\n}\n\n.loading-div-3 {\n left: 5%;\n width: 30%;\n animation-delay: -700ms;\n background-color: var(--orange-50);\n}\n\n.loading-div-4 {\n left: 43%;\n width: 53%;\n animation-delay: -600ms;\n background-color: var(--purple-50);\n}\n\n.loading-div-5 {\n left: 8%;\n width: 14%;\n animation-delay: -500ms;\n background-color: var(--purple-50);\n}\n\n.loading-div-6 {\n left: 23%;\n width: 11%;\n animation-delay: -400ms;\n background-color: var(--green-50);\n}\n\n.loading-div-7 {\n left: 44%;\n width: 15%;\n animation-delay: -300ms;\n background-color: var(--orange-50);\n}\n\n.loading-div-8 {\n left: 60%;\n width: 17%;\n animation-delay: -200ms;\n background-color: var(--orange-50);\n}\n\n.loading-div-9 {\n left: 78%;\n width: 2%;\n animation-delay: -100ms;\n background-color: var(--blue-50);\n}\n\n.loading-div-10 {\n left: 81%;\n width: 11%;\n animation-delay: 0ms;\n background-color: var(--green-60);\n}\n\n@keyframes loadingdiv {\n 0% {\n opacity: 0;\n transform: translateX(100px);\n }\n\n 20% {\n opacity: 0;\n transform: translateX(100px);\n }\n\n 45% {\n opacity: 1;\n transform: translateX(0);\n }\n\n 65% {\n opacity: 1;\n transform: translateX(0);\n }\n\n 100% {\n opacity: 0;\n transform: translateX(-100px);\n }\n}\n\n/* Do not animate the loading animation when user prefers reduced motion. The\n * other alternative was to remove these boxes completely, but it's still nice\n * to keep the boxes as a nice visualization. */\n@media (prefers-reduced-motion) {\n .loading-div {\n animation: none;\n }\n}\n"],sourceRoot:""}]);const s=i},3584:(e,t,n)=>{"use strict";n.d(t,{Z:()=>h});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a),s=n(1667),l=n.n(s),c=new URL(n(2039),n.b),d=i()(o()),u=l()(c);d.push([e.id,`@keyframes profileViewerFadeIn{0%{opacity:0}to{opacity:1}}@keyframes profileViewerFadeInSanitized{0%{opacity:0;transform:scale(1.05)}to{opacity:1}}@keyframes profileViewerFadeOut{0%{opacity:1}to{opacity:0;transform:scale(.95)}}.profileViewerWrapper{display:flex;flex:1;min-width:0}.profileViewerWrapperBackground{background-color:var(--grey-40)}.profileViewer{animation-duration:.2s;animation-name:profileViewerFadeIn;background-color:#fff;display:flex;flex:1;flex-flow:column nowrap;min-width:0}.profileViewerFadeOut{animation-duration:.3s;animation-name:profileViewerFadeOut;opacity:0;pointer-events:none}.profileViewerFadeInSanitized{animation-duration:.5s;animation-name:profileViewerFadeInSanitized}.profileViewerZipButton{background:var(--green-50) url(${u}) center center no-repeat;border:1px solid var(--green-60);border-radius:3px;color:#000;flex:none;height:18px;margin:3px 0 3px 3px;padding:0;width:18px}.profileViewerZipButton:hover{border-color:#000}.profileViewerSplitter{position:relative;z-index:0}.profileViewerSplitter>.layout-pane:not(.layout-pane-primary){display:flex;flex-direction:column;max-height:var(--profile-viewer-splitter-max-height);overflow:hidden}.profileViewerTopBar{background:var(--grey-10);border-bottom:1px solid var(--grey-30);display:flex;flex:none;flex-flow:row nowrap;height:24px;margin:0;padding:0}.profileViewerSpacer{flex:1}@media (prefers-reduced-motion){.profileViewer,.profileViewerFadeInSanitized,.profileViewerFadeOut{animation:none}}`,"",{version:3,sources:["webpack://./src/components/app/ProfileViewer.css"],names:[],mappings:"AAIA,+BACE,GACE,SACF,CAEA,GACE,SACF,CACF,CAEA,wCACE,GACE,SAAU,CACV,qBACF,CAEA,GACE,SACF,CACF,CAEA,gCACE,GACE,SACF,CAEA,GACE,SAAU,CACV,oBACF,CACF,CAEA,sBACE,YAAa,CAEb,MAAO,CADP,WAEF,CAEA,gCACE,+BACF,CAEA,eAKE,sBAAyB,CACzB,kCAAmC,CACnC,qBAAsB,CANtB,YAAa,CAEb,MAAO,CACP,uBAAwB,CAFxB,WAMF,CAEA,sBAEE,sBAAyB,CACzB,mCAAoC,CACpC,SAAU,CACV,mBACF,CAEA,8BACE,sBAAyB,CACzB,2CACF,CAEA,wBAaE,0FACkB,CANlB,gCAAiC,CACjC,iBAAkB,CAMlB,UAAW,CATX,SAAU,CAHV,WAAY,CAOZ,oBAAqB,CAHrB,SAAU,CALV,UAcF,CAEA,8BACE,iBACF,CAEA,uBAIE,iBAAkB,CAClB,SACF,CAEA,8DACE,YAAa,CAGb,qBAAsB,CADtB,oDAAqD,CADrD,eAGF,CAEA,qBAQE,yBAA0B,CAF1B,sCAAuC,CALvC,YAAa,CAEb,SAAU,CACV,oBAAqB,CAFrB,WAAY,CAKZ,QAAS,CAFT,SAIF,CAEA,qBACE,MACF,CAIA,gCACE,mEAGE,cACF,CACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n@keyframes profileViewerFadeIn {\n 0% {\n opacity: 0;\n }\n\n 100% {\n opacity: 1;\n }\n}\n\n@keyframes profileViewerFadeInSanitized {\n 0% {\n opacity: 0;\n transform: scale(1.05);\n }\n\n 100% {\n opacity: 1;\n }\n}\n\n@keyframes profileViewerFadeOut {\n 0% {\n opacity: 1;\n }\n\n 100% {\n opacity: 0;\n transform: scale(0.95);\n }\n}\n\n.profileViewerWrapper {\n display: flex;\n min-width: 0;\n flex: 1;\n}\n\n.profileViewerWrapperBackground {\n background-color: var(--grey-40);\n}\n\n.profileViewer {\n display: flex;\n min-width: 0; /* This allows Flexible Layout to shrink this further than its min-content */\n flex: 1;\n flex-flow: column nowrap;\n animation-duration: 200ms;\n animation-name: profileViewerFadeIn;\n background-color: #fff;\n}\n\n.profileViewerFadeOut {\n /* Keep this duration in sync with the value in hideStaleProfile() */\n animation-duration: 300ms;\n animation-name: profileViewerFadeOut;\n opacity: 0;\n pointer-events: none;\n}\n\n.profileViewerFadeInSanitized {\n animation-duration: 500ms;\n animation-name: profileViewerFadeInSanitized;\n}\n\n.profileViewerZipButton {\n /* Position */\n width: 18px;\n height: 18px;\n\n /* Box */\n flex: none;\n padding: 0;\n border: 1px solid var(--green-60);\n border-radius: 3px;\n margin: 3px 0 3px 3px;\n\n /* Other */\n background: var(--green-50) url(../../../res/img/svg/back-arrow.svg) center\n center no-repeat;\n color: #000;\n}\n\n.profileViewerZipButton:hover {\n border-color: #000;\n}\n\n.profileViewerSplitter {\n /* Create a stacking context, so that the KeyboardShortcut can overlay the profile\n viewer. In addition, the built-in class uses position: absolute, which is not\n appropriate here. */\n position: relative;\n z-index: 0;\n}\n\n.profileViewerSplitter > .layout-pane:not(.layout-pane-primary) {\n display: flex;\n overflow: hidden;\n max-height: var(--profile-viewer-splitter-max-height);\n flex-direction: column;\n}\n\n.profileViewerTopBar {\n display: flex;\n height: 24px;\n flex: none;\n flex-flow: row nowrap;\n padding: 0;\n border-bottom: 1px solid var(--grey-30);\n margin: 0;\n background: var(--grey-10);\n}\n\n.profileViewerSpacer {\n flex: 1;\n}\n\n/* Do no animate the whole profile viewer during loading and publishing if user\n * prefers reduced motion. */\n@media (prefers-reduced-motion) {\n .profileViewer,\n .profileViewerFadeOut,\n .profileViewerFadeInSanitized {\n animation: none;\n }\n}\n"],sourceRoot:""}]);const h=d},9116:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,"#root{display:flex;flex:1;min-width:0;z-index:0}","",{version:3,sources:["webpack://./src/components/app/Root.css"],names:[],mappings:"AAIA,MAEE,YAAa,CAEb,MAAO,CADP,WAAY,CAFZ,SAIF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n#root {\n z-index: 0;\n display: flex;\n min-width: 0; /* This allows Flexible Layout to shrink this further than its min-content */\n flex: 1;\n}\n"],sourceRoot:""}]);const s=i},9712:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".serviceworker-ready-notice-wrapper{display:flex;left:0;pointer-events:none;position:fixed;right:0;top:0;z-index:4}.serviceworker-ready-notice{margin:0 auto;pointer-events:auto}","",{version:3,sources:["webpack://./src/components/app/ServiceWorkerManager.css"],names:[],mappings:"AAIA,oCASE,YAAa,CAHb,MAAO,CAMP,mBAAoB,CAVpB,cAAe,CAGf,OAAQ,CADR,KAAM,CADN,SAUF,CAEA,4BACE,aAAc,CACd,mBACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.serviceworker-ready-notice-wrapper {\n /* Position */\n position: fixed;\n z-index: 4;\n top: 0;\n right: 0;\n left: 0;\n\n /* Box */\n display: flex;\n\n /* Other */\n pointer-events: none;\n}\n\n.serviceworker-ready-notice {\n margin: 0 auto;\n pointer-events: auto;\n}\n"],sourceRoot:""}]);const s=i},1528:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".symbolicationStatusOverlay{background:var(--grey-20);border-radius:0 0 5px 5px;box-shadow:0 0 0 .5px #0000001a,0 2px 4px #0000001a;height:20px;left:30%;line-height:20px;overflow:hidden;padding-left:10px;padding-right:10px;padding-top:8px;position:fixed;right:30%;text-align:center;text-overflow:ellipsis;top:-8px;transition:transform .2s ease-in-out,opacity .2s ease-in-out;white-space:nowrap;will-change:opacity,transform}.symbolicationStatusOverlay.hidden{opacity:0;transform:translateY(-30px)}","",{version:3,sources:["webpack://./src/components/app/SymbolicationStatusOverlay.css"],names:[],mappings:"AAIA,4BAWE,yBAA0B,CAD1B,yBAA0B,CAE1B,mDAE4B,CAR5B,WAAY,CAFZ,QAAS,CAWT,gBAAiB,CAVjB,eAAgB,CAIhB,iBAAkB,CADlB,kBAAmB,CADnB,eAAgB,CANhB,cAAe,CAEf,SAAU,CAaV,iBAAkB,CAClB,sBAAuB,CAfvB,QAAS,CAgBT,4DAE0B,CAC1B,kBAAmB,CACnB,6BACF,CAEA,mCACE,SAAU,CACV,2BACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.symbolicationStatusOverlay {\n position: fixed;\n top: -8px;\n right: 30%;\n left: 30%;\n overflow: hidden;\n height: 20px;\n padding-top: 8px;\n padding-right: 10px;\n padding-left: 10px;\n border-radius: 0 0 5px 5px;\n background: var(--grey-20);\n box-shadow:\n 0 0 0 0.5px rgb(0 0 0 / 0.1),\n 0 2px 4px rgb(0 0 0 / 0.1);\n line-height: 20px;\n text-align: center;\n text-overflow: ellipsis;\n transition:\n transform 0.2s ease-in-out,\n opacity 0.2s ease-in-out;\n white-space: nowrap;\n will-change: opacity, transform;\n}\n\n.symbolicationStatusOverlay.hidden {\n opacity: 0;\n transform: translateY(-30px);\n}\n"],sourceRoot:""}]);const s=i},5752:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,'.tabBarTabButton{background:none;border:none;font:inherit;height:100%;margin:0;overflow:hidden;padding:0;text-overflow:ellipsis;width:100%}.tabBarTabWrapper{display:flex;flex-flow:row nowrap;list-style:none;margin:0 -.5px;min-width:0;padding:0}.tabBarTab{background-clip:padding-box;border:solid #0000;border-width:0 1px;cursor:default;font-size:12px;margin:0 -.5px;min-width:8em;padding:6px 4px;position:relative;text-align:center;-webkit-user-select:none;user-select:none;white-space:nowrap}.tabBarTab,.tabBarTab:before{transition:background-color .2s,border-color .2s;transition-timing-function:var(--animation-timing)}.tabBarTab:before{background-color:initial;content:"";height:2px;left:-1px;position:absolute;right:-1px;top:0}.tabBarTab.selected:before{background-color:var(--blue-50);transition:none}.tabBarTab:not(.selected):hover{background-color:var(--grey-20);border-color:var(--grey-20)}.tabBarTab:not(.selected):hover:before{background-color:var(--grey-40)}.tabBarTab.selected{background:#fff;border-color:var(--grey-30);color:var(--blue-60);margin-bottom:-1px;transition:none;z-index:1}',"",{version:3,sources:["webpack://./src/components/app/TabBar.css"],names:[],mappings:"AAKA,iBAOE,eAAgB,CAFhB,WAAY,CAGZ,YAAa,CALb,WAAY,CAGZ,QAAS,CALT,eAAgB,CAGhB,SAAU,CAKV,sBAAuB,CAPvB,UAQF,CAEA,kBACE,YAAa,CAEb,oBAAqB,CAGrB,eAAgB,CADhB,cAAgB,CAHhB,WAAY,CAEZ,SAGF,CAEA,WAOE,2BAA4B,CAF5B,kBAAmB,CAAnB,kBAAmB,CAGnB,cAAe,CACf,cAAe,CAHf,cAAgB,CAJhB,aAAc,CACd,eAAgB,CAFhB,iBAAkB,CASlB,iBAAkB,CAKlB,wBAAiB,CAAjB,gBAAiB,CACjB,kBACF,CAGA,6BATE,gDAEoB,CACpB,kDAkBF,CAZA,kBAME,wBAA6B,CAC7B,UAAW,CAFX,UAAW,CADX,SAAU,CAHV,iBAAkB,CAElB,UAAW,CADX,KAUF,CAEA,2BACE,+BAAgC,CAChC,eACF,CAEA,gCAEE,+BAAgC,CADhC,2BAEF,CAEA,uCACE,+BACF,CAEA,oBAIE,eAAgB,CAFhB,2BAA4B,CAG5B,oBAAqB,CAFrB,kBAAmB,CAGnB,eAAgB,CALhB,SAMF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n/* Removing styling from the button */\n.tabBarTabButton {\n overflow: hidden;\n width: 100%;\n height: 100%;\n padding: 0;\n border: none;\n margin: 0;\n background: none;\n font: inherit;\n text-overflow: ellipsis;\n}\n\n.tabBarTabWrapper {\n display: flex;\n min-width: 0; /* This makes the tab container actually shrinkable below min-content */\n flex-flow: row nowrap;\n padding: 0;\n margin: 0 -0.5px; /* This combines with the -0.5px horizontal margin of .tabBarTab to clip off the first tab's 1px starting border */\n list-style: none;\n}\n\n.tabBarTab {\n position: relative;\n min-width: 8em;\n padding: 6px 4px;\n border: solid transparent;\n border-width: 0 1px;\n margin: 0 -0.5px; /* This makes the 1px border between adjacent tabs overlap */\n background-clip: padding-box;\n cursor: default;\n font-size: 12px;\n text-align: center;\n transition:\n background-color 200ms,\n border-color 200ms;\n transition-timing-function: var(--animation-timing);\n user-select: none;\n white-space: nowrap;\n}\n\n/* Place the top tab bar in a separate element to avoid tapered corners. */\n.tabBarTab::before {\n position: absolute;\n top: 0;\n right: -1px;\n left: -1px;\n height: 2px;\n background-color: transparent;\n content: '';\n transition:\n background-color 200ms,\n border-color 200ms;\n transition-timing-function: var(--animation-timing);\n}\n\n.tabBarTab.selected::before {\n background-color: var(--blue-50);\n transition: none; /* Switch the background color instantly when a tab is selected */\n}\n\n.tabBarTab:not(.selected):hover {\n border-color: var(--grey-20);\n background-color: var(--grey-20);\n}\n\n.tabBarTab:not(.selected):hover::before {\n background-color: var(--grey-40);\n}\n\n.tabBarTab.selected {\n z-index: 1;\n border-color: var(--grey-30);\n margin-bottom: -1px; /* Expand 1px towards the bottom to cover the tab bar bottom border. */\n background: #fff;\n color: var(--blue-60);\n transition: none; /* Switch the background color instantly when a tab is selected */\n}\n"],sourceRoot:""}]);const s=i},9913:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".uploadedRecordingsHome{background:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 5px 25px #0b1f50;box-sizing:border-box;font-size:13px;line-height:1.5;margin:auto;max-width:900px;padding:3em 1em;width:95%}@media (min-width:600px){.uploadedRecordingsHome .profileMetaInfoSummaryPlatform,.uploadedRecordingsHome .profileMetaInfoSummaryProductAndVersion{flex:none}.uploadedRecordingsHome .profileMetaInfoSummaryProductAndVersion{min-width:8.5em}}@media (min-width:750px){.uploadedRecordingsHome{padding:6%;width:90%}}@media (min-width:1000px){.uploadedRecordingsHome{padding:6em;width:75%}}","",{version:3,sources:["webpack://./src/components/app/UploadedRecordingsHome.css"],names:[],mappings:"AAIA,wBAWE,eAAgB,CALhB,qBAAsB,CACtB,iBAAkB,CAKlB,6BAA8B,CAR9B,qBAAsB,CAStB,cAAe,CACf,eAAgB,CANhB,WAAY,CALZ,eAAgB,CAEhB,eAAgB,CAHhB,SAaF,CAUA,yBACE,yHAEE,SACF,CAEA,iEACE,eACF,CACF,CAEA,yBACE,wBAEE,UAAW,CADX,SAEF,CACF,CAEA,0BACE,wBAEE,WAAY,CADZ,SAEF,CACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.uploadedRecordingsHome {\n /* Box */\n width: 95%;\n max-width: 900px;\n box-sizing: border-box;\n padding: 3em 1em;\n border: 1px solid #ccc;\n border-radius: 3px;\n margin: auto;\n\n /* Other */\n background: #fff;\n box-shadow: 0 5px 25px #0b1f50;\n font-size: 13px;\n line-height: 1.5;\n}\n\n/* In larger screens, we remove the flex characteristics but force some width\n * for the first element.\n * We also add some more padding and change how the width is computed.\n *\n * These values seemed like the right values when testing on Linux. Fonts\n * are usually larger on Linux for the profiler, so in other OSes we could\n * decide that the value is too large, but this is fine. */\n\n@media (min-width: 600px) {\n .uploadedRecordingsHome .profileMetaInfoSummaryProductAndVersion,\n .uploadedRecordingsHome .profileMetaInfoSummaryPlatform {\n flex: none;\n }\n\n .uploadedRecordingsHome .profileMetaInfoSummaryProductAndVersion {\n min-width: 8.5em; /* This tries to align the second element, but we allow it to grow if necessary */\n }\n}\n\n@media (min-width: 750px) {\n .uploadedRecordingsHome {\n width: 90%;\n padding: 6%;\n }\n}\n\n@media (min-width: 1000px) {\n .uploadedRecordingsHome {\n width: 75%;\n padding: 6em;\n }\n}\n"],sourceRoot:""}]);const s=i},2090:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".zipFileViewer{align-items:center;display:flex;justify-content:center;line-height:1.5;min-height:100vh;width:100%}.zipFileViewerHeader{font-size:130%;padding:0 20px}.zipFileViewerSection{background-color:#fff;border:1px solid #ccc;border-radius:3px;box-shadow:0 5px 25px #0b1f50;box-sizing:border-box;display:flex;flex-direction:column;height:75vh;max-width:1200px;overflow:hidden;position:relative;width:75vw}.zipFileViewerSection>.treeView{font-size:14px}.zipFileViewerSection .treeRowToggleButton{margin:0 5px}.zipFileViewerMessage{align-items:center;background-color:#f5f5f5;border-top:1px solid var(--grey-30);display:flex;flex:1;flex-direction:column;font-size:14px;justify-content:center}.zipFileViewerMessage>*{margin:10px 30px}.zipFileViewerUntrustedFilePath{background-color:var(--grey-30);border-radius:3px;display:inline-block;font-family:monospace;max-width:70%;overflow:hidden;padding:0 5px;text-overflow:ellipsis}","",{version:3,sources:["webpack://./src/components/app/ZipFileViewer.css"],names:[],mappings:"AAIA,eAIE,kBAAmB,CAHnB,YAAa,CAIb,sBAAuB,CACvB,eAAgB,CAHhB,gBAAiB,CADjB,UAKF,CAEA,qBAEE,cAAe,CADf,cAEF,CAEA,sBAgBE,qBAAsB,CAJtB,qBAAsB,CACtB,iBAAkB,CAIlB,6BAA8B,CAP9B,qBAAsB,CAPtB,YAAa,CAQb,qBAAsB,CAJtB,WAAY,CADZ,gBAAiB,CAFjB,eAAgB,CAFhB,iBAAkB,CAGlB,UAaF,CAEA,gCACE,cACF,CAEA,2CACE,YACF,CAEA,sBAKE,kBAAmB,CAKnB,wBAAyB,CAHzB,mCAAoC,CALpC,YAAa,CACb,MAAO,CACP,qBAAsB,CAOtB,cAAe,CALf,sBAMF,CAEA,wBACE,gBACF,CAEA,gCAWE,+BAAgC,CADhC,iBAAkB,CATlB,oBAAqB,CAWrB,qBAAsB,CAJtB,aAAc,CANd,eAAgB,CAOhB,aAAc,CAId,sBACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.zipFileViewer {\n display: flex;\n width: 100%;\n min-height: 100vh;\n align-items: center;\n justify-content: center;\n line-height: 1.5;\n}\n\n.zipFileViewerHeader {\n padding: 0 20px;\n font-size: 130%;\n}\n\n.zipFileViewerSection {\n /* Position */\n position: relative;\n display: flex;\n overflow: hidden;\n width: 75vw;\n max-width: 1200px;\n height: 75vh;\n\n /* Box */\n box-sizing: border-box;\n flex-direction: column;\n border: 1px solid #ccc;\n border-radius: 3px;\n\n /* Other */\n background-color: #fff;\n box-shadow: 0 5px 25px #0b1f50;\n}\n\n.zipFileViewerSection > .treeView {\n font-size: 14px;\n}\n\n.zipFileViewerSection .treeRowToggleButton {\n margin: 0 5px;\n}\n\n.zipFileViewerMessage {\n /* Box */\n display: flex;\n flex: 1;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n border-top: 1px solid var(--grey-30);\n\n /* Other */\n background-color: #f5f5f5;\n font-size: 14px;\n}\n\n.zipFileViewerMessage > * {\n margin: 10px 30px;\n}\n\n.zipFileViewerUntrustedFilePath {\n display: inline-block;\n overflow: hidden;\n\n /**\n * Make the max width 50% so that some random user can't spam a bunch of misleading\n * content into an error message on profiler.firefox.com.\n */\n max-width: 70%;\n padding: 0 5px;\n border-radius: 3px;\n background-color: var(--grey-30);\n font-family: monospace;\n text-overflow: ellipsis;\n}\n"],sourceRoot:""}]);const s=i},4607:(e,t,n)=>{"use strict";n.d(t,{Z:()=>h});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a),s=n(1667),l=n.n(s),c=new URL(n(65),n.b),d=i()(o()),u=l()(c);d.push([e.id,`.treeViewHeaderColumn.self,.treeViewHeaderColumn.total{text-align:right}.treeViewHeaderColumn.totalPercent{display:none}.treeViewFixedColumn.self{width:70px}.treeViewFixedColumn.icon{align-items:center;display:flex;flex-flow:column nowrap}.treeViewRowColumn.self,.treeViewRowColumn.timestamp,.treeViewRowColumn.total,.treeViewRowColumn.totalPercent{text-align:right}.treeBadge.divergent-inlining,.treeBadge.inlined{background:url(${u})}`,"",{version:3,sources:["webpack://./src/components/calltree/CallTree.css"],names:[],mappings:"AAIA,uDAEE,gBACF,CAGA,mCACE,YACF,CAEA,0BACE,UACF,CAEA,0BAGE,kBAAmB,CAFnB,YAAa,CACb,uBAEF,CAEA,8GAIE,gBACF,CAEA,iDAEE,kDACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.treeViewHeaderColumn.total,\n.treeViewHeaderColumn.self {\n text-align: right;\n}\n\n/* The header for the totalPercent column is not visible */\n.treeViewHeaderColumn.totalPercent {\n display: none;\n}\n\n.treeViewFixedColumn.self {\n width: 70px;\n}\n\n.treeViewFixedColumn.icon {\n display: flex;\n flex-flow: column nowrap;\n align-items: center;\n}\n\n.treeViewRowColumn.total,\n.treeViewRowColumn.totalPercent,\n.treeViewRowColumn.self,\n.treeViewRowColumn.timestamp {\n text-align: right;\n}\n\n.treeBadge.inlined,\n.treeBadge.divergent-inlining {\n background: url(../../../res/img/svg/inlined-icon.svg);\n}\n"],sourceRoot:""}]);const h=d},5885:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".flameGraphCanvas{left:0;position:absolute;top:0}.flameGraphCanvasTooltip{padding:5px}.flameGraphCanvasTooltip>.tooltipHeader{grid-gap:2px 0;display:grid;grid-template-columns:min-content auto}.flameGraphCanvasTooltip .tooltipTitle{overflow:visible;white-space:nowrap}","",{version:3,sources:["webpack://./src/components/flame-graph/Canvas.css"],names:[],mappings:"AAIA,kBAGE,MAAO,CAFP,iBAAkB,CAClB,KAEF,CAMA,yBACE,WACF,CAEA,wCAEE,cAAe,CADf,YAAa,CAEb,sCACF,CAEA,uCACE,gBAAiB,CACjB,kBACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.flameGraphCanvas {\n position: absolute;\n top: 0;\n left: 0;\n}\n\n/**\n * This tooltip is multi-line and more intense, so add additional whitespace to make it\n * more readable.\n */\n.flameGraphCanvasTooltip {\n padding: 5px;\n}\n\n.flameGraphCanvasTooltip > .tooltipHeader {\n display: grid;\n grid-gap: 2px 0;\n grid-template-columns: min-content auto;\n}\n\n.flameGraphCanvasTooltip .tooltipTitle {\n overflow: visible;\n white-space: nowrap;\n}\n"],sourceRoot:""}]);const s=i},5246:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".flameGraph{display:flex;flex:1;flex-flow:column;overflow:hidden}.flameGraphContent{border-top:1px solid var(--grey-30);display:flex;flex:1;flex-direction:row}","",{version:3,sources:["webpack://./src/components/flame-graph/FlameGraph.css"],names:[],mappings:"AAIA,YACE,YAAa,CAEb,MAAO,CACP,gBAAiB,CAFjB,eAGF,CAEA,mBAIE,mCAAoC,CAHpC,YAAa,CACb,MAAO,CACP,kBAEF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.flameGraph {\n display: flex;\n overflow: hidden;\n flex: 1;\n flex-flow: column;\n}\n\n.flameGraphContent {\n display: flex;\n flex: 1;\n flex-direction: row;\n border-top: 1px solid var(--grey-30);\n}\n"],sourceRoot:""}]);const s=i},6604:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".flameGraphDisabledMessage{align-items:center;background-color:var(--grey-20);box-shadow:inset 0 0 150px #0000001a;display:flex;flex:1;flex-direction:column;font-size:120%;justify-content:center;padding:10px}","",{version:3,sources:["webpack://./src/components/flame-graph/MaybeFlameGraph.css"],names:[],mappings:"AAAA,2BAIE,kBAAmB,CAGnB,+BAAgC,CAChC,oCAA4C,CAP5C,YAAa,CACb,MAAO,CACP,qBAAsB,CAMtB,cAAe,CAJf,sBAAuB,CACvB,YAIF",sourcesContent:[".flameGraphDisabledMessage {\n display: flex;\n flex: 1;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 10px;\n background-color: var(--grey-20);\n box-shadow: inset 0 0 150px rgb(0 0 0 / 0.1);\n font-size: 120%;\n}\n"],sourceRoot:""}]);const s=i},8032:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".jsTracerSettings{border-bottom:1px solid var(--grey-30);color:var(--ink-70);display:flex;flex-flow:row nowrap;height:25px;line-height:25px;padding:0}.jsTracerSettingsList{align-items:flex-start;display:flex;flex:1;list-style:none;margin:0;padding:0}.jsTracerSettingsListItem{margin:0 5px;padding:0}.jsTracerSettingsLabel{align-items:center;display:inline-flex;flex-flow:row nowrap;height:25px;-webkit-user-select:none;user-select:none}.jsTracerSettingsCheckbox{margin:0 5px}.jsTracerSettingsFilter{border-right:1px solid var(--grey-20);padding-right:10px;white-space:nowrap}.jsTracerSettingsFilterLabel{align-items:center;display:inline-flex;padding-right:5px}.jsTracerSettingsFilterInput{margin:0 4px}","",{version:3,sources:["webpack://./src/components/js-tracer/Settings.css"],names:[],mappings:"AAIA,kBAKE,sCAAuC,CACvC,mBAAoB,CALpB,YAAa,CAEb,oBAAqB,CADrB,WAAY,CAKZ,gBAAiB,CAHjB,SAIF,CAEA,sBAGE,sBAAuB,CAFvB,YAAa,CACb,MAAO,CAIP,eAAgB,CADhB,QAAS,CADT,SAGF,CAEA,0BAEE,YAAa,CADb,SAEF,CAEA,uBAIE,kBAAmB,CAHnB,mBAAoB,CAEpB,oBAAqB,CADrB,WAAY,CAGZ,wBAAiB,CAAjB,gBACF,CAEA,0BACE,YACF,CAEA,wBAEE,qCAAsC,CADtC,kBAAmB,CAEnB,kBACF,CAEA,6BAEE,kBAAmB,CADnB,mBAAoB,CAEpB,iBACF,CAEA,6BACE,YACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.jsTracerSettings {\n display: flex;\n height: 25px;\n flex-flow: row nowrap;\n padding: 0;\n border-bottom: 1px solid var(--grey-30);\n color: var(--ink-70);\n line-height: 25px;\n}\n\n.jsTracerSettingsList {\n display: flex;\n flex: 1;\n align-items: flex-start;\n padding: 0;\n margin: 0;\n list-style: none;\n}\n\n.jsTracerSettingsListItem {\n padding: 0;\n margin: 0 5px;\n}\n\n.jsTracerSettingsLabel {\n display: inline-flex;\n height: 25px;\n flex-flow: row nowrap;\n align-items: center;\n user-select: none;\n}\n\n.jsTracerSettingsCheckbox {\n margin: 0 5px;\n}\n\n.jsTracerSettingsFilter {\n padding-right: 10px;\n border-right: 1px solid var(--grey-20);\n white-space: nowrap;\n}\n\n.jsTracerSettingsFilterLabel {\n display: inline-flex;\n align-items: center;\n padding-right: 5px;\n}\n\n.jsTracerSettingsFilterInput {\n margin: 0 4px;\n}\n"],sourceRoot:""}]);const s=i},8263:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".jsTracer{display:flex;flex:1;flex-flow:column nowrap}.jsTracerLoader{align-items:center;background-color:var(--grey-10);border-top:1px solid var(--grey-20);display:flex;flex:1;flex-flow:column;font-size:12px;justify-content:center;vertical-align:middle}.jsTracerCanvasFadeIn{background-color:#fff;opacity:0}.jsTracerCanvasFadeIn.jsTracerCanvasDrawn{opacity:1;transition:opacity .2s}","",{version:3,sources:["webpack://./src/components/js-tracer/index.css"],names:[],mappings:"AAIA,UACE,YAAa,CACb,MAAO,CACP,uBACF,CAEA,gBAIE,kBAAmB,CAGnB,+BAAgC,CADhC,mCAAoC,CALpC,YAAa,CACb,MAAO,CACP,gBAAiB,CAKjB,cAAe,CAHf,sBAAuB,CAIvB,qBACF,CAEA,sBACE,qBAAsB,CACtB,SACF,CAEA,0CACE,SAAU,CACV,sBACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.jsTracer {\n display: flex;\n flex: 1;\n flex-flow: column nowrap;\n}\n\n.jsTracerLoader {\n display: flex;\n flex: 1;\n flex-flow: column;\n align-items: center;\n justify-content: center;\n border-top: solid 1px var(--grey-20);\n background-color: var(--grey-10);\n font-size: 12px;\n vertical-align: middle;\n}\n\n.jsTracerCanvasFadeIn {\n background-color: #fff;\n opacity: 0;\n}\n\n.jsTracerCanvasFadeIn.jsTracerCanvasDrawn {\n opacity: 1;\n transition: opacity 200ms;\n}\n"],sourceRoot:""}]);const s=i},1301:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".markerChart{display:flex;flex:1;flex-flow:column nowrap}.markerChartCanvas{border-top:1px solid var(--grey-30)}","",{version:3,sources:["webpack://./src/components/marker-chart/index.css"],names:[],mappings:"AAIA,aACE,YAAa,CACb,MAAO,CACP,uBACF,CAEA,mBACE,mCACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.markerChart {\n display: flex;\n flex: 1;\n flex-flow: column nowrap;\n}\n\n.markerChartCanvas {\n border-top: 1px solid var(--grey-30);\n}\n"],sourceRoot:""}]);const s=i},9070:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".markerTable{cursor:default;display:flex;flex:1;flex-flow:column nowrap;-webkit-user-select:none;user-select:none}.treeViewFixedColumn.duration,.treeViewFixedColumn.start{text-align:right;width:80px}.treeViewHeaderColumn.name{padding:0 20px}.treeViewFixedColumn.type{width:100px}.treeViewRowColumn.type{text-align:left}","",{version:3,sources:["webpack://./src/components/marker-table/index.css"],names:[],mappings:"AAIA,aAIE,cAAe,CAHf,YAAa,CACb,MAAO,CACP,uBAAwB,CAExB,wBAAiB,CAAjB,gBACF,CAOA,yDAEE,gBAAiB,CADjB,UAEF,CAEA,2BACE,cACF,CAEA,0BACE,WACF,CAEA,wBACE,eACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.markerTable {\n display: flex;\n flex: 1;\n flex-flow: column nowrap;\n cursor: default;\n user-select: none;\n}\n\n.treeViewFixedColumn.start {\n width: 80px;\n text-align: right;\n}\n\n.treeViewFixedColumn.duration {\n width: 80px;\n text-align: right;\n}\n\n.treeViewHeaderColumn.name {\n padding: 0 20px;\n}\n\n.treeViewFixedColumn.type {\n width: 100px;\n}\n\n.treeViewRowColumn.type {\n text-align: left;\n}\n"],sourceRoot:""}]);const s=i},3826:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".networkChart{cursor:default;display:flex;flex:1;flex-flow:column nowrap;-webkit-user-select:none;user-select:none}.networkChart .treeViewBody{border-top:1px solid var(--grey-30)}.networkChart .treeViewBody .treeViewBodyInnerWrapper{flex-flow:column nowrap;width:100%}.networkChartRowItem{display:block;height:16px;width:100%}.networkChartRowItem.odd{background-color:#f5f5f5}.networkChartRowItem.isHovered,.networkChartRowItem.isRightClicked,.networkChartRowItem.isSelected,.networkChartRowItem:hover{background-color:#bbe0f6}.networkChartRowItemLabel{display:inline-block;margin-left:4px;max-height:16px;overflow:hidden;pointer-events:none;white-space:nowrap;width:100%}.networkChartRowItemBar{background-color:var(--grey-20);border-radius:2px;box-shadow:0 0 0 1px inset var(--marker-color);display:inline-block;height:14px;margin:1px 0;opacity:.7;overflow:hidden;position:absolute}.networkChartRowItemBarPhase{background-color:var(--marker-color);height:100%;position:absolute}.networkChartRowItemUriOptional{color:var(--grey-40);max-width:90px}.networkChartRowItemUriOptional,.networkChartRowItemUriRequired{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.networkChartRowItemUriRequired{max-width:35%}.networkChartRowItem:hover .networkChartRowItemUriOptional{color:unset}","",{version:3,sources:["webpack://./src/components/network-chart/index.css"],names:[],mappings:"AAIA,cAIE,cAAe,CAHf,YAAa,CACb,MAAO,CACP,uBAAwB,CAExB,wBAAiB,CAAjB,gBACF,CAEA,4BACE,mCACF,CAEA,sDAEE,uBAAwB,CADxB,UAEF,CAEA,qBACE,aAAc,CAEd,WAAY,CADZ,UAEF,CAEA,yBACE,wBACF,CAEA,8HAIE,wBACF,CAEA,0BACE,oBAAqB,CAIrB,eAAgB,CADhB,eAAgB,CAFhB,eAAgB,CAOhB,mBAAoB,CACpB,kBAAmB,CAPnB,UAQF,CAEA,wBASE,+BAAgC,CAJhC,iBAAkB,CAKlB,8CAA+C,CAR/C,oBAAqB,CAErB,WAAY,CAEZ,YAAa,CAKb,UAAY,CARZ,eAAgB,CAFhB,iBAWF,CAEA,6BAGE,oCAAqC,CADrC,WAAY,CADZ,iBAGF,CAEA,gCAIE,oBAAqB,CADrB,cAIF,CAEA,gEARE,oBAAqB,CACrB,eAAgB,CAGhB,sBAAuB,CACvB,kBASF,CANA,gCAGE,aAGF,CAEA,2DACE,WACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.networkChart {\n display: flex;\n flex: 1;\n flex-flow: column nowrap;\n cursor: default;\n user-select: none;\n}\n\n.networkChart .treeViewBody {\n border-top: 1px solid var(--grey-30);\n}\n\n.networkChart .treeViewBody .treeViewBodyInnerWrapper {\n width: 100%;\n flex-flow: column nowrap;\n}\n\n.networkChartRowItem {\n display: block;\n width: 100%;\n height: 16px;\n}\n\n.networkChartRowItem.odd {\n background-color: #f5f5f5;\n}\n\n.networkChartRowItem:hover,\n.networkChartRowItem.isRightClicked,\n.networkChartRowItem.isSelected,\n.networkChartRowItem.isHovered {\n background-color: #bbe0f6;\n}\n\n.networkChartRowItemLabel {\n display: inline-block;\n overflow: hidden;\n width: 100%;\n max-height: 16px;\n margin-left: 4px;\n\n /* This is necessary so that the marker element gets the mouse events, because\n * the label element is on top becaose of the :hover rule below. */\n pointer-events: none;\n white-space: nowrap;\n}\n\n.networkChartRowItemBar {\n position: absolute; /* The bar will be positioned in JS. */\n display: inline-block;\n overflow: hidden; /* This clips this element's children using its border-radius */\n height: 14px;\n border-radius: 2px;\n margin: 1px 0; /* Because the line's height is 16px, this margin vertically centers the bar */\n\n /* styling properties */\n background-color: var(--grey-20);\n box-shadow: 0 0 0 1px inset var(--marker-color);\n opacity: 0.7;\n}\n\n.networkChartRowItemBarPhase {\n position: absolute;\n height: 100%;\n background-color: var(--marker-color);\n}\n\n.networkChartRowItemUriOptional {\n display: inline-block;\n overflow: hidden;\n max-width: 90px;\n color: var(--grey-40);\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.networkChartRowItemUriRequired {\n display: inline-block;\n overflow: hidden;\n max-width: 35%;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.networkChartRowItem:hover .networkChartRowItemUriOptional {\n color: unset;\n}\n"],sourceRoot:""}]);const s=i},8170:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".backtrace{margin:0;padding:0}.tooltip .backtrace{overflow:hidden}.backtraceStackFrame{list-style:none;margin:0;overflow:hidden;padding:0;text-overflow:ellipsis;white-space:nowrap}.backtraceStackFrameOrigin{color:#0000008c;font-style:normal;margin-left:10px}.backtraceStackFrame_isFrameLabel{color:#0009}","",{version:3,sources:["webpack://./src/components/shared/Backtrace.css"],names:[],mappings:"AAAA,WAEE,QAAS,CADT,SAEF,CAEA,oBACE,eACF,CAEA,qBAOE,eAAgB,CADhB,QAAS,CAJT,eAAgB,CAGhB,SAAU,CAKV,sBAAuB,CACvB,kBACF,CAEA,2BAEE,eAAwB,CACxB,iBAAkB,CAFlB,gBAGF,CAEA,kCACE,WACF",sourcesContent:[".backtrace {\n padding: 0;\n margin: 0;\n}\n\n.tooltip .backtrace {\n overflow: hidden;\n}\n\n.backtraceStackFrame {\n /* Position */\n overflow: hidden;\n\n /* Box */\n padding: 0;\n margin: 0;\n list-style: none;\n\n /* Other */\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.backtraceStackFrameOrigin {\n margin-left: 10px;\n color: rgb(0 0 0 / 0.55);\n font-style: normal;\n}\n\n.backtraceStackFrame_isFrameLabel {\n color: rgb(0 0 0 / 0.6);\n}\n"],sourceRoot:""}]);const s=i},4097:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,'.arrowPanelAnchor{left:50%;position:absolute;top:75%;z-index:10}.arrowPanel{--internal-offset-from-right:var(--offset-from-right,60px);--internal-offset-from-top:15px;--internal-width:var(--width,initial);--internal-button-height:30px;background:#f7f7f7;background-clip:padding-box;border:.5px solid #00000040;border-radius:5px;box-shadow:0 8px 12px #00000059;color:#000;line-height:1.3;min-width:var(--internal-width);position:absolute;right:calc(var(--internal-offset-from-right)*-1);text-align:left;top:var(--internal-offset-from-top);transform-origin:calc(100% - var(--internal-offset-from-right)) calc(var(--internal-offset-from-top)*-1)}.arrowPanel:not(.open){opacity:0;pointer-events:none;transition:opacity .2s ease-out,visibility 0s .2s;visibility:hidden}.arrowPanel.open{animation:arrowPanelAppear .2s cubic-bezier(.07,.95,0,1)}@media (prefers-reduced-motion){.arrowPanel.open{animation:none;opacity:1}}@keyframes arrowPanelAppear{0%{opacity:0;transform:translateY(-25px)}to{opacity:1;transform:none}}.arrowPanelArrow{height:var(--internal-offset-from-top);left:0;overflow:hidden;position:absolute;right:0;top:calc(var(--internal-offset-from-top)*-1)}.arrowPanelArrow:before{background:#f7f7f7;background-clip:padding-box;border:.5px solid #00000040;content:"";display:block;height:calc(var(--internal-offset-from-top)*1.42);left:calc(100% - var(--internal-offset-from-right));position:absolute;top:0;transform:rotate(45deg);transform-origin:top left;width:calc(var(--internal-offset-from-top)*1.42)}.arrowPanelContent{--internal-approx-distance-from-top:60px;--internal-approx-distance-to-bottom:100px;max-height:calc(100vh - var(--internal-approx-distance-from-top) - var(--internal-button-height) - var(--internal-approx-distance-to-bottom));overflow:auto;padding:16px}',"",{version:3,sources:["webpack://./src/components/shared/ButtonWithPanel/ArrowPanel.css"],names:[],mappings:"AAIA,kBAIE,QAAS,CAHT,iBAAkB,CAElB,OAAQ,CADR,UAGF,CAEA,YACE,0DAA4D,CAC5D,+BAAgC,CAChC,qCAAuC,CACvC,6BAA8B,CAQ9B,kBAA4B,CAC5B,2BAA4B,CAH5B,2BAAqC,CACrC,iBAAkB,CAGlB,+BAAwC,CACxC,UAAY,CACZ,eAAgB,CAPhB,+BAAgC,CAHhC,iBAAkB,CAElB,gDAAmD,CASnD,eAAgB,CAVhB,mCAAoC,CAWpC,wGAEF,CAEA,uBACE,SAAU,CACV,mBAAoB,CAGpB,iDAEqB,CAGrB,iBACF,CAEA,iBACE,wDACF,CAEA,gCACE,iBACE,cAAe,CACf,SACF,CACF,CAEA,4BACE,GACE,SAAU,CACV,2BACF,CAEA,GACE,SAAU,CACV,cACF,CACF,CAEA,iBAME,sCAAuC,CAFvC,MAAO,CACP,eAAgB,CAJhB,iBAAkB,CAElB,OAAQ,CADR,4CAKF,CAEA,wBAQE,kBAA4B,CAC5B,2BAA4B,CAF5B,2BAAqC,CAGrC,UAAW,CANX,aAAc,CAEd,iDAAoD,CAHpD,mDAAoD,CAFpD,iBAAkB,CAClB,KAAM,CASN,uBAAwB,CACxB,yBAA0B,CAP1B,gDAQF,CAEA,mBAQE,wCAAyC,CACzC,0CAA2C,CAP3C,6IAGC,CAJD,aAAc,CAKd,YAIF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.arrowPanelAnchor {\n position: absolute;\n z-index: 10;\n top: 75%;\n left: 50%;\n}\n\n.arrowPanel {\n --internal-offset-from-right: var(--offset-from-right, 60px);\n --internal-offset-from-top: 15px;\n --internal-width: var(--width, initial);\n --internal-button-height: 30px;\n\n position: absolute;\n top: var(--internal-offset-from-top);\n right: calc(var(--internal-offset-from-right) * -1);\n min-width: var(--internal-width);\n border: 0.5px solid rgb(0 0 0 / 0.25);\n border-radius: 5px;\n background: hsl(0deg 0% 97%);\n background-clip: padding-box;\n box-shadow: 0 8px 12px rgb(0 0 0 / 0.35);\n color: black;\n line-height: 1.3;\n text-align: left;\n transform-origin: calc(100% - var(--internal-offset-from-right))\n calc(var(--internal-offset-from-top) * -1);\n}\n\n.arrowPanel:not(.open) {\n opacity: 0;\n pointer-events: none;\n\n /* The visibility is set to hidden after the panel closing transition. */\n transition:\n opacity 200ms ease-out,\n visibility 0s 200ms;\n\n /* visibility: hidden hides the panel from the accessibility tree when it's closed */\n visibility: hidden;\n}\n\n.arrowPanel.open {\n animation: arrowPanelAppear 200ms cubic-bezier(0.07, 0.95, 0, 1);\n}\n\n@media (prefers-reduced-motion) {\n .arrowPanel.open {\n animation: none;\n opacity: 1;\n }\n}\n\n@keyframes arrowPanelAppear {\n from {\n opacity: 0;\n transform: translateY(-25px);\n }\n\n to {\n opacity: 1;\n transform: none;\n }\n}\n\n.arrowPanelArrow {\n position: absolute;\n top: calc(var(--internal-offset-from-top) * -1);\n right: 0;\n left: 0;\n overflow: hidden;\n height: var(--internal-offset-from-top);\n}\n\n.arrowPanelArrow::before {\n position: absolute;\n top: 0;\n left: calc(100% - var(--internal-offset-from-right));\n display: block;\n width: calc(1.42 * var(--internal-offset-from-top));\n height: calc(1.42 * var(--internal-offset-from-top));\n border: 0.5px solid rgb(0 0 0 / 0.25);\n background: hsl(0deg 0% 97%);\n background-clip: padding-box;\n content: '';\n transform: rotate(45deg);\n transform-origin: top left;\n}\n\n.arrowPanelContent {\n overflow: auto;\n max-height: calc(\n 100vh - var(--internal-approx-distance-from-top) -\n var(--internal-button-height) - var(--internal-approx-distance-to-bottom)\n );\n padding: 16px;\n\n --internal-approx-distance-from-top: 60px;\n --internal-approx-distance-to-bottom: 100px;\n}\n"],sourceRoot:""}]);const s=i},5271:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".buttonWithPanel{align-items:stretch;display:flex;flex-flow:column nowrap;position:relative}","",{version:3,sources:["webpack://./src/components/shared/ButtonWithPanel/ButtonWithPanel.css"],names:[],mappings:"AAIA,iBAIE,mBAAoB,CAFpB,YAAa,CACb,uBAAwB,CAFxB,iBAIF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.buttonWithPanel {\n position: relative;\n display: flex;\n flex-flow: column nowrap;\n align-items: stretch;\n}\n"],sourceRoot:""}]);const s=i},1368:(e,t,n)=>{"use strict";n.d(t,{Z:()=>b});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a),s=n(1667),l=n.n(s),c=new URL(n(6436),n.b),d=new URL(n(8695),n.b),u=new URL(n(6396),n.b),h=new URL(n(2374),n.b),p=i()(o()),m=l()(c),f=l()(d),g=l()(u),A=l()(h);p.push([e.id,`.callNodeContextMenu .react-contextmenu-item--selected .react-contextmenu-icon,.callNodeContextMenu .react-contextmenu-item:hover .react-contextmenu-icon{filter:invert(1)}.callNodeContextMenuIconMerge{background-image:url(${m})}.callNodeContextMenuIconCollapse{background-image:url(${f})}.callNodeContextMenuIconFocus{background-image:url(${g})}.callNodeContextMenuIconDrop{background-image:url(${A})}.callNodeContextMenuShortcut{background:#dedee3c9;border-radius:3px;box-shadow:1px 1px #0004;color:#000;margin-inline-start:12px;padding:0 5px}`,"",{version:3,sources:["webpack://./src/components/shared/CallNodeContextMenu.css"],names:[],mappings:"AAYA,0JAEE,gBACF,CAEA,8BACE,wDACF,CAEA,iCACE,wDACF,CAEA,8BACE,wDACF,CAEA,6BACE,wDACF,CAEA,6BAME,oBAAqB,CAJrB,iBAAkB,CAKlB,wBAAyB,CAGzB,UAAW,CACX,wBAAyB,CAVzB,aAWF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n/* Most of the CSS logic to be able to add icons is part of the more generic\n * file ContextMenu.css that is applied for all context menus. Especially the\n * CSS class `react-contextmenu-icon` is used in addition to these more specific\n * classes, and that's where other properties for backgrounds are specified.\n */\n\n/* All the icons we use in the call node's context menu are nicer if we use this\n * filter when in the selected state. */\n.callNodeContextMenu .react-contextmenu-item--selected .react-contextmenu-icon,\n.callNodeContextMenu .react-contextmenu-item:hover .react-contextmenu-icon {\n filter: invert(1);\n}\n\n.callNodeContextMenuIconMerge {\n background-image: url(firefox-profiler-res/img/svg/merge-icon.svg);\n}\n\n.callNodeContextMenuIconCollapse {\n background-image: url(firefox-profiler-res/img/svg/collapse-icon.svg);\n}\n\n.callNodeContextMenuIconFocus {\n background-image: url(firefox-profiler-res/img/svg/focus-icon.svg);\n}\n\n.callNodeContextMenuIconDrop {\n background-image: url(firefox-profiler-res/img/svg/drop-icon.svg);\n}\n\n.callNodeContextMenuShortcut {\n padding: 0 5px;\n border-radius: 3px;\n\n /* This color is based off of photon grey, but adjusted to have a nice visual look\n when hovering. */\n background: #dedee3c9;\n box-shadow: 1px 1px #0004;\n\n /* Override the hover color. */\n color: #000;\n margin-inline-start: 12px;\n}\n"],sourceRoot:""}]);const b=p},9531:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,'.codeView{--blue-55:#0074e8;--magenta-65:#dd00a9;--theme-highlight-keyword:var(--magenta-65);--theme-highlight-type:var(--purple-60);--theme-highlight-variable:var(--blue-55);--theme-highlight-method:var(--green-70);--theme-highlight-literal:var(--blue-70);--theme-highlight-comment:var(--grey-50);--theme-highlight-punctuation:var(--grey-70);flex:1;flex-flow:column;min-height:0}.codeView,.codeViewHeader{background:#fff;display:flex}.codeViewHeader{border-bottom:1px solid var(--grey-30);flex-flow:row;height:16px;padding:1px 0}.codeMirrorContainer{display:flex;flex:1;flex-flow:column;min-height:0}.cm-editor{min-height:0}.cm-scroller{font:inherit!important;line-height:16px!important;overflow:auto}.cm-gutters{background-color:#fff!important;border-right:0!important}.codeViewHeaderMainColumn{flex:1}.codeViewHeaderColumn{box-sizing:border-box;line-height:15px;padding:1px 5px;position:relative;white-space:nowrap}.codeViewHeaderColumn.codeViewFixedColumn:after{background:#e5e5e5;bottom:3px;content:"";position:absolute;right:0;top:3px;width:1px}.cm-self-timings-gutter,.cm-total-timings-gutter,.codeViewHeaderColumn.self,.codeViewHeaderColumn.total{text-align:right;width:50px}.cm-self-timings-gutter,.cm-total-timings-gutter{border-right:1px solid var(--grey-30);color:#000}.cm-lineNumbers{color:#aaa;font-variant-numeric:tabular-nums}.cm-lineNumbers .cm-gutterElement{min-width:45px!important}.cm-instruction-address-gutter{color:#aaa;font-family:ui-monospace,Roboto Mono,monospace;font-variant-numeric:tabular-nums}.cm-instruction-address-gutter .cm-gutterElement{min-width:45px!important;padding:0 8px}.cm-self-timings-gutter .cm-gutterElement,.cm-total-timings-gutter .cm-gutterElement{box-sizing:border-box;overflow:hidden;padding-right:5px;text-overflow:ellipsis;width:100%}.cm-nonZeroLine{background-color:#edf6ff}.cm-content{word-wrap:normal;font-family:ui-monospace,Roboto Mono,monospace;-webkit-hyphens:none;hyphens:none;word-break:normal;word-spacing:normal}.tok-macroName,.tok-namespace,.tok-variableName,.tok-variableName2{color:var(--theme-highlight-variable)}.tok-typeName{color:var(--theme-highlight-type)}.tok-propertyName{color:var(--theme-highlight-method)}.tok-number,.tok-string,.tok-string2{color:var(--theme-highlight-literal)}.tok-atom,.tok-bool,.tok-error,.tok-keyword{color:var(--theme-highlight-keyword)}.tok-comment,.tok-meta{color:var(--theme-highlight-comment)}.tok-operator,.tok-punctuation{color:var(--theme-highlight-punctuation)}',"",{version:3,sources:["webpack://./src/components/shared/CodeView.css"],names:[],mappings:"AAIA,UASE,iBAAkB,CAClB,oBAAqB,CAGrB,2CAA4C,CAC5C,uCAAwC,CACxC,yCAA0C,CAC1C,wCAAyC,CACzC,wCAAyC,CACzC,wCAAyC,CACzC,4CAA6C,CAhB7C,MAAO,CACP,gBAAiB,CAFjB,YAkBF,CAEA,0BAjBE,eAAiB,CAJjB,YA4BF,CAPA,gBAKE,sCAAuC,CAFvC,aAAc,CADd,WAAY,CAEZ,aAGF,CAEA,qBACE,YAAa,CAEb,MAAO,CACP,gBAAiB,CAFjB,YAGF,CAEA,WACE,YACF,CAEA,aAEE,sBAAwB,CACxB,0BAA4B,CAF5B,aAGF,CAEA,YAEE,+BAAkC,CADlC,wBAEF,CAEA,0BACE,MACF,CAEA,sBAEE,qBAAsB,CAEtB,gBAAiB,CADjB,eAAgB,CAFhB,iBAAkB,CAIlB,kBACF,CAGA,gDAME,kBAAmB,CAFnB,UAAW,CAGX,UAAW,CANX,iBAAkB,CAElB,OAAQ,CADR,OAAQ,CAGR,SAGF,CAEA,wGAKE,gBAAiB,CADjB,UAEF,CAEA,iDAEE,qCAAsC,CACtC,UACF,CAEA,gBACE,UAAW,CACX,iCACF,CAEA,kCACE,wBACF,CAEA,+BACE,UAAW,CACX,8CAAmD,CACnD,iCACF,CAEA,iDACE,wBAA0B,CAC1B,aACF,CAEA,qFAIE,qBAAsB,CAFtB,eAAgB,CAGhB,iBAAkB,CAClB,sBAAuB,CAHvB,UAIF,CAEA,gBACE,wBACF,CAEA,YAKE,gBAAiB,CAJjB,8CAAmD,CACnD,oBAAa,CAAb,YAAa,CACb,iBAAkB,CAClB,mBAEF,CA0CA,mEAIE,qCACF,CAEA,cACE,iCACF,CAEA,kBACE,mCACF,CAEA,qCAGE,oCACF,CAEA,4CAIE,oCACF,CAEA,uBAEE,oCACF,CAEA,+BAEE,wCACF",sourcesContent:['/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.codeView {\n display: flex;\n min-height: 0;\n flex: 1;\n flex-flow: column;\n background: white;\n\n /* Extra intermediate colors which Photon doesn\'t have, from\n https://searchfox.org/mozilla-central/rev/8012bca692dddb307c2787bac1d4dd48cb0d8243/devtools/client/themes/variables.css#34-100 */\n --blue-55: #0074e8;\n --magenta-65: #dd00a9;\n\n /* Theme colors. Loosely based on the Firefox devtools light theme as of Jan 2022. */\n --theme-highlight-keyword: var(--magenta-65);\n --theme-highlight-type: var(--purple-60);\n --theme-highlight-variable: var(--blue-55);\n --theme-highlight-method: var(--green-70);\n --theme-highlight-literal: var(--blue-70);\n --theme-highlight-comment: var(--grey-50);\n --theme-highlight-punctuation: var(--grey-70);\n}\n\n.codeViewHeader {\n display: flex;\n height: 16px;\n flex-flow: row;\n padding: 1px 0;\n border-bottom: 1px solid var(--grey-30);\n background: white;\n}\n\n.codeMirrorContainer {\n display: flex;\n min-height: 0;\n flex: 1;\n flex-flow: column;\n}\n\n.cm-editor {\n min-height: 0;\n}\n\n.cm-scroller {\n overflow: auto;\n font: inherit !important;\n line-height: 16px !important;\n}\n\n.cm-gutters {\n border-right: 0 !important;\n background-color: white !important;\n}\n\n.codeViewHeaderMainColumn {\n flex: 1;\n}\n\n.codeViewHeaderColumn {\n position: relative;\n box-sizing: border-box;\n padding: 1px 5px;\n line-height: 15px;\n white-space: nowrap;\n}\n\n/* A small vertical separator line */\n.codeViewHeaderColumn.codeViewFixedColumn::after {\n position: absolute;\n top: 3px;\n right: 0;\n bottom: 3px;\n width: 1px;\n background: #e5e5e5;\n content: \'\';\n}\n\n.codeViewHeaderColumn.total,\n.codeViewHeaderColumn.self,\n.cm-total-timings-gutter,\n.cm-self-timings-gutter {\n width: 50px;\n text-align: right;\n}\n\n.cm-total-timings-gutter,\n.cm-self-timings-gutter {\n border-right: 1px solid var(--grey-30);\n color: black;\n}\n\n.cm-lineNumbers {\n color: #aaa;\n font-variant-numeric: tabular-nums;\n}\n\n.cm-lineNumbers .cm-gutterElement {\n min-width: 45px !important;\n}\n\n.cm-instruction-address-gutter {\n color: #aaa;\n font-family: ui-monospace, \'Roboto Mono\', monospace;\n font-variant-numeric: tabular-nums;\n}\n\n.cm-instruction-address-gutter .cm-gutterElement {\n min-width: 45px !important;\n padding: 0 8px;\n}\n\n.cm-total-timings-gutter .cm-gutterElement,\n.cm-self-timings-gutter .cm-gutterElement {\n overflow: hidden;\n width: 100%;\n box-sizing: border-box;\n padding-right: 5px;\n text-overflow: ellipsis;\n}\n\n.cm-nonZeroLine {\n background-color: #edf6ff;\n}\n\n.cm-content {\n font-family: ui-monospace, \'Roboto Mono\', monospace;\n hyphens: none;\n word-break: normal;\n word-spacing: normal;\n word-wrap: normal;\n}\n\n/**\n * Syntax highlighting uses the Lezer\'s classHighlighter. From its documentation:\n *\n * This is a highlighter that adds stable, predictable classes to tokens, for styling with external CSS.\n *\n * The following tags are mapped to their name prefixed with "tok-" (for example "tok-comment"):\n * - link\n * - heading\n * - emphasis\n * - strong\n * - keyword\n * - atom bool\n * - url\n * - labelName\n * - inserted\n * - deleted\n * - literal\n * - string\n * - number\n * - variableName\n * - typeName\n * - namespace\n * - className\n * - macroName\n * - propertyName\n * - operator\n * - comment\n * - meta\n * - punctuation\n * - invalid\n *\n * In addition, these mappings are provided:\n *\n * - regexp, escape, and special(string) are mapped to "tok-string2"\n * - special(variableName) to "tok-variableName2"\n * - local(variableName) to "tok-variableName tok-local"\n * - definition(variableName) to "tok-variableName tok-definition"\n * - definition(propertyName) to "tok-propertyName tok-definition"\n */\n\n.tok-namespace,\n.tok-variableName,\n.tok-variableName2,\n.tok-macroName {\n color: var(--theme-highlight-variable);\n}\n\n.tok-typeName {\n color: var(--theme-highlight-type);\n}\n\n.tok-propertyName {\n color: var(--theme-highlight-method);\n}\n\n.tok-number,\n.tok-string,\n.tok-string2 {\n color: var(--theme-highlight-literal);\n}\n\n.tok-bool,\n.tok-atom,\n.tok-error,\n.tok-keyword {\n color: var(--theme-highlight-keyword);\n}\n\n.tok-comment,\n.tok-meta {\n color: var(--theme-highlight-comment);\n}\n\n.tok-operator,\n.tok-punctuation {\n color: var(--theme-highlight-punctuation);\n}\n'],sourceRoot:""}]);const s=i},3697:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,'.react-contextmenu{background-color:#fff;border-radius:3px;box-shadow:0 0 0 .5px #0000001a,0 10px 12px #0000004d;color:#000;display:none;font-size:12px;margin:2px 0 0;max-width:600px;min-width:160px;padding:5px 0;text-align:left;-webkit-user-select:none;user-select:none;z-index:4}.react-contextmenu-separator{border-bottom:1px solid #ddd;margin:6px 0}.react-contextmenu.react-contextmenu--visible{display:block;max-height:90vh}.react-contextmenu-item:not(.react-contextmenu-submenu){align-items:center;cursor:default;display:flex;line-height:1.5;overflow:hidden;padding:2px 12px;text-overflow:ellipsis;white-space:nowrap}.react-contextmenu-item--selected,.react-contextmenu-item.react-contextmenu-item--active{background-color:var(--blue-60);border-color:var(--blue-60);color:#fff;text-decoration:none}.react-contextmenu-item.react-contextmenu-item--disabled,.react-contextmenu-item.react-contextmenu-item--disabled:hover{background-color:initial;color:#888}.react-contextmenu-item--divider{border-bottom:1px solid #00000026;margin-bottom:3px;padding:2px 0}.react-contextmenu-item.react-contextmenu-submenu>.react-contextmenu-item:after{border:6px solid #0000;border-left-color:#000;content:"";height:0;position:absolute;right:7px;top:5px;width:0}.react-contextmenu-item.react-contextmenu-submenu>.react-contextmenu-item--active:after,.react-contextmenu-item:hover.react-contextmenu-submenu>.react-contextmenu-item:after{border-left-color:highlighttext}.react-contextmenu-item.checkable{padding-right:21px;position:relative}.react-contextmenu-item.indented{padding-left:35px}.react-contextmenu-item.checked:not(.react-contextmenu-item--disabled):before{border:solid #000;border-width:0 2px 2px 0;content:"";display:block;height:6px;position:absolute;right:8px;top:6px;transform:rotate(45deg);width:3px}.react-contextmenu-item--selected.checked,.react-contextmenu-item.react-contextmenu-item--active.checked{border-color:#fff}.react-contextmenu-item--disabled.react-contextmenu-item--selected{background-color:var(--blue-50-a30)}.react-contextmenu-item--selected.checked:not(.react-contextmenu-item--disabled):before{border-color:#fff}.react-contextmenu-item-content{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis}.react-contextmenu-icon{background:50% no-repeat;flex:none;height:16px;margin-inline-end:8px;pointer-events:auto;width:16px}.react-contextmenu-item>strong{color:#38383d}.react-contextmenu-item--selected>strong{color:#fff}',"",{version:3,sources:["webpack://./src/components/shared/ContextMenu.css"],names:[],mappings:"AAIA,mBAQE,qBAAsB,CAFtB,iBAAkB,CAGlB,qDAE8B,CAC9B,UAAW,CAVX,YAAa,CAWb,cAAe,CANf,cAAe,CAHf,eAAgB,CADhB,eAAgB,CAEhB,aAAc,CASd,eAAgB,CAChB,wBAAiB,CAAjB,gBAAiB,CAdjB,SAeF,CAEA,6BACE,4BAA6B,CAC7B,YACF,CAGA,8CACE,aAAc,CACd,eACF,CAEA,wDAGE,kBAAmB,CAEnB,cAAe,CAJf,YAAa,CAKb,eAAgB,CAJhB,eAAgB,CAEhB,gBAAiB,CAGjB,sBAAuB,CACvB,kBACF,CAEA,yFAGE,+BAAgC,CADhC,2BAA4B,CAE5B,UAAW,CACX,oBACF,CAEA,wHAEE,wBAA6B,CAC7B,UACF,CAEA,iCAEE,iCAA0C,CAC1C,iBAAkB,CAFlB,aAGF,CAGA,gFAQE,sBAAuB,CAAvB,sBAAuB,CACvB,UAAW,CAHX,QAAS,CAJT,iBAAkB,CAElB,SAAU,CADV,OAAQ,CAER,OAKF,CAGA,8KAIE,+BACF,CAEA,kCAEE,kBAAmB,CADnB,iBAEF,CAEA,iCACE,iBACF,CAEA,8EAQE,iBAAyB,CAAzB,wBAAyB,CACzB,UAAW,CALX,aAAc,CAEd,UAAW,CALX,iBAAkB,CAElB,SAAU,CADV,OAAQ,CAQR,uBAAwB,CALxB,SAMF,CAEA,yGAEE,iBACF,CAEA,mEACE,mCACF,CAEA,wFAIE,iBACF,CAIA,gCAGE,MAAO,CADP,WAAY,CADZ,eAAgB,CAGhB,sBACF,CAGA,wBAIE,wBAA4B,CAD5B,SAAU,CADV,WAAY,CAGZ,qBAAsB,CACtB,mBAAoB,CALpB,UAMF,CAGA,+BACE,aACF,CAEA,yCACE,UACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.react-contextmenu {\n z-index: 4; /* needs to be on a higher level than .overflowEdgeIndicatorEdge */\n display: none;\n min-width: 160px;\n max-width: 600px;\n padding: 5px 0;\n border-radius: 3px;\n margin: 2px 0 0;\n background-color: #fff;\n box-shadow:\n 0 0 0 0.5px rgb(0 0 0 / 0.1),\n 0 10px 12px rgb(0 0 0 / 0.3);\n color: #000;\n font-size: 12px;\n text-align: left;\n user-select: none;\n}\n\n.react-contextmenu-separator {\n border-bottom: 1px solid #ddd;\n margin: 6px 0;\n}\n\n/* max-height for context menus in the panel changed to 90vh for better zoom experience */\n.react-contextmenu.react-contextmenu--visible {\n display: block;\n max-height: 90vh;\n}\n\n.react-contextmenu-item:not(.react-contextmenu-submenu) {\n display: flex;\n overflow: hidden;\n align-items: center;\n padding: 2px 12px;\n cursor: default;\n line-height: 1.5;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.react-contextmenu-item.react-contextmenu-item--active,\n.react-contextmenu-item--selected {\n border-color: var(--blue-60);\n background-color: var(--blue-60);\n color: #fff;\n text-decoration: none;\n}\n\n.react-contextmenu-item.react-contextmenu-item--disabled,\n.react-contextmenu-item.react-contextmenu-item--disabled:hover {\n background-color: transparent;\n color: #888;\n}\n\n.react-contextmenu-item--divider {\n padding: 2px 0;\n border-bottom: 1px solid rgb(0 0 0 / 0.15);\n margin-bottom: 3px;\n}\n\n/* Submenu arrow */\n.react-contextmenu-item.react-contextmenu-submenu\n > .react-contextmenu-item::after {\n position: absolute;\n top: 5px;\n right: 7px;\n width: 0;\n height: 0;\n border: 6px solid transparent;\n border-left-color: #000;\n content: '';\n}\n\n/* Submenu arrow highlighted color */\n.react-contextmenu-item:hover.react-contextmenu-submenu\n > .react-contextmenu-item::after,\n.react-contextmenu-item.react-contextmenu-submenu\n > .react-contextmenu-item--active::after {\n border-left-color: highlighttext;\n}\n\n.react-contextmenu-item.checkable {\n position: relative;\n padding-right: 21px;\n}\n\n.react-contextmenu-item.indented {\n padding-left: 35px;\n}\n\n.react-contextmenu-item.checked:not(.react-contextmenu-item--disabled)::before {\n position: absolute;\n top: 6px;\n right: 8px;\n display: block;\n width: 3px;\n height: 6px;\n border: solid #000;\n border-width: 0 2px 2px 0;\n content: '';\n transform: rotate(45deg);\n}\n\n.react-contextmenu-item.react-contextmenu-item--active.checked,\n.react-contextmenu-item--selected.checked {\n border-color: #fff;\n}\n\n.react-contextmenu-item--disabled.react-contextmenu-item--selected {\n background-color: var(--blue-50-a30);\n}\n\n.react-contextmenu-item--selected.checked:not(\n .react-contextmenu-item--disabled\n )::before {\n /* Invert the colors of the checkmark when selected */\n border-color: #fff;\n}\n\n/* Use this wrapper for a content that needs to take the available space or if\n * it contains other HTML elements (eg <strong>) */\n.react-contextmenu-item-content {\n overflow: hidden;\n min-width: 0;\n flex: 1;\n text-overflow: ellipsis;\n}\n\n/* Use a span with this class to add an icon to an item. */\n.react-contextmenu-icon {\n width: 16px;\n height: 16px;\n flex: none;\n background: center no-repeat;\n margin-inline-end: 8px;\n pointer-events: auto;\n}\n\n/* Soften a bit the style of highlighted words */\n.react-contextmenu-item > strong {\n color: #38383d;\n}\n\n.react-contextmenu-item--selected > strong {\n color: #fff;\n}\n"],sourceRoot:""}]);const s=i},9549:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".EmptyReasons{align-items:center;background-color:var(--grey-20);box-shadow:inset 0 0 15px #0000001a;display:flex;flex:1;flex-direction:column;font-size:120%;justify-content:center;padding:10px}","",{version:3,sources:["webpack://./src/components/shared/EmptyReasons.css"],names:[],mappings:"AAAA,cAIE,kBAAmB,CAGnB,+BAAgC,CAChC,mCAA2C,CAP3C,YAAa,CACb,MAAO,CACP,qBAAsB,CAMtB,cAAe,CAJf,sBAAuB,CACvB,YAIF",sourcesContent:[".EmptyReasons {\n display: flex;\n flex: 1;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n padding: 10px;\n background-color: var(--grey-20);\n box-shadow: inset 0 0 15px rgb(0 0 0 / 0.1);\n font-size: 120%;\n}\n"],sourceRoot:""}]);const s=i},6080:(e,t,n)=>{"use strict";n.d(t,{Z:()=>h});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a),s=n(1667),l=n.n(s),c=new URL(n(1415),n.b),d=i()(o()),u=l()(c);d.push([e.id,`.filterNavigatorBar{--internal-selected-color:var(--selected-color,var(--blue-60));cursor:default;flex-shrink:0;margin:0;padding:0;-webkit-user-select:none;user-select:none}.filterNavigatorBar,.filterNavigatorBarItem{display:flex;flex-flow:row nowrap;height:24px}.filterNavigatorBarItem{background-clip:padding-box;border:solid #0000;border-right-color:#0000!important;border-width:0 8px 0 6px;line-height:24px;min-width:0;padding:0 6px 0 8px;position:relative;transition:opacity .25s var(--animation-curve),transform .25s var(--animation-curve)}.filterNavigatorBarRootItem{flex-shrink:0;margin-left:-8px;max-width:100%}.filterNavigatorBarItemContent{background:none;border:none;color:inherit;display:flex;font:inherit;line-height:normal;margin:auto;overflow:hidden;padding:0;text-overflow:ellipsis;white-space:nowrap}.filterNavigatorBarItemContent>.nodeIcon{margin-inline-end:5px}.filterNavigatorBarItem:after,.filterNavigatorBarItem:before{border:12px solid #0000;border-right-width:2px;bottom:0;content:"";display:block;pointer-events:none;position:absolute;top:0;width:0}.filterNavigatorBarItem:before{border-left-color:#0000!important;left:-14px}.filterNavigatorBarItem:after{border-bottom-color:#0000!important;border-right-color:#0000!important;border-top-color:#0000!important;right:-14px}.filterNavigatorBarItem:not(.filterNavigatorBarLeafItem):after{animation:fadeIn .25s var(--animation-curve);background-image:url(${u});background-position:-18px -12px;background-repeat:no-repeat;background-size:24px 24px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.filterNavigatorBarSelectedItem{color:var(--internal-selected-color)}.filterNavigatorBarItem:not(.filterNavigatorBarLeafItem):hover{background-color:#0000001a}.filterNavigatorBarItem:not(.filterNavigatorBarLeafItem):hover:after,.filterNavigatorBarItem:not(.filterNavigatorBarRootItem,.filterNavigatorBarLeafItem):hover:before{border-color:#0000001a}.filterNavigatorBarItem:not(.filterNavigatorBarLeafItem):active:hover{background-color:#0003}.filterNavigatorBarItem:not(.filterNavigatorBarLeafItem):active:hover:after,.filterNavigatorBarItem:not(.filterNavigatorBarRootItem,.filterNavigatorBarLeafItem):active:hover:before{border-color:#0003}.filterNavigatorBarUncommittedItem{opacity:.65}.filterNavigatorBarUncommittedTransition-exit{display:none}.filterNavigatorBarTransition-enter{color:inherit;opacity:.65}.filterNavigatorBarTransition-enter.filterNavigatorBarTransition-enter-active{color:var(--internal-selected-color);opacity:1}.filterNavigatorBarTransition-exit{opacity:1}.filterNavigatorBarTransition-exit.filterNavigatorBarTransition-exit-active{opacity:0;transform:translateX(50%)}@media (prefers-reduced-motion){.filterNavigatorBarItem{animation:none;transition:none}}`,"",{version:3,sources:["webpack://./src/components/shared/FilterNavigatorBar.css"],names:[],mappings:"AAIA,oBACE,8DAAgE,CAQhE,cAAe,CAHf,aAAc,CAEd,QAAS,CADT,SAAU,CAGV,wBAAiB,CAAjB,gBAGF,CAEA,4CAZE,YAAa,CAEb,oBAAqB,CADrB,WA0BF,CAfA,wBAUE,2BAA4B,CAF5B,kBAAyB,CACzB,kCAA0C,CAD1C,wBAAyB,CAGzB,gBAAiB,CARjB,WAAY,CAGZ,mBAAoB,CALpB,iBAAkB,CAWlB,oFAGF,CAEA,4BAEE,aAAc,CACd,gBAAiB,CAFjB,cAGF,CAEA,+BASE,eAAgB,CAFhB,WAAY,CAGZ,aAAc,CATd,YAAa,CAUb,YAAa,CACb,kBAAmB,CAJnB,WAAY,CANZ,eAAgB,CAIhB,SAAU,CAOV,sBAAuB,CACvB,kBACF,CAEA,yCACE,qBACF,CAEA,6DAQE,uBAAuB,CAAvB,sBAAuB,CAJvB,QAAS,CAKT,UAAW,CAJX,aAAc,CAKd,mBAAoB,CARpB,iBAAkB,CAClB,KAAM,CAGN,OAKF,CAEA,+BAEE,iCAAyC,CADzC,UAEF,CAEA,8BAIE,mCAA2C,CAD3C,kCAA0C,CAD1C,gCAAwC,CADxC,WAIF,CAEA,+DACE,4CAA8C,CAC9C,wDAAmE,CACnE,+BAAgC,CAChC,2BAA4B,CAC5B,yBACF,CAEA,kBACE,GACE,SACF,CAEA,GACE,SACF,CACF,CAEA,gCACE,oCACF,CAEA,+DACE,0BACF,CAEA,uKAKE,sBACF,CAEA,sEACE,sBACF,CAEA,qLAKE,kBACF,CAEA,mCACE,WACF,CAIA,8CAIE,YACF,CAEA,oCACE,aAAc,CAKd,WACF,CAEA,8EACE,oCAAqC,CACrC,SACF,CAEA,mCACE,SACF,CAEA,4EACE,SAAU,CACV,yBACF,CAGA,gCACE,wBACE,cAAe,CACf,eACF,CACF",sourcesContent:['/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.filterNavigatorBar {\n --internal-selected-color: var(--selected-color, var(--blue-60));\n\n display: flex;\n height: 24px;\n flex-flow: row nowrap;\n flex-shrink: 0;\n padding: 0;\n margin: 0;\n cursor: default;\n user-select: none;\n\n /* Note: no overflow: hidden so that we can see the exit animation for ranges */\n}\n\n.filterNavigatorBarItem {\n position: relative;\n display: flex;\n min-width: 0;\n height: 24px;\n flex-flow: row nowrap;\n padding: 0 6px 0 8px;\n border: solid transparent;\n border-width: 0 8px 0 6px;\n border-right-color: transparent !important;\n background-clip: padding-box;\n line-height: 24px;\n transition:\n opacity 250ms var(--animation-curve),\n transform 250ms var(--animation-curve);\n}\n\n.filterNavigatorBarRootItem {\n max-width: 100%;\n flex-shrink: 0;\n margin-left: -8px;\n}\n\n.filterNavigatorBarItemContent {\n display: flex;\n overflow: hidden;\n\n /* These lines are mostly to override the default browser styles for `<button>`.\n * The 8px are used by the box-shadow when the button receives focus */\n padding: 0;\n border: none;\n margin: auto;\n background: none;\n color: inherit;\n font: inherit;\n line-height: normal;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.filterNavigatorBarItemContent > .nodeIcon {\n margin-inline-end: 5px;\n}\n\n.filterNavigatorBarItem::before,\n.filterNavigatorBarItem::after {\n position: absolute;\n top: 0;\n bottom: 0;\n display: block;\n width: 0;\n border: 12px solid transparent;\n border-right-width: 2px;\n content: \'\';\n pointer-events: none;\n}\n\n.filterNavigatorBarItem::before {\n left: -14px;\n border-left-color: transparent !important;\n}\n\n.filterNavigatorBarItem::after {\n right: -14px;\n border-top-color: transparent !important;\n border-right-color: transparent !important;\n border-bottom-color: transparent !important;\n}\n\n.filterNavigatorBarItem:not(.filterNavigatorBarLeafItem)::after {\n animation: fadeIn 250ms var(--animation-curve);\n background-image: url(../../../res/img/svg/scope-bar-separator.svg);\n background-position: -18px -12px;\n background-repeat: no-repeat;\n background-size: 24px 24px;\n}\n\n@keyframes fadeIn {\n from {\n opacity: 0;\n }\n\n to {\n opacity: 1;\n }\n}\n\n.filterNavigatorBarSelectedItem {\n color: var(--internal-selected-color);\n}\n\n.filterNavigatorBarItem:not(.filterNavigatorBarLeafItem):hover {\n background-color: rgb(0 0 0 / 0.1);\n}\n\n.filterNavigatorBarItem:not(\n .filterNavigatorBarRootItem,\n .filterNavigatorBarLeafItem\n ):hover::before,\n.filterNavigatorBarItem:not(.filterNavigatorBarLeafItem):hover::after {\n border-color: rgb(0 0 0 / 0.1);\n}\n\n.filterNavigatorBarItem:not(.filterNavigatorBarLeafItem):active:hover {\n background-color: rgb(0 0 0 / 0.2);\n}\n\n.filterNavigatorBarItem:not(\n .filterNavigatorBarRootItem,\n .filterNavigatorBarLeafItem\n ):active:hover::before,\n.filterNavigatorBarItem:not(.filterNavigatorBarLeafItem):active:hover::after {\n border-color: rgb(0 0 0 / 0.2);\n}\n\n.filterNavigatorBarUncommittedItem {\n opacity: 0.65;\n}\n\n/* Animation */\n\n.filterNavigatorBarUncommittedTransition-exit {\n /* Because of the underlying transition library, this element is still here\n * while the new "committed" element is created, which pushes it further\n * right. By using display: none here, we prevent this bad effect. */\n display: none;\n}\n\n.filterNavigatorBarTransition-enter {\n color: inherit;\n\n /* We use the same value as the uncommitted item.\n * Note that the "uncommitted item" won\'t have this "enter" class when\n * committing, because of how we insert it (it\'s not part of the same loop). */\n opacity: 0.65;\n}\n\n.filterNavigatorBarTransition-enter.filterNavigatorBarTransition-enter-active {\n color: var(--internal-selected-color);\n opacity: 1;\n}\n\n.filterNavigatorBarTransition-exit {\n opacity: 1;\n}\n\n.filterNavigatorBarTransition-exit.filterNavigatorBarTransition-exit-active {\n opacity: 0;\n transform: translateX(50%);\n}\n\n/* Do not animate the filter navigator bar items when user prefers reduced motion */\n@media (prefers-reduced-motion) {\n .filterNavigatorBarItem {\n animation: none;\n transition: none;\n }\n}\n'],sourceRoot:""}]);const h=d},8315:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".nodeIcon{background:50%/contain no-repeat;height:100%;min-height:14px;min-width:14px}","",{version:3,sources:["webpack://./src/components/shared/Icon.css"],names:[],mappings:"AAIA,UAIE,gCAAsC,CAFtC,WAAY,CACZ,eAAgB,CAFhB,cAIF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.nodeIcon {\n min-width: 14px;\n height: 100%;\n min-height: 14px;\n background: center / contain no-repeat;\n}\n"],sourceRoot:""}]);const s=i},5429:(e,t,n)=>{"use strict";n.d(t,{Z:()=>m});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a),s=n(1667),l=n.n(s),c=new URL(n(8065),n.b),d=new URL(n(8293),n.b),u=i()(o()),h=l()(c),p=l()(d);u.push([e.id,`.idleSearchField{align-items:center;display:inline-flex;flex-flow:row nowrap;position:relative}.photon-input.idleSearchFieldInput{border:.5px solid #aaa;height:19px;padding:0 18px 0 17px}.idleSearchFieldInput{background:url(${h}) 3px no-repeat #fff;background-size:11px 11px;flex:1;margin:0;position:relative}.idleSearchFieldButton{-moz-user-focus:ignore;background:url(${p}) 0 0 no-repeat;background-size:contain;border:0;color:#0000;height:11px;overflow:hidden;padding:0;position:absolute;right:5px;vertical-align:middle;width:11px}.idleSearchFieldInput:invalid+.idleSearchFieldButton{visibility:hidden}`,"",{version:3,sources:["webpack://./src/components/shared/IdleSearchField.css"],names:[],mappings:"AAIA,iBAIE,kBAAmB,CAFnB,mBAAoB,CACpB,oBAAqB,CAFrB,iBAIF,CAEA,mCAKE,sBAAwB,CAFxB,WAAY,CACZ,qBAEF,CAEA,sBAIE,qEACiB,CACjB,yBAA0B,CAJ1B,MAAO,CACP,QAAS,CAFT,iBAMF,CAEA,uBAYE,sBAAuB,CAJvB,gEACW,CACX,uBAAwB,CAHxB,QAAS,CAIT,WAAkB,CANlB,WAAY,CAFZ,eAAgB,CAGhB,SAAU,CALV,iBAAkB,CAClB,SAAU,CAWV,qBAAsB,CATtB,UAUF,CAEA,qDACE,iBACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.idleSearchField {\n position: relative; /* to properly position the button */\n display: inline-flex;\n flex-flow: row nowrap;\n align-items: center;\n}\n\n.photon-input.idleSearchFieldInput {\n /* the chain class selectors are used here \n to override the styling for the photon-input class */\n height: 19px;\n padding: 0 18px 0 17px; /* right padding for the reset button, left padding for the search icon */\n border: 0.5px solid #aaa;\n}\n\n.idleSearchFieldInput {\n position: relative;\n flex: 1;\n margin: 0;\n background: url(../../../res/img/svg/searchfield-icon.svg) 3px center\n no-repeat white;\n background-size: 11px 11px;\n}\n\n.idleSearchFieldButton {\n position: absolute;\n right: 5px;\n overflow: hidden;\n width: 11px;\n height: 11px;\n padding: 0;\n border: 0;\n background: url(../../../res/img/svg/searchfield-cancel.svg) top left\n no-repeat;\n background-size: contain;\n color: transparent;\n -moz-user-focus: ignore;\n vertical-align: middle;\n}\n\n.idleSearchFieldInput:invalid + .idleSearchFieldButton {\n visibility: hidden;\n}\n"],sourceRoot:""}]);const m=u},6889:(e,t,n)=>{"use strict";n.d(t,{Z:()=>I});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a),s=n(1667),l=n.n(s),c=new URL(n(738),n.b),d=new URL(n(7510),n.b),u=new URL(n(4471),n.b),h=new URL(n(1205),n.b),p=new URL(n(4881),n.b),m=new URL(n(1400),n.b),f=new URL(n(6304),n.b),g=new URL(n(8121),n.b),A=new URL(n(7856),n.b),b=new URL(n(5835),n.b),C=i()(o()),y=l()(c),v=l()(d),w=l()(u),k=l()(h),E=l()(p),x=l()(m),S=l()(f),T=l()(g),B=l()(A),_=l()(b);C.push([e.id,`.markerContextMenuIconSetSelectionFromMarker{background-image:url(${y})}.markerContextMenuIconStartSelectionAtMarkerStart,.markerContextMenuIconStartSelectionHere{background-image:url(${v})}.markerContextMenuIconStartSelectionAtMarkerEnd{background-image:url(${w})}.markerContextMenuIconEndSelectionAtMarkerStart{background-image:url(${k})}.markerContextMenuIconEndSelectionAtMarkerEnd,.markerContextMenuIconEndSelectionHere{background-image:url(${E})}.markerContextMenuIconCopyDescription{background-image:url(${x})}.markerContextMenuIconCopyStack{background-image:url(${S})}.markerContextMenuIconCopyUrl{background-image:url(${T})}.markerContextMenuIconCopyPayload{background-image:url(${B})}.markerContextMenuSelectThread{background-image:url(${_})}.react-contextmenu-item--selected .markerContextMenuIconCopyDescription,.react-contextmenu-item--selected .markerContextMenuIconCopyPayload,.react-contextmenu-item--selected .markerContextMenuIconCopyStack,.react-contextmenu-item--selected .markerContextMenuIconCopyUrl,.react-contextmenu-item--selected .markerContextMenuSelectThread,.react-contextmenu-item:hover .markerContextMenuIconCopyDescription,.react-contextmenu-item:hover .markerContextMenuIconCopyPayload,.react-contextmenu-item:hover .markerContextMenuIconCopyStack,.react-contextmenu-item:hover .markerContextMenuIconCopyUrl,.react-contextmenu-item:hover .markerContextMenuSelectThread{filter:invert(1)}`,"",{version:3,sources:["webpack://./src/components/shared/MarkerContextMenu.css"],names:[],mappings:"AAWA,6CACE,wDACF,CAEA,2FAEE,wDACF,CAEA,gDACE,wDACF,CAEA,gDACE,wDACF,CAEA,qFAEE,wDACF,CAEA,sCACE,wDACF,CAEA,gCACE,wDACF,CAEA,8BACE,wDACF,CAEA,kCACE,wDACF,CAEA,+BACE,wDACF,CAKA,0oBAUE,gBACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n/* Most of the CSS logic to be able to add icons is part of the more generic\n * file ContextMenu.css that is applied for all context menus. Especially the\n * CSS class `react-contextmenu-icon` is used in addition to these more specific\n * classes, and that's where other properties for backgrounds are specified.\n */\n\n/* Here are all icons for the marker context menu. */\n.markerContextMenuIconSetSelectionFromMarker {\n background-image: url(firefox-profiler-res/img/svg/set-selection-from-marker.svg);\n}\n\n.markerContextMenuIconStartSelectionHere, /* <- for dot markers */\n.markerContextMenuIconStartSelectionAtMarkerStart /* <- for interval markers */ {\n background-image: url(firefox-profiler-res/img/svg/start-selection-at-marker-start.svg);\n}\n\n.markerContextMenuIconStartSelectionAtMarkerEnd {\n background-image: url(firefox-profiler-res/img/svg/start-selection-at-marker-end.svg);\n}\n\n.markerContextMenuIconEndSelectionAtMarkerStart {\n background-image: url(firefox-profiler-res/img/svg/end-selection-at-marker-start.svg);\n}\n\n.markerContextMenuIconEndSelectionHere, /* <- for dot markers */\n.markerContextMenuIconEndSelectionAtMarkerEnd /* <- for interval markers */ {\n background-image: url(firefox-profiler-res/img/svg/end-selection-at-marker-end.svg);\n}\n\n.markerContextMenuIconCopyDescription {\n background-image: url(firefox-profiler-res/img/svg/copy-dark.svg);\n}\n\n.markerContextMenuIconCopyStack {\n background-image: url(firefox-profiler-res/img/svg/copy-marker-stack.svg);\n}\n\n.markerContextMenuIconCopyUrl {\n background-image: url(firefox-profiler-res/img/svg/globe-dark.svg);\n}\n\n.markerContextMenuIconCopyPayload {\n background-image: url(firefox-profiler-res/img/svg/copy-marker-payload.svg);\n}\n\n.markerContextMenuSelectThread {\n background-image: url(firefox-profiler-res/img/svg/select-thread.svg);\n}\n\n/* These icons don't look nice when selected, unless if we invert them. However\n * the other icons look better without the filter, so we don't change them in\n * this state. */\n.react-contextmenu-item--selected .markerContextMenuIconCopyDescription,\n.react-contextmenu-item:hover .markerContextMenuIconCopyDescription,\n.react-contextmenu-item--selected .markerContextMenuIconCopyUrl,\n.react-contextmenu-item:hover .markerContextMenuIconCopyUrl,\n.react-contextmenu-item--selected .markerContextMenuIconCopyStack,\n.react-contextmenu-item:hover .markerContextMenuIconCopyStack,\n.react-contextmenu-item--selected .markerContextMenuIconCopyPayload,\n.react-contextmenu-item:hover .markerContextMenuIconCopyPayload,\n.react-contextmenu-item--selected .markerContextMenuSelectThread,\n.react-contextmenu-item:hover .markerContextMenuSelectThread {\n filter: invert(1);\n}\n"],sourceRoot:""}]);const I=C},1334:(e,t,n)=>{"use strict";n.d(t,{Z:()=>h});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a),s=n(1667),l=n.n(s),c=new URL(n(736),n.b),d=i()(o()),u=l()(c);d.push([e.id,`.markerSettings{display:flex;flex-flow:row nowrap;height:25px;line-height:25px;padding:0}.filterMarkersButton{background-image:url(${u});background-position:4px;background-repeat:no-repeat;flex:none;height:24px;margin:0 4px;padding-right:30px;position:relative;width:24px}.filterMarkersButton:after{border-color:currentcolor #0000 #0000;border-style:solid;border-width:6px 4px 0;color:var(--grey-90);content:"";margin-left:4px;margin-right:4px;margin-top:7px;position:absolute;right:2px;top:2px}`,"",{version:3,sources:["webpack://./src/components/shared/MarkerSettings.css"],names:[],mappings:"AAIA,gBACE,YAAa,CAEb,oBAAqB,CADrB,WAAY,CAGZ,gBAAiB,CADjB,SAEF,CAEA,qBAOE,wDAA8D,CAC9D,uBAA+B,CAC/B,2BAA4B,CAL5B,SAAU,CADV,WAAY,CAGZ,YAAa,CADb,kBAAmB,CAJnB,iBAAkB,CAClB,UAQF,CAGA,2BAOE,qCAAkC,CAAlC,kBAAkC,CAAlC,sBAAkC,CAIlC,oBAAqB,CACrB,UAAW,CAFX,eAAgB,CADhB,gBAAiB,CADjB,cAAe,CAPf,iBAAkB,CAElB,SAAU,CADV,OAWF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.markerSettings {\n display: flex;\n height: 25px;\n flex-flow: row nowrap;\n padding: 0;\n line-height: 25px;\n}\n\n.filterMarkersButton {\n position: relative;\n width: 24px;\n height: 24px;\n flex: none;\n padding-right: 30px;\n margin: 0 4px;\n background-image: url(firefox-profiler-res/img/svg/filter.svg);\n background-position: 4px center;\n background-repeat: no-repeat;\n}\n\n/* This is the dropdown arrow on the right of the button. */\n.filterMarkersButton::after {\n position: absolute;\n top: 2px;\n right: 2px;\n border-top: 6px solid;\n border-right: 4px solid transparent;\n border-bottom: 0 solid transparent;\n border-left: 4px solid transparent;\n margin-top: 7px;\n margin-right: 4px;\n margin-left: 4px;\n color: var(--grey-90);\n content: '';\n}\n"],sourceRoot:""}]);const h=d},4570:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".networkSettings{display:flex;flex-flow:row nowrap;height:25px;line-height:25px;padding:0}.networkSettingsSpacer{flex:1}","",{version:3,sources:["webpack://./src/components/shared/NetworkSettings.css"],names:[],mappings:"AAIA,iBACE,YAAa,CAEb,oBAAqB,CADrB,WAAY,CAGZ,gBAAiB,CADjB,SAEF,CAEA,uBACE,MACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.networkSettings {\n display: flex;\n height: 25px;\n flex-flow: row nowrap;\n padding: 0;\n line-height: 25px;\n}\n\n.networkSettingsSpacer {\n flex: 1;\n}\n"],sourceRoot:""}]);const s=i},2924:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".panelSearchField{padding:0 4px;z-index:1}.panelSearchFieldLabel{align-items:center;display:inline-flex;gap:4px;height:100%}.panelSearchFieldInput{width:300px}.panelSearchFieldIntroduction{background-color:#fff;box-shadow:0 1px 4px #0c0c0d1a;color:var(--grey-50);font-size:.9em;line-height:2;padding:0 4px;transform:translate(2px,-2px);z-index:-1}.panelSearchFieldIntroduction.isDisplayed{transition:transform .15s var(--animation-curve),opacity .15s ease-in-out,visibility .15s ease-in-out}.panelSearchFieldIntroduction.isHidden{opacity:0;transform:translateY(-100%);transition:transform .15s steps(1),opacity .15s ease-in-out,visibility .15s ease-in-out;visibility:hidden}","",{version:3,sources:["webpack://./src/components/shared/PanelSearch.css"],names:[],mappings:"AAAA,kBAIE,aAAc,CADd,SAEF,CAEA,uBAIE,kBAAmB,CAFnB,mBAAoB,CAGpB,OAAQ,CAFR,WAGF,CAEA,uBACE,WACF,CAEA,8BAGE,qBAAuB,CACvB,8BAAyC,CACzC,oBAAqB,CACrB,cAAgB,CAChB,aAAc,CALd,aAAc,CAMd,6BAA+B,CAP/B,UAQF,CAEA,0CACE,qGAIF,CAEA,uCACE,SAAU,CACV,2BAA4B,CAG5B,uFAG8B,CAC9B,iBACF",sourcesContent:[".panelSearchField {\n /* so that the introduction is on top of other panels, _but_ still keep it\n * below the input field (see below) */\n z-index: 1;\n padding: 0 4px;\n}\n\n.panelSearchFieldLabel {\n /* We fix the height so that the panelSearchFieldIntroduction doesn't increase it */\n display: inline-flex;\n height: 100%;\n align-items: center;\n gap: 4px;\n}\n\n.panelSearchFieldInput {\n width: 300px;\n}\n\n.panelSearchFieldIntroduction {\n z-index: -1; /* it needs to be below the input field */\n padding: 0 4px;\n background-color: white;\n box-shadow: 0 1px 4px rgb(12 12 13 / 0.1); /* This is grey-90 with 10% opacity, according to the photon design document */\n color: var(--grey-50);\n font-size: 0.9em;\n line-height: 2;\n transform: translate(2px, -2px);\n}\n\n.panelSearchFieldIntroduction.isDisplayed {\n transition:\n transform 150ms var(--animation-curve),\n opacity 150ms ease-in-out,\n visibility 150ms ease-in-out;\n}\n\n.panelSearchFieldIntroduction.isHidden {\n opacity: 0;\n transform: translateY(-100%);\n\n /* steps(1) is to wait until the end for the transform to happen */\n transition:\n transform 150ms steps(1),\n opacity 150ms ease-in-out,\n visibility 150ms ease-in-out;\n visibility: hidden;\n}\n"],sourceRoot:""}]);const s=i},8124:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".panelSettingsList{align-items:stretch;display:flex;flex:1;justify-content:flex-start;list-style:none;margin:0;padding:0}.panelSettingsListItem{align-items:center;display:flex;margin:0 5px;padding:0}.panelSettingsListItem:not(:first-child){border-left:1px solid var(--grey-20);padding-left:10px}","",{version:3,sources:["webpack://./src/components/shared/PanelSettingsList.css"],names:[],mappings:"AAIA,mBAGE,mBAAoB,CAFpB,YAAa,CACb,MAAO,CAEP,0BAA2B,CAG3B,eAAgB,CADhB,QAAS,CADT,SAGF,CAEA,uBAEE,kBAAmB,CADnB,YAAa,CAGb,YAAa,CADb,SAEF,CAEA,yCAEE,oCAAqC,CADrC,iBAEF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.panelSettingsList {\n display: flex;\n flex: 1;\n align-items: stretch;\n justify-content: flex-start;\n padding: 0;\n margin: 0;\n list-style: none;\n}\n\n.panelSettingsListItem {\n display: flex;\n align-items: center;\n padding: 0;\n margin: 0 5px;\n}\n\n.panelSettingsListItem:not(:first-child) {\n padding-left: 10px;\n border-left: 1px solid var(--grey-20);\n}\n"],sourceRoot:""}]);const s=i},480:(e,t,n)=>{"use strict";n.d(t,{Z:()=>w});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a),s=n(1667),l=n.n(s),c=new URL(n(7786),n.b),d=new URL(n(7317),n.b),u=new URL(n(3855),n.b),h=new URL(n(9248),n.b),p=new URL(n(5893),n.b),m=new URL(n(2939),n.b),f=i()(o()),g=l()(c),A=l()(d),b=l()(u),C=l()(h),y=l()(p),v=l()(m);f.push([e.id,`.profileMetaInfoSummary{align-items:stretch;display:flex;min-width:0;overflow:hidden}.profileMetaInfoSummaryPlatform,.profileMetaInfoSummaryProductAndVersion{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.profileMetaInfoSummaryProductAndVersion{background:url(${g}) 0/1em no-repeat;padding-left:1.4em}.profileMetaInfoSummaryProductAndVersion[data-product=Fennec],.profileMetaInfoSummaryProductAndVersion[data-product^=Firefox]{background-image:url(${A})}.profileMetaInfoSummaryPlatform{background:url(${g}) 0/1em no-repeat;margin-left:1em;padding-left:1.4em}.profileMetaInfoSummaryPlatform[data-toolkit^=macOS]{background-image:url(${b})}.profileMetaInfoSummaryPlatform[data-toolkit^=Windows]{background-image:url(${C})}.profileMetaInfoSummaryPlatform[data-toolkit^=Linux]{background-image:url(${y})}.profileMetaInfoSummaryPlatform[data-toolkit^=Android]{background-image:url(${v})}`,"",{version:3,sources:["webpack://./src/components/shared/ProfileMetaInfoSummary.css"],names:[],mappings:"AAMA,wBAIE,mBAAoB,CAHpB,YAAa,CAEb,WAAY,CADZ,eAGF,CAEA,yEAEE,eAAgB,CAChB,sBAAuB,CACvB,kBACF,CAEA,yCAEE,kEAA0E,CAD1E,kBAEF,CAEA,8HAEE,wDACF,CAEA,gCAGE,kEAA0E,CAD1E,eAAgB,CADhB,kBAGF,CAEA,qDACE,wDACF,CAEA,uDACE,wDACF,CAEA,qDACE,wDACF,CAEA,uDACE,wDACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n/* We use em in this CSS file so that it will adjust with the inherited font-size. */\n\n.profileMetaInfoSummary {\n display: flex;\n overflow: hidden;\n min-width: 0;\n align-items: stretch;\n}\n\n.profileMetaInfoSummaryProductAndVersion,\n.profileMetaInfoSummaryPlatform {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.profileMetaInfoSummaryProductAndVersion {\n padding-left: 1.4em; /* 1 (for the background image) + 0.4 */\n background: url(../../../res/img/svg/info.svg) left center / 1em no-repeat;\n}\n\n.profileMetaInfoSummaryProductAndVersion[data-product^='Firefox'],\n.profileMetaInfoSummaryProductAndVersion[data-product='Fennec'] {\n background-image: url(../../../res/img/svg/brands/firefoxbrowser.svg);\n}\n\n.profileMetaInfoSummaryPlatform {\n padding-left: 1.4em; /* 1 (for the background image) + 0.4 */\n margin-left: 1em;\n background: url(../../../res/img/svg/info.svg) left center / 1em no-repeat;\n}\n\n.profileMetaInfoSummaryPlatform[data-toolkit^='macOS'] {\n background-image: url(../../../res/img/svg/brands/apple.svg);\n}\n\n.profileMetaInfoSummaryPlatform[data-toolkit^='Windows'] {\n background-image: url(../../../res/img/svg/brands/windows.svg);\n}\n\n.profileMetaInfoSummaryPlatform[data-toolkit^='Linux'] {\n background-image: url(../../../res/img/svg/brands/linux.svg);\n}\n\n.profileMetaInfoSummaryPlatform[data-toolkit^='Android'] {\n background-image: url(../../../res/img/svg/brands/android.svg);\n}\n"],sourceRoot:""}]);const w=f},4562:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".stackImplementationSettingLabel{padding-inline-end:3px}","",{version:3,sources:["webpack://./src/components/shared/StackImplementationSetting.css"],names:[],mappings:"AAIA,iCACE,sBACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.stackImplementationSettingLabel {\n padding-inline-end: 3px;\n}\n"],sourceRoot:""}]);const s=i},8812:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".stackSettings{align-items:stretch;display:flex;flex-flow:row nowrap;height:25px;padding:0;white-space:nowrap}.stackSettingsSelect{color:inherit;font-size:inherit;height:24px;position:relative}","",{version:3,sources:["webpack://./src/components/shared/StackSettings.css"],names:[],mappings:"AAIA,eAIE,mBAAoB,CAHpB,YAAa,CAEb,oBAAqB,CADrB,WAAY,CAGZ,SAAU,CACV,kBACF,CAEA,qBAKE,aAAc,CACd,iBAAkB,CAFlB,WAAY,CADZ,iBAIF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.stackSettings {\n display: flex;\n height: 25px;\n flex-flow: row nowrap;\n align-items: stretch;\n padding: 0;\n white-space: nowrap;\n}\n\n.stackSettingsSelect {\n /* Create a new stacking context for the select using a position:relative. This way\n * the focus ring around the select breaks out of its surrounding container. */\n position: relative;\n height: 24px;\n color: inherit; /* important so that the text is still legible when the OS is configured in dark mode. */\n font-size: inherit;\n}\n"],sourceRoot:""}]);const s=i},6298:(e,t,n)=>{"use strict";n.d(t,{Z:()=>m});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a),s=n(1667),l=n.n(s),c=new URL(n(8065),n.b),d=new URL(n(8293),n.b),u=i()(o()),h=l()(c),p=l()(d);u.push([e.id,`.trackSearchField{align-items:center;display:inline-flex;flex-flow:row nowrap;position:relative;width:100%}.photon-input.trackSearchFieldInput{border:.5px solid #aaa;height:25px;margin:0 5px;padding:0 18px 0 17px;width:calc(100% - 10px)}.trackSearchFieldInput{background:url(${h}) 3px no-repeat #fff;background-size:11px 11px;flex:1;margin:0;position:relative}.trackSearchFieldButton{-moz-user-focus:ignore;background:url(${p}) 0 0 no-repeat;background-size:contain;border:0;color:#0000;height:11px;overflow:hidden;padding:0;position:absolute;right:10px;vertical-align:middle;width:11px}.trackSearchFieldInput:invalid+.trackSearchFieldButton{visibility:hidden}`,"",{version:3,sources:["webpack://./src/components/shared/TrackSearchField.css"],names:[],mappings:"AAIA,kBAOE,kBAAmB,CALnB,mBAAoB,CAIpB,oBAAqB,CALrB,iBAAkB,CAIlB,UAGF,CAEA,oCAME,sBAAwB,CAFxB,WAAY,CAGZ,YAAa,CAFb,qBAAsB,CAFtB,uBAKF,CAEA,uBAIE,qEACiB,CACjB,yBAA0B,CAJ1B,MAAO,CACP,QAAS,CAFT,iBAMF,CAEA,wBAcE,sBAAuB,CAJvB,gEACW,CACX,uBAAwB,CAHxB,QAAS,CAIT,WAAkB,CANlB,WAAY,CAFZ,eAAgB,CAGhB,SAAU,CAPV,iBAAkB,CAGlB,UAAW,CAWX,qBAAsB,CATtB,UAUF,CAEA,uDACE,iBACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.trackSearchField {\n position: relative; /* to properly position the button */\n display: inline-flex;\n\n /* If context menu has long items, we should make sure to take the 100% of the width. */\n width: 100%;\n flex-flow: row nowrap;\n align-items: center;\n}\n\n.photon-input.trackSearchFieldInput {\n /* the chain class selectors are used here\n to override the styling for the photon-input class */\n width: calc(100% - 10px);\n height: 25px;\n padding: 0 18px 0 17px; /* right padding for the reset button, left padding for the search icon */\n border: 0.5px solid #aaa;\n margin: 0 5px;\n}\n\n.trackSearchFieldInput {\n position: relative;\n flex: 1;\n margin: 0;\n background: url(../../../res/img/svg/searchfield-icon.svg) 3px center\n no-repeat white;\n background-size: 11px 11px;\n}\n\n.trackSearchFieldButton {\n position: absolute;\n\n /* 5px is margin and the other 5px is the location inside the input */\n right: 10px;\n overflow: hidden;\n width: 11px;\n height: 11px;\n padding: 0;\n border: 0;\n background: url(../../../res/img/svg/searchfield-cancel.svg) top left\n no-repeat;\n background-size: contain;\n color: transparent;\n -moz-user-focus: ignore;\n vertical-align: middle;\n}\n\n.trackSearchFieldInput:invalid + .trackSearchFieldButton {\n visibility: hidden;\n}\n"],sourceRoot:""}]);const m=u},270:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".calltreeTransformNavigator{background:var(--grey-10);border-top:1px solid var(--grey-30);color:var(--ink-70)}","",{version:3,sources:["webpack://./src/components/shared/TransformNavigator.css"],names:[],mappings:"AAIA,4BAEE,yBAA0B,CAD1B,mCAAoC,CAEpC,mBACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.calltreeTransformNavigator {\n border-top: 1px solid var(--grey-30);\n background: var(--grey-10);\n color: var(--ink-70);\n}\n"],sourceRoot:""}]);const s=i},1286:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,'.treeView{border-top:1px solid var(--grey-30);cursor:default;display:flex;flex:1;flex-flow:column nowrap;-webkit-user-select:none;user-select:none}.treeViewHeader,.treeViewRow{display:flex;flex-flow:row nowrap;justify-content:flex-start;white-space:nowrap}.treeViewRowScrolledColumns{align-items:center}.treeViewHeader{background:#fff;border-bottom:1px solid var(--grey-30);height:15px;padding:4px 0}.treeViewHeaderMainColumn{flex:1}.treeViewContextMenu{display:flex;flex:1}.treeViewBody{flex:1;line-height:16px;outline:0;overflow:auto;position:relative;will-change:scroll-position;z-index:0}.treeViewBodyInnerWrapper{display:flex;flex-flow:row nowrap;left:0;min-width:100%;position:absolute;top:0}.treeViewBodyInner0{left:0;position:sticky;z-index:2}.treeViewBodyInner1{flex-grow:1}.treeViewBodyInner{background:#fff;overflow:hidden}.treeViewHeaderColumn{line-height:15px;position:relative;white-space:nowrap}.treeViewFixedColumn{overflow:hidden;text-overflow:ellipsis}.treeViewColumnDivider{align-items:stretch;display:flex;flex:none;justify-content:center;margin-left:-5px;margin-right:-5px;width:20px}.treeView.isResizingColumns,.treeViewColumnDivider.isResizable{cursor:col-resize}.treeViewColumnDivider:before{border-right:1px solid var(--grey-30);content:""}.treeViewColumnDivider.isResizable:before{border-left:1px solid var(--grey-30);width:1px}.treeViewHeaderColumn.treeViewFixedColumn{flex:none}.treeBadge{color:#0000;display:inline-block;height:12px;margin-right:2px;overflow:hidden;vertical-align:-2px;width:12px}.treeRowIndentSpacer{flex-shrink:0}.treeViewAppendageColumn{margin-left:10px;opacity:.6}.treeViewRow.even{background-color:#fff}.treeViewRow.odd{background-color:#f5f5f5}.treeViewRow.isRightClicked{background-color:var(--blue-50-a30)}.treeViewRow.isSelected{background-color:var(--grey-30);color:#000}.treeViewMainColumn.dim{opacity:.7}.treeViewBody:focus .treeViewRow.isSelected{background-color:Highlight;background-color:-apple-system-selected-content-background;background-color:SelectedItem;color:HighlightText;color:-apple-system-alternate-selected-text;color:SelectedItemText}.treeViewBody:focus .treeViewRow.isSelected a{color:inherit}.treeViewHighlighting{background:#cbe8fe;border-radius:2px;box-shadow:0 0 0 .5px #0000000d,0 1px 1px #0000004d;color:#000;margin:-1px 0;padding:1px 0}.treeRowToggleButton{border-color:#0000 #0000 #0000 currentcolor;border-style:solid;border-width:5px 4px 5px 8px;color:#888;height:0;margin-left:8px;width:0}.treeRowToggleButton.expanded{border-color:currentcolor #0000 #0000;border-style:solid;border-width:8px 5px 4px;margin-left:5px;margin-right:5px;margin-top:5px}.treeRowToggleButton:active:hover{color:var(--grey-60)}.treeViewBody:focus .treeViewRow.isSelected>.treeRowToggleButton{color:#fff}.treeViewBody:focus .treeViewRow.isSelected>.treeRowToggleButton:active:hover{color:#ffffffb3}.treeRowToggleButton.leaf{visibility:hidden}',"",{version:3,sources:["webpack://./src/components/shared/TreeView.css"],names:[],mappings:"AAIA,UAIE,mCAAoC,CACpC,cAAe,CAJf,YAAa,CACb,MAAO,CACP,uBAAwB,CAGxB,wBAAiB,CAAjB,gBACF,CAEA,6BAEE,YAAa,CACb,oBAAqB,CACrB,0BAA2B,CAC3B,kBACF,CAEA,4BACE,kBACF,CAEA,gBAIE,eAAiB,CADjB,sCAAuC,CAFvC,WAAY,CACZ,aAGF,CAEA,0BACE,MACF,CAEA,qBACE,YAAa,CACb,MACF,CAEA,cAIE,MAAO,CACP,gBAAiB,CACjB,SAAU,CAHV,aAAc,CAFd,iBAAkB,CAMlB,2BAA4B,CAL5B,SAMF,CAEA,0BAIE,YAAa,CAEb,oBAAqB,CAHrB,MAAO,CAEP,cAAe,CAJf,iBAAkB,CAClB,KAKF,CAEA,oBAGE,MAAO,CAFP,eAAgB,CAChB,SAEF,CAEA,oBAGE,WACF,CAEA,mBAEE,eAAiB,CADjB,eAEF,CAEA,sBAEE,gBAAiB,CADjB,iBAAkB,CAElB,kBACF,CAEA,qBACE,eAAgB,CAChB,sBACF,CAEA,uBAIE,mBAAoB,CAHpB,YAAa,CAEb,SAAU,CAEV,sBAAuB,CAEvB,gBAAiB,CADjB,iBAAkB,CAJlB,UAMF,CAEA,+DAEE,iBACF,CAEA,8BACE,qCAAsC,CACtC,UACF,CAEA,0CAEE,oCAAqC,CADrC,SAEF,CAEA,0CAIE,SACF,CAEA,WAME,WAAkB,CALlB,oBAAqB,CAGrB,WAAY,CACZ,gBAAiB,CAHjB,eAAgB,CAKhB,mBAAoB,CAJpB,UAKF,CAEA,qBACE,aACF,CAEA,yBACE,gBAAiB,CACjB,UACF,CAEA,kBACE,qBACF,CAEA,iBACE,wBACF,CAGA,4BACE,mCACF,CAEA,wBACE,+BAAgC,CAChC,UACF,CAEA,wBACE,UACF,CAGA,4CAEE,0BAA2B,CAI3B,0DAA2D,CAI3D,6BAA8B,CAP9B,mBAAoB,CAIpB,2CAA4C,CAI5C,sBACF,CAGA,8CACE,aACF,CAEA,sBAQE,kBAAmB,CANnB,iBAAkB,CAOlB,mDAE4B,CAC5B,UAAW,CALX,aAAc,CANd,aAYF,CAEA,qBAME,2CAAsB,CAAtB,kBAAsB,CAAtB,4BAAsB,CAEtB,UAAW,CANX,QAAS,CAKT,eAAgB,CANhB,OAQF,CAEA,8BAIE,qCAAkC,CAAlC,kBAAkC,CAAlC,wBAAkC,CAGlC,eAAgB,CADhB,gBAAiB,CADjB,cAGF,CAEA,kCACE,oBACF,CAEA,iEACE,UACF,CAEA,8EAGE,eACF,CAEA,0BACE,iBACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.treeView {\n display: flex;\n flex: 1;\n flex-flow: column nowrap;\n border-top: 1px solid var(--grey-30);\n cursor: default;\n user-select: none;\n}\n\n.treeViewRow,\n.treeViewHeader {\n display: flex;\n flex-flow: row nowrap;\n justify-content: flex-start;\n white-space: nowrap;\n}\n\n.treeViewRowScrolledColumns {\n align-items: center;\n}\n\n.treeViewHeader {\n height: 15px;\n padding: 4px 0;\n border-bottom: 1px solid var(--grey-30);\n background: white;\n}\n\n.treeViewHeaderMainColumn {\n flex: 1;\n}\n\n.treeViewContextMenu {\n display: flex;\n flex: 1;\n}\n\n.treeViewBody {\n position: relative;\n z-index: 0;\n overflow: auto;\n flex: 1;\n line-height: 16px;\n outline: 0;\n will-change: scroll-position;\n}\n\n.treeViewBodyInnerWrapper {\n position: absolute;\n top: 0;\n left: 0;\n display: flex;\n min-width: 100%;\n flex-flow: row nowrap;\n}\n\n.treeViewBodyInner0 {\n position: sticky;\n z-index: 2;\n left: 0;\n}\n\n.treeViewBodyInner1 {\n /* This allows the right column to expand more than its content, so that the\n * background always extends to the right edge. */\n flex-grow: 1;\n}\n\n.treeViewBodyInner {\n overflow: hidden;\n background: white;\n}\n\n.treeViewHeaderColumn {\n position: relative;\n line-height: 15px;\n white-space: nowrap;\n}\n\n.treeViewFixedColumn {\n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.treeViewColumnDivider {\n display: flex;\n width: 20px;\n flex: none;\n align-items: stretch;\n justify-content: center;\n margin-right: -5px;\n margin-left: -5px;\n}\n\n.treeViewColumnDivider.isResizable,\n.treeView.isResizingColumns {\n cursor: col-resize;\n}\n\n.treeViewColumnDivider::before {\n border-right: 1px solid var(--grey-30);\n content: '';\n}\n\n.treeViewColumnDivider.isResizable::before {\n width: 1px;\n border-left: 1px solid var(--grey-30);\n}\n\n.treeViewHeaderColumn.treeViewFixedColumn {\n /* The fixed columns in the row don't shrink because they're positioning using\n * position: sticky, therefore we prevent shrinking for the columns in the\n * header too. */\n flex: none;\n}\n\n.treeBadge {\n display: inline-block;\n overflow: hidden;\n width: 12px;\n height: 12px;\n margin-right: 2px;\n color: transparent;\n vertical-align: -2px;\n}\n\n.treeRowIndentSpacer {\n flex-shrink: 0;\n}\n\n.treeViewAppendageColumn {\n margin-left: 10px;\n opacity: 0.6;\n}\n\n.treeViewRow.even {\n background-color: #fff;\n}\n\n.treeViewRow.odd {\n background-color: #f5f5f5;\n}\n\n/* Note that `isRightClicked` is present before `isSelected` so that it can be overriden. */\n.treeViewRow.isRightClicked {\n background-color: var(--blue-50-a30);\n}\n\n.treeViewRow.isSelected {\n background-color: var(--grey-30);\n color: black;\n}\n\n.treeViewMainColumn.dim {\n opacity: 0.7;\n}\n\n/* stylelint-disable order/properties-order, declaration-block-no-duplicate-properties, value-keyword-case */\n.treeViewBody:focus .treeViewRow.isSelected {\n /* Fallback for browsers that don't support SelectedItem */\n background-color: Highlight;\n color: HighlightText;\n\n /* Safari's non-standard SelectedItem equivalent (until SelectedItem is implemented, https://bugs.webkit.org/show_bug.cgi?id=230007 ) */\n background-color: -apple-system-selected-content-background;\n color: -apple-system-alternate-selected-text;\n\n /* The new standard color */\n background-color: SelectedItem;\n color: SelectedItemText;\n}\n/* stylelint-enable order/properties-order, declaration-block-no-duplicate-properties, value-keyword-case */\n\n.treeViewBody:focus .treeViewRow.isSelected a {\n color: inherit;\n}\n\n.treeViewHighlighting {\n padding: 1px 0;\n border-radius: 2px;\n\n /* This negative margin enlarges the background to the top, so that it fully\n * covers the underlying background. There's an underlying background when the\n * line is selected. */\n margin: -1px 0;\n background: #cbe8fe;\n box-shadow:\n 0 0 0 0.5px rgb(0 0 0 / 0.05),\n 0 1px 1px rgb(0 0 0 / 0.3);\n color: #000;\n}\n\n.treeRowToggleButton {\n width: 0;\n height: 0;\n border-top: 5px solid transparent;\n border-right: 4px solid transparent;\n border-bottom: 5px solid transparent;\n border-left: 8px solid;\n margin-left: 8px;\n color: #888;\n}\n\n.treeRowToggleButton.expanded {\n border-top: 8px solid;\n border-right: 5px solid transparent;\n border-bottom: 4px solid transparent;\n border-left: 5px solid transparent;\n margin-top: 5px;\n margin-right: 5px;\n margin-left: 5px;\n}\n\n.treeRowToggleButton:active:hover {\n color: var(--grey-60);\n}\n\n.treeViewBody:focus .treeViewRow.isSelected > .treeRowToggleButton {\n color: #fff;\n}\n\n.treeViewBody:focus\n .treeViewRow.isSelected\n > .treeRowToggleButton:active:hover {\n color: rgb(255 255 255 / 0.7);\n}\n\n.treeRowToggleButton.leaf {\n visibility: hidden;\n}\n"],sourceRoot:""}]);const s=i},8916:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".warningMessageBarWrapper{display:flex;left:0;pointer-events:none;position:fixed;right:0;top:0;z-index:4}.warningMessageBar{margin:0 auto;pointer-events:auto}","",{version:3,sources:["webpack://./src/components/shared/Warning.css"],names:[],mappings:"AAIA,0BASE,YAAa,CAHb,MAAO,CAMP,mBAAoB,CAVpB,cAAe,CAGf,OAAQ,CADR,KAAM,CADN,SAUF,CAEA,mBACE,aAAc,CACd,mBACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.warningMessageBarWrapper {\n /* Position */\n position: fixed;\n z-index: 4;\n top: 0;\n right: 0;\n left: 0;\n\n /* Box */\n display: flex;\n\n /* Other */\n pointer-events: none;\n}\n\n.warningMessageBar {\n margin: 0 auto;\n pointer-events: auto;\n}\n"],sourceRoot:""}]);const s=i},3057:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".chartCanvas{left:0;position:absolute;top:0}.chartCanvas.hover{cursor:default}","",{version:3,sources:["webpack://./src/components/shared/chart/Canvas.css"],names:[],mappings:"AAAA,aAGE,MAAO,CAFP,iBAAkB,CAClB,KAEF,CAEA,mBACE,cACF",sourcesContent:[".chartCanvas {\n position: absolute;\n top: 0;\n left: 0;\n}\n\n.chartCanvas.hover {\n cursor: default;\n}\n"],sourceRoot:""}]);const s=i},4540:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,'.chartViewport{flex:1;margin-top:0;overflow:hidden;position:relative}.chartViewport.expanded{border-bottom:1px solid var(--grey-30);border-top:1px solid var(--grey-30);cursor:grab;margin-bottom:5px}.chartViewport.expanded:after{box-shadow:inset 0 0 20px #40738c33;content:"";height:100%;left:0;pointer-events:none;position:absolute;top:0;width:100%;z-index:1}.chartViewport.dragging{cursor:grabbing}.chartViewportScroll{background:#00000012;border-radius:0 5px 0 0;bottom:0;box-shadow:0 0 0 .5px #0000001a,0 2px 4px #0000001a;left:0;line-height:20px;opacity:1;overflow:hidden;padding:3px 10px;pointer-events:none;position:absolute;text-overflow:ellipsis;transition:transform .2s ease-in-out,opacity .2s ease-in-out;white-space:nowrap;will-change:opacity,transform}.chartViewportScroll.hidden{opacity:0;transform:translateY(30px)}.chartViewportScrollKbd{background-color:#f6f6f6;border:1px solid #ccc;border-radius:.2em;box-shadow:-.1em .1em 0 #bbb;color:#000;display:inline-block;margin:0 .2em;padding:0 .5em;position:relative;top:-1px}',"",{version:3,sources:["webpack://./src/components/shared/chart/Viewport.css"],names:[],mappings:"AAIA,eAGE,MAAO,CACP,YAAa,CAFb,eAAgB,CADhB,iBAIF,CAEA,wBAEE,sCAAuC,CADvC,mCAAoC,CAGpC,WAAY,CADZ,iBAEF,CAEA,8BASE,mCAAgD,CAChD,UAAW,CAJX,WAAY,CAFZ,MAAO,CAOP,mBAAoB,CAVpB,iBAAkB,CAElB,KAAM,CAEN,UAAW,CAHX,SAUF,CAEA,wBACE,eACF,CAEA,qBAOE,oBAA6B,CAD7B,uBAAwB,CAJxB,QAAS,CAMT,mDAE4B,CAP5B,MAAO,CAQP,gBAAiB,CACjB,SAAU,CARV,eAAgB,CAChB,gBAAiB,CAQjB,mBAAoB,CAZpB,iBAAkB,CAalB,sBAAuB,CACvB,4DAE0B,CAC1B,kBAAmB,CACnB,6BACF,CAEA,4BACE,SAAU,CACV,0BACF,CAEA,wBAQE,wBAAyB,CAHzB,qBAAsB,CACtB,kBAAoB,CAGpB,4BAA+B,CAC/B,UAAW,CAPX,oBAAqB,CAIrB,aAAe,CAHf,cAAgB,CAHhB,iBAAkB,CAClB,QASF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.chartViewport {\n position: relative;\n overflow: hidden;\n flex: 1;\n margin-top: 0;\n}\n\n.chartViewport.expanded {\n border-top: 1px solid var(--grey-30);\n border-bottom: 1px solid var(--grey-30);\n margin-bottom: 5px;\n cursor: grab;\n}\n\n.chartViewport.expanded::after {\n position: absolute;\n z-index: 1;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n\n /* Slight blue shadow. */\n box-shadow: inset 0 0 20px rgb(64 115 140 / 0.2);\n content: '';\n pointer-events: none;\n}\n\n.chartViewport.dragging {\n cursor: grabbing;\n}\n\n.chartViewportScroll {\n position: absolute;\n bottom: 0;\n left: 0;\n overflow: hidden;\n padding: 3px 10px;\n border-radius: 0 5px 0 0;\n background: rgb(0 0 0 / 0.07);\n box-shadow:\n 0 0 0 0.5px rgb(0 0 0 / 0.1),\n 0 2px 4px rgb(0 0 0 / 0.1);\n line-height: 20px;\n opacity: 1;\n pointer-events: none;\n text-overflow: ellipsis;\n transition:\n transform 0.2s ease-in-out,\n opacity 0.2s ease-in-out;\n white-space: nowrap;\n will-change: opacity, transform;\n}\n\n.chartViewportScroll.hidden {\n opacity: 0;\n transform: translateY(30px);\n}\n\n.chartViewportScrollKbd {\n position: relative;\n top: -1px;\n display: inline-block;\n padding: 0 0.5em;\n border: 1px solid #ccc;\n border-radius: 0.2em;\n margin: 0 0.2em;\n background-color: #f6f6f6;\n box-shadow: -0.1em 0.1em 0 #bbb;\n color: #000;\n}\n"],sourceRoot:""}]);const s=i},741:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".threadActivityGraph{height:25px}.threadActivityGraphCanvas{display:block;height:100%;width:100%}","",{version:3,sources:["webpack://./src/components/shared/thread/ActivityGraph.css"],names:[],mappings:"AAIA,qBACE,WACF,CAEA,2BACE,aAAc,CAEd,WAAY,CADZ,UAEF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.threadActivityGraph {\n height: 25px;\n}\n\n.threadActivityGraphCanvas {\n display: block;\n width: 100%;\n height: 100%;\n}\n"],sourceRoot:""}]);const s=i},7115:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".threadHeightGraph{height:25px}.threadHeightGraphCanvas{display:block;height:25px;width:100%}.threadCPUGraph{margin-top:5px}","",{version:3,sources:["webpack://./src/components/shared/thread/HeightGraph.css"],names:[],mappings:"AAIA,mBACE,WACF,CAEA,yBACE,aAAc,CAEd,WAAY,CADZ,UAEF,CAEA,gBACE,cACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.threadHeightGraph {\n height: 25px;\n}\n\n.threadHeightGraphCanvas {\n display: block;\n width: 100%;\n height: 25px;\n}\n\n.threadCPUGraph {\n margin-top: 5px;\n}\n"],sourceRoot:""}]);const s=i},8787:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".threadSampleGraph{height:5px;margin-top:1px}.threadSampleGraphCanvas{display:block;height:5px;width:100%}","",{version:3,sources:["webpack://./src/components/shared/thread/SampleGraph.css"],names:[],mappings:"AAIA,mBACE,UAAW,CACX,cACF,CAEA,yBACE,aAAc,CAEd,UAAW,CADX,UAEF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.threadSampleGraph {\n height: 5px;\n margin-top: 1px;\n}\n\n.threadSampleGraphCanvas {\n display: block;\n width: 100%;\n height: 5px;\n}\n"],sourceRoot:""}]);const s=i},9689:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,'.sidebar{--sidebar-indent:16px;background:var(--grey-10);border-top:1px solid var(--grey-30);font-size:11px;overflow:auto}.sidebar-contents-wrapper{line-height:1.5;margin:16px;margin-inline-start:11px;position:relative}.sidebar-calltree .sidebar-contents-wrapper{grid-gap:2px 5px;align-content:start;align-items:center;display:grid;grid-template-columns:1fr min-content min-content}.sidebar-title2,.sidebar-title3,.sidebar-titlegroup{grid-column-start:span 3;min-width:0}.sidebar-label,.sidebar-title-label>:nth-child(2),.sidebar-title2,.sidebar-title3{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sidebar-title-label{grid-gap:5px;display:grid;grid-template-columns:min-content 1fr}.sidebar-title-label>:nth-child(2){color:var(--grey-50);text-align:right}.sidebar-titlegroup{line-height:unset;margin:0 0 1em}.sidebar-subtitle,.sidebar-title{font-weight:400;margin:0;padding:0}.can-select-content-input{all:unset;text-overflow:ellipsis;width:100%}.can-select-content-input:focus-visible{text-overflow:unset}.sidebar-title{font-size:1.2em;font-weight:500;margin-bottom:.3em}.sidebar-subtitle{color:var(--grey-50);font-size:inherit}.sidebar-title2,.sidebar-title3{font-weight:400}.sidebar-title2{margin:.9em 0 .4em}.sidebar-title3{margin:.7em 0 .3em}.sidebar-label{color:var(--grey-50);grid-column-start:1;margin-inline-start:var(--sidebar-indent);white-space:nowrap}.sidebar-label-indent{margin-inline-start:calc(var(--sidebar-indent)*2)}.sidebar-percentage,.sidebar-value{text-align:right;white-space:nowrap}.sidebar-histogram-bar{background-color:var(--grey-30);grid-column-start:span 3;margin-inline-start:var(--sidebar-indent)}.sidebar-histogram-bar-color{height:5px}.sidebar-histogram-bar-color.category-color-grey,.sidebar-histogram-bar-color.category-color-transparent{background-color:var(--grey-50)}.sidebar-toggle{background:0;border:0;color:var(--grey-50);font-size:inherit;padding:0}.sidebar-toggle:focus-visible{border:0;border-radius:2px;box-shadow:none;color:var(--blue-60);text-decoration:underline}.sidebar-toggle:before{background:none;border-color:#0000 #0000 #0000 currentcolor;border-style:solid;border-width:5px 4px 5px 8px;content:"";height:0;margin-top:1px;margin-inline-start:-11px;position:absolute;width:0}.sidebar-toggle:active:hover{color:var(--grey-60)}.sidebar-toggle.expanded:before{border-color:currentcolor #0000 #0000;border-style:solid;border-width:8px 5px 4px;margin-top:3px;margin-inline-start:-12px}',"",{version:3,sources:["webpack://./src/components/sidebar/sidebar.css"],names:[],mappings:"AAAA,SAME,qBAAsB,CAHtB,yBAA0B,CAD1B,mCAAoC,CAEpC,cAAe,CAHf,aAMF,CAEA,0BAIE,eAAgB,CADhB,WAAY,CAIZ,wBAAqC,CALrC,iBAMF,CAEA,4CAIE,gBAAiB,CAFjB,mBAAoB,CACpB,kBAAmB,CAFnB,YAAa,CAIb,iDAOF,CAEA,oDAIE,wBAAyB,CADzB,WAEF,CAGA,kFAKE,WAAY,CADZ,eAAgB,CAEhB,sBAAuB,CACvB,kBACF,CAEA,qBAEE,YAAa,CADb,YAAa,CAEb,qCACF,CAEA,mCACE,oBAAqB,CACrB,gBACF,CAEA,oBAEE,iBAAkB,CADlB,cAEF,CAEA,iCAIE,eAAmB,CADnB,QAAS,CADT,SAGF,CAGA,0BACE,SAAU,CAEV,sBAAuB,CADvB,UAEF,CAEA,wCACE,mBACF,CAEA,eAEE,eAAgB,CAChB,eAAgB,CAFhB,kBAGF,CAEA,kBACE,oBAAqB,CACrB,iBACF,CAEA,gCAEE,eACF,CAEA,gBACE,kBACF,CAEA,gBACE,kBACF,CAEA,eACE,oBAAqB,CACrB,mBAAoB,CACpB,yCAA0C,CAC1C,kBACF,CAEA,sBACE,iDACF,CAEA,mCAEE,gBAAiB,CACjB,kBACF,CAEA,uBACE,+BAAgC,CAChC,wBAAyB,CACzB,yCACF,CAEA,6BACE,UACF,CAOA,yGAEE,+BACF,CAEA,gBAGE,YAAa,CADb,QAAS,CAET,oBAAqB,CACrB,iBAAkB,CAJlB,SAKF,CAIA,8BACE,QAAS,CACT,iBAAkB,CAClB,eAAgB,CAChB,oBAAqB,CACrB,yBACF,CAGA,uBAQE,eAAgB,CAFhB,2CAA8D,CAA9D,kBAA8D,CAA9D,4BAA8D,CAG9D,UAAW,CANX,QAAS,CAIT,cAAe,CAGf,yBAA0B,CAT1B,iBAAkB,CAClB,OASF,CAEA,6BACE,oBACF,CAEA,gCAGE,qCAAkD,CAAlD,kBAAkD,CAAlD,wBAAkD,CAClD,cAAe,CACf,yBACF",sourcesContent:[".sidebar {\n overflow: auto;\n border-top: 1px solid var(--grey-30);\n background: var(--grey-10);\n font-size: 11px;\n\n --sidebar-indent: 16px;\n}\n\n.sidebar-contents-wrapper {\n /* Allow absolute positioning that is dependent of the scrolling. */\n position: relative;\n margin: 16px;\n line-height: 1.5;\n\n /* Subtract the splitter size. */\n margin-inline-start: calc(16px - 5px);\n}\n\n.sidebar-calltree .sidebar-contents-wrapper {\n display: grid;\n align-content: start; /* the grid isn't vertically stretched */\n align-items: center;\n grid-gap: 2px 5px;\n grid-template-columns:\n /* Label */\n 1fr\n /* Value */\n min-content\n /* Percentage */\n min-content;\n}\n\n.sidebar-titlegroup,\n.sidebar-title2,\n.sidebar-title3 {\n min-width: 0; /* With this, the cell's minimum size is 0 instead of min-content */\n grid-column-start: span 3;\n}\n\n/* Truncate the text with an ellipse */\n.sidebar-label,\n.sidebar-title2,\n.sidebar-title3,\n.sidebar-title-label > :nth-child(2) {\n overflow: hidden;\n min-width: 0;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.sidebar-title-label {\n display: grid;\n grid-gap: 5px;\n grid-template-columns: min-content 1fr;\n}\n\n.sidebar-title-label > :nth-child(2) {\n color: var(--grey-50);\n text-align: right;\n}\n\n.sidebar-titlegroup {\n margin: 0 0 1em;\n line-height: unset;\n}\n\n.sidebar-title,\n.sidebar-subtitle {\n padding: 0;\n margin: 0;\n font-weight: normal;\n}\n\n/* This will be used on both the title and the subtitle */\n.can-select-content-input {\n all: unset;\n width: 100%;\n text-overflow: ellipsis;\n}\n\n.can-select-content-input:focus-visible {\n text-overflow: unset;\n}\n\n.sidebar-title {\n margin-bottom: 0.3em;\n font-size: 1.2em;\n font-weight: 500;\n}\n\n.sidebar-subtitle {\n color: var(--grey-50);\n font-size: inherit; /* reset browser styles */\n}\n\n.sidebar-title2,\n.sidebar-title3 {\n font-weight: normal;\n}\n\n.sidebar-title2 {\n margin: 0.9em 0 0.4em;\n}\n\n.sidebar-title3 {\n margin: 0.7em 0 0.3em;\n}\n\n.sidebar-label {\n color: var(--grey-50);\n grid-column-start: 1;\n margin-inline-start: var(--sidebar-indent);\n white-space: nowrap;\n}\n\n.sidebar-label-indent {\n margin-inline-start: calc(var(--sidebar-indent) * 2);\n}\n\n.sidebar-value,\n.sidebar-percentage {\n text-align: right;\n white-space: nowrap;\n}\n\n.sidebar-histogram-bar {\n background-color: var(--grey-30);\n grid-column-start: span 3;\n margin-inline-start: var(--sidebar-indent);\n}\n\n.sidebar-histogram-bar-color {\n height: 5px;\n}\n\n.sidebar-histogram-bar-color.category-color-transparent {\n /* A white bar does not show up well here */\n background-color: var(--grey-50);\n}\n\n.sidebar-histogram-bar-color.category-color-grey {\n /* The grey category color is the same our background color, choose a darker grey instead. */\n background-color: var(--grey-50);\n}\n\n.sidebar-toggle {\n padding: 0;\n border: 0;\n background: 0;\n color: var(--grey-50);\n font-size: inherit;\n}\n\n/* Opt out of the default photon styling, as it doesn't look very nice with the\n overflow: hidden of the container */\n.sidebar-toggle:focus-visible {\n border: 0;\n border-radius: 2px;\n box-shadow: none;\n color: var(--blue-60);\n text-decoration: underline;\n}\n\n/* This is the twisty arrow */\n.sidebar-toggle::before {\n position: absolute;\n width: 0;\n height: 0;\n border-width: 5px 4px 5px 8px;\n border-style: solid;\n border-color: transparent transparent transparent currentcolor;\n margin-top: 1px;\n background: none;\n content: '';\n margin-inline-start: -11px;\n}\n\n.sidebar-toggle:active:hover {\n color: var(--grey-60);\n}\n\n.sidebar-toggle.expanded::before {\n border-width: 8px 5px 4px;\n border-style: solid;\n border-color: currentcolor transparent transparent;\n margin-top: 3px;\n margin-inline-start: -12px;\n}\n"],sourceRoot:""}]);const s=i},797:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".stackChartCanvas{left:0;position:absolute;top:0}.stackChartCanvasTooltip{padding:5px}","",{version:3,sources:["webpack://./src/components/stack-chart/Canvas.css"],names:[],mappings:"AAIA,kBAGE,MAAO,CAFP,iBAAkB,CAClB,KAEF,CAMA,yBACE,WACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.stackChartCanvas {\n position: absolute;\n top: 0;\n left: 0;\n}\n\n/**\n * This tooltip is multi-line and more intense, so add additional whitespace to make it\n * more readable.\n */\n.stackChartCanvasTooltip {\n padding: 5px;\n}\n"],sourceRoot:""}]);const s=i},1331:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".stackChart{display:flex;flex:1;flex-flow:column;overflow:hidden}.stackChartContent{border-top:1px solid var(--grey-30);display:flex;flex:1}","",{version:3,sources:["webpack://./src/components/stack-chart/index.css"],names:[],mappings:"AAIA,YACE,YAAa,CAEb,MAAO,CACP,gBAAiB,CAFjB,eAGF,CAEA,mBAGE,mCAAoC,CAFpC,YAAa,CACb,MAEF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.stackChart {\n display: flex;\n overflow: hidden;\n flex: 1;\n flex-flow: column;\n}\n\n.stackChartContent {\n display: flex;\n flex: 1;\n border-top: 1px solid var(--grey-30);\n}\n"],sourceRoot:""}]);const s=i},9999:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,'.timelineSelection.activeTab{--thread-label-column-width:0px}.timelineTrack:not(:first-child) .timelineTrackGlobalRow.activeTab .timelineTrackThread{border-top:1px solid var(--grey-30);padding-top:10px}.timelineResources{background-color:#fff}.timelineResourcesHeader{cursor:pointer;font-size:12px;height:var(--resources-header-height);line-height:var(--resources-header-height);padding-left:20px;position:relative}.timelineResourcesHeader:before{left:8px;top:calc(50% - 5px)}.timelineResourceTracks{list-style:none;margin:0;padding:0;position:relative}.timelineTrackResource:first-child{border-top:none}.timelineTrackResourceRow{flex-direction:column;position:relative}.timelineTrackResourceRow .threadActivityGraph,.timelineTrackResourceRow .timelineMarkers{transition:height .2s}.timelineResourcesHeader .timelineMarkers{height:0}.timelineTrackResourceRow:not(.opened) .timelineMarkers{height:3px}.timelineTrackResourceRow.opened .timelineMarkers:not(.timelineMarkersGeckoMain) canvas{height:6px}.timelineTrackResourceRow .timelineMarkersGeckoMain{height:9px}.timelineResourcesHeader .threadActivityGraph{height:20px}.timelineTrackResourceRow:not(.opened) .threadActivityGraph{height:6px}.timelineTrackResourceLabel{cursor:pointer;line-height:var(--resources-header-height);max-width:calc(100% - 55px);overflow:hidden;padding:0 5px 0 30px;text-overflow:ellipsis;white-space:nowrap}.timelineTrackResourceRow.opened .timelineTrackResourceLabel{position:relative}.timelineTrackResourceLabel:before{left:20px;top:5px}.timelineResourcesHeader:before,.timelineTrackResourceLabel:before{border-bottom:5px solid #0000;border-left:5px solid #979797;border-top:5px solid #0000;content:"";height:0;position:absolute;transition:transform .2s;width:0}.timelineResourcesHeader.opened:before,.timelineTrackResourceRow.opened .timelineTrackResourceLabel:before{transform:rotate(90deg)}.timelineTrackResourceLabel span{font-weight:700}.timelineResourcesHeader .timelineTrackThread.condensed{height:var(--resources-header-height);left:0;position:absolute;top:0;width:100%}',"",{version:3,sources:["webpack://./src/components/timeline/ActiveTabTimeline.css"],names:[],mappings:"AAIA,6BAKE,+BACF,CAEA,wFAIE,mCAAoC,CADpC,gBAEF,CAGA,mBACE,qBACF,CAEA,yBAIE,cAAe,CACf,cAAe,CAHf,qCAAsC,CAItC,0CAA2C,CAH3C,iBAAkB,CAFlB,iBAMF,CAEA,gCAEE,QAAS,CADT,mBAEF,CAEA,wBAIE,eAAgB,CADhB,QAAS,CADT,SAAU,CADV,iBAIF,CAGA,mCACE,eACF,CAEA,0BAEE,qBAAsB,CADtB,iBAEF,CAEA,0FAEE,qBACF,CAEA,0CAKE,QACF,CAGA,wDACE,UACF,CAMA,wFAGE,UACF,CAMA,oDACE,UACF,CAEA,8CACE,WACF,CAEA,4DACE,UACF,CAEA,4BAIE,cAAe,CACf,0CAA2C,CAH3C,2BAA4B,CAD5B,eAAgB,CAEhB,oBAAqB,CAGrB,sBAAuB,CACvB,kBACF,CAEA,6DACE,iBACF,CAEA,mCAEE,SAAU,CADV,OAEF,CAEA,mEAQE,6BAAoC,CACpC,6BAA8B,CAF9B,0BAAiC,CAGjC,UAAW,CANX,QAAS,CAFT,iBAAkB,CASlB,wBAA0B,CAR1B,OASF,CAEA,2GAGE,uBACF,CAEA,iCACE,eACF,CAEA,wDAKE,qCAAsC,CAFtC,MAAO,CAFP,iBAAkB,CAClB,KAAM,CAEN,UAEF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.timelineSelection.activeTab {\n /**\n * We have to use `0px` instead of `0` because we are using this variable in\n * `calc` functions and they expect a pixel unit instead of an integer.\n */\n --thread-label-column-width: 0px;\n}\n\n.timelineTrack:not(:first-child)\n .timelineTrackGlobalRow.activeTab\n .timelineTrackThread {\n padding-top: 10px;\n border-top: 1px solid var(--grey-30);\n}\n\n/* Active tab timeline resources panel */\n.timelineResources {\n background-color: #fff;\n}\n\n.timelineResourcesHeader {\n position: relative;\n height: var(--resources-header-height);\n padding-left: 20px;\n cursor: pointer;\n font-size: 12px;\n line-height: var(--resources-header-height);\n}\n\n.timelineResourcesHeader::before {\n top: calc(50% - 5px);\n left: 8px;\n}\n\n.timelineResourceTracks {\n position: relative;\n padding: 0;\n margin: 0;\n list-style: none;\n}\n\n/* Active tab timeline resource tracks */\n.timelineTrackResource:first-child {\n border-top: none;\n}\n\n.timelineTrackResourceRow {\n position: relative;\n flex-direction: column;\n}\n\n.timelineTrackResourceRow .threadActivityGraph,\n.timelineTrackResourceRow .timelineMarkers {\n transition: height 0.2s;\n}\n\n.timelineResourcesHeader .timelineMarkers {\n /*\n * TODO: Currently we don't show any markers for merged resource track but we\n * should add jank markers.\n */\n height: 0;\n}\n\n/* Set the marker height of the closed resources to 3px */\n.timelineTrackResourceRow:not(.opened) .timelineMarkers {\n height: 3px;\n}\n\n/**\n * Double the marker height of markers when they are open, except the main marker\n * row, because it should be heigher (it's set by the full timeline css).\n */\n.timelineTrackResourceRow.opened\n .timelineMarkers:not(.timelineMarkersGeckoMain)\n canvas {\n height: 6px;\n}\n\n/**\n * This is the main markers section. Since it has additional marker rows,\n * we need to set it a heigher value.\n */\n.timelineTrackResourceRow .timelineMarkersGeckoMain {\n height: 9px;\n}\n\n.timelineResourcesHeader .threadActivityGraph {\n height: 20px;\n}\n\n.timelineTrackResourceRow:not(.opened) .threadActivityGraph {\n height: 6px;\n}\n\n.timelineTrackResourceLabel {\n overflow: hidden;\n max-width: calc(100% - 55px);\n padding: 0 5px 0 30px;\n cursor: pointer;\n line-height: var(--resources-header-height);\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.timelineTrackResourceRow.opened .timelineTrackResourceLabel {\n position: relative;\n}\n\n.timelineTrackResourceLabel::before {\n top: 5px;\n left: 20px;\n}\n\n.timelineResourcesHeader::before,\n.timelineTrackResourceLabel::before {\n position: absolute;\n width: 0;\n height: 0;\n\n /* Drawing the arrow */\n border-top: 5px solid transparent;\n border-bottom: 5px solid transparent;\n border-left: 5px solid #979797;\n content: '';\n transition: transform 0.2s;\n}\n\n.timelineResourcesHeader.opened::before,\n.timelineTrackResourceRow.opened .timelineTrackResourceLabel::before {\n /* Rotating the arrow if the panel is opened */\n transform: rotate(90deg);\n}\n\n.timelineTrackResourceLabel span {\n font-weight: bold;\n}\n\n.timelineResourcesHeader .timelineTrackThread.condensed {\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: var(--resources-header-height);\n}\n"],sourceRoot:""}]);const s=i},6669:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".timelineEmptyThreadIndicator{--empty-buffer-color1:rgba(69,160,255,.225);--empty-buffer-color2:rgba(69,160,255,.075);--shutdown-startup-color:#00003212}.timelineEmptyThreadIndicatorBlock{bottom:0;box-sizing:border-box;position:absolute;top:0}.timelineEmptyThreadIndicatorStartup{background-color:var(--shutdown-startup-color);border-right:1px solid var(--grey-30);box-shadow:inset -4px 0 4px #0000000d}.timelineEmptyThreadIndicatorShutdown{background-color:var(--shutdown-startup-color);border-left:1px solid var(--grey-30);box-shadow:inset 4px 0 4px #0000000d}.timelineEmptyThreadIndicatorEmptyBuffer{background:repeating-linear-gradient(45deg,var(--empty-buffer-color1),var(--empty-buffer-color1) 8px,var(--empty-buffer-color2) 8px,var(--empty-buffer-color2) 16px)}.timelineEmptyThreadIndicatorLongTooltip{display:inline-block;max-width:500px}","",{version:3,sources:["webpack://./src/components/timeline/EmptyThreadIndicator.css"],names:[],mappings:"AAIA,8BACE,2CAA8C,CAC9C,2CAA8C,CAG9C,kCACF,CAEA,mCAGE,QAAS,CAGT,qBAAsB,CALtB,iBAAkB,CAClB,KAKF,CAEA,qCAEE,8CAA+C,CAD/C,qCAAsC,CAEtC,qCACF,CAEA,sCAEE,8CAA+C,CAD/C,oCAAqC,CAErC,oCACF,CAEA,yCACE,oKAOF,CAEA,yCACE,oBAAqB,CACrB,eACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.timelineEmptyThreadIndicator {\n --empty-buffer-color1: rgb(69 160 255 / 0.225);\n --empty-buffer-color2: rgb(69 160 255 / 0.075);\n\n /* The following color is based off grey-20, but uses opacity instead. */\n --shutdown-startup-color: rgb(0 0 50 / 0.07);\n}\n\n.timelineEmptyThreadIndicatorBlock {\n position: absolute;\n top: 0;\n bottom: 0;\n\n /* Don't add the border to the width, as this causes the block to overflow. */\n box-sizing: border-box;\n}\n\n.timelineEmptyThreadIndicatorStartup {\n border-right: solid 1px var(--grey-30);\n background-color: var(--shutdown-startup-color);\n box-shadow: inset -4px 0 4px rgb(0 0 0 / 0.05);\n}\n\n.timelineEmptyThreadIndicatorShutdown {\n border-left: solid 1px var(--grey-30);\n background-color: var(--shutdown-startup-color);\n box-shadow: inset 4px 0 4px rgb(0 0 0 / 0.05);\n}\n\n.timelineEmptyThreadIndicatorEmptyBuffer {\n background: repeating-linear-gradient(\n 45deg,\n var(--empty-buffer-color1),\n var(--empty-buffer-color1) 8px,\n var(--empty-buffer-color2) 8px,\n var(--empty-buffer-color2) 16px\n );\n}\n\n.timelineEmptyThreadIndicatorLongTooltip {\n display: inline-block;\n max-width: 500px;\n}\n"],sourceRoot:""}]);const s=i},8808:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".timelineMarkersCanvas{display:block;height:100%;width:100%}.timelineMarkers{display:block;height:6px;list-style:none;margin:0;opacity:.75;overflow:hidden;position:relative}.timelineMarkers.selected{opacity:1}.timelineMarkersGeckoMain{height:18px}","",{version:3,sources:["webpack://./src/components/timeline/Markers.css"],names:[],mappings:"AAIA,uBACE,aAAc,CAEd,WAAY,CADZ,UAEF,CAEA,iBAEE,aAAc,CAEd,UAAW,CAEX,eAAgB,CADhB,QAAS,CAET,WAAa,CAJb,eAAgB,CAFhB,iBAOF,CAEA,0BACE,SACF,CAEA,0BACE,WACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.timelineMarkersCanvas {\n display: block;\n width: 100%;\n height: 100%;\n}\n\n.timelineMarkers {\n position: relative;\n display: block;\n overflow: hidden;\n height: 6px;\n margin: 0;\n list-style: none;\n opacity: 0.75;\n}\n\n.timelineMarkers.selected {\n opacity: 1;\n}\n\n.timelineMarkersGeckoMain {\n height: 18px;\n}\n"],sourceRoot:""}]);const s=i},545:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".originsTimelineTrack{margin:5px}","",{version:3,sources:["webpack://./src/components/timeline/OriginsTimeline.css"],names:[],mappings:"AAOA,sBACE,UACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n/**\n * This file is just a stub for the WIP origins-based timeline.\n */\n.originsTimelineTrack {\n margin: 5px;\n}\n"],sourceRoot:""}]);const s=i},5531:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".overflowEdgeIndicator{display:flex;flex:1;flex-direction:column;position:relative;width:calc(100% + var(--vertical-scrollbar-reserved-width))}.overflowEdgeIndicatorEdge{opacity:0;pointer-events:none;position:absolute;transition:.15s ease-in-out;transition-property:opacity,visibility;visibility:hidden;z-index:3}.overflowEdgeIndicatorEdge.bottomEdge,.overflowEdgeIndicatorEdge.leftEdge,.overflowEdgeIndicatorEdge.topEdge{left:0}.overflowEdgeIndicatorEdge.bottomEdge,.overflowEdgeIndicatorEdge.rightEdge,.overflowEdgeIndicatorEdge.topEdge{right:0}.overflowEdgeIndicatorEdge.leftEdge,.overflowEdgeIndicatorEdge.rightEdge,.overflowEdgeIndicatorEdge.topEdge{top:0}.overflowEdgeIndicatorEdge.bottomEdge,.overflowEdgeIndicatorEdge.leftEdge,.overflowEdgeIndicatorEdge.rightEdge{bottom:0}.overflowEdgeIndicatorEdge.leftEdge,.overflowEdgeIndicatorEdge.rightEdge{width:15px}.overflowEdgeIndicatorEdge.bottomEdge,.overflowEdgeIndicatorEdge.topEdge{height:15px}.overflowEdgeIndicatorEdge.topEdge{background:radial-gradient(ellipse at center top,#0006,#0000 60%)}.overflowEdgeIndicatorEdge.rightEdge{background:radial-gradient(ellipse at right center,#0006,#0000 60%)}.overflowEdgeIndicatorEdge.bottomEdge{background:radial-gradient(ellipse at center bottom,#0006,#0000 60%)}.overflowEdgeIndicatorEdge.leftEdge{background:radial-gradient(ellipse at left center,#0006,#0000 60%)}.overflowEdgeIndicator.overflowsOnBottom>.overflowEdgeIndicatorEdge.bottomEdge,.overflowEdgeIndicator.overflowsOnLeft>.overflowEdgeIndicatorEdge.leftEdge,.overflowEdgeIndicator.overflowsOnRight>.overflowEdgeIndicatorEdge.rightEdge,.overflowEdgeIndicator.overflowsOnTop>.overflowEdgeIndicatorEdge.topEdge{opacity:1;visibility:visible}","",{version:3,sources:["webpack://./src/components/timeline/OverflowEdgeIndicator.css"],names:[],mappings:"AAIA,uBAEE,YAAa,CAEb,MAAO,CACP,qBAAsB,CAJtB,iBAAkB,CAElB,2DAGF,CAEA,2BAGE,SAAU,CACV,mBAAoB,CAHpB,iBAAkB,CAIlB,2BAA6B,CAC7B,sCAAwC,CACxC,iBAAkB,CALlB,SAMF,CAEA,6GAGE,MACF,CAEA,8GAGE,OACF,CAEA,4GAGE,KACF,CAEA,+GAGE,QACF,CAEA,yEAEE,UACF,CAEA,yEAEE,WACF,CAEA,mCACE,iEAKF,CAEA,qCACE,mEAKF,CAEA,sCACE,oEAKF,CAEA,oCACE,kEAKF,CAEA,gTAKE,SAAU,CACV,kBACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.overflowEdgeIndicator {\n position: relative;\n display: flex;\n width: calc(100% + var(--vertical-scrollbar-reserved-width));\n flex: 1;\n flex-direction: column;\n}\n\n.overflowEdgeIndicatorEdge {\n position: absolute;\n z-index: 3;\n opacity: 0;\n pointer-events: none;\n transition: 150ms ease-in-out;\n transition-property: opacity, visibility;\n visibility: hidden;\n}\n\n.overflowEdgeIndicatorEdge.topEdge,\n.overflowEdgeIndicatorEdge.leftEdge,\n.overflowEdgeIndicatorEdge.bottomEdge {\n left: 0;\n}\n\n.overflowEdgeIndicatorEdge.topEdge,\n.overflowEdgeIndicatorEdge.rightEdge,\n.overflowEdgeIndicatorEdge.bottomEdge {\n right: 0;\n}\n\n.overflowEdgeIndicatorEdge.topEdge,\n.overflowEdgeIndicatorEdge.leftEdge,\n.overflowEdgeIndicatorEdge.rightEdge {\n top: 0;\n}\n\n.overflowEdgeIndicatorEdge.leftEdge,\n.overflowEdgeIndicatorEdge.rightEdge,\n.overflowEdgeIndicatorEdge.bottomEdge {\n bottom: 0;\n}\n\n.overflowEdgeIndicatorEdge.leftEdge,\n.overflowEdgeIndicatorEdge.rightEdge {\n width: 15px;\n}\n\n.overflowEdgeIndicatorEdge.topEdge,\n.overflowEdgeIndicatorEdge.bottomEdge {\n height: 15px;\n}\n\n.overflowEdgeIndicatorEdge.topEdge {\n background: radial-gradient(\n ellipse at center top,\n rgb(0 0 0 / 0.4),\n transparent 60%\n );\n}\n\n.overflowEdgeIndicatorEdge.rightEdge {\n background: radial-gradient(\n ellipse at right center,\n rgb(0 0 0 / 0.4),\n transparent 60%\n );\n}\n\n.overflowEdgeIndicatorEdge.bottomEdge {\n background: radial-gradient(\n ellipse at center bottom,\n rgb(0 0 0 / 0.4),\n transparent 60%\n );\n}\n\n.overflowEdgeIndicatorEdge.leftEdge {\n background: radial-gradient(\n ellipse at left center,\n rgb(0 0 0 / 0.4),\n transparent 60%\n );\n}\n\n.overflowEdgeIndicator.overflowsOnTop > .overflowEdgeIndicatorEdge.topEdge,\n.overflowEdgeIndicator.overflowsOnRight > .overflowEdgeIndicatorEdge.rightEdge,\n.overflowEdgeIndicator.overflowsOnBottom\n > .overflowEdgeIndicatorEdge.bottomEdge,\n.overflowEdgeIndicator.overflowsOnLeft > .overflowEdgeIndicatorEdge.leftEdge {\n opacity: 1;\n visibility: visible;\n}\n"],sourceRoot:""}]);const s=i},1081:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".timelineRuler{height:var(--timeline-ruler-height)}.timelineRulerContainer{color:var(--grey-50);cursor:default;display:block;font-size:9px;height:20px;left:0;line-height:20px;list-style:none;margin:0;overflow:hidden;padding:0;position:absolute;right:0;top:0;-webkit-user-select:none;user-select:none}.timelineRulerNotch{background:linear-gradient(#0000,var(--grey-30) 19px,var(--grey-30) 20px,#d7d7db66 0);bottom:0;display:block;margin-left:-1px;position:absolute;text-align:right;top:0;white-space:nowrap;width:1px}.timelineRulerNotchText{padding-right:5px;position:absolute;right:0}","",{version:3,sources:["webpack://./src/components/timeline/Ruler.css"],names:[],mappings:"AAIA,eACE,mCACF,CAEA,wBAUE,oBAAqB,CACrB,cAAe,CANf,aAAc,CAOd,aAAc,CALd,WAAY,CAHZ,MAAO,CASP,gBAAiB,CACjB,eAAgB,CALhB,QAAS,CAHT,eAAgB,CAEhB,SAAU,CAPV,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAaN,wBAAiB,CAAjB,gBACF,CAMA,oBAOE,qFAKC,CATD,QAAS,CACT,aAAc,CAEd,gBAAiB,CALjB,iBAAkB,CAYlB,gBAAiB,CAXjB,KAAM,CAYN,kBAAmB,CATnB,SAUF,CAEA,wBAGE,iBAAkB,CAFlB,iBAAkB,CAClB,OAEF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.timelineRuler {\n height: var(--timeline-ruler-height);\n}\n\n.timelineRulerContainer {\n position: absolute;\n top: 0;\n right: 0;\n left: 0;\n display: block;\n overflow: hidden;\n height: 20px;\n padding: 0;\n margin: 0;\n color: var(--grey-50);\n cursor: default;\n font-size: 9px;\n line-height: 20px;\n list-style: none;\n user-select: none;\n}\n\n/**\n * The notch is a 1px wide span with a gradient. It has a text numeric label that is\n * then overflows to the left of the line.\n */\n.timelineRulerNotch {\n position: absolute;\n top: 0;\n bottom: 0;\n display: block;\n width: 1px;\n margin-left: -1px;\n background: linear-gradient(\n transparent,\n var(--grey-30) 19px,\n var(--grey-30) 20px,\n #d7d7db66 0\n );\n text-align: right;\n white-space: nowrap;\n}\n\n.timelineRulerNotchText {\n position: absolute;\n right: 0;\n padding-right: 5px;\n}\n"],sourceRoot:""}]);const s=i},983:(e,t,n)=>{"use strict";n.d(t,{Z:()=>h});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a),s=n(1667),l=n.n(s),c=new URL(n(9835),n.b),d=i()(o()),u=l()(c);d.push([e.id,`.timelineSelection{--thread-label-column-width:150px;--vertical-scrollbar-reserved-width:15px;--content-width:calc(100vw - var(--thread-label-column-width) - var(--vertical-scrollbar-reserved-width));-moz-user-focus:ignore;display:flex;flex:1;flex-direction:column;margin-left:var(--thread-label-column-width);position:relative;width:var(--content-width)}.timelineSelectionHoverLine{background:#0006;bottom:0;pointer-events:none;position:absolute;top:0;width:1px;z-index:1}.timelineSelectionOverlayTime{background-color:#999;border-radius:0 4px 4px 0;color:#fff;margin-left:1px;padding:3.25px 8px;position:absolute;z-index:1}.timelineSelectionOverlay{display:flex;flex-flow:row nowrap;inset:0;margin-left:-5px;overflow:hidden;padding-left:5px;pointer-events:none;position:absolute;z-index:2}.timelineSelectionDimmerAfter,.timelineSelectionDimmerBefore{background:#0c0c0d1a;flex-shrink:0}.timelineSelectionDimmerAfter{flex:1}.timelineSelectionOverlayWrapper{display:flex;flex-flow:column nowrap}.timelineSelectionGrippy{display:flex;flex-flow:row nowrap;height:20px;pointer-events:auto}.timelineSelectionGrippyRangeEnd,.timelineSelectionGrippyRangeStart{background:#aaa;border:1px solid #fff;border-radius:5px;cursor:ew-resize;margin:0 -4px;padding:3px;position:relative;width:0;z-index:3}.timelineSelectionGrippyRangeEnd.dragging,.timelineSelectionGrippyRangeEnd:hover,.timelineSelectionGrippyRangeStart.dragging,.timelineSelectionGrippyRangeStart:hover{background:#888}.timelineSelectionGrippyMoveRange{cursor:grab;flex:1}.timelineSelectionGrippyMoveRange.dragging{cursor:grabbing}.timelineSelectionOverlayInner{align-items:center;display:flex;flex:1;justify-content:center;min-height:0;min-width:0}.timelineSelectionOverlayRange{background-color:var(--blue-50);border-radius:0 0 4px 4px;box-shadow:0 2px 2px #0003;color:#fff;opacity:1;padding:4px 8px;pointer-events:none;position:absolute;top:20px;transition:opacity .2s}.timelineSelectionOverlayRange.hidden{opacity:0}.timelineSelectionOverlayZoomButton{background:url(${u}) 50% no-repeat #fff9;border:1px solid #0003;border-radius:100%;box-sizing:border-box;height:30px;margin:-15px;opacity:.5;pointer-events:auto;position:relative;transition:opacity .2s ease-in-out;width:30px;will-change:opacity}.timelineSelectionOverlayZoomButton.hidden{opacity:0!important;pointer-events:none;transition:unset}.timelineSelectionOverlayZoomButton:hover{background-color:#ffffffe6}.timelineSelection:hover .timelineSelectionOverlayZoomButton,.timelineSelectionOverlayZoomButton:active{opacity:1}.timelineSelectionOverlayZoomButton:active:hover{background-color:#a0a0a099}`,"",{version:3,sources:["webpack://./src/components/timeline/Selection.css"],names:[],mappings:"AAIA,mBACE,iCAAkC,CAClC,wCAAyC,CACzC,yGAGC,CAQD,sBAAuB,CALvB,YAAa,CAEb,MAAO,CACP,qBAAsB,CACtB,4CAA6C,CAL7C,iBAAkB,CAElB,0BAKF,CAEA,4BAME,gBAA4B,CAF5B,QAAS,CAGT,mBAAoB,CANpB,iBAAkB,CAElB,KAAM,CAEN,SAAU,CAHV,SAMF,CAEA,8BAME,qBAAkC,CAFlC,yBAA0B,CAG1B,UAAW,CAFX,eAAgB,CAFhB,kBAAmB,CAFnB,iBAAkB,CAClB,SAMF,CAEA,0BAGE,YAAa,CAEb,oBAAqB,CAGrB,OAAQ,CADR,gBAAiB,CAHjB,eAAgB,CAEhB,gBAAiB,CAGjB,mBAAoB,CARpB,iBAAkB,CAClB,SAQF,CAEA,6DAGE,oBAA+B,CAD/B,aAEF,CAEA,8BACE,MACF,CAEA,iCACE,YAAa,CACb,uBACF,CAEA,yBACE,YAAa,CAEb,oBAAqB,CADrB,WAAY,CAEZ,mBACF,CAEA,oEASE,eAAgB,CAHhB,qBAAuB,CACvB,iBAAkB,CAGlB,gBAAiB,CAFjB,aAAc,CAHd,WAAY,CAHZ,iBAAkB,CAElB,OAAQ,CADR,SAQF,CAEA,sKAIE,eACF,CAEA,kCAEE,WAAY,CADZ,MAEF,CAEA,2CACE,eACF,CAEA,+BAKE,kBAAmB,CAJnB,YAAa,CAGb,MAAO,CAEP,sBAAuB,CAHvB,YAAa,CADb,WAKF,CAEA,+BAKE,+BAAgC,CADhC,yBAA0B,CAE1B,0BAAsC,CACtC,UAAW,CACX,SAAU,CALV,eAAgB,CAMhB,mBAAoB,CARpB,iBAAkB,CAClB,QAAS,CAQT,sBACF,CAEA,sCACE,SACF,CAEA,oCAQE,sEACwB,CAJxB,sBAAkC,CAClC,kBAAmB,CAFnB,qBAAsB,CADtB,WAAY,CAIZ,YAAa,CAGb,UAAY,CACZ,mBAAoB,CAVpB,iBAAkB,CAWlB,kCAAqC,CAVrC,UAAW,CAWX,mBACF,CAEA,2CACE,mBAAqB,CACrB,mBAAoB,CACpB,gBACF,CAEA,0CACE,0BACF,CAEA,wGAEE,SACF,CAEA,iDACE,0BACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.timelineSelection {\n --thread-label-column-width: 150px;\n --vertical-scrollbar-reserved-width: 15px;\n --content-width: calc(\n 100vw - var(--thread-label-column-width) -\n var(--vertical-scrollbar-reserved-width)\n );\n\n position: relative;\n display: flex;\n width: var(--content-width);\n flex: 1;\n flex-direction: column;\n margin-left: var(--thread-label-column-width);\n -moz-user-focus: ignore;\n}\n\n.timelineSelectionHoverLine {\n position: absolute;\n z-index: 1;\n top: 0;\n bottom: 0;\n width: 1px;\n background: rgb(0 0 0 / 0.4);\n pointer-events: none;\n}\n\n.timelineSelectionOverlayTime {\n position: absolute;\n z-index: 1;\n padding: 3.25px 8px;\n border-radius: 0 4px 4px 0;\n margin-left: 1px;\n background-color: rgb(153 153 153);\n color: #fff;\n}\n\n.timelineSelectionOverlay {\n position: absolute;\n z-index: 2;\n display: flex;\n overflow: hidden;\n flex-flow: row nowrap;\n padding-left: 5px;\n margin-left: -5px;\n inset: 0;\n pointer-events: none;\n}\n\n.timelineSelectionDimmerBefore,\n.timelineSelectionDimmerAfter {\n flex-shrink: 0;\n background: rgb(12 12 13 / 0.1);\n}\n\n.timelineSelectionDimmerAfter {\n flex: 1;\n}\n\n.timelineSelectionOverlayWrapper {\n display: flex;\n flex-flow: column nowrap;\n}\n\n.timelineSelectionGrippy {\n display: flex;\n height: 20px;\n flex-flow: row nowrap;\n pointer-events: auto;\n}\n\n.timelineSelectionGrippyRangeStart,\n.timelineSelectionGrippyRangeEnd {\n position: relative;\n z-index: 3;\n width: 0;\n padding: 3px;\n border: 1px solid white;\n border-radius: 5px;\n margin: 0 -4px;\n background: #aaa;\n cursor: ew-resize;\n}\n\n.timelineSelectionGrippyRangeStart:hover,\n.timelineSelectionGrippyRangeStart.dragging,\n.timelineSelectionGrippyRangeEnd:hover,\n.timelineSelectionGrippyRangeEnd.dragging {\n background: #888;\n}\n\n.timelineSelectionGrippyMoveRange {\n flex: 1;\n cursor: grab;\n}\n\n.timelineSelectionGrippyMoveRange.dragging {\n cursor: grabbing;\n}\n\n.timelineSelectionOverlayInner {\n display: flex;\n min-width: 0;\n min-height: 0;\n flex: 1;\n align-items: center;\n justify-content: center;\n}\n\n.timelineSelectionOverlayRange {\n position: absolute;\n top: 20px;\n padding: 4px 8px;\n border-radius: 0 0 4px 4px;\n background-color: var(--blue-50);\n box-shadow: 0 2px 2px rgb(0 0 0 / 0.2);\n color: #fff;\n opacity: 1;\n pointer-events: none;\n transition: opacity 200ms;\n}\n\n.timelineSelectionOverlayRange.hidden {\n opacity: 0;\n}\n\n.timelineSelectionOverlayZoomButton {\n position: relative;\n width: 30px;\n height: 30px;\n box-sizing: border-box;\n border: 1px solid rgb(0 0 0 / 0.2);\n border-radius: 100%;\n margin: -15px;\n background: url(../../../res/img/svg/zoom-icon.svg) center center no-repeat\n rgb(255 255 255 / 0.6);\n opacity: 0.5;\n pointer-events: auto;\n transition: opacity 200ms ease-in-out;\n will-change: opacity;\n}\n\n.timelineSelectionOverlayZoomButton.hidden {\n opacity: 0 !important;\n pointer-events: none;\n transition: unset;\n}\n\n.timelineSelectionOverlayZoomButton:hover {\n background-color: rgb(255 255 255 / 0.9);\n}\n\n.timelineSelectionOverlayZoomButton:active,\n.timelineSelection:hover .timelineSelectionOverlayZoomButton {\n opacity: 1;\n}\n\n.timelineSelectionOverlayZoomButton:active:hover {\n background-color: rgb(160 160 160 / 0.6);\n}\n"],sourceRoot:""}]);const h=d},3038:(e,t,n)=>{"use strict";n.d(t,{Z:()=>h});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a),s=n(1667),l=n.n(s),c=new URL(n(8115),n.b),d=i()(o()),u=l()(c);d.push([e.id,`.timelineTrack{margin:0;padding:0}.timelineTrackLocal{margin-left:15px}.timelineTrackRow{--selected-left-border-width:3px;background-color:#fff;border-top:1px solid var(--grey-30);display:flex;flex-flow:row nowrap;padding-left:var(--selected-left-border-width)}.timelineTrackRow.selected{background-color:#edf6ff;box-shadow:calc(var(--selected-left-border-width)*-1) 0 var(--blue-60);margin-left:var(--selected-left-border-width);padding-left:0}.timelineTrackRow.activeTab{margin:0;padding:0}.timelineTrackLocalRow{border-left:1px solid var(--grey-30)}.timelineTrackLocalRow.selected{border-left-color:#0000}.timelineTrackHidden{height:0;pointer-events:none}.timelineTrackLabel{align-items:center;border-right:1px solid var(--grey-30);box-sizing:border-box;cursor:default;display:flex;flex-flow:row nowrap;width:calc(150px - var(--selected-left-border-width))}.timelineTrackNameButton{background:none;border:none;font:inherit;height:calc(100% - 8px);overflow:hidden;padding:0 0 0 calc(10px - var(--selected-left-border-width));text-align:left;text-overflow:ellipsis;white-space:nowrap;width:calc(100% - 8px)}.timelineTrackNameButtonAdditionalDetails{color:var(--grey-90-a60);font-size:10px}.timelineTrackCloseButton{-moz-user-focus:ignore;background:url(${u}) no-repeat 50%;background-origin:content-box;background-size:contain;border:0;border-radius:2px;color:#0000;flex-shrink:0;height:15px;margin-inline-end:2px;overflow:hidden;padding:1px;width:15px}.timelineTrackCloseButton:hover{background-color:#00000026}.timelineTrackCloseButton:active:hover{background-color:#0000004d}.timelineTrackLabel:not(:hover)>.timelineTrackCloseButton{display:none}.timelineTrackTrack{display:flex;flex:1;flex-flow:column nowrap;position:relative}.timelineTrackLocalTracks{background:var(--grey-20);list-style:none;padding:0;position:relative}.timelineTrackLocalTracks:before{box-shadow:inset 0 1px 5px #0003;content:"";height:100%;left:-15px;pointer-events:none;position:absolute;width:calc(100% + 15px);z-index:3}.timelineTrackLocalLabel{width:calc(134px - var(--selected-left-border-width))}`,"",{version:3,sources:["webpack://./src/components/timeline/Track.css"],names:[],mappings:"AAQA,eAEE,QAAS,CADT,SAEF,CAEA,oBACE,gBACF,CAEA,kBAIE,gCAAiC,CASjC,qBAAsB,CADtB,mCAAoC,CANpC,YAAa,CACb,oBAAqB,CAIrB,8CAGF,CAEA,2BAME,wBAAyB,CAKzB,sEAAyE,CANzE,6CAA8C,CAD9C,cAQF,CAKA,4BAEE,QAAS,CADT,SAEF,CAEA,uBACE,oCACF,CAEA,gCAIE,uBACF,CAEA,qBACE,QAAS,CACT,mBACF,CAEA,oBAOE,kBAAmB,CACnB,qCAAsC,CAHtC,qBAAsB,CAItB,cAAe,CARf,YAAa,CAKb,oBAAqB,CAFrB,qDAMF,CAEA,yBAWE,eAAgB,CADhB,WAAY,CAEZ,YAAa,CAPb,uBAAwB,CAJxB,eAAgB,CAQhB,4DAA6D,CAI7D,eAAgB,CAChB,sBAAuB,CACvB,kBAAmB,CAXnB,sBAYF,CAEA,0CACE,wBAAyB,CACzB,cACF,CAEA,0BAaE,sBAAuB,CALvB,gEAAqE,CACrE,6BAA8B,CAC9B,uBAAwB,CAJxB,QAAS,CACT,iBAAkB,CAIlB,WAAkB,CAPlB,aAAc,CADd,WAAY,CASZ,qBAAsB,CAXtB,eAAgB,CAIhB,WAAY,CAHZ,UAYF,CAEA,gCACE,0BACF,CAEA,uCACE,0BACF,CAEA,0DACE,YACF,CAEA,oBAEE,YAAa,CACb,MAAO,CACP,uBAAwB,CAHxB,iBAIF,CAEA,0BAGE,yBAA0B,CAC1B,eAAgB,CAFhB,SAAU,CADV,iBAIF,CAOA,iCAQE,gCAA4C,CAC5C,UAAW,CAFX,WAAY,CAFZ,UAAW,CAKX,mBAAoB,CATpB,iBAAkB,CAKlB,uBAAwB,CAFxB,SAOF,CAEA,yBAEE,qDACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n/**\n * This file is a little different. It combines the GlobalTrack and LocalTrack css\n * into one file, as it is mostly shared style.\n */\n.timelineTrack {\n padding: 0;\n margin: 0;\n}\n\n.timelineTrackLocal {\n margin-left: 15px;\n}\n\n.timelineTrackRow {\n /* This is the width of the blue left border when a track is selected.\n * This variable will be used every time we need to calculate some width that\n * depends on this value, from the intended perceived width. */\n --selected-left-border-width: 3px;\n\n display: flex;\n flex-flow: row nowrap;\n\n /* This padding is added to the button's padding as the perceived padding. For\n * a global row, it will be replaced with a margin when it's selected. */\n padding-left: var(--selected-left-border-width);\n border-top: 1px solid var(--grey-30);\n background-color: #fff;\n}\n\n.timelineTrackRow.selected {\n /* We replace the padding by some margin. Indeed the box-shadow used to draw\n * the blue selected left border is drawn outside of the border box, so the\n * 3px margin makes this space available. */\n padding-left: 0;\n margin-left: var(--selected-left-border-width);\n background-color: #edf6ff;\n\n /* We use a box-shadow on the track row instead of using border, so\n * that when we select adjacent tracks, we see just one line, without any\n * border on top of it. */\n box-shadow: calc(-1 * var(--selected-left-border-width)) 0 var(--blue-60);\n}\n\n/* In the active tab view, we don't want any margin or padding, because\n * otherwise we lose the alignment with the other panels. Therefore we won't\n * have the blue left border when a track is selected in this view. */\n.timelineTrackRow.activeTab {\n padding: 0;\n margin: 0;\n}\n\n.timelineTrackLocalRow {\n border-left: 1px solid var(--grey-30);\n}\n\n.timelineTrackLocalRow.selected {\n /* By removing the left border, it looks like the blue border is on top of it.\n * By using the transparent color instead of removing it altogether, we keep\n * the 1px space. */\n border-left-color: transparent;\n}\n\n.timelineTrackHidden {\n height: 0;\n pointer-events: none;\n}\n\n.timelineTrackLabel {\n display: flex;\n\n /* We want the width to look like it's 150px, but need to substract the 3px padding/margin */\n width: calc(150px - var(--selected-left-border-width));\n box-sizing: border-box;\n flex-flow: row nowrap;\n align-items: center;\n border-right: 1px solid var(--grey-30);\n cursor: default;\n}\n\n.timelineTrackNameButton {\n overflow: hidden;\n\n /* The 8px are used by the box-shadow when the button receives focus */\n width: calc(100% - 8px);\n height: calc(100% - 8px);\n\n /* We want the left padding to look like 10px, but need to remove 3px to\n * account for the padding/margin on the row. */\n padding: 0 0 0 calc(10px - var(--selected-left-border-width));\n border: none;\n background: none;\n font: inherit;\n text-align: left;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.timelineTrackNameButtonAdditionalDetails {\n color: var(--grey-90-a60);\n font-size: 10px;\n}\n\n.timelineTrackCloseButton {\n overflow: hidden;\n width: 15px;\n height: 15px;\n flex-shrink: 0;\n padding: 1px;\n border: 0;\n border-radius: 2px;\n background: url(../../../res/img/svg/close-dark.svg) no-repeat center;\n background-origin: content-box;\n background-size: contain;\n color: transparent;\n margin-inline-end: 2px;\n -moz-user-focus: ignore;\n}\n\n.timelineTrackCloseButton:hover {\n background-color: rgb(0 0 0 / 0.15);\n}\n\n.timelineTrackCloseButton:active:hover {\n background-color: rgb(0 0 0 / 0.3);\n}\n\n.timelineTrackLabel:not(:hover) > .timelineTrackCloseButton {\n display: none;\n}\n\n.timelineTrackTrack {\n position: relative;\n display: flex;\n flex: 1;\n flex-flow: column nowrap;\n}\n\n.timelineTrackLocalTracks {\n position: relative;\n padding: 0;\n background: var(--grey-20);\n list-style: none;\n}\n\n/**\n * Local tracks are indented 15px. This rule adds an inset shadow overlay over the\n * entire local tracks area, including the indented space. This is why it is shifted\n * to the left, and slightly larger than 100%.\n */\n.timelineTrackLocalTracks::before {\n position: absolute;\n\n /* Place it above the Reorderable component, which has a z-index of 2. */\n z-index: 3;\n left: -15px;\n width: calc(100% + 15px);\n height: 100%;\n box-shadow: inset 0 1px 5px rgb(0 0 0 / 0.2);\n content: '';\n pointer-events: none;\n}\n\n.timelineTrackLocalLabel {\n /* We want the width to look like it's 150px, but need to substract the 3px padding/margin and the 1px border */\n width: calc(135px - var(--selected-left-border-width) - 1px);\n}\n"],sourceRoot:""}]);const h=d},5554:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".timelineTrackContextMenuItem{display:flex}.timelineTrackContextMenuSpacer{flex:1;width:20px}.timelineTrackContextMenuPid{color:var(--grey-90-a60)}.react-contextmenu-item--selected .timelineTrackContextMenuPid{color:#fff}.timelineTrackContextMenu{max-height:43.5vh;overflow-y:auto}.trackContextMenuSearchFilter{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}","",{version:3,sources:["webpack://./src/components/timeline/TrackContextMenu.css"],names:[],mappings:"AAIA,8BACE,YACF,CAMA,gCAEE,MAAO,CADP,UAEF,CAEA,6BACE,wBACF,CAEA,+DACE,UACF,CAEA,0BACE,iBAAkB,CAClB,eACF,CAEA,8BACE,eAAgB,CAChB,sBAAuB,CACvB,kBACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.timelineTrackContextMenuItem {\n display: flex;\n}\n\n/* This spacer allows the width of a menu item to both grow and\n * shrink. By letting it shrink, it won't cause the text to get\n * unaligned or flow into the checkmark on the far right when a\n * scrollbar appears. */\n.timelineTrackContextMenuSpacer {\n width: 20px;\n flex: 1;\n}\n\n.timelineTrackContextMenuPid {\n color: var(--grey-90-a60);\n}\n\n.react-contextmenu-item--selected .timelineTrackContextMenuPid {\n color: #fff;\n}\n\n.timelineTrackContextMenu {\n max-height: 43.5vh;\n overflow-y: auto;\n}\n\n.trackContextMenuSearchFilter {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n"],sourceRoot:""}]);const s=i},4349:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".timelineTrackCustomMarkerGraph{height:var(--graph-height);margin-bottom:2px;position:relative;width:100%}.timelineTrackCustomMarkerCanvas{height:100%;position:absolute;width:100%}.timelineTrackCustomMarkerGraphDot{border-radius:3px;height:6px;margin-left:-3px;margin-top:-3px;pointer-events:none;position:absolute;width:6px}","",{version:3,sources:["webpack://./src/components/timeline/TrackCustomMarker.css"],names:[],mappings:"AAIA,gCAGE,0BAA2B,CAC3B,iBAAkB,CAHlB,iBAAkB,CAClB,UAGF,CAEA,iCAGE,WAAY,CAFZ,iBAAkB,CAClB,UAEF,CAEA,mCAIE,iBAAkB,CADlB,UAAW,CAGX,gBAAiB,CADjB,eAAgB,CAEhB,mBAAoB,CANpB,iBAAkB,CAClB,SAMF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.timelineTrackCustomMarkerGraph {\n position: relative;\n width: 100%;\n height: var(--graph-height);\n margin-bottom: 2px;\n}\n\n.timelineTrackCustomMarkerCanvas {\n position: absolute;\n width: 100%;\n height: 100%;\n}\n\n.timelineTrackCustomMarkerGraphDot {\n position: absolute;\n width: 6px;\n height: 6px;\n border-radius: 3px;\n margin-top: -3px;\n margin-left: -3px;\n pointer-events: none;\n}\n"],sourceRoot:""}]);const s=i},2605:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".timelineTrackEventDelayGraph{height:var(--graph-height);position:relative;width:100%}.timelineTrackEventDelayCanvas{height:100%;position:absolute;width:100%}.timelineTrackEventDelayGraphDot{background-color:var(--orange-60);border-radius:3px;height:6px;margin-left:-3px;margin-top:-3px;pointer-events:none;position:absolute;width:6px}.timelineTrackEventDelayTooltipLine{white-space:nowrap}.timelineTrackEventDelayTooltipNumber{color:var(--grey-60);display:inline-block;font-weight:700;min-width:60px}","",{version:3,sources:["webpack://./src/components/timeline/TrackEventDelay.css"],names:[],mappings:"AAIA,8BAGE,0BAA2B,CAF3B,iBAAkB,CAClB,UAEF,CAEA,+BAGE,WAAY,CAFZ,iBAAkB,CAClB,UAEF,CAEA,iCAOE,iCAAkC,CAHlC,iBAAkB,CADlB,UAAW,CAGX,gBAAiB,CADjB,eAAgB,CAGhB,mBAAoB,CAPpB,iBAAkB,CAClB,SAOF,CAEA,oCACE,kBACF,CAEA,sCAGE,oBAAqB,CAFrB,oBAAqB,CAGrB,eAAiB,CAFjB,cAGF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.timelineTrackEventDelayGraph {\n position: relative;\n width: 100%;\n height: var(--graph-height);\n}\n\n.timelineTrackEventDelayCanvas {\n position: absolute;\n width: 100%;\n height: 100%;\n}\n\n.timelineTrackEventDelayGraphDot {\n position: absolute;\n width: 6px;\n height: 6px;\n border-radius: 3px;\n margin-top: -3px;\n margin-left: -3px;\n background-color: var(--orange-60);\n pointer-events: none;\n}\n\n.timelineTrackEventDelayTooltipLine {\n white-space: nowrap;\n}\n\n.timelineTrackEventDelayTooltipNumber {\n display: inline-block;\n min-width: 60px;\n color: var(--grey-60);\n font-weight: bold;\n}\n"],sourceRoot:""}]);const s=i},9588:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".timelineMarkersIPC{height:var(--markers-height);opacity:1}","",{version:3,sources:["webpack://./src/components/timeline/TrackIPC.css"],names:[],mappings:"AAIA,oBACE,4BAA6B,CAC7B,SACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.timelineMarkersIPC {\n height: var(--markers-height);\n opacity: 1;\n}\n"],sourceRoot:""}]);const s=i},6894:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".timelineTrackMemoryGraph{height:var(--graph-height);position:relative;width:100%}.timelineTrackMemoryCanvas{height:100%;position:absolute;width:100%}.timelineTrackMemoryGraphDot{background-color:var(--orange-60);border-radius:3px;height:6px;margin-left:-3px;margin-top:-3px;pointer-events:none;position:absolute;width:6px}.timelineTrackMemoryTooltipLine{white-space:nowrap}.timelineTrackMemoryTooltipNumber{color:var(--grey-60);display:inline-block;font-weight:700;min-width:60px}.timelineMarkersMemory{height:var(--markers-height,15px);opacity:1}","",{version:3,sources:["webpack://./src/components/timeline/TrackMemory.css"],names:[],mappings:"AAIA,0BAGE,0BAA2B,CAF3B,iBAAkB,CAClB,UAEF,CAEA,2BAGE,WAAY,CAFZ,iBAAkB,CAClB,UAEF,CAEA,6BAOE,iCAAkC,CAHlC,iBAAkB,CADlB,UAAW,CAGX,gBAAiB,CADjB,eAAgB,CAGhB,mBAAoB,CAPpB,iBAAkB,CAClB,SAOF,CAEA,gCACE,kBACF,CAEA,kCAGE,oBAAqB,CAFrB,oBAAqB,CAGrB,eAAiB,CAFjB,cAGF,CAEA,uBACE,iCAAmC,CACnC,SACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.timelineTrackMemoryGraph {\n position: relative;\n width: 100%;\n height: var(--graph-height);\n}\n\n.timelineTrackMemoryCanvas {\n position: absolute;\n width: 100%;\n height: 100%;\n}\n\n.timelineTrackMemoryGraphDot {\n position: absolute;\n width: 6px;\n height: 6px;\n border-radius: 3px;\n margin-top: -3px;\n margin-left: -3px;\n background-color: var(--orange-60);\n pointer-events: none;\n}\n\n.timelineTrackMemoryTooltipLine {\n white-space: nowrap;\n}\n\n.timelineTrackMemoryTooltipNumber {\n display: inline-block;\n min-width: 60px;\n color: var(--grey-60);\n font-weight: bold;\n}\n\n.timelineMarkersMemory {\n height: var(--markers-height, 15px);\n opacity: 1;\n}\n"],sourceRoot:""}]);const s=i},8837:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".timelineTrackNetwork{position:relative;width:100%}.timelineTrackNetworkCanvas{height:100%;position:absolute;width:100%}","",{version:3,sources:["webpack://./src/components/timeline/TrackNetwork.css"],names:[],mappings:"AAIA,sBACE,iBAAkB,CAClB,UACF,CAEA,4BAGE,WAAY,CAFZ,iBAAkB,CAClB,UAEF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.timelineTrackNetwork {\n position: relative;\n width: 100%;\n}\n\n.timelineTrackNetworkCanvas {\n position: absolute;\n width: 100%;\n height: 100%;\n}\n"],sourceRoot:""}]);const s=i},1141:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".timelineTrackPowerGraph{height:var(--graph-height);position:relative;width:100%}.timelineTrackPowerCanvas{height:100%;position:absolute;width:100%}.timelineTrackPowerGraphDot{background-color:var(--grey-50);border-radius:3px;height:6px;margin-left:-3px;margin-top:-3px;pointer-events:none;position:absolute;width:6px}","",{version:3,sources:["webpack://./src/components/timeline/TrackPower.css"],names:[],mappings:"AAIA,yBAGE,0BAA2B,CAF3B,iBAAkB,CAClB,UAEF,CAEA,0BAGE,WAAY,CAFZ,iBAAkB,CAClB,UAEF,CAEA,4BAOE,+BAAgC,CAHhC,iBAAkB,CADlB,UAAW,CAGX,gBAAiB,CADjB,eAAgB,CAGhB,mBAAoB,CAPpB,iBAAkB,CAClB,SAOF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.timelineTrackPowerGraph {\n position: relative;\n width: 100%;\n height: var(--graph-height);\n}\n\n.timelineTrackPowerCanvas {\n position: absolute;\n width: 100%;\n height: 100%;\n}\n\n.timelineTrackPowerGraphDot {\n position: absolute;\n width: 6px;\n height: 6px;\n border-radius: 3px;\n margin-top: -3px;\n margin-left: -3px;\n background-color: var(--grey-50);\n pointer-events: none;\n}\n"],sourceRoot:""}]);const s=i},9270:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".timelineTrackProcessCPUGraph{height:var(--graph-height);position:relative;width:100%}.timelineTrackProcessCPUCanvas{height:100%;position:absolute;width:100%}.timelineTrackProcessCPUGraphDot{background-color:var(--grey-50);border-radius:3px;height:6px;margin-left:-3px;margin-top:-3px;pointer-events:none;position:absolute;width:6px}.timelineTrackProcessCPUTooltipLine{white-space:nowrap}.timelineTrackProcessCPUTooltipNumber{color:var(--grey-60);display:inline-block;font-weight:700;min-width:60px}","",{version:3,sources:["webpack://./src/components/timeline/TrackProcessCPU.css"],names:[],mappings:"AAIA,8BAGE,0BAA2B,CAF3B,iBAAkB,CAClB,UAEF,CAEA,+BAGE,WAAY,CAFZ,iBAAkB,CAClB,UAEF,CAEA,iCAOE,+BAAgC,CAHhC,iBAAkB,CADlB,UAAW,CAGX,gBAAiB,CADjB,eAAgB,CAGhB,mBAAoB,CAPpB,iBAAkB,CAClB,SAOF,CAEA,oCACE,kBACF,CAEA,sCAGE,oBAAqB,CAFrB,oBAAqB,CAGrB,eAAiB,CAFjB,cAGF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.timelineTrackProcessCPUGraph {\n position: relative;\n width: 100%;\n height: var(--graph-height);\n}\n\n.timelineTrackProcessCPUCanvas {\n position: absolute;\n width: 100%;\n height: 100%;\n}\n\n.timelineTrackProcessCPUGraphDot {\n position: absolute;\n width: 6px;\n height: 6px;\n border-radius: 3px;\n margin-top: -3px;\n margin-left: -3px;\n background-color: var(--grey-50);\n pointer-events: none;\n}\n\n.timelineTrackProcessCPUTooltipLine {\n white-space: nowrap;\n}\n\n.timelineTrackProcessCPUTooltipNumber {\n display: inline-block;\n min-width: 60px;\n color: var(--grey-60);\n font-weight: bold;\n}\n"],sourceRoot:""}]);const s=i},268:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,'.timelineTrackScreenshot{background:var(--grey-20);overflow:hidden;position:relative}.timelineTrackScreenshotImgContainer{display:flex;justify-content:center;overflow:hidden;position:absolute}.timelineTrackScreenshotImgContainer:after{background:var(--grey-30);content:"";height:100%;position:absolute;right:0;top:0;width:1px}.timelineTrackScreenshotHover{pointer-events:none;position:absolute;z-index:4}.timelineTrackScreenshotHoverImg{border:.5px solid #0003;border-radius:5px;box-shadow:0 2px 4px #0003;padding:.5px}',"",{version:3,sources:["webpack://./src/components/timeline/TrackScreenshots.css"],names:[],mappings:"AAIA,yBAGE,yBAA0B,CAD1B,eAAgB,CADhB,iBAGF,CAEA,qCAGE,YAAa,CAEb,sBAAuB,CADvB,eAAgB,CAFhB,iBAIF,CAEA,2CAME,yBAA0B,CAG1B,UAAW,CAJX,WAAY,CAJZ,iBAAkB,CAElB,OAAQ,CADR,KAAM,CAEN,SAMF,CAEA,8BAIE,mBAAoB,CAFpB,iBAAkB,CAClB,SAEF,CAEA,iCAEE,uBAAoC,CACpC,iBAAkB,CAClB,0BAAsC,CAHtC,YAIF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.timelineTrackScreenshot {\n position: relative;\n overflow: hidden;\n background: var(--grey-20);\n}\n\n.timelineTrackScreenshotImgContainer {\n /* This positioning is defined through JavaScript */\n position: absolute;\n display: flex;\n overflow: hidden;\n justify-content: center;\n}\n\n.timelineTrackScreenshotImgContainer::after {\n position: absolute;\n top: 0;\n right: 0;\n width: 1px;\n height: 100%;\n background: var(--grey-30);\n\n /* Create a border on the right of the container */\n content: '';\n}\n\n.timelineTrackScreenshotHover {\n /* This positioning is defined through JavaScript */\n position: absolute;\n z-index: 4; /* Ensure this is higher than any other timeline element. */\n pointer-events: none;\n}\n\n.timelineTrackScreenshotHoverImg {\n padding: 0.5px;\n border: 0.5px solid rgb(0 0 0 / 0.2);\n border-radius: 5px;\n box-shadow: 0 2px 4px rgb(0 0 0 / 0.2);\n}\n"],sourceRoot:""}]);const s=i},5125:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".timelineTrackThread{display:flex;flex:1;flex-flow:column nowrap;position:relative;z-index:1}.timelineTrackThreadBlank{background-color:#fff;height:var(--timeline-track-thread-blank-height);left:-1px;padding-left:1px;position:relative;width:100%}","",{version:3,sources:["webpack://./src/components/timeline/TrackThread.css"],names:[],mappings:"AAIA,qBAGE,YAAa,CACb,MAAO,CACP,uBAAwB,CAJxB,iBAAkB,CAClB,SAIF,CAEA,0BAOE,qBAAsB,CAFtB,gDAAiD,CAFjD,SAAU,CAGV,gBAAiB,CAJjB,iBAAkB,CAElB,UAIF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.timelineTrackThread {\n position: relative;\n z-index: 1;\n display: flex;\n flex: 1;\n flex-flow: column nowrap;\n}\n\n.timelineTrackThreadBlank {\n /* Clip off the border to the left, by overflowing by one pixel. */\n position: relative;\n left: -1px;\n width: 100%;\n height: var(--timeline-track-thread-blank-height);\n padding-left: 1px;\n background-color: #fff;\n}\n"],sourceRoot:""}]);const s=i},9880:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".timelineTrackVisualProgressGraph{height:var(--graph-height);position:relative;width:100%}.timelineTrackVisualProgressCanvas{height:100%;position:absolute;width:100%}.timelineTrackVisualProgressGraphDot{background-color:var(--dot-color);border-radius:3px;height:6px;margin-left:-3px;margin-top:-3px;pointer-events:none;position:absolute;width:6px}.timelineTrackVisualProgressTooltipLine{white-space:nowrap}.timelineTrackVisualProgressTooltipNumber{color:var(--grey-60);display:inline-block;font-weight:700;min-width:60px}","",{version:3,sources:["webpack://./src/components/timeline/TrackVisualProgress.css"],names:[],mappings:"AAIA,kCAGE,0BAA2B,CAF3B,iBAAkB,CAClB,UAEF,CAEA,mCAGE,WAAY,CAFZ,iBAAkB,CAClB,UAEF,CAEA,qCAOE,iCAAkC,CAHlC,iBAAkB,CADlB,UAAW,CAGX,gBAAiB,CADjB,eAAgB,CAGhB,mBAAoB,CAPpB,iBAAkB,CAClB,SAOF,CAEA,wCACE,kBACF,CAEA,0CAGE,oBAAqB,CAFrB,oBAAqB,CAGrB,eAAiB,CAFjB,cAGF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.timelineTrackVisualProgressGraph {\n position: relative;\n width: 100%;\n height: var(--graph-height);\n}\n\n.timelineTrackVisualProgressCanvas {\n position: absolute;\n width: 100%;\n height: 100%;\n}\n\n.timelineTrackVisualProgressGraphDot {\n position: absolute;\n width: 6px;\n height: 6px;\n border-radius: 3px;\n margin-top: -3px;\n margin-left: -3px;\n background-color: var(--dot-color);\n pointer-events: none;\n}\n\n.timelineTrackVisualProgressTooltipLine {\n white-space: nowrap;\n}\n\n.timelineTrackVisualProgressTooltipNumber {\n display: inline-block;\n min-width: 60px;\n color: var(--grey-60);\n font-weight: bold;\n}\n"],sourceRoot:""}]);const s=i},3769:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,'.timelineVerticalIndicatorsLine{--active-area-width:4px;--visible-width:1.5px;bottom:0;margin-left:calc(var(--active-area-width)*-.5);position:absolute;top:0;width:var(--active-area-width)}.timelineVerticalIndicatorsLine:after{background-color:var(--vertical-indicator-color);content:"";height:100%;left:calc(var(--active-area-width)*.5 - var(--visible-width)*.5);opacity:.6;pointer-events:none;position:absolute;top:0;width:var(--visible-width)}.timelineVerticalIndicatorsSwatch{background-color:var(--vertical-indicator-color);border:1px solid var(--grey-30);display:inline-block;height:12px;margin-bottom:-3px;width:12px}.timelineVerticalIndicatorsDim{color:var(--grey-50)}.timelineVerticalIndicatorsTime{color:var(--grey-70);font-weight:700}.timelineVerticalIndicatorsUrl{color:var(--grey-60);margin-top:6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}',"",{version:3,sources:["webpack://./src/components/timeline/VerticalIndicators.css"],names:[],mappings:"AAIA,gCACE,uBAAwB,CAKxB,qBAAsB,CAItB,QAAS,CAET,8CAAkD,CAJlD,iBAAkB,CAClB,KAAM,CAEN,8BAEF,CAEA,sCAME,gDAAiD,CACjD,UAAW,CAFX,WAAY,CAFZ,gEAAuE,CAKvE,UAAY,CACZ,mBAAoB,CARpB,iBAAkB,CAClB,KAAM,CAEN,0BAMF,CAEA,kCAME,gDAAiD,CAFjD,+BAAgC,CAHhC,oBAAqB,CAErB,WAAY,CAEZ,kBAAmB,CAHnB,UAKF,CAEA,+BACE,oBACF,CAEA,gCACE,oBAAqB,CACrB,eACF,CAEA,+BAGE,oBAAqB,CADrB,cAAe,CADf,eAAgB,CAGhB,sBAAuB,CACvB,kBACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.timelineVerticalIndicatorsLine {\n --active-area-width: 4px;\n\n /* Setting the width to 1.5 makes it so that these indicators have slightly more visual\n * weight on high DPI displays. With a device pixel ratio of 2, this value creates a box\n * that is 3 device pixels wide. */\n --visible-width: 1.5px;\n\n position: absolute;\n top: 0;\n bottom: 0;\n width: var(--active-area-width);\n margin-left: calc(var(--active-area-width) * -0.5);\n}\n\n.timelineVerticalIndicatorsLine::after {\n position: absolute;\n top: 0;\n left: calc(var(--active-area-width) * 0.5 - var(--visible-width) * 0.5);\n width: var(--visible-width);\n height: 100%;\n background-color: var(--vertical-indicator-color);\n content: '';\n opacity: 0.6;\n pointer-events: none;\n}\n\n.timelineVerticalIndicatorsSwatch {\n display: inline-block;\n width: 12px;\n height: 12px;\n border: 1px solid var(--grey-30);\n margin-bottom: -3px;\n background-color: var(--vertical-indicator-color);\n}\n\n.timelineVerticalIndicatorsDim {\n color: var(--grey-50);\n}\n\n.timelineVerticalIndicatorsTime {\n color: var(--grey-70);\n font-weight: bold;\n}\n\n.timelineVerticalIndicatorsUrl {\n overflow: hidden;\n margin-top: 6px;\n color: var(--grey-60);\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n"],sourceRoot:""}]);const s=i},3420:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,'.timelineOverflowEdgeIndicatorScrollbox{background:linear-gradient(to left,#fff,#eee calc(var(--vertical-scrollbar-reserved-width) - 1px),var(--grey-30) 0,var(--grey-30) var(--vertical-scrollbar-reserved-width),#0000 0);height:100%;margin-left:calc(var(--thread-label-column-width)*-1);margin-right:calc(var(--vertical-scrollbar-reserved-width)*-1);overflow-x:hidden;overflow-y:auto;padding-left:var(--thread-label-column-width);position:absolute;width:100%}.timelineThreadList{background-color:var(--grey-20);box-shadow:inset 0 1px var(--grey-30);list-style:none;margin:0 0 0 calc(var(--thread-label-column-width)*-1);padding:0;width:calc(100vw - var(--vertical-scrollbar-reserved-width))}.timelineSettingsHiddenTracks{background:none;border:0;border-right:1px solid var(--grey-30);color:inherit;font:inherit;padding:0 20px 0 8px;position:relative;text-align:left;width:var(--thread-label-column-width)}.timelineSettingsHiddenTracks:hover{background-color:#0000001a}.timelineSettingsHiddenTracks:hover:active{background-color:#0003}.timelineSettingsHiddenTracks:before{border-color:currentcolor #0000 #0000;border-style:solid;border-width:6px 4px 0;color:var(--grey-60);content:"";margin-left:5px;margin-right:5px;margin-top:5px;position:absolute;right:2px;top:2px}.timelineSettingsHiddenTracksNumber{font-weight:700}.timelineHeader{background:#fff;border-bottom:1px solid var(--grey-30);display:flex;flex-direction:row;height:20px;margin-left:calc(var(--thread-label-column-width)*-1);margin-right:calc(var(--vertical-scrollbar-reserved-width)*-1);padding-right:var(--vertical-scrollbar-reserved-width);z-index:1}.tracksContainer{margin-bottom:-1px;margin-top:-1px;z-index:0}',"",{version:3,sources:["webpack://./src/components/timeline/index.css"],names:[],mappings:"AAIA,wCAOE,mLAOC,CAXD,WAAY,CAGZ,qDAAwD,CADxD,8DAAiE,CAUjE,iBAAkB,CAClB,eAAgB,CAZhB,6CAA8C,CAH9C,iBAAkB,CAClB,UAeF,CAEA,oBAIE,+BAAgC,CAChC,qCAAsC,CACtC,eAAgB,CAHhB,sDAAyD,CADzD,SAAU,CADV,4DAMF,CAEA,8BAWE,eAAgB,CAJhB,QAAS,CAGT,qCAAsC,CAEtC,aAAc,CACd,YAAa,CAPb,oBAAqB,CAJrB,iBAAkB,CAYlB,eAAgB,CAXhB,sCAYF,CAEA,oCACE,0BACF,CAEA,2CACE,sBACF,CAGA,qCAOE,qCAAkC,CAAlC,kBAAkC,CAAlC,sBAAkC,CAIlC,oBAAqB,CACrB,UAAW,CAFX,eAAgB,CADhB,gBAAiB,CADjB,cAAe,CAPf,iBAAkB,CAElB,SAAU,CADV,OAWF,CAEA,oCACE,eACF,CAEA,gBAmBE,eAAiB,CANjB,sCAAuC,CATvC,YAAa,CAEb,kBAAmB,CADnB,WAAY,CAUZ,qDAAwD,CADxD,8DAAiE,CAFjE,sDAAuD,CATvD,SAiBF,CAEA,iBAOE,kBAAmB,CADnB,eAAgB,CAJhB,SAMF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.timelineOverflowEdgeIndicatorScrollbox {\n position: absolute;\n width: 100%;\n height: 100%;\n padding-left: var(--thread-label-column-width);\n margin-right: calc(var(--vertical-scrollbar-reserved-width) * -1);\n margin-left: calc(var(--thread-label-column-width) * -1);\n background: linear-gradient(\n to left,\n white,\n #eee calc(var(--vertical-scrollbar-reserved-width) - 1px),\n var(--grey-30) 0,\n var(--grey-30) var(--vertical-scrollbar-reserved-width),\n transparent 0\n );\n overflow-x: hidden; /* if the platform scrollbar ends up being larger than --vertical-scrollbar-reserved-width (which is unexpected), make sure there is no horizontal scrollbar */\n overflow-y: auto;\n}\n\n.timelineThreadList {\n width: calc(100vw - var(--vertical-scrollbar-reserved-width));\n padding: 0;\n margin: 0 0 0 calc(var(--thread-label-column-width) * -1);\n background-color: var(--grey-20);\n box-shadow: inset 0 1px var(--grey-30);\n list-style: none;\n}\n\n.timelineSettingsHiddenTracks {\n /* Make sure and override all rules that have to do with button defaults. */\n position: relative;\n width: var(--thread-label-column-width);\n\n /* 8px is intentional to align this text with the text above. */\n padding: 0 20px 0 8px;\n border: 0;\n\n /* Separator line between tracks menu button and timeline ruler */\n border-right: 1px solid var(--grey-30);\n background: none;\n color: inherit;\n font: inherit;\n text-align: left;\n}\n\n.timelineSettingsHiddenTracks:hover {\n background-color: rgb(0 0 0 / 0.1);\n}\n\n.timelineSettingsHiddenTracks:hover:active {\n background-color: rgb(0 0 0 / 0.2);\n}\n\n/* This is the dropdown arrow on the left of the button. */\n.timelineSettingsHiddenTracks::before {\n position: absolute;\n top: 2px;\n right: 2px;\n border-top: 6px solid;\n border-right: 4px solid transparent;\n border-bottom: 0 solid transparent;\n border-left: 4px solid transparent;\n margin-top: 5px;\n margin-right: 5px;\n margin-left: 5px;\n color: var(--grey-60);\n content: '';\n}\n\n.timelineSettingsHiddenTracksNumber {\n font-weight: bold;\n}\n\n.timelineHeader {\n /* This should be on top of the overflow edge indicator that wraps the thread\n list, so border bottom will always be visible. */\n z-index: 1;\n display: flex;\n height: 20px;\n flex-direction: row;\n\n /* Timeline header content should end before the scrollbar but also border\n * bottom should extend to the whole timeline header. Because of that, we are\n * creating a padding and a minus margin with the scrollbar width to make\n * this work. */\n padding-right: var(--vertical-scrollbar-reserved-width);\n border-bottom: 1px solid var(--grey-30);\n margin-right: calc(var(--vertical-scrollbar-reserved-width) * -1);\n margin-left: calc(var(--thread-label-column-width) * -1);\n\n /* This div needs to be apaque so that it can properly hide the hidden tracks\n * container border below */\n background: white;\n}\n\n.tracksContainer {\n /* This should be below the timeline header. */\n z-index: 0;\n\n /* Moving the timeline 1 pixel below the timeline header. This way, the first\n * visible track's top border will be hidden as expected. */\n margin-top: -1px;\n margin-bottom: -1px;\n}\n"],sourceRoot:""}]);const s=i},9409:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".tooltipCallNodeCategory,.tooltipCallNodeImplementation{grid-gap:2px;border-bottom:1px solid var(--grey-30);display:grid;grid-template-columns:repeat(4,min-content);padding-bottom:10px}.tooltipCallNodeHeader{border-right:1px solid var(--grey-30);color:var(--grey-50);margin-top:5px;padding:0 5px;white-space:nowrap}.tooltipCallNodeName{white-space:nowrap}.tooltipCallNodeGraph{background-color:var(--grey-30);border-radius:2px;height:var(--graph-height);margin-top:3px;position:relative;width:var(--graph-width)}.tooltipCallNodeGraphRunning{background-color:var(--blue-40)}.tooltipCallNodeGraphRunning,.tooltipCallNodeGraphSelf{border-radius:2px;height:calc(var(--graph-height)/2 - 1px)}.tooltipCallNodeGraphSelf{background-color:var(--blue-60);left:0;margin-top:calc(var(--graph-height)/2);position:absolute;top:0}.tooltipCallNodeCategory .tooltipCategoryRowHeader{font-weight:700;margin-top:8px}.tooltipCallNodeTiming{padding:0 5px;text-align:right;white-space:nowrap}.tooltipCallNodeHeaderSwatchRunning,.tooltipCallNodeHeaderSwatchSelf{border:.5px solid #0000001a;box-sizing:border-box;display:inline-block;height:9px;margin-right:3px;width:9px}.tooltipCallNodeHeaderSwatchRunning{background-color:var(--blue-40)}.tooltipCallNodeHeaderSwatchSelf{background-color:var(--blue-60)}.tooltipCallNodeCategory .tooltipCallNodeHeaderSwatchRunning,.tooltipCallNodeCategory .tooltipCallNodeHeaderSwatchSelf{display:none}.tooltipCallNodeDetailsLeft{min-width:150px;padding:10px 10px 5px}.tooltipCategoryRowHeader.tooltipCallNodeGraph{margin-top:11px}.tooltipCategoryRowHeader.tooltipCategoryName{padding-right:4px}","",{version:3,sources:["webpack://./src/components/tooltip/CallNode.css"],names:[],mappings:"AAIA,wDAKE,YAAa,CADb,sCAAuC,CAFvC,YAAa,CAIb,2CAA6C,CAH7C,mBAIF,CAEA,uBAEE,qCAAsC,CAEtC,oBAAqB,CADrB,cAAe,CAFf,aAAc,CAId,kBACF,CAEA,qBACE,kBACF,CAEA,sBAME,+BAAgC,CAFhC,iBAAkB,CADlB,0BAA2B,CAE3B,cAAe,CAJf,iBAAkB,CAClB,wBAKF,CAEA,6BAGE,+BACF,CAEA,uDAJE,iBAAkB,CADlB,wCAaF,CARA,0BAOE,+BAAgC,CAJhC,MAAO,CAGP,sCAAyC,CALzC,iBAAkB,CAClB,KAMF,CAEA,mDAEE,eAAiB,CADjB,cAEF,CAEA,uBACE,aAAc,CACd,gBAAiB,CACjB,kBACF,CAEA,qEAME,2BAAoC,CADpC,qBAAsB,CAHtB,oBAAqB,CAErB,UAAW,CAGX,gBAAiB,CAJjB,SAKF,CAEA,oCACE,+BACF,CAEA,iCACE,+BACF,CAEA,uHAEE,YACF,CAEA,4BACE,eAAgB,CAEhB,qBACF,CAEA,+CAEE,eACF,CAEA,8CACE,iBACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.tooltipCallNodeImplementation,\n.tooltipCallNodeCategory {\n display: grid;\n padding-bottom: 10px;\n border-bottom: 1px solid var(--grey-30);\n grid-gap: 2px;\n grid-template-columns: repeat(4, min-content);\n}\n\n.tooltipCallNodeHeader {\n padding: 0 5px;\n border-right: 1px solid var(--grey-30);\n margin-top: 5px;\n color: var(--grey-50);\n white-space: nowrap;\n}\n\n.tooltipCallNodeName {\n white-space: nowrap;\n}\n\n.tooltipCallNodeGraph {\n position: relative;\n width: var(--graph-width);\n height: var(--graph-height);\n border-radius: 2px;\n margin-top: 3px;\n background-color: var(--grey-30);\n}\n\n.tooltipCallNodeGraphRunning {\n height: calc(var(--graph-height) / 2 - 1px);\n border-radius: 2px;\n background-color: var(--blue-40);\n}\n\n.tooltipCallNodeGraphSelf {\n position: absolute;\n top: 0;\n left: 0;\n height: calc(var(--graph-height) / 2 - 1px);\n border-radius: 2px;\n margin-top: calc(var(--graph-height) / 2);\n background-color: var(--blue-60);\n}\n\n.tooltipCallNodeCategory .tooltipCategoryRowHeader {\n margin-top: 8px;\n font-weight: bold;\n}\n\n.tooltipCallNodeTiming {\n padding: 0 5px;\n text-align: right;\n white-space: nowrap;\n}\n\n.tooltipCallNodeHeaderSwatchRunning,\n.tooltipCallNodeHeaderSwatchSelf {\n display: inline-block;\n width: 9px;\n height: 9px;\n box-sizing: border-box;\n border: 0.5px solid rgb(0 0 0 / 0.1);\n margin-right: 3px;\n}\n\n.tooltipCallNodeHeaderSwatchRunning {\n background-color: var(--blue-40);\n}\n\n.tooltipCallNodeHeaderSwatchSelf {\n background-color: var(--blue-60);\n}\n\n.tooltipCallNodeCategory .tooltipCallNodeHeaderSwatchSelf,\n.tooltipCallNodeCategory .tooltipCallNodeHeaderSwatchRunning {\n display: none;\n}\n\n.tooltipCallNodeDetailsLeft {\n min-width: 150px;\n padding: 10px;\n padding-bottom: 5px;\n}\n\n.tooltipCategoryRowHeader.tooltipCallNodeGraph {\n /* we have to add 3px to the 8px of category row to realign the callnode graph propertly */\n margin-top: 11px;\n}\n\n.tooltipCategoryRowHeader.tooltipCategoryName {\n padding-right: 4px;\n}\n"],sourceRoot:""}]);const s=i},5346:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".marker-list-value{margin:0;padding-inline-start:25px}.marker-table-value{border-collapse:collapse;margin-block-start:-1px}.marker-table-value th{text-align:start}","",{version:3,sources:["webpack://./src/components/tooltip/Marker.css"],names:[],mappings:"AAIA,mBACE,QAAS,CACT,yBACF,CAGA,oBACE,wBAAyB,CACzB,uBACF,CAEA,uBACE,gBACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.marker-list-value {\n margin: 0;\n padding-inline-start: 25px;\n}\n\n/* These styles are useful to make the table well-aligned with its labels in tooltips. */\n.marker-table-value {\n border-collapse: collapse;\n margin-block-start: -1px;\n}\n\n.marker-table-value th {\n text-align: start;\n}\n"],sourceRoot:""}]);const s=i},2043:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".tooltipNetwork{width:600px}.tooltipNetworkPhases{grid-gap:2px 5px;border-top:1px solid var(--grey-40);display:grid;grid-template-columns:min-content min-content auto;margin-top:4px;padding-top:4px}.tooltipNetworkTitle3{font:inherit;grid-column-start:span 3;margin:5px 0 3px;padding:0}.tooltipNetworkTitle3:first-child{margin-top:3px}.tooltipNetworkPhase{background-color:var(--marker-color);margin:2px 0}.tooltipNetworkPhaseEmpty{background-color:#fff;box-shadow:0 0 0 1px inset var(--marker-color);opacity:.5}.tooltipNetworkMimeType{align-items:center;display:flex}.tooltipNetworkMimeTypeSwatch{background-color:var(--marker-color)}","",{version:3,sources:["webpack://./src/components/tooltip/NetworkMarker.css"],names:[],mappings:"AAIA,gBACE,WACF,CAEA,sBAKE,gBAAiB,CAFjB,mCAAoC,CAFpC,YAAa,CAQb,kDAAmD,CALnD,cAAe,CAFf,eAQF,CAEA,sBAIE,YAAa,CAGb,wBAAyB,CAJzB,gBAAiB,CADjB,SAMF,CAEA,kCACE,cACF,CAEA,qBAEE,oCAAqC,CADrC,YAEF,CAEA,0BACE,qBAAuB,CACvB,8CAA+C,CAC/C,UACF,CAEA,wBAEE,kBAAmB,CADnB,YAEF,CAEA,8BACE,oCACF",sourcesContent:["/* This Source Code Form is subject to the terms of the Mozilla Public\n * License, v. 2.0. If a copy of the MPL was not distributed with this\n * file, You can obtain one at http://mozilla.org/MPL/2.0/. */\n\n.tooltipNetwork {\n width: 600px;\n}\n\n.tooltipNetworkPhases {\n display: grid;\n padding-top: 4px;\n border-top: 1px solid var(--grey-40);\n margin-top: 4px;\n grid-gap: 2px 5px;\n\n /* When changing the number of columns, don't forget to change the span values\n * in grid-column-start properties. */\n grid-template-columns: min-content min-content auto;\n}\n\n.tooltipNetworkTitle3 {\n /* Reset most default properties of h3. */\n padding: 0;\n margin: 5px 0 3px;\n font: inherit;\n\n /* Make the title take the 2 columns. */\n grid-column-start: span 3;\n}\n\n.tooltipNetworkTitle3:first-child {\n margin-top: 3px;\n}\n\n.tooltipNetworkPhase {\n margin: 2px 0;\n background-color: var(--marker-color);\n}\n\n.tooltipNetworkPhaseEmpty {\n background-color: white;\n box-shadow: 0 0 0 1px inset var(--marker-color);\n opacity: 0.5;\n}\n\n.tooltipNetworkMimeType {\n display: flex;\n align-items: center;\n}\n\n.tooltipNetworkMimeTypeSwatch {\n background-color: var(--marker-color);\n}\n"],sourceRoot:""}]);const s=i},5322:(e,t,n)=>{"use strict";n.d(t,{Z:()=>s});var r=n(7537),o=n.n(r),a=n(3645),i=n.n(a)()(o());i.push([e.id,".tooltip{background-color:var(--grey-10);border:1px solid #ccc;box-shadow:0 1px 3px #0000004d;display:inline-block;line-height:1.4;max-width:600px;overflow:hidden;padding:8px;pointer-events:none;position:fixed;text-align:left;text-overflow:ellipsis;transition:opacity .25s}.tooltipTiming{color:#666;font-weight:700;padding-right:.5em}.tooltipOneLine{display:flex;max-width:100%;text-overflow:ellipsis;white-space:nowrap}.tooltipTitle{flex:1;overflow:hidden;text-overflow:ellipsis}.tooltipSwatch{border:1px solid #888;height:10px;width:10px}.tooltipIcon,.tooltipSwatch{display:inline-block;margin-right:3px}.tooltipIcon{align-self:flex-end}.tooltipIcon>.nodeIcon{margin-left:auto;padding-right:.5em;width:14px}.tooltipHeader{border-bottom:1px solid var(--grey-40);font-size:12px;padding-bottom:8px}.tooltipDetails{grid-gap:2px 5px;display:grid;grid-template-columns:min-content minmax(0,1fr)}.tooltipHeader+.tooltipDetails{padding-top:5px}.tooltipDetailSeparator{border-top:1px solid var(--grey-40);grid-column:1/3;margin:4px 0}.tooltipDetailsUrl{word-break:break-all}.tooltipDetailsDim,.tooltipLabel{color:var(--grey-50)}.tooltipLabel{text-align:right;white-space:nowrap}.tooltipBackTraceTitle{color:var(--grey-50);font-size:100%;font-weight:400;margin:0}.tooltipDetails+.tooltipDetailsBackTrace{border-top:1px solid var(--grey-40);margin-top:5px;padding-top:5px}.tooltipLib{align-self:flex-end;color:var(--grey-50);white-space:nowrap}.tooltipScreenshotImg{border:.5px solid #0003;border-radius:5px;box-shadow:0 2px 4px #0003;padding:.5px}.sidebar .tooltipDetails{grid-gap:2px 0;grid-template-columns:minmax(0,1fr);overflow:hidden}.sidebar .tooltipLabel{color:var(--grey-60);font-weight:700;margin-top:8px;text-align:left}.sidebar .tooltipDetailSeparator{display:none}","",{version:3,sources:["webpack://./src/components/tooltip/Tooltip.css"],names:[],mappings:"AAAA,SAOE,+BAAgC,CADhC,qBAAsB,CAEtB,8BAAsC,CANtC,oBAAqB,CAOrB,eAAgB,CALhB,eAAgB,CADhB,eAAgB,CAEhB,WAAY,CAKZ,mBAAoB,CATpB,cAAe,CAUf,eAAgB,CAChB,sBAAuB,CACvB,uBACF,CAEA,eAEE,UAAW,CACX,eAAiB,CAFjB,kBAGF,CAEA,gBACE,YAAa,CACb,cAAe,CACf,sBAAuB,CACvB,kBACF,CAEA,cAEE,MAAO,CADP,eAAgB,CAEhB,sBACF,CAEA,eAIE,qBAAsB,CADtB,WAAY,CADZ,UAIF,CAEA,4BAPE,oBAAqB,CAIrB,gBAOF,CAJA,aAEE,mBAEF,CAEA,uBAGE,gBAAiB,CADjB,kBAAoB,CADpB,UAGF,CAEA,eAEE,sCAAuC,CACvC,cAAe,CAFf,kBAGF,CAEA,gBAEE,gBAAiB,CADjB,YAAa,CAKb,+CACF,CAEA,+BACE,eACF,CAEA,wBACE,mCAAoC,CAEpC,eAAkB,CADlB,YAEF,CAEA,mBACE,oBACF,CAMA,iCAHE,oBAOF,CAJA,cAEE,gBAAiB,CACjB,kBACF,CAEA,uBAEE,oBAAqB,CACrB,cAAe,CACf,eAAmB,CAHnB,QAIF,CAEA,yCAEE,mCAAoC,CACpC,cAAe,CAFf,eAGF,CAEA,YACE,mBAAoB,CACpB,oBAAqB,CACrB,kBACF,CAEA,sBAEE,uBAAoC,CACpC,iBAAkB,CAClB,0BAAsC,CAHtC,YAIF,CAKA,yBAGE,cAAe,CAGf,mCAAqC,CAJrC,eAKF,CAEA,uBAEE,oBAAqB,CACrB,eAAiB,CAFjB,cAAe,CAGf,eACF,CAEA,iCACE,YACF",sourcesContent:['.tooltip {\n position: fixed;\n display: inline-block;\n overflow: hidden;\n max-width: 600px;\n padding: 8px;\n border: 1px solid #ccc;\n background-color: var(--grey-10);\n box-shadow: 0 1px 3px rgb(0 0 0 / 0.3);\n line-height: 1.4;\n pointer-events: none;\n text-align: left;\n text-overflow: ellipsis;\n transition: opacity 250ms;\n}\n\n.tooltipTiming {\n padding-right: 0.5em;\n color: #666;\n font-weight: bold;\n}\n\n.tooltipOneLine {\n display: flex;\n max-width: 100%;\n text-overflow: ellipsis;\n white-space: nowrap;\n}\n\n.tooltipTitle {\n overflow: hidden;\n flex: 1;\n text-overflow: ellipsis;\n}\n\n.tooltipSwatch {\n display: inline-block;\n width: 10px;\n height: 10px;\n border: 1px solid #888;\n margin-right: 3px;\n}\n\n.tooltipIcon {\n display: inline-block;\n align-self: flex-end;\n margin-right: 3px;\n}\n\n.tooltipIcon > .nodeIcon {\n width: 14px;\n padding-right: 0.5em;\n margin-left: auto;\n}\n\n.tooltipHeader {\n padding-bottom: 8px;\n border-bottom: 1px solid var(--grey-40);\n font-size: 12px;\n}\n\n.tooltipDetails {\n display: grid;\n grid-gap: 2px 5px;\n\n /* Make the right column "definitely" sized (ignore its intrinsic size) by setting a min-width of 0.\n * This stops long contents from overflowing the tooltip. */\n grid-template-columns: min-content minmax(0, 1fr);\n}\n\n.tooltipHeader + .tooltipDetails {\n padding-top: 5px;\n}\n\n.tooltipDetailSeparator {\n border-top: 1px solid var(--grey-40);\n margin: 4px 0;\n grid-column: 1 / 3;\n}\n\n.tooltipDetailsUrl {\n word-break: break-all;\n}\n\n.tooltipDetailsDim {\n color: var(--grey-50);\n}\n\n.tooltipLabel {\n color: var(--grey-50);\n text-align: right;\n white-space: nowrap;\n}\n\n.tooltipBackTraceTitle {\n margin: 0;\n color: var(--grey-50);\n font-size: 100%;\n font-weight: normal;\n}\n\n.tooltipDetails + .tooltipDetailsBackTrace {\n padding-top: 5px;\n border-top: 1px solid var(--grey-40);\n margin-top: 5px;\n}\n\n.tooltipLib {\n align-self: flex-end;\n color: var(--grey-50);\n white-space: nowrap;\n}\n\n.tooltipScreenshotImg {\n padding: 0.5px;\n border: 0.5px solid rgb(0 0 0 / 0.2);\n border-radius: 5px;\n box-shadow: 0 2px 4px rgb(0 0 0 / 0.2);\n}\n\n/**\n * Overwrite styles for the sidebar.\n */\n.sidebar .tooltipDetails {\n /* Force the details to the max-width, even if they have long pieces of text. */\n overflow: hidden;\n grid-gap: 2px 0;\n\n /* Don\'t let the width overflow for long pieces of text */\n grid-template-columns: minmax(0, 1fr);\n}\n\n.sidebar .tooltipLabel {\n margin-top: 8px;\n color: var(--grey-60);\n font-weight: bold;\n text-align: left;\n}\n\n.sidebar .tooltipDetailSeparator {\n display: none;\n}\n'],sourceRoot:""}]);const s=i},3645:e=>{"use strict";e.exports=function(e){var t=[];return t.toString=function(){return this.map((function(t){var n="",r=void 0!==t[5];return t[4]&&(n+="@supports (".concat(t[4],") {")),t[2]&&(n+="@media ".concat(t[2]," {")),r&&(n+="@layer".concat(t[5].length>0?" ".concat(t[5]):""," {")),n+=e(t),r&&(n+="}"),t[2]&&(n+="}"),t[4]&&(n+="}"),n})).join("")},t.i=function(e,n,r,o,a){"string"==typeof e&&(e=[[null,e,void 0]]);var i={};if(r)for(var s=0;s<this.length;s++){var l=this[s][0];null!=l&&(i[l]=!0)}for(var c=0;c<e.length;c++){var d=[].concat(e[c]);r&&i[d[0]]||(void 0!==a&&(void 0===d[5]||(d[1]="@layer".concat(d[5].length>0?" ".concat(d[5]):""," {").concat(d[1],"}")),d[5]=a),n&&(d[2]?(d[1]="@media ".concat(d[2]," {").concat(d[1],"}"),d[2]=n):d[2]=n),o&&(d[4]?(d[1]="@supports (".concat(d[4],") {").concat(d[1],"}"),d[4]=o):d[4]="".concat(o)),t.push(d))}},t}},1667:e=>{"use strict";e.exports=function(e,t){return t||(t={}),e?(e=String(e.__esModule?e.default:e),/^['"].*['"]$/.test(e)&&(e=e.slice(1,-1)),t.hash&&(e+=t.hash),/["'() \t\n]|(%20)/.test(e)||t.needQuotes?'"'.concat(e.replace(/"/g,'\\"').replace(/\n/g,"\\n"),'"'):e):e}},7537:e=>{"use strict";e.exports=function(e){var t=e[1],n=e[3];if(!n)return t;if("function"==typeof btoa){var r=btoa(unescape(encodeURIComponent(JSON.stringify(n)))),o="sourceMappingURL=data:application/json;charset=utf-8;base64,".concat(r),a="/*# ".concat(o," */");return[t].concat([a]).join("\n")}return[t].join("\n")}},3150:e=>{"use strict";e.exports=e=>{if("string"!=typeof e)throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}},8679:(e,t,n)=>{"use strict";var r=n(9864),o={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},a={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},i={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},s={};function l(e){return r.isMemo(e)?i:s[e.$$typeof]||o}s[r.ForwardRef]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},s[r.Memo]=i;var c=Object.defineProperty,d=Object.getOwnPropertyNames,u=Object.getOwnPropertySymbols,h=Object.getOwnPropertyDescriptor,p=Object.getPrototypeOf,m=Object.prototype;e.exports=function e(t,n,r){if("string"!=typeof n){if(m){var o=p(n);o&&o!==m&&e(t,o,r)}var i=d(n);u&&(i=i.concat(u(n)));for(var s=l(t),f=l(n),g=0;g<i.length;++g){var A=i[g];if(!(a[A]||r&&r[A]||f&&f[A]||s&&s[A])){var b=h(n,A);try{c(t,A,b)}catch(e){}}}}return t}},5733:(e,t,n)=>{e.exports=function e(t,n,r){function o(i,s){if(!n[i]){if(!t[i]){if(a)return a(i,!0);var l=new Error("Cannot find module '"+i+"'");throw l.code="MODULE_NOT_FOUND",l}var c=n[i]={exports:{}};t[i][0].call(c.exports,(function(e){return o(t[i][1][e]||e)}),c,c.exports,e,t,n,r)}return n[i].exports}for(var a=void 0,i=0;i<r.length;i++)o(r[i]);return o}({1:[function(e,t,n){"use strict";var r=e("./utils"),o=e("./support"),a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";n.encode=function(e){for(var t,n,o,i,s,l,c,d=[],u=0,h=e.length,p=h,m="string"!==r.getTypeOf(e);u<e.length;)p=h-u,o=m?(t=e[u++],n=u<h?e[u++]:0,u<h?e[u++]:0):(t=e.charCodeAt(u++),n=u<h?e.charCodeAt(u++):0,u<h?e.charCodeAt(u++):0),i=t>>2,s=(3&t)<<4|n>>4,l=1<p?(15&n)<<2|o>>6:64,c=2<p?63&o:64,d.push(a.charAt(i)+a.charAt(s)+a.charAt(l)+a.charAt(c));return d.join("")},n.decode=function(e){var t,n,r,i,s,l,c=0,d=0,u="data:";if(e.substr(0,u.length)===u)throw new Error("Invalid base64 input, it looks like a data url.");var h,p=3*(e=e.replace(/[^A-Za-z0-9+/=]/g,"")).length/4;if(e.charAt(e.length-1)===a.charAt(64)&&p--,e.charAt(e.length-2)===a.charAt(64)&&p--,p%1!=0)throw new Error("Invalid base64 input, bad content length.");for(h=o.uint8array?new Uint8Array(0|p):new Array(0|p);c<e.length;)t=a.indexOf(e.charAt(c++))<<2|(i=a.indexOf(e.charAt(c++)))>>4,n=(15&i)<<4|(s=a.indexOf(e.charAt(c++)))>>2,r=(3&s)<<6|(l=a.indexOf(e.charAt(c++))),h[d++]=t,64!==s&&(h[d++]=n),64!==l&&(h[d++]=r);return h}},{"./support":30,"./utils":32}],2:[function(e,t,n){"use strict";var r=e("./external"),o=e("./stream/DataWorker"),a=e("./stream/Crc32Probe"),i=e("./stream/DataLengthProbe");function s(e,t,n,r,o){this.compressedSize=e,this.uncompressedSize=t,this.crc32=n,this.compression=r,this.compressedContent=o}s.prototype={getContentWorker:function(){var e=new o(r.Promise.resolve(this.compressedContent)).pipe(this.compression.uncompressWorker()).pipe(new i("data_length")),t=this;return e.on("end",(function(){if(this.streamInfo.data_length!==t.uncompressedSize)throw new Error("Bug : uncompressed data size mismatch")})),e},getCompressedWorker:function(){return new o(r.Promise.resolve(this.compressedContent)).withStreamInfo("compressedSize",this.compressedSize).withStreamInfo("uncompressedSize",this.uncompressedSize).withStreamInfo("crc32",this.crc32).withStreamInfo("compression",this.compression)}},s.createWorkerFrom=function(e,t,n){return e.pipe(new a).pipe(new i("uncompressedSize")).pipe(t.compressWorker(n)).pipe(new i("compressedSize")).withStreamInfo("compression",t)},t.exports=s},{"./external":6,"./stream/Crc32Probe":25,"./stream/DataLengthProbe":26,"./stream/DataWorker":27}],3:[function(e,t,n){"use strict";var r=e("./stream/GenericWorker");n.STORE={magic:"\0\0",compressWorker:function(){return new r("STORE compression")},uncompressWorker:function(){return new r("STORE decompression")}},n.DEFLATE=e("./flate")},{"./flate":7,"./stream/GenericWorker":28}],4:[function(e,t,n){"use strict";var r=e("./utils"),o=function(){for(var e,t=[],n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=1&e?3988292384^e>>>1:e>>>1;t[n]=e}return t}();t.exports=function(e,t){return void 0!==e&&e.length?"string"!==r.getTypeOf(e)?function(e,t,n,r){var a=o,i=0+n;e^=-1;for(var s=0;s<i;s++)e=e>>>8^a[255&(e^t[s])];return-1^e}(0|t,e,e.length):function(e,t,n,r){var a=o,i=0+n;e^=-1;for(var s=0;s<i;s++)e=e>>>8^a[255&(e^t.charCodeAt(s))];return-1^e}(0|t,e,e.length):0}},{"./utils":32}],5:[function(e,t,n){"use strict";n.base64=!1,n.binary=!1,n.dir=!1,n.createFolders=!0,n.date=null,n.compression=null,n.compressionOptions=null,n.comment=null,n.unixPermissions=null,n.dosPermissions=null},{}],6:[function(e,t,n){"use strict";var r;r="undefined"!=typeof Promise?Promise:e("lie"),t.exports={Promise:r}},{lie:37}],7:[function(e,t,n){"use strict";var r="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Uint32Array,o=e("pako"),a=e("./utils"),i=e("./stream/GenericWorker"),s=r?"uint8array":"array";function l(e,t){i.call(this,"FlateWorker/"+e),this._pako=null,this._pakoAction=e,this._pakoOptions=t,this.meta={}}n.magic="\b\0",a.inherits(l,i),l.prototype.processChunk=function(e){this.meta=e.meta,null===this._pako&&this._createPako(),this._pako.push(a.transformTo(s,e.data),!1)},l.prototype.flush=function(){i.prototype.flush.call(this),null===this._pako&&this._createPako(),this._pako.push([],!0)},l.prototype.cleanUp=function(){i.prototype.cleanUp.call(this),this._pako=null},l.prototype._createPako=function(){this._pako=new o[this._pakoAction]({raw:!0,level:this._pakoOptions.level||-1});var e=this;this._pako.onData=function(t){e.push({data:t,meta:e.meta})}},n.compressWorker=function(e){return new l("Deflate",e)},n.uncompressWorker=function(){return new l("Inflate",{})}},{"./stream/GenericWorker":28,"./utils":32,pako:38}],8:[function(e,t,n){"use strict";function r(e,t){var n,r="";for(n=0;n<t;n++)r+=String.fromCharCode(255&e),e>>>=8;return r}function o(e,t,n,o,i,d){var u,h,p=e.file,m=e.compression,f=d!==s.utf8encode,g=a.transformTo("string",d(p.name)),A=a.transformTo("string",s.utf8encode(p.name)),b=p.comment,C=a.transformTo("string",d(b)),y=a.transformTo("string",s.utf8encode(b)),v=A.length!==p.name.length,w=y.length!==b.length,k="",E="",x="",S=p.dir,T=p.date,B={crc32:0,compressedSize:0,uncompressedSize:0};t&&!n||(B.crc32=e.crc32,B.compressedSize=e.compressedSize,B.uncompressedSize=e.uncompressedSize);var _=0;t&&(_|=8),f||!v&&!w||(_|=2048);var I=0,P=0;S&&(I|=16),"UNIX"===i?(P=798,I|=function(e,t){var n=e;return e||(n=t?16893:33204),(65535&n)<<16}(p.unixPermissions,S)):(P=20,I|=function(e){return 63&(e||0)}(p.dosPermissions)),u=T.getUTCHours(),u<<=6,u|=T.getUTCMinutes(),u<<=5,u|=T.getUTCSeconds()/2,h=T.getUTCFullYear()-1980,h<<=4,h|=T.getUTCMonth()+1,h<<=5,h|=T.getUTCDate(),v&&(E=r(1,1)+r(l(g),4)+A,k+="up"+r(E.length,2)+E),w&&(x=r(1,1)+r(l(C),4)+y,k+="uc"+r(x.length,2)+x);var N="";return N+="\n\0",N+=r(_,2),N+=m.magic,N+=r(u,2),N+=r(h,2),N+=r(B.crc32,4),N+=r(B.compressedSize,4),N+=r(B.uncompressedSize,4),N+=r(g.length,2),N+=r(k.length,2),{fileRecord:c.LOCAL_FILE_HEADER+N+g+k,dirRecord:c.CENTRAL_FILE_HEADER+r(P,2)+N+r(C.length,2)+"\0\0\0\0"+r(I,4)+r(o,4)+g+k+C}}var a=e("../utils"),i=e("../stream/GenericWorker"),s=e("../utf8"),l=e("../crc32"),c=e("../signature");function d(e,t,n,r){i.call(this,"ZipFileWorker"),this.bytesWritten=0,this.zipComment=t,this.zipPlatform=n,this.encodeFileName=r,this.streamFiles=e,this.accumulate=!1,this.contentBuffer=[],this.dirRecords=[],this.currentSourceOffset=0,this.entriesCount=0,this.currentFile=null,this._sources=[]}a.inherits(d,i),d.prototype.push=function(e){var t=e.meta.percent||0,n=this.entriesCount,r=this._sources.length;this.accumulate?this.contentBuffer.push(e):(this.bytesWritten+=e.data.length,i.prototype.push.call(this,{data:e.data,meta:{currentFile:this.currentFile,percent:n?(t+100*(n-r-1))/n:100}}))},d.prototype.openedSource=function(e){this.currentSourceOffset=this.bytesWritten,this.currentFile=e.file.name;var t=this.streamFiles&&!e.file.dir;if(t){var n=o(e,t,!1,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);this.push({data:n.fileRecord,meta:{percent:0}})}else this.accumulate=!0},d.prototype.closedSource=function(e){this.accumulate=!1;var t=this.streamFiles&&!e.file.dir,n=o(e,t,!0,this.currentSourceOffset,this.zipPlatform,this.encodeFileName);if(this.dirRecords.push(n.dirRecord),t)this.push({data:function(e){return c.DATA_DESCRIPTOR+r(e.crc32,4)+r(e.compressedSize,4)+r(e.uncompressedSize,4)}(e),meta:{percent:100}});else for(this.push({data:n.fileRecord,meta:{percent:0}});this.contentBuffer.length;)this.push(this.contentBuffer.shift());this.currentFile=null},d.prototype.flush=function(){for(var e=this.bytesWritten,t=0;t<this.dirRecords.length;t++)this.push({data:this.dirRecords[t],meta:{percent:100}});var n=this.bytesWritten-e,o=function(e,t,n,o,i){var s=a.transformTo("string",i(o));return c.CENTRAL_DIRECTORY_END+"\0\0\0\0"+r(e,2)+r(e,2)+r(t,4)+r(n,4)+r(s.length,2)+s}(this.dirRecords.length,n,e,this.zipComment,this.encodeFileName);this.push({data:o,meta:{percent:100}})},d.prototype.prepareNextSource=function(){this.previous=this._sources.shift(),this.openedSource(this.previous.streamInfo),this.isPaused?this.previous.pause():this.previous.resume()},d.prototype.registerPrevious=function(e){this._sources.push(e);var t=this;return e.on("data",(function(e){t.processChunk(e)})),e.on("end",(function(){t.closedSource(t.previous.streamInfo),t._sources.length?t.prepareNextSource():t.end()})),e.on("error",(function(e){t.error(e)})),this},d.prototype.resume=function(){return!!i.prototype.resume.call(this)&&(!this.previous&&this._sources.length?(this.prepareNextSource(),!0):this.previous||this._sources.length||this.generatedError?void 0:(this.end(),!0))},d.prototype.error=function(e){var t=this._sources;if(!i.prototype.error.call(this,e))return!1;for(var n=0;n<t.length;n++)try{t[n].error(e)}catch(e){}return!0},d.prototype.lock=function(){i.prototype.lock.call(this);for(var e=this._sources,t=0;t<e.length;t++)e[t].lock()},t.exports=d},{"../crc32":4,"../signature":23,"../stream/GenericWorker":28,"../utf8":31,"../utils":32}],9:[function(e,t,n){"use strict";var r=e("../compressions"),o=e("./ZipFileWorker");n.generateWorker=function(e,t,n){var a=new o(t.streamFiles,n,t.platform,t.encodeFileName),i=0;try{e.forEach((function(e,n){i++;var o=function(e,t){var n=e||t,o=r[n];if(!o)throw new Error(n+" is not a valid compression method !");return o}(n.options.compression,t.compression),s=n.options.compressionOptions||t.compressionOptions||{},l=n.dir,c=n.date;n._compressWorker(o,s).withStreamInfo("file",{name:e,dir:l,date:c,comment:n.comment||"",unixPermissions:n.unixPermissions,dosPermissions:n.dosPermissions}).pipe(a)})),a.entriesCount=i}catch(e){a.error(e)}return a}},{"../compressions":3,"./ZipFileWorker":8}],10:[function(e,t,n){"use strict";function r(){if(!(this instanceof r))return new r;if(arguments.length)throw new Error("The constructor with parameters has been removed in JSZip 3.0, please check the upgrade guide.");this.files=Object.create(null),this.comment=null,this.root="",this.clone=function(){var e=new r;for(var t in this)"function"!=typeof this[t]&&(e[t]=this[t]);return e}}(r.prototype=e("./object")).loadAsync=e("./load"),r.support=e("./support"),r.defaults=e("./defaults"),r.version="3.10.1",r.loadAsync=function(e,t){return(new r).loadAsync(e,t)},r.external=e("./external"),t.exports=r},{"./defaults":5,"./external":6,"./load":11,"./object":15,"./support":30}],11:[function(e,t,n){"use strict";var r=e("./utils"),o=e("./external"),a=e("./utf8"),i=e("./zipEntries"),s=e("./stream/Crc32Probe"),l=e("./nodejsUtils");function c(e){return new o.Promise((function(t,n){var r=e.decompressed.getContentWorker().pipe(new s);r.on("error",(function(e){n(e)})).on("end",(function(){r.streamInfo.crc32!==e.decompressed.crc32?n(new Error("Corrupted zip : CRC32 mismatch")):t()})).resume()}))}t.exports=function(e,t){var n=this;return t=r.extend(t||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:a.utf8decode}),l.isNode&&l.isStream(e)?o.Promise.reject(new Error("JSZip can't accept a stream when loading a zip file.")):r.prepareContent("the loaded zip file",e,!0,t.optimizedBinaryString,t.base64).then((function(e){var n=new i(t);return n.load(e),n})).then((function(e){var n=[o.Promise.resolve(e)],r=e.files;if(t.checkCRC32)for(var a=0;a<r.length;a++)n.push(c(r[a]));return o.Promise.all(n)})).then((function(e){for(var o=e.shift(),a=o.files,i=0;i<a.length;i++){var s=a[i],l=s.fileNameStr,c=r.resolve(s.fileNameStr);n.file(c,s.decompressed,{binary:!0,optimizedBinaryString:!0,date:s.date,dir:s.dir,comment:s.fileCommentStr.length?s.fileCommentStr:null,unixPermissions:s.unixPermissions,dosPermissions:s.dosPermissions,createFolders:t.createFolders}),s.dir||(n.file(c).unsafeOriginalName=l)}return o.zipComment.length&&(n.comment=o.zipComment),n}))}},{"./external":6,"./nodejsUtils":14,"./stream/Crc32Probe":25,"./utf8":31,"./utils":32,"./zipEntries":33}],12:[function(e,t,n){"use strict";var r=e("../utils"),o=e("../stream/GenericWorker");function a(e,t){o.call(this,"Nodejs stream input adapter for "+e),this._upstreamEnded=!1,this._bindStream(t)}r.inherits(a,o),a.prototype._bindStream=function(e){var t=this;(this._stream=e).pause(),e.on("data",(function(e){t.push({data:e,meta:{percent:0}})})).on("error",(function(e){t.isPaused?this.generatedError=e:t.error(e)})).on("end",(function(){t.isPaused?t._upstreamEnded=!0:t.end()}))},a.prototype.pause=function(){return!!o.prototype.pause.call(this)&&(this._stream.pause(),!0)},a.prototype.resume=function(){return!!o.prototype.resume.call(this)&&(this._upstreamEnded?this.end():this._stream.resume(),!0)},t.exports=a},{"../stream/GenericWorker":28,"../utils":32}],13:[function(e,t,n){"use strict";var r=e("readable-stream").Readable;function o(e,t,n){r.call(this,t),this._helper=e;var o=this;e.on("data",(function(e,t){o.push(e)||o._helper.pause(),n&&n(t)})).on("error",(function(e){o.emit("error",e)})).on("end",(function(){o.push(null)}))}e("../utils").inherits(o,r),o.prototype._read=function(){this._helper.resume()},t.exports=o},{"../utils":32,"readable-stream":16}],14:[function(e,t,n){"use strict";t.exports={isNode:"undefined"!=typeof Buffer,newBufferFrom:function(e,t){if(Buffer.from&&Buffer.from!==Uint8Array.from)return Buffer.from(e,t);if("number"==typeof e)throw new Error('The "data" argument must not be a number');return new Buffer(e,t)},allocBuffer:function(e){if(Buffer.alloc)return Buffer.alloc(e);var t=new Buffer(e);return t.fill(0),t},isBuffer:function(e){return Buffer.isBuffer(e)},isStream:function(e){return e&&"function"==typeof e.on&&"function"==typeof e.pause&&"function"==typeof e.resume}}},{}],15:[function(e,t,n){"use strict";function r(e,t,n){var r,o=a.getTypeOf(t),s=a.extend(n||{},l);s.date=s.date||new Date,null!==s.compression&&(s.compression=s.compression.toUpperCase()),"string"==typeof s.unixPermissions&&(s.unixPermissions=parseInt(s.unixPermissions,8)),s.unixPermissions&&16384&s.unixPermissions&&(s.dir=!0),s.dosPermissions&&16&s.dosPermissions&&(s.dir=!0),s.dir&&(e=f(e)),s.createFolders&&(r=m(e))&&g.call(this,r,!0);var u="string"===o&&!1===s.binary&&!1===s.base64;n&&void 0!==n.binary||(s.binary=!u),(t instanceof c&&0===t.uncompressedSize||s.dir||!t||0===t.length)&&(s.base64=!1,s.binary=!0,t="",s.compression="STORE",o="string");var A;A=t instanceof c||t instanceof i?t:h.isNode&&h.isStream(t)?new p(e,t):a.prepareContent(e,t,s.binary,s.optimizedBinaryString,s.base64);var b=new d(e,A,s);this.files[e]=b}var o=e("./utf8"),a=e("./utils"),i=e("./stream/GenericWorker"),s=e("./stream/StreamHelper"),l=e("./defaults"),c=e("./compressedObject"),d=e("./zipObject"),u=e("./generate"),h=e("./nodejsUtils"),p=e("./nodejs/NodejsStreamInputAdapter"),m=function(e){"/"===e.slice(-1)&&(e=e.substring(0,e.length-1));var t=e.lastIndexOf("/");return 0<t?e.substring(0,t):""},f=function(e){return"/"!==e.slice(-1)&&(e+="/"),e},g=function(e,t){return t=void 0!==t?t:l.createFolders,e=f(e),this.files[e]||r.call(this,e,null,{dir:!0,createFolders:t}),this.files[e]};function A(e){return"[object RegExp]"===Object.prototype.toString.call(e)}var b={load:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},forEach:function(e){var t,n,r;for(t in this.files)r=this.files[t],(n=t.slice(this.root.length,t.length))&&t.slice(0,this.root.length)===this.root&&e(n,r)},filter:function(e){var t=[];return this.forEach((function(n,r){e(n,r)&&t.push(r)})),t},file:function(e,t,n){if(1!==arguments.length)return e=this.root+e,r.call(this,e,t,n),this;if(A(e)){var o=e;return this.filter((function(e,t){return!t.dir&&o.test(e)}))}var a=this.files[this.root+e];return a&&!a.dir?a:null},folder:function(e){if(!e)return this;if(A(e))return this.filter((function(t,n){return n.dir&&e.test(t)}));var t=this.root+e,n=g.call(this,t),r=this.clone();return r.root=n.name,r},remove:function(e){e=this.root+e;var t=this.files[e];if(t||("/"!==e.slice(-1)&&(e+="/"),t=this.files[e]),t&&!t.dir)delete this.files[e];else for(var n=this.filter((function(t,n){return n.name.slice(0,e.length)===e})),r=0;r<n.length;r++)delete this.files[n[r].name];return this},generate:function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},generateInternalStream:function(e){var t,n={};try{if((n=a.extend(e||{},{streamFiles:!1,compression:"STORE",compressionOptions:null,type:"",platform:"DOS",comment:null,mimeType:"application/zip",encodeFileName:o.utf8encode})).type=n.type.toLowerCase(),n.compression=n.compression.toUpperCase(),"binarystring"===n.type&&(n.type="string"),!n.type)throw new Error("No output type specified.");a.checkSupport(n.type),"darwin"!==n.platform&&"freebsd"!==n.platform&&"linux"!==n.platform&&"sunos"!==n.platform||(n.platform="UNIX"),"win32"===n.platform&&(n.platform="DOS");var r=n.comment||this.comment||"";t=u.generateWorker(this,n,r)}catch(e){(t=new i("error")).error(e)}return new s(t,n.type||"string",n.mimeType)},generateAsync:function(e,t){return this.generateInternalStream(e).accumulate(t)},generateNodeStream:function(e,t){return(e=e||{}).type||(e.type="nodebuffer"),this.generateInternalStream(e).toNodejsStream(t)}};t.exports=b},{"./compressedObject":2,"./defaults":5,"./generate":9,"./nodejs/NodejsStreamInputAdapter":12,"./nodejsUtils":14,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31,"./utils":32,"./zipObject":35}],16:[function(e,t,n){"use strict";t.exports=e("stream")},{stream:void 0}],17:[function(e,t,n){"use strict";var r=e("./DataReader");function o(e){r.call(this,e);for(var t=0;t<this.data.length;t++)e[t]=255&e[t]}e("../utils").inherits(o,r),o.prototype.byteAt=function(e){return this.data[this.zero+e]},o.prototype.lastIndexOfSignature=function(e){for(var t=e.charCodeAt(0),n=e.charCodeAt(1),r=e.charCodeAt(2),o=e.charCodeAt(3),a=this.length-4;0<=a;--a)if(this.data[a]===t&&this.data[a+1]===n&&this.data[a+2]===r&&this.data[a+3]===o)return a-this.zero;return-1},o.prototype.readAndCheckSignature=function(e){var t=e.charCodeAt(0),n=e.charCodeAt(1),r=e.charCodeAt(2),o=e.charCodeAt(3),a=this.readData(4);return t===a[0]&&n===a[1]&&r===a[2]&&o===a[3]},o.prototype.readData=function(e){if(this.checkOffset(e),0===e)return[];var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=o},{"../utils":32,"./DataReader":18}],18:[function(e,t,n){"use strict";var r=e("../utils");function o(e){this.data=e,this.length=e.length,this.index=0,this.zero=0}o.prototype={checkOffset:function(e){this.checkIndex(this.index+e)},checkIndex:function(e){if(this.length<this.zero+e||e<0)throw new Error("End of data reached (data length = "+this.length+", asked index = "+e+"). Corrupted zip ?")},setIndex:function(e){this.checkIndex(e),this.index=e},skip:function(e){this.setIndex(this.index+e)},byteAt:function(){},readInt:function(e){var t,n=0;for(this.checkOffset(e),t=this.index+e-1;t>=this.index;t--)n=(n<<8)+this.byteAt(t);return this.index+=e,n},readString:function(e){return r.transformTo("string",this.readData(e))},readData:function(){},lastIndexOfSignature:function(){},readAndCheckSignature:function(){},readDate:function(){var e=this.readInt(4);return new Date(Date.UTC(1980+(e>>25&127),(e>>21&15)-1,e>>16&31,e>>11&31,e>>5&63,(31&e)<<1))}},t.exports=o},{"../utils":32}],19:[function(e,t,n){"use strict";var r=e("./Uint8ArrayReader");function o(e){r.call(this,e)}e("../utils").inherits(o,r),o.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=o},{"../utils":32,"./Uint8ArrayReader":21}],20:[function(e,t,n){"use strict";var r=e("./DataReader");function o(e){r.call(this,e)}e("../utils").inherits(o,r),o.prototype.byteAt=function(e){return this.data.charCodeAt(this.zero+e)},o.prototype.lastIndexOfSignature=function(e){return this.data.lastIndexOf(e)-this.zero},o.prototype.readAndCheckSignature=function(e){return e===this.readData(4)},o.prototype.readData=function(e){this.checkOffset(e);var t=this.data.slice(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=o},{"../utils":32,"./DataReader":18}],21:[function(e,t,n){"use strict";var r=e("./ArrayReader");function o(e){r.call(this,e)}e("../utils").inherits(o,r),o.prototype.readData=function(e){if(this.checkOffset(e),0===e)return new Uint8Array(0);var t=this.data.subarray(this.zero+this.index,this.zero+this.index+e);return this.index+=e,t},t.exports=o},{"../utils":32,"./ArrayReader":17}],22:[function(e,t,n){"use strict";var r=e("../utils"),o=e("../support"),a=e("./ArrayReader"),i=e("./StringReader"),s=e("./NodeBufferReader"),l=e("./Uint8ArrayReader");t.exports=function(e){var t=r.getTypeOf(e);return r.checkSupport(t),"string"!==t||o.uint8array?"nodebuffer"===t?new s(e):o.uint8array?new l(r.transformTo("uint8array",e)):new a(r.transformTo("array",e)):new i(e)}},{"../support":30,"../utils":32,"./ArrayReader":17,"./NodeBufferReader":19,"./StringReader":20,"./Uint8ArrayReader":21}],23:[function(e,t,n){"use strict";n.LOCAL_FILE_HEADER="PK",n.CENTRAL_FILE_HEADER="PK",n.CENTRAL_DIRECTORY_END="PK",n.ZIP64_CENTRAL_DIRECTORY_LOCATOR="PK",n.ZIP64_CENTRAL_DIRECTORY_END="PK",n.DATA_DESCRIPTOR="PK\b"},{}],24:[function(e,t,n){"use strict";var r=e("./GenericWorker"),o=e("../utils");function a(e){r.call(this,"ConvertWorker to "+e),this.destType=e}o.inherits(a,r),a.prototype.processChunk=function(e){this.push({data:o.transformTo(this.destType,e.data),meta:e.meta})},t.exports=a},{"../utils":32,"./GenericWorker":28}],25:[function(e,t,n){"use strict";var r=e("./GenericWorker"),o=e("../crc32");function a(){r.call(this,"Crc32Probe"),this.withStreamInfo("crc32",0)}e("../utils").inherits(a,r),a.prototype.processChunk=function(e){this.streamInfo.crc32=o(e.data,this.streamInfo.crc32||0),this.push(e)},t.exports=a},{"../crc32":4,"../utils":32,"./GenericWorker":28}],26:[function(e,t,n){"use strict";var r=e("../utils"),o=e("./GenericWorker");function a(e){o.call(this,"DataLengthProbe for "+e),this.propName=e,this.withStreamInfo(e,0)}r.inherits(a,o),a.prototype.processChunk=function(e){if(e){var t=this.streamInfo[this.propName]||0;this.streamInfo[this.propName]=t+e.data.length}o.prototype.processChunk.call(this,e)},t.exports=a},{"../utils":32,"./GenericWorker":28}],27:[function(e,t,n){"use strict";var r=e("../utils"),o=e("./GenericWorker");function a(e){o.call(this,"DataWorker");var t=this;this.dataIsReady=!1,this.index=0,this.max=0,this.data=null,this.type="",this._tickScheduled=!1,e.then((function(e){t.dataIsReady=!0,t.data=e,t.max=e&&e.length||0,t.type=r.getTypeOf(e),t.isPaused||t._tickAndRepeat()}),(function(e){t.error(e)}))}r.inherits(a,o),a.prototype.cleanUp=function(){o.prototype.cleanUp.call(this),this.data=null},a.prototype.resume=function(){return!!o.prototype.resume.call(this)&&(!this._tickScheduled&&this.dataIsReady&&(this._tickScheduled=!0,r.delay(this._tickAndRepeat,[],this)),!0)},a.prototype._tickAndRepeat=function(){this._tickScheduled=!1,this.isPaused||this.isFinished||(this._tick(),this.isFinished||(r.delay(this._tickAndRepeat,[],this),this._tickScheduled=!0))},a.prototype._tick=function(){if(this.isPaused||this.isFinished)return!1;var e=null,t=Math.min(this.max,this.index+16384);if(this.index>=this.max)return this.end();switch(this.type){case"string":e=this.data.substring(this.index,t);break;case"uint8array":e=this.data.subarray(this.index,t);break;case"array":case"nodebuffer":e=this.data.slice(this.index,t)}return this.index=t,this.push({data:e,meta:{percent:this.max?this.index/this.max*100:0}})},t.exports=a},{"../utils":32,"./GenericWorker":28}],28:[function(e,t,n){"use strict";function r(e){this.name=e||"default",this.streamInfo={},this.generatedError=null,this.extraStreamInfo={},this.isPaused=!0,this.isFinished=!1,this.isLocked=!1,this._listeners={data:[],end:[],error:[]},this.previous=null}r.prototype={push:function(e){this.emit("data",e)},end:function(){if(this.isFinished)return!1;this.flush();try{this.emit("end"),this.cleanUp(),this.isFinished=!0}catch(e){this.emit("error",e)}return!0},error:function(e){return!this.isFinished&&(this.isPaused?this.generatedError=e:(this.isFinished=!0,this.emit("error",e),this.previous&&this.previous.error(e),this.cleanUp()),!0)},on:function(e,t){return this._listeners[e].push(t),this},cleanUp:function(){this.streamInfo=this.generatedError=this.extraStreamInfo=null,this._listeners=[]},emit:function(e,t){if(this._listeners[e])for(var n=0;n<this._listeners[e].length;n++)this._listeners[e][n].call(this,t)},pipe:function(e){return e.registerPrevious(this)},registerPrevious:function(e){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.streamInfo=e.streamInfo,this.mergeStreamInfo(),this.previous=e;var t=this;return e.on("data",(function(e){t.processChunk(e)})),e.on("end",(function(){t.end()})),e.on("error",(function(e){t.error(e)})),this},pause:function(){return!this.isPaused&&!this.isFinished&&(this.isPaused=!0,this.previous&&this.previous.pause(),!0)},resume:function(){if(!this.isPaused||this.isFinished)return!1;var e=this.isPaused=!1;return this.generatedError&&(this.error(this.generatedError),e=!0),this.previous&&this.previous.resume(),!e},flush:function(){},processChunk:function(e){this.push(e)},withStreamInfo:function(e,t){return this.extraStreamInfo[e]=t,this.mergeStreamInfo(),this},mergeStreamInfo:function(){for(var e in this.extraStreamInfo)Object.prototype.hasOwnProperty.call(this.extraStreamInfo,e)&&(this.streamInfo[e]=this.extraStreamInfo[e])},lock:function(){if(this.isLocked)throw new Error("The stream '"+this+"' has already been used.");this.isLocked=!0,this.previous&&this.previous.lock()},toString:function(){var e="Worker "+this.name;return this.previous?this.previous+" -> "+e:e}},t.exports=r},{}],29:[function(e,t,n){"use strict";var r=e("../utils"),o=e("./ConvertWorker"),a=e("./GenericWorker"),i=e("../base64"),s=e("../support"),l=e("../external"),c=null;if(s.nodestream)try{c=e("../nodejs/NodejsStreamOutputAdapter")}catch(e){}function d(e,t,n){var i=t;switch(t){case"blob":case"arraybuffer":i="uint8array";break;case"base64":i="string"}try{this._internalType=i,this._outputType=t,this._mimeType=n,r.checkSupport(i),this._worker=e.pipe(new o(i)),e.lock()}catch(e){this._worker=new a("error"),this._worker.error(e)}}d.prototype={accumulate:function(e){return function(e,t){return new l.Promise((function(n,o){var a=[],s=e._internalType,l=e._outputType,c=e._mimeType;e.on("data",(function(e,n){a.push(e),t&&t(n)})).on("error",(function(e){a=[],o(e)})).on("end",(function(){try{var e=function(e,t,n){switch(e){case"blob":return r.newBlob(r.transformTo("arraybuffer",t),n);case"base64":return i.encode(t);default:return r.transformTo(e,t)}}(l,function(e,t){var n,r=0,o=null,a=0;for(n=0;n<t.length;n++)a+=t[n].length;switch(e){case"string":return t.join("");case"array":return Array.prototype.concat.apply([],t);case"uint8array":for(o=new Uint8Array(a),n=0;n<t.length;n++)o.set(t[n],r),r+=t[n].length;return o;case"nodebuffer":return Buffer.concat(t);default:throw new Error("concat : unsupported type '"+e+"'")}}(s,a),c);n(e)}catch(e){o(e)}a=[]})).resume()}))}(this,e)},on:function(e,t){var n=this;return"data"===e?this._worker.on(e,(function(e){t.call(n,e.data,e.meta)})):this._worker.on(e,(function(){r.delay(t,arguments,n)})),this},resume:function(){return r.delay(this._worker.resume,[],this._worker),this},pause:function(){return this._worker.pause(),this},toNodejsStream:function(e){if(r.checkSupport("nodestream"),"nodebuffer"!==this._outputType)throw new Error(this._outputType+" is not supported by this method");return new c(this,{objectMode:"nodebuffer"!==this._outputType},e)}},t.exports=d},{"../base64":1,"../external":6,"../nodejs/NodejsStreamOutputAdapter":13,"../support":30,"../utils":32,"./ConvertWorker":24,"./GenericWorker":28}],30:[function(e,t,n){"use strict";if(n.base64=!0,n.array=!0,n.string=!0,n.arraybuffer="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof Uint8Array,n.nodebuffer="undefined"!=typeof Buffer,n.uint8array="undefined"!=typeof Uint8Array,"undefined"==typeof ArrayBuffer)n.blob=!1;else{var r=new ArrayBuffer(0);try{n.blob=0===new Blob([r],{type:"application/zip"}).size}catch(e){try{var o=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);o.append(r),n.blob=0===o.getBlob("application/zip").size}catch(e){n.blob=!1}}}try{n.nodestream=!!e("readable-stream").Readable}catch(e){n.nodestream=!1}},{"readable-stream":16}],31:[function(e,t,n){"use strict";for(var r=e("./utils"),o=e("./support"),a=e("./nodejsUtils"),i=e("./stream/GenericWorker"),s=new Array(256),l=0;l<256;l++)s[l]=252<=l?6:248<=l?5:240<=l?4:224<=l?3:192<=l?2:1;function c(){i.call(this,"utf-8 decode"),this.leftOver=null}function d(){i.call(this,"utf-8 encode")}s[254]=s[254]=1,n.utf8encode=function(e){return o.nodebuffer?a.newBufferFrom(e,"utf-8"):function(e){var t,n,r,a,i,s=e.length,l=0;for(a=0;a<s;a++)55296==(64512&(n=e.charCodeAt(a)))&&a+1<s&&56320==(64512&(r=e.charCodeAt(a+1)))&&(n=65536+(n-55296<<10)+(r-56320),a++),l+=n<128?1:n<2048?2:n<65536?3:4;for(t=o.uint8array?new Uint8Array(l):new Array(l),a=i=0;i<l;a++)55296==(64512&(n=e.charCodeAt(a)))&&a+1<s&&56320==(64512&(r=e.charCodeAt(a+1)))&&(n=65536+(n-55296<<10)+(r-56320),a++),n<128?t[i++]=n:(n<2048?t[i++]=192|n>>>6:(n<65536?t[i++]=224|n>>>12:(t[i++]=240|n>>>18,t[i++]=128|n>>>12&63),t[i++]=128|n>>>6&63),t[i++]=128|63&n);return t}(e)},n.utf8decode=function(e){return o.nodebuffer?r.transformTo("nodebuffer",e).toString("utf-8"):function(e){var t,n,o,a,i=e.length,l=new Array(2*i);for(t=n=0;t<i;)if((o=e[t++])<128)l[n++]=o;else if(4<(a=s[o]))l[n++]=65533,t+=a-1;else{for(o&=2===a?31:3===a?15:7;1<a&&t<i;)o=o<<6|63&e[t++],a--;1<a?l[n++]=65533:o<65536?l[n++]=o:(o-=65536,l[n++]=55296|o>>10&1023,l[n++]=56320|1023&o)}return l.length!==n&&(l.subarray?l=l.subarray(0,n):l.length=n),r.applyFromCharCode(l)}(e=r.transformTo(o.uint8array?"uint8array":"array",e))},r.inherits(c,i),c.prototype.processChunk=function(e){var t=r.transformTo(o.uint8array?"uint8array":"array",e.data);if(this.leftOver&&this.leftOver.length){if(o.uint8array){var a=t;(t=new Uint8Array(a.length+this.leftOver.length)).set(this.leftOver,0),t.set(a,this.leftOver.length)}else t=this.leftOver.concat(t);this.leftOver=null}var i=function(e,t){var n;for((t=t||e.length)>e.length&&(t=e.length),n=t-1;0<=n&&128==(192&e[n]);)n--;return n<0||0===n?t:n+s[e[n]]>t?n:t}(t),l=t;i!==t.length&&(o.uint8array?(l=t.subarray(0,i),this.leftOver=t.subarray(i,t.length)):(l=t.slice(0,i),this.leftOver=t.slice(i,t.length))),this.push({data:n.utf8decode(l),meta:e.meta})},c.prototype.flush=function(){this.leftOver&&this.leftOver.length&&(this.push({data:n.utf8decode(this.leftOver),meta:{}}),this.leftOver=null)},n.Utf8DecodeWorker=c,r.inherits(d,i),d.prototype.processChunk=function(e){this.push({data:n.utf8encode(e.data),meta:e.meta})},n.Utf8EncodeWorker=d},{"./nodejsUtils":14,"./stream/GenericWorker":28,"./support":30,"./utils":32}],32:[function(e,t,n){"use strict";var r=e("./support"),o=e("./base64"),a=e("./nodejsUtils"),i=e("./external");function s(e){return e}function l(e,t){for(var n=0;n<e.length;++n)t[n]=255&e.charCodeAt(n);return t}e("setimmediate"),n.newBlob=function(e,t){n.checkSupport("blob");try{return new Blob([e],{type:t})}catch(n){try{var r=new(self.BlobBuilder||self.WebKitBlobBuilder||self.MozBlobBuilder||self.MSBlobBuilder);return r.append(e),r.getBlob(t)}catch(e){throw new Error("Bug : can't construct the Blob.")}}};var c={stringifyByChunk:function(e,t,n){var r=[],o=0,a=e.length;if(a<=n)return String.fromCharCode.apply(null,e);for(;o<a;)"array"===t||"nodebuffer"===t?r.push(String.fromCharCode.apply(null,e.slice(o,Math.min(o+n,a)))):r.push(String.fromCharCode.apply(null,e.subarray(o,Math.min(o+n,a)))),o+=n;return r.join("")},stringifyByChar:function(e){for(var t="",n=0;n<e.length;n++)t+=String.fromCharCode(e[n]);return t},applyCanBeUsed:{uint8array:function(){try{return r.uint8array&&1===String.fromCharCode.apply(null,new Uint8Array(1)).length}catch(e){return!1}}(),nodebuffer:function(){try{return r.nodebuffer&&1===String.fromCharCode.apply(null,a.allocBuffer(1)).length}catch(e){return!1}}()}};function d(e){var t=65536,r=n.getTypeOf(e),o=!0;if("uint8array"===r?o=c.applyCanBeUsed.uint8array:"nodebuffer"===r&&(o=c.applyCanBeUsed.nodebuffer),o)for(;1<t;)try{return c.stringifyByChunk(e,r,t)}catch(e){t=Math.floor(t/2)}return c.stringifyByChar(e)}function u(e,t){for(var n=0;n<e.length;n++)t[n]=e[n];return t}n.applyFromCharCode=d;var h={};h.string={string:s,array:function(e){return l(e,new Array(e.length))},arraybuffer:function(e){return h.string.uint8array(e).buffer},uint8array:function(e){return l(e,new Uint8Array(e.length))},nodebuffer:function(e){return l(e,a.allocBuffer(e.length))}},h.array={string:d,array:s,arraybuffer:function(e){return new Uint8Array(e).buffer},uint8array:function(e){return new Uint8Array(e)},nodebuffer:function(e){return a.newBufferFrom(e)}},h.arraybuffer={string:function(e){return d(new Uint8Array(e))},array:function(e){return u(new Uint8Array(e),new Array(e.byteLength))},arraybuffer:s,uint8array:function(e){return new Uint8Array(e)},nodebuffer:function(e){return a.newBufferFrom(new Uint8Array(e))}},h.uint8array={string:d,array:function(e){return u(e,new Array(e.length))},arraybuffer:function(e){return e.buffer},uint8array:s,nodebuffer:function(e){return a.newBufferFrom(e)}},h.nodebuffer={string:d,array:function(e){return u(e,new Array(e.length))},arraybuffer:function(e){return h.nodebuffer.uint8array(e).buffer},uint8array:function(e){return u(e,new Uint8Array(e.length))},nodebuffer:s},n.transformTo=function(e,t){if(t=t||"",!e)return t;n.checkSupport(e);var r=n.getTypeOf(t);return h[r][e](t)},n.resolve=function(e){for(var t=e.split("/"),n=[],r=0;r<t.length;r++){var o=t[r];"."===o||""===o&&0!==r&&r!==t.length-1||(".."===o?n.pop():n.push(o))}return n.join("/")},n.getTypeOf=function(e){return"string"==typeof e?"string":"[object Array]"===Object.prototype.toString.call(e)?"array":r.nodebuffer&&a.isBuffer(e)?"nodebuffer":r.uint8array&&e instanceof Uint8Array?"uint8array":r.arraybuffer&&e instanceof ArrayBuffer?"arraybuffer":void 0},n.checkSupport=function(e){if(!r[e.toLowerCase()])throw new Error(e+" is not supported by this platform")},n.MAX_VALUE_16BITS=65535,n.MAX_VALUE_32BITS=-1,n.pretty=function(e){var t,n,r="";for(n=0;n<(e||"").length;n++)r+="\\x"+((t=e.charCodeAt(n))<16?"0":"")+t.toString(16).toUpperCase();return r},n.delay=function(e,t,n){setImmediate((function(){e.apply(n||null,t||[])}))},n.inherits=function(e,t){function n(){}n.prototype=t.prototype,e.prototype=new n},n.extend=function(){var e,t,n={};for(e=0;e<arguments.length;e++)for(t in arguments[e])Object.prototype.hasOwnProperty.call(arguments[e],t)&&void 0===n[t]&&(n[t]=arguments[e][t]);return n},n.prepareContent=function(e,t,a,s,c){return i.Promise.resolve(t).then((function(e){return r.blob&&(e instanceof Blob||-1!==["[object File]","[object Blob]"].indexOf(Object.prototype.toString.call(e)))&&"undefined"!=typeof FileReader?new i.Promise((function(t,n){var r=new FileReader;r.onload=function(e){t(e.target.result)},r.onerror=function(e){n(e.target.error)},r.readAsArrayBuffer(e)})):e})).then((function(t){var d=n.getTypeOf(t);return d?("arraybuffer"===d?t=n.transformTo("uint8array",t):"string"===d&&(c?t=o.decode(t):a&&!0!==s&&(t=function(e){return l(e,r.uint8array?new Uint8Array(e.length):new Array(e.length))}(t))),t):i.Promise.reject(new Error("Can't read the data of '"+e+"'. Is it in a supported JavaScript type (String, Blob, ArrayBuffer, etc) ?"))}))}},{"./base64":1,"./external":6,"./nodejsUtils":14,"./support":30,setimmediate:54}],33:[function(e,t,n){"use strict";var r=e("./reader/readerFor"),o=e("./utils"),a=e("./signature"),i=e("./zipEntry"),s=e("./support");function l(e){this.files=[],this.loadOptions=e}l.prototype={checkSignature:function(e){if(!this.reader.readAndCheckSignature(e)){this.reader.index-=4;var t=this.reader.readString(4);throw new Error("Corrupted zip or bug: unexpected signature ("+o.pretty(t)+", expected "+o.pretty(e)+")")}},isSignature:function(e,t){var n=this.reader.index;this.reader.setIndex(e);var r=this.reader.readString(4)===t;return this.reader.setIndex(n),r},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2);var e=this.reader.readData(this.zipCommentLength),t=s.uint8array?"uint8array":"array",n=o.transformTo(t,e);this.zipComment=this.loadOptions.decodeFileName(n)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.reader.skip(4),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var e,t,n,r=this.zip64EndOfCentralSize-44;0<r;)e=this.reader.readInt(2),t=this.reader.readInt(4),n=this.reader.readData(t),this.zip64ExtensibleData[e]={id:e,length:t,value:n}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),1<this.disksCount)throw new Error("Multi-volumes zip are not supported")},readLocalFiles:function(){var e,t;for(e=0;e<this.files.length;e++)t=this.files[e],this.reader.setIndex(t.localHeaderOffset),this.checkSignature(a.LOCAL_FILE_HEADER),t.readLocalPart(this.reader),t.handleUTF8(),t.processAttributes()},readCentralDir:function(){var e;for(this.reader.setIndex(this.centralDirOffset);this.reader.readAndCheckSignature(a.CENTRAL_FILE_HEADER);)(e=new i({zip64:this.zip64},this.loadOptions)).readCentralPart(this.reader),this.files.push(e);if(this.centralDirRecords!==this.files.length&&0!==this.centralDirRecords&&0===this.files.length)throw new Error("Corrupted zip or bug: expected "+this.centralDirRecords+" records in central dir, got "+this.files.length)},readEndOfCentral:function(){var e=this.reader.lastIndexOfSignature(a.CENTRAL_DIRECTORY_END);if(e<0)throw this.isSignature(0,a.LOCAL_FILE_HEADER)?new Error("Corrupted zip: can't find end of central directory"):new Error("Can't find end of central directory : is this a zip file ? If it is, see https://stuk.github.io/jszip/documentation/howto/read_zip.html");this.reader.setIndex(e);var t=e;if(this.checkSignature(a.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===o.MAX_VALUE_16BITS||this.diskWithCentralDirStart===o.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===o.MAX_VALUE_16BITS||this.centralDirRecords===o.MAX_VALUE_16BITS||this.centralDirSize===o.MAX_VALUE_32BITS||this.centralDirOffset===o.MAX_VALUE_32BITS){if(this.zip64=!0,(e=this.reader.lastIndexOfSignature(a.ZIP64_CENTRAL_DIRECTORY_LOCATOR))<0)throw new Error("Corrupted zip: can't find the ZIP64 end of central directory locator");if(this.reader.setIndex(e),this.checkSignature(a.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,a.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(a.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error("Corrupted zip: can't find the ZIP64 end of central directory");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(a.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}var n=this.centralDirOffset+this.centralDirSize;this.zip64&&(n+=20,n+=12+this.zip64EndOfCentralSize);var r=t-n;if(0<r)this.isSignature(t,a.CENTRAL_FILE_HEADER)||(this.reader.zero=r);else if(r<0)throw new Error("Corrupted zip: missing "+Math.abs(r)+" bytes.")},prepareReader:function(e){this.reader=r(e)},load:function(e){this.prepareReader(e),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},t.exports=l},{"./reader/readerFor":22,"./signature":23,"./support":30,"./utils":32,"./zipEntry":34}],34:[function(e,t,n){"use strict";var r=e("./reader/readerFor"),o=e("./utils"),a=e("./compressedObject"),i=e("./crc32"),s=e("./utf8"),l=e("./compressions"),c=e("./support");function d(e,t){this.options=e,this.loadOptions=t}d.prototype={isEncrypted:function(){return 1==(1&this.bitFlag)},useUTF8:function(){return 2048==(2048&this.bitFlag)},readLocalPart:function(e){var t,n;if(e.skip(22),this.fileNameLength=e.readInt(2),n=e.readInt(2),this.fileName=e.readData(this.fileNameLength),e.skip(n),-1===this.compressedSize||-1===this.uncompressedSize)throw new Error("Bug or corrupted zip : didn't get enough information from the central directory (compressedSize === -1 || uncompressedSize === -1)");if(null===(t=function(e){for(var t in l)if(Object.prototype.hasOwnProperty.call(l,t)&&l[t].magic===e)return l[t];return null}(this.compressionMethod)))throw new Error("Corrupted zip : compression "+o.pretty(this.compressionMethod)+" unknown (inner file : "+o.transformTo("string",this.fileName)+")");this.decompressed=new a(this.compressedSize,this.uncompressedSize,this.crc32,t,e.readData(this.compressedSize))},readCentralPart:function(e){this.versionMadeBy=e.readInt(2),e.skip(2),this.bitFlag=e.readInt(2),this.compressionMethod=e.readString(2),this.date=e.readDate(),this.crc32=e.readInt(4),this.compressedSize=e.readInt(4),this.uncompressedSize=e.readInt(4);var t=e.readInt(2);if(this.extraFieldsLength=e.readInt(2),this.fileCommentLength=e.readInt(2),this.diskNumberStart=e.readInt(2),this.internalFileAttributes=e.readInt(2),this.externalFileAttributes=e.readInt(4),this.localHeaderOffset=e.readInt(4),this.isEncrypted())throw new Error("Encrypted zip are not supported");e.skip(t),this.readExtraFields(e),this.parseZIP64ExtraField(e),this.fileComment=e.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var e=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),0==e&&(this.dosPermissions=63&this.externalFileAttributes),3==e&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||"/"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(){if(this.extraFields[1]){var e=r(this.extraFields[1].value);this.uncompressedSize===o.MAX_VALUE_32BITS&&(this.uncompressedSize=e.readInt(8)),this.compressedSize===o.MAX_VALUE_32BITS&&(this.compressedSize=e.readInt(8)),this.localHeaderOffset===o.MAX_VALUE_32BITS&&(this.localHeaderOffset=e.readInt(8)),this.diskNumberStart===o.MAX_VALUE_32BITS&&(this.diskNumberStart=e.readInt(4))}},readExtraFields:function(e){var t,n,r,o=e.index+this.extraFieldsLength;for(this.extraFields||(this.extraFields={});e.index+4<o;)t=e.readInt(2),n=e.readInt(2),r=e.readData(n),this.extraFields[t]={id:t,length:n,value:r};e.setIndex(o)},handleUTF8:function(){var e=c.uint8array?"uint8array":"array";if(this.useUTF8())this.fileNameStr=s.utf8decode(this.fileName),this.fileCommentStr=s.utf8decode(this.fileComment);else{var t=this.findExtraFieldUnicodePath();if(null!==t)this.fileNameStr=t;else{var n=o.transformTo(e,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(n)}var r=this.findExtraFieldUnicodeComment();if(null!==r)this.fileCommentStr=r;else{var a=o.transformTo(e,this.fileComment);this.fileCommentStr=this.loadOptions.decodeFileName(a)}}},findExtraFieldUnicodePath:function(){var e=this.extraFields[28789];if(e){var t=r(e.value);return 1!==t.readInt(1)||i(this.fileName)!==t.readInt(4)?null:s.utf8decode(t.readData(e.length-5))}return null},findExtraFieldUnicodeComment:function(){var e=this.extraFields[25461];if(e){var t=r(e.value);return 1!==t.readInt(1)||i(this.fileComment)!==t.readInt(4)?null:s.utf8decode(t.readData(e.length-5))}return null}},t.exports=d},{"./compressedObject":2,"./compressions":3,"./crc32":4,"./reader/readerFor":22,"./support":30,"./utf8":31,"./utils":32}],35:[function(e,t,n){"use strict";function r(e,t,n){this.name=e,this.dir=n.dir,this.date=n.date,this.comment=n.comment,this.unixPermissions=n.unixPermissions,this.dosPermissions=n.dosPermissions,this._data=t,this._dataBinary=n.binary,this.options={compression:n.compression,compressionOptions:n.compressionOptions}}var o=e("./stream/StreamHelper"),a=e("./stream/DataWorker"),i=e("./utf8"),s=e("./compressedObject"),l=e("./stream/GenericWorker");r.prototype={internalStream:function(e){var t=null,n="string";try{if(!e)throw new Error("No output type specified.");var r="string"===(n=e.toLowerCase())||"text"===n;"binarystring"!==n&&"text"!==n||(n="string"),t=this._decompressWorker();var a=!this._dataBinary;a&&!r&&(t=t.pipe(new i.Utf8EncodeWorker)),!a&&r&&(t=t.pipe(new i.Utf8DecodeWorker))}catch(e){(t=new l("error")).error(e)}return new o(t,n,"")},async:function(e,t){return this.internalStream(e).accumulate(t)},nodeStream:function(e,t){return this.internalStream(e||"nodebuffer").toNodejsStream(t)},_compressWorker:function(e,t){if(this._data instanceof s&&this._data.compression.magic===e.magic)return this._data.getCompressedWorker();var n=this._decompressWorker();return this._dataBinary||(n=n.pipe(new i.Utf8EncodeWorker)),s.createWorkerFrom(n,e,t)},_decompressWorker:function(){return this._data instanceof s?this._data.getContentWorker():this._data instanceof l?this._data:new a(this._data)}};for(var c=["asText","asBinary","asNodeBuffer","asUint8Array","asArrayBuffer"],d=function(){throw new Error("This method has been removed in JSZip 3.0, please check the upgrade guide.")},u=0;u<c.length;u++)r.prototype[c[u]]=d;t.exports=r},{"./compressedObject":2,"./stream/DataWorker":27,"./stream/GenericWorker":28,"./stream/StreamHelper":29,"./utf8":31}],36:[function(e,t,r){(function(e){"use strict";var n,r,o=e.MutationObserver||e.WebKitMutationObserver;if(o){var a=0,i=new o(d),s=e.document.createTextNode("");i.observe(s,{characterData:!0}),n=function(){s.data=a=++a%2}}else if(e.setImmediate||void 0===e.MessageChannel)n="document"in e&&"onreadystatechange"in e.document.createElement("script")?function(){var t=e.document.createElement("script");t.onreadystatechange=function(){d(),t.onreadystatechange=null,t.parentNode.removeChild(t),t=null},e.document.documentElement.appendChild(t)}:function(){setTimeout(d,0)};else{var l=new e.MessageChannel;l.port1.onmessage=d,n=function(){l.port2.postMessage(0)}}var c=[];function d(){var e,t;r=!0;for(var n=c.length;n;){for(t=c,c=[],e=-1;++e<n;)t[e]();n=c.length}r=!1}t.exports=function(e){1!==c.push(e)||r||n()}}).call(this,void 0!==n.g?n.g:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}],37:[function(e,t,n){"use strict";var r=e("immediate");function o(){}var a={},i=["REJECTED"],s=["FULFILLED"],l=["PENDING"];function c(e){if("function"!=typeof e)throw new TypeError("resolver must be a function");this.state=l,this.queue=[],this.outcome=void 0,e!==o&&p(this,e)}function d(e,t,n){this.promise=e,"function"==typeof t&&(this.onFulfilled=t,this.callFulfilled=this.otherCallFulfilled),"function"==typeof n&&(this.onRejected=n,this.callRejected=this.otherCallRejected)}function u(e,t,n){r((function(){var r;try{r=t(n)}catch(r){return a.reject(e,r)}r===e?a.reject(e,new TypeError("Cannot resolve promise with itself")):a.resolve(e,r)}))}function h(e){var t=e&&e.then;if(e&&("object"==typeof e||"function"==typeof e)&&"function"==typeof t)return function(){t.apply(e,arguments)}}function p(e,t){var n=!1;function r(t){n||(n=!0,a.reject(e,t))}function o(t){n||(n=!0,a.resolve(e,t))}var i=m((function(){t(o,r)}));"error"===i.status&&r(i.value)}function m(e,t){var n={};try{n.value=e(t),n.status="success"}catch(e){n.status="error",n.value=e}return n}(t.exports=c).prototype.finally=function(e){if("function"!=typeof e)return this;var t=this.constructor;return this.then((function(n){return t.resolve(e()).then((function(){return n}))}),(function(n){return t.resolve(e()).then((function(){throw n}))}))},c.prototype.catch=function(e){return this.then(null,e)},c.prototype.then=function(e,t){if("function"!=typeof e&&this.state===s||"function"!=typeof t&&this.state===i)return this;var n=new this.constructor(o);return this.state!==l?u(n,this.state===s?e:t,this.outcome):this.queue.push(new d(n,e,t)),n},d.prototype.callFulfilled=function(e){a.resolve(this.promise,e)},d.prototype.otherCallFulfilled=function(e){u(this.promise,this.onFulfilled,e)},d.prototype.callRejected=function(e){a.reject(this.promise,e)},d.prototype.otherCallRejected=function(e){u(this.promise,this.onRejected,e)},a.resolve=function(e,t){var n=m(h,t);if("error"===n.status)return a.reject(e,n.value);var r=n.value;if(r)p(e,r);else{e.state=s,e.outcome=t;for(var o=-1,i=e.queue.length;++o<i;)e.queue[o].callFulfilled(t)}return e},a.reject=function(e,t){e.state=i,e.outcome=t;for(var n=-1,r=e.queue.length;++n<r;)e.queue[n].callRejected(t);return e},c.resolve=function(e){return e instanceof this?e:a.resolve(new this(o),e)},c.reject=function(e){var t=new this(o);return a.reject(t,e)},c.all=function(e){var t=this;if("[object Array]"!==Object.prototype.toString.call(e))return this.reject(new TypeError("must be an array"));var n=e.length,r=!1;if(!n)return this.resolve([]);for(var i=new Array(n),s=0,l=-1,c=new this(o);++l<n;)d(e[l],l);return c;function d(e,o){t.resolve(e).then((function(e){i[o]=e,++s!==n||r||(r=!0,a.resolve(c,i))}),(function(e){r||(r=!0,a.reject(c,e))}))}},c.race=function(e){if("[object Array]"!==Object.prototype.toString.call(e))return this.reject(new TypeError("must be an array"));var t=e.length,n=!1;if(!t)return this.resolve([]);for(var r,i=-1,s=new this(o);++i<t;)r=e[i],this.resolve(r).then((function(e){n||(n=!0,a.resolve(s,e))}),(function(e){n||(n=!0,a.reject(s,e))}));return s}},{immediate:36}],38:[function(e,t,n){"use strict";var r={};(0,e("./lib/utils/common").assign)(r,e("./lib/deflate"),e("./lib/inflate"),e("./lib/zlib/constants")),t.exports=r},{"./lib/deflate":39,"./lib/inflate":40,"./lib/utils/common":41,"./lib/zlib/constants":44}],39:[function(e,t,n){"use strict";var r=e("./zlib/deflate"),o=e("./utils/common"),a=e("./utils/strings"),i=e("./zlib/messages"),s=e("./zlib/zstream"),l=Object.prototype.toString,c=0,d=-1,u=0,h=8;function p(e){if(!(this instanceof p))return new p(e);this.options=o.assign({level:d,method:h,chunkSize:16384,windowBits:15,memLevel:8,strategy:u,to:""},e||{});var t=this.options;t.raw&&0<t.windowBits?t.windowBits=-t.windowBits:t.gzip&&0<t.windowBits&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new s,this.strm.avail_out=0;var n=r.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==c)throw new Error(i[n]);if(t.header&&r.deflateSetHeader(this.strm,t.header),t.dictionary){var m;if(m="string"==typeof t.dictionary?a.string2buf(t.dictionary):"[object ArrayBuffer]"===l.call(t.dictionary)?new Uint8Array(t.dictionary):t.dictionary,(n=r.deflateSetDictionary(this.strm,m))!==c)throw new Error(i[n]);this._dict_set=!0}}function m(e,t){var n=new p(t);if(n.push(e,!0),n.err)throw n.msg||i[n.err];return n.result}p.prototype.push=function(e,t){var n,i,s=this.strm,d=this.options.chunkSize;if(this.ended)return!1;i=t===~~t?t:!0===t?4:0,"string"==typeof e?s.input=a.string2buf(e):"[object ArrayBuffer]"===l.call(e)?s.input=new Uint8Array(e):s.input=e,s.next_in=0,s.avail_in=s.input.length;do{if(0===s.avail_out&&(s.output=new o.Buf8(d),s.next_out=0,s.avail_out=d),1!==(n=r.deflate(s,i))&&n!==c)return this.onEnd(n),!(this.ended=!0);0!==s.avail_out&&(0!==s.avail_in||4!==i&&2!==i)||("string"===this.options.to?this.onData(a.buf2binstring(o.shrinkBuf(s.output,s.next_out))):this.onData(o.shrinkBuf(s.output,s.next_out)))}while((0<s.avail_in||0===s.avail_out)&&1!==n);return 4===i?(n=r.deflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===c):2!==i||(this.onEnd(c),!(s.avail_out=0))},p.prototype.onData=function(e){this.chunks.push(e)},p.prototype.onEnd=function(e){e===c&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=o.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},n.Deflate=p,n.deflate=m,n.deflateRaw=function(e,t){return(t=t||{}).raw=!0,m(e,t)},n.gzip=function(e,t){return(t=t||{}).gzip=!0,m(e,t)}},{"./utils/common":41,"./utils/strings":42,"./zlib/deflate":46,"./zlib/messages":51,"./zlib/zstream":53}],40:[function(e,t,n){"use strict";var r=e("./zlib/inflate"),o=e("./utils/common"),a=e("./utils/strings"),i=e("./zlib/constants"),s=e("./zlib/messages"),l=e("./zlib/zstream"),c=e("./zlib/gzheader"),d=Object.prototype.toString;function u(e){if(!(this instanceof u))return new u(e);this.options=o.assign({chunkSize:16384,windowBits:0,to:""},e||{});var t=this.options;t.raw&&0<=t.windowBits&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(0<=t.windowBits&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),15<t.windowBits&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new l,this.strm.avail_out=0;var n=r.inflateInit2(this.strm,t.windowBits);if(n!==i.Z_OK)throw new Error(s[n]);this.header=new c,r.inflateGetHeader(this.strm,this.header)}function h(e,t){var n=new u(t);if(n.push(e,!0),n.err)throw n.msg||s[n.err];return n.result}u.prototype.push=function(e,t){var n,s,l,c,u,h,p=this.strm,m=this.options.chunkSize,f=this.options.dictionary,g=!1;if(this.ended)return!1;s=t===~~t?t:!0===t?i.Z_FINISH:i.Z_NO_FLUSH,"string"==typeof e?p.input=a.binstring2buf(e):"[object ArrayBuffer]"===d.call(e)?p.input=new Uint8Array(e):p.input=e,p.next_in=0,p.avail_in=p.input.length;do{if(0===p.avail_out&&(p.output=new o.Buf8(m),p.next_out=0,p.avail_out=m),(n=r.inflate(p,i.Z_NO_FLUSH))===i.Z_NEED_DICT&&f&&(h="string"==typeof f?a.string2buf(f):"[object ArrayBuffer]"===d.call(f)?new Uint8Array(f):f,n=r.inflateSetDictionary(this.strm,h)),n===i.Z_BUF_ERROR&&!0===g&&(n=i.Z_OK,g=!1),n!==i.Z_STREAM_END&&n!==i.Z_OK)return this.onEnd(n),!(this.ended=!0);p.next_out&&(0!==p.avail_out&&n!==i.Z_STREAM_END&&(0!==p.avail_in||s!==i.Z_FINISH&&s!==i.Z_SYNC_FLUSH)||("string"===this.options.to?(l=a.utf8border(p.output,p.next_out),c=p.next_out-l,u=a.buf2string(p.output,l),p.next_out=c,p.avail_out=m-c,c&&o.arraySet(p.output,p.output,l,c,0),this.onData(u)):this.onData(o.shrinkBuf(p.output,p.next_out)))),0===p.avail_in&&0===p.avail_out&&(g=!0)}while((0<p.avail_in||0===p.avail_out)&&n!==i.Z_STREAM_END);return n===i.Z_STREAM_END&&(s=i.Z_FINISH),s===i.Z_FINISH?(n=r.inflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===i.Z_OK):s!==i.Z_SYNC_FLUSH||(this.onEnd(i.Z_OK),!(p.avail_out=0))},u.prototype.onData=function(e){this.chunks.push(e)},u.prototype.onEnd=function(e){e===i.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=o.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},n.Inflate=u,n.inflate=h,n.inflateRaw=function(e,t){return(t=t||{}).raw=!0,h(e,t)},n.ungzip=h},{"./utils/common":41,"./utils/strings":42,"./zlib/constants":44,"./zlib/gzheader":47,"./zlib/inflate":49,"./zlib/messages":51,"./zlib/zstream":53}],41:[function(e,t,n){"use strict";var r="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;n.assign=function(e){for(var t=Array.prototype.slice.call(arguments,1);t.length;){var n=t.shift();if(n){if("object"!=typeof n)throw new TypeError(n+"must be non-object");for(var r in n)n.hasOwnProperty(r)&&(e[r]=n[r])}}return e},n.shrinkBuf=function(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)};var o={arraySet:function(e,t,n,r,o){if(t.subarray&&e.subarray)e.set(t.subarray(n,n+r),o);else for(var a=0;a<r;a++)e[o+a]=t[n+a]},flattenChunks:function(e){var t,n,r,o,a,i;for(t=r=0,n=e.length;t<n;t++)r+=e[t].length;for(i=new Uint8Array(r),t=o=0,n=e.length;t<n;t++)a=e[t],i.set(a,o),o+=a.length;return i}},a={arraySet:function(e,t,n,r,o){for(var a=0;a<r;a++)e[o+a]=t[n+a]},flattenChunks:function(e){return[].concat.apply([],e)}};n.setTyped=function(e){e?(n.Buf8=Uint8Array,n.Buf16=Uint16Array,n.Buf32=Int32Array,n.assign(n,o)):(n.Buf8=Array,n.Buf16=Array,n.Buf32=Array,n.assign(n,a))},n.setTyped(r)},{}],42:[function(e,t,n){"use strict";var r=e("./common"),o=!0,a=!0;try{String.fromCharCode.apply(null,[0])}catch(e){o=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){a=!1}for(var i=new r.Buf8(256),s=0;s<256;s++)i[s]=252<=s?6:248<=s?5:240<=s?4:224<=s?3:192<=s?2:1;function l(e,t){if(t<65537&&(e.subarray&&a||!e.subarray&&o))return String.fromCharCode.apply(null,r.shrinkBuf(e,t));for(var n="",i=0;i<t;i++)n+=String.fromCharCode(e[i]);return n}i[254]=i[254]=1,n.string2buf=function(e){var t,n,o,a,i,s=e.length,l=0;for(a=0;a<s;a++)55296==(64512&(n=e.charCodeAt(a)))&&a+1<s&&56320==(64512&(o=e.charCodeAt(a+1)))&&(n=65536+(n-55296<<10)+(o-56320),a++),l+=n<128?1:n<2048?2:n<65536?3:4;for(t=new r.Buf8(l),a=i=0;i<l;a++)55296==(64512&(n=e.charCodeAt(a)))&&a+1<s&&56320==(64512&(o=e.charCodeAt(a+1)))&&(n=65536+(n-55296<<10)+(o-56320),a++),n<128?t[i++]=n:(n<2048?t[i++]=192|n>>>6:(n<65536?t[i++]=224|n>>>12:(t[i++]=240|n>>>18,t[i++]=128|n>>>12&63),t[i++]=128|n>>>6&63),t[i++]=128|63&n);return t},n.buf2binstring=function(e){return l(e,e.length)},n.binstring2buf=function(e){for(var t=new r.Buf8(e.length),n=0,o=t.length;n<o;n++)t[n]=e.charCodeAt(n);return t},n.buf2string=function(e,t){var n,r,o,a,s=t||e.length,c=new Array(2*s);for(n=r=0;n<s;)if((o=e[n++])<128)c[r++]=o;else if(4<(a=i[o]))c[r++]=65533,n+=a-1;else{for(o&=2===a?31:3===a?15:7;1<a&&n<s;)o=o<<6|63&e[n++],a--;1<a?c[r++]=65533:o<65536?c[r++]=o:(o-=65536,c[r++]=55296|o>>10&1023,c[r++]=56320|1023&o)}return l(c,r)},n.utf8border=function(e,t){var n;for((t=t||e.length)>e.length&&(t=e.length),n=t-1;0<=n&&128==(192&e[n]);)n--;return n<0||0===n?t:n+i[e[n]]>t?n:t}},{"./common":41}],43:[function(e,t,n){"use strict";t.exports=function(e,t,n,r){for(var o=65535&e|0,a=e>>>16&65535|0,i=0;0!==n;){for(n-=i=2e3<n?2e3:n;a=a+(o=o+t[r++]|0)|0,--i;);o%=65521,a%=65521}return o|a<<16|0}},{}],44:[function(e,t,n){"use strict";t.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],45:[function(e,t,n){"use strict";var r=function(){for(var e,t=[],n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=1&e?3988292384^e>>>1:e>>>1;t[n]=e}return t}();t.exports=function(e,t,n,o){var a=r,i=o+n;e^=-1;for(var s=o;s<i;s++)e=e>>>8^a[255&(e^t[s])];return-1^e}},{}],46:[function(e,t,n){"use strict";var r,o=e("../utils/common"),a=e("./trees"),i=e("./adler32"),s=e("./crc32"),l=e("./messages"),c=0,d=4,u=0,h=-2,p=2,m=8,f=286,g=30,A=19,b=2*f+1,C=15,y=3,v=258,w=v+y+1,k=42,E=113,x=1,S=2,T=3,B=4;function _(e,t){return e.msg=l[t],t}function I(e){return(e<<1)-(4<e?9:0)}function P(e){for(var t=e.length;0<=--t;)e[t]=0}function N(e){var t=e.state,n=t.pending;n>e.avail_out&&(n=e.avail_out),0!==n&&(o.arraySet(e.output,t.pending_buf,t.pending_out,n,e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,0===t.pending&&(t.pending_out=0))}function M(e,t){a._tr_flush_block(e,0<=e.block_start?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,N(e.strm)}function F(e,t){e.pending_buf[e.pending++]=t}function R(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function D(e,t){var n,r,o=e.max_chain_length,a=e.strstart,i=e.prev_length,s=e.nice_match,l=e.strstart>e.w_size-w?e.strstart-(e.w_size-w):0,c=e.window,d=e.w_mask,u=e.prev,h=e.strstart+v,p=c[a+i-1],m=c[a+i];e.prev_length>=e.good_match&&(o>>=2),s>e.lookahead&&(s=e.lookahead);do{if(c[(n=t)+i]===m&&c[n+i-1]===p&&c[n]===c[a]&&c[++n]===c[a+1]){a+=2,n++;do{}while(c[++a]===c[++n]&&c[++a]===c[++n]&&c[++a]===c[++n]&&c[++a]===c[++n]&&c[++a]===c[++n]&&c[++a]===c[++n]&&c[++a]===c[++n]&&c[++a]===c[++n]&&a<h);if(r=v-(h-a),a=h-v,i<r){if(e.match_start=t,s<=(i=r))break;p=c[a+i-1],m=c[a+i]}}}while((t=u[t&d])>l&&0!=--o);return i<=e.lookahead?i:e.lookahead}function L(e){var t,n,r,a,l,c,d,u,h,p,m=e.w_size;do{if(a=e.window_size-e.lookahead-e.strstart,e.strstart>=m+(m-w)){for(o.arraySet(e.window,e.window,m,m,0),e.match_start-=m,e.strstart-=m,e.block_start-=m,t=n=e.hash_size;r=e.head[--t],e.head[t]=m<=r?r-m:0,--n;);for(t=n=m;r=e.prev[--t],e.prev[t]=m<=r?r-m:0,--n;);a+=m}if(0===e.strm.avail_in)break;if(c=e.strm,d=e.window,u=e.strstart+e.lookahead,p=void 0,(h=a)<(p=c.avail_in)&&(p=h),n=0===p?0:(c.avail_in-=p,o.arraySet(d,c.input,c.next_in,p,u),1===c.state.wrap?c.adler=i(c.adler,d,p,u):2===c.state.wrap&&(c.adler=s(c.adler,d,p,u)),c.next_in+=p,c.total_in+=p,p),e.lookahead+=n,e.lookahead+e.insert>=y)for(l=e.strstart-e.insert,e.ins_h=e.window[l],e.ins_h=(e.ins_h<<e.hash_shift^e.window[l+1])&e.hash_mask;e.insert&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[l+y-1])&e.hash_mask,e.prev[l&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=l,l++,e.insert--,!(e.lookahead+e.insert<y)););}while(e.lookahead<w&&0!==e.strm.avail_in)}function O(e,t){for(var n,r;;){if(e.lookahead<w){if(L(e),e.lookahead<w&&t===c)return x;if(0===e.lookahead)break}if(n=0,e.lookahead>=y&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+y-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!==n&&e.strstart-n<=e.w_size-w&&(e.match_length=D(e,n)),e.match_length>=y)if(r=a._tr_tally(e,e.strstart-e.match_start,e.match_length-y),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=y){for(e.match_length--;e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+y-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart,0!=--e.match_length;);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+1])&e.hash_mask;else r=a._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(M(e,!1),0===e.strm.avail_out))return x}return e.insert=e.strstart<y-1?e.strstart:y-1,t===d?(M(e,!0),0===e.strm.avail_out?T:B):e.last_lit&&(M(e,!1),0===e.strm.avail_out)?x:S}function U(e,t){for(var n,r,o;;){if(e.lookahead<w){if(L(e),e.lookahead<w&&t===c)return x;if(0===e.lookahead)break}if(n=0,e.lookahead>=y&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+y-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=y-1,0!==n&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-w&&(e.match_length=D(e,n),e.match_length<=5&&(1===e.strategy||e.match_length===y&&4096<e.strstart-e.match_start)&&(e.match_length=y-1)),e.prev_length>=y&&e.match_length<=e.prev_length){for(o=e.strstart+e.lookahead-y,r=a._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-y),e.lookahead-=e.prev_length-1,e.prev_length-=2;++e.strstart<=o&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+y-1])&e.hash_mask,n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),0!=--e.prev_length;);if(e.match_available=0,e.match_length=y-1,e.strstart++,r&&(M(e,!1),0===e.strm.avail_out))return x}else if(e.match_available){if((r=a._tr_tally(e,0,e.window[e.strstart-1]))&&M(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return x}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=a._tr_tally(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<y-1?e.strstart:y-1,t===d?(M(e,!0),0===e.strm.avail_out?T:B):e.last_lit&&(M(e,!1),0===e.strm.avail_out)?x:S}function z(e,t,n,r,o){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=r,this.func=o}function G(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=m,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new o.Buf16(2*b),this.dyn_dtree=new o.Buf16(2*(2*g+1)),this.bl_tree=new o.Buf16(2*(2*A+1)),P(this.dyn_ltree),P(this.dyn_dtree),P(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new o.Buf16(C+1),this.heap=new o.Buf16(2*f+1),P(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new o.Buf16(2*f+1),P(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function W(e){var t;return e&&e.state?(e.total_in=e.total_out=0,e.data_type=p,(t=e.state).pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?k:E,e.adler=2===t.wrap?0:1,t.last_flush=c,a._tr_init(t),u):_(e,h)}function H(e){var t=W(e);return t===u&&function(e){e.window_size=2*e.w_size,P(e.head),e.max_lazy_match=r[e.level].max_lazy,e.good_match=r[e.level].good_length,e.nice_match=r[e.level].nice_length,e.max_chain_length=r[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=y-1,e.match_available=0,e.ins_h=0}(e.state),t}function V(e,t,n,r,a,i){if(!e)return h;var s=1;if(-1===t&&(t=6),r<0?(s=0,r=-r):15<r&&(s=2,r-=16),a<1||9<a||n!==m||r<8||15<r||t<0||9<t||i<0||4<i)return _(e,h);8===r&&(r=9);var l=new G;return(e.state=l).strm=e,l.wrap=s,l.gzhead=null,l.w_bits=r,l.w_size=1<<l.w_bits,l.w_mask=l.w_size-1,l.hash_bits=a+7,l.hash_size=1<<l.hash_bits,l.hash_mask=l.hash_size-1,l.hash_shift=~~((l.hash_bits+y-1)/y),l.window=new o.Buf8(2*l.w_size),l.head=new o.Buf16(l.hash_size),l.prev=new o.Buf16(l.w_size),l.lit_bufsize=1<<a+6,l.pending_buf_size=4*l.lit_bufsize,l.pending_buf=new o.Buf8(l.pending_buf_size),l.d_buf=1*l.lit_bufsize,l.l_buf=3*l.lit_bufsize,l.level=t,l.strategy=i,l.method=n,H(e)}r=[new z(0,0,0,0,(function(e,t){var n=65535;for(n>e.pending_buf_size-5&&(n=e.pending_buf_size-5);;){if(e.lookahead<=1){if(L(e),0===e.lookahead&&t===c)return x;if(0===e.lookahead)break}e.strstart+=e.lookahead,e.lookahead=0;var r=e.block_start+n;if((0===e.strstart||e.strstart>=r)&&(e.lookahead=e.strstart-r,e.strstart=r,M(e,!1),0===e.strm.avail_out))return x;if(e.strstart-e.block_start>=e.w_size-w&&(M(e,!1),0===e.strm.avail_out))return x}return e.insert=0,t===d?(M(e,!0),0===e.strm.avail_out?T:B):(e.strstart>e.block_start&&(M(e,!1),e.strm.avail_out),x)})),new z(4,4,8,4,O),new z(4,5,16,8,O),new z(4,6,32,32,O),new z(4,4,16,16,U),new z(8,16,32,32,U),new z(8,16,128,128,U),new z(8,32,128,256,U),new z(32,128,258,1024,U),new z(32,258,258,4096,U)],n.deflateInit=function(e,t){return V(e,t,m,15,8,0)},n.deflateInit2=V,n.deflateReset=H,n.deflateResetKeep=W,n.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?h:(e.state.gzhead=t,u):h},n.deflate=function(e,t){var n,o,i,l;if(!e||!e.state||5<t||t<0)return e?_(e,h):h;if(o=e.state,!e.output||!e.input&&0!==e.avail_in||666===o.status&&t!==d)return _(e,0===e.avail_out?-5:h);if(o.strm=e,n=o.last_flush,o.last_flush=t,o.status===k)if(2===o.wrap)e.adler=0,F(o,31),F(o,139),F(o,8),o.gzhead?(F(o,(o.gzhead.text?1:0)+(o.gzhead.hcrc?2:0)+(o.gzhead.extra?4:0)+(o.gzhead.name?8:0)+(o.gzhead.comment?16:0)),F(o,255&o.gzhead.time),F(o,o.gzhead.time>>8&255),F(o,o.gzhead.time>>16&255),F(o,o.gzhead.time>>24&255),F(o,9===o.level?2:2<=o.strategy||o.level<2?4:0),F(o,255&o.gzhead.os),o.gzhead.extra&&o.gzhead.extra.length&&(F(o,255&o.gzhead.extra.length),F(o,o.gzhead.extra.length>>8&255)),o.gzhead.hcrc&&(e.adler=s(e.adler,o.pending_buf,o.pending,0)),o.gzindex=0,o.status=69):(F(o,0),F(o,0),F(o,0),F(o,0),F(o,0),F(o,9===o.level?2:2<=o.strategy||o.level<2?4:0),F(o,3),o.status=E);else{var p=m+(o.w_bits-8<<4)<<8;p|=(2<=o.strategy||o.level<2?0:o.level<6?1:6===o.level?2:3)<<6,0!==o.strstart&&(p|=32),p+=31-p%31,o.status=E,R(o,p),0!==o.strstart&&(R(o,e.adler>>>16),R(o,65535&e.adler)),e.adler=1}if(69===o.status)if(o.gzhead.extra){for(i=o.pending;o.gzindex<(65535&o.gzhead.extra.length)&&(o.pending!==o.pending_buf_size||(o.gzhead.hcrc&&o.pending>i&&(e.adler=s(e.adler,o.pending_buf,o.pending-i,i)),N(e),i=o.pending,o.pending!==o.pending_buf_size));)F(o,255&o.gzhead.extra[o.gzindex]),o.gzindex++;o.gzhead.hcrc&&o.pending>i&&(e.adler=s(e.adler,o.pending_buf,o.pending-i,i)),o.gzindex===o.gzhead.extra.length&&(o.gzindex=0,o.status=73)}else o.status=73;if(73===o.status)if(o.gzhead.name){i=o.pending;do{if(o.pending===o.pending_buf_size&&(o.gzhead.hcrc&&o.pending>i&&(e.adler=s(e.adler,o.pending_buf,o.pending-i,i)),N(e),i=o.pending,o.pending===o.pending_buf_size)){l=1;break}l=o.gzindex<o.gzhead.name.length?255&o.gzhead.name.charCodeAt(o.gzindex++):0,F(o,l)}while(0!==l);o.gzhead.hcrc&&o.pending>i&&(e.adler=s(e.adler,o.pending_buf,o.pending-i,i)),0===l&&(o.gzindex=0,o.status=91)}else o.status=91;if(91===o.status)if(o.gzhead.comment){i=o.pending;do{if(o.pending===o.pending_buf_size&&(o.gzhead.hcrc&&o.pending>i&&(e.adler=s(e.adler,o.pending_buf,o.pending-i,i)),N(e),i=o.pending,o.pending===o.pending_buf_size)){l=1;break}l=o.gzindex<o.gzhead.comment.length?255&o.gzhead.comment.charCodeAt(o.gzindex++):0,F(o,l)}while(0!==l);o.gzhead.hcrc&&o.pending>i&&(e.adler=s(e.adler,o.pending_buf,o.pending-i,i)),0===l&&(o.status=103)}else o.status=103;if(103===o.status&&(o.gzhead.hcrc?(o.pending+2>o.pending_buf_size&&N(e),o.pending+2<=o.pending_buf_size&&(F(o,255&e.adler),F(o,e.adler>>8&255),e.adler=0,o.status=E)):o.status=E),0!==o.pending){if(N(e),0===e.avail_out)return o.last_flush=-1,u}else if(0===e.avail_in&&I(t)<=I(n)&&t!==d)return _(e,-5);if(666===o.status&&0!==e.avail_in)return _(e,-5);if(0!==e.avail_in||0!==o.lookahead||t!==c&&666!==o.status){var f=2===o.strategy?function(e,t){for(var n;;){if(0===e.lookahead&&(L(e),0===e.lookahead)){if(t===c)return x;break}if(e.match_length=0,n=a._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(M(e,!1),0===e.strm.avail_out))return x}return e.insert=0,t===d?(M(e,!0),0===e.strm.avail_out?T:B):e.last_lit&&(M(e,!1),0===e.strm.avail_out)?x:S}(o,t):3===o.strategy?function(e,t){for(var n,r,o,i,s=e.window;;){if(e.lookahead<=v){if(L(e),e.lookahead<=v&&t===c)return x;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=y&&0<e.strstart&&(r=s[o=e.strstart-1])===s[++o]&&r===s[++o]&&r===s[++o]){i=e.strstart+v;do{}while(r===s[++o]&&r===s[++o]&&r===s[++o]&&r===s[++o]&&r===s[++o]&&r===s[++o]&&r===s[++o]&&r===s[++o]&&o<i);e.match_length=v-(i-o),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=y?(n=a._tr_tally(e,1,e.match_length-y),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=a._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&(M(e,!1),0===e.strm.avail_out))return x}return e.insert=0,t===d?(M(e,!0),0===e.strm.avail_out?T:B):e.last_lit&&(M(e,!1),0===e.strm.avail_out)?x:S}(o,t):r[o.level].func(o,t);if(f!==T&&f!==B||(o.status=666),f===x||f===T)return 0===e.avail_out&&(o.last_flush=-1),u;if(f===S&&(1===t?a._tr_align(o):5!==t&&(a._tr_stored_block(o,0,0,!1),3===t&&(P(o.head),0===o.lookahead&&(o.strstart=0,o.block_start=0,o.insert=0))),N(e),0===e.avail_out))return o.last_flush=-1,u}return t!==d?u:o.wrap<=0?1:(2===o.wrap?(F(o,255&e.adler),F(o,e.adler>>8&255),F(o,e.adler>>16&255),F(o,e.adler>>24&255),F(o,255&e.total_in),F(o,e.total_in>>8&255),F(o,e.total_in>>16&255),F(o,e.total_in>>24&255)):(R(o,e.adler>>>16),R(o,65535&e.adler)),N(e),0<o.wrap&&(o.wrap=-o.wrap),0!==o.pending?u:1)},n.deflateEnd=function(e){var t;return e&&e.state?(t=e.state.status)!==k&&69!==t&&73!==t&&91!==t&&103!==t&&t!==E&&666!==t?_(e,h):(e.state=null,t===E?_(e,-3):u):h},n.deflateSetDictionary=function(e,t){var n,r,a,s,l,c,d,p,m=t.length;if(!e||!e.state)return h;if(2===(s=(n=e.state).wrap)||1===s&&n.status!==k||n.lookahead)return h;for(1===s&&(e.adler=i(e.adler,t,m,0)),n.wrap=0,m>=n.w_size&&(0===s&&(P(n.head),n.strstart=0,n.block_start=0,n.insert=0),p=new o.Buf8(n.w_size),o.arraySet(p,t,m-n.w_size,n.w_size,0),t=p,m=n.w_size),l=e.avail_in,c=e.next_in,d=e.input,e.avail_in=m,e.next_in=0,e.input=t,L(n);n.lookahead>=y;){for(r=n.strstart,a=n.lookahead-(y-1);n.ins_h=(n.ins_h<<n.hash_shift^n.window[r+y-1])&n.hash_mask,n.prev[r&n.w_mask]=n.head[n.ins_h],n.head[n.ins_h]=r,r++,--a;);n.strstart=r,n.lookahead=y-1,L(n)}return n.strstart+=n.lookahead,n.block_start=n.strstart,n.insert=n.lookahead,n.lookahead=0,n.match_length=n.prev_length=y-1,n.match_available=0,e.next_in=c,e.input=d,e.avail_in=l,n.wrap=s,u},n.deflateInfo="pako deflate (from Nodeca project)"},{"../utils/common":41,"./adler32":43,"./crc32":45,"./messages":51,"./trees":52}],47:[function(e,t,n){"use strict";t.exports=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}},{}],48:[function(e,t,n){"use strict";t.exports=function(e,t){var n,r,o,a,i,s,l,c,d,u,h,p,m,f,g,A,b,C,y,v,w,k,E,x,S;n=e.state,r=e.next_in,x=e.input,o=r+(e.avail_in-5),a=e.next_out,S=e.output,i=a-(t-e.avail_out),s=a+(e.avail_out-257),l=n.dmax,c=n.wsize,d=n.whave,u=n.wnext,h=n.window,p=n.hold,m=n.bits,f=n.lencode,g=n.distcode,A=(1<<n.lenbits)-1,b=(1<<n.distbits)-1;e:do{m<15&&(p+=x[r++]<<m,m+=8,p+=x[r++]<<m,m+=8),C=f[p&A];t:for(;;){if(p>>>=y=C>>>24,m-=y,0==(y=C>>>16&255))S[a++]=65535&C;else{if(!(16&y)){if(0==(64&y)){C=f[(65535&C)+(p&(1<<y)-1)];continue t}if(32&y){n.mode=12;break e}e.msg="invalid literal/length code",n.mode=30;break e}v=65535&C,(y&=15)&&(m<y&&(p+=x[r++]<<m,m+=8),v+=p&(1<<y)-1,p>>>=y,m-=y),m<15&&(p+=x[r++]<<m,m+=8,p+=x[r++]<<m,m+=8),C=g[p&b];n:for(;;){if(p>>>=y=C>>>24,m-=y,!(16&(y=C>>>16&255))){if(0==(64&y)){C=g[(65535&C)+(p&(1<<y)-1)];continue n}e.msg="invalid distance code",n.mode=30;break e}if(w=65535&C,m<(y&=15)&&(p+=x[r++]<<m,(m+=8)<y&&(p+=x[r++]<<m,m+=8)),l<(w+=p&(1<<y)-1)){e.msg="invalid distance too far back",n.mode=30;break e}if(p>>>=y,m-=y,(y=a-i)<w){if(d<(y=w-y)&&n.sane){e.msg="invalid distance too far back",n.mode=30;break e}if(E=h,(k=0)===u){if(k+=c-y,y<v){for(v-=y;S[a++]=h[k++],--y;);k=a-w,E=S}}else if(u<y){if(k+=c+u-y,(y-=u)<v){for(v-=y;S[a++]=h[k++],--y;);if(k=0,u<v){for(v-=y=u;S[a++]=h[k++],--y;);k=a-w,E=S}}}else if(k+=u-y,y<v){for(v-=y;S[a++]=h[k++],--y;);k=a-w,E=S}for(;2<v;)S[a++]=E[k++],S[a++]=E[k++],S[a++]=E[k++],v-=3;v&&(S[a++]=E[k++],1<v&&(S[a++]=E[k++]))}else{for(k=a-w;S[a++]=S[k++],S[a++]=S[k++],S[a++]=S[k++],2<(v-=3););v&&(S[a++]=S[k++],1<v&&(S[a++]=S[k++]))}break}}break}}while(r<o&&a<s);r-=v=m>>3,p&=(1<<(m-=v<<3))-1,e.next_in=r,e.next_out=a,e.avail_in=r<o?o-r+5:5-(r-o),e.avail_out=a<s?s-a+257:257-(a-s),n.hold=p,n.bits=m}},{}],49:[function(e,t,n){"use strict";var r=e("../utils/common"),o=e("./adler32"),a=e("./crc32"),i=e("./inffast"),s=e("./inftrees"),l=1,c=2,d=0,u=-2,h=1,p=852,m=592;function f(e){return(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function g(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new r.Buf16(320),this.work=new r.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function A(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=h,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new r.Buf32(p),t.distcode=t.distdyn=new r.Buf32(m),t.sane=1,t.back=-1,d):u}function b(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,A(e)):u}function C(e,t){var n,r;return e&&e.state?(r=e.state,t<0?(n=0,t=-t):(n=1+(t>>4),t<48&&(t&=15)),t&&(t<8||15<t)?u:(null!==r.window&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,b(e))):u}function y(e,t){var n,r;return e?(r=new g,(e.state=r).window=null,(n=C(e,t))!==d&&(e.state=null),n):u}var v,w,k=!0;function E(e){if(k){var t;for(v=new r.Buf32(512),w=new r.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(s(l,e.lens,0,288,v,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;s(c,e.lens,0,32,w,0,e.work,{bits:5}),k=!1}e.lencode=v,e.lenbits=9,e.distcode=w,e.distbits=5}function x(e,t,n,o){var a,i=e.state;return null===i.window&&(i.wsize=1<<i.wbits,i.wnext=0,i.whave=0,i.window=new r.Buf8(i.wsize)),o>=i.wsize?(r.arraySet(i.window,t,n-i.wsize,i.wsize,0),i.wnext=0,i.whave=i.wsize):(o<(a=i.wsize-i.wnext)&&(a=o),r.arraySet(i.window,t,n-o,a,i.wnext),(o-=a)?(r.arraySet(i.window,t,n-o,o,0),i.wnext=o,i.whave=i.wsize):(i.wnext+=a,i.wnext===i.wsize&&(i.wnext=0),i.whave<i.wsize&&(i.whave+=a))),0}n.inflateReset=b,n.inflateReset2=C,n.inflateResetKeep=A,n.inflateInit=function(e){return y(e,15)},n.inflateInit2=y,n.inflate=function(e,t){var n,p,m,g,A,b,C,y,v,w,k,S,T,B,_,I,P,N,M,F,R,D,L,O,U=0,z=new r.Buf8(4),G=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return u;12===(n=e.state).mode&&(n.mode=13),A=e.next_out,m=e.output,C=e.avail_out,g=e.next_in,p=e.input,b=e.avail_in,y=n.hold,v=n.bits,w=b,k=C,D=d;e:for(;;)switch(n.mode){case h:if(0===n.wrap){n.mode=13;break}for(;v<16;){if(0===b)break e;b--,y+=p[g++]<<v,v+=8}if(2&n.wrap&&35615===y){z[n.check=0]=255&y,z[1]=y>>>8&255,n.check=a(n.check,z,2,0),v=y=0,n.mode=2;break}if(n.flags=0,n.head&&(n.head.done=!1),!(1&n.wrap)||(((255&y)<<8)+(y>>8))%31){e.msg="incorrect header check",n.mode=30;break}if(8!=(15&y)){e.msg="unknown compression method",n.mode=30;break}if(v-=4,R=8+(15&(y>>>=4)),0===n.wbits)n.wbits=R;else if(R>n.wbits){e.msg="invalid window size",n.mode=30;break}n.dmax=1<<R,e.adler=n.check=1,n.mode=512&y?10:12,v=y=0;break;case 2:for(;v<16;){if(0===b)break e;b--,y+=p[g++]<<v,v+=8}if(n.flags=y,8!=(255&n.flags)){e.msg="unknown compression method",n.mode=30;break}if(57344&n.flags){e.msg="unknown header flags set",n.mode=30;break}n.head&&(n.head.text=y>>8&1),512&n.flags&&(z[0]=255&y,z[1]=y>>>8&255,n.check=a(n.check,z,2,0)),v=y=0,n.mode=3;case 3:for(;v<32;){if(0===b)break e;b--,y+=p[g++]<<v,v+=8}n.head&&(n.head.time=y),512&n.flags&&(z[0]=255&y,z[1]=y>>>8&255,z[2]=y>>>16&255,z[3]=y>>>24&255,n.check=a(n.check,z,4,0)),v=y=0,n.mode=4;case 4:for(;v<16;){if(0===b)break e;b--,y+=p[g++]<<v,v+=8}n.head&&(n.head.xflags=255&y,n.head.os=y>>8),512&n.flags&&(z[0]=255&y,z[1]=y>>>8&255,n.check=a(n.check,z,2,0)),v=y=0,n.mode=5;case 5:if(1024&n.flags){for(;v<16;){if(0===b)break e;b--,y+=p[g++]<<v,v+=8}n.length=y,n.head&&(n.head.extra_len=y),512&n.flags&&(z[0]=255&y,z[1]=y>>>8&255,n.check=a(n.check,z,2,0)),v=y=0}else n.head&&(n.head.extra=null);n.mode=6;case 6:if(1024&n.flags&&(b<(S=n.length)&&(S=b),S&&(n.head&&(R=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),r.arraySet(n.head.extra,p,g,S,R)),512&n.flags&&(n.check=a(n.check,p,S,g)),b-=S,g+=S,n.length-=S),n.length))break e;n.length=0,n.mode=7;case 7:if(2048&n.flags){if(0===b)break e;for(S=0;R=p[g+S++],n.head&&R&&n.length<65536&&(n.head.name+=String.fromCharCode(R)),R&&S<b;);if(512&n.flags&&(n.check=a(n.check,p,S,g)),b-=S,g+=S,R)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=8;case 8:if(4096&n.flags){if(0===b)break e;for(S=0;R=p[g+S++],n.head&&R&&n.length<65536&&(n.head.comment+=String.fromCharCode(R)),R&&S<b;);if(512&n.flags&&(n.check=a(n.check,p,S,g)),b-=S,g+=S,R)break e}else n.head&&(n.head.comment=null);n.mode=9;case 9:if(512&n.flags){for(;v<16;){if(0===b)break e;b--,y+=p[g++]<<v,v+=8}if(y!==(65535&n.check)){e.msg="header crc mismatch",n.mode=30;break}v=y=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=12;break;case 10:for(;v<32;){if(0===b)break e;b--,y+=p[g++]<<v,v+=8}e.adler=n.check=f(y),v=y=0,n.mode=11;case 11:if(0===n.havedict)return e.next_out=A,e.avail_out=C,e.next_in=g,e.avail_in=b,n.hold=y,n.bits=v,2;e.adler=n.check=1,n.mode=12;case 12:if(5===t||6===t)break e;case 13:if(n.last){y>>>=7&v,v-=7&v,n.mode=27;break}for(;v<3;){if(0===b)break e;b--,y+=p[g++]<<v,v+=8}switch(n.last=1&y,v-=1,3&(y>>>=1)){case 0:n.mode=14;break;case 1:if(E(n),n.mode=20,6!==t)break;y>>>=2,v-=2;break e;case 2:n.mode=17;break;case 3:e.msg="invalid block type",n.mode=30}y>>>=2,v-=2;break;case 14:for(y>>>=7&v,v-=7&v;v<32;){if(0===b)break e;b--,y+=p[g++]<<v,v+=8}if((65535&y)!=(y>>>16^65535)){e.msg="invalid stored block lengths",n.mode=30;break}if(n.length=65535&y,v=y=0,n.mode=15,6===t)break e;case 15:n.mode=16;case 16:if(S=n.length){if(b<S&&(S=b),C<S&&(S=C),0===S)break e;r.arraySet(m,p,g,S,A),b-=S,g+=S,C-=S,A+=S,n.length-=S;break}n.mode=12;break;case 17:for(;v<14;){if(0===b)break e;b--,y+=p[g++]<<v,v+=8}if(n.nlen=257+(31&y),y>>>=5,v-=5,n.ndist=1+(31&y),y>>>=5,v-=5,n.ncode=4+(15&y),y>>>=4,v-=4,286<n.nlen||30<n.ndist){e.msg="too many length or distance symbols",n.mode=30;break}n.have=0,n.mode=18;case 18:for(;n.have<n.ncode;){for(;v<3;){if(0===b)break e;b--,y+=p[g++]<<v,v+=8}n.lens[G[n.have++]]=7&y,y>>>=3,v-=3}for(;n.have<19;)n.lens[G[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,L={bits:n.lenbits},D=s(0,n.lens,0,19,n.lencode,0,n.work,L),n.lenbits=L.bits,D){e.msg="invalid code lengths set",n.mode=30;break}n.have=0,n.mode=19;case 19:for(;n.have<n.nlen+n.ndist;){for(;I=(U=n.lencode[y&(1<<n.lenbits)-1])>>>16&255,P=65535&U,!((_=U>>>24)<=v);){if(0===b)break e;b--,y+=p[g++]<<v,v+=8}if(P<16)y>>>=_,v-=_,n.lens[n.have++]=P;else{if(16===P){for(O=_+2;v<O;){if(0===b)break e;b--,y+=p[g++]<<v,v+=8}if(y>>>=_,v-=_,0===n.have){e.msg="invalid bit length repeat",n.mode=30;break}R=n.lens[n.have-1],S=3+(3&y),y>>>=2,v-=2}else if(17===P){for(O=_+3;v<O;){if(0===b)break e;b--,y+=p[g++]<<v,v+=8}v-=_,R=0,S=3+(7&(y>>>=_)),y>>>=3,v-=3}else{for(O=_+7;v<O;){if(0===b)break e;b--,y+=p[g++]<<v,v+=8}v-=_,R=0,S=11+(127&(y>>>=_)),y>>>=7,v-=7}if(n.have+S>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=30;break}for(;S--;)n.lens[n.have++]=R}}if(30===n.mode)break;if(0===n.lens[256]){e.msg="invalid code -- missing end-of-block",n.mode=30;break}if(n.lenbits=9,L={bits:n.lenbits},D=s(l,n.lens,0,n.nlen,n.lencode,0,n.work,L),n.lenbits=L.bits,D){e.msg="invalid literal/lengths set",n.mode=30;break}if(n.distbits=6,n.distcode=n.distdyn,L={bits:n.distbits},D=s(c,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,L),n.distbits=L.bits,D){e.msg="invalid distances set",n.mode=30;break}if(n.mode=20,6===t)break e;case 20:n.mode=21;case 21:if(6<=b&&258<=C){e.next_out=A,e.avail_out=C,e.next_in=g,e.avail_in=b,n.hold=y,n.bits=v,i(e,k),A=e.next_out,m=e.output,C=e.avail_out,g=e.next_in,p=e.input,b=e.avail_in,y=n.hold,v=n.bits,12===n.mode&&(n.back=-1);break}for(n.back=0;I=(U=n.lencode[y&(1<<n.lenbits)-1])>>>16&255,P=65535&U,!((_=U>>>24)<=v);){if(0===b)break e;b--,y+=p[g++]<<v,v+=8}if(I&&0==(240&I)){for(N=_,M=I,F=P;I=(U=n.lencode[F+((y&(1<<N+M)-1)>>N)])>>>16&255,P=65535&U,!(N+(_=U>>>24)<=v);){if(0===b)break e;b--,y+=p[g++]<<v,v+=8}y>>>=N,v-=N,n.back+=N}if(y>>>=_,v-=_,n.back+=_,n.length=P,0===I){n.mode=26;break}if(32&I){n.back=-1,n.mode=12;break}if(64&I){e.msg="invalid literal/length code",n.mode=30;break}n.extra=15&I,n.mode=22;case 22:if(n.extra){for(O=n.extra;v<O;){if(0===b)break e;b--,y+=p[g++]<<v,v+=8}n.length+=y&(1<<n.extra)-1,y>>>=n.extra,v-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=23;case 23:for(;I=(U=n.distcode[y&(1<<n.distbits)-1])>>>16&255,P=65535&U,!((_=U>>>24)<=v);){if(0===b)break e;b--,y+=p[g++]<<v,v+=8}if(0==(240&I)){for(N=_,M=I,F=P;I=(U=n.distcode[F+((y&(1<<N+M)-1)>>N)])>>>16&255,P=65535&U,!(N+(_=U>>>24)<=v);){if(0===b)break e;b--,y+=p[g++]<<v,v+=8}y>>>=N,v-=N,n.back+=N}if(y>>>=_,v-=_,n.back+=_,64&I){e.msg="invalid distance code",n.mode=30;break}n.offset=P,n.extra=15&I,n.mode=24;case 24:if(n.extra){for(O=n.extra;v<O;){if(0===b)break e;b--,y+=p[g++]<<v,v+=8}n.offset+=y&(1<<n.extra)-1,y>>>=n.extra,v-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=30;break}n.mode=25;case 25:if(0===C)break e;if(S=k-C,n.offset>S){if((S=n.offset-S)>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=30;break}T=S>n.wnext?(S-=n.wnext,n.wsize-S):n.wnext-S,S>n.length&&(S=n.length),B=n.window}else B=m,T=A-n.offset,S=n.length;for(C<S&&(S=C),C-=S,n.length-=S;m[A++]=B[T++],--S;);0===n.length&&(n.mode=21);break;case 26:if(0===C)break e;m[A++]=n.length,C--,n.mode=21;break;case 27:if(n.wrap){for(;v<32;){if(0===b)break e;b--,y|=p[g++]<<v,v+=8}if(k-=C,e.total_out+=k,n.total+=k,k&&(e.adler=n.check=n.flags?a(n.check,m,k,A-k):o(n.check,m,k,A-k)),k=C,(n.flags?y:f(y))!==n.check){e.msg="incorrect data check",n.mode=30;break}v=y=0}n.mode=28;case 28:if(n.wrap&&n.flags){for(;v<32;){if(0===b)break e;b--,y+=p[g++]<<v,v+=8}if(y!==(4294967295&n.total)){e.msg="incorrect length check",n.mode=30;break}v=y=0}n.mode=29;case 29:D=1;break e;case 30:D=-3;break e;case 31:return-4;default:return u}return e.next_out=A,e.avail_out=C,e.next_in=g,e.avail_in=b,n.hold=y,n.bits=v,(n.wsize||k!==e.avail_out&&n.mode<30&&(n.mode<27||4!==t))&&x(e,e.output,e.next_out,k-e.avail_out)?(n.mode=31,-4):(w-=e.avail_in,k-=e.avail_out,e.total_in+=w,e.total_out+=k,n.total+=k,n.wrap&&k&&(e.adler=n.check=n.flags?a(n.check,m,k,e.next_out-k):o(n.check,m,k,e.next_out-k)),e.data_type=n.bits+(n.last?64:0)+(12===n.mode?128:0)+(20===n.mode||15===n.mode?256:0),(0==w&&0===k||4===t)&&D===d&&(D=-5),D)},n.inflateEnd=function(e){if(!e||!e.state)return u;var t=e.state;return t.window&&(t.window=null),e.state=null,d},n.inflateGetHeader=function(e,t){var n;return e&&e.state?0==(2&(n=e.state).wrap)?u:((n.head=t).done=!1,d):u},n.inflateSetDictionary=function(e,t){var n,r=t.length;return e&&e.state?0!==(n=e.state).wrap&&11!==n.mode?u:11===n.mode&&o(1,t,r,0)!==n.check?-3:x(e,t,r,r)?(n.mode=31,-4):(n.havedict=1,d):u},n.inflateInfo="pako inflate (from Nodeca project)"},{"../utils/common":41,"./adler32":43,"./crc32":45,"./inffast":48,"./inftrees":50}],50:[function(e,t,n){"use strict";var r=e("../utils/common"),o=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],a=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],i=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],s=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];t.exports=function(e,t,n,l,c,d,u,h){var p,m,f,g,A,b,C,y,v,w=h.bits,k=0,E=0,x=0,S=0,T=0,B=0,_=0,I=0,P=0,N=0,M=null,F=0,R=new r.Buf16(16),D=new r.Buf16(16),L=null,O=0;for(k=0;k<=15;k++)R[k]=0;for(E=0;E<l;E++)R[t[n+E]]++;for(T=w,S=15;1<=S&&0===R[S];S--);if(S<T&&(T=S),0===S)return c[d++]=20971520,c[d++]=20971520,h.bits=1,0;for(x=1;x<S&&0===R[x];x++);for(T<x&&(T=x),k=I=1;k<=15;k++)if(I<<=1,(I-=R[k])<0)return-1;if(0<I&&(0===e||1!==S))return-1;for(D[1]=0,k=1;k<15;k++)D[k+1]=D[k]+R[k];for(E=0;E<l;E++)0!==t[n+E]&&(u[D[t[n+E]]++]=E);if(b=0===e?(M=L=u,19):1===e?(M=o,F-=257,L=a,O-=257,256):(M=i,L=s,-1),k=x,A=d,_=E=N=0,f=-1,g=(P=1<<(B=T))-1,1===e&&852<P||2===e&&592<P)return 1;for(;;){for(C=k-_,v=u[E]<b?(y=0,u[E]):u[E]>b?(y=L[O+u[E]],M[F+u[E]]):(y=96,0),p=1<<k-_,x=m=1<<B;c[A+(N>>_)+(m-=p)]=C<<24|y<<16|v|0,0!==m;);for(p=1<<k-1;N&p;)p>>=1;if(0!==p?(N&=p-1,N+=p):N=0,E++,0==--R[k]){if(k===S)break;k=t[n+u[E]]}if(T<k&&(N&g)!==f){for(0===_&&(_=T),A+=x,I=1<<(B=k-_);B+_<S&&!((I-=R[B+_])<=0);)B++,I<<=1;if(P+=1<<B,1===e&&852<P||2===e&&592<P)return 1;c[f=N&g]=T<<24|B<<16|A-d|0}}return 0!==N&&(c[A+N]=k-_<<24|64<<16|0),h.bits=T,0}},{"../utils/common":41}],51:[function(e,t,n){"use strict";t.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],52:[function(e,t,n){"use strict";var r=e("../utils/common");function o(e){for(var t=e.length;0<=--t;)e[t]=0}var a=256,i=a+1+29,s=30,l=19,c=2*i+1,d=15,u=16,h=256,p=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],m=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],f=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],g=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],A=new Array(2*(i+2));o(A);var b=new Array(60);o(b);var C=new Array(512);o(C);var y=new Array(256);o(y);var v=new Array(29);o(v);var w,k,E,x=new Array(s);function S(e,t,n,r,o){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=r,this.max_length=o,this.has_stree=e&&e.length}function T(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function B(e){return e<256?C[e]:C[256+(e>>>7)]}function _(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function I(e,t,n){e.bi_valid>u-n?(e.bi_buf|=t<<e.bi_valid&65535,_(e,e.bi_buf),e.bi_buf=t>>u-e.bi_valid,e.bi_valid+=n-u):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)}function P(e,t,n){I(e,n[2*t],n[2*t+1])}function N(e,t){for(var n=0;n|=1&e,e>>>=1,n<<=1,0<--t;);return n>>>1}function M(e,t,n){var r,o,a=new Array(d+1),i=0;for(r=1;r<=d;r++)a[r]=i=i+n[r-1]<<1;for(o=0;o<=t;o++){var s=e[2*o+1];0!==s&&(e[2*o]=N(a[s]++,s))}}function F(e){var t;for(t=0;t<i;t++)e.dyn_ltree[2*t]=0;for(t=0;t<s;t++)e.dyn_dtree[2*t]=0;for(t=0;t<l;t++)e.bl_tree[2*t]=0;e.dyn_ltree[2*h]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function R(e){8<e.bi_valid?_(e,e.bi_buf):0<e.bi_valid&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0}function D(e,t,n,r){var o=2*t,a=2*n;return e[o]<e[a]||e[o]===e[a]&&r[t]<=r[n]}function L(e,t,n){for(var r=e.heap[n],o=n<<1;o<=e.heap_len&&(o<e.heap_len&&D(t,e.heap[o+1],e.heap[o],e.depth)&&o++,!D(t,r,e.heap[o],e.depth));)e.heap[n]=e.heap[o],n=o,o<<=1;e.heap[n]=r}function O(e,t,n){var r,o,i,s,l=0;if(0!==e.last_lit)for(;r=e.pending_buf[e.d_buf+2*l]<<8|e.pending_buf[e.d_buf+2*l+1],o=e.pending_buf[e.l_buf+l],l++,0===r?P(e,o,t):(P(e,(i=y[o])+a+1,t),0!==(s=p[i])&&I(e,o-=v[i],s),P(e,i=B(--r),n),0!==(s=m[i])&&I(e,r-=x[i],s)),l<e.last_lit;);P(e,h,t)}function U(e,t){var n,r,o,a=t.dyn_tree,i=t.stat_desc.static_tree,s=t.stat_desc.has_stree,l=t.stat_desc.elems,u=-1;for(e.heap_len=0,e.heap_max=c,n=0;n<l;n++)0!==a[2*n]?(e.heap[++e.heap_len]=u=n,e.depth[n]=0):a[2*n+1]=0;for(;e.heap_len<2;)a[2*(o=e.heap[++e.heap_len]=u<2?++u:0)]=1,e.depth[o]=0,e.opt_len--,s&&(e.static_len-=i[2*o+1]);for(t.max_code=u,n=e.heap_len>>1;1<=n;n--)L(e,a,n);for(o=l;n=e.heap[1],e.heap[1]=e.heap[e.heap_len--],L(e,a,1),r=e.heap[1],e.heap[--e.heap_max]=n,e.heap[--e.heap_max]=r,a[2*o]=a[2*n]+a[2*r],e.depth[o]=(e.depth[n]>=e.depth[r]?e.depth[n]:e.depth[r])+1,a[2*n+1]=a[2*r+1]=o,e.heap[1]=o++,L(e,a,1),2<=e.heap_len;);e.heap[--e.heap_max]=e.heap[1],function(e,t){var n,r,o,a,i,s,l=t.dyn_tree,u=t.max_code,h=t.stat_desc.static_tree,p=t.stat_desc.has_stree,m=t.stat_desc.extra_bits,f=t.stat_desc.extra_base,g=t.stat_desc.max_length,A=0;for(a=0;a<=d;a++)e.bl_count[a]=0;for(l[2*e.heap[e.heap_max]+1]=0,n=e.heap_max+1;n<c;n++)g<(a=l[2*l[2*(r=e.heap[n])+1]+1]+1)&&(a=g,A++),l[2*r+1]=a,u<r||(e.bl_count[a]++,i=0,f<=r&&(i=m[r-f]),s=l[2*r],e.opt_len+=s*(a+i),p&&(e.static_len+=s*(h[2*r+1]+i)));if(0!==A){do{for(a=g-1;0===e.bl_count[a];)a--;e.bl_count[a]--,e.bl_count[a+1]+=2,e.bl_count[g]--,A-=2}while(0<A);for(a=g;0!==a;a--)for(r=e.bl_count[a];0!==r;)u<(o=e.heap[--n])||(l[2*o+1]!==a&&(e.opt_len+=(a-l[2*o+1])*l[2*o],l[2*o+1]=a),r--)}}(e,t),M(a,u,e.bl_count)}function z(e,t,n){var r,o,a=-1,i=t[1],s=0,l=7,c=4;for(0===i&&(l=138,c=3),t[2*(n+1)+1]=65535,r=0;r<=n;r++)o=i,i=t[2*(r+1)+1],++s<l&&o===i||(s<c?e.bl_tree[2*o]+=s:0!==o?(o!==a&&e.bl_tree[2*o]++,e.bl_tree[32]++):s<=10?e.bl_tree[34]++:e.bl_tree[36]++,a=o,c=(s=0)===i?(l=138,3):o===i?(l=6,3):(l=7,4))}function G(e,t,n){var r,o,a=-1,i=t[1],s=0,l=7,c=4;for(0===i&&(l=138,c=3),r=0;r<=n;r++)if(o=i,i=t[2*(r+1)+1],!(++s<l&&o===i)){if(s<c)for(;P(e,o,e.bl_tree),0!=--s;);else 0!==o?(o!==a&&(P(e,o,e.bl_tree),s--),P(e,16,e.bl_tree),I(e,s-3,2)):s<=10?(P(e,17,e.bl_tree),I(e,s-3,3)):(P(e,18,e.bl_tree),I(e,s-11,7));a=o,c=(s=0)===i?(l=138,3):o===i?(l=6,3):(l=7,4)}}o(x);var W=!1;function H(e,t,n,o){I(e,0+(o?1:0),3),function(e,t,n,o){R(e),_(e,n),_(e,~n),r.arraySet(e.pending_buf,e.window,t,n,e.pending),e.pending+=n}(e,t,n)}n._tr_init=function(e){W||(function(){var e,t,n,r,o,c=new Array(d+1);for(r=n=0;r<28;r++)for(v[r]=n,e=0;e<1<<p[r];e++)y[n++]=r;for(y[n-1]=r,r=o=0;r<16;r++)for(x[r]=o,e=0;e<1<<m[r];e++)C[o++]=r;for(o>>=7;r<s;r++)for(x[r]=o<<7,e=0;e<1<<m[r]-7;e++)C[256+o++]=r;for(t=0;t<=d;t++)c[t]=0;for(e=0;e<=143;)A[2*e+1]=8,e++,c[8]++;for(;e<=255;)A[2*e+1]=9,e++,c[9]++;for(;e<=279;)A[2*e+1]=7,e++,c[7]++;for(;e<=287;)A[2*e+1]=8,e++,c[8]++;for(M(A,i+1,c),e=0;e<s;e++)b[2*e+1]=5,b[2*e]=N(e,5);w=new S(A,p,a+1,i,d),k=new S(b,m,0,s,d),E=new S(new Array(0),f,0,l,7)}(),W=!0),e.l_desc=new T(e.dyn_ltree,w),e.d_desc=new T(e.dyn_dtree,k),e.bl_desc=new T(e.bl_tree,E),e.bi_buf=0,e.bi_valid=0,F(e)},n._tr_stored_block=H,n._tr_flush_block=function(e,t,n,r){var o,i,s=0;0<e.level?(2===e.strm.data_type&&(e.strm.data_type=function(e){var t,n=4093624447;for(t=0;t<=31;t++,n>>>=1)if(1&n&&0!==e.dyn_ltree[2*t])return 0;if(0!==e.dyn_ltree[18]||0!==e.dyn_ltree[20]||0!==e.dyn_ltree[26])return 1;for(t=32;t<a;t++)if(0!==e.dyn_ltree[2*t])return 1;return 0}(e)),U(e,e.l_desc),U(e,e.d_desc),s=function(e){var t;for(z(e,e.dyn_ltree,e.l_desc.max_code),z(e,e.dyn_dtree,e.d_desc.max_code),U(e,e.bl_desc),t=l-1;3<=t&&0===e.bl_tree[2*g[t]+1];t--);return e.opt_len+=3*(t+1)+5+5+4,t}(e),o=e.opt_len+3+7>>>3,(i=e.static_len+3+7>>>3)<=o&&(o=i)):o=i=n+5,n+4<=o&&-1!==t?H(e,t,n,r):4===e.strategy||i===o?(I(e,2+(r?1:0),3),O(e,A,b)):(I(e,4+(r?1:0),3),function(e,t,n,r){var o;for(I(e,t-257,5),I(e,n-1,5),I(e,r-4,4),o=0;o<r;o++)I(e,e.bl_tree[2*g[o]+1],3);G(e,e.dyn_ltree,t-1),G(e,e.dyn_dtree,n-1)}(e,e.l_desc.max_code+1,e.d_desc.max_code+1,s+1),O(e,e.dyn_ltree,e.dyn_dtree)),F(e),r&&R(e)},n._tr_tally=function(e,t,n){return e.pending_buf[e.d_buf+2*e.last_lit]=t>>>8&255,e.pending_buf[e.d_buf+2*e.last_lit+1]=255&t,e.pending_buf[e.l_buf+e.last_lit]=255&n,e.last_lit++,0===t?e.dyn_ltree[2*n]++:(e.matches++,t--,e.dyn_ltree[2*(y[n]+a+1)]++,e.dyn_dtree[2*B(t)]++),e.last_lit===e.lit_bufsize-1},n._tr_align=function(e){I(e,2,3),P(e,h,A),function(e){16===e.bi_valid?(_(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):8<=e.bi_valid&&(e.pending_buf[e.pending++]=255&e.bi_buf,e.bi_buf>>=8,e.bi_valid-=8)}(e)}},{"../utils/common":41}],53:[function(e,t,n){"use strict";t.exports=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}},{}],54:[function(e,t,r){(function(e){!function(e,t){"use strict";if(!e.setImmediate){var n,r,o,a,i=1,s={},l=!1,c=e.document,d=Object.getPrototypeOf&&Object.getPrototypeOf(e);d=d&&d.setTimeout?d:e,n="[object process]"==={}.toString.call(e.process)?function(e){process.nextTick((function(){h(e)}))}:function(){if(e.postMessage&&!e.importScripts){var t=!0,n=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=n,t}}()?(a="setImmediate$"+Math.random()+"$",e.addEventListener?e.addEventListener("message",p,!1):e.attachEvent("onmessage",p),function(t){e.postMessage(a+t,"*")}):e.MessageChannel?((o=new MessageChannel).port1.onmessage=function(e){h(e.data)},function(e){o.port2.postMessage(e)}):c&&"onreadystatechange"in c.createElement("script")?(r=c.documentElement,function(e){var t=c.createElement("script");t.onreadystatechange=function(){h(e),t.onreadystatechange=null,r.removeChild(t),t=null},r.appendChild(t)}):function(e){setTimeout(h,0,e)},d.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),r=0;r<t.length;r++)t[r]=arguments[r+1];var o={callback:e,args:t};return s[i]=o,n(i),i++},d.clearImmediate=u}function u(e){delete s[e]}function h(e){if(l)setTimeout(h,0,e);else{var n=s[e];if(n){l=!0;try{!function(e){var n=e.callback,r=e.args;switch(r.length){case 0:n();break;case 1:n(r[0]);break;case 2:n(r[0],r[1]);break;case 3:n(r[0],r[1],r[2]);break;default:n.apply(t,r)}}(n)}finally{u(e),l=!1}}}}function p(t){t.source===e&&"string"==typeof t.data&&0===t.data.indexOf(a)&&h(+t.data.slice(a.length))}}("undefined"==typeof self?void 0===e?this:e:self)}).call(this,void 0!==n.g?n.g:"undefined"!=typeof self?self:"undefined"!=typeof window?window:{})},{}]},{},[10])(10)},9909:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,o=(r=n(3095))&&r.__esModule?r:{default:r};if("undefined"==typeof WeakMap||"undefined"==typeof Map)throw new Error("This lib requires an implementation of WeakMap and Map");t.default=function(e,t){var n=t&&t.cache||new o.default(t),r=void 0;return r=/^\[object (Weak|LRU|NamedTuple)?Map\]$/.test(n.toString())?function(t){if(!n.has(t)){var r=e.call(this,t);return n.set(t,r),r}return n.get(t)}:function(){if(!n.has(arguments)){var t=e.apply(this,arguments);return n.set(arguments,t),t}return n.get(arguments)},e.name&&(r.displayName=e.name+"Memoized"),r},e.exports=t.default},1780:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function r(){this.clear()}r.prototype={toString:function(){return"[object MixedTupleMap]"},_hash:function(e){if(e===this._lastTuple)return this._lastHash;for(var t=e.length,r=[],o=[],a=[],i=0;i<t;i++){var s=e[i],l=void 0===s?"undefined":n(s);null===l||"object"!==l&&"function"!==l?(r.push("string"===l?'"'+s+'"':""+s),o.push(i)):a.push(i)}if(0===a.length)throw new Error("Tuple must have at least one non-primitive part");return r.push("["+a.concat(o).join()+"]"),this._lastTuple=e,this._lastHash={nonPrimOrder:a,primHash:r.join("/<[MI_SEP]>/")},this._lastHash},has:function(e){for(var t=this._cache,n=this._hash(e),r=n.nonPrimOrder.length,o=0;o<r;o++){var a=e[n.nonPrimOrder[o]];if(!t.has||!t.has(a))return!1;t=t.get(a)}return!!t.has&&t.has(n.primHash)},set:function(e,t){for(var n=this._cache,r=this._hash(e),o=r.nonPrimOrder.length,a=!1,i=0;i<o;i++){var s=e[r.nonPrimOrder[i]];!a&&n.has(s)?n=n.get(s):(a=!0,n.set(s,n=i<o-1?new WeakMap:new Map))}return n.set(r.primHash,t),this},get:function(e){for(var t=this._cache,n=this._hash(e),r=n.nonPrimOrder.length,o=0;o<r;o++){var a=e[n.nonPrimOrder[o]],i=t.get&&t.get(a);if(void 0===i)return i;t=i}return t.get&&t.get(n.primHash)},clear:function(){this._cache=new WeakMap,delete this._lastTuple,delete this._lastHash}},t.default=r,e.exports=t.default},4038:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function r(e){e&&"limit"in e&&(this._limit=e.limit),this.clear()}r.prototype={toString:function(){return"[object NamedTupleMap]"},_hash:function(e){if(e===this._lastTuple)return this._lastHash;for(var t=Object.keys(e),r=t.length,o=[],a=0;a<r;a++){var i=e[t[a]],s=void 0===i?"undefined":n(i);if(null===i||"object"!==s&&"function"!==s)o.push("string"===s?'"'+i+'"':""+i);else if(this._idMap.has(i))o.push(this._idMap.get(i));else{var l="#"+this._id++;this._idMap.set(i,l),o.push(l)}}return o.push('{"'+t.join('","')+'"}'),this._lastTuple=e,this._lastHash=o.join("/<[MI_SEP]>/"),this._lastHash},has:function(e){var t=this._hash(e);return this._cache.has(t)},set:function(e,t){var n=this._hash(e);return void 0!==this._limit&&this._cache.delete(n),this._cache.set(n,t),void 0!==this._limit&&this._cache.size>this._limit&&this._cache.delete(this._cache.keys().next().value),this},get:function(e){var t=this._hash(e);if(void 0!==this._limit&&this._cache.has(t)){var n=this._cache.get(t);return this._cache.delete(t),this._cache.set(t,n),n}return this._cache.get(t)},clear:function(){this._cache=new Map,this._idMap=new WeakMap,this._id=0,delete this._lastTuple,delete this._lastHash}},t.default=r,e.exports=t.default},7418:e=>{"use strict";var t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable;e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,o){for(var a,i,s=function(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}(e),l=1;l<arguments.length;l++){for(var c in a=Object(arguments[l]))n.call(a,c)&&(s[c]=a[c]);if(t){i=t(a);for(var d=0;d<i.length;d++)r.call(a,i[d])&&(s[i[d]]=a[i[d]])}}return s}},19:(e,t)=>{t.C0="#ff1ad9",t.hT="#ed00b5",t.e="#ad3bff",t._U="#9400ff",t.St="#8000d7",t.nK="#6200a4",t.Z_="#45a1ff",t.wM="#0a84ff",t.vd="#0060df",t.WW="#003eaa",t.ih="#002275",t.Nm="#00feff",t.jj="#00c8d7",t.UX="#30e60b",t.Ns="#12bc00",t.Yu="#ffe900",t.u9="#d7b600",t.Wn="#ff0039",t.ME="#d70022",t.qV="#a4000f",t.FL="#ff9400",t.yt="#d76e00",t.yi="#a44900",t.F_="#ededf0",t.qN="#d7d7db",t.r5="#b1b1b3",t.S$="#737373",t.NO="#4a4a4f",t.H1="#595E91",t.qs="#464B76"},2703:(e,t,n)=>{"use strict";var r=n(414);function o(){}function a(){}a.resetWarningCache=o,e.exports=function(){function e(e,t,n,o,a,i){if(i!==r){var s=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw s.name="Invariant Violation",s}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:a,resetWarningCache:o};return n.PropTypes=n,n}},5697:(e,t,n)=>{e.exports=n(2703)()},414:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},4448:(e,t,n)=>{"use strict";var r=n(7294),o=n(3840);function a(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n<arguments.length;n++)t+="&args[]="+encodeURIComponent(arguments[n]);return"Minified React error #"+e+"; visit "+t+" for the full message or use the non-minified dev environment for full errors and additional helpful warnings."}var i=new Set,s={};function l(e,t){c(e,t),c(e+"Capture",t)}function c(e,t){for(s[e]=t,e=0;e<t.length;e++)i.add(t[e])}var d=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),u=Object.prototype.hasOwnProperty,h=/^[:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD][:A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*$/,p={},m={};function f(e,t,n,r,o,a,i){this.acceptsBooleans=2===t||3===t||4===t,this.attributeName=r,this.attributeNamespace=o,this.mustUseProperty=n,this.propertyName=e,this.type=t,this.sanitizeURL=a,this.removeEmptyString=i}var g={};"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style".split(" ").forEach((function(e){g[e]=new f(e,0,!1,e,null,!1,!1)})),[["acceptCharset","accept-charset"],["className","class"],["htmlFor","for"],["httpEquiv","http-equiv"]].forEach((function(e){var t=e[0];g[t]=new f(t,1,!1,e[1],null,!1,!1)})),["contentEditable","draggable","spellCheck","value"].forEach((function(e){g[e]=new f(e,2,!1,e.toLowerCase(),null,!1,!1)})),["autoReverse","externalResourcesRequired","focusable","preserveAlpha"].forEach((function(e){g[e]=new f(e,2,!1,e,null,!1,!1)})),"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope".split(" ").forEach((function(e){g[e]=new f(e,3,!1,e.toLowerCase(),null,!1,!1)})),["checked","multiple","muted","selected"].forEach((function(e){g[e]=new f(e,3,!0,e,null,!1,!1)})),["capture","download"].forEach((function(e){g[e]=new f(e,4,!1,e,null,!1,!1)})),["cols","rows","size","span"].forEach((function(e){g[e]=new f(e,6,!1,e,null,!1,!1)})),["rowSpan","start"].forEach((function(e){g[e]=new f(e,5,!1,e.toLowerCase(),null,!1,!1)}));var A=/[\-:]([a-z])/g;function b(e){return e[1].toUpperCase()}function C(e,t,n,r){var o=g.hasOwnProperty(t)?g[t]:null;(null!==o?0!==o.type:r||!(2<t.length)||"o"!==t[0]&&"O"!==t[0]||"n"!==t[1]&&"N"!==t[1])&&(function(e,t,n,r){if(null==t||function(e,t,n,r){if(null!==n&&0===n.type)return!1;switch(typeof t){case"function":case"symbol":return!0;case"boolean":return!r&&(null!==n?!n.acceptsBooleans:"data-"!==(e=e.toLowerCase().slice(0,5))&&"aria-"!==e);default:return!1}}(e,t,n,r))return!0;if(r)return!1;if(null!==n)switch(n.type){case 3:return!t;case 4:return!1===t;case 5:return isNaN(t);case 6:return isNaN(t)||1>t}return!1}(t,n,o,r)&&(n=null),r||null===o?function(e){return!!u.call(m,e)||!u.call(p,e)&&(h.test(e)?m[e]=!0:(p[e]=!0,!1))}(t)&&(null===n?e.removeAttribute(t):e.setAttribute(t,""+n)):o.mustUseProperty?e[o.propertyName]=null===n?3!==o.type&&"":n:(t=o.attributeName,r=o.attributeNamespace,null===n?e.removeAttribute(t):(n=3===(o=o.type)||4===o&&!0===n?"":""+n,r?e.setAttributeNS(r,t,n):e.setAttribute(t,n))))}"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height".split(" ").forEach((function(e){var t=e.replace(A,b);g[t]=new f(t,1,!1,e,null,!1,!1)})),"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type".split(" ").forEach((function(e){var t=e.replace(A,b);g[t]=new f(t,1,!1,e,"http://www.w3.org/1999/xlink",!1,!1)})),["xml:base","xml:lang","xml:space"].forEach((function(e){var t=e.replace(A,b);g[t]=new f(t,1,!1,e,"http://www.w3.org/XML/1998/namespace",!1,!1)})),["tabIndex","crossOrigin"].forEach((function(e){g[e]=new f(e,1,!1,e.toLowerCase(),null,!1,!1)})),g.xlinkHref=new f("xlinkHref",1,!1,"xlink:href","http://www.w3.org/1999/xlink",!0,!1),["src","href","action","formAction"].forEach((function(e){g[e]=new f(e,1,!1,e.toLowerCase(),null,!0,!0)}));var y=r.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,v=Symbol.for("react.element"),w=Symbol.for("react.portal"),k=Symbol.for("react.fragment"),E=Symbol.for("react.strict_mode"),x=Symbol.for("react.profiler"),S=Symbol.for("react.provider"),T=Symbol.for("react.context"),B=Symbol.for("react.forward_ref"),_=Symbol.for("react.suspense"),I=Symbol.for("react.suspense_list"),P=Symbol.for("react.memo"),N=Symbol.for("react.lazy");Symbol.for("react.scope"),Symbol.for("react.debug_trace_mode");var M=Symbol.for("react.offscreen");Symbol.for("react.legacy_hidden"),Symbol.for("react.cache"),Symbol.for("react.tracing_marker");var F=Symbol.iterator;function R(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=F&&e[F]||e["@@iterator"])?e:null}var D,L=Object.assign;function O(e){if(void 0===D)try{throw Error()}catch(e){var t=e.stack.trim().match(/\n( *(at )?)/);D=t&&t[1]||""}return"\n"+D+e}var U=!1;function z(e,t){if(!e||U)return"";U=!0;var n=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(t)if(t=function(){throw Error()},Object.defineProperty(t.prototype,"props",{set:function(){throw Error()}}),"object"==typeof Reflect&&Reflect.construct){try{Reflect.construct(t,[])}catch(e){var r=e}Reflect.construct(e,[],t)}else{try{t.call()}catch(e){r=e}e.call(t.prototype)}else{try{throw Error()}catch(e){r=e}e()}}catch(t){if(t&&r&&"string"==typeof t.stack){for(var o=t.stack.split("\n"),a=r.stack.split("\n"),i=o.length-1,s=a.length-1;1<=i&&0<=s&&o[i]!==a[s];)s--;for(;1<=i&&0<=s;i--,s--)if(o[i]!==a[s]){if(1!==i||1!==s)do{if(i--,0>--s||o[i]!==a[s]){var l="\n"+o[i].replace(" at new "," at ");return e.displayName&&l.includes("<anonymous>")&&(l=l.replace("<anonymous>",e.displayName)),l}}while(1<=i&&0<=s);break}}}finally{U=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?O(e):""}function G(e){switch(e.tag){case 5:return O(e.type);case 16:return O("Lazy");case 13:return O("Suspense");case 19:return O("SuspenseList");case 0:case 2:case 15:return z(e.type,!1);case 11:return z(e.type.render,!1);case 1:return z(e.type,!0);default:return""}}function W(e){if(null==e)return null;if("function"==typeof e)return e.displayName||e.name||null;if("string"==typeof e)return e;switch(e){case k:return"Fragment";case w:return"Portal";case x:return"Profiler";case E:return"StrictMode";case _:return"Suspense";case I:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case T:return(e.displayName||"Context")+".Consumer";case S:return(e._context.displayName||"Context")+".Provider";case B:var t=e.render;return(e=e.displayName)||(e=""!==(e=t.displayName||t.name||"")?"ForwardRef("+e+")":"ForwardRef"),e;case P:return null!==(t=e.displayName||null)?t:W(e.type)||"Memo";case N:t=e._payload,e=e._init;try{return W(e(t))}catch(e){}}return null}function H(e){var t=e.type;switch(e.tag){case 24:return"Cache";case 9:return(t.displayName||"Context")+".Consumer";case 10:return(t._context.displayName||"Context")+".Provider";case 18:return"DehydratedFragment";case 11:return e=(e=t.render).displayName||e.name||"",t.displayName||(""!==e?"ForwardRef("+e+")":"ForwardRef");case 7:return"Fragment";case 5:return t;case 4:return"Portal";case 3:return"Root";case 6:return"Text";case 16:return W(t);case 8:return t===E?"StrictMode":"Mode";case 22:return"Offscreen";case 12:return"Profiler";case 21:return"Scope";case 13:return"Suspense";case 19:return"SuspenseList";case 25:return"TracingMarker";case 1:case 0:case 17:case 2:case 14:case 15:if("function"==typeof t)return t.displayName||t.name||null;if("string"==typeof t)return t}return null}function V(e){switch(typeof e){case"boolean":case"number":case"string":case"undefined":case"object":return e;default:return""}}function j(e){var t=e.type;return(e=e.nodeName)&&"input"===e.toLowerCase()&&("checkbox"===t||"radio"===t)}function Z(e){e._valueTracker||(e._valueTracker=function(e){var t=j(e)?"checked":"value",n=Object.getOwnPropertyDescriptor(e.constructor.prototype,t),r=""+e[t];if(!e.hasOwnProperty(t)&&void 0!==n&&"function"==typeof n.get&&"function"==typeof n.set){var o=n.get,a=n.set;return Object.defineProperty(e,t,{configurable:!0,get:function(){return o.call(this)},set:function(e){r=""+e,a.call(this,e)}}),Object.defineProperty(e,t,{enumerable:n.enumerable}),{getValue:function(){return r},setValue:function(e){r=""+e},stopTracking:function(){e._valueTracker=null,delete e[t]}}}}(e))}function $(e){if(!e)return!1;var t=e._valueTracker;if(!t)return!0;var n=t.getValue(),r="";return e&&(r=j(e)?e.checked?"true":"false":e.value),(e=r)!==n&&(t.setValue(e),!0)}function K(e){if(void 0===(e=e||("undefined"!=typeof document?document:void 0)))return null;try{return e.activeElement||e.body}catch(t){return e.body}}function Y(e,t){var n=t.checked;return L({},t,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=n?n:e._wrapperState.initialChecked})}function q(e,t){var n=null==t.defaultValue?"":t.defaultValue,r=null!=t.checked?t.checked:t.defaultChecked;n=V(null!=t.value?t.value:n),e._wrapperState={initialChecked:r,initialValue:n,controlled:"checkbox"===t.type||"radio"===t.type?null!=t.checked:null!=t.value}}function J(e,t){null!=(t=t.checked)&&C(e,"checked",t,!1)}function X(e,t){J(e,t);var n=V(t.value),r=t.type;if(null!=n)"number"===r?(0===n&&""===e.value||e.value!=n)&&(e.value=""+n):e.value!==""+n&&(e.value=""+n);else if("submit"===r||"reset"===r)return void e.removeAttribute("value");t.hasOwnProperty("value")?ee(e,t.type,n):t.hasOwnProperty("defaultValue")&&ee(e,t.type,V(t.defaultValue)),null==t.checked&&null!=t.defaultChecked&&(e.defaultChecked=!!t.defaultChecked)}function Q(e,t,n){if(t.hasOwnProperty("value")||t.hasOwnProperty("defaultValue")){var r=t.type;if(!("submit"!==r&&"reset"!==r||void 0!==t.value&&null!==t.value))return;t=""+e._wrapperState.initialValue,n||t===e.value||(e.value=t),e.defaultValue=t}""!==(n=e.name)&&(e.name=""),e.defaultChecked=!!e._wrapperState.initialChecked,""!==n&&(e.name=n)}function ee(e,t,n){"number"===t&&K(e.ownerDocument)===e||(null==n?e.defaultValue=""+e._wrapperState.initialValue:e.defaultValue!==""+n&&(e.defaultValue=""+n))}var te=Array.isArray;function ne(e,t,n,r){if(e=e.options,t){t={};for(var o=0;o<n.length;o++)t["$"+n[o]]=!0;for(n=0;n<e.length;n++)o=t.hasOwnProperty("$"+e[n].value),e[n].selected!==o&&(e[n].selected=o),o&&r&&(e[n].defaultSelected=!0)}else{for(n=""+V(n),t=null,o=0;o<e.length;o++){if(e[o].value===n)return e[o].selected=!0,void(r&&(e[o].defaultSelected=!0));null!==t||e[o].disabled||(t=e[o])}null!==t&&(t.selected=!0)}}function re(e,t){if(null!=t.dangerouslySetInnerHTML)throw Error(a(91));return L({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue})}function oe(e,t){var n=t.value;if(null==n){if(n=t.children,t=t.defaultValue,null!=n){if(null!=t)throw Error(a(92));if(te(n)){if(1<n.length)throw Error(a(93));n=n[0]}t=n}null==t&&(t=""),n=t}e._wrapperState={initialValue:V(n)}}function ae(e,t){var n=V(t.value),r=V(t.defaultValue);null!=n&&((n=""+n)!==e.value&&(e.value=n),null==t.defaultValue&&e.defaultValue!==n&&(e.defaultValue=n)),null!=r&&(e.defaultValue=""+r)}function ie(e){var t=e.textContent;t===e._wrapperState.initialValue&&""!==t&&null!==t&&(e.value=t)}function se(e){switch(e){case"svg":return"http://www.w3.org/2000/svg";case"math":return"http://www.w3.org/1998/Math/MathML";default:return"http://www.w3.org/1999/xhtml"}}function le(e,t){return null==e||"http://www.w3.org/1999/xhtml"===e?se(t):"http://www.w3.org/2000/svg"===e&&"foreignObject"===t?"http://www.w3.org/1999/xhtml":e}var ce,de,ue=(de=function(e,t){if("http://www.w3.org/2000/svg"!==e.namespaceURI||"innerHTML"in e)e.innerHTML=t;else{for((ce=ce||document.createElement("div")).innerHTML="<svg>"+t.valueOf().toString()+"</svg>",t=ce.firstChild;e.firstChild;)e.removeChild(e.firstChild);for(;t.firstChild;)e.appendChild(t.firstChild)}},"undefined"!=typeof MSApp&&MSApp.execUnsafeLocalFunction?function(e,t,n,r){MSApp.execUnsafeLocalFunction((function(){return de(e,t)}))}:de);function he(e,t){if(t){var n=e.firstChild;if(n&&n===e.lastChild&&3===n.nodeType)return void(n.nodeValue=t)}e.textContent=t}var pe={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,zoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},me=["Webkit","ms","Moz","O"];function fe(e,t,n){return null==t||"boolean"==typeof t||""===t?"":n||"number"!=typeof t||0===t||pe.hasOwnProperty(e)&&pe[e]?(""+t).trim():t+"px"}function ge(e,t){for(var n in e=e.style,t)if(t.hasOwnProperty(n)){var r=0===n.indexOf("--"),o=fe(n,t[n],r);"float"===n&&(n="cssFloat"),r?e.setProperty(n,o):e[n]=o}}Object.keys(pe).forEach((function(e){me.forEach((function(t){t=t+e.charAt(0).toUpperCase()+e.substring(1),pe[t]=pe[e]}))}));var Ae=L({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});function be(e,t){if(t){if(Ae[e]&&(null!=t.children||null!=t.dangerouslySetInnerHTML))throw Error(a(137,e));if(null!=t.dangerouslySetInnerHTML){if(null!=t.children)throw Error(a(60));if("object"!=typeof t.dangerouslySetInnerHTML||!("__html"in t.dangerouslySetInnerHTML))throw Error(a(61))}if(null!=t.style&&"object"!=typeof t.style)throw Error(a(62))}}function Ce(e,t){if(-1===e.indexOf("-"))return"string"==typeof t.is;switch(e){case"annotation-xml":case"color-profile":case"font-face":case"font-face-src":case"font-face-uri":case"font-face-format":case"font-face-name":case"missing-glyph":return!1;default:return!0}}var ye=null;function ve(e){return(e=e.target||e.srcElement||window).correspondingUseElement&&(e=e.correspondingUseElement),3===e.nodeType?e.parentNode:e}var we=null,ke=null,Ee=null;function xe(e){if(e=yo(e)){if("function"!=typeof we)throw Error(a(280));var t=e.stateNode;t&&(t=wo(t),we(e.stateNode,e.type,t))}}function Se(e){ke?Ee?Ee.push(e):Ee=[e]:ke=e}function Te(){if(ke){var e=ke,t=Ee;if(Ee=ke=null,xe(e),t)for(e=0;e<t.length;e++)xe(t[e])}}function Be(e,t){return e(t)}function _e(){}var Ie=!1;function Pe(e,t,n){if(Ie)return e(t,n);Ie=!0;try{return Be(e,t,n)}finally{Ie=!1,(null!==ke||null!==Ee)&&(_e(),Te())}}function Ne(e,t){var n=e.stateNode;if(null===n)return null;var r=wo(n);if(null===r)return null;n=r[t];e:switch(t){case"onClick":case"onClickCapture":case"onDoubleClick":case"onDoubleClickCapture":case"onMouseDown":case"onMouseDownCapture":case"onMouseMove":case"onMouseMoveCapture":case"onMouseUp":case"onMouseUpCapture":case"onMouseEnter":(r=!r.disabled)||(r=!("button"===(e=e.type)||"input"===e||"select"===e||"textarea"===e)),e=!r;break e;default:e=!1}if(e)return null;if(n&&"function"!=typeof n)throw Error(a(231,t,typeof n));return n}var Me=!1;if(d)try{var Fe={};Object.defineProperty(Fe,"passive",{get:function(){Me=!0}}),window.addEventListener("test",Fe,Fe),window.removeEventListener("test",Fe,Fe)}catch(de){Me=!1}function Re(e,t,n,r,o,a,i,s,l){var c=Array.prototype.slice.call(arguments,3);try{t.apply(n,c)}catch(e){this.onError(e)}}var De=!1,Le=null,Oe=!1,Ue=null,ze={onError:function(e){De=!0,Le=e}};function Ge(e,t,n,r,o,a,i,s,l){De=!1,Le=null,Re.apply(ze,arguments)}function We(e){var t=e,n=e;if(e.alternate)for(;t.return;)t=t.return;else{e=t;do{0!=(4098&(t=e).flags)&&(n=t.return),e=t.return}while(e)}return 3===t.tag?n:null}function He(e){if(13===e.tag){var t=e.memoizedState;if(null===t&&null!==(e=e.alternate)&&(t=e.memoizedState),null!==t)return t.dehydrated}return null}function Ve(e){if(We(e)!==e)throw Error(a(188))}function je(e){return null!==(e=function(e){var t=e.alternate;if(!t){if(null===(t=We(e)))throw Error(a(188));return t!==e?null:e}for(var n=e,r=t;;){var o=n.return;if(null===o)break;var i=o.alternate;if(null===i){if(null!==(r=o.return)){n=r;continue}break}if(o.child===i.child){for(i=o.child;i;){if(i===n)return Ve(o),e;if(i===r)return Ve(o),t;i=i.sibling}throw Error(a(188))}if(n.return!==r.return)n=o,r=i;else{for(var s=!1,l=o.child;l;){if(l===n){s=!0,n=o,r=i;break}if(l===r){s=!0,r=o,n=i;break}l=l.sibling}if(!s){for(l=i.child;l;){if(l===n){s=!0,n=i,r=o;break}if(l===r){s=!0,r=i,n=o;break}l=l.sibling}if(!s)throw Error(a(189))}}if(n.alternate!==r)throw Error(a(190))}if(3!==n.tag)throw Error(a(188));return n.stateNode.current===n?e:t}(e))?Ze(e):null}function Ze(e){if(5===e.tag||6===e.tag)return e;for(e=e.child;null!==e;){var t=Ze(e);if(null!==t)return t;e=e.sibling}return null}var $e=o.unstable_scheduleCallback,Ke=o.unstable_cancelCallback,Ye=o.unstable_shouldYield,qe=o.unstable_requestPaint,Je=o.unstable_now,Xe=o.unstable_getCurrentPriorityLevel,Qe=o.unstable_ImmediatePriority,et=o.unstable_UserBlockingPriority,tt=o.unstable_NormalPriority,nt=o.unstable_LowPriority,rt=o.unstable_IdlePriority,ot=null,at=null,it=Math.clz32?Math.clz32:function(e){return 0===(e>>>=0)?32:31-(st(e)/lt|0)|0},st=Math.log,lt=Math.LN2,ct=64,dt=4194304;function ut(e){switch(e&-e){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return 4194240&e;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return 130023424&e;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;default:return e}}function ht(e,t){var n=e.pendingLanes;if(0===n)return 0;var r=0,o=e.suspendedLanes,a=e.pingedLanes,i=268435455&n;if(0!==i){var s=i&~o;0!==s?r=ut(s):0!=(a&=i)&&(r=ut(a))}else 0!=(i=n&~o)?r=ut(i):0!==a&&(r=ut(a));if(0===r)return 0;if(0!==t&&t!==r&&0==(t&o)&&((o=r&-r)>=(a=t&-t)||16===o&&0!=(4194240&a)))return t;if(0!=(4&r)&&(r|=16&n),0!==(t=e.entangledLanes))for(e=e.entanglements,t&=r;0<t;)o=1<<(n=31-it(t)),r|=e[n],t&=~o;return r}function pt(e,t){switch(e){case 1:case 2:case 4:return t+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return t+5e3;default:return-1}}function mt(e){return 0!=(e=-1073741825&e.pendingLanes)?e:1073741824&e?1073741824:0}function ft(){var e=ct;return 0==(4194240&(ct<<=1))&&(ct=64),e}function gt(e){for(var t=[],n=0;31>n;n++)t.push(e);return t}function At(e,t,n){e.pendingLanes|=t,536870912!==t&&(e.suspendedLanes=0,e.pingedLanes=0),(e=e.eventTimes)[t=31-it(t)]=n}function bt(e,t){var n=e.entangledLanes|=t;for(e=e.entanglements;n;){var r=31-it(n),o=1<<r;o&t|e[r]&t&&(e[r]|=t),n&=~o}}var Ct=0;function yt(e){return 1<(e&=-e)?4<e?0!=(268435455&e)?16:536870912:4:1}var vt,wt,kt,Et,xt,St=!1,Tt=[],Bt=null,_t=null,It=null,Pt=new Map,Nt=new Map,Mt=[],Ft="mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit".split(" ");function Rt(e,t){switch(e){case"focusin":case"focusout":Bt=null;break;case"dragenter":case"dragleave":_t=null;break;case"mouseover":case"mouseout":It=null;break;case"pointerover":case"pointerout":Pt.delete(t.pointerId);break;case"gotpointercapture":case"lostpointercapture":Nt.delete(t.pointerId)}}function Dt(e,t,n,r,o,a){return null===e||e.nativeEvent!==a?(e={blockedOn:t,domEventName:n,eventSystemFlags:r,nativeEvent:a,targetContainers:[o]},null!==t&&null!==(t=yo(t))&&wt(t),e):(e.eventSystemFlags|=r,t=e.targetContainers,null!==o&&-1===t.indexOf(o)&&t.push(o),e)}function Lt(e){var t=Co(e.target);if(null!==t){var n=We(t);if(null!==n)if(13===(t=n.tag)){if(null!==(t=He(n)))return e.blockedOn=t,void xt(e.priority,(function(){kt(n)}))}else if(3===t&&n.stateNode.current.memoizedState.isDehydrated)return void(e.blockedOn=3===n.tag?n.stateNode.containerInfo:null)}e.blockedOn=null}function Ot(e){if(null!==e.blockedOn)return!1;for(var t=e.targetContainers;0<t.length;){var n=Yt(e.domEventName,e.eventSystemFlags,t[0],e.nativeEvent);if(null!==n)return null!==(t=yo(n))&&wt(t),e.blockedOn=n,!1;var r=new(n=e.nativeEvent).constructor(n.type,n);ye=r,n.target.dispatchEvent(r),ye=null,t.shift()}return!0}function Ut(e,t,n){Ot(e)&&n.delete(t)}function zt(){St=!1,null!==Bt&&Ot(Bt)&&(Bt=null),null!==_t&&Ot(_t)&&(_t=null),null!==It&&Ot(It)&&(It=null),Pt.forEach(Ut),Nt.forEach(Ut)}function Gt(e,t){e.blockedOn===t&&(e.blockedOn=null,St||(St=!0,o.unstable_scheduleCallback(o.unstable_NormalPriority,zt)))}function Wt(e){function t(t){return Gt(t,e)}if(0<Tt.length){Gt(Tt[0],e);for(var n=1;n<Tt.length;n++){var r=Tt[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==Bt&&Gt(Bt,e),null!==_t&&Gt(_t,e),null!==It&&Gt(It,e),Pt.forEach(t),Nt.forEach(t),n=0;n<Mt.length;n++)(r=Mt[n]).blockedOn===e&&(r.blockedOn=null);for(;0<Mt.length&&null===(n=Mt[0]).blockedOn;)Lt(n),null===n.blockedOn&&Mt.shift()}var Ht=y.ReactCurrentBatchConfig,Vt=!0;function jt(e,t,n,r){var o=Ct,a=Ht.transition;Ht.transition=null;try{Ct=1,$t(e,t,n,r)}finally{Ct=o,Ht.transition=a}}function Zt(e,t,n,r){var o=Ct,a=Ht.transition;Ht.transition=null;try{Ct=4,$t(e,t,n,r)}finally{Ct=o,Ht.transition=a}}function $t(e,t,n,r){if(Vt){var o=Yt(e,t,n,r);if(null===o)Vr(e,t,r,Kt,n),Rt(e,r);else if(function(e,t,n,r,o){switch(t){case"focusin":return Bt=Dt(Bt,e,t,n,r,o),!0;case"dragenter":return _t=Dt(_t,e,t,n,r,o),!0;case"mouseover":return It=Dt(It,e,t,n,r,o),!0;case"pointerover":var a=o.pointerId;return Pt.set(a,Dt(Pt.get(a)||null,e,t,n,r,o)),!0;case"gotpointercapture":return a=o.pointerId,Nt.set(a,Dt(Nt.get(a)||null,e,t,n,r,o)),!0}return!1}(o,e,t,n,r))r.stopPropagation();else if(Rt(e,r),4&t&&-1<Ft.indexOf(e)){for(;null!==o;){var a=yo(o);if(null!==a&&vt(a),null===(a=Yt(e,t,n,r))&&Vr(e,t,r,Kt,n),a===o)break;o=a}null!==o&&r.stopPropagation()}else Vr(e,t,r,null,n)}}var Kt=null;function Yt(e,t,n,r){if(Kt=null,null!==(e=Co(e=ve(r))))if(null===(t=We(e)))e=null;else if(13===(n=t.tag)){if(null!==(e=He(t)))return e;e=null}else if(3===n){if(t.stateNode.current.memoizedState.isDehydrated)return 3===t.tag?t.stateNode.containerInfo:null;e=null}else t!==e&&(e=null);return Kt=e,null}function qt(e){switch(e){case"cancel":case"click":case"close":case"contextmenu":case"copy":case"cut":case"auxclick":case"dblclick":case"dragend":case"dragstart":case"drop":case"focusin":case"focusout":case"input":case"invalid":case"keydown":case"keypress":case"keyup":case"mousedown":case"mouseup":case"paste":case"pause":case"play":case"pointercancel":case"pointerdown":case"pointerup":case"ratechange":case"reset":case"resize":case"seeked":case"submit":case"touchcancel":case"touchend":case"touchstart":case"volumechange":case"change":case"selectionchange":case"textInput":case"compositionstart":case"compositionend":case"compositionupdate":case"beforeblur":case"afterblur":case"beforeinput":case"blur":case"fullscreenchange":case"focus":case"hashchange":case"popstate":case"select":case"selectstart":return 1;case"drag":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"mousemove":case"mouseout":case"mouseover":case"pointermove":case"pointerout":case"pointerover":case"scroll":case"toggle":case"touchmove":case"wheel":case"mouseenter":case"mouseleave":case"pointerenter":case"pointerleave":return 4;case"message":switch(Xe()){case Qe:return 1;case et:return 4;case tt:case nt:return 16;case rt:return 536870912;default:return 16}default:return 16}}var Jt=null,Xt=null,Qt=null;function en(){if(Qt)return Qt;var e,t,n=Xt,r=n.length,o="value"in Jt?Jt.value:Jt.textContent,a=o.length;for(e=0;e<r&&n[e]===o[e];e++);var i=r-e;for(t=1;t<=i&&n[r-t]===o[a-t];t++);return Qt=o.slice(e,1<t?1-t:void 0)}function tn(e){var t=e.keyCode;return"charCode"in e?0===(e=e.charCode)&&13===t&&(e=13):e=t,10===e&&(e=13),32<=e||13===e?e:0}function nn(){return!0}function rn(){return!1}function on(e){function t(t,n,r,o,a){for(var i in this._reactName=t,this._targetInst=r,this.type=n,this.nativeEvent=o,this.target=a,this.currentTarget=null,e)e.hasOwnProperty(i)&&(t=e[i],this[i]=t?t(o):o[i]);return this.isDefaultPrevented=(null!=o.defaultPrevented?o.defaultPrevented:!1===o.returnValue)?nn:rn,this.isPropagationStopped=rn,this}return L(t.prototype,{preventDefault:function(){this.defaultPrevented=!0;var e=this.nativeEvent;e&&(e.preventDefault?e.preventDefault():"unknown"!=typeof e.returnValue&&(e.returnValue=!1),this.isDefaultPrevented=nn)},stopPropagation:function(){var e=this.nativeEvent;e&&(e.stopPropagation?e.stopPropagation():"unknown"!=typeof e.cancelBubble&&(e.cancelBubble=!0),this.isPropagationStopped=nn)},persist:function(){},isPersistent:nn}),t}var an,sn,ln,cn={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(e){return e.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},dn=on(cn),un=L({},cn,{view:0,detail:0}),hn=on(un),pn=L({},un,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:xn,button:0,buttons:0,relatedTarget:function(e){return void 0===e.relatedTarget?e.fromElement===e.srcElement?e.toElement:e.fromElement:e.relatedTarget},movementX:function(e){return"movementX"in e?e.movementX:(e!==ln&&(ln&&"mousemove"===e.type?(an=e.screenX-ln.screenX,sn=e.screenY-ln.screenY):sn=an=0,ln=e),an)},movementY:function(e){return"movementY"in e?e.movementY:sn}}),mn=on(pn),fn=on(L({},pn,{dataTransfer:0})),gn=on(L({},un,{relatedTarget:0})),An=on(L({},cn,{animationName:0,elapsedTime:0,pseudoElement:0})),bn=L({},cn,{clipboardData:function(e){return"clipboardData"in e?e.clipboardData:window.clipboardData}}),Cn=on(bn),yn=on(L({},cn,{data:0})),vn={Esc:"Escape",Spacebar:" ",Left:"ArrowLeft",Up:"ArrowUp",Right:"ArrowRight",Down:"ArrowDown",Del:"Delete",Win:"OS",Menu:"ContextMenu",Apps:"ContextMenu",Scroll:"ScrollLock",MozPrintableKey:"Unidentified"},wn={8:"Backspace",9:"Tab",12:"Clear",13:"Enter",16:"Shift",17:"Control",18:"Alt",19:"Pause",20:"CapsLock",27:"Escape",32:" ",33:"PageUp",34:"PageDown",35:"End",36:"Home",37:"ArrowLeft",38:"ArrowUp",39:"ArrowRight",40:"ArrowDown",45:"Insert",46:"Delete",112:"F1",113:"F2",114:"F3",115:"F4",116:"F5",117:"F6",118:"F7",119:"F8",120:"F9",121:"F10",122:"F11",123:"F12",144:"NumLock",145:"ScrollLock",224:"Meta"},kn={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function En(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=kn[e])&&!!t[e]}function xn(){return En}var Sn=L({},un,{key:function(e){if(e.key){var t=vn[e.key]||e.key;if("Unidentified"!==t)return t}return"keypress"===e.type?13===(e=tn(e))?"Enter":String.fromCharCode(e):"keydown"===e.type||"keyup"===e.type?wn[e.keyCode]||"Unidentified":""},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:xn,charCode:function(e){return"keypress"===e.type?tn(e):0},keyCode:function(e){return"keydown"===e.type||"keyup"===e.type?e.keyCode:0},which:function(e){return"keypress"===e.type?tn(e):"keydown"===e.type||"keyup"===e.type?e.keyCode:0}}),Tn=on(Sn),Bn=on(L({},pn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),_n=on(L({},un,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:xn})),In=on(L({},cn,{propertyName:0,elapsedTime:0,pseudoElement:0})),Pn=L({},pn,{deltaX:function(e){return"deltaX"in e?e.deltaX:"wheelDeltaX"in e?-e.wheelDeltaX:0},deltaY:function(e){return"deltaY"in e?e.deltaY:"wheelDeltaY"in e?-e.wheelDeltaY:"wheelDelta"in e?-e.wheelDelta:0},deltaZ:0,deltaMode:0}),Nn=on(Pn),Mn=[9,13,27,32],Fn=d&&"CompositionEvent"in window,Rn=null;d&&"documentMode"in document&&(Rn=document.documentMode);var Dn=d&&"TextEvent"in window&&!Rn,Ln=d&&(!Fn||Rn&&8<Rn&&11>=Rn),On=String.fromCharCode(32),Un=!1;function zn(e,t){switch(e){case"keyup":return-1!==Mn.indexOf(t.keyCode);case"keydown":return 229!==t.keyCode;case"keypress":case"mousedown":case"focusout":return!0;default:return!1}}function Gn(e){return"object"==typeof(e=e.detail)&&"data"in e?e.data:null}var Wn=!1,Hn={color:!0,date:!0,datetime:!0,"datetime-local":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function Vn(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return"input"===t?!!Hn[e.type]:"textarea"===t}function jn(e,t,n,r){Se(r),0<(t=Zr(t,"onChange")).length&&(n=new dn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var Zn=null,$n=null;function Kn(e){Or(e,0)}function Yn(e){if($(vo(e)))return e}function qn(e,t){if("change"===e)return t}var Jn=!1;if(d){var Xn;if(d){var Qn="oninput"in document;if(!Qn){var er=document.createElement("div");er.setAttribute("oninput","return;"),Qn="function"==typeof er.oninput}Xn=Qn}else Xn=!1;Jn=Xn&&(!document.documentMode||9<document.documentMode)}function tr(){Zn&&(Zn.detachEvent("onpropertychange",nr),$n=Zn=null)}function nr(e){if("value"===e.propertyName&&Yn($n)){var t=[];jn(t,$n,e,ve(e)),Pe(Kn,t)}}function rr(e,t,n){"focusin"===e?(tr(),$n=n,(Zn=t).attachEvent("onpropertychange",nr)):"focusout"===e&&tr()}function or(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return Yn($n)}function ar(e,t){if("click"===e)return Yn(t)}function ir(e,t){if("input"===e||"change"===e)return Yn(t)}var sr="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t};function lr(e,t){if(sr(e,t))return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var n=Object.keys(e),r=Object.keys(t);if(n.length!==r.length)return!1;for(r=0;r<n.length;r++){var o=n[r];if(!u.call(t,o)||!sr(e[o],t[o]))return!1}return!0}function cr(e){for(;e&&e.firstChild;)e=e.firstChild;return e}function dr(e,t){var n,r=cr(e);for(e=0;r;){if(3===r.nodeType){if(n=e+r.textContent.length,e<=t&&n>=t)return{node:r,offset:t-e};e=n}e:{for(;r;){if(r.nextSibling){r=r.nextSibling;break e}r=r.parentNode}r=void 0}r=cr(r)}}function ur(e,t){return!(!e||!t)&&(e===t||(!e||3!==e.nodeType)&&(t&&3===t.nodeType?ur(e,t.parentNode):"contains"in e?e.contains(t):!!e.compareDocumentPosition&&!!(16&e.compareDocumentPosition(t))))}function hr(){for(var e=window,t=K();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(e){n=!1}if(!n)break;t=K((e=t.contentWindow).document)}return t}function pr(e){var t=e&&e.nodeName&&e.nodeName.toLowerCase();return t&&("input"===t&&("text"===e.type||"search"===e.type||"tel"===e.type||"url"===e.type||"password"===e.type)||"textarea"===t||"true"===e.contentEditable)}function mr(e){var t=hr(),n=e.focusedElem,r=e.selectionRange;if(t!==n&&n&&n.ownerDocument&&ur(n.ownerDocument.documentElement,n)){if(null!==r&&pr(n))if(t=r.start,void 0===(e=r.end)&&(e=t),"selectionStart"in n)n.selectionStart=t,n.selectionEnd=Math.min(e,n.value.length);else if((e=(t=n.ownerDocument||document)&&t.defaultView||window).getSelection){e=e.getSelection();var o=n.textContent.length,a=Math.min(r.start,o);r=void 0===r.end?a:Math.min(r.end,o),!e.extend&&a>r&&(o=r,r=a,a=o),o=dr(n,a);var i=dr(n,r);o&&i&&(1!==e.rangeCount||e.anchorNode!==o.node||e.anchorOffset!==o.offset||e.focusNode!==i.node||e.focusOffset!==i.offset)&&((t=t.createRange()).setStart(o.node,o.offset),e.removeAllRanges(),a>r?(e.addRange(t),e.extend(i.node,i.offset)):(t.setEnd(i.node,i.offset),e.addRange(t)))}for(t=[],e=n;e=e.parentNode;)1===e.nodeType&&t.push({element:e,left:e.scrollLeft,top:e.scrollTop});for("function"==typeof n.focus&&n.focus(),n=0;n<t.length;n++)(e=t[n]).element.scrollLeft=e.left,e.element.scrollTop=e.top}}var fr=d&&"documentMode"in document&&11>=document.documentMode,gr=null,Ar=null,br=null,Cr=!1;function yr(e,t,n){var r=n.window===n?n.document:9===n.nodeType?n:n.ownerDocument;Cr||null==gr||gr!==K(r)||(r="selectionStart"in(r=gr)&&pr(r)?{start:r.selectionStart,end:r.selectionEnd}:{anchorNode:(r=(r.ownerDocument&&r.ownerDocument.defaultView||window).getSelection()).anchorNode,anchorOffset:r.anchorOffset,focusNode:r.focusNode,focusOffset:r.focusOffset},br&&lr(br,r)||(br=r,0<(r=Zr(Ar,"onSelect")).length&&(t=new dn("onSelect","select",null,t,n),e.push({event:t,listeners:r}),t.target=gr)))}function vr(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n}var wr={animationend:vr("Animation","AnimationEnd"),animationiteration:vr("Animation","AnimationIteration"),animationstart:vr("Animation","AnimationStart"),transitionend:vr("Transition","TransitionEnd")},kr={},Er={};function xr(e){if(kr[e])return kr[e];if(!wr[e])return e;var t,n=wr[e];for(t in n)if(n.hasOwnProperty(t)&&t in Er)return kr[e]=n[t];return e}d&&(Er=document.createElement("div").style,"AnimationEvent"in window||(delete wr.animationend.animation,delete wr.animationiteration.animation,delete wr.animationstart.animation),"TransitionEvent"in window||delete wr.transitionend.transition);var Sr=xr("animationend"),Tr=xr("animationiteration"),Br=xr("animationstart"),_r=xr("transitionend"),Ir=new Map,Pr="abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel".split(" ");function Nr(e,t){Ir.set(e,t),l(t,[e])}for(var Mr=0;Mr<Pr.length;Mr++){var Fr=Pr[Mr];Nr(Fr.toLowerCase(),"on"+(Fr[0].toUpperCase()+Fr.slice(1)))}Nr(Sr,"onAnimationEnd"),Nr(Tr,"onAnimationIteration"),Nr(Br,"onAnimationStart"),Nr("dblclick","onDoubleClick"),Nr("focusin","onFocus"),Nr("focusout","onBlur"),Nr(_r,"onTransitionEnd"),c("onMouseEnter",["mouseout","mouseover"]),c("onMouseLeave",["mouseout","mouseover"]),c("onPointerEnter",["pointerout","pointerover"]),c("onPointerLeave",["pointerout","pointerover"]),l("onChange","change click focusin focusout input keydown keyup selectionchange".split(" ")),l("onSelect","focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange".split(" ")),l("onBeforeInput",["compositionend","keypress","textInput","paste"]),l("onCompositionEnd","compositionend focusout keydown keypress keyup mousedown".split(" ")),l("onCompositionStart","compositionstart focusout keydown keypress keyup mousedown".split(" ")),l("onCompositionUpdate","compositionupdate focusout keydown keypress keyup mousedown".split(" "));var Rr="abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting".split(" "),Dr=new Set("cancel close invalid load scroll toggle".split(" ").concat(Rr));function Lr(e,t,n){var r=e.type||"unknown-event";e.currentTarget=n,function(e,t,n,r,o,i,s,l,c){if(Ge.apply(this,arguments),De){if(!De)throw Error(a(198));var d=Le;De=!1,Le=null,Oe||(Oe=!0,Ue=d)}}(r,t,void 0,e),e.currentTarget=null}function Or(e,t){t=0!=(4&t);for(var n=0;n<e.length;n++){var r=e[n],o=r.event;r=r.listeners;e:{var a=void 0;if(t)for(var i=r.length-1;0<=i;i--){var s=r[i],l=s.instance,c=s.currentTarget;if(s=s.listener,l!==a&&o.isPropagationStopped())break e;Lr(o,s,c),a=l}else for(i=0;i<r.length;i++){if(l=(s=r[i]).instance,c=s.currentTarget,s=s.listener,l!==a&&o.isPropagationStopped())break e;Lr(o,s,c),a=l}}}if(Oe)throw e=Ue,Oe=!1,Ue=null,e}function Ur(e,t){var n=t[go];void 0===n&&(n=t[go]=new Set);var r=e+"__bubble";n.has(r)||(Hr(t,e,2,!1),n.add(r))}function zr(e,t,n){var r=0;t&&(r|=4),Hr(n,e,r,t)}var Gr="_reactListening"+Math.random().toString(36).slice(2);function Wr(e){if(!e[Gr]){e[Gr]=!0,i.forEach((function(t){"selectionchange"!==t&&(Dr.has(t)||zr(t,!1,e),zr(t,!0,e))}));var t=9===e.nodeType?e:e.ownerDocument;null===t||t[Gr]||(t[Gr]=!0,zr("selectionchange",!1,t))}}function Hr(e,t,n,r){switch(qt(t)){case 1:var o=jt;break;case 4:o=Zt;break;default:o=$t}n=o.bind(null,t,n,e),o=void 0,!Me||"touchstart"!==t&&"touchmove"!==t&&"wheel"!==t||(o=!0),r?void 0!==o?e.addEventListener(t,n,{capture:!0,passive:o}):e.addEventListener(t,n,!0):void 0!==o?e.addEventListener(t,n,{passive:o}):e.addEventListener(t,n,!1)}function Vr(e,t,n,r,o){var a=r;if(0==(1&t)&&0==(2&t)&&null!==r)e:for(;;){if(null===r)return;var i=r.tag;if(3===i||4===i){var s=r.stateNode.containerInfo;if(s===o||8===s.nodeType&&s.parentNode===o)break;if(4===i)for(i=r.return;null!==i;){var l=i.tag;if((3===l||4===l)&&((l=i.stateNode.containerInfo)===o||8===l.nodeType&&l.parentNode===o))return;i=i.return}for(;null!==s;){if(null===(i=Co(s)))return;if(5===(l=i.tag)||6===l){r=a=i;continue e}s=s.parentNode}}r=r.return}Pe((function(){var r=a,o=ve(n),i=[];e:{var s=Ir.get(e);if(void 0!==s){var l=dn,c=e;switch(e){case"keypress":if(0===tn(n))break e;case"keydown":case"keyup":l=Tn;break;case"focusin":c="focus",l=gn;break;case"focusout":c="blur",l=gn;break;case"beforeblur":case"afterblur":l=gn;break;case"click":if(2===n.button)break e;case"auxclick":case"dblclick":case"mousedown":case"mousemove":case"mouseup":case"mouseout":case"mouseover":case"contextmenu":l=mn;break;case"drag":case"dragend":case"dragenter":case"dragexit":case"dragleave":case"dragover":case"dragstart":case"drop":l=fn;break;case"touchcancel":case"touchend":case"touchmove":case"touchstart":l=_n;break;case Sr:case Tr:case Br:l=An;break;case _r:l=In;break;case"scroll":l=hn;break;case"wheel":l=Nn;break;case"copy":case"cut":case"paste":l=Cn;break;case"gotpointercapture":case"lostpointercapture":case"pointercancel":case"pointerdown":case"pointermove":case"pointerout":case"pointerover":case"pointerup":l=Bn}var d=0!=(4&t),u=!d&&"scroll"===e,h=d?null!==s?s+"Capture":null:s;d=[];for(var p,m=r;null!==m;){var f=(p=m).stateNode;if(5===p.tag&&null!==f&&(p=f,null!==h&&null!=(f=Ne(m,h))&&d.push(jr(m,f,p))),u)break;m=m.return}0<d.length&&(s=new l(s,c,null,n,o),i.push({event:s,listeners:d}))}}if(0==(7&t)){if(l="mouseout"===e||"pointerout"===e,(!(s="mouseover"===e||"pointerover"===e)||n===ye||!(c=n.relatedTarget||n.fromElement)||!Co(c)&&!c[fo])&&(l||s)&&(s=o.window===o?o:(s=o.ownerDocument)?s.defaultView||s.parentWindow:window,l?(l=r,null!==(c=(c=n.relatedTarget||n.toElement)?Co(c):null)&&(c!==(u=We(c))||5!==c.tag&&6!==c.tag)&&(c=null)):(l=null,c=r),l!==c)){if(d=mn,f="onMouseLeave",h="onMouseEnter",m="mouse","pointerout"!==e&&"pointerover"!==e||(d=Bn,f="onPointerLeave",h="onPointerEnter",m="pointer"),u=null==l?s:vo(l),p=null==c?s:vo(c),(s=new d(f,m+"leave",l,n,o)).target=u,s.relatedTarget=p,f=null,Co(o)===r&&((d=new d(h,m+"enter",c,n,o)).target=p,d.relatedTarget=u,f=d),u=f,l&&c)e:{for(h=c,m=0,p=d=l;p;p=$r(p))m++;for(p=0,f=h;f;f=$r(f))p++;for(;0<m-p;)d=$r(d),m--;for(;0<p-m;)h=$r(h),p--;for(;m--;){if(d===h||null!==h&&d===h.alternate)break e;d=$r(d),h=$r(h)}d=null}else d=null;null!==l&&Kr(i,s,l,d,!1),null!==c&&null!==u&&Kr(i,u,c,d,!0)}if("select"===(l=(s=r?vo(r):window).nodeName&&s.nodeName.toLowerCase())||"input"===l&&"file"===s.type)var g=qn;else if(Vn(s))if(Jn)g=ir;else{g=or;var A=rr}else(l=s.nodeName)&&"input"===l.toLowerCase()&&("checkbox"===s.type||"radio"===s.type)&&(g=ar);switch(g&&(g=g(e,r))?jn(i,g,n,o):(A&&A(e,s,r),"focusout"===e&&(A=s._wrapperState)&&A.controlled&&"number"===s.type&&ee(s,"number",s.value)),A=r?vo(r):window,e){case"focusin":(Vn(A)||"true"===A.contentEditable)&&(gr=A,Ar=r,br=null);break;case"focusout":br=Ar=gr=null;break;case"mousedown":Cr=!0;break;case"contextmenu":case"mouseup":case"dragend":Cr=!1,yr(i,n,o);break;case"selectionchange":if(fr)break;case"keydown":case"keyup":yr(i,n,o)}var b;if(Fn)e:{switch(e){case"compositionstart":var C="onCompositionStart";break e;case"compositionend":C="onCompositionEnd";break e;case"compositionupdate":C="onCompositionUpdate";break e}C=void 0}else Wn?zn(e,n)&&(C="onCompositionEnd"):"keydown"===e&&229===n.keyCode&&(C="onCompositionStart");C&&(Ln&&"ko"!==n.locale&&(Wn||"onCompositionStart"!==C?"onCompositionEnd"===C&&Wn&&(b=en()):(Xt="value"in(Jt=o)?Jt.value:Jt.textContent,Wn=!0)),0<(A=Zr(r,C)).length&&(C=new yn(C,e,null,n,o),i.push({event:C,listeners:A}),(b||null!==(b=Gn(n)))&&(C.data=b))),(b=Dn?function(e,t){switch(e){case"compositionend":return Gn(t);case"keypress":return 32!==t.which?null:(Un=!0,On);case"textInput":return(e=t.data)===On&&Un?null:e;default:return null}}(e,n):function(e,t){if(Wn)return"compositionend"===e||!Fn&&zn(e,t)?(e=en(),Qt=Xt=Jt=null,Wn=!1,e):null;switch(e){case"paste":default:return null;case"keypress":if(!(t.ctrlKey||t.altKey||t.metaKey)||t.ctrlKey&&t.altKey){if(t.char&&1<t.char.length)return t.char;if(t.which)return String.fromCharCode(t.which)}return null;case"compositionend":return Ln&&"ko"!==t.locale?null:t.data}}(e,n))&&0<(r=Zr(r,"onBeforeInput")).length&&(o=new yn("onBeforeInput","beforeinput",null,n,o),i.push({event:o,listeners:r}),o.data=b)}Or(i,t)}))}function jr(e,t,n){return{instance:e,listener:t,currentTarget:n}}function Zr(e,t){for(var n=t+"Capture",r=[];null!==e;){var o=e,a=o.stateNode;5===o.tag&&null!==a&&(o=a,null!=(a=Ne(e,n))&&r.unshift(jr(e,a,o)),null!=(a=Ne(e,t))&&r.push(jr(e,a,o))),e=e.return}return r}function $r(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Kr(e,t,n,r,o){for(var a=t._reactName,i=[];null!==n&&n!==r;){var s=n,l=s.alternate,c=s.stateNode;if(null!==l&&l===r)break;5===s.tag&&null!==c&&(s=c,o?null!=(l=Ne(n,a))&&i.unshift(jr(n,l,s)):o||null!=(l=Ne(n,a))&&i.push(jr(n,l,s))),n=n.return}0!==i.length&&e.push({event:t,listeners:i})}var Yr=/\r\n?/g,qr=/\u0000|\uFFFD/g;function Jr(e){return("string"==typeof e?e:""+e).replace(Yr,"\n").replace(qr,"")}function Xr(e,t,n){if(t=Jr(t),Jr(e)!==t&&n)throw Error(a(425))}function Qr(){}var eo=null,to=null;function no(e,t){return"textarea"===e||"noscript"===e||"string"==typeof t.children||"number"==typeof t.children||"object"==typeof t.dangerouslySetInnerHTML&&null!==t.dangerouslySetInnerHTML&&null!=t.dangerouslySetInnerHTML.__html}var ro="function"==typeof setTimeout?setTimeout:void 0,oo="function"==typeof clearTimeout?clearTimeout:void 0,ao="function"==typeof Promise?Promise:void 0,io="function"==typeof queueMicrotask?queueMicrotask:void 0!==ao?function(e){return ao.resolve(null).then(e).catch(so)}:ro;function so(e){setTimeout((function(){throw e}))}function lo(e,t){var n=t,r=0;do{var o=n.nextSibling;if(e.removeChild(n),o&&8===o.nodeType)if("/$"===(n=o.data)){if(0===r)return e.removeChild(o),void Wt(t);r--}else"$"!==n&&"$?"!==n&&"$!"!==n||r++;n=o}while(n);Wt(t)}function co(e){for(;null!=e;e=e.nextSibling){var t=e.nodeType;if(1===t||3===t)break;if(8===t){if("$"===(t=e.data)||"$!"===t||"$?"===t)break;if("/$"===t)return null}}return e}function uo(e){e=e.previousSibling;for(var t=0;e;){if(8===e.nodeType){var n=e.data;if("$"===n||"$!"===n||"$?"===n){if(0===t)return e;t--}else"/$"===n&&t++}e=e.previousSibling}return null}var ho=Math.random().toString(36).slice(2),po="__reactFiber$"+ho,mo="__reactProps$"+ho,fo="__reactContainer$"+ho,go="__reactEvents$"+ho,Ao="__reactListeners$"+ho,bo="__reactHandles$"+ho;function Co(e){var t=e[po];if(t)return t;for(var n=e.parentNode;n;){if(t=n[fo]||n[po]){if(n=t.alternate,null!==t.child||null!==n&&null!==n.child)for(e=uo(e);null!==e;){if(n=e[po])return n;e=uo(e)}return t}n=(e=n).parentNode}return null}function yo(e){return!(e=e[po]||e[fo])||5!==e.tag&&6!==e.tag&&13!==e.tag&&3!==e.tag?null:e}function vo(e){if(5===e.tag||6===e.tag)return e.stateNode;throw Error(a(33))}function wo(e){return e[mo]||null}var ko=[],Eo=-1;function xo(e){return{current:e}}function So(e){0>Eo||(e.current=ko[Eo],ko[Eo]=null,Eo--)}function To(e,t){Eo++,ko[Eo]=e.current,e.current=t}var Bo={},_o=xo(Bo),Io=xo(!1),Po=Bo;function No(e,t){var n=e.type.contextTypes;if(!n)return Bo;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var o,a={};for(o in n)a[o]=t[o];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=a),a}function Mo(e){return null!=e.childContextTypes}function Fo(){So(Io),So(_o)}function Ro(e,t,n){if(_o.current!==Bo)throw Error(a(168));To(_o,t),To(Io,n)}function Do(e,t,n){var r=e.stateNode;if(t=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var o in r=r.getChildContext())if(!(o in t))throw Error(a(108,H(e)||"Unknown",o));return L({},n,r)}function Lo(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||Bo,Po=_o.current,To(_o,e),To(Io,Io.current),!0}function Oo(e,t,n){var r=e.stateNode;if(!r)throw Error(a(169));n?(e=Do(e,t,Po),r.__reactInternalMemoizedMergedChildContext=e,So(Io),So(_o),To(_o,e)):So(Io),To(Io,n)}var Uo=null,zo=!1,Go=!1;function Wo(e){null===Uo?Uo=[e]:Uo.push(e)}function Ho(){if(!Go&&null!==Uo){Go=!0;var e=0,t=Ct;try{var n=Uo;for(Ct=1;e<n.length;e++){var r=n[e];do{r=r(!0)}while(null!==r)}Uo=null,zo=!1}catch(t){throw null!==Uo&&(Uo=Uo.slice(e+1)),$e(Qe,Ho),t}finally{Ct=t,Go=!1}}return null}var Vo=[],jo=0,Zo=null,$o=0,Ko=[],Yo=0,qo=null,Jo=1,Xo="";function Qo(e,t){Vo[jo++]=$o,Vo[jo++]=Zo,Zo=e,$o=t}function ea(e,t,n){Ko[Yo++]=Jo,Ko[Yo++]=Xo,Ko[Yo++]=qo,qo=e;var r=Jo;e=Xo;var o=32-it(r)-1;r&=~(1<<o),n+=1;var a=32-it(t)+o;if(30<a){var i=o-o%5;a=(r&(1<<i)-1).toString(32),r>>=i,o-=i,Jo=1<<32-it(t)+o|n<<o|r,Xo=a+e}else Jo=1<<a|n<<o|r,Xo=e}function ta(e){null!==e.return&&(Qo(e,1),ea(e,1,0))}function na(e){for(;e===Zo;)Zo=Vo[--jo],Vo[jo]=null,$o=Vo[--jo],Vo[jo]=null;for(;e===qo;)qo=Ko[--Yo],Ko[Yo]=null,Xo=Ko[--Yo],Ko[Yo]=null,Jo=Ko[--Yo],Ko[Yo]=null}var ra=null,oa=null,aa=!1,ia=null;function sa(e,t){var n=Nc(5,null,null,0);n.elementType="DELETED",n.stateNode=t,n.return=e,null===(t=e.deletions)?(e.deletions=[n],e.flags|=16):t.push(n)}function la(e,t){switch(e.tag){case 5:var n=e.type;return null!==(t=1!==t.nodeType||n.toLowerCase()!==t.nodeName.toLowerCase()?null:t)&&(e.stateNode=t,ra=e,oa=co(t.firstChild),!0);case 6:return null!==(t=""===e.pendingProps||3!==t.nodeType?null:t)&&(e.stateNode=t,ra=e,oa=null,!0);case 13:return null!==(t=8!==t.nodeType?null:t)&&(n=null!==qo?{id:Jo,overflow:Xo}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},(n=Nc(18,null,null,0)).stateNode=t,n.return=e,e.child=n,ra=e,oa=null,!0);default:return!1}}function ca(e){return 0!=(1&e.mode)&&0==(128&e.flags)}function da(e){if(aa){var t=oa;if(t){var n=t;if(!la(e,t)){if(ca(e))throw Error(a(418));t=co(n.nextSibling);var r=ra;t&&la(e,t)?sa(r,n):(e.flags=-4097&e.flags|2,aa=!1,ra=e)}}else{if(ca(e))throw Error(a(418));e.flags=-4097&e.flags|2,aa=!1,ra=e}}}function ua(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;ra=e}function ha(e){if(e!==ra)return!1;if(!aa)return ua(e),aa=!0,!1;var t;if((t=3!==e.tag)&&!(t=5!==e.tag)&&(t="head"!==(t=e.type)&&"body"!==t&&!no(e.type,e.memoizedProps)),t&&(t=oa)){if(ca(e))throw pa(),Error(a(418));for(;t;)sa(e,t),t=co(t.nextSibling)}if(ua(e),13===e.tag){if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(a(317));e:{for(e=e.nextSibling,t=0;e;){if(8===e.nodeType){var n=e.data;if("/$"===n){if(0===t){oa=co(e.nextSibling);break e}t--}else"$"!==n&&"$!"!==n&&"$?"!==n||t++}e=e.nextSibling}oa=null}}else oa=ra?co(e.stateNode.nextSibling):null;return!0}function pa(){for(var e=oa;e;)e=co(e.nextSibling)}function ma(){oa=ra=null,aa=!1}function fa(e){null===ia?ia=[e]:ia.push(e)}var ga=y.ReactCurrentBatchConfig;function Aa(e,t){if(e&&e.defaultProps){for(var n in t=L({},t),e=e.defaultProps)void 0===t[n]&&(t[n]=e[n]);return t}return t}var ba=xo(null),Ca=null,ya=null,va=null;function wa(){va=ya=Ca=null}function ka(e){var t=ba.current;So(ba),e._currentValue=t}function Ea(e,t,n){for(;null!==e;){var r=e.alternate;if((e.childLanes&t)!==t?(e.childLanes|=t,null!==r&&(r.childLanes|=t)):null!==r&&(r.childLanes&t)!==t&&(r.childLanes|=t),e===n)break;e=e.return}}function xa(e,t){Ca=e,va=ya=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(0!=(e.lanes&t)&&(ys=!0),e.firstContext=null)}function Sa(e){var t=e._currentValue;if(va!==e)if(e={context:e,memoizedValue:t,next:null},null===ya){if(null===Ca)throw Error(a(308));ya=e,Ca.dependencies={lanes:0,firstContext:e}}else ya=ya.next=e;return t}var Ta=null;function Ba(e){null===Ta?Ta=[e]:Ta.push(e)}function _a(e,t,n,r){var o=t.interleaved;return null===o?(n.next=n,Ba(t)):(n.next=o.next,o.next=n),t.interleaved=n,Ia(e,r)}function Ia(e,t){e.lanes|=t;var n=e.alternate;for(null!==n&&(n.lanes|=t),n=e,e=e.return;null!==e;)e.childLanes|=t,null!==(n=e.alternate)&&(n.childLanes|=t),n=e,e=e.return;return 3===n.tag?n.stateNode:null}var Pa=!1;function Na(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Ma(e,t){e=e.updateQueue,t.updateQueue===e&&(t.updateQueue={baseState:e.baseState,firstBaseUpdate:e.firstBaseUpdate,lastBaseUpdate:e.lastBaseUpdate,shared:e.shared,effects:e.effects})}function Fa(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function Ra(e,t,n){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,0!=(2&_l)){var o=r.pending;return null===o?t.next=t:(t.next=o.next,o.next=t),r.pending=t,Ia(e,n)}return null===(o=r.interleaved)?(t.next=t,Ba(r)):(t.next=o.next,o.next=t),r.interleaved=t,Ia(e,n)}function Da(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,0!=(4194240&n))){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,bt(e,n)}}function La(e,t){var n=e.updateQueue,r=e.alternate;if(null!==r&&n===(r=r.updateQueue)){var o=null,a=null;if(null!==(n=n.firstBaseUpdate)){do{var i={eventTime:n.eventTime,lane:n.lane,tag:n.tag,payload:n.payload,callback:n.callback,next:null};null===a?o=a=i:a=a.next=i,n=n.next}while(null!==n);null===a?o=a=t:a=a.next=t}else o=a=t;return n={baseState:r.baseState,firstBaseUpdate:o,lastBaseUpdate:a,shared:r.shared,effects:r.effects},void(e.updateQueue=n)}null===(e=n.lastBaseUpdate)?n.firstBaseUpdate=t:e.next=t,n.lastBaseUpdate=t}function Oa(e,t,n,r){var o=e.updateQueue;Pa=!1;var a=o.firstBaseUpdate,i=o.lastBaseUpdate,s=o.shared.pending;if(null!==s){o.shared.pending=null;var l=s,c=l.next;l.next=null,null===i?a=c:i.next=c,i=l;var d=e.alternate;null!==d&&(s=(d=d.updateQueue).lastBaseUpdate)!==i&&(null===s?d.firstBaseUpdate=c:s.next=c,d.lastBaseUpdate=l)}if(null!==a){var u=o.baseState;for(i=0,d=c=l=null,s=a;;){var h=s.lane,p=s.eventTime;if((r&h)===h){null!==d&&(d=d.next={eventTime:p,lane:0,tag:s.tag,payload:s.payload,callback:s.callback,next:null});e:{var m=e,f=s;switch(h=t,p=n,f.tag){case 1:if("function"==typeof(m=f.payload)){u=m.call(p,u,h);break e}u=m;break e;case 3:m.flags=-65537&m.flags|128;case 0:if(null==(h="function"==typeof(m=f.payload)?m.call(p,u,h):m))break e;u=L({},u,h);break e;case 2:Pa=!0}}null!==s.callback&&0!==s.lane&&(e.flags|=64,null===(h=o.effects)?o.effects=[s]:h.push(s))}else p={eventTime:p,lane:h,tag:s.tag,payload:s.payload,callback:s.callback,next:null},null===d?(c=d=p,l=u):d=d.next=p,i|=h;if(null===(s=s.next)){if(null===(s=o.shared.pending))break;s=(h=s).next,h.next=null,o.lastBaseUpdate=h,o.shared.pending=null}}if(null===d&&(l=u),o.baseState=l,o.firstBaseUpdate=c,o.lastBaseUpdate=d,null!==(t=o.shared.interleaved)){o=t;do{i|=o.lane,o=o.next}while(o!==t)}else null===a&&(o.shared.lanes=0);Ll|=i,e.lanes=i,e.memoizedState=u}}function Ua(e,t,n){if(e=t.effects,t.effects=null,null!==e)for(t=0;t<e.length;t++){var r=e[t],o=r.callback;if(null!==o){if(r.callback=null,r=n,"function"!=typeof o)throw Error(a(191,o));o.call(r)}}}var za=(new r.Component).refs;function Ga(e,t,n,r){n=null==(n=n(r,t=e.memoizedState))?t:L({},t,n),e.memoizedState=n,0===e.lanes&&(e.updateQueue.baseState=n)}var Wa={isMounted:function(e){return!!(e=e._reactInternals)&&We(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=tc(),o=nc(e),a=Fa(r,o);a.payload=t,null!=n&&(a.callback=n),null!==(t=Ra(e,a,o))&&(rc(t,e,o,r),Da(t,e,o))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=tc(),o=nc(e),a=Fa(r,o);a.tag=1,a.payload=t,null!=n&&(a.callback=n),null!==(t=Ra(e,a,o))&&(rc(t,e,o,r),Da(t,e,o))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=tc(),r=nc(e),o=Fa(n,r);o.tag=2,null!=t&&(o.callback=t),null!==(t=Ra(e,o,r))&&(rc(t,e,r,n),Da(t,e,r))}};function Ha(e,t,n,r,o,a,i){return"function"==typeof(e=e.stateNode).shouldComponentUpdate?e.shouldComponentUpdate(r,a,i):!(t.prototype&&t.prototype.isPureReactComponent&&lr(n,r)&&lr(o,a))}function Va(e,t,n){var r=!1,o=Bo,a=t.contextType;return"object"==typeof a&&null!==a?a=Sa(a):(o=Mo(t)?Po:_o.current,a=(r=null!=(r=t.contextTypes))?No(e,o):Bo),t=new t(n,a),e.memoizedState=null!==t.state&&void 0!==t.state?t.state:null,t.updater=Wa,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=o,e.__reactInternalMemoizedMaskedChildContext=a),t}function ja(e,t,n,r){e=t.state,"function"==typeof t.componentWillReceiveProps&&t.componentWillReceiveProps(n,r),"function"==typeof t.UNSAFE_componentWillReceiveProps&&t.UNSAFE_componentWillReceiveProps(n,r),t.state!==e&&Wa.enqueueReplaceState(t,t.state,null)}function Za(e,t,n,r){var o=e.stateNode;o.props=n,o.state=e.memoizedState,o.refs=za,Na(e);var a=t.contextType;"object"==typeof a&&null!==a?o.context=Sa(a):(a=Mo(t)?Po:_o.current,o.context=No(e,a)),o.state=e.memoizedState,"function"==typeof(a=t.getDerivedStateFromProps)&&(Ga(e,t,a,n),o.state=e.memoizedState),"function"==typeof t.getDerivedStateFromProps||"function"==typeof o.getSnapshotBeforeUpdate||"function"!=typeof o.UNSAFE_componentWillMount&&"function"!=typeof o.componentWillMount||(t=o.state,"function"==typeof o.componentWillMount&&o.componentWillMount(),"function"==typeof o.UNSAFE_componentWillMount&&o.UNSAFE_componentWillMount(),t!==o.state&&Wa.enqueueReplaceState(o,o.state,null),Oa(e,n,o,r),o.state=e.memoizedState),"function"==typeof o.componentDidMount&&(e.flags|=4194308)}function $a(e,t,n){if(null!==(e=n.ref)&&"function"!=typeof e&&"object"!=typeof e){if(n._owner){if(n=n._owner){if(1!==n.tag)throw Error(a(309));var r=n.stateNode}if(!r)throw Error(a(147,e));var o=r,i=""+e;return null!==t&&null!==t.ref&&"function"==typeof t.ref&&t.ref._stringRef===i?t.ref:(t=function(e){var t=o.refs;t===za&&(t=o.refs={}),null===e?delete t[i]:t[i]=e},t._stringRef=i,t)}if("string"!=typeof e)throw Error(a(284));if(!n._owner)throw Error(a(290,e))}return e}function Ka(e,t){throw e=Object.prototype.toString.call(t),Error(a(31,"[object Object]"===e?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function Ya(e){return(0,e._init)(e._payload)}function qa(e){function t(t,n){if(e){var r=t.deletions;null===r?(t.deletions=[n],t.flags|=16):r.push(n)}}function n(n,r){if(!e)return null;for(;null!==r;)t(n,r),r=r.sibling;return null}function r(e,t){for(e=new Map;null!==t;)null!==t.key?e.set(t.key,t):e.set(t.index,t),t=t.sibling;return e}function o(e,t){return(e=Fc(e,t)).index=0,e.sibling=null,e}function i(t,n,r){return t.index=r,e?null!==(r=t.alternate)?(r=r.index)<n?(t.flags|=2,n):r:(t.flags|=2,n):(t.flags|=1048576,n)}function s(t){return e&&null===t.alternate&&(t.flags|=2),t}function l(e,t,n,r){return null===t||6!==t.tag?((t=Oc(n,e.mode,r)).return=e,t):((t=o(t,n)).return=e,t)}function c(e,t,n,r){var a=n.type;return a===k?u(e,t,n.props.children,r,n.key):null!==t&&(t.elementType===a||"object"==typeof a&&null!==a&&a.$$typeof===N&&Ya(a)===t.type)?((r=o(t,n.props)).ref=$a(e,t,n),r.return=e,r):((r=Rc(n.type,n.key,n.props,null,e.mode,r)).ref=$a(e,t,n),r.return=e,r)}function d(e,t,n,r){return null===t||4!==t.tag||t.stateNode.containerInfo!==n.containerInfo||t.stateNode.implementation!==n.implementation?((t=Uc(n,e.mode,r)).return=e,t):((t=o(t,n.children||[])).return=e,t)}function u(e,t,n,r,a){return null===t||7!==t.tag?((t=Dc(n,e.mode,r,a)).return=e,t):((t=o(t,n)).return=e,t)}function h(e,t,n){if("string"==typeof t&&""!==t||"number"==typeof t)return(t=Oc(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case v:return(n=Rc(t.type,t.key,t.props,null,e.mode,n)).ref=$a(e,null,t),n.return=e,n;case w:return(t=Uc(t,e.mode,n)).return=e,t;case N:return h(e,(0,t._init)(t._payload),n)}if(te(t)||R(t))return(t=Dc(t,e.mode,n,null)).return=e,t;Ka(e,t)}return null}function p(e,t,n,r){var o=null!==t?t.key:null;if("string"==typeof n&&""!==n||"number"==typeof n)return null!==o?null:l(e,t,""+n,r);if("object"==typeof n&&null!==n){switch(n.$$typeof){case v:return n.key===o?c(e,t,n,r):null;case w:return n.key===o?d(e,t,n,r):null;case N:return p(e,t,(o=n._init)(n._payload),r)}if(te(n)||R(n))return null!==o?null:u(e,t,n,r,null);Ka(e,n)}return null}function m(e,t,n,r,o){if("string"==typeof r&&""!==r||"number"==typeof r)return l(t,e=e.get(n)||null,""+r,o);if("object"==typeof r&&null!==r){switch(r.$$typeof){case v:return c(t,e=e.get(null===r.key?n:r.key)||null,r,o);case w:return d(t,e=e.get(null===r.key?n:r.key)||null,r,o);case N:return m(e,t,n,(0,r._init)(r._payload),o)}if(te(r)||R(r))return u(t,e=e.get(n)||null,r,o,null);Ka(t,r)}return null}function f(o,a,s,l){for(var c=null,d=null,u=a,f=a=0,g=null;null!==u&&f<s.length;f++){u.index>f?(g=u,u=null):g=u.sibling;var A=p(o,u,s[f],l);if(null===A){null===u&&(u=g);break}e&&u&&null===A.alternate&&t(o,u),a=i(A,a,f),null===d?c=A:d.sibling=A,d=A,u=g}if(f===s.length)return n(o,u),aa&&Qo(o,f),c;if(null===u){for(;f<s.length;f++)null!==(u=h(o,s[f],l))&&(a=i(u,a,f),null===d?c=u:d.sibling=u,d=u);return aa&&Qo(o,f),c}for(u=r(o,u);f<s.length;f++)null!==(g=m(u,o,f,s[f],l))&&(e&&null!==g.alternate&&u.delete(null===g.key?f:g.key),a=i(g,a,f),null===d?c=g:d.sibling=g,d=g);return e&&u.forEach((function(e){return t(o,e)})),aa&&Qo(o,f),c}function g(o,s,l,c){var d=R(l);if("function"!=typeof d)throw Error(a(150));if(null==(l=d.call(l)))throw Error(a(151));for(var u=d=null,f=s,g=s=0,A=null,b=l.next();null!==f&&!b.done;g++,b=l.next()){f.index>g?(A=f,f=null):A=f.sibling;var C=p(o,f,b.value,c);if(null===C){null===f&&(f=A);break}e&&f&&null===C.alternate&&t(o,f),s=i(C,s,g),null===u?d=C:u.sibling=C,u=C,f=A}if(b.done)return n(o,f),aa&&Qo(o,g),d;if(null===f){for(;!b.done;g++,b=l.next())null!==(b=h(o,b.value,c))&&(s=i(b,s,g),null===u?d=b:u.sibling=b,u=b);return aa&&Qo(o,g),d}for(f=r(o,f);!b.done;g++,b=l.next())null!==(b=m(f,o,g,b.value,c))&&(e&&null!==b.alternate&&f.delete(null===b.key?g:b.key),s=i(b,s,g),null===u?d=b:u.sibling=b,u=b);return e&&f.forEach((function(e){return t(o,e)})),aa&&Qo(o,g),d}return function e(r,a,i,l){if("object"==typeof i&&null!==i&&i.type===k&&null===i.key&&(i=i.props.children),"object"==typeof i&&null!==i){switch(i.$$typeof){case v:e:{for(var c=i.key,d=a;null!==d;){if(d.key===c){if((c=i.type)===k){if(7===d.tag){n(r,d.sibling),(a=o(d,i.props.children)).return=r,r=a;break e}}else if(d.elementType===c||"object"==typeof c&&null!==c&&c.$$typeof===N&&Ya(c)===d.type){n(r,d.sibling),(a=o(d,i.props)).ref=$a(r,d,i),a.return=r,r=a;break e}n(r,d);break}t(r,d),d=d.sibling}i.type===k?((a=Dc(i.props.children,r.mode,l,i.key)).return=r,r=a):((l=Rc(i.type,i.key,i.props,null,r.mode,l)).ref=$a(r,a,i),l.return=r,r=l)}return s(r);case w:e:{for(d=i.key;null!==a;){if(a.key===d){if(4===a.tag&&a.stateNode.containerInfo===i.containerInfo&&a.stateNode.implementation===i.implementation){n(r,a.sibling),(a=o(a,i.children||[])).return=r,r=a;break e}n(r,a);break}t(r,a),a=a.sibling}(a=Uc(i,r.mode,l)).return=r,r=a}return s(r);case N:return e(r,a,(d=i._init)(i._payload),l)}if(te(i))return f(r,a,i,l);if(R(i))return g(r,a,i,l);Ka(r,i)}return"string"==typeof i&&""!==i||"number"==typeof i?(i=""+i,null!==a&&6===a.tag?(n(r,a.sibling),(a=o(a,i)).return=r,r=a):(n(r,a),(a=Oc(i,r.mode,l)).return=r,r=a),s(r)):n(r,a)}}var Ja=qa(!0),Xa=qa(!1),Qa={},ei=xo(Qa),ti=xo(Qa),ni=xo(Qa);function ri(e){if(e===Qa)throw Error(a(174));return e}function oi(e,t){switch(To(ni,t),To(ti,e),To(ei,Qa),e=t.nodeType){case 9:case 11:t=(t=t.documentElement)?t.namespaceURI:le(null,"");break;default:t=le(t=(e=8===e?t.parentNode:t).namespaceURI||null,e=e.tagName)}So(ei),To(ei,t)}function ai(){So(ei),So(ti),So(ni)}function ii(e){ri(ni.current);var t=ri(ei.current),n=le(t,e.type);t!==n&&(To(ti,e),To(ei,n))}function si(e){ti.current===e&&(So(ei),So(ti))}var li=xo(0);function ci(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||"$?"===n.data||"$!"===n.data))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(128&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var di=[];function ui(){for(var e=0;e<di.length;e++)di[e]._workInProgressVersionPrimary=null;di.length=0}var hi=y.ReactCurrentDispatcher,pi=y.ReactCurrentBatchConfig,mi=0,fi=null,gi=null,Ai=null,bi=!1,Ci=!1,yi=0,vi=0;function wi(){throw Error(a(321))}function ki(e,t){if(null===t)return!1;for(var n=0;n<t.length&&n<e.length;n++)if(!sr(e[n],t[n]))return!1;return!0}function Ei(e,t,n,r,o,i){if(mi=i,fi=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,hi.current=null===e||null===e.memoizedState?ss:ls,e=n(r,o),Ci){i=0;do{if(Ci=!1,yi=0,25<=i)throw Error(a(301));i+=1,Ai=gi=null,t.updateQueue=null,hi.current=cs,e=n(r,o)}while(Ci)}if(hi.current=is,t=null!==gi&&null!==gi.next,mi=0,Ai=gi=fi=null,bi=!1,t)throw Error(a(300));return e}function xi(){var e=0!==yi;return yi=0,e}function Si(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===Ai?fi.memoizedState=Ai=e:Ai=Ai.next=e,Ai}function Ti(){if(null===gi){var e=fi.alternate;e=null!==e?e.memoizedState:null}else e=gi.next;var t=null===Ai?fi.memoizedState:Ai.next;if(null!==t)Ai=t,gi=e;else{if(null===e)throw Error(a(310));e={memoizedState:(gi=e).memoizedState,baseState:gi.baseState,baseQueue:gi.baseQueue,queue:gi.queue,next:null},null===Ai?fi.memoizedState=Ai=e:Ai=Ai.next=e}return Ai}function Bi(e,t){return"function"==typeof t?t(e):t}function _i(e){var t=Ti(),n=t.queue;if(null===n)throw Error(a(311));n.lastRenderedReducer=e;var r=gi,o=r.baseQueue,i=n.pending;if(null!==i){if(null!==o){var s=o.next;o.next=i.next,i.next=s}r.baseQueue=o=i,n.pending=null}if(null!==o){i=o.next,r=r.baseState;var l=s=null,c=null,d=i;do{var u=d.lane;if((mi&u)===u)null!==c&&(c=c.next={lane:0,action:d.action,hasEagerState:d.hasEagerState,eagerState:d.eagerState,next:null}),r=d.hasEagerState?d.eagerState:e(r,d.action);else{var h={lane:u,action:d.action,hasEagerState:d.hasEagerState,eagerState:d.eagerState,next:null};null===c?(l=c=h,s=r):c=c.next=h,fi.lanes|=u,Ll|=u}d=d.next}while(null!==d&&d!==i);null===c?s=r:c.next=l,sr(r,t.memoizedState)||(ys=!0),t.memoizedState=r,t.baseState=s,t.baseQueue=c,n.lastRenderedState=r}if(null!==(e=n.interleaved)){o=e;do{i=o.lane,fi.lanes|=i,Ll|=i,o=o.next}while(o!==e)}else null===o&&(n.lanes=0);return[t.memoizedState,n.dispatch]}function Ii(e){var t=Ti(),n=t.queue;if(null===n)throw Error(a(311));n.lastRenderedReducer=e;var r=n.dispatch,o=n.pending,i=t.memoizedState;if(null!==o){n.pending=null;var s=o=o.next;do{i=e(i,s.action),s=s.next}while(s!==o);sr(i,t.memoizedState)||(ys=!0),t.memoizedState=i,null===t.baseQueue&&(t.baseState=i),n.lastRenderedState=i}return[i,r]}function Pi(){}function Ni(e,t){var n=fi,r=Ti(),o=t(),i=!sr(r.memoizedState,o);if(i&&(r.memoizedState=o,ys=!0),r=r.queue,Vi(Ri.bind(null,n,r,e),[e]),r.getSnapshot!==t||i||null!==Ai&&1&Ai.memoizedState.tag){if(n.flags|=2048,Ui(9,Fi.bind(null,n,r,o,t),void 0,null),null===Il)throw Error(a(349));0!=(30&mi)||Mi(n,t,o)}return o}function Mi(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},null===(t=fi.updateQueue)?(t={lastEffect:null,stores:null},fi.updateQueue=t,t.stores=[e]):null===(n=t.stores)?t.stores=[e]:n.push(e)}function Fi(e,t,n,r){t.value=n,t.getSnapshot=r,Di(t)&&Li(e)}function Ri(e,t,n){return n((function(){Di(t)&&Li(e)}))}function Di(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!sr(e,n)}catch(e){return!0}}function Li(e){var t=Ia(e,1);null!==t&&rc(t,e,1,-1)}function Oi(e){var t=Si();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Bi,lastRenderedState:e},t.queue=e,e=e.dispatch=ns.bind(null,fi,e),[t.memoizedState,e]}function Ui(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=fi.updateQueue)?(t={lastEffect:null,stores:null},fi.updateQueue=t,t.lastEffect=e.next=e):null===(n=t.lastEffect)?t.lastEffect=e.next=e:(r=n.next,n.next=e,e.next=r,t.lastEffect=e),e}function zi(){return Ti().memoizedState}function Gi(e,t,n,r){var o=Si();fi.flags|=e,o.memoizedState=Ui(1|t,n,void 0,void 0===r?null:r)}function Wi(e,t,n,r){var o=Ti();r=void 0===r?null:r;var a=void 0;if(null!==gi){var i=gi.memoizedState;if(a=i.destroy,null!==r&&ki(r,i.deps))return void(o.memoizedState=Ui(t,n,a,r))}fi.flags|=e,o.memoizedState=Ui(1|t,n,a,r)}function Hi(e,t){return Gi(8390656,8,e,t)}function Vi(e,t){return Wi(2048,8,e,t)}function ji(e,t){return Wi(4,2,e,t)}function Zi(e,t){return Wi(4,4,e,t)}function $i(e,t){return"function"==typeof t?(e=e(),t(e),function(){t(null)}):null!=t?(e=e(),t.current=e,function(){t.current=null}):void 0}function Ki(e,t,n){return n=null!=n?n.concat([e]):null,Wi(4,4,$i.bind(null,t,e),n)}function Yi(){}function qi(e,t){var n=Ti();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&ki(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Ji(e,t){var n=Ti();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&ki(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Xi(e,t,n){return 0==(21&mi)?(e.baseState&&(e.baseState=!1,ys=!0),e.memoizedState=n):(sr(n,t)||(n=ft(),fi.lanes|=n,Ll|=n,e.baseState=!0),t)}function Qi(e,t){var n=Ct;Ct=0!==n&&4>n?n:4,e(!0);var r=pi.transition;pi.transition={};try{e(!1),t()}finally{Ct=n,pi.transition=r}}function es(){return Ti().memoizedState}function ts(e,t,n){var r=nc(e);n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},rs(e)?os(t,n):null!==(n=_a(e,t,n,r))&&(rc(n,e,r,tc()),as(n,t,r))}function ns(e,t,n){var r=nc(e),o={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(rs(e))os(t,o);else{var a=e.alternate;if(0===e.lanes&&(null===a||0===a.lanes)&&null!==(a=t.lastRenderedReducer))try{var i=t.lastRenderedState,s=a(i,n);if(o.hasEagerState=!0,o.eagerState=s,sr(s,i)){var l=t.interleaved;return null===l?(o.next=o,Ba(t)):(o.next=l.next,l.next=o),void(t.interleaved=o)}}catch(e){}null!==(n=_a(e,t,o,r))&&(rc(n,e,r,o=tc()),as(n,t,r))}}function rs(e){var t=e.alternate;return e===fi||null!==t&&t===fi}function os(e,t){Ci=bi=!0;var n=e.pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function as(e,t,n){if(0!=(4194240&n)){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,bt(e,n)}}var is={readContext:Sa,useCallback:wi,useContext:wi,useEffect:wi,useImperativeHandle:wi,useInsertionEffect:wi,useLayoutEffect:wi,useMemo:wi,useReducer:wi,useRef:wi,useState:wi,useDebugValue:wi,useDeferredValue:wi,useTransition:wi,useMutableSource:wi,useSyncExternalStore:wi,useId:wi,unstable_isNewReconciler:!1},ss={readContext:Sa,useCallback:function(e,t){return Si().memoizedState=[e,void 0===t?null:t],e},useContext:Sa,useEffect:Hi,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,Gi(4194308,4,$i.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Gi(4194308,4,e,t)},useInsertionEffect:function(e,t){return Gi(4,2,e,t)},useMemo:function(e,t){var n=Si();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=Si();return t=void 0!==n?n(t):t,r.memoizedState=r.baseState=t,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:e,lastRenderedState:t},r.queue=e,e=e.dispatch=ts.bind(null,fi,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},Si().memoizedState=e},useState:Oi,useDebugValue:Yi,useDeferredValue:function(e){return Si().memoizedState=e},useTransition:function(){var e=Oi(!1),t=e[0];return e=Qi.bind(null,e[1]),Si().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=fi,o=Si();if(aa){if(void 0===n)throw Error(a(407));n=n()}else{if(n=t(),null===Il)throw Error(a(349));0!=(30&mi)||Mi(r,t,n)}o.memoizedState=n;var i={value:n,getSnapshot:t};return o.queue=i,Hi(Ri.bind(null,r,i,e),[e]),r.flags|=2048,Ui(9,Fi.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=Si(),t=Il.identifierPrefix;if(aa){var n=Xo;t=":"+t+"R"+(n=(Jo&~(1<<32-it(Jo)-1)).toString(32)+n),0<(n=yi++)&&(t+="H"+n.toString(32)),t+=":"}else t=":"+t+"r"+(n=vi++).toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},ls={readContext:Sa,useCallback:qi,useContext:Sa,useEffect:Vi,useImperativeHandle:Ki,useInsertionEffect:ji,useLayoutEffect:Zi,useMemo:Ji,useReducer:_i,useRef:zi,useState:function(){return _i(Bi)},useDebugValue:Yi,useDeferredValue:function(e){return Xi(Ti(),gi.memoizedState,e)},useTransition:function(){return[_i(Bi)[0],Ti().memoizedState]},useMutableSource:Pi,useSyncExternalStore:Ni,useId:es,unstable_isNewReconciler:!1},cs={readContext:Sa,useCallback:qi,useContext:Sa,useEffect:Vi,useImperativeHandle:Ki,useInsertionEffect:ji,useLayoutEffect:Zi,useMemo:Ji,useReducer:Ii,useRef:zi,useState:function(){return Ii(Bi)},useDebugValue:Yi,useDeferredValue:function(e){var t=Ti();return null===gi?t.memoizedState=e:Xi(t,gi.memoizedState,e)},useTransition:function(){return[Ii(Bi)[0],Ti().memoizedState]},useMutableSource:Pi,useSyncExternalStore:Ni,useId:es,unstable_isNewReconciler:!1};function ds(e,t){try{var n="",r=t;do{n+=G(r),r=r.return}while(r);var o=n}catch(e){o="\nError generating stack: "+e.message+"\n"+e.stack}return{value:e,source:t,stack:o,digest:null}}function us(e,t,n){return{value:e,source:null,stack:null!=n?n:null,digest:null!=t?t:null}}function hs(e,t){try{console.error(t.value)}catch(e){setTimeout((function(){throw e}))}}var ps="function"==typeof WeakMap?WeakMap:Map;function ms(e,t,n){(n=Fa(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){jl||(jl=!0,Zl=r),hs(0,t)},n}function fs(e,t,n){(n=Fa(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var o=t.value;n.payload=function(){return r(o)},n.callback=function(){hs(0,t)}}var a=e.stateNode;return null!==a&&"function"==typeof a.componentDidCatch&&(n.callback=function(){hs(0,t),"function"!=typeof r&&(null===$l?$l=new Set([this]):$l.add(this));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}function gs(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new ps;var o=new Set;r.set(t,o)}else void 0===(o=r.get(t))&&(o=new Set,r.set(t,o));o.has(n)||(o.add(n),e=Sc.bind(null,e,t,n),t.then(e,e))}function As(e){do{var t;if((t=13===e.tag)&&(t=null===(t=e.memoizedState)||null!==t.dehydrated),t)return e;e=e.return}while(null!==e);return null}function bs(e,t,n,r,o){return 0==(1&e.mode)?(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,1===n.tag&&(null===n.alternate?n.tag=17:((t=Fa(-1,1)).tag=2,Ra(n,t,1))),n.lanes|=1),e):(e.flags|=65536,e.lanes=o,e)}var Cs=y.ReactCurrentOwner,ys=!1;function vs(e,t,n,r){t.child=null===e?Xa(t,null,n,r):Ja(t,e.child,n,r)}function ws(e,t,n,r,o){n=n.render;var a=t.ref;return xa(t,o),r=Ei(e,t,n,r,a,o),n=xi(),null===e||ys?(aa&&n&&ta(t),t.flags|=1,vs(e,t,r,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,js(e,t,o))}function ks(e,t,n,r,o){if(null===e){var a=n.type;return"function"!=typeof a||Mc(a)||void 0!==a.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Rc(n.type,null,r,t,t.mode,o)).ref=t.ref,e.return=t,t.child=e):(t.tag=15,t.type=a,Es(e,t,a,r,o))}if(a=e.child,0==(e.lanes&o)){var i=a.memoizedProps;if((n=null!==(n=n.compare)?n:lr)(i,r)&&e.ref===t.ref)return js(e,t,o)}return t.flags|=1,(e=Fc(a,r)).ref=t.ref,e.return=t,t.child=e}function Es(e,t,n,r,o){if(null!==e){var a=e.memoizedProps;if(lr(a,r)&&e.ref===t.ref){if(ys=!1,t.pendingProps=r=a,0==(e.lanes&o))return t.lanes=e.lanes,js(e,t,o);0!=(131072&e.flags)&&(ys=!0)}}return Ts(e,t,n,r,o)}function xs(e,t,n){var r=t.pendingProps,o=r.children,a=null!==e?e.memoizedState:null;if("hidden"===r.mode)if(0==(1&t.mode))t.memoizedState={baseLanes:0,cachePool:null,transitions:null},To(Fl,Ml),Ml|=n;else{if(0==(1073741824&n))return e=null!==a?a.baseLanes|n:n,t.lanes=t.childLanes=1073741824,t.memoizedState={baseLanes:e,cachePool:null,transitions:null},t.updateQueue=null,To(Fl,Ml),Ml|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=null!==a?a.baseLanes:n,To(Fl,Ml),Ml|=r}else null!==a?(r=a.baseLanes|n,t.memoizedState=null):r=n,To(Fl,Ml),Ml|=r;return vs(e,t,o,n),t.child}function Ss(e,t){var n=t.ref;(null===e&&null!==n||null!==e&&e.ref!==n)&&(t.flags|=512,t.flags|=2097152)}function Ts(e,t,n,r,o){var a=Mo(n)?Po:_o.current;return a=No(t,a),xa(t,o),n=Ei(e,t,n,r,a,o),r=xi(),null===e||ys?(aa&&r&&ta(t),t.flags|=1,vs(e,t,n,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,js(e,t,o))}function Bs(e,t,n,r,o){if(Mo(n)){var a=!0;Lo(t)}else a=!1;if(xa(t,o),null===t.stateNode)Vs(e,t),Va(t,n,r),Za(t,n,r,o),r=!0;else if(null===e){var i=t.stateNode,s=t.memoizedProps;i.props=s;var l=i.context,c=n.contextType;c="object"==typeof c&&null!==c?Sa(c):No(t,c=Mo(n)?Po:_o.current);var d=n.getDerivedStateFromProps,u="function"==typeof d||"function"==typeof i.getSnapshotBeforeUpdate;u||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(s!==r||l!==c)&&ja(t,i,r,c),Pa=!1;var h=t.memoizedState;i.state=h,Oa(t,r,i,o),l=t.memoizedState,s!==r||h!==l||Io.current||Pa?("function"==typeof d&&(Ga(t,n,d,r),l=t.memoizedState),(s=Pa||Ha(t,n,s,r,h,l,c))?(u||"function"!=typeof i.UNSAFE_componentWillMount&&"function"!=typeof i.componentWillMount||("function"==typeof i.componentWillMount&&i.componentWillMount(),"function"==typeof i.UNSAFE_componentWillMount&&i.UNSAFE_componentWillMount()),"function"==typeof i.componentDidMount&&(t.flags|=4194308)):("function"==typeof i.componentDidMount&&(t.flags|=4194308),t.memoizedProps=r,t.memoizedState=l),i.props=r,i.state=l,i.context=c,r=s):("function"==typeof i.componentDidMount&&(t.flags|=4194308),r=!1)}else{i=t.stateNode,Ma(e,t),s=t.memoizedProps,c=t.type===t.elementType?s:Aa(t.type,s),i.props=c,u=t.pendingProps,h=i.context,l="object"==typeof(l=n.contextType)&&null!==l?Sa(l):No(t,l=Mo(n)?Po:_o.current);var p=n.getDerivedStateFromProps;(d="function"==typeof p||"function"==typeof i.getSnapshotBeforeUpdate)||"function"!=typeof i.UNSAFE_componentWillReceiveProps&&"function"!=typeof i.componentWillReceiveProps||(s!==u||h!==l)&&ja(t,i,r,l),Pa=!1,h=t.memoizedState,i.state=h,Oa(t,r,i,o);var m=t.memoizedState;s!==u||h!==m||Io.current||Pa?("function"==typeof p&&(Ga(t,n,p,r),m=t.memoizedState),(c=Pa||Ha(t,n,c,r,h,m,l)||!1)?(d||"function"!=typeof i.UNSAFE_componentWillUpdate&&"function"!=typeof i.componentWillUpdate||("function"==typeof i.componentWillUpdate&&i.componentWillUpdate(r,m,l),"function"==typeof i.UNSAFE_componentWillUpdate&&i.UNSAFE_componentWillUpdate(r,m,l)),"function"==typeof i.componentDidUpdate&&(t.flags|=4),"function"==typeof i.getSnapshotBeforeUpdate&&(t.flags|=1024)):("function"!=typeof i.componentDidUpdate||s===e.memoizedProps&&h===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||s===e.memoizedProps&&h===e.memoizedState||(t.flags|=1024),t.memoizedProps=r,t.memoizedState=m),i.props=r,i.state=m,i.context=l,r=c):("function"!=typeof i.componentDidUpdate||s===e.memoizedProps&&h===e.memoizedState||(t.flags|=4),"function"!=typeof i.getSnapshotBeforeUpdate||s===e.memoizedProps&&h===e.memoizedState||(t.flags|=1024),r=!1)}return _s(e,t,n,r,a,o)}function _s(e,t,n,r,o,a){Ss(e,t);var i=0!=(128&t.flags);if(!r&&!i)return o&&Oo(t,n,!1),js(e,t,a);r=t.stateNode,Cs.current=t;var s=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=Ja(t,e.child,null,a),t.child=Ja(t,null,s,a)):vs(e,t,s,a),t.memoizedState=r.state,o&&Oo(t,n,!0),t.child}function Is(e){var t=e.stateNode;t.pendingContext?Ro(0,t.pendingContext,t.pendingContext!==t.context):t.context&&Ro(0,t.context,!1),oi(e,t.containerInfo)}function Ps(e,t,n,r,o){return ma(),fa(o),t.flags|=256,vs(e,t,n,r),t.child}var Ns,Ms,Fs,Rs,Ds={dehydrated:null,treeContext:null,retryLane:0};function Ls(e){return{baseLanes:e,cachePool:null,transitions:null}}function Os(e,t,n){var r,o=t.pendingProps,i=li.current,s=!1,l=0!=(128&t.flags);if((r=l)||(r=(null===e||null!==e.memoizedState)&&0!=(2&i)),r?(s=!0,t.flags&=-129):null!==e&&null===e.memoizedState||(i|=1),To(li,1&i),null===e)return da(t),null!==(e=t.memoizedState)&&null!==(e=e.dehydrated)?(0==(1&t.mode)?t.lanes=1:"$!"===e.data?t.lanes=8:t.lanes=1073741824,null):(l=o.children,e=o.fallback,s?(o=t.mode,s=t.child,l={mode:"hidden",children:l},0==(1&o)&&null!==s?(s.childLanes=0,s.pendingProps=l):s=Lc(l,o,0,null),e=Dc(e,o,n,null),s.return=t,e.return=t,s.sibling=e,t.child=s,t.child.memoizedState=Ls(n),t.memoizedState=Ds,e):Us(t,l));if(null!==(i=e.memoizedState)&&null!==(r=i.dehydrated))return function(e,t,n,r,o,i,s){if(n)return 256&t.flags?(t.flags&=-257,zs(e,t,s,r=us(Error(a(422))))):null!==t.memoizedState?(t.child=e.child,t.flags|=128,null):(i=r.fallback,o=t.mode,r=Lc({mode:"visible",children:r.children},o,0,null),(i=Dc(i,o,s,null)).flags|=2,r.return=t,i.return=t,r.sibling=i,t.child=r,0!=(1&t.mode)&&Ja(t,e.child,null,s),t.child.memoizedState=Ls(s),t.memoizedState=Ds,i);if(0==(1&t.mode))return zs(e,t,s,null);if("$!"===o.data){if(r=o.nextSibling&&o.nextSibling.dataset)var l=r.dgst;return r=l,zs(e,t,s,r=us(i=Error(a(419)),r,void 0))}if(l=0!=(s&e.childLanes),ys||l){if(null!==(r=Il)){switch(s&-s){case 4:o=2;break;case 16:o=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:o=32;break;case 536870912:o=268435456;break;default:o=0}0!==(o=0!=(o&(r.suspendedLanes|s))?0:o)&&o!==i.retryLane&&(i.retryLane=o,Ia(e,o),rc(r,e,o,-1))}return gc(),zs(e,t,s,r=us(Error(a(421))))}return"$?"===o.data?(t.flags|=128,t.child=e.child,t=Bc.bind(null,e),o._reactRetry=t,null):(e=i.treeContext,oa=co(o.nextSibling),ra=t,aa=!0,ia=null,null!==e&&(Ko[Yo++]=Jo,Ko[Yo++]=Xo,Ko[Yo++]=qo,Jo=e.id,Xo=e.overflow,qo=t),(t=Us(t,r.children)).flags|=4096,t)}(e,t,l,o,r,i,n);if(s){s=o.fallback,l=t.mode,r=(i=e.child).sibling;var c={mode:"hidden",children:o.children};return 0==(1&l)&&t.child!==i?((o=t.child).childLanes=0,o.pendingProps=c,t.deletions=null):(o=Fc(i,c)).subtreeFlags=14680064&i.subtreeFlags,null!==r?s=Fc(r,s):(s=Dc(s,l,n,null)).flags|=2,s.return=t,o.return=t,o.sibling=s,t.child=o,o=s,s=t.child,l=null===(l=e.child.memoizedState)?Ls(n):{baseLanes:l.baseLanes|n,cachePool:null,transitions:l.transitions},s.memoizedState=l,s.childLanes=e.childLanes&~n,t.memoizedState=Ds,o}return e=(s=e.child).sibling,o=Fc(s,{mode:"visible",children:o.children}),0==(1&t.mode)&&(o.lanes=n),o.return=t,o.sibling=null,null!==e&&(null===(n=t.deletions)?(t.deletions=[e],t.flags|=16):n.push(e)),t.child=o,t.memoizedState=null,o}function Us(e,t){return(t=Lc({mode:"visible",children:t},e.mode,0,null)).return=e,e.child=t}function zs(e,t,n,r){return null!==r&&fa(r),Ja(t,e.child,null,n),(e=Us(t,t.pendingProps.children)).flags|=2,t.memoizedState=null,e}function Gs(e,t,n){e.lanes|=t;var r=e.alternate;null!==r&&(r.lanes|=t),Ea(e.return,t,n)}function Ws(e,t,n,r,o){var a=e.memoizedState;null===a?e.memoizedState={isBackwards:t,rendering:null,renderingStartTime:0,last:r,tail:n,tailMode:o}:(a.isBackwards=t,a.rendering=null,a.renderingStartTime=0,a.last=r,a.tail=n,a.tailMode=o)}function Hs(e,t,n){var r=t.pendingProps,o=r.revealOrder,a=r.tail;if(vs(e,t,r.children,n),0!=(2&(r=li.current)))r=1&r|2,t.flags|=128;else{if(null!==e&&0!=(128&e.flags))e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&Gs(e,n,t);else if(19===e.tag)Gs(e,n,t);else if(null!==e.child){e.child.return=e,e=e.child;continue}if(e===t)break e;for(;null===e.sibling;){if(null===e.return||e.return===t)break e;e=e.return}e.sibling.return=e.return,e=e.sibling}r&=1}if(To(li,r),0==(1&t.mode))t.memoizedState=null;else switch(o){case"forwards":for(n=t.child,o=null;null!==n;)null!==(e=n.alternate)&&null===ci(e)&&(o=n),n=n.sibling;null===(n=o)?(o=t.child,t.child=null):(o=n.sibling,n.sibling=null),Ws(t,!1,o,n,a);break;case"backwards":for(n=null,o=t.child,t.child=null;null!==o;){if(null!==(e=o.alternate)&&null===ci(e)){t.child=o;break}e=o.sibling,o.sibling=n,n=o,o=e}Ws(t,!0,n,null,a);break;case"together":Ws(t,!1,null,null,void 0);break;default:t.memoizedState=null}return t.child}function Vs(e,t){0==(1&t.mode)&&null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2)}function js(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Ll|=t.lanes,0==(n&t.childLanes))return null;if(null!==e&&t.child!==e.child)throw Error(a(153));if(null!==t.child){for(n=Fc(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Fc(e,e.pendingProps)).return=t;n.sibling=null}return t.child}function Zs(e,t){if(!aa)switch(e.tailMode){case"hidden":t=e.tail;for(var n=null;null!==t;)null!==t.alternate&&(n=t),t=t.sibling;null===n?e.tail=null:n.sibling=null;break;case"collapsed":n=e.tail;for(var r=null;null!==n;)null!==n.alternate&&(r=n),n=n.sibling;null===r?t||null===e.tail?e.tail=null:e.tail.sibling=null:r.sibling=null}}function $s(e){var t=null!==e.alternate&&e.alternate.child===e.child,n=0,r=0;if(t)for(var o=e.child;null!==o;)n|=o.lanes|o.childLanes,r|=14680064&o.subtreeFlags,r|=14680064&o.flags,o.return=e,o=o.sibling;else for(o=e.child;null!==o;)n|=o.lanes|o.childLanes,r|=o.subtreeFlags,r|=o.flags,o.return=e,o=o.sibling;return e.subtreeFlags|=r,e.childLanes=n,t}function Ks(e,t,n){var r=t.pendingProps;switch(na(t),t.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return $s(t),null;case 1:case 17:return Mo(t.type)&&Fo(),$s(t),null;case 3:return r=t.stateNode,ai(),So(Io),So(_o),ui(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(ha(t)?t.flags|=4:null===e||e.memoizedState.isDehydrated&&0==(256&t.flags)||(t.flags|=1024,null!==ia&&(sc(ia),ia=null))),Ms(e,t),$s(t),null;case 5:si(t);var o=ri(ni.current);if(n=t.type,null!==e&&null!=t.stateNode)Fs(e,t,n,r,o),e.ref!==t.ref&&(t.flags|=512,t.flags|=2097152);else{if(!r){if(null===t.stateNode)throw Error(a(166));return $s(t),null}if(e=ri(ei.current),ha(t)){r=t.stateNode,n=t.type;var i=t.memoizedProps;switch(r[po]=t,r[mo]=i,e=0!=(1&t.mode),n){case"dialog":Ur("cancel",r),Ur("close",r);break;case"iframe":case"object":case"embed":Ur("load",r);break;case"video":case"audio":for(o=0;o<Rr.length;o++)Ur(Rr[o],r);break;case"source":Ur("error",r);break;case"img":case"image":case"link":Ur("error",r),Ur("load",r);break;case"details":Ur("toggle",r);break;case"input":q(r,i),Ur("invalid",r);break;case"select":r._wrapperState={wasMultiple:!!i.multiple},Ur("invalid",r);break;case"textarea":oe(r,i),Ur("invalid",r)}for(var l in be(n,i),o=null,i)if(i.hasOwnProperty(l)){var c=i[l];"children"===l?"string"==typeof c?r.textContent!==c&&(!0!==i.suppressHydrationWarning&&Xr(r.textContent,c,e),o=["children",c]):"number"==typeof c&&r.textContent!==""+c&&(!0!==i.suppressHydrationWarning&&Xr(r.textContent,c,e),o=["children",""+c]):s.hasOwnProperty(l)&&null!=c&&"onScroll"===l&&Ur("scroll",r)}switch(n){case"input":Z(r),Q(r,i,!0);break;case"textarea":Z(r),ie(r);break;case"select":case"option":break;default:"function"==typeof i.onClick&&(r.onclick=Qr)}r=o,t.updateQueue=r,null!==r&&(t.flags|=4)}else{l=9===o.nodeType?o:o.ownerDocument,"http://www.w3.org/1999/xhtml"===e&&(e=se(n)),"http://www.w3.org/1999/xhtml"===e?"script"===n?((e=l.createElement("div")).innerHTML="<script><\/script>",e=e.removeChild(e.firstChild)):"string"==typeof r.is?e=l.createElement(n,{is:r.is}):(e=l.createElement(n),"select"===n&&(l=e,r.multiple?l.multiple=!0:r.size&&(l.size=r.size))):e=l.createElementNS(e,n),e[po]=t,e[mo]=r,Ns(e,t,!1,!1),t.stateNode=e;e:{switch(l=Ce(n,r),n){case"dialog":Ur("cancel",e),Ur("close",e),o=r;break;case"iframe":case"object":case"embed":Ur("load",e),o=r;break;case"video":case"audio":for(o=0;o<Rr.length;o++)Ur(Rr[o],e);o=r;break;case"source":Ur("error",e),o=r;break;case"img":case"image":case"link":Ur("error",e),Ur("load",e),o=r;break;case"details":Ur("toggle",e),o=r;break;case"input":q(e,r),o=Y(e,r),Ur("invalid",e);break;case"option":default:o=r;break;case"select":e._wrapperState={wasMultiple:!!r.multiple},o=L({},r,{value:void 0}),Ur("invalid",e);break;case"textarea":oe(e,r),o=re(e,r),Ur("invalid",e)}for(i in be(n,o),c=o)if(c.hasOwnProperty(i)){var d=c[i];"style"===i?ge(e,d):"dangerouslySetInnerHTML"===i?null!=(d=d?d.__html:void 0)&&ue(e,d):"children"===i?"string"==typeof d?("textarea"!==n||""!==d)&&he(e,d):"number"==typeof d&&he(e,""+d):"suppressContentEditableWarning"!==i&&"suppressHydrationWarning"!==i&&"autoFocus"!==i&&(s.hasOwnProperty(i)?null!=d&&"onScroll"===i&&Ur("scroll",e):null!=d&&C(e,i,d,l))}switch(n){case"input":Z(e),Q(e,r,!1);break;case"textarea":Z(e),ie(e);break;case"option":null!=r.value&&e.setAttribute("value",""+V(r.value));break;case"select":e.multiple=!!r.multiple,null!=(i=r.value)?ne(e,!!r.multiple,i,!1):null!=r.defaultValue&&ne(e,!!r.multiple,r.defaultValue,!0);break;default:"function"==typeof o.onClick&&(e.onclick=Qr)}switch(n){case"button":case"input":case"select":case"textarea":r=!!r.autoFocus;break e;case"img":r=!0;break e;default:r=!1}}r&&(t.flags|=4)}null!==t.ref&&(t.flags|=512,t.flags|=2097152)}return $s(t),null;case 6:if(e&&null!=t.stateNode)Rs(e,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(a(166));if(n=ri(ni.current),ri(ei.current),ha(t)){if(r=t.stateNode,n=t.memoizedProps,r[po]=t,(i=r.nodeValue!==n)&&null!==(e=ra))switch(e.tag){case 3:Xr(r.nodeValue,n,0!=(1&e.mode));break;case 5:!0!==e.memoizedProps.suppressHydrationWarning&&Xr(r.nodeValue,n,0!=(1&e.mode))}i&&(t.flags|=4)}else(r=(9===n.nodeType?n:n.ownerDocument).createTextNode(r))[po]=t,t.stateNode=r}return $s(t),null;case 13:if(So(li),r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(aa&&null!==oa&&0!=(1&t.mode)&&0==(128&t.flags))pa(),ma(),t.flags|=98560,i=!1;else if(i=ha(t),null!==r&&null!==r.dehydrated){if(null===e){if(!i)throw Error(a(318));if(!(i=null!==(i=t.memoizedState)?i.dehydrated:null))throw Error(a(317));i[po]=t}else ma(),0==(128&t.flags)&&(t.memoizedState=null),t.flags|=4;$s(t),i=!1}else null!==ia&&(sc(ia),ia=null),i=!0;if(!i)return 65536&t.flags?t:null}return 0!=(128&t.flags)?(t.lanes=n,t):((r=null!==r)!=(null!==e&&null!==e.memoizedState)&&r&&(t.child.flags|=8192,0!=(1&t.mode)&&(null===e||0!=(1&li.current)?0===Rl&&(Rl=3):gc())),null!==t.updateQueue&&(t.flags|=4),$s(t),null);case 4:return ai(),Ms(e,t),null===e&&Wr(t.stateNode.containerInfo),$s(t),null;case 10:return ka(t.type._context),$s(t),null;case 19:if(So(li),null===(i=t.memoizedState))return $s(t),null;if(r=0!=(128&t.flags),null===(l=i.rendering))if(r)Zs(i,!1);else{if(0!==Rl||null!==e&&0!=(128&e.flags))for(e=t.child;null!==e;){if(null!==(l=ci(e))){for(t.flags|=128,Zs(i,!1),null!==(r=l.updateQueue)&&(t.updateQueue=r,t.flags|=4),t.subtreeFlags=0,r=n,n=t.child;null!==n;)e=r,(i=n).flags&=14680066,null===(l=i.alternate)?(i.childLanes=0,i.lanes=e,i.child=null,i.subtreeFlags=0,i.memoizedProps=null,i.memoizedState=null,i.updateQueue=null,i.dependencies=null,i.stateNode=null):(i.childLanes=l.childLanes,i.lanes=l.lanes,i.child=l.child,i.subtreeFlags=0,i.deletions=null,i.memoizedProps=l.memoizedProps,i.memoizedState=l.memoizedState,i.updateQueue=l.updateQueue,i.type=l.type,e=l.dependencies,i.dependencies=null===e?null:{lanes:e.lanes,firstContext:e.firstContext}),n=n.sibling;return To(li,1&li.current|2),t.child}e=e.sibling}null!==i.tail&&Je()>Hl&&(t.flags|=128,r=!0,Zs(i,!1),t.lanes=4194304)}else{if(!r)if(null!==(e=ci(l))){if(t.flags|=128,r=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),Zs(i,!0),null===i.tail&&"hidden"===i.tailMode&&!l.alternate&&!aa)return $s(t),null}else 2*Je()-i.renderingStartTime>Hl&&1073741824!==n&&(t.flags|=128,r=!0,Zs(i,!1),t.lanes=4194304);i.isBackwards?(l.sibling=t.child,t.child=l):(null!==(n=i.last)?n.sibling=l:t.child=l,i.last=l)}return null!==i.tail?(t=i.tail,i.rendering=t,i.tail=t.sibling,i.renderingStartTime=Je(),t.sibling=null,n=li.current,To(li,r?1&n|2:1&n),t):($s(t),null);case 22:case 23:return hc(),r=null!==t.memoizedState,null!==e&&null!==e.memoizedState!==r&&(t.flags|=8192),r&&0!=(1&t.mode)?0!=(1073741824&Ml)&&($s(t),6&t.subtreeFlags&&(t.flags|=8192)):$s(t),null;case 24:case 25:return null}throw Error(a(156,t.tag))}function Ys(e,t){switch(na(t),t.tag){case 1:return Mo(t.type)&&Fo(),65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 3:return ai(),So(Io),So(_o),ui(),0!=(65536&(e=t.flags))&&0==(128&e)?(t.flags=-65537&e|128,t):null;case 5:return si(t),null;case 13:if(So(li),null!==(e=t.memoizedState)&&null!==e.dehydrated){if(null===t.alternate)throw Error(a(340));ma()}return 65536&(e=t.flags)?(t.flags=-65537&e|128,t):null;case 19:return So(li),null;case 4:return ai(),null;case 10:return ka(t.type._context),null;case 22:case 23:return hc(),null;default:return null}}Ns=function(e,t){for(var n=t.child;null!==n;){if(5===n.tag||6===n.tag)e.appendChild(n.stateNode);else if(4!==n.tag&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}},Ms=function(){},Fs=function(e,t,n,r){var o=e.memoizedProps;if(o!==r){e=t.stateNode,ri(ei.current);var a,i=null;switch(n){case"input":o=Y(e,o),r=Y(e,r),i=[];break;case"select":o=L({},o,{value:void 0}),r=L({},r,{value:void 0}),i=[];break;case"textarea":o=re(e,o),r=re(e,r),i=[];break;default:"function"!=typeof o.onClick&&"function"==typeof r.onClick&&(e.onclick=Qr)}for(d in be(n,r),n=null,o)if(!r.hasOwnProperty(d)&&o.hasOwnProperty(d)&&null!=o[d])if("style"===d){var l=o[d];for(a in l)l.hasOwnProperty(a)&&(n||(n={}),n[a]="")}else"dangerouslySetInnerHTML"!==d&&"children"!==d&&"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&"autoFocus"!==d&&(s.hasOwnProperty(d)?i||(i=[]):(i=i||[]).push(d,null));for(d in r){var c=r[d];if(l=null!=o?o[d]:void 0,r.hasOwnProperty(d)&&c!==l&&(null!=c||null!=l))if("style"===d)if(l){for(a in l)!l.hasOwnProperty(a)||c&&c.hasOwnProperty(a)||(n||(n={}),n[a]="");for(a in c)c.hasOwnProperty(a)&&l[a]!==c[a]&&(n||(n={}),n[a]=c[a])}else n||(i||(i=[]),i.push(d,n)),n=c;else"dangerouslySetInnerHTML"===d?(c=c?c.__html:void 0,l=l?l.__html:void 0,null!=c&&l!==c&&(i=i||[]).push(d,c)):"children"===d?"string"!=typeof c&&"number"!=typeof c||(i=i||[]).push(d,""+c):"suppressContentEditableWarning"!==d&&"suppressHydrationWarning"!==d&&(s.hasOwnProperty(d)?(null!=c&&"onScroll"===d&&Ur("scroll",e),i||l===c||(i=[])):(i=i||[]).push(d,c))}n&&(i=i||[]).push("style",n);var d=i;(t.updateQueue=d)&&(t.flags|=4)}},Rs=function(e,t,n,r){n!==r&&(t.flags|=4)};var qs=!1,Js=!1,Xs="function"==typeof WeakSet?WeakSet:Set,Qs=null;function el(e,t){var n=e.ref;if(null!==n)if("function"==typeof n)try{n(null)}catch(n){xc(e,t,n)}else n.current=null}function tl(e,t,n){try{n()}catch(n){xc(e,t,n)}}var nl=!1;function rl(e,t,n){var r=t.updateQueue;if(null!==(r=null!==r?r.lastEffect:null)){var o=r=r.next;do{if((o.tag&e)===e){var a=o.destroy;o.destroy=void 0,void 0!==a&&tl(t,n,a)}o=o.next}while(o!==r)}}function ol(e,t){if(null!==(t=null!==(t=t.updateQueue)?t.lastEffect:null)){var n=t=t.next;do{if((n.tag&e)===e){var r=n.create;n.destroy=r()}n=n.next}while(n!==t)}}function al(e){var t=e.ref;if(null!==t){var n=e.stateNode;e.tag,e=n,"function"==typeof t?t(e):t.current=e}}function il(e){var t=e.alternate;null!==t&&(e.alternate=null,il(t)),e.child=null,e.deletions=null,e.sibling=null,5===e.tag&&null!==(t=e.stateNode)&&(delete t[po],delete t[mo],delete t[go],delete t[Ao],delete t[bo]),e.stateNode=null,e.return=null,e.dependencies=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.stateNode=null,e.updateQueue=null}function sl(e){return 5===e.tag||3===e.tag||4===e.tag}function ll(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||sl(e.return))return null;e=e.return}for(e.sibling.return=e.return,e=e.sibling;5!==e.tag&&6!==e.tag&&18!==e.tag;){if(2&e.flags)continue e;if(null===e.child||4===e.tag)continue e;e.child.return=e,e=e.child}if(!(2&e.flags))return e.stateNode}}function cl(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?8===n.nodeType?n.parentNode.insertBefore(e,t):n.insertBefore(e,t):(8===n.nodeType?(t=n.parentNode).insertBefore(e,n):(t=n).appendChild(e),null!=(n=n._reactRootContainer)||null!==t.onclick||(t.onclick=Qr));else if(4!==r&&null!==(e=e.child))for(cl(e,t,n),e=e.sibling;null!==e;)cl(e,t,n),e=e.sibling}function dl(e,t,n){var r=e.tag;if(5===r||6===r)e=e.stateNode,t?n.insertBefore(e,t):n.appendChild(e);else if(4!==r&&null!==(e=e.child))for(dl(e,t,n),e=e.sibling;null!==e;)dl(e,t,n),e=e.sibling}var ul=null,hl=!1;function pl(e,t,n){for(n=n.child;null!==n;)ml(e,t,n),n=n.sibling}function ml(e,t,n){if(at&&"function"==typeof at.onCommitFiberUnmount)try{at.onCommitFiberUnmount(ot,n)}catch(e){}switch(n.tag){case 5:Js||el(n,t);case 6:var r=ul,o=hl;ul=null,pl(e,t,n),hl=o,null!==(ul=r)&&(hl?(e=ul,n=n.stateNode,8===e.nodeType?e.parentNode.removeChild(n):e.removeChild(n)):ul.removeChild(n.stateNode));break;case 18:null!==ul&&(hl?(e=ul,n=n.stateNode,8===e.nodeType?lo(e.parentNode,n):1===e.nodeType&&lo(e,n),Wt(e)):lo(ul,n.stateNode));break;case 4:r=ul,o=hl,ul=n.stateNode.containerInfo,hl=!0,pl(e,t,n),ul=r,hl=o;break;case 0:case 11:case 14:case 15:if(!Js&&null!==(r=n.updateQueue)&&null!==(r=r.lastEffect)){o=r=r.next;do{var a=o,i=a.destroy;a=a.tag,void 0!==i&&(0!=(2&a)||0!=(4&a))&&tl(n,t,i),o=o.next}while(o!==r)}pl(e,t,n);break;case 1:if(!Js&&(el(n,t),"function"==typeof(r=n.stateNode).componentWillUnmount))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(e){xc(n,t,e)}pl(e,t,n);break;case 21:pl(e,t,n);break;case 22:1&n.mode?(Js=(r=Js)||null!==n.memoizedState,pl(e,t,n),Js=r):pl(e,t,n);break;default:pl(e,t,n)}}function fl(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new Xs),t.forEach((function(t){var r=_c.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function gl(e,t){var n=t.deletions;if(null!==n)for(var r=0;r<n.length;r++){var o=n[r];try{var i=e,s=t,l=s;e:for(;null!==l;){switch(l.tag){case 5:ul=l.stateNode,hl=!1;break e;case 3:case 4:ul=l.stateNode.containerInfo,hl=!0;break e}l=l.return}if(null===ul)throw Error(a(160));ml(i,s,o),ul=null,hl=!1;var c=o.alternate;null!==c&&(c.return=null),o.return=null}catch(e){xc(o,t,e)}}if(12854&t.subtreeFlags)for(t=t.child;null!==t;)Al(t,e),t=t.sibling}function Al(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(gl(t,e),bl(e),4&r){try{rl(3,e,e.return),ol(3,e)}catch(t){xc(e,e.return,t)}try{rl(5,e,e.return)}catch(t){xc(e,e.return,t)}}break;case 1:gl(t,e),bl(e),512&r&&null!==n&&el(n,n.return);break;case 5:if(gl(t,e),bl(e),512&r&&null!==n&&el(n,n.return),32&e.flags){var o=e.stateNode;try{he(o,"")}catch(t){xc(e,e.return,t)}}if(4&r&&null!=(o=e.stateNode)){var i=e.memoizedProps,s=null!==n?n.memoizedProps:i,l=e.type,c=e.updateQueue;if(e.updateQueue=null,null!==c)try{"input"===l&&"radio"===i.type&&null!=i.name&&J(o,i),Ce(l,s);var d=Ce(l,i);for(s=0;s<c.length;s+=2){var u=c[s],h=c[s+1];"style"===u?ge(o,h):"dangerouslySetInnerHTML"===u?ue(o,h):"children"===u?he(o,h):C(o,u,h,d)}switch(l){case"input":X(o,i);break;case"textarea":ae(o,i);break;case"select":var p=o._wrapperState.wasMultiple;o._wrapperState.wasMultiple=!!i.multiple;var m=i.value;null!=m?ne(o,!!i.multiple,m,!1):p!==!!i.multiple&&(null!=i.defaultValue?ne(o,!!i.multiple,i.defaultValue,!0):ne(o,!!i.multiple,i.multiple?[]:"",!1))}o[mo]=i}catch(t){xc(e,e.return,t)}}break;case 6:if(gl(t,e),bl(e),4&r){if(null===e.stateNode)throw Error(a(162));o=e.stateNode,i=e.memoizedProps;try{o.nodeValue=i}catch(t){xc(e,e.return,t)}}break;case 3:if(gl(t,e),bl(e),4&r&&null!==n&&n.memoizedState.isDehydrated)try{Wt(t.containerInfo)}catch(t){xc(e,e.return,t)}break;case 4:default:gl(t,e),bl(e);break;case 13:gl(t,e),bl(e),8192&(o=e.child).flags&&(i=null!==o.memoizedState,o.stateNode.isHidden=i,!i||null!==o.alternate&&null!==o.alternate.memoizedState||(Wl=Je())),4&r&&fl(e);break;case 22:if(u=null!==n&&null!==n.memoizedState,1&e.mode?(Js=(d=Js)||u,gl(t,e),Js=d):gl(t,e),bl(e),8192&r){if(d=null!==e.memoizedState,(e.stateNode.isHidden=d)&&!u&&0!=(1&e.mode))for(Qs=e,u=e.child;null!==u;){for(h=Qs=u;null!==Qs;){switch(m=(p=Qs).child,p.tag){case 0:case 11:case 14:case 15:rl(4,p,p.return);break;case 1:el(p,p.return);var f=p.stateNode;if("function"==typeof f.componentWillUnmount){r=p,n=p.return;try{t=r,f.props=t.memoizedProps,f.state=t.memoizedState,f.componentWillUnmount()}catch(e){xc(r,n,e)}}break;case 5:el(p,p.return);break;case 22:if(null!==p.memoizedState){wl(h);continue}}null!==m?(m.return=p,Qs=m):wl(h)}u=u.sibling}e:for(u=null,h=e;;){if(5===h.tag){if(null===u){u=h;try{o=h.stateNode,d?"function"==typeof(i=o.style).setProperty?i.setProperty("display","none","important"):i.display="none":(l=h.stateNode,s=null!=(c=h.memoizedProps.style)&&c.hasOwnProperty("display")?c.display:null,l.style.display=fe("display",s))}catch(t){xc(e,e.return,t)}}}else if(6===h.tag){if(null===u)try{h.stateNode.nodeValue=d?"":h.memoizedProps}catch(t){xc(e,e.return,t)}}else if((22!==h.tag&&23!==h.tag||null===h.memoizedState||h===e)&&null!==h.child){h.child.return=h,h=h.child;continue}if(h===e)break e;for(;null===h.sibling;){if(null===h.return||h.return===e)break e;u===h&&(u=null),h=h.return}u===h&&(u=null),h.sibling.return=h.return,h=h.sibling}}break;case 19:gl(t,e),bl(e),4&r&&fl(e);case 21:}}function bl(e){var t=e.flags;if(2&t){try{e:{for(var n=e.return;null!==n;){if(sl(n)){var r=n;break e}n=n.return}throw Error(a(160))}switch(r.tag){case 5:var o=r.stateNode;32&r.flags&&(he(o,""),r.flags&=-33),dl(e,ll(e),o);break;case 3:case 4:var i=r.stateNode.containerInfo;cl(e,ll(e),i);break;default:throw Error(a(161))}}catch(t){xc(e,e.return,t)}e.flags&=-3}4096&t&&(e.flags&=-4097)}function Cl(e,t,n){Qs=e,yl(e,t,n)}function yl(e,t,n){for(var r=0!=(1&e.mode);null!==Qs;){var o=Qs,a=o.child;if(22===o.tag&&r){var i=null!==o.memoizedState||qs;if(!i){var s=o.alternate,l=null!==s&&null!==s.memoizedState||Js;s=qs;var c=Js;if(qs=i,(Js=l)&&!c)for(Qs=o;null!==Qs;)l=(i=Qs).child,22===i.tag&&null!==i.memoizedState?kl(o):null!==l?(l.return=i,Qs=l):kl(o);for(;null!==a;)Qs=a,yl(a,t,n),a=a.sibling;Qs=o,qs=s,Js=c}vl(e)}else 0!=(8772&o.subtreeFlags)&&null!==a?(a.return=o,Qs=a):vl(e)}}function vl(e){for(;null!==Qs;){var t=Qs;if(0!=(8772&t.flags)){var n=t.alternate;try{if(0!=(8772&t.flags))switch(t.tag){case 0:case 11:case 15:Js||ol(5,t);break;case 1:var r=t.stateNode;if(4&t.flags&&!Js)if(null===n)r.componentDidMount();else{var o=t.elementType===t.type?n.memoizedProps:Aa(t.type,n.memoizedProps);r.componentDidUpdate(o,n.memoizedState,r.__reactInternalSnapshotBeforeUpdate)}var i=t.updateQueue;null!==i&&Ua(t,i,r);break;case 3:var s=t.updateQueue;if(null!==s){if(n=null,null!==t.child)switch(t.child.tag){case 5:case 1:n=t.child.stateNode}Ua(t,s,n)}break;case 5:var l=t.stateNode;if(null===n&&4&t.flags){n=l;var c=t.memoizedProps;switch(t.type){case"button":case"input":case"select":case"textarea":c.autoFocus&&n.focus();break;case"img":c.src&&(n.src=c.src)}}break;case 6:case 4:case 12:case 19:case 17:case 21:case 22:case 23:case 25:break;case 13:if(null===t.memoizedState){var d=t.alternate;if(null!==d){var u=d.memoizedState;if(null!==u){var h=u.dehydrated;null!==h&&Wt(h)}}}break;default:throw Error(a(163))}Js||512&t.flags&&al(t)}catch(e){xc(t,t.return,e)}}if(t===e){Qs=null;break}if(null!==(n=t.sibling)){n.return=t.return,Qs=n;break}Qs=t.return}}function wl(e){for(;null!==Qs;){var t=Qs;if(t===e){Qs=null;break}var n=t.sibling;if(null!==n){n.return=t.return,Qs=n;break}Qs=t.return}}function kl(e){for(;null!==Qs;){var t=Qs;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{ol(4,t)}catch(e){xc(t,n,e)}break;case 1:var r=t.stateNode;if("function"==typeof r.componentDidMount){var o=t.return;try{r.componentDidMount()}catch(e){xc(t,o,e)}}var a=t.return;try{al(t)}catch(e){xc(t,a,e)}break;case 5:var i=t.return;try{al(t)}catch(e){xc(t,i,e)}}}catch(e){xc(t,t.return,e)}if(t===e){Qs=null;break}var s=t.sibling;if(null!==s){s.return=t.return,Qs=s;break}Qs=t.return}}var El,xl=Math.ceil,Sl=y.ReactCurrentDispatcher,Tl=y.ReactCurrentOwner,Bl=y.ReactCurrentBatchConfig,_l=0,Il=null,Pl=null,Nl=0,Ml=0,Fl=xo(0),Rl=0,Dl=null,Ll=0,Ol=0,Ul=0,zl=null,Gl=null,Wl=0,Hl=1/0,Vl=null,jl=!1,Zl=null,$l=null,Kl=!1,Yl=null,ql=0,Jl=0,Xl=null,Ql=-1,ec=0;function tc(){return 0!=(6&_l)?Je():-1!==Ql?Ql:Ql=Je()}function nc(e){return 0==(1&e.mode)?1:0!=(2&_l)&&0!==Nl?Nl&-Nl:null!==ga.transition?(0===ec&&(ec=ft()),ec):0!==(e=Ct)?e:e=void 0===(e=window.event)?16:qt(e.type)}function rc(e,t,n,r){if(50<Jl)throw Jl=0,Xl=null,Error(a(185));At(e,n,r),0!=(2&_l)&&e===Il||(e===Il&&(0==(2&_l)&&(Ol|=n),4===Rl&&lc(e,Nl)),oc(e,r),1===n&&0===_l&&0==(1&t.mode)&&(Hl=Je()+500,zo&&Ho()))}function oc(e,t){var n=e.callbackNode;!function(e,t){for(var n=e.suspendedLanes,r=e.pingedLanes,o=e.expirationTimes,a=e.pendingLanes;0<a;){var i=31-it(a),s=1<<i,l=o[i];-1===l?0!=(s&n)&&0==(s&r)||(o[i]=pt(s,t)):l<=t&&(e.expiredLanes|=s),a&=~s}}(e,t);var r=ht(e,e===Il?Nl:0);if(0===r)null!==n&&Ke(n),e.callbackNode=null,e.callbackPriority=0;else if(t=r&-r,e.callbackPriority!==t){if(null!=n&&Ke(n),1===t)0===e.tag?function(e){zo=!0,Wo(e)}(cc.bind(null,e)):Wo(cc.bind(null,e)),io((function(){0==(6&_l)&&Ho()})),n=null;else{switch(yt(r)){case 1:n=Qe;break;case 4:n=et;break;case 16:default:n=tt;break;case 536870912:n=rt}n=Ic(n,ac.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function ac(e,t){if(Ql=-1,ec=0,0!=(6&_l))throw Error(a(327));var n=e.callbackNode;if(kc()&&e.callbackNode!==n)return null;var r=ht(e,e===Il?Nl:0);if(0===r)return null;if(0!=(30&r)||0!=(r&e.expiredLanes)||t)t=Ac(e,r);else{t=r;var o=_l;_l|=2;var i=fc();for(Il===e&&Nl===t||(Vl=null,Hl=Je()+500,pc(e,t));;)try{Cc();break}catch(t){mc(e,t)}wa(),Sl.current=i,_l=o,null!==Pl?t=0:(Il=null,Nl=0,t=Rl)}if(0!==t){if(2===t&&0!==(o=mt(e))&&(r=o,t=ic(e,o)),1===t)throw n=Dl,pc(e,0),lc(e,r),oc(e,Je()),n;if(6===t)lc(e,r);else{if(o=e.current.alternate,0==(30&r)&&!function(e){for(var t=e;;){if(16384&t.flags){var n=t.updateQueue;if(null!==n&&null!==(n=n.stores))for(var r=0;r<n.length;r++){var o=n[r],a=o.getSnapshot;o=o.value;try{if(!sr(a(),o))return!1}catch(e){return!1}}}if(n=t.child,16384&t.subtreeFlags&&null!==n)n.return=t,t=n;else{if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return!0;t=t.return}t.sibling.return=t.return,t=t.sibling}}return!0}(o)&&(2===(t=Ac(e,r))&&0!==(i=mt(e))&&(r=i,t=ic(e,i)),1===t))throw n=Dl,pc(e,0),lc(e,r),oc(e,Je()),n;switch(e.finishedWork=o,e.finishedLanes=r,t){case 0:case 1:throw Error(a(345));case 2:case 5:wc(e,Gl,Vl);break;case 3:if(lc(e,r),(130023424&r)===r&&10<(t=Wl+500-Je())){if(0!==ht(e,0))break;if(((o=e.suspendedLanes)&r)!==r){tc(),e.pingedLanes|=e.suspendedLanes&o;break}e.timeoutHandle=ro(wc.bind(null,e,Gl,Vl),t);break}wc(e,Gl,Vl);break;case 4:if(lc(e,r),(4194240&r)===r)break;for(t=e.eventTimes,o=-1;0<r;){var s=31-it(r);i=1<<s,(s=t[s])>o&&(o=s),r&=~i}if(r=o,10<(r=(120>(r=Je()-r)?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*xl(r/1960))-r)){e.timeoutHandle=ro(wc.bind(null,e,Gl,Vl),r);break}wc(e,Gl,Vl);break;default:throw Error(a(329))}}}return oc(e,Je()),e.callbackNode===n?ac.bind(null,e):null}function ic(e,t){var n=zl;return e.current.memoizedState.isDehydrated&&(pc(e,t).flags|=256),2!==(e=Ac(e,t))&&(t=Gl,Gl=n,null!==t&&sc(t)),e}function sc(e){null===Gl?Gl=e:Gl.push.apply(Gl,e)}function lc(e,t){for(t&=~Ul,t&=~Ol,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0<t;){var n=31-it(t),r=1<<n;e[n]=-1,t&=~r}}function cc(e){if(0!=(6&_l))throw Error(a(327));kc();var t=ht(e,0);if(0==(1&t))return oc(e,Je()),null;var n=Ac(e,t);if(0!==e.tag&&2===n){var r=mt(e);0!==r&&(t=r,n=ic(e,r))}if(1===n)throw n=Dl,pc(e,0),lc(e,t),oc(e,Je()),n;if(6===n)throw Error(a(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,wc(e,Gl,Vl),oc(e,Je()),null}function dc(e,t){var n=_l;_l|=1;try{return e(t)}finally{0===(_l=n)&&(Hl=Je()+500,zo&&Ho())}}function uc(e){null!==Yl&&0===Yl.tag&&0==(6&_l)&&kc();var t=_l;_l|=1;var n=Bl.transition,r=Ct;try{if(Bl.transition=null,Ct=1,e)return e()}finally{Ct=r,Bl.transition=n,0==(6&(_l=t))&&Ho()}}function hc(){Ml=Fl.current,So(Fl)}function pc(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,oo(n)),null!==Pl)for(n=Pl.return;null!==n;){var r=n;switch(na(r),r.tag){case 1:null!=(r=r.type.childContextTypes)&&Fo();break;case 3:ai(),So(Io),So(_o),ui();break;case 5:si(r);break;case 4:ai();break;case 13:case 19:So(li);break;case 10:ka(r.type._context);break;case 22:case 23:hc()}n=n.return}if(Il=e,Pl=e=Fc(e.current,null),Nl=Ml=t,Rl=0,Dl=null,Ul=Ol=Ll=0,Gl=zl=null,null!==Ta){for(t=0;t<Ta.length;t++)if(null!==(r=(n=Ta[t]).interleaved)){n.interleaved=null;var o=r.next,a=n.pending;if(null!==a){var i=a.next;a.next=o,r.next=i}n.pending=r}Ta=null}return e}function mc(e,t){for(;;){var n=Pl;try{if(wa(),hi.current=is,bi){for(var r=fi.memoizedState;null!==r;){var o=r.queue;null!==o&&(o.pending=null),r=r.next}bi=!1}if(mi=0,Ai=gi=fi=null,Ci=!1,yi=0,Tl.current=null,null===n||null===n.return){Rl=1,Dl=t,Pl=null;break}e:{var i=e,s=n.return,l=n,c=t;if(t=Nl,l.flags|=32768,null!==c&&"object"==typeof c&&"function"==typeof c.then){var d=c,u=l,h=u.tag;if(0==(1&u.mode)&&(0===h||11===h||15===h)){var p=u.alternate;p?(u.updateQueue=p.updateQueue,u.memoizedState=p.memoizedState,u.lanes=p.lanes):(u.updateQueue=null,u.memoizedState=null)}var m=As(s);if(null!==m){m.flags&=-257,bs(m,s,l,0,t),1&m.mode&&gs(i,d,t),c=d;var f=(t=m).updateQueue;if(null===f){var g=new Set;g.add(c),t.updateQueue=g}else f.add(c);break e}if(0==(1&t)){gs(i,d,t),gc();break e}c=Error(a(426))}else if(aa&&1&l.mode){var A=As(s);if(null!==A){0==(65536&A.flags)&&(A.flags|=256),bs(A,s,l,0,t),fa(ds(c,l));break e}}i=c=ds(c,l),4!==Rl&&(Rl=2),null===zl?zl=[i]:zl.push(i),i=s;do{switch(i.tag){case 3:i.flags|=65536,t&=-t,i.lanes|=t,La(i,ms(0,c,t));break e;case 1:l=c;var b=i.type,C=i.stateNode;if(0==(128&i.flags)&&("function"==typeof b.getDerivedStateFromError||null!==C&&"function"==typeof C.componentDidCatch&&(null===$l||!$l.has(C)))){i.flags|=65536,t&=-t,i.lanes|=t,La(i,fs(i,l,t));break e}}i=i.return}while(null!==i)}vc(n)}catch(e){t=e,Pl===n&&null!==n&&(Pl=n=n.return);continue}break}}function fc(){var e=Sl.current;return Sl.current=is,null===e?is:e}function gc(){0!==Rl&&3!==Rl&&2!==Rl||(Rl=4),null===Il||0==(268435455&Ll)&&0==(268435455&Ol)||lc(Il,Nl)}function Ac(e,t){var n=_l;_l|=2;var r=fc();for(Il===e&&Nl===t||(Vl=null,pc(e,t));;)try{bc();break}catch(t){mc(e,t)}if(wa(),_l=n,Sl.current=r,null!==Pl)throw Error(a(261));return Il=null,Nl=0,Rl}function bc(){for(;null!==Pl;)yc(Pl)}function Cc(){for(;null!==Pl&&!Ye();)yc(Pl)}function yc(e){var t=El(e.alternate,e,Ml);e.memoizedProps=e.pendingProps,null===t?vc(e):Pl=t,Tl.current=null}function vc(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(32768&t.flags)){if(null!==(n=Ks(n,t,Ml)))return void(Pl=n)}else{if(null!==(n=Ys(n,t)))return n.flags&=32767,void(Pl=n);if(null===e)return Rl=6,void(Pl=null);e.flags|=32768,e.subtreeFlags=0,e.deletions=null}if(null!==(t=t.sibling))return void(Pl=t);Pl=t=e}while(null!==t);0===Rl&&(Rl=5)}function wc(e,t,n){var r=Ct,o=Bl.transition;try{Bl.transition=null,Ct=1,function(e,t,n,r){do{kc()}while(null!==Yl);if(0!=(6&_l))throw Error(a(327));n=e.finishedWork;var o=e.finishedLanes;if(null===n)return null;if(e.finishedWork=null,e.finishedLanes=0,n===e.current)throw Error(a(177));e.callbackNode=null,e.callbackPriority=0;var i=n.lanes|n.childLanes;if(function(e,t){var n=e.pendingLanes&~t;e.pendingLanes=t,e.suspendedLanes=0,e.pingedLanes=0,e.expiredLanes&=t,e.mutableReadLanes&=t,e.entangledLanes&=t,t=e.entanglements;var r=e.eventTimes;for(e=e.expirationTimes;0<n;){var o=31-it(n),a=1<<o;t[o]=0,r[o]=-1,e[o]=-1,n&=~a}}(e,i),e===Il&&(Pl=Il=null,Nl=0),0==(2064&n.subtreeFlags)&&0==(2064&n.flags)||Kl||(Kl=!0,Ic(tt,(function(){return kc(),null}))),i=0!=(15990&n.flags),0!=(15990&n.subtreeFlags)||i){i=Bl.transition,Bl.transition=null;var s=Ct;Ct=1;var l=_l;_l|=4,Tl.current=null,function(e,t){if(eo=Vt,pr(e=hr())){if("selectionStart"in e)var n={start:e.selectionStart,end:e.selectionEnd};else e:{var r=(n=(n=e.ownerDocument)&&n.defaultView||window).getSelection&&n.getSelection();if(r&&0!==r.rangeCount){n=r.anchorNode;var o=r.anchorOffset,i=r.focusNode;r=r.focusOffset;try{n.nodeType,i.nodeType}catch(e){n=null;break e}var s=0,l=-1,c=-1,d=0,u=0,h=e,p=null;t:for(;;){for(var m;h!==n||0!==o&&3!==h.nodeType||(l=s+o),h!==i||0!==r&&3!==h.nodeType||(c=s+r),3===h.nodeType&&(s+=h.nodeValue.length),null!==(m=h.firstChild);)p=h,h=m;for(;;){if(h===e)break t;if(p===n&&++d===o&&(l=s),p===i&&++u===r&&(c=s),null!==(m=h.nextSibling))break;p=(h=p).parentNode}h=m}n=-1===l||-1===c?null:{start:l,end:c}}else n=null}n=n||{start:0,end:0}}else n=null;for(to={focusedElem:e,selectionRange:n},Vt=!1,Qs=t;null!==Qs;)if(e=(t=Qs).child,0!=(1028&t.subtreeFlags)&&null!==e)e.return=t,Qs=e;else for(;null!==Qs;){t=Qs;try{var f=t.alternate;if(0!=(1024&t.flags))switch(t.tag){case 0:case 11:case 15:case 5:case 6:case 4:case 17:break;case 1:if(null!==f){var g=f.memoizedProps,A=f.memoizedState,b=t.stateNode,C=b.getSnapshotBeforeUpdate(t.elementType===t.type?g:Aa(t.type,g),A);b.__reactInternalSnapshotBeforeUpdate=C}break;case 3:var y=t.stateNode.containerInfo;1===y.nodeType?y.textContent="":9===y.nodeType&&y.documentElement&&y.removeChild(y.documentElement);break;default:throw Error(a(163))}}catch(e){xc(t,t.return,e)}if(null!==(e=t.sibling)){e.return=t.return,Qs=e;break}Qs=t.return}f=nl,nl=!1}(e,n),Al(n,e),mr(to),Vt=!!eo,to=eo=null,e.current=n,Cl(n,e,o),qe(),_l=l,Ct=s,Bl.transition=i}else e.current=n;if(Kl&&(Kl=!1,Yl=e,ql=o),0===(i=e.pendingLanes)&&($l=null),function(e){if(at&&"function"==typeof at.onCommitFiberRoot)try{at.onCommitFiberRoot(ot,e,void 0,128==(128&e.current.flags))}catch(e){}}(n.stateNode),oc(e,Je()),null!==t)for(r=e.onRecoverableError,n=0;n<t.length;n++)r((o=t[n]).value,{componentStack:o.stack,digest:o.digest});if(jl)throw jl=!1,e=Zl,Zl=null,e;0!=(1&ql)&&0!==e.tag&&kc(),0!=(1&(i=e.pendingLanes))?e===Xl?Jl++:(Jl=0,Xl=e):Jl=0,Ho()}(e,t,n,r)}finally{Bl.transition=o,Ct=r}return null}function kc(){if(null!==Yl){var e=yt(ql),t=Bl.transition,n=Ct;try{if(Bl.transition=null,Ct=16>e?16:e,null===Yl)var r=!1;else{if(e=Yl,Yl=null,ql=0,0!=(6&_l))throw Error(a(331));var o=_l;for(_l|=4,Qs=e.current;null!==Qs;){var i=Qs,s=i.child;if(0!=(16&Qs.flags)){var l=i.deletions;if(null!==l){for(var c=0;c<l.length;c++){var d=l[c];for(Qs=d;null!==Qs;){var u=Qs;switch(u.tag){case 0:case 11:case 15:rl(8,u,i)}var h=u.child;if(null!==h)h.return=u,Qs=h;else for(;null!==Qs;){var p=(u=Qs).sibling,m=u.return;if(il(u),u===d){Qs=null;break}if(null!==p){p.return=m,Qs=p;break}Qs=m}}}var f=i.alternate;if(null!==f){var g=f.child;if(null!==g){f.child=null;do{var A=g.sibling;g.sibling=null,g=A}while(null!==g)}}Qs=i}}if(0!=(2064&i.subtreeFlags)&&null!==s)s.return=i,Qs=s;else e:for(;null!==Qs;){if(0!=(2048&(i=Qs).flags))switch(i.tag){case 0:case 11:case 15:rl(9,i,i.return)}var b=i.sibling;if(null!==b){b.return=i.return,Qs=b;break e}Qs=i.return}}var C=e.current;for(Qs=C;null!==Qs;){var y=(s=Qs).child;if(0!=(2064&s.subtreeFlags)&&null!==y)y.return=s,Qs=y;else e:for(s=C;null!==Qs;){if(0!=(2048&(l=Qs).flags))try{switch(l.tag){case 0:case 11:case 15:ol(9,l)}}catch(e){xc(l,l.return,e)}if(l===s){Qs=null;break e}var v=l.sibling;if(null!==v){v.return=l.return,Qs=v;break e}Qs=l.return}}if(_l=o,Ho(),at&&"function"==typeof at.onPostCommitFiberRoot)try{at.onPostCommitFiberRoot(ot,e)}catch(e){}r=!0}return r}finally{Ct=n,Bl.transition=t}}return!1}function Ec(e,t,n){e=Ra(e,t=ms(0,t=ds(n,t),1),1),t=tc(),null!==e&&(At(e,1,t),oc(e,t))}function xc(e,t,n){if(3===e.tag)Ec(e,e,n);else for(;null!==t;){if(3===t.tag){Ec(t,e,n);break}if(1===t.tag){var r=t.stateNode;if("function"==typeof t.type.getDerivedStateFromError||"function"==typeof r.componentDidCatch&&(null===$l||!$l.has(r))){t=Ra(t,e=fs(t,e=ds(n,e),1),1),e=tc(),null!==t&&(At(t,1,e),oc(t,e));break}}t=t.return}}function Sc(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=tc(),e.pingedLanes|=e.suspendedLanes&n,Il===e&&(Nl&n)===n&&(4===Rl||3===Rl&&(130023424&Nl)===Nl&&500>Je()-Wl?pc(e,0):Ul|=n),oc(e,t)}function Tc(e,t){0===t&&(0==(1&e.mode)?t=1:(t=dt,0==(130023424&(dt<<=1))&&(dt=4194304)));var n=tc();null!==(e=Ia(e,t))&&(At(e,t,n),oc(e,n))}function Bc(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),Tc(e,n)}function _c(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,o=e.memoizedState;null!==o&&(n=o.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(a(314))}null!==r&&r.delete(t),Tc(e,n)}function Ic(e,t){return $e(e,t)}function Pc(e,t,n,r){this.tag=e,this.key=n,this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null,this.index=0,this.ref=null,this.pendingProps=t,this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null,this.mode=r,this.subtreeFlags=this.flags=0,this.deletions=null,this.childLanes=this.lanes=0,this.alternate=null}function Nc(e,t,n,r){return new Pc(e,t,n,r)}function Mc(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Fc(e,t){var n=e.alternate;return null===n?((n=Nc(e.tag,t,e.key,e.mode)).elementType=e.elementType,n.type=e.type,n.stateNode=e.stateNode,n.alternate=e,e.alternate=n):(n.pendingProps=t,n.type=e.type,n.flags=0,n.subtreeFlags=0,n.deletions=null),n.flags=14680064&e.flags,n.childLanes=e.childLanes,n.lanes=e.lanes,n.child=e.child,n.memoizedProps=e.memoizedProps,n.memoizedState=e.memoizedState,n.updateQueue=e.updateQueue,t=e.dependencies,n.dependencies=null===t?null:{lanes:t.lanes,firstContext:t.firstContext},n.sibling=e.sibling,n.index=e.index,n.ref=e.ref,n}function Rc(e,t,n,r,o,i){var s=2;if(r=e,"function"==typeof e)Mc(e)&&(s=1);else if("string"==typeof e)s=5;else e:switch(e){case k:return Dc(n.children,o,i,t);case E:s=8,o|=8;break;case x:return(e=Nc(12,n,t,2|o)).elementType=x,e.lanes=i,e;case _:return(e=Nc(13,n,t,o)).elementType=_,e.lanes=i,e;case I:return(e=Nc(19,n,t,o)).elementType=I,e.lanes=i,e;case M:return Lc(n,o,i,t);default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case S:s=10;break e;case T:s=9;break e;case B:s=11;break e;case P:s=14;break e;case N:s=16,r=null;break e}throw Error(a(130,null==e?e:typeof e,""))}return(t=Nc(s,n,t,o)).elementType=e,t.type=r,t.lanes=i,t}function Dc(e,t,n,r){return(e=Nc(7,e,r,t)).lanes=n,e}function Lc(e,t,n,r){return(e=Nc(22,e,r,t)).elementType=M,e.lanes=n,e.stateNode={isHidden:!1},e}function Oc(e,t,n){return(e=Nc(6,e,null,t)).lanes=n,e}function Uc(e,t,n){return(t=Nc(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function zc(e,t,n,r,o){this.tag=t,this.containerInfo=e,this.finishedWork=this.pingCache=this.current=this.pendingChildren=null,this.timeoutHandle=-1,this.callbackNode=this.pendingContext=this.context=null,this.callbackPriority=0,this.eventTimes=gt(0),this.expirationTimes=gt(-1),this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0,this.entanglements=gt(0),this.identifierPrefix=r,this.onRecoverableError=o,this.mutableSourceEagerHydrationData=null}function Gc(e,t,n,r,o,a,i,s,l){return e=new zc(e,t,n,s,l),1===t?(t=1,!0===a&&(t|=8)):t=0,a=Nc(3,null,null,t),e.current=a,a.stateNode=e,a.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},Na(a),e}function Wc(e){if(!e)return Bo;e:{if(We(e=e._reactInternals)!==e||1!==e.tag)throw Error(a(170));var t=e;do{switch(t.tag){case 3:t=t.stateNode.context;break e;case 1:if(Mo(t.type)){t=t.stateNode.__reactInternalMemoizedMergedChildContext;break e}}t=t.return}while(null!==t);throw Error(a(171))}if(1===e.tag){var n=e.type;if(Mo(n))return Do(e,n,t)}return t}function Hc(e,t,n,r,o,a,i,s,l){return(e=Gc(n,r,!0,e,0,a,0,s,l)).context=Wc(null),n=e.current,(a=Fa(r=tc(),o=nc(n))).callback=null!=t?t:null,Ra(n,a,o),e.current.lanes=o,At(e,o,r),oc(e,r),e}function Vc(e,t,n,r){var o=t.current,a=tc(),i=nc(o);return n=Wc(n),null===t.context?t.context=n:t.pendingContext=n,(t=Fa(a,i)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),null!==(e=Ra(o,t,i))&&(rc(e,o,i,a),Da(e,o,i)),i}function jc(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function Zc(e,t){if(null!==(e=e.memoizedState)&&null!==e.dehydrated){var n=e.retryLane;e.retryLane=0!==n&&n<t?n:t}}function $c(e,t){Zc(e,t),(e=e.alternate)&&Zc(e,t)}El=function(e,t,n){if(null!==e)if(e.memoizedProps!==t.pendingProps||Io.current)ys=!0;else{if(0==(e.lanes&n)&&0==(128&t.flags))return ys=!1,function(e,t,n){switch(t.tag){case 3:Is(t),ma();break;case 5:ii(t);break;case 1:Mo(t.type)&&Lo(t);break;case 4:oi(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,o=t.memoizedProps.value;To(ba,r._currentValue),r._currentValue=o;break;case 13:if(null!==(r=t.memoizedState))return null!==r.dehydrated?(To(li,1&li.current),t.flags|=128,null):0!=(n&t.child.childLanes)?Os(e,t,n):(To(li,1&li.current),null!==(e=js(e,t,n))?e.sibling:null);To(li,1&li.current);break;case 19:if(r=0!=(n&t.childLanes),0!=(128&e.flags)){if(r)return Hs(e,t,n);t.flags|=128}if(null!==(o=t.memoizedState)&&(o.rendering=null,o.tail=null,o.lastEffect=null),To(li,li.current),r)break;return null;case 22:case 23:return t.lanes=0,xs(e,t,n)}return js(e,t,n)}(e,t,n);ys=0!=(131072&e.flags)}else ys=!1,aa&&0!=(1048576&t.flags)&&ea(t,$o,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Vs(e,t),e=t.pendingProps;var o=No(t,_o.current);xa(t,n),o=Ei(null,t,r,e,o,n);var i=xi();return t.flags|=1,"object"==typeof o&&null!==o&&"function"==typeof o.render&&void 0===o.$$typeof?(t.tag=1,t.memoizedState=null,t.updateQueue=null,Mo(r)?(i=!0,Lo(t)):i=!1,t.memoizedState=null!==o.state&&void 0!==o.state?o.state:null,Na(t),o.updater=Wa,t.stateNode=o,o._reactInternals=t,Za(t,r,e,n),t=_s(null,t,r,!0,i,n)):(t.tag=0,aa&&i&&ta(t),vs(null,t,o,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Vs(e,t),e=t.pendingProps,r=(o=r._init)(r._payload),t.type=r,o=t.tag=function(e){if("function"==typeof e)return Mc(e)?1:0;if(null!=e){if((e=e.$$typeof)===B)return 11;if(e===P)return 14}return 2}(r),e=Aa(r,e),o){case 0:t=Ts(null,t,r,e,n);break e;case 1:t=Bs(null,t,r,e,n);break e;case 11:t=ws(null,t,r,e,n);break e;case 14:t=ks(null,t,r,Aa(r.type,e),n);break e}throw Error(a(306,r,""))}return t;case 0:return r=t.type,o=t.pendingProps,Ts(e,t,r,o=t.elementType===r?o:Aa(r,o),n);case 1:return r=t.type,o=t.pendingProps,Bs(e,t,r,o=t.elementType===r?o:Aa(r,o),n);case 3:e:{if(Is(t),null===e)throw Error(a(387));r=t.pendingProps,o=(i=t.memoizedState).element,Ma(e,t),Oa(t,r,null,n);var s=t.memoizedState;if(r=s.element,i.isDehydrated){if(i={element:r,isDehydrated:!1,cache:s.cache,pendingSuspenseBoundaries:s.pendingSuspenseBoundaries,transitions:s.transitions},t.updateQueue.baseState=i,t.memoizedState=i,256&t.flags){t=Ps(e,t,r,n,o=ds(Error(a(423)),t));break e}if(r!==o){t=Ps(e,t,r,n,o=ds(Error(a(424)),t));break e}for(oa=co(t.stateNode.containerInfo.firstChild),ra=t,aa=!0,ia=null,n=Xa(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|4096,n=n.sibling}else{if(ma(),r===o){t=js(e,t,n);break e}vs(e,t,r,n)}t=t.child}return t;case 5:return ii(t),null===e&&da(t),r=t.type,o=t.pendingProps,i=null!==e?e.memoizedProps:null,s=o.children,no(r,o)?s=null:null!==i&&no(r,i)&&(t.flags|=32),Ss(e,t),vs(e,t,s,n),t.child;case 6:return null===e&&da(t),null;case 13:return Os(e,t,n);case 4:return oi(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=Ja(t,null,r,n):vs(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,ws(e,t,r,o=t.elementType===r?o:Aa(r,o),n);case 7:return vs(e,t,t.pendingProps,n),t.child;case 8:case 12:return vs(e,t,t.pendingProps.children,n),t.child;case 10:e:{if(r=t.type._context,o=t.pendingProps,i=t.memoizedProps,s=o.value,To(ba,r._currentValue),r._currentValue=s,null!==i)if(sr(i.value,s)){if(i.children===o.children&&!Io.current){t=js(e,t,n);break e}}else for(null!==(i=t.child)&&(i.return=t);null!==i;){var l=i.dependencies;if(null!==l){s=i.child;for(var c=l.firstContext;null!==c;){if(c.context===r){if(1===i.tag){(c=Fa(-1,n&-n)).tag=2;var d=i.updateQueue;if(null!==d){var u=(d=d.shared).pending;null===u?c.next=c:(c.next=u.next,u.next=c),d.pending=c}}i.lanes|=n,null!==(c=i.alternate)&&(c.lanes|=n),Ea(i.return,n,t),l.lanes|=n;break}c=c.next}}else if(10===i.tag)s=i.type===t.type?null:i.child;else if(18===i.tag){if(null===(s=i.return))throw Error(a(341));s.lanes|=n,null!==(l=s.alternate)&&(l.lanes|=n),Ea(s,n,t),s=i.sibling}else s=i.child;if(null!==s)s.return=i;else for(s=i;null!==s;){if(s===t){s=null;break}if(null!==(i=s.sibling)){i.return=s.return,s=i;break}s=s.return}i=s}vs(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,r=t.pendingProps.children,xa(t,n),r=r(o=Sa(o)),t.flags|=1,vs(e,t,r,n),t.child;case 14:return o=Aa(r=t.type,t.pendingProps),ks(e,t,r,o=Aa(r.type,o),n);case 15:return Es(e,t,t.type,t.pendingProps,n);case 17:return r=t.type,o=t.pendingProps,o=t.elementType===r?o:Aa(r,o),Vs(e,t),t.tag=1,Mo(r)?(e=!0,Lo(t)):e=!1,xa(t,n),Va(t,r,o),Za(t,r,o,n),_s(null,t,r,!0,e,n);case 19:return Hs(e,t,n);case 22:return xs(e,t,n)}throw Error(a(156,t.tag))};var Kc="function"==typeof reportError?reportError:function(e){console.error(e)};function Yc(e){this._internalRoot=e}function qc(e){this._internalRoot=e}function Jc(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType)}function Xc(e){return!(!e||1!==e.nodeType&&9!==e.nodeType&&11!==e.nodeType&&(8!==e.nodeType||" react-mount-point-unstable "!==e.nodeValue))}function Qc(){}function ed(e,t,n,r,o){var a=n._reactRootContainer;if(a){var i=a;if("function"==typeof o){var s=o;o=function(){var e=jc(i);s.call(e)}}Vc(t,i,e,o)}else i=function(e,t,n,r,o){if(o){if("function"==typeof r){var a=r;r=function(){var e=jc(i);a.call(e)}}var i=Hc(t,r,e,0,null,!1,0,"",Qc);return e._reactRootContainer=i,e[fo]=i.current,Wr(8===e.nodeType?e.parentNode:e),uc(),i}for(;o=e.lastChild;)e.removeChild(o);if("function"==typeof r){var s=r;r=function(){var e=jc(l);s.call(e)}}var l=Gc(e,0,!1,null,0,!1,0,"",Qc);return e._reactRootContainer=l,e[fo]=l.current,Wr(8===e.nodeType?e.parentNode:e),uc((function(){Vc(t,l,n,r)})),l}(n,t,e,o,r);return jc(i)}qc.prototype.render=Yc.prototype.render=function(e){var t=this._internalRoot;if(null===t)throw Error(a(409));Vc(e,t,null,null)},qc.prototype.unmount=Yc.prototype.unmount=function(){var e=this._internalRoot;if(null!==e){this._internalRoot=null;var t=e.containerInfo;uc((function(){Vc(null,e,null,null)})),t[fo]=null}},qc.prototype.unstable_scheduleHydration=function(e){if(e){var t=Et();e={blockedOn:null,target:e,priority:t};for(var n=0;n<Mt.length&&0!==t&&t<Mt[n].priority;n++);Mt.splice(n,0,e),0===n&&Lt(e)}},vt=function(e){switch(e.tag){case 3:var t=e.stateNode;if(t.current.memoizedState.isDehydrated){var n=ut(t.pendingLanes);0!==n&&(bt(t,1|n),oc(t,Je()),0==(6&_l)&&(Hl=Je()+500,Ho()))}break;case 13:uc((function(){var t=Ia(e,1);if(null!==t){var n=tc();rc(t,e,1,n)}})),$c(e,1)}},wt=function(e){if(13===e.tag){var t=Ia(e,134217728);null!==t&&rc(t,e,134217728,tc()),$c(e,134217728)}},kt=function(e){if(13===e.tag){var t=nc(e),n=Ia(e,t);null!==n&&rc(n,e,t,tc()),$c(e,t)}},Et=function(){return Ct},xt=function(e,t){var n=Ct;try{return Ct=e,t()}finally{Ct=n}},we=function(e,t,n){switch(t){case"input":if(X(e,n),t=n.name,"radio"===n.type&&null!=t){for(n=e;n.parentNode;)n=n.parentNode;for(n=n.querySelectorAll("input[name="+JSON.stringify(""+t)+'][type="radio"]'),t=0;t<n.length;t++){var r=n[t];if(r!==e&&r.form===e.form){var o=wo(r);if(!o)throw Error(a(90));$(r),X(r,o)}}}break;case"textarea":ae(e,n);break;case"select":null!=(t=n.value)&&ne(e,!!n.multiple,t,!1)}},Be=dc,_e=uc;var td={usingClientEntryPoint:!1,Events:[yo,vo,wo,Se,Te,dc]},nd={findFiberByHostInstance:Co,bundleType:0,version:"18.2.0",rendererPackageName:"react-dom"},rd={bundleType:nd.bundleType,version:nd.version,rendererPackageName:nd.rendererPackageName,rendererConfig:nd.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:y.ReactCurrentDispatcher,findHostInstanceByFiber:function(e){return null===(e=je(e))?null:e.stateNode},findFiberByHostInstance:nd.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.2.0-next-9e3b772b8-20220608"};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var od=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!od.isDisabled&&od.supportsFiber)try{ot=od.inject(rd),at=od}catch(de){}}t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=td,t.createPortal=function(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!Jc(t))throw Error(a(200));return function(e,t,n){var r=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:w,key:null==r?null:""+r,children:e,containerInfo:t,implementation:n}}(e,t,null,n)},t.createRoot=function(e,t){if(!Jc(e))throw Error(a(299));var n=!1,r="",o=Kc;return null!=t&&(!0===t.unstable_strictMode&&(n=!0),void 0!==t.identifierPrefix&&(r=t.identifierPrefix),void 0!==t.onRecoverableError&&(o=t.onRecoverableError)),t=Gc(e,1,!1,null,0,n,0,r,o),e[fo]=t.current,Wr(8===e.nodeType?e.parentNode:e),new Yc(t)},t.findDOMNode=function(e){if(null==e)return null;if(1===e.nodeType)return e;var t=e._reactInternals;if(void 0===t){if("function"==typeof e.render)throw Error(a(188));throw e=Object.keys(e).join(","),Error(a(268,e))}return null===(e=je(t))?null:e.stateNode},t.flushSync=function(e){return uc(e)},t.hydrate=function(e,t,n){if(!Xc(t))throw Error(a(200));return ed(null,e,t,!0,n)},t.hydrateRoot=function(e,t,n){if(!Jc(e))throw Error(a(405));var r=null!=n&&n.hydratedSources||null,o=!1,i="",s=Kc;if(null!=n&&(!0===n.unstable_strictMode&&(o=!0),void 0!==n.identifierPrefix&&(i=n.identifierPrefix),void 0!==n.onRecoverableError&&(s=n.onRecoverableError)),t=Hc(t,null,e,1,null!=n?n:null,o,0,i,s),e[fo]=t.current,Wr(e),r)for(e=0;e<r.length;e++)o=(o=(n=r[e])._getVersion)(n._source),null==t.mutableSourceEagerHydrationData?t.mutableSourceEagerHydrationData=[n,o]:t.mutableSourceEagerHydrationData.push(n,o);return new qc(t)},t.render=function(e,t,n){if(!Xc(t))throw Error(a(200));return ed(null,e,t,!1,n)},t.unmountComponentAtNode=function(e){if(!Xc(e))throw Error(a(40));return!!e._reactRootContainer&&(uc((function(){ed(null,null,e,!1,(function(){e._reactRootContainer=null,e[fo]=null}))})),!0)},t.unstable_batchedUpdates=dc,t.unstable_renderSubtreeIntoContainer=function(e,t,n,r){if(!Xc(n))throw Error(a(200));if(null==e||void 0===e._reactInternals)throw Error(a(38));return ed(e,t,n,!1,r)},t.version="18.2.0-next-9e3b772b8-20220608"},3935:(e,t,n)=>{"use strict";!function e(){if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__&&"function"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE)try{__REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(e)}catch(e){console.error(e)}}(),e.exports=n(4448)},9921:(e,t)=>{"use strict";var n="function"==typeof Symbol&&Symbol.for,r=n?Symbol.for("react.element"):60103,o=n?Symbol.for("react.portal"):60106,a=n?Symbol.for("react.fragment"):60107,i=n?Symbol.for("react.strict_mode"):60108,s=n?Symbol.for("react.profiler"):60114,l=n?Symbol.for("react.provider"):60109,c=n?Symbol.for("react.context"):60110,d=n?Symbol.for("react.async_mode"):60111,u=n?Symbol.for("react.concurrent_mode"):60111,h=n?Symbol.for("react.forward_ref"):60112,p=n?Symbol.for("react.suspense"):60113,m=n?Symbol.for("react.suspense_list"):60120,f=n?Symbol.for("react.memo"):60115,g=n?Symbol.for("react.lazy"):60116,A=n?Symbol.for("react.block"):60121,b=n?Symbol.for("react.fundamental"):60117,C=n?Symbol.for("react.responder"):60118,y=n?Symbol.for("react.scope"):60119;function v(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case d:case u:case a:case s:case i:case p:return e;default:switch(e=e&&e.$$typeof){case c:case h:case g:case f:case l:return e;default:return t}}case o:return t}}}function w(e){return v(e)===u}t.AsyncMode=d,t.ConcurrentMode=u,t.ContextConsumer=c,t.ContextProvider=l,t.Element=r,t.ForwardRef=h,t.Fragment=a,t.Lazy=g,t.Memo=f,t.Portal=o,t.Profiler=s,t.StrictMode=i,t.Suspense=p,t.isAsyncMode=function(e){return w(e)||v(e)===d},t.isConcurrentMode=w,t.isContextConsumer=function(e){return v(e)===c},t.isContextProvider=function(e){return v(e)===l},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return v(e)===h},t.isFragment=function(e){return v(e)===a},t.isLazy=function(e){return v(e)===g},t.isMemo=function(e){return v(e)===f},t.isPortal=function(e){return v(e)===o},t.isProfiler=function(e){return v(e)===s},t.isStrictMode=function(e){return v(e)===i},t.isSuspense=function(e){return v(e)===p},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===a||e===u||e===s||e===i||e===p||e===m||"object"==typeof e&&null!==e&&(e.$$typeof===g||e.$$typeof===f||e.$$typeof===l||e.$$typeof===c||e.$$typeof===h||e.$$typeof===b||e.$$typeof===C||e.$$typeof===y||e.$$typeof===A)},t.typeOf=v},9864:(e,t,n)=>{"use strict";e.exports=n(9921)},8359:(e,t)=>{"use strict";var n=Symbol.for("react.element"),r=Symbol.for("react.portal"),o=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),s=Symbol.for("react.provider"),l=Symbol.for("react.context"),c=Symbol.for("react.server_context"),d=Symbol.for("react.forward_ref"),u=Symbol.for("react.suspense"),h=Symbol.for("react.suspense_list"),p=Symbol.for("react.memo"),m=Symbol.for("react.lazy");Symbol.for("react.offscreen");Symbol.for("react.module.reference"),t.isContextConsumer=function(e){return function(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case n:switch(e=e.type){case o:case i:case a:case u:case h:return e;default:switch(e=e&&e.$$typeof){case c:case l:case d:case m:case p:case s:return e;default:return t}}case r:return t}}}(e)===l}},2973:(e,t,n)=>{"use strict";e.exports=n(8359)},5513:(e,t,n)=>{var r,o;window,e.exports=(r=n(5697),o=n(7294),function(e){var t={};function n(r){if(t[r])return t[r].exports;var o=t[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(r,o,function(t){return e[t]}.bind(null,o));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=2)}([function(e,t){e.exports=r},function(e,t){e.exports=o},function(e,t,n){e.exports=n(3)},function(e,t,n){"use strict";n.r(t);var r=n(1),o=n.n(r),a=n(0),i=n.n(a);function s(e){var t=e.size||0,n=e.percentage?"%":"px",r="layout-pane",a={};return e.primary?r+=" layout-pane-primary":e.vertical?a.height="".concat(t).concat(n):a.width="".concat(t).concat(n),o.a.createElement("div",{className:r,style:a},e.children)}s.propTypes={vertical:i.a.bool,primary:i.a.bool,size:i.a.number,percentage:i.a.bool,children:i.a.oneOfType([i.a.arrayOf(i.a.node),i.a.node])},s.defaultProps={vertical:!1,primary:!1,size:0,percentage:!1,children:[]};var l=s;function c(e){return(c="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}function d(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function u(e){return(u=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)})(e)}function h(e,t){return(h=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e})(e,t)}function p(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function m(){if(document.body.createTextRange){var e=document.body.createTextRange();e.collapse(),e.select()}else window.getSelection?window.getSelection().empty?window.getSelection().empty():window.getSelection().removeAllRanges&&window.getSelection().removeAllRanges():document.selection&&document.selection.empty()}var f=function(e){function t(e){var n,r;return function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}(this,t),this,(n=!(r=u(t).call(this,e))||"object"!==c(r)&&"function"!=typeof r?p(this):r).handleResize=n.handleResize.bind(p(p(n))),n.handleMouseMove=n.handleMouseMove.bind(p(p(n))),n.handleMouseUp=n.handleMouseUp.bind(p(p(n))),n.handleTouchMove=n.handleTouchMove.bind(p(p(n))),n.handleSplitterMouseDown=n.handleSplitterMouseDown.bind(p(p(n))),n.state={secondaryPaneSize:0,resizing:!1},n}var n,r;return function(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&h(e,t)}(t,o.a.Component),n=t,(r=[{key:"componentDidMount",value:function(){var e;if(window.addEventListener("resize",this.handleResize),document.addEventListener("mouseup",this.handleMouseUp),document.addEventListener("mousemove",this.handleMouseMove),document.addEventListener("touchend",this.handleMouseUp),document.addEventListener("touchmove",this.handleTouchMove),void 0!==this.props.secondaryInitialSize)e=this.props.secondaryInitialSize;else{var t,n=this.container.getBoundingClientRect();t=this.splitter?this.splitter.getBoundingClientRect():{width:4,height:4},e=this.getSecondaryPaneSize(n,t,{left:n.left+(n.width-t.width)/2,top:n.top+(n.height-t.height)/2},!1)}this.setState({secondaryPaneSize:e})}},{key:"componentDidUpdate",value:function(e,t){t.secondaryPaneSize!==this.state.secondaryPaneSize&&this.props.onSecondaryPaneSizeChange&&this.props.onSecondaryPaneSizeChange(this.state.secondaryPaneSize),t.resizing!==this.state.resizing&&(this.state.resizing?this.props.onDragStart&&this.props.onDragStart():this.props.onDragEnd&&this.props.onDragEnd())}},{key:"componentWillUnmount",value:function(){window.removeEventListener("resize",this.handleResize),document.removeEventListener("mouseup",this.handleMouseUp),document.removeEventListener("mousemove",this.handleMouseMove),document.removeEventListener("touchend",this.handleMouseUp),document.removeEventListener("touchmove",this.handleTouchMove)}},{key:"getSecondaryPaneSize",value:function(e,t,n,r){var o,a,i,s;this.props.vertical?(o=e.height,a=t.height,i=n.top-e.top):(o=e.width,a=t.width,i=n.left-e.left),r&&(i-=a/2),i<0?i=0:i>o-a&&(i=o-a);var l=o-a-(s=1===this.props.primaryIndex?i:o-a-i);return this.props.percentage&&(s=100*s/o,l=100*l/o,a=100*a/o,o=100),l<this.props.primaryMinSize?s=Math.max(s-(this.props.primaryMinSize-l),0):s<this.props.secondaryMinSize&&(s=Math.min(o-a-this.props.primaryMinSize,this.props.secondaryMinSize)),s}},{key:"handleResize",value:function(){if(this.splitter&&!this.props.percentage){var e=this.container.getBoundingClientRect(),t=this.splitter.getBoundingClientRect(),n=this.getSecondaryPaneSize(e,t,{left:t.left,top:t.top},!1);this.setState({secondaryPaneSize:n})}}},{key:"handleMouseMove",value:function(e){if(this.state.resizing){var t=this.container.getBoundingClientRect(),n=this.splitter.getBoundingClientRect(),r=this.getSecondaryPaneSize(t,n,{left:e.clientX,top:e.clientY},!0);m(),this.setState({secondaryPaneSize:r})}}},{key:"handleTouchMove",value:function(e){this.handleMouseMove(e.changedTouches[0])}},{key:"handleSplitterMouseDown",value:function(){m(),this.setState({resizing:!0})}},{key:"handleMouseUp",value:function(){this.setState((function(e){return e.resizing?{resizing:!1}:null}))}},{key:"render",value:function(){var e=this,t="splitter-layout";this.props.customClassName&&(t+=" ".concat(this.props.customClassName)),this.props.vertical&&(t+=" splitter-layout-vertical"),this.state.resizing&&(t+=" layout-changing");var n=o.a.Children.toArray(this.props.children).slice(0,2);0===n.length&&n.push(o.a.createElement("div",null));for(var r=[],a=0!==this.props.primaryIndex&&1!==this.props.primaryIndex?0:this.props.primaryIndex,i=0;i<n.length;++i){var s=!0,c=null;n.length>1&&i!==a&&(s=!1,c=this.state.secondaryPaneSize),r.push(o.a.createElement(l,{vertical:this.props.vertical,percentage:this.props.percentage,primary:s,size:c},n[i]))}return o.a.createElement("div",{className:t,ref:function(t){e.container=t}},r[0],r.length>1&&o.a.createElement("div",{role:"separator",className:"layout-splitter",ref:function(t){e.splitter=t},onMouseDown:this.handleSplitterMouseDown,onTouchStart:this.handleSplitterMouseDown}),r.length>1&&r[1])}}])&&d(n.prototype,r),t}();f.propTypes={customClassName:i.a.string,vertical:i.a.bool,percentage:i.a.bool,primaryIndex:i.a.number,primaryMinSize:i.a.number,secondaryInitialSize:i.a.number,secondaryMinSize:i.a.number,onDragStart:i.a.func,onDragEnd:i.a.func,onSecondaryPaneSizeChange:i.a.func,children:i.a.arrayOf(i.a.node)},f.defaultProps={customClassName:"",vertical:!1,percentage:!1,primaryIndex:0,primaryMinSize:0,secondaryInitialSize:void 0,secondaryMinSize:0,onDragStart:null,onDragEnd:null,onSecondaryPaneSizeChange:null,children:[]};var g=f;t.default=g}]))},2408:(e,t)=>{"use strict";var n=Symbol.for("react.element"),r=Symbol.for("react.portal"),o=Symbol.for("react.fragment"),a=Symbol.for("react.strict_mode"),i=Symbol.for("react.profiler"),s=Symbol.for("react.provider"),l=Symbol.for("react.context"),c=Symbol.for("react.forward_ref"),d=Symbol.for("react.suspense"),u=Symbol.for("react.memo"),h=Symbol.for("react.lazy"),p=Symbol.iterator,m={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},f=Object.assign,g={};function A(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||m}function b(){}function C(e,t,n){this.props=e,this.context=t,this.refs=g,this.updater=n||m}A.prototype.isReactComponent={},A.prototype.setState=function(e,t){if("object"!=typeof e&&"function"!=typeof e&&null!=e)throw Error("setState(...): takes an object of state variables to update or a function which returns an object of state variables.");this.updater.enqueueSetState(this,e,t,"setState")},A.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,"forceUpdate")},b.prototype=A.prototype;var y=C.prototype=new b;y.constructor=C,f(y,A.prototype),y.isPureReactComponent=!0;var v=Array.isArray,w=Object.prototype.hasOwnProperty,k={current:null},E={key:!0,ref:!0,__self:!0,__source:!0};function x(e,t,r){var o,a={},i=null,s=null;if(null!=t)for(o in void 0!==t.ref&&(s=t.ref),void 0!==t.key&&(i=""+t.key),t)w.call(t,o)&&!E.hasOwnProperty(o)&&(a[o]=t[o]);var l=arguments.length-2;if(1===l)a.children=r;else if(1<l){for(var c=Array(l),d=0;d<l;d++)c[d]=arguments[d+2];a.children=c}if(e&&e.defaultProps)for(o in l=e.defaultProps)void 0===a[o]&&(a[o]=l[o]);return{$$typeof:n,type:e,key:i,ref:s,props:a,_owner:k.current}}function S(e){return"object"==typeof e&&null!==e&&e.$$typeof===n}var T=/\/+/g;function B(e,t){return"object"==typeof e&&null!==e&&null!=e.key?function(e){var t={"=":"=0",":":"=2"};return"$"+e.replace(/[=:]/g,(function(e){return t[e]}))}(""+e.key):t.toString(36)}function _(e,t,o,a,i){var s=typeof e;"undefined"!==s&&"boolean"!==s||(e=null);var l=!1;if(null===e)l=!0;else switch(s){case"string":case"number":l=!0;break;case"object":switch(e.$$typeof){case n:case r:l=!0}}if(l)return i=i(l=e),e=""===a?"."+B(l,0):a,v(i)?(o="",null!=e&&(o=e.replace(T,"$&/")+"/"),_(i,t,o,"",(function(e){return e}))):null!=i&&(S(i)&&(i=function(e,t){return{$$typeof:n,type:e.type,key:t,ref:e.ref,props:e.props,_owner:e._owner}}(i,o+(!i.key||l&&l.key===i.key?"":(""+i.key).replace(T,"$&/")+"/")+e)),t.push(i)),1;if(l=0,a=""===a?".":a+":",v(e))for(var c=0;c<e.length;c++){var d=a+B(s=e[c],c);l+=_(s,t,o,d,i)}else if(d=function(e){return null===e||"object"!=typeof e?null:"function"==typeof(e=p&&e[p]||e["@@iterator"])?e:null}(e),"function"==typeof d)for(e=d.call(e),c=0;!(s=e.next()).done;)l+=_(s=s.value,t,o,d=a+B(s,c++),i);else if("object"===s)throw t=String(e),Error("Objects are not valid as a React child (found: "+("[object Object]"===t?"object with keys {"+Object.keys(e).join(", ")+"}":t)+"). If you meant to render a collection of children, use an array instead.");return l}function I(e,t,n){if(null==e)return e;var r=[],o=0;return _(e,r,"","",(function(e){return t.call(n,e,o++)})),r}function P(e){if(-1===e._status){var t=e._result;(t=t()).then((function(t){0!==e._status&&-1!==e._status||(e._status=1,e._result=t)}),(function(t){0!==e._status&&-1!==e._status||(e._status=2,e._result=t)})),-1===e._status&&(e._status=0,e._result=t)}if(1===e._status)return e._result.default;throw e._result}var N={current:null},M={transition:null},F={ReactCurrentDispatcher:N,ReactCurrentBatchConfig:M,ReactCurrentOwner:k};t.Children={map:I,forEach:function(e,t,n){I(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return I(e,(function(){t++})),t},toArray:function(e){return I(e,(function(e){return e}))||[]},only:function(e){if(!S(e))throw Error("React.Children.only expected to receive a single React element child.");return e}},t.Component=A,t.Fragment=o,t.Profiler=i,t.PureComponent=C,t.StrictMode=a,t.Suspense=d,t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=F,t.cloneElement=function(e,t,r){if(null==e)throw Error("React.cloneElement(...): The argument must be a React element, but you passed "+e+".");var o=f({},e.props),a=e.key,i=e.ref,s=e._owner;if(null!=t){if(void 0!==t.ref&&(i=t.ref,s=k.current),void 0!==t.key&&(a=""+t.key),e.type&&e.type.defaultProps)var l=e.type.defaultProps;for(c in t)w.call(t,c)&&!E.hasOwnProperty(c)&&(o[c]=void 0===t[c]&&void 0!==l?l[c]:t[c])}var c=arguments.length-2;if(1===c)o.children=r;else if(1<c){l=Array(c);for(var d=0;d<c;d++)l[d]=arguments[d+2];o.children=l}return{$$typeof:n,type:e.type,key:a,ref:i,props:o,_owner:s}},t.createContext=function(e){return(e={$$typeof:l,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null}).Provider={$$typeof:s,_context:e},e.Consumer=e},t.createElement=x,t.createFactory=function(e){var t=x.bind(null,e);return t.type=e,t},t.createRef=function(){return{current:null}},t.forwardRef=function(e){return{$$typeof:c,render:e}},t.isValidElement=S,t.lazy=function(e){return{$$typeof:h,_payload:{_status:-1,_result:e},_init:P}},t.memo=function(e,t){return{$$typeof:u,type:e,compare:void 0===t?null:t}},t.startTransition=function(e){var t=M.transition;M.transition={};try{e()}finally{M.transition=t}},t.unstable_act=function(){throw Error("act(...) is not supported in production builds of React.")},t.useCallback=function(e,t){return N.current.useCallback(e,t)},t.useContext=function(e){return N.current.useContext(e)},t.useDebugValue=function(){},t.useDeferredValue=function(e){return N.current.useDeferredValue(e)},t.useEffect=function(e,t){return N.current.useEffect(e,t)},t.useId=function(){return N.current.useId()},t.useImperativeHandle=function(e,t,n){return N.current.useImperativeHandle(e,t,n)},t.useInsertionEffect=function(e,t){return N.current.useInsertionEffect(e,t)},t.useLayoutEffect=function(e,t){return N.current.useLayoutEffect(e,t)},t.useMemo=function(e,t){return N.current.useMemo(e,t)},t.useReducer=function(e,t,n){return N.current.useReducer(e,t,n)},t.useRef=function(e){return N.current.useRef(e)},t.useState=function(e){return N.current.useState(e)},t.useSyncExternalStore=function(e,t,n){return N.current.useSyncExternalStore(e,t,n)},t.useTransition=function(){return N.current.useTransition()},t.version="18.2.0"},7294:(e,t,n)=>{"use strict";e.exports=n(2408)},4500:function(e,t,n){!function(e){"use strict";function t(e,t){e.super_=t,e.prototype=Object.create(t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}})}function r(e,t){Object.defineProperty(this,"kind",{value:e,enumerable:!0}),t&&t.length&&Object.defineProperty(this,"path",{value:t,enumerable:!0})}function o(e,t,n){o.super_.call(this,"E",e),Object.defineProperty(this,"lhs",{value:t,enumerable:!0}),Object.defineProperty(this,"rhs",{value:n,enumerable:!0})}function a(e,t){a.super_.call(this,"N",e),Object.defineProperty(this,"rhs",{value:t,enumerable:!0})}function i(e,t){i.super_.call(this,"D",e),Object.defineProperty(this,"lhs",{value:t,enumerable:!0})}function s(e,t,n){s.super_.call(this,"A",e),Object.defineProperty(this,"index",{value:t,enumerable:!0}),Object.defineProperty(this,"item",{value:n,enumerable:!0})}function l(e,t,n){var r=e.slice((n||t)+1||e.length);return e.length=t<0?e.length+t:t,e.push.apply(e,r),e}function c(e){var t=void 0===e?"undefined":x(e);return"object"!==t?t:e===Math?"math":null===e?"null":Array.isArray(e)?"array":"[object Date]"===Object.prototype.toString.call(e)?"date":"function"==typeof e.toString&&/^\/.*\//.test(e.toString())?"regexp":"object"}function d(e,t,n,r,u,h,p){p=p||[];var m=(u=u||[]).slice(0);if(void 0!==h){if(r){if("function"==typeof r&&r(m,h))return;if("object"===(void 0===r?"undefined":x(r))){if(r.prefilter&&r.prefilter(m,h))return;if(r.normalize){var f=r.normalize(m,h,e,t);f&&(e=f[0],t=f[1])}}}m.push(h)}"regexp"===c(e)&&"regexp"===c(t)&&(e=e.toString(),t=t.toString());var g=void 0===e?"undefined":x(e),A=void 0===t?"undefined":x(t),b="undefined"!==g||p&&p[p.length-1].lhs&&p[p.length-1].lhs.hasOwnProperty(h),C="undefined"!==A||p&&p[p.length-1].rhs&&p[p.length-1].rhs.hasOwnProperty(h);if(!b&&C)n(new a(m,t));else if(!C&&b)n(new i(m,e));else if(c(e)!==c(t))n(new o(m,e,t));else if("date"===c(e)&&e-t!=0)n(new o(m,e,t));else if("object"===g&&null!==e&&null!==t)if(p.filter((function(t){return t.lhs===e})).length)e!==t&&n(new o(m,e,t));else{if(p.push({lhs:e,rhs:t}),Array.isArray(e)){var y;for(e.length,y=0;y<e.length;y++)y>=t.length?n(new s(m,y,new i(void 0,e[y]))):d(e[y],t[y],n,r,m,y,p);for(;y<t.length;)n(new s(m,y,new a(void 0,t[y++])))}else{var v=Object.keys(e),w=Object.keys(t);v.forEach((function(o,a){var i=w.indexOf(o);i>=0?(d(e[o],t[o],n,r,m,o,p),w=l(w,i)):d(e[o],void 0,n,r,m,o,p)})),w.forEach((function(e){d(void 0,t[e],n,r,m,e,p)}))}p.length=p.length-1}else e!==t&&("number"===g&&isNaN(e)&&isNaN(t)||n(new o(m,e,t)))}function u(e,t,n,r){return r=r||[],d(e,t,(function(e){e&&r.push(e)}),n),r.length?r:void 0}function h(e,t,n){if(n.path&&n.path.length){var r,o=e[t],a=n.path.length-1;for(r=0;r<a;r++)o=o[n.path[r]];switch(n.kind){case"A":h(o[n.path[r]],n.index,n.item);break;case"D":delete o[n.path[r]];break;case"E":case"N":o[n.path[r]]=n.rhs}}else switch(n.kind){case"A":h(e[t],n.index,n.item);break;case"D":e=l(e,t);break;case"E":case"N":e[t]=n.rhs}return e}function p(e,t,n){if(e&&t&&n&&n.kind){for(var r=e,o=-1,a=n.path?n.path.length-1:0;++o<a;)void 0===r[n.path[o]]&&(r[n.path[o]]="number"==typeof n.path[o]?[]:{}),r=r[n.path[o]];switch(n.kind){case"A":h(n.path?r[n.path[o]]:r,n.index,n.item);break;case"D":delete r[n.path[o]];break;case"E":case"N":r[n.path[o]]=n.rhs}}}function m(e,t,n){if(n.path&&n.path.length){var r,o=e[t],a=n.path.length-1;for(r=0;r<a;r++)o=o[n.path[r]];switch(n.kind){case"A":m(o[n.path[r]],n.index,n.item);break;case"D":case"E":o[n.path[r]]=n.lhs;break;case"N":delete o[n.path[r]]}}else switch(n.kind){case"A":m(e[t],n.index,n.item);break;case"D":case"E":e[t]=n.lhs;break;case"N":e=l(e,t)}return e}function f(e){return"color: "+B[e].color+"; font-weight: bold"}function g(e,t,n,r){var o=u(e,t);try{r?n.groupCollapsed("diff"):n.group("diff")}catch(e){n.log("diff")}o?o.forEach((function(e){var t=e.kind,r=function(e){var t=e.kind,n=e.path,r=e.lhs,o=e.rhs,a=e.index,i=e.item;switch(t){case"E":return[n.join("."),r,"→",o];case"N":return[n.join("."),o];case"D":return[n.join(".")];case"A":return[n.join(".")+"["+a+"]",i];default:return[]}}(e);n.log.apply(n,["%c "+B[t].text,f(t)].concat(S(r)))})):n.log("—— no diff ——");try{n.groupEnd()}catch(e){n.log("—— diff end —— ")}}function A(e,t,n,r){switch(void 0===e?"undefined":x(e)){case"object":return"function"==typeof e[r]?e[r].apply(e,S(n)):e[r];case"function":return e(t);default:return e}}function b(e,t){var n=t.logger,r=t.actionTransformer,o=t.titleFormatter,a=void 0===o?function(e){var t=e.timestamp,n=e.duration;return function(e,r,o){var a=["action"];return a.push("%c"+String(e.type)),t&&a.push("%c@ "+r),n&&a.push("%c(in "+o.toFixed(2)+" ms)"),a.join(" ")}}(t):o,i=t.collapsed,s=t.colors,l=t.level,c=t.diff,d=void 0===t.titleFormatter;e.forEach((function(o,u){var h=o.started,p=o.startedTime,m=o.action,f=o.prevState,b=o.error,C=o.took,y=o.nextState,v=e[u+1];v&&(y=v.prevState,C=v.started-h);var w=r(m),E="function"==typeof i?i((function(){return y}),m,o):i,x=k(p),S=s.title?"color: "+s.title(w)+";":"",T=["color: gray; font-weight: lighter;"];T.push(S),t.timestamp&&T.push("color: gray; font-weight: lighter;"),t.duration&&T.push("color: gray; font-weight: lighter;");var B=a(w,x,C);try{E?s.title&&d?n.groupCollapsed.apply(n,["%c "+B].concat(T)):n.groupCollapsed(B):s.title&&d?n.group.apply(n,["%c "+B].concat(T)):n.group(B)}catch(e){n.log(B)}var _=A(l,w,[f],"prevState"),I=A(l,w,[w],"action"),P=A(l,w,[b,f],"error"),N=A(l,w,[y],"nextState");if(_)if(s.prevState){var M="color: "+s.prevState(f)+"; font-weight: bold";n[_]("%c prev state",M,f)}else n[_]("prev state",f);if(I)if(s.action){var F="color: "+s.action(w)+"; font-weight: bold";n[I]("%c action ",F,w)}else n[I]("action ",w);if(b&&P)if(s.error){var R="color: "+s.error(b,f)+"; font-weight: bold;";n[P]("%c error ",R,b)}else n[P]("error ",b);if(N)if(s.nextState){var D="color: "+s.nextState(y)+"; font-weight: bold";n[N]("%c next state",D,y)}else n[N]("next state",y);c&&g(f,y,n,E);try{n.groupEnd()}catch(e){n.log("—— log end ——")}}))}function C(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=Object.assign({},_,e),n=t.logger,r=t.stateTransformer,o=t.errorTransformer,a=t.predicate,i=t.logErrors,s=t.diffPredicate;if(void 0===n)return function(){return function(e){return function(t){return e(t)}}};if(e.getState&&e.dispatch)return console.error("[redux-logger] redux-logger not installed. Make sure to pass logger instance as middleware:\n// Logger with default options\nimport { logger } from 'redux-logger'\nconst store = createStore(\n reducer,\n applyMiddleware(logger)\n)\n// Or you can create your own logger with custom options http://bit.ly/redux-logger-options\nimport createLogger from 'redux-logger'\nconst logger = createLogger({\n // ...options\n});\nconst store = createStore(\n reducer,\n applyMiddleware(logger)\n)\n"),function(){return function(e){return function(t){return e(t)}}};var l=[];return function(e){var n=e.getState;return function(e){return function(c){if("function"==typeof a&&!a(n,c))return e(c);var d={};l.push(d),d.started=E.now(),d.startedTime=new Date,d.prevState=r(n()),d.action=c;var u=void 0;if(i)try{u=e(c)}catch(e){d.error=o(e)}else u=e(c);d.took=E.now()-d.started,d.nextState=r(n());var h=t.diff&&"function"==typeof s?s(n,c):t.diff;if(b(l,Object.assign({},t,{diff:h})),l.length=0,d.error)throw d.error;return u}}}}var y,v,w=function(e,t){return function(e,t){return new Array(t+1).join(e)}("0",t-e.toString().length)+e},k=function(e){return w(e.getHours(),2)+":"+w(e.getMinutes(),2)+":"+w(e.getSeconds(),2)+"."+w(e.getMilliseconds(),3)},E="undefined"!=typeof performance&&null!==performance&&"function"==typeof performance.now?performance:Date,x="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},S=function(e){if(Array.isArray(e)){for(var t=0,n=Array(e.length);t<e.length;t++)n[t]=e[t];return n}return Array.from(e)},T=[];y="object"===(void 0===n.g?"undefined":x(n.g))&&n.g?n.g:"undefined"!=typeof window?window:{},(v=y.DeepDiff)&&T.push((function(){void 0!==v&&y.DeepDiff===u&&(y.DeepDiff=v,v=void 0)})),t(o,r),t(a,r),t(i,r),t(s,r),Object.defineProperties(u,{diff:{value:u,enumerable:!0},observableDiff:{value:d,enumerable:!0},applyDiff:{value:function(e,t,n){e&&t&&d(e,t,(function(r){n&&!n(e,t,r)||p(e,t,r)}))},enumerable:!0},applyChange:{value:p,enumerable:!0},revertChange:{value:function(e,t,n){if(e&&t&&n&&n.kind){var r,o,a=e;for(o=n.path.length-1,r=0;r<o;r++)void 0===a[n.path[r]]&&(a[n.path[r]]={}),a=a[n.path[r]];switch(n.kind){case"A":m(a[n.path[r]],n.index,n.item);break;case"D":case"E":a[n.path[r]]=n.lhs;break;case"N":delete a[n.path[r]]}}},enumerable:!0},isConflict:{value:function(){return void 0!==v},enumerable:!0},noConflict:{value:function(){return T&&(T.forEach((function(e){e()})),T=null),u},enumerable:!0}});var B={E:{color:"#2196F3",text:"CHANGED:"},N:{color:"#4CAF50",text:"ADDED:"},D:{color:"#F44336",text:"DELETED:"},A:{color:"#2196F3",text:"ARRAY:"}},_={level:"log",logger:console,logErrors:!0,collapsed:void 0,predicate:void 0,duration:!1,timestamp:!0,stateTransformer:function(e){return e},actionTransformer:function(e){return e},errorTransformer:function(e){return e},colors:{title:function(){return"inherit"},prevState:function(){return"#9E9E9E"},action:function(){return"#03A9F4"},nextState:function(){return"#4CAF50"},error:function(){return"#F20404"}},diff:!1,diffPredicate:void 0,transformer:void 0},I=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=e.dispatch,n=e.getState;return"function"==typeof t||"function"==typeof n?C()({dispatch:t,getState:n}):void console.error("\n[redux-logger v3] BREAKING CHANGE\n[redux-logger v3] Since 3.0.0 redux-logger exports by default logger with default settings.\n[redux-logger v3] Change\n[redux-logger v3] import createLogger from 'redux-logger'\n[redux-logger v3] to\n[redux-logger v3] import { createLogger } from 'redux-logger'\n")};e.defaults=_,e.createLogger=C,e.logger=I,e.default=I,Object.defineProperty(e,"__esModule",{value:!0})}(t)},53:(e,t)=>{"use strict";function n(e,t){var n=e.length;e.push(t);e:for(;0<n;){var r=n-1>>>1,o=e[r];if(!(0<a(o,t)))break e;e[r]=t,e[n]=o,n=r}}function r(e){return 0===e.length?null:e[0]}function o(e){if(0===e.length)return null;var t=e[0],n=e.pop();if(n!==t){e[0]=n;e:for(var r=0,o=e.length,i=o>>>1;r<i;){var s=2*(r+1)-1,l=e[s],c=s+1,d=e[c];if(0>a(l,n))c<o&&0>a(d,l)?(e[r]=d,e[c]=n,r=c):(e[r]=l,e[s]=n,r=s);else{if(!(c<o&&0>a(d,n)))break e;e[r]=d,e[c]=n,r=c}}}return t}function a(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}if("object"==typeof performance&&"function"==typeof performance.now){var i=performance;t.unstable_now=function(){return i.now()}}else{var s=Date,l=s.now();t.unstable_now=function(){return s.now()-l}}var c=[],d=[],u=1,h=null,p=3,m=!1,f=!1,g=!1,A="function"==typeof setTimeout?setTimeout:null,b="function"==typeof clearTimeout?clearTimeout:null,C="undefined"!=typeof setImmediate?setImmediate:null;function y(e){for(var t=r(d);null!==t;){if(null===t.callback)o(d);else{if(!(t.startTime<=e))break;o(d),t.sortIndex=t.expirationTime,n(c,t)}t=r(d)}}function v(e){if(g=!1,y(e),!f)if(null!==r(c))f=!0,M(w);else{var t=r(d);null!==t&&F(v,t.startTime-e)}}function w(e,n){f=!1,g&&(g=!1,b(S),S=-1),m=!0;var a=p;try{for(y(n),h=r(c);null!==h&&(!(h.expirationTime>n)||e&&!_());){var i=h.callback;if("function"==typeof i){h.callback=null,p=h.priorityLevel;var s=i(h.expirationTime<=n);n=t.unstable_now(),"function"==typeof s?h.callback=s:h===r(c)&&o(c),y(n)}else o(c);h=r(c)}if(null!==h)var l=!0;else{var u=r(d);null!==u&&F(v,u.startTime-n),l=!1}return l}finally{h=null,p=a,m=!1}}"undefined"!=typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);var k,E=!1,x=null,S=-1,T=5,B=-1;function _(){return!(t.unstable_now()-B<T)}function I(){if(null!==x){var e=t.unstable_now();B=e;var n=!0;try{n=x(!0,e)}finally{n?k():(E=!1,x=null)}}else E=!1}if("function"==typeof C)k=function(){C(I)};else if("undefined"!=typeof MessageChannel){var P=new MessageChannel,N=P.port2;P.port1.onmessage=I,k=function(){N.postMessage(null)}}else k=function(){A(I,0)};function M(e){x=e,E||(E=!0,k())}function F(e,n){S=A((function(){e(t.unstable_now())}),n)}t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){f||m||(f=!0,M(w))},t.unstable_forceFrameRate=function(e){0>e||125<e?console.error("forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported"):T=0<e?Math.floor(1e3/e):5},t.unstable_getCurrentPriorityLevel=function(){return p},t.unstable_getFirstCallbackNode=function(){return r(c)},t.unstable_next=function(e){switch(p){case 1:case 2:case 3:var t=3;break;default:t=p}var n=p;p=t;try{return e()}finally{p=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=function(){},t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=p;p=e;try{return t()}finally{p=n}},t.unstable_scheduleCallback=function(e,o,a){var i=t.unstable_now();switch(a="object"==typeof a&&null!==a&&"number"==typeof(a=a.delay)&&0<a?i+a:i,e){case 1:var s=-1;break;case 2:s=250;break;case 5:s=1073741823;break;case 4:s=1e4;break;default:s=5e3}return e={id:u++,callback:o,priorityLevel:e,startTime:a,expirationTime:s=a+s,sortIndex:-1},a>i?(e.sortIndex=a,n(d,e),null===r(c)&&e===r(d)&&(g?(b(S),S=-1):g=!0,F(v,a-i))):(e.sortIndex=s,n(c,e),f||m||(f=!0,M(w))),e},t.unstable_shouldYield=_,t.unstable_wrapCallback=function(e){var t=p;return function(){var n=p;p=t;try{return e.apply(this,arguments)}finally{p=n}}}},3840:(e,t,n)=>{"use strict";e.exports=n(53)},3379:e=>{"use strict";var t=[];function n(e){for(var n=-1,r=0;r<t.length;r++)if(t[r].identifier===e){n=r;break}return n}function r(e,r){for(var a={},i=[],s=0;s<e.length;s++){var l=e[s],c=r.base?l[0]+r.base:l[0],d=a[c]||0,u="".concat(c," ").concat(d);a[c]=d+1;var h=n(u),p={css:l[1],media:l[2],sourceMap:l[3],supports:l[4],layer:l[5]};if(-1!==h)t[h].references++,t[h].updater(p);else{var m=o(p,r);r.byIndex=s,t.splice(s,0,{identifier:u,updater:m,references:1})}i.push(u)}return i}function o(e,t){var n=t.domAPI(t);return n.update(e),function(t){if(t){if(t.css===e.css&&t.media===e.media&&t.sourceMap===e.sourceMap&&t.supports===e.supports&&t.layer===e.layer)return;n.update(e=t)}else n.remove()}}e.exports=function(e,o){var a=r(e=e||[],o=o||{});return function(e){e=e||[];for(var i=0;i<a.length;i++){var s=n(a[i]);t[s].references--}for(var l=r(e,o),c=0;c<a.length;c++){var d=n(a[c]);0===t[d].references&&(t[d].updater(),t.splice(d,1))}a=l}}},569:e=>{"use strict";var t={};e.exports=function(e,n){var r=function(e){if(void 0===t[e]){var n=document.querySelector(e);if(window.HTMLIFrameElement&&n instanceof window.HTMLIFrameElement)try{n=n.contentDocument.head}catch(e){n=null}t[e]=n}return t[e]}(e);if(!r)throw new Error("Couldn't find a style target. This probably means that the value for the 'insert' parameter is invalid.");r.appendChild(n)}},9216:e=>{"use strict";e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},3565:(e,t,n)=>{"use strict";e.exports=function(e){var t=n.nc;t&&e.setAttribute("nonce",t)}},7795:e=>{"use strict";e.exports=function(e){if("undefined"==typeof document)return{update:function(){},remove:function(){}};var t=e.insertStyleElement(e);return{update:function(n){!function(e,t,n){var r="";n.supports&&(r+="@supports (".concat(n.supports,") {")),n.media&&(r+="@media ".concat(n.media," {"));var o=void 0!==n.layer;o&&(r+="@layer".concat(n.layer.length>0?" ".concat(n.layer):""," {")),r+=n.css,o&&(r+="}"),n.media&&(r+="}"),n.supports&&(r+="}");var a=n.sourceMap;a&&"undefined"!=typeof btoa&&(r+="\n/*# sourceMappingURL=data:application/json;base64,".concat(btoa(unescape(encodeURIComponent(JSON.stringify(a))))," */")),t.styleTagTransform(r,e,t.options)}(t,e,n)},remove:function(){!function(e){if(null===e.parentNode)return!1;e.parentNode.removeChild(e)}(t)}}}},4589:e=>{"use strict";e.exports=function(e,t){if(t.styleSheet)t.styleSheet.cssText=e;else{for(;t.firstChild;)t.removeChild(t.firstChild);t.appendChild(document.createTextNode(e))}}},1742:e=>{e.exports=function(){var e=document.getSelection();if(!e.rangeCount)return function(){};for(var t=document.activeElement,n=[],r=0;r<e.rangeCount;r++)n.push(e.getRangeAt(r));switch(t.tagName.toUpperCase()){case"INPUT":case"TEXTAREA":t.blur();break;default:t=null}return e.removeAllRanges(),function(){"Caret"===e.type&&e.removeAllRanges(),e.rangeCount||n.forEach((function(t){e.addRange(t)})),t&&t.focus()}}},3095:(e,t)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e};function r(e){e&&"limit"in e&&(this._limit=e.limit),this.clear()}r.prototype={toString:function(){return"[object TupleMap]"},_hash:function(e){if(e===this._lastTuple)return this._lastHash;for(var t=e.length,r=[],o=0;o<t;o++){var a=e[o],i=void 0===a?"undefined":n(a);if(null===a||"object"!==i&&"function"!==i)r.push("string"===i?'"'+a+'"':""+a);else if(this._idMap.has(a))r.push(this._idMap.get(a));else{var s="#"+this._id++;this._idMap.set(a,s),r.push(s)}}return this._lastTuple=e,this._lastHash=r.join("/<[MI_SEP]>/"),this._lastHash},has:function(e){var t=this._hash(e);return this._cache.has(t)},set:function(e,t){var n=this._hash(e);return void 0!==this._limit&&this._cache.delete(n),this._cache.set(n,t),void 0!==this._limit&&this._cache.size>this._limit&&this._cache.delete(this._cache.keys().next().value),this},get:function(e){var t=this._hash(e);if(void 0!==this._limit&&this._cache.has(t)){var n=this._cache.get(t);return this._cache.delete(t),this._cache.set(t,n),n}return this._cache.get(t)},clear:function(){this._cache=new Map,this._idMap=new WeakMap,this._id=0,delete this._lastTuple,delete this._lastHash}},t.default=r,e.exports=t.default},3250:(e,t,n)=>{"use strict";var r=n(7294),o="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},a=r.useState,i=r.useEffect,s=r.useLayoutEffect,l=r.useDebugValue;function c(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!o(e,n)}catch(e){return!0}}var d="undefined"==typeof window||void 0===window.document||void 0===window.document.createElement?function(e,t){return t()}:function(e,t){var n=t(),r=a({inst:{value:n,getSnapshot:t}}),o=r[0].inst,d=r[1];return s((function(){o.value=n,o.getSnapshot=t,c(o)&&d({inst:o})}),[e,n,t]),i((function(){return c(o)&&d({inst:o}),e((function(){c(o)&&d({inst:o})}))}),[e]),l(n),n};t.useSyncExternalStore=void 0!==r.useSyncExternalStore?r.useSyncExternalStore:d},139:(e,t,n)=>{"use strict";var r=n(7294),o=n(1688),a="function"==typeof Object.is?Object.is:function(e,t){return e===t&&(0!==e||1/e==1/t)||e!=e&&t!=t},i=o.useSyncExternalStore,s=r.useRef,l=r.useEffect,c=r.useMemo,d=r.useDebugValue;t.useSyncExternalStoreWithSelector=function(e,t,n,r,o){var u=s(null);if(null===u.current){var h={hasValue:!1,value:null};u.current=h}else h=u.current;u=c((function(){function e(e){if(!l){if(l=!0,i=e,e=r(e),void 0!==o&&h.hasValue){var t=h.value;if(o(t,e))return s=t}return s=e}if(t=s,a(i,e))return t;var n=r(e);return void 0!==o&&o(t,n)?t:(i=e,s=n)}var i,s,l=!1,c=void 0===n?null:n;return[function(){return e(t())},null===c?void 0:function(){return e(c())}]}),[t,n,r,o]);var p=i(e,u[0],u[1]);return l((function(){h.hasValue=!0,h.value=p}),[p]),d(p),p}},1688:(e,t,n)=>{"use strict";e.exports=n(3250)},2798:(e,t,n)=>{"use strict";e.exports=n(139)},7928:(e,t,n)=>{"use strict";e.exports=n.p+"58c5415e952fb6dddd6b.png"},8144:(e,t,n)=>{"use strict";e.exports=n.p+"ca2af827049e9039ef9c.svg"},2039:(e,t,n)=>{"use strict";e.exports=n.p+"524e896f487119a0b832.svg"},2939:(e,t,n)=>{"use strict";e.exports=n.p+"da1f21c60c7217745dd8.svg"},3855:(e,t,n)=>{"use strict";e.exports=n.p+"4536fd0738f36c3463bc.svg"},7317:(e,t,n)=>{"use strict";e.exports=n.p+"a3196e840709b18a3119.svg"},5893:(e,t,n)=>{"use strict";e.exports=n.p+"7e3ac9afb25cfe809520.svg"},9248:(e,t,n)=>{"use strict";e.exports=n.p+"9a7bd6ec36312a2baa7e.svg"},2426:(e,t,n)=>{"use strict";e.exports=n.p+"9d858d1a3ab57f8ee2e1.svg"},4177:(e,t,n)=>{"use strict";e.exports=n.p+"8aae7b979b04407f71a4.svg"},2460:(e,t,n)=>{"use strict";e.exports=n.p+"6c8063be3afa1d95c902.svg"},8115:(e,t,n)=>{"use strict";e.exports=n.p+"6bd0589a27236471fdab.svg"},9325:(e,t,n)=>{"use strict";e.exports=n.p+"aa867391c311267af5a9.svg"},9455:(e,t,n)=>{"use strict";e.exports=n.p+"731673c749e57bf6f544.svg"},8695:(e,t,n)=>{"use strict";e.exports=n.p+"e4ed50222911c5af9a32.svg"},1400:(e,t,n)=>{"use strict";e.exports=n.p+"7273fadce89da05535e5.svg"},7856:(e,t,n)=>{"use strict";e.exports=n.p+"11c5dca6d97c9e10e5b7.svg"},6304:(e,t,n)=>{"use strict";e.exports=n.p+"4ecb077d8715f89c0f87.svg"},6577:(e,t,n)=>{"use strict";e.exports=n.p+"9eb1fab2684d1e1f0e26.svg"},2374:(e,t,n)=>{"use strict";e.exports=n.p+"0c510afd6169a0a83f97.svg"},6013:(e,t,n)=>{"use strict";e.exports=n.p+"b805360fcc91834556c9.svg"},4881:(e,t,n)=>{"use strict";e.exports=n.p+"390aa266f451c1005f61.svg"},1205:(e,t,n)=>{"use strict";e.exports=n.p+"c3432220f657733ed05f.svg"},4898:(e,t,n)=>{"use strict";e.exports=n.p+"3c3fda7c08bcc9544c64.svg"},5107:(e,t,n)=>{"use strict";e.exports=n.p+"9103e94f1d34c15d44be.svg"},736:(e,t,n)=>{"use strict";e.exports=n.p+"7c7ac3c7df370340cfd2.svg"},6396:(e,t,n)=>{"use strict";e.exports=n.p+"fd040fb5f4e7a515bb3c.svg"},8121:(e,t,n)=>{"use strict";e.exports=n.p+"6c6b49af3a86dfdd44e6.svg"},4850:(e,t,n)=>{"use strict";e.exports=n.p+"490065792b7e903c9f3e.svg"},1833:(e,t,n)=>{"use strict";e.exports=n.p+"0d5cf282780cd1a5ec64.svg"},9337:(e,t,n)=>{"use strict";e.exports=n.p+"31fe933f3a12be1aa7f3.svg"},7786:(e,t,n)=>{"use strict";e.exports=n.p+"e70722c0fe0ac3d4227b.svg"},65:(e,t,n)=>{"use strict";e.exports=n.p+"d09537c705fb0878eb63.svg"},7156:(e,t,n)=>{"use strict";e.exports=n.p+"4260d5db8309a6f83637.svg"},9090:(e,t,n)=>{"use strict";e.exports=n.p+"18e7fdd45099134897d2.svg"},6436:(e,t,n)=>{"use strict";e.exports=n.p+"71730566d6c47ffdc965.svg"},7067:(e,t,n)=>{"use strict";e.exports=n.p+"86e81402ef76d28ff55f.svg"},3973:(e,t,n)=>{"use strict";e.exports=n.p+"8b8b909e42722172d494.svg"},4295:(e,t,n)=>{"use strict";e.exports=n.p+"49da6a2153f62ef73d17.svg"},4567:(e,t,n)=>{"use strict";e.exports=n.p+"76e5b29823c9fd62d90d.svg"},4649:(e,t,n)=>{"use strict";e.exports=n.p+"8dab2a6ba757bcc6e9a5.svg"},1415:(e,t,n)=>{"use strict";e.exports=n.p+"2d4b477bc424d35a0245.svg"},8293:(e,t,n)=>{"use strict";e.exports=n.p+"acb8393f3fb9c59b15c9.svg"},8065:(e,t,n)=>{"use strict";e.exports=n.p+"7853c71223701f30d495.svg"},5835:(e,t,n)=>{"use strict";e.exports=n.p+"79eaad4fc0c398100809.svg"},738:(e,t,n)=>{"use strict";e.exports=n.p+"f8e25c2ebeb0a0725a9e.svg"},1721:(e,t,n)=>{"use strict";e.exports=n.p+"b5698a02eef37ce29146.svg"},9998:(e,t,n)=>{"use strict";e.exports=n.p+"022efb839d22fa54a716.svg"},4471:(e,t,n)=>{"use strict";e.exports=n.p+"fcb532a05dd4b09c2d08.svg"},7510:(e,t,n)=>{"use strict";e.exports=n.p+"d9c199b3e3e469cc5713.svg"},2612:(e,t,n)=>{"use strict";e.exports=n.p+"2e43ad991eb141fc017f.svg"},9210:(e,t,n)=>{"use strict";e.exports=n.p+"2ea5b50b7361e6de561c.svg"},2838:(e,t,n)=>{"use strict";e.exports=n.p+"f0599659345cf76717cd.svg"},9835:(e,t,n)=>{"use strict";e.exports=n.p+"81762b0b1aacd3686a6b.svg"}},a={};function i(e){var t=a[e];if(void 0!==t)return t.exports;var n=a[e]={id:e,loaded:!1,exports:{}};return o[e].call(n.exports,n,n.exports,i),n.loaded=!0,n.exports}i.m=o,i.c=a,i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var n in t)i.o(t,n)&&!i.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce(((t,n)=>(i.f[n](e,t),t)),[])),i.u=e=>e+"."+{9:"32828795506af73ed4a1",119:"92ddbd8a86d8c3ca559e",131:"c21d348572deab4ece66",308:"4d236ce7e6451807cb54",914:"b9bc213d93173ce6b0cb"}[e]+".bundle.js",i.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),i.hmd=e=>((e=Object.create(e)).children||(e.children=[]),Object.defineProperty(e,"exports",{enumerable:!0,set:()=>{throw new Error("ES Modules may not assign module.exports or exports.*, Use ESM export syntax, instead: "+e.id)}}),e),i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),e={},i.l=(t,n,r,o)=>{if(e[t])e[t].push(n);else{var a,s;if(void 0!==r)for(var l=document.getElementsByTagName("script"),c=0;c<l.length;c++){var d=l[c];if(d.getAttribute("src")==t){a=d;break}}a||(s=!0,(a=document.createElement("script")).charset="utf-8",a.timeout=120,i.nc&&a.setAttribute("nonce",i.nc),a.src=t),e[t]=[n];var u=(n,r)=>{a.onerror=a.onload=null,clearTimeout(h);var o=e[t];if(delete e[t],a.parentNode&&a.parentNode.removeChild(a),o&&o.forEach((e=>e(r))),n)return n(r)},h=setTimeout(u.bind(null,void 0,{type:"timeout",target:a}),12e4);a.onerror=u.bind(null,a.onerror),a.onload=u.bind(null,a.onload),s&&document.head.appendChild(a)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},i.p="/",(()=>{i.b=document.baseURI||self.location.href;var e={179:0};i.f.j=(t,n)=>{var r=i.o(e,t)?e[t]:void 0;if(0!==r)if(r)n.push(r[2]);else{var o=new Promise(((n,o)=>r=e[t]=[n,o]));n.push(r[2]=o);var a=i.p+i.u(t),s=new Error;i.l(a,(n=>{if(i.o(e,t)&&(0!==(r=e[t])&&(e[t]=void 0),r)){var o=n&&("load"===n.type?"missing":n.type),a=n&&n.target&&n.target.src;s.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,r[1](s)}}),"chunk-"+t,t)}};var t=(t,n)=>{var r,o,[a,s,l]=n,c=0;if(a.some((t=>0!==e[t]))){for(r in s)i.o(s,r)&&(i.m[r]=s[r]);l&&l(i)}for(t&&t(n);c<a.length;c++)o=a[c],i.o(e,o)&&e[o]&&e[o][0](),e[o]=0},n=globalThis.webpackChunk=globalThis.webpackChunk||[];n.forEach(t.bind(null,0)),n.push=t.bind(null,n.push.bind(n))})(),i.nc=void 0,t={},n={1527:function(){return{}}},r={914:[1527]},i.w={},i.f.wasm=function(e,o){(r[e]||[]).forEach((function(r,a){var s=t[r];if(s)o.push(s);else{var l,c=n[r](),d=fetch(i.p+""+{914:{1527:"ad13da76642d8099fe70"}}[e][r]+".module.wasm");l=c&&"function"==typeof c.then&&"function"==typeof WebAssembly.compileStreaming?Promise.all([WebAssembly.compileStreaming(d),c]).then((function(e){return WebAssembly.instantiate(e[0],e[1])})):"function"==typeof WebAssembly.instantiateStreaming?WebAssembly.instantiateStreaming(d,c):d.then((function(e){return e.arrayBuffer()})).then((function(e){return WebAssembly.instantiate(e,c)})),o.push(t[r]=l.then((function(e){return i.w[r]=(e.instance||e).exports})))}}))},i(6014)})();
|
199
|
+
//# sourceMappingURL=main.fc4f388a376c68dab444.bundle.js.map
|