playwright-core 1.57.0-alpha-2025-10-09 → 1.57.0-alpha-2025-10-10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,2 @@
1
+ import{M as m,r as s,T as F,W as C,j as e,D as I,a as z,b as N,c as k,d as O,e as V,f as $}from"./assets/defaultSettingsView-Cjpf69w8.js";const q=()=>{const[n,i]=s.useState(!1),[c,l]=s.useState(),[d,u]=s.useState(),[p,L]=s.useState(D),[g,x]=s.useState({done:0,total:0}),[b,w]=s.useState(!1),[j,S]=s.useState(null),[T,R]=s.useState(null),[U,E]=s.useState(!1),v=s.useCallback(t=>{const r=new URL(window.location.href);if(!t.length)return;const a=t.item(0),o=URL.createObjectURL(a);r.searchParams.append("trace",o),r.searchParams.append("traceFileName",a.name);const h=r.toString();window.history.pushState({},"",h),l(o),u(a.name),w(!1),S(null)},[]);s.useEffect(()=>{const t=async r=>{var a;if((a=r.clipboardData)!=null&&a.files.length){for(const o of r.clipboardData.files)if(o.type!=="application/zip")return;r.preventDefault(),v(r.clipboardData.files)}};return document.addEventListener("paste",t),()=>document.removeEventListener("paste",t)}),s.useEffect(()=>{const t=r=>{const{method:a,params:o}=r.data;if(a!=="load"||!((o==null?void 0:o.trace)instanceof Blob))return;const h=new File([o.trace],"trace.zip",{type:"application/zip"}),f=new DataTransfer;f.items.add(h),v(f.files)};return window.addEventListener("message",t),()=>window.removeEventListener("message",t)});const W=s.useCallback(t=>{t.preventDefault(),v(t.dataTransfer.files)},[v]),M=s.useCallback(t=>{t.preventDefault(),t.target.files&&v(t.target.files)},[v]);s.useEffect(()=>{const t=new URL(window.location.href).searchParams,r=t.get("trace");if(i(t.has("isServer")),r!=null&&r.startsWith("file:")){R(r||null);return}if(t.has("isServer")){const a=new URLSearchParams(window.location.search).get("ws"),o=new URL(`../${a}`,window.location.toString());o.protocol=window.location.protocol==="https:"?"wss:":"ws:";const h=new F(new C(o));h.onLoadTraceRequested(async f=>{l(f.traceUrl),w(!1),S(null)}),h.initialize({}).catch(()=>{})}else r&&!r.startsWith("blob:")&&l(r)},[]),s.useEffect(()=>{(async()=>{if(!c){L(D);return}const t=r=>{r.data.method==="progress"&&x(r.data.params)};try{navigator.serviceWorker.addEventListener("message",t),x({done:0,total:1});const r=new URLSearchParams;r.set("trace",c),d&&r.set("traceFileName",d);const a=await fetch(`contexts?${r.toString()}`);if(!a.ok){n||l(void 0),S((await a.json()).error);return}const o=await a.json(),h=new m(c,o);x({done:0,total:0}),L(h)}finally{navigator.serviceWorker.removeEventListener("message",t)}})()},[n,c,d]);const P=g.done!==g.total&&g.total!==0&&!j;s.useEffect(()=>{if(P){const t=setTimeout(()=>{E(!0)},200);return()=>clearTimeout(t)}else E(!1)},[P]);const y=!!(!n&&!b&&!T&&(!c||j));return e.jsxs("div",{className:"vbox workbench-loader",onDragOver:t=>{t.preventDefault(),w(!0)},children:[e.jsxs("div",{className:"hbox header",...y?{inert:!0}:{},children:[e.jsx("div",{className:"logo",children:e.jsx("img",{src:"playwright-logo.svg",alt:"Playwright logo"})}),e.jsx("div",{className:"product",children:"Playwright"}),p.title&&e.jsx("div",{className:"title",children:p.title}),e.jsx("div",{className:"spacer"}),e.jsx(I,{icon:"settings-gear",title:"Settings",dialogDataTestId:"settings-toolbar-dialog",children:e.jsx(z,{})})]}),e.jsx(N.Provider,{value:p,children:e.jsx(k,{inert:y})}),T&&e.jsxs("div",{className:"drop-target",children:[e.jsx("div",{children:"Trace Viewer uses Service Workers to show traces. To view trace:"}),e.jsxs("div",{style:{paddingTop:20},children:[e.jsxs("div",{children:["1. Click ",e.jsx("a",{href:T,children:"here"})," to put your trace into the download shelf"]}),e.jsxs("div",{children:["2. Go to ",e.jsx("a",{href:"https://trace.playwright.dev",children:"trace.playwright.dev"})]}),e.jsx("div",{children:"3. Drop the trace from the download shelf into the page"})]})]}),e.jsx(O,{open:U,isModal:!0,className:"progress-dialog",children:e.jsxs("div",{className:"progress-content",children:[e.jsx("div",{className:"title",role:"heading","aria-level":1,children:"Loading Playwright Trace..."}),e.jsx("div",{className:"progress-wrapper",children:e.jsx("div",{className:"inner-progress",style:{width:g.total?100*g.done/g.total+"%":0}})})]})}),y&&e.jsxs("div",{className:"drop-target",children:[e.jsx("div",{className:"processing-error",role:"alert",children:j}),e.jsx("div",{className:"title",role:"heading","aria-level":1,children:"Drop Playwright Trace to load"}),e.jsx("div",{children:"or"}),e.jsx("button",{onClick:()=>{const t=document.createElement("input");t.type="file",t.click(),t.addEventListener("change",r=>M(r))},type:"button",children:"Select file(s)"}),e.jsx("div",{style:{maxWidth:400},children:"Playwright Trace Viewer is a Progressive Web App, it does not send your trace anywhere, it opens it locally."})]}),n&&!c&&e.jsx("div",{className:"drop-target",children:e.jsx("div",{className:"title",children:"Select test to see the trace"})}),b&&e.jsx("div",{className:"drop-target",onDragLeave:()=>{w(!1)},onDrop:t=>W(t),children:e.jsx("div",{className:"title",children:"Release to analyse the Playwright Trace"})})]})},D=new m("",[]),A=({traceJson:n})=>{const[i,c]=s.useState(void 0),[l,d]=s.useState(0),u=s.useRef(null);return s.useEffect(()=>(u.current&&clearTimeout(u.current),u.current=setTimeout(async()=>{try{const p=await B(n);c(p)}catch{const p=new m("",[]);c(p)}finally{d(l+1)}},500),()=>{u.current&&clearTimeout(u.current)}),[n,l]),e.jsx(N.Provider,{value:i,children:e.jsx(k,{isLive:!0})})};async function B(n){const i=new URLSearchParams;i.set("trace",n);const l=await(await fetch(`contexts?${i.toString()}`)).json();return new m(n,l)}(async()=>{const n=new URLSearchParams(window.location.search);if(V(),window.location.protocol!=="file:"){if(n.get("isUnderTest")==="true"&&await new Promise(d=>setTimeout(d,1e3)),!navigator.serviceWorker)throw new Error(`Service workers are not supported.
2
+ Make sure to serve the Trace Viewer (${window.location}) via HTTPS or localhost.`);navigator.serviceWorker.register("sw.bundle.js"),navigator.serviceWorker.controller||await new Promise(d=>{navigator.serviceWorker.oncontrollerchange=()=>d()}),setInterval(function(){fetch("ping")},1e4)}const i=n.get("trace"),l=(i==null?void 0:i.endsWith(".json"))?e.jsx(A,{traceJson:i}):e.jsx(q,{});$.createRoot(document.querySelector("#root")).render(l)})();
@@ -7,8 +7,8 @@
7
7
  <link rel="icon" href="./playwright-logo.svg" type="image/svg+xml">
8
8
  <link rel="manifest" href="./manifest.webmanifest">
9
9
  <title>Playwright Trace Viewer</title>
10
- <script type="module" crossorigin src="./index.DFO9NNF5.js"></script>
11
- <link rel="modulepreload" crossorigin href="./assets/defaultSettingsView-ClwvkA2N.js">
10
+ <script type="module" crossorigin src="./index.DvnuWZ39.js"></script>
11
+ <link rel="modulepreload" crossorigin href="./assets/defaultSettingsView-Cjpf69w8.js">
12
12
  <link rel="stylesheet" crossorigin href="./defaultSettingsView.TQ8_7ybu.css">
13
13
  <link rel="stylesheet" crossorigin href="./index.I8N9v4jT.css">
14
14
  </head>
@@ -2,6 +2,7 @@
2
2
  <!DOCTYPE html>
3
3
  <html lang="en">
4
4
  <body>
5
+ <iframe src="about:blank" style="position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;border:none;"></iframe>
5
6
  <script>
6
7
  (async () => {
7
8
  if (!navigator.serviceWorker)
@@ -12,10 +13,9 @@
12
13
  const traceUrl = new URL(location.href).searchParams.get('trace');
13
14
  const params = new URLSearchParams();
14
15
  params.set('trace', traceUrl);
15
- await fetch('contexts?' + params.toString()).then(r => r.json());
16
- await location.reload();
16
+ await fetch('contexts?' + params.toString());
17
+ document.querySelector('iframe').src = new URLSearchParams(location.search).get('r');
17
18
  })();
18
19
  </script>
19
- <script src="stall.js"></script>
20
20
  </body>
21
21
  </html>
