1window.RUMCollector={endpoint:rumCollectorData.endpoint,waitOnLoad:rumCollectorData.waitOnLoad||3e3,sampleRate:rumCollectorData.sampleRate||.1,vitalsRate:rumCollectorData.vitalsRate||0,vitalsScript:rumCollectorData.vitalsScript,initialized:!1,viewId:null,init(){if(this.initialized)return;if(!navigator.sendBeacon)return;this.initialized=!0;const t=Math.random();this.vitalsScript&&this.vitalsRate>0&&t<Math.max(this.vitalsRate,this.sampleRate)&&this.loadVitals(),t<this.sampleRate&&this.attachLoadListener()},attachLoadListener(){const t=window.requestIdleCallback||(t=>setTimeout(t,this.waitOnLoad));window.addEventListener("load",()=>{t(()=>{try{const t={type:"pageload",timestamp:(new Date).toISOString(),domain:window.location.hostname,url:window.location.href,performance:this.collectPerformanceMetrics(),resources:this.collectResourceTimings()};if(!t.performance)return;this.viewId&&(t.view_id=this.viewId),this.send(t)}catch(t){console.warn("RUM Collection failed:",t)}},{timeout:this.waitOnLoad})},{passive:!0})},loadVitals(){this.viewId=this.generateViewId();const t=document.createElement("script");t.src=this.vitalsScript,t.async=!0,document.head.appendChild(t)},generateViewId(){const t=new Uint8Array(12);if(window.crypto&&window.crypto.getRandomValues)window.crypto.getRandomValues(t);else for(let e=0;e<t.length;e++)t[e]=Math.floor(256*Math.random());return Array.from(t,t=>t.toString(16).padStart(2,"0")).join("")},collectPerformanceMetrics(){const t=performance.getEntriesByType("navigation")[0];if(t&&0!==t.responseEnd)return{navigationType:t.type,startTime:t.startTime,redirectStart:t.redirectStart,redirectEnd:t.redirectEnd,workerStart:t.workerStart,fetchStart:t.fetchStart,domainLookupStart:t.domainLookupStart,domainLookupEnd:t.domainLookupEnd,connectStart:t.connectStart,secureConnectionStart:t.secureConnectionStart,connectEnd:t.connectEnd,requestStart:t.requestStart,responseStart:t.responseStart,responseEnd:t.responseEnd,domInteractive:t.domInteractive,domContentLoadedEventStart:t.domContentLoadedEventStart,domContentLoadedEventEnd:t.domContentLoadedEventEnd,domComplete:t.domComplete,loadEventStart:t.loadEventStart,loadEventEnd:t.loadEventEnd,transferSize:t.transferSize}},collectResourceTimings:()=>performance.getEntriesByType("resource").filter(t=>t.name.startsWith(window.location.origin)).map(t=>({name:t.name,initiatorType:t.initiatorType,startTime:t.startTime,redirectStart:t.redirectStart,redirectEnd:t.redirectEnd,workerStart:t.workerStart,fetchStart:t.fetchStart,domainLookupStart:t.domainLookupStart,domainLookupEnd:t.domainLookupEnd,connectStart:t.connectStart,secureConnectionStart:t.secureConnectionStart,connectEnd:t.connectEnd,requestStart:t.requestStart,responseStart:t.responseStart,responseEnd:t.responseEnd,transferSize:t.transferSize,encodedBodySize:t.encodedBodySize,decodedBodySize:t.decodedBodySize})),send(t){const e=JSON.stringify(t),n=new Blob([e],{type:"application/json"});!navigator.sendBeacon(this.endpoint,n)&&window.fetch&&window.fetch(this.endpoint,{method:"POST",body:e,keepalive:!0,headers:{"Content-Type":"application/json"}}).catch(()=>{})}},RUMCollector.init();
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.