v8-version,10,4,132,20,0 v8-platform,macos,macos new,CodeRange,0x11c00000000,0 new,MemoryChunk,0x3f2200240000,262144 new,MemoryChunk,0x3f2200280000,262144 new,MemoryChunk,0x3f22002c0000,262144 new,MemoryChunk,0x3f2200300000,262144 heap-capacity,1014496 heap-available,4295685568 new,MemoryChunk,0x3f2200340000,262144 new,MemoryChunk,0x3f2200380000,262144 script,deserialize,1,334 script-details,1,,0,0, script-source,1,, script,deserialize,2,375 script-details,2,,0,0, script-source,2,,() {} new,MemoryChunk,0x3f22003c0000,262144 new,MemoryChunk,0x11c00040000,262144 new,MemoryChunk,0x3f2200400000,262144 new,MemoryChunk,0x3f2200440000,262144 script,deserialize,3,4917 script-details,3,https://photoshop.adobe.com/service-worker.js,0,0,service-worker.js.map script-source,3,https://photoshop.adobe.com/service-worker.js,(()=>{"use strict";var e={663:()=>{try{self["workbox:core:6.4.1"]&&_()}catch(e){}}\x2C969:()=>{try{self["workbox:precaching:6.4.1"]&&_()}catch(e){}}\x2C312:()=>{try{self["workbox:routing:6.4.1"]&&_()}catch(e){}}\x2C752:()=>{try{self["workbox:strategies:6.4.1"]&&_()}catch(e){}}}\x2Ct={};function s(r){if(t[r])return t[r].exports;var a=t[r]={exports:{}};return e[r](a\x2Ca.exports\x2Cs)\x2Ca.exports}(()=>{s(663);class e extends Error{constructor(e\x2Ct){super(((e\x2C...t)=>{let s=e;return t.length>0&&(s+=` :: ${JSON.stringify(t)}`)\x2Cs})(e\x2Ct))\x2Cthis.name=e\x2Cthis.details=t}}const t={googleAnalytics:"googleAnalytics"\x2Cprecache:"precache-v2"\x2Cprefix:"workbox"\x2Cruntime:"runtime"\x2Csuffix:"undefined"!=typeof registration?registration.scope:""}\x2Cr=e=>[t.prefix\x2Ce\x2Ct.suffix].filter((e=>e&&e.length>0)).join("-")\x2Ca=e=>e||r(t.precache);function n(e\x2Ct){const s=t();return e.waitUntil(s)\x2Cs}function i(t){if(!t)throw new e("add-to-cache-list-unexpected-type"\x2C{entry:t});if("string"==typeof t){const e=new URL(t\x2Clocation.href);return{cacheKey:e.href\x2Curl:e.href}}const{revision:s\x2Curl:r}=t;if(!r)throw new e("add-to-cache-list-unexpected-type"\x2C{entry:t});if(!s){const e=new URL(r\x2Clocation.href);return{cacheKey:e.href\x2Curl:e.href}}const a=new URL(r\x2Clocation.href)\x2Cn=new URL(r\x2Clocation.href);return a.searchParams.set("__WB_REVISION__"\x2Cs)\x2C{cacheKey:a.href\x2Curl:n.href}}s(969);class o{constructor(){this.updatedURLs=[]\x2Cthis.notUpdatedURLs=[]\x2Cthis.handlerWillStart=async({request:e\x2Cstate:t})=>{t&&(t.originalRequest=e)}\x2Cthis.cachedResponseWillBeUsed=async({event:e\x2Cstate:t\x2CcachedResponse: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 c{constructor({precacheController:e}){this.cacheKeyWillBeUsed=async({request:e\x2Cparams:t})=>{const s=(null==t?void 0:t.cacheKey)||this._precacheController.getCacheKeyForURL(e.url);return s?new Request(s\x2C{headers:e.headers}):e}\x2Cthis._precacheController=e}}let l;function h(e\x2Ct){const s=new URL(e);for(const e of t)s.searchParams.delete(e);return s.href}class u{constructor(){this.promise=new Promise(((e\x2Ct)=>{this.resolve=e\x2Cthis.reject=t}))}}const d=new Set;function f(e){return"string"==typeof e?new Request(e):e}s(752);class p{constructor(e\x2Ct){this._cacheKeys={}\x2CObject.assign(this\x2Ct)\x2Cthis.event=t.event\x2Cthis._strategy=e\x2Cthis._handlerDeferred=new u\x2Cthis._extendLifetimePromises=[]\x2Cthis._plugins=[...e.plugins]\x2Cthis._pluginStateMap=new Map;for(const e of this._plugins)this._pluginStateMap.set(e\x2C{});this.event.waitUntil(this._handlerDeferred.promise)}async fetch(t){const{event:s}=this;let r=f(t);if("navigate"===r.mode&&s instanceof FetchEvent&&s.preloadResponse){const e=await s.preloadResponse;if(e)return e}const a=this.hasCallback("fetchDidFail")?r.clone():null;try{for(const e of this.iterateCallbacks("requestWillFetch"))r=await e({request:r.clone()\x2Cevent:s})}catch(t){if(t instanceof Error)throw new e("plugin-error-request-will-fetch"\x2C{thrownErrorMessage:t.message})}const n=r.clone();try{let e;e=await fetch(r\x2C"navigate"===r.mode?void 0:this._strategy.fetchOptions);for(const t of this.iterateCallbacks("fetchDidSucceed"))e=await t({event:s\x2Crequest:n\x2Cresponse:e});return e}catch(e){throw a&&await this.runCallbacks("fetchDidFail"\x2C{error:e\x2Cevent:s\x2CoriginalRequest:a.clone()\x2Crequest:n.clone()})\x2Ce}}async fetchAndCachePut(e){const t=await this.fetch(e)\x2Cs=t.clone();return this.waitUntil(this.cachePut(e\x2Cs))\x2Ct}async cacheMatch(e){const t=f(e);let s;const{cacheName:r\x2CmatchOptions:a}=this._strategy\x2Cn=await this.getCacheKey(t\x2C"read")\x2Ci=Object.assign(Object.assign({}\x2Ca)\x2C{cacheName:r});s=await caches.match(n\x2Ci);for(const e of this.iterateCallbacks("cachedResponseWillBeUsed"))s=await e({cacheName:r\x2CmatchOptions:a\x2CcachedResponse:s\x2Crequest:n\x2Cevent:this.event})||void 0;return s}async cachePut(t\x2Cs){const r=f(t);await(0\x2Cnew Promise((e=>setTimeout(e\x2C0))));const a=await this.getCacheKey(r\x2C"write");if(!s)throw new e("cache-put-with-no-response"\x2C{url:(n=a.url\x2Cnew URL(String(n)\x2Clocation.href).href.replace(new RegExp(`^${location.origin}`)\x2C""))});var n;const i=await this._ensureResponseSafeToCache(s);if(!i)return!1;const{cacheName:o\x2CmatchOptions:c}=this._strategy\x2Cl=await self.caches.open(o)\x2Cu=this.hasCallback("cacheDidUpdate")\x2Cp=u?await async function(e\x2Ct\x2Cs\x2Cr){const a=h(t.url\x2Cs);if(t.url===a)return e.match(t\x2Cr);const n=Object.assign(Object.assign({}\x2Cr)\x2C{ignoreSearch:!0})\x2Ci=await e.keys(t\x2Cn);for(const t of i)if(a===h(t.url\x2Cs))return e.match(t\x2Cr)}(l\x2Ca.clone()\x2C["__WB_REVISION__"]\x2Cc):null;try{await l.put(a\x2Cu?i.clone():i)}catch(e){if(e instanceof Error)throw"QuotaExceededError"===e.name&&await async function(){for(const e of d)await e()}()\x2Ce}for(const e of this.iterateCallbacks("cacheDidUpdate"))await e({cacheName:o\x2ColdResponse:p\x2CnewResponse:i.clone()\x2Crequest:a\x2Cevent:this.event});return!0}async getCacheKey(e\x2Ct){const s=`${e.url} | ${t}`;if(!this._cacheKeys[s]){let r=e;for(const e of this.iterateCallbacks("cacheKeyWillBeUsed"))r=f(await e({mode:t\x2Crequest:r\x2Cevent:this.event\x2Cparams:this.params}));this._cacheKeys[s]=r}return this._cacheKeys[s]}hasCallback(e){for(const t of this._strategy.plugins)if(e in t)return!0;return!1}async runCallbacks(e\x2Ct){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)\x2Cr=r=>{const a=Object.assign(Object.assign({}\x2Cr)\x2C{state:s});return t[e](a)};yield r}}waitUntil(e){return this._extendLifetimePromises.push(e)\x2Ce}async doneWaiting(){let e;for(;e=this._extendLifetimePromises.shift();)await e}destroy(){this._handlerDeferred.resolve(null)}async _ensureResponseSafeToCache(e){let t=e\x2Cs=!1;for(const e of this.iterateCallbacks("cacheWillUpdate"))if(t=await e({request:this.request\x2Cresponse:t\x2Cevent:this.event})||void 0\x2Cs=!0\x2C!t)break;return s||t&&200!==t.status&&(t=void 0)\x2Ct}}class g extends class{constructor(e={}){this.cacheName=e.cacheName||r(t.runtime)\x2Cthis.plugins=e.plugins||[]\x2Cthis.fetchOptions=e.fetchOptions\x2Cthis.matchOptions=e.matchOptions}handle(e){const[t]=this.handleAll(e);return t}handleAll(e){e instanceof FetchEvent&&(e={event:e\x2Crequest:e.request});const t=e.event\x2Cs="string"==typeof e.request?new Request(e.request):e.request\x2Cr="params"in e?e.params:void 0\x2Ca=new p(this\x2C{event:t\x2Crequest:s\x2Cparams:r})\x2Cn=this._getResponse(a\x2Cs\x2Ct);return[n\x2Cthis._awaitComplete(n\x2Ca\x2Cs\x2Ct)]}async _getResponse(t\x2Cs\x2Cr){let a;await t.runCallbacks("handlerWillStart"\x2C{event:r\x2Crequest:s});try{if(a=await this._handle(s\x2Ct)\x2C!a||"error"===a.type)throw new e("no-response"\x2C{url:s.url})}catch(e){if(e instanceof Error)for(const n of t.iterateCallbacks("handlerDidError"))if(a=await n({error:e\x2Cevent:r\x2Crequest:s})\x2Ca)break;if(!a)throw e}for(const e of t.iterateCallbacks("handlerWillRespond"))a=await e({event:r\x2Crequest:s\x2Cresponse:a});return a}async _awaitComplete(e\x2Ct\x2Cs\x2Cr){let a\x2Cn;try{a=await e}catch(n){}try{await t.runCallbacks("handlerDidRespond"\x2C{event:r\x2Crequest:s\x2Cresponse:a})\x2Cawait t.doneWaiting()}catch(e){e instanceof Error&&(n=e)}if(await t.runCallbacks("handlerDidComplete"\x2C{event:r\x2Crequest:s\x2Cresponse:a\x2Cerror:n})\x2Ct.destroy()\x2Cn)throw n}}{constructor(e={}){e.cacheName=a(e.cacheName)\x2Csuper(e)\x2Cthis._fallbackToNetwork=!1!==e.fallbackToNetwork\x2Cthis.plugins.push(g.copyRedirectedCacheableResponsesPlugin)}async _handle(e\x2Ct){return await t.cacheMatch(e)||(t.event&&"install"===t.event.type?await this._handleInstall(e\x2Ct):await this._handleFetch(e\x2Ct))}async _handleFetch(t\x2Cs){let r;const a=s.params||{};if(!this._fallbackToNetwork)throw new e("missing-precache-entry"\x2C{cacheName:this.cacheName\x2Curl:t.url});{const e=a.integrity\x2Cn=t.integrity\x2Ci=!n||n===e;r=await s.fetch(new Request(t\x2C{integrity:n||e}))\x2Ce&&i&&(this._useDefaultCacheabilityPluginIfNeeded()\x2Cawait s.cachePut(t\x2Cr.clone()))}return r}async _handleInstall(t\x2Cs){this._useDefaultCacheabilityPluginIfNeeded();const r=await s.fetch(t);if(!await s.cachePut(t\x2Cr.clone()))throw new e("bad-precaching-response"\x2C{url:t.url\x2Cstatus:r.status});return r}_useDefaultCacheabilityPluginIfNeeded(){let e=null\x2Ct=0;for(const[s\x2Cr]of this.plugins.entries())r!==g.copyRedirectedCacheableResponsesPlugin&&(r===g.defaultPrecacheCacheabilityPlugin&&(e=s)\x2Cr.cacheWillUpdate&&t++);0===t?this.plugins.push(g.defaultPrecacheCacheabilityPlugin):t>1&&null!==e&&this.plugins.splice(e\x2C1)}}g.defaultPrecacheCacheabilityPlugin={cacheWillUpdate:async({response:e})=>!e||e.status>=400?null:e}\x2Cg.copyRedirectedCacheableResponsesPlugin={cacheWillUpdate:async({response:t})=>t.redirected?await async function(t\x2Cs){let r=null;if(t.url&&(r=new URL(t.url).origin)\x2Cr!==self.location.origin)throw new e("cross-origin-copy-response"\x2C{origin:r});const a=t.clone()\x2Cn={headers:new Headers(a.headers)\x2Cstatus:a.status\x2CstatusText:a.statusText}\x2Ci=s?s(n):n\x2Co=function(){if(void 0===l){const e=new Response("");if("body"in e)try{new Response(e.body)\x2Cl=!0}catch(e){l=!1}l=!1}return l}()?a.body:await a.blob();return new Response(o\x2Ci)}(t):t};class y{constructor({cacheName:e\x2Cplugins:t=[]\x2CfallbackToNetwork:s=!0}={}){this._urlsToCacheKeys=new Map\x2Cthis._urlsToCacheModes=new Map\x2Cthis._cacheKeysToIntegrities=new Map\x2Cthis._strategy=new g({cacheName:a(e)\x2Cplugins:[...t\x2Cnew c({precacheController:this})]\x2CfallbackToNetwork:s})\x2Cthis.install=this.install.bind(this)\x2Cthis.activate=this.activate.bind(this)}get strategy(){return this._strategy}precache(e){this.addToCacheList(e)\x2Cthis._installAndActiveListenersAdded||(self.addEventListener("install"\x2Cthis.install)\x2Cself.addEventListener("activate"\x2Cthis.activate)\x2Cthis._installAndActiveListenersAdded=!0)}addToCacheList(t){const s=[];for(const r of t){"string"==typeof r?s.push(r):r&&void 0===r.revision&&s.push(r.url);const{cacheKey:t\x2Curl:a}=i(r)\x2Cn="string"!=typeof r&&r.revision?"reload":"default";if(this._urlsToCacheKeys.has(a)&&this._urlsToCacheKeys.get(a)!==t)throw new e("add-to-cache-list-conflicting-entries"\x2C{firstEntry:this._urlsToCacheKeys.get(a)\x2CsecondEntry:t});if("string"!=typeof r&&r.integrity){if(this._cacheKeysToIntegrities.has(t)&&this._cacheKeysToIntegrities.get(t)!==r.integrity)throw new e("add-to-cache-list-conflicting-integrities"\x2C{url:a});this._cacheKeysToIntegrities.set(t\x2Cr.integrity)}if(this._urlsToCacheKeys.set(a\x2Ct)\x2Cthis._urlsToCacheModes.set(a\x2Cn)\x2Cs.length>0){const e=`Workbox is precaching URLs without revision info: ${s.join("\x2C ")}\\nThis is generally NOT safe. Learn more at https://bit.ly/wb-precache`;console.warn(e)}}}install(e){return n(e\x2C(async()=>{const t=new o;this.strategy.plugins.push(t);for(const[t\x2Cs]of this._urlsToCacheKeys){const r=this._cacheKeysToIntegrities.get(s)\x2Ca=this._urlsToCacheModes.get(t)\x2Cn=new Request(t\x2C{integrity:r\x2Ccache:a\x2Ccredentials:"same-origin"});await Promise.all(this.strategy.handleAll({params:{cacheKey:s}\x2Crequest:n\x2Cevent:e}))}const{updatedURLs:s\x2CnotUpdatedURLs:r}=t;return{updatedURLs:s\x2CnotUpdatedURLs:r}}))}activate(e){return n(e\x2C(async()=>{const e=await self.caches.open(this.strategy.cacheName)\x2Ct=await e.keys()\x2Cs=new Set(this._urlsToCacheKeys.values())\x2Cr=[];for(const a of t)s.has(a.url)||(await e.delete(a)\x2Cr.push(a.url));return{deletedURLs:r}}))}getURLsToCacheKeys(){return this._urlsToCacheKeys}getCachedURLs(){return[...this._urlsToCacheKeys.keys()]}getCacheKeyForURL(e){const t=new URL(e\x2Clocation.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\x2Cs=this.getCacheKeyForURL(t);if(s)return(await self.caches.open(this.strategy.cacheName)).match(s)}createHandlerBoundToURL(t){const s=this.getCacheKeyForURL(t);if(!s)throw new e("non-precached-url"\x2C{url:t});return e=>(e.request=new Request(t)\x2Ce.params=Object.assign({cacheKey:s}\x2Ce.params)\x2Cthis.strategy.handle(e))}}let w;const m=()=>(w||(w=new y)\x2Cw);s(312);const v=e=>e&&"object"==typeof e?e:{handle:e};class _{constructor(e\x2Ct\x2Cs="GET"){this.handler=v(t)\x2Cthis.match=e\x2Cthis.method=s}setCatchHandler(e){this.catchHandler=v(e)}}class R extends _{constructor(e\x2Ct\x2Cs){super((({url:t})=>{const s=e.exec(t.href);if(s&&(t.origin===location.origin||0===s.index))return s.slice(1)})\x2Ct\x2Cs)}}class b{constructor(){this._routes=new Map\x2Cthis._defaultHandlerMap=new Map}get routes(){return this._routes}addFetchListener(){self.addEventListener("fetch"\x2C(e=>{const{request:t}=e\x2Cs=this.handleRequest({request:t\x2Cevent:e});s&&e.respondWith(s)}))}addCacheListener(){self.addEventListener("message"\x2C(e=>{if(e.data&&"CACHE_URLS"===e.data.type){const{payload:t}=e.data\x2Cs=Promise.all(t.urlsToCache.map((t=>{"string"==typeof t&&(t=[t]);const s=new Request(...t);return this.handleRequest({request:s\x2Cevent:e})})));e.waitUntil(s)\x2Ce.ports&&e.ports[0]&&s.then((()=>e.ports[0].postMessage(!0)))}}))}handleRequest({request:e\x2Cevent:t}){const s=new URL(e.url\x2Clocation.href);if(!s.protocol.startsWith("http"))return;const r=s.origin===location.origin\x2C{params:a\x2Croute:n}=this.findMatchingRoute({event:t\x2Crequest:e\x2CsameOrigin:r\x2Curl:s});let i=n&&n.handler;const o=e.method;if(!i&&this._defaultHandlerMap.has(o)&&(i=this._defaultHandlerMap.get(o))\x2C!i)return;let c;try{c=i.handle({url:s\x2Crequest:e\x2Cevent:t\x2Cparams:a})}catch(e){c=Promise.reject(e)}const l=n&&n.catchHandler;return c instanceof Promise&&(this._catchHandler||l)&&(c=c.catch((async r=>{if(l)try{return await l.handle({url:s\x2Crequest:e\x2Cevent:t\x2Cparams:a})}catch(e){e instanceof Error&&(r=e)}if(this._catchHandler)return this._catchHandler.handle({url:s\x2Crequest:e\x2Cevent:t});throw r})))\x2Cc}findMatchingRoute({url:e\x2CsameOrigin:t\x2Crequest:s\x2Cevent:r}){const a=this._routes.get(s.method)||[];for(const n of a){let a;const i=n.match({url:e\x2CsameOrigin:t\x2Crequest:s\x2Cevent:r});if(i)return a=i\x2C(Array.isArray(a)&&0===a.length||i.constructor===Object&&0===Object.keys(i).length||"boolean"==typeof i)&&(a=void 0)\x2C{route:n\x2Cparams:a}}return{}}setDefaultHandler(e\x2Ct="GET"){this._defaultHandlerMap.set(t\x2Cv(e))}setCatchHandler(e){this._catchHandler=v(e)}registerRoute(e){this._routes.has(e.method)||this._routes.set(e.method\x2C[])\x2Cthis._routes.get(e.method).push(e)}unregisterRoute(t){if(!this._routes.has(t.method))throw new e("unregister-route-but-not-found-with-method"\x2C{method:t.method});const s=this._routes.get(t.method).indexOf(t);if(!(s>-1))throw new e("unregister-route-route-not-registered");this._routes.get(t.method).splice(s\x2C1)}}let C;function k(t\x2Cs\x2Cr){let a;if("string"==typeof t){const e=new URL(t\x2Clocation.href);a=new _((({url:t})=>t.href===e.href)\x2Cs\x2Cr)}else if(t instanceof RegExp)a=new R(t\x2Cs\x2Cr);else if("function"==typeof t)a=new _(t\x2Cs\x2Cr);else{if(!(t instanceof _))throw new e("unsupported-route-type"\x2C{moduleName:"workbox-routing"\x2CfuncName:"registerRoute"\x2CparamName:"capture"});a=t}return(C||(C=new b\x2CC.addFetchListener()\x2CC.addCacheListener())\x2CC).registerRoute(a)\x2Ca}class q extends _{constructor(e\x2Ct){super((({request:s})=>{const r=e.getURLsToCacheKeys();for(const a of function*(e\x2C{ignoreURLParametersMatching:t=[/^utm_/\x2C/^fbclid$/]\x2CdirectoryIndex:s="index.html"\x2CcleanURLs:r=!0\x2CurlManipulation:a}={}){const n=new URL(e\x2Clocation.href);n.hash=""\x2Cyield n.href;const i=function(e\x2Ct=[]){for(const s of[...e.searchParams.keys()])t.some((e=>e.test(s)))&&e.searchParams.delete(s);return e}(n\x2Ct);if(yield i.href\x2Cs&&i.pathname.endsWith("/")){const e=new URL(i.href);e.pathname+=s\x2Cyield e.href}if(r){const e=new URL(i.href);e.pathname+=".html"\x2Cyield e.href}if(a){const e=a({url:n});for(const t of e)yield t.href}}(s.url\x2Ct)){const t=r.get(a);if(t)return{cacheKey:t\x2Cintegrity:e.getIntegrityForCacheKey(t)}}})\x2Ce.strategy)}}const U=new Map\x2CL=new RegExp("^https:\\\\/\\\\/(platform-cs[-\\\\d\\\\w]*.adobe.io)\\\\/");let P=0;const T=new Map;function x(e){const{id:t}=e.data\x2Cs=T.get(t);if(!s)return void console.error("ACPProxy: Unknown response id"\x2Ct);const{resolve:r\x2Creject:a}=s;if(e.data.error){const{error:t}=e.data;a(t)}else{const{headers:t\x2Cbody:s\x2Cstatus:a\x2CstatusText:n}=e.data;r(new Response(s\x2C{headers:new Headers(t)\x2Cstatus:a\x2CstatusText:n}))}T.delete(t)}async function K(e){const t=e.event\x2Cs=U.get(t.clientId);if(!s)return fetch(t.request);const{request:r}=e;try{return await function(e\x2Ct){return new Promise(((s\x2Cr)=>{e||r(new Error("No IFrame MessagePort"));const a=P++;T.set(a\x2C{resolve:s\x2Creject:r});try{e.postMessage({id:a\x2Ctype:"fetch"\x2Curl:t.url\x2Cheaders:Object.fromEntries(t.headers.entries())})}catch(e){r(e)\x2CT.delete(a)}}))}(s\x2Cr)}catch(e){return console.debug("ACPProxy: handler error: "\x2Ce\x2C{request:r\x2Cevent:t})\x2Cfetch(t.request)}}let E=!1;const O={initialize(e){L&&e.addEventListener("message"\x2C(e=>{if("enable-acp-proxy"===e.data?.type){const t=e.ports[0];E||(E=!0\x2Cconsole.debug("ACPProxy: register handler")\x2Ck(L\x2CK));const s=e.source;console.debug("ACPProxy: add client ID: "\x2Cs.id)\x2CU.set(s.id\x2Ct)\x2Ct.onmessage=x}}))}}\x2CM={}.DEBUG_SW?3e4:36e5;var N;console.log("Service worker: Adobe Photoshop Web version: 202208.15.0 870f5f1d794")\x2CN={prefix:"psweb"\x2Csuffix:"v1"}\x2C(e=>{for(const s of Object.keys(t))e(s)})((e=>{"string"==typeof N[e]&&(t[e]=N[e])}))\x2Cself.addEventListener("activate"\x2C(()=>self.clients.claim()));const S=[{'revision':null\x2C'url':'/apollo-assets/apollo_web.b958780c7d6c801298c3.js'}\x2C{'revision':null\x2C'url':'/apollo-assets/apollo_web.f8f7d88164ac8b2f1094.wasm'}\x2C{'revision':'75fe51a4b967548bbeeebd4ecb08688b'\x2C'url':'/apollo-assets/apollo_web.worker.870f5f1d794.js'}\x2C{'revision':null\x2C'url':'/apollo-assets/apollo_web_required.7355686c9a00256f97cd.js'}\x2C{'revision':null\x2C'url':'/apollo-assets/apollo_web_required.a1db650704f365f4e191.data'}\x2C{'revision':'4e1460d8cfa159e0666af803bd55bcd6'\x2C'url':'/block/some.css'}\x2C{'revision':null\x2C'url':'/static/css/bumper.aedf27dd468e5a759978.css'}\x2C{'revision':null\x2C'url':'/static/css/index.aedf27dd468e5a759978.css'}\x2C{'revision':null\x2C'url':'/static/css/unsupported.aedf27dd468e5a759978.css'}\x2C{'revision':null\x2C'url':'/static/js/110.d8305649.chunk.js'}\x2C{'revision':null\x2C'url':'/static/js/132.cb8fa490.chunk.js'}\x2C{'revision':null\x2C'url':'/static/js/142.f9e079fd.chunk.js'}\x2C{'revision':null\x2C'url':'/static/js/206.7d1e8d39.chunk.js'}\x2C{'revision':null\x2C'url':'/static/js/265.5b49e89e.chunk.js'}\x2C{'revision':null\x2C'url':'/static/js/448.038502dc.chunk.js'}\x2C{'revision':null\x2C'url':'/static/js/588.e6969c50.chunk.js'}\x2C{'revision':null\x2C'url':'/static/js/724.b4265b30.chunk.js'}\x2C{'revision':null\x2C'url':'/static/js/854.6da839b4.chunk.js'}\x2C{'revision':null\x2C'url':'/static/js/885.6019320b.chunk.js'}\x2C{'revision':null\x2C'url':'/static/js/956.b605c4a9.chunk.js'}\x2C{'revision':null\x2C'url':'/static/js/apollo-chunk.ac1d1da3.chunk.js'}\x2C{'revision':null\x2C'url':'/static/js/apollo-launcher.4eec1970.chunk.js'}\x2C{'revision':null\x2C'url':'/static/js/bootstrap.f76d0a87.chunk.js'}\x2C{'revision':null\x2C'url':'/static/js/bumper.24487551.js'}\x2C{'revision':null\x2C'url':'/static/js/comments.d28941c7.chunk.js'}\x2C{'revision':null\x2C'url':'/static/js/discover-panel.d8fd5c33.chunk.js'}\x2C{'revision':null\x2C'url':'/static/js/document-picker.77a5c561.chunk.js'}\x2C{'revision':null\x2C'url':'/static/js/index.92b49374.js'}\x2C{'revision':null\x2C'url':'/static/js/marketing-tech.cc8aeb65.chunk.js'}\x2C{'revision':null\x2C'url':'/static/js/share-dialog.b6c91747.chunk.js'}\x2C{'revision':null\x2C'url':'/static/js/timeline.120b61f7.chunk.js'}\x2C{'revision':null\x2C'url':'/static/js/unsupported.38acfbe2.js'}\x2C{'revision':null\x2C'url':'/static/js/wam-client.234540af.chunk.js'}];var W\x2CI;new URL(self.serviceWorker.scriptURL).searchParams.has("no_precache")?console.log("Service worker init: NO precache"):(console.log("Service worker init: precache")\x2Cself.addEventListener("activate"\x2C(e=>{const t=a();e.waitUntil((async(e\x2Ct="-precache-")=>{const s=(await self.caches.keys()).filter((s=>s.includes(t)&&s.includes(self.registration.scope)&&s!==e));return await Promise.all(s.map((e=>self.caches.delete(e))))\x2Cs})(t).then((e=>{})))}))\x2CI=S\x2Cm().precache(I)\x2Cfunction(e){const t=m();k(new q(t\x2Cundefined))}())\x2CW=[{handlerWillRespond:async({request:e\x2Cresponse:t})=>{if(!("same-origin"!==e.mode||t.headers.has("Cross-Origin-Embedder-Policy")&&t.headers.has("Cross-Origin-Opener-Policy"))){console.debug("Service worker: Add missing COEP/COOP headers: "\x2Ce.url);const{status:s\x2CstatusText:r}=t\x2Ca=new Headers(t?.headers);return a.set("Cross-Origin-Embedder-Policy"\x2C"require-corp")\x2Ca.set("Cross-Origin-Opener-Policy"\x2C"same-origin")\x2Cnew Response(t.body\x2C{status:s\x2CstatusText:r\x2Cheaders:a})}return t}}]\x2Cm().strategy.plugins.push(...W)\x2CO.initialize(self)\x2Cself.addEventListener("install"\x2C(async e=>{await self.skipWaiting()}))\x2Cself.addEventListener("activate"\x2C(async e=>{console.debug("Service worker activate: Version: "\x2C"202208.15.0"\x2C" Build SHA: "\x2C"870f5f1d794");const t=setInterval((()=>{"activated"===self.serviceWorker.state?(console.debug("Service worker update check...")\x2Cself.registration.update().catch((e=>{console.warn("Service worker update check: failed"\x2Ce)}))):t&&(console.debug("Service worker no longer active...")\x2CclearInterval(t))})\x2CM)}))\x2Cself.addEventListener("message"\x2C(async e=>{console.debug("Service worker got message: "\x2Ce);try{if("skipWaiting"!==e.data&&"upgrade"!==e.data||self.skipWaiting()\x2C"version"===e.data&&e.ports&&e.ports[0]&&e.ports[0].postMessage({version:"202208.15.0"\x2CbuildSha:"870f5f1d794"})\x2C"all-versions"===e.data&&e.ports&&e.ports[0]){const t=await(async()=>{const e=await self.clients.matchAll({includeUncontrolled:!0\x2Ctype:"window"});return Promise.all(e.map((e=>{const t=e.id;return new Promise((s=>{const r=setTimeout((()=>{s({clientId:t\x2Cerror:new Error("timeout")})})\x2C500);try{const a=new MessageChannel;a.port1.onmessage=e=>{a.port1.onmessage=null;const n=e.data||{};clearTimeout(r)\x2Cs({clientId:t\x2C...n})}\x2Ce.postMessage("get-client-info"\x2C[a.port2])}catch(e){clearTimeout(r)\x2Cs({clientId:t\x2Cerror:e})}}))})))})();e.ports[0].postMessage({version:"202208.15.0"\x2CbuildSha:"870f5f1d794"\x2Cclients:t})}}catch(t){console.error("Service worker failed to handle message event: "\x2C{event:e\x2Cerror:t})}}))\x2Cconsole.debug("Service worker is loaded")})()})();\n//# sourceMappingURL=service-worker.js.map script,deserialize,3,5709 script-details,3,https://photoshop.adobe.com/service-worker.js,0,0,service-worker.js.map function,deserialize,3,0,21720,0.959,5709,https://photoshop.adobe.com/service-worker.js compilation-cache,put,script,3,0,21720,5750 new,MemoryChunk,0x11c00080000,262144 new,MemoryChunk,0x3f2206ac0000,262144 new,MemoryChunk,0x3f220cb40000,262144 new,MemoryChunk,0x3f220cb80000,262144 new,MemoryChunk,0x3f220cbc0000,262144 new,MemoryChunk,0x3f220cc00000,262144