@@ -1,3 +1,3 @@
1
- var Ks=Object.defineProperty;var Xs=(n,t,e)=>t in n?Ks(n,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):n[t]=e;var v=(n,t,e)=>Xs(n,typeof t!="symbol"?t+"":t,e);function $s(n,t){const e=new Array(t.length).fill(0);return new Array(t.length).fill(0).map((s,r)=>(i,a)=>{e[r]=i/a*t[r]*1e3,n(e.reduce((o,l)=>o+l,0),1e3)})}const Mn={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function Js(n){return n.replace(/[&<>"']/ug,t=>Mn[t])}function Qs(n){return n.replace(/[&<]/ug,t=>Mn[t])}function Ht(n,t,e){return n.find((s,r)=>{if(r===n.length-1)return!0;const i=n[r+1];return Math.abs(t(s)-e)<Math.abs(t(i)-e)})}function Un(n){return Array.isArray(n)&&typeof n[0]=="string"}function zs(n){return Array.isArray(n)&&Array.isArray(n[0])}class er{constructor(t,e,s,r,i){v(this,"_htmlCache");v(this,"_snapshots");v(this,"_index");v(this,"snapshotName");v(this,"_resources");v(this,"_snapshot");v(this,"_callId");v(this,"_screencastFrames");this._htmlCache=t,this._resources=e,this._snapshots=s,this._index=i,this._snapshot=s[i],this._callId=s[i].callId,this._screencastFrames=r,this.snapshotName=s[i].snapshotName}snapshot(){return this._snapshots[this._index]}viewport(){return this._snapshots[this._index].viewport}closestScreenshot(){var r;const{wallTime:t,timestamp:e}=this.snapshot(),s=t&&((r=this._screencastFrames[0])!=null&&r.frameSwapWallTime)?Ht(this._screencastFrames,i=>i.frameSwapWallTime,t):Ht(this._screencastFrames,i=>i.timestamp,e);return s==null?void 0:s.sha1}render(){const t=[],e=(i,a,o,l)=>{if(typeof i=="string"){o==="STYLE"||o==="style"?t.push(cr(ir(i))):t.push(Qs(i));return}if(zs(i)){const _=a-i[0][0];if(_>=0&&_<=a){const u=nr(this._snapshots[_]),h=i[0][1];if(h>=0&&h<u.length)return e(u[h],_,o,l)}}else if(Un(i)){const[_,u,...h]=i,p=_==="NOSCRIPT"?"X-NOSCRIPT":_,x=Object.entries(u||{});t.push("<",p);const S="__playwright_current_src__",f=p==="IFRAME"||p==="FRAME",c=p==="A",d=p==="IMG",y=d&&x.some(g=>g[0]===S),b=p==="SOURCE"&&o==="PICTURE"&&(l==null?void 0:l.some(g=>g[0]===S));for(const[g,A]of x){let m=g;f&&g.toLowerCase()==="src"&&(m="__playwright_src__"),d&&g===S&&(m="src"),["src","srcset"].includes(g.toLowerCase())&&(y||b)&&(m="_"+m);let R=A;c&&g.toLowerCase()==="href"?R="link://"+A:(g.toLowerCase()==="href"||g.toLowerCase()==="src"||g===S)&&(R=ft(A)),t.push(" ",m,'="',Js(R),'"')}t.push(">");for(const g of h)e(g,a,p,x);tr.has(p)||t.push("</",p,">");return}else return},s=this._snapshot;return{html:this._htmlCache.getOrCompute(this,()=>{e(s.html,this._index,void 0,void 0);const a=(s.doctype?`<!DOCTYPE ${s.doctype}>`:"")+["<style>*,*::before,*::after { visibility: hidden }</style>",`<script>${sr(this.viewport(),this._callId,this.snapshotName)}<\/script>`].join("")+t.join("");return{value:a,size:a.length}}),pageId:s.pageId,frameId:s.frameId,index:this._index}}resourceByUrl(t,e){const s=this._snapshot;let r,i;for(const o of this._resources){if(typeof o._monotonicTime=="number"&&o._monotonicTime>=s.timestamp)break;o.response.status!==304&&o.request.url===t&&o.request.method===e&&(o._frameref===s.frameId?r=o:i=o)}let a=r??i;if(a&&e.toUpperCase()==="GET"){for(const o of s.resourceOverrides)if(t===o.url&&o.sha1){a={...a,response:{...a.response,content:{...a.response.content,_sha1:o.sha1}}};break}}return a}}const tr=new Set(["AREA","BASE","BR","COL","COMMAND","EMBED","HR","IMG","INPUT","KEYGEN","LINK","MENUITEM","META","PARAM","SOURCE","TRACK","WBR"]);function nr(n){if(!n._nodes){const t=[],e=s=>{if(typeof s=="string")t.push(s);else if(Un(s)){const[,,...r]=s;for(const i of r)e(i);t.push(s)}};e(n.html),n._nodes=t}return n._nodes}function sr(n,...t){function e(s,r,...i){const a=new URLSearchParams(location.search),o=a.has("shouldPopulateCanvasFromScreenshot"),l=a.has("isUnderTest"),_={viewport:r,frames:new WeakMap};window.__playwright_frame_bounding_rects__=_;const u="Recorded click position in absolute coordinates did not match the center of the clicked element. This is likely due to a difference between the test runner and the trace viewer operating systems.",h=[],p=[],x=[],S=[];let f=window;for(;f!==f.parent&&!f.location.pathname.match(/\/page@[a-z0-9]+$/);)f=f.parent;const c=b=>{for(const g of b.querySelectorAll("[__playwright_scroll_top_]"))h.push(g);for(const g of b.querySelectorAll("[__playwright_scroll_left_]"))p.push(g);for(const g of b.querySelectorAll("[__playwright_value_]")){const A=g;A.type!=="file"&&(A.value=A.getAttribute("__playwright_value_")),g.removeAttribute("__playwright_value_")}for(const g of b.querySelectorAll("[__playwright_checked_]"))g.checked=g.getAttribute("__playwright_checked_")==="true",g.removeAttribute("__playwright_checked_");for(const g of b.querySelectorAll("[__playwright_selected_]"))g.selected=g.getAttribute("__playwright_selected_")==="true",g.removeAttribute("__playwright_selected_");for(const g of b.querySelectorAll("[__playwright_popover_open_]")){try{g.showPopover()}catch{}g.removeAttribute("__playwright_popover_open_")}for(const g of b.querySelectorAll("[__playwright_dialog_open_]")){try{g.getAttribute("__playwright_dialog_open_")==="modal"?g.showModal():g.show()}catch{}g.removeAttribute("__playwright_dialog_open_")}for(const g of i)for(const A of b.querySelectorAll(`[__playwright_target__="${g}"]`)){const m=A.style;m.outline="2px solid #006ab1",m.backgroundColor="#6fa8dc7f",x.push(A)}for(const g of b.querySelectorAll("iframe, frame")){const A=g.getAttribute("__playwright_bounding_rect__");g.removeAttribute("__playwright_bounding_rect__");const m=A?JSON.parse(A):void 0;m&&_.frames.set(g,{boundingRect:m,scrollLeft:0,scrollTop:0});const R=g.getAttribute("__playwright_src__");if(!R)g.setAttribute("src",'data:text/html,<body style="background: #ddd"></body>');else{const E=new URL(s(window.location.href)),O=E.pathname.lastIndexOf("/snapshot/");O!==-1&&(E.pathname=E.pathname.substring(0,O+1)),E.pathname+=R.substring(1),g.setAttribute("src",E.toString())}}{const g=b.querySelector("body[__playwright_custom_elements__]");if(g&&window.customElements){const A=(g.getAttribute("__playwright_custom_elements__")||"").split(",");for(const m of A)window.customElements.define(m,class extends HTMLElement{})}}for(const g of b.querySelectorAll("template[__playwright_shadow_root_]")){const A=g,m=A.parentElement.attachShadow({mode:"open"});m.appendChild(A.content),A.remove(),c(m)}if("adoptedStyleSheets"in b){const g=[...b.adoptedStyleSheets];for(const A of b.querySelectorAll("template[__playwright_style_sheet_]")){const m=A,R=new CSSStyleSheet;R.replaceSync(m.getAttribute("__playwright_style_sheet_")),g.push(R)}b.adoptedStyleSheets=g}S.push(...b.querySelectorAll("canvas"))},d=()=>{window.removeEventListener("load",d);for(const A of h)A.scrollTop=+A.getAttribute("__playwright_scroll_top_"),A.removeAttribute("__playwright_scroll_top_"),_.frames.has(A)&&(_.frames.get(A).scrollTop=A.scrollTop);for(const A of p)A.scrollLeft=+A.getAttribute("__playwright_scroll_left_"),A.removeAttribute("__playwright_scroll_left_"),_.frames.has(A)&&(_.frames.get(A).scrollLeft=A.scrollTop);document.styleSheets[0].disabled=!0;const b=new URL(window.location.href).searchParams,g=window===f;if(b.get("pointX")&&b.get("pointY")){const A=+b.get("pointX"),m=+b.get("pointY"),R=b.has("hasInputTarget"),E=x.length>0,O=document.documentElement?[document.documentElement]:[];for(const T of E?x:O){const w=document.createElement("x-pw-pointer");if(w.style.position="fixed",w.style.backgroundColor="#f44336",w.style.width="20px",w.style.height="20px",w.style.borderRadius="10px",w.style.margin="-10px 0 0 -10px",w.style.zIndex="2147483646",w.style.display="flex",w.style.alignItems="center",w.style.justifyContent="center",E){const C=T.getBoundingClientRect(),I=C.left+C.width/2,k=C.top+C.height/2;if(w.style.left=I+"px",w.style.top=k+"px",g&&(Math.abs(I-A)>=10||Math.abs(k-m)>=10)){const P=document.createElement("x-pw-pointer-warning");P.textContent="⚠",P.style.fontSize="19px",P.style.color="white",P.style.marginTop="-3.5px",P.style.userSelect="none",w.appendChild(P),w.setAttribute("title",u)}document.documentElement.appendChild(w)}else g&&!R&&(w.style.left=A+"px",w.style.top=m+"px",document.documentElement.appendChild(w))}}if(S.length>0){let A=function(R,E){function O(){const T=document.createElement("canvas");T.width=T.width/Math.floor(T.width/24),T.height=T.height/Math.floor(T.height/24);const w=T.getContext("2d");return w.fillStyle="lightgray",w.fillRect(0,0,T.width,T.height),w.fillStyle="white",w.fillRect(0,0,T.width/2,T.height/2),w.fillRect(T.width/2,T.height/2,T.width,T.height),w.createPattern(T,"repeat")}R.fillStyle=O(),R.fillRect(0,0,E.width,E.height)};const m=new Image;m.onload=()=>{var R;for(const E of S){const O=E.getContext("2d"),T=E.getAttribute("__playwright_bounding_rect__");if(E.removeAttribute("__playwright_bounding_rect__"),!T)continue;let w;try{w=JSON.parse(T)}catch{continue}let C=window;for(;C!==f;){const U=C.frameElement;C=C.parent;const L=(R=C.__playwright_frame_bounding_rects__)==null?void 0:R.frames.get(U);if(!(L!=null&&L.boundingRect))break;const Z=L.boundingRect.left-L.scrollLeft,N=L.boundingRect.top-L.scrollTop;w.left+=Z,w.top+=N,w.right+=Z,w.bottom+=N}const{width:I,height:k}=f.__playwright_frame_bounding_rects__.viewport;w.left=w.left/I,w.top=w.top/k,w.right=w.right/I,w.bottom=w.bottom/k;const P=w.right>1||w.bottom>1;if(w.left>1||w.top>1){E.title="Playwright couldn't capture canvas contents because it's located outside the viewport.";continue}A(O,E),o?(O.drawImage(m,w.left*m.width,w.top*m.height,(w.right-w.left)*m.width,(w.bottom-w.top)*m.height,0,0,E.width,E.height),P?E.title="Playwright couldn't capture full canvas contents because it's located partially outside the viewport.":E.title="Canvas contents are displayed on a best-effort basis based on viewport screenshots taken during test execution."):E.title="Canvas content display is disabled.",l&&console.log("canvas drawn:",JSON.stringify([w.left,w.top,w.right-w.left,w.bottom-w.top].map(U=>Math.floor(U*100))))}},m.onerror=()=>{for(const R of S){const E=R.getContext("2d");A(E,R),R.title="Playwright couldn't show canvas contents because the screenshot failed to load."}},m.src=location.href.replace("/snapshot","/closest-screenshot")}},y=()=>c(document);window.addEventListener("load",d),window.addEventListener("DOMContentLoaded",y)}return`
2
- (${e.toString()})(${ut.toString()}, ${JSON.stringify(n)}${t.map(s=>`, "${s}"`).join("")})`}const Hn=["about:","blob:","data:","file:","ftp:","http:","https:","mailto:","sftp:","ws:","wss:"],Wt="http://playwright.bloburl/#";function ft(n){n.startsWith(Wt)&&(n=n.substring(Wt.length));try{const t=new URL(n);if(t.protocol==="javascript:"||t.protocol==="vbscript:")return"javascript:void(0)";const e=t.protocol==="blob:",s=t.protocol==="file:";if(!e&&!s&&Hn.includes(t.protocol))return n;const r="pw-"+t.protocol.slice(0,t.protocol.length-1);return s||(t.protocol="https:"),t.hostname=t.hostname?`${r}--${t.hostname}`:r,s&&(t.protocol="https:"),t.toString()}catch{return n}}const rr=/url\(['"]?([\w-]+:)\/\//ig;function ir(n){return n.replace(rr,(t,e)=>!(e==="blob:")&&!(e==="file:")&&Hn.includes(e)?t:t.replace(e+"//",`https://pw-${e.slice(0,-1)}--`))}const ar=/url\(\s*'([^']*)'\s*\)/ig,or=/url\(\s*"([^"]*)"\s*\)/ig;function cr(n){const t=(e,s)=>s.includes("</")?e.replace(s,encodeURI(s)):e;return n.replace(ar,t).replace(or,t)}function ut(n){const t=new URL(n);return t.pathname.endsWith("/snapshot.html")?t.searchParams.get("r"):n}class lr{constructor(t,e){v(this,"_snapshotStorage");v(this,"_resourceLoader");v(this,"_snapshotIds",new Map);this._snapshotStorage=t,this._resourceLoader=e}serveSnapshot(t,e,s){const r=this._snapshot(t,e);if(!r)return new Response(null,{status:404});const i=r.render();return this._snapshotIds.set(s,r),new Response(i.html,{status:200,headers:{"Content-Type":"text/html; charset=utf-8"}})}async serveClosestScreenshot(t,e){const s=this._snapshot(t,e),r=s==null?void 0:s.closestScreenshot();return r?new Response(await this._resourceLoader(r)):new Response(null,{status:404})}serveSnapshotInfo(t,e){const s=this._snapshot(t,e);return this._respondWithJson(s?{viewport:s.viewport(),url:s.snapshot().frameUrl,timestamp:s.snapshot().timestamp,wallTime:s.snapshot().wallTime}:{error:"No snapshot found"})}_snapshot(t,e){const s=e.get("name");return this._snapshotStorage.snapshotByName(t,s)}_respondWithJson(t){return new Response(JSON.stringify(t),{status:200,headers:{"Cache-Control":"public, max-age=31536000","Content-Type":"application/json"}})}async serveResource(t,e,s){let r;const i=this._snapshotIds.get(s);for(const x of t)if(r=i==null?void 0:i.resourceByUrl(fr(x),e),r)break;if(!r)return new Response(null,{status:404});const a=r.response.content._sha1,o=a?await this._resourceLoader(a)||new Blob([]):new Blob([]);let l=r.response.content.mimeType;/^text\/|^application\/(javascript|json)/.test(l)&&!l.includes("charset")&&(l=`${l}; charset=utf-8`);const u=new Headers;l!=="x-unknown"&&u.set("Content-Type",l);for(const{name:x,value:S}of r.response.headers)u.set(x,S);u.delete("Content-Encoding"),u.delete("Access-Control-Allow-Origin"),u.set("Access-Control-Allow-Origin","*"),u.delete("Content-Length"),u.set("Content-Length",String(o.size)),u.set("Cache-Control","public, max-age=31536000");const{status:h}=r.response,p=h===101||h===204||h===205||h===304;return new Response(p?null:o,{headers:u,status:r.response.status,statusText:r.response.statusText})}}function fr(n){try{const t=new URL(n);return t.hash="",t.toString()}catch{return n}}function ur(n){const t=new Map,{files:e,stacks:s}=n;for(const r of s){const[i,a]=r;t.set(`call@${i}`,a.map(o=>({file:e[o[0]],line:o[1],column:o[2],function:o[3]})))}return t}class dr{constructor(t){v(this,"_maxSize");v(this,"_map");v(this,"_size");this._maxSize=t,this._map=new Map,this._size=0}getOrCompute(t,e){if(this._map.has(t)){const r=this._map.get(t);return this._map.delete(t),this._map.set(t,r),r.value}const s=e();for(;this._map.size&&this._size+s.size>this._maxSize;){const[r,i]=this._map.entries().next().value;this._size-=i.size,this._map.delete(r)}return this._map.set(t,s),this._size+=s.size,s.value}}class _r{constructor(){v(this,"_frameSnapshots",new Map);v(this,"_cache",new dr(1e8));v(this,"_contextToResources",new Map)}addResource(t,e){e.request.url=ft(e.request.url),this._ensureResourcesForContext(t).push(e)}addFrameSnapshot(t,e,s){for(const o of e.resourceOverrides)o.url=ft(o.url);let r=this._frameSnapshots.get(e.frameId);r||(r={raw:[],renderers:[]},this._frameSnapshots.set(e.frameId,r),e.isMainFrame&&this._frameSnapshots.set(e.pageId,r)),r.raw.push(e);const i=this._ensureResourcesForContext(t),a=new er(this._cache,i,r.raw,s,r.raw.length-1);return r.renderers.push(a),a}snapshotByName(t,e){const s=this._frameSnapshots.get(t);return s==null?void 0:s.renderers.find(r=>r.snapshotName===e)}snapshotsForTest(){return[...this._frameSnapshots.keys()]}finalize(){for(const t of this._contextToResources.values())t.sort((e,s)=>(e._monotonicTime||0)-(s._monotonicTime||0))}_ensureResourcesForContext(t){let e=this._contextToResources.get(t);return e||(e=[],this._contextToResources.set(t,e)),e}}class Wn extends Error{constructor(t){super(t),this.name="TraceVersionError"}}const Bt=8;class hr{constructor(t,e){v(this,"_contextEntry");v(this,"_snapshotStorage");v(this,"_actionMap",new Map);v(this,"_version");v(this,"_pageEntries",new Map);v(this,"_jsHandles",new Map);v(this,"_consoleObjects",new Map);this._contextEntry=t,this._snapshotStorage=e}appendTrace(t){for(const e of t.split(`
3
- `))this._appendEvent(e)}actions(){return[...this._actionMap.values()]}_pageEntry(t){let e=this._pageEntries.get(t);return e||(e={pageId:t,screencastFrames:[]},this._pageEntries.set(t,e),this._contextEntry.pages.push(e)),e}_appendEvent(t){if(!t)return;const e=this._modernize(JSON.parse(t));for(const s of e)this._innerAppendEvent(s)}_innerAppendEvent(t){const e=this._contextEntry;switch(t.type){case"context-options":{if(t.version>Bt)throw new Wn("The trace was created by a newer version of Playwright and is not supported by this version of the viewer. Please use latest Playwright to open the trace.");this._version=t.version,e.origin=t.origin,e.browserName=t.browserName,e.channel=t.channel,e.title=t.title,e.platform=t.platform,e.wallTime=t.wallTime,e.startTime=t.monotonicTime,e.sdkLanguage=t.sdkLanguage,e.options=t.options,e.testIdAttributeName=t.testIdAttributeName,e.contextId=t.contextId??"";break}case"screencast-frame":{this._pageEntry(t.pageId).screencastFrames.push(t);break}case"before":{this._actionMap.set(t.callId,{...t,type:"action",endTime:0,log:[]});break}case"input":{const s=this._actionMap.get(t.callId);s.inputSnapshot=t.inputSnapshot,s.point=t.point;break}case"log":{const s=this._actionMap.get(t.callId);if(!s)return;s.log.push({time:t.time,message:t.message});break}case"after":{const s=this._actionMap.get(t.callId);s.afterSnapshot=t.afterSnapshot,s.endTime=t.endTime,s.result=t.result,s.error=t.error,s.attachments=t.attachments,s.annotations=t.annotations,t.point&&(s.point=t.point);break}case"action":{this._actionMap.set(t.callId,{...t,log:[]});break}case"event":{e.events.push(t);break}case"stdout":{e.stdio.push(t);break}case"stderr":{e.stdio.push(t);break}case"error":{e.errors.push(t);break}case"console":{e.events.push(t);break}case"resource-snapshot":this._snapshotStorage.addResource(this._contextEntry.contextId,t.snapshot),e.resources.push(t.snapshot);break;case"frame-snapshot":this._snapshotStorage.addFrameSnapshot(this._contextEntry.contextId,t.snapshot,this._pageEntry(t.snapshot.pageId).screencastFrames);break}"pageId"in t&&t.pageId&&this._pageEntry(t.pageId),(t.type==="action"||t.type==="before")&&(e.startTime=Math.min(e.startTime,t.startTime)),(t.type==="action"||t.type==="after")&&(e.endTime=Math.max(e.endTime,t.endTime)),t.type==="event"&&(e.startTime=Math.min(e.startTime,t.time),e.endTime=Math.max(e.endTime,t.time)),t.type==="screencast-frame"&&(e.startTime=Math.min(e.startTime,t.timestamp),e.endTime=Math.max(e.endTime,t.timestamp))}_processedContextCreatedEvent(){return this._version!==void 0}_modernize(t){let e=this._version??t.version??6,s=[t];for(;e<Bt;++e)s=this[`_modernize_${e}_to_${e+1}`].call(this,s);return s}_modernize_0_to_1(t){for(const e of t)e.type==="action"&&typeof e.metadata.error=="string"&&(e.metadata.error={error:{name:"Error",message:e.metadata.error}});return t}_modernize_1_to_2(t){var e;for(const s of t)s.type!=="frame-snapshot"||!s.snapshot.isMainFrame||(s.snapshot.viewport=((e=this._contextEntry.options)==null?void 0:e.viewport)||{width:1280,height:720});return t}_modernize_2_to_3(t){for(const e of t){if(e.type!=="resource-snapshot"||e.snapshot.request)continue;const s=e.snapshot;e.snapshot={_frameref:s.frameId,request:{url:s.url,method:s.method,headers:s.requestHeaders,postData:s.requestSha1?{_sha1:s.requestSha1}:void 0},response:{status:s.status,headers:s.responseHeaders,content:{mimeType:s.contentType,_sha1:s.responseSha1}},_monotonicTime:s.timestamp}}return t}_modernize_3_to_4(t){const e=[];for(const s of t){const r=this._modernize_event_3_to_4(s);r&&e.push(r)}return e}_modernize_event_3_to_4(t){var s,r,i,a;if(t.type!=="action"&&t.type!=="event")return t;const e=t.metadata;return e.internal||e.method.startsWith("tracing")?null:t.type==="event"?e.method==="__create__"&&e.type==="ConsoleMessage"?{type:"object",class:e.type,guid:e.params.guid,initializer:e.params.initializer}:{type:"event",time:e.startTime,class:e.type,method:e.method,params:e.params,pageId:e.pageId}:{type:"action",callId:e.id,startTime:e.startTime,endTime:e.endTime,apiName:e.apiName||e.type+"."+e.method,class:e.type,method:e.method,params:e.params,wallTime:e.wallTime||Date.now(),log:e.log,beforeSnapshot:(s=e.snapshots.find(o=>o.title==="before"))==null?void 0:s.snapshotName,inputSnapshot:(r=e.snapshots.find(o=>o.title==="input"))==null?void 0:r.snapshotName,afterSnapshot:(i=e.snapshots.find(o=>o.title==="after"))==null?void 0:i.snapshotName,error:(a=e.error)==null?void 0:a.error,result:e.result,point:e.point,pageId:e.pageId}}_modernize_4_to_5(t){const e=[];for(const s of t){const r=this._modernize_event_4_to_5(s);r&&e.push(r)}return e}_modernize_event_4_to_5(t){var e,s;if(t.type==="event"&&t.method==="__create__"&&t.class==="JSHandle"&&this._jsHandles.set(t.params.guid,t.params.initializer),t.type==="object"){if(t.class!=="ConsoleMessage")return null;const r=(e=t.initializer.args)==null?void 0:e.map(i=>{if(i.guid){const a=this._jsHandles.get(i.guid);return{preview:(a==null?void 0:a.preview)||"",value:""}}return{preview:i.preview||"",value:i.value||""}});return this._consoleObjects.set(t.guid,{type:t.initializer.type,text:t.initializer.text,location:t.initializer.location,args:r}),null}if(t.type==="event"&&t.method==="console"){const r=this._consoleObjects.get(((s=t.params.message)==null?void 0:s.guid)||"");return r?{type:"console",time:t.time,pageId:t.pageId,messageType:r.type,text:r.text,args:r.args,location:r.location}:null}return t}_modernize_5_to_6(t){const e=[];for(const s of t)if(e.push(s),!(s.type!=="after"||!s.log.length))for(const r of s.log)e.push({type:"log",callId:s.callId,message:r,time:-1});return e}_modernize_6_to_7(t){const e=[];if(!this._processedContextCreatedEvent()&&t[0].type!=="context-options"){const s={type:"context-options",origin:"testRunner",version:6,browserName:"",options:{},platform:"unknown",wallTime:0,monotonicTime:0,sdkLanguage:"javascript",contextId:""};e.push(s)}for(const s of t){if(s.type==="context-options"){e.push({...s,monotonicTime:0,origin:"library",contextId:""});continue}if(s.type==="before"||s.type==="action"){this._contextEntry.wallTime||(this._contextEntry.wallTime=s.wallTime);const r=s,i=s;i.stepId=`${r.apiName}@${r.wallTime}`,e.push(i)}else e.push(s)}return e}_modernize_7_to_8(t){const e=[];for(const s of t)if(s.type==="before"||s.type==="action"){const r=s,i=s;r.apiName&&(i.title=r.apiName,delete i.apiName),i.stepId=r.stepId??r.callId,e.push(i)}else e.push(s);return e}}class pr{constructor(){v(this,"contextEntries",[]);v(this,"_snapshotStorage");v(this,"_backend");v(this,"_resourceToContentType",new Map)}async load(t,e){var o,l;this._backend=t;const s=[];let r=!1;for(const _ of await this._backend.entryNames()){const u=_.match(/(.+)\.trace$/);u&&s.push(u[1]||""),_.includes("src@")&&(r=!0)}if(!s.length)throw new Error("Cannot find .trace file");this._snapshotStorage=new _r;const i=s.length*3;let a=0;for(const _ of s){const u=mr();u.hasSource=r;const h=new hr(u,this._snapshotStorage),p=await this._backend.readText(_+".trace")||"";h.appendTrace(p),e(++a,i);const x=await this._backend.readText(_+".network")||"";if(h.appendTrace(x),e(++a,i),u.actions=h.actions().sort((f,c)=>f.startTime-c.startTime),!t.isLive()){for(const f of u.actions.slice().reverse())if(!f.endTime&&!f.error)for(const c of u.actions)c.parentId===f.callId&&f.endTime<c.endTime&&(f.endTime=c.endTime)}const S=await this._backend.readText(_+".stacks");if(S){const f=ur(JSON.parse(S));for(const c of u.actions)c.stack=c.stack||f.get(c.callId)}e(++a,i);for(const f of u.resources)(o=f.request.postData)!=null&&o._sha1&&this._resourceToContentType.set(f.request.postData._sha1,jt(f.request.postData.mimeType)),(l=f.response.content)!=null&&l._sha1&&this._resourceToContentType.set(f.response.content._sha1,jt(f.response.content.mimeType));this.contextEntries.push(u)}this._snapshotStorage.finalize()}async hasEntry(t){return this._backend.hasEntry(t)}async resourceForSha1(t){const e=await this._backend.readBlob("resources/"+t),s=this._resourceToContentType.get(t);return!e||s===void 0||s==="x-unknown"?e:new Blob([e],{type:s})}storage(){return this._snapshotStorage}}function jt(n){const t=n.match(/^(.*);\s*charset=.*$/);return t?t[1]:n}function mr(){return{origin:"testRunner",startTime:Number.MAX_SAFE_INTEGER,wallTime:Number.MAX_SAFE_INTEGER,endTime:0,browserName:"",options:{deviceScaleFactor:1,isMobile:!1,viewport:{width:1280,height:800}},pages:[],resources:[],actions:[],events:[],errors:[],stdio:[],hasSource:!1,contextId:""}}const wr=15,F=0,se=1,gr=2,X=-2,B=-3,Gt=-4,re=-5,$=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],Bn=1440,br=0,yr=4,Er=9,xr=5,Tr=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],Sr=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],Rr=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],Ar=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,112,112],Or=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],Ir=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],ae=15;function dt(){const n=this;let t,e,s,r,i,a;function o(_,u,h,p,x,S,f,c,d,y,b){let g,A,m,R,E,O,T,w,C,I,k,P,D,U,L;I=0,E=h;do s[_[u+I]]++,I++,E--;while(E!==0);if(s[0]==h)return f[0]=-1,c[0]=0,F;for(w=c[0],O=1;O<=ae&&s[O]===0;O++);for(T=O,w<O&&(w=O),E=ae;E!==0&&s[E]===0;E--);for(m=E,w>E&&(w=E),c[0]=w,U=1<<O;O<E;O++,U<<=1)if((U-=s[O])<0)return B;if((U-=s[E])<0)return B;for(s[E]+=U,a[1]=O=0,I=1,D=2;--E!==0;)a[D]=O+=s[I],D++,I++;E=0,I=0;do(O=_[u+I])!==0&&(b[a[O]++]=E),I++;while(++E<h);for(h=a[m],a[0]=E=0,I=0,R=-1,P=-w,i[0]=0,k=0,L=0;T<=m;T++)for(g=s[T];g--!==0;){for(;T>P+w;){if(R++,P+=w,L=m-P,L=L>w?w:L,(A=1<<(O=T-P))>g+1&&(A-=g+1,D=T,O<L))for(;++O<L&&!((A<<=1)<=s[++D]);)A-=s[D];if(L=1<<O,y[0]+L>Bn)return B;i[R]=k=y[0],y[0]+=L,R!==0?(a[R]=E,r[0]=O,r[1]=w,O=E>>>P-w,r[2]=k-i[R-1]-O,d.set(r,(i[R-1]+O)*3)):f[0]=k}for(r[1]=T-P,I>=h?r[0]=192:b[I]<p?(r[0]=b[I]<256?0:96,r[2]=b[I++]):(r[0]=S[b[I]-p]+16+64,r[2]=x[b[I++]-p]),A=1<<T-P,O=E>>>P;O<L;O+=A)d.set(r,(k+O)*3);for(O=1<<T-1;(E&O)!==0;O>>>=1)E^=O;for(E^=O,C=(1<<P)-1;(E&C)!=a[R];)R--,P-=w,C=(1<<P)-1}return U!==0&&m!=1?re:F}function l(_){let u;for(t||(t=[],e=[],s=new Int32Array(ae+1),r=[],i=new Int32Array(ae),a=new Int32Array(ae+1)),e.length<_&&(e=[]),u=0;u<_;u++)e[u]=0;for(u=0;u<ae+1;u++)s[u]=0;for(u=0;u<3;u++)r[u]=0;i.set(s.subarray(0,ae),0),a.set(s.subarray(0,ae+1),0)}n.inflate_trees_bits=function(_,u,h,p,x){let S;return l(19),t[0]=0,S=o(_,0,19,19,null,null,h,u,p,t,e),S==B?x.msg="oversubscribed dynamic bit lengths tree":(S==re||u[0]===0)&&(x.msg="incomplete dynamic bit lengths tree",S=B),S},n.inflate_trees_dynamic=function(_,u,h,p,x,S,f,c,d){let y;return l(288),t[0]=0,y=o(h,0,_,257,Rr,Ar,S,p,c,t,e),y!=F||p[0]===0?(y==B?d.msg="oversubscribed literal/length tree":y!=Gt&&(d.msg="incomplete literal/length tree",y=B),y):(l(288),y=o(h,_,u,0,Or,Ir,f,x,c,t,e),y!=F||x[0]===0&&_>257?(y==B?d.msg="oversubscribed distance tree":y==re?(d.msg="incomplete distance tree",y=B):y!=Gt&&(d.msg="empty distance tree with lengths",y=B),y):F)}}dt.inflate_trees_fixed=function(n,t,e,s){return n[0]=Er,t[0]=xr,e[0]=Tr,s[0]=Sr,F};const We=0,Yt=1,qt=2,Vt=3,Zt=4,Kt=5,Xt=6,et=7,$t=8,Be=9;function Cr(){const n=this;let t,e=0,s,r=0,i=0,a=0,o=0,l=0,_=0,u=0,h,p=0,x,S=0;function f(c,d,y,b,g,A,m,R){let E,O,T,w,C,I,k,P,D,U,L,Z,N,Q,M,H;k=R.next_in_index,P=R.avail_in,C=m.bitb,I=m.bitk,D=m.write,U=D<m.read?m.read-D-1:m.end-D,L=$[c],Z=$[d];do{for(;I<20;)P--,C|=(R.read_byte(k++)&255)<<I,I+=8;if(E=C&L,O=y,T=b,H=(T+E)*3,(w=O[H])===0){C>>=O[H+1],I-=O[H+1],m.win[D++]=O[H+2],U--;continue}do{if(C>>=O[H+1],I-=O[H+1],(w&16)!==0){for(w&=15,N=O[H+2]+(C&$[w]),C>>=w,I-=w;I<15;)P--,C|=(R.read_byte(k++)&255)<<I,I+=8;E=C&Z,O=g,T=A,H=(T+E)*3,w=O[H];do if(C>>=O[H+1],I-=O[H+1],(w&16)!==0){for(w&=15;I<w;)P--,C|=(R.read_byte(k++)&255)<<I,I+=8;if(Q=O[H+2]+(C&$[w]),C>>=w,I-=w,U-=N,D>=Q)M=D-Q,D-M>0&&2>D-M?(m.win[D++]=m.win[M++],m.win[D++]=m.win[M++],N-=2):(m.win.set(m.win.subarray(M,M+2),D),D+=2,M+=2,N-=2);else{M=D-Q;do M+=m.end;while(M<0);if(w=m.end-M,N>w){if(N-=w,D-M>0&&w>D-M)do m.win[D++]=m.win[M++];while(--w!==0);else m.win.set(m.win.subarray(M,M+w),D),D+=w,M+=w,w=0;M=0}}if(D-M>0&&N>D-M)do m.win[D++]=m.win[M++];while(--N!==0);else m.win.set(m.win.subarray(M,M+N),D),D+=N,M+=N,N=0;break}else if((w&64)===0)E+=O[H+2],E+=C&$[w],H=(T+E)*3,w=O[H];else return R.msg="invalid distance code",N=R.avail_in-P,N=I>>3<N?I>>3:N,P+=N,k-=N,I-=N<<3,m.bitb=C,m.bitk=I,R.avail_in=P,R.total_in+=k-R.next_in_index,R.next_in_index=k,m.write=D,B;while(!0);break}if((w&64)===0){if(E+=O[H+2],E+=C&$[w],H=(T+E)*3,(w=O[H])===0){C>>=O[H+1],I-=O[H+1],m.win[D++]=O[H+2],U--;break}}else return(w&32)!==0?(N=R.avail_in-P,N=I>>3<N?I>>3:N,P+=N,k-=N,I-=N<<3,m.bitb=C,m.bitk=I,R.avail_in=P,R.total_in+=k-R.next_in_index,R.next_in_index=k,m.write=D,se):(R.msg="invalid literal/length code",N=R.avail_in-P,N=I>>3<N?I>>3:N,P+=N,k-=N,I-=N<<3,m.bitb=C,m.bitk=I,R.avail_in=P,R.total_in+=k-R.next_in_index,R.next_in_index=k,m.write=D,B)}while(!0)}while(U>=258&&P>=10);return N=R.avail_in-P,N=I>>3<N?I>>3:N,P+=N,k-=N,I-=N<<3,m.bitb=C,m.bitk=I,R.avail_in=P,R.total_in+=k-R.next_in_index,R.next_in_index=k,m.write=D,F}n.init=function(c,d,y,b,g,A){t=We,_=c,u=d,h=y,p=b,x=g,S=A,s=null},n.proc=function(c,d,y){let b,g,A,m=0,R=0,E=0,O,T,w,C;for(E=d.next_in_index,O=d.avail_in,m=c.bitb,R=c.bitk,T=c.write,w=T<c.read?c.read-T-1:c.end-T;;)switch(t){case We:if(w>=258&&O>=10&&(c.bitb=m,c.bitk=R,d.avail_in=O,d.total_in+=E-d.next_in_index,d.next_in_index=E,c.write=T,y=f(_,u,h,p,x,S,c,d),E=d.next_in_index,O=d.avail_in,m=c.bitb,R=c.bitk,T=c.write,w=T<c.read?c.read-T-1:c.end-T,y!=F)){t=y==se?et:Be;break}i=_,s=h,r=p,t=Yt;case Yt:for(b=i;R<b;){if(O!==0)y=F;else return c.bitb=m,c.bitk=R,d.avail_in=O,d.total_in+=E-d.next_in_index,d.next_in_index=E,c.write=T,c.inflate_flush(d,y);O--,m|=(d.read_byte(E++)&255)<<R,R+=8}if(g=(r+(m&$[b]))*3,m>>>=s[g+1],R-=s[g+1],A=s[g],A===0){a=s[g+2],t=Xt;break}if((A&16)!==0){o=A&15,e=s[g+2],t=qt;break}if((A&64)===0){i=A,r=g/3+s[g+2];break}if((A&32)!==0){t=et;break}return t=Be,d.msg="invalid literal/length code",y=B,c.bitb=m,c.bitk=R,d.avail_in=O,d.total_in+=E-d.next_in_index,d.next_in_index=E,c.write=T,c.inflate_flush(d,y);case qt:for(b=o;R<b;){if(O!==0)y=F;else return c.bitb=m,c.bitk=R,d.avail_in=O,d.total_in+=E-d.next_in_index,d.next_in_index=E,c.write=T,c.inflate_flush(d,y);O--,m|=(d.read_byte(E++)&255)<<R,R+=8}e+=m&$[b],m>>=b,R-=b,i=u,s=x,r=S,t=Vt;case Vt:for(b=i;R<b;){if(O!==0)y=F;else return c.bitb=m,c.bitk=R,d.avail_in=O,d.total_in+=E-d.next_in_index,d.next_in_index=E,c.write=T,c.inflate_flush(d,y);O--,m|=(d.read_byte(E++)&255)<<R,R+=8}if(g=(r+(m&$[b]))*3,m>>=s[g+1],R-=s[g+1],A=s[g],(A&16)!==0){o=A&15,l=s[g+2],t=Zt;break}if((A&64)===0){i=A,r=g/3+s[g+2];break}return t=Be,d.msg="invalid distance code",y=B,c.bitb=m,c.bitk=R,d.avail_in=O,d.total_in+=E-d.next_in_index,d.next_in_index=E,c.write=T,c.inflate_flush(d,y);case Zt:for(b=o;R<b;){if(O!==0)y=F;else return c.bitb=m,c.bitk=R,d.avail_in=O,d.total_in+=E-d.next_in_index,d.next_in_index=E,c.write=T,c.inflate_flush(d,y);O--,m|=(d.read_byte(E++)&255)<<R,R+=8}l+=m&$[b],m>>=b,R-=b,t=Kt;case Kt:for(C=T-l;C<0;)C+=c.end;for(;e!==0;){if(w===0&&(T==c.end&&c.read!==0&&(T=0,w=T<c.read?c.read-T-1:c.end-T),w===0&&(c.write=T,y=c.inflate_flush(d,y),T=c.write,w=T<c.read?c.read-T-1:c.end-T,T==c.end&&c.read!==0&&(T=0,w=T<c.read?c.read-T-1:c.end-T),w===0)))return c.bitb=m,c.bitk=R,d.avail_in=O,d.total_in+=E-d.next_in_index,d.next_in_index=E,c.write=T,c.inflate_flush(d,y);c.win[T++]=c.win[C++],w--,C==c.end&&(C=0),e--}t=We;break;case Xt:if(w===0&&(T==c.end&&c.read!==0&&(T=0,w=T<c.read?c.read-T-1:c.end-T),w===0&&(c.write=T,y=c.inflate_flush(d,y),T=c.write,w=T<c.read?c.read-T-1:c.end-T,T==c.end&&c.read!==0&&(T=0,w=T<c.read?c.read-T-1:c.end-T),w===0)))return c.bitb=m,c.bitk=R,d.avail_in=O,d.total_in+=E-d.next_in_index,d.next_in_index=E,c.write=T,c.inflate_flush(d,y);y=F,c.win[T++]=a,w--,t=We;break;case et:if(R>7&&(R-=8,O++,E--),c.write=T,y=c.inflate_flush(d,y),T=c.write,w=T<c.read?c.read-T-1:c.end-T,c.read!=c.write)return c.bitb=m,c.bitk=R,d.avail_in=O,d.total_in+=E-d.next_in_index,d.next_in_index=E,c.write=T,c.inflate_flush(d,y);t=$t;case $t:return y=se,c.bitb=m,c.bitk=R,d.avail_in=O,d.total_in+=E-d.next_in_index,d.next_in_index=E,c.write=T,c.inflate_flush(d,y);case Be:return y=B,c.bitb=m,c.bitk=R,d.avail_in=O,d.total_in+=E-d.next_in_index,d.next_in_index=E,c.write=T,c.inflate_flush(d,y);default:return y=X,c.bitb=m,c.bitk=R,d.avail_in=O,d.total_in+=E-d.next_in_index,d.next_in_index=E,c.write=T,c.inflate_flush(d,y)}},n.free=function(){}}const Jt=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],be=0,tt=1,Qt=2,zt=3,en=4,tn=5,je=6,Ge=7,nn=8,me=9;function Pr(n,t){const e=this;let s=be,r=0,i=0,a=0,o;const l=[0],_=[0],u=new Cr;let h=0,p=new Int32Array(Bn*3);const x=0,S=new dt;e.bitk=0,e.bitb=0,e.win=new Uint8Array(t),e.end=t,e.read=0,e.write=0,e.reset=function(f,c){c&&(c[0]=x),s==je&&u.free(f),s=be,e.bitk=0,e.bitb=0,e.read=e.write=0},e.reset(n,null),e.inflate_flush=function(f,c){let d,y,b;return y=f.next_out_index,b=e.read,d=(b<=e.write?e.write:e.end)-b,d>f.avail_out&&(d=f.avail_out),d!==0&&c==re&&(c=F),f.avail_out-=d,f.total_out+=d,f.next_out.set(e.win.subarray(b,b+d),y),y+=d,b+=d,b==e.end&&(b=0,e.write==e.end&&(e.write=0),d=e.write-b,d>f.avail_out&&(d=f.avail_out),d!==0&&c==re&&(c=F),f.avail_out-=d,f.total_out+=d,f.next_out.set(e.win.subarray(b,b+d),y),y+=d,b+=d),f.next_out_index=y,e.read=b,c},e.proc=function(f,c){let d,y,b,g,A,m,R,E;for(g=f.next_in_index,A=f.avail_in,y=e.bitb,b=e.bitk,m=e.write,R=m<e.read?e.read-m-1:e.end-m;;){let O,T,w,C,I,k,P,D;switch(s){case be:for(;b<3;){if(A!==0)c=F;else return e.bitb=y,e.bitk=b,f.avail_in=A,f.total_in+=g-f.next_in_index,f.next_in_index=g,e.write=m,e.inflate_flush(f,c);A--,y|=(f.read_byte(g++)&255)<<b,b+=8}switch(d=y&7,h=d&1,d>>>1){case 0:y>>>=3,b-=3,d=b&7,y>>>=d,b-=d,s=tt;break;case 1:O=[],T=[],w=[[]],C=[[]],dt.inflate_trees_fixed(O,T,w,C),u.init(O[0],T[0],w[0],0,C[0],0),y>>>=3,b-=3,s=je;break;case 2:y>>>=3,b-=3,s=zt;break;case 3:return y>>>=3,b-=3,s=me,f.msg="invalid block type",c=B,e.bitb=y,e.bitk=b,f.avail_in=A,f.total_in+=g-f.next_in_index,f.next_in_index=g,e.write=m,e.inflate_flush(f,c)}break;case tt:for(;b<32;){if(A!==0)c=F;else return e.bitb=y,e.bitk=b,f.avail_in=A,f.total_in+=g-f.next_in_index,f.next_in_index=g,e.write=m,e.inflate_flush(f,c);A--,y|=(f.read_byte(g++)&255)<<b,b+=8}if((~y>>>16&65535)!=(y&65535))return s=me,f.msg="invalid stored block lengths",c=B,e.bitb=y,e.bitk=b,f.avail_in=A,f.total_in+=g-f.next_in_index,f.next_in_index=g,e.write=m,e.inflate_flush(f,c);r=y&65535,y=b=0,s=r!==0?Qt:h!==0?Ge:be;break;case Qt:if(A===0||R===0&&(m==e.end&&e.read!==0&&(m=0,R=m<e.read?e.read-m-1:e.end-m),R===0&&(e.write=m,c=e.inflate_flush(f,c),m=e.write,R=m<e.read?e.read-m-1:e.end-m,m==e.end&&e.read!==0&&(m=0,R=m<e.read?e.read-m-1:e.end-m),R===0)))return e.bitb=y,e.bitk=b,f.avail_in=A,f.total_in+=g-f.next_in_index,f.next_in_index=g,e.write=m,e.inflate_flush(f,c);if(c=F,d=r,d>A&&(d=A),d>R&&(d=R),e.win.set(f.read_buf(g,d),m),g+=d,A-=d,m+=d,R-=d,(r-=d)!==0)break;s=h!==0?Ge:be;break;case zt:for(;b<14;){if(A!==0)c=F;else return e.bitb=y,e.bitk=b,f.avail_in=A,f.total_in+=g-f.next_in_index,f.next_in_index=g,e.write=m,e.inflate_flush(f,c);A--,y|=(f.read_byte(g++)&255)<<b,b+=8}if(i=d=y&16383,(d&31)>29||(d>>5&31)>29)return s=me,f.msg="too many length or distance symbols",c=B,e.bitb=y,e.bitk=b,f.avail_in=A,f.total_in+=g-f.next_in_index,f.next_in_index=g,e.write=m,e.inflate_flush(f,c);if(d=258+(d&31)+(d>>5&31),!o||o.length<d)o=[];else for(E=0;E<d;E++)o[E]=0;y>>>=14,b-=14,a=0,s=en;case en:for(;a<4+(i>>>10);){for(;b<3;){if(A!==0)c=F;else return e.bitb=y,e.bitk=b,f.avail_in=A,f.total_in+=g-f.next_in_index,f.next_in_index=g,e.write=m,e.inflate_flush(f,c);A--,y|=(f.read_byte(g++)&255)<<b,b+=8}o[Jt[a++]]=y&7,y>>>=3,b-=3}for(;a<19;)o[Jt[a++]]=0;if(l[0]=7,d=S.inflate_trees_bits(o,l,_,p,f),d!=F)return c=d,c==B&&(o=null,s=me),e.bitb=y,e.bitk=b,f.avail_in=A,f.total_in+=g-f.next_in_index,f.next_in_index=g,e.write=m,e.inflate_flush(f,c);a=0,s=tn;case tn:for(;d=i,!(a>=258+(d&31)+(d>>5&31));){let U,L;for(d=l[0];b<d;){if(A!==0)c=F;else return e.bitb=y,e.bitk=b,f.avail_in=A,f.total_in+=g-f.next_in_index,f.next_in_index=g,e.write=m,e.inflate_flush(f,c);A--,y|=(f.read_byte(g++)&255)<<b,b+=8}if(d=p[(_[0]+(y&$[d]))*3+1],L=p[(_[0]+(y&$[d]))*3+2],L<16)y>>>=d,b-=d,o[a++]=L;else{for(E=L==18?7:L-14,U=L==18?11:3;b<d+E;){if(A!==0)c=F;else return e.bitb=y,e.bitk=b,f.avail_in=A,f.total_in+=g-f.next_in_index,f.next_in_index=g,e.write=m,e.inflate_flush(f,c);A--,y|=(f.read_byte(g++)&255)<<b,b+=8}if(y>>>=d,b-=d,U+=y&$[E],y>>>=E,b-=E,E=a,d=i,E+U>258+(d&31)+(d>>5&31)||L==16&&E<1)return o=null,s=me,f.msg="invalid bit length repeat",c=B,e.bitb=y,e.bitk=b,f.avail_in=A,f.total_in+=g-f.next_in_index,f.next_in_index=g,e.write=m,e.inflate_flush(f,c);L=L==16?o[E-1]:0;do o[E++]=L;while(--U!==0);a=E}}if(_[0]=-1,I=[],k=[],P=[],D=[],I[0]=9,k[0]=6,d=i,d=S.inflate_trees_dynamic(257+(d&31),1+(d>>5&31),o,I,k,P,D,p,f),d!=F)return d==B&&(o=null,s=me),c=d,e.bitb=y,e.bitk=b,f.avail_in=A,f.total_in+=g-f.next_in_index,f.next_in_index=g,e.write=m,e.inflate_flush(f,c);u.init(I[0],k[0],p,P[0],p,D[0]),s=je;case je:if(e.bitb=y,e.bitk=b,f.avail_in=A,f.total_in+=g-f.next_in_index,f.next_in_index=g,e.write=m,(c=u.proc(e,f,c))!=se)return e.inflate_flush(f,c);if(c=F,u.free(f),g=f.next_in_index,A=f.avail_in,y=e.bitb,b=e.bitk,m=e.write,R=m<e.read?e.read-m-1:e.end-m,h===0){s=be;break}s=Ge;case Ge:if(e.write=m,c=e.inflate_flush(f,c),m=e.write,R=m<e.read?e.read-m-1:e.end-m,e.read!=e.write)return e.bitb=y,e.bitk=b,f.avail_in=A,f.total_in+=g-f.next_in_index,f.next_in_index=g,e.write=m,e.inflate_flush(f,c);s=nn;case nn:return c=se,e.bitb=y,e.bitk=b,f.avail_in=A,f.total_in+=g-f.next_in_index,f.next_in_index=g,e.write=m,e.inflate_flush(f,c);case me:return c=B,e.bitb=y,e.bitk=b,f.avail_in=A,f.total_in+=g-f.next_in_index,f.next_in_index=g,e.write=m,e.inflate_flush(f,c);default:return c=X,e.bitb=y,e.bitk=b,f.avail_in=A,f.total_in+=g-f.next_in_index,f.next_in_index=g,e.write=m,e.inflate_flush(f,c)}}},e.free=function(f){e.reset(f,null),e.win=null,p=null},e.set_dictionary=function(f,c,d){e.win.set(f.subarray(c,c+d),0),e.read=e.write=d},e.sync_point=function(){return s==tt?1:0}}const Nr=32,Dr=8,kr=0,sn=1,rn=2,an=3,on=4,cn=5,nt=6,Re=7,ln=12,oe=13,Lr=[0,0,255,255];function vr(){const n=this;n.mode=0,n.method=0,n.was=[0],n.need=0,n.marker=0,n.wbits=0;function t(e){return!e||!e.istate?X:(e.total_in=e.total_out=0,e.msg=null,e.istate.mode=Re,e.istate.blocks.reset(e,null),F)}n.inflateEnd=function(e){return n.blocks&&n.blocks.free(e),n.blocks=null,F},n.inflateInit=function(e,s){return e.msg=null,n.blocks=null,s<8||s>15?(n.inflateEnd(e),X):(n.wbits=s,e.istate.blocks=new Pr(e,1<<s),t(e),F)},n.inflate=function(e,s){let r,i;if(!e||!e.istate||!e.next_in)return X;const a=e.istate;for(s=s==yr?re:F,r=re;;)switch(a.mode){case kr:if(e.avail_in===0)return r;if(r=s,e.avail_in--,e.total_in++,((a.method=e.read_byte(e.next_in_index++))&15)!=Dr){a.mode=oe,e.msg="unknown compression method",a.marker=5;break}if((a.method>>4)+8>a.wbits){a.mode=oe,e.msg="invalid win size",a.marker=5;break}a.mode=sn;case sn:if(e.avail_in===0)return r;if(r=s,e.avail_in--,e.total_in++,i=e.read_byte(e.next_in_index++)&255,((a.method<<8)+i)%31!==0){a.mode=oe,e.msg="incorrect header check",a.marker=5;break}if((i&Nr)===0){a.mode=Re;break}a.mode=rn;case rn:if(e.avail_in===0)return r;r=s,e.avail_in--,e.total_in++,a.need=(e.read_byte(e.next_in_index++)&255)<<24&4278190080,a.mode=an;case an:if(e.avail_in===0)return r;r=s,e.avail_in--,e.total_in++,a.need+=(e.read_byte(e.next_in_index++)&255)<<16&16711680,a.mode=on;case on:if(e.avail_in===0)return r;r=s,e.avail_in--,e.total_in++,a.need+=(e.read_byte(e.next_in_index++)&255)<<8&65280,a.mode=cn;case cn:return e.avail_in===0?r:(r=s,e.avail_in--,e.total_in++,a.need+=e.read_byte(e.next_in_index++)&255,a.mode=nt,gr);case nt:return a.mode=oe,e.msg="need dictionary",a.marker=0,X;case Re:if(r=a.blocks.proc(e,r),r==B){a.mode=oe,a.marker=0;break}if(r==F&&(r=s),r!=se)return r;r=s,a.blocks.reset(e,a.was),a.mode=ln;case ln:return e.avail_in=0,se;case oe:return B;default:return X}},n.inflateSetDictionary=function(e,s,r){let i=0,a=r;if(!e||!e.istate||e.istate.mode!=nt)return X;const o=e.istate;return a>=1<<o.wbits&&(a=(1<<o.wbits)-1,i=r-a),o.blocks.set_dictionary(s,i,a),o.mode=Re,F},n.inflateSync=function(e){let s,r,i,a,o;if(!e||!e.istate)return X;const l=e.istate;if(l.mode!=oe&&(l.mode=oe,l.marker=0),(s=e.avail_in)===0)return re;for(r=e.next_in_index,i=l.marker;s!==0&&i<4;)e.read_byte(r)==Lr[i]?i++:e.read_byte(r)!==0?i=0:i=4-i,r++,s--;return e.total_in+=r-e.next_in_index,e.next_in_index=r,e.avail_in=s,l.marker=i,i!=4?B:(a=e.total_in,o=e.total_out,t(e),e.total_in=a,e.total_out=o,l.mode=Re,F)},n.inflateSyncPoint=function(e){return!e||!e.istate||!e.istate.blocks?X:e.istate.blocks.sync_point()}}function jn(){}jn.prototype={inflateInit(n){const t=this;return t.istate=new vr,n||(n=wr),t.istate.inflateInit(t,n)},inflate(n){const t=this;return t.istate?t.istate.inflate(t,n):X},inflateEnd(){const n=this;if(!n.istate)return X;const t=n.istate.inflateEnd(n);return n.istate=null,t},inflateSync(){const n=this;return n.istate?n.istate.inflateSync(n):X},inflateSetDictionary(n,t){const e=this;return e.istate?e.istate.inflateSetDictionary(e,n,t):X},read_byte(n){return this.next_in[n]},read_buf(n,t){return this.next_in.subarray(n,n+t)}};function Fr(n){const t=this,e=new jn,s=n&&n.chunkSize?Math.floor(n.chunkSize*2):128*1024,r=br,i=new Uint8Array(s);let a=!1;e.inflateInit(),e.next_out=i,t.append=function(o,l){const _=[];let u,h,p=0,x=0,S=0;if(o.length!==0){e.next_in_index=0,e.next_in=o,e.avail_in=o.length;do{if(e.next_out_index=0,e.avail_out=s,e.avail_in===0&&!a&&(e.next_in_index=0,a=!0),u=e.inflate(r),a&&u===re){if(e.avail_in!==0)throw new Error("inflating: bad input")}else if(u!==F&&u!==se)throw new Error("inflating: "+e.msg);if((a||u===se)&&e.avail_in===o.length)throw new Error("inflating: bad input");e.next_out_index&&(e.next_out_index===s?_.push(new Uint8Array(i)):_.push(i.subarray(0,e.next_out_index))),S+=e.next_out_index,l&&e.next_in_index>0&&e.next_in_index!=p&&(l(e.next_in_index),p=e.next_in_index)}while(e.avail_in>0||e.avail_out===0);return _.length>1?(h=new Uint8Array(S),_.forEach(function(f){h.set(f,x),x+=f.length})):h=_[0]?new Uint8Array(_[0]):new Uint8Array,h}},t.flush=function(){e.inflateEnd()}}const we=4294967295,fe=65535,Mr=8,Ur=0,Hr=99,Wr=67324752,Gn=134695760,Br=Gn,fn=33639248,jr=101010256,un=101075792,Gr=117853008,ne=22,st=20,rt=56,Yr=12,qr=20,dn=4,Vr=1,Zr=39169,Kr=10,Xr=1,$r=21589,Jr=28789,Qr=25461,zr=6534,_n=1,ei=6,hn=8,pn=2048,mn=16,ti=61440,ni=16384,si=73,wn="/",it=30,ri=10,ii=14,ai=18,G=void 0,he="undefined",ke="function";class gn{constructor(t){return class extends TransformStream{constructor(e,s){const r=new t(s);super({transform(i,a){a.enqueue(r.append(i))},flush(i){const a=r.flush();a&&i.enqueue(a)}})}}}}const oi=64;let Yn=2;try{typeof navigator!=he&&navigator.hardwareConcurrency&&(Yn=navigator.hardwareConcurrency)}catch{}const ci={chunkSize:512*1024,maxWorkers:Yn,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,workerScripts:G,CompressionStreamNative:typeof CompressionStream!=he&&CompressionStream,DecompressionStreamNative:typeof DecompressionStream!=he&&DecompressionStream},ue=Object.assign({},ci);function qn(){return ue}function li(n){return Math.max(n.chunkSize,oi)}function Vn(n){const{baseURL:t,chunkSize:e,maxWorkers:s,terminateWorkerTimeout:r,useCompressionStream:i,useWebWorkers:a,Deflate:o,Inflate:l,CompressionStream:_,DecompressionStream:u,workerScripts:h}=n;if(ce("baseURL",t),ce("chunkSize",e),ce("maxWorkers",s),ce("terminateWorkerTimeout",r),ce("useCompressionStream",i),ce("useWebWorkers",a),o&&(ue.CompressionStream=new gn(o)),l&&(ue.DecompressionStream=new gn(l)),ce("CompressionStream",_),ce("DecompressionStream",u),h!==G){const{deflate:p,inflate:x}=h;if((p||x)&&(ue.workerScripts||(ue.workerScripts={})),p){if(!Array.isArray(p))throw new Error("workerScripts.deflate must be an array");ue.workerScripts.deflate=p}if(x){if(!Array.isArray(x))throw new Error("workerScripts.inflate must be an array");ue.workerScripts.inflate=x}}}function ce(n,t){t!==G&&(ue[n]=t)}function fi(){return"application/octet-stream"}const Zn=[];for(let n=0;n<256;n++){let t=n;for(let e=0;e<8;e++)t&1?t=t>>>1^3988292384:t=t>>>1;Zn[n]=t}class Ze{constructor(t){this.crc=t||-1}append(t){let e=this.crc|0;for(let s=0,r=t.length|0;s<r;s++)e=e>>>8^Zn[(e^t[s])&255];this.crc=e}get(){return~this.crc}}class Kn extends TransformStream{constructor(){let t;const e=new Ze;super({transform(s,r){e.append(s),r.enqueue(s)},flush(){const s=new Uint8Array(4);new DataView(s.buffer).setUint32(0,e.get()),t.value=s}}),t=this}}function ui(n){if(typeof TextEncoder==he){n=unescape(encodeURIComponent(n));const t=new Uint8Array(n.length);for(let e=0;e<t.length;e++)t[e]=n.charCodeAt(e);return t}else return new TextEncoder().encode(n)}const K={concat(n,t){if(n.length===0||t.length===0)return n.concat(t);const e=n[n.length-1],s=K.getPartial(e);return s===32?n.concat(t):K._shiftRight(t,s,e|0,n.slice(0,n.length-1))},bitLength(n){const t=n.length;if(t===0)return 0;const e=n[t-1];return(t-1)*32+K.getPartial(e)},clamp(n,t){if(n.length*32<t)return n;n=n.slice(0,Math.ceil(t/32));const e=n.length;return t=t&31,e>0&&t&&(n[e-1]=K.partial(t,n[e-1]&2147483648>>t-1,1)),n},partial(n,t,e){return n===32?t:(e?t|0:t<<32-n)+n*1099511627776},getPartial(n){return Math.round(n/1099511627776)||32},_shiftRight(n,t,e,s){for(s===void 0&&(s=[]);t>=32;t-=32)s.push(e),e=0;if(t===0)return s.concat(n);for(let a=0;a<n.length;a++)s.push(e|n[a]>>>t),e=n[a]<<32-t;const r=n.length?n[n.length-1]:0,i=K.getPartial(r);return s.push(K.partial(t+i&31,t+i>32?e:s.pop(),1)),s}},Ke={bytes:{fromBits(n){const e=K.bitLength(n)/8,s=new Uint8Array(e);let r;for(let i=0;i<e;i++)(i&3)===0&&(r=n[i/4]),s[i]=r>>>24,r<<=8;return s},toBits(n){const t=[];let e,s=0;for(e=0;e<n.length;e++)s=s<<8|n[e],(e&3)===3&&(t.push(s),s=0);return e&3&&t.push(K.partial(8*(e&3),s)),t}}},Xn={};Xn.sha1=class{constructor(n){const t=this;t.blockSize=512,t._init=[1732584193,4023233417,2562383102,271733878,3285377520],t._key=[1518500249,1859775393,2400959708,3395469782],n?(t._h=n._h.slice(0),t._buffer=n._buffer.slice(0),t._length=n._length):t.reset()}reset(){const n=this;return n._h=n._init.slice(0),n._buffer=[],n._length=0,n}update(n){const t=this;typeof n=="string"&&(n=Ke.utf8String.toBits(n));const e=t._buffer=K.concat(t._buffer,n),s=t._length,r=t._length=s+K.bitLength(n);if(r>9007199254740991)throw new Error("Cannot hash more than 2^53 - 1 bits");const i=new Uint32Array(e);let a=0;for(let o=t.blockSize+s-(t.blockSize+s&t.blockSize-1);o<=r;o+=t.blockSize)t._block(i.subarray(16*a,16*(a+1))),a+=1;return e.splice(0,16*a),t}finalize(){const n=this;let t=n._buffer;const e=n._h;t=K.concat(t,[K.partial(1,1)]);for(let s=t.length+2;s&15;s++)t.push(0);for(t.push(Math.floor(n._length/4294967296)),t.push(n._length|0);t.length;)n._block(t.splice(0,16));return n.reset(),e}_f(n,t,e,s){if(n<=19)return t&e|~t&s;if(n<=39)return t^e^s;if(n<=59)return t&e|t&s|e&s;if(n<=79)return t^e^s}_S(n,t){return t<<n|t>>>32-n}_block(n){const t=this,e=t._h,s=Array(80);for(let _=0;_<16;_++)s[_]=n[_];let r=e[0],i=e[1],a=e[2],o=e[3],l=e[4];for(let _=0;_<=79;_++){_>=16&&(s[_]=t._S(1,s[_-3]^s[_-8]^s[_-14]^s[_-16]));const u=t._S(5,r)+t._f(_,i,a,o)+l+s[_]+t._key[Math.floor(_/20)]|0;l=o,o=a,a=t._S(30,i),i=r,r=u}e[0]=e[0]+r|0,e[1]=e[1]+i|0,e[2]=e[2]+a|0,e[3]=e[3]+o|0,e[4]=e[4]+l|0}};const $n={};$n.aes=class{constructor(n){const t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();const e=t._tables[0][4],s=t._tables[1],r=n.length;let i,a,o,l=1;if(r!==4&&r!==6&&r!==8)throw new Error("invalid aes key size");for(t._key=[a=n.slice(0),o=[]],i=r;i<4*r+28;i++){let _=a[i-1];(i%r===0||r===8&&i%r===4)&&(_=e[_>>>24]<<24^e[_>>16&255]<<16^e[_>>8&255]<<8^e[_&255],i%r===0&&(_=_<<8^_>>>24^l<<24,l=l<<1^(l>>7)*283)),a[i]=a[i-r]^_}for(let _=0;i;_++,i--){const u=a[_&3?i:i-4];i<=4||_<4?o[_]=u:o[_]=s[0][e[u>>>24]]^s[1][e[u>>16&255]]^s[2][e[u>>8&255]]^s[3][e[u&255]]}}encrypt(n){return this._crypt(n,0)}decrypt(n){return this._crypt(n,1)}_precompute(){const n=this._tables[0],t=this._tables[1],e=n[4],s=t[4],r=[],i=[];let a,o,l,_;for(let u=0;u<256;u++)i[(r[u]=u<<1^(u>>7)*283)^u]=u;for(let u=a=0;!e[u];u^=o||1,a=i[a]||1){let h=a^a<<1^a<<2^a<<3^a<<4;h=h>>8^h&255^99,e[u]=h,s[h]=u,_=r[l=r[o=r[u]]];let p=_*16843009^l*65537^o*257^u*16843008,x=r[h]*257^h*16843008;for(let S=0;S<4;S++)n[S][u]=x=x<<24^x>>>8,t[S][h]=p=p<<24^p>>>8}for(let u=0;u<5;u++)n[u]=n[u].slice(0),t[u]=t[u].slice(0)}_crypt(n,t){if(n.length!==4)throw new Error("invalid aes block size");const e=this._key[t],s=e.length/4-2,r=[0,0,0,0],i=this._tables[t],a=i[0],o=i[1],l=i[2],_=i[3],u=i[4];let h=n[0]^e[0],p=n[t?3:1]^e[1],x=n[2]^e[2],S=n[t?1:3]^e[3],f=4,c,d,y;for(let b=0;b<s;b++)c=a[h>>>24]^o[p>>16&255]^l[x>>8&255]^_[S&255]^e[f],d=a[p>>>24]^o[x>>16&255]^l[S>>8&255]^_[h&255]^e[f+1],y=a[x>>>24]^o[S>>16&255]^l[h>>8&255]^_[p&255]^e[f+2],S=a[S>>>24]^o[h>>16&255]^l[p>>8&255]^_[x&255]^e[f+3],f+=4,h=c,p=d,x=y;for(let b=0;b<4;b++)r[t?3&-b:b]=u[h>>>24]<<24^u[p>>16&255]<<16^u[x>>8&255]<<8^u[S&255]^e[f++],c=h,h=p,p=x,x=S,S=c;return r}};const di={getRandomValues(n){const t=new Uint32Array(n.buffer),e=s=>{let r=987654321;const i=4294967295;return function(){return r=36969*(r&65535)+(r>>16)&i,s=18e3*(s&65535)+(s>>16)&i,(((r<<16)+s&i)/4294967296+.5)*(Math.random()>.5?1:-1)}};for(let s=0,r;s<n.length;s+=4){const i=e((r||Math.random())*4294967296);r=i()*987654071,t[s/4]=i()*4294967296|0}return n}},Jn={};Jn.ctrGladman=class{constructor(n,t){this._prf=n,this._initIv=t,this._iv=t}reset(){this._iv=this._initIv}update(n){return this.calculate(this._prf,n,this._iv)}incWord(n){if((n>>24&255)===255){let t=n>>16&255,e=n>>8&255,s=n&255;t===255?(t=0,e===255?(e=0,s===255?s=0:++s):++e):++t,n=0,n+=t<<16,n+=e<<8,n+=s}else n+=1<<24;return n}incCounter(n){(n[0]=this.incWord(n[0]))===0&&(n[1]=this.incWord(n[1]))}calculate(n,t,e){let s;if(!(s=t.length))return[];const r=K.bitLength(t);for(let i=0;i<s;i+=4){this.incCounter(e);const a=n.encrypt(e);t[i]^=a[0],t[i+1]^=a[1],t[i+2]^=a[2],t[i+3]^=a[3]}return K.clamp(t,r)}};const ge={importKey(n){return new ge.hmacSha1(Ke.bytes.toBits(n))},pbkdf2(n,t,e,s){if(e=e||1e4,s<0||e<0)throw new Error("invalid params to pbkdf2");const r=(s>>5)+1<<2;let i,a,o,l,_;const u=new ArrayBuffer(r),h=new DataView(u);let p=0;const x=K;for(t=Ke.bytes.toBits(t),_=1;p<(r||1);_++){for(i=a=n.encrypt(x.concat(t,[_])),o=1;o<e;o++)for(a=n.encrypt(a),l=0;l<a.length;l++)i[l]^=a[l];for(o=0;p<(r||1)&&o<i.length;o++)h.setInt32(p,i[o]),p+=4}return u.slice(0,s/8)}};ge.hmacSha1=class{constructor(n){const t=this,e=t._hash=Xn.sha1,s=[[],[]];t._baseHash=[new e,new e];const r=t._baseHash[0].blockSize/32;n.length>r&&(n=new e().update(n).finalize());for(let i=0;i<r;i++)s[0][i]=n[i]^909522486,s[1][i]=n[i]^1549556828;t._baseHash[0].update(s[0]),t._baseHash[1].update(s[1]),t._resultHash=new e(t._baseHash[0])}reset(){const n=this;n._resultHash=new n._hash(n._baseHash[0]),n._updated=!1}update(n){const t=this;t._updated=!0,t._resultHash.update(n)}digest(){const n=this,t=n._resultHash.finalize(),e=new n._hash(n._baseHash[1]).update(t).finalize();return n.reset(),e}encrypt(n){if(this._updated)throw new Error("encrypt on already updated hmac called!");return this.update(n),this.digest(n)}};const _i=typeof crypto!=he&&typeof crypto.getRandomValues==ke,xt="Invalid password",Tt="Invalid signature",St="zipjs-abort-check-password";function Qn(n){return _i?crypto.getRandomValues(n):di.getRandomValues(n)}const ye=16,hi="raw",zn={name:"PBKDF2"},pi={name:"HMAC"},mi="SHA-1",wi=Object.assign({hash:pi},zn),_t=Object.assign({iterations:1e3,hash:{name:mi}},zn),gi=["deriveBits"],Ce=[8,12,16],Ae=[16,24,32],le=10,bi=[0,0,0,0],Je=typeof crypto!=he,Le=Je&&crypto.subtle,es=Je&&typeof Le!=he,ee=Ke.bytes,yi=$n.aes,Ei=Jn.ctrGladman,xi=ge.hmacSha1;let bn=Je&&es&&typeof Le.importKey==ke,yn=Je&&es&&typeof Le.deriveBits==ke;class Ti extends TransformStream{constructor({password:t,rawPassword:e,signed:s,encryptionStrength:r,checkPasswordOnly:i}){super({start(){Object.assign(this,{ready:new Promise(a=>this.resolveReady=a),password:ss(t,e),signed:s,strength:r-1,pending:new Uint8Array})},async transform(a,o){const l=this,{password:_,strength:u,resolveReady:h,ready:p}=l;_?(await Ri(l,u,_,J(a,0,Ce[u]+2)),a=J(a,Ce[u]+2),i?o.error(new Error(St)):h()):await p;const x=new Uint8Array(a.length-le-(a.length-le)%ye);o.enqueue(ts(l,a,x,0,le,!0))},async flush(a){const{signed:o,ctr:l,hmac:_,pending:u,ready:h}=this;if(_&&l){await h;const p=J(u,0,u.length-le),x=J(u,u.length-le);let S=new Uint8Array;if(p.length){const f=Ne(ee,p);_.update(f);const c=l.update(f);S=Pe(ee,c)}if(o){const f=J(Pe(ee,_.digest()),0,le);for(let c=0;c<le;c++)if(f[c]!=x[c])throw new Error(Tt)}a.enqueue(S)}}})}}class Si extends TransformStream{constructor({password:t,rawPassword:e,encryptionStrength:s}){let r;super({start(){Object.assign(this,{ready:new Promise(i=>this.resolveReady=i),password:ss(t,e),strength:s-1,pending:new Uint8Array})},async transform(i,a){const o=this,{password:l,strength:_,resolveReady:u,ready:h}=o;let p=new Uint8Array;l?(p=await Ai(o,_,l),u()):await h;const x=new Uint8Array(p.length+i.length-i.length%ye);x.set(p,0),a.enqueue(ts(o,i,x,p.length,0))},async flush(i){const{ctr:a,hmac:o,pending:l,ready:_}=this;if(o&&a){await _;let u=new Uint8Array;if(l.length){const h=a.update(Ne(ee,l));o.update(h),u=Pe(ee,h)}r.signature=Pe(ee,o.digest()).slice(0,le),i.enqueue(Rt(u,r.signature))}}}),r=this}}function ts(n,t,e,s,r,i){const{ctr:a,hmac:o,pending:l}=n,_=t.length-r;l.length&&(t=Rt(l,t),e=Ci(e,_-_%ye));let u;for(u=0;u<=_-ye;u+=ye){const h=Ne(ee,J(t,u,u+ye));i&&o.update(h);const p=a.update(h);i||o.update(p),e.set(Pe(ee,p),u+s)}return n.pending=J(t,u),e}async function Ri(n,t,e,s){const r=await ns(n,t,e,J(s,0,Ce[t])),i=J(s,Ce[t]);if(r[0]!=i[0]||r[1]!=i[1])throw new Error(xt)}async function Ai(n,t,e){const s=Qn(new Uint8Array(Ce[t])),r=await ns(n,t,e,s);return Rt(s,r)}async function ns(n,t,e,s){n.password=null;const r=await Oi(hi,e,wi,!1,gi),i=await Ii(Object.assign({salt:s},_t),r,8*(Ae[t]*2+2)),a=new Uint8Array(i),o=Ne(ee,J(a,0,Ae[t])),l=Ne(ee,J(a,Ae[t],Ae[t]*2)),_=J(a,Ae[t]*2);return Object.assign(n,{keys:{key:o,authentication:l,passwordVerification:_},ctr:new Ei(new yi(o),Array.from(bi)),hmac:new xi(l)}),_}async function Oi(n,t,e,s,r){if(bn)try{return await Le.importKey(n,t,e,s,r)}catch{return bn=!1,ge.importKey(t)}else return ge.importKey(t)}async function Ii(n,t,e){if(yn)try{return await Le.deriveBits(n,t,e)}catch{return yn=!1,ge.pbkdf2(t,n.salt,_t.iterations,e)}else return ge.pbkdf2(t,n.salt,_t.iterations,e)}function ss(n,t){return t===G?ui(n):t}function Rt(n,t){let e=n;return n.length+t.length&&(e=new Uint8Array(n.length+t.length),e.set(n,0),e.set(t,n.length)),e}function Ci(n,t){if(t&&t>n.length){const e=n;n=new Uint8Array(t),n.set(e,0)}return n}function J(n,t,e){return n.subarray(t,e)}function Pe(n,t){return n.fromBits(t)}function Ne(n,t){return n.toBits(t)}const Ie=12;class Pi extends TransformStream{constructor({password:t,passwordVerification:e,checkPasswordOnly:s}){super({start(){Object.assign(this,{password:t,passwordVerification:e}),rs(this,t)},transform(r,i){const a=this;if(a.password){const o=En(a,r.subarray(0,Ie));if(a.password=null,o.at(-1)!=a.passwordVerification)throw new Error(xt);r=r.subarray(Ie)}s?i.error(new Error(St)):i.enqueue(En(a,r))}})}}class Ni extends TransformStream{constructor({password:t,passwordVerification:e}){super({start(){Object.assign(this,{password:t,passwordVerification:e}),rs(this,t)},transform(s,r){const i=this;let a,o;if(i.password){i.password=null;const l=Qn(new Uint8Array(Ie));l[Ie-1]=i.passwordVerification,a=new Uint8Array(s.length+l.length),a.set(xn(i,l),0),o=Ie}else a=new Uint8Array(s.length),o=0;a.set(xn(i,s),o),r.enqueue(a)}})}}function En(n,t){const e=new Uint8Array(t.length);for(let s=0;s<t.length;s++)e[s]=is(n)^t[s],At(n,e[s]);return e}function xn(n,t){const e=new Uint8Array(t.length);for(let s=0;s<t.length;s++)e[s]=is(n)^t[s],At(n,t[s]);return e}function rs(n,t){const e=[305419896,591751049,878082192];Object.assign(n,{keys:e,crcKey0:new Ze(e[0]),crcKey2:new Ze(e[2])});for(let s=0;s<t.length;s++)At(n,t.charCodeAt(s))}function At(n,t){let[e,s,r]=n.keys;n.crcKey0.append([t]),e=~n.crcKey0.get(),s=Tn(Math.imul(Tn(s+as(e)),134775813)+1),n.crcKey2.append([s>>>24]),r=~n.crcKey2.get(),n.keys=[e,s,r]}function is(n){const t=n.keys[2]|2;return as(Math.imul(t,t^1)>>>8)}function as(n){return n&255}function Tn(n){return n&4294967295}const Ot="Invalid uncompressed size",Sn="deflate-raw";class Di extends TransformStream{constructor(t,{chunkSize:e,CompressionStream:s,CompressionStreamNative:r}){super({});const{compressed:i,encrypted:a,useCompressionStream:o,zipCrypto:l,signed:_,level:u}=t,h=this;let p,x,S=super.readable;(!a||l)&&_&&(p=new Kn,S=ie(S,p)),i&&(S=cs(S,o,{level:u,chunkSize:e},r,s)),a&&(l?S=ie(S,new Ni(t)):(x=new Si(t),S=ie(S,x))),os(h,S,()=>{let f;a&&!l&&(f=x.signature),(!a||l)&&_&&(f=new DataView(p.value.buffer).getUint32(0)),h.signature=f})}}class ki extends TransformStream{constructor(t,{chunkSize:e,DecompressionStream:s,DecompressionStreamNative:r}){super({});const{zipCrypto:i,encrypted:a,signed:o,signature:l,compressed:_,useCompressionStream:u}=t;let h,p,x=super.readable;a&&(i?x=ie(x,new Pi(t)):(p=new Ti(t),x=ie(x,p))),_&&(x=cs(x,u,{chunkSize:e},r,s)),(!a||i)&&o&&(h=new Kn,x=ie(x,h)),os(this,x,()=>{if((!a||i)&&o){const S=new DataView(h.value.buffer);if(l!=S.getUint32(0,!1))throw new Error(Tt)}})}}function os(n,t,e){t=ie(t,new TransformStream({flush:e})),Object.defineProperty(n,"readable",{get(){return t}})}function cs(n,t,e,s,r){try{const i=t&&s?s:r;n=ie(n,new i(Sn,e))}catch(i){if(t)n=ie(n,new r(Sn,e));else throw i}return n}function ie(n,t){return n.pipeThrough(t)}const Li="message",vi="start",Fi="pull",Rn="data",Mi="ack",An="close",Ui="deflate",ls="inflate";class Hi extends TransformStream{constructor(t,e){super({});const s=this,{codecType:r}=t;let i;r.startsWith(Ui)?i=Di:r.startsWith(ls)&&(i=ki),s.outputSize=0;let a=0;const o=new i(t,e),l=super.readable,_=new TransformStream({transform(h,p){h&&h.length&&(a+=h.length,p.enqueue(h))},flush(){Object.assign(s,{inputSize:a})}}),u=new TransformStream({transform(h,p){if(h&&h.length&&(p.enqueue(h),s.outputSize+=h.length,t.outputSize&&s.outputSize>t.outputSize))throw new Error(Ot)},flush(){const{signature:h}=o;Object.assign(s,{signature:h,inputSize:a})}});Object.defineProperty(s,"readable",{get(){return l.pipeThrough(_).pipeThrough(o).pipeThrough(u)}})}}class Wi extends TransformStream{constructor(t){let e;super({transform:s,flush(r){e&&e.length&&r.enqueue(e)}});function s(r,i){if(e){const a=new Uint8Array(e.length+r.length);a.set(e),a.set(r,e.length),r=a,e=null}r.length>t?(i.enqueue(r.slice(0,t)),s(r.slice(t),i)):e=r}}}let fs=typeof Worker!=he;class at{constructor(t,{readable:e,writable:s},{options:r,config:i,streamOptions:a,useWebWorkers:o,transferStreams:l,scripts:_},u){const{signal:h}=a;return Object.assign(t,{busy:!0,readable:e.pipeThrough(new Wi(i.chunkSize)).pipeThrough(new Bi(a),{signal:h}),writable:s,options:Object.assign({},r),scripts:_,transferStreams:l,terminate(){return new Promise(p=>{const{worker:x,busy:S}=t;x?(S?t.resolveTerminated=p:(x.terminate(),p()),t.interface=null):p()})},onTaskFinished(){const{resolveTerminated:p}=t;p&&(t.resolveTerminated=null,t.terminated=!0,t.worker.terminate(),p()),t.busy=!1,u(t)}}),(o&&fs?ji:us)(t,i)}}class Bi extends TransformStream{constructor({onstart:t,onprogress:e,size:s,onend:r}){let i=0;super({async start(){t&&await ot(t,s)},async transform(a,o){i+=a.length,e&&await ot(e,i,s),o.enqueue(a)},async flush(){r&&await ot(r,i)}})}}async function ot(n,...t){try{await n(...t)}catch{}}function us(n,t){return{run:()=>Gi(n,t)}}function ji(n,t){const{baseURL:e,chunkSize:s}=t;if(!n.interface){let r;try{r=Vi(n.scripts[0],e,n)}catch{return fs=!1,us(n,t)}Object.assign(n,{worker:r,interface:{run:()=>Yi(n,{chunkSize:s})}})}return n.interface}async function Gi({options:n,readable:t,writable:e,onTaskFinished:s},r){let i;try{i=new Hi(n,r),await t.pipeThrough(i).pipeTo(e,{preventClose:!0,preventAbort:!0});const{signature:a,inputSize:o,outputSize:l}=i;return{signature:a,inputSize:o,outputSize:l}}catch(a){throw i&&(a.outputSize=i.outputSize),a}finally{s()}}async function Yi(n,t){let e,s;const r=new Promise((p,x)=>{e=p,s=x});Object.assign(n,{reader:null,writer:null,resolveResult:e,rejectResult:s,result:r});const{readable:i,options:a,scripts:o}=n,{writable:l,closed:_}=qi(n.writable),u=Ye({type:vi,scripts:o.slice(1),options:a,config:t,readable:i,writable:l},n);u||Object.assign(n,{reader:i.getReader(),writer:l.getWriter()});const h=await r;return u||await l.getWriter().close(),await _,h}function qi(n){let t;const e=new Promise(r=>t=r);return{writable:new WritableStream({async write(r){const i=n.getWriter();await i.ready,await i.write(r),i.releaseLock()},close(){t()},abort(r){return n.getWriter().abort(r)}}),closed:e}}let On=!0,In=!0;function Vi(n,t,e){const s={type:"module"};let r,i;typeof n==ke&&(n=n());try{r=new URL(n,t)}catch{r=n}if(On)try{i=new Worker(r)}catch{On=!1,i=new Worker(r,s)}else i=new Worker(r,s);return i.addEventListener(Li,a=>Zi(a,e)),i}function Ye(n,{worker:t,writer:e,onTaskFinished:s,transferStreams:r}){try{const{value:i,readable:a,writable:o}=n,l=[];if(i&&(i.byteLength<i.buffer.byteLength?n.value=i.buffer.slice(0,i.byteLength):n.value=i.buffer,l.push(n.value)),r&&In?(a&&l.push(a),o&&l.push(o)):n.readable=n.writable=null,l.length)try{return t.postMessage(n,l),!0}catch{In=!1,n.readable=n.writable=null,t.postMessage(n)}else t.postMessage(n)}catch(i){throw e&&e.releaseLock(),s(),i}}async function Zi({data:n},t){const{type:e,value:s,messageId:r,result:i,error:a}=n,{reader:o,writer:l,resolveResult:_,rejectResult:u,onTaskFinished:h}=t;try{if(a){const{message:x,stack:S,code:f,name:c,outputSize:d}=a,y=new Error(x);Object.assign(y,{stack:S,code:f,name:c,outputSize:d}),p(y)}else{if(e==Fi){const{value:x,done:S}=await o.read();Ye({type:Rn,value:x,done:S,messageId:r},t)}e==Rn&&(await l.ready,await l.write(new Uint8Array(s)),Ye({type:Mi,messageId:r},t)),e==An&&p(null,i)}}catch(x){Ye({type:An,messageId:r},t),p(x)}function p(x,S){x?u(x):_(S),l&&l.releaseLock(),h()}}let de=[];const ct=[];let Cn=0;async function Ki(n,t){const{options:e,config:s}=t,{transferStreams:r,useWebWorkers:i,useCompressionStream:a,codecType:o,compressed:l,signed:_,encrypted:u}=e,{workerScripts:h,maxWorkers:p}=s;t.transferStreams=r||r===G;const x=!l&&!_&&!u&&!t.transferStreams;return t.useWebWorkers=!x&&(i||i===G&&s.useWebWorkers),t.scripts=t.useWebWorkers&&h?h[o]:[],e.useCompressionStream=a||a===G&&s.useCompressionStream,(await S()).run();async function S(){const c=de.find(d=>!d.busy);if(c)return ht(c),new at(c,n,t,f);if(de.length<p){const d={indexWorker:Cn};return Cn++,de.push(d),new at(d,n,t,f)}else return new Promise(d=>ct.push({resolve:d,stream:n,workerOptions:t}))}function f(c){if(ct.length){const[{resolve:d,stream:y,workerOptions:b}]=ct.splice(0,1);d(new at(c,y,b,f))}else c.worker?(ht(c),Xi(c,t)):de=de.filter(d=>d!=c)}}function Xi(n,t){const{config:e}=t,{terminateWorkerTimeout:s}=e;Number.isFinite(s)&&s>=0&&(n.terminated?n.terminated=!1:n.terminateTimeout=setTimeout(async()=>{de=de.filter(r=>r!=n);try{await n.terminate()}catch{}},s))}function ht(n){const{terminateTimeout:t}=n;t&&(clearTimeout(t),n.terminateTimeout=null)}async function $i(){await Promise.allSettled(de.map(n=>(ht(n),n.terminate())))}const ds="HTTP error ",ve="HTTP Range not supported",_s="Writer iterator completed too soon",hs="Writer not initialized",Ji="text/plain",Qi="Content-Length",zi="Content-Range",ea="Accept-Ranges",ta="Range",na="Content-Type",sa="HEAD",It="GET",ps="bytes",ra=64*1024,Ct="writable";class Qe{constructor(){this.size=0}init(){this.initialized=!0}}class pe extends Qe{get readable(){const t=this,{chunkSize:e=ra}=t,s=new ReadableStream({start(){this.chunkOffset=0},async pull(r){const{offset:i=0,size:a,diskNumberStart:o}=s,{chunkOffset:l}=this,_=a===G?e:Math.min(e,a-l),u=await Y(t,i+l,_,o);r.enqueue(u),l+e>a||a===G&&!u.length&&_?r.close():this.chunkOffset+=e}});return s}}class Pt extends Qe{constructor(){super();const t=this,e=new WritableStream({write(s){if(!t.initialized)throw new Error(hs);return t.writeUint8Array(s)}});Object.defineProperty(t,Ct,{get(){return e}})}writeUint8Array(){}}class ia extends pe{constructor(t){super();let e=t.length;for(;t.charAt(e-1)=="=";)e--;const s=t.indexOf(",")+1;Object.assign(this,{dataURI:t,dataStart:s,size:Math.floor((e-s)*.75)})}readUint8Array(t,e){const{dataStart:s,dataURI:r}=this,i=new Uint8Array(e),a=Math.floor(t/3)*4,o=atob(r.substring(a+s,Math.ceil((t+e)/3)*4+s)),l=t-Math.floor(a/4)*3;let _=0;for(let u=l;u<l+e&&u<o.length;u++)i[u-l]=o.charCodeAt(u),_++;return _<i.length?i.subarray(0,_):i}}class aa extends Pt{constructor(t){super(),Object.assign(this,{data:"data:"+(t||"")+";base64,",pending:[]})}writeUint8Array(t){const e=this;let s=0,r=e.pending;const i=e.pending.length;for(e.pending="",s=0;s<Math.floor((i+t.length)/3)*3-i;s++)r+=String.fromCharCode(t[s]);for(;s<t.length;s++)e.pending+=String.fromCharCode(t[s]);r.length&&(r.length>2?e.data+=btoa(r):e.pending+=r)}getData(){return this.data+btoa(this.pending)}}class Nt extends pe{constructor(t){super(),Object.assign(this,{blob:t,size:t.size})}async readUint8Array(t,e){const s=this,r=t+e;let a=await(t||r<s.size?s.blob.slice(t,r):s.blob).arrayBuffer();return a.byteLength>e&&(a=a.slice(t,r)),new Uint8Array(a)}}class ms extends Qe{constructor(t){super();const e=this,s=new TransformStream,r=[];t&&r.push([na,t]),Object.defineProperty(e,Ct,{get(){return s.writable}}),e.blob=new Response(s.readable,{headers:r}).blob()}getData(){return this.blob}}class oa extends Nt{constructor(t){super(new Blob([t],{type:Ji}))}}class ca extends ms{constructor(t){super(t),Object.assign(this,{encoding:t,utf8:!t||t.toLowerCase()=="utf-8"})}async getData(){const{encoding:t,utf8:e}=this,s=await super.getData();if(s.text&&e)return s.text();{const r=new FileReader;return new Promise((i,a)=>{Object.assign(r,{onload:({target:o})=>i(o.result),onerror:()=>a(r.error)}),r.readAsText(s,t)})}}}class la extends pe{constructor(t,e){super(),ws(this,t,e)}async init(){await gs(this,pt,Pn),super.init()}readUint8Array(t,e){return bs(this,t,e,pt,Pn)}}class fa extends pe{constructor(t,e){super(),ws(this,t,e)}async init(){await gs(this,mt,Nn),super.init()}readUint8Array(t,e){return bs(this,t,e,mt,Nn)}}function ws(n,t,e){const{preventHeadRequest:s,useRangeHeader:r,forceRangeRequests:i,combineSizeEocd:a}=e;e=Object.assign({},e),delete e.preventHeadRequest,delete e.useRangeHeader,delete e.forceRangeRequests,delete e.combineSizeEocd,delete e.useXHR,Object.assign(n,{url:t,options:e,preventHeadRequest:s,useRangeHeader:r,forceRangeRequests:i,combineSizeEocd:a})}async function gs(n,t,e){const{url:s,preventHeadRequest:r,useRangeHeader:i,forceRangeRequests:a,combineSizeEocd:o}=n;if(ha(s)&&(i||a)&&(typeof r>"u"||r)){const l=await t(It,n,ys(n,o?-ne:void 0));if(!a&&l.headers.get(ea)!=ps)throw new Error(ve);{o&&(n.eocdCache=new Uint8Array(await l.arrayBuffer()));let _;const u=l.headers.get(zi);if(u){const h=u.trim().split(/\s*\/\s*/);if(h.length){const p=h[1];p&&p!="*"&&(_=Number(p))}}_===G?await Dn(n,t,e):n.size=_}}else await Dn(n,t,e)}async function bs(n,t,e,s,r){const{useRangeHeader:i,forceRangeRequests:a,eocdCache:o,size:l,options:_}=n;if(i||a){if(o&&t==l-ne&&e==ne)return o;if(t>=l)return new Uint8Array;{t+e>l&&(e=l-t);const u=await s(It,n,ys(n,t,e));if(u.status!=206)throw new Error(ve);return new Uint8Array(await u.arrayBuffer())}}else{const{data:u}=n;return u||await r(n,_),new Uint8Array(n.data.subarray(t,t+e))}}function ys(n,t=0,e=1){return Object.assign({},Dt(n),{[ta]:ps+"="+(t<0?t:t+"-"+(t+e-1))})}function Dt({options:n}){const{headers:t}=n;if(t)return Symbol.iterator in t?Object.fromEntries(t):t}async function Pn(n){await Es(n,pt)}async function Nn(n){await Es(n,mt)}async function Es(n,t){const e=await t(It,n,Dt(n));n.data=new Uint8Array(await e.arrayBuffer()),n.size||(n.size=n.data.length)}async function Dn(n,t,e){if(n.preventHeadRequest)await e(n,n.options);else{const r=(await t(sa,n,Dt(n))).headers.get(Qi);r?n.size=Number(r):await e(n,n.options)}}async function pt(n,{options:t,url:e},s){const r=await fetch(e,Object.assign({},t,{method:n,headers:s}));if(r.status<400)return r;throw r.status==416?new Error(ve):new Error(ds+(r.statusText||r.status))}function mt(n,{url:t},e){return new Promise((s,r)=>{const i=new XMLHttpRequest;if(i.addEventListener("load",()=>{if(i.status<400){const a=[];i.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(o=>{const l=o.trim().split(/\s*:\s*/);l[0]=l[0].trim().replace(/^[a-z]|-[a-z]/g,_=>_.toUpperCase()),a.push(l)}),s({status:i.status,arrayBuffer:()=>i.response,headers:new Map(a)})}else r(i.status==416?new Error(ve):new Error(ds+(i.statusText||i.status)))},!1),i.addEventListener("error",a=>r(a.detail?a.detail.error:new Error("Network error")),!1),i.open(n,t),e)for(const a of Object.entries(e))i.setRequestHeader(a[0],a[1]);i.responseType="arraybuffer",i.send()})}class xs extends pe{constructor(t,e={}){super(),Object.assign(this,{url:t,reader:e.useXHR?new fa(t,e):new la(t,e)})}set size(t){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}readUint8Array(t,e){return this.reader.readUint8Array(t,e)}}class ua extends xs{constructor(t,e={}){e.useRangeHeader=!0,super(t,e)}}class da extends pe{constructor(t){super(),t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength),Object.assign(this,{array:t,size:t.length})}readUint8Array(t,e){return this.array.slice(t,t+e)}}class _a extends Pt{init(t=0){Object.assign(this,{offset:0,array:new Uint8Array(t)}),super.init()}writeUint8Array(t){const e=this;if(e.offset+t.length>e.array.length){const s=e.array;e.array=new Uint8Array(s.length+t.length),e.array.set(s)}e.array.set(t,e.offset),e.offset+=t.length}getData(){return this.array}}class kt extends pe{constructor(t){super(),this.readers=t}async init(){const t=this,{readers:e}=t;t.lastDiskNumber=0,t.lastDiskOffset=0,await Promise.all(e.map(async(s,r)=>{await s.init(),r!=e.length-1&&(t.lastDiskOffset+=s.size),t.size+=s.size})),super.init()}async readUint8Array(t,e,s=0){const r=this,{readers:i}=this;let a,o=s;o==-1&&(o=i.length-1);let l=t;for(;i[o]&&l>=i[o].size;)l-=i[o].size,o++;const _=i[o];if(_){const u=_.size;if(l+e<=u)a=await Y(_,l,e);else{const h=u-l;a=new Uint8Array(e);const p=await Y(_,l,h);a.set(p,0);const x=await r.readUint8Array(t+h,e-h,s);a.set(x,h),p.length+x.length<e&&(a=a.subarray(0,p.length+x.length))}}else a=new Uint8Array;return r.lastDiskNumber=Math.max(o,r.lastDiskNumber),a}}class Xe extends Qe{constructor(t,e=4294967295){super();const s=this;Object.assign(s,{diskNumber:0,diskOffset:0,size:0,maxSize:e,availableSize:e});let r,i,a;const o=new WritableStream({async write(u){const{availableSize:h}=s;if(a)u.length>=h?(await l(u.subarray(0,h)),await _(),s.diskOffset+=r.size,s.diskNumber++,a=null,await this.write(u.subarray(h))):await l(u);else{const{value:p,done:x}=await t.next();if(x&&!p)throw new Error(_s);r=p,r.size=0,r.maxSize&&(s.maxSize=r.maxSize),s.availableSize=s.maxSize,await De(r),i=p.writable,a=i.getWriter(),await this.write(u)}},async close(){await a.ready,await _()}});Object.defineProperty(s,Ct,{get(){return o}});async function l(u){const h=u.length;h&&(await a.ready,await a.write(u),r.size+=h,s.size+=h,s.availableSize-=h)}async function _(){await a.close()}}}class Ts{constructor(t){return Array.isArray(t)&&(t=new kt(t)),t instanceof ReadableStream&&(t={readable:t}),t}}class Ss{constructor(t){return t.writable===G&&typeof t.next==ke&&(t=new Xe(t)),t instanceof WritableStream&&(t={writable:t}),t.size===G&&(t.size=0),t instanceof Xe||Object.assign(t,{diskNumber:0,diskOffset:0,availableSize:1/0,maxSize:1/0}),t}}function ha(n){const{baseURL:t}=qn(),{protocol:e}=new URL(n,t);return e=="http:"||e=="https:"}async function De(n,t){if(n.init&&!n.initialized)await n.init(t);else return Promise.resolve()}function Y(n,t,e,s){return n.readUint8Array(t,e,s)}const pa=kt,ma=Xe,Rs="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split(""),wa=Rs.length==256;function ga(n){if(wa){let t="";for(let e=0;e<n.length;e++)t+=Rs[n[e]];return t}else return new TextDecoder().decode(n)}function qe(n,t){return t&&t.trim().toLowerCase()=="cp437"?ga(n):new TextDecoder(t).decode(n)}const As="filename",Os="rawFilename",Is="comment",Cs="rawComment",Ps="uncompressedSize",Ns="compressedSize",Ds="offset",wt="diskNumberStart",gt="lastModDate",bt="rawLastModDate",ks="lastAccessDate",ba="rawLastAccessDate",Ls="creationDate",ya="rawCreationDate",Ea="internalFileAttribute",xa="internalFileAttributes",Ta="externalFileAttribute",Sa="externalFileAttributes",Ra="msDosCompatible",Aa="zip64",Oa="encrypted",Ia="version",Ca="versionMadeBy",Pa="zipCrypto",Na="directory",Da="executable",ka="compressionMethod",La="signature",va="extraField",Fa=[As,Os,Ns,Ps,gt,bt,Is,Cs,ks,Ls,Ds,wt,wt,Ea,xa,Ta,Sa,Ra,Aa,Oa,Ia,Ca,Pa,Na,Da,ka,La,va,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class kn{constructor(t){Fa.forEach(e=>this[e]=t[e])}}const Ma="filenameEncoding",Ua="commentEncoding",Ha="decodeText",Wa="extractPrependedData",Ba="extractAppendedData",ja="password",Ga="rawPassword",Ya="passThrough",qa="signal",Va="checkPasswordOnly",Za="checkOverlappingEntryOnly",Ka="checkOverlappingEntry",Xa="checkSignature",$a="useWebWorkers",Ja="useCompressionStream",Qa="transferStreams",za="preventClose",Ve="File format is not recognized",vs="End of central directory not found",Fs="End of Zip64 central directory locator not found",Ms="Central directory header not found",Us="Local file header not found",Hs="Zip64 extra field not found",Ws="File contains encrypted entry",Bs="Encryption method not supported",yt="Compression method not supported",Et="Split zip file",js="Overlapping entry found",Ln="utf-8",vn="cp437",eo=[[Ps,we],[Ns,we],[Ds,we],[wt,fe]],to={[fe]:{getValue:W,bytes:4},[we]:{getValue:xe,bytes:8}};class Gs{constructor(t,e={}){Object.assign(this,{reader:new Ts(t),options:e,config:qn(),readRanges:[]})}async*getEntriesGenerator(t={}){const e=this;let{reader:s}=e;const{config:r}=e;if(await De(s),(s.size===G||!s.readUint8Array)&&(s=new Nt(await new Response(s.readable).blob()),await De(s)),s.size<ne)throw new Error(Ve);s.chunkSize=li(r);const i=await lo(s,jr,s.size,ne,fe*16);if(!i){const T=await Y(s,0,4),w=j(T);throw W(w)==Gn?new Error(Et):new Error(vs)}const a=j(i);let o=W(a,12),l=W(a,16);const _=i.offset,u=q(a,20),h=_+ne+u;let p=q(a,4);const x=s.lastDiskNumber||0;let S=q(a,6),f=q(a,8),c=0,d=0;if(l==we||o==we||f==fe||S==fe){const T=await Y(s,i.offset-st,st),w=j(T);if(W(w,0)==Gr){l=xe(w,8);let C=await Y(s,l,rt,-1),I=j(C);const k=i.offset-st-rt;if(W(I,0)!=un&&l!=k){const P=l;l=k,l>P&&(c=l-P),C=await Y(s,l,rt,-1),I=j(C)}if(W(I,0)!=un)throw new Error(Fs);p==fe&&(p=W(I,16)),S==fe&&(S=W(I,20)),f==fe&&(f=xe(I,32)),o==we&&(o=xe(I,40)),l-=o}}if(l>=s.size&&(c=s.size-l-o-ne,l=s.size-o-ne),x!=p)throw new Error(Et);if(l<0)throw new Error(Ve);let y=0,b=await Y(s,l,o,S),g=j(b);if(o){const T=i.offset-o;if(W(g,y)!=fn&&l!=T){const w=l;l=T,l>w&&(c+=l-w),b=await Y(s,l,o,S),g=j(b)}}const A=i.offset-l-(s.lastDiskOffset||0);if(o!=A&&A>=0&&(o=A,b=await Y(s,l,o,S),g=j(b)),l<0||l>=s.size)throw new Error(Ve);const m=V(e,t,Ma),R=V(e,t,Ua);for(let T=0;T<f;T++){const w=new so(s,r,e.options);if(W(g,y)!=fn)throw new Error(Ms);Ys(w,g,y+6);const C=!!w.bitFlag.languageEncodingFlag,I=y+46,k=I+w.filenameLength,P=k+w.extraFieldLength,D=q(g,y+4),U=D>>8==0,L=D>>8==3,Z=b.subarray(I,k),N=q(g,y+32),Q=P+N,M=b.subarray(P,Q),H=C,Fe=C,Te=W(g,y+38),te=U&&(Ee(g,y+38)&mn)==mn||L&&(Te>>16&ti)==ni||Z.length&&Z.at(-1)==wn.charCodeAt(0),z=L&&(Te>>16&si)!=0,Lt=W(g,y+42)+c;Object.assign(w,{versionMadeBy:D,msDosCompatible:U,compressedSize:0,uncompressedSize:0,commentLength:N,directory:te,offset:Lt,diskNumberStart:q(g,y+34),internalFileAttributes:q(g,y+36),externalFileAttributes:Te,rawFilename:Z,filenameUTF8:H,commentUTF8:Fe,rawExtraField:b.subarray(k,P),executable:z}),w.internalFileAttribute=w.internalFileAttributes,w.externalFileAttribute=w.externalFileAttributes;const vt=V(e,t,Ha)||qe,Ft=H?Ln:m||vn,Mt=Fe?Ln:R||vn;let Me=vt(Z,Ft);Me===G&&(Me=qe(Z,Ft));let ze=vt(M,Mt);ze===G&&(ze=qe(M,Mt)),Object.assign(w,{rawComment:M,filename:Me,comment:ze,directory:te||Me.endsWith(wn)}),d=Math.max(Lt,d),qs(w,w,g,y+6),w.zipCrypto=w.encrypted&&!w.extraFieldAES;const Se=new kn(w);Se.getData=(Ue,He)=>w.getData(Ue,Se,e.readRanges,He),Se.arrayBuffer=async Ue=>{const He=new TransformStream,[Zs]=await Promise.all([new Response(He.readable).arrayBuffer(),w.getData(He,Se,e.readRanges,Ue)]);return Zs},y=Q;const{onprogress:Ut}=t;if(Ut)try{await Ut(T+1,f,new kn(w))}catch{}yield Se}const E=V(e,t,Wa),O=V(e,t,Ba);return E&&(e.prependedData=d>0?await Y(s,0,d):new Uint8Array),e.comment=u?await Y(s,_+ne,u):new Uint8Array,O&&(e.appendedData=h<s.size?await Y(s,h,s.size-h):new Uint8Array),!0}async getEntries(t={}){const e=[];for await(const s of this.getEntriesGenerator(t))e.push(s);return e}async close(){}}class no{constructor(t={}){const{readable:e,writable:s}=new TransformStream,r=new Gs(e,t).getEntriesGenerator();this.readable=new ReadableStream({async pull(i){const{done:a,value:o}=await r.next();if(a)return i.close();const l={...o,readable:(function(){const{readable:_,writable:u}=new TransformStream;if(o.getData)return o.getData(u),_})()};delete l.getData,i.enqueue(l)}}),this.writable=s}}class so{constructor(t,e,s){Object.assign(this,{reader:t,config:e,options:s})}async getData(t,e,s,r={}){const i=this,{reader:a,offset:o,diskNumberStart:l,extraFieldAES:_,extraFieldZip64:u,compressionMethod:h,config:p,bitFlag:x,signature:S,rawLastModDate:f,uncompressedSize:c,compressedSize:d}=i,{dataDescriptor:y}=x,b=e.localDirectory={},g=await Y(a,o,it,l),A=j(g);let m=V(i,r,ja),R=V(i,r,Ga);const E=V(i,r,Ya);if(m=m&&m.length&&m,R=R&&R.length&&R,_&&_.originalCompressionMethod!=Hr)throw new Error(yt);if(h!=Ur&&h!=Mr&&!E)throw new Error(yt);if(W(A,0)!=Wr)throw new Error(Us);Ys(b,A,4);const{extraFieldLength:O,filenameLength:T,lastAccessDate:w,creationDate:C}=b;b.rawExtraField=O?await Y(a,o+it+T,O,l):new Uint8Array,qs(i,b,A,4,!0),Object.assign(e,{lastAccessDate:w,creationDate:C});const I=i.encrypted&&b.encrypted&&!E,k=I&&!_;if(E||(e.zipCrypto=k),I){if(!k&&_.strength===G)throw new Error(Bs);if(!m&&!R)throw new Error(Ws)}const P=o+it+T+O,D=d,U=a.readable;Object.assign(U,{diskNumberStart:l,offset:P,size:D});const L=V(i,r,qa),Z=V(i,r,Va);let N=V(i,r,Ka);const Q=V(i,r,Za);Q&&(N=!0);const{onstart:M,onprogress:H,onend:Fe}=r,Te={options:{codecType:ls,password:m,rawPassword:R,zipCrypto:k,encryptionStrength:_&&_.strength,signed:V(i,r,Xa)&&!E,passwordVerification:k&&(y?f>>>8&255:S>>>24&255),outputSize:c,signature:S,compressed:h!=0&&!E,encrypted:i.encrypted&&!E,useWebWorkers:V(i,r,$a),useCompressionStream:V(i,r,Ja),transferStreams:V(i,r,Qa),checkPasswordOnly:Z},config:p,streamOptions:{signal:L,size:D,onstart:M,onprogress:H,onend:Fe}};N&&await co({reader:a,fileEntry:e,offset:o,diskNumberStart:l,signature:S,compressedSize:d,uncompressedSize:c,dataOffset:P,dataDescriptor:y||b.bitFlag.dataDescriptor,extraFieldZip64:u||b.extraFieldZip64,readRanges:s});let te;try{if(!Q){Z&&(t=new WritableStream),t=new Ss(t),await De(t,E?d:c),{writable:te}=t;const{outputSize:z}=await Ki({readable:U,writable:te},Te);if(t.size+=z,z!=(E?d:c))throw new Error(Ot)}}catch(z){if(z.outputSize!==G&&(t.size+=z.outputSize),!Z||z.message!=St)throw z}finally{!V(i,r,za)&&te&&!te.locked&&await te.getWriter().close()}return Z||Q?G:t.getData?t.getData():te}}function Ys(n,t,e){const s=n.rawBitFlag=q(t,e+2),r=(s&_n)==_n,i=W(t,e+6);Object.assign(n,{encrypted:r,version:q(t,e),bitFlag:{level:(s&ei)>>1,dataDescriptor:(s&hn)==hn,languageEncodingFlag:(s&pn)==pn},rawLastModDate:i,lastModDate:fo(i),filenameLength:q(t,e+22),extraFieldLength:q(t,e+24)})}function qs(n,t,e,s,r){const{rawExtraField:i}=t,a=t.extraField=new Map,o=j(new Uint8Array(i));let l=0;try{for(;l<i.length;){const d=q(o,l),y=q(o,l+2);a.set(d,{type:d,data:i.slice(l+4,l+4+y)}),l+=4+y}}catch{}const _=q(e,s+4);Object.assign(t,{signature:W(e,s+ri),compressedSize:W(e,s+ii),uncompressedSize:W(e,s+ai)});const u=a.get(Vr);u&&(ro(u,t),t.extraFieldZip64=u);const h=a.get(Jr);h&&(Fn(h,As,Os,t,n),t.extraFieldUnicodePath=h);const p=a.get(Qr);p&&(Fn(p,Is,Cs,t,n),t.extraFieldUnicodeComment=p);const x=a.get(Zr);x?(io(x,t,_),t.extraFieldAES=x):t.compressionMethod=_;const S=a.get(Kr);S&&(ao(S,t),t.extraFieldNTFS=S);const f=a.get($r);f&&(oo(f,t,r),t.extraFieldExtendedTimestamp=f);const c=a.get(zr);c&&(t.extraFieldUSDZ=c)}function ro(n,t){t.zip64=!0;const e=j(n.data),s=eo.filter(([r,i])=>t[r]==i);for(let r=0,i=0;r<s.length;r++){const[a,o]=s[r];if(t[a]==o){const l=to[o];t[a]=n[a]=l.getValue(e,i),i+=l.bytes}else if(n[a])throw new Error(Hs)}}function Fn(n,t,e,s,r){const i=j(n.data),a=new Ze;a.append(r[e]);const o=j(new Uint8Array(4));o.setUint32(0,a.get(),!0);const l=W(i,1);Object.assign(n,{version:Ee(i,0),[t]:qe(n.data.subarray(5)),valid:!r.bitFlag.languageEncodingFlag&&l==W(o,0)}),n.valid&&(s[t]=n[t],s[t+"UTF8"]=!0)}function io(n,t,e){const s=j(n.data),r=Ee(s,4);Object.assign(n,{vendorVersion:Ee(s,0),vendorId:Ee(s,2),strength:r,originalCompressionMethod:e,compressionMethod:q(s,5)}),t.compressionMethod=n.compressionMethod}function ao(n,t){const e=j(n.data);let s=4,r;try{for(;s<n.data.length&&!r;){const i=q(e,s),a=q(e,s+2);i==Xr&&(r=n.data.slice(s+4,s+4+a)),s+=4+a}}catch{}try{if(r&&r.length==24){const i=j(r),a=i.getBigUint64(0,!0),o=i.getBigUint64(8,!0),l=i.getBigUint64(16,!0);Object.assign(n,{rawLastModDate:a,rawLastAccessDate:o,rawCreationDate:l});const _=lt(a),u=lt(o),h=lt(l),p={lastModDate:_,lastAccessDate:u,creationDate:h};Object.assign(n,p),Object.assign(t,p)}}catch{}}function oo(n,t,e){const s=j(n.data),r=Ee(s,0),i=[],a=[];e?((r&1)==1&&(i.push(gt),a.push(bt)),(r&2)==2&&(i.push(ks),a.push(ba)),(r&4)==4&&(i.push(Ls),a.push(ya))):n.data.length>=5&&(i.push(gt),a.push(bt));let o=1;i.forEach((l,_)=>{if(n.data.length>=o+4){const u=W(s,o);t[l]=n[l]=new Date(u*1e3);const h=a[_];n[h]=u}o+=4})}async function co({reader:n,fileEntry:t,offset:e,diskNumberStart:s,signature:r,compressedSize:i,uncompressedSize:a,dataOffset:o,dataDescriptor:l,extraFieldZip64:_,readRanges:u}){let h=0;if(s)for(let S=0;S<s;S++){const f=n.readers[S];h+=f.size}let p=0;if(l&&(_?p=qr:p=Yr),p){const S=await Y(n,o+i,p+dn,s);if(W(j(S),0)==Br){const c=W(j(S),4);let d,y;_?(d=xe(j(S),8),y=xe(j(S),16)):(d=W(j(S),8),y=W(j(S),12)),(t.encrypted&&!t.zipCrypto||c==r)&&d==i&&y==a&&(p+=dn)}}const x={start:h+e,end:h+o+i+p,fileEntry:t};for(const S of u)if(S.fileEntry!=t&&x.start>=S.start&&x.start<S.end){const f=new Error(js);throw f.overlappingEntry=S.fileEntry,f}u.push(x)}async function lo(n,t,e,s,r){const i=new Uint8Array(4),a=j(i);uo(a,0,t);const o=s+r;return await l(s)||await l(Math.min(o,e));async function l(_){const u=e-_,h=await Y(n,u,_);for(let p=h.length-s;p>=0;p--)if(h[p]==i[0]&&h[p+1]==i[1]&&h[p+2]==i[2]&&h[p+3]==i[3])return{offset:u+p,buffer:h.slice(p,p+s).buffer}}}function V(n,t,e){return t[e]===G?n.options[e]:t[e]}function fo(n){const t=(n&4294901760)>>16,e=n&65535;try{return new Date(1980+((t&65024)>>9),((t&480)>>5)-1,t&31,(e&63488)>>11,(e&2016)>>5,(e&31)*2,0)}catch{}}function lt(n){return new Date(Number(n/BigInt(1e4)-BigInt(116444736e5)))}function Ee(n,t){return n.getUint8(t)}function q(n,t){return n.getUint16(t,!0)}function W(n,t){return n.getUint32(t,!0)}function xe(n,t){return Number(n.getBigUint64(t,!0))}function uo(n,t,e){n.setUint32(t,e,!0)}function j(n){return new DataView(n.buffer)}Vn({Inflate:Fr});const _o=Object.freeze(Object.defineProperty({__proto__:null,BlobReader:Nt,BlobWriter:ms,Data64URIReader:ia,Data64URIWriter:aa,ERR_BAD_FORMAT:Ve,ERR_CENTRAL_DIRECTORY_NOT_FOUND:Ms,ERR_ENCRYPTED:Ws,ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND:Fs,ERR_EOCDR_NOT_FOUND:vs,ERR_EXTRAFIELD_ZIP64_NOT_FOUND:Hs,ERR_HTTP_RANGE:ve,ERR_INVALID_PASSWORD:xt,ERR_INVALID_SIGNATURE:Tt,ERR_INVALID_UNCOMPRESSED_SIZE:Ot,ERR_ITERATOR_COMPLETED_TOO_SOON:_s,ERR_LOCAL_FILE_HEADER_NOT_FOUND:Us,ERR_OVERLAPPING_ENTRY:js,ERR_SPLIT_ZIP_FILE:Et,ERR_UNSUPPORTED_COMPRESSION:yt,ERR_UNSUPPORTED_ENCRYPTION:Bs,ERR_WRITER_NOT_INITIALIZED:hs,GenericReader:Ts,GenericWriter:Ss,HttpRangeReader:ua,HttpReader:xs,Reader:pe,SplitDataReader:kt,SplitDataWriter:Xe,SplitZipReader:pa,SplitZipWriter:ma,TextReader:oa,TextWriter:ca,Uint8ArrayReader:da,Uint8ArrayWriter:_a,Writer:Pt,ZipReader:Gs,ZipReaderStream:no,configure:Vn,getMimeType:fi,initStream:De,readUint8Array:Y,terminateWorkers:$i},Symbol.toStringTag,{value:"Module"})),Oe=_o;class ho{constructor(t,e,s){v(this,"_zipReader");v(this,"_entriesPromise");v(this,"_traceURL");this._traceURL=t,Oe.configure({baseURL:self.location.href}),this._zipReader=new Oe.ZipReader(new Oe.HttpReader(mo(t,e),{mode:"cors",preventHeadRequest:!0}),{useWebWorkers:!1}),this._entriesPromise=this._zipReader.getEntries({onprogress:s}).then(r=>{const i=new Map;for(const a of r)i.set(a.filename,a);return i})}isLive(){return!1}traceURL(){return this._traceURL}async entryNames(){return[...(await this._entriesPromise).keys()]}async hasEntry(t){return(await this._entriesPromise).has(t)}async readText(t){var i;const s=(await this._entriesPromise).get(t);if(!s)return;const r=new Oe.TextWriter;return await((i=s.getData)==null?void 0:i.call(s,r)),r.getData()}async readBlob(t){const s=(await this._entriesPromise).get(t);if(!s)return;const r=new Oe.BlobWriter;return await s.getData(r),r.getData()}}class po{constructor(t,e){v(this,"_entriesPromise");v(this,"_path");v(this,"_server");this._path=t,this._server=e,this._entriesPromise=e.readFile(t).then(async s=>{if(!s)throw new Error("File not found");const r=await s.json(),i=new Map;for(const a of r.entries)i.set(a.name,a.path);return i})}isLive(){return!0}traceURL(){return this._path}async entryNames(){return[...(await this._entriesPromise).keys()]}async hasEntry(t){return(await this._entriesPromise).has(t)}async readText(t){const e=await this._readEntry(t);return e==null?void 0:e.text()}async readBlob(t){const e=await this._readEntry(t);return(e==null?void 0:e.status)===200?await(e==null?void 0:e.blob()):void 0}async _readEntry(t){const s=(await this._entriesPromise).get(t);if(s)return this._server.readFile(s)}}function mo(n,t){let e=n.startsWith("http")||n.startsWith("blob")?n:t.getFileURL(n).toString();return e.startsWith("https://www.dropbox.com/")&&(e="https://dl.dropboxusercontent.com/"+e.substring(24)),e}class wo{constructor(t){this.baseUrl=t}getFileURL(t){const e=new URL("trace/file",this.baseUrl);return e.searchParams.set("path",t),e}async readFile(t){const e=await fetch(this.getFileURL(t));if(e.status!==404)return e}}self.addEventListener("install",function(n){self.skipWaiting()});self.addEventListener("activate",function(n){n.waitUntil(self.clients.claim())});const go=new URL(self.registration.scope).pathname,_e=new Map,$e=new Map;async function bo(n,t,e,s){var u;const r=(e==null?void 0:e.id)??"",i=new URL((e==null?void 0:e.url)??self.registration.scope),a=new URL(i.searchParams.get("server")??"../",i),o={traceUrl:n,traceViewerServer:new wo(a)};$e.set(r,o),await Vs();const l=new pr;try{const[h,p]=$s(s,[.5,.4,.1]),x=n.endsWith("json")?new po(n,o.traceViewerServer):new ho(n,o.traceViewerServer,h);await l.load(x,p)}catch(h){throw console.error(h),(u=h==null?void 0:h.message)!=null&&u.includes("Cannot find .trace file")&&await l.hasEntry("index.html")?new Error("Could not load trace. Did you upload a Playwright HTML report instead? Make sure to extract the archive first and then double-click the index.html file or put it on a web server."):h instanceof Wn?new Error(`Could not load trace from ${t||n}. ${h.message}`):t?new Error(`Could not load trace from ${t}. Make sure to upload a valid Playwright trace.`):new Error(`Could not load trace from ${n}. Make sure a valid Playwright Trace is accessible over this url.`)}const _=new lr(l.storage(),h=>l.resourceForSha1(h));return _e.set(n,{traceModel:l,snapshotServer:_}),l}async function yo(n){var l;if(n.request.url.startsWith("chrome-extension://"))return fetch(n.request);if(n.request.headers.get("x-pw-serviceworker")==="forward"){const _=new Request(n.request);return _.headers.delete("x-pw-serviceworker"),fetch(_)}const t=n.request,e=await self.clients.get(n.clientId),s=self.registration.scope.startsWith("https://");if(t.url.startsWith(self.registration.scope)){const _=new URL(ut(t.url)),u=_.pathname.substring(go.length-1);if(u==="/ping")return await Vs(),new Response(null,{status:200});const h=_.searchParams.get("trace");if(u==="/contexts")try{const p=await bo(h,_.searchParams.get("traceFileName"),e,(x,S)=>{e.postMessage({method:"progress",params:{done:x,total:S}})});return new Response(JSON.stringify(p.contextEntries),{status:200,headers:{"Content-Type":"application/json"}})}catch(p){return new Response(JSON.stringify({error:p==null?void 0:p.message}),{status:500,headers:{"Content-Type":"application/json"}})}if(u.startsWith("/snapshotInfo/")){const{snapshotServer:p}=_e.get(h)||{};if(!p)return new Response(null,{status:404});const x=u.substring(14);return p.serveSnapshotInfo(x,_.searchParams)}if(u.startsWith("/snapshot/")){const{snapshotServer:p}=_e.get(h)||{};if(!p)return new Response(null,{status:404});const x=u.substring(10),S=p.serveSnapshot(x,_.searchParams,_.href);return s&&S.headers.set("Content-Security-Policy","upgrade-insecure-requests"),S}if(u.startsWith("/closest-screenshot/")){const{snapshotServer:p}=_e.get(h)||{};if(!p)return new Response(null,{status:404});const x=u.substring(20);return p.serveClosestScreenshot(x,_.searchParams)}if(u.startsWith("/sha1/")){const p=u.slice(6);for(const x of _e.values()){const S=await x.traceModel.resourceForSha1(p);if(S)return new Response(S,{status:200,headers:Eo(_.searchParams)})}return new Response(null,{status:404})}if(u.startsWith("/file/")){const p=_.searchParams.get("path"),x=(l=$e.get(n.clientId??""))==null?void 0:l.traceViewerServer;if(!x)throw new Error("client is not initialized");const S=await x.readFile(p);return S||new Response(null,{status:404})}return fetch(n.request)}const r=ut(e.url),i=new URL(r).searchParams.get("trace"),{snapshotServer:a}=_e.get(i)||{};if(!a)return new Response(null,{status:404});const o=[t.url];return s&&t.url.startsWith("https://")&&o.push(t.url.replace(/^https/,"http")),a.serveResource(o,t.method,r)}function Eo(n){const t=n.get("dn"),e=n.get("dct");if(!t)return;const s=new Headers;return s.set("Content-Disposition",`attachment; filename="attachment"; filename*=UTF-8''${encodeURIComponent(t)}`),e&&s.set("Content-Type",e),s}async function Vs(){const n=await self.clients.matchAll(),t=new Set;for(const[e,s]of $e){if(!n.find(r=>r.id===e)){$e.delete(e);continue}t.add(s.traceUrl)}for(const e of _e.keys())t.has(e)||_e.delete(e)}self.addEventListener("fetch",function(n){n.respondWith(yo(n))});
1
+ var $s=Object.defineProperty;var Js=(s,t,e)=>t in s?$s(s,t,{enumerable:!0,configurable:!0,writable:!0,value:e}):s[t]=e;var L=(s,t,e)=>Js(s,typeof t!="symbol"?t+"":t,e);function Qs(s,t){const e=new Array(t.length).fill(0);return new Array(t.length).fill(0).map((n,r)=>(i,a)=>{e[r]=i/a*t[r]*1e3,s(e.reduce((o,l)=>o+l,0),1e3)})}class zs{constructor(t,e){L(this,"_snapshotStorage");L(this,"_resourceLoader");L(this,"_snapshotIds",new Map);this._snapshotStorage=t,this._resourceLoader=e}serveSnapshot(t,e,n){const r=this._snapshot(t,e);if(!r)return new Response(null,{status:404});const i=r.render();return this._snapshotIds.set(n,r),new Response(i.html,{status:200,headers:{"Content-Type":"text/html; charset=utf-8"}})}async serveClosestScreenshot(t,e){const n=this._snapshot(t,e),r=n==null?void 0:n.closestScreenshot();return r?new Response(await this._resourceLoader(r)):new Response(null,{status:404})}serveSnapshotInfo(t,e){const n=this._snapshot(t,e);return this._respondWithJson(n?{viewport:n.viewport(),url:n.snapshot().frameUrl,timestamp:n.snapshot().timestamp,wallTime:n.snapshot().wallTime}:{error:"No snapshot found"})}_snapshot(t,e){const n=e.get("name");return this._snapshotStorage.snapshotByName(t,n)}_respondWithJson(t){return new Response(JSON.stringify(t),{status:200,headers:{"Cache-Control":"public, max-age=31536000","Content-Type":"application/json"}})}async serveResource(t,e,n){let r;const i=this._snapshotIds.get(n);for(const A of t)if(r=i==null?void 0:i.resourceByUrl(er(A),e),r)break;if(!r)return new Response(null,{status:404});const a=r.response.content._sha1,o=a?await this._resourceLoader(a)||new Blob([]):new Blob([]);let l=r.response.content.mimeType;/^text\/|^application\/(javascript|json)/.test(l)&&!l.includes("charset")&&(l=`${l}; charset=utf-8`);const f=new Headers;l!=="x-unknown"&&f.set("Content-Type",l);for(const{name:A,value:T}of r.response.headers)f.set(A,T);f.delete("Content-Encoding"),f.delete("Access-Control-Allow-Origin"),f.set("Access-Control-Allow-Origin","*"),f.delete("Content-Length"),f.set("Content-Length",String(o.size)),f.set("Cache-Control","public, max-age=31536000");const{status:m}=r.response,b=m===101||m===204||m===205||m===304;return new Response(b?null:o,{headers:f,status:r.response.status,statusText:r.response.statusText})}}function er(s){try{const t=new URL(s);return t.hash="",t.toString()}catch{return s}}function tr(s){const t=new Map,{files:e,stacks:n}=s;for(const r of n){const[i,a]=r;t.set(`call@${i}`,a.map(o=>({file:e[o[0]],line:o[1],column:o[2],function:o[3]})))}return t}const Wn={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;"};function nr(s){return s.replace(/[&<>"']/ug,t=>Wn[t])}function sr(s){return s.replace(/[&<]/ug,t=>Wn[t])}function Wt(s,t,e){return s.find((n,r)=>{if(r===s.length-1)return!0;const i=s[r+1];return Math.abs(t(n)-e)<Math.abs(t(i)-e)})}function Bn(s){return Array.isArray(s)&&typeof s[0]=="string"}function rr(s){return Array.isArray(s)&&Array.isArray(s[0])}class ir{constructor(t,e,n,r,i){L(this,"_htmlCache");L(this,"_snapshots");L(this,"_index");L(this,"snapshotName");L(this,"_resources");L(this,"_snapshot");L(this,"_callId");L(this,"_screencastFrames");this._htmlCache=t,this._resources=e,this._snapshots=n,this._index=i,this._snapshot=n[i],this._callId=n[i].callId,this._screencastFrames=r,this.snapshotName=n[i].snapshotName}snapshot(){return this._snapshots[this._index]}viewport(){return this._snapshots[this._index].viewport}closestScreenshot(){var r;const{wallTime:t,timestamp:e}=this.snapshot(),n=t&&((r=this._screencastFrames[0])!=null&&r.frameSwapWallTime)?Wt(this._screencastFrames,i=>i.frameSwapWallTime,t):Wt(this._screencastFrames,i=>i.timestamp,e);return n==null?void 0:n.sha1}render(){const t=[],e=(i,a,o,l)=>{if(typeof i=="string"){o==="STYLE"||o==="style"?t.push(_r(fr(i))):t.push(sr(i));return}if(rr(i)){const _=a-i[0][0];if(_>=0&&_<=a){const f=or(this._snapshots[_]),m=i[0][1];if(m>=0&&m<f.length)return e(f[m],_,o,l)}}else if(Bn(i)){const[_,f,...m]=i,b=_==="NOSCRIPT"?"X-NOSCRIPT":_,A=Object.entries(f||{});t.push("<",b);const T="__playwright_current_src__",u=b==="IFRAME"||b==="FRAME",c=b==="A",d=b==="IMG",h=d&&A.some(y=>y[0]===T),p=b==="SOURCE"&&o==="PICTURE"&&(l==null?void 0:l.some(y=>y[0]===T));for(const[y,O]of A){let w=y;u&&y.toLowerCase()==="src"&&(w="__playwright_src__"),d&&y===T&&(w="src"),["src","srcset"].includes(y.toLowerCase())&&(h||p)&&(w="_"+w);let E=O;c&&y.toLowerCase()==="href"?E="link://"+O:(y.toLowerCase()==="href"||y.toLowerCase()==="src"||y===T)&&(E=ft(O)),t.push(" ",w,'="',nr(E),'"')}t.push(">");for(const y of m)e(y,a,b,A);ar.has(b)||t.push("</",b,">");return}else return},n=this._snapshot;return{html:this._htmlCache.getOrCompute(this,()=>{e(n.html,this._index,void 0,void 0);const a=(n.doctype?`<!DOCTYPE ${n.doctype}>`:"")+["<style>*,*::before,*::after { visibility: hidden }</style>",`<script>${cr(this.viewport(),this._callId,this.snapshotName)}<\/script>`].join("")+t.join("");return{value:a,size:a.length}}),pageId:n.pageId,frameId:n.frameId,index:this._index}}resourceByUrl(t,e){const n=this._snapshot;let r,i;for(const o of this._resources){if(typeof o._monotonicTime=="number"&&o._monotonicTime>=n.timestamp)break;o.response.status!==304&&o.request.url===t&&o.request.method===e&&(o._frameref===n.frameId?r=o:i=o)}let a=r??i;if(a&&e.toUpperCase()==="GET"){for(const o of n.resourceOverrides)if(t===o.url&&o.sha1){a={...a,response:{...a.response,content:{...a.response.content,_sha1:o.sha1}}};break}}return a}}const ar=new Set(["AREA","BASE","BR","COL","COMMAND","EMBED","HR","IMG","INPUT","KEYGEN","LINK","MENUITEM","META","PARAM","SOURCE","TRACK","WBR"]);function or(s){if(!s._nodes){const t=[],e=n=>{if(typeof n=="string")t.push(n);else if(Bn(n)){const[,,...r]=n;for(const i of r)e(i);t.push(n)}};e(s.html),s._nodes=t}return s._nodes}function cr(s,...t){function e(n,...r){const i=new URLSearchParams(location.search),a=i.has("shouldPopulateCanvasFromScreenshot"),o=i.has("isUnderTest"),l={viewport:n,frames:new WeakMap};window.__playwright_frame_bounding_rects__=l;const _="Recorded click position in absolute coordinates did not match the center of the clicked element. This is likely due to a difference between the test runner and the trace viewer operating systems.",f=[],m=[],b=[],A=[];let T=window;for(;T!==T.parent&&!T.location.pathname.match(/\/page@[a-z0-9]+$/);)T=T.parent;const u=h=>{for(const p of h.querySelectorAll("[__playwright_scroll_top_]"))f.push(p);for(const p of h.querySelectorAll("[__playwright_scroll_left_]"))m.push(p);for(const p of h.querySelectorAll("[__playwright_value_]")){const y=p;y.type!=="file"&&(y.value=y.getAttribute("__playwright_value_")),p.removeAttribute("__playwright_value_")}for(const p of h.querySelectorAll("[__playwright_checked_]"))p.checked=p.getAttribute("__playwright_checked_")==="true",p.removeAttribute("__playwright_checked_");for(const p of h.querySelectorAll("[__playwright_selected_]"))p.selected=p.getAttribute("__playwright_selected_")==="true",p.removeAttribute("__playwright_selected_");for(const p of h.querySelectorAll("[__playwright_popover_open_]")){try{p.showPopover()}catch{}p.removeAttribute("__playwright_popover_open_")}for(const p of h.querySelectorAll("[__playwright_dialog_open_]")){try{p.getAttribute("__playwright_dialog_open_")==="modal"?p.showModal():p.show()}catch{}p.removeAttribute("__playwright_dialog_open_")}for(const p of r)for(const y of h.querySelectorAll(`[__playwright_target__="${p}"]`)){const O=y.style;O.outline="2px solid #006ab1",O.backgroundColor="#6fa8dc7f",b.push(y)}for(const p of h.querySelectorAll("iframe, frame")){const y=p.getAttribute("__playwright_bounding_rect__");p.removeAttribute("__playwright_bounding_rect__");const O=y?JSON.parse(y):void 0;O&&l.frames.set(p,{boundingRect:O,scrollLeft:0,scrollTop:0});const w=p.getAttribute("__playwright_src__");if(!w)p.setAttribute("src",'data:text/html,<body style="background: #ddd"></body>');else{const E=new URL(window.location.href),R=E.pathname.lastIndexOf("/snapshot/");R!==-1&&(E.pathname=E.pathname.substring(0,R+1)),E.pathname+=w.substring(1),p.setAttribute("src",E.toString())}}{const p=h.querySelector("body[__playwright_custom_elements__]");if(p&&window.customElements){const y=(p.getAttribute("__playwright_custom_elements__")||"").split(",");for(const O of y)window.customElements.define(O,class extends HTMLElement{})}}for(const p of h.querySelectorAll("template[__playwright_shadow_root_]")){const y=p,O=y.parentElement.attachShadow({mode:"open"});O.appendChild(y.content),y.remove(),u(O)}if("adoptedStyleSheets"in h){const p=[...h.adoptedStyleSheets];for(const y of h.querySelectorAll("template[__playwright_style_sheet_]")){const O=y,w=new CSSStyleSheet;w.replaceSync(O.getAttribute("__playwright_style_sheet_")),p.push(w)}h.adoptedStyleSheets=p}A.push(...h.querySelectorAll("canvas"))},c=()=>{window.removeEventListener("load",c);for(const y of f)y.scrollTop=+y.getAttribute("__playwright_scroll_top_"),y.removeAttribute("__playwright_scroll_top_"),l.frames.has(y)&&(l.frames.get(y).scrollTop=y.scrollTop);for(const y of m)y.scrollLeft=+y.getAttribute("__playwright_scroll_left_"),y.removeAttribute("__playwright_scroll_left_"),l.frames.has(y)&&(l.frames.get(y).scrollLeft=y.scrollTop);document.styleSheets[0].disabled=!0;const h=new URL(window.location.href).searchParams,p=window===T;if(h.get("pointX")&&h.get("pointY")){const y=+h.get("pointX"),O=+h.get("pointY"),w=h.has("hasInputTarget"),E=b.length>0,R=document.documentElement?[document.documentElement]:[];for(const x of E?b:R){const g=document.createElement("x-pw-pointer");if(g.style.position="fixed",g.style.backgroundColor="#f44336",g.style.width="20px",g.style.height="20px",g.style.borderRadius="10px",g.style.margin="-10px 0 0 -10px",g.style.zIndex="2147483646",g.style.display="flex",g.style.alignItems="center",g.style.justifyContent="center",E){const S=x.getBoundingClientRect(),N=S.left+S.width/2,I=S.top+S.height/2;if(g.style.left=N+"px",g.style.top=I+"px",p&&(Math.abs(N-y)>=10||Math.abs(I-O)>=10)){const D=document.createElement("x-pw-pointer-warning");D.textContent="⚠",D.style.fontSize="19px",D.style.color="white",D.style.marginTop="-3.5px",D.style.userSelect="none",g.appendChild(D),g.setAttribute("title",_)}document.documentElement.appendChild(g)}else p&&!w&&(g.style.left=y+"px",g.style.top=O+"px",document.documentElement.appendChild(g))}}if(A.length>0){let y=function(w,E){function R(){const x=document.createElement("canvas");x.width=x.width/Math.floor(x.width/24),x.height=x.height/Math.floor(x.height/24);const g=x.getContext("2d");return g.fillStyle="lightgray",g.fillRect(0,0,x.width,x.height),g.fillStyle="white",g.fillRect(0,0,x.width/2,x.height/2),g.fillRect(x.width/2,x.height/2,x.width,x.height),g.createPattern(x,"repeat")}w.fillStyle=R(),w.fillRect(0,0,E.width,E.height)};const O=new Image;O.onload=()=>{var w;for(const E of A){const R=E.getContext("2d"),x=E.getAttribute("__playwright_bounding_rect__");if(E.removeAttribute("__playwright_bounding_rect__"),!x)continue;let g;try{g=JSON.parse(x)}catch{continue}let S=window;for(;S!==T;){const C=S.frameElement;S=S.parent;const v=(w=S.__playwright_frame_bounding_rects__)==null?void 0:w.frames.get(C);if(!(v!=null&&v.boundingRect))break;const F=v.boundingRect.left-v.scrollLeft,Z=v.boundingRect.top-v.scrollTop;g.left+=F,g.top+=Z,g.right+=F,g.bottom+=Z}const{width:N,height:I}=T.__playwright_frame_bounding_rects__.viewport;g.left=g.left/N,g.top=g.top/I,g.right=g.right/N,g.bottom=g.bottom/I;const D=g.right>1||g.bottom>1;if(g.left>1||g.top>1){E.title="Playwright couldn't capture canvas contents because it's located outside the viewport.";continue}y(R,E),a?(R.drawImage(O,g.left*O.width,g.top*O.height,(g.right-g.left)*O.width,(g.bottom-g.top)*O.height,0,0,E.width,E.height),D?E.title="Playwright couldn't capture full canvas contents because it's located partially outside the viewport.":E.title="Canvas contents are displayed on a best-effort basis based on viewport screenshots taken during test execution."):E.title="Canvas content display is disabled.",o&&console.log("canvas drawn:",JSON.stringify([g.left,g.top,g.right-g.left,g.bottom-g.top].map(C=>Math.floor(C*100))))}},O.onerror=()=>{for(const w of A){const E=w.getContext("2d");y(E,w),w.title="Playwright couldn't show canvas contents because the screenshot failed to load."}},O.src=location.href.replace("/snapshot","/closest-screenshot")}},d=()=>u(document);window.addEventListener("load",c),window.addEventListener("DOMContentLoaded",d)}return`
2
+ (${e.toString()})(${JSON.stringify(s)}${t.map(n=>`, "${n}"`).join("")})`}const jn=["about:","blob:","data:","file:","ftp:","http:","https:","mailto:","sftp:","ws:","wss:"],Bt="http://playwright.bloburl/#";function ft(s){s.startsWith(Bt)&&(s=s.substring(Bt.length));try{const t=new URL(s);if(t.protocol==="javascript:"||t.protocol==="vbscript:")return"javascript:void(0)";const e=t.protocol==="blob:",n=t.protocol==="file:";if(!e&&!n&&jn.includes(t.protocol))return s;const r="pw-"+t.protocol.slice(0,t.protocol.length-1);return n||(t.protocol="https:"),t.hostname=t.hostname?`${r}--${t.hostname}`:r,n&&(t.protocol="https:"),t.toString()}catch{return s}}const lr=/url\(['"]?([\w-]+:)\/\//ig;function fr(s){return s.replace(lr,(t,e)=>!(e==="blob:")&&!(e==="file:")&&jn.includes(e)?t:t.replace(e+"//",`https://pw-${e.slice(0,-1)}--`))}const ur=/url\(\s*'([^']*)'\s*\)/ig,dr=/url\(\s*"([^"]*)"\s*\)/ig;function _r(s){const t=(e,n)=>n.includes("</")?e.replace(n,encodeURI(n)):e;return s.replace(ur,t).replace(dr,t)}class hr{constructor(t){L(this,"_maxSize");L(this,"_map");L(this,"_size");this._maxSize=t,this._map=new Map,this._size=0}getOrCompute(t,e){if(this._map.has(t)){const r=this._map.get(t);return this._map.delete(t),this._map.set(t,r),r.value}const n=e();for(;this._map.size&&this._size+n.size>this._maxSize;){const[r,i]=this._map.entries().next().value;this._size-=i.size,this._map.delete(r)}return this._map.set(t,n),this._size+=n.size,n.value}}class pr{constructor(){L(this,"_frameSnapshots",new Map);L(this,"_cache",new hr(1e8));L(this,"_contextToResources",new Map)}addResource(t,e){e.request.url=ft(e.request.url),this._ensureResourcesForContext(t).push(e)}addFrameSnapshot(t,e,n){for(const o of e.resourceOverrides)o.url=ft(o.url);let r=this._frameSnapshots.get(e.frameId);r||(r={raw:[],renderers:[]},this._frameSnapshots.set(e.frameId,r),e.isMainFrame&&this._frameSnapshots.set(e.pageId,r)),r.raw.push(e);const i=this._ensureResourcesForContext(t),a=new ir(this._cache,i,r.raw,n,r.raw.length-1);return r.renderers.push(a),a}snapshotByName(t,e){const n=this._frameSnapshots.get(t);return n==null?void 0:n.renderers.find(r=>r.snapshotName===e)}snapshotsForTest(){return[...this._frameSnapshots.keys()]}finalize(){for(const t of this._contextToResources.values())t.sort((e,n)=>(e._monotonicTime||0)-(n._monotonicTime||0))}_ensureResourcesForContext(t){let e=this._contextToResources.get(t);return e||(e=[],this._contextToResources.set(t,e)),e}}class Gn extends Error{constructor(t){super(t),this.name="TraceVersionError"}}const jt=8;class mr{constructor(t,e){L(this,"_contextEntry");L(this,"_snapshotStorage");L(this,"_actionMap",new Map);L(this,"_version");L(this,"_pageEntries",new Map);L(this,"_jsHandles",new Map);L(this,"_consoleObjects",new Map);this._contextEntry=t,this._snapshotStorage=e}appendTrace(t){for(const e of t.split(`
3
+ `))this._appendEvent(e)}actions(){return[...this._actionMap.values()]}_pageEntry(t){let e=this._pageEntries.get(t);return e||(e={pageId:t,screencastFrames:[]},this._pageEntries.set(t,e),this._contextEntry.pages.push(e)),e}_appendEvent(t){if(!t)return;const e=this._modernize(JSON.parse(t));for(const n of e)this._innerAppendEvent(n)}_innerAppendEvent(t){const e=this._contextEntry;switch(t.type){case"context-options":{if(t.version>jt)throw new Gn("The trace was created by a newer version of Playwright and is not supported by this version of the viewer. Please use latest Playwright to open the trace.");this._version=t.version,e.origin=t.origin,e.browserName=t.browserName,e.channel=t.channel,e.title=t.title,e.platform=t.platform,e.wallTime=t.wallTime,e.startTime=t.monotonicTime,e.sdkLanguage=t.sdkLanguage,e.options=t.options,e.testIdAttributeName=t.testIdAttributeName,e.contextId=t.contextId??"";break}case"screencast-frame":{this._pageEntry(t.pageId).screencastFrames.push(t);break}case"before":{this._actionMap.set(t.callId,{...t,type:"action",endTime:0,log:[]});break}case"input":{const n=this._actionMap.get(t.callId);n.inputSnapshot=t.inputSnapshot,n.point=t.point;break}case"log":{const n=this._actionMap.get(t.callId);if(!n)return;n.log.push({time:t.time,message:t.message});break}case"after":{const n=this._actionMap.get(t.callId);n.afterSnapshot=t.afterSnapshot,n.endTime=t.endTime,n.result=t.result,n.error=t.error,n.attachments=t.attachments,n.annotations=t.annotations,t.point&&(n.point=t.point);break}case"action":{this._actionMap.set(t.callId,{...t,log:[]});break}case"event":{e.events.push(t);break}case"stdout":{e.stdio.push(t);break}case"stderr":{e.stdio.push(t);break}case"error":{e.errors.push(t);break}case"console":{e.events.push(t);break}case"resource-snapshot":this._snapshotStorage.addResource(this._contextEntry.contextId,t.snapshot),e.resources.push(t.snapshot);break;case"frame-snapshot":this._snapshotStorage.addFrameSnapshot(this._contextEntry.contextId,t.snapshot,this._pageEntry(t.snapshot.pageId).screencastFrames);break}"pageId"in t&&t.pageId&&this._pageEntry(t.pageId),(t.type==="action"||t.type==="before")&&(e.startTime=Math.min(e.startTime,t.startTime)),(t.type==="action"||t.type==="after")&&(e.endTime=Math.max(e.endTime,t.endTime)),t.type==="event"&&(e.startTime=Math.min(e.startTime,t.time),e.endTime=Math.max(e.endTime,t.time)),t.type==="screencast-frame"&&(e.startTime=Math.min(e.startTime,t.timestamp),e.endTime=Math.max(e.endTime,t.timestamp))}_processedContextCreatedEvent(){return this._version!==void 0}_modernize(t){let e=this._version??t.version??6,n=[t];for(;e<jt;++e)n=this[`_modernize_${e}_to_${e+1}`].call(this,n);return n}_modernize_0_to_1(t){for(const e of t)e.type==="action"&&typeof e.metadata.error=="string"&&(e.metadata.error={error:{name:"Error",message:e.metadata.error}});return t}_modernize_1_to_2(t){var e;for(const n of t)n.type!=="frame-snapshot"||!n.snapshot.isMainFrame||(n.snapshot.viewport=((e=this._contextEntry.options)==null?void 0:e.viewport)||{width:1280,height:720});return t}_modernize_2_to_3(t){for(const e of t){if(e.type!=="resource-snapshot"||e.snapshot.request)continue;const n=e.snapshot;e.snapshot={_frameref:n.frameId,request:{url:n.url,method:n.method,headers:n.requestHeaders,postData:n.requestSha1?{_sha1:n.requestSha1}:void 0},response:{status:n.status,headers:n.responseHeaders,content:{mimeType:n.contentType,_sha1:n.responseSha1}},_monotonicTime:n.timestamp}}return t}_modernize_3_to_4(t){const e=[];for(const n of t){const r=this._modernize_event_3_to_4(n);r&&e.push(r)}return e}_modernize_event_3_to_4(t){var n,r,i,a;if(t.type!=="action"&&t.type!=="event")return t;const e=t.metadata;return e.internal||e.method.startsWith("tracing")?null:t.type==="event"?e.method==="__create__"&&e.type==="ConsoleMessage"?{type:"object",class:e.type,guid:e.params.guid,initializer:e.params.initializer}:{type:"event",time:e.startTime,class:e.type,method:e.method,params:e.params,pageId:e.pageId}:{type:"action",callId:e.id,startTime:e.startTime,endTime:e.endTime,apiName:e.apiName||e.type+"."+e.method,class:e.type,method:e.method,params:e.params,wallTime:e.wallTime||Date.now(),log:e.log,beforeSnapshot:(n=e.snapshots.find(o=>o.title==="before"))==null?void 0:n.snapshotName,inputSnapshot:(r=e.snapshots.find(o=>o.title==="input"))==null?void 0:r.snapshotName,afterSnapshot:(i=e.snapshots.find(o=>o.title==="after"))==null?void 0:i.snapshotName,error:(a=e.error)==null?void 0:a.error,result:e.result,point:e.point,pageId:e.pageId}}_modernize_4_to_5(t){const e=[];for(const n of t){const r=this._modernize_event_4_to_5(n);r&&e.push(r)}return e}_modernize_event_4_to_5(t){var e,n;if(t.type==="event"&&t.method==="__create__"&&t.class==="JSHandle"&&this._jsHandles.set(t.params.guid,t.params.initializer),t.type==="object"){if(t.class!=="ConsoleMessage")return null;const r=(e=t.initializer.args)==null?void 0:e.map(i=>{if(i.guid){const a=this._jsHandles.get(i.guid);return{preview:(a==null?void 0:a.preview)||"",value:""}}return{preview:i.preview||"",value:i.value||""}});return this._consoleObjects.set(t.guid,{type:t.initializer.type,text:t.initializer.text,location:t.initializer.location,args:r}),null}if(t.type==="event"&&t.method==="console"){const r=this._consoleObjects.get(((n=t.params.message)==null?void 0:n.guid)||"");return r?{type:"console",time:t.time,pageId:t.pageId,messageType:r.type,text:r.text,args:r.args,location:r.location}:null}return t}_modernize_5_to_6(t){const e=[];for(const n of t)if(e.push(n),!(n.type!=="after"||!n.log.length))for(const r of n.log)e.push({type:"log",callId:n.callId,message:r,time:-1});return e}_modernize_6_to_7(t){const e=[];if(!this._processedContextCreatedEvent()&&t[0].type!=="context-options"){const n={type:"context-options",origin:"testRunner",version:6,browserName:"",options:{},platform:"unknown",wallTime:0,monotonicTime:0,sdkLanguage:"javascript",contextId:""};e.push(n)}for(const n of t){if(n.type==="context-options"){e.push({...n,monotonicTime:0,origin:"library",contextId:""});continue}if(n.type==="before"||n.type==="action"){this._contextEntry.wallTime||(this._contextEntry.wallTime=n.wallTime);const r=n,i=n;i.stepId=`${r.apiName}@${r.wallTime}`,e.push(i)}else e.push(n)}return e}_modernize_7_to_8(t){const e=[];for(const n of t)if(n.type==="before"||n.type==="action"){const r=n,i=n;r.apiName&&(i.title=r.apiName,delete i.apiName),i.stepId=r.stepId??r.callId,e.push(i)}else e.push(n);return e}}class wr{constructor(){L(this,"contextEntries",[]);L(this,"_snapshotStorage");L(this,"_backend");L(this,"_resourceToContentType",new Map)}async load(t,e){var o,l;this._backend=t;const n=[];let r=!1;for(const _ of await this._backend.entryNames()){const f=_.match(/(.+)\.trace$/);f&&n.push(f[1]||""),_.includes("src@")&&(r=!0)}if(!n.length)throw new Error("Cannot find .trace file");this._snapshotStorage=new pr;const i=n.length*3;let a=0;for(const _ of n){const f=gr();f.hasSource=r;const m=new mr(f,this._snapshotStorage),b=await this._backend.readText(_+".trace")||"";m.appendTrace(b),e(++a,i);const A=await this._backend.readText(_+".network")||"";if(m.appendTrace(A),e(++a,i),f.actions=m.actions().sort((u,c)=>u.startTime-c.startTime),!t.isLive()){for(const u of f.actions.slice().reverse())if(!u.endTime&&!u.error)for(const c of f.actions)c.parentId===u.callId&&u.endTime<c.endTime&&(u.endTime=c.endTime)}const T=await this._backend.readText(_+".stacks");if(T){const u=tr(JSON.parse(T));for(const c of f.actions)c.stack=c.stack||u.get(c.callId)}e(++a,i);for(const u of f.resources)(o=u.request.postData)!=null&&o._sha1&&this._resourceToContentType.set(u.request.postData._sha1,Gt(u.request.postData.mimeType)),(l=u.response.content)!=null&&l._sha1&&this._resourceToContentType.set(u.response.content._sha1,Gt(u.response.content.mimeType));this.contextEntries.push(f)}this._snapshotStorage.finalize()}async hasEntry(t){return this._backend.hasEntry(t)}async resourceForSha1(t){const e=await this._backend.readBlob("resources/"+t),n=this._resourceToContentType.get(t);return!e||n===void 0||n==="x-unknown"?e:new Blob([e],{type:n})}storage(){return this._snapshotStorage}}function Gt(s){const t=s.match(/^(.*);\s*charset=.*$/);return t?t[1]:s}function gr(){return{origin:"testRunner",startTime:Number.MAX_SAFE_INTEGER,wallTime:Number.MAX_SAFE_INTEGER,endTime:0,browserName:"",options:{deviceScaleFactor:1,isMobile:!1,viewport:{width:1280,height:800}},pages:[],resources:[],actions:[],events:[],errors:[],stdio:[],hasSource:!1,contextId:""}}const br=15,M=0,se=1,yr=2,X=-2,B=-3,Yt=-4,re=-5,$=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],Yn=1440,Er=0,xr=4,Tr=9,Sr=5,Rr=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],Ar=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],Or=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],Ir=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,112,112],Cr=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],Nr=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],ae=15;function ut(){const s=this;let t,e,n,r,i,a;function o(_,f,m,b,A,T,u,c,d,h,p){let y,O,w,E,R,x,g,S,N,I,D,k,C,v,F;I=0,R=m;do n[_[f+I]]++,I++,R--;while(R!==0);if(n[0]==m)return u[0]=-1,c[0]=0,M;for(S=c[0],x=1;x<=ae&&n[x]===0;x++);for(g=x,S<x&&(S=x),R=ae;R!==0&&n[R]===0;R--);for(w=R,S>R&&(S=R),c[0]=S,v=1<<x;x<R;x++,v<<=1)if((v-=n[x])<0)return B;if((v-=n[R])<0)return B;for(n[R]+=v,a[1]=x=0,I=1,C=2;--R!==0;)a[C]=x+=n[I],C++,I++;R=0,I=0;do(x=_[f+I])!==0&&(p[a[x]++]=R),I++;while(++R<m);for(m=a[w],a[0]=R=0,I=0,E=-1,k=-S,i[0]=0,D=0,F=0;g<=w;g++)for(y=n[g];y--!==0;){for(;g>k+S;){if(E++,k+=S,F=w-k,F=F>S?S:F,(O=1<<(x=g-k))>y+1&&(O-=y+1,C=g,x<F))for(;++x<F&&!((O<<=1)<=n[++C]);)O-=n[C];if(F=1<<x,h[0]+F>Yn)return B;i[E]=D=h[0],h[0]+=F,E!==0?(a[E]=R,r[0]=x,r[1]=S,x=R>>>k-S,r[2]=D-i[E-1]-x,d.set(r,(i[E-1]+x)*3)):u[0]=D}for(r[1]=g-k,I>=m?r[0]=192:p[I]<b?(r[0]=p[I]<256?0:96,r[2]=p[I++]):(r[0]=T[p[I]-b]+16+64,r[2]=A[p[I++]-b]),O=1<<g-k,x=R>>>k;x<F;x+=O)d.set(r,(D+x)*3);for(x=1<<g-1;(R&x)!==0;x>>>=1)R^=x;for(R^=x,N=(1<<k)-1;(R&N)!=a[E];)E--,k-=S,N=(1<<k)-1}return v!==0&&w!=1?re:M}function l(_){let f;for(t||(t=[],e=[],n=new Int32Array(ae+1),r=[],i=new Int32Array(ae),a=new Int32Array(ae+1)),e.length<_&&(e=[]),f=0;f<_;f++)e[f]=0;for(f=0;f<ae+1;f++)n[f]=0;for(f=0;f<3;f++)r[f]=0;i.set(n.subarray(0,ae),0),a.set(n.subarray(0,ae+1),0)}s.inflate_trees_bits=function(_,f,m,b,A){let T;return l(19),t[0]=0,T=o(_,0,19,19,null,null,m,f,b,t,e),T==B?A.msg="oversubscribed dynamic bit lengths tree":(T==re||f[0]===0)&&(A.msg="incomplete dynamic bit lengths tree",T=B),T},s.inflate_trees_dynamic=function(_,f,m,b,A,T,u,c,d){let h;return l(288),t[0]=0,h=o(m,0,_,257,Or,Ir,T,b,c,t,e),h!=M||b[0]===0?(h==B?d.msg="oversubscribed literal/length tree":h!=Yt&&(d.msg="incomplete literal/length tree",h=B),h):(l(288),h=o(m,_,f,0,Cr,Nr,u,A,c,t,e),h!=M||A[0]===0&&_>257?(h==B?d.msg="oversubscribed distance tree":h==re?(d.msg="incomplete distance tree",h=B):h!=Yt&&(d.msg="empty distance tree with lengths",h=B),h):M)}}ut.inflate_trees_fixed=function(s,t,e,n){return s[0]=Tr,t[0]=Sr,e[0]=Rr,n[0]=Ar,M};const We=0,qt=1,Vt=2,Zt=3,Kt=4,Xt=5,$t=6,et=7,Jt=8,Be=9;function Dr(){const s=this;let t,e=0,n,r=0,i=0,a=0,o=0,l=0,_=0,f=0,m,b=0,A,T=0;function u(c,d,h,p,y,O,w,E){let R,x,g,S,N,I,D,k,C,v,F,Z,P,Q,U,H;D=E.next_in_index,k=E.avail_in,N=w.bitb,I=w.bitk,C=w.write,v=C<w.read?w.read-C-1:w.end-C,F=$[c],Z=$[d];do{for(;I<20;)k--,N|=(E.read_byte(D++)&255)<<I,I+=8;if(R=N&F,x=h,g=p,H=(g+R)*3,(S=x[H])===0){N>>=x[H+1],I-=x[H+1],w.win[C++]=x[H+2],v--;continue}do{if(N>>=x[H+1],I-=x[H+1],(S&16)!==0){for(S&=15,P=x[H+2]+(N&$[S]),N>>=S,I-=S;I<15;)k--,N|=(E.read_byte(D++)&255)<<I,I+=8;R=N&Z,x=y,g=O,H=(g+R)*3,S=x[H];do if(N>>=x[H+1],I-=x[H+1],(S&16)!==0){for(S&=15;I<S;)k--,N|=(E.read_byte(D++)&255)<<I,I+=8;if(Q=x[H+2]+(N&$[S]),N>>=S,I-=S,v-=P,C>=Q)U=C-Q,C-U>0&&2>C-U?(w.win[C++]=w.win[U++],w.win[C++]=w.win[U++],P-=2):(w.win.set(w.win.subarray(U,U+2),C),C+=2,U+=2,P-=2);else{U=C-Q;do U+=w.end;while(U<0);if(S=w.end-U,P>S){if(P-=S,C-U>0&&S>C-U)do w.win[C++]=w.win[U++];while(--S!==0);else w.win.set(w.win.subarray(U,U+S),C),C+=S,U+=S,S=0;U=0}}if(C-U>0&&P>C-U)do w.win[C++]=w.win[U++];while(--P!==0);else w.win.set(w.win.subarray(U,U+P),C),C+=P,U+=P,P=0;break}else if((S&64)===0)R+=x[H+2],R+=N&$[S],H=(g+R)*3,S=x[H];else return E.msg="invalid distance code",P=E.avail_in-k,P=I>>3<P?I>>3:P,k+=P,D-=P,I-=P<<3,w.bitb=N,w.bitk=I,E.avail_in=k,E.total_in+=D-E.next_in_index,E.next_in_index=D,w.write=C,B;while(!0);break}if((S&64)===0){if(R+=x[H+2],R+=N&$[S],H=(g+R)*3,(S=x[H])===0){N>>=x[H+1],I-=x[H+1],w.win[C++]=x[H+2],v--;break}}else return(S&32)!==0?(P=E.avail_in-k,P=I>>3<P?I>>3:P,k+=P,D-=P,I-=P<<3,w.bitb=N,w.bitk=I,E.avail_in=k,E.total_in+=D-E.next_in_index,E.next_in_index=D,w.write=C,se):(E.msg="invalid literal/length code",P=E.avail_in-k,P=I>>3<P?I>>3:P,k+=P,D-=P,I-=P<<3,w.bitb=N,w.bitk=I,E.avail_in=k,E.total_in+=D-E.next_in_index,E.next_in_index=D,w.write=C,B)}while(!0)}while(v>=258&&k>=10);return P=E.avail_in-k,P=I>>3<P?I>>3:P,k+=P,D-=P,I-=P<<3,w.bitb=N,w.bitk=I,E.avail_in=k,E.total_in+=D-E.next_in_index,E.next_in_index=D,w.write=C,M}s.init=function(c,d,h,p,y,O){t=We,_=c,f=d,m=h,b=p,A=y,T=O,n=null},s.proc=function(c,d,h){let p,y,O,w=0,E=0,R=0,x,g,S,N;for(R=d.next_in_index,x=d.avail_in,w=c.bitb,E=c.bitk,g=c.write,S=g<c.read?c.read-g-1:c.end-g;;)switch(t){case We:if(S>=258&&x>=10&&(c.bitb=w,c.bitk=E,d.avail_in=x,d.total_in+=R-d.next_in_index,d.next_in_index=R,c.write=g,h=u(_,f,m,b,A,T,c,d),R=d.next_in_index,x=d.avail_in,w=c.bitb,E=c.bitk,g=c.write,S=g<c.read?c.read-g-1:c.end-g,h!=M)){t=h==se?et:Be;break}i=_,n=m,r=b,t=qt;case qt:for(p=i;E<p;){if(x!==0)h=M;else return c.bitb=w,c.bitk=E,d.avail_in=x,d.total_in+=R-d.next_in_index,d.next_in_index=R,c.write=g,c.inflate_flush(d,h);x--,w|=(d.read_byte(R++)&255)<<E,E+=8}if(y=(r+(w&$[p]))*3,w>>>=n[y+1],E-=n[y+1],O=n[y],O===0){a=n[y+2],t=$t;break}if((O&16)!==0){o=O&15,e=n[y+2],t=Vt;break}if((O&64)===0){i=O,r=y/3+n[y+2];break}if((O&32)!==0){t=et;break}return t=Be,d.msg="invalid literal/length code",h=B,c.bitb=w,c.bitk=E,d.avail_in=x,d.total_in+=R-d.next_in_index,d.next_in_index=R,c.write=g,c.inflate_flush(d,h);case Vt:for(p=o;E<p;){if(x!==0)h=M;else return c.bitb=w,c.bitk=E,d.avail_in=x,d.total_in+=R-d.next_in_index,d.next_in_index=R,c.write=g,c.inflate_flush(d,h);x--,w|=(d.read_byte(R++)&255)<<E,E+=8}e+=w&$[p],w>>=p,E-=p,i=f,n=A,r=T,t=Zt;case Zt:for(p=i;E<p;){if(x!==0)h=M;else return c.bitb=w,c.bitk=E,d.avail_in=x,d.total_in+=R-d.next_in_index,d.next_in_index=R,c.write=g,c.inflate_flush(d,h);x--,w|=(d.read_byte(R++)&255)<<E,E+=8}if(y=(r+(w&$[p]))*3,w>>=n[y+1],E-=n[y+1],O=n[y],(O&16)!==0){o=O&15,l=n[y+2],t=Kt;break}if((O&64)===0){i=O,r=y/3+n[y+2];break}return t=Be,d.msg="invalid distance code",h=B,c.bitb=w,c.bitk=E,d.avail_in=x,d.total_in+=R-d.next_in_index,d.next_in_index=R,c.write=g,c.inflate_flush(d,h);case Kt:for(p=o;E<p;){if(x!==0)h=M;else return c.bitb=w,c.bitk=E,d.avail_in=x,d.total_in+=R-d.next_in_index,d.next_in_index=R,c.write=g,c.inflate_flush(d,h);x--,w|=(d.read_byte(R++)&255)<<E,E+=8}l+=w&$[p],w>>=p,E-=p,t=Xt;case Xt:for(N=g-l;N<0;)N+=c.end;for(;e!==0;){if(S===0&&(g==c.end&&c.read!==0&&(g=0,S=g<c.read?c.read-g-1:c.end-g),S===0&&(c.write=g,h=c.inflate_flush(d,h),g=c.write,S=g<c.read?c.read-g-1:c.end-g,g==c.end&&c.read!==0&&(g=0,S=g<c.read?c.read-g-1:c.end-g),S===0)))return c.bitb=w,c.bitk=E,d.avail_in=x,d.total_in+=R-d.next_in_index,d.next_in_index=R,c.write=g,c.inflate_flush(d,h);c.win[g++]=c.win[N++],S--,N==c.end&&(N=0),e--}t=We;break;case $t:if(S===0&&(g==c.end&&c.read!==0&&(g=0,S=g<c.read?c.read-g-1:c.end-g),S===0&&(c.write=g,h=c.inflate_flush(d,h),g=c.write,S=g<c.read?c.read-g-1:c.end-g,g==c.end&&c.read!==0&&(g=0,S=g<c.read?c.read-g-1:c.end-g),S===0)))return c.bitb=w,c.bitk=E,d.avail_in=x,d.total_in+=R-d.next_in_index,d.next_in_index=R,c.write=g,c.inflate_flush(d,h);h=M,c.win[g++]=a,S--,t=We;break;case et:if(E>7&&(E-=8,x++,R--),c.write=g,h=c.inflate_flush(d,h),g=c.write,S=g<c.read?c.read-g-1:c.end-g,c.read!=c.write)return c.bitb=w,c.bitk=E,d.avail_in=x,d.total_in+=R-d.next_in_index,d.next_in_index=R,c.write=g,c.inflate_flush(d,h);t=Jt;case Jt:return h=se,c.bitb=w,c.bitk=E,d.avail_in=x,d.total_in+=R-d.next_in_index,d.next_in_index=R,c.write=g,c.inflate_flush(d,h);case Be:return h=B,c.bitb=w,c.bitk=E,d.avail_in=x,d.total_in+=R-d.next_in_index,d.next_in_index=R,c.write=g,c.inflate_flush(d,h);default:return h=X,c.bitb=w,c.bitk=E,d.avail_in=x,d.total_in+=R-d.next_in_index,d.next_in_index=R,c.write=g,c.inflate_flush(d,h)}},s.free=function(){}}const Qt=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],ge=0,tt=1,zt=2,en=3,tn=4,nn=5,je=6,Ge=7,sn=8,pe=9;function Pr(s,t){const e=this;let n=ge,r=0,i=0,a=0,o;const l=[0],_=[0],f=new Dr;let m=0,b=new Int32Array(Yn*3);const A=0,T=new ut;e.bitk=0,e.bitb=0,e.win=new Uint8Array(t),e.end=t,e.read=0,e.write=0,e.reset=function(u,c){c&&(c[0]=A),n==je&&f.free(u),n=ge,e.bitk=0,e.bitb=0,e.read=e.write=0},e.reset(s,null),e.inflate_flush=function(u,c){let d,h,p;return h=u.next_out_index,p=e.read,d=(p<=e.write?e.write:e.end)-p,d>u.avail_out&&(d=u.avail_out),d!==0&&c==re&&(c=M),u.avail_out-=d,u.total_out+=d,u.next_out.set(e.win.subarray(p,p+d),h),h+=d,p+=d,p==e.end&&(p=0,e.write==e.end&&(e.write=0),d=e.write-p,d>u.avail_out&&(d=u.avail_out),d!==0&&c==re&&(c=M),u.avail_out-=d,u.total_out+=d,u.next_out.set(e.win.subarray(p,p+d),h),h+=d,p+=d),u.next_out_index=h,e.read=p,c},e.proc=function(u,c){let d,h,p,y,O,w,E,R;for(y=u.next_in_index,O=u.avail_in,h=e.bitb,p=e.bitk,w=e.write,E=w<e.read?e.read-w-1:e.end-w;;){let x,g,S,N,I,D,k,C;switch(n){case ge:for(;p<3;){if(O!==0)c=M;else return e.bitb=h,e.bitk=p,u.avail_in=O,u.total_in+=y-u.next_in_index,u.next_in_index=y,e.write=w,e.inflate_flush(u,c);O--,h|=(u.read_byte(y++)&255)<<p,p+=8}switch(d=h&7,m=d&1,d>>>1){case 0:h>>>=3,p-=3,d=p&7,h>>>=d,p-=d,n=tt;break;case 1:x=[],g=[],S=[[]],N=[[]],ut.inflate_trees_fixed(x,g,S,N),f.init(x[0],g[0],S[0],0,N[0],0),h>>>=3,p-=3,n=je;break;case 2:h>>>=3,p-=3,n=en;break;case 3:return h>>>=3,p-=3,n=pe,u.msg="invalid block type",c=B,e.bitb=h,e.bitk=p,u.avail_in=O,u.total_in+=y-u.next_in_index,u.next_in_index=y,e.write=w,e.inflate_flush(u,c)}break;case tt:for(;p<32;){if(O!==0)c=M;else return e.bitb=h,e.bitk=p,u.avail_in=O,u.total_in+=y-u.next_in_index,u.next_in_index=y,e.write=w,e.inflate_flush(u,c);O--,h|=(u.read_byte(y++)&255)<<p,p+=8}if((~h>>>16&65535)!=(h&65535))return n=pe,u.msg="invalid stored block lengths",c=B,e.bitb=h,e.bitk=p,u.avail_in=O,u.total_in+=y-u.next_in_index,u.next_in_index=y,e.write=w,e.inflate_flush(u,c);r=h&65535,h=p=0,n=r!==0?zt:m!==0?Ge:ge;break;case zt:if(O===0||E===0&&(w==e.end&&e.read!==0&&(w=0,E=w<e.read?e.read-w-1:e.end-w),E===0&&(e.write=w,c=e.inflate_flush(u,c),w=e.write,E=w<e.read?e.read-w-1:e.end-w,w==e.end&&e.read!==0&&(w=0,E=w<e.read?e.read-w-1:e.end-w),E===0)))return e.bitb=h,e.bitk=p,u.avail_in=O,u.total_in+=y-u.next_in_index,u.next_in_index=y,e.write=w,e.inflate_flush(u,c);if(c=M,d=r,d>O&&(d=O),d>E&&(d=E),e.win.set(u.read_buf(y,d),w),y+=d,O-=d,w+=d,E-=d,(r-=d)!==0)break;n=m!==0?Ge:ge;break;case en:for(;p<14;){if(O!==0)c=M;else return e.bitb=h,e.bitk=p,u.avail_in=O,u.total_in+=y-u.next_in_index,u.next_in_index=y,e.write=w,e.inflate_flush(u,c);O--,h|=(u.read_byte(y++)&255)<<p,p+=8}if(i=d=h&16383,(d&31)>29||(d>>5&31)>29)return n=pe,u.msg="too many length or distance symbols",c=B,e.bitb=h,e.bitk=p,u.avail_in=O,u.total_in+=y-u.next_in_index,u.next_in_index=y,e.write=w,e.inflate_flush(u,c);if(d=258+(d&31)+(d>>5&31),!o||o.length<d)o=[];else for(R=0;R<d;R++)o[R]=0;h>>>=14,p-=14,a=0,n=tn;case tn:for(;a<4+(i>>>10);){for(;p<3;){if(O!==0)c=M;else return e.bitb=h,e.bitk=p,u.avail_in=O,u.total_in+=y-u.next_in_index,u.next_in_index=y,e.write=w,e.inflate_flush(u,c);O--,h|=(u.read_byte(y++)&255)<<p,p+=8}o[Qt[a++]]=h&7,h>>>=3,p-=3}for(;a<19;)o[Qt[a++]]=0;if(l[0]=7,d=T.inflate_trees_bits(o,l,_,b,u),d!=M)return c=d,c==B&&(o=null,n=pe),e.bitb=h,e.bitk=p,u.avail_in=O,u.total_in+=y-u.next_in_index,u.next_in_index=y,e.write=w,e.inflate_flush(u,c);a=0,n=nn;case nn:for(;d=i,!(a>=258+(d&31)+(d>>5&31));){let v,F;for(d=l[0];p<d;){if(O!==0)c=M;else return e.bitb=h,e.bitk=p,u.avail_in=O,u.total_in+=y-u.next_in_index,u.next_in_index=y,e.write=w,e.inflate_flush(u,c);O--,h|=(u.read_byte(y++)&255)<<p,p+=8}if(d=b[(_[0]+(h&$[d]))*3+1],F=b[(_[0]+(h&$[d]))*3+2],F<16)h>>>=d,p-=d,o[a++]=F;else{for(R=F==18?7:F-14,v=F==18?11:3;p<d+R;){if(O!==0)c=M;else return e.bitb=h,e.bitk=p,u.avail_in=O,u.total_in+=y-u.next_in_index,u.next_in_index=y,e.write=w,e.inflate_flush(u,c);O--,h|=(u.read_byte(y++)&255)<<p,p+=8}if(h>>>=d,p-=d,v+=h&$[R],h>>>=R,p-=R,R=a,d=i,R+v>258+(d&31)+(d>>5&31)||F==16&&R<1)return o=null,n=pe,u.msg="invalid bit length repeat",c=B,e.bitb=h,e.bitk=p,u.avail_in=O,u.total_in+=y-u.next_in_index,u.next_in_index=y,e.write=w,e.inflate_flush(u,c);F=F==16?o[R-1]:0;do o[R++]=F;while(--v!==0);a=R}}if(_[0]=-1,I=[],D=[],k=[],C=[],I[0]=9,D[0]=6,d=i,d=T.inflate_trees_dynamic(257+(d&31),1+(d>>5&31),o,I,D,k,C,b,u),d!=M)return d==B&&(o=null,n=pe),c=d,e.bitb=h,e.bitk=p,u.avail_in=O,u.total_in+=y-u.next_in_index,u.next_in_index=y,e.write=w,e.inflate_flush(u,c);f.init(I[0],D[0],b,k[0],b,C[0]),n=je;case je:if(e.bitb=h,e.bitk=p,u.avail_in=O,u.total_in+=y-u.next_in_index,u.next_in_index=y,e.write=w,(c=f.proc(e,u,c))!=se)return e.inflate_flush(u,c);if(c=M,f.free(u),y=u.next_in_index,O=u.avail_in,h=e.bitb,p=e.bitk,w=e.write,E=w<e.read?e.read-w-1:e.end-w,m===0){n=ge;break}n=Ge;case Ge:if(e.write=w,c=e.inflate_flush(u,c),w=e.write,E=w<e.read?e.read-w-1:e.end-w,e.read!=e.write)return e.bitb=h,e.bitk=p,u.avail_in=O,u.total_in+=y-u.next_in_index,u.next_in_index=y,e.write=w,e.inflate_flush(u,c);n=sn;case sn:return c=se,e.bitb=h,e.bitk=p,u.avail_in=O,u.total_in+=y-u.next_in_index,u.next_in_index=y,e.write=w,e.inflate_flush(u,c);case pe:return c=B,e.bitb=h,e.bitk=p,u.avail_in=O,u.total_in+=y-u.next_in_index,u.next_in_index=y,e.write=w,e.inflate_flush(u,c);default:return c=X,e.bitb=h,e.bitk=p,u.avail_in=O,u.total_in+=y-u.next_in_index,u.next_in_index=y,e.write=w,e.inflate_flush(u,c)}}},e.free=function(u){e.reset(u,null),e.win=null,b=null},e.set_dictionary=function(u,c,d){e.win.set(u.subarray(c,c+d),0),e.read=e.write=d},e.sync_point=function(){return n==tt?1:0}}const kr=32,Lr=8,Fr=0,rn=1,an=2,on=3,cn=4,ln=5,nt=6,Se=7,fn=12,oe=13,Mr=[0,0,255,255];function vr(){const s=this;s.mode=0,s.method=0,s.was=[0],s.need=0,s.marker=0,s.wbits=0;function t(e){return!e||!e.istate?X:(e.total_in=e.total_out=0,e.msg=null,e.istate.mode=Se,e.istate.blocks.reset(e,null),M)}s.inflateEnd=function(e){return s.blocks&&s.blocks.free(e),s.blocks=null,M},s.inflateInit=function(e,n){return e.msg=null,s.blocks=null,n<8||n>15?(s.inflateEnd(e),X):(s.wbits=n,e.istate.blocks=new Pr(e,1<<n),t(e),M)},s.inflate=function(e,n){let r,i;if(!e||!e.istate||!e.next_in)return X;const a=e.istate;for(n=n==xr?re:M,r=re;;)switch(a.mode){case Fr:if(e.avail_in===0)return r;if(r=n,e.avail_in--,e.total_in++,((a.method=e.read_byte(e.next_in_index++))&15)!=Lr){a.mode=oe,e.msg="unknown compression method",a.marker=5;break}if((a.method>>4)+8>a.wbits){a.mode=oe,e.msg="invalid win size",a.marker=5;break}a.mode=rn;case rn:if(e.avail_in===0)return r;if(r=n,e.avail_in--,e.total_in++,i=e.read_byte(e.next_in_index++)&255,((a.method<<8)+i)%31!==0){a.mode=oe,e.msg="incorrect header check",a.marker=5;break}if((i&kr)===0){a.mode=Se;break}a.mode=an;case an:if(e.avail_in===0)return r;r=n,e.avail_in--,e.total_in++,a.need=(e.read_byte(e.next_in_index++)&255)<<24&4278190080,a.mode=on;case on:if(e.avail_in===0)return r;r=n,e.avail_in--,e.total_in++,a.need+=(e.read_byte(e.next_in_index++)&255)<<16&16711680,a.mode=cn;case cn:if(e.avail_in===0)return r;r=n,e.avail_in--,e.total_in++,a.need+=(e.read_byte(e.next_in_index++)&255)<<8&65280,a.mode=ln;case ln:return e.avail_in===0?r:(r=n,e.avail_in--,e.total_in++,a.need+=e.read_byte(e.next_in_index++)&255,a.mode=nt,yr);case nt:return a.mode=oe,e.msg="need dictionary",a.marker=0,X;case Se:if(r=a.blocks.proc(e,r),r==B){a.mode=oe,a.marker=0;break}if(r==M&&(r=n),r!=se)return r;r=n,a.blocks.reset(e,a.was),a.mode=fn;case fn:return e.avail_in=0,se;case oe:return B;default:return X}},s.inflateSetDictionary=function(e,n,r){let i=0,a=r;if(!e||!e.istate||e.istate.mode!=nt)return X;const o=e.istate;return a>=1<<o.wbits&&(a=(1<<o.wbits)-1,i=r-a),o.blocks.set_dictionary(n,i,a),o.mode=Se,M},s.inflateSync=function(e){let n,r,i,a,o;if(!e||!e.istate)return X;const l=e.istate;if(l.mode!=oe&&(l.mode=oe,l.marker=0),(n=e.avail_in)===0)return re;for(r=e.next_in_index,i=l.marker;n!==0&&i<4;)e.read_byte(r)==Mr[i]?i++:e.read_byte(r)!==0?i=0:i=4-i,r++,n--;return e.total_in+=r-e.next_in_index,e.next_in_index=r,e.avail_in=n,l.marker=i,i!=4?B:(a=e.total_in,o=e.total_out,t(e),e.total_in=a,e.total_out=o,l.mode=Se,M)},s.inflateSyncPoint=function(e){return!e||!e.istate||!e.istate.blocks?X:e.istate.blocks.sync_point()}}function qn(){}qn.prototype={inflateInit(s){const t=this;return t.istate=new vr,s||(s=br),t.istate.inflateInit(t,s)},inflate(s){const t=this;return t.istate?t.istate.inflate(t,s):X},inflateEnd(){const s=this;if(!s.istate)return X;const t=s.istate.inflateEnd(s);return s.istate=null,t},inflateSync(){const s=this;return s.istate?s.istate.inflateSync(s):X},inflateSetDictionary(s,t){const e=this;return e.istate?e.istate.inflateSetDictionary(e,s,t):X},read_byte(s){return this.next_in[s]},read_buf(s,t){return this.next_in.subarray(s,s+t)}};function Ur(s){const t=this,e=new qn,n=s&&s.chunkSize?Math.floor(s.chunkSize*2):128*1024,r=Er,i=new Uint8Array(n);let a=!1;e.inflateInit(),e.next_out=i,t.append=function(o,l){const _=[];let f,m,b=0,A=0,T=0;if(o.length!==0){e.next_in_index=0,e.next_in=o,e.avail_in=o.length;do{if(e.next_out_index=0,e.avail_out=n,e.avail_in===0&&!a&&(e.next_in_index=0,a=!0),f=e.inflate(r),a&&f===re){if(e.avail_in!==0)throw new Error("inflating: bad input")}else if(f!==M&&f!==se)throw new Error("inflating: "+e.msg);if((a||f===se)&&e.avail_in===o.length)throw new Error("inflating: bad input");e.next_out_index&&(e.next_out_index===n?_.push(new Uint8Array(i)):_.push(i.subarray(0,e.next_out_index))),T+=e.next_out_index,l&&e.next_in_index>0&&e.next_in_index!=b&&(l(e.next_in_index),b=e.next_in_index)}while(e.avail_in>0||e.avail_out===0);return _.length>1?(m=new Uint8Array(T),_.forEach(function(u){m.set(u,A),A+=u.length})):m=_[0]?new Uint8Array(_[0]):new Uint8Array,m}},t.flush=function(){e.inflateEnd()}}const me=4294967295,fe=65535,Hr=8,Wr=0,Br=99,jr=67324752,Vn=134695760,Gr=Vn,un=33639248,Yr=101010256,dn=101075792,qr=117853008,ne=22,st=20,rt=56,Vr=12,Zr=20,_n=4,Kr=1,Xr=39169,$r=10,Jr=1,Qr=21589,zr=28789,ei=25461,ti=6534,hn=1,ni=6,pn=8,mn=2048,wn=16,si=61440,ri=16384,ii=73,gn="/",it=30,ai=10,oi=14,ci=18,G=void 0,_e="undefined",ke="function";class bn{constructor(t){return class extends TransformStream{constructor(e,n){const r=new t(n);super({transform(i,a){a.enqueue(r.append(i))},flush(i){const a=r.flush();a&&i.enqueue(a)}})}}}}const li=64;let Zn=2;try{typeof navigator!=_e&&navigator.hardwareConcurrency&&(Zn=navigator.hardwareConcurrency)}catch{}const fi={chunkSize:512*1024,maxWorkers:Zn,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,workerScripts:G,CompressionStreamNative:typeof CompressionStream!=_e&&CompressionStream,DecompressionStreamNative:typeof DecompressionStream!=_e&&DecompressionStream},ue=Object.assign({},fi);function Kn(){return ue}function ui(s){return Math.max(s.chunkSize,li)}function Xn(s){const{baseURL:t,chunkSize:e,maxWorkers:n,terminateWorkerTimeout:r,useCompressionStream:i,useWebWorkers:a,Deflate:o,Inflate:l,CompressionStream:_,DecompressionStream:f,workerScripts:m}=s;if(ce("baseURL",t),ce("chunkSize",e),ce("maxWorkers",n),ce("terminateWorkerTimeout",r),ce("useCompressionStream",i),ce("useWebWorkers",a),o&&(ue.CompressionStream=new bn(o)),l&&(ue.DecompressionStream=new bn(l)),ce("CompressionStream",_),ce("DecompressionStream",f),m!==G){const{deflate:b,inflate:A}=m;if((b||A)&&(ue.workerScripts||(ue.workerScripts={})),b){if(!Array.isArray(b))throw new Error("workerScripts.deflate must be an array");ue.workerScripts.deflate=b}if(A){if(!Array.isArray(A))throw new Error("workerScripts.inflate must be an array");ue.workerScripts.inflate=A}}}function ce(s,t){t!==G&&(ue[s]=t)}function di(){return"application/octet-stream"}const $n=[];for(let s=0;s<256;s++){let t=s;for(let e=0;e<8;e++)t&1?t=t>>>1^3988292384:t=t>>>1;$n[s]=t}class Ke{constructor(t){this.crc=t||-1}append(t){let e=this.crc|0;for(let n=0,r=t.length|0;n<r;n++)e=e>>>8^$n[(e^t[n])&255];this.crc=e}get(){return~this.crc}}class Jn extends TransformStream{constructor(){let t;const e=new Ke;super({transform(n,r){e.append(n),r.enqueue(n)},flush(){const n=new Uint8Array(4);new DataView(n.buffer).setUint32(0,e.get()),t.value=n}}),t=this}}function _i(s){if(typeof TextEncoder==_e){s=unescape(encodeURIComponent(s));const t=new Uint8Array(s.length);for(let e=0;e<t.length;e++)t[e]=s.charCodeAt(e);return t}else return new TextEncoder().encode(s)}const K={concat(s,t){if(s.length===0||t.length===0)return s.concat(t);const e=s[s.length-1],n=K.getPartial(e);return n===32?s.concat(t):K._shiftRight(t,n,e|0,s.slice(0,s.length-1))},bitLength(s){const t=s.length;if(t===0)return 0;const e=s[t-1];return(t-1)*32+K.getPartial(e)},clamp(s,t){if(s.length*32<t)return s;s=s.slice(0,Math.ceil(t/32));const e=s.length;return t=t&31,e>0&&t&&(s[e-1]=K.partial(t,s[e-1]&2147483648>>t-1,1)),s},partial(s,t,e){return s===32?t:(e?t|0:t<<32-s)+s*1099511627776},getPartial(s){return Math.round(s/1099511627776)||32},_shiftRight(s,t,e,n){for(n===void 0&&(n=[]);t>=32;t-=32)n.push(e),e=0;if(t===0)return n.concat(s);for(let a=0;a<s.length;a++)n.push(e|s[a]>>>t),e=s[a]<<32-t;const r=s.length?s[s.length-1]:0,i=K.getPartial(r);return n.push(K.partial(t+i&31,t+i>32?e:n.pop(),1)),n}},Xe={bytes:{fromBits(s){const e=K.bitLength(s)/8,n=new Uint8Array(e);let r;for(let i=0;i<e;i++)(i&3)===0&&(r=s[i/4]),n[i]=r>>>24,r<<=8;return n},toBits(s){const t=[];let e,n=0;for(e=0;e<s.length;e++)n=n<<8|s[e],(e&3)===3&&(t.push(n),n=0);return e&3&&t.push(K.partial(8*(e&3),n)),t}}},Qn={};Qn.sha1=class{constructor(s){const t=this;t.blockSize=512,t._init=[1732584193,4023233417,2562383102,271733878,3285377520],t._key=[1518500249,1859775393,2400959708,3395469782],s?(t._h=s._h.slice(0),t._buffer=s._buffer.slice(0),t._length=s._length):t.reset()}reset(){const s=this;return s._h=s._init.slice(0),s._buffer=[],s._length=0,s}update(s){const t=this;typeof s=="string"&&(s=Xe.utf8String.toBits(s));const e=t._buffer=K.concat(t._buffer,s),n=t._length,r=t._length=n+K.bitLength(s);if(r>9007199254740991)throw new Error("Cannot hash more than 2^53 - 1 bits");const i=new Uint32Array(e);let a=0;for(let o=t.blockSize+n-(t.blockSize+n&t.blockSize-1);o<=r;o+=t.blockSize)t._block(i.subarray(16*a,16*(a+1))),a+=1;return e.splice(0,16*a),t}finalize(){const s=this;let t=s._buffer;const e=s._h;t=K.concat(t,[K.partial(1,1)]);for(let n=t.length+2;n&15;n++)t.push(0);for(t.push(Math.floor(s._length/4294967296)),t.push(s._length|0);t.length;)s._block(t.splice(0,16));return s.reset(),e}_f(s,t,e,n){if(s<=19)return t&e|~t&n;if(s<=39)return t^e^n;if(s<=59)return t&e|t&n|e&n;if(s<=79)return t^e^n}_S(s,t){return t<<s|t>>>32-s}_block(s){const t=this,e=t._h,n=Array(80);for(let _=0;_<16;_++)n[_]=s[_];let r=e[0],i=e[1],a=e[2],o=e[3],l=e[4];for(let _=0;_<=79;_++){_>=16&&(n[_]=t._S(1,n[_-3]^n[_-8]^n[_-14]^n[_-16]));const f=t._S(5,r)+t._f(_,i,a,o)+l+n[_]+t._key[Math.floor(_/20)]|0;l=o,o=a,a=t._S(30,i),i=r,r=f}e[0]=e[0]+r|0,e[1]=e[1]+i|0,e[2]=e[2]+a|0,e[3]=e[3]+o|0,e[4]=e[4]+l|0}};const zn={};zn.aes=class{constructor(s){const t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();const e=t._tables[0][4],n=t._tables[1],r=s.length;let i,a,o,l=1;if(r!==4&&r!==6&&r!==8)throw new Error("invalid aes key size");for(t._key=[a=s.slice(0),o=[]],i=r;i<4*r+28;i++){let _=a[i-1];(i%r===0||r===8&&i%r===4)&&(_=e[_>>>24]<<24^e[_>>16&255]<<16^e[_>>8&255]<<8^e[_&255],i%r===0&&(_=_<<8^_>>>24^l<<24,l=l<<1^(l>>7)*283)),a[i]=a[i-r]^_}for(let _=0;i;_++,i--){const f=a[_&3?i:i-4];i<=4||_<4?o[_]=f:o[_]=n[0][e[f>>>24]]^n[1][e[f>>16&255]]^n[2][e[f>>8&255]]^n[3][e[f&255]]}}encrypt(s){return this._crypt(s,0)}decrypt(s){return this._crypt(s,1)}_precompute(){const s=this._tables[0],t=this._tables[1],e=s[4],n=t[4],r=[],i=[];let a,o,l,_;for(let f=0;f<256;f++)i[(r[f]=f<<1^(f>>7)*283)^f]=f;for(let f=a=0;!e[f];f^=o||1,a=i[a]||1){let m=a^a<<1^a<<2^a<<3^a<<4;m=m>>8^m&255^99,e[f]=m,n[m]=f,_=r[l=r[o=r[f]]];let b=_*16843009^l*65537^o*257^f*16843008,A=r[m]*257^m*16843008;for(let T=0;T<4;T++)s[T][f]=A=A<<24^A>>>8,t[T][m]=b=b<<24^b>>>8}for(let f=0;f<5;f++)s[f]=s[f].slice(0),t[f]=t[f].slice(0)}_crypt(s,t){if(s.length!==4)throw new Error("invalid aes block size");const e=this._key[t],n=e.length/4-2,r=[0,0,0,0],i=this._tables[t],a=i[0],o=i[1],l=i[2],_=i[3],f=i[4];let m=s[0]^e[0],b=s[t?3:1]^e[1],A=s[2]^e[2],T=s[t?1:3]^e[3],u=4,c,d,h;for(let p=0;p<n;p++)c=a[m>>>24]^o[b>>16&255]^l[A>>8&255]^_[T&255]^e[u],d=a[b>>>24]^o[A>>16&255]^l[T>>8&255]^_[m&255]^e[u+1],h=a[A>>>24]^o[T>>16&255]^l[m>>8&255]^_[b&255]^e[u+2],T=a[T>>>24]^o[m>>16&255]^l[b>>8&255]^_[A&255]^e[u+3],u+=4,m=c,b=d,A=h;for(let p=0;p<4;p++)r[t?3&-p:p]=f[m>>>24]<<24^f[b>>16&255]<<16^f[A>>8&255]<<8^f[T&255]^e[u++],c=m,m=b,b=A,A=T,T=c;return r}};const hi={getRandomValues(s){const t=new Uint32Array(s.buffer),e=n=>{let r=987654321;const i=4294967295;return function(){return r=36969*(r&65535)+(r>>16)&i,n=18e3*(n&65535)+(n>>16)&i,(((r<<16)+n&i)/4294967296+.5)*(Math.random()>.5?1:-1)}};for(let n=0,r;n<s.length;n+=4){const i=e((r||Math.random())*4294967296);r=i()*987654071,t[n/4]=i()*4294967296|0}return s}},es={};es.ctrGladman=class{constructor(s,t){this._prf=s,this._initIv=t,this._iv=t}reset(){this._iv=this._initIv}update(s){return this.calculate(this._prf,s,this._iv)}incWord(s){if((s>>24&255)===255){let t=s>>16&255,e=s>>8&255,n=s&255;t===255?(t=0,e===255?(e=0,n===255?n=0:++n):++e):++t,s=0,s+=t<<16,s+=e<<8,s+=n}else s+=1<<24;return s}incCounter(s){(s[0]=this.incWord(s[0]))===0&&(s[1]=this.incWord(s[1]))}calculate(s,t,e){let n;if(!(n=t.length))return[];const r=K.bitLength(t);for(let i=0;i<n;i+=4){this.incCounter(e);const a=s.encrypt(e);t[i]^=a[0],t[i+1]^=a[1],t[i+2]^=a[2],t[i+3]^=a[3]}return K.clamp(t,r)}};const we={importKey(s){return new we.hmacSha1(Xe.bytes.toBits(s))},pbkdf2(s,t,e,n){if(e=e||1e4,n<0||e<0)throw new Error("invalid params to pbkdf2");const r=(n>>5)+1<<2;let i,a,o,l,_;const f=new ArrayBuffer(r),m=new DataView(f);let b=0;const A=K;for(t=Xe.bytes.toBits(t),_=1;b<(r||1);_++){for(i=a=s.encrypt(A.concat(t,[_])),o=1;o<e;o++)for(a=s.encrypt(a),l=0;l<a.length;l++)i[l]^=a[l];for(o=0;b<(r||1)&&o<i.length;o++)m.setInt32(b,i[o]),b+=4}return f.slice(0,n/8)}};we.hmacSha1=class{constructor(s){const t=this,e=t._hash=Qn.sha1,n=[[],[]];t._baseHash=[new e,new e];const r=t._baseHash[0].blockSize/32;s.length>r&&(s=new e().update(s).finalize());for(let i=0;i<r;i++)n[0][i]=s[i]^909522486,n[1][i]=s[i]^1549556828;t._baseHash[0].update(n[0]),t._baseHash[1].update(n[1]),t._resultHash=new e(t._baseHash[0])}reset(){const s=this;s._resultHash=new s._hash(s._baseHash[0]),s._updated=!1}update(s){const t=this;t._updated=!0,t._resultHash.update(s)}digest(){const s=this,t=s._resultHash.finalize(),e=new s._hash(s._baseHash[1]).update(t).finalize();return s.reset(),e}encrypt(s){if(this._updated)throw new Error("encrypt on already updated hmac called!");return this.update(s),this.digest(s)}};const pi=typeof crypto!=_e&&typeof crypto.getRandomValues==ke,xt="Invalid password",Tt="Invalid signature",St="zipjs-abort-check-password";function ts(s){return pi?crypto.getRandomValues(s):hi.getRandomValues(s)}const be=16,mi="raw",ns={name:"PBKDF2"},wi={name:"HMAC"},gi="SHA-1",bi=Object.assign({hash:wi},ns),dt=Object.assign({iterations:1e3,hash:{name:gi}},ns),yi=["deriveBits"],Ie=[8,12,16],Re=[16,24,32],le=10,Ei=[0,0,0,0],Je=typeof crypto!=_e,Le=Je&&crypto.subtle,ss=Je&&typeof Le!=_e,ee=Xe.bytes,xi=zn.aes,Ti=es.ctrGladman,Si=we.hmacSha1;let yn=Je&&ss&&typeof Le.importKey==ke,En=Je&&ss&&typeof Le.deriveBits==ke;class Ri extends TransformStream{constructor({password:t,rawPassword:e,signed:n,encryptionStrength:r,checkPasswordOnly:i}){super({start(){Object.assign(this,{ready:new Promise(a=>this.resolveReady=a),password:as(t,e),signed:n,strength:r-1,pending:new Uint8Array})},async transform(a,o){const l=this,{password:_,strength:f,resolveReady:m,ready:b}=l;_?(await Oi(l,f,_,J(a,0,Ie[f]+2)),a=J(a,Ie[f]+2),i?o.error(new Error(St)):m()):await b;const A=new Uint8Array(a.length-le-(a.length-le)%be);o.enqueue(rs(l,a,A,0,le,!0))},async flush(a){const{signed:o,ctr:l,hmac:_,pending:f,ready:m}=this;if(_&&l){await m;const b=J(f,0,f.length-le),A=J(f,f.length-le);let T=new Uint8Array;if(b.length){const u=Ne(ee,b);_.update(u);const c=l.update(u);T=Ce(ee,c)}if(o){const u=J(Ce(ee,_.digest()),0,le);for(let c=0;c<le;c++)if(u[c]!=A[c])throw new Error(Tt)}a.enqueue(T)}}})}}class Ai extends TransformStream{constructor({password:t,rawPassword:e,encryptionStrength:n}){let r;super({start(){Object.assign(this,{ready:new Promise(i=>this.resolveReady=i),password:as(t,e),strength:n-1,pending:new Uint8Array})},async transform(i,a){const o=this,{password:l,strength:_,resolveReady:f,ready:m}=o;let b=new Uint8Array;l?(b=await Ii(o,_,l),f()):await m;const A=new Uint8Array(b.length+i.length-i.length%be);A.set(b,0),a.enqueue(rs(o,i,A,b.length,0))},async flush(i){const{ctr:a,hmac:o,pending:l,ready:_}=this;if(o&&a){await _;let f=new Uint8Array;if(l.length){const m=a.update(Ne(ee,l));o.update(m),f=Ce(ee,m)}r.signature=Ce(ee,o.digest()).slice(0,le),i.enqueue(Rt(f,r.signature))}}}),r=this}}function rs(s,t,e,n,r,i){const{ctr:a,hmac:o,pending:l}=s,_=t.length-r;l.length&&(t=Rt(l,t),e=Di(e,_-_%be));let f;for(f=0;f<=_-be;f+=be){const m=Ne(ee,J(t,f,f+be));i&&o.update(m);const b=a.update(m);i||o.update(b),e.set(Ce(ee,b),f+n)}return s.pending=J(t,f),e}async function Oi(s,t,e,n){const r=await is(s,t,e,J(n,0,Ie[t])),i=J(n,Ie[t]);if(r[0]!=i[0]||r[1]!=i[1])throw new Error(xt)}async function Ii(s,t,e){const n=ts(new Uint8Array(Ie[t])),r=await is(s,t,e,n);return Rt(n,r)}async function is(s,t,e,n){s.password=null;const r=await Ci(mi,e,bi,!1,yi),i=await Ni(Object.assign({salt:n},dt),r,8*(Re[t]*2+2)),a=new Uint8Array(i),o=Ne(ee,J(a,0,Re[t])),l=Ne(ee,J(a,Re[t],Re[t]*2)),_=J(a,Re[t]*2);return Object.assign(s,{keys:{key:o,authentication:l,passwordVerification:_},ctr:new Ti(new xi(o),Array.from(Ei)),hmac:new Si(l)}),_}async function Ci(s,t,e,n,r){if(yn)try{return await Le.importKey(s,t,e,n,r)}catch{return yn=!1,we.importKey(t)}else return we.importKey(t)}async function Ni(s,t,e){if(En)try{return await Le.deriveBits(s,t,e)}catch{return En=!1,we.pbkdf2(t,s.salt,dt.iterations,e)}else return we.pbkdf2(t,s.salt,dt.iterations,e)}function as(s,t){return t===G?_i(s):t}function Rt(s,t){let e=s;return s.length+t.length&&(e=new Uint8Array(s.length+t.length),e.set(s,0),e.set(t,s.length)),e}function Di(s,t){if(t&&t>s.length){const e=s;s=new Uint8Array(t),s.set(e,0)}return s}function J(s,t,e){return s.subarray(t,e)}function Ce(s,t){return s.fromBits(t)}function Ne(s,t){return s.toBits(t)}const Oe=12;class Pi extends TransformStream{constructor({password:t,passwordVerification:e,checkPasswordOnly:n}){super({start(){Object.assign(this,{password:t,passwordVerification:e}),os(this,t)},transform(r,i){const a=this;if(a.password){const o=xn(a,r.subarray(0,Oe));if(a.password=null,o.at(-1)!=a.passwordVerification)throw new Error(xt);r=r.subarray(Oe)}n?i.error(new Error(St)):i.enqueue(xn(a,r))}})}}class ki extends TransformStream{constructor({password:t,passwordVerification:e}){super({start(){Object.assign(this,{password:t,passwordVerification:e}),os(this,t)},transform(n,r){const i=this;let a,o;if(i.password){i.password=null;const l=ts(new Uint8Array(Oe));l[Oe-1]=i.passwordVerification,a=new Uint8Array(n.length+l.length),a.set(Tn(i,l),0),o=Oe}else a=new Uint8Array(n.length),o=0;a.set(Tn(i,n),o),r.enqueue(a)}})}}function xn(s,t){const e=new Uint8Array(t.length);for(let n=0;n<t.length;n++)e[n]=cs(s)^t[n],At(s,e[n]);return e}function Tn(s,t){const e=new Uint8Array(t.length);for(let n=0;n<t.length;n++)e[n]=cs(s)^t[n],At(s,t[n]);return e}function os(s,t){const e=[305419896,591751049,878082192];Object.assign(s,{keys:e,crcKey0:new Ke(e[0]),crcKey2:new Ke(e[2])});for(let n=0;n<t.length;n++)At(s,t.charCodeAt(n))}function At(s,t){let[e,n,r]=s.keys;s.crcKey0.append([t]),e=~s.crcKey0.get(),n=Sn(Math.imul(Sn(n+ls(e)),134775813)+1),s.crcKey2.append([n>>>24]),r=~s.crcKey2.get(),s.keys=[e,n,r]}function cs(s){const t=s.keys[2]|2;return ls(Math.imul(t,t^1)>>>8)}function ls(s){return s&255}function Sn(s){return s&4294967295}const Ot="Invalid uncompressed size",Rn="deflate-raw";class Li extends TransformStream{constructor(t,{chunkSize:e,CompressionStream:n,CompressionStreamNative:r}){super({});const{compressed:i,encrypted:a,useCompressionStream:o,zipCrypto:l,signed:_,level:f}=t,m=this;let b,A,T=super.readable;(!a||l)&&_&&(b=new Jn,T=ie(T,b)),i&&(T=us(T,o,{level:f,chunkSize:e},r,n)),a&&(l?T=ie(T,new ki(t)):(A=new Ai(t),T=ie(T,A))),fs(m,T,()=>{let u;a&&!l&&(u=A.signature),(!a||l)&&_&&(u=new DataView(b.value.buffer).getUint32(0)),m.signature=u})}}class Fi extends TransformStream{constructor(t,{chunkSize:e,DecompressionStream:n,DecompressionStreamNative:r}){super({});const{zipCrypto:i,encrypted:a,signed:o,signature:l,compressed:_,useCompressionStream:f}=t;let m,b,A=super.readable;a&&(i?A=ie(A,new Pi(t)):(b=new Ri(t),A=ie(A,b))),_&&(A=us(A,f,{chunkSize:e},r,n)),(!a||i)&&o&&(m=new Jn,A=ie(A,m)),fs(this,A,()=>{if((!a||i)&&o){const T=new DataView(m.value.buffer);if(l!=T.getUint32(0,!1))throw new Error(Tt)}})}}function fs(s,t,e){t=ie(t,new TransformStream({flush:e})),Object.defineProperty(s,"readable",{get(){return t}})}function us(s,t,e,n,r){try{const i=t&&n?n:r;s=ie(s,new i(Rn,e))}catch(i){if(t)s=ie(s,new r(Rn,e));else throw i}return s}function ie(s,t){return s.pipeThrough(t)}const Mi="message",vi="start",Ui="pull",An="data",Hi="ack",On="close",Wi="deflate",ds="inflate";class Bi extends TransformStream{constructor(t,e){super({});const n=this,{codecType:r}=t;let i;r.startsWith(Wi)?i=Li:r.startsWith(ds)&&(i=Fi),n.outputSize=0;let a=0;const o=new i(t,e),l=super.readable,_=new TransformStream({transform(m,b){m&&m.length&&(a+=m.length,b.enqueue(m))},flush(){Object.assign(n,{inputSize:a})}}),f=new TransformStream({transform(m,b){if(m&&m.length&&(b.enqueue(m),n.outputSize+=m.length,t.outputSize&&n.outputSize>t.outputSize))throw new Error(Ot)},flush(){const{signature:m}=o;Object.assign(n,{signature:m,inputSize:a})}});Object.defineProperty(n,"readable",{get(){return l.pipeThrough(_).pipeThrough(o).pipeThrough(f)}})}}class ji extends TransformStream{constructor(t){let e;super({transform:n,flush(r){e&&e.length&&r.enqueue(e)}});function n(r,i){if(e){const a=new Uint8Array(e.length+r.length);a.set(e),a.set(r,e.length),r=a,e=null}r.length>t?(i.enqueue(r.slice(0,t)),n(r.slice(t),i)):e=r}}}let _s=typeof Worker!=_e;class at{constructor(t,{readable:e,writable:n},{options:r,config:i,streamOptions:a,useWebWorkers:o,transferStreams:l,scripts:_},f){const{signal:m}=a;return Object.assign(t,{busy:!0,readable:e.pipeThrough(new ji(i.chunkSize)).pipeThrough(new Gi(a),{signal:m}),writable:n,options:Object.assign({},r),scripts:_,transferStreams:l,terminate(){return new Promise(b=>{const{worker:A,busy:T}=t;A?(T?t.resolveTerminated=b:(A.terminate(),b()),t.interface=null):b()})},onTaskFinished(){const{resolveTerminated:b}=t;b&&(t.resolveTerminated=null,t.terminated=!0,t.worker.terminate(),b()),t.busy=!1,f(t)}}),(o&&_s?Yi:hs)(t,i)}}class Gi extends TransformStream{constructor({onstart:t,onprogress:e,size:n,onend:r}){let i=0;super({async start(){t&&await ot(t,n)},async transform(a,o){i+=a.length,e&&await ot(e,i,n),o.enqueue(a)},async flush(){r&&await ot(r,i)}})}}async function ot(s,...t){try{await s(...t)}catch{}}function hs(s,t){return{run:()=>qi(s,t)}}function Yi(s,t){const{baseURL:e,chunkSize:n}=t;if(!s.interface){let r;try{r=Ki(s.scripts[0],e,s)}catch{return _s=!1,hs(s,t)}Object.assign(s,{worker:r,interface:{run:()=>Vi(s,{chunkSize:n})}})}return s.interface}async function qi({options:s,readable:t,writable:e,onTaskFinished:n},r){let i;try{i=new Bi(s,r),await t.pipeThrough(i).pipeTo(e,{preventClose:!0,preventAbort:!0});const{signature:a,inputSize:o,outputSize:l}=i;return{signature:a,inputSize:o,outputSize:l}}catch(a){throw i&&(a.outputSize=i.outputSize),a}finally{n()}}async function Vi(s,t){let e,n;const r=new Promise((b,A)=>{e=b,n=A});Object.assign(s,{reader:null,writer:null,resolveResult:e,rejectResult:n,result:r});const{readable:i,options:a,scripts:o}=s,{writable:l,closed:_}=Zi(s.writable),f=qe({type:vi,scripts:o.slice(1),options:a,config:t,readable:i,writable:l},s);f||Object.assign(s,{reader:i.getReader(),writer:l.getWriter()});const m=await r;return f||await l.getWriter().close(),await _,m}function Zi(s){let t;const e=new Promise(r=>t=r);return{writable:new WritableStream({async write(r){const i=s.getWriter();await i.ready,await i.write(r),i.releaseLock()},close(){t()},abort(r){return s.getWriter().abort(r)}}),closed:e}}let In=!0,Cn=!0;function Ki(s,t,e){const n={type:"module"};let r,i;typeof s==ke&&(s=s());try{r=new URL(s,t)}catch{r=s}if(In)try{i=new Worker(r)}catch{In=!1,i=new Worker(r,n)}else i=new Worker(r,n);return i.addEventListener(Mi,a=>Xi(a,e)),i}function qe(s,{worker:t,writer:e,onTaskFinished:n,transferStreams:r}){try{const{value:i,readable:a,writable:o}=s,l=[];if(i&&(i.byteLength<i.buffer.byteLength?s.value=i.buffer.slice(0,i.byteLength):s.value=i.buffer,l.push(s.value)),r&&Cn?(a&&l.push(a),o&&l.push(o)):s.readable=s.writable=null,l.length)try{return t.postMessage(s,l),!0}catch{Cn=!1,s.readable=s.writable=null,t.postMessage(s)}else t.postMessage(s)}catch(i){throw e&&e.releaseLock(),n(),i}}async function Xi({data:s},t){const{type:e,value:n,messageId:r,result:i,error:a}=s,{reader:o,writer:l,resolveResult:_,rejectResult:f,onTaskFinished:m}=t;try{if(a){const{message:A,stack:T,code:u,name:c,outputSize:d}=a,h=new Error(A);Object.assign(h,{stack:T,code:u,name:c,outputSize:d}),b(h)}else{if(e==Ui){const{value:A,done:T}=await o.read();qe({type:An,value:A,done:T,messageId:r},t)}e==An&&(await l.ready,await l.write(new Uint8Array(n)),qe({type:Hi,messageId:r},t)),e==On&&b(null,i)}}catch(A){qe({type:On,messageId:r},t),b(A)}function b(A,T){A?f(A):_(T),l&&l.releaseLock(),m()}}let de=[];const ct=[];let Nn=0;async function $i(s,t){const{options:e,config:n}=t,{transferStreams:r,useWebWorkers:i,useCompressionStream:a,codecType:o,compressed:l,signed:_,encrypted:f}=e,{workerScripts:m,maxWorkers:b}=n;t.transferStreams=r||r===G;const A=!l&&!_&&!f&&!t.transferStreams;return t.useWebWorkers=!A&&(i||i===G&&n.useWebWorkers),t.scripts=t.useWebWorkers&&m?m[o]:[],e.useCompressionStream=a||a===G&&n.useCompressionStream,(await T()).run();async function T(){const c=de.find(d=>!d.busy);if(c)return _t(c),new at(c,s,t,u);if(de.length<b){const d={indexWorker:Nn};return Nn++,de.push(d),new at(d,s,t,u)}else return new Promise(d=>ct.push({resolve:d,stream:s,workerOptions:t}))}function u(c){if(ct.length){const[{resolve:d,stream:h,workerOptions:p}]=ct.splice(0,1);d(new at(c,h,p,u))}else c.worker?(_t(c),Ji(c,t)):de=de.filter(d=>d!=c)}}function Ji(s,t){const{config:e}=t,{terminateWorkerTimeout:n}=e;Number.isFinite(n)&&n>=0&&(s.terminated?s.terminated=!1:s.terminateTimeout=setTimeout(async()=>{de=de.filter(r=>r!=s);try{await s.terminate()}catch{}},n))}function _t(s){const{terminateTimeout:t}=s;t&&(clearTimeout(t),s.terminateTimeout=null)}async function Qi(){await Promise.allSettled(de.map(s=>(_t(s),s.terminate())))}const ps="HTTP error ",Fe="HTTP Range not supported",ms="Writer iterator completed too soon",ws="Writer not initialized",zi="text/plain",ea="Content-Length",ta="Content-Range",na="Accept-Ranges",sa="Range",ra="Content-Type",ia="HEAD",It="GET",gs="bytes",aa=64*1024,Ct="writable";class Qe{constructor(){this.size=0}init(){this.initialized=!0}}class he extends Qe{get readable(){const t=this,{chunkSize:e=aa}=t,n=new ReadableStream({start(){this.chunkOffset=0},async pull(r){const{offset:i=0,size:a,diskNumberStart:o}=n,{chunkOffset:l}=this,_=a===G?e:Math.min(e,a-l),f=await Y(t,i+l,_,o);r.enqueue(f),l+e>a||a===G&&!f.length&&_?r.close():this.chunkOffset+=e}});return n}}class Nt extends Qe{constructor(){super();const t=this,e=new WritableStream({write(n){if(!t.initialized)throw new Error(ws);return t.writeUint8Array(n)}});Object.defineProperty(t,Ct,{get(){return e}})}writeUint8Array(){}}class oa extends he{constructor(t){super();let e=t.length;for(;t.charAt(e-1)=="=";)e--;const n=t.indexOf(",")+1;Object.assign(this,{dataURI:t,dataStart:n,size:Math.floor((e-n)*.75)})}readUint8Array(t,e){const{dataStart:n,dataURI:r}=this,i=new Uint8Array(e),a=Math.floor(t/3)*4,o=atob(r.substring(a+n,Math.ceil((t+e)/3)*4+n)),l=t-Math.floor(a/4)*3;let _=0;for(let f=l;f<l+e&&f<o.length;f++)i[f-l]=o.charCodeAt(f),_++;return _<i.length?i.subarray(0,_):i}}class ca extends Nt{constructor(t){super(),Object.assign(this,{data:"data:"+(t||"")+";base64,",pending:[]})}writeUint8Array(t){const e=this;let n=0,r=e.pending;const i=e.pending.length;for(e.pending="",n=0;n<Math.floor((i+t.length)/3)*3-i;n++)r+=String.fromCharCode(t[n]);for(;n<t.length;n++)e.pending+=String.fromCharCode(t[n]);r.length&&(r.length>2?e.data+=btoa(r):e.pending+=r)}getData(){return this.data+btoa(this.pending)}}class Dt extends he{constructor(t){super(),Object.assign(this,{blob:t,size:t.size})}async readUint8Array(t,e){const n=this,r=t+e;let a=await(t||r<n.size?n.blob.slice(t,r):n.blob).arrayBuffer();return a.byteLength>e&&(a=a.slice(t,r)),new Uint8Array(a)}}class bs extends Qe{constructor(t){super();const e=this,n=new TransformStream,r=[];t&&r.push([ra,t]),Object.defineProperty(e,Ct,{get(){return n.writable}}),e.blob=new Response(n.readable,{headers:r}).blob()}getData(){return this.blob}}class la extends Dt{constructor(t){super(new Blob([t],{type:zi}))}}class fa extends bs{constructor(t){super(t),Object.assign(this,{encoding:t,utf8:!t||t.toLowerCase()=="utf-8"})}async getData(){const{encoding:t,utf8:e}=this,n=await super.getData();if(n.text&&e)return n.text();{const r=new FileReader;return new Promise((i,a)=>{Object.assign(r,{onload:({target:o})=>i(o.result),onerror:()=>a(r.error)}),r.readAsText(n,t)})}}}class ua extends he{constructor(t,e){super(),ys(this,t,e)}async init(){await Es(this,ht,Dn),super.init()}readUint8Array(t,e){return xs(this,t,e,ht,Dn)}}class da extends he{constructor(t,e){super(),ys(this,t,e)}async init(){await Es(this,pt,Pn),super.init()}readUint8Array(t,e){return xs(this,t,e,pt,Pn)}}function ys(s,t,e){const{preventHeadRequest:n,useRangeHeader:r,forceRangeRequests:i,combineSizeEocd:a}=e;e=Object.assign({},e),delete e.preventHeadRequest,delete e.useRangeHeader,delete e.forceRangeRequests,delete e.combineSizeEocd,delete e.useXHR,Object.assign(s,{url:t,options:e,preventHeadRequest:n,useRangeHeader:r,forceRangeRequests:i,combineSizeEocd:a})}async function Es(s,t,e){const{url:n,preventHeadRequest:r,useRangeHeader:i,forceRangeRequests:a,combineSizeEocd:o}=s;if(ma(n)&&(i||a)&&(typeof r>"u"||r)){const l=await t(It,s,Ts(s,o?-ne:void 0));if(!a&&l.headers.get(na)!=gs)throw new Error(Fe);{o&&(s.eocdCache=new Uint8Array(await l.arrayBuffer()));let _;const f=l.headers.get(ta);if(f){const m=f.trim().split(/\s*\/\s*/);if(m.length){const b=m[1];b&&b!="*"&&(_=Number(b))}}_===G?await kn(s,t,e):s.size=_}}else await kn(s,t,e)}async function xs(s,t,e,n,r){const{useRangeHeader:i,forceRangeRequests:a,eocdCache:o,size:l,options:_}=s;if(i||a){if(o&&t==l-ne&&e==ne)return o;if(t>=l)return new Uint8Array;{t+e>l&&(e=l-t);const f=await n(It,s,Ts(s,t,e));if(f.status!=206)throw new Error(Fe);return new Uint8Array(await f.arrayBuffer())}}else{const{data:f}=s;return f||await r(s,_),new Uint8Array(s.data.subarray(t,t+e))}}function Ts(s,t=0,e=1){return Object.assign({},Pt(s),{[sa]:gs+"="+(t<0?t:t+"-"+(t+e-1))})}function Pt({options:s}){const{headers:t}=s;if(t)return Symbol.iterator in t?Object.fromEntries(t):t}async function Dn(s){await Ss(s,ht)}async function Pn(s){await Ss(s,pt)}async function Ss(s,t){const e=await t(It,s,Pt(s));s.data=new Uint8Array(await e.arrayBuffer()),s.size||(s.size=s.data.length)}async function kn(s,t,e){if(s.preventHeadRequest)await e(s,s.options);else{const r=(await t(ia,s,Pt(s))).headers.get(ea);r?s.size=Number(r):await e(s,s.options)}}async function ht(s,{options:t,url:e},n){const r=await fetch(e,Object.assign({},t,{method:s,headers:n}));if(r.status<400)return r;throw r.status==416?new Error(Fe):new Error(ps+(r.statusText||r.status))}function pt(s,{url:t},e){return new Promise((n,r)=>{const i=new XMLHttpRequest;if(i.addEventListener("load",()=>{if(i.status<400){const a=[];i.getAllResponseHeaders().trim().split(/[\r\n]+/).forEach(o=>{const l=o.trim().split(/\s*:\s*/);l[0]=l[0].trim().replace(/^[a-z]|-[a-z]/g,_=>_.toUpperCase()),a.push(l)}),n({status:i.status,arrayBuffer:()=>i.response,headers:new Map(a)})}else r(i.status==416?new Error(Fe):new Error(ps+(i.statusText||i.status)))},!1),i.addEventListener("error",a=>r(a.detail?a.detail.error:new Error("Network error")),!1),i.open(s,t),e)for(const a of Object.entries(e))i.setRequestHeader(a[0],a[1]);i.responseType="arraybuffer",i.send()})}class Rs extends he{constructor(t,e={}){super(),Object.assign(this,{url:t,reader:e.useXHR?new da(t,e):new ua(t,e)})}set size(t){}get size(){return this.reader.size}async init(){await this.reader.init(),super.init()}readUint8Array(t,e){return this.reader.readUint8Array(t,e)}}class _a extends Rs{constructor(t,e={}){e.useRangeHeader=!0,super(t,e)}}class ha extends he{constructor(t){super(),t=new Uint8Array(t.buffer,t.byteOffset,t.byteLength),Object.assign(this,{array:t,size:t.length})}readUint8Array(t,e){return this.array.slice(t,t+e)}}class pa extends Nt{init(t=0){Object.assign(this,{offset:0,array:new Uint8Array(t)}),super.init()}writeUint8Array(t){const e=this;if(e.offset+t.length>e.array.length){const n=e.array;e.array=new Uint8Array(n.length+t.length),e.array.set(n)}e.array.set(t,e.offset),e.offset+=t.length}getData(){return this.array}}class kt extends he{constructor(t){super(),this.readers=t}async init(){const t=this,{readers:e}=t;t.lastDiskNumber=0,t.lastDiskOffset=0,await Promise.all(e.map(async(n,r)=>{await n.init(),r!=e.length-1&&(t.lastDiskOffset+=n.size),t.size+=n.size})),super.init()}async readUint8Array(t,e,n=0){const r=this,{readers:i}=this;let a,o=n;o==-1&&(o=i.length-1);let l=t;for(;i[o]&&l>=i[o].size;)l-=i[o].size,o++;const _=i[o];if(_){const f=_.size;if(l+e<=f)a=await Y(_,l,e);else{const m=f-l;a=new Uint8Array(e);const b=await Y(_,l,m);a.set(b,0);const A=await r.readUint8Array(t+m,e-m,n);a.set(A,m),b.length+A.length<e&&(a=a.subarray(0,b.length+A.length))}}else a=new Uint8Array;return r.lastDiskNumber=Math.max(o,r.lastDiskNumber),a}}class $e extends Qe{constructor(t,e=4294967295){super();const n=this;Object.assign(n,{diskNumber:0,diskOffset:0,size:0,maxSize:e,availableSize:e});let r,i,a;const o=new WritableStream({async write(f){const{availableSize:m}=n;if(a)f.length>=m?(await l(f.subarray(0,m)),await _(),n.diskOffset+=r.size,n.diskNumber++,a=null,await this.write(f.subarray(m))):await l(f);else{const{value:b,done:A}=await t.next();if(A&&!b)throw new Error(ms);r=b,r.size=0,r.maxSize&&(n.maxSize=r.maxSize),n.availableSize=n.maxSize,await De(r),i=b.writable,a=i.getWriter(),await this.write(f)}},async close(){await a.ready,await _()}});Object.defineProperty(n,Ct,{get(){return o}});async function l(f){const m=f.length;m&&(await a.ready,await a.write(f),r.size+=m,n.size+=m,n.availableSize-=m)}async function _(){await a.close()}}}class As{constructor(t){return Array.isArray(t)&&(t=new kt(t)),t instanceof ReadableStream&&(t={readable:t}),t}}class Os{constructor(t){return t.writable===G&&typeof t.next==ke&&(t=new $e(t)),t instanceof WritableStream&&(t={writable:t}),t.size===G&&(t.size=0),t instanceof $e||Object.assign(t,{diskNumber:0,diskOffset:0,availableSize:1/0,maxSize:1/0}),t}}function ma(s){const{baseURL:t}=Kn(),{protocol:e}=new URL(s,t);return e=="http:"||e=="https:"}async function De(s,t){if(s.init&&!s.initialized)await s.init(t);else return Promise.resolve()}function Y(s,t,e,n){return s.readUint8Array(t,e,n)}const wa=kt,ga=$e,Is="\0☺☻♥♦♣♠•◘○◙♂♀♪♫☼►◄↕‼¶§▬↨↑↓→←∟↔▲▼ !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~⌂ÇüéâäàåçêëèïîìÄÅÉæÆôöòûùÿÖÜ¢£¥₧ƒáíóúñѪº¿⌐¬½¼¡«»░▒▓│┤╡╢╖╕╣║╗╝╜╛┐└┴┬├─┼╞╟╚╔╩╦╠═╬╧╨╤╥╙╘╒╓╫╪┘┌█▄▌▐▀αßΓπΣσµτΦΘΩδ∞φε∩≡±≥≤⌠⌡÷≈°∙·√ⁿ²■ ".split(""),ba=Is.length==256;function ya(s){if(ba){let t="";for(let e=0;e<s.length;e++)t+=Is[s[e]];return t}else return new TextDecoder().decode(s)}function Ve(s,t){return t&&t.trim().toLowerCase()=="cp437"?ya(s):new TextDecoder(t).decode(s)}const Cs="filename",Ns="rawFilename",Ds="comment",Ps="rawComment",ks="uncompressedSize",Ls="compressedSize",Fs="offset",mt="diskNumberStart",wt="lastModDate",gt="rawLastModDate",Ms="lastAccessDate",Ea="rawLastAccessDate",vs="creationDate",xa="rawCreationDate",Ta="internalFileAttribute",Sa="internalFileAttributes",Ra="externalFileAttribute",Aa="externalFileAttributes",Oa="msDosCompatible",Ia="zip64",Ca="encrypted",Na="version",Da="versionMadeBy",Pa="zipCrypto",ka="directory",La="executable",Fa="compressionMethod",Ma="signature",va="extraField",Ua=[Cs,Ns,Ls,ks,wt,gt,Ds,Ps,Ms,vs,Fs,mt,mt,Ta,Sa,Ra,Aa,Oa,Ia,Ca,Na,Da,Pa,ka,La,Fa,Ma,va,"bitFlag","filenameUTF8","commentUTF8","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"];class Ln{constructor(t){Ua.forEach(e=>this[e]=t[e])}}const Ha="filenameEncoding",Wa="commentEncoding",Ba="decodeText",ja="extractPrependedData",Ga="extractAppendedData",Ya="password",qa="rawPassword",Va="passThrough",Za="signal",Ka="checkPasswordOnly",Xa="checkOverlappingEntryOnly",$a="checkOverlappingEntry",Ja="checkSignature",Qa="useWebWorkers",za="useCompressionStream",eo="transferStreams",to="preventClose",Ze="File format is not recognized",Us="End of central directory not found",Hs="End of Zip64 central directory locator not found",Ws="Central directory header not found",Bs="Local file header not found",js="Zip64 extra field not found",Gs="File contains encrypted entry",Ys="Encryption method not supported",bt="Compression method not supported",yt="Split zip file",qs="Overlapping entry found",Fn="utf-8",Mn="cp437",no=[[ks,me],[Ls,me],[Fs,me],[mt,fe]],so={[fe]:{getValue:W,bytes:4},[me]:{getValue:Ee,bytes:8}};class Vs{constructor(t,e={}){Object.assign(this,{reader:new As(t),options:e,config:Kn(),readRanges:[]})}async*getEntriesGenerator(t={}){const e=this;let{reader:n}=e;const{config:r}=e;if(await De(n),(n.size===G||!n.readUint8Array)&&(n=new Dt(await new Response(n.readable).blob()),await De(n)),n.size<ne)throw new Error(Ze);n.chunkSize=ui(r);const i=await uo(n,Yr,n.size,ne,fe*16);if(!i){const g=await Y(n,0,4),S=j(g);throw W(S)==Vn?new Error(yt):new Error(Us)}const a=j(i);let o=W(a,12),l=W(a,16);const _=i.offset,f=q(a,20),m=_+ne+f;let b=q(a,4);const A=n.lastDiskNumber||0;let T=q(a,6),u=q(a,8),c=0,d=0;if(l==me||o==me||u==fe||T==fe){const g=await Y(n,i.offset-st,st),S=j(g);if(W(S,0)==qr){l=Ee(S,8);let N=await Y(n,l,rt,-1),I=j(N);const D=i.offset-st-rt;if(W(I,0)!=dn&&l!=D){const k=l;l=D,l>k&&(c=l-k),N=await Y(n,l,rt,-1),I=j(N)}if(W(I,0)!=dn)throw new Error(Hs);b==fe&&(b=W(I,16)),T==fe&&(T=W(I,20)),u==fe&&(u=Ee(I,32)),o==me&&(o=Ee(I,40)),l-=o}}if(l>=n.size&&(c=n.size-l-o-ne,l=n.size-o-ne),A!=b)throw new Error(yt);if(l<0)throw new Error(Ze);let h=0,p=await Y(n,l,o,T),y=j(p);if(o){const g=i.offset-o;if(W(y,h)!=un&&l!=g){const S=l;l=g,l>S&&(c+=l-S),p=await Y(n,l,o,T),y=j(p)}}const O=i.offset-l-(n.lastDiskOffset||0);if(o!=O&&O>=0&&(o=O,p=await Y(n,l,o,T),y=j(p)),l<0||l>=n.size)throw new Error(Ze);const w=V(e,t,Ha),E=V(e,t,Wa);for(let g=0;g<u;g++){const S=new io(n,r,e.options);if(W(y,h)!=un)throw new Error(Ws);Zs(S,y,h+6);const N=!!S.bitFlag.languageEncodingFlag,I=h+46,D=I+S.filenameLength,k=D+S.extraFieldLength,C=q(y,h+4),v=C>>8==0,F=C>>8==3,Z=p.subarray(I,D),P=q(y,h+32),Q=k+P,U=p.subarray(k,Q),H=N,Me=N,xe=W(y,h+38),te=v&&(ye(y,h+38)&wn)==wn||F&&(xe>>16&si)==ri||Z.length&&Z.at(-1)==gn.charCodeAt(0),z=F&&(xe>>16&ii)!=0,Ft=W(y,h+42)+c;Object.assign(S,{versionMadeBy:C,msDosCompatible:v,compressedSize:0,uncompressedSize:0,commentLength:P,directory:te,offset:Ft,diskNumberStart:q(y,h+34),internalFileAttributes:q(y,h+36),externalFileAttributes:xe,rawFilename:Z,filenameUTF8:H,commentUTF8:Me,rawExtraField:p.subarray(D,k),executable:z}),S.internalFileAttribute=S.internalFileAttributes,S.externalFileAttribute=S.externalFileAttributes;const Mt=V(e,t,Ba)||Ve,vt=H?Fn:w||Mn,Ut=Me?Fn:E||Mn;let ve=Mt(Z,vt);ve===G&&(ve=Ve(Z,vt));let ze=Mt(U,Ut);ze===G&&(ze=Ve(U,Ut)),Object.assign(S,{rawComment:U,filename:ve,comment:ze,directory:te||ve.endsWith(gn)}),d=Math.max(Ft,d),Ks(S,S,y,h+6),S.zipCrypto=S.encrypted&&!S.extraFieldAES;const Te=new Ln(S);Te.getData=(Ue,He)=>S.getData(Ue,Te,e.readRanges,He),Te.arrayBuffer=async Ue=>{const He=new TransformStream,[Xs]=await Promise.all([new Response(He.readable).arrayBuffer(),S.getData(He,Te,e.readRanges,Ue)]);return Xs},h=Q;const{onprogress:Ht}=t;if(Ht)try{await Ht(g+1,u,new Ln(S))}catch{}yield Te}const R=V(e,t,ja),x=V(e,t,Ga);return R&&(e.prependedData=d>0?await Y(n,0,d):new Uint8Array),e.comment=f?await Y(n,_+ne,f):new Uint8Array,x&&(e.appendedData=m<n.size?await Y(n,m,n.size-m):new Uint8Array),!0}async getEntries(t={}){const e=[];for await(const n of this.getEntriesGenerator(t))e.push(n);return e}async close(){}}class ro{constructor(t={}){const{readable:e,writable:n}=new TransformStream,r=new Vs(e,t).getEntriesGenerator();this.readable=new ReadableStream({async pull(i){const{done:a,value:o}=await r.next();if(a)return i.close();const l={...o,readable:(function(){const{readable:_,writable:f}=new TransformStream;if(o.getData)return o.getData(f),_})()};delete l.getData,i.enqueue(l)}}),this.writable=n}}class io{constructor(t,e,n){Object.assign(this,{reader:t,config:e,options:n})}async getData(t,e,n,r={}){const i=this,{reader:a,offset:o,diskNumberStart:l,extraFieldAES:_,extraFieldZip64:f,compressionMethod:m,config:b,bitFlag:A,signature:T,rawLastModDate:u,uncompressedSize:c,compressedSize:d}=i,{dataDescriptor:h}=A,p=e.localDirectory={},y=await Y(a,o,it,l),O=j(y);let w=V(i,r,Ya),E=V(i,r,qa);const R=V(i,r,Va);if(w=w&&w.length&&w,E=E&&E.length&&E,_&&_.originalCompressionMethod!=Br)throw new Error(bt);if(m!=Wr&&m!=Hr&&!R)throw new Error(bt);if(W(O,0)!=jr)throw new Error(Bs);Zs(p,O,4);const{extraFieldLength:x,filenameLength:g,lastAccessDate:S,creationDate:N}=p;p.rawExtraField=x?await Y(a,o+it+g,x,l):new Uint8Array,Ks(i,p,O,4,!0),Object.assign(e,{lastAccessDate:S,creationDate:N});const I=i.encrypted&&p.encrypted&&!R,D=I&&!_;if(R||(e.zipCrypto=D),I){if(!D&&_.strength===G)throw new Error(Ys);if(!w&&!E)throw new Error(Gs)}const k=o+it+g+x,C=d,v=a.readable;Object.assign(v,{diskNumberStart:l,offset:k,size:C});const F=V(i,r,Za),Z=V(i,r,Ka);let P=V(i,r,$a);const Q=V(i,r,Xa);Q&&(P=!0);const{onstart:U,onprogress:H,onend:Me}=r,xe={options:{codecType:ds,password:w,rawPassword:E,zipCrypto:D,encryptionStrength:_&&_.strength,signed:V(i,r,Ja)&&!R,passwordVerification:D&&(h?u>>>8&255:T>>>24&255),outputSize:c,signature:T,compressed:m!=0&&!R,encrypted:i.encrypted&&!R,useWebWorkers:V(i,r,Qa),useCompressionStream:V(i,r,za),transferStreams:V(i,r,eo),checkPasswordOnly:Z},config:b,streamOptions:{signal:F,size:C,onstart:U,onprogress:H,onend:Me}};P&&await fo({reader:a,fileEntry:e,offset:o,diskNumberStart:l,signature:T,compressedSize:d,uncompressedSize:c,dataOffset:k,dataDescriptor:h||p.bitFlag.dataDescriptor,extraFieldZip64:f||p.extraFieldZip64,readRanges:n});let te;try{if(!Q){Z&&(t=new WritableStream),t=new Os(t),await De(t,R?d:c),{writable:te}=t;const{outputSize:z}=await $i({readable:v,writable:te},xe);if(t.size+=z,z!=(R?d:c))throw new Error(Ot)}}catch(z){if(z.outputSize!==G&&(t.size+=z.outputSize),!Z||z.message!=St)throw z}finally{!V(i,r,to)&&te&&!te.locked&&await te.getWriter().close()}return Z||Q?G:t.getData?t.getData():te}}function Zs(s,t,e){const n=s.rawBitFlag=q(t,e+2),r=(n&hn)==hn,i=W(t,e+6);Object.assign(s,{encrypted:r,version:q(t,e),bitFlag:{level:(n&ni)>>1,dataDescriptor:(n&pn)==pn,languageEncodingFlag:(n&mn)==mn},rawLastModDate:i,lastModDate:_o(i),filenameLength:q(t,e+22),extraFieldLength:q(t,e+24)})}function Ks(s,t,e,n,r){const{rawExtraField:i}=t,a=t.extraField=new Map,o=j(new Uint8Array(i));let l=0;try{for(;l<i.length;){const d=q(o,l),h=q(o,l+2);a.set(d,{type:d,data:i.slice(l+4,l+4+h)}),l+=4+h}}catch{}const _=q(e,n+4);Object.assign(t,{signature:W(e,n+ai),compressedSize:W(e,n+oi),uncompressedSize:W(e,n+ci)});const f=a.get(Kr);f&&(ao(f,t),t.extraFieldZip64=f);const m=a.get(zr);m&&(vn(m,Cs,Ns,t,s),t.extraFieldUnicodePath=m);const b=a.get(ei);b&&(vn(b,Ds,Ps,t,s),t.extraFieldUnicodeComment=b);const A=a.get(Xr);A?(oo(A,t,_),t.extraFieldAES=A):t.compressionMethod=_;const T=a.get($r);T&&(co(T,t),t.extraFieldNTFS=T);const u=a.get(Qr);u&&(lo(u,t,r),t.extraFieldExtendedTimestamp=u);const c=a.get(ti);c&&(t.extraFieldUSDZ=c)}function ao(s,t){t.zip64=!0;const e=j(s.data),n=no.filter(([r,i])=>t[r]==i);for(let r=0,i=0;r<n.length;r++){const[a,o]=n[r];if(t[a]==o){const l=so[o];t[a]=s[a]=l.getValue(e,i),i+=l.bytes}else if(s[a])throw new Error(js)}}function vn(s,t,e,n,r){const i=j(s.data),a=new Ke;a.append(r[e]);const o=j(new Uint8Array(4));o.setUint32(0,a.get(),!0);const l=W(i,1);Object.assign(s,{version:ye(i,0),[t]:Ve(s.data.subarray(5)),valid:!r.bitFlag.languageEncodingFlag&&l==W(o,0)}),s.valid&&(n[t]=s[t],n[t+"UTF8"]=!0)}function oo(s,t,e){const n=j(s.data),r=ye(n,4);Object.assign(s,{vendorVersion:ye(n,0),vendorId:ye(n,2),strength:r,originalCompressionMethod:e,compressionMethod:q(n,5)}),t.compressionMethod=s.compressionMethod}function co(s,t){const e=j(s.data);let n=4,r;try{for(;n<s.data.length&&!r;){const i=q(e,n),a=q(e,n+2);i==Jr&&(r=s.data.slice(n+4,n+4+a)),n+=4+a}}catch{}try{if(r&&r.length==24){const i=j(r),a=i.getBigUint64(0,!0),o=i.getBigUint64(8,!0),l=i.getBigUint64(16,!0);Object.assign(s,{rawLastModDate:a,rawLastAccessDate:o,rawCreationDate:l});const _=lt(a),f=lt(o),m=lt(l),b={lastModDate:_,lastAccessDate:f,creationDate:m};Object.assign(s,b),Object.assign(t,b)}}catch{}}function lo(s,t,e){const n=j(s.data),r=ye(n,0),i=[],a=[];e?((r&1)==1&&(i.push(wt),a.push(gt)),(r&2)==2&&(i.push(Ms),a.push(Ea)),(r&4)==4&&(i.push(vs),a.push(xa))):s.data.length>=5&&(i.push(wt),a.push(gt));let o=1;i.forEach((l,_)=>{if(s.data.length>=o+4){const f=W(n,o);t[l]=s[l]=new Date(f*1e3);const m=a[_];s[m]=f}o+=4})}async function fo({reader:s,fileEntry:t,offset:e,diskNumberStart:n,signature:r,compressedSize:i,uncompressedSize:a,dataOffset:o,dataDescriptor:l,extraFieldZip64:_,readRanges:f}){let m=0;if(n)for(let T=0;T<n;T++){const u=s.readers[T];m+=u.size}let b=0;if(l&&(_?b=Zr:b=Vr),b){const T=await Y(s,o+i,b+_n,n);if(W(j(T),0)==Gr){const c=W(j(T),4);let d,h;_?(d=Ee(j(T),8),h=Ee(j(T),16)):(d=W(j(T),8),h=W(j(T),12)),(t.encrypted&&!t.zipCrypto||c==r)&&d==i&&h==a&&(b+=_n)}}const A={start:m+e,end:m+o+i+b,fileEntry:t};for(const T of f)if(T.fileEntry!=t&&A.start>=T.start&&A.start<T.end){const u=new Error(qs);throw u.overlappingEntry=T.fileEntry,u}f.push(A)}async function uo(s,t,e,n,r){const i=new Uint8Array(4),a=j(i);ho(a,0,t);const o=n+r;return await l(n)||await l(Math.min(o,e));async function l(_){const f=e-_,m=await Y(s,f,_);for(let b=m.length-n;b>=0;b--)if(m[b]==i[0]&&m[b+1]==i[1]&&m[b+2]==i[2]&&m[b+3]==i[3])return{offset:f+b,buffer:m.slice(b,b+n).buffer}}}function V(s,t,e){return t[e]===G?s.options[e]:t[e]}function _o(s){const t=(s&4294901760)>>16,e=s&65535;try{return new Date(1980+((t&65024)>>9),((t&480)>>5)-1,t&31,(e&63488)>>11,(e&2016)>>5,(e&31)*2,0)}catch{}}function lt(s){return new Date(Number(s/BigInt(1e4)-BigInt(116444736e5)))}function ye(s,t){return s.getUint8(t)}function q(s,t){return s.getUint16(t,!0)}function W(s,t){return s.getUint32(t,!0)}function Ee(s,t){return Number(s.getBigUint64(t,!0))}function ho(s,t,e){s.setUint32(t,e,!0)}function j(s){return new DataView(s.buffer)}Xn({Inflate:Ur});const po=Object.freeze(Object.defineProperty({__proto__:null,BlobReader:Dt,BlobWriter:bs,Data64URIReader:oa,Data64URIWriter:ca,ERR_BAD_FORMAT:Ze,ERR_CENTRAL_DIRECTORY_NOT_FOUND:Ws,ERR_ENCRYPTED:Gs,ERR_EOCDR_LOCATOR_ZIP64_NOT_FOUND:Hs,ERR_EOCDR_NOT_FOUND:Us,ERR_EXTRAFIELD_ZIP64_NOT_FOUND:js,ERR_HTTP_RANGE:Fe,ERR_INVALID_PASSWORD:xt,ERR_INVALID_SIGNATURE:Tt,ERR_INVALID_UNCOMPRESSED_SIZE:Ot,ERR_ITERATOR_COMPLETED_TOO_SOON:ms,ERR_LOCAL_FILE_HEADER_NOT_FOUND:Bs,ERR_OVERLAPPING_ENTRY:qs,ERR_SPLIT_ZIP_FILE:yt,ERR_UNSUPPORTED_COMPRESSION:bt,ERR_UNSUPPORTED_ENCRYPTION:Ys,ERR_WRITER_NOT_INITIALIZED:ws,GenericReader:As,GenericWriter:Os,HttpRangeReader:_a,HttpReader:Rs,Reader:he,SplitDataReader:kt,SplitDataWriter:$e,SplitZipReader:wa,SplitZipWriter:ga,TextReader:la,TextWriter:fa,Uint8ArrayReader:ha,Uint8ArrayWriter:pa,Writer:Nt,ZipReader:Vs,ZipReaderStream:ro,configure:Xn,getMimeType:di,initStream:De,readUint8Array:Y,terminateWorkers:Qi},Symbol.toStringTag,{value:"Module"})),Ae=po;class mo{constructor(t,e){L(this,"_zipReader");L(this,"_entriesPromise");L(this,"_traceURL");this._traceURL=t,Ae.configure({baseURL:self.location.href}),this._zipReader=new Ae.ZipReader(new Ae.HttpReader(this._resolveTraceURL(t),{mode:"cors",preventHeadRequest:!0}),{useWebWorkers:!1}),this._entriesPromise=this._zipReader.getEntries({onprogress:e}).then(n=>{const r=new Map;for(const i of n)r.set(i.filename,i);return r})}_resolveTraceURL(t){let e;return t.startsWith("http")||t.startsWith("blob")?(e=t,e.startsWith("https://www.dropbox.com/")&&(e="https://dl.dropboxusercontent.com/"+e.substring(24))):e=Lt(t),e}isLive(){return!1}traceURL(){return this._traceURL}async entryNames(){return[...(await this._entriesPromise).keys()]}async hasEntry(t){return(await this._entriesPromise).has(t)}async readText(t){var i;const n=(await this._entriesPromise).get(t);if(!n)return;const r=new Ae.TextWriter;return await((i=n.getData)==null?void 0:i.call(n,r)),r.getData()}async readBlob(t){const n=(await this._entriesPromise).get(t);if(!n)return;const r=new Ae.BlobWriter;return await n.getData(r),r.getData()}}class wo{constructor(t){L(this,"_entriesPromise");L(this,"_path");this._path=t,this._entriesPromise=this._readFile(t).then(async e=>{if(!e)throw new Error("File not found");const n=await e.json(),r=new Map;for(const i of n.entries)r.set(i.name,i.path);return r})}isLive(){return!0}traceURL(){return this._path}async entryNames(){return[...(await this._entriesPromise).keys()]}async hasEntry(t){return(await this._entriesPromise).has(t)}async readText(t){const e=await this._readEntry(t);return e==null?void 0:e.text()}async readBlob(t){const e=await this._readEntry(t);return(e==null?void 0:e.status)===200?await(e==null?void 0:e.blob()):void 0}async _readEntry(t){const n=(await this._entriesPromise).get(t);if(n)return this._readFile(n)}async _readFile(t){const e=await fetch(Lt(t));if(e.status!==404)return e}}function Lt(s){return`file?path=${encodeURIComponent(s)}`}self.addEventListener("install",function(s){self.skipWaiting()});self.addEventListener("activate",function(s){s.waitUntil(self.clients.claim())});const go=new URL(self.registration.scope).pathname,Pe=new Map,Et=new Map,Un=self.registration.scope.startsWith("https://");async function bo(s,t,e){var a;const n=e.id;Et.set(n,s),await xo();const r=new wr;try{const[o,l]=Qs((f,m)=>{e.postMessage({method:"progress",params:{done:f,total:m}})},[.5,.4,.1]),_=s.endsWith("json")?new wo(s):new mo(s,o);await r.load(_,l)}catch(o){throw console.error(o),(a=o==null?void 0:o.message)!=null&&a.includes("Cannot find .trace file")&&await r.hasEntry("index.html")?new Error("Could not load trace. Did you upload a Playwright HTML report instead? Make sure to extract the archive first and then double-click the index.html file or put it on a web server."):o instanceof Gn?new Error(`Could not load trace from ${t||s}. ${o.message}`):t?new Error(`Could not load trace from ${t}. Make sure to upload a valid Playwright trace.`):new Error(`Could not load trace from ${s}. Make sure a valid Playwright Trace is accessible over this url.`)}const i=new zs(r.storage(),o=>r.resourceForSha1(o));return Pe.set(s,{traceModel:r,snapshotServer:i}),r}async function yo(s){if(s.request.url.startsWith("chrome-extension://"))return fetch(s.request);if(s.request.headers.get("x-pw-serviceworker")==="forward"){const _=new Request(s.request);return _.headers.delete("x-pw-serviceworker"),fetch(_)}const t=s.request,e=await self.clients.get(s.clientId),n=new URL(t.url);let r;if(t.url.startsWith(self.registration.scope)&&(r=n.pathname.substring(go.length-1)),r==="/ping")return new Response(null,{status:200});if(r==="/contexts"){const _=n.searchParams.get("trace");if(!e||!_)return new Response("Something went wrong, trace is requested as a part of the navigation",{status:500,headers:{"Content-Type":"application/json"}});try{const f=await bo(_,n.searchParams.get("traceFileName"),e);return new Response(JSON.stringify(f.contextEntries),{status:200,headers:{"Content-Type":"application/json"}})}catch(f){return new Response(JSON.stringify({error:f==null?void 0:f.message}),{status:500,headers:{"Content-Type":"application/json"}})}}if(r!=null&&r.startsWith("/snapshotInfo/")){const{snapshotServer:_}=Ye(n);if(!_)return new Response(null,{status:404});const f=r.substring(14);return _.serveSnapshotInfo(f,n.searchParams)}if(r!=null&&r.startsWith("/snapshot/")){const{snapshotServer:_}=Ye(n);if(!_)return new Response(null,{status:404});const f=r.substring(10),m=_.serveSnapshot(f,n.searchParams,n.href);return Un&&m.headers.set("Content-Security-Policy","upgrade-insecure-requests"),m}if(r!=null&&r.startsWith("/closest-screenshot/")){const{snapshotServer:_}=Ye(n);if(!_)return new Response(null,{status:404});const f=r.substring(20);return _.serveClosestScreenshot(f,n.searchParams)}if(r!=null&&r.startsWith("/sha1/")){const{traceModel:_}=Ye(n),f=await(_==null?void 0:_.resourceForSha1(r.slice(6)));return f?new Response(f,{status:200,headers:Eo(n.searchParams)}):new Response(null,{status:404})}if(r!=null&&r.startsWith("/file/")){const _=n.searchParams.get("path");return await fetch(Lt(_))}if(r)return fetch(s.request);const i=e.url,a=new URL(i).searchParams.get("trace"),{snapshotServer:o}=Pe.get(a)||{};if(!o)return new Response(null,{status:404});const l=[t.url];return Un&&t.url.startsWith("https://")&&l.push(t.url.replace(/^https/,"http")),o.serveResource(l,t.method,i)}function Eo(s){const t=s.get("dn"),e=s.get("dct");if(!t)return;const n=new Headers;return n.set("Content-Disposition",`attachment; filename="attachment"; filename*=UTF-8''${encodeURIComponent(t)}`),e&&n.set("Content-Type",e),n}const Hn={traceModel:void 0,snapshotServer:void 0};function Ye(s){const t=s.searchParams.get("trace");return t?Pe.get(t)??Hn:Hn}async function xo(){const s=await self.clients.matchAll(),t=new Set;for(const[e,n]of Et){if(!s.find(r=>r.id===e)){Et.delete(e);continue}t.add(n)}for(const e of Pe.keys())t.has(e)||Pe.delete(e)}self.addEventListener("fetch",function(s){s.respondWith(yo(s))});