const validFilename=/^[\w\\/.]+$/i,replacePattern=/[^\w\\/.]/gi,replaceChar="_",allowedExtensions=["html","css","js","xml","png","jpg","gif","xap","xsl","ico"],swUrl=new URL(location.href),swDomain=swUrl.host,swPathname=swUrl.pathname,swBaseUrl=swPathname.substr(0,swPathname.indexOf("sw.js")),allowedFileExtensionsRegex=new RegExp(`\\.(${allowedExtensions.join("|")})$`);self.addEventListener("fetch",function(e){if("GET"===e.request.method){const t=new URL(e.request.url),s=t.pathname,r=t.host,n=s.indexOf(swBaseUrl),a=decodeURI(s.substr(n+swBaseUrl.length)),l=a.substr(a.lastIndexOf(".")),i=!allowedFileExtensionsRegex.test(l);if(r===swDomain&&s.startsWith(swBaseUrl)&&(a.length>0&&!validFilename.test(a)||l.length>0&&i)){let s=a.replace(replacePattern,"_");i&&(s+=".js");const n=`${t.protocol}//${r}/${swBaseUrl}/${encodeURI(s)}${t.search}`,l=new Request(n,{method:e.request.method,headers:e.request.headers,referrer:e.request.referrer,referrerPolicy:e.request.referrerPolicy,mode:e.request.mode,credentials:e.request.credentials,cache:e.request.cache,redirect:e.request.redirect,integrity:e.request.integrity});e.respondWith(fetch(l))}}}),self.addEventListener("install",function(e){e.waitUntil(self.skipWaiting())}),self.addEventListener("activate",function(e){e.waitUntil(self.clients.claim())});