numbl 0.4.13 → 0.4.15
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.
- package/README.md +0 -4
- package/dist-browser/browser/index.d.ts +13 -4
- package/dist-browser/browser/protocol.d.ts +38 -1
- package/dist-browser/browser/session.d.ts +34 -10
- package/dist-browser/browser.js +46 -5
- package/dist-browser/numbl-core/version.d.ts +1 -1
- package/dist-browser/workerErrorFormat.d.ts +7 -0
- package/dist-cli/cli.js +37 -6
- package/dist-graphics/graphics-lib.d.ts +1 -0
- package/dist-graphics/index.js +33 -0
- package/dist-lib/lib.js +25 -1
- package/dist-lib/numbl-core/version.d.ts +1 -1
- package/dist-site-viewer/assets/{index-C2ItFYSf.js → index-CVQsfOm5.js} +3 -3
- package/dist-site-viewer/assets/{numbl-worker-CtfdLxJh.js → numbl-worker-F20FKX9r.js} +60 -42
- package/dist-site-viewer/index.html +1 -1
- package/package.json +1 -1
|
@@ -4810,7 +4810,7 @@ directive is a comment, so MATLAB ignores it.`},disp:{signatures:["disp(X)"],des
|
|
|
4810
4810
|
|
|
4811
4811
|
`);u=p.pop()||"";for(const m of p){const y=m.trim();if(!y.startsWith("data: "))continue;const _=y.slice(6);try{const b=JSON.parse(_);b.type==="output"?t.onOutput(b.text):b.type==="drawnow"?t.onDrawnow(b.plotInstructions):b.type==="done"?h={...h,generatedJS:b.generatedJS}:b.type==="error"?h={success:!1,error:b.message,timedOut:b.timedOut}:b.type==="close"&&(h={...h,success:b.success})}catch{}}}return h}catch(o){return o instanceof DOMException&&o.name==="AbortError"?{success:!1,error:"Execution aborted"}:(console.error("Remote execution failed:",o),{success:!1,error:o instanceof Error?`Connection failed: ${o.message}`:"Unknown error occurred"})}}const cPe="https://magland.github.io/numbl-wasm-bridge/",yY="numbl_wasm_bridge_url";function _Y(){return localStorage.getItem(yY)||cPe}function uPe(e){localStorage.setItem(yY,e)}let vY=!0;function bY(){return vY}function hPe(e){vY=e}function x3(){return bY()?_Y():null}const WN="/system/";function fPe(e){return e.startsWith("/project/")?e.slice(9):e.startsWith("/")?e.slice(1):e}function xY(e){return e.startsWith(WN)?e.slice(WN.length):e}function w3(e){return e.startsWith(WN)||e==="/system"}function wY(e){const t={created:[],modified:[],deleted:[]},n={created:[],modified:[],deleted:[]};for(const r of e.created)(w3(r.path)?n:t).created.push(r);for(const r of e.modified)(w3(r.path)?n:t).modified.push(r);for(const r of e.deleted)(w3(r)?n:t).deleted.push(r);return{projectChanges:t,systemChanges:n}}async function qN(e,t,n){const r=[],i=[],s=[];return await Dn.transaction("rw",Dn.files,Dn.fileContents,Dn.projects,async()=>{for(const{path:o,content:a}of t.created){const l=n(o),c=Date.now(),u=crypto.randomUUID();await Dn.files.add({id:u,projectName:e,path:l,createdAt:c,updatedAt:c}),await Dn.fileContents.add({id:u,data:a}),r.push({id:u,name:l})}for(const{path:o,content:a}of t.modified){const l=n(o),c=await Dn.files.where("[projectName+path]").equals([e,l]).first();c&&(await Dn.fileContents.put({id:c.id,data:a}),await Dn.files.update(c.id,{updatedAt:Date.now()}),i.push({path:l,data:a}))}for(const o of t.deleted){const a=n(o),l=await Dn.files.where("[projectName+path]").equals([e,a]).first();l&&(await Dn.files.delete(l.id),await Dn.fileContents.delete(l.id),s.push(a))}(r.length>0||i.length>0||s.length>0)&&await Dn.projects.update(e,{updatedAt:Date.now()})}),r.length===0&&i.length===0&&s.length===0?null:{addedFiles:r,modifiedFiles:i,deletedPaths:s}}async function SY(e){const{systemChanges:t}=wY(e);return t.created.length===0&&t.modified.length===0&&t.deleted.length===0?!1:(await j0(),await qN(Wl,t,xY)!==null)}async function dPe(e,t){const{projectChanges:n,systemChanges:r}=wY(t),i=await qN(e,n,fPe);let s=null;return(r.created.length>0||r.modified.length>0||r.deleted.length>0)&&(await j0(),s=await qN(Wl,r,xY)),{projectResult:i,systemResult:s}}const sa="system/";function MY(){const[e,t]=ne.useState([]),n=ne.useRef(new Map),r=ne.useCallback(async()=>{const _=await qA();t(_.map(b=>({id:b.id,name:sa+b.path})))},[]);ne.useEffect(()=>{r()},[r]);const i=ne.useCallback(async _=>{const b=n.current.get(_);if(b!==void 0)return b;const x=await bF(_);return n.current.set(_,x),x},[]),s=ne.useCallback(async()=>{const _=await GA();for(const[b,x]of _)n.current.set(b,x);return _},[]),o=ne.useCallback(async()=>{const[_,b]=await Promise.all([qA(),GA()]);return _.map(x=>({path:"/system/"+x.path,content:b.get(x.id)??new Uint8Array(0)}))},[]),a=ne.useCallback(async()=>{const _=new TextDecoder("utf-8"),[b,x]=await Promise.all([qA(),GA()]);return b.filter(S=>S.path.endsWith(".m")).map(S=>({name:"/system/"+S.path,source:_.decode(x.get(S.id)??new Uint8Array(0))}))},[]),l=ne.useCallback(async(_,b)=>{n.current.set(_,b),await Aae(_,b)},[]),c=ne.useCallback(async _=>{await j0();const b=_?.startsWith(sa)?_.slice(sa.length):_,x=z7(e,_),S=b?`${b}/${x}`:x,M=Date.now(),E=crypto.randomUUID(),T=new Uint8Array(0);return await Dn.transaction("rw",Dn.files,Dn.fileContents,async()=>{await Dn.files.add({id:E,projectName:Wl,path:S,createdAt:M,updatedAt:M}),await Dn.fileContents.add({id:E,data:T})}),n.current.set(E,T),t(k=>[...k,{id:E,name:sa+S}]),E},[e]),u=ne.useCallback(async _=>{await j0();const b=_?.startsWith(sa)?_.slice(sa.length):_,x=pPe(e,_),S=b?`${b}/${x}`:x,M=z7(e,sa+S),E=`${S}/${M}`,T=Date.now(),k=crypto.randomUUID(),R=new Uint8Array(0);return await Dn.transaction("rw",Dn.files,Dn.fileContents,async()=>{await Dn.files.add({id:k,projectName:Wl,path:E,createdAt:T,updatedAt:T}),await Dn.fileContents.add({id:k,data:R})}),n.current.set(k,R),t(P=>[...P,{id:k,name:sa+E}]),sa+S},[e]),h=ne.useCallback(async _=>{await Dn.transaction("rw",Dn.files,Dn.fileContents,async()=>{await Dn.files.delete(_),await Dn.fileContents.delete(_)}),n.current.delete(_),t(b=>b.filter(x=>x.id!==_))},[]),f=ne.useCallback(async _=>{const b=e.filter(x=>x.name.startsWith(_+"/"));await Dn.transaction("rw",Dn.files,Dn.fileContents,async()=>{for(const x of b)await Dn.files.delete(x.id),await Dn.fileContents.delete(x.id)});for(const x of b)n.current.delete(x.id);t(x=>x.filter(S=>!S.name.startsWith(_+"/")))},[e]),d=ne.useCallback(async(_,b)=>{const x=b.startsWith(sa)?b.slice(sa.length):b;await Dn.files.update(_,{path:x,updatedAt:Date.now()}),t(S=>S.map(M=>M.id===_?{...M,name:b}:M))},[]),p=ne.useCallback(async(_,b)=>{const x=_.split("/");x[x.length-1]=b;const S=x.join("/"),M=e.filter(E=>E.name.startsWith(_+"/"));await Promise.all(M.map(E=>{const T=S+E.name.slice(_.length),k=T.startsWith(sa)?T.slice(sa.length):T;return Dn.files.update(E.id,{path:k,updatedAt:Date.now()})})),t(E=>E.map(T=>T.name.startsWith(_+"/")?{...T,name:S+T.name.slice(_.length)}:T))},[e]),m=ne.useCallback(async _=>{const b=e.find(R=>R.id===_);if(!b)return"";const x=jH(e,b.name),S=x.startsWith(sa)?x.slice(sa.length):x,M=n.current.get(_)??await bF(_),E=new Uint8Array(M),T=Date.now(),k=crypto.randomUUID();return await j0(),await Dn.transaction("rw",Dn.files,Dn.fileContents,async()=>{await Dn.files.add({id:k,projectName:Wl,path:S,createdAt:T,updatedAt:T}),await Dn.fileContents.add({id:k,data:E})}),n.current.set(k,E),t(R=>[...R,{id:k,name:x}]),k},[e]),y=ne.useCallback(async(_,b)=>{const x=e.find(k=>k.id===_);if(!x)return;const S=x.name.split("/"),M=S[S.length-1],E=b?`${b}/${M}`:M;if(E===x.name)return;const T=E.startsWith(sa)?E.slice(sa.length):E;await Dn.files.update(_,{path:T,updatedAt:Date.now()}),t(k=>k.map(R=>R.id===_?{...R,name:E}:R))},[e]);return{systemFiles:e,reloadSystemFiles:r,updateSystemFileContent:l,addSystemFile:c,addSystemFolder:u,deleteSystemFile:h,deleteSystemFolder:f,renameSystemFile:d,renameSystemFolder:p,moveSystemFile:y,duplicateSystemFile:m,loadSystemFileContent:i,loadAllSystemContents:s,getSystemVfsFiles:o,getSystemWorkspaceFiles:a,systemContentCache:n}}function z7(e,t){const n=new Set(e.map(r=>r.name));for(let r=1;;r++){const i=`untitled${r===1?"":r}.m`,s=t?`${t}/${i}`:i;if(!n.has(s))return i}}function pPe(e,t){const n=new Set;for(const r of e)if(t){if(r.name.startsWith(t+"/")){const i=r.name.slice(t.length+1).split("/");i.length>1&&n.add(i[0])}}else{const i=r.name.split("/");i.length>1&&n.add(i[0])}for(let r=1;;r++){const i=`folder${r===1?"":r}`;if(!n.has(i))return i}}const mPe="https://github.com/mip-org/mip-core/releases/download/mip-numbl/mip-numbl-any.mhl",gPe="mip/packages/gh/mip-org/core/mip/";function yPe(e){if(/^https:\/\/github\.com\/.+\/releases\/download\/.+/.test(e)){let t=e.replace("https://github.com/","https://mip-cors-proxy.figurl.workers.dev/gh/");return t+=t.includes("?")?"&":"?",t+="t="+Date.now(),t}return e}async function _Pe(){const e=await fetch(yPe(mPe));if(!e.ok)throw new Error(`HTTP ${e.status}`);const t=await e.arrayBuffer();return XH(new Uint8Array(t)).map(r=>({path:"/system/"+gPe+r.path,content:r.content}))}const vPe=600*1e3,EY="numbl:systemLastActivity";function CY(){try{localStorage.setItem(EY,String(Date.now()))}catch{}}function bPe(){try{const e=localStorage.getItem(EY),t=e?parseInt(e,10):0;return Number.isFinite(t)?t:0}catch{return 0}}function AY(e){ne.useEffect(()=>{let t=!1;return(async()=>{try{if(Date.now()-bPe()>vPe&&await kae(),CY(),t)return;if(await j0(),!await Tae()){const n=await _Pe();if(t)return;const r=Date.now();await Dn.transaction("rw",Dn.files,Dn.fileContents,async()=>{const i=n.map(o=>{const a=o.path.replace(/^\/system\//,"");return{id:"mip:"+a,projectName:Wl,path:a,createdAt:r,updatedAt:r}}),s=n.map(o=>({id:"mip:"+o.path.replace(/^\/system\//,""),data:o.content}));await Dn.files.bulkPut(i),await Dn.fileContents.bulkPut(s)})}t||e()}catch(n){console.warn("Failed to ensure mip core package:",n)}})(),()=>{t=!0}},[])}Qu.registerLanguage("javascript",VL);Qu.registerLanguage("c",cue);const xPe=new TextEncoder;function wPe({files:e,activeFileId:t,setActiveFileId:n,updateFileContent:r,addFile:i,addFolder:s,deleteFile:o,deleteFolder:a,renameFile:l,renameFolder:c,moveFile:u,duplicateFile:h,uploadFiles:f,headerContent:d,projectName:p,loadFileContent:m,loadAllContents:y,contentCache:_,maxInitialOutputPanelHeight:b,mergeVfsChanges:x}){const{systemFiles:S,reloadSystemFiles:M,updateSystemFileContent:E,addSystemFile:T,addSystemFolder:k,deleteSystemFile:R,deleteSystemFolder:P,renameSystemFile:F,renameSystemFolder:L,moveSystemFile:j,duplicateSystemFile:V,loadSystemFileContent:U,getSystemVfsFiles:B,getSystemWorkspaceFiles:N,loadAllSystemContents:H}=MY();AY(M);const O=ne.useCallback(ut=>ut==="system"||ut.startsWith("system/"),[]),G=ne.useCallback(ut=>S.some(Lt=>Lt.id===ut),[S]),Z=ne.useMemo(()=>[...e,...S],[e,S]),[ie,Y]=ne.useState("1"),[ce,pe]=ne.useState(""),[te,X]=ne.useState(null),[de,fe]=ne.useState(""),[le,J]=ne.useState(!1),[K,Se]=ne.useReducer(SI,rE),[ye,Xe]=ne.useState(0),[Fe,Oe]=ne.useState("js"),[Ee,ke]=ne.useState([]),_e=ne.useCallback(ut=>{const Lt=[];ut?.mainFile&&Lt.push({name:ut.mainFile.name,ast:ut.mainFile.ast,irProgram:ut.mainFile.irProgram});for(const pn of ut?.workspaceFiles??[])Lt.push({name:pn.name,ast:pn.ast,irProgram:pn.irProgram});return Lt},[]),we=ne.useMemo(()=>{if(Ee.length===0)return null;if(Ee.length===1)return Ee[0].ast;const ut={};for(const Lt of Ee)ut[Lt.name]=Lt.ast;return ut},[Ee]),[Le,ae]=ne.useState(null),[Q,xe]=ne.useState(0),[ge,be]=ne.useState(!1),[ve,Be]=ne.useState(),[He,je]=ne.useState("rendered"),[st,We]=ne.useState(0),[lt,Tt]=ne.useState(!1),rt=ne.useRef(null),ot=xae("(max-width:768px)"),Pe=ne.useRef(ot);Pe.current=ot;const[Ae,ze]=ne.useState(!1),[_t,zt]=ne.useState(0),[xt,vt]=ne.useState(!1),[Ct,Wt]=ne.useState(yM()),[Ut,Yt]=ne.useState(!1),[Ot,hn]=ne.useState(yM()),[Zn,Mn]=ne.useState(bY),[Kn,Ts]=ne.useState(_Y),ds=ne.useCallback(()=>{const ut=crypto.randomUUID().replace(/-/g,"").slice(0,16);return sessionStorage.setItem("numbl_passkey",ut),ut},[]),[Ci,Lo]=ne.useState(()=>{const ut=sessionStorage.getItem("numbl_passkey");return ut||ds()}),Hi=ne.useRef(Ci);Hi.current=Ci;const Kr=xt?"localhost":"browser",[Or,ps]=ne.useState(null),[ms,Yo]=ne.useState("unknown");ne.useEffect(()=>{if(!xt){ps(null),Yo("unknown");return}let ut=!1;return F7(Ct,Hi.current).then(Lt=>{ut||(Lt?(ps(Lt.nativeAddon===!0),Yo("connected")):Yo("disconnected"))}),()=>{ut=!0}},[xt,Ct,Ci]);const vi=ne.useRef(null),za=ne.useRef(ZH()),Yi=ne.useRef(typeof SharedArrayBuffer<"u"?new SharedArrayBuffer(4):null),mo=ne.useRef(null),Zs=ne.useRef(null),lr=ne.useRef(null),[$i,Ce]=ne.useState(!1);ne.useEffect(()=>{vi.current?.postMessage({type:"set_optimization",optimization:ie})},[ie]);const Ye=window.innerWidth>=1200?260:200,[St,yt]=ne.useState(Ye),[mt,rn]=ne.useState((window.innerWidth-Ye)/2),[ht,Rt]=ne.useState(()=>b!=null?Math.min(window.innerHeight/2,b):window.innerHeight/2),Gt=b!=null?Math.min(150,b):150,qt=ne.useMemo(()=>Z.find(ut=>ut.id===t),[Z,t]),Xt=ne.useCallback(ut=>{let Lt=ut.split(/[?#]/)[0];try{Lt=decodeURIComponent(Lt)}catch{}if(Lt=Lt.replace(/^\.\//,""),!Lt)return;const pn=jr=>jr.split("/").pop()??jr,tr=Z.find(jr=>jr.name===Lt)??Z.find(jr=>pn(jr.name)===pn(Lt));tr&&(n(tr.id),ot&&ze(!1))},[Z,n,ot]),En=ne.useMemo(()=>Object.keys(K.figs).map(ut=>Number(ut)).sort((ut,Lt)=>ut-Lt),[K.figs]),[cn,In]=ne.useState(!1),_r=ne.useCallback(async()=>{const ut=En[Q],Lt=K.figs[ut];if(Lt){In(!0);try{await Oxe(Lt,ut)}catch(pn){console.error("Figure HDF5 export failed:",pn)}finally{In(!1)}}},[K.figs,En,Q]),[fr,dr]=ne.useState(null),Ki=ne.useCallback(async()=>{const ut=K.figs[En[Q]];if(!ut)return;const Lt=Yxe(ut);if(Lt.url){window.open(Lt.url,"_blank"),dr(null);return}dr({kind:"uploading"});try{const pn=await twe(ut);dr({kind:"ready",url:pn})}catch{dr({kind:"failed",baseUrl:Lt.baseUrl})}},[K.figs,En,Q]);ne.useEffect(()=>{const ut=Object.keys(K.figs).map(Number).sort((Lt,pn)=>Lt-pn);if(ut.length>0){const Lt=ut.indexOf(K.currentHandle);Lt>=0&&xe(Lt)}},[K.figs,K.currentHandle]);const Zt=ne.useCallback(ut=>{if(Se(ut),!Pe.current)return;const Lt=ut.type;Lt.startsWith("set_")||Lt==="cla"||Lt==="clf"||Lt==="close"||Lt==="close_all"||zt(1)},[]);ne.useEffect(()=>{const ut=Lt=>{const pn=Lt.data;!pn||pn.source!=="numbl-uihtml"||vi.current?.postMessage({type:"html_event",compId:pn.compId,kind:pn.kind,name:pn.name,data:pn.data})};return window.addEventListener("message",ut),()=>window.removeEventListener("message",ut)},[]),ne.useEffect(()=>{if(!ge)return;const ut=Lt=>{Lt.key==="Escape"&&be(!1)};return window.addEventListener("keydown",ut),()=>window.removeEventListener("keydown",ut)},[ge]);const Ii=ne.useCallback(async(ut,Lt)=>{const[pn,tr,jr]=await Promise.all([y(),B(),N()]),Ko=await H(),Oa=[...ut.map(ni=>({path:ni.name,content:pn.get(ni.id)??new Uint8Array(0)})),...tr],yo=new TextDecoder("utf-8"),ja=[...ut.filter(ni=>!Lt||ni.id!==Lt).filter(ni=>ni.name.endsWith(".m")).map(ni=>({name:ni.name,source:yo.decode(pn.get(ni.id)??new Uint8Array(0))})),...jr];return{vfsFiles:Oa,workspaceFiles:ja,projectContents:pn,systemContents:Ko}},[y,B,N,H]),Nn=ne.useCallback(async ut=>{if(!ut)return;const{created:Lt,modified:pn,deleted:tr}=ut;if(!(Lt.length===0&&pn.length===0&&tr.length===0))if(p){const{projectResult:jr,systemResult:Ko}=await dPe(p,ut);jr&&x&&x(jr),Ko&&M()}else await SY(ut)&&M()},[p,x,M]),bi=ne.useCallback(ut=>{ut.onmessage=Lt=>{const pn=Lt.data;if(pn.type==="request-input"){const tr=prompt(pn.prompt??"")??"",jr=za.current;jr&&QH(jr,tr);return}if(pn.type==="output"){if(mo.current==="repl"){const tr=rt.current;tr?.writeOutput&&tr.writeOutput(pn.text,!1)}else pe(tr=>tr+pn.text);return}if(pn.type==="drawnow"){if(pn.plotInstructions?.length)for(const tr of pn.plotInstructions)Zt(tr);return}if(pn.type==="html_source_event"){document.querySelectorAll(`iframe[title="uihtml-${pn.compId}"]`).forEach(jr=>jr.contentWindow?.postMessage({source:"numbl-host",compId:pn.compId,name:pn.name,dataJson:pn.dataJson},"*"));return}if(pn.type==="done"){if(mo.current=null,fe(pn.generatedJS||""),ke(_e(pn.workspaceRep)),ae(pn.workspaceRep?.fileSources??null),X(pn.dispatchUnknownCounts??null),J(!1),pn.plotInstructions?.length)for(const tr of pn.plotInstructions)Zt(tr);Nn(pn.vfsChanges);return}if(pn.type==="error"){mo.current=null,pn.generatedJS&&fe(pn.generatedJS),ke(_e(pn.workspaceRep)),ae(pn.workspaceRep?.fileSources??null),J(!1),pe(tr=>tr+`
|
|
4812
4812
|
${NV(pn)}
|
|
4813
|
-
`),Nn(pn.vfsChanges);return}if(pn.type==="result"){mo.current=null;const tr=rt.current;if(pn.success){if(pn.plotInstructions?.length)for(const jr of pn.plotInstructions)Zt(jr)}else pn.error&&tr?.writeOutput&&tr.writeOutput(pn.error,!0);Nn(pn.vfsChanges),tr?.writePrompt&&tr.writePrompt(),Tt(!1);return}},ut.onerror=Lt=>{mo.current=null;const pn=rt.current;pn?.writeOutput&&pn.writeOutput(`Worker error: ${Lt.message}`,!0),J(!1),Tt(!1)}},[Zt,_e,Nn]);ne.useEffect(()=>{const ut=new Worker(new URL(""+new URL("numbl-worker-
|
|
4813
|
+
`),Nn(pn.vfsChanges);return}if(pn.type==="result"){mo.current=null;const tr=rt.current;if(pn.success){if(pn.plotInstructions?.length)for(const jr of pn.plotInstructions)Zt(jr)}else pn.error&&tr?.writeOutput&&tr.writeOutput(pn.error,!0);Nn(pn.vfsChanges),tr?.writePrompt&&tr.writePrompt(),Tt(!1);return}},ut.onerror=Lt=>{mo.current=null;const pn=rt.current;pn?.writeOutput&&pn.writeOutput(`Worker error: ${Lt.message}`,!0),J(!1),Tt(!1)}},[Zt,_e,Nn]);ne.useEffect(()=>{const ut=new Worker(new URL(""+new URL("numbl-worker-F20FKX9r.js",import.meta.url).href,import.meta.url),{type:"module"});return vi.current=ut,ut.postMessage({type:"set_wasm_bridge",url:x3()}),za.current&&ut.postMessage({type:"set_input_sab",inputSAB:za.current}),bi(ut),()=>{ut.terminate()}},[bi]);const fi=ne.useRef(!0);ne.useEffect(()=>{fi.current=!0},[e,S]),ne.useEffect(()=>{if(ve){const ut=setTimeout(()=>{Be(void 0)},100);return()=>clearTimeout(ut)}},[ve]);const go=ne.useCallback(async()=>{if(!qt||!qt.name.toLowerCase().endsWith(".m"))return;J(!0),pe(""),X(null),ke([]),ae(null),Se({type:"clear"}),zt(0);const{vfsFiles:ut,workspaceFiles:Lt,projectContents:pn}=await Ii(e,t),tr=pn.get(t)??_.current.get(t)??new Uint8Array(0),jr=L_(tr);try{const Ko=RV(jr);console.info("AST:",Ko)}catch{console.info("Parse check skipped - error will be handled by worker")}if(xt){const Ko=new AbortController;Zs.current=Ko;try{const Oa=new TextDecoder("utf-8"),yo=[];for(const ni of e){if(ni.name==="system"||ni.name.startsWith("system/"))continue;const Ml=pn.get(ni.id)??_.current.get(ni.id)??new Uint8Array(0);XA(Ml)||yo.push({name:ni.name,content:Oa.decode(Ml)})}if(!yo.some(ni=>ni.name===qt.name))yo.push({name:qt.name,content:jr});else{const ni=yo.findIndex(Ml=>Ml.name===qt.name);yo[ni]={name:qt.name,content:jr}}const ja=await lPe({files:yo,mainScript:qt.name,optimization:ie},{onOutput:ni=>{pe(Ml=>Ml+ni)},onDrawnow:ni=>{for(const Ml of ni)Zt(Ml)}},Ct,Ko.signal,Hi.current);fe(ja.generatedJS||""),ja.success||pe(ni=>ni+`
|
|
4814
4814
|
Error: ${ja.error}${ja.timedOut?" (timed out)":""}
|
|
4815
4815
|
`)}catch(Oa){pe(yo=>yo+`
|
|
4816
4816
|
Remote execution failed: ${Oa instanceof Error?Oa.message:"Unknown error"}
|
|
@@ -4818,7 +4818,7 @@ Remote execution failed: ${Oa instanceof Error?Oa.message:"Unknown error"}
|
|
|
4818
4818
|
--- Execution stopped ---
|
|
4819
4819
|
`);return}if(vi.current)if($i){if(Yi.current){const ut=new Int32Array(Yi.current);Atomics.store(ut,0,1)}pe(ut=>ut+`
|
|
4820
4820
|
--- Cancelling execution... ---
|
|
4821
|
-
`)}else{vi.current.terminate(),mo.current=null;const ut=new Worker(new URL(""+new URL("numbl-worker-
|
|
4821
|
+
`)}else{vi.current.terminate(),mo.current=null;const ut=new Worker(new URL(""+new URL("numbl-worker-F20FKX9r.js",import.meta.url).href,import.meta.url),{type:"module"});vi.current=ut,ut.postMessage({type:"set_wasm_bridge",url:x3()}),za.current&&ut.postMessage({type:"set_input_sab",inputSAB:za.current}),bi(ut),fi.current=!0,J(!1),pe(Lt=>Lt+`
|
|
4822
4822
|
--- Execution stopped ---
|
|
4823
4823
|
`)}},[$i,bi]),_n=ne.useCallback(()=>{Wt(Ot),aPe(Ot),hPe(Zn),uPe(Kn),vi.current?.postMessage({type:"set_wasm_bridge",url:x3()}),Yt(!1)},[Ot,Zn,Kn]),xi=ne.useCallback((ut,Lt)=>{Lt!==null&&vt(Lt==="local")},[]),qr=ne.useCallback(async ut=>{if(!(lt||le)){if(Tt(!0),fi.current&&vi.current){const{vfsFiles:Lt,workspaceFiles:pn}=await Ii(e);vi.current.postMessage({type:"update_workspace",workspaceFiles:pn,vfsFiles:Lt}),fi.current=!1}if(Yi.current){const Lt=new Int32Array(Yi.current);Atomics.store(Lt,0,0)}mo.current="repl",vi.current?.postMessage({type:"execute",code:ut,cancelSAB:Yi.current??void 0})}},[lt,le,e,Ii]),cr=ne.useCallback(()=>{lt||vi.current?.postMessage({type:"clear"})},[lt]),Gn=ne.useCallback(ut=>{rt.current=ut},[]),ys=ne.useRef(""),[ts,Yl]=ne.useState(null),fn=ne.useRef(""),kn=ts?XA(ts):!1,Un=!!qt?.name.toLowerCase().endsWith(".md"),vr=!!qt?.name.toLowerCase().endsWith(".m");ne.useEffect(()=>{if(!t){Yl(null),fn.current="";return}Yl(null),fn.current="";let ut=!1;return(S.some(tr=>tr.id===t)?U:m)(t).then(tr=>{ut||(fn.current=t,Yl(tr))}),()=>{ut=!0}},[t,S,U,m]);const _s=kn||Un&&He==="rendered";ne.useEffect(()=>{_s&&(lr.current=null,ys.current="")},[_s]),ne.useEffect(()=>{if(!lr.current||!qt||t===ys.current||!ts||fn.current!==t)return;ys.current=t;const ut=XA(ts)?"":L_(ts);lr.current.value!==ut&&lr.current.setValue(ut)},[t,qt,ts]);const ga=(ut,Lt)=>{lr.current=ut,ts&&fn.current===t&&(ys.current=t),Lt.languages.register({id:"numbl"}),Lt.languages.setLanguageConfiguration("numbl",Sme),Lt.languages.setMonarchTokensProvider("numbl",Mme()),Lt.editor.defineTheme("numbl-dark",{base:"vs-dark",inherit:!0,rules:[{token:"comment",foreground:"6A9955"},{token:"keyword",foreground:"C586C0"},{token:"number",foreground:"B5CEA8"},{token:"string",foreground:"CE9178"},{token:"operator",foreground:"D4D4D4"}],colors:{}}),Lt.editor.setTheme("numbl-dark")},wi=re.jsxs(An,{sx:{height:"100%",display:"flex",flexDirection:"column"},children:[re.jsxs(Qy,{value:xt?0:st,onChange:(ut,Lt)=>We(Lt),sx:{borderBottom:1,borderColor:"divider",minHeight:34,"& .MuiTab-root":{textTransform:"none",fontWeight:500,fontSize:"0.8rem",minHeight:34,py:0}},children:[re.jsx(pu,{label:"Script"}),!xt&&re.jsx(pu,{label:"REPL"})]}),re.jsx(An,{sx:{flexGrow:1,overflow:"hidden"},children:(st===0||xt)&&!qt?re.jsxs(An,{sx:{height:"100%",display:"flex",alignItems:"center",justifyContent:"center",flexDirection:"column",gap:2,p:3},children:[re.jsx(Sr,{variant:"body2",color:"text.secondary",children:"No file open"}),re.jsx(kd,{variant:"contained",size:"small",startIcon:re.jsx(pue,{}),onClick:()=>i(),sx:{textTransform:"none"},children:"New file"})]}):st===0||xt?re.jsxs(An,{sx:{height:"100%",display:"flex",flexDirection:"column"},children:[re.jsxs(An,{sx:{px:1.5,py:.5,borderBottom:1,borderColor:"divider",display:"flex",alignItems:"center",gap:1,bgcolor:"background.default"},children:[vr&&re.jsxs(re.Fragment,{children:[re.jsx(kd,{variant:"contained",color:le?"error":"success",size:"small",startIcon:le?re.jsx(fue,{}):re.jsx(hue,{}),onClick:le?gs:go,sx:{py:.25,px:2,fontSize:"0.8rem",fontWeight:600,textTransform:"none",borderRadius:1.5,boxShadow:"none","&:hover":{boxShadow:"none"}},children:le?"Stop":"Run"}),re.jsx(ku,{title:Kr==="browser"?"Executing in browser":"Executing on local server"+(ms==="disconnected"?" (not connected)":"")+(Or===!0?" (native)":Or===!1?" (no native addon)":""),children:re.jsx(lo,{size:"small",onClick:()=>{hn(Ct),Yt(!0)},sx:{opacity:.5,"&:hover":{opacity:1}},children:Kr==="browser"?re.jsx(KF,{sx:{fontSize:"0.9rem"}}):re.jsx(ZF,{sx:{fontSize:"0.9rem",color:"error.main"}})})}),Kr==="localhost"&&re.jsx(Sr,{variant:"caption",sx:{fontSize:"0.65rem",opacity:.5,color:"error.main"},children:ms==="disconnected"?"no server":Or?"native":Or===!1?"no native":"local"}),!xt&&re.jsx(ku,{title:$i?"Workspace persists across runs and REPL (click for fresh each run)":"Fresh workspace each run (click to persist across runs and REPL)",children:re.jsx(Sr,{variant:"caption",onClick:()=>Ce(ut=>!ut),sx:{cursor:"pointer",fontSize:"0.7rem",px:.5,py:.1,borderRadius:.5,bgcolor:$i?"action.selected":"transparent",opacity:$i?1:.5,"&:hover":{opacity:1},userSelect:"none"},children:$i?"persist":"1x"})}),re.jsx(ku,{title:ie==="0"?"Interpreter only (click for JIT)":"JIT (click to disable)",children:re.jsx(Sr,{variant:"caption",onClick:()=>Y(ut=>ut==="0"?"1":"0"),sx:{cursor:"pointer",fontSize:"0.7rem",px:.5,py:.1,borderRadius:.5,bgcolor:ie!=="0"?"action.selected":"transparent",opacity:ie!=="0"?1:.5,"&:hover":{opacity:1},userSelect:"none"},children:ie==="0"?"no jit":"jit"})})]}),Un&&re.jsxs(WA,{value:He,exclusive:!0,size:"small",onChange:(ut,Lt)=>{Lt&&je(Lt)},sx:{"& .MuiToggleButton-root":{py:0,px:1,fontSize:"0.7rem",textTransform:"none",lineHeight:1.6}},children:[re.jsx(Np,{value:"rendered",children:"Rendered"}),re.jsx(Np,{value:"source",children:"Source"})]}),qt&&re.jsx(Sr,{variant:"caption",color:"text.secondary",sx:{fontFamily:"monospace",fontWeight:"bold"},children:qt.name})]}),re.jsx(An,{sx:{flexGrow:1,minHeight:0},children:kn?re.jsx(An,{sx:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%",color:"text.secondary"},children:re.jsxs(Sr,{variant:"body2",children:["Binary file (",ts?.length??0," bytes)"]})}):Un&&He==="rendered"?re.jsx(An,{sx:{height:"100%",overflow:"auto",p:3},children:re.jsx(sPe,{source:ts?L_(ts):"",onFileLink:Xt})}):re.jsx(pce,{height:"100%",language:qt?.name.endsWith(".js")?"javascript":Un?"markdown":"numbl",defaultValue:ts?L_(ts):"",onChange:ut=>{const Lt=xPe.encode(ut||"");Yl(Lt),fi.current=!0,G(t)?E(t,Lt):r(ut||"")},onMount:ga,options:{minimap:{enabled:!1},fontSize:14,lineNumbers:"on",scrollBeyondLastLine:!1}})})]}):re.jsx(_Me,{onExecute:qr,onClear:cr,isExecuting:lt,onTerminalReady:Gn})})]}),Ua=re.jsxs(An,{sx:{height:"100%",display:"flex",flexDirection:"column"},children:[re.jsxs(Qy,{value:ye,onChange:(ut,Lt)=>Xe(Lt),sx:{borderBottom:1,borderColor:"divider",minHeight:34,"& .MuiTab-root":{textTransform:"none",fontWeight:500,fontSize:"0.8rem",minHeight:34,py:0}},children:[re.jsx(pu,{label:"Output"}),re.jsx(pu,{label:"Internals"})]}),re.jsxs(An,{sx:{flexGrow:1,overflow:"hidden"},children:[ye===0&&re.jsx(An,{sx:{height:"100%",overflow:"auto",p:1.5},children:ce?re.jsx("pre",{style:{margin:0,fontFamily:'Menlo, Monaco, "Courier New", monospace',fontSize:"13px",lineHeight:1.5,whiteSpace:"pre-wrap"},children:ce}):re.jsx(Sr,{variant:"body2",color:"text.disabled",sx:{fontStyle:"italic",mt:2,textAlign:"center"},children:"Run a script to see output here"})}),ye===1&&re.jsxs(An,{sx:{height:"100%",display:"flex",flexDirection:"column"},children:[re.jsx(An,{sx:{display:"flex",alignItems:"center",px:1,py:.5},children:re.jsxs(WA,{value:Fe,exclusive:!0,onChange:(ut,Lt)=>{Lt&&Oe(Lt)},size:"small",children:[re.jsx(Np,{value:"js",sx:{py:0,px:1,fontSize:"0.75rem",textTransform:"none"},children:"JavaScript"}),re.jsx(Np,{value:"ast",sx:{py:0,px:1,fontSize:"0.75rem",textTransform:"none"},children:"AST"}),re.jsx(Np,{value:"dispatch",sx:{py:0,px:1,fontSize:"0.75rem",textTransform:"none"},children:"Dispatch"})]})}),re.jsxs(An,{sx:{flexGrow:1,overflow:"hidden"},children:[Fe==="js"&&re.jsx(An,{sx:{height:"100%",overflow:"auto"},children:re.jsx(Qu,{language:"javascript",style:YF,customStyle:{margin:0,fontSize:12},children:de||""})}),Fe==="ast"&&re.jsx(G9,{data:we,label:"ast",fileSources:Le}),Fe==="dispatch"&&re.jsx(An,{sx:{height:"100%",overflow:"auto",p:1},children:te&&Object.keys(te).length>0?re.jsx("pre",{style:{margin:0,fontFamily:"monospace",fontSize:"13px",whiteSpace:"pre-wrap"},children:Object.entries(te).sort(([,ut],[,Lt])=>Lt-ut).map(([ut,Lt])=>`${ut}: ${Lt}`).join(`
|
|
4824
4824
|
`)}):re.jsx(Sr,{variant:"body2",color:"text.secondary",children:"No dispatchUnknown calls"})})]})]})]})]}),Nc=re.jsxs(re.Fragment,{children:[re.jsxs(An,{sx:ge?{position:"fixed",inset:0,zIndex:1250,bgcolor:"background.paper",display:"flex",flexDirection:"column"}:{height:"100%",display:"flex",flexDirection:"column"},children:[re.jsxs(An,{sx:{display:"flex",alignItems:"center",borderBottom:1,borderColor:"divider"},children:[re.jsx(Qy,{value:Q,onChange:(ut,Lt)=>xe(Lt),variant:"scrollable",scrollButtons:"auto",sx:{flexGrow:1,minHeight:34,"& .MuiTab-root":{textTransform:"none",fontWeight:500,fontSize:"0.8rem",minHeight:34,py:0}},children:En.map(ut=>re.jsx(pu,{label:`Figure ${ut}`},ut))}),re.jsx(ku,{title:"Open this figure in the numbl figure viewer (new tab)",children:re.jsx("span",{children:re.jsx(lo,{size:"small",onClick:Ki,disabled:En.length===0,sx:{mx:.5,flexShrink:0},children:re.jsx(yue,{fontSize:"small"})})})}),re.jsx(ku,{title:"Download this figure's data as HDF5 (.h5)",children:re.jsx("span",{children:re.jsx(lo,{size:"small",onClick:_r,disabled:cn||En.length===0,sx:{mx:.5,flexShrink:0},children:re.jsx(QF,{fontSize:"small"})})})}),re.jsx(ku,{title:ge?"Collapse figures (Esc)":"Expand figures to full window",children:re.jsx(lo,{size:"small",onClick:()=>be(ut=>!ut),sx:{mx:.5,flexShrink:0},children:ge?re.jsx(gue,{fontSize:"small"}):re.jsx(mue,{fontSize:"small"})})})]}),re.jsx(An,{sx:{flexGrow:1,overflow:"auto",p:1},children:En.length>0?re.jsx(LD,{figure:K.figs[En[Q]]}):re.jsx(Sr,{variant:"body2",color:"text.disabled",sx:{p:2,textAlign:"center",fontStyle:"italic"},children:"No figures"})})]}),re.jsx(koe,{open:fr!==null,onClose:()=>dr(null),anchorOrigin:{vertical:"bottom",horizontal:"center"},children:re.jsxs(Qte,{severity:fr?.kind==="failed"?"warning":"info",onClose:()=>dr(null),sx:{width:"100%"},children:[fr?.kind==="uploading"&&"Preparing a temporary link to the figure viewer…",fr?.kind==="ready"&&re.jsxs(re.Fragment,{children:["Figure too large for a direct link — uploaded (encrypted, temporary)."," ",re.jsx(Tv,{href:fr.url,target:"_blank",rel:"noreferrer",children:"Open in figure viewer"})]}),fr?.kind==="failed"&&re.jsxs(re.Fragment,{children:["This figure is too large to open through a link, and the temporary upload failed. Download it (",re.jsx(QF,{fontSize:"inherit",sx:{verticalAlign:"middle"}}),") and"," ",re.jsx(Tv,{href:fr.baseUrl,target:"_blank",rel:"noreferrer",children:"open the figure viewer"}),", then load the file."]})]})})]}),Lc=re.jsx(cge,{files:Z,activeFileId:t,onSelectFile:ut=>{n(ut),ot&&ze(!1)},onAddFile:async ut=>{if(ut&&O(ut)){const Lt=await T(ut);Lt&&Be(Lt)}else{const Lt=await i(ut);Lt&&Be(Lt)}},onAddFolder:async ut=>{if(ut&&O(ut)){const Lt=await k(ut);Lt&&Be(`folder:${Lt}`)}else{const Lt=await s(ut);Lt&&Be(`folder:${Lt}`)}},onDeleteFile:ut=>G(ut)?R(ut):o(ut),onDeleteFolder:ut=>O(ut)?P(ut):a(ut),onRenameFile:(ut,Lt)=>G(ut)?F(ut,Lt):l(ut,Lt),onRenameFolder:(ut,Lt)=>O(ut)?L(ut,Lt):c(ut,Lt),onMoveFile:(ut,Lt)=>G(ut)?j(ut,Lt):u(ut,Lt),onDuplicateFile:async ut=>{const Lt=G(ut)?await V(ut):await h(ut);Lt&&Be(Lt)},onUploadFiles:f,fileCount:Z.length,triggerRenameId:ve});return re.jsxs(re.Fragment,{children:[re.jsxs(An,{sx:{height:"100vh",display:"flex",flexDirection:"column"},children:[re.jsxs(An,{sx:{display:"flex",alignItems:"center",px:1.5,py:.5,borderBottom:1,borderColor:"divider",bgcolor:"#1e1e2e",color:"#cdd6f4",minHeight:40,flexShrink:0,"& .MuiIconButton-root":{color:"#cdd6f4"},"& .MuiTypography-root":{color:"#cdd6f4"}},children:[ot&&re.jsx(lo,{size:"small",onClick:()=>ze(!0),sx:{mr:.5},children:re.jsx(due,{fontSize:"small"})}),d]}),ot?re.jsxs(re.Fragment,{children:[re.jsx(Kie,{open:Ae,onClose:()=>ze(!1),slotProps:{paper:{sx:{width:260}}},children:Lc}),re.jsxs(Sw,{direction:"horizontal",initialSize:Math.round(window.innerHeight*.55),minSize:100,children:[wi,re.jsxs(An,{sx:{height:"100%",display:"flex",flexDirection:"column"},children:[re.jsxs(Qy,{value:_t,onChange:(ut,Lt)=>zt(Lt),variant:"scrollable",scrollButtons:"auto",sx:{borderBottom:1,borderColor:"divider",minHeight:32},children:[re.jsx(pu,{label:"Output",sx:{minHeight:32,py:0,fontSize:"0.75rem",minWidth:0,px:1}}),re.jsx(pu,{label:"Figures",sx:{minHeight:32,py:0,fontSize:"0.75rem",minWidth:0,px:1}}),re.jsx(pu,{label:"JS",sx:{minHeight:32,py:0,fontSize:"0.75rem",minWidth:0,px:1}}),re.jsx(pu,{label:"AST",sx:{minHeight:32,py:0,fontSize:"0.75rem",minWidth:0,px:1}})]}),re.jsxs(An,{sx:{flexGrow:1,overflow:"hidden"},children:[_t===0&&re.jsx(An,{sx:{height:"100%",overflow:"auto",p:1},children:re.jsx("pre",{style:{margin:0,fontFamily:"monospace",fontSize:"13px",whiteSpace:"pre-wrap"},children:ce})}),_t===1&&re.jsx(An,{sx:{height:"100%",overflow:"auto",p:1},children:En.length>0?re.jsxs(re.Fragment,{children:[En.length>1&&re.jsx(Qy,{value:Q,onChange:(ut,Lt)=>xe(Lt),variant:"scrollable",scrollButtons:"auto",sx:{minHeight:28,mb:.5},children:En.map(ut=>re.jsx(pu,{label:`Fig ${ut}`,sx:{minHeight:28,py:0,fontSize:"0.7rem"}},ut))}),re.jsx(LD,{figure:K.figs[En[Q]]})]}):re.jsx(Sr,{variant:"body2",color:"text.secondary",children:"No figures"})}),_t===2&&re.jsx(An,{sx:{height:"100%",overflow:"auto"},children:re.jsx(Qu,{language:"javascript",style:YF,customStyle:{margin:0,fontSize:12},children:de||""})}),_t===3&&re.jsx(G9,{data:we,label:"ast",fileSources:Le})]})]})]})]}):re.jsxs(Sw,{direction:"vertical",initialSize:St,minSize:150,maxSize:400,onSizeChange:yt,children:[Lc,re.jsxs(Sw,{direction:"vertical",initialSize:mt,onSizeChange:rn,children:[wi,re.jsxs(Sw,{direction:"horizontal",initialSize:ht,minSize:Gt,onSizeChange:Rt,children:[Ua,Nc]})]})]})]}),re.jsxs(wie,{open:Ut,onClose:()=>Yt(!1),maxWidth:"sm",fullWidth:!0,children:[re.jsx(Pie,{children:"Execution Settings"}),re.jsxs(Nie,{sx:{display:"flex",flexDirection:"column",gap:2,pt:3,overflow:"visible"},children:[re.jsxs(WA,{value:xt?"local":"browser",exclusive:!0,onChange:xi,size:"small",children:[re.jsxs(Np,{value:"browser",sx:{px:2},children:[re.jsx(KF,{sx:{fontSize:"1rem",mr:.5}}),"In browser"]}),re.jsxs(Np,{value:"local",sx:{px:2},children:[re.jsx(ZF,{sx:{fontSize:"1rem",mr:.5}}),"Local server"]})]}),re.jsx(yF,{label:"Server URL",value:Ot,onChange:ut=>hn(ut.target.value),size:"small",fullWidth:!0,disabled:!xt,slotProps:{input:{style:{fontFamily:"monospace",fontSize:"0.85rem"}}},helperText:"Default: http://localhost:3001"}),re.jsxs(An,{sx:{display:"flex",alignItems:"center",gap:1},children:[re.jsx(Sr,{variant:"body2",color:xt?ms==="connected"?"success.main":ms==="disconnected"?"warning.main":"text.secondary":"text.disabled",children:xt?ms==="connected"?"Connected"+(Or===!0?" (native addon available)":Or===!1?" (no native addon)":""):ms==="disconnected"?"Not connected":"Checking...":"Server status: n/a"}),re.jsx(kd,{size:"small",disabled:!xt,onClick:()=>{Yo("unknown"),F7(Ot,Hi.current).then(ut=>{ut?(ps(ut.nativeAddon===!0),Yo("connected")):Yo("disconnected")})},sx:{minWidth:0,textTransform:"none"},children:"Check"})]}),re.jsxs(An,{sx:{opacity:xt?1:.4},children:[re.jsx(Sr,{variant:"body2",color:"text.secondary",gutterBottom:!0,children:"Start a local server in a terminal:"}),re.jsx(An,{component:"pre",sx:{bgcolor:"#1e1e1e",color:"#ccc",p:1.5,borderRadius:1,fontSize:"0.8rem",m:0,whiteSpace:"pre-wrap"},children:`# If installed globally:
|
|
@@ -4827,5 +4827,5 @@ npx numbl serve --passkey ${Ci}
|
|
|
4827
4827
|
# Or from the repo (dev mode):
|
|
4828
4828
|
npx tsx src/cli.ts serve --passkey ${Ci}`}),re.jsx(Sr,{variant:"caption",color:"text.disabled",onClick:()=>{Lo(ds()),Yo("disconnected")},sx:{cursor:"pointer",mt:.5,"&:hover":{color:"text.secondary"}},children:"regenerate passkey"})]}),re.jsx(nR,{}),re.jsxs(An,{children:[re.jsx(lse,{control:re.jsx(Hoe,{checked:Zn,onChange:ut=>Mn(ut.target.checked),size:"small"}),label:"Accelerate matrix math (WASM)"}),re.jsx(Sr,{variant:"caption",color:"text.secondary",component:"p",children:"Loads an external WebAssembly LAPACK/BLAS bridge to speed up matrix multiplication in the browser. Falls back to the built-in pure-JS implementation when off or unavailable. Turning it off is temporary — it re-enables on page reload."}),re.jsx(yF,{label:"Bridge URL",value:Kn,onChange:ut=>Ts(ut.target.value),size:"small",fullWidth:!0,disabled:!Zn,sx:{mt:1},slotProps:{input:{style:{fontFamily:"monospace",fontSize:"0.85rem"}}},helperText:"Base URL serving numbl-bridge.json"})]})]}),re.jsxs(Cie,{children:[re.jsx(kd,{onClick:()=>Yt(!1),children:"Cancel"}),re.jsx(kd,{variant:"contained",onClick:_n,children:"Save"})]})]})]})}const SPe=4,U7=0,O7=1,MPe=2;function X1(e){let t=e.length;for(;--t>=0;)e[t]=0}const EPe=0,TY=1,CPe=2,APe=3,TPe=258,RP=29,Hb=256,ib=Hb+1+RP,J0=30,DP=19,kY=2*ib+1,mm=15,S3=16,kPe=7,NP=256,RY=16,DY=17,NY=18,GN=new Uint8Array([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]),c2=new Uint8Array([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]),RPe=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),LY=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),DPe=512,of=new Array((ib+2)*2);X1(of);const gv=new Array(J0*2);X1(gv);const sb=new Array(DPe);X1(sb);const ob=new Array(TPe-APe+1);X1(ob);const LP=new Array(RP);X1(LP);const _M=new Array(J0);X1(_M);function M3(e,t,n,r,i){this.static_tree=e,this.extra_bits=t,this.extra_base=n,this.elems=r,this.max_length=i,this.has_stree=e&&e.length}let IY,PY,BY;function E3(e,t){this.dyn_tree=e,this.max_code=0,this.stat_desc=t}const FY=e=>e<256?sb[e]:sb[256+(e>>>7)],ab=(e,t)=>{e.pending_buf[e.pending++]=t&255,e.pending_buf[e.pending++]=t>>>8&255},gl=(e,t,n)=>{e.bi_valid>S3-n?(e.bi_buf|=t<<e.bi_valid&65535,ab(e,e.bi_buf),e.bi_buf=t>>S3-e.bi_valid,e.bi_valid+=n-S3):(e.bi_buf|=t<<e.bi_valid&65535,e.bi_valid+=n)},Bu=(e,t,n)=>{gl(e,n[t*2],n[t*2+1])},zY=(e,t)=>{let n=0;do n|=e&1,e>>>=1,n<<=1;while(--t>0);return n>>>1},NPe=e=>{e.bi_valid===16?(ab(e,e.bi_buf),e.bi_buf=0,e.bi_valid=0):e.bi_valid>=8&&(e.pending_buf[e.pending++]=e.bi_buf&255,e.bi_buf>>=8,e.bi_valid-=8)},LPe=(e,t)=>{const n=t.dyn_tree,r=t.max_code,i=t.stat_desc.static_tree,s=t.stat_desc.has_stree,o=t.stat_desc.extra_bits,a=t.stat_desc.extra_base,l=t.stat_desc.max_length;let c,u,h,f,d,p,m=0;for(f=0;f<=mm;f++)e.bl_count[f]=0;for(n[e.heap[e.heap_max]*2+1]=0,c=e.heap_max+1;c<kY;c++)u=e.heap[c],f=n[n[u*2+1]*2+1]+1,f>l&&(f=l,m++),n[u*2+1]=f,!(u>r)&&(e.bl_count[f]++,d=0,u>=a&&(d=o[u-a]),p=n[u*2],e.opt_len+=p*(f+d),s&&(e.static_len+=p*(i[u*2+1]+d)));if(m!==0){do{for(f=l-1;e.bl_count[f]===0;)f--;e.bl_count[f]--,e.bl_count[f+1]+=2,e.bl_count[l]--,m-=2}while(m>0);for(f=l;f!==0;f--)for(u=e.bl_count[f];u!==0;)h=e.heap[--c],!(h>r)&&(n[h*2+1]!==f&&(e.opt_len+=(f-n[h*2+1])*n[h*2],n[h*2+1]=f),u--)}},UY=(e,t,n)=>{const r=new Array(mm+1);let i=0,s,o;for(s=1;s<=mm;s++)i=i+n[s-1]<<1,r[s]=i;for(o=0;o<=t;o++){let a=e[o*2+1];a!==0&&(e[o*2]=zY(r[a]++,a))}},IPe=()=>{let e,t,n,r,i;const s=new Array(mm+1);for(n=0,r=0;r<RP-1;r++)for(LP[r]=n,e=0;e<1<<GN[r];e++)ob[n++]=r;for(ob[n-1]=r,i=0,r=0;r<16;r++)for(_M[r]=i,e=0;e<1<<c2[r];e++)sb[i++]=r;for(i>>=7;r<J0;r++)for(_M[r]=i<<7,e=0;e<1<<c2[r]-7;e++)sb[256+i++]=r;for(t=0;t<=mm;t++)s[t]=0;for(e=0;e<=143;)of[e*2+1]=8,e++,s[8]++;for(;e<=255;)of[e*2+1]=9,e++,s[9]++;for(;e<=279;)of[e*2+1]=7,e++,s[7]++;for(;e<=287;)of[e*2+1]=8,e++,s[8]++;for(UY(of,ib+1,s),e=0;e<J0;e++)gv[e*2+1]=5,gv[e*2]=zY(e,5);IY=new M3(of,GN,Hb+1,ib,mm),PY=new M3(gv,c2,0,J0,mm),BY=new M3(new Array(0),RPe,0,DP,kPe)},OY=e=>{let t;for(t=0;t<ib;t++)e.dyn_ltree[t*2]=0;for(t=0;t<J0;t++)e.dyn_dtree[t*2]=0;for(t=0;t<DP;t++)e.bl_tree[t*2]=0;e.dyn_ltree[NP*2]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},jY=e=>{e.bi_valid>8?ab(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},j7=(e,t,n,r)=>{const i=t*2,s=n*2;return e[i]<e[s]||e[i]===e[s]&&r[t]<=r[n]},C3=(e,t,n)=>{const r=e.heap[n];let i=n<<1;for(;i<=e.heap_len&&(i<e.heap_len&&j7(t,e.heap[i+1],e.heap[i],e.depth)&&i++,!j7(t,r,e.heap[i],e.depth));)e.heap[n]=e.heap[i],n=i,i<<=1;e.heap[n]=r},H7=(e,t,n)=>{let r,i,s=0,o,a;if(e.sym_next!==0)do r=e.pending_buf[e.sym_buf+s++]&255,r+=(e.pending_buf[e.sym_buf+s++]&255)<<8,i=e.pending_buf[e.sym_buf+s++],r===0?Bu(e,i,t):(o=ob[i],Bu(e,o+Hb+1,t),a=GN[o],a!==0&&(i-=LP[o],gl(e,i,a)),r--,o=FY(r),Bu(e,o,n),a=c2[o],a!==0&&(r-=_M[o],gl(e,r,a)));while(s<e.sym_next);Bu(e,NP,t)},XN=(e,t)=>{const n=t.dyn_tree,r=t.stat_desc.static_tree,i=t.stat_desc.has_stree,s=t.stat_desc.elems;let o,a,l=-1,c;for(e.heap_len=0,e.heap_max=kY,o=0;o<s;o++)n[o*2]!==0?(e.heap[++e.heap_len]=l=o,e.depth[o]=0):n[o*2+1]=0;for(;e.heap_len<2;)c=e.heap[++e.heap_len]=l<2?++l:0,n[c*2]=1,e.depth[c]=0,e.opt_len--,i&&(e.static_len-=r[c*2+1]);for(t.max_code=l,o=e.heap_len>>1;o>=1;o--)C3(e,n,o);c=s;do o=e.heap[1],e.heap[1]=e.heap[e.heap_len--],C3(e,n,1),a=e.heap[1],e.heap[--e.heap_max]=o,e.heap[--e.heap_max]=a,n[c*2]=n[o*2]+n[a*2],e.depth[c]=(e.depth[o]>=e.depth[a]?e.depth[o]:e.depth[a])+1,n[o*2+1]=n[a*2+1]=c,e.heap[1]=c++,C3(e,n,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],LPe(e,t),UY(n,l,e.bl_count)},$7=(e,t,n)=>{let r,i=-1,s,o=t[1],a=0,l=7,c=4;for(o===0&&(l=138,c=3),t[(n+1)*2+1]=65535,r=0;r<=n;r++)s=o,o=t[(r+1)*2+1],!(++a<l&&s===o)&&(a<c?e.bl_tree[s*2]+=a:s!==0?(s!==i&&e.bl_tree[s*2]++,e.bl_tree[RY*2]++):a<=10?e.bl_tree[DY*2]++:e.bl_tree[NY*2]++,a=0,i=s,o===0?(l=138,c=3):s===o?(l=6,c=3):(l=7,c=4))},V7=(e,t,n)=>{let r,i=-1,s,o=t[1],a=0,l=7,c=4;for(o===0&&(l=138,c=3),r=0;r<=n;r++)if(s=o,o=t[(r+1)*2+1],!(++a<l&&s===o)){if(a<c)do Bu(e,s,e.bl_tree);while(--a!==0);else s!==0?(s!==i&&(Bu(e,s,e.bl_tree),a--),Bu(e,RY,e.bl_tree),gl(e,a-3,2)):a<=10?(Bu(e,DY,e.bl_tree),gl(e,a-3,3)):(Bu(e,NY,e.bl_tree),gl(e,a-11,7));a=0,i=s,o===0?(l=138,c=3):s===o?(l=6,c=3):(l=7,c=4)}},PPe=e=>{let t;for($7(e,e.dyn_ltree,e.l_desc.max_code),$7(e,e.dyn_dtree,e.d_desc.max_code),XN(e,e.bl_desc),t=DP-1;t>=3&&e.bl_tree[LY[t]*2+1]===0;t--);return e.opt_len+=3*(t+1)+5+5+4,t},BPe=(e,t,n,r)=>{let i;for(gl(e,t-257,5),gl(e,n-1,5),gl(e,r-4,4),i=0;i<r;i++)gl(e,e.bl_tree[LY[i]*2+1],3);V7(e,e.dyn_ltree,t-1),V7(e,e.dyn_dtree,n-1)},FPe=e=>{let t=4093624447,n;for(n=0;n<=31;n++,t>>>=1)if(t&1&&e.dyn_ltree[n*2]!==0)return U7;if(e.dyn_ltree[18]!==0||e.dyn_ltree[20]!==0||e.dyn_ltree[26]!==0)return O7;for(n=32;n<Hb;n++)if(e.dyn_ltree[n*2]!==0)return O7;return U7};let W7=!1;const zPe=e=>{W7||(IPe(),W7=!0),e.l_desc=new E3(e.dyn_ltree,IY),e.d_desc=new E3(e.dyn_dtree,PY),e.bl_desc=new E3(e.bl_tree,BY),e.bi_buf=0,e.bi_valid=0,OY(e)},HY=(e,t,n,r)=>{gl(e,(EPe<<1)+(r?1:0),3),jY(e),ab(e,n),ab(e,~n),n&&e.pending_buf.set(e.window.subarray(t,t+n),e.pending),e.pending+=n},UPe=e=>{gl(e,TY<<1,3),Bu(e,NP,of),NPe(e)},OPe=(e,t,n,r)=>{let i,s,o=0;e.level>0?(e.strm.data_type===MPe&&(e.strm.data_type=FPe(e)),XN(e,e.l_desc),XN(e,e.d_desc),o=PPe(e),i=e.opt_len+3+7>>>3,s=e.static_len+3+7>>>3,s<=i&&(i=s)):i=s=n+5,n+4<=i&&t!==-1?HY(e,t,n,r):e.strategy===SPe||s===i?(gl(e,(TY<<1)+(r?1:0),3),H7(e,of,gv)):(gl(e,(CPe<<1)+(r?1:0),3),BPe(e,e.l_desc.max_code+1,e.d_desc.max_code+1,o+1),H7(e,e.dyn_ltree,e.dyn_dtree)),OY(e),r&&jY(e)},jPe=(e,t,n)=>(e.pending_buf[e.sym_buf+e.sym_next++]=t,e.pending_buf[e.sym_buf+e.sym_next++]=t>>8,e.pending_buf[e.sym_buf+e.sym_next++]=n,t===0?e.dyn_ltree[n*2]++:(e.matches++,t--,e.dyn_ltree[(ob[n]+Hb+1)*2]++,e.dyn_dtree[FY(t)*2]++),e.sym_next===e.sym_end);var HPe=zPe,$Pe=HY,VPe=OPe,WPe=jPe,qPe=UPe,GPe={_tr_init:HPe,_tr_stored_block:$Pe,_tr_flush_block:VPe,_tr_tally:WPe,_tr_align:qPe};const XPe=(e,t,n,r)=>{let i=e&65535|0,s=e>>>16&65535|0,o=0;for(;n!==0;){o=n>2e3?2e3:n,n-=o;do i=i+t[r++]|0,s=s+i|0;while(--o);i%=65521,s%=65521}return i|s<<16|0};var lb=XPe;const YPe=()=>{let e,t=[];for(var n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=e&1?3988292384^e>>>1:e>>>1;t[n]=e}return t},KPe=new Uint32Array(YPe()),ZPe=(e,t,n,r)=>{const i=KPe,s=r+n;e^=-1;for(let o=r;o<s;o++)e=e>>>8^i[(e^t[o])&255];return e^-1};var zo=ZPe,Om={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},$b={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:QPe,_tr_stored_block:YN,_tr_flush_block:JPe,_tr_tally:qd,_tr_align:e5e}=GPe,{Z_NO_FLUSH:Gd,Z_PARTIAL_FLUSH:t5e,Z_FULL_FLUSH:n5e,Z_FINISH:bc,Z_BLOCK:q7,Z_OK:aa,Z_STREAM_END:G7,Z_STREAM_ERROR:Yu,Z_DATA_ERROR:r5e,Z_BUF_ERROR:A3,Z_DEFAULT_COMPRESSION:i5e,Z_FILTERED:s5e,Z_HUFFMAN_ONLY:CS,Z_RLE:o5e,Z_FIXED:a5e,Z_DEFAULT_STRATEGY:l5e,Z_UNKNOWN:c5e,Z_DEFLATED:LE}=$b,u5e=9,h5e=15,f5e=8,d5e=29,p5e=256,KN=p5e+1+d5e,m5e=30,g5e=19,y5e=2*KN+1,_5e=15,Qr=3,jd=258,Ku=jd+Qr+1,v5e=32,T1=42,IP=57,ZN=69,QN=73,JN=91,eL=103,gm=113,X_=666,Qa=1,Y1=2,jm=3,K1=4,b5e=3,ym=(e,t)=>(e.msg=Om[t],t),X7=e=>e*2-(e>4?9:0),Ld=e=>{let t=e.length;for(;--t>=0;)e[t]=0},x5e=e=>{let t,n,r,i=e.w_size;t=e.hash_size,r=t;do n=e.head[--r],e.head[r]=n>=i?n-i:0;while(--t);t=i,r=t;do n=e.prev[--r],e.prev[r]=n>=i?n-i:0;while(--t)};let w5e=(e,t,n)=>(t<<e.hash_shift^n)&e.hash_mask,Xd=w5e;const Bl=e=>{const t=e.state;let n=t.pending;n>e.avail_out&&(n=e.avail_out),n!==0&&(e.output.set(t.pending_buf.subarray(t.pending_out,t.pending_out+n),e.next_out),e.next_out+=n,t.pending_out+=n,e.total_out+=n,e.avail_out-=n,t.pending-=n,t.pending===0&&(t.pending_out=0))},$l=(e,t)=>{JPe(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,t),e.block_start=e.strstart,Bl(e.strm)},pi=(e,t)=>{e.pending_buf[e.pending++]=t},T_=(e,t)=>{e.pending_buf[e.pending++]=t>>>8&255,e.pending_buf[e.pending++]=t&255},tL=(e,t,n,r)=>{let i=e.avail_in;return i>r&&(i=r),i===0?0:(e.avail_in-=i,t.set(e.input.subarray(e.next_in,e.next_in+i),n),e.state.wrap===1?e.adler=lb(e.adler,t,i,n):e.state.wrap===2&&(e.adler=zo(e.adler,t,i,n)),e.next_in+=i,e.total_in+=i,i)},$Y=(e,t)=>{let n=e.max_chain_length,r=e.strstart,i,s,o=e.prev_length,a=e.nice_match;const l=e.strstart>e.w_size-Ku?e.strstart-(e.w_size-Ku):0,c=e.window,u=e.w_mask,h=e.prev,f=e.strstart+jd;let d=c[r+o-1],p=c[r+o];e.prev_length>=e.good_match&&(n>>=2),a>e.lookahead&&(a=e.lookahead);do if(i=t,!(c[i+o]!==p||c[i+o-1]!==d||c[i]!==c[r]||c[++i]!==c[r+1])){r+=2,i++;do;while(c[++r]===c[++i]&&c[++r]===c[++i]&&c[++r]===c[++i]&&c[++r]===c[++i]&&c[++r]===c[++i]&&c[++r]===c[++i]&&c[++r]===c[++i]&&c[++r]===c[++i]&&r<f);if(s=jd-(f-r),r=f-jd,s>o){if(e.match_start=t,o=s,s>=a)break;d=c[r+o-1],p=c[r+o]}}while((t=h[t&u])>l&&--n!==0);return o<=e.lookahead?o:e.lookahead},k1=e=>{const t=e.w_size;let n,r,i;do{if(r=e.window_size-e.lookahead-e.strstart,e.strstart>=t+(t-Ku)&&(e.window.set(e.window.subarray(t,t+t-r),0),e.match_start-=t,e.strstart-=t,e.block_start-=t,e.insert>e.strstart&&(e.insert=e.strstart),x5e(e),r+=t),e.strm.avail_in===0)break;if(n=tL(e.strm,e.window,e.strstart+e.lookahead,r),e.lookahead+=n,e.lookahead+e.insert>=Qr)for(i=e.strstart-e.insert,e.ins_h=e.window[i],e.ins_h=Xd(e,e.ins_h,e.window[i+1]);e.insert&&(e.ins_h=Xd(e,e.ins_h,e.window[i+Qr-1]),e.prev[i&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=i,i++,e.insert--,!(e.lookahead+e.insert<Qr)););}while(e.lookahead<Ku&&e.strm.avail_in!==0)},VY=(e,t)=>{let n=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,r,i,s,o=0,a=e.strm.avail_in;do{if(r=65535,s=e.bi_valid+42>>3,e.strm.avail_out<s||(s=e.strm.avail_out-s,i=e.strstart-e.block_start,r>i+e.strm.avail_in&&(r=i+e.strm.avail_in),r>s&&(r=s),r<n&&(r===0&&t!==bc||t===Gd||r!==i+e.strm.avail_in)))break;o=t===bc&&r===i+e.strm.avail_in?1:0,YN(e,0,0,o),e.pending_buf[e.pending-4]=r,e.pending_buf[e.pending-3]=r>>8,e.pending_buf[e.pending-2]=~r,e.pending_buf[e.pending-1]=~r>>8,Bl(e.strm),i&&(i>r&&(i=r),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+i),e.strm.next_out),e.strm.next_out+=i,e.strm.avail_out-=i,e.strm.total_out+=i,e.block_start+=i,r-=i),r&&(tL(e.strm,e.strm.output,e.strm.next_out,r),e.strm.next_out+=r,e.strm.avail_out-=r,e.strm.total_out+=r)}while(o===0);return a-=e.strm.avail_in,a&&(a>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=a&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-a,e.strm.next_in),e.strstart),e.strstart+=a,e.insert+=a>e.w_size-e.insert?e.w_size-e.insert:a),e.block_start=e.strstart),e.high_water<e.strstart&&(e.high_water=e.strstart),o?K1:t!==Gd&&t!==bc&&e.strm.avail_in===0&&e.strstart===e.block_start?Y1:(s=e.window_size-e.strstart,e.strm.avail_in>s&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,s+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),s>e.strm.avail_in&&(s=e.strm.avail_in),s&&(tL(e.strm,e.window,e.strstart,s),e.strstart+=s,e.insert+=s>e.w_size-e.insert?e.w_size-e.insert:s),e.high_water<e.strstart&&(e.high_water=e.strstart),s=e.bi_valid+42>>3,s=e.pending_buf_size-s>65535?65535:e.pending_buf_size-s,n=s>e.w_size?e.w_size:s,i=e.strstart-e.block_start,(i>=n||(i||t===bc)&&t!==Gd&&e.strm.avail_in===0&&i<=s)&&(r=i>s?s:i,o=t===bc&&e.strm.avail_in===0&&r===i?1:0,YN(e,e.block_start,r,o),e.block_start+=r,Bl(e.strm)),o?jm:Qa)},T3=(e,t)=>{let n,r;for(;;){if(e.lookahead<Ku){if(k1(e),e.lookahead<Ku&&t===Gd)return Qa;if(e.lookahead===0)break}if(n=0,e.lookahead>=Qr&&(e.ins_h=Xd(e,e.ins_h,e.window[e.strstart+Qr-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),n!==0&&e.strstart-n<=e.w_size-Ku&&(e.match_length=$Y(e,n)),e.match_length>=Qr)if(r=qd(e,e.strstart-e.match_start,e.match_length-Qr),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=Qr){e.match_length--;do e.strstart++,e.ins_h=Xd(e,e.ins_h,e.window[e.strstart+Qr-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!==0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=Xd(e,e.ins_h,e.window[e.strstart+1]);else r=qd(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&($l(e,!1),e.strm.avail_out===0))return Qa}return e.insert=e.strstart<Qr-1?e.strstart:Qr-1,t===bc?($l(e,!0),e.strm.avail_out===0?jm:K1):e.sym_next&&($l(e,!1),e.strm.avail_out===0)?Qa:Y1},C0=(e,t)=>{let n,r,i;for(;;){if(e.lookahead<Ku){if(k1(e),e.lookahead<Ku&&t===Gd)return Qa;if(e.lookahead===0)break}if(n=0,e.lookahead>=Qr&&(e.ins_h=Xd(e,e.ins_h,e.window[e.strstart+Qr-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=Qr-1,n!==0&&e.prev_length<e.max_lazy_match&&e.strstart-n<=e.w_size-Ku&&(e.match_length=$Y(e,n),e.match_length<=5&&(e.strategy===s5e||e.match_length===Qr&&e.strstart-e.match_start>4096)&&(e.match_length=Qr-1)),e.prev_length>=Qr&&e.match_length<=e.prev_length){i=e.strstart+e.lookahead-Qr,r=qd(e,e.strstart-1-e.prev_match,e.prev_length-Qr),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=i&&(e.ins_h=Xd(e,e.ins_h,e.window[e.strstart+Qr-1]),n=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!==0);if(e.match_available=0,e.match_length=Qr-1,e.strstart++,r&&($l(e,!1),e.strm.avail_out===0))return Qa}else if(e.match_available){if(r=qd(e,0,e.window[e.strstart-1]),r&&$l(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return Qa}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=qd(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<Qr-1?e.strstart:Qr-1,t===bc?($l(e,!0),e.strm.avail_out===0?jm:K1):e.sym_next&&($l(e,!1),e.strm.avail_out===0)?Qa:Y1},S5e=(e,t)=>{let n,r,i,s;const o=e.window;for(;;){if(e.lookahead<=jd){if(k1(e),e.lookahead<=jd&&t===Gd)return Qa;if(e.lookahead===0)break}if(e.match_length=0,e.lookahead>=Qr&&e.strstart>0&&(i=e.strstart-1,r=o[i],r===o[++i]&&r===o[++i]&&r===o[++i])){s=e.strstart+jd;do;while(r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&r===o[++i]&&i<s);e.match_length=jd-(s-i),e.match_length>e.lookahead&&(e.match_length=e.lookahead)}if(e.match_length>=Qr?(n=qd(e,1,e.match_length-Qr),e.lookahead-=e.match_length,e.strstart+=e.match_length,e.match_length=0):(n=qd(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++),n&&($l(e,!1),e.strm.avail_out===0))return Qa}return e.insert=0,t===bc?($l(e,!0),e.strm.avail_out===0?jm:K1):e.sym_next&&($l(e,!1),e.strm.avail_out===0)?Qa:Y1},M5e=(e,t)=>{let n;for(;;){if(e.lookahead===0&&(k1(e),e.lookahead===0)){if(t===Gd)return Qa;break}if(e.match_length=0,n=qd(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++,n&&($l(e,!1),e.strm.avail_out===0))return Qa}return e.insert=0,t===bc?($l(e,!0),e.strm.avail_out===0?jm:K1):e.sym_next&&($l(e,!1),e.strm.avail_out===0)?Qa:Y1};function xu(e,t,n,r,i){this.good_length=e,this.max_lazy=t,this.nice_length=n,this.max_chain=r,this.func=i}const Y_=[new xu(0,0,0,0,VY),new xu(4,4,8,4,T3),new xu(4,5,16,8,T3),new xu(4,6,32,32,T3),new xu(4,4,16,16,C0),new xu(8,16,32,32,C0),new xu(8,16,128,128,C0),new xu(8,32,128,256,C0),new xu(32,128,258,1024,C0),new xu(32,258,258,4096,C0)],E5e=e=>{e.window_size=2*e.w_size,Ld(e.head),e.max_lazy_match=Y_[e.level].max_lazy,e.good_match=Y_[e.level].good_length,e.nice_match=Y_[e.level].nice_length,e.max_chain_length=Y_[e.level].max_chain,e.strstart=0,e.block_start=0,e.lookahead=0,e.insert=0,e.match_length=e.prev_length=Qr-1,e.match_available=0,e.ins_h=0};function C5e(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=LE,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(y5e*2),this.dyn_dtree=new Uint16Array((2*m5e+1)*2),this.bl_tree=new Uint16Array((2*g5e+1)*2),Ld(this.dyn_ltree),Ld(this.dyn_dtree),Ld(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(_5e+1),this.heap=new Uint16Array(2*KN+1),Ld(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(2*KN+1),Ld(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const Vb=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.status!==T1&&t.status!==IP&&t.status!==ZN&&t.status!==QN&&t.status!==JN&&t.status!==eL&&t.status!==gm&&t.status!==X_?1:0},WY=e=>{if(Vb(e))return ym(e,Yu);e.total_in=e.total_out=0,e.data_type=c5e;const t=e.state;return t.pending=0,t.pending_out=0,t.wrap<0&&(t.wrap=-t.wrap),t.status=t.wrap===2?IP:t.wrap?T1:gm,e.adler=t.wrap===2?0:1,t.last_flush=-2,QPe(t),aa},qY=e=>{const t=WY(e);return t===aa&&E5e(e.state),t},A5e=(e,t)=>Vb(e)||e.state.wrap!==2?Yu:(e.state.gzhead=t,aa),GY=(e,t,n,r,i,s)=>{if(!e)return Yu;let o=1;if(t===i5e&&(t=6),r<0?(o=0,r=-r):r>15&&(o=2,r-=16),i<1||i>u5e||n!==LE||r<8||r>15||t<0||t>9||s<0||s>a5e||r===8&&o!==1)return ym(e,Yu);r===8&&(r=9);const a=new C5e;return e.state=a,a.strm=e,a.status=T1,a.wrap=o,a.gzhead=null,a.w_bits=r,a.w_size=1<<a.w_bits,a.w_mask=a.w_size-1,a.hash_bits=i+7,a.hash_size=1<<a.hash_bits,a.hash_mask=a.hash_size-1,a.hash_shift=~~((a.hash_bits+Qr-1)/Qr),a.window=new Uint8Array(a.w_size*2),a.head=new Uint16Array(a.hash_size),a.prev=new Uint16Array(a.w_size),a.lit_bufsize=1<<i+6,a.pending_buf_size=a.lit_bufsize*4,a.pending_buf=new Uint8Array(a.pending_buf_size),a.sym_buf=a.lit_bufsize,a.sym_end=(a.lit_bufsize-1)*3,a.level=t,a.strategy=s,a.method=n,qY(e)},T5e=(e,t)=>GY(e,t,LE,h5e,f5e,l5e),k5e=(e,t)=>{if(Vb(e)||t>q7||t<0)return e?ym(e,Yu):Yu;const n=e.state;if(!e.output||e.avail_in!==0&&!e.input||n.status===X_&&t!==bc)return ym(e,e.avail_out===0?A3:Yu);const r=n.last_flush;if(n.last_flush=t,n.pending!==0){if(Bl(e),e.avail_out===0)return n.last_flush=-1,aa}else if(e.avail_in===0&&X7(t)<=X7(r)&&t!==bc)return ym(e,A3);if(n.status===X_&&e.avail_in!==0)return ym(e,A3);if(n.status===T1&&n.wrap===0&&(n.status=gm),n.status===T1){let i=LE+(n.w_bits-8<<4)<<8,s=-1;if(n.strategy>=CS||n.level<2?s=0:n.level<6?s=1:n.level===6?s=2:s=3,i|=s<<6,n.strstart!==0&&(i|=v5e),i+=31-i%31,T_(n,i),n.strstart!==0&&(T_(n,e.adler>>>16),T_(n,e.adler&65535)),e.adler=1,n.status=gm,Bl(e),n.pending!==0)return n.last_flush=-1,aa}if(n.status===IP){if(e.adler=0,pi(n,31),pi(n,139),pi(n,8),n.gzhead)pi(n,(n.gzhead.text?1:0)+(n.gzhead.hcrc?2:0)+(n.gzhead.extra?4:0)+(n.gzhead.name?8:0)+(n.gzhead.comment?16:0)),pi(n,n.gzhead.time&255),pi(n,n.gzhead.time>>8&255),pi(n,n.gzhead.time>>16&255),pi(n,n.gzhead.time>>24&255),pi(n,n.level===9?2:n.strategy>=CS||n.level<2?4:0),pi(n,n.gzhead.os&255),n.gzhead.extra&&n.gzhead.extra.length&&(pi(n,n.gzhead.extra.length&255),pi(n,n.gzhead.extra.length>>8&255)),n.gzhead.hcrc&&(e.adler=zo(e.adler,n.pending_buf,n.pending,0)),n.gzindex=0,n.status=ZN;else if(pi(n,0),pi(n,0),pi(n,0),pi(n,0),pi(n,0),pi(n,n.level===9?2:n.strategy>=CS||n.level<2?4:0),pi(n,b5e),n.status=gm,Bl(e),n.pending!==0)return n.last_flush=-1,aa}if(n.status===ZN){if(n.gzhead.extra){let i=n.pending,s=(n.gzhead.extra.length&65535)-n.gzindex;for(;n.pending+s>n.pending_buf_size;){let a=n.pending_buf_size-n.pending;if(n.pending_buf.set(n.gzhead.extra.subarray(n.gzindex,n.gzindex+a),n.pending),n.pending=n.pending_buf_size,n.gzhead.hcrc&&n.pending>i&&(e.adler=zo(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex+=a,Bl(e),n.pending!==0)return n.last_flush=-1,aa;i=0,s-=a}let o=new Uint8Array(n.gzhead.extra);n.pending_buf.set(o.subarray(n.gzindex,n.gzindex+s),n.pending),n.pending+=s,n.gzhead.hcrc&&n.pending>i&&(e.adler=zo(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=QN}if(n.status===QN){if(n.gzhead.name){let i=n.pending,s;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(e.adler=zo(e.adler,n.pending_buf,n.pending-i,i)),Bl(e),n.pending!==0)return n.last_flush=-1,aa;i=0}n.gzindex<n.gzhead.name.length?s=n.gzhead.name.charCodeAt(n.gzindex++)&255:s=0,pi(n,s)}while(s!==0);n.gzhead.hcrc&&n.pending>i&&(e.adler=zo(e.adler,n.pending_buf,n.pending-i,i)),n.gzindex=0}n.status=JN}if(n.status===JN){if(n.gzhead.comment){let i=n.pending,s;do{if(n.pending===n.pending_buf_size){if(n.gzhead.hcrc&&n.pending>i&&(e.adler=zo(e.adler,n.pending_buf,n.pending-i,i)),Bl(e),n.pending!==0)return n.last_flush=-1,aa;i=0}n.gzindex<n.gzhead.comment.length?s=n.gzhead.comment.charCodeAt(n.gzindex++)&255:s=0,pi(n,s)}while(s!==0);n.gzhead.hcrc&&n.pending>i&&(e.adler=zo(e.adler,n.pending_buf,n.pending-i,i))}n.status=eL}if(n.status===eL){if(n.gzhead.hcrc){if(n.pending+2>n.pending_buf_size&&(Bl(e),n.pending!==0))return n.last_flush=-1,aa;pi(n,e.adler&255),pi(n,e.adler>>8&255),e.adler=0}if(n.status=gm,Bl(e),n.pending!==0)return n.last_flush=-1,aa}if(e.avail_in!==0||n.lookahead!==0||t!==Gd&&n.status!==X_){let i=n.level===0?VY(n,t):n.strategy===CS?M5e(n,t):n.strategy===o5e?S5e(n,t):Y_[n.level].func(n,t);if((i===jm||i===K1)&&(n.status=X_),i===Qa||i===jm)return e.avail_out===0&&(n.last_flush=-1),aa;if(i===Y1&&(t===t5e?e5e(n):t!==q7&&(YN(n,0,0,!1),t===n5e&&(Ld(n.head),n.lookahead===0&&(n.strstart=0,n.block_start=0,n.insert=0))),Bl(e),e.avail_out===0))return n.last_flush=-1,aa}return t!==bc?aa:n.wrap<=0?G7:(n.wrap===2?(pi(n,e.adler&255),pi(n,e.adler>>8&255),pi(n,e.adler>>16&255),pi(n,e.adler>>24&255),pi(n,e.total_in&255),pi(n,e.total_in>>8&255),pi(n,e.total_in>>16&255),pi(n,e.total_in>>24&255)):(T_(n,e.adler>>>16),T_(n,e.adler&65535)),Bl(e),n.wrap>0&&(n.wrap=-n.wrap),n.pending!==0?aa:G7)},R5e=e=>{if(Vb(e))return Yu;const t=e.state.status;return e.state=null,t===gm?ym(e,r5e):aa},D5e=(e,t)=>{let n=t.length;if(Vb(e))return Yu;const r=e.state,i=r.wrap;if(i===2||i===1&&r.status!==T1||r.lookahead)return Yu;if(i===1&&(e.adler=lb(e.adler,t,n,0)),r.wrap=0,n>=r.w_size){i===0&&(Ld(r.head),r.strstart=0,r.block_start=0,r.insert=0);let l=new Uint8Array(r.w_size);l.set(t.subarray(n-r.w_size,n),0),t=l,n=r.w_size}const s=e.avail_in,o=e.next_in,a=e.input;for(e.avail_in=n,e.next_in=0,e.input=t,k1(r);r.lookahead>=Qr;){let l=r.strstart,c=r.lookahead-(Qr-1);do r.ins_h=Xd(r,r.ins_h,r.window[l+Qr-1]),r.prev[l&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=l,l++;while(--c);r.strstart=l,r.lookahead=Qr-1,k1(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=Qr-1,r.match_available=0,e.next_in=o,e.input=a,e.avail_in=s,r.wrap=i,aa};var N5e=T5e,L5e=GY,I5e=qY,P5e=WY,B5e=A5e,F5e=k5e,z5e=R5e,U5e=D5e,O5e="pako deflate (from Nodeca project)",yv={deflateInit:N5e,deflateInit2:L5e,deflateReset:I5e,deflateResetKeep:P5e,deflateSetHeader:B5e,deflate:F5e,deflateEnd:z5e,deflateSetDictionary:U5e,deflateInfo:O5e};const j5e=(e,t)=>Object.prototype.hasOwnProperty.call(e,t);var H5e=function(e){const t=Array.prototype.slice.call(arguments,1);for(;t.length;){const n=t.shift();if(n){if(typeof n!="object")throw new TypeError(n+"must be non-object");for(const r in n)j5e(n,r)&&(e[r]=n[r])}}return e},$5e=e=>{let t=0;for(let r=0,i=e.length;r<i;r++)t+=e[r].length;const n=new Uint8Array(t);for(let r=0,i=0,s=e.length;r<s;r++){let o=e[r];n.set(o,i),i+=o.length}return n},IE={assign:H5e,flattenChunks:$5e};let XY=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{XY=!1}const cb=new Uint8Array(256);for(let e=0;e<256;e++)cb[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;cb[254]=cb[254]=1;var V5e=e=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(e);let t,n,r,i,s,o=e.length,a=0;for(i=0;i<o;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),a+=n<128?1:n<2048?2:n<65536?3:4;for(t=new Uint8Array(a),s=0,i=0;s<a;i++)n=e.charCodeAt(i),(n&64512)===55296&&i+1<o&&(r=e.charCodeAt(i+1),(r&64512)===56320&&(n=65536+(n-55296<<10)+(r-56320),i++)),n<128?t[s++]=n:n<2048?(t[s++]=192|n>>>6,t[s++]=128|n&63):n<65536?(t[s++]=224|n>>>12,t[s++]=128|n>>>6&63,t[s++]=128|n&63):(t[s++]=240|n>>>18,t[s++]=128|n>>>12&63,t[s++]=128|n>>>6&63,t[s++]=128|n&63);return t};const W5e=(e,t)=>{if(t<65534&&e.subarray&&XY)return String.fromCharCode.apply(null,e.length===t?e:e.subarray(0,t));let n="";for(let r=0;r<t;r++)n+=String.fromCharCode(e[r]);return n};var q5e=(e,t)=>{const n=t||e.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(e.subarray(0,t));let r,i;const s=new Array(n*2);for(i=0,r=0;r<n;){let o=e[r++];if(o<128){s[i++]=o;continue}let a=cb[o];if(a>4){s[i++]=65533,r+=a-1;continue}for(o&=a===2?31:a===3?15:7;a>1&&r<n;)o=o<<6|e[r++]&63,a--;if(a>1){s[i++]=65533;continue}o<65536?s[i++]=o:(o-=65536,s[i++]=55296|o>>10&1023,s[i++]=56320|o&1023)}return W5e(s,i)},G5e=(e,t)=>{t=t||e.length,t>e.length&&(t=e.length);let n=t-1;for(;n>=0&&(e[n]&192)===128;)n--;return n<0||n===0?t:n+cb[e[n]]>t?n:t},ub={string2buf:V5e,buf2string:q5e,utf8border:G5e};function X5e(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}var YY=X5e;const KY=Object.prototype.toString,{Z_NO_FLUSH:Y5e,Z_SYNC_FLUSH:K5e,Z_FULL_FLUSH:Z5e,Z_FINISH:Q5e,Z_OK:vM,Z_STREAM_END:J5e,Z_DEFAULT_COMPRESSION:e4e,Z_DEFAULT_STRATEGY:t4e,Z_DEFLATED:n4e}=$b;function Wb(e){this.options=IE.assign({level:e4e,method:n4e,chunkSize:16384,windowBits:15,memLevel:8,strategy:t4e},e||{});let t=this.options;t.raw&&t.windowBits>0?t.windowBits=-t.windowBits:t.gzip&&t.windowBits>0&&t.windowBits<16&&(t.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new YY,this.strm.avail_out=0;let n=yv.deflateInit2(this.strm,t.level,t.method,t.windowBits,t.memLevel,t.strategy);if(n!==vM)throw new Error(Om[n]);if(t.header&&yv.deflateSetHeader(this.strm,t.header),t.dictionary){let r;if(typeof t.dictionary=="string"?r=ub.string2buf(t.dictionary):KY.call(t.dictionary)==="[object ArrayBuffer]"?r=new Uint8Array(t.dictionary):r=t.dictionary,n=yv.deflateSetDictionary(this.strm,r),n!==vM)throw new Error(Om[n]);this._dict_set=!0}}Wb.prototype.push=function(e,t){const n=this.strm,r=this.options.chunkSize;let i,s;if(this.ended)return!1;for(t===~~t?s=t:s=t===!0?Q5e:Y5e,typeof e=="string"?n.input=ub.string2buf(e):KY.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){if(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),(s===K5e||s===Z5e)&&n.avail_out<=6){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(i=yv.deflate(n,s),i===J5e)return n.next_out>0&&this.onData(n.output.subarray(0,n.next_out)),i=yv.deflateEnd(this.strm),this.onEnd(i),this.ended=!0,i===vM;if(n.avail_out===0){this.onData(n.output);continue}if(s>0&&n.next_out>0){this.onData(n.output.subarray(0,n.next_out)),n.avail_out=0;continue}if(n.avail_in===0)break}return!0};Wb.prototype.onData=function(e){this.chunks.push(e)};Wb.prototype.onEnd=function(e){e===vM&&(this.result=IE.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function PP(e,t){const n=new Wb(t);if(n.push(e,!0),n.err)throw n.msg||Om[n.err];return n.result}function r4e(e,t){return t=t||{},t.raw=!0,PP(e,t)}function i4e(e,t){return t=t||{},t.gzip=!0,PP(e,t)}var s4e=Wb,o4e=PP,a4e=r4e,l4e=i4e,c4e={Deflate:s4e,deflate:o4e,deflateRaw:a4e,gzip:l4e};const AS=16209,u4e=16191;var h4e=function(t,n){let r,i,s,o,a,l,c,u,h,f,d,p,m,y,_,b,x,S,M,E,T,k,R,P;const F=t.state;r=t.next_in,R=t.input,i=r+(t.avail_in-5),s=t.next_out,P=t.output,o=s-(n-t.avail_out),a=s+(t.avail_out-257),l=F.dmax,c=F.wsize,u=F.whave,h=F.wnext,f=F.window,d=F.hold,p=F.bits,m=F.lencode,y=F.distcode,_=(1<<F.lenbits)-1,b=(1<<F.distbits)-1;e:do{p<15&&(d+=R[r++]<<p,p+=8,d+=R[r++]<<p,p+=8),x=m[d&_];t:for(;;){if(S=x>>>24,d>>>=S,p-=S,S=x>>>16&255,S===0)P[s++]=x&65535;else if(S&16){M=x&65535,S&=15,S&&(p<S&&(d+=R[r++]<<p,p+=8),M+=d&(1<<S)-1,d>>>=S,p-=S),p<15&&(d+=R[r++]<<p,p+=8,d+=R[r++]<<p,p+=8),x=y[d&b];n:for(;;){if(S=x>>>24,d>>>=S,p-=S,S=x>>>16&255,S&16){if(E=x&65535,S&=15,p<S&&(d+=R[r++]<<p,p+=8,p<S&&(d+=R[r++]<<p,p+=8)),E+=d&(1<<S)-1,E>l){t.msg="invalid distance too far back",F.mode=AS;break e}if(d>>>=S,p-=S,S=s-o,E>S){if(S=E-S,S>u&&F.sane){t.msg="invalid distance too far back",F.mode=AS;break e}if(T=0,k=f,h===0){if(T+=c-S,S<M){M-=S;do P[s++]=f[T++];while(--S);T=s-E,k=P}}else if(h<S){if(T+=c+h-S,S-=h,S<M){M-=S;do P[s++]=f[T++];while(--S);if(T=0,h<M){S=h,M-=S;do P[s++]=f[T++];while(--S);T=s-E,k=P}}}else if(T+=h-S,S<M){M-=S;do P[s++]=f[T++];while(--S);T=s-E,k=P}for(;M>2;)P[s++]=k[T++],P[s++]=k[T++],P[s++]=k[T++],M-=3;M&&(P[s++]=k[T++],M>1&&(P[s++]=k[T++]))}else{T=s-E;do P[s++]=P[T++],P[s++]=P[T++],P[s++]=P[T++],M-=3;while(M>2);M&&(P[s++]=P[T++],M>1&&(P[s++]=P[T++]))}}else if((S&64)===0){x=y[(x&65535)+(d&(1<<S)-1)];continue n}else{t.msg="invalid distance code",F.mode=AS;break e}break}}else if((S&64)===0){x=m[(x&65535)+(d&(1<<S)-1)];continue t}else if(S&32){F.mode=u4e;break e}else{t.msg="invalid literal/length code",F.mode=AS;break e}break}}while(r<i&&s<a);M=p>>3,r-=M,p-=M<<3,d&=(1<<p)-1,t.next_in=r,t.next_out=s,t.avail_in=r<i?5+(i-r):5-(r-i),t.avail_out=s<a?257+(a-s):257-(s-a),F.hold=d,F.bits=p};const A0=15,Y7=852,K7=592,Z7=0,k3=1,Q7=2,f4e=new Uint16Array([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]),d4e=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),p4e=new Uint16Array([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,0,0]),m4e=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]),g4e=(e,t,n,r,i,s,o,a)=>{const l=a.bits;let c=0,u=0,h=0,f=0,d=0,p=0,m=0,y=0,_=0,b=0,x,S,M,E,T,k=null,R;const P=new Uint16Array(A0+1),F=new Uint16Array(A0+1);let L=null,j,V,U;for(c=0;c<=A0;c++)P[c]=0;for(u=0;u<r;u++)P[t[n+u]]++;for(d=l,f=A0;f>=1&&P[f]===0;f--);if(d>f&&(d=f),f===0)return i[s++]=1<<24|64<<16|0,i[s++]=1<<24|64<<16|0,a.bits=1,0;for(h=1;h<f&&P[h]===0;h++);for(d<h&&(d=h),y=1,c=1;c<=A0;c++)if(y<<=1,y-=P[c],y<0)return-1;if(y>0&&(e===Z7||f!==1))return-1;for(F[1]=0,c=1;c<A0;c++)F[c+1]=F[c]+P[c];for(u=0;u<r;u++)t[n+u]!==0&&(o[F[t[n+u]]++]=u);if(e===Z7?(k=L=o,R=20):e===k3?(k=f4e,L=d4e,R=257):(k=p4e,L=m4e,R=0),b=0,u=0,c=h,T=s,p=d,m=0,M=-1,_=1<<d,E=_-1,e===k3&&_>Y7||e===Q7&&_>K7)return 1;for(;;){j=c-m,o[u]+1<R?(V=0,U=o[u]):o[u]>=R?(V=L[o[u]-R],U=k[o[u]-R]):(V=96,U=0),x=1<<c-m,S=1<<p,h=S;do S-=x,i[T+(b>>m)+S]=j<<24|V<<16|U|0;while(S!==0);for(x=1<<c-1;b&x;)x>>=1;if(x!==0?(b&=x-1,b+=x):b=0,u++,--P[c]===0){if(c===f)break;c=t[n+o[u]]}if(c>d&&(b&E)!==M){for(m===0&&(m=d),T+=h,p=c-m,y=1<<p;p+m<f&&(y-=P[p+m],!(y<=0));)p++,y<<=1;if(_+=1<<p,e===k3&&_>Y7||e===Q7&&_>K7)return 1;M=b&E,i[M]=d<<24|p<<16|T-s|0}}return b!==0&&(i[T+b]=c-m<<24|64<<16|0),a.bits=d,0};var _v=g4e;const y4e=0,ZY=1,QY=2,{Z_FINISH:J7,Z_BLOCK:_4e,Z_TREES:TS,Z_OK:Hm,Z_STREAM_END:v4e,Z_NEED_DICT:b4e,Z_STREAM_ERROR:kc,Z_DATA_ERROR:JY,Z_MEM_ERROR:eK,Z_BUF_ERROR:x4e,Z_DEFLATED:ej}=$b,PE=16180,tj=16181,nj=16182,rj=16183,ij=16184,sj=16185,oj=16186,aj=16187,lj=16188,cj=16189,bM=16190,Jh=16191,R3=16192,uj=16193,D3=16194,hj=16195,fj=16196,dj=16197,pj=16198,kS=16199,RS=16200,mj=16201,gj=16202,yj=16203,_j=16204,vj=16205,N3=16206,bj=16207,xj=16208,ws=16209,tK=16210,nK=16211,w4e=852,S4e=592,M4e=15,E4e=M4e,wj=e=>(e>>>24&255)+(e>>>8&65280)+((e&65280)<<8)+((e&255)<<24);function C4e(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const Jm=e=>{if(!e)return 1;const t=e.state;return!t||t.strm!==e||t.mode<PE||t.mode>nK?1:0},rK=e=>{if(Jm(e))return kc;const t=e.state;return e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=t.wrap&1),t.mode=PE,t.last=0,t.havedict=0,t.flags=-1,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new Int32Array(w4e),t.distcode=t.distdyn=new Int32Array(S4e),t.sane=1,t.back=-1,Hm},iK=e=>{if(Jm(e))return kc;const t=e.state;return t.wsize=0,t.whave=0,t.wnext=0,rK(e)},sK=(e,t)=>{let n;if(Jm(e))return kc;const r=e.state;return t<0?(n=0,t=-t):(n=(t>>4)+5,t<48&&(t&=15)),t&&(t<8||t>15)?kc:(r.window!==null&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,iK(e))},oK=(e,t)=>{if(!e)return kc;const n=new C4e;e.state=n,n.strm=e,n.window=null,n.mode=PE;const r=sK(e,t);return r!==Hm&&(e.state=null),r},A4e=e=>oK(e,E4e);let Sj=!0,L3,I3;const T4e=e=>{if(Sj){L3=new Int32Array(512),I3=new Int32Array(32);let t=0;for(;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(_v(ZY,e.lens,0,288,L3,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;_v(QY,e.lens,0,32,I3,0,e.work,{bits:5}),Sj=!1}e.lencode=L3,e.lenbits=9,e.distcode=I3,e.distbits=5},aK=(e,t,n,r)=>{let i;const s=e.state;return s.window===null&&(s.wsize=1<<s.wbits,s.wnext=0,s.whave=0,s.window=new Uint8Array(s.wsize)),r>=s.wsize?(s.window.set(t.subarray(n-s.wsize,n),0),s.wnext=0,s.whave=s.wsize):(i=s.wsize-s.wnext,i>r&&(i=r),s.window.set(t.subarray(n-r,n-r+i),s.wnext),r-=i,r?(s.window.set(t.subarray(n-r,n),0),s.wnext=r,s.whave=s.wsize):(s.wnext+=i,s.wnext===s.wsize&&(s.wnext=0),s.whave<s.wsize&&(s.whave+=i))),0},k4e=(e,t)=>{let n,r,i,s,o,a,l,c,u,h,f,d,p,m,y=0,_,b,x,S,M,E,T,k;const R=new Uint8Array(4);let P,F;const L=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(Jm(e)||!e.output||!e.input&&e.avail_in!==0)return kc;n=e.state,n.mode===Jh&&(n.mode=R3),o=e.next_out,i=e.output,l=e.avail_out,s=e.next_in,r=e.input,a=e.avail_in,c=n.hold,u=n.bits,h=a,f=l,k=Hm;e:for(;;)switch(n.mode){case PE:if(n.wrap===0){n.mode=R3;break}for(;u<16;){if(a===0)break e;a--,c+=r[s++]<<u,u+=8}if(n.wrap&2&&c===35615){n.wbits===0&&(n.wbits=15),n.check=0,R[0]=c&255,R[1]=c>>>8&255,n.check=zo(n.check,R,2,0),c=0,u=0,n.mode=tj;break}if(n.head&&(n.head.done=!1),!(n.wrap&1)||(((c&255)<<8)+(c>>8))%31){e.msg="incorrect header check",n.mode=ws;break}if((c&15)!==ej){e.msg="unknown compression method",n.mode=ws;break}if(c>>>=4,u-=4,T=(c&15)+8,n.wbits===0&&(n.wbits=T),T>15||T>n.wbits){e.msg="invalid window size",n.mode=ws;break}n.dmax=1<<n.wbits,n.flags=0,e.adler=n.check=1,n.mode=c&512?cj:Jh,c=0,u=0;break;case tj:for(;u<16;){if(a===0)break e;a--,c+=r[s++]<<u,u+=8}if(n.flags=c,(n.flags&255)!==ej){e.msg="unknown compression method",n.mode=ws;break}if(n.flags&57344){e.msg="unknown header flags set",n.mode=ws;break}n.head&&(n.head.text=c>>8&1),n.flags&512&&n.wrap&4&&(R[0]=c&255,R[1]=c>>>8&255,n.check=zo(n.check,R,2,0)),c=0,u=0,n.mode=nj;case nj:for(;u<32;){if(a===0)break e;a--,c+=r[s++]<<u,u+=8}n.head&&(n.head.time=c),n.flags&512&&n.wrap&4&&(R[0]=c&255,R[1]=c>>>8&255,R[2]=c>>>16&255,R[3]=c>>>24&255,n.check=zo(n.check,R,4,0)),c=0,u=0,n.mode=rj;case rj:for(;u<16;){if(a===0)break e;a--,c+=r[s++]<<u,u+=8}n.head&&(n.head.xflags=c&255,n.head.os=c>>8),n.flags&512&&n.wrap&4&&(R[0]=c&255,R[1]=c>>>8&255,n.check=zo(n.check,R,2,0)),c=0,u=0,n.mode=ij;case ij:if(n.flags&1024){for(;u<16;){if(a===0)break e;a--,c+=r[s++]<<u,u+=8}n.length=c,n.head&&(n.head.extra_len=c),n.flags&512&&n.wrap&4&&(R[0]=c&255,R[1]=c>>>8&255,n.check=zo(n.check,R,2,0)),c=0,u=0}else n.head&&(n.head.extra=null);n.mode=sj;case sj:if(n.flags&1024&&(d=n.length,d>a&&(d=a),d&&(n.head&&(T=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Uint8Array(n.head.extra_len)),n.head.extra.set(r.subarray(s,s+d),T)),n.flags&512&&n.wrap&4&&(n.check=zo(n.check,r,d,s)),a-=d,s+=d,n.length-=d),n.length))break e;n.length=0,n.mode=oj;case oj:if(n.flags&2048){if(a===0)break e;d=0;do T=r[s+d++],n.head&&T&&n.length<65536&&(n.head.name+=String.fromCharCode(T));while(T&&d<a);if(n.flags&512&&n.wrap&4&&(n.check=zo(n.check,r,d,s)),a-=d,s+=d,T)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=aj;case aj:if(n.flags&4096){if(a===0)break e;d=0;do T=r[s+d++],n.head&&T&&n.length<65536&&(n.head.comment+=String.fromCharCode(T));while(T&&d<a);if(n.flags&512&&n.wrap&4&&(n.check=zo(n.check,r,d,s)),a-=d,s+=d,T)break e}else n.head&&(n.head.comment=null);n.mode=lj;case lj:if(n.flags&512){for(;u<16;){if(a===0)break e;a--,c+=r[s++]<<u,u+=8}if(n.wrap&4&&c!==(n.check&65535)){e.msg="header crc mismatch",n.mode=ws;break}c=0,u=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=Jh;break;case cj:for(;u<32;){if(a===0)break e;a--,c+=r[s++]<<u,u+=8}e.adler=n.check=wj(c),c=0,u=0,n.mode=bM;case bM:if(n.havedict===0)return e.next_out=o,e.avail_out=l,e.next_in=s,e.avail_in=a,n.hold=c,n.bits=u,b4e;e.adler=n.check=1,n.mode=Jh;case Jh:if(t===_4e||t===TS)break e;case R3:if(n.last){c>>>=u&7,u-=u&7,n.mode=N3;break}for(;u<3;){if(a===0)break e;a--,c+=r[s++]<<u,u+=8}switch(n.last=c&1,c>>>=1,u-=1,c&3){case 0:n.mode=uj;break;case 1:if(T4e(n),n.mode=kS,t===TS){c>>>=2,u-=2;break e}break;case 2:n.mode=fj;break;case 3:e.msg="invalid block type",n.mode=ws}c>>>=2,u-=2;break;case uj:for(c>>>=u&7,u-=u&7;u<32;){if(a===0)break e;a--,c+=r[s++]<<u,u+=8}if((c&65535)!==(c>>>16^65535)){e.msg="invalid stored block lengths",n.mode=ws;break}if(n.length=c&65535,c=0,u=0,n.mode=D3,t===TS)break e;case D3:n.mode=hj;case hj:if(d=n.length,d){if(d>a&&(d=a),d>l&&(d=l),d===0)break e;i.set(r.subarray(s,s+d),o),a-=d,s+=d,l-=d,o+=d,n.length-=d;break}n.mode=Jh;break;case fj:for(;u<14;){if(a===0)break e;a--,c+=r[s++]<<u,u+=8}if(n.nlen=(c&31)+257,c>>>=5,u-=5,n.ndist=(c&31)+1,c>>>=5,u-=5,n.ncode=(c&15)+4,c>>>=4,u-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=ws;break}n.have=0,n.mode=dj;case dj:for(;n.have<n.ncode;){for(;u<3;){if(a===0)break e;a--,c+=r[s++]<<u,u+=8}n.lens[L[n.have++]]=c&7,c>>>=3,u-=3}for(;n.have<19;)n.lens[L[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,P={bits:n.lenbits},k=_v(y4e,n.lens,0,19,n.lencode,0,n.work,P),n.lenbits=P.bits,k){e.msg="invalid code lengths set",n.mode=ws;break}n.have=0,n.mode=pj;case pj:for(;n.have<n.nlen+n.ndist;){for(;y=n.lencode[c&(1<<n.lenbits)-1],_=y>>>24,b=y>>>16&255,x=y&65535,!(_<=u);){if(a===0)break e;a--,c+=r[s++]<<u,u+=8}if(x<16)c>>>=_,u-=_,n.lens[n.have++]=x;else{if(x===16){for(F=_+2;u<F;){if(a===0)break e;a--,c+=r[s++]<<u,u+=8}if(c>>>=_,u-=_,n.have===0){e.msg="invalid bit length repeat",n.mode=ws;break}T=n.lens[n.have-1],d=3+(c&3),c>>>=2,u-=2}else if(x===17){for(F=_+3;u<F;){if(a===0)break e;a--,c+=r[s++]<<u,u+=8}c>>>=_,u-=_,T=0,d=3+(c&7),c>>>=3,u-=3}else{for(F=_+7;u<F;){if(a===0)break e;a--,c+=r[s++]<<u,u+=8}c>>>=_,u-=_,T=0,d=11+(c&127),c>>>=7,u-=7}if(n.have+d>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=ws;break}for(;d--;)n.lens[n.have++]=T}}if(n.mode===ws)break;if(n.lens[256]===0){e.msg="invalid code -- missing end-of-block",n.mode=ws;break}if(n.lenbits=9,P={bits:n.lenbits},k=_v(ZY,n.lens,0,n.nlen,n.lencode,0,n.work,P),n.lenbits=P.bits,k){e.msg="invalid literal/lengths set",n.mode=ws;break}if(n.distbits=6,n.distcode=n.distdyn,P={bits:n.distbits},k=_v(QY,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,P),n.distbits=P.bits,k){e.msg="invalid distances set",n.mode=ws;break}if(n.mode=kS,t===TS)break e;case kS:n.mode=RS;case RS:if(a>=6&&l>=258){e.next_out=o,e.avail_out=l,e.next_in=s,e.avail_in=a,n.hold=c,n.bits=u,h4e(e,f),o=e.next_out,i=e.output,l=e.avail_out,s=e.next_in,r=e.input,a=e.avail_in,c=n.hold,u=n.bits,n.mode===Jh&&(n.back=-1);break}for(n.back=0;y=n.lencode[c&(1<<n.lenbits)-1],_=y>>>24,b=y>>>16&255,x=y&65535,!(_<=u);){if(a===0)break e;a--,c+=r[s++]<<u,u+=8}if(b&&(b&240)===0){for(S=_,M=b,E=x;y=n.lencode[E+((c&(1<<S+M)-1)>>S)],_=y>>>24,b=y>>>16&255,x=y&65535,!(S+_<=u);){if(a===0)break e;a--,c+=r[s++]<<u,u+=8}c>>>=S,u-=S,n.back+=S}if(c>>>=_,u-=_,n.back+=_,n.length=x,b===0){n.mode=vj;break}if(b&32){n.back=-1,n.mode=Jh;break}if(b&64){e.msg="invalid literal/length code",n.mode=ws;break}n.extra=b&15,n.mode=mj;case mj:if(n.extra){for(F=n.extra;u<F;){if(a===0)break e;a--,c+=r[s++]<<u,u+=8}n.length+=c&(1<<n.extra)-1,c>>>=n.extra,u-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=gj;case gj:for(;y=n.distcode[c&(1<<n.distbits)-1],_=y>>>24,b=y>>>16&255,x=y&65535,!(_<=u);){if(a===0)break e;a--,c+=r[s++]<<u,u+=8}if((b&240)===0){for(S=_,M=b,E=x;y=n.distcode[E+((c&(1<<S+M)-1)>>S)],_=y>>>24,b=y>>>16&255,x=y&65535,!(S+_<=u);){if(a===0)break e;a--,c+=r[s++]<<u,u+=8}c>>>=S,u-=S,n.back+=S}if(c>>>=_,u-=_,n.back+=_,b&64){e.msg="invalid distance code",n.mode=ws;break}n.offset=x,n.extra=b&15,n.mode=yj;case yj:if(n.extra){for(F=n.extra;u<F;){if(a===0)break e;a--,c+=r[s++]<<u,u+=8}n.offset+=c&(1<<n.extra)-1,c>>>=n.extra,u-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=ws;break}n.mode=_j;case _j:if(l===0)break e;if(d=f-l,n.offset>d){if(d=n.offset-d,d>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=ws;break}d>n.wnext?(d-=n.wnext,p=n.wsize-d):p=n.wnext-d,d>n.length&&(d=n.length),m=n.window}else m=i,p=o-n.offset,d=n.length;d>l&&(d=l),l-=d,n.length-=d;do i[o++]=m[p++];while(--d);n.length===0&&(n.mode=RS);break;case vj:if(l===0)break e;i[o++]=n.length,l--,n.mode=RS;break;case N3:if(n.wrap){for(;u<32;){if(a===0)break e;a--,c|=r[s++]<<u,u+=8}if(f-=l,e.total_out+=f,n.total+=f,n.wrap&4&&f&&(e.adler=n.check=n.flags?zo(n.check,i,f,o-f):lb(n.check,i,f,o-f)),f=l,n.wrap&4&&(n.flags?c:wj(c))!==n.check){e.msg="incorrect data check",n.mode=ws;break}c=0,u=0}n.mode=bj;case bj:if(n.wrap&&n.flags){for(;u<32;){if(a===0)break e;a--,c+=r[s++]<<u,u+=8}if(n.wrap&4&&c!==(n.total&4294967295)){e.msg="incorrect length check",n.mode=ws;break}c=0,u=0}n.mode=xj;case xj:k=v4e;break e;case ws:k=JY;break e;case tK:return eK;case nK:default:return kc}return e.next_out=o,e.avail_out=l,e.next_in=s,e.avail_in=a,n.hold=c,n.bits=u,(n.wsize||f!==e.avail_out&&n.mode<ws&&(n.mode<N3||t!==J7))&&aK(e,e.output,e.next_out,f-e.avail_out),h-=e.avail_in,f-=e.avail_out,e.total_in+=h,e.total_out+=f,n.total+=f,n.wrap&4&&f&&(e.adler=n.check=n.flags?zo(n.check,i,f,e.next_out-f):lb(n.check,i,f,e.next_out-f)),e.data_type=n.bits+(n.last?64:0)+(n.mode===Jh?128:0)+(n.mode===kS||n.mode===D3?256:0),(h===0&&f===0||t===J7)&&k===Hm&&(k=x4e),k},R4e=e=>{if(Jm(e))return kc;let t=e.state;return t.window&&(t.window=null),e.state=null,Hm},D4e=(e,t)=>{if(Jm(e))return kc;const n=e.state;return(n.wrap&2)===0?kc:(n.head=t,t.done=!1,Hm)},N4e=(e,t)=>{const n=t.length;let r,i,s;return Jm(e)||(r=e.state,r.wrap!==0&&r.mode!==bM)?kc:r.mode===bM&&(i=1,i=lb(i,t,n,0),i!==r.check)?JY:(s=aK(e,t,n,n),s?(r.mode=tK,eK):(r.havedict=1,Hm))};var L4e=iK,I4e=sK,P4e=rK,B4e=A4e,F4e=oK,z4e=k4e,U4e=R4e,O4e=D4e,j4e=N4e,H4e="pako inflate (from Nodeca project)",af={inflateReset:L4e,inflateReset2:I4e,inflateResetKeep:P4e,inflateInit:B4e,inflateInit2:F4e,inflate:z4e,inflateEnd:U4e,inflateGetHeader:O4e,inflateSetDictionary:j4e,inflateInfo:H4e};function $4e(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}var V4e=$4e;const lK=Object.prototype.toString,{Z_NO_FLUSH:W4e,Z_FINISH:q4e,Z_OK:hb,Z_STREAM_END:P3,Z_NEED_DICT:B3,Z_STREAM_ERROR:G4e,Z_DATA_ERROR:Mj,Z_MEM_ERROR:X4e}=$b;function qb(e){this.options=IE.assign({chunkSize:1024*64,windowBits:15,to:""},e||{});const t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,t.windowBits===0&&(t.windowBits=-15)),t.windowBits>=0&&t.windowBits<16&&!(e&&e.windowBits)&&(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&(t.windowBits&15)===0&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new YY,this.strm.avail_out=0;let n=af.inflateInit2(this.strm,t.windowBits);if(n!==hb)throw new Error(Om[n]);if(this.header=new V4e,af.inflateGetHeader(this.strm,this.header),t.dictionary&&(typeof t.dictionary=="string"?t.dictionary=ub.string2buf(t.dictionary):lK.call(t.dictionary)==="[object ArrayBuffer]"&&(t.dictionary=new Uint8Array(t.dictionary)),t.raw&&(n=af.inflateSetDictionary(this.strm,t.dictionary),n!==hb)))throw new Error(Om[n])}qb.prototype.push=function(e,t){const n=this.strm,r=this.options.chunkSize,i=this.options.dictionary;let s,o,a;if(this.ended)return!1;for(t===~~t?o=t:o=t===!0?q4e:W4e,lK.call(e)==="[object ArrayBuffer]"?n.input=new Uint8Array(e):n.input=e,n.next_in=0,n.avail_in=n.input.length;;){for(n.avail_out===0&&(n.output=new Uint8Array(r),n.next_out=0,n.avail_out=r),s=af.inflate(n,o),s===B3&&i&&(s=af.inflateSetDictionary(n,i),s===hb?s=af.inflate(n,o):s===Mj&&(s=B3));n.avail_in>0&&s===P3&&n.state.wrap>0&&e[n.next_in]!==0;)af.inflateReset(n),s=af.inflate(n,o);switch(s){case G4e:case Mj:case B3:case X4e:return this.onEnd(s),this.ended=!0,!1}if(a=n.avail_out,n.next_out&&(n.avail_out===0||s===P3))if(this.options.to==="string"){let l=ub.utf8border(n.output,n.next_out),c=n.next_out-l,u=ub.buf2string(n.output,l);n.next_out=c,n.avail_out=r-c,c&&n.output.set(n.output.subarray(l,l+c),0),this.onData(u)}else this.onData(n.output.length===n.next_out?n.output:n.output.subarray(0,n.next_out));if(!(s===hb&&a===0)){if(s===P3)return s=af.inflateEnd(this.strm),this.onEnd(s),this.ended=!0,!0;if(n.avail_in===0)break}}return!0};qb.prototype.onData=function(e){this.chunks.push(e)};qb.prototype.onEnd=function(e){e===hb&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=IE.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};function BP(e,t){const n=new qb(t);if(n.push(e),n.err)throw n.msg||Om[n.err];return n.result}function Y4e(e,t){return t=t||{},t.raw=!0,BP(e,t)}var K4e=qb,Z4e=BP,Q4e=Y4e,J4e=BP,eBe={Inflate:K4e,inflate:Z4e,inflateRaw:Q4e,ungzip:J4e};const{Deflate:tBe,deflate:nBe,deflateRaw:rBe,gzip:iBe}=c4e,{Inflate:sBe,inflate:oBe,inflateRaw:aBe,ungzip:lBe}=eBe;var cBe=tBe,uBe=nBe,hBe=rBe,fBe=iBe,dBe=sBe,pBe=oBe,mBe=aBe,gBe=lBe,yBe=$b,_Be={Deflate:cBe,deflate:uBe,deflateRaw:hBe,gzip:fBe,Inflate:dBe,inflate:pBe,inflateRaw:mBe,ungzip:gBe,constants:yBe};const vBe=new TextEncoder;function bBe(e,t,n){const r=e.find(l=>l.id===n),i={files:e.map(l=>({name:l.name,content:L_(t.get(l.id)??new Uint8Array(0))})),activeFileName:r?.name??null},s=JSON.stringify(i),o=_Be.deflate(vBe.encode(s));let a=btoa(String.fromCharCode(...o));return a=a.replace(/\+/g,"-").replace(/\//g,"_").replace(/=+$/,""),a}const xBe="https://numbl.org";function wBe(){const{files:e,activeFileId:t,loading:n,title:r,repository:i,maxInitialOutputPanelHeight:s,loadError:o,setActiveFileId:a,updateFileContent:l,addFile:c,addFolder:u,deleteFile:h,deleteFolder:f,renameFile:d,renameFolder:p,moveFile:m,duplicateFile:y,uploadFiles:_,loadFileContent:b,loadAllContents:x,contentCache:S}=YH(),[M,E]=ne.useState(!1);ne.useEffect(()=>{r&&(document.title=r)},[r]);const T=ne.useCallback(async()=>{try{const R=await x(),P=bBe(e,R,t),F=`${xBe}/share#${P}`;if(F.length>64e3){alert("Project is too large to share via URL. Try reducing the number or size of files.");return}await navigator.clipboard.writeText(F),E(!0),setTimeout(()=>E(!1),2e3)}catch(R){console.error("Failed to generate share URL:",R),alert("Failed to generate share URL.")}},[e,t,x]);if(n)return re.jsx(An,{sx:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:re.jsx(O0,{})});const k=re.jsxs(re.Fragment,{children:[re.jsxs(Sr,{variant:"body2",fontWeight:"medium",sx:{flexGrow:1},noWrap:!0,children:[r||"numbl project",o&&re.jsx(Sr,{component:"span",variant:"caption",color:"warning.main",sx:{ml:1},children:"(bundle failed to load)"})]}),i&&re.jsx(ku,{title:"View source repository",children:re.jsx(lo,{size:"small",component:"a",href:i,target:"_blank",rel:"noopener noreferrer",sx:{mr:.5},children:re.jsx(lH,{fontSize:"small"})})}),re.jsx(ku,{title:M?"Copied!":"Copy shareable URL",children:re.jsx(lo,{size:"small",onClick:T,sx:{mr:.5},children:re.jsx(ete,{fontSize:"small"})})}),re.jsx(Tv,{href:"https://numbl.org",target:"_blank",rel:"noopener noreferrer",variant:"caption",underline:"hover",sx:{opacity:.7,"&:hover":{opacity:1}},children:"powered by numbl"})]});return re.jsx(wPe,{files:e,activeFileId:t,setActiveFileId:a,updateFileContent:l,addFile:c,addFolder:u,deleteFile:h,deleteFolder:f,renameFile:d,renameFolder:p,moveFile:m,duplicateFile:y,uploadFiles:_,headerContent:k,loadFileContent:b,loadAllContents:x,contentCache:S,maxInitialOutputPanelHeight:s??void 0})}const SBe=oi(re.jsx("path",{d:"M9.4 16.6 4.8 12l4.6-4.6L8 6l-6 6 6 6zm5.2 0 4.6-4.6-4.6-4.6L16 6l6 6-6 6z"})),MBe="https://numbl.org";function EBe(e,t){if(e.length===0)return{spec:null,unknownSlug:!1};if(!t)return{spec:e[0],unknownSlug:!1};const n=e.find(r=>r.id===t);return n?{spec:n,unknownSlug:!1}:{spec:e[0],unknownSlug:!0}}function CBe({figureId:e}){const{files:t,loading:n,title:r,repository:i,figures:s,loadError:o,loadAllContents:a}=YH(),{reloadSystemFiles:l,getSystemVfsFiles:c,getSystemWorkspaceFiles:u}=MY();AY(l);const{spec:h,unknownSlug:f}=ne.useMemo(()=>EBe(s,e),[s,e]),[d,p]=ne.useState(""),[m,y]=ne.useState(!1),[_,b]=ne.useState(!1),[x,S]=ne.useState(!1),[M,E]=ne.useReducer(SI,rE),T=ne.useRef(null),k=ne.useRef(ZH()),R=ne.useRef(null),P=h?.name||r||"Figure";ne.useEffect(()=>{document.title=P},[P]);const F=ne.useMemo(()=>{const H=Object.keys(M.figs).map(Number).sort((O,G)=>O-G);return H.length===0?null:M.figs[H[H.length-1]]},[M.figs]),L=F!==null,j=ne.useCallback(H=>{E(H)},[]),V=ne.useCallback(H=>{H.onmessage=O=>{const G=O.data;if(G.type==="request-input"){const Z=prompt(G.prompt??"")??"";k.current&&QH(k.current,Z);return}if(G.type==="output"){p(Z=>Z+G.text);return}if(G.type==="drawnow"){if(G.plotInstructions?.length)for(const Z of G.plotInstructions)j(Z);return}if(G.type==="html_source_event"){document.querySelectorAll(`iframe[title="uihtml-${G.compId}"]`).forEach(ie=>ie.contentWindow?.postMessage({source:"numbl-host",compId:G.compId,name:G.name,dataJson:G.dataJson},"*"));return}if(G.type==="done"){if(y(!1),G.vfsChanges&&SY(G.vfsChanges).then(Z=>{Z&&l()}),G.plotInstructions?.length)for(const Z of G.plotInstructions)j(Z);return}if(G.type==="error"){y(!1),b(!0),S(!0),p(Z=>Z+`
|
|
4829
4829
|
${NV(G)}
|
|
4830
|
-
`);return}}},[j,l]);ne.useEffect(()=>{const H=new Worker(new URL(""+new URL("numbl-worker-
|
|
4830
|
+
`);return}}},[j,l]);ne.useEffect(()=>{const H=new Worker(new URL(""+new URL("numbl-worker-F20FKX9r.js",import.meta.url).href,import.meta.url),{type:"module"});return T.current=H,V(H),R.current=null,()=>{H.terminate(),T.current=null}},[V]),ne.useEffect(()=>{const H=O=>{const G=O.data;!G||G.source!=="numbl-uihtml"||T.current?.postMessage({type:"html_event",compId:G.compId,kind:G.kind,name:G.name,data:G.data})};return window.addEventListener("message",H),()=>window.removeEventListener("message",H)},[]);const U=ne.useCallback(async()=>{const H=T.current;if(!H||!h)return;const O=t.find(X=>X.name===h.entry);if(!O){b(!0),S(!0),p(`Figure script not found in the project bundle: ${h.entry}
|
|
4831
4831
|
`);return}y(!0),b(!1),p(""),E({type:"clear"}),CY();const G=new TextDecoder("utf-8"),[Z,ie,Y]=await Promise.all([a(),c(),u()]),ce=[...t.map(X=>({path:X.name,content:Z.get(X.id)??new Uint8Array(0)})),...ie],pe=[...t.filter(X=>X.name.endsWith(".m")).map(X=>({name:X.name,source:G.decode(Z.get(X.id)??new Uint8Array(0))})),...Y],te=G.decode(Z.get(O.id)??new Uint8Array(0));H.postMessage({type:"update_workspace",workspaceFiles:pe,vfsFiles:ce}),H.postMessage({type:"run",code:te,options:{displayResults:!0,maxIterations:1e7,optimization:1},workspaceFiles:pe,vfsFiles:ce,mainFileName:O.name,persistent:!0,inputSAB:k.current??void 0})},[h,t,a,c,u]);ne.useEffect(()=>{n||!h||!T.current||R.current!==h.id&&(R.current=h.id,U())},[n,h,U]);const B=ne.useMemo(()=>window.location.pathname+window.location.search,[]);if(n)return re.jsx(An,{sx:{display:"flex",justifyContent:"center",alignItems:"center",height:"100vh"},children:re.jsx(O0,{})});if(!h)return re.jsxs(An,{sx:{display:"flex",flexDirection:"column",gap:1,justifyContent:"center",alignItems:"center",height:"100vh",textAlign:"center",px:2},children:[re.jsx(Sr,{variant:"h6",children:"No figure view configured"}),re.jsx(Sr,{variant:"body2",color:"text.secondary",children:o?"The project bundle failed to load.":'This project declares no "figures" in numbl-project.json.'}),re.jsx(Tv,{href:B,underline:"hover",children:"Open the full IDE"})]});const N=x||!L;return re.jsxs(An,{sx:{display:"flex",flexDirection:"column",height:"100vh"},children:[re.jsxs(An,{sx:{display:"flex",alignItems:"center",gap:1,px:1.5,py:.5,bgcolor:"grey.100",borderBottom:1,borderColor:"divider",minHeight:40},children:[re.jsx(Sr,{variant:"body2",fontWeight:"medium",noWrap:!0,children:P}),m&&re.jsxs(An,{sx:{display:"flex",alignItems:"center",gap:.5},children:[re.jsx(O0,{size:12}),re.jsx(Sr,{variant:"caption",color:"text.secondary",children:"Running…"})]}),re.jsx(An,{sx:{flexGrow:1}}),L&&re.jsx(kd,{size:"small",onClick:()=>S(H=>!H),sx:{textTransform:"none",fontSize:"0.75rem"},children:x?"Hide output":"Show output"}),re.jsx(ku,{title:"View / edit the code in the full IDE",children:re.jsx(kd,{size:"small",href:B,startIcon:re.jsx(SBe,{fontSize:"small"}),sx:{textTransform:"none",fontSize:"0.75rem"},children:"Code"})}),i&&re.jsx(ku,{title:"View source repository",children:re.jsx(lo,{size:"small",component:"a",href:i,target:"_blank",rel:"noopener noreferrer",children:re.jsx(lH,{fontSize:"small"})})}),re.jsx(Tv,{href:MBe,target:"_blank",rel:"noopener noreferrer",variant:"caption",underline:"hover",sx:{opacity:.7,"&:hover":{opacity:1}},children:"powered by numbl"})]}),f&&re.jsxs(An,{sx:{px:1.5,py:.5,bgcolor:"#fff8e1",borderBottom:"1px solid #f0e0a0",fontSize:13,color:"#5c4a00"},children:["Unknown figure “",e,"”. Showing “",P,"” instead."]}),re.jsxs(An,{sx:{flexGrow:1,position:"relative",minHeight:0},children:[L&&re.jsx(An,{sx:{position:"absolute",inset:0,display:"flex",justifyContent:"center",alignItems:"center",bgcolor:"#fff"},children:F&&re.jsx(LD,{figure:F})}),N&&re.jsxs(An,{sx:{position:"absolute",left:0,right:0,bottom:0,top:L?"auto":0,maxHeight:L?"45%":"100%",overflow:"auto",p:1.5,bgcolor:"#1e1e1e",fontFamily:"monospace",fontSize:13,color:_?"#f48771":"#d4d4d4",whiteSpace:"pre-wrap",wordBreak:"break-word",borderTop:L?"1px solid #333":void 0},children:[m&&!d&&re.jsxs(An,{sx:{display:"flex",alignItems:"center",gap:1},children:[re.jsx(O0,{size:14,sx:{color:"#d4d4d4"}}),re.jsx("span",{children:"Running…"})]}),d||!m&&re.jsx("span",{style:{opacity:.5},children:"—"})]})]})]})}function ABe(){const[e,t]=ne.useState(()=>window.location.hash);return ne.useEffect(()=>{const n=()=>t(window.location.hash);return window.addEventListener("hashchange",n),()=>window.removeEventListener("hashchange",n)},[]),e}function TBe(){const e=ABe(),t=/^#figure(?:\/(.*))?$/.exec(e);if(t){const n=t[1]?.split(/[?#]/)[0],r=n?decodeURIComponent(n):void 0;return re.jsx(CBe,{figureId:r})}return re.jsx(wBe,{})}BZ.createRoot(document.getElementById("root")).render(re.jsx(ne.StrictMode,{children:re.jsx(TBe,{})}));
|