spyret 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,14 @@
1
+ "use strict";var Spyret=(()=>{var cl=Object.create;var He=Object.defineProperty;var fl=Object.getOwnPropertyDescriptor;var ll=Object.getOwnPropertyNames;var pl=Object.getPrototypeOf,dl=Object.prototype.hasOwnProperty;var Vr=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,r)=>(typeof require<"u"?require:t)[r]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var a=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),yl=(e,t)=>{for(var r in t)He(e,r,{get:t[r],enumerable:!0})},Ur=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of ll(t))!dl.call(e,i)&&i!==r&&He(e,i,{get:()=>t[i],enumerable:!(n=fl(t,i))||n.enumerable});return e};var Br=(e,t,r)=>(r=e!=null?cl(pl(e)):{},Ur(t||!e||!e.__esModule?He(r,"default",{value:e,enumerable:!0}):r,e)),hl=e=>Ur(He({},"__esModule",{value:!0}),e);var zr=a((gP,Gr)=>{"use strict";function gl(){this.__data__=[],this.size=0}Gr.exports=gl});var We=a((mP,Kr)=>{"use strict";function ml(e,t){return e===t||e!==e&&t!==t}Kr.exports=ml});var Ie=a((bP,Jr)=>{"use strict";var bl=We();function wl(e,t){for(var r=e.length;r--;)if(bl(e[r][0],t))return r;return-1}Jr.exports=wl});var Wr=a((wP,Hr)=>{"use strict";var vl=Ie(),xl=Array.prototype,Il=xl.splice;function Al(e){var t=this.__data__,r=vl(t,e);if(r<0)return!1;var n=t.length-1;return r==n?t.pop():Il.call(t,r,1),--this.size,!0}Hr.exports=Al});var Zr=a((vP,Yr)=>{"use strict";var ql=Ie();function Pl(e){var t=this.__data__,r=ql(t,e);return r<0?void 0:t[r][1]}Yr.exports=Pl});var Qr=a((xP,Xr)=>{"use strict";var El=Ie();function Ol(e){return El(this.__data__,e)>-1}Xr.exports=Ol});var tn=a((IP,en)=>{"use strict";var _l=Ie();function Tl(e,t){var r=this.__data__,n=_l(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}en.exports=Tl});var Ae=a((AP,rn)=>{"use strict";var Sl=zr(),jl=Wr(),kl=Zr(),Rl=Qr(),Cl=tn();function le(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}le.prototype.clear=Sl;le.prototype.delete=jl;le.prototype.get=kl;le.prototype.has=Rl;le.prototype.set=Cl;rn.exports=le});var sn=a((qP,nn)=>{"use strict";var Ml=Ae();function Nl(){this.__data__=new Ml,this.size=0}nn.exports=Nl});var an=a((PP,on)=>{"use strict";function Dl(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}on.exports=Dl});var cn=a((EP,un)=>{"use strict";function $l(e){return this.__data__.get(e)}un.exports=$l});var ln=a((OP,fn)=>{"use strict";function Fl(e){return this.__data__.has(e)}fn.exports=Fl});var Nt=a((_P,pn)=>{"use strict";var Ll=typeof global=="object"&&global&&global.Object===Object&&global;pn.exports=Ll});var U=a((TP,dn)=>{"use strict";var Vl=Nt(),Ul=typeof self=="object"&&self&&self.Object===Object&&self,Bl=Vl||Ul||Function("return this")();dn.exports=Bl});var ie=a((SP,yn)=>{"use strict";var Gl=U(),zl=Gl.Symbol;yn.exports=zl});var bn=a((jP,mn)=>{"use strict";var hn=ie(),gn=Object.prototype,Kl=gn.hasOwnProperty,Jl=gn.toString,qe=hn?hn.toStringTag:void 0;function Hl(e){var t=Kl.call(e,qe),r=e[qe];try{e[qe]=void 0;var n=!0}catch{}var i=Jl.call(e);return n&&(t?e[qe]=r:delete e[qe]),i}mn.exports=Hl});var vn=a((kP,wn)=>{"use strict";var Wl=Object.prototype,Yl=Wl.toString;function Zl(e){return Yl.call(e)}wn.exports=Zl});var se=a((RP,An)=>{"use strict";var xn=ie(),Xl=bn(),Ql=vn(),ep="[object Null]",tp="[object Undefined]",In=xn?xn.toStringTag:void 0;function rp(e){return e==null?e===void 0?tp:ep:In&&In in Object(e)?Xl(e):Ql(e)}An.exports=rp});var X=a((CP,qn)=>{"use strict";function np(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}qn.exports=np});var Pe=a((MP,Pn)=>{"use strict";var ip=se(),sp=X(),op="[object AsyncFunction]",ap="[object Function]",up="[object GeneratorFunction]",cp="[object Proxy]";function fp(e){if(!sp(e))return!1;var t=ip(e);return t==ap||t==up||t==op||t==cp}Pn.exports=fp});var On=a((NP,En)=>{"use strict";var lp=U(),pp=lp["__core-js_shared__"];En.exports=pp});var Sn=a((DP,Tn)=>{"use strict";var Dt=On(),_n=(function(){var e=/[^.]+$/.exec(Dt&&Dt.keys&&Dt.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();function dp(e){return!!_n&&_n in e}Tn.exports=dp});var $t=a(($P,jn)=>{"use strict";var yp=Function.prototype,hp=yp.toString;function gp(e){if(e!=null){try{return hp.call(e)}catch{}try{return e+""}catch{}}return""}jn.exports=gp});var Rn=a((FP,kn)=>{"use strict";var mp=Pe(),bp=Sn(),wp=X(),vp=$t(),xp=/[\\^$.*+?()[\]{}|]/g,Ip=/^\[object .+?Constructor\]$/,Ap=Function.prototype,qp=Object.prototype,Pp=Ap.toString,Ep=qp.hasOwnProperty,Op=RegExp("^"+Pp.call(Ep).replace(xp,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function _p(e){if(!wp(e)||bp(e))return!1;var t=mp(e)?Op:Ip;return t.test(vp(e))}kn.exports=_p});var Mn=a((LP,Cn)=>{"use strict";function Tp(e,t){return e?.[t]}Cn.exports=Tp});var Q=a((VP,Nn)=>{"use strict";var Sp=Rn(),jp=Mn();function kp(e,t){var r=jp(e,t);return Sp(r)?r:void 0}Nn.exports=kp});var Ye=a((UP,Dn)=>{"use strict";var Rp=Q(),Cp=U(),Mp=Rp(Cp,"Map");Dn.exports=Mp});var Ee=a((BP,$n)=>{"use strict";var Np=Q(),Dp=Np(Object,"create");$n.exports=Dp});var Vn=a((GP,Ln)=>{"use strict";var Fn=Ee();function $p(){this.__data__=Fn?Fn(null):{},this.size=0}Ln.exports=$p});var Bn=a((zP,Un)=>{"use strict";function Fp(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}Un.exports=Fp});var zn=a((KP,Gn)=>{"use strict";var Lp=Ee(),Vp="__lodash_hash_undefined__",Up=Object.prototype,Bp=Up.hasOwnProperty;function Gp(e){var t=this.__data__;if(Lp){var r=t[e];return r===Vp?void 0:r}return Bp.call(t,e)?t[e]:void 0}Gn.exports=Gp});var Jn=a((JP,Kn)=>{"use strict";var zp=Ee(),Kp=Object.prototype,Jp=Kp.hasOwnProperty;function Hp(e){var t=this.__data__;return zp?t[e]!==void 0:Jp.call(t,e)}Kn.exports=Hp});var Wn=a((HP,Hn)=>{"use strict";var Wp=Ee(),Yp="__lodash_hash_undefined__";function Zp(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Wp&&t===void 0?Yp:t,this}Hn.exports=Zp});var Zn=a((WP,Yn)=>{"use strict";var Xp=Vn(),Qp=Bn(),ed=zn(),td=Jn(),rd=Wn();function pe(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}pe.prototype.clear=Xp;pe.prototype.delete=Qp;pe.prototype.get=ed;pe.prototype.has=td;pe.prototype.set=rd;Yn.exports=pe});var ei=a((YP,Qn)=>{"use strict";var Xn=Zn(),nd=Ae(),id=Ye();function sd(){this.size=0,this.__data__={hash:new Xn,map:new(id||nd),string:new Xn}}Qn.exports=sd});var ri=a((ZP,ti)=>{"use strict";function od(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}ti.exports=od});var Oe=a((XP,ni)=>{"use strict";var ad=ri();function ud(e,t){var r=e.__data__;return ad(t)?r[typeof t=="string"?"string":"hash"]:r.map}ni.exports=ud});var si=a((QP,ii)=>{"use strict";var cd=Oe();function fd(e){var t=cd(this,e).delete(e);return this.size-=t?1:0,t}ii.exports=fd});var ai=a((eE,oi)=>{"use strict";var ld=Oe();function pd(e){return ld(this,e).get(e)}oi.exports=pd});var ci=a((tE,ui)=>{"use strict";var dd=Oe();function yd(e){return dd(this,e).has(e)}ui.exports=yd});var li=a((rE,fi)=>{"use strict";var hd=Oe();function gd(e,t){var r=hd(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this}fi.exports=gd});var Ze=a((nE,pi)=>{"use strict";var md=ei(),bd=si(),wd=ai(),vd=ci(),xd=li();function de(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}de.prototype.clear=md;de.prototype.delete=bd;de.prototype.get=wd;de.prototype.has=vd;de.prototype.set=xd;pi.exports=de});var yi=a((iE,di)=>{"use strict";var Id=Ae(),Ad=Ye(),qd=Ze(),Pd=200;function Ed(e,t){var r=this.__data__;if(r instanceof Id){var n=r.__data__;if(!Ad||n.length<Pd-1)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new qd(n)}return r.set(e,t),this.size=r.size,this}di.exports=Ed});var Xe=a((sE,hi)=>{"use strict";var Od=Ae(),_d=sn(),Td=an(),Sd=cn(),jd=ln(),kd=yi();function ye(e){var t=this.__data__=new Od(e);this.size=t.size}ye.prototype.clear=_d;ye.prototype.delete=Td;ye.prototype.get=Sd;ye.prototype.has=jd;ye.prototype.set=kd;hi.exports=ye});var Qe=a((oE,gi)=>{"use strict";function Rd(e,t){for(var r=-1,n=e==null?0:e.length;++r<n&&t(e[r],r,e)!==!1;);return e}gi.exports=Rd});var Ft=a((aE,mi)=>{"use strict";var Cd=Q(),Md=(function(){try{var e=Cd(Object,"defineProperty");return e({},"",{}),e}catch{}})();mi.exports=Md});var Lt=a((uE,wi)=>{"use strict";var bi=Ft();function Nd(e,t,r){t=="__proto__"&&bi?bi(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}wi.exports=Nd});var Vt=a((cE,vi)=>{"use strict";var Dd=Lt(),$d=We(),Fd=Object.prototype,Ld=Fd.hasOwnProperty;function Vd(e,t,r){var n=e[t];(!(Ld.call(e,t)&&$d(n,r))||r===void 0&&!(t in e))&&Dd(e,t,r)}vi.exports=Vd});var _e=a((fE,xi)=>{"use strict";var Ud=Vt(),Bd=Lt();function Gd(e,t,r,n){var i=!r;r||(r={});for(var s=-1,o=t.length;++s<o;){var u=t[s],f=n?n(r[u],e[u],u,r,e):void 0;f===void 0&&(f=e[u]),i?Bd(r,u,f):Ud(r,u,f)}return r}xi.exports=Gd});var Ai=a((lE,Ii)=>{"use strict";function zd(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}Ii.exports=zd});var G=a((pE,qi)=>{"use strict";function Kd(e){return e!=null&&typeof e=="object"}qi.exports=Kd});var Ei=a((dE,Pi)=>{"use strict";var Jd=se(),Hd=G(),Wd="[object Arguments]";function Yd(e){return Hd(e)&&Jd(e)==Wd}Pi.exports=Yd});var Te=a((yE,Ti)=>{"use strict";var Oi=Ei(),Zd=G(),_i=Object.prototype,Xd=_i.hasOwnProperty,Qd=_i.propertyIsEnumerable,ey=Oi((function(){return arguments})())?Oi:function(e){return Zd(e)&&Xd.call(e,"callee")&&!Qd.call(e,"callee")};Ti.exports=ey});var R=a((hE,Si)=>{"use strict";var ty=Array.isArray;Si.exports=ty});var ki=a((gE,ji)=>{"use strict";function ry(){return!1}ji.exports=ry});var ge=a((Se,he)=>{"use strict";var ny=U(),iy=ki(),Mi=typeof Se=="object"&&Se&&!Se.nodeType&&Se,Ri=Mi&&typeof he=="object"&&he&&!he.nodeType&&he,sy=Ri&&Ri.exports===Mi,Ci=sy?ny.Buffer:void 0,oy=Ci?Ci.isBuffer:void 0,ay=oy||iy;he.exports=ay});var Ut=a((mE,Ni)=>{"use strict";var uy=9007199254740991,cy=/^(?:0|[1-9]\d*)$/;function fy(e,t){var r=typeof e;return t=t??uy,!!t&&(r=="number"||r!="symbol"&&cy.test(e))&&e>-1&&e%1==0&&e<t}Ni.exports=fy});var et=a((bE,Di)=>{"use strict";var ly=9007199254740991;function py(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=ly}Di.exports=py});var Fi=a((wE,$i)=>{"use strict";var dy=se(),yy=et(),hy=G(),gy="[object Arguments]",my="[object Array]",by="[object Boolean]",wy="[object Date]",vy="[object Error]",xy="[object Function]",Iy="[object Map]",Ay="[object Number]",qy="[object Object]",Py="[object RegExp]",Ey="[object Set]",Oy="[object String]",_y="[object WeakMap]",Ty="[object ArrayBuffer]",Sy="[object DataView]",jy="[object Float32Array]",ky="[object Float64Array]",Ry="[object Int8Array]",Cy="[object Int16Array]",My="[object Int32Array]",Ny="[object Uint8Array]",Dy="[object Uint8ClampedArray]",$y="[object Uint16Array]",Fy="[object Uint32Array]",j={};j[jy]=j[ky]=j[Ry]=j[Cy]=j[My]=j[Ny]=j[Dy]=j[$y]=j[Fy]=!0;j[gy]=j[my]=j[Ty]=j[by]=j[Sy]=j[wy]=j[vy]=j[xy]=j[Iy]=j[Ay]=j[qy]=j[Py]=j[Ey]=j[Oy]=j[_y]=!1;function Ly(e){return hy(e)&&yy(e.length)&&!!j[dy(e)]}$i.exports=Ly});var tt=a((vE,Li)=>{"use strict";function Vy(e){return function(t){return e(t)}}Li.exports=Vy});var rt=a((je,me)=>{"use strict";var Uy=Nt(),Vi=typeof je=="object"&&je&&!je.nodeType&&je,ke=Vi&&typeof me=="object"&&me&&!me.nodeType&&me,By=ke&&ke.exports===Vi,Bt=By&&Uy.process,Gy=(function(){try{var e=ke&&ke.require&&ke.require("util").types;return e||Bt&&Bt.binding&&Bt.binding("util")}catch{}})();me.exports=Gy});var Re=a((xE,Gi)=>{"use strict";var zy=Fi(),Ky=tt(),Ui=rt(),Bi=Ui&&Ui.isTypedArray,Jy=Bi?Ky(Bi):zy;Gi.exports=Jy});var Gt=a((IE,zi)=>{"use strict";var Hy=Ai(),Wy=Te(),Yy=R(),Zy=ge(),Xy=Ut(),Qy=Re(),eh=Object.prototype,th=eh.hasOwnProperty;function rh(e,t){var r=Yy(e),n=!r&&Wy(e),i=!r&&!n&&Zy(e),s=!r&&!n&&!i&&Qy(e),o=r||n||i||s,u=o?Hy(e.length,String):[],f=u.length;for(var l in e)(t||th.call(e,l))&&!(o&&(l=="length"||i&&(l=="offset"||l=="parent")||s&&(l=="buffer"||l=="byteLength"||l=="byteOffset")||Xy(l,f)))&&u.push(l);return u}zi.exports=rh});var Ce=a((AE,Ki)=>{"use strict";var nh=Object.prototype;function ih(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||nh;return e===r}Ki.exports=ih});var zt=a((qE,Ji)=>{"use strict";function sh(e,t){return function(r){return e(t(r))}}Ji.exports=sh});var Wi=a((PE,Hi)=>{"use strict";var oh=zt(),ah=oh(Object.keys,Object);Hi.exports=ah});var nt=a((EE,Yi)=>{"use strict";var uh=Ce(),ch=Wi(),fh=Object.prototype,lh=fh.hasOwnProperty;function ph(e){if(!uh(e))return ch(e);var t=[];for(var r in Object(e))lh.call(e,r)&&r!="constructor"&&t.push(r);return t}Yi.exports=ph});var ee=a((OE,Zi)=>{"use strict";var dh=Pe(),yh=et();function hh(e){return e!=null&&yh(e.length)&&!dh(e)}Zi.exports=hh});var te=a((_E,Xi)=>{"use strict";var gh=Gt(),mh=nt(),bh=ee();function wh(e){return bh(e)?gh(e):mh(e)}Xi.exports=wh});var es=a((TE,Qi)=>{"use strict";var vh=_e(),xh=te();function Ih(e,t){return e&&vh(t,xh(t),e)}Qi.exports=Ih});var rs=a((SE,ts)=>{"use strict";function Ah(e){var t=[];if(e!=null)for(var r in Object(e))t.push(r);return t}ts.exports=Ah});var is=a((jE,ns)=>{"use strict";var qh=X(),Ph=Ce(),Eh=rs(),Oh=Object.prototype,_h=Oh.hasOwnProperty;function Th(e){if(!qh(e))return Eh(e);var t=Ph(e),r=[];for(var n in e)n=="constructor"&&(t||!_h.call(e,n))||r.push(n);return r}ns.exports=Th});var it=a((kE,ss)=>{"use strict";var Sh=Gt(),jh=is(),kh=ee();function Rh(e){return kh(e)?Sh(e,!0):jh(e)}ss.exports=Rh});var as=a((RE,os)=>{"use strict";var Ch=_e(),Mh=it();function Nh(e,t){return e&&Ch(t,Mh(t),e)}os.exports=Nh});var ps=a((Me,be)=>{"use strict";var Dh=U(),ls=typeof Me=="object"&&Me&&!Me.nodeType&&Me,us=ls&&typeof be=="object"&&be&&!be.nodeType&&be,$h=us&&us.exports===ls,cs=$h?Dh.Buffer:void 0,fs=cs?cs.allocUnsafe:void 0;function Fh(e,t){if(t)return e.slice();var r=e.length,n=fs?fs(r):new e.constructor(r);return e.copy(n),n}be.exports=Fh});var ys=a((CE,ds)=>{"use strict";function Lh(e,t){var r=-1,n=e.length;for(t||(t=Array(n));++r<n;)t[r]=e[r];return t}ds.exports=Lh});var Kt=a((ME,hs)=>{"use strict";function Vh(e,t){for(var r=-1,n=e==null?0:e.length,i=0,s=[];++r<n;){var o=e[r];t(o,r,e)&&(s[i++]=o)}return s}hs.exports=Vh});var Jt=a((NE,gs)=>{"use strict";function Uh(){return[]}gs.exports=Uh});var st=a((DE,bs)=>{"use strict";var Bh=Kt(),Gh=Jt(),zh=Object.prototype,Kh=zh.propertyIsEnumerable,ms=Object.getOwnPropertySymbols,Jh=ms?function(e){return e==null?[]:(e=Object(e),Bh(ms(e),function(t){return Kh.call(e,t)}))}:Gh;bs.exports=Jh});var vs=a(($E,ws)=>{"use strict";var Hh=_e(),Wh=st();function Yh(e,t){return Hh(e,Wh(e),t)}ws.exports=Yh});var ot=a((FE,xs)=>{"use strict";function Zh(e,t){for(var r=-1,n=t.length,i=e.length;++r<n;)e[i+r]=t[r];return e}xs.exports=Zh});var at=a((LE,Is)=>{"use strict";var Xh=zt(),Qh=Xh(Object.getPrototypeOf,Object);Is.exports=Qh});var Ht=a((VE,As)=>{"use strict";var eg=ot(),tg=at(),rg=st(),ng=Jt(),ig=Object.getOwnPropertySymbols,sg=ig?function(e){for(var t=[];e;)eg(t,rg(e)),e=tg(e);return t}:ng;As.exports=sg});var Ps=a((UE,qs)=>{"use strict";var og=_e(),ag=Ht();function ug(e,t){return og(e,ag(e),t)}qs.exports=ug});var Wt=a((BE,Es)=>{"use strict";var cg=ot(),fg=R();function lg(e,t,r){var n=t(e);return fg(e)?n:cg(n,r(e))}Es.exports=lg});var Yt=a((GE,Os)=>{"use strict";var pg=Wt(),dg=st(),yg=te();function hg(e){return pg(e,yg,dg)}Os.exports=hg});var Ts=a((zE,_s)=>{"use strict";var gg=Wt(),mg=Ht(),bg=it();function wg(e){return gg(e,bg,mg)}_s.exports=wg});var js=a((KE,Ss)=>{"use strict";var vg=Q(),xg=U(),Ig=vg(xg,"DataView");Ss.exports=Ig});var Rs=a((JE,ks)=>{"use strict";var Ag=Q(),qg=U(),Pg=Ag(qg,"Promise");ks.exports=Pg});var Zt=a((HE,Cs)=>{"use strict";var Eg=Q(),Og=U(),_g=Eg(Og,"Set");Cs.exports=_g});var Ns=a((WE,Ms)=>{"use strict";var Tg=Q(),Sg=U(),jg=Tg(Sg,"WeakMap");Ms.exports=jg});var ae=a((YE,Bs)=>{"use strict";var Xt=js(),Qt=Ye(),er=Rs(),tr=Zt(),rr=Ns(),Us=se(),we=$t(),Ds="[object Map]",kg="[object Object]",$s="[object Promise]",Fs="[object Set]",Ls="[object WeakMap]",Vs="[object DataView]",Rg=we(Xt),Cg=we(Qt),Mg=we(er),Ng=we(tr),Dg=we(rr),oe=Us;(Xt&&oe(new Xt(new ArrayBuffer(1)))!=Vs||Qt&&oe(new Qt)!=Ds||er&&oe(er.resolve())!=$s||tr&&oe(new tr)!=Fs||rr&&oe(new rr)!=Ls)&&(oe=function(e){var t=Us(e),r=t==kg?e.constructor:void 0,n=r?we(r):"";if(n)switch(n){case Rg:return Vs;case Cg:return Ds;case Mg:return $s;case Ng:return Fs;case Dg:return Ls}return t});Bs.exports=oe});var zs=a((ZE,Gs)=>{"use strict";var $g=Object.prototype,Fg=$g.hasOwnProperty;function Lg(e){var t=e.length,r=new e.constructor(t);return t&&typeof e[0]=="string"&&Fg.call(e,"index")&&(r.index=e.index,r.input=e.input),r}Gs.exports=Lg});var nr=a((XE,Ks)=>{"use strict";var Vg=U(),Ug=Vg.Uint8Array;Ks.exports=Ug});var ut=a((QE,Hs)=>{"use strict";var Js=nr();function Bg(e){var t=new e.constructor(e.byteLength);return new Js(t).set(new Js(e)),t}Hs.exports=Bg});var Ys=a((eO,Ws)=>{"use strict";var Gg=ut();function zg(e,t){var r=t?Gg(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}Ws.exports=zg});var Xs=a((tO,Zs)=>{"use strict";var Kg=/\w*$/;function Jg(e){var t=new e.constructor(e.source,Kg.exec(e));return t.lastIndex=e.lastIndex,t}Zs.exports=Jg});var no=a((rO,ro)=>{"use strict";var Qs=ie(),eo=Qs?Qs.prototype:void 0,to=eo?eo.valueOf:void 0;function Hg(e){return to?Object(to.call(e)):{}}ro.exports=Hg});var so=a((nO,io)=>{"use strict";var Wg=ut();function Yg(e,t){var r=t?Wg(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}io.exports=Yg});var ao=a((iO,oo)=>{"use strict";var Zg=ut(),Xg=Ys(),Qg=Xs(),em=no(),tm=so(),rm="[object Boolean]",nm="[object Date]",im="[object Map]",sm="[object Number]",om="[object RegExp]",am="[object Set]",um="[object String]",cm="[object Symbol]",fm="[object ArrayBuffer]",lm="[object DataView]",pm="[object Float32Array]",dm="[object Float64Array]",ym="[object Int8Array]",hm="[object Int16Array]",gm="[object Int32Array]",mm="[object Uint8Array]",bm="[object Uint8ClampedArray]",wm="[object Uint16Array]",vm="[object Uint32Array]";function xm(e,t,r){var n=e.constructor;switch(t){case fm:return Zg(e);case rm:case nm:return new n(+e);case lm:return Xg(e,r);case pm:case dm:case ym:case hm:case gm:case mm:case bm:case wm:case vm:return tm(e,r);case im:return new n;case sm:case um:return new n(e);case om:return Qg(e);case am:return new n;case cm:return em(e)}}oo.exports=xm});var ir=a((sO,co)=>{"use strict";var Im=X(),uo=Object.create,Am=(function(){function e(){}return function(t){if(!Im(t))return{};if(uo)return uo(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}})();co.exports=Am});var lo=a((oO,fo)=>{"use strict";var qm=ir(),Pm=at(),Em=Ce();function Om(e){return typeof e.constructor=="function"&&!Em(e)?qm(Pm(e)):{}}fo.exports=Om});var yo=a((aO,po)=>{"use strict";var _m=ae(),Tm=G(),Sm="[object Map]";function jm(e){return Tm(e)&&_m(e)==Sm}po.exports=jm});var bo=a((uO,mo)=>{"use strict";var km=yo(),Rm=tt(),ho=rt(),go=ho&&ho.isMap,Cm=go?Rm(go):km;mo.exports=Cm});var vo=a((cO,wo)=>{"use strict";var Mm=ae(),Nm=G(),Dm="[object Set]";function $m(e){return Nm(e)&&Mm(e)==Dm}wo.exports=$m});var qo=a((fO,Ao)=>{"use strict";var Fm=vo(),Lm=tt(),xo=rt(),Io=xo&&xo.isSet,Vm=Io?Lm(Io):Fm;Ao.exports=Vm});var To=a((lO,_o)=>{"use strict";var Um=Xe(),Bm=Qe(),Gm=Vt(),zm=es(),Km=as(),Jm=ps(),Hm=ys(),Wm=vs(),Ym=Ps(),Zm=Yt(),Xm=Ts(),Qm=ae(),eb=zs(),tb=ao(),rb=lo(),nb=R(),ib=ge(),sb=bo(),ob=X(),ab=qo(),ub=te(),cb=it(),fb=1,lb=2,pb=4,Po="[object Arguments]",db="[object Array]",yb="[object Boolean]",hb="[object Date]",gb="[object Error]",Eo="[object Function]",mb="[object GeneratorFunction]",bb="[object Map]",wb="[object Number]",Oo="[object Object]",vb="[object RegExp]",xb="[object Set]",Ib="[object String]",Ab="[object Symbol]",qb="[object WeakMap]",Pb="[object ArrayBuffer]",Eb="[object DataView]",Ob="[object Float32Array]",_b="[object Float64Array]",Tb="[object Int8Array]",Sb="[object Int16Array]",jb="[object Int32Array]",kb="[object Uint8Array]",Rb="[object Uint8ClampedArray]",Cb="[object Uint16Array]",Mb="[object Uint32Array]",S={};S[Po]=S[db]=S[Pb]=S[Eb]=S[yb]=S[hb]=S[Ob]=S[_b]=S[Tb]=S[Sb]=S[jb]=S[bb]=S[wb]=S[Oo]=S[vb]=S[xb]=S[Ib]=S[Ab]=S[kb]=S[Rb]=S[Cb]=S[Mb]=!0;S[gb]=S[Eo]=S[qb]=!1;function ct(e,t,r,n,i,s){var o,u=t&fb,f=t&lb,l=t&pb;if(r&&(o=i?r(e,n,i,s):r(e)),o!==void 0)return o;if(!ob(e))return e;var p=nb(e);if(p){if(o=eb(e),!u)return Hm(e,o)}else{var b=Qm(e),c=b==Eo||b==mb;if(ib(e))return Jm(e,u);if(b==Oo||b==Po||c&&!i){if(o=f||c?{}:rb(e),!u)return f?Ym(e,Km(o,e)):Wm(e,zm(o,e))}else{if(!S[b])return i?e:{};o=tb(e,b,u)}}s||(s=new Um);var w=s.get(e);if(w)return w;s.set(e,o),ab(e)?e.forEach(function(y){o.add(ct(y,t,r,y,e,s))}):sb(e)&&e.forEach(function(y,d){o.set(d,ct(y,t,r,d,e,s))});var h=l?f?Xm:Zm:f?cb:ub,m=p?void 0:h(e);return Bm(m||e,function(y,d){m&&(d=y,y=e[d]),Gm(o,d,ct(y,t,r,d,e,s))}),o}_o.exports=ct});var jo=a((pO,So)=>{"use strict";var Nb=To(),Db=4;function $b(e){return Nb(e,Db)}So.exports=$b});var sr=a((dO,ko)=>{"use strict";function Fb(e){return function(){return e}}ko.exports=Fb});var Co=a((yO,Ro)=>{"use strict";function Lb(e){return function(t,r,n){for(var i=-1,s=Object(t),o=n(t),u=o.length;u--;){var f=o[e?u:++i];if(r(s[f],f,s)===!1)break}return t}}Ro.exports=Lb});var No=a((hO,Mo)=>{"use strict";var Vb=Co(),Ub=Vb();Mo.exports=Ub});var or=a((gO,Do)=>{"use strict";var Bb=No(),Gb=te();function zb(e,t){return e&&Bb(e,t,Gb)}Do.exports=zb});var Fo=a((mO,$o)=>{"use strict";var Kb=ee();function Jb(e,t){return function(r,n){if(r==null)return r;if(!Kb(r))return e(r,n);for(var i=r.length,s=t?i:-1,o=Object(r);(t?s--:++s<i)&&n(o[s],s,o)!==!1;);return r}}$o.exports=Jb});var Ne=a((bO,Lo)=>{"use strict";var Hb=or(),Wb=Fo(),Yb=Wb(Hb);Lo.exports=Yb});var De=a((wO,Vo)=>{"use strict";function Zb(e){return e}Vo.exports=Zb});var Bo=a((vO,Uo)=>{"use strict";var Xb=De();function Qb(e){return typeof e=="function"?e:Xb}Uo.exports=Qb});var zo=a((xO,Go)=>{"use strict";var ew=Qe(),tw=Ne(),rw=Bo(),nw=R();function iw(e,t){var r=nw(e)?ew:tw;return r(e,rw(t))}Go.exports=iw});var Jo=a((IO,Ko)=>{"use strict";Ko.exports=zo()});var Wo=a((AO,Ho)=>{"use strict";var sw=Ne();function ow(e,t){var r=[];return sw(e,function(n,i,s){t(n,i,s)&&r.push(n)}),r}Ho.exports=ow});var Zo=a((qO,Yo)=>{"use strict";var aw="__lodash_hash_undefined__";function uw(e){return this.__data__.set(e,aw),this}Yo.exports=uw});var Qo=a((PO,Xo)=>{"use strict";function cw(e){return this.__data__.has(e)}Xo.exports=cw});var ar=a((EO,ea)=>{"use strict";var fw=Ze(),lw=Zo(),pw=Qo();function ft(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new fw;++t<r;)this.add(e[t])}ft.prototype.add=ft.prototype.push=lw;ft.prototype.has=pw;ea.exports=ft});var ra=a((OO,ta)=>{"use strict";function dw(e,t){for(var r=-1,n=e==null?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}ta.exports=dw});var ur=a((_O,na)=>{"use strict";function yw(e,t){return e.has(t)}na.exports=yw});var cr=a((TO,ia)=>{"use strict";var hw=ar(),gw=ra(),mw=ur(),bw=1,ww=2;function vw(e,t,r,n,i,s){var o=r&bw,u=e.length,f=t.length;if(u!=f&&!(o&&f>u))return!1;var l=s.get(e),p=s.get(t);if(l&&p)return l==t&&p==e;var b=-1,c=!0,w=r&ww?new hw:void 0;for(s.set(e,t),s.set(t,e);++b<u;){var h=e[b],m=t[b];if(n)var y=o?n(m,h,b,t,e,s):n(h,m,b,e,t,s);if(y!==void 0){if(y)continue;c=!1;break}if(w){if(!gw(t,function(d,v){if(!mw(w,v)&&(h===d||i(h,d,r,n,s)))return w.push(v)})){c=!1;break}}else if(!(h===m||i(h,m,r,n,s))){c=!1;break}}return s.delete(e),s.delete(t),c}ia.exports=vw});var oa=a((SO,sa)=>{"use strict";function xw(e){var t=-1,r=Array(e.size);return e.forEach(function(n,i){r[++t]=[i,n]}),r}sa.exports=xw});var lt=a((jO,aa)=>{"use strict";function Iw(e){var t=-1,r=Array(e.size);return e.forEach(function(n){r[++t]=n}),r}aa.exports=Iw});var pa=a((kO,la)=>{"use strict";var ua=ie(),ca=nr(),Aw=We(),qw=cr(),Pw=oa(),Ew=lt(),Ow=1,_w=2,Tw="[object Boolean]",Sw="[object Date]",jw="[object Error]",kw="[object Map]",Rw="[object Number]",Cw="[object RegExp]",Mw="[object Set]",Nw="[object String]",Dw="[object Symbol]",$w="[object ArrayBuffer]",Fw="[object DataView]",fa=ua?ua.prototype:void 0,fr=fa?fa.valueOf:void 0;function Lw(e,t,r,n,i,s,o){switch(r){case Fw:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case $w:return!(e.byteLength!=t.byteLength||!s(new ca(e),new ca(t)));case Tw:case Sw:case Rw:return Aw(+e,+t);case jw:return e.name==t.name&&e.message==t.message;case Cw:case Nw:return e==t+"";case kw:var u=Pw;case Mw:var f=n&Ow;if(u||(u=Ew),e.size!=t.size&&!f)return!1;var l=o.get(e);if(l)return l==t;n|=_w,o.set(e,t);var p=qw(u(e),u(t),n,i,s,o);return o.delete(e),p;case Dw:if(fr)return fr.call(e)==fr.call(t)}return!1}la.exports=Lw});var ha=a((RO,ya)=>{"use strict";var da=Yt(),Vw=1,Uw=Object.prototype,Bw=Uw.hasOwnProperty;function Gw(e,t,r,n,i,s){var o=r&Vw,u=da(e),f=u.length,l=da(t),p=l.length;if(f!=p&&!o)return!1;for(var b=f;b--;){var c=u[b];if(!(o?c in t:Bw.call(t,c)))return!1}var w=s.get(e),h=s.get(t);if(w&&h)return w==t&&h==e;var m=!0;s.set(e,t),s.set(t,e);for(var y=o;++b<f;){c=u[b];var d=e[c],v=t[c];if(n)var x=o?n(v,d,c,t,e,s):n(d,v,c,e,t,s);if(!(x===void 0?d===v||i(d,v,r,n,s):x)){m=!1;break}y||(y=c=="constructor")}if(m&&!y){var _=e.constructor,T=t.constructor;_!=T&&"constructor"in e&&"constructor"in t&&!(typeof _=="function"&&_ instanceof _&&typeof T=="function"&&T instanceof T)&&(m=!1)}return s.delete(e),s.delete(t),m}ya.exports=Gw});var Aa=a((CO,Ia)=>{"use strict";var lr=Xe(),zw=cr(),Kw=pa(),Jw=ha(),ga=ae(),ma=R(),ba=ge(),Hw=Re(),Ww=1,wa="[object Arguments]",va="[object Array]",pt="[object Object]",Yw=Object.prototype,xa=Yw.hasOwnProperty;function Zw(e,t,r,n,i,s){var o=ma(e),u=ma(t),f=o?va:ga(e),l=u?va:ga(t);f=f==wa?pt:f,l=l==wa?pt:l;var p=f==pt,b=l==pt,c=f==l;if(c&&ba(e)){if(!ba(t))return!1;o=!0,p=!1}if(c&&!p)return s||(s=new lr),o||Hw(e)?zw(e,t,r,n,i,s):Kw(e,t,f,r,n,i,s);if(!(r&Ww)){var w=p&&xa.call(e,"__wrapped__"),h=b&&xa.call(t,"__wrapped__");if(w||h){var m=w?e.value():e,y=h?t.value():t;return s||(s=new lr),i(m,y,r,n,s)}}return c?(s||(s=new lr),Jw(e,t,r,n,i,s)):!1}Ia.exports=Zw});var pr=a((MO,Ea)=>{"use strict";var Xw=Aa(),qa=G();function Pa(e,t,r,n,i){return e===t?!0:e==null||t==null||!qa(e)&&!qa(t)?e!==e&&t!==t:Xw(e,t,r,n,Pa,i)}Ea.exports=Pa});var _a=a((NO,Oa)=>{"use strict";var Qw=Xe(),ev=pr(),tv=1,rv=2;function nv(e,t,r,n){var i=r.length,s=i,o=!n;if(e==null)return!s;for(e=Object(e);i--;){var u=r[i];if(o&&u[2]?u[1]!==e[u[0]]:!(u[0]in e))return!1}for(;++i<s;){u=r[i];var f=u[0],l=e[f],p=u[1];if(o&&u[2]){if(l===void 0&&!(f in e))return!1}else{var b=new Qw;if(n)var c=n(l,p,f,e,t,b);if(!(c===void 0?ev(p,l,tv|rv,n,b):c))return!1}}return!0}Oa.exports=nv});var dr=a((DO,Ta)=>{"use strict";var iv=X();function sv(e){return e===e&&!iv(e)}Ta.exports=sv});var ja=a(($O,Sa)=>{"use strict";var ov=dr(),av=te();function uv(e){for(var t=av(e),r=t.length;r--;){var n=t[r],i=e[n];t[r]=[n,i,ov(i)]}return t}Sa.exports=uv});var yr=a((FO,ka)=>{"use strict";function cv(e,t){return function(r){return r==null?!1:r[e]===t&&(t!==void 0||e in Object(r))}}ka.exports=cv});var Ca=a((LO,Ra)=>{"use strict";var fv=_a(),lv=ja(),pv=yr();function dv(e){var t=lv(e);return t.length==1&&t[0][2]?pv(t[0][0],t[0][1]):function(r){return r===e||fv(r,e,t)}}Ra.exports=dv});var dt=a((VO,Ma)=>{"use strict";var yv=se(),hv=G(),gv="[object Symbol]";function mv(e){return typeof e=="symbol"||hv(e)&&yv(e)==gv}Ma.exports=mv});var yt=a((UO,Na)=>{"use strict";var bv=R(),wv=dt(),vv=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,xv=/^\w*$/;function Iv(e,t){if(bv(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||wv(e)?!0:xv.test(e)||!vv.test(e)||t!=null&&e in Object(t)}Na.exports=Iv});var Fa=a((BO,$a)=>{"use strict";var Da=Ze(),Av="Expected a function";function hr(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(Av);var r=function(){var n=arguments,i=t?t.apply(this,n):n[0],s=r.cache;if(s.has(i))return s.get(i);var o=e.apply(this,n);return r.cache=s.set(i,o)||s,o};return r.cache=new(hr.Cache||Da),r}hr.Cache=Da;$a.exports=hr});var Va=a((GO,La)=>{"use strict";var qv=Fa(),Pv=500;function Ev(e){var t=qv(e,function(n){return r.size===Pv&&r.clear(),n}),r=t.cache;return t}La.exports=Ev});var Ba=a((zO,Ua)=>{"use strict";var Ov=Va(),_v=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,Tv=/\\(\\)?/g,Sv=Ov(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(_v,function(r,n,i,s){t.push(i?s.replace(Tv,"$1"):n||r)}),t});Ua.exports=Sv});var ht=a((KO,Ga)=>{"use strict";function jv(e,t){for(var r=-1,n=e==null?0:e.length,i=Array(n);++r<n;)i[r]=t(e[r],r,e);return i}Ga.exports=jv});var Ya=a((JO,Wa)=>{"use strict";var za=ie(),kv=ht(),Rv=R(),Cv=dt(),Mv=1/0,Ka=za?za.prototype:void 0,Ja=Ka?Ka.toString:void 0;function Ha(e){if(typeof e=="string")return e;if(Rv(e))return kv(e,Ha)+"";if(Cv(e))return Ja?Ja.call(e):"";var t=e+"";return t=="0"&&1/e==-Mv?"-0":t}Wa.exports=Ha});var Xa=a((HO,Za)=>{"use strict";var Nv=Ya();function Dv(e){return e==null?"":Nv(e)}Za.exports=Dv});var gr=a((WO,Qa)=>{"use strict";var $v=R(),Fv=yt(),Lv=Ba(),Vv=Xa();function Uv(e,t){return $v(e)?e:Fv(e,t)?[e]:Lv(Vv(e))}Qa.exports=Uv});var $e=a((YO,eu)=>{"use strict";var Bv=dt(),Gv=1/0;function zv(e){if(typeof e=="string"||Bv(e))return e;var t=e+"";return t=="0"&&1/e==-Gv?"-0":t}eu.exports=zv});var mr=a((ZO,tu)=>{"use strict";var Kv=gr(),Jv=$e();function Hv(e,t){t=Kv(t,e);for(var r=0,n=t.length;e!=null&&r<n;)e=e[Jv(t[r++])];return r&&r==n?e:void 0}tu.exports=Hv});var nu=a((XO,ru)=>{"use strict";var Wv=mr();function Yv(e,t,r){var n=e==null?void 0:Wv(e,t);return n===void 0?r:n}ru.exports=Yv});var su=a((QO,iu)=>{"use strict";function Zv(e,t){return e!=null&&t in Object(e)}iu.exports=Zv});var br=a((e_,ou)=>{"use strict";var Xv=gr(),Qv=Te(),ex=R(),tx=Ut(),rx=et(),nx=$e();function ix(e,t,r){t=Xv(t,e);for(var n=-1,i=t.length,s=!1;++n<i;){var o=nx(t[n]);if(!(s=e!=null&&r(e,o)))break;e=e[o]}return s||++n!=i?s:(i=e==null?0:e.length,!!i&&rx(i)&&tx(o,i)&&(ex(e)||Qv(e)))}ou.exports=ix});var uu=a((t_,au)=>{"use strict";var sx=su(),ox=br();function ax(e,t){return e!=null&&ox(e,t,sx)}au.exports=ax});var fu=a((r_,cu)=>{"use strict";var ux=pr(),cx=nu(),fx=uu(),lx=yt(),px=dr(),dx=yr(),yx=$e(),hx=1,gx=2;function mx(e,t){return lx(e)&&px(t)?dx(yx(e),t):function(r){var n=cx(r,e);return n===void 0&&n===t?fx(r,e):ux(t,n,hx|gx)}}cu.exports=mx});var wr=a((n_,lu)=>{"use strict";function bx(e){return function(t){return t?.[e]}}lu.exports=bx});var du=a((i_,pu)=>{"use strict";var wx=mr();function vx(e){return function(t){return wx(t,e)}}pu.exports=vx});var hu=a((s_,yu)=>{"use strict";var xx=wr(),Ix=du(),Ax=yt(),qx=$e();function Px(e){return Ax(e)?xx(qx(e)):Ix(e)}yu.exports=Px});var Fe=a((o_,gu)=>{"use strict";var Ex=Ca(),Ox=fu(),_x=De(),Tx=R(),Sx=hu();function jx(e){return typeof e=="function"?e:e==null?_x:typeof e=="object"?Tx(e)?Ox(e[0],e[1]):Ex(e):Sx(e)}gu.exports=jx});var bu=a((a_,mu)=>{"use strict";var kx=Kt(),Rx=Wo(),Cx=Fe(),Mx=R();function Nx(e,t){var r=Mx(e)?kx:Rx;return r(e,Cx(t,3))}mu.exports=Nx});var vu=a((u_,wu)=>{"use strict";var Dx=Object.prototype,$x=Dx.hasOwnProperty;function Fx(e,t){return e!=null&&$x.call(e,t)}wu.exports=Fx});var Iu=a((c_,xu)=>{"use strict";var Lx=vu(),Vx=br();function Ux(e,t){return e!=null&&Vx(e,t,Lx)}xu.exports=Ux});var qu=a((f_,Au)=>{"use strict";var Bx=nt(),Gx=ae(),zx=Te(),Kx=R(),Jx=ee(),Hx=ge(),Wx=Ce(),Yx=Re(),Zx="[object Map]",Xx="[object Set]",Qx=Object.prototype,eI=Qx.hasOwnProperty;function tI(e){if(e==null)return!0;if(Jx(e)&&(Kx(e)||typeof e=="string"||typeof e.splice=="function"||Hx(e)||Yx(e)||zx(e)))return!e.length;var t=Gx(e);if(t==Zx||t==Xx)return!e.size;if(Wx(e))return!Bx(e).length;for(var r in e)if(eI.call(e,r))return!1;return!0}Au.exports=tI});var Eu=a((l_,Pu)=>{"use strict";function rI(e){return e===void 0}Pu.exports=rI});var _u=a((p_,Ou)=>{"use strict";var nI=Ne(),iI=ee();function sI(e,t){var r=-1,n=iI(e)?Array(e.length):[];return nI(e,function(i,s,o){n[++r]=t(i,s,o)}),n}Ou.exports=sI});var Su=a((d_,Tu)=>{"use strict";var oI=ht(),aI=Fe(),uI=_u(),cI=R();function fI(e,t){var r=cI(e)?oI:uI;return r(e,aI(t,3))}Tu.exports=fI});var ku=a((y_,ju)=>{"use strict";function lI(e,t,r,n){var i=-1,s=e==null?0:e.length;for(n&&s&&(r=e[++i]);++i<s;)r=t(r,e[i],i,e);return r}ju.exports=lI});var Cu=a((h_,Ru)=>{"use strict";function pI(e,t,r,n,i){return i(e,function(s,o,u){r=n?(n=!1,s):t(r,s,o,u)}),r}Ru.exports=pI});var Nu=a((g_,Mu)=>{"use strict";var dI=ku(),yI=Ne(),hI=Fe(),gI=Cu(),mI=R();function bI(e,t,r){var n=mI(e)?dI:gI,i=arguments.length<3;return n(e,hI(t,4),r,i,yI)}Mu.exports=bI});var $u=a((m_,Du)=>{"use strict";var wI=se(),vI=R(),xI=G(),II="[object String]";function AI(e){return typeof e=="string"||!vI(e)&&xI(e)&&wI(e)==II}Du.exports=AI});var Lu=a((b_,Fu)=>{"use strict";var qI=wr(),PI=qI("length");Fu.exports=PI});var Uu=a((w_,Vu)=>{"use strict";var EI="\\ud800-\\udfff",OI="\\u0300-\\u036f",_I="\\ufe20-\\ufe2f",TI="\\u20d0-\\u20ff",SI=OI+_I+TI,jI="\\ufe0e\\ufe0f",kI="\\u200d",RI=RegExp("["+kI+EI+SI+jI+"]");function CI(e){return RI.test(e)}Vu.exports=CI});var Zu=a((v_,Yu)=>{"use strict";var Gu="\\ud800-\\udfff",MI="\\u0300-\\u036f",NI="\\ufe20-\\ufe2f",DI="\\u20d0-\\u20ff",$I=MI+NI+DI,FI="\\ufe0e\\ufe0f",LI="["+Gu+"]",vr="["+$I+"]",xr="\\ud83c[\\udffb-\\udfff]",VI="(?:"+vr+"|"+xr+")",zu="[^"+Gu+"]",Ku="(?:\\ud83c[\\udde6-\\uddff]){2}",Ju="[\\ud800-\\udbff][\\udc00-\\udfff]",UI="\\u200d",Hu=VI+"?",Wu="["+FI+"]?",BI="(?:"+UI+"(?:"+[zu,Ku,Ju].join("|")+")"+Wu+Hu+")*",GI=Wu+Hu+BI,zI="(?:"+[zu+vr+"?",vr,Ku,Ju,LI].join("|")+")",Bu=RegExp(xr+"(?="+xr+")|"+zI+GI,"g");function KI(e){for(var t=Bu.lastIndex=0;Bu.test(e);)++t;return t}Yu.exports=KI});var Qu=a((x_,Xu)=>{"use strict";var JI=Lu(),HI=Uu(),WI=Zu();function YI(e){return HI(e)?WI(e):JI(e)}Xu.exports=YI});var tc=a((I_,ec)=>{"use strict";var ZI=nt(),XI=ae(),QI=ee(),eA=$u(),tA=Qu(),rA="[object Map]",nA="[object Set]";function iA(e){if(e==null)return 0;if(QI(e))return eA(e)?tA(e):e.length;var t=XI(e);return t==rA||t==nA?e.size:ZI(e).length}ec.exports=iA});var nc=a((A_,rc)=>{"use strict";var sA=Qe(),oA=ir(),aA=or(),uA=Fe(),cA=at(),fA=R(),lA=ge(),pA=Pe(),dA=X(),yA=Re();function hA(e,t,r){var n=fA(e),i=n||lA(e)||yA(e);if(t=uA(t,4),r==null){var s=e&&e.constructor;i?r=n?new s:[]:dA(e)?r=pA(s)?oA(cA(e)):{}:r={}}return(i?sA:aA)(e,function(o,u,f){return t(r,o,u,f)}),r}rc.exports=hA});var ac=a((q_,oc)=>{"use strict";var ic=ie(),gA=Te(),mA=R(),sc=ic?ic.isConcatSpreadable:void 0;function bA(e){return mA(e)||gA(e)||!!(sc&&e&&e[sc])}oc.exports=bA});var fc=a((P_,cc)=>{"use strict";var wA=ot(),vA=ac();function uc(e,t,r,n,i){var s=-1,o=e.length;for(r||(r=vA),i||(i=[]);++s<o;){var u=e[s];t>0&&r(u)?t>1?uc(u,t-1,r,n,i):wA(i,u):n||(i[i.length]=u)}return i}cc.exports=uc});var pc=a((E_,lc)=>{"use strict";function xA(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}lc.exports=xA});var hc=a((O_,yc)=>{"use strict";var IA=pc(),dc=Math.max;function AA(e,t,r){return t=dc(t===void 0?e.length-1:t,0),function(){for(var n=arguments,i=-1,s=dc(n.length-t,0),o=Array(s);++i<s;)o[i]=n[t+i];i=-1;for(var u=Array(t+1);++i<t;)u[i]=n[i];return u[t]=r(o),IA(e,this,u)}}yc.exports=AA});var bc=a((__,mc)=>{"use strict";var qA=sr(),gc=Ft(),PA=De(),EA=gc?function(e,t){return gc(e,"toString",{configurable:!0,enumerable:!1,value:qA(t),writable:!0})}:PA;mc.exports=EA});var vc=a((T_,wc)=>{"use strict";var OA=800,_A=16,TA=Date.now;function SA(e){var t=0,r=0;return function(){var n=TA(),i=_A-(n-r);if(r=n,i>0){if(++t>=OA)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}wc.exports=SA});var Ic=a((S_,xc)=>{"use strict";var jA=bc(),kA=vc(),RA=kA(jA);xc.exports=RA});var qc=a((j_,Ac)=>{"use strict";var CA=De(),MA=hc(),NA=Ic();function DA(e,t){return NA(MA(e,t,CA),e+"")}Ac.exports=DA});var Ec=a((k_,Pc)=>{"use strict";function $A(e,t,r,n){for(var i=e.length,s=r+(n?1:-1);n?s--:++s<i;)if(t(e[s],s,e))return s;return-1}Pc.exports=$A});var _c=a((R_,Oc)=>{"use strict";function FA(e){return e!==e}Oc.exports=FA});var Sc=a((C_,Tc)=>{"use strict";function LA(e,t,r){for(var n=r-1,i=e.length;++n<i;)if(e[n]===t)return n;return-1}Tc.exports=LA});var kc=a((M_,jc)=>{"use strict";var VA=Ec(),UA=_c(),BA=Sc();function GA(e,t,r){return t===t?BA(e,t,r):VA(e,UA,r)}jc.exports=GA});var Cc=a((N_,Rc)=>{"use strict";var zA=kc();function KA(e,t){var r=e==null?0:e.length;return!!r&&zA(e,t,0)>-1}Rc.exports=KA});var Nc=a((D_,Mc)=>{"use strict";function JA(e,t,r){for(var n=-1,i=e==null?0:e.length;++n<i;)if(r(t,e[n]))return!0;return!1}Mc.exports=JA});var $c=a(($_,Dc)=>{"use strict";function HA(){}Dc.exports=HA});var Lc=a((F_,Fc)=>{"use strict";var Ir=Zt(),WA=$c(),YA=lt(),ZA=1/0,XA=Ir&&1/YA(new Ir([,-0]))[1]==ZA?function(e){return new Ir(e)}:WA;Fc.exports=XA});var Uc=a((L_,Vc)=>{"use strict";var QA=ar(),eq=Cc(),tq=Nc(),rq=ur(),nq=Lc(),iq=lt(),sq=200;function oq(e,t,r){var n=-1,i=eq,s=e.length,o=!0,u=[],f=u;if(r)o=!1,i=tq;else if(s>=sq){var l=t?null:nq(e);if(l)return iq(l);o=!1,i=rq,f=new QA}else f=t?[]:u;e:for(;++n<s;){var p=e[n],b=t?t(p):p;if(p=r||p!==0?p:0,o&&b===b){for(var c=f.length;c--;)if(f[c]===b)continue e;t&&f.push(b),u.push(p)}else i(f,b,r)||(f!==u&&f.push(b),u.push(p))}return u}Vc.exports=oq});var Gc=a((V_,Bc)=>{"use strict";var aq=ee(),uq=G();function cq(e){return uq(e)&&aq(e)}Bc.exports=cq});var Kc=a((U_,zc)=>{"use strict";var fq=fc(),lq=qc(),pq=Uc(),dq=Gc(),yq=lq(function(e){return pq(fq(e,1,dq,!0))});zc.exports=yq});var Hc=a((B_,Jc)=>{"use strict";var hq=ht();function gq(e,t){return hq(t,function(r){return e[r]})}Jc.exports=gq});var Yc=a((G_,Wc)=>{"use strict";var mq=Hc(),bq=te();function wq(e){return e==null?[]:mq(e,bq(e))}Wc.exports=wq});var N=a((z_,Zc)=>{"use strict";var gt;if(typeof Vr=="function")try{gt={clone:jo(),constant:sr(),each:Jo(),filter:bu(),has:Iu(),isArray:R(),isEmpty:qu(),isFunction:Pe(),isUndefined:Eu(),keys:te(),map:Su(),reduce:Nu(),size:tc(),transform:nc(),union:Kc(),values:Yc()}}catch{}gt||(gt=window._);Zc.exports=gt});var mt=a((J_,tf)=>{"use strict";var q=N();tf.exports=O;var vq="\0",ue="\0",Xc="";function O(e){this._isDirected=q.has(e,"directed")?e.directed:!0,this._isMultigraph=q.has(e,"multigraph")?e.multigraph:!1,this._isCompound=q.has(e,"compound")?e.compound:!1,this._label=void 0,this._defaultNodeLabelFn=q.constant(void 0),this._defaultEdgeLabelFn=q.constant(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[ue]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}O.prototype._nodeCount=0;O.prototype._edgeCount=0;O.prototype.isDirected=function(){return this._isDirected};O.prototype.isMultigraph=function(){return this._isMultigraph};O.prototype.isCompound=function(){return this._isCompound};O.prototype.setGraph=function(e){return this._label=e,this};O.prototype.graph=function(){return this._label};O.prototype.setDefaultNodeLabel=function(e){return q.isFunction(e)||(e=q.constant(e)),this._defaultNodeLabelFn=e,this};O.prototype.nodeCount=function(){return this._nodeCount};O.prototype.nodes=function(){return q.keys(this._nodes)};O.prototype.sources=function(){var e=this;return q.filter(this.nodes(),function(t){return q.isEmpty(e._in[t])})};O.prototype.sinks=function(){var e=this;return q.filter(this.nodes(),function(t){return q.isEmpty(e._out[t])})};O.prototype.setNodes=function(e,t){var r=arguments,n=this;return q.each(e,function(i){r.length>1?n.setNode(i,t):n.setNode(i)}),this};O.prototype.setNode=function(e,t){return q.has(this._nodes,e)?(arguments.length>1&&(this._nodes[e]=t),this):(this._nodes[e]=arguments.length>1?t:this._defaultNodeLabelFn(e),this._isCompound&&(this._parent[e]=ue,this._children[e]={},this._children[ue][e]=!0),this._in[e]={},this._preds[e]={},this._out[e]={},this._sucs[e]={},++this._nodeCount,this)};O.prototype.node=function(e){return this._nodes[e]};O.prototype.hasNode=function(e){return q.has(this._nodes,e)};O.prototype.removeNode=function(e){var t=this;if(q.has(this._nodes,e)){var r=function(n){t.removeEdge(t._edgeObjs[n])};delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],q.each(this.children(e),function(n){t.setParent(n)}),delete this._children[e]),q.each(q.keys(this._in[e]),r),delete this._in[e],delete this._preds[e],q.each(q.keys(this._out[e]),r),delete this._out[e],delete this._sucs[e],--this._nodeCount}return this};O.prototype.setParent=function(e,t){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(q.isUndefined(t))t=ue;else{t+="";for(var r=t;!q.isUndefined(r);r=this.parent(r))if(r===e)throw new Error("Setting "+t+" as parent of "+e+" would create a cycle");this.setNode(t)}return this.setNode(e),this._removeFromParentsChildList(e),this._parent[e]=t,this._children[t][e]=!0,this};O.prototype._removeFromParentsChildList=function(e){delete this._children[this._parent[e]][e]};O.prototype.parent=function(e){if(this._isCompound){var t=this._parent[e];if(t!==ue)return t}};O.prototype.children=function(e){if(q.isUndefined(e)&&(e=ue),this._isCompound){var t=this._children[e];if(t)return q.keys(t)}else{if(e===ue)return this.nodes();if(this.hasNode(e))return[]}};O.prototype.predecessors=function(e){var t=this._preds[e];if(t)return q.keys(t)};O.prototype.successors=function(e){var t=this._sucs[e];if(t)return q.keys(t)};O.prototype.neighbors=function(e){var t=this.predecessors(e);if(t)return q.union(t,this.successors(e))};O.prototype.isLeaf=function(e){var t;return this.isDirected()?t=this.successors(e):t=this.neighbors(e),t.length===0};O.prototype.filterNodes=function(e){var t=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});t.setGraph(this.graph());var r=this;q.each(this._nodes,function(s,o){e(o)&&t.setNode(o,s)}),q.each(this._edgeObjs,function(s){t.hasNode(s.v)&&t.hasNode(s.w)&&t.setEdge(s,r.edge(s))});var n={};function i(s){var o=r.parent(s);return o===void 0||t.hasNode(o)?(n[s]=o,o):o in n?n[o]:i(o)}return this._isCompound&&q.each(t.nodes(),function(s){t.setParent(s,i(s))}),t};O.prototype.setDefaultEdgeLabel=function(e){return q.isFunction(e)||(e=q.constant(e)),this._defaultEdgeLabelFn=e,this};O.prototype.edgeCount=function(){return this._edgeCount};O.prototype.edges=function(){return q.values(this._edgeObjs)};O.prototype.setPath=function(e,t){var r=this,n=arguments;return q.reduce(e,function(i,s){return n.length>1?r.setEdge(i,s,t):r.setEdge(i,s),s}),this};O.prototype.setEdge=function(){var e,t,r,n,i=!1,s=arguments[0];typeof s=="object"&&s!==null&&"v"in s?(e=s.v,t=s.w,r=s.name,arguments.length===2&&(n=arguments[1],i=!0)):(e=s,t=arguments[1],r=arguments[3],arguments.length>2&&(n=arguments[2],i=!0)),e=""+e,t=""+t,q.isUndefined(r)||(r=""+r);var o=Le(this._isDirected,e,t,r);if(q.has(this._edgeLabels,o))return i&&(this._edgeLabels[o]=n),this;if(!q.isUndefined(r)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(e),this.setNode(t),this._edgeLabels[o]=i?n:this._defaultEdgeLabelFn(e,t,r);var u=xq(this._isDirected,e,t,r);return e=u.v,t=u.w,Object.freeze(u),this._edgeObjs[o]=u,Qc(this._preds[t],e),Qc(this._sucs[e],t),this._in[t][o]=u,this._out[e][o]=u,this._edgeCount++,this};O.prototype.edge=function(e,t,r){var n=arguments.length===1?Ar(this._isDirected,arguments[0]):Le(this._isDirected,e,t,r);return this._edgeLabels[n]};O.prototype.hasEdge=function(e,t,r){var n=arguments.length===1?Ar(this._isDirected,arguments[0]):Le(this._isDirected,e,t,r);return q.has(this._edgeLabels,n)};O.prototype.removeEdge=function(e,t,r){var n=arguments.length===1?Ar(this._isDirected,arguments[0]):Le(this._isDirected,e,t,r),i=this._edgeObjs[n];return i&&(e=i.v,t=i.w,delete this._edgeLabels[n],delete this._edgeObjs[n],ef(this._preds[t],e),ef(this._sucs[e],t),delete this._in[t][n],delete this._out[e][n],this._edgeCount--),this};O.prototype.inEdges=function(e,t){var r=this._in[e];if(r){var n=q.values(r);return t?q.filter(n,function(i){return i.v===t}):n}};O.prototype.outEdges=function(e,t){var r=this._out[e];if(r){var n=q.values(r);return t?q.filter(n,function(i){return i.w===t}):n}};O.prototype.nodeEdges=function(e,t){var r=this.inEdges(e,t);if(r)return r.concat(this.outEdges(e,t))};function Qc(e,t){e[t]?e[t]++:e[t]=1}function ef(e,t){--e[t]||delete e[t]}function Le(e,t,r,n){var i=""+t,s=""+r;if(!e&&i>s){var o=i;i=s,s=o}return i+Xc+s+Xc+(q.isUndefined(n)?vq:n)}function xq(e,t,r,n){var i=""+t,s=""+r;if(!e&&i>s){var o=i;i=s,s=o}var u={v:i,w:s};return n&&(u.name=n),u}function Ar(e,t){return Le(e,t.v,t.w,t.name)}});var nf=a((H_,rf)=>{"use strict";rf.exports="2.1.8"});var of=a((W_,sf)=>{"use strict";sf.exports={Graph:mt(),version:nf()}});var uf=a((Y_,af)=>{"use strict";var z=N(),Iq=mt();af.exports={write:Aq,read:Eq};function Aq(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:qq(e),edges:Pq(e)};return z.isUndefined(e.graph())||(t.value=z.clone(e.graph())),t}function qq(e){return z.map(e.nodes(),function(t){var r=e.node(t),n=e.parent(t),i={v:t};return z.isUndefined(r)||(i.value=r),z.isUndefined(n)||(i.parent=n),i})}function Pq(e){return z.map(e.edges(),function(t){var r=e.edge(t),n={v:t.v,w:t.w};return z.isUndefined(t.name)||(n.name=t.name),z.isUndefined(r)||(n.value=r),n})}function Eq(e){var t=new Iq(e.options).setGraph(e.value);return z.each(e.nodes,function(r){t.setNode(r.v,r.value),r.parent&&t.setParent(r.v,r.parent)}),z.each(e.edges,function(r){t.setEdge({v:r.v,w:r.w,name:r.name},r.value)}),t}});var ff=a((Z_,cf)=>{"use strict";var bt=N();cf.exports=Oq;function Oq(e){var t={},r=[],n;function i(s){bt.has(t,s)||(t[s]=!0,n.push(s),bt.each(e.successors(s),i),bt.each(e.predecessors(s),i))}return bt.each(e.nodes(),function(s){n=[],i(s),n.length&&r.push(n)}),r}});var qr=a((X_,pf)=>{"use strict";var lf=N();pf.exports=$;function $(){this._arr=[],this._keyIndices={}}$.prototype.size=function(){return this._arr.length};$.prototype.keys=function(){return this._arr.map(function(e){return e.key})};$.prototype.has=function(e){return lf.has(this._keyIndices,e)};$.prototype.priority=function(e){var t=this._keyIndices[e];if(t!==void 0)return this._arr[t].priority};$.prototype.min=function(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key};$.prototype.add=function(e,t){var r=this._keyIndices;if(e=String(e),!lf.has(r,e)){var n=this._arr,i=n.length;return r[e]=i,n.push({key:e,priority:t}),this._decrease(i),!0}return!1};$.prototype.removeMin=function(){this._swap(0,this._arr.length-1);var e=this._arr.pop();return delete this._keyIndices[e.key],this._heapify(0),e.key};$.prototype.decrease=function(e,t){var r=this._keyIndices[e];if(t>this._arr[r].priority)throw new Error("New priority is greater than current priority. Key: "+e+" Old: "+this._arr[r].priority+" New: "+t);this._arr[r].priority=t,this._decrease(r)};$.prototype._heapify=function(e){var t=this._arr,r=2*e,n=r+1,i=e;r<t.length&&(i=t[r].priority<t[i].priority?r:i,n<t.length&&(i=t[n].priority<t[i].priority?n:i),i!==e&&(this._swap(e,i),this._heapify(i)))};$.prototype._decrease=function(e){for(var t=this._arr,r=t[e].priority,n;e!==0&&(n=e>>1,!(t[n].priority<r));)this._swap(e,n),e=n};$.prototype._swap=function(e,t){var r=this._arr,n=this._keyIndices,i=r[e],s=r[t];r[e]=s,r[t]=i,n[s.key]=e,n[i.key]=t}});var Pr=a((Q_,df)=>{"use strict";var _q=N(),Tq=qr();df.exports=jq;var Sq=_q.constant(1);function jq(e,t,r,n){return kq(e,String(t),r||Sq,n||function(i){return e.outEdges(i)})}function kq(e,t,r,n){var i={},s=new Tq,o,u,f=function(l){var p=l.v!==o?l.v:l.w,b=i[p],c=r(l),w=u.distance+c;if(c<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+l+" Weight: "+c);w<b.distance&&(b.distance=w,b.predecessor=o,s.decrease(p,w))};for(e.nodes().forEach(function(l){var p=l===t?0:Number.POSITIVE_INFINITY;i[l]={distance:p},s.add(l,p)});s.size()>0&&(o=s.removeMin(),u=i[o],u.distance!==Number.POSITIVE_INFINITY);)n(o).forEach(f);return i}});var hf=a((eT,yf)=>{"use strict";var Rq=Pr(),Cq=N();yf.exports=Mq;function Mq(e,t,r){return Cq.transform(e.nodes(),function(n,i){n[i]=Rq(e,i,t,r)},{})}});var Er=a((tT,mf)=>{"use strict";var gf=N();mf.exports=Nq;function Nq(e){var t=0,r=[],n={},i=[];function s(o){var u=n[o]={onStack:!0,lowlink:t,index:t++};if(r.push(o),e.successors(o).forEach(function(p){gf.has(n,p)?n[p].onStack&&(u.lowlink=Math.min(u.lowlink,n[p].index)):(s(p),u.lowlink=Math.min(u.lowlink,n[p].lowlink))}),u.lowlink===u.index){var f=[],l;do l=r.pop(),n[l].onStack=!1,f.push(l);while(o!==l);i.push(f)}}return e.nodes().forEach(function(o){gf.has(n,o)||s(o)}),i}});var wf=a((rT,bf)=>{"use strict";var Dq=N(),$q=Er();bf.exports=Fq;function Fq(e){return Dq.filter($q(e),function(t){return t.length>1||t.length===1&&e.hasEdge(t[0],t[0])})}});var xf=a((nT,vf)=>{"use strict";var Lq=N();vf.exports=Uq;var Vq=Lq.constant(1);function Uq(e,t,r){return Bq(e,t||Vq,r||function(n){return e.outEdges(n)})}function Bq(e,t,r){var n={},i=e.nodes();return i.forEach(function(s){n[s]={},n[s][s]={distance:0},i.forEach(function(o){s!==o&&(n[s][o]={distance:Number.POSITIVE_INFINITY})}),r(s).forEach(function(o){var u=o.v===s?o.w:o.v,f=t(o);n[s][u]={distance:f,predecessor:s}})}),i.forEach(function(s){var o=n[s];i.forEach(function(u){var f=n[u];i.forEach(function(l){var p=f[s],b=o[l],c=f[l],w=p.distance+b.distance;w<c.distance&&(c.distance=w,c.predecessor=b.predecessor)})})}),n}});var Or=a((iT,Af)=>{"use strict";var Ve=N();Af.exports=If;If.CycleException=wt;function If(e){var t={},r={},n=[];function i(s){if(Ve.has(r,s))throw new wt;Ve.has(t,s)||(r[s]=!0,t[s]=!0,Ve.each(e.predecessors(s),i),delete r[s],n.push(s))}if(Ve.each(e.sinks(),i),Ve.size(t)!==e.nodeCount())throw new wt;return n}function wt(){}wt.prototype=new Error});var Ef=a((sT,Pf)=>{"use strict";var qf=Or();Pf.exports=Gq;function Gq(e){try{qf(e)}catch(t){if(t instanceof qf.CycleException)return!1;throw t}return!0}});var _r=a((oT,_f)=>{"use strict";var vt=N();_f.exports=zq;function zq(e,t,r){vt.isArray(t)||(t=[t]);var n=(e.isDirected()?e.successors:e.neighbors).bind(e),i=[],s={};return vt.each(t,function(o){if(!e.hasNode(o))throw new Error("Graph does not have node: "+o);Of(e,o,r==="post",s,n,i)}),i}function Of(e,t,r,n,i,s){vt.has(n,t)||(n[t]=!0,r||s.push(t),vt.each(i(t),function(o){Of(e,o,r,n,i,s)}),r&&s.push(t))}});var Sf=a((aT,Tf)=>{"use strict";var Kq=_r();Tf.exports=Jq;function Jq(e,t){return Kq(e,t,"post")}});var kf=a((uT,jf)=>{"use strict";var Hq=_r();jf.exports=Wq;function Wq(e,t){return Hq(e,t,"pre")}});var Mf=a((cT,Cf)=>{"use strict";var Rf=N(),Yq=mt(),Zq=qr();Cf.exports=Xq;function Xq(e,t){var r=new Yq,n={},i=new Zq,s;function o(f){var l=f.v===s?f.w:f.v,p=i.priority(l);if(p!==void 0){var b=t(f);b<p&&(n[l]=s,i.decrease(l,b))}}if(e.nodeCount()===0)return r;Rf.each(e.nodes(),function(f){i.add(f,Number.POSITIVE_INFINITY),r.setNode(f)}),i.decrease(e.nodes()[0],0);for(var u=!1;i.size()>0;){if(s=i.removeMin(),Rf.has(n,s))r.setEdge(s,n[s]);else{if(u)throw new Error("Input graph is not connected: "+e);u=!0}e.nodeEdges(s).forEach(o)}return r}});var Df=a((fT,Nf)=>{"use strict";Nf.exports={components:ff(),dijkstra:Pr(),dijkstraAll:hf(),findCycles:wf(),floydWarshall:xf(),isAcyclic:Ef(),postorder:Sf(),preorder:kf(),prim:Mf(),tarjan:Er(),topsort:Or()}});var Tr=a((lT,Ff)=>{"use strict";var $f=of();Ff.exports={Graph:$f.Graph,json:uf(),alg:Df(),version:$f.version}});var yP={};yl(yP,{PyretCaptureError:()=>Ke,PyretDataInstance:()=>Y,canon:()=>ul,capturePyret:()=>kt,constructorDisplayName:()=>L,createPyretDataInstance:()=>cP,createPyretRuntimeAdapter:()=>Ct,diagramTypeNames:()=>dP,generateEdgeId:()=>il,importPyretCapture:()=>Rt,isPyretDataInstance:()=>fP,prepareDiagram:()=>pP,pyretCaptureSource:()=>fe,readConstructorTypeId:()=>F,reifyToValue:()=>Pt,reifyToValues:()=>Ge,replit:()=>fe,toDataInstance:()=>lP});var nl=Br(Tr());var xt=class{constructor(){this.eventListeners=new Map}addEventListener(t,r){this.eventListeners.has(t)||this.eventListeners.set(t,new Set),this.eventListeners.get(t).add(r)}removeEventListener(t,r){this.eventListeners.get(t)?.delete(r)}emitEvent(t){let r=this.eventListeners.get(t.type);if(r)for(let n of r)try{n(t)}catch(i){console.error("Error in data instance event listener:",i)}}};function Lf(e,t,r){let n=e.atoms.length,i=Array.isArray(t?.types)?t.types:[],o=(t?.tuples?.length??0)>0&&i.length!==n;if(!o&&i.length===n)return{tuple:{...e,types:[...i]},relationTypes:[...i]};let u=Array.isArray(e.types)?e.types:[],f=e.atoms.map((l,p)=>r(l)??u[p]??"untyped");return{tuple:{...e,types:f},relationTypes:o?[]:f}}function re(e){if(!Object.prototype.hasOwnProperty.call(e,"$pyretValue"))return;let t=e.$pyretValue;if(t?.kind==="nothing"||t?.kind==="object"||t?.kind==="tuple"||t?.kind==="raw-array"||t?.kind==="table")return{kind:t.kind};if(t?.kind==="reference"&&typeof t.unrestricted=="boolean")return{kind:t.kind,unrestricted:t.unrestricted};if(t?.kind==="string-dict"&&typeof t.mutable=="boolean"&&typeof t.sealed=="boolean"&&(t.mutable||!t.sealed))return{kind:t.kind,mutable:t.mutable,sealed:t.sealed};throw new Error("Malformed reconstructed Pyret value")}function Sr(e){if(!e||typeof e!="object"||"dict"in e)return!1;let t=e;return Number.isInteger(t.state)&&"value"in t&&!!t.anns&&Array.isArray(t.anns.anns)&&typeof t.anns.check=="function"&&typeof t.anns.addAnn=="function"&&Object.keys(t).every(r=>r==="state"||r==="value"||r==="anns")}function Vf(e){if(Sr(e)){if(e.state!==2)throw new Error("Only initialized mutable Pyret references are supported");return{kind:"reference",unrestricted:e.anns.anns.every(t=>t.ann?.name==="Any")}}}function Uf(e){return!!e.dict&&typeof e.dict=="object"&&Object.keys(e.dict).length===0&&typeof e.brand=="function"&&typeof e.extendWith=="function"&&!("updateDict"in e)&&Object.keys(e).every(t=>t==="dict"||t==="brands")}function It(e){return typeof e=="function"||e!==null&&typeof e=="object"&&("app"in e||"meth"in e&&"full_meth"in e)}function Bf(e,t){let r=[];for(let n in e)(t||!It(e[n]))&&r.push(n);return r}var At=e=>typeof e=="string"&&/^-?(0|[1-9][0-9]*)$/.test(e);function J(e,t=1n){if(t===0n)throw new Error("Invalid Pyret rational denominator");t<0n&&(e=-e,t=-t);let r=e<0n?-e:e,n=t;for(;n!==0n;){let i=r%n;r=n,n=i}return e/=r,t/=r,t===1n?{version:1,kind:"integer",value:e.toString()}:{version:1,kind:"rational",numerator:e.toString(),denominator:t.toString()}}function Gf(e){let t=e;if(t?.version===1){if(t.kind==="integer"&&At(t.value))return J(BigInt(t.value));if(t.kind==="rational"&&At(t.numerator)&&At(t.denominator))return J(BigInt(t.numerator),BigInt(t.denominator));if(t.kind==="roughnum"&&typeof t.value=="string"&&/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:e[+-]?[0-9]+)?$/i.test(t.value)&&Number.isFinite(Number(t.value)))return{version:1,kind:"roughnum",value:t.value}}throw new Error("Malformed Pyret number")}function zf(e){if(e.startsWith("~"))return Gf({version:1,kind:"roughnum",value:e.slice(1)});let t=/^(-?(?:0|[1-9][0-9]*))\/(-?(?:0|[1-9][0-9]*))$/.exec(e);if(t)return J(BigInt(t[1]),BigInt(t[2]));let r=/^(-?(?:0|[1-9][0-9]*))(?:\.([0-9]+))?(?:e([+-]?[0-9]+))?$/i.exec(e);if(!r)throw new Error("Malformed Pyret number label");let n=BigInt(r[3]??"0")-BigInt(r[2]?.length??0),i=BigInt(r[1]+(r[2]??""));return n>=0n?J(i*10n**n):J(i,10n**-n)}function jr(e){if(typeof e=="number"&&Number.isInteger(e))return BigInt(e).toString();if(typeof e=="bigint")return e.toString();if(!e||typeof e!="object")return;let t=e;if(typeof t.isInteger=="function"&&t.isInteger()&&typeof t.isExact=="function"&&t.isExact()){let r=t.toString();if(At(r))return r}}function H(e){if(e&&typeof e=="object"){if("$pyretNumber"in e)return Gf(e.$pyretNumber);if("n"in e&&"d"in e){let n=jr(e.n),i=jr(e.d);if(n!==void 0&&i!==void 0)return J(BigInt(n),BigInt(i))}let r=e;if(typeof r.isRoughnum=="function"&&r.isRoughnum()){if(typeof r.n!="number"||!Number.isFinite(r.n))throw new Error("Invalid Pyret roughnum");return{version:1,kind:"roughnum",value:Object.is(r.n,-0)?"-0":String(r.n)}}}let t=jr(e);if(t!==void 0)return J(BigInt(t));if(typeof e=="number"){if(!Number.isFinite(e))throw new Error("Invalid Pyret number");let[r,n="0"]=String(e).split("e"),i=r.split(".")[1]?.length??0,s=Number(n)-i,o=BigInt(r.replace(".",""));return s>=0?J(o*10n**BigInt(s)):J(o,10n**BigInt(-s))}}function qt(e){switch(e.kind){case"integer":return e.value;case"rational":return`${e.numerator}/${e.denominator}`;case"roughnum":return`~${e.value}`}}function Kf(e){if(e.kind==="integer"){let t=BigInt(e.value);if(t>=BigInt(Number.MIN_SAFE_INTEGER)&&t<=BigInt(Number.MAX_SAFE_INTEGER))return Number(t)}return{$pyretNumber:e}}var kr="pyret:field:v1:",Rr="pyret:constructor:v1:";function Jf(e,t,r){return Rr+JSON.stringify([e,t,r])}function F(e){if(!e.startsWith(Rr))return;let t=JSON.parse(e.slice(Rr.length));if(!Array.isArray(t)||t.length!==3||typeof t[0]!="string"||!t[0]||!Number.isSafeInteger(t[1])||t[1]<0||typeof t[2]!="string"||!t[2])throw new Error("Malformed Pyret constructor identity");return{scope:t[0],index:t[1],name:t[2]}}function L(e){return F(e)?.name??e}function W(e){let{$name:t,$arity:r}=e;if(typeof t!="string"||!Number.isInteger(r)||r<-1)return;let n=e.$constructor?.$fieldNames;if(r===-1)return{name:t,arity:r,fields:[]};if(!Array.isArray(n)||n.length!==r||n.some(o=>typeof o!="string")||new Set(n).size!==n.length)throw new Error(`Invalid Pyret constructor metadata for ${t}`);let i=e.$mut_fields_mask;if(i!==void 0&&(!Array.isArray(i)||i.length!==r||i.some(o=>typeof o!="boolean")))throw new Error(`Invalid Pyret mutable field mask for ${t}`);let s=i?.flatMap((o,u)=>o?[u]:[])??[];return{name:t,arity:r,fields:n,...s.length?{mutableFields:s}:{}}}function Hf(e,t){return kr+JSON.stringify([e.name,t,e.fields[t]])}function ve(e){if(!e.startsWith(kr))return;let t=JSON.parse(e.slice(kr.length));if(!Array.isArray(t)||t.length!==3||typeof t[0]!="string"||!Number.isInteger(t[1])||t[1]<0||typeof t[2]!="string")throw new Error("Malformed Pyret field ID");return{name:t[0],position:t[1],field:t[2]}}var Yf=new Set(["Number","String","Boolean"]),Cr=new Set([...Yf,"Index","Nothing","Object","Tuple","RawArray","Reference","StringDict","MutableStringDict","Table"]);function Ue(e){if(e?.type!=="Index"||!/^(0|[1-9][0-9]*)$/.test(e.label)||!Number.isSafeInteger(Number(e.label)))throw new Error("Malformed Pyret position label");return Number(e.label)}function Wf(e,t,r){if(e.has(t)&&e.get(t)!==r||[...e].some(([n,i])=>n!==t&&i===r))throw new Error("Conflicting Pyret field positions");e.set(t,r)}function Be(e,t){let r=[];for(let n=0;n<e.size;n++){if(!e.has(n))throw new Error(`Incomplete Pyret ${t}: positions must be contiguous from zero`);r.push(e.get(n))}return r}function Qq(e){let t={fields:new Map,targets:new Set,constructors:new Map,objectPositions:new Map,elements:new Map,columns:new Map,rows:new Map,references:new Map,entries:new Map,mutableFields:new Map,sealed:new Set,unrestricted:new Set,nullary:new Set},r=new Map(e.getAtoms().map(n=>[n.id,n]));for(let n of e.getRelations()){let i=ve(n.id);if(i){if(n.name!==i.field)throw new Error("Pyret field ID disagrees with its name");let s=t.constructors.get(i.name)??new Map;Wf(s,i.field,i.position),t.constructors.set(i.name,s)}for(let s of n.tuples){if(!s.atoms.length||s.atoms.some(m=>!r.has(m)))throw new Error("Malformed Pyret relation tuple");let[o,u,f,l]=s.atoms,p=r.get(o).type,b=s.atoms.length;for(let m of s.atoms.slice(1))t.targets.add(m);if(!i&&p!=="Object"){if(n.name==="sealed"&&p==="MutableStringDict"){if(b!==1)throw new Error("Malformed Pyret sealed fact");t.sealed.add(o);continue}if(n.name==="unrestricted"&&p==="Reference"){if(b!==1)throw new Error("Malformed Pyret unrestricted fact");t.unrestricted.add(o);continue}if(n.name==="nullary-constructor"&&!Cr.has(p)){if(b!==1)throw new Error("Malformed Pyret nullary constructor fact");t.nullary.add(o);continue}if(n.name==="mutable-field"&&!Cr.has(p)){if(b!==2)throw new Error("Malformed Pyret mutable field positions");let m=t.mutableFields.get(o)??new Set;m.add(Ue(r.get(u))),t.mutableFields.set(o,m);continue}}if(b<2)throw new Error("Malformed Pyret unary relation");if(p==="Table"){if(i)throw new Error("Pyret table relations must have opaque IDs");let m=Ue(r.get(u));if(n.name==="column"&&b===3&&r.get(f)?.type==="String"){let y=t.columns.get(o)??new Map;if(y.has(m)&&y.get(m)!==f)throw new Error("Conflicting Pyret table column positions");y.set(m,f),t.columns.set(o,y)}else if(n.name==="row"){let y=t.rows.get(o)??new Map,d=s.atoms.slice(2);if(y.has(m)&&JSON.stringify(y.get(m))!==JSON.stringify(d))throw new Error("Conflicting Pyret table row positions");if(d.some(v=>r.get(v)?.type==="Index"))throw new Error("Pyret table cells cannot be positions");y.set(m,d),t.rows.set(o,y)}else throw new Error("Malformed Pyret table relation");continue}if(p==="StringDict"||p==="MutableStringDict"){if(n.name!=="entry"||b!==4||r.get(f)?.type!=="String")throw new Error("Malformed Pyret dictionary entry");let m=Ue(r.get(u)),y=t.entries.get(o)??new Map,d=y.get(m);if(d&&(d.key!==f||d.value!==l))throw new Error("Conflicting Pyret dictionary entry positions");y.set(m,{key:f,value:l}),t.entries.set(o,y);continue}if(p==="Reference"){if(n.name!=="target"||b!==2)throw new Error("Malformed Pyret reference target");if(t.references.has(o)&&t.references.get(o)!==u)throw new Error("Conflicting Pyret reference targets");t.references.set(o,u);continue}if(p==="Tuple"||p==="RawArray"){if(n.name!=="element"||b!==3)throw new Error("Malformed Pyret indexed element");let m=Ue(r.get(u)),y=t.elements.get(o)??new Map;if(y.has(m)&&y.get(m)!==f)throw new Error("Conflicting Pyret element positions");y.set(m,f),t.elements.set(o,y);continue}if(Cr.has(p)&&p!=="Object")throw new Error("Pyret primitive cannot have fields");if(i&&(p!==i.name||b!==2))throw new Error("Pyret field ID disagrees with its source constructor");if(p==="Object"){if(b!==3||i)throw new Error("Pyret object field must have a position and one value");let m=t.objectPositions.get(o)??new Map;Wf(m,n.name,Ue(r.get(u))),t.objectPositions.set(o,m)}let c=t.fields.get(o)??new Map,w=i?.field??n.name,h=c.get(w)??[];for(let m of p==="Object"?[f]:s.atoms.slice(1))h.includes(m)||h.push(m);c.set(w,h),t.fields.set(o,c)}}return t}function eP(e,t){switch(e.type){case"Nothing":return{kind:"nothing"};case"Object":return{kind:"object"};case"Tuple":return{kind:"tuple"};case"RawArray":return{kind:"raw-array"};case"Table":return{kind:"table"};case"Reference":return{kind:"reference",unrestricted:t.unrestricted.has(e.id)};case"StringDict":case"MutableStringDict":return{kind:"string-dict",mutable:e.type==="MutableStringDict",sealed:t.sealed.has(e.id)};default:return}}function tP(e){switch(e.type){case"Number":return Kf(zf(e.label));case"Boolean":if(e.label!=="true"&&e.label!=="false")throw new Error("Malformed Pyret boolean label");return e.label==="true";default:return e.label}}function Mr(e,t){let r=/^\d+$/.test(e),n=/^\d+$/.test(t);return r&&n?parseInt(e,10)-parseInt(t,10):e.localeCompare(t)}function rP(e,t){let n=Y.getGlobalConstructorCache().get(e);if(n&&n.length){let i=n.filter(o=>t.includes(o)),s=t.filter(o=>!n.includes(o));return[...i,...s.sort(Mr)]}return[...t].sort(Mr)}function nP(e){return e.length>0&&e.every(t=>/^\d+$/.test(t))}function Pt(e,t,r={}){let n=Ge(e,t===void 0?void 0:[t],r);return n.length?n[0]:null}function Ge(e,t,r={}){let n=new Map(e.getAtoms().map(d=>[d.id,d])),i=Qq(e),{fields:s,targets:o,elements:u,references:f,entries:l}=i,p=new Map,b=0,c=new Set,w=new Map,h=d=>{if(w.has(d)){if(!r.allowContainerCycles&&p.get(d)===b&&c.size)throw new Error("Cyclic Pyret containers are not supported");return w.get(d)}let v=n.get(d);if(!v)throw new Error("Unknown Pyret atom ID: "+d);if(Yf.has(v.type)){let P=tP(v);return w.set(d,P),P}let x=eP(v,i);if(x?.kind==="nothing"){let P={$pyretValue:x};return w.set(d,P),P}if(p.set(d,b),x?.kind==="table"){let P=Be(i.columns.get(d)??new Map,"table columns").map(E=>n.get(E).label);if(new Set(P).size!==P.length)throw new Error("Duplicate Pyret table column name");let g=Be(i.rows.get(d)??new Map,"table rows");if(g.some(E=>E.length!==P.length))throw new Error("Pyret table row width must match its columns");let I=[],A={$pyretValue:x,dict:{"_header-raw-array":P,"_rows-raw-array":I}};w.set(d,A),c.add(d);for(let E of g)I.push(E.map(h));return c.delete(d),p.delete(d),A}if(x?.kind==="string-dict"){let P=l.get(d)??new Map,g=Be(P,"dictionary entries"),I={$pyretValue:x,entries:[]};w.set(d,I);let A=new Set;x.mutable&&b++;for(let E of g){let M=n.get(E.key).label;if(A.has(M))throw new Error("Duplicate Pyret dictionary key");A.add(M),I.entries.push([M,h(E.value)])}return x.mutable&&b--,p.delete(d),I}if(x?.kind==="reference"){let P=f.get(d);if(P===void 0)throw new Error("Incomplete Pyret reference target");let g={$pyretValue:x};return w.set(d,g),b++,g.value=h(P),b--,p.delete(d),g}if(x?.kind==="raw-array"||x?.kind==="tuple"){let P=u.get(d)??new Map,g=Be(P,"container elements"),I=[],A=x.kind==="raw-array"?I:{vals:I};w.set(d,A),c.add(d);for(let E of g)I.push(h(E));return c.delete(d),p.delete(d),A}let _=s.get(d)??new Map,T=Array.from(_.keys()),C=i.constructors.get(v.type),D=x?void 0:i.nullary.has(d)?0:C?.size??(T.length?void 0:-1),B=[...i.mutableFields.get(d)??[]];if(B.some(P=>D===void 0||P>=D))throw new Error("Malformed Pyret mutable field positions");if(!x&&D===void 0&&nP(T)){let P=[];w.set(d,P);let g=T.slice().sort(Mr);for(let I of g){let A=_.get(I)??[];P.push(A.length===1?h(A[0]):A.map(E=>h(E)))}return p.delete(d),P}let V={dict:Object.create(null),...x?.kind==="object"?{$pyretValue:x}:{$name:v.type}};w.set(d,V);let K;if(x?.kind==="object"){let P=i.objectPositions.get(d)??new Map;K=Be(new Map([...P].map(([g,I])=>[I,g])),"object fields")}else if(D!==void 0){let P=C??new Map,g=Math.max(0,D);if(T.length!==g||P.size!==g||[...P].some(([I,A])=>A>=g||!_.has(I)))throw new Error("Incomplete Pyret constructor fields");K=[...P].sort((I,A)=>I[1]-A[1]).map(([I])=>I),V.$arity=D,V.$constructor={$fieldNames:K},B.length&&(V.$mut_fields_mask=K.map((I,A)=>B.includes(A)))}else K=rP(v.type,T);for(let P of K){let g=_.get(P)??[];if((x?.kind==="object"||D!==void 0)&&g.length!==1)throw new Error("Pyret constructor field must have one value");g.length===1?V.dict[P]=h(g[0]):V.dict[P]=g.map(I=>h(I))}for(let P of B){let g=V.dict[K[P]];if(!g||typeof g!="object"||re(g)?.kind!=="reference")throw new Error("Pyret mutable field must contain a reference")}return p.delete(d),V};if(t!==void 0)return t.map(d=>{if(!n.has(d))throw new Error("Unknown Pyret root ID: "+d);return h(d)});let m=e.getAtoms().map(d=>d.id);if(!m.length)return[];let y=m.filter(d=>!o.has(d));if(y.length!==1)throw new Error("Pyret graph has no unique root; supply an explicit root ID");return[h(y[0])]}function xe(e,t,r){if(!e||typeof e!="object"||Array.isArray(e)||!("$name"in e)||L(String(e.$name))!==t)return!1;let n=W(e);return!!n&&!n.mutableFields?.length&&n.arity===(r.length||-1)&&n.fields.length===r.length&&n.fields.every((i,s)=>i===r[s])&&!!e.dict&&r.every(i=>Object.prototype.hasOwnProperty.call(e.dict,i))}function ze(e){let t=xe(e,"list-set",["elems"])?"list-set":xe(e,"tree-set",["elems"])?"tree-set":void 0;if(!t)return;let r=e.dict.elems,n=[],i=new Set,s=()=>new Error(`Malformed Pyret ${t} backing structure`);if(t==="list-set"){let o=r;for(;!xe(o,"empty",[]);){if(!xe(o,"link",["first","rest"])||i.has(o))throw s();i.add(o),n.push(o.dict.first),o=o.dict.rest}}else{let o=[{node:r,phase:"enter"}];for(;o.length;){let{node:u,phase:f}=o.pop();if(!xe(u,"leaf",[])){if(!xe(u,"branch",["value","h","left","right"]))throw s();if(f==="exit")i.delete(u);else if(f==="emit")n.push(u.dict.value);else{if(i.has(u))throw s();i.add(u),o.push({node:u,phase:"exit"},{node:u.dict.right,phase:"enter"},{node:u,phase:"emit"},{node:u.dict.left,phase:"enter"})}}}}return{kind:t,elements:n}}function Zf(e,t){return e.kind==="tree-set"?`[tree-set: ${e.elements.map(t).join(", ")}]`:"[list-set: ]"+[...e.elements].reverse().map(r=>`.add(${t(r)})`).join("")}function Et(e){return!!e.dict&&typeof e.dict=="object"&&"_header-raw-array"in e.dict&&"_rows-raw-array"in e.dict&&(!e.brands||Object.keys(e.brands).some(t=>t.includes("brandtable")))}function Ot(e){return Array.isArray(e.$rowData)&&!!e.$underlyingTable}function ce(e){let t=e.dict?.["_header-raw-array"],r=e.dict?.["_rows-raw-array"];if(!Array.isArray(t)||!Array.isArray(r)||Array.from(t).some(n=>typeof n!="string")||new Set(t).size!==t.length||Array.from(r).some(n=>!Array.isArray(n)||n.length!==t.length))throw new Error("Malformed Pyret table: unique string headers and rectangular rows required");return{headers:t,rows:r}}function Xf(e,t,r){let{headers:n,rows:i}=ce(e);if(!n.length)return i.length?`for fold(spytial-table from empty-table([list: ]), spytial-row from range(0, ${i.length})):
2
+ spytial-table.add-row([raw-row: ])
3
+ end`:"empty-table([list: ])";let s;try{s=n.map(r)}catch{}return s?`table: ${s.join(", ")}${i.map(o=>`
4
+ row: `+o.map(t).join(", ")).join("")}
5
+ end`:`[table-from-columns: ${n.map((o,u)=>`{${t(o)}; [list: ${i.map(f=>t(f[u])).join(", ")}]}`).join(", ")}]`}function Qf(e,t,r){let n=re,i=g=>!!g&&typeof g=="object"&&!H(g)&&n(g)?.kind!=="nothing",s=g=>{if(Array.isArray(g))return g;let I=n(g);if(I?.kind==="reference")return[g.value];if(I?.kind==="string-dict")return g.entries.map(E=>E[1]);if(I?.kind==="table")return ce(g).rows.flat();if(Array.isArray(g.vals))return g.vals;let A=ze(g);return A?A.elements:Object.keys(g.dict??{}).map(E=>g.dict[E])},o=new Set,u=new Set,f=new Map,l=!1,p=!1,b=[e];for(;b.length;){let g=b.pop();if(!i(g))continue;if(o.has(g)){l=!0;continue}if(o.add(g),!Array.isArray(g)&&n(g)?.kind==="reference"&&u.add(g),!Array.isArray(g)){let A=n(g);A?.kind==="string-dict"&&A.mutable&&f.set(g,A),A?.kind==="table"&&(p=!0)}let I=s(g);for(let A=I.length-1;A>=0;A--)b.push(I[A])}if(!u.size&&!((f.size||p)&&l))return;let c=new Map,w=new Map,h=new Set(["nothing"]);for(let g of o){if(Array.isArray(g))continue;typeof g.$name=="string"&&h.add(L(g.$name));let I=W(g),A=I?.mutableFields?.map(E=>I.fields[E])??[];w.set(g,A);for(let E of A){let M=g.dict[E];if(!u.has(M))throw new Error("Pyret mutable field must contain a reference");if(c.has(M))throw new Error("A Pyret reference shared by multiple mutable constructor fields cannot be reconstructed");c.set(M,{value:g,field:E})}}let m=0,y=g=>{let I;do I=g+m++;while(h.has(I));return h.add(I),I},d=new Map,v=new Set,x=[],_=new Map,T=g=>!i(g)||v.has(g),C=g=>{if(!i(g))return t(g,C);if(!v.has(g))throw new Error("Unresolved Pyret construction dependency");return d.get(g)};for(let g of o)u.has(g)||d.set(g,y("spytial-value"));if([...u].some(g=>!c.has(g)))throw new Error("Pyret reference source requires a reachable mutable constructor field for each reference");let D=new Map;for(let[g,I]of f){let A=d.get(g),E=I.sealed?y("spytial-dict"):A;x.push(`shadow ${E} = ${t({$pyretValue:{...I,sealed:!1},entries:[]},C)}`),I.sealed&&x.push(`shadow ${A} = ${E}.seal()`),v.add(g),D.set(g,E)}let B=new Map(D),V=()=>{for(let[g,I]of B)if(s(g).every(T)){for(let[A,E]of g.entries)x.push(`${I}.set-now(${C(A)}, ${C(E)})`);B.delete(g)}for(let[g,{owner:I,field:A}]of _)T(g.value)&&(x.push(`${I}!{${r(A)}: ${C(g.value)}}`),_.delete(g))},K=g=>{let I=new Set,A=[g];for(;A.length;){let E=A.pop();if(!(!i(E)||I.has(E))){if(!v.has(E)||B.has(E)||_.has(E))return!1;I.add(E),A.push(...s(E))}}return!0},P=[...o].filter(g=>!u.has(g)&&!f.has(g));for(;P.length;){V();let g=!1;for(let I=0;I<P.length;){let A=P[I],E=Array.isArray(A)?[]:w.get(A)??[],M=A;if(E.length){let Z=A,ne={...Z.dict};for(let Fr of E){let Je=Z.dict[Fr],Lr=n(Je);ne[Fr]=T(Je.value)?Je.value:Lr?.kind==="reference"&&Lr.unrestricted?null:Je.value}M={...Z,dict:ne}}if(!s(M).every(T)){I++;continue}if(ze(M)&&!s(M).every(K)){I++;continue}let Mt=d.get(A);x.push(`shadow ${Mt} = ${t(M,C)}`),v.add(A);for(let Z of E){let ne=A.dict[Z];d.set(ne,`${Mt}.${r(Z).trim()}`),v.add(ne),(!T(ne.value)||M.dict[Z]===null)&&_.set(ne,{owner:Mt,field:Z})}P.splice(I,1),g=!0}if(!g)throw new Error("Pyret graph cannot be constructed: cycles need allocatable mutable fields and set elements need complete contents")}return V(),x.push(C(e)),`block:
6
+ ${x.map(g=>" "+g).join(`
7
+ `)}
8
+ end`}function _t(e){let t=n=>{let i=e.dict?.[n];return i&&typeof i.meth=="function"&&typeof i.full_meth=="function"},r=e.$underlyingMap;if(r&&t("keys-list")&&t("get-value")&&t("unfreeze")){if(!Number.isSafeInteger(r.size)||r.size<0||typeof r.keys!="function"||typeof r.get!="function")throw new Error("Malformed Pyret string dictionary backing map");return{kind:"string-dict",mutable:!1,sealed:!1}}if(e.$underlyingDict&&t("keys-list-now")&&t("get-value-now")&&t("freeze")){if(typeof e.$underlyingDict!="object"||e.$sealed!==void 0&&typeof e.$sealed!="boolean")throw new Error("Malformed Pyret mutable string dictionary backing map");return{kind:"string-dict",mutable:!0,sealed:e.$sealed===!0}}}function Tt(e,t){let r;if("$pyretValue"in e)r=e.entries;else if(t.mutable)r=Object.entries(e.$underlyingDict);else{let n=e.$underlyingMap,i=n.keys();if(!Array.isArray(i)||i.some(s=>typeof s!="string"))throw new Error("Malformed Pyret dictionary keys");r=i.map(s=>[s,n.get(s)])}if(!Array.isArray(r)||r.some(n=>!Array.isArray(n)||n.length!==2||typeof n[0]!="string")||new Set(r.map(n=>n[0])).size!==r.length)throw new Error("Malformed Pyret dictionary entries");return r}function el(e,t,r){let n=e.mutable?"mutable-string-dict":"string-dict",i=[...t];if(!e.mutable&&i.length>8){let s=f=>{let l=0;for(let p=0;p<f.length;p++)l=31*l+f.charCodeAt(p)|0;return l>>>1&1073741824|l&3221225471},o=s(i[8][0]),u=i.findIndex(([f])=>s(f)===o);i.splice(8,0,i.splice(u,1)[0])}return`[${n}: ${i.flatMap(([s,o])=>[r(s),r(o)]).join(", ")}]`+(e.sealed?".seal()":"")}function iP(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&"dict"in e}function sP(e){return'"'+e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t").replace(/[^\x20-\x7E]/g,t=>"\\u"+t.charCodeAt(0).toString(16).toUpperCase().padStart(4,"0"))+'"'}var oP=new Set(`and as ascending ask by cases check data descending do does-not-raise
9
+ else end examples extend extract false for from fun hiding if import include is is-not is-roughly
10
+ is-not-roughly because lam lazy let letrec load-table method module newtype of or provide provide-types
11
+ raises raises-other-than raises-satisfies raises-violates reactor rec ref sanitize satisfies select
12
+ shadow sieve spy order transform true type type-let using use var violates when`.split(/\s+/)),aP=new Set(`function break return do yield throw continue while class interface
13
+ type generator alias extends implements module package namespace public private protected static const
14
+ enum super export new try finally debug spy switch this match case with __proto__`.split(/\s+/)),uP=new Set(["block","doc","otherwise","row","sharing","source","table","then","where","with"]);function Nr(e){if(oP.has(e)||aP.has(e)||!/^[A-Za-z_][A-Za-z0-9_]*(?:-+[A-Za-z0-9_]+)*$/.test(e))throw new Error(`Pyret object field has no literal spelling: ${JSON.stringify(e)}`);return uP.has(e)?e+" ":e}function Dr(e,t,r=n=>Dr(n,t)){if(e==null)return"nothing";if(typeof e=="number")return String(e);if(typeof e=="boolean")return e?"true":"false";if(typeof e=="string")return sP(e);let n=H(e);if(n)return qt(n);let i=re(e);if(i?.kind==="nothing")return"nothing";if(i?.kind==="table"){if(t.has(e))throw new Error("Cyclic Pyret table construction is not supported");t.add(e);let s=Xf(e,r,Nr);return t.delete(e),s}if(i?.kind==="string-dict"){if(t.has(e))throw new Error("Cyclic immutable Pyret dictionary construction is not supported");t.add(e);let s=el(i,e.entries,r);return t.delete(e),s}if("vals"in e&&Array.isArray(e.vals)){if(t.has(e))throw new Error("Cyclic Pyret containers are not supported");if(!e.vals.length)throw new Error("Pyret has no empty tuple literal");t.add(e);let s=`{${e.vals.map(o=>r(o)).join("; ")}${e.vals.length===1?";":""}}`;return t.delete(e),s}if(Array.isArray(e)){if(t.has(e))return"<cyclic>";t.add(e);let s=`[raw-array: ${e.map(r).join(", ")}]`;return t.delete(e),s}if(iP(e)){if(t.has(e))return"<cyclic>";t.add(e);let s=ze(e);if(s){let p=Zf(s,r);return t.delete(e),p}let o=L(e.$name||"object"),u=e.dict||{},f=Object.keys(u),l=i?.kind==="object"?`{${f.map(p=>`${Nr(p)}: ${r(u[p])}`).join(", ")}}`:f.length||e.$arity===0?`${o}(${f.map(p=>r(u[p])).join(", ")})`:o;return t.delete(e),l}return String(e)}function fe(e,t){let r=new Map;for(let i of e.getAtoms()){let s=F(i.type);if(s){if(r.has(s.name)&&r.get(s.name)!==i.type)throw new Error(`Source reconstruction needs explicit bindings for same-named constructor ${s.name}`);r.set(s.name,i.type)}}let n=Pt(e,t);return Qf(n,(i,s)=>Dr(i,new Set,s),Nr)??Dr(n,new Set)}function St(e){return JSON.stringify(e.atoms)}function tl(e){let t=new Set;return e.filter(r=>{let n=St(r);return t.has(n)?!1:(t.add(n),!0)}).map(r=>({...r,atoms:[...r.atoms],types:[...r.types]}))}function rl(e,t=[]){if(!e.length)return[...t];let r=e[0].atoms.length;return e.some(n=>n.atoms.length!==r)?[]:Array.from({length:r},(n,i)=>{let s=new Set(e.map(o=>o.types[i]??"univ"));return s.size===1?[...s][0]:"univ"})}function $r(e,t){if(e.name!==t.name)throw new Error(`Conflicting names for relation ID ${JSON.stringify(e.id)}: ${JSON.stringify(e.name)} and ${JSON.stringify(t.name)}`)}function il(e,t){let r=e.id,n=t.atoms;return`${r}:${n.join("->")}`}var k=class k extends xt{constructor(r,n={},i){super();this.atoms=new Map;this.relations=new Map;this.types=new Map;this.objectToAtomId=new WeakMap;this.atomCounter=0;this.valueRelations=new Map;this.indexAtoms=new Map;this.typeLabelCounters=new Map;this.originalObjects=new Map;this.externalEvaluator=null;this.options={stringsIdempotent:n.stringsIdempotent??!0,numbersIdempotent:n.numbersIdempotent??!0,booleansIdempotent:n.booleansIdempotent??!0,showFunctions:n.showFunctions??!1},this.externalEvaluator=i||null,this.initializeBuiltinTypes(),this.isAtomicValue(r)?this.createAtomFromPrimitive(r):r!=null&&this.parseObjectIteratively(r)}static fromValues(r){let n=new k,i=new WeakSet,s=r.map(o=>{if(n.isAtomicValue(o))return n.createAtomFromPrimitive(o);if(!Array.isArray(o)&&!n.isPyretObject(o))throw new Error("Unsupported normalized Pyret root");return n.parseObjectIteratively(o,i),n.objectToAtomId.get(o)});return{instance:n,rootIds:s}}setExternalEvaluator(r){this.externalEvaluator=r}getExternalEvaluator(){return this.externalEvaluator}getOptions(){return{...this.options}}cacheConstructorPattern(r,n){if(n.length===0)return;let i=k.globalConstructorCache.get(r),s=++k.instantiationCounter;(!i||s>i.instantiation)&&k.globalConstructorCache.set(r,{pattern:[...n],instantiation:s})}static getGlobalConstructorCache(){let r=new Map;for(let[n,i]of k.globalConstructorCache)r.set(n,[...i.pattern]);return r}static getGlobalConstructorCacheWithPriority(){return new Map(k.globalConstructorCache)}static clearGlobalConstructorCache(){k.globalConstructorCache.clear()}static async fromExpression(r,n={},i){let s=await k.evaluateExpression(r,i);if(!s.success)throw new Error(`Failed to evaluate Pyret expression: ${k.formatError(s.exn)}`);if(k.isPrimitive(s.result)){let o=new k(null,n,i),u=typeof s.result=="string"?"String":typeof s.result=="number"?"Number":"Boolean",f={id:`result_${s.result}`,label:String(s.result),type:u};return o.addAtom(f),o}return new k(s.result,n,i)}static async evaluateExpression(r,n){try{let i=await n.run(r),s=k.findKeyAtAnyLevel(i,"exn");if(s!==void 0)return{success:!1,exn:s};let o=k.findKeyAtAnyLevel(i,"answer");return o!==void 0?{success:!0,result:o}:k.isPrimitive(i)?{success:!0,result:i}:{success:!1,exn:"Unable to find answer or exn in evaluation result"}}catch(i){return{success:!1,exn:i instanceof Error?i.message:"Unknown evaluation error"}}}static findKeyAtAnyLevel(r,n){if(!(!r||typeof r!="object")){if(n in r)return r[n];for(let i of Object.values(r))if(i&&typeof i=="object"){let s=k.findKeyAtAnyLevel(i,n);if(s!==void 0)return s}}}static isPrimitive(r){return typeof r=="string"||typeof r=="number"||typeof r=="boolean"}static formatError(r){if(!r)return"Unknown error";if(typeof r=="string")return r;if(typeof r=="object"&&r!==null){let n=r;if(n.message)return n.message;if(n.toString&&typeof n.toString=="function")return n.toString()}return String(r)}hasExternalEvaluator(){return this.externalEvaluator!==null}addAtom(r){this.atoms.set(r.id,r),this.ensureTypeExists(r.type);let n=this.types.get(r.type);n&&!n.atoms.some(i=>i.id===r.id)&&n.atoms.push(r),this.emitEvent({type:"atomAdded",data:{atom:r}})}removeAtom(r){let n=this.atoms.get(r);this.atoms.delete(r),this.types.forEach(i=>{i.atoms=i.atoms.filter(s=>s.id!==r)}),this.relations.forEach(i=>{i.tuples=i.tuples.filter(s=>!s.atoms.includes(r))}),n&&this.emitEvent({type:"atomRemoved",data:{atomId:r}})}removeRelationTuple(r,n){let i=this.relations.get(r);if(i){let s=i.tuples.length;i.tuples=i.tuples.filter(o=>!o.atoms.every((u,f)=>u===n.atoms[f])),i.tuples.length<s&&this.emitEvent({type:"relationTupleRemoved",data:{relationId:r,tuple:n}})}}reify(r){return fe(this,r)}parseObjectIteratively(r,n=new WeakSet){let i=[{obj:r}],s=(o,u,f,l)=>{if(this.isAtomicValue(o)){let p=this.createAtomFromPrimitive(o);this.addRelationTuple(f,{atoms:[...u,p],types:[]},l)}else(Array.isArray(o)||this.isPyretObject(o))&&i.push({obj:o,parentInfo:{atoms:u,relationId:f,relationName:l}})};for(let o=0;o<i.length;o++){let{obj:u,parentInfo:f}=i[o],l=this.objectToAtomId.get(u);if(l||(l=this.createAtomFromObject(u)),f&&this.addRelationTuple(f.relationId,{atoms:[...f.atoms,l],types:[]},f.relationName),n.has(u))continue;n.add(u);let p=this.valueInfo(u);if(p?.kind==="nothing")continue;if(p?.kind==="table"){this.processTableSemantics(l,u,h=>{if(this.isAtomicValue(h))return this.createAtomFromPrimitive(h);if(It(h)||!Array.isArray(h)&&!this.isPyretObject(h))throw new Error("Unsupported Pyret table cell");let m=h,y=this.objectToAtomId.get(m)??this.createAtomFromObject(m);return i.push({obj:m}),y});continue}if(p?.kind==="string-dict"){p.sealed&&this.addValueFact("sealed",l,"MutableStringDict"),Tt(u,p).forEach(([m,y],d)=>{if(!this.isAtomicValue(y)&&!Array.isArray(y)&&!this.isPyretObject(y))throw new Error("Unsupported Pyret dictionary value");let v=this.valueRelationId("dictionary-entries","entry",["PyretObject","Index","String","PyretObject"]);s(y,[l,this.createIndexAtom(d),this.createAtomFromPrimitive(m)],v,"entry")});continue}if(p?.kind==="reference"){p.unrestricted&&this.addValueFact("unrestricted",l,"Reference");let h=u.value;if(!this.isAtomicValue(h)&&!Array.isArray(h)&&!this.isPyretObject(h))throw new Error("Unsupported Pyret reference target");let m=this.valueRelationId("reference-target","target",["Reference","PyretObject"]);s(h,[l],m,"target");continue}if(p?.kind==="tuple"||p?.kind==="raw-array"){let h=Array.isArray(u)?u:u.vals;for(let m=0;m<h.length;m++){let y=this.valueRelationId("sequence-elements","element",["PyretObject","Index","PyretObject"]);s(h[m],[l,this.createIndexAtom(m)],y,"element")}continue}let b=u;this.originalObjects.set(l,b);let c=W(b);c?.arity===0&&this.addValueFact("nullary-constructor",l,"PyretObject");for(let h of c?.mutableFields??[]){let m=this.valueRelationId("mutable-field","mutable-field",["PyretObject","Index"]);this.addRelationTuple(m,{atoms:[l,this.createIndexAtom(h)],types:[]},"mutable-field")}if(!b.dict||typeof b.dict!="object")continue;let w=c?.fields??(p?.kind==="object"?Bf(b.dict,this.options.showFunctions):Object.keys(b.dict));!p&&!F(this.extractType(b))&&this.cacheConstructorPattern(this.extractType(b),w),w.forEach((h,m)=>{let y=b.dict[h],d=c?Hf(c,m):p?.kind==="object"?this.valueRelationId("object-field:"+h,h,["Object","Index","PyretObject"]):h;if(c&&!this.relations.has(d)&&this.relations.set(d,{id:d,name:h,types:[c.name,"PyretObject"],tuples:[]}),!this.options.showFunctions&&It(y))return;let v=p?.kind==="object"?[l,this.createIndexAtom(m)]:[l];s(y,v,d,p?.kind==="object"?h:void 0)})}}addValueFact(r,n,i){let s=this.valueRelationId(r,r,[i]);this.addRelationTuple(s,{atoms:[n],types:[]},r)}valueRelationId(r,n,i){let s=this.valueRelations.get(r);return s||(s=globalThis.crypto?.randomUUID?.()??`relation-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}-${this.valueRelations.size}`,this.valueRelations.set(r,s),this.relations.set(s,{id:s,name:n,types:i,tuples:[]})),s}createIndexAtom(r){let n=this.indexAtoms.get(r);if(n)return n;let i=this.generateAtomId("Index");return this.atoms.set(i,{id:i,type:"Index",label:String(r)}),this.ensureTypeExists("Index"),this.indexAtoms.set(r,i),i}valueInfo(r){if(Array.isArray(r))return{kind:"raw-array"};if("$pyretValue"in r)return re(r);if(Ot(r))throw new Error("Standalone Pyret Row values are not supported");if(Et(r))return{kind:"table"};let n=Vf(r);if(n)return n;let i=_t(r);if(i)return i;if(Uf(r))return{kind:"nothing"};if(Array.isArray(r.vals))return{kind:"tuple"};if(!W(r)&&r.dict&&(typeof r.updateDict=="function"||this.extractType(r)==="PyretObject"))return{kind:"object"}}processTableSemantics(r,n,i){let{headers:s,rows:o}=ce(n),u=this.valueRelationId("table-columns","column",["Table","Index","String"]);s.forEach((l,p)=>this.addRelationTuple(u,{atoms:[r,this.createIndexAtom(p),this.createAtomFromPrimitive(l)],types:[]},"column"));let f=this.valueRelationId("table-rows:"+s.length,"row",["Table","Index",...s.map(()=>"PyretObject")]);o.forEach((l,p)=>this.addRelationTuple(f,{atoms:[r,this.createIndexAtom(p),...Array.from(l,i)],types:[]},"row"))}createAtomFromObject(r){let n=this.valueInfo(r),i=n?{nothing:"Nothing",reference:"Reference",object:"Object",tuple:"Tuple","raw-array":"RawArray",table:"Table","string-dict":n.kind==="string-dict"&&n.mutable?"MutableStringDict":"StringDict"}[n.kind]:this.extractType(r),s=this.generateAtomId(i),o={id:s,type:i,label:n?i:this.extractLabel(r)};return this.atoms.set(s,o),this.objectToAtomId.set(r,s),this.ensureTypeExists(i),s}createAtomFromPrimitive(r){let n=H(r),i=n?"Number":this.mapPrimitiveType(r),s=n?qt(n):String(r);if(i==="String"&&this.options.stringsIdempotent||i==="Number"&&this.options.numbersIdempotent||i==="Boolean"&&this.options.booleansIdempotent){let l=Array.from(this.atoms.values()).find(p=>p.type===i&&p.label===s);if(l)return l.id}let u=this.generateAtomId(i),f={id:u,type:i,label:s};return this.atoms.set(u,f),this.ensureTypeExists(i),u}mapPrimitiveType(r){switch(typeof r){case"number":return"Number";case"string":return"String";case"boolean":return"Boolean";default:return"Value"}}extractMostSpecificBrand(r){let n=-1,i,s;for(let o of Object.keys(r)){let u=/^\$brand([a-zA-Z_]+)(\d+)$/.exec(o);if(u){let[,f,l]=u,p=parseInt(l,10);p>n&&(n=p,i=f)}else{let f=/^\$brand_?([a-zA-Z_]+)$/.exec(o);if(f){let[,l]=f;(!s||l>s)&&(s=l)}}}return i||s}extractType(r){if(r.$name&&typeof r.$name=="string")return r.$name;if(r.brands&&typeof r.brands=="object"){let n=this.extractMostSpecificBrand(r.brands);if(n)return n}return"PyretObject"}extractLabel(r){if(r.$name&&typeof r.$name=="string")return L(r.$name);let n=this.extractType(r),s=(this.typeLabelCounters.get(n)??0)+1;return this.typeLabelCounters.set(n,s),`${n}$${s}`}addRelationTuple(r,n,i){let s=n.atoms[0],o=n.atoms[n.atoms.length-1],u=this.atoms.get(s),f=this.atoms.get(o);if(!u||!f){console.warn(`Cannot create relation ${r}: missing atoms ${s} or ${o}`);return}let l=this.relations.get(r),p=i??l?.name??ve(r)?.field??r;l&&$r(l,{...l,name:p});let b=Lf(n,l,w=>this.atoms.get(w)?.type);l?l.types=b.relationTypes:(l={id:r,name:p,types:b.relationTypes,tuples:[]},this.relations.set(r,l)),l.tuples.some(w=>St(w)===St(n))||(l.tuples.push(b.tuple),this.emitEvent({type:"relationTupleAdded",data:{relationId:r,tuple:b.tuple}}))}ensureTypeExists(r){if(!this.types.has(r)){let n=F(r),i=n&&!["Number","String","Boolean","PyretObject","Index","Nothing","Object","Tuple","RawArray","Reference","StringDict","MutableStringDict","Table"].includes(n.name)?n.name:void 0;i&&this.ensureTypeExists(i);let s={id:r,types:i?[r,i,"PyretObject"]:[r,"PyretObject"],atoms:[],isBuiltin:this.isBuiltinType(r)};this.types.set(r,s)}}initializeBuiltinTypes(){["Number","String","Boolean","PyretObject"].forEach(n=>{let i={id:n,types:n==="PyretObject"?["PyretObject"]:[n,"PyretObject"],atoms:[],isBuiltin:!0};this.types.set(n,i)})}isBuiltinType(r){return["Number","String","Boolean","PyretObject"].includes(r)}isAtomicValue(r){return typeof r=="string"||typeof r=="boolean"||H(r)!==void 0}isPyretObject(r){return typeof r=="object"&&r!==null&&("dict"in r||"brands"in r||"$name"in r||"vals"in r||"$pyretValue"in r||Sr(r))}generateAtomId(r){return`${r?r.toLowerCase().substring(0,3):"atom"}_${++this.atomCounter}`}getAtoms(){return Array.from(this.atoms.values())}getRelations(){let r=this.relations.values();return Array.from(r)}getTypes(){return this.types.forEach(r=>{r.atoms=this.getAtoms().filter(n=>n.type===r.id||!!F(n.type)&&this.types.get(n.type)?.types.includes(r.id))}),Array.from(this.types.values())}getAtomType(r){let n=this.atoms.get(r);if(!n)throw new Error(`Atom with id '${r}' not found`);let i=this.types.get(n.type);return i||(this.ensureTypeExists(n.type),this.types.get(n.type))}generateGraph(r=!1,n=!1){let i=new nl.Graph({directed:!0,multigraph:!0});if(this.getAtoms().forEach(s=>{i.setNode(s.id,{label:s.label})}),this.getRelations().forEach(s=>{s.tuples.forEach(o=>{if(o.atoms.length>=2){let u=o.atoms[0],f=o.atoms[o.atoms.length-1],l=o.atoms.slice(1,-1),p=s.name;if(l.length>0){let c=l.map(w=>{let h=this.atoms.get(w);return h?h.label:w});p=`${s.name}[${c.join(", ")}]`}let b=il(s,o);i.setEdge(u,f,p,b)}})}),r||n){let s=[];i.nodes().forEach(o=>{let u=i.inEdges(o)||[],f=i.outEdges(o)||[];if(u.length===0&&f.length===0&&this.atoms.get(o)){let c=this.getAtomType(o).isBuiltin;(r||c&&n)&&s.push(o)}}),s.forEach(o=>i.removeNode(o))}return i}addFromDataInstance(r,n){if(!(r instanceof k))return!1;let i=r;for(let o of i.getRelations()){let u=this.relations.get(o.id);u&&$r(u,o)}let s=new Map;return i.getAtoms().forEach(o=>{let u=this.isBuiltinType(o.type);if(n&&u&&(o.type==="String"&&this.options.stringsIdempotent||o.type==="Number"&&this.options.numbersIdempotent||o.type==="Boolean"&&this.options.booleansIdempotent)){let c=Array.from(this.atoms.values()).find(w=>w.type===o.type&&w.label===o.label);if(c){s.set(o.id,c.id);return}}let f=this.generateAtomId(o.type);s.set(o.id,f);let l={...o,id:f};this.addAtom(l);let p=i.originalObjects.get(o.id);p&&this.originalObjects.set(f,p)}),i.getTypes().forEach(o=>{if(!this.types.has(o.id))this.types.set(o.id,{...o,atoms:o.atoms.map(u=>({...u,id:s.get(u.id)||u.id}))});else{let u=this.types.get(o.id),f=o.atoms.map(l=>({...l,id:s.get(l.id)||l.id}));u.atoms.push(...f)}}),i.getRelations().forEach(o=>{let u=o.tuples.map(l=>({atoms:l.atoms.map(p=>s.get(p)||p),types:l.types})),f=this.relations.get(o.id);f?(f.tuples=tl([...f.tuples,...u]),f.types=rl(f.tuples,f.types)):this.relations.set(o.id,{...o,tuples:u})}),!0}};k.globalConstructorCache=new Map,k.instantiationCounter=0;var Y=k,cP=(e,t={})=>{try{let r=JSON.parse(e);return new Y(r,t)}catch(r){throw new Error(`Failed to parse Pyret JSON: ${r instanceof Error?r.message:"Unknown error"}`)}},fP=e=>e instanceof Y;var sl=Br(Tr()),jt=class{constructor(t){this.datum=t;this.atoms=new Map(t.atoms.map(r=>[r.id,r])),this.types=new Map(t.types.map(r=>[r.id,r]))}getAtoms(){return this.datum.atoms}getRelations(){return this.datum.relations}getTypes(){return this.datum.types}getAtomType(t){let r=this.atoms.get(t);if(!r)throw new Error(`Unknown captured atom ${t}`);let n=this.types.get(r.type);if(!n)throw new Error(`Unknown captured type ${r.type}`);return n}generateGraph(t=!1,r=!1){let n=new sl.Graph({directed:!0,multigraph:!0});for(let i of this.datum.atoms)n.setNode(i.id,{label:i.label});for(let i of this.datum.relations)for(let s of i.tuples){if(s.atoms.length<2)continue;let o=s.atoms[0],u=s.atoms[s.atoms.length-1],f=s.atoms.slice(1,-1).map(p=>this.atoms.get(p).label),l=i.name+(f.length?`[${f.join(", ")}]`:"");n.setEdge(o,u,l,JSON.stringify([i.id,s.atoms]))}if(t||r)for(let i of n.nodes())!(n.nodeEdges(i)||[]).length&&(t||this.getAtomType(i).isBuiltin)&&n.removeNode(i);return n}};var Ke=class extends Error{constructor(r,n,i){super(`Cannot capture ${JSON.stringify(r)}${n.map(s=>`[${JSON.stringify(s)}]`).join("")}: ${i}`);this.root=r;this.path=n;this.reason=i;this.name="PyretCaptureError"}};function ol(e){let t=new Set;function r(n){if(n===null||typeof n=="string"||typeof n=="boolean"||typeof n=="number"&&Number.isFinite(n))return;let i=n&&typeof n=="object"?Object.getPrototypeOf(n):void 0;if(!n||typeof n!="object"||!Array.isArray(n)&&i!==null&&Object.getPrototypeOf(i)!==null)throw new Error("Capture metadata must contain only JSON values");if(t.has(n))throw new Error("Capture metadata must not contain cycles");t.add(n);for(let s of Reflect.ownKeys(n)){let o=Object.getOwnPropertyDescriptor(n,s);if(typeof s!="string"||o.get||o.set)throw new Error("Capture metadata must not contain symbols or accessors")}for(let s of Array.isArray(n)?Array.from(n):Object.values(n))r(s);t.delete(n)}return r(e),JSON.parse(JSON.stringify(e))}function kt(e,t,r){if(!Array.isArray(e)||!e.length)throw new Error("Capture requires at least one named root");let n=new Set;for(let c of e){if(!c||typeof c.name!="string"||!c.name||n.has(c.name))throw new Error("Capture root names must be nonempty and unique");n.add(c.name)}let i=globalThis.crypto?.randomUUID?.()??`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`,s=new Map,o=new Map,u=[],f=(c,w,h)=>{if(s.has(c))return s.get(c);try{let m=t.observe(c);if(m.kind==="primitive")return m.value;let y;switch(m.kind){case"nothing":y={$pyretValue:{kind:"nothing"}};break;case"raw-array":y=[];break;case"tuple":y={vals:[]};break;case"object":y={$pyretValue:{kind:"object"},dict:Object.create(null)};break;case"reference":y={$pyretValue:{kind:"reference",unrestricted:!0}};break;case"string-dict":y={$pyretValue:{kind:"string-dict",mutable:m.mutable,sealed:m.sealed},entries:[]};break;case"table":y={$pyretValue:{kind:"table"},dict:Object.create(null)};break;case"constructor":{let d=JSON.stringify(m.info),v=o.get(m.identity);if(v&&v.schema!==d)throw new Error("Constructor schema changed during capture");v||(v={id:Jf(i,o.size,m.info.name),schema:d},o.set(m.identity,v)),y={$name:v.id,$arity:m.info.arity,$constructor:{$fieldNames:m.info.fields.slice()},$mut_fields_mask:m.info.fields.map((x,_)=>(m.info.mutableFields??[]).includes(_)),dict:Object.create(null)};break}default:throw new Error("Unsupported adapter observation")}return s.set(c,y),u.push({carrier:y,observed:m,root:w,path:h}),y}catch(m){throw m instanceof Ke?m:new Ke(w,h,m instanceof Error?m.message:String(m))}},l=e.map(c=>f(c.value,c.name,[]));for(let c=0;c<u.length;c++){let{carrier:w,observed:h,root:m,path:y}=u[c],d=(v,...x)=>f(v,m,[...y,...x]);switch(h.kind){case"constructor":h.info.fields.forEach((v,x)=>{w.dict[v]=d(h.values[x],v)});break;case"object":h.fields.forEach(([v,x])=>{w.dict[v]=d(x,v)});break;case"raw-array":h.values.forEach((v,x)=>w.push(d(v,x)));break;case"tuple":h.values.forEach((v,x)=>w.vals.push(d(v,x)));break;case"reference":w.value=d(h.value,"target");break;case"string-dict":h.entries.forEach(([v,x])=>w.entries.push([v,d(x,v)]));break;case"table":w.dict["_header-raw-array"]=h.headers.slice(),w.dict["_rows-raw-array"]=h.rows.map((v,x)=>v.map((_,T)=>d(_,"rows",x,h.headers[T])));break}}let{instance:p,rootIds:b}=Y.fromValues(l);return ol({format:"spytial-pyret-capture",version:1,datum:{atoms:[...p.getAtoms()],relations:[...p.getRelations()],types:[...p.getTypes()]},roots:e.map((c,w)=>({name:c.name,atomId:b[w],...c.observation===void 0?{}:{observation:c.observation}})),...r===void 0?{}:{provenance:r}})}function Rt(e){let t=ol(e);if(!t||t.format!=="spytial-pyret-capture"||t.version!==1)throw new Error("Unsupported Pyret capture format/version");if(!Array.isArray(t.roots)||!t.roots.length||!t.datum||!Array.isArray(t.datum.atoms)||!Array.isArray(t.datum.relations)||!Array.isArray(t.datum.types))throw new Error("Malformed Pyret capture");let r=new Map,n=new Set(["Number","String","Boolean","Nothing","Object","Index","Tuple","RawArray","Reference","StringDict","MutableStringDict","Table"]);for(let c of t.datum.atoms){if(!c||typeof c.id!="string"||!c.id||r.has(c.id)||typeof c.label!="string"||typeof c.type!="string"||!n.has(c.type)&&!F(c.type))throw new Error("Malformed or duplicate Pyret capture atom");if(c.type==="Index"&&(!/^(0|[1-9][0-9]*)$/.test(c.label)||!Number.isSafeInteger(Number(c.label))))throw new Error("Malformed Pyret capture index");r.set(c.id,c)}let i=new Set,s=(c,w)=>c===w.type||c==="PyretObject"||!n.has(c)&&c===F(w.type)?.name,o=new Set;for(let c of t.datum.types){if(!c||typeof c.id!="string"||o.has(c.id)||!Array.isArray(c.types)||c.types[0]!==c.id||c.types.some(h=>typeof h!="string")||!Array.isArray(c.atoms)||typeof c.isBuiltin!="boolean")throw new Error("Malformed Pyret capture type");o.add(c.id);let w=new Set;for(let h of c.atoms){let m=h&&r.get(h.id);if(!m||w.has(h.id)||h.type!==m.type||h.label!==m.label||!s(c.id,m))throw new Error("Invalid Pyret capture type membership");w.add(h.id)}}if([...r.values()].some(c=>!o.has(c.type))||t.datum.types.some(c=>c.types.some(w=>!o.has(w))))throw new Error("Unknown Pyret capture type");for(let c of t.datum.relations){if(!c||typeof c.id!="string"||i.has(c.id)||typeof c.name!="string"||!Array.isArray(c.tuples)||!Array.isArray(c.types)||c.types.some(h=>typeof h!="string"))throw new Error("Malformed or duplicate Pyret capture relation");i.add(c.id);let w=new Set;for(let h of c.tuples){if(!h||!Array.isArray(h.atoms)||!h.atoms.length||h.atoms.some(y=>!r.has(y))||!Array.isArray(h.types)||h.types.length!==h.atoms.length||h.types.some((y,d)=>!s(y,r.get(h.atoms[d]))))throw new Error("Malformed Pyret capture tuple");let m=JSON.stringify(h.atoms);if(w.has(m))throw new Error("Duplicate Pyret capture tuple");w.add(m)}}let u=new Set;for(let c of t.roots){if(!c||typeof c.name!="string"||!c.name||u.has(c.name)||!r.has(c.atomId)||r.get(c.atomId).type==="Index")throw new Error("Invalid Pyret capture root");u.add(c.name)}let f=new jt(t.datum),l=[...r.values()].filter(c=>c.type!=="Index").map(c=>c.id),p=Ge(f,l,{allowContainerCycles:!0}),b=new Map(l.map((c,w)=>[c,p[w]]));return{snapshot:t,instance:f,values:new Map(t.roots.map(c=>[c.name,b.get(c.atomId)]))}}function Ct(e){for(let t of["isNumber","isNothing","isDataValue","isTuple","isRef","isFunction","isMethod","isOpaque","isObject"])if(typeof e?.[t]!="function")throw new Error(`Pyret runtime lacks ${t}`);return{observe(t){if(typeof t=="string"||typeof t=="boolean")return{kind:"primitive",value:t};if(e.isNumber(t)){let n=H(t);if(!n)throw new Error("Unsupported Pyret numeric representation");return{kind:"primitive",value:{$pyretNumber:n}}}if(e.isFunction(t))throw new Error("Unsupported Pyret function");if(e.isMethod(t))throw new Error("Unsupported Pyret method");if(e.isOpaque(t))throw new Error("Unsupported Pyret opaque value");if(e.isNothing(t))return{kind:"nothing"};if(Array.isArray(t)){if(Array.from({length:t.length},(n,i)=>i).some(n=>!(n in t)))throw new Error("Unsupported sparse raw array");return{kind:"raw-array",values:t.slice()}}let r=t;if(e.isRef(t)){if(r.state!==2)throw new Error("Unsupported Pyret reference state: only initialized mutable references are supported");if(!Array.isArray(r.anns?.anns)||!r.anns.anns.every(n=>n.ann===e.Any))throw new Error("Unsupported Pyret reference annotation: only the runtime Any annotation is supported");return{kind:"reference",value:r.value}}if(e.isTuple(t))return{kind:"tuple",values:r.vals.slice()};if(e.isDataValue(t)){let n=W(r);if(!n||!r.$constructor||typeof r.$constructor!="object")throw new Error("Invalid Pyret constructor metadata");for(let i in r.dict)if(!n.fields.includes(i)&&i!=="$fieldNames"&&!e.isMethod(r.dict[i]))throw new Error(`Unsupported extra constructor field ${JSON.stringify(i)}`);return{kind:"constructor",identity:r.$constructor,info:n,values:n.fields.map(i=>r.dict[i])}}if(e.isObject(t)){if(Ot(r))throw new Error("Unsupported standalone Pyret Row");if(Et(r))return{kind:"table",...ce(r)};let n=_t(r);if(n)return{...n,entries:Tt(r,n)};if(r.brands&&Object.keys(r.brands).some(s=>s!=="brandCount"&&r.brands[s]===!0))throw new Error("Unsupported branded Pyret object");let i=[];for(let s in r.dict)i.push([s,r.dict[s]]);return{kind:"object",fields:i}}throw new Error("Unsupported value from this Pyret runtime")}}}function lP(e,t){return Rt(kt([{name:"value",value:e}],Ct(t))).instance}function pP(e,t){let r=kt([{name:"value",value:e}],Ct(t)),{instance:n}=Rt(r),i;try{i=fe(n,r.roots[0].atomId)}catch(s){i="Source preview unavailable: "+(s instanceof Error?s.message:String(s))}return{snapshot:r,instance:n,sourcePreview:i}}function dP(e){return{...e,nodes:e.nodes.map(t=>({...t,mostSpecificType:L(t.mostSpecificType)}))}}var al=new Set(["Number","String","Boolean","Index"]);function ul(e,t){let r=e.getAtoms(),n=e.getRelations(),i=new Map(r.map(y=>[y.id,y])),s=y=>ve(y.id)?y.id:y.name,o=new Map,u=new Set;for(let y of n)for(let d of y.tuples){if(d.atoms.length<1)continue;let v=d.atoms[0];for(let _=1;_<d.atoms.length;_++)u.add(d.atoms[_]);let x=o.get(v)??[];x.push({rel:s(y),tuple:d.atoms.slice()}),o.set(v,x)}let f=y=>{let d=i.get(y);return d?JSON.stringify([d.type,al.has(d.type)?d.label:void 0]):"?"},l=t?[t]:r.map(y=>y.id).filter(y=>!u.has(y)),p=(l.length?l:r.map(y=>y.id)).slice().sort((y,d)=>{let v=f(y).localeCompare(f(d));return v!==0?v:y.localeCompare(d)}),b=new Map,c=0,w=y=>{let d=[y];for(;d.length;){let v=d.pop();if(b.has(v))continue;b.set(v,c++);let x=(o.get(v)??[]).slice().sort((_,T)=>{let C=_.rel.localeCompare(T.rel);if(C!==0)return C;let D=_.tuple.slice(1).map(f).join("|"),B=T.tuple.slice(1).map(f).join("|");return D.localeCompare(B)});for(let _=x.length-1;_>=0;_--){let T=x[_].tuple;for(let C=T.length-1;C>=1;C--)d.push(T[C])}}};for(let y of p)w(y);r.map(y=>y.id).sort().forEach(y=>{b.has(y)||b.set(y,c++)});let h=r.map(y=>({id:b.get(y.id),type:y.type,label:al.has(y.type)?y.label:void 0})).sort((y,d)=>y.id-d.id),m=n.map(y=>{let d=y.tuples.filter(v=>v.atoms.length>=1).map(v=>v.atoms.map(x=>b.get(x)??-1));return d.sort((v,x)=>{let _=Math.min(v.length,x.length);for(let T=0;T<_;T++)if(v[T]!==x[T])return v[T]-x[T];return v.length-x.length}),{name:s(y),tuples:d}}).filter(y=>y.tuples.length>0).sort((y,d)=>y.name.localeCompare(d.name)||JSON.stringify(y.tuples).localeCompare(JSON.stringify(d.tuples)));return JSON.stringify({atoms:h,relations:m})}return hl(yP);})();
package/dist/spyret.js ADDED
@@ -0,0 +1,14 @@
1
+ "use strict";var ul=Object.create;var He=Object.defineProperty;var cl=Object.getOwnPropertyDescriptor;var fl=Object.getOwnPropertyNames;var ll=Object.getPrototypeOf,pl=Object.prototype.hasOwnProperty;var a=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),dl=(e,t)=>{for(var r in t)He(e,r,{get:t[r],enumerable:!0})},Vr=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of fl(t))!pl.call(e,i)&&i!==r&&He(e,i,{get:()=>t[i],enumerable:!(n=cl(t,i))||n.enumerable});return e};var Ur=(e,t,r)=>(r=e!=null?ul(ll(e)):{},Vr(t||!e||!e.__esModule?He(r,"default",{value:e,enumerable:!0}):r,e)),yl=e=>Vr(He({},"__esModule",{value:!0}),e);var Gr=a((hP,Br)=>{"use strict";function hl(){this.__data__=[],this.size=0}Br.exports=hl});var We=a((gP,zr)=>{"use strict";function gl(e,t){return e===t||e!==e&&t!==t}zr.exports=gl});var Ie=a((mP,Kr)=>{"use strict";var ml=We();function bl(e,t){for(var r=e.length;r--;)if(ml(e[r][0],t))return r;return-1}Kr.exports=bl});var Hr=a((bP,Jr)=>{"use strict";var wl=Ie(),vl=Array.prototype,xl=vl.splice;function Il(e){var t=this.__data__,r=wl(t,e);if(r<0)return!1;var n=t.length-1;return r==n?t.pop():xl.call(t,r,1),--this.size,!0}Jr.exports=Il});var Yr=a((wP,Wr)=>{"use strict";var Al=Ie();function ql(e){var t=this.__data__,r=Al(t,e);return r<0?void 0:t[r][1]}Wr.exports=ql});var Xr=a((vP,Zr)=>{"use strict";var Pl=Ie();function El(e){return Pl(this.__data__,e)>-1}Zr.exports=El});var en=a((xP,Qr)=>{"use strict";var Ol=Ie();function _l(e,t){var r=this.__data__,n=Ol(r,e);return n<0?(++this.size,r.push([e,t])):r[n][1]=t,this}Qr.exports=_l});var Ae=a((IP,tn)=>{"use strict";var Tl=Gr(),Sl=Hr(),jl=Yr(),kl=Xr(),Rl=en();function le(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}le.prototype.clear=Tl;le.prototype.delete=Sl;le.prototype.get=jl;le.prototype.has=kl;le.prototype.set=Rl;tn.exports=le});var nn=a((AP,rn)=>{"use strict";var Cl=Ae();function Ml(){this.__data__=new Cl,this.size=0}rn.exports=Ml});var on=a((qP,sn)=>{"use strict";function Nl(e){var t=this.__data__,r=t.delete(e);return this.size=t.size,r}sn.exports=Nl});var un=a((PP,an)=>{"use strict";function Dl(e){return this.__data__.get(e)}an.exports=Dl});var fn=a((EP,cn)=>{"use strict";function $l(e){return this.__data__.has(e)}cn.exports=$l});var Nt=a((OP,ln)=>{"use strict";var Fl=typeof global=="object"&&global&&global.Object===Object&&global;ln.exports=Fl});var U=a((_P,pn)=>{"use strict";var Ll=Nt(),Vl=typeof self=="object"&&self&&self.Object===Object&&self,Ul=Ll||Vl||Function("return this")();pn.exports=Ul});var ie=a((TP,dn)=>{"use strict";var Bl=U(),Gl=Bl.Symbol;dn.exports=Gl});var mn=a((SP,gn)=>{"use strict";var yn=ie(),hn=Object.prototype,zl=hn.hasOwnProperty,Kl=hn.toString,qe=yn?yn.toStringTag:void 0;function Jl(e){var t=zl.call(e,qe),r=e[qe];try{e[qe]=void 0;var n=!0}catch{}var i=Kl.call(e);return n&&(t?e[qe]=r:delete e[qe]),i}gn.exports=Jl});var wn=a((jP,bn)=>{"use strict";var Hl=Object.prototype,Wl=Hl.toString;function Yl(e){return Wl.call(e)}bn.exports=Yl});var se=a((kP,In)=>{"use strict";var vn=ie(),Zl=mn(),Xl=wn(),Ql="[object Null]",ep="[object Undefined]",xn=vn?vn.toStringTag:void 0;function tp(e){return e==null?e===void 0?ep:Ql:xn&&xn in Object(e)?Zl(e):Xl(e)}In.exports=tp});var X=a((RP,An)=>{"use strict";function rp(e){var t=typeof e;return e!=null&&(t=="object"||t=="function")}An.exports=rp});var Pe=a((CP,qn)=>{"use strict";var np=se(),ip=X(),sp="[object AsyncFunction]",op="[object Function]",ap="[object GeneratorFunction]",up="[object Proxy]";function cp(e){if(!ip(e))return!1;var t=np(e);return t==op||t==ap||t==sp||t==up}qn.exports=cp});var En=a((MP,Pn)=>{"use strict";var fp=U(),lp=fp["__core-js_shared__"];Pn.exports=lp});var Tn=a((NP,_n)=>{"use strict";var Dt=En(),On=(function(){var e=/[^.]+$/.exec(Dt&&Dt.keys&&Dt.keys.IE_PROTO||"");return e?"Symbol(src)_1."+e:""})();function pp(e){return!!On&&On in e}_n.exports=pp});var $t=a((DP,Sn)=>{"use strict";var dp=Function.prototype,yp=dp.toString;function hp(e){if(e!=null){try{return yp.call(e)}catch{}try{return e+""}catch{}}return""}Sn.exports=hp});var kn=a(($P,jn)=>{"use strict";var gp=Pe(),mp=Tn(),bp=X(),wp=$t(),vp=/[\\^$.*+?()[\]{}|]/g,xp=/^\[object .+?Constructor\]$/,Ip=Function.prototype,Ap=Object.prototype,qp=Ip.toString,Pp=Ap.hasOwnProperty,Ep=RegExp("^"+qp.call(Pp).replace(vp,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function Op(e){if(!bp(e)||mp(e))return!1;var t=gp(e)?Ep:xp;return t.test(wp(e))}jn.exports=Op});var Cn=a((FP,Rn)=>{"use strict";function _p(e,t){return e?.[t]}Rn.exports=_p});var Q=a((LP,Mn)=>{"use strict";var Tp=kn(),Sp=Cn();function jp(e,t){var r=Sp(e,t);return Tp(r)?r:void 0}Mn.exports=jp});var Ye=a((VP,Nn)=>{"use strict";var kp=Q(),Rp=U(),Cp=kp(Rp,"Map");Nn.exports=Cp});var Ee=a((UP,Dn)=>{"use strict";var Mp=Q(),Np=Mp(Object,"create");Dn.exports=Np});var Ln=a((BP,Fn)=>{"use strict";var $n=Ee();function Dp(){this.__data__=$n?$n(null):{},this.size=0}Fn.exports=Dp});var Un=a((GP,Vn)=>{"use strict";function $p(e){var t=this.has(e)&&delete this.__data__[e];return this.size-=t?1:0,t}Vn.exports=$p});var Gn=a((zP,Bn)=>{"use strict";var Fp=Ee(),Lp="__lodash_hash_undefined__",Vp=Object.prototype,Up=Vp.hasOwnProperty;function Bp(e){var t=this.__data__;if(Fp){var r=t[e];return r===Lp?void 0:r}return Up.call(t,e)?t[e]:void 0}Bn.exports=Bp});var Kn=a((KP,zn)=>{"use strict";var Gp=Ee(),zp=Object.prototype,Kp=zp.hasOwnProperty;function Jp(e){var t=this.__data__;return Gp?t[e]!==void 0:Kp.call(t,e)}zn.exports=Jp});var Hn=a((JP,Jn)=>{"use strict";var Hp=Ee(),Wp="__lodash_hash_undefined__";function Yp(e,t){var r=this.__data__;return this.size+=this.has(e)?0:1,r[e]=Hp&&t===void 0?Wp:t,this}Jn.exports=Yp});var Yn=a((HP,Wn)=>{"use strict";var Zp=Ln(),Xp=Un(),Qp=Gn(),ed=Kn(),td=Hn();function pe(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}pe.prototype.clear=Zp;pe.prototype.delete=Xp;pe.prototype.get=Qp;pe.prototype.has=ed;pe.prototype.set=td;Wn.exports=pe});var Qn=a((WP,Xn)=>{"use strict";var Zn=Yn(),rd=Ae(),nd=Ye();function id(){this.size=0,this.__data__={hash:new Zn,map:new(nd||rd),string:new Zn}}Xn.exports=id});var ti=a((YP,ei)=>{"use strict";function sd(e){var t=typeof e;return t=="string"||t=="number"||t=="symbol"||t=="boolean"?e!=="__proto__":e===null}ei.exports=sd});var Oe=a((ZP,ri)=>{"use strict";var od=ti();function ad(e,t){var r=e.__data__;return od(t)?r[typeof t=="string"?"string":"hash"]:r.map}ri.exports=ad});var ii=a((XP,ni)=>{"use strict";var ud=Oe();function cd(e){var t=ud(this,e).delete(e);return this.size-=t?1:0,t}ni.exports=cd});var oi=a((QP,si)=>{"use strict";var fd=Oe();function ld(e){return fd(this,e).get(e)}si.exports=ld});var ui=a((eE,ai)=>{"use strict";var pd=Oe();function dd(e){return pd(this,e).has(e)}ai.exports=dd});var fi=a((tE,ci)=>{"use strict";var yd=Oe();function hd(e,t){var r=yd(this,e),n=r.size;return r.set(e,t),this.size+=r.size==n?0:1,this}ci.exports=hd});var Ze=a((rE,li)=>{"use strict";var gd=Qn(),md=ii(),bd=oi(),wd=ui(),vd=fi();function de(e){var t=-1,r=e==null?0:e.length;for(this.clear();++t<r;){var n=e[t];this.set(n[0],n[1])}}de.prototype.clear=gd;de.prototype.delete=md;de.prototype.get=bd;de.prototype.has=wd;de.prototype.set=vd;li.exports=de});var di=a((nE,pi)=>{"use strict";var xd=Ae(),Id=Ye(),Ad=Ze(),qd=200;function Pd(e,t){var r=this.__data__;if(r instanceof xd){var n=r.__data__;if(!Id||n.length<qd-1)return n.push([e,t]),this.size=++r.size,this;r=this.__data__=new Ad(n)}return r.set(e,t),this.size=r.size,this}pi.exports=Pd});var Xe=a((iE,yi)=>{"use strict";var Ed=Ae(),Od=nn(),_d=on(),Td=un(),Sd=fn(),jd=di();function ye(e){var t=this.__data__=new Ed(e);this.size=t.size}ye.prototype.clear=Od;ye.prototype.delete=_d;ye.prototype.get=Td;ye.prototype.has=Sd;ye.prototype.set=jd;yi.exports=ye});var Qe=a((sE,hi)=>{"use strict";function kd(e,t){for(var r=-1,n=e==null?0:e.length;++r<n&&t(e[r],r,e)!==!1;);return e}hi.exports=kd});var Ft=a((oE,gi)=>{"use strict";var Rd=Q(),Cd=(function(){try{var e=Rd(Object,"defineProperty");return e({},"",{}),e}catch{}})();gi.exports=Cd});var Lt=a((aE,bi)=>{"use strict";var mi=Ft();function Md(e,t,r){t=="__proto__"&&mi?mi(e,t,{configurable:!0,enumerable:!0,value:r,writable:!0}):e[t]=r}bi.exports=Md});var Vt=a((uE,wi)=>{"use strict";var Nd=Lt(),Dd=We(),$d=Object.prototype,Fd=$d.hasOwnProperty;function Ld(e,t,r){var n=e[t];(!(Fd.call(e,t)&&Dd(n,r))||r===void 0&&!(t in e))&&Nd(e,t,r)}wi.exports=Ld});var _e=a((cE,vi)=>{"use strict";var Vd=Vt(),Ud=Lt();function Bd(e,t,r,n){var i=!r;r||(r={});for(var s=-1,o=t.length;++s<o;){var u=t[s],f=n?n(r[u],e[u],u,r,e):void 0;f===void 0&&(f=e[u]),i?Ud(r,u,f):Vd(r,u,f)}return r}vi.exports=Bd});var Ii=a((fE,xi)=>{"use strict";function Gd(e,t){for(var r=-1,n=Array(e);++r<e;)n[r]=t(r);return n}xi.exports=Gd});var G=a((lE,Ai)=>{"use strict";function zd(e){return e!=null&&typeof e=="object"}Ai.exports=zd});var Pi=a((pE,qi)=>{"use strict";var Kd=se(),Jd=G(),Hd="[object Arguments]";function Wd(e){return Jd(e)&&Kd(e)==Hd}qi.exports=Wd});var Te=a((dE,_i)=>{"use strict";var Ei=Pi(),Yd=G(),Oi=Object.prototype,Zd=Oi.hasOwnProperty,Xd=Oi.propertyIsEnumerable,Qd=Ei((function(){return arguments})())?Ei:function(e){return Yd(e)&&Zd.call(e,"callee")&&!Xd.call(e,"callee")};_i.exports=Qd});var R=a((yE,Ti)=>{"use strict";var ey=Array.isArray;Ti.exports=ey});var ji=a((hE,Si)=>{"use strict";function ty(){return!1}Si.exports=ty});var ge=a((Se,he)=>{"use strict";var ry=U(),ny=ji(),Ci=typeof Se=="object"&&Se&&!Se.nodeType&&Se,ki=Ci&&typeof he=="object"&&he&&!he.nodeType&&he,iy=ki&&ki.exports===Ci,Ri=iy?ry.Buffer:void 0,sy=Ri?Ri.isBuffer:void 0,oy=sy||ny;he.exports=oy});var Ut=a((gE,Mi)=>{"use strict";var ay=9007199254740991,uy=/^(?:0|[1-9]\d*)$/;function cy(e,t){var r=typeof e;return t=t??ay,!!t&&(r=="number"||r!="symbol"&&uy.test(e))&&e>-1&&e%1==0&&e<t}Mi.exports=cy});var et=a((mE,Ni)=>{"use strict";var fy=9007199254740991;function ly(e){return typeof e=="number"&&e>-1&&e%1==0&&e<=fy}Ni.exports=ly});var $i=a((bE,Di)=>{"use strict";var py=se(),dy=et(),yy=G(),hy="[object Arguments]",gy="[object Array]",my="[object Boolean]",by="[object Date]",wy="[object Error]",vy="[object Function]",xy="[object Map]",Iy="[object Number]",Ay="[object Object]",qy="[object RegExp]",Py="[object Set]",Ey="[object String]",Oy="[object WeakMap]",_y="[object ArrayBuffer]",Ty="[object DataView]",Sy="[object Float32Array]",jy="[object Float64Array]",ky="[object Int8Array]",Ry="[object Int16Array]",Cy="[object Int32Array]",My="[object Uint8Array]",Ny="[object Uint8ClampedArray]",Dy="[object Uint16Array]",$y="[object Uint32Array]",j={};j[Sy]=j[jy]=j[ky]=j[Ry]=j[Cy]=j[My]=j[Ny]=j[Dy]=j[$y]=!0;j[hy]=j[gy]=j[_y]=j[my]=j[Ty]=j[by]=j[wy]=j[vy]=j[xy]=j[Iy]=j[Ay]=j[qy]=j[Py]=j[Ey]=j[Oy]=!1;function Fy(e){return yy(e)&&dy(e.length)&&!!j[py(e)]}Di.exports=Fy});var tt=a((wE,Fi)=>{"use strict";function Ly(e){return function(t){return e(t)}}Fi.exports=Ly});var rt=a((je,me)=>{"use strict";var Vy=Nt(),Li=typeof je=="object"&&je&&!je.nodeType&&je,ke=Li&&typeof me=="object"&&me&&!me.nodeType&&me,Uy=ke&&ke.exports===Li,Bt=Uy&&Vy.process,By=(function(){try{var e=ke&&ke.require&&ke.require("util").types;return e||Bt&&Bt.binding&&Bt.binding("util")}catch{}})();me.exports=By});var Re=a((vE,Bi)=>{"use strict";var Gy=$i(),zy=tt(),Vi=rt(),Ui=Vi&&Vi.isTypedArray,Ky=Ui?zy(Ui):Gy;Bi.exports=Ky});var Gt=a((xE,Gi)=>{"use strict";var Jy=Ii(),Hy=Te(),Wy=R(),Yy=ge(),Zy=Ut(),Xy=Re(),Qy=Object.prototype,eh=Qy.hasOwnProperty;function th(e,t){var r=Wy(e),n=!r&&Hy(e),i=!r&&!n&&Yy(e),s=!r&&!n&&!i&&Xy(e),o=r||n||i||s,u=o?Jy(e.length,String):[],f=u.length;for(var l in e)(t||eh.call(e,l))&&!(o&&(l=="length"||i&&(l=="offset"||l=="parent")||s&&(l=="buffer"||l=="byteLength"||l=="byteOffset")||Zy(l,f)))&&u.push(l);return u}Gi.exports=th});var Ce=a((IE,zi)=>{"use strict";var rh=Object.prototype;function nh(e){var t=e&&e.constructor,r=typeof t=="function"&&t.prototype||rh;return e===r}zi.exports=nh});var zt=a((AE,Ki)=>{"use strict";function ih(e,t){return function(r){return e(t(r))}}Ki.exports=ih});var Hi=a((qE,Ji)=>{"use strict";var sh=zt(),oh=sh(Object.keys,Object);Ji.exports=oh});var nt=a((PE,Wi)=>{"use strict";var ah=Ce(),uh=Hi(),ch=Object.prototype,fh=ch.hasOwnProperty;function lh(e){if(!ah(e))return uh(e);var t=[];for(var r in Object(e))fh.call(e,r)&&r!="constructor"&&t.push(r);return t}Wi.exports=lh});var ee=a((EE,Yi)=>{"use strict";var ph=Pe(),dh=et();function yh(e){return e!=null&&dh(e.length)&&!ph(e)}Yi.exports=yh});var te=a((OE,Zi)=>{"use strict";var hh=Gt(),gh=nt(),mh=ee();function bh(e){return mh(e)?hh(e):gh(e)}Zi.exports=bh});var Qi=a((_E,Xi)=>{"use strict";var wh=_e(),vh=te();function xh(e,t){return e&&wh(t,vh(t),e)}Xi.exports=xh});var ts=a((TE,es)=>{"use strict";function Ih(e){var t=[];if(e!=null)for(var r in Object(e))t.push(r);return t}es.exports=Ih});var ns=a((SE,rs)=>{"use strict";var Ah=X(),qh=Ce(),Ph=ts(),Eh=Object.prototype,Oh=Eh.hasOwnProperty;function _h(e){if(!Ah(e))return Ph(e);var t=qh(e),r=[];for(var n in e)n=="constructor"&&(t||!Oh.call(e,n))||r.push(n);return r}rs.exports=_h});var it=a((jE,is)=>{"use strict";var Th=Gt(),Sh=ns(),jh=ee();function kh(e){return jh(e)?Th(e,!0):Sh(e)}is.exports=kh});var os=a((kE,ss)=>{"use strict";var Rh=_e(),Ch=it();function Mh(e,t){return e&&Rh(t,Ch(t),e)}ss.exports=Mh});var ls=a((Me,be)=>{"use strict";var Nh=U(),fs=typeof Me=="object"&&Me&&!Me.nodeType&&Me,as=fs&&typeof be=="object"&&be&&!be.nodeType&&be,Dh=as&&as.exports===fs,us=Dh?Nh.Buffer:void 0,cs=us?us.allocUnsafe:void 0;function $h(e,t){if(t)return e.slice();var r=e.length,n=cs?cs(r):new e.constructor(r);return e.copy(n),n}be.exports=$h});var ds=a((RE,ps)=>{"use strict";function Fh(e,t){var r=-1,n=e.length;for(t||(t=Array(n));++r<n;)t[r]=e[r];return t}ps.exports=Fh});var Kt=a((CE,ys)=>{"use strict";function Lh(e,t){for(var r=-1,n=e==null?0:e.length,i=0,s=[];++r<n;){var o=e[r];t(o,r,e)&&(s[i++]=o)}return s}ys.exports=Lh});var Jt=a((ME,hs)=>{"use strict";function Vh(){return[]}hs.exports=Vh});var st=a((NE,ms)=>{"use strict";var Uh=Kt(),Bh=Jt(),Gh=Object.prototype,zh=Gh.propertyIsEnumerable,gs=Object.getOwnPropertySymbols,Kh=gs?function(e){return e==null?[]:(e=Object(e),Uh(gs(e),function(t){return zh.call(e,t)}))}:Bh;ms.exports=Kh});var ws=a((DE,bs)=>{"use strict";var Jh=_e(),Hh=st();function Wh(e,t){return Jh(e,Hh(e),t)}bs.exports=Wh});var ot=a(($E,vs)=>{"use strict";function Yh(e,t){for(var r=-1,n=t.length,i=e.length;++r<n;)e[i+r]=t[r];return e}vs.exports=Yh});var at=a((FE,xs)=>{"use strict";var Zh=zt(),Xh=Zh(Object.getPrototypeOf,Object);xs.exports=Xh});var Ht=a((LE,Is)=>{"use strict";var Qh=ot(),eg=at(),tg=st(),rg=Jt(),ng=Object.getOwnPropertySymbols,ig=ng?function(e){for(var t=[];e;)Qh(t,tg(e)),e=eg(e);return t}:rg;Is.exports=ig});var qs=a((VE,As)=>{"use strict";var sg=_e(),og=Ht();function ag(e,t){return sg(e,og(e),t)}As.exports=ag});var Wt=a((UE,Ps)=>{"use strict";var ug=ot(),cg=R();function fg(e,t,r){var n=t(e);return cg(e)?n:ug(n,r(e))}Ps.exports=fg});var Yt=a((BE,Es)=>{"use strict";var lg=Wt(),pg=st(),dg=te();function yg(e){return lg(e,dg,pg)}Es.exports=yg});var _s=a((GE,Os)=>{"use strict";var hg=Wt(),gg=Ht(),mg=it();function bg(e){return hg(e,mg,gg)}Os.exports=bg});var Ss=a((zE,Ts)=>{"use strict";var wg=Q(),vg=U(),xg=wg(vg,"DataView");Ts.exports=xg});var ks=a((KE,js)=>{"use strict";var Ig=Q(),Ag=U(),qg=Ig(Ag,"Promise");js.exports=qg});var Zt=a((JE,Rs)=>{"use strict";var Pg=Q(),Eg=U(),Og=Pg(Eg,"Set");Rs.exports=Og});var Ms=a((HE,Cs)=>{"use strict";var _g=Q(),Tg=U(),Sg=_g(Tg,"WeakMap");Cs.exports=Sg});var ae=a((WE,Us)=>{"use strict";var Xt=Ss(),Qt=Ye(),er=ks(),tr=Zt(),rr=Ms(),Vs=se(),we=$t(),Ns="[object Map]",jg="[object Object]",Ds="[object Promise]",$s="[object Set]",Fs="[object WeakMap]",Ls="[object DataView]",kg=we(Xt),Rg=we(Qt),Cg=we(er),Mg=we(tr),Ng=we(rr),oe=Vs;(Xt&&oe(new Xt(new ArrayBuffer(1)))!=Ls||Qt&&oe(new Qt)!=Ns||er&&oe(er.resolve())!=Ds||tr&&oe(new tr)!=$s||rr&&oe(new rr)!=Fs)&&(oe=function(e){var t=Vs(e),r=t==jg?e.constructor:void 0,n=r?we(r):"";if(n)switch(n){case kg:return Ls;case Rg:return Ns;case Cg:return Ds;case Mg:return $s;case Ng:return Fs}return t});Us.exports=oe});var Gs=a((YE,Bs)=>{"use strict";var Dg=Object.prototype,$g=Dg.hasOwnProperty;function Fg(e){var t=e.length,r=new e.constructor(t);return t&&typeof e[0]=="string"&&$g.call(e,"index")&&(r.index=e.index,r.input=e.input),r}Bs.exports=Fg});var nr=a((ZE,zs)=>{"use strict";var Lg=U(),Vg=Lg.Uint8Array;zs.exports=Vg});var ut=a((XE,Js)=>{"use strict";var Ks=nr();function Ug(e){var t=new e.constructor(e.byteLength);return new Ks(t).set(new Ks(e)),t}Js.exports=Ug});var Ws=a((QE,Hs)=>{"use strict";var Bg=ut();function Gg(e,t){var r=t?Bg(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.byteLength)}Hs.exports=Gg});var Zs=a((eO,Ys)=>{"use strict";var zg=/\w*$/;function Kg(e){var t=new e.constructor(e.source,zg.exec(e));return t.lastIndex=e.lastIndex,t}Ys.exports=Kg});var ro=a((tO,to)=>{"use strict";var Xs=ie(),Qs=Xs?Xs.prototype:void 0,eo=Qs?Qs.valueOf:void 0;function Jg(e){return eo?Object(eo.call(e)):{}}to.exports=Jg});var io=a((rO,no)=>{"use strict";var Hg=ut();function Wg(e,t){var r=t?Hg(e.buffer):e.buffer;return new e.constructor(r,e.byteOffset,e.length)}no.exports=Wg});var oo=a((nO,so)=>{"use strict";var Yg=ut(),Zg=Ws(),Xg=Zs(),Qg=ro(),em=io(),tm="[object Boolean]",rm="[object Date]",nm="[object Map]",im="[object Number]",sm="[object RegExp]",om="[object Set]",am="[object String]",um="[object Symbol]",cm="[object ArrayBuffer]",fm="[object DataView]",lm="[object Float32Array]",pm="[object Float64Array]",dm="[object Int8Array]",ym="[object Int16Array]",hm="[object Int32Array]",gm="[object Uint8Array]",mm="[object Uint8ClampedArray]",bm="[object Uint16Array]",wm="[object Uint32Array]";function vm(e,t,r){var n=e.constructor;switch(t){case cm:return Yg(e);case tm:case rm:return new n(+e);case fm:return Zg(e,r);case lm:case pm:case dm:case ym:case hm:case gm:case mm:case bm:case wm:return em(e,r);case nm:return new n;case im:case am:return new n(e);case sm:return Xg(e);case om:return new n;case um:return Qg(e)}}so.exports=vm});var ir=a((iO,uo)=>{"use strict";var xm=X(),ao=Object.create,Im=(function(){function e(){}return function(t){if(!xm(t))return{};if(ao)return ao(t);e.prototype=t;var r=new e;return e.prototype=void 0,r}})();uo.exports=Im});var fo=a((sO,co)=>{"use strict";var Am=ir(),qm=at(),Pm=Ce();function Em(e){return typeof e.constructor=="function"&&!Pm(e)?Am(qm(e)):{}}co.exports=Em});var po=a((oO,lo)=>{"use strict";var Om=ae(),_m=G(),Tm="[object Map]";function Sm(e){return _m(e)&&Om(e)==Tm}lo.exports=Sm});var mo=a((aO,go)=>{"use strict";var jm=po(),km=tt(),yo=rt(),ho=yo&&yo.isMap,Rm=ho?km(ho):jm;go.exports=Rm});var wo=a((uO,bo)=>{"use strict";var Cm=ae(),Mm=G(),Nm="[object Set]";function Dm(e){return Mm(e)&&Cm(e)==Nm}bo.exports=Dm});var Ao=a((cO,Io)=>{"use strict";var $m=wo(),Fm=tt(),vo=rt(),xo=vo&&vo.isSet,Lm=xo?Fm(xo):$m;Io.exports=Lm});var _o=a((fO,Oo)=>{"use strict";var Vm=Xe(),Um=Qe(),Bm=Vt(),Gm=Qi(),zm=os(),Km=ls(),Jm=ds(),Hm=ws(),Wm=qs(),Ym=Yt(),Zm=_s(),Xm=ae(),Qm=Gs(),eb=oo(),tb=fo(),rb=R(),nb=ge(),ib=mo(),sb=X(),ob=Ao(),ab=te(),ub=it(),cb=1,fb=2,lb=4,qo="[object Arguments]",pb="[object Array]",db="[object Boolean]",yb="[object Date]",hb="[object Error]",Po="[object Function]",gb="[object GeneratorFunction]",mb="[object Map]",bb="[object Number]",Eo="[object Object]",wb="[object RegExp]",vb="[object Set]",xb="[object String]",Ib="[object Symbol]",Ab="[object WeakMap]",qb="[object ArrayBuffer]",Pb="[object DataView]",Eb="[object Float32Array]",Ob="[object Float64Array]",_b="[object Int8Array]",Tb="[object Int16Array]",Sb="[object Int32Array]",jb="[object Uint8Array]",kb="[object Uint8ClampedArray]",Rb="[object Uint16Array]",Cb="[object Uint32Array]",S={};S[qo]=S[pb]=S[qb]=S[Pb]=S[db]=S[yb]=S[Eb]=S[Ob]=S[_b]=S[Tb]=S[Sb]=S[mb]=S[bb]=S[Eo]=S[wb]=S[vb]=S[xb]=S[Ib]=S[jb]=S[kb]=S[Rb]=S[Cb]=!0;S[hb]=S[Po]=S[Ab]=!1;function ct(e,t,r,n,i,s){var o,u=t&cb,f=t&fb,l=t&lb;if(r&&(o=i?r(e,n,i,s):r(e)),o!==void 0)return o;if(!sb(e))return e;var p=rb(e);if(p){if(o=Qm(e),!u)return Jm(e,o)}else{var b=Xm(e),c=b==Po||b==gb;if(nb(e))return Km(e,u);if(b==Eo||b==qo||c&&!i){if(o=f||c?{}:tb(e),!u)return f?Wm(e,zm(o,e)):Hm(e,Gm(o,e))}else{if(!S[b])return i?e:{};o=eb(e,b,u)}}s||(s=new Vm);var w=s.get(e);if(w)return w;s.set(e,o),ob(e)?e.forEach(function(y){o.add(ct(y,t,r,y,e,s))}):ib(e)&&e.forEach(function(y,d){o.set(d,ct(y,t,r,d,e,s))});var h=l?f?Zm:Ym:f?ub:ab,m=p?void 0:h(e);return Um(m||e,function(y,d){m&&(d=y,y=e[d]),Bm(o,d,ct(y,t,r,d,e,s))}),o}Oo.exports=ct});var So=a((lO,To)=>{"use strict";var Mb=_o(),Nb=4;function Db(e){return Mb(e,Nb)}To.exports=Db});var sr=a((pO,jo)=>{"use strict";function $b(e){return function(){return e}}jo.exports=$b});var Ro=a((dO,ko)=>{"use strict";function Fb(e){return function(t,r,n){for(var i=-1,s=Object(t),o=n(t),u=o.length;u--;){var f=o[e?u:++i];if(r(s[f],f,s)===!1)break}return t}}ko.exports=Fb});var Mo=a((yO,Co)=>{"use strict";var Lb=Ro(),Vb=Lb();Co.exports=Vb});var or=a((hO,No)=>{"use strict";var Ub=Mo(),Bb=te();function Gb(e,t){return e&&Ub(e,t,Bb)}No.exports=Gb});var $o=a((gO,Do)=>{"use strict";var zb=ee();function Kb(e,t){return function(r,n){if(r==null)return r;if(!zb(r))return e(r,n);for(var i=r.length,s=t?i:-1,o=Object(r);(t?s--:++s<i)&&n(o[s],s,o)!==!1;);return r}}Do.exports=Kb});var Ne=a((mO,Fo)=>{"use strict";var Jb=or(),Hb=$o(),Wb=Hb(Jb);Fo.exports=Wb});var De=a((bO,Lo)=>{"use strict";function Yb(e){return e}Lo.exports=Yb});var Uo=a((wO,Vo)=>{"use strict";var Zb=De();function Xb(e){return typeof e=="function"?e:Zb}Vo.exports=Xb});var Go=a((vO,Bo)=>{"use strict";var Qb=Qe(),ew=Ne(),tw=Uo(),rw=R();function nw(e,t){var r=rw(e)?Qb:ew;return r(e,tw(t))}Bo.exports=nw});var Ko=a((xO,zo)=>{"use strict";zo.exports=Go()});var Ho=a((IO,Jo)=>{"use strict";var iw=Ne();function sw(e,t){var r=[];return iw(e,function(n,i,s){t(n,i,s)&&r.push(n)}),r}Jo.exports=sw});var Yo=a((AO,Wo)=>{"use strict";var ow="__lodash_hash_undefined__";function aw(e){return this.__data__.set(e,ow),this}Wo.exports=aw});var Xo=a((qO,Zo)=>{"use strict";function uw(e){return this.__data__.has(e)}Zo.exports=uw});var ar=a((PO,Qo)=>{"use strict";var cw=Ze(),fw=Yo(),lw=Xo();function ft(e){var t=-1,r=e==null?0:e.length;for(this.__data__=new cw;++t<r;)this.add(e[t])}ft.prototype.add=ft.prototype.push=fw;ft.prototype.has=lw;Qo.exports=ft});var ta=a((EO,ea)=>{"use strict";function pw(e,t){for(var r=-1,n=e==null?0:e.length;++r<n;)if(t(e[r],r,e))return!0;return!1}ea.exports=pw});var ur=a((OO,ra)=>{"use strict";function dw(e,t){return e.has(t)}ra.exports=dw});var cr=a((_O,na)=>{"use strict";var yw=ar(),hw=ta(),gw=ur(),mw=1,bw=2;function ww(e,t,r,n,i,s){var o=r&mw,u=e.length,f=t.length;if(u!=f&&!(o&&f>u))return!1;var l=s.get(e),p=s.get(t);if(l&&p)return l==t&&p==e;var b=-1,c=!0,w=r&bw?new yw:void 0;for(s.set(e,t),s.set(t,e);++b<u;){var h=e[b],m=t[b];if(n)var y=o?n(m,h,b,t,e,s):n(h,m,b,e,t,s);if(y!==void 0){if(y)continue;c=!1;break}if(w){if(!hw(t,function(d,v){if(!gw(w,v)&&(h===d||i(h,d,r,n,s)))return w.push(v)})){c=!1;break}}else if(!(h===m||i(h,m,r,n,s))){c=!1;break}}return s.delete(e),s.delete(t),c}na.exports=ww});var sa=a((TO,ia)=>{"use strict";function vw(e){var t=-1,r=Array(e.size);return e.forEach(function(n,i){r[++t]=[i,n]}),r}ia.exports=vw});var lt=a((SO,oa)=>{"use strict";function xw(e){var t=-1,r=Array(e.size);return e.forEach(function(n){r[++t]=n}),r}oa.exports=xw});var la=a((jO,fa)=>{"use strict";var aa=ie(),ua=nr(),Iw=We(),Aw=cr(),qw=sa(),Pw=lt(),Ew=1,Ow=2,_w="[object Boolean]",Tw="[object Date]",Sw="[object Error]",jw="[object Map]",kw="[object Number]",Rw="[object RegExp]",Cw="[object Set]",Mw="[object String]",Nw="[object Symbol]",Dw="[object ArrayBuffer]",$w="[object DataView]",ca=aa?aa.prototype:void 0,fr=ca?ca.valueOf:void 0;function Fw(e,t,r,n,i,s,o){switch(r){case $w:if(e.byteLength!=t.byteLength||e.byteOffset!=t.byteOffset)return!1;e=e.buffer,t=t.buffer;case Dw:return!(e.byteLength!=t.byteLength||!s(new ua(e),new ua(t)));case _w:case Tw:case kw:return Iw(+e,+t);case Sw:return e.name==t.name&&e.message==t.message;case Rw:case Mw:return e==t+"";case jw:var u=qw;case Cw:var f=n&Ew;if(u||(u=Pw),e.size!=t.size&&!f)return!1;var l=o.get(e);if(l)return l==t;n|=Ow,o.set(e,t);var p=Aw(u(e),u(t),n,i,s,o);return o.delete(e),p;case Nw:if(fr)return fr.call(e)==fr.call(t)}return!1}fa.exports=Fw});var ya=a((kO,da)=>{"use strict";var pa=Yt(),Lw=1,Vw=Object.prototype,Uw=Vw.hasOwnProperty;function Bw(e,t,r,n,i,s){var o=r&Lw,u=pa(e),f=u.length,l=pa(t),p=l.length;if(f!=p&&!o)return!1;for(var b=f;b--;){var c=u[b];if(!(o?c in t:Uw.call(t,c)))return!1}var w=s.get(e),h=s.get(t);if(w&&h)return w==t&&h==e;var m=!0;s.set(e,t),s.set(t,e);for(var y=o;++b<f;){c=u[b];var d=e[c],v=t[c];if(n)var x=o?n(v,d,c,t,e,s):n(d,v,c,e,t,s);if(!(x===void 0?d===v||i(d,v,r,n,s):x)){m=!1;break}y||(y=c=="constructor")}if(m&&!y){var _=e.constructor,T=t.constructor;_!=T&&"constructor"in e&&"constructor"in t&&!(typeof _=="function"&&_ instanceof _&&typeof T=="function"&&T instanceof T)&&(m=!1)}return s.delete(e),s.delete(t),m}da.exports=Bw});var Ia=a((RO,xa)=>{"use strict";var lr=Xe(),Gw=cr(),zw=la(),Kw=ya(),ha=ae(),ga=R(),ma=ge(),Jw=Re(),Hw=1,ba="[object Arguments]",wa="[object Array]",pt="[object Object]",Ww=Object.prototype,va=Ww.hasOwnProperty;function Yw(e,t,r,n,i,s){var o=ga(e),u=ga(t),f=o?wa:ha(e),l=u?wa:ha(t);f=f==ba?pt:f,l=l==ba?pt:l;var p=f==pt,b=l==pt,c=f==l;if(c&&ma(e)){if(!ma(t))return!1;o=!0,p=!1}if(c&&!p)return s||(s=new lr),o||Jw(e)?Gw(e,t,r,n,i,s):zw(e,t,f,r,n,i,s);if(!(r&Hw)){var w=p&&va.call(e,"__wrapped__"),h=b&&va.call(t,"__wrapped__");if(w||h){var m=w?e.value():e,y=h?t.value():t;return s||(s=new lr),i(m,y,r,n,s)}}return c?(s||(s=new lr),Kw(e,t,r,n,i,s)):!1}xa.exports=Yw});var pr=a((CO,Pa)=>{"use strict";var Zw=Ia(),Aa=G();function qa(e,t,r,n,i){return e===t?!0:e==null||t==null||!Aa(e)&&!Aa(t)?e!==e&&t!==t:Zw(e,t,r,n,qa,i)}Pa.exports=qa});var Oa=a((MO,Ea)=>{"use strict";var Xw=Xe(),Qw=pr(),ev=1,tv=2;function rv(e,t,r,n){var i=r.length,s=i,o=!n;if(e==null)return!s;for(e=Object(e);i--;){var u=r[i];if(o&&u[2]?u[1]!==e[u[0]]:!(u[0]in e))return!1}for(;++i<s;){u=r[i];var f=u[0],l=e[f],p=u[1];if(o&&u[2]){if(l===void 0&&!(f in e))return!1}else{var b=new Xw;if(n)var c=n(l,p,f,e,t,b);if(!(c===void 0?Qw(p,l,ev|tv,n,b):c))return!1}}return!0}Ea.exports=rv});var dr=a((NO,_a)=>{"use strict";var nv=X();function iv(e){return e===e&&!nv(e)}_a.exports=iv});var Sa=a((DO,Ta)=>{"use strict";var sv=dr(),ov=te();function av(e){for(var t=ov(e),r=t.length;r--;){var n=t[r],i=e[n];t[r]=[n,i,sv(i)]}return t}Ta.exports=av});var yr=a(($O,ja)=>{"use strict";function uv(e,t){return function(r){return r==null?!1:r[e]===t&&(t!==void 0||e in Object(r))}}ja.exports=uv});var Ra=a((FO,ka)=>{"use strict";var cv=Oa(),fv=Sa(),lv=yr();function pv(e){var t=fv(e);return t.length==1&&t[0][2]?lv(t[0][0],t[0][1]):function(r){return r===e||cv(r,e,t)}}ka.exports=pv});var dt=a((LO,Ca)=>{"use strict";var dv=se(),yv=G(),hv="[object Symbol]";function gv(e){return typeof e=="symbol"||yv(e)&&dv(e)==hv}Ca.exports=gv});var yt=a((VO,Ma)=>{"use strict";var mv=R(),bv=dt(),wv=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,vv=/^\w*$/;function xv(e,t){if(mv(e))return!1;var r=typeof e;return r=="number"||r=="symbol"||r=="boolean"||e==null||bv(e)?!0:vv.test(e)||!wv.test(e)||t!=null&&e in Object(t)}Ma.exports=xv});var $a=a((UO,Da)=>{"use strict";var Na=Ze(),Iv="Expected a function";function hr(e,t){if(typeof e!="function"||t!=null&&typeof t!="function")throw new TypeError(Iv);var r=function(){var n=arguments,i=t?t.apply(this,n):n[0],s=r.cache;if(s.has(i))return s.get(i);var o=e.apply(this,n);return r.cache=s.set(i,o)||s,o};return r.cache=new(hr.Cache||Na),r}hr.Cache=Na;Da.exports=hr});var La=a((BO,Fa)=>{"use strict";var Av=$a(),qv=500;function Pv(e){var t=Av(e,function(n){return r.size===qv&&r.clear(),n}),r=t.cache;return t}Fa.exports=Pv});var Ua=a((GO,Va)=>{"use strict";var Ev=La(),Ov=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,_v=/\\(\\)?/g,Tv=Ev(function(e){var t=[];return e.charCodeAt(0)===46&&t.push(""),e.replace(Ov,function(r,n,i,s){t.push(i?s.replace(_v,"$1"):n||r)}),t});Va.exports=Tv});var ht=a((zO,Ba)=>{"use strict";function Sv(e,t){for(var r=-1,n=e==null?0:e.length,i=Array(n);++r<n;)i[r]=t(e[r],r,e);return i}Ba.exports=Sv});var Wa=a((KO,Ha)=>{"use strict";var Ga=ie(),jv=ht(),kv=R(),Rv=dt(),Cv=1/0,za=Ga?Ga.prototype:void 0,Ka=za?za.toString:void 0;function Ja(e){if(typeof e=="string")return e;if(kv(e))return jv(e,Ja)+"";if(Rv(e))return Ka?Ka.call(e):"";var t=e+"";return t=="0"&&1/e==-Cv?"-0":t}Ha.exports=Ja});var Za=a((JO,Ya)=>{"use strict";var Mv=Wa();function Nv(e){return e==null?"":Mv(e)}Ya.exports=Nv});var gr=a((HO,Xa)=>{"use strict";var Dv=R(),$v=yt(),Fv=Ua(),Lv=Za();function Vv(e,t){return Dv(e)?e:$v(e,t)?[e]:Fv(Lv(e))}Xa.exports=Vv});var $e=a((WO,Qa)=>{"use strict";var Uv=dt(),Bv=1/0;function Gv(e){if(typeof e=="string"||Uv(e))return e;var t=e+"";return t=="0"&&1/e==-Bv?"-0":t}Qa.exports=Gv});var mr=a((YO,eu)=>{"use strict";var zv=gr(),Kv=$e();function Jv(e,t){t=zv(t,e);for(var r=0,n=t.length;e!=null&&r<n;)e=e[Kv(t[r++])];return r&&r==n?e:void 0}eu.exports=Jv});var ru=a((ZO,tu)=>{"use strict";var Hv=mr();function Wv(e,t,r){var n=e==null?void 0:Hv(e,t);return n===void 0?r:n}tu.exports=Wv});var iu=a((XO,nu)=>{"use strict";function Yv(e,t){return e!=null&&t in Object(e)}nu.exports=Yv});var br=a((QO,su)=>{"use strict";var Zv=gr(),Xv=Te(),Qv=R(),ex=Ut(),tx=et(),rx=$e();function nx(e,t,r){t=Zv(t,e);for(var n=-1,i=t.length,s=!1;++n<i;){var o=rx(t[n]);if(!(s=e!=null&&r(e,o)))break;e=e[o]}return s||++n!=i?s:(i=e==null?0:e.length,!!i&&tx(i)&&ex(o,i)&&(Qv(e)||Xv(e)))}su.exports=nx});var au=a((e_,ou)=>{"use strict";var ix=iu(),sx=br();function ox(e,t){return e!=null&&sx(e,t,ix)}ou.exports=ox});var cu=a((t_,uu)=>{"use strict";var ax=pr(),ux=ru(),cx=au(),fx=yt(),lx=dr(),px=yr(),dx=$e(),yx=1,hx=2;function gx(e,t){return fx(e)&&lx(t)?px(dx(e),t):function(r){var n=ux(r,e);return n===void 0&&n===t?cx(r,e):ax(t,n,yx|hx)}}uu.exports=gx});var wr=a((r_,fu)=>{"use strict";function mx(e){return function(t){return t?.[e]}}fu.exports=mx});var pu=a((n_,lu)=>{"use strict";var bx=mr();function wx(e){return function(t){return bx(t,e)}}lu.exports=wx});var yu=a((i_,du)=>{"use strict";var vx=wr(),xx=pu(),Ix=yt(),Ax=$e();function qx(e){return Ix(e)?vx(Ax(e)):xx(e)}du.exports=qx});var Fe=a((s_,hu)=>{"use strict";var Px=Ra(),Ex=cu(),Ox=De(),_x=R(),Tx=yu();function Sx(e){return typeof e=="function"?e:e==null?Ox:typeof e=="object"?_x(e)?Ex(e[0],e[1]):Px(e):Tx(e)}hu.exports=Sx});var mu=a((o_,gu)=>{"use strict";var jx=Kt(),kx=Ho(),Rx=Fe(),Cx=R();function Mx(e,t){var r=Cx(e)?jx:kx;return r(e,Rx(t,3))}gu.exports=Mx});var wu=a((a_,bu)=>{"use strict";var Nx=Object.prototype,Dx=Nx.hasOwnProperty;function $x(e,t){return e!=null&&Dx.call(e,t)}bu.exports=$x});var xu=a((u_,vu)=>{"use strict";var Fx=wu(),Lx=br();function Vx(e,t){return e!=null&&Lx(e,t,Fx)}vu.exports=Vx});var Au=a((c_,Iu)=>{"use strict";var Ux=nt(),Bx=ae(),Gx=Te(),zx=R(),Kx=ee(),Jx=ge(),Hx=Ce(),Wx=Re(),Yx="[object Map]",Zx="[object Set]",Xx=Object.prototype,Qx=Xx.hasOwnProperty;function eI(e){if(e==null)return!0;if(Kx(e)&&(zx(e)||typeof e=="string"||typeof e.splice=="function"||Jx(e)||Wx(e)||Gx(e)))return!e.length;var t=Bx(e);if(t==Yx||t==Zx)return!e.size;if(Hx(e))return!Ux(e).length;for(var r in e)if(Qx.call(e,r))return!1;return!0}Iu.exports=eI});var Pu=a((f_,qu)=>{"use strict";function tI(e){return e===void 0}qu.exports=tI});var Ou=a((l_,Eu)=>{"use strict";var rI=Ne(),nI=ee();function iI(e,t){var r=-1,n=nI(e)?Array(e.length):[];return rI(e,function(i,s,o){n[++r]=t(i,s,o)}),n}Eu.exports=iI});var Tu=a((p_,_u)=>{"use strict";var sI=ht(),oI=Fe(),aI=Ou(),uI=R();function cI(e,t){var r=uI(e)?sI:aI;return r(e,oI(t,3))}_u.exports=cI});var ju=a((d_,Su)=>{"use strict";function fI(e,t,r,n){var i=-1,s=e==null?0:e.length;for(n&&s&&(r=e[++i]);++i<s;)r=t(r,e[i],i,e);return r}Su.exports=fI});var Ru=a((y_,ku)=>{"use strict";function lI(e,t,r,n,i){return i(e,function(s,o,u){r=n?(n=!1,s):t(r,s,o,u)}),r}ku.exports=lI});var Mu=a((h_,Cu)=>{"use strict";var pI=ju(),dI=Ne(),yI=Fe(),hI=Ru(),gI=R();function mI(e,t,r){var n=gI(e)?pI:hI,i=arguments.length<3;return n(e,yI(t,4),r,i,dI)}Cu.exports=mI});var Du=a((g_,Nu)=>{"use strict";var bI=se(),wI=R(),vI=G(),xI="[object String]";function II(e){return typeof e=="string"||!wI(e)&&vI(e)&&bI(e)==xI}Nu.exports=II});var Fu=a((m_,$u)=>{"use strict";var AI=wr(),qI=AI("length");$u.exports=qI});var Vu=a((b_,Lu)=>{"use strict";var PI="\\ud800-\\udfff",EI="\\u0300-\\u036f",OI="\\ufe20-\\ufe2f",_I="\\u20d0-\\u20ff",TI=EI+OI+_I,SI="\\ufe0e\\ufe0f",jI="\\u200d",kI=RegExp("["+jI+PI+TI+SI+"]");function RI(e){return kI.test(e)}Lu.exports=RI});var Yu=a((w_,Wu)=>{"use strict";var Bu="\\ud800-\\udfff",CI="\\u0300-\\u036f",MI="\\ufe20-\\ufe2f",NI="\\u20d0-\\u20ff",DI=CI+MI+NI,$I="\\ufe0e\\ufe0f",FI="["+Bu+"]",vr="["+DI+"]",xr="\\ud83c[\\udffb-\\udfff]",LI="(?:"+vr+"|"+xr+")",Gu="[^"+Bu+"]",zu="(?:\\ud83c[\\udde6-\\uddff]){2}",Ku="[\\ud800-\\udbff][\\udc00-\\udfff]",VI="\\u200d",Ju=LI+"?",Hu="["+$I+"]?",UI="(?:"+VI+"(?:"+[Gu,zu,Ku].join("|")+")"+Hu+Ju+")*",BI=Hu+Ju+UI,GI="(?:"+[Gu+vr+"?",vr,zu,Ku,FI].join("|")+")",Uu=RegExp(xr+"(?="+xr+")|"+GI+BI,"g");function zI(e){for(var t=Uu.lastIndex=0;Uu.test(e);)++t;return t}Wu.exports=zI});var Xu=a((v_,Zu)=>{"use strict";var KI=Fu(),JI=Vu(),HI=Yu();function WI(e){return JI(e)?HI(e):KI(e)}Zu.exports=WI});var ec=a((x_,Qu)=>{"use strict";var YI=nt(),ZI=ae(),XI=ee(),QI=Du(),eA=Xu(),tA="[object Map]",rA="[object Set]";function nA(e){if(e==null)return 0;if(XI(e))return QI(e)?eA(e):e.length;var t=ZI(e);return t==tA||t==rA?e.size:YI(e).length}Qu.exports=nA});var rc=a((I_,tc)=>{"use strict";var iA=Qe(),sA=ir(),oA=or(),aA=Fe(),uA=at(),cA=R(),fA=ge(),lA=Pe(),pA=X(),dA=Re();function yA(e,t,r){var n=cA(e),i=n||fA(e)||dA(e);if(t=aA(t,4),r==null){var s=e&&e.constructor;i?r=n?new s:[]:pA(e)?r=lA(s)?sA(uA(e)):{}:r={}}return(i?iA:oA)(e,function(o,u,f){return t(r,o,u,f)}),r}tc.exports=yA});var oc=a((A_,sc)=>{"use strict";var nc=ie(),hA=Te(),gA=R(),ic=nc?nc.isConcatSpreadable:void 0;function mA(e){return gA(e)||hA(e)||!!(ic&&e&&e[ic])}sc.exports=mA});var cc=a((q_,uc)=>{"use strict";var bA=ot(),wA=oc();function ac(e,t,r,n,i){var s=-1,o=e.length;for(r||(r=wA),i||(i=[]);++s<o;){var u=e[s];t>0&&r(u)?t>1?ac(u,t-1,r,n,i):bA(i,u):n||(i[i.length]=u)}return i}uc.exports=ac});var lc=a((P_,fc)=>{"use strict";function vA(e,t,r){switch(r.length){case 0:return e.call(t);case 1:return e.call(t,r[0]);case 2:return e.call(t,r[0],r[1]);case 3:return e.call(t,r[0],r[1],r[2])}return e.apply(t,r)}fc.exports=vA});var yc=a((E_,dc)=>{"use strict";var xA=lc(),pc=Math.max;function IA(e,t,r){return t=pc(t===void 0?e.length-1:t,0),function(){for(var n=arguments,i=-1,s=pc(n.length-t,0),o=Array(s);++i<s;)o[i]=n[t+i];i=-1;for(var u=Array(t+1);++i<t;)u[i]=n[i];return u[t]=r(o),xA(e,this,u)}}dc.exports=IA});var mc=a((O_,gc)=>{"use strict";var AA=sr(),hc=Ft(),qA=De(),PA=hc?function(e,t){return hc(e,"toString",{configurable:!0,enumerable:!1,value:AA(t),writable:!0})}:qA;gc.exports=PA});var wc=a((__,bc)=>{"use strict";var EA=800,OA=16,_A=Date.now;function TA(e){var t=0,r=0;return function(){var n=_A(),i=OA-(n-r);if(r=n,i>0){if(++t>=EA)return arguments[0]}else t=0;return e.apply(void 0,arguments)}}bc.exports=TA});var xc=a((T_,vc)=>{"use strict";var SA=mc(),jA=wc(),kA=jA(SA);vc.exports=kA});var Ac=a((S_,Ic)=>{"use strict";var RA=De(),CA=yc(),MA=xc();function NA(e,t){return MA(CA(e,t,RA),e+"")}Ic.exports=NA});var Pc=a((j_,qc)=>{"use strict";function DA(e,t,r,n){for(var i=e.length,s=r+(n?1:-1);n?s--:++s<i;)if(t(e[s],s,e))return s;return-1}qc.exports=DA});var Oc=a((k_,Ec)=>{"use strict";function $A(e){return e!==e}Ec.exports=$A});var Tc=a((R_,_c)=>{"use strict";function FA(e,t,r){for(var n=r-1,i=e.length;++n<i;)if(e[n]===t)return n;return-1}_c.exports=FA});var jc=a((C_,Sc)=>{"use strict";var LA=Pc(),VA=Oc(),UA=Tc();function BA(e,t,r){return t===t?UA(e,t,r):LA(e,VA,r)}Sc.exports=BA});var Rc=a((M_,kc)=>{"use strict";var GA=jc();function zA(e,t){var r=e==null?0:e.length;return!!r&&GA(e,t,0)>-1}kc.exports=zA});var Mc=a((N_,Cc)=>{"use strict";function KA(e,t,r){for(var n=-1,i=e==null?0:e.length;++n<i;)if(r(t,e[n]))return!0;return!1}Cc.exports=KA});var Dc=a((D_,Nc)=>{"use strict";function JA(){}Nc.exports=JA});var Fc=a(($_,$c)=>{"use strict";var Ir=Zt(),HA=Dc(),WA=lt(),YA=1/0,ZA=Ir&&1/WA(new Ir([,-0]))[1]==YA?function(e){return new Ir(e)}:HA;$c.exports=ZA});var Vc=a((F_,Lc)=>{"use strict";var XA=ar(),QA=Rc(),eq=Mc(),tq=ur(),rq=Fc(),nq=lt(),iq=200;function sq(e,t,r){var n=-1,i=QA,s=e.length,o=!0,u=[],f=u;if(r)o=!1,i=eq;else if(s>=iq){var l=t?null:rq(e);if(l)return nq(l);o=!1,i=tq,f=new XA}else f=t?[]:u;e:for(;++n<s;){var p=e[n],b=t?t(p):p;if(p=r||p!==0?p:0,o&&b===b){for(var c=f.length;c--;)if(f[c]===b)continue e;t&&f.push(b),u.push(p)}else i(f,b,r)||(f!==u&&f.push(b),u.push(p))}return u}Lc.exports=sq});var Bc=a((L_,Uc)=>{"use strict";var oq=ee(),aq=G();function uq(e){return aq(e)&&oq(e)}Uc.exports=uq});var zc=a((V_,Gc)=>{"use strict";var cq=cc(),fq=Ac(),lq=Vc(),pq=Bc(),dq=fq(function(e){return lq(cq(e,1,pq,!0))});Gc.exports=dq});var Jc=a((U_,Kc)=>{"use strict";var yq=ht();function hq(e,t){return yq(t,function(r){return e[r]})}Kc.exports=hq});var Wc=a((B_,Hc)=>{"use strict";var gq=Jc(),mq=te();function bq(e){return e==null?[]:gq(e,mq(e))}Hc.exports=bq});var N=a((G_,Yc)=>{"use strict";var gt;if(typeof require=="function")try{gt={clone:So(),constant:sr(),each:Ko(),filter:mu(),has:xu(),isArray:R(),isEmpty:Au(),isFunction:Pe(),isUndefined:Pu(),keys:te(),map:Tu(),reduce:Mu(),size:ec(),transform:rc(),union:zc(),values:Wc()}}catch{}gt||(gt=window._);Yc.exports=gt});var mt=a((z_,ef)=>{"use strict";var q=N();ef.exports=O;var wq="\0",ue="\0",Zc="";function O(e){this._isDirected=q.has(e,"directed")?e.directed:!0,this._isMultigraph=q.has(e,"multigraph")?e.multigraph:!1,this._isCompound=q.has(e,"compound")?e.compound:!1,this._label=void 0,this._defaultNodeLabelFn=q.constant(void 0),this._defaultEdgeLabelFn=q.constant(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[ue]={}),this._in={},this._preds={},this._out={},this._sucs={},this._edgeObjs={},this._edgeLabels={}}O.prototype._nodeCount=0;O.prototype._edgeCount=0;O.prototype.isDirected=function(){return this._isDirected};O.prototype.isMultigraph=function(){return this._isMultigraph};O.prototype.isCompound=function(){return this._isCompound};O.prototype.setGraph=function(e){return this._label=e,this};O.prototype.graph=function(){return this._label};O.prototype.setDefaultNodeLabel=function(e){return q.isFunction(e)||(e=q.constant(e)),this._defaultNodeLabelFn=e,this};O.prototype.nodeCount=function(){return this._nodeCount};O.prototype.nodes=function(){return q.keys(this._nodes)};O.prototype.sources=function(){var e=this;return q.filter(this.nodes(),function(t){return q.isEmpty(e._in[t])})};O.prototype.sinks=function(){var e=this;return q.filter(this.nodes(),function(t){return q.isEmpty(e._out[t])})};O.prototype.setNodes=function(e,t){var r=arguments,n=this;return q.each(e,function(i){r.length>1?n.setNode(i,t):n.setNode(i)}),this};O.prototype.setNode=function(e,t){return q.has(this._nodes,e)?(arguments.length>1&&(this._nodes[e]=t),this):(this._nodes[e]=arguments.length>1?t:this._defaultNodeLabelFn(e),this._isCompound&&(this._parent[e]=ue,this._children[e]={},this._children[ue][e]=!0),this._in[e]={},this._preds[e]={},this._out[e]={},this._sucs[e]={},++this._nodeCount,this)};O.prototype.node=function(e){return this._nodes[e]};O.prototype.hasNode=function(e){return q.has(this._nodes,e)};O.prototype.removeNode=function(e){var t=this;if(q.has(this._nodes,e)){var r=function(n){t.removeEdge(t._edgeObjs[n])};delete this._nodes[e],this._isCompound&&(this._removeFromParentsChildList(e),delete this._parent[e],q.each(this.children(e),function(n){t.setParent(n)}),delete this._children[e]),q.each(q.keys(this._in[e]),r),delete this._in[e],delete this._preds[e],q.each(q.keys(this._out[e]),r),delete this._out[e],delete this._sucs[e],--this._nodeCount}return this};O.prototype.setParent=function(e,t){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(q.isUndefined(t))t=ue;else{t+="";for(var r=t;!q.isUndefined(r);r=this.parent(r))if(r===e)throw new Error("Setting "+t+" as parent of "+e+" would create a cycle");this.setNode(t)}return this.setNode(e),this._removeFromParentsChildList(e),this._parent[e]=t,this._children[t][e]=!0,this};O.prototype._removeFromParentsChildList=function(e){delete this._children[this._parent[e]][e]};O.prototype.parent=function(e){if(this._isCompound){var t=this._parent[e];if(t!==ue)return t}};O.prototype.children=function(e){if(q.isUndefined(e)&&(e=ue),this._isCompound){var t=this._children[e];if(t)return q.keys(t)}else{if(e===ue)return this.nodes();if(this.hasNode(e))return[]}};O.prototype.predecessors=function(e){var t=this._preds[e];if(t)return q.keys(t)};O.prototype.successors=function(e){var t=this._sucs[e];if(t)return q.keys(t)};O.prototype.neighbors=function(e){var t=this.predecessors(e);if(t)return q.union(t,this.successors(e))};O.prototype.isLeaf=function(e){var t;return this.isDirected()?t=this.successors(e):t=this.neighbors(e),t.length===0};O.prototype.filterNodes=function(e){var t=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});t.setGraph(this.graph());var r=this;q.each(this._nodes,function(s,o){e(o)&&t.setNode(o,s)}),q.each(this._edgeObjs,function(s){t.hasNode(s.v)&&t.hasNode(s.w)&&t.setEdge(s,r.edge(s))});var n={};function i(s){var o=r.parent(s);return o===void 0||t.hasNode(o)?(n[s]=o,o):o in n?n[o]:i(o)}return this._isCompound&&q.each(t.nodes(),function(s){t.setParent(s,i(s))}),t};O.prototype.setDefaultEdgeLabel=function(e){return q.isFunction(e)||(e=q.constant(e)),this._defaultEdgeLabelFn=e,this};O.prototype.edgeCount=function(){return this._edgeCount};O.prototype.edges=function(){return q.values(this._edgeObjs)};O.prototype.setPath=function(e,t){var r=this,n=arguments;return q.reduce(e,function(i,s){return n.length>1?r.setEdge(i,s,t):r.setEdge(i,s),s}),this};O.prototype.setEdge=function(){var e,t,r,n,i=!1,s=arguments[0];typeof s=="object"&&s!==null&&"v"in s?(e=s.v,t=s.w,r=s.name,arguments.length===2&&(n=arguments[1],i=!0)):(e=s,t=arguments[1],r=arguments[3],arguments.length>2&&(n=arguments[2],i=!0)),e=""+e,t=""+t,q.isUndefined(r)||(r=""+r);var o=Le(this._isDirected,e,t,r);if(q.has(this._edgeLabels,o))return i&&(this._edgeLabels[o]=n),this;if(!q.isUndefined(r)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(e),this.setNode(t),this._edgeLabels[o]=i?n:this._defaultEdgeLabelFn(e,t,r);var u=vq(this._isDirected,e,t,r);return e=u.v,t=u.w,Object.freeze(u),this._edgeObjs[o]=u,Xc(this._preds[t],e),Xc(this._sucs[e],t),this._in[t][o]=u,this._out[e][o]=u,this._edgeCount++,this};O.prototype.edge=function(e,t,r){var n=arguments.length===1?Ar(this._isDirected,arguments[0]):Le(this._isDirected,e,t,r);return this._edgeLabels[n]};O.prototype.hasEdge=function(e,t,r){var n=arguments.length===1?Ar(this._isDirected,arguments[0]):Le(this._isDirected,e,t,r);return q.has(this._edgeLabels,n)};O.prototype.removeEdge=function(e,t,r){var n=arguments.length===1?Ar(this._isDirected,arguments[0]):Le(this._isDirected,e,t,r),i=this._edgeObjs[n];return i&&(e=i.v,t=i.w,delete this._edgeLabels[n],delete this._edgeObjs[n],Qc(this._preds[t],e),Qc(this._sucs[e],t),delete this._in[t][n],delete this._out[e][n],this._edgeCount--),this};O.prototype.inEdges=function(e,t){var r=this._in[e];if(r){var n=q.values(r);return t?q.filter(n,function(i){return i.v===t}):n}};O.prototype.outEdges=function(e,t){var r=this._out[e];if(r){var n=q.values(r);return t?q.filter(n,function(i){return i.w===t}):n}};O.prototype.nodeEdges=function(e,t){var r=this.inEdges(e,t);if(r)return r.concat(this.outEdges(e,t))};function Xc(e,t){e[t]?e[t]++:e[t]=1}function Qc(e,t){--e[t]||delete e[t]}function Le(e,t,r,n){var i=""+t,s=""+r;if(!e&&i>s){var o=i;i=s,s=o}return i+Zc+s+Zc+(q.isUndefined(n)?wq:n)}function vq(e,t,r,n){var i=""+t,s=""+r;if(!e&&i>s){var o=i;i=s,s=o}var u={v:i,w:s};return n&&(u.name=n),u}function Ar(e,t){return Le(e,t.v,t.w,t.name)}});var rf=a((K_,tf)=>{"use strict";tf.exports="2.1.8"});var sf=a((J_,nf)=>{"use strict";nf.exports={Graph:mt(),version:rf()}});var af=a((H_,of)=>{"use strict";var z=N(),xq=mt();of.exports={write:Iq,read:Pq};function Iq(e){var t={options:{directed:e.isDirected(),multigraph:e.isMultigraph(),compound:e.isCompound()},nodes:Aq(e),edges:qq(e)};return z.isUndefined(e.graph())||(t.value=z.clone(e.graph())),t}function Aq(e){return z.map(e.nodes(),function(t){var r=e.node(t),n=e.parent(t),i={v:t};return z.isUndefined(r)||(i.value=r),z.isUndefined(n)||(i.parent=n),i})}function qq(e){return z.map(e.edges(),function(t){var r=e.edge(t),n={v:t.v,w:t.w};return z.isUndefined(t.name)||(n.name=t.name),z.isUndefined(r)||(n.value=r),n})}function Pq(e){var t=new xq(e.options).setGraph(e.value);return z.each(e.nodes,function(r){t.setNode(r.v,r.value),r.parent&&t.setParent(r.v,r.parent)}),z.each(e.edges,function(r){t.setEdge({v:r.v,w:r.w,name:r.name},r.value)}),t}});var cf=a((W_,uf)=>{"use strict";var bt=N();uf.exports=Eq;function Eq(e){var t={},r=[],n;function i(s){bt.has(t,s)||(t[s]=!0,n.push(s),bt.each(e.successors(s),i),bt.each(e.predecessors(s),i))}return bt.each(e.nodes(),function(s){n=[],i(s),n.length&&r.push(n)}),r}});var qr=a((Y_,lf)=>{"use strict";var ff=N();lf.exports=$;function $(){this._arr=[],this._keyIndices={}}$.prototype.size=function(){return this._arr.length};$.prototype.keys=function(){return this._arr.map(function(e){return e.key})};$.prototype.has=function(e){return ff.has(this._keyIndices,e)};$.prototype.priority=function(e){var t=this._keyIndices[e];if(t!==void 0)return this._arr[t].priority};$.prototype.min=function(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key};$.prototype.add=function(e,t){var r=this._keyIndices;if(e=String(e),!ff.has(r,e)){var n=this._arr,i=n.length;return r[e]=i,n.push({key:e,priority:t}),this._decrease(i),!0}return!1};$.prototype.removeMin=function(){this._swap(0,this._arr.length-1);var e=this._arr.pop();return delete this._keyIndices[e.key],this._heapify(0),e.key};$.prototype.decrease=function(e,t){var r=this._keyIndices[e];if(t>this._arr[r].priority)throw new Error("New priority is greater than current priority. Key: "+e+" Old: "+this._arr[r].priority+" New: "+t);this._arr[r].priority=t,this._decrease(r)};$.prototype._heapify=function(e){var t=this._arr,r=2*e,n=r+1,i=e;r<t.length&&(i=t[r].priority<t[i].priority?r:i,n<t.length&&(i=t[n].priority<t[i].priority?n:i),i!==e&&(this._swap(e,i),this._heapify(i)))};$.prototype._decrease=function(e){for(var t=this._arr,r=t[e].priority,n;e!==0&&(n=e>>1,!(t[n].priority<r));)this._swap(e,n),e=n};$.prototype._swap=function(e,t){var r=this._arr,n=this._keyIndices,i=r[e],s=r[t];r[e]=s,r[t]=i,n[s.key]=e,n[i.key]=t}});var Pr=a((Z_,pf)=>{"use strict";var Oq=N(),_q=qr();pf.exports=Sq;var Tq=Oq.constant(1);function Sq(e,t,r,n){return jq(e,String(t),r||Tq,n||function(i){return e.outEdges(i)})}function jq(e,t,r,n){var i={},s=new _q,o,u,f=function(l){var p=l.v!==o?l.v:l.w,b=i[p],c=r(l),w=u.distance+c;if(c<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+l+" Weight: "+c);w<b.distance&&(b.distance=w,b.predecessor=o,s.decrease(p,w))};for(e.nodes().forEach(function(l){var p=l===t?0:Number.POSITIVE_INFINITY;i[l]={distance:p},s.add(l,p)});s.size()>0&&(o=s.removeMin(),u=i[o],u.distance!==Number.POSITIVE_INFINITY);)n(o).forEach(f);return i}});var yf=a((X_,df)=>{"use strict";var kq=Pr(),Rq=N();df.exports=Cq;function Cq(e,t,r){return Rq.transform(e.nodes(),function(n,i){n[i]=kq(e,i,t,r)},{})}});var Er=a((Q_,gf)=>{"use strict";var hf=N();gf.exports=Mq;function Mq(e){var t=0,r=[],n={},i=[];function s(o){var u=n[o]={onStack:!0,lowlink:t,index:t++};if(r.push(o),e.successors(o).forEach(function(p){hf.has(n,p)?n[p].onStack&&(u.lowlink=Math.min(u.lowlink,n[p].index)):(s(p),u.lowlink=Math.min(u.lowlink,n[p].lowlink))}),u.lowlink===u.index){var f=[],l;do l=r.pop(),n[l].onStack=!1,f.push(l);while(o!==l);i.push(f)}}return e.nodes().forEach(function(o){hf.has(n,o)||s(o)}),i}});var bf=a((eT,mf)=>{"use strict";var Nq=N(),Dq=Er();mf.exports=$q;function $q(e){return Nq.filter(Dq(e),function(t){return t.length>1||t.length===1&&e.hasEdge(t[0],t[0])})}});var vf=a((tT,wf)=>{"use strict";var Fq=N();wf.exports=Vq;var Lq=Fq.constant(1);function Vq(e,t,r){return Uq(e,t||Lq,r||function(n){return e.outEdges(n)})}function Uq(e,t,r){var n={},i=e.nodes();return i.forEach(function(s){n[s]={},n[s][s]={distance:0},i.forEach(function(o){s!==o&&(n[s][o]={distance:Number.POSITIVE_INFINITY})}),r(s).forEach(function(o){var u=o.v===s?o.w:o.v,f=t(o);n[s][u]={distance:f,predecessor:s}})}),i.forEach(function(s){var o=n[s];i.forEach(function(u){var f=n[u];i.forEach(function(l){var p=f[s],b=o[l],c=f[l],w=p.distance+b.distance;w<c.distance&&(c.distance=w,c.predecessor=b.predecessor)})})}),n}});var Or=a((rT,If)=>{"use strict";var Ve=N();If.exports=xf;xf.CycleException=wt;function xf(e){var t={},r={},n=[];function i(s){if(Ve.has(r,s))throw new wt;Ve.has(t,s)||(r[s]=!0,t[s]=!0,Ve.each(e.predecessors(s),i),delete r[s],n.push(s))}if(Ve.each(e.sinks(),i),Ve.size(t)!==e.nodeCount())throw new wt;return n}function wt(){}wt.prototype=new Error});var Pf=a((nT,qf)=>{"use strict";var Af=Or();qf.exports=Bq;function Bq(e){try{Af(e)}catch(t){if(t instanceof Af.CycleException)return!1;throw t}return!0}});var _r=a((iT,Of)=>{"use strict";var vt=N();Of.exports=Gq;function Gq(e,t,r){vt.isArray(t)||(t=[t]);var n=(e.isDirected()?e.successors:e.neighbors).bind(e),i=[],s={};return vt.each(t,function(o){if(!e.hasNode(o))throw new Error("Graph does not have node: "+o);Ef(e,o,r==="post",s,n,i)}),i}function Ef(e,t,r,n,i,s){vt.has(n,t)||(n[t]=!0,r||s.push(t),vt.each(i(t),function(o){Ef(e,o,r,n,i,s)}),r&&s.push(t))}});var Tf=a((sT,_f)=>{"use strict";var zq=_r();_f.exports=Kq;function Kq(e,t){return zq(e,t,"post")}});var jf=a((oT,Sf)=>{"use strict";var Jq=_r();Sf.exports=Hq;function Hq(e,t){return Jq(e,t,"pre")}});var Cf=a((aT,Rf)=>{"use strict";var kf=N(),Wq=mt(),Yq=qr();Rf.exports=Zq;function Zq(e,t){var r=new Wq,n={},i=new Yq,s;function o(f){var l=f.v===s?f.w:f.v,p=i.priority(l);if(p!==void 0){var b=t(f);b<p&&(n[l]=s,i.decrease(l,b))}}if(e.nodeCount()===0)return r;kf.each(e.nodes(),function(f){i.add(f,Number.POSITIVE_INFINITY),r.setNode(f)}),i.decrease(e.nodes()[0],0);for(var u=!1;i.size()>0;){if(s=i.removeMin(),kf.has(n,s))r.setEdge(s,n[s]);else{if(u)throw new Error("Input graph is not connected: "+e);u=!0}e.nodeEdges(s).forEach(o)}return r}});var Nf=a((uT,Mf)=>{"use strict";Mf.exports={components:cf(),dijkstra:Pr(),dijkstraAll:yf(),findCycles:bf(),floydWarshall:vf(),isAcyclic:Pf(),postorder:Tf(),preorder:jf(),prim:Cf(),tarjan:Er(),topsort:Or()}});var Tr=a((cT,$f)=>{"use strict";var Df=sf();$f.exports={Graph:Df.Graph,json:af(),alg:Nf(),version:Df.version}});var dP={};dl(dP,{PyretCaptureError:()=>Ke,PyretDataInstance:()=>Y,canon:()=>al,capturePyret:()=>kt,constructorDisplayName:()=>L,createPyretDataInstance:()=>uP,createPyretRuntimeAdapter:()=>Ct,diagramTypeNames:()=>pP,generateEdgeId:()=>nl,importPyretCapture:()=>Rt,isPyretDataInstance:()=>cP,prepareDiagram:()=>lP,pyretCaptureSource:()=>fe,readConstructorTypeId:()=>F,reifyToValue:()=>Pt,reifyToValues:()=>Ge,replit:()=>fe,toDataInstance:()=>fP});module.exports=yl(dP);var rl=Ur(Tr());var xt=class{constructor(){this.eventListeners=new Map}addEventListener(t,r){this.eventListeners.has(t)||this.eventListeners.set(t,new Set),this.eventListeners.get(t).add(r)}removeEventListener(t,r){this.eventListeners.get(t)?.delete(r)}emitEvent(t){let r=this.eventListeners.get(t.type);if(r)for(let n of r)try{n(t)}catch(i){console.error("Error in data instance event listener:",i)}}};function Ff(e,t,r){let n=e.atoms.length,i=Array.isArray(t?.types)?t.types:[],o=(t?.tuples?.length??0)>0&&i.length!==n;if(!o&&i.length===n)return{tuple:{...e,types:[...i]},relationTypes:[...i]};let u=Array.isArray(e.types)?e.types:[],f=e.atoms.map((l,p)=>r(l)??u[p]??"untyped");return{tuple:{...e,types:f},relationTypes:o?[]:f}}function re(e){if(!Object.prototype.hasOwnProperty.call(e,"$pyretValue"))return;let t=e.$pyretValue;if(t?.kind==="nothing"||t?.kind==="object"||t?.kind==="tuple"||t?.kind==="raw-array"||t?.kind==="table")return{kind:t.kind};if(t?.kind==="reference"&&typeof t.unrestricted=="boolean")return{kind:t.kind,unrestricted:t.unrestricted};if(t?.kind==="string-dict"&&typeof t.mutable=="boolean"&&typeof t.sealed=="boolean"&&(t.mutable||!t.sealed))return{kind:t.kind,mutable:t.mutable,sealed:t.sealed};throw new Error("Malformed reconstructed Pyret value")}function Sr(e){if(!e||typeof e!="object"||"dict"in e)return!1;let t=e;return Number.isInteger(t.state)&&"value"in t&&!!t.anns&&Array.isArray(t.anns.anns)&&typeof t.anns.check=="function"&&typeof t.anns.addAnn=="function"&&Object.keys(t).every(r=>r==="state"||r==="value"||r==="anns")}function Lf(e){if(Sr(e)){if(e.state!==2)throw new Error("Only initialized mutable Pyret references are supported");return{kind:"reference",unrestricted:e.anns.anns.every(t=>t.ann?.name==="Any")}}}function Vf(e){return!!e.dict&&typeof e.dict=="object"&&Object.keys(e.dict).length===0&&typeof e.brand=="function"&&typeof e.extendWith=="function"&&!("updateDict"in e)&&Object.keys(e).every(t=>t==="dict"||t==="brands")}function It(e){return typeof e=="function"||e!==null&&typeof e=="object"&&("app"in e||"meth"in e&&"full_meth"in e)}function Uf(e,t){let r=[];for(let n in e)(t||!It(e[n]))&&r.push(n);return r}var At=e=>typeof e=="string"&&/^-?(0|[1-9][0-9]*)$/.test(e);function J(e,t=1n){if(t===0n)throw new Error("Invalid Pyret rational denominator");t<0n&&(e=-e,t=-t);let r=e<0n?-e:e,n=t;for(;n!==0n;){let i=r%n;r=n,n=i}return e/=r,t/=r,t===1n?{version:1,kind:"integer",value:e.toString()}:{version:1,kind:"rational",numerator:e.toString(),denominator:t.toString()}}function Bf(e){let t=e;if(t?.version===1){if(t.kind==="integer"&&At(t.value))return J(BigInt(t.value));if(t.kind==="rational"&&At(t.numerator)&&At(t.denominator))return J(BigInt(t.numerator),BigInt(t.denominator));if(t.kind==="roughnum"&&typeof t.value=="string"&&/^-?(?:0|[1-9][0-9]*)(?:\.[0-9]+)?(?:e[+-]?[0-9]+)?$/i.test(t.value)&&Number.isFinite(Number(t.value)))return{version:1,kind:"roughnum",value:t.value}}throw new Error("Malformed Pyret number")}function Gf(e){if(e.startsWith("~"))return Bf({version:1,kind:"roughnum",value:e.slice(1)});let t=/^(-?(?:0|[1-9][0-9]*))\/(-?(?:0|[1-9][0-9]*))$/.exec(e);if(t)return J(BigInt(t[1]),BigInt(t[2]));let r=/^(-?(?:0|[1-9][0-9]*))(?:\.([0-9]+))?(?:e([+-]?[0-9]+))?$/i.exec(e);if(!r)throw new Error("Malformed Pyret number label");let n=BigInt(r[3]??"0")-BigInt(r[2]?.length??0),i=BigInt(r[1]+(r[2]??""));return n>=0n?J(i*10n**n):J(i,10n**-n)}function jr(e){if(typeof e=="number"&&Number.isInteger(e))return BigInt(e).toString();if(typeof e=="bigint")return e.toString();if(!e||typeof e!="object")return;let t=e;if(typeof t.isInteger=="function"&&t.isInteger()&&typeof t.isExact=="function"&&t.isExact()){let r=t.toString();if(At(r))return r}}function H(e){if(e&&typeof e=="object"){if("$pyretNumber"in e)return Bf(e.$pyretNumber);if("n"in e&&"d"in e){let n=jr(e.n),i=jr(e.d);if(n!==void 0&&i!==void 0)return J(BigInt(n),BigInt(i))}let r=e;if(typeof r.isRoughnum=="function"&&r.isRoughnum()){if(typeof r.n!="number"||!Number.isFinite(r.n))throw new Error("Invalid Pyret roughnum");return{version:1,kind:"roughnum",value:Object.is(r.n,-0)?"-0":String(r.n)}}}let t=jr(e);if(t!==void 0)return J(BigInt(t));if(typeof e=="number"){if(!Number.isFinite(e))throw new Error("Invalid Pyret number");let[r,n="0"]=String(e).split("e"),i=r.split(".")[1]?.length??0,s=Number(n)-i,o=BigInt(r.replace(".",""));return s>=0?J(o*10n**BigInt(s)):J(o,10n**BigInt(-s))}}function qt(e){switch(e.kind){case"integer":return e.value;case"rational":return`${e.numerator}/${e.denominator}`;case"roughnum":return`~${e.value}`}}function zf(e){if(e.kind==="integer"){let t=BigInt(e.value);if(t>=BigInt(Number.MIN_SAFE_INTEGER)&&t<=BigInt(Number.MAX_SAFE_INTEGER))return Number(t)}return{$pyretNumber:e}}var kr="pyret:field:v1:",Rr="pyret:constructor:v1:";function Kf(e,t,r){return Rr+JSON.stringify([e,t,r])}function F(e){if(!e.startsWith(Rr))return;let t=JSON.parse(e.slice(Rr.length));if(!Array.isArray(t)||t.length!==3||typeof t[0]!="string"||!t[0]||!Number.isSafeInteger(t[1])||t[1]<0||typeof t[2]!="string"||!t[2])throw new Error("Malformed Pyret constructor identity");return{scope:t[0],index:t[1],name:t[2]}}function L(e){return F(e)?.name??e}function W(e){let{$name:t,$arity:r}=e;if(typeof t!="string"||!Number.isInteger(r)||r<-1)return;let n=e.$constructor?.$fieldNames;if(r===-1)return{name:t,arity:r,fields:[]};if(!Array.isArray(n)||n.length!==r||n.some(o=>typeof o!="string")||new Set(n).size!==n.length)throw new Error(`Invalid Pyret constructor metadata for ${t}`);let i=e.$mut_fields_mask;if(i!==void 0&&(!Array.isArray(i)||i.length!==r||i.some(o=>typeof o!="boolean")))throw new Error(`Invalid Pyret mutable field mask for ${t}`);let s=i?.flatMap((o,u)=>o?[u]:[])??[];return{name:t,arity:r,fields:n,...s.length?{mutableFields:s}:{}}}function Jf(e,t){return kr+JSON.stringify([e.name,t,e.fields[t]])}function ve(e){if(!e.startsWith(kr))return;let t=JSON.parse(e.slice(kr.length));if(!Array.isArray(t)||t.length!==3||typeof t[0]!="string"||!Number.isInteger(t[1])||t[1]<0||typeof t[2]!="string")throw new Error("Malformed Pyret field ID");return{name:t[0],position:t[1],field:t[2]}}var Wf=new Set(["Number","String","Boolean"]),Cr=new Set([...Wf,"Index","Nothing","Object","Tuple","RawArray","Reference","StringDict","MutableStringDict","Table"]);function Ue(e){if(e?.type!=="Index"||!/^(0|[1-9][0-9]*)$/.test(e.label)||!Number.isSafeInteger(Number(e.label)))throw new Error("Malformed Pyret position label");return Number(e.label)}function Hf(e,t,r){if(e.has(t)&&e.get(t)!==r||[...e].some(([n,i])=>n!==t&&i===r))throw new Error("Conflicting Pyret field positions");e.set(t,r)}function Be(e,t){let r=[];for(let n=0;n<e.size;n++){if(!e.has(n))throw new Error(`Incomplete Pyret ${t}: positions must be contiguous from zero`);r.push(e.get(n))}return r}function Xq(e){let t={fields:new Map,targets:new Set,constructors:new Map,objectPositions:new Map,elements:new Map,columns:new Map,rows:new Map,references:new Map,entries:new Map,mutableFields:new Map,sealed:new Set,unrestricted:new Set,nullary:new Set},r=new Map(e.getAtoms().map(n=>[n.id,n]));for(let n of e.getRelations()){let i=ve(n.id);if(i){if(n.name!==i.field)throw new Error("Pyret field ID disagrees with its name");let s=t.constructors.get(i.name)??new Map;Hf(s,i.field,i.position),t.constructors.set(i.name,s)}for(let s of n.tuples){if(!s.atoms.length||s.atoms.some(m=>!r.has(m)))throw new Error("Malformed Pyret relation tuple");let[o,u,f,l]=s.atoms,p=r.get(o).type,b=s.atoms.length;for(let m of s.atoms.slice(1))t.targets.add(m);if(!i&&p!=="Object"){if(n.name==="sealed"&&p==="MutableStringDict"){if(b!==1)throw new Error("Malformed Pyret sealed fact");t.sealed.add(o);continue}if(n.name==="unrestricted"&&p==="Reference"){if(b!==1)throw new Error("Malformed Pyret unrestricted fact");t.unrestricted.add(o);continue}if(n.name==="nullary-constructor"&&!Cr.has(p)){if(b!==1)throw new Error("Malformed Pyret nullary constructor fact");t.nullary.add(o);continue}if(n.name==="mutable-field"&&!Cr.has(p)){if(b!==2)throw new Error("Malformed Pyret mutable field positions");let m=t.mutableFields.get(o)??new Set;m.add(Ue(r.get(u))),t.mutableFields.set(o,m);continue}}if(b<2)throw new Error("Malformed Pyret unary relation");if(p==="Table"){if(i)throw new Error("Pyret table relations must have opaque IDs");let m=Ue(r.get(u));if(n.name==="column"&&b===3&&r.get(f)?.type==="String"){let y=t.columns.get(o)??new Map;if(y.has(m)&&y.get(m)!==f)throw new Error("Conflicting Pyret table column positions");y.set(m,f),t.columns.set(o,y)}else if(n.name==="row"){let y=t.rows.get(o)??new Map,d=s.atoms.slice(2);if(y.has(m)&&JSON.stringify(y.get(m))!==JSON.stringify(d))throw new Error("Conflicting Pyret table row positions");if(d.some(v=>r.get(v)?.type==="Index"))throw new Error("Pyret table cells cannot be positions");y.set(m,d),t.rows.set(o,y)}else throw new Error("Malformed Pyret table relation");continue}if(p==="StringDict"||p==="MutableStringDict"){if(n.name!=="entry"||b!==4||r.get(f)?.type!=="String")throw new Error("Malformed Pyret dictionary entry");let m=Ue(r.get(u)),y=t.entries.get(o)??new Map,d=y.get(m);if(d&&(d.key!==f||d.value!==l))throw new Error("Conflicting Pyret dictionary entry positions");y.set(m,{key:f,value:l}),t.entries.set(o,y);continue}if(p==="Reference"){if(n.name!=="target"||b!==2)throw new Error("Malformed Pyret reference target");if(t.references.has(o)&&t.references.get(o)!==u)throw new Error("Conflicting Pyret reference targets");t.references.set(o,u);continue}if(p==="Tuple"||p==="RawArray"){if(n.name!=="element"||b!==3)throw new Error("Malformed Pyret indexed element");let m=Ue(r.get(u)),y=t.elements.get(o)??new Map;if(y.has(m)&&y.get(m)!==f)throw new Error("Conflicting Pyret element positions");y.set(m,f),t.elements.set(o,y);continue}if(Cr.has(p)&&p!=="Object")throw new Error("Pyret primitive cannot have fields");if(i&&(p!==i.name||b!==2))throw new Error("Pyret field ID disagrees with its source constructor");if(p==="Object"){if(b!==3||i)throw new Error("Pyret object field must have a position and one value");let m=t.objectPositions.get(o)??new Map;Hf(m,n.name,Ue(r.get(u))),t.objectPositions.set(o,m)}let c=t.fields.get(o)??new Map,w=i?.field??n.name,h=c.get(w)??[];for(let m of p==="Object"?[f]:s.atoms.slice(1))h.includes(m)||h.push(m);c.set(w,h),t.fields.set(o,c)}}return t}function Qq(e,t){switch(e.type){case"Nothing":return{kind:"nothing"};case"Object":return{kind:"object"};case"Tuple":return{kind:"tuple"};case"RawArray":return{kind:"raw-array"};case"Table":return{kind:"table"};case"Reference":return{kind:"reference",unrestricted:t.unrestricted.has(e.id)};case"StringDict":case"MutableStringDict":return{kind:"string-dict",mutable:e.type==="MutableStringDict",sealed:t.sealed.has(e.id)};default:return}}function eP(e){switch(e.type){case"Number":return zf(Gf(e.label));case"Boolean":if(e.label!=="true"&&e.label!=="false")throw new Error("Malformed Pyret boolean label");return e.label==="true";default:return e.label}}function Mr(e,t){let r=/^\d+$/.test(e),n=/^\d+$/.test(t);return r&&n?parseInt(e,10)-parseInt(t,10):e.localeCompare(t)}function tP(e,t){let n=Y.getGlobalConstructorCache().get(e);if(n&&n.length){let i=n.filter(o=>t.includes(o)),s=t.filter(o=>!n.includes(o));return[...i,...s.sort(Mr)]}return[...t].sort(Mr)}function rP(e){return e.length>0&&e.every(t=>/^\d+$/.test(t))}function Pt(e,t,r={}){let n=Ge(e,t===void 0?void 0:[t],r);return n.length?n[0]:null}function Ge(e,t,r={}){let n=new Map(e.getAtoms().map(d=>[d.id,d])),i=Xq(e),{fields:s,targets:o,elements:u,references:f,entries:l}=i,p=new Map,b=0,c=new Set,w=new Map,h=d=>{if(w.has(d)){if(!r.allowContainerCycles&&p.get(d)===b&&c.size)throw new Error("Cyclic Pyret containers are not supported");return w.get(d)}let v=n.get(d);if(!v)throw new Error("Unknown Pyret atom ID: "+d);if(Wf.has(v.type)){let P=eP(v);return w.set(d,P),P}let x=Qq(v,i);if(x?.kind==="nothing"){let P={$pyretValue:x};return w.set(d,P),P}if(p.set(d,b),x?.kind==="table"){let P=Be(i.columns.get(d)??new Map,"table columns").map(E=>n.get(E).label);if(new Set(P).size!==P.length)throw new Error("Duplicate Pyret table column name");let g=Be(i.rows.get(d)??new Map,"table rows");if(g.some(E=>E.length!==P.length))throw new Error("Pyret table row width must match its columns");let I=[],A={$pyretValue:x,dict:{"_header-raw-array":P,"_rows-raw-array":I}};w.set(d,A),c.add(d);for(let E of g)I.push(E.map(h));return c.delete(d),p.delete(d),A}if(x?.kind==="string-dict"){let P=l.get(d)??new Map,g=Be(P,"dictionary entries"),I={$pyretValue:x,entries:[]};w.set(d,I);let A=new Set;x.mutable&&b++;for(let E of g){let M=n.get(E.key).label;if(A.has(M))throw new Error("Duplicate Pyret dictionary key");A.add(M),I.entries.push([M,h(E.value)])}return x.mutable&&b--,p.delete(d),I}if(x?.kind==="reference"){let P=f.get(d);if(P===void 0)throw new Error("Incomplete Pyret reference target");let g={$pyretValue:x};return w.set(d,g),b++,g.value=h(P),b--,p.delete(d),g}if(x?.kind==="raw-array"||x?.kind==="tuple"){let P=u.get(d)??new Map,g=Be(P,"container elements"),I=[],A=x.kind==="raw-array"?I:{vals:I};w.set(d,A),c.add(d);for(let E of g)I.push(h(E));return c.delete(d),p.delete(d),A}let _=s.get(d)??new Map,T=Array.from(_.keys()),C=i.constructors.get(v.type),D=x?void 0:i.nullary.has(d)?0:C?.size??(T.length?void 0:-1),B=[...i.mutableFields.get(d)??[]];if(B.some(P=>D===void 0||P>=D))throw new Error("Malformed Pyret mutable field positions");if(!x&&D===void 0&&rP(T)){let P=[];w.set(d,P);let g=T.slice().sort(Mr);for(let I of g){let A=_.get(I)??[];P.push(A.length===1?h(A[0]):A.map(E=>h(E)))}return p.delete(d),P}let V={dict:Object.create(null),...x?.kind==="object"?{$pyretValue:x}:{$name:v.type}};w.set(d,V);let K;if(x?.kind==="object"){let P=i.objectPositions.get(d)??new Map;K=Be(new Map([...P].map(([g,I])=>[I,g])),"object fields")}else if(D!==void 0){let P=C??new Map,g=Math.max(0,D);if(T.length!==g||P.size!==g||[...P].some(([I,A])=>A>=g||!_.has(I)))throw new Error("Incomplete Pyret constructor fields");K=[...P].sort((I,A)=>I[1]-A[1]).map(([I])=>I),V.$arity=D,V.$constructor={$fieldNames:K},B.length&&(V.$mut_fields_mask=K.map((I,A)=>B.includes(A)))}else K=tP(v.type,T);for(let P of K){let g=_.get(P)??[];if((x?.kind==="object"||D!==void 0)&&g.length!==1)throw new Error("Pyret constructor field must have one value");g.length===1?V.dict[P]=h(g[0]):V.dict[P]=g.map(I=>h(I))}for(let P of B){let g=V.dict[K[P]];if(!g||typeof g!="object"||re(g)?.kind!=="reference")throw new Error("Pyret mutable field must contain a reference")}return p.delete(d),V};if(t!==void 0)return t.map(d=>{if(!n.has(d))throw new Error("Unknown Pyret root ID: "+d);return h(d)});let m=e.getAtoms().map(d=>d.id);if(!m.length)return[];let y=m.filter(d=>!o.has(d));if(y.length!==1)throw new Error("Pyret graph has no unique root; supply an explicit root ID");return[h(y[0])]}function xe(e,t,r){if(!e||typeof e!="object"||Array.isArray(e)||!("$name"in e)||L(String(e.$name))!==t)return!1;let n=W(e);return!!n&&!n.mutableFields?.length&&n.arity===(r.length||-1)&&n.fields.length===r.length&&n.fields.every((i,s)=>i===r[s])&&!!e.dict&&r.every(i=>Object.prototype.hasOwnProperty.call(e.dict,i))}function ze(e){let t=xe(e,"list-set",["elems"])?"list-set":xe(e,"tree-set",["elems"])?"tree-set":void 0;if(!t)return;let r=e.dict.elems,n=[],i=new Set,s=()=>new Error(`Malformed Pyret ${t} backing structure`);if(t==="list-set"){let o=r;for(;!xe(o,"empty",[]);){if(!xe(o,"link",["first","rest"])||i.has(o))throw s();i.add(o),n.push(o.dict.first),o=o.dict.rest}}else{let o=[{node:r,phase:"enter"}];for(;o.length;){let{node:u,phase:f}=o.pop();if(!xe(u,"leaf",[])){if(!xe(u,"branch",["value","h","left","right"]))throw s();if(f==="exit")i.delete(u);else if(f==="emit")n.push(u.dict.value);else{if(i.has(u))throw s();i.add(u),o.push({node:u,phase:"exit"},{node:u.dict.right,phase:"enter"},{node:u,phase:"emit"},{node:u.dict.left,phase:"enter"})}}}}return{kind:t,elements:n}}function Yf(e,t){return e.kind==="tree-set"?`[tree-set: ${e.elements.map(t).join(", ")}]`:"[list-set: ]"+[...e.elements].reverse().map(r=>`.add(${t(r)})`).join("")}function Et(e){return!!e.dict&&typeof e.dict=="object"&&"_header-raw-array"in e.dict&&"_rows-raw-array"in e.dict&&(!e.brands||Object.keys(e.brands).some(t=>t.includes("brandtable")))}function Ot(e){return Array.isArray(e.$rowData)&&!!e.$underlyingTable}function ce(e){let t=e.dict?.["_header-raw-array"],r=e.dict?.["_rows-raw-array"];if(!Array.isArray(t)||!Array.isArray(r)||Array.from(t).some(n=>typeof n!="string")||new Set(t).size!==t.length||Array.from(r).some(n=>!Array.isArray(n)||n.length!==t.length))throw new Error("Malformed Pyret table: unique string headers and rectangular rows required");return{headers:t,rows:r}}function Zf(e,t,r){let{headers:n,rows:i}=ce(e);if(!n.length)return i.length?`for fold(spytial-table from empty-table([list: ]), spytial-row from range(0, ${i.length})):
2
+ spytial-table.add-row([raw-row: ])
3
+ end`:"empty-table([list: ])";let s;try{s=n.map(r)}catch{}return s?`table: ${s.join(", ")}${i.map(o=>`
4
+ row: `+o.map(t).join(", ")).join("")}
5
+ end`:`[table-from-columns: ${n.map((o,u)=>`{${t(o)}; [list: ${i.map(f=>t(f[u])).join(", ")}]}`).join(", ")}]`}function Xf(e,t,r){let n=re,i=g=>!!g&&typeof g=="object"&&!H(g)&&n(g)?.kind!=="nothing",s=g=>{if(Array.isArray(g))return g;let I=n(g);if(I?.kind==="reference")return[g.value];if(I?.kind==="string-dict")return g.entries.map(E=>E[1]);if(I?.kind==="table")return ce(g).rows.flat();if(Array.isArray(g.vals))return g.vals;let A=ze(g);return A?A.elements:Object.keys(g.dict??{}).map(E=>g.dict[E])},o=new Set,u=new Set,f=new Map,l=!1,p=!1,b=[e];for(;b.length;){let g=b.pop();if(!i(g))continue;if(o.has(g)){l=!0;continue}if(o.add(g),!Array.isArray(g)&&n(g)?.kind==="reference"&&u.add(g),!Array.isArray(g)){let A=n(g);A?.kind==="string-dict"&&A.mutable&&f.set(g,A),A?.kind==="table"&&(p=!0)}let I=s(g);for(let A=I.length-1;A>=0;A--)b.push(I[A])}if(!u.size&&!((f.size||p)&&l))return;let c=new Map,w=new Map,h=new Set(["nothing"]);for(let g of o){if(Array.isArray(g))continue;typeof g.$name=="string"&&h.add(L(g.$name));let I=W(g),A=I?.mutableFields?.map(E=>I.fields[E])??[];w.set(g,A);for(let E of A){let M=g.dict[E];if(!u.has(M))throw new Error("Pyret mutable field must contain a reference");if(c.has(M))throw new Error("A Pyret reference shared by multiple mutable constructor fields cannot be reconstructed");c.set(M,{value:g,field:E})}}let m=0,y=g=>{let I;do I=g+m++;while(h.has(I));return h.add(I),I},d=new Map,v=new Set,x=[],_=new Map,T=g=>!i(g)||v.has(g),C=g=>{if(!i(g))return t(g,C);if(!v.has(g))throw new Error("Unresolved Pyret construction dependency");return d.get(g)};for(let g of o)u.has(g)||d.set(g,y("spytial-value"));if([...u].some(g=>!c.has(g)))throw new Error("Pyret reference source requires a reachable mutable constructor field for each reference");let D=new Map;for(let[g,I]of f){let A=d.get(g),E=I.sealed?y("spytial-dict"):A;x.push(`shadow ${E} = ${t({$pyretValue:{...I,sealed:!1},entries:[]},C)}`),I.sealed&&x.push(`shadow ${A} = ${E}.seal()`),v.add(g),D.set(g,E)}let B=new Map(D),V=()=>{for(let[g,I]of B)if(s(g).every(T)){for(let[A,E]of g.entries)x.push(`${I}.set-now(${C(A)}, ${C(E)})`);B.delete(g)}for(let[g,{owner:I,field:A}]of _)T(g.value)&&(x.push(`${I}!{${r(A)}: ${C(g.value)}}`),_.delete(g))},K=g=>{let I=new Set,A=[g];for(;A.length;){let E=A.pop();if(!(!i(E)||I.has(E))){if(!v.has(E)||B.has(E)||_.has(E))return!1;I.add(E),A.push(...s(E))}}return!0},P=[...o].filter(g=>!u.has(g)&&!f.has(g));for(;P.length;){V();let g=!1;for(let I=0;I<P.length;){let A=P[I],E=Array.isArray(A)?[]:w.get(A)??[],M=A;if(E.length){let Z=A,ne={...Z.dict};for(let Fr of E){let Je=Z.dict[Fr],Lr=n(Je);ne[Fr]=T(Je.value)?Je.value:Lr?.kind==="reference"&&Lr.unrestricted?null:Je.value}M={...Z,dict:ne}}if(!s(M).every(T)){I++;continue}if(ze(M)&&!s(M).every(K)){I++;continue}let Mt=d.get(A);x.push(`shadow ${Mt} = ${t(M,C)}`),v.add(A);for(let Z of E){let ne=A.dict[Z];d.set(ne,`${Mt}.${r(Z).trim()}`),v.add(ne),(!T(ne.value)||M.dict[Z]===null)&&_.set(ne,{owner:Mt,field:Z})}P.splice(I,1),g=!0}if(!g)throw new Error("Pyret graph cannot be constructed: cycles need allocatable mutable fields and set elements need complete contents")}return V(),x.push(C(e)),`block:
6
+ ${x.map(g=>" "+g).join(`
7
+ `)}
8
+ end`}function _t(e){let t=n=>{let i=e.dict?.[n];return i&&typeof i.meth=="function"&&typeof i.full_meth=="function"},r=e.$underlyingMap;if(r&&t("keys-list")&&t("get-value")&&t("unfreeze")){if(!Number.isSafeInteger(r.size)||r.size<0||typeof r.keys!="function"||typeof r.get!="function")throw new Error("Malformed Pyret string dictionary backing map");return{kind:"string-dict",mutable:!1,sealed:!1}}if(e.$underlyingDict&&t("keys-list-now")&&t("get-value-now")&&t("freeze")){if(typeof e.$underlyingDict!="object"||e.$sealed!==void 0&&typeof e.$sealed!="boolean")throw new Error("Malformed Pyret mutable string dictionary backing map");return{kind:"string-dict",mutable:!0,sealed:e.$sealed===!0}}}function Tt(e,t){let r;if("$pyretValue"in e)r=e.entries;else if(t.mutable)r=Object.entries(e.$underlyingDict);else{let n=e.$underlyingMap,i=n.keys();if(!Array.isArray(i)||i.some(s=>typeof s!="string"))throw new Error("Malformed Pyret dictionary keys");r=i.map(s=>[s,n.get(s)])}if(!Array.isArray(r)||r.some(n=>!Array.isArray(n)||n.length!==2||typeof n[0]!="string")||new Set(r.map(n=>n[0])).size!==r.length)throw new Error("Malformed Pyret dictionary entries");return r}function Qf(e,t,r){let n=e.mutable?"mutable-string-dict":"string-dict",i=[...t];if(!e.mutable&&i.length>8){let s=f=>{let l=0;for(let p=0;p<f.length;p++)l=31*l+f.charCodeAt(p)|0;return l>>>1&1073741824|l&3221225471},o=s(i[8][0]),u=i.findIndex(([f])=>s(f)===o);i.splice(8,0,i.splice(u,1)[0])}return`[${n}: ${i.flatMap(([s,o])=>[r(s),r(o)]).join(", ")}]`+(e.sealed?".seal()":"")}function nP(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)&&"dict"in e}function iP(e){return'"'+e.replace(/\\/g,"\\\\").replace(/"/g,'\\"').replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t").replace(/[^\x20-\x7E]/g,t=>"\\u"+t.charCodeAt(0).toString(16).toUpperCase().padStart(4,"0"))+'"'}var sP=new Set(`and as ascending ask by cases check data descending do does-not-raise
9
+ else end examples extend extract false for from fun hiding if import include is is-not is-roughly
10
+ is-not-roughly because lam lazy let letrec load-table method module newtype of or provide provide-types
11
+ raises raises-other-than raises-satisfies raises-violates reactor rec ref sanitize satisfies select
12
+ shadow sieve spy order transform true type type-let using use var violates when`.split(/\s+/)),oP=new Set(`function break return do yield throw continue while class interface
13
+ type generator alias extends implements module package namespace public private protected static const
14
+ enum super export new try finally debug spy switch this match case with __proto__`.split(/\s+/)),aP=new Set(["block","doc","otherwise","row","sharing","source","table","then","where","with"]);function Nr(e){if(sP.has(e)||oP.has(e)||!/^[A-Za-z_][A-Za-z0-9_]*(?:-+[A-Za-z0-9_]+)*$/.test(e))throw new Error(`Pyret object field has no literal spelling: ${JSON.stringify(e)}`);return aP.has(e)?e+" ":e}function Dr(e,t,r=n=>Dr(n,t)){if(e==null)return"nothing";if(typeof e=="number")return String(e);if(typeof e=="boolean")return e?"true":"false";if(typeof e=="string")return iP(e);let n=H(e);if(n)return qt(n);let i=re(e);if(i?.kind==="nothing")return"nothing";if(i?.kind==="table"){if(t.has(e))throw new Error("Cyclic Pyret table construction is not supported");t.add(e);let s=Zf(e,r,Nr);return t.delete(e),s}if(i?.kind==="string-dict"){if(t.has(e))throw new Error("Cyclic immutable Pyret dictionary construction is not supported");t.add(e);let s=Qf(i,e.entries,r);return t.delete(e),s}if("vals"in e&&Array.isArray(e.vals)){if(t.has(e))throw new Error("Cyclic Pyret containers are not supported");if(!e.vals.length)throw new Error("Pyret has no empty tuple literal");t.add(e);let s=`{${e.vals.map(o=>r(o)).join("; ")}${e.vals.length===1?";":""}}`;return t.delete(e),s}if(Array.isArray(e)){if(t.has(e))return"<cyclic>";t.add(e);let s=`[raw-array: ${e.map(r).join(", ")}]`;return t.delete(e),s}if(nP(e)){if(t.has(e))return"<cyclic>";t.add(e);let s=ze(e);if(s){let p=Yf(s,r);return t.delete(e),p}let o=L(e.$name||"object"),u=e.dict||{},f=Object.keys(u),l=i?.kind==="object"?`{${f.map(p=>`${Nr(p)}: ${r(u[p])}`).join(", ")}}`:f.length||e.$arity===0?`${o}(${f.map(p=>r(u[p])).join(", ")})`:o;return t.delete(e),l}return String(e)}function fe(e,t){let r=new Map;for(let i of e.getAtoms()){let s=F(i.type);if(s){if(r.has(s.name)&&r.get(s.name)!==i.type)throw new Error(`Source reconstruction needs explicit bindings for same-named constructor ${s.name}`);r.set(s.name,i.type)}}let n=Pt(e,t);return Xf(n,(i,s)=>Dr(i,new Set,s),Nr)??Dr(n,new Set)}function St(e){return JSON.stringify(e.atoms)}function el(e){let t=new Set;return e.filter(r=>{let n=St(r);return t.has(n)?!1:(t.add(n),!0)}).map(r=>({...r,atoms:[...r.atoms],types:[...r.types]}))}function tl(e,t=[]){if(!e.length)return[...t];let r=e[0].atoms.length;return e.some(n=>n.atoms.length!==r)?[]:Array.from({length:r},(n,i)=>{let s=new Set(e.map(o=>o.types[i]??"univ"));return s.size===1?[...s][0]:"univ"})}function $r(e,t){if(e.name!==t.name)throw new Error(`Conflicting names for relation ID ${JSON.stringify(e.id)}: ${JSON.stringify(e.name)} and ${JSON.stringify(t.name)}`)}function nl(e,t){let r=e.id,n=t.atoms;return`${r}:${n.join("->")}`}var k=class k extends xt{constructor(r,n={},i){super();this.atoms=new Map;this.relations=new Map;this.types=new Map;this.objectToAtomId=new WeakMap;this.atomCounter=0;this.valueRelations=new Map;this.indexAtoms=new Map;this.typeLabelCounters=new Map;this.originalObjects=new Map;this.externalEvaluator=null;this.options={stringsIdempotent:n.stringsIdempotent??!0,numbersIdempotent:n.numbersIdempotent??!0,booleansIdempotent:n.booleansIdempotent??!0,showFunctions:n.showFunctions??!1},this.externalEvaluator=i||null,this.initializeBuiltinTypes(),this.isAtomicValue(r)?this.createAtomFromPrimitive(r):r!=null&&this.parseObjectIteratively(r)}static fromValues(r){let n=new k,i=new WeakSet,s=r.map(o=>{if(n.isAtomicValue(o))return n.createAtomFromPrimitive(o);if(!Array.isArray(o)&&!n.isPyretObject(o))throw new Error("Unsupported normalized Pyret root");return n.parseObjectIteratively(o,i),n.objectToAtomId.get(o)});return{instance:n,rootIds:s}}setExternalEvaluator(r){this.externalEvaluator=r}getExternalEvaluator(){return this.externalEvaluator}getOptions(){return{...this.options}}cacheConstructorPattern(r,n){if(n.length===0)return;let i=k.globalConstructorCache.get(r),s=++k.instantiationCounter;(!i||s>i.instantiation)&&k.globalConstructorCache.set(r,{pattern:[...n],instantiation:s})}static getGlobalConstructorCache(){let r=new Map;for(let[n,i]of k.globalConstructorCache)r.set(n,[...i.pattern]);return r}static getGlobalConstructorCacheWithPriority(){return new Map(k.globalConstructorCache)}static clearGlobalConstructorCache(){k.globalConstructorCache.clear()}static async fromExpression(r,n={},i){let s=await k.evaluateExpression(r,i);if(!s.success)throw new Error(`Failed to evaluate Pyret expression: ${k.formatError(s.exn)}`);if(k.isPrimitive(s.result)){let o=new k(null,n,i),u=typeof s.result=="string"?"String":typeof s.result=="number"?"Number":"Boolean",f={id:`result_${s.result}`,label:String(s.result),type:u};return o.addAtom(f),o}return new k(s.result,n,i)}static async evaluateExpression(r,n){try{let i=await n.run(r),s=k.findKeyAtAnyLevel(i,"exn");if(s!==void 0)return{success:!1,exn:s};let o=k.findKeyAtAnyLevel(i,"answer");return o!==void 0?{success:!0,result:o}:k.isPrimitive(i)?{success:!0,result:i}:{success:!1,exn:"Unable to find answer or exn in evaluation result"}}catch(i){return{success:!1,exn:i instanceof Error?i.message:"Unknown evaluation error"}}}static findKeyAtAnyLevel(r,n){if(!(!r||typeof r!="object")){if(n in r)return r[n];for(let i of Object.values(r))if(i&&typeof i=="object"){let s=k.findKeyAtAnyLevel(i,n);if(s!==void 0)return s}}}static isPrimitive(r){return typeof r=="string"||typeof r=="number"||typeof r=="boolean"}static formatError(r){if(!r)return"Unknown error";if(typeof r=="string")return r;if(typeof r=="object"&&r!==null){let n=r;if(n.message)return n.message;if(n.toString&&typeof n.toString=="function")return n.toString()}return String(r)}hasExternalEvaluator(){return this.externalEvaluator!==null}addAtom(r){this.atoms.set(r.id,r),this.ensureTypeExists(r.type);let n=this.types.get(r.type);n&&!n.atoms.some(i=>i.id===r.id)&&n.atoms.push(r),this.emitEvent({type:"atomAdded",data:{atom:r}})}removeAtom(r){let n=this.atoms.get(r);this.atoms.delete(r),this.types.forEach(i=>{i.atoms=i.atoms.filter(s=>s.id!==r)}),this.relations.forEach(i=>{i.tuples=i.tuples.filter(s=>!s.atoms.includes(r))}),n&&this.emitEvent({type:"atomRemoved",data:{atomId:r}})}removeRelationTuple(r,n){let i=this.relations.get(r);if(i){let s=i.tuples.length;i.tuples=i.tuples.filter(o=>!o.atoms.every((u,f)=>u===n.atoms[f])),i.tuples.length<s&&this.emitEvent({type:"relationTupleRemoved",data:{relationId:r,tuple:n}})}}reify(r){return fe(this,r)}parseObjectIteratively(r,n=new WeakSet){let i=[{obj:r}],s=(o,u,f,l)=>{if(this.isAtomicValue(o)){let p=this.createAtomFromPrimitive(o);this.addRelationTuple(f,{atoms:[...u,p],types:[]},l)}else(Array.isArray(o)||this.isPyretObject(o))&&i.push({obj:o,parentInfo:{atoms:u,relationId:f,relationName:l}})};for(let o=0;o<i.length;o++){let{obj:u,parentInfo:f}=i[o],l=this.objectToAtomId.get(u);if(l||(l=this.createAtomFromObject(u)),f&&this.addRelationTuple(f.relationId,{atoms:[...f.atoms,l],types:[]},f.relationName),n.has(u))continue;n.add(u);let p=this.valueInfo(u);if(p?.kind==="nothing")continue;if(p?.kind==="table"){this.processTableSemantics(l,u,h=>{if(this.isAtomicValue(h))return this.createAtomFromPrimitive(h);if(It(h)||!Array.isArray(h)&&!this.isPyretObject(h))throw new Error("Unsupported Pyret table cell");let m=h,y=this.objectToAtomId.get(m)??this.createAtomFromObject(m);return i.push({obj:m}),y});continue}if(p?.kind==="string-dict"){p.sealed&&this.addValueFact("sealed",l,"MutableStringDict"),Tt(u,p).forEach(([m,y],d)=>{if(!this.isAtomicValue(y)&&!Array.isArray(y)&&!this.isPyretObject(y))throw new Error("Unsupported Pyret dictionary value");let v=this.valueRelationId("dictionary-entries","entry",["PyretObject","Index","String","PyretObject"]);s(y,[l,this.createIndexAtom(d),this.createAtomFromPrimitive(m)],v,"entry")});continue}if(p?.kind==="reference"){p.unrestricted&&this.addValueFact("unrestricted",l,"Reference");let h=u.value;if(!this.isAtomicValue(h)&&!Array.isArray(h)&&!this.isPyretObject(h))throw new Error("Unsupported Pyret reference target");let m=this.valueRelationId("reference-target","target",["Reference","PyretObject"]);s(h,[l],m,"target");continue}if(p?.kind==="tuple"||p?.kind==="raw-array"){let h=Array.isArray(u)?u:u.vals;for(let m=0;m<h.length;m++){let y=this.valueRelationId("sequence-elements","element",["PyretObject","Index","PyretObject"]);s(h[m],[l,this.createIndexAtom(m)],y,"element")}continue}let b=u;this.originalObjects.set(l,b);let c=W(b);c?.arity===0&&this.addValueFact("nullary-constructor",l,"PyretObject");for(let h of c?.mutableFields??[]){let m=this.valueRelationId("mutable-field","mutable-field",["PyretObject","Index"]);this.addRelationTuple(m,{atoms:[l,this.createIndexAtom(h)],types:[]},"mutable-field")}if(!b.dict||typeof b.dict!="object")continue;let w=c?.fields??(p?.kind==="object"?Uf(b.dict,this.options.showFunctions):Object.keys(b.dict));!p&&!F(this.extractType(b))&&this.cacheConstructorPattern(this.extractType(b),w),w.forEach((h,m)=>{let y=b.dict[h],d=c?Jf(c,m):p?.kind==="object"?this.valueRelationId("object-field:"+h,h,["Object","Index","PyretObject"]):h;if(c&&!this.relations.has(d)&&this.relations.set(d,{id:d,name:h,types:[c.name,"PyretObject"],tuples:[]}),!this.options.showFunctions&&It(y))return;let v=p?.kind==="object"?[l,this.createIndexAtom(m)]:[l];s(y,v,d,p?.kind==="object"?h:void 0)})}}addValueFact(r,n,i){let s=this.valueRelationId(r,r,[i]);this.addRelationTuple(s,{atoms:[n],types:[]},r)}valueRelationId(r,n,i){let s=this.valueRelations.get(r);return s||(s=globalThis.crypto?.randomUUID?.()??`relation-${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}-${this.valueRelations.size}`,this.valueRelations.set(r,s),this.relations.set(s,{id:s,name:n,types:i,tuples:[]})),s}createIndexAtom(r){let n=this.indexAtoms.get(r);if(n)return n;let i=this.generateAtomId("Index");return this.atoms.set(i,{id:i,type:"Index",label:String(r)}),this.ensureTypeExists("Index"),this.indexAtoms.set(r,i),i}valueInfo(r){if(Array.isArray(r))return{kind:"raw-array"};if("$pyretValue"in r)return re(r);if(Ot(r))throw new Error("Standalone Pyret Row values are not supported");if(Et(r))return{kind:"table"};let n=Lf(r);if(n)return n;let i=_t(r);if(i)return i;if(Vf(r))return{kind:"nothing"};if(Array.isArray(r.vals))return{kind:"tuple"};if(!W(r)&&r.dict&&(typeof r.updateDict=="function"||this.extractType(r)==="PyretObject"))return{kind:"object"}}processTableSemantics(r,n,i){let{headers:s,rows:o}=ce(n),u=this.valueRelationId("table-columns","column",["Table","Index","String"]);s.forEach((l,p)=>this.addRelationTuple(u,{atoms:[r,this.createIndexAtom(p),this.createAtomFromPrimitive(l)],types:[]},"column"));let f=this.valueRelationId("table-rows:"+s.length,"row",["Table","Index",...s.map(()=>"PyretObject")]);o.forEach((l,p)=>this.addRelationTuple(f,{atoms:[r,this.createIndexAtom(p),...Array.from(l,i)],types:[]},"row"))}createAtomFromObject(r){let n=this.valueInfo(r),i=n?{nothing:"Nothing",reference:"Reference",object:"Object",tuple:"Tuple","raw-array":"RawArray",table:"Table","string-dict":n.kind==="string-dict"&&n.mutable?"MutableStringDict":"StringDict"}[n.kind]:this.extractType(r),s=this.generateAtomId(i),o={id:s,type:i,label:n?i:this.extractLabel(r)};return this.atoms.set(s,o),this.objectToAtomId.set(r,s),this.ensureTypeExists(i),s}createAtomFromPrimitive(r){let n=H(r),i=n?"Number":this.mapPrimitiveType(r),s=n?qt(n):String(r);if(i==="String"&&this.options.stringsIdempotent||i==="Number"&&this.options.numbersIdempotent||i==="Boolean"&&this.options.booleansIdempotent){let l=Array.from(this.atoms.values()).find(p=>p.type===i&&p.label===s);if(l)return l.id}let u=this.generateAtomId(i),f={id:u,type:i,label:s};return this.atoms.set(u,f),this.ensureTypeExists(i),u}mapPrimitiveType(r){switch(typeof r){case"number":return"Number";case"string":return"String";case"boolean":return"Boolean";default:return"Value"}}extractMostSpecificBrand(r){let n=-1,i,s;for(let o of Object.keys(r)){let u=/^\$brand([a-zA-Z_]+)(\d+)$/.exec(o);if(u){let[,f,l]=u,p=parseInt(l,10);p>n&&(n=p,i=f)}else{let f=/^\$brand_?([a-zA-Z_]+)$/.exec(o);if(f){let[,l]=f;(!s||l>s)&&(s=l)}}}return i||s}extractType(r){if(r.$name&&typeof r.$name=="string")return r.$name;if(r.brands&&typeof r.brands=="object"){let n=this.extractMostSpecificBrand(r.brands);if(n)return n}return"PyretObject"}extractLabel(r){if(r.$name&&typeof r.$name=="string")return L(r.$name);let n=this.extractType(r),s=(this.typeLabelCounters.get(n)??0)+1;return this.typeLabelCounters.set(n,s),`${n}$${s}`}addRelationTuple(r,n,i){let s=n.atoms[0],o=n.atoms[n.atoms.length-1],u=this.atoms.get(s),f=this.atoms.get(o);if(!u||!f){console.warn(`Cannot create relation ${r}: missing atoms ${s} or ${o}`);return}let l=this.relations.get(r),p=i??l?.name??ve(r)?.field??r;l&&$r(l,{...l,name:p});let b=Ff(n,l,w=>this.atoms.get(w)?.type);l?l.types=b.relationTypes:(l={id:r,name:p,types:b.relationTypes,tuples:[]},this.relations.set(r,l)),l.tuples.some(w=>St(w)===St(n))||(l.tuples.push(b.tuple),this.emitEvent({type:"relationTupleAdded",data:{relationId:r,tuple:b.tuple}}))}ensureTypeExists(r){if(!this.types.has(r)){let n=F(r),i=n&&!["Number","String","Boolean","PyretObject","Index","Nothing","Object","Tuple","RawArray","Reference","StringDict","MutableStringDict","Table"].includes(n.name)?n.name:void 0;i&&this.ensureTypeExists(i);let s={id:r,types:i?[r,i,"PyretObject"]:[r,"PyretObject"],atoms:[],isBuiltin:this.isBuiltinType(r)};this.types.set(r,s)}}initializeBuiltinTypes(){["Number","String","Boolean","PyretObject"].forEach(n=>{let i={id:n,types:n==="PyretObject"?["PyretObject"]:[n,"PyretObject"],atoms:[],isBuiltin:!0};this.types.set(n,i)})}isBuiltinType(r){return["Number","String","Boolean","PyretObject"].includes(r)}isAtomicValue(r){return typeof r=="string"||typeof r=="boolean"||H(r)!==void 0}isPyretObject(r){return typeof r=="object"&&r!==null&&("dict"in r||"brands"in r||"$name"in r||"vals"in r||"$pyretValue"in r||Sr(r))}generateAtomId(r){return`${r?r.toLowerCase().substring(0,3):"atom"}_${++this.atomCounter}`}getAtoms(){return Array.from(this.atoms.values())}getRelations(){let r=this.relations.values();return Array.from(r)}getTypes(){return this.types.forEach(r=>{r.atoms=this.getAtoms().filter(n=>n.type===r.id||!!F(n.type)&&this.types.get(n.type)?.types.includes(r.id))}),Array.from(this.types.values())}getAtomType(r){let n=this.atoms.get(r);if(!n)throw new Error(`Atom with id '${r}' not found`);let i=this.types.get(n.type);return i||(this.ensureTypeExists(n.type),this.types.get(n.type))}generateGraph(r=!1,n=!1){let i=new rl.Graph({directed:!0,multigraph:!0});if(this.getAtoms().forEach(s=>{i.setNode(s.id,{label:s.label})}),this.getRelations().forEach(s=>{s.tuples.forEach(o=>{if(o.atoms.length>=2){let u=o.atoms[0],f=o.atoms[o.atoms.length-1],l=o.atoms.slice(1,-1),p=s.name;if(l.length>0){let c=l.map(w=>{let h=this.atoms.get(w);return h?h.label:w});p=`${s.name}[${c.join(", ")}]`}let b=nl(s,o);i.setEdge(u,f,p,b)}})}),r||n){let s=[];i.nodes().forEach(o=>{let u=i.inEdges(o)||[],f=i.outEdges(o)||[];if(u.length===0&&f.length===0&&this.atoms.get(o)){let c=this.getAtomType(o).isBuiltin;(r||c&&n)&&s.push(o)}}),s.forEach(o=>i.removeNode(o))}return i}addFromDataInstance(r,n){if(!(r instanceof k))return!1;let i=r;for(let o of i.getRelations()){let u=this.relations.get(o.id);u&&$r(u,o)}let s=new Map;return i.getAtoms().forEach(o=>{let u=this.isBuiltinType(o.type);if(n&&u&&(o.type==="String"&&this.options.stringsIdempotent||o.type==="Number"&&this.options.numbersIdempotent||o.type==="Boolean"&&this.options.booleansIdempotent)){let c=Array.from(this.atoms.values()).find(w=>w.type===o.type&&w.label===o.label);if(c){s.set(o.id,c.id);return}}let f=this.generateAtomId(o.type);s.set(o.id,f);let l={...o,id:f};this.addAtom(l);let p=i.originalObjects.get(o.id);p&&this.originalObjects.set(f,p)}),i.getTypes().forEach(o=>{if(!this.types.has(o.id))this.types.set(o.id,{...o,atoms:o.atoms.map(u=>({...u,id:s.get(u.id)||u.id}))});else{let u=this.types.get(o.id),f=o.atoms.map(l=>({...l,id:s.get(l.id)||l.id}));u.atoms.push(...f)}}),i.getRelations().forEach(o=>{let u=o.tuples.map(l=>({atoms:l.atoms.map(p=>s.get(p)||p),types:l.types})),f=this.relations.get(o.id);f?(f.tuples=el([...f.tuples,...u]),f.types=tl(f.tuples,f.types)):this.relations.set(o.id,{...o,tuples:u})}),!0}};k.globalConstructorCache=new Map,k.instantiationCounter=0;var Y=k,uP=(e,t={})=>{try{let r=JSON.parse(e);return new Y(r,t)}catch(r){throw new Error(`Failed to parse Pyret JSON: ${r instanceof Error?r.message:"Unknown error"}`)}},cP=e=>e instanceof Y;var il=Ur(Tr()),jt=class{constructor(t){this.datum=t;this.atoms=new Map(t.atoms.map(r=>[r.id,r])),this.types=new Map(t.types.map(r=>[r.id,r]))}getAtoms(){return this.datum.atoms}getRelations(){return this.datum.relations}getTypes(){return this.datum.types}getAtomType(t){let r=this.atoms.get(t);if(!r)throw new Error(`Unknown captured atom ${t}`);let n=this.types.get(r.type);if(!n)throw new Error(`Unknown captured type ${r.type}`);return n}generateGraph(t=!1,r=!1){let n=new il.Graph({directed:!0,multigraph:!0});for(let i of this.datum.atoms)n.setNode(i.id,{label:i.label});for(let i of this.datum.relations)for(let s of i.tuples){if(s.atoms.length<2)continue;let o=s.atoms[0],u=s.atoms[s.atoms.length-1],f=s.atoms.slice(1,-1).map(p=>this.atoms.get(p).label),l=i.name+(f.length?`[${f.join(", ")}]`:"");n.setEdge(o,u,l,JSON.stringify([i.id,s.atoms]))}if(t||r)for(let i of n.nodes())!(n.nodeEdges(i)||[]).length&&(t||this.getAtomType(i).isBuiltin)&&n.removeNode(i);return n}};var Ke=class extends Error{constructor(r,n,i){super(`Cannot capture ${JSON.stringify(r)}${n.map(s=>`[${JSON.stringify(s)}]`).join("")}: ${i}`);this.root=r;this.path=n;this.reason=i;this.name="PyretCaptureError"}};function sl(e){let t=new Set;function r(n){if(n===null||typeof n=="string"||typeof n=="boolean"||typeof n=="number"&&Number.isFinite(n))return;let i=n&&typeof n=="object"?Object.getPrototypeOf(n):void 0;if(!n||typeof n!="object"||!Array.isArray(n)&&i!==null&&Object.getPrototypeOf(i)!==null)throw new Error("Capture metadata must contain only JSON values");if(t.has(n))throw new Error("Capture metadata must not contain cycles");t.add(n);for(let s of Reflect.ownKeys(n)){let o=Object.getOwnPropertyDescriptor(n,s);if(typeof s!="string"||o.get||o.set)throw new Error("Capture metadata must not contain symbols or accessors")}for(let s of Array.isArray(n)?Array.from(n):Object.values(n))r(s);t.delete(n)}return r(e),JSON.parse(JSON.stringify(e))}function kt(e,t,r){if(!Array.isArray(e)||!e.length)throw new Error("Capture requires at least one named root");let n=new Set;for(let c of e){if(!c||typeof c.name!="string"||!c.name||n.has(c.name))throw new Error("Capture root names must be nonempty and unique");n.add(c.name)}let i=globalThis.crypto?.randomUUID?.()??`${Date.now().toString(36)}-${Math.random().toString(36).slice(2)}`,s=new Map,o=new Map,u=[],f=(c,w,h)=>{if(s.has(c))return s.get(c);try{let m=t.observe(c);if(m.kind==="primitive")return m.value;let y;switch(m.kind){case"nothing":y={$pyretValue:{kind:"nothing"}};break;case"raw-array":y=[];break;case"tuple":y={vals:[]};break;case"object":y={$pyretValue:{kind:"object"},dict:Object.create(null)};break;case"reference":y={$pyretValue:{kind:"reference",unrestricted:!0}};break;case"string-dict":y={$pyretValue:{kind:"string-dict",mutable:m.mutable,sealed:m.sealed},entries:[]};break;case"table":y={$pyretValue:{kind:"table"},dict:Object.create(null)};break;case"constructor":{let d=JSON.stringify(m.info),v=o.get(m.identity);if(v&&v.schema!==d)throw new Error("Constructor schema changed during capture");v||(v={id:Kf(i,o.size,m.info.name),schema:d},o.set(m.identity,v)),y={$name:v.id,$arity:m.info.arity,$constructor:{$fieldNames:m.info.fields.slice()},$mut_fields_mask:m.info.fields.map((x,_)=>(m.info.mutableFields??[]).includes(_)),dict:Object.create(null)};break}default:throw new Error("Unsupported adapter observation")}return s.set(c,y),u.push({carrier:y,observed:m,root:w,path:h}),y}catch(m){throw m instanceof Ke?m:new Ke(w,h,m instanceof Error?m.message:String(m))}},l=e.map(c=>f(c.value,c.name,[]));for(let c=0;c<u.length;c++){let{carrier:w,observed:h,root:m,path:y}=u[c],d=(v,...x)=>f(v,m,[...y,...x]);switch(h.kind){case"constructor":h.info.fields.forEach((v,x)=>{w.dict[v]=d(h.values[x],v)});break;case"object":h.fields.forEach(([v,x])=>{w.dict[v]=d(x,v)});break;case"raw-array":h.values.forEach((v,x)=>w.push(d(v,x)));break;case"tuple":h.values.forEach((v,x)=>w.vals.push(d(v,x)));break;case"reference":w.value=d(h.value,"target");break;case"string-dict":h.entries.forEach(([v,x])=>w.entries.push([v,d(x,v)]));break;case"table":w.dict["_header-raw-array"]=h.headers.slice(),w.dict["_rows-raw-array"]=h.rows.map((v,x)=>v.map((_,T)=>d(_,"rows",x,h.headers[T])));break}}let{instance:p,rootIds:b}=Y.fromValues(l);return sl({format:"spytial-pyret-capture",version:1,datum:{atoms:[...p.getAtoms()],relations:[...p.getRelations()],types:[...p.getTypes()]},roots:e.map((c,w)=>({name:c.name,atomId:b[w],...c.observation===void 0?{}:{observation:c.observation}})),...r===void 0?{}:{provenance:r}})}function Rt(e){let t=sl(e);if(!t||t.format!=="spytial-pyret-capture"||t.version!==1)throw new Error("Unsupported Pyret capture format/version");if(!Array.isArray(t.roots)||!t.roots.length||!t.datum||!Array.isArray(t.datum.atoms)||!Array.isArray(t.datum.relations)||!Array.isArray(t.datum.types))throw new Error("Malformed Pyret capture");let r=new Map,n=new Set(["Number","String","Boolean","Nothing","Object","Index","Tuple","RawArray","Reference","StringDict","MutableStringDict","Table"]);for(let c of t.datum.atoms){if(!c||typeof c.id!="string"||!c.id||r.has(c.id)||typeof c.label!="string"||typeof c.type!="string"||!n.has(c.type)&&!F(c.type))throw new Error("Malformed or duplicate Pyret capture atom");if(c.type==="Index"&&(!/^(0|[1-9][0-9]*)$/.test(c.label)||!Number.isSafeInteger(Number(c.label))))throw new Error("Malformed Pyret capture index");r.set(c.id,c)}let i=new Set,s=(c,w)=>c===w.type||c==="PyretObject"||!n.has(c)&&c===F(w.type)?.name,o=new Set;for(let c of t.datum.types){if(!c||typeof c.id!="string"||o.has(c.id)||!Array.isArray(c.types)||c.types[0]!==c.id||c.types.some(h=>typeof h!="string")||!Array.isArray(c.atoms)||typeof c.isBuiltin!="boolean")throw new Error("Malformed Pyret capture type");o.add(c.id);let w=new Set;for(let h of c.atoms){let m=h&&r.get(h.id);if(!m||w.has(h.id)||h.type!==m.type||h.label!==m.label||!s(c.id,m))throw new Error("Invalid Pyret capture type membership");w.add(h.id)}}if([...r.values()].some(c=>!o.has(c.type))||t.datum.types.some(c=>c.types.some(w=>!o.has(w))))throw new Error("Unknown Pyret capture type");for(let c of t.datum.relations){if(!c||typeof c.id!="string"||i.has(c.id)||typeof c.name!="string"||!Array.isArray(c.tuples)||!Array.isArray(c.types)||c.types.some(h=>typeof h!="string"))throw new Error("Malformed or duplicate Pyret capture relation");i.add(c.id);let w=new Set;for(let h of c.tuples){if(!h||!Array.isArray(h.atoms)||!h.atoms.length||h.atoms.some(y=>!r.has(y))||!Array.isArray(h.types)||h.types.length!==h.atoms.length||h.types.some((y,d)=>!s(y,r.get(h.atoms[d]))))throw new Error("Malformed Pyret capture tuple");let m=JSON.stringify(h.atoms);if(w.has(m))throw new Error("Duplicate Pyret capture tuple");w.add(m)}}let u=new Set;for(let c of t.roots){if(!c||typeof c.name!="string"||!c.name||u.has(c.name)||!r.has(c.atomId)||r.get(c.atomId).type==="Index")throw new Error("Invalid Pyret capture root");u.add(c.name)}let f=new jt(t.datum),l=[...r.values()].filter(c=>c.type!=="Index").map(c=>c.id),p=Ge(f,l,{allowContainerCycles:!0}),b=new Map(l.map((c,w)=>[c,p[w]]));return{snapshot:t,instance:f,values:new Map(t.roots.map(c=>[c.name,b.get(c.atomId)]))}}function Ct(e){for(let t of["isNumber","isNothing","isDataValue","isTuple","isRef","isFunction","isMethod","isOpaque","isObject"])if(typeof e?.[t]!="function")throw new Error(`Pyret runtime lacks ${t}`);return{observe(t){if(typeof t=="string"||typeof t=="boolean")return{kind:"primitive",value:t};if(e.isNumber(t)){let n=H(t);if(!n)throw new Error("Unsupported Pyret numeric representation");return{kind:"primitive",value:{$pyretNumber:n}}}if(e.isFunction(t))throw new Error("Unsupported Pyret function");if(e.isMethod(t))throw new Error("Unsupported Pyret method");if(e.isOpaque(t))throw new Error("Unsupported Pyret opaque value");if(e.isNothing(t))return{kind:"nothing"};if(Array.isArray(t)){if(Array.from({length:t.length},(n,i)=>i).some(n=>!(n in t)))throw new Error("Unsupported sparse raw array");return{kind:"raw-array",values:t.slice()}}let r=t;if(e.isRef(t)){if(r.state!==2)throw new Error("Unsupported Pyret reference state: only initialized mutable references are supported");if(!Array.isArray(r.anns?.anns)||!r.anns.anns.every(n=>n.ann===e.Any))throw new Error("Unsupported Pyret reference annotation: only the runtime Any annotation is supported");return{kind:"reference",value:r.value}}if(e.isTuple(t))return{kind:"tuple",values:r.vals.slice()};if(e.isDataValue(t)){let n=W(r);if(!n||!r.$constructor||typeof r.$constructor!="object")throw new Error("Invalid Pyret constructor metadata");for(let i in r.dict)if(!n.fields.includes(i)&&i!=="$fieldNames"&&!e.isMethod(r.dict[i]))throw new Error(`Unsupported extra constructor field ${JSON.stringify(i)}`);return{kind:"constructor",identity:r.$constructor,info:n,values:n.fields.map(i=>r.dict[i])}}if(e.isObject(t)){if(Ot(r))throw new Error("Unsupported standalone Pyret Row");if(Et(r))return{kind:"table",...ce(r)};let n=_t(r);if(n)return{...n,entries:Tt(r,n)};if(r.brands&&Object.keys(r.brands).some(s=>s!=="brandCount"&&r.brands[s]===!0))throw new Error("Unsupported branded Pyret object");let i=[];for(let s in r.dict)i.push([s,r.dict[s]]);return{kind:"object",fields:i}}throw new Error("Unsupported value from this Pyret runtime")}}}function fP(e,t){return Rt(kt([{name:"value",value:e}],Ct(t))).instance}function lP(e,t){let r=kt([{name:"value",value:e}],Ct(t)),{instance:n}=Rt(r),i;try{i=fe(n,r.roots[0].atomId)}catch(s){i="Source preview unavailable: "+(s instanceof Error?s.message:String(s))}return{snapshot:r,instance:n,sourcePreview:i}}function pP(e){return{...e,nodes:e.nodes.map(t=>({...t,mostSpecificType:L(t.mostSpecificType)}))}}var ol=new Set(["Number","String","Boolean","Index"]);function al(e,t){let r=e.getAtoms(),n=e.getRelations(),i=new Map(r.map(y=>[y.id,y])),s=y=>ve(y.id)?y.id:y.name,o=new Map,u=new Set;for(let y of n)for(let d of y.tuples){if(d.atoms.length<1)continue;let v=d.atoms[0];for(let _=1;_<d.atoms.length;_++)u.add(d.atoms[_]);let x=o.get(v)??[];x.push({rel:s(y),tuple:d.atoms.slice()}),o.set(v,x)}let f=y=>{let d=i.get(y);return d?JSON.stringify([d.type,ol.has(d.type)?d.label:void 0]):"?"},l=t?[t]:r.map(y=>y.id).filter(y=>!u.has(y)),p=(l.length?l:r.map(y=>y.id)).slice().sort((y,d)=>{let v=f(y).localeCompare(f(d));return v!==0?v:y.localeCompare(d)}),b=new Map,c=0,w=y=>{let d=[y];for(;d.length;){let v=d.pop();if(b.has(v))continue;b.set(v,c++);let x=(o.get(v)??[]).slice().sort((_,T)=>{let C=_.rel.localeCompare(T.rel);if(C!==0)return C;let D=_.tuple.slice(1).map(f).join("|"),B=T.tuple.slice(1).map(f).join("|");return D.localeCompare(B)});for(let _=x.length-1;_>=0;_--){let T=x[_].tuple;for(let C=T.length-1;C>=1;C--)d.push(T[C])}}};for(let y of p)w(y);r.map(y=>y.id).sort().forEach(y=>{b.has(y)||b.set(y,c++)});let h=r.map(y=>({id:b.get(y.id),type:y.type,label:ol.has(y.type)?y.label:void 0})).sort((y,d)=>y.id-d.id),m=n.map(y=>{let d=y.tuples.filter(v=>v.atoms.length>=1).map(v=>v.atoms.map(x=>b.get(x)??-1));return d.sort((v,x)=>{let _=Math.min(v.length,x.length);for(let T=0;T<_;T++)if(v[T]!==x[T])return v[T]-x[T];return v.length-x.length}),{name:s(y),tuples:d}}).filter(y=>y.tuples.length>0).sort((y,d)=>y.name.localeCompare(d.name)||JSON.stringify(y.tuples).localeCompare(JSON.stringify(d.tuples)));return JSON.stringify({atoms:h,relations:m})}