|
var se=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var ke=se((xe,x)=>{var le=Object.create,L=Object.defineProperty,ce=Object.getOwnPropertyDescriptor,ue=Object.getOwnPropertyNames,fe=Object.getPrototypeOf,pe=Object.prototype.hasOwnProperty,d=(e,t)=>L(e,"name",{value:t,configurable:!0}),D=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,i)=>(typeof require<"u"?require:t)[i]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw new Error('Dynamic require of "'+e+'" is not supported')}),A=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),de=(e,t,i,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of ue(t))!pe.call(e,s)&&s!==i&&L(e,s,{get:()=>t[s],enumerable:!(o=ce(t,s))||o.enumerable});return e},me=(e,t,i)=>(i=e!=null?le(fe(e)):{},de(!e||!e.__esModule?L(i,"default",{value:e,enumerable:!0}):i,e)),ye=A((e,t)=>{(function(i,o){typeof define=="function"&&define.amd?define("stackframe",[],o):typeof e=="object"?t.exports=o():i.StackFrame=o()})(e,function(){function i(p){return!isNaN(parseFloat(p))&&isFinite(p)}d(i,"_isNumber");function o(p){return p.charAt(0).toUpperCase()+p.substring(1)}d(o,"_capitalize");function s(p){return function(){return this[p]}}d(s,"_getter");var n=["isConstructor","isEval","isNative","isToplevel"],r=["columnNumber","lineNumber"],c=["fileName","functionName","source"],a=["args"],u=["evalOrigin"],l=n.concat(r,c,a,u);function f(p){if(p)for(var h=0;h<l.length;h++)p[l[h]]!==void 0&&this["set"+o(l[h])](p[l[h]])}d(f,"StackFrame"),f.prototype={getArgs:function(){return this.args},setArgs:function(p){if(Object.prototype.toString.call(p)!=="[object Array]")throw new TypeError("Args must be an Array");this.args=p},getEvalOrigin:function(){return this.evalOrigin},setEvalOrigin:function(p){if(p instanceof f)this.evalOrigin=p;else if(p instanceof Object)this.evalOrigin=new f(p);else throw new TypeError("Eval Origin must be an Object or StackFrame")},toString:function(){var p=this.getFileName()||"",h=this.getLineNumber()||"",v=this.getColumnNumber()||"",b=this.getFunctionName()||"";return this.getIsEval()?p?"[eval] ("+p+":"+h+":"+v+")":"[eval]:"+h+":"+v:b?b+" ("+p+":"+h+":"+v+")":p+":"+h+":"+v}},f.fromString=d(function(p){var h=p.indexOf("("),v=p.lastIndexOf(")"),b=p.substring(0,h),ne=p.substring(h+1,v).split(","),R=p.substring(v+1);if(R.indexOf("@")===0)var S=/@(.+?)(?::(\d+))?(?::(\d+))?$/.exec(R,""),ie=S[1],oe=S[2],ae=S[3];return new f({functionName:b,args:ne||void 0,fileName:ie,lineNumber:oe||void 0,columnNumber:ae||void 0})},"StackFrame$$fromString");for(var m=0;m<n.length;m++)f.prototype["get"+o(n[m])]=s(n[m]),f.prototype["set"+o(n[m])]=function(p){return function(h){this[p]=!!h}}(n[m]);for(var y=0;y<r.length;y++)f.prototype["get"+o(r[y])]=s(r[y]),f.prototype["set"+o(r[y])]=function(p){return function(h){if(!i(h))throw new TypeError(p+" must be a Number");this[p]=Number(h)}}(r[y]);for(var g=0;g<c.length;g++)f.prototype["get"+o(c[g])]=s(c[g]),f.prototype["set"+o(c[g])]=function(p){return function(h){this[p]=String(h)}}(c[g]);return f})}),he=A((e,t)=>{(function(i,o){typeof define=="function"&&define.amd?define("error-stack-parser",["stackframe"],o):typeof e=="object"?t.exports=o(ye()):i.ErrorStackParser=o(i.StackFrame)})(e,d(function(i){var o=/(^|@)\S+:\d+/,s=/^\s*at .*(\S+:\d+|\(native\))/m,n=/^(eval@)?(\[native code])?$/;return{parse:d(function(r){if(typeof r.stacktrace<"u"||typeof r["opera#sourceloc"]<"u")return this.parseOpera(r);if(r.stack&&r.stack.match(s))return this.parseV8OrIE(r);if(r.stack)return this.parseFFOrSafari(r);throw new Error("Cannot parse given Error object")},"ErrorStackParser$$parse"),extractLocation:d(function(r){if(r.indexOf(":")===-1)return[r];var c=/(.+?)(?::(\d+))?(?::(\d+))?$/,a=c.exec(r.replace(/[()]/g,""));return[a[1],a[2]||void 0,a[3]||void 0]},"ErrorStackParser$$extractLocation"),parseV8OrIE:d(function(r){var c=r.stack.split(` |
|
`).filter(function(a){return!!a.match(o)&&!a.match(/^Error created at/)},this);return c.map(function(a){var u=a.split("@"),l=this.extractLocation(u.pop()),f=u.shift()||"",m=f.replace(/<anonymous function(: (\w+))?>/,"$2").replace(/\([^)]*\)/g,"")||void 0,y;f.match(/\(([^)]*)\)/)&&(y=f.replace(/^[^(]+\(([^)]*)\)$/,"$1"));var g=y===void 0||y==="[arguments not available]"?void 0:y.split(",");return new i({functionName:m,args:g,fileName:l[0],lineNumber:l[1],columnNumber:l[2],source:a})},this)},"ErrorStackParser$$parseOpera11")}},"ErrorStackParser"))}),ge=me(he()),w=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string"&&typeof process.browser>"u",T=w&&typeof x<"u"&&typeof x.exports<"u"&&typeof D<"u"&&typeof __dirname<"u",we=w&&!T,ve=typeof Deno<"u",I=!w&&!ve,be=I&&typeof window=="object"&&typeof document=="object"&&typeof document.createElement=="function"&&typeof sessionStorage=="object"&&typeof importScripts!="function",Ee=I&&typeof importScripts=="function"&&typeof self=="object";typeof navigator=="object"&&typeof navigator.userAgent=="string"&&navigator.userAgent.indexOf("Chrome")==-1&&navigator.userAgent.indexOf("Safari")>-1;var U,k,M,j,N;async function $(){if(!w||(U=(await import("./chunks/__vite-browser-external-9wXp6ZBx.js")).default,j=await import("./chunks/__vite-browser-external-9wXp6ZBx.js"),N=await import("./chunks/__vite-browser-external-9wXp6ZBx.js"),M=(await import("./chunks/__vite-browser-external-9wXp6ZBx.js")).default,k=await import("./chunks/__vite-browser-external-9wXp6ZBx.js"),_=k.sep,typeof D<"u"))return;let e=j,t=await import("./chunks/__vite-browser-external-9wXp6ZBx.js"),i=await import("./chunks/__vite-browser-external-9wXp6ZBx.js"),o=await import("./chunks/__vite-browser-external-9wXp6ZBx.js"),s={fs:e,crypto:t,ws:i,child_process:o};globalThis.require=function(n){return s[n]}}d($,"initNodeModules");function C(e,t){return k.resolve(t||".",e)}d(C,"node_resolvePath");function H(e,t){return t===void 0&&(t=location),new URL(e,t).toString()}d(H,"browser_resolvePath");var F;w?F=C:F=H;var _;w||(_="/");function q(e,t){return e.startsWith("file://")&&(e=e.slice(7)),e.includes("://")?{response:fetch(e)}:{binary:N.readFile(e).then(i=>new Uint8Array(i.buffer,i.byteOffset,i.byteLength))}}d(q,"node_getBinaryResponse");function W(e,t){let i=new URL(e,location);return{response:fetch(i,t?{integrity:t}:{})}}d(W,"browser_getBinaryResponse");var O;w?O=q:O=W;async function z(e,t){let{response:i,binary:o}=O(e,t);if(o)return o;let s=await i;if(!s.ok)throw new Error(`Failed to load '${e}': request failed.`);return new Uint8Array(await s.arrayBuffer())}d(z,"loadBinaryFile");var E;if(be)E=d(async e=>await import(e),"loadScript");else if(Ee)E=d(async e=>{try{globalThis.importScripts(e)}catch(t){if(t instanceof TypeError)await import(e);else throw t}},"loadScript");else if(w)E=B;else throw new Error("Cannot determine runtime environment");async function B(e){e.startsWith("file://")&&(e=e.slice(7)),e.includes("://")?M.runInThisContext(await(await fetch(e)).text()):await import(U.pathToFileURL(e).href)}d(B,"nodeLoadScript");async function V(e){if(w){await $();let t=await N.readFile(e,{encoding:"utf8"});return JSON.parse(t)}else return await(await fetch(e)).json()}d(V,"loadLockFile");async function Y(){if(T)return __dirname;let e;try{throw new Error}catch(o){e=o}let t=ge.default.parse(e)[0].fileName;if(we){let o=await import("./chunks/__vite-browser-external-9wXp6ZBx.js");return(await import("./chunks/__vite-browser-external-9wXp6ZBx.js")).fileURLToPath(o.dirname(t))}let i=t.lastIndexOf(_);if(i===-1)throw new Error("Could not extract indexURL path from pyodide module location");return t.slice(0,i)}d(Y,"calculateDirname");function J(e){let t=e.FS,i=e.FS.filesystems.MEMFS,o=e.PATH,s={DIR_MODE:16895,FILE_MODE:33279,mount:function(n){if(!n.opts.fileSystemHandle)throw new Error("opts.fileSystemHandle is required");return i.mount.apply(null,arguments)},syncfs:async(n,r,c)=>{try{let a=s.getLocalSet(n),u=await s.getRemoteSet(n),l=r?u:a,f=r?a:u;await s.reconcile(n,l,f),c(null)}catch(a){c(a)}},getLocalSet:n=>{let r=Object.create(null);function c(l){return l!=="."&&l!==".."}d(c,"isRealDir");function a(l){return f=>o.join2(l,f)}d(a,"toAbsolute");let u=t.readdir(n.mountpoint).filter(c).map(a(n.mountpoint));for(;u.length;){let l=u.pop(),f=t.stat(l);t.isDir(f.mode)&&u.push.apply(u,t.readdir(l).filter(c).map(a(l))),r[l]={timestamp:f.mtime,mode:f.mode}}return{type:"local",entries:r}},getRemoteSet:async n=>{let r=Object.create(null),c=await Oe(n.opts.fileSystemHandle);for(let[a,u]of c)a!=="."&&(r[o.join2(n.mountpoint,a)]={timestamp:u.kind==="file"?(await u.getFile()).lastModifiedDate:new Date,mode:u.kind==="file"?s.FILE_MODE:s.DIR_MODE});return{type:"remote",entries:r,handles:c}},loadLocalEntry:n=>{let r=t.lookupPath(n).node,c=t.stat(n);if(t.isDir(c.mode))return{timestamp:c.mtime,mode:c.mode};if(t.isFile(c.mode))return r.contents=i.getFileDataAsTypedArray(r),{timestamp:c.mtime,mode:c.mode,contents:r.contents};throw new Error("node type not supported")},storeLocalEntry:(n,r)=>{if(t.isDir(r.mode))t.mkdirTree(n,r.mode);else if(t.isFile(r.mode))t.writeFile(n,r.contents,{canOwn:!0});else throw new Error("node type not supported");t.chmod(n,r.mode),t.utime(n,r.timestamp,r.timestamp)},removeLocalEntry:n=>{var r=t.stat(n);t.isDir(r.mode)?t.rmdir(n):t.isFile(r.mode)&&t.unlink(n)},loadRemoteEntry:async n=>{if(n.kind==="file"){let r=await n.getFile();return{contents:new Uint8Array(await r.arrayBuffer()),mode:s.FILE_MODE,timestamp:r.lastModifiedDate}}else{if(n.kind==="directory")return{mode:s.DIR_MODE,timestamp:new Date};throw new Error("unknown kind: "+n.kind)}},storeRemoteEntry:async(n,r,c)=>{let a=n.get(o.dirname(r)),u=t.isFile(c.mode)?await a.getFileHandle(o.basename(r),{create:!0}):await a.getDirectoryHandle(o.basename(r),{create:!0});if(u.kind==="file"){let l=await u.createWritable();await l.write(c.contents),await l.close()}n.set(r,u)},removeRemoteEntry:async(n,r)=>{await n.get(o.dirname(r)).removeEntry(o.basename(r)),n.delete(r)},reconcile:async(n,r,c)=>{let a=0,u=[];Object.keys(r.entries).forEach(function(m){let y=r.entries[m],g=c.entries[m];(!g||t.isFile(y.mode)&&y.timestamp.getTime()>g.timestamp.getTime())&&(u.push(m),a++)}),u.sort();let l=[];if(Object.keys(c.entries).forEach(function(m){r.entries[m]||(l.push(m),a++)}),l.sort().reverse(),!a)return;let f=r.type==="remote"?r.handles:c.handles;for(let m of u){let y=o.normalize(m.replace(n.mountpoint,"/")).substring(1);if(c.type==="local"){let g=f.get(y),p=await s.loadRemoteEntry(g);s.storeLocalEntry(m,p)}else{let g=s.loadLocalEntry(m);await s.storeRemoteEntry(f,y,g)}}for(let m of l)if(c.type==="local")s.removeLocalEntry(m);else{let y=o.normalize(m.replace(n.mountpoint,"/")).substring(1);await s.removeRemoteEntry(f,y)}}};e.FS.filesystems.NATIVEFS_ASYNC=s}d(J,"initializeNativeFS");var Oe=d(async e=>{let t=[];async function i(s){for await(let n of s.values())t.push(n),n.kind==="directory"&&await i(n)}d(i,"collect"),await i(e);let o=new Map;o.set(".",e);for(let s of t){let n=(await e.resolve(s)).join("/");o.set(n,s)}return o},"getFsHandles");function G(e){let t={noImageDecoding:!0,noAudioDecoding:!0,noWasmDecoding:!1,preRun:ee(e),quit(i,o){throw t.exited={status:i,toThrow:o},o},print:e.stdout,printErr:e.stderr,arguments:e.args,API:{config:e},locateFile:i=>e.indexURL+i,instantiateWasm:te(e.indexURL)};return t}d(G,"createSettings");function K(e){return function(t){let i="/";try{t.FS.mkdirTree(e)}catch(o){console.error(`Error occurred while making a home directory '${e}':`),console.error(o),console.error(`Using '${i}' for a home directory instead`),e=i}t.FS.chdir(e)}}d(K,"createHomeDirectory");function Q(e){return function(t){Object.assign(t.ENV,e)}}d(Q,"setEnvironment");function X(e){return t=>{for(let i of e)t.FS.mkdirTree(i),t.FS.mount(t.FS.filesystems.NODEFS,{root:i},i)}}d(X,"mountLocalDirectories");function Z(e){let t=z(e);return i=>{let o=i._py_version_major(),s=i._py_version_minor();i.FS.mkdirTree("/lib"),i.FS.mkdirTree(`/lib/python${o}.${s}/site-packages`),i.addRunDependency("install-stdlib"),t.then(n=>{i.FS.writeFile(`/lib/python${o}${s}.zip`,n)}).catch(n=>{console.error("Error occurred while installing the standard library:"),console.error(n)}).finally(()=>{i.removeRunDependency("install-stdlib")})}}d(Z,"installStdlib");function ee(e){let t;return e.stdLibURL!=null?t=e.stdLibURL:t=e.indexURL+"python_stdlib.zip",[Z(t),K(e.env.HOME),Q(e.env),X(e._node_mounts),J]}d(ee,"getFileSystemInitializationFuncs");function te(e){let{binary:t,response:i}=O(e+"pyodide.asm.wasm");return function(o,s){return async function(){try{let n;i?n=await WebAssembly.instantiateStreaming(i,o):n=await WebAssembly.instantiate(await t,o);let{instance:r,module:c}=n;typeof WasmOffsetConverter<"u"&&(wasmOffsetConverter=new WasmOffsetConverter(wasmBinary,c)),s(r,c)}catch(n){console.warn("wasm instantiation failed!"),console.warn(n)}}(),{}}}d(te,"getInstantiateWasmFunc");var P="0.26.1";async function re(e={}){await $();let t=e.indexURL||await Y();t=F(t),t.endsWith("/")||(t+="/"),e.indexURL=t;let i={fullStdLib:!1,jsglobals:globalThis,stdin:globalThis.prompt?globalThis.prompt:void 0,lockFileURL:t+"pyodide-lock.json",args:[],_node_mounts:[],env:{},packageCacheDir:t,packages:[],enableRunUntilComplete:!1},o=Object.assign(i,e);o.env.HOME||(o.env.HOME="/home/pyodide");let s=G(o),n=s.API;if(n.lockFilePromise=V(o.lockFileURL),typeof _createPyodideModule!="function"){let l=`${o.indexURL}pyodide.asm.js`;await E(l)}let r;if(e._loadSnapshot){let l=await e._loadSnapshot;ArrayBuffer.isView(l)?r=l:r=new Uint8Array(l),s.noInitialRun=!0,s.INITIAL_MEMORY=r.length}let c=await _createPyodideModule(s);if(s.exited)throw s.exited.toThrow;if(e.pyproxyToStringRepr&&n.setPyProxyToStringMethod(!0),n.version!==P)throw new Error(`Pyodide version does not match: '${P}' <==> '${n.version}'. If you updated the Pyodide version, make sure you also updated the 'indexURL' parameter passed to loadPyodide.`);c.locateFile=l=>{throw new Error("Didn't expect to load any more file_packager files!")};let a;r&&(a=n.restoreSnapshot(r));let u=n.finalizeBootstrap(a);return n.sys.path.insert(0,n.config.env.HOME),u.version.includes("dev")||n.setCdnUrl(`https://cdn.jsdelivr.net/pyodide/v${u.version}/full/`),n._pyodide.set_excepthook(),await n.packageIndexReady,n.initializeStreams(o.stdin,o.stdout,o.stderr),u}d(re,"loadPyodide");async function Se(e=[]){self.stdout=null,self.stderr=null,self.result=null,self.pyodide=await re({indexURL:"/pyodide/",stdout:i=>{console.log("Python output:",i),self.stdout?self.stdout+=`${i} |