PageSourceSearch

https://trubeapp.com/service-worker.js

js trubeapp.com collected 2026-09-25 02:52:48 UTC 56,378 bytes, 1 lines download raw bytes

1(()=>{"use strict";var e={138:()=>{try{self["workbox:routing:6.5.4"]&&_()}catch(e){}},253:()=>{try{self["workbox:strategies:6.5.4"]&&_()}catch(e){}},452:()=>{try{self["workbox:precaching:6.5.4"]&&_()}catch(e){}},823:()=>{try{self["workbox:core:6.5.4"]&&_()}catch(e){}},981:()=>{try{self["workbox:expiration:6.5.4"]&&_()}catch(e){}}},t={};function s(n){var r=t[n];if(void 0!==r)return r.exports;var a=t[n]={exports:{}};return e[n](a,a.exports,s),a.exports}s(823);const n=(e,...t)=>{let s=e;return t.length>0&&(s+=` :: ${JSON.stringify(t)}`),s};class r extends Error{constructor(e,t){super(n(e,t)),this.name=e,this.details=t}}const a=new Set;const i={googleAnalytics:"googleAnalytics",precache:"precache-v2",prefix:"workbox",runtime:"runtime",suffix:"undefined"!==typeof registration?registration.scope:""},o=e=>[i.prefix,e,i.suffix].filter(e=>e&&e.length>0).join("-"),c=e=>e||o(i.precache),h=e=>e||o(i.runtime);function l(e,t){const s=new URL(e);for(const n of t)s.searchParams.delete(n);return s.href}let u;function p(e){e.then(()=>{})}class d{constructor(){this.promise=new Promise((e,t)=>{this.resolve=e,this.reject=t})}}const g=e=>new URL(String(e),location.href).href.replace(new RegExp(`^${location.origin}`),"");function f(e){return new Promise(t=>setTimeout(t,e))}function m(e,t){const s=t();return e.waitUntil(s),s}async function w(e,t){let s=null;if(e.url){s=new URL(e.url).origin}if(s!==self.location.origin)throw new r("cross-origin-copy-response",{origin:s});const n=e.clone(),a={headers:new Headers(n.headers),status:n.status,statusText:n.statusText},i=t?t(a):a,o=function(){if(void 0===u){const t=new Response("");if("body"in t)try{new Response(t.body),u=!0}catch(e){u=!1}u=!1}return u}()?n.body:await n.blob();return new Response(o,i)}let y,b;const R=new WeakMap,v=new WeakMap,x=new WeakMap,k=new WeakMap,C=new WeakMap;let E={get(e,t,s){if(e instanceof IDBTransaction){if("done"===t)return v.get(e);if("objectStoreNames"===t)return e.objectStoreNames||x.get(e);if("store"===t)return s.objectStoreNames[1]?void 0:s.objectStore(s.objectStoreNames[0])}return U(e[t])},set:(e,t,s)=>(e[t]=s,!0),has:(e,t)=>e instanceof IDBTransaction&&("done"===t||"store"===t)||t in e};function L(e){return e!==IDBDatabase.prototype.transaction||"objectStoreNames"in IDBTransaction.prototype?(b||(b=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(e)?function(...t){return e.apply(D(this),t),U(R.get(this))}:function(...t){return U(e.apply(D(this),t))}:function(t,...s){const n=e.call(D(this),t,...s);return x.set(n,t.sort?t.sort():[t]),U(n)}}function q(e){return"function"===typeof e?L(e):(e instanceof IDBTransaction&&function(e){if(v.has(e))return;const t=new Promise((t,s)=>{const n=()=>{e.removeEventListener("complete",r),e.removeEventListener("error",a),e.removeEventListener("abort",a)},r=()=>{t(),n()},a=()=>{s(e.error||new DOMException("AbortError","AbortError")),n()};e.addEventListener("complete",r),e.addEventListener("error",a),e.addEventListener("abort",a)});v.set(e,t)}(e),t=e,(y||(y=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction])).some(e=>t instanceof e)?new Proxy(e,E):e);var t}function U(e){if(e instanceof IDBRequest)return function(e){const t=new Promise((t,s)=>{const n=()=>{e.removeEventListener("success",r),e.removeEventListener("error",a)},r=()=>{t(U(e.result)),n()},a=()=>{s(e.error),n()};e.addEventListener("success",r),e.addEventListener("error",a)});return t.then(t=>{t instanceof IDBCursor&&R.set(t,e)}).catch(()=>{}),C.set(t,e),t}(e);if(k.has(e))return k.get(e);const t=q(e);return t!==e&&(k.set(e,t),C.set(t,e)),t}const D=e=>C.get(e);const T=["get","getKey","getAll","getAllKeys","count"],N=["put","add","delete","clear"],I=new Map;function K(e,t){if(!(e instanceof IDBDatabase)||t in e||"string"!==typeof t)return;if(I.get(t))return I.get(t);const s=t.replace(/FromIndex$/,""),n=t!==s,r=N.includes(s);if(!(s in(n?IDBIndex:IDBObjectStore).prototype)||!r&&!T.includes(s))return;const a=async function(e,...t){const a=this.transaction(e,r?"readwrite":"readonly");let i=a.store;
1return n&&(i=i.index(t.shift())),(await Promise.all([i[s](...t),r&&a.done]))[0]};return I.set(t,a),a}E=(e=>({...e,get:(t,s,n)=>K(t,s)||e.get(t,s,n),has:(t,s)=>!!K(t,s)||e.has(t,s)}))(E);s(981);const M="cache-entries",W=e=>{const t=new URL(e,location.href);return t.hash="",t.href};class P{_upgradeDb(e){const t=e.createObjectStore(M,{keyPath:"id"});t.createIndex("cacheName","cacheName",{unique:!1}),t.createIndex("timestamp","timestamp",{unique:!1})}_upgradeDbAndDeleteOldDbs(e){this._upgradeDb(e),this._cacheName&&function(e,{blocked:t}={}){const s=indexedDB.deleteDatabase(e);t&&s.addEventListener("blocked",e=>t(e.oldVersion,e)),U(s).then(()=>{})}(this._cacheName)}async setTimestamp(e,t){const s={url:e=W(e),timestamp:t,cacheName:this._cacheName,id:this._getId(e)},n=(await this.getDb()).transaction(M,"readwrite",{durability:"relaxed"});await n.store.put(s),await n.done}async getTimestamp(e){const t=await this.getDb(),s=await t.get(M,this._getId(e));return null===s||void 0===s?void 0:s.timestamp}async expireEntries(e,t){const s=await this.getDb();let n=await s.transaction(M).store.index("timestamp").openCursor(null,"prev");const r=[];let a=0;for(;n;){const s=n.value;s.cacheName===this._cacheName&&(e&&s.timestamp<e||t&&a>=t?r.push(n.value):a++),n=await n.continue()}const i=[];for(const o of r)await s.delete(M,o.id),i.push(o.url);return i}_getId(e){return this._cacheName+"|"+W(e)}async getDb(){return this._db||(this._db=await function(e,t,{blocked:s,upgrade:n,blocking:r,terminated:a}={}){const i=indexedDB.open(e,t),o=U(i);return n&&i.addEventListener("upgradeneeded",e=>{n(U(i.result),e.oldVersion,e.newVersion,U(i.transaction),e)}),s&&i.addEventListener("blocked",e=>s(e.oldVersion,e.newVersion,e)),o.then(e=>{a&&e.addEventListener("close",()=>a()),r&&e.addEventListener("versionchange",e=>r(e.oldVersion,e.newVersion,e))}).catch(()=>{}),o}("workbox-expiration",1,{upgrade:this._upgradeDbAndDeleteOldDbs.bind(this)})),this._db}constructor(e){this._db=null,this._cacheName=e}}class ${async expireEntries(){if(this._isRunning)return void(this._rerunRequested=!0);this._isRunning=!0;const e=this._maxAgeSeconds?Date.now()-1e3*this._maxAgeSeconds:0,t=await this._timestampModel.expireEntries(e,this._maxEntries),s=await self.caches.open(this._cacheName);for(const n of t)await s.delete(n,this._matchOptions);this._isRunning=!1,this._rerunRequested&&(this._rerunRequested=!1,p(this.expireEntries()))}async updateTimestamp(e){await this._timestampModel.setTimestamp(e,Date.now())}async isURLExpired(e){if(this._maxAgeSeconds){const t=await this._timestampModel.getTimestamp(e),s=Date.now()-1e3*this._maxAgeSeconds;return void 0===t||t<s}return!1}async delete(){this._rerunRequested=!1,await this._timestampModel.expireEntries(1/0)}constructor(e,t={}){this._isRunning=!1,this._rerunRequested=!1,this._maxEntries=t.maxEntries,this._maxAgeSeconds=t.maxAgeSeconds,this._matchOptions=t.matchOptions,this._cacheName=e,this._timestampModel=new P(e)}}class S{_getCacheExpiration(e){if(e===h())throw new r("expire-custom-caches-only");let t=this._cacheExpirations.get(e);return t||(t=new $(e,this._config),this._cacheExpirations.set(e,t)),t}_isResponseDateFresh(e){if(!this._maxAgeSeconds)return!0;const t=this._getDateHeaderTimestamp(e);if(null===t)return!0;return t>=Date.now()-1e3*this._maxAgeSeconds}_getDateHeaderTimestamp(e){if(!e.headers.has("date"))return null;const t=e.headers.get("date"),s=new Date(t).getTime();return isNaN(s)?null:s}async deleteCacheAndMetadata(){for(const[e,t]of this._cacheExpirations)await self.caches.delete(e),await t.delete();this._cacheExpirations=new Map}constructor(e={}){this.cachedResponseWillBeUsed=async({event:e,request:t,cacheName:s,cachedResponse:n})=>{if(!n)return null;const r=this._isResponseDateFresh(n),a=this._getCacheExpiration(s);p(a.expireEntries());const i=a.updateTimestamp(t.url);if(e)try{e.waitUntil(i)}catch(o){0}return r?n:null},this.cacheDidUpdate=async({cacheName:e,request:t})=>{const s=this._getCacheExpiration(e);await s.updateTimestamp(t.url),await s.expireEntries()},this._config=e,this._maxAgeSeconds=e.maxAgeSeconds,this._cacheExpirations=new Map,e.purgeOnQuotaError&&function(e){a.add(e)}(()=>
1this.deleteCacheAndMetadata())}}s(452);function A(e){if(!e)throw new r("add-to-cache-list-unexpected-type",{entry:e});if("string"===typeof e){const t=new URL(e,location.href);return{cacheKey:t.href,url:t.href}}const{revision:t,url:s}=e;if(!s)throw new r("add-to-cache-list-unexpected-type",{entry:e});if(!t){const e=new URL(s,location.href);return{cacheKey:e.href,url:e.href}}const n=new URL(s,location.href),a=new URL(s,location.href);return n.searchParams.set("__WB_REVISION__",t),{cacheKey:n.href,url:a.href}}class O{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){const e=t.originalRequest.url;s?this.notUpdatedURLs.push(e):this.updatedURLs.push(e)}return s}}}class B{constructor({precacheController:e}){this.cacheKeyWillBeUsed=async({request:e,params:t})=>{const s=(null===t||void 0===t?void 0:t.cacheKey)||this._precacheController.getCacheKeyForURL(e.url);return s?new Request(s,{headers:e.headers}):e},this._precacheController=e}}s(253);function j(e){return"string"===typeof e?new Request(e):e}class F{async fetch(e){const{event:t}=this;let s=j(e);if("navigate"===s.mode&&t instanceof FetchEvent&&t.preloadResponse){const e=await t.preloadResponse;if(e)return e}const n=this.hasCallback("fetchDidFail")?s.clone():null;try{for(const e of this.iterateCallbacks("requestWillFetch"))s=await e({request:s.clone(),event:t})}catch(i){if(i instanceof Error)throw new r("plugin-error-request-will-fetch",{thrownErrorMessage:i.message})}const a=s.clone();try{let e;e=await fetch(s,"navigate"===s.mode?void 0:this._strategy.fetchOptions);for(const s of this.iterateCallbacks("fetchDidSucceed"))e=await s({event:t,request:a,response:e});return e}catch(o){throw n&&await this.runCallbacks("fetchDidFail",{error:o,event:t,originalRequest:n.clone(),request:a.clone()}),o}}async fetchAndCachePut(e){const t=await this.fetch(e),s=t.clone();return this.waitUntil(this.cachePut(e,s)),t}async cacheMatch(e){const t=j(e);let s;const{cacheName:n,matchOptions:r}=this._strategy,a=await this.getCacheKey(t,"read"),i=Object.assign(Object.assign({},r),{cacheName:n});s=await caches.match(a,i);for(const o of this.iterateCallbacks("cachedResponseWillBeUsed"))s=await o({cacheName:n,matchOptions:r,cachedResponse:s,request:a,event:this.event})||void 0;return s}async cachePut(e,t){const s=j(e);await f(0);const n=await this.getCacheKey(s,"write");if(!t)throw new r("cache-put-with-no-response",{url:g(n.url)});const i=await this._ensureResponseSafeToCache(t);if(!i)return!1;const{cacheName:o,matchOptions:c}=this._strategy,h=await self.caches.open(o),u=this.hasCallback("cacheDidUpdate"),p=u?await async function(e,t,s,n){const r=l(t.url,s);if(t.url===r)return e.match(t,n);const a=Object.assign(Object.assign({},n),{ignoreSearch:!0}),i=await e.keys(t,a);for(const o of i)if(r===l(o.url,s))return e.match(o,n)}(h,n.clone(),["__WB_REVISION__"],c):null;try{await h.put(n,u?i.clone():i)}catch(d){if(d instanceof Error)throw"QuotaExceededError"===d.name&&await async function(){for(const e of a)await e()}(),d}for(const r of this.iterateCallbacks("cacheDidUpdate"))await r({cacheName:o,oldResponse:p,newResponse:i.clone(),request:n,event:this.event});return!0}async getCacheKey(e,t){const s=`${e.url} | ${t}`;if(!this._cacheKeys[s]){let n=e;for(const e of this.iterateCallbacks("cacheKeyWillBeUsed"))n=j(await e({mode:t,request:n,event:this.event,params:this.params}));this._cacheKeys[s]=n}return this._cacheKeys[s]}hasCallback(e){for(const t of this._strategy.plugins)if(e in t)return!0;return!1}async runCallbacks(e,t){for(const s of this.iterateCallbacks(e))await s(t)}*iterateCallbacks(e){for(const t of this._strategy.plugins)if("function"===typeof t[e]){const s=this._pluginStateMap.get(t),n=n=>{const r=Object.assign(Object.assign({},n),{state:s});return t[e](r)};yield n}}waitUntil(e){return this._extendLifetimePromises.push(e),e}async doneWaiting(){let e;for(;e=this._extendLifetimePromises.shift();)await e}destroy(){this._handlerDeferred.resolve(null)}async _ensureResponseSafeToCache(e){let t=e,s=!1;for(const n of this.iterateCallbacks("cacheWillUpdate"))if(t=await n({request:this.request,response:t,event:this.event})||void 0,s=!0,!t)break;return s||t&&200!==t.status&&(t=void 0),t}constructor(e,t){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;for(const s of this._plugins)this._pluginStateMap.set(s,{});this.event.waitUntil(this._handlerDeferred.promise)}}class H{handle(e){const[t]=this.handleAll(e);return t}handleAll(e){e instanceof FetchEvent&&(e={event:e,request:e.request});
1const t=e.event,s="string"===typeof e.request?new Request(e.request):e.request,n="params"in e?e.params:void 0,r=new F(this,{event:t,request:s,params:n}),a=this._getResponse(r,s,t);return[a,this._awaitComplete(a,r,s,t)]}async _getResponse(e,t,s){let n;await e.runCallbacks("handlerWillStart",{event:s,request:t});try{if(n=await this._handle(t,e),!n||"error"===n.type)throw new r("no-response",{url:t.url})}catch(a){if(a instanceof Error)for(const r of e.iterateCallbacks("handlerDidError"))if(n=await r({error:a,event:s,request:t}),n)break;if(!n)throw a}for(const r of e.iterateCallbacks("handlerWillRespond"))n=await r({event:s,request:t,response:n});return n}async _awaitComplete(e,t,s,n){let r,a;try{r=await e}catch(a){}try{await t.runCallbacks("handlerDidRespond",{event:n,request:s,response:r}),await t.doneWaiting()}catch(i){i instanceof Error&&(a=i)}if(await t.runCallbacks("handlerDidComplete",{event:n,request:s,response:r,error:a}),t.destroy(),a)throw a}constructor(e={}){this.cacheName=h(e.cacheName),this.plugins=e.plugins||[],this.fetchOptions=e.fetchOptions,this.matchOptions=e.matchOptions}}class V extends H{async _handle(e,t){const 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;const n=t.params||{};if(!this._fallbackToNetwork)throw new r("missing-precache-entry",{cacheName:this.cacheName,url:e.url});{0;const r=n.integrity,a=e.integrity,i=!a||a===r;if(s=await t.fetch(new Request(e,{integrity:"no-cors"!==e.mode?a||r:void 0})),r&&i&&"no-cors"!==e.mode){this._useDefaultCacheabilityPluginIfNeeded();await t.cachePut(e,s.clone());0}}return s}async _handleInstall(e,t){this._useDefaultCacheabilityPluginIfNeeded();const s=await t.fetch(e);if(!await t.cachePut(e,s.clone()))throw new r("bad-precaching-response",{url:e.url,status:s.status});return s}_useDefaultCacheabilityPluginIfNeeded(){let e=null,t=0;for(const[s,n]of this.plugins.entries())n!==V.copyRedirectedCacheableResponsesPlugin&&(n===V.defaultPrecacheCacheabilityPlugin&&(e=s),n.cacheWillUpdate&&t++);0===t?this.plugins.push(V.defaultPrecacheCacheabilityPlugin):t>1&&null!==e&&this.plugins.splice(e,1)}constructor(e={}){e.cacheName=c(e.cacheName),super(e),this._fallbackToNetwork=!1!==e.fallbackToNetwork,this.plugins.push(V.copyRedirectedCacheableResponsesPlugin)}}V.defaultPrecacheCacheabilityPlugin={cacheWillUpdate:async({response:e})=>!e||e.status>=400?null:e},V.copyRedirectedCacheableResponsesPlugin={cacheWillUpdate:async({response:e})=>e.redirected?await w(e):e};class G{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){const t=[];for(const s of e){"string"===typeof s?t.push(s):s&&void 0===s.revision&&t.push(s.url);const{cacheKey:e,url:n}=A(s),a="string"!==typeof s&&s.revision?"reload":"default";if(this._urlsToCacheKeys.has(n)&&this._urlsToCacheKeys.get(n)!==e)throw new r("add-to-cache-list-conflicting-entries",{firstEntry:this._urlsToCacheKeys.get(n),secondEntry:e});if("string"!==typeof s&&s.integrity){if(this._cacheKeysToIntegrities.has(e)&&this._cacheKeysToIntegrities.get(e)!==s.integrity)throw new r("add-to-cache-list-conflicting-integrities",{url:n});this._cacheKeysToIntegrities.set(e,s.integrity)}if(this._urlsToCacheKeys.set(n,e),this._urlsToCacheModes.set(n,a),t.length>0){const e=`Workbox is precaching URLs without revision info: ${t.join(", ")}\nThis is generally NOT safe. Learn more at https://bit.ly/wb-precache`;console.warn(e)}}}install(e){return m(e,async()=>{const t=new O;this.strategy.plugins.push(t);for(const[r,a]of this._urlsToCacheKeys){const t=this._cacheKeysToIntegrities.get(a),s=this._urlsToCacheModes.get(r),n=new Request(r,{integrity:t,cache:s,credentials:"same-origin"});await Promise.all(this.strategy.handleAll({params:{cacheKey:a},request:n,event:e}))}const{updatedURLs:s,notUpdatedURLs:n}=t;return{updatedURLs:s,notUpdatedURLs:n}})}activate(e){return m(e,async()=>{const e=await self.caches.open(this.strategy.cacheName),t=await e.keys(),s=new Set(this._urlsToCacheKeys.values()),n=[];for(const r of t)s.has(r.url)||(await e.delete(r),n.push(r.url));return{deletedURLs:n}})}getURLsToCacheKeys(){return this._urlsToCacheKeys}getCachedURLs(){return[...this._urlsToCacheKeys.keys()]}getCacheKeyForURL(e){const t=new URL(e,location.href);return this._urlsToCacheKeys.get(t.href)}getIntegrityForCacheKey(e){return this._cacheKeysToIntegrities.get(e)}async matchPrecache(e){const t=e instanceof Request?e.url:e,s=this.getCacheKeyForURL(t);
1if(s){return(await self.caches.open(this.strategy.cacheName)).match(s)}}createHandlerBoundToURL(e){const t=this.getCacheKeyForURL(e);if(!t)throw new r("non-precached-url",{url:e});return s=>(s.request=new Request(e),s.params=Object.assign({cacheKey:t},s.params),this.strategy.handle(s))}constructor({cacheName:e,plugins:t=[],fallbackToNetwork:s=!0}={}){this._urlsToCacheKeys=new Map,this._urlsToCacheModes=new Map,this._cacheKeysToIntegrities=new Map,this._strategy=new V({cacheName:c(e),plugins:[...t,new B({precacheController:this})],fallbackToNetwork:s}),this.install=this.install.bind(this),this.activate=this.activate.bind(this)}}let Q;const z=()=>(Q||(Q=new G),Q);s(138);const J=e=>e&&"object"===typeof e?e:{handle:e};class X{setCatchHandler(e){this.catchHandler=J(e)}constructor(e,t,s="GET"){this.handler=J(t),this.match=e,this.method=s}}class Y extends X{constructor(e,t,s){super(({url:t})=>{const s=e.exec(t.href);if(s&&(t.origin===location.origin||0===s.index))return s.slice(1)},t,s)}}class Z{get routes(){return this._routes}addFetchListener(){self.addEventListener("fetch",e=>{const{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){const{payload:t}=e.data;0;const s=Promise.all(t.urlsToCache.map(t=>{"string"===typeof t&&(t=[t]);const 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}){const s=new URL(e.url,location.href);if(!s.protocol.startsWith("http"))return void 0;const n=s.origin===location.origin,{params:r,route:a}=this.findMatchingRoute({event:t,request:e,sameOrigin:n,url:s});let i=a&&a.handler;const o=e.method;if(!i&&this._defaultHandlerMap.has(o)&&(i=this._defaultHandlerMap.get(o)),!i)return void 0;let c;try{c=i.handle({url:s,request:e,event:t,params:r})}catch(l){c=Promise.reject(l)}const h=a&&a.catchHandler;return c instanceof Promise&&(this._catchHandler||h)&&(c=c.catch(async n=>{if(h){0;try{return await h.handle({url:s,request:e,event:t,params:r})}catch(a){a instanceof Error&&(n=a)}}if(this._catchHandler)return this._catchHandler.handle({url:s,request:e,event:t});throw n})),c}findMatchingRoute({url:e,sameOrigin:t,request:s,event:n}){const r=this._routes.get(s.method)||[];for(const a of r){let r;const i=a.match({url:e,sameOrigin:t,request:s,event:n});if(i)return r=i,(Array.isArray(r)&&0===r.length||i.constructor===Object&&0===Object.keys(i).length||"boolean"===typeof i)&&(r=void 0),{route:a,params:r}}return{}}setDefaultHandler(e,t="GET"){this._defaultHandlerMap.set(t,J(e))}setCatchHandler(e){this._catchHandler=J(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 r("unregister-route-but-not-found-with-method",{method:e.method});const t=this._routes.get(e.method).indexOf(e);if(!(t>-1))throw new r("unregister-route-route-not-registered");this._routes.get(e.method).splice(t,1)}constructor(){this._routes=new Map,this._defaultHandlerMap=new Map}}let ee;const te=()=>(ee||(ee=new Z,ee.addFetchListener(),ee.addCacheListener()),ee);function se(e,t,s){let n;if("string"===typeof e){const r=new URL(e,location.href);0;n=new X(({url:e})=>e.href===r.href,t,s)}else if(e instanceof RegExp)n=new Y(e,t,s);else if("function"===typeof e)n=new X(e,t,s);else{if(!(e instanceof X))throw new r("unsupported-route-type",{moduleName:"workbox-routing",funcName:"registerRoute",paramName:"capture"});n=e}return te().registerRoute(n),n}class ne extends X{constructor(e,t){super(({request:s})=>{const n=e.getURLsToCacheKeys();for(const r of function*(e,{ignoreURLParametersMatching:t=[/^utm_/,/^fbclid$/],directoryIndex:s="index.html",cleanURLs:n=!0,urlManipulation:r}={}){const a=new URL(e,location.href);a.hash="",yield a.href;const i=function(e,t=[]){for(const s of[...e.searchParams.keys()])t.some(e=>e.test(s))&&e.searchParams.delete(s);return e}(a,t);if(yield i.href,s&&i.pathname.endsWith("/")){const e=new URL(i.href);e.pathname+=s,yield e.href}if(n){const e=new URL(i.href);e.pathname+=".html",yield e.href}if(r){const e=r({url:a});for(const t of e)yield t.href}}(s.url,t)){const t=n.get(r);if(t){return{cacheKey:t,integrity:e.getIntegrityForCacheKey(t)}}}},e.strategy)}}const re={cacheWillUpdate:async({response:e})=>200===e.status||0===e.status?e:null};class ae extends H{async _handle(e,t){const s=t.fetchAndCachePut(e).
1catch(()=>{});t.waitUntil(s);let n,a=await t.cacheMatch(e);if(a)0;else{0;try{a=await s}catch(i){i instanceof Error&&(n=i)}}if(!a)throw new r("no-response",{url:e.url,error:n});return a}constructor(e={}){super(e),this.plugins.some(e=>"cacheWillUpdate"in e)||this.plugins.unshift(re)}}var ie,oe;self.addEventListener("activate",()=>self.clients.claim()),ie=[{'revision':'a8690f1ef1d428607a8b2a9f2fa59083','url':'/index.html'},{'revision':null,'url':'/static/css/main.3544fc63.css'},{'revision':null,'url':'/static/js/102.bd639b55.chunk.js'},{'revision':null,'url':'/static/js/1392.6bb85a91.chunk.js'},{'revision':null,'url':'/static/js/2114.afef3b33.chunk.js'},{'revision':null,'url':'/static/js/2221.655683a8.js'},{'revision':null,'url':'/static/js/2492.6c590683.chunk.js'},{'revision':null,'url':'/static/js/2499.aa92c38a.chunk.js'},{'revision':null,'url':'/static/js/2615.a2b409a7.chunk.js'},{'revision':null,'url':'/static/js/2680.4a1720f0.chunk.js'},{'revision':null,'url':'/static/js/3262.b3a08156.chunk.js'},{'revision':null,'url':'/static/js/3369.7dd51c31.chunk.js'},{'revision':null,'url':'/static/js/3453.fd1001b9.chunk.js'},{'revision':null,'url':'/static/js/3726.7ed05deb.chunk.js'},{'revision':null,'url':'/static/js/3788.a747e320.chunk.js'},{'revision':null,'url':'/static/js/3820.7cd4ae9d.chunk.js'},{'revision':null,'url':'/static/js/4179.3f530e76.chunk.js'},{'revision':null,'url':'/static/js/4279.1437e701.chunk.js'},{'revision':null,'url':'/static/js/4352.76fa2dba.chunk.js'},{'revision':null,'url':'/static/js/4378.f6d0ee5c.chunk.js'},{'revision':null,'url':'/static/js/4485.0e773464.chunk.js'},{'revision':null,'url':'/static/js/4595.79795982.chunk.js'},{'revision':null,'url':'/static/js/5014.300c8cfb.chunk.js'},{'revision':null,'url':'/static/js/5079.35e4bf2a.chunk.js'},{'revision':null,'url':'/static/js/5146.babd1a0f.chunk.js'},{'revision':null,'url':'/static/js/525.5b644fb0.chunk.js'},{'revision':null,'url':'/static/js/5417.89db24b6.chunk.js'},{'revision':null,'url':'/static/js/5552.bbe71daf.chunk.js'},{'revision':null,'url':'/static/js/5647.a7036802.chunk.js'},{'revision':null,'url':'/static/js/583.ea9337a2.chunk.js'},{'revision':null,'url':'/static/js/6271.a292b4aa.chunk.js'},{'revision':null,'url':'/static/js/6332.581972a0.chunk.js'},{'revision':null,'url':'/static/js/6352.a6f91886.chunk.js'},{'revision':null,'url':'/static/js/6407.117e5a15.chunk.js'},{'revision':null,'url':'/static/js/6447.3b8b4c28.chunk.js'},{'revision':null,'url':'/static/js/6501.1ba433d3.chunk.js'},{'revision':null,'url':'/static/js/6751.35114e0b.chunk.js'},{'revision':null,'url':'/static/js/7156.65904cf9.chunk.js'},{'revision':null,'url':'/static/js/7281.76bd91ac.chunk.js'},{'revision':null,'url':'/static/js/755.a153c4bb.chunk.js'},{'revision':null,'url':'/static/js/764.78682925.chunk.js'},{'revision':null,'url':'/static/js/7951.75d86100.chunk.js'},{'revision':null,'url':'/static/js/8051.c41fb7c6.chunk.js'},{'revision':null,'url':'/static/js/8076.76b4b5eb.chunk.js'},{'revision':null,'url':'/static/js/8273.242db693.chunk.js'},{'revision':null,'url':'/static/js/8339.95cca439.chunk.js'},{'revision':null,'url':'/static/js/8524.c0843a9a.chunk.js'},{'revision':null,'url':'/static/js/8566.2a362fb4.chunk.js'},{'revision':null,'url':'/static/js/867.e50f6835.chunk.js'},{'revision':null,'url':'/static/js/8695.8a49e266.chunk.js'},{'revision':null,'url':'/static/js/8724.7d3dc5b4.chunk.js'},{'revision':null,'url':'/static/js/9057.fa83e103.chunk.js'},{'revision':null,'url':'/static/js/9197.2f1a348d.chunk.js'},{'revision':null,'url':'/static/js/9440.eaf0a85e.chunk.js'},{'revision':null,'url':'/static/js/9550.32c18d04.chunk.js'},{'revision':null,'url':'/static/js/main.1daee901.js'},{'revision':null,'url':'/static/js/runtime.19d6af6c.js'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/about-be-better.c38be1cc35dd1315dd8b.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/about-hero-mobile.05327bb54f83679cdb3d.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/about-hero.a0f19718c90f2c38bcc4.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/access.7902d5fa13effe492f2d.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/allison-coach.ceb1a1e492c977596c59.png'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/amber-coach.3c82967dc185d335d4bf.png'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/app-banner-iphone-center.f9ab623c8ee8a53db45c.png'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/[email protected]
11f84ba2f5612ef4.png'},{'revision':null,'url':'/static/media/app-banner-iphone-left.ca332a6403e601c1b8b0.png'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/app-banner-iphone-right.df49a34f87ae44c784e8.png'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':'390b604f4a6d0682f6f3ca0cfac00d4a','url':'/static/media/app-store-btn.6e3daaec5c3f6b2dd4d042a79c0be6d8.svg'},{'revision':'1fa6146548885b80fb2bb968787fe52a','url':'/static/media/app-store-btn.a8fe79e59b9de114b9bff388cffd7245.svg'},{'revision':'f4ae65122fadb4b0a1fc54e9c5d6e85d','url':'/static/media/ask-concierge.c6beb27cd5a74301b5f134a548020bab.svg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/banner-trainers-mobile.0487d62d844233e6f163.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/banner-trainers.608a86cf0723847ed24b.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/become-a-partner-hero-bottom-mobile.59f8a59541b7d1052d25.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/become-a-partner-hero-bottom.d1136050808bdd8ab95d.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/become-a-partner-hero-mobile.d225806d07037567dc21.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/become-a-partner-hero.5b18941fc62be2ab383e.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/become-a-partner-img.4bd5015441e12992b926.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/become-a-partner-trainers-mobile.c1a8d640250e51ecad14.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/become-a-partner-trainers.e9603a052d1d976d586b.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/benefits-brand-experiences.b08a3e9a2483a7a2e9d4.avif'},{'revision':null,'url':'/static/media/benefits-community.1c22dd39275baa02afc9.avif'},{'revision':null,'url':'/static/media/benefits-exclusive-venues.a75f9aaef460803b7267.avif'},{'revision':null,'url':'/static/media/benefits-world-class-coaches.7ce443615193887d331e.avif'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/body-bg-mobile.ed012d5c4c7ab258e14a.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/body-bg.7314fb7e0a753a2acf8f.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/christian-coach.9e6927364f1a384fb6cd.png'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/connect.dde8fea7d61c32b220cc.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/corporate-page-benefits-1.58052a6dca09e131a328.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/corporate-page-benefits-2.f4251bf3fe958bcade9d.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/corporate-page-benefits-3.1958b68eca951a010025.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/corporate-page-benefits-4.8096af1042e64bd1ac99.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/corporate-page-benefits-5.3d8343e67d2f66094c34.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/corporate-page-benefits-6.5e93da03ca952ae580c4.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/corporate-page-benefits-7.4831e9911db5e7c9d7ba.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/corporate-page-benefits-8.018ca1d0b6453357e5e0.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/corporate-page-disciplines-meditation.906f420cb4317e5d0f7d.jpg'},{'revision':null,'url':'/static/media/corporate-page-disciplines-meditation@2x.44f3982f40ffa5271b97.jpg'},{'revision':null,'url':'/static/media/corporate-page-disciplines-meditation@3x.92f7c342f19cf44d0e38.jpg'},{'revision':null,'url':'/static/media/corporate-page-disciplines-pilates.0b71730113738dcae5ef.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/corporate-page-disciplines-running.6026b02145bc296e02ba.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/corporate-page-disciplines-yoga.570ac144743cb151c44d.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/corporate-page-flexibility-mobile.bb17cafa215ad2e893fc.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/corporate-page-flexibility.a26e0e4c74a9ff8475ff.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/corporate-page-inspiration-station.20f219ce466915ab0206.png'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/corporate-page-personalisation-mobile.53f0d90a67c7c3504d29.jpg'},{'revision':null,'url':'/static/media/corporate-page-personalisation-mobile@2x.06f965efb64365a2d16f.jpg'},{'revision':null,'url':'/static/media/corporate-page-personalisation-mobile@3x.eda0203ad0bf6c8f6037.jpg'},{'revision':null,'url':'/static/media/corporate-page-personalisation.fb59e347ebec18718aa3.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/corporate-page-quality-mobile.d3736e2e6d7945482f30.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/corporate-page-quality.0005d84e9ba07b786b47.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/corporate-page-solutions-care-homes.62a93576f55aa8043508.png'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/corporate-page-solutions-co-working-spaces.499f33ea2e08a3a8a57a.png'},{'revision':null,'url':'/static/media/corporate-page-solutions-co-working-spaces@2x.59757d511378c7ed9f8e.png'},{'revision':null,'url':'/static/media/corporate-page-solutions-events.3af11a1e0f273bf74073.png'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/corporate-page-solutions-hospitality.95671599011cf733fd64.png'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/corporate-page-solutions-hotels.dcec543f5e6c54ec2385.png'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/dillon-coach.618da7054150059ecae8.png'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/discipline-card-baseball.3fbdba342a96af1c3be2.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/discipline-card-basketball.480d162eb294b0f601ae.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/discipline-card-golf.e65ec30acec3b7cfe7dd.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/discipline-card-pickleball.1db3644d6bb32506f6e1.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/discipline-card-soccer.269855d4abf6c1f9149f.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/discipline-card-tennis.4f0b28ac69b333deee17.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/element.926188008babf072b50c.png'},{'revision':null,'url':'/static/media/element.d68a8b8c25a216ca947b.png'},{'revision':null,'url':'/static/media/fitness-bg-mobile.ee8e1027cbb4d0e53b2d.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/fitness-bg.8876991ba588f59a325e.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':'18d535659d16b649f6694b92302ad507','url':'/static/media/generic-trainerphoto.981cc153c17c220dc74eee3e48380b95.svg'},{'revision':'513c7328f08016782b50a8be8a777b1d','url':'/static/media/google-logo.188f8ac0173215e9402839667c8b2833.svg'},{'revision':null,'url':'/static/media/hannah-coach.fc9f280e1ba0c86ada4a.png'},{'revision':null,'url':'/static/media/[email protected]
1a3a5b4e.png'},{'revision':null,'url':'/static/media/hero-banner-mobile.39c181876b2bc9db1f13.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/hero-banner.5b90c9f9f40defdc6ec8.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/hero-mobile.54af513688ff480b2597.jpg'},{'revision':null,'url':'/static/media/hero-mobile.d66dd780e96225188514.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/hero.1aec78f28f8233689b17.jpg'},{'revision':null,'url':'/static/media/hero.88cce9e87632034822f9.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/homepage-discipline-slider-ballet-fit.5fcda28030e785b65fc8.jpg'},{'revision':null,'url':'/static/media/homepage-discipline-slider-ballet-fit@2x.7c864d22ea515ff795ec.jpg'},{'revision':null,'url':'/static/media/homepage-discipline-slider-boxing.e477c91a0261b00ff375.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/homepage-discipline-slider-kickboxing.55dd5070a3cf9cf3d4fa.jpg'},{'revision':null,'url':'/static/media/homepage-discipline-slider-kickboxing@2x.bb3fe27b51ec14a03a4e.jpg'},{'revision':null,'url':'/static/media/homepage-discipline-slider-lifestyle-coaching.c68ab7ef19090ba8a1f8.jpg'},{'revision':null,'url':'/static/media/homepage-discipline-slider-lifestyle-coaching@2x.29a4a59b996d21504164.jpg'},{'revision':null,'url':'/static/media/homepage-discipline-slider-meditation.0fab884a6f8417682b7b.jpg'},{'revision':null,'url':'/static/media/homepage-discipline-slider-meditation@2x.43da812db5a1dd1f3877.jpg'},{'revision':null,'url':'/static/media/homepage-discipline-slider-motivational-coaching.a265aadeede257dcec8e.jpg'},{'revision':null,'url':'/static/media/homepage-discipline-slider-motivational-coaching@2x.8e85bfc8b52f9df541d8.jpg'},{'revision':null,'url':'/static/media/homepage-discipline-slider-pilates.7232978261af67f46d9c.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/homepage-discipline-slider-prepost-natal.3135a2612462eb4bc3bb.jpg'},{'revision':null,'url':'/static/media/homepage-discipline-slider-prepost-natal@2x.bd0c26f5b501cba5309e.jpg'},{'revision':null,'url':'/static/media/homepage-discipline-slider-pt.9c98b474581c671fda74.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/homepage-discipline-slider-sound-baths.0b75d6ddbe01f9a0726a.jpg'},{'revision':null,'url':'/static/media/homepage-discipline-slider-sound-baths@2x.ec173857a22c9601b9bf.jpg'},{'revision':null,'url':'/static/media/homepage-discipline-slider-stress-management.51cddcb796f02b68dd61.jpg'},{'revision':null,'url':'/static/media/homepage-discipline-slider-stress-management@2x.1a5d73b5a198ac554d43.jpg'},{'revision':null,'url':'/static/media/homepage-discipline-slider-yoga.611684952f92778a1f40.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/iphone-frame.23e89e4cf16175583204.png'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/kaveh-training.19603ac03bcf83e010c4.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/koni-coach.18ab7bb3d6ddfddb9547.png'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/[email protected]'}
1,{'revision':null,'url':'/static/media/lifestyle-carousel-slide-1.9cc7208f51187d726276.jpg'},{'revision':null,'url':'/static/media/lifestyle-carousel-slide-10.194df24149e849cccf19.jpg'},{'revision':null,'url':'/static/media/lifestyle-carousel-slide-2.23dc4e6590fab05a0a1f.jpg'},{'revision':null,'url':'/static/media/lifestyle-carousel-slide-3.038ed5d0924c4a4e9b8d.jpg'},{'revision':null,'url':'/static/media/lifestyle-carousel-slide-4.486378443d461f572204.jpg'},{'revision':null,'url':'/static/media/lifestyle-carousel-slide-5.918bf61cc4c040d6f606.jpg'},{'revision':null,'url':'/static/media/lifestyle-carousel-slide-6.534cecd1ec8b87421cad.jpg'},{'revision':null,'url':'/static/media/lifestyle-carousel-slide-7.c35eafbf16a7c341e982.jpg'},{'revision':null,'url':'/static/media/lifestyle-carousel-slide-8.1bd44355a4d912dd0bf4.jpg'},{'revision':null,'url':'/static/media/lifestyle-carousel-slide-9.4abb3a08f9119f588012.jpg'},{'revision':null,'url':'/static/media/lifestyle-hero.bda623b6dd6027e34f14.avif'},{'revision':null,'url':'/static/media/national-academy-of-sports-medicine-nasm-logo@2x.0af855e6bb470b8aa70a.png'},{'revision':null,'url':'/static/media/national-academy-of-sports-medicine-nasm-logo@3x.9bf0973daab2fd9e282f.png'},{'revision':null,'url':'/static/media/olivia-coach.edb9e39975033e924c80.png'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/partnerships-hero-mobile.55a0f039bf913262111b.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/partnerships-hero.14f7fd04f5db3b2e9e04.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/party-popper-icon.09b1e82391d12bd8df60.png'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/passion-bg-mobile.5c211806b717017b3afe.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/passion-bg.0a5292380909f1bb13af.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/paula-coach.8368e67794e4b5a5140a.png'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/pillars-body.1c3b3ae41eed32b3c270.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/pillars-detox-and-cleanses.f63ef0389b9fd405465a.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/pillars-fitness.d5c15c676e6c4f0a5009.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/pillars-hero-mobile.7843327b191748cb64c1.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/pillars-hero.3b14b12cd9e340c76114.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/pillars-iv-infusion.6bafdd0096b38b31c744.jpg'},{'revision':null,'url':'/static/media/pillars-meal-planning.525ca7fa751d7725b85f.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/pillars-nutrition.0ca6e6f88cb0111165d4.jpg'},{'revision':null,'url':'/static/media/pillars-octagon-bg.68701b01b252433044b6.svg'},{'revision':null,'url':'/static/media/pillars-passion.329d511d58222bec4946.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/pillars-spirit.5df424ddc415e7fead73.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/pillars-supplements.c5c3145e3f8997ba05ba.jpg'},{'revision':null,'url':'/static/media/pillars-vitamins.ff94a5e9809f7386df1b.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/progress.91d2d1aca8c6f6a72719.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/refer-a-friend.7514e8054c6b99cf64bb.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/sign-up-discount.57ed118b96025ac89cf9.png'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':'f4cbaf463c9eb78fc6b62fb23eb7eb56','url':'/static/media/sparkles.fbb7cc70f16f4810e68c1cb992ffcbf1.svg'},{'revision':null,'url':'/static/media/spirit-bg-mobile.90477cd16c3756258eae.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/spirit-bg.47b65d7c0b8055266160.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/spiritual-gangster-coach-program-mobile.932b719cf1b8046114e1.jpg'},{'revision':null,'url':'/static/media/spiritual-gangster-coach-program-mobile@2x.e69f577422e96565fc3c.jpg'},{'revision':null,'url':'/static/media/spiritual-gangster-coach-program.44d93f435b4c474e3637.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/spiritual-gangster-hero-img.df3df8ca291b73cfc4a6.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/train.505f9d798f8c1ac63c9f.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/trube-is-lifestyle-mobile.ea3648d8ac0955bf5a77.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/trube-is-lifestyle.f7fd7d9cb6faf152180d.jpg'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/[email protected]'},{'revision':null,'url':'/static/media/[email protected]'}],oe={ignoreUrlParametersMatching:[/.*/]},function(e){z().precache(e)}(ie),function(e){const t=z();se(new ne(t,e))}(oe),se(({url:e})=>e.pathname.startsWith("/admin"),async({event:e})=>fetch(e.request),"GET"),se(({url:e})=>"us.trubeapp.com"===e.hostname&&!e.pathname.match(/\.(jpg|png|css|js|json)$/),async({url:e})=>{const t=`https://trubeapp.com/us${e.pathname}${e.search}`;return Response.redirect(t,301)}),se(({url:e})=>"https://trube-blog-uploads.s3.eu-west-1.amazonaws.com"!==e.origin&&e.pathname.startsWith("/blog/"),({url:e})=>{const t=`https://blog.trubeapp.com/${e.pathname.replace(/^\/blog\//,"")}`;return Response.redirect(t,301)}),se(({url:e})=>"/sessions.html"===e.pathname,({url:e})=>Response.redirect(`${e.origin}/partners/`,301)),se(({url:e})=>"/about.html"===e.pathname,({url:e})=>Response.redirect(`${e.origin}/about`,301)),se(({url:e})=>"/booking/about"===e.pathname||"/booking/about/"===e.pathname,({url:e})=>Response.redirect(`${e.origin}/about`,301)),se(({url:e})=>"/contact.html"===e.pathname,({url:e})=>Response.redirect(`${e.origin}/contact`,301)),se(({url:e})=>"/jobs.html"===e.pathname,({url:e})=>Response.redirect(`${e.origin}/contact`,301)),se(({url:e})=>"/trainers"===e.pathname||"/trainers/"===e.pathname,({url:e})=>Response.redirect(`${e.origin}/become-a-partner`,301)),se(({url:e})=>"/workouts.html"===e.pathname,({url:e})=>Response.redirect(`${e.origin}/partners/`,301)),se(({url:e})=>e.pathname.startsWith("/personal-trainer/"),({url:e})=>{const t=e.pathname.match(/^\/personal-trainer\/(.*)$/)[1];return Response.redirect(`${e.origin}/partners/${t}`,301)}),se(({url:e})=>e.pathname.startsWith("/booking/partners/"),({url:e})=>{const t=e.pathname.match(/^\/booking\/partners\/(.*)$/)[1];return Response.redirect(`${e.origin}/partners/${t}`,301)}),se(({url:e})=>"/booking/partners"===e.pathname||"/booking/partners/"===e.pathname,({url:e})=>Response.redirect(`${e.origin}/partners`,301)),se(({url:e})=>"/booking/partners/personal-training"===e.pathname||"/booking/partners/personal-training/"===e.pathname,({url:e})=>Response.redirect(`${e.origin}/partners/personal-training`,301)),se(({url:e})=>"/booking/partners/boxing"===e.pathname||"/booking/partners/boxing/"===e.pathname,({url:e})=>Response.redirect(`${e.origin}/partners/boxing`,301)),se(({url:e})=>"/booking/partners/kickboxing"===e.pathname||"/booking/partners/kickboxing/"===e.pathname,({url:e})=>Response.redirect(`${e.origin}/partners/kickboxing`,301)),se(({url:e})=>"/booking/partners/ballet-fit"===e.pathname||"/booking/partners/ballet-fit/"===e.pathname,({url:e})=>Response.redirect(`${e.origin}/partners/ballet`,301)),se(({url:e})=>"/booking/partners/running"===e.pathname||"/booking/partners/running/"===e.pathname,({url:e})=>Response.redirect(`${e.origin}/partners/running`,301)),se(({url:e})=>"/booking/partners/prepost-natal"===e.pathname||"/booking/partners/prepost-natal/"===e.pathname,({url:e})=>Response.redirect(`${e.origin}/partners/prepost-natal`,301)),se(({url:e})=>"/booking/partners/yoga"===e.pathname||"/booking/partners/yoga/"===e.pathname,({url:e})=>Response.redirect(`${e.origin}/partners/yoga`,301)),se(({url:e})=>"/booking/partners/pilates"===e.pathname||"/booking/partners/pilates/"===e.pathname,({url:e})=>Response.redirect(`${e.origin}/partners/pilates`,301)),se(({url:e})=>"/booking/partners/stretching"===e.pathname||"/booking/partners/stretching/"===e.pathname,({url:e})=>Response.redirect(`${e.origin}/partners/stretching`,301)),se(({url:e})=>"/booking/partners/meditation"===e.pathname||"/booking/partners/meditation/"===e.pathname,({url:e})=>Response.redirect(`${e.origin}/partners/meditation`,301)),se(({url:e})=>e.pathname.startsWith("/booking/partners/")&&!e.pathname.endsWith("/"),({url:e})=>{const t=e.pathname.match(/^\/booking\/partners\/([^/]+)$/)[1];return Response.redirect(`${e.origin}/partners/${t}`,301)}),se(({url:e})=>e.pathname.startsWith("/partners/")&&e.pathname.includes("-"),async({url:e})=>await fetch(e.href,{mode:"cors"}));const ce=new RegExp("/[^/?]+\\.[^/]+$");var he;se(({request:e,url:t})=>!t.pathname.startsWith("/admin")&&("navigate"===e.mode&&(!t.pathname.startsWith("/_")&&(!t.pathname.startsWith("/venue")&&!t.pathname.match(ce)))),(he="/index.html",z().createHandlerBoundToURL(he))),se(({url:e})=>e.origin===self.location.origin&&e.pathname.endsWith(".png"),new ae({cacheName:"images",plugins:[new S({maxEntries:50})]})),se(({url:e})=>"https://fonts.googleapis.com"===e.origin||"https://fonts.gstatic.
1com"===e.origin,new ae({cacheName:"google-fonts",plugins:[new S({maxEntries:20})]})),se(({url:e})=>"https://profilepics.trubeapp.com"===e.origin,new ae({cacheName:"profile-pics",plugins:[new S({maxEntries:200})]})),self.addEventListener("message",e=>{e.data&&"SKIP_WAITING"===e.data.type&&self.skipWaiting()})})();

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.