-
Notifications
You must be signed in to change notification settings - Fork 6
Expand file tree
/
Copy pathindex.js
More file actions
2 lines (2 loc) · 123 KB
/
index.js
File metadata and controls
2 lines (2 loc) · 123 KB
1
2
const e=(e,t=document)=>[...t.querySelectorAll(e)],t=(e,t=document)=>{const n=(new XPathEvaluator).createExpression(e).evaluate(t,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE),r=[];for(let e=0,{snapshotLength:t}=n;e<t;e++)r.push(n.snapshotItem(e));return r},n=Object.getOwnPropertyDescriptors(Response.prototype),r=e=>"function"==typeof e,s={get:(e,t)=>n.hasOwnProperty(t)?((e,t,{get:n,value:s})=>n||!r(s)?e.then(e=>e[t]):(...n)=>e.then(e=>e[t](...n)))(e,t,n[t]):((e,t)=>r(t)?t.bind(e):t)(e,e[t])};var o=(e,...t)=>new Proxy(fetch(e,...t).then(t=>t.ok?t:Promise.reject(new Error(`[${t.status}] Unable to fetch ${e}`))),s);const{assign:a}=Object,i="entries",c="readonly",l="readwrite",p={durability:"default",prefix:"IDBMap"},u=({target:{result:e}})=>e;class d extends EventTarget{#e;#t;#n;async#r(e,t){const n=(await this.#e).transaction(i,t,this.#t);return new Promise((t,r)=>a(e(n.objectStore(i)),{onsuccess:t,onerror:r}))}constructor(e,{durability:t=p.durability,prefix:n=p.prefix}=p){super(),this.#n=n,this.#t={durability:t},this.#e=new Promise((t,n)=>{a(indexedDB.open(`${this.#n}/${e}`),{onupgradeneeded({target:{result:e,transaction:n}}){e.objectStoreNames.length||e.createObjectStore(i),n.oncomplete=()=>t(e)},onsuccess(e){t(u(e))},onerror(e){n(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(e){const{type:t,message:n,isTrusted:r}=e;return super.dispatchEvent(r?a(new Event(t),{message:n}):e)}async close(){(await this.#e).close()}get size(){return this.#r(e=>e.count(),c).then(u)}async clear(){await this.#r(e=>e.clear(),l)}async delete(e){await this.#r(t=>t.delete(e),l)}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),c).then(u)}async has(e){return void 0!==await this.#r(t=>t.getKey(e),c).then(u)}async keys(){return await this.#r(e=>e.getAllKeys(),c).then(u)}async set(e,t){return await this.#r(n=>n.put(t,e),l),this}async values(){const e=await this.keys();return Promise.all(e.map(e=>this.get(e)))}get[Symbol.toStringTag](){return this.#n}}class f extends Map{#s;#o;constructor(...e){super(),this.#s=new d(...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)}}var h=Promise.withResolvers.bind(Promise);const y=new Proxy(new Map,{get:(e,t)=>(e.has(t)||e.set(t,h()),e.get(t))}),m=new Set(["__dict__","constructor","get","has","includes","next","set","then"]),g={get:(e,t)=>{const n=e[t];return"__export__"===t?n():n}},w=new Proxy(Object.freeze({}),{get:(e,t)=>"string"!=typeof t||m.has(t)?void 0:y[t].promise.then(e=>new Proxy(e.sync,g))});let b=0;const _=b++,k=b++,A=b++,v=b++,x=b++,E=b++,j=b++,S=b++,$=b++,B=b++,M=b++,F=b++,P=b++,T=b++,R=b++;b++;const D=b++,L=b++;const O=globalThis.ImageData||class{},C=new Map(Reflect.ownKeys(Symbol).map(e=>[Symbol[e],`@${String(e)}`])),I=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()}},W=e=>C.get(e)||((e,t)=>void 0===t?"?":void 0===Symbol.keyFor(e)?`!${t}`:`#${t}`)(e,e.description),U=Object.defineProperty,z=Object.assign,N=Array.from,H=Array.isArray,q=ArrayBuffer.isView,J=(e,t)=>[e,t],K=e=>e,G={},X=e=>(t,n=new Map)=>{for(let r=0,s=t.length;r<s;r++)t[r]=e(t[r],n);return t},Y=([e,t])=>0===e?t:I(t),V=e=>"string"==typeof e?J(0,e):J(16,W(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))},{getPrototypeOf:Q}=Object,{construct:ee}=Reflect,{toStringTag:te}=Symbol,{toString:ne}=G,re=(e,t=e[te])=>t in globalThis?t:re(ee(Q(e.constructor),[0])),se=(e,t)=>[t?e:N(new Uint8Array(e)),e.resizable?e.maxByteLength:0],oe=/\[('|")?(.+?)\1\]/g,ae=(e,t)=>e?.[t];var ie=(e,t)=>t.replace(oe,".$2").split(".").reduce(ae,e),ce=(e,...t)=>t.map(le,e);function le(e){return"string"==typeof e?ie(this,e):this[e]}const pe=globalThis.Node||class{},{apply:ue,construct:de,defineProperty:fe,deleteProperty:he,get:ye,getOwnPropertyDescriptor:me,getPrototypeOf:ge,has:we,isExtensible:be,ownKeys:_e,set:ke,setPrototypeOf:Ae}=Reflect;var ve=({reflect:e=K,transform:t=K,remote:n=K,module:r=e=>import(e),buffer:s=!1,timeout:o=-1}=G)=>{const a=(t,r=new Map)=>{if(!H(t))return t;const[s,o]=t;switch(s){case 2:{if(null===o)return globalThis;let e=r.get(t);if(!e){e=o,r.set(t,o);for(const e in o)o[e]=a(o[e],r)}return e}case 4:return r.get(t)||(r.set(t,o),c(o,r));case 8:{let t=g.get(o),r=t?.deref();return r||(t&&b.unregister(t),r=function(...t){n.apply(this,t);for(let e=0,n=t.length;e<n;e++)t[e]=i(t[e]);return e(E,o,i(this),t).then(a)},t=new WeakRef(r),g.set(o,t),b.register(r,o,t)),r}case 16:return I(o);default:return 1&s?f(o):o}},i=e=>{switch(typeof e){case"object":{if(null===e)break;if(e===globalThis)return w;const n=t(e);return U&&C.has(n)||n instanceof O?J(0,n):q(n)?J(68,((e,t)=>{const{BYTES_PER_ELEMENT:n,byteOffset:r,buffer:s,length:o}=e;return[re(e),se(s,t),r,o!==(s.byteLength-r)/n?o:0]})(n,s)):n instanceof ArrayBuffer?J(64,se(n,s)):J(H(n)?5:3,d(n))}case"function":return J(9,d(t(e)));case"symbol":return J(16,W(e));case"bigint":return J(32,e.toString())}return e},c=X(a),l=X(Y),p=X(V),{clear:u,id:d,ref:f,unref:h}=((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))}))(),y=/^(?:[0-9]+|length)$/,m=-1<o,g=new Map,w=J(2,null),b=new FinalizationRegistry(t=>{g.delete(t),e(_,t)});let C,U=!1;return{assign:z,gather:ce,query:ie,direct:e=>(U||(U=!0,C=new WeakSet),C.add(e),e),evaluate:(e,...t)=>ue(e,null,t),reflect(e,t,...n){const s=null===t,o=s?globalThis:f(t);switch(e){case B:{const e=Y(n[0]),t=s&&"import"===e,a=t?r:ye(o,e),c=i(a);if(!m)return c;let l,p=t,u=o;if(!t&&!(u instanceof pe||H(u)&&"string"==typeof e&&y.test(e)))if(e in o){for(;!(l=me(u,e))&&(u=ge(u),u););p=!!l&&"value"in l}else p=!0;return[p,c]}case E:{const e=new Map;return i(ue(o,a(n[0],e),c(n[1],e)))}case D:return ke(o,Y(n[0]),a(n[1]));case P:return we(o,Y(n[0]));case R:return p(_e(o),g);case j:return i(de(o,c(n[0])));case M:{const e=me(o,Y(n[0]));if(e)for(const t in e)e[t]=i(e[t]);return e}case S:return fe(o,Y(n[0]),a(n[1]));case $:return he(o,Y(n[0]));case F:return i(ge(o));case L:return Ae(o,a(n[0]));case k:return void z(o,a(n[0]));case A:{const e=a(n[0]),t=Function(`return(${e}).apply(null,arguments)`);return i(ue(t,null,c(n[1])))}case v:for(let e,t=0,r=(n=l(n[0],g)).length;t<r;t++)e=n[t],n[t]=i("string"==typeof e?ie(o,e):o[e]);return n;case x:return i(ie(o,n[0]));case _:return h(t);case T:return be(o)}},terminate(){for(const e of g.values())b.unregister(e);g.clear(),u()}}};const{addEventListener:xe}=EventTarget.prototype,Ee=new WeakMap;Reflect.defineProperty(EventTarget.prototype,"addEventListener",{value(e,t,n){const r=n?.invoke;if(r){let t=Ee.get(this);t||Ee.set(this,t=new Map),t.set(e,[].concat(r)),delete n.invoke}return xe.apply(this,arguments)}});let je=0;const Se=je++,$e=je++,Be=je++,Me=je++,Fe=je++,Pe=je++,Te=je++,Re=je++,De=je++,Le=je++,Oe=je++,Ce=je++,Ie=je++,We=je++,Ue=je++,ze=je++,Ne=je++,He=je++,qe=je++,Je=je++,Ke=je++,Ge=je++,Xe=je++,Ye=je++,Ve=je++,Ze=je++,Qe=je++,et=je++;class tt{static push(e,t){e.sync(!1),e._(t,t.length)}constructor(e,t){const n=[];this.l=0,this.o=n,this.v=new Uint8Array(e,t),this.push=n.push.bind(n)}get length(){return this.l+this.o.length}sync(e){const t=this.o,n=t.length;n&&this._(e?t:t.splice(0),n)}_(e,t){const{buffer:n,byteOffset:r}=this.v,s=this.l;this.l+=t,t+=r+s,n.byteLength<t&&n.grow(t),this.v.set(e,s)}}const nt=new TextDecoder,rt=new TextEncoder,st=new ArrayBuffer(8),ot=new DataView(st),at=new Uint8Array(st),{isNaN:it,isFinite:ct,isInteger:lt}=Number,{ownKeys:pt}=Reflect,{is:ut}=Object,dt=(e,t,n)=>{const r=n.get(e),s=!r;return s?(ot.setUint32(0,t.length,!0),n.set(e,[at[0],at[1],at[2],at[3]])):t.push(et,r[0],r[1],r[2],r[3]),s},ft=(e,t,n)=>{ot.setUint32(0,n,!0),e.push(t,at[0],at[1],at[2],at[3])},ht=(e,t,n)=>{switch(typeof e){case"number":e&&ct(e)?lt(e)&&e<256&&-1<e?t.push(Pe,e):(ot.setFloat64(0,e,!0),t.push(Fe,at[0],at[1],at[2],at[3],at[4],at[5],at[6],at[7])):it(e)?t.push(Te):e?t.push(e<0?De:Re):t.push(ut(e,0)?Le:Oe);break;case"object":switch(!0){case null===e:t.push(Me);break;case!dt(e,t,n):break;case H(e):{const r=e.length;ft(t,ze,r);for(let s=0;s<r;s++)ht(e[s],t,n);break}case q(e):if(t.push(Ye),ht(re(e),t,n),e=e.buffer,!dt(e,t,n))break;case e instanceof ArrayBuffer:{const n=new Uint8Array(e);ft(t,Ne,n.length),mt(t,n);break}case e instanceof Date:t.push(He),ht(e.getTime(),t,n);break;case e instanceof Map:ft(t,Je,e.size);for(const[r,s]of e)ht(r,t,n),ht(s,t,n);break;case e instanceof Set:ft(t,Xe,e.size);for(const r of e)ht(r,t,n);break;case e instanceof Error:t.push(qe),ht(e.name,t,n),ht(e.message,t,n),ht(e.stack,t,n);break;case e instanceof O:t.push(Ve),ht(e.data,t,n),ht(e.width,t,n),ht(e.height,t,n),ht(e.colorSpace,t,n),ht(e.pixelFormat,t,n);break;case e instanceof RegExp:t.push(Ge),ht(e.source,t,n),ht(e.flags,t,n);break;case e instanceof File:t.push(Qe),ht(e.name,t,n),ht(e.lastModified,t,n);case e instanceof Blob:{const r=e.size;t.push(Ze),ht(e.type,t,n),ht(r,t,n);const s=t.length;mt(t,new Uint8Array(r)),yt.push(e.arrayBuffer().then(e=>[s,e]));break}default:if("toJSON"in e){const r=e.toJSON();ht(r===e?null:r,t,n)}else{const r=pt(e),s=r.length;ft(t,Ke,s);for(let o=0;o<s;o++){const s=r[o];ht(s,t,n),ht(e[s],t,n)}}}break;case"string":if(dt(e,t,n)){const n=rt.encode(e);ft(t,We,n.length),mt(t,n)}break;case"boolean":t.push(e?$e:Se);break;case"symbol":t.push(Ue),ht(W(e),t,n);break;case"bigint":{let n=Ce;9223372036854775807n<e?(ot.setBigUint64(0,e,!0),n=Ie):ot.setBigInt64(0,e,!0),t.push(n,at[0],at[1],at[2],at[3],at[4],at[5],at[6],at[7]);break}default:t.push(Be)}},yt=[];let mt=Z;const gt=({byteOffset:e=0,Array:t=tt}={})=>(n,r)=>{const s=new t(r,e);mt=t.push,ht(n,s,new Map);const o=s.length;return s.sync(!0),yt.length?Promise.all(yt.splice(0)).then(t=>{const n=new Uint8Array(r,e);for(const[e,r]of t)n.set(new Uint8Array(r),e);return o}):o},wt="59317780",bt="="+wt,_t="-"+wt;var kt=(e=e=>e)=>{const t=new Map;let n=0;return[()=>{let r;do{r=e(n++)}while(t.has(r));const s=h();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 At=[],vt=new WeakSet,xt=(...e)=>(vt.add(e),e);let{SharedArrayBuffer:Et}=globalThis,jt=!0;try{new Et(4,{maxByteLength:8})}catch(e){jt=!1,Et=class extends ArrayBuffer{get growable(){return super.resizable}grow(e){super.resize(e)}}}const{assign:St,create:$t}=Object,Bt=`coincident-${jt?crypto.randomUUID():Math.random().toString(36).substring(2)}`,Mt={byteOffset:2*Int32Array.BYTES_PER_ELEMENT},Ft=(e,t,n)=>{const r="then"!==t;return r&&(e[t]=n),r},Pt=e=>{e.stopImmediatePropagation(),e.preventDefault()},Tt=(e,t=-1)=>e?.reflected_ffi_timeout??t,{defineProperty:Rt}=Object,[Dt,Lt]=kt();let[Ot,Ct]=Dt(),It=()=>Ct,{Atomics:Wt,MessageChannel:Ut,Worker:zt}=globalThis;if(jt)Lt(Ot);else{const e=new Map,t=(e,...t)=>{e.addEventListener(...t)};if("importScripts"in globalThis){t(globalThis,"message",e=>{Pt(e),Lt(Ot,e.data)},{once:!0});const{wait:n}=Wt,{parse:r}=JSON,s=t=>{const n=new XMLHttpRequest;try{if(n.timeout=3e3,n.open("POST",`${i}?sabayon`,!1),n.setRequestHeader("Content-Type","application/json"),n.send(`["${a}",${e.get(t)}]`),200===n.status)return n;throw n}catch{return n.abort(),s(t)}},o=(e,t)=>(e.set(r(t.responseText)),"ok");let a,i;Wt={wait:(t,...r)=>e.has(t)?o(t,s(t)):n(t,...r)},Ct=Ct.then(e=>{[a,i]=e})}else{const n=[Bt,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 s=t=>{const[n,r,s]=t.data;e.set(r,[n,h()]),Rt(t,"data",{value:s})};Ut=class extends Ut{constructor(){super(),t(this.port1,"message",s)}},zt=class extends zt{constructor(e,t){super(e,t),super.postMessage([n,a])}};const{notify:o}=Wt;Wt={notify(t,...n){const r=e.get(t);return r?(r[1].resolve(),0):o(t,...n)}};let a="",i=null;const c=(e,n)=>{let r,s=!0;e.getRegistration(a).then(t=>t??e.register(a,n)).then(function n(o){const{controller:i}=e;if(s=s&&!!i,r=o.installing||o.waiting||o.active,"activated"===r.state){if(s){if(i.scriptURL===a)return Lt(Ot);o.unregister()}location.reload()}else t(r,"statechange",()=>n(o),{once:!0})})};It=(e,t)=>{if(!i){const n=new URL(e,location.href);a=`${n.protocol}//${n.host}${n.pathname}`,c(navigator.serviceWorker,t),i=Ct}return i}}}const Nt="InstallTrigger"in globalThis?Bt:"",Ht=e=>e,qt=e=>e===bt?"main":e===_t?"worker":e;class Jt extends Event{#a;constructor(e){super("message"),this.#a=e}get data(){return this.#a}}var Kt=e=>{const t=e?.transform,n=Tt(e),r=(e?.encoder||gt)(Mt),s=!1!==e?.transfer;return{Worker:class extends zt{constructor(e,o){const a=jt?"":o?.serviceWorker||"",{notify:i}=a?Wt:Atomics,{port1:c,port2:l}=new(a?Ut:MessageChannel),[p,u]=kt(Ht),d=new Map,f=$t(null);a&&It(a);let h="";super(e,St({type:"module"},o)),this.proxy=new Proxy(f,{get:(e,n)=>{if("then"===n)return;let r=d.get(n);return r||d.set(n,r=(...e)=>{const r=((e,t)=>{let n=At;return e&&H(t.at(-1))&&vt.has(t.at(-1))&&(n=t.pop(),vt.delete(n)),n})(s,e),[o,a]=p();return c.postMessage([o,n,t?e.map(t):e],r),((e,t)=>{if(h){const n=setTimeout(console.warn,3e3,`💀🔒 - is proxy.${qt(h)}() awaiting proxy.${qt(t)}() ?`);e=e.then(e=>(clearTimeout(n),e),e=>(clearTimeout(n),Promise.reject(e)))}return e})(a,n)}),r},set:Ft}),Nt&&(jt||a)&&super.addEventListener("message",e=>{const{data:t}=e;t?.ID===Nt&&(Pt(e),c.dispatchEvent(new Jt(t.data)))}),super.postMessage([Nt,a,Tt(o,n)],[l]),c.addEventListener("message",async({data:e})=>{const n=e[0],s=typeof n;if("number"===s)u.apply(null,e);else if(h=e[1],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,f,t),h="","string"===s)c.postMessage(e);else{const t=e[2]||e[1],s=void 0===t?0:r(t,n.buffer);n[1]="number"==typeof s?s:await s,n[0]=1,i(n,0)}}),c.start()}},native:jt,transfer:xt}};const{url:Gt}=import.meta,Xt=/import\((['"])([^)]+?\.js)\1\)/g,Yt=(e,t,n)=>`import(${t}${new URL(n,Gt).href}${t})`,Vt=Symbol.for("polyscript.js_modules");let Zt;const{Worker:Qt}=(e=>{const t=e?.import,n=Tt(e),r=Kt({...e,encoder:e?.encoder||gt});class s extends r.Worker{#i;constructor(e,r){const{proxy:s}=super(e,r),o=ve({...r,buffer:!0,reflect:s[_t],timeout:Tt(r,n),remote(e){e instanceof Event&&(e=>{const{currentTarget:t,target:n,type:r}=e,s=Ee.get(t||n)?.get(r);if(s)for(const t of s)e[t]()})(e)},module:r?.import||t||(e=>import(new URL(e,location).href))});this.#i=o.terminate,this.ffi={assign:o.assign,direct:o.direct,evaluate:o.evaluate,gather:o.gather,query:o.query},s[bt]=o.reflect}terminate(){this.#i(),super.terminate()}}return{...r,Worker:s}})({transfer:!1,transform:e=>(Zt||(Zt=globalThis[Vt]?.get("-T-")))?.(e)??e});const en=new WeakMap,tn=e=>{const t=e||console,n={buffered:rn,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 en.set(t,n),t}}},nn=new TextDecoder,rn=(e,t=10)=>{const n=[];return r=>{if(r instanceof Uint8Array)for(const s of r)s===t?e(nn.decode(new Uint8Array(n.splice(0)))):n.push(s);else e(r)}},sn=new Map,on=e=>sn.get(e),an=(e,t)=>{try{return Function("require",t)(on)}catch(t){en.get(e).stderr(t)}};var cn={type:"dummy",module:()=>"data:text/javascript,",engine:e=>tn().get(e),registerJSModule(e,t,n){sn.set(t,n)},run:an,runAsync:an,runEvent:async(e,t,n)=>{try{await Function("require","e",`return ${t}(e)`)(on,n)}catch(t){en.get(e).stderr(t)}},transform:(e,t)=>t,writeFile(){}};const ln={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}},{replace:pn}="",un=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34);/g,dn={"&":"&","&":"&","<":"<","<":"<",">":">",">":">","'":"'","'":"'",""":'"',""":'"'},fn=e=>dn[e],hn=(e,...t)=>ln[typeof e](e,...t),yn=e=>pn.call(e,un,fn),{isArray:mn}=Array,{assign:gn,create:wn,defineProperties:bn,defineProperty:_n,entries:kn}=Object,{all:An,resolve:vn}=new Proxy(Promise,{get:(e,t)=>e[t].bind(e)}),xn=(e,t=location.href)=>new URL(e,t.replace(/^blob:/,"")).href;function En(e){return e.startsWith(".")?xn(e,this):e}let jn=0;const Sn=(e,t)=>({id:e.id||(e.id=`${t}-w${jn++}`),tag:e.tagName}),$n=(e,t,n,r=!1,s=CustomEvent)=>{e.dispatchEvent(new s(`${t}:${n}`,{bubbles:!0,detail:{worker:r}}))},Bn=(e,t,n,r)=>({type:t,config:n,interpreter:r,io:en.get(r),run:(t,...n)=>e.run(r,t,...n),runAsync:(t,...n)=>e.runAsync(r,t,...n),runEvent:(...t)=>e.runEvent(r,...t)}),Mn=e=>e.replace(/^(?:\n|\r\n)/,""),Fn=(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,Mn(t),...o);return r&&s(e,r,...o),a}:async(e,t,...o)=>{n&&await s(e,n,...o);const a=await s(e,Mn(t),...o);return r&&await s(e,r,...o),a}},Pn=Symbol.for("polyscript.js_modules"),Tn=new Map;_n(globalThis,Pn,{value:Tn});const Rn=new Proxy(Tn,{get:(e,t)=>e.get(t),has:(e,t)=>e.has(t),ownKeys:e=>[...e.keys()]}),Dn=(e,t)=>!t.startsWith("_"),Ln=(e,t)=>new Proxy(e,{has:Dn,get:(e,n)=>e[t][n]}),On=(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}`,Ln(r,e));t.registerJSModule(n,s,r)},Cn=(e,t)=>import(e).then(e=>{Tn.set(t,{...e})}),In=e=>new Promise((t,n)=>{document.querySelector(`link[rel="stylesheet"][href="${e}"]`)?t():document.head.append(gn(document.createElement("link"),{rel:"stylesheet",href:e,onload:t,onerror:n}))}),Wn=e=>/\.css$/i.test(new URL(e).pathname),Un=e=>/^(?:false|0|no)$/i.test(e.getAttribute("async")),zn=!globalThis.window,Nn=({FS:e,PATH:t,PATH_FS:n},r,s)=>{const o=n.resolve(r),a=t.dirname(o);return e.mkdirTree?e.mkdirTree(a):qn(e,a),e.writeFile(o,new Uint8Array(s),{canOwn:!0})},Hn=e=>{const t=e.split("/");return t.pop(),t.join("/")},qn=(e,t)=>{const n=[];for(const r of t.split("/"))"."!==r&&".."!==r&&(n.push(r),r&&e.mkdir(n.join("/")))},Jn=(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(/^\/+/,"/")},Kn=e=>{const t=e.map(e=>e.trim().replace(/(^[/]*|[/]*$)/g,"")).filter(e=>""!==e&&"."!==e).join("/");return e[0].startsWith("/")?`/${t}`:t},Gn=(e,t)=>o(xn(e,t)).arrayBuffer(),Xn=(e,t,n,r)=>An((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(mn(r))return r.map(n=>({url:Kn([e,n]),path:Kn([t,n])}));const s=n||e.slice(1+e.lastIndexOf("/"));return[{url:e,path:Kn([t,s])}]})})(n).map(({url:n,path:s})=>Gn(n,r).then(n=>e.writeFile(t,s,n)))),Yn=(e,t)=>t.endsWith("/")?`${t}${e.split("/").pop()}`:t,Vn=(e,t)=>e.replace(/\{.+?\}/g,e=>{if(!t.has(e))throw new SyntaxError(`Invalid template: ${e}`);return t.get(e)}),Zn=(e,t,n,r)=>An((e=>{const t=new Map,n=new Set,r=[];for(const[s,o]of kn(e))if(/^\{.+\}$/.test(s)){if(t.has(s))throw new SyntaxError(`Duplicated template: ${s}`);t.set(s,Vn(o,t))}else{const e=Vn(s,t),a=Yn(e,Vn(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})=>Gn(n,r).then(r=>e.writeFile(t,s,r,n)))),Qn=({main:e,worker:t},n)=>{const r=[];if(t&&zn)for(let[e,s]of kn(t))e=xn(e,n),r.push(Cn(e,s));if(e&&!zn)for(let[t,s]of kn(e))t=xn(t,n),Wn(t)?In(t):r.push(Cn(t,s));return An(r)},er=e=>t=>{dispatchEvent(new CustomEvent(`${e}:progress`,{detail:t}))},tr=(e,t,n)=>(e.set(t,n),n),nr=e=>{at[0]=e[or++],at[1]=e[or++],at[2]=e[or++],at[3]=e[or++],at[4]=e[or++],at[5]=e[or++],at[6]=e[or++],at[7]=e[or++]},rr=e=>(at[0]=e[or++],at[1]=e[or++],at[2]=e[or++],at[3]=e[or++],ot.getUint32(0,!0)),sr=(e,t)=>{switch(e[or++]){case Fe:return nr(e),ot.getFloat64(0,!0);case Pe:return e[or++];case Ke:{const n=tr(t,or-1,{});for(let r=0,s=rr(e);r<s;r++)n[sr(e,t)]=sr(e,t);return n}case ze:{const n=tr(t,or-1,[]);for(let r=0,s=rr(e);r<s;r++)n.push(sr(e,t));return n}case Ye:{const n=or-1,r=sr(e,t);return tr(t,n,new globalThis[r](sr(e,t)))}case Ne:{const n=or-1,r=rr(e);return tr(t,n,e.slice(or,or+=r).buffer)}case We:{const n=or-1,r=rr(e);return tr(t,n,nt.decode(e.slice(or,or+=r)))}case He:return tr(t,or-1,new Date(sr(e,t)));case Je:{const n=tr(t,or-1,new Map);for(let r=0,s=rr(e);r<s;r++)n.set(sr(e,t),sr(e,t));return n}case Xe:{const n=tr(t,or-1,new Set);for(let r=0,s=rr(e);r<s;r++)n.add(sr(e,t));return n}case qe:{const n=sr(e,t),r=sr(e,t),s=sr(e,t),o=new(globalThis[n]||Error)(r);return tr(t,or-1,U(o,"stack",{value:s}))}case Ve:{const n=sr(e,t),r=sr(e,t),s=sr(e,t),o=sr(e,t),a=sr(e,t);return tr(t,or-1,new O(n,r,s,{colorSpace:o,pixelFormat:a}))}case Ge:{const n=sr(e,t),r=sr(e,t);return tr(t,or-1,new RegExp(n,r))}case Se:return!1;case $e:return!0;case Te:return NaN;case Re:return 1/0;case De:return-1/0;case Le:return 0;case Oe:return-0;case Me:return null;case Ce:return nr(e),ot.getBigInt64(0,!0);case Ie:return nr(e),ot.getBigUint64(0,!0);case Ue:return I(sr(e,t));case et:return t.get(rr(e));case Ze:{const n=sr(e,t),r=sr(e,t);return tr(t,or-1,new Blob([e.slice(or,or+=r)],{type:n}))}case Qe:{const n=or-1,r=sr(e,t),s=sr(e,t),o=sr(e,t);return tr(t,n,new File([o],r,{type:o.type,lastModified:s}))}default:return}};let or=0;const ar={parse:e=>(or=0,sr(e,new Map)),stringify:e=>{const t=[];return mt=Z,ht(e,t,new Map),t}},ir=new WeakMap,cr=async(e,t,n,r,s)=>{r.files&&(t("Loading files"),await Zn(e,n,r.files,s),t("Loaded files")),r.fetch&&(t("Loading fetch"),await Xn(e,n,r.fetch,s),t("Loaded fetch")),r.js_modules&&(t("Loading JS modules"),await Qn(r.js_modules,s),t("Loaded JS modules"))},lr=(e,t,n)=>{"polyscript"===t&&(n.lazy_py_modules=async(...t)=>(await ir.get(e)(t),t.map(t=>e.pyimport(t))),n.storage=async e=>{const t=new f(e);return await t.sync(),t},n.JSON=ar),e.registerJsModule(t,n)},pr=(e,t)=>{if(e.endsWith("/*")){if(/\.(zip|whl|tgz|tar(?:\.gz)?)$/.test(t))return RegExp.$1;throw new Error(`Unsupported archive ${t}`)}return""},ur=(e,t,...n)=>{try{return e.runPython(hn(t),...n)}catch(t){en.get(e).stderr(t)}},dr=async(e,t,...n)=>{try{return await e.runPythonAsync(hn(t),...n)}catch(t){en.get(e).stderr(t)}},fr=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){en.get(e).stderr(t)}};var hr=(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 yr=async e=>(await import("./toml-V4Savzlc.js")).parse(e);async function mr(e,t){return new Promise((n,r)=>{e.syncfs(t,e=>{e?r(e):n()})})}function gr(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 wr(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):qn(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 mr(t,!0),{syncfs:async()=>await mr(t,!1)}}}const wr=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},{parse:br}=JSON,_r=(e,t)=>new URL(e,t).href,kr=(e,t,n)=>{if(t in e)throw new Error(`Duplicated path: ${t}`);e[t]=n},Ar=(e,t,n)=>{for(const r in t)kr(e,_r(r,n),t[r])},vr=(e,t,n,r)=>{const s=t[n];s&&(e[n]??={},Ar(e[n],s,r))},xr=async(e,t=e.packages,n=new Set)=>{const r=[];for(const s of t){if(n.has(s))continue;n.add(s);const t=s.endsWith(".toml");if(t||s.endsWith(".json")){const a=await o(s).text(),{name:i,files:c,js_modules:l,packages:p}=t?await yr(a):br(a);if(n.has(i))throw new Error(`Unable to process ${i} @ ${s}`);n.add(i),p&&r.push(...await xr(e,p,n)),l&&(e.js_modules??={},vr(e.js_modules,l,"main",s),vr(e.js_modules,l,"worker",s)),c&&(e.files??={},Ar(e.files,c,s))}else r.push(s)}return r},Er=(e,t)=>{try{e.mkdir(t)}catch(e){}},jr=er("mpy");var Sr={type:"micropython",module:(e="1.27.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}=tn({stderr:rn(console.error),stdout:rn(console.log)});n=n.replace(/\.m?js$/,".wasm"),jr("Loading MicroPython");const i=await a(e({linebuffer:!1,stderr:s,stdout:o,url:n}));globalThis[Pn].set("-T-",this.transform.bind(this,i));const c=$r.bind(this,i,r);return ir.set(i,c),t.experimental_remote_packages&&(jr("Loading remote packages"),t.packages=await xr(t),jr("Loaded remote packages")),await cr(this,jr,i,t,r),this.writeFile(i,"./mip.py",hr),t.packages&&(jr("Loading packages"),await c(t.packages.map(En,r)),jr("Loaded packages")),jr("Loaded MicroPython"),i.mountNativeFS||(i.mountNativeFS=gr(i._module)),i},registerJSModule:lr,run:ur,runAsync:dr,runEvent:fr,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=pr(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-CgZGjqjF.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)Er(s,i);else{Er(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 Nn(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 Nn(i,t,n)}};async function $r(e,t,n){let r;for(const s of n)if(s.endsWith(".whl")){const n=xn(s,t),r=await o(n).arrayBuffer();await this.writeFile(e,"./*",r,n)}else r||(r=e.pyimport("mip")),r.install(s)}const Br={dict_converter:Object.fromEntries},{stringify:Mr}=JSON,{apply:Fr}=Reflect,Pr=Function.prototype,Tr=e=>function(...t){return Fr(e,this,t)};let Rr,Dr;const Lr=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(Rr in r&&!r[Rr].shared?.gcRegistered){e=!1;let o=t.get(r)?.deref();if(!o){o=Dr(r);const e=new WeakRef(o);t.set(r,e),t.set(o,e)}n[s]=o,e=!0}}};Object.defineProperties(Pr,{apply:{value(t,r){return e&&n(r),Fr(this,t,r)}},call:{value(t,...r){return e&&n(r),Fr(this,t,r)}}})},Or=er("py"),Cr=new WeakMap;var Ir={type:"pyodide",module:(e="0.29.2")=>`https://cdn.jsdelivr.net/pyodide/v${e}/full/pyodide.mjs`,async engine({loadPyodide:e,version:t},n,r,s){Or("Loading Pyodide");let{packages:o,index_urls:a}=n;if(o){if(o=o.map(En,s),!a){Or("Loading Packages Graph");const{default:e}=await Promise.resolve().then(function(){return Nr});if(t in e){const n=e[t];for(const e of o){if(/^(?:\.|\/|https?:\/\/)/.test(e))continue;const r=e.split(/[>=<]=/)[0];r.toLowerCase()in n||console.warn(`Pyodide ${t} might not support ${e}. See: https://packages.pyscript.net/?q=${r}`)}}Or("Loaded Packages Graph")}n.experimental_remote_packages&&(Or("Loading remote packages"),n.packages=o=await xr(n,o),Or("Loaded remote packages"))}Or("Loading Storage");const i=r.slice(0,r.lastIndexOf("/")),c=new f(`${i}@${t}`),l={indexURL:i},p="never"!==n.packages_cache&&"0.28.0"!==t;if(await c.sync(),Or("Loaded Storage"),p||c.clear(),o&&p)if("passthrough"===n.packages_cache)l.packages=o,o=null,c.clear();else{o=o.sort();const e=Mr(o);if(c.has(e)){const n=c.get(e);if(l.packages=o.map(e=>e.split(/[>=<]=/)[0]),t.startsWith("0.27")){const e=new Blob([n],{type:"application/json"});l.lockFileURL=URL.createObjectURL(e)}else l.lockFileContents=n;o=null}}const{stderr:u,stdout:d,get:h}=tn();Or("Loading interpreter");const y=await h(e({stderr:u,stdout:d,...l}));Or("Loaded interpreter"),globalThis[Pn].set("-T-",this.transform.bind(this,y)),n.debug&&y.setDebug(!0);const m=Ur.bind(y);return a&&Cr.set(y,a),ir.set(y,m),await cr(this,Or,y,n,s),o&&await m(o,c,p),await c.close(),l.lockFileURL&&URL.revokeObjectURL(l.lockFileURL),Or("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({})}),Dr=globalThis.experimental_create_proxy,delete globalThis.experimental_create_proxy,[Rr]=Reflect.ownKeys(Dr).filter(e=>"symbol"==typeof e&&"Symbol(pyproxy.attrs)"===String(e)),Lr(!0)),y},registerJSModule:lr,run:Tr(ur),runAsync:Tr(dr),runEvent:Tr(fr),transform:(e,t)=>Fr(Wr,e,[t]),writeFile:(e,t,n,r)=>{const s=pr(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 Nn({FS:o,PATH:a,PATH_FS:i},t,n)}};function Wr(e){const{ffi:{PyProxy:t}}=this;if(e&&"object"==typeof e){if(e instanceof t)return e.toJs(Br);if(e instanceof Map)return new Map([...e.entries()]);if(mn(e))return e.map(Wr,this)}return e}async function Ur(e,t,n=!1){const{log:r}=console,s=(e,...t)=>{r(e,...t),console.log=r,Or(e),console.log=s};console.log=s,await this.loadPackage("micropip");const o=this.pyimport("micropip");if(Cr.has(this)&&o.set_index_urls(Cr.get(this)),await o.install(e,{keep_going:!0}),console.log=r,n&&t instanceof f){const n=o.freeze();t.set(Mr(e),n)}o.destroy()}var zr=new Proxy({v:["latest","stable","0.29.2","0.29.1","0.29.0","0.28.3","0.28.2","0.28.1","0.28.0","0.27.7","0.27.6","0.27.5","0.27.4","0.27.3","0.27.2","0.27.1","0.27.0"],p:{affine:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],aiohappyeyeballs:[0,1,2,3,4,5,6,7,8],aiohttp:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],aiosignal:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],altair:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"annotated-types":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],anyio:[0,1,2,3,4,5,6,7,8,9,10,11],apsw:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14],"argon2-cffi":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"argon2-cffi-bindings":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],asciitree:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],astropy:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],astropy_iers_data:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],asttokens:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"async-timeout":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],atomicwrites:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],attrs:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"audioop-lts":[0,1,2,3,4,5,6,7],autograd:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"awkward-cpp":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],b2d:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],bcrypt:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],beautifulsoup4:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"bilby.cython":[0,1,2,3,4],biopython:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],bitarray:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],bitstring:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],bleach:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],blosc2:[0,1,2,3,4,5,6,7,8],bokeh:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"boost-histogram":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],bottleneck:[0,1,2],brotli:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],cachetools:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],cartopy:[0,1,2,9,10,11,12,13,14,15,16],casadi:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"cbor-diag":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],certifi:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],cffi:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],cffi_example:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],cftime:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"charset-normalizer":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],clarabel:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],click:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],cligj:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],clingo:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],cloudpickle:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],cmyt:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],cobs:[0,1,2,3,4,5,6,7],colorspacious:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],contourpy:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],coolprop:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],coverage:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],cramjam:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],crc32c:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],cryptography:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"css-inline":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],cssselect:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"cvxpy-base":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],cycler:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],cysignals:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],cytoolz:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],decorator:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],demes:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],deprecation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],diskcache:[0,1,2,3,4,5,6,7,8],distlib:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],distro:[0,1,2,3,4,5,6,7,8,9,10,11],docutils:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],donfig:[0,1,2,3,4,5,6,7,8],ewah_bool_utils:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],exceptiongroup:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],executing:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],fastapi:[0,1,2,3,4],fastcan:[0,1,2,3,4],fastparquet:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],fiona:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],fonttools:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],freesasa:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],frozenlist:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],fsspec:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],future:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],galpy:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],geopandas:[0,1,2,9,10,11,12,13,14,15,16],gmpy2:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"google-crc32c":[0,1,2],gsw:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],h11:[0,1,2,3,4,5,6,7,8,9,10,11],h3:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],h5py:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],healpy:[0,1,2],highspy:[0,1,2,3,4],html5lib:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],httpcore:[0,1,2,3,4,5,6,7,8,9,10,11],httpx:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14],idna:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],igraph:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],imageio:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"imgui-bundle":[0,1,2,3,4,5,6,7,8],iminuit:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],iniconfig:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],inspice:[0,1,2,3,4,5,6,7,8],ipython:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],jedi:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],jinja2:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],jiter:[0,1,2,3,4,5,6,7,8,9,10,11],joblib:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],jsonpatch:[0,1,2,3,4],jsonpointer:[0,1,2,3,4],jsonschema:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],jsonschema_specifications:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],kiwisolver:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"lakers-python":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],lazy_loader:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"lazy-object-proxy":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],libcst:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],lightgbm:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],logbook:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],lxml:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],lz4:[0,1,2,3,4,5,6,7,8],markupsafe:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],matplotlib:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"matplotlib-inline":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"memory-allocator":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],micropip:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],ml_dtypes:[0,1,2],mmh3:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"more-itertools":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],mpmath:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],msgpack:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],msgspec:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],msprime:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],multidict:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],munch:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],mypy:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],narwhals:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],ndindex:[0,1,2,3,4,5,6,7,8],netcdf4:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],networkx:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],newick:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],nh3:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],nlopt:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],nltk:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],numcodecs:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],numpy:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],openai:[0,1,2,3,4,5,6,7,8,9,10,11],"opencv-python":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],optlang:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],orjson:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],packaging:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pandas:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],parso:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],patsy:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pcodec:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],peewee:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"pi-heif":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pillow:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"pillow-heif":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pkgconfig:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],platformdirs:[0,1,2,3,4,5,6,7,8],pluggy:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],ply:[0,1,2,3,4,5,6,7,8],pplpy:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],primecountpy:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],prompt_toolkit:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],propcache:[0,1,2,3,4,5,6,7,8],protobuf:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"pure-eval":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],py:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pyarrow:[0,1,2,9,10,11,12,13,14,15],pycdfpp:[0,1,2],pyclipper:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pycparser:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pycryptodome:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pydantic:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pydantic_core:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pyerfa:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"pygame-ce":[0,1,2,3,4,9,10,11,12,13,14,15,16],pygments:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pyheif:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pyiceberg:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pyinstrument:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"pylimer-tools":[0,1,2,3,4],pymupdf:[0,1,2,3,4,5,6,7],pynacl:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"pyodide-http":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"pyodide-unix-timezones":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pyparsing:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pyproj:[0,1,2,9,10,11,12,13,14,15,16],pyrodigal:[0,1,2],pyrsistent:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pysam:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pyshp:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pytaglib:[0,1,2,3,4,5,6,7,8],pytest:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"pytest-asyncio":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"pytest-benchmark":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pytest_httpx:[0,1,2,3,4,5,6,7,8,9,10,11],"python-calamine":[0,1,2,3,4],"python-dateutil":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"python-flint":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"python-magic":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"python-sat":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"python-solvespace":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pytz:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pywavelets:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pyxel:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pyxirr:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pyyaml:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],rasterio:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],rateslib:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],rebound:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],reboundx:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],referencing:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],regex:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],requests:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],retrying:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],rich:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],river:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],robotraconteur:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"rpds-py":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"ruamel.yaml":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],rustworkx:[0,1,2,3,4,5,6,7,8],"scikit-image":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"scikit-learn":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],scipy:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],screed:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],setuptools:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],shapely:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],simplejson:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],sisl:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],six:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"smart-open":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],sniffio:[0,1,2,3,4,5,6,7,8,9,10,11],sortedcontainers:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],soundfile:[0,1,2,3,4,5,6,7,8],soupsieve:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],sourmash:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],soxr:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],sparseqr:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],sqlalchemy:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"stack-data":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],starlette:[0,1,2,3,4],statsmodels:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],strictyaml:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],svgwrite:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],swiglpk:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],sympy:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],tblib:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],termcolor:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],texttable:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],texture2ddecoder:[0,1,2,3,4,5,6,7,8],threadpoolctl:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],tiktoken:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],tomli:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"tomli-w":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],toolz:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],tqdm:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],traitlets:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],traits:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"tree-sitter":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"tree-sitter-go":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"tree-sitter-java":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"tree-sitter-python":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],tskit:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"typing-extensions":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"typing-inspection":[0,1,2],tzdata:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],ujson:[0,1,2,3,4,5,6,7,8],uncertainties:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],unyt:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],urllib3:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"vega-datasets":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],vrplib:[0,1,2,3,4],wcwidth:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],webencodings:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],wordcloud:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],wrapt:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],xarray:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],xgboost:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],xlrd:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],xxhash:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],xyzservices:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],yarl:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],yt:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],zengl:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],zfpy:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],zstandard:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"arro3-compute":[9,10,11,12,13,14,15,16],"arro3-core":[9,10,11,12,13,14,15,16],"arro3-io":[9,10,11,12,13,14,15,16],duckdb:[9,10,11,12,13,14,15,16],gensim:[9,10,11,12,13,14,15,16],"matplotlib-pyodide":[9,10,11,12,13,14,15,16],mne:[9,10,11,12,13,14,15,16],osqp:[9,10,11],polars:[9,10,11,12,13,14,15,16],"rust-abi-test":[9,10,11,12,13,14,15,16],"rust-panic-test":[9,10,11,12,13,14,15,16],zarr:[9,10,11,12,13,14,15,16]}},{has:(e,t)=>e.v.includes(t),get:(e,t)=>{const n=e.v.indexOf(t);return new Proxy(e.p,{has:(e,t)=>e[t]?.includes(n)})}}),Nr=Object.freeze({__proto__:null,default:zr});const Hr="ruby-wasm-wasi",qr=Hr.replace(/\W+/g,"_");var Jr={type:Hr,experimental:!0,module:(e="2.8.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 o(n).arrayBuffer(),a=await WebAssembly.compile(s),{vm:i}=await e(a);return t.files&&await Zn(this,i,t.files,r),t.fetch&&await Xn(this,i,t.fetch,r),t.js_modules&&await Qn(t.js_modules,r),i},registerJSModule(e,t,n){t=t.replace(/\W+/g,"__");const r=`__module_${qr}_${t}`;globalThis[r]=n,this.run(e,`require "js";$${t}=JS.global[:${r}]`),delete globalThis[r]},run:(e,t,...n)=>e.eval(hn(t),...n),runAsync:(e,t,...n)=>e.evalAsync(hn(t),...n),async runEvent(e,t,n){if(/^xworker\.(on\w+)$/.test(t)){const{$1:t}=RegExp,r=`__module_${qr}_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 ${Hr}`)}};var Kr={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}=tn(),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 Zn(this,c,n.files,s),n.fetch&&await Xn(this,c,n.fetch,s),n.js_modules&&await Qn(n.js_modules,s),c},registerJSModule:(e,t,n)=>{e.global.set(t,n)},run:(e,t,...n)=>{try{return e.doStringSync(hn(t),...n)}catch(t){en.get(e).stderr(t)}},runAsync:async(e,t,...n)=>{try{return await e.doString(hn(t),...n)}catch(t){en.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){en.get(e).stderr(t)}},transform:(e,t)=>t,writeFile:({cmodule:{module:{FS:e}}},t,n)=>((e,t,n)=>(qn(e,Hn(t)),t=Jn(e,t),e.writeFile(t,new Uint8Array(n),{canOwn:!0})))(e,t,n)};const Gr=new WeakMap,Xr=new FinalizationRegistry(e=>e()),Yr=async(e,t)=>{const{shelter:n,destroy:r,io:s}=Gr.get(e),{output:o,result:a}=await n.captureR(hn(t));for(const{type:e,data:t}of o)s[e](t);return Xr.register(a,r),a};var Vr={type:"webr",experimental:!0,module:(e="0.5.8")=>`https://cdn.jsdelivr.net/npm/webr@${e}/dist/webr.mjs`,async engine(e,t,n,r){const{get:s}=tn(),o=new e.WebR;await s(o.init().then(()=>o));const a=await new o.Shelter;return Gr.set(o,{module:e,shelter:a,destroy:a.destroy.bind(a),io:en.get(o)}),t.files&&await Zn(this,o,t.files,r),t.fetch&&await Xn(this,o,t.fetch,r),t.js_modules&&await Qn(t.js_modules,r),o},registerJSModule(e,t){console.warn(`Experimental interpreter: module ${t} is not supported (yet)`)},run:Yr,runAsync:Yr,async runEvent(e,t,n){await e.evalRVoid(`${t}(event)`,{env:{event:{type:[n.type]}}})},transform:(e,t)=>t,writeFile:()=>{}};const Zr=new Map,Qr=new Map,es=[],ts=[],ns=new Proxy(new Map,{get(e,t){if(!e.has(t)){const[n,...r]=t.split("@"),s=Zr.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=>(Qr.set(t,e),s(r,e,n,o)))}}),rs=e=>{for(const t of[].concat(e.type))Zr.set(t,e),es.push(`script[type="${t}"]`),ts.push(`${t}-`)};for(const e of[cn,Sr,Ir,zr,Jr,Kr,Vr])rs(e);const{parse:ss}=JSON,os=(e,t="./config.txt")=>{let n=typeof e;return"string"===n&&/\.(json|toml|txt)$/.test(e)?n=RegExp.$1:e=t,[xn(e),n]},as=(e,t,n={})=>{const[r,s]=os(e,t);return"json"===s?n=o(r).json():"toml"===s?n=o(r).text().then(yr):"string"===s?n=is(e):"object"===s&&e?n=e:"txt"===s&&"string"==typeof n&&(n=is(n)),[n,e=r]},is=e=>{try{return ss(e)}catch(t){return yr(e)}},cs=(e,t,n,r={})=>(t&&([r,t]=as(t,n,r)),vn(r).then(n=>ns[e](n,t))),ls=(e,t="")=>`${e}@${t}`.replace(/@$/,"");function ps(e=this){return String(e).replace(/^(async\s*)?(\bfunction\b)?(.*?)\(/,(e,t,n,r)=>r&&!n?`${t||""}function ${r}(`:e)}const us="BeforeRun",ds="AfterRun",fs=[`code${us}`,`code${us}Async`,`code${ds}`,`code${ds}Async`],hs=["onWorker","onReady",`on${us}`,`on${us}Async`,`on${ds}`,`on${ds}Async`];function ys(e,t){const{run:n,runAsync:r}=Zr.get(this.type);return{...e,run:n.bind(this,t),runAsync:r.bind(this,t)}}const ms=(e,t,n,r,s,o)=>{if(s||o){const a=ys.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 gs=class{constructor(e,t={}){const{main:n,worker:r}=t;this.interpreter=e,this.onWorker=n?.onWorker;for(const e of hs.slice(1))this[e]=r?.[e];for(const e of fs)this[e]=r?.[e]}toJSON(){const e={};for(const t of hs.slice(1))this[t]&&(e[t]=ps(this[t]));for(const t of fs)this[t]&&(e[t]=hn(this[t]()));return e}};var ws=(...e)=>function(t,n){if(e.length){const[t,r]=e;(n=gn({},n||{type:t,version:r})).type||(n.type=t)}const[r]=os(n.config,n.configURL),s=((...e)=>new Qt(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="59317780",l="="+c,p="-"+c;let u=0;const d=u++,f=u++,h=u++,y=u++,m=u++,g=u++,w=u++,b=u++,_=u++,A=u++,k=u++,v=u++,x=u++,E=u++,j=u++,$=u++,S=u++,B=u++,P=u++,M=u++,F=u++,T=u++,R=u++,D=u++,L=u++,O=u++,C=u++,I=u++;const z=globalThis.ImageData||class{},U=new TextDecoder,H=new TextEncoder,W=new Map(Reflect.ownKeys(Symbol).map(e=>[Symbol[e],`@${String(e)}`])),q=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()}},N=e=>W.get(e)||((e,t)=>void 0===t?"?":void 0===Symbol.keyFor(e)?`!${t}`:`#${t}`)(e,e.description),J=Object.defineProperty,K=Object.assign,G=Array.isArray,V=ArrayBuffer.isView,X=(e,t)=>[e,t],Y=e=>e,Z=[],Q={},ee=function(){},te=e=>(t,n=new Map)=>{for(let r=0,s=t.length;r<s;r++)t[r]=e(t[r],n);return t},ne=([e,t])=>0===e?t:q(t),re=e=>"string"==typeof e?X(0,e):X(16,N(e)),se=(e,t)=>{for(let n=e.push,r=0,s=t.length;r<s;r+=32767)n.apply(e,t.subarray(r,r+32767))},oe=new ArrayBuffer(8),ae=new DataView(oe),ie=new Uint8Array(oe),ce=(e,t,n)=>(e.set(t,n),n),le=e=>{ie[0]=e[de++],ie[1]=e[de++],ie[2]=e[de++],ie[3]=e[de++],ie[4]=e[de++],ie[5]=e[de++],ie[6]=e[de++],ie[7]=e[de++]},pe=e=>(ie[0]=e[de++],ie[1]=e[de++],ie[2]=e[de++],ie[3]=e[de++],ae.getUint32(0,!0)),ue=(e,t)=>{switch(e[de++]){case m:return le(e),ae.getFloat64(0,!0);case g:return e[de++];case F:{const n=ce(t,de-1,{});for(let r=0,s=pe(e);r<s;r++)n[ue(e,t)]=ue(e,t);return n}case $:{const n=ce(t,de-1,[]);for(let r=0,s=pe(e);r<s;r++)n.push(ue(e,t));return n}case D:{const n=de-1,r=ue(e,t);return ce(t,n,new globalThis[r](ue(e,t)))}case S:{const n=de-1,r=pe(e);return ce(t,n,e.slice(de,de+=r).buffer)}case E:{const n=de-1,r=pe(e);return ce(t,n,U.decode(e.slice(de,de+=r)))}case B:return ce(t,de-1,new Date(ue(e,t)));case M:{const n=ce(t,de-1,new Map);for(let r=0,s=pe(e);r<s;r++)n.set(ue(e,t),ue(e,t));return n}case R:{const n=ce(t,de-1,new Set);for(let r=0,s=pe(e);r<s;r++)n.add(ue(e,t));return n}case P:{const n=ue(e,t),r=ue(e,t),s=ue(e,t),o=new(globalThis[n]||Error)(r);return ce(t,de-1,J(o,"stack",{value:s}))}case L:{const n=ue(e,t),r=ue(e,t),s=ue(e,t),o=ue(e,t),a=ue(e,t);return ce(t,de-1,new z(n,r,s,{colorSpace:o,pixelFormat:a}))}case T:{const n=ue(e,t),r=ue(e,t);return ce(t,de-1,new RegExp(n,r))}case d:return!1;case f:return!0;case w:return NaN;case b:return 1/0;case _:return-1/0;case A:return 0;case k:return-0;case y:return null;case v:return le(e),ae.getBigInt64(0,!0);case x:return le(e),ae.getBigUint64(0,!0);case j:return q(ue(e,t));case I:return t.get(pe(e));case O:{const n=ue(e,t),r=ue(e,t);return ce(t,de-1,new Blob([e.slice(de,de+=r)],{type:n}))}case C:{const n=de-1,r=ue(e,t),s=ue(e,t),o=ue(e,t);return ce(t,n,new File([o],r,{type:o.type,lastModified:s}))}default:return}};let de=0;const fe=e=>(de=0,ue(e,new Map)),he=({byteOffset:e=0}={})=>(t,n)=>fe(new Uint8Array(n,e,t));let ye=0;const me=ye++,ge=ye++,we=ye++,be=ye++,_e=ye++,Ae=ye++,ke=ye++,ve=ye++,xe=ye++,Ee=ye++,je=ye++,$e=ye++,Se=ye++,Be=ye++,Pe=ye++;ye++;const Me=ye++,Fe=ye++,{getPrototypeOf:Te}=Object,{construct:Re}=Reflect,{toStringTag:De}=Symbol,{toString:Le}=Q,Oe=(e,t=Le.call(e).slice(8,-1))=>t in globalThis?t:Oe(Te(e)||Q),Ce=(e,t=e[De])=>t in globalThis?t:Ce(Re(Te(e.constructor),[0])),Ie=(e,t)=>new ArrayBuffer(e,{maxByteLength:t}),ze=([e,t],n)=>{const r=n?e.byteLength:e.length;if(n){if(t){const n=Ie(r,t);new Uint8Array(n).set(new Uint8Array(e)),e=n}}else{const n=t?Ie(r,t):new ArrayBuffer(r);new Uint8Array(n).set(e),e=n}return e};const Ue=/\\[(\'|")?(.+?)\\1\\]/g,He=(e,t)=>e?.[t];var We=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}}},qe=({reflect:e=Y,transform:t=Y,released:n=Y,buffer:r=!1,timeout:s=-1}=Q)=>{const o=te(ne),a=te(re),i=e=>{if(!G(e))return e;const[t,n]=e;if(1&t)return p(t,n);switch(t){case 2:return j;case 0:return n;case 16:return q(n);case 32:return BigInt(n);case 68:return(([e,t,n,r],s)=>{const o=ze(t,s),a=globalThis[e];return r?new a(o,n,r):new a(o,n)})(n,r);case 64:return ze(n,r)}},c=(e,n=new Map)=>{switch(typeof e){case"object":{if(null===e)break;if(e===globalThis)return E;if(x in e)return g;let r=n.get(e);if(!r){const s=t(e);if(w||!m.has(s)){if(G(s)){const t=[];r=X(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(!(V(s)||s instanceof ArrayBuffer||"Object"!==Oe(s))){const t={};r=X(2,t),n.set(e,r);for(const e in s)t[e]=c(s[e],n);return r}}r=X(0,s),n.set(e,r)}return r}case"function":{if(x in e)return g;let r=n.get(e);if(!r){const s=t(e);r=X(8,_(s)),n.set(e,r)}return r}case"symbol":return X(16,N(e))}return e},l=te(c),p=(e,t)=>{let n=v.get(t),r=n?.deref();return r||(n&&$.unregister(n),r=9===e?new Proxy(ee,new y(e,t)):new Proxy(3===e?Q:Z,new h(e,t)),n=new WeakRef(r),v.set(t,n),$.register(r,t,n)),r},u=e=>{switch(typeof e){case"object":if(null===e)break;case"function":return x in e}return!1},d=-1<s,f=d?We(s):Map;class h{constructor(e,t){this.t=e,this.v=t,d&&(this.$=new f)}get(t,n){if(d&&this.$.has(n))return this.$.get(n);const r=e(Ee,this.v,re(n));return d?r[0]?this.$.set(n,i(r[1])):i(r[1]):i(r)}set(t,n,r){const s=e(Me,this.v,re(n),c(r));return d?this.$.drop(n,s):s}has(t,n){return n===x?(g=[this.t,this.v],!0):e(Se,this.v,re(n))}_oK(){return o(e(Pe,this.v),v)}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(je,this.v,re(n)));if(r)for(const e in r)r[e]=i(r[e]);return r}defineProperty(t,n,r){const s=e(ve,this.v,re(n),c(r));return d?this.$.drop(n,s):s}deleteProperty(t,n){const r=e(xe,this.v,re(n));return d?this.$.drop(n,r):r}_gPO(){return i(e($e,this.v))}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(Fe,this.v,c(n));return d?this.$.drop(f.proto,r):r}isExtensible(t){return e(Be,this.v)}preventExtensions(e){return!1}}class y extends h{construct(t,n){return i(e(ke,this.v,l(n)))}apply(t,n,r){const s=new Map;return i(e(Ae,this.v,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 m,g,w=!0;const{apply:b}=Reflect,{id:_,ref:A,unref:k}=((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))}))(),v=new Map,x=Symbol("reflected-ffi"),E=X(2,null),j=new Proxy(Q,new h(2,null)),$=new FinalizationRegistry(t=>{v.delete(t),e(me,t)});return{global:j,isProxy:u,assign(t,...n){const r=u(t),s=K(r?{}:t,...n);return r&&e(ge,g[1],c(s)),t},direct:e=>(w&&(w=!1,m=new WeakSet),m.add(e),e),evaluate:(t,...n)=>i(e(we,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=u(t),s=r?i:e=>t[e];r&&(n=e(be,g[1],a(n,v)));for(let e=0;e<n.length;e++)n[e]=s(n[e]);return n},query:(t,n)=>u(t)?i(e(_e,g[1],n)):((e,t)=>t.replace(Ue,".$2").split(".").reduce(He,e))(t,n),reflect:async(e,t,...r)=>{switch(e){case Ae:{const[e,n]=r;for(let e=0,t=n.length;e<t;e++)n[e]=i(n[e]);return c(await b(A(t),i(e),n))}case me:return n(A(t)),k(t)}}}};var Ne=Promise.withResolvers.bind(Promise),Je=(e=e=>e)=>{const t=new Map;let n=0;return[()=>{let r;do{r=e(n++)}while(t.has(r));const s=Ne();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 Ke=[],Ge=new WeakSet,Ve=(...e)=>(Ge.add(e),e);let{SharedArrayBuffer:Xe}=globalThis,Ye=!0;try{new Xe(4,{maxByteLength:8})}catch(e){Ye=!1,Xe=class extends ArrayBuffer{get growable(){return super.resizable}grow(e){super.resize(e)}}}const{create:Ze}=Object,Qe=`coincident-${Ye?crypto.randomUUID():Math.random().toString(36).substring(2)}`,et=2*Int32Array.BYTES_PER_ELEMENT,tt={byteOffset:et},nt=(e,t,n)=>{const r="then"!==t;return r&&(e[t]=n),r},rt=e=>{e.stopImmediatePropagation(),e.preventDefault()},[st,ot]=Je();let[at,it]=st(),ct=()=>it,lt=()=>{},{Atomics:pt,MessagePort:ut,SharedArrayBuffer:dt,postMessage:ft}=globalThis;if(Ye)ot(at);else{dt=Xe;const e=new Map,t=(e,...t)=>{e.addEventListener(...t)};if("importScripts"in globalThis){lt=t=>{e.set(t,null)};const n=t=>{const n=t[0],r=u++;return e.set(n,r),[r,n,t]},r=ft;ft=function(e,t){if(p){const s={ID:e.ID,data:n(e.data)};r(s,t)}else it.then(()=>this.postMessage(e,t))},ut=class extends ut{postMessage(e,t){p?super.postMessage(n(e),t):it.then(()=>this.postMessage(e,t))}},t(globalThis,"message",e=>{rt(e),ot(at,e.data)},{once:!0});const{wait:s}=pt,{parse:o}=JSON,a=t=>{const n=new XMLHttpRequest;try{if(n.timeout=3e3,n.open("POST",`${l}?sabayon`,!1),n.setRequestHeader("Content-Type","application/json"),n.send(`["${c}",${e.get(t)}]`),200===n.status)return n;throw n}catch{return n.abort(),a(t)}},i=(e,t)=>(e.set(o(t.responseText)),"ok");pt={wait:(t,...n)=>e.has(t)?i(t,a(t)):s(t,...n)};let c,l,p=!1,u=Math.random();it=it.then(e=>{[c,l]=e,p=!0})}else{const n=[Qe,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}=pt;pt={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 ot(at);a.unregister()}location.reload()}else t(r,"statechange",()=>n(a),{once:!0})})};ct=(e,t)=>{if(!a){const n=new URL(e,location.href);o=`${n.protocol}//${n.host}${n.pathname}`,i(navigator.serviceWorker,t),a=it}return a}}}const{setPrototypeOf:ht}=Reflect;let{postMessage:yt}=globalThis;const mt=Ne(),gt=ut.prototype;addEventListener("message",e=>{rt(e);const[t,n,r]=e.data,[s]=e.ports;n&&(ht(s,gt),t&&(yt=ft)),mt.resolve([t,n,r,s])},{once:!0});var wt=async e=>{const[t,n,r,s]=await ct().then(()=>mt.promise),o=!!t,a=Ye||!!n,i=e?.transform,c=(e?.decoder||he)(tt),l=!1!==e?.transfer;let p,u,d,f;if(a){const t=new(n?dt:SharedArrayBuffer)(e?.minByteLength||32767,{maxByteLength:e?.maxByteLength||16777216});p=new Int32Array(t),n?(({wait:f}=pt),lt(p)):(({load:u,pause:d,wait:f}=Atomics),d&&(f=(e,t)=>{do{d()}while(u(e,t)<1)}))}const[h,y]=Je(String),m=new Map,g=Ze(null),w=new Proxy(g,{get(e,n){if("then"===n)return;let r=m.get(n);return r||m.set(n,r=(...e)=>{const r=((e,t)=>{let n=Ke;return e&&G(t.at(-1))&&Ge.has(t.at(-1))&&(n=t.pop(),Ge.delete(n)),n})(l,e),u=[p,n,i?e.map(i):e];if(a){o?yt({ID:t,data:u},r):s.postMessage(u,r),f(p,0),p[0]=0;const e=p[1]?c(p[1],p.buffer):void 0;if(e instanceof Error)throw e;return e}{const[e,t]=h();return u[0]=e,s.postMessage(u,r),t}}),r},set:nt});return s.addEventListener("message",async({data:e})=>{"string"==typeof e[0]?y.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,g,i),s.postMessage(e))}),s.start(),{native:Ye,proxy:w,ffi_timeout:r,sync:a,transfer:Ve}};const bt={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}},_t=new WeakMap,At=e=>{const t=e||console,n={buffered:vt,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 _t.set(t,n),t}}},kt=new TextDecoder,vt=(e,t=10)=>{const n=[];return r=>{if(r instanceof Uint8Array)for(const s of r)s===t?e(kt.decode(new Uint8Array(n.splice(0)))):n.push(s);else e(r)}},xt=(e,...t)=>bt[typeof e](e,...t),{isArray:Et}=Array,{assign:jt,create:$t,defineProperty:St,entries:Bt}=Object,{all:Pt,resolve:Mt}=new Proxy(Promise,{get:(e,t)=>e[t].bind(e)}),Ft=(e,t=location.href)=>new URL(e,t.replace(/^blob:/,"")).href;function Tt(e){return e.startsWith(".")?Ft(e,this):e}const Rt=(e,t,n,r=!1,s=CustomEvent)=>{e.dispatchEvent(new s(`${t}:${n}`,{bubbles:!0,detail:{worker:r}}))},Dt=e=>Function(`\'use strict\';return (${e})`)(),Lt=e=>e.replace(/^(?:\\n|\\r\\n)/,""),Ot=Symbol.for("polyscript.js_modules"),Ct=new Map;St(globalThis,Ot,{value:Ct}),new Proxy(Ct,{get:(e,t)=>e.get(t),has:(e,t)=>e.has(t),ownKeys:e=>[...e.keys()]});const It=(e,t)=>!t.startsWith("_"),zt=(e,t)=>new Proxy(e,{has:It,get:(e,n)=>e[t][n]}),Ut=(e,t)=>import(e).then(e=>{Ct.set(t,{...e})}),Ht=e=>new Promise((t,n)=>{document.querySelector(`link[rel="stylesheet"][href="${e}"]`)?t():document.head.append(jt(document.createElement("link"),{rel:"stylesheet",href:e,onload:t,onerror:n}))}),Wt=e=>/\\.css$/i.test(new URL(e).pathname),qt=(e,t)=>e.has(t),Nt=e=>[...e.keys()];var Jt=(e,t,n,r)=>{const s=globalThis[Ot];if(n)for(let[e,t]of Bt(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:qt,ownKeys:Nt,get:(e,s)=>{let o=e.get(s);if(Et(o)){let a=o;o=null;for(let e of a)e=Ft(e,r),Wt(e)?n.importCSS(e):(n.importJS(e,s),o=t[Ot].get(s));e.set(s,o)}return o}}))(s,e,t,r)};const Kt=new Map,Gt=e=>Kt.get(e),Vt=(e,t)=>{try{return Function("require",t)(Gt)}catch(t){_t.get(e).stderr(t)}};var Xt={type:"dummy",module:()=>"data:text/javascript,",engine:e=>At().get(e),registerJSModule(e,t,n){Kt.set(t,n)},run:Vt,runAsync:Vt,runEvent:async(e,t,n)=>{try{await Function("require","e",`return ${t}(e)`)(Gt,n)}catch(t){_t.get(e).stderr(t)}},transform:(e,t)=>t,writeFile(){}};const Yt=Object.getOwnPropertyDescriptors(Response.prototype),Zt=e=>"function"==typeof e,Qt={get:(e,t)=>Yt.hasOwnProperty(t)?((e,t,{get:n,value:r})=>n||!Zt(r)?e.then(e=>e[t]):(...n)=>e.then(e=>e[t](...n)))(e,t,Yt[t]):((e,t)=>Zt(t)?t.bind(e):t)(e,e[t])};var en=(e,...t)=>new Proxy(fetch(e,...t).then(t=>t.ok?t:Promise.reject(new Error(`[${t.status}] Unable to fetch ${e}`))),Qt);const tn=!globalThis.window,nn=({FS:e,PATH:t,PATH_FS:n},r,s)=>{const o=n.resolve(r),a=t.dirname(o);return e.mkdirTree?e.mkdirTree(a):sn(e,a),e.writeFile(o,new Uint8Array(s),{canOwn:!0})},rn=e=>{const t=e.split("/");return t.pop(),t.join("/")},sn=(e,t)=>{const n=[];for(const r of t.split("/"))"."!==r&&".."!==r&&(n.push(r),r&&e.mkdir(n.join("/")))},on=(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(/^\\/+/,"/")},an=e=>{const t=e.map(e=>e.trim().replace(/(^[/]*|[/]*$)/g,"")).filter(e=>""!==e&&"."!==e).join("/");return e[0].startsWith("/")?`/${t}`:t},cn=(e,t)=>en(Ft(e,t)).arrayBuffer(),ln=(e,t,n,r)=>Pt((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:an([e,n]),path:an([t,n])}));const s=n||e.slice(1+e.lastIndexOf("/"));return[{url:e,path:an([t,s])}]})})(n).map(({url:n,path:s})=>cn(n,r).then(n=>e.writeFile(t,s,n)))),pn=(e,t)=>t.endsWith("/")?`${t}${e.split("/").pop()}`:t,un=(e,t)=>e.replace(/\\{.+?\\}/g,e=>{if(!t.has(e))throw new SyntaxError(`Invalid template: ${e}`);return t.get(e)}),dn=(e,t,n,r)=>Pt((e=>{const t=new Map,n=new Set,r=[];for(const[s,o]of Bt(e))if(/^\\{.+\\}$/.test(s)){if(t.has(s))throw new SyntaxError(`Duplicated template: ${s}`);t.set(s,un(o,t))}else{const e=un(s,t),a=pn(e,un(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})=>cn(n,r).then(r=>e.writeFile(t,s,r,n)))),fn=({main:e,worker:t},n)=>{const r=[];if(t&&tn)for(let[e,s]of Bt(t))e=Ft(e,n),r.push(Ut(e,s));if(e&&!tn)for(let[t,s]of Bt(e))t=Ft(t,n),Wt(t)?Ht(t):r.push(Ut(t,s));return Pt(r)},hn=e=>t=>{dispatchEvent(new CustomEvent(`${e}:progress`,{detail:t}))},{isNaN:yn,isFinite:mn,isInteger:gn}=Number,{ownKeys:wn}=Reflect,{is:bn}=Object,_n=(e,t,n)=>{const r=n.get(e),s=!r;return s?(ae.setUint32(0,t.length,!0),n.set(e,[ie[0],ie[1],ie[2],ie[3]])):t.push(I,r[0],r[1],r[2],r[3]),s},An=(e,t,n)=>{ae.setUint32(0,n,!0),e.push(t,ie[0],ie[1],ie[2],ie[3])},kn=(e,t,n)=>{switch(typeof e){case"number":e&&mn(e)?gn(e)&&e<256&&-1<e?t.push(g,e):(ae.setFloat64(0,e,!0),t.push(m,ie[0],ie[1],ie[2],ie[3],ie[4],ie[5],ie[6],ie[7])):yn(e)?t.push(w):e?t.push(e<0?_:b):t.push(bn(e,0)?A:k);break;case"object":switch(!0){case null===e:t.push(y);break;case!_n(e,t,n):break;case G(e):{const r=e.length;An(t,$,r);for(let s=0;s<r;s++)kn(e[s],t,n);break}case V(e):if(t.push(D),kn(Ce(e),t,n),e=e.buffer,!_n(e,t,n))break;case e instanceof ArrayBuffer:{const n=new Uint8Array(e);An(t,S,n.length),xn(t,n);break}case e instanceof Date:t.push(B),kn(e.getTime(),t,n);break;case e instanceof Map:An(t,M,e.size);for(const[r,s]of e)kn(r,t,n),kn(s,t,n);break;case e instanceof Set:An(t,R,e.size);for(const r of e)kn(r,t,n);break;case e instanceof Error:t.push(P),kn(e.name,t,n),kn(e.message,t,n),kn(e.stack,t,n);break;case e instanceof z:t.push(L),kn(e.data,t,n),kn(e.width,t,n),kn(e.height,t,n),kn(e.colorSpace,t,n),kn(e.pixelFormat,t,n);break;case e instanceof RegExp:t.push(T),kn(e.source,t,n),kn(e.flags,t,n);break;case e instanceof File:t.push(C),kn(e.name,t,n),kn(e.lastModified,t,n);case e instanceof Blob:{const r=e.size;t.push(O),kn(e.type,t,n),kn(r,t,n);const s=t.length;xn(t,new Uint8Array(r)),vn.push(e.arrayBuffer().then(e=>[s,e]));break}default:if("toJSON"in e){const r=e.toJSON();kn(r===e?null:r,t,n)}else{const r=wn(e),s=r.length;An(t,F,s);for(let o=0;o<s;o++){const s=r[o];kn(s,t,n),kn(e[s],t,n)}}}break;case"string":if(_n(e,t,n)){const n=H.encode(e);An(t,E,n.length),xn(t,n)}break;case"boolean":t.push(e?f:d);break;case"symbol":t.push(j),kn(N(e),t,n);break;case"bigint":{let n=v;9223372036854775807n<e?(ae.setBigUint64(0,e,!0),n=x):ae.setBigInt64(0,e,!0),t.push(n,ie[0],ie[1],ie[2],ie[3],ie[4],ie[5],ie[6],ie[7]);break}default:t.push(h)}},vn=[];let xn=se;const En={parse:fe,stringify:e=>{const t=[];return xn=se,kn(e,t,new Map),t}},jn=new WeakMap,$n=async(e,t,n,r,s)=>{r.files&&(t("Loading files"),await dn(e,n,r.files,s),t("Loaded files")),r.fetch&&(t("Loading fetch"),await ln(e,n,r.fetch,s),t("Loaded fetch")),r.js_modules&&(t("Loading JS modules"),await fn(r.js_modules,s),t("Loaded JS modules"))},Sn=(e,t,n)=>{"polyscript"===t&&(n.lazy_py_modules=async(...t)=>(await jn.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=En),e.registerJsModule(t,n)},Bn=(e,t)=>{if(e.endsWith("/*")){if(/\\.(zip|whl|tgz|tar(?:\\.gz)?)$/.test(t))return RegExp.$1;throw new Error(`Unsupported archive ${t}`)}return""},Pn=(e,t,...n)=>{try{return e.runPython(xt(t),...n)}catch(t){_t.get(e).stderr(t)}},Mn=async(e,t,...n)=>{try{return await e.runPythonAsync(xt(t),...n)}catch(t){_t.get(e).stderr(t)}},Fn=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){_t.get(e).stderr(t)}};var Tn=(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 Rn=async e=>(await import("./toml-V4Savzlc.js")).parse(e);async function Dn(e,t){return new Promise((n,r)=>{e.syncfs(t,e=>{e?r(e):n()})})}function Ln(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 On(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):sn(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 Dn(t,!0),{syncfs:async()=>await Dn(t,!1)}}}const On=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},{parse:Cn}=JSON,In=(e,t)=>new URL(e,t).href,zn=(e,t,n)=>{if(t in e)throw new Error(`Duplicated path: ${t}`);e[t]=n},Un=(e,t,n)=>{for(const r in t)zn(e,In(r,n),t[r])},Hn=(e,t,n,r)=>{const s=t[n];s&&(e[n]??={},Un(e[n],s,r))},Wn=async(e,t=e.packages,n=new Set)=>{const r=[];for(const s of t){if(n.has(s))continue;n.add(s);const t=s.endsWith(".toml");if(t||s.endsWith(".json")){const o=await en(s).text(),{name:a,files:i,js_modules:c,packages:l}=t?await Rn(o):Cn(o);if(n.has(a))throw new Error(`Unable to process ${a} @ ${s}`);n.add(a),l&&r.push(...await Wn(e,l,n)),c&&(e.js_modules??={},Hn(e.js_modules,c,"main",s),Hn(e.js_modules,c,"worker",s)),i&&(e.files??={},Un(e.files,i,s))}else r.push(s)}return r},qn=(e,t)=>{try{e.mkdir(t)}catch(e){}},Nn=hn("mpy");var Jn={type:"micropython",module:(e="1.27.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}=At({stderr:vt(console.error),stdout:vt(console.log)});n=n.replace(/\\.m?js$/,".wasm"),Nn("Loading MicroPython");const i=await a(e({linebuffer:!1,stderr:s,stdout:o,url:n}));globalThis[Ot].set("-T-",this.transform.bind(this,i));const c=Kn.bind(this,i,r);return jn.set(i,c),t.experimental_remote_packages&&(Nn("Loading remote packages"),t.packages=await Wn(t),Nn("Loaded remote packages")),await $n(this,Nn,i,t,r),this.writeFile(i,"./mip.py",Tn),t.packages&&(Nn("Loading packages"),await c(t.packages.map(Tt,r)),Nn("Loaded packages")),Nn("Loaded MicroPython"),i.mountNativeFS||(i.mountNativeFS=Ln(i._module)),i},registerJSModule:Sn,run:Pn,runAsync:Mn,runEvent:Fn,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=Bn(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-CgZGjqjF.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)qn(s,i);else{qn(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 nn(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 nn(i,t,n)}};async function Kn(e,t,n){let r;for(const s of n)if(s.endsWith(".whl")){const n=Ft(s,t),r=await en(n).arrayBuffer();await this.writeFile(e,"./*",r,n)}else r||(r=e.pyimport("mip")),r.install(s)}const Gn={dict_converter:Object.fromEntries},{stringify:Vn}=JSON,{apply:Xn}=Reflect,Yn=Function.prototype,Zn=e=>function(...t){return Xn(e,this,t)};let Qn,er;const tr=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(Qn in r&&!r[Qn].shared?.gcRegistered){e=!1;let o=t.get(r)?.deref();if(!o){o=er(r);const e=new WeakRef(o);t.set(r,e),t.set(o,e)}n[s]=o,e=!0}}};Object.defineProperties(Yn,{apply:{value(t,r){return e&&n(r),Xn(this,t,r)}},call:{value(t,...r){return e&&n(r),Xn(this,t,r)}}})},nr=hn("py"),rr=new WeakMap;var sr={type:"pyodide",module:(e="0.29.2")=>`https://cdn.jsdelivr.net/pyodide/v${e}/full/pyodide.mjs`,async engine({loadPyodide:e,version:t},n,r,s){nr("Loading Pyodide");let{packages:o,index_urls:a}=n;if(o){if(o=o.map(Tt,s),!a){nr("Loading Packages Graph");const{default:e}=await Promise.resolve().then(function(){return cr});if(t in e){const n=e[t];for(const e of o){if(/^(?:\\.|\\/|https?:\\/\\/)/.test(e))continue;const r=e.split(/[>=<]=/)[0];r.toLowerCase()in n||console.warn(`Pyodide ${t} might not support ${e}. See: https://packages.pyscript.net/?q=${r}`)}}nr("Loaded Packages Graph")}n.experimental_remote_packages&&(nr("Loading remote packages"),n.packages=o=await Wn(n,o),nr("Loaded remote packages"))}nr("Loading Storage");const c=r.slice(0,r.lastIndexOf("/")),l=new i(`${c}@${t}`),p={indexURL:c},u="never"!==n.packages_cache&&"0.28.0"!==t;if(await l.sync(),nr("Loaded Storage"),u||l.clear(),o&&u)if("passthrough"===n.packages_cache)p.packages=o,o=null,l.clear();else{o=o.sort();const e=Vn(o);if(l.has(e)){const n=l.get(e);if(p.packages=o.map(e=>e.split(/[>=<]=/)[0]),t.startsWith("0.27")){const e=new Blob([n],{type:"application/json"});p.lockFileURL=URL.createObjectURL(e)}else p.lockFileContents=n;o=null}}const{stderr:d,stdout:f,get:h}=At();nr("Loading interpreter");const y=await h(e({stderr:d,stdout:f,...p}));nr("Loaded interpreter"),globalThis[Ot].set("-T-",this.transform.bind(this,y)),n.debug&&y.setDebug(!0);const m=ar.bind(y);return a&&rr.set(y,a),jn.set(y,m),await $n(this,nr,y,n,s),o&&await m(o,l,u),await l.close(),p.lockFileURL&&URL.revokeObjectURL(p.lockFileURL),nr("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({})}),er=globalThis.experimental_create_proxy,delete globalThis.experimental_create_proxy,[Qn]=Reflect.ownKeys(er).filter(e=>"symbol"==typeof e&&"Symbol(pyproxy.attrs)"===String(e)),tr(!0)),y},registerJSModule:Sn,run:Zn(Pn),runAsync:Zn(Mn),runEvent:Zn(Fn),transform:(e,t)=>Xn(or,e,[t]),writeFile:(e,t,n,r)=>{const s=Bn(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 nn({FS:o,PATH:a,PATH_FS:i},t,n)}};function or(e){const{ffi:{PyProxy:t}}=this;if(e&&"object"==typeof e){if(e instanceof t)return e.toJs(Gn);if(e instanceof Map)return new Map([...e.entries()]);if(Et(e))return e.map(or,this)}return e}async function ar(e,t,n=!1){const{log:r}=console,s=(e,...t)=>{r(e,...t),console.log=r,nr(e),console.log=s};console.log=s,await this.loadPackage("micropip");const o=this.pyimport("micropip");if(rr.has(this)&&o.set_index_urls(rr.get(this)),await o.install(e,{keep_going:!0}),console.log=r,n&&t instanceof i){const n=o.freeze();t.set(Vn(e),n)}o.destroy()}var ir=new Proxy({v:["latest","stable","0.29.2","0.29.1","0.29.0","0.28.3","0.28.2","0.28.1","0.28.0","0.27.7","0.27.6","0.27.5","0.27.4","0.27.3","0.27.2","0.27.1","0.27.0"],p:{affine:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],aiohappyeyeballs:[0,1,2,3,4,5,6,7,8],aiohttp:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],aiosignal:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],altair:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"annotated-types":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],anyio:[0,1,2,3,4,5,6,7,8,9,10,11],apsw:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14],"argon2-cffi":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"argon2-cffi-bindings":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],asciitree:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],astropy:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],astropy_iers_data:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],asttokens:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"async-timeout":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],atomicwrites:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],attrs:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"audioop-lts":[0,1,2,3,4,5,6,7],autograd:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"awkward-cpp":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],b2d:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],bcrypt:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],beautifulsoup4:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"bilby.cython":[0,1,2,3,4],biopython:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],bitarray:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],bitstring:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],bleach:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],blosc2:[0,1,2,3,4,5,6,7,8],bokeh:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"boost-histogram":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],bottleneck:[0,1,2],brotli:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],cachetools:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],cartopy:[0,1,2,9,10,11,12,13,14,15,16],casadi:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"cbor-diag":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],certifi:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],cffi:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],cffi_example:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],cftime:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"charset-normalizer":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],clarabel:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],click:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],cligj:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],clingo:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],cloudpickle:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],cmyt:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],cobs:[0,1,2,3,4,5,6,7],colorspacious:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],contourpy:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],coolprop:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],coverage:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],cramjam:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],crc32c:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],cryptography:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"css-inline":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15],cssselect:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"cvxpy-base":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],cycler:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],cysignals:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],cytoolz:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],decorator:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],demes:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],deprecation:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],diskcache:[0,1,2,3,4,5,6,7,8],distlib:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],distro:[0,1,2,3,4,5,6,7,8,9,10,11],docutils:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],donfig:[0,1,2,3,4,5,6,7,8],ewah_bool_utils:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],exceptiongroup:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],executing:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],fastapi:[0,1,2,3,4],fastcan:[0,1,2,3,4],fastparquet:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],fiona:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],fonttools:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],freesasa:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],frozenlist:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],fsspec:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],future:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],galpy:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],geopandas:[0,1,2,9,10,11,12,13,14,15,16],gmpy2:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"google-crc32c":[0,1,2],gsw:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],h11:[0,1,2,3,4,5,6,7,8,9,10,11],h3:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],h5py:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],healpy:[0,1,2],highspy:[0,1,2,3,4],html5lib:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],httpcore:[0,1,2,3,4,5,6,7,8,9,10,11],httpx:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14],idna:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],igraph:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],imageio:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"imgui-bundle":[0,1,2,3,4,5,6,7,8],iminuit:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],iniconfig:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],inspice:[0,1,2,3,4,5,6,7,8],ipython:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],jedi:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],jinja2:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],jiter:[0,1,2,3,4,5,6,7,8,9,10,11],joblib:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],jsonpatch:[0,1,2,3,4],jsonpointer:[0,1,2,3,4],jsonschema:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],jsonschema_specifications:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],kiwisolver:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"lakers-python":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],lazy_loader:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"lazy-object-proxy":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],libcst:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],lightgbm:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],logbook:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],lxml:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],lz4:[0,1,2,3,4,5,6,7,8],markupsafe:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],matplotlib:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"matplotlib-inline":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"memory-allocator":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],micropip:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],ml_dtypes:[0,1,2],mmh3:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"more-itertools":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],mpmath:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],msgpack:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],msgspec:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],msprime:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],multidict:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],munch:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],mypy:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],narwhals:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],ndindex:[0,1,2,3,4,5,6,7,8],netcdf4:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],networkx:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],newick:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],nh3:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],nlopt:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],nltk:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],numcodecs:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],numpy:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],openai:[0,1,2,3,4,5,6,7,8,9,10,11],"opencv-python":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],optlang:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],orjson:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],packaging:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pandas:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],parso:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],patsy:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pcodec:[0,1,2,3,4,5,6,7,8,9,10,11,12,13],peewee:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"pi-heif":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pillow:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"pillow-heif":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pkgconfig:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],platformdirs:[0,1,2,3,4,5,6,7,8],pluggy:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],ply:[0,1,2,3,4,5,6,7,8],pplpy:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],primecountpy:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],prompt_toolkit:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],propcache:[0,1,2,3,4,5,6,7,8],protobuf:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"pure-eval":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],py:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pyarrow:[0,1,2,9,10,11,12,13,14,15],pycdfpp:[0,1,2],pyclipper:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pycparser:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pycryptodome:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pydantic:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pydantic_core:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pyerfa:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"pygame-ce":[0,1,2,3,4,9,10,11,12,13,14,15,16],pygments:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pyheif:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pyiceberg:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pyinstrument:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"pylimer-tools":[0,1,2,3,4],pymupdf:[0,1,2,3,4,5,6,7],pynacl:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"pyodide-http":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"pyodide-unix-timezones":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pyparsing:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pyproj:[0,1,2,9,10,11,12,13,14,15,16],pyrodigal:[0,1,2],pyrsistent:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pysam:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pyshp:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pytaglib:[0,1,2,3,4,5,6,7,8],pytest:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"pytest-asyncio":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"pytest-benchmark":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pytest_httpx:[0,1,2,3,4,5,6,7,8,9,10,11],"python-calamine":[0,1,2,3,4],"python-dateutil":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"python-flint":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"python-magic":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"python-sat":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"python-solvespace":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pytz:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pywavelets:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pyxel:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pyxirr:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],pyyaml:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],rasterio:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],rateslib:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],rebound:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],reboundx:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],referencing:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],regex:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],requests:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],retrying:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],rich:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],river:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],robotraconteur:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"rpds-py":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"ruamel.yaml":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],rustworkx:[0,1,2,3,4,5,6,7,8],"scikit-image":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"scikit-learn":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],scipy:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],screed:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],setuptools:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],shapely:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],simplejson:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],sisl:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],six:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"smart-open":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],sniffio:[0,1,2,3,4,5,6,7,8,9,10,11],sortedcontainers:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],soundfile:[0,1,2,3,4,5,6,7,8],soupsieve:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],sourmash:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],soxr:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],sparseqr:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],sqlalchemy:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"stack-data":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],starlette:[0,1,2,3,4],statsmodels:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],strictyaml:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],svgwrite:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],swiglpk:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],sympy:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],tblib:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],termcolor:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],texttable:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],texture2ddecoder:[0,1,2,3,4,5,6,7,8],threadpoolctl:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],tiktoken:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],tomli:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"tomli-w":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],toolz:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],tqdm:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],traitlets:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],traits:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"tree-sitter":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"tree-sitter-go":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"tree-sitter-java":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"tree-sitter-python":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],tskit:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"typing-extensions":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"typing-inspection":[0,1,2],tzdata:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],ujson:[0,1,2,3,4,5,6,7,8],uncertainties:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],unyt:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],urllib3:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"vega-datasets":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],vrplib:[0,1,2,3,4],wcwidth:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],webencodings:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],wordcloud:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],wrapt:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],xarray:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],xgboost:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],xlrd:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],xxhash:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],xyzservices:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],yarl:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],yt:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],zengl:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],zfpy:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],zstandard:[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16],"arro3-compute":[9,10,11,12,13,14,15,16],"arro3-core":[9,10,11,12,13,14,15,16],"arro3-io":[9,10,11,12,13,14,15,16],duckdb:[9,10,11,12,13,14,15,16],gensim:[9,10,11,12,13,14,15,16],"matplotlib-pyodide":[9,10,11,12,13,14,15,16],mne:[9,10,11,12,13,14,15,16],osqp:[9,10,11],polars:[9,10,11,12,13,14,15,16],"rust-abi-test":[9,10,11,12,13,14,15,16],"rust-panic-test":[9,10,11,12,13,14,15,16],zarr:[9,10,11,12,13,14,15,16]}},{has:(e,t)=>e.v.includes(t),get:(e,t)=>{const n=e.v.indexOf(t);return new Proxy(e.p,{has:(e,t)=>e[t]?.includes(n)})}}),cr=Object.freeze({__proto__:null,default:ir});const lr="ruby-wasm-wasi",pr=lr.replace(/\\W+/g,"_");var ur={type:lr,experimental:!0,module:(e="2.8.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 en(n).arrayBuffer(),o=await WebAssembly.compile(s),{vm:a}=await e(o);return t.files&&await dn(this,a,t.files,r),t.fetch&&await ln(this,a,t.fetch,r),t.js_modules&&await fn(t.js_modules,r),a},registerJSModule(e,t,n){t=t.replace(/\\W+/g,"__");const r=`__module_${pr}_${t}`;globalThis[r]=n,this.run(e,`require "js";$${t}=JS.global[:${r}]`),delete globalThis[r]},run:(e,t,...n)=>e.eval(xt(t),...n),runAsync:(e,t,...n)=>e.evalAsync(xt(t),...n),async runEvent(e,t,n){if(/^xworker\\.(on\\w+)$/.test(t)){const{$1:t}=RegExp,r=`__module_${pr}_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 ${lr}`)}};var dr={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}=At(),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 dn(this,c,n.files,s),n.fetch&&await ln(this,c,n.fetch,s),n.js_modules&&await fn(n.js_modules,s),c},registerJSModule:(e,t,n)=>{e.global.set(t,n)},run:(e,t,...n)=>{try{return e.doStringSync(xt(t),...n)}catch(t){_t.get(e).stderr(t)}},runAsync:async(e,t,...n)=>{try{return await e.doString(xt(t),...n)}catch(t){_t.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){_t.get(e).stderr(t)}},transform:(e,t)=>t,writeFile:({cmodule:{module:{FS:e}}},t,n)=>((e,t,n)=>(sn(e,rn(t)),t=on(e,t),e.writeFile(t,new Uint8Array(n),{canOwn:!0})))(e,t,n)};const fr=new WeakMap,hr=new FinalizationRegistry(e=>e()),yr=async(e,t)=>{const{shelter:n,destroy:r,io:s}=fr.get(e),{output:o,result:a}=await n.captureR(xt(t));for(const{type:e,data:t}of o)s[e](t);return hr.register(a,r),a};var mr={type:"webr",experimental:!0,module:(e="0.5.8")=>`https://cdn.jsdelivr.net/npm/webr@${e}/dist/webr.mjs`,async engine(e,t,n,r){const{get:s}=At(),o=new e.WebR;await s(o.init().then(()=>o));const a=await new o.Shelter;return fr.set(o,{module:e,shelter:a,destroy:a.destroy.bind(a),io:_t.get(o)}),t.files&&await dn(this,o,t.files,r),t.fetch&&await ln(this,o,t.fetch,r),t.js_modules&&await fn(t.js_modules,r),o},registerJSModule(e,t){console.warn(`Experimental interpreter: module ${t} is not supported (yet)`)},run:yr,runAsync:yr,async runEvent(e,t,n){await e.evalRVoid(`${t}(event)`,{env:{event:{type:[n.type]}}})},transform:(e,t)=>t,writeFile:()=>{}};const gr=new Map,wr=new Map,br=new Proxy(new Map,{get(e,t){if(!e.has(t)){const[n,...r]=t.split("@"),s=gr.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=>(wr.set(t,e),s(r,e,n,o)))}}),_r=e=>{for(const t of[].concat(e.type))gr.set(t,e)};for(const e of[Xt,Jn,sr,ir,ur,dr,mr])_r(e);const{parse:Ar}=JSON,kr=(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,[Ft(e),n]})(e,t);return"json"===s?n=en(r).json():"toml"===s?n=en(r).text().then(Rn):"string"===s?n=vr(e):"object"===s&&e?n=e:"txt"===s&&"string"==typeof n&&(n=vr(n)),[n,e=r]},vr=e=>{try{return Ar(e)}catch(t){return Rn(e)}},xr="BeforeRun",Er="AfterRun",jr=[`code${xr}`,`code${xr}Async`,`code${Er}`,`code${Er}Async`],$r=["onWorker","onReady",`on${xr}`,`on${xr}Async`,`on${Er}`,`on${Er}Async`];function Sr(e,t){const{run:n,runAsync:r}=gr.get(this.type);return{...e,run:n.bind(this,t),runAsync:r.bind(this,t)}}const Br=(e,t,n,r,s,o)=>{if(s||o){const a=Sr.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 Pr,Mr,Fr;const Tr=(e,t)=>{addEventListener(e,t||(async t=>{try{await Pr,Mr(`xworker.on${e}`,t)}catch(e){postMessage(e)}}),!!t&&{once:!0})},{proxy:Rr,sync:Dr,native:Lr,window:Or,isWindowProxy:Cr,ffi:Ir}=await(async e=>{const t=await wt({...e,decoder:e?.decoder||he}),n=qe({...e,buffer:!0,reflect:t.proxy[l],timeout:t.ffi_timeout});return t.proxy[p]=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=>Fr?Fr(e):e}),zr={polyfill:Dr,sync:Rr,window:Lr||Dr?Or:null,isWindowProxy:Cr,onmessage:console.info,onerror:console.error,onmessageerror:console.warn,postMessage:postMessage.bind(self)};Tr("message",({data:{options:e,config:t,configURL:n,code:r,hooks:s}})=>{Pr=(async()=>{try{const{id:o,tag:c,type:l,custom:p,version:u,config:d,async:f}=e,h=((e,t="")=>`${e}@${t}`.replace(/@$/,""))(l,u),y=await((e,t,n,r={})=>(t&&([r,t]=kr(t,n,r)),Mt(r).then(n=>br[e](n,t))))(h,t,n,d),{js_modules:m}=wr.get(h),g=m?.main,w=$t(gr.get(l)),b=((e,t,n,r)=>({type:t,config:n,interpreter:r,io:_t.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,p||l,d||{},y);let _="run";if(f&&(_+="Async"),s){let e,t,n="",r="";for(const e of jr){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,Lt(t),...o);return r&&s(e,r,...o),a}:async(e,t,...o)=>{n&&await s(e,n,...o);const a=await s(e,Lt(t),...o);return r&&await s(e,r,...o),a}})(w,_,n,r);for(const n of $r.slice(2)){const r=s[n];if(r){const s=n.endsWith("Async");if(s&&f||!s&&!f){const s=Dt(r);n.startsWith("onBefore")?e=s:t=s}}}Br(w,b,zr,f,e,t)}let A,k,v,x=null,E="";(Lr||Dr)&&(({CustomEvent:A,document:k}=Or),x=o&&k.getElementById(o)||null,v=e=>Rt(x,p||l,e,!0,A));const j=Jt(Or,Rr,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}`,zt(r,e));t.registerJSModule(n,s,r)})(l,w,y,j),w.registerJSModule(y,"polyscript",{IDBMap:a,IDBMapSync:i,xworker:zr,currentScript:x,config:b.config,js_modules:j,ffi:Ir,get target(){return!E&&x&&("SCRIPT"===c?x.after(jt(Or.document.createElement(`script-${p||l}`),{id:E=`${o}-target`})):(E=o,x.replaceChildren(),x.style.display="block")),E}}),Mr=w.runEvent.bind(w,y),Fr=w.transform.bind(w,y),x&&v("ready"),s?.onReady&&Dt(s?.onReady).call(w,Sr.call(w,b,y),zr),await w[_](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}`,`${t}.sync.__export__ = lambda:${JSON.stringify(r)}`,...r.map(e=>`${t}.sync.${e} = ${e}`),`del ${t}`].join("\\n"))}return x&&v("done"),postMessage("polyscript:done"),y}catch(e){postMessage(e)}})(),Tr("error"),Tr("message"),Tr("messageerror"),(Lr||Dr)&&addEventListener("py:progress",({type:e,detail:t})=>{Or.dispatchEvent(new Or.CustomEvent(e,{detail:t}))})});\n'.replace(Xt,Yt)],{type:"text/javascript"})),...e))({serviceWorker:n?.serviceWorker||n?.service_worker,reflected_ffi_timeout:globalThis.reflected_ffi_timeout??-1}),{postMessage:a}=s,i=this instanceof gs;let c=!1;const l=gn(s.proxy,{importJS:Cn,importCSS:In,isStuck:()=>c,notStuck(){c=!1}}),p=h();let u=o(t).text().then(e=>{const t=i?this.toJSON():void 0;a.call(s,{options:n,config:r,code:e,hooks:t})}).then(()=>{u={then:e=>e()}});return bn(s,{unstuck:{value(){c=!0}},sync:{value:l},ready:{value:p.promise},postMessage:{value:(e,...t)=>u.then(()=>a.call(s,e,...t))},onerror:{writable:!0,configurable:!0,value:console.error}}),s.addEventListener("message",e=>{const{data:t}=e,n=t instanceof Error;(n||"polyscript:done"===t)&&(e.stopImmediatePropagation(),n?(p.reject(t),s.onerror(wn(e,{type:{value:"error"},error:{value:t}}))):p.resolve(s))}),i&&this.onWorker?.(this.interpreter,s),s};const bs="Invalid content",_s="Invalid worker attribute",ks="Invalid worker attribute";var As=e=>{const{src:t,worker:n}=e.attributes;if(n){let{value:r}=n;if(r)throw new SyntaxError(ks);if(r=t?.value,!r){if(t)throw new SyntaxError(_s);if(e.childElementCount){const{innerHTML:t,localName:n,type:s}=e,o=s||n.replace(/-script$/,"");r=yn(t),console.warn(`Deprecated: use <script type="${o}"> for an always safe content parsing:\n`,r)}else r=e.textContent;return URL.createObjectURL(new Blob([hn(r)],{type:"text/plain"}))}return r}if(t&&e.textContent.replace(/\/\*[\s\S]*?\*\//g,"").replace(/^\s*(?:\/\/|#).*/gm,"").trim())throw new SyntaxError(bs)};const vs=(e,t)=>{const n=(e=>{let t=e;for(;t.parentNode;)t=t.parentNode;return t})(e);return n.getElementById(t)||((e,t=document)=>t.querySelector(e))(t,n)},xs=new WeakMap,Es={get(){let e=xs.get(this);return e||(e=document.createElement(`${this.type}-script`),xs.set(this,e),Ms(this)),e},set(e){"string"==typeof e?xs.set(this,vs(this,e)):(xs.set(this,e),Ms(this))}},js=new WeakMap,Ss=new Map,$s=(e,t)=>{const n=e?.value;return n?t+n:""},Bs=(e,t,n,r,s,o,a=e)=>{if(!Ss.has(t)){const i={interpreter:cs(n,s,o),queue:vn(),XWorker:ws(e,r)};Ss.set(t,i),Ss.has(e)||Ss.set(e,i),Ss.has(a)||Ss.set(a,i)}return Ss.get(t)},Ms=async e=>{if(js.has(e)){const{target:t}=e;t&&(e.closest("head")?document.body.append(t):e.after(t))}else{const{attributes:{config:t,env:n,name:r,target:s,version:a,"service-worker":i},src:c,type:l}=e,p=!Un(e),u=a?.value,h=ls(l,u);let m=$s(t,"|");const g=$s(n,"")||`${h}${m}`;m=m.slice(1);const b=As(e);if(b){const t=new(ws(l,u))(b,{...Sn(e,l),version:u,async:p,config:m,serviceWorker:i?.value});js.set(_n(e,"xworker",{value:t}),{xworker:t});const n=r?.value;return void(n&&y[n].resolve(t.ready))}const _=$s(s,""),k=Bs(l,g,h,u,m);js.set(_n(e,"target",Es),k),_&&xs.set(e,vs(e,_));const A=c?o(c).text():e.textContent;k.queue=k.queue.then(()=>(async(e,t,n,r)=>{const{type:s}=e,o=Zr.get(s);o.experimental&&console.warn(`The ${s} interpreter is experimental`);const[a,i]=await An([js.get(e).interpreter,t]);try{On(s,o,a,Rn),o.registerJSModule(a,"polyscript",{IDBMap:d,IDBMapSync:f,XWorker:n,currentScript:e,js_modules:Rn,workers:w}),$n(e,s,"ready"),_n(document,"currentScript",{configurable:!0,get:()=>e});const t=$n.bind(null,e,s,"done");let c=o[r?"runAsync":"run"](a,i);return r&&(c=await c),t(),c}finally{delete document.currentScript}})(e,A,k.XWorker,p))}},Fs=new Proxy(wn(null),{get:(e,t)=>new Promise(queueMicrotask).then(()=>Ps(t))}),Ps=async e=>{if(Ss.has(e)){const{interpreter:t,queue:n}=Ss.get(e);return(await An([t,n]))[0]}const t=Ss.size?`Available interpreters are: ${[...Ss.keys()].map(e=>`"${e}"`).join(", ")}.`:"There are no interpreters in this page.";throw new Error(`The interpreter "${e}" was not found. ${t}`)},Ts=async e=>{const{type:n,currentTarget:r}=e;if(ts.length)for(let{name:s,value:o,ownerElement:a}of t(`./@*[${ts.map(e=>`name()="${e}${n}"`).join(" or ")}]`,r)){s=s.slice(0,-(n.length+1));const t=await Ps(a.getAttribute(`${s}-env`)||s);Zr.get(s).runEvent(t,o,e)}},Rs=e=>{if(ts.length)for(let{name:n,ownerElement:r}of t(`.//@*[${ts.map(e=>`starts-with(name(),"${e}")`).join(" or ")}]`,e)){const e=n.lastIndexOf("-"),t=n.slice(e+1);"env"!==t&&(r.addEventListener(t,Ts),"disabled"in r&&!r.disabled&&(r.disabled=!0,Fs[n.slice(0,e)].then(()=>{r.disabled=!1})))}},Ds=ws(),Ls=[],Os=new Map,Cs=new Map,Is=new Map,Ws=async e=>{for(const t of Ls)if(e.matches(t)){const n=Cs.get(t),r=Us.get(n),{resolve:s}=Is.get(n),{options:o,known:a}=r;if(a.has(e))return;a.add(e);for(const[t,n]of Os)e.matches(t)&&await n(e);const{interpreter:i,configURL:c,config:l,version:p,env:u,onerror:h,hooks:m}=o;let g;try{const t=As(e);if(t){let r=p,o=c,a=e.getAttribute("config")||l||{};if(!r||!a){const[e,t]=as(a,c);a=await e,o=t,r=a.version||a.interpreter,r&&/\.m?js$/.test(r)&&(r=new URL(r,o).href)}Number.isSafeInteger(a?.experimental_ffi_timeout)&&(globalThis.reflected_ffi_timeout=a.experimental_ffi_timeout);const u=Ds.call(new gs(null,m),t,{...Sn(e,n),configURL:o,version:r,type:i,custom:n,config:a,async:!Un(e),serviceWorker:e.getAttribute("service-worker")});_n(e,"xworker",{value:u}),s({type:n,xworker:u});const d=e.getAttribute("name");return void(d&&y[d].resolve(u.ready))}}catch(e){g=e}const b=ls(i,p),_=u||`${b}${l?`|${l}`:""}`,{interpreter:k,XWorker:A}=Bs(n,_,b,p,l,c,i),v=await k,x=wn(Zr.get(i)),E=new gs(v,m),j=function(...e){return A.apply(E,e)},S={...Bn(x,n,structuredClone(Qr.get(b)),v),XWorker:j};On(i,x,v,Rn),x.registerJSModule(v,"polyscript",{IDBMap:d,IDBMapSync:f,XWorker:j,config:S.config,currentScript:n.startsWith("_")?null:e,js_modules:Rn,workers:w});for(const t of["Run","RunAsync"]){let n,r,s="",o="";for(const e of fs){const n=m?.main?.[e];n&&e.endsWith(t)&&(e.startsWith("codeBefore")?s=hn(n()):o=hn(n()))}(s||o)&&Fn(x,`r${t.slice(1)}`,s,o);for(let e=2;e<hs.length;e++){const s=hs[e],o=m?.main?.[s];o&&s.endsWith(t)&&(s.startsWith("onBefore")?n=o:r=o)}ms(x,S,e,t.endsWith("Async"),n,r)}r.queue=r.queue.then(()=>(s(S),g&&h?.(g,e),m?.main?.onReady?.(S,e)))}},Us=new Map;let zs=0;const Ns=e=>(Is.has(e)||Is.set(e,h()),Is.get(e).promise),[{customObserver:Hs,define:qs,whenDefined:Js,env:Ks,Hook:Gs,XWorker:Xs},Ys]=((e,t,n=globalThis)=>{const r=Symbol.for(e),s=r in n;return[s?n[r]:Object.defineProperty(n,r,{value:t})[r],s]})("polyscript",{customObserver:Os,define:(t,n)=>{let r=null==t;if(r)t="_ps"+zs++;else if(Zr.has(t)||Us.has(t))throw new Error(`<script type="${t}"> already registered`);if(!Zr.has(n?.interpreter))throw new Error("Unspecified interpreter");Zr.set(t,Zr.get(n.interpreter));const s=[`script[type="${t}"]`];if(Ns(t),r){const{hooks:e}=n,r=e?.main?.onReady;n={...n,hooks:{...e,main:{...e?.main,onReady(e,n){Ls.splice(Ls.indexOf(t),1),Zr.delete(t),Us.delete(t),Is.delete(t),n.remove(),r?.(e)}}}},document.head.append(gn(document.createElement("script"),{type:t}))}else s.push(`${t}-script`),ts.push(`${t}-`);for(const e of s)Cs.set(e,t);Ls.push(...s),Us.set(t,{options:gn({env:t},n),known:new WeakSet,queue:Promise.resolve()}),r||Rs(document),e(s.join(",")).forEach(Ws)},whenDefined:Ns,env:Fs,Hook:gs,XWorker:Ds});if(!Ys){const t=new MutationObserver(e=>{const t=es.join(",");for(const{type:r,target:s,attributeName:o,addedNodes:a}of e){if("attributes"===r){const e=o.lastIndexOf("-")+1;if(e){const t=o.slice(0,e);for(const n of ts)if(t===n){const t=o.slice(e);if("env"!==t){const e=s.hasAttribute(o)?"add":"remove";s[`${e}EventListener`](t,Ts)}break}}continue}for(const e of a)1===e.nodeType&&(Rs(e),t&&e.matches(t)?Ms(e):n(t,e,!0))}}),n=(t,n,r)=>{t&&e(t,n).forEach(Ms),(t=Ls.join(","))&&(r&&Ws(n),e(t,n).forEach(Ws))},r=e=>(t.observe(e,{childList:!0,subtree:!0,attributes:!0}),e),{attachShadow:s}=Element.prototype;gn(Element.prototype,{attachShadow(e){return r(s.call(this,e))}}),queueMicrotask(()=>{Rs(r(document)),n(es.join(","),document,!1)})}export{Gs as Hook,bs as INVALID_CONTENT,_s as INVALID_SRC_ATTR,ks as INVALID_WORKER_ATTR,Xs as XWorker,Hs as customObserver,qs as define,Ks as env,Js as whenDefined};
//# sourceMappingURL=index.js.map