You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

polyscript

Package Overview
Dependencies
Maintainers
2
Versions
214
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

polyscript - npm Package Compare versions

Comparing version

to
0.17.33

4

esm/custom.js

@@ -79,2 +79,6 @@ import withResolvers from '@webreflection/utils/with-resolvers';

}
if (Number.isSafeInteger(cfg?.experimental_ffi_timeout))
globalThis.reflected_ffi_timeout = cfg.experimental_ffi_timeout;
const xworker = XW.call(new Hook(null, hooks), worker, {

@@ -81,0 +85,0 @@ ...nodeInfo(node, type),

5

esm/interpreter/webr.js

@@ -59,6 +59,3 @@ import { dedent } from '../utils.js';

},
transform: (_, value) => {
console.log('transforming', value);
return value;
},
transform: (_, value) => value,
writeFile: () => {

@@ -65,0 +62,0 @@ // MAYBE ???

@@ -68,5 +68,2 @@ import withResolvers from '@webreflection/utils/with-resolvers';

ready: { value: resolver.promise },
ffi: {
direct: worker.direct,
},
postMessage: {

@@ -73,0 +70,0 @@ value: (data, ...rest) => bootstrap.then(

@@ -7,3 +7,3 @@ /* c8 ignore start */

const { Worker } = coincident({ transfer: false });
export default (...args) => new Worker(URL.createObjectURL(new Blob(['/*@*/'+"const{assign:e}=Object,t=\"entries\",n=\"readonly\",r=\"readwrite\",s={durability:\"default\",prefix:\"IDBMap\"},o=({target:{result:e}})=>e;class a extends EventTarget{#e;#t;#n;async#r(n,r){const s=(await this.#e).transaction(t,r,this.#t);return new Promise((r,o)=>e(n(s.objectStore(t)),{onsuccess:r,onerror:o}))}constructor(n,{durability:r=s.durability,prefix:a=s.prefix}=s){super(),this.#n=a,this.#t={durability:r},this.#e=new Promise((r,s)=>{e(indexedDB.open(`${this.#n}/${n}`),{onupgradeneeded({target:{result:e,transaction:n}}){e.objectStoreNames.length||e.createObjectStore(t),n.oncomplete=()=>r(e)},onsuccess(e){r(o(e))},onerror(e){s(e),this.dispatchEvent(e)}})}).then(e=>{const t=this.dispatchEvent.bind(this);for(const n in e)n.startsWith(\"on\")&&(e[n]=t);return e})}dispatchEvent(t){const{type:n,message:r,isTrusted:s}=t;return super.dispatchEvent(s?e(new Event(n),{message:r}):t)}async close(){(await this.#e).close()}get size(){return this.#r(e=>e.count(),n).then(o)}async clear(){await this.#r(e=>e.clear(),r)}async delete(e){await this.#r(t=>t.delete(e),r)}async entries(){const e=await this.keys();return Promise.all(e.map(e=>this.get(e).then(t=>[e,t])))}async forEach(e,t=this){for(const[n,r]of await this.entries())await e.call(t,r,n,this)}async get(e){return await this.#r(t=>t.get(e),n).then(o)}async has(e){return void 0!==await this.#r(t=>t.getKey(e),n).then(o)}async keys(){return await this.#r(e=>e.getAllKeys(),n).then(o)}async set(e,t){return await this.#r(n=>n.put(t,e),r),this}async values(){const e=await this.keys();return Promise.all(e.map(e=>this.get(e)))}get[Symbol.toStringTag](){return this.#n}}class i extends Map{#s;#o;constructor(...e){super(),this.#s=new a(...e),this.#o=this.#s.entries().then(e=>{for(const[t,n]of e)super.set(t,n)})}async close(){await this.#o,await this.#s.close()}async sync(){await this.#o}clear(){return this.#o=this.#o.then(()=>this.#s.clear()),super.clear()}delete(e){return this.#o=this.#o.then(()=>this.#s.delete(e)),super.delete(e)}set(e,t){return this.#o=this.#o.then(()=>this.#s.set(e,t)),super.set(e,t)}}const c=\"677caa6a\",l=\"=\"+c,u=\"-\"+c;let p=0;const d=p++,f=p++,h=p++,y=p++,m=p++,g=p++,w=p++,_=p++,b=p++,A=p++,E=p++,k=p++,v=p++,S=p++,x=p++,$=p++,j=p++,B=p++,M=p++,F=p++,P=p++,R=p++,D=p++,T=p++,O=p++,L=new TextDecoder,C=new TextEncoder,I=new Map(Reflect.ownKeys(Symbol).map(e=>[Symbol[e],`@${String(e)}`])),H=e=>{switch(e[0]){case\"@\":return Symbol[e.slice(1)];case\"#\":return Symbol.for(e.slice(1));case\"!\":return Symbol(e.slice(1));default:return Symbol()}},U=e=>I.get(e)||((e,t)=>void 0===t?\"?\":void 0===Symbol.keyFor(e)?`!${t}`:`#${t}`)(e,e.description),W=Object.defineProperty,N=Object.assign,q=Array.isArray,J=ArrayBuffer.isView,z=(e,t)=>[e,t],K=e=>e,G={},V=e=>(t,n=new Map)=>{for(let r=0,s=t.length;r<s;r++)t[r]=e(t[r],n);return t},X=([e,t])=>0===e?t:H(t),Y=e=>\"string\"==typeof e?z(0,e):z(16,U(e)),Z=(e,t)=>{for(let n=e.push,r=0,s=t.length;r<s;r+=32767)n.apply(e,t.subarray(r,r+32767))},Q=new ArrayBuffer(8),ee=new DataView(Q),te=new Uint8Array(Q),ne=(e,t,n)=>(e.set(t,n),n),re=e=>{te[0]=e[ae++],te[1]=e[ae++],te[2]=e[ae++],te[3]=e[ae++],te[4]=e[ae++],te[5]=e[ae++],te[6]=e[ae++],te[7]=e[ae++]},se=e=>(te[0]=e[ae++],te[1]=e[ae++],te[2]=e[ae++],te[3]=e[ae++],ee.getUint32(0,!0)),oe=(e,t)=>{switch(e[ae++]){case m:return re(e),ee.getFloat64(0,!0);case g:return e[ae++];case P:{const n=ne(t,ae-1,{});for(let r=0,s=se(e);r<s;r++)n[oe(e,t)]=oe(e,t);return n}case $:{const n=ne(t,ae-1,[]);for(let r=0,s=se(e);r<s;r++)n.push(oe(e,t));return n}case T:{const n=ae-1,r=oe(e,t);return ne(t,n,new globalThis[r](oe(e,t)))}case j:{const n=ae-1,r=se(e);return ne(t,n,e.slice(ae,ae+=r).buffer)}case S:{const n=ae-1,r=se(e);return ne(t,n,L.decode(e.slice(ae,ae+=r)))}case B:return ne(t,ae-1,new Date(oe(e,t)));case F:{const n=ne(t,ae-1,new Map);for(let r=0,s=se(e);r<s;r++)n.set(oe(e,t),oe(e,t));return n}case D:{const n=ne(t,ae-1,new Set);for(let r=0,s=se(e);r<s;r++)n.add(oe(e,t));return n}case M:{const n=oe(e,t),r=oe(e,t),s=oe(e,t),o=new(globalThis[n]||Error)(r);return ne(t,ae-1,W(o,\"stack\",{value:s}))}case R:{const n=oe(e,t),r=oe(e,t);return ne(t,ae-1,new RegExp(n,r))}case d:return!1;case f:return!0;case w:return NaN;case _:return 1/0;case b:return-1/0;case A:return 0;case E:return-0;case y:return null;case k:return re(e),ee.getBigInt64(0,!0);case v:return re(e),ee.getBigUint64(0,!0);case x:return H(oe(e,t));case O:return t.get(se(e));default:return}};let ae=0;const ie=e=>(ae=0,oe(e,new Map)),ce=({byteOffset:e=0}={})=>(t,n)=>ie(new Uint8Array(n,e,t));let le=0;const ue=le++,pe=le++,de=le++,fe=le++,he=le++,ye=le++,me=le++,ge=le++,we=le++,_e=le++,be=le++,Ae=le++,Ee=le++,ke=le++,ve=le++,Se=le++,xe=le++,$e=le++,{getPrototypeOf:je}=Object,{construct:Be}=Reflect,{toStringTag:Me}=Symbol,{toString:Fe}=G,Pe=(e,t=Fe.call(e).slice(8,-1))=>t in globalThis?t:Pe(je(e)||G),Re=(e,t=e[Me])=>t in globalThis?t:Re(Be(je(e.constructor),[0])),De=(e,t)=>new ArrayBuffer(e,{maxByteLength:t}),Te=([e,t],n)=>{const r=n?e.byteLength:e.length;if(n){if(t){const n=De(r,t);new Uint8Array(n).set(new Uint8Array(e)),e=n}}else{const n=t?De(r,t):new ArrayBuffer(r);new Uint8Array(n).set(e),e=n}return e};const Oe=/\\[('|\")?(.+?)\\1\\]/g,Le=(e,t)=>e?.[t];var Ce=e=>{const t=[],n=e=>{const n=t.splice(e);for(;e<n.length;)n[e++].delete(n[e++])};return class r extends Map{static keys=Symbol();static proto=Symbol();drop(e,t){return e!==r.proto&&super.delete(r.keys),super.delete(e),t}set(r,s){return((r,s)=>{t.push(r,s)<3&&setTimeout(n,e,0)})(super.set(r,s),r),s}}};const{preventExtensions:Ie}=Object;var He=({reflect:e=K,transform:t=K,released:n=K,buffer:r=!1,timeout:s=-1}=G)=>{const o=V(X),a=V(Y),i=e=>{if(!q(e))return e;const[t,n]=e;if(1&t)return u(e,t,n);switch(t){case 2:return j;case 0:return n;case 16:return H(n);case 32:return BigInt(n);case 68:return(([e,t,n,r],s)=>{const o=Te(t,s),a=globalThis[e];return r?new a(o,n,r):new a(o,n)})(n,r);case 64:return Te(n,r)}},c=(e,n=new Map)=>{switch(typeof e){case\"object\":{if(null===e)break;if(e===globalThis)return x;if($ in e)return b;let r=n.get(e);if(!r){const s=t(e);if(A||!_.has(s)){if(q(s)){const t=[];r=z(4,t),n.set(e,r);for(let e=0,r=s.length;e<r;e++)t[e]=c(s[e],n);return r}if(!(J(s)||s instanceof ArrayBuffer||\"Object\"!==Pe(s))){const t={};r=z(2,t),n.set(e,r);for(const e in s)t[e]=c(s[e],n);return r}}r=z(0,s),n.set(e,r)}return r}case\"function\":{if($ in e)return b;let r=n.get(e);if(!r){const s=t(e);r=z(8,E(s)),n.set(e,r)}return r}case\"symbol\":return z(16,U(e))}return e},l=V(c),u=(e,t,n)=>{let r=S.get(n),s=r?.deref();return s||(r&&B.unregister(r),s=new(3===t?m:5===t?g:w)(e,n),r=new WeakRef(s),S.set(n,r),B.register(s,n,r)),s},p=e=>{switch(typeof e){case\"object\":if(null===e)break;case\"function\":return $ in e;default:return!1}},d=-1<s,f=d?Ce(s):Map;class h{constructor(e){this._=e,d&&(this.$=new f)}get(t,n){if(d&&this.$.has(n))return this.$.get(n);const r=e(_e,this._,Y(n));return d?r[0]?this.$.set(n,i(r[1])):i(r[1]):i(r)}set(t,n,r){const s=e(xe,this._,Y(n),c(r));return d?this.$.drop(n,s):s}_oK(){return o(e(ve,this._),S)}ownKeys(e){return d?this.$.has(f.keys)?this.$.get(f.keys):this.$.set(f.keys,this._oK()):this._oK()}getOwnPropertyDescriptor(t,n){const r=i(e(be,this._,Y(n)));if(r)for(const e in r)r[e]=i(r[e]);return r}defineProperty(t,n,r){const s=e(ge,this._,Y(n),c(r));return d?this.$.drop(n,s):s}deleteProperty(t,n){const r=e(we,this._,Y(n));return d?this.$.drop(n,r):r}_gPO(){return i(e(Ae,this._))}getPrototypeOf(e){return d?this.$.has(f.proto)?this.$.get(f.proto):this.$.set(f.proto,this._gPO()):this._gPO()}setPrototypeOf(t,n){const r=e($e,this._,c(n));return d?this.$.drop(f.proto,r):r}isExtensible(t){return e(ke,this._)}preventExtensions(t){return Ie(t)&&e(Se,this._)}}const y=(t,n,r)=>r===$?!!(b=t):e(Ee,n,Y(r));class m extends h{constructor(e,t){return new Proxy({_:e},super(t))}has(e,t){return y(e._,this._,t)}}class g extends h{constructor(e,t){return new Proxy(e,super(t))}has(e,t){return y(e,this._,t)}}class w extends h{constructor(e,t){return new Proxy(Ue.bind(e),super(t))}has(e,t){return y(e(),this._,t)}construct(t,n){return i(e(me,this._,l(n)))}apply(t,n,r){const s=new Map;return i(e(ye,this._,c(n,s),l(r,s)))}get(e,t){switch(t){case\"apply\":return(t,n)=>this.apply(e,t,n);case\"call\":return(t,...n)=>this.apply(e,t,n);default:return super.get(e,t)}}}let _,b,A=!0;const{id:E,ref:k,unref:v}=((e=0,t=new Map,n=new Map)=>({clear:()=>{t.clear(),n.clear()},id:r=>{let s=n.get(r);if(void 0===s){for(;t.has(s=e++););t.set(s,r),n.set(r,s)}return s},ref:e=>t.get(e),unref:e=>(n.delete(t.get(e)),t.delete(e))}))(),S=new Map,x=z(2,null),$=Symbol(\"reflected-ffi\"),j=new m(x,null),B=new FinalizationRegistry(t=>{S.delete(t),e(ue,t)});return{global:j,isProxy:p,assign(t,...n){const r=p(t),s=N(r?{}:t,...n);return r&&e(pe,b[1],c(s)),t},direct:e=>(A&&(A=!1,_=new WeakSet),_.add(e),e),evaluate:(t,...n)=>i(e(de,null,function(e=this){return String(e).replace(/^(async\\s*)?(\\bfunction\\b)?(.*?)\\(/,(e,t,n,r)=>r&&!n?`${t||\"\"}function ${r}(`:e)}(t),l(n))),gather(t,...n){const r=p(t),s=r?i:e=>t[e];r&&(n=e(fe,b[1],a(n,S)));for(let e=0;e<n.length;e++)n[e]=s(n[e]);return n},query:(t,n)=>p(t)?i(e(he,b[1],n)):((e,t)=>t.replace(Oe,\".$2\").split(\".\").reduce(Le,e))(t,n),reflect(e,t,...r){switch(e){case ye:{const[e,n]=r;for(let e=0,t=n.length;e<t;e++)n[e]=i(n[e]);return c(Reflect.apply(k(t),i(e),n))}case ue:return n(k(t)),v(t)}}}};function Ue(){return this}var We=Promise.withResolvers.bind(Promise),Ne=(e=e=>e)=>{const t=new Map;let n=0;return[()=>{let r;do{r=e(n++)}while(t.has(r));const s=We();return t.set(r,s),[r,s.promise]},(e,n,r)=>{const s=t.get(e);t.delete(e),r?s?.reject(r):s?.resolve(n)}]};const qe=[],Je=new WeakSet,ze=(...e)=>(Je.add(e),e);let{SharedArrayBuffer:Ke}=globalThis,Ge=!0;try{new Ke(4,{maxByteLength:8})}catch(e){Ge=!1,Ke=class extends ArrayBuffer{get growable(){return super.resizable}grow(e){super.resize(e)}}}const{create:Ve}=Object,Xe=`coincident-${Ge?crypto.randomUUID():Math.random().toString(36).substring(2)}`,Ye=2*Int32Array.BYTES_PER_ELEMENT,Ze={byteOffset:Ye},Qe=(e,t,n)=>{const r=\"then\"!==t;return r&&(e[t]=n),r},et=e=>{e.stopImmediatePropagation(),e.preventDefault()},[tt,nt]=Ne();let[rt,st]=tt(),ot=()=>st,at=()=>{},{Atomics:it,MessagePort:ct,SharedArrayBuffer:lt,postMessage:ut}=globalThis;if(Ge)nt(rt);else{lt=Ke;const e=new Map,t=(e,...t)=>{e.addEventListener(...t)};if(\"importScripts\"in globalThis){at=t=>{e.set(t,null)};const n=t=>{const n=t[0],r=p++;return e.set(n,r),[r,n,t]},r=ut;ut=function(e,t){if(u){const s={ID:e.ID,data:n(e.data)};r(s,t)}else st.then(()=>this.postMessage(e,t))},ct=class extends ct{postMessage(e,t){u?super.postMessage(n(e),t):st.then(()=>this.postMessage(e,t))}},t(globalThis,\"message\",e=>{et(e),nt(rt,e.data)},{once:!0});const{wait:s}=it,{parse:o}=JSON,a=t=>{const n=new XMLHttpRequest;return n.open(\"POST\",`${l}?sabayon`,!1),n.setRequestHeader(\"Content-Type\",\"application/json\"),n.send(`[\"${c}\",${e.get(t)}]`),n},i=(e,t)=>(e.set(o(t.responseText)),\"ok\");it={wait:(t,...n)=>e.has(t)?i(t,a(t)):s(t,...n)};let c,l,u=!1,p=Math.random();st=st.then(e=>{[c,l]=e,u=!0})}else{const n=[Xe,Math.random()].join(\"-\").replace(/\\W/g,\"-\"),r=new BroadcastChannel(\"dc78209b-186c-4f83-80e9-406becb7d9f3\");r.onmessage=async t=>{const[s,o,a]=t.data;if(o===n)for(const[t,[n,o]]of e)if(n===a){await o.promise;let e=t.length;for(;e--&&!t[e];);r.postMessage([s,t.slice(0,e+1)]);break}};const{notify:s}=it;it={notify(t,...n){const r=e.get(t);return r?(r[1].resolve(),0):s(t,...n)}};let o=\"\",a=null;const i=(e,n)=>{let r,s=!0;e.getRegistration(o).then(t=>t??e.register(o,n)).then(function n(a){const{controller:i}=e;if(s=s&&!!i,r=a.installing||a.waiting||a.active,\"activated\"===r.state){if(s){if(i.scriptURL===o)return nt(rt);a.unregister()}location.reload()}else t(r,\"statechange\",()=>n(a),{once:!0})})};ot=(e,t)=>(a||(o=new URL(e,location.href).href,i(navigator.serviceWorker,t),a=st),a)}}const{setPrototypeOf:pt}=Reflect;let{postMessage:dt}=globalThis;const ft=We(),ht=ct.prototype;addEventListener(\"message\",e=>{et(e);const[t,n,r]=e.data,[s]=e.ports;n&&(pt(s,ht),t&&(dt=ut)),ft.resolve([t,n,r,s])},{once:!0});var yt=async e=>{const[t,n,r,s]=await ot().then(()=>ft.promise),o=!!t,a=Ge||!!n,i=e?.transform,c=(e?.decoder||ce)(Ze),l=!1!==e?.transfer;let u,p,d;if(a){const t=new(n?lt:SharedArrayBuffer)(e?.minByteLength||32767,{maxByteLength:e?.maxByteLength||16777216});u=new Int32Array(t),n?(({wait:d}=it),at(u)):(({pause:p,wait:d}=Atomics),p&&!o&&(d=(e,t)=>{for(;e[t]<1;)p()}))}const[f,h]=Ne(String),y=new Map,m=Ve(null),g=new Proxy(m,{get(e,n){if(\"then\"===n)return;let r=y.get(n);return r||y.set(n,r=(...e)=>{const r=((e,t)=>{let n=qe;return e&&Je.has(t.at(-1)||qe)&&(n=t.pop(),Je.delete(n)),n})(l,e),p=[u,n,i?e.map(i):e];if(a){o?dt({ID:t,data:p},r):s.postMessage(p,r),d(u,0),u[0]=0;const e=u[1]?c(u[1],u.buffer):void 0;if(e instanceof Error)throw e;return e}{const[e,t]=f();return p[0]=e,s.postMessage(p,r),t}}),r},set:Qe});return s.addEventListener(\"message\",async({data:e})=>{\"string\"==typeof e[0]?h.apply(null,e):(await(async(e,t,n)=>{try{const r=await t[e[1]].apply(null,e[2]);e[1]=n?n(r):r,e[2]=null}catch(t){e[2]=t}})(e,m,i),s.postMessage(e))}),s.start(),{native:Ge,proxy:g,ffi_timeout:r,sync:a,transfer:ze}};const mt={object(...e){return this.string(function(e){for(var t=e[0],n=1,r=arguments.length;n<r;n++)t+=arguments[n]+e[n];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}},gt=new WeakMap,wt=e=>{const t=e||console,n={buffered:bt,stderr:(t.stderr||console.error).bind(t),stdout:(t.stdout||console.log).bind(t)};return{stderr:(...e)=>n.stderr(...e),stdout:(...e)=>n.stdout(...e),async get(e){const t=await e;return gt.set(t,n),t}}},_t=new TextDecoder,bt=(e,t=10)=>{const n=[];return r=>{if(r instanceof Uint8Array)for(const s of r)s===t?e(_t.decode(new Uint8Array(n.splice(0)))):n.push(s);else e(r)}},At=(e,...t)=>mt[typeof e](e,...t),{isArray:Et}=Array,{assign:kt,create:vt,defineProperty:St,entries:xt}=Object,{all:$t,resolve:jt}=new Proxy(Promise,{get:(e,t)=>e[t].bind(e)}),Bt=(e,t=location.href)=>new URL(e,t.replace(/^blob:/,\"\")).href;function Mt(e){return e.startsWith(\".\")?Bt(e,this):e}const Ft=(e,t,n,r=!1,s=CustomEvent)=>{e.dispatchEvent(new s(`${t}:${n}`,{bubbles:!0,detail:{worker:r}}))},Pt=e=>Function(`'use strict';return (${e})`)(),Rt=e=>e.replace(/^(?:\\n|\\r\\n)/,\"\"),Dt=Symbol.for(\"polyscript.js_modules\"),Tt=new Map;St(globalThis,Dt,{value:Tt}),new Proxy(Tt,{get:(e,t)=>e.get(t),has:(e,t)=>e.has(t),ownKeys:e=>[...e.keys()]});const Ot=(e,t)=>!t.startsWith(\"_\"),Lt=(e,t)=>new Proxy(e,{has:Ot,get:(e,n)=>e[t][n]}),Ct=(e,t)=>import(e).then(e=>{Tt.set(t,{...e})}),It=e=>new Promise((t,n)=>{document.querySelector(`link[rel=\"stylesheet\"][href=\"${e}\"]`)?t():document.head.append(kt(document.createElement(\"link\"),{rel:\"stylesheet\",href:e,onload:t,onerror:n}))}),Ht=e=>/\\.css$/i.test(new URL(e).pathname),Ut=(e,t)=>e.has(t),Wt=e=>[...e.keys()];var Nt=(e,t,n,r)=>{const s=globalThis[Dt];if(n)for(let[e,t]of xt(n)){let n=s.get(t);n&&!Et(n)||(s.set(t,n||(n=[])),n.push(e))}return((e,t,n,r)=>new Proxy(e,{has:Ut,ownKeys:Wt,get:(e,s)=>{let o=e.get(s);if(Et(o)){let a=o;o=null;for(let e of a)e=Bt(e,r),Ht(e)?n.importCSS(e):(n.importJS(e,s),o=t[Dt].get(s));e.set(s,o)}return o}}))(s,e,t,r)};const qt=new Map,Jt=e=>qt.get(e),zt=(e,t)=>{try{return Function(\"require\",t)(Jt)}catch(t){gt.get(e).stderr(t)}};var Kt={type:\"dummy\",module:()=>\"data:text/javascript,\",engine:e=>wt().get(e),registerJSModule(e,t,n){qt.set(t,n)},run:zt,runAsync:zt,runEvent:async(e,t,n)=>{try{await Function(\"require\",\"e\",`return ${t}(e)`)(Jt,n)}catch(t){gt.get(e).stderr(t)}},transform:(e,t)=>t,writeFile(){}};const Gt=Object.getOwnPropertyDescriptors(Response.prototype),Vt=e=>\"function\"==typeof e,Xt={get:(e,t)=>Gt.hasOwnProperty(t)?((e,t,{get:n,value:r})=>n||!Vt(r)?e.then(e=>e[t]):(...n)=>e.then(e=>e[t](...n)))(e,t,Gt[t]):((e,t)=>Vt(t)?t.bind(e):t)(e,e[t])};var Yt=(e,...t)=>new Proxy(fetch(e,...t),Xt);const Zt=!globalThis.window,Qt=({FS:e,PATH:t,PATH_FS:n},r,s)=>{const o=n.resolve(r),a=t.dirname(o);return e.mkdirTree?e.mkdirTree(a):tn(e,a),e.writeFile(o,new Uint8Array(s),{canOwn:!0})},en=e=>{const t=e.split(\"/\");return t.pop(),t.join(\"/\")},tn=(e,t)=>{const n=[];for(const r of t.split(\"/\"))\".\"!==r&&\"..\"!==r&&(n.push(r),r&&e.mkdir(n.join(\"/\")))},nn=(e,t)=>{const n=[];for(const e of t.split(\"/\"))switch(e){case\"\":case\".\":break;case\"..\":n.pop();break;default:n.push(e)}return[e.cwd()].concat(n).join(\"/\").replace(/^\\/+/,\"/\")},rn=e=>{const t=e.map(e=>e.trim().replace(/(^[/]*|[/]*$)/g,\"\")).filter(e=>\"\"!==e&&\".\"!==e).join(\"/\");return e[0].startsWith(\"/\")?`/${t}`:t},sn=(e,t)=>Yt(Bt(e,t)).arrayBuffer(),on=(e,t,n,r)=>$t((e=>{for(const{files:t,to_file:n,from:r=\"\"}of e){if(void 0!==t&&void 0!==n)throw new Error(\"Cannot use 'to_file' and 'files' parameters together!\");if(void 0===t&&void 0===n&&r.endsWith(\"/\"))throw new Error(`Couldn't determine the filename from the path ${r}, please supply 'to_file' parameter.`)}return e.flatMap(({from:e=\"\",to_folder:t=\".\",to_file:n,files:r})=>{if(Et(r))return r.map(n=>({url:rn([e,n]),path:rn([t,n])}));const s=n||e.slice(1+e.lastIndexOf(\"/\"));return[{url:e,path:rn([t,s])}]})})(n).map(({url:n,path:s})=>sn(n,r).then(n=>e.writeFile(t,s,n)))),an=(e,t)=>t.endsWith(\"/\")?`${t}${e.split(\"/\").pop()}`:t,cn=(e,t)=>e.replace(/\\{.+?\\}/g,e=>{if(!t.has(e))throw new SyntaxError(`Invalid template: ${e}`);return t.get(e)}),ln=(e,t,n,r)=>$t((e=>{const t=new Map,n=new Set,r=[];for(const[s,o]of xt(e))if(/^\\{.+\\}$/.test(s)){if(t.has(s))throw new SyntaxError(`Duplicated template: ${s}`);t.set(s,cn(o,t))}else{const e=cn(s,t),a=an(e,cn(o||\"./\",t));if(n.has(a)&&!a.endsWith(\"/*\"))throw new SyntaxError(`Duplicated destination: ${a}`);n.add(a),r.push({url:e,path:a})}return r})(n).map(({url:n,path:s})=>sn(n,r).then(r=>e.writeFile(t,s,r,n)))),un=({main:e,worker:t},n)=>{const r=[];if(t&&Zt)for(let[e,s]of xt(t))e=Bt(e,n),r.push(Ct(e,s));if(e&&!Zt)for(let[t,s]of xt(e))t=Bt(t,n),Ht(t)?It(t):r.push(Ct(t,s));return $t(r)},pn=e=>t=>{dispatchEvent(new CustomEvent(`${e}:progress`,{detail:t}))},{isNaN:dn,isFinite:fn,isInteger:hn}=Number,{ownKeys:yn}=Reflect,{is:mn}=Object,gn=(e,t,n)=>{const r=n.get(e),s=!r;return s?(ee.setUint32(0,t.length,!0),n.set(e,[te[0],te[1],te[2],te[3]])):t.push(O,r[0],r[1],r[2],r[3]),s},wn=(e,t,n)=>{ee.setUint32(0,n,!0),e.push(t,te[0],te[1],te[2],te[3])},_n=(e,t,n)=>{switch(typeof e){case\"number\":e&&fn(e)?hn(e)&&e<256&&-1<e?t.push(g,e):(ee.setFloat64(0,e,!0),t.push(m,te[0],te[1],te[2],te[3],te[4],te[5],te[6],te[7])):dn(e)?t.push(w):e?t.push(e<0?b:_):t.push(mn(e,0)?A:E);break;case\"object\":switch(!0){case null===e:t.push(y);break;case!gn(e,t,n):break;case q(e):{const r=e.length;wn(t,$,r);for(let s=0;s<r;s++)_n(e[s],t,n);break}case J(e):if(t.push(T),_n(Re(e),t,n),e=e.buffer,!gn(e,t,n))break;case e instanceof ArrayBuffer:{const n=new Uint8Array(e);wn(t,j,n.length),bn(t,n);break}case e instanceof Date:t.push(B),_n(e.getTime(),t,n);break;case e instanceof Map:wn(t,F,e.size);for(const[r,s]of e)_n(r,t,n),_n(s,t,n);break;case e instanceof Set:wn(t,D,e.size);for(const r of e)_n(r,t,n);break;case e instanceof Error:t.push(M),_n(e.name,t,n),_n(e.message,t,n),_n(e.stack,t,n);break;case e instanceof RegExp:t.push(R),_n(e.source,t,n),_n(e.flags,t,n);break;default:if(\"toJSON\"in e){const r=e.toJSON();_n(r===e?null:r,t,n)}else{const r=yn(e),s=r.length;wn(t,P,s);for(let o=0;o<s;o++){const s=r[o];_n(s,t,n),_n(e[s],t,n)}}}break;case\"string\":if(gn(e,t,n)){const n=C.encode(e);wn(t,S,n.length),bn(t,n)}break;case\"boolean\":t.push(e?f:d);break;case\"symbol\":t.push(x),_n(U(e),t,n);break;case\"bigint\":{let n=k;9223372036854775807n<e?(ee.setBigUint64(0,e,!0),n=v):ee.setBigInt64(0,e,!0),t.push(n,te[0],te[1],te[2],te[3],te[4],te[5],te[6],te[7]);break}default:t.push(h)}};let bn=Z;const An={parse:ie,stringify:e=>{const t=[];return bn=Z,_n(e,t,new Map),t}},En=new WeakMap,kn=async(e,t,n,r,s)=>{r.files&&(t(\"Loading files\"),await ln(e,n,r.files,s),t(\"Loaded files\")),r.fetch&&(t(\"Loading fetch\"),await on(e,n,r.fetch,s),t(\"Loaded fetch\")),r.js_modules&&(t(\"Loading JS modules\"),await un(r.js_modules,s),t(\"Loaded JS modules\"))},vn=(e,t,n)=>{\"polyscript\"===t&&(n.lazy_py_modules=async(...t)=>(await En.get(e)(t),t.map(t=>e.pyimport(t))),n.storage=async e=>{const t=new i(e);return await t.sync(),t},n.JSON=An),e.registerJsModule(t,n)},Sn=(e,t)=>{if(e.endsWith(\"/*\")){if(/\\.(zip|whl|tgz|tar(?:\\.gz)?)$/.test(t))return RegExp.$1;throw new Error(`Unsupported archive ${t}`)}return\"\"},xn=(e,t,...n)=>{try{return e.runPython(At(t),...n)}catch(t){gt.get(e).stderr(t)}},$n=async(e,t,...n)=>{try{return await e.runPythonAsync(At(t),...n)}catch(t){gt.get(e).stderr(t)}},jn=async(e,t,n)=>{const[r,...s]=t.split(\".\");let o,a=e.globals.get(r);for(const e of s)[o,a]=[a,a[e]];try{await a.call(o,n)}catch(t){gt.get(e).stderr(t)}};var Bn=(new TextEncoder).encode(\"_F='github:'\\n_E='user-agent'\\n_D=True\\n_C=False\\n_B='/'\\n_A=None\\nfrom uio import StringIO\\nimport sys\\nclass Response:\\n\\tdef __init__(A,f):A.raw=f;A.encoding='utf-8';A._cached=_A\\n\\tdef close(A):\\n\\t\\tif A.raw:A.raw.close();A.raw=_A\\n\\t\\tA._cached=_A\\n\\t@property\\n\\tdef content(self):\\n\\t\\tA=self\\n\\t\\tif A._cached is _A:\\n\\t\\t\\ttry:A._cached=A.raw.read()\\n\\t\\t\\tfinally:A.raw.close();A.raw=_A\\n\\t\\treturn A._cached\\n\\t@property\\n\\tdef text(self):return str(self.content,self.encoding)\\n\\tdef json(A):import ujson;return ujson.loads(A.content)\\nHEADERS_TO_IGNORE=_E,\\ntry:import js\\nexcept Exception as err:raise OSError('This version of urequests can only be used in the browser')\\nHEADERS_TO_IGNORE=_E,\\ndef request(method,url,data=_A,json=_A,headers={},stream=_A,auth=_A,timeout=_A,parse_headers=_D):\\n\\tE=timeout;D=method;C=data;from js import XMLHttpRequest as G;A=G.new();A.withCredentials=_C\\n\\tif auth is not _A:import ubinascii;H,I=auth;A.open(D,url,_C,H,I)\\n\\telse:A.open(D,url,_C)\\n\\tfor(F,J)in headers.items():\\n\\t\\tif F.lower()not in HEADERS_TO_IGNORE:A.setRequestHeader(F,J)\\n\\tif E:A.timeout=int(E*1000)\\n\\tif json is not _A:assert C is _A;import ujson;C=ujson.dumps(json);A.setRequestHeader('Content-Type','application/json')\\n\\tA.send(C);B=Response(StringIO(A.responseText));B.status_code=A.status;B.reason=A.statusText;B.headers=A.getAllResponseHeaders();return B\\ndef get(url,**A):return request('GET',url,**A)\\n_PACKAGE_INDEX=const('https://micropython.org/pi/v2')\\n_CHUNK_SIZE=128\\ndef _ensure_path_exists(path):\\n\\timport os;A=path.split(_B)\\n\\tif not A[0]:A.pop(0);A[0]=_B+A[0]\\n\\tB=''\\n\\tfor C in range(len(A)-1):\\n\\t\\tB+=A[C]\\n\\t\\ttry:os.stat(B)\\n\\t\\texcept:os.mkdir(B)\\n\\t\\tB+=_B\\ndef _chunk(src,dest):\\n\\tA=memoryview(bytearray(_CHUNK_SIZE))\\n\\twhile _D:\\n\\t\\tB=src.readinto(A)\\n\\t\\tif B==0:break\\n\\t\\tdest(A if B==_CHUNK_SIZE else A[:B])\\ndef _check_exists(path,short_hash):\\n\\tA=short_hash;import os\\n\\ttry:\\n\\t\\timport binascii as C,hashlib as D\\n\\t\\twith open(path,'rb')as E:B=D.sha256();_chunk(E,B.update);F=str(C.hexlify(B.digest())[:len(A)],'utf-8');return F==A\\n\\texcept:return _C\\ndef _rewrite_url(url,branch=_A):\\n\\tB=branch;A=url\\n\\tif not B:B='HEAD'\\n\\tif A.startswith(_F):A=A[7:].split(_B);A='https://raw.githubusercontent.com/'+A[0]+_B+A[1]+_B+B+_B+_B.join(A[2:])\\n\\treturn A\\ndef _download_file(url,dest):\\n\\tB=dest;A=get(url)\\n\\ttry:\\n\\t\\tif A.status_code!=200:print('Error',A.status_code,'requesting',url);return _C\\n\\t\\tprint('Copying:',B);_ensure_path_exists(B)\\n\\t\\twith open(B,'wb')as C:_chunk(A.raw,C.write)\\n\\t\\treturn _D\\n\\tfinally:A.close()\\ndef _install_json(package_json_url,index,target,version,mpy):\\n\\tK='File not found: {} {}';I=version;H=index;G=package_json_url;D=target;E=get(_rewrite_url(G,I))\\n\\ttry:\\n\\t\\tif E.status_code!=200:print('Package not found:',G);return _C\\n\\t\\tF=E.json()\\n\\tfinally:E.close()\\n\\tfor(A,C)in F.get('hashes',()):\\n\\t\\tB=D+_B+A\\n\\t\\tif _check_exists(B,C):print('Exists:',B)\\n\\t\\telse:\\n\\t\\t\\tL='{}/file/{}/{}'.format(H,C[:2],C)\\n\\t\\t\\tif not _download_file(L,B):print(K.format(A,C));return _C\\n\\tfor(A,J)in F.get('urls',()):\\n\\t\\tB=D+_B+A\\n\\t\\tif not _download_file(_rewrite_url(J,I),B):print(K.format(A,J));return _C\\n\\tfor(M,N)in F.get('deps',()):\\n\\t\\tif not _install_package(M,H,D,N,mpy):return _C\\n\\treturn _D\\ndef _install_package(package,index,target,version,mpy):\\n\\tD=index;C=target;B=version;A=package\\n\\tif A.startswith('http://')or A.startswith('https://')or A.startswith(_F):\\n\\t\\tif A.endswith('.py')or A.endswith('.mpy'):print('Downloading {} to {}'.format(A,C));return _download_file(_rewrite_url(A,B),C+_B+A.rsplit(_B)[-1])\\n\\t\\telse:\\n\\t\\t\\tif not A.endswith('.json'):\\n\\t\\t\\t\\tif not A.endswith(_B):A+=_B\\n\\t\\t\\t\\tA+='package.json'\\n\\t\\t\\tprint('Installing {} to {}'.format(A,C))\\n\\telse:\\n\\t\\tif not B:B='latest'\\n\\t\\tprint('Installing {} ({}) from {} to {}'.format(A,B,D,C));E=sys.implementation._mpy&255 if mpy and hasattr(sys.implementation,'_mpy')else'py';A='{}/package/{}/{}/{}.json'.format(D,'py',A,B)\\n\\treturn _install_json(A,D,C,B,mpy)\\ndef install(package,index=_A,target=_A,version=_A,mpy=_D):\\n\\tB=target;A=index\\n\\tif not B:\\n\\t\\tfor C in sys.path:\\n\\t\\t\\tif C.endswith('/lib'):B=C;break\\n\\t\\telse:print('Unable to find lib dir in sys.path');return\\n\\tif not A:A=_PACKAGE_INDEX\\n\\tif _install_package(package,A.rstrip(_B),B,version,mpy):print('Done')\\n\\telse:print('Package may be partially installed')\");const Mn=async e=>(await import(\"./toml-BK2RWy-G.js\")).parse(e);async function Fn(e,t){return new Promise((n,r)=>{e.syncfs(t,e=>{e?r(e):n()})})}function Pn(e){const t=e.FS,n=e.FS.filesystems.MEMFS,r=e.PATH,s={DIR_MODE:16895,FILE_MODE:33279,mount:function(e){if(!e.opts.fileSystemHandle)throw new Error(\"opts.fileSystemHandle is required\");return n.mount.apply(null,arguments)},syncfs:async(e,t,n)=>{try{const r=s.getLocalSet(e),o=await s.getRemoteSet(e),a=t?o:r,i=t?r:o;await s.reconcile(e,a,i),n(null)}catch(e){n(e)}},getLocalSet:e=>{let n=Object.create(null);function s(e){return\".\"!==e&&\"..\"!==e}function o(e){return t=>r.join2(e,t)}let a=t.readdir(e.mountpoint).filter(s).map(o(e.mountpoint));for(;a.length;){let e=a.pop(),r=t.stat(e);t.isDir(r.mode)&&a.push.apply(a,t.readdir(e).filter(s).map(o(e))),n[e]={timestamp:r.mtime,mode:r.mode}}return{type:\"local\",entries:n}},getRemoteSet:async e=>{const t=Object.create(null),n=await Rn(e.opts.fileSystemHandle);for(const[o,a]of n)\".\"!==o&&(t[r.join2(e.mountpoint,o)]={timestamp:\"file\"===a.kind?(await a.getFile()).lastModifiedDate:new Date,mode:\"file\"===a.kind?s.FILE_MODE:s.DIR_MODE});return{type:\"remote\",entries:t,handles:n}},loadLocalEntry:e=>{const r=t.lookupPath(e).node,s=t.stat(e);if(t.isDir(s.mode))return{timestamp:s.mtime,mode:s.mode};if(t.isFile(s.mode))return r.contents=n.getFileDataAsTypedArray(r),{timestamp:s.mtime,mode:s.mode,contents:r.contents};throw new Error(\"node type not supported\")},storeLocalEntry:(e,n)=>{if(t.isDir(n.mode))t.mkdirTree(e,n.mode);else{if(!t.isFile(n.mode))throw new Error(\"node type not supported\");t.writeFile(e,n.contents,{canOwn:!0})}t.chmod(e,n.mode),t.utime(e,n.timestamp,n.timestamp)},removeLocalEntry:e=>{var n=t.stat(e);t.isDir(n.mode)?t.rmdir(e):t.isFile(n.mode)&&t.unlink(e)},loadRemoteEntry:async e=>{if(\"file\"===e.kind){const t=await e.getFile();return{contents:new Uint8Array(await t.arrayBuffer()),mode:s.FILE_MODE,timestamp:t.lastModifiedDate}}if(\"directory\"===e.kind)return{mode:s.DIR_MODE,timestamp:new Date};throw new Error(\"unknown kind: \"+e.kind)},storeRemoteEntry:async(e,n,s)=>{const o=e.get(r.dirname(n)),a=t.isFile(s.mode)?await o.getFileHandle(r.basename(n),{create:!0}):await o.getDirectoryHandle(r.basename(n),{create:!0});if(\"file\"===a.kind){const e=await a.createWritable();await e.write(s.contents),await e.close()}e.set(n,a)},removeRemoteEntry:async(e,t)=>{const n=e.get(r.dirname(t));await n.removeEntry(r.basename(t)),e.delete(t)},reconcile:async(e,n,o)=>{let a=0;const i=[];Object.keys(n.entries).forEach(function(e){const r=n.entries[e],s=o.entries[e];(!s||t.isFile(r.mode)&&r.timestamp.getTime()>s.timestamp.getTime())&&(i.push(e),a++)}),i.sort();const c=[];if(Object.keys(o.entries).forEach(function(e){n.entries[e]||(c.push(e),a++)}),c.sort().reverse(),!a)return;const l=\"remote\"===n.type?n.handles:o.handles;for(const t of i){const n=r.normalize(t.replace(e.mountpoint,\"/\")).substring(1);if(\"local\"===o.type){const e=l.get(n),r=await s.loadRemoteEntry(e);s.storeLocalEntry(t,r)}else{const e=s.loadLocalEntry(t);await s.storeRemoteEntry(l,n,e)}}for(const t of c)if(\"local\"===o.type)s.removeLocalEntry(t);else{const n=r.normalize(t.replace(e.mountpoint,\"/\")).substring(1);await s.removeRemoteEntry(l,n)}}};return e.FS.filesystems.NATIVEFS_ASYNC=s,async function(e,n){if(\"FileSystemDirectoryHandle\"!==n.constructor.name)throw new TypeError(\"Expected argument 'fileSystemHandle' to be a FileSystemDirectoryHandle\");return function(e){t.mkdirTree?t.mkdirTree(e):tn(t,e);const{node:n}=t.lookupPath(e,{follow_mount:!1});if(t.isMountpoint(n))throw new Error(`path '${e}' is already a file system mount point`);if(!t.isDir(n.mode))throw new Error(`path '${e}' points to a file not a directory`);for(const t in n.contents)throw new Error(`directory '${e}' is not empty`)}(e),t.mount(t.filesystems.NATIVEFS_ASYNC,{fileSystemHandle:n},e),await Fn(t,!0),{syncfs:async()=>await Fn(t,!1)}}}const Rn=async e=>{const t=[];await async function e(n){for await(const r of n.values())t.push(r),\"directory\"===r.kind&&await e(r)}(e);const n=new Map;n.set(\".\",e);for(const r of t){const t=(await e.resolve(r)).join(\"/\");n.set(t,r)}return n},Dn=(e,t)=>{try{e.mkdir(t)}catch(e){}},Tn=pn(\"mpy\");var On={type:\"micropython\",module:(e=\"1.25.0\")=>`https://cdn.jsdelivr.net/npm/@micropython/micropython-webassembly-pyscript@${e}/micropython.mjs`,async engine({loadMicroPython:e},t,n,r){const{stderr:s,stdout:o,get:a}=wt({stderr:bt(console.error),stdout:bt(console.log)});n=n.replace(/\\.m?js$/,\".wasm\"),Tn(\"Loading MicroPython\");const i=await a(e({linebuffer:!1,stderr:s,stdout:o,url:n})),c=Ln.bind(this,i,r);return En.set(i,c),await kn(this,Tn,i,t,r),this.writeFile(i,\"./mip.py\",Bn),t.packages&&(Tn(\"Loading packages\"),await c(t.packages.map(Mt,r)),Tn(\"Loaded packages\")),Tn(\"Loaded MicroPython\"),i.mountNativeFS||(i.mountNativeFS=Pn(i._module)),i},registerJSModule:vn,run:xn,runAsync:$n,runEvent:jn,transform:(e,t)=>e.PyProxy.toJs(t),writeFile:(e,t,n,r)=>{const{FS:s,_module:{PATH:o,PATH_FS:a}}=e,i={FS:s,PATH:o,PATH_FS:a},c=Sn(t,r);if(c){const r=t.slice(0,-1);switch(\"./\"!==r&&s.mkdir(r),c){case\"whl\":case\"zip\":{const e=new Blob([n],{type:\"application/zip\"});return import(\"./zip-BKVoQflw.js\").then(async({BlobReader:t,Uint8ArrayWriter:n,ZipReader:a})=>{const i=new a(new t(e));for(const e of await i.getEntries()){const{directory:t,filename:a}=e,i=r+a;if(t)Dn(s,i);else{Dn(s,o.dirname(i));const t=await e.getData(new n);s.writeFile(i,t,{canOwn:!0})}}i.close()})}case\"tgz\":case\"tar.gz\":{const t=\"./_.tar.gz\";return Qt(i,t,n),void e.runPython(`\\n import os, gzip, tarfile\\n tar = tarfile.TarFile(fileobj=gzip.GzipFile(fileobj=open(\"${t}\", \"rb\")))\\n for f in tar:\\n name = f\"${r}{f.name}\"\\n if f.type == tarfile.DIRTYPE:\\n if f.name != \"./\":\\n os.mkdir(name.strip(\"/\"))\\n else:\\n dir = os.path.dirname(name)\\n if not os.path.exists(dir):\\n os.mkdir(dir)\\n source = tar.extractfile(f)\\n with open(name, \"wb\") as dest:\\n dest.write(source.read())\\n dest.close()\\n tar.close()\\n os.remove(\"${t}\")\\n `)}}}return Qt(i,t,n)}};async function Ln(e,t,n){let r;for(const s of n)if(s.endsWith(\".whl\")){const n=Bt(s,t),r=await Yt(n).arrayBuffer();await this.writeFile(e,\"./*\",r,n)}else r||(r=e.pyimport(\"mip\")),r.install(s)}const Cn={dict_converter:Object.fromEntries},{stringify:In}=JSON,{apply:Hn}=Reflect,Un=Function.prototype,Wn=e=>function(...t){return Hn(e,this,t)};let Nn,qn;const Jn=e=>{const t=new WeakMap,n=n=>{for(let r,s=0;s<n.length;s++)switch(typeof(r=n[s])){case\"object\":if(null===r)break;case\"function\":if(Nn in r&&!r[Nn].shared?.gcRegistered){e=!1;let o=t.get(r)?.deref();if(!o){o=qn(r);const e=new WeakRef(o);t.set(r,e),t.set(o,e)}n[s]=o,e=!0}}};Object.defineProperties(Un,{apply:{value(t,r){return e&&n(r),Hn(this,t,r)}},call:{value(t,...r){return e&&n(r),Hn(this,t,r)}}})},zn=pn(\"py\"),Kn=new WeakMap;var Gn={type:\"pyodide\",module:(e=\"0.27.7\")=>`https://cdn.jsdelivr.net/pyodide/v${e}/full/pyodide.mjs`,async engine({loadPyodide:e,version:t},n,r,s){zn(\"Loading Pyodide\");let{packages:o,index_urls:a}=n;o&&(o=o.map(Mt,s)),zn(\"Loading Storage\");const c=r.slice(0,r.lastIndexOf(\"/\")),l=new i(`${c}@${t}`),u={indexURL:c},p=\"never\"!==n.packages_cache;if(await l.sync(),p){if(o)if(\"passthrough\"===n.packages_cache)u.packages=o,o=null,l.clear();else{o=o.sort();const e=In(o);if(l.has(e)){const t=new Blob([l.get(e)],{type:\"application/json\"});u.lockFileURL=URL.createObjectURL(t),u.packages=o.map(e=>e.split(/[>=<]=/)[0]),o=null}}}else l.clear();zn(\"Loaded Storage\");const{stderr:d,stdout:f,get:h}=wt(),y=await h(e({stderr:d,stdout:f,...u}));n.debug&&y.setDebug(!0);const m=Xn.bind(y);return a&&Kn.set(y,a),En.set(y,m),await kn(this,zn,y,n,s),o&&await m(o,l,p),await l.close(),u.lockFileURL&&URL.revokeObjectURL(u.lockFileURL),zn(\"Loaded Pyodide\"),\"auto\"===n.experimental_create_proxy&&(y.runPython([\"import js\",\"from pyodide.ffi import to_js\",\"o=js.Object.fromEntries\",\"js.experimental_create_proxy=lambda r:to_js(r,dict_converter=o)\"].join(\";\"),{globals:y.toPy({})}),qn=globalThis.experimental_create_proxy,delete globalThis.experimental_create_proxy,[Nn]=Reflect.ownKeys(qn).filter(e=>\"symbol\"==typeof e&&\"Symbol(pyproxy.attrs)\"===String(e)),Jn(!0)),y},registerJSModule:vn,run:Wn(xn),runAsync:Wn($n),runEvent:Wn(jn),transform:(e,t)=>Hn(Vn,e,[t]),writeFile:(e,t,n,r)=>{const s=Sn(t,r);if(s)return e.unpackArchive(n,s,{extractDir:t.slice(0,-1)});const{FS:o,PATH:a,_module:{PATH_FS:i}}=e;return Qt({FS:o,PATH:a,PATH_FS:i},t,n)}};function Vn(e){const{ffi:{PyProxy:t}}=this;if(e&&\"object\"==typeof e){if(e instanceof t)return e.toJs(Cn);if(e instanceof Map)return new Map([...e.entries()]);if(Et(e))return e.map(Vn,this)}return e}async function Xn(e,t,n=!1){const{log:r}=console,s=(e,...t)=>{r(e,...t),console.log=r,zn(e),console.log=s};console.log=s,await this.loadPackage(\"micropip\");const o=this.pyimport(\"micropip\");if(Kn.has(this)&&o.set_index_urls(Kn.get(this)),await o.install(e,{keep_going:!0}),console.log=r,n&&t instanceof i){const n=o.freeze();t.set(In(e),n)}o.destroy()}const Yn=\"ruby-wasm-wasi\",Zn=Yn.replace(/\\W+/g,\"_\");var Qn={type:Yn,experimental:!0,module:(e=\"2.7.1\")=>`https://cdn.jsdelivr.net/npm/@ruby/3.2-wasm-wasi@${e}/dist/browser/+esm`,async engine({DefaultRubyVM:e},t,n,r){n=n.replace(/\\/browser\\/\\+esm$/,\"/ruby.wasm\");const s=await Yt(n).arrayBuffer(),o=await WebAssembly.compile(s),{vm:a}=await e(o);return t.files&&await ln(this,a,t.files,r),t.fetch&&await on(this,a,t.fetch,r),t.js_modules&&await un(t.js_modules,r),a},registerJSModule(e,t,n){t=t.replace(/\\W+/g,\"__\");const r=`__module_${Zn}_${t}`;globalThis[r]=n,this.run(e,`require \"js\";$${t}=JS.global[:${r}]`),delete globalThis[r]},run:(e,t,...n)=>e.eval(At(t),...n),runAsync:(e,t,...n)=>e.evalAsync(At(t),...n),async runEvent(e,t,n){if(/^xworker\\.(on\\w+)$/.test(t)){const{$1:t}=RegExp,r=`__module_${Zn}_event`;globalThis[r]=n,this.run(e,`require \"js\";$xworker.call(\"${t}\",JS.global[:${r}])`),delete globalThis[r]}else{const r=this.run(e,`method(:${t})`);await r.call(t,e.wrap(n))}},transform:(e,t)=>t,writeFile:()=>{throw new Error(`writeFile is not supported in ${Yn}`)}};var er={type:\"wasmoon\",module:(e=\"1.16.0\")=>`https://cdn.jsdelivr.net/npm/wasmoon@${e}/+esm`,async engine({LuaFactory:e,LuaLibraries:t},n,r,s){const{stderr:o,stdout:a,get:i}=wt(),c=await i((new e).createEngine());return c.global.getTable(t.Base,e=>{c.global.setField(e,\"print\",a),c.global.setField(e,\"printErr\",o)}),n.files&&await ln(this,c,n.files,s),n.fetch&&await on(this,c,n.fetch,s),n.js_modules&&await un(n.js_modules,s),c},registerJSModule:(e,t,n)=>{e.global.set(t,n)},run:(e,t,...n)=>{try{return e.doStringSync(At(t),...n)}catch(t){gt.get(e).stderr(t)}},runAsync:async(e,t,...n)=>{try{return await e.doString(At(t),...n)}catch(t){gt.get(e).stderr(t)}},runEvent:async(e,t,n)=>{const[r,...s]=t.split(\".\");let o,a=e.global.get(r);for(const e of s)[o,a]=[a,a[e]];try{await a.call(o,n)}catch(t){gt.get(e).stderr(t)}},transform:(e,t)=>t,writeFile:({cmodule:{module:{FS:e}}},t,n)=>((e,t,n)=>(tn(e,en(t)),t=nn(e,t),e.writeFile(t,new Uint8Array(n),{canOwn:!0})))(e,t,n)};const tr=new WeakMap,nr=new FinalizationRegistry(e=>e()),rr=async(e,t)=>{const{shelter:n,destroy:r,io:s}=tr.get(e),{output:o,result:a}=await n.captureR(At(t));for(const{type:e,data:t}of o)s[e](t);return nr.register(a,r),a};var sr={type:\"webr\",experimental:!0,module:(e=\"0.4.4\")=>`https://cdn.jsdelivr.net/npm/webr@${e}/dist/webr.mjs`,async engine(e,t,n,r){const{get:s}=wt(),o=new e.WebR;await s(o.init().then(()=>o));const a=await new o.Shelter;return tr.set(o,{module:e,shelter:a,destroy:a.destroy.bind(a),io:gt.get(o)}),t.files&&await ln(this,o,t.files,r),t.fetch&&await on(this,o,t.fetch,r),t.js_modules&&await un(t.js_modules,r),o},registerJSModule(e,t){console.warn(`Experimental interpreter: module ${t} is not supported (yet)`)},run:rr,runAsync:rr,async runEvent(e,t,n){await e.evalRVoid(`${t}(event)`,{env:{event:{type:[n.type]}}})},transform:(e,t)=>(console.log(\"transforming\",t),t),writeFile:()=>{}};const or=new Map,ar=new Map,ir=new Proxy(new Map,{get(e,t){if(!e.has(t)){const[n,...r]=t.split(\"@\"),s=or.get(n),o=/^(?:\\.?\\.?\\/|[a-z0-9-]+:\\/\\/)/i.test(r)?r.join(\"@\"):s.module(...r);e.set(t,{url:o,module:import(o),engine:s.engine.bind(s)})}const{url:n,module:r,engine:s}=e.get(t);return(e,o)=>r.then(r=>(ar.set(t,e),s(r,e,n,o)))}}),cr=e=>{for(const t of[].concat(e.type))or.set(t,e)};for(const e of[Kt,On,Gn,Qn,er,sr])cr(e);const{parse:lr}=JSON,ur=(e,t,n={})=>{const[r,s]=((e,t=\"./config.txt\")=>{let n=typeof e;return\"string\"===n&&/\\.(json|toml|txt)$/.test(e)?n=RegExp.$1:e=t,[Bt(e),n]})(e,t);return\"json\"===s?n=Yt(r).json():\"toml\"===s?n=Yt(r).text().then(Mn):\"string\"===s?n=pr(e):\"object\"===s&&e?n=e:\"txt\"===s&&\"string\"==typeof n&&(n=pr(n)),[n,e=r]},pr=e=>{try{return lr(e)}catch(t){return Mn(e)}},dr=\"BeforeRun\",fr=\"AfterRun\",hr=[`code${dr}`,`code${dr}Async`,`code${fr}`,`code${fr}Async`],yr=[\"onWorker\",\"onReady\",`on${dr}`,`on${dr}Async`,`on${fr}`,`on${fr}Async`];function mr(e,t){const{run:n,runAsync:r}=or.get(this.type);return{...e,run:n.bind(this,t),runAsync:r.bind(this,t)}}const gr=(e,t,n,r,s,o)=>{if(s||o){const a=mr.bind(e,t),i=r?\"runAsync\":\"run\",c=e[i];e[i]=r?async function(e,t,...r){s&&await s.call(this,a(e),n);const i=await c.call(this,e,t,...r);return o&&await o.call(this,a(e),n),i}:function(e,t,...r){s&&s.call(this,a(e),n);const i=c.call(this,e,t,...r);return o&&o.call(this,a(e),n),i}}};let wr,_r,br;const Ar=(e,t)=>{addEventListener(e,t||(async t=>{try{await wr,_r(`xworker.on${e}`,t)}catch(e){postMessage(e)}}),!!t&&{once:!0})},{proxy:Er,sync:kr,native:vr,window:Sr,isWindowProxy:xr,ffi:$r}=await(async e=>{const t=await yt({...e,decoder:e?.decoder||ce}),n=He({...e,buffer:!0,reflect:t.proxy[l],timeout:t.ffi_timeout});return t.proxy[u]=n.reflect,{...t,window:n.global,isWindowProxy:n.isProxy,ffi:{assign:n.assign,direct:n.direct,evaluate:n.evaluate,gather:n.gather,query:n.query}}})({transfer:!1,transform:e=>br?br(e):e}),jr={polyfill:kr,sync:Er,window:vr||kr?Sr:null,isWindowProxy:xr,onmessage:console.info,onerror:console.error,onmessageerror:console.warn,postMessage:postMessage.bind(self)};Ar(\"message\",({data:{options:e,config:t,configURL:n,code:r,hooks:s}})=>{wr=(async()=>{try{const{id:o,tag:c,type:l,custom:u,version:p,config:d,async:f}=e,h=((e,t=\"\")=>`${e}@${t}`.replace(/@$/,\"\"))(l,p),y=await((e,t,n,r={})=>(t&&([r,t]=ur(t,n,r)),jt(r).then(n=>ir[e](n,t))))(h,t,n,d),{js_modules:m}=ar.get(h),g=m?.main,w=vt(or.get(l)),_=((e,t,n,r)=>({type:t,config:n,interpreter:r,io:gt.get(r),run:(t,...n)=>e.run(r,t,...n),runAsync:(t,...n)=>e.runAsync(r,t,...n),runEvent:(...t)=>e.runEvent(r,...t)}))(w,u||l,d||{},y);let b=\"run\";if(f&&(b+=\"Async\"),s){let e,t,n=\"\",r=\"\";for(const e of hr){const t=s[e];if(t){const s=e.endsWith(\"Async\");(s&&f||!s&&!f)&&(e.startsWith(\"codeBefore\")?n=t:r=t)}}(n||r)&&((e,t,n,r)=>{const s=e[t].bind(e);e[t]=\"run\"===t?(e,t,...o)=>{n&&s(e,n,...o);const a=s(e,Rt(t),...o);return r&&s(e,r,...o),a}:async(e,t,...o)=>{n&&await s(e,n,...o);const a=await s(e,Rt(t),...o);return r&&await s(e,r,...o),a}})(w,b,n,r);for(const n of yr.slice(2)){const r=s[n];if(r){const s=n.endsWith(\"Async\");if(s&&f||!s&&!f){const s=Pt(r);n.startsWith(\"onBefore\")?e=s:t=s}}}gr(w,_,jr,f,e,t)}let A,E,k,v=null,S=\"\";(vr||kr)&&(({CustomEvent:A,document:E}=Sr),v=o&&E.getElementById(o)||null,k=e=>Ft(v,u||l,e,!0,A));const x=Nt(Sr,Er,g,t);if(((e,t,n,r)=>{if(\"pyodide\"===e)return;const s=\"polyscript.js_modules\";for(const e of Reflect.ownKeys(r))t.registerJSModule(n,`${s}.${e}`,Lt(r,e));t.registerJSModule(n,s,r)})(l,w,y,x),w.registerJSModule(y,\"polyscript\",{IDBMap:a,IDBMapSync:i,xworker:jr,currentScript:v,config:_.config,js_modules:x,ffi:$r,get target(){return!S&&v&&(\"SCRIPT\"===c?v.after(kt(Sr.document.createElement(`script-${u||l}`),{id:S=`${o}-target`})):(S=o,v.replaceChildren(),v.style.display=\"block\")),S}}),_r=w.runEvent.bind(w,y),br=w.transform.bind(w,y),v&&k(\"ready\"),s?.onReady&&Pt(s?.onReady).call(w,mr.call(w,_,y),jr),await w[b](y,r),[\"micropython\",\"pyodide\"].includes(w.type)){const e=\"polyscript\",t=`__${e}_workers__`,n=\"__export__\";y.runPython([`import js as ${t}`,`${t}.${t} = \"${n}\" in locals() and ${n} or []`,`del ${t}`].join(\"\\n\"));const r=[...globalThis[t]];delete globalThis[t],r.length&&y.runPython([`from ${e} import xworker as ${t}`,...r.map(e=>`${t}.sync.${e} = ${e}`),`del ${t}`].join(\"\\n\"))}return v&&k(\"done\"),postMessage(\"polyscript:done\"),y}catch(e){postMessage(e)}})(),Ar(\"error\"),Ar(\"message\"),Ar(\"messageerror\"),(vr||kr)&&addEventListener(\"py:progress\",({type:e,detail:t})=>{Sr.dispatchEvent(new Sr.CustomEvent(e,{detail:t}))})});\n".replace(re,place)],{type:'text/javascript'})), ...args)
export default (...args) => new Worker(URL.createObjectURL(new Blob(['/*@*/'+"const{assign:e}=Object,t=\"entries\",n=\"readonly\",r=\"readwrite\",s={durability:\"default\",prefix:\"IDBMap\"},o=({target:{result:e}})=>e;class a extends EventTarget{#e;#t;#n;async#r(n,r){const s=(await this.#e).transaction(t,r,this.#t);return new Promise((r,o)=>e(n(s.objectStore(t)),{onsuccess:r,onerror:o}))}constructor(n,{durability:r=s.durability,prefix:a=s.prefix}=s){super(),this.#n=a,this.#t={durability:r},this.#e=new Promise((r,s)=>{e(indexedDB.open(`${this.#n}/${n}`),{onupgradeneeded({target:{result:e,transaction:n}}){e.objectStoreNames.length||e.createObjectStore(t),n.oncomplete=()=>r(e)},onsuccess(e){r(o(e))},onerror(e){s(e),this.dispatchEvent(e)}})}).then(e=>{const t=this.dispatchEvent.bind(this);for(const n in e)n.startsWith(\"on\")&&(e[n]=t);return e})}dispatchEvent(t){const{type:n,message:r,isTrusted:s}=t;return super.dispatchEvent(s?e(new Event(n),{message:r}):t)}async close(){(await this.#e).close()}get size(){return this.#r(e=>e.count(),n).then(o)}async clear(){await this.#r(e=>e.clear(),r)}async delete(e){await this.#r(t=>t.delete(e),r)}async entries(){const e=await this.keys();return Promise.all(e.map(e=>this.get(e).then(t=>[e,t])))}async forEach(e,t=this){for(const[n,r]of await this.entries())await e.call(t,r,n,this)}async get(e){return await this.#r(t=>t.get(e),n).then(o)}async has(e){return void 0!==await this.#r(t=>t.getKey(e),n).then(o)}async keys(){return await this.#r(e=>e.getAllKeys(),n).then(o)}async set(e,t){return await this.#r(n=>n.put(t,e),r),this}async values(){const e=await this.keys();return Promise.all(e.map(e=>this.get(e)))}get[Symbol.toStringTag](){return this.#n}}class i extends Map{#s;#o;constructor(...e){super(),this.#s=new a(...e),this.#o=this.#s.entries().then(e=>{for(const[t,n]of e)super.set(t,n)})}async close(){await this.#o,await this.#s.close()}async sync(){await this.#o}clear(){return this.#o=this.#o.then(()=>this.#s.clear()),super.clear()}delete(e){return this.#o=this.#o.then(()=>this.#s.delete(e)),super.delete(e)}set(e,t){return this.#o=this.#o.then(()=>this.#s.set(e,t)),super.set(e,t)}}const c=\"677caa6a\",l=\"=\"+c,u=\"-\"+c;let p=0;const d=p++,f=p++,h=p++,y=p++,m=p++,g=p++,w=p++,_=p++,b=p++,A=p++,E=p++,k=p++,v=p++,S=p++,x=p++,$=p++,j=p++,B=p++,M=p++,F=p++,P=p++,R=p++,D=p++,T=p++,O=p++,L=new TextDecoder,C=new TextEncoder,I=new Map(Reflect.ownKeys(Symbol).map(e=>[Symbol[e],`@${String(e)}`])),H=e=>{switch(e[0]){case\"@\":return Symbol[e.slice(1)];case\"#\":return Symbol.for(e.slice(1));case\"!\":return Symbol(e.slice(1));default:return Symbol()}},U=e=>I.get(e)||((e,t)=>void 0===t?\"?\":void 0===Symbol.keyFor(e)?`!${t}`:`#${t}`)(e,e.description),W=Object.defineProperty,N=Object.assign,q=Array.isArray,J=ArrayBuffer.isView,z=(e,t)=>[e,t],K=e=>e,G={},V=e=>(t,n=new Map)=>{for(let r=0,s=t.length;r<s;r++)t[r]=e(t[r],n);return t},X=([e,t])=>0===e?t:H(t),Y=e=>\"string\"==typeof e?z(0,e):z(16,U(e)),Z=(e,t)=>{for(let n=e.push,r=0,s=t.length;r<s;r+=32767)n.apply(e,t.subarray(r,r+32767))},Q=new ArrayBuffer(8),ee=new DataView(Q),te=new Uint8Array(Q),ne=(e,t,n)=>(e.set(t,n),n),re=e=>{te[0]=e[ae++],te[1]=e[ae++],te[2]=e[ae++],te[3]=e[ae++],te[4]=e[ae++],te[5]=e[ae++],te[6]=e[ae++],te[7]=e[ae++]},se=e=>(te[0]=e[ae++],te[1]=e[ae++],te[2]=e[ae++],te[3]=e[ae++],ee.getUint32(0,!0)),oe=(e,t)=>{switch(e[ae++]){case m:return re(e),ee.getFloat64(0,!0);case g:return e[ae++];case P:{const n=ne(t,ae-1,{});for(let r=0,s=se(e);r<s;r++)n[oe(e,t)]=oe(e,t);return n}case $:{const n=ne(t,ae-1,[]);for(let r=0,s=se(e);r<s;r++)n.push(oe(e,t));return n}case T:{const n=ae-1,r=oe(e,t);return ne(t,n,new globalThis[r](oe(e,t)))}case j:{const n=ae-1,r=se(e);return ne(t,n,e.slice(ae,ae+=r).buffer)}case S:{const n=ae-1,r=se(e);return ne(t,n,L.decode(e.slice(ae,ae+=r)))}case B:return ne(t,ae-1,new Date(oe(e,t)));case F:{const n=ne(t,ae-1,new Map);for(let r=0,s=se(e);r<s;r++)n.set(oe(e,t),oe(e,t));return n}case D:{const n=ne(t,ae-1,new Set);for(let r=0,s=se(e);r<s;r++)n.add(oe(e,t));return n}case M:{const n=oe(e,t),r=oe(e,t),s=oe(e,t),o=new(globalThis[n]||Error)(r);return ne(t,ae-1,W(o,\"stack\",{value:s}))}case R:{const n=oe(e,t),r=oe(e,t);return ne(t,ae-1,new RegExp(n,r))}case d:return!1;case f:return!0;case w:return NaN;case _:return 1/0;case b:return-1/0;case A:return 0;case E:return-0;case y:return null;case k:return re(e),ee.getBigInt64(0,!0);case v:return re(e),ee.getBigUint64(0,!0);case x:return H(oe(e,t));case O:return t.get(se(e));default:return}};let ae=0;const ie=e=>(ae=0,oe(e,new Map)),ce=({byteOffset:e=0}={})=>(t,n)=>ie(new Uint8Array(n,e,t));let le=0;const ue=le++,pe=le++,de=le++,fe=le++,he=le++,ye=le++,me=le++,ge=le++,we=le++,_e=le++,be=le++,Ae=le++,Ee=le++,ke=le++,ve=le++,Se=le++,xe=le++,$e=le++,{getPrototypeOf:je}=Object,{construct:Be}=Reflect,{toStringTag:Me}=Symbol,{toString:Fe}=G,Pe=(e,t=Fe.call(e).slice(8,-1))=>t in globalThis?t:Pe(je(e)||G),Re=(e,t=e[Me])=>t in globalThis?t:Re(Be(je(e.constructor),[0])),De=(e,t)=>new ArrayBuffer(e,{maxByteLength:t}),Te=([e,t],n)=>{const r=n?e.byteLength:e.length;if(n){if(t){const n=De(r,t);new Uint8Array(n).set(new Uint8Array(e)),e=n}}else{const n=t?De(r,t):new ArrayBuffer(r);new Uint8Array(n).set(e),e=n}return e};const Oe=/\\[('|\")?(.+?)\\1\\]/g,Le=(e,t)=>e?.[t];var Ce=e=>{const t=[],n=e=>{const n=t.splice(e);for(;e<n.length;)n[e++].delete(n[e++])};return class r extends Map{static keys=Symbol();static proto=Symbol();drop(e,t){return e!==r.proto&&super.delete(r.keys),super.delete(e),t}set(r,s){return((r,s)=>{t.push(r,s)<3&&setTimeout(n,e,0)})(super.set(r,s),r),s}}};const{preventExtensions:Ie}=Object;var He=({reflect:e=K,transform:t=K,released:n=K,buffer:r=!1,timeout:s=-1}=G)=>{const o=V(X),a=V(Y),i=e=>{if(!q(e))return e;const[t,n]=e;if(1&t)return u(e,t,n);switch(t){case 2:return j;case 0:return n;case 16:return H(n);case 32:return BigInt(n);case 68:return(([e,t,n,r],s)=>{const o=Te(t,s),a=globalThis[e];return r?new a(o,n,r):new a(o,n)})(n,r);case 64:return Te(n,r)}},c=(e,n=new Map)=>{switch(typeof e){case\"object\":{if(null===e)break;if(e===globalThis)return x;if($ in e)return b;let r=n.get(e);if(!r){const s=t(e);if(A||!_.has(s)){if(q(s)){const t=[];r=z(4,t),n.set(e,r);for(let e=0,r=s.length;e<r;e++)t[e]=c(s[e],n);return r}if(!(J(s)||s instanceof ArrayBuffer||\"Object\"!==Pe(s))){const t={};r=z(2,t),n.set(e,r);for(const e in s)t[e]=c(s[e],n);return r}}r=z(0,s),n.set(e,r)}return r}case\"function\":{if($ in e)return b;let r=n.get(e);if(!r){const s=t(e);r=z(8,E(s)),n.set(e,r)}return r}case\"symbol\":return z(16,U(e))}return e},l=V(c),u=(e,t,n)=>{let r=S.get(n),s=r?.deref();return s||(r&&B.unregister(r),s=new(3===t?m:5===t?g:w)(e,n),r=new WeakRef(s),S.set(n,r),B.register(s,n,r)),s},p=e=>{switch(typeof e){case\"object\":if(null===e)break;case\"function\":return $ in e;default:return!1}},d=-1<s,f=d?Ce(s):Map;class h{constructor(e){this._=e,d&&(this.$=new f)}get(t,n){if(d&&this.$.has(n))return this.$.get(n);const r=e(_e,this._,Y(n));return d?r[0]?this.$.set(n,i(r[1])):i(r[1]):i(r)}set(t,n,r){const s=e(xe,this._,Y(n),c(r));return d?this.$.drop(n,s):s}_oK(){return o(e(ve,this._),S)}ownKeys(e){return d?this.$.has(f.keys)?this.$.get(f.keys):this.$.set(f.keys,this._oK()):this._oK()}getOwnPropertyDescriptor(t,n){const r=i(e(be,this._,Y(n)));if(r)for(const e in r)r[e]=i(r[e]);return r}defineProperty(t,n,r){const s=e(ge,this._,Y(n),c(r));return d?this.$.drop(n,s):s}deleteProperty(t,n){const r=e(we,this._,Y(n));return d?this.$.drop(n,r):r}_gPO(){return i(e(Ae,this._))}getPrototypeOf(e){return d?this.$.has(f.proto)?this.$.get(f.proto):this.$.set(f.proto,this._gPO()):this._gPO()}setPrototypeOf(t,n){const r=e($e,this._,c(n));return d?this.$.drop(f.proto,r):r}isExtensible(t){return e(ke,this._)}preventExtensions(t){return Ie(t)&&e(Se,this._)}}const y=(t,n,r)=>r===$?!!(b=t):e(Ee,n,Y(r));class m extends h{constructor(e,t){return new Proxy({_:e},super(t))}has(e,t){return y(e._,this._,t)}}class g extends h{constructor(e,t){return new Proxy(e,super(t))}has(e,t){return y(e,this._,t)}}class w extends h{constructor(e,t){return new Proxy(Ue.bind(e),super(t))}has(e,t){return y(e(),this._,t)}construct(t,n){return i(e(me,this._,l(n)))}apply(t,n,r){const s=new Map;return i(e(ye,this._,c(n,s),l(r,s)))}get(e,t){switch(t){case\"apply\":return(t,n)=>this.apply(e,t,n);case\"call\":return(t,...n)=>this.apply(e,t,n);default:return super.get(e,t)}}}let _,b,A=!0;const{id:E,ref:k,unref:v}=((e=0,t=new Map,n=new Map)=>({clear:()=>{t.clear(),n.clear()},id:r=>{let s=n.get(r);if(void 0===s){for(;t.has(s=e++););t.set(s,r),n.set(r,s)}return s},ref:e=>t.get(e),unref:e=>(n.delete(t.get(e)),t.delete(e))}))(),S=new Map,x=z(2,null),$=Symbol(\"reflected-ffi\"),j=new m(x,null),B=new FinalizationRegistry(t=>{S.delete(t),e(ue,t)});return{global:j,isProxy:p,assign(t,...n){const r=p(t),s=N(r?{}:t,...n);return r&&e(pe,b[1],c(s)),t},direct:e=>(A&&(A=!1,_=new WeakSet),_.add(e),e),evaluate:(t,...n)=>i(e(de,null,function(e=this){return String(e).replace(/^(async\\s*)?(\\bfunction\\b)?(.*?)\\(/,(e,t,n,r)=>r&&!n?`${t||\"\"}function ${r}(`:e)}(t),l(n))),gather(t,...n){const r=p(t),s=r?i:e=>t[e];r&&(n=e(fe,b[1],a(n,S)));for(let e=0;e<n.length;e++)n[e]=s(n[e]);return n},query:(t,n)=>p(t)?i(e(he,b[1],n)):((e,t)=>t.replace(Oe,\".$2\").split(\".\").reduce(Le,e))(t,n),reflect(e,t,...r){switch(e){case ye:{const[e,n]=r;for(let e=0,t=n.length;e<t;e++)n[e]=i(n[e]);return c(Reflect.apply(k(t),i(e),n))}case ue:return n(k(t)),v(t)}}}};function Ue(){return this}var We=Promise.withResolvers.bind(Promise),Ne=(e=e=>e)=>{const t=new Map;let n=0;return[()=>{let r;do{r=e(n++)}while(t.has(r));const s=We();return t.set(r,s),[r,s.promise]},(e,n,r)=>{const s=t.get(e);t.delete(e),r?s?.reject(r):s?.resolve(n)}]};const qe=[],Je=new WeakSet,ze=(...e)=>(Je.add(e),e);let{SharedArrayBuffer:Ke}=globalThis,Ge=!0;try{new Ke(4,{maxByteLength:8})}catch(e){Ge=!1,Ke=class extends ArrayBuffer{get growable(){return super.resizable}grow(e){super.resize(e)}}}const{create:Ve}=Object,Xe=`coincident-${Ge?crypto.randomUUID():Math.random().toString(36).substring(2)}`,Ye=2*Int32Array.BYTES_PER_ELEMENT,Ze={byteOffset:Ye},Qe=(e,t,n)=>{const r=\"then\"!==t;return r&&(e[t]=n),r},et=e=>{e.stopImmediatePropagation(),e.preventDefault()},[tt,nt]=Ne();let[rt,st]=tt(),ot=()=>st,at=()=>{},{Atomics:it,MessagePort:ct,SharedArrayBuffer:lt,postMessage:ut}=globalThis;if(Ge)nt(rt);else{lt=Ke;const e=new Map,t=(e,...t)=>{e.addEventListener(...t)};if(\"importScripts\"in globalThis){at=t=>{e.set(t,null)};const n=t=>{const n=t[0],r=p++;return e.set(n,r),[r,n,t]},r=ut;ut=function(e,t){if(u){const s={ID:e.ID,data:n(e.data)};r(s,t)}else st.then(()=>this.postMessage(e,t))},ct=class extends ct{postMessage(e,t){u?super.postMessage(n(e),t):st.then(()=>this.postMessage(e,t))}},t(globalThis,\"message\",e=>{et(e),nt(rt,e.data)},{once:!0});const{wait:s}=it,{parse:o}=JSON,a=t=>{const n=new XMLHttpRequest;return n.open(\"POST\",`${l}?sabayon`,!1),n.setRequestHeader(\"Content-Type\",\"application/json\"),n.send(`[\"${c}\",${e.get(t)}]`),n},i=(e,t)=>(e.set(o(t.responseText)),\"ok\");it={wait:(t,...n)=>e.has(t)?i(t,a(t)):s(t,...n)};let c,l,u=!1,p=Math.random();st=st.then(e=>{[c,l]=e,u=!0})}else{const n=[Xe,Math.random()].join(\"-\").replace(/\\W/g,\"-\"),r=new BroadcastChannel(\"dc78209b-186c-4f83-80e9-406becb7d9f3\");r.onmessage=async t=>{const[s,o,a]=t.data;if(o===n)for(const[t,[n,o]]of e)if(n===a){await o.promise;let e=t.length;for(;e--&&!t[e];);r.postMessage([s,t.slice(0,e+1)]);break}};const{notify:s}=it;it={notify(t,...n){const r=e.get(t);return r?(r[1].resolve(),0):s(t,...n)}};let o=\"\",a=null;const i=(e,n)=>{let r,s=!0;e.getRegistration(o).then(t=>t??e.register(o,n)).then(function n(a){const{controller:i}=e;if(s=s&&!!i,r=a.installing||a.waiting||a.active,\"activated\"===r.state){if(s){if(i.scriptURL===o)return nt(rt);a.unregister()}location.reload()}else t(r,\"statechange\",()=>n(a),{once:!0})})};ot=(e,t)=>(a||(o=new URL(e,location.href).href,i(navigator.serviceWorker,t),a=st),a)}}const{setPrototypeOf:pt}=Reflect;let{postMessage:dt}=globalThis;const ft=We(),ht=ct.prototype;addEventListener(\"message\",e=>{et(e);const[t,n,r]=e.data,[s]=e.ports;n&&(pt(s,ht),t&&(dt=ut)),ft.resolve([t,n,r,s])},{once:!0});var yt=async e=>{const[t,n,r,s]=await ot().then(()=>ft.promise),o=!!t,a=Ge||!!n,i=e?.transform,c=(e?.decoder||ce)(Ze),l=!1!==e?.transfer;let u,p,d;if(a){const t=new(n?lt:SharedArrayBuffer)(e?.minByteLength||32767,{maxByteLength:e?.maxByteLength||16777216});u=new Int32Array(t),n?(({wait:d}=it),at(u)):(({pause:p,wait:d}=Atomics),p&&!o&&(d=(e,t)=>{for(;e[t]<1;)p()}))}const[f,h]=Ne(String),y=new Map,m=Ve(null),g=new Proxy(m,{get(e,n){if(\"then\"===n)return;let r=y.get(n);return r||y.set(n,r=(...e)=>{const r=((e,t)=>{let n=qe;return e&&Je.has(t.at(-1)||qe)&&(n=t.pop(),Je.delete(n)),n})(l,e),p=[u,n,i?e.map(i):e];if(a){o?dt({ID:t,data:p},r):s.postMessage(p,r),d(u,0),u[0]=0;const e=u[1]?c(u[1],u.buffer):void 0;if(e instanceof Error)throw e;return e}{const[e,t]=f();return p[0]=e,s.postMessage(p,r),t}}),r},set:Qe});return s.addEventListener(\"message\",async({data:e})=>{\"string\"==typeof e[0]?h.apply(null,e):(await(async(e,t,n)=>{try{const r=await t[e[1]].apply(null,e[2]);e[1]=n?n(r):r,e[2]=null}catch(t){e[2]=t}})(e,m,i),s.postMessage(e))}),s.start(),{native:Ge,proxy:g,ffi_timeout:r,sync:a,transfer:ze}};const mt={object(...e){return this.string(function(e){for(var t=e[0],n=1,r=arguments.length;n<r;n++)t+=arguments[n]+e[n];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}},gt=new WeakMap,wt=e=>{const t=e||console,n={buffered:bt,stderr:(t.stderr||console.error).bind(t),stdout:(t.stdout||console.log).bind(t)};return{stderr:(...e)=>n.stderr(...e),stdout:(...e)=>n.stdout(...e),async get(e){const t=await e;return gt.set(t,n),t}}},_t=new TextDecoder,bt=(e,t=10)=>{const n=[];return r=>{if(r instanceof Uint8Array)for(const s of r)s===t?e(_t.decode(new Uint8Array(n.splice(0)))):n.push(s);else e(r)}},At=(e,...t)=>mt[typeof e](e,...t),{isArray:Et}=Array,{assign:kt,create:vt,defineProperty:St,entries:xt}=Object,{all:$t,resolve:jt}=new Proxy(Promise,{get:(e,t)=>e[t].bind(e)}),Bt=(e,t=location.href)=>new URL(e,t.replace(/^blob:/,\"\")).href;function Mt(e){return e.startsWith(\".\")?Bt(e,this):e}const Ft=(e,t,n,r=!1,s=CustomEvent)=>{e.dispatchEvent(new s(`${t}:${n}`,{bubbles:!0,detail:{worker:r}}))},Pt=e=>Function(`'use strict';return (${e})`)(),Rt=e=>e.replace(/^(?:\\n|\\r\\n)/,\"\"),Dt=Symbol.for(\"polyscript.js_modules\"),Tt=new Map;St(globalThis,Dt,{value:Tt}),new Proxy(Tt,{get:(e,t)=>e.get(t),has:(e,t)=>e.has(t),ownKeys:e=>[...e.keys()]});const Ot=(e,t)=>!t.startsWith(\"_\"),Lt=(e,t)=>new Proxy(e,{has:Ot,get:(e,n)=>e[t][n]}),Ct=(e,t)=>import(e).then(e=>{Tt.set(t,{...e})}),It=e=>new Promise((t,n)=>{document.querySelector(`link[rel=\"stylesheet\"][href=\"${e}\"]`)?t():document.head.append(kt(document.createElement(\"link\"),{rel:\"stylesheet\",href:e,onload:t,onerror:n}))}),Ht=e=>/\\.css$/i.test(new URL(e).pathname),Ut=(e,t)=>e.has(t),Wt=e=>[...e.keys()];var Nt=(e,t,n,r)=>{const s=globalThis[Dt];if(n)for(let[e,t]of xt(n)){let n=s.get(t);n&&!Et(n)||(s.set(t,n||(n=[])),n.push(e))}return((e,t,n,r)=>new Proxy(e,{has:Ut,ownKeys:Wt,get:(e,s)=>{let o=e.get(s);if(Et(o)){let a=o;o=null;for(let e of a)e=Bt(e,r),Ht(e)?n.importCSS(e):(n.importJS(e,s),o=t[Dt].get(s));e.set(s,o)}return o}}))(s,e,t,r)};const qt=new Map,Jt=e=>qt.get(e),zt=(e,t)=>{try{return Function(\"require\",t)(Jt)}catch(t){gt.get(e).stderr(t)}};var Kt={type:\"dummy\",module:()=>\"data:text/javascript,\",engine:e=>wt().get(e),registerJSModule(e,t,n){qt.set(t,n)},run:zt,runAsync:zt,runEvent:async(e,t,n)=>{try{await Function(\"require\",\"e\",`return ${t}(e)`)(Jt,n)}catch(t){gt.get(e).stderr(t)}},transform:(e,t)=>t,writeFile(){}};const Gt=Object.getOwnPropertyDescriptors(Response.prototype),Vt=e=>\"function\"==typeof e,Xt={get:(e,t)=>Gt.hasOwnProperty(t)?((e,t,{get:n,value:r})=>n||!Vt(r)?e.then(e=>e[t]):(...n)=>e.then(e=>e[t](...n)))(e,t,Gt[t]):((e,t)=>Vt(t)?t.bind(e):t)(e,e[t])};var Yt=(e,...t)=>new Proxy(fetch(e,...t),Xt);const Zt=!globalThis.window,Qt=({FS:e,PATH:t,PATH_FS:n},r,s)=>{const o=n.resolve(r),a=t.dirname(o);return e.mkdirTree?e.mkdirTree(a):tn(e,a),e.writeFile(o,new Uint8Array(s),{canOwn:!0})},en=e=>{const t=e.split(\"/\");return t.pop(),t.join(\"/\")},tn=(e,t)=>{const n=[];for(const r of t.split(\"/\"))\".\"!==r&&\"..\"!==r&&(n.push(r),r&&e.mkdir(n.join(\"/\")))},nn=(e,t)=>{const n=[];for(const e of t.split(\"/\"))switch(e){case\"\":case\".\":break;case\"..\":n.pop();break;default:n.push(e)}return[e.cwd()].concat(n).join(\"/\").replace(/^\\/+/,\"/\")},rn=e=>{const t=e.map(e=>e.trim().replace(/(^[/]*|[/]*$)/g,\"\")).filter(e=>\"\"!==e&&\".\"!==e).join(\"/\");return e[0].startsWith(\"/\")?`/${t}`:t},sn=(e,t)=>Yt(Bt(e,t)).arrayBuffer(),on=(e,t,n,r)=>$t((e=>{for(const{files:t,to_file:n,from:r=\"\"}of e){if(void 0!==t&&void 0!==n)throw new Error(\"Cannot use 'to_file' and 'files' parameters together!\");if(void 0===t&&void 0===n&&r.endsWith(\"/\"))throw new Error(`Couldn't determine the filename from the path ${r}, please supply 'to_file' parameter.`)}return e.flatMap(({from:e=\"\",to_folder:t=\".\",to_file:n,files:r})=>{if(Et(r))return r.map(n=>({url:rn([e,n]),path:rn([t,n])}));const s=n||e.slice(1+e.lastIndexOf(\"/\"));return[{url:e,path:rn([t,s])}]})})(n).map(({url:n,path:s})=>sn(n,r).then(n=>e.writeFile(t,s,n)))),an=(e,t)=>t.endsWith(\"/\")?`${t}${e.split(\"/\").pop()}`:t,cn=(e,t)=>e.replace(/\\{.+?\\}/g,e=>{if(!t.has(e))throw new SyntaxError(`Invalid template: ${e}`);return t.get(e)}),ln=(e,t,n,r)=>$t((e=>{const t=new Map,n=new Set,r=[];for(const[s,o]of xt(e))if(/^\\{.+\\}$/.test(s)){if(t.has(s))throw new SyntaxError(`Duplicated template: ${s}`);t.set(s,cn(o,t))}else{const e=cn(s,t),a=an(e,cn(o||\"./\",t));if(n.has(a)&&!a.endsWith(\"/*\"))throw new SyntaxError(`Duplicated destination: ${a}`);n.add(a),r.push({url:e,path:a})}return r})(n).map(({url:n,path:s})=>sn(n,r).then(r=>e.writeFile(t,s,r,n)))),un=({main:e,worker:t},n)=>{const r=[];if(t&&Zt)for(let[e,s]of xt(t))e=Bt(e,n),r.push(Ct(e,s));if(e&&!Zt)for(let[t,s]of xt(e))t=Bt(t,n),Ht(t)?It(t):r.push(Ct(t,s));return $t(r)},pn=e=>t=>{dispatchEvent(new CustomEvent(`${e}:progress`,{detail:t}))},{isNaN:dn,isFinite:fn,isInteger:hn}=Number,{ownKeys:yn}=Reflect,{is:mn}=Object,gn=(e,t,n)=>{const r=n.get(e),s=!r;return s?(ee.setUint32(0,t.length,!0),n.set(e,[te[0],te[1],te[2],te[3]])):t.push(O,r[0],r[1],r[2],r[3]),s},wn=(e,t,n)=>{ee.setUint32(0,n,!0),e.push(t,te[0],te[1],te[2],te[3])},_n=(e,t,n)=>{switch(typeof e){case\"number\":e&&fn(e)?hn(e)&&e<256&&-1<e?t.push(g,e):(ee.setFloat64(0,e,!0),t.push(m,te[0],te[1],te[2],te[3],te[4],te[5],te[6],te[7])):dn(e)?t.push(w):e?t.push(e<0?b:_):t.push(mn(e,0)?A:E);break;case\"object\":switch(!0){case null===e:t.push(y);break;case!gn(e,t,n):break;case q(e):{const r=e.length;wn(t,$,r);for(let s=0;s<r;s++)_n(e[s],t,n);break}case J(e):if(t.push(T),_n(Re(e),t,n),e=e.buffer,!gn(e,t,n))break;case e instanceof ArrayBuffer:{const n=new Uint8Array(e);wn(t,j,n.length),bn(t,n);break}case e instanceof Date:t.push(B),_n(e.getTime(),t,n);break;case e instanceof Map:wn(t,F,e.size);for(const[r,s]of e)_n(r,t,n),_n(s,t,n);break;case e instanceof Set:wn(t,D,e.size);for(const r of e)_n(r,t,n);break;case e instanceof Error:t.push(M),_n(e.name,t,n),_n(e.message,t,n),_n(e.stack,t,n);break;case e instanceof RegExp:t.push(R),_n(e.source,t,n),_n(e.flags,t,n);break;default:if(\"toJSON\"in e){const r=e.toJSON();_n(r===e?null:r,t,n)}else{const r=yn(e),s=r.length;wn(t,P,s);for(let o=0;o<s;o++){const s=r[o];_n(s,t,n),_n(e[s],t,n)}}}break;case\"string\":if(gn(e,t,n)){const n=C.encode(e);wn(t,S,n.length),bn(t,n)}break;case\"boolean\":t.push(e?f:d);break;case\"symbol\":t.push(x),_n(U(e),t,n);break;case\"bigint\":{let n=k;9223372036854775807n<e?(ee.setBigUint64(0,e,!0),n=v):ee.setBigInt64(0,e,!0),t.push(n,te[0],te[1],te[2],te[3],te[4],te[5],te[6],te[7]);break}default:t.push(h)}};let bn=Z;const An={parse:ie,stringify:e=>{const t=[];return bn=Z,_n(e,t,new Map),t}},En=new WeakMap,kn=async(e,t,n,r,s)=>{r.files&&(t(\"Loading files\"),await ln(e,n,r.files,s),t(\"Loaded files\")),r.fetch&&(t(\"Loading fetch\"),await on(e,n,r.fetch,s),t(\"Loaded fetch\")),r.js_modules&&(t(\"Loading JS modules\"),await un(r.js_modules,s),t(\"Loaded JS modules\"))},vn=(e,t,n)=>{\"polyscript\"===t&&(n.lazy_py_modules=async(...t)=>(await En.get(e)(t),t.map(t=>e.pyimport(t))),n.storage=async e=>{const t=new i(e);return await t.sync(),t},n.JSON=An),e.registerJsModule(t,n)},Sn=(e,t)=>{if(e.endsWith(\"/*\")){if(/\\.(zip|whl|tgz|tar(?:\\.gz)?)$/.test(t))return RegExp.$1;throw new Error(`Unsupported archive ${t}`)}return\"\"},xn=(e,t,...n)=>{try{return e.runPython(At(t),...n)}catch(t){gt.get(e).stderr(t)}},$n=async(e,t,...n)=>{try{return await e.runPythonAsync(At(t),...n)}catch(t){gt.get(e).stderr(t)}},jn=async(e,t,n)=>{const[r,...s]=t.split(\".\");let o,a=e.globals.get(r);for(const e of s)[o,a]=[a,a[e]];try{await a.call(o,n)}catch(t){gt.get(e).stderr(t)}};var Bn=(new TextEncoder).encode(\"_F='github:'\\n_E='user-agent'\\n_D=True\\n_C=False\\n_B='/'\\n_A=None\\nfrom uio import StringIO\\nimport sys\\nclass Response:\\n\\tdef __init__(A,f):A.raw=f;A.encoding='utf-8';A._cached=_A\\n\\tdef close(A):\\n\\t\\tif A.raw:A.raw.close();A.raw=_A\\n\\t\\tA._cached=_A\\n\\t@property\\n\\tdef content(self):\\n\\t\\tA=self\\n\\t\\tif A._cached is _A:\\n\\t\\t\\ttry:A._cached=A.raw.read()\\n\\t\\t\\tfinally:A.raw.close();A.raw=_A\\n\\t\\treturn A._cached\\n\\t@property\\n\\tdef text(self):return str(self.content,self.encoding)\\n\\tdef json(A):import ujson;return ujson.loads(A.content)\\nHEADERS_TO_IGNORE=_E,\\ntry:import js\\nexcept Exception as err:raise OSError('This version of urequests can only be used in the browser')\\nHEADERS_TO_IGNORE=_E,\\ndef request(method,url,data=_A,json=_A,headers={},stream=_A,auth=_A,timeout=_A,parse_headers=_D):\\n\\tE=timeout;D=method;C=data;from js import XMLHttpRequest as G;A=G.new();A.withCredentials=_C\\n\\tif auth is not _A:import ubinascii;H,I=auth;A.open(D,url,_C,H,I)\\n\\telse:A.open(D,url,_C)\\n\\tfor(F,J)in headers.items():\\n\\t\\tif F.lower()not in HEADERS_TO_IGNORE:A.setRequestHeader(F,J)\\n\\tif E:A.timeout=int(E*1000)\\n\\tif json is not _A:assert C is _A;import ujson;C=ujson.dumps(json);A.setRequestHeader('Content-Type','application/json')\\n\\tA.send(C);B=Response(StringIO(A.responseText));B.status_code=A.status;B.reason=A.statusText;B.headers=A.getAllResponseHeaders();return B\\ndef get(url,**A):return request('GET',url,**A)\\n_PACKAGE_INDEX=const('https://micropython.org/pi/v2')\\n_CHUNK_SIZE=128\\ndef _ensure_path_exists(path):\\n\\timport os;A=path.split(_B)\\n\\tif not A[0]:A.pop(0);A[0]=_B+A[0]\\n\\tB=''\\n\\tfor C in range(len(A)-1):\\n\\t\\tB+=A[C]\\n\\t\\ttry:os.stat(B)\\n\\t\\texcept:os.mkdir(B)\\n\\t\\tB+=_B\\ndef _chunk(src,dest):\\n\\tA=memoryview(bytearray(_CHUNK_SIZE))\\n\\twhile _D:\\n\\t\\tB=src.readinto(A)\\n\\t\\tif B==0:break\\n\\t\\tdest(A if B==_CHUNK_SIZE else A[:B])\\ndef _check_exists(path,short_hash):\\n\\tA=short_hash;import os\\n\\ttry:\\n\\t\\timport binascii as C,hashlib as D\\n\\t\\twith open(path,'rb')as E:B=D.sha256();_chunk(E,B.update);F=str(C.hexlify(B.digest())[:len(A)],'utf-8');return F==A\\n\\texcept:return _C\\ndef _rewrite_url(url,branch=_A):\\n\\tB=branch;A=url\\n\\tif not B:B='HEAD'\\n\\tif A.startswith(_F):A=A[7:].split(_B);A='https://raw.githubusercontent.com/'+A[0]+_B+A[1]+_B+B+_B+_B.join(A[2:])\\n\\treturn A\\ndef _download_file(url,dest):\\n\\tB=dest;A=get(url)\\n\\ttry:\\n\\t\\tif A.status_code!=200:print('Error',A.status_code,'requesting',url);return _C\\n\\t\\tprint('Copying:',B);_ensure_path_exists(B)\\n\\t\\twith open(B,'wb')as C:_chunk(A.raw,C.write)\\n\\t\\treturn _D\\n\\tfinally:A.close()\\ndef _install_json(package_json_url,index,target,version,mpy):\\n\\tK='File not found: {} {}';I=version;H=index;G=package_json_url;D=target;E=get(_rewrite_url(G,I))\\n\\ttry:\\n\\t\\tif E.status_code!=200:print('Package not found:',G);return _C\\n\\t\\tF=E.json()\\n\\tfinally:E.close()\\n\\tfor(A,C)in F.get('hashes',()):\\n\\t\\tB=D+_B+A\\n\\t\\tif _check_exists(B,C):print('Exists:',B)\\n\\t\\telse:\\n\\t\\t\\tL='{}/file/{}/{}'.format(H,C[:2],C)\\n\\t\\t\\tif not _download_file(L,B):print(K.format(A,C));return _C\\n\\tfor(A,J)in F.get('urls',()):\\n\\t\\tB=D+_B+A\\n\\t\\tif not _download_file(_rewrite_url(J,I),B):print(K.format(A,J));return _C\\n\\tfor(M,N)in F.get('deps',()):\\n\\t\\tif not _install_package(M,H,D,N,mpy):return _C\\n\\treturn _D\\ndef _install_package(package,index,target,version,mpy):\\n\\tD=index;C=target;B=version;A=package\\n\\tif A.startswith('http://')or A.startswith('https://')or A.startswith(_F):\\n\\t\\tif A.endswith('.py')or A.endswith('.mpy'):print('Downloading {} to {}'.format(A,C));return _download_file(_rewrite_url(A,B),C+_B+A.rsplit(_B)[-1])\\n\\t\\telse:\\n\\t\\t\\tif not A.endswith('.json'):\\n\\t\\t\\t\\tif not A.endswith(_B):A+=_B\\n\\t\\t\\t\\tA+='package.json'\\n\\t\\t\\tprint('Installing {} to {}'.format(A,C))\\n\\telse:\\n\\t\\tif not B:B='latest'\\n\\t\\tprint('Installing {} ({}) from {} to {}'.format(A,B,D,C));E=sys.implementation._mpy&255 if mpy and hasattr(sys.implementation,'_mpy')else'py';A='{}/package/{}/{}/{}.json'.format(D,'py',A,B)\\n\\treturn _install_json(A,D,C,B,mpy)\\ndef install(package,index=_A,target=_A,version=_A,mpy=_D):\\n\\tB=target;A=index\\n\\tif not B:\\n\\t\\tfor C in sys.path:\\n\\t\\t\\tif C.endswith('/lib'):B=C;break\\n\\t\\telse:print('Unable to find lib dir in sys.path');return\\n\\tif not A:A=_PACKAGE_INDEX\\n\\tif _install_package(package,A.rstrip(_B),B,version,mpy):print('Done')\\n\\telse:print('Package may be partially installed')\");const Mn=async e=>(await import(\"./toml-BK2RWy-G.js\")).parse(e);async function Fn(e,t){return new Promise((n,r)=>{e.syncfs(t,e=>{e?r(e):n()})})}function Pn(e){const t=e.FS,n=e.FS.filesystems.MEMFS,r=e.PATH,s={DIR_MODE:16895,FILE_MODE:33279,mount:function(e){if(!e.opts.fileSystemHandle)throw new Error(\"opts.fileSystemHandle is required\");return n.mount.apply(null,arguments)},syncfs:async(e,t,n)=>{try{const r=s.getLocalSet(e),o=await s.getRemoteSet(e),a=t?o:r,i=t?r:o;await s.reconcile(e,a,i),n(null)}catch(e){n(e)}},getLocalSet:e=>{let n=Object.create(null);function s(e){return\".\"!==e&&\"..\"!==e}function o(e){return t=>r.join2(e,t)}let a=t.readdir(e.mountpoint).filter(s).map(o(e.mountpoint));for(;a.length;){let e=a.pop(),r=t.stat(e);t.isDir(r.mode)&&a.push.apply(a,t.readdir(e).filter(s).map(o(e))),n[e]={timestamp:r.mtime,mode:r.mode}}return{type:\"local\",entries:n}},getRemoteSet:async e=>{const t=Object.create(null),n=await Rn(e.opts.fileSystemHandle);for(const[o,a]of n)\".\"!==o&&(t[r.join2(e.mountpoint,o)]={timestamp:\"file\"===a.kind?(await a.getFile()).lastModifiedDate:new Date,mode:\"file\"===a.kind?s.FILE_MODE:s.DIR_MODE});return{type:\"remote\",entries:t,handles:n}},loadLocalEntry:e=>{const r=t.lookupPath(e).node,s=t.stat(e);if(t.isDir(s.mode))return{timestamp:s.mtime,mode:s.mode};if(t.isFile(s.mode))return r.contents=n.getFileDataAsTypedArray(r),{timestamp:s.mtime,mode:s.mode,contents:r.contents};throw new Error(\"node type not supported\")},storeLocalEntry:(e,n)=>{if(t.isDir(n.mode))t.mkdirTree(e,n.mode);else{if(!t.isFile(n.mode))throw new Error(\"node type not supported\");t.writeFile(e,n.contents,{canOwn:!0})}t.chmod(e,n.mode),t.utime(e,n.timestamp,n.timestamp)},removeLocalEntry:e=>{var n=t.stat(e);t.isDir(n.mode)?t.rmdir(e):t.isFile(n.mode)&&t.unlink(e)},loadRemoteEntry:async e=>{if(\"file\"===e.kind){const t=await e.getFile();return{contents:new Uint8Array(await t.arrayBuffer()),mode:s.FILE_MODE,timestamp:t.lastModifiedDate}}if(\"directory\"===e.kind)return{mode:s.DIR_MODE,timestamp:new Date};throw new Error(\"unknown kind: \"+e.kind)},storeRemoteEntry:async(e,n,s)=>{const o=e.get(r.dirname(n)),a=t.isFile(s.mode)?await o.getFileHandle(r.basename(n),{create:!0}):await o.getDirectoryHandle(r.basename(n),{create:!0});if(\"file\"===a.kind){const e=await a.createWritable();await e.write(s.contents),await e.close()}e.set(n,a)},removeRemoteEntry:async(e,t)=>{const n=e.get(r.dirname(t));await n.removeEntry(r.basename(t)),e.delete(t)},reconcile:async(e,n,o)=>{let a=0;const i=[];Object.keys(n.entries).forEach(function(e){const r=n.entries[e],s=o.entries[e];(!s||t.isFile(r.mode)&&r.timestamp.getTime()>s.timestamp.getTime())&&(i.push(e),a++)}),i.sort();const c=[];if(Object.keys(o.entries).forEach(function(e){n.entries[e]||(c.push(e),a++)}),c.sort().reverse(),!a)return;const l=\"remote\"===n.type?n.handles:o.handles;for(const t of i){const n=r.normalize(t.replace(e.mountpoint,\"/\")).substring(1);if(\"local\"===o.type){const e=l.get(n),r=await s.loadRemoteEntry(e);s.storeLocalEntry(t,r)}else{const e=s.loadLocalEntry(t);await s.storeRemoteEntry(l,n,e)}}for(const t of c)if(\"local\"===o.type)s.removeLocalEntry(t);else{const n=r.normalize(t.replace(e.mountpoint,\"/\")).substring(1);await s.removeRemoteEntry(l,n)}}};return e.FS.filesystems.NATIVEFS_ASYNC=s,async function(e,n){if(\"FileSystemDirectoryHandle\"!==n.constructor.name)throw new TypeError(\"Expected argument 'fileSystemHandle' to be a FileSystemDirectoryHandle\");return function(e){t.mkdirTree?t.mkdirTree(e):tn(t,e);const{node:n}=t.lookupPath(e,{follow_mount:!1});if(t.isMountpoint(n))throw new Error(`path '${e}' is already a file system mount point`);if(!t.isDir(n.mode))throw new Error(`path '${e}' points to a file not a directory`);for(const t in n.contents)throw new Error(`directory '${e}' is not empty`)}(e),t.mount(t.filesystems.NATIVEFS_ASYNC,{fileSystemHandle:n},e),await Fn(t,!0),{syncfs:async()=>await Fn(t,!1)}}}const Rn=async e=>{const t=[];await async function e(n){for await(const r of n.values())t.push(r),\"directory\"===r.kind&&await e(r)}(e);const n=new Map;n.set(\".\",e);for(const r of t){const t=(await e.resolve(r)).join(\"/\");n.set(t,r)}return n},Dn=(e,t)=>{try{e.mkdir(t)}catch(e){}},Tn=pn(\"mpy\");var On={type:\"micropython\",module:(e=\"1.25.0\")=>`https://cdn.jsdelivr.net/npm/@micropython/micropython-webassembly-pyscript@${e}/micropython.mjs`,async engine({loadMicroPython:e},t,n,r){const{stderr:s,stdout:o,get:a}=wt({stderr:bt(console.error),stdout:bt(console.log)});n=n.replace(/\\.m?js$/,\".wasm\"),Tn(\"Loading MicroPython\");const i=await a(e({linebuffer:!1,stderr:s,stdout:o,url:n})),c=Ln.bind(this,i,r);return En.set(i,c),await kn(this,Tn,i,t,r),this.writeFile(i,\"./mip.py\",Bn),t.packages&&(Tn(\"Loading packages\"),await c(t.packages.map(Mt,r)),Tn(\"Loaded packages\")),Tn(\"Loaded MicroPython\"),i.mountNativeFS||(i.mountNativeFS=Pn(i._module)),i},registerJSModule:vn,run:xn,runAsync:$n,runEvent:jn,transform:(e,t)=>e.PyProxy.toJs(t),writeFile:(e,t,n,r)=>{const{FS:s,_module:{PATH:o,PATH_FS:a}}=e,i={FS:s,PATH:o,PATH_FS:a},c=Sn(t,r);if(c){const r=t.slice(0,-1);switch(\"./\"!==r&&s.mkdir(r),c){case\"whl\":case\"zip\":{const e=new Blob([n],{type:\"application/zip\"});return import(\"./zip-BKVoQflw.js\").then(async({BlobReader:t,Uint8ArrayWriter:n,ZipReader:a})=>{const i=new a(new t(e));for(const e of await i.getEntries()){const{directory:t,filename:a}=e,i=r+a;if(t)Dn(s,i);else{Dn(s,o.dirname(i));const t=await e.getData(new n);s.writeFile(i,t,{canOwn:!0})}}i.close()})}case\"tgz\":case\"tar.gz\":{const t=\"./_.tar.gz\";return Qt(i,t,n),void e.runPython(`\\n import os, gzip, tarfile\\n tar = tarfile.TarFile(fileobj=gzip.GzipFile(fileobj=open(\"${t}\", \"rb\")))\\n for f in tar:\\n name = f\"${r}{f.name}\"\\n if f.type == tarfile.DIRTYPE:\\n if f.name != \"./\":\\n os.mkdir(name.strip(\"/\"))\\n else:\\n dir = os.path.dirname(name)\\n if not os.path.exists(dir):\\n os.mkdir(dir)\\n source = tar.extractfile(f)\\n with open(name, \"wb\") as dest:\\n dest.write(source.read())\\n dest.close()\\n tar.close()\\n os.remove(\"${t}\")\\n `)}}}return Qt(i,t,n)}};async function Ln(e,t,n){let r;for(const s of n)if(s.endsWith(\".whl\")){const n=Bt(s,t),r=await Yt(n).arrayBuffer();await this.writeFile(e,\"./*\",r,n)}else r||(r=e.pyimport(\"mip\")),r.install(s)}const Cn={dict_converter:Object.fromEntries},{stringify:In}=JSON,{apply:Hn}=Reflect,Un=Function.prototype,Wn=e=>function(...t){return Hn(e,this,t)};let Nn,qn;const Jn=e=>{const t=new WeakMap,n=n=>{for(let r,s=0;s<n.length;s++)switch(typeof(r=n[s])){case\"object\":if(null===r)break;case\"function\":if(Nn in r&&!r[Nn].shared?.gcRegistered){e=!1;let o=t.get(r)?.deref();if(!o){o=qn(r);const e=new WeakRef(o);t.set(r,e),t.set(o,e)}n[s]=o,e=!0}}};Object.defineProperties(Un,{apply:{value(t,r){return e&&n(r),Hn(this,t,r)}},call:{value(t,...r){return e&&n(r),Hn(this,t,r)}}})},zn=pn(\"py\"),Kn=new WeakMap;var Gn={type:\"pyodide\",module:(e=\"0.27.7\")=>`https://cdn.jsdelivr.net/pyodide/v${e}/full/pyodide.mjs`,async engine({loadPyodide:e,version:t},n,r,s){zn(\"Loading Pyodide\");let{packages:o,index_urls:a}=n;o&&(o=o.map(Mt,s)),zn(\"Loading Storage\");const c=r.slice(0,r.lastIndexOf(\"/\")),l=new i(`${c}@${t}`),u={indexURL:c},p=\"never\"!==n.packages_cache;if(await l.sync(),p){if(o)if(\"passthrough\"===n.packages_cache)u.packages=o,o=null,l.clear();else{o=o.sort();const e=In(o);if(l.has(e)){const t=new Blob([l.get(e)],{type:\"application/json\"});u.lockFileURL=URL.createObjectURL(t),u.packages=o.map(e=>e.split(/[>=<]=/)[0]),o=null}}}else l.clear();zn(\"Loaded Storage\");const{stderr:d,stdout:f,get:h}=wt(),y=await h(e({stderr:d,stdout:f,...u}));n.debug&&y.setDebug(!0);const m=Xn.bind(y);return a&&Kn.set(y,a),En.set(y,m),await kn(this,zn,y,n,s),o&&await m(o,l,p),await l.close(),u.lockFileURL&&URL.revokeObjectURL(u.lockFileURL),zn(\"Loaded Pyodide\"),\"auto\"===n.experimental_create_proxy&&(y.runPython([\"import js\",\"from pyodide.ffi import to_js\",\"o=js.Object.fromEntries\",\"js.experimental_create_proxy=lambda r:to_js(r,dict_converter=o)\"].join(\";\"),{globals:y.toPy({})}),qn=globalThis.experimental_create_proxy,delete globalThis.experimental_create_proxy,[Nn]=Reflect.ownKeys(qn).filter(e=>\"symbol\"==typeof e&&\"Symbol(pyproxy.attrs)\"===String(e)),Jn(!0)),y},registerJSModule:vn,run:Wn(xn),runAsync:Wn($n),runEvent:Wn(jn),transform:(e,t)=>Hn(Vn,e,[t]),writeFile:(e,t,n,r)=>{const s=Sn(t,r);if(s)return e.unpackArchive(n,s,{extractDir:t.slice(0,-1)});const{FS:o,PATH:a,_module:{PATH_FS:i}}=e;return Qt({FS:o,PATH:a,PATH_FS:i},t,n)}};function Vn(e){const{ffi:{PyProxy:t}}=this;if(e&&\"object\"==typeof e){if(e instanceof t)return e.toJs(Cn);if(e instanceof Map)return new Map([...e.entries()]);if(Et(e))return e.map(Vn,this)}return e}async function Xn(e,t,n=!1){const{log:r}=console,s=(e,...t)=>{r(e,...t),console.log=r,zn(e),console.log=s};console.log=s,await this.loadPackage(\"micropip\");const o=this.pyimport(\"micropip\");if(Kn.has(this)&&o.set_index_urls(Kn.get(this)),await o.install(e,{keep_going:!0}),console.log=r,n&&t instanceof i){const n=o.freeze();t.set(In(e),n)}o.destroy()}const Yn=\"ruby-wasm-wasi\",Zn=Yn.replace(/\\W+/g,\"_\");var Qn={type:Yn,experimental:!0,module:(e=\"2.7.1\")=>`https://cdn.jsdelivr.net/npm/@ruby/3.2-wasm-wasi@${e}/dist/browser/+esm`,async engine({DefaultRubyVM:e},t,n,r){n=n.replace(/\\/browser\\/\\+esm$/,\"/ruby.wasm\");const s=await Yt(n).arrayBuffer(),o=await WebAssembly.compile(s),{vm:a}=await e(o);return t.files&&await ln(this,a,t.files,r),t.fetch&&await on(this,a,t.fetch,r),t.js_modules&&await un(t.js_modules,r),a},registerJSModule(e,t,n){t=t.replace(/\\W+/g,\"__\");const r=`__module_${Zn}_${t}`;globalThis[r]=n,this.run(e,`require \"js\";$${t}=JS.global[:${r}]`),delete globalThis[r]},run:(e,t,...n)=>e.eval(At(t),...n),runAsync:(e,t,...n)=>e.evalAsync(At(t),...n),async runEvent(e,t,n){if(/^xworker\\.(on\\w+)$/.test(t)){const{$1:t}=RegExp,r=`__module_${Zn}_event`;globalThis[r]=n,this.run(e,`require \"js\";$xworker.call(\"${t}\",JS.global[:${r}])`),delete globalThis[r]}else{const r=this.run(e,`method(:${t})`);await r.call(t,e.wrap(n))}},transform:(e,t)=>t,writeFile:()=>{throw new Error(`writeFile is not supported in ${Yn}`)}};var er={type:\"wasmoon\",module:(e=\"1.16.0\")=>`https://cdn.jsdelivr.net/npm/wasmoon@${e}/+esm`,async engine({LuaFactory:e,LuaLibraries:t},n,r,s){const{stderr:o,stdout:a,get:i}=wt(),c=await i((new e).createEngine());return c.global.getTable(t.Base,e=>{c.global.setField(e,\"print\",a),c.global.setField(e,\"printErr\",o)}),n.files&&await ln(this,c,n.files,s),n.fetch&&await on(this,c,n.fetch,s),n.js_modules&&await un(n.js_modules,s),c},registerJSModule:(e,t,n)=>{e.global.set(t,n)},run:(e,t,...n)=>{try{return e.doStringSync(At(t),...n)}catch(t){gt.get(e).stderr(t)}},runAsync:async(e,t,...n)=>{try{return await e.doString(At(t),...n)}catch(t){gt.get(e).stderr(t)}},runEvent:async(e,t,n)=>{const[r,...s]=t.split(\".\");let o,a=e.global.get(r);for(const e of s)[o,a]=[a,a[e]];try{await a.call(o,n)}catch(t){gt.get(e).stderr(t)}},transform:(e,t)=>t,writeFile:({cmodule:{module:{FS:e}}},t,n)=>((e,t,n)=>(tn(e,en(t)),t=nn(e,t),e.writeFile(t,new Uint8Array(n),{canOwn:!0})))(e,t,n)};const tr=new WeakMap,nr=new FinalizationRegistry(e=>e()),rr=async(e,t)=>{const{shelter:n,destroy:r,io:s}=tr.get(e),{output:o,result:a}=await n.captureR(At(t));for(const{type:e,data:t}of o)s[e](t);return nr.register(a,r),a};var sr={type:\"webr\",experimental:!0,module:(e=\"0.4.4\")=>`https://cdn.jsdelivr.net/npm/webr@${e}/dist/webr.mjs`,async engine(e,t,n,r){const{get:s}=wt(),o=new e.WebR;await s(o.init().then(()=>o));const a=await new o.Shelter;return tr.set(o,{module:e,shelter:a,destroy:a.destroy.bind(a),io:gt.get(o)}),t.files&&await ln(this,o,t.files,r),t.fetch&&await on(this,o,t.fetch,r),t.js_modules&&await un(t.js_modules,r),o},registerJSModule(e,t){console.warn(`Experimental interpreter: module ${t} is not supported (yet)`)},run:rr,runAsync:rr,async runEvent(e,t,n){await e.evalRVoid(`${t}(event)`,{env:{event:{type:[n.type]}}})},transform:(e,t)=>t,writeFile:()=>{}};const or=new Map,ar=new Map,ir=new Proxy(new Map,{get(e,t){if(!e.has(t)){const[n,...r]=t.split(\"@\"),s=or.get(n),o=/^(?:\\.?\\.?\\/|[a-z0-9-]+:\\/\\/)/i.test(r)?r.join(\"@\"):s.module(...r);e.set(t,{url:o,module:import(o),engine:s.engine.bind(s)})}const{url:n,module:r,engine:s}=e.get(t);return(e,o)=>r.then(r=>(ar.set(t,e),s(r,e,n,o)))}}),cr=e=>{for(const t of[].concat(e.type))or.set(t,e)};for(const e of[Kt,On,Gn,Qn,er,sr])cr(e);const{parse:lr}=JSON,ur=(e,t,n={})=>{const[r,s]=((e,t=\"./config.txt\")=>{let n=typeof e;return\"string\"===n&&/\\.(json|toml|txt)$/.test(e)?n=RegExp.$1:e=t,[Bt(e),n]})(e,t);return\"json\"===s?n=Yt(r).json():\"toml\"===s?n=Yt(r).text().then(Mn):\"string\"===s?n=pr(e):\"object\"===s&&e?n=e:\"txt\"===s&&\"string\"==typeof n&&(n=pr(n)),[n,e=r]},pr=e=>{try{return lr(e)}catch(t){return Mn(e)}},dr=\"BeforeRun\",fr=\"AfterRun\",hr=[`code${dr}`,`code${dr}Async`,`code${fr}`,`code${fr}Async`],yr=[\"onWorker\",\"onReady\",`on${dr}`,`on${dr}Async`,`on${fr}`,`on${fr}Async`];function mr(e,t){const{run:n,runAsync:r}=or.get(this.type);return{...e,run:n.bind(this,t),runAsync:r.bind(this,t)}}const gr=(e,t,n,r,s,o)=>{if(s||o){const a=mr.bind(e,t),i=r?\"runAsync\":\"run\",c=e[i];e[i]=r?async function(e,t,...r){s&&await s.call(this,a(e),n);const i=await c.call(this,e,t,...r);return o&&await o.call(this,a(e),n),i}:function(e,t,...r){s&&s.call(this,a(e),n);const i=c.call(this,e,t,...r);return o&&o.call(this,a(e),n),i}}};let wr,_r,br;const Ar=(e,t)=>{addEventListener(e,t||(async t=>{try{await wr,_r(`xworker.on${e}`,t)}catch(e){postMessage(e)}}),!!t&&{once:!0})},{proxy:Er,sync:kr,native:vr,window:Sr,isWindowProxy:xr,ffi:$r}=await(async e=>{const t=await yt({...e,decoder:e?.decoder||ce}),n=He({...e,buffer:!0,reflect:t.proxy[l],timeout:t.ffi_timeout});return t.proxy[u]=n.reflect,{...t,window:n.global,isWindowProxy:n.isProxy,ffi:{assign:n.assign,direct:n.direct,evaluate:n.evaluate,gather:n.gather,query:n.query}}})({transfer:!1,transform:e=>br?br(e):e}),jr={polyfill:kr,sync:Er,window:vr||kr?Sr:null,isWindowProxy:xr,onmessage:console.info,onerror:console.error,onmessageerror:console.warn,postMessage:postMessage.bind(self)};Ar(\"message\",({data:{options:e,config:t,configURL:n,code:r,hooks:s}})=>{wr=(async()=>{try{const{id:o,tag:c,type:l,custom:u,version:p,config:d,async:f}=e,h=((e,t=\"\")=>`${e}@${t}`.replace(/@$/,\"\"))(l,p),y=await((e,t,n,r={})=>(t&&([r,t]=ur(t,n,r)),jt(r).then(n=>ir[e](n,t))))(h,t,n,d),{js_modules:m}=ar.get(h),g=m?.main,w=vt(or.get(l)),_=((e,t,n,r)=>({type:t,config:n,interpreter:r,io:gt.get(r),run:(t,...n)=>e.run(r,t,...n),runAsync:(t,...n)=>e.runAsync(r,t,...n),runEvent:(...t)=>e.runEvent(r,...t)}))(w,u||l,d||{},y);let b=\"run\";if(f&&(b+=\"Async\"),s){let e,t,n=\"\",r=\"\";for(const e of hr){const t=s[e];if(t){const s=e.endsWith(\"Async\");(s&&f||!s&&!f)&&(e.startsWith(\"codeBefore\")?n=t:r=t)}}(n||r)&&((e,t,n,r)=>{const s=e[t].bind(e);e[t]=\"run\"===t?(e,t,...o)=>{n&&s(e,n,...o);const a=s(e,Rt(t),...o);return r&&s(e,r,...o),a}:async(e,t,...o)=>{n&&await s(e,n,...o);const a=await s(e,Rt(t),...o);return r&&await s(e,r,...o),a}})(w,b,n,r);for(const n of yr.slice(2)){const r=s[n];if(r){const s=n.endsWith(\"Async\");if(s&&f||!s&&!f){const s=Pt(r);n.startsWith(\"onBefore\")?e=s:t=s}}}gr(w,_,jr,f,e,t)}let A,E,k,v=null,S=\"\";(vr||kr)&&(({CustomEvent:A,document:E}=Sr),v=o&&E.getElementById(o)||null,k=e=>Ft(v,u||l,e,!0,A));const x=Nt(Sr,Er,g,t);if(((e,t,n,r)=>{if(\"pyodide\"===e)return;const s=\"polyscript.js_modules\";for(const e of Reflect.ownKeys(r))t.registerJSModule(n,`${s}.${e}`,Lt(r,e));t.registerJSModule(n,s,r)})(l,w,y,x),w.registerJSModule(y,\"polyscript\",{IDBMap:a,IDBMapSync:i,xworker:jr,currentScript:v,config:_.config,js_modules:x,ffi:$r,get target(){return!S&&v&&(\"SCRIPT\"===c?v.after(kt(Sr.document.createElement(`script-${u||l}`),{id:S=`${o}-target`})):(S=o,v.replaceChildren(),v.style.display=\"block\")),S}}),_r=w.runEvent.bind(w,y),br=w.transform.bind(w,y),v&&k(\"ready\"),s?.onReady&&Pt(s?.onReady).call(w,mr.call(w,_,y),jr),await w[b](y,r),[\"micropython\",\"pyodide\"].includes(w.type)){const e=\"polyscript\",t=`__${e}_workers__`,n=\"__export__\";y.runPython([`import js as ${t}`,`${t}.${t} = \"${n}\" in locals() and ${n} or []`,`del ${t}`].join(\"\\n\"));const r=[...globalThis[t]];delete globalThis[t],r.length&&y.runPython([`from ${e} import xworker as ${t}`,...r.map(e=>`${t}.sync.${e} = ${e}`),`del ${t}`].join(\"\\n\"))}return v&&k(\"done\"),postMessage(\"polyscript:done\"),y}catch(e){postMessage(e)}})(),Ar(\"error\"),Ar(\"message\"),Ar(\"messageerror\"),(vr||kr)&&addEventListener(\"py:progress\",({type:e,detail:t})=>{Sr.dispatchEvent(new Sr.CustomEvent(e,{detail:t}))})});\n".replace(re,place)],{type:'text/javascript'})), ...args)
/* c8 ignore stop */
{
"name": "polyscript",
"version": "0.17.32",
"version": "0.17.33",
"description": "PyScript single core to rule them all",

@@ -50,3 +50,3 @@ "main": "./esm/index.js",

"@node-loader/import-maps": "^1.1.0",
"@playwright/test": "^1.53.1",
"@playwright/test": "^1.53.2",
"@rollup/plugin-node-resolve": "^16.0.1",

@@ -99,4 +99,4 @@ "@rollup/plugin-terser": "^0.4.4",

"worker": {
"blob": "sha256-0iNYLCULhuZ1/9hfRtU2P1sy8ROVPHtopwnp0+qn/a4="
"blob": "sha256-8QhxMuSDadSIcmEC3hl5kz2JvOET2oQF3G/GQQ3NWX4="
}
}

Sorry, the diff of this file is too big to display

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

About

Packages

Stay in touch

Get open source security insights delivered straight into your inbox.

  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc

U.S. Patent No. 12,346,443 & 12,314,394. Other pending.