1self.addEventListener(`message`,e=>{let t=JSON.parse(e.data);if(typeof t==`object`&&t&&`id`in t&&`title`in t&&`targetURL`in t){let e=t;self.registration.showNotification(e.title,{tag:`${e.id}`,renotify:!1,body:e.body,badge:e.icon??`/favicon-32x32.png`,icon:e.icon??`/android-chrome-256x256.png`,data:{originalMessage:e}})}}),self.addEventListener(`notificationclick`,e=>{let t=e.notification.data.originalMessage,n=t.targetURL?new URL(t.targetURL,self.location.origin).href:null;e.waitUntil(self.clients.matchAll({type:`window`,includeUncontrolled:!0}).then(e=>{if(n){for(let t of e)if(t.url===n)return t.focus();return self.clients.openWindow(n)}return e[0]?e[0].focus():self.clients.openWindow(`https://stock3.com`)}))});
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.