1"use strict";(self.webpackChunksportlyzer=self.webpackChunksportlyzer||[]).push([[237],{33237(e,t,n){n.d(t,{onFCP:()=>v,onTTFB:()=>y});let r=-1;const i=e=>{addEventListener("pageshow",t=>{t.persisted&&(r=t.timeStamp,e(t))},!0)},a=(e,t,n,r)=>{let i,a;return o=>{t.value>=0&&(o||r)&&(a=t.value-(i??0),(a||void 0===i)&&(i=t.value,t.delta=a,t.rating=((e,t)=>e>t[1]?"poor":e>t[0]?"needs-improvement":"good")(t.value,n),e(t)))}},o=()=>{const e=performance.getEntriesByType("navigation")[0];if(e&&e.responseStart>0&&e.responseStart<performance.now())return e},s=()=>o()?.activationStart??0,d=(e,t=-1)=>{const n=o();let i="navigate";return r>=0?i="back-forward-cache":n&&(document.prerendering||s()>0?i="prerender":document.wasDiscarded?i="restore":n.type&&(i=n.type.replace(/_/g,"-"))),{name:e,value:t,rating:"good",delta:0,entries:[],id:`v5-${Date.now()}-${Math.floor(8999999999999*Math.random())+1e12}`,navigationType:i}};new WeakMap;let c=-1;const p=new Set,m=()=>"hidden"!==document.visibilityState||document.prerendering?1/0:0,l=e=>{if("hidden"===document.visibilityState){if("visibilitychange"===e.type)for(const e of p)e();isFinite(c)||(c="visibilitychange"===e.type?e.timeStamp:0,removeEventListener("prerenderingchange",l,!0))}},u=e=>{document.prerendering?addEventListener("prerenderingchange",e,!0):e()},g=[1800,3e3],v=(e,t={})=>{u(()=>{const n=(()=>{if(c<0){const e=s(),t=document.prerendering?void 0:globalThis.performance.getEntriesByType("visibility-state").find(t=>"hidden"===t.name&&t.startTime>=e)?.startTime;c=t??m(),addEventListener("visibilitychange",l,!0),addEventListener("prerenderingchange",l,!0),i(()=>{setTimeout(()=>{c=m()})})}return{get firstHiddenTime(){return c},onHidden(e){p.add(e)}}})();let r,o=d("FCP");const u=((e,t,n={})=>{try{if(PerformanceObserver.supportedEntryTypes.includes(e)){const r=new PerformanceObserver(e=>{queueMicrotask(()=>{t(e.getEntries())})});return r.observe({type:e,buffered:!0,...n}),r}}catch{}})("paint",e=>{for(const t of e)"first-contentful-paint"===t.name&&(u.disconnect(),t.startTime<n.firstHiddenTime&&(o.value=Math.max(t.startTime-s(),0),o.entries.push(t),r(!0)))});u&&(r=a(e,o,g,t.reportAllChanges),i(n=>{o=d("FCP"),r=a(e,o,g,t.reportAllChanges),(e=>{requestAnimationFrame(()=>requestAnimationFrame(e))})(()=>{o.value=performance.now()-n.timeStamp,r(!0)})}))})},f=[800,1800],h=e=>{document.prerendering?u(()=>h(e)):"complete"!==document.readyState?addEventListener("load",()=>h(e),!0):setTimeout(e)},y=(e,t={})=>{let n=d("TTFB"),r=a(e,n,f,t.reportAllChanges);h(()=>{const c=o();c&&(n.value=Math.max(c.responseStart-s(),0),n.entries=[c],r(!0),i(()=>{n=d("TTFB",0),r=a(e,n,f,t.reportAllChanges),r(!0)}))})}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.