polyscript
Advanced tools
Comparing version 0.5.0 to 0.5.1
'use strict'; | ||
/* c8 ignore next */ | ||
module.exports = () => new Worker(URL.createObjectURL(new Blob(["const e=\"object\"==typeof self?self:globalThis,t=t=>((t,r)=>{const n=(e,r)=>(t.set(r,e),e),s=o=>{if(t.has(o))return t.get(o);const[a,i]=r[o];switch(a){case 0:case-1:return n(i,o);case 1:{const e=n([],o);for(const t of i)e.push(s(t));return e}case 2:{const e=n({},o);for(const[t,r]of i)e[s(t)]=s(r);return e}case 3:return n(new Date(i),o);case 4:{const{source:e,flags:t}=i;return n(new RegExp(e,t),o)}case 5:{const e=n(new Map,o);for(const[t,r]of i)e.set(s(t),s(r));return e}case 6:{const e=n(new Set,o);for(const t of i)e.add(s(t));return e}case 7:{const{name:t,message:r}=i;return n(new e[t](r),o)}case 8:return n(BigInt(i),o);case\"BigInt\":return n(Object(BigInt(i)),o)}return n(new e[a](i),o)};return s})(new Map,t)(0),r=\"\",{toString:n}={},{keys:s}=Object,o=e=>{const t=typeof e;if(\"object\"!==t||!e)return[0,t];const s=n.call(e).slice(8,-1);switch(s){case\"Array\":return[1,r];case\"Object\":return[2,r];case\"Date\":return[3,r];case\"RegExp\":return[4,r];case\"Map\":return[5,r];case\"Set\":return[6,r]}return s.includes(\"Array\")?[1,s]:s.includes(\"Error\")?[7,s]:[2,s]},a=([e,t])=>0===e&&(\"function\"===t||\"symbol\"===t),i=(e,{json:t,lossy:r}={})=>{const n=[];return((e,t,r,n)=>{const i=(e,t)=>{const s=n.push(e)-1;return r.set(t,s),s},c=n=>{if(r.has(n))return r.get(n);let[l,u]=o(n);switch(l){case 0:{let t=n;switch(u){case\"bigint\":l=8,t=n.toString();break;case\"function\":case\"symbol\":if(e)throw new TypeError(\"unable to serialize \"+u);t=null;break;case\"undefined\":return i([-1],n)}return i([l,t],n)}case 1:{if(u)return i([u,[...n]],n);const e=[],t=i([l,e],n);for(const t of n)e.push(c(t));return t}case 2:{if(u)switch(u){case\"BigInt\":return i([u,n.toString()],n);case\"Boolean\":case\"Number\":case\"String\":return i([u,n.valueOf()],n)}if(t&&\"toJSON\"in n)return c(n.toJSON());const r=[],f=i([l,r],n);for(const t of s(n))!e&&a(o(n[t]))||r.push([c(t),c(n[t])]);return f}case 3:return i([l,n.toISOString()],n);case 4:{const{source:e,flags:t}=n;return i([l,{source:e,flags:t}],n)}case 5:{const t=[],r=i([l,t],n);for(const[r,s]of n)(e||!a(o(r))&&!a(o(s)))&&t.push([c(r),c(s)]);return r}case 6:{const t=[],r=i([l,t],n);for(const r of n)!e&&a(o(r))||t.push(c(r));return r}}const{message:f}=n;return i([l,{name:u,message:f}],n)};return c})(!(t||r),!!t,new Map,n)(e),n},{parse:c,stringify:l}=JSON,u={json:!0,lossy:!0};var f=Object.freeze({__proto__:null,parse:e=>t(c(e)),stringify:e=>l(i(e,u))});const p=\"49775373-4961-44cd-9a4b-651a0c9cca5a\",d=\"M\"+p,y=\"T\"+p,h=\"object\",g=\"function\",w=\"number\",m=\"string\",b=\"undefined\",v=\"symbol\";var $=e=>({value:new Promise((t=>{let r=new Worker(\"data:application/javascript,onmessage%3D(%7Bdata%3Ab%7D)%3D%3E(Atomics.wait(b%2C0)%2CpostMessage(0))\");r.onmessage=t,r.postMessage(e)}))})\n/*! (c) Andrea Giammarchi - ISC */;const{Int32Array:S,Map:E,SharedArrayBuffer:A,Uint16Array:P}=globalThis,{BYTES_PER_ELEMENT:j}=S,{BYTES_PER_ELEMENT:M}=P,{isArray:k}=Array,{notify:x,wait:T,waitAsync:_}=Atomics,{fromCharCode:O}=String,W=new WeakSet,F=new WeakMap,R={value:{then:e=>e()}};let B=0;const J=(e,{parse:t=JSON.parse,stringify:r=JSON.stringify,transform:n,interrupt:s}=JSON)=>{if(!F.has(e)){const o=(t,...r)=>e.postMessage({[p]:r},{transfer:t}),a=typeof s===g?s:s?.handler,i=s?.delay||42,c=(e,t)=>e?(_||$)(t,0):(a?((e,t,r)=>{for(;\"timed-out\"===T(e,0,0,t);)r()})(t,i,a):T(t,0),R);let l=!1;F.set(e,new Proxy(new E,{has:(e,t)=>\"string\"==typeof t&&!t.startsWith(\"_\"),get:(r,s)=>\"then\"===s?null:(...r)=>{const a=B++;let i=new S(new A(2*j)),u=[];W.has(r.at(-1)||u)&&W.delete(u=r.pop()),o(u,a,i,s,n?r.map(n):r);const f=e!==globalThis;let p=0;return l&&f&&(p=setTimeout(console.warn,1e3,`💀🔒 - Possible deadlock if proxy.${s}(...args) is awaited`)),c(f,i).value.then((()=>{clearTimeout(p);const e=i[1];if(!e)return;const r=M*e;return i=new S(new A(r+r%j)),o([],a,i),c(f,i).value.then((()=>{const r=new P(i.buffer).slice(0,e),n=[];for(let t=0;t<e;t+=2048)n.push(O(...r.slice(t,t+2048)));return t(n.join(\"\"))}))}))},set(t,s,o){const a=typeof o;if(a!==g)throw new Error(`Unable to assign ${s} as ${a}`);if(!t.size){const s=new E;e.addEventListener(\"message\",(async e=>{const o=e.data?.[p];if(k(o)){e.stopImmediatePropagation();const[a,i,...c]=o;let u;if(c.length){const[e,o]=c;if(t.has(e)){l=!0;try{const c=await t.get(e)(...o);if(void 0!==c){const e=r(n?n(c):c);s.set(a,e),i[1]=e.length}}catch(e){u=e}finally{l=!1}}else u=new Error(`Unsupported action: ${e}`);i[0]=1}else{const e=s.get(a);s.delete(a);for(let t=new P(i.buffer),r=0;r<e.length;r++)t[r]=e.charCodeAt(r)}if(x(i,0),u)throw u}}))}return!!t.set(s,o)}}))}return F.get(e)};J.transfer=(...e)=>(W.add(e),e);const I=new FinalizationRegistry((([e,t,r])=>{r&&console.debug(`Held value ${String(t)} not relevant anymore`),e(t)})),C=Object.create(null),L=(e,t,{debug:r,return:n,token:s=e}=C)=>{const o=n||new Proxy(e,C),a=[o,[t,e,!!r]];return!1!==s&&a.push(s),I.register(...a),o},{defineProperty:D,getOwnPropertyDescriptor:H,getPrototypeOf:N,isExtensible:U,ownKeys:z,preventExtensions:q,set:K,setPrototypeOf:Y}=Reflect,{assign:G,create:V}=Object,Q=N(Int8Array),X=\"isArray\",Z=(e,t)=>{const{get:r,set:n,value:s}=e;return r&&(e.get=t(r)),n&&(e.set=t(n)),s&&(e.value=t(s)),e},ee=(e,t)=>[e,t],te=e=>t=>{const r=typeof t;switch(r){case h:if(null==t)return ee(\"null\",t);if(t===globalThis)return ee(h,null);case g:return e(r,t);case\"boolean\":case w:case m:case b:case\"bigint\":return ee(r,t);case v:if(re.has(t))return ee(r,re.get(t))}throw new Error(`Unable to handle this ${r} type`)},re=new Map(z(Symbol).filter((e=>typeof Symbol[e]===v)).map((e=>[Symbol[e],e]))),ne=e=>{for(const[t,r]of re)if(r===e)return t},se=e=>e;function oe(){return this}const ae=\"apply\",ie=\"construct\",ce=\"defineProperty\",le=\"deleteProperty\",ue=\"get\",fe=\"getOwnPropertyDescriptor\",pe=\"getPrototypeOf\",de=\"has\",ye=\"isExtensible\",he=\"ownKeys\",ge=\"preventExtensions\",we=\"set\",me=\"setPrototypeOf\",be=\"delete\";var ve=((e,t)=>{const r=t&&new WeakMap;if(t){const{addEventListener:e}=EventTarget.prototype;D(EventTarget.prototype,\"addEventListener\",{value(t,n,...s){return s.at(0)?.invoke&&(r.has(this)||r.set(this,new Map),r.get(this).set(t,[].concat(s[0].invoke)),delete s[0].invoke),e.call(this,t,n,...s)}})}const n=t&&(e=>{const{currentTarget:t,target:n,type:s}=e;for(const o of r.get(t||n)?.get(s)||[])e[o]()});return function(r,s,o,...a){let i=0,c=this?.transform||se;const l=new Map,u=new Map,{[o]:f}=r,p=a.length?G(V(globalThis),...a):globalThis,d=te(((e,t)=>{if(!l.has(t)){let r;for(;u.has(r=i++););l.set(t,r),u.set(r,e===h?c(t):t)}return ee(e,l.get(t))})),y=e=>{f(be,ee(m,e))},$=([e,r])=>{switch(e){case h:if(null==r)return p;if(typeof r===w)return u.get(r);if(!(r instanceof Q))for(const e in r)r[e]=$(r[e]);return r;case g:if(typeof r===m){if(!u.has(r)){const e=function(...e){return t&&e.at(0)instanceof Event&&n(...e),f(ae,ee(g,r),d(this),e.map(d))};return u.set(r,new WeakRef(e)),L(r,y,{return:e,token:!1})}return u.get(r).deref()}return u.get(r);case v:return ne(r)}return r},S={[ae]:(e,t,r)=>d(e.apply(t,r)),[ie]:(e,t)=>d(new e(...t)),[ce]:(e,t,r)=>d(D(e,t,r)),[le]:(e,t)=>d(delete e[t]),[pe]:e=>d(N(e)),[ue]:(e,t)=>d(e[t]),[fe]:(e,t)=>{const r=H(e,t);return r?ee(h,Z(r,d)):ee(b,r)},[de]:(e,t)=>d(t in e),[ye]:e=>d(U(e)),[he]:e=>ee(h,z(e).map(d)),[ge]:e=>d(q(e)),[we]:(e,t,r)=>d(K(e,t,r)),[me]:(e,t)=>d(Y(e,t)),[be](e){l.delete(u.get(e)),u.delete(e)}};return r[s]=(e,t,...r)=>{switch(e){case ae:r[0]=$(r[0]),r[1]=r[1].map($);break;case ie:r[0]=r[0].map($);break;case ce:{const[e,t]=r;r[0]=$(e);const{get:n,set:s,value:o}=t;n&&(t.get=$(n)),s&&(t.set=$(s)),o&&(t.value=$(o));break}default:r=r.map($)}return S[e]($(t),...r)},{proxy:r,[e.toLowerCase()]:p,[`is${e}Proxy`]:()=>!1}}})(\"Window\",!0),$e=(e=>{let t=0;const r=new Map,n=new Map,s=Symbol(),o=e=>typeof e===g?e():e,a=e=>typeof e===h&&!!e&&s in e,i=Array[X];return function(c,l,u){const f=this?.transform||se,{[l]:p}=c,d=new Map,y=e=>{d.delete(e),p(be,b(e))},b=te(((e,a)=>{if(s in a)return o(a[s]);if(e===g){if(a=f(a),!n.has(a)){let e;for(;n.has(e=String(t++)););r.set(a,e),n.set(e,a)}return ee(e,r.get(a))}if(!(a instanceof Q)){e===h&&(a=f(a));for(const e in a)a[e]=b(a[e])}return ee(e,a)})),$=e=>{const[t,r]=e;if(!d.has(r)){const n=t===g?oe.bind(e):e,s=new Proxy(n,A);return d.set(r,new WeakRef(s)),L(r,y,{return:s,token:!1})}return d.get(r).deref()},S=e=>{const[t,r]=e;switch(t){case h:return null===r?globalThis:typeof r===w?$(e):r;case g:return typeof r===m?n.get(r):$(e);case v:return ne(r)}return r},E=(e,t,...r)=>S(p(e,o(t),...r)),A={[ae]:(e,t,r)=>E(ae,e,b(t),r.map(b)),[ie]:(e,t)=>E(ie,e,t.map(b)),[ce]:(e,t,r)=>{const{get:n,set:s,value:o}=r;return typeof n===g&&(r.get=b(n)),typeof s===g&&(r.set=b(s)),typeof o===g&&(r.value=b(o)),E(ce,e,b(t),r)},[le]:(e,t)=>E(le,e,b(t)),[pe]:e=>E(pe,e),[ue]:(e,t)=>t===s?e:E(ue,e,b(t)),[fe]:(e,t)=>{const r=E(fe,e,b(t));return r&&Z(r,S)},[de]:(e,t)=>t===s||E(de,e,b(t)),[ye]:e=>E(ye,e),[he]:e=>E(he,e).map(S),[ge]:e=>E(ge,e),[we]:(e,t,r)=>E(we,e,b(t),b(r)),[me]:(e,t)=>E(me,e,b(t))};c[u]=(e,t,s,o)=>{switch(e){case ae:return S(t).apply(S(s),o.map(S));case be:{const e=S(t);r.delete(n.get(e)),n.delete(e)}}};const P=new Proxy([h,null],A),j=P.Array[X];return D(Array,X,{value:e=>a(e)?j(e):i(e)}),{[e.toLowerCase()]:P,[`is${e}Proxy`]:a,proxy:c}}})(\"Window\"),Se=typeof Worker===g?Worker:class{};const Ee=new WeakMap,Ae=(e,...t)=>{const r=J(e,...t);if(!Ee.has(r)){const n=e instanceof Se?ve:$e;Ee.set(r,n.call(t.at(0),r,d,y))}return Ee.get(r)};Ae.transfer=J.transfer;const Pe={object(...e){return this.string(function(e){for(var t=e[0],r=1,n=arguments.length;r<n;r++)t+=arguments[r]+e[r];return t}(...e))},string(e){for(const t of e.split(/[\\r\\n]+/))if(t.trim().length){/^(\\s+)/.test(t)&&(e=e.replace(new RegExp(\"^\"+RegExp.$1,\"gm\"),\"\"));break}return e}},je=(e,...t)=>Pe[typeof e](e,...t);Promise.withResolvers||(Promise.withResolvers=function(){var e,t,r=new this((function(r,n){e=r,t=n}));return{resolve:e,reject:t,promise:r}});const Me=e=>e.arrayBuffer(),ke=e=>e.json(),xe=e=>e.text(),Te=new WeakMap,_e=e=>{const t=e||console,r={stderr:(t.stderr||console.error).bind(t),stdout:(t.stdout||console.log).bind(t)};return{stderr:(...e)=>r.stderr(...e),stdout:(...e)=>r.stdout(...e),async get(e){const t=await e;return Te.set(t,r),t}}},Oe=({FS:e,PATH:t,PATH_FS:r},n,s)=>{const o=r.resolve(n);return e.mkdirTree(t.dirname(o)),e.writeFile(o,new Uint8Array(s),{canOwn:!0})},We=e=>{const t=e.split(\"/\");return t.pop(),t.join(\"/\")},Fe=(e,t)=>{const r=[];for(const n of t.split(\"/\"))\".\"!==n&&(r.push(n),n&&e.mkdir(r.join(\"/\")))},Re=(e,t)=>{const r=[];for(const e of t.split(\"/\"))switch(e){case\"\":case\".\":break;case\"..\":r.pop();break;default:r.push(e)}return[e.cwd()].concat(r).join(\"/\").replace(/^\\/+/,\"/\")},Be=e=>{const t=e.map((e=>e.trim().replace(/(^[/]*|[/]*$)/g,\"\"))).filter((e=>\"\"!==e&&\".\"!==e)).join(\"/\");return e[0].startsWith(\"/\")?`/${t}`:t},Je=(e,t)=>fetch(Qe(t,Ie.get(e))),Ie=new WeakMap,Ce=(e,t,r)=>Ge((e=>{for(const{files:t,to_file:r,from:n=\"\"}of e){if(void 0!==t&&void 0!==r)throw new Error(\"Cannot use 'to_file' and 'files' parameters together!\");if(void 0===t&&void 0===r&&n.endsWith(\"/\"))throw new Error(`Couldn't determine the filename from the path ${n}, please supply 'to_file' parameter.`)}return e.flatMap((({from:e=\"\",to_folder:t=\".\",to_file:r,files:n})=>{if(Ne(n))return n.map((r=>({url:Be([e,r]),path:Be([t,r])})));const s=r||e.slice(1+e.lastIndexOf(\"/\"));return[{url:e,path:Be([t,s])}]}))})(r).map((({url:n,path:s})=>Je(r,n).then(Me).then((r=>e.writeFile(t,s,r)))))),Le=(e,t)=>t.endsWith(\"/\")?`${t}${e.split(\"/\").pop()}`:t,De=(e,t)=>e.replace(/\\{.+?\\}/g,(e=>{if(!t.has(e))throw new SyntaxError(`Invalid template: ${e}`);return t.get(e)})),He=(e,t,r)=>Ge((e=>{const t=new Map,r=new Set,n=[];for(const[s,o]of Object.entries(e))if(/^\\{.+\\}$/.test(s)){if(t.has(s))throw new SyntaxError(`Duplicated template: ${s}`);t.set(s,De(o,t))}else{const e=De(s,t),a=Le(e,De(o||\"./\",t));if(r.has(a))throw new SyntaxError(`Duplicated destination: ${a}`);r.add(a),n.push({url:e,path:a})}return n})(r).map((({url:n,path:s})=>Je(r,n).then(Me).then((r=>e.writeFile(t,s,r)))))),{isArray:Ne}=Array,{assign:Ue,create:ze,defineProperties:qe,defineProperty:Ke,entries:Ye}=Object,{all:Ge,resolve:Ve}=new Proxy(Promise,{get:(e,t)=>e[t].bind(e)}),Qe=(e,t=location.href)=>new URL(e,t.replace(/^blob:/,\"\")).href,Xe=(e,t,r,n=!1,s=CustomEvent)=>{e.dispatchEvent(new s(`${t}:${r}`,{bubbles:!0,detail:{worker:n}}))},Ze=e=>Function(`'use strict';return (${e})`)(),et=(e,t,r)=>{e.registerJsModule(t,r)},tt=(e,t,...r)=>{try{return e.runPython(je(t),...r)}catch(t){Te.get(e).stderr(t)}},rt=async(e,t,...r)=>{try{return await e.runPythonAsync(je(t),...r)}catch(t){Te.get(e).stderr(t)}},nt=async(e,t,r)=>{const[n,...s]=t.split(\".\");let o,a=e.globals.get(n);for(const e of s)[o,a]=[a,a[e]];try{await a.call(o,r)}catch(t){Te.get(e).stderr(t)}};var st={type:\"micropython\",module:(e=\"1.20.0-297\")=>`https://cdn.jsdelivr.net/npm/@micropython/micropython-webassembly-pyscript@${e}/micropython.mjs`,async engine({loadMicroPython:e},t,r){const{stderr:n,stdout:s,get:o}=_e();r=r.replace(/\\.m?js$/,\".wasm\");const a=await o(e({stderr:n,stdout:s,url:r}));return t.files&&await He(this,a,t.files),t.fetch&&await Ce(this,a,t.fetch),a},registerJSModule:et,run:tt,runAsync:rt,runEvent:nt,transform:(e,t)=>t,writeFile:({FS:e,_module:{PATH:t,PATH_FS:r}},n,s)=>Oe({FS:e,PATH:t,PATH_FS:r},n,s)};const ot={dict_converter:Object.fromEntries};var at={type:\"pyodide\",module:(e=\"0.24.1\")=>`https://cdn.jsdelivr.net/pyodide/v${e}/full/pyodide.mjs`,async engine({loadPyodide:e},t,r){const{stderr:n,stdout:s,get:o}=_e(),a=r.slice(0,r.lastIndexOf(\"/\")),i=await o(e({stderr:n,stdout:s,indexURL:a}));if(t.files&&await He(this,i,t.files),t.fetch&&await Ce(this,i,t.fetch),t.packages){await i.loadPackage(\"micropip\");const e=await i.pyimport(\"micropip\");await e.install(t.packages),e.destroy()}return i},registerJSModule:et,run:tt,runAsync:rt,runEvent:nt,transform:(e,t)=>t instanceof e.ffi.PyProxy?t.toJs(ot):t,writeFile:({FS:e,PATH:t,_module:{PATH_FS:r}},n,s)=>Oe({FS:e,PATH:t,PATH_FS:r},n,s)};const it=\"ruby-wasm-wasi\",ct=it.replace(/\\W+/g,\"_\");var lt={type:it,experimental:!0,module:(e=\"2.1.0\")=>`https://cdn.jsdelivr.net/npm/ruby-3_2-wasm-wasi@${e}/dist/browser.esm.js`,async engine({DefaultRubyVM:e},t,r){const n=await fetch(`${r.slice(0,r.lastIndexOf(\"/\"))}/ruby.wasm`),s=await WebAssembly.compile(await n.arrayBuffer()),{vm:o}=await e(s);return t.files&&await He(this,o,t.files),t.fetch&&await Ce(this,o,t.fetch),o},registerJSModule(e,t,r){const n=`__module_${ct}_${t}`;globalThis[n]=r,this.run(e,`require \"js\";$${t}=JS.global[:${n}]`),delete globalThis[n]},run:(e,t,...r)=>e.eval(je(t),...r),runAsync:(e,t,...r)=>e.evalAsync(je(t),...r),async runEvent(e,t,r){if(/^xworker\\.(on\\w+)$/.test(t)){const{$1:t}=RegExp,n=`__module_${ct}_event`;globalThis[n]=r,this.run(e,`require \"js\";$xworker.call(\"${t}\",JS.global[:${n}])`),delete globalThis[n]}else{const n=this.run(e,`method(:${t})`);await n.call(t,e.wrap(r))}},transform:(e,t)=>t,writeFile:()=>{throw new Error(`writeFile is not supported in ${it}`)}};var ut={type:\"wasmoon\",module:(e=\"1.15.0\")=>`https://cdn.jsdelivr.net/npm/wasmoon@${e}/+esm`,async engine({LuaFactory:e,LuaLibraries:t},r){const{stderr:n,stdout:s,get:o}=_e(),a=await o((new e).createEngine());return a.global.getTable(t.Base,(e=>{a.global.setField(e,\"print\",s),a.global.setField(e,\"printErr\",n)})),r.files&&await He(this,a,r.files),r.fetch&&await Ce(this,a,r.fetch),a},registerJSModule:(e,t,r)=>{e.global.set(t,r)},run:(e,t,...r)=>{try{return e.doStringSync(je(t),...r)}catch(t){Te.get(e).stderr(t)}},runAsync:async(e,t,...r)=>{try{return await e.doString(je(t),...r)}catch(t){Te.get(e).stderr(t)}},runEvent:async(e,t,r)=>{const[n,...s]=t.split(\".\");let o,a=e.global.get(n);for(const e of s)[o,a]=[a,a[e]];try{await a.call(o,r)}catch(t){Te.get(e).stderr(t)}},transform:(e,t)=>t,writeFile:({cmodule:{module:{FS:e}}},t,r)=>((e,t,r)=>(Fe(e,We(t)),t=Re(e,t),e.writeFile(t,new Uint8Array(r),{canOwn:!0})))(e,t,r)};const ft=new Map,pt=new Map,dt=new Proxy(new Map,{get(e,t){if(!e.has(t)){const[r,...n]=t.split(\"@\"),s=ft.get(r),o=/^https?:\\/\\//i.test(n)?n.join(\"@\"):s.module(...n);e.set(t,{url:o,module:import(o),engine:s.engine.bind(s)})}const{url:r,module:n,engine:s}=e.get(t);return(e,o)=>n.then((n=>{pt.set(t,e);for(const t of[\"files\",\"fetch\"]){const r=e?.[t];r&&Ie.set(r,o)}return s(n,e,r)}))}}),yt=e=>{for(const t of[].concat(e.type))ft.set(t,e)};for(const e of[st,at,lt,ut])yt(e);const ht=async e=>(await import(\"https://cdn.jsdelivr.net/npm/basic-toml@0.3.1/es.js\")).parse(e),gt=(e,t,r={})=>{if(t){const[e,n]=(e=>{let t=typeof e;return\"string\"===t&&/\\.(json|toml|txt)$/.test(e)?t=RegExp.$1:e=\"./config.txt\",[Qe(e),t]})(t);if(\"json\"===n)r=fetch(e).then(ke);else if(\"toml\"===n)r=fetch(e).then(xe).then(ht);else if(\"string\"===n)try{r=JSON.parse(t)}catch(e){r=ht(t)}else\"object\"===n&&t&&(r=t);t=e}return Ve(r).then((r=>dt[e](r,t)))},wt=\"BeforeRun\",mt=\"AfterRun\",bt=[`code${wt}`,`code${wt}Async`,`code${mt}`,`code${mt}Async`],vt=[\"onWorker\",\"onReady\",`on${wt}`,`on${wt}Async`,`on${mt}`,`on${mt}Async`],$t=(e,t,r,n,s,o)=>{if(s||o){const a=n?\"runAsync\":\"run\",i=e[a];e[a]=n?async function(e,n,...a){s&&await s.call(this,t,r);const c=await i.call(this,e,n,...a);return o&&await o.call(this,t,r),c}:function(e,n,...a){s&&s.call(this,t,r);const c=i.call(this,e,n,...a);return o&&o.call(this,t,r),c}}};try{new SharedArrayBuffer(4)}catch(e){throw new Error([\"Unable to use SharedArrayBuffer due insecure environment.\",\"Please read requirements in MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer#security_requirements\"].join(\"\\n\"))}let St,Et,At;const Pt=(e,t)=>{addEventListener(e,t||(async t=>{try{await St,Et(`xworker.on${e}`,t)}catch(e){postMessage(e)}}),!!t&&{once:!0})},{parse:jt,stringify:Mt}=f,{proxy:kt,window:xt,isWindowProxy:Tt}=Ae(self,{parse:jt,stringify:Mt,transform:e=>At?At(e):e}),_t={sync:kt,window:xt,isWindowProxy:Tt,onmessage:console.info,onerror:console.error,onmessageerror:console.warn,postMessage:postMessage.bind(self)};Pt(\"message\",(({data:{options:e,config:t,code:r,hooks:n}})=>{St=(async()=>{try{const{id:s,tag:o,type:a,custom:i,version:c,config:l,async:u}=e,f=await gt(((e,t=\"\")=>`${e}@${t}`.replace(/@$/,\"\"))(a,c),t,l),p=ze(ft.get(a)),d=((e,t,r,n)=>({type:t,config:r,interpreter:n,io:Te.get(n),run:(t,...r)=>e.run(n,t,...r),runAsync:(t,...r)=>e.runAsync(n,t,...r),runEvent:(...t)=>e.runEvent(n,...t)}))(p,a,l,f);let y=\"run\";if(u&&(y+=\"Async\"),n){const e=((e,t)=>(r,n)=>{const s=e[t].bind(e);e[t]=(e,t,...o)=>s(e,`${n?r:t}\\n${n?t:r}`,...o)})(p,y);let t,r,s=\"\",o=\"\";for(const e of bt){const t=n[e];if(t){const r=e.endsWith(\"Async\");(r&&u||!r&&!u)&&(e.startsWith(\"codeBefore\")?s=t:o=t)}}o&&e(o,!1),s&&e(s,!0);for(const e of vt.slice(2)){const s=n[e];if(s){const n=e.endsWith(\"Async\");if(n&&u||!n&&!u){const n=Ze(s);e.startsWith(\"onBefore\")?t=n:r=n}}}$t(p,d,_t,u,t,r)}const{CustomEvent:h,document:g}=xt,w=s&&g.getElementById(s)||null,m=e=>Xe(w,i||a,e,!0,h);let b=\"\";return p.registerJSModule(f,\"polyscript\",{xworker:_t,get target(){return!b&&w&&(\"SCRIPT\"===o?w.after(Ue(g.createElement(`script-${i||a}`),{id:b=`${s}-target`})):(b=s,w.replaceChildren(),w.style.display=\"block\")),b}}),Et=p.runEvent.bind(p,f),At=p.transform.bind(p,f),w&&m(\"ready\"),n?.onReady&&Ze(n?.onReady).call(p,d,_t),await p[y](f,r),w&&m(\"done\"),f}catch(e){postMessage(e)}})(),Pt(\"error\"),Pt(\"message\"),Pt(\"messageerror\")}));\n"],{type:'application/javascript'})),{type:'module'}); | ||
module.exports = () => new Worker(URL.createObjectURL(new Blob(["const e=\"object\"==typeof self?self:globalThis,t=t=>((t,r)=>{const n=(e,r)=>(t.set(r,e),e),s=o=>{if(t.has(o))return t.get(o);const[a,i]=r[o];switch(a){case 0:case-1:return n(i,o);case 1:{const e=n([],o);for(const t of i)e.push(s(t));return e}case 2:{const e=n({},o);for(const[t,r]of i)e[s(t)]=s(r);return e}case 3:return n(new Date(i),o);case 4:{const{source:e,flags:t}=i;return n(new RegExp(e,t),o)}case 5:{const e=n(new Map,o);for(const[t,r]of i)e.set(s(t),s(r));return e}case 6:{const e=n(new Set,o);for(const t of i)e.add(s(t));return e}case 7:{const{name:t,message:r}=i;return n(new e[t](r),o)}case 8:return n(BigInt(i),o);case\"BigInt\":return n(Object(BigInt(i)),o)}return n(new e[a](i),o)};return s})(new Map,t)(0),r=\"\",{toString:n}={},{keys:s}=Object,o=e=>{const t=typeof e;if(\"object\"!==t||!e)return[0,t];const s=n.call(e).slice(8,-1);switch(s){case\"Array\":return[1,r];case\"Object\":return[2,r];case\"Date\":return[3,r];case\"RegExp\":return[4,r];case\"Map\":return[5,r];case\"Set\":return[6,r]}return s.includes(\"Array\")?[1,s]:s.includes(\"Error\")?[7,s]:[2,s]},a=([e,t])=>0===e&&(\"function\"===t||\"symbol\"===t),i=(e,{json:t,lossy:r}={})=>{const n=[];return((e,t,r,n)=>{const i=(e,t)=>{const s=n.push(e)-1;return r.set(t,s),s},c=n=>{if(r.has(n))return r.get(n);let[l,u]=o(n);switch(l){case 0:{let t=n;switch(u){case\"bigint\":l=8,t=n.toString();break;case\"function\":case\"symbol\":if(e)throw new TypeError(\"unable to serialize \"+u);t=null;break;case\"undefined\":return i([-1],n)}return i([l,t],n)}case 1:{if(u)return i([u,[...n]],n);const e=[],t=i([l,e],n);for(const t of n)e.push(c(t));return t}case 2:{if(u)switch(u){case\"BigInt\":return i([u,n.toString()],n);case\"Boolean\":case\"Number\":case\"String\":return i([u,n.valueOf()],n)}if(t&&\"toJSON\"in n)return c(n.toJSON());const r=[],f=i([l,r],n);for(const t of s(n))!e&&a(o(n[t]))||r.push([c(t),c(n[t])]);return f}case 3:return i([l,n.toISOString()],n);case 4:{const{source:e,flags:t}=n;return i([l,{source:e,flags:t}],n)}case 5:{const t=[],r=i([l,t],n);for(const[r,s]of n)(e||!a(o(r))&&!a(o(s)))&&t.push([c(r),c(s)]);return r}case 6:{const t=[],r=i([l,t],n);for(const r of n)!e&&a(o(r))||t.push(c(r));return r}}const{message:f}=n;return i([l,{name:u,message:f}],n)};return c})(!(t||r),!!t,new Map,n)(e),n},{parse:c,stringify:l}=JSON,u={json:!0,lossy:!0};var f=Object.freeze({__proto__:null,parse:e=>t(c(e)),stringify:e=>l(i(e,u))});const p=\"49775373-4961-44cd-9a4b-651a0c9cca5a\",d=\"M\"+p,y=\"T\"+p,h=\"object\",g=\"function\",w=\"number\",m=\"string\",b=\"undefined\",v=\"symbol\";var $=e=>({value:new Promise((t=>{let r=new Worker(\"data:application/javascript,onmessage%3D(%7Bdata%3Ab%7D)%3D%3E(Atomics.wait(b%2C0)%2CpostMessage(0))\");r.onmessage=t,r.postMessage(e)}))})\n/*! (c) Andrea Giammarchi - ISC */;const{Int32Array:S,Map:E,SharedArrayBuffer:A,Uint16Array:P}=globalThis,{BYTES_PER_ELEMENT:j}=S,{BYTES_PER_ELEMENT:M}=P,{isArray:k}=Array,{notify:x,wait:T,waitAsync:_}=Atomics,{fromCharCode:O}=String,W=new WeakSet,F=new WeakMap,R={value:{then:e=>e()}};let B=0;const J=(e,{parse:t=JSON.parse,stringify:r=JSON.stringify,transform:n,interrupt:s}=JSON)=>{if(!F.has(e)){const o=(t,...r)=>e.postMessage({[p]:r},{transfer:t}),a=typeof s===g?s:s?.handler,i=s?.delay||42,c=(e,t)=>e?(_||$)(t,0):(a?((e,t,r)=>{for(;\"timed-out\"===T(e,0,0,t);)r()})(t,i,a):T(t,0),R);let l=!1;F.set(e,new Proxy(new E,{has:(e,t)=>\"string\"==typeof t&&!t.startsWith(\"_\"),get:(r,s)=>\"then\"===s?null:(...r)=>{const a=B++;let i=new S(new A(2*j)),u=[];W.has(r.at(-1)||u)&&W.delete(u=r.pop()),o(u,a,i,s,n?r.map(n):r);const f=e!==globalThis;let p=0;return l&&f&&(p=setTimeout(console.warn,1e3,`💀🔒 - Possible deadlock if proxy.${s}(...args) is awaited`)),c(f,i).value.then((()=>{clearTimeout(p);const e=i[1];if(!e)return;const r=M*e;return i=new S(new A(r+r%j)),o([],a,i),c(f,i).value.then((()=>{const r=new P(i.buffer).slice(0,e),n=[];for(let t=0;t<e;t+=2048)n.push(O(...r.slice(t,t+2048)));return t(n.join(\"\"))}))}))},set(t,s,o){const a=typeof o;if(a!==g)throw new Error(`Unable to assign ${s} as ${a}`);if(!t.size){const s=new E;e.addEventListener(\"message\",(async e=>{const o=e.data?.[p];if(k(o)){e.stopImmediatePropagation();const[a,i,...c]=o;let u;if(c.length){const[e,o]=c;if(t.has(e)){l=!0;try{const c=await t.get(e)(...o);if(void 0!==c){const e=r(n?n(c):c);s.set(a,e),i[1]=e.length}}catch(e){u=e}finally{l=!1}}else u=new Error(`Unsupported action: ${e}`);i[0]=1}else{const e=s.get(a);s.delete(a);for(let t=new P(i.buffer),r=0;r<e.length;r++)t[r]=e.charCodeAt(r)}if(x(i,0),u)throw u}}))}return!!t.set(s,o)}}))}return F.get(e)};J.transfer=(...e)=>(W.add(e),e);const I=new FinalizationRegistry((([e,t,r])=>{r&&console.debug(`Held value ${String(t)} not relevant anymore`),e(t)})),C=Object.create(null),L=(e,t,{debug:r,return:n,token:s=e}=C)=>{const o=n||new Proxy(e,C),a=[o,[t,e,!!r]];return!1!==s&&a.push(s),I.register(...a),o},{defineProperty:D,getOwnPropertyDescriptor:H,getPrototypeOf:N,isExtensible:U,ownKeys:z,preventExtensions:q,set:K,setPrototypeOf:Y}=Reflect,{assign:G,create:V}=Object,Q=N(Int8Array),X=\"isArray\",Z=(e,t)=>{const{get:r,set:n,value:s}=e;return r&&(e.get=t(r)),n&&(e.set=t(n)),s&&(e.value=t(s)),e},ee=(e,t)=>[e,t],te=e=>t=>{const r=typeof t;switch(r){case h:if(null==t)return ee(\"null\",t);if(t===globalThis)return ee(h,null);case g:return e(r,t);case\"boolean\":case w:case m:case b:case\"bigint\":return ee(r,t);case v:if(re.has(t))return ee(r,re.get(t))}throw new Error(`Unable to handle this ${r} type`)},re=new Map(z(Symbol).filter((e=>typeof Symbol[e]===v)).map((e=>[Symbol[e],e]))),ne=e=>{for(const[t,r]of re)if(r===e)return t},se=e=>e;function oe(){return this}const ae=\"apply\",ie=\"construct\",ce=\"defineProperty\",le=\"deleteProperty\",ue=\"get\",fe=\"getOwnPropertyDescriptor\",pe=\"getPrototypeOf\",de=\"has\",ye=\"isExtensible\",he=\"ownKeys\",ge=\"preventExtensions\",we=\"set\",me=\"setPrototypeOf\",be=\"delete\";var ve=((e,t)=>{const r=t&&new WeakMap;if(t){const{addEventListener:e}=EventTarget.prototype;D(EventTarget.prototype,\"addEventListener\",{value(t,n,...s){return s.at(0)?.invoke&&(r.has(this)||r.set(this,new Map),r.get(this).set(t,[].concat(s[0].invoke)),delete s[0].invoke),e.call(this,t,n,...s)}})}const n=t&&(e=>{const{currentTarget:t,target:n,type:s}=e;for(const o of r.get(t||n)?.get(s)||[])e[o]()});return function(r,s,o,...a){let i=0,c=this?.transform||se;const l=new Map,u=new Map,{[o]:f}=r,p=a.length?G(V(globalThis),...a):globalThis,d=te(((e,t)=>{if(!l.has(t)){let r;for(;u.has(r=i++););l.set(t,r),u.set(r,e===h?c(t):t)}return ee(e,l.get(t))})),y=e=>{f(be,ee(m,e))},$=([e,r])=>{switch(e){case h:if(null==r)return p;if(typeof r===w)return u.get(r);if(!(r instanceof Q))for(const e in r)r[e]=$(r[e]);return r;case g:if(typeof r===m){if(!u.has(r)){const e=function(...e){return t&&e.at(0)instanceof Event&&n(...e),f(ae,ee(g,r),d(this),e.map(d))};return u.set(r,new WeakRef(e)),L(r,y,{return:e,token:!1})}return u.get(r).deref()}return u.get(r);case v:return ne(r)}return r},S={[ae]:(e,t,r)=>d(e.apply(t,r)),[ie]:(e,t)=>d(new e(...t)),[ce]:(e,t,r)=>d(D(e,t,r)),[le]:(e,t)=>d(delete e[t]),[pe]:e=>d(N(e)),[ue]:(e,t)=>d(e[t]),[fe]:(e,t)=>{const r=H(e,t);return r?ee(h,Z(r,d)):ee(b,r)},[de]:(e,t)=>d(t in e),[ye]:e=>d(U(e)),[he]:e=>ee(h,z(e).map(d)),[ge]:e=>d(q(e)),[we]:(e,t,r)=>d(K(e,t,r)),[me]:(e,t)=>d(Y(e,t)),[be](e){l.delete(u.get(e)),u.delete(e)}};return r[s]=(e,t,...r)=>{switch(e){case ae:r[0]=$(r[0]),r[1]=r[1].map($);break;case ie:r[0]=r[0].map($);break;case ce:{const[e,t]=r;r[0]=$(e);const{get:n,set:s,value:o}=t;n&&(t.get=$(n)),s&&(t.set=$(s)),o&&(t.value=$(o));break}default:r=r.map($)}return S[e]($(t),...r)},{proxy:r,[e.toLowerCase()]:p,[`is${e}Proxy`]:()=>!1}}})(\"Window\",!0),$e=(e=>{let t=0;const r=new Map,n=new Map,s=Symbol(),o=e=>typeof e===g?e():e,a=e=>typeof e===h&&!!e&&s in e,i=Array[X];return function(c,l,u){const f=this?.transform||se,{[l]:p}=c,d=new Map,y=e=>{d.delete(e),p(be,b(e))},b=te(((e,a)=>{if(s in a)return o(a[s]);if(e===g){if(a=f(a),!n.has(a)){let e;for(;n.has(e=String(t++)););r.set(a,e),n.set(e,a)}return ee(e,r.get(a))}if(!(a instanceof Q)){e===h&&(a=f(a));for(const e in a)a[e]=b(a[e])}return ee(e,a)})),$=e=>{const[t,r]=e;if(!d.has(r)){const n=t===g?oe.bind(e):e,s=new Proxy(n,A);return d.set(r,new WeakRef(s)),L(r,y,{return:s,token:!1})}return d.get(r).deref()},S=e=>{const[t,r]=e;switch(t){case h:return null===r?globalThis:typeof r===w?$(e):r;case g:return typeof r===m?n.get(r):$(e);case v:return ne(r)}return r},E=(e,t,...r)=>S(p(e,o(t),...r)),A={[ae]:(e,t,r)=>E(ae,e,b(t),r.map(b)),[ie]:(e,t)=>E(ie,e,t.map(b)),[ce]:(e,t,r)=>{const{get:n,set:s,value:o}=r;return typeof n===g&&(r.get=b(n)),typeof s===g&&(r.set=b(s)),typeof o===g&&(r.value=b(o)),E(ce,e,b(t),r)},[le]:(e,t)=>E(le,e,b(t)),[pe]:e=>E(pe,e),[ue]:(e,t)=>t===s?e:E(ue,e,b(t)),[fe]:(e,t)=>{const r=E(fe,e,b(t));return r&&Z(r,S)},[de]:(e,t)=>t===s||E(de,e,b(t)),[ye]:e=>E(ye,e),[he]:e=>E(he,e).map(S),[ge]:e=>E(ge,e),[we]:(e,t,r)=>E(we,e,b(t),b(r)),[me]:(e,t)=>E(me,e,b(t))};c[u]=(e,t,s,o)=>{switch(e){case ae:return S(t).apply(S(s),o.map(S));case be:{const e=S(t);r.delete(n.get(e)),n.delete(e)}}};const P=new Proxy([h,null],A),j=P.Array[X];return D(Array,X,{value:e=>a(e)?j(e):i(e)}),{[e.toLowerCase()]:P,[`is${e}Proxy`]:a,proxy:c}}})(\"Window\"),Se=typeof Worker===g?Worker:class{};const Ee=new WeakMap,Ae=(e,...t)=>{const r=J(e,...t);if(!Ee.has(r)){const n=e instanceof Se?ve:$e;Ee.set(r,n.call(t.at(0),r,d,y))}return Ee.get(r)};Ae.transfer=J.transfer;const Pe={object(...e){return this.string(function(e){for(var t=e[0],r=1,n=arguments.length;r<n;r++)t+=arguments[r]+e[r];return t}(...e))},string(e){for(const t of e.split(/[\\r\\n]+/))if(t.trim().length){/^(\\s+)/.test(t)&&(e=e.replace(new RegExp(\"^\"+RegExp.$1,\"gm\"),\"\"));break}return e}},je=(e,...t)=>Pe[typeof e](e,...t);Promise.withResolvers||(Promise.withResolvers=function(){var e,t,r=new this((function(r,n){e=r,t=n}));return{resolve:e,reject:t,promise:r}});const Me=e=>e.arrayBuffer(),ke=e=>e.json(),xe=e=>e.text(),Te=new WeakMap,_e=e=>{const t=e||console,r={stderr:(t.stderr||console.error).bind(t),stdout:(t.stdout||console.log).bind(t)};return{stderr:(...e)=>r.stderr(...e),stdout:(...e)=>r.stdout(...e),async get(e){const t=await e;return Te.set(t,r),t}}},Oe=({FS:e,PATH:t,PATH_FS:r},n,s)=>{const o=r.resolve(n);return e.mkdirTree(t.dirname(o)),e.writeFile(o,new Uint8Array(s),{canOwn:!0})},We=e=>{const t=e.split(\"/\");return t.pop(),t.join(\"/\")},Fe=(e,t)=>{const r=[];for(const n of t.split(\"/\"))\".\"!==n&&(r.push(n),n&&e.mkdir(r.join(\"/\")))},Re=(e,t)=>{const r=[];for(const e of t.split(\"/\"))switch(e){case\"\":case\".\":break;case\"..\":r.pop();break;default:r.push(e)}return[e.cwd()].concat(r).join(\"/\").replace(/^\\/+/,\"/\")},Be=e=>{const t=e.map((e=>e.trim().replace(/(^[/]*|[/]*$)/g,\"\"))).filter((e=>\"\"!==e&&\".\"!==e)).join(\"/\");return e[0].startsWith(\"/\")?`/${t}`:t},Je=(e,t)=>fetch(Qe(t,Ie.get(e))),Ie=new WeakMap,Ce=(e,t,r)=>Ge((e=>{for(const{files:t,to_file:r,from:n=\"\"}of e){if(void 0!==t&&void 0!==r)throw new Error(\"Cannot use 'to_file' and 'files' parameters together!\");if(void 0===t&&void 0===r&&n.endsWith(\"/\"))throw new Error(`Couldn't determine the filename from the path ${n}, please supply 'to_file' parameter.`)}return e.flatMap((({from:e=\"\",to_folder:t=\".\",to_file:r,files:n})=>{if(Ne(n))return n.map((r=>({url:Be([e,r]),path:Be([t,r])})));const s=r||e.slice(1+e.lastIndexOf(\"/\"));return[{url:e,path:Be([t,s])}]}))})(r).map((({url:n,path:s})=>Je(r,n).then(Me).then((r=>e.writeFile(t,s,r)))))),Le=(e,t)=>t.endsWith(\"/\")?`${t}${e.split(\"/\").pop()}`:t,De=(e,t)=>e.replace(/\\{.+?\\}/g,(e=>{if(!t.has(e))throw new SyntaxError(`Invalid template: ${e}`);return t.get(e)})),He=(e,t,r)=>Ge((e=>{const t=new Map,r=new Set,n=[];for(const[s,o]of Object.entries(e))if(/^\\{.+\\}$/.test(s)){if(t.has(s))throw new SyntaxError(`Duplicated template: ${s}`);t.set(s,De(o,t))}else{const e=De(s,t),a=Le(e,De(o||\"./\",t));if(r.has(a))throw new SyntaxError(`Duplicated destination: ${a}`);r.add(a),n.push({url:e,path:a})}return n})(r).map((({url:n,path:s})=>Je(r,n).then(Me).then((r=>e.writeFile(t,s,r)))))),{isArray:Ne}=Array,{assign:Ue,create:ze,defineProperties:qe,defineProperty:Ke,entries:Ye}=Object,{all:Ge,resolve:Ve}=new Proxy(Promise,{get:(e,t)=>e[t].bind(e)}),Qe=(e,t=location.href)=>new URL(e,t.replace(/^blob:/,\"\")).href,Xe=(e,t,r,n=!1,s=CustomEvent)=>{e.dispatchEvent(new s(`${t}:${r}`,{bubbles:!0,detail:{worker:n}}))},Ze=e=>Function(`'use strict';return (${e})`)(),et=(e,t,r)=>{e.registerJsModule(t,r)},tt=(e,t,...r)=>{try{return e.runPython(je(t),...r)}catch(t){Te.get(e).stderr(t)}},rt=async(e,t,...r)=>{try{return await e.runPythonAsync(je(t),...r)}catch(t){Te.get(e).stderr(t)}},nt=async(e,t,r)=>{const[n,...s]=t.split(\".\");let o,a=e.globals.get(n);for(const e of s)[o,a]=[a,a[e]];try{await a.call(o,r)}catch(t){Te.get(e).stderr(t)}};var st={type:\"micropython\",module:(e=\"1.20.0-297\")=>`https://cdn.jsdelivr.net/npm/@micropython/micropython-webassembly-pyscript@${e}/micropython.mjs`,async engine({loadMicroPython:e},t,r){const{stderr:n,stdout:s,get:o}=_e();r=r.replace(/\\.m?js$/,\".wasm\");const a=await o(e({stderr:n,stdout:s,url:r}));return t.files&&await He(this,a,t.files),t.fetch&&await Ce(this,a,t.fetch),a},registerJSModule:et,run:tt,runAsync:rt,runEvent:nt,transform:(e,t)=>t,writeFile:({FS:e,_module:{PATH:t,PATH_FS:r}},n,s)=>Oe({FS:e,PATH:t,PATH_FS:r},n,s)};const ot={dict_converter:Object.fromEntries};var at={type:\"pyodide\",module:(e=\"0.24.1\")=>`https://cdn.jsdelivr.net/pyodide/v${e}/full/pyodide.mjs`,async engine({loadPyodide:e},t,r){const{stderr:n,stdout:s,get:o}=_e(),a=r.slice(0,r.lastIndexOf(\"/\")),i=await o(e({stderr:n,stdout:s,indexURL:a}));if(t.files&&await He(this,i,t.files),t.fetch&&await Ce(this,i,t.fetch),t.packages){await i.loadPackage(\"micropip\");const e=await i.pyimport(\"micropip\");await e.install(t.packages),e.destroy()}return i},registerJSModule:et,run:tt,runAsync:rt,runEvent:nt,transform:(e,t)=>t instanceof e.ffi.PyProxy?t.toJs(ot):t,writeFile:({FS:e,PATH:t,_module:{PATH_FS:r}},n,s)=>Oe({FS:e,PATH:t,PATH_FS:r},n,s)};const it=\"ruby-wasm-wasi\",ct=it.replace(/\\W+/g,\"_\");var lt={type:it,experimental:!0,module:(e=\"2.1.0\")=>`https://cdn.jsdelivr.net/npm/ruby-3_2-wasm-wasi@${e}/dist/browser.esm.js`,async engine({DefaultRubyVM:e},t,r){const n=await fetch(`${r.slice(0,r.lastIndexOf(\"/\"))}/ruby.wasm`),s=await WebAssembly.compile(await n.arrayBuffer()),{vm:o}=await e(s);return t.files&&await He(this,o,t.files),t.fetch&&await Ce(this,o,t.fetch),o},registerJSModule(e,t,r){const n=`__module_${ct}_${t}`;globalThis[n]=r,this.run(e,`require \"js\";$${t}=JS.global[:${n}]`),delete globalThis[n]},run:(e,t,...r)=>e.eval(je(t),...r),runAsync:(e,t,...r)=>e.evalAsync(je(t),...r),async runEvent(e,t,r){if(/^xworker\\.(on\\w+)$/.test(t)){const{$1:t}=RegExp,n=`__module_${ct}_event`;globalThis[n]=r,this.run(e,`require \"js\";$xworker.call(\"${t}\",JS.global[:${n}])`),delete globalThis[n]}else{const n=this.run(e,`method(:${t})`);await n.call(t,e.wrap(r))}},transform:(e,t)=>t,writeFile:()=>{throw new Error(`writeFile is not supported in ${it}`)}};var ut={type:\"wasmoon\",module:(e=\"1.15.0\")=>`https://cdn.jsdelivr.net/npm/wasmoon@${e}/+esm`,async engine({LuaFactory:e,LuaLibraries:t},r){const{stderr:n,stdout:s,get:o}=_e(),a=await o((new e).createEngine());return a.global.getTable(t.Base,(e=>{a.global.setField(e,\"print\",s),a.global.setField(e,\"printErr\",n)})),r.files&&await He(this,a,r.files),r.fetch&&await Ce(this,a,r.fetch),a},registerJSModule:(e,t,r)=>{e.global.set(t,r)},run:(e,t,...r)=>{try{return e.doStringSync(je(t),...r)}catch(t){Te.get(e).stderr(t)}},runAsync:async(e,t,...r)=>{try{return await e.doString(je(t),...r)}catch(t){Te.get(e).stderr(t)}},runEvent:async(e,t,r)=>{const[n,...s]=t.split(\".\");let o,a=e.global.get(n);for(const e of s)[o,a]=[a,a[e]];try{await a.call(o,r)}catch(t){Te.get(e).stderr(t)}},transform:(e,t)=>t,writeFile:({cmodule:{module:{FS:e}}},t,r)=>((e,t,r)=>(Fe(e,We(t)),t=Re(e,t),e.writeFile(t,new Uint8Array(r),{canOwn:!0})))(e,t,r)};const ft=new Map,pt=new Map,dt=new Proxy(new Map,{get(e,t){if(!e.has(t)){const[r,...n]=t.split(\"@\"),s=ft.get(r),o=/^https?:\\/\\//i.test(n)?n.join(\"@\"):s.module(...n);e.set(t,{url:o,module:import(o),engine:s.engine.bind(s)})}const{url:r,module:n,engine:s}=e.get(t);return(e,o)=>n.then((n=>{pt.set(t,e);for(const t of[\"files\",\"fetch\"]){const r=e?.[t];r&&Ie.set(r,o)}return s(n,e,r)}))}}),yt=e=>{for(const t of[].concat(e.type))ft.set(t,e)};for(const e of[st,at,lt,ut])yt(e);const ht=async e=>(await import(\"https://cdn.jsdelivr.net/npm/basic-toml@0.3.1/es.js\")).parse(e),gt=(e,t,r={})=>{if(t){const[e,n]=(e=>{let t=typeof e;return\"string\"===t&&/\\.(json|toml|txt)$/.test(e)?t=RegExp.$1:e=\"./config.txt\",[Qe(e),t]})(t);if(\"json\"===n)r=fetch(e).then(ke);else if(\"toml\"===n)r=fetch(e).then(xe).then(ht);else if(\"string\"===n)try{r=JSON.parse(t)}catch(e){r=ht(t)}else\"object\"===n&&t&&(r=t);t=e}return Ve(r).then((r=>dt[e](r,t)))},wt=\"BeforeRun\",mt=\"AfterRun\",bt=[`code${wt}`,`code${wt}Async`,`code${mt}`,`code${mt}Async`],vt=[\"onWorker\",\"onReady\",`on${wt}`,`on${wt}Async`,`on${mt}`,`on${mt}Async`],$t=(e,t,r,n,s,o)=>{if(s||o){const a=n?\"runAsync\":\"run\",i=e[a];e[a]=n?async function(e,n,...a){s&&await s.call(this,t,r);const c=await i.call(this,e,n,...a);return o&&await o.call(this,t,r),c}:function(e,n,...a){s&&s.call(this,t,r);const c=i.call(this,e,n,...a);return o&&o.call(this,t,r),c}}};try{new SharedArrayBuffer(4)}catch(e){throw new Error([\"Unable to use SharedArrayBuffer due insecure environment.\",\"Please read requirements in MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer#security_requirements\"].join(\"\\n\"))}let St,Et,At;const Pt=(e,t)=>{addEventListener(e,t||(async t=>{try{await St,Et(`xworker.on${e}`,t)}catch(e){postMessage(e)}}),!!t&&{once:!0})},{parse:jt,stringify:Mt}=f,{proxy:kt,window:xt,isWindowProxy:Tt}=Ae(self,{parse:jt,stringify:Mt,transform:e=>At?At(e):e}),_t={sync:kt,window:xt,isWindowProxy:Tt,onmessage:console.info,onerror:console.error,onmessageerror:console.warn,postMessage:postMessage.bind(self)};Pt(\"message\",(({data:{options:e,config:t,code:r,hooks:n}})=>{St=(async()=>{try{const{id:s,tag:o,type:a,custom:i,version:c,config:l,async:u}=e,f=await gt(((e,t=\"\")=>`${e}@${t}`.replace(/@$/,\"\"))(a,c),t,l),p=ze(ft.get(a)),d=((e,t,r,n)=>({type:t,config:r,interpreter:n,io:Te.get(n),run:(t,...r)=>e.run(n,t,...r),runAsync:(t,...r)=>e.runAsync(n,t,...r),runEvent:(...t)=>e.runEvent(n,...t)}))(p,i||a,l,f);let y=\"run\";if(u&&(y+=\"Async\"),n){const e=((e,t)=>(r,n)=>{const s=e[t].bind(e);e[t]=(e,t,...o)=>s(e,`${n?r:t}\\n${n?t:r}`,...o)})(p,y);let t,r,s=\"\",o=\"\";for(const e of bt){const t=n[e];if(t){const r=e.endsWith(\"Async\");(r&&u||!r&&!u)&&(e.startsWith(\"codeBefore\")?s=t:o=t)}}o&&e(o,!1),s&&e(s,!0);for(const e of vt.slice(2)){const s=n[e];if(s){const n=e.endsWith(\"Async\");if(n&&u||!n&&!u){const n=Ze(s);e.startsWith(\"onBefore\")?t=n:r=n}}}$t(p,d,_t,u,t,r)}const{CustomEvent:h,document:g}=xt,w=s&&g.getElementById(s)||null,m=e=>Xe(w,i||a,e,!0,h);let b=\"\";return p.registerJSModule(f,\"polyscript\",{xworker:_t,get target(){return!b&&w&&(\"SCRIPT\"===o?w.after(Ue(g.createElement(`script-${i||a}`),{id:b=`${s}-target`})):(b=s,w.replaceChildren(),w.style.display=\"block\")),b}}),Et=p.runEvent.bind(p,f),At=p.transform.bind(p,f),w&&m(\"ready\"),n?.onReady&&Ze(n?.onReady).call(p,d,_t),await p[y](f,r),w&&m(\"done\"),f}catch(e){postMessage(e)}})(),Pt(\"error\"),Pt(\"message\"),Pt(\"messageerror\")}));\n"],{type:'application/javascript'})),{type:'module'}); |
const e=(e,t=document)=>[...t.querySelectorAll(e)],t=(e,t=document)=>{const r=(new XPathEvaluator).createExpression(e).evaluate(t,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE),n=[];for(let e=0,{snapshotLength:t}=r;e<t;e++)n.push(r.snapshotItem(e));return n},r="object"==typeof self?self:globalThis,n=e=>((e,t)=>{const n=(t,r)=>(e.set(r,t),t),s=o=>{if(e.has(o))return e.get(o);const[a,i]=t[o];switch(a){case 0:case-1:return n(i,o);case 1:{const e=n([],o);for(const t of i)e.push(s(t));return e}case 2:{const e=n({},o);for(const[t,r]of i)e[s(t)]=s(r);return e}case 3:return n(new Date(i),o);case 4:{const{source:e,flags:t}=i;return n(new RegExp(e,t),o)}case 5:{const e=n(new Map,o);for(const[t,r]of i)e.set(s(t),s(r));return e}case 6:{const e=n(new Set,o);for(const t of i)e.add(s(t));return e}case 7:{const{name:e,message:t}=i;return n(new r[e](t),o)}case 8:return n(BigInt(i),o);case"BigInt":return n(Object(BigInt(i)),o)}return n(new r[a](i),o)};return s})(new Map,e)(0),s="",{toString:o}={},{keys:a}=Object,i=e=>{const t=typeof e;if("object"!==t||!e)return[0,t];const r=o.call(e).slice(8,-1);switch(r){case"Array":return[1,s];case"Object":return[2,s];case"Date":return[3,s];case"RegExp":return[4,s];case"Map":return[5,s];case"Set":return[6,s]}return r.includes("Array")?[1,r]:r.includes("Error")?[7,r]:[2,r]},c=([e,t])=>0===e&&("function"===t||"symbol"===t),l=(e,{json:t,lossy:r}={})=>{const n=[];return((e,t,r,n)=>{const s=(e,t)=>{const s=n.push(e)-1;return r.set(t,s),s},o=n=>{if(r.has(n))return r.get(n);let[l,u]=i(n);switch(l){case 0:{let t=n;switch(u){case"bigint":l=8,t=n.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+u);t=null;break;case"undefined":return s([-1],n)}return s([l,t],n)}case 1:{if(u)return s([u,[...n]],n);const e=[],t=s([l,e],n);for(const t of n)e.push(o(t));return t}case 2:{if(u)switch(u){case"BigInt":return s([u,n.toString()],n);case"Boolean":case"Number":case"String":return s([u,n.valueOf()],n)}if(t&&"toJSON"in n)return o(n.toJSON());const r=[],f=s([l,r],n);for(const t of a(n))!e&&c(i(n[t]))||r.push([o(t),o(n[t])]);return f}case 3:return s([l,n.toISOString()],n);case 4:{const{source:e,flags:t}=n;return s([l,{source:e,flags:t}],n)}case 5:{const t=[],r=s([l,t],n);for(const[r,s]of n)(e||!c(i(r))&&!c(i(s)))&&t.push([o(r),o(s)]);return r}case 6:{const t=[],r=s([l,t],n);for(const r of n)!e&&c(i(r))||t.push(o(r));return r}}const{message:f}=n;return s([l,{name:u,message:f}],n)};return o})(!(t||r),!!t,new Map,n)(e),n},{parse:u,stringify:f}=JSON,p={json:!0,lossy:!0};var d=Object.freeze({__proto__:null,parse:e=>n(u(e)),stringify:e=>f(l(e,p))});const h="49775373-4961-44cd-9a4b-651a0c9cca5a",g="M"+h,y="T"+h,w="object",m="function",b="number",v="string",$="undefined",E="symbol";var S=e=>({value:new Promise((t=>{let r=new Worker("data:application/javascript,onmessage%3D(%7Bdata%3Ab%7D)%3D%3E(Atomics.wait(b%2C0)%2CpostMessage(0))");r.onmessage=t,r.postMessage(e)}))}) | ||
/*! (c) Andrea Giammarchi - ISC */;const{Int32Array:A,Map:k,SharedArrayBuffer:P,Uint16Array:j}=globalThis,{BYTES_PER_ELEMENT:x}=A,{BYTES_PER_ELEMENT:M}=j,{isArray:T}=Array,{notify:_,wait:O,waitAsync:W}=Atomics,{fromCharCode:R}=String,F=new WeakSet,B=new WeakMap,J={value:{then:e=>e()}};let I=0;const L=(e,{parse:t=JSON.parse,stringify:r=JSON.stringify,transform:n,interrupt:s}=JSON)=>{if(!B.has(e)){const o=(t,...r)=>e.postMessage({[h]:r},{transfer:t}),a=typeof s===m?s:s?.handler,i=s?.delay||42,c=(e,t)=>e?(W||S)(t,0):(a?((e,t,r)=>{for(;"timed-out"===O(e,0,0,t);)r()})(t,i,a):O(t,0),J);let l=!1;B.set(e,new Proxy(new k,{has:(e,t)=>"string"==typeof t&&!t.startsWith("_"),get:(r,s)=>"then"===s?null:(...r)=>{const a=I++;let i=new A(new P(2*x)),u=[];F.has(r.at(-1)||u)&&F.delete(u=r.pop()),o(u,a,i,s,n?r.map(n):r);const f=e!==globalThis;let p=0;return l&&f&&(p=setTimeout(console.warn,1e3,`💀🔒 - Possible deadlock if proxy.${s}(...args) is awaited`)),c(f,i).value.then((()=>{clearTimeout(p);const e=i[1];if(!e)return;const r=M*e;return i=new A(new P(r+r%x)),o([],a,i),c(f,i).value.then((()=>{const r=new j(i.buffer).slice(0,e),n=[];for(let t=0;t<e;t+=2048)n.push(R(...r.slice(t,t+2048)));return t(n.join(""))}))}))},set(t,s,o){const a=typeof o;if(a!==m)throw new Error(`Unable to assign ${s} as ${a}`);if(!t.size){const s=new k;e.addEventListener("message",(async e=>{const o=e.data?.[h];if(T(o)){e.stopImmediatePropagation();const[a,i,...c]=o;let u;if(c.length){const[e,o]=c;if(t.has(e)){l=!0;try{const c=await t.get(e)(...o);if(void 0!==c){const e=r(n?n(c):c);s.set(a,e),i[1]=e.length}}catch(e){u=e}finally{l=!1}}else u=new Error(`Unsupported action: ${e}`);i[0]=1}else{const e=s.get(a);s.delete(a);for(let t=new j(i.buffer),r=0;r<e.length;r++)t[r]=e.charCodeAt(r)}if(_(i,0),u)throw u}}))}return!!t.set(s,o)}}))}return B.get(e)};L.transfer=(...e)=>(F.add(e),e);const C=new FinalizationRegistry((([e,t,r])=>{r&&console.debug(`Held value ${String(t)} not relevant anymore`),e(t)})),N=Object.create(null),D=(e,t,{debug:r,return:n,token:s=e}=N)=>{const o=n||new Proxy(e,N),a=[o,[t,e,!!r]];return!1!==s&&a.push(s),C.register(...a),o},{defineProperty:H,getOwnPropertyDescriptor:U,getPrototypeOf:q,isExtensible:X,ownKeys:z,preventExtensions:Y,set:G,setPrototypeOf:K}=Reflect,{assign:Q,create:V}=Object,Z=q(Int8Array),ee="isArray",te=(e,t)=>{const{get:r,set:n,value:s}=e;return r&&(e.get=t(r)),n&&(e.set=t(n)),s&&(e.value=t(s)),e},re=(e,t)=>[e,t],ne=e=>t=>{const r=typeof t;switch(r){case w:if(null==t)return re("null",t);if(t===globalThis)return re(w,null);case m:return e(r,t);case"boolean":case b:case v:case $:case"bigint":return re(r,t);case E:if(se.has(t))return re(r,se.get(t))}throw new Error(`Unable to handle this ${r} type`)},se=new Map(z(Symbol).filter((e=>typeof Symbol[e]===E)).map((e=>[Symbol[e],e]))),oe=e=>{for(const[t,r]of se)if(r===e)return t},ae=e=>e;function ie(){return this}const ce="apply",le="construct",ue="defineProperty",fe="deleteProperty",pe="get",de="getOwnPropertyDescriptor",he="getPrototypeOf",ge="has",ye="isExtensible",we="ownKeys",me="preventExtensions",be="set",ve="setPrototypeOf",$e="delete";var Ee=((e,t)=>{const r=t&&new WeakMap;if(t){const{addEventListener:e}=EventTarget.prototype;H(EventTarget.prototype,"addEventListener",{value(t,n,...s){return s.at(0)?.invoke&&(r.has(this)||r.set(this,new Map),r.get(this).set(t,[].concat(s[0].invoke)),delete s[0].invoke),e.call(this,t,n,...s)}})}const n=t&&(e=>{const{currentTarget:t,target:n,type:s}=e;for(const o of r.get(t||n)?.get(s)||[])e[o]()});return function(r,s,o,...a){let i=0,c=this?.transform||ae;const l=new Map,u=new Map,{[o]:f}=r,p=a.length?Q(V(globalThis),...a):globalThis,d=ne(((e,t)=>{if(!l.has(t)){let r;for(;u.has(r=i++););l.set(t,r),u.set(r,e===w?c(t):t)}return re(e,l.get(t))})),h=e=>{f($e,re(v,e))},g=([e,r])=>{switch(e){case w:if(null==r)return p;if(typeof r===b)return u.get(r);if(!(r instanceof Z))for(const e in r)r[e]=g(r[e]);return r;case m:if(typeof r===v){if(!u.has(r)){const e=function(...e){return t&&e.at(0)instanceof Event&&n(...e),f(ce,re(m,r),d(this),e.map(d))};return u.set(r,new WeakRef(e)),D(r,h,{return:e,token:!1})}return u.get(r).deref()}return u.get(r);case E:return oe(r)}return r},y={[ce]:(e,t,r)=>d(e.apply(t,r)),[le]:(e,t)=>d(new e(...t)),[ue]:(e,t,r)=>d(H(e,t,r)),[fe]:(e,t)=>d(delete e[t]),[he]:e=>d(q(e)),[pe]:(e,t)=>d(e[t]),[de]:(e,t)=>{const r=U(e,t);return r?re(w,te(r,d)):re($,r)},[ge]:(e,t)=>d(t in e),[ye]:e=>d(X(e)),[we]:e=>re(w,z(e).map(d)),[me]:e=>d(Y(e)),[be]:(e,t,r)=>d(G(e,t,r)),[ve]:(e,t)=>d(K(e,t)),[$e](e){l.delete(u.get(e)),u.delete(e)}};return r[s]=(e,t,...r)=>{switch(e){case ce:r[0]=g(r[0]),r[1]=r[1].map(g);break;case le:r[0]=r[0].map(g);break;case ue:{const[e,t]=r;r[0]=g(e);const{get:n,set:s,value:o}=t;n&&(t.get=g(n)),s&&(t.set=g(s)),o&&(t.value=g(o));break}default:r=r.map(g)}return y[e](g(t),...r)},{proxy:r,[e.toLowerCase()]:p,[`is${e}Proxy`]:()=>!1}}})("Window",!0),Se=(e=>{let t=0;const r=new Map,n=new Map,s=Symbol(),o=e=>typeof e===m?e():e,a=e=>typeof e===w&&!!e&&s in e,i=Array[ee];return function(c,l,u){const f=this?.transform||ae,{[l]:p}=c,d=new Map,h=e=>{d.delete(e),p($e,g(e))},g=ne(((e,a)=>{if(s in a)return o(a[s]);if(e===m){if(a=f(a),!n.has(a)){let e;for(;n.has(e=String(t++)););r.set(a,e),n.set(e,a)}return re(e,r.get(a))}if(!(a instanceof Z)){e===w&&(a=f(a));for(const e in a)a[e]=g(a[e])}return re(e,a)})),y=e=>{const[t,r]=e;if(!d.has(r)){const n=t===m?ie.bind(e):e,s=new Proxy(n,A);return d.set(r,new WeakRef(s)),D(r,h,{return:s,token:!1})}return d.get(r).deref()},$=e=>{const[t,r]=e;switch(t){case w:return null===r?globalThis:typeof r===b?y(e):r;case m:return typeof r===v?n.get(r):y(e);case E:return oe(r)}return r},S=(e,t,...r)=>$(p(e,o(t),...r)),A={[ce]:(e,t,r)=>S(ce,e,g(t),r.map(g)),[le]:(e,t)=>S(le,e,t.map(g)),[ue]:(e,t,r)=>{const{get:n,set:s,value:o}=r;return typeof n===m&&(r.get=g(n)),typeof s===m&&(r.set=g(s)),typeof o===m&&(r.value=g(o)),S(ue,e,g(t),r)},[fe]:(e,t)=>S(fe,e,g(t)),[he]:e=>S(he,e),[pe]:(e,t)=>t===s?e:S(pe,e,g(t)),[de]:(e,t)=>{const r=S(de,e,g(t));return r&&te(r,$)},[ge]:(e,t)=>t===s||S(ge,e,g(t)),[ye]:e=>S(ye,e),[we]:e=>S(we,e).map($),[me]:e=>S(me,e),[be]:(e,t,r)=>S(be,e,g(t),g(r)),[ve]:(e,t)=>S(ve,e,g(t))};c[u]=(e,t,s,o)=>{switch(e){case ce:return $(t).apply($(s),o.map($));case $e:{const e=$(t);r.delete(n.get(e)),n.delete(e)}}};const k=new Proxy([w,null],A),P=k.Array[ee];return H(Array,ee,{value:e=>a(e)?P(e):i(e)}),{[e.toLowerCase()]:k,[`is${e}Proxy`]:a,proxy:c}}})("Window"),Ae=typeof Worker===m?Worker:class{};const ke=new WeakMap,Pe=(e,...t)=>{const r=L(e,...t);if(!ke.has(r)){const n=e instanceof Ae?Ee:Se;ke.set(r,n.call(t.at(0),r,g,y))}return ke.get(r)};Pe.transfer=L.transfer;Promise.withResolvers||(Promise.withResolvers=function(){var e,t,r=new this((function(r,n){e=r,t=n}));return{resolve:e,reject:t,promise:r}});const je=e=>e.arrayBuffer(),xe=e=>e.json(),Me=e=>e.text();const Te={object(...e){return this.string(function(e){for(var t=e[0],r=1,n=arguments.length;r<n;r++)t+=arguments[r]+e[r];return t}(...e))},string(e){for(const t of e.split(/[\r\n]+/))if(t.trim().length){/^(\s+)/.test(t)&&(e=e.replace(new RegExp("^"+RegExp.$1,"gm"),""));break}return e}},_e=(e,...t)=>Te[typeof e](e,...t),{replace:Oe}="",We=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34);/g,Re={"&":"&","&":"&","<":"<","<":"<",">":">",">":">","'":"'","'":"'",""":'"',""":'"'},Fe=e=>Re[e],{isArray:Be}=Array,{assign:Je,create:Ie,defineProperties:Le,defineProperty:Ce,entries:Ne}=Object,{all:De,resolve:He}=new Proxy(Promise,{get:(e,t)=>e[t].bind(e)}),Ue=(e,t=location.href)=>new URL(e,t.replace(/^blob:/,"")).href;let qe=0;const Xe=(e,t)=>({id:e.id||(e.id=`${t}-w${qe++}`),tag:e.tagName}),ze=(e,t,r,n=!1,s=CustomEvent)=>{e.dispatchEvent(new s(`${t}:${r}`,{bubbles:!0,detail:{worker:n}}))},Ye=(e,t,r,n)=>({type:t,config:r,interpreter:n,io:Ke.get(n),run:(t,...r)=>e.run(n,t,...r),runAsync:(t,...r)=>e.runAsync(n,t,...r),runEvent:(...t)=>e.runEvent(n,...t)}),Ge=(e,t)=>(r,n)=>{const s=e[t].bind(e);e[t]=(e,t,...o)=>s(e,`${n?r:t}\n${n?t:r}`,...o)},Ke=new WeakMap,Qe=e=>{const t=e||console,r={stderr:(t.stderr||console.error).bind(t),stdout:(t.stdout||console.log).bind(t)};return{stderr:(...e)=>r.stderr(...e),stdout:(...e)=>r.stdout(...e),async get(e){const t=await e;return Ke.set(t,r),t}}},Ve=({FS:e,PATH:t,PATH_FS:r},n,s)=>{const o=r.resolve(n);return e.mkdirTree(t.dirname(o)),e.writeFile(o,new Uint8Array(s),{canOwn:!0})},Ze=e=>{const t=e.split("/");return t.pop(),t.join("/")},et=(e,t)=>{const r=[];for(const n of t.split("/"))"."!==n&&(r.push(n),n&&e.mkdir(r.join("/")))},tt=(e,t)=>{const r=[];for(const e of t.split("/"))switch(e){case"":case".":break;case"..":r.pop();break;default:r.push(e)}return[e.cwd()].concat(r).join("/").replace(/^\/+/,"/")},rt=e=>{const t=e.map((e=>e.trim().replace(/(^[/]*|[/]*$)/g,""))).filter((e=>""!==e&&"."!==e)).join("/");return e[0].startsWith("/")?`/${t}`:t},nt=(e,t)=>fetch(Ue(t,st.get(e))),st=new WeakMap,ot=(e,t,r)=>De((e=>{for(const{files:t,to_file:r,from:n=""}of e){if(void 0!==t&&void 0!==r)throw new Error("Cannot use 'to_file' and 'files' parameters together!");if(void 0===t&&void 0===r&&n.endsWith("/"))throw new Error(`Couldn't determine the filename from the path ${n}, please supply 'to_file' parameter.`)}return e.flatMap((({from:e="",to_folder:t=".",to_file:r,files:n})=>{if(Be(n))return n.map((r=>({url:rt([e,r]),path:rt([t,r])})));const s=r||e.slice(1+e.lastIndexOf("/"));return[{url:e,path:rt([t,s])}]}))})(r).map((({url:n,path:s})=>nt(r,n).then(je).then((r=>e.writeFile(t,s,r)))))),at=(e,t)=>t.endsWith("/")?`${t}${e.split("/").pop()}`:t,it=(e,t)=>e.replace(/\{.+?\}/g,(e=>{if(!t.has(e))throw new SyntaxError(`Invalid template: ${e}`);return t.get(e)})),ct=(e,t,r)=>De((e=>{const t=new Map,r=new Set,n=[];for(const[s,o]of Object.entries(e))if(/^\{.+\}$/.test(s)){if(t.has(s))throw new SyntaxError(`Duplicated template: ${s}`);t.set(s,it(o,t))}else{const e=it(s,t),a=at(e,it(o||"./",t));if(r.has(a))throw new SyntaxError(`Duplicated destination: ${a}`);r.add(a),n.push({url:e,path:a})}return n})(r).map((({url:n,path:s})=>nt(r,n).then(je).then((r=>e.writeFile(t,s,r)))))),lt=(e,t,r)=>{e.registerJsModule(t,r)},ut=(e,t,...r)=>{try{return e.runPython(_e(t),...r)}catch(t){Ke.get(e).stderr(t)}},ft=async(e,t,...r)=>{try{return await e.runPythonAsync(_e(t),...r)}catch(t){Ke.get(e).stderr(t)}},pt=async(e,t,r)=>{const[n,...s]=t.split(".");let o,a=e.globals.get(n);for(const e of s)[o,a]=[a,a[e]];try{await a.call(o,r)}catch(t){Ke.get(e).stderr(t)}};var dt={type:"micropython",module:(e="1.20.0-297")=>`https://cdn.jsdelivr.net/npm/@micropython/micropython-webassembly-pyscript@${e}/micropython.mjs`,async engine({loadMicroPython:e},t,r){const{stderr:n,stdout:s,get:o}=Qe();r=r.replace(/\.m?js$/,".wasm");const a=await o(e({stderr:n,stdout:s,url:r}));return t.files&&await ct(this,a,t.files),t.fetch&&await ot(this,a,t.fetch),a},registerJSModule:lt,run:ut,runAsync:ft,runEvent:pt,transform:(e,t)=>t,writeFile:({FS:e,_module:{PATH:t,PATH_FS:r}},n,s)=>Ve({FS:e,PATH:t,PATH_FS:r},n,s)};const ht={dict_converter:Object.fromEntries};var gt={type:"pyodide",module:(e="0.24.1")=>`https://cdn.jsdelivr.net/pyodide/v${e}/full/pyodide.mjs`,async engine({loadPyodide:e},t,r){const{stderr:n,stdout:s,get:o}=Qe(),a=r.slice(0,r.lastIndexOf("/")),i=await o(e({stderr:n,stdout:s,indexURL:a}));if(t.files&&await ct(this,i,t.files),t.fetch&&await ot(this,i,t.fetch),t.packages){await i.loadPackage("micropip");const e=await i.pyimport("micropip");await e.install(t.packages),e.destroy()}return i},registerJSModule:lt,run:ut,runAsync:ft,runEvent:pt,transform:(e,t)=>t instanceof e.ffi.PyProxy?t.toJs(ht):t,writeFile:({FS:e,PATH:t,_module:{PATH_FS:r}},n,s)=>Ve({FS:e,PATH:t,PATH_FS:r},n,s)};const yt="ruby-wasm-wasi",wt=yt.replace(/\W+/g,"_");var mt={type:yt,experimental:!0,module:(e="2.1.0")=>`https://cdn.jsdelivr.net/npm/ruby-3_2-wasm-wasi@${e}/dist/browser.esm.js`,async engine({DefaultRubyVM:e},t,r){const n=await fetch(`${r.slice(0,r.lastIndexOf("/"))}/ruby.wasm`),s=await WebAssembly.compile(await n.arrayBuffer()),{vm:o}=await e(s);return t.files&&await ct(this,o,t.files),t.fetch&&await ot(this,o,t.fetch),o},registerJSModule(e,t,r){const n=`__module_${wt}_${t}`;globalThis[n]=r,this.run(e,`require "js";$${t}=JS.global[:${n}]`),delete globalThis[n]},run:(e,t,...r)=>e.eval(_e(t),...r),runAsync:(e,t,...r)=>e.evalAsync(_e(t),...r),async runEvent(e,t,r){if(/^xworker\.(on\w+)$/.test(t)){const{$1:t}=RegExp,n=`__module_${wt}_event`;globalThis[n]=r,this.run(e,`require "js";$xworker.call("${t}",JS.global[:${n}])`),delete globalThis[n]}else{const n=this.run(e,`method(:${t})`);await n.call(t,e.wrap(r))}},transform:(e,t)=>t,writeFile:()=>{throw new Error(`writeFile is not supported in ${yt}`)}};var bt={type:"wasmoon",module:(e="1.15.0")=>`https://cdn.jsdelivr.net/npm/wasmoon@${e}/+esm`,async engine({LuaFactory:e,LuaLibraries:t},r){const{stderr:n,stdout:s,get:o}=Qe(),a=await o((new e).createEngine());return a.global.getTable(t.Base,(e=>{a.global.setField(e,"print",s),a.global.setField(e,"printErr",n)})),r.files&&await ct(this,a,r.files),r.fetch&&await ot(this,a,r.fetch),a},registerJSModule:(e,t,r)=>{e.global.set(t,r)},run:(e,t,...r)=>{try{return e.doStringSync(_e(t),...r)}catch(t){Ke.get(e).stderr(t)}},runAsync:async(e,t,...r)=>{try{return await e.doString(_e(t),...r)}catch(t){Ke.get(e).stderr(t)}},runEvent:async(e,t,r)=>{const[n,...s]=t.split(".");let o,a=e.global.get(n);for(const e of s)[o,a]=[a,a[e]];try{await a.call(o,r)}catch(t){Ke.get(e).stderr(t)}},transform:(e,t)=>t,writeFile:({cmodule:{module:{FS:e}}},t,r)=>((e,t,r)=>(et(e,Ze(t)),t=tt(e,t),e.writeFile(t,new Uint8Array(r),{canOwn:!0})))(e,t,r)};const vt=new Map,$t=new Map,Et=[],St=[],At=new Proxy(new Map,{get(e,t){if(!e.has(t)){const[r,...n]=t.split("@"),s=vt.get(r),o=/^https?:\/\//i.test(n)?n.join("@"):s.module(...n);e.set(t,{url:o,module:import(o),engine:s.engine.bind(s)})}const{url:r,module:n,engine:s}=e.get(t);return(e,o)=>n.then((n=>{$t.set(t,e);for(const t of["files","fetch"]){const r=e?.[t];r&&st.set(r,o)}return s(n,e,r)}))}}),kt=e=>{for(const t of[].concat(e.type))vt.set(t,e),Et.push(`script[type="${t}"]`),St.push(`${t}-`)};for(const e of[dt,gt,mt,bt])kt(e);const Pt=async e=>(await import("https://cdn.jsdelivr.net/npm/basic-toml@0.3.1/es.js")).parse(e),jt=e=>{let t=typeof e;return"string"===t&&/\.(json|toml|txt)$/.test(e)?t=RegExp.$1:e="./config.txt",[Ue(e),t]},xt=(e,t,r={})=>{if(t){const[e,n]=jt(t);if("json"===n)r=fetch(e).then(xe);else if("toml"===n)r=fetch(e).then(Me).then(Pt);else if("string"===n)try{r=JSON.parse(t)}catch(e){r=Pt(t)}else"object"===n&&t&&(r=t);t=e}return He(r).then((r=>At[e](r,t)))},Mt=(e,t="")=>`${e}@${t}`.replace(/@$/,""),Tt="BeforeRun",_t="AfterRun",Ot=[`code${Tt}`,`code${Tt}Async`,`code${_t}`,`code${_t}Async`],Wt=["onWorker","onReady",`on${Tt}`,`on${Tt}Async`,`on${_t}`,`on${_t}Async`],Rt=(e,t,r,n,s,o)=>{if(s||o){const a=n?"runAsync":"run",i=e[a];e[a]=n?async function(e,n,...a){s&&await s.call(this,t,r);const c=await i.call(this,e,n,...a);return o&&await o.call(this,t,r),c}:function(e,n,...a){s&&s.call(this,t,r);const c=i.call(this,e,n,...a);return o&&o.call(this,t,r),c}}};let Ft=class{constructor(e,t={}){const{main:r,worker:n}=t;this.interpreter=e,this.onWorker=r?.onWorker;for(const e of Wt.slice(1))this[e]=n?.[e];for(const e of Ot)this[e]=n?.[e]}toJSON(){const e={};for(const t of Wt.slice(1))this[t]&&(e[t]=String(this[t]));for(const t of Ot)this[t]&&(e[t]=_e(this[t]()));return e}};var Bt=(...e)=>function(t,r){const n=new Worker(URL.createObjectURL(new Blob(['const e="object"==typeof self?self:globalThis,t=t=>((t,r)=>{const n=(e,r)=>(t.set(r,e),e),s=o=>{if(t.has(o))return t.get(o);const[a,i]=r[o];switch(a){case 0:case-1:return n(i,o);case 1:{const e=n([],o);for(const t of i)e.push(s(t));return e}case 2:{const e=n({},o);for(const[t,r]of i)e[s(t)]=s(r);return e}case 3:return n(new Date(i),o);case 4:{const{source:e,flags:t}=i;return n(new RegExp(e,t),o)}case 5:{const e=n(new Map,o);for(const[t,r]of i)e.set(s(t),s(r));return e}case 6:{const e=n(new Set,o);for(const t of i)e.add(s(t));return e}case 7:{const{name:t,message:r}=i;return n(new e[t](r),o)}case 8:return n(BigInt(i),o);case"BigInt":return n(Object(BigInt(i)),o)}return n(new e[a](i),o)};return s})(new Map,t)(0),r="",{toString:n}={},{keys:s}=Object,o=e=>{const t=typeof e;if("object"!==t||!e)return[0,t];const s=n.call(e).slice(8,-1);switch(s){case"Array":return[1,r];case"Object":return[2,r];case"Date":return[3,r];case"RegExp":return[4,r];case"Map":return[5,r];case"Set":return[6,r]}return s.includes("Array")?[1,s]:s.includes("Error")?[7,s]:[2,s]},a=([e,t])=>0===e&&("function"===t||"symbol"===t),i=(e,{json:t,lossy:r}={})=>{const n=[];return((e,t,r,n)=>{const i=(e,t)=>{const s=n.push(e)-1;return r.set(t,s),s},c=n=>{if(r.has(n))return r.get(n);let[l,u]=o(n);switch(l){case 0:{let t=n;switch(u){case"bigint":l=8,t=n.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+u);t=null;break;case"undefined":return i([-1],n)}return i([l,t],n)}case 1:{if(u)return i([u,[...n]],n);const e=[],t=i([l,e],n);for(const t of n)e.push(c(t));return t}case 2:{if(u)switch(u){case"BigInt":return i([u,n.toString()],n);case"Boolean":case"Number":case"String":return i([u,n.valueOf()],n)}if(t&&"toJSON"in n)return c(n.toJSON());const r=[],f=i([l,r],n);for(const t of s(n))!e&&a(o(n[t]))||r.push([c(t),c(n[t])]);return f}case 3:return i([l,n.toISOString()],n);case 4:{const{source:e,flags:t}=n;return i([l,{source:e,flags:t}],n)}case 5:{const t=[],r=i([l,t],n);for(const[r,s]of n)(e||!a(o(r))&&!a(o(s)))&&t.push([c(r),c(s)]);return r}case 6:{const t=[],r=i([l,t],n);for(const r of n)!e&&a(o(r))||t.push(c(r));return r}}const{message:f}=n;return i([l,{name:u,message:f}],n)};return c})(!(t||r),!!t,new Map,n)(e),n},{parse:c,stringify:l}=JSON,u={json:!0,lossy:!0};var f=Object.freeze({__proto__:null,parse:e=>t(c(e)),stringify:e=>l(i(e,u))});const p="49775373-4961-44cd-9a4b-651a0c9cca5a",d="M"+p,y="T"+p,h="object",g="function",w="number",m="string",b="undefined",v="symbol";var $=e=>({value:new Promise((t=>{let r=new Worker("data:application/javascript,onmessage%3D(%7Bdata%3Ab%7D)%3D%3E(Atomics.wait(b%2C0)%2CpostMessage(0))");r.onmessage=t,r.postMessage(e)}))})\n/*! (c) Andrea Giammarchi - ISC */;const{Int32Array:S,Map:E,SharedArrayBuffer:A,Uint16Array:P}=globalThis,{BYTES_PER_ELEMENT:j}=S,{BYTES_PER_ELEMENT:M}=P,{isArray:k}=Array,{notify:x,wait:T,waitAsync:_}=Atomics,{fromCharCode:O}=String,W=new WeakSet,F=new WeakMap,R={value:{then:e=>e()}};let B=0;const J=(e,{parse:t=JSON.parse,stringify:r=JSON.stringify,transform:n,interrupt:s}=JSON)=>{if(!F.has(e)){const o=(t,...r)=>e.postMessage({[p]:r},{transfer:t}),a=typeof s===g?s:s?.handler,i=s?.delay||42,c=(e,t)=>e?(_||$)(t,0):(a?((e,t,r)=>{for(;"timed-out"===T(e,0,0,t);)r()})(t,i,a):T(t,0),R);let l=!1;F.set(e,new Proxy(new E,{has:(e,t)=>"string"==typeof t&&!t.startsWith("_"),get:(r,s)=>"then"===s?null:(...r)=>{const a=B++;let i=new S(new A(2*j)),u=[];W.has(r.at(-1)||u)&&W.delete(u=r.pop()),o(u,a,i,s,n?r.map(n):r);const f=e!==globalThis;let p=0;return l&&f&&(p=setTimeout(console.warn,1e3,`💀🔒 - Possible deadlock if proxy.${s}(...args) is awaited`)),c(f,i).value.then((()=>{clearTimeout(p);const e=i[1];if(!e)return;const r=M*e;return i=new S(new A(r+r%j)),o([],a,i),c(f,i).value.then((()=>{const r=new P(i.buffer).slice(0,e),n=[];for(let t=0;t<e;t+=2048)n.push(O(...r.slice(t,t+2048)));return t(n.join(""))}))}))},set(t,s,o){const a=typeof o;if(a!==g)throw new Error(`Unable to assign ${s} as ${a}`);if(!t.size){const s=new E;e.addEventListener("message",(async e=>{const o=e.data?.[p];if(k(o)){e.stopImmediatePropagation();const[a,i,...c]=o;let u;if(c.length){const[e,o]=c;if(t.has(e)){l=!0;try{const c=await t.get(e)(...o);if(void 0!==c){const e=r(n?n(c):c);s.set(a,e),i[1]=e.length}}catch(e){u=e}finally{l=!1}}else u=new Error(`Unsupported action: ${e}`);i[0]=1}else{const e=s.get(a);s.delete(a);for(let t=new P(i.buffer),r=0;r<e.length;r++)t[r]=e.charCodeAt(r)}if(x(i,0),u)throw u}}))}return!!t.set(s,o)}}))}return F.get(e)};J.transfer=(...e)=>(W.add(e),e);const I=new FinalizationRegistry((([e,t,r])=>{r&&console.debug(`Held value ${String(t)} not relevant anymore`),e(t)})),C=Object.create(null),L=(e,t,{debug:r,return:n,token:s=e}=C)=>{const o=n||new Proxy(e,C),a=[o,[t,e,!!r]];return!1!==s&&a.push(s),I.register(...a),o},{defineProperty:D,getOwnPropertyDescriptor:H,getPrototypeOf:N,isExtensible:U,ownKeys:z,preventExtensions:q,set:K,setPrototypeOf:Y}=Reflect,{assign:G,create:V}=Object,Q=N(Int8Array),X="isArray",Z=(e,t)=>{const{get:r,set:n,value:s}=e;return r&&(e.get=t(r)),n&&(e.set=t(n)),s&&(e.value=t(s)),e},ee=(e,t)=>[e,t],te=e=>t=>{const r=typeof t;switch(r){case h:if(null==t)return ee("null",t);if(t===globalThis)return ee(h,null);case g:return e(r,t);case"boolean":case w:case m:case b:case"bigint":return ee(r,t);case v:if(re.has(t))return ee(r,re.get(t))}throw new Error(`Unable to handle this ${r} type`)},re=new Map(z(Symbol).filter((e=>typeof Symbol[e]===v)).map((e=>[Symbol[e],e]))),ne=e=>{for(const[t,r]of re)if(r===e)return t},se=e=>e;function oe(){return this}const ae="apply",ie="construct",ce="defineProperty",le="deleteProperty",ue="get",fe="getOwnPropertyDescriptor",pe="getPrototypeOf",de="has",ye="isExtensible",he="ownKeys",ge="preventExtensions",we="set",me="setPrototypeOf",be="delete";var ve=((e,t)=>{const r=t&&new WeakMap;if(t){const{addEventListener:e}=EventTarget.prototype;D(EventTarget.prototype,"addEventListener",{value(t,n,...s){return s.at(0)?.invoke&&(r.has(this)||r.set(this,new Map),r.get(this).set(t,[].concat(s[0].invoke)),delete s[0].invoke),e.call(this,t,n,...s)}})}const n=t&&(e=>{const{currentTarget:t,target:n,type:s}=e;for(const o of r.get(t||n)?.get(s)||[])e[o]()});return function(r,s,o,...a){let i=0,c=this?.transform||se;const l=new Map,u=new Map,{[o]:f}=r,p=a.length?G(V(globalThis),...a):globalThis,d=te(((e,t)=>{if(!l.has(t)){let r;for(;u.has(r=i++););l.set(t,r),u.set(r,e===h?c(t):t)}return ee(e,l.get(t))})),y=e=>{f(be,ee(m,e))},$=([e,r])=>{switch(e){case h:if(null==r)return p;if(typeof r===w)return u.get(r);if(!(r instanceof Q))for(const e in r)r[e]=$(r[e]);return r;case g:if(typeof r===m){if(!u.has(r)){const e=function(...e){return t&&e.at(0)instanceof Event&&n(...e),f(ae,ee(g,r),d(this),e.map(d))};return u.set(r,new WeakRef(e)),L(r,y,{return:e,token:!1})}return u.get(r).deref()}return u.get(r);case v:return ne(r)}return r},S={[ae]:(e,t,r)=>d(e.apply(t,r)),[ie]:(e,t)=>d(new e(...t)),[ce]:(e,t,r)=>d(D(e,t,r)),[le]:(e,t)=>d(delete e[t]),[pe]:e=>d(N(e)),[ue]:(e,t)=>d(e[t]),[fe]:(e,t)=>{const r=H(e,t);return r?ee(h,Z(r,d)):ee(b,r)},[de]:(e,t)=>d(t in e),[ye]:e=>d(U(e)),[he]:e=>ee(h,z(e).map(d)),[ge]:e=>d(q(e)),[we]:(e,t,r)=>d(K(e,t,r)),[me]:(e,t)=>d(Y(e,t)),[be](e){l.delete(u.get(e)),u.delete(e)}};return r[s]=(e,t,...r)=>{switch(e){case ae:r[0]=$(r[0]),r[1]=r[1].map($);break;case ie:r[0]=r[0].map($);break;case ce:{const[e,t]=r;r[0]=$(e);const{get:n,set:s,value:o}=t;n&&(t.get=$(n)),s&&(t.set=$(s)),o&&(t.value=$(o));break}default:r=r.map($)}return S[e]($(t),...r)},{proxy:r,[e.toLowerCase()]:p,[`is${e}Proxy`]:()=>!1}}})("Window",!0),$e=(e=>{let t=0;const r=new Map,n=new Map,s=Symbol(),o=e=>typeof e===g?e():e,a=e=>typeof e===h&&!!e&&s in e,i=Array[X];return function(c,l,u){const f=this?.transform||se,{[l]:p}=c,d=new Map,y=e=>{d.delete(e),p(be,b(e))},b=te(((e,a)=>{if(s in a)return o(a[s]);if(e===g){if(a=f(a),!n.has(a)){let e;for(;n.has(e=String(t++)););r.set(a,e),n.set(e,a)}return ee(e,r.get(a))}if(!(a instanceof Q)){e===h&&(a=f(a));for(const e in a)a[e]=b(a[e])}return ee(e,a)})),$=e=>{const[t,r]=e;if(!d.has(r)){const n=t===g?oe.bind(e):e,s=new Proxy(n,A);return d.set(r,new WeakRef(s)),L(r,y,{return:s,token:!1})}return d.get(r).deref()},S=e=>{const[t,r]=e;switch(t){case h:return null===r?globalThis:typeof r===w?$(e):r;case g:return typeof r===m?n.get(r):$(e);case v:return ne(r)}return r},E=(e,t,...r)=>S(p(e,o(t),...r)),A={[ae]:(e,t,r)=>E(ae,e,b(t),r.map(b)),[ie]:(e,t)=>E(ie,e,t.map(b)),[ce]:(e,t,r)=>{const{get:n,set:s,value:o}=r;return typeof n===g&&(r.get=b(n)),typeof s===g&&(r.set=b(s)),typeof o===g&&(r.value=b(o)),E(ce,e,b(t),r)},[le]:(e,t)=>E(le,e,b(t)),[pe]:e=>E(pe,e),[ue]:(e,t)=>t===s?e:E(ue,e,b(t)),[fe]:(e,t)=>{const r=E(fe,e,b(t));return r&&Z(r,S)},[de]:(e,t)=>t===s||E(de,e,b(t)),[ye]:e=>E(ye,e),[he]:e=>E(he,e).map(S),[ge]:e=>E(ge,e),[we]:(e,t,r)=>E(we,e,b(t),b(r)),[me]:(e,t)=>E(me,e,b(t))};c[u]=(e,t,s,o)=>{switch(e){case ae:return S(t).apply(S(s),o.map(S));case be:{const e=S(t);r.delete(n.get(e)),n.delete(e)}}};const P=new Proxy([h,null],A),j=P.Array[X];return D(Array,X,{value:e=>a(e)?j(e):i(e)}),{[e.toLowerCase()]:P,[`is${e}Proxy`]:a,proxy:c}}})("Window"),Se=typeof Worker===g?Worker:class{};const Ee=new WeakMap,Ae=(e,...t)=>{const r=J(e,...t);if(!Ee.has(r)){const n=e instanceof Se?ve:$e;Ee.set(r,n.call(t.at(0),r,d,y))}return Ee.get(r)};Ae.transfer=J.transfer;const Pe={object(...e){return this.string(function(e){for(var t=e[0],r=1,n=arguments.length;r<n;r++)t+=arguments[r]+e[r];return t}(...e))},string(e){for(const t of e.split(/[\\r\\n]+/))if(t.trim().length){/^(\\s+)/.test(t)&&(e=e.replace(new RegExp("^"+RegExp.$1,"gm"),""));break}return e}},je=(e,...t)=>Pe[typeof e](e,...t);Promise.withResolvers||(Promise.withResolvers=function(){var e,t,r=new this((function(r,n){e=r,t=n}));return{resolve:e,reject:t,promise:r}});const Me=e=>e.arrayBuffer(),ke=e=>e.json(),xe=e=>e.text(),Te=new WeakMap,_e=e=>{const t=e||console,r={stderr:(t.stderr||console.error).bind(t),stdout:(t.stdout||console.log).bind(t)};return{stderr:(...e)=>r.stderr(...e),stdout:(...e)=>r.stdout(...e),async get(e){const t=await e;return Te.set(t,r),t}}},Oe=({FS:e,PATH:t,PATH_FS:r},n,s)=>{const o=r.resolve(n);return e.mkdirTree(t.dirname(o)),e.writeFile(o,new Uint8Array(s),{canOwn:!0})},We=e=>{const t=e.split("/");return t.pop(),t.join("/")},Fe=(e,t)=>{const r=[];for(const n of t.split("/"))"."!==n&&(r.push(n),n&&e.mkdir(r.join("/")))},Re=(e,t)=>{const r=[];for(const e of t.split("/"))switch(e){case"":case".":break;case"..":r.pop();break;default:r.push(e)}return[e.cwd()].concat(r).join("/").replace(/^\\/+/,"/")},Be=e=>{const t=e.map((e=>e.trim().replace(/(^[/]*|[/]*$)/g,""))).filter((e=>""!==e&&"."!==e)).join("/");return e[0].startsWith("/")?`/${t}`:t},Je=(e,t)=>fetch(Qe(t,Ie.get(e))),Ie=new WeakMap,Ce=(e,t,r)=>Ge((e=>{for(const{files:t,to_file:r,from:n=""}of e){if(void 0!==t&&void 0!==r)throw new Error("Cannot use \'to_file\' and \'files\' parameters together!");if(void 0===t&&void 0===r&&n.endsWith("/"))throw new Error(`Couldn\'t determine the filename from the path ${n}, please supply \'to_file\' parameter.`)}return e.flatMap((({from:e="",to_folder:t=".",to_file:r,files:n})=>{if(Ne(n))return n.map((r=>({url:Be([e,r]),path:Be([t,r])})));const s=r||e.slice(1+e.lastIndexOf("/"));return[{url:e,path:Be([t,s])}]}))})(r).map((({url:n,path:s})=>Je(r,n).then(Me).then((r=>e.writeFile(t,s,r)))))),Le=(e,t)=>t.endsWith("/")?`${t}${e.split("/").pop()}`:t,De=(e,t)=>e.replace(/\\{.+?\\}/g,(e=>{if(!t.has(e))throw new SyntaxError(`Invalid template: ${e}`);return t.get(e)})),He=(e,t,r)=>Ge((e=>{const t=new Map,r=new Set,n=[];for(const[s,o]of Object.entries(e))if(/^\\{.+\\}$/.test(s)){if(t.has(s))throw new SyntaxError(`Duplicated template: ${s}`);t.set(s,De(o,t))}else{const e=De(s,t),a=Le(e,De(o||"./",t));if(r.has(a))throw new SyntaxError(`Duplicated destination: ${a}`);r.add(a),n.push({url:e,path:a})}return n})(r).map((({url:n,path:s})=>Je(r,n).then(Me).then((r=>e.writeFile(t,s,r)))))),{isArray:Ne}=Array,{assign:Ue,create:ze,defineProperties:qe,defineProperty:Ke,entries:Ye}=Object,{all:Ge,resolve:Ve}=new Proxy(Promise,{get:(e,t)=>e[t].bind(e)}),Qe=(e,t=location.href)=>new URL(e,t.replace(/^blob:/,"")).href,Xe=(e,t,r,n=!1,s=CustomEvent)=>{e.dispatchEvent(new s(`${t}:${r}`,{bubbles:!0,detail:{worker:n}}))},Ze=e=>Function(`\'use strict\';return (${e})`)(),et=(e,t,r)=>{e.registerJsModule(t,r)},tt=(e,t,...r)=>{try{return e.runPython(je(t),...r)}catch(t){Te.get(e).stderr(t)}},rt=async(e,t,...r)=>{try{return await e.runPythonAsync(je(t),...r)}catch(t){Te.get(e).stderr(t)}},nt=async(e,t,r)=>{const[n,...s]=t.split(".");let o,a=e.globals.get(n);for(const e of s)[o,a]=[a,a[e]];try{await a.call(o,r)}catch(t){Te.get(e).stderr(t)}};var st={type:"micropython",module:(e="1.20.0-297")=>`https://cdn.jsdelivr.net/npm/@micropython/micropython-webassembly-pyscript@${e}/micropython.mjs`,async engine({loadMicroPython:e},t,r){const{stderr:n,stdout:s,get:o}=_e();r=r.replace(/\\.m?js$/,".wasm");const a=await o(e({stderr:n,stdout:s,url:r}));return t.files&&await He(this,a,t.files),t.fetch&&await Ce(this,a,t.fetch),a},registerJSModule:et,run:tt,runAsync:rt,runEvent:nt,transform:(e,t)=>t,writeFile:({FS:e,_module:{PATH:t,PATH_FS:r}},n,s)=>Oe({FS:e,PATH:t,PATH_FS:r},n,s)};const ot={dict_converter:Object.fromEntries};var at={type:"pyodide",module:(e="0.24.1")=>`https://cdn.jsdelivr.net/pyodide/v${e}/full/pyodide.mjs`,async engine({loadPyodide:e},t,r){const{stderr:n,stdout:s,get:o}=_e(),a=r.slice(0,r.lastIndexOf("/")),i=await o(e({stderr:n,stdout:s,indexURL:a}));if(t.files&&await He(this,i,t.files),t.fetch&&await Ce(this,i,t.fetch),t.packages){await i.loadPackage("micropip");const e=await i.pyimport("micropip");await e.install(t.packages),e.destroy()}return i},registerJSModule:et,run:tt,runAsync:rt,runEvent:nt,transform:(e,t)=>t instanceof e.ffi.PyProxy?t.toJs(ot):t,writeFile:({FS:e,PATH:t,_module:{PATH_FS:r}},n,s)=>Oe({FS:e,PATH:t,PATH_FS:r},n,s)};const it="ruby-wasm-wasi",ct=it.replace(/\\W+/g,"_");var lt={type:it,experimental:!0,module:(e="2.1.0")=>`https://cdn.jsdelivr.net/npm/ruby-3_2-wasm-wasi@${e}/dist/browser.esm.js`,async engine({DefaultRubyVM:e},t,r){const n=await fetch(`${r.slice(0,r.lastIndexOf("/"))}/ruby.wasm`),s=await WebAssembly.compile(await n.arrayBuffer()),{vm:o}=await e(s);return t.files&&await He(this,o,t.files),t.fetch&&await Ce(this,o,t.fetch),o},registerJSModule(e,t,r){const n=`__module_${ct}_${t}`;globalThis[n]=r,this.run(e,`require "js";$${t}=JS.global[:${n}]`),delete globalThis[n]},run:(e,t,...r)=>e.eval(je(t),...r),runAsync:(e,t,...r)=>e.evalAsync(je(t),...r),async runEvent(e,t,r){if(/^xworker\\.(on\\w+)$/.test(t)){const{$1:t}=RegExp,n=`__module_${ct}_event`;globalThis[n]=r,this.run(e,`require "js";$xworker.call("${t}",JS.global[:${n}])`),delete globalThis[n]}else{const n=this.run(e,`method(:${t})`);await n.call(t,e.wrap(r))}},transform:(e,t)=>t,writeFile:()=>{throw new Error(`writeFile is not supported in ${it}`)}};var ut={type:"wasmoon",module:(e="1.15.0")=>`https://cdn.jsdelivr.net/npm/wasmoon@${e}/+esm`,async engine({LuaFactory:e,LuaLibraries:t},r){const{stderr:n,stdout:s,get:o}=_e(),a=await o((new e).createEngine());return a.global.getTable(t.Base,(e=>{a.global.setField(e,"print",s),a.global.setField(e,"printErr",n)})),r.files&&await He(this,a,r.files),r.fetch&&await Ce(this,a,r.fetch),a},registerJSModule:(e,t,r)=>{e.global.set(t,r)},run:(e,t,...r)=>{try{return e.doStringSync(je(t),...r)}catch(t){Te.get(e).stderr(t)}},runAsync:async(e,t,...r)=>{try{return await e.doString(je(t),...r)}catch(t){Te.get(e).stderr(t)}},runEvent:async(e,t,r)=>{const[n,...s]=t.split(".");let o,a=e.global.get(n);for(const e of s)[o,a]=[a,a[e]];try{await a.call(o,r)}catch(t){Te.get(e).stderr(t)}},transform:(e,t)=>t,writeFile:({cmodule:{module:{FS:e}}},t,r)=>((e,t,r)=>(Fe(e,We(t)),t=Re(e,t),e.writeFile(t,new Uint8Array(r),{canOwn:!0})))(e,t,r)};const ft=new Map,pt=new Map,dt=new Proxy(new Map,{get(e,t){if(!e.has(t)){const[r,...n]=t.split("@"),s=ft.get(r),o=/^https?:\\/\\//i.test(n)?n.join("@"):s.module(...n);e.set(t,{url:o,module:import(o),engine:s.engine.bind(s)})}const{url:r,module:n,engine:s}=e.get(t);return(e,o)=>n.then((n=>{pt.set(t,e);for(const t of["files","fetch"]){const r=e?.[t];r&&Ie.set(r,o)}return s(n,e,r)}))}}),yt=e=>{for(const t of[].concat(e.type))ft.set(t,e)};for(const e of[st,at,lt,ut])yt(e);const ht=async e=>(await import("https://cdn.jsdelivr.net/npm/basic-toml@0.3.1/es.js")).parse(e),gt=(e,t,r={})=>{if(t){const[e,n]=(e=>{let t=typeof e;return"string"===t&&/\\.(json|toml|txt)$/.test(e)?t=RegExp.$1:e="./config.txt",[Qe(e),t]})(t);if("json"===n)r=fetch(e).then(ke);else if("toml"===n)r=fetch(e).then(xe).then(ht);else if("string"===n)try{r=JSON.parse(t)}catch(e){r=ht(t)}else"object"===n&&t&&(r=t);t=e}return Ve(r).then((r=>dt[e](r,t)))},wt="BeforeRun",mt="AfterRun",bt=[`code${wt}`,`code${wt}Async`,`code${mt}`,`code${mt}Async`],vt=["onWorker","onReady",`on${wt}`,`on${wt}Async`,`on${mt}`,`on${mt}Async`],$t=(e,t,r,n,s,o)=>{if(s||o){const a=n?"runAsync":"run",i=e[a];e[a]=n?async function(e,n,...a){s&&await s.call(this,t,r);const c=await i.call(this,e,n,...a);return o&&await o.call(this,t,r),c}:function(e,n,...a){s&&s.call(this,t,r);const c=i.call(this,e,n,...a);return o&&o.call(this,t,r),c}}};try{new SharedArrayBuffer(4)}catch(e){throw new Error(["Unable to use SharedArrayBuffer due insecure environment.","Please read requirements in MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer#security_requirements"].join("\\n"))}let St,Et,At;const Pt=(e,t)=>{addEventListener(e,t||(async t=>{try{await St,Et(`xworker.on${e}`,t)}catch(e){postMessage(e)}}),!!t&&{once:!0})},{parse:jt,stringify:Mt}=f,{proxy:kt,window:xt,isWindowProxy:Tt}=Ae(self,{parse:jt,stringify:Mt,transform:e=>At?At(e):e}),_t={sync:kt,window:xt,isWindowProxy:Tt,onmessage:console.info,onerror:console.error,onmessageerror:console.warn,postMessage:postMessage.bind(self)};Pt("message",(({data:{options:e,config:t,code:r,hooks:n}})=>{St=(async()=>{try{const{id:s,tag:o,type:a,custom:i,version:c,config:l,async:u}=e,f=await gt(((e,t="")=>`${e}@${t}`.replace(/@$/,""))(a,c),t,l),p=ze(ft.get(a)),d=((e,t,r,n)=>({type:t,config:r,interpreter:n,io:Te.get(n),run:(t,...r)=>e.run(n,t,...r),runAsync:(t,...r)=>e.runAsync(n,t,...r),runEvent:(...t)=>e.runEvent(n,...t)}))(p,a,l,f);let y="run";if(u&&(y+="Async"),n){const e=((e,t)=>(r,n)=>{const s=e[t].bind(e);e[t]=(e,t,...o)=>s(e,`${n?r:t}\\n${n?t:r}`,...o)})(p,y);let t,r,s="",o="";for(const e of bt){const t=n[e];if(t){const r=e.endsWith("Async");(r&&u||!r&&!u)&&(e.startsWith("codeBefore")?s=t:o=t)}}o&&e(o,!1),s&&e(s,!0);for(const e of vt.slice(2)){const s=n[e];if(s){const n=e.endsWith("Async");if(n&&u||!n&&!u){const n=Ze(s);e.startsWith("onBefore")?t=n:r=n}}}$t(p,d,_t,u,t,r)}const{CustomEvent:h,document:g}=xt,w=s&&g.getElementById(s)||null,m=e=>Xe(w,i||a,e,!0,h);let b="";return p.registerJSModule(f,"polyscript",{xworker:_t,get target(){return!b&&w&&("SCRIPT"===o?w.after(Ue(g.createElement(`script-${i||a}`),{id:b=`${s}-target`})):(b=s,w.replaceChildren(),w.style.display="block")),b}}),Et=p.runEvent.bind(p,f),At=p.transform.bind(p,f),w&&m("ready"),n?.onReady&&Ze(n?.onReady).call(p,d,_t),await p[y](f,r),w&&m("done"),f}catch(e){postMessage(e)}})(),Pt("error"),Pt("message"),Pt("messageerror")}));\n'],{type:"application/javascript"})),{type:"module"}),{postMessage:s}=n,o=this instanceof Ft;if(e.length){const[t,n]=e;(r=Je({},r||{type:t,version:n})).type||(r.type=t)}const[a]=jt(r.config),i=fetch(t).then(Me).then((e=>{const t=o?this.toJSON():void 0;s.call(n,{options:r,config:a,code:e,hooks:t})}));return Le(n,{postMessage:{value:(e,...t)=>i.then((()=>s.call(n,e,...t)))},sync:{value:Pe(n,d).proxy},onerror:{writable:!0,configurable:!0,value:console.error}}),n.addEventListener("message",(e=>{const{data:t}=e;t instanceof Error&&(e.stopImmediatePropagation(),n.onerror(Ie(e,{type:{value:"error"},error:{value:t}})))})),o&&this.onWorker?.(this.interpreter,n),n};const Jt="Invalid content",It="Invalid worker attribute",Lt="Invalid worker attribute";var Ct=e=>{const{src:t,worker:r}=e.attributes;if(r){let{value:s}=r;if(s)throw new SyntaxError(Lt);if(s=t?.value,!s){if(t)throw new SyntaxError(It);if(e.childElementCount){const{innerHTML:t,localName:r,type:o}=e,a=o||r.replace(/-script$/,"");n=t,s=Oe.call(n,We,Fe),console.warn(`Deprecated: use <script type="${a}"> for an always safe content parsing:\n`,s)}else s=e.textContent;return URL.createObjectURL(new Blob([_e(s)],{type:"text/plain"}))}return s}var n;if(t&&e.textContent.replace(/\/\*[\s\S]*?\*\//g,"").replace(/^\s*(?:\/\/|#).*/gm,"").trim())throw new SyntaxError(Jt)};const Nt=(e,t)=>{const r=(e=>{let t=e;for(;t.parentNode;)t=t.parentNode;return t})(e);return r.getElementById(t)||((e,t=document)=>t.querySelector(e))(t,r)},Dt=new WeakMap,Ht={get(){let e=Dt.get(this);return e||(e=document.createElement(`${this.type}-script`),Dt.set(this,e),Yt(this)),e},set(e){"string"==typeof e?Dt.set(this,Nt(this,e)):(Dt.set(this,e),Yt(this))}},Ut=new WeakMap,qt=new Map,Xt=(e,t)=>{const r=e?.value;return r?t+r:""},zt=(e,t,r,n,s,o=e)=>{if(!qt.has(t)){const a={interpreter:xt(r,s),queue:He(),XWorker:Bt(e,n)};qt.set(t,a),qt.has(e)||qt.set(e,a),qt.has(o)||qt.set(o,a)}return qt.get(t)},Yt=async e=>{if(Ut.has(e)){const{target:t}=e;t&&(e.closest("head")?document.body.append(t):e.after(t))}else{const{attributes:{async:t,config:r,env:n,target:s,version:o},src:a,type:i}=e,c=o?.value,l=Mt(i,c);let u=Xt(r,"|");const f=Xt(n,"")||`${l}${u}`;u=u.slice(1);const p=Ct(e);if(p){const r=new(Bt(i,c))(p,{...Xe(e,i),async:!!t,config:u});return void Ut.set(Ce(e,"xworker",{value:r}),{xworker:r})}const d=Xt(s,""),h=zt(i,f,l,c,u);Ut.set(Ce(e,"target",Ht),h),d&&Dt.set(e,Nt(e,d));const g=a?fetch(a).then(Me):e.textContent;h.queue=h.queue.then((()=>(async(e,t,r,n)=>{const{type:s}=e,o=vt.get(s);o.experimental&&console.warn(`The ${s} interpreter is experimental`);const[a,i]=await De([Ut.get(e).interpreter,t]);try{Ce(document,"currentScript",{configurable:!0,get:()=>e}),o.registerJSModule(a,"polyscript",{XWorker:r}),ze(e,s,"ready");const t=o[n?"runAsync":"run"](a,i),c=ze.bind(null,e,s,"done");return n?t.then(c):c(),t}finally{delete document.currentScript}})(e,g,h.XWorker,!!t)))}},Gt=new Proxy(Ie(null),{get:(e,t)=>new Promise(queueMicrotask).then((()=>Kt(t)))}),Kt=async e=>{if(qt.has(e)){const{interpreter:t,queue:r}=qt.get(e);return(await De([t,r]))[0]}const t=qt.size?`Available interpreters are: ${[...qt.keys()].map((e=>`"${e}"`)).join(", ")}.`:"There are no interpreters in this page.";throw new Error(`The interpreter "${e}" was not found. ${t}`)},Qt=async e=>{const{type:r,currentTarget:n}=e;if(St.length)for(let{name:s,value:o,ownerElement:a}of t(`./@*[${St.map((e=>`name()="${e}${r}"`)).join(" or ")}]`,n)){s=s.slice(0,-(r.length+1));const t=await Kt(a.getAttribute(`${s}-env`)||s);vt.get(s).runEvent(t,o,e)}},Vt=e=>{if(St.length)for(let{name:r,ownerElement:n}of t(`.//@*[${St.map((e=>`starts-with(name(),"${e}")`)).join(" or ")}]`,e)){const e=r.lastIndexOf("-"),t=r.slice(e+1);"env"!==t&&(n.addEventListener(t,Qt),"disabled"in n&&!n.disabled&&(n.disabled=!0,Gt[r.slice(0,e)].then((()=>{n.disabled=!1}))))}},Zt=Bt(),er=[],tr=new Map,rr=new Map,nr=e=>{for(const t of er)if(e.matches(t)){const r=tr.get(t),n=sr.get(r),{resolve:s}=rr.get(r),{options:o,known:a}=n;if(!a.has(e)){a.add(e);const{interpreter:t,config:i,version:c,env:l,onerror:u,hooks:f}=o;let p;try{const n=Ct(e);if(n){const o=Zt.call(new Ft(null,f),n,{...Xe(e,r),version:c,type:t,custom:r,config:e.getAttribute("config")||i||{},async:e.hasAttribute("async")});return Ce(e,"xworker",{value:o}),void s({type:r,xworker:o})}}catch(e){p=e}const d=Mt(t,c),h=l||`${d}${i?`|${i}`:""}`,{interpreter:g,XWorker:y}=zt(r,h,d,c,i,t);g.then((o=>{const a=Ie(vt.get(t)),i=new Ft(o,f),c=function(...e){return y.apply(i,e)},l={...Ye(a,r,structuredClone($t.get(d)),o),XWorker:c};a.registerJSModule(o,"polyscript",{XWorker:c});for(const t of["Run","RunAsync"]){const r=Ge(a,`r${t.slice(1)}`);let n,s,o="",i="";for(const e of Ot){const r=f?.main?.[e];r&&e.endsWith(t)&&(e.startsWith("codeBefore")?o=_e(r()):i=_e(r()))}i&&r(i,!1),o&&r(o,!0);for(let e=2;e<Wt.length;e++){const r=Wt[e],o=f?.main?.[r];o&&r.endsWith(t)&&(r.startsWith("onBefore")?n=o:s=o)}Rt(a,l,e,t.endsWith("Async"),n,s)}n.queue=n.queue.then((()=>(s(l),p&&u?.(p,e),f?.main?.onReady?.(l,e))))}))}}},sr=new Map;let or=0;const ar=e=>(rr.has(e)||rr.set(e,Promise.withResolvers()),rr.get(e).promise),[{define:ir,whenDefined:cr,env:lr,Hook:ur,XWorker:fr},pr]=((e,t,r=globalThis)=>{const n=Symbol.for(e),s=n in r;return[s?r[n]:Object.defineProperty(r,n,{value:t})[n],s]})("polyscript",{define:(t,r)=>{let n=null==t;if(n)t="_ps"+or++;else if(vt.has(t)||sr.has(t))throw new Error(`<script type="${t}"> already registered`);if(!vt.has(r?.interpreter))throw new Error("Unspecified interpreter");vt.set(t,vt.get(r.interpreter));const s=[`script[type="${t}"]`];if(ar(t),n){const{hooks:e}=r,n=e?.main?.onReady;r={...r,hooks:{...e,main:{...e?.main,onReady(e,r){er.splice(er.indexOf(t),1),vt.delete(t),sr.delete(t),rr.delete(t),r.remove(),n?.(e)}}}},document.head.append(Je(document.createElement("script"),{type:t}))}else s.push(`${t}-script`),St.push(`${t}-`);for(const e of s)tr.set(e,t);er.push(...s),sr.set(t,{options:Je({env:t},r),known:new WeakSet,queue:Promise.resolve()}),n||Vt(document),e(s.join(",")).forEach(nr)},whenDefined:ar,env:Gt,Hook:Ft,XWorker:Zt});if(!pr){const t=new MutationObserver((e=>{const t=Et.join(",");for(const{type:n,target:s,attributeName:o,addedNodes:a}of e)if("attributes"!==n)for(const e of a)1===e.nodeType&&(Vt(e),t&&e.matches(t)?Yt(e):r(t,e,!0));else{const e=o.lastIndexOf("-")+1;if(e){const t=o.slice(0,e);for(const r of St)if(t===r){const t=o.slice(e);if("env"!==t){const e=s.hasAttribute(o)?"add":"remove";s[`${e}EventListener`](t,Qt)}break}}}})),r=(t,r,n)=>{t&&e(t,r).forEach(Yt),(t=er.join(","))&&(n&&nr(r),e(t,r).forEach(nr))},n=e=>(t.observe(e,{childList:!0,subtree:!0,attributes:!0}),e),{attachShadow:s}=Element.prototype;Je(Element.prototype,{attachShadow(e){return n(s.call(this,e))}}),queueMicrotask((()=>{Vt(n(document)),r(Et.join(","),document,!1)}))}export{ur as Hook,Jt as INVALID_CONTENT,It as INVALID_SRC_ATTR,Lt as INVALID_WORKER_ATTR,fr as XWorker,ir as define,lr as env,cr as whenDefined}; | ||
/*! (c) Andrea Giammarchi - ISC */;const{Int32Array:A,Map:k,SharedArrayBuffer:P,Uint16Array:j}=globalThis,{BYTES_PER_ELEMENT:x}=A,{BYTES_PER_ELEMENT:M}=j,{isArray:T}=Array,{notify:_,wait:O,waitAsync:W}=Atomics,{fromCharCode:R}=String,F=new WeakSet,B=new WeakMap,J={value:{then:e=>e()}};let I=0;const L=(e,{parse:t=JSON.parse,stringify:r=JSON.stringify,transform:n,interrupt:s}=JSON)=>{if(!B.has(e)){const o=(t,...r)=>e.postMessage({[h]:r},{transfer:t}),a=typeof s===m?s:s?.handler,i=s?.delay||42,c=(e,t)=>e?(W||S)(t,0):(a?((e,t,r)=>{for(;"timed-out"===O(e,0,0,t);)r()})(t,i,a):O(t,0),J);let l=!1;B.set(e,new Proxy(new k,{has:(e,t)=>"string"==typeof t&&!t.startsWith("_"),get:(r,s)=>"then"===s?null:(...r)=>{const a=I++;let i=new A(new P(2*x)),u=[];F.has(r.at(-1)||u)&&F.delete(u=r.pop()),o(u,a,i,s,n?r.map(n):r);const f=e!==globalThis;let p=0;return l&&f&&(p=setTimeout(console.warn,1e3,`💀🔒 - Possible deadlock if proxy.${s}(...args) is awaited`)),c(f,i).value.then((()=>{clearTimeout(p);const e=i[1];if(!e)return;const r=M*e;return i=new A(new P(r+r%x)),o([],a,i),c(f,i).value.then((()=>{const r=new j(i.buffer).slice(0,e),n=[];for(let t=0;t<e;t+=2048)n.push(R(...r.slice(t,t+2048)));return t(n.join(""))}))}))},set(t,s,o){const a=typeof o;if(a!==m)throw new Error(`Unable to assign ${s} as ${a}`);if(!t.size){const s=new k;e.addEventListener("message",(async e=>{const o=e.data?.[h];if(T(o)){e.stopImmediatePropagation();const[a,i,...c]=o;let u;if(c.length){const[e,o]=c;if(t.has(e)){l=!0;try{const c=await t.get(e)(...o);if(void 0!==c){const e=r(n?n(c):c);s.set(a,e),i[1]=e.length}}catch(e){u=e}finally{l=!1}}else u=new Error(`Unsupported action: ${e}`);i[0]=1}else{const e=s.get(a);s.delete(a);for(let t=new j(i.buffer),r=0;r<e.length;r++)t[r]=e.charCodeAt(r)}if(_(i,0),u)throw u}}))}return!!t.set(s,o)}}))}return B.get(e)};L.transfer=(...e)=>(F.add(e),e);const C=new FinalizationRegistry((([e,t,r])=>{r&&console.debug(`Held value ${String(t)} not relevant anymore`),e(t)})),N=Object.create(null),D=(e,t,{debug:r,return:n,token:s=e}=N)=>{const o=n||new Proxy(e,N),a=[o,[t,e,!!r]];return!1!==s&&a.push(s),C.register(...a),o},{defineProperty:H,getOwnPropertyDescriptor:U,getPrototypeOf:q,isExtensible:X,ownKeys:z,preventExtensions:Y,set:G,setPrototypeOf:K}=Reflect,{assign:Q,create:V}=Object,Z=q(Int8Array),ee="isArray",te=(e,t)=>{const{get:r,set:n,value:s}=e;return r&&(e.get=t(r)),n&&(e.set=t(n)),s&&(e.value=t(s)),e},re=(e,t)=>[e,t],ne=e=>t=>{const r=typeof t;switch(r){case w:if(null==t)return re("null",t);if(t===globalThis)return re(w,null);case m:return e(r,t);case"boolean":case b:case v:case $:case"bigint":return re(r,t);case E:if(se.has(t))return re(r,se.get(t))}throw new Error(`Unable to handle this ${r} type`)},se=new Map(z(Symbol).filter((e=>typeof Symbol[e]===E)).map((e=>[Symbol[e],e]))),oe=e=>{for(const[t,r]of se)if(r===e)return t},ae=e=>e;function ie(){return this}const ce="apply",le="construct",ue="defineProperty",fe="deleteProperty",pe="get",de="getOwnPropertyDescriptor",he="getPrototypeOf",ge="has",ye="isExtensible",we="ownKeys",me="preventExtensions",be="set",ve="setPrototypeOf",$e="delete";var Ee=((e,t)=>{const r=t&&new WeakMap;if(t){const{addEventListener:e}=EventTarget.prototype;H(EventTarget.prototype,"addEventListener",{value(t,n,...s){return s.at(0)?.invoke&&(r.has(this)||r.set(this,new Map),r.get(this).set(t,[].concat(s[0].invoke)),delete s[0].invoke),e.call(this,t,n,...s)}})}const n=t&&(e=>{const{currentTarget:t,target:n,type:s}=e;for(const o of r.get(t||n)?.get(s)||[])e[o]()});return function(r,s,o,...a){let i=0,c=this?.transform||ae;const l=new Map,u=new Map,{[o]:f}=r,p=a.length?Q(V(globalThis),...a):globalThis,d=ne(((e,t)=>{if(!l.has(t)){let r;for(;u.has(r=i++););l.set(t,r),u.set(r,e===w?c(t):t)}return re(e,l.get(t))})),h=e=>{f($e,re(v,e))},g=([e,r])=>{switch(e){case w:if(null==r)return p;if(typeof r===b)return u.get(r);if(!(r instanceof Z))for(const e in r)r[e]=g(r[e]);return r;case m:if(typeof r===v){if(!u.has(r)){const e=function(...e){return t&&e.at(0)instanceof Event&&n(...e),f(ce,re(m,r),d(this),e.map(d))};return u.set(r,new WeakRef(e)),D(r,h,{return:e,token:!1})}return u.get(r).deref()}return u.get(r);case E:return oe(r)}return r},y={[ce]:(e,t,r)=>d(e.apply(t,r)),[le]:(e,t)=>d(new e(...t)),[ue]:(e,t,r)=>d(H(e,t,r)),[fe]:(e,t)=>d(delete e[t]),[he]:e=>d(q(e)),[pe]:(e,t)=>d(e[t]),[de]:(e,t)=>{const r=U(e,t);return r?re(w,te(r,d)):re($,r)},[ge]:(e,t)=>d(t in e),[ye]:e=>d(X(e)),[we]:e=>re(w,z(e).map(d)),[me]:e=>d(Y(e)),[be]:(e,t,r)=>d(G(e,t,r)),[ve]:(e,t)=>d(K(e,t)),[$e](e){l.delete(u.get(e)),u.delete(e)}};return r[s]=(e,t,...r)=>{switch(e){case ce:r[0]=g(r[0]),r[1]=r[1].map(g);break;case le:r[0]=r[0].map(g);break;case ue:{const[e,t]=r;r[0]=g(e);const{get:n,set:s,value:o}=t;n&&(t.get=g(n)),s&&(t.set=g(s)),o&&(t.value=g(o));break}default:r=r.map(g)}return y[e](g(t),...r)},{proxy:r,[e.toLowerCase()]:p,[`is${e}Proxy`]:()=>!1}}})("Window",!0),Se=(e=>{let t=0;const r=new Map,n=new Map,s=Symbol(),o=e=>typeof e===m?e():e,a=e=>typeof e===w&&!!e&&s in e,i=Array[ee];return function(c,l,u){const f=this?.transform||ae,{[l]:p}=c,d=new Map,h=e=>{d.delete(e),p($e,g(e))},g=ne(((e,a)=>{if(s in a)return o(a[s]);if(e===m){if(a=f(a),!n.has(a)){let e;for(;n.has(e=String(t++)););r.set(a,e),n.set(e,a)}return re(e,r.get(a))}if(!(a instanceof Z)){e===w&&(a=f(a));for(const e in a)a[e]=g(a[e])}return re(e,a)})),y=e=>{const[t,r]=e;if(!d.has(r)){const n=t===m?ie.bind(e):e,s=new Proxy(n,A);return d.set(r,new WeakRef(s)),D(r,h,{return:s,token:!1})}return d.get(r).deref()},$=e=>{const[t,r]=e;switch(t){case w:return null===r?globalThis:typeof r===b?y(e):r;case m:return typeof r===v?n.get(r):y(e);case E:return oe(r)}return r},S=(e,t,...r)=>$(p(e,o(t),...r)),A={[ce]:(e,t,r)=>S(ce,e,g(t),r.map(g)),[le]:(e,t)=>S(le,e,t.map(g)),[ue]:(e,t,r)=>{const{get:n,set:s,value:o}=r;return typeof n===m&&(r.get=g(n)),typeof s===m&&(r.set=g(s)),typeof o===m&&(r.value=g(o)),S(ue,e,g(t),r)},[fe]:(e,t)=>S(fe,e,g(t)),[he]:e=>S(he,e),[pe]:(e,t)=>t===s?e:S(pe,e,g(t)),[de]:(e,t)=>{const r=S(de,e,g(t));return r&&te(r,$)},[ge]:(e,t)=>t===s||S(ge,e,g(t)),[ye]:e=>S(ye,e),[we]:e=>S(we,e).map($),[me]:e=>S(me,e),[be]:(e,t,r)=>S(be,e,g(t),g(r)),[ve]:(e,t)=>S(ve,e,g(t))};c[u]=(e,t,s,o)=>{switch(e){case ce:return $(t).apply($(s),o.map($));case $e:{const e=$(t);r.delete(n.get(e)),n.delete(e)}}};const k=new Proxy([w,null],A),P=k.Array[ee];return H(Array,ee,{value:e=>a(e)?P(e):i(e)}),{[e.toLowerCase()]:k,[`is${e}Proxy`]:a,proxy:c}}})("Window"),Ae=typeof Worker===m?Worker:class{};const ke=new WeakMap,Pe=(e,...t)=>{const r=L(e,...t);if(!ke.has(r)){const n=e instanceof Ae?Ee:Se;ke.set(r,n.call(t.at(0),r,g,y))}return ke.get(r)};Pe.transfer=L.transfer;Promise.withResolvers||(Promise.withResolvers=function(){var e,t,r=new this((function(r,n){e=r,t=n}));return{resolve:e,reject:t,promise:r}});const je=e=>e.arrayBuffer(),xe=e=>e.json(),Me=e=>e.text();const Te={object(...e){return this.string(function(e){for(var t=e[0],r=1,n=arguments.length;r<n;r++)t+=arguments[r]+e[r];return t}(...e))},string(e){for(const t of e.split(/[\r\n]+/))if(t.trim().length){/^(\s+)/.test(t)&&(e=e.replace(new RegExp("^"+RegExp.$1,"gm"),""));break}return e}},_e=(e,...t)=>Te[typeof e](e,...t),{replace:Oe}="",We=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34);/g,Re={"&":"&","&":"&","<":"<","<":"<",">":">",">":">","'":"'","'":"'",""":'"',""":'"'},Fe=e=>Re[e],{isArray:Be}=Array,{assign:Je,create:Ie,defineProperties:Le,defineProperty:Ce,entries:Ne}=Object,{all:De,resolve:He}=new Proxy(Promise,{get:(e,t)=>e[t].bind(e)}),Ue=(e,t=location.href)=>new URL(e,t.replace(/^blob:/,"")).href;let qe=0;const Xe=(e,t)=>({id:e.id||(e.id=`${t}-w${qe++}`),tag:e.tagName}),ze=(e,t,r,n=!1,s=CustomEvent)=>{e.dispatchEvent(new s(`${t}:${r}`,{bubbles:!0,detail:{worker:n}}))},Ye=(e,t,r,n)=>({type:t,config:r,interpreter:n,io:Ke.get(n),run:(t,...r)=>e.run(n,t,...r),runAsync:(t,...r)=>e.runAsync(n,t,...r),runEvent:(...t)=>e.runEvent(n,...t)}),Ge=(e,t)=>(r,n)=>{const s=e[t].bind(e);e[t]=(e,t,...o)=>s(e,`${n?r:t}\n${n?t:r}`,...o)},Ke=new WeakMap,Qe=e=>{const t=e||console,r={stderr:(t.stderr||console.error).bind(t),stdout:(t.stdout||console.log).bind(t)};return{stderr:(...e)=>r.stderr(...e),stdout:(...e)=>r.stdout(...e),async get(e){const t=await e;return Ke.set(t,r),t}}},Ve=({FS:e,PATH:t,PATH_FS:r},n,s)=>{const o=r.resolve(n);return e.mkdirTree(t.dirname(o)),e.writeFile(o,new Uint8Array(s),{canOwn:!0})},Ze=e=>{const t=e.split("/");return t.pop(),t.join("/")},et=(e,t)=>{const r=[];for(const n of t.split("/"))"."!==n&&(r.push(n),n&&e.mkdir(r.join("/")))},tt=(e,t)=>{const r=[];for(const e of t.split("/"))switch(e){case"":case".":break;case"..":r.pop();break;default:r.push(e)}return[e.cwd()].concat(r).join("/").replace(/^\/+/,"/")},rt=e=>{const t=e.map((e=>e.trim().replace(/(^[/]*|[/]*$)/g,""))).filter((e=>""!==e&&"."!==e)).join("/");return e[0].startsWith("/")?`/${t}`:t},nt=(e,t)=>fetch(Ue(t,st.get(e))),st=new WeakMap,ot=(e,t,r)=>De((e=>{for(const{files:t,to_file:r,from:n=""}of e){if(void 0!==t&&void 0!==r)throw new Error("Cannot use 'to_file' and 'files' parameters together!");if(void 0===t&&void 0===r&&n.endsWith("/"))throw new Error(`Couldn't determine the filename from the path ${n}, please supply 'to_file' parameter.`)}return e.flatMap((({from:e="",to_folder:t=".",to_file:r,files:n})=>{if(Be(n))return n.map((r=>({url:rt([e,r]),path:rt([t,r])})));const s=r||e.slice(1+e.lastIndexOf("/"));return[{url:e,path:rt([t,s])}]}))})(r).map((({url:n,path:s})=>nt(r,n).then(je).then((r=>e.writeFile(t,s,r)))))),at=(e,t)=>t.endsWith("/")?`${t}${e.split("/").pop()}`:t,it=(e,t)=>e.replace(/\{.+?\}/g,(e=>{if(!t.has(e))throw new SyntaxError(`Invalid template: ${e}`);return t.get(e)})),ct=(e,t,r)=>De((e=>{const t=new Map,r=new Set,n=[];for(const[s,o]of Object.entries(e))if(/^\{.+\}$/.test(s)){if(t.has(s))throw new SyntaxError(`Duplicated template: ${s}`);t.set(s,it(o,t))}else{const e=it(s,t),a=at(e,it(o||"./",t));if(r.has(a))throw new SyntaxError(`Duplicated destination: ${a}`);r.add(a),n.push({url:e,path:a})}return n})(r).map((({url:n,path:s})=>nt(r,n).then(je).then((r=>e.writeFile(t,s,r)))))),lt=(e,t,r)=>{e.registerJsModule(t,r)},ut=(e,t,...r)=>{try{return e.runPython(_e(t),...r)}catch(t){Ke.get(e).stderr(t)}},ft=async(e,t,...r)=>{try{return await e.runPythonAsync(_e(t),...r)}catch(t){Ke.get(e).stderr(t)}},pt=async(e,t,r)=>{const[n,...s]=t.split(".");let o,a=e.globals.get(n);for(const e of s)[o,a]=[a,a[e]];try{await a.call(o,r)}catch(t){Ke.get(e).stderr(t)}};var dt={type:"micropython",module:(e="1.20.0-297")=>`https://cdn.jsdelivr.net/npm/@micropython/micropython-webassembly-pyscript@${e}/micropython.mjs`,async engine({loadMicroPython:e},t,r){const{stderr:n,stdout:s,get:o}=Qe();r=r.replace(/\.m?js$/,".wasm");const a=await o(e({stderr:n,stdout:s,url:r}));return t.files&&await ct(this,a,t.files),t.fetch&&await ot(this,a,t.fetch),a},registerJSModule:lt,run:ut,runAsync:ft,runEvent:pt,transform:(e,t)=>t,writeFile:({FS:e,_module:{PATH:t,PATH_FS:r}},n,s)=>Ve({FS:e,PATH:t,PATH_FS:r},n,s)};const ht={dict_converter:Object.fromEntries};var gt={type:"pyodide",module:(e="0.24.1")=>`https://cdn.jsdelivr.net/pyodide/v${e}/full/pyodide.mjs`,async engine({loadPyodide:e},t,r){const{stderr:n,stdout:s,get:o}=Qe(),a=r.slice(0,r.lastIndexOf("/")),i=await o(e({stderr:n,stdout:s,indexURL:a}));if(t.files&&await ct(this,i,t.files),t.fetch&&await ot(this,i,t.fetch),t.packages){await i.loadPackage("micropip");const e=await i.pyimport("micropip");await e.install(t.packages),e.destroy()}return i},registerJSModule:lt,run:ut,runAsync:ft,runEvent:pt,transform:(e,t)=>t instanceof e.ffi.PyProxy?t.toJs(ht):t,writeFile:({FS:e,PATH:t,_module:{PATH_FS:r}},n,s)=>Ve({FS:e,PATH:t,PATH_FS:r},n,s)};const yt="ruby-wasm-wasi",wt=yt.replace(/\W+/g,"_");var mt={type:yt,experimental:!0,module:(e="2.1.0")=>`https://cdn.jsdelivr.net/npm/ruby-3_2-wasm-wasi@${e}/dist/browser.esm.js`,async engine({DefaultRubyVM:e},t,r){const n=await fetch(`${r.slice(0,r.lastIndexOf("/"))}/ruby.wasm`),s=await WebAssembly.compile(await n.arrayBuffer()),{vm:o}=await e(s);return t.files&&await ct(this,o,t.files),t.fetch&&await ot(this,o,t.fetch),o},registerJSModule(e,t,r){const n=`__module_${wt}_${t}`;globalThis[n]=r,this.run(e,`require "js";$${t}=JS.global[:${n}]`),delete globalThis[n]},run:(e,t,...r)=>e.eval(_e(t),...r),runAsync:(e,t,...r)=>e.evalAsync(_e(t),...r),async runEvent(e,t,r){if(/^xworker\.(on\w+)$/.test(t)){const{$1:t}=RegExp,n=`__module_${wt}_event`;globalThis[n]=r,this.run(e,`require "js";$xworker.call("${t}",JS.global[:${n}])`),delete globalThis[n]}else{const n=this.run(e,`method(:${t})`);await n.call(t,e.wrap(r))}},transform:(e,t)=>t,writeFile:()=>{throw new Error(`writeFile is not supported in ${yt}`)}};var bt={type:"wasmoon",module:(e="1.15.0")=>`https://cdn.jsdelivr.net/npm/wasmoon@${e}/+esm`,async engine({LuaFactory:e,LuaLibraries:t},r){const{stderr:n,stdout:s,get:o}=Qe(),a=await o((new e).createEngine());return a.global.getTable(t.Base,(e=>{a.global.setField(e,"print",s),a.global.setField(e,"printErr",n)})),r.files&&await ct(this,a,r.files),r.fetch&&await ot(this,a,r.fetch),a},registerJSModule:(e,t,r)=>{e.global.set(t,r)},run:(e,t,...r)=>{try{return e.doStringSync(_e(t),...r)}catch(t){Ke.get(e).stderr(t)}},runAsync:async(e,t,...r)=>{try{return await e.doString(_e(t),...r)}catch(t){Ke.get(e).stderr(t)}},runEvent:async(e,t,r)=>{const[n,...s]=t.split(".");let o,a=e.global.get(n);for(const e of s)[o,a]=[a,a[e]];try{await a.call(o,r)}catch(t){Ke.get(e).stderr(t)}},transform:(e,t)=>t,writeFile:({cmodule:{module:{FS:e}}},t,r)=>((e,t,r)=>(et(e,Ze(t)),t=tt(e,t),e.writeFile(t,new Uint8Array(r),{canOwn:!0})))(e,t,r)};const vt=new Map,$t=new Map,Et=[],St=[],At=new Proxy(new Map,{get(e,t){if(!e.has(t)){const[r,...n]=t.split("@"),s=vt.get(r),o=/^https?:\/\//i.test(n)?n.join("@"):s.module(...n);e.set(t,{url:o,module:import(o),engine:s.engine.bind(s)})}const{url:r,module:n,engine:s}=e.get(t);return(e,o)=>n.then((n=>{$t.set(t,e);for(const t of["files","fetch"]){const r=e?.[t];r&&st.set(r,o)}return s(n,e,r)}))}}),kt=e=>{for(const t of[].concat(e.type))vt.set(t,e),Et.push(`script[type="${t}"]`),St.push(`${t}-`)};for(const e of[dt,gt,mt,bt])kt(e);const Pt=async e=>(await import("https://cdn.jsdelivr.net/npm/basic-toml@0.3.1/es.js")).parse(e),jt=e=>{let t=typeof e;return"string"===t&&/\.(json|toml|txt)$/.test(e)?t=RegExp.$1:e="./config.txt",[Ue(e),t]},xt=(e,t,r={})=>{if(t){const[e,n]=jt(t);if("json"===n)r=fetch(e).then(xe);else if("toml"===n)r=fetch(e).then(Me).then(Pt);else if("string"===n)try{r=JSON.parse(t)}catch(e){r=Pt(t)}else"object"===n&&t&&(r=t);t=e}return He(r).then((r=>At[e](r,t)))},Mt=(e,t="")=>`${e}@${t}`.replace(/@$/,""),Tt="BeforeRun",_t="AfterRun",Ot=[`code${Tt}`,`code${Tt}Async`,`code${_t}`,`code${_t}Async`],Wt=["onWorker","onReady",`on${Tt}`,`on${Tt}Async`,`on${_t}`,`on${_t}Async`],Rt=(e,t,r,n,s,o)=>{if(s||o){const a=n?"runAsync":"run",i=e[a];e[a]=n?async function(e,n,...a){s&&await s.call(this,t,r);const c=await i.call(this,e,n,...a);return o&&await o.call(this,t,r),c}:function(e,n,...a){s&&s.call(this,t,r);const c=i.call(this,e,n,...a);return o&&o.call(this,t,r),c}}};let Ft=class{constructor(e,t={}){const{main:r,worker:n}=t;this.interpreter=e,this.onWorker=r?.onWorker;for(const e of Wt.slice(1))this[e]=n?.[e];for(const e of Ot)this[e]=n?.[e]}toJSON(){const e={};for(const t of Wt.slice(1))this[t]&&(e[t]=String(this[t]));for(const t of Ot)this[t]&&(e[t]=_e(this[t]()));return e}};var Bt=(...e)=>function(t,r){const n=new Worker(URL.createObjectURL(new Blob(['const e="object"==typeof self?self:globalThis,t=t=>((t,r)=>{const n=(e,r)=>(t.set(r,e),e),s=o=>{if(t.has(o))return t.get(o);const[a,i]=r[o];switch(a){case 0:case-1:return n(i,o);case 1:{const e=n([],o);for(const t of i)e.push(s(t));return e}case 2:{const e=n({},o);for(const[t,r]of i)e[s(t)]=s(r);return e}case 3:return n(new Date(i),o);case 4:{const{source:e,flags:t}=i;return n(new RegExp(e,t),o)}case 5:{const e=n(new Map,o);for(const[t,r]of i)e.set(s(t),s(r));return e}case 6:{const e=n(new Set,o);for(const t of i)e.add(s(t));return e}case 7:{const{name:t,message:r}=i;return n(new e[t](r),o)}case 8:return n(BigInt(i),o);case"BigInt":return n(Object(BigInt(i)),o)}return n(new e[a](i),o)};return s})(new Map,t)(0),r="",{toString:n}={},{keys:s}=Object,o=e=>{const t=typeof e;if("object"!==t||!e)return[0,t];const s=n.call(e).slice(8,-1);switch(s){case"Array":return[1,r];case"Object":return[2,r];case"Date":return[3,r];case"RegExp":return[4,r];case"Map":return[5,r];case"Set":return[6,r]}return s.includes("Array")?[1,s]:s.includes("Error")?[7,s]:[2,s]},a=([e,t])=>0===e&&("function"===t||"symbol"===t),i=(e,{json:t,lossy:r}={})=>{const n=[];return((e,t,r,n)=>{const i=(e,t)=>{const s=n.push(e)-1;return r.set(t,s),s},c=n=>{if(r.has(n))return r.get(n);let[l,u]=o(n);switch(l){case 0:{let t=n;switch(u){case"bigint":l=8,t=n.toString();break;case"function":case"symbol":if(e)throw new TypeError("unable to serialize "+u);t=null;break;case"undefined":return i([-1],n)}return i([l,t],n)}case 1:{if(u)return i([u,[...n]],n);const e=[],t=i([l,e],n);for(const t of n)e.push(c(t));return t}case 2:{if(u)switch(u){case"BigInt":return i([u,n.toString()],n);case"Boolean":case"Number":case"String":return i([u,n.valueOf()],n)}if(t&&"toJSON"in n)return c(n.toJSON());const r=[],f=i([l,r],n);for(const t of s(n))!e&&a(o(n[t]))||r.push([c(t),c(n[t])]);return f}case 3:return i([l,n.toISOString()],n);case 4:{const{source:e,flags:t}=n;return i([l,{source:e,flags:t}],n)}case 5:{const t=[],r=i([l,t],n);for(const[r,s]of n)(e||!a(o(r))&&!a(o(s)))&&t.push([c(r),c(s)]);return r}case 6:{const t=[],r=i([l,t],n);for(const r of n)!e&&a(o(r))||t.push(c(r));return r}}const{message:f}=n;return i([l,{name:u,message:f}],n)};return c})(!(t||r),!!t,new Map,n)(e),n},{parse:c,stringify:l}=JSON,u={json:!0,lossy:!0};var f=Object.freeze({__proto__:null,parse:e=>t(c(e)),stringify:e=>l(i(e,u))});const p="49775373-4961-44cd-9a4b-651a0c9cca5a",d="M"+p,y="T"+p,h="object",g="function",w="number",m="string",b="undefined",v="symbol";var $=e=>({value:new Promise((t=>{let r=new Worker("data:application/javascript,onmessage%3D(%7Bdata%3Ab%7D)%3D%3E(Atomics.wait(b%2C0)%2CpostMessage(0))");r.onmessage=t,r.postMessage(e)}))})\n/*! (c) Andrea Giammarchi - ISC */;const{Int32Array:S,Map:E,SharedArrayBuffer:A,Uint16Array:P}=globalThis,{BYTES_PER_ELEMENT:j}=S,{BYTES_PER_ELEMENT:M}=P,{isArray:k}=Array,{notify:x,wait:T,waitAsync:_}=Atomics,{fromCharCode:O}=String,W=new WeakSet,F=new WeakMap,R={value:{then:e=>e()}};let B=0;const J=(e,{parse:t=JSON.parse,stringify:r=JSON.stringify,transform:n,interrupt:s}=JSON)=>{if(!F.has(e)){const o=(t,...r)=>e.postMessage({[p]:r},{transfer:t}),a=typeof s===g?s:s?.handler,i=s?.delay||42,c=(e,t)=>e?(_||$)(t,0):(a?((e,t,r)=>{for(;"timed-out"===T(e,0,0,t);)r()})(t,i,a):T(t,0),R);let l=!1;F.set(e,new Proxy(new E,{has:(e,t)=>"string"==typeof t&&!t.startsWith("_"),get:(r,s)=>"then"===s?null:(...r)=>{const a=B++;let i=new S(new A(2*j)),u=[];W.has(r.at(-1)||u)&&W.delete(u=r.pop()),o(u,a,i,s,n?r.map(n):r);const f=e!==globalThis;let p=0;return l&&f&&(p=setTimeout(console.warn,1e3,`💀🔒 - Possible deadlock if proxy.${s}(...args) is awaited`)),c(f,i).value.then((()=>{clearTimeout(p);const e=i[1];if(!e)return;const r=M*e;return i=new S(new A(r+r%j)),o([],a,i),c(f,i).value.then((()=>{const r=new P(i.buffer).slice(0,e),n=[];for(let t=0;t<e;t+=2048)n.push(O(...r.slice(t,t+2048)));return t(n.join(""))}))}))},set(t,s,o){const a=typeof o;if(a!==g)throw new Error(`Unable to assign ${s} as ${a}`);if(!t.size){const s=new E;e.addEventListener("message",(async e=>{const o=e.data?.[p];if(k(o)){e.stopImmediatePropagation();const[a,i,...c]=o;let u;if(c.length){const[e,o]=c;if(t.has(e)){l=!0;try{const c=await t.get(e)(...o);if(void 0!==c){const e=r(n?n(c):c);s.set(a,e),i[1]=e.length}}catch(e){u=e}finally{l=!1}}else u=new Error(`Unsupported action: ${e}`);i[0]=1}else{const e=s.get(a);s.delete(a);for(let t=new P(i.buffer),r=0;r<e.length;r++)t[r]=e.charCodeAt(r)}if(x(i,0),u)throw u}}))}return!!t.set(s,o)}}))}return F.get(e)};J.transfer=(...e)=>(W.add(e),e);const I=new FinalizationRegistry((([e,t,r])=>{r&&console.debug(`Held value ${String(t)} not relevant anymore`),e(t)})),C=Object.create(null),L=(e,t,{debug:r,return:n,token:s=e}=C)=>{const o=n||new Proxy(e,C),a=[o,[t,e,!!r]];return!1!==s&&a.push(s),I.register(...a),o},{defineProperty:D,getOwnPropertyDescriptor:H,getPrototypeOf:N,isExtensible:U,ownKeys:z,preventExtensions:q,set:K,setPrototypeOf:Y}=Reflect,{assign:G,create:V}=Object,Q=N(Int8Array),X="isArray",Z=(e,t)=>{const{get:r,set:n,value:s}=e;return r&&(e.get=t(r)),n&&(e.set=t(n)),s&&(e.value=t(s)),e},ee=(e,t)=>[e,t],te=e=>t=>{const r=typeof t;switch(r){case h:if(null==t)return ee("null",t);if(t===globalThis)return ee(h,null);case g:return e(r,t);case"boolean":case w:case m:case b:case"bigint":return ee(r,t);case v:if(re.has(t))return ee(r,re.get(t))}throw new Error(`Unable to handle this ${r} type`)},re=new Map(z(Symbol).filter((e=>typeof Symbol[e]===v)).map((e=>[Symbol[e],e]))),ne=e=>{for(const[t,r]of re)if(r===e)return t},se=e=>e;function oe(){return this}const ae="apply",ie="construct",ce="defineProperty",le="deleteProperty",ue="get",fe="getOwnPropertyDescriptor",pe="getPrototypeOf",de="has",ye="isExtensible",he="ownKeys",ge="preventExtensions",we="set",me="setPrototypeOf",be="delete";var ve=((e,t)=>{const r=t&&new WeakMap;if(t){const{addEventListener:e}=EventTarget.prototype;D(EventTarget.prototype,"addEventListener",{value(t,n,...s){return s.at(0)?.invoke&&(r.has(this)||r.set(this,new Map),r.get(this).set(t,[].concat(s[0].invoke)),delete s[0].invoke),e.call(this,t,n,...s)}})}const n=t&&(e=>{const{currentTarget:t,target:n,type:s}=e;for(const o of r.get(t||n)?.get(s)||[])e[o]()});return function(r,s,o,...a){let i=0,c=this?.transform||se;const l=new Map,u=new Map,{[o]:f}=r,p=a.length?G(V(globalThis),...a):globalThis,d=te(((e,t)=>{if(!l.has(t)){let r;for(;u.has(r=i++););l.set(t,r),u.set(r,e===h?c(t):t)}return ee(e,l.get(t))})),y=e=>{f(be,ee(m,e))},$=([e,r])=>{switch(e){case h:if(null==r)return p;if(typeof r===w)return u.get(r);if(!(r instanceof Q))for(const e in r)r[e]=$(r[e]);return r;case g:if(typeof r===m){if(!u.has(r)){const e=function(...e){return t&&e.at(0)instanceof Event&&n(...e),f(ae,ee(g,r),d(this),e.map(d))};return u.set(r,new WeakRef(e)),L(r,y,{return:e,token:!1})}return u.get(r).deref()}return u.get(r);case v:return ne(r)}return r},S={[ae]:(e,t,r)=>d(e.apply(t,r)),[ie]:(e,t)=>d(new e(...t)),[ce]:(e,t,r)=>d(D(e,t,r)),[le]:(e,t)=>d(delete e[t]),[pe]:e=>d(N(e)),[ue]:(e,t)=>d(e[t]),[fe]:(e,t)=>{const r=H(e,t);return r?ee(h,Z(r,d)):ee(b,r)},[de]:(e,t)=>d(t in e),[ye]:e=>d(U(e)),[he]:e=>ee(h,z(e).map(d)),[ge]:e=>d(q(e)),[we]:(e,t,r)=>d(K(e,t,r)),[me]:(e,t)=>d(Y(e,t)),[be](e){l.delete(u.get(e)),u.delete(e)}};return r[s]=(e,t,...r)=>{switch(e){case ae:r[0]=$(r[0]),r[1]=r[1].map($);break;case ie:r[0]=r[0].map($);break;case ce:{const[e,t]=r;r[0]=$(e);const{get:n,set:s,value:o}=t;n&&(t.get=$(n)),s&&(t.set=$(s)),o&&(t.value=$(o));break}default:r=r.map($)}return S[e]($(t),...r)},{proxy:r,[e.toLowerCase()]:p,[`is${e}Proxy`]:()=>!1}}})("Window",!0),$e=(e=>{let t=0;const r=new Map,n=new Map,s=Symbol(),o=e=>typeof e===g?e():e,a=e=>typeof e===h&&!!e&&s in e,i=Array[X];return function(c,l,u){const f=this?.transform||se,{[l]:p}=c,d=new Map,y=e=>{d.delete(e),p(be,b(e))},b=te(((e,a)=>{if(s in a)return o(a[s]);if(e===g){if(a=f(a),!n.has(a)){let e;for(;n.has(e=String(t++)););r.set(a,e),n.set(e,a)}return ee(e,r.get(a))}if(!(a instanceof Q)){e===h&&(a=f(a));for(const e in a)a[e]=b(a[e])}return ee(e,a)})),$=e=>{const[t,r]=e;if(!d.has(r)){const n=t===g?oe.bind(e):e,s=new Proxy(n,A);return d.set(r,new WeakRef(s)),L(r,y,{return:s,token:!1})}return d.get(r).deref()},S=e=>{const[t,r]=e;switch(t){case h:return null===r?globalThis:typeof r===w?$(e):r;case g:return typeof r===m?n.get(r):$(e);case v:return ne(r)}return r},E=(e,t,...r)=>S(p(e,o(t),...r)),A={[ae]:(e,t,r)=>E(ae,e,b(t),r.map(b)),[ie]:(e,t)=>E(ie,e,t.map(b)),[ce]:(e,t,r)=>{const{get:n,set:s,value:o}=r;return typeof n===g&&(r.get=b(n)),typeof s===g&&(r.set=b(s)),typeof o===g&&(r.value=b(o)),E(ce,e,b(t),r)},[le]:(e,t)=>E(le,e,b(t)),[pe]:e=>E(pe,e),[ue]:(e,t)=>t===s?e:E(ue,e,b(t)),[fe]:(e,t)=>{const r=E(fe,e,b(t));return r&&Z(r,S)},[de]:(e,t)=>t===s||E(de,e,b(t)),[ye]:e=>E(ye,e),[he]:e=>E(he,e).map(S),[ge]:e=>E(ge,e),[we]:(e,t,r)=>E(we,e,b(t),b(r)),[me]:(e,t)=>E(me,e,b(t))};c[u]=(e,t,s,o)=>{switch(e){case ae:return S(t).apply(S(s),o.map(S));case be:{const e=S(t);r.delete(n.get(e)),n.delete(e)}}};const P=new Proxy([h,null],A),j=P.Array[X];return D(Array,X,{value:e=>a(e)?j(e):i(e)}),{[e.toLowerCase()]:P,[`is${e}Proxy`]:a,proxy:c}}})("Window"),Se=typeof Worker===g?Worker:class{};const Ee=new WeakMap,Ae=(e,...t)=>{const r=J(e,...t);if(!Ee.has(r)){const n=e instanceof Se?ve:$e;Ee.set(r,n.call(t.at(0),r,d,y))}return Ee.get(r)};Ae.transfer=J.transfer;const Pe={object(...e){return this.string(function(e){for(var t=e[0],r=1,n=arguments.length;r<n;r++)t+=arguments[r]+e[r];return t}(...e))},string(e){for(const t of e.split(/[\\r\\n]+/))if(t.trim().length){/^(\\s+)/.test(t)&&(e=e.replace(new RegExp("^"+RegExp.$1,"gm"),""));break}return e}},je=(e,...t)=>Pe[typeof e](e,...t);Promise.withResolvers||(Promise.withResolvers=function(){var e,t,r=new this((function(r,n){e=r,t=n}));return{resolve:e,reject:t,promise:r}});const Me=e=>e.arrayBuffer(),ke=e=>e.json(),xe=e=>e.text(),Te=new WeakMap,_e=e=>{const t=e||console,r={stderr:(t.stderr||console.error).bind(t),stdout:(t.stdout||console.log).bind(t)};return{stderr:(...e)=>r.stderr(...e),stdout:(...e)=>r.stdout(...e),async get(e){const t=await e;return Te.set(t,r),t}}},Oe=({FS:e,PATH:t,PATH_FS:r},n,s)=>{const o=r.resolve(n);return e.mkdirTree(t.dirname(o)),e.writeFile(o,new Uint8Array(s),{canOwn:!0})},We=e=>{const t=e.split("/");return t.pop(),t.join("/")},Fe=(e,t)=>{const r=[];for(const n of t.split("/"))"."!==n&&(r.push(n),n&&e.mkdir(r.join("/")))},Re=(e,t)=>{const r=[];for(const e of t.split("/"))switch(e){case"":case".":break;case"..":r.pop();break;default:r.push(e)}return[e.cwd()].concat(r).join("/").replace(/^\\/+/,"/")},Be=e=>{const t=e.map((e=>e.trim().replace(/(^[/]*|[/]*$)/g,""))).filter((e=>""!==e&&"."!==e)).join("/");return e[0].startsWith("/")?`/${t}`:t},Je=(e,t)=>fetch(Qe(t,Ie.get(e))),Ie=new WeakMap,Ce=(e,t,r)=>Ge((e=>{for(const{files:t,to_file:r,from:n=""}of e){if(void 0!==t&&void 0!==r)throw new Error("Cannot use \'to_file\' and \'files\' parameters together!");if(void 0===t&&void 0===r&&n.endsWith("/"))throw new Error(`Couldn\'t determine the filename from the path ${n}, please supply \'to_file\' parameter.`)}return e.flatMap((({from:e="",to_folder:t=".",to_file:r,files:n})=>{if(Ne(n))return n.map((r=>({url:Be([e,r]),path:Be([t,r])})));const s=r||e.slice(1+e.lastIndexOf("/"));return[{url:e,path:Be([t,s])}]}))})(r).map((({url:n,path:s})=>Je(r,n).then(Me).then((r=>e.writeFile(t,s,r)))))),Le=(e,t)=>t.endsWith("/")?`${t}${e.split("/").pop()}`:t,De=(e,t)=>e.replace(/\\{.+?\\}/g,(e=>{if(!t.has(e))throw new SyntaxError(`Invalid template: ${e}`);return t.get(e)})),He=(e,t,r)=>Ge((e=>{const t=new Map,r=new Set,n=[];for(const[s,o]of Object.entries(e))if(/^\\{.+\\}$/.test(s)){if(t.has(s))throw new SyntaxError(`Duplicated template: ${s}`);t.set(s,De(o,t))}else{const e=De(s,t),a=Le(e,De(o||"./",t));if(r.has(a))throw new SyntaxError(`Duplicated destination: ${a}`);r.add(a),n.push({url:e,path:a})}return n})(r).map((({url:n,path:s})=>Je(r,n).then(Me).then((r=>e.writeFile(t,s,r)))))),{isArray:Ne}=Array,{assign:Ue,create:ze,defineProperties:qe,defineProperty:Ke,entries:Ye}=Object,{all:Ge,resolve:Ve}=new Proxy(Promise,{get:(e,t)=>e[t].bind(e)}),Qe=(e,t=location.href)=>new URL(e,t.replace(/^blob:/,"")).href,Xe=(e,t,r,n=!1,s=CustomEvent)=>{e.dispatchEvent(new s(`${t}:${r}`,{bubbles:!0,detail:{worker:n}}))},Ze=e=>Function(`\'use strict\';return (${e})`)(),et=(e,t,r)=>{e.registerJsModule(t,r)},tt=(e,t,...r)=>{try{return e.runPython(je(t),...r)}catch(t){Te.get(e).stderr(t)}},rt=async(e,t,...r)=>{try{return await e.runPythonAsync(je(t),...r)}catch(t){Te.get(e).stderr(t)}},nt=async(e,t,r)=>{const[n,...s]=t.split(".");let o,a=e.globals.get(n);for(const e of s)[o,a]=[a,a[e]];try{await a.call(o,r)}catch(t){Te.get(e).stderr(t)}};var st={type:"micropython",module:(e="1.20.0-297")=>`https://cdn.jsdelivr.net/npm/@micropython/micropython-webassembly-pyscript@${e}/micropython.mjs`,async engine({loadMicroPython:e},t,r){const{stderr:n,stdout:s,get:o}=_e();r=r.replace(/\\.m?js$/,".wasm");const a=await o(e({stderr:n,stdout:s,url:r}));return t.files&&await He(this,a,t.files),t.fetch&&await Ce(this,a,t.fetch),a},registerJSModule:et,run:tt,runAsync:rt,runEvent:nt,transform:(e,t)=>t,writeFile:({FS:e,_module:{PATH:t,PATH_FS:r}},n,s)=>Oe({FS:e,PATH:t,PATH_FS:r},n,s)};const ot={dict_converter:Object.fromEntries};var at={type:"pyodide",module:(e="0.24.1")=>`https://cdn.jsdelivr.net/pyodide/v${e}/full/pyodide.mjs`,async engine({loadPyodide:e},t,r){const{stderr:n,stdout:s,get:o}=_e(),a=r.slice(0,r.lastIndexOf("/")),i=await o(e({stderr:n,stdout:s,indexURL:a}));if(t.files&&await He(this,i,t.files),t.fetch&&await Ce(this,i,t.fetch),t.packages){await i.loadPackage("micropip");const e=await i.pyimport("micropip");await e.install(t.packages),e.destroy()}return i},registerJSModule:et,run:tt,runAsync:rt,runEvent:nt,transform:(e,t)=>t instanceof e.ffi.PyProxy?t.toJs(ot):t,writeFile:({FS:e,PATH:t,_module:{PATH_FS:r}},n,s)=>Oe({FS:e,PATH:t,PATH_FS:r},n,s)};const it="ruby-wasm-wasi",ct=it.replace(/\\W+/g,"_");var lt={type:it,experimental:!0,module:(e="2.1.0")=>`https://cdn.jsdelivr.net/npm/ruby-3_2-wasm-wasi@${e}/dist/browser.esm.js`,async engine({DefaultRubyVM:e},t,r){const n=await fetch(`${r.slice(0,r.lastIndexOf("/"))}/ruby.wasm`),s=await WebAssembly.compile(await n.arrayBuffer()),{vm:o}=await e(s);return t.files&&await He(this,o,t.files),t.fetch&&await Ce(this,o,t.fetch),o},registerJSModule(e,t,r){const n=`__module_${ct}_${t}`;globalThis[n]=r,this.run(e,`require "js";$${t}=JS.global[:${n}]`),delete globalThis[n]},run:(e,t,...r)=>e.eval(je(t),...r),runAsync:(e,t,...r)=>e.evalAsync(je(t),...r),async runEvent(e,t,r){if(/^xworker\\.(on\\w+)$/.test(t)){const{$1:t}=RegExp,n=`__module_${ct}_event`;globalThis[n]=r,this.run(e,`require "js";$xworker.call("${t}",JS.global[:${n}])`),delete globalThis[n]}else{const n=this.run(e,`method(:${t})`);await n.call(t,e.wrap(r))}},transform:(e,t)=>t,writeFile:()=>{throw new Error(`writeFile is not supported in ${it}`)}};var ut={type:"wasmoon",module:(e="1.15.0")=>`https://cdn.jsdelivr.net/npm/wasmoon@${e}/+esm`,async engine({LuaFactory:e,LuaLibraries:t},r){const{stderr:n,stdout:s,get:o}=_e(),a=await o((new e).createEngine());return a.global.getTable(t.Base,(e=>{a.global.setField(e,"print",s),a.global.setField(e,"printErr",n)})),r.files&&await He(this,a,r.files),r.fetch&&await Ce(this,a,r.fetch),a},registerJSModule:(e,t,r)=>{e.global.set(t,r)},run:(e,t,...r)=>{try{return e.doStringSync(je(t),...r)}catch(t){Te.get(e).stderr(t)}},runAsync:async(e,t,...r)=>{try{return await e.doString(je(t),...r)}catch(t){Te.get(e).stderr(t)}},runEvent:async(e,t,r)=>{const[n,...s]=t.split(".");let o,a=e.global.get(n);for(const e of s)[o,a]=[a,a[e]];try{await a.call(o,r)}catch(t){Te.get(e).stderr(t)}},transform:(e,t)=>t,writeFile:({cmodule:{module:{FS:e}}},t,r)=>((e,t,r)=>(Fe(e,We(t)),t=Re(e,t),e.writeFile(t,new Uint8Array(r),{canOwn:!0})))(e,t,r)};const ft=new Map,pt=new Map,dt=new Proxy(new Map,{get(e,t){if(!e.has(t)){const[r,...n]=t.split("@"),s=ft.get(r),o=/^https?:\\/\\//i.test(n)?n.join("@"):s.module(...n);e.set(t,{url:o,module:import(o),engine:s.engine.bind(s)})}const{url:r,module:n,engine:s}=e.get(t);return(e,o)=>n.then((n=>{pt.set(t,e);for(const t of["files","fetch"]){const r=e?.[t];r&&Ie.set(r,o)}return s(n,e,r)}))}}),yt=e=>{for(const t of[].concat(e.type))ft.set(t,e)};for(const e of[st,at,lt,ut])yt(e);const ht=async e=>(await import("https://cdn.jsdelivr.net/npm/basic-toml@0.3.1/es.js")).parse(e),gt=(e,t,r={})=>{if(t){const[e,n]=(e=>{let t=typeof e;return"string"===t&&/\\.(json|toml|txt)$/.test(e)?t=RegExp.$1:e="./config.txt",[Qe(e),t]})(t);if("json"===n)r=fetch(e).then(ke);else if("toml"===n)r=fetch(e).then(xe).then(ht);else if("string"===n)try{r=JSON.parse(t)}catch(e){r=ht(t)}else"object"===n&&t&&(r=t);t=e}return Ve(r).then((r=>dt[e](r,t)))},wt="BeforeRun",mt="AfterRun",bt=[`code${wt}`,`code${wt}Async`,`code${mt}`,`code${mt}Async`],vt=["onWorker","onReady",`on${wt}`,`on${wt}Async`,`on${mt}`,`on${mt}Async`],$t=(e,t,r,n,s,o)=>{if(s||o){const a=n?"runAsync":"run",i=e[a];e[a]=n?async function(e,n,...a){s&&await s.call(this,t,r);const c=await i.call(this,e,n,...a);return o&&await o.call(this,t,r),c}:function(e,n,...a){s&&s.call(this,t,r);const c=i.call(this,e,n,...a);return o&&o.call(this,t,r),c}}};try{new SharedArrayBuffer(4)}catch(e){throw new Error(["Unable to use SharedArrayBuffer due insecure environment.","Please read requirements in MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer#security_requirements"].join("\\n"))}let St,Et,At;const Pt=(e,t)=>{addEventListener(e,t||(async t=>{try{await St,Et(`xworker.on${e}`,t)}catch(e){postMessage(e)}}),!!t&&{once:!0})},{parse:jt,stringify:Mt}=f,{proxy:kt,window:xt,isWindowProxy:Tt}=Ae(self,{parse:jt,stringify:Mt,transform:e=>At?At(e):e}),_t={sync:kt,window:xt,isWindowProxy:Tt,onmessage:console.info,onerror:console.error,onmessageerror:console.warn,postMessage:postMessage.bind(self)};Pt("message",(({data:{options:e,config:t,code:r,hooks:n}})=>{St=(async()=>{try{const{id:s,tag:o,type:a,custom:i,version:c,config:l,async:u}=e,f=await gt(((e,t="")=>`${e}@${t}`.replace(/@$/,""))(a,c),t,l),p=ze(ft.get(a)),d=((e,t,r,n)=>({type:t,config:r,interpreter:n,io:Te.get(n),run:(t,...r)=>e.run(n,t,...r),runAsync:(t,...r)=>e.runAsync(n,t,...r),runEvent:(...t)=>e.runEvent(n,...t)}))(p,i||a,l,f);let y="run";if(u&&(y+="Async"),n){const e=((e,t)=>(r,n)=>{const s=e[t].bind(e);e[t]=(e,t,...o)=>s(e,`${n?r:t}\\n${n?t:r}`,...o)})(p,y);let t,r,s="",o="";for(const e of bt){const t=n[e];if(t){const r=e.endsWith("Async");(r&&u||!r&&!u)&&(e.startsWith("codeBefore")?s=t:o=t)}}o&&e(o,!1),s&&e(s,!0);for(const e of vt.slice(2)){const s=n[e];if(s){const n=e.endsWith("Async");if(n&&u||!n&&!u){const n=Ze(s);e.startsWith("onBefore")?t=n:r=n}}}$t(p,d,_t,u,t,r)}const{CustomEvent:h,document:g}=xt,w=s&&g.getElementById(s)||null,m=e=>Xe(w,i||a,e,!0,h);let b="";return p.registerJSModule(f,"polyscript",{xworker:_t,get target(){return!b&&w&&("SCRIPT"===o?w.after(Ue(g.createElement(`script-${i||a}`),{id:b=`${s}-target`})):(b=s,w.replaceChildren(),w.style.display="block")),b}}),Et=p.runEvent.bind(p,f),At=p.transform.bind(p,f),w&&m("ready"),n?.onReady&&Ze(n?.onReady).call(p,d,_t),await p[y](f,r),w&&m("done"),f}catch(e){postMessage(e)}})(),Pt("error"),Pt("message"),Pt("messageerror")}));\n'],{type:"application/javascript"})),{type:"module"}),{postMessage:s}=n,o=this instanceof Ft;if(e.length){const[t,n]=e;(r=Je({},r||{type:t,version:n})).type||(r.type=t)}const[a]=jt(r.config),i=fetch(t).then(Me).then((e=>{const t=o?this.toJSON():void 0;s.call(n,{options:r,config:a,code:e,hooks:t})}));return Le(n,{postMessage:{value:(e,...t)=>i.then((()=>s.call(n,e,...t)))},sync:{value:Pe(n,d).proxy},onerror:{writable:!0,configurable:!0,value:console.error}}),n.addEventListener("message",(e=>{const{data:t}=e;t instanceof Error&&(e.stopImmediatePropagation(),n.onerror(Ie(e,{type:{value:"error"},error:{value:t}})))})),o&&this.onWorker?.(this.interpreter,n),n};const Jt="Invalid content",It="Invalid worker attribute",Lt="Invalid worker attribute";var Ct=e=>{const{src:t,worker:r}=e.attributes;if(r){let{value:s}=r;if(s)throw new SyntaxError(Lt);if(s=t?.value,!s){if(t)throw new SyntaxError(It);if(e.childElementCount){const{innerHTML:t,localName:r,type:o}=e,a=o||r.replace(/-script$/,"");n=t,s=Oe.call(n,We,Fe),console.warn(`Deprecated: use <script type="${a}"> for an always safe content parsing:\n`,s)}else s=e.textContent;return URL.createObjectURL(new Blob([_e(s)],{type:"text/plain"}))}return s}var n;if(t&&e.textContent.replace(/\/\*[\s\S]*?\*\//g,"").replace(/^\s*(?:\/\/|#).*/gm,"").trim())throw new SyntaxError(Jt)};const Nt=(e,t)=>{const r=(e=>{let t=e;for(;t.parentNode;)t=t.parentNode;return t})(e);return r.getElementById(t)||((e,t=document)=>t.querySelector(e))(t,r)},Dt=new WeakMap,Ht={get(){let e=Dt.get(this);return e||(e=document.createElement(`${this.type}-script`),Dt.set(this,e),Yt(this)),e},set(e){"string"==typeof e?Dt.set(this,Nt(this,e)):(Dt.set(this,e),Yt(this))}},Ut=new WeakMap,qt=new Map,Xt=(e,t)=>{const r=e?.value;return r?t+r:""},zt=(e,t,r,n,s,o=e)=>{if(!qt.has(t)){const a={interpreter:xt(r,s),queue:He(),XWorker:Bt(e,n)};qt.set(t,a),qt.has(e)||qt.set(e,a),qt.has(o)||qt.set(o,a)}return qt.get(t)},Yt=async e=>{if(Ut.has(e)){const{target:t}=e;t&&(e.closest("head")?document.body.append(t):e.after(t))}else{const{attributes:{async:t,config:r,env:n,target:s,version:o},src:a,type:i}=e,c=o?.value,l=Mt(i,c);let u=Xt(r,"|");const f=Xt(n,"")||`${l}${u}`;u=u.slice(1);const p=Ct(e);if(p){const r=new(Bt(i,c))(p,{...Xe(e,i),async:!!t,config:u});return void Ut.set(Ce(e,"xworker",{value:r}),{xworker:r})}const d=Xt(s,""),h=zt(i,f,l,c,u);Ut.set(Ce(e,"target",Ht),h),d&&Dt.set(e,Nt(e,d));const g=a?fetch(a).then(Me):e.textContent;h.queue=h.queue.then((()=>(async(e,t,r,n)=>{const{type:s}=e,o=vt.get(s);o.experimental&&console.warn(`The ${s} interpreter is experimental`);const[a,i]=await De([Ut.get(e).interpreter,t]);try{Ce(document,"currentScript",{configurable:!0,get:()=>e}),o.registerJSModule(a,"polyscript",{XWorker:r}),ze(e,s,"ready");const t=o[n?"runAsync":"run"](a,i),c=ze.bind(null,e,s,"done");return n?t.then(c):c(),t}finally{delete document.currentScript}})(e,g,h.XWorker,!!t)))}},Gt=new Proxy(Ie(null),{get:(e,t)=>new Promise(queueMicrotask).then((()=>Kt(t)))}),Kt=async e=>{if(qt.has(e)){const{interpreter:t,queue:r}=qt.get(e);return(await De([t,r]))[0]}const t=qt.size?`Available interpreters are: ${[...qt.keys()].map((e=>`"${e}"`)).join(", ")}.`:"There are no interpreters in this page.";throw new Error(`The interpreter "${e}" was not found. ${t}`)},Qt=async e=>{const{type:r,currentTarget:n}=e;if(St.length)for(let{name:s,value:o,ownerElement:a}of t(`./@*[${St.map((e=>`name()="${e}${r}"`)).join(" or ")}]`,n)){s=s.slice(0,-(r.length+1));const t=await Kt(a.getAttribute(`${s}-env`)||s);vt.get(s).runEvent(t,o,e)}},Vt=e=>{if(St.length)for(let{name:r,ownerElement:n}of t(`.//@*[${St.map((e=>`starts-with(name(),"${e}")`)).join(" or ")}]`,e)){const e=r.lastIndexOf("-"),t=r.slice(e+1);"env"!==t&&(n.addEventListener(t,Qt),"disabled"in n&&!n.disabled&&(n.disabled=!0,Gt[r.slice(0,e)].then((()=>{n.disabled=!1}))))}},Zt=Bt(),er=[],tr=new Map,rr=new Map,nr=e=>{for(const t of er)if(e.matches(t)){const r=tr.get(t),n=sr.get(r),{resolve:s}=rr.get(r),{options:o,known:a}=n;if(!a.has(e)){a.add(e);const{interpreter:t,config:i,version:c,env:l,onerror:u,hooks:f}=o;let p;try{const n=Ct(e);if(n){const o=Zt.call(new Ft(null,f),n,{...Xe(e,r),version:c,type:t,custom:r,config:e.getAttribute("config")||i||{},async:e.hasAttribute("async")});return Ce(e,"xworker",{value:o}),void s({type:r,xworker:o})}}catch(e){p=e}const d=Mt(t,c),h=l||`${d}${i?`|${i}`:""}`,{interpreter:g,XWorker:y}=zt(r,h,d,c,i,t);g.then((o=>{const a=Ie(vt.get(t)),i=new Ft(o,f),c=function(...e){return y.apply(i,e)},l={...Ye(a,r,structuredClone($t.get(d)),o),XWorker:c};a.registerJSModule(o,"polyscript",{XWorker:c});for(const t of["Run","RunAsync"]){const r=Ge(a,`r${t.slice(1)}`);let n,s,o="",i="";for(const e of Ot){const r=f?.main?.[e];r&&e.endsWith(t)&&(e.startsWith("codeBefore")?o=_e(r()):i=_e(r()))}i&&r(i,!1),o&&r(o,!0);for(let e=2;e<Wt.length;e++){const r=Wt[e],o=f?.main?.[r];o&&r.endsWith(t)&&(r.startsWith("onBefore")?n=o:s=o)}Rt(a,l,e,t.endsWith("Async"),n,s)}n.queue=n.queue.then((()=>(s(l),p&&u?.(p,e),f?.main?.onReady?.(l,e))))}))}}},sr=new Map;let or=0;const ar=e=>(rr.has(e)||rr.set(e,Promise.withResolvers()),rr.get(e).promise),[{define:ir,whenDefined:cr,env:lr,Hook:ur,XWorker:fr},pr]=((e,t,r=globalThis)=>{const n=Symbol.for(e),s=n in r;return[s?r[n]:Object.defineProperty(r,n,{value:t})[n],s]})("polyscript",{define:(t,r)=>{let n=null==t;if(n)t="_ps"+or++;else if(vt.has(t)||sr.has(t))throw new Error(`<script type="${t}"> already registered`);if(!vt.has(r?.interpreter))throw new Error("Unspecified interpreter");vt.set(t,vt.get(r.interpreter));const s=[`script[type="${t}"]`];if(ar(t),n){const{hooks:e}=r,n=e?.main?.onReady;r={...r,hooks:{...e,main:{...e?.main,onReady(e,r){er.splice(er.indexOf(t),1),vt.delete(t),sr.delete(t),rr.delete(t),r.remove(),n?.(e)}}}},document.head.append(Je(document.createElement("script"),{type:t}))}else s.push(`${t}-script`),St.push(`${t}-`);for(const e of s)tr.set(e,t);er.push(...s),sr.set(t,{options:Je({env:t},r),known:new WeakSet,queue:Promise.resolve()}),n||Vt(document),e(s.join(",")).forEach(nr)},whenDefined:ar,env:Gt,Hook:Ft,XWorker:Zt});if(!pr){const t=new MutationObserver((e=>{const t=Et.join(",");for(const{type:n,target:s,attributeName:o,addedNodes:a}of e)if("attributes"!==n)for(const e of a)1===e.nodeType&&(Vt(e),t&&e.matches(t)?Yt(e):r(t,e,!0));else{const e=o.lastIndexOf("-")+1;if(e){const t=o.slice(0,e);for(const r of St)if(t===r){const t=o.slice(e);if("env"!==t){const e=s.hasAttribute(o)?"add":"remove";s[`${e}EventListener`](t,Qt)}break}}}})),r=(t,r,n)=>{t&&e(t,r).forEach(Yt),(t=er.join(","))&&(n&&nr(r),e(t,r).forEach(nr))},n=e=>(t.observe(e,{childList:!0,subtree:!0,attributes:!0}),e),{attachShadow:s}=Element.prototype;Je(Element.prototype,{attachShadow(e){return n(s.call(this,e))}}),queueMicrotask((()=>{Vt(n(document)),r(Et.join(","),document,!1)}))}export{ur as Hook,Jt as INVALID_CONTENT,It as INVALID_SRC_ATTR,Lt as INVALID_WORKER_ATTR,fr as XWorker,ir as define,lr as env,cr as whenDefined}; | ||
//# sourceMappingURL=core.js.map |
/* c8 ignore next */ | ||
export default () => new Worker(URL.createObjectURL(new Blob(["const e=\"object\"==typeof self?self:globalThis,t=t=>((t,r)=>{const n=(e,r)=>(t.set(r,e),e),s=o=>{if(t.has(o))return t.get(o);const[a,i]=r[o];switch(a){case 0:case-1:return n(i,o);case 1:{const e=n([],o);for(const t of i)e.push(s(t));return e}case 2:{const e=n({},o);for(const[t,r]of i)e[s(t)]=s(r);return e}case 3:return n(new Date(i),o);case 4:{const{source:e,flags:t}=i;return n(new RegExp(e,t),o)}case 5:{const e=n(new Map,o);for(const[t,r]of i)e.set(s(t),s(r));return e}case 6:{const e=n(new Set,o);for(const t of i)e.add(s(t));return e}case 7:{const{name:t,message:r}=i;return n(new e[t](r),o)}case 8:return n(BigInt(i),o);case\"BigInt\":return n(Object(BigInt(i)),o)}return n(new e[a](i),o)};return s})(new Map,t)(0),r=\"\",{toString:n}={},{keys:s}=Object,o=e=>{const t=typeof e;if(\"object\"!==t||!e)return[0,t];const s=n.call(e).slice(8,-1);switch(s){case\"Array\":return[1,r];case\"Object\":return[2,r];case\"Date\":return[3,r];case\"RegExp\":return[4,r];case\"Map\":return[5,r];case\"Set\":return[6,r]}return s.includes(\"Array\")?[1,s]:s.includes(\"Error\")?[7,s]:[2,s]},a=([e,t])=>0===e&&(\"function\"===t||\"symbol\"===t),i=(e,{json:t,lossy:r}={})=>{const n=[];return((e,t,r,n)=>{const i=(e,t)=>{const s=n.push(e)-1;return r.set(t,s),s},c=n=>{if(r.has(n))return r.get(n);let[l,u]=o(n);switch(l){case 0:{let t=n;switch(u){case\"bigint\":l=8,t=n.toString();break;case\"function\":case\"symbol\":if(e)throw new TypeError(\"unable to serialize \"+u);t=null;break;case\"undefined\":return i([-1],n)}return i([l,t],n)}case 1:{if(u)return i([u,[...n]],n);const e=[],t=i([l,e],n);for(const t of n)e.push(c(t));return t}case 2:{if(u)switch(u){case\"BigInt\":return i([u,n.toString()],n);case\"Boolean\":case\"Number\":case\"String\":return i([u,n.valueOf()],n)}if(t&&\"toJSON\"in n)return c(n.toJSON());const r=[],f=i([l,r],n);for(const t of s(n))!e&&a(o(n[t]))||r.push([c(t),c(n[t])]);return f}case 3:return i([l,n.toISOString()],n);case 4:{const{source:e,flags:t}=n;return i([l,{source:e,flags:t}],n)}case 5:{const t=[],r=i([l,t],n);for(const[r,s]of n)(e||!a(o(r))&&!a(o(s)))&&t.push([c(r),c(s)]);return r}case 6:{const t=[],r=i([l,t],n);for(const r of n)!e&&a(o(r))||t.push(c(r));return r}}const{message:f}=n;return i([l,{name:u,message:f}],n)};return c})(!(t||r),!!t,new Map,n)(e),n},{parse:c,stringify:l}=JSON,u={json:!0,lossy:!0};var f=Object.freeze({__proto__:null,parse:e=>t(c(e)),stringify:e=>l(i(e,u))});const p=\"49775373-4961-44cd-9a4b-651a0c9cca5a\",d=\"M\"+p,y=\"T\"+p,h=\"object\",g=\"function\",w=\"number\",m=\"string\",b=\"undefined\",v=\"symbol\";var $=e=>({value:new Promise((t=>{let r=new Worker(\"data:application/javascript,onmessage%3D(%7Bdata%3Ab%7D)%3D%3E(Atomics.wait(b%2C0)%2CpostMessage(0))\");r.onmessage=t,r.postMessage(e)}))})\n/*! (c) Andrea Giammarchi - ISC */;const{Int32Array:S,Map:E,SharedArrayBuffer:A,Uint16Array:P}=globalThis,{BYTES_PER_ELEMENT:j}=S,{BYTES_PER_ELEMENT:M}=P,{isArray:k}=Array,{notify:x,wait:T,waitAsync:_}=Atomics,{fromCharCode:O}=String,W=new WeakSet,F=new WeakMap,R={value:{then:e=>e()}};let B=0;const J=(e,{parse:t=JSON.parse,stringify:r=JSON.stringify,transform:n,interrupt:s}=JSON)=>{if(!F.has(e)){const o=(t,...r)=>e.postMessage({[p]:r},{transfer:t}),a=typeof s===g?s:s?.handler,i=s?.delay||42,c=(e,t)=>e?(_||$)(t,0):(a?((e,t,r)=>{for(;\"timed-out\"===T(e,0,0,t);)r()})(t,i,a):T(t,0),R);let l=!1;F.set(e,new Proxy(new E,{has:(e,t)=>\"string\"==typeof t&&!t.startsWith(\"_\"),get:(r,s)=>\"then\"===s?null:(...r)=>{const a=B++;let i=new S(new A(2*j)),u=[];W.has(r.at(-1)||u)&&W.delete(u=r.pop()),o(u,a,i,s,n?r.map(n):r);const f=e!==globalThis;let p=0;return l&&f&&(p=setTimeout(console.warn,1e3,`💀🔒 - Possible deadlock if proxy.${s}(...args) is awaited`)),c(f,i).value.then((()=>{clearTimeout(p);const e=i[1];if(!e)return;const r=M*e;return i=new S(new A(r+r%j)),o([],a,i),c(f,i).value.then((()=>{const r=new P(i.buffer).slice(0,e),n=[];for(let t=0;t<e;t+=2048)n.push(O(...r.slice(t,t+2048)));return t(n.join(\"\"))}))}))},set(t,s,o){const a=typeof o;if(a!==g)throw new Error(`Unable to assign ${s} as ${a}`);if(!t.size){const s=new E;e.addEventListener(\"message\",(async e=>{const o=e.data?.[p];if(k(o)){e.stopImmediatePropagation();const[a,i,...c]=o;let u;if(c.length){const[e,o]=c;if(t.has(e)){l=!0;try{const c=await t.get(e)(...o);if(void 0!==c){const e=r(n?n(c):c);s.set(a,e),i[1]=e.length}}catch(e){u=e}finally{l=!1}}else u=new Error(`Unsupported action: ${e}`);i[0]=1}else{const e=s.get(a);s.delete(a);for(let t=new P(i.buffer),r=0;r<e.length;r++)t[r]=e.charCodeAt(r)}if(x(i,0),u)throw u}}))}return!!t.set(s,o)}}))}return F.get(e)};J.transfer=(...e)=>(W.add(e),e);const I=new FinalizationRegistry((([e,t,r])=>{r&&console.debug(`Held value ${String(t)} not relevant anymore`),e(t)})),C=Object.create(null),L=(e,t,{debug:r,return:n,token:s=e}=C)=>{const o=n||new Proxy(e,C),a=[o,[t,e,!!r]];return!1!==s&&a.push(s),I.register(...a),o},{defineProperty:D,getOwnPropertyDescriptor:H,getPrototypeOf:N,isExtensible:U,ownKeys:z,preventExtensions:q,set:K,setPrototypeOf:Y}=Reflect,{assign:G,create:V}=Object,Q=N(Int8Array),X=\"isArray\",Z=(e,t)=>{const{get:r,set:n,value:s}=e;return r&&(e.get=t(r)),n&&(e.set=t(n)),s&&(e.value=t(s)),e},ee=(e,t)=>[e,t],te=e=>t=>{const r=typeof t;switch(r){case h:if(null==t)return ee(\"null\",t);if(t===globalThis)return ee(h,null);case g:return e(r,t);case\"boolean\":case w:case m:case b:case\"bigint\":return ee(r,t);case v:if(re.has(t))return ee(r,re.get(t))}throw new Error(`Unable to handle this ${r} type`)},re=new Map(z(Symbol).filter((e=>typeof Symbol[e]===v)).map((e=>[Symbol[e],e]))),ne=e=>{for(const[t,r]of re)if(r===e)return t},se=e=>e;function oe(){return this}const ae=\"apply\",ie=\"construct\",ce=\"defineProperty\",le=\"deleteProperty\",ue=\"get\",fe=\"getOwnPropertyDescriptor\",pe=\"getPrototypeOf\",de=\"has\",ye=\"isExtensible\",he=\"ownKeys\",ge=\"preventExtensions\",we=\"set\",me=\"setPrototypeOf\",be=\"delete\";var ve=((e,t)=>{const r=t&&new WeakMap;if(t){const{addEventListener:e}=EventTarget.prototype;D(EventTarget.prototype,\"addEventListener\",{value(t,n,...s){return s.at(0)?.invoke&&(r.has(this)||r.set(this,new Map),r.get(this).set(t,[].concat(s[0].invoke)),delete s[0].invoke),e.call(this,t,n,...s)}})}const n=t&&(e=>{const{currentTarget:t,target:n,type:s}=e;for(const o of r.get(t||n)?.get(s)||[])e[o]()});return function(r,s,o,...a){let i=0,c=this?.transform||se;const l=new Map,u=new Map,{[o]:f}=r,p=a.length?G(V(globalThis),...a):globalThis,d=te(((e,t)=>{if(!l.has(t)){let r;for(;u.has(r=i++););l.set(t,r),u.set(r,e===h?c(t):t)}return ee(e,l.get(t))})),y=e=>{f(be,ee(m,e))},$=([e,r])=>{switch(e){case h:if(null==r)return p;if(typeof r===w)return u.get(r);if(!(r instanceof Q))for(const e in r)r[e]=$(r[e]);return r;case g:if(typeof r===m){if(!u.has(r)){const e=function(...e){return t&&e.at(0)instanceof Event&&n(...e),f(ae,ee(g,r),d(this),e.map(d))};return u.set(r,new WeakRef(e)),L(r,y,{return:e,token:!1})}return u.get(r).deref()}return u.get(r);case v:return ne(r)}return r},S={[ae]:(e,t,r)=>d(e.apply(t,r)),[ie]:(e,t)=>d(new e(...t)),[ce]:(e,t,r)=>d(D(e,t,r)),[le]:(e,t)=>d(delete e[t]),[pe]:e=>d(N(e)),[ue]:(e,t)=>d(e[t]),[fe]:(e,t)=>{const r=H(e,t);return r?ee(h,Z(r,d)):ee(b,r)},[de]:(e,t)=>d(t in e),[ye]:e=>d(U(e)),[he]:e=>ee(h,z(e).map(d)),[ge]:e=>d(q(e)),[we]:(e,t,r)=>d(K(e,t,r)),[me]:(e,t)=>d(Y(e,t)),[be](e){l.delete(u.get(e)),u.delete(e)}};return r[s]=(e,t,...r)=>{switch(e){case ae:r[0]=$(r[0]),r[1]=r[1].map($);break;case ie:r[0]=r[0].map($);break;case ce:{const[e,t]=r;r[0]=$(e);const{get:n,set:s,value:o}=t;n&&(t.get=$(n)),s&&(t.set=$(s)),o&&(t.value=$(o));break}default:r=r.map($)}return S[e]($(t),...r)},{proxy:r,[e.toLowerCase()]:p,[`is${e}Proxy`]:()=>!1}}})(\"Window\",!0),$e=(e=>{let t=0;const r=new Map,n=new Map,s=Symbol(),o=e=>typeof e===g?e():e,a=e=>typeof e===h&&!!e&&s in e,i=Array[X];return function(c,l,u){const f=this?.transform||se,{[l]:p}=c,d=new Map,y=e=>{d.delete(e),p(be,b(e))},b=te(((e,a)=>{if(s in a)return o(a[s]);if(e===g){if(a=f(a),!n.has(a)){let e;for(;n.has(e=String(t++)););r.set(a,e),n.set(e,a)}return ee(e,r.get(a))}if(!(a instanceof Q)){e===h&&(a=f(a));for(const e in a)a[e]=b(a[e])}return ee(e,a)})),$=e=>{const[t,r]=e;if(!d.has(r)){const n=t===g?oe.bind(e):e,s=new Proxy(n,A);return d.set(r,new WeakRef(s)),L(r,y,{return:s,token:!1})}return d.get(r).deref()},S=e=>{const[t,r]=e;switch(t){case h:return null===r?globalThis:typeof r===w?$(e):r;case g:return typeof r===m?n.get(r):$(e);case v:return ne(r)}return r},E=(e,t,...r)=>S(p(e,o(t),...r)),A={[ae]:(e,t,r)=>E(ae,e,b(t),r.map(b)),[ie]:(e,t)=>E(ie,e,t.map(b)),[ce]:(e,t,r)=>{const{get:n,set:s,value:o}=r;return typeof n===g&&(r.get=b(n)),typeof s===g&&(r.set=b(s)),typeof o===g&&(r.value=b(o)),E(ce,e,b(t),r)},[le]:(e,t)=>E(le,e,b(t)),[pe]:e=>E(pe,e),[ue]:(e,t)=>t===s?e:E(ue,e,b(t)),[fe]:(e,t)=>{const r=E(fe,e,b(t));return r&&Z(r,S)},[de]:(e,t)=>t===s||E(de,e,b(t)),[ye]:e=>E(ye,e),[he]:e=>E(he,e).map(S),[ge]:e=>E(ge,e),[we]:(e,t,r)=>E(we,e,b(t),b(r)),[me]:(e,t)=>E(me,e,b(t))};c[u]=(e,t,s,o)=>{switch(e){case ae:return S(t).apply(S(s),o.map(S));case be:{const e=S(t);r.delete(n.get(e)),n.delete(e)}}};const P=new Proxy([h,null],A),j=P.Array[X];return D(Array,X,{value:e=>a(e)?j(e):i(e)}),{[e.toLowerCase()]:P,[`is${e}Proxy`]:a,proxy:c}}})(\"Window\"),Se=typeof Worker===g?Worker:class{};const Ee=new WeakMap,Ae=(e,...t)=>{const r=J(e,...t);if(!Ee.has(r)){const n=e instanceof Se?ve:$e;Ee.set(r,n.call(t.at(0),r,d,y))}return Ee.get(r)};Ae.transfer=J.transfer;const Pe={object(...e){return this.string(function(e){for(var t=e[0],r=1,n=arguments.length;r<n;r++)t+=arguments[r]+e[r];return t}(...e))},string(e){for(const t of e.split(/[\\r\\n]+/))if(t.trim().length){/^(\\s+)/.test(t)&&(e=e.replace(new RegExp(\"^\"+RegExp.$1,\"gm\"),\"\"));break}return e}},je=(e,...t)=>Pe[typeof e](e,...t);Promise.withResolvers||(Promise.withResolvers=function(){var e,t,r=new this((function(r,n){e=r,t=n}));return{resolve:e,reject:t,promise:r}});const Me=e=>e.arrayBuffer(),ke=e=>e.json(),xe=e=>e.text(),Te=new WeakMap,_e=e=>{const t=e||console,r={stderr:(t.stderr||console.error).bind(t),stdout:(t.stdout||console.log).bind(t)};return{stderr:(...e)=>r.stderr(...e),stdout:(...e)=>r.stdout(...e),async get(e){const t=await e;return Te.set(t,r),t}}},Oe=({FS:e,PATH:t,PATH_FS:r},n,s)=>{const o=r.resolve(n);return e.mkdirTree(t.dirname(o)),e.writeFile(o,new Uint8Array(s),{canOwn:!0})},We=e=>{const t=e.split(\"/\");return t.pop(),t.join(\"/\")},Fe=(e,t)=>{const r=[];for(const n of t.split(\"/\"))\".\"!==n&&(r.push(n),n&&e.mkdir(r.join(\"/\")))},Re=(e,t)=>{const r=[];for(const e of t.split(\"/\"))switch(e){case\"\":case\".\":break;case\"..\":r.pop();break;default:r.push(e)}return[e.cwd()].concat(r).join(\"/\").replace(/^\\/+/,\"/\")},Be=e=>{const t=e.map((e=>e.trim().replace(/(^[/]*|[/]*$)/g,\"\"))).filter((e=>\"\"!==e&&\".\"!==e)).join(\"/\");return e[0].startsWith(\"/\")?`/${t}`:t},Je=(e,t)=>fetch(Qe(t,Ie.get(e))),Ie=new WeakMap,Ce=(e,t,r)=>Ge((e=>{for(const{files:t,to_file:r,from:n=\"\"}of e){if(void 0!==t&&void 0!==r)throw new Error(\"Cannot use 'to_file' and 'files' parameters together!\");if(void 0===t&&void 0===r&&n.endsWith(\"/\"))throw new Error(`Couldn't determine the filename from the path ${n}, please supply 'to_file' parameter.`)}return e.flatMap((({from:e=\"\",to_folder:t=\".\",to_file:r,files:n})=>{if(Ne(n))return n.map((r=>({url:Be([e,r]),path:Be([t,r])})));const s=r||e.slice(1+e.lastIndexOf(\"/\"));return[{url:e,path:Be([t,s])}]}))})(r).map((({url:n,path:s})=>Je(r,n).then(Me).then((r=>e.writeFile(t,s,r)))))),Le=(e,t)=>t.endsWith(\"/\")?`${t}${e.split(\"/\").pop()}`:t,De=(e,t)=>e.replace(/\\{.+?\\}/g,(e=>{if(!t.has(e))throw new SyntaxError(`Invalid template: ${e}`);return t.get(e)})),He=(e,t,r)=>Ge((e=>{const t=new Map,r=new Set,n=[];for(const[s,o]of Object.entries(e))if(/^\\{.+\\}$/.test(s)){if(t.has(s))throw new SyntaxError(`Duplicated template: ${s}`);t.set(s,De(o,t))}else{const e=De(s,t),a=Le(e,De(o||\"./\",t));if(r.has(a))throw new SyntaxError(`Duplicated destination: ${a}`);r.add(a),n.push({url:e,path:a})}return n})(r).map((({url:n,path:s})=>Je(r,n).then(Me).then((r=>e.writeFile(t,s,r)))))),{isArray:Ne}=Array,{assign:Ue,create:ze,defineProperties:qe,defineProperty:Ke,entries:Ye}=Object,{all:Ge,resolve:Ve}=new Proxy(Promise,{get:(e,t)=>e[t].bind(e)}),Qe=(e,t=location.href)=>new URL(e,t.replace(/^blob:/,\"\")).href,Xe=(e,t,r,n=!1,s=CustomEvent)=>{e.dispatchEvent(new s(`${t}:${r}`,{bubbles:!0,detail:{worker:n}}))},Ze=e=>Function(`'use strict';return (${e})`)(),et=(e,t,r)=>{e.registerJsModule(t,r)},tt=(e,t,...r)=>{try{return e.runPython(je(t),...r)}catch(t){Te.get(e).stderr(t)}},rt=async(e,t,...r)=>{try{return await e.runPythonAsync(je(t),...r)}catch(t){Te.get(e).stderr(t)}},nt=async(e,t,r)=>{const[n,...s]=t.split(\".\");let o,a=e.globals.get(n);for(const e of s)[o,a]=[a,a[e]];try{await a.call(o,r)}catch(t){Te.get(e).stderr(t)}};var st={type:\"micropython\",module:(e=\"1.20.0-297\")=>`https://cdn.jsdelivr.net/npm/@micropython/micropython-webassembly-pyscript@${e}/micropython.mjs`,async engine({loadMicroPython:e},t,r){const{stderr:n,stdout:s,get:o}=_e();r=r.replace(/\\.m?js$/,\".wasm\");const a=await o(e({stderr:n,stdout:s,url:r}));return t.files&&await He(this,a,t.files),t.fetch&&await Ce(this,a,t.fetch),a},registerJSModule:et,run:tt,runAsync:rt,runEvent:nt,transform:(e,t)=>t,writeFile:({FS:e,_module:{PATH:t,PATH_FS:r}},n,s)=>Oe({FS:e,PATH:t,PATH_FS:r},n,s)};const ot={dict_converter:Object.fromEntries};var at={type:\"pyodide\",module:(e=\"0.24.1\")=>`https://cdn.jsdelivr.net/pyodide/v${e}/full/pyodide.mjs`,async engine({loadPyodide:e},t,r){const{stderr:n,stdout:s,get:o}=_e(),a=r.slice(0,r.lastIndexOf(\"/\")),i=await o(e({stderr:n,stdout:s,indexURL:a}));if(t.files&&await He(this,i,t.files),t.fetch&&await Ce(this,i,t.fetch),t.packages){await i.loadPackage(\"micropip\");const e=await i.pyimport(\"micropip\");await e.install(t.packages),e.destroy()}return i},registerJSModule:et,run:tt,runAsync:rt,runEvent:nt,transform:(e,t)=>t instanceof e.ffi.PyProxy?t.toJs(ot):t,writeFile:({FS:e,PATH:t,_module:{PATH_FS:r}},n,s)=>Oe({FS:e,PATH:t,PATH_FS:r},n,s)};const it=\"ruby-wasm-wasi\",ct=it.replace(/\\W+/g,\"_\");var lt={type:it,experimental:!0,module:(e=\"2.1.0\")=>`https://cdn.jsdelivr.net/npm/ruby-3_2-wasm-wasi@${e}/dist/browser.esm.js`,async engine({DefaultRubyVM:e},t,r){const n=await fetch(`${r.slice(0,r.lastIndexOf(\"/\"))}/ruby.wasm`),s=await WebAssembly.compile(await n.arrayBuffer()),{vm:o}=await e(s);return t.files&&await He(this,o,t.files),t.fetch&&await Ce(this,o,t.fetch),o},registerJSModule(e,t,r){const n=`__module_${ct}_${t}`;globalThis[n]=r,this.run(e,`require \"js\";$${t}=JS.global[:${n}]`),delete globalThis[n]},run:(e,t,...r)=>e.eval(je(t),...r),runAsync:(e,t,...r)=>e.evalAsync(je(t),...r),async runEvent(e,t,r){if(/^xworker\\.(on\\w+)$/.test(t)){const{$1:t}=RegExp,n=`__module_${ct}_event`;globalThis[n]=r,this.run(e,`require \"js\";$xworker.call(\"${t}\",JS.global[:${n}])`),delete globalThis[n]}else{const n=this.run(e,`method(:${t})`);await n.call(t,e.wrap(r))}},transform:(e,t)=>t,writeFile:()=>{throw new Error(`writeFile is not supported in ${it}`)}};var ut={type:\"wasmoon\",module:(e=\"1.15.0\")=>`https://cdn.jsdelivr.net/npm/wasmoon@${e}/+esm`,async engine({LuaFactory:e,LuaLibraries:t},r){const{stderr:n,stdout:s,get:o}=_e(),a=await o((new e).createEngine());return a.global.getTable(t.Base,(e=>{a.global.setField(e,\"print\",s),a.global.setField(e,\"printErr\",n)})),r.files&&await He(this,a,r.files),r.fetch&&await Ce(this,a,r.fetch),a},registerJSModule:(e,t,r)=>{e.global.set(t,r)},run:(e,t,...r)=>{try{return e.doStringSync(je(t),...r)}catch(t){Te.get(e).stderr(t)}},runAsync:async(e,t,...r)=>{try{return await e.doString(je(t),...r)}catch(t){Te.get(e).stderr(t)}},runEvent:async(e,t,r)=>{const[n,...s]=t.split(\".\");let o,a=e.global.get(n);for(const e of s)[o,a]=[a,a[e]];try{await a.call(o,r)}catch(t){Te.get(e).stderr(t)}},transform:(e,t)=>t,writeFile:({cmodule:{module:{FS:e}}},t,r)=>((e,t,r)=>(Fe(e,We(t)),t=Re(e,t),e.writeFile(t,new Uint8Array(r),{canOwn:!0})))(e,t,r)};const ft=new Map,pt=new Map,dt=new Proxy(new Map,{get(e,t){if(!e.has(t)){const[r,...n]=t.split(\"@\"),s=ft.get(r),o=/^https?:\\/\\//i.test(n)?n.join(\"@\"):s.module(...n);e.set(t,{url:o,module:import(o),engine:s.engine.bind(s)})}const{url:r,module:n,engine:s}=e.get(t);return(e,o)=>n.then((n=>{pt.set(t,e);for(const t of[\"files\",\"fetch\"]){const r=e?.[t];r&&Ie.set(r,o)}return s(n,e,r)}))}}),yt=e=>{for(const t of[].concat(e.type))ft.set(t,e)};for(const e of[st,at,lt,ut])yt(e);const ht=async e=>(await import(\"https://cdn.jsdelivr.net/npm/basic-toml@0.3.1/es.js\")).parse(e),gt=(e,t,r={})=>{if(t){const[e,n]=(e=>{let t=typeof e;return\"string\"===t&&/\\.(json|toml|txt)$/.test(e)?t=RegExp.$1:e=\"./config.txt\",[Qe(e),t]})(t);if(\"json\"===n)r=fetch(e).then(ke);else if(\"toml\"===n)r=fetch(e).then(xe).then(ht);else if(\"string\"===n)try{r=JSON.parse(t)}catch(e){r=ht(t)}else\"object\"===n&&t&&(r=t);t=e}return Ve(r).then((r=>dt[e](r,t)))},wt=\"BeforeRun\",mt=\"AfterRun\",bt=[`code${wt}`,`code${wt}Async`,`code${mt}`,`code${mt}Async`],vt=[\"onWorker\",\"onReady\",`on${wt}`,`on${wt}Async`,`on${mt}`,`on${mt}Async`],$t=(e,t,r,n,s,o)=>{if(s||o){const a=n?\"runAsync\":\"run\",i=e[a];e[a]=n?async function(e,n,...a){s&&await s.call(this,t,r);const c=await i.call(this,e,n,...a);return o&&await o.call(this,t,r),c}:function(e,n,...a){s&&s.call(this,t,r);const c=i.call(this,e,n,...a);return o&&o.call(this,t,r),c}}};try{new SharedArrayBuffer(4)}catch(e){throw new Error([\"Unable to use SharedArrayBuffer due insecure environment.\",\"Please read requirements in MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer#security_requirements\"].join(\"\\n\"))}let St,Et,At;const Pt=(e,t)=>{addEventListener(e,t||(async t=>{try{await St,Et(`xworker.on${e}`,t)}catch(e){postMessage(e)}}),!!t&&{once:!0})},{parse:jt,stringify:Mt}=f,{proxy:kt,window:xt,isWindowProxy:Tt}=Ae(self,{parse:jt,stringify:Mt,transform:e=>At?At(e):e}),_t={sync:kt,window:xt,isWindowProxy:Tt,onmessage:console.info,onerror:console.error,onmessageerror:console.warn,postMessage:postMessage.bind(self)};Pt(\"message\",(({data:{options:e,config:t,code:r,hooks:n}})=>{St=(async()=>{try{const{id:s,tag:o,type:a,custom:i,version:c,config:l,async:u}=e,f=await gt(((e,t=\"\")=>`${e}@${t}`.replace(/@$/,\"\"))(a,c),t,l),p=ze(ft.get(a)),d=((e,t,r,n)=>({type:t,config:r,interpreter:n,io:Te.get(n),run:(t,...r)=>e.run(n,t,...r),runAsync:(t,...r)=>e.runAsync(n,t,...r),runEvent:(...t)=>e.runEvent(n,...t)}))(p,a,l,f);let y=\"run\";if(u&&(y+=\"Async\"),n){const e=((e,t)=>(r,n)=>{const s=e[t].bind(e);e[t]=(e,t,...o)=>s(e,`${n?r:t}\\n${n?t:r}`,...o)})(p,y);let t,r,s=\"\",o=\"\";for(const e of bt){const t=n[e];if(t){const r=e.endsWith(\"Async\");(r&&u||!r&&!u)&&(e.startsWith(\"codeBefore\")?s=t:o=t)}}o&&e(o,!1),s&&e(s,!0);for(const e of vt.slice(2)){const s=n[e];if(s){const n=e.endsWith(\"Async\");if(n&&u||!n&&!u){const n=Ze(s);e.startsWith(\"onBefore\")?t=n:r=n}}}$t(p,d,_t,u,t,r)}const{CustomEvent:h,document:g}=xt,w=s&&g.getElementById(s)||null,m=e=>Xe(w,i||a,e,!0,h);let b=\"\";return p.registerJSModule(f,\"polyscript\",{xworker:_t,get target(){return!b&&w&&(\"SCRIPT\"===o?w.after(Ue(g.createElement(`script-${i||a}`),{id:b=`${s}-target`})):(b=s,w.replaceChildren(),w.style.display=\"block\")),b}}),Et=p.runEvent.bind(p,f),At=p.transform.bind(p,f),w&&m(\"ready\"),n?.onReady&&Ze(n?.onReady).call(p,d,_t),await p[y](f,r),w&&m(\"done\"),f}catch(e){postMessage(e)}})(),Pt(\"error\"),Pt(\"message\"),Pt(\"messageerror\")}));\n"],{type:'application/javascript'})),{type:'module'}); | ||
export default () => new Worker(URL.createObjectURL(new Blob(["const e=\"object\"==typeof self?self:globalThis,t=t=>((t,r)=>{const n=(e,r)=>(t.set(r,e),e),s=o=>{if(t.has(o))return t.get(o);const[a,i]=r[o];switch(a){case 0:case-1:return n(i,o);case 1:{const e=n([],o);for(const t of i)e.push(s(t));return e}case 2:{const e=n({},o);for(const[t,r]of i)e[s(t)]=s(r);return e}case 3:return n(new Date(i),o);case 4:{const{source:e,flags:t}=i;return n(new RegExp(e,t),o)}case 5:{const e=n(new Map,o);for(const[t,r]of i)e.set(s(t),s(r));return e}case 6:{const e=n(new Set,o);for(const t of i)e.add(s(t));return e}case 7:{const{name:t,message:r}=i;return n(new e[t](r),o)}case 8:return n(BigInt(i),o);case\"BigInt\":return n(Object(BigInt(i)),o)}return n(new e[a](i),o)};return s})(new Map,t)(0),r=\"\",{toString:n}={},{keys:s}=Object,o=e=>{const t=typeof e;if(\"object\"!==t||!e)return[0,t];const s=n.call(e).slice(8,-1);switch(s){case\"Array\":return[1,r];case\"Object\":return[2,r];case\"Date\":return[3,r];case\"RegExp\":return[4,r];case\"Map\":return[5,r];case\"Set\":return[6,r]}return s.includes(\"Array\")?[1,s]:s.includes(\"Error\")?[7,s]:[2,s]},a=([e,t])=>0===e&&(\"function\"===t||\"symbol\"===t),i=(e,{json:t,lossy:r}={})=>{const n=[];return((e,t,r,n)=>{const i=(e,t)=>{const s=n.push(e)-1;return r.set(t,s),s},c=n=>{if(r.has(n))return r.get(n);let[l,u]=o(n);switch(l){case 0:{let t=n;switch(u){case\"bigint\":l=8,t=n.toString();break;case\"function\":case\"symbol\":if(e)throw new TypeError(\"unable to serialize \"+u);t=null;break;case\"undefined\":return i([-1],n)}return i([l,t],n)}case 1:{if(u)return i([u,[...n]],n);const e=[],t=i([l,e],n);for(const t of n)e.push(c(t));return t}case 2:{if(u)switch(u){case\"BigInt\":return i([u,n.toString()],n);case\"Boolean\":case\"Number\":case\"String\":return i([u,n.valueOf()],n)}if(t&&\"toJSON\"in n)return c(n.toJSON());const r=[],f=i([l,r],n);for(const t of s(n))!e&&a(o(n[t]))||r.push([c(t),c(n[t])]);return f}case 3:return i([l,n.toISOString()],n);case 4:{const{source:e,flags:t}=n;return i([l,{source:e,flags:t}],n)}case 5:{const t=[],r=i([l,t],n);for(const[r,s]of n)(e||!a(o(r))&&!a(o(s)))&&t.push([c(r),c(s)]);return r}case 6:{const t=[],r=i([l,t],n);for(const r of n)!e&&a(o(r))||t.push(c(r));return r}}const{message:f}=n;return i([l,{name:u,message:f}],n)};return c})(!(t||r),!!t,new Map,n)(e),n},{parse:c,stringify:l}=JSON,u={json:!0,lossy:!0};var f=Object.freeze({__proto__:null,parse:e=>t(c(e)),stringify:e=>l(i(e,u))});const p=\"49775373-4961-44cd-9a4b-651a0c9cca5a\",d=\"M\"+p,y=\"T\"+p,h=\"object\",g=\"function\",w=\"number\",m=\"string\",b=\"undefined\",v=\"symbol\";var $=e=>({value:new Promise((t=>{let r=new Worker(\"data:application/javascript,onmessage%3D(%7Bdata%3Ab%7D)%3D%3E(Atomics.wait(b%2C0)%2CpostMessage(0))\");r.onmessage=t,r.postMessage(e)}))})\n/*! (c) Andrea Giammarchi - ISC */;const{Int32Array:S,Map:E,SharedArrayBuffer:A,Uint16Array:P}=globalThis,{BYTES_PER_ELEMENT:j}=S,{BYTES_PER_ELEMENT:M}=P,{isArray:k}=Array,{notify:x,wait:T,waitAsync:_}=Atomics,{fromCharCode:O}=String,W=new WeakSet,F=new WeakMap,R={value:{then:e=>e()}};let B=0;const J=(e,{parse:t=JSON.parse,stringify:r=JSON.stringify,transform:n,interrupt:s}=JSON)=>{if(!F.has(e)){const o=(t,...r)=>e.postMessage({[p]:r},{transfer:t}),a=typeof s===g?s:s?.handler,i=s?.delay||42,c=(e,t)=>e?(_||$)(t,0):(a?((e,t,r)=>{for(;\"timed-out\"===T(e,0,0,t);)r()})(t,i,a):T(t,0),R);let l=!1;F.set(e,new Proxy(new E,{has:(e,t)=>\"string\"==typeof t&&!t.startsWith(\"_\"),get:(r,s)=>\"then\"===s?null:(...r)=>{const a=B++;let i=new S(new A(2*j)),u=[];W.has(r.at(-1)||u)&&W.delete(u=r.pop()),o(u,a,i,s,n?r.map(n):r);const f=e!==globalThis;let p=0;return l&&f&&(p=setTimeout(console.warn,1e3,`💀🔒 - Possible deadlock if proxy.${s}(...args) is awaited`)),c(f,i).value.then((()=>{clearTimeout(p);const e=i[1];if(!e)return;const r=M*e;return i=new S(new A(r+r%j)),o([],a,i),c(f,i).value.then((()=>{const r=new P(i.buffer).slice(0,e),n=[];for(let t=0;t<e;t+=2048)n.push(O(...r.slice(t,t+2048)));return t(n.join(\"\"))}))}))},set(t,s,o){const a=typeof o;if(a!==g)throw new Error(`Unable to assign ${s} as ${a}`);if(!t.size){const s=new E;e.addEventListener(\"message\",(async e=>{const o=e.data?.[p];if(k(o)){e.stopImmediatePropagation();const[a,i,...c]=o;let u;if(c.length){const[e,o]=c;if(t.has(e)){l=!0;try{const c=await t.get(e)(...o);if(void 0!==c){const e=r(n?n(c):c);s.set(a,e),i[1]=e.length}}catch(e){u=e}finally{l=!1}}else u=new Error(`Unsupported action: ${e}`);i[0]=1}else{const e=s.get(a);s.delete(a);for(let t=new P(i.buffer),r=0;r<e.length;r++)t[r]=e.charCodeAt(r)}if(x(i,0),u)throw u}}))}return!!t.set(s,o)}}))}return F.get(e)};J.transfer=(...e)=>(W.add(e),e);const I=new FinalizationRegistry((([e,t,r])=>{r&&console.debug(`Held value ${String(t)} not relevant anymore`),e(t)})),C=Object.create(null),L=(e,t,{debug:r,return:n,token:s=e}=C)=>{const o=n||new Proxy(e,C),a=[o,[t,e,!!r]];return!1!==s&&a.push(s),I.register(...a),o},{defineProperty:D,getOwnPropertyDescriptor:H,getPrototypeOf:N,isExtensible:U,ownKeys:z,preventExtensions:q,set:K,setPrototypeOf:Y}=Reflect,{assign:G,create:V}=Object,Q=N(Int8Array),X=\"isArray\",Z=(e,t)=>{const{get:r,set:n,value:s}=e;return r&&(e.get=t(r)),n&&(e.set=t(n)),s&&(e.value=t(s)),e},ee=(e,t)=>[e,t],te=e=>t=>{const r=typeof t;switch(r){case h:if(null==t)return ee(\"null\",t);if(t===globalThis)return ee(h,null);case g:return e(r,t);case\"boolean\":case w:case m:case b:case\"bigint\":return ee(r,t);case v:if(re.has(t))return ee(r,re.get(t))}throw new Error(`Unable to handle this ${r} type`)},re=new Map(z(Symbol).filter((e=>typeof Symbol[e]===v)).map((e=>[Symbol[e],e]))),ne=e=>{for(const[t,r]of re)if(r===e)return t},se=e=>e;function oe(){return this}const ae=\"apply\",ie=\"construct\",ce=\"defineProperty\",le=\"deleteProperty\",ue=\"get\",fe=\"getOwnPropertyDescriptor\",pe=\"getPrototypeOf\",de=\"has\",ye=\"isExtensible\",he=\"ownKeys\",ge=\"preventExtensions\",we=\"set\",me=\"setPrototypeOf\",be=\"delete\";var ve=((e,t)=>{const r=t&&new WeakMap;if(t){const{addEventListener:e}=EventTarget.prototype;D(EventTarget.prototype,\"addEventListener\",{value(t,n,...s){return s.at(0)?.invoke&&(r.has(this)||r.set(this,new Map),r.get(this).set(t,[].concat(s[0].invoke)),delete s[0].invoke),e.call(this,t,n,...s)}})}const n=t&&(e=>{const{currentTarget:t,target:n,type:s}=e;for(const o of r.get(t||n)?.get(s)||[])e[o]()});return function(r,s,o,...a){let i=0,c=this?.transform||se;const l=new Map,u=new Map,{[o]:f}=r,p=a.length?G(V(globalThis),...a):globalThis,d=te(((e,t)=>{if(!l.has(t)){let r;for(;u.has(r=i++););l.set(t,r),u.set(r,e===h?c(t):t)}return ee(e,l.get(t))})),y=e=>{f(be,ee(m,e))},$=([e,r])=>{switch(e){case h:if(null==r)return p;if(typeof r===w)return u.get(r);if(!(r instanceof Q))for(const e in r)r[e]=$(r[e]);return r;case g:if(typeof r===m){if(!u.has(r)){const e=function(...e){return t&&e.at(0)instanceof Event&&n(...e),f(ae,ee(g,r),d(this),e.map(d))};return u.set(r,new WeakRef(e)),L(r,y,{return:e,token:!1})}return u.get(r).deref()}return u.get(r);case v:return ne(r)}return r},S={[ae]:(e,t,r)=>d(e.apply(t,r)),[ie]:(e,t)=>d(new e(...t)),[ce]:(e,t,r)=>d(D(e,t,r)),[le]:(e,t)=>d(delete e[t]),[pe]:e=>d(N(e)),[ue]:(e,t)=>d(e[t]),[fe]:(e,t)=>{const r=H(e,t);return r?ee(h,Z(r,d)):ee(b,r)},[de]:(e,t)=>d(t in e),[ye]:e=>d(U(e)),[he]:e=>ee(h,z(e).map(d)),[ge]:e=>d(q(e)),[we]:(e,t,r)=>d(K(e,t,r)),[me]:(e,t)=>d(Y(e,t)),[be](e){l.delete(u.get(e)),u.delete(e)}};return r[s]=(e,t,...r)=>{switch(e){case ae:r[0]=$(r[0]),r[1]=r[1].map($);break;case ie:r[0]=r[0].map($);break;case ce:{const[e,t]=r;r[0]=$(e);const{get:n,set:s,value:o}=t;n&&(t.get=$(n)),s&&(t.set=$(s)),o&&(t.value=$(o));break}default:r=r.map($)}return S[e]($(t),...r)},{proxy:r,[e.toLowerCase()]:p,[`is${e}Proxy`]:()=>!1}}})(\"Window\",!0),$e=(e=>{let t=0;const r=new Map,n=new Map,s=Symbol(),o=e=>typeof e===g?e():e,a=e=>typeof e===h&&!!e&&s in e,i=Array[X];return function(c,l,u){const f=this?.transform||se,{[l]:p}=c,d=new Map,y=e=>{d.delete(e),p(be,b(e))},b=te(((e,a)=>{if(s in a)return o(a[s]);if(e===g){if(a=f(a),!n.has(a)){let e;for(;n.has(e=String(t++)););r.set(a,e),n.set(e,a)}return ee(e,r.get(a))}if(!(a instanceof Q)){e===h&&(a=f(a));for(const e in a)a[e]=b(a[e])}return ee(e,a)})),$=e=>{const[t,r]=e;if(!d.has(r)){const n=t===g?oe.bind(e):e,s=new Proxy(n,A);return d.set(r,new WeakRef(s)),L(r,y,{return:s,token:!1})}return d.get(r).deref()},S=e=>{const[t,r]=e;switch(t){case h:return null===r?globalThis:typeof r===w?$(e):r;case g:return typeof r===m?n.get(r):$(e);case v:return ne(r)}return r},E=(e,t,...r)=>S(p(e,o(t),...r)),A={[ae]:(e,t,r)=>E(ae,e,b(t),r.map(b)),[ie]:(e,t)=>E(ie,e,t.map(b)),[ce]:(e,t,r)=>{const{get:n,set:s,value:o}=r;return typeof n===g&&(r.get=b(n)),typeof s===g&&(r.set=b(s)),typeof o===g&&(r.value=b(o)),E(ce,e,b(t),r)},[le]:(e,t)=>E(le,e,b(t)),[pe]:e=>E(pe,e),[ue]:(e,t)=>t===s?e:E(ue,e,b(t)),[fe]:(e,t)=>{const r=E(fe,e,b(t));return r&&Z(r,S)},[de]:(e,t)=>t===s||E(de,e,b(t)),[ye]:e=>E(ye,e),[he]:e=>E(he,e).map(S),[ge]:e=>E(ge,e),[we]:(e,t,r)=>E(we,e,b(t),b(r)),[me]:(e,t)=>E(me,e,b(t))};c[u]=(e,t,s,o)=>{switch(e){case ae:return S(t).apply(S(s),o.map(S));case be:{const e=S(t);r.delete(n.get(e)),n.delete(e)}}};const P=new Proxy([h,null],A),j=P.Array[X];return D(Array,X,{value:e=>a(e)?j(e):i(e)}),{[e.toLowerCase()]:P,[`is${e}Proxy`]:a,proxy:c}}})(\"Window\"),Se=typeof Worker===g?Worker:class{};const Ee=new WeakMap,Ae=(e,...t)=>{const r=J(e,...t);if(!Ee.has(r)){const n=e instanceof Se?ve:$e;Ee.set(r,n.call(t.at(0),r,d,y))}return Ee.get(r)};Ae.transfer=J.transfer;const Pe={object(...e){return this.string(function(e){for(var t=e[0],r=1,n=arguments.length;r<n;r++)t+=arguments[r]+e[r];return t}(...e))},string(e){for(const t of e.split(/[\\r\\n]+/))if(t.trim().length){/^(\\s+)/.test(t)&&(e=e.replace(new RegExp(\"^\"+RegExp.$1,\"gm\"),\"\"));break}return e}},je=(e,...t)=>Pe[typeof e](e,...t);Promise.withResolvers||(Promise.withResolvers=function(){var e,t,r=new this((function(r,n){e=r,t=n}));return{resolve:e,reject:t,promise:r}});const Me=e=>e.arrayBuffer(),ke=e=>e.json(),xe=e=>e.text(),Te=new WeakMap,_e=e=>{const t=e||console,r={stderr:(t.stderr||console.error).bind(t),stdout:(t.stdout||console.log).bind(t)};return{stderr:(...e)=>r.stderr(...e),stdout:(...e)=>r.stdout(...e),async get(e){const t=await e;return Te.set(t,r),t}}},Oe=({FS:e,PATH:t,PATH_FS:r},n,s)=>{const o=r.resolve(n);return e.mkdirTree(t.dirname(o)),e.writeFile(o,new Uint8Array(s),{canOwn:!0})},We=e=>{const t=e.split(\"/\");return t.pop(),t.join(\"/\")},Fe=(e,t)=>{const r=[];for(const n of t.split(\"/\"))\".\"!==n&&(r.push(n),n&&e.mkdir(r.join(\"/\")))},Re=(e,t)=>{const r=[];for(const e of t.split(\"/\"))switch(e){case\"\":case\".\":break;case\"..\":r.pop();break;default:r.push(e)}return[e.cwd()].concat(r).join(\"/\").replace(/^\\/+/,\"/\")},Be=e=>{const t=e.map((e=>e.trim().replace(/(^[/]*|[/]*$)/g,\"\"))).filter((e=>\"\"!==e&&\".\"!==e)).join(\"/\");return e[0].startsWith(\"/\")?`/${t}`:t},Je=(e,t)=>fetch(Qe(t,Ie.get(e))),Ie=new WeakMap,Ce=(e,t,r)=>Ge((e=>{for(const{files:t,to_file:r,from:n=\"\"}of e){if(void 0!==t&&void 0!==r)throw new Error(\"Cannot use 'to_file' and 'files' parameters together!\");if(void 0===t&&void 0===r&&n.endsWith(\"/\"))throw new Error(`Couldn't determine the filename from the path ${n}, please supply 'to_file' parameter.`)}return e.flatMap((({from:e=\"\",to_folder:t=\".\",to_file:r,files:n})=>{if(Ne(n))return n.map((r=>({url:Be([e,r]),path:Be([t,r])})));const s=r||e.slice(1+e.lastIndexOf(\"/\"));return[{url:e,path:Be([t,s])}]}))})(r).map((({url:n,path:s})=>Je(r,n).then(Me).then((r=>e.writeFile(t,s,r)))))),Le=(e,t)=>t.endsWith(\"/\")?`${t}${e.split(\"/\").pop()}`:t,De=(e,t)=>e.replace(/\\{.+?\\}/g,(e=>{if(!t.has(e))throw new SyntaxError(`Invalid template: ${e}`);return t.get(e)})),He=(e,t,r)=>Ge((e=>{const t=new Map,r=new Set,n=[];for(const[s,o]of Object.entries(e))if(/^\\{.+\\}$/.test(s)){if(t.has(s))throw new SyntaxError(`Duplicated template: ${s}`);t.set(s,De(o,t))}else{const e=De(s,t),a=Le(e,De(o||\"./\",t));if(r.has(a))throw new SyntaxError(`Duplicated destination: ${a}`);r.add(a),n.push({url:e,path:a})}return n})(r).map((({url:n,path:s})=>Je(r,n).then(Me).then((r=>e.writeFile(t,s,r)))))),{isArray:Ne}=Array,{assign:Ue,create:ze,defineProperties:qe,defineProperty:Ke,entries:Ye}=Object,{all:Ge,resolve:Ve}=new Proxy(Promise,{get:(e,t)=>e[t].bind(e)}),Qe=(e,t=location.href)=>new URL(e,t.replace(/^blob:/,\"\")).href,Xe=(e,t,r,n=!1,s=CustomEvent)=>{e.dispatchEvent(new s(`${t}:${r}`,{bubbles:!0,detail:{worker:n}}))},Ze=e=>Function(`'use strict';return (${e})`)(),et=(e,t,r)=>{e.registerJsModule(t,r)},tt=(e,t,...r)=>{try{return e.runPython(je(t),...r)}catch(t){Te.get(e).stderr(t)}},rt=async(e,t,...r)=>{try{return await e.runPythonAsync(je(t),...r)}catch(t){Te.get(e).stderr(t)}},nt=async(e,t,r)=>{const[n,...s]=t.split(\".\");let o,a=e.globals.get(n);for(const e of s)[o,a]=[a,a[e]];try{await a.call(o,r)}catch(t){Te.get(e).stderr(t)}};var st={type:\"micropython\",module:(e=\"1.20.0-297\")=>`https://cdn.jsdelivr.net/npm/@micropython/micropython-webassembly-pyscript@${e}/micropython.mjs`,async engine({loadMicroPython:e},t,r){const{stderr:n,stdout:s,get:o}=_e();r=r.replace(/\\.m?js$/,\".wasm\");const a=await o(e({stderr:n,stdout:s,url:r}));return t.files&&await He(this,a,t.files),t.fetch&&await Ce(this,a,t.fetch),a},registerJSModule:et,run:tt,runAsync:rt,runEvent:nt,transform:(e,t)=>t,writeFile:({FS:e,_module:{PATH:t,PATH_FS:r}},n,s)=>Oe({FS:e,PATH:t,PATH_FS:r},n,s)};const ot={dict_converter:Object.fromEntries};var at={type:\"pyodide\",module:(e=\"0.24.1\")=>`https://cdn.jsdelivr.net/pyodide/v${e}/full/pyodide.mjs`,async engine({loadPyodide:e},t,r){const{stderr:n,stdout:s,get:o}=_e(),a=r.slice(0,r.lastIndexOf(\"/\")),i=await o(e({stderr:n,stdout:s,indexURL:a}));if(t.files&&await He(this,i,t.files),t.fetch&&await Ce(this,i,t.fetch),t.packages){await i.loadPackage(\"micropip\");const e=await i.pyimport(\"micropip\");await e.install(t.packages),e.destroy()}return i},registerJSModule:et,run:tt,runAsync:rt,runEvent:nt,transform:(e,t)=>t instanceof e.ffi.PyProxy?t.toJs(ot):t,writeFile:({FS:e,PATH:t,_module:{PATH_FS:r}},n,s)=>Oe({FS:e,PATH:t,PATH_FS:r},n,s)};const it=\"ruby-wasm-wasi\",ct=it.replace(/\\W+/g,\"_\");var lt={type:it,experimental:!0,module:(e=\"2.1.0\")=>`https://cdn.jsdelivr.net/npm/ruby-3_2-wasm-wasi@${e}/dist/browser.esm.js`,async engine({DefaultRubyVM:e},t,r){const n=await fetch(`${r.slice(0,r.lastIndexOf(\"/\"))}/ruby.wasm`),s=await WebAssembly.compile(await n.arrayBuffer()),{vm:o}=await e(s);return t.files&&await He(this,o,t.files),t.fetch&&await Ce(this,o,t.fetch),o},registerJSModule(e,t,r){const n=`__module_${ct}_${t}`;globalThis[n]=r,this.run(e,`require \"js\";$${t}=JS.global[:${n}]`),delete globalThis[n]},run:(e,t,...r)=>e.eval(je(t),...r),runAsync:(e,t,...r)=>e.evalAsync(je(t),...r),async runEvent(e,t,r){if(/^xworker\\.(on\\w+)$/.test(t)){const{$1:t}=RegExp,n=`__module_${ct}_event`;globalThis[n]=r,this.run(e,`require \"js\";$xworker.call(\"${t}\",JS.global[:${n}])`),delete globalThis[n]}else{const n=this.run(e,`method(:${t})`);await n.call(t,e.wrap(r))}},transform:(e,t)=>t,writeFile:()=>{throw new Error(`writeFile is not supported in ${it}`)}};var ut={type:\"wasmoon\",module:(e=\"1.15.0\")=>`https://cdn.jsdelivr.net/npm/wasmoon@${e}/+esm`,async engine({LuaFactory:e,LuaLibraries:t},r){const{stderr:n,stdout:s,get:o}=_e(),a=await o((new e).createEngine());return a.global.getTable(t.Base,(e=>{a.global.setField(e,\"print\",s),a.global.setField(e,\"printErr\",n)})),r.files&&await He(this,a,r.files),r.fetch&&await Ce(this,a,r.fetch),a},registerJSModule:(e,t,r)=>{e.global.set(t,r)},run:(e,t,...r)=>{try{return e.doStringSync(je(t),...r)}catch(t){Te.get(e).stderr(t)}},runAsync:async(e,t,...r)=>{try{return await e.doString(je(t),...r)}catch(t){Te.get(e).stderr(t)}},runEvent:async(e,t,r)=>{const[n,...s]=t.split(\".\");let o,a=e.global.get(n);for(const e of s)[o,a]=[a,a[e]];try{await a.call(o,r)}catch(t){Te.get(e).stderr(t)}},transform:(e,t)=>t,writeFile:({cmodule:{module:{FS:e}}},t,r)=>((e,t,r)=>(Fe(e,We(t)),t=Re(e,t),e.writeFile(t,new Uint8Array(r),{canOwn:!0})))(e,t,r)};const ft=new Map,pt=new Map,dt=new Proxy(new Map,{get(e,t){if(!e.has(t)){const[r,...n]=t.split(\"@\"),s=ft.get(r),o=/^https?:\\/\\//i.test(n)?n.join(\"@\"):s.module(...n);e.set(t,{url:o,module:import(o),engine:s.engine.bind(s)})}const{url:r,module:n,engine:s}=e.get(t);return(e,o)=>n.then((n=>{pt.set(t,e);for(const t of[\"files\",\"fetch\"]){const r=e?.[t];r&&Ie.set(r,o)}return s(n,e,r)}))}}),yt=e=>{for(const t of[].concat(e.type))ft.set(t,e)};for(const e of[st,at,lt,ut])yt(e);const ht=async e=>(await import(\"https://cdn.jsdelivr.net/npm/basic-toml@0.3.1/es.js\")).parse(e),gt=(e,t,r={})=>{if(t){const[e,n]=(e=>{let t=typeof e;return\"string\"===t&&/\\.(json|toml|txt)$/.test(e)?t=RegExp.$1:e=\"./config.txt\",[Qe(e),t]})(t);if(\"json\"===n)r=fetch(e).then(ke);else if(\"toml\"===n)r=fetch(e).then(xe).then(ht);else if(\"string\"===n)try{r=JSON.parse(t)}catch(e){r=ht(t)}else\"object\"===n&&t&&(r=t);t=e}return Ve(r).then((r=>dt[e](r,t)))},wt=\"BeforeRun\",mt=\"AfterRun\",bt=[`code${wt}`,`code${wt}Async`,`code${mt}`,`code${mt}Async`],vt=[\"onWorker\",\"onReady\",`on${wt}`,`on${wt}Async`,`on${mt}`,`on${mt}Async`],$t=(e,t,r,n,s,o)=>{if(s||o){const a=n?\"runAsync\":\"run\",i=e[a];e[a]=n?async function(e,n,...a){s&&await s.call(this,t,r);const c=await i.call(this,e,n,...a);return o&&await o.call(this,t,r),c}:function(e,n,...a){s&&s.call(this,t,r);const c=i.call(this,e,n,...a);return o&&o.call(this,t,r),c}}};try{new SharedArrayBuffer(4)}catch(e){throw new Error([\"Unable to use SharedArrayBuffer due insecure environment.\",\"Please read requirements in MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/SharedArrayBuffer#security_requirements\"].join(\"\\n\"))}let St,Et,At;const Pt=(e,t)=>{addEventListener(e,t||(async t=>{try{await St,Et(`xworker.on${e}`,t)}catch(e){postMessage(e)}}),!!t&&{once:!0})},{parse:jt,stringify:Mt}=f,{proxy:kt,window:xt,isWindowProxy:Tt}=Ae(self,{parse:jt,stringify:Mt,transform:e=>At?At(e):e}),_t={sync:kt,window:xt,isWindowProxy:Tt,onmessage:console.info,onerror:console.error,onmessageerror:console.warn,postMessage:postMessage.bind(self)};Pt(\"message\",(({data:{options:e,config:t,code:r,hooks:n}})=>{St=(async()=>{try{const{id:s,tag:o,type:a,custom:i,version:c,config:l,async:u}=e,f=await gt(((e,t=\"\")=>`${e}@${t}`.replace(/@$/,\"\"))(a,c),t,l),p=ze(ft.get(a)),d=((e,t,r,n)=>({type:t,config:r,interpreter:n,io:Te.get(n),run:(t,...r)=>e.run(n,t,...r),runAsync:(t,...r)=>e.runAsync(n,t,...r),runEvent:(...t)=>e.runEvent(n,...t)}))(p,i||a,l,f);let y=\"run\";if(u&&(y+=\"Async\"),n){const e=((e,t)=>(r,n)=>{const s=e[t].bind(e);e[t]=(e,t,...o)=>s(e,`${n?r:t}\\n${n?t:r}`,...o)})(p,y);let t,r,s=\"\",o=\"\";for(const e of bt){const t=n[e];if(t){const r=e.endsWith(\"Async\");(r&&u||!r&&!u)&&(e.startsWith(\"codeBefore\")?s=t:o=t)}}o&&e(o,!1),s&&e(s,!0);for(const e of vt.slice(2)){const s=n[e];if(s){const n=e.endsWith(\"Async\");if(n&&u||!n&&!u){const n=Ze(s);e.startsWith(\"onBefore\")?t=n:r=n}}}$t(p,d,_t,u,t,r)}const{CustomEvent:h,document:g}=xt,w=s&&g.getElementById(s)||null,m=e=>Xe(w,i||a,e,!0,h);let b=\"\";return p.registerJSModule(f,\"polyscript\",{xworker:_t,get target(){return!b&&w&&(\"SCRIPT\"===o?w.after(Ue(g.createElement(`script-${i||a}`),{id:b=`${s}-target`})):(b=s,w.replaceChildren(),w.style.display=\"block\")),b}}),Et=p.runEvent.bind(p,f),At=p.transform.bind(p,f),w&&m(\"ready\"),n?.onReady&&Ze(n?.onReady).call(p,d,_t),await p[y](f,r),w&&m(\"done\"),f}catch(e){postMessage(e)}})(),Pt(\"error\"),Pt(\"message\"),Pt(\"messageerror\")}));\n"],{type:'application/javascript'})),{type:'module'}); |
{ | ||
"name": "polyscript", | ||
"version": "0.5.0", | ||
"version": "0.5.1", | ||
"description": "PyScript single core to rule them all", | ||
@@ -85,4 +85,4 @@ "main": "./cjs/index.js", | ||
"worker": { | ||
"blob": "sha256-0L4zqFOhFGCP35lbD7rYCrkMg5LPyRFI9ZDDurwnBpo=" | ||
"blob": "sha256-aqa2/bVOYF1yNea/54U6hS57pI1yo/vXelBFkoJhXxE=" | ||
} | ||
} |
Sorry, the diff of this file is not supported yet
416676
83
3410
27