-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathservice-worker.js
More file actions
3 lines (3 loc) · 29.9 KB
/
service-worker.js
File metadata and controls
3 lines (3 loc) · 29.9 KB
1
2
3
(()=>{"use strict";var e={136(){try{self["workbox:core:7.3.0"]&&_()}catch(e){}},447(){try{self["workbox:precaching:7.3.0"]&&_()}catch(e){}},227(){try{self["workbox:routing:7.3.0"]&&_()}catch(e){}},390(){try{self["workbox:strategies:7.3.0"]&&_()}catch(e){}}},t={};function s(a){var r=t[a];if(void 0!==r)return r.exports;var i=t[a]={exports:{}};return e[a](i,i.exports,s),i.exports}(()=>{var e;let t,a,r;s(136);class i extends Error{constructor(e,t){super(((e,...t)=>{let s=e;return t.length>0&&(s+=` :: ${JSON.stringify(t)}`),s})(e,t)),this.name=e,this.details=t}}let n=new Set,l={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:"u">typeof registration?registration.scope:""},o=e=>[l.prefix,e,l.suffix].filter(e=>e&&e.length>0).join("-"),c=e=>e||o(l.precache);function h(e,t){let s=new URL(e);for(let e of t)s.searchParams.delete(e);return s.href}async function u(e,t,s,a){let r=h(t.url,s);if(t.url===r)return e.match(t,a);let i=Object.assign(Object.assign({},a),{ignoreSearch:!0});for(let n of(await e.keys(t,i)))if(r===h(n.url,s))return e.match(n,a)}class d{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}}async function f(){for(let e of n)await e()}function p(e,t){let s=t();return e.waitUntil(s),s}async function g(e,s){let a=null;if(e.url&&(a=new URL(e.url).origin),a!==self.location.origin)throw new i("cross-origin-copy-response",{origin:a});let r=e.clone(),n={headers:new Headers(r.headers),status:r.status,statusText:r.statusText},l=s?s(n):n,o=!function(){if(void 0===t){let e=new Response("");if("body"in e)try{new Response(e.body),t=!0}catch(e){t=!1}t=!1}return t}()?await r.blob():r.body;return new Response(o,l)}let y="logs",w=(e=()=>new Promise((e,t)=>{let s=indexedDB.open("evtlogs",1);s.onsuccess=t=>{e(s.result)},s.onerror=e=>{console.error("Failed to get db",e),t(s.error)},s.onupgradeneeded=e=>{(e?.target).result.createObjectStore(y,{keyPath:"id",autoIncrement:!0})}}),r=null,()=>r||(r=e())),m=!1,R;async function C(e){if(!m)try{m=!0;let t=await new Promise((e,t)=>{w().then(t=>{t.transaction([y],"readwrite").objectStore(y).getAll().onsuccess=function(t){e((t?.target).result)}})}),s=t.length;if(0===s)return;await b(R,e,t);let a=t[s-1].id;await new Promise((e,t)=>{w().then(s=>{let r=s.transaction([y],"readwrite"),i=IDBKeyRange.bound(0,a,!1,!1);r.objectStore(y).delete(i),r.oncomplete=e,r.onerror=t})})}catch(e){}finally{m=!1}}async function b(e,t,s){let a=new Headers;a.append("Authorization",`Bearer ${t}`),a.append("Content-Type","application/json");let r={method:"POST",headers:a,body:JSON.stringify(s)};if(!(await fetch(e,r)).ok)throw Error("Just try again later")}s(447);class v{constructor(){this.updatedURLs=[],this.notUpdatedURLs=[],this.handlerWillStart=async({request:e,state:t})=>{t&&(t.originalRequest=e)},this.cachedResponseWillBeUsed=async({event:e,state:t,cachedResponse:s})=>{if("install"===e.type&&t&&t.originalRequest&&t.originalRequest instanceof Request){let e=t.originalRequest.url;s?this.notUpdatedURLs.push(e):this.updatedURLs.push(e)}return s}}}class L{constructor({precacheController:e}){this.cacheKeyWillBeUsed=async({request:e,params:t})=>{let s=(null==t?void 0:t.cacheKey)||this._precacheController.getCacheKeyForURL(e.url);return s?new Request(s,{headers:e.headers}):e},this._precacheController=e}}function U(e){return"string"==typeof e?new Request(e):e}s(390);class T{constructor(e,t){for(const s of(this._cacheKeys={},Object.assign(this,t),this.event=t.event,this._strategy=e,this._handlerDeferred=new d,this._extendLifetimePromises=[],this._plugins=[...e.plugins],this._pluginStateMap=new Map,this._plugins))this._pluginStateMap.set(s,{});this.event.waitUntil(this._handlerDeferred.promise)}async fetch(e){let{event:t}=this,s=U(e);if("navigate"===s.mode&&t instanceof FetchEvent&&t.preloadResponse){let e=await t.preloadResponse;if(e)return e}let a=this.hasCallback("fetchDidFail")?s.clone():null;try{for(let e of this.iterateCallbacks("requestWillFetch"))s=await e({request:s.clone(),event:t})}catch(e){if(e instanceof Error)throw new i("plugin-error-request-will-fetch",{thrownErrorMessage:e.message})}let r=s.clone();try{let e;for(let a of(e=await fetch(s,"navigate"===s.mode?void 0:this._strategy.fetchOptions),this.iterateCallbacks("fetchDidSucceed")))e=await a({event:t,request:r,response:e});return e}catch(e){throw a&&await this.runCallbacks("fetchDidFail",{error:e,event:t,originalRequest:a.clone(),request:r.clone()}),e}}async fetchAndCachePut(e){let t=await this.fetch(e),s=t.clone();return this.waitUntil(this.cachePut(e,s)),t}async cacheMatch(e){let t,s=U(e),{cacheName:a,matchOptions:r}=this._strategy,i=await this.getCacheKey(s,"read"),n=Object.assign(Object.assign({},r),{cacheName:a});for(let e of(t=await caches.match(i,n),this.iterateCallbacks("cachedResponseWillBeUsed")))t=await e({cacheName:a,matchOptions:r,cachedResponse:t,request:i,event:this.event})||void 0;return t}async cachePut(e,t){let s=U(e);await new Promise(e=>setTimeout(e,0));let a=await this.getCacheKey(s,"write");if(!t)throw new i("cache-put-with-no-response",{url:new URL(String(a.url),location.href).href.replace(RegExp(`^${location.origin}`),"")});let r=await this._ensureResponseSafeToCache(t);if(!r)return!1;let{cacheName:n,matchOptions:l}=this._strategy,o=await self.caches.open(n),c=this.hasCallback("cacheDidUpdate"),h=c?await u(o,a.clone(),["__WB_REVISION__"],l):null;try{await o.put(a,c?r.clone():r)}catch(e){if(e instanceof Error)throw"QuotaExceededError"===e.name&&await f(),e}for(let e of this.iterateCallbacks("cacheDidUpdate"))await e({cacheName:n,oldResponse:h,newResponse:r.clone(),request:a,event:this.event});return!0}async getCacheKey(e,t){let s=`${e.url} | ${t}`;if(!this._cacheKeys[s]){let a=e;for(let e of this.iterateCallbacks("cacheKeyWillBeUsed"))a=U(await e({mode:t,request:a,event:this.event,params:this.params}));this._cacheKeys[s]=a}return this._cacheKeys[s]}hasCallback(e){for(let t of this._strategy.plugins)if(e in t)return!0;return!1}async runCallbacks(e,t){for(let s of this.iterateCallbacks(e))await s(t)}*iterateCallbacks(e){for(let t of this._strategy.plugins)if("function"==typeof t[e]){let s=this._pluginStateMap.get(t),a=a=>{let r=Object.assign(Object.assign({},a),{state:s});return t[e](r)};yield a}}waitUntil(e){return this._extendLifetimePromises.push(e),e}async doneWaiting(){for(;this._extendLifetimePromises.length;){let e=this._extendLifetimePromises.splice(0),t=(await Promise.allSettled(e)).find(e=>"rejected"===e.status);if(t)throw t.reason}}destroy(){this._handlerDeferred.resolve(null)}async _ensureResponseSafeToCache(e){let t=e,s=!1;for(let e of this.iterateCallbacks("cacheWillUpdate"))if(t=await e({request:this.request,response:t,event:this.event})||void 0,s=!0,!t)break;return!s&&t&&200!==t.status&&(t=void 0),t}}class K{constructor(e={}){this.cacheName=(e=>e||o(l.runtime))(e.cacheName),this.plugins=e.plugins||[],this.fetchOptions=e.fetchOptions,this.matchOptions=e.matchOptions}handle(e){let[t]=this.handleAll(e);return t}handleAll(e){e instanceof FetchEvent&&(e={event:e,request:e.request});let t=e.event,s="string"==typeof e.request?new Request(e.request):e.request,a=new T(this,{event:t,request:s,params:"params"in e?e.params:void 0}),r=this._getResponse(a,s,t),i=this._awaitComplete(r,a,s,t);return[r,i]}async _getResponse(e,t,s){let a;await e.runCallbacks("handlerWillStart",{event:s,request:t});try{if(!(a=await this._handle(t,e))||"error"===a.type)throw new i("no-response",{url:t.url})}catch(r){if(r instanceof Error){for(let i of e.iterateCallbacks("handlerDidError"))if(a=await i({error:r,event:s,request:t}))break}if(a);else throw r}for(let r of e.iterateCallbacks("handlerWillRespond"))a=await r({event:s,request:t,response:a});return a}async _awaitComplete(e,t,s,a){let r,i;try{r=await e}catch(e){}try{await t.runCallbacks("handlerDidRespond",{event:a,request:s,response:r}),await t.doneWaiting()}catch(e){e instanceof Error&&(i=e)}if(await t.runCallbacks("handlerDidComplete",{event:a,request:s,response:r,error:i}),t.destroy(),i)throw i}}class k extends K{constructor(e={}){e.cacheName=c(e.cacheName),super(e),this._fallbackToNetwork=!1!==e.fallbackToNetwork,this.plugins.push(k.copyRedirectedCacheableResponsesPlugin)}async _handle(e,t){let s=await t.cacheMatch(e);return s||(t.event&&"install"===t.event.type?await this._handleInstall(e,t):await this._handleFetch(e,t))}async _handleFetch(e,t){let s,a=t.params||{};if(this._fallbackToNetwork){let r=a.integrity,i=e.integrity,n=!i||i===r;s=await t.fetch(new Request(e,{integrity:"no-cors"!==e.mode?i||r:void 0})),r&&n&&"no-cors"!==e.mode&&(this._useDefaultCacheabilityPluginIfNeeded(),await t.cachePut(e,s.clone()))}else throw new i("missing-precache-entry",{cacheName:this.cacheName,url:e.url});return s}async _handleInstall(e,t){this._useDefaultCacheabilityPluginIfNeeded();let s=await t.fetch(e);if(!await t.cachePut(e,s.clone()))throw new i("bad-precaching-response",{url:e.url,status:s.status});return s}_useDefaultCacheabilityPluginIfNeeded(){let e=null,t=0;for(let[s,a]of this.plugins.entries())a!==k.copyRedirectedCacheableResponsesPlugin&&(a===k.defaultPrecacheCacheabilityPlugin&&(e=s),a.cacheWillUpdate&&t++);0===t?this.plugins.push(k.defaultPrecacheCacheabilityPlugin):t>1&&null!==e&&this.plugins.splice(e,1)}}k.defaultPrecacheCacheabilityPlugin={cacheWillUpdate:async({response:e})=>!e||e.status>=400?null:e},k.copyRedirectedCacheableResponsesPlugin={cacheWillUpdate:async({response:e})=>e.redirected?await g(e):e};class P{constructor({cacheName:e,plugins:t=[],fallbackToNetwork:s=!0}={}){this._urlsToCacheKeys=new Map,this._urlsToCacheModes=new Map,this._cacheKeysToIntegrities=new Map,this._strategy=new k({cacheName:c(e),plugins:[...t,new L({precacheController:this})],fallbackToNetwork:s}),this.install=this.install.bind(this),this.activate=this.activate.bind(this)}get strategy(){return this._strategy}precache(e){this.addToCacheList(e),this._installAndActiveListenersAdded||(self.addEventListener("install",this.install),self.addEventListener("activate",this.activate),this._installAndActiveListenersAdded=!0)}addToCacheList(e){let t=[];for(let s of e){"string"==typeof s?t.push(s):s&&void 0===s.revision&&t.push(s.url);let{cacheKey:e,url:a}=function(e){if(!e)throw new i("add-to-cache-list-unexpected-type",{entry:e});if("string"==typeof e){let t=new URL(e,location.href);return{cacheKey:t.href,url:t.href}}let{revision:t,url:s}=e;if(!s)throw new i("add-to-cache-list-unexpected-type",{entry:e});if(!t){let e=new URL(s,location.href);return{cacheKey:e.href,url:e.href}}let a=new URL(s,location.href),r=new URL(s,location.href);return a.searchParams.set("__WB_REVISION__",t),{cacheKey:a.href,url:r.href}}(s),r="string"!=typeof s&&s.revision?"reload":"default";if(this._urlsToCacheKeys.has(a)&&this._urlsToCacheKeys.get(a)!==e)throw new i("add-to-cache-list-conflicting-entries",{firstEntry:this._urlsToCacheKeys.get(a),secondEntry:e});if("string"!=typeof s&&s.integrity){if(this._cacheKeysToIntegrities.has(e)&&this._cacheKeysToIntegrities.get(e)!==s.integrity)throw new i("add-to-cache-list-conflicting-integrities",{url:a});this._cacheKeysToIntegrities.set(e,s.integrity)}this._urlsToCacheKeys.set(a,e),this._urlsToCacheModes.set(a,r),t.length>0&&console.warn(`Workbox is precaching URLs without revision info: ${t.join(", ")}
This is generally NOT safe. Learn more at https://bit.ly/wb-precache`)}}install(e){return p(e,async()=>{let t=new v;for(let[s,a]of(this.strategy.plugins.push(t),this._urlsToCacheKeys)){let t=this._cacheKeysToIntegrities.get(a),r=this._urlsToCacheModes.get(s),i=new Request(s,{integrity:t,cache:r,credentials:"same-origin"});await Promise.all(this.strategy.handleAll({params:{cacheKey:a},request:i,event:e}))}let{updatedURLs:s,notUpdatedURLs:a}=t;return{updatedURLs:s,notUpdatedURLs:a}})}activate(e){return p(e,async()=>{let e=await self.caches.open(this.strategy.cacheName),t=await e.keys(),s=new Set(this._urlsToCacheKeys.values()),a=[];for(let r of t)s.has(r.url)||(await e.delete(r),a.push(r.url));return{deletedURLs:a}})}getURLsToCacheKeys(){return this._urlsToCacheKeys}getCachedURLs(){return[...this._urlsToCacheKeys.keys()]}getCacheKeyForURL(e){let t=new URL(e,location.href);return this._urlsToCacheKeys.get(t.href)}getIntegrityForCacheKey(e){return this._cacheKeysToIntegrities.get(e)}async matchPrecache(e){let t=e instanceof Request?e.url:e,s=this.getCacheKeyForURL(t);if(s)return(await self.caches.open(this.strategy.cacheName)).match(s)}createHandlerBoundToURL(e){let t=this.getCacheKeyForURL(e);if(!t)throw new i("non-precached-url",{url:e});return s=>(s.request=new Request(e),s.params=Object.assign({cacheKey:t},s.params),this.strategy.handle(s))}}s(227);let x=e=>e&&"object"==typeof e?e:{handle:e};class E{constructor(e,t,s="GET"){this.handler=x(t),this.match=e,this.method=s}setCatchHandler(e){this.catchHandler=x(e)}}class q extends E{constructor(e,t,s){super(({url:t})=>{let s=e.exec(t.href);if(s)return t.origin!==location.origin&&0!==s.index?void 0:s.slice(1)},t,s)}}class O{constructor(){this._routes=new Map,this._defaultHandlerMap=new Map}get routes(){return this._routes}addFetchListener(){self.addEventListener("fetch",e=>{let{request:t}=e,s=this.handleRequest({request:t,event:e});s&&e.respondWith(s)})}addCacheListener(){self.addEventListener("message",e=>{if(e.data&&"CACHE_URLS"===e.data.type){let{payload:t}=e.data,s=Promise.all(t.urlsToCache.map(t=>{"string"==typeof t&&(t=[t]);let s=new Request(...t);return this.handleRequest({request:s,event:e})}));e.waitUntil(s),e.ports&&e.ports[0]&&s.then(()=>e.ports[0].postMessage(!0))}})}handleRequest({request:e,event:t}){let s,a=new URL(e.url,location.href);if(!a.protocol.startsWith("http"))return;let r=a.origin===location.origin,{params:i,route:n}=this.findMatchingRoute({event:t,request:e,sameOrigin:r,url:a}),l=n&&n.handler,o=e.method;if(!l&&this._defaultHandlerMap.has(o)&&(l=this._defaultHandlerMap.get(o)),!l)return;try{s=l.handle({url:a,request:e,event:t,params:i})}catch(e){s=Promise.reject(e)}let c=n&&n.catchHandler;return s instanceof Promise&&(this._catchHandler||c)&&(s=s.catch(async s=>{if(c)try{return await c.handle({url:a,request:e,event:t,params:i})}catch(e){e instanceof Error&&(s=e)}if(this._catchHandler)return this._catchHandler.handle({url:a,request:e,event:t});throw s})),s}findMatchingRoute({url:e,sameOrigin:t,request:s,event:a}){for(let r of this._routes.get(s.method)||[]){let i,n=r.match({url:e,sameOrigin:t,request:s,event:a});if(n)return Array.isArray(i=n)&&0===i.length||n.constructor===Object&&0===Object.keys(n).length?i=void 0:"boolean"==typeof n&&(i=void 0),{route:r,params:i}}return{}}setDefaultHandler(e,t="GET"){this._defaultHandlerMap.set(t,x(e))}setCatchHandler(e){this._catchHandler=x(e)}registerRoute(e){this._routes.has(e.method)||this._routes.set(e.method,[]),this._routes.get(e.method).push(e)}unregisterRoute(e){if(!this._routes.has(e.method))throw new i("unregister-route-but-not-found-with-method",{method:e.method});let t=this._routes.get(e.method).indexOf(e);if(t>-1)this._routes.get(e.method).splice(t,1);else throw new i("unregister-route-route-not-registered")}}function S(e,t,s){let r;if("string"==typeof e){let a=new URL(e,location.href);r=new E(({url:e})=>e.href===a.href,t,s)}else if(e instanceof RegExp)r=new q(e,t,s);else if("function"==typeof e)r=new E(e,t,s);else if(e instanceof E)r=e;else throw new i("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});return(!a&&((a=new O).addFetchListener(),a.addCacheListener()),a).registerRoute(r),r}class N extends E{constructor(e,t){super(({request:s})=>{let a=e.getURLsToCacheKeys();for(let r of function*(e,{ignoreURLParametersMatching:t=[/^utm_/,/^fbclid$/],directoryIndex:s="index.html",cleanURLs:a=!0,urlManipulation:r}={}){let i=new URL(e,location.href);i.hash="",yield i.href;let n=function(e,t=[]){for(let s of[...e.searchParams.keys()])t.some(e=>e.test(s))&&e.searchParams.delete(s);return e}(i,t);if(yield n.href,s&&n.pathname.endsWith("/")){let e=new URL(n.href);e.pathname+=s,yield e.href}if(a){let e=new URL(n.href);e.pathname+=".html",yield e.href}if(r)for(let e of r({url:i}))yield e.href}(s.url,t)){let t=a.get(r);if(t){let s=e.getIntegrityForCacheKey(t);return{cacheKey:t,integrity:s}}}},e.strategy)}}self.addEventListener("activate",()=>self.clients.claim());let M=new class{_sharedCacheKeys;option;_controllerOption;_leader;constructor(e){this.option=e&&{...e};const t=e?.controllerOptionResolver||(()=>void 0);this._controllerOption=t();const s=new P(this._controllerOption);this._sharedCacheKeys=s.getURLsToCacheKeys(),this._bindRouting(s),self.addEventListener("activate",e=>{s.activate(e)}),this._leader=s}_bindRouting(e){S(new N(e,(this.option?.optionResolver||(()=>void 0))()))}get createHandlerBoundToURL(){return this._leader.createHandlerBoundToURL.bind(this._leader)}registerRoute(e,t){S(new E(e,t))}precache(e){let t=new P(this._controllerOption);t.addToCacheList(e),t.getURLsToCacheKeys().forEach((e,t)=>{this._sharedCacheKeys.set(t,e)}),self.addEventListener("install",e=>t.install(e))}precacheStriping(e,t=4){for(let s of(this.option?.splitEntries||function*(e){let s=e.length,a=s%t,r=Math.floor(e.length/t),i=0;for(;i<s;){let t=Math.min(i+r+ +(a-- >0),s);yield e.slice(i,t),i=t}})(e))this.precache(s)}};M.precacheStriping([{'revision':'406048a8eff06b84977af552f5007be5','url':'/favicon.ico'},{'revision':'5c7618410647e9d9938009378a2d30cc','url':'/index.html'},{'revision':null,'url':'/static/css/3217.0c89f670.css'},{'revision':null,'url':'/static/css/async/1028.62fac67c.css'},{'revision':null,'url':'/static/css/async/13.8c458b7b.css'},{'revision':null,'url':'/static/css/async/1723.17160a53.css'},{'revision':null,'url':'/static/css/async/1902.a2b0138e.css'},{'revision':null,'url':'/static/css/async/1944.3808a95d.css'},{'revision':null,'url':'/static/css/async/2235.02a6c5d7.css'},{'revision':null,'url':'/static/css/async/2617.6945e2e5.css'},{'revision':null,'url':'/static/css/async/2867.a49b0965.css'},{'revision':null,'url':'/static/css/async/3504.447444f0.css'},{'revision':null,'url':'/static/css/async/4369.2ce671b0.css'},{'revision':null,'url':'/static/css/async/4391.f1f8b142.css'},{'revision':null,'url':'/static/css/async/5299.3c184245.css'},{'revision':null,'url':'/static/css/async/6159.405a1310.css'},{'revision':null,'url':'/static/css/async/7108.521d3526.css'},{'revision':null,'url':'/static/css/async/7147.aee2ce80.css'},{'revision':null,'url':'/static/css/async/748.f5bf19a1.css'},{'revision':null,'url':'/static/css/async/7707.a288fb49.css'},{'revision':null,'url':'/static/css/async/7838.03aa6315.css'},{'revision':null,'url':'/static/css/async/8195.0e65e3b2.css'},{'revision':null,'url':'/static/css/async/8352.f4192ab2.css'},{'revision':null,'url':'/static/css/async/8589.82286a3a.css'},{'revision':null,'url':'/static/css/async/9574.35a4ad97.css'},{'revision':null,'url':'/static/css/async/9628.b1fe1efc.css'},{'revision':null,'url':'/static/css/async/9756.81f84c03.css'},{'revision':null,'url':'/static/css/index.85601d64.css'},{'revision':null,'url':'/static/font/KaTeX_AMS-Regular.1608a09b.woff'},{'revision':null,'url':'/static/font/KaTeX_AMS-Regular.4aafdb68.ttf'},{'revision':null,'url':'/static/font/KaTeX_AMS-Regular.a79f1c31.woff2'},{'revision':null,'url':'/static/font/KaTeX_Caligraphic-Bold.b6770918.woff'},{'revision':null,'url':'/static/font/KaTeX_Caligraphic-Bold.cce5b8ec.ttf'},{'revision':null,'url':'/static/font/KaTeX_Caligraphic-Bold.ec17d132.woff2'},{'revision':null,'url':'/static/font/KaTeX_Caligraphic-Regular.07ef19e7.ttf'},{'revision':null,'url':'/static/font/KaTeX_Caligraphic-Regular.55fac258.woff2'},{'revision':null,'url':'/static/font/KaTeX_Caligraphic-Regular.dad44a7f.woff'},{'revision':null,'url':'/static/font/KaTeX_Fraktur-Bold.9f256b85.woff'},{'revision':null,'url':'/static/font/KaTeX_Fraktur-Bold.b18f59e1.ttf'},{'revision':null,'url':'/static/font/KaTeX_Fraktur-Bold.d42a5579.woff2'},{'revision':null,'url':'/static/font/KaTeX_Fraktur-Regular.7c187121.woff'},{'revision':null,'url':'/static/font/KaTeX_Fraktur-Regular.d3c882a6.woff2'},{'revision':null,'url':'/static/font/KaTeX_Fraktur-Regular.ed38e79f.ttf'},{'revision':null,'url':'/static/font/KaTeX_Main-Bold.b74a1a8b.ttf'},{'revision':null,'url':'/static/font/KaTeX_Main-Bold.c3fb5ac2.woff2'},{'revision':null,'url':'/static/font/KaTeX_Main-Bold.d181c465.woff'},{'revision':null,'url':'/static/font/KaTeX_Main-BoldItalic.6f2bb1df.woff2'},{'revision':null,'url':'/static/font/KaTeX_Main-BoldItalic.70d8b0a5.ttf'},{'revision':null,'url':'/static/font/KaTeX_Main-BoldItalic.e3f82f9d.woff'},{'revision':null,'url':'/static/font/KaTeX_Main-Italic.47373d1e.ttf'},{'revision':null,'url':'/static/font/KaTeX_Main-Italic.8916142b.woff2'},{'revision':null,'url':'/static/font/KaTeX_Main-Italic.9024d815.woff'},{'revision':null,'url':'/static/font/KaTeX_Main-Regular.0462f03b.woff2'},{'revision':null,'url':'/static/font/KaTeX_Main-Regular.7f51fe03.woff'},{'revision':null,'url':'/static/font/KaTeX_Main-Regular.b7f8fe9b.ttf'},{'revision':null,'url':'/static/font/KaTeX_Math-BoldItalic.572d331f.woff2'},{'revision':null,'url':'/static/font/KaTeX_Math-BoldItalic.a879cf83.ttf'},{'revision':null,'url':'/static/font/KaTeX_Math-BoldItalic.f1035d8d.woff'},{'revision':null,'url':'/static/font/KaTeX_Math-Italic.5295ba48.woff'},{'revision':null,'url':'/static/font/KaTeX_Math-Italic.939bc644.ttf'},{'revision':null,'url':'/static/font/KaTeX_Math-Italic.f28c23ac.woff2'},{'revision':null,'url':'/static/font/KaTeX_SansSerif-Bold.8c5b5494.woff2'},{'revision':null,'url':'/static/font/KaTeX_SansSerif-Bold.94e1e8dc.ttf'},{'revision':null,'url':'/static/font/KaTeX_SansSerif-Bold.bf59d231.woff'},{'revision':null,'url':'/static/font/KaTeX_SansSerif-Italic.3b1e59b3.woff2'},{'revision':null,'url':'/static/font/KaTeX_SansSerif-Italic.7c9bc82b.woff'},{'revision':null,'url':'/static/font/KaTeX_SansSerif-Italic.b4c20c84.ttf'},{'revision':null,'url':'/static/font/KaTeX_SansSerif-Regular.74048478.woff'},{'revision':null,'url':'/static/font/KaTeX_SansSerif-Regular.ba21ed5f.woff2'},{'revision':null,'url':'/static/font/KaTeX_SansSerif-Regular.d4d7ba48.ttf'},{'revision':null,'url':'/static/font/KaTeX_Script-Regular.03e9641d.woff2'},{'revision':null,'url':'/static/font/KaTeX_Script-Regular.07505710.woff'},{'revision':null,'url':'/static/font/KaTeX_Script-Regular.fe9cbbe1.ttf'},{'revision':null,'url':'/static/font/KaTeX_Size1-Regular.e1e279cb.woff'},{'revision':null,'url':'/static/font/KaTeX_Size1-Regular.eae34984.woff2'},{'revision':null,'url':'/static/font/KaTeX_Size1-Regular.fabc004a.ttf'},{'revision':null,'url':'/static/font/KaTeX_Size2-Regular.57727022.woff'},{'revision':null,'url':'/static/font/KaTeX_Size2-Regular.5916a24f.woff2'},{'revision':null,'url':'/static/font/KaTeX_Size2-Regular.d6b476ec.ttf'},{'revision':null,'url':'/static/font/KaTeX_Size3-Regular.9acaf01c.woff'},{'revision':null,'url':'/static/font/KaTeX_Size3-Regular.a144ef58.ttf'},{'revision':null,'url':'/static/font/KaTeX_Size4-Regular.10d95fd3.woff2'},{'revision':null,'url':'/static/font/KaTeX_Size4-Regular.7a996c9d.woff'},{'revision':null,'url':'/static/font/KaTeX_Size4-Regular.fbccdabe.ttf'},{'revision':null,'url':'/static/font/KaTeX_Typewriter-Regular.6258592b.woff'},{'revision':null,'url':'/static/font/KaTeX_Typewriter-Regular.a8709e36.woff2'},{'revision':null,'url':'/static/font/KaTeX_Typewriter-Regular.d97aaf4a.ttf'},{'revision':null,'url':'/static/image/SA.29ae5368.jpg'},{'revision':null,'url':'/static/image/academy_background.6996df75.jpg'},{'revision':null,'url':'/static/image/default-avatar.0f35ddf2.jpg'},{'revision':null,'url':'/static/image/default_cover_image.6b01e3a0.jpg'},{'revision':null,'url':'/static/image/leaderboard_background.e75c6c87.jpg'},{'revision':null,'url':'/static/image/login_background.515cfaa7.jpg'},{'revision':null,'url':'/static/js/3217.080f618f.js'},{'revision':'e17128cfad92749d1cec698ec4a0e6df','url':'/static/js/3217.080f618f.js.LICENSE.txt'},{'revision':null,'url':'/static/js/async/1028.d61da093.js'},{'revision':null,'url':'/static/js/async/13.37b9478f.js'},{'revision':null,'url':'/static/js/async/136.685fe4cc.js'},{'revision':null,'url':'/static/js/async/1403.1dcaf692.js'},{'revision':null,'url':'/static/js/async/1562.11fe1768.js'},{'revision':null,'url':'/static/js/async/169.1a44f87a.js'},{'revision':null,'url':'/static/js/async/1694.2301131a.js'},{'revision':null,'url':'/static/js/async/1723.44835cf5.js'},{'revision':null,'url':'/static/js/async/1893.b0a62197.js'},{'revision':null,'url':'/static/js/async/1902.072d5cf7.js'},{'revision':null,'url':'/static/js/async/2172.751e9736.js'},{'revision':null,'url':'/static/js/async/2190.6b250192.js'},{'revision':null,'url':'/static/js/async/2219.72024b1a.js'},{'revision':null,'url':'/static/js/async/2235.199b6580.js'},{'revision':null,'url':'/static/js/async/226.e9080b46.js'},{'revision':null,'url':'/static/js/async/2311.90725148.js'},{'revision':null,'url':'/static/js/async/2617.abc79cc4.js'},{'revision':null,'url':'/static/js/async/272.213b7ba7.js'},{'revision':null,'url':'/static/js/async/2867.e0723832.js'},{'revision':null,'url':'/static/js/async/3080.87d67f75.js'},{'revision':null,'url':'/static/js/async/3229.f08b69e9.js'},{'revision':'0b64c0bbb6b664a1d32f74dccf7c5768','url':'/static/js/async/3229.f08b69e9.js.LICENSE.txt'},{'revision':null,'url':'/static/js/async/3256.e117ebe3.js'},{'revision':null,'url':'/static/js/async/3373.7b1ea480.js'},{'revision':null,'url':'/static/js/async/3490.b56f42cd.js'},{'revision':null,'url':'/static/js/async/3501.35510352.js'},{'revision':null,'url':'/static/js/async/3504.8cb1fc6d.js'},{'revision':null,'url':'/static/js/async/3537.456b33a2.js'},{'revision':null,'url':'/static/js/async/3764.f36271d2.js'},{'revision':null,'url':'/static/js/async/3790.bc27f8e3.js'},{'revision':null,'url':'/static/js/async/3827.621eb4be.js'},{'revision':null,'url':'/static/js/async/3866.c42ad8b3.js'},{'revision':null,'url':'/static/js/async/3897.c6775133.js'},{'revision':null,'url':'/static/js/async/4024.8e385f27.js'},{'revision':null,'url':'/static/js/async/4077.88b6f6f4.js'},{'revision':'755853a24685547684d88554be3da070','url':'/static/js/async/4077.88b6f6f4.js.LICENSE.txt'},{'revision':null,'url':'/static/js/async/4249.5e9c34a7.js'},{'revision':null,'url':'/static/js/async/4274.d1109674.js'},{'revision':null,'url':'/static/js/async/4391.9e1038ba.js'},{'revision':'678becdaaa3ccf9c300f93cf2fa9357d','url':'/static/js/async/4391.9e1038ba.js.LICENSE.txt'},{'revision':null,'url':'/static/js/async/4423.488f05e7.js'},{'revision':null,'url':'/static/js/async/4479.c2beb69c.js'},{'revision':null,'url':'/static/js/async/4904.e6d0bdbc.js'},{'revision':null,'url':'/static/js/async/5072.674af3e8.js'},{'revision':null,'url':'/static/js/async/515.d5a4256a.js'},{'revision':null,'url':'/static/js/async/5167.eaee42ca.js'},{'revision':null,'url':'/static/js/async/5299.d6ff8156.js'},{'revision':null,'url':'/static/js/async/5480.98fdc103.js'},{'revision':null,'url':'/static/js/async/5683.67e8c9ea.js'},{'revision':null,'url':'/static/js/async/5865.727bf21f.js'},{'revision':null,'url':'/static/js/async/5934.83166192.js'},{'revision':null,'url':'/static/js/async/6159.160c22ab.js'},{'revision':null,'url':'/static/js/async/6326.bd1774c9.js'},{'revision':null,'url':'/static/js/async/6385.c5318b65.js'},{'revision':null,'url':'/static/js/async/6663.b5896b04.js'},{'revision':null,'url':'/static/js/async/7108.9903a36e.js'},{'revision':null,'url':'/static/js/async/7147.fd5a1177.js'},{'revision':null,'url':'/static/js/async/7259.5788d510.js'},{'revision':'62a771c56eb38c4499e075fa3a06e03a','url':'/static/js/async/7259.5788d510.js.LICENSE.txt'},{'revision':null,'url':'/static/js/async/7315.f2d5642d.js'},{'revision':null,'url':'/static/js/async/7335.a8aa6e44.js'},{'revision':'5e42402c53dc5dd2b748abaf7db90d5b','url':'/static/js/async/7335.a8aa6e44.js.LICENSE.txt'},{'revision':null,'url':'/static/js/async/7354.b6e2ae01.js'},{'revision':null,'url':'/static/js/async/748.97584543.js'},{'revision':null,'url':'/static/js/async/7707.be570e49.js'},{'revision':null,'url':'/static/js/async/7838.bd2b2ffd.js'},{'revision':null,'url':'/static/js/async/7854.6049170c.js'},{'revision':'7e263cfe82d133bdb298a2de7b8670f8','url':'/static/js/async/7854.6049170c.js.LICENSE.txt'},{'revision':null,'url':'/static/js/async/7993.45af96ca.js'},{'revision':null,'url':'/static/js/async/8195.6b4cd2fe.js'},{'revision':null,'url':'/static/js/async/8339.64b379ea.js'},{'revision':null,'url':'/static/js/async/8352.903a873b.js'},{'revision':null,'url':'/static/js/async/8539.e45ff518.js'},{'revision':'01d3319cec25b92b3196f2ebda7da179','url':'/static/js/async/8539.e45ff518.js.LICENSE.txt'},{'revision':null,'url':'/static/js/async/8549.0c7f44cb.js'},{'revision':null,'url':'/static/js/async/8589.79c30f9c.js'},{'revision':null,'url':'/static/js/async/9045.94c5d38c.js'},{'revision':null,'url':'/static/js/async/9199.e6ceb5f5.js'},{'revision':null,'url':'/static/js/async/9574.e535d565.js'},{'revision':null,'url':'/static/js/async/9628.b0c712c3.js'},{'revision':null,'url':'/static/js/async/9678.5fe12041.js'},{'revision':null,'url':'/static/js/async/9728.668c20d0.js'},{'revision':null,'url':'/static/js/async/9754.b4ca8f46.js'},{'revision':null,'url':'/static/js/async/9756.8f580f00.js'},{'revision':null,'url':'/static/js/async/blueprint-icons-all-paths-loader.8bce3fc9.js'},{'revision':null,'url':'/static/js/async/blueprint-icons-split-paths-by-size-loader.23912128.js'},{'revision':null,'url':'/static/js/index.6325e26c.js'},{'revision':null,'url':'/static/js/lib-react.956f802e.js'},{'revision':'b241f244e088423b41d2fcf4930a1593','url':'/static/js/lib-react.956f802e.js.LICENSE.txt'},{'revision':null,'url':'/static/js/lib-router.2fc13a09.js'},{'revision':'e6bd8dcc9493681dc68edec96a87ccd8','url':'/static/js/lib-router.2fc13a09.js.LICENSE.txt'},{'revision':null,'url':'/static/svg/motorL.e4c8e91f.svg'},{'revision':null,'url':'/static/svg/sGyro.7d8f200e.svg'},{'revision':null,'url':'/static/svg/sUltrasonic.58e41f90.svg'},{'revision':null,'url':'/static/wasm/e203867b.module.wasm'}],6);let W=RegExp("/[^/?]+\\.[^/]+$"),I=JSON.parse("[]").map(e=>new RegExp(e));M.registerRoute(({request:e,url:t})=>!("navigate"!==e.mode||t.pathname.startsWith("/_")||t.pathname.match(W)||I.find(e=>e.test(t.pathname))),M.createHandlerBoundToURL("https://sourceacademy.org/index.html")),self.addEventListener("message",e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()}),R&&self.addEventListener("message",e=>{e.data&&"SYNC_LOGS"===e.data.type&&e.waitUntil(C(e.data.accessToken))})})()})();
//# sourceMappingURL=service-worker.js.map