profile-viewer 0.0.3 → 0.0.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/dist/{f0599659345cf76717cd.svg → 118632062f4755918dac.svg} +1 -1
- data/dist/{79eaad4fc0c398100809.svg → 3a829bf1fcf02598aa4b.svg} +1 -1
- data/dist/{874.2a087b9b5a296a9c3fcd.bundle.js → 874.ca7a11f56438ad874b9d.bundle.js} +2 -2
- data/dist/874.ca7a11f56438ad874b9d.bundle.js.map +1 -0
- data/dist/8846b19a497771fe0e9d.svg +4 -0
- data/dist/docs/memory-allocations.md +28 -6
- data/dist/index.html +1 -1
- data/dist/locales/de/app.ftl +11 -0
- data/dist/locales/el/app.ftl +2 -0
- data/dist/locales/en-CA/app.ftl +6 -0
- data/dist/locales/en-GB/app.ftl +11 -0
- data/dist/locales/en-US/app.ftl +10 -0
- data/dist/locales/es-CL/app.ftl +2 -0
- data/dist/locales/fr/app.ftl +46 -0
- data/dist/locales/fy-NL/app.ftl +11 -0
- data/dist/locales/ia/app.ftl +2 -0
- data/dist/locales/it/app.ftl +5 -0
- data/dist/locales/kab/app.ftl +7 -0
- data/dist/locales/nl/app.ftl +11 -0
- data/dist/locales/pt-BR/app.ftl +5 -0
- data/dist/locales/ru/app.ftl +11 -0
- data/dist/locales/sv-SE/app.ftl +2 -0
- data/dist/locales/tr/app.ftl +38 -0
- data/dist/locales/uk/app.ftl +2 -0
- data/dist/locales/zh-CN/app.ftl +5 -0
- data/dist/locales/zh-TW/app.ftl +52 -47
- data/dist/main.89ba95fadf0fbee4977a.bundle.js +201 -0
- data/dist/main.89ba95fadf0fbee4977a.bundle.js.map +1 -0
- data/dist/photon/{f0599659345cf76717cd.svg → 118632062f4755918dac.svg} +1 -1
- data/dist/photon/index.html +1 -1
- data/dist/photon/{main.aafbcdad3fb08c7ae5b4.bundle.js → main.fa2aec5d6b214ac1cdb3.bundle.js} +2 -2
- data/dist/photon/{main.aafbcdad3fb08c7ae5b4.bundle.js.map → main.fa2aec5d6b214ac1cdb3.bundle.js.map} +1 -1
- data/dist/sw.js +1 -1
- data/dist/sw.js.map +1 -1
- data/ruby-bin/profile-viewer-version.rb +1 -1
- metadata +14 -17
- data/dist/874.2a087b9b5a296a9c3fcd.bundle.js.map +0 -1
- data/dist/b805360fcc91834556c9.svg +0 -4
- data/dist/main.ac7130d34ce3b872712a.bundle.js +0 -201
- data/dist/main.ac7130d34ce3b872712a.bundle.js.map +0 -1
- /data/dist/{main.ac7130d34ce3b872712a.bundle.js.LICENSE.txt → main.89ba95fadf0fbee4977a.bundle.js.LICENSE.txt} +0 -0
@@ -1,201 +0,0 @@
|
|
1
|
-
/*! For license information please see main.ac7130d34ce3b872712a.bundle.js.LICENSE.txt */
|
2
|
-
(()=>{var e,t,n,r,o,a,i={8088: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},9298: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}},9839:(e,t,n)=>{"use strict";n.d(t,{AJ:()=>b,Ae:()=>s,BY:()=>S,Dp:()=>w,E5:()=>d,EV:()=>m,F2:()=>k,G5:()=>P,H9:()=>T,HT:()=>z,Ie:()=>o,JZ:()=>G,KD:()=>A,KU:()=>H,LT:()=>h,NC:()=>I,Nj:()=>L,OI:()=>a,O_:()=>u,RD:()=>i,RN:()=>O,SH:()=>C,Xh:()=>E,YX:()=>N,Yk:()=>y,ZB:()=>v,ZK:()=>F,Zh:()=>x,a1:()=>j,cs:()=>R,d7:()=>U,li:()=>D,mN:()=>W,mk:()=>f,nO:()=>V,oQ:()=>c,pp:()=>B,tk:()=>p,u3:()=>g,xC:()=>r,xJ:()=>M,xs:()=>l,ye:()=>_});const r=31,o=51,a=15,i=150,s=0,l=50,c=30,d=5,u=7,h=d*u,p=25,m=15,f=p+m,g=2,A="orange",b=25,C=2,y="blue",v=40,w=2,E=25,k=E,x=25,T=2,S="grey",B=30,I=20,_=25,P=2,N="grey",M=25,F=2,R=.001,D=40,L=2,O=20,U="profile-store",z="http://localhost:5252",G="https://localhost:5252",W=0,H=1,V=2,j=3},959:(e,t,n)=>{"use strict";var r={};n.r(r),n.d(r,{exclude:()=>Lt,extract:()=>Pt,parse:()=>Nt,parseUrl:()=>Ft,pick:()=>Dt,stringify:()=>Mt,stringifyUrl:()=>Rt});var o={};n.r(o),n.d(o,{getActiveTabProfileSpecificState:()=>go,getAllCommittedRanges:()=>wo,getAssemblyViewIsOpen:()=>Bo,getAssemblyViewNativeSymbol:()=>Io,getAssemblyViewScrollGeneration:()=>_o,getCommittedRangeLabels:()=>fa,getCurrentSearchString:()=>Fo,getDataSource:()=>Ao,getFileNameInZipFilePath:()=>ha,getFirstSelectedThreadIndex:()=>Wo,getFormattedMetaInfoString:()=>ua,getFullProfileSpecificState:()=>fo,getGlobalTrackOrder:()=>$o,getHash:()=>bo,getHiddenGlobalTracks:()=>Ko,getHiddenLocalTracks:()=>Jo,getHiddenLocalTracksByPid:()=>Yo,getImplementationFilter:()=>Eo,getInvertCallstack:()=>Oo,getIsActiveTabResourcesPanelOpen:()=>Mo,getIsBottomBoxOpen:()=>la,getLastSelectedCallTreeSummaryStrategy:()=>ko,getLegacyHiddenThreads:()=>jo,getLegacyThreadOrder:()=>Vo,getLocalTrackOrder:()=>Qo,getLocalTrackOrderByPid:()=>qo,getMarkersSearchString:()=>Ro,getMarkersSearchStrings:()=>ta,getMarkersSearchStringsAsRegExp:()=>oa,getNetworkSearchString:()=>Do,getNetworkSearchStrings:()=>na,getNetworkSearchStringsAsRegExp:()=>aa,getPathInZipFileFromUrl:()=>da,getProfileNameForStorage:()=>ma,getProfileNameFromUrl:()=>vo,getProfileNameWithDefault:()=>pa,getProfileSpecificState:()=>mo,getProfileUrl:()=>Co,getProfilesToCompare:()=>yo,getSearchStrings:()=>ea,getSearchStringsAsRegExp:()=>ra,getSelectedTab:()=>Lo,getSelectedThreadIndexes:()=>zo,getSelectedThreadIndexesOrNull:()=>Uo,getSelectedThreadsKey:()=>Go,getShowJsTracerSummary:()=>Po,getShowUserTimings:()=>xo,getSourceViewFile:()=>To,getSourceViewScrollGeneration:()=>So,getSymbolServerUrl:()=>ga,getTabFilter:()=>Zo,getTimelineTrackOrganization:()=>No,getTimelineType:()=>Ho,getTransformStack:()=>sa,getUrlPredictor:()=>ca,getUrlState:()=>po,hasTabFilter:()=>Xo});var a={};n.r(a),n.d(a,{getActiveTabGlobalTrackFromReference:()=>us,getActiveTabGlobalTrackReferences:()=>ds,getActiveTabGlobalTracks:()=>ss,getActiveTabID:()=>Oi,getActiveTabMainTrack:()=>is,getActiveTabProfileView:()=>ni,getActiveTabResourceTrackFromReference:()=>hs,getActiveTabResourceTracks:()=>ls,getActiveTabResourcesThreadsKey:()=>cs,getActiveTabTimeline:()=>as,getCategories:()=>Ri,getCommittedRange:()=>ui,getContainsPrivateBrowsingInformation:()=>Is,getContentfulSpeedIndexProgress:()=>Pi,getCounter:()=>xi,getCounterSelectors:()=>zi,getCurrentTableViewOptions:()=>ai,getDefaultCategory:()=>yi,getExtensionIdToNameMap:()=>Es,getExtensionTable:()=>Fi,getFocusCallTreeGeneration:()=>ci,getFullProfileView:()=>ti,getGlobalTrackAndIndexByPid:()=>qi,getGlobalTrackFromReference:()=>Yi,getGlobalTrackName:()=>ns,getGlobalTrackNames:()=>ts,getGlobalTrackReferences:()=>$i,getGlobalTracks:()=>ji,getHasPreferenceMarkers:()=>Ki,getHiddenTrackCount:()=>ms,getIPCMarkerCorrelations:()=>Gi,getInnerWindowIDSetByTabID:()=>ys,getInnerWindowIDToPageMap:()=>Wi,getInnerWindowIDToTabMap:()=>Hi,getLastNonShiftClick:()=>Ei,getLocalTrackFromReference:()=>Ji,getLocalTrackName:()=>os,getLocalTrackNamesByPid:()=>rs,getLocalTracks:()=>Xi,getLocalTracksByPid:()=>Zi,getMarkerSchema:()=>Di,getMarkerSchemaByName:()=>Li,getMaxCPUDeltaPerInterval:()=>fs,getMeta:()=>Ti,getMouseTimePosition:()=>hi,getOriginsProfileView:()=>ri,getOriginsTimeline:()=>ps,getPageList:()=>Ci,getPagesMap:()=>As,getPerceptualSpeedIndexProgress:()=>_i,getPreviewSelection:()=>mi,getPreviewSelectionRange:()=>fi,getProcessIdToNameMap:()=>Bs,getProcessesWithMemoryTrack:()=>Qi,getProfile:()=>Ai,getProfileExtraInfo:()=>Fs,getProfileFilterPageData:()=>Ts,getProfileFilterPageDataByTabID:()=>ks,getProfileFilterSortedPageData:()=>xs,getProfileInterval:()=>bi,getProfileOrNull:()=>gi,getProfileRootRange:()=>ii,getProfileUsesFrameImplementation:()=>Ps,getProfileUsesMultipleStackTypes:()=>Ms,getProfileView:()=>ei,getProfileViewOptions:()=>oi,getProfiledThreadIds:()=>_s,getProfilerConfiguration:()=>Ni,getRelevantInnerWindowIDsForActiveTab:()=>vs,getRelevantInnerWindowIDsForCurrentTab:()=>ws,getRelevantPagesForActiveTab:()=>Cs,getRightClickedThreadIndex:()=>es,getRightClickedTrack:()=>ki,getSampleUnits:()=>Mi,getScrollToSelectionGeneration:()=>li,getShouldDisplaySearchfox:()=>Ns,getSymbolicationStatus:()=>si,getTabToThreadIndexesMap:()=>Vi,getTableViewOptionSelectors:()=>pi,getThreadActivityScores:()=>gs,getThreadIdToNameMap:()=>Ss,getThreadNames:()=>wi,getThreads:()=>vi,getVisualMetrics:()=>Bi,getVisualMetricsOrNull:()=>Si,getVisualProgress:()=>Ii,getZeroAt:()=>di});var i={};n.r(i),n.d(i,{getExpandedZipFileIndexes:()=>Ls,getHasZipFile:()=>zs,getSelectedZipFileIndex:()=>Ds,getZipFile:()=>Us,getZipFileErrorMessage:()=>Gs,getZipFileMaxDepth:()=>Vs,getZipFileState:()=>Os,getZipFileTable:()=>Hs,getZipFileTableOrNull:()=>Ws,getZipFileTree:()=>$s,getZipFileTreeOrNull:()=>js,getZippedProfilesState:()=>Rs});var s={};n.r(s),n.d(s,{getApp:()=>Ks,getBrowserConnection:()=>ol,getBrowserConnectionStatus:()=>rl,getCurrentProfileUploadedInformation:()=>dl,getExperimental:()=>nl,getHasZoomedViaMousewheel:()=>Zs,getIsDragAndDropDragging:()=>ll,getIsDragAndDropOverlayRegistered:()=>cl,getIsEventDelayTracksEnabled:()=>al,getIsExperimentalCPUGraphsEnabled:()=>il,getIsExperimentalProcessCPUTracksEnabled:()=>sl,getIsNewProfileLoadAllowed:()=>pl,getIsNewlyPublished:()=>tl,getIsSidebarOpen:()=>Xs,getLastVisibleThreadTabSlug:()=>Qs,getPanelLayoutGeneration:()=>Js,getScreenshotTrackHeight:()=>ul,getSidebarOpenCategories:()=>fl,getTimelineHeight:()=>hl,getTimelineMarginLeft:()=>ml,getTrackThreadHeights:()=>el,getUrlSetupPhase:()=>qs,getView:()=>Ys});var l={};n.r(l),n.d(l,{getAbortFunction:()=>qd,getCheckedSharingOptions:()=>Dd,getFilenameString:()=>Ld,getHasPrePublishedState:()=>Jd,getHasSanitizedProfile:()=>eu,getIsHidingStaleProfile:()=>Qd,getPrePublishedState:()=>Xd,getPublishState:()=>Rd,getRemoveProfileInformation:()=>Od,getSanitizedProfile:()=>Gd,getSanitizedProfileData:()=>Wd,getShouldSanitizeByDefault:()=>Zd,getUploadError:()=>Kd,getUploadGeneration:()=>jd,getUploadPhase:()=>Vd,getUploadProgress:()=>$d,getUploadProgressString:()=>Yd,getUploadState:()=>Hd});var c={};n.r(c),n.d(c,{getAreThereAnyProcessCPUCounters:()=>nu,getIsCPUUtilizationProvided:()=>tu,getMaxThreadCPUDeltaPerMs:()=>iu});var d={};n.r(d),n.d(d,{getAssemblyCodeCache:()=>cu,getAssemblyViewCode:()=>uu,getSourceCodeCache:()=>su,getSourceViewCode:()=>lu});var u={};n.r(u),n.d(u,{getIconClassName:()=>pu,getIconsWithClassNames:()=>hu});var h={};n.r(h),n.d(h,{getDirection:()=>Au,getL10nState:()=>mu,getLocalization:()=>fu,getPrimaryLocale:()=>gu,getPseudoStrategy:()=>Cu,getRequestedLocales:()=>bu});var p={};n.r(p),n.d(p,{addCollapseResourceTransformToStack:()=>qh,addTransformToStack:()=>Yh,changeCallTreeSearchString:()=>Ph,changeCallTreeSummaryStrategy:()=>Gh,changeExpandedCallNodes:()=>Mh,changeGlobalTrackOrder:()=>mh,changeHoveredMarker:()=>Dh,changeImplementationFilter:()=>zh,changeInvertCallstack:()=>Wh,changeLocalTrackOrder:()=>xh,changeMarkersSearchString:()=>Oh,changeMouseTimePosition:()=>ep,changeNetworkSearchString:()=>Uh,changeProfileName:()=>Jh,changeRightClickedCallNode:()=>rh,changeRightClickedMarker:()=>Lh,changeRightClickedTrack:()=>hh,changeSelectedCallNode:()=>nh,changeSelectedMarker:()=>Fh,changeSelectedNetworkMarker:()=>Rh,changeSelectedThreads:()=>ah,changeShowJsTracerSummary:()=>Vh,changeShowUserTimings:()=>Hh,changeTableViewOptions:()=>tp,changeTimelineType:()=>Xh,closeAssemblyView:()=>op,closeBottomBox:()=>ap,commitRange:()=>$h,expandAllCallNodeDescendants:()=>Nh,focusCallTree:()=>uh,handleCallNodeTransformShortcut:()=>ip,hideGlobalTrack:()=>fh,hideLocalTrack:()=>Sh,hideProvidedTracks:()=>Ch,isolateLocalTrack:()=>Ih,isolateProcess:()=>wh,isolateProcessMainThread:()=>kh,isolateScreenshot:()=>Eh,openAssemblyView:()=>rp,popCommittedRanges:()=>Kh,popTransformsFromStack:()=>Zh,selectActiveTabTrack:()=>dh,selectSelfCallNode:()=>oh,selectTrackFromTid:()=>ch,selectTrackWithModifiers:()=>lh,setContextMenuVisibility:()=>ph,setDataSource:()=>Qh,showAllTracks:()=>Ah,showGlobalTrack:()=>yh,showGlobalTrackIncludingLocalTracks:()=>vh,showLocalTrack:()=>Bh,showProvidedTracks:()=>bh,updateBottomBoxContentsAndMaybeOpen:()=>np,updatePreviewSelection:()=>jh});var m={};n.r(m),n.d(m,{_resetIconCounter:()=>fp,batchLoadDataUrlIcons:()=>mp,iconHasLoaded:()=>lp,iconIsInError:()=>cp,iconStartLoading:()=>pp});var f={};n.r(f),n.d(f,{_fetchProfile:()=>jp,bulkProcessSymbolicationSteps:()=>Pp,changeTabFilter:()=>im,changeTimelineTrackOrganization:()=>kp,doSymbolicateProfile:()=>Fp,doneSymbolicating:()=>_p,finalizeActiveTabProfileView:()=>Ep,finalizeFullProfileView:()=>yp,finalizeOriginProfileView:()=>wp,finalizeProfileView:()=>Cp,getProfileUrlForHash:()=>Xp,loadProfile:()=>bp,receiveZipFile:()=>zp,receivedSymbolTableReply:()=>Bp,requestingSymbolTable:()=>Sp,resymbolicateProfile:()=>xp,retrievePageFaviconsFromBrowser:()=>Rp,retrieveProfileForRawUrl:()=>am,retrieveProfileFromBrowser:()=>Lp,retrieveProfileFromFile:()=>nm,retrieveProfileFromStore:()=>Jp,retrieveProfileOrZipFromUrl:()=>Qp,retrieveProfilesToCompare:()=>om,startSymbolicating:()=>Ip,temporaryError:()=>Gp,triggerLoadingFromUrl:()=>gp,unwrapBrowserConnection:()=>Dp,viewProfile:()=>Tp,viewProfileFromPostMessage:()=>rm,waitingForProfileFromBrowser:()=>Ap,waitingForProfileFromFile:()=>em,waitingForProfileFromStore:()=>Op,waitingForProfileFromUrl:()=>Up});var g={};n.r(g),n.d(g,{changeProfilesToCompare:()=>lm,changeSelectedTab:()=>sm,changeSidebarOpenState:()=>hm,dismissNewlyPublished:()=>bm,enableEventDelayTracks:()=>km,enableExperimentalCPUGraphs:()=>xm,enableExperimentalProcessCPUTracks:()=>Tm,invalidatePanelLayout:()=>pm,profileRemotelyDeleted:()=>Bm,registerDragAndDropOverlay:()=>vm,reportTrackThreadHeight:()=>Am,setCurrentProfileUploadedInformation:()=>Sm,setHasZoomedViaMousewheel:()=>mm,setupInitialUrlState:()=>fm,show404:()=>um,startDragging:()=>Cm,startFetchingProfiles:()=>cm,stopDragging:()=>ym,toggleOpenCategoryInSidebar:()=>_m,toggleResourcesPanel:()=>Em,unregisterDragAndDropOverlay:()=>wm,updateBrowserConnectionStatus:()=>Im,updateUrlState:()=>gm,urlSetupDone:()=>dm});var A={};n.r(A),n.d(A,{receiveL10n:()=>Ym,requestL10n:()=>Km,togglePseudoStrategy:()=>qm});var b={};n.r(b),n.d(b,{beginLoadingAssemblyCodeFromBrowserConnection:()=>tw,beginLoadingAssemblyCodeFromUrl:()=>ew,beginLoadingSourceCodeFromBrowserConnection:()=>Xv,beginLoadingSourceCodeFromUrl:()=>Zv,failLoadingAssemblyCode:()=>rw,failLoadingSourceCode:()=>Qv,finishLoadingAssemblyCode:()=>nw,finishLoadingSourceCode:()=>Jv});var C={};n.r(C),n.d(C,{attemptToPublish:()=>AE,hideStaleProfile:()=>wE,profilePublished:()=>yE,profileSanitized:()=>CE,resetUploadState:()=>bE,revertToPrePublishedState:()=>vE,toggleCheckedSharingOptions:()=>hE,updateUploadProgress:()=>fE,uploadCompressionStarted:()=>pE,uploadFailed:()=>gE,uploadStarted:()=>mE});var y={};n.r(y),n.d(y,{changeExpandedZipFile:()=>ok,changeSelectedZipFile:()=>rk,returnToZipFileList:()=>sk,showErrorForNoFileInZip:()=>lk,viewProfileFromPathInZipFile:()=>ik,viewProfileFromZip:()=>ak});var v=n(5072),w=n.n(v),E=n(7825),k=n.n(E),x=n(7659),T=n.n(x),S=n(5056),B=n.n(S),I=n(540),P=n.n(I),N=n(1113),M=n.n(N),F=n(1086),R={};R.styleTagTransform=M(),R.setAttributes=B(),R.insert=T().bind(null,"head"),R.domAPI=k(),R.insertStyleElement=P(),w()(F.A,R),F.A&&F.A.locals&&F.A.locals;var D=n(6859),L={};L.styleTagTransform=M(),L.setAttributes=B(),L.insert=T().bind(null,"head"),L.domAPI=k(),L.insertStyleElement=P(),w()(D.A,L),D.A&&D.A.locals&&D.A.locals;var O=n(9815),U={};U.styleTagTransform=M(),U.setAttributes=B(),U.insert=T().bind(null,"head"),U.domAPI=k(),U.insertStyleElement=P(),w()(O.A,U),O.A&&O.A.locals&&O.A.locals;var z=n(1961),G={};G.styleTagTransform=M(),G.setAttributes=B(),G.insert=T().bind(null,"head"),G.domAPI=k(),G.insertStyleElement=P(),w()(z.A,G),z.A&&z.A.locals&&z.A.locals;var W=n(4717),H={};H.styleTagTransform=M(),H.setAttributes=B(),H.insert=T().bind(null,"head"),H.domAPI=k(),H.insertStyleElement=P(),w()(W.A,H),W.A&&W.A.locals&&W.A.locals;var V=n(3829),j={};j.styleTagTransform=M(),j.setAttributes=B(),j.insert=T().bind(null,"head"),j.domAPI=k(),j.insertStyleElement=P(),w()(V.A,j),V.A&&V.A.locals&&V.A.locals;var $=n(6756),K={};K.styleTagTransform=M(),K.setAttributes=B(),K.insert=T().bind(null,"head"),K.domAPI=k(),K.insertStyleElement=P(),w()($.A,K),$.A&&$.A.locals&&$.A.locals;var Y=n(12),q={};q.styleTagTransform=M(),q.setAttributes=B(),q.insert=T().bind(null,"head"),q.domAPI=k(),q.insertStyleElement=P(),w()(Y.A,q),Y.A&&Y.A.locals&&Y.A.locals;var Z=n(8901),X={};X.styleTagTransform=M(),X.setAttributes=B(),X.insert=T().bind(null,"head"),X.domAPI=k(),X.insertStyleElement=P(),w()(Z.A,X),Z.A&&Z.A.locals&&Z.A.locals;var J=n(6540),Q=n(5338);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]}}let re;Symbol.asyncIterator;const oe={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},ae=/<|&#?\w+;/,ie=e=>{console.warn(`[@fluent/react] ${e.name}: ${e.message}`)};class se{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(!re){const e=document.createElement("template");re=function(t){return e.innerHTML=t,Array.from(e.content.childNodes)}}return re}(),n){this.bundles=ne.from(e),this.parseMarkup=t,this.reportError=n||ie}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,J.createElement)(J.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 oe)return(0,J.cloneElement)(e,a);if(null===o.value)return(0,J.cloneElement)(e,a);i=[];const s=r.formatPattern(o.value,n.vars,i);for(let e of i)this.reportError(e);if(!ae.test(s)||null===this.parseMarkup)return(0,J.cloneElement)(e,a,s);let l;if(n.elems){l=new Map;for(let[e,t]of Object.entries(n.elems))(0,J.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 oe?r:(0,J.cloneElement)(r,void 0,t):t}));return(0,J.cloneElement)(e,a,...c)}}let le=(0,J.createContext)(null);function ce(e){return(0,J.createElement)(le.Provider,{value:e.l10n},e.children)}function de(e){const{id:t,attrs:n,vars:r,elems:o,children:a}=e,i=(0,J.useContext)(le);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,J.isValidElement)(s)){const e="string"==typeof s?s:void 0,n=i.getString(t,r,e);return J.createElement(J.Fragment,null,n)}return i.getElement(s,t,{attrs:n,vars:r,elems:o})}var ue=n(8418),he=J,pe=Symbol.for("react-redux-context"),me="undefined"!=typeof globalThis?globalThis:{};function fe(){if(!he.createContext)return{};const e=me[pe]??(me[pe]=new Map);let t=e.get(he.createContext);return t||(t=he.createContext(null),e.set(he.createContext,t)),t}var ge=fe(),Ae=Symbol.for("react.element"),be=Symbol.for("react.portal"),Ce=Symbol.for("react.fragment"),ye=Symbol.for("react.strict_mode"),ve=Symbol.for("react.profiler"),we=Symbol.for("react.provider"),Ee=Symbol.for("react.context"),ke=Symbol.for("react.server_context"),xe=Symbol.for("react.forward_ref"),Te=Symbol.for("react.suspense"),Se=Symbol.for("react.suspense_list"),Be=Symbol.for("react.memo"),Ie=Symbol.for("react.lazy"),_e=(Symbol.for("react.offscreen"),Symbol.for("react.client.reference"),xe),Pe=Be;function Ne(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 Me(e){return function(t){const n=e(t);function r(){return n}return r.dependsOnOwnProps=!1,r}}function Fe(e){return e.dependsOnOwnProps?Boolean(e.dependsOnOwnProps):1!==e.length}function Re(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=Fe(e);let o=r(t,n);return"function"==typeof o&&(r.mapToProps=o,r.dependsOnOwnProps=Fe(o),o=r(t,n)),o},r}}function De(e,t){return(n,r)=>{throw new Error(`Invalid value of type ${typeof e} for ${t} argument when connecting component ${r.wrappedComponentName}.`)}}function Le(e,t,n){return{...n,...e,...t}}var Oe={notify(){},get:()=>[]};function Ue(e,t){let n,r=Oe,o=0,a=!1;function i(){c.onStateChange&&c.onStateChange()}function s(){o++,n||(n=t?t.addNestedSub(i):e.subscribe(i),r=function(){let e=null,t=null;return{clear(){e=null,t=null},notify(){(()=>{let t=e;for(;t;)t.callback(),t=t.next})()},get(){const t=[];let n=e;for(;n;)t.push(n),n=n.next;return t},subscribe(n){let r=!0;const o=t={callback:n,next:null,prev:t};return o.prev?o.prev.next=o:e=o,function(){r&&null!==e&&(r=!1,o.next?o.next.prev=o.prev:t=o.prev,o.prev?o.prev.next=o.next:e=o.next)}}}}())}function l(){o--,n&&0===o&&(n(),n=void 0,r.clear(),r=Oe)}const c={addNestedSub:function(e){s();const t=r.subscribe(e);let n=!1;return()=>{n||(n=!0,t(),l())}},notifyNestedSubs:function(){r.notify()},handleChangeWrapper:i,isSubscribed:function(){return a},trySubscribe:function(){a||(a=!0,s())},tryUnsubscribe:function(){a&&(a=!1,l())},getListeners:()=>r};return c}var ze=!("undefined"==typeof window||void 0===window.document||void 0===window.document.createElement),Ge="undefined"!=typeof navigator&&"ReactNative"===navigator.product,We=ze||Ge?he.useLayoutEffect:he.useEffect;function He(e,t){return e===t?0!==e||0!==t||1/e==1/t:e!=e&&t!=t}function Ve(e,t){if(He(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])||!He(e[n[r]],t[n[r]]))return!1;return!0}var je={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},$e={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},Ke={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},Ye={[_e]:{$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},[Pe]:Ke};function qe(e){return function(e){if("object"==typeof e&&null!==e){const t=e.$$typeof;switch(t){case Ae:{const n=e.type;switch(n){case Ce:case ve:case ye:case Te:case Se:return n;default:{const e=n&&n.$$typeof;switch(e){case ke:case Ee:case xe:case Ie:case Be:case we:return e;default:return t}}}}case be:return t}}}(e)===Be?Ke:Ye[e.$$typeof]||je}var Ze=Object.defineProperty,Xe=Object.getOwnPropertyNames,Je=Object.getOwnPropertySymbols,Qe=Object.getOwnPropertyDescriptor,et=Object.getPrototypeOf,tt=Object.prototype;function nt(e,t){if("string"!=typeof t){if(tt){const n=et(t);n&&n!==tt&&nt(e,n)}let n=Xe(t);Je&&(n=n.concat(Je(t)));const r=qe(e),o=qe(t);for(let a=0;a<n.length;++a){const i=n[a];if(!($e[i]||o&&o[i]||r&&r[i])){const n=Qe(t,i);try{Ze(e,i,n)}catch(e){}}}}return e}var rt=()=>{throw new Error("uSES not initialized!")},ot=[null,null];function at(e,t,n,r,o,a){e.current=r,n.current=!1,o.current&&(o.current=null,a())}function it(e,t){return e===t}var st=function({store:e,context:t,children:n,serverState:r,stabilityCheck:o="once",identityFunctionCheck:a="once"}){const i=he.useMemo((()=>{const t=Ue(e);return{store:e,subscription:t,getServerState:r?()=>r:void 0,stabilityCheck:o,identityFunctionCheck:a}}),[e,r,o,a]),s=he.useMemo((()=>e.getState()),[e]);We((()=>{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||ge;return he.createElement(l.Provider,{value:i},n)};function lt(e){const{mapStateToProps:t,mapDispatchToProps:n,mergeProps:r,options:o,component:a}=e;return function(e,t,n,{pure:r,areStatesEqual:o=it,areOwnPropsEqual:a=Ve,areStatePropsEqual:i=Ve,areMergedPropsEqual:s=Ve,forwardRef:l=!1,context:c=ge}={}){const d=c,u=function(e){return e?"function"==typeof e?Re(e):De(e,"mapStateToProps"):Me((()=>({})))}(e),h=function(e){return e&&"object"==typeof e?Me((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?Re(e):De(e,"mapDispatchToProps"):Me((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):De(e,"mergeProps"):()=>Le}(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]=he.useMemo((()=>{const{reactReduxForwardedRef:e,...n}=t;return[t.context,e,n]}),[t]),i=he.useMemo((()=>d),[n,d]),s=he.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=he.useMemo((()=>function(e,{initMapStateToProps:t,initMapDispatchToProps:n,initMergeProps:r,...o}){return Ne(t(e,o),n(e,o),r(e,o),e,o)}(u.dispatch,r)),[u]),[f,g]=he.useMemo((()=>{if(!m)return ot;const e=Ue(u,l?void 0:s.subscription),t=e.notifyNestedSubs.bind(e);return[e,t]}),[u,l,s]),A=he.useMemo((()=>l?s:{...s,subscription:f}),[l,s,f]),b=he.useRef(void 0),C=he.useRef(a),y=he.useRef(void 0),v=he.useRef(!1),w=he.useRef(!1),E=he.useRef(void 0);We((()=>(w.current=!0,()=>{w.current=!1})),[]);const k=he.useMemo((()=>()=>y.current&&a===C.current?y.current:p(u.getState(),a)),[u,a]),x=he.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 T,S;let B;T=at,S=[C,b,v,a,y,g],We((()=>T(...S)),void 0);try{B=rt(x,k,h?()=>p(h(),a):k)}catch(e){throw E.current&&(e.message+=`\nThe error may be correlated with this previous error:\n${E.current.stack}\n\n`),e}We((()=>{E.current=void 0,y.current=void 0,b.current=B}));const I=he.useMemo((()=>he.createElement(e,{...B,ref:o})),[o,e,B]);return he.useMemo((()=>m?he.createElement(i.Provider,{value:A},I):I),[i,I,A])}const f=he.memo(c);if(f.WrappedComponent=e,f.displayName=c.displayName=n,l){const t=he.forwardRef((function(e,t){return he.createElement(f,{...e,reactReduxForwardedRef:t})}));return t.displayName=n,t.WrappedComponent=e,nt(t,e)}return nt(f,e)}}(t,n,r,o)(a)}ue.useSyncExternalStoreWithSelector,(e=>{rt=e})(J.useSyncExternalStore);var ct="NOT_FOUND",dt=function(e,t){return e===t};function ut(e,t){var n,r,o="object"==typeof t?t:{equalityCheck:t},a=o.equalityCheck,i=void 0===a?dt: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:ct},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 ct}return{get:r,put:function(t,o){r(t)===ct&&(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===ct){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 ht(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 pt=ht(ut),mt=n(919);const ft="%[a-f0-9]{2}",gt=new RegExp("("+ft+")|([^%]+?)","gi"),At=new RegExp("("+ft+")+","gi");function bt(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([],bt(n),bt(r))}function Ct(e){try{return decodeURIComponent(e)}catch{let t=e.match(gt)||[];for(let n=1;n<t.length;n++)t=(e=bt(t,n).join("")).match(gt)||[];return e}}function yt(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}function vt(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)]}const wt=e=>null==e,Et=e=>encodeURIComponent(e).replaceAll(/[!'()*]/g,(e=>`%${e.charCodeAt(0).toString(16).toUpperCase()}`)),kt=Symbol("encodeFragmentIdentifier");function xt(e){if("string"!=typeof e||1!==e.length)throw new TypeError("arrayFormatSeparator must be single character string")}function Tt(e,t){return t.encode?t.strict?Et(e):encodeURIComponent(e):e}function St(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=At.exec(e);for(;n;){try{t[n[0]]=decodeURIComponent(n[0])}catch{const e=Ct(n[0]);e!==n[0]&&(t[n[0]]=e)}n=At.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 Bt(e){return Array.isArray(e)?e.sort():"object"==typeof e?Bt(Object.keys(e)).sort(((e,t)=>Number(e)-Number(t))).map((t=>e[t])):e}function It(e){const t=e.indexOf("#");return-1!==t&&(e=e.slice(0,t)),e}function _t(e,t,n){return"string"===n&&"string"==typeof e?e:"function"==typeof n&&"string"==typeof e?n(e):!t.parseBooleans||null===e||"true"!==e.toLowerCase()&&"false"!==e.toLowerCase()?"number"!==n||Number.isNaN(Number(e))||"string"!=typeof e||""===e.trim()?t.parseNumbers&&!Number.isNaN(Number(e))&&"string"==typeof e&&""!==e.trim()?Number(e):e:Number(e):"true"===e.toLowerCase()}function Pt(e){const t=(e=It(e)).indexOf("?");return-1===t?"":e.slice(t+1)}function Nt(e,t){xt((t={decode:!0,sort:!0,arrayFormat:"none",arrayFormatSeparator:",",parseNumbers:!1,parseBooleans:!1,types:Object.create(null),...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&&St(n,e).includes(e.arrayFormatSeparator);n=a?St(n,e):n;const i=o||a?n.split(e.arrayFormatSeparator).map((t=>St(t,e))):null===n?n:St(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?St(n,e):n);const a=null===n?[]:St(n,e).split(e.arrayFormatSeparator);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.replaceAll("+"," "):o;let[a,i]=vt(e,"=");void 0===a&&(a=e),i=void 0===i?null:["comma","separator","bracket-separator"].includes(t.arrayFormat)?i:St(i,t),n(St(a,t),i,r)}for(const[e,n]of Object.entries(r))if("object"==typeof n&&null!==n&&"string"!==t.types[e])for(const[r,o]of Object.entries(n)){const a=t.types[e]?t.types[e].replace("[]",""):void 0;n[r]=_t(o,t,a)}else"object"==typeof n&&null!==n&&"string"===t.types[e]?r[e]=Object.values(n).join(t.arrayFormatSeparator):r[e]=_t(n,t,t.types[e]);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 e[t]=Boolean(n)&&"object"==typeof n&&!Array.isArray(n)?Bt(n):n,e}),Object.create(null))}function Mt(e,t){if(!e)return"";xt((t={encode:!0,strict:!0,arrayFormat:"none",arrayFormatSeparator:",",...t}).arrayFormatSeparator);const n=n=>t.skipNull&&wt(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,[Tt(t,e),"[",o,"]"].join("")]:[...n,[Tt(t,e),"[",Tt(o,e),"]=",Tt(r,e)].join("")]};case"bracket":return t=>(n,r)=>void 0===r||e.skipNull&&null===r||e.skipEmptyString&&""===r?n:null===r?[...n,[Tt(t,e),"[]"].join("")]:[...n,[Tt(t,e),"[]=",Tt(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,[Tt(t,e),":list="].join("")]:[...n,[Tt(t,e),":list=",Tt(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?[[Tt(n,e),t,Tt(o,e)].join("")]:[[r,Tt(o,e)].join(e.arrayFormatSeparator)])}default:return t=>(n,r)=>void 0===r||e.skipNull&&null===r||e.skipEmptyString&&""===r?n:null===r?[...n,Tt(t,e)]:[...n,[Tt(t,e),"=",Tt(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?Tt(n,t):Array.isArray(o)?0===o.length&&"bracket-separator"===t.arrayFormat?Tt(n,t)+"[]":o.reduce(r(n),[]).join("&"):Tt(n,t)+"="+Tt(o,t)})).filter((e=>e.length>0)).join("&")}function Ft(e,t){t={decode:!0,...t};let[n,r]=vt(e,"#");return void 0===n&&(n=e),{url:n?.split("?")?.[0]??"",query:Nt(Pt(e),t),...t&&t.parseFragmentIdentifier&&r?{fragmentIdentifier:St(r,t)}:{}}}function Rt(e,t){t={encode:!0,strict:!0,[kt]:!0,...t};const n=It(e.url).split("?")[0]||"";let r=Mt({...Nt(Pt(e.url),{sort:!1}),...e.query},t);r&&=`?${r}`;let o=function(e){let t="";const n=e.indexOf("#");return-1!==n&&(t=e.slice(n)),t}(e.url);if("string"==typeof e.fragmentIdentifier){const r=new URL(n);r.hash=e.fragmentIdentifier,o=t[kt]?r.hash:`#${e.fragmentIdentifier}`}return`${n}${r}${o}`}function Dt(e,t,n){n={parseFragmentIdentifier:!0,[kt]:!1,...n};const{url:r,query:o,fragmentIdentifier:a}=Ft(e,n);return Rt({url:r,query:yt(o,t),fragmentIdentifier:a},n)}function Lt(e,t,n){return Dt(e,Array.isArray(t)?e=>!t.includes(e):(e,n)=>!t(e,n),n)}const Ot=r;var Ut=n(5119),zt=n.n(Ut),Gt=n(2351),Wt=n.n(Gt);const Ht=zt()((function({places:e,style:t}){return new Intl.NumberFormat(void 0,{minimumFractionDigits:e,maximumFractionDigits:e,style:t})}),{cache:new(Wt())});function Vt(e,t=2,n=3,r="decimal"){if(0===e)return Ht({places:0,style:r}).format(e);if(isNaN(e))return"<invalid>";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),Ht({places:a,style:r}).format(e)}function jt(e,t,n){let r;switch(e){case"tracing-ms":r=1;break;case"samples":case"bytes":r=0;break;default:throw(0,mt.lC)(e,"Unhandled WeightType.")}return t&&(r=3),Vt(n,3,r)}function $t(e,t,n){switch(e){case"tracing-ms":return Vt(n,3,t?3:1)+"ms";case"samples":{const e=1===n?" sample":" samples";return Vt(n,3,0)+e}case"bytes":{const e=1===n?" byte":" bytes";return Vt(n,3,0)+e}default:throw(0,mt.lC)(e,"Unhandled WeightType.")}}function Kt(e){return Vt(e,2,1,"percent")}function Yt(e){return(100*e).toFixed(4)+"%"}function qt(e,t=3,n=2){return e<1e4?Vt(e,0)+"B":e<1048576?Vt(e/1024,t,n)+"KB":e<1073741824?Vt(e/1048576,t,n)+"MB":Vt(e/1073741824,t,n)+"GB"}function Zt(e){return e<1e4?Vt(e):e<1e6?Vt(e/1e3,3,2)+"K":e<1e9?Vt(e/1e6,3,2)+"M":Vt(e/1e9,3,2)+"G"}function Xt(e,t=3,n=4){return Vt(e,t,n)+"ns"}function Jt(e,t=2,n=3){return Vt(e,t,n)+"μs"}function Qt(e,t=2,n=3){return Vt(e,t,n)+"ms"}function en(e,t=5,n=3,r=1/0){const o=1e3,a=e/o;let i="";if(r<o){const e=Math.floor(Math.log10(r/o)),t=Math.max(0,-e);i=a.toFixed(t)}else i=Vt(a,t,n);return i+"s"}function tn(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 Vt((e-i)/a,t,0)+"m"+(i>0&&n>0||r<a?en(i,t,0,r):"")}function nn(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 Vt((e-i)/a,t,0)+"h"+(i>0&&n>0||r<a?tn(i,t,0,r):"")}function rn(e,t=5,n=3,r=1/0){return r!==1/0&&(r<1e4&&(r=10**Math.floor(Math.log10(r))),e>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 Vt((e-i)/a,t,0)+"d"+(i>0&&n>0||r<a?nn(i,t,0,r):"")}(e,t,n,r):nn(e,t,n,r):tn(e,t,n,r):e>=1e3?en(e,t,Number.isInteger(e/1e3)?0:n,r):e>=1?Qt(e,t,Number.isInteger(e)?0:n):1e3*e>=1?Jt(1e3*e,t,Number.isInteger(1e3*e)?0:n):0===e?"0s":Xt(1e3*e*1e3,t,Number.isInteger(1e3*e*1e3)?0:n)}function on(e,t,n=String,r=!0){const o=n(e)+" / "+n(t);let a="";return r&&(a=" ("+Kt(e/t)+")"),o+a}function an(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 sn({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 ln(e=[]){return e.map(sn).join("~")}function cn(e,t=1/0){return rn(e,2,2,t)}const dn="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ._",un=dn[32];function hn(e){const t=Array.from(e);return t.sort(((e,t)=>e-t)),pn(t)}function pn(e){let t="";for(let n=0;n<e.length;n++){const r=fn(e,n);0!==r?(n+=r,t+=un,t+=gn(e[n])):t+=gn(e[n])}return t}function mn(e){const t=[];let n=0;for(;n<e.length;){const{value:r,hasLeadingZero:o,nextI:a}=bn(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 fn(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 gn(e){let t=e,n=dn[31&t];for(t>>=5;0!==t;)n=dn[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 bn(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 Cn=n(5458),yn=n(946),vn=n(5737),wn=n(2834),En=n.n(wn);const kn=new RegExp(`\\b((?:${["http","https","ftp","file","moz-extension","moz-page-thumb"].join("|")})://)/?[^\\s/$.?#][^\\s)]*`,"gi");function xn(e,t="<URL>"){return e.replace(kn,"$1"+t)}function Tn(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 Sn=e=>{if(!e)return null;const t=e.split(",").map((e=>e.trim())).filter((e=>e));return t.length?t:null},Bn=e=>{if(!e||!e.length)return null;const t=e.map(En()).join("|");return new RegExp(t,"gi")};var In=n(9839),_n=n(9472);const Pn=[{name:"Jank",display:["marker-table","marker-chart"],tooltipLabel:"Jank – event processing delay",tableLabel:"Event processing delay",data:[{label:"Description",value:_n.TN`
|
3
|
-
Jank markers show when the main event loop of a thread has been busy. It is
|
4
|
-
a good indicator that there may be some kind of performance problem that
|
5
|
-
is worth investigating.
|
6
|
-
`}]},{name:"IPC",tooltipLabel:"IPC — {marker.data.niceDirection}",tableLabel:"{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:"pid",searchable:!0}]},{name:"Network",display:["marker-table","marker-chart"],chartLabel:"{marker.data.URI}",data:[]}];function Nn(e,t,n){if(!n)return t;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:r}function Mn(e,t,n){return e[Nn(e,t,n)]||null}function Fn(e,t,n,r){const o=r.split(/{([^}]+)}/);if(1===o.length)return()=>r;function a(e,t){return console.error(_n.TN`
|
7
|
-
Error processing the label "${e}" because of the ${t}.
|
8
|
-
Currently the labels in the marker schema take the form of
|
9
|
-
"marker.data.keyName" or "marker.startTime". No other type
|
10
|
-
of access is currently supported.
|
11
|
-
`),()=>""}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=>rn(e.start);case"end":return e=>null===e.end?"unknown":rn(e.end);case"duration":return e=>null===e.end?"unknown":rn(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?Ln(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 Rn={tooltipLabel:e=>e.name,chartLabel:e=>"",tableLabel:e=>{let t="";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},copyLabel:e=>e.name};function Dn(e,t,n,r,o,a){const i=new Map,s=/^{marker.name}\s[-—]\s/;for(const e of t){let t;"copyLabel"===a?(t=e.tableLabel,t&&!s.test(t)&&(t="{marker.name} — "+t)):(t=e[a],t&&"tableLabel"===a&&(t=t.replace(s,""))),t&&i.set(e.name,Fn(e,r,o,t))}const l=(0,mt.Nn)(Rn[a],"Unable to find a fallback label function."),c=new Map;return t=>{let r=c.get(t);if(void 0===r){const o=e(t),a=Nn(n,o.name,o.data),s=i.get(a);r=s?s(o):l(o),c.set(t,r)}return r}}function Ln(e,t,n,r,o,a){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:i}=t;if(!(n instanceof Array))throw new Error("Expected an array for table type");const s=i.some((e=>e.label))?[i.map((e=>e.label||"(empty)"))]:[],l=n.map(((t,n)=>{if(!(t instanceof Array))throw new Error("Expected an array for table row");if(t.length!==i.length)throw new Error(`Row ${n} length doesn't match column count (row: ${t.length}, cols: ${i.length})`);return t.map(((t,n)=>{const{format:s}=i[n];return Ln(e,s||"string",t,r,o,a)}))}));return s.push(...l),s.map((e=>`(${e.join(", ")})`)).join(",")}throw new Error(`Unknown format type ${JSON.stringify(t.type)}`)}switch(t){case"url":case"file-path":case"sanitized-string":case"string":return String(n)||"(empty)";case"unique-string":case"flow-id":case"terminating-flow-id":return r.getString(n,"(empty)");case"duration":case"time":return rn(n);case"seconds":return en(n);case"milliseconds":return Qt(n);case"microseconds":return Jt(n);case"nanoseconds":return Xt(n);case"bytes":return qt(n);case"integer":return Vt(n,0,0);case"decimal":return Vt(n);case"percentage":return Kt(n);case"pid":return a&&a.has(n)?`${(0,mt.Nn)(a.get(n))} (${n})`:`PID: ${n}`;case"tid":return o&&o.has(n)?`${(0,mt.Nn)(o.get(n))} (${n})`:`TID: ${n}`;case"list":if(!(n instanceof Array))throw new Error("Expected an array for list format");return n.map((t=>Ln(e,"string",t,r))).join(", ");default:return console.warn(`A marker schema of type "${e}" had an unknown format ${JSON.stringify(t)}`),n}}const On=/^http(s?):\/\//;function Un(e,t,n,r,o,a){if(null==n)return console.warn(`Formatting ${n} for ${JSON.stringify(e)}`),"(empty)";if("url"!==t&&"object"!=typeof t&&"list"!==t)return Ln(e,t,n,r,o,a);if("object"==typeof t){if("table"===t.type){const{columns:i}=t;if(!(n instanceof Array))throw new Error("Expected an array for table type");const s=i.some((e=>e.label));return J.createElement("table",{className:"marker-table-value"},s?J.createElement("thead",null,J.createElement("tr",null,i.map(((e,t)=>J.createElement("th",{key:t},e.label||""))))):null,J.createElement("tbody",null,n.map(((t,n)=>{if(!(t instanceof Array))throw new Error("Expected an array for table row");if(t.length!==i.length)throw new Error(`Row ${n} length doesn't match column count (row: ${t.length}, cols: ${i.length})`);return J.createElement("tr",{key:n},t.map(((t,n)=>J.createElement("td",{key:n},Un(e,i[n].type||"string",t,r,o,a)))))}))))}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 J.createElement("ul",{className:"marker-list-value"},n.map(((t,o)=>J.createElement("li",{key:o},Ln(e,"string",n[o],r)))));case"url":return On.test(n)?J.createElement("a",{href:n,target:"_blank",rel:"noreferrer",className:"marker-link-value"},n.replace(On,"")):n;default:throw new Error(`Unknown format type ${JSON.stringify(t)}`)}}function zn(e,t,n,r){const{data:o}=t;if(!o)return!1;for(const t of e.data)if(t.searchable){let e=o[t.key];if("unique-string"!==t.format&&"flow-id"!==t.format&&"terminating-flow-id"!==t.format||(e=n.getString(e)),null==e||""===e)continue;if(r(e,t.key))return!0}return!1}function Gn(e,t,n,r,o,a){if(!r)return t;let i=Boolean(r.generic),s=!1;for(const e of r.fieldMap.values())i=i||null!==e.positive,s=s||null!==e.negative;const l=[];for(const c of t){const t=e(c);let d=!0;i&&(d=Wn(t,n,r,o,a)),d&&s&&(d=Hn(t,n,r,o,a)),d&&l.push(c)}return l}function Wn(e,t,n,r,o){const a=n;function i(e,t){t=t.toLowerCase();const n=a.fieldMap.get(t),r=!!a.generic&&a.generic.test(e)||!(!n||!n.positive)&&n.positive.test(e);return a.generic&&(a.generic.lastIndex=0),n&&n.positive&&(n.positive.lastIndex=0),r}const{data:s,name:l,category:c}=e;if(void 0!==o[c]&&i(o[c].name,"cat"))return!0;if(i(l,"name"))return!0;if(s&&"object"==typeof s){if(i(s.type,"type"))return!0;const n=Mn(t,e.name,e.data);if(n&&zn(n,e,r,i))return!0}return!1}function Hn(e,t,n,r,o){const a=n;function i(e,t){t=t.toLowerCase();const n=a.fieldMap.get(t),r=n?.negative;if(!r)return!1;const o=r.test(e);return r.lastIndex=0,o}const{data:s,name:l,category:c}=e;if(void 0!==o[c]&&i(o[c].name,"cat"))return!1;if(i(l,"name"))return!1;if(s&&"object"==typeof s){if(i(s.type,"type"))return!1;const n=Mn(t,e.name,e.data);if(n&&zn(n,e,r,i))return!1}return!0}function Vn(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 jn{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 $n(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(0,mt.lC)(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(0,mt.lC)(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,(0,Cn.XU)(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=(0,mt.Nn)(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 jn;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 Kn(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=(0,mt.Nn)(e.startTime[s],n),u=(0,mt.Nn)(p,n);c([s,a],{start:d,end:(0,mt.Nn)(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,(0,mt.Nn)(p,"Network markers are assumed to have a start time."));c([a],{start:e,end:(0,mt.Nn)(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=(0,mt.Nn)(e.startTime[r],"Expected to find a start time for a screenshot marker."),o=(0,mt.Nn)(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=(0,mt.Nn)(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 In.mN:c([a],{start:(0,mt.Nn)(p,"An Instant marker did not have a startTime."),end:null,name:t.getString(i),category:A,threadId:b,data:g});break;case In.KU:c([a],{start:(0,mt.Nn)(p,"An Interval marker did not have a startTime."),end:(0,mt.Nn)(m,"An Interval marker did not have a startTime."),name:t.getString(i),category:A,threadId:b,data:g});break;case In.nO:{let e=s.get(i);e||(e=[],s.set(i,e)),e.push(a)}break;case In.a1:{const n=s.get(i);let o;n&&(o=n.pop());const l=(0,mt.Nn)(m,"An IntervalEnd marker did not have an endTime");void 0!==o?c([o,a],{start:(0,mt.Nn)(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=(0,mt.Nn)(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=(0,mt.Nn)(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=(0,mt.Nn)(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 Yn(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 qn(e,t,n){return t.filter((t=>n(e(t))))}function Zn(e,t,n,r){return qn(e,t,(e=>e.start<=r&&(e.end||e.start)>=n))}function Xn(e){return!(!e.data||"Network"!==e.data.type)}function Jn(e){return!(!e.data||"UserTiming"!==e.data.type)}function Qn({name:e,data:t}){return"TTI"===e||"FirstContentfulPaint"===e||"FirstContentfulComposite"===e||"LargestContentfulPaint"===e||(t?"Navigation"===t.category&&("Load"===e||"DOMContentLoaded"===e):"Navigation::Start"===e)}function er(e){const{data:t}=e;if(t&&"FileIO"===t.type)return void 0===t.threadId}function tr(e){return t=>{const{data:n}=t;return!n||!e[n.type]||void 0}}function nr(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 rr(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 or(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 ar(e){return{...e,URI:"",RedirectURI:""}}function ir(e){return{...e,name:xn(e.name)}}function sr(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 lr(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]:xn(t[e])}:"file-path"===r?t={...t,[e]:Tn(t[e])}:"sanitized-string"===r&&(t={...t,[e]:"<sanitized>"})}return t}function cr(e){}function dr(e,t,n,r,o,a=cr){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 qn(e,t,(e=>{const t=a(e);return void 0!==t?t:i.has(Nn(r,e.name,e.data))}))}function ur(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 hr=e=>{if(!e||!e.length)return null;const t=new Map,n=[];for(const r of e){const e=r.match(/^(?<maybeNegative>-?)(?<key>\w+):(?<value>.+)/i);if(e&&e.groups){const{maybeNegative:o,value:a}=e.groups,i=e.groups.key.toLowerCase();let s=t.get(i);s||(s={positive:[],negative:[]},t.set(i,s)),0===o.length?(s.positive.push(a),n.push(r)):s.negative.push(a)}else n.push(r)}const r=new Map;for(const[e,n]of t)r.set(e,{positive:Bn(n.positive),negative:Bn(n.negative)});return{generic:Bn(n),fieldMap:r}};function pr(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 mr={},fr={};function gr(e){if(!e)return[];const t=[];return e.split("~").forEach((e=>{const n=e.split("-"),r=n[0],o=(0,mt.DO)(fr[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:(0,Cn.Cn)(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:(0,Cn.Cn)(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=(0,Cn.Cn)(e),s=mn(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(0,mt.lC)(o)}else console.error("Unrecognized transform was passed to the URL.",r)})),t}function Ar(e){return e.map((e=>{const t=mr[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,pn(e.callNodePath)].join("-");return e.inverted&&(n+="-i"),n}case"filter-samples":return`${t}-${function(e){if("marker-search"===e)return"m";throw(0,mt.lC)(e)}(e.filterType)}-${e.filter}`;default:throw(0,mt.lC)(e)}})).join("~")}function br(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(0,mt.lC)(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(0,mt.lC)(e)}const n=o.name[t],r=pr(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(0,mt.lC)(e)}}));return l.unshift({l10nId:"TransformNavigator--complete",item:n}),l}function Cr(e,t,n,r){switch(t.type){case"focus-subtree":return function(e,t){return yr(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){const r=n.getCallNodeTable(),o=[];let a=-1;for(const i of t){const t=n.getCallNodeIndexFromParentAndFunc(a,i);if(null===t)throw new Error(`We couldn't find a node with prefix ${a} and func ${i}, this shouldn't happen.`);r.category[t]===e&&o.push(i),a=t}return o}(t.category,e,r);case"merge-call-node":return function(e,t){return yr(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(0,mt.lC)(t)}}function yr(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(0,mt.lC)(e)}mr[e]=t,fr[t]=e}));const vr={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 wr(e,t,n){const{stackTable:r,frameTable:o}=e,a=vr[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 Er(e,t,n){const r=vr[t];return n.filter((t=>r(e,t.func)))}function kr(e,t){for(let n=0;n<e.length;n++)if(e.func[n]===t){const r=e.prefix[n];if(null!==r&&e.func[r]===t)return!0}return!1}function xr(e,t){const n=new Uint8Array(e.length);for(let r=0;r<e.length;r++){const o=e.prefix[r],a=e.func[r],i=-1!==o&&0!==n[o];if(t===a){if(i)return!0;n[r]=1}else i&&(n[r]=1)}return!1}function Tr(e,t,n,r,o,a,i){switch(t.type){case"focus-subtree":return t.inverted?function(e,t,n){return(0,yn.l)("focusInvertedSubtree",(()=>{const r=t.length,{stackTable:o,frameTable:a}=e,i=vr[n],s=new Map;return s.set(null,null),(0,Cn.DR)(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(0,yn.l)("focusSubtree",(()=>{const{stackTable:r,frameTable:o}=e,a=t.length,i=new Int32Array(r.length),s=vr[n],l=new Map;l.set(null,null);const c=(0,vn.WG)();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(0,Cn.DR)(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(0,yn.l)("mergeCallNode",(()=>{const{stackTable:r,frameTable:o}=e,a=t.length-1,i=new Map;i.set(null,null);const s=(0,vn.WG)(),l=[],c=[],d=vr[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(0,Cn.DR)(e,s,(0,Cn.Us)(i))}))}(e,t.callNodePath,t.implementation);case"merge-function":return function(e,t){const{stackTable:n,frameTable:r}=e,o=new Uint32Array(n.length),a=n.frame,i=r.func,s=n.prefix,l=new Array(n.length);for(let e=0;e<n.length;e++){const n=s[e],r=null===n?0:o[n],c=i[a[e]];o[e]=c===t?r:e+1;const d=0===r?null:r-1;l[e]=d}const c={...n,prefix:l};return(0,Cn.DR)(e,c,(e=>{if(null===e)return null;const t=o[e];return 0===t?null:t-1}))}(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(0,Cn.DR)(e,n,(e=>null!==e&&1===o[e]?null:e))}(e,t.funcIndex);case"focus-function":return function(e,t){return(0,yn.l)("focusFunction",(()=>{const{stackTable:n,frameTable:r}=e,o=new Uint32Array(n.length),a=(0,vn.WG)();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(0,Cn.DR)(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(0,yn.l)("focusCategory",(()=>{const{stackTable:n}=e,r=new Map;r.set(null,null);const o=(0,vn.WG)();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(0,Cn.DR)(e,o,(0,Cn.Us)(r))}))}(e,t.category);case"collapse-resource":return function(e,t,n,r,o){const{stackTable:a,funcTable:i,frameTable:s}=e,l=(0,vn.LK)(s),c=(0,vn.WG)(),d=new Map,u=new Map,h=new Set,p=vr[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)}}const f={...e,frameTable:l};return(0,Cn.DR)(f,c,(0,Cn.Us)(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=vr[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){const{stackTable:n,frameTable:r}=e,o=new Int32Array(n.length),a=new Uint8Array(n.length);for(let e=0;e<n.length;e++){const i=n.prefix[e];if(null!==i&&0!==a[i])o[e]=o[i],a[e]=1;else{o[e]=e;const i=n.frame[e];t===r.func[i]&&(a[e]=1)}}return(0,Cn.DR)(e,e.stackTable,(e=>null===e?null:o[e]))}(e,t.funcIndex);case"filter-samples":return function(e,t,n,r,o,a,i){return(0,yn.l)("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,a){const i=[],s=Gn(e,t,n,hr(Sn(a)),r,o);for(const t of s){const{start:n,end:r}=e(t);null!==n&&null!==r&&i.push({start:n,end:r})}return i}(t,n,r,e.stringTable,o,i);throw(0,mt.lC)(a)}());function l(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}return(0,Cn.hw)(e,e.stackTable,l,l,(e=>e))}))}(e,r,o,a,i,t.filterType,t.filter);default:throw(0,mt.lC)(t)}}const Sr={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"},Br=Object.getOwnPropertyNames(Sr),Ir=(Br.map((e=>({name:e,title:Sr[e]}))),["calltree","flame-graph","stack-chart"]),_r=10;let Pr=!1,Nr=0;function Mr(){Nr++,Pr=!0}function Fr(){if(Nr--,Nr<0)throw new Error("_maybeDisableHistoryReplaceState was called more than _enableHistoryReplaceState which should never happen.");0===Nr&&(Pr=!1)}function Rr(e){Mr();try{e()}finally{Fr()}}async function Dr(e){Mr();try{await e()}finally{Fr()}}function Lr(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"from-post-message":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(0,mt.lC)(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"from-post-message":case"unpublished":case"from-file":case"from-url":break;default:throw(0,mt.lC)(t)}const{selectedThreads:n}=e.profileSpecific,r=null!==n?(0,Cn.X)(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(0,mt.lC)(i,"Unhandled TimelineTrackOrganization case")}let s,l;switch(i.type){case"full":s={},s.globalTrackOrder=pn(e.profileSpecific.full.globalTrackOrder)||void 0,s.hiddenGlobalTracks=function(e){if(e.size>0)return hn(e)}(e.profileSpecific.full.hiddenGlobalTracks),s.hiddenLocalTracksByPid=function(e){const t=[];for(const[n,r]of e)r.size>0&&t.push(`${n}-${hn(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}-${pn(t)}`)}return n.join("~")||void 0}(e.profileSpecific.full.localTrackOrderByPid,e.profileSpecific.full.localTrackOrderChangedPids),s.tabID=e.profileSpecific.full.tabFilter??void 0;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(0,mt.lC)(i,"Unhandled GlobalTrack type.")}s={...s,range:ln(e.profileSpecific.committedRanges)||void 0,thread:null===n?void 0:hn(n),file:e.pathInZipFile||void 0,profiles:e.profilesToCompare||void 0,view:a,v:_r,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=Ar(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(0,mt.lC)(t,"Unhandled timelineTrackOrganization case")}break}default:throw(0,mt.lC)(c)}return Ot.stringify(l,{arrayFormat:"bracket"})}(e),{dataSource:r}=e;return"none"===r?"/":(0===t.length?"/":"/"+t.join("/")+"/")+(n?"?"+n:"")}function Or(e){const t=(0,mt.au)(e||"none");switch(t){case"none":case"from-browser":case"from-post-message":case"unpublished":case"from-file":case"local":case"public":case"from-url":case"compare":case"uploaded-recordings":return t;default:throw(0,mt.lC)(t,`Unexpected data source ${t}`)}}function Ur(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===_r)return e;if(n>_r)throw new Wr(`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 ${_r}.\nYou can try refreshing this page in case profiler.firefox.com has updated in the meantime.`);for(let r=n+1;r<=_r;r++)r in Hr&&(0,Hr[r])(e,t);return e.query.v=_r,e}({pathname:e.pathname,hash:e.hash,query:Ot.parse(e.search.substr(1),{arrayFormat:"bracket"})},t),o=n.split("/").filter((e=>e)),a=Or(o[0]),i=void 0!==r.thread?mn(r.thread):[],s=0!==i.length?new Set(i):null,l=null!==s?(0,Cn.X)(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]=gr(r.transforms));let m=null;r.ctxId&&Number.isInteger(Number(r.ctxId))&&(m=Number(r.ctxId));let f=null;r.tabID&&Number.isInteger(Number(r.tabID))&&(f=Number(r.tabID));const g=(0,mt.q3)(o[u])||"calltree",A={scrollGeneration:0,libIndex:null,sourceFile:null},b={isOpen:!1,scrollGeneration:0,nativeSymbol:null,allNativeSymbolsForInitiatingCallNode:[]},C={};if(Br.forEach((e=>C[e]=!1)),r.sourceView&&(A.sourceFile=r.sourceView,C[g]=!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&&(b.nativeSymbol=e,b.allNativeSymbolsForInitiatingCallNode=[e],b.isOpen=!0,C[g]=!0)}const y=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=mn(n.slice(e.length+1));r.every((e=>!isNaN(e)))&&t.set(e,r)}return t}(r.localTrackOrderByPid),v=new Set(y.keys());return{dataSource:a,hash:c?o[1]:"",profileUrl:d?decodeURIComponent(o[1]):"",profilesToCompare:r.profiles||null,selectedTab:g,pathInZipFile:r.file||null,profileName:r.profileName,symbolServerUrl:r.symbolServer||null,timelineTrackOrganization:$r(r.view,m),profileSpecific:{implementation:h,lastSelectedCallTreeSummaryStrategy:(0,Cn.pZ)(r.ctSummary||void 0),invertCallstack:void 0!==r.invertCallstack,showUserTimings:void 0!==r.showUserTimings,committedRanges:r.range?an(r.range):[],selectedThreads:s,callTreeSearchString:r.search||"",markersSearchString:r.markerSearch||"",networkSearchString:r.networkSearch||"",transforms:p,sourceView:A,assemblyView:b,isBottomBoxOpenPerPanel:C,timelineType:Kr(r.timelineType),full:{showJsTracerSummary:void 0!==r.summary,globalTrackOrder:(w=r.globalTrackOrder,w?mn(w):[]),hiddenGlobalTracks:zr(r.hiddenGlobalTracks),hiddenLocalTracksByPid:Gr(r.hiddenLocalTracksByPid),localTrackOrderByPid:y,localTrackOrderChangedPids:v,tabFilter:f,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 w}function zr(e){return e?new Set(mn(e)):new Set}function Gr(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=mn(n.slice(e.length+1));r.every((e=>!isNaN(e)))&&t.set(e,new Set(r))}return t}class Wr extends Error{constructor(...e){super(...e),this.name="UrlUpgradeError"}}const Hr={1:e=>{if("/"===e.pathname){const t=Object.assign({},e.query,Ot.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=gr(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=Vr(a,t.callNodePath);null!==n&&(t.callNodePath=jr(a,n))}e.query.transforms=Ar(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):sn({start:n,end:r})})).filter(Boolean).join("~"))},6:({query:e})=>{if(e.globalTrackOrder){const t=e.globalTrackOrder.split("-").map((e=>+e));e.globalTrackOrder=pn(t)||void 0}if(e.hiddenGlobalTracks){const t=new Set(e.hiddenGlobalTracks.split("-").map((e=>+e)));e.hiddenGlobalTracks=hn(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}-${hn(r)}`})).join("~")),e.localTrackOrderByPid&&(e.localTrackOrderByPid=e.localTrackOrderByPid.split("~").map((e=>{const[t,...n]=e.split("-"),r=n.map((e=>+e));return`${t}-${pn(r)}`})).join("~")),e.thread){const t=new Set(e.thread.split(",").map((e=>+e)));e.thread=hn(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=mn(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<=_r;e++)if(!Hr[e])throw new Error(`There is no upgrader for version ${e}.`);for(const e of Object.keys(Hr)){const t=+e;if(t>_r)throw new Error(_n.TN`
|
12
|
-
There is an upgrader for version ${t}, which is larger than
|
13
|
-
CURRENT_URL_VERSION (${_r}). If you added a new upgrader,
|
14
|
-
make sure and bump the CURRENT_URL_VERSION variable.
|
15
|
-
`)}function Vr(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=(0,mt.Nn)(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 jr(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 $r(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 Kr(e){const t=e;switch(t){case"stack":case"cpu-category":case"category":return t;default:return"cpu-category"}}class Yr{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]}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)+"/"+(0,mt.hQ)("calltree")+"/?file="+encodeURIComponent(this._zipFileTable.path[e]));let r=this._zipFileTable.partName[e];const o=[".json"].find((e=>r.endsWith(e)));o&&(r=r.slice(0,r.length-o.length)),t={name:r,url:n,zipTableIndex:e},this._displayDataByIndex.set(e,t)}return t}}const qr=["localhost","127.0.0.1","::1"];function Zr(e){try{const t=e instanceof URL?e:new URL(e);return qr.includes(t.hostname)}catch(e){return!1}}function Xr(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 Jr=(()=>"function"==typeof Symbol&&Symbol.observable||"@@observable")(),Qr=()=>Math.random().toString(36).substring(7).split("").join("."),eo={INIT:`@@redux/INIT${Qr()}`,REPLACE:`@@redux/REPLACE${Qr()}`,PROBE_UNKNOWN_ACTION:()=>`@@redux/PROBE_UNKNOWN_ACTION${Qr()}`};function to(e,t,n){if("function"!=typeof e)throw new Error(Xr(2));if("function"==typeof t&&"function"==typeof n||"function"==typeof n&&"function"==typeof arguments[3])throw new Error(Xr(0));if("function"==typeof t&&void 0===n&&(n=t,t=void 0),void 0!==n){if("function"!=typeof n)throw new Error(Xr(1));return n(to)(e,t)}let r=e,o=t,a=new Map,i=a,s=0,l=!1;function c(){i===a&&(i=new Map,a.forEach(((e,t)=>{i.set(t,e)})))}function d(){if(l)throw new Error(Xr(3));return o}function u(e){if("function"!=typeof e)throw new Error(Xr(4));if(l)throw new Error(Xr(5));let t=!0;c();const n=s++;return i.set(n,e),function(){if(t){if(l)throw new Error(Xr(6));t=!1,c(),i.delete(n),a=null}}}function h(e){if(!function(e){if("object"!=typeof e||null===e)return!1;let t=e;for(;null!==Object.getPrototypeOf(t);)t=Object.getPrototypeOf(t);return Object.getPrototypeOf(e)===t||null===Object.getPrototypeOf(e)}(e))throw new Error(Xr(7));if(void 0===e.type)throw new Error(Xr(8));if("string"!=typeof e.type)throw new Error(Xr(17));if(l)throw new Error(Xr(9));try{l=!0,o=r(o,e)}finally{l=!1}return(a=i).forEach((e=>{e()})),e}return h({type:eo.INIT}),{dispatch:h,subscribe:u,getState:d,replaceReducer:function(e){if("function"!=typeof e)throw new Error(Xr(10));r=e,h({type:eo.REPLACE})},[Jr]:function(){const e=u;return{subscribe(t){if("object"!=typeof t||null===t)throw new Error(Xr(11));function n(){const e=t;e.next&&e.next(d())}return n(),{unsubscribe:e(n)}},[Jr](){return this}}}}}function no(e){const t=Object.keys(e),n={};for(let r=0;r<t.length;r++){const o=t[r];"function"==typeof e[o]&&(n[o]=e[o])}const r=Object.keys(n);let o;try{!function(e){Object.keys(e).forEach((t=>{const n=e[t];if(void 0===n(void 0,{type:eo.INIT}))throw new Error(Xr(12));if(void 0===n(void 0,{type:eo.PROBE_UNKNOWN_ACTION()}))throw new Error(Xr(13))}))}(n)}catch(e){o=e}return function(e={},t){if(o)throw o;let a=!1;const i={};for(let o=0;o<r.length;o++){const s=r[o],l=n[s],c=e[s],d=l(c,t);if(void 0===d)throw t&&t.type,new Error(Xr(14));i[s]=d,a=a||d!==c}return a=a||r.length!==Object.keys(e).length,a?i:e}}const ro=(e="calltree",t)=>{switch(t.type){case"CHANGE_SELECTED_TAB":case"SELECT_TRACK":case"VIEW_FULL_PROFILE":case"CHANGE_TAB_FILTER":return t.selectedTab;case"FOCUS_CALL_TREE":return"calltree";default:return e}},oo=no({globalTrackOrder:(e=[],t)=>{switch(t.type){case"VIEW_FULL_PROFILE":case"CHANGE_GLOBAL_TRACK_ORDER":case"CHANGE_TAB_FILTER":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":case"CHANGE_TAB_FILTER":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":case"CHANGE_TAB_FILTER":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":case"CHANGE_TAB_FILTER":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,tabFilter:(e=null,t)=>"CHANGE_TAB_FILTER"===t.type?t.tabID:e,legacyThreadOrder:(e=null)=>e,legacyHiddenThreads:(e=null)=>e}),ao=no({isResourcesPanelOpen:(e=!1,t)=>"TOGGLE_RESOURCES_PANEL"===t.type?!e:e}),io=no({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":case"CHANGE_TAB_FILTER":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(_n.TN`
|
16
|
-
Unable to map an old thread index to a new thread index for the selected
|
17
|
-
thread when sanitizing a profile
|
18
|
-
`),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(0,mt.WP)(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 Br.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:oo,activeTab:ao});var so;const lo=(so=no({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:ro,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:io,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:so(void 0,t);case"RETURN_TO_ZIP_FILE_LIST":case"WAITING_FOR_PROFILE_FROM_FILE":return{...so(e,t),profileSpecific:io(void 0,e),selectedTab:ro(void 0,t)};default:return so(e,t)}});function co(e){return e.endsWith(".0")?e.slice(0,-2):e}function uo(e){const t=e.product||"",n=co(function(e){if(e){const t=/[\d.]+$/.exec(e);if(t)return t[0]}return""}(e.misc));return t+(n?" "+n:"")}function ho(e){switch(e.toolkit){case"android":return e.platform?co(e.platform):"Android";case"cocoa":return e.oscpu?e.oscpu.replace(/^Intel /,"").replace(/^Mac OS X/,"macOS"):"macOS";case"windows":return e.oscpu?co(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 po=e=>e.urlState,mo=e=>po(e).profileSpecific,fo=e=>mo(e).full,go=e=>mo(e).activeTab,Ao=e=>po(e).dataSource,bo=e=>po(e).hash,Co=e=>po(e).profileUrl,yo=e=>po(e).profilesToCompare,vo=e=>po(e).profileName,wo=e=>mo(e).committedRanges,Eo=e=>mo(e).implementation,ko=e=>mo(e).lastSelectedCallTreeSummaryStrategy,xo=e=>mo(e).showUserTimings,To=e=>mo(e).sourceView.sourceFile,So=e=>mo(e).sourceView.scrollGeneration,Bo=e=>mo(e).assemblyView.isOpen,Io=e=>mo(e).assemblyView.nativeSymbol,_o=e=>mo(e).assemblyView.scrollGeneration,Po=e=>fo(e).showJsTracerSummary,No=e=>po(e).timelineTrackOrganization,Mo=e=>go(e).isResourcesPanelOpen,Fo=e=>mo(e).callTreeSearchString,Ro=e=>mo(e).markersSearchString,Do=e=>mo(e).networkSearchString,Lo=e=>po(e).selectedTab,Oo=e=>"calltree"===Lo(e)&&mo(e).invertCallstack,Uo=e=>mo(e).selectedThreads,zo=e=>(0,mt.Nn)(Uo(e),"Attempted to get a thread index before a profile was loaded."),Go=e=>(0,Cn.X)(zo(e)),Wo=e=>(0,mt.Nn)((0,mt.cF)(zo(e)),"Expected to find at least one thread index in the selected thread indexes"),Ho=e=>mo(e).timelineType,Vo=e=>fo(e).legacyThreadOrder,jo=e=>fo(e).legacyHiddenThreads,$o=e=>fo(e).globalTrackOrder,Ko=e=>fo(e).hiddenGlobalTracks,Yo=e=>fo(e).hiddenLocalTracksByPid,qo=e=>fo(e).localTrackOrderByPid,Zo=e=>fo(e).tabFilter,Xo=e=>null!==Zo(e),Jo=(e,t)=>(0,mt.Nn)(Yo(e).get(t),"Unable to get the hidden tracks from the given pid"),Qo=(e,t)=>(0,mt.Nn)(qo(e).get(t),"Unable to get the track order from the given pid"),ea=pt(Fo,Sn),ta=pt(Ro,Sn),na=pt(Do,Sn),ra=pt(ea,Bn),oa=pt(ta,hr),aa=pt(na,hr),ia=[],sa=(e,t)=>mo(e).transforms[t]||ia,la=e=>{const t=Lo(e);return mo(e).isBottomBoxOpenPerPanel[t]},ca=pt(po,(e=>t=>Lr((Array.isArray(t)?t:[t]).reduce(lo,e)))),da=e=>po(e).pathInZipFile,ua=e=>{const{profile:t}=e.profileView;return t?function(e){const t=uo(e),n=ho(e);return t+(n?` – ${n}`:"")}(t.meta):null},ha=pt(da,(e=>e?function(e){const t=/(?:[^/]+\/)?[^/]+$/.exec(e);return null!==t?t[0]:""}(e):null)),pa=pt(vo,ha,ua,((e,t,n)=>e||t||n||"Untitled profile")),ma=pt(vo,ha,((e,t)=>e||t||"")),fa=pt(wo,(function(e){return e.map((e=>cn(e.end-e.start)))})),ga=pt(po,(({symbolServerUrl:e})=>e&&function(e){try{const t=new URL(e);return!!Zr(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 ${In.JZ}.`),!1):(console.error(`The symbol server URL was not in the list of allowed domains. Rejecting ${e} and defaulting to ${In.JZ}.`),!1))}catch(t){return console.error(`The symbol server URL was not valid. Rejecting ${e} and defaulting to ${In.JZ}.`,t),!1}}(e)?e.endsWith("/")?e.slice(0,-1):e:In.JZ));function Aa(e,t){return new Set([...e].filter((e=>t.has(e))))}const ba={thread:0,network:1,memory:2,ipc:3,"event-delay":4,"process-cpu":5,power:6,marker:7,bandwidth:8},Ca={network:0,bandwidth:1,memory:2,power:3,ipc:4,thread:5,"event-delay":6,"process-cpu":7,marker:8},ya={process:0,screenshots:1,"visual-progress":2,"perceptual-visual-progress":3,"contentful-visual-progress":4},va={"visual-progress":0,"perceptual-visual-progress":1,"contentful-visual-progress":2,screenshots:3,process:4};function wa(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 Ca[e[n].type]-Ca[e[o].type]})),n}function Ea(e,t,n,r){const o=new Map;if(null===n)for(const[n,a]of t){let t=wa(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}Ra(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 ka(e,t,n){const r=new Map,o=new Set;for(const e of t)"process"===e.type&&o.add(e.pid);const a=(e.meta.markerSchema||[]).filter((e=>Array.isArray(e.graphs)&&e.graphs.length>0));for(let t=0;t<e.threads.length;t++){const i=e.threads[t],{pid:s,markers:l}=i;if(!o.has(s))continue;let c=r.get(s);if(void 0===c&&(c=[],r.set(s,c)),i.isMainThread||c.push({type:"thread",threadIndex:t}),l.data.some((e=>e&&"Network"===e.type))&&c.push({type:"network",threadIndex:t}),l.data.some((e=>e&&"IPC"===e.type))&&c.push({type:"ipc",threadIndex:t}),a.length>0){const e=new Map;for(const t of a)e.set(t.name,{markerSchema:t,keys:(t.graphs||[]).map((e=>e.key)),markerNames:new Set});for(let t=0;t<l.length;++t){const r=l.name[t],o=l.data[t],a=Nn(n,i.stringTable.getString(r),o);if(o&&n){const t=e.get(a);t&&t.keys.every((e=>e in o))&&t.markerNames.add(r)}}for(const[,{markerSchema:n,markerNames:r}]of e)for(const e of r)c.push({type:"marker",threadIndex:t,markerSchema:n,markerName:e})}}const{counters:i}=e;if(i)for(let e=0;e<i.length;e++){const{pid:t,category:n,samples:a}=i[e];if(o.has(t)&&["Memory","power","Bandwidth"].includes(n)){if("power"===n&&a.length<=2)continue;let o=r.get(t);void 0===o&&(o=[],r.set(t,o)),"Memory"===n?o.push({type:"memory",counterIndex:e}):"Bandwidth"===n?o.push({type:"bandwidth",counterIndex:e}):o.push({type:"power",counterIndex:e})}}for(const e of r.values())e.sort(((e,t)=>ba[e.type]-ba[t.type]));return r}function xa(e,t=null,n){const r=new Map;let o=[];for(let t=0;t<e.threads.length;t++){const n=e.threads[t],{pid:a,markers:i,stringTable:s}=n;if(n.isMainThread){let e=r.get(a);void 0===e?(e={type:"process",pid:a,mainThreadIndex:t},o.push(e),r.set(a,e)):e.mainThreadIndex=t}else if(!r.has(a)){const e={type:"process",pid:a,mainThreadIndex:null};o.push(e),r.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)o.push({type:"screenshots",id:e,threadIndex:t})}}if(e.meta&&e.meta.visualMetrics){const t=e.meta.visualMetrics;t.VisualProgress&&o.push({type:"visual-progress"}),t.PerceptualSpeedIndexProgress&&o.push({type:"perceptual-visual-progress"}),t.ContentfulSpeedIndexProgress&&o.push({type:"contentful-visual-progress"})}return o=function(e,t,n,r){if(null===n)return e;const o=r.get(n);if(!o)return console.warn(`Failed to find the thread indexes for given tab ${n}`),e;const a=[];for(const n of e)switch(n.type){case"process":{const{mainThreadIndex:e}=n;if(null===e)continue;const r=t.threads[e];(r.isMainThread&&"default"===r.processType||o.has(e))&&a.push(n);break}case"screenshots":case"visual-progress":case"perceptual-visual-progress":case"contentful-visual-progress":a.push(n);break;default:throw new Error("Unhandled globalTack type.")}return a}(o,e,t,n),o.sort(((e,t)=>ya[e.type]-ya[t.type])),o}function Ta(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&&Ra(e.length,t)?t:function(e){const t=e.map(((e,t)=>t));return t.sort(((t,n)=>va[e[t].type]-va[e[n].type])),t}(e)}function Sa(e,t,n){if(null===e)return Ba(t,n);const r=Aa(e,new Set(t));return 0===r.size?Ba(t,n):r}function Ba(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));return e[-1!==t?t:(0,Cn.y9)(e)[0]]}(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 Ia(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:Pa(n,a,e)}function _a(e,t,n){return Pa(t,function(e,t,n){if(0===e.threads.length)throw new Error("No threads");if(void 0!==e.meta.initialVisibleThreads)return e.meta.initialVisibleThreads.forEach((t=>(0,mt.Nn)(e.threads[t]))),new Set(e.meta.initialVisibleThreads);const r=function(e){const t=new Set;for(const n of e.globalTracks)"process"===n.type&&null!==n.mainThreadIndex&&t.add(n.mainThreadIndex);for(const[,n]of e.localTracksByPid)for(const e of n)"thread"===e.type&&t.add(e.threadIndex);return t}(t);let o=n.map(((e,t)=>({threadIndex:t,score:e})));o=o.filter((({threadIndex:e})=>r.has(e))),o.sort((({score:e},{score:t})=>e.isEssentialFirefoxThread!==t.isEssentialFirefoxThread?e.isEssentialFirefoxThread?-1:1:t.boostedSampleScore-e.boostedSampleScore));const a=o.slice(0,15),i=Math.max(...o.map((({score:e})=>e.sampleScore)))*Fa,s=a.filter((({score:e})=>!!e.isEssentialFirefoxThread||!!(e.isInterestingEvenWithMinimalActivity&&e.sampleScore>0)||e.sampleScore>=i));return new Set(s.map((({threadIndex:e})=>e)))}(t,e,n),e)}function Pa(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=>!Oa(i[e],t))));a.set(e,s)}return{hiddenGlobalTracks:o,hiddenLocalTracksByPid:a}}function Na({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=(0,mt.Nn)(t.get(n),"A local track was expected to exist for the given pid."),s=(0,mt.Nn)(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 Ma(e,t,n){switch(e.type){case"thread":return(0,Cn.XU)(t,t[e.threadIndex]);case"network":return"Network";case"memory":return"Memory";case"bandwidth":return"Bandwidth";case"ipc":return`IPC — ${(0,Cn.XU)(t,t[e.threadIndex])}`;case"event-delay":return(0,Cn.XU)(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(0,mt.lC)(e,"Unhandled LocalTrack type.")}}const Fa=.05;function Ra(e,t){return t.length===e&&t.slice().sort(((e,t)=>e-t)).every(((e,t)=>e===t))}function Da(e,t,n,r){if(!r)return null;const o=Bn(Sn(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(0,mt.lC)(i,"Unhandled GlobalTrack type.")}}return a}function La(e,t,n,r){if(!r)return null;const o=Bn(Sn(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"bandwidth":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(0,mt.lC)(a,"Unhandled LocalTrack type.")}}e.size>0&&a.set(r,e)}return a}function Oa(e,t){switch(e.type){case"thread":return t.has(e.threadIndex);case"marker":case"network":case"memory":case"bandwidth":case"event-delay":case"process-cpu":case"power":return!0;case"ipc":return!1;default:throw(0,mt.lC)(e,"Unhandled LocalTrack type.")}}function Ua(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];if(0!==r){const t=(a[e]||0)/r;n=Math.max(n,t)}}}return n}function za(e){switch(e){case"µs":return 1e3;case"ns":return 1e6;case"variable CPU cycles":return 1;default:throw(0,mt.lC)(e,"Unhandled threadCPUDelta unit in the processing.")}}function Ga(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 Ga(e,t,++n)}var Wa=n(9004);class Ha 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__=Ha.prototype,this.name="SymbolsNotFoundError",this.library=t,this.errors=n}}function Va(e,t,n,r,o){const{frameTable:a,funcTable:i,nativeSymbols:s,stringTable:l}=e,{threadLibSymbolicationInfo:c,resultsForLib:d}=t,{resourceIndex:u,allFramesForThisLib:h,allFuncsForThisLib:p,allNativeSymbolsForThisLib:m,libIndex:f}=c,g=new Set(p),A=new Set(m),b=new Map,C=new Map,y=new Map,v=[],w=[];for(const e of h)a.inlineDepth[e]>0?(v.push(e),r[e]=1):w.push(e);for(const e of w){const t=a.nativeSymbol[e],n=a.address[e];let r=d.get(n);if(void 0===r)if(null!==t){const e=l.getString(s.name[t]);r={symbolAddress:s.address[t],name:e}}else r={symbolAddress:n,name:`0x${n.toString(16)}`};const o=r.symbolAddress;if(b.set(e,o),C.set(o,r),null!==t&&!y.has(o)&&A.has(t)){const e=t;A.delete(e),y.set(o,e)}}const E=A.values(),k=(0,vn.dY)(s);for(const[e,t]of C){const n=l.indexForString(t.name);let r=y.get(e);void 0===r&&(r=E.next().value,void 0===r&&(r=k.length,k.libIndex[r]=f,k.length++),y.set(e,r)),k.address[r]=e,k.name[r]=n,k.functionSize[r]=t.functionSize??null}const x=a.nativeSymbol.slice();for(const[e,t]of b){const n=y.get(t);if(void 0===n)throw new Error("Impossible, all symbolAddresses have a canonical symbol at this point.");x[e]=n}const T=(0,vn.LK)({...a,nativeSymbol:x}),S=(0,vn.ES)(i),B=g.values(),I=new Map,_=v.values(),P=[];for(const e of w){const t=a.func[e],n=x[e];if(null===n)throw new Error("Impossible, all frames now have native symbols.");const r=a.address[e];let i=d.get(r);if(void 0===i){const r=k.name[n],o=S.fileName[t];i={symbolAddress:k.address[n],name:l.getString(r),file:null!==o?l.getString(o):void 0,line:a.line[e]??void 0}}const s=i.inlines?i.inlines.slice():[];s.push({name:i.name,file:i.file,line:i.line}),s.reverse();const c=[],h=[];for(let t=0;t<s.length;t++){const o=s[t],a=l.indexForString(o.name),i=void 0!==o.file?l.indexForString(o.file):null,d=`${a}:${i??""}`;let p,m=I.get(d);if(void 0===m&&(m=B.next().value,void 0===m&&(m=S.length,S.isJS[m]=!1,S.relevantForJS[m]=!1,S.resource[m]=u,S.fileName[m]=null,S.lineNumber[m]=null,S.columnNumber[m]=null,S.length++),S.name[m]=a,S.fileName[m]=i,I.set(d,m)),h.push(m),0===t)p=e;else{p=_.next().value,void 0===p&&(p=T.length,T.length++);const t=T.category[e],o=T.subcategory[e],a=T.innerWindowID[e],i=T.implementation[e];T.category[p]=t,T.subcategory[p]=o,T.innerWindowID[p]=a,T.implementation[p]=i,T.address[p]=r,T.nativeSymbol[p]=n}T.inlineDepth[p]=t,T.func[p]=m,T.line[p]=o.line??null,T.column[p]=null,c.push(p)}c.length>1&&o.set(e,c),P.push([t,h.join("#")])}const N=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}(P);for(const[e,t]of N)n.set(e,t.split("#").map((e=>+e)));return{...e,frameTable:T,funcTable:S,nativeSymbols:k,stringTable:l}}function ja(e,t){return t.reduce(((t,n)=>{const r=e.get(n);return void 0===r?[...t,n]:[...t,...r]}),[])}function $a(e,t){const n=[];for(const r of t){const t=ja(e,r);n.push(t);const o=ja(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 Wa.Qi(n)}const Ka={selectedNonInvertedCallNodePath:[],selectedInvertedCallNodePath:[],expandedNonInvertedCallNodePaths:new Wa.Qi,expandedInvertedCallNodePaths:new Wa.Qi,selectedMarker:null,selectedNetworkMarker:null};function Ya(e,t){return e[t]||Ka}function qa(e,t,n){const r={...e};return r[t]={...Ya(e,t),...n},r}const Za={fixedColumnWidths:null},Xa=(Ja=no({viewOptions:no({perThread:(e={},t)=>{switch(t.type){case"PROFILE_LOADED":return{};case"BULK_SYMBOLICATION":{const{oldFuncToNewFuncsMaps:n}=t;return(0,mt.K0)(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,selectedNonInvertedCallNodePath:ja(o,e.selectedNonInvertedCallNodePath),selectedInvertedCallNodePath:ja(o,e.selectedInvertedCallNodePath),expandedNonInvertedCallNodePaths:$a(o,e.expandedNonInvertedCallNodePaths),expandedInvertedCallNodePaths:$a(o,e.expandedInvertedCallNodePaths)}}))}case"CHANGE_SELECTED_CALL_NODE":{const{isInverted:n,selectedCallNodePath:r,threadsKey:o,optionalExpandedToCallNodePath:a}=t,i=Ya(e,o),s=n?i.selectedInvertedCallNodePath:i.selectedNonInvertedCallNodePath;if((0,Wa.bj)(r,s)&&!a)return e;let l=n?i.expandedInvertedCallNodePaths:i.expandedNonInvertedCallNodePaths;const c=a||r,d=[];for(let e=1;e<c.length;e++)d.push(c.slice(0,e));const u=d.some((e=>!l.has(e)));return u&&(l=new Wa.Qi(l),d.forEach((e=>l.add(e)))),qa(e,o,n?{selectedInvertedCallNodePath:r,expandedInvertedCallNodePaths:l}:{selectedNonInvertedCallNodePath:r,expandedNonInvertedCallNodePaths:l})}case"CHANGE_INVERT_CALLSTACK":{const{newSelectedCallNodePath:n,selectedThreadIndexes:r,invertCallstack:o}=t;return(0,mt.K0)(e,((e,t)=>{if(t===Cn.X(r).toString()){const t=new Wa.Qi;for(let e=1;e<n.length;e++)t.add(n.slice(0,e));return o?{...e,selectedInvertedCallNodePath:n,expandedInvertedCallNodePaths:t}:{...e,selectedNonInvertedCallNodePath:n,expandedNonInvertedCallNodePaths:t}}return e}))}case"CHANGE_EXPANDED_CALL_NODES":{const{threadsKey:n,isInverted:r}=t,o=new Wa.Qi(t.expandedCallNodePaths);return qa(e,n,r?{expandedInvertedCallNodePaths:o}:{expandedNonInvertedCallNodePaths:o})}case"CHANGE_SELECTED_MARKER":{const{threadsKey:n,selectedMarker:r}=t;return qa(e,n,{selectedMarker:r})}case"CHANGE_SELECTED_NETWORK_MARKER":{const{threadsKey:n,selectedNetworkMarker:r}=t;return qa(e,n,{selectedNetworkMarker:r})}case"ADD_TRANSFORM_TO_STACK":{const{threadsKey:n,transform:r,transformedThread:o,callNodeInfo:a}=t,i=function(e){return new Wa.Qi(Array.from(e).map((e=>Cr(e,r,o,a))).filter((e=>e.length>0)))},s=function(e){return Cr(e,r,o,a)},l=Ya(e,n);return qa(e,n,{selectedNonInvertedCallNodePath:s(l.selectedNonInvertedCallNodePath),selectedInvertedCallNodePath:s(l.selectedInvertedCallNodePath),expandedNonInvertedCallNodePaths:i(l.expandedNonInvertedCallNodePaths),expandedInvertedCallNodePaths:i(l.expandedInvertedCallNodePaths)})}case"POP_TRANSFORMS_FROM_STACK":{const{threadsKey:n}=t;return qa(e,n,{selectedNonInvertedCallNodePath:[],selectedInvertedCallNodePath:[],expandedNonInvertedCallNodePaths:new Wa.Qi,expandedInvertedCallNodePaths:new Wa.Qi})}case"CHANGE_IMPLEMENTATION_FILTER":{const{transformedThread:n,threadsKey:r,previousImplementation:o,implementation:a}=t;if(o===a)return e;const i=Ya(e,r),s=function(e){return"combined"===a?e=wr(n,o,e):("combined"!==o&&(e=wr(n,o,e)),e=function(e,t,n){const r=vr[t];return n.filter((t=>r(e,t)))}(n,a,e)),e},l=function(e){const t=new Wa.Qi;for(let n=1;n<e.length;n++)t.add(e.slice(0,n));return t},c=s(i.selectedNonInvertedCallNodePath),d=s(i.selectedInvertedCallNodePath);return qa(e,r,{selectedNonInvertedCallNodePath:c,selectedInvertedCallNodePath:d,expandedNonInvertedCallNodePaths:l(c),expandedInvertedCallNodePaths:l(d)})}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":return{hasSelection:!1,isModifying:!1};case"POP_COMMITTED_RANGES":return t.committedRange?{hasSelection:!0,isModifying:!1,selectionStart:t.committedRange.start,selectionEnd:t.committedRange.end}:{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?Cn.WT(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:ja(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]??Za,...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}};case"UPDATE_PAGES":{if(null===e)throw new Error("We tried to update the pages information for a non-existent profile.");const{newPages:n}=t;return{...e,pages:n}}default:return e}},full:no({globalTracks:(e=[],t)=>{switch(t.type){case"VIEW_FULL_PROFILE":case"CHANGE_TAB_FILTER":return t.globalTracks;default:return e}},localTracksByPid:(e=new Map,t)=>{switch(t.type){case"VIEW_FULL_PROFILE":case"ENABLE_EVENT_DELAY_TRACKS":case"ENABLE_EXPERIMENTAL_PROCESS_CPU_TRACKS":case"CHANGE_TAB_FILTER":return t.localTracksByPid;default:return e}}}),activeTab:no({activeTabTimeline:(e=null,t)=>"VIEW_ACTIVE_TAB_PROFILE"===t.type?t.activeTabTimeline:e}),origins:no({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 Ja(void 0,t);default:return Ja(e,t)}});var Ja;const Qa=Xa,ei=e=>e.profileView,ti=e=>ei(e).full,ni=e=>ei(e).activeTab,ri=e=>ei(e).origins,oi=e=>ei(e).viewOptions,ai=e=>oi(e).perTab[Lo(e)]||Za,ii=e=>oi(e).rootRange,si=e=>oi(e).symbolicationStatus,li=e=>oi(e).scrollToSelectionGeneration,ci=e=>oi(e).focusCallTreeGeneration,di=e=>ii(e).start,ui=pt(ii,di,wo,((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})),hi=e=>oi(e).mouseTimePosition,pi=e=>t=>oi(t).perTab[e]||Za,mi=e=>oi(e).previewSelection,fi=pt(ui,mi,((e,t)=>t.hasSelection?{start:t.selectionStart,end:t.selectionEnd}:e)),gi=e=>ei(e).profile,Ai=e=>(0,mt.Nn)(gi(e),"Tried to access the profile before it was loaded."),bi=e=>Ai(e).meta.interval,Ci=e=>Ai(e).pages||null,yi=e=>Ri(e).findIndex((e=>"grey"===e.color)),vi=e=>Ai(e).threads,wi=e=>Ai(e).threads.map((e=>e.name)),Ei=e=>oi(e).lastNonShiftClick,ki=e=>oi(e).rightClickedTrack,xi=e=>Ai(e).counters||null,Ti=e=>Ai(e).meta,Si=e=>Ti(e).visualMetrics||null,Bi=e=>(0,mt.Nn)(Si(e),"Tried to access the visual metrics when it does not exist."),Ii=e=>Bi(e).VisualProgress,_i=e=>Bi(e).PerceptualSpeedIndexProgress??null,Pi=e=>Bi(e).ContentfulSpeedIndexProgress??null,Ni=e=>Ti(e).configuration,Mi=e=>Ti(e).sampleUnits,Fi=e=>Ti(e).extensions,Ri=pt(Ai,(e=>{const{categories:t}=e.meta;return t||(0,vn.oP)()})),Di=pt((e=>Ti(e).markerSchema),(e=>{const t=new Set([...Pn.map((e=>e.name))]);return[...e.filter((e=>!t.has(e.name))),...Pn]})),Li=pt(Di,(e=>{const t=Object.create(null);for(const n of e)t[n.name]=n;return t})),Oi=e=>{const t=Ni(e);return t&&t.activeTabID&&0!==t.activeTabID?t.activeTabID:null},Ui={},zi=e=>{let t=Ui[e];return t||(t=function(e){const t=pt(Ai,(t=>(0,Cn.pR)((0,mt.Nn)(t.counters,"Attempting to get a counter by index, but no counters exist.")[e]))),n=pt(t,ui,((e,t)=>(0,Cn.Z9)(e.samples,t.start,t.end))),r=pt(t,n,((e,t)=>(0,Cn.eG)(e.samples,t))),o=pt(t,bi,((e,t)=>(0,Cn.m4)(e.samples,t))),a=pt(t,bi,n,((e,t,n)=>(0,Cn.m4)(e.samples,t,n)));return{getCounter:t,getDescription:e=>t(e).description,getPid:e=>t(e).pid,getAccumulateCounterSamples:r,getMaxCounterSampleCountPerMs:o,getMaxRangeCounterSampleCountPerMs:a,getCommittedRangeCounterSampleRange:n}}(e),Ui[e]=t),t},Gi=pt(vi,$n),Wi=pt(Ci,(e=>{if(!e)return null;const t=new Map;for(const n of e)t.set(n.innerWindowID,n);return t})),Hi=pt(Ci,(e=>{if(!e)return null;const t=new Map;for(const n of e)t.set(n.innerWindowID,n.tabID);return t})),Vi=pt(vi,Hi,((e,t)=>(0,Cn.eD)(e,t))),ji=e=>ti(e).globalTracks,$i=pt(ji,(e=>e.map(((e,t)=>({type:"global",trackIndex:t}))))),Ki=pt(vi,(e=>e.some((({stringTable:e,markers:t})=>{const n=e.indexForString("PreferenceRead");return t.name.some((e=>e===n))})))),Yi=(e,t)=>ji(e)[t.trackIndex],qi=(e,t)=>{const n=ji(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}},Zi=e=>ti(e).localTracksByPid,Xi=(e,t)=>(0,mt.Nn)(ti(e).localTracksByPid.get(t),"Unable to get the tracks for the given pid."),Ji=(e,t)=>Xi(e,t.pid)[t.trackIndex],Qi=pt(Zi,(e=>{const t=new Set;for(const[n,r]of e.entries())r.some((e=>"memory"===e.type))&&t.add(n);return t})),es=pt(ki,ji,Zi,((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=(0,mt.Nn)(n.get(r),"No local tracks found at that pid.")[o];return"thread"===a.type?a.threadIndex:null})),ts=pt(ji,vi,((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(0,Cn.XU)(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(0,mt.lC)(e,"Unhandled GlobalTrack type.")}}(e,t))))),ns=(e,t)=>ts(e)[t],rs=pt(Zi,vi,xi,((e,t,n)=>{const r=new Map;for(const[o,a]of e)r.set(o,a.map((e=>Ma(e,t,n||[]))));return r})),os=(e,t,n)=>(0,mt.Nn)(rs(e).get(t),"Could not find the track names from the given pid")[n],as=e=>ni(e).activeTabTimeline,is=e=>as(e).mainTrack,ss=e=>[...as(e).screenshots,as(e).mainTrack],ls=e=>as(e).resources,cs=e=>as(e).resourcesThreadsKey,ds=pt(ss,(e=>e.map(((e,t)=>({type:"global",trackIndex:t}))))),us=(e,t)=>ss(e)[t.trackIndex],hs=(e,t)=>ls(e)[t.trackIndex],ps=e=>ri(e).originsTimeline,ms=pt(ji,Zi,Yo,Ko,((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}})),fs=pt(Ai,(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 za(r)*n;case"variable CPU cycles":return Ua(e.threads,n)*n;default:throw(0,mt.lC)(r,"Unhandled threadCPUDelta unit in computeMaxCPUDeltaPerInterval.")}})),gs=pt(Ai,fs,((e,t)=>{const{threads:n}=e;return n.map((n=>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?40*a:a}}(e,n,t)))})),As=pt(Ci,Wi,((e,t)=>{if(null===e||null===t||0===e.length)return null;const n=new Map;for(const r of e){const e=n=>{if(0===n.embedderInnerWindowID)return n;const r=t.get(n.embedderInnerWindowID);return void 0!==r?e(r):n},o=e(r),{tabID:a}=o,i=n.get(a);void 0===i?n.set(a,[r]):i.push(r)}return n})),bs=[],Cs=pt(As,Oi,((e,t)=>null===e||0===e.size||null===t?bs:e.get(t)??bs)),ys=pt(As,(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})),vs=pt(ys,Oi,((e,t)=>null===e||0===e.size||null===t?new Set:e.get(t)??new Set)),ws=pt(No,vs,((e,t)=>{switch(e.type){case"active-tab":return t;case"full":case"origins":return new Set;default:throw(0,mt.lC)(e,"Unhandled timelineTrackOrganization case")}})),Es=pt(Fi,(e=>{if(!e)return null;const t=new Map;for(let n=0;n<e.length;n++)t.set(e.baseURL[n],e.name[n]);return t})),ks=pt(As,Es,Cn.ej),xs=pt(ks,Vi,gs,((e,t,n)=>{const r=[];for(const[o,a]of e.entries()){let e=0;const i=t.get(o);if(i){for(const t of i.values()){const r=n[t];if(!r)throw new Error("Failed to find the thread score!");e+=r.boostedSampleScore}r.push({tabID:o,tabScore:e,pageData:a})}}return r.sort(((e,t)=>t.tabScore-e.tabScore)),r})),Ts=e=>{const t=ks(e),n=Oi(e),r=No(e);return null===n||"active-tab"!==r.type?null:t.get(n)??null},Ss=pt(vi,(e=>{const t=new Map;for(const n of e)t.set(n.tid,(0,Cn.XU)(e,n));return t})),Bs=pt(vi,(e=>{const t=new Map;for(const n of e)n.isMainThread&&n.pid&&t.set(n.pid,(0,Cn.XU)(e,n));return t})),Is=pt(Ai,(e=>{const{threads:t,pages:n}=e;return!(!n||!n.some((e=>e.isPrivateBrowsing)))||t.some((e=>e.isPrivateBrowsing))})),_s=pt(vi,(e=>{const t=new Set;for(const{tid:n}of e)t.add(n);return t})),Ps=e=>{const{profile:t}=e.profileView;return!t||!0!==t.meta.doesNotUseFrameImplementation},Ns=e=>{const{profile:t}=e.profileView;return!t||!0!==t.meta.sourceCodeIsNotOnSearchfox},Ms=e=>{const{profile:t}=e.profileView;return!t||!0!==t.meta.usesOnlyOneStackType},Fs=pt(Ai,(e=>e.meta.extra||[])),Rs=e=>e.zippedProfiles,Ds=e=>Rs(e).selectedZipFileIndex,Ls=e=>Rs(e).expandedZipFileIndexes,Os=e=>Rs(e).zipFile,Us=e=>Os(e).zip,zs=e=>"NO_ZIP_FILE"!==Os(e).phase,Gs=e=>{const{error:t}=Rs(e);return null===t?null:t.message},Ws=pt(Us,(e=>null===e?null:function(e){const t=(0,mt.WP)(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))),Hs=e=>(0,mt.Nn)(Ws(e),"Attempted to view a profile from a zip, when there is no zip file loaded."),Vs=pt(Hs,(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})),js=pt(Hs,Co,((e,t)=>null===e?null:new Yr(e,t))),$s=e=>(0,mt.Nn)(js(e),"Attempted to view a profile from a zip, when there is no zip file loaded."),Ks=e=>e.app,Ys=e=>Ks(e).view,qs=e=>Ks(e).urlSetupPhase,Zs=e=>Ks(e).hasZoomedViaMousewheel,Xs=e=>Ks(e).isSidebarOpenPerPanel[Lo(e)],Js=e=>Ks(e).panelLayoutGeneration,Qs=e=>Ks(e).lastVisibleThreadTabSlug,el=e=>Ks(e).trackThreadHeights,tl=e=>Ks(e).isNewlyPublished,nl=e=>Ks(e).experimental,rl=e=>Ks(e).browserConnectionStatus,ol=pt(rl,(e=>"ESTABLISHED"===e.status?e.browserConnection:null)),al=e=>nl(e).eventDelayTracks,il=e=>nl(e).cpuGraphs,sl=e=>nl(e).processCPUTracks,ll=e=>Ks(e).isDragAndDropDragging,cl=e=>Ks(e).isDragAndDropOverlayRegistered,dl=e=>Ks(e).currentProfileUploadedInformation,ul=pt(No,(e=>{switch(e.type){case"active-tab":return In.oQ;case"full":case"origins":return In.xs;default:throw(0,mt.lC)(e,"Unhandled TimelineTrackOrganization")}})),hl=pt(No,ji,Zi,Ko,Yo,el,as,Mo,ul,((e,t,n,r,o,a,i,s,l)=>{let c=In.NC;switch(e.type){case"origins":return c+500;case"active-tab":{i.resources.length>0&&(c+=In.RN);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+=In.pp+1;else{const e=a[t];if(void 0===e)return null;c+=e+In.RN+1}}break;default:throw(0,mt.lC)(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+=In.li;break;case"process":{const{mainThreadIndex:e}=n;if(null===e)c+=In.pp+1;else{const t=a[e];if(void 0===t)return null;c+=t+1}break}default:throw(0,mt.lC)(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(!(0,mt.Nn)(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+=In.LT+1;break;case"memory":c+=In.mk+1;break;case"bandwidth":c+=In.AJ+1;break;case"event-delay":c+=In.ZB+1;break;case"ipc":c+=In.F2+1;break;case"process-cpu":case"power":c+=In.xJ+1;break;case"marker":c+=In.Zh+1;break;default:throw(0,mt.lC)(n)}return c}default:throw(0,mt.lC)(e,"Unhandled TimelineTrackOrganization")}})),pl=pt(Ys,Ao,Os,((e,t,n)=>{const r=e.phase,o=n.phase;return!("INITIALIZING"===r&&"none"!==t||"PROCESS_PROFILE_FROM_ZIP_FILE"===o)})),ml=pt(No,(e=>{switch(e.type){case"active-tab":return In.Ae;case"full":case"origins":return In.RD;default:throw(0,mt.lC)(e,"Unhandled TimelineTrackOrganization")}})),fl=pt(Ks,(e=>e.sidebarOpenCategories));var gl=n(4199),Al=n(1710),bl=n.n(Al);function Cl(e,t,n){const r=e.get(t);return r?r.find(n):void 0}function yl(e,t,n){const r=e.get(t);return r?r.filter(n):[]}function vl(e,t,n,r,o){const a=`${o.pid}:${o.tid}`,i=e.get(a);if(i)return i;const s=(0,vn.Qh)();s.pid=`${o.pid}`,s.tid=a,s.processType="unknown",s.name="Chrome Thread";const l=Cl(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=Cl(n,"process_name",(e=>e.pid===o.pid));c&&(s.processName=c.args.name);const d=Cl(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=Cl(n,"process_sort_index",(e=>e.pid===o.pid));let h=0;u&&(h=u.args.sort_index);const p=Cl(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 wl(e){switch(e.name){case"ProfileChunk":return e.args.data.timeDeltas;case"CpuProfile":return e.args.data.cpuProfile.timeDeltas;default:return}}function El(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 kl(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)}}var xl=n(4876);class Tl{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 Sl(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 Bl=0;function Il(e){if(e){const t=e.split(" -> ");return t[t.length-1]}return e}function _l(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 Pl(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 Nl={1:e=>{(0,yn.l)("sorting thread markers",(()=>{for(const t of e.threads)Sl(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 xl.e(n),a={length:0,type:[],name:[],lib:[],icon:[],addonId:[],host:[]};function i(e,t){const n=a.length++;a.type[n]=vn.AU.library,a.name[n]=e,a.lib[n]=t}function s(e,t){const n=a.length++;a.type[n]=vn.AU.webhost,a.name[n]=e,a.host[n]=t}function l(e){const t=a.length++;a.type[t]=vn.AU.url,a.name[t]=e}const c=new Map,d=new Map;for(let e=0;e<r.length;e++)if(r.type[e]===vn.AU.library)c.set(e,a.length),i(r.name[e],r.lib[e]);else if(r.type[e]===vn.AU.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=Il(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 xl.e(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 xl.e(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=>{_l(e)},11:e=>{for(const t of e.threads){const{stringArray:e,markers:n}=t;if(0===n.length)continue;const r=new xl.e(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 xl.e(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 xl.e(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 xl.e(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(16)),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 xl.e(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=>{_l(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=>{Pl(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 Pl(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]!==vn.AU.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}`},48:e=>{if(e.counters&&e.counters.length>0)for(const t of e.counters)t.samples=t.sampleGroups[0].samples,delete t.sampleGroups},49:e=>{},50:e=>{},51:e=>{}},Ml=0;function Fl(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 Rl={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 xl.e(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 xl.e(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 xl.e(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 xl.e(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(16))):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=>{},29:e=>{!function e(t){if(t.counters&&t.counters.length>0)for(const e of t.counters)e.sample_groups&&(e.samples=e.sample_groups[0].samples,delete e.sample_groups);for(const n of t.processes)e(n)}(e)},30:e=>{},31:e=>{}},Dl=[{name:"User",color:"yellow",subcategories:["Other"]},{name:"Kernel",color:"orange",subcategories:["Other"]}],Ll=0,Ol=1;function Ul(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)")?Ol:Ll,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:Dl,markerSchema:[]},libs:[],threads:i,processes:[],pausedRanges:[]}}const zl=1464814675,Gl=1,Wl=2,Hl=3,Vl=240,jl=3,$l=-4,Kl="\n".charCodeAt(0);class Yl{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(Kl,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 ql(e){try{const t=11,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)===zl)return"streaming"}catch(e){}return"unrecognized"}function Zl(e){if(e!==zl){const t=`0x${zl.toString(16)}`,n=`0x${e.toString(16)}`;throw new Error(`Unexpected magic header, expected ${t} (little endian), got ${n}`)}}function Xl(e){if(e<1||e>3)throw new Error(`This code only knows how to parse versions 1 to 3, got version ${e}.`)}function Jl(e,t){if(e!==t)throw new Error(`Error: version number mismatch; got ${t} in summary but ${e} in data section`)}function Ql(e){let t=e.getLine();if("*version"!==t)throw new Error("Expected *version, got "+t);const n=+e.getLine();Xl(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 ec(e){const[t,n,r,o]=e.split("\t");return{methodId:+t,className:n,methodName:r,signature:o}}function tc(e,t){switch(t){case 1:return 9;case 2:return 10;default:return e.getU16()}}function nc(e,t,n,r){const o=e.curPos(),a=1===t?e.getU8():e.getU16(),i=e.getU32(),s=i&$l,l=i&jl;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 rc(e){try{const t=new Yl(new Uint8Array(e));switch(ql(e)){case"regular":return function(e){const{summaryVersion:t,summaryDetails:n,lineAfterSummary:r}=Ql(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(ec(n));return{methods:t,lineAfterMethods:n}}(e);if("*end"!==s)throw new Error("Expected *end, got "+s);const l=e.curPos();Zl(e.getU32());const c=e.getU16();Jl(c,t);const d=e.getU16(),u=e.getU64(),h=tc(e,c);e.setCurPos(l+d);const{clock:p}=n,m=[];for(;!e.eof();)m.push(nc(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();Zl(e.getU32());const n=e.getU16()^Vl;Xl(n);const r=e.getU16(),o=e.getU64(),a=tc(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===Gl){const t=e.getU16();i.push(ec(e.getString(t)))}else{if(r!==Wl){if(r===Hl){const t=e.getU32(),r=e.getBytes(t),o=Ql(new Yl(r));Jl(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(nc(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 oc{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 ac{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 ic(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 sc(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=(0,vn.vA)(),o=(0,vn.WG)(),a={...(0,vn.cy)(),weight:[],weightType:"tracing-ms"},i=(0,vn.qc)(),s={...e.funcTable},{stringTable:l}=e,c={...e,markers:i,funcTable:s,stackTable:o,frameTable:r,samples:a};let d=0;const u=[null],h=[0],p=new Map,m=new Map,f=new Map,g=l.indexForString(""),A=n.findIndex((e=>"Other"===e.name));if(-1===A)throw new Error("Expected to find an 'Other' category.");const b=ic(c),C={Interpreter:l.indexForString("interpreter"),Baseline:l.indexForString("baseline"),IonMonkey:l.indexForString("ion")},y=new Set(Object.keys(C));for(let e=0;e<t.length;e++){const n=t.events[e],a=l.getString(n),i=t.end[e],c=t.column[e],v=t.line[e];let w=null;if(null!==c&&null!==v){const e=`${a}:${v}:${c}`,t=b.get(e);null!=t&&(w=t,p.set(n,w))}if(null===w){const e=p.get(n);void 0===e?(w=s.length++,s.name.push(n),s.isJS.push(!1),s.resource.push(-1),s.relevantForJS.push(!0),s.fileName.push(null),s.lineNumber.push(null),s.columnNumber.push(null),p.set(n,w)):w=e}let E=u[d];for(;null!==E&&!(i<=h[d]);)E=u[d],d--;let k=null;if(y.has(a))k=C[a];else if(null!==E){const e=f.get(E);if(void 0===e)throw new Error(`Expected to find an implementation from a js tracer prefix index prefixIndex: ${E}`);k=e}f.set(e,k);const x=r.length++;r.address.push(g),r.inlineDepth.push(0),r.category.push(A),r.func.push(w),r.nativeSymbol.push(null),r.innerWindowID.push(0),r.implementation.push(k),r.line.push(v),r.column.push(c);const T=o.length++;o.frame.push(x),o.category.push(A),o.prefix.push(E),m.set(e,T),d++,0===d&&(d=1),u[d]=e,h[d]=i}return{thread:c,stackMap:m}}(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=(0,vn.cy)(),s=[];function l(e,t,r){if(o(t,r))return;const a=(0,mt.Nn)(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 lc(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 cc{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 dc(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]=vn.AU.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 uc(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=(m=l).startsWith&&m.startsWith("non-virtual thunk to ")?m.substr(21):m,u=o.indexForString(d),h=o.indexForString(c),p=a.get(d);var m;if(void 0!==p)return p.funcIndex;let f=i.get(h);void 0===f&&(f=s.length++,i.set(h,f),s.lib[f]=null,s.name[f]=h,s.host[f]=null,s.type[f]=vn.AU.library);const g=r.length++;return r.name[g]=u,r.resource[g]=f,r.relevantForJS[g]=!1,r.isJS[g]=!1,r.fileName[g]=null,r.lineNumber[g]=null,r.columnNumber[g]=null,g}function hc(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]=vn.AU.addon}}function pc(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=(0,Cn.SU)(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 mc({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 fc(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 gc(e){const t={};for(const n in e)t[n]=1e3*e[n];return t}function Ac(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?gc(e):{}}}}case"GCMajor":{const e=t.timings;switch(e.status){case"completed":{const{totals:t,...n}=e;return{type:"GCMajor",timings:{...n,phase_times:gc(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 bc(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,samples:s})=>(0===s.data.length||e.push({name:t,category:r,description:o,pid:a,mainThreadIndex:i,samples:vc(lc(s),n)}),e)),[])}function Cc(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:Ec(lc(r.samples),n),pid:a,mainThreadIndex:i,statistics:r.statistics}}function yc(e,t,n,r){const o=lc(e.frameTable),a=lc(e.stackTable),i=lc(e.samples),s=lc(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 xl.e(e.stringTable),{funcTable:m,resourceTable:f,frameFuncs:g,frameAddresses:A}=function(e,t,n,r,o=(0,vn.Ie)(),a){const i={funcTable:(0,vn.uv)(),resourceTable:(0,vn.WU)(),stringTable:n,addressLocator:new Tl(r),libToResourceIndex:new Map,originToResourceIndex:new Map,libNameToResourceIndex:new Map,stringToNewFuncIndexAndFrameAddress:new Map,globalDataCollector:a};for(let e=0;e<o.length;e++)hc(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=dc(i,a,o);null!==p?(u=p.funcIndex,h=p.frameAddress):(u=uc(i,a),null===u&&(u=pc(i,a),null===u&&(u=mc(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=(0,vn.Ry)(),C=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),y=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,C,u),{markers:v,jsAllocations:w,nativeAllocations:E}=function(e){const t=(0,vn.qc)(),n=(0,vn.uz)(),r=(0,vn.x2)(),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((0,mt.Nn)(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(fc(l)),n.length++;continue;case"Native allocation":void 0===i&&(i="memoryAddress"in l),r.time.push((0,mt.Nn)(e.startTime[s],"Native Allocations are assumed to have a startTime")),r.weight.push(l.size),r.stack.push(fc(l)),r.length++,i&&(o.push((0,mt.Nn)(l.memoryAddress,"Could not find the memoryAddress property on a gecko marker payload.")),a.push((0,mt.Nn)(l.threadId,"Could not find a threadId property on a gecko marker payload.")));continue}const c=Ac(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),x={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:C,funcTable:m,nativeSymbols:b,resourceTable:f,stackTable:y,markers:v,stringTable:p,samples:k};return void 0!==e.isPrivateBrowsing&&(x.isPrivateBrowsing=e.isPrivateBrowsing),void 0!==e.userContextId&&(x.userContextId=e.userContextId),w&&(x.jsAllocations=w),E&&(x.nativeAllocations=E),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]=x.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]}x.jsTracer={...n,events:t}}}(),(0,Cn.oQ)(x)}function vc(e,t){return{...e,time:e.time.map((e=>e+t))}}function wc(e,t){const n=1e3*t;return{...e,timestamps:e.timestamps.map((e=>e+n))}}function Ec(e,t){return{...e,time:e.time.map((e=>e/1e3+t))}}function kc(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=(0,mt.Cn)(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 xc(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 Tc(e){!function(e){const t=Fl(e).version||Ml;if(t!==In.xC){if(t>In.xC)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 ${In.xC}.\nYou can try refreshing this page in case profiler.firefox.com has updated in the meantime.`);for(let n=t+1;n<=In.xC;n++)n in Rl&&Rl[n](e);Fl(e).version=In.xC}}(e);let t=[];const n=e.meta.extensions?lc(e.meta.extensions):(0,vn.Ie)(),r=new cc;for(const o of e.threads)t.push(yc(o,e,n,r));const o=bc(e,t,0),a=[Cc(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=yc(e,i,n,r);return t.samples=vc(t.samples,s),t.markers=kc(t.markers,s),t.jsTracer&&(t.jsTracer=wc(t.jsTracer,s)),t.jsAllocations&&(t.jsAllocations=vc(t.jsAllocations,s)),t.nativeAllocations&&(t.nativeAllocations=vc(t.nativeAllocations,s)),t.processStartupTime+=s,null!==t.processShutdownTime&&(t.processShutdownTime+=s),t.registerTime+=s,null!==t.unregisterTime&&(t.unregisterTime+=s),t}))),o.push(...bc(i,t,s)),a.push(Cc(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:In.Ie,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:xc(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=(0,Cn.XU)(t,n),a=sc(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!==In.a1&&null===r||(n===In.KU||n===In.a1)&&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,In.KU,o,a),d(s,l,In.KU,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,In.mN,e,null,n),d(s,h,In.mN,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}}function Sc({time:e,...t}){let n=0;return{timeDeltas:e.map((e=>{const t=e-n;return n=e,t})),...t}}function Bc({timeDeltas:e,time:t,...n}){let r=0;return{time:t||(0,mt.Nn)(e).map((e=>(r+=e,r))),...n}}async function Ic(e){try{if("[object ArrayBuffer]"===String(e)){const t=e;if("unrecognized"!==ql(t))e=function(e){const t=rc(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 oc(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 ac(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)?Ul(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:Bl;if(n===In.Ie)return(0,mt.au)(e);if(n>In.Ie)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 ${In.Ie}.\nYou can try refreshing this page in case profiler.firefox.com has updated in the meantime.`);for(let t=n+1;t<=In.Ie;t++)t in Nl&&Nl[t](e);const r=(0,mt.au)(e);return r.meta.preprocessedProfileVersion=In.Ie,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,counters:t,...n}){return{...n,counters:t?t.map((({samples:e,...t})=>({...t,samples:Bc(e)}))):t,threads:e.map((({stringArray:e,samples:t,...n})=>({...n,samples:Bc(t),stringTable:new xl.e(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=(0,mt.au)(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:(0,mt.au)(e)}},cat:"other",pid:0,tid:0,ts:0,ph:"I"})):"object"==typeof e&&"traceEvents"in e&&Array.isArray(e.traceEvents)&&(t=(0,mt.au)(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=(0,vn.Z)();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}}}}((0,mt.Nn)(t.meta.categories)),o=new Map,a=new Map;for(const i of n){const n=vl(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=yl(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:u}=o,h=wl(e);if(!h)continue;const{funcTable:p,frameTable:m,stackTable:f,stringTable:g,samples:A,resourceTable:b}=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:h}=n,A=`${h}:${i||""}:${s||0}:${u||0}`,{category:C,isJS:y,relevantForJS:v}=r(h,void 0!==i||void 0!==s);let w=l.get(A);if(void 0===w){w=p.length++,p.isJS.push(y),p.relevantForJS.push(v);const e=""!==h?h:"(anonymous)";p.name.push(g.indexForString(e)),p.resource.push(y?(0,Cn.SU)(i||"<unknown>",b,g,d):-1),p.fileName.push(y?g.indexForString(i||"<unknown>"):null),p.lineNumber.push(void 0===s?null:s),p.columnNumber.push(void 0===u?null:u),l.set(A,w)}const E=o-1,k=c.get(a);if(void 0===k)throw new Error("Unable to find the prefix stack index from a node index.");m.address[E]=-1,m.category[E]=C,m.subcategory[E]=0,m.func[E]=w,m.nativeSymbol[E]=null,m.innerWindowID[E]=0,m.implementation[E]=null,m.line[E]=void 0===s?null:s,m.column[E]=void 0===u?null:u,m.length=Math.max(m.length,E+1),f.frame.push(E),f.category.push(C),f.subcategory.push(0),f.prefix.push(k),c.set(o,f.length++)}}"CpuProfile"===i.name&&(t.meta.profilingStartTime=i.args.data.cpuProfile.startTime/1e3,t.meta.profilingEndTime=i.args.data.cpuProfile.endTime/1e3);for(let e=0;e<u.length;e++){const r=u[e];if(n.lastSeenTime+=h[e]/1e3,n.lastSeenTime-n.lastSampledTime>=t.meta.interval){n.lastSampledTime=n.lastSeenTime;const e=(0,mt.Nn)(c.get(r),"Could not find the stack information for a sample when decoding a Chrome profile.");(0,mt.Nn)(A.eventDelay,"Could not find the eventDelay in samplesTable inside the newly created Chrome profile thread.").push(null),A.stack.push(e),A.time.push(n.lastSampledTime),A.length++}}}}for(const e of t.threads)kl(e.stackTable);if(await async function(e,t,n,r,o){if(!o)return;if(!o||0===o.length)return;const{thread:a}=vl(e,t,n,r,o[0]),i=(0,mt.Nn)(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 El(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(In.mN),a.markers.category.push(i),a.markers.length++)}}(o,a,e,t,e.get("Screenshot")),function(e,t,n,r){const o=(0,mt.Nn)(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=vl(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(In.KU),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(In.nO)):"E"===s.ph||"e"===s.ph?(d.startTime.push(null),d.endTime.push(i),d.phase.push(In.a1)):(d.startTime.push(i),d.endTime.push(null),d.phase.push(In.mN));d.length++}}(o,a,e,t),void 0===t.meta.profilingStartTime&&void 0===t.meta.profilingEndTime&&e.has("TracingStartedInBrowser")){const n=(0,mt.Nn)(e.get("TracingStartedInBrowser"))[0];if(void 0!==n.ts&&Number.isFinite(n.ts)){let e=-1/0;t.threads.forEach((n=>{const r=(0,Cn.GP)(n,t.meta.interval);e=Math.max(e,r.end)})),t.meta.profilingStartTime=n.ts/1e3,t.meta.profilingEndTime=e}}return 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=(0,mt.au)(e),r=(0,vn.Z)();r.meta.product=n.cmd+" (dhat)",r.meta.importedFrom="dhat";const o=(0,vn.x2)(),{funcTable:a,stringTable:i,stackTable:s,frameTable:l}=(0,vn.Qh)(),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=(0,mt.Nn)(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=(0,vn.Qh)();return c.pid=n.pid,c.tid=r,c.name=e,c.stringTable=new xl.e(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=(0,mt.au)(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 Tc(t)}(t)}catch(e){throw console.error("UnserializationError:",e),new Error(`Unserializing the profile failed: ${e}`)}}class _c{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 Ha("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()}))}}var Pc=n(7837);function Nc(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,Pc.lV)(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 Mc{constructor(e,t){this._symbolProvider=void 0,this._db=void 0,this._symbolProvider=t,this._db="string"==typeof e?new _c(`${e}-symbol-tables`):e}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 Ha(`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 Ha))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(556).then(n.bind(n,556));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,Nc(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),(0,mt.Nn)(n.get(e)).push(t)}}return o}catch(t){for(const r of e)(0,mt.Nn)(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,Nc(i,t,n)),await this._storeSymbolTableInDB(e,t)}catch(n){o(a,new Ha(`Could not obtain symbols for ${e.debugName}/${e.breakpadId}.`,e,...t.get(a)??[],n))}}}}function Fc(e,t,n,r){return(e=(0,Cn.Ce)(e,n,r)).markers=function(e,t,n,r){const o=(0,vn.qc)(),a=[];e.threadId&&(o.threadId=a);const i=Yn(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 Rc(e,t){return e.map((e=>{const n=t.get(e);if(void 0===n)throw new Error(_n.dx`
|
19
|
-
Category with index ${e} hasn't been found in the translation map.
|
20
|
-
This shouldn't happen and indicates a bug in the profiler's code.
|
21
|
-
`);return n}))}function Dc(e,t){return e.map((e=>{if(null===e)return e;const n=t.get(e);if(void 0===n)throw new Error(_n.dx`
|
22
|
-
Lib with index ${e} hasn't been found in the translation map.
|
23
|
-
This shouldn't happen and indicates a bug in the profiler's code.
|
24
|
-
`);return n}))}function Lc(e,t){return e.map((e=>{const n=t.get(e);if(void 0===n)throw new Error(_n.dx`
|
25
|
-
Lib with index ${e} hasn't been found in the translation map.
|
26
|
-
This shouldn't happen and indicates a bug in the profiler's code.
|
27
|
-
`);return n}))}function Oc(e,t){return e.map((e=>{if(null===e)return null;const n=t.get(e);if(void 0===n)throw new Error(_n.dx`
|
28
|
-
Category with index ${e} hasn't been found in the translation map.
|
29
|
-
This shouldn't happen and indicates a bug in the profiler's code.
|
30
|
-
`);return n}))}function Uc(e,t){const n=new Map,r=[],o=(0,vn.WU)();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 zc(e,t){const n=new Map,r=[],o=(0,vn.Ry)();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 Gc(e,t,n){const r=new Map,o=[],a=(0,vn.uv)();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(_n.dx`
|
31
|
-
We couldn't find the resource of func ${e} in the translation map.
|
32
|
-
This is a programming error.
|
33
|
-
`);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 Wc(e,t,n,r){const o=[],a=(0,vn.vA)();return r.forEach(((r,i)=>{const{frameTable:s,stringTable:l}=r,c=new Map,d=e[i],u=t[i];for(let e=0;e<s.length;e++){const t=d.get(s.func[e]);if(void 0===t)throw new Error(_n.dx`
|
34
|
-
We couldn't find the function of frame ${e} in the translation map.
|
35
|
-
This is a programming error.
|
36
|
-
`);const r=s.implementation[e],o="number"==typeof r?l.getString(r):null,i=s.nativeSymbol[e],h=null===i?null:u.get(i);if(void 0===h)throw new Error(_n.dx`
|
37
|
-
We couldn't find the nativeSymbol of frame ${e} in the translation map.
|
38
|
-
This is a programming error.
|
39
|
-
`);a.address.push(s.address[e]),a.inlineDepth.push(s.inlineDepth[e]),a.category.push(s.category[e]),a.subcategory.push(s.subcategory[e]),a.nativeSymbol.push(h),a.func.push(t),a.innerWindowID.push(s.innerWindowID[e]),a.implementation.push(null===o?null:n.indexForString(o)),a.line.push(s.line[e]),a.column.push(s.column[e]),c.set(e,a.length),a.length++}o.push(c)})),{frameTable:a,translationMaps:o}}function Hc(e,t){const n=[],r=(0,vn.WG)();return t.forEach(((t,o)=>{const{stackTable:a}=t,i=new Map,s=e[o];for(let e=0;e<a.length;e++){const t=s.get(a.frame[e]);if(void 0===t)throw new Error(_n.dx`
|
40
|
-
We couldn't find the frame of stack ${e} in the translation map.
|
41
|
-
This is a programming error.
|
42
|
-
`);const n=a.prefix[e],o=null===n?null:i.get(n);if(void 0===o)throw new Error(_n.dx`
|
43
|
-
We couldn't find the prefix of stack ${e} in the translation map.
|
44
|
-
This is a programming error.
|
45
|
-
`);r.frame.push(t),r.category.push(a.category[e]),r.subcategory.push(a.subcategory[e]),r.prefix.push(o),i.set(e,r.length),r.length++}n.push(i)})),{stackTable:r,translationMaps:n}}function Vc(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 jc=class{constructor(e){return new window.Worker(`/${e}.js`)}},$c=[];function Kc(e){e.onmessage=function(e){const t=e.data,n=$c[t.callbackID];n&&(n[t.type](t.data),$c[t.callbackID]=null)}}function Yc(e){return new Promise((function(t,n){const r=new jc("zee-worker");Kc(r),r.postMessage({request:"decompress",data:e,callbackID:$c.length},[e.buffer]),$c.push({success:t,error:n})}))}function qc(e){return e.byteLength>=3&&31===e[0]&&139===e[1]&&8===e[2]}const Zc="application/vnd.firefox-profiler+json;version=1.0";async function Xc(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=`${In.HT}/shorten`,r={longUrl:t},o=await fetch(n,{method:"POST",headers:{Accept:Zc,"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 Jc extends Error{constructor(e,t=null){super(e),this.attempt=void 0,this.__proto__=Jc.prototype,this.name="TemporaryError",this.attempt=t}}var Qc=n(1617),ed=n.n(Qc);const td=n.p+"79856ce399cb305fafb8.svg";class nd{constructor(e,t){this._callNodeInfo=void 0,this._callNodeTable=void 0,this._callTreeTimings=void 0,this._callNodeHasChildren=void 0,this._callNodeInfo=e,this._callNodeTable=e.getCallNodeTable(),this._callTreeTimings=t,this._callNodeHasChildren=t.callNodeHasChildren}_getFirstChildIndex(e){return-1===e?0!==this._callNodeTable.length?0:-1:this._callNodeTable.subtreeRangeEnd[e]!==e+1?e+1:-1}createRoots(){return this.createChildren(-1)}createChildren(e){const t=[];for(let n=this._getFirstChildIndex(e);-1!==n;n=this._callNodeTable.nextSibling[n]){const e=this._callTreeTimings.total[n],r=this._callNodeHasChildren[n];0===e&&0===r||t.push(n)}return t.sort(((e,t)=>Math.abs(this._callTreeTimings.total[t])-Math.abs(this._callTreeTimings.total[e]))),t}hasChildren(e){return 0!==this._callNodeHasChildren[e]}getSelfAndTotal(e){return{self:this._callTreeTimings.self[e],total:this._callTreeTimings.total[e]}}findHeaviestPathInSubtree(e){const t=this._callNodeTable.subtreeRangeEnd[e];let n=-1,r=0;for(let o=e;o<t;o++){const e=Math.abs(this._callTreeTimings.leaf[o]);(-1===n||e>r)&&(n=o,r=e)}return this._callNodeInfo.getCallNodePathFromIndex(n)}}class rd{constructor(e,t,n,r,o,a,i){this._categories=void 0,this._internal=void 0,this._callNodeInfo=void 0,this._callNodeTable=void 0,this._thread=void 0,this._rootTotalSummary=void 0,this._displayDataByIndex=void 0,this._children=void 0,this._roots=void 0,this._isHighPrecision=void 0,this._weightType=void 0,this._categories=t,this._internal=r,this._callNodeInfo=n,this._callNodeTable=n.getCallNodeTable(),this._thread=e,this._rootTotalSummary=o,this._displayDataByIndex=new Map,this._children=[],this._roots=r.createRoots(),this._isHighPrecision=a,this._weightType=i}getRoots(){return this._roots}getChildren(e){let t=this._children[e];return void 0===t&&(t=this._internal.createChildren(e),this._children[e]=t),t}hasChildren(e){return this._internal.hasChildren(e)}_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]}getNodeData(e){const t=this._callNodeTable.func[e],n=this._thread.stringTable.getString(this._thread.funcTable.name[t]),{self:r,total:o}=this._internal.getSelfAndTotal(e);return{funcName:n,total:o,totalRelative:o/this._rootTotalSummary,self:r,selfRelative:r/this._rootTotalSummary}}_getInliningBadge(e,t){const n=pr(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=pr(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===vn.AU.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===vn.AU.addon){f=td;const e=this._thread.resourceTable.name[d];g=this._thread.stringTable.getString(e)}const A=jt(m,this._isHighPrecision,r),b=jt(m,this._isHighPrecision,a),C=`${Kt(o)}`;let y,v,w;switch(m){case"tracing-ms":v=`${A}ms`,w=`${b}ms`,y=_n.TN`
|
46
|
-
${n},
|
47
|
-
running time is ${v} (${C}),
|
48
|
-
self time is ${w}
|
49
|
-
`;break;case"samples":v=1===r?`${A} sample`:`${A} samples`,w=1===a?`${b} sample`:`${b} samples`,y=_n.TN`
|
50
|
-
${n},
|
51
|
-
running count is ${v} (${C}),
|
52
|
-
self count is ${w}
|
53
|
-
`;break;case"bytes":v=`${A} bytes`,w=`${b} bytes`,y=_n.TN`
|
54
|
-
${n},
|
55
|
-
total size is ${v} (${C}),
|
56
|
-
self size is ${w}
|
57
|
-
`;break;default:throw(0,mt.lC)(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:(0,Cn.LU)(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(0,Cn.Bu)(e,this._thread.funcTable,this._thread.resourceTable,this._thread.stringTable)}getBottomBoxInfoForCallNode(e){return(0,Cn.ae)(e,this._callNodeInfo,this._thread)}findHeavyPathToSameFunctionAfterInversion(e){if(null===e)return[];const t=this._internal.findHeaviestPathInSubtree(e),n=this._callNodeTable.depth[e];return t.slice(n).reverse()}}function od(e,t){const n=e.getCallNodeTable(),{callNodeLeaf:r,rootTotalSummary:o}=t,a=e.isInverted()?function(e,t){const n=new Int32Array(t.length),r=new Float32Array(t.length);for(let o=0;o<t.length;o++){const a=t.prefix[o];n[o]=-1===a?o:n[a],r[n[o]]+=e[o]}return r}(r,n):r,i=new Float32Array(n.length),s=new Uint8Array(n.length);for(let e=n.length-1;e>=0;e--){i[e]+=r[e];const t=0!==s[e],o=0!==i[e];if(!t&&!o)continue;const a=n.prefix[e];-1!==a&&(i[a]+=i[e],s[a]=1)}return{self:a,leaf:r,total:i,callNodeHasChildren:s,rootTotalSummary:o}}function ad(e,t,n,r,o){return(0,yn.l)("getCallTree",(()=>new rd(e,n,t,new nd(t,r),r.rootTotalSummary,Boolean(e.isJsTracer),o)))}function id(e,t){switch(t){case"timing":return e.samples;case"js-allocations":return(0,mt.Nn)(e.jsAllocations,'Expected the NativeAllocationTable to exist when using a "js-allocation" strategy');case"native-retained-allocations":{const t=(0,mt.Nn)(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 Cn.rf(t)}case"native-allocations":return Cn.$v((0,mt.Nn)(e.nativeAllocations,'Expected the NativeAllocationTable to exist when using a "native-allocations" strategy'));case"native-deallocations-sites":return Cn.WM((0,mt.Nn)(e.nativeAllocations,'Expected the NativeAllocationTable to exist when using a "native-deallocations-sites" strategy'));case"native-deallocations-memory":{const t=(0,mt.Nn)(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 Cn.bs((0,mt.Nn)(t,'Expected the NativeAllocationTable to exist when using a "js-allocation" strategy'))}default:throw(0,mt.lC)(t)}}function sd(e,t){const n=pt(Ai,(t=>function(e){const t=new xl.e,{resourceTable:n,translationMaps:r}=Uc(t,e),{nativeSymbols:o,translationMaps:a}=zc(t,e),{funcTable:i,translationMaps:s}=Gc(r,t,e),{frameTable:l,translationMaps:c}=Wc(s,a,t,e),{stackTable:d,translationMaps:u}=Hc(c,e),h=function(e,t){const n=t.map((e=>e.samples)),r=Array(n.length).fill(0),o=[],a={...(0,vn.cy)(),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(_n.dx`
|
58
|
-
We couldn't find the stack of sample ${c} in the translation map.
|
59
|
-
This is a programming error.
|
60
|
-
`);a.stack.push(u),(0,mt.Nn)(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={...(0,vn.qc)(),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?Ai(t).threads[(0,mt.Nn)((0,mt.cF)(e))]:n(t),o=e=>r(e).stringTable,a=e=>r(e).samples,i=e=>r(e).nativeAllocations,s=e=>r(e).jsAllocations,l=pt(r,Mi,bi,((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=za(t.threadCPUDelta);for(let e=0;e<r.length;e++){const s=Ga(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(0,mt.lC)(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=pt(l,Cn.Vj),d=e=>c(e).thread,u=pt(d,ws,((e,t)=>0===t.size?e:Cn.hk(e,t))),h=pt(d,vs,((e,t)=>0===t.size?e:Cn.hk(e,t))),p=pt(u,ui,((e,t)=>{const{start:n,end:r}=t;return Cn.Ce(e,n,r)})),m=pt(r,ko,((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:(0,mt.lC)(t,"Unhandled call tree sumary strategy.")}return t})),f=pt(r,m,id),g=pt(f,ui,((e,{start:t,end:n})=>{const[r]=Cn.XG(e,t,n);return r})),A=pt(vi,r,Cn.XU),b=pt(r,A,Cn.g),C=pt(a,r,Cn.aM),y=pt(s,r,Cn.aM),v=pt(i,r,Cn.aM),w=e=>r(e).jsTracer||null,E=pt(w,r,((e,t)=>null===e?null:function(e,t){const n=[],{stringTable:r,funcTable:o}=t,a=ic(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))),k=pt(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=pt(a,bi,((e,t)=>null===e||void 0===e.eventDelay?null:Cn.qN(e,t)));return{getThread:r,getStringTable:o,getSamplesTable:a,getSamplesWeightType:e=>a(e).weightType||"samples",getNativeAllocations:i,getJsAllocations:s,getThreadRange:e=>Cn.GP(r(e),bi(e)),getReservedFunctionsForResources:e=>c(e).reservedFunctionsForResources,getRangeFilteredThread:p,getUnfilteredSamplesForCallTree:f,getSampleIndexOffsetFromCommittedRange:g,getFriendlyThreadName:A,getThreadProcessDetails:b,getViewOptions:e=>oi(e).perThread[t]||Ka,getJsTracerTable:w,getExpensiveJsTracerTiming:E,getExpensiveJsTracerLeafTiming:k,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=>(0,mt.Nn)(x(e),"Could not get the processed event delays"),getCallTreeSummaryStrategy:m}}function ld(e,t,n){const r=zt()(Tr,{cache:new(ed())}),o=e=>sa(e,n),a=pt(e.getRangeFilteredThread,o,yi,e.getMarkerGetter,e.getFullMarkerListIndexes,Li,Ri,((e,t,n,o,a,i,s)=>t.reduce(((e,t)=>r(e,t,n,o,a,i,s)),e))),i=pt(a,Eo,Cn.u2),s=pt(i,ea,Cn.KQ),l=pt(s,mi,((e,t)=>{if(!t.hasSelection)return e;const{selectionStart:n,selectionEnd:r}=t;return Cn.Ce(e,n,r)})),c=pt(s,e.getCallTreeSummaryStrategy,id),d=pt(l,e.getCallTreeSummaryStrategy,id),u=pt(c,mi,e.getSampleIndexOffsetFromCommittedRange,((e,t,n)=>{if(!t.hasSelection)return n;const[r]=Cn.XG(e,t.selectionStart,t.selectionEnd);return n+r})),h=pt(Ti,a,e.getFriendlyThreadName,o,br);return{getTransformStack:o,getRangeAndTransformFilteredThread:a,getFilteredThread:s,getPreviewFilteredThread:l,getFilteredSamplesForCallTree:c,getPreviewFilteredSamplesForCallTree:d,getSampleIndexOffsetFromPreviewRange:u,getTransformLabelL10nIds:h,getLocalizedTransformLabels:pt(h,(e=>e.map((e=>J.createElement(de,{id:e.l10nId,vars:{item:e.item},key:e.item})))))}}const cd=300;function dd(e,t,n){const r=new Map,o=new Map;for(const a of t){const t=e(a),i=e=>{e.start.push(t.start),e.end.push(null===t.end?t.start:t.end),e.index.push(a),e.length++},s=n?n[t.category].name:"None",l=t.data&&"Network"===t.data.type?"Network Requests":t.name,c=({instantOnly:e})=>({start:[],end:[],index:[],name:l,bucket:s,instantOnly:e,length:0});if(null===t.end){let e=o.get(l);e||(e=c({instantOnly:!0}),o.set(l,e)),i(e);continue}let d=r.get(l);void 0===d&&(d=[],r.set(l,d));const u=d.find((e=>e.end[e.length-1]<=t.start));if(u){i(u);continue}if(d.length>=cd)continue;const h=c({instantOnly:!1});i(h),d.push(h)}const a=[...o.values()].concat(...r.values());return a.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})),a}function ud(e,t,n){const r=dd(e,t,n),o=[];let a;for(const e of r)e.bucket!==a&&(o.push(e.bucket),a=e.bucket),o.push(e);return o}const hd=pt(oi,(e=>e.rightClickedMarker));function pd(e,t,n){const r=pt((t=>e.getThread(t).markers),e.getStringTable,(t=>e.getThread(t).tid),e.getThreadRange,Gi,Kn),o=pt(r,(({markers:e})=>e)),a=pt(r,(({markerIndexToRawMarkerIndexes:e})=>e)),i=pt(e.getSamplesTable,yi,((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=pt(o,i,((e,t)=>[...e,...t].sort(((e,t)=>e.start-t.start)))),l=pt(s,(e=>t=>{const n=e[t];if(!n)throw new Error(_n.dx`
|
61
|
-
Tried to get marker index ${t} but it's not in the full list.
|
62
|
-
This is a programming error.
|
63
|
-
`);return n})),c=pt(s,(e=>e.map(((e,t)=>t)))),d=e=>(t,n)=>qn(t,n,e),u=pt(l,c,ui,((e,t,n)=>{const{start:r,end:o}=n;return Zn(e,t,r,o)})),h=pt(l,u,ws,Vn),p=pt(l,h,Di,Li,(()=>"timeline-overview"),dr),m=pt(l,c,vs,((e,t,n)=>Vn(e,t,n,!1))),f=pt(l,h,d(Qn)),g=pt(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=pt(l,h,Li,oa,e.getStringTable,Ri,Gn),b=pt(l,A,mi,((e,t,n)=>{if(!n.hasSelection)return t;const{selectionStart:r,selectionEnd:o}=n;return Zn(e,t,r,o)})),C=pt(s,(e=>e.every((e=>!Xn(e))))),y=pt(l,u,d(Xn)),v=pt(l,u,d(Jn)),w=pt(l,y,Li,aa,e.getStringTable,Ri,Gn),E=pt(s,(e=>e.every((e=>Xn(e))))),k=pt(l,A,Di,Li,((e,t,n,r)=>dr(e,t,n,r,"marker-chart",tr(r)))),x=pt(l,b,Di,Li,((e,t,n,r)=>dr(e,t,n,r,"marker-table",tr(r)))),T=pt(l,Di,Li,Ri,e.getStringTable,(()=>"tooltipLabel"),Dn),S=pt(l,Di,Li,Ri,e.getStringTable,(()=>"tableLabel"),Dn),B=pt(l,Di,Li,Ri,e.getStringTable,(()=>"chartLabel"),Dn),I=pt(l,Di,Li,Ri,e.getStringTable,(()=>"copyLabel"),Dn),_=pt(l,k,Ri,ud),P=pt(l,h,Di,Li,(()=>"timeline-fileio"),(()=>er),dr),N=pt(l,h,Di,Li,(()=>"timeline-memory"),dr),M=pt(l,h,Di,Li,(()=>"timeline-ipc"),dr),F=pt(l,y,dd),R=pt(l,v,dd),D=pt(l,u,or),L=t=>e.getViewOptions(t).selectedMarker,O=t=>e.getViewOptions(t).selectedNetworkMarker,U=pt(hd,(e=>null!==e&&e.threadsKey===n?e.markerIndex:null)),z=pt(l,U,((e,t)=>"number"==typeof t?e(t):null)),G=pt(oi,(({hoveredMarker:e})=>null!==e&&e.threadsKey===n?e.markerIndex:null)),W={};return{getMarkerGetter:l,getTimelineJankMarkerIndexes:g,getDerivedMarkerInfo:r,getMarkerIndexToRawMarkerIndexes:a,getFullMarkerList:s,getFullMarkerListIndexes:c,getMarkerListLength:e=>s(e).length,getNetworkMarkerIndexes:y,getSearchFilteredNetworkMarkerIndexes:w,getAreMarkerPanelsEmptyInFullRange:E,getMarkerTableMarkerIndexes:x,getMarkerChartMarkerIndexes:k,getMarkerChartLabelGetter:B,getMarkerTooltipLabelGetter:T,getMarkerTableLabelGetter:S,getMarkerLabelToCopyGetter:I,getMarkerChartTimingAndBuckets:_,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=pt(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&&Nn(Li,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=pt(r,ui,l,((e,t,n)=>(0,Cn.Z9)({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 md(e,t,n,r,o){const a=n.getCallNodeTable(),{prefix:i,subtreeRangeEnd:s,depth:l}=a,c=Array.from({length:r},(()=>({start:[],end:[],callNode:[],length:0})));if(0===e.length)return c;let d=-1,u=-1;const h=new Float64Array(r);for(let n=0;n<e.length;n++){const r=e.time[n],o=t[n]??-1;if(o!==d){for(;-1!==u&&(o<d||o>=s[d]);){const e=h[u],t=c[u],n=t.length++;t.start[n]=e,t.end[n]=r,t.callNode[n]=d,d=i[d],u--}if(-1!==o){const e=l[o];for(;u<e;)u++,h[u]=r}d=o}}const p=e.time[e.length-1]+o;for(;-1!==u;){const e=c[u],t=e.length++,n=h[u];e.start[t]=n,e.end[t]=p,e.callNode[t]=d,d=i[d],u--}return c}function fd(e,t,n){if(0===e.length)return[[]];const{func:r,nextSibling:o,subtreeRangeEnd:a,maxDepth:i}=e,s=t.name,l=Array.from({length:i+1},(()=>[])),c=new Int32Array(i+1);let d=0,u=0;e:for(;;){const e=l[u],t=e.length;for(let a=d;-1!==a;a=o[a]){const o=e.length;if(t===o)e.push(a);else{const i=r[a],l=n.getString(s[i]),c=(0,Pc.Yl)(e,l,(e=>n.getString(s[r[e]])),t,o);e.splice(c,0,a)}}let i=u,h=e,p=c[i],m=h[p];for(;a[m]===m+1;){for(p++,c[i]=p;p===h.length;){if(0===i)break e;i--,h=l[i],p=c[i]}m=h[p]}c[i]=p+1,d=m+1,u=i+1}return l}function gd(e,t,n){const{total:r,self:o,rootTotalSummary:a}=n,{prefix:i}=t,s=[],l=new Float32Array(t.length),c=Math.abs;for(let t=0;t<e.length;t++){const n=e[t],d=[],u=[],h=[],p=[];let m=0,f=-1;for(let e=0;e<n.length;e++){const t=n[e],s=r[t];if(0===s)continue;const g=i[t];g!==f&&(m=l[g],f=g),l[t]=m;const A=c(s/a),b=c(o[t]/a),C=m+A;d.push(m),u.push(C),h.push(b),p.push(t),m=C}s[t]={start:d,end:u,selfRelative:h,callNode:p,length:p.length}}return s}const Ad=pt(oi,(e=>e.rightClickedCallNode));var bd=n(6046);const Cd={totalAddressHits:new Map,selfAddressHits:new Map};function yd(e,t){if(null===e)return Cd;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 vd=ht(ut,{maxSize:2});function wd(e,t,n){const r=pt(e.getThread,bi,((e,t)=>{const{time:n}=e.samples;return 0===n.length?null:{start:n[0],end:n[n.length-1]+t}})),o=vd((t=>e.getFilteredThread(t).stackTable),(t=>e.getFilteredThread(t).frameTable),(t=>e.getFilteredThread(t).funcTable),yi,Cn.xR),a=vd(e.getFilteredThread,o,yi,((e,t,n)=>Cn.wk(e,t.getNonInvertedCallNodeTable(),t.getStackIndexToNonInvertedCallNodeIndex(),n))),i=e=>Oo(e)?a(e):o(e),s=pt(e.getFilteredThread,To,(({stackTable:e,frameTable:t,funcTable:n,stringTable:r},o)=>null===o?null:(0,bd.jI)(e,t,n,r.indexForString(o)))),l=pt(e.getFilteredThread,Io,(({nativeSymbols:e},t)=>null===t?null:e.address.findIndex(((n,r)=>n===t.address&&e.libIndex[r]===t.libIndex)))),c=pt(e.getFilteredThread,l,(({stackTable:e,frameTable:t,funcTable:n},r)=>null===r?null: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))),d=pt(e.getViewOptions,Oo,((e,t)=>t?e.selectedInvertedCallNodePath:e.selectedNonInvertedCallNodePath)),u=pt(i,d,((e,t)=>e.getCallNodeIndexFromPath(t))),h=pt(e.getViewOptions,Oo,((e,t)=>t?e.expandedInvertedCallNodePaths:e.expandedNonInvertedCallNodePaths)),p=pt(i,h,((e,t)=>Array.from(t).map((t=>e.getCallNodeIndexFromPath(t))))),m=pt((t=>e.getFilteredThread(t).samples.stack),(e=>i(e).getStackIndexToCallNodeIndex()),((e,t)=>Cn.WD(e,t))),f=pt((t=>e.getPreviewFilteredSamplesForCallTree(t).stack),(e=>i(e).getStackIndexToCallNodeIndex()),Cn.WD),g=pt((t=>e.getFilteredThread(t).samples.stack),(e=>i(e).getStackIndexToNonInvertedCallNodeIndex()),((e,t)=>Cn.WD(e,t))),A=pt((t=>e.getTabFilteredThread(t).samples.stack),(e=>i(e).getStackIndexToCallNodeIndex()),((e,t)=>Cn.WD(e,t))),b=pt(m,A,i,u,((e,t,n,r)=>Cn.st(n,e,t,r))),C=pt(m,Cn.H7),y=pt(e.getFilteredSamplesForCallTree,i,Cn.Jn),v=pt(e.getPreviewFilteredSamplesForCallTree,i,Cn.Jn),w=pt(e.getUnfilteredSamplesForCallTree,(e=>e.weightType||"samples")),E=pt(e.getPreviewFilteredSamplesForCallTree,f,i,((e,t,n)=>{const r=function(e,t,n){const r=new Float32Array(n);for(let n=0;n<t.length;n++){const o=t[n];if(null!==o){const t=e.weight?e.weight[n]:1;r[o]+=t}}const o=Math.abs;let a=0;for(let e=0;e<n;e++)a+=o(r[e]);return{callNodeLeaf:r,rootTotalSummary:a}}(e,t,n.getCallNodeTable().length);return od(n,r)})),k=pt(e.getPreviewFilteredThread,i,Ri,E,w,ad),x=pt(s,e.getPreviewFilteredSamplesForCallTree,bd.sZ),T=pt(c,e.getPreviewFilteredSamplesForCallTree,yd),S=pt(e.getPreviewFilteredSamplesForCallTree,f,i,bi,((e,t,n,r)=>{const o=function(e,t,n,r){if("samples"!==e.weightType||e.weight)return null;const o=new Float32Array(n);let a=0;for(let n=0;n<e.length-1;n++){const r=t[n];if(null!==r){const t=e.time[n+1]-e.time[n];o[r]+=t,a+=t}}if(e.length>0){const n=t[e.length-1];if(null!==n){const e=r;o[n]+=e,a+=e}}return{callNodeLeaf:o,rootTotalSummary:a}}(e,t,n.getCallNodeTable().length,r);return null===o?null:od(n,o)})),B=pt(u,S,((e,t)=>null===e||null===t?null:{total:t.total[e],self:t.self[e]})),I=pt(e.getFilteredSamplesForCallTree,m,i,y,bi,md),_=pt((e=>i(e).getNonInvertedCallNodeTable()),(t=>e.getFilteredThread(t).funcTable),(t=>e.getFilteredThread(t).stringTable),fd),P=pt(_,(e=>i(e).getNonInvertedCallNodeTable()),E,gd),N=pt(Ad,i,((e,t)=>null!==e&&n===e.threadsKey?t.getCallNodeIndexFromPath(e.callNodePath):null));return{unfilteredSamplesRange:r,getWeightTypeForCallTree:w,getCallNodeInfo:i,getSourceViewStackLineInfo:s,getAssemblyViewNativeSymbolIndex:l,getAssemblyViewStackAddressInfo:c,getSelectedCallNodePath:d,getSelectedCallNodeIndex:u,getExpandedCallNodePaths:h,getExpandedCallNodeIndexes:p,getSampleIndexToCallNodeIndexForFilteredThread:m,getSampleIndexToNonInvertedCallNodeIndexForFilteredThread:g,getSampleIndexToCallNodeIndexForTabFilteredThread:A,getSamplesSelectedStatesInFilteredThread:b,getTreeOrderComparatorInFilteredThread:C,getCallTree:k,getSourceViewLineTimings:x,getAssemblyViewAddressTimings:T,getTracedTiming:S,getTracedSelfAndTotalForSelectedCallNode:B,getStackTimingByDepth:I,getFilteredCallNodeMaxDepthPlusOne:y,getPreviewFilteredCallNodeMaxDepthPlusOne:v,getFlameGraphTiming:P,getRightClickedCallNodeIndex:N}}const Ed={},kd=zt()((e=>{const t=new Set((""+e).split(",").map((e=>+e)));return Bd(t,e)}),{limit:5}),xd=e=>{if(e in Ed)return Ed[e];const t=Bd(new Set([e]));return Ed[e]=t,t},Td=e=>{let t=null,n=null;return"number"==typeof e?t=e:n=e,null!==t?xd(t):(n=(0,mt.Nn)(n),Sd(Cn.X(n),n))},Sd=(e,t=new Set((""+e).split(",").map((e=>+e))))=>1===t.size?xd((0,mt.Nn)((0,mt.cF)(t))):kd(e);function Bd(e,t=Cn.X(e)){let n=sd(e,t);var r;return n={...n,...pd(n,0,t)},n={...n,...ld(n,0,t)},n={...n,...wd(n,0,t)},n={...n,...(r=n,{getUsefulTabs:pt(r.getThread,r.getIsNetworkChartEmptyInFullRange,r.getJsTracerTable,((e,t,n)=>{if("comparison"===e.processType)return["calltree"];let r=Br;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=>(0,Cn.aM)(t,e)))||(r=r.filter((e=>!Ir.includes(e)))),r})),getCombinedTimingRows:pt(r.getUserTimingMarkerTiming,r.getStackTimingByDepth,((e,t)=>[...e,...t]))})},n}const Id=(()=>{const e=Td(0),t={};for(const n in e)t[n]=e=>Td(zo(e))[n](e);return t})(),_d=(()=>{const e=pt(Id.getSelectedCallNodePath,Id.getFilteredThread,((e,{stringTable:t,funcTable:n})=>{if(!e.length)return"";const r=Cn.tp(e);return t.getString(n.name[r])})),t=pt(Id.getSelectedCallNodePath,Id.getFilteredThread,((e,{funcTable:t})=>{if(!e.length)return!1;const n=Cn.tp(e);return t.isJS[n]})),n=pt(Id.getSelectedCallNodePath,Id.getFilteredThread,((e,{stringTable:t,funcTable:n,resourceTable:r})=>e.length?Cn.Bu(Cn.tp(e),n,r,t):"")),r=pt(Id.getSelectedCallNodePath,Id.getCallNodeInfo,bi,Id.getPreviewFilteredThread,Id.getThread,Id.getSampleIndexOffsetFromPreviewRange,Ri,Id.getPreviewFilteredSamplesForCallTree,Id.getUnfilteredSamplesForCallTree,Ps,Cn._X),o=pt(Id.getFilteredThread,To,Id.getCallNodeInfo,Id.getSelectedCallNodeIndex,(({stackTable:e,frameTable:t,funcTable:n,stringTable:r},o,a,i)=>{if(null===o||null===i)return null;const s=a.getCallNodeTable().func[i],l=n.fileName[s];return null===l||r.getString(l)!==o?null:(0,bd.ut)(e,t,i,a)})),a=pt(o,Id.getPreviewFilteredSamplesForCallTree,bd.sZ),i=pt(Id.getFilteredThread,Id.getAssemblyViewNativeSymbolIndex,Id.getCallNodeInfo,Id.getSelectedCallNodeIndex,(({stackTable:e,frameTable:t},n,r,o)=>null===n||null===o?null:function(e,t,n,r,o){return r.isInverted()?function(e,t,n,r,o){const a=r.getCallNodeTable(),i=a.depth[n],s=a.subtreeRangeEnd[n],l=-1===a.prefix[n],c=r.getStackIndexToCallNodeIndex(),d=e.prefix,u=[],h=[];for(let r=0;r<e.length;r++){let a=null,p=null;const m=(0,Cn.Nv)(r,n,s,i,c,d);if(null!==m){const n=e.frame[m];if(t.nativeSymbol[n]===o){const e=t.address[n];-1!==e&&(p=new Set([e]),l&&(a=e))}}u.push(a),h.push(p)}return{selfAddress:u,stackAddresses:h}}(e,t,n,r,o):function(e,t,n,r,o){const a=r.getStackIndexToNonInvertedCallNodeIndex(),i=[],s=[];for(let r=0;r<e.length;r++){let l=null,c=null;const d=e.frame[r];if(a[r]===n&&t.nativeSymbol[d]===o)l=t.address[d],-1!==l&&(c=new Set([l]));else{const t=e.prefix[r];c=null!==t?s[t]:null}i.push(l),s.push(c)}return{selfAddress:i,stackAddresses:s}}(e,t,n,r,o)}(e,t,o,r,n)));return{getName:e,getIsJS:t,getLib:n,getTimingsForSidebar:r,getSourceViewStackLineInfo:o,getSourceViewLineTimings:a,getAssemblyViewStackAddressInfo:i,getAssemblyViewAddressTimings:pt(i,Id.getPreviewFilteredSamplesForCallTree,yd)}})();var Pd=n(3276),Nd=n.n(Pd);function Md(e){switch(e.meta.updateChannel){case"esr":case"release":case"beta":return!0;default:return!1}}function Fd(e){return e.markers.length>0||e.samples.stack.some((e=>null!==e))}const Rd=e=>e.publish,Dd=e=>Rd(e).checkedSharingOptions,Ld=pt(Ai,ii,((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`})),Od=pt(Dd,Ai,ui,Ko,Yo,ji,Zi,Ki,Is,No,Oi,((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,p=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=(0,mt.Nn)(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=(0,mt.Nn)(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):"number"==typeof t.counterIndex&&p.add(t.counterIndex)}}}const m="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,shouldRemoveCounters:p,shouldRemoveExtensions:!e.includeExtension,shouldRemovePreferenceValues:!e.includePreferenceValues,shouldRemovePrivateBrowsingData:!e.includePrivateBrowsingData,shouldRemoveTabsExceptTabID:m}}));let Ud=null,zd=null;const Gd=pt(Ai,(function(e){const t=vi(e);return Ud===t&&null!==zd||(Ud=t,zd=vi(e).map(((t,n)=>Td(n).getDerivedMarkerInfo(e)))),zd}),Od,Li,(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:xn(e.url,`<Page #${t}>`),favicon:null}))))}let c=!1;const d={...e,meta:{...e.meta,extensions:o.shouldRemoveExtensions?(0,vn.Ie)():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=(0,vn.SQ)(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=Mn(i,e.stringTable.getString(n),u);if(r&&(u=l.data[t]=lr(r,u)),"Network"===u.type){l.data[t]=ar(u);const e=l.name[t];s[e]=s[e].replace(/:.*/,"")}"Text"===u.type&&(l.data[t]=ir(u),u=l.data[t])}if(r.shouldRemoveExtensions&&u&&"Text"===u.type){const e=s[l.name[t]];l.data[t]=sr(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=(0,vn.qc)(),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=Yn(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;if(e.registerTime>n||e.unregisterTime&&e.unregisterTime<t)return null;u=(0,Cn.Ce)(e,t,n)}else u={...e};else u={...e};if(r.shouldRemoveUrls)for(let e=0;e<s.length;e++)s[e]=xn(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=(0,vn.ES)(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 xl.e(s),u.markers=l,Fd(u)||!Fd(e)?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,n)=>{if(o.shouldRemoveCounters.has(n))return c=!0,e;const r=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=(0,Cn.Nf)(o,e,n)}return{...o,mainThreadIndex:r}}(t,o,a);return null!==r&&e.push(r),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;d.meta.profilingStartTime=e,d.meta.profilingEndTime=t}return{profile:d,isSanitized:!0,committedRanges:o.shouldFilterToCommittedRange?[]:null,oldThreadIndexToNew:a.size!==e.threads.length||c?a:null}})),Wd=pt(Gd,(({profile:e})=>Promise.resolve().then((()=>function(e,t){const n=new jc("zee-worker");Kc(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:$c.length},[r.buffer]),$c.push({success:e,error:t})}))}(function(e){return JSON.stringify(function({threads:e,counters:t,...n}){return{...n,counters:t?t.map((({samples:e,...t})=>({...t,samples:Sc(e)}))):t,threads:e.map((({stringTable:e,samples:t,...n})=>({...n,samples:Sc(t),stringArray:e.serializeToArray()})))}}(e))}(e)))))),Hd=e=>Rd(e).upload,Vd=e=>Hd(e).phase,jd=e=>Hd(e).generation,$d=pt(Hd,(({uploadProgress:e})=>Nd()(e,.1,.95))),Kd=e=>Hd(e).error,Yd=pt($d,(e=>Vt(e,0,0,"percent"))),qd=e=>Hd(e).abortFunction,Zd=pt(Ai,Md),Xd=e=>Rd(e).prePublishedState,Jd=e=>Boolean(Xd(e)),Qd=e=>Rd(e).isHidingStaleProfile,eu=e=>Rd(e).hasSanitizedProfile,tu=pt(Mi,Ti,au,((e,t,n)=>void 0!==e&&(t.configuration&&t.configuration.features.includes("cpu")||n.some((e=>void 0!==e.samples.threadCPUDelta))))),nu=pt(xi,(e=>null!==e&&e.some((e=>"CPU"===e.category))));let ru=null,ou=null;function au(e){const t=vi(e);return ru===t&&null!==ou||(ru=t,ou=t.map(((t,n)=>Td(n).getCPUProcessedThread(e)))),ou}const iu=pt(au,bi,Ua),su=e=>e.code.sourceCodeCache,lu=pt(su,To,((e,t)=>t?e.get(t):void 0)),cu=e=>e.code.assemblyCodeCache,du=pt(Io,gi,((e,t)=>null===t||null===e?null:t.libs[e.libIndex])),uu=pt(cu,Io,du,((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)})),hu=e=>e.icons,pu=(e,t)=>null===t?"":hu(e).get(t)??"",mu=e=>e.l10n,fu=e=>mu(e).localization,gu=e=>mu(e).primaryLocale,Au=e=>mu(e).direction,bu=e=>mu(e).requestedLocales,Cu=e=>mu(e).pseudoStrategy,yu={app:s,profile:a,urlState:o,icons:u,publish:l,zippedProfiles:i,selectedThread:Id,selectedNode:_d,l10n:h,cpu:c,code:d};function vu(e,t){const n=Td(e),r=n.getActiveTabFilteredThread(t);for(const e of r.samples.stack)if(null!==e)return!1;return!(n.getActiveTabFilteredMarkerIndexesWithoutGlobals(t).length>0)}function wu(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 Eu(e,t){if(e.isMainThread){let n=(0,mt.Nn)(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)}return null==n?null:(0,mt.Nn)(t.get(n)).url}return e.name}class ku{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 xu(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 Tu(e){return{ctrlOrMeta:(e.ctrlKey||e.metaKey)&&!e.altKey,shift:e.shiftKey&&!e.altKey}}function Su(e){let t,n=-1/0;for(const[r,o]of e)o>n&&(n=o,t=r);return t}const Bu=(e,t)=>t.some((t=>e instanceof t));let Iu,_u;const Pu=new WeakMap,Nu=new WeakMap,Mu=new WeakMap;let Fu={get(e,t,n){if(e instanceof IDBTransaction){if("done"===t)return Pu.get(e);if("store"===t)return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return Lu(e[t])},set:(e,t,n)=>(e[t]=n,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function Ru(e){Fu=e(Fu)}function Du(e){return"function"==typeof e?(t=e,(_u||(_u=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(t)?function(...e){return t.apply(Ou(this),e),Lu(this.request)}:function(...e){return Lu(t.apply(Ou(this),e))}):(e instanceof IDBTransaction&&function(e){if(Pu.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)}));Pu.set(e,t)}(e),Bu(e,Iu||(Iu=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction]))?new Proxy(e,Fu):e);var t}function Lu(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(Lu(e.result)),r()},a=()=>{n(e.error),r()};e.addEventListener("success",o),e.addEventListener("error",a)}));return Mu.set(t,e),t}(e);if(Nu.has(e))return Nu.get(e);const t=Du(e);return t!==e&&(Nu.set(e,t),Mu.set(t,e)),t}const Ou=e=>Mu.get(e),Uu=["get","getKey","getAll","getAllKeys","count"],zu=["put","add","delete","clear"],Gu=new Map;function Wu(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!=typeof t)return;if(Gu.get(t))return Gu.get(t);const n=t.replace(/FromIndex$/,""),r=t!==n,o=zu.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!o&&!Uu.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 Gu.set(t,a),a}Ru((e=>({...e,get:(t,n,r)=>Wu(t,n)||e.get(t,n,r),has:(t,n)=>!!Wu(t,n)||e.has(t,n)})));const Hu=["continue","continuePrimaryKey","advance"],Vu={},ju=new WeakMap,$u=new WeakMap,Ku={get(e,t){if(!Hu.includes(t))return e[t];let n=Vu[t];return n||(n=Vu[t]=function(...e){ju.set(this,$u.get(this)[t](...e))}),n}};async function*Yu(...e){let t=this;if(t instanceof IDBCursor||(t=await t.openCursor(...e)),!t)return;const n=new Proxy(t,Ku);for($u.set(n,t),Mu.set(n,Ou(t));t;)yield n,t=await(ju.get(n)||t.continue()),ju.delete(n)}function qu(e,t){return t===Symbol.asyncIterator&&Bu(e,[IDBIndex,IDBObjectStore,IDBCursor])||"iterate"===t&&Bu(e,[IDBIndex,IDBObjectStore])}Ru((e=>({...e,get:(t,n,r)=>qu(t,n)?Yu:e.get(t,n,r),has:(t,n)=>qu(t,n)||e.has(t,n)})));const Zu="published-profiles-store",Xu="published-profiles",Ju=2;async function Qu(){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=Lu(i);return r&&i.addEventListener("upgradeneeded",(e=>{r(Lu(i.result),e.oldVersion,e.newVersion,Lu(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}(Zu,Ju,{upgrade(e,t,n,r){switch(t){case 0:e.createObjectStore(Xu,{keyPath:"profileToken"}).createIndex("originHostname","originHostname");case 1:(0,mt.Nn)(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))),Lu(n).then((()=>{}))}(Zu),new Error(_n.dx`
|
64
|
-
We tried to open an existing published profiles store database with a
|
65
|
-
smaller version than the current one. We can't do that with IndexedDB.
|
66
|
-
The only way to recover is to delete the database and create a new one,
|
67
|
-
but we don't want to do this automatically.
|
68
|
-
Until this is fixed we won't be able to store newly published profiles
|
69
|
-
or retrieve previously published profiles.
|
70
|
-
|
71
|
-
If you want to delete the database, you can do so by running 'deleteDB()'
|
72
|
-
in the console, or using the developer tools.
|
73
|
-
`);throw e}return e}async function eh(e){const t=await Qu();await t.put(Xu,e)}async function th(e){if(!e)return null;const t=await Qu();return await t.get(Xu,e)||null}function nh(e,t,n={source:"auto"},r){return(o,a)=>{if(r)for(let e=0;e<t.length;e++)if(t[e]!==r[e])throw new Error(_n.TN`
|
74
|
-
The optional expanded call node path provided to the changeSelectedCallNode
|
75
|
-
must contain the selected call node path.
|
76
|
-
`);o({type:"CHANGE_SELECTED_CALL_NODE",isInverted:Oo(a()),selectedCallNodePath:t,optionalExpandedToCallNodePath:r,threadsKey:e,context:n})}}function rh(e,t){return{type:"CHANGE_RIGHT_CLICKED_CALL_NODE",threadsKey:e,callNodePath:t}}function oh(e,t){return(n,r)=>{const o=Sd(e),a=o.getSampleIndexToNonInvertedCallNodeIndexForFilteredThread(r());if(null===t||t<0||t>=a.length)return void n(nh(e,[]));const i=a[t];if(null===i)return void n(nh(e,[]));const s=o.getCallNodeInfo(r()),l=s.getNonInvertedCallNodeTable(),c=[];let d=i;for(;-1!==d;)c.push(l.func[d]),d=l.prefix[d];s.isInverted()?n(nh(e,c.slice(0,1),{source:"auto"},c)):n(nh(e,c.reverse()))}}function ah(e){return{type:"CHANGE_SELECTED_THREAD",selectedThreadIndexes:e}}function ih(e,t){switch(t.type){case"global":{const n=Yi(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"===Lo(e)?Qs(e):null}}case"screenshots":case"visual-progress":case"perceptual-visual-progress":case"contentful-visual-progress":return null;default:throw(0,mt.lC)(n,"Unhandled GlobalTrack type.")}}case"local":{const n=Ji(e,t),{globalTrackIndex:r}=qi(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"===Lo(e)?Qs(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"bandwidth":case"process-cpu":case"power":{const t=zi(n.counterIndex).getCounter(e);return{...o,threadIndex:null,relatedThreadIndex:t.mainThreadIndex,relatedTab:null}}default:throw(0,mt.lC)(n,"Unhandled LocalTrack type.")}}default:throw(0,mt.lC)(t,"Unhandled TrackReference type")}}function sh(e,t){const n=new Set([e.relatedThreadIndex]);return{type:"SELECT_TRACK",selectedThreadIndexes:n,selectedTab:t,lastNonShiftClickInformation:{clickedTrack:e.trackReference,selection:n}}}function lh(e,t={}){return(n,r)=>{const o=ih(r(),e);if(!o)return;let a=o.relatedTab??Lo(r());const i=Td(o.relatedThreadIndex).getUsefulTabs(r());i.includes(a)||(a=i[0]),t.shift?n(function(e,t){return(n,r)=>{const o=Ei(r());let a=o&&o.clickedTrack;if(!a){const e=zo(r()),t=(0,mt.cF)(e);void 0!==t&&(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}(t,ji(r()),Zi(r())))}if(a){const i=ih(r(),a);if(i){const a=function(e,t,n){const r=ji(e),o=$o(e),a=Ko(e),i=[];(function(e,t,n){if(t.globalTrackIndex===n.globalTrackIndex){const r=Qo(e,t.pid);return r.indexOf(t.localTrackIndex)-r.indexOf(n.localTrackIndex)}const r=$o(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=Qo(e,u.pid),p=Jo(e,u.pid),m=Xi(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(sh(e,t))}}(o,a)):t.ctrlOrMeta?n(function(e,t){return(n,r)=>{const o=new Set(zo(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(sh(o,a))}}function ch(e){return(t,n)=>{const r=ji(n()),o=Zi(n()),a=vi(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(yh(i.trackIndex));break;case"local":{const{globalTrackIndex:e}=qi(n(),i.pid);t(yh(e)),t(Bh(i.pid,i.trackIndex));break}default:throw(0,mt.lC)(i.type)}t(lh(i))}else console.warn(`Failed to find a track with tid: ${e}`)}}function dh(e){return(t,n)=>{const r=Lo(n()),o=zo(n());let a,i=r;switch(e.type){case"global":{const t=us(n(),e);switch(t.type){case"tab":a=new Set([...t.threadIndexes]),"network-chart"===i&&(i=Qs(n()));break;case"screenshots":return;default:throw(0,mt.lC)(t,"Unhandled ActiveTabGlobalTrack type.")}break}case"resource":{const t=hs(n(),e);switch(t.type){case"sub-frame":case"thread":a=new Set([t.threadIndex]),"network-chart"===i&&(i=Qs(n()));break;default:throw(0,mt.lC)(t,"Unhandled ActiveTabResourceTrack type.")}break}default:throw(0,mt.lC)(e,"Unhandled TrackReference type")}const s=Td(a).getUsefulTabs(n());s.includes(i)||(i=s[0]),r===i&&o===a||t({type:"SELECT_TRACK",selectedThreadIndexes:a,selectedTab:i,lastNonShiftClickInformation:null})}}function uh(){return{type:"FOCUS_CALL_TREE"}}function hh(e){return{type:"CHANGE_RIGHT_CLICKED_TRACK",trackReference:e}}function ph(e){return{type:"SET_CONTEXT_MENU_VISIBILITY",isVisible:e}}function mh(e){return(0,gl.H)({hitType:"event",eventCategory:"timeline",eventAction:"change global track order"}),{type:"CHANGE_GLOBAL_TRACK_ORDER",globalTrackOrder:e}}function fh(e){return(t,n)=>{const r=Ko(n());if(r.has(e))return;const o=ji(n());if(o.length===r.size+1)return;const a=o[e],i=new Set(zo(n()));gh(n,i,a,e),0!==i.size&&((0,gl.H)({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 gh(e,t,n,r){if("process"===n.type){if(null!==n.mainThreadIndex&&t.delete(n.mainThreadIndex),0!==t.size)for(const r of Xi(e(),n.pid))"thread"===r.type&&t.delete(r.threadIndex);if(0===t.size){const n=Th(e,new Set([r]));if(null===n)return;t.add(n)}}}function Ah(){return e=>{(0,gl.H)({hitType:"event",eventCategory:"timeline",eventAction:"show all tracks"}),e({type:"SHOW_ALL_TRACKS"})}}function bh(e,t){return(n,r)=>{(0,gl.H)({hitType:"event",eventCategory:"timeline",eventAction:"show provided tracks"});const o=ji(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 Ch(e,t){return(n,r)=>{(0,gl.H)({hitType:"event",eventCategory:"timeline",eventAction:"hide provided tracks"});const o=Ko(r()),a=ji(r());if(!(o.size+e.size-Aa(o,e).size<a.length))return void console.warn("No other visible global track left after hiding");const i=new Set(zo(r()));for(const t of e)gh(r,i,a[t],t);for(const[e,o]of t){const t=Xi(r(),e),a=Jo(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}=qi(r(),e);null===t.mainThreadIndex&&n(fh(o))}}if(0===i.size){const n=Th(r,e,t);null!==n&&i.add(n)}0!==i.size&&n({type:"HIDE_PROVIDED_TRACKS",globalTracksToHide:e,localTracksByPidToHide:t,selectedThreadIndexes:i})}}function yh(e){return t=>{(0,gl.H)({hitType:"event",eventCategory:"timeline",eventAction:"show global track"}),t({type:"SHOW_GLOBAL_TRACK",trackIndex:e})}}function vh(e,t){return n=>{(0,gl.H)({hitType:"event",eventCategory:"timeline",eventAction:"show global track including local tracks"}),n({type:"SHOW_GLOBAL_TRACK_INCLUDING_LOCAL_TRACKS",trackIndex:e,pid:t})}}function wh(e){return(t,n)=>{const r=ji(n())[e],o=$o(n());if("process"!==r.type)return;const a=zo(n()),i=Xi(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}(0,gl.H)({hitType:"event",eventCategory:"timeline",eventAction:"isolate process"}),t({type:"ISOLATE_PROCESS",hiddenGlobalTracks:new Set(o.filter((t=>t!==e))),isolatedTrackIndex:e,selectedThreadIndexes:s})}}function Eh(e){return(t,n)=>{const r=ji(n()),o=r[e];if("screenshots"!==o.type)return;if(null===o.threadIndex)return;const a=new Set(Ko(n()));for(let t=0;t<r.length;t++)"screenshots"===r[t].type&&t!==e&&a.add(t);(0,gl.H)({hitType:"event",eventCategory:"timeline",eventAction:"isolate screenshot track"}),t({type:"ISOLATE_SCREENSHOT_TRACK",hiddenGlobalTracks:a})}}function kh(e){return(t,n)=>{const r=ji(n())[e],o=$o(n());if("process"!==r.type)return;const a=r.mainThreadIndex;null!==a&&((0,gl.H)({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(Qo(n(),r.pid))}))}}function xh(e,t){return(0,gl.H)({hitType:"event",eventCategory:"timeline",eventAction:"change local track order"}),{type:"CHANGE_LOCAL_TRACK_ORDER",pid:e,localTrackOrder:t}}function Th(e,t,n){const r=ji(e()),o=$o(e()),a=Ko(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=Xi(e(),o.pid),l=Qo(e(),o.pid),c=Jo(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 Sh(e,t){return(n,r)=>{const o=Xi(r(),e),a=Jo(r(),e),i=o[t],s=zo(r()),l=new Set(s);if("thread"===i.type&&l.delete(i.threadIndex),a.has(t))return;const{globalTrack:c,globalTrackIndex:d}=qi(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=Th(r,new Set([d]),new Map([[e,new Set([t])]]));null!==n&&l.add(n)}if(0===l.size)return}(0,gl.H)({hitType:"event",eventCategory:"timeline",eventAction:"hide local track"}),n({type:"HIDE_LOCAL_TRACK",pid:e,trackIndex:t,selectedThreadIndexes:l})}else n(fh(d))}}function Bh(e,t){return n=>{(0,gl.H)({hitType:"event",eventCategory:"timeline",eventAction:"show local track"}),n({type:"SHOW_LOCAL_TRACK",trackIndex:t,pid:e})}}function Ih(e,t){return(n,r)=>{const o=Xi(r(),e)[t],{globalTrack:a,globalTrackIndex:i}=qi(r(),e),s=$o(r()),l=Qo(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&&((0,gl.H)({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 _h=!1;function Ph(e){return _h||(_h=!0,(0,gl.H)({hitType:"event",eventCategory:"profile",eventAction:"call tree search string"})),{type:"CHANGE_CALL_TREE_SEARCH_STRING",searchString:e}}function Nh(e,t,n){return(r,o)=>{const a=Id.getExpandedCallNodeIndexes(o()),i=Id.getCallTree(o()).getAllDescendants(t);i.add(t),a.forEach((e=>{null!==e&&i.add(e)}));const s=[...i].map((e=>n.getCallNodePathFromIndex(e)));r(Mh(e,s))}}function Mh(e,t){return(n,r)=>{n({type:"CHANGE_EXPANDED_CALL_NODES",isInverted:Oo(r()),threadsKey:e,expandedCallNodePaths:t})}}function Fh(e,t,n={source:"auto"}){return{type:"CHANGE_SELECTED_MARKER",selectedMarker:t,threadsKey:e,context:n}}function Rh(e,t,n={source:"auto"}){return{type:"CHANGE_SELECTED_NETWORK_MARKER",selectedNetworkMarker:t,threadsKey:e,context:n}}function Dh(e,t){return{type:"CHANGE_HOVERED_MARKER",markerIndex:t,threadsKey:e}}function Lh(e,t){return{type:"CHANGE_RIGHT_CLICKED_MARKER",threadsKey:e,markerIndex:t}}function Oh(e){return{type:"CHANGE_MARKER_SEARCH_STRING",searchString:e}}function Uh(e){return{type:"CHANGE_NETWORK_SEARCH_STRING",searchString:e}}function zh(e){return(t,n)=>{const r=Eo(n()),o=Go(n()),a=Id.getRangeAndTransformFilteredThread(n());(0,gl.H)({hitType:"event",eventCategory:"profile",eventAction:"change implementation filter",eventLabel:e}),t({type:"CHANGE_IMPLEMENTATION_FILTER",implementation:e,threadsKey:o,transformedThread:a,previousImplementation:r})}}function Gh(e){return(0,gl.H)({hitType:"event",eventCategory:"profile",eventAction:"change call tree summary strategy",eventLabel:e}),{type:"CHANGE_CALL_TREE_SUMMARY_STRATEGY",callTreeSummaryStrategy:e}}function Wh(e){return(t,n)=>{(0,gl.H)({hitType:"event",eventCategory:"profile",eventAction:"change invert callstack"});const r=Id.getCallTree(n()),o=Id.getSelectedCallNodeIndex(n()),a=r.findHeavyPathToSameFunctionAfterInversion(o);t({type:"CHANGE_INVERT_CALLSTACK",invertCallstack:e,selectedThreadIndexes:zo(n()),newSelectedCallNodePath:a})}}function Hh(e){return t=>{(0,gl.H)({hitType:"event",eventCategory:"profile",eventAction:"toggle user timings"}),t({type:"CHANGE_SHOW_USER_TIMINGS",showUserTimings:e})}}function Vh(e){return t=>{(0,gl.H)({hitType:"event",eventCategory:"profile",eventAction:e?"show JS tracer summary":"show JS tracer stacks"}),t({type:"CHANGE_SHOW_JS_TRACER_SUMMARY",showSummary:e})}}function jh(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})(mi(n()),e)||t({type:"UPDATE_PREVIEW_SELECTION",previewSelection:e})}}function $h(e,t){return t===e&&(t+=1e-6),{type:"COMMIT_RANGE",start:e,end:t}}function Kh(e){return(t,n)=>{t({type:"POP_COMMITTED_RANGES",firstPoppedFilterIndex:e,committedRange:wo(n()).length!==e&&ui(n())})}}function Yh(e,t){return(n,r)=>{const o=Sd(e),a=o.getRangeAndTransformFilteredThread(r()),i=o.getCallNodeInfo(r());n({type:"ADD_TRANSFORM_TO_STACK",threadsKey:e,transform:t,transformedThread:a,callNodeInfo:i}),(0,gl.H)({hitType:"event",eventCategory:"profile",eventAction:"add transform",eventLabel:t.type})}}function qh(e,t,n){return(r,o)=>{const a=Sd(e).getReservedFunctionsForResources(o()),i=(0,mt.Nn)((0,mt.Nn)(a).get(t));r(Yh(e,{type:"collapse-resource",resourceIndex:t,collapsedFuncIndex:i,implementation:n}))}}function Zh(e){return(t,n)=>{t({type:"POP_TRANSFORMS_FROM_STACK",threadsKey:Go(n()),firstPoppedFilterIndex:e})}}function Xh(e){return{type:"CHANGE_TIMELINE_TYPE",timelineType:e}}function Jh(e){return async(t,n)=>{if(t({type:"CHANGE_PROFILE_NAME",profileName:e}),window.indexedDB){const t=bo(n());await async function(e,t){const n=await th(e);if(n&&n.name!==t){const e=Lr({...Ur(new URL(n.urlPath,window.location.href)),profileName:t}),r={...n,name:t,urlPath:e};await eh(r)}}(t,e||"")}(0,gl.H)({hitType:"event",eventCategory:"profile",eventAction:"change profile name"})}}function Qh(e){return{type:"SET_DATA_SOURCE",dataSource:e}}function ep(e){return{type:"CHANGE_MOUSE_TIME_POSITION",mouseTimePosition:e}}function tp(e,t){return{type:"CHANGE_TABLE_VIEW_OPTIONS",tab:e,tableViewOptions:t}}function np(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 rp(){return{type:"OPEN_ASSEMBLY_VIEW"}}function op(){return{type:"CLOSE_ASSEMBLY_VIEW"}}function ap(){return(e,t)=>{e({type:"CLOSE_BOTTOM_BOX_FOR_TAB",tab:Lo(t())})}}function ip(e,t,n){return(r,o)=>{if(e.metaKey||e.ctrlKey||e.altKey)return;const a=Sd(t),i=a.getThread(o()),s=a.getCallNodeInfo(o()),l=s.getCallNodeTable(),c=Eo(o()),d=Oo(o()),u=s.getCallNodePathFromIndex(n),h=l.func[n],p=l.category[n];switch(e.key){case"F":r(Yh(t,{type:"focus-subtree",callNodePath:u,implementation:c,inverted:d}));break;case"f":r(Yh(t,{type:"focus-function",funcIndex:h}));break;case"M":r(Yh(t,{type:"merge-call-node",callNodePath:u,implementation:c}));break;case"m":r(Yh(t,{type:"merge-function",funcIndex:h}));break;case"d":r(Yh(t,{type:"drop-function",funcIndex:h}));break;case"C":{const{funcTable:e}=i,n=e.resource[h];r(qh(t,n,c));break}case"r":xr(l,h)&&r(Yh(t,{type:"collapse-recursion",funcIndex:h}));break;case"R":kr(l,h)&&r(Yh(t,{type:"collapse-direct-recursion",funcIndex:h,implementation:c}));break;case"c":r(Yh(t,{type:"collapse-function-subtree",funcIndex:h}));break;case"g":r(Yh(t,{type:"focus-category",category:p}))}}}function sp(e){return{type:"FATAL_ERROR",error:e}}function lp(e){return{type:"ICON_HAS_LOADED",iconWithClassName:e}}function cp(e){return{type:"ICON_IN_ERROR",icon:e}}const dp=new Set;let up,hp=0;function pp(e){return t=>async function(e){if(dp.has(e))return Promise.resolve({type:"cached"});dp.add(e);const t="favicon-"+ ++hp;return new Promise((n=>{const r=new Image;r.src=e,r.referrerPolicy="no-referrer",r.onload=()=>{n({type:"loaded",iconWithClassName:{icon:e,className:t}})},r.onerror=()=>{n({type:"error"})}}))}(e).then((n=>{switch(n.type){case"loaded":t(lp(n.iconWithClassName));break;case"error":t(cp(e));break;case"cached":break;default:throw new Error(`Unknown icon load result ${n.type}`)}}))}function mp(e){return t=>{const n=[];for(const t of e){if(!t||dp.has(t))continue;dp.add(t);const e="favicon-"+ ++hp;n.push({icon:t,className:e})}t({type:"ICON_BATCH_ADD",icons:n})}}function fp(){hp=0}function gp(e){return{type:"TRIGGER_LOADING_FROM_URL",profileUrl:e}}function Ap(){return{type:"WAITING_FOR_PROFILE_FROM_BROWSER"}}function bp(e,t={},n=!1){return async r=>{if(0===e.threads.length)return console.error("This profile has no threads.",e),void r(sp(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(Cp(t.browserConnection??null,t.timelineTrackOrganization,t.skipSymbolication))}}function Cp(e=null,t,n){return async(r,o)=>{if(n)throw new Error("Please do not use skipSymbolication outside of tests");const a=gi(o());if(null===a||"PROFILE_LOADED"!==Ys(o()).phase)return;const i=Uo(o()),s=a.pages;switch(t||(t=No(o())),t.type){case"full":r(yp(a,i));break;case"active-tab":{const e=Oi(o());r(s&&null!==e?Ep(a,i,t.tabID):yp(a,i));break}case"origins":r(s?wp(a,s,i):yp(a,i));break;default:throw(0,mt.lC)(t,"Unhandled TimelineTrackOrganization type.")}let l=null;e&&s&&s.length>0&&(l=Rp(r,s,e));let c=null;if(!n&&!1===a.meta.symbolicated){const t=Mp(r,ga(o()),e);t&&(c=Fp(r,a,t))}await Promise.all([l,c])}}function yp(e,t){return(n,r)=>{const o=null!==t,a=Vi(r()),i=xa(e,o?Zo(r()):null,a),s=ka(e,i,Li(r())),l=Vo(r()),c=Ta(i,o?$o(r()):null,l),d=Ea(o?qo(r()):null,s,l,e),u={globalTracks:i,globalTrackOrder:c,localTracksByPid:s,localTrackOrderByPid:d};let h=null;const p=jo(r());null!==p?h=Ia(u,p,e):o&&(h=function(e,t,n){const r=Aa(new Set(e.globalTrackOrder),t),o=new Map;for(const[t,a]of e.localTrackOrderByPid){const i=new Set(a),s=Aa(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===Na(e,a).length?null:a}(u,Ko(r()),Yo(r()))),null===h&&(h=_a(u,e,gs(r())));const m=Sa(t,Na(u,h),e);let f=null;o||(f=(0,Cn.Pr)(e));let g=Lo(r());if(Ir.includes(g)){let t=!1;for(const n of m){const r=e.threads[n],{samples:o,jsAllocations:a,nativeAllocations:i}=r;if(t=[o,a,i].some((e=>(0,Cn.aM)(e,r))),t)break}t||(g="marker-chart")}Rr((()=>{n({type:"VIEW_FULL_PROFILE",selectedThreadIndexes:m,selectedTab:g,globalTracks:i,globalTrackOrder:c,localTracksByPid:s,localTrackOrderByPid:d,timelineType:f,...h})}))}}function vp(e){if(e.startsWith("chrome://"))return e;try{const t=new URL(e);return"null"===t.origin?e:t.origin}catch{return e}}function wp(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=(0,mt.Nn)(a[n]);d.set(r.pid,t),u.set(t,t),c.push({type:"origin",innerWindowID:t,threadIndex:n,page:o,origin:vp(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=(0,mt.Nn)(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),(0,mt.Nn)(c.find((e=>e.innerWindowID===i))).children.push({type:"sub-origin",innerWindowID:n,threadIndex:r,origin:vp(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?(0,mt.Nn)(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 Ep(e,t,n){return(r,o)=>{const a=null!==t,i=Cs(o());if(0===i.length)return void r(yp(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;if(l.isMainThread){if(wu(l,i))r.push(t);else if(!vu(t,n)){const e=Eu(l,s);null!==e&&o.push({type:"sub-frame",threadIndex:t,name:e})}}else if(!vu(t,n)){const e=Eu(l,s);null!==e&&o.push({type:"thread",threadIndex:t,name:e})}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:(0,Cn.X)(l)},d=(0,Cn.X)(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=(0,Cn.Pr)(e)),r({type:"VIEW_ACTIVE_TAB_PROFILE",activeTabTimeline:s,selectedThreadIndexes:t,tabID:n,timelineType:l})}}function kp(e){return(t,n)=>{const r=Ai(n()),o=null;switch(t({type:"DATA_RELOAD"}),e.type){case"full":t(yp(r,o));break;case"active-tab":t(Ep(r,o,e.tabID));break;case"origins":t(wp(r,(0,mt.Nn)(r.pages,"There was no page information in the profile."),o));break;default:throw(0,mt.lC)(e,"Unhandled TimelineTrackOrganization type.")}}}function xp(){return async(e,t)=>{const n=Mp(e,ga(t()),null),r=Ai(t());if(!n)throw new Error("There was no symbol store when attempting to re-symbolicate.");await Fp(e,r,n)}}function Tp(e,t={}){return async n=>{await n(bp(e,t,!1))}}function Sp(e){return{type:"REQUESTING_SYMBOL_TABLE",requestedLib:e}}function Bp(e){return{type:"RECEIVED_SYMBOL_TABLE_REPLY",requestedLib:e}}function Ip(){return{type:"START_SYMBOLICATING"}}function _p(){return{type:"DONE_SYMBOLICATING"}}function Pp(e){return(t,n)=>{const{threads:r}=Ai(n()),o=new Map,a=r.map(((t,n)=>{const r=e.get(n);if(void 0===r)return t;const{thread:a,oldFuncToNewFuncsMap:i}=function(e,t){const n=new Map,r=e.frameTable.length,o=new Uint8Array(r),a=new Map;let i=e;for(const e of t)i=Va(i,e,n,o,a);return i=function(e,t,n){if(0===n.size)return e;const{stackTable:r}=e,o=(0,vn.WG)(),a=new Int32Array(r.length);for(let e=0;e<r.length;e++){const i=r.frame[e],s=r.prefix[e],l=null===s?-1:a[s];if(0!==t[i]){a[e]=l;continue}const c=r.category[e],d=r.subcategory[e];let u=n.get(i);void 0===u&&(u=[i]);let h=-1!==l?l:null;for(let e=0;e<u.length;e++){const t=u[e],n=o.length;o.frame.push(t),o.prefix.push(h),o.category.push(c),o.subcategory.push(d),o.length++,h=n}a[e]=h??-1}return(0,Cn.DR)(e,o,(e=>{if(null===e)return null;const t=a[e];return-1!==t?t:null}))}(i,o,a),{thread:i,oldFuncToNewFuncsMap:n}}(t,r);return o.set(n,i),a}));t({type:"BULK_SYMBOLICATION",oldFuncToNewFuncsMaps:o,symbolicatedThreads:a})}}up="object"==typeof window&&window.requestIdleCallback?window.requestIdleCallback:"object"==typeof process&&process.nextTick?process.nextTick:e=>setTimeout(e,0);const Np=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||(up((()=>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(Pp(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 Mp(e,t,n){if(!window.indexedDB)return null;async function r(t,n,r){for(const{lib:t}of n)e(Sp(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(Bp(t))}}const o=new Mc("perf-html-async-storage",{requestSymbolsFromServer:e=>r("symbol server",e,(async(e,n)=>(await fetch(t+e,{body:n,method:"POST",mode:"cors",headers:new Headers({"User-Agent":`FirefoxProfiler/1.0 (+${location.origin})`})})).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(Sp(t));try{const a=await n.getSymbolTable(r,o);return e(Bp(t)),a}catch(n){throw e(Bp(t)),n}}});return o}async function Fp(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]!==vn.AU.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 Ha))throw t;console.warn(t)}))}(t,n,((t,n)=>{r.push(new Promise((r=>{Np.enqueueSingleSymbolicationStep(e,t,n,r)})))})),await Promise.all(r),e({type:"DONE_SYMBOLICATING"})}async function Rp(e,t,n){const r=[...t],o=await n.getPageFavicons(r.map((e=>e.url)));if(r.length!==o.length)return;const a=o.map((e=>e?async function(e,t="application/octet-stream"){return new Promise(((n,r)=>{const o=Object.assign(new FileReader,{onload:()=>n(o.result),onerror:()=>r(o.error)});o.readAsDataURL(new Blob([e],{type:t}))}))}(e.data,e.mimeType):Promise.resolve(null))),i=await Promise.all(a);for(let e=0;e<o.length;e++)i[e]&&(r[e]={...r[e],favicon:i[e]});e(mp(i)),e({type:"UPDATE_PAGES",newPages:r})}function Dp(e){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(0,mt.lC)(e.status)}return e.browserConnection}function Lp(e,t=!1){return async n=>{try{const r=Dp(e);n({type:"WAITING_FOR_PROFILE_FROM_BROWSER"});const o=await r.getProfile({onThirtySecondTimeout:()=>{n(Gp(new Jc(_n.TN`
|
77
|
-
We were unable to connect to the browser within thirty seconds.
|
78
|
-
This might be because the profile is big or your machine is slower than usual.
|
79
|
-
Still waiting...
|
80
|
-
`)))}}),a=await async function(e){return"[object ArrayBuffer]"===Object.prototype.toString.call(e)?qp(e):e}(o),i=a.meta;if(i.configuration&&i.configuration.features.includes("power"))try{await Promise.all([r.getExternalPowerTracks(i.startTime+i.profilingStartTime,i.startTime+i.profilingEndTime).then((e=>function(e,t){for(const n of e){const{samples:e}=n,r=e.schema.time;for(const n of e.data)n[r]=Math.round(1e6*(n[r]+t.meta.profilingStartTime))/1e6;t.counters||(t.counters=[]),t.counters.push(n)}}(e,a))),r.getExternalMarkers(i.startTime+i.profilingStartTime,i.startTime+i.profilingEndTime).then((e=>function(e,t){if(!e.markerSchema||!e.categories||!e.markers)return;for(const n of e.markerSchema){const e=t.meta.markerSchema.find((e=>e.name===n.name));e?JSON.stringify(n)!==JSON.stringify(e)&&console.error(`Existing marker schema for ${n.name} doesn't match`,n,e):t.meta.markerSchema.push(n)}const n=new Map;for(let r=0;r<e.categories.length;++r){const o=e.categories[r];let a=t.meta.categories.findIndex((e=>e.name===o.name));-1===a&&(a=t.meta.categories.push(o)-1),n.set(r,a)}const r=t.threads.find((e=>"GeckoMain"===e.name&&"default"===e.processType));if(!r)throw new Error("Could not find the main thread in the gecko profile");const{data:o,schema:a}=e.markers;for(const e of Object.keys(r.markers.schema))if(!(e in a)||r.markers.schema[e]!==a[e])throw new Error("Marker table schema in the gecko profile and the external marker data do not match");for(const e of o){const o=e[a.name];let i=r.stringTable.indexOf(o);-1===i&&(i=r.stringTable.length,r.stringTable.push(o));const s=e;s[a.name]=i,s[a.startTime]&&(s[a.startTime]=s[a.startTime]+t.meta.profilingStartTime),s[a.endTime]&&(s[a.endTime]=s[a.endTime]+t.meta.profilingStartTime),s[a.category]=n.get(s[a.category])||0,r.markers.data.push(s)}}(e,a)))])}catch(e){console.error(e)}const s=Tc(a);await n(bp(s,{browserConnection:r},t))}catch(e){n(sp(e)),console.error(e)}}}function Op(){return{type:"WAITING_FOR_PROFILE_FROM_STORE"}}function Up(e){return{type:"WAITING_FOR_PROFILE_FROM_URL",profileUrl:e}}function zp(e){return{type:"RECEIVE_ZIP_FILE",zip:e}}function Gp(e){return{type:"TEMPORARY_ERROR",error:e}}function Wp(e){return new Promise((t=>setTimeout(t,e)))}function Hp(e,t){if(!navigator.userAgent.match(/Safari\/\d+\.\d+/))return!1;const n=new URL(e);return"TypeError"===t.name&&"http:"===n.protocol&&Zr(n)&&"https:"===location.protocol}class Vp extends Error{constructor(...e){super(...e),this.name="SafariLocalhostHTTPLoadError"}}async function jp(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(Hp(n,e))throw new Vp;throw e}if(e.ok)return Kp(n,e,o);if(403!==e.status)throw new Error(_n.TN`
|
81
|
-
Could not fetch the profile on remote server.
|
82
|
-
Response was: ${e.status} ${e.statusText}.
|
83
|
-
`);if(10==t++)break;r(new Jc("Profile not found on remote server.",{count:t,total:11})),await Wp(1e3)}throw new Error(_n.TN`
|
84
|
-
Could not fetch the profile on remote server:
|
85
|
-
still not found after ${10} seconds.
|
86
|
-
`)}function $p(e,t){return"application/zip"===t||"application/json"===t?t:e.match(/\.zip$/)?"application/zip":e.match(/\.json/)?"application/json":null}async function Kp(e,t,n){const r=$p(e,t.headers.get("content-type"));switch(r){case"application/zip":return{responseType:"ZIP",zip:await Yp(t,n)};case"application/json":case null:return{responseType:"PROFILE",profile:await Zp(t,n,r)};default:throw(0,mt.lC)(r)}}async function Yp(e,t){const n=await e.arrayBuffer();try{return await bl().loadAsync(n)}catch(n){const r="Unable to open the archive 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 qp(e){let t=new Uint8Array(e);qc(t)&&(t=await Yc(t));const n=new TextDecoder;return JSON.parse(n.decode(t))}async function Zp(e,t,n){let r=null;try{return r=await e.arrayBuffer(),await qp(r)}catch(o){let a;if(o&&"object"==typeof o&&"AbortError"===o.name)a="The network request to load the profile was aborted.";else if("application/json"===n)a="The profile’s JSON could not be decoded.";else{if(null===n&&null!==r)return r;a=_n.TN`
|
87
|
-
The profile could not be downloaded and decoded. This does not look like a supported file
|
88
|
-
type.
|
89
|
-
`}throw t(a),t("JSON parsing error:",o),t("Fetch response:",e),new Error(`${a} The full error information has been printed out to the DevTool’s console.`)}}function Xp(e){return`https://storage.googleapis.com/${In.d7}/${e}`}function Jp(e,t=!1){return Qp(Xp(e),t)}function Qp(e,t=!1){return async function(n){n(Up(e));try{const r=await jp({url:e,onTemporaryError:e=>{n(Gp(e))}});switch(r.responseType){case"PROFILE":{const e=r.profile,o=await Ic(e);if(void 0===o)throw new Error("Unable to parse the profile.");await n(bp(o,{},t));break}case"ZIP":{const e=r.zip;await n(zp(e));break}default:throw(0,mt.lC)(r.responseType,"Expected to receive an archive or profile from _fetchProfile.")}}catch(e){n(sp(e))}}}function em(){return{type:"WAITING_FOR_PROFILE_FROM_FILE"}}function tm(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 nm(e,t,n=tm){return async r=>{r({type:"WAITING_FOR_PROFILE_FROM_FILE"});try{if("application/zip"===$p(e.name,e.type)){const t=await n(e).asArrayBuffer(),o=await bl().loadAsync(t);await r(zp(o))}else{let o=await n(e).asArrayBuffer();const a=new Uint8Array(o);qc(a)&&(o=(await Yc(a)).buffer);const i=await Ic(o);if(void 0===i)throw new Error("Unable to parse the profile.");await Dr((async()=>{await r(Tp(i,{browserConnection:t}))}))}}catch(e){r(sp(e))}}}function rm(e){return async t=>{try{const n=await Ic(e);if(void 0===n)throw new Error("Unable to parse the profile.");await Dr((async()=>{await t(Tp(n))}))}catch(e){t(sp(e))}}}function om(e,t=!1){return async n=>{n(Up());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=`${In.HT}/expand`,n={shortUrl:e},r=await fetch(t,{method:"POST",headers:{Accept:Zc,"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)),Ur(new URL(e)))))),o=r.map((async({dataSource:e,hash:t,profileUrl:r})=>{switch(e){case"public":r=Xp(t);break;case"from-url":break;default:throw new Error("Only public uploaded profiles are supported by the comparison function.")}const o=await jp({url:r,onTemporaryError:e=>{n(Gp(e))}});if("PROFILE"!==o.responseType)throw new Error("Expected to receive a profile from _fetchProfile");return Ic(o.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=(0,vn.Z)();for(const[t,r]of Object.entries(e[0].meta))e.every((e=>e.meta[t]===r))&&(n.meta[t]=r);n.meta.markerSchema=e[0].meta.markerSchema,n.meta.categories=e[0].meta.categories,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=(0,mt.cF)(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:Rc(m.stackTable.category,o[r])},m.frameTable={...m.frameTable,category:Oc(m.frameTable.category,o[r])},m.resourceTable={...m.resourceTable,lib:Dc(m.resourceTable.lib,i[r])},m.nativeSymbols={...m.nativeSymbols,libIndex:Lc(m.nativeSymbols.libIndex,i[r])};const{markerTable:f}=Vc(p.threads,m);m.markers={...m.markers,...f};const g=(0,Cn.WT)(p).start,A=d.committedRanges&&d.committedRanges.pop();A&&(c||(c=$n(p.threads)),m=Fc(m,Kn(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}`;let b=0;if(m.samples.length)b=-m.samples.time[0];else if(m.markers.length)for(const e of m.markers.startTime)if(null!==e){b=-e;break}m.samples=vc(m.samples,b),m.markers=kc(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=(0,Cn.GP)(m,p.meta.interval).end),n.threads.push(m)}return 2===e.length&&n.threads.push(function(e){const t=new xl.e,n=e.map((e=>e.thread)),{resourceTable:r,translationMaps:o}=Uc(t,n),{nativeSymbols:a,translationMaps:i}=zc(t,n),{funcTable:s,translationMaps:l}=Gc(o,t,n),{frameTable:c,translationMaps:d}=Wc(l,i,t,n),{stackTable:u,translationMaps:h}=Hc(d,n),{samples:p}=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={...(0,vn.cy)(),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(_n.dx`
|
90
|
-
We couldn't find the stack of sample ${h} in the translation map.
|
91
|
-
This is a programming error.
|
92
|
-
`);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(_n.dx`
|
93
|
-
We couldn't find the stack of sample ${p} in the translation map.
|
94
|
-
This is a programming error.
|
95
|
-
`);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}}(h,e);return{processType:"comparison",processStartupTime:Math.min(n[0].processStartupTime,n[1].processStartupTime),processShutdownTime:Math.max(n[0].processShutdownTime||0,n[1].processShutdownTime||0)||null,registerTime:Math.min(n[0].registerTime,n[1].registerTime),unregisterTime:Math.max(n[0].unregisterTime||0,n[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:p,markers:(0,vn.qc)(),stackTable:u,frameTable:c,stringTable:t,funcTable:s,resourceTable:r,nativeSymbols:a}}([{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(bp(i,{transformStacks:l,implementationFilter:c},t))}catch(e){n(sp(e))}}}function am(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=Or(a);switch("from-file"===i&&(i="none"),n(Qh(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(Lp(t,!0));break;case"public":await n(Jp(o[1],!0));break;case"from-url":await n(Qp(decodeURIComponent(o[1]),!0));break;case"compare":{const t=Ot.parse(e.search.substr(1),{arrayFormat:"bracket"});Array.isArray(t.profiles)&&await n(om(t.profiles,!0));break}case"from-post-message":window.addEventListener("message",(e=>{const{data:t}=e;if(console.log("Received postMessage",t),t&&"object"==typeof t)switch(t.name){case"inject-profile":n(rm(t.profile));break;case"ready:request":console.log("Responding via postMessage that the profiler is ready."),(e.source??window).postMessage({name:"ready:response"},"*");break;default:console.log("Unknown post message",t)}}));break;case"uploaded-recordings":case"none":case"from-file":case"local":case"unpublished":break;default:throw(0,mt.lC)(i,`Unknown dataSource ${i}.`)}return gi(r())}}function im(e){return(t,n)=>{const r=Ai(n()),o=Vi(n()),a=xa(r,e,o),i=ka(r,a,Li(n())),s=Vo(n()),l=Ta(a,null,s),c=Ea(null,i,s,r),d={globalTracks:a,globalTrackOrder:l,localTracksByPid:i,localTrackOrderByPid:c};let u=null;const h=jo(n());null!==h&&(u=Ia(d,h,r)),null===u&&(u=_a(d,r,gs(n())));const p=Sa(null,Na(d,u),r);let m=Lo(n());if(Ir.includes(m)){let e=!1;for(const t of p){const n=r.threads[t],{samples:o,jsAllocations:a,nativeAllocations:i}=n;if(e=[o,a,i].some((e=>(0,Cn.aM)(e,n))),e)break}e||(m="marker-chart")}t({type:"CHANGE_TAB_FILTER",tabID:e,selectedThreadIndexes:p,selectedTab:m,globalTracks:a,globalTrackOrder:l,localTracksByPid:i,localTrackOrderByPid:c,...u})}}function sm(e){return(t,n)=>{Lo(n())!==e&&((0,gl.H)({hitType:"pageview",page:e}),t({type:"CHANGE_SELECTED_TAB",selectedTab:e}))}}function lm(e){return{type:"CHANGE_PROFILES_TO_COMPARE",profiles:e}}function cm(){return{type:"START_FETCHING_PROFILES"}}function dm(){return(e,t)=>{e({type:"URL_SETUP_DONE"});const n=Ao(t());(0,gl.H)({hitType:"pageview",page:"none"===n?"home":Lo(t())}),(0,gl.H)({hitType:"event",eventCategory:"datasource",eventAction:n})}}function um(e){return{type:"ROUTE_NOT_FOUND",url:e}}function hm(e,t){return{type:"CHANGE_SIDEBAR_OPEN_STATE",tab:e,isOpen:t}}function pm(){return{type:"INCREMENT_PANEL_LAYOUT_GENERATION"}}function mm(){return{type:"HAS_ZOOMED_VIA_MOUSEWHEEL"}}function fm(e,t,n){return r=>{let o;try{o=Ur(e,t)}catch(t){return"UrlUpgradeError"===t.name?void r(sp(t)):(console.error(t),void r(um(e.pathname+e.search)))}"from-file"===o.dataSource&&(o=null),Rr((()=>{r(gm(o)),r(Cp(n)),r(dm())}))}}function gm(e){return{type:"UPDATE_URL_STATE",newUrlState:e}}function Am(e,t){return(n,r)=>{el(r())[e]!==t&&n({type:"UPDATE_TRACK_THREAD_HEIGHT",height:t,threadsKey:e})}}function bm(){return{type:"DISMISS_NEWLY_PUBLISHED"}}function Cm(){return{type:"START_DRAGGING"}}function ym(){return{type:"STOP_DRAGGING"}}function vm(){return{type:"REGISTER_DRAG_AND_DROP_OVERLAY"}}function wm(){return{type:"UNREGISTER_DRAG_AND_DROP_OVERLAY"}}function Em(){return(e,t)=>{const n=Mo(t());let r=zo(t());if(n){const e=is(t());r=new Set([...e.threadIndexes])}e({type:"TOGGLE_RESOURCES_PANEL",selectedThreadIndexes:r})}}function km(){return(e,t)=>{if(al(t()))return console.error("Tried to enable the event delay tracks, but they are already enabled."),!1;if(void 0===Id.getSamplesTable(t()).eventDelay)return console.error(_n.TN`
|
96
|
-
Tried to enable the event delay tracks, but this profile does
|
97
|
-
not have eventDelay values. It is likely an older profile.
|
98
|
-
`),!1;const n=Zi(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}(vi(t()),n);return e({type:"ENABLE_EVENT_DELAY_TRACKS",localTracksByPid:r,localTrackOrderByPid:Ea(qo(t()),r,null)}),!0}}function xm(){return(e,t)=>il(t())?(console.error("Tried to enable the CPU graph tracks, but they are already enabled."),!1):tu(t())?(e({type:"ENABLE_EXPERIMENTAL_CPU_GRAPHS"}),!0):(console.error(_n.TN`
|
99
|
-
Tried to enable the CPU graph tracks, but this profile does
|
100
|
-
not have threadCPUDelta values. It is likely an older profile.
|
101
|
-
`),!1)}function Tm(){return(e,t)=>{if(sl(t()))return console.error("Tried to enable the process CPU tracks, but they are already enabled."),!1;if(!tu(t())&&nu(t()))return console.error(_n.TN`
|
102
|
-
Tried to enable the process CPU tracks, but this profile does
|
103
|
-
not have threadCPUDelta values or process CPU threads.
|
104
|
-
`),!1;const n=Zi(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}(xi(t()),n);return e({type:"ENABLE_EXPERIMENTAL_PROCESS_CPU_TRACKS",localTracksByPid:r,localTrackOrderByPid:Ea(qo(t()),r,null)}),!0}}function Sm(e){return{type:"SET_CURRENT_PROFILE_UPLOADED_INFORMATION",uploadedProfileInformation:e}}function Bm(){return{type:"PROFILE_REMOTELY_DELETED"}}function Im(e){return{type:"UPDATE_BROWSER_CONNECTION_STATUS",browserConnectionStatus:e}}function _m(e,t){return{type:"TOGGLE_SIDEBAR_OPEN_CATEGORY",kind:e,category:t}}async function Pm(){return(await Rm({type:"STATUS_QUERY"})).version||0}const Nm="font-weight: bold; color: #0a6";let Mm=0;class Fm extends Error{constructor(e){super(`${e.error} (errno: ${e.errno})`),this.name="WebChannelError",this.errno=void 0,this.errno=e.errno}}function Rm(e){const t=Mm++;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}`,Nm),window.removeEventListener("WebChannelMessageToContent",e,!0),r(new Fm(o)))}else r(new Error("A malformed WebChannel event was received.")),console.error("[webchannel] %cmalformed event received",Nm,o)}),!0),o={requestId:t,...e},window.dispatchEvent(new CustomEvent("WebChannelMessageToChrome",{detail:JSON.stringify({id:"profiler.firefox.com",message:o})}))}))}class Dm{constructor(e){this._webChannelSupportsGetProfileAndSymbolication=void 0,this._webChannelSupportsGetExternalPowerTracks=void 0,this._webChannelSupportsGetExternalMarkers=void 0,this._webChannelSupportsGetPageFavicons=void 0,this._geckoProfiler=void 0,this._webChannelSupportsGetProfileAndSymbolication=e>=1,this._webChannelSupportsGetExternalPowerTracks=e>=2,this._webChannelSupportsGetExternalMarkers=e>=3,this._webChannelSupportsGetPageFavicons=e>=4}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 Rm({type:"GET_PROFILE"})}();return clearTimeout(t),e}const n=await this._getConnectionViaFrameScript(),r=await n.getProfile();return clearTimeout(t),r}async getExternalMarkers(e,t){return this._webChannelSupportsGetExternalMarkers?async function(e,t){return Rm({type:"GET_EXTERNAL_MARKERS",startTime:e,endTime:t})}(e,t):[]}async getExternalPowerTracks(e,t){return this._webChannelSupportsGetExternalPowerTracks?async function(e,t){return Rm({type:"GET_EXTERNAL_POWER_TRACKS",startTime:e,endTime:t})}(e,t):[]}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 Rm({type:"QUERY_SYMBOLICATION_API",path:e,requestJson:t})}(e,t)}async getSymbolTable(e,t){if(this._webChannelSupportsGetProfileAndSymbolication)return async function(e,t){return Rm({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")}async getPageFavicons(e){return this._webChannelSupportsGetPageFavicons?async function(e){return Rm({type:"GET_PAGE_FAVICONS",pageUrls:e})}(e):[]}}class Lm extends Error{constructor(...e){super(...e),this.name="TimeoutError"}}async function Om(e=navigator.userAgent){if(!function(e){return e.includes("Firefox/")||e.includes("Thunderbird/")}(e))return{status:"NOT_FIREFOX"};try{const e=await Promise.race([Pm(),(5e3,new Promise(((e,t)=>{setTimeout((()=>{t(new Lm("Timed out after 5000ms"))}),5e3)})))]);return{status:"ESTABLISHED",browserConnection:new Dm(e)}}catch(e){return e instanceof Lm?{status:"TIMED_OUT"}:{status:"DENIED",error:new Error(_n.TN`
|
105
|
-
This profiler instance was unable to connect to the
|
106
|
-
WebChannel. This usually means that it’s running on a
|
107
|
-
different host from the one that is specified in the
|
108
|
-
preference devtools.performance.recording.ui-base-url. If
|
109
|
-
you would like to capture new profiles with this instance, you can go to about:config
|
110
|
-
and change the preference. Error: ${e.name}: ${e.message}
|
111
|
-
`)}}}var Um=n(717),zm={};zm.styleTagTransform=M(),zm.setAttributes=B(),zm.insert=T().bind(null,"head"),zm.domAPI=k(),zm.insertStyleElement=P(),w()(Um.A,zm),Um.A&&Um.A.locals&&Um.A.locals;class Gm extends J.PureComponent{render(){const{children:e,additionalMessage:t,showLoader:n,showBackHomeLink:r,title:o}=this.props;return J.createElement("div",{className:"rootMessageContainer"},J.createElement("div",{className:"rootMessage"},J.createElement(de,{id:"ProfileRootMessage--title"},J.createElement("h1",{className:"rootMessageTitle"},"Firefox Profiler")),o?J.createElement("h2",null,o):null,J.createElement("div",{className:"rootMessageText"},J.createElement("p",null,e)),t?J.createElement("div",{className:"rootMessageAdditional"},t):null,r?J.createElement("div",{className:"rootBackHomeLink"},J.createElement("a",{href:"/"},J.createElement(de,{id:"ProfileRootMessage--additional"},"Back to home"))):null,n?J.createElement("div",{className:"loading"},J.createElement("div",{className:"loading-div loading-div-1 loading-row-1"}),J.createElement("div",{className:"loading-div loading-div-2 loading-row-2"}),J.createElement("div",{className:"loading-div loading-div-3 loading-row-3"}),J.createElement("div",{className:"loading-div loading-div-4 loading-row-3"}),J.createElement("div",{className:"loading-div loading-div-5 loading-row-4"}),J.createElement("div",{className:"loading-div loading-div-6 loading-row-4"}),J.createElement("div",{className:"loading-div loading-div-7 loading-row-4"}),J.createElement("div",{className:"loading-div loading-div-8 loading-row-4"}),J.createElement("div",{className:"loading-div loading-div-9 loading-row-4"}),J.createElement("div",{className:"loading-div loading-div-10 loading-row-4"})):null))}}const Wm=Object.freeze({"from-browser":"ProfileLoaderAnimation--loading-unpublished","from-post-message":"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 Hm extends J.PureComponent{render(){const{view:e,dataSource:t}=this.props,n=Wm[t],r=n||"ProfileLoaderAnimation--loading-view-not-found",o=Boolean(n),a=Boolean(e.additionalData&&e.additionalData.message);return J.createElement(de,{id:r,attrs:{title:!0},elems:{a:J.createElement("span",null)}},J.createElement(Gm,{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 J.createElement(J.Fragment,null,t?J.createElement("p",null,t):null,n?J.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 Vm=lt({mapStateToProps:e=>({view:Ys(e),dataSource:Ao(e)}),component:Hm});class jm extends J.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=Ur(window.location)}catch(e){return console.error(e),void t(window.location.pathname+window.location.search)}const o=["from-browser","from-post-message","unpublished"],a=o.includes(n.dataSource)&&"public"===r.dataSource||"public"===n.dataSource&&o.includes(r.dataSource),i="public"===n.dataSource&&"public"===r.dataSource&&n.hash!==r.hash;a||i?window.history.replaceState(n,document.title,Lr(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","from-post-message"].includes(i)&&(r({status:"WAITING"}),a=await Om(),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=Lr(n);!window.history.state||Pr?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 J.createElement(Vm,null);case"done":return t;default:return(0,mt.lC)(e,"Unhandled URL setup phase."),null}}}const $m=lt({mapStateToProps:e=>({urlState:e.urlState,urlSetupPhase:qs(e),phase:Ys(e).phase}),mapDispatchToProps:{updateUrlState:gm,startFetchingProfiles:cm,urlSetupDone:dm,show404:um,setupInitialUrlState:fm,retrieveProfileForRawUrl:am,updateBrowserConnectionStatus:Im},component:jm});function Km(e){return{type:"REQUEST_L10N",locales:e}}function Ym(e,t,n){return{type:"RECEIVE_L10N",localization:e,primaryLocale:t,direction:n}}function qm(e){return{type:"TOGGLE_PSEUDO_STRATEGY",pseudoStrategy:e}}class Zm{constructor(e){this.value=e}valueOf(){return this.value}}class Xm extends Zm{constructor(e="???"){super(e)}toString(e){return`{${this.value}}`}}class Jm extends Zm{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 Qm extends Zm{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 ef=100,tf="",nf="";function rf(e,t,n){return n===t||(n instanceof Jm&&t instanceof Jm&&n.value===t.value||t instanceof Jm&&"string"==typeof n&&n===e.memoizeIntlObject(Intl.PluralRules,t.opts).select(t.value))}function of(e,t,n){return t[n]?cf(e,t[n].value):(e.reportError(new RangeError("No default")),new Xm)}function af(e,t){const n=[],r=Object.create(null);for(const o of t)"narg"===o.type?r[o.name]=sf(e,o.value):n.push(sf(e,o));return{positional:n,named:r}}function sf(e,t){switch(t.type){case"str":return t.value;case"num":return new Jm(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 Xm(`$${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 Xm(`$${t}`);n=e.args[t]}if(n instanceof Zm)return n;switch(typeof n){case"string":return n;case"number":return new Jm(n);case"object":if(n instanceof Date)return new Qm(n.getTime());default:return e.reportError(new TypeError(`Variable type not supported: $${t}, ${typeof n}`)),new Xm(`$${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 Xm(t);if(n){const o=r.attributes[n];return o?cf(e,o):(e.reportError(new ReferenceError(`Unknown attribute: ${n}`)),new Xm(`${t}.${n}`))}return r.value?cf(e,r.value):(e.reportError(new ReferenceError(`No value: ${t}`)),new Xm(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 Xm(o);if(n){const t=a.attributes[n];if(t){e.params=af(e,r).named;const n=cf(e,t);return e.params=null,n}return e.reportError(new ReferenceError(`Unknown attribute: ${n}`)),new Xm(`${o}.${n}`)}e.params=af(e,r).named;const i=cf(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 Xm(`${t}()`);if("function"!=typeof r)return e.reportError(new TypeError(`Function ${t}() is not callable`)),new Xm(`${t}()`);try{let t=af(e,n);return r(t.positional,t.named)}catch(n){return e.reportError(n),new Xm(`${t}()`)}}(e,t);case"select":return function(e,{selector:t,variants:n,star:r}){let o=sf(e,t);if(o instanceof Xm)return of(e,n,r);for(const t of n)if(rf(e,o,sf(e,t.key)))return cf(e,t.value);return of(e,n,r)}(e,t);default:return new Xm}}function lf(e,t){if(e.dirty.has(t))return e.reportError(new RangeError("Cyclic reference")),new Xm;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>ef)throw e.dirty.delete(t),new RangeError(`Too many placeables expanded: ${e.placeables}, max allowed is ${ef}`);r&&n.push(tf),n.push(sf(e,o).toString(e)),r&&n.push(nf)}else n.push(e.bundle._transform(o));return e.dirty.delete(t),n.join("")}function cf(e,t){return"string"==typeof t?e.bundle._transform(t):lf(e,t)}class df{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 uf(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 hf=["unitDisplay","currencyDisplay","useGrouping","minimumIntegerDigits","minimumFractionDigits","maximumFractionDigits","minimumSignificantDigits","maximumSignificantDigits"];function pf(e,t){let n=e[0];if(n instanceof Xm)return new Xm(`NUMBER(${n.valueOf()})`);if(n instanceof Jm)return new Jm(n.valueOf(),{...n.opts,...uf(t,hf)});if(n instanceof Qm)return new Jm(n.valueOf(),{...uf(t,hf)});throw new TypeError("Invalid argument to NUMBER")}const mf=["dateStyle","timeStyle","fractionalSecondDigits","dayPeriod","hour12","weekday","era","year","month","day","hour","minute","second","timeZoneName"];function ff(e,t){let n=e[0];if(n instanceof Xm)return new Xm(`DATETIME(${n.valueOf()})`);if(n instanceof Qm)return new Qm(n.valueOf(),{...n.opts,...uf(t,mf)});if(n instanceof Jm)return new Qm(n.valueOf(),{...uf(t,mf)});throw new TypeError("Invalid argument to DATETIME")}const gf=new Map;class Af{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:pf,DATETIME:ff,...t},this._useIsolating=n,this._transform=r,this._intls=function(e){const t=Array.isArray(e)?e.join(" "):e;let n=gf.get(t);return void 0===n&&(n=new Map,gf.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 df(this,n,t);try{return lf(r,e).toString(r)}catch(e){if(r.errors&&e instanceof Error)return r.errors.push(e),(new Xm).toString(r);throw e}}}const bf=/^(-?[a-zA-Z][\w-]*) *= */gm,Cf=/\.([a-zA-Z][\w-]*) *= */y,yf=/\*?\[/y,vf=/(-?[0-9]+(?:\.([0-9]+))?)/y,wf=/([a-zA-Z][\w-]*)/y,Ef=/([$-])?([a-zA-Z][\w-]*)(?:\.([a-zA-Z][\w-]*))?/y,kf=/^[A-Z][A-Z0-9_-]*$/,xf=/([^{}\n\r]+)/y,Tf=/([^\\"\n\r]*)/y,Sf=/\\([\\"])/y,Bf=/\\u([a-fA-F0-9]{4})|\\U([a-fA-F0-9]{6})/y,If=/^\n+/,_f=/ +$/,Pf=/ *\r?\n/g,Nf=/( *)$/,Mf=/{\s*/y,Ff=/\s*}/y,Rf=/\[\s*/y,Df=/\s*] */y,Lf=/\s*\(\s*/y,Of=/\s*->\s*/y,Uf=/\s*:\s*/y,zf=/\s*,?\s*/y,Gf=/\s+/y;class Wf{constructor(e){this.body=[],bf.lastIndex=0;let t=0;for(;;){let n=bf.exec(e);if(null===n)break;t=bf.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(Cf);){let t=i(Cf),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(xf)&&(r=i(xf)),"{"===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,If),c([o],o.length)):r?b(r,_f):null}function c(r=[],o){for(;;){if(n(xf)){r.push(i(xf));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,_f));let l=[];for(let e of r)e instanceof Hf&&(e=e.value.slice(0,e.value.length-o)),e&&l.push(e);return l}function d(){o(Mf,SyntaxError);let e=u();if(o(Ff))return e;if(o(Of)){let t=function(){let e,t=[],o=0;for(;n(yf);){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(Ff,SyntaxError),{type:"select",selector:e,...t}}throw new SyntaxError("Unclosed placeable")}function u(){if("{"===e[t])return d();if(n(Ef)){let[,n,r,i=null]=a(Ef);if("$"===n)return{type:"var",name:r};if(o(Lf)){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(zf)}}();if("-"===n)return{type:"term",name:r,attr:i,args:a};if(kf.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(Uf)?{type:"narg",name:e.name,value:m()}:e}function p(){let e;return o(Rf,SyntaxError),e=n(vf)?f():{type:"str",value:i(wf)},o(Df,SyntaxError),e}function m(){if(n(vf))return f();if('"'===e[t])return function(){r('"',SyntaxError);let n="";for(;;){if(n+=i(Tf),"\\"!==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(vf),n=t.length;return{type:"num",value:parseFloat(e),precision:n}}function g(){if(n(Sf))return i(Sf);if(n(Bf)){let[,e,t]=a(Bf),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(Gf),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(Pf,"\n"),n=Nf.exec(e)[1].length;return new Hf(t,n)}}}class Hf{constructor(e,t){this.value=e,this.length=t}}function Vf(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 jf={accented:Vf.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:Vf.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,"","")},$f={accented:"ltr",bidi:"rtl"},Kf={hour:"numeric",minute:"numeric"},Yf={month:"short",day:"numeric",hour:"numeric",minute:"numeric"},qf={year:"numeric",month:"short",day:"numeric"},Zf=(e,t)=>{const n=e[0],r=Date.now()-+n;return new Qm(n,r<0||r>31536e6?qf:r>864e5?Yf:Kf)},Xf={be:"Беларуская",de:"Deutsch",el:"Ελληνικά","en-GB":"English (GB)","en-CA":"English (CA)","en-US":"English (US)","es-CL":"Español",fr:"Français","fy-NL":"Frysk",fur:"Furlan",ia:"Interlingua",it:"Italiano",nl:"Nederlands","pt-BR":"Português (BR)",ru:"Русский","sv-SE":"Svenska",uk:"Українська","zh-CN":"简体中文","zh-TW":"正體中文"},Jf=Object.keys(Xf),Qf="en-US",eg=["ar","he","fa","ps","ur"];async function tg(e){const t=await fetch(`/locales/${e}/app.ftl`,{mode:"no-cors",credentials:"include"});return[e,await t.text()]}class ng extends J.PureComponent{constructor(...e){super(...e),this._onLocaleChange=e=>{this.props.requestL10n([e.currentTarget.value])}}render(){const{primaryLocale:e}=this.props;return e?J.createElement(de,{id:"FooterLinks--languageSwitcher--select",attrs:{title:!0}},J.createElement("select",{className:"appFooterLinksLanguageSwitcher",onChange:this._onLocaleChange,value:e},Jf.map((e=>J.createElement("option",{value:e,key:e},Xf[e]??e))))):null}}const rg=lt({component:ng,mapStateToProps:e=>({primaryLocale:gu(e)}),mapDispatchToProps:{requestL10n:Km}});var og=n(2441),ag={};ag.styleTagTransform=M(),ag.setAttributes=B(),ag.insert=T().bind(null,"head"),ag.domAPI=k(),ag.insertStyleElement=P(),w()(og.A,ag),og.A&&og.A.locals&&og.A.locals;class ig extends J.PureComponent{constructor(...e){super(...e),this._onClick=()=>{this.setState({hide:!0})},this.state={hide:!1}}render(){return this.state.hide?null:J.createElement("div",{className:"appFooterLinks"},J.createElement(de,{id:"FooterLinks--hide-button",attrs:{title:!0,"aria-label":!0}},J.createElement("button",{className:"appFooterLinksClose",type:"button",onClick:this._onClick},"✕")),J.createElement("a",{className:"appFooterLinksLink",href:"https://www.mozilla.org/about/legal/terms/mozilla",target:"_blank",rel:"noopener noreferrer"},J.createElement(de,{id:"FooterLinks--legal"},"Legal")),J.createElement("a",{className:"appFooterLinksLink",href:"https://www.mozilla.org/privacy/websites",target:"_blank",rel:"noopener noreferrer"},J.createElement(de,{id:"FooterLinks--Privacy"},"Privacy")),J.createElement("a",{className:"appFooterLinksLink",href:"https://www.mozilla.org/privacy/websites/#cookies",target:"_blank",rel:"noopener noreferrer"},J.createElement(de,{id:"FooterLinks--Cookies"},"Cookies")),J.createElement(rg,null))}}var sg=n(9133),lg={};lg.styleTagTransform=M(),lg.setAttributes=B(),lg.insert=T().bind(null,"head"),lg.domAPI=k(),lg.insertStyleElement=P(),w()(sg.A,lg),sg.A&&sg.A.locals&&sg.A.locals;class cg extends J.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}),(0,gl.N)({exDescription:n?n+"\n"+t:t,exFatal:!0})}render(){if(this.state.hasError){const{errorString:e}=this.state;return J.createElement("div",{className:"appErrorBoundary"},J.createElement("div",{className:"appErrorBoundaryContents"},J.createElement("div",{className:"photon-message-bar photon-message-bar-error photon-message-bar-inner-content"},J.createElement("div",{className:"photon-message-bar-inner-text appErrorBoundaryInnerText"},J.createElement("p",null,this.props.message),e?J.createElement("p",null,e,"."):null,J.createElement("p",null,this.props.reportExplanationMessage)),J.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 dg(e){return J.createElement(cg,{...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 ug(e){return J.createElement(cg,{...e,buttonContent:J.createElement(de,{id:"ErrorBoundary--report-error-on-github"},"Report the error on GitHub"),reportExplanationMessage:J.createElement(de,{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 hg=n(6009),pg=n.n(hg),mg=n(6942),fg=n.n(mg),gg=n(2305),Ag={};Ag.styleTagTransform=M(),Ag.setAttributes=B(),Ag.insert=T().bind(null,"head"),Ag.domAPI=k(),Ag.insertStyleElement=P(),w()(gg.A,Ag),gg.A&&gg.A.locals&&gg.A.locals;class bg extends J.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 J.createElement("ol",{className:"tabBarTabWrapper",role:"tablist","aria-label":"Profiler tabs"},t.map((t=>J.createElement("li",{className:fg()({tabBarTab:!0,selected:t===e}),key:t,"data-name":t,onClick:this._onClickListener,onMouseDown:this._onMouseDown},J.createElement(de,{id:Sr[t]},J.createElement("button",{className:"tabBarTabButton",type:"button",id:`${t}-tab-button`,role:"tab","aria-selected":t===e,"aria-controls":`${t}-tab`},Sr[t]))))))}}var Cg=n(9298),yg=n.n(Cg);let vg=null;function wg(){return vg||(vg=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...")}}}()),vg}class Eg extends J.PureComponent{render(){const{renderItem:e,item:t,index:n,columnIndex:r}=this.props;return e(t,n,r)}}class kg extends J.PureComponent{render(){const{className:e,renderItem:t,items:n,specialItems:r,visibleRangeStart:o,visibleRangeEnd:a,columnIndex:i,forceRender:s}=this.props;return J.createElement("div",{className:e},yg()(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 J.createElement(Eg,{key:e,index:e,columnIndex:i,renderItem:t,item:o,items:n,forceRenderItem:a,forceRender:s})})))}}class xg extends J.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=yg()(d,Math.max(d,u)).map((e=>16*e));return J.createElement("div",{className:t,style:{height:(r.length+1)*e+"px",minWidth:1===s?l:void 0}},J.createElement("div",{className:`${t}TopSpacer`,key:-1,style:{height:Math.max(0,a)*e+"px"}}),h.map((e=>J.createElement(kg,{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 Tg extends J.PureComponent{constructor(...e){super(...e),this._container=J.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.");wg().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.");wg().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 J.createElement("div",{className:t,ref:this._container,tabIndex:o?0:-1,onKeyDown:i,role:c,"aria-label":d,"aria-activedescendant":u,onScroll:this._onScroll},J.createElement("div",{className:`${t}InnerWrapper`,onMouseLeave:this._onMouseLeaveInnerWrapper},yg()(h).map((o=>J.createElement(xg,{className:fg()(`${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 Sg=n(961),Bg=n(5556),Ig=n.n(Bg),_g=n(5228),Pg=n.n(_g);function Ng(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 Mg(e,t){return Object.prototype.hasOwnProperty.call(e,t)}const Fg="react-contextmenu",Rg="react-contextmenu--visible",Dg="react-contextmenu-item",Lg="react-contextmenu-item--disabled",Og="react-contextmenu-item--selected",Ug={},zg=Boolean("undefined"!=typeof window&&window.document&&window.document.createElement),Gg="REACT_CONTEXTMENU_SHOW",Wg="REACT_CONTEXTMENU_HIDE";function Hg(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),Pg()(Ug,t))}function Vg(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;Hg(Gg,Pg()({},e,{type:Gg}),t)}function jg(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{},t=arguments.length>1?arguments[1]:void 0;Hg(Wg,Pg()({},e,{type:Wg}),t)}const $g=new class{constructor(){this.callbacks={},zg&&(window.addEventListener(Gg,this.handleShowEvent),window.addEventListener(Wg,this.handleHideEvent))}handleShowEvent=e=>{for(const t in this.callbacks)Mg(this.callbacks,t)&&this.callbacks[t].show(e)};handleHideEvent=e=>{for(const t in this.callbacks)Mg(this.callbacks,t)&&this.callbacks[t].hide(e)};register=(e,t)=>{const n=Math.random().toString(36).substring(7);return this.callbacks[n]={show:e,hide:t},n};unregister=e=>{e&&this.callbacks[e]&&delete this.callbacks[e]}};function Kg(){return Kg=Object.assign?Object.assign.bind():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},Kg.apply(this,arguments)}class Yg extends J.Component{static propTypes={attributes:Ig().object,children:Ig().node,className:Ig().string,data:Ig().object,disabled:Ig().bool,divider:Ig().bool,onClick:Ig().func,onMouseLeave:Ig().func,onMouseMove:Ig().func,preventClose:Ig().bool,selected:Ig().bool,role:Ig().string};static defaultProps={attributes:{},children:null,className:"",data:{},disabled:!1,divider:!1,onClick:()=>null,onMouseMove:()=>null,onMouseLeave:()=>null,preventClose:!1,selected:!1,role:"menuitem"};handleClick=e=>{0!==e.button&&1!==e.button&&e.preventDefault(),this.props.disabled||this.props.divider||(Ng(this.props.onClick,e,Pg()({},this.props.data,Ug.data),Ug.target),this.props.preventClose||jg())};render(){const{attributes:e,children:t,className:n,disabled:r,divider:o,selected:a,role:i}=this.props,s=fg()(n,Dg,e.className,{[fg()(Lg,e.disabledClassName)]:r,[fg()("react-contextmenu-item--divider",e.dividerClassName)]:o,[fg()(Og,e.selectedClassName)]:a});return J.createElement("div",Kg({},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)}}class qg extends J.Component{static propTypes={children:Ig().node.isRequired};constructor(e){super(e),this.seletedItemRef=null,this.state={selectedItem:null,forceSubMenuOpen:!1}}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)}}};handleForceClose=()=>{this.setState({forceSubMenuOpen:!1})};tryToOpenSubMenu=e=>{this.state.selectedItem&&this.state.selectedItem.type===this.getSubMenuType()&&(e.preventDefault(),this.setState({forceSubMenuOpen:!0}))};selectChildren=e=>{const{selectedItem:t}=this.state,n=[];let r=0,o={};const a=(e,t)=>{e&&([Yg,this.getSubMenuType()].indexOf(e.type)<0?J.Children.forEach(e.props.children,a):e.props.divider||(e.props.disabled&&(++r,o[t]=!0),n.push(e)))};if(J.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})};onChildMouseMove=(e,t)=>{null!==this.state.selectedItem&&this.state.selectedItem.index===t||this.setState({selectedItem:{index:t,type:e.type},forceSubMenuOpen:!1})};onChildMouseLeave=()=>{this.setState({selectedItem:null,forceSubMenuOpen:!1})};renderChildren=(()=>{var e=this;return function(t){let n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{value:-1};return J.Children.map(t,(t=>{let r=n;const o={};if(!J.isValidElement(t))return t;if([Yg,e.getSubMenuType()].indexOf(t.type)<0)return o.children=e.renderChildren(t.props.children,r),J.cloneElement(t,o);let a=null;return t.props.divider||(a=++r.value),o.onMouseLeave=e.onChildMouseLeave.bind(e),t.type===e.getSubMenuType()&&(o.forceOpen=e.state.forceSubMenuOpen&&e.state.selectedItem&&e.state.selectedItem.index===a,o.forceClose=e.handleForceClose,o.parentKeyNavigationHandler=e.handleKeyNavigation),!t.props.divider&&e.state.selectedItem&&e.state.selectedItem.index===a?(o.selected=!0,o.ref=t=>{e.seletedItemRef=t},J.cloneElement(t,o)):(o.onMouseMove=()=>e.onChildMouseMove(t,a),J.cloneElement(t,o))}))}})()}function Zg(){return Zg=Object.assign?Object.assign.bind():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},Zg.apply(this,arguments)}class Xg extends qg{static propTypes={children:Ig().node.isRequired,attributes:Ig().object,title:Ig().node.isRequired,className:Ig().string,disabled:Ig().bool,hoverDelay:Ig().number,rtl:Ig().bool,selected:Ig().bool,onMouseMove:Ig().func,onMouseOut:Ig().func,forceOpen:Ig().bool,forceClose:Ig().func,parentKeyNavigationHandler:Ig().func};static defaultProps={disabled:!1,hoverDelay:500,attributes:{},className:"",rtl:!1,selected:!1,onMouseMove:()=>null,onMouseOut:()=>null,forceOpen:!1,forceClose:()=>null,parentKeyNavigationHandler:()=>null};constructor(e){super(e),this.state=Pg()({},this.state,{visible:!1})}componentDidMount(){this.listenId=$g.register((()=>{}),this.hideSubMenu)}getSubMenuType(){return Xg}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"),Mg(e,"top")&&(this.subMenu.style.top=e.top),Mg(e,"left")&&(this.subMenu.style.left=e.left),Mg(e,"bottom")&&(this.subMenu.style.bottom=e.bottom),Mg(e,"right")&&(this.subMenu.style.right=e.right),this.subMenu.classList.add(Rg),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(Rg)}}componentWillUnmount(){this.listenId&&$g.unregister(this.listenId),this.opentimer&&clearTimeout(this.opentimer),this.closetimer&&clearTimeout(this.closetimer),this.unregisterHandlers(!0)}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};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};hideMenu=e=>{e.preventDefault(),this.hideSubMenu(e)};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())};handleClick=e=>{e.preventDefault(),this.props.disabled||(Ng(this.props.onClick,e,Pg()({},this.props.data,Ug.data),Ug.target),this.props.onClick&&!this.props.preventCloseOnClick&&jg())};handleMouseEnter=()=>{this.closetimer&&clearTimeout(this.closetimer),this.props.disabled||this.state.visible||(this.opentimer=setTimeout((()=>this.setState({visible:!0,selectedItem:null})),this.props.hoverDelay))};handleMouseLeave=()=>{this.opentimer&&clearTimeout(this.opentimer),this.state.visible&&(this.closetimer=setTimeout((()=>this.setState({visible:!1,selectedItem:null})),this.props.hoverDelay))};menuRef=e=>{this.menu=e};subMenuRef=e=>{this.subMenu=e};registerHandlers=()=>{document.removeEventListener("keydown",this.props.parentKeyNavigationHandler),document.addEventListener("keydown",this.handleKeyNavigation)};unregisterHandlers=e=>{document.removeEventListener("keydown",this.handleKeyNavigation),e||document.addEventListener("keydown",this.props.parentKeyNavigationHandler)};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:fg()(Dg,"react-contextmenu-submenu",t.listClassName),style:{position:"relative"}},s={className:fg()(Dg,t.className,{[fg()(Lg,t.disabledClassName)]:n,[fg()("react-contextmenu-item--active",t.visibleClassName)]:a,[fg()(Og,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:fg()(Fg,this.props.className)};return J.createElement("nav",Zg({},i,{role:"menuitem",tabIndex:"-1","aria-haspopup":"true"}),J.createElement("div",Zg({},t,s),r),J.createElement("nav",Zg({},l,{role:"menu",tabIndex:"-1"}),this.renderChildren(e)))}}class Jg extends qg{static propTypes={id:Ig().string.isRequired,children:Ig().node.isRequired,data:Ig().object,className:Ig().string,hideOnLeave:Ig().bool,rtl:Ig().bool,onHide:Ig().func,onMouseLeave:Ig().func,onShow:Ig().func,preventHideOnContextMenu:Ig().bool,preventHideOnResize:Ig().bool,preventHideOnScroll:Ig().bool,style:Ig().object};static defaultProps={className:"",data:{},hideOnLeave:!1,rtl:!1,onHide:()=>null,onMouseLeave:()=>null,onShow:()=>null,preventHideOnContextMenu:!1,preventHideOnResize:!1,preventHideOnScroll:!1,style:{}};constructor(e){super(e),this.state=Pg()({},this.state,{x:0,y:0,isVisible:!1})}getSubMenuType(){return Xg}componentDidMount(){this.listenId=$g.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=`${r}px`,this.menu.style.left=`${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&&$g.unregister(this.listenId),this.unregisterHandlers()}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)};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)};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(),Ng(this.props.onShow,e)};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})},Sg.flushSync?Sg.flushSync(t):t(),Ng(this.props.onHide,e))};handleOutsideClick=e=>{this.menu.contains(e.target)||jg()};handleMouseLeave=e=>{e.preventDefault(),Ng(this.props.onMouseLeave,e,Pg()({},this.props.data,Ug.data),Ug.target),this.props.hideOnLeave&&jg()};handleContextMenu=e=>{e.preventDefault(),this.handleHide(e)};hideMenu=e=>{"Escape"!==e.key&&"Esc"!==e.key&&"Enter"!==e.key||jg()};getMenuPosition=(()=>{var e=this;return function(){let t=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:t};if(!e.menu)return r;const{innerWidth:o,innerHeight:a}=window,i=e.menu.getBoundingClientRect();return n+i.height>a&&(r.top-=i.height),t+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}})();getRTLMenuPosition=(()=>{var e=this;return function(){let t=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:t};if(!e.menu)return r;const{innerWidth:o,innerHeight:a}=window,i=e.menu.getBoundingClientRect();return r.left=t-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}})();menuRef=e=>{this.menu=e};render(){const{children:e,className:t,style:n}=this.props,{isVisible:r}=this.state,o=Pg()({},n,{position:"fixed",opacity:0,pointerEvents:"none"}),a=fg()(Fg,t,{[Rg]:r});return J.createElement("nav",{role:"menu",tabIndex:"-1",ref:this.menuRef,style:o,className:a,onContextMenu:this.handleContextMenu,onMouseLeave:this.handleMouseLeave},this.renderChildren(e))}}class Qg extends J.Component{static propTypes={id:Ig().string.isRequired,children:Ig().node.isRequired,attributes:Ig().object,collect:Ig().func,disable:Ig().bool,holdToDisplay:Ig().number,posX:Ig().number,posY:Ig().number,renderTag:Ig().elementType,triggerOnLeftClick:Ig().bool,disableIfShiftIsPressed:Ig().bool};static defaultProps={attributes:{},collect:()=>null,disable:!1,holdToDisplay:1e3,renderTag:"div",posX:0,posY:0,triggerOnLeftClick:!1,disableIfShiftIsPressed:!1};touchHandled=!1;handleMouseDown=e=>{this.props.holdToDisplay>=0&&0===e.button&&(e.persist(),e.stopPropagation(),this.mouseDownTimeoutId=setTimeout((()=>this.handleContextClick(e)),this.props.holdToDisplay)),Ng(this.props.attributes.onMouseDown,e)};handleMouseUp=e=>{0===e.button&&clearTimeout(this.mouseDownTimeoutId),Ng(this.props.attributes.onMouseUp,e)};handleMouseOut=e=>{0===e.button&&clearTimeout(this.mouseDownTimeoutId),Ng(this.props.attributes.onMouseOut,e)};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)),Ng(this.props.attributes.onTouchStart,e)};handleTouchEnd=e=>{this.touchHandled&&e.preventDefault(),clearTimeout(this.touchstartTimeoutId),Ng(this.props.attributes.onTouchEnd,e)};handleContextMenu=e=>{this.handleContextClick(e),Ng(this.props.attributes.onContextMenu,e)};handleMouseClick=e=>{this.handleContextClick(e),Ng(this.props.attributes.onClick,e)};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),jg();let r=Ng(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=Pg()({},t,{target:e.target}),Vg(o)})):(o.data=Pg()({},r,{target:e.target}),Vg(o))};elemRef=e=>{this.elem=e};render(){const{renderTag:e,attributes:t,children:n,triggerOnLeftClick:r}=this.props,o={...t,className:fg()("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 J.createElement(e,o,n)}}Object.keys(Qg.propTypes);class eA extends J.PureComponent{render(){return J.createElement(Qg,{holdToDisplay:-1,...this.props})}}var tA=n(8268),nA={};function rA(e){const{children:t,id:n}=e;return n?J.createElement(de,{...e},t):t}nA.styleTagTransform=M(),nA.setAttributes=B(),nA.insert=T().bind(null,"head"),nA.domAPI=k(),nA.insertStyleElement=P(),w()(tA.A,nA),tA.A&&tA.A.locals&&tA.A.locals;class oA extends J.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?J.createElement("div",{className:"treeViewHeader"},e.map(((e,t)=>{const n=r[t]+(e.headerWidthAdjustment||0);return J.createElement(J.Fragment,{key:e.propName},J.createElement(rA,{id:e.titleL10nId,attrs:{title:!0}},J.createElement("span",{style:{width:n},className:`treeViewHeaderColumn treeViewFixedColumn ${e.propName}`})),!0!==e.hideDividerAfter?J.createElement("span",{key:e.propName+"Divider",className:fg()("treeViewColumnDivider",{isResizable:e.resizable}),onMouseDown:e.resizable?this._onDividerMouseDown:void 0,onDoubleClick:e.resizable?this._onDividerDoubleClick:void 0,"data-column-index":t}):null)})),J.createElement(rA,{id:t.titleL10nId,attrs:{title:!0}},J.createElement("span",{className:`treeViewHeaderColumn treeViewMainColumn ${t.propName}`}))):null}}function aA(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(J.createElement("span",{key:i.index,className:n},i[0]))}return r.push(e.substring(a)),r}class iA extends J.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 J.createElement("div",{className:fg()("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 J.createElement(J.Fragment,{key:t.propName},J.createElement("span",{className:`treeViewRowColumn treeViewFixedColumn ${t.propName}`,title:o,style:{width:l[n]}},r?J.createElement(r,{displayData:e}):aA(o,i,"treeViewHighlighting")),!0!==t.hideDividerAfter?J.createElement("span",{className:"treeViewColumnDivider"}):null)})))}}class sA extends J.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"),J.createElement("div",{className:fg()("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}`},J.createElement("span",{className:"treeRowIndentSpacer",style:{width:t*u+"px"}}),J.createElement("span",{className:`treeRowToggleButton ${i?"expanded":"collapsed"} ${a?"canBeExpanded":"leaf"}`,onClick:this._onToggleClick}),e.categoryColor&&e.categoryName?J.createElement("span",{className:`colored-square category-color-${e.categoryColor}`,title:e.categoryName}):null,J.createElement("span",{className:fg()("treeViewRowColumn","treeViewMainColumn",n.propName,{dim:e.isFrameLabel})},e.badge?J.createElement(de,{id:e.badge.localizationId,vars:e.badge.vars,attrs:{title:!0}},J.createElement("span",{className:`treeBadge ${e.badge.name}`,title:e.badge.titleFallback},e.badge.contentFallback)):null,p?J.createElement(p,{displayData:e}):aA(e[n.propName],c,"treeViewHighlighting")),r?J.createElement("span",{className:`treeViewRowColumn treeViewAppendageColumn ${r.propName}`},aA(e[r.propName],c,"treeViewHighlighting")):null)}}class lA extends J.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=zt()(((e,t)=>[e??void 0,t??void 0]),{limit:1}),this._computeExpandedNodesMemoized=zt()((e=>new Set(e)),{limit:1}),this._computeInitialColumnWidthsMemoized=zt()((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=zt()(((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 J.createElement(iA,{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 J.createElement(sA,{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 J.createElement("div",{className:fg()("treeView",{isResizingColumns:l})},J.createElement(oA,{fixedColumns:e,mainColumn:t,viewOptions:this._getCurrentViewOptions(),onColumnWidthChangeStart:this._onColumnWidthChangeStart,onColumnWidthReset:this._onColumnWidthReset}),J.createElement(eA,{id:o??"unknown",disable:!o,attributes:{className:"treeViewContextMenu"}},J.createElement(Tg,{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 cA=n(2589),dA={};dA.styleTagTransform=M(),dA.setAttributes=B(),dA.insert=T().bind(null,"head"),dA.domAPI=k(),dA.insertStyleElement=P(),w()(cA.A,dA),cA.A&&cA.A.locals&&cA.A.locals;class uA extends J.PureComponent{render(){const{viewName:e,reason:t,threadName:n}=this.props;return J.createElement("div",{className:"EmptyReasons"},J.createElement("h3",null,"The ",e," is empty for “",n,"”"),J.createElement("p",null,t))}}class hA extends J.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.":_n.TN`
|
112
|
-
Try broadening the selected range, removing search terms, or call tree transforms
|
113
|
-
to view samples.
|
114
|
-
`,J.createElement(uA,{threadName:n,reason:r,viewName:"call tree"})}}const pA=lt({mapStateToProps:e=>({threadName:Id.getFriendlyThreadName(e),thread:Id.getThread(e),rangeFilteredThread:Id.getRangeFilteredThread(e)}),component:hA});var mA=n(1636),fA={};fA.styleTagTransform=M(),fA.setAttributes=B(),fA.insert=T().bind(null,"head"),fA.domAPI=k(),fA.insertStyleElement=P(),w()(mA.A,fA),mA.A&&mA.A.locals&&mA.A.locals;class gA extends J.PureComponent{constructor(e){super(e),e.icon&&e.iconStartLoading(e.icon)}componentDidUpdate(){this.props.icon&&this.props.iconStartLoading(this.props.icon)}render(){return J.createElement("div",{className:`nodeIcon ${this.props.className}`})}}const AA=lt({mapStateToProps:(e,t)=>{const n=t.displayData?t.displayData.iconSrc:t.iconUrl;return{className:pu(e,n),icon:n}},mapDispatchToProps:{iconStartLoading:pp},component:gA});var bA=n(290),CA={};CA.styleTagTransform=M(),CA.setAttributes=B(),CA.insert=T().bind(null,"head"),CA.domAPI=k(),CA.insertStyleElement=P(),w()(bA.A,CA),bA.A&&bA.A.locals&&bA.A.locals;class yA extends J.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=zt()((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:AA,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:AA,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:AA,initialWidth:10}];default:throw(0,mt.lC)(e,"Unhandled WeightType.")}}),{cache:new Map}),this._onSelectedCallNodeChange=(e,t)=>{const{callNodeInfo:n,threadsKey:r,changeSelectedCallNode:o}=this.props;o(r,n.getCallNodePathFromIndex(e),t)},this._onRightClickSelection=e=>{const{callNodeInfo:t,threadsKey:n,changeRightClickedCallNode:r}=this.props;r(n,t.getCallNodePathFromIndex(e))},this._onExpandedCallNodesChange=e=>{const{callNodeInfo:t,threadsKey:n,changeExpandedCallNodes:r}=this.props;r(n,e.map((e=>t.getCallNodePathFromIndex(e))))},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: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)return;const l=r.getCallNodeTable();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=>l.category[e]!==a));s=void 0!==n?n:t[0],i.push(s)}this._onExpandedCallNodesChange(i),l.category[s]!==a&&this._onSelectedCallNodeChange(s,{source:"auto"})}render(){const{tree:e,selectedCallNodeIndex:t,rightClickedCallNodeIndex:n,expandedCallNodeIndexes:r,searchStringsRegExp:o,disableOverscan:a,callNodeMaxDepthPlusOne:i,weightType:s,tableViewOptions:l,onTableViewOptionsChange:c}=this.props;return 0===e.getRoots().length?J.createElement(pA,null):J.createElement(lA,{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 vA=lt({mapStateToProps:e=>({threadsKey:Go(e),scrollToSelectionGeneration:li(e),focusCallTreeGeneration:ci(e),tree:Id.getCallTree(e),callNodeInfo:Id.getCallNodeInfo(e),categories:Ri(e),selectedCallNodeIndex:Id.getSelectedCallNodeIndex(e),rightClickedCallNodeIndex:Id.getRightClickedCallNodeIndex(e),expandedCallNodeIndexes:Id.getExpandedCallNodeIndexes(e),searchStringsRegExp:ra(e),disableOverscan:mi(e).isModifying,invertCallstack:Oo(e),implementationFilter:Eo(e),callNodeMaxDepthPlusOne:Id.getFilteredCallNodeMaxDepthPlusOne(e),weightType:Id.getWeightTypeForCallTree(e),tableViewOptions:ai(e)}),mapDispatchToProps:{changeSelectedCallNode:nh,changeRightClickedCallNode:rh,changeExpandedCallNodes:Mh,addTransformToStack:Yh,handleCallNodeTransformShortcut:ip,updateBottomBoxContentsAndMaybeOpen:np,onTableViewOptionsChange:e=>tp("calltree",e)},component:yA});var wA=n(5609),EA={};EA.styleTagTransform=M(),EA.setAttributes=B(),EA.insert=T().bind(null,"head"),EA.domAPI=k(),EA.insertStyleElement=P(),w()(wA.A,EA),wA.A&&wA.A.locals&&wA.A.locals;class kA extends J.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 J.createElement("form",{className:fg()("idleSearchField",e),onSubmit:this._onFormSubmit},J.createElement(de,{id:"IdleSearchField--search-input",attrs:{placeholder:!0}},J.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})),J.createElement("input",{type:"reset",className:"idleSearchFieldButton",onClick:this._onClearButtonClick,tabIndex:-1}))}}var xA=n(489),TA={};TA.styleTagTransform=M(),TA.setAttributes=B(),TA.insert=T().bind(null,"head"),TA.domAPI=k(),TA.insertStyleElement=P(),w()(xA.A,TA),xA.A&&xA.A.locals&&xA.A.locals;class SA extends J.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 J.createElement("div",{className:fg()("panelSearchField",r)},J.createElement("label",{className:"panelSearchFieldLabel"},e+" ",J.createElement(kA,{className:"panelSearchFieldInput",title:t,idlePeriod:200,defaultValue:n,onIdleAfterChange:this._onSearchFieldIdleAfterChange,onBlur:this._onSearchFieldBlur,onFocus:this._onSearchFieldFocus})),J.createElement("div",{className:fg()("panelSearchFieldIntroduction",{isHidden:!a,isDisplayed:a})},J.createElement(de,{id:"PanelSearch--search-field-hint"},"Did you know you can use the comma (,) to search using several terms?")))}}var BA=n(6098),IA={};IA.styleTagTransform=M(),IA.setAttributes=B(),IA.insert=T().bind(null,"head"),IA.domAPI=k(),IA.insertStyleElement=P(),w()(BA.A,IA),BA.A&&BA.A.locals&&BA.A.locals;var _A=n(8585),PA={};PA.styleTagTransform=M(),PA.setAttributes=B(),PA.insert=T().bind(null,"head"),PA.domAPI=k(),PA.insertStyleElement=P(),w()(_A.A,PA),_A.A&&_A.A.locals&&_A.A.locals;class NA extends J.PureComponent{constructor(...e){super(...e),this._onImplementationFilterChange=e=>{this.props.changeImplementationFilter((0,Cn.Cn)(e.currentTarget.value))}}_renderImplementationRadioButton(e,t){const n=`implementation-radio-${t}`;return J.createElement(J.Fragment,null,J.createElement(de,{id:e,attrs:{title:!0}},J.createElement("input",{type:"radio",className:"photon-radio photon-radio-micro",value:t,id:n,onChange:this._onImplementationFilterChange,checked:this.props.implementationFilter===t})),J.createElement(de,{id:e,attrs:{title:!0}},J.createElement("label",{className:"photon-label photon-label-micro photon-label-horiz-padding",htmlFor:n})))}render(){const{labelL10nId:e}=this.props;return J.createElement(J.Fragment,null,e?J.createElement("span",{className:"stackImplementationSettingLabel"},J.createElement(de,{id:e})):null,this._renderImplementationRadioButton("StackSettings--implementation-all-frames","combined"),this._renderImplementationRadioButton("StackSettings--implementation-javascript2","js"),this._renderImplementationRadioButton("StackSettings--implementation-native2","cpp"))}}const MA=lt({mapStateToProps:e=>({implementationFilter:Eo(e)}),mapDispatchToProps:{changeImplementationFilter:zh},component:NA});class FA extends J.PureComponent{constructor(...e){super(...e),this._onCallTreeSummaryStrategyChange=e=>{this.props.changeCallTreeSummaryStrategy((0,Cn.pZ)(e.currentTarget.value))}}_renderCallTreeStrategyOption(e,t){return J.createElement(de,{id:e,attrs:{title:!0}},J.createElement("option",{key:t,value:t}))}render(){const{hasUsefulTimingSamples:e,hasUsefulJsAllocations:t,hasUsefulNativeAllocations:n,canShowRetainedMemory:r,callTreeSummaryStrategy:o}=this.props;return J.createElement(J.Fragment,null,J.createElement("label",null,J.createElement(de,{id:"StackSettings--use-data-source-label"})," ",J.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 RA=lt({mapStateToProps:e=>({hasUsefulTimingSamples:Id.getHasUsefulTimingSamples(e),hasUsefulJsAllocations:Id.getHasUsefulJsAllocations(e),hasUsefulNativeAllocations:Id.getHasUsefulNativeAllocations(e),canShowRetainedMemory:Id.getCanShowRetainedMemory(e),callTreeSummaryStrategy:Id.getCallTreeSummaryStrategy(e)}),mapDispatchToProps:{changeCallTreeSummaryStrategy:Gh},component:FA});var DA=n(976),LA={};LA.styleTagTransform=M(),LA.setAttributes=B(),LA.insert=T().bind(null,"head"),LA.domAPI=k(),LA.insertStyleElement=P(),w()(DA.A,LA),DA.A&&DA.A.locals&&DA.A.locals;class OA extends J.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 J.createElement("div",{className:"stackSettings"},J.createElement("ul",{className:"panelSettingsList"},e?J.createElement("li",{className:"panelSettingsListItem"},J.createElement(MA,null)):null,l?J.createElement("li",{className:"panelSettingsListItem"},J.createElement(RA,null)):null,o&&"stack-chart"!==n?null:J.createElement("li",{className:"panelSettingsListItem"},o?null:J.createElement("label",{className:"photon-label photon-label-micro photon-label-horiz-padding"},J.createElement("input",{type:"checkbox",className:"photon-checkbox photon-checkbox-micro stackSettingsCheckbox",onChange:this._onInvertCallstackClick,checked:t}),J.createElement(de,{id:"StackSettings--invert-call-stack",attrs:{title:!0}},J.createElement("span",null,"Invert call stack"))),"stack-chart"!==n?null:J.createElement("label",{className:"photon-label photon-label-micro photon-label-horiz-padding"},J.createElement("input",{type:"checkbox",className:"photon-checkbox photon-checkbox-micro stackSettingsCheckbox",onChange:this._onShowUserTimingsClick,checked:r}),J.createElement(de,{id:"StackSettings--show-user-timing"},"Show user timing")))),J.createElement(de,{id:"StackSettings--panel-search",attrs:{label:!0,title:!0}},J.createElement(SA,{className:"stackSettingsSearchField",label:"Filter stacks:",title:"Only display stacks which contain a function whose name matches this substring",currentSearchString:a,onSearch:this._onSearch})))}}const UA=lt({mapStateToProps:e=>({allowSwitchingStackType:Ms(e),invertCallstack:Oo(e),selectedTab:Lo(e),showUserTimings:xo(e),currentSearchString:Fo(e),hasUsefulJsAllocations:Id.getHasUsefulJsAllocations(e),hasUsefulNativeAllocations:Id.getHasUsefulNativeAllocations(e)}),mapDispatchToProps:{changeInvertCallstack:Wh,changeCallTreeSearchString:Ph,changeShowUserTimings:Hh},component:OA});function zA(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}function GA(){return GA=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},GA.apply(this,arguments)}function WA(e,t){return WA=Object.setPrototypeOf||function(e,t){return e.__proto__=t,e},WA(e,t)}function HA(e,t){e.prototype=Object.create(t.prototype),e.prototype.constructor=e,WA(e,t)}const VA=J.createContext(null);function jA(e,t){var n=Object.create(null);return e&&J.Children.map(e,(function(e){return e})).forEach((function(e){n[e.key]=function(e){return t&&(0,J.isValidElement)(e)?t(e):e}(e)})),n}function $A(e,t,n){return null!=n[t]?n[t]:e.props[t]}function KA(e,t,n){var r=jA(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,J.isValidElement)(i)){var s=a in t,l=a in r,c=t[a],d=(0,J.isValidElement)(c)&&!c.props.in;!l||s&&!d?l||!s||d?l&&s&&(0,J.isValidElement)(c)&&(o[a]=(0,J.cloneElement)(i,{onExited:n.bind(null,i),in:c.props.in,exit:$A(i,"exit",e),enter:$A(i,"enter",e)})):o[a]=(0,J.cloneElement)(i,{in:!1}):o[a]=(0,J.cloneElement)(i,{onExited:n.bind(null,i),in:!0,exit:$A(i,"exit",e),enter:$A(i,"enter",e)})}})),o}var YA=Object.values||function(e){return Object.keys(e).map((function(t){return e[t]}))},qA=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}HA(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,jA(n.children,(function(e){return(0,J.cloneElement)(e,{onExited:r.bind(null,e),in:!0,appear:$A(e,"appear",n),enter:$A(e,"enter",n),exit:$A(e,"exit",n)})}))):KA(e,o,a),firstRender:!1}},n.handleExited=function(e,t){var n=jA(this.props.children);e.key in n||(e.props.onExited&&e.props.onExited(t),this.mounted&&this.setState((function(t){var n=GA({},t.children);return delete n[e.key],{children:n}})))},n.render=function(){var e=this.props,t=e.component,n=e.childFactory,r=zA(e,["component","childFactory"]),o=this.state.contextValue,a=YA(this.state.children).map(n);return delete r.appear,delete r.enter,delete r.exit,null===t?J.createElement(VA.Provider,{value:o},a):J.createElement(VA.Provider,{value:o},J.createElement(t,r,a))},t}(J.Component);qA.propTypes={},qA.defaultProps={component:"div",childFactory:function(e){return e}};const ZA=qA;function XA(e,t){return e.replace(new RegExp("(^|\\s)"+t+"(?:\\s|$)","g"),"$1").replace(/\s+/g," ").replace(/^\s*|\s*$/g,"")}var JA=function(e){return e.scrollTop},QA="unmounted",eb="exited",tb="entering",nb="entered",rb="exiting",ob=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=eb,r.appearStatus=tb):o=nb:o=t.unmountOnExit||t.mountOnEnter?QA:eb,r.state={status:o},r.nextCallback=null,r}HA(t,e),t.getDerivedStateFromProps=function(e,t){return e.in&&t.status===QA?{status:eb}: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!==tb&&n!==nb&&(t=tb):n!==tb&&n!==nb||(t=rb)}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===tb){if(this.props.unmountOnExit||this.props.mountOnEnter){var n=this.props.nodeRef?this.props.nodeRef.current:Sg.findDOMNode(this);n&&JA(n)}this.performEnter(e)}else this.performExit();else this.props.unmountOnExit&&this.state.status===eb&&this.setState({status:QA})},n.performEnter=function(e){var t=this,n=this.props.enter,r=this.context?this.context.isMounting:e,o=this.props.nodeRef?[r]:[Sg.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:tb},(function(){t.props.onEntering(a,i),t.onTransitionEnd(l,(function(){t.safeSetState({status:nb},(function(){t.props.onEntered(a,i)}))}))}))):this.safeSetState({status:nb},(function(){t.props.onEntered(a)}))},n.performExit=function(){var e=this,t=this.props.exit,n=this.getTimeouts(),r=this.props.nodeRef?void 0:Sg.findDOMNode(this);t?(this.props.onExit(r),this.safeSetState({status:rb},(function(){e.props.onExiting(r),e.onTransitionEnd(n.exit,(function(){e.safeSetState({status:eb},(function(){e.props.onExited(r)}))}))}))):this.safeSetState({status:eb},(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:Sg.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===QA)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,zA(t,["children","in","mountOnEnter","unmountOnExit","appear","enter","exit","timeout","addEndListener","onEnter","onEntering","onEntered","onExit","onExiting","onExited","nodeRef"]));return J.createElement(VA.Provider,{value:null},"function"==typeof n?n(e,r):J.cloneElement(J.Children.only(n),r))},t}(J.Component);function ab(){}ob.contextType=VA,ob.propTypes={},ob.defaultProps={in:!1,mountOnEnter:!1,unmountOnExit:!1,appear:!1,enter:!0,exit:!0,onEnter:ab,onEntering:ab,onEntered:ab,onExit:ab,onExiting:ab,onExited:ab},ob.UNMOUNTED=QA,ob.EXITED=eb,ob.ENTERING=tb,ob.ENTERED=nb,ob.EXITING=rb;const ib=ob;var sb=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=XA(n.className,r):n.setAttribute("class",XA(n.className&&n.className.baseVal||"",r)));var n,r}))},lb=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}HA(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&&JA(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&&sb(e,r),o&&sb(e,o),a&&sb(e,a)},n.render=function(){var e=this.props,t=(e.classNames,zA(e,["classNames"]));return J.createElement(ib,GA({},t,{onEnter:this.onEnter,onEntered:this.onEntered,onEntering:this.onEntering,onExit:this.onExit,onExiting:this.onExiting,onExited:this.onExited}))},t}(J.Component);lb.defaultProps={classNames:""},lb.propTypes={};const cb=lb;var db=n(2971),ub={};ub.styleTagTransform=M(),ub.setAttributes=B(),ub.insert=T().bind(null,"head"),ub.domAPI=k(),ub.insertStyleElement=P(),w()(db.A,ub),db.A&&db.A.locals&&db.A.locals;class hb extends J.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 J.createElement("li",{className:fg()("filterNavigatorBarItem",o,{filterNavigatorBarRootItem:e,filterNavigatorBarSelectedItem:n,filterNavigatorBarLeafItem:t}),title:i,onClick:a?this._onClick:null},a?J.createElement("button",{type:"button",className:"filterNavigatorBarItemContent"},r):J.createElement("span",{className:"filterNavigatorBarItemContent"},r))}}class pb extends J.PureComponent{render(){const{className:e,items:t,selectedItem:n,uncommittedItem:r,onPop:o}=this.props;return J.createElement(ZA,{component:"ol",className:fg()("filterNavigatorBar",e)},t.map(((e,a)=>J.createElement(cb,{key:a,classNames:"filterNavigatorBarTransition",timeout:250},J.createElement(hb,{index:a,onClick:a!==t.length-1||r?o:null,isFirstItem:0===a,isLastItem:a===t.length-1,isSelectedItem:a===n},e)))),r?J.createElement(cb,{key:t.length,classNames:"filterNavigatorBarUncommittedTransition",timeout:0},J.createElement(hb,{index:t.length,isFirstItem:!1,isLastItem:!0,isSelectedItem:!1,additionalClassName:"filterNavigatorBarUncommittedItem",title:r},r)):null)}}var mb=n(5800),fb={};fb.styleTagTransform=M(),fb.setAttributes=B(),fb.insert=T().bind(null,"head"),fb.domAPI=k(),fb.insertStyleElement=P(),w()(mb.A,fb),mb.A&&mb.A.locals&&mb.A.locals;const gb=lt({mapStateToProps:e=>{const t=Id.getLocalizedTransformLabels(e);return{className:"calltreeTransformNavigator",items:t,selectedItem:t.length-1}},mapDispatchToProps:{onPop:Zh},component:pb}),Ab=()=>J.createElement("div",{className:"treeAndSidebarWrapper",id:"calltree-tab",role:"tabpanel","aria-labelledby":"calltree-tab-button"},J.createElement(UA,null),J.createElement(gb,null),J.createElement(vA,null));class bb extends J.PureComponent{render(){const{isMarkerTableEmptyInFullRange:e,threadName:t}=this.props;return J.createElement(uA,{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 Cb=lt({mapStateToProps:e=>({threadName:Id.getFriendlyThreadName(e),isMarkerTableEmptyInFullRange:Id.getAreMarkerPanelsEmptyInFullRange(e)}),component:bb});var yb=n(291),vb={};vb.styleTagTransform=M(),vb.setAttributes=B(),vb.insert=T().bind(null,"head"),vb.domAPI=k(),vb.insertStyleElement=P(),w()(yb.A,vb),yb.A&&yb.A.locals&&yb.A.locals;class wb extends J.PureComponent{constructor(...e){super(...e),this._contextMenu=null,this._takeContextMenuRef=e=>{this._contextMenu=e}}_mouseDownHandler(e){e.preventDefault()}componentDidMount(){if(this._contextMenu){const e=Sg.findDOMNode(this._contextMenu);e&&e.addEventListener("mousedown",this._mouseDownHandler)}}componentWillUnmount(){const e=Sg.findDOMNode(this._contextMenu);e&&e.removeEventListener("mousedown",this._mouseDownHandler)}render(){return J.createElement(Jg,{ref:this._takeContextMenuRef,...this.props},this.props.children?this.props.children:J.createElement("div",null))}}class Eb extends J.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 J.createElement(wb,{id:"MarkerFiltersContextMenu",className:"markerFiltersContextMenu",onShow:t,onHide:n},J.createElement(Yg,{onClick:this.filterSamplesByMarker},J.createElement(de,{id:"MarkerFiltersContextMenu--drop-samples-outside-of-markers-matching",vars:{filter:e},elems:{strong:J.createElement("strong",null)}},J.createElement(J.Fragment,null,"Drop samples outside of markers matching “",J.createElement("strong",null,"$",e),"”"))))}}const kb=lt({mapStateToProps:e=>({searchString:Ro(e),threadsKey:Go(e)}),mapDispatchToProps:{addTransformToStack:Yh},component:Eb});var xb=n(8734),Tb={};Tb.styleTagTransform=M(),Tb.setAttributes=B(),Tb.insert=T().bind(null,"head"),Tb.domAPI=k(),Tb.insertStyleElement=P(),w()(xb.A,Tb),xb.A&&xb.A.locals&&xb.A.locals;class Sb extends J.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();Vg({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 J.createElement("div",{className:"markerSettings"},J.createElement("ul",{className:"panelSettingsList"},t?J.createElement("li",{className:"panelSettingsListItem"},J.createElement(MA,{labelL10nId:"StackSettings--stack-implementation-label"})):null),J.createElement(de,{id:"MarkerSettings--panel-search",attrs:{label:!0,title:!0}},J.createElement(SA,{className:"markerSettingsSearchField",label:"Filter Markers:",title:"Only display markers that match a certain name",currentSearchString:e,onSearch:this._onSearch})),J.createElement(de,{id:"MarkerSettings--marker-filters",attrs:{title:!0}},J.createElement("button",{className:fg()("filterMarkersButton","photon-button","photon-button-ghost",{"photon-button-ghost--checked":n}),title:"Marker filters",type:"button",onClick:this._onClickToggleFilterButton,onMouseDown:this._onMouseDownToggleFilterButton,disabled:!e})),J.createElement(kb,{onShow:this._onShowFiltersContextMenu,onHide:this._onHideFiltersContextMenu}))}}const Bb=lt({mapStateToProps:e=>({searchString:Ro(e),allowSwitchingStackType:Ms(e)}),mapDispatchToProps:{changeMarkersSearchString:Oh},component:Sb});var Ib=n(3769),_b={};_b.styleTagTransform=M(),_b.setAttributes=B(),_b.insert=T().bind(null,"head"),_b.domAPI=k(),_b.insertStyleElement=P(),w()(Ib.A,_b),Ib.A&&Ib.A.locals&&Ib.A.locals;class Pb{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}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=rn(o.end-o.start)),t={start:(n=o.start,r=this._zeroAt,en(n-r)),duration:i,name:o.name,details:a},this._displayDataByIndex.set(e,t)}var n,r;return t}}class Nb extends J.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:"name",titleL10nId:"MarkerTable--name",minWidth:30,initialWidth:150,resizable:!0}],this._mainColumn={propName:"details",titleL10nId:"MarkerTable--details"},this._expandedNodeIds=[],this._onExpandedNodeIdsChange=()=>{},this._treeView=void 0,this._takeTreeViewRef=e=>this._treeView=e,this.getMarkerTree=zt()(((...e)=>new Pb(...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(),this._treeView&&this._treeView.scrollSelectionIntoView()}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 J.createElement("div",{className:"markerTable",id:"marker-table-tab",role:"tabpanel","aria-labelledby":"marker-table-tab-button"},J.createElement(Bb,null),0===t.length?J.createElement(Cb,null):J.createElement(lA,{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 Mb=lt({mapStateToProps:e=>({threadsKey:Go(e),scrollToSelectionGeneration:li(e),getMarker:Id.getMarkerGetter(e),markerIndexes:Id.getMarkerTableMarkerIndexes(e),selectedMarker:Id.getSelectedMarkerIndex(e),rightClickedMarkerIndex:Id.getRightClickedMarkerIndex(e),zeroAt:di(e),markerSchemaByName:Li(e),getMarkerLabel:Id.getMarkerTableLabelGetter(e),tableViewOptions:ai(e)}),mapDispatchToProps:{changeSelectedMarker:Fh,changeRightClickedMarker:Lh,onTableViewOptionsChange:e=>tp("marker-table",e)},component:Nb});var Fb=n(3631),Rb=n(4194),Db={};Db.styleTagTransform=M(),Db.setAttributes=B(),Db.insert=T().bind(null,"head"),Db.domAPI=k(),Db.insertStyleElement=P(),w()(Rb.A,Db),Rb.A&&Rb.A.locals&&Rb.A.locals;const{DOM_DELTA_PAGE:Lb,DOM_DELTA_LINE:Ob}="object"==typeof window&&window.WheelEvent?new WheelEvent("mouse"):{DOM_DELTA_LINE:1,DOM_DELTA_PAGE:2},Ub={KeyQ:"zoomIn",KeyY:"zoomIn",KeyE:"zoomOut",KeyU:"zoomOut",KeyW:"up",KeyK:"up",KeyS:"down",KeyJ:"down",KeyA:"left",KeyH:"left",KeyD:"right",KeyL:"right"},zb={ArrowUp:"zoomIn",ArrowDown:"zoomOut"},Gb=e=>{class t extends J.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(-Vb(e,n,"deltaX"),-Vb(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=Wb(r,1,a*t),s=i-a,l=Wb(0,1-i,n-s*e),c=Wb(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=zb[e.nativeEvent.code]):t=Ub[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(0,mt.rj)(zb))this._keysDown.delete(e);this._keysDown.delete(zb[e.nativeEvent.code]),this._keysDown.delete(Ub[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(0,mt.lC)(e)}requestAnimationFrame(this._keyboardNavigation)},this.moveViewport=(e,t)=>{const{viewportProps:{maxViewportHeight:n,timeRange:r,startsAtBottom:o,disableHorizontalMovement:a,marginLeft:i,marginRight:s}}=this.props,{containerWidth:l,containerHeight:c,viewportTop:d,isSizeSet:u}=this.state;if(!u)return;let h=d-t,p=h+c;n<c?o?(h=n-c,p=n):(h=0,p=c):p>n?(h=n-c,p=n):h<0&&(h=0,p=c),h!==d&&this.setState({viewportTop:h,viewportBottom:p}),a||this._addBatchedPreviewSelectionUpdate((({viewportLeft:t,viewportRight:n})=>{const o=n-t;if(o>=1)return{hasSelection:!1,isModifying:!1};const a=e*(o/(l-i-s));let c=t-a,d=n-a;c<0&&(c=0,d=o),d>1&&(c=1-o,d=1);const u=r.end-r.start;return{hasSelection:!0,isModifying:!1,selectionStart:r.start+u*c,selectionEnd:r.start+u*d}}))},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=Vb(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;wg().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&&(wg().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=fg()({chartViewport:!0,dragging:d},r),m=fg()({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 J.createElement("div",{className:p,onMouseDown:this._mouseDownListener,onKeyDown:this._keyDownListener,onKeyUp:this._keyUpListener,onBlur:this._onBlur,ref:this._takeContainerRef,tabIndex:0},J.createElement(e,{...t,viewport:f}),J.createElement("div",{className:m},"Zoom Chart:",J.createElement("kbd",{className:"chartViewportScrollKbd"},"Ctrl + Scroll"),"or",J.createElement("kbd",{className:"chartViewportScrollKbd"},"Shift + Scroll")))}}return lt({mapStateToProps:e=>({panelLayoutGeneration:Js(e),hasZoomedViaMousewheel:Zs(e)}),mapDispatchToProps:{setHasZoomedViaMousewheel:mm,updatePreviewSelection:jh},component:t})};function Wb(e,t,n){return Math.max(e,Math.min(t,n))}const Hb=15;function Vb(e,t,n){const r="deltaY"===n?e.deltaY:e.deltaX;switch(e.deltaMode){case Lb:return r*t;case Ob:return r*Hb}return r}var jb=n(4004),$b={};$b.styleTagTransform=M(),$b.setAttributes=B(),$b.insert=T().bind(null,"head"),$b.domAPI=k(),$b.insertStyleElement=P(),w()(jb.A,$b),jb.A&&jb.A.locals&&jb.A.locals;class Kb extends J.PureComponent{constructor(...e){super(...e),this._interiorElementRef=J.createRef(),this._previousPosition={horizontal:"after-mouse",vertical:"after-mouse"},this._overlayElement=(0,mt.Nn)(document.querySelector("#root-overlay"),"Expected to find a root overlay element."),this._mouseDownListener=e=>{e.stopPropagation()}}_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(0,mt.lC)(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 Sg.createPortal(J.createElement("div",{className:fg()("tooltip",this.props.className),onMouseDown:this._mouseDownListener,"data-testid":"tooltip",style:{left:0,top:0},ref:this._interiorElementRef},this.props.children),this._overlayElement)}}var Yb=n(1172),qb={};qb.styleTagTransform=M(),qb.setAttributes=B(),qb.insert=T().bind(null,"head"),qb.domAPI=k(),qb.insertStyleElement=P(),w()(Yb.A,qb),Yb.A&&Yb.A.locals&&Yb.A.locals;class Zb extends J.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,selectedItem: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=>{if(this._mouseMovedWhileClicked)return;const{onSelectItem:t}=this.props;0===e.button&&t&&(this.props.stickyTooltips&&this.setState((t=>({selectedItem:t.hoveredItem,pageX:e.pageX,pageY:e.pageY}))),t(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=!!(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?null===this.state.selectedItem?this.setState({hoveredItem:n,pageX:e.pageX,pageY:e.pageY}):this.setState({hoveredItem:n}):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,selectedItem:t}=this.state;return null!==t?this.props.getHoveredItemInfo(t):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&&(0,yn.l)(`${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||Xb(this.props.hitTest(this._offsetX,this._offsetY),e)||this.setState({hoveredItem:null})}componentDidUpdate(e,t){e!==this.props?(null!==this.state.selectedItem&&t.selectedItem===this.state.selectedItem&&this.setState({selectedItem:null}),this._scheduleDraw()):Xb(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=fg()({chartCanvas:!0,[this.props.className]:!0,hover:null!==t}),a=this._getHoveredItemInfo();return J.createElement("div",null,J.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?J.createElement(Kb,{mouseX:n,mouseY:r,className:fg()({clickable:null!==this.state.selectedItem})},a):null)}}function Xb(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 Jb=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(){return this.getTextWidth("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.()< /:-_")/61}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.getTextWidth(e.substring(0,t)),r=e=>Math.round((o-n(e))/this._averageCharWidth),o=t-this.minWidth,a=o/this._averageCharWidth;let i=Math.floor(a);if(i<1)return"";i+=r(i);const s=r(i);for(s>=1&&(i+=s);n(i)>o;)--i;return e.substring(0,i)+this.overflowChar}},Qb="#ed00b5",eC="#6200a4",tC="#45a1ff",nC="#0060df",rC="#30e60b",oC="#12bc00",aC="#d70022",iC="#a4000f",sC="#ff9400",lC="#a44900",cC="#d7d7db",dC="#b1b1b3",uC="#737373",hC={selectedFillStyle:dC,unselectedFillStyle:dC+"60",selectedTextColor:"#000",gravity:10},pC={selectedFillStyle:uC,unselectedFillStyle:uC+"60",selectedTextColor:"#fff",gravity:11},mC={transparent:{selectedFillStyle:"transparent",unselectedFillStyle:"transparent",selectedTextColor:"#000",gravity:0},lightblue:{selectedFillStyle:tC,unselectedFillStyle:tC+"60",selectedTextColor:"#000",gravity:1},red:{selectedFillStyle:aC,unselectedFillStyle:aC+"60",selectedTextColor:"#fff",gravity:1},lightred:{selectedFillStyle:iC+"60",unselectedFillStyle:iC+"30",selectedTextColor:"#000",gravity:1},orange:{selectedFillStyle:sC,unselectedFillStyle:sC+"60",selectedTextColor:"#fff",gravity:2},blue:{selectedFillStyle:nC,unselectedFillStyle:nC+"60",selectedTextColor:"#fff",gravity:3},green:{selectedFillStyle:oC,unselectedFillStyle:oC+"60",selectedTextColor:"#fff",gravity:4},purple:{selectedFillStyle:eC,unselectedFillStyle:eC+"60",selectedTextColor:"#fff",gravity:5},yellow:{selectedFillStyle:"#ffe129",unselectedFillStyle:"#ffe90070",selectedTextColor:"#000",gravity:6},brown:{selectedFillStyle:lC,unselectedFillStyle:lC+"60",selectedTextColor:"#fff",gravity:7},magenta:{selectedFillStyle:Qb,unselectedFillStyle:Qb+"60",selectedTextColor:"#fff",gravity:8},lightgreen:{selectedFillStyle:rC,unselectedFillStyle:rC+"60",selectedTextColor:"#fff",gravity:9},gray:hC,grey:hC,darkgray:pC,darkgrey:pC};function fC(e){const t=mC[e];return void 0!==t?t:(console.error(`Unknown color name '${e}' encountered. Consider updating this code to handle it.`),hC)}function gC(e){return"transparent"===e?{selectedFillStyle:cC,unselectedFillStyle:cC+"60",selectedTextColor:"#000",gravity:8}:fC(e)}var AC=n(5865),bC=n(797),CC={};function yC({additionalClassName:e,max:t,value:n,color:r,ariaLabel:o}){const a=n/t*100+"%",i=r?`var(--category-color-${r})`:"var(--blue-40)";return J.createElement("div",{className:`tooltipCallNodeGraphMeter ${e}`,role:"meter","aria-label":o,"aria-valuemax":t,"aria-valuemin":0,"aria-valuenow":n},n>0?J.createElement("div",{className:"tooltipCallNodeGraphMeterBar",style:{width:a,background:i}}):null)}function vC({isHeader:e,max:t,self:n,total:r,color:o,labelQualifier:a}){return J.createElement("div",{className:fg()("tooltipCallNodeGraph",{tooltipCategoryRowHeader:e})},J.createElement(yC,{additionalClassName:"tooltipCallNodeGraphMeterTotal",max:t,value:r,color:o,ariaLabel:`Total samples ${a}`}),J.createElement(yC,{additionalClassName:"tooltipCallNodeGraphMeterSelf",max:t,value:n,color:o,ariaLabel:`Self samples ${a}`}))}CC.styleTagTransform=M(),CC.setAttributes=B(),CC.insert=T().bind(null,"head"),CC.domAPI=k(),CC.insertStyleElement=P(),w()(bC.A,CC),bC.A&&bC.A.locals&&bC.A.locals;class wC extends J.PureComponent{_renderOneSubCategoryLine(e,t,n,r,o,a,i,s){const{categories:l,weightType:c}=this.props,d=l[t].color;return J.createElement(J.Fragment,{key:`${t}-${n}`},J.createElement("div",{className:fg()({tooltipCallNodeName:!0,tooltipLabel:!0,tooltipCategoryRowHeader:s})},e),J.createElement(vC,{self:r,total:o,max:a,labelQualifier:`for ${e}`,color:d,isHeader:s}),J.createElement("div",{className:fg()({tooltipCallNodeTiming:!0,tooltipCategoryRowHeader:s})},$t(c,i,o)),J.createElement("div",{className:fg()({tooltipCallNodeTiming:!0,tooltipCategoryRowHeader:s})},0===r?"—":$t(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((0,Cn.LU)(i,n,e),n,e,s,o,t.value,r,!0)),l}const c=i[n].name;l.push(this._renderOneSubCategoryLine(c,n,-1,s,o,t.value,r,!0));const d=o=>{const s=a[o];if(0===s)return;const c=e.breakdownByCategory?e.breakdownByCategory[n].subcategoryBreakdown[o]:0;l.push(this._renderOneSubCategoryLine(i[n].subcategories[o],n,o,c,s,t.value,r,!1))};for(let e=1;e<a.length;e++)d(e);return d(0),l}_renderCategoryTimings(e){if(!e)return null;const{totalTime:t,selfTime:n}=e.forPath,r=t.breakdownByCategory;if(!r)return null;const{thread:o,weightType:a}=this.props,i=Boolean(o.isJsTracer);return J.createElement("div",{className:"tooltipCallNodeCategory"},J.createElement("div",null),J.createElement("div",{className:"tooltipCallNodeHeader"}),J.createElement("div",{className:"tooltipCallNodeHeader"},J.createElement("span",{className:"tooltipCallNodeHeaderSwatchRunning"}),"Running"),J.createElement("div",{className:"tooltipCallNodeHeader"},J.createElement("span",{className:"tooltipCallNodeHeaderSwatchSelf"}),"Self"),J.createElement("div",{className:"tooltipLabel tooltipCategoryLabel tooltipCategoryRowHeader"},"Overall"),J.createElement(vC,{self:n.value,total:t.value,max:t.value,labelQualifier:"overall",isHeader:!0}),J.createElement("div",{className:"tooltipCallNodeTiming tooltipCategoryRow tooltipCategoryRowHeader"},$t(a,i,t.value)),J.createElement("div",{className:"tooltipCallNodeTiming tooltipCategoryRow tooltipCategoryRowHeader"},0===n.value?"—":$t(a,i,n.value)),r.map(((e,r)=>this._maybeRenderOneCategoryGroup({totalTime:t,selfTime:n},r,i))))}render(){const{callNodeIndex:e,thread:t,durationText:n,categories:r,displayData:o,timings:a,callTreeSummaryStrategy:i,innerWindowIDToPageMap:s,callNodeInfo:l,displayStackType:c}=this.props,d=l.getCallNodeTable(),u=d.category[e],h=r[u].color,p=d.subcategory[e],m=d.func[e],f=d.innerWindowID[e],g=t.funcTable.name[m],A=t.stringTable.getString(g);let b=null;const C=t.funcTable.fileName[m];if(null!==C){let e=t.stringTable.getString(C);e=(0,AC.o)(e).path;const n=t.funcTable.lineNumber[m];if(null!==n){e+=":"+n;const r=t.funcTable.columnNumber[m];null!==r&&(e+=":"+r)}b=[J.createElement("div",{className:"tooltipLabel",key:"file"},"File:"),J.createElement("div",{className:"tooltipDetailsUrl",key:"fileVal"},e)]}let y=null;const v=t.funcTable.resource[m];if(-1!==v){const e=t.resourceTable.name[v];y=[J.createElement("div",{className:"tooltipLabel",key:"resource"},"Resource:"),t.stringTable.getString(e)]}let w;if(s){const e=s.get(f);if(e)if(0!==e.embedderInnerWindowID){w=[J.createElement("div",{className:"tooltipLabel",key:"iframe"},"iframe URL:"),J.createElement("div",{className:"tooltipDetailsUrl",key:"iframeVal"},e.url)];const t=s.get(e.embedderInnerWindowID);t&&w.push(J.createElement("div",{className:"tooltipLabel",key:"page"},"Page URL:"),J.createElement("div",{key:"pageVal"},t.url,t.isPrivateBrowsing?" (private)":null))}else w=[J.createElement("div",{className:"tooltipLabel",key:"page"},"Page URL:"),J.createElement("div",{className:"tooltipDetailsUrl",key:"pageVal"},e.url,e.isPrivateBrowsing?" (private)":null)]}const E=function(e,t){return vr.cpp(e,t)?"native":vr.js(e,t)?"js":"unsymbolicated"}(t,m);let k;switch(E){case"native":k="Native";break;case"js":k="Ruby";break;case"unsymbolicated":k=t.funcTable.isJS[m]?"Unsymbolicated native":"Unsymbolicated or generated JIT instructions";break;default:throw new Error(`Unknown stack type case "${E}".`)}return J.createElement("div",{className:"tooltipCallNode"},J.createElement("div",{className:"tooltipOneLine tooltipHeader"},J.createElement("div",{className:"tooltipTiming"},n),J.createElement("div",{className:"tooltipTitle"},A),J.createElement("div",{className:"tooltipIcon"},o&&o.icon?J.createElement(AA,{displayData:o}):null)),J.createElement("div",{className:"tooltipCallNodeDetails"},"timing"!==i&&o?J.createElement("div",{className:"tooltipDetails tooltipCallNodeDetailsLeft"},J.createElement("div",{className:"tooltipLabel"},"Total Bytes:"),J.createElement("div",null,o.totalWithUnit),J.createElement("div",{className:"tooltipLabel"},"Self Bytes:"),J.createElement("div",null,o.selfWithUnit)):null,J.createElement("div",{className:"tooltipDetails tooltipCallNodeDetailsLeft"},c?J.createElement(J.Fragment,null,J.createElement("div",{className:"tooltipLabel"},"Stack Type:"),J.createElement("div",null,k)):null,J.createElement("div",{className:"tooltipLabel"},"Category:"),J.createElement("div",null,J.createElement("span",{className:`colored-square category-color-${h}`}),(0,Cn.LU)(r,u,p)),w,b,y),this._renderCategoryTimings(a)))}}function EC({label:e,children:t}){return null==t||""===t?null:J.createElement(J.Fragment,null,J.createElement("div",{className:"tooltipLabel"},e,":"),t)}function kC(){return J.createElement("div",{className:"tooltipDetailSeparator"})}function xC({children:e}){return J.createElement("div",{className:"tooltipDetails"},e)}var TC=n(9525),SC={};SC.styleTagTransform=M(),SC.setAttributes=B(),SC.insert=T().bind(null,"head"),SC.domAPI=k(),SC.insertStyleElement=P(),w()(TC.A,SC),TC.A&&TC.A.locals&&TC.A.locals;const BC=["domainLookupStart","domainLookupEnd","connectStart","tcpConnectEnd","secureConnectionStart","connectEnd"],IC=["startTime",...BC,"requestStart","responseStart","responseEnd","endTime"],_C=IC.slice();_C.splice(1,BC.length);const PC={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"},NC={startTime:0,domainLookupStart:.5,domainLookupEnd:.5,connectStart:.5,tcpConnectEnd:.5,secureConnectionStart:.5,connectEnd:.5,requestStart:.75,responseStart:1,responseEnd:0,endTime:0};class MC extends J.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=NC[n];return J.createElement(J.Fragment,null,J.createElement("div",{className:"tooltipLabel"},PC[n],":"),J.createElement("div",{"aria-label":`Starting at ${Vt(e)} milliseconds, duration is ${Vt(r)} milliseconds`},Qt(r)),J.createElement("div",{className:fg()("tooltipNetworkPhase",{tooltipNetworkPhaseEmpty:0===i}),"aria-hidden":"true",style:{marginLeft:o+"%",marginRight:100-o-a+"%",opacity:0===i?null:i}}))}}class FC extends J.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(J.createElement(MC,{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=BC.filter((t=>"number"==typeof e[t])),a=r-n,i=this._getPhasesForProperties(o,a,n);return J.createElement(J.Fragment,null,J.createElement("h3",{className:"tooltipNetworkTitle3"},"Preconnect (starting at ",Qt(n-t),")"),i)}render(){const{payload:e}=this.props,t=rr(e.contentType||nr(e));if("STATUS_START"===e.status)return null;const n=this._renderPreconnectPhases(),r=(n?_C:IC).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 J.createElement("div",{className:`tooltipNetworkPhases ${t}`},J.createElement(MC,{propertyName:"responseStart",startPosition:0,phaseDuration:o,dur:o}));const a=this._getPhasesForProperties(r,o,e.startTime);return J.createElement("div",{className:`tooltipNetworkPhases ${t}`},n?J.createElement(J.Fragment,null,n,J.createElement("h3",{className:"tooltipNetworkTitle3"},"Actual request")):null,a)}}var RC=n(6455),DC={};function LC(e){const{stackIndex:t,thread:n,implementationFilter:r,maxStacks:o,categories:a}=e,i=Er(n,r,(0,Cn.dQ)(n,t)),s=(0,Cn.RM)(i,n).reverse();return s.length?J.createElement("ul",{className:"backtrace"},s.slice(0,o).map((({funcName:e,origin:t,isFrameLabel:n,category:r},o)=>J.createElement("li",{key:o,className:fg()("backtraceStackFrame",{backtraceStackFrame_isFrameLabel:n})},J.createElement("span",{className:`colored-border category-color-${a[r].color}`,title:a[r].name}),e,J.createElement("em",{className:"backtraceStackFrameOrigin"},t)))),s.length>o?[J.createElement("span",{key:s.length,className:"colored-border ellipsis"}),"…"]:null):J.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 OC(e){return J.createElement(EC,{key:"GC Phase - "+e.name,label:"Phase "+e.name},Qt(e.time/1e3))}function UC(e){const t=[];for(const n in e)"Total"!==n&&t.push({name:n,time:e[n]});return t}function zC(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,zC(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 GC(e){const t=[];for(const{branches:n,leaf:r,value:o}of e.values())r?t.push(o):t.push(...GC(n));return t}function WC(e,t){for(const n of e.values())t(n),WC(n.branches,t)}function HC(e,t){const n=UC(e),r=" (self-time)",o=new Map;for(const e of n)zC(o,e.name.split("."),e);WC(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=GC(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]))}DC.styleTagTransform=M(),DC.setAttributes=B(),DC.insert=T().bind(null,"head"),DC.domAPI=k(),DC.insertStyleElement=P(),w()(RC.A,DC),RC.A&&RC.A.locals&&RC.A.locals;var VC=n(5887),jC={};function $C(e,t){return void 0!==e&&void 0!==t?Qt(t-e):"unknown"}jC.styleTagTransform=M(),jC.setAttributes=B(),jC.insert=T().bind(null,"head"),jC.domAPI=k(),jC.insertStyleElement=P(),w()(VC.A,jC),VC.A&&VC.A.locals&&VC.A.locals;class KC extends J.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 J.createElement(EC,{label:"Page"},J.createElement("div",{className:"tooltipDetailsUrl"},J.createElement("span",{className:"tooltipDetailsDim"},r),e,J.createElement("span",{className:"tooltipDetailsDim"},a),t,o.isPrivateBrowsing?" (private)":null))}catch(e){let n=o.url;return t&&(n+=t),o.isPrivateBrowsing&&(n+=" (private)"),J.createElement(EC,{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[J.createElement(EC,{label:"Recording Thread",key:"recording"},r),o?J.createElement(EC,{label:"Occurring Thread",key:"occurring"},`${o} (TID: ${e})`):J.createElement(EC,{label:"Occurring Thread ID",key:"occurring"},e)]}return[J.createElement(EC,{label:"Track",key:"thread"},r)]}_renderMarkerDetails(){const{marker:e,markerSchemaByName:t,thread:n,threadIdToNameMap:r,processIdToNameMap:o}=this.props,a=e.data,i=[];if(a){const s=Mn(t,e.name,e.data);if(s)for(const e of s.data){if(void 0===e.value){const{key:t,label:l,format:c}=e;if(t in a){const e=a[t];null!=e&&i.push(J.createElement(EC,{key:s.name+"-"+t,label:l||t},Un(s.name,c,e,n.stringTable,r,o)))}}if(void 0===e.key){const{label:t,value:n}=e,r=t+"-"+n;i.push(J.createElement(EC,{key:r,label:t},J.createElement("div",{className:"tooltipDetailsDescription"},n)))}}switch(a.type){case"GCMinor":i.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(J.createElement(EC,{label:"Reason",key:"GCMinor-Reason"},r.reason),J.createElement(EC,{label:"Bytes tenured",key:"GCMinor-Bytes tenured"},on(r.bytes_tenured,r.bytes_used,qt))),r.cells_tenured&&r.cells_allocated_nursery&&t.push(J.createElement(EC,{label:"Cells tenured",key:"GCMinor-Cells tenured"},on(r.cells_tenured,r.cells_allocated_nursery,Zt))),r.cur_capacity&&t.push(J.createElement(EC,{label:"Bytes used",key:"GCMinor-Bytes used"},on(r.bytes_used,r.cur_capacity,qt))),r.new_capacity&&t.push(J.createElement(EC,{label:"New nursery size",key:"GCMinor-New nursery size"},qt(r.new_capacity))),r.lazy_capacity&&t.push(J.createElement(EC,{label:"Lazy-allocated size",key:"GCMinor-Lazy-allocated size"},qt(r.lazy_capacity))),r.cells_allocated_nursery&&r.cells_allocated_tenured&&t.push(J.createElement(EC,{label:"Nursery allocations since last minor GC",key:"GCMinor-Nursery allocations since last minor GC"},on(r.cells_allocated_nursery,r.cells_allocated_nursery+r.cells_allocated_tenured,Zt))),e&&(t.push(J.createElement(EC,{label:"Tenuring allocation rate",key:"GCMinor-bytes_tenured"},qt(r.bytes_tenured/(e/1e6))+"/s")),r.cells_tenured&&t.push(J.createElement(EC,{label:"Tenuring allocation rate",key:"GCMinor-cells_tenured"},Zt(r.cells_tenured/(e/1e7))+"/s")),r.strings_tenured&&r.strings_deduplicated&&t.push(J.createElement(EC,{label:"Strings deduplicated when tenuring",key:"GCMinor-strings_deduped"},on(r.strings_deduplicated,r.strings_deduplicated+r.strings_tenured,Zt)))),r.chunk_alloc_us&&t.push(J.createElement(EC,{label:"Time spent allocating chunks in mutator",key:"GCMinor-Time spent allocating chunks in mutator"},Jt(r.chunk_alloc_us))),r.groups_pretenured&&t.push(J.createElement(EC,{label:"Number of groups to pretenure",key:"GCMinor-Number of groups to pretenure"},Vt(r.groups_pretenured,2,0))),t.push(...UC(r.phase_times).filter((e=>e.time>250)).map(OC));break}case"nursery disabled":t.push(J.createElement(EC,{label:"Status",key:"GCMinor-Status"},"Nursery disabled"));break;case"nursery empty":t.push(J.createElement(EC,{label:"Status",key:"GCMinor-nursery empty"},"Nursery empty"))}}var n;return t}(a));break;case"GCMajor":i.push(...function(e){const t=[],n=e.timings;switch(n.status){case"aborted":t.push(J.createElement(EC,{label:"Status",key:"GMajor-Status"},"Aborted (OOM)"));break;case"completed":{let e=null;n.nonincremental_reason&&"None"!==n.nonincremental_reason&&(e=J.createElement(EC,{label:"Non-incremental reason",key:"GMajor-Non-incremental reason"},n.nonincremental_reason));const r=HC(n.phase_times,6);let o;const a=n.post_heap_size;o=void 0!==a?J.createElement(EC,{label:"Heap size (pre - post)",key:"GMajor-Heap size (pre - post)"},qt(n.allocated_bytes)+" - "+qt(a)):J.createElement(EC,{label:"Heap size (pre)",key:"GMajor-Heap size (pre)"},qt(n.allocated_bytes)),t.push(e,J.createElement(EC,{label:"Reason",key:"GCMajor-reason"},n.reason),J.createElement(EC,{label:"Total slice times",key:"GMajor-Total slice times"},Qt(n.total_time,3,2)),J.createElement(EC,{label:"Max Pause",key:"GMajor-Make Pause"},Qt(n.max_pause,3,2)),o,J.createElement(EC,{label:"MMU 20ms",key:"GMajor-MMU 20ms"},Kt(n.mmu_20ms)),J.createElement(EC,{label:"MMU 50ms",key:"GMajor-MMU 50s"},Kt(n.mmu_50ms)),J.createElement(EC,{label:"Minor GCs",key:"GMajor-Minor GCs"},n.minor_gcs),J.createElement(EC,{label:"Slices",key:"GMajor-Slices"},n.slices),J.createElement(EC,{label:"Zones",key:"GMajor-Zones"},on(n.zones_collected,n.total_zones,String)),J.createElement(EC,{label:"Compartments",key:"GMajor-Compartments"},n.total_compartments),...r.map(OC));break}}return t}(a));break;case"GCSlice":i.push(...function(e){const t=[],n=e.timings;let r=null;n.trigger_amount&&n.trigger_threshold&&(r=J.createElement(EC,{label:"Trigger (amt/trig)",key:"GSlice-Trigger (amt/trig)"},on(n.trigger_amount,n.trigger_threshold,qt,!1)));const o=HC(n.phase_times,6);return t.push(J.createElement(EC,{label:"Reason",key:"GSlice-Reason"},n.reason),J.createElement(EC,{label:"Budget",key:"GSlice-Budget"},n.budget),J.createElement(EC,{label:"States (pre - post)",key:"GSlice-States (pre - post)"},n.initial_state+" – "+n.final_state),r,J.createElement(EC,{label:"Page faults",key:"GSlice-Page faults"},n.page_faults),...o.map(OC)),t}(a));break;case"Network":i.push(...function(e){let t=e.contentType,n="MIME type";null==t&&(t=nr(e),n="Guessed MIME type");const r=rr(t),o=[];return o.push(J.createElement(EC,{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(0,mt.lC)(e)}}(e.status))),void 0!==e.redirectType&&o.push(J.createElement(EC,{label:"Redirection type",key:"Redirection-Type"},e.redirectType+(e.isHttpToHttpsRedirect?" (HTTP to HTTPS)":""))),o.push(J.createElement(EC,{label:"Cache",key:"Network-Cache"},e.cache),J.createElement(EC,{label:"URL",key:"Network-URL"},J.createElement("span",{className:"tooltipDetailsUrl"},e.URI))),e.RedirectURI&&o.push(J.createElement(EC,{label:"Redirect URL",key:"Network-Redirect URL"},J.createElement("span",{className:"tooltipDetailsUrl"},e.RedirectURI))),o.push(J.createElement(EC,{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(J.createElement(EC,{label:n,key:"Network-"+n},J.createElement("div",{className:"tooltipNetworkMimeType"},J.createElement("span",{className:`tooltipNetworkMimeTypeSwatch colored-square ${r}`,title:t}),t))),e.isPrivateBrowsing&&o.push(J.createElement(EC,{label:"Private Browsing",key:"Network-Private Browsing"},"Yes")),"number"==typeof e.count&&o.push(J.createElement(EC,{label:"Requested bytes",key:"Network-Requested Bytes"},qt(e.count))),o}(a));break;case"IPC":i.push(J.createElement(EC,{label:"Send Thread Latency",key:"IPC-Send Thread Latency"},$C(a.startTime,a.sendStartTime)),J.createElement(EC,{label:"IPC Send Duration",key:"IPC-IPC Send Duration"},$C(a.sendStartTime,a.sendEndTime)),J.createElement(EC,{label:"IPC Recv Latency",key:"IPC-IPC Recv Latency"},$C(a.sendEndTime,a.recvEndTime)),J.createElement(EC,{label:"Recv Thread Latency",key:"IPC-Recv Thread Latency"},$C(a.recvEndTime,a.endTime)));break;case"CompositorScreenshot":if(void 0!==a.url){const{width:e,height:t}=ur(a,350);i.push(J.createElement(EC,{label:"Image",key:"CompositorScreenshot-image"},J.createElement("img",{className:"tooltipScreenshotImg",src:n.stringTable.getString(a.url),style:{width:e,height:t}})),J.createElement(EC,{label:"Window Size",key:"CompositorScreenshot-window size"},J.createElement(J.Fragment,null,a.windowWidth,"px × ",a.windowHeight,"px")),J.createElement(EC,{label:"Description",key:"CompositorScreenshot-description"},"This marker spans the time between each composite of a window and shows the window contents during that time."),J.createElement(EC,{label:"Window ID",key:"CompositorScreenshot-window id"},a.windowID))}else"CompositorScreenshotWindowDestroyed"===e.name&&i.push(J.createElement(EC,{label:"Description",key:"CompositorScreenshot-description"},"This marker shows the moment a window has been destroyed."),J.createElement(EC,{label:"Window ID",key:"CompositorScreenshot-window id"},a.windowID))}}return i}_maybeRenderMarkerDuration(){const{marker:e}=this.props;if(null===e.end)return null;const t=e.incomplete?"unknown duration":rn(e.end-e.start,3,1);return J.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[J.createElement(kC,{key:"backtrace-separator"}),J.createElement(EC,{label:"Stack",key:"backtrace"},J.createElement("div",{className:"tooltipDetailsBackTrace"},l>0?J.createElement("h2",{className:"tooltipBackTraceTitle"},"Styles"===a.type||"Reflow"===e.name?`First invalidated ${rn(l)} before the flush, at:`:`Triggered ${rn(l)} ago, at:`):null,J.createElement(LC,{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?J.createElement(FC,{payload:e,zeroAt:t}):null}_renderTitle(){const{markerIndex:e,getMarkerLabel:t}=this.props;return t(e)}render(){const{className:e}=this.props;return J.createElement("div",{className:fg()("tooltipMarker",e)},J.createElement("div",{className:"tooltipHeader"},J.createElement("div",{className:"tooltipOneLine"},this._maybeRenderMarkerDuration(),J.createElement("div",{className:"tooltipTitle"},this._renderTitle()))),J.createElement(xC,null,this._renderMarkerDetails(),this._renderThreadDetails(),this._maybeRenderPageUrl(),this._maybeRenderBacktrace()),this._maybeRenderNetworkPhases())}}const YC=lt({mapStateToProps:(e,t)=>{const n=Sd(t.threadsKey);return{threadName:n.getFriendlyThreadName(e),thread:n.getThread(e),implementationFilter:Eo(e),pages:Ci(e),innerWindowIDToPageMap:Wi(e),zeroAt:di(e),threadIdToNameMap:Ss(e),processIdToNameMap:Bs(e),markerSchemaByName:Li(e),getMarkerLabel:n.getMarkerTooltipLabelGetter(e),categories:Ri(e)}},component:KC});var qC=n(2487),ZC={};ZC.styleTagTransform=M(),ZC.setAttributes=B(),ZC.insert=T().bind(null,"head"),ZC.domAPI=k(),ZC.insertStyleElement=P(),w()(qC.A,ZC),qC.A&&qC.A.locals&&qC.A.locals;class XC extends J.PureComponent{constructor(...e){super(...e),this._textMeasurement=void 0,this._textMeasurementCssToDeviceScale=1,this._scrollSelectionIntoView=()=>{const{selectedCallNodeIndex:e,callNodeInfo:t}=this.props;if(null===e)return;const n=16*t.getCallNodeTable().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: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 ku(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 Jb(e),this._textMeasurementCssToDeviceScale=v);const E=this._textMeasurement,k=p*v,x=m*v;y.set("#ffffff"),e.fillRect(0,0,k,x);const T=A*v,S=Math.floor(A/s),B=Math.ceil(b/s),I=g-f,_=a-o,P=_*I,N=p-h-In.OI,M=N*v,F=P/N,R=o+_*f-F*h,D=o+_*g+F*In.OI,L=e=>v*(h+(e-f)*N/I),O=16*v,U=1*v,z=3*v,G=11*v;let W=c.findIndex((e=>"JavaScript"===e.name));-1===W&&(W=0);const H=d.getCallNodeTable();for(let t=S;t<B;t++){const n=i[t];if(!n)continue;let a=0;for(let i=0;i<n.length;i++)if(n.end[i]>R&&n.start[i]<D){const s=(n.start[i]-o)/_,d=(n.end[i]-o)/_,h=L(s),p=(d-s)*M/I-1;let m=h,f=p,g=!0;if(h>=a?g=!1:h+p>a&&(f=p-(a-h),m=a,g=!1),g)continue;const A=Math.floor(m),b=Math.round(t*O-T),v=Math.ceil(Math.max(1,f)),w=Math.round(O-U);let k,x,S;if(n.callNode){const e=n.callNode[i],t=H.func[e],o=r.funcTable.name[t];k=r.stringTable.getString(o),x=c[H.category[e]],S=l===e}else{const e=n.index[i];k=u(e).data.name,x=c[W],S=l===e}const B=C&&t===C.depth&&i===C.stackTimingIndex,P=gC(x.color);y.set(B||S?P.selectedFillStyle:P.unselectedFillStyle),e.fillRect(A,b,v+.4,w),a=A+v+1;const N=Math.max(h,0)+z,F=Math.max(0,p-(N-h));if(F>E.minWidth){const t=E.getFittedText(k,F);t&&(y.set(B||S?P.selectedTextColor:"#000000"),e.fillText(t,N,b+G))}}}y.set(Fb.wZ),e.fillRect(L(0),0,U,x),e.fillRect(L(1),0,U,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)return null;if(p.index){const e=p.index[t];return J.createElement(YC,{markerIndex:e,marker:l(e),threadsKey:o,restrictHeightWidth:!0})}const m=p.callNode[t];if(void 0===m)return null;const f=p.end[t]-p.start[t];return J.createElement(wC,{thread:n,weightType:r,innerWindowIDToPageMap:u,interval:d,callNodeIndex:m,callNodeInfo:s,categories:i,callTreeSummaryStrategy:"timing",durationText:Qt(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+(s-i)*((e-a)/(c-a-In.OI)))*(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-In.OI,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 J.createElement(Zb,{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 JC=Gb(XC);class QC extends J.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.":_n.TN`
|
115
|
-
Try broadening the selected range, removing search terms, or call tree transforms
|
116
|
-
to view samples.
|
117
|
-
`,J.createElement(uA,{threadName:n,reason:r,viewName:"stack chart"})}}const ey=lt({mapStateToProps:e=>({threadName:Id.getFriendlyThreadName(e),thread:Id.getThread(e),rangeFilteredThread:Id.getRangeFilteredThread(e)}),component:QC});var ty=n(7559),ny={};ny.styleTagTransform=M(),ny.setAttributes=B(),ny.insert=T().bind(null,"head"),ny.domAPI=k(),ny.insertStyleElement=P(),w()(ty.A,ny),ty.A&&ty.A.locals&&ty.A.locals;class ry extends J.PureComponent{constructor(...e){super(...e),this._viewport=null,this._onSelectedCallNodeChange=e=>{const{callNodeInfo:t,threadsKey:n,changeSelectedCallNode:r}=this.props;r(n,t.getCallNodePathFromIndex(e))},this._onRightClickedCallNodeChange=e=>{const{callNodeInfo:t,threadsKey:n,changeRightClickedCallNode:r}=this.props;r(n,t.getCallNodePathFromIndex(e))},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,thread:n,callNodeInfo:r,selectedCallNodeIndex:o,rightClickedCallNodeIndex:a,handleCallNodeTransformShortcut:i,updateBottomBoxContentsAndMaybeOpen:s}=this.props,l=null!==a?a:o;null!==l&&("Enter"!==e.key?i(e,t,l):s("stack-chart",(0,Cn.ae)(l,r,n)))},this._onCopy=e=>{if(document.activeElement===this._viewport){e.preventDefault();const{callNodeInfo:t,selectedCallNodeIndex:n,thread:r}=this.props;if(null!==n){const o=t.getCallNodeTable().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?In.cs: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,maxStackDepthPlusOne: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 J.createElement("div",{className:"stackChart",id:"stack-chart-tab",role:"tabpanel","aria-labelledby":"stack-chart-tab-button"},J.createElement(UA,{hideInvertCallstack:!0}),J.createElement(gb,null),0===n&&0===f.length?J.createElement(ey,null):J.createElement(eA,{id:"CallNodeContextMenu",attributes:{className:"treeViewContextMenu"}},J.createElement("div",{className:"stackChartContent",onKeyDown:this._handleKeyDown},J.createElement(JC,{viewportProps:{previewSelection:i,timeRange:o,maxViewportHeight:C,viewportNeedsUpdate:ay,marginLeft:A,marginRight:In.OI,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 oy=lt({mapStateToProps:e=>{const t=xo(e)?Id.getCombinedTimingRows(e):Id.getStackTimingByDepth(e);return{thread:Id.getFilteredThread(e),weightType:Id.getSamplesWeightType(e),maxStackDepthPlusOne:Id.getFilteredCallNodeMaxDepthPlusOne(e),combinedTimingRows:t,timeRange:ui(e),interval:bi(e),previewSelection:mi(e),threadsKey:Go(e),callNodeInfo:Id.getCallNodeInfo(e),categories:Ri(e),selectedCallNodeIndex:Id.getSelectedCallNodeIndex(e),rightClickedCallNodeIndex:Id.getRightClickedCallNodeIndex(e),scrollToSelectionGeneration:li(e),innerWindowIDToPageMap:Wi(e),getMarker:Id.getMarkerGetter(e),userTimings:Id.getUserTimingMarkerIndexes(e),timelineMarginLeft:ml(e),displayStackType:Ms(e)}},mapDispatchToProps:{changeSelectedCallNode:nh,changeRightClickedCallNode:rh,updatePreviewSelection:jh,handleCallNodeTransformShortcut:ip,updateBottomBoxContentsAndMaybeOpen:np,changeMouseTimePosition:ep},component:ry});function ay(e,t){return e.combinedTimingRows!==t.combinedTimingRows}const iy="#2c77d1";class sy extends J.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[a];let E=null===u?void 0:v[u];if("active-tab"===i.type&&void 0===E&&null!==h&&(E=h),e.lineWidth=1,A){let t=null===p?void 0:v[p];"active-tab"===i.type&&void 0===t&&null!==m&&(t=m),void 0!==E&&(this.clearRow(e,E),this.highlightRow(e,E),this.drawMarkers(e,u,E,E+1),null===h&&this.drawSeparatorsAndLabels(e,E,E+1,!0)),void 0!==t&&t!==E&&(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!==E&&this.highlightRow(e,E),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=zt()((e=>{const t=new Uint32Array(this.props.markerListLength);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[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 E=e=>w.start[e]<y+C&&w.end[e]>y-C,k=(0,Pc.lV)(w.start,y);if(k>0&&k<w.length){const e=k-1,t=w.start[k]-y,n=y-w.end[e]<t?e:k;E(n)&&(m=w.index[n])}else 0===k?E(k)&&(m=w.index[k]):E(k-1)&&(m=w.index[k-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}=xu(o,a,i);r({hasSelection:!0,isModifying:!1,selectionStart:s,selectionEnd:l})},this.onSelectItem=e=>{const t=null===e?null:e.markerIndex,{changeSelectedMarker:n,threadsKey:r}=this.props;n(r,t,{source:"pointer"})},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 J.createElement(YC,{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,getMarkerLabel:l}=this.props;if(r<=2)e.fillStyle=i?Fb.AW:iy,r=Math.max(r,1),e.fillRect(t,n+1,r,o-2);else{const c=this._getTextMeasurement(e);e.fillStyle=i?Fb.Qr:"#8ac4ff",e.strokeStyle=i?Fb.AW:iy,e.beginPath(),e.rect(t+.5,n+1+.5,r-1,o-2-1),e.fill(),e.stroke();const d=t<s?s+3:t+3,u=(t<s?r-s+t:r)-6;if(u>c.minWidth){const t=c.getFittedText(l(a),u);t&&(e.fillStyle=i?"white":"black",e.fillText(t,d,n+11))}}}drawOneInstantMarker(e,t,n,r,o){e.fillStyle=o?Fb.Qr:"#8ac4ff",e.strokeStyle=o?Fb.AW:iy,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,selectedMarkerIndex:u,viewport:{containerWidth:h,containerHeight:p,viewportLeft:m,viewportRight:f,viewportTop:g}}=this.props,{devicePixelRatio:A}=window,b=h-l-c,C=a-o,y=f-m,v=o+C*m,w=o+C*f+c*(y*C/b),E=[];e.save(),e.beginPath(),e.rect(l,0,b,p),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],h=n.end[i],p=c===h;if(h>=v&&c<w){const f=(c-o)/C;let v=(f-m)*b/y+l;const w=a*s-g;let k=((h-o)/C-f)*b/y;const x=s-1;v=Math.round(v*A)/A,k=Math.round(k*A)/A;const T=n.index[i];d===T||t===T||u===T?E.push({x:v,y:w,w:k,h:x,isInstantMarker:p,markerIndex:T}):(k>1||v!==r)&&(r=v,this.drawOneMarker(e,v,w,k,x,p,T))}}}E.forEach((t=>{this.drawOneMarker(e,t.x,t.y,t.w,t.h,t.isInstantMarker,t.markerIndex,!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 Jb(e)),this._textMeasurement}countMarkersInBucketStartingAtRow(e){const{rangeStart:t,rangeEnd:n,markerTimingAndBuckets:r,marginLeft:o,marginRight:a,viewport:{containerWidth:i,viewportLeft:s,viewportRight:l}}=this.props,c=n-t,d=t+c*s,u=t+c*l+a*((l-s)*c/(i-o-a)),h=r[e];if("string"==typeof h)return 0;const{name:p}=h;function m(e){let t=0;for(let n=0;n<e.length;n++)e.end[n]>=d&&e.start[n]<u&&++t;return t}let f=m(h);for(let t=e+1;t<r.length;++t){const e=r[t];if("string"==typeof e||e.name!==p)break;f+=m(e)}return f}drawSeparatorsAndLabels(e,t,n,r=!1){const{markerTimingAndBuckets:o,rowHeight:a,marginLeft:i,marginRight:s,timelineTrackOrganization:l,viewport:{viewportTop:c,containerWidth:d,containerHeight:u}}=this.props,h=d-s;e.fillStyle=Fb.LT,"active-tab"!==l.type&&e.fillRect(i-1,0,1,u);for(let r=t;r<n;r++){const t=(r+1)*a-c-1;e.fillRect(0,t,h,1)}const p=this._getTextMeasurement(e);e.fillStyle="#000000";for(let i=t;i<n;i++){const t=o[i];if("string"==typeof t)continue;const{name:n}=t;if(i>0&&n===o[i-1].name)continue;const s=i*a-c,d=r?` (${this.countMarkersInBucketStartingAtRow(i)})`:"",u=p.getFittedText(n,In.RD-5-(d?p.getTextWidth(d):0))+d;if("active-tab"===l.type){e.fillStyle="#ffffffbf";const t=p.getTextWidth(u);e.fillRect(0,s,t+10,a),e.fillStyle="#000000"}e.fillText(u,5,s+11)}for(let r=t;r<n;r++){const t=o[r];if("string"!=typeof t)continue;const n=r*a-c;e.fillStyle=Fb.LT,e.fillRect(0,n-1,h,a),e.fillStyle=Fb.wZ,e.fillRect(0,n-1,h,1),e.fillRect(0,n+a-1,h,1),e.fillStyle="#000000",e.fillText(t,5+i,n+11)}}render(){const{containerWidth:e,containerHeight:t,isDragging:n}=this.props.viewport;return J.createElement(Zb,{className:"markerChartCanvas",containerWidth:e,containerHeight:t,isDragging:n,scaleCtxToCssPixels:!0,onSelectItem:this.onSelectItem,onDoubleClickItem:this.onDoubleClickMarker,onRightClick:this.onRightClickMarker,getHoveredItemInfo:this.getHoveredMarkerInfo,drawCanvas:this.drawCanvas,hitTest:this.hitTest,onMouseMove:this.onMouseMove,onMouseLeave:this.onMouseLeave,stickyTooltips:!0})}}const ly=Gb(sy);class cy extends J.PureComponent{render(){const{isMarkerChartEmptyInFullRange:e,threadName:t}=this.props;return J.createElement(uA,{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 dy=lt({mapStateToProps:e=>({threadName:Id.getFriendlyThreadName(e),isMarkerChartEmptyInFullRange:Id.getAreMarkerPanelsEmptyInFullRange(e)}),component:cy});var uy=n(4753),hy={};hy.styleTagTransform=M(),hy.setAttributes=B(),hy.insert=T().bind(null,"head"),hy.domAPI=k(),hy.insertStyleElement=P(),w()(uy.A,hy),uy.A&&uy.A.locals&&uy.A.locals;class py extends J.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,markerListLength:t,timeRange:n,threadsKey:r,markerTimingAndBuckets:o,getMarker:a,getMarkerLabel:i,previewSelection:s,updatePreviewSelection:l,changeMouseTimePosition:c,changeRightClickedMarker:d,rightClickedMarkerIndex:u,selectedMarkerIndex:h,changeSelectedMarker:p,timelineMarginLeft:m,timelineTrackOrganization:f}=this.props,g=16*e;return J.createElement("div",{className:"markerChart",id:"marker-chart-tab",role:"tabpanel","aria-labelledby":"marker-chart-tab-button"},J.createElement(Bb,null),0===e?J.createElement(dy,null):J.createElement(eA,{id:"MarkerContextMenu",attributes:{className:"treeViewContextMenu"}},J.createElement(ly,{key:r,viewportProps:{timeRange:n,previewSelection:s,maxViewportHeight:g,viewportNeedsUpdate:my,maximumZoom:this.getMaximumZoom(),marginLeft:m,marginRight:In.OI,containerRef:this._takeViewportRef},chartProps:{markerTimingAndBuckets:o,getMarker:a,getMarkerLabel:i,markerListLength:t,updatePreviewSelection:l,changeMouseTimePosition:c,changeRightClickedMarker:d,rangeStart:n.start,rangeEnd:n.end,rowHeight:16,threadsKey:r,marginLeft:m,marginRight:In.OI,changeSelectedMarker:p,selectedMarkerIndex:h,rightClickedMarkerIndex:u,shouldDisplayTooltips:this._shouldDisplayTooltips,timelineTrackOrganization:f}})))}}function my(e,t){return e.markerTimingAndBuckets!==t.markerTimingAndBuckets}const fy=lt({mapStateToProps:e=>{const t=Id.getMarkerChartTimingAndBuckets(e);return{getMarker:Id.getMarkerGetter(e),getMarkerLabel:Id.getMarkerChartLabelGetter(e),markerTimingAndBuckets:t,maxMarkerRows:t.length,markerListLength:Id.getMarkerListLength(e),timeRange:ui(e),threadsKey:Go(e),previewSelection:mi(e),rightClickedMarkerIndex:Id.getRightClickedMarkerIndex(e),selectedMarkerIndex:Id.getSelectedMarkerIndex(e),timelineMarginLeft:ml(e),timelineTrackOrganization:No(e)}},mapDispatchToProps:{updatePreviewSelection:jh,changeMouseTimePosition:ep,changeRightClickedMarker:Lh,changeSelectedMarker:Fh},component:py});var gy=n(226),Ay={};Ay.styleTagTransform=M(),Ay.setAttributes=B(),Ay.insert=T().bind(null,"head"),Ay.domAPI=k(),Ay.insertStyleElement=P(),w()(gy.A,Ay),gy.A&&gy.A.locals&&gy.A.locals;class by extends J.PureComponent{constructor(...e){super(...e),this._onSearch=e=>{this.props.changeNetworkSearchString(e)}}render(){const{searchString:e}=this.props;return J.createElement("div",{className:"networkSettings"},J.createElement("div",{className:"networkSettingsSpacer"}),J.createElement(de,{id:"NetworkSettings--panel-search",attrs:{label:!0,title:!0}},J.createElement(SA,{className:"networkSettingsSearchField",label:"Filter Networks:",title:"Only display network requests that match a certain name",currentSearchString:e,onSearch:this._onSearch})))}}const Cy=lt({mapStateToProps:e=>({searchString:Do(e)}),mapDispatchToProps:{changeNetworkSearchString:Uh},component:by});function yy(e){return class extends J.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,Sg.findDOMNode)(this);if(!e)throw new Error("Unable to find the DOMNode");this._container=e,wg().subscribe(e,this._resizeListener)}componentWillUnmount(){const e=this._container;e&&wg().unsubscribe(e,this._resizeListener),this._container=null}_updateSize(e,t){this.setState({width:t.width,height:t.height})}render(){return J.createElement(e,{...this.props,...this.state})}}}class vy extends J.PureComponent{render(){const{threadName:e}=this.props;return J.createElement(uA,{threadName:e,reason:_n.TN`
|
118
|
-
All network requests were filtered out by the current selection or search
|
119
|
-
term. Try changing the search term, or zooming out.
|
120
|
-
`,viewName:"network chart"})}}const wy=lt({mapStateToProps:e=>({threadName:Id.getFriendlyThreadName(e)}),component:vy}),Ey=/(.*)(\/[^/]+\/?)$/,ky=["domainLookupStart","requestStart","responseStart","responseEnd"],xy=ky.reduce(((e,t,n,{length:r})=>(e[t]=r>1?n/(r-1):0,e)),{});function Ty({name:e,previousName:t,value:n,duration:r,style:o}){return J.createElement("div",{className:"networkChartRowItemBarPhase",key:e,"data-name":e,"data-value":n,style:o,"aria-label":`${t} to ${e}: ${Vt(r)} milliseconds`})}class Sy extends J.PureComponent{_timeToCssPixels(e){const{timeRange:t,width:n}=this.props,r=t.end-t.start,o=n-In.RD-In.OI;return(e-t.start)/r*o+In.RD}_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:xy.requestStart}};return J.createElement("div",{className:"networkChartRowItemBar",style:{width:s,left:i}},Ty(l))}render(){const{marker:e,networkPayload:t}=this.props,n=e.start,r=(0,mt.Nn)(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?ky.slice(1):ky).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:xy[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}}),J.createElement(J.Fragment,null,s,J.createElement("div",{className:"networkChartRowItemBar",style:{width:i,left:a}},c.map((e=>J.createElement(Ty,{key:e.name,...e})))))}}class By extends J.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=Ey.exec(t.pathname);return r&&([,n,e]=r),J.createElement(J.Fragment,null,J.createElement("span",{className:"networkChartRowItemUriOptional"},t.protocol+"//"),J.createElement("span",{className:"networkChartRowItemUriRequired"},t.host),n?J.createElement("span",{className:"networkChartRowItemUriOptional"},n):null,e?J.createElement("span",{className:"networkChartRowItemUriRequired"},e):null,t.search?J.createElement("span",{className:"networkChartRowItemUriOptional"},t.search):null,t.hash?J.createElement("span",{className:"networkChartRowItemUriOptional"},t.hash):null)}return e}_getClassNameTypeForMarker(){const{networkPayload:e}=this.props;return rr(void 0===e.contentType||null===e.contentType?nr(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=fg()("networkChartRowItem",this._getClassNameTypeForMarker(),{odd:e%2==1,isRightClicked:i,isSelected:l,isHovered:c});return J.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}`},J.createElement("div",{className:"networkChartRowItemLabel"},this._splitsURI(n.name)),J.createElement(Sy,{marker:n,networkPayload:r,width:o,timeRange:a}),s()&&this.state.hovered?J.createElement(Kb,{mouseX:this.state.pageX,mouseY:this.state.pageY+5},J.createElement(YC,{className:"tooltipNetwork",markerIndex:t,marker:n,threadsKey:this.props.threadsKey,restrictHeightWidth:!0})):null)}}var Iy=n(6169),_y={};_y.styleTagTransform=M(),_y.setAttributes=B(),_y.insert=T().bind(null,"head"),_y.domAPI=k(),_y.insertStyleElement=P(),w()(Iy.A,_y),Iy.A&&Iy.A.locals&&Iy.A.locals;class Py extends J.PureComponent{constructor(...e){super(...e),this._virtualListRef=J.createRef(),this._memoizedGetSpecialItems=zt()(((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(_n.TN`
|
121
|
-
The NetworkChart is supposed to only receive Network markers, but some other
|
122
|
-
kind of marker payload was passed in.
|
123
|
-
`);return J.createElement(By,{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 J.createElement("div",{className:"networkChart",id:"network-chart-tab",role:"tabpanel","aria-labelledby":"network-chart-tab-button"},J.createElement(Cy,null),0===t.length?J.createElement(wy,null):J.createElement(eA,{id:"MarkerContextMenu",attributes:{className:"treeViewContextMenu"}},J.createElement(Tg,{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 Ny=yy(lt({mapStateToProps:e=>({markerIndexes:Id.getSearchFilteredNetworkMarkerIndexes(e),scrollToSelectionGeneration:li(e),getMarker:Id.getMarkerGetter(e),selectedNetworkMarkerIndex:Id.getSelectedNetworkMarkerIndex(e),rightClickedMarkerIndex:Id.getRightClickedMarkerIndex(e),hoveredMarkerIndexFromState:Id.getHoveredMarkerIndex(e),timeRange:fi(e),disableOverscan:mi(e).isModifying,threadsKey:Go(e)}),mapDispatchToProps:{changeSelectedNetworkMarker:Rh,changeRightClickedMarker:Lh,changeHoveredMarker:Dh},component:Py}));class My extends J.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.":_n.TN`
|
124
|
-
Try broadening the selected range, removing search terms, or call tree transforms
|
125
|
-
to view samples.
|
126
|
-
`,J.createElement(uA,{threadName:n,reason:r,viewName:"flame graph"})}}const Fy=lt({mapStateToProps:e=>({threadName:Id.getFriendlyThreadName(e),thread:Id.getThread(e),rangeFilteredThread:Id.getRangeFilteredThread(e)}),component:My});var Ry=n(0),Dy={};Dy.styleTagTransform=M(),Dy.setAttributes=B(),Dy.insert=T().bind(null,"head"),Dy.domAPI=k(),Dy.insertStyleElement=P(),w()(Ry.A,Dy),Ry.A&&Ry.A.locals&&Ry.A.locals;const Ly=16;function Oy(e){return Math.floor(e+.5)}function Uy(e,t){return Oy(e/t)*t}class zy extends J.PureComponent{constructor(...e){super(...e),this._textMeasurement=void 0,this._textMeasurementCssToDeviceScale=1,this._scrollSelectionIntoView=()=>{const{selectedCallNodeIndex:e,maxStackDepthPlusOne:t,callNodeInfo:n}=this.props;if(null===e)return;const r=(t-n.getNonInvertedCallNodeTable().depth[e]-1)*Ly;r<this.props.viewport.viewportTop?this.props.viewport.moveViewport(0,this.props.viewport.viewportTop-r):r+Ly>this.props.viewport.viewportBottom&&this.props.viewport.moveViewport(0,this.props.viewport.viewportBottom-(r+Ly))},this._drawCanvas=(e,t,n)=>{const{thread:r,flameGraphTiming:o,callNodeInfo:a,stackFrameHeight:i,maxStackDepthPlusOne: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 Jb(e),this._textMeasurementCssToDeviceScale=g);const y=this._textMeasurement,v=new ku(e),w=Math.round(3*g);v.set("#ffffff"),e.fillRect(0,0,b,C);const E=a.getNonInvertedCallNodeTable(),k=Math.floor(s-m/i),x=Math.ceil(s-p/i);for(let t=k;t<x;t++){const n=o[t];if(!n)continue;const a=(s-t)*Ly-p,i=Oy(((s-t-1)*Ly-p)*g),u=Oy(a*g)-1-i,h=i+Oy(11*g);for(let o=0;o<n.length;o++){const a=n.start[o],s=n.end[o]*b,p=Uy(a*b,2),m=Uy(s,2)-.8,g=m-p;if(g<=0)continue;const A=n.callNode[o],C=c===A,k=l===A,x=f&&t===f.depth&&o===f.flameGraphTimingIndex,T=C||k||x,S=gC(d[E.category[A]].color),B=T?S.selectedFillStyle:S.unselectedFillStyle;v.set(B),e.fillRect(p,i,g,u);const I=p+w,_=m-I;if(_>y.minWidth){const t=E.func[A],n=r.stringTable.getString(r.funcTable.name[t]),o=y.getFittedText(n,_);if(o){const t=T?S.selectedTextColor:"#000";v.set(t),e.fillText(o,I,h)}}}}},this._getTimingsForCallNodeIndex=zt()(Cn.rs,{cache:new(ed())}),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,callTreeSummaryStrategy:u,innerWindowIDToPageMap:h,weightType:p,samples:m,unfilteredSamples:f,tracedTiming:g,displayImplementation:A,displayStackType:b}=this.props;if(!l())return null;const C=a[e];if(!C)return null;const y=C.callNode[t];if(void 0===y)return null;let v=Kt(C.end[t]-C.start[t]);g&&(v=`${$t("tracing-ms",!1,g.total[y])} (${v})`);const w=!n.isJsTracer&&"timing"===u;return J.createElement(wC,{thread:n,weightType:p,innerWindowIDToPageMap:h,interval:d,callNodeIndex:y,callNodeInfo:s,categories:c,durationText:v,displayData:i.getDisplayData(y),callTreeSummaryStrategy:u,timings:w?this._getTimingsForCallNodeIndex(y,s,d,n,r,o,c,m,f,A):void 0,displayStackType:b})},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,maxStackDepthPlusOne:r,viewport:{viewportTop:o,containerWidth:a}}=this.props,i=e/a,s=Math.floor(r-(t+o)/Ly),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.maxStackDepthPlusOne!==this.props.maxStackDepthPlusOne&&this.props.viewport.moveViewport(0,(e.maxStackDepthPlusOne-this.props.maxStackDepthPlusOne)*Ly),(!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 J.createElement(Zb,{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 Gy=Gb(zy);var Wy=n(2591),Hy={};Hy.styleTagTransform=M(),Hy.setAttributes=B(),Hy.insert=T().bind(null,"head"),Hy.domAPI=k(),Hy.insertStyleElement=P(),w()(Wy.A,Hy),Wy.A&&Wy.A.locals&&Wy.A.locals;class Vy extends J.PureComponent{constructor(...e){super(...e),this._viewport=null,this._onSelectedCallNodeChange=e=>{const{callNodeInfo:t,threadsKey:n,changeSelectedCallNode:r}=this.props;r(n,t.getCallNodePathFromIndex(e))},this._onRightClickedCallNodeChange=e=>{const{callNodeInfo:t,threadsKey:n,changeRightClickedCallNode:r}=this.props;r(n,t.getCallNodePathFromIndex(e))},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:n}=this.props,r=t[n.getNonInvertedCallNodeTable().depth[e]],o=r.callNode.indexOf(e);return r.end[o]-r.start[o]>.001},this._nextSelectableInRow=(e,t)=>{const{flameGraphTiming:n,callNodeInfo:r}=this.props;let o=e;const a=n[r.getNonInvertedCallNodeTable().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:r,selectedCallNodeIndex:o,rightClickedCallNodeIndex:a,changeSelectedCallNode:i,handleCallNodeTransformShortcut:s}=this.props,l=r.getNonInvertedCallNodeTable();if(["ArrowDown","ArrowUp","ArrowLeft","ArrowRight"].includes(e.key)){if(null===o)return void i(t,r.getCallNodePathFromIndex(0));switch(e.key){case"ArrowDown":{const e=l.prefix[o];-1!==e&&i(t,r.getCallNodePathFromIndex(e));break}case"ArrowUp":{const[e]=n.getChildren(o);void 0!==e&&this._wideEnough(e)&&i(t,r.getCallNodePathFromIndex(e));break}case"ArrowLeft":case"ArrowRight":{const n=this._nextSelectableInRow(o,"ArrowLeft"===e.key?-1:1);void 0!==n&&i(t,r.getCallNodePathFromIndex(n));break}default:console.error(`An unknown key "${e.key}" was pressed, this shouldn't happen.`)}return}const c=null!==a?a:o;null!==c&&("Enter"!==e.key?s(e,t,c):this._onCallNodeEnterOrDoubleClick(c))},this._onCopy=e=>{if(document.activeElement===this._viewport){e.preventDefault();const{callNodeInfo:t,selectedCallNodeIndex:n,thread:r}=this.props,o=t.getNonInvertedCallNodeTable();if(null!==n){const t=o.func[n],a=r.stringTable.getString(r.funcTable.name[t]);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,maxStackDepthPlusOne: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:E}=this.props,k=16*o;return J.createElement("div",{className:"flameGraphContent",onKeyDown:this._handleKeyDown},J.createElement(eA,{id:"CallNodeContextMenu",attributes:{className:"treeViewContextMenu"}},J.createElement(Gy,{key:r,viewportProps:{timeRange:l,maxViewportHeight:k,maximumZoom:1,previewSelection:c,startsAtBottom:!0,disableHorizontalMovement:!0,viewportNeedsUpdate:jy,marginLeft:0,marginRight:0,containerRef:this._takeViewportRef},chartProps:{thread:e,innerWindowIDToPageMap:A,weightType:b,unfilteredThread:t,sampleIndexOffset:n,maxStackDepthPlusOne: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:E}})))}}function jy(){return!1}const $y=lt({mapStateToProps:e=>({thread:Id.getFilteredThread(e),unfilteredThread:Id.getThread(e),weightType:Id.getWeightTypeForCallTree(e),sampleIndexOffset:Id.getSampleIndexOffsetFromCommittedRange(e),maxStackDepthPlusOne:Id.getFilteredCallNodeMaxDepthPlusOne(e),flameGraphTiming:Id.getFlameGraphTiming(e),callTree:Id.getCallTree(e),timeRange:ui(e),previewSelection:mi(e),callNodeInfo:Id.getCallNodeInfo(e),categories:Ri(e),threadsKey:Go(e),selectedCallNodeIndex:Id.getSelectedCallNodeIndex(e),rightClickedCallNodeIndex:Id.getRightClickedCallNodeIndex(e),scrollToSelectionGeneration:li(e),interval:bi(e),isInverted:Oo(e),callTreeSummaryStrategy:Id.getCallTreeSummaryStrategy(e),innerWindowIDToPageMap:Wi(e),samples:Id.getPreviewFilteredSamplesForCallTree(e),unfilteredSamples:Id.getUnfilteredSamplesForCallTree(e),tracedTiming:Id.getTracedTiming(e),displayImplementation:Ps(e),displayStackType:Ms(e)}),mapDispatchToProps:{changeSelectedCallNode:nh,changeRightClickedCallNode:rh,handleCallNodeTransformShortcut:ip,updateBottomBoxContentsAndMaybeOpen:np},options:{forwardRef:!0},component:Vy});var Ky=n(5133),Yy={};Yy.styleTagTransform=M(),Yy.setAttributes=B(),Yy.insert=T().bind(null,"head"),Yy.domAPI=k(),Yy.insertStyleElement=P(),w()(Ky.A,Yy),Ky.A&&Ky.A.locals&&Ky.A.locals;class qy extends J.PureComponent{constructor(...e){super(...e),this._flameGraph=J.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?J.createElement(Fy,null):t?J.createElement("div",{className:"flameGraphDisabledMessage"},J.createElement("h3",null,"The Flame Graph is not available for inverted call stacks"),J.createElement("p",null,J.createElement("button",{type:"button",onClick:this._onSwitchToNormalCallstackClick},"Switch to the normal call stack")," ","to show the Flame Graph.")):J.createElement($y,{ref:this._flameGraph})}}const Zy=lt({mapStateToProps:e=>({invertCallstack:Oo(e),isPreviewSelectionEmpty:0===Id.getPreviewFilteredCallNodeMaxDepthPlusOne(e)}),mapDispatchToProps:{changeInvertCallstack:Wh},component:qy}),Xy=()=>J.createElement("div",{className:"flameGraph",id:"flame-graph-tab",role:"tabpanel","aria-labelledby":"flame-graph-tab-button"},J.createElement(UA,{hideInvertCallstack:!0}),J.createElement(gb,null),J.createElement(Zy,null));class Jy extends J.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 Jb(e),this._textMeasurementCssToDeviceScale=d);const h={ctx:e,textMeasurement:this._textMeasurement,fastFillStyle:new ku(e),startRow:Math.floor(a/r),endRow:Math.min(Math.ceil(i/r),o.length),devicePixels:{containerWidth:s*d,innerContainerWidth:(s-In.RD-In.OI)*d,containerHeight:l*d,textOffsetStart:3*d,textOffsetTop:11*d,rowHeight:r*d,viewportTop:a*d,timelineMarginLeft:In.RD*d,timelineMarginRight:In.OI*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.RD)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.RD-In.OI,u=r-n,h=s-i,p=n+(i+h*((e-In.RD)/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":tC,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 E=y;C<o.timelineMarginLeft&&(E-=o.timelineMarginLeft-C,C=o.timelineMarginLeft);const k=Math.ceil(C);if(C+E<=k){C>=g&&(b(m),f=Math.floor(C),g=f+1),A+=E;continue}C>g&&(b(m),f=k-1,g=k),C=k,A+=k-C,b(m);const x=Math.floor(E);this.drawOneEvent(e,C,m,x,p,y,v,w),f=C+x,g=C+x+1,A=E-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(Fb.LT),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 J.createElement(Zb,{className:fg()({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 Qy=Gb(Jy);var ev=n(4909),tv={};tv.styleTagTransform=M(),tv.setAttributes=B(),tv.insert=T().bind(null,"head"),tv.domAPI=k(),tv.insertStyleElement=P(),w()(ev.A,tv),ev.A&&ev.A.locals&&ev.A.locals;class nv extends J.PureComponent{getMaximumZoom(){const{timeRange:{start:e,end:t}}=this.props;return In.cs/(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 J.createElement(Qy,{key:t,viewportProps:{timeRange:e,previewSelection:o,maxViewportHeight:s,viewportNeedsUpdate:rv,maximumZoom:this.getMaximumZoom(),marginLeft:In.RD,marginRight:In.OI},chartProps:{jsTracerTimingRows:r,jsTracerTable:n,updatePreviewSelection:a,rangeStart:e.start,rangeEnd:e.end,rowHeight:16,threadsKey:t,doFadeIn:i}})}}function rv(e,t){return e.jsTracerTimingRows!==t.jsTracerTimingRows}const ov=lt({mapStateToProps:(e,t)=>({timeRange:ui(e),stringTable:Id.getStringTable(e),threadsKey:Go(e),previewSelection:mi(e),jsTracerTimingRows:(0,mt.Nn)(t.showJsTracerSummary?Id.getExpensiveJsTracerLeafTiming(e):Id.getExpensiveJsTracerTiming(e),"The JS tracer information must exist when mounting this component")}),mapDispatchToProps:{updatePreviewSelection:jh},component:nv}),av=new WeakMap;class iv extends J.PureComponent{constructor(e){super(e),this.state={readyToRenderExpensiveChart:!1},this._doFadeIn=!1;let t=av.get(e.profile);void 0===t&&(t=new Set,av.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?J.createElement(ov,{doFadeIn:this._doFadeIn,jsTracerTable:e,showJsTracerSummary:t}):J.createElement("div",{className:"jsTracerLoader"},"Re-constructing tracing information from"," ",this.props.jsTracerTable.events.length.toLocaleString()," events. This might take a moment.")}}class sv extends J.PureComponent{render(){const{profile:e,jsTracerTable:t,showJsTracerSummary:n,threadsKey:r}=this.props,o=`${r}-${n?"true":"false"}`;return J.createElement(iv,{key:o,keyString:o,jsTracerTable:t,showJsTracerSummary:n,profile:e})}}var lv=n(5682),cv={};cv.styleTagTransform=M(),cv.setAttributes=B(),cv.insert=T().bind(null,"head"),cv.domAPI=k(),cv.insertStyleElement=P(),w()(lv.A,cv),lv.A&&lv.A.locals&&lv.A.locals;class dv extends J.PureComponent{constructor(...e){super(...e),this._onCheckboxChange=()=>{this.props.changeShowJsTracerSummary(!this.props.showJsTracerSummary)}}render(){const{showJsTracerSummary:e}=this.props;return J.createElement("div",{className:"jsTracerSettings"},J.createElement("ul",{className:"jsTracerSettingsList"},J.createElement("li",{className:"jsTracerSettingsListItem"},J.createElement("label",{className:"jsTracerSettingsLabel"},J.createElement("input",{type:"checkbox",className:"jsTracerSettingsCheckbox",onChange:this._onCheckboxChange,checked:e}),J.createElement(de,{id:"JsTracerSettings--show-only-self-time",attrs:{title:!0}},J.createElement("span",null,"Show only self time"))))))}}const uv=lt({mapStateToProps:e=>({showJsTracerSummary:Po(e)}),mapDispatchToProps:{changeShowJsTracerSummary:Vh},component:dv});class hv extends J.PureComponent{render(){const{threadName:e}=this.props;return J.createElement(uA,{threadName:e,reason:"This thread contains no JS tracer information.",viewName:"js-tracer"})}}const pv=lt({mapStateToProps:e=>({threadName:Id.getFriendlyThreadName(e)}),component:hv});class mv extends J.PureComponent{render(){const{profile:e,jsTracerTable:t,showJsTracerSummary:n,threadsKey:r}=this.props;return J.createElement("div",{className:"jsTracer"},null===t||0===t.events.length?J.createElement(pv,null):J.createElement(J.Fragment,null,J.createElement(uv,null),J.createElement(sv,{profile:e,jsTracerTable:t,showJsTracerSummary:n,threadsKey:r})))}}const fv=lt({mapStateToProps:e=>({profile:Ai(e),threadsKey:Go(e),jsTracerTable:Id.getJsTracerTable(e),showJsTracerSummary:Po(e)}),mapDispatchToProps:{updatePreviewSelection:jh},component:mv});class gv extends J.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 J.createElement(r,{className:fg()(n,"can-select-content"),title:`${t}\n(click to select)`},J.createElement("input",{value:t,className:"can-select-content-input",onFocus:this._selectContent,onBlur:this._unselectContent,readOnly:!0}))}}function Av({label:e,value:t,percentage:n,indent:r}){return J.createElement(J.Fragment,null,J.createElement("div",{className:fg()({"sidebar-label":!0,"sidebar-label-indent":r})},e),J.createElement("div",{className:"sidebar-percentage"},n),J.createElement("div",{className:"sidebar-value"},t))}class bv extends J.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:(0,Cn.T4)(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})=>J.createElement(J.Fragment,{key:e},J.createElement(Av,{label:e,value:t(n),percentage:Kt(n/r)}),J.createElement("div",{className:"sidebar-histogram-bar"},J.createElement("div",{className:"sidebar-histogram-bar-color",style:{width:Yt(n/r),backgroundColor:"var(--grey-50)"}})))))}}class Cv extends J.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 J.createElement(J.Fragment,null,a.map((({category:e,value:t,subcategories:a,categoryIndex:s})=>{const l=(0,Cn.V8)(e),c=r.get(o),d=void 0!==c&&c.has(s);return J.createElement(J.Fragment,{key:`category-${s}`},J.createElement(Av,{label:l?J.createElement("button",{type:"button","data-category-index":s,onClick:this._toggleCategory,className:fg()({"sidebar-toggle":!0,expanded:d})},e.name):e.name,value:n(t),percentage:Kt(t/i)}),J.createElement("div",{className:"sidebar-histogram-bar"},J.createElement("div",{className:`sidebar-histogram-bar-color category-color-${e.color}`,style:{width:Yt(t/i)}})),l&&d?a.map((({index:e,name:t,value:r})=>J.createElement(Av,{key:`subcategory-${e}`,label:t,value:n(r),percentage:Kt(r/i),indent:!0}))):null)})))}}const yv=lt({mapStateToProps:e=>({sidebarOpenCategories:fl(e)}),mapDispatchToProps:{toggleOpenCategoryInSidebar:_m},component:Cv});function vv(e){switch(e){case"tracing-ms":return"CallTreeSidebar--running-milliseconds";case"samples":return"CallTreeSidebar--running-sample-count";case"bytes":return"CallTreeSidebar--running-bytes";default:throw(0,mt.lC)(e,"Unhandled WeightType.")}}function wv(e){switch(e){case"tracing-ms":return"CallTreeSidebar--self-milliseconds";case"samples":return"CallTreeSidebar--self-sample-count";case"bytes":return"CallTreeSidebar--self-bytes";default:throw(0,mt.lC)(e,"Unhandled WeightType.")}}class Ev extends J.PureComponent{constructor(...e){super(...e),this._getWeightTypeDetails=zt()((e=>{switch(e){case"tracing-ms":return{runningL10nId:"CallTreeSidebar--running-time",selfL10nId:"CallTreeSidebar--self-time",number:e=>Qt(e,3,1)};case"samples":return{runningL10nId:"CallTreeSidebar--running-samples",selfL10nId:"CallTreeSidebar--self-samples",number:e=>Vt(e,0)};case"bytes":return{runningL10nId:"CallTreeSidebar--running-size",selfL10nId:"CallTreeSidebar--self-size",number:e=>qt(e)};default:throw(0,mt.lC)(e,"Unhandled WeightType.")}}),{cache:new Map})}render(){const{selectedNodeIndex:e,name:t,lib:n,timings:r,categoryList:o,weightType:a,selectedNodeTracedSelfAndTotal:i}=this.props,{forPath:{selfTime:s,totalTime:l},rootTime:c}=r;if(null===e)return J.createElement("div",{className:"sidebar sidebar-calltree"},J.createElement(de,{id:"CallTreeSidebar--select-a-node"},J.createElement("div",{className:"sidebar-contents-wrapper"},"Select a node to display some information about it.")));const{number:d,runningL10nId:u,selfL10nId: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 J.createElement("aside",{className:"sidebar sidebar-calltree"},J.createElement("div",{className:"sidebar-contents-wrapper"},J.createElement("header",{className:"sidebar-titlegroup"},J.createElement(gv,{tagName:"h2",className:"sidebar-title",content:t}),n?J.createElement(gv,{tagName:"p",className:"sidebar-subtitle",content:n}):null),J.createElement("h4",{className:"sidebar-title3"},J.createElement(de,{id:"CallTreeSidebar--call-node-details"},J.createElement("div",null,"Call node details"))),i?J.createElement(de,{id:"CallTreeSidebar--traced-running-time",attrs:{label:!0}},J.createElement(Av,{label:"Traced running time",value:Qt(i.total,3,1)})):null,i?J.createElement(de,{id:"CallTreeSidebar--traced-self-time",attrs:{label:!0}},J.createElement(Av,{label:"Traced self time",value:0===i.self?"—":Qt(i.self,3,1)})):null,J.createElement(de,{id:u,attrs:{label:!0}},J.createElement(Av,{label:"",value:l.value?`${d(l.value)}`:"—",percentage:p?p+"%":"—"})),J.createElement(de,{id:h,attrs:{label:!0}},J.createElement(Av,{label:"",value:s.value?`${d(s.value)}`:"—",percentage:m?m+"%":"—"})),f?J.createElement(J.Fragment,null,J.createElement("h4",{className:"sidebar-title3 sidebar-title-label"},J.createElement(de,{id:"CallTreeSidebar--categories"},J.createElement("div",{className:"sidebar-title-label-left"},"Categories")),J.createElement(de,{id:vv(a)},J.createElement("div",{className:"sidebar-title-label-right"}))),J.createElement(yv,{kind:"total",breakdown:f,categoryList:o,number:d})):null,g?J.createElement(J.Fragment,null,J.createElement("h4",{className:"sidebar-title3 sidebar-title-label"},J.createElement(de,{id:"CallTreeSidebar--categories"},J.createElement("div",{className:"sidebar-title-label-left"},"Categories")),J.createElement(de,{id:wv(a)},J.createElement("div",{className:"sidebar-title-label-right"}))),J.createElement(yv,{kind:"self",breakdown:g,categoryList:o,number:d})):null,A&&l.value?J.createElement(J.Fragment,null,J.createElement("h4",{className:"sidebar-title3 sidebar-title-label"},J.createElement(de,{id:"CallTreeSidebar--implementation"},J.createElement("div",null,"Implementation")),J.createElement(de,{id:vv(a)},J.createElement("div",null))),J.createElement(bv,{breakdown:A,number:d})):null,b&&s.value?J.createElement(J.Fragment,null,J.createElement("h4",{className:"sidebar-title3 sidebar-title-label"},J.createElement(de,{id:"CallTreeSidebar--implementation"},J.createElement("div",null,"Implementation")),J.createElement(de,{id:wv(a)},J.createElement("div",null))),J.createElement(bv,{breakdown:b,number:d})):null))}}const kv=lt({mapStateToProps:e=>({selectedNodeIndex:Id.getSelectedCallNodeIndex(e),selectedThreadsKey:Go(e),name:pr(_d.getName(e)),lib:_d.getLib(e),timings:_d.getTimingsForSidebar(e),categoryList:Ri(e),weightType:Id.getWeightTypeForCallTree(e),selectedNodeTracedSelfAndTotal:Id.getTracedSelfAndTotalForSelectedCallNode(e)}),component:Ev});class xv extends J.PureComponent{render(){const{marker:e,markerIndex:t,selectedThreadsKey:n}=this.props;return null===e||null===t?J.createElement("div",{className:"sidebar sidebar-marker-table"},J.createElement(de,{id:"MarkerSidebar--select-a-marker"},J.createElement("div",{className:"sidebar-contents-wrapper"},"Select a marker to display some information about it."))):J.createElement("aside",{className:"sidebar sidebar-marker-table"},J.createElement("div",{className:"sidebar-contents-wrapper"},J.createElement(YC,{markerIndex:t,marker:e,threadsKey:n,restrictHeightWidth:!1})))}}const Tv=lt({mapStateToProps:e=>({marker:Id.getSelectedMarker(e),markerIndex:Id.getSelectedMarkerIndex(e),selectedThreadsKey:Go(e)}),component:xv});var Sv=n(5592),Bv={};function Iv(e){return{calltree:kv,"flame-graph":kv,"stack-chart":null,"marker-chart":null,"marker-table":Tv,"network-chart":null,"js-tracer":null}[e]}Bv.styleTagTransform=M(),Bv.setAttributes=B(),Bv.insert=T().bind(null,"head"),Bv.domAPI=k(),Bv.insertStyleElement=P(),w()(Sv.A,Bv),Sv.A&&Sv.A.locals&&Sv.A.locals;var _v=n(7965),Pv=n.n(_v),Nv=n(8479),Mv={};Mv.styleTagTransform=M(),Mv.setAttributes=B(),Mv.insert=T().bind(null,"head"),Mv.domAPI=k(),Mv.insertStyleElement=P(),w()(Nv.A,Mv),Nv.A&&Nv.A.locals&&Nv.A.locals;class Fv extends J.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=(0,mt.DO)(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:o}=e,a=o.getCallNodeTable().func[t],i=r.isJS[a],s=r.name[a],l=n.getString(s);return i?l:pr(l)}lookupFunctionOnSearchfox(){const e=this._getFunctionName();window.open(`https://searchfox.org/mozilla-central/search?q=${encodeURIComponent(e)}`,"_blank")}copyFunctionName(){Pv()(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:o}=e,a=o.getCallNodeTable().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,(0,Cn.ae)(r,a,o))}copyUrl(){const e=this._getFilePath();e&&Pv()(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:a}=e,i=a.getCallNodePathFromIndex(t).reverse().map((e=>{const t=n.name[e],a=o.getString(t),i=(0,Cn.Bu)(e,n,r,o);return a+(i?` [${i}]`:"")})).join("\n");Pv()(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:d}=a,u=s[s.length-1],h=d.getCallNodeTable().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:(0,mt.lC)(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)}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."),J.createElement("div",null);const{callNodeIndex:a,thread:{funcTable:i},callNodeInfo:s}=o,l=s.getCallNodeTable(),c=l.category[a],d=l.func[a],u=i.isJS[d],h=-1!==c,p=this.getNameForSelectedResource(),m=h?r[c].name:"",f="calltree"===t,g=this._getFilePath(),A=u&&g,b=g&&(0,AC.o)(g).path.match(/[^\\/]+$/)?.[0];return J.createElement(J.Fragment,null,b?J.createElement(J.Fragment,null,this.renderMenuItemWithShortcut({l10nId:"CallNodeContextMenu--show-file",l10nProps:{vars:{fileName:b},elems:{strong:J.createElement("strong",null)}},onClick:this._handleClick,data:{type:"show-file"},shortcut:"⏎",content:`Show <strong>${b}</strong>`}),J.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"}),h?this.renderTransformMenuItem({l10nId:"CallNodeContextMenu--transform-focus-category",l10nProps:{vars:{categoryName:m},elems:{strong:J.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"}),p?this.renderTransformMenuItem({l10nId:"CallNodeContextMenu--transform-collapse-resource",l10nProps:{vars:{nameForResource:p},elems:{strong:J.createElement("strong",null)}},shortcut:"C",icon:"Collapse",onClick:this._handleClick,transform:"collapse-resource",title:"",content:`Collapse <strong>${p}</strong>`}):null,xr(l,d)?this.renderTransformMenuItem({l10nId:"CallNodeContextMenu--transform-collapse-recursion",shortcut:"r",icon:"Collapse",onClick:this._handleClick,transform:"collapse-recursion",title:"",content:"Collapse recursion"}):null,kr(l,d)?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"}),J.createElement("div",{className:"react-contextmenu-separator"}),f?J.createElement(J.Fragment,null,this.renderMenuItemWithShortcut({l10nId:"CallNodeContextMenu--expand-all",onClick:this._handleClick,data:{type:"expand-all"},shortcut:"*",content:"Expand all"}),J.createElement("div",{className:"react-contextmenu-separator"})):null,n?J.createElement(de,{id:"CallNodeContextMenu--searchfox"},J.createElement(Yg,{onClick:this._handleClick,data:{type:"searchfox"}},"Look up the function name on Searchfox")):null,J.createElement(de,{id:"CallNodeContextMenu--copy-function-name"},J.createElement(Yg,{onClick:this._handleClick,data:{type:"copy-function-name"}},"Copy function name")),A?J.createElement(de,{id:"CallNodeContextMenu--copy-script-url"},J.createElement(Yg,{onClick:this._handleClick,data:{type:"copy-url"}},"Copy script URL")):null,J.createElement(de,{id:"CallNodeContextMenu--copy-stack"},J.createElement(Yg,{onClick:this._handleClick,data:{type:"copy-stack"}},"Copy stack")))}renderTransformMenuItem(e){return J.createElement(Yg,{onClick:e.onClick,data:{type:e.transform}},J.createElement("span",{className:`react-contextmenu-icon callNodeContextMenuIcon${e.icon}`}),J.createElement(de,{id:e.l10nId,attrs:{title:!0},...e.l10nProps},J.createElement(Dv,{className:"react-contextmenu-item-content",title:e.title},e.content)),J.createElement("kbd",{className:"callNodeContextMenuShortcut"},e.shortcut))}renderMenuItemWithShortcut(e){return J.createElement(Yg,{onClick:e.onClick,data:{type:e.data.type}},J.createElement(de,{id:e.l10nId,...e.l10nProps},J.createElement("div",{className:"react-contextmenu-item-content"},e.content)),J.createElement("kbd",{className:"callNodeContextMenuShortcut"},e.shortcut))}render(){return null===this.getRightClickedCallNodeInfo()?null:J.createElement(wb,{id:"CallNodeContextMenu",className:"callNodeContextMenu",onShow:this._onShow,onHide:this._onHide},this.renderContextMenuContents())}}const Rv=lt({mapStateToProps:e=>{const t=Ad(e);let n=null,r=null,o=null,a=null,i=null;if(null!==t){const s=Sd(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:Ri(e),callNodeInfo:o,rightClickedCallNodePath:a,rightClickedCallNodeIndex:i,implementation:Eo(e),inverted:Oo(e),selectedTab:Lo(e),displaySearchfox:Ns(e)}},mapDispatchToProps:{addTransformToStack:Yh,addCollapseResourceTransformToStack:qh,expandAllCallNodeDescendants:Nh,updateBottomBoxContentsAndMaybeOpen:np,setContextMenuVisibility:ph},component:Fv});function Dv(e){return J.createElement("div",{className:e.className,title:_n.TN`${e.title}`},e.children)}var Lv=n(9306),Ov={};Ov.styleTagTransform=M(),Ov.setAttributes=B(),Ov.insert=T().bind(null,"head"),Ov.domAPI=k(),Ov.insertStyleElement=P(),w()(Lv.A,Ov),Lv.A&&Lv.A.locals&&Lv.A.locals;class Uv extends J.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=()=>{Pv()(JSON.stringify(this.props.marker,null,2))},this.copyMarkerDescription=()=>{const{markerIndex:e,getMarkerLabelToCopy:t}=this.props;Pv()(t(e))},this.copyMarkerCause=()=>{const{marker:e}=this.props;if(e.data&&e.data.cause){const t=this._convertStackToString(e.data.cause.stack);t?Pv()(t):Pv()("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&&Pv()(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&&Pv()(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;if(null===t)return"";const r=Er(t,n,(0,Cn.dQ)(t,e));return(0,Cn.RM)(r,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=J.createElement(de,{id:"MarkerContextMenu--select-the-receiver-thread",vars:{threadName:n.recvThreadName},elems:{strong:J.createElement("strong",null)}},J.createElement(J.Fragment,null,"Select the receiver thread “",J.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=J.createElement(de,{id:"MarkerContextMenu--select-the-sender-thread",vars:{threadName:n.sendThreadName},elems:{strong:J.createElement("strong",null)}},J.createElement(J.Fragment,null,"Select the sender thread “",J.createElement("strong",null,n.sendThreadName),"”"));break;default:throw(0,mt.lC)(n.direction,"Unhandled IPC marker direction type.")}return J.createElement(Yg,{onClick:this.selectOtherThreadForIPCMarkers},J.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)?J.createElement(Yg,{onClick:this.copyPageUrl},J.createElement("span",{className:"react-contextmenu-icon markerContextMenuIconCopyUrl"}),J.createElement(de,{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 J.createElement(wb,{id:"MarkerContextMenu",className:"markerContextMenu",onShow:this._onShow,onHide:this._onHide},J.createElement(Yg,{onClick:this.setRangeByDuration,disabled:this._isZeroDurationMarker(e)},J.createElement("span",{className:"react-contextmenu-icon markerContextMenuIconSetSelectionFromMarker"}),J.createElement(de,{id:"MarkerContextMenu--set-selection-from-duration"},"Set selection from marker’s duration")),J.createElement("div",{className:"react-contextmenu-separator"}),this._isZeroDurationMarker(e)?J.createElement(J.Fragment,null,J.createElement(Yg,{onClick:this.setStartRangeFromMarkerStart},J.createElement("span",{className:"react-contextmenu-icon markerContextMenuIconStartSelectionHere"}),J.createElement(de,{id:"MarkerContextMenu--start-selection-here"},"Start selection here")),J.createElement(Yg,{onClick:this.setEndRangeFromMarkerEnd},J.createElement("span",{className:"react-contextmenu-icon markerContextMenuIconEndSelectionHere"}),J.createElement(de,{id:"MarkerContextMenu--end-selection-here"},"End selection here"))):J.createElement(J.Fragment,null,J.createElement(Yg,{onClick:this.setStartRangeFromMarkerStart},J.createElement("span",{className:"react-contextmenu-icon markerContextMenuIconStartSelectionAtMarkerStart"}),J.createElement(de,{id:"MarkerContextMenu--start-selection-at-marker-start",elems:{strong:J.createElement("strong",null)}},J.createElement("div",{className:"react-contextmenu-item-content"},"Start selection at marker’s ",J.createElement("strong",null,"start")))),J.createElement(Yg,{onClick:this.setStartRangeFromMarkerEnd,disabled:i>o},J.createElement("span",{className:"react-contextmenu-icon markerContextMenuIconStartSelectionAtMarkerEnd"}),J.createElement(de,{id:"MarkerContextMenu--start-selection-at-marker-end",elems:{strong:J.createElement("strong",null)}},J.createElement("div",{className:"react-contextmenu-item-content"},"Start selection at marker’s ",J.createElement("strong",null,"end")))),J.createElement("div",{className:"react-contextmenu-separator"}),J.createElement(Yg,{onClick:this.setEndRangeFromMarkerStart,disabled:a>s},J.createElement("span",{className:"react-contextmenu-icon markerContextMenuIconEndSelectionAtMarkerStart"}),J.createElement(de,{id:"MarkerContextMenu--end-selection-at-marker-start",elems:{strong:J.createElement("strong",null)}},J.createElement("div",{className:"react-contextmenu-item-content"},"End selection at marker’s ",J.createElement("strong",null,"start")))),J.createElement(Yg,{onClick:this.setEndRangeFromMarkerEnd},J.createElement("span",{className:"react-contextmenu-icon markerContextMenuIconEndSelectionAtMarkerEnd"}),J.createElement(de,{id:"MarkerContextMenu--end-selection-at-marker-end",elems:{strong:J.createElement("strong",null)}},J.createElement("div",{className:"react-contextmenu-item-content"},"End selection at marker’s ",J.createElement("strong",null,"end"))))),J.createElement("div",{className:"react-contextmenu-separator"}),J.createElement(Yg,{onClick:this.copyMarkerDescription},J.createElement("span",{className:"react-contextmenu-icon markerContextMenuIconCopyDescription"}),J.createElement(de,{id:"MarkerContextMenu--copy-description"},"Copy description")),r&&r.cause?J.createElement(Yg,{onClick:this.copyMarkerCause},J.createElement("span",{className:"react-contextmenu-icon markerContextMenuIconCopyStack"}),J.createElement(de,{id:"MarkerContextMenu--copy-call-stack"},"Copy call stack")):null,r&&"Network"===r.type?J.createElement(Yg,{onClick:this.copyUrl},J.createElement("span",{className:"react-contextmenu-icon markerContextMenuIconCopyUrl"}),J.createElement(de,{id:"MarkerContextMenu--copy-url"},"Copy URL")):null,this.maybeRenderCopyPageUrlItem(),J.createElement(Yg,{onClick:this.copyMarkerJSON},J.createElement("span",{className:"react-contextmenu-icon markerContextMenuIconCopyPayload"}),J.createElement(de,{id:"MarkerContextMenu--copy-as-json"},"Copy as JSON")),this.maybeRenderIPCMarkerMenuItem())}}const zv=lt({mapStateToProps:(e,t)=>{const{threadsKey:n,markerIndex:r}=t.rightClickedMarkerInfo,o=Sd(n);return{markerIndex:r,marker:o.getMarkerGetter(e)(r),previewSelection:mi(e),committedRange:ui(e),implementationFilter:Eo(e),thread:o.getThread(e),getMarkerLabelToCopy:o.getMarkerLabelToCopyGetter(e),profiledThreadIds:_s(e),innerWindowIDToPageMap:Wi(e)}},mapDispatchToProps:{updatePreviewSelection:jh,setContextMenuVisibility:ph,selectTrackFromTid:ch},component:Uv});class Gv extends J.PureComponent{render(){const{rightClickedMarkerInfo:e}=this.props;return null===e?null:J.createElement(zv,{rightClickedMarkerInfo:e})}}const Wv=lt({mapStateToProps:e=>({rightClickedMarkerInfo:hd(e)}),component:Gv});var Hv=n(8303),Vv={};Vv.styleTagTransform=M(),Vv.setAttributes=B(),Vv.insert=T().bind(null,"head"),Vv.domAPI=k(),Vv.insertStyleElement=P(),w()(Hv.A,Vv),Hv.A&&Hv.A.locals&&Hv.A.locals;class jv extends J.PureComponent{constructor(...e){super(...e),this._onSelectTab=e=>{const{changeSelectedTab:t}=this.props,n=(0,mt.q3)(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!==Iv(t);return J.createElement("div",{className:"Details"},J.createElement("div",{className:"Details-top-bar"},J.createElement(bg,{selectedTabSlug:t,visibleTabs:e,onSelectTab:this._onSelectTab}),r?J.createElement(de,{id:n?"Details--close-sidebar-button":"Details--open-sidebar-button",attrs:{title:!0},vars:{isSidebarOpen:n}},J.createElement("button",{className:fg()("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),J.createElement(de,{id:"Details--error-boundary-message",attrs:{message:!0}},J.createElement(ug,{key:t,message:"Uh oh, some unknown error happened in this panel"},{calltree:J.createElement(Ab,null),"flame-graph":J.createElement(Xy,null),"stack-chart":J.createElement(oy,null),"marker-chart":J.createElement(fy,null),"marker-table":J.createElement(Mb,null),"network-chart":J.createElement(Ny,null),"js-tracer":J.createElement(fv,null)}[t])),J.createElement(Rv,null),J.createElement(Wv,null))}}const $v=lt({mapStateToProps:e=>({visibleTabs:Id.getUsefulTabs(e),selectedTab:Lo(e),isSidebarOpen:Xs(e)}),mapDispatchToProps:{changeSelectedTab:sm,changeSidebarOpenState:hm},component:jv});var Kv=n(6830),Yv={};Yv.styleTagTransform=M(),Yv.setAttributes=B(),Yv.insert=T().bind(null,"head"),Yv.domAPI=k(),Yv.insertStyleElement=P(),w()(Kv.A,Yv),Kv.A&&Kv.A.locals&&Kv.A.locals;const qv=lt({mapStateToProps:e=>({selectedTab:Lo(e),isSidebarOpen:Xs(e)}),mapDispatchToProps:{invalidatePanelLayout:pm},component:function({selectedTab:e,isSidebarOpen:t,invalidatePanelLayout:n}){const r=Iv(e);return J.createElement(pg(),{customClassName:"DetailsContainer",percentage:!0,secondaryInitialSize:20,onDragEnd:n},J.createElement($v,null),r&&t?J.createElement(r,null):null)}});function Zv(e,t){return{type:"SOURCE_CODE_LOADING_BEGIN_URL",file:e,url:t}}function Xv(e){return{type:"SOURCE_CODE_LOADING_BEGIN_BROWSER_CONNECTION",file:e}}function Jv(e,t){return{type:"SOURCE_CODE_LOADING_SUCCESS",file:e,code:t}}function Qv(e,t){return{type:"SOURCE_CODE_LOADING_ERROR",file:e,errors:t}}function ew(e,t){return{type:"ASSEMBLY_CODE_LOADING_BEGIN_URL",nativeSymbolKey:e,url:t}}function tw(e){return{type:"ASSEMBLY_CODE_LOADING_BEGIN_BROWSER_CONNECTION",nativeSymbolKey:e}}function nw(e,t){return{type:"ASSEMBLY_CODE_LOADING_SUCCESS",nativeSymbolKey:e,instructions:t}}function rw(e,t){return{type:"ASSEMBLY_CODE_LOADING_ERROR",nativeSymbolKey:e,errors:t}}class ow{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 aw(e,t){const n=parseInt(e,t);if(isNaN(n))throw new Error("Parsing number failed");return n}function iw(e,t){return""===e?null:aw(e,t)}class sw{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=aw(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=aw(s,10));const l={name:i,value:s};n.push(l),t=t.subarray(o)}return new sw(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 lw{constructor(e){this._reader=void 0,this._globalPaxHeader=null,this._reader=new ow(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=iw(e.readString(8),8),a=iw(e.readString(8),8),i=aw(e.readString(12),8),s=iw(e.readString(12),8),l=iw(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=iw(e.readString(8),10),g=iw(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=sw.parse(e.readBuffer(i)),e.seekTo(C),this._readNextFile();if("x"===c){const t=sw.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 cw(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 dw{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 uw(e){if(!("source"in e)||"string"!=typeof e.source)throw new Error('No string "source" property on API response');return e.source}class hw extends J.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?(0,Cn.$7)(i,e):null,c=new dw(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 Zr(e)}(t)?t:null,{debugName:i,breakpadId:s,address:l}=n,c=await cw("/source/v1",JSON.stringify({debugName:i,debugId:s,moduleOffset:`0x${l.toString(16)}`,file:e}),r,o,uw);switch(c.type){case"SUCCESS":return{type:"SUCCESS",source:c.convertedResponse};case"ERROR":a.push(...c.errors);break;default:throw(0,mt.lC)(c.type)}}const i=(0,AC.o)(e),s=(0,AC.J)(i);switch(s.type){case"CORS_ENABLED_SINGLE_FILE":{const{url:e}=s;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}=s;let n=r.get(e);void 0===n&&(n=(async()=>{const t=await o.fetchUrlResponse(e),n=new Uint8Array(await t.arrayBuffer());return qc(n)?Yc(n):n})(),r.set(e,n));try{const r=await n,o=new lw(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(0,mt.lC)(s.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(0,mt.lC)(d.type)}}render(){return null}}const pw=lt({mapStateToProps:e=>({sourceViewFile:To(e),sourceViewCode:lu(e),symbolServerUrl:ga(e),profile:gi(e),browserConnection:ol(e)}),mapDispatchToProps:{beginLoadingSourceCodeFromUrl:Zv,beginLoadingSourceCodeFromBrowserConnection:Xv,finishLoadingSourceCode:Jv,failLoadingSourceCode:Qv},component:hw});function mw(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 fw extends J.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 dw(s,{onBeginUrlRequest:e=>{t(u,e)},onBeginBrowserConnectionQuery:()=>{n(u)}}),p=await async function(e,t,n,r){const o=function(e){return Zr(e)}(n)?n:null,{debugName:a,breakpadId:i,name:s,codeId:l}=t,{address:c}=e,d=await cw("/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,mw);switch(d.type){case"SUCCESS":return{type:"SUCCESS",instructions:d.convertedResponse};case"ERROR":return{type:"ERROR",errors:d.errors};default:throw(0,mt.lC)(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(0,mt.lC)(p.type)}}render(){return null}}const gw=lt({mapStateToProps:e=>({assemblyViewNativeSymbol:Io(e),assemblyViewCode:uu(e),assemblyViewIsOpen:Bo(e),symbolServerUrl:ga(e),profile:gi(e),browserConnection:ol(e)}),mapDispatchToProps:{beginLoadingAssemblyCodeFromUrl:ew,beginLoadingAssemblyCodeFromBrowserConnection:tw,finishLoadingAssemblyCode:nw,failLoadingAssemblyCode:rw},component:fw});var Aw=n(135),bw={};bw.styleTagTransform=M(),bw.setAttributes=B(),bw.insert=T().bind(null,"head"),bw.domAPI=k(),bw.insertStyleElement=P(),w()(Aw.A,bw),Aw.A&&Aw.A.locals&&Aw.A.locals;const Cw=()=>J.createElement("div",{className:"codeViewHeader"},J.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"),J.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"),J.createElement("span",{className:"codeViewHeaderColumn codeViewMainColumn source"}));let yw=null;class vw extends J.PureComponent{constructor(...e){super(...e),this._ref=J.createRef(),this._editor=null}_scrollToHotSpot(e){const t=Su(e.totalLineHits)??Su(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 J.createElement("div",{className:"sourceView codeView"},J.createElement(Cw,null),J.createElement("div",{className:"codeMirrorContainer",ref:this._ref}))}componentDidMount(){null===yw&&(yw=Promise.all([n.e(874),n.e(280),n.e(171)]).then(n.bind(n,3171))),(async()=>{const e=(0,mt.Nn)(yw),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 ww=()=>J.createElement("div",{className:"codeViewHeader"},J.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"),J.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"),J.createElement("span",{className:"codeViewHeaderColumn codeViewMainColumn assembly"}));let Ew=null;class kw extends J.PureComponent{constructor(...e){super(...e),this._ref=J.createRef(),this._editor=null}_scrollToHotSpot(e){const t=Su(e.totalAddressHits)??Su(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 J.createElement("div",{className:"assemblyView codeView"},J.createElement(ww,null),J.createElement("div",{className:"codeMirrorContainer",ref:this._ref}))}componentDidMount(){null===Ew&&(Ew=Promise.all([n.e(874),n.e(136)]).then(n.bind(n,136))),(async()=>{const e=(0,mt.Nn)(Ew),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 xw extends J.PureComponent{constructor(...e){super(...e),this._onClick=()=>{this.props.assemblyViewIsOpen?this.props.closeAssemblyView():this.props.openAssemblyView()}}render(){const{assemblyViewIsOpen:e}=this.props;return e?J.createElement(de,{id:"AssemblyView--hide-button",attrs:{title:!0}},J.createElement("button",{className:fg()("bottom-assembly-button","photon-button","photon-button-ghost","photon-button-ghost--checked"),title:"Hide the assembly view",type:"button",onClick:this._onClick})):J.createElement(de,{id:"AssemblyView--show-button",attrs:{title:!0}},J.createElement("button",{className:fg()("bottom-assembly-button","photon-button","photon-button-ghost"),title:"Show the assembly view",type:"button",onClick:this._onClick}))}}const Tw=lt({mapStateToProps:e=>({assemblyViewIsOpen:Bo(e)}),mapDispatchToProps:{openAssemblyView:rp,closeAssemblyView:op},component:xw});function Sw({source:e}){switch(e.type){case"URL":{const{url:t}=e;let n;try{n=new URL(t).host}catch(e){n=t}return J.createElement(de,{id:"SourceView--loading-url",vars:{host:n}},J.createElement("div",{className:"codeLoadingOverlay"},`Waiting for ${n}…`))}case"BROWSER_CONNECTION":return J.createElement(de,{id:"SourceView--loading-browser-connection"},J.createElement("div",{className:"codeLoadingOverlay"},"Waiting for browser…"));default:throw(0,mt.lC)(e.type)}}function Bw({errors:e}){return J.createElement("ul",{className:"codeErrorOverlay"},e.map(((e,t)=>{switch(e.type){case"NO_KNOWN_CORS_URL":return J.createElement(de,{key:t,id:"SourceView--no-known-cors-url"},J.createElement("li",null,"No known cross-origin-accessible URL."));case"NETWORK_ERROR":{const{url:n,networkErrorMessage:r}=e;return J.createElement(de,{key:t,id:"SourceView--network-error-when-obtaining-source",vars:{url:n,networkErrorMessage:r}},J.createElement("li",null,`There was a network error when fetching the URL ${n}: ${r}`))}case"BROWSER_CONNECTION_ERROR":{const{browserConnectionErrorMessage:n}=e;return J.createElement(de,{key:t,id:"SourceView--browser-connection-error-when-obtaining-source",vars:{browserConnectionErrorMessage:n}},J.createElement("li",null,`Could not query the browser’s symbolication API: ${n}`))}case"BROWSER_API_ERROR":{const{apiErrorMessage:t}=e;return J.createElement(de,{id:"SourceView--browser-api-error-when-obtaining-source",vars:{apiErrorMessage:t}},J.createElement("li",null,`The browser’s symbolication API returned an error: ${t}`))}case"SYMBOL_SERVER_API_ERROR":{const{apiErrorMessage:t}=e;return J.createElement(de,{id:"SourceView--local-symbol-server-api-error-when-obtaining-source",vars:{apiErrorMessage:t}},J.createElement("li",null,`The local symbol server’s symbolication API returned an error: ${t}`))}case"BROWSER_API_MALFORMED_RESPONSE":{const{errorMessage:t}=e;return J.createElement(de,{id:"SourceView--browser-api-malformed-response-when-obtaining-source",vars:{errorMessage:t}},J.createElement("li",null,`The browser’s symbolication API returned a malformed response: ${t}`))}case"SYMBOL_SERVER_API_MALFORMED_RESPONSE":{const{errorMessage:t}=e;return J.createElement(de,{id:"SourceView--local-symbol-server-api-malformed-response-when-obtaining-source",vars:{errorMessage:t}},J.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 J.createElement(de,{id:"SourceView--not-in-archive-error-when-obtaining-source",vars:{url:t,pathInArchive:n}},J.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 J.createElement(de,{id:"SourceView--archive-parsing-error-when-obtaining-source",vars:{url:t,parsingErrorMessage:n}},J.createElement("li",null,`The archive at ${t} could not be parsed: ${n}`))}default:throw(0,mt.lC)(e.type)}})))}var Iw=n(8785),_w={};function Pw({errors:e}){return J.createElement("div",{className:"sourceCodeErrorOverlay"},J.createElement("div",null,J.createElement(de,{id:"BottomBox--source-code-not-available-title"},J.createElement("h3",null,"Source code not available")),J.createElement(de,{id:"SourceView--source-not-available-text",elems:{a:J.createElement("a",{href:"https://github.com/firefox-devtools/profiler/issues/3741",target:"_blank",rel:"noopener noreferrer"})}},J.createElement("p",null,"See",J.createElement("a",{href:"https://github.com/firefox-devtools/profiler/issues/3741",target:"_blank",rel:"noopener noreferrer"},"issue #3741"),"for supported scenarios and planned improvements.")),J.createElement(Bw,{errors:e})))}function Nw({errors:e}){return J.createElement("div",{className:"assemblyCodeErrorOverlay"},J.createElement("div",null,J.createElement(de,{id:"BottomBox--assembly-code-not-available-title"},J.createElement("h3",null,"Assembly code not available")),J.createElement(de,{id:"BottomBox--assembly-code-not-available-text",elems:{a:J.createElement("a",{href:"https://github.com/firefox-devtools/profiler/issues/4520",target:"_blank",rel:"noopener noreferrer"})}},J.createElement("p",null,"See",J.createElement("a",{href:"https://github.com/firefox-devtools/profiler/issues/4520",target:"_blank",rel:"noopener noreferrer"},"issue #4520"),"for supported scenarios and planned improvements.")),J.createElement(Bw,{errors:e})))}_w.styleTagTransform=M(),_w.setAttributes=B(),_w.insert=T().bind(null,"head"),_w.domAPI=k(),_w.insertStyleElement=P(),w()(Iw.A,_w),Iw.A&&Iw.A.locals&&Iw.A.locals;class Mw extends J.PureComponent{constructor(...e){super(...e),this._sourceView=J.createRef(),this._assemblyView=J.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?(0,AC.o)(e).path:null,m=c&&"AVAILABLE"===c.type?c.instructions:[],f=J.createElement("div",{className:"bottom-box-header-trailing-buttons"},J.createElement(Tw,null),J.createElement(de,{id:"SourceView--close-button",attrs:{title:!0}},J.createElement("button",{className:fg()("bottom-close-button","photon-button","photon-button-ghost"),title:"Close the source view",type:"button",onClick:this._onClickCloseButton})));return J.createElement("div",{className:"bottom-box"},J.createElement(pg(),{customClassName:"bottom-box",percentage:!0},J.createElement("div",{className:"bottom-box-pane"},J.createElement("div",{className:"bottom-box-bar"},J.createElement("h3",{className:"bottom-box-title"},p??"(no source file)"),i?null:f),J.createElement("div",{className:"bottom-sourceview-wrapper"},null!==e?J.createElement(vw,{disableOverscan:r,timings:n,sourceCode:h,filePath:p,scrollToHotSpotGeneration:o,hotSpotTimings:a,ref:this._sourceView}):null,void 0!==t&&"LOADING"===t.type?J.createElement(Sw,{source:t.source}):null,void 0!==t&&"ERROR"===t.type?J.createElement(Pw,{errors:t.errors}):null)),i?J.createElement("div",{className:"bottom-box-pane"},J.createElement("div",{className:"bottom-box-bar"},J.createElement("h3",{className:"bottom-box-title"},null!==l?l.name:"(no native symbol)"),f),J.createElement("div",{className:"bottom-assemblyview-wrapper"},null!==l?J.createElement(kw,{disableOverscan:r,timings:d,assemblyCode:m,nativeSymbol:l,scrollToHotSpotGeneration:s,hotSpotTimings:u,ref:this._assemblyView}):null,void 0!==c&&"LOADING"===c.type?J.createElement(Sw,{source:c.source}):null,void 0!==c&&"ERROR"===c.type?J.createElement(Nw,{errors:(g=c.errors,g.map((e=>e)))}):null)):null));var g}}const Fw=lt({mapStateToProps:e=>({sourceViewFile:To(e),sourceViewCode:lu(e),globalLineTimings:Id.getSourceViewLineTimings(e),selectedCallNodeLineTimings:_d.getSourceViewLineTimings(e),sourceViewScrollGeneration:So(e),assemblyViewNativeSymbol:Io(e),assemblyViewCode:uu(e),globalAddressTimings:Id.getAssemblyViewAddressTimings(e),selectedCallNodeAddressTimings:_d.getAssemblyViewAddressTimings(e),assemblyViewScrollGeneration:_o(e),assemblyViewIsOpen:Bo(e),disableOverscan:mi(e).isModifying}),mapDispatchToProps:{closeBottomBox:ap},component:Mw});var Rw=n(1652),Dw={};Dw.styleTagTransform=M(),Dw.setAttributes=B(),Dw.insert=T().bind(null,"head"),Dw.domAPI=k(),Dw.insertStyleElement=P(),w()(Rw.A,Dw),Rw.A&&Rw.A.locals&&Rw.A.locals;class Lw extends J.PureComponent{constructor(...e){super(...e),this._handleClick=(e,t)=>{this.props.changeTabFilter(t.id)}}renderTabSelectorMenuContents(){const{sortedPageData:e,tabFilter:t}=this.props;return e&&0!==e.length?J.createElement(J.Fragment,null,J.createElement(Yg,{onClick:this._handleClick,data:{id:null},attributes:{className:fg()("tabSelectorMenuItem",{checkable:!0,checked:null===t}),"aria-checked":null===t?"false":"true"}},J.createElement(de,{id:"TabSelectorMenu--all-tabs-and-windows"},"All tabs and windows")),e.map((({tabID:e,pageData:n})=>J.createElement(Yg,{key:e,onClick:this._handleClick,data:{id:e},attributes:{className:fg()("tabSelectorMenuItem",{checkable:!0,checked:t===e}),"aria-checked":t===e?"false":"true"}},J.createElement(AA,{iconUrl:n.favicon}),n.hostname)))):null}render(){return J.createElement(wb,{id:"TabSelectorMenu",className:"TabSelectorMenu"},this.renderTabSelectorMenuContents())}}const Ow=lt({mapStateToProps:e=>({tabFilter:Zo(e),sortedPageData:xs(e)}),mapDispatchToProps:{changeTabFilter:im},component:Lw});var Uw=n(4821),zw={};zw.styleTagTransform=M(),zw.setAttributes=B(),zw.insert=T().bind(null,"head"),zw.domAPI=k(),zw.insertStyleElement=P(),w()(Uw.A,zw),Uw.A&&Uw.A.locals&&Uw.A.locals;class Gw extends J.PureComponent{constructor(...e){super(...e),this._getItemsWithFirstElement=zt()(((e,t)=>[e,...t]),{limit:1}),this._showTabSelectorMenu=e=>{if(this.props.items.length>0||this.props.uncommittedItem)return;const t=e.currentTarget.getBoundingClientRect();Vg({data:null,id:"TabSelectorMenu",position:{x:t.left,y:t.bottom},target:e.target})}}render(){const{className:e,items:t,selectedItem:n,uncommittedItem:r,onPop:o,rootRange:a,filterPageDataForActiveTab:i,pageDataByTabID:s,tabFilter:l}=this.props;let c;c=i?J.createElement(J.Fragment,null,i.favicon?J.createElement(AA,{iconUrl:i.favicon}):null,J.createElement("span",{title:i.origin},i.hostname," (",cn(a.end-a.start),")")):J.createElement(de,{id:"ProfileFilterNavigator--full-range-with-duration",vars:{fullRangeDuration:cn(a.end-a.start)}},"Full Range");const d=this._getItemsWithFirstElement(c,t);return J.createElement(J.Fragment,null,J.createElement(pb,{className:e,items:d,selectedItem:n,uncommittedItem:r,onPop:o}),s&&s.size>0?J.createElement(Ow,null):null)}}const Ww=lt({mapStateToProps:e=>{const t=fa(e),n=mi(e),r=n.hasSelection?cn(n.selectionEnd-n.selectionStart):void 0,o=Ts(e),a=ks(e),i=Zo(e),s=ii(e);return{className:"profileFilterNavigator",items:t,selectedItem:t.length,uncommittedItem:r,filterPageDataForActiveTab:o,pageDataByTabID:a,tabFilter:i,rootRange:s}},mapDispatchToProps:{onPop:Kh},component:Gw});var Hw=n(4620),Vw={};Vw.styleTagTransform=M(),Vw.setAttributes=B(),Vw.insert=T().bind(null,"head"),Vw.domAPI=k(),Vw.insertStyleElement=P(),w()(Hw.A,Vw),Hw.A&&Hw.A.locals&&Hw.A.locals;var jw=n(218),$w={};$w.styleTagTransform=M(),$w.setAttributes=B(),$w.insert=T().bind(null,"head"),$w.domAPI=k(),$w.insertStyleElement=P(),w()(jw.A,$w),jw.A&&jw.A.locals&&jw.A.locals;class Kw extends J.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?J.createElement("div",{className:"arrowPanelAnchor"},J.createElement("div",{className:fg()("arrowPanel",{open:n},e),onClick:this._onArrowPanelClick},J.createElement("div",{className:"arrowPanelArrow"}),J.createElement("div",{className:"arrowPanelContent"},t))):null}}var Yw=n(3062),qw={};qw.styleTagTransform=M(),qw.setAttributes=B(),qw.insert=T().bind(null,"head"),qw.domAPI=k(),qw.insertStyleElement=P(),w()(Yw.A,qw),Yw.A&&Yw.A.locals&&Yw.A.locals;class Zw extends J.PureComponent{constructor(e){super(e),this._panel=null,this._buttonRef=J.createRef(),this._wrapperRef=J.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 J.createElement("div",{className:fg()("buttonWithPanel",e,{open:i}),ref:this._wrapperRef},J.createElement("button",{type:"button",className:fg()("buttonWithPanelButton",o),"aria-expanded":String(i),title:i?null:a,onClick:this._onButtonClick,ref:this._buttonRef},t),J.createElement(Kw,{className:r,onOpen:this._onPanelOpen,onClose:this._onPanelClose,ref:this._takePanelRef},n))}}var Xw=n(6444),Jw={};Jw.styleTagTransform=M(),Jw.setAttributes=B(),Jw.insert=T().bind(null,"head"),Jw.domAPI=k(),Jw.insertStyleElement=P(),w()(Xw.A,Jw),Xw.A&&Xw.A.locals&&Xw.A.locals;class Qw extends J.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 eE,t.set(n,i)),i.accumulate(a,r,o,l)}}return t.size>0?J.createElement("details",null,J.createElement("summary",{className:"arrowPanelSubTitle"},J.createElement(de,{id:"MenuButtons--metaOverheadStatistics-subtitle"},"Profiler overhead")),J.createElement("div",{className:"arrowPanelSection"},J.createElement("div",{className:"metaInfoGrid"},J.createElement("div",null),J.createElement("div",null,J.createElement(de,{id:"MenuButtons--metaOverheadStatistics-mean"},"Mean")),J.createElement("div",null,J.createElement(de,{id:"MenuButtons--metaOverheadStatistics-max"},"Max")),J.createElement("div",null,J.createElement(de,{id:"MenuButtons--metaOverheadStatistics-min"},"Min")),[...t].map((([e,t])=>J.createElement(J.Fragment,{key:e},J.createElement(de,{id:s[e],attrs:{title:!0}},J.createElement("div",null)),J.createElement("div",null,Jt(t.mean)),J.createElement("div",null,Jt(t.max)),J.createElement("div",null,Jt(t.min)))))),0!==n?J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoWideLabel"},J.createElement(de,{id:"MenuButtons--metaOverheadStatistics-overhead-duration"},"Overhead Durations:")),J.createElement("span",{className:"metaInfoValueRight"},Jt(n/a))):null,0!==r?J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoWideLabel"},J.createElement(de,{id:"MenuButtons--metaOverheadStatistics-overhead-percentage"},"Overhead Percentage:")),J.createElement("span",{className:"metaInfoValueRight"},Kt(r/a))):null,0!==o?J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoWideLabel"},J.createElement(de,{id:"MenuButtons--metaOverheadStatistics-profiled-duration"},"Profiled Duration:")),J.createElement("span",{className:"metaInfoValueRight"},Jt(o/a))):null)):null}}class eE{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 tE=n(5617),nE={};nE.styleTagTransform=M(),nE.setAttributes=B(),nE.insert=T().bind(null,"head"),nE.domAPI=k(),nE.insertStyleElement=P(),w()(tE.A,nE),tE.A&&tE.A.locals&&tE.A.locals;class rE extends J.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 J.createElement(J.Fragment,null,J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--symbols"},"Symbols:")),J.createElement(de,{id:r?"MenuButtons--metaInfo--profile-symbolicated":"MenuButtons--metaInfo--profile-not-symbolicated"})),J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoLabel"}),J.createElement("button",{onClick:n,type:"button",className:"photon-button photon-button-micro"},J.createElement(de,{id:r?"MenuButtons--metaInfo--resymbolicate-profile":"MenuButtons--metaInfo--symbolicate-profile"}))));case"SYMBOLICATING":return J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--symbols"},"Symbols:")),J.createElement(de,{id:r?"MenuButtons--metaInfo--attempting-resymbolicate":"MenuButtons--metaInfo--currently-symbolicating"}));default:throw(0,mt.lC)(t,"Unhandled SymbolicationStatus.")}}_renderMoreInfoSection(e){return J.createElement("div",{key:e.label},J.createElement("h2",{className:"metaInfoSubTitle"},e.label),J.createElement("div",{className:"metaInfoSection"},e.entries.map((({label:e,format:t,value:n})=>J.createElement("div",{className:"moreInfoRow",key:e},J.createElement("span",{className:"metaInfoWideLabel"},e),J.createElement("div",{className:"moreInfoValue"},Ln("moreInfo",t,n,new xl.e)))))))}_renderMoreInfo(){return J.createElement("details",{className:"metaInfoRow",open:this.state.showsMoreInfo},J.createElement("summary",{className:"moreInfoSummary photon-button photon-button-default photon-button-micro",onClick:this._handleMoreInfoButtonClick},J.createElement(de,{id:this.state.showsMoreInfo?"MenuButtons--index--hide-moreInfo-button":"MenuButtons--index--show-moreInfo-button"},this.state.showsMoreInfo?"Show Less":"Show More")),J.createElement("div",{className:"moreInfoPart"},this.props.profileExtraInfo.map(this._renderMoreInfoSection)))}render(){const{meta:e,profilerOverhead:t}=this.props.profile,{configuration:n}=e,r=ho(e);let o=null;return e.physicalCPUs&&e.logicalCPUs?o=J.createElement(de,{id:"MenuButtons--metaInfo--physical-and-logical-cpu",vars:{physicalCPUs:e.physicalCPUs,logicalCPUs:e.logicalCPUs}}):e.physicalCPUs?o=J.createElement(de,{id:"MenuButtons--metaInfo--physical-cpu",vars:{physicalCPUs:e.physicalCPUs}}):e.logicalCPUs&&(o=J.createElement(de,{id:"MenuButtons--metaInfo--logical-cpu",vars:{logicalCPUs:e.logicalCPUs}})),J.createElement(J.Fragment,null,J.createElement("div",{className:"metaInfoSection"},void 0!==e.profilingStartTime?J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--profiling-started"},"Recording started:")),aE(e.startTime+e.profilingStartTime)):null,void 0!==e.profilingStartTime&&e.profilingEndTime?J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--profiling-session"},"Recording length:")),rn(e.profilingEndTime-e.profilingStartTime)):null,void 0===e.profilingStartTime&&e.startTime?J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--main-process-started"},"Main process started:")),aE(e.startTime)):null,e.endTime?J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--main-process-ended"},"Main process ended:")),aE(e.endTime)):null,e.interval?J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--interval"},"Interval:")),rn(e.interval,4,1)):null,n?J.createElement(J.Fragment,null,J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--buffer-capacity"},"Buffer capacity:")),qt(8*n.capacity,0)),J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--buffer-duration"},"Buffer duration:")),n.duration?J.createElement(de,{id:"MenuButtons--metaInfo--buffer-duration-seconds",vars:{configurationDuration:n.duration}},"{$configurationDuration} seconds"):J.createElement(de,{id:"MenuButtons--metaInfo--buffer-duration-unlimited"},"Unlimited")),J.createElement("div",{className:"metaInfoSection"},oE("MenuButtons--metaInfo-renderRowOfList-label-features",n.features),oE("MenuButtons--metaInfo-renderRowOfList-label-threads-filter",n.threads))):null,this.renderSymbolication()),J.createElement("h2",{className:"metaInfoSubTitle"},J.createElement(de,{id:"MenuButtons--metaInfo--application"},"Application")),J.createElement("div",{className:"metaInfoSection"},e.product?J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--name-and-version"},"Name and version:")),uo(e)):null,e.profilingStartTime?J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--application-uptime"},"Uptime:")),rn(e.profilingStartTime)):null,e.updateChannel?J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--update-channel"},"Update channel:")),e.updateChannel):null,e.appBuildID?J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--build-id"},"Build ID:")),e.sourceURL?J.createElement("a",{href:e.sourceURL,title:e.sourceURL,target:"_blank",rel:"noopener noreferrer"},e.appBuildID):e.appBuildID):null,void 0!==e.debug?J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--build-type"},"Build type:")),J.createElement(de,{id:e.debug?"MenuButtons--metaInfo--build-type-debug":"MenuButtons--metaInfo--build-type-opt"})):null,e.extensions?oE("MenuButtons--metaInfo-renderRowOfList-label-extensions",Array.from(e.extensions.name).sort()):null,e.arguments?J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--arguments"},"Arguments:")),J.createElement("div",{className:"metaInfoLargeContent"},e.arguments)):null),J.createElement("h2",{className:"metaInfoSubTitle"},J.createElement(de,{id:"MenuButtons--metaInfo--platform"},"Platform")),J.createElement("div",{className:"metaInfoSection"},e.device?J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--device"},"Device:")),e.device):null,r?J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--os"},"OS:")),r):null,e.abi?J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--abi"},"ABI:")),e.abi):null,e.CPUName?J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--cpu-model"},"CPU model:")),e.CPUName):null,o?J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--cpu-cores"},"CPU cores:")),o):null,e.mainMemory?J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"metaInfoLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--main-memory"},"Main memory:")),qt(e.mainMemory)):null),e.visualMetrics?J.createElement(J.Fragment,null,J.createElement("h2",{className:"metaInfoSubTitle"},J.createElement(de,{id:"MenuButtons--metaInfo--visual-metrics"},"Visual metrics")),J.createElement("div",{className:"metaInfoSection"},J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"visualMetricsLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--speed-index"},"Speed Index:")),e.visualMetrics.SpeedIndex),J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"visualMetricsLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--perceptual-speed-index"},"Perceptual Speed Index:")),e.visualMetrics.PerceptualSpeedIndex),J.createElement("div",{className:"metaInfoRow"},J.createElement("span",{className:"visualMetricsLabel"},J.createElement(de,{id:"MenuButtons--metaInfo--contentful-speed-Index"},"Contentful Speed Index:")),e.visualMetrics.ContentfulSpeedIndex))):null,t?J.createElement(Qw,{profilerOverhead:t}):null,0!==this.props.profileExtraInfo.length?this._renderMoreInfo():null)}}function oE(e,t){return t.length?J.createElement("div",{className:"metaInfoRow metaInfoListRow"},J.createElement("span",{className:"metaInfoLabel"},J.createElement(de,{id:e})),J.createElement("ul",{className:"metaInfoList"},t.map((e=>J.createElement("li",{className:"metaInfoListItem",key:e},e))))):null}function aE(e){return new Date(e).toLocaleString(void 0,{month:"short",year:"numeric",day:"numeric",weekday:"short",hour:"numeric",minute:"numeric"})}const iE=lt({mapStateToProps:e=>({profile:Ai(e),symbolicationStatus:si(e),profileExtraInfo:Fs(e)}),mapDispatchToProps:{resymbolicateProfile:xp},component:rE}),sE=`${In.HT}/compressed-store`,lE="application/vnd.firefox-profiler+json;version=1.0";class cE extends Error{constructor(...e){super(...e),this.name="UploadAbortedError"}}const dE=/^(?:[a-zA-Z0-9_-])+\.(?:[a-zA-Z0-9_-])+\.(?:[a-zA-Z0-9_-])+$/;function uE(e){return dE.test(e)}function hE(e){return{type:"TOGGLE_CHECKED_SHARING_OPTION",slug:e}}function pE(e){return{type:"UPLOAD_COMPRESSION_STARTED",abortFunction:e}}function mE(){return{type:"UPLOAD_STARTED"}}function fE(e){return{type:"UPDATE_UPLOAD_PROGRESS",uploadProgress:e}}function gE(e){return{type:"UPLOAD_FAILED",error:e}}function AE(){return async(e,t)=>{try{(0,gl.H)({hitType:"event",eventCategory:"profile upload",eventAction:"start"});const n=t(),r=ma(n),o=jd(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 cE("The request was already aborted.")):(e.onload=()=>{413===e.status?a(new Error(_n.TN`
|
127
|
-
The profile size is too large.
|
128
|
-
You can try enabling some of the privacy features to trim its size down.
|
129
|
-
`)):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 cE("The error has been aborted by the user."))},e.upload.onprogress=e=>{r&&e.lengthComputable&&r(e.loaded/e.total)},e.open("POST",sE),e.setRequestHeader("Accept",lE),e.send(n))}))}}(),s=()=>{e({type:"UPLOAD_ABORTED"}),a()};e(pE(s));const l=Gd(n),c=await Wd(n);if(o!==jd(t()))return!1;e({type:"UPLOAD_STARTED"});const d=await i(c,(t=>{e(fE(t))})),u=function(e){if(uE(e)){const t=function(e){if(!uE(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=di(r),a=e=>({start:e.start-o,end:e.end-o}),i=ma(r),s=ca(r);let l;const c=Od(r);if(c){const{committedRanges:t,oldThreadIndexToNew:r}=n;l=s(CE(e,t,r,i,null))}else l=s(yE(e,i,null));const d=Ai(r).meta,u=Ts(r);try{await eh({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(ui(r))})}catch(e){"InvalidStateError"===e.name?console.error(_n.dx`
|
130
|
-
A DOMException 'InvalidStateError' was thrown when storing the profile data to a local indexedDB.
|
131
|
-
Are you in private mode?
|
132
|
-
We'll ignore the error, but you won't be able to act on this profile's data in the future.
|
133
|
-
`):console.error("An error was thrown while storing the profile data to a local indexedDB.",e)}}(u,d===u?null:d,l,n),o!==jd(t()))return!1;if(Od(n)){const{committedRanges:t,oldThreadIndexToNew:o,profile:a}=l;await e(wE()),e(CE(u,t,o,r,n)),Rr((()=>{e(Tp(a))}))}else{const t=Ao(n);e(yE(u,r,"unpublished"===t||"from-browser"===t||"from-post-message"===t?null:n))}(0,gl.H)({hitType:"event",eventCategory:"profile upload",eventAction:"succeeded"})}catch(t){return"UploadAbortedError"===t.name?(0,gl.H)({hitType:"event",eventCategory:"profile upload",eventAction:"aborted"}):(e(gE(t)),(0,gl.H)({hitType:"event",eventCategory:"profile upload",eventAction:"failed"})),!1}return!0}}function bE(){return{type:"UPLOAD_RESET"}}function CE(e,t,n,r,o){return{type:"SANITIZED_PROFILE_PUBLISHED",hash:e,committedRanges:t,oldThreadIndexToNew:n,profileName:r,prePublishedState:o}}function yE(e,t,n){return{type:"PROFILE_PUBLISHED",hash:e,profileName:t,prePublishedState:n}}function vE(){return async(e,t)=>{const n=(0,mt.Nn)(Xd(t()),"Expected to find an original profile when reverting to it.");await e(wE()),e({type:"REVERT_TO_PRE_PUBLISHED_STATE",prePublishedState:n})}}function wE(){return e=>(e({type:"HIDE_STALE_PROFILE"}),new Promise((e=>{setTimeout(e,300)})))}class EE extends J.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 J.createElement("a",{href:this.state.url,...n},t)}}const kE=["B","kB","MB","GB","TB","PB","EB","ZB","YB"];var xE=n(1563),TE=n(3453),SE={};SE.styleTagTransform=M(),SE.setAttributes=B(),SE.insert=T().bind(null,"head"),SE.domAPI=k(),SE.insertStyleElement=P(),w()(TE.A,SE),TE.A&&TE.A.locals&&TE.A.locals;class BE extends J.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 J.createElement("label",{className:"photon-label menuButtonsPublishDataChoicesLabel"},J.createElement("input",{type:"checkbox",className:"photon-checkbox photon-checkbox-default",name:e,onChange:o,checked:r[e]}),J.createElement(de,{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 J.createElement("div",{"data-testid":"MenuButtonsPublish-container"},J.createElement("form",{className:"menuButtonsPublishContent photon-body-10",onSubmit:r},J.createElement("h1",{className:"menuButtonsPublishTitle photon-title-40"},i?J.createElement(de,{id:"MenuButtons--publish--reupload-performance-profile"},"Re-upload Performance Profile"):J.createElement(de,{id:"MenuButtons--publish--share-performance-profile"},"Share Performance Profile")),J.createElement("p",{className:"menuButtonsPublishInfoDescription"},J.createElement(de,{id:"MenuButtons--publish--info-description"},"Upload your profile and make it accessible to anyone with the link.")," ",a?J.createElement(de,{id:"MenuButtons--publish--info-description-default"},"By default, your personal data is removed."):J.createElement(de,{id:"MenuButtons--publish--info-description-firefox-nightly2"},"This profile is from Firefox Nightly, so by default most information is included.")),J.createElement("h3",{className:"photon-title-10"},J.createElement(de,{id:"MenuButtons--publish--include-additional-data"},"Include additional data that may be identifiable")),J.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",J.createElement(de,{id:"MenuButtons--publish--renderCheckbox-label-private-browsing-warning-image",attrs:{title:!0}},J.createElement("img",{className:"menuButtonsPublishDataChoicesIndicator",src:xE,title:"This profile contains private browsing data"}))):null),this.state.compressError?J.createElement("div",{className:"photon-message-bar photon-message-bar-error photon-message-bar-inner-content"},J.createElement("div",{className:"photon-message-bar-inner-text"},J.createElement(de,{id:"MenuButtons--publish--error-while-compressing"},"Error while compressing, try unchecking some checkboxes to reduce the profile size."))):null,J.createElement("div",{className:"menuButtonsPublishButtons"},J.createElement(_E,{downloadFileName:o,sanitizedProfileDataPromise:n,onCompressError:this._onCompressError}),J.createElement("button",{type:"submit",className:"photon-button photon-button-primary menuButtonsPublishButton menuButtonsPublishButtonsUpload",disabled:this.state.compressError},J.createElement("span",{className:"menuButtonsPublishButtonsSvg menuButtonsPublishButtonsSvgUpload"}),J.createElement(de,{id:"MenuButtons--publish--button-upload"},"Upload")))))}_renderUploadPanel(){const{uploadProgress:e,uploadProgressString:t,abortFunction:n,downloadFileName:r,sanitizedProfileDataPromise:o}=this.props;return J.createElement("div",{className:"menuButtonsPublishUpload photon-body-10","data-testid":"MenuButtonsPublish-container"},J.createElement("div",{className:"menuButtonsPublishUploadTop"},J.createElement("div",{className:"menuButtonsPublishUploadTitle photon-title-20"},J.createElement(de,{id:"MenuButtons--publish--upload-title"},"Uploading profile…")),J.createElement("div",{className:"menuButtonsPublishUploadPercentage"},t),J.createElement("div",{className:"menuButtonsPublishUploadBar"},J.createElement("div",{className:"menuButtonsPublishUploadBarInner",style:{width:100*e+"%"}}))),J.createElement("div",{className:"menuButtonsPublishButtons"},J.createElement(_E,{downloadFileName:r,sanitizedProfileDataPromise:o,onCompressError:this._onCompressError}),J.createElement("button",{type:"button",className:"photon-button photon-button-default menuButtonsPublishButton menuButtonsPublishButtonsCancelUpload",onClick:n},J.createElement(de,{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),J.createElement("div",{className:"menuButtonsPublishUpload photon-body-10","data-testid":"MenuButtonsPublish-container"},J.createElement("div",{className:"photon-message-bar photon-message-bar-error photon-message-bar-inner-content"},J.createElement("div",{className:"photon-message-bar-inner-text"},J.createElement(de,{id:"MenuButtons--publish--message-something-went-wrong"},"Uh oh, something went wrong when uploading the profile.")),J.createElement("button",{className:"photon-button photon-button-micro photon-message-bar-action-button",type:"button",onClick:t},J.createElement(de,{id:"MenuButtons--publish--message-try-again"},"Try again"))),J.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(0,mt.lC)(e)}}}const IE=lt({mapStateToProps:e=>({profile:Ai(e),rootRange:ii(e),shouldShowPreferenceOption:Ki(e),profileContainsPrivateBrowsingInformation:Is(e),checkedSharingOptions:Dd(e),downloadFileName:Ld(e),sanitizedProfileDataPromise:Wd(e),uploadPhase:Vd(e),uploadProgress:$d(e),uploadProgressString:Yd(e),uploadError:Kd(e),shouldSanitizeByDefault:Zd(e),abortFunction:qd(e),timelineTrackOrganizationType:No(e).type}),mapDispatchToProps:{toggleCheckedSharingOptions:hE,attemptToPublish:AE,resetUploadState:bE},component:BE});class _E extends J.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 J.createElement(EE,{blob:n,download:`${e}.gz`,className:r},J.createElement("span",{className:"menuButtonsPublishButtonsSvg menuButtonsPublishButtonsSvgDownload"}),J.createElement(de,{id:"MenuButtons--publish--download"},"Download")," ",J.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),kE.length-1);return(t?"-":"")+Number((e/Math.pow(1e3,n)).toPrecision(3))+" "+kE[n]})(n.size),")"))}return n?J.createElement("button",{type:"button",className:r,disabled:!0},J.createElement(de,{id:"MenuButtons--publish--download"},"Download")):J.createElement("button",{type:"button",className:fg()(r,"menuButtonsPublishButtonDisabled")},J.createElement(de,{id:"MenuButtons--publish--compressing"},"Compressing…"))}}var PE=n(9131),NE={};NE.styleTagTransform=M(),NE.setAttributes=B(),NE.insert=T().bind(null,"head"),NE.domAPI=k(),NE.insertStyleElement=P(),w()(PE.A,NE),PE.A&&PE.A.locals&&PE.A.locals;class ME extends J.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||Xc;try{const n=await e(t);(0,Sg.flushSync)((()=>{this.setState({shortUrl:n,fullUrl:t})}))}catch(e){console.warn("Unable to shorten the URL.",e),(0,Sg.flushSync)((()=>{this.setState({shortUrl:t,fullUrl:""})}))}}const n=this._permalinkTextField;n&&(n.focus(),n.select())},this._onPermalinkPanelClose=()=>{this._permalinkTextField&&this._permalinkTextField.blur()}}render(){return J.createElement(de,{id:"MenuButtons--permalink--button",attrs:{label:!0}},J.createElement(Zw,{buttonClassName:"menuButtonsButton menuButtonsButton-hasIcon menuButtonsPermalinkButtonButton",label:"Permalink",initialOpen:this.props.isNewlyPublished,onPanelOpen:this._shortenUrlAndFocusTextFieldOnCompletion,onPanelClose:this._onPermalinkPanelClose,panelClassName:"menuButtonsPermalinkPanel",panelContent:J.createElement("input",{"data-testid":"MenuButtonsPermalink-input",type:"text",className:"menuButtonsPermalinkTextField photon-input",value:this.state.shortUrl,readOnly:"readOnly",ref:this._takePermalinkTextFieldRef})}))}}var FE=n(3951),RE={};RE.styleTagTransform=M(),RE.setAttributes=B(),RE.insert=T().bind(null,"head"),RE.domAPI=k(),RE.insertStyleElement=P(),w()(FE.A,RE),FE.A&&FE.A.locals&&FE.A.locals;class DE extends J.PureComponent{constructor(...e){super(...e),this._hasBeenDeleted=!1,this._componentDeleteButtonRef=J.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 J.createElement(de,{id:"ProfileDeleteButton--delete-button",attrs:{label:!0,title:!0},vars:{smallProfileName:t}},J.createElement(Zw,{ref:this._componentDeleteButtonRef,buttonClassName:fg()(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:J.createElement(LE,{profileName:e,profileToken:o,jwtToken:r,onProfileDeleted:this.onProfileDeleted,onProfileDeleteCanceled:this.onProfileDeleteCanceled})}))}}class LE extends J.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=`${In.HT}/profile/${e}`,r=await fetch(n,{method:"DELETE",headers:{Accept:lE,"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 Qu()).delete(Xu,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?J.createElement(de,{id:"ProfileDeletePanel--delete-error",elems:{a:J.createElement("a",{href:"#",title:e.message,onClick:this.preventClick})}},J.createElement("p",{className:"profileDeleteButtonError"},"An error happened while deleting this profile."," ",J.createElement("a",null,"Hover to know more."))):null}render(){const{profileName:e}=this.props,{status:t}=this.state;return"deleted"===t?J.createElement(OE,null):J.createElement("div",{className:"confirmDialog"},J.createElement(de,{id:"ProfileDeletePanel--dialog-title",vars:{profileName:e}},J.createElement("h2",{className:"confirmDialogTitle"},"Delete ",e)),J.createElement("div",{className:"confirmDialogContent"},J.createElement(de,{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()),J.createElement("div",{className:"confirmDialogButtons"},J.createElement(de,{id:"ProfileDeletePanel--dialog-cancel-button",attrs:{value:!0}},J.createElement("input",{type:"button",className:"photon-button photon-button-default",value:"Cancel",disabled:"working"===t,onClick:this.props.onProfileDeleteCanceled})),J.createElement(de,{id:"working"===t?"ProfileDeletePanel--dialog-deleting-button":"ProfileDeletePanel--dialog-delete-button",attrs:{value:!0}},J.createElement("input",{type:"button",className:"photon-button photon-button-destructive",value:"working"===t?"Deleting…":"Delete",disabled:"working"===t,onClick:this.onConfirmDeletion}))))}}function OE(e){return J.createElement(de,{id:"ProfileDeletePanel--message-success"},J.createElement("p",{className:"profileDeleteButtonSuccess"},"The uploaded data was successfully deleted."))}class UE extends J.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"from-post-message":case"unpublished":case"from-file":case"local":return"local";case"from-url":return Zr(t)?"local":"uploaded";case"none":case"uploaded-recordings":throw new Error(`The datasource ${e} shouldn't happen here.`);default:throw(0,mt.lC)(e)}}_renderUploadedProfileActions(e){return J.createElement("div",{className:"profileInfoUploadedActions"},J.createElement("div",{className:"profileInfoUploadedDate"},J.createElement("span",{className:"profileInfoUploadedLabel"},J.createElement(de,{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"})),J.createElement("div",{className:"profileInfoUploadedActionsButtons"},J.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},J.createElement(de,{id:"MenuButtons--index--profile-info-uploaded-actions"},"Delete"))))}_renderMetaInfoPanel(){const{currentProfileUploadedInformation:e}=this.props,{metaInfoPanelState:t}=this.state;switch(t){case"initial":return J.createElement(J.Fragment,null,J.createElement("h2",{className:"metaInfoSubTitle"},J.createElement(de,{id:"MenuButtons--index--metaInfo-subtitle"},"Profile Information")),e?this._renderUploadedProfileActions(e):null,J.createElement(iE,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 J.createElement(LE,{profileName:a,profileToken:n,jwtToken:r,onProfileDeleted:this._onProfileDeleted,onProfileDeleteCanceled:this._resetMetaInfoState})}case"profile-deleted":return J.createElement(OE,null);default:throw(0,mt.lC)(t)}}_renderMetaInfoButton(){return J.createElement(de,{id:"MenuButtons--index--metaInfo-button",attrs:{label:!0}},J.createElement(Zw,{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:J.createElement("button",{type:"button",className:"menuButtonsButton menuButtonsButton-hasIcon menuButtonsRevertToFullView",onClick:this._changeTimelineTrackOrganizationToFull},J.createElement(de,{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 J.createElement("button",{type:"button",className:"menuButtonsButton menuButtonsShareButtonButton menuButtonsButton-hasIcon menuButtonsShareButtonButton-uploading",onClick:n},J.createElement(de,{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"),J.createElement(de,{id:i,attrs:{label:!0}},J.createElement(Zw,{buttonClassName:fg()("menuButtonsButton menuButtonsShareButtonButton menuButtonsButton-hasIcon",{menuButtonsShareButtonError:a}),panelClassName:"menuButtonsPublishPanel",label:"",panelContent:J.createElement(IE,{isRepublish:o})}))}_renderPermalink(){const{dataSource:e,isNewlyPublished:t,injectedUrlShortener:n,profileUrl:r}=this.props;return"uploaded"===this._getUploadedStatus(e,r)?J.createElement(ME,{isNewlyPublished:t,injectedUrlShortener:n}):null}_renderRevertProfile(){const{hasPrePublishedState:e,revertToPrePublishedState:t}=this.props;return e?J.createElement("button",{type:"button",className:"menuButtonsButton menuButtonsButton-hasIcon menuButtonsRevertButton",onClick:t},J.createElement(de,{id:"MenuButtons--index--revert"},"Revert to Original Profile")):null}render(){return J.createElement(J.Fragment,null,this._renderFullViewButtonForActiveTab(),this._renderRevertProfile(),this._renderMetaInfoButton(),this._renderPublishPanel(),this._renderPermalink(),J.createElement("a",{href:"/docs/",target:"_blank",className:"menuButtonsButton menuButtonsButton-hasLeftBorder",title:"Open the documentation in a new window"},J.createElement(de,{id:"MenuButtons--index--docs"},"Docs"),J.createElement("i",{className:"open-in-new"})))}}const zE=lt({mapStateToProps:e=>({rootRange:ii(e),dataSource:Ao(e),profileUrl:Co(e),isNewlyPublished:tl(e),uploadPhase:Vd(e),hasPrePublishedState:Jd(e),abortFunction:qd(e),timelineTrackOrganization:No(e),currentProfileUploadedInformation:dl(e)}),mapDispatchToProps:{dismissNewlyPublished:bm,revertToPrePublishedState:vE,changeTimelineTrackOrganization:kp,profileRemotelyDeleted:Bm},component:UE});class GE extends J.PureComponent{async updateCurrentProfileInformationState(){const{hash:e,setCurrentProfileUploadedInformation:t}=this.props,n=await th(e);this.props.hash===e&&t(n||null)}componentDidMount(){this.updateCurrentProfileInformationState()}componentDidUpdate(){this.updateCurrentProfileInformationState()}render(){return null}}const WE=lt({mapStateToProps:e=>({hash:bo(e)}),mapDispatchToProps:{setCurrentProfileUploadedInformation:Sm},component:GE});var HE=n(1758),VE={};VE.styleTagTransform=M(),VE.setAttributes=B(),VE.insert=T().bind(null,"head"),VE.domAPI=k(),VE.insertStyleElement=P(),w()(HE.A,VE),HE.A&&HE.A.locals&&HE.A.locals;class jE extends J.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 J.createElement("div",{className:"symbolicationStatusOverlay"},J.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 J.createElement("div",{className:"symbolicationStatusOverlay"},J.createElement("span",{className:"symbolicationStatusOverlayThrobber"}),"Symbolicating call stacks...")}var n;return J.createElement("div",{className:"symbolicationStatusOverlay hidden"})}}const $E=lt({mapStateToProps:e=>({symbolicationStatus:si(e),waitingForLibs:oi(e).waitingForLibs}),component:jE});var KE=n(1683),YE={};YE.styleTagTransform=M(),YE.setAttributes=B(),YE.insert=T().bind(null,"head"),YE.domAPI=k(),YE.insertStyleElement=P(),w()(KE.A,YE),KE.A&&KE.A.locals&&KE.A.locals;class qE extends J.PureComponent{constructor(...e){super(...e),this.state={focusedWithKey:null,focusGeneration:0},this.inputRef=J.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 J.createElement(J.Fragment,null,J.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),J.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 ZE=lt({mapStateToProps:e=>({profileNameWithDefault:pa(e)}),mapDispatchToProps:{changeProfileName:Jh},component:qE});class XE extends J.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 JE=lt({mapStateToProps:e=>({isUploading:"uploading"===Vd(e)}),component:XE});var QE=n(5944),ek={};ek.styleTagTransform=M(),ek.setAttributes=B(),ek.insert=T().bind(null,"head"),ek.domAPI=k(),ek.insertStyleElement=P(),w()(QE.A,ek),QE.A&&QE.A.locals&&QE.A.locals;class tk extends J.PureComponent{constructor(...e){super(...e),this.state={isOpen:!1,focusAfterClosed:null},this._focusArea=J.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=(0,mt.au)(e.target);switch(e.key){case"?":if("INPUT"===t.tagName||"TEXTAREA"===t.tagName||"SELECT"===t.tagName||t.isContentEditable)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((0,mt.au)(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?J.createElement(J.Fragment,null,J.createElement("div",{className:"appKeyboardShortcutsHeader"},J.createElement("div",{className:"appKeyboardShortcutsHeaderTitle",id:"AppKeyboardShortcutsHeaderTitle"},"Keyboard shortcuts"),J.createElement("button",{type:"button",className:"appKeyboardShortcutsHeaderClose",onClick:this._handleCloseClick},"Close")),J.createElement("div",{className:"appKeyboardShortcutsContent"},J.createElement("div",{className:"appKeyboardShortcutsColumn"},J.createElement("h2",null,"Call Tree"),J.createElement(nk,{label:"Close call node",shortcut:"ArrowLeft"}),J.createElement(nk,{label:"Open call node",shortcut:"ArrowRight"}),J.createElement(nk,{label:"Open all child call nodes",shortcut:"*"}),J.createElement(nk,{label:"Copy call node label",shortcut:"ctrl,c",macShortcut:"cmd,c"}),J.createElement("h2",null,"Flame Graph"),J.createElement(nk,{label:"Move view up",shortcut:"w"}),J.createElement(nk,{label:"Move view down",shortcut:"s"}),J.createElement(nk,{label:"Move selection up",shortcut:"ArrowUp"}),J.createElement(nk,{label:"Move selection down",shortcut:"ArrowDown"}),J.createElement(nk,{label:"Move selection left",shortcut:"ArrowLeft"}),J.createElement(nk,{label:"Move selection right",shortcut:"ArrowRight"}),J.createElement(nk,{label:"Copy call node label",shortcut:"ctrl,c",macShortcut:"cmd,c"}),J.createElement("h2",null,"Marker Table"),J.createElement(nk,{label:"Copy marker label",shortcut:"ctrl,c",macShortcut:"cmd,c"})),J.createElement("div",{className:"appKeyboardShortcutsColumn"},J.createElement("h2",null,"Timeline"),J.createElement(nk,{label:"Select multiple threads",shortcut:"ctrl,click",macShortcut:"cmd,click"}),J.createElement("h2",null,"Call Tree Transforms"),J.createElement(nk,{label:"Merge function",shortcut:"m"}),J.createElement(nk,{label:"Merge node only",shortcut:"M"}),J.createElement(nk,{label:"Focus on function",shortcut:"f"}),J.createElement(nk,{label:"Focus on subtree only",shortcut:"F"}),J.createElement(nk,{label:"Collapse function",shortcut:"c"}),J.createElement(nk,{label:"Collapse library",shortcut:"C"}),J.createElement(nk,{label:"Drop samples with this function",shortcut:"d"})))):null}render(){const{wrapperClassName:e,children:t}=this.props,{isOpen:n}=this.state;return J.createElement(J.Fragment,null,J.createElement("div",{className:fg()(e,{appKeyboardShortcutsNoInteract:n})},t),J.createElement("div",{className:fg()({appKeyboardShortcuts:!0,open:n})},J.createElement("div",{className:"appKeyboardShortcutsBox",ref:this._focusArea,tabIndex:"0",role:"dialog","aria-modal":"true","aria-labelledby":"AppKeyboardShortcutsHeaderTitle"},this.maybeRenderShortcuts())))}}function nk(e){let t=e.shortcut;return e.macShortcut&&window.navigator.platform.includes("Mac")&&(t=e.macShortcut),J.createElement("div",{className:"appKeyboardShortcutsRow"},J.createElement("div",{className:"appKeyboardShortcutsLabel"},e.label),t.split(",").map(((e,t)=>J.createElement("kbd",{key:t,className:"appKeyboardShortcutsShortcut"},e))))}function rk(e){return{type:"CHANGE_SELECTED_ZIP_FILE",selectedZipFileIndex:e}}function ok(e){return{type:"CHANGE_EXPANDED_ZIP_FILES",expandedZipFileIndexes:e}}function ak(e,t=!1){return async(n,r)=>{const o=Hs(r()),a=o.path[e],i=o.file[e];if(!i)throw new Error("Attempted to load an archive that did not exist or was a directory.");n({type:"PROCESS_PROFILE_FROM_ZIP_FILE",pathInZipFile:a});try{const e=await Ic(await i.async("string")),o=Os(r());o.pathInZipFile===a&&"PROCESS_PROFILE_FROM_ZIP_FILE"===o.phase&&await n(bp(e,{pathInZipFile:a},t))}catch(e){console.error("Failed to process the profile in the archive with the following error:"),console.error(e),n({type:"FAILED_TO_PROCESS_PROFILE_FROM_ZIP_FILE",error:e})}}}function ik(e){return(t,n)=>{const r=Hs(n()).path.indexOf(e);return-1===r?(t(lk(e)),Promise.resolve()):t(ak(r))}}function sk(){return{type:"RETURN_TO_ZIP_FILE_LIST"}}function lk(e){return{type:"FILE_NOT_FOUND_IN_ZIP_FILE",pathInZipFile:e}}var ck=n(348),dk={};dk.styleTagTransform=M(),dk.setAttributes=B(),dk.insert=T().bind(null,"head"),dk.domAPI=k(),dk.insertStyleElement=P(),w()(ck.A,dk),ck.A&&ck.A.locals&&ck.A.locals;var uk=n(5605),hk={};hk.styleTagTransform=M(),hk.setAttributes=B(),hk.insert=T().bind(null,"head"),hk.domAPI=k(),hk.insertStyleElement=P(),w()(uk.A,hk),uk.A&&uk.A.locals&&uk.A.locals;class pk extends J.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=(0,Cn.cL)(o.samples,s,a);if(null===o.samples.stack[l])return;this.props.onSampleClick(e,l)}}}_renderCanvas(){const e=this._canvas;null!==e&&(0,yn.l)("ThreadHeightGraph render",(()=>{this.drawCanvas(e)}))}componentDidMount(){window.addEventListener("resize",this._resizeListener),this.forceUpdate()}componentWillUnmount(){window.removeEventListener("resize",this._resizeListener)}drawCanvas(e){const{thread:t,samplesSelectedStates:n,interval:r,rangeStart:o,rangeEnd:a,categories:i,stacksGrowFromCeiling:s,maxValue:l,heightFunc:c}=this.props,d=e.ownerDocument?e.ownerDocument.defaultView.devicePixelRatio:1,u=e.getBoundingClientRect();e.width=Math.round(u.width*d),e.height=Math.round(u.height*d);const h=e.getContext("2d"),p=[o,a],m=p[1]-p[0],f=e.width/m,g=e.height/l,A=r*f,b=A<2?1.2:1,C=Math.max(.8,A*b),y=p[0]-C/f,v=p[1],w=(0,Pc.lV)(t.samples.time,y),E=(0,Pc.lV)(t.samples.time,v,w),k={height:[],xPos:[]},x={height:[],xPos:[]},T={height:[],xPos:[]},S=.25/f;let B=-1/0;for(let e=w;e<E;e++){const r=t.samples.time[e];if(r<B)continue;const o=c(e);if(null===o)continue;const a=o*g,s=(r-p[0])*f;let l;if(null!==n&&"SELECTED"===n[e])l=T;else{const n=(0,mt.Nn)(t.samples.stack[e],"A stack must exist for this sample, since a callNodeIndex exists.");l="Idle"===i[t.stackTable.category[n]].name?x:k}l.height.push(a),l.xPos.push(s),B=r+S}function I(t,n){if(0!==t.xPos.length){h.fillStyle=n;for(let n=0;n<t.height.length;n++){const r=t.height[n],o=s?0:e.height-r,a=t.xPos[n];h.fillRect(a,o,C,r)}}}I(k,Fb.Gr),I(T,Fb.Tn),I(x,"#c5e1fe")}render(){this._renderCanvas();const{className:e,trackName:t}=this.props;return J.createElement("div",{className:e},J.createElement("canvas",{className:fg()(`${this.props.className}Canvas`,"threadHeightGraphCanvas"),ref:this._takeCanvasRef,onClick:this._onClick},J.createElement("h2",null,"Stack Graph for ",t),J.createElement("p",null,"This graph charts the stack height of each sample.")))}}class mk extends J.PureComponent{constructor(...e){super(...e),this._heightFunction=e=>{const{callNodeInfo:t,sampleNonInvertedCallNodes:n}=this.props,r=n[e];return null===r?null:t.getNonInvertedCallNodeTable().depth[r]}}render(){const{className:e,thread:t,samplesSelectedStates:n,interval:r,rangeStart:o,rangeEnd:a,callNodeInfo:i,categories:s,trackName:l,onSampleClick:c}=this.props,d=i.getNonInvertedCallNodeTable();let u=0;for(let e=0;e<d.depth.length;e++)d.depth[e]>u&&(u=d.depth[e]);return J.createElement(pk,{heightFunc:this._heightFunction,maxValue:u,className:e,trackName:l,interval:r,thread:t,samplesSelectedStates:n,rangeStart:o,rangeEnd:a,categories:s,onSampleClick:c})}}class fk extends J.PureComponent{constructor(...e){super(...e),this._heightFunction=e=>{const{thread:t}=this.props,{samples:n}=t;return e>=n.length-1?0:((0,mt.Nn)(n.threadCPUDelta)[e+1]||0)/(n.time[e+1]-n.time[e])}}render(){const{className:e,thread:t,samplesSelectedStates:n,interval:r,rangeStart:o,rangeEnd:a,categories:i,trackName:s,maxThreadCPUDeltaPerMs:l,onSampleClick:c}=this.props;return J.createElement(pk,{heightFunc:this._heightFunction,maxValue:l,className:e,trackName:s,interval:r,thread:t,samplesSelectedStates:n,rangeStart:o,rangeEnd:a,categories:i,onSampleClick:c})}}var gk=Object.defineProperty,Ak=(e,t,n)=>((e,t,n)=>t in e?gk(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n)(e,"symbol"!=typeof t?t+"":t,n),bk=new Map,Ck=new WeakMap,yk=0;function vk(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){const t=function(e){return Object.keys(e).sort().filter((t=>void 0!==e[t])).map((t=>{return`${t}_${"root"===t?(n=e.root,n?(Ck.has(n)||(yk+=1,Ck.set(n,yk.toString())),Ck.get(n)):"0"):e[t]}`;var n})).toString()}(e);let n=bk.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},bk.set(t,n)}return n}(n),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(),bk.delete(o))}}var wk=class extends J.Component{constructor(e){super(e),Ak(this,"node",null),Ak(this,"_unobserveCb",null),Ak(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()})),Ak(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}}componentDidMount(){this.unobserve(),this.observeNode()}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()}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=vk(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 J.createElement(t||"div",{ref:this.handleNode,...h},e)}},Ek=n(7408),kk={};kk.styleTagTransform=M(),kk.setAttributes=B(),kk.insert=T().bind(null,"head"),kk.domAPI=k(),kk.insertStyleElement=P(),w()(Ek.A,kk),Ek.A&&Ek.A.locals&&Ek.A.locals;class xk extends J.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=(0,Cn.UI)(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&&(0,yn.l)("ThreadSampleGraph render",(()=>{this.drawCanvas(e)}))}componentDidMount(){this._renderCanvas()}componentDidUpdate(){this._renderCanvas()}drawCanvas(e){const{thread:t,interval:n,rangeStart:r,rangeEnd:o,samplesSelectedStates:a,categories:i,width:s,height:l}=this.props,c=e.ownerDocument?e.ownerDocument.defaultView.devicePixelRatio:1;e.width=Math.round(s*c),e.height=Math.round(l*c);const d=e.getContext("2d"),u=[r,o],h=u[1]-u[0],p=e.width/h,m=n*p,f=m<2?1.2:1,g=Math.max(.8,m*f),A=Math.min(g,10),b=u[0]-g/p,C=u[1],y=(0,Pc.lV)(t.samples.time,b),v=(0,Pc.lV)(t.samples.time,C,y),w=[],E=[],k=[],x=.25/p;let T=-1/0;for(let e=y;e<v;e++){const n=t.samples.time[e];if(n<T)continue;const r=t.samples.stack[e];if(null===r)continue;const o=(n-u[0])*p-A/2;let s;s=null!==a&&"SELECTED"===a[e]?k:"Idle"===i[t.stackTable.category[r]].name?E:w,s.push(o),T=n+x}function S(t,n){if(0!==t.length){d.fillStyle=n;for(let n=0;n<t.length;n++){const r=0,o=t[n];d.fillRect(o,r,A,e.height)}}}S(w,Fb.Gr),S(k,Fb.Tn),S(E,"#c5e1fe")}render(){const{className:e,trackName:t}=this.props;return J.createElement("div",{className:e},J.createElement(wk,{onChange:this._observerCallback},J.createElement("canvas",{className:fg()(`${this.props.className}Canvas`,"threadSampleGraphCanvas"),ref:this._takeCanvasRef,onClick:this._onClick},J.createElement("h2",null,"Stack Graph for ",t),J.createElement("p",null,"This graph charts the stack height of each sample."))))}}const Tk=yy(xk);var Sk=n(6503),Bk={};Bk.styleTagTransform=M(),Bk.setAttributes=B(),Bk.insert=T().bind(null,"head"),Bk.domAPI=k(),Bk.insertStyleElement=P(),w()(Sk.A,Bk),Sk.A&&Sk.A.locals&&Sk.A.locals;const Ik=[3,2,2],_k=function(e,t){const n=new Float32Array(15);return n[7]=1,Rk(n,t),n}(0,Ik);class Pk{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)Rk(e.perPixelContribution,Ik);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=(0,mt.Nn)(c[e]),h=(0,mt.Nn)(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=(0,mt.Nn)(c[d]);const t=i+d+1;m=t<e.samples.length?(0,mt.Nn)((0,mt.Nn)(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&&Mk(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 Nk{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},canvasPixelWidth:a,canvasPixelHeight:i}=this.renderedComponentSettings,{devicePixelRatio:s}=window,l=Math.floor(e*s),c=Math.floor(t*s);if(l<0||l>=a||c<0||c>=i)return null;const d=this._categoryAtDevicePixel(l,c),u=this._getSamplesAtTime(n),h=this._getCPURatioAtX(l,u);if(null===d)return null===h?null:{sample:null,cpuRatioInTimeRange:h};const{category:p,categoryLowerEdge:m,yPercentage:f}=d;let g=m;for(const{sample:e,contribution:t}of u){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}if(o.category[n]!==p)continue;const a=g+t;if(f<=a)return{sample:e,cpuRatioInTimeRange:h};g=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{canvasPixelHeight:n}=this.renderedComponentSettings,r=1-t/n;let o=null,a=0,i=0;for(const{category:t,accumulatedUpperEdge:n}of this.fills){const s=n[e];if(t!==o&&(o=t,a=i),s!==i){if(r<=s)return{category:t,categoryLowerEdge:a,yPercentage:r};i=s}}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,Pc.lV)(t.time,o),s=(0,Pc.lV)(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(_k.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=(0,mt.Nn)(A[t]),g=(0,mt.Nn)(i.samples.threadCPUDelta)[h+1],g=null!=g?g:f);const b=l+c/s;Mk(d,this.renderedComponentSettings,p,u,m,f,g,b);let C=0;for(let e=0;e<_k.length;e++)C+=_k[e]*d[e];return C}}function Mk(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<0&&(d=0),u>e.length-1&&(u=e.length-1);const h=(r-s)*l,p=0|d,m=0|u,f=0|h,g=r-n,A=o-r,b=null===a||0===g?1:a/g/c,C=null===i||0===A?1:i/A/c;for(let t=p;t<=f;t++)e[t]+=b;e[p]-=b*(d-p),e[f]-=b*(1-(h-f));for(let t=f;t<=m;t++)e[t]+=C;e[f]-=C*(h-f),e[m]-=C*(1-(u-m))}function Fk(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 Rk(e,t){let n=e,r=new Float32Array(e.length);for(const e of t)Fk(n,r,e),[r,n]=[n,r];if(r===e)for(let t=0;t<e.length;t++)e[t]=n[t]}class Dk extends J.PureComponent{constructor(...e){super(...e),this._canvas=J.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&&(0,yn.l)("ThreadActivityGraph render",(()=>{this.drawCanvas(e)}))}_getCategoryDrawStyles(e){return null===this._categoryDrawStyles&&(this._categoryDrawStyles=this.props.categories.map((({color:t},n)=>{const r=fC(t);return{...r,category:n,filteredOutByTransformFillStyle:Lk(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 Pk(e,t,n),{averageCPUPerPixel:o,upperGraphEdge:a}=r.run();return{fills:n,fillsQuerier:new Nk(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=Ok(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 J.createElement(wk,{onChange:this._observerCallback},J.createElement("canvas",{className:e,ref:this._canvas,onClick:n},J.createElement("h2",null,"Activity Graph for ",t),J.createElement("p",null,"This graph shows a visual chart of thread activity.")))}}function Lk(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 Ok(e,t,n){for(let r=n;r<e.length;r++)if(e[r]!==t[r])return r;return e.length}class Uk extends J.PureComponent{render(){const{cpuRatio:e,timeRange:t}=this.props,n=`${Kt(e)} (average over ${Qt(t)})`;return J.createElement("div",{className:"tooltipDetails"},J.createElement("div",{className:"tooltipLabel"},"CPU:"),J.createElement("div",null,n))}}class zk extends J.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 J.createElement(J.Fragment,null,J.createElement("div",{className:"tooltipDetails"},J.createElement("div",{className:"tooltipLabel"},"Category:"),J.createElement("div",null,J.createElement("span",{className:`colored-square category-color-${c}`}),(0,Cn.LU)(n,s,l))),J.createElement("div",{className:"tooltipDetails"},J.createElement("div",{className:"tooltipLabel"},"Stack:")),J.createElement(LC,{maxStacks:20,stackIndex:i,thread:t,implementationFilter:r,categories:n}))}}class Gk extends J.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=(0,Cn.RM)((0,Cn.dQ)(n,(0,mt.Nn)(o)),n);a=e.length>1||"(root)"!==e[0].funcName}}return J.createElement(J.Fragment,null,null===e?null:J.createElement(Uk,{cpuRatio:e.cpuRatio,timeRange:e.timeRange}),a&&null!==e?J.createElement(kC,null):null,a&&null!==t?J.createElement(zk,{sampleIndex:t,rangeFilteredThread:n,categories:r,implementationFilter:o}):null)}}function Wk(e){e.stopPropagation()}class Hk extends J.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",Wk)}componentWillUnmount(){const e=this._container;null!==e&&e.removeEventListener("transitionend",Wk)}_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 J.createElement("div",{className:this.props.className,onMouseMove:this._onMouseMove,onMouseLeave:this._onMouseLeave,ref:this._takeContainerRef},J.createElement(Dk,{className:fg()(`${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:J.createElement(Kb,{mouseX:A,mouseY:b},J.createElement(Gk,{sampleIndex:g.sample,cpuRatioInTimeRange:"cpu-category"===f?g.cpuRatioInTimeRange:null,rangeFilteredThread:t,categories:n,implementationFilter:h})))}}const Vk=yy(Hk),jk={top:0,height:6,background:"black",squareCorners:!1,borderLeft:null,borderRight:null},$k={...jk,top:6,background:Fb.LD},Kk={...$k,background:"#ffc600"};function Yk(e){const{data:t,name:n}=e;return n in qk?qk[n]:t&&t.type in qk?qk[t.type]:qk.default}const qk={default:jk,RefreshDriverTick:{...jk,background:"hsla(0,0%,0%,0.05)",height:18,squareCorners:!0},RD:{...jk,background:"hsla(0,0%,0%,0.05)",height:18,squareCorners:!0},Scripts:{...jk,background:Fb.rS,top:6},"requestAnimationFrame callbacks":{...jk,background:Fb.rS,top:6},Styles:{...jk,background:Fb.FC,top:7},FireScrollEvent:{...jk,background:Fb.rS,top:7},Reflow:{...jk,background:Fb.Jn,top:7},DispatchSynthMouseMove:{...jk,background:Fb.rS,top:8},DisplayList:{...jk,background:Fb.$7,top:9},LayerBuilding:{...jk,background:Fb.LD,top:9},Rasterize:{...jk,background:Fb.eq,top:10},ForwardTransaction:{...jk,background:Fb.Qy,top:11},NotifyDidPaint:{...jk,background:Fb.bw,top:12},LayerTransaction:{...jk,background:Fb.Qy},Composite:{...jk,background:Fb.Jn},Vsync:{...jk,background:"rgb(255, 128, 0)"},LayerContentGPU:{...jk,background:"rgba(0,200,0,0.5)"},LayerCompositorGPU:{...jk,background:"rgba(0,200,0,0.5)"},LayerOther:{...jk,background:"rgb(200,0,0)"},Jank:{...jk,background:"hsl(347, 100%, 60%)",borderLeft:Fb.w1,borderRight:Fb.w1,squareCorners:!0},"BHR-detected hang":{...jk,background:"hsl(347, 100%, 60%)",borderLeft:Fb.w1,borderRight:Fb.w1,squareCorners:!0},GCMajor:{...$k,squareCorners:!0,top:0},GCSlice:$k,GCMinor:$k,"GC Interrupt":$k,CC:{...Kk,squareCorners:!0,top:0},CCSlice:Kk,ForgetSkippable:Kk,IdleCCSlice:Kk,IdleForgetSkippable:Kk,FileIO:{...jk,background:Fb.Jn},IPCOut:{...jk,background:Fb.Jn,top:2},SyncIPCOut:{...jk,background:Fb.Tn,top:6},IPCIn:{...jk,background:Fb.y2,top:13},SyncIPCIn:{...jk,background:Fb.Hk,top:17}},Zk={HOVERED:"hsla(0,0%,100%,0.3)",PRESSED:"rgba(0,0,0,0.3)"};var Xk=n(8132),Jk={};function Qk(e){e.stopPropagation()}function ex(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)}Jk.styleTagTransform=M(),Jk.setAttributes=B(),Jk.insert=T().bind(null,"head"),Jk.domAPI=k(),Jk.insertStyleElement=P(),w()(Xk.A,Jk),Xk.A&&Xk.A.locals&&Xk.A.locals;class tx extends J.PureComponent{constructor(...e){super(...e),this._canvas=J.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=Yk(o);d.fillStyle=m.background,m.squareCorners?d.fillRect(h,m.top,p,m.height):ex(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=Zk[f],m.squareCorners?d.fillRect(h,m.top,p,m.height):ex(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&&(0,yn.l)("TimelineMarkersImplementation render",(()=>{this.drawCanvas(e)}))})))):this._canvasState.renderScheduled=!0}componentDidMount(){this._scheduleDraw()}componentDidUpdate(){this._scheduleDraw()}render(){return J.createElement(wk,{onChange:this._observerCallback},J.createElement("canvas",{className:"timelineMarkersCanvas",ref:this._canvas,onMouseDown:this.props.onMouseDown,onMouseMove:this.props.onMouseMove,onMouseUp:this.props.onMouseUp,onMouseOut:this.props.onMouseOut}))}}class nx extends J.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}=xu(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=Yk(n);if(l>=h.top&&l<h.top+h.height)return t}return null}componentDidMount(){const e=this._container;null!==e&&e.addEventListener("transitionend",Qk)}componentWillUnmount(){const e=this._container;null!==e&&e.removeEventListener("transitionend",Qk)}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 J.createElement("div",{"data-testid":o,className:fg()("timelineMarkers",e,t?"selected":null),ref:this._takeContainerRef},J.createElement(eA,{id:"MarkerContextMenu"},J.createElement(tx,{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?J.createElement(Kb,{mouseX:c,mouseY:d},J.createElement(YC,{markerIndex:l,marker:h,threadsKey:r,restrictHeightWidth:!0})):null)}}const rx=yy(nx),ox=zt()(((e,t)=>(0,Cn.dr)(e,t)),{limit:1}),ax=lt({mapStateToProps:(e,t)=>{const{threadsKey:n}=t,r=Sd(n),o=zo(e);return{getMarker:r.getMarkerGetter(e),markerIndexes:r.getTimelineJankMarkerIndexes(e),isSelected:ox(o,n),isModifyingSelection:mi(e).isModifying,testId:"TimelineMarkersJank",rightClickedMarker:r.getRightClickedMarker(e)}},mapDispatchToProps:{changeRightClickedMarker:Lh},component:rx}),ix=lt({mapStateToProps:(e,t)=>{const{threadsKey:n}=t,r=Sd(n),o=zo(e);return{additionalClassName:r.getThread(e).isMainThread?"timelineMarkersGeckoMain":null,getMarker:r.getMarkerGetter(e),markerIndexes:r.getTimelineOverviewMarkerIndexes(e),isSelected:ox(o,n),isModifyingSelection:mi(e).isModifying,testId:"TimelineMarkersOverview",rightClickedMarker:r.getRightClickedMarker(e)}},mapDispatchToProps:{changeRightClickedMarker:Lh},component:rx}),sx=lt({mapStateToProps:(e,t)=>{const{threadsKey:n}=t,r=Sd(n),o=zo(e);return{getMarker:r.getMarkerGetter(e),markerIndexes:r.getTimelineFileIoMarkerIndexes(e),isSelected:ox(o,n),isModifyingSelection:mi(e).isModifying,testId:"TimelineMarkersFileIo",rightClickedMarker:r.getRightClickedMarker(e)}},mapDispatchToProps:{changeRightClickedMarker:Lh},component:rx}),lx=lt({mapStateToProps:(e,t)=>{const{threadsKey:n}=t,r=Sd(n),o=zo(e);return{getMarker:r.getMarkerGetter(e),markerIndexes:r.getTimelineMemoryMarkerIndexes(e),isSelected:ox(o,n),isModifyingSelection:mi(e).isModifying,additionalClassName:"timelineMarkersMemory",testId:"TimelineMarkersMemory",rightClickedMarker:r.getRightClickedMarker(e)}},mapDispatchToProps:{changeRightClickedMarker:Lh},component:rx}),cx=lt({mapStateToProps:(e,t)=>{const{threadsKey:n}=t,r=Sd(n),o=zo(e);return{getMarker:r.getMarkerGetter(e),markerIndexes:r.getTimelineIPCMarkerIndexes(e),isSelected:ox(o,n),isModifyingSelection:mi(e).isModifying,additionalClassName:"timelineMarkersIPC",testId:"TimelineMarkersIPC",rightClickedMarker:r.getRightClickedMarker(e)}},mapDispatchToProps:{changeRightClickedMarker:Lh},component:rx});class dx extends J.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 J.createElement("div",{onMouseEnter:this._onMouseEnter,onMouseLeave:this._onMouseLeave,...n},e,i&&t?J.createElement(Kb,{mouseX:r,mouseY:o},t):null)}}var ux=n(9659),hx={};hx.styleTagTransform=M(),hx.setAttributes=B(),hx.insert=T().bind(null,"head"),hx.domAPI=k(),hx.insertStyleElement=P(),w()(ux.A,hx),ux.A&&ux.A.locals&&ux.A.locals;class px extends J.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 J.createElement("div",{className:"timelineEmptyThreadIndicator"},e.startup?J.createElement(dx,{style:e.startup,className:"timelineEmptyThreadIndicatorBlock timelineEmptyThreadIndicatorStartup",tooltip:"This thread hasn't started yet"}):null,e.shutdown?J.createElement(dx,{style:e.shutdown,className:"timelineEmptyThreadIndicatorBlock timelineEmptyThreadIndicatorShutdown",tooltip:"This thread has shut down here"}):null,e.emptyBufferStart?J.createElement(dx,{style:e.emptyBufferStart,className:"timelineEmptyThreadIndicatorBlock timelineEmptyThreadIndicatorEmptyBuffer",tooltip:J.createElement("span",{className:"timelineEmptyThreadIndicatorLongTooltip"},_n.TN`
|
134
|
-
This buffer was empty. Either the profiler was still initializing for
|
135
|
-
a new thread, or the profiling buffer was full. Increase your buffer
|
136
|
-
size before recording to potentially include more samples.
|
137
|
-
`)}):null)}}const mx=yy(px);var fx=n(6648),gx={};gx.styleTagTransform=M(),gx.setAttributes=B(),gx.insert=T().bind(null,"head"),gx.domAPI=k(),gx.insertStyleElement=P(),w()(fx.A,gx),fx.A&&fx.A.locals&&fx.A.locals;class Ax extends J.PureComponent{constructor(...e){super(...e),this._onSampleClick=(e,t)=>{const n=Tu(e);if(n.ctrlOrMeta||n.shift)return;const{threadsKey:r,selectSelfCallNode:o,focusCallTree:a,selectedThreadIndexes:i,callTreeVisible:s}=this.props;1===i.size&&(o(r,t),null!==t&&s&&a()),"number"==typeof r&&i.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,threadsKey:r,interval:o,rangeStart:a,rangeEnd:i,sampleIndexOffset:s,callNodeInfo:l,unfilteredSamplesRange:c,categories:d,timelineType:u,hasFileIoMarkers:h,showMemoryMarkers:p,sampleNonInvertedCallNodes:m,samplesSelectedStates:f,treeOrderSampleComparator:g,trackType:A,trackName:b,enableCPUUsage:C,maxThreadCPUDeltaPerMs:y,isExperimentalCPUGraphsEnabled:v,implementationFilter:w}=this.props,E=t.processType,k="plugin"!==E,x=(t.showMarkersInTimeline||"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 J.createElement("div",{className:fg()("timelineTrackThread",A)},"expanded"===A&&p?J.createElement(lx,{rangeStart:a,rangeEnd:i,threadsKey:r,onSelect:this._onMarkerSelect}):null,"expanded"===A&&h?J.createElement(sx,{rangeStart:a,rangeEnd:i,threadsKey:r,onSelect:this._onMarkerSelect}):null,k?J.createElement(ax,{rangeStart:a,rangeEnd:i,threadsKey:r,onSelect:this._onMarkerSelect}):null,"expanded"===A&&x?J.createElement(ix,{rangeStart:a,rangeEnd:i,threadsKey:r,onSelect:this._onMarkerSelect}):null,"category"!==u&&"cpu-category"!==u||t.isJsTracer?J.createElement(mk,{className:"threadStackGraph",trackName:b,interval:o,thread:t,rangeStart:a,rangeEnd:i,callNodeInfo:l,sampleNonInvertedCallNodes:m,samplesSelectedStates:f,categories:d,onSampleClick:this._onSampleClick}):J.createElement(J.Fragment,null,J.createElement(Vk,{className:"threadActivityGraph",trackName:b,interval:o,fullThread:e,rangeFilteredThread:n,rangeStart:a,rangeEnd:i,sampleIndexOffset:s,onSampleClick:this._onSampleClick,categories:d,samplesSelectedStates:f,treeOrderSampleComparator:g,enableCPUUsage:C,maxThreadCPUDeltaPerMs:y,implementationFilter:w,timelineType:u}),"expanded"===A?J.createElement(Tk,{className:"threadSampleGraph",trackName:b,interval:o,thread:t,rangeStart:a,rangeEnd:i,samplesSelectedStates:f,categories:d,onSampleClick:this._onSampleClick}):null,v&&void 0!==n.samples.threadCPUDelta?J.createElement(fk,{className:"threadCPUGraph",trackName:b,interval:o,thread:t,rangeStart:a,rangeEnd:i,callNodeInfo:l,samplesSelectedStates:f,categories:d,onSampleClick:this._onSampleClick,maxThreadCPUDeltaPerMs:y}):null),J.createElement(mx,{thread:t,interval:o,rangeStart:a,rangeEnd:i,unfilteredSamplesRange:c}))}}const bx=lt({mapStateToProps:(e,t)=>{const{threadsKey:n}=t,r=Sd(n),o=zo(e),a=ui(e),i=r.getCPUProcessedThread(e),s=Ho(e),l="cpu-category"===s&&void 0!==i.samples.threadCPUDelta;return{fullThread:i,filteredThread:r.getFilteredThread(e),rangeFilteredThread:r.getRangeFilteredThread(e),callNodeInfo:r.getCallNodeInfo(e),sampleNonInvertedCallNodes:r.getSampleIndexToNonInvertedCallNodeIndexForFilteredThread(e),unfilteredSamplesRange:r.unfilteredSamplesRange(e),interval:bi(e),rangeStart:a.start,rangeEnd:a.end,sampleIndexOffset:r.getSampleIndexOffsetFromCommittedRange(e),categories:Ri(e),timelineType:s,hasFileIoMarkers:0!==r.getTimelineFileIoMarkerIndexes(e).length,samplesSelectedStates:r.getSamplesSelectedStatesInFilteredThread(e),treeOrderSampleComparator:r.getTreeOrderComparatorInFilteredThread(e),selectedThreadIndexes:o,enableCPUUsage:l,isExperimentalCPUGraphsEnabled:il(e),maxThreadCPUDeltaPerMs:iu(e),implementationFilter:Eo(e),callTreeVisible:r.getUsefulTabs(e).includes("calltree")}},mapDispatchToProps:{updatePreviewSelection:jh,changeSelectedCallNode:nh,focusCallTree:uh,selectSelfCallNode:oh,reportTrackThreadHeight:Am},component:yy(Ax)});var Cx=n(4557),yx={};yx.styleTagTransform=M(),yx.setAttributes=B(),yx.insert=T().bind(null,"head"),yx.domAPI=k(),yx.insertStyleElement=P(),w()(Cx.A,yx),Cx.A&&Cx.A.locals&&Cx.A.locals;class vx extends J.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 J.createElement("div",{className:"timelineTrackScreenshot",style:{height:i},onMouseLeave:this._handleMouseLeave,onMouseMove:this._handleMouseMove,onClick:this._selectScreenshotOnClick},J.createElement(xx,{thread:t,width:r,rangeStart:o,rangeEnd:a,screenshots:e,trackHeight:i}),d?J.createElement(kx,{thread:t,isMakingPreviewSelection:n,width:r,pageX:s,offsetX:l,containerTop:c,rangeEnd:a,rangeStart:o,trackHeight:i,payload:d}):null)}}const wx=[],Ex=lt({mapStateToProps:(e,t)=>{const{threadIndex:n,windowId:r}=t,o=Td(n),{start:a,end:i}=ui(e),s=mi(e);return{thread:o.getRangeFilteredThread(e),screenshots:o.getRangeFilteredScreenshotsById(e).get(r)||wx,threadName:o.getFriendlyThreadName(e),rangeStart:a,rangeEnd:i,isMakingPreviewSelection:s.hasSelection&&s.isModifying,trackHeight:ul(e)}},mapDispatchToProps:{updatePreviewSelection:jh},component:yy(vx)});class kx extends J.PureComponent{constructor(...e){super(...e),this._overlayElement=(0,mt.Nn)(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}=ur(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,Sg.createPortal)(J.createElement("div",{className:"timelineTrackScreenshotHover",style:{left:p,top:h}},J.createElement("img",{className:"timelineTrackScreenshotHoverImg",src:e.stringTable.getString(l),style:{height:u,width:d}})),this._overlayElement)}}class xx extends J.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(J.createElement("div",{className:"timelineTrackScreenshotImgContainer",style:{left:t,width:Math.min(l,u-t)},key:t},J.createElement("img",{className:"timelineTrackScreenshotImg",src:e.stringTable.getString(r),style:{width:p,height:a}})))}return i.length>0?i:null}}var Tx=n(3989),Sx={};Sx.styleTagTransform=M(),Sx.setAttributes=B(),Sx.insert=T().bind(null,"head"),Sx.domAPI=k(),Sx.insertStyleElement=P(),w()(Tx.A,Sx),Tx.A&&Tx.A.locals&&Tx.A.locals;class Bx extends J.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(),J.createElement("canvas",{className:"timelineTrackEventDelayCanvas",ref:this._takeCanvasRef})}}class Ix extends J.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,Pc.lV)(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 J.createElement("div",{className:"timelineTrackEventDelayTooltip"},J.createElement("div",{className:"timelineTrackEventDelayTooltipLine"},J.createElement("span",{className:"timelineTrackEventDelayTooltipNumber"},Qt(t[e]))," event delay"),J.createElement("div",{className:"timelineTrackEventDelayTooltipLine"},J.createElement("span",{className:"timelineTrackEventDelayTooltipNumber"},Qt(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 J.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 J.createElement("div",{className:"timelineTrackEventDelayGraph",onMouseMove:this._onMouseMove,onMouseLeave:this._onMouseLeave},J.createElement(Bx,{rangeStart:a,rangeEnd:i,height:l,width:c,lineWidth:d,interval:o,eventDelays:u,thread:h}),null===e?null:J.createElement(J.Fragment,null,this._renderEventDelayDot(e),J.createElement(Kb,{mouseX:t,mouseY:n},this._renderTooltip(e))),J.createElement(mx,{thread:r,interval:o,rangeStart:a,rangeEnd:i,unfilteredSamplesRange:s}))}}const _x=lt({mapStateToProps:(e,t)=>{const{threadIndex:n}=t,{start:r,end:o}=ui(e),a=Td(n);return{threadIndex:n,rangeStart:r,rangeEnd:o,interval:bi(e),thread:a.getThread(e),filteredThread:a.getFilteredThread(e),unfilteredSamplesRange:a.unfilteredSamplesRange(e),eventDelays:a.getProcessedEventDelays(e)}},component:yy(Ix)});class Px extends J.PureComponent{render(){const{threadIndex:e}=this.props,t=In.ZB;return J.createElement("div",{className:"timelineTrackEventDelay",style:{height:t,"--graph-height":`${t}px`,"--markers-height":"0px"}},J.createElement(_x,{threadIndex:e,lineWidth:In.Dp,graphHeight:t}))}}var Nx=n(7721),Mx={};Mx.styleTagTransform=M(),Mx.setAttributes=B(),Mx.insert=T().bind(null,"head"),Mx.domAPI=k(),Mx.insertStyleElement=P(),w()(Nx.A,Mx),Nx.A&&Nx.A.locals&&Nx.A.locals;class Fx extends J.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;case"FirstContentfulPaint":case"FirstContentfulComposite":case"LargestContentfulPaint":c="var(--magenta-60)";break;default:c="#000"}const d=i/(o-r),u=null!==l.end?l.end:l.start,h=(u-r)*d;let p=null;const{data:m}=l;if(n&&m&&"tracing"===m.type&&"Navigation"===m.category&&m.innerWindowID){const e=n.get(m.innerWindowID);e&&(p=J.createElement("div",{className:"timelineVerticalIndicatorsUrl"},(f=e.url).length<200?f:`${f.slice(0,150)}...${f.slice(-20)}`))}var f;return J.createElement(dx,{key:t,"data-testid":"vertical-indicator-line",style:{"--vertical-indicator-color":c,left:h},className:"timelineVerticalIndicatorsLine",onMouseDown:this._onMouseDown,"data-marker-index":t,tooltip:s?J.createElement(J.Fragment,null,J.createElement("div",null,J.createElement("span",{className:"timelineVerticalIndicatorsSwatch",style:{backgroundColor:c}})," ",l.name,J.createElement("span",{className:"timelineVerticalIndicatorsDim"}," at "),J.createElement("span",{className:"timelineVerticalIndicatorsTime"},en(u-a))," "),p):null})}))}}var Rx=n(1228),Dx={};Dx.styleTagTransform=M(),Dx.setAttributes=B(),Dx.insert=T().bind(null,"head"),Dx.domAPI=k(),Dx.insertStyleElement=P(),w()(Rx.A,Dx),Rx.A&&Rx.A.locals&&Rx.A.locals;class Lx extends J.PureComponent{constructor(...e){super(...e),this._requestedAnimationFrame=!1,this._canvas=J.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/In.E5);e<r.length;e+=In.O_){const t=r[e],n=(0,Pc.lV)(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=In.E5*c;e.width=Math.round(s*c),e.height=Math.round(In.LT*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%In.O_*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(),J.createElement("canvas",{className:"timelineTrackNetworkCanvas",ref:this._canvas,onMouseMove:this._onMouseMove,onMouseLeave:this._onMouseLeave})}}class Ox extends J.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 J.createElement("div",{className:"timelineTrackNetwork",style:{height:In.LT},onMouseDown:this._onMouseDown},J.createElement(eA,{id:"MarkerContextMenu",attributes:{className:"treeViewContextMenu"}},J.createElement(Lx,{rangeStart:t,rangeEnd:n,networkTiming:i,hoveredMarkerIndex:null===p?h:p,rightClickedMarkerIndex:d,selectedNetworkMarkerIndex:u,width:c,onHoveredMarkerChange:this._onHoveredMarkerChange}),J.createElement(Fx,{verticalMarkerIndexes:o,getMarker:r,innerWindowIDToPageMap:e,rangeStart:t,rangeEnd:n,zeroAt:a,width:c,onRightClick:this._onVerticalIndicatorRightClick,shouldShowTooltip:null===d}),A&&null!==p&&g?J.createElement(Kb,{mouseX:m,mouseY:f},J.createElement(YC,{className:"tooltipNetwork",markerIndex:p,marker:g,threadsKey:l,restrictHeightWidth:!0})):null))}}const Ux=lt({mapStateToProps:(e,t)=>{const{threadIndex:n}=t,r=Td(n),{start:o,end:a}=ui(e),i=r.getNetworkTrackTiming(e);return{getMarker:r.getMarkerGetter(e),innerWindowIDToPageMap:Wi(e),networkTiming:i,rangeStart:o,rangeEnd:a,zeroAt:di(e),isModifyingSelection:mi(e).isModifying,verticalMarkerIndexes:r.getTimelineVerticalMarkerIndexes(e),rightClickedMarkerIndex:r.getRightClickedMarkerIndex(e),selectedNetworkMarkerIndex:r.getSelectedNetworkMarkerIndex(e),hoveredMarkerIndexFromState:r.getHoveredMarkerIndex(e)}},mapDispatchToProps:{changeRightClickedMarker:Lh,changeSelectedNetworkMarker:Rh,changeHoveredMarker:Dh},component:yy(Ox)});function zx(e){switch(e){case"magenta":return Fb.qy;case"purple":return Fb.$7;case"blue":return Fb.Jn;case"teal":return Fb.FC;case"green":return Fb.eq;case"yellow":return Fb.$m;case"red":return Fb.w1;case"orange":return Fb.LD;case"grey":return Fb.MU;case"ink":return Fb.t2;default:throw new Error("Unexpected track color: "+e)}}function Gx(e){return zx(e)+"88"}function Wx(e){switch(e){case"magenta":return Fb.xp;case"purple":return Fb.Eo;case"blue":return Fb.Qr;case"teal":return Fb.u9;case"green":return Fb.l3;case"yellow":return Fb.S4;case"red":return Fb.f;case"orange":return Fb.Oz;case"grey":return Fb.jP;case"ink":return Fb.IG;default:throw new Error("Unexpected track color: "+e)}}var Hx=n(4165),Vx={};Vx.styleTagTransform=M(),Vx.setAttributes=B(),Vx.insert=T().bind(null,"head"),Vx.domAPI=k(),Vx.insertStyleElement=P(),w()(Hx.A,Vx),Hx.A&&Hx.A.locals&&Hx.A.locals;class jx extends J.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,counterSampleRange: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;e.width=Math.round(h),e.height=Math.round(p),d.clearRect(0,0,h,p);const C=r.samples;if(0===C.length)return;const{minCount:y,countRange:v,accumulatedCounts:w}=l,[E,k]=c;{d.lineWidth=m,d.lineJoin="bevel",d.strokeStyle=zx(In.KD),d.fillStyle=Gx(In.KD),d.beginPath();let e=0,n=0,r=0;for(let o=E;o<k;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 J.createElement(wk,{onChange:this._observerCallback},J.createElement("canvas",{className:"timelineTrackMemoryCanvas",ref:this._takeCanvasRef}))}}class $x extends J.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,counterSampleRange:c}=this.props,d=a+(t-r)/o*(i-a);if(0===s.samples.length)throw new Error("No sample group found for memory counter");const{samples:u}=s;if(d<u.time[0]||d>u.time[u.length-1]+l)this.setState({hoveredCounter:null});else{let e;const[r,o]=c,a=(0,Pc.lV)(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,{samples:s}=n;if(0===s.length)throw new Error("No accumulated sample found for memory counter");const l=s.time[e];if(l<r||l>o)return null;const{minCount:c,countRange:d,accumulatedCounts:u}=t,h=u[e]-c,p=void 0!==s.number?s.number[e]:null;return J.createElement(Kb,{mouseX:a,mouseY:i},J.createElement("div",{className:"timelineTrackMemoryTooltip"},J.createElement("div",{className:"timelineTrackMemoryTooltipLine"},J.createElement("span",{className:"timelineTrackMemoryTooltipNumber"},qt(h)),J.createElement(de,{id:"TrackMemoryGraph--relative-memory-at-this-time"},"relative memory at this time")),J.createElement("div",{className:"timelineTrackMemoryTooltipLine"},J.createElement("span",{className:"timelineTrackMemoryTooltipNumber"},qt(d)),J.createElement(de,{id:"TrackMemoryGraph--memory-range-in-graph"},"memory range in graph")),null!==p?J.createElement("div",{className:"timelineTrackMemoryTooltipLine"},J.createElement("span",{className:"timelineTrackMemoryTooltipNumber"},Vt(p,2,0)),J.createElement(de,{id:"TrackMemoryGraph--allocations-and-deallocations-since-the-previous-sample"},"allocations and deallocations since the previous sample")):null))}_renderMemoryDot(e){const{counter:t,rangeStart:n,rangeEnd:r,graphHeight:o,width:a,lineWidth:i,accumulatedSamples:s}=this.props,{samples:l}=t;if(0===l.length)throw new Error("No sample found for memory counter");const c=r-n,d=l.time[e];if(d<n||d>r)return null;const u=a*(d-n)/c,{minCount:h,countRange:p,accumulatedCounts:m}=s,f=o-i/2,g=f-(m[e]-h)/p*f+i/2;return J.createElement("div",{style:{left:u,top:g,backgroundColor:Wx(In.KD)},className:"timelineTrackMemoryGraphDot"})}render(){const{hoveredCounter:e}=this.state,{filteredThread:t,interval:n,rangeStart:r,rangeEnd:o,unfilteredSamplesRange:a,counter:i,counterSampleRange:s,graphHeight:l,width:c,lineWidth:d,accumulatedSamples:u}=this.props;return J.createElement("div",{className:"timelineTrackMemoryGraph",onMouseMove:this._onMouseMove,onMouseLeave:this._onMouseLeave},J.createElement(jx,{rangeStart:r,rangeEnd:o,counter:i,counterSampleRange:s,height:l,width:c,lineWidth:d,interval:n,accumulatedSamples:u}),null===e?null:J.createElement(J.Fragment,null,this._renderMemoryDot(e),this._renderTooltip(e)),J.createElement(mx,{thread:t,interval:n,rangeStart:r,rangeEnd:o,unfilteredSamplesRange:a}))}}const Kx=lt({mapStateToProps:(e,t)=>{const{counterIndex:n}=t,r=zi(n),o=r.getCounter(e),{start:a,end:i}=ui(e),s=r.getCommittedRangeCounterSampleRange(e),l=Td(o.mainThreadIndex);return{counter:o,threadIndex:o.mainThreadIndex,accumulatedSamples:r.getAccumulateCounterSamples(e),rangeStart:a,rangeEnd:i,counterSampleRange:s,interval:bi(e),filteredThread:l.getFilteredThread(e),unfilteredSamplesRange:l.unfilteredSamplesRange(e)}},component:yy($x)});class Yx extends J.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 J.createElement("div",{className:"timelineTrackMemory",style:{height:In.tk+In.EV,"--graph-height":`${In.tk}px`,"--markers-height":`${In.EV}px`}},J.createElement(lx,{rangeStart:t,rangeEnd:n,threadsKey:r,onSelect:this._onMarkerSelect}),J.createElement(Kx,{counterIndex:e,lineWidth:In.u3,graphHeight:In.tk}))}}const qx=lt({mapStateToProps:(e,t)=>{const{counterIndex:n}=t,r=zi(n).getCounter(e),{start:o,end:a}=ui(e);return{threadIndex:r.mainThreadIndex,rangeStart:o,rangeEnd:a}},mapDispatchToProps:{updatePreviewSelection:jh},component:Yx}),Zx=1.465e-9/3;var Xx=class{constructor(e){this.allowRatings=!1,this.options=e,this.KWH_PER_BYTE_FOR_NETWORK=Zx}perByte(e,t){return e<1?0:t?72e-12*e*0+e*Zx*475:5.603333333333333e-10*e*519}},Jx=1e9,Qx={data:{AFG:132.53,AFRICA:547.83,ALB:24.29,DZA:634.61,ASM:611.11,AGO:174.73,ATG:611.11,ARG:353.96,ARM:264.54,ABW:561.22,ASEAN:570.41,ASIA:591.13,AUS:556.3,AUT:110.81,AZE:671.39,BHS:660.1,BHR:904.62,BGD:691.41,BRB:605.51,BLR:441.74,BEL:138.11,BLZ:225.81,BEN:584.07,BTN:23.33,BOL:531.69,BIH:601.29,BWA:847.91,BRA:96.4,BRN:893.91,BGR:335.33,BFA:467.53,BDI:250,CPV:558.14,KHM:417.71,CMR:305.42,CAN:165.15,CYM:642.86,CAF:0,TCD:628.57,CHL:291.11,CHN:583.61,COL:259.51,COM:642.86,COG:700,COD:24.46,COK:250,CRI:53.38,CIV:393.89,HRV:204.96,CUB:637.61,CYP:534.32,CZE:449.72,DNK:151.65,DJI:692.31,DMA:529.41,DOM:580.78,ECU:166.91,EGY:574.04,SLV:224.76,GNQ:591.84,ERI:631.58,EST:416.67,SWZ:172.41,ETH:24.64,EU:243.93,EUROPE:302.29,FLK:500,FRO:404.76,FJI:288.46,FIN:79.16,FRA:56.02,GUF:217.82,PYF:442.86,G20:477.89,G7:341.44,GAB:491.6,GMB:666.67,GEO:167.59,DEU:381.41,GHA:484,GRC:336.57,GRL:178.57,GRD:640,GLP:500,GUM:622.86,GTM:328.27,GIN:236.84,GNB:625,GUY:640.35,HTI:567.31,HND:282.27,HKG:699.5,HUN:204.19,ISL:27.68,IND:713.01,IDN:682.43,IRN:641.73,IRQ:688.81,IRL:282.98,ISR:582.93,ITA:330.72,JAM:555.56,JPN:493.59,JOR:540.92,KAZ:821.9,KEN:71.2,KIR:666.67,XKX:894.65,KWT:649.16,KGZ:147.29,LAO:265.51,"LATIN AMERICA AND CARIBBEAN":256.03,LVA:123.99,LBN:599.01,LSO:20,LBR:227.85,LBY:818.69,LTU:160.07,LUX:105.26,MAC:448.98,MDG:436.44,MWI:66.67,MYS:607.88,MDV:611.77,MLI:408,MLT:459.14,MTQ:523.18,MRT:464.71,MUS:632.48,MEX:492.34,"MIDDLE EAST":643.04,MDA:643.46,MNG:775.31,MNE:418.09,MSR:1e3,MAR:624.45,MOZ:135.65,MMR:436.92,NAM:59.26,NRU:750,NPL:24.44,NLD:268.48,NCL:660.58,NZL:112.76,NIC:265.12,NER:670.89,NGA:523.25,"NORTH AMERICA":342.95,PRK:389.59,MKD:556.19,NOR:30.05,OCEANIA:495.74,OECD:341.27,OMN:564.55,PAK:440.61,PSE:516.13,PAN:161.68,PNG:507.25,PRY:24.31,PER:266.48,POL:661.93,PRT:165.55,PRI:677.96,QAT:602.5,REU:572.82,ROU:240.58,RUS:445.02,RWA:316.33,KNA:636.36,LCA:666.67,SPM:600,VCT:529.41,WSM:473.68,STP:642.86,SAU:696.31,SEN:511.6,SRB:647.52,SYC:564.52,SLE:50,SGP:470.78,SVK:116.77,SVN:231.28,SLB:700,SOM:578.95,ZAF:709.69,KOR:432.11,SSD:629.03,ESP:174.05,LKA:509.78,SDN:263.16,SUR:349.28,SWE:40.7,CHE:34.68,SYR:701.66,TWN:644.36,TJK:116.86,TZA:339.25,THA:549.85,PHL:610.74,TGO:443.18,TON:625,TTO:681.53,TUN:563.96,TUR:464.59,TKM:1306.03,TCA:653.85,UGA:44.53,UKR:256.21,ARE:492.7,GBR:228.25,USA:369.47,URY:128.79,UZB:1167.6,VUT:571.43,VEN:185.8,VNM:472.47,VGB:647.06,VIR:632.35,WORLD:481.65,YEM:566.1,ZMB:111.97,ZWE:297.87},type:"average"};const eT=Qx.data.WORLD,tT={OPERATIONAL_KWH_PER_GB_DATACENTER:.055,OPERATIONAL_KWH_PER_GB_NETWORK:.059,OPERATIONAL_KWH_PER_GB_DEVICE:.08,EMBODIED_KWH_PER_GB_DATACENTER:.012,EMBODIED_KWH_PER_GB_NETWORK:.013,EMBODIED_KWH_PER_GB_DEVICE:.081,GLOBAL_GRID_INTENSITY:494},nT={FIFTH_PERCENTILE:.095,TENTH_PERCENTILE:.186,TWENTIETH_PERCENTILE:.341,THIRTIETH_PERCENTILE:.493,FORTIETH_PERCENTILE:.656,FIFTIETH_PERCENTILE:.846},rT=tT.GLOBAL_GRID_INTENSITY,oT=e=>parseFloat(e.toFixed(2)),aT=(e,t)=>e<=t;function iT(e={},t=3,n=!1){var r,o,a,i,s,l;const c=4===t?rT:eT;if("object"!=typeof e)throw new Error("Options must be an object");const d={};if(null==e?void 0:e.gridIntensity){d.gridIntensity={};const{device:t,dataCenter:n,network:u}=e.gridIntensity;(t||0===t)&&("object"==typeof t?(Qx.data[null==(r=t.country)?void 0:r.toUpperCase()]||(console.warn(`"${t.country}" is not a valid country. Please use a valid 3 digit ISO 3166 country code. \nSee https://developers.thegreenwebfoundation.org/co2js/data/ for more information. \nFalling back to global average grid intensity.`),d.gridIntensity.device={value:c}),d.gridIntensity.device={country:t.country,value:parseFloat(Qx.data[null==(o=t.country)?void 0:o.toUpperCase()])}):"number"==typeof t?d.gridIntensity.device={value:t}:(d.gridIntensity.device={value:c},console.warn(`The device grid intensity must be a number or an object. You passed in a ${typeof t}. \nFalling back to global average grid intensity.`))),(n||0===n)&&("object"==typeof n?(Qx.data[null==(a=n.country)?void 0:a.toUpperCase()]||(console.warn(`"${n.country}" is not a valid country. Please use a valid 3 digit ISO 3166 country code. \nSee https://developers.thegreenwebfoundation.org/co2js/data/ for more information. \nFalling back to global average grid intensity.`),d.gridIntensity.dataCenter={value:eT}),d.gridIntensity.dataCenter={country:n.country,value:parseFloat(Qx.data[null==(i=n.country)?void 0:i.toUpperCase()])}):"number"==typeof n?d.gridIntensity.dataCenter={value:n}:(d.gridIntensity.dataCenter={value:c},console.warn(`The data center grid intensity must be a number or an object. You passed in a ${typeof n}. \nFalling back to global average grid intensity.`))),(u||0===u)&&("object"==typeof u?(Qx.data[null==(s=u.country)?void 0:s.toUpperCase()]||(console.warn(`"${u.country}" is not a valid country. Please use a valid 3 digit ISO 3166 country code. \nSee https://developers.thegreenwebfoundation.org/co2js/data/ for more information. Falling back to global average grid intensity. \nFalling back to global average grid intensity.`),d.gridIntensity.network={value:c}),d.gridIntensity.network={country:u.country,value:parseFloat(Qx.data[null==(l=u.country)?void 0:l.toUpperCase()])}):"number"==typeof u?d.gridIntensity.network={value:u}:(d.gridIntensity.network={value:c},console.warn(`The network grid intensity must be a number or an object. You passed in a ${typeof u}. \nFalling back to global average grid intensity.`)))}else d.gridIntensity={device:{value:c},dataCenter:{value:c},network:{value:c}};return!(null==e?void 0:e.dataReloadRatio)&&0!==e.dataReloadRatio||"number"!=typeof e.dataReloadRatio?(d.dataReloadRatio=3===t?.02:0,console.warn(`The dataReloadRatio option must be a number. You passed in a ${typeof e.dataReloadRatio}. \nFalling back to default value.`)):e.dataReloadRatio>=0&&e.dataReloadRatio<=1?d.dataReloadRatio=e.dataReloadRatio:(d.dataReloadRatio=3===t?.02:0,console.warn(`The dataReloadRatio option must be a number between 0 and 1. You passed in ${e.dataReloadRatio}. \nFalling back to default value.`)),!(null==e?void 0:e.firstVisitPercentage)&&0!==e.firstVisitPercentage||"number"!=typeof e.firstVisitPercentage?(d.firstVisitPercentage=3===t?.75:1,console.warn(`The firstVisitPercentage option must be a number. You passed in a ${typeof e.firstVisitPercentage}. \nFalling back to default value.`)):e.firstVisitPercentage>=0&&e.firstVisitPercentage<=1?d.firstVisitPercentage=e.firstVisitPercentage:(d.firstVisitPercentage=3===t?.75:1,console.warn(`The firstVisitPercentage option must be a number between 0 and 1. You passed in ${e.firstVisitPercentage}. \nFalling back to default value.`)),!(null==e?void 0:e.returnVisitPercentage)&&0!==e.returnVisitPercentage||"number"!=typeof e.returnVisitPercentage?(d.returnVisitPercentage=3===t?.25:0,console.warn(`The returnVisitPercentage option must be a number. You passed in a ${typeof e.returnVisitPercentage}. \nFalling back to default value.`)):e.returnVisitPercentage>=0&&e.returnVisitPercentage<=1?d.returnVisitPercentage=e.returnVisitPercentage:(d.returnVisitPercentage=3===t?.25:0,console.warn(`The returnVisitPercentage option must be a number between 0 and 1. You passed in ${e.returnVisitPercentage}. \nFalling back to default value.`)),(null==e?void 0:e.greenHostingFactor)||0===e.greenHostingFactor&&4===t?"number"==typeof e.greenHostingFactor?e.greenHostingFactor>=0&&e.greenHostingFactor<=1?d.greenHostingFactor=e.greenHostingFactor:(d.greenHostingFactor=0,console.warn(`The returnVisitPercentage option must be a number between 0 and 1. You passed in ${e.returnVisitPercentage}. \nFalling back to default value.`)):(d.greenHostingFactor=0,console.warn(`The returnVisitPercentage option must be a number. You passed in a ${typeof e.returnVisitPercentage}. \nFalling back to default value.`)):4===t&&(d.greenHostingFactor=0),n&&(d.greenHostingFactor=1),d}function sT(e,t){let{FIFTH_PERCENTILE:n,TENTH_PERCENTILE:r,TWENTIETH_PERCENTILE:o,THIRTIETH_PERCENTILE:a,FORTIETH_PERCENTILE:i,FIFTIETH_PERCENTILE:s}=nT;return 4===t&&(n=.04,r=.079,o=.145,a=.209,i=.278,s=.359),aT(e,n)?"A+":aT(e,r)?"A":aT(e,o)?"B":aT(e,a)?"C":aT(e,i)?"D":aT(e,s)?"E":"F"}var lT=Object.defineProperty,cT=Object.defineProperties,dT=Object.getOwnPropertyDescriptors,uT=Object.getOwnPropertySymbols,hT=Object.prototype.hasOwnProperty,pT=Object.prototype.propertyIsEnumerable,mT=(e,t,n)=>t in e?lT(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,fT=(e,t)=>{for(var n in t||(t={}))hT.call(t,n)&&mT(e,n,t[n]);if(uT)for(var n of uT(t))pT.call(t,n)&&mT(e,n,t[n]);return e},gT=(e,t)=>cT(e,dT(t)),AT=class{constructor(e){this.allowRatings=!0,this.options=e,this.version=3}energyPerByteByComponent(e){const t=e/Jx*.81;return{consumerDeviceEnergy:.52*t,networkEnergy:.14*t,productionEnergy:.19*t,dataCenterEnergy:.15*t}}co2byComponent(e,t=eT,n={}){let r=eT,o=eT,a=eT,i=eT;if(null==n?void 0:n.gridIntensity){const{device:e,network:t,dataCenter:i}=n.gridIntensity;((null==e?void 0:e.value)||0===(null==e?void 0:e.value))&&(r=e.value),((null==t?void 0:t.value)||0===(null==t?void 0:t.value))&&(o=t.value),((null==i?void 0:i.value)||0===(null==i?void 0:i.value))&&(a=i.value)}!0===t&&(a=50);const s={};for(const[t,n]of Object.entries(e))t.startsWith("dataCenterEnergy")?s[t.replace("Energy","CO2")]=n*a:t.startsWith("consumerDeviceEnergy")?s[t.replace("Energy","CO2")]=n*r:t.startsWith("networkEnergy")?s[t.replace("Energy","CO2")]=n*o:s[t.replace("Energy","CO2")]=n*i;return s}perByte(e,t=!1,n=!1,r=!1,o={}){e<1&&(e=0);const a=this.energyPerByteByComponent(e,o);if("boolean"!=typeof t)throw new Error(`perByte expects a boolean for the carbon intensity value. Received: ${t}`);const i=this.co2byComponent(a,t,o),s=Object.values(i).reduce(((e,t)=>e+t));let l=null;return r&&(l=this.ratingScale(s)),n?gT(fT({},i),r?{total:s,rating:l}:{total:s}):r?{total:s,rating:l}:s}perVisit(e,t=!1,n=!1,r=!1,o={}){const a=this.energyPerVisitByComponent(e,o);if("boolean"!=typeof t)throw new Error(`perVisit expects a boolean for the carbon intensity value. Received: ${t}`);const i=this.co2byComponent(a,t,o),s=Object.values(i).reduce(((e,t)=>e+t));let l=null;return r&&(l=this.ratingScale(s)),n?gT(fT({},i),r?{total:s,rating:l}:{total:s}):r?{total:s,rating:l}:s}energyPerByte(e){const t=this.energyPerByteByComponent(e);return Object.values(t).reduce(((e,t)=>e+t))}energyPerVisitByComponent(e,t={},n=.75,r=.25,o=.02){(t.dataReloadRatio||0===t.dataReloadRatio)&&(o=t.dataReloadRatio),(t.firstVisitPercentage||0===t.firstVisitPercentage)&&(n=t.firstVisitPercentage),(t.returnVisitPercentage||0===t.returnVisitPercentage)&&(r=t.returnVisitPercentage);const a=this.energyPerByteByComponent(e),i={};Object.values(a);for(const[e,t]of Object.entries(a))i[`${e} - first`]=t*n,i[`${e} - subsequent`]=t*r*o;return i}energyPerVisit(e){let t=0,n=0;const r=Object.entries(this.energyPerVisitByComponent(e));for(const[e,n]of r)e.indexOf("first")>0&&(t+=n);for(const[e,t]of r)e.indexOf("subsequent")>0&&(n+=t);return t+n}emissionsPerVisitInGrams(e,t=eT){return oT(e*t)}annualEnergyInKwh(e,t=1e3){return e*t*12}annualEmissionsInGrams(e,t=1e3){return e*t*12}annualSegmentEnergy(e){return{consumerDeviceEnergy:oT(.52*e),networkEnergy:oT(.14*e),dataCenterEnergy:oT(.15*e),productionEnergy:oT(.19*e)}}ratingScale(e){return sT(e,this.version)}},bT=Object.defineProperty,CT=Object.defineProperties,yT=Object.getOwnPropertyDescriptors,vT=Object.getOwnPropertySymbols,wT=Object.prototype.hasOwnProperty,ET=Object.prototype.propertyIsEnumerable,kT=(e,t,n)=>t in e?bT(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,xT=(e,t)=>{for(var n in t||(t={}))wT.call(t,n)&&kT(e,n,t[n]);if(vT)for(var n of vT(t))ET.call(t,n)&&kT(e,n,t[n]);return e},TT=(e,t)=>CT(e,yT(t));const{OPERATIONAL_KWH_PER_GB_DATACENTER:ST,OPERATIONAL_KWH_PER_GB_NETWORK:BT,OPERATIONAL_KWH_PER_GB_DEVICE:IT,EMBODIED_KWH_PER_GB_DATACENTER:_T,EMBODIED_KWH_PER_GB_NETWORK:PT,EMBODIED_KWH_PER_GB_DEVICE:NT,GLOBAL_GRID_INTENSITY:MT}=tT;function FT(e,t){const n=e.dataCenter+e.network+e.device,r=t.dataCenter+t.network+t.device,o=e.dataCenter+t.dataCenter,a=e.network+t.network,i=e.device+t.device;return{dataCenterOperationalCO2e:e.dataCenter,networkOperationalCO2e:e.network,consumerDeviceOperationalCO2e:e.device,dataCenterEmbodiedCO2e:t.dataCenter,networkEmbodiedCO2e:t.network,consumerDeviceEmbodiedCO2e:t.device,totalEmbodiedCO2e:r,totalOperationalCO2e:n,dataCenterCO2e:o,networkCO2e:a,consumerDeviceCO2e:i}}function RT(e,t){return e?1:(null==t?void 0:t.greenHostingFactor)||0===(null==t?void 0:t.greenHostingFactor)?t.greenHostingFactor:0}var DT,LT,OT=class{constructor(e){this.allowRatings=!0,this.options=e,this.version=4}operationalEnergyPerSegment(e){const t=e/Jx;return{dataCenter:t*ST,network:t*BT,device:t*IT}}operationalEmissions(e,t={}){const{dataCenter:n,network:r,device:o}=this.operationalEnergyPerSegment(e);let a=MT,i=MT,s=MT;if(null==t?void 0:t.gridIntensity){const{device:e,network:n,dataCenter:r}=t.gridIntensity;((null==e?void 0:e.value)||0===(null==e?void 0:e.value))&&(s=e.value),((null==n?void 0:n.value)||0===(null==n?void 0:n.value))&&(i=n.value),((null==r?void 0:r.value)||0===(null==r?void 0:r.value))&&(a=r.value)}return{dataCenter:n*a,network:r*i,device:o*s}}embodiedEnergyPerSegment(e){const t=e/Jx;return{dataCenter:t*_T,network:t*PT,device:t*NT}}embodiedEmissions(e){const{dataCenter:t,network:n,device:r}=this.embodiedEnergyPerSegment(e);return{dataCenter:t*MT,network:n*MT,device:r*MT}}perByte(e,t=!1,n=!1,r=!1,o={}){if(e<1)return 0;const a=this.operationalEmissions(e,o),i=this.embodiedEmissions(e),s=RT(t,o),l=a.dataCenter*(1-s)+i.dataCenter+(a.network+i.network)+(a.device+i.device);let c=null;if(r&&(c=this.ratingScale(l)),n){const e=xT({},FT(a,i));return TT(xT({},e),r?{total:l,rating:c}:{total:l})}return r?{total:l,rating:c}:l}perVisit(e,t=!1,n=!1,r=!1,o={}){let a=1,i=0,s=0;const l=RT(t,o),c=this.operationalEmissions(e,o),d=this.embodiedEmissions(e);if(e<1)return 0;(o.firstVisitPercentage||0===o.firstVisitPercentage)&&(a=o.firstVisitPercentage),(o.returnVisitPercentage||0===o.returnVisitPercentage)&&(i=o.returnVisitPercentage),(o.dataReloadRatio||0===o.dataReloadRatio)&&(s=o.dataReloadRatio);const u=c.dataCenter*(1-l)+d.dataCenter+c.network+d.network+c.device+d.device,h=(c.dataCenter*(1-l)+d.dataCenter+c.network+d.network+c.device+d.device)*(1-s),p=u*a+h*i;let m=null;if(r&&(m=this.ratingScale(p)),n){const e=TT(xT({},FT(c,d)),{firstVisitCO2e:u,returnVisitCO2e:h});return TT(xT({},e),r?{total:p,rating:m}:{total:p})}return r?{total:p,rating:m}:p}ratingScale(e){return sT(e,this.version)}},UT=Object.defineProperty,zT=Object.getOwnPropertySymbols,GT=Object.prototype.hasOwnProperty,WT=Object.prototype.propertyIsEnumerable,HT=(e,t,n)=>t in e?UT(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,VT=(e,t)=>{for(var n in t||(t={}))GT.call(t,n)&&HT(e,n,t[n]);if(zT)for(var n of zT(t))WT.call(t,n)&&HT(e,n,t[n]);return e},jT=(e,t)=>{var n={};for(var r in e)GT.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(null!=e&&zT)for(var r of zT(e))t.indexOf(r)<0&&WT.call(e,r)&&(n[r]=e[r]);return n},$T=class{constructor(e){if(this.model=new AT,"1byte"===(null==e?void 0:e.model))this.model=new Xx;else if("swd"===(null==e?void 0:e.model))this.model=new AT,4===(null==e?void 0:e.version)&&(this.model=new OT);else if(null==e?void 0:e.model)throw new Error(`"${e.model}" is not a valid model. Please use "1byte" for the OneByte model, and "swd" for the Sustainable Web Design model.\nSee https://developers.thegreenwebfoundation.org/co2js/models/ to learn more about the models available in CO2.js.`);if((null==e?void 0:e.rating)&&"boolean"!=typeof e.rating)throw new Error("The rating option must be a boolean. Please use true or false.\nSee https://developers.thegreenwebfoundation.org/co2js/options/ to learn more about the options available in CO2.js.");const t=!!this.model.allowRatings;if(this._segment="segment"===(null==e?void 0:e.results),this._rating=!0===(null==e?void 0:e.rating),!t&&this._rating)throw new Error("The rating system is not supported in the model you are using. Try using the Sustainable Web Design model instead.\nSee https://developers.thegreenwebfoundation.org/co2js/models/ to learn more about the models available in CO2.js.")}perByte(e,t=!1){return this.model.perByte(e,t,this._segment,this._rating)}perVisit(e,t=!1){var n;if(null==(n=this.model)?void 0:n.perVisit)return this.model.perVisit(e,t,this._segment,this._rating);throw new Error("The perVisit() method is not supported in the model you are using. Try using perByte() instead.\nSee https://developers.thegreenwebfoundation.org/co2js/methods/ to learn more about the methods available in CO2.js.")}perByteTrace(e,t=!1,n={}){const r=iT(n,this.model.version,t),o=r,{gridIntensity:a}=o,i=jT(o,["gridIntensity"]),{dataReloadRatio:s,firstVisitPercentage:l,returnVisitPercentage:c}=i,d=jT(i,["dataReloadRatio","firstVisitPercentage","returnVisitPercentage"]);return{co2:this.model.perByte(e,t,this._segment,this._rating,r),green:t,variables:VT({description:"Below are the variables used to calculate this CO2 estimate.",bytes:e,gridIntensity:VT({description:"The grid intensity (grams per kilowatt-hour) used to calculate this CO2 estimate."},r.gridIntensity)},d)}}perVisitTrace(e,t=!1,n={}){var r;if(null==(r=this.model)?void 0:r.perVisit){const r=iT(n,this.model.version,t),o=r,{gridIntensity:a}=o,i=jT(o,["gridIntensity"]);return{co2:this.model.perVisit(e,t,this._segment,this._rating,r),green:t,variables:VT({description:"Below are the variables used to calculate this CO2 estimate.",bytes:e,gridIntensity:VT({description:"The grid intensity (grams per kilowatt-hour) used to calculate this CO2 estimate."},r.gridIntensity)},i)}}throw new Error("The perVisitTrace() method is not supported in the model you are using. Try using perByte() instead.\nSee https://developers.thegreenwebfoundation.org/co2js/methods/ to learn more about the methods available in CO2.js.")}SustainableWebDesignV3(){return new AT}SustainableWebDesignV4(){return new OT}OneByte(){return new Xx}},KT=Object.getOwnPropertyNames;(DT={"src/hosting-json.js"(e,t){function n(e,t){return t.indexOf(e)>-1?e:{url:e,green:!1}}t.exports={check:async function(e,t){return"string"==typeof e?function(e,t){return t.indexOf(e)>-1}(e,t):function(e,t){let n=[];for(let r of e)t.indexOf(r)>-1&&n.push(r);return n}(e,t)},greenDomainsFromResults:function(e){return Object.entries(e).filter((([e,t])=>t.green)).map((([e,t])=>t.url))},find:function(e,t){return"string"==typeof e?n(e,t):function(e,t){const r={};for(let o of e)r[o]=n(o,t);return r}(e,t)}}}},function(){return LT||(0,DT[KT(DT)[0]])((LT={exports:{}}).exports,LT),LT.exports})();var YT=n(8601),qT={};qT.styleTagTransform=M(),qT.setAttributes=B(),qT.insert=T().bind(null,"head"),qT.domAPI=k(),qT.insertStyleElement=P(),w()(YT.A,qT),YT.A&&YT.A.locals&&YT.A.locals;class ZT extends J.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,maxCounterSampleCountPerMs:l,counterSampleRange: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;e.width=Math.round(h),e.height=Math.round(p),d.clearRect(0,0,h,p);const C=r.samples;if(0===C.length)return;const[y,v]=c,w=l;{d.lineWidth=m,d.lineJoin="bevel",d.strokeStyle=zx(In.Yk),d.fillStyle=Gx(In.Yk),d.beginPath();const e=e=>Math.round((C.time[e]-t)*A),n=e=>{const t=C.count[e];if(!t)return p+f;const n=0===e?s:C.time[e]-C.time[e-1];return g-g*(t/n/w)+f},r=e(y);let o=r,a=n(y);d.moveTo(o,a);for(let t=y+1;t<v;t++){o=e(t),a=n(t),d.lineTo(o,a);const r=[a];for(;t+1<v&&e(t+1)===o;)r.push(n(++t));if(r.length>2){const e=Math.max(...r);e!==a&&(a=e,d.lineTo(o,a));const t=Math.min(...r);t!==a&&(a=t,d.lineTo(o,a))}const i=r[r.length-1];i!==a&&(a=i,d.lineTo(o,a))}d.lineTo(o+b,a),d.stroke(),d.lineTo(o+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 J.createElement(wk,{onChange:this._observerCallback},J.createElement("canvas",{className:"timelineTrackBandwidthCanvas",ref:this._takeCanvasRef}))}}class XT extends J.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,counterSampleRange:c}=this.props,d=i-a,u=a+(t-r)/o*d;if(0===s.samples.length)throw new Error("No sample group found for bandwidth counter");const{samples:h}=s;if(u<h.time[0]||u>h.time[h.length-1]+l)this.setState({hoveredCounter:null});else{let e;const[i,s]=c,l=(0,Pc.lV)(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})}},this._co2=null}_formatDataTransferValue(e,t){this._co2||(this._co2=new $T);const n=Vt(this._co2.perByteTrace(e,!1,{gridIntensity:{device:0}}).co2),r=qt(e);return J.createElement(de,{id:t,vars:{value:r,carbonValue:n},attrs:{label:!0}},J.createElement(EC,{label:""},r))}_renderTooltip(e){const{accumulatedSamples:t,counter:n,rangeStart:r,rangeEnd:o,interval:a,previewSelection:i}=this.props,{mouseX:s,mouseY:l}=this.state,{samples:c}=n;if(0===c.length)throw new Error("No accumulated sample found for bandwidth counter");const d=c.time[e];if(d<r||d>o)return null;const{minCount:u,countRange:h,accumulatedCounts:p}=t,m=p[e]-u,f=void 0!==c.number?c.number[e]:null,g=0===e?a:c.time[e]-c.time[e-1],A=c.count[e]/g;let b,C=0;if(i.hasSelection){const[e,t]=(0,Cn.XG)(c,i.selectionStart,i.selectionEnd);for(let n=e;n<t;n++)C+=c.count[n]}return null!==f&&(b=Vt(f,2,0)),J.createElement(Kb,{mouseX:s,mouseY:l},J.createElement("div",{className:"timelineTrackBandwidthTooltip"},J.createElement(xC,null,this._formatDataTransferValue(1e3*A,"TrackBandwidthGraph--speed"),null!==f?J.createElement(de,{id:"TrackBandwidthGraph--read-write-operations-since-the-previous-sample",vars:{value:b},attrs:{label:!0}},J.createElement(EC,{label:""},b)):null,J.createElement(kC,null),this._formatDataTransferValue(m,"TrackBandwidthGraph--cumulative-bandwidth-at-this-time"),this._formatDataTransferValue(h,"TrackBandwidthGraph--total-bandwidth-in-graph"),i.hasSelection?this._formatDataTransferValue(C,"TrackBandwidthGraph--total-bandwidth-in-range"):null)))}_renderBandwidthDot(e){const{counter:t,rangeStart:n,rangeEnd:r,graphHeight:o,width:a,lineWidth:i,maxCounterSampleCountPerMs:s,interval:l}=this.props,{samples:c}=t;if(0===c.length)throw new Error("No sample found for bandwidth counter");const d=r-n,u=c.time[e];if(u<n||u>r)return null;const h=a*(u-n)/d,p=s,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 J.createElement("div",{style:{left:h,top:g,backgroundColor:Wx(In.Yk)},className:"timelineTrackBandwidthGraphDot"})}render(){const{hoveredCounter:e}=this.state,{filteredThread:t,interval:n,rangeStart:r,rangeEnd:o,unfilteredSamplesRange:a,counter:i,counterSampleRange:s,graphHeight:l,width:c,lineWidth:d,accumulatedSamples:u,maxCounterSampleCountPerMs:h}=this.props;return J.createElement("div",{className:"timelineTrackBandwidthGraph",onMouseMove:this._onMouseMove,onMouseLeave:this._onMouseLeave},J.createElement(ZT,{rangeStart:r,rangeEnd:o,counter:i,counterSampleRange:s,height:l,width:c,lineWidth:d,interval:n,accumulatedSamples:u,maxCounterSampleCountPerMs:h}),null===e?null:J.createElement(J.Fragment,null,this._renderBandwidthDot(e),this._renderTooltip(e)),J.createElement(mx,{thread:t,interval:n,rangeStart:r,rangeEnd:o,unfilteredSamplesRange:a}))}}const JT=lt({mapStateToProps:(e,t)=>{const{counterIndex:n}=t,r=zi(n),o=r.getCounter(e),{start:a,end:i}=ui(e),s=r.getCommittedRangeCounterSampleRange(e),l=Td(o.mainThreadIndex);return{counter:o,threadIndex:o.mainThreadIndex,maxCounterSampleCountPerMs:r.getMaxRangeCounterSampleCountPerMs(e),accumulatedSamples:r.getAccumulateCounterSamples(e),rangeStart:a,rangeEnd:i,counterSampleRange:s,interval:bi(e),filteredThread:l.getFilteredThread(e),unfilteredSamplesRange:l.unfilteredSamplesRange(e),previewSelection:mi(e)}},component:yy(XT)});class QT extends J.PureComponent{render(){const{counterIndex:e}=this.props;return J.createElement("div",{className:"timelineTrackBandwidth",style:{height:In.AJ,"--graph-height":`${In.AJ}px`}},J.createElement(JT,{counterIndex:e,lineWidth:In.SH,graphHeight:In.AJ}))}}const eS=lt({mapStateToProps:(e,t)=>{const{counterIndex:n}=t,r=zi(n).getCounter(e),{start:o,end:a}=ui(e);return{threadIndex:r.mainThreadIndex,rangeStart:o,rangeEnd:a}},component:QT});var tS=n(8004),nS={};nS.styleTagTransform=M(),nS.setAttributes=B(),nS.insert=T().bind(null,"head"),nS.domAPI=k(),nS.insertStyleElement=P(),w()(tS.A,nS),tS.A&&tS.A.locals&&tS.A.locals;class rS extends J.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 J.createElement("div",{style:{height:In.Xh,"--markers-height":`${In.Xh}px`}},J.createElement(cx,{rangeStart:e,rangeEnd:t,threadsKey:n,onSelect:this._onMarkerSelect}))}}const oS=lt({mapStateToProps:e=>{const{start:t,end:n}=ui(e);return{rangeStart:t,rangeEnd:n}},mapDispatchToProps:{updatePreviewSelection:jh},component:rS});var aS=n(8527),iS={};iS.styleTagTransform=M(),iS.setAttributes=B(),iS.insert=T().bind(null,"head"),iS.domAPI=k(),iS.insertStyleElement=P(),w()(aS.A,iS),aS.A&&aS.A.locals&&aS.A.locals;class sS extends J.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,maxCounterSampleCountPerMs:l,counterSampleRange: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;e.width=Math.round(h),e.height=Math.round(p),d.clearRect(0,0,h,p);const C=r.samples;if(0===C.length)return;const[y,v]=c,w=l;{d.lineWidth=m,d.lineJoin="bevel",d.strokeStyle=Fb.MU,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(),J.createElement("canvas",{className:"timelineTrackProcessCPUCanvas",ref:this._takeCanvasRef})}}class lS extends J.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,counterSampleRange:c}=this.props,d=a+(t-r)/o*(i-a),{samples:u}=s;if(d<u.time[0]||d>u.time[u.length-1]+l)this.setState({hoveredCounter:null});else{let e;const[r,o]=c,a=(0,Pc.lV)(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,maxCounterSampleCountPerMs:n,interval:r,rangeStart:o,rangeEnd:a}=this.props,{mouseX:i,mouseY:s}=this.state,{samples:l}=t;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,u=l.count[e]/(0===e?r:l.time[e]-l.time[e-1])/d;return J.createElement(Kb,{mouseX:i,mouseY:s},J.createElement("div",{className:"timelineTrackProcessCPUTooltip"},J.createElement("div",{className:"timelineTrackProcessCPUTooltipLine"},"CPU:"," ",J.createElement("span",{className:"timelineTrackProcessCPUTooltipNumber"},Kt(u)))))}_renderDot(e){const{counter:t,rangeStart:n,rangeEnd:r,graphHeight:o,width:a,lineWidth:i,maxCounterSampleCountPerMs:s,interval:l}=this.props,{samples:c}=t,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,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 J.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,counterSampleRange:s,graphHeight:l,width:c,lineWidth:d,maxCounterSampleCountPerMs:u}=this.props;return J.createElement("div",{className:"timelineTrackProcessCPUGraph",onMouseMove:this._onMouseMove,onMouseLeave:this._onMouseLeave},J.createElement(sS,{rangeStart:r,rangeEnd:o,counter:i,counterSampleRange:s,height:l,width:c,lineWidth:d,interval:n,maxCounterSampleCountPerMs:u}),null===e?null:J.createElement(J.Fragment,null,this._renderDot(e),this._renderTooltip(e)),J.createElement(mx,{thread:t,interval:n,rangeStart:r,rangeEnd:o,unfilteredSamplesRange:a}))}}const cS=lt({mapStateToProps:(e,t)=>{const{counterIndex:n}=t,r=zi(n),o=r.getCounter(e),{start:a,end:i}=ui(e),s=r.getCommittedRangeCounterSampleRange(e),l=Td(o.mainThreadIndex);return{counter:o,threadIndex:o.mainThreadIndex,maxCounterSampleCountPerMs:r.getMaxCounterSampleCountPerMs(e),rangeStart:a,rangeEnd:i,counterSampleRange:s,interval:bi(e),filteredThread:l.getFilteredThread(e),unfilteredSamplesRange:l.unfilteredSamplesRange(e)}},component:yy(lS)});class dS extends J.PureComponent{render(){const{counterIndex:e}=this.props;return J.createElement("div",{className:"timelineTrackProcessCPU",style:{height:In.xJ,"--graph-height":`${In.xJ}px`}},J.createElement(cS,{counterIndex:e,lineWidth:In.ZK,graphHeight:In.xJ}))}}const uS=lt({mapStateToProps:(e,t)=>{const{counterIndex:n}=t,r=zi(n).getCounter(e),{start:o,end:a}=ui(e);return{threadIndex:r.mainThreadIndex,rangeStart:o,rangeEnd:a}},mapDispatchToProps:{updatePreviewSelection:jh},component:dS});var hS=Number.isNaN||function(e){return"number"==typeof e&&e!=e};function pS(e,t){if(e.length!==t.length)return!1;for(var n=0;n<e.length;n++)if(!((r=e[n])===(o=t[n])||hS(r)&&hS(o)))return!1;var r,o;return!0}class mS extends J.PureComponent{constructor(...e){super(...e),this._computePowerSumForCommittedRange=function(e,t){void 0===t&&(t=pS);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}((({start:e,end:t})=>this._computePowerSumForRange(e,t)))}_computePowerSumForRange(e,t){const{counter:n}=this.props,r=n.samples,[o,a]=(0,Cn.XG)(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||Qx.data.WORLD)}_formatPowerValue(e,t,n,r,o){let a,i,s;const l=this._computeCO2eFromPower(e);return e>1e3?(a=Vt(e/1e3,3),s=Vt(l/1e3,2),i=t):e>1?(a=Vt(e,3),s=Vt(l,3),i=n):0===e?(a=0,s=0,i=n):e<.001&&o?(a=Vt(1e6*e),s=Vt(1e3*l),i=o):(a=Vt(1e3*e),s=Vt(1e3*l),i=r),J.createElement(de,{id:i,vars:{value:a,carbonValue:s},attrs:{label:!0}},J.createElement(EC,{label:""},a))}maybeRenderForPreviewSelection(e){if(!e.hasSelection)return null;const{selectionStart:t,selectionEnd:n}=e,r=n-t;if(0===r)return null;const o=this._computePowerSumForRange(t,n);return J.createElement(J.Fragment,null,this._formatPowerValue(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"),this._formatPowerValue(36e5*o/r,"TrackPower--tooltip-average-power-kilowatt","TrackPower--tooltip-average-power-watt","TrackPower--tooltip-average-power-milliwatt"))}render(){const{counter:e,counterSampleIndex:t,interval:n,committedRange:r,previewSelection:o}=this.props,a=e.samples,i=1e-12*a.count[t]/(0===t?n:a.time[t]-a.time[t-1])*1e3*3600;return J.createElement("div",{className:"timelineTrackPowerTooltip"},J.createElement(xC,null,this._formatPowerValue(i,"TrackPower--tooltip-power-kilowatt","TrackPower--tooltip-power-watt","TrackPower--tooltip-power-milliwatt"),this.maybeRenderForPreviewSelection(o),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 fS=lt({mapStateToProps:e=>({interval:bi(e),meta:Ti(e),committedRange:ui(e),previewSelection:mi(e)}),component:mS});var gS=n(1501),AS={};AS.styleTagTransform=M(),AS.setAttributes=B(),AS.insert=T().bind(null,"head"),AS.domAPI=k(),AS.insertStyleElement=P(),w()(gS.A,AS),gS.A&&gS.A.locals&&gS.A.locals;class bS extends J.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,maxCounterSampleCountPerMs:l,counterSampleRange: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;e.width=Math.round(h),e.height=Math.round(p),d.clearRect(0,0,h,p);const C=r.samples;if(0===C.length)return;const[y,v]=c,w=l;{d.lineWidth=m,d.lineJoin="bevel",d.strokeStyle=zx(r.color||In.YX),d.fillStyle=Gx(r.color||In.YX),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},o=e=>{if(!e)return p+f;const t=e/w;return Math.round(g-g*t+f)},a=e(y);let i=a,l=o(n(y));d.moveTo(i,l);for(let t=y+1;t<v;t++){const r=[n(t)];for(i=e(t),l=o(r[0]),d.lineTo(i,l);t+1<v&&e(t+1)===i;)r.push(n(++t));if(r.length>2){const e=o(Math.min(...r));e!==l&&(l=e,d.lineTo(i,l));const t=o(Math.max(...r));t!==l&&(l=t,d.lineTo(i,l))}const a=o(r[r.length-1]);a!==l&&(l=a,d.lineTo(i,l))}d.lineTo(i+b,l),d.stroke(),d.lineTo(i+b,p),d.lineTo(a,p),d.fill()}}_renderCanvas(){if(!this._canvasState.inView)return void(this._canvasState.renderScheduled=!0);this._canvasState.renderScheduled=!1;const e=this._canvas;e&&(0,yn.l)("TrackPowerCanvas render",(()=>{this.drawCanvas(e)}))}render(){return this._renderCanvas(),J.createElement(wk,{onChange:this._observerCallback},J.createElement("canvas",{className:"timelineTrackPowerCanvas",ref:this._takeCanvasRef}))}}class CS extends J.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,counterSampleRange:c}=this.props,d=i-a,u=a+(t-r)/o*d,{samples:h}=s;if(u<h.time[0]||u>h.time[h.length-1]+l)this.setState({hoveredCounter:null});else{let e;const[i,s]=c,l=(0,Pc.lV)(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,{samples:i}=t;if(0===i.length)throw new Error("No sample found for power counter");const s=i.time[e];return s<n||s>r?null:J.createElement(Kb,{mouseX:o,mouseY:a},J.createElement(fS,{counter:t,counterSampleIndex:e}))}_renderDot(e){const{counter:t,rangeStart:n,rangeEnd:r,graphHeight:o,width:a,lineWidth:i,maxCounterSampleCountPerMs:s,interval:l}=this.props,{samples:c}=t,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,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 J.createElement("div",{style:{left:h,top:g,backgroundColor:Wx(t.color||In.YX)},className:"timelineTrackPowerGraphDot"})}render(){const{hoveredCounter:e}=this.state,{filteredThread:t,interval:n,rangeStart:r,rangeEnd:o,unfilteredSamplesRange:a,counter:i,counterSampleRange:s,graphHeight:l,width:c,lineWidth:d,maxCounterSampleCountPerMs:u}=this.props;return J.createElement("div",{className:"timelineTrackPowerGraph",onMouseMove:this._onMouseMove,onMouseLeave:this._onMouseLeave},J.createElement(bS,{rangeStart:r,rangeEnd:o,counter:i,counterSampleRange:s,height:l,width:c,lineWidth:d,interval:n,maxCounterSampleCountPerMs:u}),null===e?null:J.createElement(J.Fragment,null,this._renderDot(e),this._renderTooltip(e)),J.createElement(mx,{thread:t,interval:n,rangeStart:r,rangeEnd:o,unfilteredSamplesRange:a}))}}const yS=lt({mapStateToProps:(e,t)=>{const{counterIndex:n}=t,r=zi(n),o=r.getCounter(e),{start:a,end:i}=ui(e),s=r.getCommittedRangeCounterSampleRange(e),l=Td(o.mainThreadIndex);return{counter:o,threadIndex:o.mainThreadIndex,maxCounterSampleCountPerMs:r.getMaxRangeCounterSampleCountPerMs(e),rangeStart:a,rangeEnd:i,counterSampleRange:s,interval:bi(e),filteredThread:l.getFilteredThread(e),unfilteredSamplesRange:l.unfilteredSamplesRange(e)}},component:yy(CS)});class vS extends J.PureComponent{render(){const{counterIndex:e}=this.props;return J.createElement("div",{className:"timelineTrackPower",style:{height:In.ye,"--graph-height":`${In.ye}px`}},J.createElement(yS,{counterIndex:e,lineWidth:In.G5,graphHeight:In.ye}))}}const wS=lt({mapStateToProps:(e,t)=>{const{counterIndex:n}=t,r=zi(n).getCounter(e),{start:o,end:a}=ui(e);return{threadIndex:r.mainThreadIndex,rangeStart:o,rangeEnd:a}},mapDispatchToProps:{updatePreviewSelection:jh},component:vS});var ES=n(6487),kS={};function xS(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(0,mt.lC)(e,`The type ${e} is unexpected in _calculateUnitValue`)}return.85*o}kS.styleTagTransform=M(),kS.setAttributes=B(),kS.insert=T().bind(null,"head"),kS.domAPI=k(),kS.insertStyleElement=P(),w()(ES.A,kS),ES.A&&ES.A.locals&&ES.A.locals;class TS extends J.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=In.H9*h;if(u.lineWidth=g,u.lineJoin="bevel",0===a.numbersPerLine.length)throw new Error("No lines for marker "+c);const{minNumber:A,maxNumber:b}=a,[C,y]=o;for(let e=0;e<d.length;e++){const{type:n,color:r}=d[e],o=a.numbersPerLine[e];u.strokeStyle=zx(r||In.BY);const i=e=>Math.round((e-t)*f),s="bar"===n?0:.5*g,c=e=>{const t=xS(n,A,b,o[e]);return Math.floor(m-m*t-s)};switch(n){case"line":case"line-filled":{let e=0,t=0,o=0;u.beginPath();for(let n=C;n<y;n++){const r=l(a.markerIndexes[n]);e=i(r.start),t=c(n),n===C?(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=Gx(r||In.BY),u.fill(),u.closePath());break}case"bar":u.fillStyle=u.strokeStyle;for(let e=C;e<y;e++){let t=l(a.markerIndexes[e]);const n=i(t.start);let r=c(e);for(;e+1<y;){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,c(++e))}if(r!==m){const e=t.end?Math.max(n+1,i(t.end)):n+1;u.fillRect(n,r,e-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&&(0,yn.l)("TrackCustomMarkerCanvas render",(()=>{this.drawCanvas(e)}))})))):this._canvasState.renderScheduled=!0}componentDidMount(){this._scheduleDraw()}componentDidUpdate(){this._scheduleDraw()}render(){return J.createElement(wk,{onChange:this._observerCallback},J.createElement("canvas",{className:"timelineTrackCustomMarkerCanvas",ref:this._takeCanvasRef}))}}class SS extends J.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,Pc.lV)(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:J.createElement(Kb,{mouseX:s,mouseY:l},J.createElement(YC,{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=xS(n,p,m,f[t][e]),s=In.H9/2,u=o-s,A={left:h,top:u-i*u-s};if(A.backgroundColor=Wx(r||In.BY),d.end){let e=a*(d.end-d.start)/c;const t=6;if(e>t){A.marginLeft=0,h<0&&(e+=h,A.left=0,A.borderTopLeftRadius=0,A.borderBottomLeftRadius=0);const t=Math.max(h,0);A.width=Math.min(e,a-t),e>a-t&&(A.borderTopRightRadius=0,A.borderBottomRightRadius=0)}else A.marginLeft=-(t-e)/2}g.push(J.createElement("div",{style:A,key:t,className:"timelineTrackCustomMarkerGraphDot"}))}return J.createElement(J.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 J.createElement("div",{className:"timelineTrackCustomMarkerGraph",onMouseMove:this._onMouseMove,onMouseLeave:this._onMouseLeave},J.createElement(TS,{rangeStart:t,rangeEnd:n,markerSchema:r,markerSampleRanges:o,height:a,width:i,collectedSamples:s,getMarker:l}),null===e?null:J.createElement(J.Fragment,null,this._renderDot(e),this._renderTooltip(e)))}}const BS=lt({mapStateToProps:(e,t)=>{const{threadIndex:n,markerSchema:r,markerName:o}=t,{start:a,end:i}=ui(e),s=Td(n),l=s.getMarkerTrackSelectors(r,o);return{markerSampleRanges:l.getCommittedRangeMarkerSampleRange(e),collectedSamples:l.getCollectedCustomMarkerSamples(e),rangeStart:a,rangeEnd:i,getMarker:s.getMarkerGetter(e)}},component:yy(SS)});class IS extends J.PureComponent{render(){const{markerSchema:e,markerName:t,threadIndex:n}=this.props;return J.createElement("div",{className:"timelineTrackCustomMarker",style:{height:In.Zh,"--graph-height":`${In.Zh}px`}},J.createElement(BS,{threadIndex:n,markerSchema:e,markerName:t,graphHeight:In.Zh}))}}const _S=lt({mapStateToProps:(e,t)=>{const{start:n,end:r}=ui(e);return{rangeStart:n,rangeEnd:r}},component:IS});class PS extends J.PureComponent{constructor(...e){super(...e),this._onContextMenu=()=>{this.props.changeRightClickedTrack(this._getTrackReference())},this._selectCurrentTrack=e=>{this.props.selectTrackWithModifiers(this._getTrackReference(),Tu(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 J.createElement(bx,{threadsKey:e.threadIndex,trackType:"expanded",trackName:t});case"network":return J.createElement(Ux,{threadIndex:e.threadIndex});case"memory":return J.createElement(qx,{counterIndex:e.counterIndex});case"bandwidth":return J.createElement(eS,{counterIndex:e.counterIndex});case"ipc":return J.createElement(oS,{threadIndex:e.threadIndex});case"event-delay":return J.createElement(Px,{threadIndex:e.threadIndex});case"process-cpu":return J.createElement(uS,{counterIndex:e.counterIndex});case"power":return J.createElement(wS,{counterIndex:e.counterIndex});case"marker":return J.createElement(_S,{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?J.createElement("li",{className:"timelineTrackHidden"}):J.createElement("li",{className:"timelineTrack timelineTrackLocal",style:o},J.createElement("div",{className:fg()("timelineTrackRow timelineTrackLocalRow",{selected:e}),onClick:this._selectCurrentTrack},J.createElement(eA,{id:"TimelineTrackContextMenu",renderTag:"div",attributes:{title:n,className:"timelineTrackLabel timelineTrackLocalLabel timelineTrackLocalGrippy",onContextMenu:this._onContextMenu}},J.createElement("button",{type:"button",className:"timelineTrackNameButton"},r),J.createElement(de,{id:"TrackNameButton--hide-track",attrs:{title:!0}},J.createElement("button",{type:"button",className:"timelineTrackCloseButton",title:"Hide track",onClick:this._hideCurrentTrack}))),J.createElement("div",{className:"timelineTrackTrack"},this.renderTrack())))}}const NS=lt({mapStateToProps:(e,{pid:t,localTrack:n,trackIndex:r})=>{let o=null,a=!1;const i=zo(e);switch(n.type){case"thread":{const t=n.threadIndex,r=Lo(e),s=Td(t);a=i.has(t)&&"network-chart"!==r,o=s.getThreadProcessDetails(e);break}case"network":{const t=n.threadIndex,r=Lo(e);a=i.has(t)&&"network-chart"===r;break}case"marker":case"ipc":{const t=n.threadIndex,r=Lo(e);a=i.has(t)&&"marker-chart"===r;break}case"event-delay":{const t=n.threadIndex,r=Td(t);a=t===i.has(t),o="Event Delay of "+r.getThreadProcessDetails(e);break}case"memory":case"bandwidth":case"process-cpu":case"power":o=zi(n.counterIndex).getDescription(e);break;default:throw(0,mt.lC)(n,"Unhandled LocalTrack type.")}return{trackName:os(e,t,r),titleText:o,isSelected:a,isHidden:Jo(e,t).has(r)}},mapDispatchToProps:{changeRightClickedTrack:hh,selectTrackWithModifiers:lh,hideLocalTrack:Sh},component:PS});var MS=n(5705),FS={};FS.styleTagTransform=M(),FS.setAttributes=B(),FS.insert=T().bind(null,"head"),FS.domAPI=k(),FS.insertStyleElement=P(),w()(MS.A,FS),MS.A&&MS.A.locals&&MS.A.locals;class RS extends J.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=Fb.Jn,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(),J.createElement("canvas",{className:"timelineTrackVisualProgressCanvas",ref:this._takeCanvasRef})}}class DS extends J.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,Pc.lV)(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 J.createElement("div",{className:"timelineTrackVisualProgressTooltip"},J.createElement("div",{className:"timelineTrackVisualProgressTooltipLine"},J.createElement("span",{className:"timelineTrackVisualProgressTooltipNumber"},Kt(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 J.createElement("div",{style:{left:l,top:d,"--dot-color":Fb.Qr},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 J.createElement("div",{className:"timelineTrackVisualProgressGraph",onMouseMove:this._onMouseMove,onMouseLeave:this._onMouseLeave},J.createElement(RS,{rangeStart:o,rangeEnd:a,progressGraphData:c,height:i,width:s,lineWidth:l,interval:r}),null===e?null:J.createElement(J.Fragment,null,this._renderVisualProgressDot(e),J.createElement(Kb,{mouseX:t,mouseY:n},this._renderTooltip(e))))}}const LS=lt({mapStateToProps:e=>{const{start:t,end:n}=ui(e);return{rangeStart:t,rangeEnd:n,interval:bi(e)}},component:yy(DS)});class OS extends J.PureComponent{render(){const{progressGraphData:e,graphDotTooltipText:t}=this.props;return J.createElement("div",{className:"timelineTrackVisualProgress",style:{height:In.li,"--graph-height":`${In.li}px`}},J.createElement(LS,{progressGraphData:e,lineWidth:In.Nj,graphHeight:In.li,graphDotTooltipText:t}))}}const US=lt({mapStateToProps:e=>{const{start:t,end:n}=ui(e);return{rangeStart:t,rangeEnd:n}},mapDispatchToProps:{updatePreviewSelection:jh},component:OS});var zS=n(8088),GS=n.n(zS);function WS(e,t){const n=window.getComputedStyle;return parseFloat(n(e).getPropertyValue(t))||0}function HS(e){const t=e.getClientRects();return 1!==t.length?new DOMRect(0,0,0,0):function(e,t){const n=WS(e,"padding-top"),r=WS(e,"padding-right"),o=WS(e,"padding-bottom"),a=WS(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=WS(e,"border-top-width"),r=WS(e,"border-right-width"),o=WS(e,"border-bottom-width"),a=WS(e,"border-left-width");return new DOMRect(t.left+a,t.top+n,t.width-a-r,t.height-n-o)}(e,VS(t[0])))}function VS(e){return new DOMRect(e.left,e.top,e.width,e.height)}function jS(e){const t=e.getClientRects();return 1!==t.length?new DOMRect(0,0,0,0):function(e,t){const n=WS(e,"margin-top"),r=WS(e,"margin-right"),o=WS(e,"margin-bottom"),a=WS(e,"margin-left");return new DOMRect(t.left-a,t.top-n,t.width+a+r,t.height+n+o)}(e,VS(t[0]))}function $S(e,t){return e[t]}class KS extends J.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=jS(t),i=HS(e),s=$S(a,r.lefttop)-$S(i,r.lefttop),l=$S(i,r.rightbottom)-$S(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=jS(e);return d?$S(o,r.lefttop)-$S(a,r.lefttop):$S(o,r.rightbottom)-$S(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?$S(i,r.rightbottom):$S(jS(c[u+1]),r.lefttop),f=0===u?$S(i,r.lefttop):$S(jS(c[u-1]),r.rightbottom);this.setState({manipulatingIndex:u,manipulationDelta:0,destinationIndex:u,adjustPrecedingBy:m-$S(a,r.lefttop),adjustSucceedingBy:f-$S(a,r.rightbottom)});const g=e=>{"RESTING"===this.state.phase&&this.setState({phase:"MANIPULATING"});const t=Nd()(e[r.pageXY]-o,-s,l);this.setState({manipulationDelta:t,destinationIndex:(0,Pc.lV)(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=GS()(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=J.Children.toArray(this.props.children),o=t.map((e=>r[e])),a=this.props.tagName,i=this._getXY();if("RESTING"===this.state.phase)return J.createElement(a,{className:e,onMouseDown:this._onMouseDown,ref:n},o);const{phase:s,manipulatingIndex:l,destinationIndex:c,adjustPrecedingBy:d,adjustSucceedingBy:u}=this.state;return J.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)`),J.cloneElement(e,{style:n})})))}}class YS extends J.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,Tu(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?J.createElement("div",{className:"timelineTrackThreadBlank",style:{"--timeline-track-thread-blank-height":`${In.pp}px`}}):J.createElement(bx,{threadsKey:n,showMemoryMarkers:!t.has(e.pid),trackType:"expanded",trackName:r})}case"screenshots":{const{threadIndex:t,id:n}=e;return J.createElement(Ex,{threadIndex:t,windowId:n})}case"visual-progress":if(!n)throw new Error("Visual progress graph data is missing");return J.createElement(US,{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 J.createElement(US,{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 J.createElement(US,{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 J.createElement(KS,{tagName:"ol",className:"timelineTrackLocalTracks",order:n,orient:"vertical",grippyClassName:"timelineTrackLocalGrippy",onChangeOrder:this._changeLocalTrackOrder},t.map(((t,n)=>J.createElement(NS,{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?J.createElement("li",{className:"timelineTrackHidden"}):J.createElement("li",{ref:this._takeContainerRef,className:"timelineTrack",style:o},J.createElement("div",{className:fg()("timelineTrackRow timelineTrackGlobalRow",{selected:e}),onClick:this._selectCurrentTrack},J.createElement(eA,{id:"TimelineTrackContextMenu",renderTag:"div",attributes:{title:n,className:"timelineTrackLabel timelineTrackGlobalGrippy",onContextMenu:this._onContextMenu}},J.createElement("button",{type:"button",className:"timelineTrackNameButton"},r,null!==i&&null!==s.mainThreadIndex?J.createElement("div",{className:"timelineTrackNameButtonAdditionalDetails"},"PID: ",i):null),J.createElement(de,{id:"TrackNameButton--hide-process",attrs:{title:!0}},J.createElement("button",{type:"button",className:"timelineTrackCloseButton",title:"Hide process",onClick:this._hideCurrentTrack}))),J.createElement("div",{className:"timelineTrackTrack"},this.renderTrack())),a.length>0&&null!==i?this.renderLocalTracks(i):null)}}const qS=[],ZS=[],XS=lt({mapStateToProps:(e,{trackIndex:t})=>{const n=ji(e)[t],r=Lo(e);let o=null,a=!1,i=null,s=qS,l=ZS,c=null,d=null;switch(n.type){case"process":if(null!==n.mainThreadIndex){o=n.mainThreadIndex;const t=Td(o);a=zo(e).has(o)&&"network-chart"!==r,i=t.getThreadProcessDetails(e)}c=n.pid,s=Qo(e,c),l=Xi(e,c);break;case"screenshots":break;case"visual-progress":i="Visual Progress",d=Ii(e);break;case"perceptual-visual-progress":i="Perceptual Visual Progress",d=_i(e);break;case"contentful-visual-progress":i="Contentful Visual Progress",d=Pi(e);break;default:throw new Error(`Unhandled GlobalTrack type ${n}`)}return{trackName:ns(e,t),titleText:i,globalTrack:n,isSelected:a,localTrackOrder:s,localTracks:l,pid:c,isHidden:Ko(e).has(t),selectedTab:r,processesWithMemoryTrack:Qi(e),progressGraphData:d}},mapDispatchToProps:{changeRightClickedTrack:hh,changeLocalTrackOrder:xh,selectTrackWithModifiers:lh,hideGlobalTrack:fh},component:YS});var JS=n(8829),QS={};QS.styleTagTransform=M(),QS.setAttributes=B(),QS.insert=T().bind(null,"head"),QS.domAPI=k(),QS.insertStyleElement=P(),w()(JS.A,QS),JS.A&&JS.A.locals&&JS.A.locals;class eB extends J.PureComponent{_findNiceNumberGreaterOrEqualTo(e){if(e>1e4&&e<=1728e5){for(const t of[15,20,30]){const n=1e3*t;if(e<=n)return n}for(const t of[1,2,5,10,15,20,30]){const n=60*t*1e3;if(e<=n)return n}for(const t of[1,2,3,4,6,8,12,24,48]){const n=3600*t*1e3;if(e<=n)return n}}const t=Math.floor(Math.log10(e));return e<=2*Math.pow(10,t)?2*Math.pow(10,t):e<=5*Math.pow(10,t)?5*Math.pow(10,t):Math.pow(10,t+1)}_getNotches(){if(0===this.props.width)return{notches:[],notchTime:0};const{zeroAt:e,rangeStart:t,rangeEnd:n,width:r}=this.props,o=r/(n-t),a=this._findNiceNumberGreaterOrEqualTo(55/o),i=Math.ceil((t-e)/a),s=Math.floor((n-e)/a),l=[];for(let n=i;n<=s;n++)l.push({time:n*a,pos:(n*a-(t-e))*o});return{notches:l,notchTime:a}}render(){const{notches:e,notchTime:t}=this._getNotches();return J.createElement("div",{className:"timelineRuler",style:{"--timeline-ruler-height":`${In.NC}px`}},J.createElement("ol",{className:"timelineRulerContainer"},e.map((({time:e,pos:n},r)=>J.createElement("li",{className:"timelineRulerNotch",key:r,style:{left:`${n}px`}},J.createElement("span",{className:"timelineRulerNotchText"},rn(e,2,2,t)))))))}}class tB extends J.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,J.createElement("div",{...e,onMouseDown:this._onMouseDown,ref:this._takeContainerRef},this.props.children)}}var nB=n(1587),rB={};rB.styleTagTransform=M(),rB.setAttributes=B(),rB.insert=T().bind(null,"head"),rB.domAPI=k(),rB.insertStyleElement=P(),w()(nB.A,rB),nB.A&&nB.A.locals&&nB.A.locals;class oB extends J.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=HS(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:Nd()(Math.min(o,r),n.start,n.end),selectionEnd:Nd()(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=HS(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);let d=Nd()(t.selectionStart+c.startDelta,a.start,a.end),u=Nd()(t.selectionEnd+c.endDelta,a.start,a.end),h=o&&!!c.startDelta,p=o&&!!c.endDelta;d>u&&([d,u]=[u,d],[h,p]=[p,h]),s({hasSelection:!0,isModifying:o,selectionStart:d,selectionEnd:u,draggingStart:h,draggingEnd:p})},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;if(!Number.isFinite(r)||!Number.isFinite(o))return null;const a=(r-t.start)/(t.end-t.start)*n,i=(o-r)/(t.end-t.start)*n;return J.createElement("div",{className:"timelineSelectionOverlay"},J.createElement("div",{className:"timelineSelectionDimmerBefore",style:{width:`${a}px`}}),J.createElement("div",{className:"timelineSelectionOverlayWrapper"},J.createElement("div",{className:fg()("timelineSelectionGrippy",{draggingStart:e.draggingStart,draggingEnd:e.draggingEnd}),style:{width:`${i}px`}},J.createElement(tB,{className:"timelineSelectionGrippyRangeStart",value:e,onMove:this._rangeStartOnMove}),J.createElement(tB,{className:"timelineSelectionGrippyMoveRange",value:e,onMove:this._moveRangeOnMove}),J.createElement(tB,{className:"timelineSelectionGrippyRangeEnd",value:e,onMove:this._rangeEndOnMove})),J.createElement("div",{className:"timelineSelectionOverlayInner"},J.createElement("span",{className:fg()("timelineSelectionOverlayRange",{hidden:!e.isModifying})},cn(o-r)),J.createElement("button",{className:fg()("timelineSelectionOverlayZoomButton",{hidden:e.isModifying}),type:"button",onMouseDown:this._zoomButtonOnMouseDown,onClick:this._zoomButtonOnClick}))),J.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;null!==r&&(s=o*(r-a.start)/(a.end-a.start));let l=null;return null!==r&&Number.isFinite(r)&&(l=cn(r-i,(a.end-a.start)/o)),J.createElement("div",{className:fg()("timelineSelection",n),ref:this._containerCreated,onMouseDown:this._onMouseDown,onMouseMove:this._onMouseMove,onMouseLeave:this._onMouseLeave},e,t.hasSelection?this.renderSelectionOverlay(t):null,J.createElement("div",{className:"timelineSelectionHoverLine",style:{visibility:t.isModifying||null===s||isNaN(s)?"hidden":void 0,left:null===s?"0":`${s}px`}},J.createElement("span",{className:"timelineSelectionOverlayTime"},l)))}}const aB=lt({mapStateToProps:e=>({previewSelection:mi(e),committedRange:ui(e),zeroAt:di(e),mouseTimePosition:hi(e)}),mapDispatchToProps:{updatePreviewSelection:jh,commitRange:$h,changeMouseTimePosition:ep},component:oB});var iB=n(4161),sB={};sB.styleTagTransform=M(),sB.setAttributes=B(),sB.insert=T().bind(null,"head"),sB.domAPI=k(),sB.insertStyleElement=P(),w()(iB.A,sB),iB.A&&iB.A.locals&&iB.A.locals;class lB extends J.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 J.createElement("div",{className:fg()("overflowEdgeIndicator",e,this.state)},J.createElement("div",{className:"overflowEdgeIndicatorEdge topEdge"}),J.createElement("div",{className:"overflowEdgeIndicatorEdge rightEdge"}),J.createElement("div",{className:"overflowEdgeIndicatorEdge bottomEdge"}),J.createElement("div",{className:"overflowEdgeIndicatorEdge leftEdge"}),J.createElement("div",{className:fg()("overflowEdgeIndicatorScrollbox",`${e}Scrollbox`),onScroll:this._onScroll,ref:this._takeContainerRef},J.createElement("div",{className:"overflowEdgeIndicatorContentsWrapper",ref:this._takeContainerWrapperRef},t)))}}var cB=n(6558),dB={};dB.styleTagTransform=M(),dB.setAttributes=B(),dB.insert=T().bind(null,"head"),dB.domAPI=k(),dB.insertStyleElement=P(),w()(cB.A,dB),cB.A&&cB.A.locals&&cB.A.locals;var uB=n(92),hB={};hB.styleTagTransform=M(),hB.setAttributes=B(),hB.insert=T().bind(null,"head"),hB.domAPI=k(),hB.insertStyleElement=P(),w()(uB.A,hB),uB.A&&uB.A.locals&&uB.A.locals;class pB extends J.PureComponent{constructor(...e){super(...e),this.searchFieldInput=J.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 J.createElement("form",{className:fg()("trackSearchField",t),onSubmit:this._onFormSubmit},J.createElement(de,{id:"TrackSearchField--search-input",attrs:{placeholder:!0,title:!0}},J.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"})),J.createElement("input",{type:"reset",className:"trackSearchFieldButton",onClick:this._onClearButtonClick,tabIndex:-1}))}}class mB extends Jg{constructor(...e){super(...e),this.hideMenu=e=>{27===e.keyCode&&jg()}}}class fB extends J.PureComponent{constructor(...e){super(...e),this.state={searchFilter:""},this._globalTrackClickTimeout=null,this._trackSearchFieldElem=J.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=Da(t,n,a,i),l=La(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=(0,mt.Nn)(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=Da(e,t,o,i),l=La(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=(0,mt.Nn)(a.get(r),"Expected to find hidden local tracks for the given pid");l.has(o)?(c(o),(0,mt.Nn)(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._getRightClickedTrackType=()=>{const{rightClickedTrack:e,localTracksByPid:t,globalTracks:n}=this.props;if(null===e)throw new Error("Attempted to get the track type with no right clicked track.");let r;switch(e.type){case"local":r=(0,mt.Nn)(t.get(e.pid))[e.trackIndex];break;case"global":r=n[e.trackIndex];break;default:throw(0,mt.lC)(e.type)}return r.type},this._hideTracksByType=e=>{const{rightClickedTrack:t,globalTracks:n,localTracksByPid:r,hideProvidedTracks:o}=this.props;if(null===t)throw new Error("Attempted to hide tracks by type with no right clicked track.");const a=this._getRightClickedTrackType(),i=function(e,t){if(!t)return null;const n=new Set;for(let r=0;r<e.length;r++)e[r].type===t&&n.add(r);return n}(n,a),s=function(e,t){if(!t)return null;const n=new Map;for(const[r,o]of e){const e=new Set;for(let n=0;n<o.length;n++)o[n].type===t&&e.add(n);e.size>0&&n.set(r,e)}return n}(r,a);null!==i&&null!==s?o(i,s):console.warn("Unexpected null type filtered tracks")},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})`),J.createElement(J.Fragment,{key:e},J.createElement(Yg,{preventClose:!0,data:{trackIndex:e},onClick:this._toggleGlobalTrackVisibility,role:"menuitemcheckbox",attributes:{className:fg()("timelineTrackContextMenuItem",{checkable:!0,checked:!i}),title:u,"aria-checked":i?"false":"true"}},J.createElement("span",null,o[e]),J.createElement("span",{className:"timelineTrackContextMenuSpacer"}),"process"===s.type&&J.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(J.createElement(Yg,{key:n,preventClose:!0,data:{pid:t,trackIndex:n,globalTrackIndex:e},onClick:this._toggleLocalTrackVisibility,role:"menuitemcheckbox",attributes:{className:fg()("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 J.createElement(Yg,{onClick:this._isolateProcess,disabled:s},J.createElement(de,{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 J.createElement(Yg,{onClick:this._isolateProcessMainThread,disabled:l},J.createElement(de,{id:"TrackContextMenu--only-show-track",vars:{trackName:c}},J.createElement(J.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 J.createElement(Yg,{onClick:this._isolateLocalTrack,disabled:s},J.createElement(de,{id:"TrackContextMenu--only-show-track",vars:{trackName:l}},J.createElement(J.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 J.createElement(Yg,{onClick:this._showLocalTracksInProcess,disabled:l,data:{trackIndex:o,pid:a}},J.createElement(de,{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 J.createElement(Yg,{onClick:this._isolateScreenshot,disabled:n},J.createElement(de,{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 J.createElement(Yg,{key:t,preventClose:!1,onClick:this._hideRightClickedTrack},J.createElement(de,{id:"TrackContextMenu--hide-track",vars:{trackName:n}},J.createElement(J.Fragment,null,"Hide ",`“${n}”`)))}renderHideTrackByType(){const{rightClickedTrack:e}=this.props;if(null===e)return null;const t=this._getRightClickedTrackType();return["screenshots","memory","network","ipc","event-delay"].includes(t)?J.createElement(Yg,{preventClose:!1,onClick:this._hideTracksByType},J.createElement(de,{id:"TrackContextMenu--hide-all-tracks-by-selected-track-type",vars:{type:t}},J.createElement(J.Fragment,null,"Hide all tracks of type “",t,"”"))):null}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 J.createElement(Yg,{onClick:this._showAllTracks,disabled:t},J.createElement(de,{id:"TrackContextMenu--show-all-tracks"},"Show all tracks"))}renderShowProvidedTracks(){const{rightClickedTrack:e}=this.props;return null!==e?null:J.createElement(Yg,{onClick:this._showMatchingTracks},J.createElement(de,{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=(0,mt.Nn)(o.findIndex((t=>"process"===t.type&&t.pid===e)));if(r.has(t))continue;if(null!==o[t].mainThreadIndex)continue;const l=(0,mt.Nn)(i.get(e)),c=(0,mt.Nn)(a.get(e));c.size+s.size-Aa(c,s).size===l.length&&(n+=1)}return r.size+e.size-Aa(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=(0,mt.Nn)(a.get(r));if(n=[...o].some((e=>!t.has(e))),n)break}return n})();return J.createElement(Yg,{onClick:this._hideMatchedTracks,disabled:s},J.createElement(de,{id:"TrackContextMenu--hide-all-matching-tracks"},"Hide all matching tracks"))}renderTrackSearchField(){const{rightClickedTrack:e}=this.props,{searchFilter:t}=this.state;return null!==e?null:J.createElement(J.Fragment,null,J.createElement(pB,{className:"trackContextMenuSearchField",currentSearchString:t,onSearch:this._onSearch,ref:this._trackSearchFieldElem}),J.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=this.renderHideTrackByType(),f=l||c||d||u||h||p||m?J.createElement("div",{className:"react-contextmenu-separator"}):null,g=Da(n,r,e,s),A=La(o,a,e,s),b=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,g,A):null})),C=b.every((e=>null===e));return J.createElement(mB,{id:"TimelineTrackContextMenu",className:"timelineTrackContextMenu",onShow:this._onShow,onHide:this._onHide},this.renderTrackSearchField(),s?this.renderShowProvidedTracks():this.renderShowAllTracks(),s&&g&&A?this.renderHideMatchingTracks(g,A):null,null===i?J.createElement("div",{className:"react-contextmenu-separator"}):null,l,c,d,u,p,m,h?J.createElement("div",{className:"react-contextmenu-separator"}):null,h,f,C?J.createElement(de,{id:"TrackContextMenu--no-results-found",vars:{searchFilter:s},elems:{span:J.createElement("span",{className:"trackContextMenuSearchFilter"})}},J.createElement(Yg,{disabled:!0},"No results found for “",J.createElement("span",{className:"trackContextMenuSearchFilter"},s),"”")):b)}}const gB=lt({mapStateToProps:e=>({threads:vi(e),globalTrackOrder:$o(e),hiddenGlobalTracks:Ko(e),rightClickedTrack:ki(e),globalTracks:ji(e),hiddenLocalTracksByPid:Yo(e),localTrackOrderByPid:qo(e),rightClickedThreadIndex:es(e),globalTrackNames:ts(e),localTracksByPid:Zi(e),localTrackNamesByPid:rs(e)}),mapDispatchToProps:{hideGlobalTrack:fh,showAllTracks:Ah,showGlobalTrack:yh,showGlobalTrackIncludingLocalTracks:vh,isolateProcess:wh,isolateLocalTrack:Ih,isolateProcessMainThread:kh,isolateScreenshot:Eh,hideLocalTrack:Sh,showLocalTrack:Bh,showProvidedTracks:bh,hideProvidedTracks:Ch},component:fB});var AB=n(7793),bB={};bB.styleTagTransform=M(),bB.setAttributes=B(),bB.insert=T().bind(null,"head"),bB.domAPI=k(),bB.insertStyleElement=P(),w()(AB.A,bB),AB.A&&AB.A.locals&&AB.A.locals;class CB extends J.PureComponent{constructor(...e){super(...e),this._showMenu=e=>{const t=e.currentTarget.getBoundingClientRect();this.props.changeRightClickedTrack(null),Vg({data:null,id:"TimelineTrackContextMenu",position:{x:t.left,y:t.bottom},target:e.target})}}render(){const{hiddenTrackCount:e}=this.props;return J.createElement(de,{id:"FullTimeline--tracks-button",elems:{span:J.createElement("span",{className:"timelineSettingsHiddenTracksNumber"})},vars:{visibleTrackCount:e.total-e.hidden,totalTrackCount:e.total}},J.createElement("button",{type:"button",onClick:this._showMenu,className:"timelineSettingsHiddenTracks"},J.createElement("span",{className:"timelineSettingsHiddenTracksNumber"},e.total-e.hidden)," / ",J.createElement("span",{className:"timelineSettingsHiddenTracksNumber"},e.total," "),"tracks"))}}class yB extends J.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 J.createElement(J.Fragment,null,J.createElement(aB,{width:a},J.createElement("div",{className:"timelineHeader"},J.createElement(CB,{hiddenTrackCount:l,changeRightClickedTrack:c}),J.createElement(eB,{zeroAt:o,rangeStart:r.start,rangeEnd:r.end,width:a})),J.createElement(lB,{className:"tracksContainer timelineOverflowEdgeIndicator",panelLayoutGeneration:s,initialSelected:this.state.initialSelected},J.createElement(KS,{tagName:"ol",className:"timelineThreadList",grippyClassName:"timelineTrackGlobalGrippy",order:t,orient:"vertical",onChangeOrder:n,innerElementRef:d},e.map(((e,t)=>J.createElement(XS,{key:t,trackIndex:t,trackReference:i[t],setInitialSelected:this.setInitialSelected})))))),J.createElement(gB,null))}}const vB=lt({mapStateToProps:e=>({globalTracks:ji(e),globalTrackOrder:$o(e),globalTrackReferences:$i(e),committedRange:ui(e),zeroAt:di(e),panelLayoutGeneration:Js(e),hiddenTrackCount:ms(e)}),mapDispatchToProps:{changeGlobalTrackOrder:mh,changeRightClickedTrack:hh},component:yy(yB)});class wB extends J.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 J.createElement(bx,{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(0,mt.lC)(t,"Unhandled ActiveTabResourceTrack type.")}return J.createElement("li",{ref:this._takeContainerRef,className:"timelineTrack timelineTrackResource"},J.createElement("div",{className:fg()("timelineTrackRow timelineTrackResourceRow",{selected:e,opened:n}),onClick:this._onClick("timelineTrackRow")},J.createElement("div",{className:"timelineTrackResourceLabel",onClick:this._onClick("timelineTrackResourceLabel")},J.createElement("span",null,r)," ",t.name),J.createElement("div",{className:"timelineTrackTrack"},this.renderTrack())))}}const EB=lt({mapStateToProps:(e,{resourceTrack:t})=>{const n=t.threadIndex;return{isSelected:zo(e).has(n)}},mapDispatchToProps:{selectActiveTabTrack:dh},component:wB});class kB extends J.PureComponent{render(){const{resourceTracks:e,toggleResourcesPanel:t,isActiveTabResourcesPanelOpen:n,setInitialSelected:r,resourcesThreadsKey:o}=this.props;return J.createElement("div",{className:"timelineResources",style:{"--resources-header-height":`${In.RN}px`}},J.createElement("div",{onClick:t,className:fg()("timelineResourcesHeader",{opened:n})},"Resources (",e.length,")",J.createElement(bx,{threadsKey:o,trackType:"condensed",trackName:"Merged resource tracks"})),n?J.createElement("ol",{className:"timelineResourceTracks"},e.map(((e,t)=>J.createElement(EB,{key:t,resourceTrack:e,trackIndex:t,setInitialSelected:r})))):null)}}const xB=lt({mapStateToProps:e=>({isActiveTabResourcesPanelOpen:Mo(e),resourcesThreadsKey:cs(e)}),mapDispatchToProps:{toggleResourcesPanel:Em},component:yy(kB)});class TB extends J.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 J.createElement(bx,{threadsKey:t,showMemoryMarkers:!1,trackType:"expanded",trackName:"Active Tab"})}case"screenshots":{const{threadIndex:t,id:n}=e;return J.createElement(Ex,{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:J.createElement(xB,{resourceTracks:e,setInitialSelected:t})}componentDidMount(){this._isInitialSelectedPane&&null!==this._container&&this.props.setInitialSelected(this._container)}render(){const{isSelected:e}=this.props;return J.createElement("li",{ref:this._takeContainerRef,className:"timelineTrack"},J.createElement("div",{className:fg()("timelineTrackRow timelineTrackGlobalRow activeTab",{selected:e}),onClick:this._selectCurrentTrack},J.createElement("div",{className:"timelineTrackTrack"},this.renderTrack())),this.renderResourcesPanel())}}const SB=[],BB=lt({mapStateToProps:(e,{trackIndex:t})=>{const n=ss(e)[t];let r=!1,o=SB;switch(n.type){case"tab":r=(0,Cn.dr)(zo(e),n.threadsKey),o=ls(e);break;case"screenshots":break;default:throw(0,mt.lC)(n,"Unhandled active tab GlobalTrack type.")}return{globalTrack:n,isSelected:r,resourceTracks:o}},mapDispatchToProps:{selectActiveTabTrack:dh},component:TB});var IB=n(6855),_B={};_B.styleTagTransform=M(),_B.setAttributes=B(),_B.insert=T().bind(null,"head"),_B.domAPI=k(),_B.insertStyleElement=P(),w()(IB.A,_B),IB.A&&IB.A.locals&&IB.A.locals;class PB extends J.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 J.createElement(J.Fragment,null,J.createElement(aB,{width:n,className:"activeTab"},J.createElement(eB,{zeroAt:t,rangeStart:e.start,rangeEnd:e.end,width:n}),J.createElement(lB,{className:"tracksContainer timelineOverflowEdgeIndicator",panelLayoutGeneration:r,initialSelected:this.state.initialSelected,forceLayoutGeneration:this.state.forceLayoutGeneration},J.createElement("ol",{className:"timelineThreadList",ref:i},o.map(((e,t)=>J.createElement(BB,{key:t,trackIndex:t,trackReference:a[t],setInitialSelected:this.setInitialSelected})))))))}}const NB=lt({mapStateToProps:e=>({globalTracks:ss(e),globalTrackReferences:ds(e),committedRange:ui(e),zeroAt:di(e),panelLayoutGeneration:Js(e)}),component:yy(PB)});var MB=n(9697),FB={};FB.styleTagTransform=M(),FB.setAttributes=B(),FB.insert=T().bind(null,"head"),FB.domAPI=k(),FB.insertStyleElement=P(),w()(MB.A,FB),MB.A&&MB.A.locals&&MB.A.locals;class RB extends J.PureComponent{constructor(...e){super(...e),this.state={initialSelected:null},this.setInitialSelected=e=>{this.setState({initialSelected:e})},this.clickTrack=zt()((e=>t=>{t.preventDefault(),this.props.changeSelectedThreads(new Set([e]))})),this.renderTrack=e=>{const{threads:t}=this.props;switch(e.type){case"origin":return J.createElement("li",{className:"originsTimelineTrack originsTimelineTrack-origin",key:e.threadIndex},J.createElement("a",{href:"#",onClick:this.clickTrack(e.threadIndex)},e.origin),J.createElement("ol",null,e.children.map(this.renderTrack)));case"no-origin":{const n=t[e.threadIndex];return J.createElement("li",{key:e.threadIndex,className:"originsTimelineTrack originsTimelineTrack-no-origin"},J.createElement("a",{href:"#",onClick:this.clickTrack(e.threadIndex)},(0,Cn.XU)(t,n)))}case"sub-origin":return J.createElement("li",{className:"originsTimelineTrack originsTimelineTrack-sub-origin",key:e.threadIndex},J.createElement("a",{href:"#",onClick:this.clickTrack(e.threadIndex)},e.origin));default:throw(0,mt.lC)(e,"Unhandled OriginsTimelineTrack.")}}}render(){const{committedRange:e,zeroAt:t,width:n,panelLayoutGeneration:r,originsTimeline:o,innerElementRef:a}=this.props;return J.createElement(J.Fragment,null,J.createElement(aB,{width:n},J.createElement(eB,{zeroAt:t,rangeStart:e.start,rangeEnd:e.end,width:n}),J.createElement(lB,{className:"tracksContainer timelineOverflowEdgeIndicator",panelLayoutGeneration:r,initialSelected:this.state.initialSelected},J.createElement("ol",{className:"timelineThreadList",ref:a},o.map(this.renderTrack)))))}}const DB=lt({mapStateToProps:e=>({threads:vi(e),committedRange:ui(e),zeroAt:di(e),panelLayoutGeneration:Js(e),originsTimeline:ps(e)}),mapDispatchToProps:{changeSelectedThreads:ah},component:yy(RB)});class LB extends J.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 J.createElement(vB,{innerElementRef:this._onTimelineMountWithRef});case"active-tab":return J.createElement(NB,{innerElementRef:this._onTimelineMountWithRef});case"origins":return J.createElement(DB,{innerElementRef:this._onTimelineMountWithRef});default:throw(0,mt.lC)(e,"Unhandled ViewType")}}}const OB=lt({mapStateToProps:e=>({timelineTrackOrganization:No(e)}),component:LB});class UB extends J.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 zB extends J.PureComponent{render(){const e=`\n .${this.props.className} {\n background-image: url(${this.props.url});\n }\n `;return J.createElement(UB,{content:e})}}var GB=n(7171),WB={};WB.styleTagTransform=M(),WB.setAttributes=B(),WB.insert=T().bind(null,"head"),WB.domAPI=k(),WB.insertStyleElement=P(),w()(GB.A,WB),GB.A&&GB.A.locals&&GB.A.locals;class HB extends J.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 J.createElement("div",{className:"warningMessageBarWrapper"},J.createElement("div",{className:"photon-message-bar photon-message-bar-warning warningMessageBar"},J.createElement("div",{className:"photon-message-bar-inner-content"},J.createElement("div",{className:"photon-message-bar-inner-text"},e),t?J.createElement("button",{className:"photon-button photon-button-micro photon-message-bar-action-button",type:"button",title:n,"aria-label":n,onClick:r},t):null),J.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 VB extends J.PureComponent{render(){const{meta:e}=this.props;return J.createElement(J.Fragment,null,e.debug?J.createElement(de,{id:"DebugWarning--warning-message",attrs:{message:!0}},J.createElement(HB,{message:"This profile was recorded in a build without release optimizations. Performance observations might not apply to the release population."})):null)}}const jB=lt({mapStateToProps:e=>({meta:Ti(e)}),component:VB});var $B=n(1520),KB={};KB.styleTagTransform=M(),KB.setAttributes=B(),KB.insert=T().bind(null,"head"),KB.domAPI=k(),KB.insertStyleElement=P(),w()($B.A,KB),$B.A&&$B.A.locals&&$B.A.locals;class YB extends J.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 J.createElement(tk,{wrapperClassName:fg()({profileViewerWrapper:!0,profileViewerWrapperBackground:s})},[...l].map((([e,t])=>J.createElement(zB,{className:t,url:e,key:t}))),J.createElement("div",{className:fg()({profileViewer:!0,profileViewerFadeInSanitized:s&&!i,profileViewerFadeOut:i}),style:null===r?{}:{"--profile-viewer-splitter-max-height":`${r}px`}},J.createElement("div",{className:"profileViewerTopBar"},e?J.createElement("button",{type:"button",className:"profileViewerZipButton",title:"View all files in the archive",onClick:t}):null,J.createElement(ZE,null),J.createElement(Ww,null),J.createElement("div",{className:"profileViewerSpacer"}),J.createElement(zE,null),o?J.createElement("div",{className:"menuButtonsPublishUploadBarInner",style:{width:100*a+"%"}}):null),J.createElement(pg(),{customClassName:"profileViewerSplitter",vertical:!0,percentage:!1,primaryIndex:1,secondaryInitialSize:270,onDragEnd:n},J.createElement(OB,null),J.createElement(pg(),{vertical:!0,percentage:!0,primaryIndex:0,secondaryInitialSize:40,onDragEnd:n},J.createElement(qv,null),c?J.createElement(Fw,null):null)),J.createElement($E,null),J.createElement(JE,null),J.createElement(jB,null),J.createElement(WE,null),J.createElement(pw,null),J.createElement(gw,null)))}}const qB=lt({mapStateToProps:e=>({hasZipFile:zs(e),timelineHeight:hl(e),uploadProgress:$d(e),isUploading:"uploading"===Vd(e),isHidingStaleProfile:Qd(e),hasSanitizedProfile:eu(e),icons:hu(e),isBottomBoxOpen:la(e)}),mapDispatchToProps:{returnToZipFileList:sk,invalidatePanelLayout:pm},component:YB});var ZB=n(7939),XB={};function JB(e){e.preventDefault()}XB.styleTagTransform=M(),XB.setAttributes=B(),XB.insert=T().bind(null,"head"),XB.domAPI=k(),XB.insertStyleElement=P(),w()(ZB.A,XB),ZB.A&&ZB.A.locals&&ZB.A.locals;class QB extends J.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",JB,!1),document.addEventListener("dragover",JB,!1),document.addEventListener("drop",JB,!1)}componentWillUnmount(){document.removeEventListener("drag",JB,!1),document.removeEventListener("dragover",JB,!1),document.removeEventListener("drop",JB,!1)}render(){const{className:e,children:t}=this.props;return J.createElement(J.Fragment,null,J.createElement("div",{className:fg()(e,"dragAndDropArea"),onDragEnter:this._onDragEnter,onDragLeave:this._onDragLeave,onDrop:this._handleProfileDrop},t),this.props.useDefaultOverlay?J.createElement(nI,{isDefault:!0}):null)}}const eI=lt({mapStateToProps:e=>({isNewProfileLoadAllowed:pl(e),useDefaultOverlay:!cl(e),browserConnection:ol(e)}),mapDispatchToProps:{retrieveProfileFromFile:nm,startDragging:Cm,stopDragging:ym},component:QB});class tI extends J.PureComponent{componentDidMount(){this.props.isDefault||this.props.registerDragAndDropOverlay()}componentWillUnmount(){this.props.isDefault||this.props.unregisterDragAndDropOverlay()}render(){return J.createElement("div",{className:fg()("dragAndDropOverlayWrapper",!(!this.props.isDragging||!this.props.isNewProfileLoadAllowed)&&"dragging")},J.createElement("div",{className:"dragAndDropOverlay"},"Drop a saved profile here"))}}const nI=lt({mapStateToProps:e=>({isDragging:ll(e),isNewProfileLoadAllowed:pl(e)}),mapDispatchToProps:{registerDragAndDropOverlay:vm,unregisterDragAndDropOverlay:wm},component:tI});var rI=n(3672),oI={};oI.styleTagTransform=M(),oI.setAttributes=B(),oI.insert=T().bind(null,"head"),oI.domAPI=k(),oI.insertStyleElement=P(),w()(rI.A,oI),rI.A&&rI.A.locals&&rI.A.locals;class aI extends J.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?J.createElement("a",{href:t,onClick:this._handleClick},e):e}}const iI=lt({mapDispatchToProps:{viewProfileFromZip:ak},component:aI});class sI extends J.PureComponent{constructor(e){super(e),this._fixedColumns=[],this._mainColumn={propName:"name",titleL10nId:"",component:iI},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 J.createElement("section",{className:"zipFileViewer"},J.createElement("div",{className:"zipFileViewerSection"},J.createElement("header",{className:"zipFileViewerHeader"},J.createElement("h1",null,"Firefox Profiler"),J.createElement("p",null,"Choose a profile from this archive")),J.createElement("div",{className:"zipFileViewerMessage"},e),J.createElement(nI,null)))}_renderBackButton(){return J.createElement("button",{key:"backButton",type:"button",className:"homeSectionInstallButton",onClick:this.props.returnToZipFileList},"← Back to archive 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 archive file."),this._renderMessage(J.createElement("span",null,"Error: No archive file was found."));case"LIST_FILES_IN_ZIP_FILE":return J.createElement("section",{className:"zipFileViewer"},J.createElement("div",{className:"zipFileViewerSection"},J.createElement("header",{className:"zipFileViewerHeader"},J.createElement("h1",null,"Firefox Profiler"),J.createElement("p",null,"Choose a profile from this archive")),J.createElement(lA,{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:Za}),J.createElement(nI,null)));case"PROCESS_PROFILE_FROM_ZIP_FILE":return this._renderMessage(J.createElement("span",null,"Loading the profile from the archive..."));case"FAILED_TO_PROCESS_PROFILE_FROM_ZIP_FILE":return this._renderMessage([J.createElement("p",{key:"message"},"Unable to load the profile at this path:"),J.createElement("span",{className:"zipFileViewerUntrustedFilePath",key:"path"},"/",s),J.createElement("p",{key:"error"},l),this._renderBackButton()]);case"FILE_NOT_FOUND_IN_ZIP_FILE":return this._renderMessage([J.createElement("span",{key:"message"},"Failed to find a file in the zip at the following path:"),J.createElement("span",{className:"zipFileViewerUntrustedFilePath",key:"path"},"/",s),this._renderBackButton()]);case"VIEW_PROFILE_IN_ZIP_FILE":return J.createElement(qB,null);default:throw new Error("Unknown zip file phase.")}}}const lI=lt({mapStateToProps:e=>{const t=$s(e);if(null===t)throw new Error("The zipFileTree should exist if the ZipFileViewer is mounted.");return{zipFileState:Os(e),pathInZipFile:da(e),zipFileTree:t,zipFileMaxDepth:Vs(e),selectedZipFileIndex:Ds(e),expandedZipFileIndexes:Ls(e),zipFileErrorMessage:Gs(e)}},mapDispatchToProps:{changeSelectedZipFile:rk,changeExpandedZipFile:ok,viewProfileFromZip:ak,viewProfileFromPathInZipFile:ik,returnToZipFileList:sk},component:sI});class cI extends J.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 J.createElement("a",{className:e,href:r,onClick:this.onClick},t)}}const dI=lt({mapDispatchToProps:{setDataSource:Qh},component:cI});var uI=n(7803),hI={};hI.styleTagTransform=M(),hI.setAttributes=B(),hI.insert=T().bind(null,"head"),hI.domAPI=k(),hI.insertStyleElement=P(),w()(uI.A,hI),uI.A&&uI.A.locals&&uI.A.locals;class pI extends J.PureComponent{render(){return J.createElement("header",null,J.createElement("h1",{className:"appHeader"},J.createElement(de,{id:"AppHeader--app-header",elems:{header:J.createElement(dI,{dataSource:"none",className:"appHeaderLink"}),subheader:J.createElement("span",{className:"appHeaderSubtext"})}},J.createElement("span",{className:"appHeaderSlogan"},J.createElement(dI,{dataSource:"none",className:"appHeaderLink"},"Vernier Profiler")," ","–"," ",J.createElement("span",{className:"appHeaderSubtext"},"Web app for Ruby performance analysis"))),J.createElement(de,{id:"AppHeader--github-icon",attrs:{title:!0}},J.createElement("a",{className:"appHeaderGithubIcon",href:"https://github.com/jhawthorn/vernier",target:"_blank",rel:"noopener noreferrer",title:"Go to our Git repository (this opens in a new window)"},J.createElement("svg",{width:"22",height:"22",className:"octicon octicon-mark-github",viewBox:"0 0 16 16",version:"1.1","aria-label":"github"},J.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 mI=n(2787),fI={};function gI({meta:e}){const t=uo(e),n=ho(e);return J.createElement("div",{className:"profileMetaInfoSummary"},J.createElement("div",{className:"profileMetaInfoSummaryProductAndVersion","data-product":e.product},t),J.createElement("div",{className:"profileMetaInfoSummaryPlatform","data-toolkit":n},n))}fI.styleTagTransform=M(),fI.setAttributes=B(),fI.insert=T().bind(null,"head"),fI.domAPI=k(),fI.insertStyleElement=P(),w()(mI.A,fI),mI.A&&mI.A.locals&&mI.A.locals;var AI=n(8068),bI={};bI.styleTagTransform=M(),bI.setAttributes=B(),bI.insert=T().bind(null,"head"),bI.domAPI=k(),bI.insertStyleElement=P(),w()(AI.A,bI),AI.A&&AI.A.locals&&AI.A.locals;class CI extends J.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 J.createElement("li",{className:fg()("publishedProfilesListItem",{publishedProfilesListItem_ConfirmDialogIsOpen:n})},J.createElement(de,{id:"ListOfPublishedProfiles--published-profiles-link",attrs:{title:!0},vars:{smallProfileName:i}},J.createElement("a",{className:"publishedProfilesLink",href:r,title:`Click here to load profile ${i}`},J.createElement("div",{className:"publishedProfilesDate"},J.createElement(de,{id:"NumberFormat--short-date",vars:{date:e.publishedDate}})),J.createElement("div",{className:"publishedProfilesInfo"},J.createElement("div",{className:"publishedProfilesName"},J.createElement("strong",null,a)," (",(s=e.publishedRange,Number.isFinite(s.start)&&Number.isFinite(s.end)?en(s.end-s.start,3,1):""),")"),J.createElement(gI,{meta:e.meta})))),t?J.createElement("div",{className:"publishedProfilesActionButtons"},e.jwtToken?J.createElement(DE,{buttonClassName:"publishedProfilesDeleteButton",profileName:a,smallProfileName:i,jwtToken:e.jwtToken,profileToken:e.profileToken,onOpenConfirmDialog:this.onOpenConfirmDialog,onCloseConfirmDialog:this.onCloseConfirmDialog,onCloseSuccessMessage:this.onCloseSuccessMessage}):J.createElement(de,{id:"ListOfPublishedProfiles--published-profiles-delete-button-disabled",attrs:{title:!0}},J.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 yI extends J.PureComponent{constructor(...e){super(...e),this._isMounted=!1,this.state={uploadedProfileInformationList:null},this._refreshList=async()=>{const e=await async function(){return(await Qu()).getAllFromIndex(Xu,"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 J.createElement("p",{className:"photon-body-30"},J.createElement(de,{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?J.createElement(de,{id:"ListOfPublishedProfiles--uploaded-profile-information-label",vars:{profilesRestCount:o}},J.createElement(J.Fragment,null,"See and manage all your recordings (",o," more)")):J.createElement(de,{id:"ListOfPublishedProfiles--uploaded-profile-information-list",vars:{uploadedProfileCount:n.length}},J.createElement(J.Fragment,null,"Manage this recording")),J.createElement(J.Fragment,null,J.createElement("ul",{className:"publishedProfilesList"},r.map((e=>J.createElement(CI,{onProfileDelete:this.onProfileDelete,key:e.profileToken,uploadedProfileInformation:e,withActionButtons:t})))),t?null:J.createElement("p",null,J.createElement(dI,{dataSource:"uploaded-recordings"},a)))}}const vI=n.p+"18a5d1d99f1c65c33b71.png",wI=n.p+"4d26f0e38c22eedde178.jpg";var EI=n(2720),kI={};kI.styleTagTransform=M(),kI.setAttributes=B(),kI.insert=T().bind(null,"head"),kI.domAPI=k(),kI.insertStyleElement=P(),w()(EI.A,kI),EI.A&&EI.A.locals&&EI.A.locals;class xI extends J.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 J.createElement("div",{className:"homeSectionLoadProfile"},J.createElement("div",{className:"homeSectionActionButtons"},J.createElement("input",{className:"homeSectionUploadFromFileInput",type:"file",ref:this._takeInputRef,onChange:this._uploadProfileFromFile}),J.createElement(de,{id:"Home--upload-from-file-input-button"},J.createElement("button",{type:"button",className:"homeSectionButton",onClick:this._loadFromFilePressed},"Load a profile from file")),J.createElement(de,{id:"Home--upload-from-url-button"},J.createElement("button",{type:"button",className:"homeSectionButton",onClick:this._loadFromUrlPressed,"aria-expanded":this.state.isLoadFromUrlPressed},"Load a profile from a URL"))),this.state.isLoadFromUrlPressed?J.createElement(TI,{onLoadProfileFromUrlRequested:this.props.onLoadProfileFromUrlRequested}):null)}}class TI extends J.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 J.createElement("form",{className:"homeSectionLoadFromUrl",onSubmit:this._upload},J.createElement("input",{className:"homeSectionLoadFromUrlInput photon-input",type:"url",placeholder:"https://",value:this.state.value,onChange:this.handleChange,autoFocus:!0}),J.createElement(de,{id:"Home--load-from-url-submit-button",attrs:{value:!0}},J.createElement("input",{type:"submit",className:"homeSectionButton homeSectionLoadFromUrlSubmitButton",value:"Load"})))}}function SI(){return J.createElement("a",{href:"/docs/",className:"homeSectionButton"},J.createElement("span",{className:"homeSectionDocsIcon"}),J.createElement(de,{id:"Home--documentation-button"},"Documentation"))}function BI(e){return J.createElement(cb,{...e,classNames:"homeTransition",timeout:300,exit:!1})}class II extends J.PureComponent{constructor(e){super(e),this._enableMenuButton=e=>{e.preventDefault(),async function(){await Rm({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 Rm({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(wI);case"other-browser":return this._renderOtherBrowserInstructions();default:throw(0,mt.lC)(e,"Unhandled PopupInstallPhase")}}_renderEnablePopupInstructions(e){return J.createElement(BI,{key:0},J.createElement("div",{className:"homeInstructions","data-testid":"home-enable-popup-instructions"},J.createElement("img",{className:"homeSectionScreenshot",src:vI,alt:"screenshot of profiler.firefox.com"}),J.createElement("div",null,J.createElement(de,{id:"Home--enable-button-unavailable",attrs:{title:!e}},J.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."},J.createElement("span",{className:"homeSectionPlus"},"+"),J.createElement(de,{id:"Home--menu-button"},"Enable Profiler Menu Button"))),J.createElement(SI,null),e?J.createElement(de,{id:"Home--menu-button-instructions"},J.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.")):J.createElement(de,{id:"Home--web-channel-unavailable",elems:{code:J.createElement("code",null)}},J.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"," ",J.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 ",J.createElement("code",null,"about:config"),"and change the preference.")),J.createElement(de,{id:"Home--profile-firefox-android-instructions",elems:{a:J.createElement("a",{href:"https://profiler.firefox.com/docs/#/./guide-profiling-android-directly-on-device?id=profiling-firefox-for-android-directly-on-device"})}},J.createElement("p",null,"You can also profile Firefox for Android. For more information, please consult this documentation:"," ",J.createElement("a",null,"Profiling Firefox for Android directly on device"),".")))))}_renderRecordInstructions(e){return J.createElement(BI,{key:1},J.createElement("div",{className:"homeInstructions","data-testid":"home-record-instructions"},J.createElement("img",{className:"homeSectionScreenshot",src:e,alt:"Screenshot of the profiler settings from the Firefox menu."}),J.createElement("div",null,J.createElement(SI,null),J.createElement(de,{id:"Home--record-instructions",elems:{kbd:J.createElement("kbd",null)}},J.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 ",J.createElement("kbd",null,"Capture")," to load the data into profiler.firefox.com.")),this._renderShortcuts(),J.createElement(de,{id:"Home--profile-firefox-android-instructions",elems:{a:J.createElement("a",{href:"https://profiler.firefox.com/docs/#/./guide-profiling-android-directly-on-device?id=profiling-firefox-for-android-directly-on-device"})}},J.createElement("p",null,"You can also profile Firefox for Android. For more information, please consult this documentation:"," ",J.createElement("a",null,"Profiling Firefox for Android directly on device"),".")))))}_renderOtherBrowserInstructions(){return J.createElement(BI,{key:0},J.createElement("div",{className:"homeInstructions","data-testid":"home-other-browser-instructions"},J.createElement("img",{className:"homeSectionScreenshot",src:vI,alt:"screenshot of profiler.firefox.com"}),J.createElement("div",null,J.createElement(SI,null),J.createElement(de,{id:"Home--instructions-content",elems:{a:J.createElement("a",{href:"https://www.mozilla.org/en-US/firefox/new/"})}},J.createElement("p",null,"Recording performance profiles requires"," ",J.createElement("a",{href:"https://www.mozilla.org/en-US/firefox/new/"},"Firefox"),". However, existing profiles can be viewed in any modern browser.")),J.createElement(de,{id:"Home--profile-firefox-android-instructions",elems:{a:J.createElement("a",{href:"https://profiler.firefox.com/docs/#/./guide-profiling-android-directly-on-device?id=profiling-firefox-for-android-directly-on-device"})}},J.createElement("p",null,"You can also profile Firefox for Android. For more information, please consult this documentation:"," ",J.createElement("a",null,"Profiling Firefox for Android directly on device"),".")))))}_renderShortcuts(){return J.createElement("div",null,J.createElement("p",null,J.createElement("kbd",null,"Ctrl"),"+",J.createElement("kbd",null,"Shift"),"+",J.createElement("kbd",null,"1")," ",J.createElement(de,{id:"Home--record-instructions-start-stop"},"Stop and start profiling")),J.createElement("p",null,J.createElement("kbd",null,"Ctrl"),"+",J.createElement("kbd",null,"Shift"),"+",J.createElement("kbd",null,"2")," ",J.createElement(de,{id:"Home--record-instructions-capture-load"},"Capture and load profile")))}render(){const{specialMessage:e}=this.props;return J.createElement("div",{className:"home"},J.createElement("main",{className:"homeSection"},J.createElement(pI,null),e?J.createElement("div",{className:"homeSpecialMessage"},e):null,J.createElement(de,{id:"Home--profiler-motto"},J.createElement("p",null,"Capture a performance profile. Analyze it. Share it. Make Ruby faster.")),J.createElement("div",{className:"homeInstructions","data-testid":"home-enable-popup-instructions"},J.createElement("img",{className:"homeSectionScreenshot",src:vI,alt:"screenshot of profiler.firefox.com"}),J.createElement("div",null,"Capture a profile from your ruby program by installing the `vernier` gem and then recording a profile using one of the following:",J.createElement("br",null),J.createElement("br",null),"To profile a single expensive method call",J.createElement("pre",null,'Vernier.profile(out: "profile.vernier.json") do',J.createElement("br",null)," some_slow_method()",J.createElement("br",null),"end"),"To profile a full program run (great for measuring test runs)",J.createElement("pre",null,"$ vernier run -- bundle exec ruby ..."),"Or browse a demo:",J.createElement("ul",null,J.createElement("li",null,J.createElement("a",{href:"/from-url/https%3A%2F%2Fraw.githubusercontent.com%2Fjhawthorn%2Fvernier-examples%2Fmain%2Fsimple_rails_request.json/calltree/?globalTrackOrder=0&thread=0&timelineType=category&v=10"},"Simple Rails request")),J.createElement("li",null,J.createElement("a",{href:"/from-url/https%3A%2F%2Fjhawthorn.github.io%2Fvernier-examples%2Fbundler.json/stack-chart/?globalTrackOrder=0&hiddenLocalTracksByPid=727970-0&thread=0&timelineType=category&v=10"},"bundler (bundle lock)"))),"For more options check the ",J.createElement("a",{href:"https://github.com/jhawthorn/vernier#README"},"README on GitHub"))),J.createElement("section",{className:"homeAdditionalContent"},J.createElement("h2",{className:"homeAdditionalContentTitle protocol-display-xs"},J.createElement(de,{id:"Home--additional-content-title"},"Load existing profiles")),J.createElement("section",{className:"homeActions"},J.createElement(de,{id:"Home--additional-content-content",elems:{strong:J.createElement("strong",null)}},J.createElement("p",null,"You can ",J.createElement("strong",null,"drag and drop")," a profile file here to load it, or:")),J.createElement(xI,{onLoadProfileFromFileRequested:this._onLoadProfileFromFileRequested,onLoadProfileFromUrlRequested:this._onLoadProfileFromUrlRequested}),J.createElement("p",null,"This web interface is just a few modifications on top of the",J.createElement("a",{href:"https://profiler.firefox.com/"},"Firefox profiler")," to adapt better to Ruby profiling. Vernier profiles are compatble with either tool."),J.createElement(de,{id:"Home--compare-recordings-info",elems:{a:J.createElement(dI,{dataSource:"compare"})}},J.createElement("p",null,"You can also compare recordings."," ",J.createElement(dI,{dataSource:"compare"},"Open the comparing interface.")))),J.createElement("section",null,J.createElement("h2",{className:"homeRecentUploadedRecordingsTitle protocol-display-xxs"},J.createElement(de,{id:"Home--your-recent-uploaded-recordings-title"},"Your recent uploaded recordings")),J.createElement(yI,{limit:3,withActionButtons:!1}))),J.createElement(nI,null)))}}const _I=lt({mapStateToProps:e=>({browserConnection:ol(e)}),mapDispatchToProps:{retrieveProfileFromFile:nm,triggerLoadingFromUrl:gp},component:II});var PI=n(5997),NI={};NI.styleTagTransform=M(),NI.setAttributes=B(),NI.insert=T().bind(null,"head"),NI.domAPI=k(),NI.insertStyleElement=P(),w()(PI.A,NI),PI.A&&PI.A.locals&&PI.A.locals;class MI extends J.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 J.createElement("main",{className:"compareHome"},J.createElement(pI,null),J.createElement("h2",{className:"photon-title-20"},J.createElement(de,{id:"CompareHome--instruction-title"},"Enter the profile URLs that you’d like to compare")),J.createElement("p",{className:"photon-body-20"},J.createElement(de,{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.")),J.createElement("form",{className:"compareHomeForm",onSubmit:this.handleFormSubmit},J.createElement("label",{className:"compareHomeFormLabel",htmlFor:"compareHomeProfile1"},J.createElement(de,{id:"CompareHome--form-label-profile1"},"Profile 1:")),J.createElement("input",{name:"profile1",id:"compareHomeProfile1",className:"photon-input",type:"url",required:!0,placeholder:"http://",onChange:this.handleInputChange,value:e}),J.createElement("label",{className:"compareHomeFormLabel",htmlFor:"compareHomeProfile2"},J.createElement(de,{id:"CompareHome--form-label-profile2"},"Profile 2:")),J.createElement("input",{name:"profile2",id:"compareHomeProfile2",className:"photon-input",type:"url",required:!0,placeholder:"http://",onChange:this.handleInputChange,value:t}),J.createElement(de,{id:"CompareHome--submit-button",attrs:{value:!0}},J.createElement("input",{className:"compareHomeSubmitButton photon-button photon-button-primary",type:"submit",value:"Retrieve profiles"}))))}}const FI=lt({mapDispatchToProps:{changeProfilesToCompare:lm},component:MI});var RI=n(8504),DI={};DI.styleTagTransform=M(),DI.setAttributes=B(),DI.insert=T().bind(null,"head"),DI.domAPI=k(),DI.insertStyleElement=P(),w()(RI.A,DI),RI.A&&RI.A.locals&&RI.A.locals;class LI extends J.PureComponent{render(){return J.createElement("main",{className:"uploadedRecordingsHome"},J.createElement(pI,null),J.createElement("h2",{className:"photon-title-30"},J.createElement(de,{id:"UploadedRecordingsHome--title"},"Uploaded Recordings")),J.createElement(yI,{withActionButtons:!0}))}}const OI=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 UI extends J.PureComponent{render(){const{view:e,dataSource:t,profilesToCompare:n,hasZipFile:r}=this.props,o=e.phase;switch(t){case"none":return J.createElement(_I,null);case"compare":if(null===n)return J.createElement(FI,null);break;case"uploaded-recordings":return J.createElement(LI,null);case"from-browser":case"from-post-message":case"unpublished":case"from-file":case"local":case"public":case"from-url":break;default:throw(0,mt.lC)(t)}switch(o){case"INITIALIZING":case"PROFILE_LOADED":case"DATA_RELOAD":return J.createElement(Vm,null);case"FATAL_ERROR":{let n=OI[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=J.createElement(J.Fragment,null,J.createElement("p",null,e.error.toString()),J.createElement("p",null,"The full stack has been written to the Web Console.")))),J.createElement(de,{id:n,attrs:{title:!0},elems:{a:J.createElement("a",{href:"https://bugs.webkit.org/show_bug.cgi?id=171934",target:"_blank",rel:"noopener noreferrer"})}},J.createElement(Gm,{additionalMessage:r,showLoader:!1,showBackHomeLink:!0},`missing translation for ${n}`))}case"DATA_LOADED":return r?J.createElement(lI,null):J.createElement(qB,null);case"TRANSITIONING_FROM_STALE_PROFILE":return null;default:return J.createElement(de,{id:"AppViewRouter--route-not-found--home",attrs:{specialMessage:!0}},J.createElement(_I,{specialMessage:"The URL you tried to reach was not recognized."}))}}}const zI=lt({mapStateToProps:e=>({view:Ys(e),dataSource:Ao(e),profilesToCompare:yo(e),hasZipFile:zs(e)}),component:UI});class GI extends J.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"from-post-message":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(0,mt.lC)(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 WI=lt({mapStateToProps:e=>({dataSource:Ao(e),hash:bo(e),profileUrl:Co(e),profilesToCompare:yo(e),browserConnectionStatus:rl(e)}),mapDispatchToProps:{retrieveProfileFromStore:Jp,retrieveProfileOrZipFromUrl:Qp,retrieveProfileFromBrowser:Lp,retrieveProfilesToCompare:om},component:GI});try{self["workbox:window:7.2.0"]&&_()}catch(HI){}function HI(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 VI(e){var t=function(e,t){if("object"!=typeof e||!e)return e;var n=e[Symbol.toPrimitive];if(void 0!==n){var r=n.call(e,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==typeof t?t:t+""}function jI(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,VI(r.key),r)}}function $I(e,t){return $I=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,t){return e.__proto__=t,e},$I(e,t)}function KI(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}try{self["workbox:core:7.2.0"]&&_()}catch(HI){}var YI=function(){var e=this;this.promise=new Promise((function(t,n){e.resolve=t,e.reject=n}))};function qI(e,t){var n=location.href;return new URL(e,n).href===new URL(t,n).href}var ZI=function(e,t){this.type=e,Object.assign(this,t)};function XI(e,t,n){return n?t?t(e):e:(e&&e.then||(e=Promise.resolve(e)),t?e.then(t):e)}function JI(){}var QI={type:"SKIP_WAITING"};function e_(e,t){if(!t)return e&&e.then?e.then(JI):Promise.resolve()}var t_=function(e){function t(t,n){var r,o;return void 0===n&&(n={}),(r=e.call(this)||this).nn={},r.tn=0,r.rn=new YI,r.en=new YI,r.on=new YI,r.un=0,r.an=new Set,r.cn=function(){var e=r.fn,t=e.installing;r.tn>0||!qI(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 ZI(o,i)),"installed"===o?r.wn=self.setTimeout((function(){"installed"===o&&t.waiting===n&&r.dispatchEvent(new ZI("waiting",i))}),200):"activating"===o&&(clearTimeout(r.wn),a||r.en.resolve(n))},r.yn=function(e){var t=r.hn,n=t!==navigator.serviceWorker.controller;r.dispatchEvent(new ZI("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 XI(r.getSW(),(function(){r.an.has(o)&&r.dispatchEvent(new ZI("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}var n,r;r=e,(n=t).prototype=Object.create(r.prototype),n.prototype.constructor=n,$I(n,r);var o,a,i=t.prototype;return i.register=function(e){var t=(void 0===e?{}:e).immediate,n=void 0!==t&&t;try{var r=this;return XI(function(e,t){var n=e();return n&&n.then?n.then(t):t()}((function(){if(!n&&"complete"!==document.readyState)return e_(new Promise((function(e){return window.addEventListener("load",e)})))}),(function(){return r.mn=Boolean(navigator.serviceWorker.controller),r.dn=r.pn(),XI(r.bn(),(function(e){r.fn=e,r.dn&&(r.hn=r.dn,r.en.resolve(r.dn),r.on.resolve(r.dn),r.dn.addEventListener("statechange",r.ln,{once:!0}));var t=r.fn.waiting;return t&&qI(t.scriptURL,r.sn.toString())&&(r.hn=t,Promise.resolve().then((function(){r.dispatchEvent(new ZI("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.yn),r.fn}))})))}catch(e){return Promise.reject(e)}},i.update=function(){try{return this.fn?XI(e_(this.fn.update())):XI()}catch(e){return Promise.reject(e)}},i.getSW=function(){return void 0!==this.hn?Promise.resolve(this.hn):this.rn.promise},i.messageSW=function(e){try{return XI(this.getSW(),(function(t){return HI(t,e)}))}catch(e){return Promise.reject(e)}},i.messageSkipWaiting=function(){this.fn&&this.fn.waiting&&HI(this.fn.waiting,QI)},i.pn=function(){var e=navigator.serviceWorker.controller;return e&&qI(e.scriptURL,this.sn.toString())?e:void 0},i.bn=function(){try{var e=this;return XI(function(e,t){try{var n=e()}catch(e){return t(e)}return n&&n.then?n.then(void 0,t):n}((function(){return XI(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=t,(a=[{key:"active",get:function(){return this.en.promise}},{key:"controlling",get:function(){return this.on.promise}}])&&jI(o.prototype,a),Object.defineProperty(o,"prototype",{writable:!1}),o}(function(){function e(){this.Pn=new Map}var t=e.prototype;return t.addEventListener=function(e,t){this.jn(e).add(t)},t.removeEventListener=function(e,t){this.jn(e).delete(t)},t.dispatchEvent=function(e){e.target=this;for(var t,n=function(e,t){var n="undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(n)return(n=n.call(e)).next.bind(n);if(Array.isArray(e)||(n=function(e,t){if(e){if("string"==typeof e)return KI(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)?KI(e,t):void 0}}(e))){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.")}(this.jn(e.type));!(t=n()).done;)(0,t.value)(e)},t.jn=function(e){return this.Pn.has(e)||this.Pn.set(e,new Set),this.Pn.get(e)},e}()),n_=n(9309),r_={};r_.styleTagTransform=M(),r_.setAttributes=B(),r_.insert=T().bind(null,"head"),r_.domAPI=k(),r_.insertStyleElement=P(),w()(n_.A,r_),n_.A&&n_.A.locals&&n_.A.locals;class o_ extends J.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 t_("/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"from-post-message":case"unpublished":case"public":case"from-url":case"compare":case"local":return!0;default:throw(0,mt.lC)(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(0,mt.lC)(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"from-post-message":case"unpublished":return!1;case"from-url":if(Zr(t))return!1;case"public":case"compare":case"local":return this._isProfileLoadedAndReady();default:throw(0,mt.lC)(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 J.createElement(de,{id:"ServiceWorkerManager--applying-button"},J.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 J.createElement(de,{id:"ServiceWorkerManager--pending-button"},J.createElement("button",{className:"photon-button photon-button-micro photon-message-bar-action-button",type:"button",onClick:this.applyServiceWorkerUpdate},"Apply and reload"));case"controlling":return J.createElement(de,{id:"ServiceWorkerManager--installed-button"},J.createElement("button",{className:"photon-button photon-button-micro photon-message-bar-action-button",type:"button",onClick:this.reloadPage},"Reload the application"));default:throw(0,mt.lC)(e)}}render(){const{isNoticeDisplayed:e,updatedWhileNotReady:t}=this.state;return e?t?J.createElement("div",{className:"serviceworker-ready-notice-wrapper"},J.createElement("div",{className:"photon-message-bar photon-message-bar-warning serviceworker-ready-notice"},J.createElement("div",{className:"photon-message-bar-inner-content"},J.createElement("div",{className:"photon-message-bar-inner-text"},J.createElement(de,{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),J.createElement(de,{id:"ServiceWorkerManager--hide-notice-button",attrs:{"aria-label":!0,title:!0}},J.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()?J.createElement("div",{className:"serviceworker-ready-notice-wrapper"},J.createElement("div",{className:"photon-message-bar serviceworker-ready-notice"},J.createElement("div",{className:"photon-message-bar-inner-content"},J.createElement("div",{className:"photon-message-bar-inner-text"},J.createElement(de,{id:"ServiceWorkerManager--new-version-is-ready"},"A new version of the application has been downloaded and is ready to use.")),this.renderButton()),J.createElement(de,{id:"ServiceWorkerManager--hide-notice-button",attrs:{"aria-label":!0,title:!0}},J.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 a_=lt({mapStateToProps:e=>({phase:Ys(e).phase,dataSource:Ao(e),profileUrl:Co(e),symbolicationStatus:si(e)}),component:o_}),i_=" – ",s_="Vernier Profiler";class l_ extends J.PureComponent{_updateTitle(){const{profile:e,profileNameFromUrl:t,formattedMetaInfoString:n,fileNameInZipFilePath:r,listingZipFile:o,dataSource:a}=this.props;switch(a){case"none":document.title=s_;break;case"uploaded-recordings":document.title="Uploaded Recordings"+i_+s_;break;case"compare":document.title="Compare Profiles"+i_+s_;break;case"public":case"local":case"unpublished":case"from-browser":case"from-post-message":case"from-file":case"from-url":if(t)document.title=t+i_+s_;else if(e){const{meta:t}=e;let o="";n&&(o+=n),t.startTime>0&&(o+=i_+(i=t.startTime+(t.profilingStartTime||0),new Date(i).toLocaleString(void 0,{timeZone:"UTC",timeZoneName:"short"}))),"public"===a&&(o+=` (${a})`),""!==o&&(o+=i_),o+=s_,r&&(o=r+i_+o),document.title=o}else document.title=o?"Archive Contents"+i_+s_:s_;break;default:throw(0,mt.lC)(a)}var i}componentDidMount(){this._updateTitle()}componentDidUpdate(){this._updateTitle()}render(){return null}}const c_=lt({mapStateToProps:e=>({profileNameFromUrl:vo(e),fileNameInZipFilePath:ha(e),formattedMetaInfoString:ua(e),profile:gi(e),dataSource:Ao(e),listingZipFile:"LIST_FILES_IN_ZIP_FILE"===Os(e).phase}),component:l_}),d_=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 u_{constructor(e){const t=d_.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(h_,e))return new u_(h_[e]);const t=new u_(e);return t.language&&p_.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 h_={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"},p_=["az","bg","cs","de","es","fi","fr","hu","it","lt","lv","nl","pl","ro","ru"];class m_ extends J.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 u_(e).isWellFormed&&o.set(e,new u_(e));e:for(const t of e){const e=t.toLowerCase(),a=new u_(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,Jf,{defaultLocale:Qf}),o=r.indexOf(Qf),a=r.slice(0,o+1),i=function*(e,t){const n=t?jf[t]:void 0;for(const[t,r]of e){const e=new Wf(r),o=new Af(t,{transform:n,functions:{SHORTDATE:Zf}});o.addResource(e),yield o}}(await Promise.all(a.map(tg)),t),s=new se(i),l=r[0],c=function(e,t){if(t&&t in $f)return $f[t];const n=e.split("-")[0];return eg.includes(n)?"rtl":"ltr"}(l,t);n(s,l,c)}componentDidMount(){this._setupLocalization()}componentDidUpdate(){this._setupLocalization()}render(){return null}}class f_ extends J.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 J.PureComponent{componentDidMount(){this._updateLocalizationDocumentAttribute()}componentDidUpdate(){this._updateLocalizationDocumentAttribute()}_updateLocalizationDocumentAttribute(){const{primaryLocale:e,direction:t}=this.props;e&&((0,mt.Nn)(document.documentElement).setAttribute("dir",t),(0,mt.Nn)(document.documentElement).setAttribute("lang",e))}render(){const{primaryLocale:e,children:t,localization:n,requestedLocales:r,pseudoStrategy:o,receiveL10n:a,requestL10n:i}=this.props;return J.createElement(J.Fragment,null,J.createElement(f_,{requestL10n:i,requestedLocales:r}),J.createElement(m_,{requestedLocales:r,pseudoStrategy:o,receiveL10n:a}),e?J.createElement(ce,{l10n:n},t):null)}}const A_=lt({mapStateToProps:e=>({localization:fu(e),primaryLocale:gu(e),direction:Au(e),requestedLocales:bu(e),pseudoStrategy:Cu(e)}),mapDispatchToProps:{requestL10n:Km,receiveL10n:Ym},component:g_});var b_=n(7385),C_={};C_.styleTagTransform=M(),C_.setAttributes=B(),C_.insert=T().bind(null,"head"),C_.domAPI=k(),C_.insertStyleElement=P(),w()(b_.A,C_),b_.A&&b_.A.locals&&b_.A.locals;class y_ extends J.PureComponent{render(){const{store:e}=this.props;return J.createElement(dg,{message:"Uh oh, some unknown error happened in profiler.firefox.com."},J.createElement(st,{store:e},J.createElement(A_,null,J.createElement(de,{id:"Root--error-boundary-message",attrs:{message:!0}},J.createElement(ug,{message:"Uh oh, some unknown error happened in profiler.firefox.com."},J.createElement(eI,null,J.createElement($m,null,J.createElement(a_,null),J.createElement(WI,null),J.createElement(zI,null),J.createElement(ig,null),J.createElement(c_,null))))))))}}var v_,w_=({dispatch:e,getState:t})=>n=>r=>"function"==typeof r?r(e,t,v_):n(r);n(9448);const E_=no({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}),k_=no({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":case"CHANGE_TAB_FILTER":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 Br.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"CHANGE_TAB_FILTER":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:E_,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 x_(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(_n.TN`
|
138
|
-
Attempted to transition the ZipFileState from the phase “${e.phase}”
|
139
|
-
to “${t.phase}”, however “${e.phase}” can only transition to
|
140
|
-
“${r.join("”, “")}”.
|
141
|
-
`);return t}const T_=no({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?x_(e,{phase:"LIST_FILES_IN_ZIP_FILE",zip:e.zip,pathInZipFile:null}):e;case"RECEIVE_ZIP_FILE":return x_(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 x_(e,{phase:"LIST_FILES_IN_ZIP_FILE",zip:(0,mt.Nn)(e.zip),pathInZipFile:null});case"PROCESS_PROFILE_FROM_ZIP_FILE":return x_(e,{phase:"PROCESS_PROFILE_FROM_ZIP_FILE",zip:(0,mt.Nn)(e.zip),pathInZipFile:t.pathInZipFile});case"FILE_NOT_FOUND_IN_ZIP_FILE":return x_(e,{phase:"FILE_NOT_FOUND_IN_ZIP_FILE",zip:(0,mt.Nn)(e.zip),pathInZipFile:t.pathInZipFile});case"FAILED_TO_PROCESS_PROFILE_FROM_ZIP_FILE":return x_(e,{phase:"FAILED_TO_PROCESS_PROFILE_FROM_ZIP_FILE",zip:(0,mt.Nn)(e.zip),pathInZipFile:(0,mt.Nn)(e.pathInZipFile)});case"FATAL_ERROR":return"NO_ZIP_FILE"===e.phase||"LIST_FILES_IN_ZIP_FILE"===e.phase?e:x_(e,{phase:"FAILED_TO_PROCESS_PROFILE_FROM_ZIP_FILE",zip:(0,mt.Nn)(e.zip),pathInZipFile:(0,mt.Nn)(e.pathInZipFile)});case"VIEW_ORIGINS_PROFILE":case"VIEW_FULL_PROFILE":case"VIEW_ACTIVE_TAB_PROFILE":return"NO_ZIP_FILE"===e.phase?e:x_(e,{phase:"VIEW_PROFILE_IN_ZIP_FILE",zip:(0,mt.Nn)(e.zip),pathInZipFile:(0,mt.Nn)(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}),S_=()=>{},B_=no({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=S_,t)=>{switch(t.type){case"UPLOAD_ABORTED":case"PROFILE_PUBLISHED":case"SANITIZED_PROFILE_PUBLISHED":case"UPLOAD_FAILED":return S_;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}}}),I_=no({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 Md(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:B_,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}}}),__=no({localization:(e=new se([]),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}),P_=no({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 N_;const M_=(N_=no({app:k_,profileView:Qa,urlState:lo,icons:(e=new Map,t)=>{switch(t.type){case"ICON_HAS_LOADED":{const{icon:n,className:r}=t.iconWithClassName;return new Map([...e.entries(),[n,r]])}case"ICON_BATCH_ADD":{const n=new Map([...e.entries()]);for(const{icon:e,className:r}of t.icons)n.set(e,r);return n}default:return e}},zippedProfiles:T_,publish:I_,l10n:__,code:P_}),(e,t)=>"REVERT_TO_PRE_PUBLISHED_STATE"===t.type?t.prePublishedState:N_(e,t)),F_=Object.assign({},g,m,A,p,C,f,y,b),R_=Object.defineProperty;window.geckoProfilerPromise=new Promise((function(e){window.connectToGeckoProfiler=e}));const D_=function(){const e=to(M_,function(...e){return t=>(n,r)=>{const o=t(n,r);let a=()=>{throw new Error(Xr(15))};const i={getState:o.getState,dispatch:(e,...t)=>a(e,...t)},s=e.map((e=>e(i)));return a=function(...e){return 0===e.length?e=>e:1===e.length?e[0]:e.reduce(((e,t)=>(...n)=>e(t(...n))))}(...s)(o.dispatch),{...o,dispatch:a}}}(w_));return e}();(0,Q.H)((0,mt.Nn)(document.getElementById("root"),"Unable to find the DOM element to attach the React element to.")).render(J.createElement(y_,{store:D_})),function(e,t,n=window){R_(n,"profile",{enumerable:!0,get:()=>yu.profile.getProfile(e())}),R_(n,"filteredThread",{enumerable:!0,get:()=>yu.selectedThread.getPreviewFilteredThread(e())}),R_(n,"callTree",{enumerable:!0,get:()=>yu.selectedThread.getCallTree(e())}),R_(n,"filteredMarkers",{enumerable:!0,get(){const t=e(),n=yu.selectedThread.getMarkerGetter(t);return yu.selectedThread.getPreviewFilteredMarkerIndexes(t).map(n)}}),R_(n,"selectedMarker",{enumerable:!0,get:()=>yu.selectedThread.getSelectedMarker(e())}),n.experimental={enableEventDelayTracks(){t(F_.enableEventDelayTracks())&&console.log(_n.dx`
|
142
|
-
✅ The event delay tracks are now enabled and should be displayed in the timeline.
|
143
|
-
👉 Note that this is an experimental feature that might still have bugs.
|
144
|
-
💡 As an experimental feature their presence isn't persisted as a URL parameter like the other things.
|
145
|
-
`)},enableCPUGraphs(){t(F_.enableExperimentalCPUGraphs())&&console.log(_n.dx`
|
146
|
-
✅ The CPU graphs are now enabled and should be displayed in the timeline.
|
147
|
-
👉 Note that this is an experimental feature that might still have bugs.
|
148
|
-
💡 As an experimental feature their presence isn't persisted as a URL parameter like the other things.
|
149
|
-
`)},enableProcessCPUTracks(){t(F_.enableExperimentalProcessCPUTracks())&&console.log(_n.dx`
|
150
|
-
✅ The process CPU tracks are now enabled and should be displayed in the timeline.
|
151
|
-
👉 Note that this is an experimental feature that might still have bugs.
|
152
|
-
💡 As an experimental feature their presence isn't persisted as a URL parameter like the other things.
|
153
|
-
`)}},n.togglePseudoLocalization=function(e){void 0===e||"accented"===e||"bidi"===e?(t(F_.togglePseudoStrategy(e??null)),e?console.log(_n.dx`
|
154
|
-
✅ The pseudo strategy "${e}" is now enabled for the localization.
|
155
|
-
👉 To disable it, you can call togglePseudoLocalization() again without a parameter.
|
156
|
-
`):console.log(_n.dx`
|
157
|
-
✅ The pseudo strategy is now disabled.
|
158
|
-
`)):console.log(_n.dx`
|
159
|
-
❗ The pseudo strategy "${e}" is unknown.
|
160
|
-
💡 Valid strategies are: "accented" or "bidi".
|
161
|
-
Please try again 😊
|
162
|
-
`)},n.toggleTimelineType=function(e){"cpu-category"===e||"category"===e||"stack"===e?(t(F_.changeTimelineType(e)),console.log(_n.dx`
|
163
|
-
✅ The timeline type "${e}" is now enabled for the timeline.
|
164
|
-
`)):console.log(_n.dx`
|
165
|
-
❗ The timeline type "${e}" is unknown.
|
166
|
-
💡 Valid types are: "cpu-category", "category", or "stack".
|
167
|
-
Please try again 😊
|
168
|
-
`)},n.retrieveRawProfileDataFromBrowser=async function(){const e=await Om(),t=F_.unwrapBrowserConnection(e);return await t.getProfile({onThirtySecondTimeout:()=>{console.log(_n.TN`
|
169
|
-
We were unable to connect to the browser within thirty seconds.
|
170
|
-
This might be because the profile is big or your machine is slower than usual.
|
171
|
-
Still waiting...
|
172
|
-
`)}})},n.saveToDisk=async function(e,t){if(null==e)return void console.error("We can't save a null or undefined variable.");const n="string"==typeof e||"[object ArrayBuffer]"===String(e)?e:JSON.stringify(e),r=new Blob([n],{type:"application/octet-stream"}),o=URL.createObjectURL(r),a=document.createElement("a");a.href=o,a.download=t??"profile.data",a.click(),URL.revokeObjectURL(o)},n.extractGeckoLogs=function(){function t(e,t){return String(e).padStart(t,"0")}function n(e){const n=new Date(e),r=Math.trunc((e-Math.trunc(e))*10**6);return`${n.getUTCFullYear()}-${t(n.getUTCMonth()+1,2)}-${t(n.getUTCDate(),2)} ${t(n.getUTCHours(),2)}:${t(n.getUTCMinutes(),2)}:${t(n.getUTCSeconds(),2)}.${t(n.getUTCMilliseconds(),3)}${t(r,6)} UTC`}const r=[],o=yu.profile.getProfile(e()),a=yu.profile.getPreviewSelectionRange(e());for(const e of o.threads){const{markers:t}=e;for(let i=0;i<t.length;i++){const s=t.startTime[i];if(null!==s&&t.data[i]&&"Log"===t.data[i].type&&s>=a.start&&s<=a.end){const a=t.data[i],s=`${n(o.meta.startTime+t.startTime[i])} - [${e.processName??"Unknown Process"} ${e.pid}: ${e.name}]: D/${a.module} ${a.name.trim()}`;r.push(s)}}}return r.sort().join("\n")},n.shortenUrl=Xc,n.getState=e,n.selectors=yu,n.dispatch=t,n.actions=F_,n.persistTooltips=!1}(D_.getState,D_.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(_n.dx`
|
173
|
-
%cThe following profiler information and tools are available via the console:%c
|
174
|
-
|
175
|
-
%cwindow.profile%c - The currently loaded profile
|
176
|
-
%cwindow.filteredThread%c - The current filtered thread
|
177
|
-
%cwindow.filteredMarkers%c - The current filtered and processed markers
|
178
|
-
%cwindow.selectedMarker%c - The selected processed marker in the current thread
|
179
|
-
%cwindow.callTree%c - The call tree of the current filtered thread
|
180
|
-
%cwindow.getState%c - The function that returns the current Redux state.
|
181
|
-
%cwindow.selectors%c - All the selectors that are used to get data from the Redux state.
|
182
|
-
%cwindow.dispatch%c - The function to dispatch a Redux action to change the state.
|
183
|
-
%cwindow.actions%c - All the actions that can be dispatched to change the state.
|
184
|
-
%cwindow.experimental%c - The object that holds flags of all the experimental features.
|
185
|
-
%cwindow.togglePseudoLocalization%c - Enable pseudo localizations by passing "accented" or "bidi" to this function, or disable using no parameters.
|
186
|
-
%cwindow.toggleTimelineType%c - Toggle timeline graph type by passing "cpu-category", "category", or "stack".
|
187
|
-
%cwindow.retrieveRawProfileDataFromBrowser%c - Retrieve the profile attached to the current tab and returns it. Use "await" to call it, and use saveToDisk to save it.
|
188
|
-
%cwindow.extractGeckoLogs%c - Retrieve recorded logs in the current range, using the MOZ_LOG format. Use with "copy" or "saveToDisk".
|
189
|
-
%cwindow.saveToDisk%c - Saves to a file the parameter passed to it, with an optional filename parameter. You can use that to save the profile returned by "retrieveRawProfileDataFromBrowser" or the data returned by "extractGeckoLogs".
|
190
|
-
|
191
|
-
The profile format is documented here:
|
192
|
-
%chttps://github.com/firefox-devtools/profiler/blob/main/docs-developer/processed-profile-format.md%c
|
193
|
-
|
194
|
-
The CallTree class's source code is available here:
|
195
|
-
%chttps://github.com/firefox-devtools/profiler/blob/main/src/profile-logic/call-tree.js%c
|
196
|
-
`,"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,e,n,e,n,e,n,e,n,t,n,t,n)}()},5737:(e,t,n)=>{"use strict";n.d(t,{AU:()=>C,CJ:()=>A,ES:()=>d,Ie:()=>y,LK:()=>l,Qh:()=>w,Ry:()=>p,SQ:()=>b,U1:()=>k,WG:()=>a,WU:()=>h,Z:()=>E,cy:()=>i,dY:()=>u,oP:()=>v,qc:()=>m,uv:()=>c,uz:()=>f,vA:()=>s,x2:()=>g});var r=n(4876),o=n(9839);function a(){return{frame:[],prefix:[],category:[],subcategory:[],length:0}}function i(){return{weightType:"samples",weight:null,eventDelay:[],stack:[],time:[],length:0}}function s(){return{address:[],inlineDepth:[],category:[],subcategory:[],func:[],nativeSymbol:[],innerWindowID:[],implementation:[],line:[],column:[],length:0}}function l(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 c(){return{isJS:[],relevantForJS:[],name:[],resource:[],fileName:[],lineNumber:[],columnNumber:[],length:0}}function d(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}}function u(e){return{libIndex:e.libIndex.slice(),address:e.address.slice(),name:e.name.slice(),functionSize:e.functionSize.slice(),length:e.length}}function h(){return{lib:[],name:[],host:[],type:[],length:0}}function p(){return{libIndex:[],address:[],name:[],functionSize:[],length:0}}function m(){return{data:[],name:[],startTime:[],endTime:[],phase:[],category:[],length:0}}function f(){return{time:[],className:[],typeName:[],coarseType:[],weight:[],weightType:"bytes",inNursery:[],stack:[],length:0}}function g(){return{time:[],weight:[],weightType:"bytes",stack:[],length:0}}function A(){return{time:[],weight:[],weightType:"bytes",stack:[],memoryAddress:[],threadId:[],length:0}}function b(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}}const C={unknown:0,library:1,addon:2,webhost:3,otherhost:4,url:5};function y(){return{id:[],name:[],baseURL:[],length:0}}function v(){return[{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"]}]}function w(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 r.e,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 E(){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:o.xC,preprocessedProfileVersion:o.Ie,appBuildID:"",sourceURL:"",physicalCPUs:0,logicalCPUs:0,CPUName:"",symbolicated:!0,markerSchema:[]},libs:[],pages:[],threads:[]}}function k(){return{prefix:new Int32Array(0),subtreeRangeEnd:new Uint32Array(0),nextSibling:new Int32Array(0),func:new Int32Array(0),category:new Int32Array(0),subcategory:new Int32Array(0),innerWindowID:new Float64Array(0),sourceFramesInlinedIntoSymbol:[],depth:[],maxDepth:-1,length:0}}},6046:(e,t,n)=>{"use strict";n.d(t,{jI:()=>o,sZ:()=>s,tB:()=>i,ut:()=>a});var r=n(5458);function o(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}}function a(e,t,n,o){return o.isInverted()?function(e,t,n,o){const a=o.getCallNodeTable(),i=a.depth[n],s=a.subtreeRangeEnd[n],l=-1===a.prefix[n],c=o.getStackIndexToCallNodeIndex(),d=e.prefix,u=[],h=[];for(let o=0;o<e.length;o++){let a=null,p=null;const m=(0,r.Nv)(o,n,s,i,c,d);if(null!==m){const n=e.frame[m],r=t.line[n];null!==r&&(p=new Set([r]),l&&(a=r))}u.push(a),h.push(p)}return{selfLine:u,stackLines:h}}(e,t,n,o):function(e,t,n,r){const o=r.getStackIndexToNonInvertedCallNodeIndex(),a=[],i=[];for(let r=0;r<e.length;r++){let s=null,l=null;if(o[r]===n){const n=e.frame[r];s=t.line[n],null!==s&&(l=new Set([s]))}else{const t=e.prefix[r];l=null!==t?i[t]:null}a.push(s),i.push(l)}return{selfLine:a,stackLines:i}}(e,t,n,o)}const i={totalLineHits:new Map,selfLineHits:new Map};function s(e,t){if(null===e)return i;const{selfLine:n,stackLines: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{totalLineHits:o,selfLineHits:a}}},5458:(e,t,n)=>{"use strict";n.d(t,{eG:()=>H,Jn:()=>K,m4:()=>V,eD:()=>ve,dQ:()=>$,y9:()=>I,Pr:()=>ye,ej:()=>pe,Nf:()=>G,u2:()=>N,hk:()=>D,Ce:()=>z,KQ:()=>F,$v:()=>ce,bs:()=>ue,WM:()=>de,rf:()=>he,$7:()=>be,ae:()=>Ce,xR:()=>b,LU:()=>le,T4:()=>ie,XU:()=>ee,RM:()=>oe,Z9:()=>U,wk:()=>y,tp:()=>k,Us:()=>X,Nv:()=>v,SU:()=>me,Bu:()=>ne,UI:()=>Q,cL:()=>J,XG:()=>O,WD:()=>w,st:()=>E,g:()=>te,X:()=>fe,GP:()=>S,WT:()=>B,rs:()=>T,_X:()=>x,H7:()=>ae,dr:()=>ge,aM:()=>L,oQ:()=>Ae,pR:()=>W,qN:()=>j,Vj:()=>re,V8:()=>se,pZ:()=>P,Cn:()=>_,DR:()=>q,hw:()=>Y});var r=n(5119),o=n.n(r),a=n(1617),i=n.n(a),s=n(9472),l=n(5737),c=n(9004);class d{constructor(e,t,n,r,o){this._isInverted=void 0,this._callNodeTable=void 0,this._nonInvertedCallNodeTable=void 0,this._stackIndexToCallNodeIndex=void 0,this._stackIndexToNonInvertedCallNodeIndex=void 0,this._cache=new Map,this._callNodeTable=e,this._nonInvertedCallNodeTable=t,this._stackIndexToCallNodeIndex=n,this._stackIndexToNonInvertedCallNodeIndex=r,this._isInverted=o}isInverted(){return this._isInverted}getCallNodeTable(){return this._callNodeTable}getStackIndexToCallNodeIndex(){return this._stackIndexToCallNodeIndex}getNonInvertedCallNodeTable(){return this._nonInvertedCallNodeTable}getStackIndexToNonInvertedCallNodeIndex(){return this._stackIndexToNonInvertedCallNodeIndex}getCallNodePathFromIndex(e){if(null===e||-1===e)return[];const t=[];let n=e;for(;-1!==n;)t.push(this._callNodeTable.func[n]),n=this._callNodeTable.prefix[n];return t.reverse(),t}getCallNodeIndexFromPath(e){const t=this._cache,n=(0,c.Gv)(e),r=t.get(n);if(void 0!==r)return r;const o=[n];let a,i=e.length;for(;--i>0;){const n=e.slice(0,i),r=(0,c.Gv)(n);if(a=t.get(r),void 0!==a)break;o.push(r)}for(void 0===a&&(a=-1);i<e.length;){const n=e[i],r=this.getCallNodeIndexFromParentAndFunc(a,n);if(null===r)return null;const s=o.pop();t.set(s,r),a=r,i++}return a<0?null:a}getCallNodeIndexFromParentAndFunc(e,t){const n=this._callNodeTable;if(-1===e){if(0===n.length)return null}else if(n.subtreeRangeEnd[e]===e+1)return null;for(let r=e+1;-1!==r;r=n.nextSibling[r])if(n.func[r]===t)return r;return null}}var u=n(9839),h=n(946),p=n(7837),m=n(5865),f=n(919);const g=n.p+"1ddbc3ce40af8c7a648b.svg",A=n.p+"d6df0017c0241dfe86ff.svg";function b(e,t,n,r){const{callNodeTable:o,stackIndexToCallNodeIndex:a}=C(e,t,0,r);return new d(o,o,a,a,!1)}function C(e,t,n,r){return(0,h.l)("getCallNodeInfo",(()=>{const n=new Int32Array(e.length),o=[],a=[],i=[],s=[],c=[],d=[],u=[],p=[];let m=0;const f=[];let g=-1;function A(e,t,n,r,l,h){const A=m++;if(o[A]=e,s[A]=t,c[A]=n,d[A]=r,u[A]=l,p[A]=h,a[A]=-1,i[A]=-1,f[A]=-1,-1===e)-1!==g&&(i[g]=A),g=A;else{const t=f[e];-1===t?a[e]=A:i[t]=A,f[e]=A}}for(let o=0;o<e.length;o++){const l=e.prefix[o],u=null===l?-1:n[l],h=e.frame[o],f=e.category[o],g=e.subcategory[o],b=t.inlineDepth[h]>0?t.nativeSymbol[h]:null,C=t.func[h];let y=-1;if(0!==o)for(let e=-1===u?0:a[u];-1!==e;e=i[e])if(s[e]===C){y=e;break}if(-1===y){const e=t.innerWindowID[h]||0;y=m,A(u,C,f,g,e,b)}else c[y]!==f?(c[y]=r,d[y]=0):d[y]!==g&&(d[y]=0),p[y]!==b&&(p[y]=-1);n[o]=y}return function(e,t,n,r,o,a,i,s,c,d){return(0,h.l)("createCallNodeInfoFromUnorderedComponents",(()=>{if(0===c)return{callNodeTable:(0,l.U1)(),stackIndexToCallNodeIndex:new Int32Array(0)};const u=new Int32Array(c),h=new Int32Array(c),p=new Uint32Array(c),m=new Int32Array(c),f=new Int32Array(c),g=new Int32Array(c),A=new Float64Array(c),b=new Array(c),C=new Array(c);let y=0;const v=new Uint32Array(c);let w=0,E=0,k=0,x=-1,T=-1;for(;-1!==w;){const l=w,c=E;v[l]=c,E++,u[c]=T,m[c]=r[l],f[c]=o[l],g[c]=a[l],A[c]=i[l],b[c]=s[l],C[c]=k;const d=t[l];if(-1===d)for(p[c]=E,w=n[l],h[c]=-1===w?-1:E;-1===w&&-1!==x;){p[T]=E;const t=n[x];h[T]=-1===t?-1:E,w=t,x=e[x],T=u[T],k--}else x=l,T=c,w=d,k++,k>y&&(y=k)}return{callNodeTable:{prefix:u,subtreeRangeEnd:p,nextSibling:h,func:m,category:f,subcategory:g,innerWindowID:A,sourceFramesInlinedIntoSymbol:b,depth:C,maxDepth:y,length:c},stackIndexToCallNodeIndex:d.map((e=>v[e]))}}))}(o,a,i,s,c,d,u,p,m,n)}))}function y(e,t,n,r){const{invertedThread:o,oldStackToNewStack:a}=function(e,t){return(0,h.l)("_computeThreadWithInvertedStackTable",(()=>{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{invertedThread:q(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,(0,f.Nn)(t))}return t})),oldStackToNewStack:l}}))}(e,r),{callNodeTable:i,stackIndexToCallNodeIndex:s}=C(o.stackTable,o.frameTable,o.funcTable,r),l=new Int32Array(e.stackTable.length);for(let e=0;e<l.length;e++){const t=a.get(e);l[e]=void 0===t?-1:s[t]}return new d(i,t,l,n,!0)}function v(e,t,n,r,o,a){const i=o[e];return i>=t&&i<n?function(e,t,n){let r=e;for(let e=0;e<t&&null!==r;e++)r=n[r];return r}(e,r,a):null}function w(e,t){return e.map((e=>null===e?null:t[e]))}function E(e,t,n,r){return null===r||-1===r?function(e,t){const n=new Array(e.length);for(let r=0;r<e.length;r++){let o="SELECTED";null===e[r]&&(o=null===t[r]?"FILTERED_OUT_BY_ACTIVE_TAB":"FILTERED_OUT_BY_TRANSFORM"),n[r]=o}return n}(t,n):function(e,t,n,r){const o=e.length,a=new Array(o);for(let i=0;i<o;i++){let o="SELECTED";const s=e[i];o=null!==s?s<n?"UNSELECTED_ORDERED_BEFORE_SELECTED":s<r?"SELECTED":"UNSELECTED_ORDERED_AFTER_SELECTED":null===t[i]?"FILTERED_OUT_BY_ACTIVE_TAB":"FILTERED_OUT_BY_TRANSFORM",a[i]=o}return a}(t,n,r,e.getCallNodeTable().subtreeRangeEnd[r])}function k(e){if(0===e.length)throw new Error("getLeafFuncIndex assumes that the path isn't empty.");return e[e.length-1]}function x(e,t,n,r,o,a,i,s,l,c){return T(t.getCallNodeIndexFromPath(e),t,0,r,o,a,i,s,l,c)}function T(e,t,n,r,o,a,i,s,l,c){const{stringTable:d}=r,{stackTable:u,funcTable:h,frameTable:p}=o,m=i.findIndex((({name:e})=>"JavaScript"===e)),f={selfTime:{value:0,breakdownByImplementation:null,breakdownByCategory:null},totalTime:{value:0,breakdownByImplementation:null,breakdownByCategory:null}};let g=0;function A(e){const t=p.implementation[e];if(null===t)return"interpreter";const n=d.getString(t);switch(n){case"baseline":case"blinterp":case"ion":case"yjit":return n;default:return"unknown"}}function b(e,t,n){if(e.value+=n,c){const r=function(e){const t=l.stack[e+a];if(null===t)return console.error("We got a null stack, this should not happen."),"native";const n=u.frame[t],r=p.func[n],o=h.isJS[r]?A(n):function(e){if(u.category[e]!==m)return"native";for(let t=e;null!==t;t=u.prefix[t]){const e=u.frame[t],n=p.func[e];if(h.isJS[n])return A(e)}return"native"}(t);return o}(t);null===e.breakdownByImplementation&&(e.breakdownByImplementation={}),void 0===e.breakdownByImplementation[r]&&(e.breakdownByImplementation[r]=0),e.breakdownByImplementation[r]+=n}else e.breakdownByImplementation=null;const r=l.stack[t+a];if(null!==r){const t=u.category[r],o=u.subcategory[r];null===e.breakdownByCategory&&(e.breakdownByCategory=i.map((e=>({entireCategoryValue:0,subcategoryBreakdown:Array(e.subcategories.length).fill(0)})))),e.breakdownByCategory[t].entireCategoryValue+=n,e.breakdownByCategory[t].subcategoryBreakdown[o]+=n}}if(null===e)return{forPath:f,rootTime:g};const C=t.getCallNodeTable(),y=t.getStackIndexToCallNodeIndex(),v=C.subtreeRangeEnd[e],w=t.isInverted(),E=w&&-1===C.prefix[e];for(let t=0;t<s.length;t++){const n=s.stack[t];if(null===n)continue;const r=y[n],o=s.weight?s.weight[t]:1;g+=Math.abs(o),w||r===e&&b(f.selfTime,t,o),r>=e&&r<v&&(b(f.totalTime,t,o),E&&(f.selfTime.value+=o))}return{forPath:f,rootTime:g}}const S=o()((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 u.mN:case u.nO:{const e=(0,f.Nn)(n);a.start=Math.min(a.start,e),a.end=Math.max(a.end,e+o);break}case u.a1:{const e=(0,f.Nn)(r);a.start=Math.min(a.start,e),a.end=Math.max(a.end,e+o);break}case u.KU:{const e=(0,f.Nn)(n),t=(0,f.Nn)(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(i())});function B(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=S(n,e.meta.interval);t.start=Math.min(t.start,r.start),t.end=Math.max(t.end,r.end)})),t)}function I(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}function _(e){switch(e){case"cpp":case"js":return e;default:return"combined"}}function P(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 N(e,t){const{funcTable:n,stringTable:r}=e;switch(t){case"cpp":return M(e,(e=>{if(n.isJS[e])return!1;const t=r.getString(n.name[e]);return!(-1===n.resource[e]&&t.startsWith("0x"))}));case"js":return M(e,(e=>n.isJS[e]||n.relevantForJS[e]));default:return e}}function M(e,t){return(0,h.l)("_filterThreadByFunc",(()=>{const{stackTable:n,frameTable:r}=e,o={length:0,frame:[],prefix:[],category:[],subcategory:[]},a=new Int32Array(n.length);for(let e=0;e<n.length;e++){const i=n.prefix[e],s=n.frame[e],l=r.func[s],c=null===i?-1:a[i];if(t(l)){const t=o.length++;o.frame[t]=s,o.prefix[t]=-1!==c?c:null,o.category[t]=n.category[e],o.subcategory[t]=n.subcategory[e],a[e]=t}else a[e]=c}return q(e,o,(e=>{if(null===e)return null;const t=a[e];return-1!==t?t:null}))}))}function F(e,t){return(0,h.l)("filterThreadToSearchStrings",(()=>t&&t.length?t.reduce(R,e):e))}function R(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 q(e,a,(e=>d(e)?e:null))}function D(e,t){return(0,h.l)("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 q(e,r,(e=>i(e)?e:null))}))}function L(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 O(e,t,n){const r=(0,p.AM)(e.time,t);return[r,(0,p.AM)(e.time,n,r)]}function U(e,t,n){let[r,o]=O(e,t,n);return r>0&&r--,o<e.length&&o++,[r,o]}function z(e,t,n){const{samples:r,jsAllocations:o,nativeAllocations:a}=e,[i,s]=O(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]=O(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]=O(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 G(e,t,n){const r={...e},{samples:o}=r,[a,i]=U(o,t,n);return r.samples={length:i-a,time:o.time.slice(a,i),count:o.count.slice(a,i),number:o.number?o.number.slice(a,i):void 0},r}function W(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}}}function H(e,t){let n=0,r=0,o=0;const a=Array(e.length).fill(0),i=t?t[0]:0,s=t?t[1]:e.length;for(let t=i;t<s;t++)o+=e.count[t],n=Math.min(o,n),r=Math.max(o,r),a[t]=o;return{minCount:n,maxCount:r,countRange:r-n,accumulatedCounts:a}}function V(e,t,n){let r=0;const o=n?n[0]:0,a=n?n[1]:e.length;for(let n=o;n<a;n++){const o=e.count[n]/(0===n?t:e.time[n]-e.time[n-1]);r=Math.max(o,r)}return r}function j(e,t){if(!e.eventDelay)throw new Error("processEventDelays step should not be called for older profiles");const n=new Float32Array(e.length),r=(0,f.Nn)(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}}function $(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 K(e,t){let n=-1;const r=t.getNonInvertedCallNodeTable(),o=t.getStackIndexToNonInvertedCallNodeIndex();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];s>n&&(n=s)}return n+1}function Y(e,t,n,r,o){const{jsAllocations:a,nativeAllocations:i,samples:s,markers:l}=e,c={...s,stack:n(s.stack,s.time)},d={...l,data:o(l.data)},u={...e,samples:c,markers:d,stackTable:t};return a&&(u.jsAllocations={...a,stack:r(a.stack,a.time)}),i&&(u.nativeAllocations={...i,stack:r(i.stack,i.time)}),u}function q(e,t,n){return Z(e,t,n,n)}function Z(e,t,n,r){function o(e){return e&&"cause"in e&&e.cause?{...e,cause:{...e.cause,stack:r(e.cause.stack)}}:e}return Y(e,t,((e,t)=>e.map((e=>n(e)))),((e,t)=>e.map((e=>r(e)))),(e=>e.map(o)))}function X(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 J(e,t,n){const r=(0,p.lV)(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}function Q(e,t){const n=(0,p.lV)(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}function ee(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 te(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 ne(e,t,n,r,o=null,a=null){let i=null,s=null;const c=t.resource[e];if(-1!==c){i=n.type[c];const e=n.name[c];s=r.getString(e)}const d=t.fileName[e];let u;if(null!==d)if(u=r.getString(d),u=(0,m.o)(u).path,null!==o)u+=":"+o,null!==a&&(u+=":"+a);else{const n=t.lineNumber[e];if(null!==n){u+=":"+n;const r=t.columnNumber[e];null!==r&&(u+=":"+r)}}return u?s&&function(e,t,n){return!e.startsWith(t)&&n!==l.AU.library}(u,s,i)?`${s}: ${u}`:u:s||""}function re(e){const t=(0,l.ES)(e.funcTable),n=new Map,r=[l.AU.addon,l.AU.url,l.AU.webhost,l.AU.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),c=a===l.AU.url?i:null,d=t.length;t.isJS.push(s),t.relevantForJS.push(s),t.name.push(i),t.resource.push(e),t.fileName.push(c),t.lineNumber.push(null),t.columnNumber.push(null),t.length++,n.set(e,d)}return{thread:{...e,funcTable:t},reservedFunctionsForResources:n}}function oe(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:ne(a,n,o,r)}}))}function ae(e){return function(t,n){const r=e[t],o=e[n];return null===r?null===o?0:1:null===o?-1:r-o}}function ie(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(0,f.lC)(e)}}function se(e){return e.subcategories.length>1}function le(e,t,n){const r=e[t];return 0!==n?`${r.name}: ${r.subcategories[n]}`:`${r.name}`}function ce(e){let t;if(e.memoryAddress){t=(0,l.CJ)();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=(0,l.x2)();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}function de(e){let t;if(e.memoryAddress){t=(0,l.CJ)();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=(0,l.x2)();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}function ue(e){const t=[],n=(0,l.CJ)();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(s.TN`
|
197
|
-
The address ${a} was already present when we wanted to add it.
|
198
|
-
This probably means the deallocation wasn't collected, which may sometimes
|
199
|
-
happen. We will overwrite the previous entry.
|
200
|
-
`),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}function he(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=(0,l.CJ)();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}function pe(e,t){if(null===e)return new Map;const n=new Map;for(const[r,o]of e){let e=o.filter((e=>0===e.embedderInnerWindowID));if(e.length>1&&(e=e.filter((e=>!e.url.startsWith("about:")))),0===e.length){console.error(`Expected at least one topmost page for tabID ${r} but couldn't find it.`);continue}const a=e[e.length-1],i=a.url;if(i.startsWith("about:")){n.set(r,{origin:i,hostname:i,favicon:A});continue}const s=i.startsWith("moz-extension://"),l=s?g:A,c={origin:"",hostname:"",favicon:a.favicon??l};try{const e=new URL(i);c.hostname=t&&s?t.get("moz-extension://"+(e.hostname?e.hostname:i.split("/")[2])+"/")??"":e.hostname,c.origin=e.origin}catch(e){console.warn("Error while extracing the hostname and favicon from the page url",i)}n.set(r,c)}return n}function me(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]=l.AU.webhost):(t.lib[i]=null,t.name[i]=n.indexForString(e),t.host[i]=null,t.type[i]=l.AU.url)),i}function fe(e){return 1===e.size?(0,f.Nn)((0,f.cF)(e)):[...e].sort(((e,t)=>t-e)).join(",")}function ge(e,t){const n=(""+t).split(",").map((e=>+e));for(const t of n)if(!e.has(t))return!1;return!0}function Ae(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,c=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||c.has(t))continue;c.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 d=(0,l.LK)(o);for(const[e,t]of s){if(i.has(e)){const n=d.length;d.address.push(t),d.inlineDepth.push(o.inlineDepth[e]),d.category.push(o.category[e]),d.subcategory.push(o.subcategory[e]),d.func.push(o.func[e]),d.nativeSymbol.push(o.nativeSymbol[e]),d.innerWindowID.push(o.innerWindowID[e]),d.implementation.push(o.implementation[e]),d.line.push(o.line[e]),d.column.push(o.column[e]),d.length++,a[e]=n}d.address[e]=t-1}const u=(0,l.WG)(),h=new Map,p=new Map,m=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],l=r.prefix[e],d=null===l?null:m[l];if(c.has(e)||n.has(e)){const t=u.length;u.frame.push(o),u.category.push(i),u.subcategory.push(s),u.prefix.push(d),u.length++,m[e]=t,p.set(e,t)}if(t.has(e)){const t=a[o],n=u.length;u.frame.push(t),u.category.push(i),u.subcategory.push(s),u.prefix.push(d),u.length++,h.set(e,n)}}return Z({...e,frameTable:d},u,X(h),X(p))}function be(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),c=o.fileName.indexOf(s);if(-1===c)continue;const d=e.func.indexOf(c);if(-1===d)continue;const u=e.address[d];if(null===u)continue;const h=o.resource[c];if(a.type[h]!==l.AU.library)continue;const p=a.lib[h];if(null===p)continue;const m=n[p],{debugName:f,breakpadId:g}=m;return{debugName:f,breakpadId:g,address:u}}return null}function Ce(e,t,n){const{stackTable:r,frameTable:o,funcTable:a,stringTable:i,resourceTable:s,nativeSymbols:c}=n,d=t.getCallNodeTable().func[e],u=a.fileName[d],h=null!==u?i.getString(u):null,p=a.resource[d],m=-1!==p&&s.type[p]===l.AU.library?s.lib[p]:null,f=function(e,t,n,r){return t.isInverted()?function(e,t,n,r){const o=t.getCallNodeTable(),a=o.depth[e],i=o.subtreeRangeEnd[e],s=n.prefix,l=t.getStackIndexToCallNodeIndex(),c=new Set;for(let t=0;t<n.length;t++){const o=v(t,e,i,a,l,s);if(null!==o){const e=n.frame[o],t=r.nativeSymbol[e];null!==t&&c.add(t)}}return[...c]}(e,t,n,r):function(e,t,n,r){const o=t.getStackIndexToNonInvertedCallNodeIndex(),a=new Set;for(let t=0;t<n.length;t++)if(o[t]===e){const e=n.frame[t],o=r.nativeSymbol[e];null!==o&&a.add(o)}return[...a]}(e,t,n,r)}(e,t,r,o).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,c,o,i)));return{libIndex:m,sourceFile:h,nativeSymbols:f}}function ye(e){return e.meta.categories?e.meta.sampleUnits&&e.threads.some((e=>e.samples.threadCPUDelta))?"cpu-category":"category":"stack"}function ve(e,t){const n=new Map;if(!t)return n;for(let r=0;r<e.length;r++){const o=e[r];for(let e=0;e<o.frameTable.length;e++){const a=o.frameTable.innerWindowID[e];if(null===a||0===a)continue;const i=t.get(a);if(void 0===i)continue;let s=n.get(i);s||(s=new Set,n.set(i,s)),s.add(r)}for(let e=0;e<o.markers.length;e++){const a=o.markers.data[e];if(a&&null!==a.innerWindowID&&void 0!==a.innerWindowID&&0!==a.innerWindowID){const e=a.innerWindowID,o=t.get(e);if(void 0===o)continue;let i=n.get(o);i||(i=new Set,n.set(o,i)),i.add(r)}}}return n}},4199:(e,t,n)=>{"use strict";function r(e){const t=self.ga;t&&t("send",e)}function o(e){const t=self.ga;t&&t("send","exception",e)}n.d(t,{H:()=>r,N:()=>o})},7837:(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,o){if(r=r||0,o=o||e.length,r<0||r>e.length||o<0||o>e.length)throw new TypeError("low and high must lie within the array's range");for(;r<o;){const a=r+o>>1;t<n(e[a])?o=a:r=a+1}return r}function a(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,{AM:()=>a,Yl:()=>o,lV:()=>r})},919:(e,t,n)=>{"use strict";function r(e,t=`There was an unhandled case for the value: "${e}"`){throw new Error(t)}function o(e,...t){return Object.assign({},e,...t)}function a(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 i(e){const t=a(e);if(!t)throw new Error(`Attempted to assert that "${e}" is a valid TransformType, and it was not.`);return t}function s(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 l(e){return e}function c(e){return Object.entries(e)}function d(e,t){const n={};for(const[r,o]of c(e))n[r]=t(o,r);return n}function u(e){return Object.values(e)}function h(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 p(e){return e.values().next().value}n.d(t,{Cn:()=>o,DO:()=>s,K0:()=>d,Nn:()=>h,WP:()=>c,au:()=>l,cF:()=>p,hQ:()=>i,lC:()=>r,q3:()=>a,rj:()=>u})},9004:(e,t,n)=>{"use strict";function r(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}function o(e){return e.join("-")}n.d(t,{Gv:()=>o,Qi:()=>a,bj:()=>r});class a{constructor(e){if(this._table=void 0,e instanceof a)this._table=new Map(e._table);else if(this._table=new Map,e)for(const t of e)this._table.set(o(t),t)}add(e){return this._table.set(o(e),e),this}clear(){this._table.clear()}delete(e){return this._table.delete(o(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(o(e))}get size(){return this._table.size}*[Symbol.iterator](){yield*this._table.values()}}},5865:(e,t,n)=>{"use strict";n.d(t,{J:()=>p,o:()=>h});var r=n(919),o=n(9839);const a=/^(?<vcs>hg|git):(?<repo>[^:]*):(?<path>[^:]*):(?<rev>.*)$/,i=/^s3:(?<bucket>[^:]*):(?<digest>[0-9a-f]*)\/(?<path>[^:]*):$/,s=/^cargo:(?<registry>[^:]*):(?<crate>[^/]+)-(?<version>[0-9]+\.[0-9]+\.[0-9]+):(?<path>[^:]*)$/,l=new RegExp("^(?<host>"+o.HT+")/source(?<path>.*)$"),c=/^gem:(?<gem>[A-Za-z0-9\-_\.]+):(?<path>[^:]*)$/,d=/^rubylib:(?<version>[0-9\.]+):(?<ext>bigdecimal|cgi|continuation|coverage|date|digest|erb|etc|fcntl|fiddle|io|json|monitor|nkf|objspace|openssl|pathname|psych|pty|racc|rbconfig|readline|ripper|rubyvm|socket|stringio|strscan|syslog|win32|win32ole|zlib)\/(?<path>[^:]*)$/,u=/^rubylib:(?<version>[0-9\.]+):(?<path>[^:]*)$/;function h(e){const t=a.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=i.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=s.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=c.exec(e);if(null!==o&&o.groups){const{gem:e,path:t}=o.groups;return{type:"gem",gem:e,path:t}}const h=d.exec(e);if(null!==h&&h.groups){const{version:e,ext:t,path:n}=h.groups,r=`ext/${t}/lib/${t}/${n}`;return{type:"git",repo:"github.com/ruby/ruby",rev:`v${e.replaceAll(".","_")}`,path:r}}const p=u.exec(e);if(null!==p&&p.groups){const{version:e,path:t}=p.groups,n=`lib/${t}`;return{type:"git",repo:"github.com/ruby/ruby",rev:`v${e.replaceAll(".","_")}`,path:n}}const m=l.exec(e);if(null!==m&&m.groups){const{host:e,path:t}=m.groups;return{type:"localhost",host:e+"/source",path:t}}return{type:"normal",path:e}}function p(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-17)}/${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"gem":{const{gem:t,path:n}=e;return{type:"CORS_ENABLED_SINGLE_FILE",url:`https://gems.vernier.prof/${t}/${n}`}}case"normal":return{type:"NO_KNOWN_CORS_URL"};default:throw(0,r.lC)(e.type,"unhandled ParsedFile type")}}},946:(e,t,n)=>{"use strict";n.d(t,{l:()=>i});var r=n(4199);const o=3,a={};function i(e,t){if("undefined"!=typeof performance){const n=performance.now(),i=t(),s=Math.round(performance.now()-n),l=a[e]||0;return l<o&&(a[e]=1+l,(0,r.H)({hitType:"timing",timingCategory:"timeCode",timingVar:e,timingValue:s})),i}return t()}},4876:(e,t,n)=>{"use strict";n.d(t,{e:()=>r});class r{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)}}},3276:e=>{e.exports=function(e,t,n){return t<n?e<t?t:e>n?n:e:e<n?n:e>t?t:e}},9472:(e,t,n)=>{"use strict";n.d(t,{TN:()=>A,dx:()=>b});var r,o,a=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}}(),i=(r=["",""],o=["",""],Object.freeze(Object.defineProperties(r,{raw:{value:Object.freeze(o)}}))),s=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 a(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(i,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 l=s;var c={separator:"",conjunction:"",serial:!1};const d=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:c;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}}},u=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)}}},h=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 l(d({separator:","}),u,h),new l(d({separator:",",conjunction:"and"}),u,h),new l(d({separator:",",conjunction:"or"}),u,h);const p=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 m=function(e){return null!=e&&!Number.isNaN(e)&&"boolean"!=typeof e};new l(p("\n"),(function(){return{onSubstitution:function(e){return Array.isArray(e)?e.filter(m):m(e)?e:""}}}),d,u,h);const f=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 l(p("\n"),d,u,h,f(/&/g,"&"),f(/</g,"<"),f(/>/g,">"),f(/"/g,"""),f(/'/g,"'"),f(/`/g,"`"));const g=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)}}},A=new l(g(/(?:\n(?:\s*))+/g," "),h);new l(g(/(?:\n\s*)/g,""),h),new l(d({separator:","}),g(/(?:\s+)/g," "),h),new l(d({separator:",",conjunction:"or"}),g(/(?:\s+)/g," "),h),new l(d({separator:",",conjunction:"and"}),g(/(?:\s+)/g," "),h),new l(d,u,h),new l(d,g(/(?:\s+)/g," "),h);const b=new l(u,h);new l(u("all"),h)},7965:(e,t,n)=>{"use strict";var r=n(6426),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}},6859:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},8901:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},6756:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},1086:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},3829:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},12:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},1359:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},6544:(e,t,n)=>{"use strict";n.d(t,{A:()=>m});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(5199),n.b),d=new URL(n(4898),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},1190:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},9815:(e,t,n)=>{"use strict";n.d(t,{A:()=>g});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(5812),l=n(1359),c=n(6544),d=n(4287),u=n(2285),h=n(3642),p=n(2225),m=n(1190),f=i()(o());f.i(s.A),f.i(l.A),f.i(c.A),f.i(d.A),f.i(u.A),f.i(h.A),f.i(p.A),f.i(m.A),f.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);const g=f},4287:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},2285:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},3642:(e,t,n)=>{"use strict";n.d(t,{A:()=>y});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(2277),n.b),d=new URL(n(1196),n.b),u=new URL(n(8981),n.b),h=new URL(n(1563),n.b),p=new URL(n(5572),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},2225:(e,t,n)=>{"use strict";n.d(t,{A:()=>m});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(3115),n.b),d=new URL(n(9814),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},5812:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},1961:(e,t,n)=>{"use strict";n.d(t,{A:()=>c});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(7298),l=i()(o());l.i(s.A),l.push([e.id,"","",{version:3,sources:[],names:[],mappings:"",sourceRoot:""}]);const c=l},7298:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},4717:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},7803:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},8785:(e,t,n)=>{"use strict";n.d(t,{A:()=>b});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(1196),n.b),d=new URL(n(1808),n.b),u=new URL(n(6780),n.b),h=new URL(n(8981),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},5997:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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{align-items:center;display:grid;grid-gap:1em;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,iBAEE,kBAAmB,CADnB,YAAa,CAEb,YAAa,CACb,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},8303:(e,t,n)=>{"use strict";n.d(t,{A:()=>m});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(241),n.b),d=new URL(n(9692),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},6830:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},7939:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},9133:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},2441:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},2720:(e,t,n)=>{"use strict";n.d(t,{A:()=>h});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(877),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},5944:(e,t,n)=>{"use strict";n.d(t,{A:()=>h});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(8122),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{display:grid;margin:40px;grid-gap:80px;grid-template-columns:1fr 1fr}.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,6BACE,YAAa,CACb,WAAY,CACZ,aAAc,CACd,6BACF,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},8068:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},5617:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},6444:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},9131:(e,t,n)=>{"use strict";n.d(t,{A:()=>h});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(26),n.b),d=i()(o()),u=l()(c);d.push([e.id,`.menuButtonsPermalinkButtonButton:before{background-image:url(${u})}.menuButtonsPermalinkPanel .arrowPanelContent{padding:4px}.menuButtonsPermalinkTextField{font-family:ui-monospace,monospace;font-size:12px;height:19px;width:20em}`,"",{version:3,sources:["webpack://./src/components/app/MenuButtons/Permalink.css"],names:[],mappings:"AAMA,yCACE,wDACF,CAEA,8CAEE,WACF,CAEA,+BAKE,kCAAoC,CACpC,cAAe,CAJf,WAAY,CADZ,UAMF",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: 20em;\n height: 19px;\n\n /* Use a monospace font so that I and l can be differentiated */\n font-family: ui-monospace, monospace;\n font-size: 12px;\n}\n"],sourceRoot:""}]);const h=d},3453:(e,t,n)=>{"use strict";n.d(t,{A:()=>w});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(9653),n.b),d=new URL(n(9180),n.b),u=new URL(n(8981),n.b),h=new URL(n(4273),n.b),p=new URL(n(2390),n.b),m=new URL(n(129),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},4620:(e,t,n)=>{"use strict";n.d(t,{A:()=>y});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(2154),n.b),d=new URL(n(2707),n.b),u=new URL(n(9336),n.b),h=new URL(n(1716),n.b),p=new URL(n(3659),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},3951:(e,t,n)=>{"use strict";n.d(t,{A:()=>m});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(7216),n.b),d=new URL(n(3183),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},4821:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,'.profileFilterNavigator--tab-selector{align-items:center;column-gap:5px;display:flex;padding-inline:20px 5px}.profileFilterNavigator--tab-selector:before{border-color:currentcolor #0000 #0000;border-style:solid;border-width:6px 4px 0;color:var(--internal-selected-color);content:"";inset-block-start:4px;inset-inline-start:4px;margin:5px 5px 0;position:absolute}span.profileFilterNavigator--tab-selector:before{color:var(--grey-30)}',"",{version:3,sources:["webpack://./src/components/app/ProfileFilterNavigator.css"],names:[],mappings:"AAIA,sCAEE,kBAAmB,CACnB,cAAe,CAFf,YAAa,CAKb,uBACF,CAGA,6CAKE,qCAAkC,CAAlC,kBAAkC,CAAlC,sBAAkC,CAElC,oCAAqC,CACrC,UAAW,CACX,qBAAsB,CACtB,sBAAuB,CAJvB,gBAAiB,CALjB,iBAUF,CAEA,iDAEE,oBACF",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.profileFilterNavigator--tab-selector {\n display: flex;\n align-items: center;\n column-gap: 5px;\n\n /* Padding for the arrow on the left side and a bit on the other for hover. */\n padding-inline: 20px 5px;\n}\n\n/* This is the dropdown arrow on the left of the button. */\n.profileFilterNavigator--tab-selector::before {\n position: absolute;\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: 5px 5px 0;\n color: var(--internal-selected-color);\n content: '';\n inset-block-start: 4px;\n inset-inline-start: 4px;\n}\n\nspan.profileFilterNavigator--tab-selector::before {\n /* Disabled tab selector indicates this with a grayed out arrow. */\n color: var(--grey-30);\n}\n"],sourceRoot:""}]);const s=i},1683:(e,t,n)=>{"use strict";n.d(t,{A:()=>h});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(5947),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},717:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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:0s;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,kBAAoB,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},1520:(e,t,n)=>{"use strict";n.d(t,{A:()=>h});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(4564),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},7385:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},9309:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},1758:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},2305:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},8504:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},3672:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},290:(e,t,n)=>{"use strict";n.d(t,{A:()=>h});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(852),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;overflow:visible}.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,0BAIE,kBAAmB,CAHnB,YAAa,CAEb,uBAAwB,CADxB,gBAGF,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 overflow: visible;\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},0:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".flameGraphCanvas{left:0;position:absolute;top:0}.flameGraphCanvasTooltip{padding:5px}.flameGraphCanvasTooltip>.tooltipHeader{display:grid;grid-gap:2px 0;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,wCACE,YAAa,CACb,cAAe,CACf,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},2591:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},5133:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},5682:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},4909:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},4753:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},3769:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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}.treeViewFixedColumn.name{text-align:right;width:100px}.markerTable .treeRowToggleButton{display:none}","",{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,0BAEE,gBAAiB,CADjB,WAEF,CAEA,kCACE,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.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.treeViewFixedColumn.name {\n width: 100px;\n text-align: right;\n}\n\n.markerTable .treeRowToggleButton {\n display: none;\n}\n"],sourceRoot:""}]);const s=i},6169:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},6455:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},218:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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{max-height:calc(100vh - var(--internal-approx-distance-from-top) - var(--internal-button-height) - var(--internal-approx-distance-to-bottom));overflow:auto;padding:16px;--internal-approx-distance-from-top:60px;--internal-approx-distance-to-bottom:100px}',"",{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,mBAEE,6IAGC,CAJD,aAAc,CAKd,YAAa,CAEb,wCAAyC,CACzC,0CACF",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},3062:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},8479:(e,t,n)=>{"use strict";n.d(t,{A:()=>b});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(8619),n.b),d=new URL(n(3486),n.b),u=new URL(n(5799),n.b),h=new URL(n(1332),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},135:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,'.codeView{flex:1;flex-flow:column;min-height:0;--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)}.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{font-family:ui-monospace,Roboto Mono,monospace;hyphens:none;word-break:normal;word-spacing:normal;word-wrap: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,UAGE,MAAO,CACP,gBAAiB,CAFjB,YAAa,CAOb,iBAAkB,CAClB,oBAAqB,CAGrB,2CAA4C,CAC5C,uCAAwC,CACxC,yCAA0C,CAC1C,wCAAyC,CACzC,wCAAyC,CACzC,wCAAyC,CACzC,4CACF,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,YACE,8CAAmD,CACnD,YAAa,CACb,iBAAkB,CAClB,mBAAoB,CACpB,gBACF,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},291:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},2589:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},2971:(e,t,n)=>{"use strict";n.d(t,{A:()=>h});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(3717),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:has(button.profileFilterNavigator--tab-selector):hover,.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,8IAEE,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.filterNavigatorBarItem:has(button.profileFilterNavigator--tab-selector):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},1636:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},5609:(e,t,n)=>{"use strict";n.d(t,{A:()=>m});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(4391),n.b),d=new URL(n(8122),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{background:url(${p}) 0 0 no-repeat;background-size:contain;border:0;color:#0000;height:11px;overflow:hidden;padding:0;position:absolute;right:5px;width:11px;-moz-user-focus:ignore;vertical-align:middle}.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,uBAQE,gEACW,CACX,uBAAwB,CAHxB,QAAS,CAIT,WAAkB,CANlB,WAAY,CAFZ,eAAgB,CAGhB,SAAU,CALV,iBAAkB,CAClB,SAAU,CAEV,UAAW,CAQX,sBAAuB,CACvB,qBACF,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},9306:(e,t,n)=>{"use strict";n.d(t,{A:()=>_});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(3786),n.b),d=new URL(n(1392),n.b),u=new URL(n(3803),n.b),h=new URL(n(1863),n.b),p=new URL(n(1460),n.b),m=new URL(n(211),n.b),f=new URL(n(8998),n.b),g=new URL(n(6505),n.b),A=new URL(n(1824),n.b),b=new URL(n(5510),n.b),C=i()(o()),y=l()(c),v=l()(d),w=l()(u),E=l()(h),k=l()(p),x=l()(m),T=l()(f),S=l()(g),B=l()(A),I=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(${E})}.markerContextMenuIconEndSelectionAtMarkerEnd,.markerContextMenuIconEndSelectionHere{background-image:url(${k})}.markerContextMenuIconCopyDescription{background-image:url(${x})}.markerContextMenuIconCopyStack{background-image:url(${T})}.markerContextMenuIconCopyUrl{background-image:url(${S})}.markerContextMenuIconCopyPayload{background-image:url(${B})}.markerContextMenuSelectThread{background-image:url(${I})}.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 _=C},8734:(e,t,n)=>{"use strict";n.d(t,{A:()=>h});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(5995),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},226:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},489:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},6098:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},2787:(e,t,n)=>{"use strict";n.d(t,{A:()=>w});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(4273),n.b),d=new URL(n(6767),n.b),u=new URL(n(1986),n.b),h=new URL(n(2613),n.b),p=new URL(n(8232),n.b),m=new URL(n(4051),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},8585:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},976:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},1652:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".TabSelectorMenu{overflow-y:auto}.tabSelectorMenuItem.checkable{padding-inline:20px 10px}.react-contextmenu-item.tabSelectorMenuItem.checked:not(.react-contextmenu-item--disabled):before{inset-inline:8px 0}.tabSelectorMenuItem .nodeIcon{margin-inline-end:10px}","",{version:3,sources:["webpack://./src/components/shared/TabSelectorMenu.css"],names:[],mappings:"AAIA,iBAEE,eACF,CAEA,+BACE,wBACF,CAEA,kGAIE,kBACF,CAEA,+BACE,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.TabSelectorMenu {\n /* Make it scrollable if the tab list is too long. */\n overflow-y: auto;\n}\n\n.tabSelectorMenuItem.checkable {\n padding-inline: 20px 10px;\n}\n\n.react-contextmenu-item.tabSelectorMenuItem.checked:not(\n .react-contextmenu-item--disabled\n )::before {\n /* Move the checkmark to inline-start instead of right, as it's logically better. */\n inset-inline: 8px 0;\n}\n\n.tabSelectorMenuItem .nodeIcon {\n margin-inline-end: 10px;\n}\n"],sourceRoot:""}]);const s=i},92:(e,t,n)=>{"use strict";n.d(t,{A:()=>m});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(4391),n.b),d=new URL(n(8122),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{background:url(${p}) 0 0 no-repeat;background-size:contain;border:0;color:#0000;height:11px;overflow:hidden;padding:0;position:absolute;right:10px;width:11px;-moz-user-focus:ignore;vertical-align:middle}.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,wBAUE,gEACW,CACX,uBAAwB,CAHxB,QAAS,CAIT,WAAkB,CANlB,WAAY,CAFZ,eAAgB,CAGhB,SAAU,CAPV,iBAAkB,CAGlB,UAAW,CAEX,UAAW,CAQX,sBAAuB,CACvB,qBACF,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},5800:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},8268:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},7171:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},1172:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},4194:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},6503:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},5605:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},7408:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},5592:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,'.sidebar{background:var(--grey-10);border-top:1px solid var(--grey-30);font-size:11px;overflow:auto;--sidebar-indent:16px}.sidebar-contents-wrapper{line-height:1.5;margin:16px;margin-inline-start:11px;position:relative}.sidebar-calltree .sidebar-contents-wrapper{align-content:start;align-items:center;display:grid;grid-gap:2px 5px;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{display:grid;grid-gap:5px;grid-template-columns:min-content 1fr}.sidebar-title-label>:nth-child(2){color:var(--grey-50);text-align:end}.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:end;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-block-width:5px;border-color:#0000;border-inline-end-width:4px;border-inline-start-color:initial;border-inline-start-width:8px;border-style:solid;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,SAGE,yBAA0B,CAD1B,mCAAoC,CAEpC,cAAe,CAHf,aAAc,CAKd,qBACF,CAEA,0BAIE,eAAgB,CADhB,WAAY,CAIZ,wBAAqC,CALrC,iBAMF,CAEA,4CAEE,mBAAoB,CACpB,kBAAmB,CAFnB,YAAa,CAGb,gBAAiB,CACjB,iDAOF,CAEA,oDAIE,wBAAyB,CADzB,WAEF,CAGA,kFAKE,WAAY,CADZ,eAAgB,CAEhB,sBAAuB,CACvB,kBACF,CAEA,qBACE,YAAa,CACb,YAAa,CACb,qCACF,CAEA,mCACE,oBAAqB,CACrB,cACF,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,cAAe,CACf,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,uBAOE,eAAgB,CAChB,sBAAuB,CAHvB,kBAAyB,CAIzB,2BAA4B,CAC5B,iCAAuC,CACvC,6BAA8B,CAP9B,kBAAmB,CAQnB,UAAW,CATX,QAAS,CAGT,cAAe,CAOf,yBAA0B,CAZ1B,iBAAkB,CAClB,OAYF,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: end;\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: end;\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-style: solid;\n border-color: transparent;\n margin-top: 1px;\n background: none;\n border-block-width: 5px;\n border-inline-end-width: 4px;\n border-inline-start-color: currentcolor;\n border-inline-start-width: 8px;\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},2487:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},7559:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},6855:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},9659:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},8132:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},9697:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},4161:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},8829:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},1587:(e,t,n)=>{"use strict";n.d(t,{A:()=>h});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(5418),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));display:flex;flex:1;flex-direction:column;margin-left:var(--thread-label-column-width);position:relative;width:var(--content-width);-moz-user-focus:ignore}.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}.draggingEnd>.timelineSelectionGrippyRangeEnd,.draggingStart>.timelineSelectionGrippyRangeStart,.timelineSelectionGrippyRangeEnd:hover,.timelineSelectionGrippyRangeStart:hover,:not(.draggingStart,.draggingEnd)>.timelineSelectionGrippyRangeEnd.dragging,:not(.draggingStart,.draggingEnd)>.timelineSelectionGrippyRangeStart.dragging{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,CAGD,YAAa,CAEb,MAAO,CACP,qBAAsB,CACtB,4CAA6C,CAL7C,iBAAkB,CAElB,0BAA2B,CAI3B,sBACF,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,CAQA,0UAOE,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/* The :not() selectors are to handle the edge case where the mouse is pressed\n * on a grippy, then the pointer is moved down (above the first track) but not\n * moved horizontally.\n * In that case, because selectionDeltas are 0, the draggingStart/draggingEnd\n * classes are not set, and the grippy is not hovered, so it would be light\n * grey until the mouse is moved horizontally. */\n.timelineSelectionGrippyRangeStart:hover,\n.draggingStart > .timelineSelectionGrippyRangeStart,\n:not(.draggingStart, .draggingEnd)\n > .timelineSelectionGrippyRangeStart.dragging,\n.timelineSelectionGrippyRangeEnd:hover,\n.draggingEnd > .timelineSelectionGrippyRangeEnd,\n:not(.draggingStart, .draggingEnd) > .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},348:(e,t,n)=>{"use strict";n.d(t,{A:()=>h});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a),s=n(4417),l=n.n(s),c=new URL(n(1196),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{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;-moz-user-focus:ignore}.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,0BAQE,gEAAqE,CACrE,6BAA8B,CAC9B,uBAAwB,CAJxB,QAAS,CACT,iBAAkB,CAIlB,WAAkB,CAPlB,aAAc,CADd,WAAY,CASZ,qBAAsB,CAXtB,eAAgB,CAIhB,WAAY,CAHZ,UAAW,CAWX,sBACF,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},8601:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".timelineTrackBandwidthGraph{height:var(--graph-height);position:relative;width:100%}.timelineTrackBandwidthCanvas{height:100%;position:absolute;width:100%}.timelineTrackBandwidthGraphDot{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/TrackBandwidth.css"],names:[],mappings:"AAIA,6BAGE,0BAA2B,CAF3B,iBAAkB,CAClB,UAEF,CAEA,8BAGE,WAAY,CAFZ,iBAAkB,CAClB,UAEF,CAEA,gCAIE,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.timelineTrackBandwidthGraph {\n position: relative;\n width: 100%;\n height: var(--graph-height);\n}\n\n.timelineTrackBandwidthCanvas {\n position: absolute;\n width: 100%;\n height: 100%;\n}\n\n.timelineTrackBandwidthGraphDot {\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},6558:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},6487:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},3989:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},8004:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},4165:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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{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,6BAIE,iBAAkB,CADlB,UAAW,CAGX,gBAAiB,CADjB,eAAgB,CAEhB,mBAAoB,CANpB,iBAAkB,CAClB,SAMF,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 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},1228:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},1501:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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{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,4BAIE,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.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 pointer-events: none;\n}\n"],sourceRoot:""}]);const s=i},8527:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},4557:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},6648:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},5705:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},7721:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},7793:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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:hidden 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,wCAUE,mLAOC,CAXD,WAAY,CAGZ,qDAAwD,CADxD,8DAAiE,CAJjE,oBAAqB,CAGrB,6CAA8C,CAN9C,iBAAkB,CAIlB,UAaF,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\n /* 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: hidden auto;\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}\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},797:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".tooltipCallNodeCategory{align-items:center;border-top:1px solid var(--grey-40);display:grid;padding-bottom:10px;grid-gap:4px;grid-template-columns:repeat(4,min-content)}.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{display:flex;flex-direction:column;gap:2px;height:10px;width:150px}.tooltipCallNodeGraphMeter{appearance:none;background:var(--grey-90-a10);flex:1;height:0}.tooltipCallNodeGraphMeterBar{border-inline-end:1px solid var(--grey-50);box-sizing:border-box;height:100%}.tooltipCallNodeCategory .tooltipCategoryRowHeader{font-weight:700;margin-top:12px}.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}","",{version:3,sources:["webpack://./src/components/tooltip/CallNode.css"],names:[],mappings:"AAIA,yBAEE,kBAAmB,CAEnB,mCAAoC,CAHpC,YAAa,CAEb,mBAAoB,CAEpB,YAAa,CACb,2CACF,CAEA,uBAEE,qCAAsC,CAEtC,oBAAqB,CADrB,cAAe,CAFf,aAAc,CAId,kBACF,CAEA,qBACE,kBACF,CAGA,sBACE,YAAa,CAGb,qBAAsB,CACtB,OAAQ,CAFR,WAAY,CADZ,WAIF,CAGA,2BAKE,eAAgB,CAChB,6BAA8B,CAF9B,MAAO,CADP,QAIF,CAGA,8BAME,0CAA2C,CAJ3C,qBAAsB,CADtB,WAMF,CAEA,mDAEE,eAAiB,CADjB,eAEF,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",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.tooltipCallNodeCategory {\n display: grid;\n align-items: center;\n padding-bottom: 10px;\n border-top: 1px solid var(--grey-40);\n grid-gap: 4px;\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/* This contains the 2 meters (self and total sample count values). */\n.tooltipCallNodeGraph {\n display: flex;\n width: 150px;\n height: 10px;\n flex-direction: column;\n gap: 2px;\n}\n\n/* This is just one meter (either self or total sample count values). */\n.tooltipCallNodeGraphMeter {\n /* It's not fully clear why height: 0 is needed here, but otherwise the meter\n * has a height of 11px despite the parent's 10px height... */\n height: 0;\n flex: 1;\n appearance: none;\n background: var(--grey-90-a10);\n}\n\n/* This is the bar inside the meter. */\n.tooltipCallNodeGraphMeterBar {\n height: 100%;\n box-sizing: border-box;\n\n /* Some colors don't have enough contrast (yellow for JavaScript, white for\n * Idle), therefore adding a border improves accessibility. */\n border-inline-end: 1px solid var(--grey-50);\n}\n\n.tooltipCallNodeCategory .tooltipCategoryRowHeader {\n margin-top: 12px;\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"],sourceRoot:""}]);const s=i},5887:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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},9525:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),i=n.n(a)()(o());i.push([e.id,".tooltipNetwork{width:600px}.tooltipNetworkPhases{border-top:1px solid var(--grey-40);display:grid;margin-top:4px;padding-top:4px;grid-gap:2px 5px;grid-template-columns:min-content min-content auto}.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,sBAGE,mCAAoC,CAFpC,YAAa,CAGb,cAAe,CAFf,eAAgB,CAGhB,gBAAiB,CAIjB,kDACF,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},4004:(e,t,n)=>{"use strict";n.d(t,{A:()=>s});var r=n(1354),o=n.n(r),a=n(6314),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}.tooltip.clickable{pointer-events:auto}.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{display:grid;grid-gap:2px 5px;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{overflow:hidden;grid-gap:2px 0;grid-template-columns:minmax(0,1fr)}.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,mBAEE,mBACF,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,gBACE,YAAa,CACb,gBAAiB,CAIjB,+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,yBAEE,eAAgB,CAChB,cAAe,CAGf,mCACF,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.tooltip.clickable {\n /* Make sure that the pointer events are properly triggered if it's clickable */\n pointer-events: auto;\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},6314: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}},4417: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}},1354: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")}},2834:e=>{"use strict";e.exports=e=>{if("string"!=typeof e)throw new TypeError("Expected a string");return e.replace(/[|\\{}()[\]^$+*?.]/g,"\\$&").replace(/-/g,"\\x2d")}},1710:(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,5)===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~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~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,E="",k="",x="",T=p.dir,S=p.date,B={crc32:0,compressedSize:0,uncompressedSize:0};t&&!n||(B.crc32=e.crc32,B.compressedSize=e.compressedSize,B.uncompressedSize=e.uncompressedSize);var I=0;t&&(I|=8),f||!v&&!w||(I|=2048);var _=0,P=0;T&&(_|=16),"UNIX"===i?(P=798,_|=function(e,t){var n=e;return e||(n=t?16893:33204),(65535&n)<<16}(p.unixPermissions,T)):(P=20,_|=function(e){return 63&(e||0)}(p.dosPermissions)),u=S.getUTCHours(),u<<=6,u|=S.getUTCMinutes(),u<<=5,u|=S.getUTCSeconds()/2,h=S.getUTCFullYear()-1980,h<<=4,h|=S.getUTCMonth()+1,h<<=5,h|=S.getUTCDate(),v&&(k=r(1,1)+r(l(g),4)+A,E+="up"+r(k.length,2)+k),w&&(x=r(1,1)+r(l(C),4)+y,E+="uc"+r(x.length,2)+x);var N="";return N+="\n\0",N+=r(I,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(E.length,2),{fileRecord:c.LOCAL_FILE_HEADER+N+g+E,dirRecord:c.CENTRAL_FILE_HEADER+r(P,2)+N+r(C.length,2)+"\0\0\0\0"+r(_,4)+r(o,4)+g+E+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&~this.bitFlag)},useUTF8:function(){return!(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&&!(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,a=e>>>16&65535,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}},{}],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~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=0,u=-2,h=2,p=8,m=286,f=30,g=19,A=2*m+1,b=15,C=3,y=258,v=y+C+1,w=42,E=113;function k(e,t){return e.msg=l[t],t}function x(e){return(e<<1)-(4<e?9:0)}function T(e){for(var t=e.length;0<=--t;)e[t]=0}function S(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 B(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,S(e.strm)}function I(e,t){e.pending_buf[e.pending++]=t}function _(e,t){e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=255&t}function P(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-v?e.strstart-(e.w_size-v):0,c=e.window,d=e.w_mask,u=e.prev,h=e.strstart+y,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=y-(h-a),a=h-y,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 N(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-v)){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>=C)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+C-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<C)););}while(e.lookahead<v&&0!==e.strm.avail_in)}function M(e,t){for(var n,r;;){if(e.lookahead<v){if(N(e),e.lookahead<v&&t===c)return 1;if(0===e.lookahead)break}if(n=0,e.lookahead>=C&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+C-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-v&&(e.match_length=P(e,n)),e.match_length>=C)if(r=a._tr_tally(e,e.strstart-e.match_start,e.match_length-C),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=C){for(e.match_length--;e.strstart++,e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+C-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&&(B(e,!1),0===e.strm.avail_out))return 1}return e.insert=e.strstart<C-1?e.strstart:C-1,4===t?(B(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(B(e,!1),0===e.strm.avail_out)?1:2}function F(e,t){for(var n,r,o;;){if(e.lookahead<v){if(N(e),e.lookahead<v&&t===c)return 1;if(0===e.lookahead)break}if(n=0,e.lookahead>=C&&(e.ins_h=(e.ins_h<<e.hash_shift^e.window[e.strstart+C-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=C-1,0!==n&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-v&&(e.match_length=P(e,n),e.match_length<=5&&(1===e.strategy||e.match_length===C&&4096<e.strstart-e.match_start)&&(e.match_length=C-1)),e.prev_length>=C&&e.match_length<=e.prev_length){for(o=e.strstart+e.lookahead-C,r=a._tr_tally(e,e.strstart-1-e.prev_match,e.prev_length-C),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+C-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=C-1,e.strstart++,r&&(B(e,!1),0===e.strm.avail_out))return 1}else if(e.match_available){if((r=a._tr_tally(e,0,e.window[e.strstart-1]))&&B(e,!1),e.strstart++,e.lookahead--,0===e.strm.avail_out)return 1}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<C-1?e.strstart:C-1,4===t?(B(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(B(e,!1),0===e.strm.avail_out)?1:2}function R(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 D(){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=p,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*A),this.dyn_dtree=new o.Buf16(2*(2*f+1)),this.bl_tree=new o.Buf16(2*(2*g+1)),T(this.dyn_ltree),T(this.dyn_dtree),T(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new o.Buf16(b+1),this.heap=new o.Buf16(2*m+1),T(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new o.Buf16(2*m+1),T(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 L(e){var t;return e&&e.state?(e.total_in=e.total_out=0,e.data_type=h,(t=e.state).pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap?w:E,e.adler=2===t.wrap?0:1,t.last_flush=c,a._tr_init(t),d):k(e,u)}function O(e){var t=L(e);return t===d&&function(e){e.window_size=2*e.w_size,T(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=C-1,e.match_available=0,e.ins_h=0}(e.state),t}function U(e,t,n,r,a,i){if(!e)return u;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!==p||r<8||15<r||t<0||9<t||i<0||4<i)return k(e,u);8===r&&(r=9);var l=new D;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+C-1)/C),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,O(e)}r=[new R(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(N(e),0===e.lookahead&&t===c)return 1;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,B(e,!1),0===e.strm.avail_out))return 1;if(e.strstart-e.block_start>=e.w_size-v&&(B(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(B(e,!0),0===e.strm.avail_out?3:4):(e.strstart>e.block_start&&(B(e,!1),e.strm.avail_out),1)})),new R(4,4,8,4,M),new R(4,5,16,8,M),new R(4,6,32,32,M),new R(4,4,16,16,F),new R(8,16,32,32,F),new R(8,16,128,128,F),new R(8,32,128,256,F),new R(32,128,258,1024,F),new R(32,258,258,4096,F)],n.deflateInit=function(e,t){return U(e,t,p,15,8,0)},n.deflateInit2=U,n.deflateReset=O,n.deflateResetKeep=L,n.deflateSetHeader=function(e,t){return e&&e.state?2!==e.state.wrap?u:(e.state.gzhead=t,d):u},n.deflate=function(e,t){var n,o,i,l;if(!e||!e.state||5<t||t<0)return e?k(e,u):u;if(o=e.state,!e.output||!e.input&&0!==e.avail_in||666===o.status&&4!==t)return k(e,0===e.avail_out?-5:u);if(o.strm=e,n=o.last_flush,o.last_flush=t,o.status===w)if(2===o.wrap)e.adler=0,I(o,31),I(o,139),I(o,8),o.gzhead?(I(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)),I(o,255&o.gzhead.time),I(o,o.gzhead.time>>8&255),I(o,o.gzhead.time>>16&255),I(o,o.gzhead.time>>24&255),I(o,9===o.level?2:2<=o.strategy||o.level<2?4:0),I(o,255&o.gzhead.os),o.gzhead.extra&&o.gzhead.extra.length&&(I(o,255&o.gzhead.extra.length),I(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):(I(o,0),I(o,0),I(o,0),I(o,0),I(o,0),I(o,9===o.level?2:2<=o.strategy||o.level<2?4:0),I(o,3),o.status=E);else{var h=p+(o.w_bits-8<<4)<<8;h|=(2<=o.strategy||o.level<2?0:o.level<6?1:6===o.level?2:3)<<6,0!==o.strstart&&(h|=32),h+=31-h%31,o.status=E,_(o,h),0!==o.strstart&&(_(o,e.adler>>>16),_(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)),S(e),i=o.pending,o.pending!==o.pending_buf_size));)I(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)),S(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,I(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)),S(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,I(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&&S(e),o.pending+2<=o.pending_buf_size&&(I(o,255&e.adler),I(o,e.adler>>8&255),e.adler=0,o.status=E)):o.status=E),0!==o.pending){if(S(e),0===e.avail_out)return o.last_flush=-1,d}else if(0===e.avail_in&&x(t)<=x(n)&&4!==t)return k(e,-5);if(666===o.status&&0!==e.avail_in)return k(e,-5);if(0!==e.avail_in||0!==o.lookahead||t!==c&&666!==o.status){var m=2===o.strategy?function(e,t){for(var n;;){if(0===e.lookahead&&(N(e),0===e.lookahead)){if(t===c)return 1;break}if(e.match_length=0,n=a._tr_tally(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&(B(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(B(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(B(e,!1),0===e.strm.avail_out)?1:2}(o,t):3===o.strategy?function(e,t){for(var n,r,o,i,s=e.window;;){if(e.lookahead<=y){if(N(e),e.lookahead<=y&&t===c)return 1;if(0===e.lookahead)break}if(e.match_length=0,e.lookahead>=C&&0<e.strstart&&(r=s[o=e.strstart-1])===s[++o]&&r===s[++o]&&r===s[++o]){i=e.strstart+y;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=y-(i-o),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=C?(n=a._tr_tally(e,1,e.match_length-C),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&&(B(e,!1),0===e.strm.avail_out))return 1}return e.insert=0,4===t?(B(e,!0),0===e.strm.avail_out?3:4):e.last_lit&&(B(e,!1),0===e.strm.avail_out)?1:2}(o,t):r[o.level].func(o,t);if(3!==m&&4!==m||(o.status=666),1===m||3===m)return 0===e.avail_out&&(o.last_flush=-1),d;if(2===m&&(1===t?a._tr_align(o):5!==t&&(a._tr_stored_block(o,0,0,!1),3===t&&(T(o.head),0===o.lookahead&&(o.strstart=0,o.block_start=0,o.insert=0))),S(e),0===e.avail_out))return o.last_flush=-1,d}return 4!==t?d:o.wrap<=0?1:(2===o.wrap?(I(o,255&e.adler),I(o,e.adler>>8&255),I(o,e.adler>>16&255),I(o,e.adler>>24&255),I(o,255&e.total_in),I(o,e.total_in>>8&255),I(o,e.total_in>>16&255),I(o,e.total_in>>24&255)):(_(o,e.adler>>>16),_(o,65535&e.adler)),S(e),0<o.wrap&&(o.wrap=-o.wrap),0!==o.pending?d:1)},n.deflateEnd=function(e){var t;return e&&e.state?(t=e.state.status)!==w&&69!==t&&73!==t&&91!==t&&103!==t&&t!==E&&666!==t?k(e,u):(e.state=null,t===E?k(e,-3):d):u},n.deflateSetDictionary=function(e,t){var n,r,a,s,l,c,h,p,m=t.length;if(!e||!e.state)return u;if(2===(s=(n=e.state).wrap)||1===s&&n.status!==w||n.lookahead)return u;for(1===s&&(e.adler=i(e.adler,t,m,0)),n.wrap=0,m>=n.w_size&&(0===s&&(T(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,h=e.input,e.avail_in=m,e.next_in=0,e.input=t,N(n);n.lookahead>=C;){for(r=n.strstart,a=n.lookahead-(C-1);n.ins_h=(n.ins_h<<n.hash_shift^n.window[r+C-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=C-1,N(n)}return n.strstart+=n.lookahead,n.block_start=n.strstart,n.insert=n.lookahead,n.lookahead=0,n.match_length=n.prev_length=C-1,n.match_available=0,e.next_in=c,e.input=h,e.avail_in=l,n.wrap=s,d},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,E,k,x,T;n=e.state,r=e.next_in,x=e.input,o=r+(e.avail_in-5),a=e.next_out,T=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))T[a++]=65535&C;else{if(!(16&y)){if(!(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(!(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(k=h,(E=0)===u){if(E+=c-y,y<v){for(v-=y;T[a++]=h[E++],--y;);E=a-w,k=T}}else if(u<y){if(E+=c+u-y,(y-=u)<v){for(v-=y;T[a++]=h[E++],--y;);if(E=0,u<v){for(v-=y=u;T[a++]=h[E++],--y;);E=a-w,k=T}}}else if(E+=u-y,y<v){for(v-=y;T[a++]=h[E++],--y;);E=a-w,k=T}for(;2<v;)T[a++]=k[E++],T[a++]=k[E++],T[a++]=k[E++],v-=3;v&&(T[a++]=k[E++],1<v&&(T[a++]=k[E++]))}else{for(E=a-w;T[a++]=T[E++],T[a++]=T[E++],T[a++]=T[E++],2<(v-=3););v&&(T[a++]=T[E++],1<v&&(T[a++]=T[E++]))}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=0,c=-2,d=1,u=852,h=592;function p(e){return(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function m(){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 f(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=d,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(u),t.distcode=t.distdyn=new r.Buf32(h),t.sane=1,t.back=-1,l):c}function g(e){var t;return e&&e.state?((t=e.state).wsize=0,t.whave=0,t.wnext=0,f(e)):c}function A(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)?c:(null!==r.window&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,g(e))):c}function b(e,t){var n,r;return e?(r=new m,(e.state=r).window=null,(n=A(e,t))!==l&&(e.state=null),n):c}var C,y,v=!0;function w(e){if(v){var t;for(C=new r.Buf32(512),y=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(1,e.lens,0,288,C,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;s(2,e.lens,0,32,y,0,e.work,{bits:5}),v=!1}e.lencode=C,e.lenbits=9,e.distcode=y,e.distbits=5}function E(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=g,n.inflateReset2=A,n.inflateResetKeep=f,n.inflateInit=function(e){return b(e,15)},n.inflateInit2=b,n.inflate=function(e,t){var n,u,h,m,f,g,A,b,C,y,v,k,x,T,S,B,I,_,P,N,M,F,R,D,L=0,O=new r.Buf8(4),U=[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 c;12===(n=e.state).mode&&(n.mode=13),f=e.next_out,h=e.output,A=e.avail_out,m=e.next_in,u=e.input,g=e.avail_in,b=n.hold,C=n.bits,y=g,v=A,F=l;e:for(;;)switch(n.mode){case d:if(0===n.wrap){n.mode=13;break}for(;C<16;){if(0===g)break e;g--,b+=u[m++]<<C,C+=8}if(2&n.wrap&&35615===b){O[n.check=0]=255&b,O[1]=b>>>8&255,n.check=a(n.check,O,2,0),C=b=0,n.mode=2;break}if(n.flags=0,n.head&&(n.head.done=!1),!(1&n.wrap)||(((255&b)<<8)+(b>>8))%31){e.msg="incorrect header check",n.mode=30;break}if(8!=(15&b)){e.msg="unknown compression method",n.mode=30;break}if(C-=4,M=8+(15&(b>>>=4)),0===n.wbits)n.wbits=M;else if(M>n.wbits){e.msg="invalid window size",n.mode=30;break}n.dmax=1<<M,e.adler=n.check=1,n.mode=512&b?10:12,C=b=0;break;case 2:for(;C<16;){if(0===g)break e;g--,b+=u[m++]<<C,C+=8}if(n.flags=b,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=b>>8&1),512&n.flags&&(O[0]=255&b,O[1]=b>>>8&255,n.check=a(n.check,O,2,0)),C=b=0,n.mode=3;case 3:for(;C<32;){if(0===g)break e;g--,b+=u[m++]<<C,C+=8}n.head&&(n.head.time=b),512&n.flags&&(O[0]=255&b,O[1]=b>>>8&255,O[2]=b>>>16&255,O[3]=b>>>24&255,n.check=a(n.check,O,4,0)),C=b=0,n.mode=4;case 4:for(;C<16;){if(0===g)break e;g--,b+=u[m++]<<C,C+=8}n.head&&(n.head.xflags=255&b,n.head.os=b>>8),512&n.flags&&(O[0]=255&b,O[1]=b>>>8&255,n.check=a(n.check,O,2,0)),C=b=0,n.mode=5;case 5:if(1024&n.flags){for(;C<16;){if(0===g)break e;g--,b+=u[m++]<<C,C+=8}n.length=b,n.head&&(n.head.extra_len=b),512&n.flags&&(O[0]=255&b,O[1]=b>>>8&255,n.check=a(n.check,O,2,0)),C=b=0}else n.head&&(n.head.extra=null);n.mode=6;case 6:if(1024&n.flags&&(g<(k=n.length)&&(k=g),k&&(n.head&&(M=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),r.arraySet(n.head.extra,u,m,k,M)),512&n.flags&&(n.check=a(n.check,u,k,m)),g-=k,m+=k,n.length-=k),n.length))break e;n.length=0,n.mode=7;case 7:if(2048&n.flags){if(0===g)break e;for(k=0;M=u[m+k++],n.head&&M&&n.length<65536&&(n.head.name+=String.fromCharCode(M)),M&&k<g;);if(512&n.flags&&(n.check=a(n.check,u,k,m)),g-=k,m+=k,M)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=8;case 8:if(4096&n.flags){if(0===g)break e;for(k=0;M=u[m+k++],n.head&&M&&n.length<65536&&(n.head.comment+=String.fromCharCode(M)),M&&k<g;);if(512&n.flags&&(n.check=a(n.check,u,k,m)),g-=k,m+=k,M)break e}else n.head&&(n.head.comment=null);n.mode=9;case 9:if(512&n.flags){for(;C<16;){if(0===g)break e;g--,b+=u[m++]<<C,C+=8}if(b!==(65535&n.check)){e.msg="header crc mismatch",n.mode=30;break}C=b=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(;C<32;){if(0===g)break e;g--,b+=u[m++]<<C,C+=8}e.adler=n.check=p(b),C=b=0,n.mode=11;case 11:if(0===n.havedict)return e.next_out=f,e.avail_out=A,e.next_in=m,e.avail_in=g,n.hold=b,n.bits=C,2;e.adler=n.check=1,n.mode=12;case 12:if(5===t||6===t)break e;case 13:if(n.last){b>>>=7&C,C-=7&C,n.mode=27;break}for(;C<3;){if(0===g)break e;g--,b+=u[m++]<<C,C+=8}switch(n.last=1&b,C-=1,3&(b>>>=1)){case 0:n.mode=14;break;case 1:if(w(n),n.mode=20,6!==t)break;b>>>=2,C-=2;break e;case 2:n.mode=17;break;case 3:e.msg="invalid block type",n.mode=30}b>>>=2,C-=2;break;case 14:for(b>>>=7&C,C-=7&C;C<32;){if(0===g)break e;g--,b+=u[m++]<<C,C+=8}if((65535&b)!=(b>>>16^65535)){e.msg="invalid stored block lengths",n.mode=30;break}if(n.length=65535&b,C=b=0,n.mode=15,6===t)break e;case 15:n.mode=16;case 16:if(k=n.length){if(g<k&&(k=g),A<k&&(k=A),0===k)break e;r.arraySet(h,u,m,k,f),g-=k,m+=k,A-=k,f+=k,n.length-=k;break}n.mode=12;break;case 17:for(;C<14;){if(0===g)break e;g--,b+=u[m++]<<C,C+=8}if(n.nlen=257+(31&b),b>>>=5,C-=5,n.ndist=1+(31&b),b>>>=5,C-=5,n.ncode=4+(15&b),b>>>=4,C-=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(;C<3;){if(0===g)break e;g--,b+=u[m++]<<C,C+=8}n.lens[U[n.have++]]=7&b,b>>>=3,C-=3}for(;n.have<19;)n.lens[U[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,R={bits:n.lenbits},F=s(0,n.lens,0,19,n.lencode,0,n.work,R),n.lenbits=R.bits,F){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(;B=(L=n.lencode[b&(1<<n.lenbits)-1])>>>16&255,I=65535&L,!((S=L>>>24)<=C);){if(0===g)break e;g--,b+=u[m++]<<C,C+=8}if(I<16)b>>>=S,C-=S,n.lens[n.have++]=I;else{if(16===I){for(D=S+2;C<D;){if(0===g)break e;g--,b+=u[m++]<<C,C+=8}if(b>>>=S,C-=S,0===n.have){e.msg="invalid bit length repeat",n.mode=30;break}M=n.lens[n.have-1],k=3+(3&b),b>>>=2,C-=2}else if(17===I){for(D=S+3;C<D;){if(0===g)break e;g--,b+=u[m++]<<C,C+=8}C-=S,M=0,k=3+(7&(b>>>=S)),b>>>=3,C-=3}else{for(D=S+7;C<D;){if(0===g)break e;g--,b+=u[m++]<<C,C+=8}C-=S,M=0,k=11+(127&(b>>>=S)),b>>>=7,C-=7}if(n.have+k>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=30;break}for(;k--;)n.lens[n.have++]=M}}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,R={bits:n.lenbits},F=s(1,n.lens,0,n.nlen,n.lencode,0,n.work,R),n.lenbits=R.bits,F){e.msg="invalid literal/lengths set",n.mode=30;break}if(n.distbits=6,n.distcode=n.distdyn,R={bits:n.distbits},F=s(2,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,R),n.distbits=R.bits,F){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<=g&&258<=A){e.next_out=f,e.avail_out=A,e.next_in=m,e.avail_in=g,n.hold=b,n.bits=C,i(e,v),f=e.next_out,h=e.output,A=e.avail_out,m=e.next_in,u=e.input,g=e.avail_in,b=n.hold,C=n.bits,12===n.mode&&(n.back=-1);break}for(n.back=0;B=(L=n.lencode[b&(1<<n.lenbits)-1])>>>16&255,I=65535&L,!((S=L>>>24)<=C);){if(0===g)break e;g--,b+=u[m++]<<C,C+=8}if(B&&!(240&B)){for(_=S,P=B,N=I;B=(L=n.lencode[N+((b&(1<<_+P)-1)>>_)])>>>16&255,I=65535&L,!(_+(S=L>>>24)<=C);){if(0===g)break e;g--,b+=u[m++]<<C,C+=8}b>>>=_,C-=_,n.back+=_}if(b>>>=S,C-=S,n.back+=S,n.length=I,0===B){n.mode=26;break}if(32&B){n.back=-1,n.mode=12;break}if(64&B){e.msg="invalid literal/length code",n.mode=30;break}n.extra=15&B,n.mode=22;case 22:if(n.extra){for(D=n.extra;C<D;){if(0===g)break e;g--,b+=u[m++]<<C,C+=8}n.length+=b&(1<<n.extra)-1,b>>>=n.extra,C-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=23;case 23:for(;B=(L=n.distcode[b&(1<<n.distbits)-1])>>>16&255,I=65535&L,!((S=L>>>24)<=C);){if(0===g)break e;g--,b+=u[m++]<<C,C+=8}if(!(240&B)){for(_=S,P=B,N=I;B=(L=n.distcode[N+((b&(1<<_+P)-1)>>_)])>>>16&255,I=65535&L,!(_+(S=L>>>24)<=C);){if(0===g)break e;g--,b+=u[m++]<<C,C+=8}b>>>=_,C-=_,n.back+=_}if(b>>>=S,C-=S,n.back+=S,64&B){e.msg="invalid distance code",n.mode=30;break}n.offset=I,n.extra=15&B,n.mode=24;case 24:if(n.extra){for(D=n.extra;C<D;){if(0===g)break e;g--,b+=u[m++]<<C,C+=8}n.offset+=b&(1<<n.extra)-1,b>>>=n.extra,C-=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===A)break e;if(k=v-A,n.offset>k){if((k=n.offset-k)>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=30;break}x=k>n.wnext?(k-=n.wnext,n.wsize-k):n.wnext-k,k>n.length&&(k=n.length),T=n.window}else T=h,x=f-n.offset,k=n.length;for(A<k&&(k=A),A-=k,n.length-=k;h[f++]=T[x++],--k;);0===n.length&&(n.mode=21);break;case 26:if(0===A)break e;h[f++]=n.length,A--,n.mode=21;break;case 27:if(n.wrap){for(;C<32;){if(0===g)break e;g--,b|=u[m++]<<C,C+=8}if(v-=A,e.total_out+=v,n.total+=v,v&&(e.adler=n.check=n.flags?a(n.check,h,v,f-v):o(n.check,h,v,f-v)),v=A,(n.flags?b:p(b))!==n.check){e.msg="incorrect data check",n.mode=30;break}C=b=0}n.mode=28;case 28:if(n.wrap&&n.flags){for(;C<32;){if(0===g)break e;g--,b+=u[m++]<<C,C+=8}if(b!==(4294967295&n.total)){e.msg="incorrect length check",n.mode=30;break}C=b=0}n.mode=29;case 29:F=1;break e;case 30:F=-3;break e;case 31:return-4;default:return c}return e.next_out=f,e.avail_out=A,e.next_in=m,e.avail_in=g,n.hold=b,n.bits=C,(n.wsize||v!==e.avail_out&&n.mode<30&&(n.mode<27||4!==t))&&E(e,e.output,e.next_out,v-e.avail_out)?(n.mode=31,-4):(y-=e.avail_in,v-=e.avail_out,e.total_in+=y,e.total_out+=v,n.total+=v,n.wrap&&v&&(e.adler=n.check=n.flags?a(n.check,h,v,e.next_out-v):o(n.check,h,v,e.next_out-v)),e.data_type=n.bits+(n.last?64:0)+(12===n.mode?128:0)+(20===n.mode||15===n.mode?256:0),(0==y&&0===v||4===t)&&F===l&&(F=-5),F)},n.inflateEnd=function(e){if(!e||!e.state)return c;var t=e.state;return t.window&&(t.window=null),e.state=null,l},n.inflateGetHeader=function(e,t){var n;return e&&e.state&&2&(n=e.state).wrap?((n.head=t).done=!1,l):c},n.inflateSetDictionary=function(e,t){var n,r=t.length;return e&&e.state?0!==(n=e.state).wrap&&11!==n.mode?c:11===n.mode&&o(1,t,r,0)!==n.check?-3:E(e,t,r,r)?(n.mode=31,-4):(n.havedict=1,l):c},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,E=0,k=0,x=0,T=0,S=0,B=0,I=0,_=0,P=0,N=0,M=null,F=0,R=new r.Buf16(16),D=new r.Buf16(16),L=null,O=0;for(E=0;E<=15;E++)R[E]=0;for(k=0;k<l;k++)R[t[n+k]]++;for(S=w,T=15;1<=T&&0===R[T];T--);if(T<S&&(S=T),0===T)return c[d++]=20971520,c[d++]=20971520,h.bits=1,0;for(x=1;x<T&&0===R[x];x++);for(S<x&&(S=x),E=_=1;E<=15;E++)if(_<<=1,(_-=R[E])<0)return-1;if(0<_&&(0===e||1!==T))return-1;for(D[1]=0,E=1;E<15;E++)D[E+1]=D[E]+R[E];for(k=0;k<l;k++)0!==t[n+k]&&(u[D[t[n+k]]++]=k);if(b=0===e?(M=L=u,19):1===e?(M=o,F-=257,L=a,O-=257,256):(M=i,L=s,-1),E=x,A=d,I=k=N=0,f=-1,g=(P=1<<(B=S))-1,1===e&&852<P||2===e&&592<P)return 1;for(;;){for(C=E-I,v=u[k]<b?(y=0,u[k]):u[k]>b?(y=L[O+u[k]],M[F+u[k]]):(y=96,0),p=1<<E-I,x=m=1<<B;c[A+(N>>I)+(m-=p)]=C<<24|y<<16|v,0!==m;);for(p=1<<E-1;N&p;)p>>=1;if(0!==p?(N&=p-1,N+=p):N=0,k++,0==--R[E]){if(E===T)break;E=t[n+u[k]]}if(S<E&&(N&g)!==f){for(0===I&&(I=S),A+=x,_=1<<(B=E-I);B+I<T&&!((_-=R[B+I])<=0);)B++,_<<=1;if(P+=1<<B,1===e&&852<P||2===e&&592<P)return 1;c[f=N&g]=S<<24|B<<16|A-d}}return 0!==N&&(c[A+N]=E-I<<24|64<<16),h.bits=S,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=286,s=30,l=15,c=16,d=[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],u=[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],h=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],p=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],m=new Array(576);o(m);var f=new Array(60);o(f);var g=new Array(512);o(g);var A=new Array(256);o(A);var b=new Array(29);o(b);var C,y,v,w=new Array(s);function E(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 k(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}function x(e){return e<256?g[e]:g[256+(e>>>7)]}function T(e,t){e.pending_buf[e.pending++]=255&t,e.pending_buf[e.pending++]=t>>>8&255}function S(e,t,n){e.bi_valid>c-n?(e.bi_buf|=t<<e.bi_valid&65535,T(e,e.bi_buf),e.bi_buf=t>>c-e.bi_valid,e.bi_valid+=n-c):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)}function B(e,t,n){S(e,n[2*t],n[2*t+1])}function I(e,t){for(var n=0;n|=1&e,e>>>=1,n<<=1,0<--t;);return n>>>1}function _(e,t,n){var r,o,a=new Array(l+1),i=0;for(r=1;r<=l;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]=I(a[s]++,s))}}function P(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<19;t++)e.bl_tree[2*t]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.last_lit=e.matches=0}function N(e){8<e.bi_valid?T(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 M(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 F(e,t,n){for(var r=e.heap[n],o=n<<1;o<=e.heap_len&&(o<e.heap_len&&M(t,e.heap[o+1],e.heap[o],e.depth)&&o++,!M(t,r,e.heap[o],e.depth));)e.heap[n]=e.heap[o],n=o,o<<=1;e.heap[n]=r}function R(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?B(e,o,t):(B(e,(i=A[o])+a+1,t),0!==(s=d[i])&&S(e,o-=b[i],s),B(e,i=x(--r),n),0!==(s=u[i])&&S(e,r-=w[i],s)),l<e.last_lit;);B(e,256,t)}function D(e,t){var n,r,o,a=t.dyn_tree,i=t.stat_desc.static_tree,s=t.stat_desc.has_stree,c=t.stat_desc.elems,d=-1;for(e.heap_len=0,e.heap_max=573,n=0;n<c;n++)0!==a[2*n]?(e.heap[++e.heap_len]=d=n,e.depth[n]=0):a[2*n+1]=0;for(;e.heap_len<2;)a[2*(o=e.heap[++e.heap_len]=d<2?++d:0)]=1,e.depth[o]=0,e.opt_len--,s&&(e.static_len-=i[2*o+1]);for(t.max_code=d,n=e.heap_len>>1;1<=n;n--)F(e,a,n);for(o=c;n=e.heap[1],e.heap[1]=e.heap[e.heap_len--],F(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++,F(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,c=t.dyn_tree,d=t.max_code,u=t.stat_desc.static_tree,h=t.stat_desc.has_stree,p=t.stat_desc.extra_bits,m=t.stat_desc.extra_base,f=t.stat_desc.max_length,g=0;for(a=0;a<=l;a++)e.bl_count[a]=0;for(c[2*e.heap[e.heap_max]+1]=0,n=e.heap_max+1;n<573;n++)f<(a=c[2*c[2*(r=e.heap[n])+1]+1]+1)&&(a=f,g++),c[2*r+1]=a,d<r||(e.bl_count[a]++,i=0,m<=r&&(i=p[r-m]),s=c[2*r],e.opt_len+=s*(a+i),h&&(e.static_len+=s*(u[2*r+1]+i)));if(0!==g){do{for(a=f-1;0===e.bl_count[a];)a--;e.bl_count[a]--,e.bl_count[a+1]+=2,e.bl_count[f]--,g-=2}while(0<g);for(a=f;0!==a;a--)for(r=e.bl_count[a];0!==r;)d<(o=e.heap[--n])||(c[2*o+1]!==a&&(e.opt_len+=(a-c[2*o+1])*c[2*o],c[2*o+1]=a),r--)}}(e,t),_(a,d,e.bl_count)}function L(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 O(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(;B(e,o,e.bl_tree),0!=--s;);else 0!==o?(o!==a&&(B(e,o,e.bl_tree),s--),B(e,16,e.bl_tree),S(e,s-3,2)):s<=10?(B(e,17,e.bl_tree),S(e,s-3,3)):(B(e,18,e.bl_tree),S(e,s-11,7));a=o,c=(s=0)===i?(l=138,3):o===i?(l=6,3):(l=7,4)}}o(w);var U=!1;function z(e,t,n,o){S(e,0+(o?1:0),3),function(e,t,n,o){N(e),T(e,n),T(e,~n),r.arraySet(e.pending_buf,e.window,t,n,e.pending),e.pending+=n}(e,t,n)}n._tr_init=function(e){U||(function(){var e,t,n,r,o,a=new Array(l+1);for(r=n=0;r<28;r++)for(b[r]=n,e=0;e<1<<d[r];e++)A[n++]=r;for(A[n-1]=r,r=o=0;r<16;r++)for(w[r]=o,e=0;e<1<<u[r];e++)g[o++]=r;for(o>>=7;r<s;r++)for(w[r]=o<<7,e=0;e<1<<u[r]-7;e++)g[256+o++]=r;for(t=0;t<=l;t++)a[t]=0;for(e=0;e<=143;)m[2*e+1]=8,e++,a[8]++;for(;e<=255;)m[2*e+1]=9,e++,a[9]++;for(;e<=279;)m[2*e+1]=7,e++,a[7]++;for(;e<=287;)m[2*e+1]=8,e++,a[8]++;for(_(m,287,a),e=0;e<s;e++)f[2*e+1]=5,f[2*e]=I(e,5);C=new E(m,d,257,i,l),y=new E(f,u,0,s,l),v=new E(new Array(0),h,0,19,7)}(),U=!0),e.l_desc=new k(e.dyn_ltree,C),e.d_desc=new k(e.dyn_dtree,y),e.bl_desc=new k(e.bl_tree,v),e.bi_buf=0,e.bi_valid=0,P(e)},n._tr_stored_block=z,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)),D(e,e.l_desc),D(e,e.d_desc),s=function(e){var t;for(L(e,e.dyn_ltree,e.l_desc.max_code),L(e,e.dyn_dtree,e.d_desc.max_code),D(e,e.bl_desc),t=18;3<=t&&0===e.bl_tree[2*p[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?z(e,t,n,r):4===e.strategy||i===o?(S(e,2+(r?1:0),3),R(e,m,f)):(S(e,4+(r?1:0),3),function(e,t,n,r){var o;for(S(e,t-257,5),S(e,n-1,5),S(e,r-4,4),o=0;o<r;o++)S(e,e.bl_tree[2*p[o]+1],3);O(e,e.dyn_ltree,t-1),O(e,e.dyn_dtree,n-1)}(e,e.l_desc.max_code+1,e.d_desc.max_code+1,s+1),R(e,e.dyn_ltree,e.dyn_dtree)),P(e),r&&N(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*(A[n]+a+1)]++,e.dyn_dtree[2*x(t)]++),e.last_lit===e.lit_bufsize-1},n._tr_align=function(e){S(e,2,3),B(e,256,m),function(e){16===e.bi_valid?(T(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)},5119:(e,t,n)=>{"use strict";Object.defineProperty(t,"__esModule",{value:!0});var r,o=(r=n(4006))&&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},1617:(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},2351:(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},5228: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}},3631:(e,t)=>{t.qy="#ff1ad9",t.xp="#ed00b5",t.y2="#ad3bff",t.$7="#9400ff",t.Eo="#8000d7",t.Hk="#6200a4",t.Gr="#45a1ff",t.Jn="#0a84ff",t.Qr="#0060df",t.Tn="#003eaa",t.AW="#002275",t.FC="#00feff",t.u9="#00c8d7",t.eq="#30e60b",t.l3="#12bc00",t.$m="#ffe900",t.S4="#d7b600",t.w1="#ff0039",t.f="#d70022",t.Qy="#a4000f",t.LD="#ff9400",t.Oz="#d76e00",t.rS="#a44900",t.LT="#ededf0",t.wZ="#d7d7db",t.bw="#b1b1b3",t.MU="#737373",t.jP="#4a4a4f",t.t2="#595E91",t.IG="#464B76"},2694:(e,t,n)=>{"use strict";var r=n(6925);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}},5556:(e,t,n)=>{e.exports=n(2694)()},6925:e=>{"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},2551:(e,t,n)=>{"use strict";var r=n(6540),o=n(9982);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"),E=Symbol.for("react.fragment"),k=Symbol.for("react.strict_mode"),x=Symbol.for("react.profiler"),T=Symbol.for("react.provider"),S=Symbol.for("react.context"),B=Symbol.for("react.forward_ref"),I=Symbol.for("react.suspense"),_=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 E:return"Fragment";case w:return"Portal";case x:return"Profiler";case k:return"StrictMode";case I:return"Suspense";case _:return"SuspenseList"}if("object"==typeof e)switch(e.$$typeof){case S:return(e.displayName||"Context")+".Consumer";case T: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===k?"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 $(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 K(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 Y(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 q(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 Z(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 X(e,t){null!=(t=t.checked)&&C(e,"checked",t,!1)}function J(e,t){X(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&&Y(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,Ee=null,ke=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 Te(e){Ee?ke?ke.push(e):ke=[e]:Ee=e}function Se(){if(Ee){var e=Ee,t=ke;if(ke=Ee=null,xe(e),t)for(e=0;e<t.length;e++)xe(t[e])}}function Be(e,t){return e(t)}function Ie(){}var _e=!1;function Pe(e,t,n){if(_e)return e(t,n);_e=!0;try{return Be(e,t,n)}finally{_e=!1,(null!==Ee||null!==ke)&&(Ie(),Se())}}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{!!(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))?$e(e):null}function $e(e){if(5===e.tag||6===e.tag)return e;for(e=e.child;null!==e;){var t=$e(e);if(null!==t)return t;e=e.sibling}return null}var Ke=o.unstable_scheduleCallback,Ye=o.unstable_cancelCallback,qe=o.unstable_shouldYield,Ze=o.unstable_requestPaint,Xe=o.unstable_now,Je=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&&!(t&o)&&((o=r&-r)>=(a=t&-t)||16===o&&4194240&a))return t;if(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!(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?268435455&e?16:536870912:4:1}var vt,wt,Et,kt,xt,Tt=!1,St=[],Bt=null,It=null,_t=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":It=null;break;case"mouseover":case"mouseout":_t=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(){Et(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=qt(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(){Tt=!1,null!==Bt&&Ot(Bt)&&(Bt=null),null!==It&&Ot(It)&&(It=null),null!==_t&&Ot(_t)&&(_t=null),Pt.forEach(Ut),Nt.forEach(Ut)}function Gt(e,t){e.blockedOn===t&&(e.blockedOn=null,Tt||(Tt=!0,o.unstable_scheduleCallback(o.unstable_NormalPriority,zt)))}function Wt(e){function t(t){return Gt(t,e)}if(0<St.length){Gt(St[0],e);for(var n=1;n<St.length;n++){var r=St[n];r.blockedOn===e&&(r.blockedOn=null)}}for(null!==Bt&&Gt(Bt,e),null!==It&&Gt(It,e),null!==_t&&Gt(_t,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,Kt(e,t,n,r)}finally{Ct=o,Ht.transition=a}}function $t(e,t,n,r){var o=Ct,a=Ht.transition;Ht.transition=null;try{Ct=4,Kt(e,t,n,r)}finally{Ct=o,Ht.transition=a}}function Kt(e,t,n,r){if(Vt){var o=qt(e,t,n,r);if(null===o)Vr(e,t,r,Yt,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 It=Dt(It,e,t,n,r,o),!0;case"mouseover":return _t=Dt(_t,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=qt(e,t,n,r))&&Vr(e,t,r,Yt,n),a===o)break;o=a}null!==o&&r.stopPropagation()}else Vr(e,t,r,null,n)}}var Yt=null;function qt(e,t,n,r){if(Yt=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 Yt=e,null}function Zt(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(Je()){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 Xt=null,Jt=null,Qt=null;function en(){if(Qt)return Qt;var e,t,n=Jt,r=n.length,o="value"in Xt?Xt.value:Xt.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"},En={Alt:"altKey",Control:"ctrlKey",Meta:"metaKey",Shift:"shiftKey"};function kn(e){var t=this.nativeEvent;return t.getModifierState?t.getModifierState(e):!!(e=En[e])&&!!t[e]}function xn(){return kn}var Tn=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}}),Sn=on(Tn),Bn=on(L({},pn,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0})),In=on(L({},un,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:xn})),_n=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){Te(r),0<(t=$r(t,"onChange")).length&&(n=new dn("onChange","change",null,n,r),e.push({event:n,listeners:t}))}var $n=null,Kn=null;function Yn(e){Or(e,0)}function qn(e){if(K(vo(e)))return e}function Zn(e,t){if("change"===e)return t}var Xn=!1;if(d){var Jn;if(d){var Qn="oninput"in document;if(!Qn){var er=document.createElement("div");er.setAttribute("oninput","return;"),Qn="function"==typeof er.oninput}Jn=Qn}else Jn=!1;Xn=Jn&&(!document.documentMode||9<document.documentMode)}function tr(){$n&&($n.detachEvent("onpropertychange",nr),Kn=$n=null)}function nr(e){if("value"===e.propertyName&&qn(Kn)){var t=[];jn(t,Kn,e,ve(e)),Pe(Yn,t)}}function rr(e,t,n){"focusin"===e?(tr(),Kn=n,($n=t).attachEvent("onpropertychange",nr)):"focusout"===e&&tr()}function or(e){if("selectionchange"===e||"keyup"===e||"keydown"===e)return qn(Kn)}function ar(e,t){if("click"===e)return qn(t)}function ir(e,t){if("input"===e||"change"===e)return qn(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=Y();t instanceof e.HTMLIFrameElement;){try{var n="string"==typeof t.contentWindow.location.href}catch(e){n=!1}if(!n)break;t=Y((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!==Y(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=$r(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")},Er={},kr={};function xr(e){if(Er[e])return Er[e];if(!wr[e])return e;var t,n=wr[e];for(t in n)if(n.hasOwnProperty(t)&&t in kr)return Er[e]=n[t];return e}d&&(kr=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 Tr=xr("animationend"),Sr=xr("animationiteration"),Br=xr("animationstart"),Ir=xr("transitionend"),_r=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){_r.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(Tr,"onAnimationEnd"),Nr(Sr,"onAnimationIteration"),Nr(Br,"onAnimationStart"),Nr("dblclick","onDoubleClick"),Nr("focusin","onFocus"),Nr("focusout","onBlur"),Nr(Ir,"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=!!(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(Zt(t)){case 1:var o=jt;break;case 4:o=$t;break;default:o=Kt}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(!(1&t||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=_r.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=Sn;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=In;break;case Tr:case Sr:case Br:l=An;break;case Ir:l=_n;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=!!(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(!(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=Kr(p))m++;for(p=0,f=h;f;f=Kr(f))p++;for(;0<m-p;)d=Kr(d),m--;for(;0<p-m;)h=Kr(h),p--;for(;m--;){if(d===h||null!==h&&d===h.alternate)break e;d=Kr(d),h=Kr(h)}d=null}else d=null;null!==l&&Yr(i,s,l,d,!1),null!==c&&null!==u&&Yr(i,u,c,d,!0)}if("select"===(l=(s=r?vo(r):window).nodeName&&s.nodeName.toLowerCase())||"input"===l&&"file"===s.type)var g=Zn;else if(Vn(s))if(Xn)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()):(Jt="value"in(Xt=o)?Xt.value:Xt.textContent,Wn=!0)),0<(A=$r(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=Jt=Xt=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=$r(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 $r(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 Kr(e){if(null===e)return null;do{e=e.return}while(e&&5!==e.tag);return e||null}function Yr(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 qr=/\r\n?/g,Zr=/\u0000|\uFFFD/g;function Xr(e){return("string"==typeof e?e:""+e).replace(qr,"\n").replace(Zr,"")}function Jr(e,t,n){if(t=Xr(t),Xr(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 Eo=[],ko=-1;function xo(e){return{current:e}}function To(e){0>ko||(e.current=Eo[ko],Eo[ko]=null,ko--)}function So(e,t){ko++,Eo[ko]=e.current,e.current=t}var Bo={},Io=xo(Bo),_o=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(){To(_o),To(Io)}function Ro(e,t,n){if(Io.current!==Bo)throw Error(a(168));So(Io,t),So(_o,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=Io.current,So(Io,e),So(_o,_o.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,To(_o),To(Io),So(Io,e)):To(_o),So(_o,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)),Ke(Qe,Ho),t}finally{Ct=t,Go=!1}}return null}var Vo=[],jo=0,$o=null,Ko=0,Yo=[],qo=0,Zo=null,Xo=1,Jo="";function Qo(e,t){Vo[jo++]=Ko,Vo[jo++]=$o,$o=e,Ko=t}function ea(e,t,n){Yo[qo++]=Xo,Yo[qo++]=Jo,Yo[qo++]=Zo,Zo=e;var r=Xo;e=Jo;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,Xo=1<<32-it(t)+o|n<<o|r,Jo=a+e}else Xo=1<<a|n<<o|r,Jo=e}function ta(e){null!==e.return&&(Qo(e,1),ea(e,1,0))}function na(e){for(;e===$o;)$o=Vo[--jo],Vo[jo]=null,Ko=Vo[--jo],Vo[jo]=null;for(;e===Zo;)Zo=Yo[--qo],Yo[qo]=null,Jo=Yo[--qo],Yo[qo]=null,Xo=Yo[--qo],Yo[qo]=null}var ra=null,oa=null,aa=!1,ia=null;function sa(e,t){var n=Pc(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!==Zo?{id:Xo,overflow:Jo}:null,e.memoizedState={dehydrated:t,treeContext:n,retryLane:1073741824},(n=Pc(18,null,null,0)).stateNode=t,n.return=e,e.child=n,ra=e,oa=null,!0);default:return!1}}function ca(e){return!(!(1&e.mode)||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,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;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 ba(e,t){throw e=Object.prototype.toString.call(t),Error(a(31,"[object Object]"===e?"object with keys {"+Object.keys(t).join(", ")+"}":e))}function Ca(e){return(0,e._init)(e._payload)}function ya(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=Mc(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=Lc(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===E?u(e,t,n.props.children,r,n.key):null!==t&&(t.elementType===a||"object"==typeof a&&null!==a&&a.$$typeof===N&&Ca(a)===t.type)?((r=o(t,n.props)).ref=Aa(e,t,n),r.return=e,r):((r=Fc(n.type,n.key,n.props,null,e.mode,r)).ref=Aa(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=Oc(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=Rc(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=Lc(""+t,e.mode,n)).return=e,t;if("object"==typeof t&&null!==t){switch(t.$$typeof){case v:return(n=Fc(t.type,t.key,t.props,null,e.mode,n)).ref=Aa(e,null,t),n.return=e,n;case w:return(t=Oc(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=Rc(t,e.mode,n,null)).return=e,t;ba(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);ba(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);ba(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===E&&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)===E){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&&Ca(c)===d.type){n(r,d.sibling),(a=o(d,i.props)).ref=Aa(r,d,i),a.return=r,r=a;break e}n(r,d);break}t(r,d),d=d.sibling}i.type===E?((a=Rc(i.props.children,r.mode,l,i.key)).return=r,r=a):((l=Fc(i.type,i.key,i.props,null,r.mode,l)).ref=Aa(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=Oc(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);ba(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=Lc(i,r.mode,l)).return=r,r=a),s(r)):n(r,a)}}var va=ya(!0),wa=ya(!1),Ea=xo(null),ka=null,xa=null,Ta=null;function Sa(){Ta=xa=ka=null}function Ba(e){var t=Ea.current;To(Ea),e._currentValue=t}function Ia(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 _a(e,t){ka=e,Ta=xa=null,null!==(e=e.dependencies)&&null!==e.firstContext&&(!!(e.lanes&t)&&(Cs=!0),e.firstContext=null)}function Pa(e){var t=e._currentValue;if(Ta!==e)if(e={context:e,memoizedValue:t,next:null},null===xa){if(null===ka)throw Error(a(308));xa=e,ka.dependencies={lanes:0,firstContext:e}}else xa=xa.next=e;return t}var Na=null;function Ma(e){null===Na?Na=[e]:Na.push(e)}function Fa(e,t,n,r){var o=t.interleaved;return null===o?(n.next=n,Ma(t)):(n.next=o.next,o.next=n),t.interleaved=n,Ra(e,r)}function Ra(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 Da=!1;function La(e){e.updateQueue={baseState:e.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}function Oa(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 Ua(e,t){return{eventTime:e,lane:t,tag:0,payload:null,callback:null,next:null}}function za(e,t,n){var r=e.updateQueue;if(null===r)return null;if(r=r.shared,2&Bl){var o=r.pending;return null===o?t.next=t:(t.next=o.next,o.next=t),r.pending=t,Ra(e,n)}return null===(o=r.interleaved)?(t.next=t,Ma(r)):(t.next=o.next,o.next=t),r.interleaved=t,Ra(e,n)}function Ga(e,t,n){if(null!==(t=t.updateQueue)&&(t=t.shared,4194240&n)){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,bt(e,n)}}function Wa(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 Ha(e,t,n,r){var o=e.updateQueue;Da=!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:Da=!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);Dl|=i,e.lanes=i,e.memoizedState=u}}function Va(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 ja={},$a=xo(ja),Ka=xo(ja),Ya=xo(ja);function qa(e){if(e===ja)throw Error(a(174));return e}function Za(e,t){switch(So(Ya,t),So(Ka,e),So($a,ja),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)}To($a),So($a,t)}function Xa(){To($a),To(Ka),To(Ya)}function Ja(e){qa(Ya.current);var t=qa($a.current),n=le(t,e.type);t!==n&&(So(Ka,e),So($a,n))}function Qa(e){Ka.current===e&&(To($a),To(Ka))}var ei=xo(0);function ti(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(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 ni=[];function ri(){for(var e=0;e<ni.length;e++)ni[e]._workInProgressVersionPrimary=null;ni.length=0}var oi=y.ReactCurrentDispatcher,ai=y.ReactCurrentBatchConfig,ii=0,si=null,li=null,ci=null,di=!1,ui=!1,hi=0,pi=0;function mi(){throw Error(a(321))}function fi(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 gi(e,t,n,r,o,i){if(ii=i,si=t,t.memoizedState=null,t.updateQueue=null,t.lanes=0,oi.current=null===e||null===e.memoizedState?Qi:es,e=n(r,o),ui){i=0;do{if(ui=!1,hi=0,25<=i)throw Error(a(301));i+=1,ci=li=null,t.updateQueue=null,oi.current=ts,e=n(r,o)}while(ui)}if(oi.current=Ji,t=null!==li&&null!==li.next,ii=0,ci=li=si=null,di=!1,t)throw Error(a(300));return e}function Ai(){var e=0!==hi;return hi=0,e}function bi(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===ci?si.memoizedState=ci=e:ci=ci.next=e,ci}function Ci(){if(null===li){var e=si.alternate;e=null!==e?e.memoizedState:null}else e=li.next;var t=null===ci?si.memoizedState:ci.next;if(null!==t)ci=t,li=e;else{if(null===e)throw Error(a(310));e={memoizedState:(li=e).memoizedState,baseState:li.baseState,baseQueue:li.baseQueue,queue:li.queue,next:null},null===ci?si.memoizedState=ci=e:ci=ci.next=e}return ci}function yi(e,t){return"function"==typeof t?t(e):t}function vi(e){var t=Ci(),n=t.queue;if(null===n)throw Error(a(311));n.lastRenderedReducer=e;var r=li,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((ii&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,si.lanes|=u,Dl|=u}d=d.next}while(null!==d&&d!==i);null===c?s=r:c.next=l,sr(r,t.memoizedState)||(Cs=!0),t.memoizedState=r,t.baseState=s,t.baseQueue=c,n.lastRenderedState=r}if(null!==(e=n.interleaved)){o=e;do{i=o.lane,si.lanes|=i,Dl|=i,o=o.next}while(o!==e)}else null===o&&(n.lanes=0);return[t.memoizedState,n.dispatch]}function wi(e){var t=Ci(),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)||(Cs=!0),t.memoizedState=i,null===t.baseQueue&&(t.baseState=i),n.lastRenderedState=i}return[i,r]}function Ei(){}function ki(e,t){var n=si,r=Ci(),o=t(),i=!sr(r.memoizedState,o);if(i&&(r.memoizedState=o,Cs=!0),r=r.queue,Di(Si.bind(null,n,r,e),[e]),r.getSnapshot!==t||i||null!==ci&&1&ci.memoizedState.tag){if(n.flags|=2048,Pi(9,Ti.bind(null,n,r,o,t),void 0,null),null===Il)throw Error(a(349));30&ii||xi(n,t,o)}return o}function xi(e,t,n){e.flags|=16384,e={getSnapshot:t,value:n},null===(t=si.updateQueue)?(t={lastEffect:null,stores:null},si.updateQueue=t,t.stores=[e]):null===(n=t.stores)?t.stores=[e]:n.push(e)}function Ti(e,t,n,r){t.value=n,t.getSnapshot=r,Bi(t)&&Ii(e)}function Si(e,t,n){return n((function(){Bi(t)&&Ii(e)}))}function Bi(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!sr(e,n)}catch(e){return!0}}function Ii(e){var t=Ra(e,1);null!==t&&nc(t,e,1,-1)}function _i(e){var t=bi();return"function"==typeof e&&(e=e()),t.memoizedState=t.baseState=e,e={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:yi,lastRenderedState:e},t.queue=e,e=e.dispatch=Yi.bind(null,si,e),[t.memoizedState,e]}function Pi(e,t,n,r){return e={tag:e,create:t,destroy:n,deps:r,next:null},null===(t=si.updateQueue)?(t={lastEffect:null,stores:null},si.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 Ni(){return Ci().memoizedState}function Mi(e,t,n,r){var o=bi();si.flags|=e,o.memoizedState=Pi(1|t,n,void 0,void 0===r?null:r)}function Fi(e,t,n,r){var o=Ci();r=void 0===r?null:r;var a=void 0;if(null!==li){var i=li.memoizedState;if(a=i.destroy,null!==r&&fi(r,i.deps))return void(o.memoizedState=Pi(t,n,a,r))}si.flags|=e,o.memoizedState=Pi(1|t,n,a,r)}function Ri(e,t){return Mi(8390656,8,e,t)}function Di(e,t){return Fi(2048,8,e,t)}function Li(e,t){return Fi(4,2,e,t)}function Oi(e,t){return Fi(4,4,e,t)}function Ui(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 zi(e,t,n){return n=null!=n?n.concat([e]):null,Fi(4,4,Ui.bind(null,t,e),n)}function Gi(){}function Wi(e,t){var n=Ci();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&fi(t,r[1])?r[0]:(n.memoizedState=[e,t],e)}function Hi(e,t){var n=Ci();t=void 0===t?null:t;var r=n.memoizedState;return null!==r&&null!==t&&fi(t,r[1])?r[0]:(e=e(),n.memoizedState=[e,t],e)}function Vi(e,t,n){return 21&ii?(sr(n,t)||(n=ft(),si.lanes|=n,Dl|=n,e.baseState=!0),t):(e.baseState&&(e.baseState=!1,Cs=!0),e.memoizedState=n)}function ji(e,t){var n=Ct;Ct=0!==n&&4>n?n:4,e(!0);var r=ai.transition;ai.transition={};try{e(!1),t()}finally{Ct=n,ai.transition=r}}function $i(){return Ci().memoizedState}function Ki(e,t,n){var r=tc(e);n={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null},qi(e)?Zi(t,n):null!==(n=Fa(e,t,n,r))&&(nc(n,e,r,ec()),Xi(n,t,r))}function Yi(e,t,n){var r=tc(e),o={lane:r,action:n,hasEagerState:!1,eagerState:null,next:null};if(qi(e))Zi(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,Ma(t)):(o.next=l.next,l.next=o),void(t.interleaved=o)}}catch(e){}null!==(n=Fa(e,t,o,r))&&(nc(n,e,r,o=ec()),Xi(n,t,r))}}function qi(e){var t=e.alternate;return e===si||null!==t&&t===si}function Zi(e,t){ui=di=!0;var n=e.pending;null===n?t.next=t:(t.next=n.next,n.next=t),e.pending=t}function Xi(e,t,n){if(4194240&n){var r=t.lanes;n|=r&=e.pendingLanes,t.lanes=n,bt(e,n)}}var Ji={readContext:Pa,useCallback:mi,useContext:mi,useEffect:mi,useImperativeHandle:mi,useInsertionEffect:mi,useLayoutEffect:mi,useMemo:mi,useReducer:mi,useRef:mi,useState:mi,useDebugValue:mi,useDeferredValue:mi,useTransition:mi,useMutableSource:mi,useSyncExternalStore:mi,useId:mi,unstable_isNewReconciler:!1},Qi={readContext:Pa,useCallback:function(e,t){return bi().memoizedState=[e,void 0===t?null:t],e},useContext:Pa,useEffect:Ri,useImperativeHandle:function(e,t,n){return n=null!=n?n.concat([e]):null,Mi(4194308,4,Ui.bind(null,t,e),n)},useLayoutEffect:function(e,t){return Mi(4194308,4,e,t)},useInsertionEffect:function(e,t){return Mi(4,2,e,t)},useMemo:function(e,t){var n=bi();return t=void 0===t?null:t,e=e(),n.memoizedState=[e,t],e},useReducer:function(e,t,n){var r=bi();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=Ki.bind(null,si,e),[r.memoizedState,e]},useRef:function(e){return e={current:e},bi().memoizedState=e},useState:_i,useDebugValue:Gi,useDeferredValue:function(e){return bi().memoizedState=e},useTransition:function(){var e=_i(!1),t=e[0];return e=ji.bind(null,e[1]),bi().memoizedState=e,[t,e]},useMutableSource:function(){},useSyncExternalStore:function(e,t,n){var r=si,o=bi();if(aa){if(void 0===n)throw Error(a(407));n=n()}else{if(n=t(),null===Il)throw Error(a(349));30&ii||xi(r,t,n)}o.memoizedState=n;var i={value:n,getSnapshot:t};return o.queue=i,Ri(Si.bind(null,r,i,e),[e]),r.flags|=2048,Pi(9,Ti.bind(null,r,i,n,t),void 0,null),n},useId:function(){var e=bi(),t=Il.identifierPrefix;if(aa){var n=Jo;t=":"+t+"R"+(n=(Xo&~(1<<32-it(Xo)-1)).toString(32)+n),0<(n=hi++)&&(t+="H"+n.toString(32)),t+=":"}else t=":"+t+"r"+(n=pi++).toString(32)+":";return e.memoizedState=t},unstable_isNewReconciler:!1},es={readContext:Pa,useCallback:Wi,useContext:Pa,useEffect:Di,useImperativeHandle:zi,useInsertionEffect:Li,useLayoutEffect:Oi,useMemo:Hi,useReducer:vi,useRef:Ni,useState:function(){return vi(yi)},useDebugValue:Gi,useDeferredValue:function(e){return Vi(Ci(),li.memoizedState,e)},useTransition:function(){return[vi(yi)[0],Ci().memoizedState]},useMutableSource:Ei,useSyncExternalStore:ki,useId:$i,unstable_isNewReconciler:!1},ts={readContext:Pa,useCallback:Wi,useContext:Pa,useEffect:Di,useImperativeHandle:zi,useInsertionEffect:Li,useLayoutEffect:Oi,useMemo:Hi,useReducer:wi,useRef:Ni,useState:function(){return wi(yi)},useDebugValue:Gi,useDeferredValue:function(e){var t=Ci();return null===li?t.memoizedState=e:Vi(t,li.memoizedState,e)},useTransition:function(){return[wi(yi)[0],Ci().memoizedState]},useMutableSource:Ei,useSyncExternalStore:ki,useId:$i,unstable_isNewReconciler:!1};function ns(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}function rs(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 os={isMounted:function(e){return!!(e=e._reactInternals)&&We(e)===e},enqueueSetState:function(e,t,n){e=e._reactInternals;var r=ec(),o=tc(e),a=Ua(r,o);a.payload=t,null!=n&&(a.callback=n),null!==(t=za(e,a,o))&&(nc(t,e,o,r),Ga(t,e,o))},enqueueReplaceState:function(e,t,n){e=e._reactInternals;var r=ec(),o=tc(e),a=Ua(r,o);a.tag=1,a.payload=t,null!=n&&(a.callback=n),null!==(t=za(e,a,o))&&(nc(t,e,o,r),Ga(t,e,o))},enqueueForceUpdate:function(e,t){e=e._reactInternals;var n=ec(),r=tc(e),o=Ua(n,r);o.tag=2,null!=t&&(o.callback=t),null!==(t=za(e,o,r))&&(nc(t,e,r,n),Ga(t,e,r))}};function as(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 is(e,t,n){var r=!1,o=Bo,a=t.contextType;return"object"==typeof a&&null!==a?a=Pa(a):(o=Mo(t)?Po:Io.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=os,e.stateNode=t,t._reactInternals=e,r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=o,e.__reactInternalMemoizedMaskedChildContext=a),t}function ss(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&&os.enqueueReplaceState(t,t.state,null)}function ls(e,t,n,r){var o=e.stateNode;o.props=n,o.state=e.memoizedState,o.refs={},La(e);var a=t.contextType;"object"==typeof a&&null!==a?o.context=Pa(a):(a=Mo(t)?Po:Io.current,o.context=No(e,a)),o.state=e.memoizedState,"function"==typeof(a=t.getDerivedStateFromProps)&&(rs(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&&os.enqueueReplaceState(o,o.state,null),Ha(e,n,o,r),o.state=e.memoizedState),"function"==typeof o.componentDidMount&&(e.flags|=4194308)}function cs(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 ds(e,t,n){return{value:e,source:null,stack:null!=n?n:null,digest:null!=t?t:null}}function us(e,t){try{console.error(t.value)}catch(e){setTimeout((function(){throw e}))}}var hs="function"==typeof WeakMap?WeakMap:Map;function ps(e,t,n){(n=Ua(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Vl||(Vl=!0,jl=r),us(0,t)},n}function ms(e,t,n){(n=Ua(-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(){us(0,t)}}var a=e.stateNode;return null!==a&&"function"==typeof a.componentDidCatch&&(n.callback=function(){us(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 fs(e,t,n){var r=e.pingCache;if(null===r){r=e.pingCache=new hs;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=xc.bind(null,e,t,n),t.then(e,e))}function gs(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 As(e,t,n,r,o){return 1&e.mode?(e.flags|=65536,e.lanes=o,e):(e===t?e.flags|=65536:(e.flags|=128,n.flags|=131072,n.flags&=-52805,1===n.tag&&(null===n.alternate?n.tag=17:((t=Ua(-1,1)).tag=2,za(n,t,1))),n.lanes|=1),e)}var bs=y.ReactCurrentOwner,Cs=!1;function ys(e,t,n,r){t.child=null===e?wa(t,null,n,r):va(t,e.child,n,r)}function vs(e,t,n,r,o){n=n.render;var a=t.ref;return _a(t,o),r=gi(e,t,n,r,a,o),n=Ai(),null===e||Cs?(aa&&n&&ta(t),t.flags|=1,ys(e,t,r,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,Vs(e,t,o))}function ws(e,t,n,r,o){if(null===e){var a=n.type;return"function"!=typeof a||Nc(a)||void 0!==a.defaultProps||null!==n.compare||void 0!==n.defaultProps?((e=Fc(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,!(e.lanes&o)){var i=a.memoizedProps;if((n=null!==(n=n.compare)?n:lr)(i,r)&&e.ref===t.ref)return Vs(e,t,o)}return t.flags|=1,(e=Mc(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(Cs=!1,t.pendingProps=r=a,!(e.lanes&o))return t.lanes=e.lanes,Vs(e,t,o);131072&e.flags&&(Cs=!0)}}return Ts(e,t,n,r,o)}function ks(e,t,n){var r=t.pendingProps,o=r.children,a=null!==e?e.memoizedState:null;if("hidden"===r.mode)if(1&t.mode){if(!(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,So(Ml,Nl),Nl|=e,null;t.memoizedState={baseLanes:0,cachePool:null,transitions:null},r=null!==a?a.baseLanes:n,So(Ml,Nl),Nl|=r}else t.memoizedState={baseLanes:0,cachePool:null,transitions:null},So(Ml,Nl),Nl|=n;else null!==a?(r=a.baseLanes|n,t.memoizedState=null):r=n,So(Ml,Nl),Nl|=r;return ys(e,t,o,n),t.child}function xs(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:Io.current;return a=No(t,a),_a(t,o),n=gi(e,t,n,r,a,o),r=Ai(),null===e||Cs?(aa&&r&&ta(t),t.flags|=1,ys(e,t,n,o),t.child):(t.updateQueue=e.updateQueue,t.flags&=-2053,e.lanes&=~o,Vs(e,t,o))}function Ss(e,t,n,r,o){if(Mo(n)){var a=!0;Lo(t)}else a=!1;if(_a(t,o),null===t.stateNode)Hs(e,t),is(t,n,r),ls(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?Pa(c):No(t,c=Mo(n)?Po:Io.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)&&ss(t,i,r,c),Da=!1;var h=t.memoizedState;i.state=h,Ha(t,r,i,o),l=t.memoizedState,s!==r||h!==l||_o.current||Da?("function"==typeof d&&(rs(t,n,d,r),l=t.memoizedState),(s=Da||as(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,Oa(e,t),s=t.memoizedProps,c=t.type===t.elementType?s:ns(t.type,s),i.props=c,u=t.pendingProps,h=i.context,l="object"==typeof(l=n.contextType)&&null!==l?Pa(l):No(t,l=Mo(n)?Po:Io.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)&&ss(t,i,r,l),Da=!1,h=t.memoizedState,i.state=h,Ha(t,r,i,o);var m=t.memoizedState;s!==u||h!==m||_o.current||Da?("function"==typeof p&&(rs(t,n,p,r),m=t.memoizedState),(c=Da||as(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 Bs(e,t,n,r,a,o)}function Bs(e,t,n,r,o,a){xs(e,t);var i=!!(128&t.flags);if(!r&&!i)return o&&Oo(t,n,!1),Vs(e,t,a);r=t.stateNode,bs.current=t;var s=i&&"function"!=typeof n.getDerivedStateFromError?null:r.render();return t.flags|=1,null!==e&&i?(t.child=va(t,e.child,null,a),t.child=va(t,null,s,a)):ys(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),Za(e,t.containerInfo)}function _s(e,t,n,r,o){return ma(),fa(o),t.flags|=256,ys(e,t,n,r),t.child}var Ps,Ns,Ms,Fs,Rs={dehydrated:null,treeContext:null,retryLane:0};function Ds(e){return{baseLanes:e,cachePool:null,transitions:null}}function Ls(e,t,n){var r,o=t.pendingProps,i=ei.current,s=!1,l=!!(128&t.flags);if((r=l)||(r=(null===e||null!==e.memoizedState)&&!!(2&i)),r?(s=!0,t.flags&=-129):null!==e&&null===e.memoizedState||(i|=1),So(ei,1&i),null===e)return da(t),null!==(e=t.memoizedState)&&null!==(e=e.dehydrated)?(1&t.mode?"$!"===e.data?t.lanes=8:t.lanes=1073741824:t.lanes=1,null):(l=o.children,e=o.fallback,s?(o=t.mode,s=t.child,l={mode:"hidden",children:l},1&o||null===s?s=Dc(l,o,0,null):(s.childLanes=0,s.pendingProps=l),e=Rc(e,o,n,null),s.return=t,e.return=t,s.sibling=e,t.child=s,t.child.memoizedState=Ds(n),t.memoizedState=Rs,e):Os(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,Us(e,t,s,r=ds(Error(a(422))))):null!==t.memoizedState?(t.child=e.child,t.flags|=128,null):(i=r.fallback,o=t.mode,r=Dc({mode:"visible",children:r.children},o,0,null),(i=Rc(i,o,s,null)).flags|=2,r.return=t,i.return=t,r.sibling=i,t.child=r,1&t.mode&&va(t,e.child,null,s),t.child.memoizedState=Ds(s),t.memoizedState=Rs,i);if(!(1&t.mode))return Us(e,t,s,null);if("$!"===o.data){if(r=o.nextSibling&&o.nextSibling.dataset)var l=r.dgst;return r=l,Us(e,t,s,r=ds(i=Error(a(419)),r,void 0))}if(l=!!(s&e.childLanes),Cs||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=o&(r.suspendedLanes|s)?0:o)&&o!==i.retryLane&&(i.retryLane=o,Ra(e,o),nc(r,e,o,-1))}return fc(),Us(e,t,s,r=ds(Error(a(421))))}return"$?"===o.data?(t.flags|=128,t.child=e.child,t=Sc.bind(null,e),o._reactRetry=t,null):(e=i.treeContext,oa=co(o.nextSibling),ra=t,aa=!0,ia=null,null!==e&&(Yo[qo++]=Xo,Yo[qo++]=Jo,Yo[qo++]=Zo,Xo=e.id,Jo=e.overflow,Zo=t),(t=Os(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 1&l||t.child===i?(o=Mc(i,c)).subtreeFlags=14680064&i.subtreeFlags:((o=t.child).childLanes=0,o.pendingProps=c,t.deletions=null),null!==r?s=Mc(r,s):(s=Rc(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)?Ds(n):{baseLanes:l.baseLanes|n,cachePool:null,transitions:l.transitions},s.memoizedState=l,s.childLanes=e.childLanes&~n,t.memoizedState=Rs,o}return e=(s=e.child).sibling,o=Mc(s,{mode:"visible",children:o.children}),!(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 Os(e,t){return(t=Dc({mode:"visible",children:t},e.mode,0,null)).return=e,e.child=t}function Us(e,t,n,r){return null!==r&&fa(r),va(t,e.child,null,n),(e=Os(t,t.pendingProps.children)).flags|=2,t.memoizedState=null,e}function zs(e,t,n){e.lanes|=t;var r=e.alternate;null!==r&&(r.lanes|=t),Ia(e.return,t,n)}function Gs(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 Ws(e,t,n){var r=t.pendingProps,o=r.revealOrder,a=r.tail;if(ys(e,t,r.children,n),2&(r=ei.current))r=1&r|2,t.flags|=128;else{if(null!==e&&128&e.flags)e:for(e=t.child;null!==e;){if(13===e.tag)null!==e.memoizedState&&zs(e,n,t);else if(19===e.tag)zs(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(So(ei,r),1&t.mode)switch(o){case"forwards":for(n=t.child,o=null;null!==n;)null!==(e=n.alternate)&&null===ti(e)&&(o=n),n=n.sibling;null===(n=o)?(o=t.child,t.child=null):(o=n.sibling,n.sibling=null),Gs(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===ti(e)){t.child=o;break}e=o.sibling,o.sibling=n,n=o,o=e}Gs(t,!0,n,null,a);break;case"together":Gs(t,!1,null,null,void 0);break;default:t.memoizedState=null}else t.memoizedState=null;return t.child}function Hs(e,t){!(1&t.mode)&&null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2)}function Vs(e,t,n){if(null!==e&&(t.dependencies=e.dependencies),Dl|=t.lanes,!(n&t.childLanes))return null;if(null!==e&&t.child!==e.child)throw Error(a(153));if(null!==t.child){for(n=Mc(e=t.child,e.pendingProps),t.child=n,n.return=t;null!==e.sibling;)e=e.sibling,(n=n.sibling=Mc(e,e.pendingProps)).return=t;n.sibling=null}return t.child}function js(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,Xa(),To(_o),To(Io),ri(),r.pendingContext&&(r.context=r.pendingContext,r.pendingContext=null),null!==e&&null!==e.child||(ha(t)?t.flags|=4:null===e||e.memoizedState.isDehydrated&&!(256&t.flags)||(t.flags|=1024,null!==ia&&(ic(ia),ia=null))),Ns(e,t),$s(t),null;case 5:Qa(t);var o=qa(Ya.current);if(n=t.type,null!==e&&null!=t.stateNode)Ms(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=qa($a.current),ha(t)){r=t.stateNode,n=t.type;var i=t.memoizedProps;switch(r[po]=t,r[mo]=i,e=!!(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":Z(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&&Jr(r.textContent,c,e),o=["children",c]):"number"==typeof c&&r.textContent!==""+c&&(!0!==i.suppressHydrationWarning&&Jr(r.textContent,c,e),o=["children",""+c]):s.hasOwnProperty(l)&&null!=c&&"onScroll"===l&&Ur("scroll",r)}switch(n){case"input":$(r),Q(r,i,!0);break;case"textarea":$(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,Ps(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":Z(e,r),o=q(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":$(e),Q(e,r,!1);break;case"textarea":$(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)Fs(e,t,e.memoizedProps,r);else{if("string"!=typeof r&&null===t.stateNode)throw Error(a(166));if(n=qa(Ya.current),qa($a.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:Jr(r.nodeValue,n,!!(1&e.mode));break;case 5:!0!==e.memoizedProps.suppressHydrationWarning&&Jr(r.nodeValue,n,!!(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(To(ei),r=t.memoizedState,null===e||null!==e.memoizedState&&null!==e.memoizedState.dehydrated){if(aa&&null!==oa&&1&t.mode&&!(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(),!(128&t.flags)&&(t.memoizedState=null),t.flags|=4;$s(t),i=!1}else null!==ia&&(ic(ia),ia=null),i=!0;if(!i)return 65536&t.flags?t:null}return 128&t.flags?(t.lanes=n,t):((r=null!==r)!=(null!==e&&null!==e.memoizedState)&&r&&(t.child.flags|=8192,1&t.mode&&(null===e||1&ei.current?0===Fl&&(Fl=3):fc())),null!==t.updateQueue&&(t.flags|=4),$s(t),null);case 4:return Xa(),Ns(e,t),null===e&&Wr(t.stateNode.containerInfo),$s(t),null;case 10:return Ba(t.type._context),$s(t),null;case 19:if(To(ei),null===(i=t.memoizedState))return $s(t),null;if(r=!!(128&t.flags),null===(l=i.rendering))if(r)js(i,!1);else{if(0!==Fl||null!==e&&128&e.flags)for(e=t.child;null!==e;){if(null!==(l=ti(e))){for(t.flags|=128,js(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 So(ei,1&ei.current|2),t.child}e=e.sibling}null!==i.tail&&Xe()>Wl&&(t.flags|=128,r=!0,js(i,!1),t.lanes=4194304)}else{if(!r)if(null!==(e=ti(l))){if(t.flags|=128,r=!0,null!==(n=e.updateQueue)&&(t.updateQueue=n,t.flags|=4),js(i,!0),null===i.tail&&"hidden"===i.tailMode&&!l.alternate&&!aa)return $s(t),null}else 2*Xe()-i.renderingStartTime>Wl&&1073741824!==n&&(t.flags|=128,r=!0,js(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=Xe(),t.sibling=null,n=ei.current,So(ei,r?1&n|2:1&n),t):($s(t),null);case 22:case 23:return uc(),r=null!==t.memoizedState,null!==e&&null!==e.memoizedState!==r&&(t.flags|=8192),r&&1&t.mode?!!(1073741824&Nl)&&($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 Xa(),To(_o),To(Io),ri(),65536&(e=t.flags)&&!(128&e)?(t.flags=-65537&e|128,t):null;case 5:return Qa(t),null;case 13:if(To(ei),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 To(ei),null;case 4:return Xa(),null;case 10:return Ba(t.type._context),null;case 22:case 23:return uc(),null;default:return null}}Ps=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}},Ns=function(){},Ms=function(e,t,n,r){var o=e.memoizedProps;if(o!==r){e=t.stateNode,qa($a.current);var a,i=null;switch(n){case"input":o=q(e,o),r=q(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)}},Fs=function(e,t,n,r){n!==r&&(t.flags|=4)};var qs=!1,Zs=!1,Xs="function"==typeof WeakSet?WeakSet:Set,Js=null;function Qs(e,t){var n=e.ref;if(null!==n)if("function"==typeof n)try{n(null)}catch(n){kc(e,t,n)}else n.current=null}function el(e,t,n){try{n()}catch(n){kc(e,t,n)}}var tl=!1;function nl(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&&el(t,n,a)}o=o.next}while(o!==r)}}function rl(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 ol(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 al(e){var t=e.alternate;null!==t&&(e.alternate=null,al(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 il(e){return 5===e.tag||3===e.tag||4===e.tag}function sl(e){e:for(;;){for(;null===e.sibling;){if(null===e.return||il(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 ll(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(ll(e,t,n),e=e.sibling;null!==e;)ll(e,t,n),e=e.sibling}function cl(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(cl(e,t,n),e=e.sibling;null!==e;)cl(e,t,n),e=e.sibling}var dl=null,ul=!1;function hl(e,t,n){for(n=n.child;null!==n;)pl(e,t,n),n=n.sibling}function pl(e,t,n){if(at&&"function"==typeof at.onCommitFiberUnmount)try{at.onCommitFiberUnmount(ot,n)}catch(e){}switch(n.tag){case 5:Zs||Qs(n,t);case 6:var r=dl,o=ul;dl=null,hl(e,t,n),ul=o,null!==(dl=r)&&(ul?(e=dl,n=n.stateNode,8===e.nodeType?e.parentNode.removeChild(n):e.removeChild(n)):dl.removeChild(n.stateNode));break;case 18:null!==dl&&(ul?(e=dl,n=n.stateNode,8===e.nodeType?lo(e.parentNode,n):1===e.nodeType&&lo(e,n),Wt(e)):lo(dl,n.stateNode));break;case 4:r=dl,o=ul,dl=n.stateNode.containerInfo,ul=!0,hl(e,t,n),dl=r,ul=o;break;case 0:case 11:case 14:case 15:if(!Zs&&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&&(2&a||4&a)&&el(n,t,i),o=o.next}while(o!==r)}hl(e,t,n);break;case 1:if(!Zs&&(Qs(n,t),"function"==typeof(r=n.stateNode).componentWillUnmount))try{r.props=n.memoizedProps,r.state=n.memoizedState,r.componentWillUnmount()}catch(e){kc(n,t,e)}hl(e,t,n);break;case 21:hl(e,t,n);break;case 22:1&n.mode?(Zs=(r=Zs)||null!==n.memoizedState,hl(e,t,n),Zs=r):hl(e,t,n);break;default:hl(e,t,n)}}function ml(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=Bc.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function fl(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:dl=l.stateNode,ul=!1;break e;case 3:case 4:dl=l.stateNode.containerInfo,ul=!0;break e}l=l.return}if(null===dl)throw Error(a(160));pl(i,s,o),dl=null,ul=!1;var c=o.alternate;null!==c&&(c.return=null),o.return=null}catch(e){kc(o,t,e)}}if(12854&t.subtreeFlags)for(t=t.child;null!==t;)gl(t,e),t=t.sibling}function gl(e,t){var n=e.alternate,r=e.flags;switch(e.tag){case 0:case 11:case 14:case 15:if(fl(t,e),Al(e),4&r){try{nl(3,e,e.return),rl(3,e)}catch(t){kc(e,e.return,t)}try{nl(5,e,e.return)}catch(t){kc(e,e.return,t)}}break;case 1:fl(t,e),Al(e),512&r&&null!==n&&Qs(n,n.return);break;case 5:if(fl(t,e),Al(e),512&r&&null!==n&&Qs(n,n.return),32&e.flags){var o=e.stateNode;try{he(o,"")}catch(t){kc(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&&X(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":J(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){kc(e,e.return,t)}}break;case 6:if(fl(t,e),Al(e),4&r){if(null===e.stateNode)throw Error(a(162));o=e.stateNode,i=e.memoizedProps;try{o.nodeValue=i}catch(t){kc(e,e.return,t)}}break;case 3:if(fl(t,e),Al(e),4&r&&null!==n&&n.memoizedState.isDehydrated)try{Wt(t.containerInfo)}catch(t){kc(e,e.return,t)}break;case 4:default:fl(t,e),Al(e);break;case 13:fl(t,e),Al(e),8192&(o=e.child).flags&&(i=null!==o.memoizedState,o.stateNode.isHidden=i,!i||null!==o.alternate&&null!==o.alternate.memoizedState||(Gl=Xe())),4&r&&ml(e);break;case 22:if(u=null!==n&&null!==n.memoizedState,1&e.mode?(Zs=(d=Zs)||u,fl(t,e),Zs=d):fl(t,e),Al(e),8192&r){if(d=null!==e.memoizedState,(e.stateNode.isHidden=d)&&!u&&1&e.mode)for(Js=e,u=e.child;null!==u;){for(h=Js=u;null!==Js;){switch(m=(p=Js).child,p.tag){case 0:case 11:case 14:case 15:nl(4,p,p.return);break;case 1:Qs(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){kc(r,n,e)}}break;case 5:Qs(p,p.return);break;case 22:if(null!==p.memoizedState){vl(h);continue}}null!==m?(m.return=p,Js=m):vl(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){kc(e,e.return,t)}}}else if(6===h.tag){if(null===u)try{h.stateNode.nodeValue=d?"":h.memoizedProps}catch(t){kc(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:fl(t,e),Al(e),4&r&&ml(e);case 21:}}function Al(e){var t=e.flags;if(2&t){try{e:{for(var n=e.return;null!==n;){if(il(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),cl(e,sl(e),o);break;case 3:case 4:var i=r.stateNode.containerInfo;ll(e,sl(e),i);break;default:throw Error(a(161))}}catch(t){kc(e,e.return,t)}e.flags&=-3}4096&t&&(e.flags&=-4097)}function bl(e,t,n){Js=e,Cl(e,t,n)}function Cl(e,t,n){for(var r=!!(1&e.mode);null!==Js;){var o=Js,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||Zs;s=qs;var c=Zs;if(qs=i,(Zs=l)&&!c)for(Js=o;null!==Js;)l=(i=Js).child,22===i.tag&&null!==i.memoizedState?wl(o):null!==l?(l.return=i,Js=l):wl(o);for(;null!==a;)Js=a,Cl(a,t,n),a=a.sibling;Js=o,qs=s,Zs=c}yl(e)}else 8772&o.subtreeFlags&&null!==a?(a.return=o,Js=a):yl(e)}}function yl(e){for(;null!==Js;){var t=Js;if(8772&t.flags){var n=t.alternate;try{if(8772&t.flags)switch(t.tag){case 0:case 11:case 15:Zs||rl(5,t);break;case 1:var r=t.stateNode;if(4&t.flags&&!Zs)if(null===n)r.componentDidMount();else{var o=t.elementType===t.type?n.memoizedProps:ns(t.type,n.memoizedProps);r.componentDidUpdate(o,n.memoizedState,r.__reactInternalSnapshotBeforeUpdate)}var i=t.updateQueue;null!==i&&Va(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}Va(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))}Zs||512&t.flags&&ol(t)}catch(e){kc(t,t.return,e)}}if(t===e){Js=null;break}if(null!==(n=t.sibling)){n.return=t.return,Js=n;break}Js=t.return}}function vl(e){for(;null!==Js;){var t=Js;if(t===e){Js=null;break}var n=t.sibling;if(null!==n){n.return=t.return,Js=n;break}Js=t.return}}function wl(e){for(;null!==Js;){var t=Js;try{switch(t.tag){case 0:case 11:case 15:var n=t.return;try{rl(4,t)}catch(e){kc(t,n,e)}break;case 1:var r=t.stateNode;if("function"==typeof r.componentDidMount){var o=t.return;try{r.componentDidMount()}catch(e){kc(t,o,e)}}var a=t.return;try{ol(t)}catch(e){kc(t,a,e)}break;case 5:var i=t.return;try{ol(t)}catch(e){kc(t,i,e)}}}catch(e){kc(t,t.return,e)}if(t===e){Js=null;break}var s=t.sibling;if(null!==s){s.return=t.return,Js=s;break}Js=t.return}}var El,kl=Math.ceil,xl=y.ReactCurrentDispatcher,Tl=y.ReactCurrentOwner,Sl=y.ReactCurrentBatchConfig,Bl=0,Il=null,_l=null,Pl=0,Nl=0,Ml=xo(0),Fl=0,Rl=null,Dl=0,Ll=0,Ol=0,Ul=null,zl=null,Gl=0,Wl=1/0,Hl=null,Vl=!1,jl=null,$l=null,Kl=!1,Yl=null,ql=0,Zl=0,Xl=null,Jl=-1,Ql=0;function ec(){return 6&Bl?Xe():-1!==Jl?Jl:Jl=Xe()}function tc(e){return 1&e.mode?2&Bl&&0!==Pl?Pl&-Pl:null!==ga.transition?(0===Ql&&(Ql=ft()),Ql):0!==(e=Ct)?e:e=void 0===(e=window.event)?16:Zt(e.type):1}function nc(e,t,n,r){if(50<Zl)throw Zl=0,Xl=null,Error(a(185));At(e,n,r),2&Bl&&e===Il||(e===Il&&(!(2&Bl)&&(Ll|=n),4===Fl&&sc(e,Pl)),rc(e,r),1===n&&0===Bl&&!(1&t.mode)&&(Wl=Xe()+500,zo&&Ho()))}function rc(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?s&n&&!(s&r)||(o[i]=pt(s,t)):l<=t&&(e.expiredLanes|=s),a&=~s}}(e,t);var r=ht(e,e===Il?Pl:0);if(0===r)null!==n&&Ye(n),e.callbackNode=null,e.callbackPriority=0;else if(t=r&-r,e.callbackPriority!==t){if(null!=n&&Ye(n),1===t)0===e.tag?function(e){zo=!0,Wo(e)}(lc.bind(null,e)):Wo(lc.bind(null,e)),io((function(){!(6&Bl)&&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,oc.bind(null,e))}e.callbackPriority=t,e.callbackNode=n}}function oc(e,t){if(Jl=-1,Ql=0,6&Bl)throw Error(a(327));var n=e.callbackNode;if(wc()&&e.callbackNode!==n)return null;var r=ht(e,e===Il?Pl:0);if(0===r)return null;if(30&r||r&e.expiredLanes||t)t=gc(e,r);else{t=r;var o=Bl;Bl|=2;var i=mc();for(Il===e&&Pl===t||(Hl=null,Wl=Xe()+500,hc(e,t));;)try{bc();break}catch(t){pc(e,t)}Sa(),xl.current=i,Bl=o,null!==_l?t=0:(Il=null,Pl=0,t=Fl)}if(0!==t){if(2===t&&0!==(o=mt(e))&&(r=o,t=ac(e,o)),1===t)throw n=Rl,hc(e,0),sc(e,r),rc(e,Xe()),n;if(6===t)sc(e,r);else{if(o=e.current.alternate,!(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)||(t=gc(e,r),2===t&&(i=mt(e),0!==i&&(r=i,t=ac(e,i))),1!==t)))throw n=Rl,hc(e,0),sc(e,r),rc(e,Xe()),n;switch(e.finishedWork=o,e.finishedLanes=r,t){case 0:case 1:throw Error(a(345));case 2:case 5:vc(e,zl,Hl);break;case 3:if(sc(e,r),(130023424&r)===r&&10<(t=Gl+500-Xe())){if(0!==ht(e,0))break;if(((o=e.suspendedLanes)&r)!==r){ec(),e.pingedLanes|=e.suspendedLanes&o;break}e.timeoutHandle=ro(vc.bind(null,e,zl,Hl),t);break}vc(e,zl,Hl);break;case 4:if(sc(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=Xe()-r)?120:480>r?480:1080>r?1080:1920>r?1920:3e3>r?3e3:4320>r?4320:1960*kl(r/1960))-r)){e.timeoutHandle=ro(vc.bind(null,e,zl,Hl),r);break}vc(e,zl,Hl);break;default:throw Error(a(329))}}}return rc(e,Xe()),e.callbackNode===n?oc.bind(null,e):null}function ac(e,t){var n=Ul;return e.current.memoizedState.isDehydrated&&(hc(e,t).flags|=256),2!==(e=gc(e,t))&&(t=zl,zl=n,null!==t&&ic(t)),e}function ic(e){null===zl?zl=e:zl.push.apply(zl,e)}function sc(e,t){for(t&=~Ol,t&=~Ll,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 lc(e){if(6&Bl)throw Error(a(327));wc();var t=ht(e,0);if(!(1&t))return rc(e,Xe()),null;var n=gc(e,t);if(0!==e.tag&&2===n){var r=mt(e);0!==r&&(t=r,n=ac(e,r))}if(1===n)throw n=Rl,hc(e,0),sc(e,t),rc(e,Xe()),n;if(6===n)throw Error(a(345));return e.finishedWork=e.current.alternate,e.finishedLanes=t,vc(e,zl,Hl),rc(e,Xe()),null}function cc(e,t){var n=Bl;Bl|=1;try{return e(t)}finally{0===(Bl=n)&&(Wl=Xe()+500,zo&&Ho())}}function dc(e){null!==Yl&&0===Yl.tag&&!(6&Bl)&&wc();var t=Bl;Bl|=1;var n=Sl.transition,r=Ct;try{if(Sl.transition=null,Ct=1,e)return e()}finally{Ct=r,Sl.transition=n,!(6&(Bl=t))&&Ho()}}function uc(){Nl=Ml.current,To(Ml)}function hc(e,t){e.finishedWork=null,e.finishedLanes=0;var n=e.timeoutHandle;if(-1!==n&&(e.timeoutHandle=-1,oo(n)),null!==_l)for(n=_l.return;null!==n;){var r=n;switch(na(r),r.tag){case 1:null!=(r=r.type.childContextTypes)&&Fo();break;case 3:Xa(),To(_o),To(Io),ri();break;case 5:Qa(r);break;case 4:Xa();break;case 13:case 19:To(ei);break;case 10:Ba(r.type._context);break;case 22:case 23:uc()}n=n.return}if(Il=e,_l=e=Mc(e.current,null),Pl=Nl=t,Fl=0,Rl=null,Ol=Ll=Dl=0,zl=Ul=null,null!==Na){for(t=0;t<Na.length;t++)if(null!==(r=(n=Na[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}Na=null}return e}function pc(e,t){for(;;){var n=_l;try{if(Sa(),oi.current=Ji,di){for(var r=si.memoizedState;null!==r;){var o=r.queue;null!==o&&(o.pending=null),r=r.next}di=!1}if(ii=0,ci=li=si=null,ui=!1,hi=0,Tl.current=null,null===n||null===n.return){Fl=1,Rl=t,_l=null;break}e:{var i=e,s=n.return,l=n,c=t;if(t=Pl,l.flags|=32768,null!==c&&"object"==typeof c&&"function"==typeof c.then){var d=c,u=l,h=u.tag;if(!(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=gs(s);if(null!==m){m.flags&=-257,As(m,s,l,0,t),1&m.mode&&fs(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(!(1&t)){fs(i,d,t),fc();break e}c=Error(a(426))}else if(aa&&1&l.mode){var A=gs(s);if(null!==A){!(65536&A.flags)&&(A.flags|=256),As(A,s,l,0,t),fa(cs(c,l));break e}}i=c=cs(c,l),4!==Fl&&(Fl=2),null===Ul?Ul=[i]:Ul.push(i),i=s;do{switch(i.tag){case 3:i.flags|=65536,t&=-t,i.lanes|=t,Wa(i,ps(0,c,t));break e;case 1:l=c;var b=i.type,C=i.stateNode;if(!(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,Wa(i,ms(i,l,t));break e}}i=i.return}while(null!==i)}yc(n)}catch(e){t=e,_l===n&&null!==n&&(_l=n=n.return);continue}break}}function mc(){var e=xl.current;return xl.current=Ji,null===e?Ji:e}function fc(){0!==Fl&&3!==Fl&&2!==Fl||(Fl=4),null===Il||!(268435455&Dl)&&!(268435455&Ll)||sc(Il,Pl)}function gc(e,t){var n=Bl;Bl|=2;var r=mc();for(Il===e&&Pl===t||(Hl=null,hc(e,t));;)try{Ac();break}catch(t){pc(e,t)}if(Sa(),Bl=n,xl.current=r,null!==_l)throw Error(a(261));return Il=null,Pl=0,Fl}function Ac(){for(;null!==_l;)Cc(_l)}function bc(){for(;null!==_l&&!qe();)Cc(_l)}function Cc(e){var t=El(e.alternate,e,Nl);e.memoizedProps=e.pendingProps,null===t?yc(e):_l=t,Tl.current=null}function yc(e){var t=e;do{var n=t.alternate;if(e=t.return,32768&t.flags){if(null!==(n=Ys(n,t)))return n.flags&=32767,void(_l=n);if(null===e)return Fl=6,void(_l=null);e.flags|=32768,e.subtreeFlags=0,e.deletions=null}else if(null!==(n=Ks(n,t,Nl)))return void(_l=n);if(null!==(t=t.sibling))return void(_l=t);_l=t=e}while(null!==t);0===Fl&&(Fl=5)}function vc(e,t,n){var r=Ct,o=Sl.transition;try{Sl.transition=null,Ct=1,function(e,t,n,r){do{wc()}while(null!==Yl);if(6&Bl)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&&(_l=Il=null,Pl=0),!(2064&n.subtreeFlags)&&!(2064&n.flags)||Kl||(Kl=!0,Ic(tt,(function(){return wc(),null}))),i=!!(15990&n.flags),15990&n.subtreeFlags||i){i=Sl.transition,Sl.transition=null;var s=Ct;Ct=1;var l=Bl;Bl|=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,Js=t;null!==Js;)if(e=(t=Js).child,1028&t.subtreeFlags&&null!==e)e.return=t,Js=e;else for(;null!==Js;){t=Js;try{var f=t.alternate;if(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:ns(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){kc(t,t.return,e)}if(null!==(e=t.sibling)){e.return=t.return,Js=e;break}Js=t.return}f=tl,tl=!1}(e,n),gl(n,e),mr(to),Vt=!!eo,to=eo=null,e.current=n,bl(n,e,o),Ze(),Bl=l,Ct=s,Sl.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&~e.current.flags))}catch(e){}}(n.stateNode),rc(e,Xe()),null!==t)for(r=e.onRecoverableError,n=0;n<t.length;n++)r((o=t[n]).value,{componentStack:o.stack,digest:o.digest});if(Vl)throw Vl=!1,e=jl,jl=null,e;!!(1&ql)&&0!==e.tag&&wc(),1&(i=e.pendingLanes)?e===Xl?Zl++:(Zl=0,Xl=e):Zl=0,Ho()}(e,t,n,r)}finally{Sl.transition=o,Ct=r}return null}function wc(){if(null!==Yl){var e=yt(ql),t=Sl.transition,n=Ct;try{if(Sl.transition=null,Ct=16>e?16:e,null===Yl)var r=!1;else{if(e=Yl,Yl=null,ql=0,6&Bl)throw Error(a(331));var o=Bl;for(Bl|=4,Js=e.current;null!==Js;){var i=Js,s=i.child;if(16&Js.flags){var l=i.deletions;if(null!==l){for(var c=0;c<l.length;c++){var d=l[c];for(Js=d;null!==Js;){var u=Js;switch(u.tag){case 0:case 11:case 15:nl(8,u,i)}var h=u.child;if(null!==h)h.return=u,Js=h;else for(;null!==Js;){var p=(u=Js).sibling,m=u.return;if(al(u),u===d){Js=null;break}if(null!==p){p.return=m,Js=p;break}Js=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)}}Js=i}}if(2064&i.subtreeFlags&&null!==s)s.return=i,Js=s;else e:for(;null!==Js;){if(2048&(i=Js).flags)switch(i.tag){case 0:case 11:case 15:nl(9,i,i.return)}var b=i.sibling;if(null!==b){b.return=i.return,Js=b;break e}Js=i.return}}var C=e.current;for(Js=C;null!==Js;){var y=(s=Js).child;if(2064&s.subtreeFlags&&null!==y)y.return=s,Js=y;else e:for(s=C;null!==Js;){if(2048&(l=Js).flags)try{switch(l.tag){case 0:case 11:case 15:rl(9,l)}}catch(e){kc(l,l.return,e)}if(l===s){Js=null;break e}var v=l.sibling;if(null!==v){v.return=l.return,Js=v;break e}Js=l.return}}if(Bl=o,Ho(),at&&"function"==typeof at.onPostCommitFiberRoot)try{at.onPostCommitFiberRoot(ot,e)}catch(e){}r=!0}return r}finally{Ct=n,Sl.transition=t}}return!1}function Ec(e,t,n){e=za(e,t=ps(0,t=cs(n,t),1),1),t=ec(),null!==e&&(At(e,1,t),rc(e,t))}function kc(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=za(t,e=ms(t,e=cs(n,e),1),1),e=ec(),null!==t&&(At(t,1,e),rc(t,e));break}}t=t.return}}function xc(e,t,n){var r=e.pingCache;null!==r&&r.delete(t),t=ec(),e.pingedLanes|=e.suspendedLanes&n,Il===e&&(Pl&n)===n&&(4===Fl||3===Fl&&(130023424&Pl)===Pl&&500>Xe()-Gl?hc(e,0):Ol|=n),rc(e,t)}function Tc(e,t){0===t&&(1&e.mode?(t=dt,!(130023424&(dt<<=1))&&(dt=4194304)):t=1);var n=ec();null!==(e=Ra(e,t))&&(At(e,t,n),rc(e,n))}function Sc(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),Tc(e,n)}function Bc(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 Ke(e,t)}function _c(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 Pc(e,t,n,r){return new _c(e,t,n,r)}function Nc(e){return!(!(e=e.prototype)||!e.isReactComponent)}function Mc(e,t){var n=e.alternate;return null===n?((n=Pc(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 Fc(e,t,n,r,o,i){var s=2;if(r=e,"function"==typeof e)Nc(e)&&(s=1);else if("string"==typeof e)s=5;else e:switch(e){case E:return Rc(n.children,o,i,t);case k:s=8,o|=8;break;case x:return(e=Pc(12,n,t,2|o)).elementType=x,e.lanes=i,e;case I:return(e=Pc(13,n,t,o)).elementType=I,e.lanes=i,e;case _:return(e=Pc(19,n,t,o)).elementType=_,e.lanes=i,e;case M:return Dc(n,o,i,t);default:if("object"==typeof e&&null!==e)switch(e.$$typeof){case T:s=10;break e;case S: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=Pc(s,n,t,o)).elementType=e,t.type=r,t.lanes=i,t}function Rc(e,t,n,r){return(e=Pc(7,e,r,t)).lanes=n,e}function Dc(e,t,n,r){return(e=Pc(22,e,r,t)).elementType=M,e.lanes=n,e.stateNode={isHidden:!1},e}function Lc(e,t,n){return(e=Pc(6,e,null,t)).lanes=n,e}function Oc(e,t,n){return(t=Pc(4,null!==e.children?e.children:[],e.key,t)).lanes=n,t.stateNode={containerInfo:e.containerInfo,pendingChildren:null,implementation:e.implementation},t}function Uc(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 zc(e,t,n,r,o,a,i,s,l){return e=new Uc(e,t,n,s,l),1===t?(t=1,!0===a&&(t|=8)):t=0,a=Pc(3,null,null,t),e.current=a,a.stateNode=e,a.memoizedState={element:r,isDehydrated:n,cache:null,transitions:null,pendingSuspenseBoundaries:null},La(a),e}function Gc(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 Wc(e,t,n,r,o,a,i,s,l){return(e=zc(n,r,!0,e,0,a,0,s,l)).context=Gc(null),n=e.current,(a=Ua(r=ec(),o=tc(n))).callback=null!=t?t:null,za(n,a,o),e.current.lanes=o,At(e,o,r),rc(e,r),e}function Hc(e,t,n,r){var o=t.current,a=ec(),i=tc(o);return n=Gc(n),null===t.context?t.context=n:t.pendingContext=n,(t=Ua(a,i)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),null!==(e=za(o,t,i))&&(nc(e,o,i,a),Ga(e,o,i)),i}function Vc(e){return(e=e.current).child?(e.child.tag,e.child.stateNode):null}function jc(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){jc(e,t),(e=e.alternate)&&jc(e,t)}El=function(e,t,n){if(null!==e)if(e.memoizedProps!==t.pendingProps||_o.current)Cs=!0;else{if(!(e.lanes&n||128&t.flags))return Cs=!1,function(e,t,n){switch(t.tag){case 3:Is(t),ma();break;case 5:Ja(t);break;case 1:Mo(t.type)&&Lo(t);break;case 4:Za(t,t.stateNode.containerInfo);break;case 10:var r=t.type._context,o=t.memoizedProps.value;So(Ea,r._currentValue),r._currentValue=o;break;case 13:if(null!==(r=t.memoizedState))return null!==r.dehydrated?(So(ei,1&ei.current),t.flags|=128,null):n&t.child.childLanes?Ls(e,t,n):(So(ei,1&ei.current),null!==(e=Vs(e,t,n))?e.sibling:null);So(ei,1&ei.current);break;case 19:if(r=!!(n&t.childLanes),128&e.flags){if(r)return Ws(e,t,n);t.flags|=128}if(null!==(o=t.memoizedState)&&(o.rendering=null,o.tail=null,o.lastEffect=null),So(ei,ei.current),r)break;return null;case 22:case 23:return t.lanes=0,ks(e,t,n)}return Vs(e,t,n)}(e,t,n);Cs=!!(131072&e.flags)}else Cs=!1,aa&&1048576&t.flags&&ea(t,Ko,t.index);switch(t.lanes=0,t.tag){case 2:var r=t.type;Hs(e,t),e=t.pendingProps;var o=No(t,Io.current);_a(t,n),o=gi(null,t,r,e,o,n);var i=Ai();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,La(t),o.updater=os,t.stateNode=o,o._reactInternals=t,ls(t,r,e,n),t=Bs(null,t,r,!0,i,n)):(t.tag=0,aa&&i&&ta(t),ys(null,t,o,n),t=t.child),t;case 16:r=t.elementType;e:{switch(Hs(e,t),e=t.pendingProps,r=(o=r._init)(r._payload),t.type=r,o=t.tag=function(e){if("function"==typeof e)return Nc(e)?1:0;if(null!=e){if((e=e.$$typeof)===B)return 11;if(e===P)return 14}return 2}(r),e=ns(r,e),o){case 0:t=Ts(null,t,r,e,n);break e;case 1:t=Ss(null,t,r,e,n);break e;case 11:t=vs(null,t,r,e,n);break e;case 14:t=ws(null,t,r,ns(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:ns(r,o),n);case 1:return r=t.type,o=t.pendingProps,Ss(e,t,r,o=t.elementType===r?o:ns(r,o),n);case 3:e:{if(Is(t),null===e)throw Error(a(387));r=t.pendingProps,o=(i=t.memoizedState).element,Oa(e,t),Ha(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=_s(e,t,r,n,o=cs(Error(a(423)),t));break e}if(r!==o){t=_s(e,t,r,n,o=cs(Error(a(424)),t));break e}for(oa=co(t.stateNode.containerInfo.firstChild),ra=t,aa=!0,ia=null,n=wa(t,null,r,n),t.child=n;n;)n.flags=-3&n.flags|4096,n=n.sibling}else{if(ma(),r===o){t=Vs(e,t,n);break e}ys(e,t,r,n)}t=t.child}return t;case 5:return Ja(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),xs(e,t),ys(e,t,s,n),t.child;case 6:return null===e&&da(t),null;case 13:return Ls(e,t,n);case 4:return Za(t,t.stateNode.containerInfo),r=t.pendingProps,null===e?t.child=va(t,null,r,n):ys(e,t,r,n),t.child;case 11:return r=t.type,o=t.pendingProps,vs(e,t,r,o=t.elementType===r?o:ns(r,o),n);case 7:return ys(e,t,t.pendingProps,n),t.child;case 8:case 12:return ys(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,So(Ea,r._currentValue),r._currentValue=s,null!==i)if(sr(i.value,s)){if(i.children===o.children&&!_o.current){t=Vs(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=Ua(-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),Ia(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),Ia(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}ys(e,t,o.children,n),t=t.child}return t;case 9:return o=t.type,r=t.pendingProps.children,_a(t,n),r=r(o=Pa(o)),t.flags|=1,ys(e,t,r,n),t.child;case 14:return o=ns(r=t.type,t.pendingProps),ws(e,t,r,o=ns(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:ns(r,o),Hs(e,t),t.tag=1,Mo(r)?(e=!0,Lo(t)):e=!1,_a(t,n),is(t,r,o),ls(t,r,o,n),Bs(null,t,r,!0,e,n);case 19:return Ws(e,t,n);case 22:return ks(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 Zc(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 Jc(){}function Qc(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=Vc(i);s.call(e)}}Hc(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=Vc(i);a.call(e)}}var i=Wc(t,r,e,0,null,!1,0,"",Jc);return e._reactRootContainer=i,e[fo]=i.current,Wr(8===e.nodeType?e.parentNode:e),dc(),i}for(;o=e.lastChild;)e.removeChild(o);if("function"==typeof r){var s=r;r=function(){var e=Vc(l);s.call(e)}}var l=zc(e,0,!1,null,0,!1,0,"",Jc);return e._reactRootContainer=l,e[fo]=l.current,Wr(8===e.nodeType?e.parentNode:e),dc((function(){Hc(t,l,n,r)})),l}(n,t,e,o,r);return Vc(i)}qc.prototype.render=Yc.prototype.render=function(e){var t=this._internalRoot;if(null===t)throw Error(a(409));Hc(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;dc((function(){Hc(null,e,null,null)})),t[fo]=null}},qc.prototype.unstable_scheduleHydration=function(e){if(e){var t=kt();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),rc(t,Xe()),!(6&Bl)&&(Wl=Xe()+500,Ho()))}break;case 13:dc((function(){var t=Ra(e,1);if(null!==t){var n=ec();nc(t,e,1,n)}})),$c(e,1)}},wt=function(e){if(13===e.tag){var t=Ra(e,134217728);null!==t&&nc(t,e,134217728,ec()),$c(e,134217728)}},Et=function(e){if(13===e.tag){var t=tc(e),n=Ra(e,t);null!==n&&nc(n,e,t,ec()),$c(e,t)}},kt=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(J(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));K(r),J(r,o)}}}break;case"textarea":ae(e,n);break;case"select":null!=(t=n.value)&&ne(e,!!n.multiple,t,!1)}},Be=cc,Ie=dc;var ed={usingClientEntryPoint:!1,Events:[yo,vo,wo,Te,Se,cc]},td={findFiberByHostInstance:Co,bundleType:0,version:"18.3.1",rendererPackageName:"react-dom"},nd={bundleType:td.bundleType,version:td.version,rendererPackageName:td.rendererPackageName,rendererConfig:td.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:td.findFiberByHostInstance||function(){return null},findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:"18.3.1-next-f1338f8080-20240426"};if("undefined"!=typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var rd=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!rd.isDisabled&&rd.supportsFiber)try{ot=rd.inject(nd),at=rd}catch(de){}}t.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=ed,t.createPortal=function(e,t){var n=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!Zc(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(!Zc(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=zc(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 dc(e)},t.hydrate=function(e,t,n){if(!Xc(t))throw Error(a(200));return Qc(null,e,t,!0,n)},t.hydrateRoot=function(e,t,n){if(!Zc(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=Wc(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 Qc(null,e,t,!1,n)},t.unmountComponentAtNode=function(e){if(!Xc(e))throw Error(a(40));return!!e._reactRootContainer&&(dc((function(){Qc(null,null,e,!1,(function(){e._reactRootContainer=null,e[fo]=null}))})),!0)},t.unstable_batchedUpdates=cc,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 Qc(e,t,n,!1,r)},t.version="18.3.1-next-f1338f8080-20240426"},5338:(e,t,n)=>{"use strict";var r=n(961);t.H=r.createRoot,r.hydrateRoot},961:(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(2551)},6009:(e,t,n)=>{var r,o;window,e.exports=(r=n(5556),o=n(6540),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}]))},5287:(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,E={current:null},k={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)&&!k.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:E.current}}function T(e){return"object"==typeof e&&null!==e&&e.$$typeof===n}var S=/\/+/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 I(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(S,"$&/")+"/"),I(i,t,o,"",(function(e){return e}))):null!=i&&(T(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(S,"$&/")+"/")+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+=I(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+=I(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 _(e,t,n){if(null==e)return e;var r=[],o=0;return I(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:E};function R(){throw Error("act(...) is not supported in production builds of React.")}t.Children={map:_,forEach:function(e,t,n){_(e,(function(){t.apply(this,arguments)}),n)},count:function(e){var t=0;return _(e,(function(){t++})),t},toArray:function(e){return _(e,(function(e){return e}))||[]},only:function(e){if(!T(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.act=R,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=E.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)&&!k.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=T,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=R,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.3.1"},6540:(e,t,n)=>{"use strict";e.exports=n(5287)},9448: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(T(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,T(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),k="function"==typeof i?i((function(){return y}),m,o):i,x=E(p),T=s.title?"color: "+s.title(w)+";":"",S=["color: gray; font-weight: lighter;"];S.push(T),t.timestamp&&S.push("color: gray; font-weight: lighter;"),t.duration&&S.push("color: gray; font-weight: lighter;");var B=a(w,x,C);try{k?s.title&&d?n.groupCollapsed.apply(n,["%c "+B].concat(S)):n.groupCollapsed(B):s.title&&d?n.group.apply(n,["%c "+B].concat(S)):n.group(B)}catch(e){n.log(B)}var I=A(l,w,[f],"prevState"),_=A(l,w,[w],"action"),P=A(l,w,[b,f],"error"),N=A(l,w,[y],"nextState");if(I)if(s.prevState){var M="color: "+s.prevState(f)+"; font-weight: bold";n[I]("%c prev state",M,f)}else n[I]("prev state",f);if(_)if(s.action){var F="color: "+s.action(w)+"; font-weight: bold";n[_]("%c action ",F,w)}else n[_]("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,k);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({},I,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=k.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=k.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},E=function(e){return w(e.getHours(),2)+":"+w(e.getMinutes(),2)+":"+w(e.getSeconds(),2)+"."+w(e.getMilliseconds(),3)},k="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},T=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)},S=[];y="object"===(void 0===n.g?"undefined":x(n.g))&&n.g?n.g:"undefined"!=typeof window?window:{},(v=y.DeepDiff)&&S.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 S&&(S.forEach((function(e){e()})),S=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:"}},I={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},_=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=I,e.createLogger=C,e.logger=_,e.default=_,Object.defineProperty(e,"__esModule",{value:!0})}(t)},7463:(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(T),T=-1),m=!0;var a=p;try{for(y(n),h=r(c);null!==h&&(!(h.expirationTime>n)||e&&!I());){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 E,k=!1,x=null,T=-1,S=5,B=-1;function I(){return!(t.unstable_now()-B<S)}function _(){if(null!==x){var e=t.unstable_now();B=e;var n=!0;try{n=x(!0,e)}finally{n?E():(k=!1,x=null)}}else k=!1}if("function"==typeof C)E=function(){C(_)};else if("undefined"!=typeof MessageChannel){var P=new MessageChannel,N=P.port2;P.port1.onmessage=_,E=function(){N.postMessage(null)}}else E=function(){A(_,0)};function M(e){x=e,k||(k=!0,E())}function F(e,n){T=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"):S=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(T),T=-1):g=!0,F(v,a-i))):(e.sortIndex=s,n(c,e),f||m||(f=!0,M(w))),e},t.unstable_shouldYield=I,t.unstable_wrapCallback=function(e){var t=p;return function(){var n=p;p=t;try{return e.apply(this,arguments)}finally{p=n}}}},9982:(e,t,n)=>{"use strict";e.exports=n(7463)},5072: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}}},7659: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)}},540:e=>{"use strict";e.exports=function(e){var t=document.createElement("style");return e.setAttributes(t,e.attributes),e.insert(t,e.options),t}},5056:(e,t,n)=>{"use strict";e.exports=function(e){var t=n.nc;t&&e.setAttribute("nonce",t)}},7825: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)}}}},1113: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))}}},6426: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()}}},4006:(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},7154:(e,t,n)=>{"use strict";var r=n(6540),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.useSyncExternalStore,i=r.useRef,s=r.useEffect,l=r.useMemo,c=r.useDebugValue;t.useSyncExternalStoreWithSelector=function(e,t,n,r,d){var u=i(null);if(null===u.current){var h={hasValue:!1,value:null};u.current=h}else h=u.current;u=l((function(){function e(e){if(!s){if(s=!0,a=e,e=r(e),void 0!==d&&h.hasValue){var t=h.value;if(d(t,e))return i=t}return i=e}if(t=i,o(a,e))return t;var n=r(e);return void 0!==d&&d(t,n)?t:(a=e,i=n)}var a,i,s=!1,l=void 0===n?null:n;return[function(){return e(t())},null===l?void 0:function(){return e(l())}]}),[t,n,r,d]);var p=a(e,u[0],u[1]);return s((function(){h.hasValue=!0,h.value=p}),[p]),c(p),p}},8418:(e,t,n)=>{"use strict";e.exports=n(7154)},6780:(e,t,n)=>{"use strict";e.exports=n.p+"58c5415e952fb6dddd6b.png"},1808:(e,t,n)=>{"use strict";e.exports=n.p+"ca2af827049e9039ef9c.svg"},4564:(e,t,n)=>{"use strict";e.exports=n.p+"524e896f487119a0b832.svg"},4051:(e,t,n)=>{"use strict";e.exports=n.p+"da1f21c60c7217745dd8.svg"},1986:(e,t,n)=>{"use strict";e.exports=n.p+"4536fd0738f36c3463bc.svg"},6767:(e,t,n)=>{"use strict";e.exports=n.p+"a3196e840709b18a3119.svg"},8232:(e,t,n)=>{"use strict";e.exports=n.p+"7e3ac9afb25cfe809520.svg"},2613:(e,t,n)=>{"use strict";e.exports=n.p+"9a7bd6ec36312a2baa7e.svg"},7216:(e,t,n)=>{"use strict";e.exports=n.p+"9d858d1a3ab57f8ee2e1.svg"},4898:(e,t,n)=>{"use strict";e.exports=n.p+"8aae7b979b04407f71a4.svg"},5199:(e,t,n)=>{"use strict";e.exports=n.p+"6c8063be3afa1d95c902.svg"},1196:(e,t,n)=>{"use strict";e.exports=n.p+"6bd0589a27236471fdab.svg"},5572:(e,t,n)=>{"use strict";e.exports=n.p+"aa867391c311267af5a9.svg"},3659:(e,t,n)=>{"use strict";e.exports=n.p+"731673c749e57bf6f544.svg"},3486:(e,t,n)=>{"use strict";e.exports=n.p+"e4ed50222911c5af9a32.svg"},211:(e,t,n)=>{"use strict";e.exports=n.p+"7273fadce89da05535e5.svg"},1824:(e,t,n)=>{"use strict";e.exports=n.p+"11c5dca6d97c9e10e5b7.svg"},8998:(e,t,n)=>{"use strict";e.exports=n.p+"4ecb077d8715f89c0f87.svg"},129:(e,t,n)=>{"use strict";e.exports=n.p+"9eb1fab2684d1e1f0e26.svg"},1332:(e,t,n)=>{"use strict";e.exports=n.p+"0c510afd6169a0a83f97.svg"},5947:(e,t,n)=>{"use strict";e.exports=n.p+"b805360fcc91834556c9.svg"},1460:(e,t,n)=>{"use strict";e.exports=n.p+"390aa266f451c1005f61.svg"},1863:(e,t,n)=>{"use strict";e.exports=n.p+"c3432220f657733ed05f.svg"},3183:(e,t,n)=>{"use strict";e.exports=n.p+"3c3fda7c08bcc9544c64.svg"},8981:(e,t,n)=>{"use strict";e.exports=n.p+"9103e94f1d34c15d44be.svg"},5995:(e,t,n)=>{"use strict";e.exports=n.p+"7c7ac3c7df370340cfd2.svg"},5799:(e,t,n)=>{"use strict";e.exports=n.p+"fd040fb5f4e7a515bb3c.svg"},6505:(e,t,n)=>{"use strict";e.exports=n.p+"6c6b49af3a86dfdd44e6.svg"},877:(e,t,n)=>{"use strict";e.exports=n.p+"490065792b7e903c9f3e.svg"},2707:(e,t,n)=>{"use strict";e.exports=n.p+"0d5cf282780cd1a5ec64.svg"},2277:(e,t,n)=>{"use strict";e.exports=n.p+"31fe933f3a12be1aa7f3.svg"},4273:(e,t,n)=>{"use strict";e.exports=n.p+"e70722c0fe0ac3d4227b.svg"},852:(e,t,n)=>{"use strict";e.exports=n.p+"d09537c705fb0878eb63.svg"},26:(e,t,n)=>{"use strict";e.exports=n.p+"4260d5db8309a6f83637.svg"},1716:(e,t,n)=>{"use strict";e.exports=n.p+"18e7fdd45099134897d2.svg"},8619:(e,t,n)=>{"use strict";e.exports=n.p+"71730566d6c47ffdc965.svg"},2154:(e,t,n)=>{"use strict";e.exports=n.p+"86e81402ef76d28ff55f.svg"},241:(e,t,n)=>{"use strict";e.exports=n.p+"8b8b909e42722172d494.svg"},9692:(e,t,n)=>{"use strict";e.exports=n.p+"49da6a2153f62ef73d17.svg"},9814:(e,t,n)=>{"use strict";e.exports=n.p+"76e5b29823c9fd62d90d.svg"},3115:(e,t,n)=>{"use strict";e.exports=n.p+"8dab2a6ba757bcc6e9a5.svg"},3717:(e,t,n)=>{"use strict";e.exports=n.p+"2d4b477bc424d35a0245.svg"},8122:(e,t,n)=>{"use strict";e.exports=n.p+"acb8393f3fb9c59b15c9.svg"},4391:(e,t,n)=>{"use strict";e.exports=n.p+"7853c71223701f30d495.svg"},5510:(e,t,n)=>{"use strict";e.exports=n.p+"79eaad4fc0c398100809.svg"},3786:(e,t,n)=>{"use strict";e.exports=n.p+"f8e25c2ebeb0a0725a9e.svg"},9653:(e,t,n)=>{"use strict";e.exports=n.p+"b5698a02eef37ce29146.svg"},9180:(e,t,n)=>{"use strict";e.exports=n.p+"022efb839d22fa54a716.svg"},3803:(e,t,n)=>{"use strict";e.exports=n.p+"fcb532a05dd4b09c2d08.svg"},1392:(e,t,n)=>{"use strict";e.exports=n.p+"d9c199b3e3e469cc5713.svg"},9336:(e,t,n)=>{"use strict";e.exports=n.p+"2e43ad991eb141fc017f.svg"},2390:(e,t,n)=>{"use strict";e.exports=n.p+"2ea5b50b7361e6de561c.svg"},1563:(e,t,n)=>{"use strict";e.exports=n.p+"f0599659345cf76717cd.svg"},5418:(e,t,n)=>{"use strict";e.exports=n.p+"81762b0b1aacd3686a6b.svg"},6942:(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];n&&(e=i(e,a(n)))}return e}function a(e){if("string"==typeof e||"number"==typeof e)return e;if("object"!=typeof e)return"";if(Array.isArray(e))return o.apply(null,e);if(e.toString!==Object.prototype.toString&&!e.toString.toString().includes("[native code]"))return e.toString();var t="";for(var n in e)r.call(e,n)&&e[n]&&(t=i(t,n));return t}function i(e,t){return t?e?e+" "+t:e+t:e}e.exports?(o.default=o,e.exports=o):void 0===(n=function(){return o}.apply(t,[]))||(e.exports=n)}()}},s={};function l(e){var t=s[e];if(void 0!==t)return t.exports;var n=s[e]={id:e,loaded:!1,exports:{}};return i[e].call(n.exports,n,n.exports,l),n.loaded=!0,n.exports}l.m=i,l.c=s,l.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return l.d(t,{a:t}),t},t=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,l.t=function(n,r){if(1&r&&(n=this(n)),8&r)return n;if("object"==typeof n&&n){if(4&r&&n.__esModule)return n;if(16&r&&"function"==typeof n.then)return n}var o=Object.create(null);l.r(o);var a={};e=e||[null,t({}),t([]),t(t)];for(var i=2&r&&n;"object"==typeof i&&!~e.indexOf(i);i=t(i))Object.getOwnPropertyNames(i).forEach((e=>a[e]=()=>n[e]));return a.default=()=>n,l.d(o,a),o},l.d=(e,t)=>{for(var n in t)l.o(t,n)&&!l.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},l.f={},l.e=e=>Promise.all(Object.keys(l.f).reduce(((t,n)=>(l.f[n](e,t),t)),[])),l.u=e=>e+"."+{136:"4ad3301b8aacf759ea70",171:"621b9df5978342be5662",280:"b4210a48e650408000c3",556:"2be67a37a0c61fdc2485",874:"2a087b9b5a296a9c3fcd"}[e]+".bundle.js",l.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),l.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),l.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n={},l.l=(e,t,r,o)=>{if(n[e])n[e].push(t);else{var a,i;if(void 0!==r)for(var s=document.getElementsByTagName("script"),c=0;c<s.length;c++){var d=s[c];if(d.getAttribute("src")==e){a=d;break}}a||(i=!0,(a=document.createElement("script")).charset="utf-8",a.timeout=120,l.nc&&a.setAttribute("nonce",l.nc),a.src=e),n[e]=[t];var u=(t,r)=>{a.onerror=a.onload=null,clearTimeout(h);var o=n[e];if(delete n[e],a.parentNode&&a.parentNode.removeChild(a),o&&o.forEach((e=>e(r))),t)return t(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),i&&document.head.appendChild(a)}},l.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},l.p="/sidekiq/profile-viewer/",(()=>{l.b=document.baseURI||self.location.href;var e={792:0};l.f.j=(t,n)=>{var r=l.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=l.p+l.u(t),i=new Error;l.l(a,(n=>{if(l.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;i.message="Loading chunk "+t+" failed.\n("+o+": "+a+")",i.name="ChunkLoadError",i.type=o,i.request=a,r[1](i)}}),"chunk-"+t,t)}};var t=(t,n)=>{var r,o,[a,i,s]=n,c=0;if(a.some((t=>0!==e[t]))){for(r in i)l.o(i,r)&&(l.m[r]=i[r]);s&&s(l)}for(t&&t(n);c<a.length;c++)o=a[c],l.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))})(),l.nc=void 0,r={},o={1383:function(){return{}}},a={556:[1383]},l.w={},l.f.wasm=function(e,t){(a[e]||[]).forEach((function(n,a){var i=r[n];if(i)t.push(i);else{var s,c=o[n](),d=fetch(l.p+""+{556:{1383:"2f37d1addc2d2f5b699e"}}[e][n]+".module.wasm");s=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)})),t.push(r[n]=s.then((function(e){return l.w[n]=(e.instance||e).exports})))}}))},l(959)})();
|
201
|
-
//# sourceMappingURL=main.ac7130d34ce3b872712a.bundle.js.map
|