agent-dag 1.33.103 → 1.33.104
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.
|
@@ -56,7 +56,7 @@ Error generating stack: `+w.message+`
|
|
|
56
56
|
*/var cw;function _R(){if(cw)return Jc;cw=1;var e=oa(),n=xR();function r(h,f){return h===f&&(h!==0||1/h===1/f)||h!==h&&f!==f}var s=typeof Object.is=="function"?Object.is:r,o=n.useSyncExternalStore,l=e.useRef,u=e.useEffect,c=e.useMemo,p=e.useDebugValue;return Jc.useSyncExternalStoreWithSelector=function(h,f,m,y,x){var C=l(null);if(C.current===null){var _={hasValue:!1,value:null};C.current=_}else _=C.current;C=c(function(){function b(M){if(!k){if(k=!0,N=M,M=y(M),x!==void 0&&_.hasValue){var O=_.value;if(x(O,M))return T=O}return T=M}if(O=T,s(N,M))return O;var H=y(M);return x!==void 0&&x(O,H)?(N=M,O):(N=M,T=H)}var k=!1,N,T,I=m===void 0?null:m;return[function(){return b(f())},I===null?void 0:function(){return b(I())}]},[f,m,y,x]);var S=o(h,C[0],C[1]);return u(function(){_.hasValue=!0,_.value=S},[S]),p(S),S},Jc}var dw;function SR(){return dw||(dw=1,Zc.exports=_R()),Zc.exports}var bR=SR();const kR=nv(bR),ER={},fw=e=>{let n;const r=new Set,s=(f,m)=>{const y=typeof f=="function"?f(n):f;if(!Object.is(y,n)){const x=n;n=m??(typeof y!="object"||y===null)?y:Object.assign({},n,y),r.forEach(C=>C(n,x))}},o=()=>n,p={setState:s,getState:o,getInitialState:()=>h,subscribe:f=>(r.add(f),()=>r.delete(f)),destroy:()=>{(ER?"production":void 0)!=="production"&&console.warn("[DEPRECATED] The `destroy` method will be unsupported in a future version. Instead use unsubscribe function returned by subscribe. Everything will be garbage-collected if store is garbage-collected."),r.clear()}},h=n=e(s,o,p);return p},NR=e=>e?fw(e):fw,{useDebugValue:CR}=le,{useSyncExternalStoreWithSelector:TR}=kR,RR=e=>e;function Xk(e,n=RR,r){const s=TR(e.subscribe,e.getState,e.getServerState||e.getInitialState,n,r);return CR(s),s}const hw=(e,n)=>{const r=NR(e),s=(o,l=n)=>Xk(r,o,l);return Object.assign(s,r),s},jR=(e,n)=>e?hw(e,n):hw;function kt(e,n){if(Object.is(e,n))return!0;if(typeof e!="object"||e===null||typeof n!="object"||n===null)return!1;if(e instanceof Map&&n instanceof Map){if(e.size!==n.size)return!1;for(const[s,o]of e)if(!Object.is(o,n.get(s)))return!1;return!0}if(e instanceof Set&&n instanceof Set){if(e.size!==n.size)return!1;for(const s of e)if(!n.has(s))return!1;return!0}const r=Object.keys(e);if(r.length!==Object.keys(n).length)return!1;for(const s of r)if(!Object.prototype.hasOwnProperty.call(n,s)||!Object.is(e[s],n[s]))return!1;return!0}var AR={value:()=>{}};function Ql(){for(var e=0,n=arguments.length,r={},s;e<n;++e){if(!(s=arguments[e]+"")||s in r||/[\s.]/.test(s))throw new Error("illegal type: "+s);r[s]=[]}return new Pl(r)}function Pl(e){this._=e}function IR(e,n){return e.trim().split(/^|\s+/).map(function(r){var s="",o=r.indexOf(".");if(o>=0&&(s=r.slice(o+1),r=r.slice(0,o)),r&&!n.hasOwnProperty(r))throw new Error("unknown type: "+r);return{type:r,name:s}})}Pl.prototype=Ql.prototype={constructor:Pl,on:function(e,n){var r=this._,s=IR(e+"",r),o,l=-1,u=s.length;if(arguments.length<2){for(;++l<u;)if((o=(e=s[l]).type)&&(o=MR(r[o],e.name)))return o;return}if(n!=null&&typeof n!="function")throw new Error("invalid callback: "+n);for(;++l<u;)if(o=(e=s[l]).type)r[o]=pw(r[o],e.name,n);else if(n==null)for(o in r)r[o]=pw(r[o],e.name,null);return this},copy:function(){var e={},n=this._;for(var r in n)e[r]=n[r].slice();return new Pl(e)},call:function(e,n){if((o=arguments.length-2)>0)for(var r=new Array(o),s=0,o,l;s<o;++s)r[s]=arguments[s+2];if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(l=this._[e],s=0,o=l.length;s<o;++s)l[s].value.apply(n,r)},apply:function(e,n,r){if(!this._.hasOwnProperty(e))throw new Error("unknown type: "+e);for(var s=this._[e],o=0,l=s.length;o<l;++o)s[o].value.apply(n,r)}};function MR(e,n){for(var r=0,s=e.length,o;r<s;++r)if((o=e[r]).name===n)return o.value}function pw(e,n,r){for(var s=0,o=e.length;s<o;++s)if(e[s].name===n){e[s]=AR,e=e.slice(0,s).concat(e.slice(s+1));break}return r!=null&&e.push({name:n,value:r}),e}var Mg="http://www.w3.org/1999/xhtml";const mw={svg:"http://www.w3.org/2000/svg",xhtml:Mg,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function Zl(e){var n=e+="",r=n.indexOf(":");return r>=0&&(n=e.slice(0,r))!=="xmlns"&&(e=e.slice(r+1)),mw.hasOwnProperty(n)?{space:mw[n],local:e}:e}function PR(e){return function(){var n=this.ownerDocument,r=this.namespaceURI;return r===Mg&&n.documentElement.namespaceURI===Mg?n.createElement(e):n.createElementNS(r,e)}}function OR(e){return function(){return this.ownerDocument.createElementNS(e.space,e.local)}}function Qk(e){var n=Zl(e);return(n.local?OR:PR)(n)}function LR(){}function rv(e){return e==null?LR:function(){return this.querySelector(e)}}function qR(e){typeof e!="function"&&(e=rv(e));for(var n=this._groups,r=n.length,s=new Array(r),o=0;o<r;++o)for(var l=n[o],u=l.length,c=s[o]=new Array(u),p,h,f=0;f<u;++f)(p=l[f])&&(h=e.call(p,p.__data__,f,l))&&("__data__"in p&&(h.__data__=p.__data__),c[f]=h);return new gn(s,this._parents)}function $R(e){return e==null?[]:Array.isArray(e)?e:Array.from(e)}function DR(){return[]}function Zk(e){return e==null?DR:function(){return this.querySelectorAll(e)}}function FR(e){return function(){return $R(e.apply(this,arguments))}}function zR(e){typeof e=="function"?e=FR(e):e=Zk(e);for(var n=this._groups,r=n.length,s=[],o=[],l=0;l<r;++l)for(var u=n[l],c=u.length,p,h=0;h<c;++h)(p=u[h])&&(s.push(e.call(p,p.__data__,h,u)),o.push(p));return new gn(s,o)}function Jk(e){return function(){return this.matches(e)}}function eE(e){return function(n){return n.matches(e)}}var BR=Array.prototype.find;function UR(e){return function(){return BR.call(this.children,e)}}function HR(){return this.firstElementChild}function WR(e){return this.select(e==null?HR:UR(typeof e=="function"?e:eE(e)))}var VR=Array.prototype.filter;function GR(){return Array.from(this.children)}function YR(e){return function(){return VR.call(this.children,e)}}function KR(e){return this.selectAll(e==null?GR:YR(typeof e=="function"?e:eE(e)))}function XR(e){typeof e!="function"&&(e=Jk(e));for(var n=this._groups,r=n.length,s=new Array(r),o=0;o<r;++o)for(var l=n[o],u=l.length,c=s[o]=[],p,h=0;h<u;++h)(p=l[h])&&e.call(p,p.__data__,h,l)&&c.push(p);return new gn(s,this._parents)}function tE(e){return new Array(e.length)}function QR(){return new gn(this._enter||this._groups.map(tE),this._parents)}function $l(e,n){this.ownerDocument=e.ownerDocument,this.namespaceURI=e.namespaceURI,this._next=null,this._parent=e,this.__data__=n}$l.prototype={constructor:$l,appendChild:function(e){return this._parent.insertBefore(e,this._next)},insertBefore:function(e,n){return this._parent.insertBefore(e,n)},querySelector:function(e){return this._parent.querySelector(e)},querySelectorAll:function(e){return this._parent.querySelectorAll(e)}};function ZR(e){return function(){return e}}function JR(e,n,r,s,o,l){for(var u=0,c,p=n.length,h=l.length;u<h;++u)(c=n[u])?(c.__data__=l[u],s[u]=c):r[u]=new $l(e,l[u]);for(;u<p;++u)(c=n[u])&&(o[u]=c)}function ej(e,n,r,s,o,l,u){var c,p,h=new Map,f=n.length,m=l.length,y=new Array(f),x;for(c=0;c<f;++c)(p=n[c])&&(y[c]=x=u.call(p,p.__data__,c,n)+"",h.has(x)?o[c]=p:h.set(x,p));for(c=0;c<m;++c)x=u.call(e,l[c],c,l)+"",(p=h.get(x))?(s[c]=p,p.__data__=l[c],h.delete(x)):r[c]=new $l(e,l[c]);for(c=0;c<f;++c)(p=n[c])&&h.get(y[c])===p&&(o[c]=p)}function tj(e){return e.__data__}function nj(e,n){if(!arguments.length)return Array.from(this,tj);var r=n?ej:JR,s=this._parents,o=this._groups;typeof e!="function"&&(e=ZR(e));for(var l=o.length,u=new Array(l),c=new Array(l),p=new Array(l),h=0;h<l;++h){var f=s[h],m=o[h],y=m.length,x=rj(e.call(f,f&&f.__data__,h,s)),C=x.length,_=c[h]=new Array(C),S=u[h]=new Array(C),b=p[h]=new Array(y);r(f,m,_,S,b,x,n);for(var k=0,N=0,T,I;k<C;++k)if(T=_[k]){for(k>=N&&(N=k+1);!(I=S[N])&&++N<C;);T._next=I||null}}return u=new gn(u,s),u._enter=c,u._exit=p,u}function rj(e){return typeof e=="object"&&"length"in e?e:Array.from(e)}function ij(){return new gn(this._exit||this._groups.map(tE),this._parents)}function sj(e,n,r){var s=this.enter(),o=this,l=this.exit();return typeof e=="function"?(s=e(s),s&&(s=s.selection())):s=s.append(e+""),n!=null&&(o=n(o),o&&(o=o.selection())),r==null?l.remove():r(l),s&&o?s.merge(o).order():o}function oj(e){for(var n=e.selection?e.selection():e,r=this._groups,s=n._groups,o=r.length,l=s.length,u=Math.min(o,l),c=new Array(o),p=0;p<u;++p)for(var h=r[p],f=s[p],m=h.length,y=c[p]=new Array(m),x,C=0;C<m;++C)(x=h[C]||f[C])&&(y[C]=x);for(;p<o;++p)c[p]=r[p];return new gn(c,this._parents)}function aj(){for(var e=this._groups,n=-1,r=e.length;++n<r;)for(var s=e[n],o=s.length-1,l=s[o],u;--o>=0;)(u=s[o])&&(l&&u.compareDocumentPosition(l)^4&&l.parentNode.insertBefore(u,l),l=u);return this}function lj(e){e||(e=uj);function n(m,y){return m&&y?e(m.__data__,y.__data__):!m-!y}for(var r=this._groups,s=r.length,o=new Array(s),l=0;l<s;++l){for(var u=r[l],c=u.length,p=o[l]=new Array(c),h,f=0;f<c;++f)(h=u[f])&&(p[f]=h);p.sort(n)}return new gn(o,this._parents).order()}function uj(e,n){return e<n?-1:e>n?1:e>=n?0:NaN}function cj(){var e=arguments[0];return arguments[0]=this,e.apply(null,arguments),this}function dj(){return Array.from(this)}function fj(){for(var e=this._groups,n=0,r=e.length;n<r;++n)for(var s=e[n],o=0,l=s.length;o<l;++o){var u=s[o];if(u)return u}return null}function hj(){let e=0;for(const n of this)++e;return e}function pj(){return!this.node()}function mj(e){for(var n=this._groups,r=0,s=n.length;r<s;++r)for(var o=n[r],l=0,u=o.length,c;l<u;++l)(c=o[l])&&e.call(c,c.__data__,l,o);return this}function gj(e){return function(){this.removeAttribute(e)}}function vj(e){return function(){this.removeAttributeNS(e.space,e.local)}}function yj(e,n){return function(){this.setAttribute(e,n)}}function wj(e,n){return function(){this.setAttributeNS(e.space,e.local,n)}}function xj(e,n){return function(){var r=n.apply(this,arguments);r==null?this.removeAttribute(e):this.setAttribute(e,r)}}function _j(e,n){return function(){var r=n.apply(this,arguments);r==null?this.removeAttributeNS(e.space,e.local):this.setAttributeNS(e.space,e.local,r)}}function Sj(e,n){var r=Zl(e);if(arguments.length<2){var s=this.node();return r.local?s.getAttributeNS(r.space,r.local):s.getAttribute(r)}return this.each((n==null?r.local?vj:gj:typeof n=="function"?r.local?_j:xj:r.local?wj:yj)(r,n))}function nE(e){return e.ownerDocument&&e.ownerDocument.defaultView||e.document&&e||e.defaultView}function bj(e){return function(){this.style.removeProperty(e)}}function kj(e,n,r){return function(){this.style.setProperty(e,n,r)}}function Ej(e,n,r){return function(){var s=n.apply(this,arguments);s==null?this.style.removeProperty(e):this.style.setProperty(e,s,r)}}function Nj(e,n,r){return arguments.length>1?this.each((n==null?bj:typeof n=="function"?Ej:kj)(e,n,r??"")):Ks(this.node(),e)}function Ks(e,n){return e.style.getPropertyValue(n)||nE(e).getComputedStyle(e,null).getPropertyValue(n)}function Cj(e){return function(){delete this[e]}}function Tj(e,n){return function(){this[e]=n}}function Rj(e,n){return function(){var r=n.apply(this,arguments);r==null?delete this[e]:this[e]=r}}function jj(e,n){return arguments.length>1?this.each((n==null?Cj:typeof n=="function"?Rj:Tj)(e,n)):this.node()[e]}function rE(e){return e.trim().split(/^|\s+/)}function iv(e){return e.classList||new iE(e)}function iE(e){this._node=e,this._names=rE(e.getAttribute("class")||"")}iE.prototype={add:function(e){var n=this._names.indexOf(e);n<0&&(this._names.push(e),this._node.setAttribute("class",this._names.join(" ")))},remove:function(e){var n=this._names.indexOf(e);n>=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(e){return this._names.indexOf(e)>=0}};function sE(e,n){for(var r=iv(e),s=-1,o=n.length;++s<o;)r.add(n[s])}function oE(e,n){for(var r=iv(e),s=-1,o=n.length;++s<o;)r.remove(n[s])}function Aj(e){return function(){sE(this,e)}}function Ij(e){return function(){oE(this,e)}}function Mj(e,n){return function(){(n.apply(this,arguments)?sE:oE)(this,e)}}function Pj(e,n){var r=rE(e+"");if(arguments.length<2){for(var s=iv(this.node()),o=-1,l=r.length;++o<l;)if(!s.contains(r[o]))return!1;return!0}return this.each((typeof n=="function"?Mj:n?Aj:Ij)(r,n))}function Oj(){this.textContent=""}function Lj(e){return function(){this.textContent=e}}function qj(e){return function(){var n=e.apply(this,arguments);this.textContent=n??""}}function $j(e){return arguments.length?this.each(e==null?Oj:(typeof e=="function"?qj:Lj)(e)):this.node().textContent}function Dj(){this.innerHTML=""}function Fj(e){return function(){this.innerHTML=e}}function zj(e){return function(){var n=e.apply(this,arguments);this.innerHTML=n??""}}function Bj(e){return arguments.length?this.each(e==null?Dj:(typeof e=="function"?zj:Fj)(e)):this.node().innerHTML}function Uj(){this.nextSibling&&this.parentNode.appendChild(this)}function Hj(){return this.each(Uj)}function Wj(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function Vj(){return this.each(Wj)}function Gj(e){var n=typeof e=="function"?e:Qk(e);return this.select(function(){return this.appendChild(n.apply(this,arguments))})}function Yj(){return null}function Kj(e,n){var r=typeof e=="function"?e:Qk(e),s=n==null?Yj:typeof n=="function"?n:rv(n);return this.select(function(){return this.insertBefore(r.apply(this,arguments),s.apply(this,arguments)||null)})}function Xj(){var e=this.parentNode;e&&e.removeChild(this)}function Qj(){return this.each(Xj)}function Zj(){var e=this.cloneNode(!1),n=this.parentNode;return n?n.insertBefore(e,this.nextSibling):e}function Jj(){var e=this.cloneNode(!0),n=this.parentNode;return n?n.insertBefore(e,this.nextSibling):e}function e2(e){return this.select(e?Jj:Zj)}function t2(e){return arguments.length?this.property("__data__",e):this.node().__data__}function n2(e){return function(n){e.call(this,n,this.__data__)}}function r2(e){return e.trim().split(/^|\s+/).map(function(n){var r="",s=n.indexOf(".");return s>=0&&(r=n.slice(s+1),n=n.slice(0,s)),{type:n,name:r}})}function i2(e){return function(){var n=this.__on;if(n){for(var r=0,s=-1,o=n.length,l;r<o;++r)l=n[r],(!e.type||l.type===e.type)&&l.name===e.name?this.removeEventListener(l.type,l.listener,l.options):n[++s]=l;++s?n.length=s:delete this.__on}}}function s2(e,n,r){return function(){var s=this.__on,o,l=n2(n);if(s){for(var u=0,c=s.length;u<c;++u)if((o=s[u]).type===e.type&&o.name===e.name){this.removeEventListener(o.type,o.listener,o.options),this.addEventListener(o.type,o.listener=l,o.options=r),o.value=n;return}}this.addEventListener(e.type,l,r),o={type:e.type,name:e.name,value:n,listener:l,options:r},s?s.push(o):this.__on=[o]}}function o2(e,n,r){var s=r2(e+""),o,l=s.length,u;if(arguments.length<2){var c=this.node().__on;if(c){for(var p=0,h=c.length,f;p<h;++p)for(o=0,f=c[p];o<l;++o)if((u=s[o]).type===f.type&&u.name===f.name)return f.value}return}for(c=n?s2:i2,o=0;o<l;++o)this.each(c(s[o],n,r));return this}function aE(e,n,r){var s=nE(e),o=s.CustomEvent;typeof o=="function"?o=new o(n,r):(o=s.document.createEvent("Event"),r?(o.initEvent(n,r.bubbles,r.cancelable),o.detail=r.detail):o.initEvent(n,!1,!1)),e.dispatchEvent(o)}function a2(e,n){return function(){return aE(this,e,n)}}function l2(e,n){return function(){return aE(this,e,n.apply(this,arguments))}}function u2(e,n){return this.each((typeof n=="function"?l2:a2)(e,n))}function*c2(){for(var e=this._groups,n=0,r=e.length;n<r;++n)for(var s=e[n],o=0,l=s.length,u;o<l;++o)(u=s[o])&&(yield u)}var lE=[null];function gn(e,n){this._groups=e,this._parents=n}function aa(){return new gn([[document.documentElement]],lE)}function d2(){return this}gn.prototype=aa.prototype={constructor:gn,select:qR,selectAll:zR,selectChild:WR,selectChildren:KR,filter:XR,data:nj,enter:QR,exit:ij,join:sj,merge:oj,selection:d2,order:aj,sort:lj,call:cj,nodes:dj,node:fj,size:hj,empty:pj,each:mj,attr:Sj,style:Nj,property:jj,classed:Pj,text:$j,html:Bj,raise:Hj,lower:Vj,append:Gj,insert:Kj,remove:Qj,clone:e2,datum:t2,on:o2,dispatch:u2,[Symbol.iterator]:c2};function Tn(e){return typeof e=="string"?new gn([[document.querySelector(e)]],[document.documentElement]):new gn([[e]],lE)}function f2(e){let n;for(;n=e.sourceEvent;)e=n;return e}function Xn(e,n){if(e=f2(e),n===void 0&&(n=e.currentTarget),n){var r=n.ownerSVGElement||n;if(r.createSVGPoint){var s=r.createSVGPoint();return s.x=e.clientX,s.y=e.clientY,s=s.matrixTransform(n.getScreenCTM().inverse()),[s.x,s.y]}if(n.getBoundingClientRect){var o=n.getBoundingClientRect();return[e.clientX-o.left-n.clientLeft,e.clientY-o.top-n.clientTop]}}return[e.pageX,e.pageY]}const h2={passive:!1},Xo={capture:!0,passive:!1};function nd(e){e.stopImmediatePropagation()}function Ws(e){e.preventDefault(),e.stopImmediatePropagation()}function uE(e){var n=e.document.documentElement,r=Tn(e).on("dragstart.drag",Ws,Xo);"onselectstart"in n?r.on("selectstart.drag",Ws,Xo):(n.__noselect=n.style.MozUserSelect,n.style.MozUserSelect="none")}function cE(e,n){var r=e.document.documentElement,s=Tn(e).on("dragstart.drag",null);n&&(s.on("click.drag",Ws,Xo),setTimeout(function(){s.on("click.drag",null)},0)),"onselectstart"in r?s.on("selectstart.drag",null):(r.style.MozUserSelect=r.__noselect,delete r.__noselect)}const yl=e=>()=>e;function Pg(e,{sourceEvent:n,subject:r,target:s,identifier:o,active:l,x:u,y:c,dx:p,dy:h,dispatch:f}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},subject:{value:r,enumerable:!0,configurable:!0},target:{value:s,enumerable:!0,configurable:!0},identifier:{value:o,enumerable:!0,configurable:!0},active:{value:l,enumerable:!0,configurable:!0},x:{value:u,enumerable:!0,configurable:!0},y:{value:c,enumerable:!0,configurable:!0},dx:{value:p,enumerable:!0,configurable:!0},dy:{value:h,enumerable:!0,configurable:!0},_:{value:f}})}Pg.prototype.on=function(){var e=this._.on.apply(this._,arguments);return e===this._?this:e};function p2(e){return!e.ctrlKey&&!e.button}function m2(){return this.parentNode}function g2(e,n){return n??{x:e.x,y:e.y}}function v2(){return navigator.maxTouchPoints||"ontouchstart"in this}function y2(){var e=p2,n=m2,r=g2,s=v2,o={},l=Ql("start","drag","end"),u=0,c,p,h,f,m=0;function y(T){T.on("mousedown.drag",x).filter(s).on("touchstart.drag",S).on("touchmove.drag",b,h2).on("touchend.drag touchcancel.drag",k).style("touch-action","none").style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function x(T,I){if(!(f||!e.call(this,T,I))){var M=N(this,n.call(this,T,I),T,I,"mouse");M&&(Tn(T.view).on("mousemove.drag",C,Xo).on("mouseup.drag",_,Xo),uE(T.view),nd(T),h=!1,c=T.clientX,p=T.clientY,M("start",T))}}function C(T){if(Ws(T),!h){var I=T.clientX-c,M=T.clientY-p;h=I*I+M*M>m}o.mouse("drag",T)}function _(T){Tn(T.view).on("mousemove.drag mouseup.drag",null),cE(T.view,h),Ws(T),o.mouse("end",T)}function S(T,I){if(e.call(this,T,I)){var M=T.changedTouches,O=n.call(this,T,I),H=M.length,L,P;for(L=0;L<H;++L)(P=N(this,O,T,I,M[L].identifier,M[L]))&&(nd(T),P("start",T,M[L]))}}function b(T){var I=T.changedTouches,M=I.length,O,H;for(O=0;O<M;++O)(H=o[I[O].identifier])&&(Ws(T),H("drag",T,I[O]))}function k(T){var I=T.changedTouches,M=I.length,O,H;for(f&&clearTimeout(f),f=setTimeout(function(){f=null},500),O=0;O<M;++O)(H=o[I[O].identifier])&&(nd(T),H("end",T,I[O]))}function N(T,I,M,O,H,L){var P=l.copy(),q=Xn(L||M,I),W,B,j;if((j=r.call(T,new Pg("beforestart",{sourceEvent:M,target:y,identifier:H,active:u,x:q[0],y:q[1],dx:0,dy:0,dispatch:P}),O))!=null)return W=j.x-q[0]||0,B=j.y-q[1]||0,function K(U,ee,J){var F=q,Y;switch(U){case"start":o[H]=K,Y=u++;break;case"end":delete o[H],--u;case"drag":q=Xn(J||ee,I),Y=u;break}P.call(U,T,new Pg(U,{sourceEvent:ee,subject:j,target:y,identifier:H,active:Y,x:q[0]+W,y:q[1]+B,dx:q[0]-F[0],dy:q[1]-F[1],dispatch:P}),O)}}return y.filter=function(T){return arguments.length?(e=typeof T=="function"?T:yl(!!T),y):e},y.container=function(T){return arguments.length?(n=typeof T=="function"?T:yl(T),y):n},y.subject=function(T){return arguments.length?(r=typeof T=="function"?T:yl(T),y):r},y.touchable=function(T){return arguments.length?(s=typeof T=="function"?T:yl(!!T),y):s},y.on=function(){var T=l.on.apply(l,arguments);return T===l?y:T},y.clickDistance=function(T){return arguments.length?(m=(T=+T)*T,y):Math.sqrt(m)},y}function sv(e,n,r){e.prototype=n.prototype=r,r.constructor=e}function dE(e,n){var r=Object.create(e.prototype);for(var s in n)r[s]=n[s];return r}function la(){}var Qo=.7,Dl=1/Qo,Vs="\\s*([+-]?\\d+)\\s*",Zo="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)\\s*",dr="\\s*([+-]?(?:\\d*\\.)?\\d+(?:[eE][+-]?\\d+)?)%\\s*",w2=/^#([0-9a-f]{3,8})$/,x2=new RegExp(`^rgb\\(${Vs},${Vs},${Vs}\\)$`),_2=new RegExp(`^rgb\\(${dr},${dr},${dr}\\)$`),S2=new RegExp(`^rgba\\(${Vs},${Vs},${Vs},${Zo}\\)$`),b2=new RegExp(`^rgba\\(${dr},${dr},${dr},${Zo}\\)$`),k2=new RegExp(`^hsl\\(${Zo},${dr},${dr}\\)$`),E2=new RegExp(`^hsla\\(${Zo},${dr},${dr},${Zo}\\)$`),gw={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};sv(la,Jo,{copy(e){return Object.assign(new this.constructor,this,e)},displayable(){return this.rgb().displayable()},hex:vw,formatHex:vw,formatHex8:N2,formatHsl:C2,formatRgb:yw,toString:yw});function vw(){return this.rgb().formatHex()}function N2(){return this.rgb().formatHex8()}function C2(){return fE(this).formatHsl()}function yw(){return this.rgb().formatRgb()}function Jo(e){var n,r;return e=(e+"").trim().toLowerCase(),(n=w2.exec(e))?(r=n[1].length,n=parseInt(n[1],16),r===6?ww(n):r===3?new un(n>>8&15|n>>4&240,n>>4&15|n&240,(n&15)<<4|n&15,1):r===8?wl(n>>24&255,n>>16&255,n>>8&255,(n&255)/255):r===4?wl(n>>12&15|n>>8&240,n>>8&15|n>>4&240,n>>4&15|n&240,((n&15)<<4|n&15)/255):null):(n=x2.exec(e))?new un(n[1],n[2],n[3],1):(n=_2.exec(e))?new un(n[1]*255/100,n[2]*255/100,n[3]*255/100,1):(n=S2.exec(e))?wl(n[1],n[2],n[3],n[4]):(n=b2.exec(e))?wl(n[1]*255/100,n[2]*255/100,n[3]*255/100,n[4]):(n=k2.exec(e))?Sw(n[1],n[2]/100,n[3]/100,1):(n=E2.exec(e))?Sw(n[1],n[2]/100,n[3]/100,n[4]):gw.hasOwnProperty(e)?ww(gw[e]):e==="transparent"?new un(NaN,NaN,NaN,0):null}function ww(e){return new un(e>>16&255,e>>8&255,e&255,1)}function wl(e,n,r,s){return s<=0&&(e=n=r=NaN),new un(e,n,r,s)}function T2(e){return e instanceof la||(e=Jo(e)),e?(e=e.rgb(),new un(e.r,e.g,e.b,e.opacity)):new un}function Og(e,n,r,s){return arguments.length===1?T2(e):new un(e,n,r,s??1)}function un(e,n,r,s){this.r=+e,this.g=+n,this.b=+r,this.opacity=+s}sv(un,Og,dE(la,{brighter(e){return e=e==null?Dl:Math.pow(Dl,e),new un(this.r*e,this.g*e,this.b*e,this.opacity)},darker(e){return e=e==null?Qo:Math.pow(Qo,e),new un(this.r*e,this.g*e,this.b*e,this.opacity)},rgb(){return this},clamp(){return new un(Gi(this.r),Gi(this.g),Gi(this.b),Fl(this.opacity))},displayable(){return-.5<=this.r&&this.r<255.5&&-.5<=this.g&&this.g<255.5&&-.5<=this.b&&this.b<255.5&&0<=this.opacity&&this.opacity<=1},hex:xw,formatHex:xw,formatHex8:R2,formatRgb:_w,toString:_w}));function xw(){return`#${Wi(this.r)}${Wi(this.g)}${Wi(this.b)}`}function R2(){return`#${Wi(this.r)}${Wi(this.g)}${Wi(this.b)}${Wi((isNaN(this.opacity)?1:this.opacity)*255)}`}function _w(){const e=Fl(this.opacity);return`${e===1?"rgb(":"rgba("}${Gi(this.r)}, ${Gi(this.g)}, ${Gi(this.b)}${e===1?")":`, ${e})`}`}function Fl(e){return isNaN(e)?1:Math.max(0,Math.min(1,e))}function Gi(e){return Math.max(0,Math.min(255,Math.round(e)||0))}function Wi(e){return e=Gi(e),(e<16?"0":"")+e.toString(16)}function Sw(e,n,r,s){return s<=0?e=n=r=NaN:r<=0||r>=1?e=n=NaN:n<=0&&(e=NaN),new Qn(e,n,r,s)}function fE(e){if(e instanceof Qn)return new Qn(e.h,e.s,e.l,e.opacity);if(e instanceof la||(e=Jo(e)),!e)return new Qn;if(e instanceof Qn)return e;e=e.rgb();var n=e.r/255,r=e.g/255,s=e.b/255,o=Math.min(n,r,s),l=Math.max(n,r,s),u=NaN,c=l-o,p=(l+o)/2;return c?(n===l?u=(r-s)/c+(r<s)*6:r===l?u=(s-n)/c+2:u=(n-r)/c+4,c/=p<.5?l+o:2-l-o,u*=60):c=p>0&&p<1?0:u,new Qn(u,c,p,e.opacity)}function j2(e,n,r,s){return arguments.length===1?fE(e):new Qn(e,n,r,s??1)}function Qn(e,n,r,s){this.h=+e,this.s=+n,this.l=+r,this.opacity=+s}sv(Qn,j2,dE(la,{brighter(e){return e=e==null?Dl:Math.pow(Dl,e),new Qn(this.h,this.s,this.l*e,this.opacity)},darker(e){return e=e==null?Qo:Math.pow(Qo,e),new Qn(this.h,this.s,this.l*e,this.opacity)},rgb(){var e=this.h%360+(this.h<0)*360,n=isNaN(e)||isNaN(this.s)?0:this.s,r=this.l,s=r+(r<.5?r:1-r)*n,o=2*r-s;return new un(rd(e>=240?e-240:e+120,o,s),rd(e,o,s),rd(e<120?e+240:e-120,o,s),this.opacity)},clamp(){return new Qn(bw(this.h),xl(this.s),xl(this.l),Fl(this.opacity))},displayable(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1},formatHsl(){const e=Fl(this.opacity);return`${e===1?"hsl(":"hsla("}${bw(this.h)}, ${xl(this.s)*100}%, ${xl(this.l)*100}%${e===1?")":`, ${e})`}`}}));function bw(e){return e=(e||0)%360,e<0?e+360:e}function xl(e){return Math.max(0,Math.min(1,e||0))}function rd(e,n,r){return(e<60?n+(r-n)*e/60:e<180?r:e<240?n+(r-n)*(240-e)/60:n)*255}const hE=e=>()=>e;function A2(e,n){return function(r){return e+r*n}}function I2(e,n,r){return e=Math.pow(e,r),n=Math.pow(n,r)-e,r=1/r,function(s){return Math.pow(e+s*n,r)}}function M2(e){return(e=+e)==1?pE:function(n,r){return r-n?I2(n,r,e):hE(isNaN(n)?r:n)}}function pE(e,n){var r=n-e;return r?A2(e,r):hE(isNaN(e)?n:e)}const kw=(function e(n){var r=M2(n);function s(o,l){var u=r((o=Og(o)).r,(l=Og(l)).r),c=r(o.g,l.g),p=r(o.b,l.b),h=pE(o.opacity,l.opacity);return function(f){return o.r=u(f),o.g=c(f),o.b=p(f),o.opacity=h(f),o+""}}return s.gamma=e,s})(1);function li(e,n){return e=+e,n=+n,function(r){return e*(1-r)+n*r}}var Lg=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,id=new RegExp(Lg.source,"g");function P2(e){return function(){return e}}function O2(e){return function(n){return e(n)+""}}function L2(e,n){var r=Lg.lastIndex=id.lastIndex=0,s,o,l,u=-1,c=[],p=[];for(e=e+"",n=n+"";(s=Lg.exec(e))&&(o=id.exec(n));)(l=o.index)>r&&(l=n.slice(r,l),c[u]?c[u]+=l:c[++u]=l),(s=s[0])===(o=o[0])?c[u]?c[u]+=o:c[++u]=o:(c[++u]=null,p.push({i:u,x:li(s,o)})),r=id.lastIndex;return r<n.length&&(l=n.slice(r),c[u]?c[u]+=l:c[++u]=l),c.length<2?p[0]?O2(p[0].x):P2(n):(n=p.length,function(h){for(var f=0,m;f<n;++f)c[(m=p[f]).i]=m.x(h);return c.join("")})}var Ew=180/Math.PI,qg={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};function mE(e,n,r,s,o,l){var u,c,p;return(u=Math.sqrt(e*e+n*n))&&(e/=u,n/=u),(p=e*r+n*s)&&(r-=e*p,s-=n*p),(c=Math.sqrt(r*r+s*s))&&(r/=c,s/=c,p/=c),e*s<n*r&&(e=-e,n=-n,p=-p,u=-u),{translateX:o,translateY:l,rotate:Math.atan2(n,e)*Ew,skewX:Math.atan(p)*Ew,scaleX:u,scaleY:c}}var _l;function q2(e){const n=new(typeof DOMMatrix=="function"?DOMMatrix:WebKitCSSMatrix)(e+"");return n.isIdentity?qg:mE(n.a,n.b,n.c,n.d,n.e,n.f)}function $2(e){return e==null||(_l||(_l=document.createElementNS("http://www.w3.org/2000/svg","g")),_l.setAttribute("transform",e),!(e=_l.transform.baseVal.consolidate()))?qg:(e=e.matrix,mE(e.a,e.b,e.c,e.d,e.e,e.f))}function gE(e,n,r,s){function o(h){return h.length?h.pop()+" ":""}function l(h,f,m,y,x,C){if(h!==m||f!==y){var _=x.push("translate(",null,n,null,r);C.push({i:_-4,x:li(h,m)},{i:_-2,x:li(f,y)})}else(m||y)&&x.push("translate("+m+n+y+r)}function u(h,f,m,y){h!==f?(h-f>180?f+=360:f-h>180&&(h+=360),y.push({i:m.push(o(m)+"rotate(",null,s)-2,x:li(h,f)})):f&&m.push(o(m)+"rotate("+f+s)}function c(h,f,m,y){h!==f?y.push({i:m.push(o(m)+"skewX(",null,s)-2,x:li(h,f)}):f&&m.push(o(m)+"skewX("+f+s)}function p(h,f,m,y,x,C){if(h!==m||f!==y){var _=x.push(o(x)+"scale(",null,",",null,")");C.push({i:_-4,x:li(h,m)},{i:_-2,x:li(f,y)})}else(m!==1||y!==1)&&x.push(o(x)+"scale("+m+","+y+")")}return function(h,f){var m=[],y=[];return h=e(h),f=e(f),l(h.translateX,h.translateY,f.translateX,f.translateY,m,y),u(h.rotate,f.rotate,m,y),c(h.skewX,f.skewX,m,y),p(h.scaleX,h.scaleY,f.scaleX,f.scaleY,m,y),h=f=null,function(x){for(var C=-1,_=y.length,S;++C<_;)m[(S=y[C]).i]=S.x(x);return m.join("")}}}var D2=gE(q2,"px, ","px)","deg)"),F2=gE($2,", ",")",")"),z2=1e-12;function Nw(e){return((e=Math.exp(e))+1/e)/2}function B2(e){return((e=Math.exp(e))-1/e)/2}function U2(e){return((e=Math.exp(2*e))-1)/(e+1)}const H2=(function e(n,r,s){function o(l,u){var c=l[0],p=l[1],h=l[2],f=u[0],m=u[1],y=u[2],x=f-c,C=m-p,_=x*x+C*C,S,b;if(_<z2)b=Math.log(y/h)/n,S=function(O){return[c+O*x,p+O*C,h*Math.exp(n*O*b)]};else{var k=Math.sqrt(_),N=(y*y-h*h+s*_)/(2*h*r*k),T=(y*y-h*h-s*_)/(2*y*r*k),I=Math.log(Math.sqrt(N*N+1)-N),M=Math.log(Math.sqrt(T*T+1)-T);b=(M-I)/n,S=function(O){var H=O*b,L=Nw(I),P=h/(r*k)*(L*U2(n*H+I)-B2(I));return[c+P*x,p+P*C,h*L/Nw(n*H+I)]}}return S.duration=b*1e3*n/Math.SQRT2,S}return o.rho=function(l){var u=Math.max(.001,+l),c=u*u,p=c*c;return e(u,c,p)},o})(Math.SQRT2,2,4);var Xs=0,Ho=0,$o=0,vE=1e3,zl,Wo,Bl=0,Ki=0,Jl=0,ea=typeof performance=="object"&&performance.now?performance:Date,yE=typeof window=="object"&&window.requestAnimationFrame?window.requestAnimationFrame.bind(window):function(e){setTimeout(e,17)};function ov(){return Ki||(yE(W2),Ki=ea.now()+Jl)}function W2(){Ki=0}function Ul(){this._call=this._time=this._next=null}Ul.prototype=wE.prototype={constructor:Ul,restart:function(e,n,r){if(typeof e!="function")throw new TypeError("callback is not a function");r=(r==null?ov():+r)+(n==null?0:+n),!this._next&&Wo!==this&&(Wo?Wo._next=this:zl=this,Wo=this),this._call=e,this._time=r,$g()},stop:function(){this._call&&(this._call=null,this._time=1/0,$g())}};function wE(e,n,r){var s=new Ul;return s.restart(e,n,r),s}function V2(){ov(),++Xs;for(var e=zl,n;e;)(n=Ki-e._time)>=0&&e._call.call(void 0,n),e=e._next;--Xs}function Cw(){Ki=(Bl=ea.now())+Jl,Xs=Ho=0;try{V2()}finally{Xs=0,Y2(),Ki=0}}function G2(){var e=ea.now(),n=e-Bl;n>vE&&(Jl-=n,Bl=e)}function Y2(){for(var e,n=zl,r,s=1/0;n;)n._call?(s>n._time&&(s=n._time),e=n,n=n._next):(r=n._next,n._next=null,n=e?e._next=r:zl=r);Wo=e,$g(s)}function $g(e){if(!Xs){Ho&&(Ho=clearTimeout(Ho));var n=e-Ki;n>24?(e<1/0&&(Ho=setTimeout(Cw,e-ea.now()-Jl)),$o&&($o=clearInterval($o))):($o||(Bl=ea.now(),$o=setInterval(G2,vE)),Xs=1,yE(Cw))}}function Tw(e,n,r){var s=new Ul;return n=n==null?0:+n,s.restart(o=>{s.stop(),e(o+n)},n,r),s}var K2=Ql("start","end","cancel","interrupt"),X2=[],xE=0,Rw=1,Dg=2,Ol=3,jw=4,Fg=5,Ll=6;function eu(e,n,r,s,o,l){var u=e.__transition;if(!u)e.__transition={};else if(r in u)return;Q2(e,r,{name:n,index:s,group:o,on:K2,tween:X2,time:l.time,delay:l.delay,duration:l.duration,ease:l.ease,timer:null,state:xE})}function av(e,n){var r=er(e,n);if(r.state>xE)throw new Error("too late; already scheduled");return r}function fr(e,n){var r=er(e,n);if(r.state>Ol)throw new Error("too late; already running");return r}function er(e,n){var r=e.__transition;if(!r||!(r=r[n]))throw new Error("transition not found");return r}function Q2(e,n,r){var s=e.__transition,o;s[n]=r,r.timer=wE(l,0,r.time);function l(h){r.state=Rw,r.timer.restart(u,r.delay,r.time),r.delay<=h&&u(h-r.delay)}function u(h){var f,m,y,x;if(r.state!==Rw)return p();for(f in s)if(x=s[f],x.name===r.name){if(x.state===Ol)return Tw(u);x.state===jw?(x.state=Ll,x.timer.stop(),x.on.call("interrupt",e,e.__data__,x.index,x.group),delete s[f]):+f<n&&(x.state=Ll,x.timer.stop(),x.on.call("cancel",e,e.__data__,x.index,x.group),delete s[f])}if(Tw(function(){r.state===Ol&&(r.state=jw,r.timer.restart(c,r.delay,r.time),c(h))}),r.state=Dg,r.on.call("start",e,e.__data__,r.index,r.group),r.state===Dg){for(r.state=Ol,o=new Array(y=r.tween.length),f=0,m=-1;f<y;++f)(x=r.tween[f].value.call(e,e.__data__,r.index,r.group))&&(o[++m]=x);o.length=m+1}}function c(h){for(var f=h<r.duration?r.ease.call(null,h/r.duration):(r.timer.restart(p),r.state=Fg,1),m=-1,y=o.length;++m<y;)o[m].call(e,f);r.state===Fg&&(r.on.call("end",e,e.__data__,r.index,r.group),p())}function p(){r.state=Ll,r.timer.stop(),delete s[n];for(var h in s)return;delete e.__transition}}function ql(e,n){var r=e.__transition,s,o,l=!0,u;if(r){n=n==null?null:n+"";for(u in r){if((s=r[u]).name!==n){l=!1;continue}o=s.state>Dg&&s.state<Fg,s.state=Ll,s.timer.stop(),s.on.call(o?"interrupt":"cancel",e,e.__data__,s.index,s.group),delete r[u]}l&&delete e.__transition}}function Z2(e){return this.each(function(){ql(this,e)})}function J2(e,n){var r,s;return function(){var o=fr(this,e),l=o.tween;if(l!==r){s=r=l;for(var u=0,c=s.length;u<c;++u)if(s[u].name===n){s=s.slice(),s.splice(u,1);break}}o.tween=s}}function eA(e,n,r){var s,o;if(typeof r!="function")throw new Error;return function(){var l=fr(this,e),u=l.tween;if(u!==s){o=(s=u).slice();for(var c={name:n,value:r},p=0,h=o.length;p<h;++p)if(o[p].name===n){o[p]=c;break}p===h&&o.push(c)}l.tween=o}}function tA(e,n){var r=this._id;if(e+="",arguments.length<2){for(var s=er(this.node(),r).tween,o=0,l=s.length,u;o<l;++o)if((u=s[o]).name===e)return u.value;return null}return this.each((n==null?J2:eA)(r,e,n))}function lv(e,n,r){var s=e._id;return e.each(function(){var o=fr(this,s);(o.value||(o.value={}))[n]=r.apply(this,arguments)}),function(o){return er(o,s).value[n]}}function _E(e,n){var r;return(typeof n=="number"?li:n instanceof Jo?kw:(r=Jo(n))?(n=r,kw):L2)(e,n)}function nA(e){return function(){this.removeAttribute(e)}}function rA(e){return function(){this.removeAttributeNS(e.space,e.local)}}function iA(e,n,r){var s,o=r+"",l;return function(){var u=this.getAttribute(e);return u===o?null:u===s?l:l=n(s=u,r)}}function sA(e,n,r){var s,o=r+"",l;return function(){var u=this.getAttributeNS(e.space,e.local);return u===o?null:u===s?l:l=n(s=u,r)}}function oA(e,n,r){var s,o,l;return function(){var u,c=r(this),p;return c==null?void this.removeAttribute(e):(u=this.getAttribute(e),p=c+"",u===p?null:u===s&&p===o?l:(o=p,l=n(s=u,c)))}}function aA(e,n,r){var s,o,l;return function(){var u,c=r(this),p;return c==null?void this.removeAttributeNS(e.space,e.local):(u=this.getAttributeNS(e.space,e.local),p=c+"",u===p?null:u===s&&p===o?l:(o=p,l=n(s=u,c)))}}function lA(e,n){var r=Zl(e),s=r==="transform"?F2:_E;return this.attrTween(e,typeof n=="function"?(r.local?aA:oA)(r,s,lv(this,"attr."+e,n)):n==null?(r.local?rA:nA)(r):(r.local?sA:iA)(r,s,n))}function uA(e,n){return function(r){this.setAttribute(e,n.call(this,r))}}function cA(e,n){return function(r){this.setAttributeNS(e.space,e.local,n.call(this,r))}}function dA(e,n){var r,s;function o(){var l=n.apply(this,arguments);return l!==s&&(r=(s=l)&&cA(e,l)),r}return o._value=n,o}function fA(e,n){var r,s;function o(){var l=n.apply(this,arguments);return l!==s&&(r=(s=l)&&uA(e,l)),r}return o._value=n,o}function hA(e,n){var r="attr."+e;if(arguments.length<2)return(r=this.tween(r))&&r._value;if(n==null)return this.tween(r,null);if(typeof n!="function")throw new Error;var s=Zl(e);return this.tween(r,(s.local?dA:fA)(s,n))}function pA(e,n){return function(){av(this,e).delay=+n.apply(this,arguments)}}function mA(e,n){return n=+n,function(){av(this,e).delay=n}}function gA(e){var n=this._id;return arguments.length?this.each((typeof e=="function"?pA:mA)(n,e)):er(this.node(),n).delay}function vA(e,n){return function(){fr(this,e).duration=+n.apply(this,arguments)}}function yA(e,n){return n=+n,function(){fr(this,e).duration=n}}function wA(e){var n=this._id;return arguments.length?this.each((typeof e=="function"?vA:yA)(n,e)):er(this.node(),n).duration}function xA(e,n){if(typeof n!="function")throw new Error;return function(){fr(this,e).ease=n}}function _A(e){var n=this._id;return arguments.length?this.each(xA(n,e)):er(this.node(),n).ease}function SA(e,n){return function(){var r=n.apply(this,arguments);if(typeof r!="function")throw new Error;fr(this,e).ease=r}}function bA(e){if(typeof e!="function")throw new Error;return this.each(SA(this._id,e))}function kA(e){typeof e!="function"&&(e=Jk(e));for(var n=this._groups,r=n.length,s=new Array(r),o=0;o<r;++o)for(var l=n[o],u=l.length,c=s[o]=[],p,h=0;h<u;++h)(p=l[h])&&e.call(p,p.__data__,h,l)&&c.push(p);return new Ir(s,this._parents,this._name,this._id)}function EA(e){if(e._id!==this._id)throw new Error;for(var n=this._groups,r=e._groups,s=n.length,o=r.length,l=Math.min(s,o),u=new Array(s),c=0;c<l;++c)for(var p=n[c],h=r[c],f=p.length,m=u[c]=new Array(f),y,x=0;x<f;++x)(y=p[x]||h[x])&&(m[x]=y);for(;c<s;++c)u[c]=n[c];return new Ir(u,this._parents,this._name,this._id)}function NA(e){return(e+"").trim().split(/^|\s+/).every(function(n){var r=n.indexOf(".");return r>=0&&(n=n.slice(0,r)),!n||n==="start"})}function CA(e,n,r){var s,o,l=NA(n)?av:fr;return function(){var u=l(this,e),c=u.on;c!==s&&(o=(s=c).copy()).on(n,r),u.on=o}}function TA(e,n){var r=this._id;return arguments.length<2?er(this.node(),r).on.on(e):this.each(CA(r,e,n))}function RA(e){return function(){var n=this.parentNode;for(var r in this.__transition)if(+r!==e)return;n&&n.removeChild(this)}}function jA(){return this.on("end.remove",RA(this._id))}function AA(e){var n=this._name,r=this._id;typeof e!="function"&&(e=rv(e));for(var s=this._groups,o=s.length,l=new Array(o),u=0;u<o;++u)for(var c=s[u],p=c.length,h=l[u]=new Array(p),f,m,y=0;y<p;++y)(f=c[y])&&(m=e.call(f,f.__data__,y,c))&&("__data__"in f&&(m.__data__=f.__data__),h[y]=m,eu(h[y],n,r,y,h,er(f,r)));return new Ir(l,this._parents,n,r)}function IA(e){var n=this._name,r=this._id;typeof e!="function"&&(e=Zk(e));for(var s=this._groups,o=s.length,l=[],u=[],c=0;c<o;++c)for(var p=s[c],h=p.length,f,m=0;m<h;++m)if(f=p[m]){for(var y=e.call(f,f.__data__,m,p),x,C=er(f,r),_=0,S=y.length;_<S;++_)(x=y[_])&&eu(x,n,r,_,y,C);l.push(y),u.push(f)}return new Ir(l,u,n,r)}var MA=aa.prototype.constructor;function PA(){return new MA(this._groups,this._parents)}function OA(e,n){var r,s,o;return function(){var l=Ks(this,e),u=(this.style.removeProperty(e),Ks(this,e));return l===u?null:l===r&&u===s?o:o=n(r=l,s=u)}}function SE(e){return function(){this.style.removeProperty(e)}}function LA(e,n,r){var s,o=r+"",l;return function(){var u=Ks(this,e);return u===o?null:u===s?l:l=n(s=u,r)}}function qA(e,n,r){var s,o,l;return function(){var u=Ks(this,e),c=r(this),p=c+"";return c==null&&(p=c=(this.style.removeProperty(e),Ks(this,e))),u===p?null:u===s&&p===o?l:(o=p,l=n(s=u,c))}}function $A(e,n){var r,s,o,l="style."+n,u="end."+l,c;return function(){var p=fr(this,e),h=p.on,f=p.value[l]==null?c||(c=SE(n)):void 0;(h!==r||o!==f)&&(s=(r=h).copy()).on(u,o=f),p.on=s}}function DA(e,n,r){var s=(e+="")=="transform"?D2:_E;return n==null?this.styleTween(e,OA(e,s)).on("end.style."+e,SE(e)):typeof n=="function"?this.styleTween(e,qA(e,s,lv(this,"style."+e,n))).each($A(this._id,e)):this.styleTween(e,LA(e,s,n),r).on("end.style."+e,null)}function FA(e,n,r){return function(s){this.style.setProperty(e,n.call(this,s),r)}}function zA(e,n,r){var s,o;function l(){var u=n.apply(this,arguments);return u!==o&&(s=(o=u)&&FA(e,u,r)),s}return l._value=n,l}function BA(e,n,r){var s="style."+(e+="");if(arguments.length<2)return(s=this.tween(s))&&s._value;if(n==null)return this.tween(s,null);if(typeof n!="function")throw new Error;return this.tween(s,zA(e,n,r??""))}function UA(e){return function(){this.textContent=e}}function HA(e){return function(){var n=e(this);this.textContent=n??""}}function WA(e){return this.tween("text",typeof e=="function"?HA(lv(this,"text",e)):UA(e==null?"":e+""))}function VA(e){return function(n){this.textContent=e.call(this,n)}}function GA(e){var n,r;function s(){var o=e.apply(this,arguments);return o!==r&&(n=(r=o)&&VA(o)),n}return s._value=e,s}function YA(e){var n="text";if(arguments.length<1)return(n=this.tween(n))&&n._value;if(e==null)return this.tween(n,null);if(typeof e!="function")throw new Error;return this.tween(n,GA(e))}function KA(){for(var e=this._name,n=this._id,r=bE(),s=this._groups,o=s.length,l=0;l<o;++l)for(var u=s[l],c=u.length,p,h=0;h<c;++h)if(p=u[h]){var f=er(p,n);eu(p,e,r,h,u,{time:f.time+f.delay+f.duration,delay:0,duration:f.duration,ease:f.ease})}return new Ir(s,this._parents,e,r)}function XA(){var e,n,r=this,s=r._id,o=r.size();return new Promise(function(l,u){var c={value:u},p={value:function(){--o===0&&l()}};r.each(function(){var h=fr(this,s),f=h.on;f!==e&&(n=(e=f).copy(),n._.cancel.push(c),n._.interrupt.push(c),n._.end.push(p)),h.on=n}),o===0&&l()})}var QA=0;function Ir(e,n,r,s){this._groups=e,this._parents=n,this._name=r,this._id=s}function bE(){return++QA}var Tr=aa.prototype;Ir.prototype={constructor:Ir,select:AA,selectAll:IA,selectChild:Tr.selectChild,selectChildren:Tr.selectChildren,filter:kA,merge:EA,selection:PA,transition:KA,call:Tr.call,nodes:Tr.nodes,node:Tr.node,size:Tr.size,empty:Tr.empty,each:Tr.each,on:TA,attr:lA,attrTween:hA,style:DA,styleTween:BA,text:WA,textTween:YA,remove:jA,tween:tA,delay:gA,duration:wA,ease:_A,easeVarying:bA,end:XA,[Symbol.iterator]:Tr[Symbol.iterator]};function ZA(e){return((e*=2)<=1?e*e*e:(e-=2)*e*e+2)/2}var JA={time:null,delay:0,duration:250,ease:ZA};function eI(e,n){for(var r;!(r=e.__transition)||!(r=r[n]);)if(!(e=e.parentNode))throw new Error(`transition ${n} not found`);return r}function tI(e){var n,r;e instanceof Ir?(n=e._id,e=e._name):(n=bE(),(r=JA).time=ov(),e=e==null?null:e+"");for(var s=this._groups,o=s.length,l=0;l<o;++l)for(var u=s[l],c=u.length,p,h=0;h<c;++h)(p=u[h])&&eu(p,e,n,h,u,r||eI(p,n));return new Ir(s,this._parents,e,n)}aa.prototype.interrupt=Z2;aa.prototype.transition=tI;const Sl=e=>()=>e;function nI(e,{sourceEvent:n,target:r,transform:s,dispatch:o}){Object.defineProperties(this,{type:{value:e,enumerable:!0,configurable:!0},sourceEvent:{value:n,enumerable:!0,configurable:!0},target:{value:r,enumerable:!0,configurable:!0},transform:{value:s,enumerable:!0,configurable:!0},_:{value:o}})}function jr(e,n,r){this.k=e,this.x=n,this.y=r}jr.prototype={constructor:jr,scale:function(e){return e===1?this:new jr(this.k*e,this.x,this.y)},translate:function(e,n){return e===0&n===0?this:new jr(this.k,this.x+this.k*e,this.y+this.k*n)},apply:function(e){return[e[0]*this.k+this.x,e[1]*this.k+this.y]},applyX:function(e){return e*this.k+this.x},applyY:function(e){return e*this.k+this.y},invert:function(e){return[(e[0]-this.x)/this.k,(e[1]-this.y)/this.k]},invertX:function(e){return(e-this.x)/this.k},invertY:function(e){return(e-this.y)/this.k},rescaleX:function(e){return e.copy().domain(e.range().map(this.invertX,this).map(e.invert,e))},rescaleY:function(e){return e.copy().domain(e.range().map(this.invertY,this).map(e.invert,e))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var Ar=new jr(1,0,0);jr.prototype;function sd(e){e.stopImmediatePropagation()}function Do(e){e.preventDefault(),e.stopImmediatePropagation()}function rI(e){return(!e.ctrlKey||e.type==="wheel")&&!e.button}function iI(){var e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,e.hasAttribute("viewBox")?(e=e.viewBox.baseVal,[[e.x,e.y],[e.x+e.width,e.y+e.height]]):[[0,0],[e.width.baseVal.value,e.height.baseVal.value]]):[[0,0],[e.clientWidth,e.clientHeight]]}function Aw(){return this.__zoom||Ar}function sI(e){return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*(e.ctrlKey?10:1)}function oI(){return navigator.maxTouchPoints||"ontouchstart"in this}function aI(e,n,r){var s=e.invertX(n[0][0])-r[0][0],o=e.invertX(n[1][0])-r[1][0],l=e.invertY(n[0][1])-r[0][1],u=e.invertY(n[1][1])-r[1][1];return e.translate(o>s?(s+o)/2:Math.min(0,s)||Math.max(0,o),u>l?(l+u)/2:Math.min(0,l)||Math.max(0,u))}function kE(){var e=rI,n=iI,r=aI,s=sI,o=oI,l=[0,1/0],u=[[-1/0,-1/0],[1/0,1/0]],c=250,p=H2,h=Ql("start","zoom","end"),f,m,y,x=500,C=150,_=0,S=10;function b(j){j.property("__zoom",Aw).on("wheel.zoom",H,{passive:!1}).on("mousedown.zoom",L).on("dblclick.zoom",P).filter(o).on("touchstart.zoom",q).on("touchmove.zoom",W).on("touchend.zoom touchcancel.zoom",B).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}b.transform=function(j,K,U,ee){var J=j.selection?j.selection():j;J.property("__zoom",Aw),j!==J?I(j,K,U,ee):J.interrupt().each(function(){M(this,arguments).event(ee).start().zoom(null,typeof K=="function"?K.apply(this,arguments):K).end()})},b.scaleBy=function(j,K,U,ee){b.scaleTo(j,function(){var J=this.__zoom.k,F=typeof K=="function"?K.apply(this,arguments):K;return J*F},U,ee)},b.scaleTo=function(j,K,U,ee){b.transform(j,function(){var J=n.apply(this,arguments),F=this.__zoom,Y=U==null?T(J):typeof U=="function"?U.apply(this,arguments):U,E=F.invert(Y),$=typeof K=="function"?K.apply(this,arguments):K;return r(N(k(F,$),Y,E),J,u)},U,ee)},b.translateBy=function(j,K,U,ee){b.transform(j,function(){return r(this.__zoom.translate(typeof K=="function"?K.apply(this,arguments):K,typeof U=="function"?U.apply(this,arguments):U),n.apply(this,arguments),u)},null,ee)},b.translateTo=function(j,K,U,ee,J){b.transform(j,function(){var F=n.apply(this,arguments),Y=this.__zoom,E=ee==null?T(F):typeof ee=="function"?ee.apply(this,arguments):ee;return r(Ar.translate(E[0],E[1]).scale(Y.k).translate(typeof K=="function"?-K.apply(this,arguments):-K,typeof U=="function"?-U.apply(this,arguments):-U),F,u)},ee,J)};function k(j,K){return K=Math.max(l[0],Math.min(l[1],K)),K===j.k?j:new jr(K,j.x,j.y)}function N(j,K,U){var ee=K[0]-U[0]*j.k,J=K[1]-U[1]*j.k;return ee===j.x&&J===j.y?j:new jr(j.k,ee,J)}function T(j){return[(+j[0][0]+ +j[1][0])/2,(+j[0][1]+ +j[1][1])/2]}function I(j,K,U,ee){j.on("start.zoom",function(){M(this,arguments).event(ee).start()}).on("interrupt.zoom end.zoom",function(){M(this,arguments).event(ee).end()}).tween("zoom",function(){var J=this,F=arguments,Y=M(J,F).event(ee),E=n.apply(J,F),$=U==null?T(E):typeof U=="function"?U.apply(J,F):U,se=Math.max(E[1][0]-E[0][0],E[1][1]-E[0][1]),D=J.__zoom,Q=typeof K=="function"?K.apply(J,F):K,te=p(D.invert($).concat(se/D.k),Q.invert($).concat(se/Q.k));return function(ae){if(ae===1)ae=Q;else{var ce=te(ae),me=se/ce[2];ae=new jr(me,$[0]-ce[0]*me,$[1]-ce[1]*me)}Y.zoom(null,ae)}})}function M(j,K,U){return!U&&j.__zooming||new O(j,K)}function O(j,K){this.that=j,this.args=K,this.active=0,this.sourceEvent=null,this.extent=n.apply(j,K),this.taps=0}O.prototype={event:function(j){return j&&(this.sourceEvent=j),this},start:function(){return++this.active===1&&(this.that.__zooming=this,this.emit("start")),this},zoom:function(j,K){return this.mouse&&j!=="mouse"&&(this.mouse[1]=K.invert(this.mouse[0])),this.touch0&&j!=="touch"&&(this.touch0[1]=K.invert(this.touch0[0])),this.touch1&&j!=="touch"&&(this.touch1[1]=K.invert(this.touch1[0])),this.that.__zoom=K,this.emit("zoom"),this},end:function(){return--this.active===0&&(delete this.that.__zooming,this.emit("end")),this},emit:function(j){var K=Tn(this.that).datum();h.call(j,this.that,new nI(j,{sourceEvent:this.sourceEvent,target:b,transform:this.that.__zoom,dispatch:h}),K)}};function H(j,...K){if(!e.apply(this,arguments))return;var U=M(this,K).event(j),ee=this.__zoom,J=Math.max(l[0],Math.min(l[1],ee.k*Math.pow(2,s.apply(this,arguments)))),F=Xn(j);if(U.wheel)(U.mouse[0][0]!==F[0]||U.mouse[0][1]!==F[1])&&(U.mouse[1]=ee.invert(U.mouse[0]=F)),clearTimeout(U.wheel);else{if(ee.k===J)return;U.mouse=[F,ee.invert(F)],ql(this),U.start()}Do(j),U.wheel=setTimeout(Y,C),U.zoom("mouse",r(N(k(ee,J),U.mouse[0],U.mouse[1]),U.extent,u));function Y(){U.wheel=null,U.end()}}function L(j,...K){if(y||!e.apply(this,arguments))return;var U=j.currentTarget,ee=M(this,K,!0).event(j),J=Tn(j.view).on("mousemove.zoom",$,!0).on("mouseup.zoom",se,!0),F=Xn(j,U),Y=j.clientX,E=j.clientY;uE(j.view),sd(j),ee.mouse=[F,this.__zoom.invert(F)],ql(this),ee.start();function $(D){if(Do(D),!ee.moved){var Q=D.clientX-Y,te=D.clientY-E;ee.moved=Q*Q+te*te>_}ee.event(D).zoom("mouse",r(N(ee.that.__zoom,ee.mouse[0]=Xn(D,U),ee.mouse[1]),ee.extent,u))}function se(D){J.on("mousemove.zoom mouseup.zoom",null),cE(D.view,ee.moved),Do(D),ee.event(D).end()}}function P(j,...K){if(e.apply(this,arguments)){var U=this.__zoom,ee=Xn(j.changedTouches?j.changedTouches[0]:j,this),J=U.invert(ee),F=U.k*(j.shiftKey?.5:2),Y=r(N(k(U,F),ee,J),n.apply(this,K),u);Do(j),c>0?Tn(this).transition().duration(c).call(I,Y,ee,j):Tn(this).call(b.transform,Y,ee,j)}}function q(j,...K){if(e.apply(this,arguments)){var U=j.touches,ee=U.length,J=M(this,K,j.changedTouches.length===ee).event(j),F,Y,E,$;for(sd(j),Y=0;Y<ee;++Y)E=U[Y],$=Xn(E,this),$=[$,this.__zoom.invert($),E.identifier],J.touch0?!J.touch1&&J.touch0[2]!==$[2]&&(J.touch1=$,J.taps=0):(J.touch0=$,F=!0,J.taps=1+!!f);f&&(f=clearTimeout(f)),F&&(J.taps<2&&(m=$[0],f=setTimeout(function(){f=null},x)),ql(this),J.start())}}function W(j,...K){if(this.__zooming){var U=M(this,K).event(j),ee=j.changedTouches,J=ee.length,F,Y,E,$;for(Do(j),F=0;F<J;++F)Y=ee[F],E=Xn(Y,this),U.touch0&&U.touch0[2]===Y.identifier?U.touch0[0]=E:U.touch1&&U.touch1[2]===Y.identifier&&(U.touch1[0]=E);if(Y=U.that.__zoom,U.touch1){var se=U.touch0[0],D=U.touch0[1],Q=U.touch1[0],te=U.touch1[1],ae=(ae=Q[0]-se[0])*ae+(ae=Q[1]-se[1])*ae,ce=(ce=te[0]-D[0])*ce+(ce=te[1]-D[1])*ce;Y=k(Y,Math.sqrt(ae/ce)),E=[(se[0]+Q[0])/2,(se[1]+Q[1])/2],$=[(D[0]+te[0])/2,(D[1]+te[1])/2]}else if(U.touch0)E=U.touch0[0],$=U.touch0[1];else return;U.zoom("touch",r(N(Y,E,$),U.extent,u))}}function B(j,...K){if(this.__zooming){var U=M(this,K).event(j),ee=j.changedTouches,J=ee.length,F,Y;for(sd(j),y&&clearTimeout(y),y=setTimeout(function(){y=null},x),F=0;F<J;++F)Y=ee[F],U.touch0&&U.touch0[2]===Y.identifier?delete U.touch0:U.touch1&&U.touch1[2]===Y.identifier&&delete U.touch1;if(U.touch1&&!U.touch0&&(U.touch0=U.touch1,delete U.touch1),U.touch0)U.touch0[1]=this.__zoom.invert(U.touch0[0]);else if(U.end(),U.taps===2&&(Y=Xn(Y,this),Math.hypot(m[0]-Y[0],m[1]-Y[1])<S)){var E=Tn(this).on("dblclick.zoom");E&&E.apply(this,arguments)}}}return b.wheelDelta=function(j){return arguments.length?(s=typeof j=="function"?j:Sl(+j),b):s},b.filter=function(j){return arguments.length?(e=typeof j=="function"?j:Sl(!!j),b):e},b.touchable=function(j){return arguments.length?(o=typeof j=="function"?j:Sl(!!j),b):o},b.extent=function(j){return arguments.length?(n=typeof j=="function"?j:Sl([[+j[0][0],+j[0][1]],[+j[1][0],+j[1][1]]]),b):n},b.scaleExtent=function(j){return arguments.length?(l[0]=+j[0],l[1]=+j[1],b):[l[0],l[1]]},b.translateExtent=function(j){return arguments.length?(u[0][0]=+j[0][0],u[1][0]=+j[1][0],u[0][1]=+j[0][1],u[1][1]=+j[1][1],b):[[u[0][0],u[0][1]],[u[1][0],u[1][1]]]},b.constrain=function(j){return arguments.length?(r=j,b):r},b.duration=function(j){return arguments.length?(c=+j,b):c},b.interpolate=function(j){return arguments.length?(p=j,b):p},b.on=function(){var j=h.on.apply(h,arguments);return j===h?b:j},b.clickDistance=function(j){return arguments.length?(_=(j=+j)*j,b):Math.sqrt(_)},b.tapDistance=function(j){return arguments.length?(S=+j,b):S},b}var lI=Kk();const tu=A.createContext(null),uI=tu.Provider,Mr={error001:()=>"[React Flow]: Seems like you have not used zustand provider as an ancestor. Help: https://reactflow.dev/error#001",error002:()=>"It looks like you've created a new nodeTypes or edgeTypes object. If this wasn't on purpose please define the nodeTypes/edgeTypes outside of the component or memoize them.",error003:e=>`Node type "${e}" not found. Using fallback type "default".`,error004:()=>"The React Flow parent container needs a width and a height to render the graph.",error005:()=>"Only child nodes can use a parent extent.",error006:()=>"Can't create edge. An edge needs a source and a target.",error007:e=>`The old edge with id=${e} does not exist.`,error009:e=>`Marker type "${e}" doesn't exist.`,error008:(e,n)=>`Couldn't create edge for ${e?"target":"source"} handle id: "${e?n.targetHandle:n.sourceHandle}", edge id: ${n.id}.`,error010:()=>"Handle: No node id found. Make sure to only use a Handle inside a custom Node.",error011:e=>`Edge type "${e}" not found. Using fallback type "default".`,error012:e=>`Node with id "${e}" does not exist, it may have been removed. This can happen when a node is deleted before the "onNodeClick" handler is called.`},EE=Mr.error001();function Ke(e,n){const r=A.useContext(tu);if(r===null)throw new Error(EE);return Xk(r,e,n)}const Et=()=>{const e=A.useContext(tu);if(e===null)throw new Error(EE);return A.useMemo(()=>({getState:e.getState,setState:e.setState,subscribe:e.subscribe,destroy:e.destroy}),[e])},cI=e=>e.userSelectionActive?"none":"all";function uv({position:e,children:n,className:r,style:s,...o}){const l=Ke(cI),u=`${e}`.split("-");return le.createElement("div",{className:Dt(["react-flow__panel",r,...u]),style:{...s,pointerEvents:l},...o},n)}function dI({proOptions:e,position:n="bottom-right"}){return e!=null&&e.hideAttribution?null:le.createElement(uv,{position:n,className:"react-flow__attribution","data-message":"Please only hide this attribution when you are subscribed to React Flow Pro: https://reactflow.dev/pro"},le.createElement("a",{href:"https://reactflow.dev",target:"_blank",rel:"noopener noreferrer","aria-label":"React Flow attribution"},"React Flow"))}const fI=({x:e,y:n,label:r,labelStyle:s={},labelShowBg:o=!0,labelBgStyle:l={},labelBgPadding:u=[2,4],labelBgBorderRadius:c=2,children:p,className:h,...f})=>{const m=A.useRef(null),[y,x]=A.useState({x:0,y:0,width:0,height:0}),C=Dt(["react-flow__edge-textwrapper",h]);return A.useEffect(()=>{if(m.current){const _=m.current.getBBox();x({x:_.x,y:_.y,width:_.width,height:_.height})}},[r]),typeof r>"u"||!r?null:le.createElement("g",{transform:`translate(${e-y.width/2} ${n-y.height/2})`,className:C,visibility:y.width?"visible":"hidden",...f},o&&le.createElement("rect",{width:y.width+2*u[0],x:-u[0],y:-u[1],height:y.height+2*u[1],className:"react-flow__edge-textbg",style:l,rx:c,ry:c}),le.createElement("text",{className:"react-flow__edge-text",y:y.height/2,dy:"0.3em",ref:m,style:s},r),p)};var hI=A.memo(fI);const cv=e=>({width:e.offsetWidth,height:e.offsetHeight}),Qs=(e,n=0,r=1)=>Math.min(Math.max(e,n),r),dv=(e={x:0,y:0},n)=>({x:Qs(e.x,n[0][0],n[1][0]),y:Qs(e.y,n[0][1],n[1][1])}),Iw=(e,n,r)=>e<n?Qs(Math.abs(e-n),1,50)/50:e>r?-Qs(Math.abs(e-r),1,50)/50:0,NE=(e,n)=>{const r=Iw(e.x,35,n.width-35)*20,s=Iw(e.y,35,n.height-35)*20;return[r,s]},CE=e=>{var n;return((n=e.getRootNode)==null?void 0:n.call(e))||(window==null?void 0:window.document)},TE=(e,n)=>({x:Math.min(e.x,n.x),y:Math.min(e.y,n.y),x2:Math.max(e.x2,n.x2),y2:Math.max(e.y2,n.y2)}),ta=({x:e,y:n,width:r,height:s})=>({x:e,y:n,x2:e+r,y2:n+s}),RE=({x:e,y:n,x2:r,y2:s})=>({x:e,y:n,width:r-e,height:s-n}),Mw=e=>({...e.positionAbsolute||{x:0,y:0},width:e.width||0,height:e.height||0}),pI=(e,n)=>RE(TE(ta(e),ta(n))),zg=(e,n)=>{const r=Math.max(0,Math.min(e.x+e.width,n.x+n.width)-Math.max(e.x,n.x)),s=Math.max(0,Math.min(e.y+e.height,n.y+n.height)-Math.max(e.y,n.y));return Math.ceil(r*s)},mI=e=>Rn(e.width)&&Rn(e.height)&&Rn(e.x)&&Rn(e.y),Rn=e=>!isNaN(e)&&isFinite(e),mt=Symbol.for("internals"),jE=["Enter"," ","Escape"],gI=(e,n)=>{},vI=e=>"nativeEvent"in e;function Bg(e){var o,l;const n=vI(e)?e.nativeEvent:e,r=((l=(o=n.composedPath)==null?void 0:o.call(n))==null?void 0:l[0])||e.target;return["INPUT","SELECT","TEXTAREA"].includes(r==null?void 0:r.nodeName)||(r==null?void 0:r.hasAttribute("contenteditable"))||!!(r!=null&&r.closest(".nokey"))}const AE=e=>"clientX"in e,di=(e,n)=>{var l,u;const r=AE(e),s=r?e.clientX:(l=e.touches)==null?void 0:l[0].clientX,o=r?e.clientY:(u=e.touches)==null?void 0:u[0].clientY;return{x:s-((n==null?void 0:n.left)??0),y:o-((n==null?void 0:n.top)??0)}},Hl=()=>{var e;return typeof navigator<"u"&&((e=navigator==null?void 0:navigator.userAgent)==null?void 0:e.indexOf("Mac"))>=0},ua=({id:e,path:n,labelX:r,labelY:s,label:o,labelStyle:l,labelShowBg:u,labelBgStyle:c,labelBgPadding:p,labelBgBorderRadius:h,style:f,markerEnd:m,markerStart:y,interactionWidth:x=20})=>le.createElement(le.Fragment,null,le.createElement("path",{id:e,style:f,d:n,fill:"none",className:"react-flow__edge-path",markerEnd:m,markerStart:y}),x&&le.createElement("path",{d:n,fill:"none",strokeOpacity:0,strokeWidth:x,className:"react-flow__edge-interaction"}),o&&Rn(r)&&Rn(s)?le.createElement(hI,{x:r,y:s,label:o,labelStyle:l,labelShowBg:u,labelBgStyle:c,labelBgPadding:p,labelBgBorderRadius:h}):null);ua.displayName="BaseEdge";function Fo(e,n,r){return r===void 0?r:s=>{const o=n().edges.find(l=>l.id===e);o&&r(s,{...o})}}function IE({sourceX:e,sourceY:n,targetX:r,targetY:s}){const o=Math.abs(r-e)/2,l=r<e?r+o:r-o,u=Math.abs(s-n)/2,c=s<n?s+u:s-u;return[l,c,o,u]}function ME({sourceX:e,sourceY:n,targetX:r,targetY:s,sourceControlX:o,sourceControlY:l,targetControlX:u,targetControlY:c}){const p=e*.125+o*.375+u*.375+r*.125,h=n*.125+l*.375+c*.375+s*.125,f=Math.abs(p-e),m=Math.abs(h-n);return[p,h,f,m]}var Xi;(function(e){e.Strict="strict",e.Loose="loose"})(Xi||(Xi={}));var Vi;(function(e){e.Free="free",e.Vertical="vertical",e.Horizontal="horizontal"})(Vi||(Vi={}));var na;(function(e){e.Partial="partial",e.Full="full"})(na||(na={}));var ci;(function(e){e.Bezier="default",e.Straight="straight",e.Step="step",e.SmoothStep="smoothstep",e.SimpleBezier="simplebezier"})(ci||(ci={}));var Wl;(function(e){e.Arrow="arrow",e.ArrowClosed="arrowclosed"})(Wl||(Wl={}));var Re;(function(e){e.Left="left",e.Top="top",e.Right="right",e.Bottom="bottom"})(Re||(Re={}));function Pw({pos:e,x1:n,y1:r,x2:s,y2:o}){return e===Re.Left||e===Re.Right?[.5*(n+s),r]:[n,.5*(r+o)]}function PE({sourceX:e,sourceY:n,sourcePosition:r=Re.Bottom,targetX:s,targetY:o,targetPosition:l=Re.Top}){const[u,c]=Pw({pos:r,x1:e,y1:n,x2:s,y2:o}),[p,h]=Pw({pos:l,x1:s,y1:o,x2:e,y2:n}),[f,m,y,x]=ME({sourceX:e,sourceY:n,targetX:s,targetY:o,sourceControlX:u,sourceControlY:c,targetControlX:p,targetControlY:h});return[`M${e},${n} C${u},${c} ${p},${h} ${s},${o}`,f,m,y,x]}const fv=A.memo(({sourceX:e,sourceY:n,targetX:r,targetY:s,sourcePosition:o=Re.Bottom,targetPosition:l=Re.Top,label:u,labelStyle:c,labelShowBg:p,labelBgStyle:h,labelBgPadding:f,labelBgBorderRadius:m,style:y,markerEnd:x,markerStart:C,interactionWidth:_})=>{const[S,b,k]=PE({sourceX:e,sourceY:n,sourcePosition:o,targetX:r,targetY:s,targetPosition:l});return le.createElement(ua,{path:S,labelX:b,labelY:k,label:u,labelStyle:c,labelShowBg:p,labelBgStyle:h,labelBgPadding:f,labelBgBorderRadius:m,style:y,markerEnd:x,markerStart:C,interactionWidth:_})});fv.displayName="SimpleBezierEdge";const Ow={[Re.Left]:{x:-1,y:0},[Re.Right]:{x:1,y:0},[Re.Top]:{x:0,y:-1},[Re.Bottom]:{x:0,y:1}},yI=({source:e,sourcePosition:n=Re.Bottom,target:r})=>n===Re.Left||n===Re.Right?e.x<r.x?{x:1,y:0}:{x:-1,y:0}:e.y<r.y?{x:0,y:1}:{x:0,y:-1},Lw=(e,n)=>Math.sqrt(Math.pow(n.x-e.x,2)+Math.pow(n.y-e.y,2));function wI({source:e,sourcePosition:n=Re.Bottom,target:r,targetPosition:s=Re.Top,center:o,offset:l}){const u=Ow[n],c=Ow[s],p={x:e.x+u.x*l,y:e.y+u.y*l},h={x:r.x+c.x*l,y:r.y+c.y*l},f=yI({source:p,sourcePosition:n,target:h}),m=f.x!==0?"x":"y",y=f[m];let x=[],C,_;const S={x:0,y:0},b={x:0,y:0},[k,N,T,I]=IE({sourceX:e.x,sourceY:e.y,targetX:r.x,targetY:r.y});if(u[m]*c[m]===-1){C=o.x??k,_=o.y??N;const O=[{x:C,y:p.y},{x:C,y:h.y}],H=[{x:p.x,y:_},{x:h.x,y:_}];u[m]===y?x=m==="x"?O:H:x=m==="x"?H:O}else{const O=[{x:p.x,y:h.y}],H=[{x:h.x,y:p.y}];if(m==="x"?x=u.x===y?H:O:x=u.y===y?O:H,n===s){const B=Math.abs(e[m]-r[m]);if(B<=l){const j=Math.min(l-1,l-B);u[m]===y?S[m]=(p[m]>e[m]?-1:1)*j:b[m]=(h[m]>r[m]?-1:1)*j}}if(n!==s){const B=m==="x"?"y":"x",j=u[m]===c[B],K=p[B]>h[B],U=p[B]<h[B];(u[m]===1&&(!j&&K||j&&U)||u[m]!==1&&(!j&&U||j&&K))&&(x=m==="x"?O:H)}const L={x:p.x+S.x,y:p.y+S.y},P={x:h.x+b.x,y:h.y+b.y},q=Math.max(Math.abs(L.x-x[0].x),Math.abs(P.x-x[0].x)),W=Math.max(Math.abs(L.y-x[0].y),Math.abs(P.y-x[0].y));q>=W?(C=(L.x+P.x)/2,_=x[0].y):(C=x[0].x,_=(L.y+P.y)/2)}return[[e,{x:p.x+S.x,y:p.y+S.y},...x,{x:h.x+b.x,y:h.y+b.y},r],C,_,T,I]}function xI(e,n,r,s){const o=Math.min(Lw(e,n)/2,Lw(n,r)/2,s),{x:l,y:u}=n;if(e.x===l&&l===r.x||e.y===u&&u===r.y)return`L${l} ${u}`;if(e.y===u){const h=e.x<r.x?-1:1,f=e.y<r.y?1:-1;return`L ${l+o*h},${u}Q ${l},${u} ${l},${u+o*f}`}const c=e.x<r.x?1:-1,p=e.y<r.y?-1:1;return`L ${l},${u+o*p}Q ${l},${u} ${l+o*c},${u}`}function Ug({sourceX:e,sourceY:n,sourcePosition:r=Re.Bottom,targetX:s,targetY:o,targetPosition:l=Re.Top,borderRadius:u=5,centerX:c,centerY:p,offset:h=20}){const[f,m,y,x,C]=wI({source:{x:e,y:n},sourcePosition:r,target:{x:s,y:o},targetPosition:l,center:{x:c,y:p},offset:h});return[f.reduce((S,b,k)=>{let N="";return k>0&&k<f.length-1?N=xI(f[k-1],b,f[k+1],u):N=`${k===0?"M":"L"}${b.x} ${b.y}`,S+=N,S},""),m,y,x,C]}const nu=A.memo(({sourceX:e,sourceY:n,targetX:r,targetY:s,label:o,labelStyle:l,labelShowBg:u,labelBgStyle:c,labelBgPadding:p,labelBgBorderRadius:h,style:f,sourcePosition:m=Re.Bottom,targetPosition:y=Re.Top,markerEnd:x,markerStart:C,pathOptions:_,interactionWidth:S})=>{const[b,k,N]=Ug({sourceX:e,sourceY:n,sourcePosition:m,targetX:r,targetY:s,targetPosition:y,borderRadius:_==null?void 0:_.borderRadius,offset:_==null?void 0:_.offset});return le.createElement(ua,{path:b,labelX:k,labelY:N,label:o,labelStyle:l,labelShowBg:u,labelBgStyle:c,labelBgPadding:p,labelBgBorderRadius:h,style:f,markerEnd:x,markerStart:C,interactionWidth:S})});nu.displayName="SmoothStepEdge";const hv=A.memo(e=>{var n;return le.createElement(nu,{...e,pathOptions:A.useMemo(()=>{var r;return{borderRadius:0,offset:(r=e.pathOptions)==null?void 0:r.offset}},[(n=e.pathOptions)==null?void 0:n.offset])})});hv.displayName="StepEdge";function _I({sourceX:e,sourceY:n,targetX:r,targetY:s}){const[o,l,u,c]=IE({sourceX:e,sourceY:n,targetX:r,targetY:s});return[`M ${e},${n}L ${r},${s}`,o,l,u,c]}const pv=A.memo(({sourceX:e,sourceY:n,targetX:r,targetY:s,label:o,labelStyle:l,labelShowBg:u,labelBgStyle:c,labelBgPadding:p,labelBgBorderRadius:h,style:f,markerEnd:m,markerStart:y,interactionWidth:x})=>{const[C,_,S]=_I({sourceX:e,sourceY:n,targetX:r,targetY:s});return le.createElement(ua,{path:C,labelX:_,labelY:S,label:o,labelStyle:l,labelShowBg:u,labelBgStyle:c,labelBgPadding:p,labelBgBorderRadius:h,style:f,markerEnd:m,markerStart:y,interactionWidth:x})});pv.displayName="StraightEdge";function bl(e,n){return e>=0?.5*e:n*25*Math.sqrt(-e)}function qw({pos:e,x1:n,y1:r,x2:s,y2:o,c:l}){switch(e){case Re.Left:return[n-bl(n-s,l),r];case Re.Right:return[n+bl(s-n,l),r];case Re.Top:return[n,r-bl(r-o,l)];case Re.Bottom:return[n,r+bl(o-r,l)]}}function OE({sourceX:e,sourceY:n,sourcePosition:r=Re.Bottom,targetX:s,targetY:o,targetPosition:l=Re.Top,curvature:u=.25}){const[c,p]=qw({pos:r,x1:e,y1:n,x2:s,y2:o,c:u}),[h,f]=qw({pos:l,x1:s,y1:o,x2:e,y2:n,c:u}),[m,y,x,C]=ME({sourceX:e,sourceY:n,targetX:s,targetY:o,sourceControlX:c,sourceControlY:p,targetControlX:h,targetControlY:f});return[`M${e},${n} C${c},${p} ${h},${f} ${s},${o}`,m,y,x,C]}const Vl=A.memo(({sourceX:e,sourceY:n,targetX:r,targetY:s,sourcePosition:o=Re.Bottom,targetPosition:l=Re.Top,label:u,labelStyle:c,labelShowBg:p,labelBgStyle:h,labelBgPadding:f,labelBgBorderRadius:m,style:y,markerEnd:x,markerStart:C,pathOptions:_,interactionWidth:S})=>{const[b,k,N]=OE({sourceX:e,sourceY:n,sourcePosition:o,targetX:r,targetY:s,targetPosition:l,curvature:_==null?void 0:_.curvature});return le.createElement(ua,{path:b,labelX:k,labelY:N,label:u,labelStyle:c,labelShowBg:p,labelBgStyle:h,labelBgPadding:f,labelBgBorderRadius:m,style:y,markerEnd:x,markerStart:C,interactionWidth:S})});Vl.displayName="BezierEdge";const mv=A.createContext(null),SI=mv.Provider;mv.Consumer;const bI=()=>A.useContext(mv),kI=e=>"id"in e&&"source"in e&&"target"in e,EI=({source:e,sourceHandle:n,target:r,targetHandle:s})=>`reactflow__edge-${e}${n||""}-${r}${s||""}`,Hg=(e,n)=>typeof e>"u"?"":typeof e=="string"?e:`${n?`${n}__`:""}${Object.keys(e).sort().map(s=>`${s}=${e[s]}`).join("&")}`,NI=(e,n)=>n.some(r=>r.source===e.source&&r.target===e.target&&(r.sourceHandle===e.sourceHandle||!r.sourceHandle&&!e.sourceHandle)&&(r.targetHandle===e.targetHandle||!r.targetHandle&&!e.targetHandle)),CI=(e,n)=>{if(!e.source||!e.target)return n;let r;return kI(e)?r={...e}:r={...e,id:EI(e)},NI(r,n)?n:n.concat(r)},Wg=({x:e,y:n},[r,s,o],l,[u,c])=>{const p={x:(e-r)/o,y:(n-s)/o};return l?{x:u*Math.round(p.x/u),y:c*Math.round(p.y/c)}:p},LE=({x:e,y:n},[r,s,o])=>({x:e*o+r,y:n*o+s}),Yi=(e,n=[0,0])=>{if(!e)return{x:0,y:0,positionAbsolute:{x:0,y:0}};const r=(e.width??0)*n[0],s=(e.height??0)*n[1],o={x:e.position.x-r,y:e.position.y-s};return{...o,positionAbsolute:e.positionAbsolute?{x:e.positionAbsolute.x-r,y:e.positionAbsolute.y-s}:o}},ru=(e,n=[0,0])=>{if(e.length===0)return{x:0,y:0,width:0,height:0};const r=e.reduce((s,o)=>{const{x:l,y:u}=Yi(o,n).positionAbsolute;return TE(s,ta({x:l,y:u,width:o.width||0,height:o.height||0}))},{x:1/0,y:1/0,x2:-1/0,y2:-1/0});return RE(r)},qE=(e,n,[r,s,o]=[0,0,1],l=!1,u=!1,c=[0,0])=>{const p={x:(n.x-r)/o,y:(n.y-s)/o,width:n.width/o,height:n.height/o},h=[];return e.forEach(f=>{const{width:m,height:y,selectable:x=!0,hidden:C=!1}=f;if(u&&!x||C)return!1;const{positionAbsolute:_}=Yi(f,c),S={x:_.x,y:_.y,width:m||0,height:y||0},b=zg(p,S),k=typeof m>"u"||typeof y>"u"||m===null||y===null,N=l&&b>0,T=(m||0)*(y||0);(k||N||b>=T||f.dragging)&&h.push(f)}),h},$E=(e,n)=>{const r=e.map(s=>s.id);return n.filter(s=>r.includes(s.source)||r.includes(s.target))},DE=(e,n,r,s,o,l=.1)=>{const u=n/(e.width*(1+l)),c=r/(e.height*(1+l)),p=Math.min(u,c),h=Qs(p,s,o),f=e.x+e.width/2,m=e.y+e.height/2,y=n/2-f*h,x=r/2-m*h;return{x:y,y:x,zoom:h}},Hi=(e,n=0)=>e.transition().duration(n);function $w(e,n,r,s){return(n[r]||[]).reduce((o,l)=>{var u,c;return`${e.id}-${l.id}-${r}`!==s&&o.push({id:l.id||null,type:r,nodeId:e.id,x:(((u=e.positionAbsolute)==null?void 0:u.x)??0)+l.x+l.width/2,y:(((c=e.positionAbsolute)==null?void 0:c.y)??0)+l.y+l.height/2}),o},[])}function TI(e,n,r,s,o,l){const{x:u,y:c}=di(e),h=n.elementsFromPoint(u,c).find(C=>C.classList.contains("react-flow__handle"));if(h){const C=h.getAttribute("data-nodeid");if(C){const _=gv(void 0,h),S=h.getAttribute("data-handleid"),b=l({nodeId:C,id:S,type:_});if(b){const k=o.find(N=>N.nodeId===C&&N.type===_&&N.id===S);return{handle:{id:S,type:_,nodeId:C,x:(k==null?void 0:k.x)||r.x,y:(k==null?void 0:k.y)||r.y},validHandleResult:b}}}}let f=[],m=1/0;if(o.forEach(C=>{const _=Math.sqrt((C.x-r.x)**2+(C.y-r.y)**2);if(_<=s){const S=l(C);_<=m&&(_<m?f=[{handle:C,validHandleResult:S}]:_===m&&f.push({handle:C,validHandleResult:S}),m=_)}}),!f.length)return{handle:null,validHandleResult:FE()};if(f.length===1)return f[0];const y=f.some(({validHandleResult:C})=>C.isValid),x=f.some(({handle:C})=>C.type==="target");return f.find(({handle:C,validHandleResult:_})=>x?C.type==="target":y?_.isValid:!0)||f[0]}const RI={source:null,target:null,sourceHandle:null,targetHandle:null},FE=()=>({handleDomNode:null,isValid:!1,connection:RI,endHandle:null});function zE(e,n,r,s,o,l,u){const c=o==="target",p=u.querySelector(`.react-flow__handle[data-id="${e==null?void 0:e.nodeId}-${e==null?void 0:e.id}-${e==null?void 0:e.type}"]`),h={...FE(),handleDomNode:p};if(p){const f=gv(void 0,p),m=p.getAttribute("data-nodeid"),y=p.getAttribute("data-handleid"),x=p.classList.contains("connectable"),C=p.classList.contains("connectableend"),_={source:c?m:r,sourceHandle:c?y:s,target:c?r:m,targetHandle:c?s:y};h.connection=_,x&&C&&(n===Xi.Strict?c&&f==="source"||!c&&f==="target":m!==r||y!==s)&&(h.endHandle={nodeId:m,handleId:y,type:f},h.isValid=l(_))}return h}function jI({nodes:e,nodeId:n,handleId:r,handleType:s}){return e.reduce((o,l)=>{if(l[mt]){const{handleBounds:u}=l[mt];let c=[],p=[];u&&(c=$w(l,u,"source",`${n}-${r}-${s}`),p=$w(l,u,"target",`${n}-${r}-${s}`)),o.push(...c,...p)}return o},[])}function gv(e,n){return e||(n!=null&&n.classList.contains("target")?"target":n!=null&&n.classList.contains("source")?"source":null)}function od(e){e==null||e.classList.remove("valid","connecting","react-flow__handle-valid","react-flow__handle-connecting")}function AI(e,n){let r=null;return n?r="valid":e&&!n&&(r="invalid"),r}function BE({event:e,handleId:n,nodeId:r,onConnect:s,isTarget:o,getState:l,setState:u,isValidConnection:c,edgeUpdaterType:p,onReconnectEnd:h}){const f=CE(e.target),{connectionMode:m,domNode:y,autoPanOnConnect:x,connectionRadius:C,onConnectStart:_,panBy:S,getNodes:b,cancelConnection:k}=l();let N=0,T;const{x:I,y:M}=di(e),O=f==null?void 0:f.elementFromPoint(I,M),H=gv(p,O),L=y==null?void 0:y.getBoundingClientRect();if(!L||!H)return;let P,q=di(e,L),W=!1,B=null,j=!1,K=null;const U=jI({nodes:b(),nodeId:r,handleId:n,handleType:H}),ee=()=>{if(!x)return;const[Y,E]=NE(q,L);S({x:Y,y:E}),N=requestAnimationFrame(ee)};u({connectionPosition:q,connectionStatus:null,connectionNodeId:r,connectionHandleId:n,connectionHandleType:H,connectionStartHandle:{nodeId:r,handleId:n,type:H},connectionEndHandle:null}),_==null||_(e,{nodeId:r,handleId:n,handleType:H});function J(Y){const{transform:E}=l();q=di(Y,L);const{handle:$,validHandleResult:se}=TI(Y,f,Wg(q,E,!1,[1,1]),C,U,D=>zE(D,m,r,n,o?"target":"source",c,f));if(T=$,W||(ee(),W=!0),K=se.handleDomNode,B=se.connection,j=se.isValid,u({connectionPosition:T&&j?LE({x:T.x,y:T.y},E):q,connectionStatus:AI(!!T,j),connectionEndHandle:se.endHandle}),!T&&!j&&!K)return od(P);B.source!==B.target&&K&&(od(P),P=K,K.classList.add("connecting","react-flow__handle-connecting"),K.classList.toggle("valid",j),K.classList.toggle("react-flow__handle-valid",j))}function F(Y){var E,$;(T||K)&&B&&j&&(s==null||s(B)),($=(E=l()).onConnectEnd)==null||$.call(E,Y),p&&(h==null||h(Y)),od(P),k(),cancelAnimationFrame(N),W=!1,j=!1,B=null,K=null,f.removeEventListener("mousemove",J),f.removeEventListener("mouseup",F),f.removeEventListener("touchmove",J),f.removeEventListener("touchend",F)}f.addEventListener("mousemove",J),f.addEventListener("mouseup",F),f.addEventListener("touchmove",J),f.addEventListener("touchend",F)}const Dw=()=>!0,II=e=>({connectionStartHandle:e.connectionStartHandle,connectOnClick:e.connectOnClick,noPanClassName:e.noPanClassName}),MI=(e,n,r)=>s=>{const{connectionStartHandle:o,connectionEndHandle:l,connectionClickStartHandle:u}=s;return{connecting:(o==null?void 0:o.nodeId)===e&&(o==null?void 0:o.handleId)===n&&(o==null?void 0:o.type)===r||(l==null?void 0:l.nodeId)===e&&(l==null?void 0:l.handleId)===n&&(l==null?void 0:l.type)===r,clickConnecting:(u==null?void 0:u.nodeId)===e&&(u==null?void 0:u.handleId)===n&&(u==null?void 0:u.type)===r}},UE=A.forwardRef(({type:e="source",position:n=Re.Top,isValidConnection:r,isConnectable:s=!0,isConnectableStart:o=!0,isConnectableEnd:l=!0,id:u,onConnect:c,children:p,className:h,onMouseDown:f,onTouchStart:m,...y},x)=>{var L,P;const C=u||null,_=e==="target",S=Et(),b=bI(),{connectOnClick:k,noPanClassName:N}=Ke(II,kt),{connecting:T,clickConnecting:I}=Ke(MI(b,C,e),kt);b||(P=(L=S.getState()).onError)==null||P.call(L,"010",Mr.error010());const M=q=>{const{defaultEdgeOptions:W,onConnect:B,hasDefaultEdges:j}=S.getState(),K={...W,...q};if(j){const{edges:U,setEdges:ee}=S.getState();ee(CI(K,U))}B==null||B(K),c==null||c(K)},O=q=>{if(!b)return;const W=AE(q);o&&(W&&q.button===0||!W)&&BE({event:q,handleId:C,nodeId:b,onConnect:M,isTarget:_,getState:S.getState,setState:S.setState,isValidConnection:r||S.getState().isValidConnection||Dw}),W?f==null||f(q):m==null||m(q)},H=q=>{const{onClickConnectStart:W,onClickConnectEnd:B,connectionClickStartHandle:j,connectionMode:K,isValidConnection:U}=S.getState();if(!b||!j&&!o)return;if(!j){W==null||W(q,{nodeId:b,handleId:C,handleType:e}),S.setState({connectionClickStartHandle:{nodeId:b,type:e,handleId:C}});return}const ee=CE(q.target),J=r||U||Dw,{connection:F,isValid:Y}=zE({nodeId:b,id:C,type:e},K,j.nodeId,j.handleId||null,j.type,J,ee);Y&&M(F),B==null||B(q),S.setState({connectionClickStartHandle:null})};return le.createElement("div",{"data-handleid":C,"data-nodeid":b,"data-handlepos":n,"data-id":`${b}-${C}-${e}`,className:Dt(["react-flow__handle",`react-flow__handle-${n}`,"nodrag",N,h,{source:!_,target:_,connectable:s,connectablestart:o,connectableend:l,connecting:I,connectionindicator:s&&(o&&!T||l&&T)}]),onMouseDown:O,onTouchStart:O,onClick:k?H:void 0,ref:x,...y},p)});UE.displayName="Handle";var Zs=A.memo(UE);const HE=({data:e,isConnectable:n,targetPosition:r=Re.Top,sourcePosition:s=Re.Bottom})=>le.createElement(le.Fragment,null,le.createElement(Zs,{type:"target",position:r,isConnectable:n}),e==null?void 0:e.label,le.createElement(Zs,{type:"source",position:s,isConnectable:n}));HE.displayName="DefaultNode";var Vg=A.memo(HE);const WE=({data:e,isConnectable:n,sourcePosition:r=Re.Bottom})=>le.createElement(le.Fragment,null,e==null?void 0:e.label,le.createElement(Zs,{type:"source",position:r,isConnectable:n}));WE.displayName="InputNode";var VE=A.memo(WE);const GE=({data:e,isConnectable:n,targetPosition:r=Re.Top})=>le.createElement(le.Fragment,null,le.createElement(Zs,{type:"target",position:r,isConnectable:n}),e==null?void 0:e.label);GE.displayName="OutputNode";var YE=A.memo(GE);const vv=()=>null;vv.displayName="GroupNode";const PI=e=>({selectedNodes:e.getNodes().filter(n=>n.selected),selectedEdges:e.edges.filter(n=>n.selected).map(n=>({...n}))}),kl=e=>e.id;function OI(e,n){return kt(e.selectedNodes.map(kl),n.selectedNodes.map(kl))&&kt(e.selectedEdges.map(kl),n.selectedEdges.map(kl))}const KE=A.memo(({onSelectionChange:e})=>{const n=Et(),{selectedNodes:r,selectedEdges:s}=Ke(PI,OI);return A.useEffect(()=>{const o={nodes:r,edges:s};e==null||e(o),n.getState().onSelectionChange.forEach(l=>l(o))},[r,s,e]),null});KE.displayName="SelectionListener";const LI=e=>!!e.onSelectionChange;function qI({onSelectionChange:e}){const n=Ke(LI);return e||n?le.createElement(KE,{onSelectionChange:e}):null}const $I=e=>({setNodes:e.setNodes,setEdges:e.setEdges,setDefaultNodesAndEdges:e.setDefaultNodesAndEdges,setMinZoom:e.setMinZoom,setMaxZoom:e.setMaxZoom,setTranslateExtent:e.setTranslateExtent,setNodeExtent:e.setNodeExtent,reset:e.reset});function Ls(e,n){A.useEffect(()=>{typeof e<"u"&&n(e)},[e])}function $e(e,n,r){A.useEffect(()=>{typeof n<"u"&&r({[e]:n})},[n])}const DI=({nodes:e,edges:n,defaultNodes:r,defaultEdges:s,onConnect:o,onConnectStart:l,onConnectEnd:u,onClickConnectStart:c,onClickConnectEnd:p,nodesDraggable:h,nodesConnectable:f,nodesFocusable:m,edgesFocusable:y,edgesUpdatable:x,elevateNodesOnSelect:C,minZoom:_,maxZoom:S,nodeExtent:b,onNodesChange:k,onEdgesChange:N,elementsSelectable:T,connectionMode:I,snapGrid:M,snapToGrid:O,translateExtent:H,connectOnClick:L,defaultEdgeOptions:P,fitView:q,fitViewOptions:W,onNodesDelete:B,onEdgesDelete:j,onNodeDrag:K,onNodeDragStart:U,onNodeDragStop:ee,onSelectionDrag:J,onSelectionDragStart:F,onSelectionDragStop:Y,noPanClassName:E,nodeOrigin:$,rfId:se,autoPanOnConnect:D,autoPanOnNodeDrag:Q,onError:te,connectionRadius:ae,isValidConnection:ce,nodeDragThreshold:me})=>{const{setNodes:ge,setEdges:Pe,setDefaultNodesAndEdges:Se,setMinZoom:Oe,setMaxZoom:Me,setTranslateExtent:be,setNodeExtent:De,reset:ye}=Ke($I,kt),we=Et();return A.useEffect(()=>{const Ue=s==null?void 0:s.map(ut=>({...ut,...P}));return Se(r,Ue),()=>{ye()}},[]),$e("defaultEdgeOptions",P,we.setState),$e("connectionMode",I,we.setState),$e("onConnect",o,we.setState),$e("onConnectStart",l,we.setState),$e("onConnectEnd",u,we.setState),$e("onClickConnectStart",c,we.setState),$e("onClickConnectEnd",p,we.setState),$e("nodesDraggable",h,we.setState),$e("nodesConnectable",f,we.setState),$e("nodesFocusable",m,we.setState),$e("edgesFocusable",y,we.setState),$e("edgesUpdatable",x,we.setState),$e("elementsSelectable",T,we.setState),$e("elevateNodesOnSelect",C,we.setState),$e("snapToGrid",O,we.setState),$e("snapGrid",M,we.setState),$e("onNodesChange",k,we.setState),$e("onEdgesChange",N,we.setState),$e("connectOnClick",L,we.setState),$e("fitViewOnInit",q,we.setState),$e("fitViewOnInitOptions",W,we.setState),$e("onNodesDelete",B,we.setState),$e("onEdgesDelete",j,we.setState),$e("onNodeDrag",K,we.setState),$e("onNodeDragStart",U,we.setState),$e("onNodeDragStop",ee,we.setState),$e("onSelectionDrag",J,we.setState),$e("onSelectionDragStart",F,we.setState),$e("onSelectionDragStop",Y,we.setState),$e("noPanClassName",E,we.setState),$e("nodeOrigin",$,we.setState),$e("rfId",se,we.setState),$e("autoPanOnConnect",D,we.setState),$e("autoPanOnNodeDrag",Q,we.setState),$e("onError",te,we.setState),$e("connectionRadius",ae,we.setState),$e("isValidConnection",ce,we.setState),$e("nodeDragThreshold",me,we.setState),Ls(e,ge),Ls(n,Pe),Ls(_,Oe),Ls(S,Me),Ls(H,be),Ls(b,De),null},Fw={display:"none"},FI={position:"absolute",width:1,height:1,margin:-1,border:0,padding:0,overflow:"hidden",clip:"rect(0px, 0px, 0px, 0px)",clipPath:"inset(100%)"},XE="react-flow__node-desc",QE="react-flow__edge-desc",zI="react-flow__aria-live",BI=e=>e.ariaLiveMessage;function UI({rfId:e}){const n=Ke(BI);return le.createElement("div",{id:`${zI}-${e}`,"aria-live":"assertive","aria-atomic":"true",style:FI},n)}function HI({rfId:e,disableKeyboardA11y:n}){return le.createElement(le.Fragment,null,le.createElement("div",{id:`${XE}-${e}`,style:Fw},"Press enter or space to select a node.",!n&&"You can then use the arrow keys to move the node around."," Press delete to remove it and escape to cancel."," "),le.createElement("div",{id:`${QE}-${e}`,style:Fw},"Press enter or space to select an edge. You can then press delete to remove it or escape to cancel."),!n&&le.createElement(UI,{rfId:e}))}var ra=(e=null,n={actInsideInputWithModifier:!0})=>{const[r,s]=A.useState(!1),o=A.useRef(!1),l=A.useRef(new Set([])),[u,c]=A.useMemo(()=>{if(e!==null){const h=(Array.isArray(e)?e:[e]).filter(m=>typeof m=="string").map(m=>m.split("+")),f=h.reduce((m,y)=>m.concat(...y),[]);return[h,f]}return[[],[]]},[e]);return A.useEffect(()=>{const p=typeof document<"u"?document:null,h=(n==null?void 0:n.target)||p;if(e!==null){const f=x=>{if(o.current=x.ctrlKey||x.metaKey||x.shiftKey,(!o.current||o.current&&!n.actInsideInputWithModifier)&&Bg(x))return!1;const _=Bw(x.code,c);l.current.add(x[_]),zw(u,l.current,!1)&&(x.preventDefault(),s(!0))},m=x=>{if((!o.current||o.current&&!n.actInsideInputWithModifier)&&Bg(x))return!1;const _=Bw(x.code,c);zw(u,l.current,!0)?(s(!1),l.current.clear()):l.current.delete(x[_]),x.key==="Meta"&&l.current.clear(),o.current=!1},y=()=>{l.current.clear(),s(!1)};return h==null||h.addEventListener("keydown",f),h==null||h.addEventListener("keyup",m),window.addEventListener("blur",y),()=>{h==null||h.removeEventListener("keydown",f),h==null||h.removeEventListener("keyup",m),window.removeEventListener("blur",y)}}},[e,s]),r};function zw(e,n,r){return e.filter(s=>r||s.length===n.size).some(s=>s.every(o=>n.has(o)))}function Bw(e,n){return n.includes(e)?"code":"key"}function ZE(e,n,r,s){var c,p;const o=e.parentNode||e.parentId;if(!o)return r;const l=n.get(o),u=Yi(l,s);return ZE(l,n,{x:(r.x??0)+u.x,y:(r.y??0)+u.y,z:(((c=l[mt])==null?void 0:c.z)??0)>(r.z??0)?((p=l[mt])==null?void 0:p.z)??0:r.z??0},s)}function JE(e,n,r){e.forEach(s=>{var l;const o=s.parentNode||s.parentId;if(o&&!e.has(o))throw new Error(`Parent node ${o} not found`);if(o||r!=null&&r[s.id]){const{x:u,y:c,z:p}=ZE(s,e,{...s.position,z:((l=s[mt])==null?void 0:l.z)??0},n);s.positionAbsolute={x:u,y:c},s[mt].z=p,r!=null&&r[s.id]&&(s[mt].isParent=!0)}})}function ad(e,n,r,s){const o=new Map,l={},u=s?1e3:0;return e.forEach(c=>{var x;const p=(Rn(c.zIndex)?c.zIndex:0)+(c.selected?u:0),h=n.get(c.id),f={...c,positionAbsolute:{x:c.position.x,y:c.position.y}},m=c.parentNode||c.parentId;m&&(l[m]=!0);const y=(h==null?void 0:h.type)&&(h==null?void 0:h.type)!==c.type;Object.defineProperty(f,mt,{enumerable:!1,value:{handleBounds:y||(x=h==null?void 0:h[mt])==null?void 0:x.handleBounds,z:p}}),o.set(c.id,f)}),JE(o,r,l),o}function eN(e,n={}){const{getNodes:r,width:s,height:o,minZoom:l,maxZoom:u,d3Zoom:c,d3Selection:p,fitViewOnInitDone:h,fitViewOnInit:f,nodeOrigin:m}=e(),y=n.initial&&!h&&f;if(c&&p&&(y||!n.initial)){const C=r().filter(S=>{var k;const b=n.includeHiddenNodes?S.width&&S.height:!S.hidden;return(k=n.nodes)!=null&&k.length?b&&n.nodes.some(N=>N.id===S.id):b}),_=C.every(S=>S.width&&S.height);if(C.length>0&&_){const S=ru(C,m),{x:b,y:k,zoom:N}=DE(S,s,o,n.minZoom??l,n.maxZoom??u,n.padding??.1),T=Ar.translate(b,k).scale(N);return typeof n.duration=="number"&&n.duration>0?c.transform(Hi(p,n.duration),T):c.transform(p,T),!0}}return!1}function WI(e,n){return e.forEach(r=>{const s=n.get(r.id);s&&n.set(s.id,{...s,[mt]:s[mt],selected:r.selected})}),new Map(n)}function VI(e,n){return n.map(r=>{const s=e.find(o=>o.id===r.id);return s&&(r.selected=s.selected),r})}function El({changedNodes:e,changedEdges:n,get:r,set:s}){const{nodeInternals:o,edges:l,onNodesChange:u,onEdgesChange:c,hasDefaultNodes:p,hasDefaultEdges:h}=r();e!=null&&e.length&&(p&&s({nodeInternals:WI(e,o)}),u==null||u(e)),n!=null&&n.length&&(h&&s({edges:VI(n,l)}),c==null||c(n))}const qs=()=>{},GI={zoomIn:qs,zoomOut:qs,zoomTo:qs,getZoom:()=>1,setViewport:qs,getViewport:()=>({x:0,y:0,zoom:1}),fitView:()=>!1,setCenter:qs,fitBounds:qs,project:e=>e,screenToFlowPosition:e=>e,flowToScreenPosition:e=>e,viewportInitialized:!1},YI=e=>({d3Zoom:e.d3Zoom,d3Selection:e.d3Selection}),KI=()=>{const e=Et(),{d3Zoom:n,d3Selection:r}=Ke(YI,kt);return A.useMemo(()=>r&&n?{zoomIn:o=>n.scaleBy(Hi(r,o==null?void 0:o.duration),1.2),zoomOut:o=>n.scaleBy(Hi(r,o==null?void 0:o.duration),1/1.2),zoomTo:(o,l)=>n.scaleTo(Hi(r,l==null?void 0:l.duration),o),getZoom:()=>e.getState().transform[2],setViewport:(o,l)=>{const[u,c,p]=e.getState().transform,h=Ar.translate(o.x??u,o.y??c).scale(o.zoom??p);n.transform(Hi(r,l==null?void 0:l.duration),h)},getViewport:()=>{const[o,l,u]=e.getState().transform;return{x:o,y:l,zoom:u}},fitView:o=>eN(e.getState,o),setCenter:(o,l,u)=>{const{width:c,height:p,maxZoom:h}=e.getState(),f=typeof(u==null?void 0:u.zoom)<"u"?u.zoom:h,m=c/2-o*f,y=p/2-l*f,x=Ar.translate(m,y).scale(f);n.transform(Hi(r,u==null?void 0:u.duration),x)},fitBounds:(o,l)=>{const{width:u,height:c,minZoom:p,maxZoom:h}=e.getState(),{x:f,y:m,zoom:y}=DE(o,u,c,p,h,(l==null?void 0:l.padding)??.1),x=Ar.translate(f,m).scale(y);n.transform(Hi(r,l==null?void 0:l.duration),x)},project:o=>{const{transform:l,snapToGrid:u,snapGrid:c}=e.getState();return console.warn("[DEPRECATED] `project` is deprecated. Instead use `screenToFlowPosition`. There is no need to subtract the react flow bounds anymore! https://reactflow.dev/api-reference/types/react-flow-instance#screen-to-flow-position"),Wg(o,l,u,c)},screenToFlowPosition:o=>{const{transform:l,snapToGrid:u,snapGrid:c,domNode:p}=e.getState();if(!p)return o;const{x:h,y:f}=p.getBoundingClientRect(),m={x:o.x-h,y:o.y-f};return Wg(m,l,u,c)},flowToScreenPosition:o=>{const{transform:l,domNode:u}=e.getState();if(!u)return o;const{x:c,y:p}=u.getBoundingClientRect(),h=LE(o,l);return{x:h.x+c,y:h.y+p}},viewportInitialized:!0}:GI,[n,r])};function ca(){const e=KI(),n=Et(),r=A.useCallback(()=>n.getState().getNodes().map(_=>({..._})),[]),s=A.useCallback(_=>n.getState().nodeInternals.get(_),[]),o=A.useCallback(()=>{const{edges:_=[]}=n.getState();return _.map(S=>({...S}))},[]),l=A.useCallback(_=>{const{edges:S=[]}=n.getState();return S.find(b=>b.id===_)},[]),u=A.useCallback(_=>{const{getNodes:S,setNodes:b,hasDefaultNodes:k,onNodesChange:N}=n.getState(),T=S(),I=typeof _=="function"?_(T):_;if(k)b(I);else if(N){const M=I.length===0?T.map(O=>({type:"remove",id:O.id})):I.map(O=>({item:O,type:"reset"}));N(M)}},[]),c=A.useCallback(_=>{const{edges:S=[],setEdges:b,hasDefaultEdges:k,onEdgesChange:N}=n.getState(),T=typeof _=="function"?_(S):_;if(k)b(T);else if(N){const I=T.length===0?S.map(M=>({type:"remove",id:M.id})):T.map(M=>({item:M,type:"reset"}));N(I)}},[]),p=A.useCallback(_=>{const S=Array.isArray(_)?_:[_],{getNodes:b,setNodes:k,hasDefaultNodes:N,onNodesChange:T}=n.getState();if(N){const M=[...b(),...S];k(M)}else if(T){const I=S.map(M=>({item:M,type:"add"}));T(I)}},[]),h=A.useCallback(_=>{const S=Array.isArray(_)?_:[_],{edges:b=[],setEdges:k,hasDefaultEdges:N,onEdgesChange:T}=n.getState();if(N)k([...b,...S]);else if(T){const I=S.map(M=>({item:M,type:"add"}));T(I)}},[]),f=A.useCallback(()=>{const{getNodes:_,edges:S=[],transform:b}=n.getState(),[k,N,T]=b;return{nodes:_().map(I=>({...I})),edges:S.map(I=>({...I})),viewport:{x:k,y:N,zoom:T}}},[]),m=A.useCallback(({nodes:_,edges:S})=>{const{nodeInternals:b,getNodes:k,edges:N,hasDefaultNodes:T,hasDefaultEdges:I,onNodesDelete:M,onEdgesDelete:O,onNodesChange:H,onEdgesChange:L}=n.getState(),P=(_||[]).map(K=>K.id),q=(S||[]).map(K=>K.id),W=k().reduce((K,U)=>{const ee=U.parentNode||U.parentId,J=!P.includes(U.id)&&ee&&K.find(Y=>Y.id===ee);return(typeof U.deletable=="boolean"?U.deletable:!0)&&(P.includes(U.id)||J)&&K.push(U),K},[]),B=N.filter(K=>typeof K.deletable=="boolean"?K.deletable:!0),j=B.filter(K=>q.includes(K.id));if(W||j){const K=$E(W,B),U=[...j,...K],ee=U.reduce((J,F)=>(J.includes(F.id)||J.push(F.id),J),[]);if((I||T)&&(I&&n.setState({edges:N.filter(J=>!ee.includes(J.id))}),T&&(W.forEach(J=>{b.delete(J.id)}),n.setState({nodeInternals:new Map(b)}))),ee.length>0&&(O==null||O(U),L&&L(ee.map(J=>({id:J,type:"remove"})))),W.length>0&&(M==null||M(W),H)){const J=W.map(F=>({id:F.id,type:"remove"}));H(J)}}},[]),y=A.useCallback(_=>{const S=mI(_),b=S?null:n.getState().nodeInternals.get(_.id);return!S&&!b?[null,null,S]:[S?_:Mw(b),b,S]},[]),x=A.useCallback((_,S=!0,b)=>{const[k,N,T]=y(_);return k?(b||n.getState().getNodes()).filter(I=>{if(!T&&(I.id===N.id||!I.positionAbsolute))return!1;const M=Mw(I),O=zg(M,k);return S&&O>0||O>=k.width*k.height}):[]},[]),C=A.useCallback((_,S,b=!0)=>{const[k]=y(_);if(!k)return!1;const N=zg(k,S);return b&&N>0||N>=k.width*k.height},[]);return A.useMemo(()=>({...e,getNodes:r,getNode:s,getEdges:o,getEdge:l,setNodes:u,setEdges:c,addNodes:p,addEdges:h,toObject:f,deleteElements:m,getIntersectingNodes:x,isNodeIntersecting:C}),[e,r,s,o,l,u,c,p,h,f,m,x,C])}const XI={actInsideInputWithModifier:!1};var QI=({deleteKeyCode:e,multiSelectionKeyCode:n})=>{const r=Et(),{deleteElements:s}=ca(),o=ra(e,XI),l=ra(n);A.useEffect(()=>{if(o){const{edges:u,getNodes:c}=r.getState(),p=c().filter(f=>f.selected),h=u.filter(f=>f.selected);s({nodes:p,edges:h}),r.setState({nodesSelectionActive:!1})}},[o]),A.useEffect(()=>{r.setState({multiSelectionActive:l})},[l])};function ZI(e){const n=Et();A.useEffect(()=>{let r;const s=()=>{var l,u;if(!e.current)return;const o=cv(e.current);(o.height===0||o.width===0)&&((u=(l=n.getState()).onError)==null||u.call(l,"004",Mr.error004())),n.setState({width:o.width||500,height:o.height||500})};return s(),window.addEventListener("resize",s),e.current&&(r=new ResizeObserver(()=>s()),r.observe(e.current)),()=>{window.removeEventListener("resize",s),r&&e.current&&r.unobserve(e.current)}},[])}const yv={position:"absolute",width:"100%",height:"100%",top:0,left:0},JI=(e,n)=>e.x!==n.x||e.y!==n.y||e.zoom!==n.k,Nl=e=>({x:e.x,y:e.y,zoom:e.k}),$s=(e,n)=>e.target.closest(`.${n}`),Uw=(e,n)=>n===2&&Array.isArray(e)&&e.includes(2),Hw=e=>{const n=e.ctrlKey&&Hl()?10:1;return-e.deltaY*(e.deltaMode===1?.05:e.deltaMode?1:.002)*n},eM=e=>({d3Zoom:e.d3Zoom,d3Selection:e.d3Selection,d3ZoomHandler:e.d3ZoomHandler,userSelectionActive:e.userSelectionActive}),tM=({onMove:e,onMoveStart:n,onMoveEnd:r,onPaneContextMenu:s,zoomOnScroll:o=!0,zoomOnPinch:l=!0,panOnScroll:u=!1,panOnScrollSpeed:c=.5,panOnScrollMode:p=Vi.Free,zoomOnDoubleClick:h=!0,elementsSelectable:f,panOnDrag:m=!0,defaultViewport:y,translateExtent:x,minZoom:C,maxZoom:_,zoomActivationKeyCode:S,preventScrolling:b=!0,children:k,noWheelClassName:N,noPanClassName:T})=>{const I=A.useRef(),M=Et(),O=A.useRef(!1),H=A.useRef(!1),L=A.useRef(null),P=A.useRef({x:0,y:0,zoom:0}),{d3Zoom:q,d3Selection:W,d3ZoomHandler:B,userSelectionActive:j}=Ke(eM,kt),K=ra(S),U=A.useRef(0),ee=A.useRef(!1),J=A.useRef();return ZI(L),A.useEffect(()=>{if(L.current){const F=L.current.getBoundingClientRect(),Y=kE().scaleExtent([C,_]).translateExtent(x),E=Tn(L.current).call(Y),$=Ar.translate(y.x,y.y).scale(Qs(y.zoom,C,_)),se=[[0,0],[F.width,F.height]],D=Y.constrain()($,se,x);Y.transform(E,D),Y.wheelDelta(Hw),M.setState({d3Zoom:Y,d3Selection:E,d3ZoomHandler:E.on("wheel.zoom"),transform:[D.x,D.y,D.k],domNode:L.current.closest(".react-flow")})}},[]),A.useEffect(()=>{W&&q&&(u&&!K&&!j?W.on("wheel.zoom",F=>{if($s(F,N))return!1;F.preventDefault(),F.stopImmediatePropagation();const Y=W.property("__zoom").k||1;if(F.ctrlKey&&l){const ce=Xn(F),me=Hw(F),ge=Y*Math.pow(2,me);q.scaleTo(W,ge,ce,F);return}const E=F.deltaMode===1?20:1;let $=p===Vi.Vertical?0:F.deltaX*E,se=p===Vi.Horizontal?0:F.deltaY*E;!Hl()&&F.shiftKey&&p!==Vi.Vertical&&($=F.deltaY*E,se=0),q.translateBy(W,-($/Y)*c,-(se/Y)*c,{internal:!0});const D=Nl(W.property("__zoom")),{onViewportChangeStart:Q,onViewportChange:te,onViewportChangeEnd:ae}=M.getState();clearTimeout(J.current),ee.current||(ee.current=!0,n==null||n(F,D),Q==null||Q(D)),ee.current&&(e==null||e(F,D),te==null||te(D),J.current=setTimeout(()=>{r==null||r(F,D),ae==null||ae(D),ee.current=!1},150))},{passive:!1}):typeof B<"u"&&W.on("wheel.zoom",function(F,Y){if(!b&&F.type==="wheel"&&!F.ctrlKey||$s(F,N))return null;F.preventDefault(),B.call(this,F,Y)},{passive:!1}))},[j,u,p,W,q,B,K,l,b,N,n,e,r]),A.useEffect(()=>{q&&q.on("start",F=>{var $,se;if(!F.sourceEvent||F.sourceEvent.internal)return null;U.current=($=F.sourceEvent)==null?void 0:$.button;const{onViewportChangeStart:Y}=M.getState(),E=Nl(F.transform);O.current=!0,P.current=E,((se=F.sourceEvent)==null?void 0:se.type)==="mousedown"&&M.setState({paneDragging:!0}),Y==null||Y(E),n==null||n(F.sourceEvent,E)})},[q,n]),A.useEffect(()=>{q&&(j&&!O.current?q.on("zoom",null):j||q.on("zoom",F=>{var E;const{onViewportChange:Y}=M.getState();if(M.setState({transform:[F.transform.x,F.transform.y,F.transform.k]}),H.current=!!(s&&Uw(m,U.current??0)),(e||Y)&&!((E=F.sourceEvent)!=null&&E.internal)){const $=Nl(F.transform);Y==null||Y($),e==null||e(F.sourceEvent,$)}}))},[j,q,e,m,s]),A.useEffect(()=>{q&&q.on("end",F=>{if(!F.sourceEvent||F.sourceEvent.internal)return null;const{onViewportChangeEnd:Y}=M.getState();if(O.current=!1,M.setState({paneDragging:!1}),s&&Uw(m,U.current??0)&&!H.current&&s(F.sourceEvent),H.current=!1,(r||Y)&&JI(P.current,F.transform)){const E=Nl(F.transform);P.current=E,clearTimeout(I.current),I.current=setTimeout(()=>{Y==null||Y(E),r==null||r(F.sourceEvent,E)},u?150:0)}})},[q,u,m,r,s]),A.useEffect(()=>{q&&q.filter(F=>{const Y=K||o,E=l&&F.ctrlKey;if((m===!0||Array.isArray(m)&&m.includes(1))&&F.button===1&&F.type==="mousedown"&&($s(F,"react-flow__node")||$s(F,"react-flow__edge")))return!0;if(!m&&!Y&&!u&&!h&&!l||j||!h&&F.type==="dblclick"||$s(F,N)&&F.type==="wheel"||$s(F,T)&&(F.type!=="wheel"||u&&F.type==="wheel"&&!K)||!l&&F.ctrlKey&&F.type==="wheel"||!Y&&!u&&!E&&F.type==="wheel"||!m&&(F.type==="mousedown"||F.type==="touchstart")||Array.isArray(m)&&!m.includes(F.button)&&F.type==="mousedown")return!1;const $=Array.isArray(m)&&m.includes(F.button)||!F.button||F.button<=1;return(!F.ctrlKey||F.type==="wheel")&&$})},[j,q,o,l,u,h,m,f,K]),le.createElement("div",{className:"react-flow__renderer",ref:L,style:yv},k)},nM=e=>({userSelectionActive:e.userSelectionActive,userSelectionRect:e.userSelectionRect});function rM(){const{userSelectionActive:e,userSelectionRect:n}=Ke(nM,kt);return e&&n?le.createElement("div",{className:"react-flow__selection react-flow__container",style:{width:n.width,height:n.height,transform:`translate(${n.x}px, ${n.y}px)`}}):null}function Ww(e,n){const r=n.parentNode||n.parentId,s=e.find(o=>o.id===r);if(s){const o=n.position.x+n.width-s.width,l=n.position.y+n.height-s.height;if(o>0||l>0||n.position.x<0||n.position.y<0){if(s.style={...s.style},s.style.width=s.style.width??s.width,s.style.height=s.style.height??s.height,o>0&&(s.style.width+=o),l>0&&(s.style.height+=l),n.position.x<0){const u=Math.abs(n.position.x);s.position.x=s.position.x-u,s.style.width+=u,n.position.x=0}if(n.position.y<0){const u=Math.abs(n.position.y);s.position.y=s.position.y-u,s.style.height+=u,n.position.y=0}s.width=s.style.width,s.height=s.style.height}}}function iM(e,n){if(e.some(s=>s.type==="reset"))return e.filter(s=>s.type==="reset").map(s=>s.item);const r=e.filter(s=>s.type==="add").map(s=>s.item);return n.reduce((s,o)=>{const l=e.filter(c=>c.id===o.id);if(l.length===0)return s.push(o),s;const u={...o};for(const c of l)if(c)switch(c.type){case"select":{u.selected=c.selected;break}case"position":{typeof c.position<"u"&&(u.position=c.position),typeof c.positionAbsolute<"u"&&(u.positionAbsolute=c.positionAbsolute),typeof c.dragging<"u"&&(u.dragging=c.dragging),u.expandParent&&Ww(s,u);break}case"dimensions":{typeof c.dimensions<"u"&&(u.width=c.dimensions.width,u.height=c.dimensions.height),typeof c.updateStyle<"u"&&(u.style={...u.style||{},...c.dimensions}),typeof c.resizing=="boolean"&&(u.resizing=c.resizing),u.expandParent&&Ww(s,u);break}case"remove":return s}return s.push(u),s},r)}function sM(e,n){return iM(e,n)}const ui=(e,n)=>({id:e,type:"select",selected:n});function Bs(e,n){return e.reduce((r,s)=>{const o=n.includes(s.id);return!s.selected&&o?(s.selected=!0,r.push(ui(s.id,!0))):s.selected&&!o&&(s.selected=!1,r.push(ui(s.id,!1))),r},[])}const ld=(e,n)=>r=>{r.target===n.current&&(e==null||e(r))},oM=e=>({userSelectionActive:e.userSelectionActive,elementsSelectable:e.elementsSelectable,dragging:e.paneDragging}),tN=A.memo(({isSelecting:e,selectionMode:n=na.Full,panOnDrag:r,onSelectionStart:s,onSelectionEnd:o,onPaneClick:l,onPaneContextMenu:u,onPaneScroll:c,onPaneMouseEnter:p,onPaneMouseMove:h,onPaneMouseLeave:f,children:m})=>{const y=A.useRef(null),x=Et(),C=A.useRef(0),_=A.useRef(0),S=A.useRef(),{userSelectionActive:b,elementsSelectable:k,dragging:N}=Ke(oM,kt),T=()=>{x.setState({userSelectionActive:!1,userSelectionRect:null}),C.current=0,_.current=0},I=B=>{l==null||l(B),x.getState().resetSelectedElements(),x.setState({nodesSelectionActive:!1})},M=B=>{if(Array.isArray(r)&&(r!=null&&r.includes(2))){B.preventDefault();return}u==null||u(B)},O=c?B=>c(B):void 0,H=B=>{const{resetSelectedElements:j,domNode:K}=x.getState();if(S.current=K==null?void 0:K.getBoundingClientRect(),!k||!e||B.button!==0||B.target!==y.current||!S.current)return;const{x:U,y:ee}=di(B,S.current);j(),x.setState({userSelectionRect:{width:0,height:0,startX:U,startY:ee,x:U,y:ee}}),s==null||s(B)},L=B=>{const{userSelectionRect:j,nodeInternals:K,edges:U,transform:ee,onNodesChange:J,onEdgesChange:F,nodeOrigin:Y,getNodes:E}=x.getState();if(!e||!S.current||!j)return;x.setState({userSelectionActive:!0,nodesSelectionActive:!1});const $=di(B,S.current),se=j.startX??0,D=j.startY??0,Q={...j,x:$.x<se?$.x:se,y:$.y<D?$.y:D,width:Math.abs($.x-se),height:Math.abs($.y-D)},te=E(),ae=qE(K,Q,ee,n===na.Partial,!0,Y),ce=$E(ae,U).map(ge=>ge.id),me=ae.map(ge=>ge.id);if(C.current!==me.length){C.current=me.length;const ge=Bs(te,me);ge.length&&(J==null||J(ge))}if(_.current!==ce.length){_.current=ce.length;const ge=Bs(U,ce);ge.length&&(F==null||F(ge))}x.setState({userSelectionRect:Q})},P=B=>{if(B.button!==0)return;const{userSelectionRect:j}=x.getState();!b&&j&&B.target===y.current&&(I==null||I(B)),x.setState({nodesSelectionActive:C.current>0}),T(),o==null||o(B)},q=B=>{b&&(x.setState({nodesSelectionActive:C.current>0}),o==null||o(B)),T()},W=k&&(e||b);return le.createElement("div",{className:Dt(["react-flow__pane",{dragging:N,selection:e}]),onClick:W?void 0:ld(I,y),onContextMenu:ld(M,y),onWheel:ld(O,y),onMouseEnter:W?void 0:p,onMouseDown:W?H:void 0,onMouseMove:W?L:h,onMouseUp:W?P:void 0,onMouseLeave:W?q:f,ref:y,style:yv},m,le.createElement(rM,null))});tN.displayName="Pane";function nN(e,n){const r=e.parentNode||e.parentId;if(!r)return!1;const s=n.get(r);return s?s.selected?!0:nN(s,n):!1}function Vw(e,n,r){let s=e;do{if(s!=null&&s.matches(n))return!0;if(s===r.current)return!1;s=s.parentElement}while(s);return!1}function aM(e,n,r,s){return Array.from(e.values()).filter(o=>(o.selected||o.id===s)&&(!o.parentNode||o.parentId||!nN(o,e))&&(o.draggable||n&&typeof o.draggable>"u")).map(o=>{var l,u;return{id:o.id,position:o.position||{x:0,y:0},positionAbsolute:o.positionAbsolute||{x:0,y:0},distance:{x:r.x-(((l=o.positionAbsolute)==null?void 0:l.x)??0),y:r.y-(((u=o.positionAbsolute)==null?void 0:u.y)??0)},delta:{x:0,y:0},extent:o.extent,parentNode:o.parentNode||o.parentId,parentId:o.parentNode||o.parentId,width:o.width,height:o.height,expandParent:o.expandParent}})}function lM(e,n){return!n||n==="parent"?n:[n[0],[n[1][0]-(e.width||0),n[1][1]-(e.height||0)]]}function rN(e,n,r,s,o=[0,0],l){const u=lM(e,e.extent||s);let c=u;const p=e.parentNode||e.parentId;if(e.extent==="parent"&&!e.expandParent)if(p&&e.width&&e.height){const m=r.get(p),{x:y,y:x}=Yi(m,o).positionAbsolute;c=m&&Rn(y)&&Rn(x)&&Rn(m.width)&&Rn(m.height)?[[y+e.width*o[0],x+e.height*o[1]],[y+m.width-e.width+e.width*o[0],x+m.height-e.height+e.height*o[1]]]:c}else l==null||l("005",Mr.error005()),c=u;else if(e.extent&&p&&e.extent!=="parent"){const m=r.get(p),{x:y,y:x}=Yi(m,o).positionAbsolute;c=[[e.extent[0][0]+y,e.extent[0][1]+x],[e.extent[1][0]+y,e.extent[1][1]+x]]}let h={x:0,y:0};if(p){const m=r.get(p);h=Yi(m,o).positionAbsolute}const f=c&&c!=="parent"?dv(n,c):n;return{position:{x:f.x-h.x,y:f.y-h.y},positionAbsolute:f}}function ud({nodeId:e,dragItems:n,nodeInternals:r}){const s=n.map(o=>({...r.get(o.id),position:o.position,positionAbsolute:o.positionAbsolute}));return[e?s.find(o=>o.id===e):s[0],s]}const Gw=(e,n,r,s)=>{const o=n.querySelectorAll(e);if(!o||!o.length)return null;const l=Array.from(o),u=n.getBoundingClientRect(),c={x:u.width*s[0],y:u.height*s[1]};return l.map(p=>{const h=p.getBoundingClientRect();return{id:p.getAttribute("data-handleid"),position:p.getAttribute("data-handlepos"),x:(h.left-u.left-c.x)/r,y:(h.top-u.top-c.y)/r,...cv(p)}})};function zo(e,n,r){return r===void 0?r:s=>{const o=n().nodeInternals.get(e);o&&r(s,{...o})}}function Gg({id:e,store:n,unselect:r=!1,nodeRef:s}){const{addSelectedNodes:o,unselectNodesAndEdges:l,multiSelectionActive:u,nodeInternals:c,onError:p}=n.getState(),h=c.get(e);if(!h){p==null||p("012",Mr.error012(e));return}n.setState({nodesSelectionActive:!1}),h.selected?(r||h.selected&&u)&&(l({nodes:[h],edges:[]}),requestAnimationFrame(()=>{var f;return(f=s==null?void 0:s.current)==null?void 0:f.blur()})):o([e])}function uM(){const e=Et();return A.useCallback(({sourceEvent:r})=>{const{transform:s,snapGrid:o,snapToGrid:l}=e.getState(),u=r.touches?r.touches[0].clientX:r.clientX,c=r.touches?r.touches[0].clientY:r.clientY,p={x:(u-s[0])/s[2],y:(c-s[1])/s[2]};return{xSnapped:l?o[0]*Math.round(p.x/o[0]):p.x,ySnapped:l?o[1]*Math.round(p.y/o[1]):p.y,...p}},[])}function cd(e){return(n,r,s)=>e==null?void 0:e(n,s)}function iN({nodeRef:e,disabled:n=!1,noDragClassName:r,handleSelector:s,nodeId:o,isSelectable:l,selectNodesOnDrag:u}){const c=Et(),[p,h]=A.useState(!1),f=A.useRef([]),m=A.useRef({x:null,y:null}),y=A.useRef(0),x=A.useRef(null),C=A.useRef({x:0,y:0}),_=A.useRef(null),S=A.useRef(!1),b=A.useRef(!1),k=A.useRef(!1),N=uM();return A.useEffect(()=>{if(e!=null&&e.current){const T=Tn(e.current),I=({x:H,y:L})=>{const{nodeInternals:P,onNodeDrag:q,onSelectionDrag:W,updateNodePositions:B,nodeExtent:j,snapGrid:K,snapToGrid:U,nodeOrigin:ee,onError:J}=c.getState();m.current={x:H,y:L};let F=!1,Y={x:0,y:0,x2:0,y2:0};if(f.current.length>1&&j){const $=ru(f.current,ee);Y=ta($)}if(f.current=f.current.map($=>{const se={x:H-$.distance.x,y:L-$.distance.y};U&&(se.x=K[0]*Math.round(se.x/K[0]),se.y=K[1]*Math.round(se.y/K[1]));const D=[[j[0][0],j[0][1]],[j[1][0],j[1][1]]];f.current.length>1&&j&&!$.extent&&(D[0][0]=$.positionAbsolute.x-Y.x+j[0][0],D[1][0]=$.positionAbsolute.x+($.width??0)-Y.x2+j[1][0],D[0][1]=$.positionAbsolute.y-Y.y+j[0][1],D[1][1]=$.positionAbsolute.y+($.height??0)-Y.y2+j[1][1]);const Q=rN($,se,P,D,ee,J);return F=F||$.position.x!==Q.position.x||$.position.y!==Q.position.y,$.position=Q.position,$.positionAbsolute=Q.positionAbsolute,$}),!F)return;B(f.current,!0,!0),h(!0);const E=o?q:cd(W);if(E&&_.current){const[$,se]=ud({nodeId:o,dragItems:f.current,nodeInternals:P});E(_.current,$,se)}},M=()=>{if(!x.current)return;const[H,L]=NE(C.current,x.current);if(H!==0||L!==0){const{transform:P,panBy:q}=c.getState();m.current.x=(m.current.x??0)-H/P[2],m.current.y=(m.current.y??0)-L/P[2],q({x:H,y:L})&&I(m.current)}y.current=requestAnimationFrame(M)},O=H=>{var ee;const{nodeInternals:L,multiSelectionActive:P,nodesDraggable:q,unselectNodesAndEdges:W,onNodeDragStart:B,onSelectionDragStart:j}=c.getState();b.current=!0;const K=o?B:cd(j);(!u||!l)&&!P&&o&&((ee=L.get(o))!=null&&ee.selected||W()),o&&l&&u&&Gg({id:o,store:c,nodeRef:e});const U=N(H);if(m.current=U,f.current=aM(L,q,U,o),K&&f.current){const[J,F]=ud({nodeId:o,dragItems:f.current,nodeInternals:L});K(H.sourceEvent,J,F)}};if(n)T.on(".drag",null);else{const H=y2().on("start",L=>{const{domNode:P,nodeDragThreshold:q}=c.getState();q===0&&O(L),k.current=!1;const W=N(L);m.current=W,x.current=(P==null?void 0:P.getBoundingClientRect())||null,C.current=di(L.sourceEvent,x.current)}).on("drag",L=>{var B,j;const P=N(L),{autoPanOnNodeDrag:q,nodeDragThreshold:W}=c.getState();if(L.sourceEvent.type==="touchmove"&&L.sourceEvent.touches.length>1&&(k.current=!0),!k.current){if(!S.current&&b.current&&q&&(S.current=!0,M()),!b.current){const K=P.xSnapped-(((B=m==null?void 0:m.current)==null?void 0:B.x)??0),U=P.ySnapped-(((j=m==null?void 0:m.current)==null?void 0:j.y)??0);Math.sqrt(K*K+U*U)>W&&O(L)}(m.current.x!==P.xSnapped||m.current.y!==P.ySnapped)&&f.current&&b.current&&(_.current=L.sourceEvent,C.current=di(L.sourceEvent,x.current),I(P))}}).on("end",L=>{if(!(!b.current||k.current)&&(h(!1),S.current=!1,b.current=!1,cancelAnimationFrame(y.current),f.current)){const{updateNodePositions:P,nodeInternals:q,onNodeDragStop:W,onSelectionDragStop:B}=c.getState(),j=o?W:cd(B);if(P(f.current,!1,!1),j){const[K,U]=ud({nodeId:o,dragItems:f.current,nodeInternals:q});j(L.sourceEvent,K,U)}}}).filter(L=>{const P=L.target;return!L.button&&(!r||!Vw(P,`.${r}`,e))&&(!s||Vw(P,s,e))});return T.call(H),()=>{T.on(".drag",null)}}}},[e,n,r,s,l,c,o,u,N]),p}function sN(){const e=Et();return A.useCallback(r=>{const{nodeInternals:s,nodeExtent:o,updateNodePositions:l,getNodes:u,snapToGrid:c,snapGrid:p,onError:h,nodesDraggable:f}=e.getState(),m=u().filter(k=>k.selected&&(k.draggable||f&&typeof k.draggable>"u")),y=c?p[0]:5,x=c?p[1]:5,C=r.isShiftPressed?4:1,_=r.x*y*C,S=r.y*x*C,b=m.map(k=>{if(k.positionAbsolute){const N={x:k.positionAbsolute.x+_,y:k.positionAbsolute.y+S};c&&(N.x=p[0]*Math.round(N.x/p[0]),N.y=p[1]*Math.round(N.y/p[1]));const{positionAbsolute:T,position:I}=rN(k,N,s,o,void 0,h);k.position=I,k.positionAbsolute=T}return k});l(b,!0,!1)},[])}const Gs={ArrowUp:{x:0,y:-1},ArrowDown:{x:0,y:1},ArrowLeft:{x:-1,y:0},ArrowRight:{x:1,y:0}};var Bo=e=>{const n=({id:r,type:s,data:o,xPos:l,yPos:u,xPosOrigin:c,yPosOrigin:p,selected:h,onClick:f,onMouseEnter:m,onMouseMove:y,onMouseLeave:x,onContextMenu:C,onDoubleClick:_,style:S,className:b,isDraggable:k,isSelectable:N,isConnectable:T,isFocusable:I,selectNodesOnDrag:M,sourcePosition:O,targetPosition:H,hidden:L,resizeObserver:P,dragHandle:q,zIndex:W,isParent:B,noDragClassName:j,noPanClassName:K,initialized:U,disableKeyboardA11y:ee,ariaLabel:J,rfId:F,hasHandleBounds:Y})=>{const E=Et(),$=A.useRef(null),se=A.useRef(null),D=A.useRef(O),Q=A.useRef(H),te=A.useRef(s),ae=N||k||f||m||y||x,ce=sN(),me=zo(r,E.getState,m),ge=zo(r,E.getState,y),Pe=zo(r,E.getState,x),Se=zo(r,E.getState,C),Oe=zo(r,E.getState,_),Me=ye=>{const{nodeDragThreshold:we}=E.getState();if(N&&(!M||!k||we>0)&&Gg({id:r,store:E,nodeRef:$}),f){const Ue=E.getState().nodeInternals.get(r);Ue&&f(ye,{...Ue})}},be=ye=>{if(!Bg(ye)&&!ee)if(jE.includes(ye.key)&&N){const we=ye.key==="Escape";Gg({id:r,store:E,unselect:we,nodeRef:$})}else k&&h&&Object.prototype.hasOwnProperty.call(Gs,ye.key)&&(E.setState({ariaLiveMessage:`Moved selected node ${ye.key.replace("Arrow","").toLowerCase()}. New position, x: ${~~l}, y: ${~~u}`}),ce({x:Gs[ye.key].x,y:Gs[ye.key].y,isShiftPressed:ye.shiftKey}))};A.useEffect(()=>()=>{se.current&&(P==null||P.unobserve(se.current),se.current=null)},[]),A.useEffect(()=>{if($.current&&!L){const ye=$.current;(!U||!Y||se.current!==ye)&&(se.current&&(P==null||P.unobserve(se.current)),P==null||P.observe(ye),se.current=ye)}},[L,U,Y]),A.useEffect(()=>{const ye=te.current!==s,we=D.current!==O,Ue=Q.current!==H;$.current&&(ye||we||Ue)&&(ye&&(te.current=s),we&&(D.current=O),Ue&&(Q.current=H),E.getState().updateNodeDimensions([{id:r,nodeElement:$.current,forceUpdate:!0}]))},[r,s,O,H]);const De=iN({nodeRef:$,disabled:L||!k,noDragClassName:j,handleSelector:q,nodeId:r,isSelectable:N,selectNodesOnDrag:M});return L?null:le.createElement("div",{className:Dt(["react-flow__node",`react-flow__node-${s}`,{[K]:k},b,{selected:h,selectable:N,parent:B,dragging:De}]),ref:$,style:{zIndex:W,transform:`translate(${c}px,${p}px)`,pointerEvents:ae?"all":"none",visibility:U?"visible":"hidden",...S},"data-id":r,"data-testid":`rf__node-${r}`,onMouseEnter:me,onMouseMove:ge,onMouseLeave:Pe,onContextMenu:Se,onClick:Me,onDoubleClick:Oe,onKeyDown:I?be:void 0,tabIndex:I?0:void 0,role:I?"button":void 0,"aria-describedby":ee?void 0:`${XE}-${F}`,"aria-label":J},le.createElement(SI,{value:r},le.createElement(e,{id:r,data:o,type:s,xPos:l,yPos:u,selected:h,isConnectable:T,sourcePosition:O,targetPosition:H,dragging:De,dragHandle:q,zIndex:W})))};return n.displayName="NodeWrapper",A.memo(n)};const cM=e=>{const n=e.getNodes().filter(r=>r.selected);return{...ru(n,e.nodeOrigin),transformString:`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`,userSelectionActive:e.userSelectionActive}};function dM({onSelectionContextMenu:e,noPanClassName:n,disableKeyboardA11y:r}){const s=Et(),{width:o,height:l,x:u,y:c,transformString:p,userSelectionActive:h}=Ke(cM,kt),f=sN(),m=A.useRef(null);if(A.useEffect(()=>{var C;r||(C=m.current)==null||C.focus({preventScroll:!0})},[r]),iN({nodeRef:m}),h||!o||!l)return null;const y=e?C=>{const _=s.getState().getNodes().filter(S=>S.selected);e(C,_)}:void 0,x=C=>{Object.prototype.hasOwnProperty.call(Gs,C.key)&&f({x:Gs[C.key].x,y:Gs[C.key].y,isShiftPressed:C.shiftKey})};return le.createElement("div",{className:Dt(["react-flow__nodesselection","react-flow__container",n]),style:{transform:p}},le.createElement("div",{ref:m,className:"react-flow__nodesselection-rect",onContextMenu:y,tabIndex:r?void 0:-1,onKeyDown:r?void 0:x,style:{width:o,height:l,top:c,left:u}}))}var fM=A.memo(dM);const hM=e=>e.nodesSelectionActive,oN=({children:e,onPaneClick:n,onPaneMouseEnter:r,onPaneMouseMove:s,onPaneMouseLeave:o,onPaneContextMenu:l,onPaneScroll:u,deleteKeyCode:c,onMove:p,onMoveStart:h,onMoveEnd:f,selectionKeyCode:m,selectionOnDrag:y,selectionMode:x,onSelectionStart:C,onSelectionEnd:_,multiSelectionKeyCode:S,panActivationKeyCode:b,zoomActivationKeyCode:k,elementsSelectable:N,zoomOnScroll:T,zoomOnPinch:I,panOnScroll:M,panOnScrollSpeed:O,panOnScrollMode:H,zoomOnDoubleClick:L,panOnDrag:P,defaultViewport:q,translateExtent:W,minZoom:B,maxZoom:j,preventScrolling:K,onSelectionContextMenu:U,noWheelClassName:ee,noPanClassName:J,disableKeyboardA11y:F})=>{const Y=Ke(hM),E=ra(m),$=ra(b),se=$||P,D=$||M,Q=E||y&&se!==!0;return QI({deleteKeyCode:c,multiSelectionKeyCode:S}),le.createElement(tM,{onMove:p,onMoveStart:h,onMoveEnd:f,onPaneContextMenu:l,elementsSelectable:N,zoomOnScroll:T,zoomOnPinch:I,panOnScroll:D,panOnScrollSpeed:O,panOnScrollMode:H,zoomOnDoubleClick:L,panOnDrag:!E&&se,defaultViewport:q,translateExtent:W,minZoom:B,maxZoom:j,zoomActivationKeyCode:k,preventScrolling:K,noWheelClassName:ee,noPanClassName:J},le.createElement(tN,{onSelectionStart:C,onSelectionEnd:_,onPaneClick:n,onPaneMouseEnter:r,onPaneMouseMove:s,onPaneMouseLeave:o,onPaneContextMenu:l,onPaneScroll:u,panOnDrag:se,isSelecting:!!Q,selectionMode:x},e,Y&&le.createElement(fM,{onSelectionContextMenu:U,noPanClassName:J,disableKeyboardA11y:F})))};oN.displayName="FlowRenderer";var pM=A.memo(oN);function mM(e){return Ke(A.useCallback(r=>e?qE(r.nodeInternals,{x:0,y:0,width:r.width,height:r.height},r.transform,!0):r.getNodes(),[e]))}function gM(e){const n={input:Bo(e.input||VE),default:Bo(e.default||Vg),output:Bo(e.output||YE),group:Bo(e.group||vv)},r={},s=Object.keys(e).filter(o=>!["input","default","output","group"].includes(o)).reduce((o,l)=>(o[l]=Bo(e[l]||Vg),o),r);return{...n,...s}}const vM=({x:e,y:n,width:r,height:s,origin:o})=>!r||!s?{x:e,y:n}:o[0]<0||o[1]<0||o[0]>1||o[1]>1?{x:e,y:n}:{x:e-r*o[0],y:n-s*o[1]},yM=e=>({nodesDraggable:e.nodesDraggable,nodesConnectable:e.nodesConnectable,nodesFocusable:e.nodesFocusable,elementsSelectable:e.elementsSelectable,updateNodeDimensions:e.updateNodeDimensions,onError:e.onError}),aN=e=>{const{nodesDraggable:n,nodesConnectable:r,nodesFocusable:s,elementsSelectable:o,updateNodeDimensions:l,onError:u}=Ke(yM,kt),c=mM(e.onlyRenderVisibleElements),p=A.useRef(),h=A.useMemo(()=>{if(typeof ResizeObserver>"u")return null;const f=new ResizeObserver(m=>{const y=m.map(x=>({id:x.target.getAttribute("data-id"),nodeElement:x.target,forceUpdate:!0}));l(y)});return p.current=f,f},[]);return A.useEffect(()=>()=>{var f;(f=p==null?void 0:p.current)==null||f.disconnect()},[]),le.createElement("div",{className:"react-flow__nodes",style:yv},c.map(f=>{var I,M,O;let m=f.type||"default";e.nodeTypes[m]||(u==null||u("003",Mr.error003(m)),m="default");const y=e.nodeTypes[m]||e.nodeTypes.default,x=!!(f.draggable||n&&typeof f.draggable>"u"),C=!!(f.selectable||o&&typeof f.selectable>"u"),_=!!(f.connectable||r&&typeof f.connectable>"u"),S=!!(f.focusable||s&&typeof f.focusable>"u"),b=e.nodeExtent?dv(f.positionAbsolute,e.nodeExtent):f.positionAbsolute,k=(b==null?void 0:b.x)??0,N=(b==null?void 0:b.y)??0,T=vM({x:k,y:N,width:f.width??0,height:f.height??0,origin:e.nodeOrigin});return le.createElement(y,{key:f.id,id:f.id,className:f.className,style:f.style,type:m,data:f.data,sourcePosition:f.sourcePosition||Re.Bottom,targetPosition:f.targetPosition||Re.Top,hidden:f.hidden,xPos:k,yPos:N,xPosOrigin:T.x,yPosOrigin:T.y,selectNodesOnDrag:e.selectNodesOnDrag,onClick:e.onNodeClick,onMouseEnter:e.onNodeMouseEnter,onMouseMove:e.onNodeMouseMove,onMouseLeave:e.onNodeMouseLeave,onContextMenu:e.onNodeContextMenu,onDoubleClick:e.onNodeDoubleClick,selected:!!f.selected,isDraggable:x,isSelectable:C,isConnectable:_,isFocusable:S,resizeObserver:h,dragHandle:f.dragHandle,zIndex:((I=f[mt])==null?void 0:I.z)??0,isParent:!!((M=f[mt])!=null&&M.isParent),noDragClassName:e.noDragClassName,noPanClassName:e.noPanClassName,initialized:!!f.width&&!!f.height,rfId:e.rfId,disableKeyboardA11y:e.disableKeyboardA11y,ariaLabel:f.ariaLabel,hasHandleBounds:!!((O=f[mt])!=null&&O.handleBounds)})}))};aN.displayName="NodeRenderer";var wM=A.memo(aN);const xM=(e,n,r)=>r===Re.Left?e-n:r===Re.Right?e+n:e,_M=(e,n,r)=>r===Re.Top?e-n:r===Re.Bottom?e+n:e,Yw="react-flow__edgeupdater",Kw=({position:e,centerX:n,centerY:r,radius:s=10,onMouseDown:o,onMouseEnter:l,onMouseOut:u,type:c})=>le.createElement("circle",{onMouseDown:o,onMouseEnter:l,onMouseOut:u,className:Dt([Yw,`${Yw}-${c}`]),cx:xM(n,s,e),cy:_M(r,s,e),r:s,stroke:"transparent",fill:"transparent"}),SM=()=>!0;var Ds=e=>{const n=({id:r,className:s,type:o,data:l,onClick:u,onEdgeDoubleClick:c,selected:p,animated:h,label:f,labelStyle:m,labelShowBg:y,labelBgStyle:x,labelBgPadding:C,labelBgBorderRadius:_,style:S,source:b,target:k,sourceX:N,sourceY:T,targetX:I,targetY:M,sourcePosition:O,targetPosition:H,elementsSelectable:L,hidden:P,sourceHandleId:q,targetHandleId:W,onContextMenu:B,onMouseEnter:j,onMouseMove:K,onMouseLeave:U,reconnectRadius:ee,onReconnect:J,onReconnectStart:F,onReconnectEnd:Y,markerEnd:E,markerStart:$,rfId:se,ariaLabel:D,isFocusable:Q,isReconnectable:te,pathOptions:ae,interactionWidth:ce,disableKeyboardA11y:me})=>{const ge=A.useRef(null),[Pe,Se]=A.useState(!1),[Oe,Me]=A.useState(!1),be=Et(),De=A.useMemo(()=>`url('#${Hg($,se)}')`,[$,se]),ye=A.useMemo(()=>`url('#${Hg(E,se)}')`,[E,se]);if(P)return null;const we=Xe=>{var zt;const{edges:vt,addSelectedEdges:ft,unselectNodesAndEdges:wt,multiSelectionActive:fn}=be.getState(),Ye=vt.find(Gt=>Gt.id===r);Ye&&(L&&(be.setState({nodesSelectionActive:!1}),Ye.selected&&fn?(wt({nodes:[],edges:[Ye]}),(zt=ge.current)==null||zt.blur()):ft([r])),u&&u(Xe,Ye))},Ue=Fo(r,be.getState,c),ut=Fo(r,be.getState,B),ct=Fo(r,be.getState,j),Ze=Fo(r,be.getState,K),Fe=Fo(r,be.getState,U),Je=(Xe,vt)=>{if(Xe.button!==0)return;const{edges:ft,isValidConnection:wt}=be.getState(),fn=vt?k:b,Ye=(vt?W:q)||null,zt=vt?"target":"source",Gt=wt||SM,pr=vt,In=ft.find(vn=>vn.id===r);Me(!0),F==null||F(Xe,In,zt);const Tt=vn=>{Me(!1),Y==null||Y(vn,In,zt)};BE({event:Xe,handleId:Ye,nodeId:fn,onConnect:vn=>J==null?void 0:J(In,vn),isTarget:pr,getState:be.getState,setState:be.setState,isValidConnection:Gt,edgeUpdaterType:zt,onReconnectEnd:Tt})},dt=Xe=>Je(Xe,!0),Nt=Xe=>Je(Xe,!1),ot=()=>Se(!0),gt=()=>Se(!1),Ct=!L&&!u,Ft=Xe=>{var vt;if(!me&&jE.includes(Xe.key)&&L){const{unselectNodesAndEdges:ft,addSelectedEdges:wt,edges:fn}=be.getState();Xe.key==="Escape"?((vt=ge.current)==null||vt.blur(),ft({edges:[fn.find(zt=>zt.id===r)]})):wt([r])}};return le.createElement("g",{className:Dt(["react-flow__edge",`react-flow__edge-${o}`,s,{selected:p,animated:h,inactive:Ct,updating:Pe}]),onClick:we,onDoubleClick:Ue,onContextMenu:ut,onMouseEnter:ct,onMouseMove:Ze,onMouseLeave:Fe,onKeyDown:Q?Ft:void 0,tabIndex:Q?0:void 0,role:Q?"button":"img","data-testid":`rf__edge-${r}`,"aria-label":D===null?void 0:D||`Edge from ${b} to ${k}`,"aria-describedby":Q?`${QE}-${se}`:void 0,ref:ge},!Oe&&le.createElement(e,{id:r,source:b,target:k,selected:p,animated:h,label:f,labelStyle:m,labelShowBg:y,labelBgStyle:x,labelBgPadding:C,labelBgBorderRadius:_,data:l,style:S,sourceX:N,sourceY:T,targetX:I,targetY:M,sourcePosition:O,targetPosition:H,sourceHandleId:q,targetHandleId:W,markerStart:De,markerEnd:ye,pathOptions:ae,interactionWidth:ce}),te&&le.createElement(le.Fragment,null,(te==="source"||te===!0)&&le.createElement(Kw,{position:O,centerX:N,centerY:T,radius:ee,onMouseDown:dt,onMouseEnter:ot,onMouseOut:gt,type:"source"}),(te==="target"||te===!0)&&le.createElement(Kw,{position:H,centerX:I,centerY:M,radius:ee,onMouseDown:Nt,onMouseEnter:ot,onMouseOut:gt,type:"target"})))};return n.displayName="EdgeWrapper",A.memo(n)};function bM(e){const n={default:Ds(e.default||Vl),straight:Ds(e.bezier||pv),step:Ds(e.step||hv),smoothstep:Ds(e.step||nu),simplebezier:Ds(e.simplebezier||fv)},r={},s=Object.keys(e).filter(o=>!["default","bezier"].includes(o)).reduce((o,l)=>(o[l]=Ds(e[l]||Vl),o),r);return{...n,...s}}function Xw(e,n,r=null){const s=((r==null?void 0:r.x)||0)+n.x,o=((r==null?void 0:r.y)||0)+n.y,l=(r==null?void 0:r.width)||n.width,u=(r==null?void 0:r.height)||n.height;switch(e){case Re.Top:return{x:s+l/2,y:o};case Re.Right:return{x:s+l,y:o+u/2};case Re.Bottom:return{x:s+l/2,y:o+u};case Re.Left:return{x:s,y:o+u/2}}}function Qw(e,n){return e?e.length===1||!n?e[0]:n&&e.find(r=>r.id===n)||null:null}const kM=(e,n,r,s,o,l)=>{const u=Xw(r,e,n),c=Xw(l,s,o);return{sourceX:u.x,sourceY:u.y,targetX:c.x,targetY:c.y}};function EM({sourcePos:e,targetPos:n,sourceWidth:r,sourceHeight:s,targetWidth:o,targetHeight:l,width:u,height:c,transform:p}){const h={x:Math.min(e.x,n.x),y:Math.min(e.y,n.y),x2:Math.max(e.x+r,n.x+o),y2:Math.max(e.y+s,n.y+l)};h.x===h.x2&&(h.x2+=1),h.y===h.y2&&(h.y2+=1);const f=ta({x:(0-p[0])/p[2],y:(0-p[1])/p[2],width:u/p[2],height:c/p[2]}),m=Math.max(0,Math.min(f.x2,h.x2)-Math.max(f.x,h.x)),y=Math.max(0,Math.min(f.y2,h.y2)-Math.max(f.y,h.y));return Math.ceil(m*y)>0}function Zw(e){var s,o,l,u,c;const n=((s=e==null?void 0:e[mt])==null?void 0:s.handleBounds)||null,r=n&&(e==null?void 0:e.width)&&(e==null?void 0:e.height)&&typeof((o=e==null?void 0:e.positionAbsolute)==null?void 0:o.x)<"u"&&typeof((l=e==null?void 0:e.positionAbsolute)==null?void 0:l.y)<"u";return[{x:((u=e==null?void 0:e.positionAbsolute)==null?void 0:u.x)||0,y:((c=e==null?void 0:e.positionAbsolute)==null?void 0:c.y)||0,width:(e==null?void 0:e.width)||0,height:(e==null?void 0:e.height)||0},n,!!r]}const NM=[{level:0,isMaxLevel:!0,edges:[]}];function CM(e,n,r=!1){let s=-1;const o=e.reduce((u,c)=>{var f,m;const p=Rn(c.zIndex);let h=p?c.zIndex:0;if(r){const y=n.get(c.target),x=n.get(c.source),C=c.selected||(y==null?void 0:y.selected)||(x==null?void 0:x.selected),_=Math.max(((f=x==null?void 0:x[mt])==null?void 0:f.z)||0,((m=y==null?void 0:y[mt])==null?void 0:m.z)||0,1e3);h=(p?c.zIndex:0)+(C?_:0)}return u[h]?u[h].push(c):u[h]=[c],s=h>s?h:s,u},{}),l=Object.entries(o).map(([u,c])=>{const p=+u;return{edges:c,level:p,isMaxLevel:p===s}});return l.length===0?NM:l}function TM(e,n,r){const s=Ke(A.useCallback(o=>e?o.edges.filter(l=>{const u=n.get(l.source),c=n.get(l.target);return(u==null?void 0:u.width)&&(u==null?void 0:u.height)&&(c==null?void 0:c.width)&&(c==null?void 0:c.height)&&EM({sourcePos:u.positionAbsolute||{x:0,y:0},targetPos:c.positionAbsolute||{x:0,y:0},sourceWidth:u.width,sourceHeight:u.height,targetWidth:c.width,targetHeight:c.height,width:o.width,height:o.height,transform:o.transform})}):o.edges,[e,n]));return CM(s,n,r)}const RM=({color:e="none",strokeWidth:n=1})=>le.createElement("polyline",{style:{stroke:e,strokeWidth:n},strokeLinecap:"round",strokeLinejoin:"round",fill:"none",points:"-5,-4 0,0 -5,4"}),jM=({color:e="none",strokeWidth:n=1})=>le.createElement("polyline",{style:{stroke:e,fill:e,strokeWidth:n},strokeLinecap:"round",strokeLinejoin:"round",points:"-5,-4 0,0 -5,4 -5,-4"}),Jw={[Wl.Arrow]:RM,[Wl.ArrowClosed]:jM};function AM(e){const n=Et();return A.useMemo(()=>{var o,l;return Object.prototype.hasOwnProperty.call(Jw,e)?Jw[e]:((l=(o=n.getState()).onError)==null||l.call(o,"009",Mr.error009(e)),null)},[e])}const IM=({id:e,type:n,color:r,width:s=12.5,height:o=12.5,markerUnits:l="strokeWidth",strokeWidth:u,orient:c="auto-start-reverse"})=>{const p=AM(n);return p?le.createElement("marker",{className:"react-flow__arrowhead",id:e,markerWidth:`${s}`,markerHeight:`${o}`,viewBox:"-10 -10 20 20",markerUnits:l,orient:c,refX:"0",refY:"0"},le.createElement(p,{color:r,strokeWidth:u})):null},MM=({defaultColor:e,rfId:n})=>r=>{const s=[];return r.edges.reduce((o,l)=>([l.markerStart,l.markerEnd].forEach(u=>{if(u&&typeof u=="object"){const c=Hg(u,n);s.includes(c)||(o.push({id:c,color:u.color||e,...u}),s.push(c))}}),o),[]).sort((o,l)=>o.id.localeCompare(l.id))},lN=({defaultColor:e,rfId:n})=>{const r=Ke(A.useCallback(MM({defaultColor:e,rfId:n}),[e,n]),(s,o)=>!(s.length!==o.length||s.some((l,u)=>l.id!==o[u].id)));return le.createElement("defs",null,r.map(s=>le.createElement(IM,{id:s.id,key:s.id,type:s.type,color:s.color,width:s.width,height:s.height,markerUnits:s.markerUnits,strokeWidth:s.strokeWidth,orient:s.orient})))};lN.displayName="MarkerDefinitions";var PM=A.memo(lN);const OM=e=>({nodesConnectable:e.nodesConnectable,edgesFocusable:e.edgesFocusable,edgesUpdatable:e.edgesUpdatable,elementsSelectable:e.elementsSelectable,width:e.width,height:e.height,connectionMode:e.connectionMode,nodeInternals:e.nodeInternals,onError:e.onError}),uN=({defaultMarkerColor:e,onlyRenderVisibleElements:n,elevateEdgesOnSelect:r,rfId:s,edgeTypes:o,noPanClassName:l,onEdgeContextMenu:u,onEdgeMouseEnter:c,onEdgeMouseMove:p,onEdgeMouseLeave:h,onEdgeClick:f,onEdgeDoubleClick:m,onReconnect:y,onReconnectStart:x,onReconnectEnd:C,reconnectRadius:_,children:S,disableKeyboardA11y:b})=>{const{edgesFocusable:k,edgesUpdatable:N,elementsSelectable:T,width:I,height:M,connectionMode:O,nodeInternals:H,onError:L}=Ke(OM,kt),P=TM(n,H,r);return I?le.createElement(le.Fragment,null,P.map(({level:q,edges:W,isMaxLevel:B})=>le.createElement("svg",{key:q,style:{zIndex:q},width:I,height:M,className:"react-flow__edges react-flow__container"},B&&le.createElement(PM,{defaultColor:e,rfId:s}),le.createElement("g",null,W.map(j=>{const[K,U,ee]=Zw(H.get(j.source)),[J,F,Y]=Zw(H.get(j.target));if(!ee||!Y)return null;let E=j.type||"default";o[E]||(L==null||L("011",Mr.error011(E)),E="default");const $=o[E]||o.default,se=O===Xi.Strict?F.target:(F.target??[]).concat(F.source??[]),D=Qw(U.source,j.sourceHandle),Q=Qw(se,j.targetHandle),te=(D==null?void 0:D.position)||Re.Bottom,ae=(Q==null?void 0:Q.position)||Re.Top,ce=!!(j.focusable||k&&typeof j.focusable>"u"),me=j.reconnectable||j.updatable,ge=typeof y<"u"&&(me||N&&typeof me>"u");if(!D||!Q)return L==null||L("008",Mr.error008(D,j)),null;const{sourceX:Pe,sourceY:Se,targetX:Oe,targetY:Me}=kM(K,D,te,J,Q,ae);return le.createElement($,{key:j.id,id:j.id,className:Dt([j.className,l]),type:E,data:j.data,selected:!!j.selected,animated:!!j.animated,hidden:!!j.hidden,label:j.label,labelStyle:j.labelStyle,labelShowBg:j.labelShowBg,labelBgStyle:j.labelBgStyle,labelBgPadding:j.labelBgPadding,labelBgBorderRadius:j.labelBgBorderRadius,style:j.style,source:j.source,target:j.target,sourceHandleId:j.sourceHandle,targetHandleId:j.targetHandle,markerEnd:j.markerEnd,markerStart:j.markerStart,sourceX:Pe,sourceY:Se,targetX:Oe,targetY:Me,sourcePosition:te,targetPosition:ae,elementsSelectable:T,onContextMenu:u,onMouseEnter:c,onMouseMove:p,onMouseLeave:h,onClick:f,onEdgeDoubleClick:m,onReconnect:y,onReconnectStart:x,onReconnectEnd:C,reconnectRadius:_,rfId:s,ariaLabel:j.ariaLabel,isFocusable:ce,isReconnectable:ge,pathOptions:"pathOptions"in j?j.pathOptions:void 0,interactionWidth:j.interactionWidth,disableKeyboardA11y:b})})))),S):null};uN.displayName="EdgeRenderer";var LM=A.memo(uN);const qM=e=>`translate(${e.transform[0]}px,${e.transform[1]}px) scale(${e.transform[2]})`;function $M({children:e}){const n=Ke(qM);return le.createElement("div",{className:"react-flow__viewport react-flow__container",style:{transform:n}},e)}function DM(e){const n=ca(),r=A.useRef(!1);A.useEffect(()=>{!r.current&&n.viewportInitialized&&e&&(setTimeout(()=>e(n),1),r.current=!0)},[e,n.viewportInitialized])}const FM={[Re.Left]:Re.Right,[Re.Right]:Re.Left,[Re.Top]:Re.Bottom,[Re.Bottom]:Re.Top},cN=({nodeId:e,handleType:n,style:r,type:s=ci.Bezier,CustomComponent:o,connectionStatus:l})=>{var M,O,H;const{fromNode:u,handleId:c,toX:p,toY:h,connectionMode:f}=Ke(A.useCallback(L=>({fromNode:L.nodeInternals.get(e),handleId:L.connectionHandleId,toX:(L.connectionPosition.x-L.transform[0])/L.transform[2],toY:(L.connectionPosition.y-L.transform[1])/L.transform[2],connectionMode:L.connectionMode}),[e]),kt),m=(M=u==null?void 0:u[mt])==null?void 0:M.handleBounds;let y=m==null?void 0:m[n];if(f===Xi.Loose&&(y=y||(m==null?void 0:m[n==="source"?"target":"source"])),!u||!y)return null;const x=c?y.find(L=>L.id===c):y[0],C=x?x.x+x.width/2:(u.width??0)/2,_=x?x.y+x.height/2:u.height??0,S=(((O=u.positionAbsolute)==null?void 0:O.x)??0)+C,b=(((H=u.positionAbsolute)==null?void 0:H.y)??0)+_,k=x==null?void 0:x.position,N=k?FM[k]:null;if(!k||!N)return null;if(o)return le.createElement(o,{connectionLineType:s,connectionLineStyle:r,fromNode:u,fromHandle:x,fromX:S,fromY:b,toX:p,toY:h,fromPosition:k,toPosition:N,connectionStatus:l});let T="";const I={sourceX:S,sourceY:b,sourcePosition:k,targetX:p,targetY:h,targetPosition:N};return s===ci.Bezier?[T]=OE(I):s===ci.Step?[T]=Ug({...I,borderRadius:0}):s===ci.SmoothStep?[T]=Ug(I):s===ci.SimpleBezier?[T]=PE(I):T=`M${S},${b} ${p},${h}`,le.createElement("path",{d:T,fill:"none",className:"react-flow__connection-path",style:r})};cN.displayName="ConnectionLine";const zM=e=>({nodeId:e.connectionNodeId,handleType:e.connectionHandleType,nodesConnectable:e.nodesConnectable,connectionStatus:e.connectionStatus,width:e.width,height:e.height});function BM({containerStyle:e,style:n,type:r,component:s}){const{nodeId:o,handleType:l,nodesConnectable:u,width:c,height:p,connectionStatus:h}=Ke(zM,kt);return!(o&&l&&c&&u)?null:le.createElement("svg",{style:e,width:c,height:p,className:"react-flow__edges react-flow__connectionline react-flow__container"},le.createElement("g",{className:Dt(["react-flow__connection",h])},le.createElement(cN,{nodeId:o,handleType:l,style:n,type:r,CustomComponent:s,connectionStatus:h})))}function ex(e,n){return A.useRef(null),Et(),A.useMemo(()=>n(e),[e])}const dN=({nodeTypes:e,edgeTypes:n,onMove:r,onMoveStart:s,onMoveEnd:o,onInit:l,onNodeClick:u,onEdgeClick:c,onNodeDoubleClick:p,onEdgeDoubleClick:h,onNodeMouseEnter:f,onNodeMouseMove:m,onNodeMouseLeave:y,onNodeContextMenu:x,onSelectionContextMenu:C,onSelectionStart:_,onSelectionEnd:S,connectionLineType:b,connectionLineStyle:k,connectionLineComponent:N,connectionLineContainerStyle:T,selectionKeyCode:I,selectionOnDrag:M,selectionMode:O,multiSelectionKeyCode:H,panActivationKeyCode:L,zoomActivationKeyCode:P,deleteKeyCode:q,onlyRenderVisibleElements:W,elementsSelectable:B,selectNodesOnDrag:j,defaultViewport:K,translateExtent:U,minZoom:ee,maxZoom:J,preventScrolling:F,defaultMarkerColor:Y,zoomOnScroll:E,zoomOnPinch:$,panOnScroll:se,panOnScrollSpeed:D,panOnScrollMode:Q,zoomOnDoubleClick:te,panOnDrag:ae,onPaneClick:ce,onPaneMouseEnter:me,onPaneMouseMove:ge,onPaneMouseLeave:Pe,onPaneScroll:Se,onPaneContextMenu:Oe,onEdgeContextMenu:Me,onEdgeMouseEnter:be,onEdgeMouseMove:De,onEdgeMouseLeave:ye,onReconnect:we,onReconnectStart:Ue,onReconnectEnd:ut,reconnectRadius:ct,noDragClassName:Ze,noWheelClassName:Fe,noPanClassName:Je,elevateEdgesOnSelect:dt,disableKeyboardA11y:Nt,nodeOrigin:ot,nodeExtent:gt,rfId:Ct})=>{const Ft=ex(e,gM),Xe=ex(n,bM);return DM(l),le.createElement(pM,{onPaneClick:ce,onPaneMouseEnter:me,onPaneMouseMove:ge,onPaneMouseLeave:Pe,onPaneContextMenu:Oe,onPaneScroll:Se,deleteKeyCode:q,selectionKeyCode:I,selectionOnDrag:M,selectionMode:O,onSelectionStart:_,onSelectionEnd:S,multiSelectionKeyCode:H,panActivationKeyCode:L,zoomActivationKeyCode:P,elementsSelectable:B,onMove:r,onMoveStart:s,onMoveEnd:o,zoomOnScroll:E,zoomOnPinch:$,zoomOnDoubleClick:te,panOnScroll:se,panOnScrollSpeed:D,panOnScrollMode:Q,panOnDrag:ae,defaultViewport:K,translateExtent:U,minZoom:ee,maxZoom:J,onSelectionContextMenu:C,preventScrolling:F,noDragClassName:Ze,noWheelClassName:Fe,noPanClassName:Je,disableKeyboardA11y:Nt},le.createElement($M,null,le.createElement(LM,{edgeTypes:Xe,onEdgeClick:c,onEdgeDoubleClick:h,onlyRenderVisibleElements:W,onEdgeContextMenu:Me,onEdgeMouseEnter:be,onEdgeMouseMove:De,onEdgeMouseLeave:ye,onReconnect:we,onReconnectStart:Ue,onReconnectEnd:ut,reconnectRadius:ct,defaultMarkerColor:Y,noPanClassName:Je,elevateEdgesOnSelect:!!dt,disableKeyboardA11y:Nt,rfId:Ct},le.createElement(BM,{style:k,type:b,component:N,containerStyle:T})),le.createElement("div",{className:"react-flow__edgelabel-renderer"}),le.createElement(wM,{nodeTypes:Ft,onNodeClick:u,onNodeDoubleClick:p,onNodeMouseEnter:f,onNodeMouseMove:m,onNodeMouseLeave:y,onNodeContextMenu:x,selectNodesOnDrag:j,onlyRenderVisibleElements:W,noPanClassName:Je,noDragClassName:Ze,disableKeyboardA11y:Nt,nodeOrigin:ot,nodeExtent:gt,rfId:Ct})))};dN.displayName="GraphView";var UM=A.memo(dN);const Yg=[[Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY],[Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY]],ai={rfId:"1",width:0,height:0,transform:[0,0,1],nodeInternals:new Map,edges:[],onNodesChange:null,onEdgesChange:null,hasDefaultNodes:!1,hasDefaultEdges:!1,d3Zoom:null,d3Selection:null,d3ZoomHandler:void 0,minZoom:.5,maxZoom:2,translateExtent:Yg,nodeExtent:Yg,nodesSelectionActive:!1,userSelectionActive:!1,userSelectionRect:null,connectionNodeId:null,connectionHandleId:null,connectionHandleType:"source",connectionPosition:{x:0,y:0},connectionStatus:null,connectionMode:Xi.Strict,domNode:null,paneDragging:!1,noPanClassName:"nopan",nodeOrigin:[0,0],nodeDragThreshold:0,snapGrid:[15,15],snapToGrid:!1,nodesDraggable:!0,nodesConnectable:!0,nodesFocusable:!0,edgesFocusable:!0,edgesUpdatable:!0,elementsSelectable:!0,elevateNodesOnSelect:!0,fitViewOnInit:!1,fitViewOnInitDone:!1,fitViewOnInitOptions:void 0,onSelectionChange:[],multiSelectionActive:!1,connectionStartHandle:null,connectionEndHandle:null,connectionClickStartHandle:null,connectOnClick:!0,ariaLiveMessage:"",autoPanOnConnect:!0,autoPanOnNodeDrag:!0,connectionRadius:20,onError:gI,isValidConnection:void 0},HM=()=>jR((e,n)=>({...ai,setNodes:r=>{const{nodeInternals:s,nodeOrigin:o,elevateNodesOnSelect:l}=n();e({nodeInternals:ad(r,s,o,l)})},getNodes:()=>Array.from(n().nodeInternals.values()),setEdges:r=>{const{defaultEdgeOptions:s={}}=n();e({edges:r.map(o=>({...s,...o}))})},setDefaultNodesAndEdges:(r,s)=>{const o=typeof r<"u",l=typeof s<"u",u=o?ad(r,new Map,n().nodeOrigin,n().elevateNodesOnSelect):new Map;e({nodeInternals:u,edges:l?s:[],hasDefaultNodes:o,hasDefaultEdges:l})},updateNodeDimensions:r=>{const{onNodesChange:s,nodeInternals:o,fitViewOnInit:l,fitViewOnInitDone:u,fitViewOnInitOptions:c,domNode:p,nodeOrigin:h}=n(),f=p==null?void 0:p.querySelector(".react-flow__viewport");if(!f)return;const m=window.getComputedStyle(f),{m22:y}=new window.DOMMatrixReadOnly(m.transform),x=r.reduce((_,S)=>{const b=o.get(S.id);if(b!=null&&b.hidden)o.set(b.id,{...b,[mt]:{...b[mt],handleBounds:void 0}});else if(b){const k=cv(S.nodeElement);!!(k.width&&k.height&&(b.width!==k.width||b.height!==k.height||S.forceUpdate))&&(o.set(b.id,{...b,[mt]:{...b[mt],handleBounds:{source:Gw(".source",S.nodeElement,y,h),target:Gw(".target",S.nodeElement,y,h)}},...k}),_.push({id:b.id,type:"dimensions",dimensions:k}))}return _},[]);JE(o,h);const C=u||l&&!u&&eN(n,{initial:!0,...c});e({nodeInternals:new Map(o),fitViewOnInitDone:C}),(x==null?void 0:x.length)>0&&(s==null||s(x))},updateNodePositions:(r,s=!0,o=!1)=>{const{triggerNodeChanges:l}=n(),u=r.map(c=>{const p={id:c.id,type:"position",dragging:o};return s&&(p.positionAbsolute=c.positionAbsolute,p.position=c.position),p});l(u)},triggerNodeChanges:r=>{const{onNodesChange:s,nodeInternals:o,hasDefaultNodes:l,nodeOrigin:u,getNodes:c,elevateNodesOnSelect:p}=n();if(r!=null&&r.length){if(l){const h=sM(r,c()),f=ad(h,o,u,p);e({nodeInternals:f})}s==null||s(r)}},addSelectedNodes:r=>{const{multiSelectionActive:s,edges:o,getNodes:l}=n();let u,c=null;s?u=r.map(p=>ui(p,!0)):(u=Bs(l(),r),c=Bs(o,[])),El({changedNodes:u,changedEdges:c,get:n,set:e})},addSelectedEdges:r=>{const{multiSelectionActive:s,edges:o,getNodes:l}=n();let u,c=null;s?u=r.map(p=>ui(p,!0)):(u=Bs(o,r),c=Bs(l(),[])),El({changedNodes:c,changedEdges:u,get:n,set:e})},unselectNodesAndEdges:({nodes:r,edges:s}={})=>{const{edges:o,getNodes:l}=n(),u=r||l(),c=s||o,p=u.map(f=>(f.selected=!1,ui(f.id,!1))),h=c.map(f=>ui(f.id,!1));El({changedNodes:p,changedEdges:h,get:n,set:e})},setMinZoom:r=>{const{d3Zoom:s,maxZoom:o}=n();s==null||s.scaleExtent([r,o]),e({minZoom:r})},setMaxZoom:r=>{const{d3Zoom:s,minZoom:o}=n();s==null||s.scaleExtent([o,r]),e({maxZoom:r})},setTranslateExtent:r=>{var s;(s=n().d3Zoom)==null||s.translateExtent(r),e({translateExtent:r})},resetSelectedElements:()=>{const{edges:r,getNodes:s}=n(),l=s().filter(c=>c.selected).map(c=>ui(c.id,!1)),u=r.filter(c=>c.selected).map(c=>ui(c.id,!1));El({changedNodes:l,changedEdges:u,get:n,set:e})},setNodeExtent:r=>{const{nodeInternals:s}=n();s.forEach(o=>{o.positionAbsolute=dv(o.position,r)}),e({nodeExtent:r,nodeInternals:new Map(s)})},panBy:r=>{const{transform:s,width:o,height:l,d3Zoom:u,d3Selection:c,translateExtent:p}=n();if(!u||!c||!r.x&&!r.y)return!1;const h=Ar.translate(s[0]+r.x,s[1]+r.y).scale(s[2]),f=[[0,0],[o,l]],m=u==null?void 0:u.constrain()(h,f,p);return u.transform(c,m),s[0]!==m.x||s[1]!==m.y||s[2]!==m.k},cancelConnection:()=>e({connectionNodeId:ai.connectionNodeId,connectionHandleId:ai.connectionHandleId,connectionHandleType:ai.connectionHandleType,connectionStatus:ai.connectionStatus,connectionStartHandle:ai.connectionStartHandle,connectionEndHandle:ai.connectionEndHandle}),reset:()=>e({...ai})}),Object.is),wv=({children:e})=>{const n=A.useRef(null);return n.current||(n.current=HM()),le.createElement(uI,{value:n.current},e)};wv.displayName="ReactFlowProvider";const fN=({children:e})=>A.useContext(tu)?le.createElement(le.Fragment,null,e):le.createElement(wv,null,e);fN.displayName="ReactFlowWrapper";const WM={input:VE,default:Vg,output:YE,group:vv},VM={default:Vl,straight:pv,step:hv,smoothstep:nu,simplebezier:fv},GM=[0,0],YM=[15,15],KM={x:0,y:0,zoom:1},XM={width:"100%",height:"100%",overflow:"hidden",position:"relative",zIndex:0},hN=A.forwardRef(({nodes:e,edges:n,defaultNodes:r,defaultEdges:s,className:o,nodeTypes:l=WM,edgeTypes:u=VM,onNodeClick:c,onEdgeClick:p,onInit:h,onMove:f,onMoveStart:m,onMoveEnd:y,onConnect:x,onConnectStart:C,onConnectEnd:_,onClickConnectStart:S,onClickConnectEnd:b,onNodeMouseEnter:k,onNodeMouseMove:N,onNodeMouseLeave:T,onNodeContextMenu:I,onNodeDoubleClick:M,onNodeDragStart:O,onNodeDrag:H,onNodeDragStop:L,onNodesDelete:P,onEdgesDelete:q,onSelectionChange:W,onSelectionDragStart:B,onSelectionDrag:j,onSelectionDragStop:K,onSelectionContextMenu:U,onSelectionStart:ee,onSelectionEnd:J,connectionMode:F=Xi.Strict,connectionLineType:Y=ci.Bezier,connectionLineStyle:E,connectionLineComponent:$,connectionLineContainerStyle:se,deleteKeyCode:D="Backspace",selectionKeyCode:Q="Shift",selectionOnDrag:te=!1,selectionMode:ae=na.Full,panActivationKeyCode:ce="Space",multiSelectionKeyCode:me=Hl()?"Meta":"Control",zoomActivationKeyCode:ge=Hl()?"Meta":"Control",snapToGrid:Pe=!1,snapGrid:Se=YM,onlyRenderVisibleElements:Oe=!1,selectNodesOnDrag:Me=!0,nodesDraggable:be,nodesConnectable:De,nodesFocusable:ye,nodeOrigin:we=GM,edgesFocusable:Ue,edgesUpdatable:ut,elementsSelectable:ct,defaultViewport:Ze=KM,minZoom:Fe=.5,maxZoom:Je=2,translateExtent:dt=Yg,preventScrolling:Nt=!0,nodeExtent:ot,defaultMarkerColor:gt="#b1b1b7",zoomOnScroll:Ct=!0,zoomOnPinch:Ft=!0,panOnScroll:Xe=!1,panOnScrollSpeed:vt=.5,panOnScrollMode:ft=Vi.Free,zoomOnDoubleClick:wt=!0,panOnDrag:fn=!0,onPaneClick:Ye,onPaneMouseEnter:zt,onPaneMouseMove:Gt,onPaneMouseLeave:pr,onPaneScroll:In,onPaneContextMenu:Tt,children:Qt,onEdgeContextMenu:vn,onEdgeDoubleClick:ts,onEdgeMouseEnter:pi,onEdgeMouseMove:mi,onEdgeMouseLeave:Mn,onEdgeUpdate:Lr,onEdgeUpdateStart:gi,onEdgeUpdateEnd:yn,onReconnect:qr,onReconnectStart:Pn,onReconnectEnd:Ot,reconnectRadius:wn=10,edgeUpdaterRadius:On=10,onNodesChange:Zt,onEdgesChange:$r,noDragClassName:ns="nodrag",noWheelClassName:so="nowheel",noPanClassName:nr="nopan",fitView:xn=!1,fitViewOptions:vi,connectOnClick:rs=!0,attributionPosition:is,proOptions:yi,defaultEdgeOptions:Dr,elevateNodesOnSelect:Ln=!0,elevateEdgesOnSelect:ss=!1,disableKeyboardA11y:Yt=!1,autoPanOnConnect:wi=!0,autoPanOnNodeDrag:Qe=!0,connectionRadius:os=20,isValidConnection:rr,onError:Fr,style:Jt,id:xi,nodeDragThreshold:_i,...mr},en)=>{const gr=xi||"1";return le.createElement("div",{...mr,style:{...Jt,...XM},ref:en,className:Dt(["react-flow",o]),"data-testid":"rf__wrapper",id:xi},le.createElement(fN,null,le.createElement(UM,{onInit:h,onMove:f,onMoveStart:m,onMoveEnd:y,onNodeClick:c,onEdgeClick:p,onNodeMouseEnter:k,onNodeMouseMove:N,onNodeMouseLeave:T,onNodeContextMenu:I,onNodeDoubleClick:M,nodeTypes:l,edgeTypes:u,connectionLineType:Y,connectionLineStyle:E,connectionLineComponent:$,connectionLineContainerStyle:se,selectionKeyCode:Q,selectionOnDrag:te,selectionMode:ae,deleteKeyCode:D,multiSelectionKeyCode:me,panActivationKeyCode:ce,zoomActivationKeyCode:ge,onlyRenderVisibleElements:Oe,selectNodesOnDrag:Me,defaultViewport:Ze,translateExtent:dt,minZoom:Fe,maxZoom:Je,preventScrolling:Nt,zoomOnScroll:Ct,zoomOnPinch:Ft,zoomOnDoubleClick:wt,panOnScroll:Xe,panOnScrollSpeed:vt,panOnScrollMode:ft,panOnDrag:fn,onPaneClick:Ye,onPaneMouseEnter:zt,onPaneMouseMove:Gt,onPaneMouseLeave:pr,onPaneScroll:In,onPaneContextMenu:Tt,onSelectionContextMenu:U,onSelectionStart:ee,onSelectionEnd:J,onEdgeContextMenu:vn,onEdgeDoubleClick:ts,onEdgeMouseEnter:pi,onEdgeMouseMove:mi,onEdgeMouseLeave:Mn,onReconnect:qr??Lr,onReconnectStart:Pn??gi,onReconnectEnd:Ot??yn,reconnectRadius:wn??On,defaultMarkerColor:gt,noDragClassName:ns,noWheelClassName:so,noPanClassName:nr,elevateEdgesOnSelect:ss,rfId:gr,disableKeyboardA11y:Yt,nodeOrigin:we,nodeExtent:ot}),le.createElement(DI,{nodes:e,edges:n,defaultNodes:r,defaultEdges:s,onConnect:x,onConnectStart:C,onConnectEnd:_,onClickConnectStart:S,onClickConnectEnd:b,nodesDraggable:be,nodesConnectable:De,nodesFocusable:ye,edgesFocusable:Ue,edgesUpdatable:ut,elementsSelectable:ct,elevateNodesOnSelect:Ln,minZoom:Fe,maxZoom:Je,nodeExtent:ot,onNodesChange:Zt,onEdgesChange:$r,snapToGrid:Pe,snapGrid:Se,connectionMode:F,translateExtent:dt,connectOnClick:rs,defaultEdgeOptions:Dr,fitView:xn,fitViewOptions:vi,onNodesDelete:P,onEdgesDelete:q,onNodeDragStart:O,onNodeDrag:H,onNodeDragStop:L,onSelectionDrag:j,onSelectionDragStart:B,onSelectionDragStop:K,noPanClassName:nr,nodeOrigin:we,rfId:gr,autoPanOnConnect:wi,autoPanOnNodeDrag:Qe,onError:Fr,connectionRadius:os,isValidConnection:rr,nodeDragThreshold:_i}),le.createElement(qI,{onSelectionChange:W}),Qt,le.createElement(dI,{proOptions:yi,position:is}),le.createElement(HI,{rfId:gr,disableKeyboardA11y:Yt})))});hN.displayName="ReactFlow";const QM=e=>({x:e.transform[0],y:e.transform[1],zoom:e.transform[2]});function pN(){return Ke(QM,kt)}const mN=({id:e,x:n,y:r,width:s,height:o,style:l,color:u,strokeColor:c,strokeWidth:p,className:h,borderRadius:f,shapeRendering:m,onClick:y,selected:x})=>{const{background:C,backgroundColor:_}=l||{},S=u||C||_;return le.createElement("rect",{className:Dt(["react-flow__minimap-node",{selected:x},h]),x:n,y:r,rx:f,ry:f,width:s,height:o,fill:S,stroke:c,strokeWidth:p,shapeRendering:m,onClick:y?b=>y(b,e):void 0})};mN.displayName="MiniMapNode";var ZM=A.memo(mN);const JM=e=>e.nodeOrigin,eP=e=>e.getNodes().filter(n=>!n.hidden&&n.width&&n.height),dd=e=>e instanceof Function?e:()=>e;function tP({nodeStrokeColor:e="transparent",nodeColor:n="#e2e2e2",nodeClassName:r="",nodeBorderRadius:s=5,nodeStrokeWidth:o=2,nodeComponent:l=ZM,onClick:u}){const c=Ke(eP,kt),p=Ke(JM),h=dd(n),f=dd(e),m=dd(r),y=typeof window>"u"||window.chrome?"crispEdges":"geometricPrecision";return le.createElement(le.Fragment,null,c.map(x=>{const{x:C,y:_}=Yi(x,p).positionAbsolute;return le.createElement(l,{key:x.id,x:C,y:_,width:x.width,height:x.height,style:x.style,selected:x.selected,className:m(x),color:h(x),borderRadius:s,strokeColor:f(x),strokeWidth:o,shapeRendering:y,onClick:u,id:x.id})}))}var nP=A.memo(tP);const rP=200,iP=150,sP=e=>{const n=e.getNodes(),r={x:-e.transform[0]/e.transform[2],y:-e.transform[1]/e.transform[2],width:e.width/e.transform[2],height:e.height/e.transform[2]};return{viewBB:r,boundingRect:n.length>0?pI(ru(n,e.nodeOrigin),r):r,rfId:e.rfId}},oP="react-flow__minimap-desc";function gN({style:e,className:n,nodeStrokeColor:r="transparent",nodeColor:s="#e2e2e2",nodeClassName:o="",nodeBorderRadius:l=5,nodeStrokeWidth:u=2,nodeComponent:c,maskColor:p="rgb(240, 240, 240, 0.6)",maskStrokeColor:h="none",maskStrokeWidth:f=1,position:m="bottom-right",onClick:y,onNodeClick:x,pannable:C=!1,zoomable:_=!1,ariaLabel:S="React Flow mini map",inversePan:b=!1,zoomStep:k=10,offsetScale:N=5}){const T=Et(),I=A.useRef(null),{boundingRect:M,viewBB:O,rfId:H}=Ke(sP,kt),L=(e==null?void 0:e.width)??rP,P=(e==null?void 0:e.height)??iP,q=M.width/L,W=M.height/P,B=Math.max(q,W),j=B*L,K=B*P,U=N*B,ee=M.x-(j-M.width)/2-U,J=M.y-(K-M.height)/2-U,F=j+U*2,Y=K+U*2,E=`${oP}-${H}`,$=A.useRef(0);$.current=B,A.useEffect(()=>{if(I.current){const Q=Tn(I.current),te=me=>{const{transform:ge,d3Selection:Pe,d3Zoom:Se}=T.getState();if(me.sourceEvent.type!=="wheel"||!Pe||!Se)return;const Oe=-me.sourceEvent.deltaY*(me.sourceEvent.deltaMode===1?.05:me.sourceEvent.deltaMode?1:.002)*k,Me=ge[2]*Math.pow(2,Oe);Se.scaleTo(Pe,Me)},ae=me=>{const{transform:ge,d3Selection:Pe,d3Zoom:Se,translateExtent:Oe,width:Me,height:be}=T.getState();if(me.sourceEvent.type!=="mousemove"||!Pe||!Se)return;const De=$.current*Math.max(1,ge[2])*(b?-1:1),ye={x:ge[0]-me.sourceEvent.movementX*De,y:ge[1]-me.sourceEvent.movementY*De},we=[[0,0],[Me,be]],Ue=Ar.translate(ye.x,ye.y).scale(ge[2]),ut=Se.constrain()(Ue,we,Oe);Se.transform(Pe,ut)},ce=kE().on("zoom",C?ae:null).on("zoom.wheel",_?te:null);return Q.call(ce),()=>{Q.on("zoom",null)}}},[C,_,b,k]);const se=y?Q=>{const te=Xn(Q);y(Q,{x:te[0],y:te[1]})}:void 0,D=x?(Q,te)=>{const ae=T.getState().nodeInternals.get(te);x(Q,ae)}:void 0;return le.createElement(uv,{position:m,style:e,className:Dt(["react-flow__minimap",n]),"data-testid":"rf__minimap"},le.createElement("svg",{width:L,height:P,viewBox:`${ee} ${J} ${F} ${Y}`,role:"img","aria-labelledby":E,ref:I,onClick:se},S&&le.createElement("title",{id:E},S),le.createElement(nP,{onClick:D,nodeColor:s,nodeStrokeColor:r,nodeBorderRadius:l,nodeClassName:o,nodeStrokeWidth:u,nodeComponent:c}),le.createElement("path",{className:"react-flow__minimap-mask",d:`M${ee-U},${J-U}h${F+U*2}v${Y+U*2}h${-F-U*2}z
|
|
57
57
|
M${O.x},${O.y}h${O.width}v${O.height}h${-O.width}z`,fill:p,fillRule:"evenodd",stroke:h,strokeWidth:f,pointerEvents:"none"})))}gN.displayName="MiniMap";var aP=A.memo(gN);function lP(){return le.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 32"},le.createElement("path",{d:"M32 18.133H18.133V32h-4.266V18.133H0v-4.266h13.867V0h4.266v13.867H32z"}))}function uP(){return le.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 5"},le.createElement("path",{d:"M0 0h32v4.2H0z"}))}function cP(){return le.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 32 30"},le.createElement("path",{d:"M3.692 4.63c0-.53.4-.938.939-.938h5.215V0H4.708C2.13 0 0 2.054 0 4.63v5.216h3.692V4.631zM27.354 0h-5.2v3.692h5.17c.53 0 .984.4.984.939v5.215H32V4.631A4.624 4.624 0 0027.354 0zm.954 24.83c0 .532-.4.94-.939.94h-5.215v3.768h5.215c2.577 0 4.631-2.13 4.631-4.707v-5.139h-3.692v5.139zm-23.677.94c-.531 0-.939-.4-.939-.94v-5.138H0v5.139c0 2.577 2.13 4.707 4.708 4.707h5.138V25.77H4.631z"}))}function dP(){return le.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},le.createElement("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0 8 0 4.571 3.429 4.571 7.619v3.048H3.048A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047zm4.724-13.866H7.467V7.619c0-2.59 2.133-4.724 4.723-4.724 2.591 0 4.724 2.133 4.724 4.724v3.048z"}))}function fP(){return le.createElement("svg",{xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 25 32"},le.createElement("path",{d:"M21.333 10.667H19.81V7.619C19.81 3.429 16.38 0 12.19 0c-4.114 1.828-1.37 2.133.305 2.438 1.676.305 4.42 2.59 4.42 5.181v3.048H3.047A3.056 3.056 0 000 13.714v15.238A3.056 3.056 0 003.048 32h18.285a3.056 3.056 0 003.048-3.048V13.714a3.056 3.056 0 00-3.048-3.047zM12.19 24.533a3.056 3.056 0 01-3.047-3.047 3.056 3.056 0 013.047-3.048 3.056 3.056 0 013.048 3.048 3.056 3.056 0 01-3.048 3.047z"}))}const Us=({children:e,className:n,...r})=>le.createElement("button",{type:"button",className:Dt(["react-flow__controls-button",n]),...r},e);Us.displayName="ControlButton";const hP=e=>({isInteractive:e.nodesDraggable||e.nodesConnectable||e.elementsSelectable,minZoomReached:e.transform[2]<=e.minZoom,maxZoomReached:e.transform[2]>=e.maxZoom}),vN=({style:e,showZoom:n=!0,showFitView:r=!0,showInteractive:s=!0,fitViewOptions:o,onZoomIn:l,onZoomOut:u,onFitView:c,onInteractiveChange:p,className:h,children:f,position:m="bottom-left"})=>{const y=Et(),[x,C]=A.useState(!1),{isInteractive:_,minZoomReached:S,maxZoomReached:b}=Ke(hP,kt),{zoomIn:k,zoomOut:N,fitView:T}=ca();if(A.useEffect(()=>{C(!0)},[]),!x)return null;const I=()=>{k(),l==null||l()},M=()=>{N(),u==null||u()},O=()=>{T(o),c==null||c()},H=()=>{y.setState({nodesDraggable:!_,nodesConnectable:!_,elementsSelectable:!_}),p==null||p(!_)};return le.createElement(uv,{className:Dt(["react-flow__controls",h]),position:m,style:e,"data-testid":"rf__controls"},n&&le.createElement(le.Fragment,null,le.createElement(Us,{onClick:I,className:"react-flow__controls-zoomin",title:"zoom in","aria-label":"zoom in",disabled:b},le.createElement(lP,null)),le.createElement(Us,{onClick:M,className:"react-flow__controls-zoomout",title:"zoom out","aria-label":"zoom out",disabled:S},le.createElement(uP,null))),r&&le.createElement(Us,{className:"react-flow__controls-fitview",onClick:O,title:"fit view","aria-label":"fit view"},le.createElement(cP,null)),s&&le.createElement(Us,{className:"react-flow__controls-interactive",onClick:H,title:"toggle interactivity","aria-label":"toggle interactivity"},_?le.createElement(fP,null):le.createElement(dP,null)),f)};vN.displayName="Controls";var pP=A.memo(vN),Zn;(function(e){e.Lines="lines",e.Dots="dots",e.Cross="cross"})(Zn||(Zn={}));function mP({color:e,dimensions:n,lineWidth:r}){return le.createElement("path",{stroke:e,strokeWidth:r,d:`M${n[0]/2} 0 V${n[1]} M0 ${n[1]/2} H${n[0]}`})}function gP({color:e,radius:n}){return le.createElement("circle",{cx:n,cy:n,r:n,fill:e})}const vP={[Zn.Dots]:"#91919a",[Zn.Lines]:"#eee",[Zn.Cross]:"#e2e2e2"},yP={[Zn.Dots]:1,[Zn.Lines]:1,[Zn.Cross]:6},wP=e=>({transform:e.transform,patternId:`pattern-${e.rfId}`});function yN({id:e,variant:n=Zn.Dots,gap:r=20,size:s,lineWidth:o=1,offset:l=2,color:u,style:c,className:p}){const h=A.useRef(null),{transform:f,patternId:m}=Ke(wP,kt),y=u||vP[n],x=s||yP[n],C=n===Zn.Dots,_=n===Zn.Cross,S=Array.isArray(r)?r:[r,r],b=[S[0]*f[2]||1,S[1]*f[2]||1],k=x*f[2],N=_?[k,k]:b,T=C?[k/l,k/l]:[N[0]/l,N[1]/l];return le.createElement("svg",{className:Dt(["react-flow__background",p]),style:{...c,position:"absolute",width:"100%",height:"100%",top:0,left:0},ref:h,"data-testid":"rf__background"},le.createElement("pattern",{id:m+e,x:f[0]%b[0],y:f[1]%b[1],width:b[0],height:b[1],patternUnits:"userSpaceOnUse",patternTransform:`translate(-${T[0]},-${T[1]})`},C?le.createElement(gP,{color:y,radius:k/l}):le.createElement(mP,{dimensions:N,color:y,lineWidth:o})),le.createElement("rect",{x:"0",y:"0",width:"100%",height:"100%",fill:`url(#${m+e})`}))}yN.displayName="Background";var xP=A.memo(yN);function wN(){return{inputTokens:0,outputTokens:0,cacheReadTokens:0,cacheCreateTokens:0}}function xN(e){const n=e.cache_creation,r=n&&typeof n=="object"?n:e,s=r.ephemeral_1h_input_tokens,o=r.ephemeral_5m_input_tokens;return typeof s!="number"&&typeof o!="number"?{}:{cacheCreate1hTokens:Number(s??0),cacheCreate5mTokens:Number(o??0)}}function _N(e,n=0){if(!e||typeof e!="object"||n>6)return null;const r=e;if(typeof r.input_tokens=="number"||typeof r.output_tokens=="number"||typeof r.cache_read_input_tokens=="number"||typeof r.cache_creation_input_tokens=="number")return{inputTokens:Number(r.input_tokens??0),outputTokens:Number(r.output_tokens??0),cacheReadTokens:Number(r.cache_read_input_tokens??0),cacheCreateTokens:Number(r.cache_creation_input_tokens??0),...xN(r)};for(const s of Object.values(r)){const o=_N(s,n+1);if(o)return o}return null}function _P(e,n){e.inputTokens+=n.inputTokens,e.outputTokens+=n.outputTokens,e.cacheReadTokens+=n.cacheReadTokens,e.cacheCreateTokens+=n.cacheCreateTokens,(n.cacheCreate1hTokens!==void 0||n.cacheCreate5mTokens!==void 0)&&(e.cacheCreate1hTokens=(e.cacheCreate1hTokens??0)+(n.cacheCreate1hTokens??0),e.cacheCreate5mTokens=(e.cacheCreate5mTokens??0)+(n.cacheCreate5mTokens??0))}const SP=/^(?:claude[-_]|gpt[-_]|o\d|codex[-_])/i;function SN(e,n=0){if(!e||typeof e!="object"||n>6)return null;const r=e;if(typeof r.model=="string"&&SP.test(r.model))return r.model;for(const s of Object.values(r)){const o=SN(s,n+1);if(o)return o}return null}function Kg(){return{agents:new Map,toolIndex:new Map,toolOwner:new Map,activeSubagentStack:new Map,lastSeq:0,seqEpoch:null,totalEvents:0}}function fi(e){if(!e)return;const n=e.replace(/\\/g,"/").split("/").filter(Boolean);return n[n.length-1]}function xv(e,n){return`${e}::${n}`}function Gl(e){return e.agent_type??e.subagent_type??"subagent"}function Xg(e){return e.agent_id?e.agent_id:e.parent_tool_use_id?e.parent_tool_use_id:null}function Ko(e,n,r,s){const o=n;let l=e.agents.get(o);return l||(l={id:o,sessionId:n,label:"session",kind:"root",state:"active",startedAt:r,tools:[],prompts:[],toolCount:0,childCount:0,synthetic:s,inFlightTool:null,usage:wN()},e.agents.set(o,l),l)}function bN(e,n,r,s){const o=xv(n,r),l=e.agents.get(o);if(!l)return null;!l.cwd&&s.cwd&&(l.cwd=s.cwd,l.cwdBasename=fi(s.cwd));const u=Gl(s);return u&&(l.label==="subagent"||!l.label)&&(l.label=u),l}function tx(e,n,r){const s=n.session_id??"unknown",o=Xg(n);if(o){const p=bN(e,s,o,n);if(p)return p}const l=e.activeSubagentStack.get(s),u=l&&l.length>0?l[l.length-1]:null;if(u){const p=e.agents.get(xv(s,u));if(p)return!p.cwd&&n.cwd&&(p.cwd=n.cwd,p.cwdBasename=fi(n.cwd)),p}const c=Ko(e,s,r,!1);return c.synthetic&&(c.synthetic=!1,c.startedAt=r),!c.cwd&&n.cwd&&(c.cwd=n.cwd,c.cwdBasename=fi(n.cwd)),c.label==="session"&&n.cwd&&(c.label=fi(n.cwd)??"session"),c}function bP(e,n,r,s,o){const l=xv(n,r),u=Ko(e,n,o,!0);let c=e.agents.get(l);if(c){!c.cwd&&s.cwd&&(c.cwd=s.cwd,c.cwdBasename=fi(s.cwd));const p=Gl(s);return p&&(c.label==="subagent"||!c.label)&&(c.label=p),c}return c={id:l,sessionId:n,label:Gl(s),kind:"subagent",parentId:u.id,state:"active",startedAt:o,tools:[],prompts:[],cwd:s.cwd,cwdBasename:fi(s.cwd),toolCount:0,childCount:0,inFlightTool:null,usage:wN()},e.agents.set(l,c),u.childCount+=1,c}function kP(e,n,r){const s=e.activeSubagentStack.get(n)??[];s.includes(r)||(s.push(r),e.activeSubagentStack.set(n,s))}function EP(e,n,r){const s=e.activeSubagentStack.get(n);if(s){for(let o=s.length-1;o>=0;o--)if(s[o]===r){s.splice(o,1);break}s.length===0&&e.activeSubagentStack.delete(n)}}function Cl(e,n=80){if(e==null)return"";if(typeof e=="string")return e.length>n?e.slice(0,n-1)+"…":e;try{const r=JSON.stringify(e);return r.length>n?r.slice(0,n-1)+"…":r}catch{return String(e)}}function Hs(e){let n=null;for(let r=e.tools.length-1;r>=0;r--){const s=e.tools[r];if(s.endedAt==null){n=s;break}}e.inFlightTool=n}const nx=200,NP=25;function CP(e,n){const r=n.tools;if(r.length>nx){const s=r.splice(0,r.length-nx);let o=!1;for(const l of s)e.toolIndex.delete(l.id)&&(o=!0),e.toolOwner.delete(l.id);o&&Hs(n)}for(let s=r.length-NP-1;s>=0;s--){const o=r[s];if(o.trimmed)break;o.input=void 0,o.response=void 0,o.trimmed=!0}}function TP(e,n,r){const s=e.toolIndex.get(r);if(s)return s;for(let o=n.tools.length-1;o>=0;o--)if(n.tools[o].id===r)return n.tools[o];return null}const rx=2e3;function RP(e,n,r){for(let s=e.prompts.length-1;s>=0;s--){const o=e.prompts[s];if(o.at<n-rx)return!1;if(o.text===r&&o.at<=n+rx)return!0}return!1}function jP(e,n,r,s){if(e.agents.size<=r)return!1;const o=[];for(const[u,c]of e.agents)c.state==="done"&&c.endedAt!=null&&n-c.endedAt>s&&o.push({id:u,endedAt:c.endedAt});if(o.length===0)return!1;o.sort((u,c)=>u.endedAt-c.endedAt);let l=0;for(const u of o){if(e.agents.size<=r)break;e.agents.delete(u.id),l++}return l>0}function AP(e,n,r,s){const o=new Map;for(const[h,f]of e.agents){let m=o.get(f.sessionId);m||(m={ids:[],endedAt:0,live:!1},o.set(f.sessionId,m)),m.ids.push(h),f.state==="done"&&f.endedAt!=null?m.endedAt=Math.max(m.endedAt,f.endedAt):m.live=!0}const l=[...o.values()].filter(h=>!h.live&&h.endedAt>0&&n-h.endedAt>s).sort((h,f)=>h.endedAt-f.endedAt);let c=[...o.values()].filter(h=>!h.live).length-r;if(c<=0)return!1;let p=!1;for(const h of l){if(c<=0)break;for(const f of h.ids)e.agents.delete(f);c--,p=!0}return p}function IP(e,n,r){let s=!1;for(const o of e.agents.values()){let l=!1;for(const u of o.tools)u.endedAt==null&&n-u.startedAt>r&&(u.endedAt=u.startedAt+r,u.ok=!1,u.errorPreview="stale (no PostToolUse received)",e.toolIndex.delete(u.id),e.toolOwner.delete(u.id),l=!0,s=!0);l&&Hs(o)}return s}function ix(e,n){const r=n.epoch??null;if(r!==null&&r!==e.seqEpoch)e.seqEpoch=r,e.lastSeq=0;else if(n.seq<=e.lastSeq)return e;const s=n.payload??{},o=n.receivedAt,l=s.hook_event_name??"Unknown";if(l==="__clear")return{...Kg(),lastSeq:n.seq,seqEpoch:e.seqEpoch};e.totalEvents+=1,e.lastSeq=n.seq;const u=s.session_id??"unknown";if(typeof s.model_context_window=="number"&&s.model_context_window>0){const h=e.agents.get(u);h&&(h.contextWindow=s.model_context_window)}if(l==="ModelObserved"){const h=typeof s.model=="string"?s.model:null;if(h){const m=e.agents.get(u);m&&(m.model=h)}const f=s.subagentModels;if(f&&typeof f=="object")for(const[m,y]of Object.entries(f)){if(typeof y!="string")continue;const x=`${u}::${m}`,C=e.agents.get(x);C&&(C.model=y)}return e}if(l==="ContextObserved"){const h=s.context??null;if(h){const f=e.agents.get(u);f&&(f.context={msgsUser:Number(h.msgsUser??0),msgsAssistant:Number(h.msgsAssistant??0),toolUses:Number(h.toolUses??0),toolResults:Number(h.toolResults??0),systemReminders:Number(h.systemReminders??0),currentContextTokens:Number(h.currentContextTokens??0),claudeMdFiles:Array.isArray(h.claudeMdFiles)?h.claudeMdFiles:[]})}return e}if(l==="UsageObserved"){const h=s.usage??null;if(h){const f=e.agents.get(u);if(f){f.usage.inputTokens=Number(h.input_tokens??0),f.usage.outputTokens=Number(h.output_tokens??0),f.usage.cacheReadTokens=Number(h.cache_read_input_tokens??h.cached_input_tokens??0),f.usage.cacheCreateTokens=Number(h.cache_creation_input_tokens??0);const m=xN(h);f.usage.cacheCreate1hTokens=m.cacheCreate1hTokens,f.usage.cacheCreate5mTokens=m.cacheCreate5mTokens,typeof h.reasoning_output_tokens=="number"&&(f.usage.reasoningOutputTokens=Number(h.reasoning_output_tokens))}}return e}const c=tx(e,s,o);c.provider||(c.provider=s.provider==="codex"?"codex":"claude");const p=SN(s);switch(p&&(c.model=p),l){case"SessionStart":{const h=Ko(e,u,o,!1);h.synthetic=!1,h.state="active",h.startedAt=h.startedAt||o,!h.cwd&&s.cwd&&(h.cwd=s.cwd,h.cwdBasename=fi(s.cwd)),h.label==="session"&&s.cwd&&(h.label=fi(s.cwd)??"session");break}case"UserPromptSubmit":{for(const y of e.agents.values())y.sessionId===u&&y.kind==="subagent"&&y.state==="done"&&y.exitAt==null&&y.endedAt!=null&&y.endedAt<o&&(y.exitAt=o);const h=Ko(e,u,o,!1);h.state="active",h.endedAt=void 0,h.exitAt=void 0;const f=tx(e,s,o);f.state="active",f.exitAt=void 0,f.endedAt=void 0;const m=(typeof s.prompt=="string"?s.prompt:typeof s.message=="string"?s.message:"")??"";m&&!RP(f,o,m)&&(f.prompts.push({at:o,text:m}),f.firstPrompt||(f.firstPrompt=Cl(m,120)));break}case"PreToolUse":{const h=s.tool_use_id?TP(e,c,s.tool_use_id):null;if(h){s.tool_name&&h.name==="?"&&(h.name=s.tool_name),h.endedAt==null&&!h.trimmed&&s.tool_input!==void 0&&(h.input=s.tool_input,h.inputPreview=Cl(s.tool_input));break}const f=s.tool_use_id??`${c.id}:${c.toolCount}`,m={id:f,name:s.tool_name??"?",input:s.tool_input,inputPreview:Cl(s.tool_input),agentId:c.id,startedAt:o};c.tools.push(m),c.toolCount+=1,c.state="active",e.toolIndex.set(f,m),e.toolOwner.set(f,c.id),Hs(c),CP(e,c);break}case"PostToolUse":case"PostToolUseFailure":{const h=s.tool_use_id;if(!h)break;let f=e.toolIndex.get(h),m=!1;if(!f)for(const C of e.agents.values()){const _=C.tools.find(S=>S.id===h);if(_){f=_,m=!0;break}}if(!f)break;f.endedAt=o,f.ok=l==="PostToolUse",f.trimmed||(f.response=s.tool_response),l==="PostToolUseFailure"?f.errorPreview=Cl(s.tool_response):m&&(f.errorPreview=void 0);const y=_N(s.tool_response);y&&(f.usage=y),e.toolIndex.delete(h);const x=e.toolOwner.get(h)??f.agentId;if(e.toolOwner.delete(h),x){const C=e.agents.get(x);C&&(y&&_P(C.usage,y),Hs(C))}break}case"SubagentStart":{const h=Xg(s);if(!h)break;const f=bP(e,u,h,s,o);f.state="active",f.startedAt=f.startedAt||o,f.exitAt=void 0,f.endedAt=void 0;const m=Gl(s);m&&(f.label=m),kP(e,u,h);break}case"SubagentStop":{const h=Xg(s);if(!h)break;const f=bN(e,u,h,s);if(!f)break;f.state="done",f.endedAt=o,Hs(f),EP(e,u,h);break}case"Stop":case"SessionEnd":{const h=Ko(e,u,o,!1);h.state="done",h.endedAt=o,Hs(h),e.activeSubagentStack.delete(u);break}}return e}function _v(e){let n=5381;for(let r=0;r<e.length;r++)n=(n<<5)+n^e.charCodeAt(r);return Math.abs(n)%360}const MP=Date.UTC(2026,8,1);function PP(e){return e<MP?{input:2,output:10,cacheRead:.2,cacheWrite:2.5,cacheWrite1h:4}:{input:3,output:15,cacheRead:.3,cacheWrite:3.75,cacheWrite1h:6}}const OP=[{match:/^claude[-_](fable|mythos)[-_]5\b/i,rates:{input:10,output:50,cacheRead:1,cacheWrite:12.5,cacheWrite1h:20}},{match:/^claude[-_]opus[-_]5\b/i,rates:{input:5,output:25,cacheRead:.5,cacheWrite:6.25,cacheWrite1h:10}},{match:/^claude[-_]sonnet[-_]5\b/i,rates:PP},{match:/^claude[-_]opus[-_]4[-_.](?:5|6|7|8)\b/i,rates:{input:5,output:25,cacheRead:.5,cacheWrite:6.25,cacheWrite1h:10}},{match:/^claude[-_]opus[-_]4(?:[-_.]1)?\b/i,rates:{input:15,output:75,cacheRead:1.5,cacheWrite:18.75,cacheWrite1h:30}},{match:/^claude[-_]sonnet[-_]4[-_.](?:5|6)\b/i,rates:{input:3,output:15,cacheRead:.3,cacheWrite:3.75,cacheWrite1h:6}},{match:/^claude[-_]sonnet[-_]4\b/i,rates:{input:3,output:15,cacheRead:.3,cacheWrite:3.75,cacheWrite1h:6}},{match:/^claude[-_]haiku[-_]4[-_.]5\b/i,rates:{input:1,output:5,cacheRead:.1,cacheWrite:1.25,cacheWrite1h:2}},{match:/^claude[-_]haiku[-_]3[-_.]5\b/i,rates:{input:.8,output:4,cacheRead:.08,cacheWrite:1,cacheWrite1h:1.6}},{match:/^gpt[-_]5[-_.]6[-_]cyber/i,rates:{input:12.5,output:75,cacheRead:1.25,cacheWrite:0}},{match:/^gpt[-_]5[-_.]6[-_]luna/i,rates:{input:.2,output:1.2,cacheRead:.02,cacheWrite:.25}},{match:/^gpt[-_]5[-_.]6[-_]terra/i,rates:{input:2,output:12,cacheRead:.2,cacheWrite:2.5}},{match:/^gpt[-_]5[-_.]6(?:[-_]sol)?\b/i,rates:{input:5,output:30,cacheRead:.5,cacheWrite:6.25}},{match:/^gpt[-_]5[-_.]5[-_]pro/i,rates:{input:30,output:180,cacheRead:30,cacheWrite:0}},{match:/^gpt[-_]5[-_.]5\b/i,rates:{input:5,output:30,cacheRead:.5,cacheWrite:0}},{match:/^gpt[-_]5[-_.]4[-_]pro/i,rates:{input:30,output:180,cacheRead:3,cacheWrite:0}},{match:/^gpt[-_]5[-_.]4[-_]mini/i,rates:{input:.75,output:4.5,cacheRead:.075,cacheWrite:0}},{match:/^gpt[-_]5[-_.]4[-_]nano/i,rates:{input:.2,output:1.25,cacheRead:.02,cacheWrite:0}},{match:/^gpt[-_]5[-_.]4\b/i,rates:{input:2.5,output:15,cacheRead:.25,cacheWrite:0}},{match:/^gpt[-_]5[-_.]3[-_]codex/i,rates:{input:1.75,output:14,cacheRead:.175,cacheWrite:0}},{match:/^gpt[-_]5[-_.]2[-_]pro/i,rates:{input:21,output:168,cacheRead:21,cacheWrite:0}},{match:/^gpt[-_]5[-_.]2\b/i,rates:{input:1.75,output:14,cacheRead:.175,cacheWrite:0}},{match:/^codex[-_]mini/i,rates:{input:1.5,output:6,cacheRead:.375,cacheWrite:0}},{match:/^o1[-_]pro/i,rates:{input:150,output:600,cacheRead:150,cacheWrite:0}},{match:/^o1\b/i,rates:{input:15,output:60,cacheRead:7.5,cacheWrite:0}},{match:/^o3[-_]mini/i,rates:{input:1.1,output:4.4,cacheRead:.55,cacheWrite:0}},{match:/^o3[-_]pro/i,rates:{input:20,output:80,cacheRead:20,cacheWrite:0}},{match:/^o4[-_]mini/i,rates:{input:1.1,output:4.4,cacheRead:.275,cacheWrite:0}},{match:/^o3\b/i,rates:{input:2,output:8,cacheRead:.5,cacheWrite:0}}];function LP(e){return e?/^(?:gpt[-_]|codex[-_]|o\d)/i.test(e):!1}function Sv(e,n=Date.now()){if(!e)return null;for(const r of OP)if(r.match.test(e))return typeof r.rates=="function"?r.rates(n):r.rates;return null}function kN(e,n){const r=Math.max(0,e.cacheCreate1hTokens??0),s=Math.max(0,e.cacheCreate5mTokens??0),o=Math.max(0,e.cacheCreateTokens-r-s),l=s+o,u=n.cacheWrite1h??n.cacheWrite;return{tokens5m:l,tokens1h:r,usd5m:l*n.cacheWrite/1e6,usd1h:r*u/1e6}}function EN(e,n){return LP(n)?Math.max(0,e.inputTokens-e.cacheReadTokens):e.inputTokens}function cn(e,n,r=Date.now()){const s=Sv(n,r);if(!s)return{input:0,output:0,cacheRead:0,cacheWrite:0,total:0};const o=EN(e,n)*s.input/1e6,l=e.outputTokens*s.output/1e6,u=e.cacheReadTokens*s.cacheRead/1e6,c=kN(e,s),p=c.usd5m+c.usd1h;return{input:o,output:l,cacheRead:u,cacheWrite:p,total:o+l+u+p}}const sx=2e5,qP=1e6,$P=[/\[1m\]/i,/^claude[-_]opus[-_]5\b/i,/^claude[-_]sonnet[-_]5\b/i,/^claude[-_]opus[-_]4[-_.](?:5|6|7|8)\b/i,/^claude[-_]sonnet[-_]4[-_.]6\b/i,/^claude[-_](fable|mythos)[-_]5\b/i],DP=[{match:/^gpt[-_]5[-_.]6[-_]cyber/i,window:4e5},{match:/^gpt[-_]5[-_.]6/i,window:105e4},{match:/^gpt[-_]5[-_.]5/i,window:105e4},{match:/^gpt[-_]5[-_.]4[-_](?:mini|nano)/i,window:4e5},{match:/^gpt[-_]5[-_.]4/i,window:105e4},{match:/^gpt[-_]5[-_.]3[-_]codex[-_]spark/i,window:128e3},{match:/^gpt[-_]5[-_.]3[-_]codex/i,window:4e5},{match:/^gpt[-_]5[-_.]2/i,window:4e5},{match:/^gpt[-_]5/i,window:4e5},{match:/^codex[-_]mini/i,window:2e5},{match:/^o\d/i,window:2e5}];function FP(e){if(!e)return sx;for(const n of $P)if(n.test(e))return qP;for(const n of DP)if(n.match.test(e))return n.window;return sx}function NN(e,n){return typeof e=="number"&&e>0?e:FP(n)}function ze(e){if(e<=0)return"—";if(e<.005)return"<1¢";if(e<1){const n=(e*100).toFixed(e<.1?1:0);if(Number(n)<100)return`${n}¢`}return e<100?`$${e.toFixed(2)}`:e<1e4?`$${e.toFixed(0)}`:`$${(e/1e3).toFixed(1)}k`}function Yl(e,n){if(e<=0||n<10)return null;const r=e/n,s=r*60;return s>=.01?`${ze(s)}/min`:`${ze(r*3600)}/hr`}function Cn(e){return e.toLocaleString()}function zP(e){return e<1024?`${e} B`:e<1024*1024?`${(e/1024).toFixed(1)} KB`:`${(e/1024/1024).toFixed(2)} MB`}function BP({agent:e,onClose:n}){var h;const r=e.context,s=e.usage,o=(r==null?void 0:r.currentContextTokens)??0,l=NN(e.contextWindow,e.model),u=Math.min(100,o/l*100),c=cn(s,e.model),p=s.inputTokens+s.cacheReadTokens+s.cacheCreateTokens;return g.jsx("div",{className:"ctx-modal-backdrop",onClick:n,role:"presentation",children:g.jsxs("div",{className:"ctx-modal",onClick:f=>f.stopPropagation(),role:"dialog","aria-label":"Context breakdown",children:[g.jsxs("header",{className:"ctx-modal-head",children:[g.jsxs("div",{children:[g.jsxs("div",{className:"ctx-modal-title",children:["Context · ",e.label]}),g.jsx("div",{className:"ctx-modal-sub",children:"approximation — CC's /context isn't hook-exposed"})]}),g.jsx("button",{className:"ctx-modal-close",onClick:n,"aria-label":"Close",children:"×"})]}),g.jsxs("section",{className:"ctx-window-row",children:[g.jsx("div",{className:"ctx-window-bar",role:"progressbar","aria-valuemin":0,"aria-valuemax":100,"aria-valuenow":Math.round(u),children:g.jsx("div",{className:"ctx-window-fill",style:{width:`${u}%`}})}),g.jsxs("div",{className:"ctx-window-meta",children:[g.jsxs("span",{className:"ctx-window-pct",children:[u.toFixed(1),"%"]}),g.jsxs("span",{className:"ctx-window-num",children:[Cn(o)," / ",Cn(l)," tok (current turn)"]})]})]}),g.jsx("h3",{className:"ctx-section-title",children:"Cumulative usage · whole session"}),g.jsxs("div",{className:"ctx-grid",children:[g.jsx(Kn,{label:"input tokens",val:Cn(s.inputTokens)}),g.jsx(Kn,{label:"output tokens",val:Cn(s.outputTokens)}),g.jsx(Kn,{label:"cache reads",val:Cn(s.cacheReadTokens)}),g.jsx(Kn,{label:"cache writes",val:Cn(s.cacheCreateTokens)}),g.jsx(Kn,{label:"cumulative total",val:Cn(p)}),g.jsx(Kn,{label:"estimated cost",val:ze(c.total),accent:!0})]}),g.jsx("h3",{className:"ctx-section-title",children:"Transcript composition"}),g.jsxs("div",{className:"ctx-grid",children:[g.jsx(Kn,{label:"user messages",val:Cn((r==null?void 0:r.msgsUser)??0)}),g.jsx(Kn,{label:"assistant messages",val:Cn((r==null?void 0:r.msgsAssistant)??0)}),g.jsx(Kn,{label:"tool uses",val:Cn((r==null?void 0:r.toolUses)??0)}),g.jsx(Kn,{label:"tool results",val:Cn((r==null?void 0:r.toolResults)??0)}),g.jsx(Kn,{label:"system-reminders",val:Cn((r==null?void 0:r.systemReminders)??0)})]}),g.jsx("h3",{className:"ctx-section-title",children:"CLAUDE.md files in scope"}),(((h=r==null?void 0:r.claudeMdFiles)==null?void 0:h.length)??0)===0?g.jsx("div",{className:"ctx-empty",children:"No CLAUDE.md files found on the path from cwd to ~/.claude."}):g.jsx("ul",{className:"ctx-md-list",children:r.claudeMdFiles.map(f=>g.jsxs("li",{children:[g.jsx("span",{className:"ctx-md-path",title:f.path,children:f.path}),g.jsx("span",{className:"ctx-md-size",children:zP(f.bytes)})]},f.path))})]})})}function Kn({label:e,val:n,accent:r}){return g.jsxs("div",{className:`ctx-row${r?" accent":""}`,children:[g.jsx("span",{className:"ctx-row-label",children:e}),g.jsx("span",{className:"ctx-row-val",children:n})]})}function UP({currentContextTokens:e,modelId:n,contextWindow:r,size:s=26,onClick:o,title:l}){const u=NN(r,n),c=Math.min(1,e/u),p=s/2-3,h=s/2,f=2*Math.PI*p,m=f*c,y=c>.9?"var(--err)":c>.7?"var(--inflight)":"var(--accent)";return g.jsx("button",{type:"button",className:"ctx-donut",onClick:o,title:l??`context: ${e.toLocaleString()} / ${u.toLocaleString()} (${(c*100).toFixed(1)}%)`,"aria-label":"Show context breakdown",children:g.jsxs("svg",{width:s,height:s,viewBox:`0 0 ${s} ${s}`,children:[g.jsx("circle",{cx:h,cy:h,r:p,stroke:"var(--line)",strokeWidth:"2.5",fill:"none"}),g.jsx("circle",{cx:h,cy:h,r:p,stroke:y,strokeWidth:"2.5",fill:"none",strokeDasharray:`${m} ${f-m}`,strokeDashoffset:f/4,strokeLinecap:"round",style:{transition:"stroke-dasharray 400ms ease"}}),g.jsx("text",{x:h,y:h+3,textAnchor:"middle",fontSize:"8",fill:"var(--text)",fontWeight:"600",children:Math.round(c*100)})]})})}function HP(e,n){const r=Sv(n);if(!r)return"no rates for this model";const s=f=>f.toLocaleString(),o=f=>`$${f}/MTok`,l=cn(e,n),u=kN(e,r),c=u.tokens1h>0?[`cache w5m${s(u.tokens5m).padStart(14)} × ${o(r.cacheWrite).padEnd(11)} = ${ze(u.usd5m)}`,`cache w1h${s(u.tokens1h).padStart(14)} × ${o(r.cacheWrite1h??r.cacheWrite).padEnd(11)} = ${ze(u.usd1h)}`]:[`cache w ${s(u.tokens5m).padStart(14)} × ${o(r.cacheWrite).padEnd(11)} = ${ze(u.usd5m)}`],p=EN(e,n),h=p===e.inputTokens?"input":"uncached";return[`model: ${n}`,`${h.padEnd(9)}${s(p).padStart(14)} × ${o(r.input).padEnd(11)} = ${ze(l.input)}`,`output ${s(e.outputTokens).padStart(14)} × ${o(r.output).padEnd(11)} = ${ze(l.output)}`,`cache r ${s(e.cacheReadTokens).padStart(14)} × ${o(r.cacheRead).padEnd(11)} = ${ze(l.cacheRead)}`,...c,"─────────────────────────────────────────",`total = ${ze(l.total)}`].join(`
|
|
58
58
|
`)}function WP(e,n,r){const s=(n??r)-e;if(s<1e3)return`${Math.max(0,s)}ms`;const o=Math.floor(s/1e3);if(o<60)return`${o}s`;const l=Math.floor(o/60),u=o%60;return`${l}m ${String(u).padStart(2,"0")}s`}function VP({data:e,selected:n}){var h;const r=e.now??Date.now(),s=["agent-node",`state-${e.state}`,e.synthetic?"synthetic":"",n?"selected":""].filter(Boolean).join(" "),o=e.tools.filter(f=>!f.endedAt).length,u=`hsl(${_v(e.sessionId)} 70% 60%)`,c=((h=e.context)==null?void 0:h.currentContextTokens)??0,p=e.kind==="root"&&c>0;return g.jsxs("div",{className:s,style:{"--accent":u},children:[g.jsx("span",{className:"accent-stripe"}),g.jsx(Zs,{type:"target",position:Re.Left,style:{background:"transparent",border:"none"}}),g.jsxs("div",{className:"head",children:[g.jsxs("div",{className:"title",children:[g.jsx(GP,{state:e.state}),g.jsx("span",{className:"label",title:e.cwd,children:e.label}),e.synthetic&&g.jsx("span",{className:"synth-tag",title:"No SessionStart captured — synthesised",children:"?"})]}),g.jsxs("div",{className:"head-right",children:[p&&e.onOpenContext&&g.jsx(UP,{currentContextTokens:c,modelId:e.model,contextWindow:e.contextWindow,onClick:()=>e.onOpenContext(e.sessionId)}),g.jsx("div",{className:"time",title:`Started ${new Date(e.startedAt).toLocaleTimeString()}`,children:WP(e.startedAt,e.endedAt,r)})]})]}),g.jsxs("div",{className:"sub",children:[e.kind==="root"?"session":"subagent",e.childCount>0&&g.jsxs("span",{className:"spawn-badge",title:`${e.childCount} subagents spawned`,children:["→ ",e.childCount]}),e.cwdBasename&&e.kind==="subagent"?` · ${e.cwdBasename}`:"",e.model&&g.jsx("span",{className:"model-chip",title:e.model,children:da(e.model)})]}),e.tools.length>0&&g.jsx(KP,{tools:e.tools,now:r}),g.jsxs("div",{className:"meta",children:[g.jsxs("span",{children:[g.jsx("b",{children:e.toolCount})," tools"]}),o>0&&g.jsxs("span",{className:"inflight-meta",children:[g.jsx("b",{children:o})," in-flight"]}),e.usage.inputTokens+e.usage.outputTokens>0&&g.jsxs("span",{className:"tokens-meta",title:`in:${e.usage.inputTokens} out:${e.usage.outputTokens} cache-r:${e.usage.cacheReadTokens} cache-c:${e.usage.cacheCreateTokens}${(e.usage.reasoningOutputTokens??0)>0?` reasoning:${e.usage.reasoningOutputTokens}`:""}`,children:[g.jsx("b",{children:YP(e.usage.inputTokens+e.usage.outputTokens)})," tok"]}),e.model&&Sv(e.model)&&(()=>{const f=cn(e.usage,e.model);if(f.total<=0)return null;const m=Math.max(0,((e.endedAt??r)-e.startedAt)/1e3),y=e.state==="active"?Yl(f.total,m):null,x=HP(e.usage,e.model)+(y?`
|
|
59
|
-
burn: ${y}`:"");return g.jsxs("span",{className:"cost-meta",title:x,children:[g.jsx("b",{children:ze(f.total)}),y&&g.jsx("span",{className:"cost-rate",children:y})]})})()]}),g.jsx(Zs,{type:"source",position:Re.Right,style:{background:"transparent",border:"none"}})]})}function GP({state:e}){const n=e==="active"?"live":e==="done"?"done":"err";return g.jsx("span",{className:`state-pill state-${e}`,children:n})}function YP(e){return e<1e3?`${e}`:e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(2)}M`}function KP({tools:e,now:n}){const l=new Array(24).fill(0);let u=0;for(const y of e){const x=n-y.startedAt;if(x<0||x>=6e4)continue;const C=23-Math.floor(x/2500);C>=0&&C<24&&(l[C]+=1,u+=1)}const c=Math.max(1,...l),p=132,h=14,f=p/24,m=c/(2500/1e3);return g.jsxs("div",{className:"tool-spark-row",title:`${u} tool calls in last 60s · peak ${m.toFixed(1)}/s`,children:[g.jsx("svg",{className:"tool-spark",width:p,height:h,viewBox:`0 0 ${p} ${h}`,"aria-hidden":!0,children:l.map((y,x)=>{const C=y===0?1.5:Math.max(1.5,y/c*h),_=x===23&&y>0,b=`tool-spark-bar${y>0?" active":""}${_?" latest":""}`;return g.jsx("rect",{x:x*f+.4,y:h-C,width:Math.max(.5,f-1),height:C,rx:.8,className:b},x)})}),g.jsx("span",{className:"tool-spark-label",children:"60s"})]})}function da(e){const n=e.match(/^claude[-_](opus|sonnet|haiku|fable|mythos)[-_](\d+(?:[-_.]\d+)*)/i);if(n){const o=n[1][0].toUpperCase()+n[1].slice(1).toLowerCase(),l=n[2].replace(/[-_]/g,".");return`${o} ${l}`}const r=e.match(/^gpt[-_](\d+(?:[-_.]\d+)*)[-_]codex\b/i);if(r)return`GPT-${r[1].replace(/[-_]/g,".")} Codex`;const s=e.match(/^gpt[-_](\d+(?:[-_.]\d+)*)/i);return s?`GPT-${s[1].replace(/[-_]/g,".")}`:e}function ox(e){if(e==null)return"(none)";if(typeof e=="string")return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}function XP(e){if(e.endedAt==null)return"in-flight…";const n=e.endedAt-e.startedAt;return n<1e3?`${n}ms`:`${(n/1e3).toFixed(2)}s`}function QP({tool:e,onClose:n}){A.useEffect(()=>{const s=o=>{o.key==="Escape"&&n()};return window.addEventListener("keydown",s),()=>window.removeEventListener("keydown",s)},[n]);const r=e.endedAt==null?"inflight":e.ok===!1?"err":"done";return g.jsx("div",{className:"modal-backdrop",onClick:n,role:"dialog","aria-modal":"true",children:g.jsxs("div",{className:"modal",onClick:s=>s.stopPropagation(),children:[g.jsxs("header",{className:"modal-head",children:[g.jsxs("div",{className:"modal-title",children:[g.jsx("span",{className:`status-dot ${r}`}),g.jsx("span",{className:"modal-tool-name",children:e.name}),g.jsxs("span",{className:"modal-tool-id",title:e.id,children:[e.id.slice(0,12),"…"]})]}),g.jsxs("div",{className:"modal-actions",children:[g.jsx("span",{className:"modal-dur",children:XP(e)}),g.jsx("button",{className:"btn icon-btn",onClick:n,"aria-label":"Close (Esc)",title:"Close (Esc)",children:"×"})]})]}),g.jsxs("section",{className:"modal-body",children:[e.trimmed&&g.jsx("div",{className:"modal-section",children:g.jsx("p",{className:"modal-note",children:"Full payloads for this call were released to keep memory bounded — only the previews below are still held."})}),g.jsxs("div",{className:"modal-section",children:[g.jsx("h4",{children:"Input"}),g.jsx("pre",{children:ox(e.input??e.inputPreview)})]}),g.jsxs("div",{className:"modal-section",children:[g.jsxs("h4",{children:["Response ",r==="err"&&g.jsx("span",{className:"err-tag",children:"error"})]}),g.jsx("pre",{children:e.endedAt==null?"(waiting…)":ox(e.response??e.errorPreview)})]})]})]})})}const Tl=18,ax=26,ZP=12;function JP(e){return eO(e.nodeInternals.values())}function eO(e){const n=new Map;for(const o of e){if(o.type!=="agent")continue;const l=o.data;if(!(l!=null&&l.sessionId)||l.exitAt!=null||o.width==null||o.height==null)continue;const u=o.position.x,c=o.position.y,p=u+o.width,h=c+o.height,f=n.get(l.sessionId);f?(f.minX=Math.min(f.minX,u),f.minY=Math.min(f.minY,c),f.maxX=Math.max(f.maxX,p),f.maxY=Math.max(f.maxY,h),l.kind==="root"&&(f.label=lx(l)??f.label)):n.set(l.sessionId,{minX:u,minY:c,maxX:p,maxY:h,label:lx(l)??l.sessionId})}const r=new Map;for(const o of n.values())r.set(o.label,(r.get(o.label)??0)+1);const s=[];for(const[o,l]of n){const c=(r.get(l.label)??0)>1?`${l.label} · ${tO(o)}`:l.label;s.push({sessionId:o,label:c,x:l.minX-Tl,y:l.minY-Tl-ax,w:l.maxX-l.minX+Tl*2,h:l.maxY-l.minY+Tl*2+ax})}return s}function tO(e){const n=e.match(/[a-zA-Z0-9]{4}/);return n?n[0]:e.slice(0,4)}function lx(e){if(e.kind==="root")return e.label}function nO(){const{x:e,y:n,zoom:r}=pN(),s=ca(),o=Ke(JP,rO);if(o.length<=1)return null;const l=u=>{try{const c=s.getNodes().filter(p=>{const h=p.data;return(h==null?void 0:h.sessionId)===u});if(c.length===0)return;s.fitView({padding:.3,duration:500,nodes:c})}catch{}};return g.jsx("div",{className:"session-clusters",children:o.map(u=>{const c=_v(u.sessionId),p={position:"absolute",left:u.x*r+e,top:u.y*r+n,width:u.w*r,height:u.h*r,borderColor:`hsl(${c} 65% 55% / 0.32)`,background:`hsl(${c} 70% 50% / 0.04)`},h={position:"absolute",left:u.x*r+e+16*r,top:(u.y-ZP)*r+n,color:`hsl(${c} 70% 78%)`,borderColor:`hsl(${c} 65% 55% / 0.5)`,transform:`scale(${Math.min(1,r)})`,transformOrigin:"left top"};return g.jsxs(le.Fragment,{children:[g.jsx("div",{className:"cluster-card",style:p,"aria-hidden":!0}),g.jsx("button",{type:"button",className:"cluster-label",style:h,title:`Fit view to ${u.label} · drag the wrapper to move the whole session`,onClick:()=>l(u.sessionId),children:u.label})]},u.sessionId)})})}function rO(e,n){if(e.length!==n.length)return!1;for(let r=0;r<e.length;r++){const s=e[r],o=n[r];if(s.sessionId!==o.sessionId||s.label!==o.label||s.x!==o.x||s.y!==o.y||s.w!==o.w||s.h!==o.h)return!1}return!0}function iO({data:e}){return g.jsx("div",{className:"session-group-handle",style:{width:(e==null?void 0:e.w)??0,height:(e==null?void 0:e.h)??0}})}const CN=600,sO=4,oO=36,Qg=16,aO=60,lO=6,ux=220,cx=96,uO=28,cO={Read:"file",Write:"file",Edit:"file",MultiEdit:"file",Glob:"file",Grep:"file",LS:"file",NotebookEdit:"file",Bash:"shell",PowerShell:"shell",shell:"shell",exec_command:"shell",shell_command:"shell",write_stdin:"shell",wait:"shell",apply_patch:"file",update_plan:"task",WebFetch:"web",WebSearch:"web",Task:"agent",Agent:"agent",TodoWrite:"task",TaskCreate:"task",TaskUpdate:"task",TaskList:"task",TaskGet:"task",TaskOutput:"task",TaskStop:"task",EnterPlanMode:"plan",ExitPlanMode:"plan",AskUserQuestion:"plan",Skill:"plan",Workflow:"plan",ScheduleWakeup:"other",CronCreate:"other",CronList:"other",CronDelete:"other",Monitor:"other",PushNotification:"other",RemoteTrigger:"other",ToolSearch:"other"};function dO(e){return e.startsWith("mcp__")?"mcp":cO[e]??"other"}const fO={Read:"📖",Write:"💾",Edit:"✏️",MultiEdit:"🔧",Glob:"🗺️",Grep:"🔎",Bash:"⚡",PowerShell:"💻",shell:"⚡",exec_command:"⚡",shell_command:"⚡",write_stdin:"💻",wait:"⏳",apply_patch:"🩹",update_plan:"📋",LS:"📂",Task:"🤖",Agent:"🤖",TodoWrite:"📋",TaskCreate:"📋",TaskUpdate:"📝",TaskList:"🗂️",TaskGet:"🗂️",TaskOutput:"📤",TaskStop:"🛑",WebFetch:"🌐",WebSearch:"🔭",ToolSearch:"🧰",NotebookEdit:"📓",EnterPlanMode:"🧭",ExitPlanMode:"🏁",AskUserQuestion:"❓",ScheduleWakeup:"⏰",CronCreate:"⏰",CronList:"📅",CronDelete:"🗑️",Skill:"🎯",Workflow:"🎬",Monitor:"📡",PushNotification:"🔔",RemoteTrigger:"📡"};function dx(e){return e.startsWith("mcp__")?"🔌":fO[e]??"✨"}const hO={git:"🐙",gh:"🐙",glab:"🐙",npm:"📦",pnpm:"📦",yarn:"📦",bun:"📦",brew:"🍺",node:"🟢",deno:"🟢",python:"🐍",python3:"🐍",py:"🐍",pip:"🐍",pip3:"🐍",uv:"🐍",ruby:"💎",bundle:"💎",gem:"💎",cargo:"🦀",rustc:"🦀",rustup:"🦀",go:"🐹",docker:"🐳","docker-compose":"🐳",podman:"🐳",kubectl:"☸️",helm:"☸️",k9s:"☸️",grep:"🔎",rg:"🔎",ag:"🔎",ack:"🔎",find:"🔍",fd:"🔍",locate:"🔍",which:"🔍",ls:"📂",dir:"📂",tree:"📂",cat:"📄",head:"📄",tail:"📄",less:"📄",more:"📄",bat:"📄",cp:"📋",mv:"✂️",rm:"🗑️",rmdir:"🗑️",mkdir:"📁",touch:"📁",sed:"✏️",awk:"✏️",tr:"✏️",curl:"🌐",wget:"🌐",http:"🌐",httpie:"🌐",ssh:"🔐",scp:"🔐",rsync:"🔐",ping:"📡",make:"🔨",cmake:"🔨",ninja:"🔨",bazel:"🔨",just:"🔨",terraform:"🏗️",ansible:"📕",pulumi:"🏗️",ps:"📊",top:"📊",htop:"📊",btm:"📊",kill:"💀",pkill:"💀",systemctl:"⚙️",service:"⚙️",tar:"🗜️",zip:"🗜️",unzip:"🗜️",gzip:"🗜️","7z":"🗜️",vim:"📝",nvim:"📝",nano:"📝",emacs:"📝",code:"📝",jq:"🪺",yq:"🪺",echo:"💬",printf:"💬",ffmpeg:"🎞️",ffprobe:"🎞️",imagemagick:"🖼️",convert:"🖼️","Get-ChildItem":"📂","Get-Content":"📄","Set-Content":"💾","Out-File":"💾","Add-Content":"💾","Set-Location":"📍","Get-Location":"📍","Get-Process":"📊","Start-Process":"▶️","Stop-Process":"💀","Invoke-WebRequest":"🌐","Invoke-RestMethod":"🌐","New-Item":"📁","Remove-Item":"🗑️","Copy-Item":"📋","Move-Item":"✂️","Test-Path":"🔍","Where-Object":"🔎","ForEach-Object":"🔁","Select-Object":"🎯","Measure-Object":"📊","Get-Service":"⚙️","Restart-Service":"⚙️","ConvertTo-Json":"🪺","ConvertFrom-Json":"🪺"};function TN(e){if(!e)return null;let n=e.trim();if(!n)return null;const r=n.match(/^(?:bash|sh|zsh|fish|powershell|pwsh)(?:\.exe)?\s+(?:-c|-Command|-NoProfile|-NonInteractive|\s)+["']([^"']+)["']/i);if(r)return TN(r[1]);for(;;){const l=n.match(/^([A-Z_][A-Z0-9_]*=\S*)\s+/);if(!l)break;n=n.slice(l[0].length)}n=n.replace(/^sudo(?:\s+-\S+)*\s+/,""),n=n.replace(/^(?:time|nohup|xargs)\s+/,"");const s=n.match(/^([^\s|;&<>(]+)/);if(!s)return null;let o=s[1];return o=o.replace(/^.*[/\\]/,""),o=o.replace(/\.(exe|cmd|bat|ps1)$/i,""),o||null}function pO(e){if(typeof e=="string")return e;if(!e||typeof e!="object")return null;const n=e;if(typeof n.cmd=="string")return n.cmd;if(typeof n.command=="string")return n.command;if(Array.isArray(n.command)&&n.command.every(r=>typeof r=="string")){const r=n.command;if(/powershell|cmd|bash|sh(\.exe)?$/i.test(r[0]??"")){const s=r.findIndex(o=>/^(-Command|-c)$/i.test(o));if(s>=0&&s+1<r.length)return r[s+1]}return r.join(" ")}return typeof n.script=="string"?n.script:null}const mO=new Set(["Bash","PowerShell","shell","exec_command","shell_command","write_stdin","wait"]),gO=new Set(["shell","exec_command","shell_command","write_stdin","wait","apply_patch","update_plan"]);function vO(e,n){return gO.has(e)||e.startsWith("mcp__")?Math.max(cx,34+n.length*7.5):cx}function yO(e,n){if(!mO.has(e))return null;const r=pO(n);if(!r)return null;const s=TN(r);return s?{emoji:hO[s]??"⚙️",label:s,category:"shell",detail:r}:null}const wO=new Set(["Read","Write","Edit","MultiEdit","NotebookEdit","LS","Glob","apply_patch"]),fx={ts:"🟦",tsx:"🟦",d:"🟦",js:"🟨",jsx:"🟨",mjs:"🟨",cjs:"🟨",py:"🐍",pyi:"🐍",ipynb:"📓",rs:"🦀",go:"🐹",rb:"💎",erb:"💎",java:"☕",kt:"☕",scala:"☕",gradle:"☕",cs:"🔷",fs:"🔷",php:"🐘",swift:"🦅",c:"🇨",cpp:"🇨",cc:"🇨",h:"🇨",hpp:"🇨",md:"📝",mdx:"📝",rst:"📝",json:"🪺",json5:"🪺",jsonl:"🪺",yaml:"⚙️",yml:"⚙️",toml:"⚙️",ini:"⚙️",conf:"⚙️",cfg:"⚙️",xml:"📰",html:"🌐",htm:"🌐",vue:"🌐",svelte:"🌐",css:"🎨",scss:"🎨",sass:"🎨",less:"🎨",sh:"⚡",bash:"⚡",zsh:"⚡",fish:"⚡",ps1:"⚡",txt:"📄",log:"📄",out:"📄",csv:"📊",tsv:"📊",xlsx:"📊",xls:"📊",pdf:"📕",png:"🖼️",jpg:"🖼️",jpeg:"🖼️",gif:"🖼️",webp:"🖼️",svg:"🖼️",ico:"🖼️",mp4:"🎬",mov:"🎬",avi:"🎬",mkv:"🎬",webm:"🎬",mp3:"🎵",wav:"🎵",ogg:"🎵",flac:"🎵",zip:"🗜️",tar:"🗜️",gz:"🗜️",bz2:"🗜️","7z":"🗜️",xz:"🗜️",rar:"🗜️",env:"🔐",lock:"🔐",pem:"🔐",key:"🔐",crt:"🔐",sql:"🗄️",db:"🗄️",sqlite:"🗄️",parquet:"🗄️"},hx={dockerfile:"🐳",makefile:"🔨",rakefile:"💎","package.json":"📦","pnpm-lock.yaml":"📦","yarn.lock":"📦","cargo.toml":"🦀","cargo.lock":"🦀","go.mod":"🐹","go.sum":"🐹","pyproject.toml":"🐍","requirements.txt":"🐍","readme.md":"📖",readme:"📖",license:"📜",".gitignore":"🐙",".gitattributes":"🐙",".env":"🔐",".dockerignore":"🐳"};function xO(e){const r=e.replace(/\\/g,"/").replace(/\/+$/,""),s=r.lastIndexOf("/");return s>=0?r.slice(s+1):r}function _O(e){const n=e.toLowerCase();if(hx[n])return hx[n];if(n.startsWith("dockerfile."))return"🐳";if(/\.(test|spec)\.[a-z]+$/.test(n))return"🧪";const r=n.lastIndexOf(".");if(r>0&&r<n.length-1){const s=n.slice(r+1);if(fx[s])return fx[s]}return"📄"}function SO(e,n){if(!n||typeof n!="object")return null;const r=n;if(e==="apply_patch"&&typeof r.patch=="string"){const s=r.patch.match(/^\*\*\* (?:Update|Add|Delete) File: (.+)$/m);return s?s[1].trim():null}return typeof r.file_path=="string"?r.file_path:typeof r.notebook_path=="string"?r.notebook_path:typeof r.path=="string"?r.path:e==="Glob"&&typeof r.pattern=="string"?r.pattern:null}function bO(e,n){if(!wO.has(e))return null;const r=SO(e,n);if(!r)return null;const s=xO(r);return s?{emoji:e==="LS"?"📂":_O(s),label:s,category:"file",detail:r}:null}const RN={github:{emoji:"🐙",name:"GitHub"},git:{emoji:"🐙",name:"Git"},gitlab:{emoji:"🦊",name:"GitLab"},slack:{emoji:"💬",name:"Slack"},discord:{emoji:"💬",name:"Discord"},linear:{emoji:"📐",name:"Linear"},jira:{emoji:"🅹",name:"Jira"},atlassian:{emoji:"🅰️",name:"Atlassian"},notion:{emoji:"📓",name:"Notion"},asana:{emoji:"📋",name:"Asana"},intercom:{emoji:"💬",name:"Intercom"},figma:{emoji:"🎨",name:"Figma"},gmail:{emoji:"📧",name:"Gmail"},calendar:{emoji:"📅",name:"Calendar"},drive:{emoji:"☁️",name:"Drive"},zoom:{emoji:"📹",name:"Zoom"},spotify:{emoji:"🎵",name:"Spotify"},youtube:{emoji:"📺",name:"YouTube"},ccd_session:{emoji:"📡",name:"Session"},ccd_directory:{emoji:"📂",name:"Directory"},ccd_session_mgmt:{emoji:"📡",name:"Sessions"},mcp_registry:{emoji:"🧰",name:"Registry"},"computer-use":{emoji:"🖱️",name:"Computer"},"claude-in-chrome":{emoji:"🌐",name:"Chrome"},"claude-preview":{emoji:"👀",name:"Preview"},"scheduled-tasks":{emoji:"⏰",name:"Scheduler"},visualize:{emoji:"🎨",name:"Visualize"},"plugin-design-asana":{emoji:"📋",name:"Asana"},"plugin-design-atlassian":{emoji:"🅰️",name:"Atlassian"},"plugin-design-figma":{emoji:"🎨",name:"Figma"},"plugin-design-intercom":{emoji:"💬",name:"Intercom"},"plugin-design-linear":{emoji:"📐",name:"Linear"},"plugin-design-notion":{emoji:"📓",name:"Notion"},"plugin-design-slack":{emoji:"💬",name:"Slack"}};function jN(e){if(!e.startsWith("mcp__"))return null;const n=e.slice(5),r=n.indexOf("__");return r<=0?{server:n,method:""}:{server:n.slice(0,r),method:n.slice(r+2)}}function kO(e){let n=5381;for(let r=0;r<e.length;r++)n=(n<<5)+n^e.charCodeAt(r);return Math.abs(n)%360}function EO(e,n){const r=jN(e);if(!r)return null;const{server:s,method:o}=r;if(!o)return null;const l=RN[s.toLowerCase()];return{emoji:(l==null?void 0:l.emoji)??"🔌",label:o,category:"mcp",detail:l?`${l.name} · ${o}`:`${s} · ${o}`}}function NO(e,n){return yO(e,n)??bO(e,n)??EO(e)}const CO={shell:"Shell",exec_command:"Shell",shell_command:"Shell",write_stdin:"stdin",wait:"wait",apply_patch:"Edit",update_plan:"Plan"};function TO(e){const n=jN(e);if(n){const s=RN[n.server.toLowerCase()];return s?{emoji:s.emoji,label:s.name}:{emoji:"🔌",label:n.server,hue:kO(n.server)}}const r=CO[e];return r?{emoji:dx(e),label:r}:{emoji:dx(e),label:e}}function RO(e){return e.endedAt==null?"inflight":e.ok===!1?"err":"done"}function jO(e,n,r){if(r==null)return 1;const s=n-r;return s<0?1:Math.max(0,1-s/CN)}function AO(e,n){const r=[],s=new Set;for(let o=e.length-1;o>=0&&r.length<n;o--){const l=e[o];s.has(l.id)||(s.add(l.id),r.push(l))}return r.reverse()}function IO(e,n,r,s,o,l){const u=[];for(const c of e.values()){if(!n.has(c.id)||c.exitAt!=null&&l-c.exitAt>CN)continue;const p=s.get(c.id)??r.get(c.id);if(!p)continue;const h=AO(c.tools,sO);if(h.length===0)continue;const f=c.exitAt??null,m=o.get(c.id),y=Math.max((m==null?void 0:m.width)??ux,ux),x=(m==null?void 0:m.height)??130,C=p.x,_=p.y,S=C+y,b=_+x/2;h.forEach((k,N)=>{const T=N*oO,I=C+y+aO,M=_+lO+T,O=jO(k,l,f),H=k.inputPreview??"",L=RO(k),P=O<.999,q=TO(k.name);u.push({id:`${c.id}::${k.id}`,toolId:k.id,agentId:c.id,toolName:k.name,name:q.label,emoji:q.emoji,status:L,category:dO(k.name),mcpHue:q.hue,inputPreview:H,fade:O,fading:P,worldX:I,worldY:M,anchorX:S,anchorY:b,spawnDx:S-I,spawnDy:b-(M+Qg)});const W=NO(k.name,k.input);if(W){const B=vO(k.name,q.label),j=I+B+uO,K=M,U=I+B,ee=M+Qg;u.push({id:`sub:${c.id}::${k.id}`,toolId:k.id,agentId:c.id,toolName:k.name,name:W.label,emoji:W.emoji,isSub:!0,status:L,category:W.category,inputPreview:W.detail??H,fade:O,fading:P,worldX:j,worldY:K,anchorX:U,anchorY:ee,spawnDx:U-j,spawnDy:0})}})}return u}function MO({agents:e,visibleAgentIds:n,positions:r,pinned:s,measured:o,dimUnmatched:l,spotlight:u,hiddenCategories:c,now:p,onOpenTool:h}){const f=IO(e,n,r,s,o,p),m=c&&c.size>0?f.filter(y=>!c.has(y.category)):f;return g.jsx(PO,{bursts:m,dimUnmatched:l,spotlight:u,onOpenTool:h})}function PO({bursts:e,dimUnmatched:n,spotlight:r,onOpenTool:s}){const{x:o,y:l,zoom:u}=pN();return g.jsxs("div",{className:"tool-bursts-layer","aria-hidden":!0,children:[g.jsx("svg",{className:"tool-bursts-svg",children:e.map(c=>{const p=c.anchorX*u+o,h=c.anchorY*u+l,f=(c.worldX+6)*u+o,m=(c.worldY+Qg)*u+l,y=p+(f-p)*.55,x=n!=null&&!n.has(c.agentId),C=r!=null&&!r.has(c.agentId),_=c.fade*(x||C?.14:1);return g.jsx("path",{d:`M ${p} ${h} Q ${y} ${h}, ${f} ${m}`,className:`tool-conn status-${c.status}${c.fading?" fading":""}`,opacity:_},`l:${c.id}`)})}),e.map(c=>{const p=c.worldX*u+o,h=c.worldY*u+l,f={left:`${p}px`,top:`${h}px`,transform:`scale(${u})`,transformOrigin:"left top","--spawn-dx":`${c.spawnDx}px`,"--spawn-dy":`${c.spawnDy}px`},m=c.isSub?`${c.toolName} · ${c.name}`:c.toolName,y=c.inputPreview?`${m} · ${c.inputPreview}`:m,x=s!=null,C=c.mcpHue!=null?{"--cat-accent":`hsl(${c.mcpHue} 65% 65%)`}:{},_=n!=null&&!n.has(c.agentId),S=r!=null&&!r.has(c.agentId),b=_||S?" dim":"";return g.jsx("div",{className:"tool-burst-wrap",style:f,children:g.jsxs("div",{className:`tool-burst cat-${c.category} status-${c.status}${c.fading?" fading":""}${x?" clickable":""}${c.isSub?" sub":""}${b}`,style:C,title:y,role:x?"button":void 0,tabIndex:x?0:void 0,"aria-label":x?`Open ${c.toolName} ${c.status==="inflight"?"in flight":c.status} — click for details`:void 0,onClick:x?()=>s(c.toolId):void 0,onKeyDown:x?k=>{(k.key==="Enter"||k.key===" ")&&(k.preventDefault(),s(c.toolId))}:void 0,children:[g.jsx("span",{className:"tb-emoji",children:c.emoji}),g.jsx("span",{className:"tb-name",children:c.name}),c.status==="inflight"&&g.jsx("span",{className:"tb-spin"}),c.status==="done"&&g.jsx("span",{className:"tb-mark done",children:"✓"}),c.status==="err"&&g.jsx("span",{className:"tb-mark err",children:"×"})]})},c.id)})]})}function OO({state:e,sessionId:n,onClose:r}){const s=A.useMemo(()=>qO(e,n),[e,n]);return s?g.jsx("div",{className:"modal-backdrop",onClick:r,role:"presentation",children:g.jsxs("div",{className:"modal session-summary",onClick:o=>o.stopPropagation(),role:"dialog","aria-modal":"true","aria-labelledby":"ss-title",children:[g.jsxs("div",{className:"modal-head",children:[g.jsxs("div",{className:"modal-title",children:[g.jsx("span",{className:"state-pill state-done","aria-hidden":!0,children:"done"}),g.jsx("span",{id:"ss-title",className:"modal-tool-name",title:s.cwd??s.sessionId,children:s.label}),g.jsxs("span",{className:"modal-tool-id",children:["· ",s.sessionId.slice(0,8)]})]}),g.jsxs("div",{className:"modal-actions",children:[g.jsx("span",{className:"modal-dur",title:"Total wall time",children:s.durationLabel}),g.jsx("button",{className:"btn",onClick:r,"aria-label":"Close",children:"×"})]})]}),g.jsxs("div",{className:"modal-body",children:[g.jsxs("section",{className:"ss-hero",children:[g.jsxs("div",{className:"ss-hero-left",children:[g.jsx("div",{className:"ss-cost-label",children:"total spend"}),g.jsx("div",{className:"ss-cost",children:ze(s.cost.total)}),s.modelChips.length>0&&g.jsx("div",{className:"ss-models",children:s.modelChips.map(o=>g.jsx("span",{className:"model-chip",title:o,children:da(o)},o))})]}),g.jsx("div",{className:"ss-hero-right",children:s.cost.total>0&&g.jsxs(g.Fragment,{children:[g.jsx(LO,{cost:s.cost}),g.jsxs("div",{className:"ss-cost-legend",children:[g.jsxs("span",{className:"ssl ssl-in",children:["input ",g.jsx("b",{children:ze(s.cost.input)})]}),g.jsxs("span",{className:"ssl ssl-out",children:["output ",g.jsx("b",{children:ze(s.cost.output)})]}),g.jsxs("span",{className:"ssl ssl-cr",children:["cache r ",g.jsx("b",{children:ze(s.cost.cacheRead)})]}),g.jsxs("span",{className:"ssl ssl-cw",children:["cache w ",g.jsx("b",{children:ze(s.cost.cacheWrite)})]})]})]})})]}),g.jsxs("section",{className:"ss-stats",children:[g.jsx(Fs,{label:"agents",value:s.agentCount}),g.jsx(Fs,{label:"subagents",value:s.subagentCount}),g.jsx(Fs,{label:"tool calls",value:s.toolCount}),g.jsx(Fs,{label:"prompts",value:s.promptCount}),g.jsx(Fs,{label:"tokens",value:s.tokensSum.toLocaleString()}),s.errCount>0&&g.jsx(Fs,{label:"errors",value:s.errCount,tone:"err"})]}),s.topTools.length>0&&g.jsxs("section",{className:"modal-section",children:[g.jsx("h4",{children:"Most-used tools"}),g.jsx("div",{className:"ss-top-tools",children:s.topTools.map(([o,l])=>g.jsxs("div",{className:"ss-tt",children:[g.jsx("span",{className:"ss-tt-name",children:o}),g.jsx("span",{className:"ss-tt-bar",children:g.jsx("span",{className:"ss-tt-bar-fill",style:{width:`${l/s.topTools[0][1]*100}%`}})}),g.jsx("span",{className:"ss-tt-count",children:l})]},o))})]}),s.firstPrompt&&g.jsxs("section",{className:"modal-section",children:[g.jsx("h4",{children:"Opening prompt"}),g.jsx("div",{className:"ss-prompt",children:s.firstPrompt})]})]})]})}):null}function Fs({label:e,value:n,tone:r}){return g.jsxs("div",{className:`ss-stat${r?` tone-${r}`:""}`,children:[g.jsx("div",{className:"ss-stat-value",children:n}),g.jsx("div",{className:"ss-stat-label",children:e})]})}function LO({cost:e}){const n=e.total;if(n<=0)return null;const r=(s,o,l)=>{if(s<=0)return null;const u=s/n*100;return g.jsx("span",{className:`cb-seg ${o}`,style:{width:`${u}%`},title:`${l}: ${ze(s)} (${u.toFixed(0)}%)`},o)};return g.jsxs("div",{className:"cost-bar cost-bar-lg","aria-label":"Cost breakdown",children:[r(e.input,"cb-input","input"),r(e.output,"cb-output","output"),r(e.cacheRead,"cb-cache-r","cache read"),r(e.cacheWrite,"cb-cache-w","cache write")]})}function qO(e,n){const r=e.agents.get(n);if(!r)return null;const s=[];for(const N of e.agents.values())N.sessionId===n&&s.push(N);if(s.length===0)return null;const o={input:0,output:0,cacheRead:0,cacheWrite:0,total:0},l=new Set,u=new Map;let c=0,p=0,h=0,f=0,m=0,y,x=1/0,C=0;for(const N of s){const T=cn(N.usage,N.model);o.input+=T.input,o.output+=T.output,o.cacheRead+=T.cacheRead,o.cacheWrite+=T.cacheWrite,o.total+=T.total,N.model&&l.add(N.model),N.kind==="subagent"&&m++,p+=N.prompts.length,!y&&N.prompts.length>0&&(y=N.prompts[0].text),h+=N.usage.inputTokens+N.usage.outputTokens,c+=N.toolCount,x=Math.min(x,N.startedAt),C=Math.max(C,N.endedAt??Date.now());for(const I of N.tools)u.set(I.name,(u.get(I.name)??0)+1),I.ok===!1&&f++}const _=Math.max(0,C-x),S=Math.floor(_/1e3),b=S<60?`${S}s`:S<3600?`${Math.floor(S/60)}m ${String(S%60).padStart(2,"0")}s`:`${Math.floor(S/3600)}h ${Math.floor(S%3600/60)}m`,k=Array.from(u.entries()).sort((N,T)=>T[1]-N[1]).slice(0,5);return{sessionId:n,label:r.label||r.cwdBasename||"session",cwd:r.cwd,durationLabel:b,cost:o,modelChips:Array.from(l),agentCount:s.length,subagentCount:m,toolCount:c,promptCount:p,tokensSum:h,errCount:f,topTools:k,firstPrompt:y}}function $O(e,n){const r=[];for(const s of e.agents.values()){if(s.kind!=="root")continue;let o=s.toolCount,l=cn(s.usage,s.model).total,u=s.endedAt??s.startedAt;for(const c of e.agents.values()){if(c.sessionId!==s.sessionId||c.kind==="root")continue;o+=c.toolCount,l+=cn(c.usage,c.model).total;const p=c.endedAt??c.startedAt;p>u&&(u=p)}r.push({sessionId:s.sessionId,label:s.label||s.cwdBasename||"session",cwdBasename:s.cwdBasename,state:s.state,modelId:s.model,toolCount:o,cost:l,startedAt:s.startedAt,lastActivity:u})}return r.sort((s,o)=>{if(s.state!==o.state){if(s.state==="active")return-1;if(o.state==="active")return 1}return o.lastActivity-s.lastActivity}),r}function DO(e,n,r){const s=(n??r)-e;if(s<1e3)return"<1s";const o=Math.floor(s/1e3);if(o<60)return`${o}s`;const l=Math.floor(o/60);return l<60?`${l}m`:`${Math.floor(l/60)}h ${l%60}m`}function FO({state:e,now:n,selectedIds:r,onSelect:s,onClose:o}){const l=A.useMemo(()=>$O(e),[e,e.lastSeq,n]),u=l.filter(c=>c.state==="active").length;return g.jsxs("aside",{className:"session-list","aria-label":"Sessions",children:[g.jsxs("div",{className:"sl-header",children:[g.jsxs("h3",{children:["Sessions ",g.jsx("span",{className:"sl-count",children:l.length})]}),u>0&&g.jsxs("span",{className:"sl-live-count",children:[u," live"]}),g.jsx("button",{className:"btn icon-btn sl-close",onClick:o,title:"Hide sidebar (L)","aria-label":"Hide session list",children:"‹"})]}),g.jsxs("div",{className:"sl-rows",children:[l.length===0&&g.jsx("div",{className:"sl-empty",children:"No sessions yet."}),l.map(c=>{const p=r.has(c.sessionId);return g.jsxs("button",{type:"button",className:`sl-row state-${c.state}${p?" selected":""}`,onClick:()=>s(c.sessionId),title:`Focus ${c.label}`,children:[g.jsx("span",{className:`sl-dot state-${c.state}`,"aria-hidden":!0}),g.jsxs("div",{className:"sl-row-body",children:[g.jsxs("div",{className:"sl-row-head",children:[g.jsx("span",{className:"sl-label",children:c.label}),c.modelId&&g.jsx("span",{className:"model-chip",title:c.modelId,children:da(c.modelId)})]}),g.jsxs("div",{className:"sl-row-meta",children:[g.jsxs("span",{title:"tool calls",children:[g.jsx("b",{children:c.toolCount})," tools"]}),c.cost>0&&g.jsx("span",{className:"sl-cost",title:"total spend",children:g.jsx("b",{children:ze(c.cost)})}),g.jsx("span",{className:"sl-elapsed",title:`Started ${new Date(c.startedAt).toLocaleString()}`,children:DO(c.startedAt,c.state==="active"?void 0:c.lastActivity,n)})]})]})]},c.sessionId)})]})]})}function px(e,n){if(!e)return null;const r=n-Math.floor(e/1e3);return r<10?"just now":r<60?`${r}s ago`:r<3600?`${Math.floor(r/60)}m ago`:`${Math.floor(r/3600)}h ago`}function zO(e){return e==="claude-swap"?"Read from claude-swap's last collection — costs no request against your usage-endpoint budget":e==="api"?"Fetched from Anthropic's usage endpoint, at most once every 5 minutes":e==="cli"?"Parsed from `claude /usage`, at most once every 5 minutes":"Last update"}function Rr(e){return e<1e3?`${e}`:e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(2)}M`}function BO({cost:e}){const n=e.total;if(n<=0)return null;const r=(s,o,l)=>{if(s<=0)return null;const u=s/n*100;return g.jsx("span",{className:`cb-seg ${o}`,style:{width:`${u}%`},title:`${l}: ${ze(s)} (${u.toFixed(0)}%)`},o)};return g.jsxs("div",{className:"cost-bar","aria-label":"Cost breakdown",children:[r(e.input,"cb-input","input"),r(e.output,"cb-output","output"),r(e.cacheRead,"cb-cache-r","cache read"),r(e.cacheWrite,"cb-cache-w","cache write")]})}function UO(e,n){const r=e-n;if(r<=0)return null;const s=Math.floor(r/3600),o=Math.floor(r%3600/60);if(s>23){const l=Math.floor(r/86400),u=Math.floor(r%86400/3600);return`${l}d ${u}h`}return s>0?`${s}h ${o}m`:`${o}m`}function HO(e,n,r,s){const o=Math.max(0,n-s),l=Math.max(0,r-o);if(l<120)return null;const u=Math.min(100,l/r*100),c=e-u;if(Math.abs(c)<3)return{label:"on pace",color:"var(--ok)",expectedPct:u,isDeficit:!1};if(c>0){const p=100-e,h=l>0?e/l:0,f=h>0?p/h:1/0,m={label:`${Math.round(c)}% ahead`,color:"var(--warn)",expectedPct:u,isDeficit:!0};if(f<o&&f<86400){const y=Math.floor(f/3600),x=Math.floor(f%3600/60);m.runsOutIn=y>0?`${y}h ${x}m`:`${x}m`}return m}return{label:`${Math.round(-c)}% reserve`,color:"var(--ok)",expectedPct:u,isDeficit:!1}}function Bi({pct:e,label:n,reset:r,resetAt:s,windowSec:o,limitReached:l,nowSec:u}){const c=Math.min(100,Math.max(0,e)),h=l||c>=90?"var(--err)":c>=70?"var(--warn)":"var(--accent)",f=c===0?"< 1%":`${c}%`,m=c===0?2:c,y=s?UO(s,u):null,x=s&&o?HO(c,s,o,u):null;return g.jsxs("div",{className:"qb-row",children:[g.jsxs("div",{className:"qb-meta",children:[g.jsxs("span",{className:"qb-label",children:[n,l&&g.jsx("span",{className:"qb-limit-badge",title:"Rate limit reached",children:"⛔"})]}),g.jsx("span",{className:"qb-pct",style:{color:h},children:f})]}),g.jsxs("div",{className:"qb-track",children:[g.jsx("div",{className:"qb-fill",style:{width:`${m}%`,background:h,opacity:c===0?.4:1}}),x&&g.jsx("div",{className:"qb-pace-marker",style:{left:`${x.expectedPct}%`,background:x.isDeficit?"var(--err)":"var(--ok)"},title:`To last until reset, stay near ${Math.round(x.expectedPct)}% by now`})]}),g.jsxs("div",{className:"qb-reset-row",children:[y?g.jsxs("span",{className:"qb-reset",children:["resets in ",y]}):r?g.jsxs("span",{className:"qb-reset",children:["resets ",r]}):null,x&&g.jsx("span",{className:"qb-pace",style:{color:x.color},children:x.runsOutIn?`runs out in ${x.runsOutIn}`:x.label})]})]})}const WO=6e4;function VO(){const[e,n]=A.useState(null),[r,s]=A.useState(!1),o=A.useRef(null),l=async(c=!1)=>{c&&s(!0);try{const h=await fetch(c?"/api/quota?refresh=1":"/api/quota");h.ok&&n(await h.json())}catch{}finally{c&&s(!1)}};return A.useEffect(()=>(l(!0),o.current=window.setInterval(()=>l(!1),WO),()=>{o.current!=null&&window.clearInterval(o.current)}),[]),{quota:e,loading:r,refresh:()=>l(!0)}}function GO(e){switch(e){case"no_token":return"Run codex login to authenticate.";case"api_key_mode":return"API-key login — ChatGPT quota is only available for codex login.";case"refresh_rejected":return"Codex session expired — run codex login.";case"refresh_failed":return"Couldn't refresh the Codex token — click ↻ to retry.";default:return"ChatGPT API unreachable — click ↻ to retry."}}const AN=6e4;function YO(){const[e,n]=A.useState(null),[r,s]=A.useState(!1),o=A.useRef(null),l=async(c=!1)=>{c&&s(!0);try{const h=await fetch(c?"/api/codex-quota?refresh=1":"/api/codex-quota");h.ok&&n(await h.json())}catch{}finally{c&&s(!1)}};return A.useEffect(()=>(l(!0),o.current=window.setInterval(()=>l(!1),AN),()=>{o.current!=null&&window.clearInterval(o.current)}),[]),{data:e,loading:r,refresh:()=>l(!0)}}function KO(){const[e,n]=A.useState(null),r=A.useRef(null),s=async()=>{try{const o=await fetch("/api/codex-usage");o.ok&&n(await o.json())}catch{}};return A.useEffect(()=>(s(),r.current=window.setInterval(s,AN),()=>{r.current!=null&&window.clearInterval(r.current)}),[]),{data:e}}function XO({state:e,now:n,onClose:r}){var O,H;const{quota:s,loading:o,refresh:l}=VO(),{data:u,loading:c,refresh:p}=YO(),{data:h}=KO(),[f,m]=A.useState(()=>Math.floor(Date.now()/1e3));A.useEffect(()=>{const L=window.setInterval(()=>m(Math.floor(Date.now()/1e3)),3e4);return()=>window.clearInterval(L)},[]);const{byModel:y,totalCost:x,totalTokens:C,burnRate:_}=A.useMemo(()=>{const L=new Map,P={total:0,input:0,output:0,cacheRead:0,cacheWrite:0};let q=0,W=0,B=0,j=0;for(const F of e.agents.values()){const Y=F.model??"__unknown__",E=cn(F.usage,F.model),$=L.get(Y);$?($.inputTokens+=F.usage.inputTokens,$.outputTokens+=F.usage.outputTokens,$.cacheReadTokens+=F.usage.cacheReadTokens,$.cacheCreateTokens+=F.usage.cacheCreateTokens,$.cost.total+=E.total,$.cost.input+=E.input,$.cost.output+=E.output,$.cost.cacheRead+=E.cacheRead,$.cost.cacheWrite+=E.cacheWrite,$.agentCount++):L.set(Y,{model:Y,inputTokens:F.usage.inputTokens,outputTokens:F.usage.outputTokens,cacheReadTokens:F.usage.cacheReadTokens,cacheCreateTokens:F.usage.cacheCreateTokens,cost:{...E},agentCount:1}),P.total+=E.total,P.input+=E.input,P.output+=E.output,P.cacheRead+=E.cacheRead,P.cacheWrite+=E.cacheWrite,q+=F.usage.inputTokens,W+=F.usage.outputTokens,B+=F.usage.cacheReadTokens,j+=F.usage.cacheCreateTokens}const K=Array.from(L.values()).sort((F,Y)=>Y.cost.total-F.cost.total);let U=0,ee=0;for(const F of e.agents.values()){if(F.state!=="active")continue;const Y=cn(F.usage,F.model);U+=Y.total,ee=Math.max(ee,((F.endedAt??n)-F.startedAt)/1e3)}const J=ee>0?Yl(U,ee):null;return{byModel:K,totalCost:P,totalTokens:{in:q,out:W,cacheR:B,cacheC:j},burnRate:J}},[e,e.lastSeq,n]),S=A.useMemo(()=>{const L=[];for(const P of e.agents.values()){if(P.kind!=="root")continue;let q=cn(P.usage,P.model).total,W=P.usage.inputTokens,B=P.usage.outputTokens;for(const j of e.agents.values())j.sessionId!==P.sessionId||j.kind==="root"||(q+=cn(j.usage,j.model).total,W+=j.usage.inputTokens,B+=j.usage.outputTokens);L.push({sessionId:P.sessionId,label:P.label||P.cwdBasename||"session",state:P.state,cost:q,inputTokens:W,outputTokens:B})}return L.sort((P,q)=>q.cost-P.cost).slice(0,12)},[e,e.lastSeq]),b=x.total>0,k=C.in+C.out,N=o||c,T=px(s==null?void 0:s.fetchedAt,f),I=px(u==null?void 0:u.fetchedAt,f),M=()=>{l(),p()};return g.jsxs("div",{className:"usage-panel","aria-label":"Usage",children:[g.jsxs("div",{className:"up-header",children:[g.jsx("h3",{children:"Usage"}),_&&g.jsx("span",{className:"up-rate",children:_}),g.jsxs("div",{className:"up-header-right",children:[g.jsx("button",{type:"button",className:"btn up-refresh-btn",onClick:M,disabled:N,title:"Refresh Claude + Codex quota",children:N?"…":"↻"}),g.jsx("button",{type:"button",className:"btn icon-btn up-close",onClick:r,"aria-label":"Close usage panel",title:"Close (U)",children:"×"})]})]}),g.jsxs("section",{className:"up-section up-quota-section",children:[g.jsxs("h4",{className:"up-section-title",children:["Claude quota",T&&!o&&g.jsx("span",{className:"up-section-age",title:zO(s==null?void 0:s.source),children:T})]}),s!=null&&s.ok?g.jsxs("div",{className:"up-quota-bars",children:[s.session5hPct!=null&&g.jsx(Bi,{label:"5-hour window",pct:s.session5hPct,reset:s.session5hReset,resetAt:s.session5hResetAt,windowSec:s.session5hWindowSec,nowSec:f}),s.week7dPct!=null&&g.jsx(Bi,{label:"7-day window",pct:s.week7dPct,reset:s.week7dReset,resetAt:s.week7dResetAt,windowSec:s.week7dWindowSec,nowSec:f}),s.weekSonnetPct!=null&&g.jsx(Bi,{label:"Sonnet (7d)",pct:s.weekSonnetPct,nowSec:f}),s.weekOpusPct!=null&&g.jsx(Bi,{label:"Opus (7d)",pct:s.weekOpusPct,nowSec:f})]}):(s==null?void 0:s.ok)===!1?g.jsxs("div",{className:"up-quota-na",children:[g.jsx("span",{children:"Quota unavailable."}),g.jsxs("span",{className:"up-quota-hint",children:["Run ",g.jsx("code",{children:"/usage"})," in a claude session, then click ↻"]})]}):g.jsx("div",{className:"up-quota-na up-quota-loading",children:"Checking…"})]}),g.jsxs("section",{className:"up-section up-quota-section",children:[g.jsxs("h4",{className:"up-section-title",children:["Codex quota",(u==null?void 0:u.ok)&&u.planLabel&&g.jsx("span",{className:"up-plan-badge",children:u.planLabel}),I&&!c&&g.jsx("span",{className:"up-section-age",title:"Fetched from the Codex usage endpoint",children:I})]}),u!=null&&u.ok?g.jsxs("div",{className:"up-quota-bars",children:[(O=u.windows)==null?void 0:O.map(L=>g.jsx(Bi,{label:L.label,pct:L.pct,reset:L.reset??void 0,resetAt:L.resetAt??void 0,windowSec:L.windowSec??void 0,limitReached:u.limitReached&&L.pct>=100,nowSec:f},L.id)),(H=u.extraWindows)==null?void 0:H.map(L=>g.jsx(Bi,{label:L.label,pct:L.pct,reset:L.reset??void 0,resetAt:L.resetAt??void 0,windowSec:L.windowSec??void 0,nowSec:f},L.id)),u.creditLimit&&g.jsx(Bi,{label:`spend cap · $${Math.round(u.creditLimit.used)} of $${Math.round(u.creditLimit.limit)}`,pct:u.creditLimit.usedPct,reset:u.creditLimit.reset??void 0,resetAt:u.creditLimit.resetAt??void 0,limitReached:u.spendControlReached,nowSec:f}),(h==null?void 0:h.ok)&&h.window7d&&h.window7d.sessionCount>0&&g.jsxs("div",{className:"up-quota-sub",children:[Rr(h.window7d.totalTokens)," tokens · ",h.window7d.sessionCount," session",h.window7d.sessionCount!==1?"s":""," (7d)"]}),u.creditsBalance&&!u.creditsUnlimited&&g.jsxs("div",{className:"up-quota-sub up-credits",children:["credits: $",u.creditsBalance,u.overageReached&&" · overage limit reached"]}),u.creditsUnlimited&&g.jsx("div",{className:"up-quota-sub up-credits",children:"credits: unlimited"}),u.resetCredits&&u.resetCredits.availableCount>0&&g.jsxs("div",{className:"up-quota-sub up-reset-credits",title:"Redeem in the Codex CLI or ChatGPT — agents-deck only reports them",children:[u.resetCredits.availableCount," rate-limit reset",u.resetCredits.availableCount!==1?"s":""," available",u.resetCredits.nextExpiryAt&&` · expires ${new Date(u.resetCredits.nextExpiryAt).toLocaleDateString("en-US",{month:"short",day:"numeric"})}`]}),u.promo&&g.jsx("div",{className:"up-quota-sub",children:u.promo}),u.partial&&g.jsx("div",{className:"up-quota-sub up-quota-hint",children:"Partial data — OpenAI returned limits this build doesn't recognise."})]}):(u==null?void 0:u.ok)===!1?g.jsxs("div",{className:"up-quota-na",children:[g.jsx("span",{children:"Quota unavailable."}),g.jsx("span",{className:"up-quota-hint",children:GO(u.reason)})]}):g.jsx("div",{className:"up-quota-na up-quota-loading",children:"Checking…"})]}),b?g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:"up-total",children:[g.jsx("span",{className:"up-total-value",children:ze(x.total)}),g.jsx("span",{className:"up-total-label",children:"total spend"})]}),g.jsx(BO,{cost:x}),k>0&&g.jsxs("div",{className:"up-tokens-row",children:[g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"in"}),Rr(C.in)]}),g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"out"}),Rr(C.out)]}),C.cacheR>0&&g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"cache r"}),Rr(C.cacheR)]}),C.cacheC>0&&g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"cache c"}),Rr(C.cacheC)]})]}),y.filter(L=>L.cost.total>0).length>0&&g.jsxs("section",{className:"up-section",children:[g.jsx("h4",{className:"up-section-title",children:"By model"}),g.jsxs("table",{className:"up-table",children:[g.jsx("thead",{children:g.jsxs("tr",{children:[g.jsx("th",{children:"Model"}),g.jsx("th",{children:"Tokens"}),g.jsx("th",{children:"Cost"})]})}),g.jsx("tbody",{children:y.filter(L=>L.cost.total>0).map(L=>g.jsxs("tr",{children:[g.jsx("td",{className:"up-model-name",title:L.model,children:da(L.model)}),g.jsx("td",{className:"up-num",children:Rr(L.inputTokens+L.outputTokens)}),g.jsx("td",{className:"up-num up-cost-val",children:ze(L.cost.total)})]},L.model))})]})]}),S.filter(L=>L.cost>0).length>0&&g.jsxs("section",{className:"up-section",children:[g.jsx("h4",{className:"up-section-title",children:"By session"}),g.jsx("div",{className:"up-sessions",children:S.filter(L=>L.cost>0).map(L=>g.jsxs("div",{className:"up-session-row",children:[g.jsx("span",{className:`sl-dot state-${L.state}`,"aria-hidden":!0}),g.jsx("span",{className:"up-session-label",children:L.label}),g.jsx("span",{className:"up-session-tokens",children:Rr(L.inputTokens+L.outputTokens)}),g.jsx("span",{className:"up-session-cost",children:ze(L.cost)})]},L.sessionId))})]})]}):k>0?g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:"up-tokens-row",children:[g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"in"}),Rr(C.in)]}),g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"out"}),Rr(C.out)]})]}),g.jsx("div",{className:"up-hint",children:"Cost appears once a known model is detected."})]}):g.jsxs("div",{className:"up-empty",children:["No usage data yet.",g.jsx("br",{}),"Start a Claude Code or Codex session."]})]})}const mx=18,QO=1100,zs=(e,n)=>{const r=Math.sin(e*12.9898+n*78.233)*43758.5453;return r-Math.floor(r)},ZO=Array.from({length:mx},(e,n)=>{const r=-72+144*n/(mx-1)+(zs(n,1)-.5)*9,s=(r-90)*(Math.PI/180),o=(54+32*Math.cos(r*Math.PI/180))*(.74+zs(n,2)*.52);return{dx:Math.cos(s)*o,dy:Math.sin(s)*o,rot:(n%2?1:-1)*(100+zs(n,3)*260),delay:Math.round(zs(n,4)*90),dur:760+Math.round(zs(n,5)*260),scale:.8+zs(n,6)*.45,hue:n%4,round:n%3===0}});function gx({anchor:e,lifetimeMs:n=QO}){var l;const[r,s]=A.useState(null),o=typeof window<"u"&&((l=window.matchMedia)==null?void 0:l.call(window,"(prefers-reduced-motion: reduce)").matches);return A.useEffect(()=>{if(o)return;const u=e.current;if(!u)return;const c=u.getBoundingClientRect();s({x:c.left+c.width/2,y:c.top+c.height/2});const p=window.setTimeout(()=>s(null),n);return()=>window.clearTimeout(p)},[e,n,o]),o||!r?null:lI.createPortal(g.jsx("div",{className:"confetti",style:{left:`${r.x}px`,top:`${r.y}px`},"aria-hidden":!0,children:ZO.map((u,c)=>g.jsx("span",{className:`confetti-bit${u.round?" round":""}`,"data-hue":u.hue,style:{"--dx":`${u.dx.toFixed(1)}px`,"--dy":`${u.dy.toFixed(1)}px`,"--rot":`${u.rot}deg`,"--s":u.scale.toFixed(2),animationDelay:`${u.delay}ms`,animationDuration:`${u.dur}ms, ${u.dur}ms`}},c))}),document.body)}const IN=new Set(["awaiting_url","awaiting_code","registering"]);function JO(e){return e!=null&&IN.has(e)}function e3(e){return e!=null&&e!=="done"&&!IN.has(e)}const t3="the sign-in ended before it finished — the deck restarted, or it was cancelled in another tab",n3="the sign-in did not complete";function r3({state:e,serverError:n,localError:r}){const s=e==="idle";return{title:s?"Sign-in ended":"Sign-in failed",message:r||n||(s?t3:n3)}}const i3="done";function s3(){let e=!1;return{shouldAnnounce(n){return n!==i3?(e=!1,!1):e?!1:(e=!0,!0)}}}const o3=1500;async function Rl(e){return(await fetch("/api/claude-accounts/admin",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})).json().catch(()=>null)}const a3={already_running:"a sign-in is already in progress",no_url:"the claude CLI did not offer a sign-in link — is it installed?",not_waiting:"that sign-in is no longer waiting for a code",not_prompted:"the CLI has not asked for a code yet",code_rejected:"that code was not accepted — copy it again from the browser",no_verdict:"the claude CLI has not answered — try the code again",empty_code:"paste the code from the browser first",login_failed:"the code was not accepted",no_identity:"signed in, but the CLI still reports nobody logged in",add_failed:"signed in, but claude-swap could not record the account",not_a_share:"that does not look like a shared account — it should start with ccdeck1:",corrupt:"that share is incomplete — copy the whole thing",wrong_version:"that share was made by a newer agents-deck",expired:"that share has expired — make a new one",import_failed:"claude-swap refused the import"},fd=(e,n)=>(e==null?void 0:e.detail)||(e!=null&&e.reason?a3[e.reason]??e.reason:null)||(e==null?void 0:e.error)||n,Zg=le.forwardRef((e,n)=>g.jsxs("svg",{className:"aa-mark",viewBox:"0 0 44 44","aria-hidden":!0,ref:n,children:[g.jsx("circle",{className:"aa-mark-ring",cx:"22",cy:"22",r:"20"}),g.jsx("path",{className:"aa-mark-tick",d:"M13.5 22.5 L19.5 28.5 L31 17"})]}));Zg.displayName="SuccessMark";function l3({onClose:e,onChanged:n}){const[r,s]=A.useState("login"),[o,l]=A.useState(null),[u,c]=A.useState(""),[p,h]=A.useState(""),[f,m]=A.useState(!1),[y,x]=A.useState(null),[C,_]=A.useState(null),S=A.useRef(!1),b=A.useRef(null),k=A.useRef(null),N=A.useRef(null),T=A.useCallback(()=>{S.current&&Rl({action:"login-cancel"}).catch(()=>{}),e()},[e]);A.useEffect(()=>{const B=j=>{j.key==="Escape"&&T()};return window.addEventListener("keydown",B),()=>window.removeEventListener("keydown",B)},[T]);const I=A.useCallback(async()=>{m(!0),x(null),S.current=!0;const B=await Rl({action:"login"}).catch(()=>null);if(m(!1),!(B!=null&&B.ok)){x(fd(B,"could not start the sign-in"));return}l(B)},[]);A.useEffect(()=>{if(!JO(o==null?void 0:o.state))return;const B=window.setInterval(async()=>{try{const j=await fetch("/api/claude-accounts/login");j.ok&&l(await j.json())}catch{}},o3);return()=>window.clearInterval(B)},[o]);const M=A.useRef(n);M.current=n;const O=A.useRef(s3());A.useEffect(()=>{var B;(o==null?void 0:o.state)==="awaiting_code"&&((B=b.current)==null||B.focus()),O.current.shouldAnnounce(o==null?void 0:o.state)&&M.current()},[o==null?void 0:o.state]),A.useEffect(()=>{var B;r==="paste"&&((B=k.current)==null||B.focus())},[r]);const H=A.useCallback(async()=>{var j;m(!0),x(null);const B=await Rl({action:"login-code",code:u}).catch(()=>null);if(m(!1),!(B!=null&&B.ok)){x(fd(B,"the code was not accepted")),B!=null&&B.state&&l(B),(j=b.current)==null||j.select();return}c(""),l(B)},[u,o]),L=A.useCallback(async()=>{m(!0),x(null);const B=await Rl({action:"import",blob:p}).catch(()=>null);if(m(!1),!(B!=null&&B.ok)){x(fd(B,"the import failed"));return}h(""),_({added:B.added===!0,num:B.num??null,email:B.email??null}),n()},[p,n]),P=(o==null?void 0:o.state)==="done"?o.account:null,q=e3(o==null?void 0:o.state)||!!(y&&S.current&&!f),W=r3({state:o==null?void 0:o.state,serverError:o==null?void 0:o.error,localError:y});return g.jsx("div",{className:"modal-backdrop",onClick:T,role:"presentation",children:g.jsxs("div",{className:"modal aa-modal",onClick:B=>B.stopPropagation(),role:"dialog","aria-modal":"true","aria-label":"Add a Claude account",children:[g.jsxs("header",{className:"modal-head",children:[g.jsx("div",{className:"modal-title",children:g.jsxs("span",{className:"aa-tabs",role:"tablist",children:[g.jsx("button",{type:"button",role:"tab","aria-selected":r==="login",className:`aa-tab${r==="login"?" on":""}`,onClick:()=>s("login"),children:"Sign in"}),g.jsx("button",{type:"button",role:"tab","aria-selected":r==="paste",className:`aa-tab${r==="paste"?" on":""}`,onClick:()=>s("paste"),children:"Paste a share"})]})}),g.jsx("div",{className:"modal-actions",children:g.jsx("button",{type:"button",className:"btn icon-btn",onClick:T,"aria-label":"Close (Esc)",title:"Close (Esc)",children:"×"})})]}),g.jsx("section",{className:"modal-body aa-body",children:r==="login"?P?g.jsxs("div",{className:"aa-done",children:[g.jsx(Zg,{ref:N}),g.jsx(gx,{anchor:N}),g.jsx("h4",{children:P.added?`Account ${P.num} added`:"Credentials refreshed"}),g.jsxs("p",{className:"aa-note",children:[g.jsx("strong",{children:P.email}),P.added?" is in the rotation. The account you were using is still active.":" was already managed, so its stored credentials were replaced."]}),g.jsx("button",{type:"button",className:"btn primary",onClick:e,children:"Done"})]}):(o==null?void 0:o.state)==="awaiting_code"||(o==null?void 0:o.state)==="registering"?g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:"aa-step",children:[g.jsx("h4",{children:"1 · Approve in the browser"}),g.jsx("p",{className:"aa-note",children:"A tab should have opened. If not, use this link:"}),g.jsx("a",{className:"aa-link",href:o.url??"#",target:"_blank",rel:"noreferrer noopener",children:o.url})]}),g.jsxs("div",{className:"aa-step",children:[g.jsx("h4",{children:"2 · Paste the code it gives you"}),g.jsxs("div",{className:"aa-field",children:[g.jsx("input",{ref:b,type:"text",value:u,onChange:B=>c(B.target.value),onKeyDown:B=>{B.key==="Enter"&&u.trim()&&!f&&H()},placeholder:"paste the code here",spellCheck:!1,autoComplete:"off","aria-label":"Sign-in code",disabled:o.state==="registering"}),g.jsx("button",{type:"button",className:"btn primary",disabled:f||!u.trim()||o.state==="registering",onClick:H,children:o.state==="registering"?"registering…":"Continue"})]}),(y||o.error)&&g.jsx("p",{className:"aa-err",children:y??o.error}),g.jsx("p",{className:"aa-note",children:"The code goes straight to the claude CLI on this machine. It is never stored or sent anywhere else."})]})]}):q?g.jsxs("div",{className:"aa-step",children:[g.jsx("h4",{children:W.title}),g.jsx("p",{className:"aa-err",children:W.message}),g.jsx("button",{type:"button",className:"btn",onClick:()=>{S.current=!1,l(null),x(null),I()},children:"Try again"})]}):f||S.current?g.jsx("div",{className:"aa-step",children:g.jsx("p",{className:"aa-note",children:"Asking the claude CLI for a sign-in link…"})}):g.jsxs("div",{className:"aa-step aa-primer",children:[g.jsx("h4",{children:"Sign in to Anthropic"}),g.jsx("p",{className:"aa-note",children:"Opens a browser tab where you approve the sign-in, then asks for the code it shows you. claude-swap records the account when it completes, and the account you are using now stays active."}),g.jsx("div",{className:"aa-actions",children:g.jsx("button",{type:"button",className:"btn primary",onClick:I,disabled:f,children:"Open the sign-in page"})})]}):C?g.jsxs("div",{className:"aa-done",children:[g.jsx(Zg,{ref:N}),C.added&&g.jsx(gx,{anchor:N}),g.jsx("h4",{children:C.added?`Account ${C.num} imported`:"Already here"}),g.jsx("p",{className:"aa-note",children:C.added?g.jsxs(g.Fragment,{children:[C.email?g.jsx("strong",{children:C.email}):"That account"," is in the rotation now. Nothing changed on the deck you copied it from."]}):"This deck already holds that account, so nothing changed."}),g.jsxs("div",{className:"aa-actions",children:[g.jsx("button",{type:"button",className:"btn primary",onClick:e,children:"Done"}),g.jsx("button",{type:"button",className:"btn",onClick:()=>_(null),children:"Import another"})]})]}):g.jsxs("div",{className:"aa-step",children:[g.jsx("h4",{children:"Paste an account shared from another deck"}),g.jsxs("div",{className:"aa-field",children:[g.jsx("input",{ref:k,type:"text",value:p,onChange:B=>h(B.target.value),onKeyDown:B=>{B.key==="Enter"&&p.trim()&&!f&&L()},placeholder:"ccdeck1:…",spellCheck:!1,autoComplete:"off","aria-label":"Shared account"}),g.jsx("button",{type:"button",className:"btn primary",disabled:f||!p.trim(),onClick:L,children:f?"importing…":"Import"})]}),y&&g.jsx("p",{className:"aa-err",children:y}),g.jsxs("p",{className:"aa-note",children:["Use ",g.jsx("strong",{children:"share"})," on an account in the other deck. A share carries a live login and expires ten minutes after it is made."]})]})})]})})}const u3=15e3,c3=[70,80,85,90,95];function d3(e,n){const r=e-n;if(r<=0)return null;const s=Math.floor(r/86400),o=Math.floor(r%86400/3600),l=Math.floor(r%3600/60);return s>0?`${s}d ${o}h`:o>0?`${o}h ${l}m`:`${l}m`}function vx(e,n){const r=n-Math.floor(e/1e3);return r<60?"just now":r<3600?`${Math.floor(r/60)}m ago`:r<86400?`${Math.floor(r/3600)}h ago`:`${Math.floor(r/86400)}d ago`}function f3(e,n){if(!e)return"";const r=Math.floor(e/1e3)-n;return r<=0?" · due":r<60?` · next in ${r}s`:` · next in ${Math.round(r/60)}m`}function h3(e){switch(e){case"invalid_grant":case"no_refresh_token":return{text:"login expired",hint:"claude-swap's stored login for this account was rejected and cannot be refreshed. Signing in again replaces it — the account keeps its slot, its alias and its history.",fixable:!0};case"http-401":return{text:"re-login needed",hint:"Anthropic refused this account's token.",fixable:!0};case"http-429":return{text:"rate limited",hint:"Anthropic is throttling requests for this account. It clears on its own.",fixable:!1};case"transient":return{text:"temporary error",hint:"A network or server hiccup while reading usage. The next collection retries.",fixable:!1};case"timeout":return{text:"timed out",hint:"Reading this account's usage took too long. The next collection retries.",fixable:!1};case"network":return{text:"unreachable",hint:"Could not reach Anthropic to read this account's usage.",fixable:!1};default:return{text:e,hint:`claude-swap reported "${e}" for this account.`,fixable:!1}}}function p3({lane:e,nowSec:n}){const r=Math.min(100,Math.max(0,e.pct)),s=r>=90?"var(--err)":r>=70?"var(--warn)":"var(--accent)",o=e.resetAt?d3(e.resetAt,n):null;return g.jsxs("div",{className:"ap-lane",children:[g.jsx("span",{className:"ap-lane-label",children:e.label}),g.jsx("div",{className:"ap-lane-track",children:g.jsx("div",{className:"ap-lane-fill",style:{width:`${r===0?1.5:r}%`,background:s,opacity:r===0?.4:1}})}),g.jsxs("span",{className:"ap-lane-pct",style:{color:s},children:[r,"%"]}),g.jsx("span",{className:"ap-lane-reset",children:o?`resets ${o}`:""})]})}function m3(e){const n=e.map(s=>s.num),r=n.length?Math.max(...n):0;return[...new Set([...n,r+1])].sort((s,o)=>s-o)}async function g3(e){var r;let n=!1;try{n=await Promise.race([((r=navigator.clipboard)==null?void 0:r.writeText(e).then(()=>!0))??Promise.resolve(!1),new Promise(s=>window.setTimeout(()=>s(!1),500))])}catch{n=!1}if(n)return!0;try{const s=document.createElement("textarea");s.value=e,s.setAttribute("readonly",""),s.style.cssText="position:fixed;top:0;left:0;opacity:0",document.body.appendChild(s),s.select(),n=document.execCommand("copy"),s.remove()}catch{n=!1}return n}function v3(e,n){const r=Math.round(e/1e3)-n;return r<=0?{text:"expired",tone:"gone"}:r<60?{text:`expires in ${r}s`,tone:"soon"}:{text:`expires in ${Math.round(r/60)}m`,tone:"ok"}}function y3({onClose:e}){var J,F,Y;const[n,r]=A.useState(null),[s,o]=A.useState(null),[l,u]=A.useState(null),[c,p]=A.useState(null),[h,f]=A.useState(null),[m,y]=A.useState(()=>Math.floor(Date.now()/1e3)),x=A.useRef(null),[C,_]=A.useState(null),[S,b]=A.useState(!1),[k,N]=A.useState(""),[T,I]=A.useState(null),[M,O]=A.useState(null),[H,L]=A.useState(!1),P=A.useCallback(async(E=!1)=>{try{const[$,se]=await Promise.all([fetch(`/api/claude-accounts${E?"?refresh=1":""}`),fetch("/api/cswap-auto")]);$.ok&&r(await $.json()),se.ok&&o(await se.json())}catch{}},[]),q=A.useCallback(async(E,$)=>{u($),f(null);try{const D=await(await fetch("/api/cswap-auto",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(E)})).json().catch(()=>null);return D!=null&&D.ok||f((D==null?void 0:D.detail)||(D==null?void 0:D.reason)||"command failed"),D}catch{return f("server unreachable"),null}finally{u(null)}},[]),W=A.useCallback(async(E,$)=>{u($),f(null);try{const D=await(await fetch("/api/claude-accounts/admin",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(E)})).json().catch(()=>null);return D!=null&&D.ok||f((D==null?void 0:D.detail)||(D==null?void 0:D.reason)||"command failed"),D}catch{return f("server unreachable"),null}finally{u(null)}},[]);A.useEffect(()=>(P(!0),x.current=window.setInterval(()=>P(!1),u3),()=>{x.current!=null&&window.clearInterval(x.current)}),[P]),A.useEffect(()=>{const E=window.setInterval(()=>y(Math.floor(Date.now()/1e3)),3e4);return()=>window.clearInterval(E)},[]);const B=((J=s==null?void 0:s.settings["autoswitch.threshold"])==null?void 0:J.value)??"90",j=(F=n==null?void 0:n.accounts)==null?void 0:F.find(E=>E.active),K=j!=null&&j.lanes.length?Math.max(...j.lanes.map(E=>E.pct)):null,U=K!=null&&K>=Number(B)-15,ee=async E=>{p(E),f(null);try{const se=await(await fetch("/api/claude-accounts/switch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({account:E})})).json().catch(()=>null);se!=null&&se.ok||f((se==null?void 0:se.output)||(se==null?void 0:se.reason)||"switch failed"),await P(!0)}catch{f("server unreachable")}finally{p(null)}};return g.jsxs("div",{className:"accounts-panel","aria-label":"Claude accounts",children:[g.jsxs("div",{className:"ap-header",children:[g.jsx("h3",{children:"Accounts"}),g.jsxs("div",{className:"ap-header-right",children:[g.jsx("button",{type:"button",className:"btn ap-add",onClick:()=>b(!0),title:"Sign in to another Claude account, or paste one shared from another deck",children:"+"}),g.jsx("button",{type:"button",className:"btn ap-refresh",onClick:()=>P(!0),title:"Reload from claude-swap",children:"↻"}),g.jsx("button",{type:"button",className:"btn icon-btn",onClick:e,"aria-label":"Close accounts panel",title:"Close (A)",children:"×"})]})]}),n==null?g.jsx("div",{className:"ap-empty",children:"Checking…"}):n.ok?g.jsxs(g.Fragment,{children:[(Y=n.accounts)==null?void 0:Y.map(E=>g.jsxs("div",{className:`ap-account${E.active?" active":""}${E.disabled?" disabled":""}`,children:[g.jsxs("div",{className:"ap-account-head",children:[g.jsx("span",{className:"ap-num",children:E.num}),E.alias&&g.jsx("span",{className:"ap-alias",children:E.alias}),g.jsx("span",{className:"ap-email",title:E.org??void 0,children:E.email}),g.jsx("button",{type:"button",className:`ap-more${C===E.num?" on":""}`,"aria-label":`Manage account ${E.num}`,"aria-expanded":C===E.num,title:"Share, rename, move, remove",onClick:()=>{_(C===E.num?null:E.num),N(E.alias??""),I(null),O(null),L(!1)},children:"⋯"}),E.active?g.jsx("span",{className:"ap-badge-active",children:"● active"}):g.jsx("button",{type:"button",className:"btn ap-switch",disabled:c!=null||E.disabled,onClick:()=>ee(E.num),title:E.disabled?"Held out of rotation":`Switch to ${E.alias??E.email}`,children:c===E.num?"…":"switch"})]}),E.lanes.length>0?E.lanes.map($=>g.jsx(p3,{lane:$,nowSec:m},$.id)):g.jsx("div",{className:"ap-hint",children:"No usage recorded yet."}),g.jsxs("div",{className:"ap-meta",children:[E.error&&(()=>{const $=h3(E.error);return g.jsxs(g.Fragment,{children:[g.jsx("span",{className:"ap-err",title:$.hint,children:$.text}),$.fixable&&g.jsx("button",{type:"button",className:"ap-fix",onClick:()=>b(!0),title:"Open the sign-in dialog. Signing in as this account replaces its stored login in place.",children:"sign in again"})]})})(),((s==null?void 0:s.enabled)||(s==null?void 0:s.external))&&!E.active&&g.jsx("button",{type:"button",className:"ap-rotate",disabled:l!=null,onClick:()=>q({action:"account",account:E.num,enabled:E.disabled},`rot-${E.num}`).then(()=>P(!0)),title:E.disabled?"Return this account to auto-rotation":"Hold this account out of auto-rotation",children:E.disabled?"held out":"in rotation"}),E.fetchedAt?g.jsxs("span",{className:`ap-age${E.stale?" ap-stale":""}`,title:"When claude-swap last read this account's usage, and when it plans to read it again. It sets that interval itself — 3 minutes at the fastest, wider while an account is recovering from a rate limit — and every surface, including `cswap watch`, follows the same plan.",children:["collected ",vx(E.fetchedAt,m),f3(E.nextAt,m)]}):g.jsx("span",{className:"ap-age ap-stale",title:"claude-swap has not read this account yet",children:"never collected"})]}),C===E.num&&g.jsxs("div",{className:"ap-manage",children:[g.jsxs("div",{className:"ap-manage-row",children:[g.jsx("span",{className:"ap-manage-label",children:"name"}),g.jsx("input",{className:"ap-manage-input",type:"text",value:k,onChange:$=>N($.target.value),onKeyDown:$=>{$.key==="Enter"&&W({action:"alias",account:E.num,alias:k},`alias-${E.num}`).then(()=>P(!0))},placeholder:"no alias",spellCheck:!1,"aria-label":`Alias for account ${E.num}`}),g.jsx("button",{type:"button",className:"ap-manage-btn",disabled:l!=null||k.trim()===(E.alias??""),onClick:()=>W({action:"alias",account:E.num,alias:k},`alias-${E.num}`).then(()=>P(!0)),title:"A short name to show instead of the email",children:"save"})]}),g.jsxs("div",{className:"ap-manage-row",children:[g.jsx("span",{className:"ap-manage-label",children:"slot"}),g.jsx("span",{className:"ap-field",children:g.jsx("select",{"aria-label":`Slot for account ${E.num}`,value:String(E.num),disabled:l!=null,onChange:$=>W({action:"move",account:E.num,slot:Number($.target.value)},`move-${E.num}`).then(()=>P(!0)),children:m3(n.accounts??[]).map($=>g.jsx("option",{value:$,children:$},$))})}),g.jsx("span",{className:"ap-manage-hint",children:"rotation order"})]}),g.jsxs("div",{className:"ap-manage-row",children:[g.jsx("button",{type:"button",className:"ap-manage-btn",disabled:l!=null,title:"Copy this account to another agents-deck. The share carries a live login and expires in 10 minutes.",onClick:async()=>{L(!1);const $=await W({action:"share",account:E.num},`share-${E.num}`);$!=null&&$.ok&&O({num:E.num,blob:$.blob,expiresAt:$.expiresAt})},children:"share…"}),g.jsx("button",{type:"button",className:`ap-manage-btn danger${T===E.num?" armed":""}`,disabled:l!=null,title:T===E.num?"This deletes the stored credentials for this account":"Remove this account from claude-swap",onClick:()=>{if(T!==E.num){I(E.num),window.setTimeout(()=>I($=>$===E.num?null:$),4e3);return}I(null),W({action:"remove",account:E.num},`rm-${E.num}`).then(()=>{_(null),P(!0)})},children:T===E.num?"confirm remove":"remove"})]}),(M==null?void 0:M.num)===E.num&&(()=>{const $=v3(M.expiresAt,m),se=$.tone==="gone";return g.jsxs("div",{className:`ap-share${se?" expired":""}`,children:[g.jsx("code",{className:"ap-share-blob",children:M.blob}),g.jsxs("div",{className:"ap-share-foot",children:[g.jsx("button",{type:"button",className:"ap-manage-btn",disabled:l!=null,onClick:async()=>{if(se){L(!1);const D=await W({action:"share",account:E.num},`share-${E.num}`);D!=null&&D.ok&&O({num:E.num,blob:D.blob,expiresAt:D.expiresAt});return}await g3(M.blob)&&(L(!0),window.setTimeout(()=>L(!1),1800))},children:se?"make a new share":H?"copied":"copy"}),g.jsxs("span",{className:"ap-manage-hint",children:["carries a live login · ",g.jsx("span",{className:`ap-share-expiry ${$.tone}`,children:$.text})]})]})]})})()]})]},E.num)),(s==null?void 0:s.ok)&&g.jsxs("div",{className:"ap-auto",children:[g.jsxs("div",{className:"ap-auto-head",children:[g.jsx("span",{className:"ap-auto-title",children:"Auto-switch"}),g.jsxs("span",{className:"ap-auto-ctl",children:[K!=null&&g.jsxs("span",{className:`ap-auto-now${U?" near":""}`,children:[Math.round(K),"%"]}),g.jsx("span",{className:"ap-field",title:"Switch once the active account passes this much of its limit",children:g.jsx("select",{"aria-label":"Switch threshold",value:B,disabled:l!=null,onChange:E=>q({action:"setting",key:"autoswitch.threshold",value:E.target.value},"threshold").then(()=>P(!0)),children:c3.map(E=>g.jsxs("option",{value:E,children:[E,"%"]},E))})}),g.jsxs("button",{type:"button",className:`ap-auto-state toggle${s.enabled?" live":""}`,role:"switch","aria-checked":s.enabled,disabled:l!=null,onClick:()=>q({action:"enable",enabled:!s.enabled},"enable").then(()=>P(!0)),title:s.enabled?"Stop switching accounts automatically":"Switch accounts automatically when the active one nears its limit",children:[g.jsx("i",{className:s.enabled?"ap-pulse":"ap-dot","aria-hidden":!0}),s.enabled?"on":"off"]})]})]}),s.external&&g.jsxs("p",{className:"ap-auto-note",children:[g.jsx("i",{className:"ap-pulse","aria-hidden":!0})," A ",g.jsx("code",{children:"cswap auto"})," loop in your terminal is doing the switching. The deck stands down while it runs",s.enabled?" — this toggle takes over when you stop it.":"."]}),s.lastTick&&g.jsx("div",{className:"ap-auto-foot",children:g.jsxs("span",{className:"ap-auto-result",children:["checked ",vx(s.lastTick.at,m)]})})]}),h&&g.jsx("div",{className:"ap-failure",children:h}),g.jsx("p",{className:"ap-footnote",title:"Anthropic's usage endpoint allows roughly 28–30 requests per hour per account, shared by every tool on this machine — polling it from here would rate-limit your account. So the deck never fetches: it asks claude-swap to collect while this panel is open, at most once every three minutes, and claude-swap decides whether that touches the network at all.",children:"Collected by claude-swap while this panel is open."})]}):g.jsx("div",{className:"ap-empty",children:n.reason==="no_cswap"?g.jsxs(g.Fragment,{children:[g.jsx("span",{children:"claude-swap isn't installed."}),g.jsx("span",{className:"ap-hint",children:"This panel reads the account store claude-swap keeps — without it there is nothing to show. It is a separate tool, published on PyPI, so it does not come with this package."}),n.hint&&g.jsx("code",{className:"ap-cmd",children:n.hint}),g.jsxs("span",{className:"ap-hint",children:["Then add an account with the ",g.jsx("strong",{children:"+"})," button above."]})]}):n.reason==="no_accounts"?g.jsxs(g.Fragment,{children:[g.jsx("span",{children:"No accounts added yet."}),g.jsxs("span",{className:"ap-hint",children:["claude-swap is installed but has nothing in its store. Use the ",g.jsx("strong",{children:"+"})," above to sign one in, or to paste one shared from another deck."]})]}):g.jsxs(g.Fragment,{children:[g.jsx("span",{children:"Couldn't read the account store."}),g.jsxs("span",{className:"ap-hint",children:["claude-swap is installed, but its store could not be read",n.reason?` (${n.reason})`:"","."]})]})}),S&&g.jsx(l3,{onClose:()=>b(!1),onChanged:()=>P(!0)})]})}const w3=3e4;function x3({bundle:e,running:n,lastTried:r}){return!n||e===n?!1:r!==n}function _3({bundle:e,running:n,pending:r,lastTried:s}){return n?x3({bundle:e,running:n,lastTried:s})?"reload":r==null||r&&r!==n?"wait":"confirm":"wait"}function S3(e){return!e||e.state!=="failed"?null:`${typeof e.at=="number"?e.at:0}:${e.error??""}`}function b3({asked:e,reported:n}){return n?n!==e:!1}function k3(e){const n=e.thresholdMs??w3;return!e.enabled||e.kind!=="restart"||!e.canRestart?{idleSince:null,restart:!1}:e.busy?{idleSince:null,restart:!1}:e.idleSince==null?{idleSince:e.now,restart:!1}:e.now<e.idleSince?{idleSince:e.now,restart:!1}:{idleSince:e.idleSince,restart:e.now-e.idleSince>=n}}function E3(e){return e.ctrlKey||e.metaKey||e.altKey}const N3=new Set(["button","checkbox","color","file","image","radio","range","reset","submit"]),C3=new Set(["INPUT","TEXTAREA","SELECT","OPTION","BUTTON","SUMMARY","A"]),T3=new Set(["button","checkbox","combobox","link","listbox","menu","menubar","menuitem","menuitemcheckbox","menuitemradio","option","radio","searchbox","slider","spinbutton","switch","tab","textbox","treeitem"]);function MN(e){return typeof e.tagName=="string"?e.tagName.toUpperCase():""}function PN(e){if(!e)return!1;if(e.isContentEditable)return!0;const n=MN(e);return n==="TEXTAREA"?!0:n!=="INPUT"?!1:!N3.has(String(e.type??"text").toLowerCase())}function R3(e){if(!e)return!1;if(PN(e)||C3.has(MN(e)))return!0;const n=typeof e.role=="string"?e.role.trim().toLowerCase():"";return n!==""&&n.split(/\s+/).some(r=>T3.has(r))}function hd(e,n){if(n.size!==0)for(const r of Array.from(e.keys()))n.has(r)||e.delete(r)}function j3(e){const n=new Set;for(const r of e)n.add(r.id),n.add(`group:${r.sessionId}`);return n}const A3=40,I3=120;function M3(e,n){let r=null,s=0,o=Number.NEGATIVE_INFINITY;const l=()=>{r=null,o=n.now(),e()},u=()=>{r!=null&&(n.clearTimeout(r),r=null)},c=(p,h,f)=>{if(r!=null){if(s<=p)return;u()}const m=Math.min(f,Math.max(0,p-h));s=p,r=n.setTimeout(l,m)};return{live(p=A3){const h=n.now(),f=Math.max(o+p,h);if(f<=h){u(),l();return}c(f,h,p)},replay(p=I3){u(),s=n.now()+p,r=n.setTimeout(l,p)},flush(){u(),l()},cancel(){u()}}}function P3(){let e=!1,n=[];return{get paused(){return e},get size(){return n.length},accept(r){return e?(n.push(r),!1):!0},setPaused(r){if(e=r,r||n.length===0)return[];const s=n;return n=[],s}}}const O3="1",yx="agent-dag.schema",L3=["agent-dag.layout","agent-dag.viewport"];function ON(e){if(typeof window>"u")return null;try{return window.localStorage.getItem(e)}catch{return null}}function q3(e,n=O3){let r=null;try{r=e.getItem(yx)}catch{return[]}if(r===n)return[];const s=[];if(r!==null)for(const o of L3)try{e.getItem(o)!==null&&(e.removeItem(o),s.push(o))}catch{}try{e.setItem(yx,n)}catch{}return s}function $3(){let e=0;return{begin(){const n=++e;return()=>n===e},cancel(){e++}}}function D3(e,n=new Date){return new Date(Date.UTC(n.getFullYear(),n.getMonth(),n.getDate()-(e-1))).toISOString().slice(0,10).replace(/-/g,"")}function Ui(e){return e<1e3?`${e}`:e<1e6?`${(e/1e3).toFixed(1)}k`:e<1e9?`${(e/1e6).toFixed(2)}M`:`${(e/1e9).toFixed(2)}B`}function wx(e){return e.replace(/^anthropic\./,"").replace(/^claude-/,"").replace(/-\d{8}$/,"")}function jl(e){const n=e.toLowerCase();return n.includes("opus")?"#c4b5fd":n.includes("sonnet")?"#7dd3fc":n.includes("haiku")?"#86efac":n.includes("gpt-5")||n.includes("gpt5")?"#fcd34d":n.includes("gpt")?"#fca5a5":n.includes("gemini")?"#a5b4fc":n.includes("codex")?"#fdba74":"#94a3b8"}const F3=[7,14,30,90];function z3(e){const[n,r]=A.useState(null),[s,o]=A.useState(!1),l=A.useRef($3()).current,u=(c=!1)=>{const p=l.begin();o(!0);const f=`/api/ccusage?since=${D3(e)}${c?"&refresh=1":""}`;fetch(f).then(m=>m.json()).then(m=>{p()&&r(m)}).catch(()=>{p()&&r({ok:!1,error:"request failed"})}).finally(()=>{p()&&o(!1)})};return A.useEffect(()=>(u(!1),()=>l.cancel()),[e]),{data:n,loading:s,reload:()=>u(!0)}}function B3({onClose:e}){var b,k;const[n,r]=A.useState(30),[s,o]=A.useState(null),{data:l,loading:u,reload:c}=z3(n);A.useEffect(()=>{const N=T=>{T.key==="Escape"&&e()};return window.addEventListener("keydown",N),()=>window.removeEventListener("keydown",N)},[e]);const p=l!=null&&l.ok?l.days??[]:[],h=A.useMemo(()=>p.reduce((N,T)=>Math.max(N,T.totalCost),0),[p]),{totalCost:f,totalTok:m,inOut:y,cacheRead:x,modelCosts:C}=A.useMemo(()=>{let N=0,T=0,I=0,M=0;const O=new Map;for(const H of p){N+=H.totalCost,T+=H.totalTokens,I+=H.inputTokens+H.outputTokens,M+=H.cacheReadTokens;for(const L of H.modelBreakdowns)O.set(L.modelName,(O.get(L.modelName)??0)+L.cost)}return{totalCost:N,totalTok:T,inOut:I,cacheRead:M,modelCosts:O}},[p]),_=A.useMemo(()=>Array.from(C.entries()).sort((N,T)=>T[1]-N[1]),[C]),S=s?p.find(N=>N.period===s)??null:null;return g.jsx("div",{className:"uh-backdrop",onClick:e,role:"presentation",children:g.jsxs("div",{className:"uh-modal",onClick:N=>N.stopPropagation(),role:"dialog","aria-label":"Usage history",children:[g.jsxs("header",{className:"uh-head",children:[g.jsxs("div",{className:"uh-titlewrap",children:[g.jsx("div",{className:"uh-title",children:"Usage history"}),g.jsx("div",{className:"uh-sub",children:"via ccusage · local Claude / Codex logs"})]}),g.jsx("div",{className:"uh-range",role:"tablist","aria-label":"Range",children:F3.map(N=>g.jsxs("button",{role:"tab","aria-selected":n===N,className:`uh-range-btn${n===N?" on":""}`,onClick:()=>{r(N),o(null)},children:[N,"d"]},N))}),g.jsx("button",{className:"btn icon-btn uh-reload",onClick:c,title:"Re-run ccusage","aria-label":"Reload",children:"↻"}),g.jsx("button",{className:"uh-close",onClick:e,"aria-label":"Close",children:"×"})]}),u&&p.length===0?g.jsx("div",{className:"uh-status",children:"running ccusage… (first run downloads the package)"}):l&&!l.ok?g.jsxs("div",{className:"uh-status uh-err",children:["ccusage failed: ",l.error]}):p.length===0?g.jsx("div",{className:"uh-status",children:"no usage in this range"}):g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:"uh-totals",children:[g.jsx(Al,{label:"total cost",val:ze(f),accent:!0}),g.jsx(Al,{label:"tokens",val:Ui(m)}),g.jsx(Al,{label:"input+output",val:Ui(y)}),g.jsx(Al,{label:"cache reads",val:Ui(x)})]}),g.jsx("div",{className:"uh-chart",role:"img","aria-label":"Daily cost by model",children:p.map(N=>{const T=h>0?N.totalCost/h*100:0,I=N.period===s;return g.jsxs("button",{className:`uh-bar-col${I?" sel":""}`,onClick:()=>o(I?null:N.period),title:`${N.period} · ${ze(N.totalCost)}`,style:{flexBasis:`${100/p.length}%`},children:[g.jsx("div",{className:"uh-bar",style:{height:`${Math.max(T,N.totalCost>0?2:0)}%`},children:N.modelBreakdowns.slice().sort((M,O)=>O.cost-M.cost).map(M=>{const O=N.totalCost>0?M.cost/N.totalCost*100:0;return g.jsx("div",{className:"uh-bar-seg",style:{height:`${O}%`,background:jl(M.modelName)}},M.modelName)})}),g.jsx("span",{className:"uh-bar-label",children:N.period.slice(5)})]},N.period)})}),g.jsx("div",{className:"uh-legend",children:_.map(([N,T])=>g.jsxs("span",{className:"uh-legend-item",children:[g.jsx("span",{className:"uh-legend-dot",style:{background:jl(N)}}),wx(N)," ",g.jsx("span",{className:"uh-legend-cost",children:ze(T)})]},N))}),S&&g.jsxs("div",{className:"uh-detail",children:[g.jsxs("div",{className:"uh-detail-head",children:[g.jsx("span",{className:"uh-detail-date",children:S.period}),g.jsx("span",{className:"uh-detail-cost",children:ze(S.totalCost)}),(k=(b=S.metadata)==null?void 0:b.agents)!=null&&k.length?g.jsx("span",{className:"uh-detail-agents",children:S.metadata.agents.join(" · ")}):null]}),g.jsxs("div",{className:"uh-detail-mini",children:[g.jsx(Il,{label:"input",val:Ui(S.inputTokens)}),g.jsx(Il,{label:"output",val:Ui(S.outputTokens)}),g.jsx(Il,{label:"cache write",val:Ui(S.cacheCreationTokens)}),g.jsx(Il,{label:"cache read",val:Ui(S.cacheReadTokens)})]}),g.jsx("div",{className:"uh-detail-models",children:S.modelBreakdowns.slice().sort((N,T)=>T.cost-N.cost).map(N=>{const T=S.totalCost>0?N.cost/S.totalCost*100:0;return g.jsxs("div",{className:"uh-model-row",children:[g.jsxs("span",{className:"uh-model-name",children:[g.jsx("span",{className:"uh-legend-dot",style:{background:jl(N.modelName)}}),wx(N.modelName)]}),g.jsx("span",{className:"uh-model-bar",children:g.jsx("span",{className:"uh-model-bar-fill",style:{width:`${T}%`,background:jl(N.modelName)}})}),g.jsx("span",{className:"uh-model-cost",children:ze(N.cost)})]},N.modelName)})})]})]})]})})}function Al({label:e,val:n,accent:r}){return g.jsxs("div",{className:"uh-stat",children:[g.jsx("span",{className:`uh-stat-val${r?" accent":""}`,children:n}),g.jsx("span",{className:"uh-stat-label",children:e})]})}function Il({label:e,val:n}){return g.jsxs("div",{className:"uh-ministat",children:[g.jsx("span",{className:"uh-ministat-val",children:n}),g.jsx("span",{className:"uh-ministat-label",children:e})]})}function bv(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var pd,xx;function U3(){if(xx)return pd;xx=1;function e(){this.__data__=[],this.size=0}return pd=e,pd}var md,_x;function eo(){if(_x)return md;_x=1;function e(n,r){return n===r||n!==n&&r!==r}return md=e,md}var gd,Sx;function iu(){if(Sx)return gd;Sx=1;var e=eo();function n(r,s){for(var o=r.length;o--;)if(e(r[o][0],s))return o;return-1}return gd=n,gd}var vd,bx;function H3(){if(bx)return vd;bx=1;var e=iu(),n=Array.prototype,r=n.splice;function s(o){var l=this.__data__,u=e(l,o);if(u<0)return!1;var c=l.length-1;return u==c?l.pop():r.call(l,u,1),--this.size,!0}return vd=s,vd}var yd,kx;function W3(){if(kx)return yd;kx=1;var e=iu();function n(r){var s=this.__data__,o=e(s,r);return o<0?void 0:s[o][1]}return yd=n,yd}var wd,Ex;function V3(){if(Ex)return wd;Ex=1;var e=iu();function n(r){return e(this.__data__,r)>-1}return wd=n,wd}var xd,Nx;function G3(){if(Nx)return xd;Nx=1;var e=iu();function n(r,s){var o=this.__data__,l=e(o,r);return l<0?(++this.size,o.push([r,s])):o[l][1]=s,this}return xd=n,xd}var _d,Cx;function su(){if(Cx)return _d;Cx=1;var e=U3(),n=H3(),r=W3(),s=V3(),o=G3();function l(u){var c=-1,p=u==null?0:u.length;for(this.clear();++c<p;){var h=u[c];this.set(h[0],h[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=r,l.prototype.has=s,l.prototype.set=o,_d=l,_d}var Sd,Tx;function Y3(){if(Tx)return Sd;Tx=1;var e=su();function n(){this.__data__=new e,this.size=0}return Sd=n,Sd}var bd,Rx;function K3(){if(Rx)return bd;Rx=1;function e(n){var r=this.__data__,s=r.delete(n);return this.size=r.size,s}return bd=e,bd}var kd,jx;function X3(){if(jx)return kd;jx=1;function e(n){return this.__data__.get(n)}return kd=e,kd}var Ed,Ax;function Q3(){if(Ax)return Ed;Ax=1;function e(n){return this.__data__.has(n)}return Ed=e,Ed}var Nd,Ix;function LN(){if(Ix)return Nd;Ix=1;var e=typeof gl=="object"&&gl&&gl.Object===Object&≷return Nd=e,Nd}var Cd,Mx;function tr(){if(Mx)return Cd;Mx=1;var e=LN(),n=typeof self=="object"&&self&&self.Object===Object&&self,r=e||n||Function("return this")();return Cd=r,Cd}var Td,Px;function to(){if(Px)return Td;Px=1;var e=tr(),n=e.Symbol;return Td=n,Td}var Rd,Ox;function Z3(){if(Ox)return Rd;Ox=1;var e=to(),n=Object.prototype,r=n.hasOwnProperty,s=n.toString,o=e?e.toStringTag:void 0;function l(u){var c=r.call(u,o),p=u[o];try{u[o]=void 0;var h=!0}catch{}var f=s.call(u);return h&&(c?u[o]=p:delete u[o]),f}return Rd=l,Rd}var jd,Lx;function J3(){if(Lx)return jd;Lx=1;var e=Object.prototype,n=e.toString;function r(s){return n.call(s)}return jd=r,jd}var Ad,qx;function Qi(){if(qx)return Ad;qx=1;var e=to(),n=Z3(),r=J3(),s="[object Null]",o="[object Undefined]",l=e?e.toStringTag:void 0;function u(c){return c==null?c===void 0?o:s:l&&l in Object(c)?n(c):r(c)}return Ad=u,Ad}var Id,$x;function jn(){if($x)return Id;$x=1;function e(n){var r=typeof n;return n!=null&&(r=="object"||r=="function")}return Id=e,Id}var Md,Dx;function fa(){if(Dx)return Md;Dx=1;var e=Qi(),n=jn(),r="[object AsyncFunction]",s="[object Function]",o="[object GeneratorFunction]",l="[object Proxy]";function u(c){if(!n(c))return!1;var p=e(c);return p==s||p==o||p==r||p==l}return Md=u,Md}var Pd,Fx;function eL(){if(Fx)return Pd;Fx=1;var e=tr(),n=e["__core-js_shared__"];return Pd=n,Pd}var Od,zx;function tL(){if(zx)return Od;zx=1;var e=eL(),n=(function(){var s=/[^.]+$/.exec(e&&e.keys&&e.keys.IE_PROTO||"");return s?"Symbol(src)_1."+s:""})();function r(s){return!!n&&n in s}return Od=r,Od}var Ld,Bx;function qN(){if(Bx)return Ld;Bx=1;var e=Function.prototype,n=e.toString;function r(s){if(s!=null){try{return n.call(s)}catch{}try{return s+""}catch{}}return""}return Ld=r,Ld}var qd,Ux;function nL(){if(Ux)return qd;Ux=1;var e=fa(),n=tL(),r=jn(),s=qN(),o=/[\\^$.*+?()[\]{}|]/g,l=/^\[object .+?Constructor\]$/,u=Function.prototype,c=Object.prototype,p=u.toString,h=c.hasOwnProperty,f=RegExp("^"+p.call(h).replace(o,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function m(y){if(!r(y)||n(y))return!1;var x=e(y)?f:l;return x.test(s(y))}return qd=m,qd}var $d,Hx;function rL(){if(Hx)return $d;Hx=1;function e(n,r){return n==null?void 0:n[r]}return $d=e,$d}var Dd,Wx;function Zi(){if(Wx)return Dd;Wx=1;var e=nL(),n=rL();function r(s,o){var l=n(s,o);return e(l)?l:void 0}return Dd=r,Dd}var Fd,Vx;function kv(){if(Vx)return Fd;Vx=1;var e=Zi(),n=tr(),r=e(n,"Map");return Fd=r,Fd}var zd,Gx;function ou(){if(Gx)return zd;Gx=1;var e=Zi(),n=e(Object,"create");return zd=n,zd}var Bd,Yx;function iL(){if(Yx)return Bd;Yx=1;var e=ou();function n(){this.__data__=e?e(null):{},this.size=0}return Bd=n,Bd}var Ud,Kx;function sL(){if(Kx)return Ud;Kx=1;function e(n){var r=this.has(n)&&delete this.__data__[n];return this.size-=r?1:0,r}return Ud=e,Ud}var Hd,Xx;function oL(){if(Xx)return Hd;Xx=1;var e=ou(),n="__lodash_hash_undefined__",r=Object.prototype,s=r.hasOwnProperty;function o(l){var u=this.__data__;if(e){var c=u[l];return c===n?void 0:c}return s.call(u,l)?u[l]:void 0}return Hd=o,Hd}var Wd,Qx;function aL(){if(Qx)return Wd;Qx=1;var e=ou(),n=Object.prototype,r=n.hasOwnProperty;function s(o){var l=this.__data__;return e?l[o]!==void 0:r.call(l,o)}return Wd=s,Wd}var Vd,Zx;function lL(){if(Zx)return Vd;Zx=1;var e=ou(),n="__lodash_hash_undefined__";function r(s,o){var l=this.__data__;return this.size+=this.has(s)?0:1,l[s]=e&&o===void 0?n:o,this}return Vd=r,Vd}var Gd,Jx;function uL(){if(Jx)return Gd;Jx=1;var e=iL(),n=sL(),r=oL(),s=aL(),o=lL();function l(u){var c=-1,p=u==null?0:u.length;for(this.clear();++c<p;){var h=u[c];this.set(h[0],h[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=r,l.prototype.has=s,l.prototype.set=o,Gd=l,Gd}var Yd,e1;function cL(){if(e1)return Yd;e1=1;var e=uL(),n=su(),r=kv();function s(){this.size=0,this.__data__={hash:new e,map:new(r||n),string:new e}}return Yd=s,Yd}var Kd,t1;function dL(){if(t1)return Kd;t1=1;function e(n){var r=typeof n;return r=="string"||r=="number"||r=="symbol"||r=="boolean"?n!=="__proto__":n===null}return Kd=e,Kd}var Xd,n1;function au(){if(n1)return Xd;n1=1;var e=dL();function n(r,s){var o=r.__data__;return e(s)?o[typeof s=="string"?"string":"hash"]:o.map}return Xd=n,Xd}var Qd,r1;function fL(){if(r1)return Qd;r1=1;var e=au();function n(r){var s=e(this,r).delete(r);return this.size-=s?1:0,s}return Qd=n,Qd}var Zd,i1;function hL(){if(i1)return Zd;i1=1;var e=au();function n(r){return e(this,r).get(r)}return Zd=n,Zd}var Jd,s1;function pL(){if(s1)return Jd;s1=1;var e=au();function n(r){return e(this,r).has(r)}return Jd=n,Jd}var ef,o1;function mL(){if(o1)return ef;o1=1;var e=au();function n(r,s){var o=e(this,r),l=o.size;return o.set(r,s),this.size+=o.size==l?0:1,this}return ef=n,ef}var tf,a1;function Ev(){if(a1)return tf;a1=1;var e=cL(),n=fL(),r=hL(),s=pL(),o=mL();function l(u){var c=-1,p=u==null?0:u.length;for(this.clear();++c<p;){var h=u[c];this.set(h[0],h[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=r,l.prototype.has=s,l.prototype.set=o,tf=l,tf}var nf,l1;function gL(){if(l1)return nf;l1=1;var e=su(),n=kv(),r=Ev(),s=200;function o(l,u){var c=this.__data__;if(c instanceof e){var p=c.__data__;if(!n||p.length<s-1)return p.push([l,u]),this.size=++c.size,this;c=this.__data__=new r(p)}return c.set(l,u),this.size=c.size,this}return nf=o,nf}var rf,u1;function lu(){if(u1)return rf;u1=1;var e=su(),n=Y3(),r=K3(),s=X3(),o=Q3(),l=gL();function u(c){var p=this.__data__=new e(c);this.size=p.size}return u.prototype.clear=n,u.prototype.delete=r,u.prototype.get=s,u.prototype.has=o,u.prototype.set=l,rf=u,rf}var sf,c1;function Nv(){if(c1)return sf;c1=1;function e(n,r){for(var s=-1,o=n==null?0:n.length;++s<o&&r(n[s],s,n)!==!1;);return n}return sf=e,sf}var of,d1;function $N(){if(d1)return of;d1=1;var e=Zi(),n=(function(){try{var r=e(Object,"defineProperty");return r({},"",{}),r}catch{}})();return of=n,of}var af,f1;function uu(){if(f1)return af;f1=1;var e=$N();function n(r,s,o){s=="__proto__"&&e?e(r,s,{configurable:!0,enumerable:!0,value:o,writable:!0}):r[s]=o}return af=n,af}var lf,h1;function cu(){if(h1)return lf;h1=1;var e=uu(),n=eo(),r=Object.prototype,s=r.hasOwnProperty;function o(l,u,c){var p=l[u];(!(s.call(l,u)&&n(p,c))||c===void 0&&!(u in l))&&e(l,u,c)}return lf=o,lf}var uf,p1;function ha(){if(p1)return uf;p1=1;var e=cu(),n=uu();function r(s,o,l,u){var c=!l;l||(l={});for(var p=-1,h=o.length;++p<h;){var f=o[p],m=u?u(l[f],s[f],f,l,s):void 0;m===void 0&&(m=s[f]),c?n(l,f,m):e(l,f,m)}return l}return uf=r,uf}var cf,m1;function vL(){if(m1)return cf;m1=1;function e(n,r){for(var s=-1,o=Array(n);++s<n;)o[s]=r(s);return o}return cf=e,cf}var df,g1;function hr(){if(g1)return df;g1=1;function e(n){return n!=null&&typeof n=="object"}return df=e,df}var ff,v1;function yL(){if(v1)return ff;v1=1;var e=Qi(),n=hr(),r="[object Arguments]";function s(o){return n(o)&&e(o)==r}return ff=s,ff}var hf,y1;function pa(){if(y1)return hf;y1=1;var e=yL(),n=hr(),r=Object.prototype,s=r.hasOwnProperty,o=r.propertyIsEnumerable,l=e((function(){return arguments})())?e:function(u){return n(u)&&s.call(u,"callee")&&!o.call(u,"callee")};return hf=l,hf}var pf,w1;function _t(){if(w1)return pf;w1=1;var e=Array.isArray;return pf=e,pf}var Vo={exports:{}},mf,x1;function wL(){if(x1)return mf;x1=1;function e(){return!1}return mf=e,mf}Vo.exports;var _1;function no(){return _1||(_1=1,(function(e,n){var r=tr(),s=wL(),o=n&&!n.nodeType&&n,l=o&&!0&&e&&!e.nodeType&&e,u=l&&l.exports===o,c=u?r.Buffer:void 0,p=c?c.isBuffer:void 0,h=p||s;e.exports=h})(Vo,Vo.exports)),Vo.exports}var gf,S1;function du(){if(S1)return gf;S1=1;var e=9007199254740991,n=/^(?:0|[1-9]\d*)$/;function r(s,o){var l=typeof s;return o=o??e,!!o&&(l=="number"||l!="symbol"&&n.test(s))&&s>-1&&s%1==0&&s<o}return gf=r,gf}var vf,b1;function Cv(){if(b1)return vf;b1=1;var e=9007199254740991;function n(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=e}return vf=n,vf}var yf,k1;function xL(){if(k1)return yf;k1=1;var e=Qi(),n=Cv(),r=hr(),s="[object Arguments]",o="[object Array]",l="[object Boolean]",u="[object Date]",c="[object Error]",p="[object Function]",h="[object Map]",f="[object Number]",m="[object Object]",y="[object RegExp]",x="[object Set]",C="[object String]",_="[object WeakMap]",S="[object ArrayBuffer]",b="[object DataView]",k="[object Float32Array]",N="[object Float64Array]",T="[object Int8Array]",I="[object Int16Array]",M="[object Int32Array]",O="[object Uint8Array]",H="[object Uint8ClampedArray]",L="[object Uint16Array]",P="[object Uint32Array]",q={};q[k]=q[N]=q[T]=q[I]=q[M]=q[O]=q[H]=q[L]=q[P]=!0,q[s]=q[o]=q[S]=q[l]=q[b]=q[u]=q[c]=q[p]=q[h]=q[f]=q[m]=q[y]=q[x]=q[C]=q[_]=!1;function W(B){return r(B)&&n(B.length)&&!!q[e(B)]}return yf=W,yf}var wf,E1;function fu(){if(E1)return wf;E1=1;function e(n){return function(r){return n(r)}}return wf=e,wf}var Go={exports:{}};Go.exports;var N1;function Tv(){return N1||(N1=1,(function(e,n){var r=LN(),s=n&&!n.nodeType&&n,o=s&&!0&&e&&!e.nodeType&&e,l=o&&o.exports===s,u=l&&r.process,c=(function(){try{var p=o&&o.require&&o.require("util").types;return p||u&&u.binding&&u.binding("util")}catch{}})();e.exports=c})(Go,Go.exports)),Go.exports}var xf,C1;function ma(){if(C1)return xf;C1=1;var e=xL(),n=fu(),r=Tv(),s=r&&r.isTypedArray,o=s?n(s):e;return xf=o,xf}var _f,T1;function DN(){if(T1)return _f;T1=1;var e=vL(),n=pa(),r=_t(),s=no(),o=du(),l=ma(),u=Object.prototype,c=u.hasOwnProperty;function p(h,f){var m=r(h),y=!m&&n(h),x=!m&&!y&&s(h),C=!m&&!y&&!x&&l(h),_=m||y||x||C,S=_?e(h.length,String):[],b=S.length;for(var k in h)(f||c.call(h,k))&&!(_&&(k=="length"||x&&(k=="offset"||k=="parent")||C&&(k=="buffer"||k=="byteLength"||k=="byteOffset")||o(k,b)))&&S.push(k);return S}return _f=p,_f}var Sf,R1;function hu(){if(R1)return Sf;R1=1;var e=Object.prototype;function n(r){var s=r&&r.constructor,o=typeof s=="function"&&s.prototype||e;return r===o}return Sf=n,Sf}var bf,j1;function FN(){if(j1)return bf;j1=1;function e(n,r){return function(s){return n(r(s))}}return bf=e,bf}var kf,A1;function _L(){if(A1)return kf;A1=1;var e=FN(),n=e(Object.keys,Object);return kf=n,kf}var Ef,I1;function Rv(){if(I1)return Ef;I1=1;var e=hu(),n=_L(),r=Object.prototype,s=r.hasOwnProperty;function o(l){if(!e(l))return n(l);var u=[];for(var c in Object(l))s.call(l,c)&&c!="constructor"&&u.push(c);return u}return Ef=o,Ef}var Nf,M1;function Pr(){if(M1)return Nf;M1=1;var e=fa(),n=Cv();function r(s){return s!=null&&n(s.length)&&!e(s)}return Nf=r,Nf}var Cf,P1;function hi(){if(P1)return Cf;P1=1;var e=DN(),n=Rv(),r=Pr();function s(o){return r(o)?e(o):n(o)}return Cf=s,Cf}var Tf,O1;function SL(){if(O1)return Tf;O1=1;var e=ha(),n=hi();function r(s,o){return s&&e(o,n(o),s)}return Tf=r,Tf}var Rf,L1;function bL(){if(L1)return Rf;L1=1;function e(n){var r=[];if(n!=null)for(var s in Object(n))r.push(s);return r}return Rf=e,Rf}var jf,q1;function kL(){if(q1)return jf;q1=1;var e=jn(),n=hu(),r=bL(),s=Object.prototype,o=s.hasOwnProperty;function l(u){if(!e(u))return r(u);var c=n(u),p=[];for(var h in u)h=="constructor"&&(c||!o.call(u,h))||p.push(h);return p}return jf=l,jf}var Af,$1;function Ji(){if($1)return Af;$1=1;var e=DN(),n=kL(),r=Pr();function s(o){return r(o)?e(o,!0):n(o)}return Af=s,Af}var If,D1;function EL(){if(D1)return If;D1=1;var e=ha(),n=Ji();function r(s,o){return s&&e(o,n(o),s)}return If=r,If}var Yo={exports:{}};Yo.exports;var F1;function zN(){return F1||(F1=1,(function(e,n){var r=tr(),s=n&&!n.nodeType&&n,o=s&&!0&&e&&!e.nodeType&&e,l=o&&o.exports===s,u=l?r.Buffer:void 0,c=u?u.allocUnsafe:void 0;function p(h,f){if(f)return h.slice();var m=h.length,y=c?c(m):new h.constructor(m);return h.copy(y),y}e.exports=p})(Yo,Yo.exports)),Yo.exports}var Mf,z1;function BN(){if(z1)return Mf;z1=1;function e(n,r){var s=-1,o=n.length;for(r||(r=Array(o));++s<o;)r[s]=n[s];return r}return Mf=e,Mf}var Pf,B1;function UN(){if(B1)return Pf;B1=1;function e(n,r){for(var s=-1,o=n==null?0:n.length,l=0,u=[];++s<o;){var c=n[s];r(c,s,n)&&(u[l++]=c)}return u}return Pf=e,Pf}var Of,U1;function HN(){if(U1)return Of;U1=1;function e(){return[]}return Of=e,Of}var Lf,H1;function jv(){if(H1)return Lf;H1=1;var e=UN(),n=HN(),r=Object.prototype,s=r.propertyIsEnumerable,o=Object.getOwnPropertySymbols,l=o?function(u){return u==null?[]:(u=Object(u),e(o(u),function(c){return s.call(u,c)}))}:n;return Lf=l,Lf}var qf,W1;function NL(){if(W1)return qf;W1=1;var e=ha(),n=jv();function r(s,o){return e(s,n(s),o)}return qf=r,qf}var $f,V1;function Av(){if(V1)return $f;V1=1;function e(n,r){for(var s=-1,o=r.length,l=n.length;++s<o;)n[l+s]=r[s];return n}return $f=e,$f}var Df,G1;function pu(){if(G1)return Df;G1=1;var e=FN(),n=e(Object.getPrototypeOf,Object);return Df=n,Df}var Ff,Y1;function WN(){if(Y1)return Ff;Y1=1;var e=Av(),n=pu(),r=jv(),s=HN(),o=Object.getOwnPropertySymbols,l=o?function(u){for(var c=[];u;)e(c,r(u)),u=n(u);return c}:s;return Ff=l,Ff}var zf,K1;function CL(){if(K1)return zf;K1=1;var e=ha(),n=WN();function r(s,o){return e(s,n(s),o)}return zf=r,zf}var Bf,X1;function VN(){if(X1)return Bf;X1=1;var e=Av(),n=_t();function r(s,o,l){var u=o(s);return n(s)?u:e(u,l(s))}return Bf=r,Bf}var Uf,Q1;function GN(){if(Q1)return Uf;Q1=1;var e=VN(),n=jv(),r=hi();function s(o){return e(o,r,n)}return Uf=s,Uf}var Hf,Z1;function TL(){if(Z1)return Hf;Z1=1;var e=VN(),n=WN(),r=Ji();function s(o){return e(o,r,n)}return Hf=s,Hf}var Wf,J1;function RL(){if(J1)return Wf;J1=1;var e=Zi(),n=tr(),r=e(n,"DataView");return Wf=r,Wf}var Vf,e_;function jL(){if(e_)return Vf;e_=1;var e=Zi(),n=tr(),r=e(n,"Promise");return Vf=r,Vf}var Gf,t_;function YN(){if(t_)return Gf;t_=1;var e=Zi(),n=tr(),r=e(n,"Set");return Gf=r,Gf}var Yf,n_;function AL(){if(n_)return Yf;n_=1;var e=Zi(),n=tr(),r=e(n,"WeakMap");return Yf=r,Yf}var Kf,r_;function ro(){if(r_)return Kf;r_=1;var e=RL(),n=kv(),r=jL(),s=YN(),o=AL(),l=Qi(),u=qN(),c="[object Map]",p="[object Object]",h="[object Promise]",f="[object Set]",m="[object WeakMap]",y="[object DataView]",x=u(e),C=u(n),_=u(r),S=u(s),b=u(o),k=l;return(e&&k(new e(new ArrayBuffer(1)))!=y||n&&k(new n)!=c||r&&k(r.resolve())!=h||s&&k(new s)!=f||o&&k(new o)!=m)&&(k=function(N){var T=l(N),I=T==p?N.constructor:void 0,M=I?u(I):"";if(M)switch(M){case x:return y;case C:return c;case _:return h;case S:return f;case b:return m}return T}),Kf=k,Kf}var Xf,i_;function IL(){if(i_)return Xf;i_=1;var e=Object.prototype,n=e.hasOwnProperty;function r(s){var o=s.length,l=new s.constructor(o);return o&&typeof s[0]=="string"&&n.call(s,"index")&&(l.index=s.index,l.input=s.input),l}return Xf=r,Xf}var Qf,s_;function KN(){if(s_)return Qf;s_=1;var e=tr(),n=e.Uint8Array;return Qf=n,Qf}var Zf,o_;function Iv(){if(o_)return Zf;o_=1;var e=KN();function n(r){var s=new r.constructor(r.byteLength);return new e(s).set(new e(r)),s}return Zf=n,Zf}var Jf,a_;function ML(){if(a_)return Jf;a_=1;var e=Iv();function n(r,s){var o=s?e(r.buffer):r.buffer;return new r.constructor(o,r.byteOffset,r.byteLength)}return Jf=n,Jf}var eh,l_;function PL(){if(l_)return eh;l_=1;var e=/\w*$/;function n(r){var s=new r.constructor(r.source,e.exec(r));return s.lastIndex=r.lastIndex,s}return eh=n,eh}var th,u_;function OL(){if(u_)return th;u_=1;var e=to(),n=e?e.prototype:void 0,r=n?n.valueOf:void 0;function s(o){return r?Object(r.call(o)):{}}return th=s,th}var nh,c_;function XN(){if(c_)return nh;c_=1;var e=Iv();function n(r,s){var o=s?e(r.buffer):r.buffer;return new r.constructor(o,r.byteOffset,r.length)}return nh=n,nh}var rh,d_;function LL(){if(d_)return rh;d_=1;var e=Iv(),n=ML(),r=PL(),s=OL(),o=XN(),l="[object Boolean]",u="[object Date]",c="[object Map]",p="[object Number]",h="[object RegExp]",f="[object Set]",m="[object String]",y="[object Symbol]",x="[object ArrayBuffer]",C="[object DataView]",_="[object Float32Array]",S="[object Float64Array]",b="[object Int8Array]",k="[object Int16Array]",N="[object Int32Array]",T="[object Uint8Array]",I="[object Uint8ClampedArray]",M="[object Uint16Array]",O="[object Uint32Array]";function H(L,P,q){var W=L.constructor;switch(P){case x:return e(L);case l:case u:return new W(+L);case C:return n(L,q);case _:case S:case b:case k:case N:case T:case I:case M:case O:return o(L,q);case c:return new W;case p:case m:return new W(L);case h:return r(L);case f:return new W;case y:return s(L)}}return rh=H,rh}var ih,f_;function QN(){if(f_)return ih;f_=1;var e=jn(),n=Object.create,r=(function(){function s(){}return function(o){if(!e(o))return{};if(n)return n(o);s.prototype=o;var l=new s;return s.prototype=void 0,l}})();return ih=r,ih}var sh,h_;function ZN(){if(h_)return sh;h_=1;var e=QN(),n=pu(),r=hu();function s(o){return typeof o.constructor=="function"&&!r(o)?e(n(o)):{}}return sh=s,sh}var oh,p_;function qL(){if(p_)return oh;p_=1;var e=ro(),n=hr(),r="[object Map]";function s(o){return n(o)&&e(o)==r}return oh=s,oh}var ah,m_;function $L(){if(m_)return ah;m_=1;var e=qL(),n=fu(),r=Tv(),s=r&&r.isMap,o=s?n(s):e;return ah=o,ah}var lh,g_;function DL(){if(g_)return lh;g_=1;var e=ro(),n=hr(),r="[object Set]";function s(o){return n(o)&&e(o)==r}return lh=s,lh}var uh,v_;function FL(){if(v_)return uh;v_=1;var e=DL(),n=fu(),r=Tv(),s=r&&r.isSet,o=s?n(s):e;return uh=o,uh}var ch,y_;function JN(){if(y_)return ch;y_=1;var e=lu(),n=Nv(),r=cu(),s=SL(),o=EL(),l=zN(),u=BN(),c=NL(),p=CL(),h=GN(),f=TL(),m=ro(),y=IL(),x=LL(),C=ZN(),_=_t(),S=no(),b=$L(),k=jn(),N=FL(),T=hi(),I=Ji(),M=1,O=2,H=4,L="[object Arguments]",P="[object Array]",q="[object Boolean]",W="[object Date]",B="[object Error]",j="[object Function]",K="[object GeneratorFunction]",U="[object Map]",ee="[object Number]",J="[object Object]",F="[object RegExp]",Y="[object Set]",E="[object String]",$="[object Symbol]",se="[object WeakMap]",D="[object ArrayBuffer]",Q="[object DataView]",te="[object Float32Array]",ae="[object Float64Array]",ce="[object Int8Array]",me="[object Int16Array]",ge="[object Int32Array]",Pe="[object Uint8Array]",Se="[object Uint8ClampedArray]",Oe="[object Uint16Array]",Me="[object Uint32Array]",be={};be[L]=be[P]=be[D]=be[Q]=be[q]=be[W]=be[te]=be[ae]=be[ce]=be[me]=be[ge]=be[U]=be[ee]=be[J]=be[F]=be[Y]=be[E]=be[$]=be[Pe]=be[Se]=be[Oe]=be[Me]=!0,be[B]=be[j]=be[se]=!1;function De(ye,we,Ue,ut,ct,Ze){var Fe,Je=we&M,dt=we&O,Nt=we&H;if(Ue&&(Fe=ct?Ue(ye,ut,ct,Ze):Ue(ye)),Fe!==void 0)return Fe;if(!k(ye))return ye;var ot=_(ye);if(ot){if(Fe=y(ye),!Je)return u(ye,Fe)}else{var gt=m(ye),Ct=gt==j||gt==K;if(S(ye))return l(ye,Je);if(gt==J||gt==L||Ct&&!ct){if(Fe=dt||Ct?{}:C(ye),!Je)return dt?p(ye,o(Fe,ye)):c(ye,s(Fe,ye))}else{if(!be[gt])return ct?ye:{};Fe=x(ye,gt,Je)}}Ze||(Ze=new e);var Ft=Ze.get(ye);if(Ft)return Ft;Ze.set(ye,Fe),N(ye)?ye.forEach(function(ft){Fe.add(De(ft,we,Ue,ft,ye,Ze))}):b(ye)&&ye.forEach(function(ft,wt){Fe.set(wt,De(ft,we,Ue,wt,ye,Ze))});var Xe=Nt?dt?f:h:dt?I:T,vt=ot?void 0:Xe(ye);return n(vt||ye,function(ft,wt){vt&&(wt=ft,ft=ye[wt]),r(Fe,wt,De(ft,we,Ue,wt,ye,Ze))}),Fe}return ch=De,ch}var dh,w_;function zL(){if(w_)return dh;w_=1;var e=JN(),n=4;function r(s){return e(s,n)}return dh=r,dh}var fh,x_;function Mv(){if(x_)return fh;x_=1;function e(n){return function(){return n}}return fh=e,fh}var hh,__;function BL(){if(__)return hh;__=1;function e(n){return function(r,s,o){for(var l=-1,u=Object(r),c=o(r),p=c.length;p--;){var h=c[n?p:++l];if(s(u[h],h,u)===!1)break}return r}}return hh=e,hh}var ph,S_;function Pv(){if(S_)return ph;S_=1;var e=BL(),n=e();return ph=n,ph}var mh,b_;function Ov(){if(b_)return mh;b_=1;var e=Pv(),n=hi();function r(s,o){return s&&e(s,o,n)}return mh=r,mh}var gh,k_;function UL(){if(k_)return gh;k_=1;var e=Pr();function n(r,s){return function(o,l){if(o==null)return o;if(!e(o))return r(o,l);for(var u=o.length,c=s?u:-1,p=Object(o);(s?c--:++c<u)&&l(p[c],c,p)!==!1;);return o}}return gh=n,gh}var vh,E_;function mu(){if(E_)return vh;E_=1;var e=Ov(),n=UL(),r=n(e);return vh=r,vh}var yh,N_;function es(){if(N_)return yh;N_=1;function e(n){return n}return yh=e,yh}var wh,C_;function eC(){if(C_)return wh;C_=1;var e=es();function n(r){return typeof r=="function"?r:e}return wh=n,wh}var xh,T_;function tC(){if(T_)return xh;T_=1;var e=Nv(),n=mu(),r=eC(),s=_t();function o(l,u){var c=s(l)?e:n;return c(l,r(u))}return xh=o,xh}var _h,R_;function nC(){return R_||(R_=1,_h=tC()),_h}var Sh,j_;function HL(){if(j_)return Sh;j_=1;var e=mu();function n(r,s){var o=[];return e(r,function(l,u,c){s(l,u,c)&&o.push(l)}),o}return Sh=n,Sh}var bh,A_;function WL(){if(A_)return bh;A_=1;var e="__lodash_hash_undefined__";function n(r){return this.__data__.set(r,e),this}return bh=n,bh}var kh,I_;function VL(){if(I_)return kh;I_=1;function e(n){return this.__data__.has(n)}return kh=e,kh}var Eh,M_;function rC(){if(M_)return Eh;M_=1;var e=Ev(),n=WL(),r=VL();function s(o){var l=-1,u=o==null?0:o.length;for(this.__data__=new e;++l<u;)this.add(o[l])}return s.prototype.add=s.prototype.push=n,s.prototype.has=r,Eh=s,Eh}var Nh,P_;function GL(){if(P_)return Nh;P_=1;function e(n,r){for(var s=-1,o=n==null?0:n.length;++s<o;)if(r(n[s],s,n))return!0;return!1}return Nh=e,Nh}var Ch,O_;function iC(){if(O_)return Ch;O_=1;function e(n,r){return n.has(r)}return Ch=e,Ch}var Th,L_;function sC(){if(L_)return Th;L_=1;var e=rC(),n=GL(),r=iC(),s=1,o=2;function l(u,c,p,h,f,m){var y=p&s,x=u.length,C=c.length;if(x!=C&&!(y&&C>x))return!1;var _=m.get(u),S=m.get(c);if(_&&S)return _==c&&S==u;var b=-1,k=!0,N=p&o?new e:void 0;for(m.set(u,c),m.set(c,u);++b<x;){var T=u[b],I=c[b];if(h)var M=y?h(I,T,b,c,u,m):h(T,I,b,u,c,m);if(M!==void 0){if(M)continue;k=!1;break}if(N){if(!n(c,function(O,H){if(!r(N,H)&&(T===O||f(T,O,p,h,m)))return N.push(H)})){k=!1;break}}else if(!(T===I||f(T,I,p,h,m))){k=!1;break}}return m.delete(u),m.delete(c),k}return Th=l,Th}var Rh,q_;function YL(){if(q_)return Rh;q_=1;function e(n){var r=-1,s=Array(n.size);return n.forEach(function(o,l){s[++r]=[l,o]}),s}return Rh=e,Rh}var jh,$_;function Lv(){if($_)return jh;$_=1;function e(n){var r=-1,s=Array(n.size);return n.forEach(function(o){s[++r]=o}),s}return jh=e,jh}var Ah,D_;function KL(){if(D_)return Ah;D_=1;var e=to(),n=KN(),r=eo(),s=sC(),o=YL(),l=Lv(),u=1,c=2,p="[object Boolean]",h="[object Date]",f="[object Error]",m="[object Map]",y="[object Number]",x="[object RegExp]",C="[object Set]",_="[object String]",S="[object Symbol]",b="[object ArrayBuffer]",k="[object DataView]",N=e?e.prototype:void 0,T=N?N.valueOf:void 0;function I(M,O,H,L,P,q,W){switch(H){case k:if(M.byteLength!=O.byteLength||M.byteOffset!=O.byteOffset)return!1;M=M.buffer,O=O.buffer;case b:return!(M.byteLength!=O.byteLength||!q(new n(M),new n(O)));case p:case h:case y:return r(+M,+O);case f:return M.name==O.name&&M.message==O.message;case x:case _:return M==O+"";case m:var B=o;case C:var j=L&u;if(B||(B=l),M.size!=O.size&&!j)return!1;var K=W.get(M);if(K)return K==O;L|=c,W.set(M,O);var U=s(B(M),B(O),L,P,q,W);return W.delete(M),U;case S:if(T)return T.call(M)==T.call(O)}return!1}return Ah=I,Ah}var Ih,F_;function XL(){if(F_)return Ih;F_=1;var e=GN(),n=1,r=Object.prototype,s=r.hasOwnProperty;function o(l,u,c,p,h,f){var m=c&n,y=e(l),x=y.length,C=e(u),_=C.length;if(x!=_&&!m)return!1;for(var S=x;S--;){var b=y[S];if(!(m?b in u:s.call(u,b)))return!1}var k=f.get(l),N=f.get(u);if(k&&N)return k==u&&N==l;var T=!0;f.set(l,u),f.set(u,l);for(var I=m;++S<x;){b=y[S];var M=l[b],O=u[b];if(p)var H=m?p(O,M,b,u,l,f):p(M,O,b,l,u,f);if(!(H===void 0?M===O||h(M,O,c,p,f):H)){T=!1;break}I||(I=b=="constructor")}if(T&&!I){var L=l.constructor,P=u.constructor;L!=P&&"constructor"in l&&"constructor"in u&&!(typeof L=="function"&&L instanceof L&&typeof P=="function"&&P instanceof P)&&(T=!1)}return f.delete(l),f.delete(u),T}return Ih=o,Ih}var Mh,z_;function QL(){if(z_)return Mh;z_=1;var e=lu(),n=sC(),r=KL(),s=XL(),o=ro(),l=_t(),u=no(),c=ma(),p=1,h="[object Arguments]",f="[object Array]",m="[object Object]",y=Object.prototype,x=y.hasOwnProperty;function C(_,S,b,k,N,T){var I=l(_),M=l(S),O=I?f:o(_),H=M?f:o(S);O=O==h?m:O,H=H==h?m:H;var L=O==m,P=H==m,q=O==H;if(q&&u(_)){if(!u(S))return!1;I=!0,L=!1}if(q&&!L)return T||(T=new e),I||c(_)?n(_,S,b,k,N,T):r(_,S,O,b,k,N,T);if(!(b&p)){var W=L&&x.call(_,"__wrapped__"),B=P&&x.call(S,"__wrapped__");if(W||B){var j=W?_.value():_,K=B?S.value():S;return T||(T=new e),N(j,K,b,k,T)}}return q?(T||(T=new e),s(_,S,b,k,N,T)):!1}return Mh=C,Mh}var Ph,B_;function oC(){if(B_)return Ph;B_=1;var e=QL(),n=hr();function r(s,o,l,u,c){return s===o?!0:s==null||o==null||!n(s)&&!n(o)?s!==s&&o!==o:e(s,o,l,u,r,c)}return Ph=r,Ph}var Oh,U_;function ZL(){if(U_)return Oh;U_=1;var e=lu(),n=oC(),r=1,s=2;function o(l,u,c,p){var h=c.length,f=h,m=!p;if(l==null)return!f;for(l=Object(l);h--;){var y=c[h];if(m&&y[2]?y[1]!==l[y[0]]:!(y[0]in l))return!1}for(;++h<f;){y=c[h];var x=y[0],C=l[x],_=y[1];if(m&&y[2]){if(C===void 0&&!(x in l))return!1}else{var S=new e;if(p)var b=p(C,_,x,l,u,S);if(!(b===void 0?n(_,C,r|s,p,S):b))return!1}}return!0}return Oh=o,Oh}var Lh,H_;function aC(){if(H_)return Lh;H_=1;var e=jn();function n(r){return r===r&&!e(r)}return Lh=n,Lh}var qh,W_;function JL(){if(W_)return qh;W_=1;var e=aC(),n=hi();function r(s){for(var o=n(s),l=o.length;l--;){var u=o[l],c=s[u];o[l]=[u,c,e(c)]}return o}return qh=r,qh}var $h,V_;function lC(){if(V_)return $h;V_=1;function e(n,r){return function(s){return s==null?!1:s[n]===r&&(r!==void 0||n in Object(s))}}return $h=e,$h}var Dh,G_;function eq(){if(G_)return Dh;G_=1;var e=ZL(),n=JL(),r=lC();function s(o){var l=n(o);return l.length==1&&l[0][2]?r(l[0][0],l[0][1]):function(u){return u===o||e(u,o,l)}}return Dh=s,Dh}var Fh,Y_;function io(){if(Y_)return Fh;Y_=1;var e=Qi(),n=hr(),r="[object Symbol]";function s(o){return typeof o=="symbol"||n(o)&&e(o)==r}return Fh=s,Fh}var zh,K_;function qv(){if(K_)return zh;K_=1;var e=_t(),n=io(),r=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,s=/^\w*$/;function o(l,u){if(e(l))return!1;var c=typeof l;return c=="number"||c=="symbol"||c=="boolean"||l==null||n(l)?!0:s.test(l)||!r.test(l)||u!=null&&l in Object(u)}return zh=o,zh}var Bh,X_;function tq(){if(X_)return Bh;X_=1;var e=Ev(),n="Expected a function";function r(s,o){if(typeof s!="function"||o!=null&&typeof o!="function")throw new TypeError(n);var l=function(){var u=arguments,c=o?o.apply(this,u):u[0],p=l.cache;if(p.has(c))return p.get(c);var h=s.apply(this,u);return l.cache=p.set(c,h)||p,h};return l.cache=new(r.Cache||e),l}return r.Cache=e,Bh=r,Bh}var Uh,Q_;function nq(){if(Q_)return Uh;Q_=1;var e=tq(),n=500;function r(s){var o=e(s,function(u){return l.size===n&&l.clear(),u}),l=o.cache;return o}return Uh=r,Uh}var Hh,Z_;function rq(){if(Z_)return Hh;Z_=1;var e=nq(),n=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,r=/\\(\\)?/g,s=e(function(o){var l=[];return o.charCodeAt(0)===46&&l.push(""),o.replace(n,function(u,c,p,h){l.push(p?h.replace(r,"$1"):c||u)}),l});return Hh=s,Hh}var Wh,J_;function gu(){if(J_)return Wh;J_=1;function e(n,r){for(var s=-1,o=n==null?0:n.length,l=Array(o);++s<o;)l[s]=r(n[s],s,n);return l}return Wh=e,Wh}var Vh,eS;function iq(){if(eS)return Vh;eS=1;var e=to(),n=gu(),r=_t(),s=io(),o=e?e.prototype:void 0,l=o?o.toString:void 0;function u(c){if(typeof c=="string")return c;if(r(c))return n(c,u)+"";if(s(c))return l?l.call(c):"";var p=c+"";return p=="0"&&1/c==-1/0?"-0":p}return Vh=u,Vh}var Gh,tS;function uC(){if(tS)return Gh;tS=1;var e=iq();function n(r){return r==null?"":e(r)}return Gh=n,Gh}var Yh,nS;function vu(){if(nS)return Yh;nS=1;var e=_t(),n=qv(),r=rq(),s=uC();function o(l,u){return e(l)?l:n(l,u)?[l]:r(s(l))}return Yh=o,Yh}var Kh,rS;function ga(){if(rS)return Kh;rS=1;var e=io();function n(r){if(typeof r=="string"||e(r))return r;var s=r+"";return s=="0"&&1/r==-1/0?"-0":s}return Kh=n,Kh}var Xh,iS;function yu(){if(iS)return Xh;iS=1;var e=vu(),n=ga();function r(s,o){o=e(o,s);for(var l=0,u=o.length;s!=null&&l<u;)s=s[n(o[l++])];return l&&l==u?s:void 0}return Xh=r,Xh}var Qh,sS;function sq(){if(sS)return Qh;sS=1;var e=yu();function n(r,s,o){var l=r==null?void 0:e(r,s);return l===void 0?o:l}return Qh=n,Qh}var Zh,oS;function oq(){if(oS)return Zh;oS=1;function e(n,r){return n!=null&&r in Object(n)}return Zh=e,Zh}var Jh,aS;function cC(){if(aS)return Jh;aS=1;var e=vu(),n=pa(),r=_t(),s=du(),o=Cv(),l=ga();function u(c,p,h){p=e(p,c);for(var f=-1,m=p.length,y=!1;++f<m;){var x=l(p[f]);if(!(y=c!=null&&h(c,x)))break;c=c[x]}return y||++f!=m?y:(m=c==null?0:c.length,!!m&&o(m)&&s(x,m)&&(r(c)||n(c)))}return Jh=u,Jh}var ep,lS;function dC(){if(lS)return ep;lS=1;var e=oq(),n=cC();function r(s,o){return s!=null&&n(s,o,e)}return ep=r,ep}var tp,uS;function aq(){if(uS)return tp;uS=1;var e=oC(),n=sq(),r=dC(),s=qv(),o=aC(),l=lC(),u=ga(),c=1,p=2;function h(f,m){return s(f)&&o(m)?l(u(f),m):function(y){var x=n(y,f);return x===void 0&&x===m?r(y,f):e(m,x,c|p)}}return tp=h,tp}var np,cS;function fC(){if(cS)return np;cS=1;function e(n){return function(r){return r==null?void 0:r[n]}}return np=e,np}var rp,dS;function lq(){if(dS)return rp;dS=1;var e=yu();function n(r){return function(s){return e(s,r)}}return rp=n,rp}var ip,fS;function uq(){if(fS)return ip;fS=1;var e=fC(),n=lq(),r=qv(),s=ga();function o(l){return r(l)?e(s(l)):n(l)}return ip=o,ip}var sp,hS;function Or(){if(hS)return sp;hS=1;var e=eq(),n=aq(),r=es(),s=_t(),o=uq();function l(u){return typeof u=="function"?u:u==null?r:typeof u=="object"?s(u)?n(u[0],u[1]):e(u):o(u)}return sp=l,sp}var op,pS;function hC(){if(pS)return op;pS=1;var e=UN(),n=HL(),r=Or(),s=_t();function o(l,u){var c=s(l)?e:n;return c(l,r(u,3))}return op=o,op}var ap,mS;function cq(){if(mS)return ap;mS=1;var e=Object.prototype,n=e.hasOwnProperty;function r(s,o){return s!=null&&n.call(s,o)}return ap=r,ap}var lp,gS;function pC(){if(gS)return lp;gS=1;var e=cq(),n=cC();function r(s,o){return s!=null&&n(s,o,e)}return lp=r,lp}var up,vS;function dq(){if(vS)return up;vS=1;var e=Rv(),n=ro(),r=pa(),s=_t(),o=Pr(),l=no(),u=hu(),c=ma(),p="[object Map]",h="[object Set]",f=Object.prototype,m=f.hasOwnProperty;function y(x){if(x==null)return!0;if(o(x)&&(s(x)||typeof x=="string"||typeof x.splice=="function"||l(x)||c(x)||r(x)))return!x.length;var C=n(x);if(C==p||C==h)return!x.size;if(u(x))return!e(x).length;for(var _ in x)if(m.call(x,_))return!1;return!0}return up=y,up}var cp,yS;function mC(){if(yS)return cp;yS=1;function e(n){return n===void 0}return cp=e,cp}var dp,wS;function gC(){if(wS)return dp;wS=1;var e=mu(),n=Pr();function r(s,o){var l=-1,u=n(s)?Array(s.length):[];return e(s,function(c,p,h){u[++l]=o(c,p,h)}),u}return dp=r,dp}var fp,xS;function vC(){if(xS)return fp;xS=1;var e=gu(),n=Or(),r=gC(),s=_t();function o(l,u){var c=s(l)?e:r;return c(l,n(u,3))}return fp=o,fp}var hp,_S;function fq(){if(_S)return hp;_S=1;function e(n,r,s,o){var l=-1,u=n==null?0:n.length;for(o&&u&&(s=n[++l]);++l<u;)s=r(s,n[l],l,n);return s}return hp=e,hp}var pp,SS;function hq(){if(SS)return pp;SS=1;function e(n,r,s,o,l){return l(n,function(u,c,p){s=o?(o=!1,u):r(s,u,c,p)}),s}return pp=e,pp}var mp,bS;function yC(){if(bS)return mp;bS=1;var e=fq(),n=mu(),r=Or(),s=hq(),o=_t();function l(u,c,p){var h=o(u)?e:s,f=arguments.length<3;return h(u,r(c,4),p,f,n)}return mp=l,mp}var gp,kS;function pq(){if(kS)return gp;kS=1;var e=Qi(),n=_t(),r=hr(),s="[object String]";function o(l){return typeof l=="string"||!n(l)&&r(l)&&e(l)==s}return gp=o,gp}var vp,ES;function mq(){if(ES)return vp;ES=1;var e=fC(),n=e("length");return vp=n,vp}var yp,NS;function gq(){if(NS)return yp;NS=1;var e="\\ud800-\\udfff",n="\\u0300-\\u036f",r="\\ufe20-\\ufe2f",s="\\u20d0-\\u20ff",o=n+r+s,l="\\ufe0e\\ufe0f",u="\\u200d",c=RegExp("["+u+e+o+l+"]");function p(h){return c.test(h)}return yp=p,yp}var wp,CS;function vq(){if(CS)return wp;CS=1;var e="\\ud800-\\udfff",n="\\u0300-\\u036f",r="\\ufe20-\\ufe2f",s="\\u20d0-\\u20ff",o=n+r+s,l="\\ufe0e\\ufe0f",u="["+e+"]",c="["+o+"]",p="\\ud83c[\\udffb-\\udfff]",h="(?:"+c+"|"+p+")",f="[^"+e+"]",m="(?:\\ud83c[\\udde6-\\uddff]){2}",y="[\\ud800-\\udbff][\\udc00-\\udfff]",x="\\u200d",C=h+"?",_="["+l+"]?",S="(?:"+x+"(?:"+[f,m,y].join("|")+")"+_+C+")*",b=_+C+S,k="(?:"+[f+c+"?",c,m,y,u].join("|")+")",N=RegExp(p+"(?="+p+")|"+k+b,"g");function T(I){for(var M=N.lastIndex=0;N.test(I);)++M;return M}return wp=T,wp}var xp,TS;function yq(){if(TS)return xp;TS=1;var e=mq(),n=gq(),r=vq();function s(o){return n(o)?r(o):e(o)}return xp=s,xp}var _p,RS;function wq(){if(RS)return _p;RS=1;var e=Rv(),n=ro(),r=Pr(),s=pq(),o=yq(),l="[object Map]",u="[object Set]";function c(p){if(p==null)return 0;if(r(p))return s(p)?o(p):p.length;var h=n(p);return h==l||h==u?p.size:e(p).length}return _p=c,_p}var Sp,jS;function xq(){if(jS)return Sp;jS=1;var e=Nv(),n=QN(),r=Ov(),s=Or(),o=pu(),l=_t(),u=no(),c=fa(),p=jn(),h=ma();function f(m,y,x){var C=l(m),_=C||u(m)||h(m);if(y=s(y,4),x==null){var S=m&&m.constructor;_?x=C?new S:[]:p(m)?x=c(S)?n(o(m)):{}:x={}}return(_?e:r)(m,function(b,k,N){return y(x,b,k,N)}),x}return Sp=f,Sp}var bp,AS;function _q(){if(AS)return bp;AS=1;var e=to(),n=pa(),r=_t(),s=e?e.isConcatSpreadable:void 0;function o(l){return r(l)||n(l)||!!(s&&l&&l[s])}return bp=o,bp}var kp,IS;function $v(){if(IS)return kp;IS=1;var e=Av(),n=_q();function r(s,o,l,u,c){var p=-1,h=s.length;for(l||(l=n),c||(c=[]);++p<h;){var f=s[p];o>0&&l(f)?o>1?r(f,o-1,l,u,c):e(c,f):u||(c[c.length]=f)}return c}return kp=r,kp}var Ep,MS;function Sq(){if(MS)return Ep;MS=1;function e(n,r,s){switch(s.length){case 0:return n.call(r);case 1:return n.call(r,s[0]);case 2:return n.call(r,s[0],s[1]);case 3:return n.call(r,s[0],s[1],s[2])}return n.apply(r,s)}return Ep=e,Ep}var Np,PS;function wC(){if(PS)return Np;PS=1;var e=Sq(),n=Math.max;function r(s,o,l){return o=n(o===void 0?s.length-1:o,0),function(){for(var u=arguments,c=-1,p=n(u.length-o,0),h=Array(p);++c<p;)h[c]=u[o+c];c=-1;for(var f=Array(o+1);++c<o;)f[c]=u[c];return f[o]=l(h),e(s,this,f)}}return Np=r,Np}var Cp,OS;function bq(){if(OS)return Cp;OS=1;var e=Mv(),n=$N(),r=es(),s=n?function(o,l){return n(o,"toString",{configurable:!0,enumerable:!1,value:e(l),writable:!0})}:r;return Cp=s,Cp}var Tp,LS;function kq(){if(LS)return Tp;LS=1;var e=800,n=16,r=Date.now;function s(o){var l=0,u=0;return function(){var c=r(),p=n-(c-u);if(u=c,p>0){if(++l>=e)return arguments[0]}else l=0;return o.apply(void 0,arguments)}}return Tp=s,Tp}var Rp,qS;function xC(){if(qS)return Rp;qS=1;var e=bq(),n=kq(),r=n(e);return Rp=r,Rp}var jp,$S;function wu(){if($S)return jp;$S=1;var e=es(),n=wC(),r=xC();function s(o,l){return r(n(o,l,e),o+"")}return jp=s,jp}var Ap,DS;function _C(){if(DS)return Ap;DS=1;function e(n,r,s,o){for(var l=n.length,u=s+(o?1:-1);o?u--:++u<l;)if(r(n[u],u,n))return u;return-1}return Ap=e,Ap}var Ip,FS;function Eq(){if(FS)return Ip;FS=1;function e(n){return n!==n}return Ip=e,Ip}var Mp,zS;function Nq(){if(zS)return Mp;zS=1;function e(n,r,s){for(var o=s-1,l=n.length;++o<l;)if(n[o]===r)return o;return-1}return Mp=e,Mp}var Pp,BS;function Cq(){if(BS)return Pp;BS=1;var e=_C(),n=Eq(),r=Nq();function s(o,l,u){return l===l?r(o,l,u):e(o,n,u)}return Pp=s,Pp}var Op,US;function Tq(){if(US)return Op;US=1;var e=Cq();function n(r,s){var o=r==null?0:r.length;return!!o&&e(r,s,0)>-1}return Op=n,Op}var Lp,HS;function Rq(){if(HS)return Lp;HS=1;function e(n,r,s){for(var o=-1,l=n==null?0:n.length;++o<l;)if(s(r,n[o]))return!0;return!1}return Lp=e,Lp}var qp,WS;function jq(){if(WS)return qp;WS=1;function e(){}return qp=e,qp}var $p,VS;function Aq(){if(VS)return $p;VS=1;var e=YN(),n=jq(),r=Lv(),s=1/0,o=e&&1/r(new e([,-0]))[1]==s?function(l){return new e(l)}:n;return $p=o,$p}var Dp,GS;function Iq(){if(GS)return Dp;GS=1;var e=rC(),n=Tq(),r=Rq(),s=iC(),o=Aq(),l=Lv(),u=200;function c(p,h,f){var m=-1,y=n,x=p.length,C=!0,_=[],S=_;if(f)C=!1,y=r;else if(x>=u){var b=h?null:o(p);if(b)return l(b);C=!1,y=s,S=new e}else S=h?[]:_;e:for(;++m<x;){var k=p[m],N=h?h(k):k;if(k=f||k!==0?k:0,C&&N===N){for(var T=S.length;T--;)if(S[T]===N)continue e;h&&S.push(N),_.push(k)}else y(S,N,f)||(S!==_&&S.push(N),_.push(k))}return _}return Dp=c,Dp}var Fp,YS;function SC(){if(YS)return Fp;YS=1;var e=Pr(),n=hr();function r(s){return n(s)&&e(s)}return Fp=r,Fp}var zp,KS;function Mq(){if(KS)return zp;KS=1;var e=$v(),n=wu(),r=Iq(),s=SC(),o=n(function(l){return r(e(l,1,s,!0))});return zp=o,zp}var Bp,XS;function Pq(){if(XS)return Bp;XS=1;var e=gu();function n(r,s){return e(s,function(o){return r[o]})}return Bp=n,Bp}var Up,QS;function bC(){if(QS)return Up;QS=1;var e=Pq(),n=hi();function r(s){return s==null?[]:e(s,n(s))}return Up=r,Up}var Hp,ZS;function An(){if(ZS)return Hp;ZS=1;var e;if(typeof bv=="function")try{e={clone:zL(),constant:Mv(),each:nC(),filter:hC(),has:pC(),isArray:_t(),isEmpty:dq(),isFunction:fa(),isUndefined:mC(),keys:hi(),map:vC(),reduce:yC(),size:wq(),transform:xq(),union:Mq(),values:bC()}}catch{}return e||(e=window._),Hp=e,Hp}var Wp,JS;function Dv(){if(JS)return Wp;JS=1;var e=An();Wp=o;var n="\0",r="\0",s="";function o(f){this._isDirected=e.has(f,"directed")?f.directed:!0,this._isMultigraph=e.has(f,"multigraph")?f.multigraph:!1,this._isCompound=e.has(f,"compound")?f.compound:!1,this._label=void 0,this._defaultNodeLabelFn=e.constant(void 0),this._defaultEdgeLabelFn=e.constant(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[r]={}),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(f){return this._label=f,this},o.prototype.graph=function(){return this._label},o.prototype.setDefaultNodeLabel=function(f){return e.isFunction(f)||(f=e.constant(f)),this._defaultNodeLabelFn=f,this},o.prototype.nodeCount=function(){return this._nodeCount},o.prototype.nodes=function(){return e.keys(this._nodes)},o.prototype.sources=function(){var f=this;return e.filter(this.nodes(),function(m){return e.isEmpty(f._in[m])})},o.prototype.sinks=function(){var f=this;return e.filter(this.nodes(),function(m){return e.isEmpty(f._out[m])})},o.prototype.setNodes=function(f,m){var y=arguments,x=this;return e.each(f,function(C){y.length>1?x.setNode(C,m):x.setNode(C)}),this},o.prototype.setNode=function(f,m){return e.has(this._nodes,f)?(arguments.length>1&&(this._nodes[f]=m),this):(this._nodes[f]=arguments.length>1?m:this._defaultNodeLabelFn(f),this._isCompound&&(this._parent[f]=r,this._children[f]={},this._children[r][f]=!0),this._in[f]={},this._preds[f]={},this._out[f]={},this._sucs[f]={},++this._nodeCount,this)},o.prototype.node=function(f){return this._nodes[f]},o.prototype.hasNode=function(f){return e.has(this._nodes,f)},o.prototype.removeNode=function(f){var m=this;if(e.has(this._nodes,f)){var y=function(x){m.removeEdge(m._edgeObjs[x])};delete this._nodes[f],this._isCompound&&(this._removeFromParentsChildList(f),delete this._parent[f],e.each(this.children(f),function(x){m.setParent(x)}),delete this._children[f]),e.each(e.keys(this._in[f]),y),delete this._in[f],delete this._preds[f],e.each(e.keys(this._out[f]),y),delete this._out[f],delete this._sucs[f],--this._nodeCount}return this},o.prototype.setParent=function(f,m){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(e.isUndefined(m))m=r;else{m+="";for(var y=m;!e.isUndefined(y);y=this.parent(y))if(y===f)throw new Error("Setting "+m+" as parent of "+f+" would create a cycle");this.setNode(m)}return this.setNode(f),this._removeFromParentsChildList(f),this._parent[f]=m,this._children[m][f]=!0,this},o.prototype._removeFromParentsChildList=function(f){delete this._children[this._parent[f]][f]},o.prototype.parent=function(f){if(this._isCompound){var m=this._parent[f];if(m!==r)return m}},o.prototype.children=function(f){if(e.isUndefined(f)&&(f=r),this._isCompound){var m=this._children[f];if(m)return e.keys(m)}else{if(f===r)return this.nodes();if(this.hasNode(f))return[]}},o.prototype.predecessors=function(f){var m=this._preds[f];if(m)return e.keys(m)},o.prototype.successors=function(f){var m=this._sucs[f];if(m)return e.keys(m)},o.prototype.neighbors=function(f){var m=this.predecessors(f);if(m)return e.union(m,this.successors(f))},o.prototype.isLeaf=function(f){var m;return this.isDirected()?m=this.successors(f):m=this.neighbors(f),m.length===0},o.prototype.filterNodes=function(f){var m=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});m.setGraph(this.graph());var y=this;e.each(this._nodes,function(_,S){f(S)&&m.setNode(S,_)}),e.each(this._edgeObjs,function(_){m.hasNode(_.v)&&m.hasNode(_.w)&&m.setEdge(_,y.edge(_))});var x={};function C(_){var S=y.parent(_);return S===void 0||m.hasNode(S)?(x[_]=S,S):S in x?x[S]:C(S)}return this._isCompound&&e.each(m.nodes(),function(_){m.setParent(_,C(_))}),m},o.prototype.setDefaultEdgeLabel=function(f){return e.isFunction(f)||(f=e.constant(f)),this._defaultEdgeLabelFn=f,this},o.prototype.edgeCount=function(){return this._edgeCount},o.prototype.edges=function(){return e.values(this._edgeObjs)},o.prototype.setPath=function(f,m){var y=this,x=arguments;return e.reduce(f,function(C,_){return x.length>1?y.setEdge(C,_,m):y.setEdge(C,_),_}),this},o.prototype.setEdge=function(){var f,m,y,x,C=!1,_=arguments[0];typeof _=="object"&&_!==null&&"v"in _?(f=_.v,m=_.w,y=_.name,arguments.length===2&&(x=arguments[1],C=!0)):(f=_,m=arguments[1],y=arguments[3],arguments.length>2&&(x=arguments[2],C=!0)),f=""+f,m=""+m,e.isUndefined(y)||(y=""+y);var S=c(this._isDirected,f,m,y);if(e.has(this._edgeLabels,S))return C&&(this._edgeLabels[S]=x),this;if(!e.isUndefined(y)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(f),this.setNode(m),this._edgeLabels[S]=C?x:this._defaultEdgeLabelFn(f,m,y);var b=p(this._isDirected,f,m,y);return f=b.v,m=b.w,Object.freeze(b),this._edgeObjs[S]=b,l(this._preds[m],f),l(this._sucs[f],m),this._in[m][S]=b,this._out[f][S]=b,this._edgeCount++,this},o.prototype.edge=function(f,m,y){var x=arguments.length===1?h(this._isDirected,arguments[0]):c(this._isDirected,f,m,y);return this._edgeLabels[x]},o.prototype.hasEdge=function(f,m,y){var x=arguments.length===1?h(this._isDirected,arguments[0]):c(this._isDirected,f,m,y);return e.has(this._edgeLabels,x)},o.prototype.removeEdge=function(f,m,y){var x=arguments.length===1?h(this._isDirected,arguments[0]):c(this._isDirected,f,m,y),C=this._edgeObjs[x];return C&&(f=C.v,m=C.w,delete this._edgeLabels[x],delete this._edgeObjs[x],u(this._preds[m],f),u(this._sucs[f],m),delete this._in[m][x],delete this._out[f][x],this._edgeCount--),this},o.prototype.inEdges=function(f,m){var y=this._in[f];if(y){var x=e.values(y);return m?e.filter(x,function(C){return C.v===m}):x}},o.prototype.outEdges=function(f,m){var y=this._out[f];if(y){var x=e.values(y);return m?e.filter(x,function(C){return C.w===m}):x}},o.prototype.nodeEdges=function(f,m){var y=this.inEdges(f,m);if(y)return y.concat(this.outEdges(f,m))};function l(f,m){f[m]?f[m]++:f[m]=1}function u(f,m){--f[m]||delete f[m]}function c(f,m,y,x){var C=""+m,_=""+y;if(!f&&C>_){var S=C;C=_,_=S}return C+s+_+s+(e.isUndefined(x)?n:x)}function p(f,m,y,x){var C=""+m,_=""+y;if(!f&&C>_){var S=C;C=_,_=S}var b={v:C,w:_};return x&&(b.name=x),b}function h(f,m){return c(f,m.v,m.w,m.name)}return Wp}var Vp,eb;function Oq(){return eb||(eb=1,Vp="2.1.8"),Vp}var Gp,tb;function Lq(){return tb||(tb=1,Gp={Graph:Dv(),version:Oq()}),Gp}var Yp,nb;function qq(){if(nb)return Yp;nb=1;var e=An(),n=Dv();Yp={write:r,read:l};function r(u){var c={options:{directed:u.isDirected(),multigraph:u.isMultigraph(),compound:u.isCompound()},nodes:s(u),edges:o(u)};return e.isUndefined(u.graph())||(c.value=e.clone(u.graph())),c}function s(u){return e.map(u.nodes(),function(c){var p=u.node(c),h=u.parent(c),f={v:c};return e.isUndefined(p)||(f.value=p),e.isUndefined(h)||(f.parent=h),f})}function o(u){return e.map(u.edges(),function(c){var p=u.edge(c),h={v:c.v,w:c.w};return e.isUndefined(c.name)||(h.name=c.name),e.isUndefined(p)||(h.value=p),h})}function l(u){var c=new n(u.options).setGraph(u.value);return e.each(u.nodes,function(p){c.setNode(p.v,p.value),p.parent&&c.setParent(p.v,p.parent)}),e.each(u.edges,function(p){c.setEdge({v:p.v,w:p.w,name:p.name},p.value)}),c}return Yp}var Kp,rb;function $q(){if(rb)return Kp;rb=1;var e=An();Kp=n;function n(r){var s={},o=[],l;function u(c){e.has(s,c)||(s[c]=!0,l.push(c),e.each(r.successors(c),u),e.each(r.predecessors(c),u))}return e.each(r.nodes(),function(c){l=[],u(c),l.length&&o.push(l)}),o}return Kp}var Xp,ib;function kC(){if(ib)return Xp;ib=1;var e=An();Xp=n;function n(){this._arr=[],this._keyIndices={}}return n.prototype.size=function(){return this._arr.length},n.prototype.keys=function(){return this._arr.map(function(r){return r.key})},n.prototype.has=function(r){return e.has(this._keyIndices,r)},n.prototype.priority=function(r){var s=this._keyIndices[r];if(s!==void 0)return this._arr[s].priority},n.prototype.min=function(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key},n.prototype.add=function(r,s){var o=this._keyIndices;if(r=String(r),!e.has(o,r)){var l=this._arr,u=l.length;return o[r]=u,l.push({key:r,priority:s}),this._decrease(u),!0}return!1},n.prototype.removeMin=function(){this._swap(0,this._arr.length-1);var r=this._arr.pop();return delete this._keyIndices[r.key],this._heapify(0),r.key},n.prototype.decrease=function(r,s){var o=this._keyIndices[r];if(s>this._arr[o].priority)throw new Error("New priority is greater than current priority. Key: "+r+" Old: "+this._arr[o].priority+" New: "+s);this._arr[o].priority=s,this._decrease(o)},n.prototype._heapify=function(r){var s=this._arr,o=2*r,l=o+1,u=r;o<s.length&&(u=s[o].priority<s[u].priority?o:u,l<s.length&&(u=s[l].priority<s[u].priority?l:u),u!==r&&(this._swap(r,u),this._heapify(u)))},n.prototype._decrease=function(r){for(var s=this._arr,o=s[r].priority,l;r!==0&&(l=r>>1,!(s[l].priority<o));)this._swap(r,l),r=l},n.prototype._swap=function(r,s){var o=this._arr,l=this._keyIndices,u=o[r],c=o[s];o[r]=c,o[s]=u,l[c.key]=r,l[u.key]=s},Xp}var Qp,sb;function EC(){if(sb)return Qp;sb=1;var e=An(),n=kC();Qp=s;var r=e.constant(1);function s(l,u,c,p){return o(l,String(u),c||r,p||function(h){return l.outEdges(h)})}function o(l,u,c,p){var h={},f=new n,m,y,x=function(C){var _=C.v!==m?C.v:C.w,S=h[_],b=c(C),k=y.distance+b;if(b<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+C+" Weight: "+b);k<S.distance&&(S.distance=k,S.predecessor=m,f.decrease(_,k))};for(l.nodes().forEach(function(C){var _=C===u?0:Number.POSITIVE_INFINITY;h[C]={distance:_},f.add(C,_)});f.size()>0&&(m=f.removeMin(),y=h[m],y.distance!==Number.POSITIVE_INFINITY);)p(m).forEach(x);return h}return Qp}var Zp,ob;function Dq(){if(ob)return Zp;ob=1;var e=EC(),n=An();Zp=r;function r(s,o,l){return n.transform(s.nodes(),function(u,c){u[c]=e(s,c,o,l)},{})}return Zp}var Jp,ab;function NC(){if(ab)return Jp;ab=1;var e=An();Jp=n;function n(r){var s=0,o=[],l={},u=[];function c(p){var h=l[p]={onStack:!0,lowlink:s,index:s++};if(o.push(p),r.successors(p).forEach(function(y){e.has(l,y)?l[y].onStack&&(h.lowlink=Math.min(h.lowlink,l[y].index)):(c(y),h.lowlink=Math.min(h.lowlink,l[y].lowlink))}),h.lowlink===h.index){var f=[],m;do m=o.pop(),l[m].onStack=!1,f.push(m);while(p!==m);u.push(f)}}return r.nodes().forEach(function(p){e.has(l,p)||c(p)}),u}return Jp}var em,lb;function Fq(){if(lb)return em;lb=1;var e=An(),n=NC();em=r;function r(s){return e.filter(n(s),function(o){return o.length>1||o.length===1&&s.hasEdge(o[0],o[0])})}return em}var tm,ub;function zq(){if(ub)return tm;ub=1;var e=An();tm=r;var n=e.constant(1);function r(o,l,u){return s(o,l||n,u||function(c){return o.outEdges(c)})}function s(o,l,u){var c={},p=o.nodes();return p.forEach(function(h){c[h]={},c[h][h]={distance:0},p.forEach(function(f){h!==f&&(c[h][f]={distance:Number.POSITIVE_INFINITY})}),u(h).forEach(function(f){var m=f.v===h?f.w:f.v,y=l(f);c[h][m]={distance:y,predecessor:h}})}),p.forEach(function(h){var f=c[h];p.forEach(function(m){var y=c[m];p.forEach(function(x){var C=y[h],_=f[x],S=y[x],b=C.distance+_.distance;b<S.distance&&(S.distance=b,S.predecessor=_.predecessor)})})}),c}return tm}var nm,cb;function CC(){if(cb)return nm;cb=1;var e=An();nm=n,n.CycleException=r;function n(s){var o={},l={},u=[];function c(p){if(e.has(l,p))throw new r;e.has(o,p)||(l[p]=!0,o[p]=!0,e.each(s.predecessors(p),c),delete l[p],u.push(p))}if(e.each(s.sinks(),c),e.size(o)!==s.nodeCount())throw new r;return u}function r(){}return r.prototype=new Error,nm}var rm,db;function Bq(){if(db)return rm;db=1;var e=CC();rm=n;function n(r){try{e(r)}catch(s){if(s instanceof e.CycleException)return!1;throw s}return!0}return rm}var im,fb;function TC(){if(fb)return im;fb=1;var e=An();im=n;function n(s,o,l){e.isArray(o)||(o=[o]);var u=(s.isDirected()?s.successors:s.neighbors).bind(s),c=[],p={};return e.each(o,function(h){if(!s.hasNode(h))throw new Error("Graph does not have node: "+h);r(s,h,l==="post",p,u,c)}),c}function r(s,o,l,u,c,p){e.has(u,o)||(u[o]=!0,l||p.push(o),e.each(c(o),function(h){r(s,h,l,u,c,p)}),l&&p.push(o))}return im}var sm,hb;function Uq(){if(hb)return sm;hb=1;var e=TC();sm=n;function n(r,s){return e(r,s,"post")}return sm}var om,pb;function Hq(){if(pb)return om;pb=1;var e=TC();om=n;function n(r,s){return e(r,s,"pre")}return om}var am,mb;function Wq(){if(mb)return am;mb=1;var e=An(),n=Dv(),r=kC();am=s;function s(o,l){var u=new n,c={},p=new r,h;function f(y){var x=y.v===h?y.w:y.v,C=p.priority(x);if(C!==void 0){var _=l(y);_<C&&(c[x]=h,p.decrease(x,_))}}if(o.nodeCount()===0)return u;e.each(o.nodes(),function(y){p.add(y,Number.POSITIVE_INFINITY),u.setNode(y)}),p.decrease(o.nodes()[0],0);for(var m=!1;p.size()>0;){if(h=p.removeMin(),e.has(c,h))u.setEdge(h,c[h]);else{if(m)throw new Error("Input graph is not connected: "+o);m=!0}o.nodeEdges(h).forEach(f)}return u}return am}var lm,gb;function Vq(){return gb||(gb=1,lm={components:$q(),dijkstra:EC(),dijkstraAll:Dq(),findCycles:Fq(),floydWarshall:zq(),isAcyclic:Bq(),postorder:Uq(),preorder:Hq(),prim:Wq(),tarjan:NC(),topsort:CC()}),lm}var um,vb;function Gq(){if(vb)return um;vb=1;var e=Lq();return um={Graph:e.Graph,json:qq(),alg:Vq(),version:e.version},um}var cm,yb;function Jn(){if(yb)return cm;yb=1;var e;if(typeof bv=="function")try{e=Gq()}catch{}return e||(e=window.graphlib),cm=e,cm}var dm,wb;function Yq(){if(wb)return dm;wb=1;var e=JN(),n=1,r=4;function s(o){return e(o,n|r)}return dm=s,dm}var fm,xb;function xu(){if(xb)return fm;xb=1;var e=eo(),n=Pr(),r=du(),s=jn();function o(l,u,c){if(!s(c))return!1;var p=typeof u;return(p=="number"?n(c)&&r(u,c.length):p=="string"&&u in c)?e(c[u],l):!1}return fm=o,fm}var hm,_b;function Kq(){if(_b)return hm;_b=1;var e=wu(),n=eo(),r=xu(),s=Ji(),o=Object.prototype,l=o.hasOwnProperty,u=e(function(c,p){c=Object(c);var h=-1,f=p.length,m=f>2?p[2]:void 0;for(m&&r(p[0],p[1],m)&&(f=1);++h<f;)for(var y=p[h],x=s(y),C=-1,_=x.length;++C<_;){var S=x[C],b=c[S];(b===void 0||n(b,o[S])&&!l.call(c,S))&&(c[S]=y[S])}return c});return hm=u,hm}var pm,Sb;function Xq(){if(Sb)return pm;Sb=1;var e=Or(),n=Pr(),r=hi();function s(o){return function(l,u,c){var p=Object(l);if(!n(l)){var h=e(u,3);l=r(l),u=function(m){return h(p[m],m,p)}}var f=o(l,u,c);return f>-1?p[h?l[f]:f]:void 0}}return pm=s,pm}var mm,bb;function Qq(){if(bb)return mm;bb=1;var e=/\s/;function n(r){for(var s=r.length;s--&&e.test(r.charAt(s)););return s}return mm=n,mm}var gm,kb;function Zq(){if(kb)return gm;kb=1;var e=Qq(),n=/^\s+/;function r(s){return s&&s.slice(0,e(s)+1).replace(n,"")}return gm=r,gm}var vm,Eb;function Jq(){if(Eb)return vm;Eb=1;var e=Zq(),n=jn(),r=io(),s=NaN,o=/^[-+]0x[0-9a-f]+$/i,l=/^0b[01]+$/i,u=/^0o[0-7]+$/i,c=parseInt;function p(h){if(typeof h=="number")return h;if(r(h))return s;if(n(h)){var f=typeof h.valueOf=="function"?h.valueOf():h;h=n(f)?f+"":f}if(typeof h!="string")return h===0?h:+h;h=e(h);var m=l.test(h);return m||u.test(h)?c(h.slice(2),m?2:8):o.test(h)?s:+h}return vm=p,vm}var ym,Nb;function RC(){if(Nb)return ym;Nb=1;var e=Jq(),n=1/0,r=17976931348623157e292;function s(o){if(!o)return o===0?o:0;if(o=e(o),o===n||o===-n){var l=o<0?-1:1;return l*r}return o===o?o:0}return ym=s,ym}var wm,Cb;function e$(){if(Cb)return wm;Cb=1;var e=RC();function n(r){var s=e(r),o=s%1;return s===s?o?s-o:s:0}return wm=n,wm}var xm,Tb;function t$(){if(Tb)return xm;Tb=1;var e=_C(),n=Or(),r=e$(),s=Math.max;function o(l,u,c){var p=l==null?0:l.length;if(!p)return-1;var h=c==null?0:r(c);return h<0&&(h=s(p+h,0)),e(l,n(u,3),h)}return xm=o,xm}var _m,Rb;function n$(){if(Rb)return _m;Rb=1;var e=Xq(),n=t$(),r=e(n);return _m=r,_m}var Sm,jb;function jC(){if(jb)return Sm;jb=1;var e=$v();function n(r){var s=r==null?0:r.length;return s?e(r,1):[]}return Sm=n,Sm}var bm,Ab;function r$(){if(Ab)return bm;Ab=1;var e=Pv(),n=eC(),r=Ji();function s(o,l){return o==null?o:e(o,n(l),r)}return bm=s,bm}var km,Ib;function i$(){if(Ib)return km;Ib=1;function e(n){var r=n==null?0:n.length;return r?n[r-1]:void 0}return km=e,km}var Em,Mb;function s$(){if(Mb)return Em;Mb=1;var e=uu(),n=Ov(),r=Or();function s(o,l){var u={};return l=r(l,3),n(o,function(c,p,h){e(u,p,l(c,p,h))}),u}return Em=s,Em}var Nm,Pb;function Fv(){if(Pb)return Nm;Pb=1;var e=io();function n(r,s,o){for(var l=-1,u=r.length;++l<u;){var c=r[l],p=s(c);if(p!=null&&(h===void 0?p===p&&!e(p):o(p,h)))var h=p,f=c}return f}return Nm=n,Nm}var Cm,Ob;function o$(){if(Ob)return Cm;Ob=1;function e(n,r){return n>r}return Cm=e,Cm}var Tm,Lb;function a$(){if(Lb)return Tm;Lb=1;var e=Fv(),n=o$(),r=es();function s(o){return o&&o.length?e(o,r,n):void 0}return Tm=s,Tm}var Rm,qb;function AC(){if(qb)return Rm;qb=1;var e=uu(),n=eo();function r(s,o,l){(l!==void 0&&!n(s[o],l)||l===void 0&&!(o in s))&&e(s,o,l)}return Rm=r,Rm}var jm,$b;function l$(){if($b)return jm;$b=1;var e=Qi(),n=pu(),r=hr(),s="[object Object]",o=Function.prototype,l=Object.prototype,u=o.toString,c=l.hasOwnProperty,p=u.call(Object);function h(f){if(!r(f)||e(f)!=s)return!1;var m=n(f);if(m===null)return!0;var y=c.call(m,"constructor")&&m.constructor;return typeof y=="function"&&y instanceof y&&u.call(y)==p}return jm=h,jm}var Am,Db;function IC(){if(Db)return Am;Db=1;function e(n,r){if(!(r==="constructor"&&typeof n[r]=="function")&&r!="__proto__")return n[r]}return Am=e,Am}var Im,Fb;function u$(){if(Fb)return Im;Fb=1;var e=ha(),n=Ji();function r(s){return e(s,n(s))}return Im=r,Im}var Mm,zb;function c$(){if(zb)return Mm;zb=1;var e=AC(),n=zN(),r=XN(),s=BN(),o=ZN(),l=pa(),u=_t(),c=SC(),p=no(),h=fa(),f=jn(),m=l$(),y=ma(),x=IC(),C=u$();function _(S,b,k,N,T,I,M){var O=x(S,k),H=x(b,k),L=M.get(H);if(L){e(S,k,L);return}var P=I?I(O,H,k+"",S,b,M):void 0,q=P===void 0;if(q){var W=u(H),B=!W&&p(H),j=!W&&!B&&y(H);P=H,W||B||j?u(O)?P=O:c(O)?P=s(O):B?(q=!1,P=n(H,!0)):j?(q=!1,P=r(H,!0)):P=[]:m(H)||l(H)?(P=O,l(O)?P=C(O):(!f(O)||h(O))&&(P=o(H))):q=!1}q&&(M.set(H,P),T(P,H,N,I,M),M.delete(H)),e(S,k,P)}return Mm=_,Mm}var Pm,Bb;function d$(){if(Bb)return Pm;Bb=1;var e=lu(),n=AC(),r=Pv(),s=c$(),o=jn(),l=Ji(),u=IC();function c(p,h,f,m,y){p!==h&&r(h,function(x,C){if(y||(y=new e),o(x))s(p,h,C,f,c,m,y);else{var _=m?m(u(p,C),x,C+"",p,h,y):void 0;_===void 0&&(_=x),n(p,C,_)}},l)}return Pm=c,Pm}var Om,Ub;function f$(){if(Ub)return Om;Ub=1;var e=wu(),n=xu();function r(s){return e(function(o,l){var u=-1,c=l.length,p=c>1?l[c-1]:void 0,h=c>2?l[2]:void 0;for(p=s.length>3&&typeof p=="function"?(c--,p):void 0,h&&n(l[0],l[1],h)&&(p=c<3?void 0:p,c=1),o=Object(o);++u<c;){var f=l[u];f&&s(o,f,u,p)}return o})}return Om=r,Om}var Lm,Hb;function h$(){if(Hb)return Lm;Hb=1;var e=d$(),n=f$(),r=n(function(s,o,l){e(s,o,l)});return Lm=r,Lm}var qm,Wb;function MC(){if(Wb)return qm;Wb=1;function e(n,r){return n<r}return qm=e,qm}var $m,Vb;function p$(){if(Vb)return $m;Vb=1;var e=Fv(),n=MC(),r=es();function s(o){return o&&o.length?e(o,r,n):void 0}return $m=s,$m}var Dm,Gb;function m$(){if(Gb)return Dm;Gb=1;var e=Fv(),n=Or(),r=MC();function s(o,l){return o&&o.length?e(o,n(l,2),r):void 0}return Dm=s,Dm}var Fm,Yb;function g$(){if(Yb)return Fm;Yb=1;var e=tr(),n=function(){return e.Date.now()};return Fm=n,Fm}var zm,Kb;function v$(){if(Kb)return zm;Kb=1;var e=cu(),n=vu(),r=du(),s=jn(),o=ga();function l(u,c,p,h){if(!s(u))return u;c=n(c,u);for(var f=-1,m=c.length,y=m-1,x=u;x!=null&&++f<m;){var C=o(c[f]),_=p;if(C==="__proto__"||C==="constructor"||C==="prototype")return u;if(f!=y){var S=x[C];_=h?h(S,C,x):void 0,_===void 0&&(_=s(S)?S:r(c[f+1])?[]:{})}e(x,C,_),x=x[C]}return u}return zm=l,zm}var Bm,Xb;function y$(){if(Xb)return Bm;Xb=1;var e=yu(),n=v$(),r=vu();function s(o,l,u){for(var c=-1,p=l.length,h={};++c<p;){var f=l[c],m=e(o,f);u(m,f)&&n(h,r(f,o),m)}return h}return Bm=s,Bm}var Um,Qb;function w$(){if(Qb)return Um;Qb=1;var e=y$(),n=dC();function r(s,o){return e(s,o,function(l,u){return n(s,u)})}return Um=r,Um}var Hm,Zb;function x$(){if(Zb)return Hm;Zb=1;var e=jC(),n=wC(),r=xC();function s(o){return r(n(o,void 0,e),o+"")}return Hm=s,Hm}var Wm,Jb;function _$(){if(Jb)return Wm;Jb=1;var e=w$(),n=x$(),r=n(function(s,o){return s==null?{}:e(s,o)});return Wm=r,Wm}var Vm,ek;function S$(){if(ek)return Vm;ek=1;var e=Math.ceil,n=Math.max;function r(s,o,l,u){for(var c=-1,p=n(e((o-s)/(l||1)),0),h=Array(p);p--;)h[u?p:++c]=s,s+=l;return h}return Vm=r,Vm}var Gm,tk;function b$(){if(tk)return Gm;tk=1;var e=S$(),n=xu(),r=RC();function s(o){return function(l,u,c){return c&&typeof c!="number"&&n(l,u,c)&&(u=c=void 0),l=r(l),u===void 0?(u=l,l=0):u=r(u),c=c===void 0?l<u?1:-1:r(c),e(l,u,c,o)}}return Gm=s,Gm}var Ym,nk;function k$(){if(nk)return Ym;nk=1;var e=b$(),n=e();return Ym=n,Ym}var Km,rk;function E$(){if(rk)return Km;rk=1;function e(n,r){var s=n.length;for(n.sort(r);s--;)n[s]=n[s].value;return n}return Km=e,Km}var Xm,ik;function N$(){if(ik)return Xm;ik=1;var e=io();function n(r,s){if(r!==s){var o=r!==void 0,l=r===null,u=r===r,c=e(r),p=s!==void 0,h=s===null,f=s===s,m=e(s);if(!h&&!m&&!c&&r>s||c&&p&&f&&!h&&!m||l&&p&&f||!o&&f||!u)return 1;if(!l&&!c&&!m&&r<s||m&&o&&u&&!l&&!c||h&&o&&u||!p&&u||!f)return-1}return 0}return Xm=n,Xm}var Qm,sk;function C$(){if(sk)return Qm;sk=1;var e=N$();function n(r,s,o){for(var l=-1,u=r.criteria,c=s.criteria,p=u.length,h=o.length;++l<p;){var f=e(u[l],c[l]);if(f){if(l>=h)return f;var m=o[l];return f*(m=="desc"?-1:1)}}return r.index-s.index}return Qm=n,Qm}var Zm,ok;function T$(){if(ok)return Zm;ok=1;var e=gu(),n=yu(),r=Or(),s=gC(),o=E$(),l=fu(),u=C$(),c=es(),p=_t();function h(f,m,y){m.length?m=e(m,function(_){return p(_)?function(S){return n(S,_.length===1?_[0]:_)}:_}):m=[c];var x=-1;m=e(m,l(r));var C=s(f,function(_,S,b){var k=e(m,function(N){return N(_)});return{criteria:k,index:++x,value:_}});return o(C,function(_,S){return u(_,S,y)})}return Zm=h,Zm}var Jm,ak;function R$(){if(ak)return Jm;ak=1;var e=$v(),n=T$(),r=wu(),s=xu(),o=r(function(l,u){if(l==null)return[];var c=u.length;return c>1&&s(l,u[0],u[1])?u=[]:c>2&&s(u[0],u[1],u[2])&&(u=[u[0]]),n(l,e(u,1),[])});return Jm=o,Jm}var eg,lk;function j$(){if(lk)return eg;lk=1;var e=uC(),n=0;function r(s){var o=++n;return e(s)+o}return eg=r,eg}var tg,uk;function A$(){if(uk)return tg;uk=1;function e(n,r,s){for(var o=-1,l=n.length,u=r.length,c={};++o<l;){var p=o<u?r[o]:void 0;s(c,n[o],p)}return c}return tg=e,tg}var ng,ck;function I$(){if(ck)return ng;ck=1;var e=cu(),n=A$();function r(s,o){return n(s||[],o||[],e)}return ng=r,ng}var rg,dk;function st(){if(dk)return rg;dk=1;var e;if(typeof bv=="function")try{e={cloneDeep:Yq(),constant:Mv(),defaults:Kq(),each:nC(),filter:hC(),find:n$(),flatten:jC(),forEach:tC(),forIn:r$(),has:pC(),isUndefined:mC(),last:i$(),map:vC(),mapValues:s$(),max:a$(),merge:h$(),min:p$(),minBy:m$(),now:g$(),pick:_$(),range:k$(),reduce:yC(),sortBy:R$(),uniqueId:j$(),values:bC(),zipObject:I$()}}catch{}return e||(e=window._),rg=e,rg}var ig,fk;function M$(){if(fk)return ig;fk=1,ig=e;function e(){var s={};s._next=s._prev=s,this._sentinel=s}e.prototype.dequeue=function(){var s=this._sentinel,o=s._prev;if(o!==s)return n(o),o},e.prototype.enqueue=function(s){var o=this._sentinel;s._prev&&s._next&&n(s),s._next=o._next,o._next._prev=s,o._next=s,s._prev=o},e.prototype.toString=function(){for(var s=[],o=this._sentinel,l=o._prev;l!==o;)s.push(JSON.stringify(l,r)),l=l._prev;return"["+s.join(", ")+"]"};function n(s){s._prev._next=s._next,s._next._prev=s._prev,delete s._next,delete s._prev}function r(s,o){if(s!=="_next"&&s!=="_prev")return o}return ig}var sg,hk;function P$(){if(hk)return sg;hk=1;var e=st(),n=Jn().Graph,r=M$();sg=o;var s=e.constant(1);function o(h,f){if(h.nodeCount()<=1)return[];var m=c(h,f||s),y=l(m.graph,m.buckets,m.zeroIdx);return e.flatten(e.map(y,function(x){return h.outEdges(x.v,x.w)}),!0)}function l(h,f,m){for(var y=[],x=f[f.length-1],C=f[0],_;h.nodeCount();){for(;_=C.dequeue();)u(h,f,m,_);for(;_=x.dequeue();)u(h,f,m,_);if(h.nodeCount()){for(var S=f.length-2;S>0;--S)if(_=f[S].dequeue(),_){y=y.concat(u(h,f,m,_,!0));break}}}return y}function u(h,f,m,y,x){var C=x?[]:void 0;return e.forEach(h.inEdges(y.v),function(_){var S=h.edge(_),b=h.node(_.v);x&&C.push({v:_.v,w:_.w}),b.out-=S,p(f,m,b)}),e.forEach(h.outEdges(y.v),function(_){var S=h.edge(_),b=_.w,k=h.node(b);k.in-=S,p(f,m,k)}),h.removeNode(y.v),C}function c(h,f){var m=new n,y=0,x=0;e.forEach(h.nodes(),function(S){m.setNode(S,{v:S,in:0,out:0})}),e.forEach(h.edges(),function(S){var b=m.edge(S.v,S.w)||0,k=f(S),N=b+k;m.setEdge(S.v,S.w,N),x=Math.max(x,m.node(S.v).out+=k),y=Math.max(y,m.node(S.w).in+=k)});var C=e.range(x+y+3).map(function(){return new r}),_=y+1;return e.forEach(m.nodes(),function(S){p(C,_,m.node(S))}),{graph:m,buckets:C,zeroIdx:_}}function p(h,f,m){m.out?m.in?h[m.out-m.in+f].enqueue(m):h[h.length-1].enqueue(m):h[0].enqueue(m)}return sg}var og,pk;function O$(){if(pk)return og;pk=1;var e=st(),n=P$();og={run:r,undo:o};function r(l){var u=l.graph().acyclicer==="greedy"?n(l,c(l)):s(l);e.forEach(u,function(p){var h=l.edge(p);l.removeEdge(p),h.forwardName=p.name,h.reversed=!0,l.setEdge(p.w,p.v,h,e.uniqueId("rev"))});function c(p){return function(h){return p.edge(h).weight}}}function s(l){var u=[],c={},p={};function h(f){e.has(p,f)||(p[f]=!0,c[f]=!0,e.forEach(l.outEdges(f),function(m){e.has(c,m.w)?u.push(m):h(m.w)}),delete c[f])}return e.forEach(l.nodes(),h),u}function o(l){e.forEach(l.edges(),function(u){var c=l.edge(u);if(c.reversed){l.removeEdge(u);var p=c.forwardName;delete c.reversed,delete c.forwardName,l.setEdge(u.w,u.v,c,p)}})}return og}var ag,mk;function dn(){if(mk)return ag;mk=1;var e=st(),n=Jn().Graph;ag={addDummyNode:r,simplify:s,asNonCompoundGraph:o,successorWeights:l,predecessorWeights:u,intersectRect:c,buildLayerMatrix:p,normalizeRanks:h,removeEmptyRanks:f,addBorderNode:m,maxRank:y,partition:x,time:C,notime:_};function r(S,b,k,N){var T;do T=e.uniqueId(N);while(S.hasNode(T));return k.dummy=b,S.setNode(T,k),T}function s(S){var b=new n().setGraph(S.graph());return e.forEach(S.nodes(),function(k){b.setNode(k,S.node(k))}),e.forEach(S.edges(),function(k){var N=b.edge(k.v,k.w)||{weight:0,minlen:1},T=S.edge(k);b.setEdge(k.v,k.w,{weight:N.weight+T.weight,minlen:Math.max(N.minlen,T.minlen)})}),b}function o(S){var b=new n({multigraph:S.isMultigraph()}).setGraph(S.graph());return e.forEach(S.nodes(),function(k){S.children(k).length||b.setNode(k,S.node(k))}),e.forEach(S.edges(),function(k){b.setEdge(k,S.edge(k))}),b}function l(S){var b=e.map(S.nodes(),function(k){var N={};return e.forEach(S.outEdges(k),function(T){N[T.w]=(N[T.w]||0)+S.edge(T).weight}),N});return e.zipObject(S.nodes(),b)}function u(S){var b=e.map(S.nodes(),function(k){var N={};return e.forEach(S.inEdges(k),function(T){N[T.v]=(N[T.v]||0)+S.edge(T).weight}),N});return e.zipObject(S.nodes(),b)}function c(S,b){var k=S.x,N=S.y,T=b.x-k,I=b.y-N,M=S.width/2,O=S.height/2;if(!T&&!I)throw new Error("Not possible to find intersection inside of the rectangle");var H,L;return Math.abs(I)*M>Math.abs(T)*O?(I<0&&(O=-O),H=O*T/I,L=O):(T<0&&(M=-M),H=M,L=M*I/T),{x:k+H,y:N+L}}function p(S){var b=e.map(e.range(y(S)+1),function(){return[]});return e.forEach(S.nodes(),function(k){var N=S.node(k),T=N.rank;e.isUndefined(T)||(b[T][N.order]=k)}),b}function h(S){var b=e.min(e.map(S.nodes(),function(k){return S.node(k).rank}));e.forEach(S.nodes(),function(k){var N=S.node(k);e.has(N,"rank")&&(N.rank-=b)})}function f(S){var b=e.min(e.map(S.nodes(),function(I){return S.node(I).rank})),k=[];e.forEach(S.nodes(),function(I){var M=S.node(I).rank-b;k[M]||(k[M]=[]),k[M].push(I)});var N=0,T=S.graph().nodeRankFactor;e.forEach(k,function(I,M){e.isUndefined(I)&&M%T!==0?--N:N&&e.forEach(I,function(O){S.node(O).rank+=N})})}function m(S,b,k,N){var T={width:0,height:0};return arguments.length>=4&&(T.rank=k,T.order=N),r(S,"border",T,b)}function y(S){return e.max(e.map(S.nodes(),function(b){var k=S.node(b).rank;if(!e.isUndefined(k))return k}))}function x(S,b){var k={lhs:[],rhs:[]};return e.forEach(S,function(N){b(N)?k.lhs.push(N):k.rhs.push(N)}),k}function C(S,b){var k=e.now();try{return b()}finally{console.log(S+" time: "+(e.now()-k)+"ms")}}function _(S,b){return b()}return ag}var lg,gk;function L$(){if(gk)return lg;gk=1;var e=st(),n=dn();lg={run:r,undo:o};function r(l){l.graph().dummyChains=[],e.forEach(l.edges(),function(u){s(l,u)})}function s(l,u){var c=u.v,p=l.node(c).rank,h=u.w,f=l.node(h).rank,m=u.name,y=l.edge(u),x=y.labelRank;if(f!==p+1){l.removeEdge(u);var C,_,S;for(S=0,++p;p<f;++S,++p)y.points=[],_={width:0,height:0,edgeLabel:y,edgeObj:u,rank:p},C=n.addDummyNode(l,"edge",_,"_d"),p===x&&(_.width=y.width,_.height=y.height,_.dummy="edge-label",_.labelpos=y.labelpos),l.setEdge(c,C,{weight:y.weight},m),S===0&&l.graph().dummyChains.push(C),c=C;l.setEdge(c,h,{weight:y.weight},m)}}function o(l){e.forEach(l.graph().dummyChains,function(u){var c=l.node(u),p=c.edgeLabel,h;for(l.setEdge(c.edgeObj,p);c.dummy;)h=l.successors(u)[0],l.removeNode(u),p.points.push({x:c.x,y:c.y}),c.dummy==="edge-label"&&(p.x=c.x,p.y=c.y,p.width=c.width,p.height=c.height),u=h,c=l.node(u)})}return lg}var ug,vk;function Kl(){if(vk)return ug;vk=1;var e=st();ug={longestPath:n,slack:r};function n(s){var o={};function l(u){var c=s.node(u);if(e.has(o,u))return c.rank;o[u]=!0;var p=e.min(e.map(s.outEdges(u),function(h){return l(h.w)-s.edge(h).minlen}));return(p===Number.POSITIVE_INFINITY||p===void 0||p===null)&&(p=0),c.rank=p}e.forEach(s.sources(),l)}function r(s,o){return s.node(o.w).rank-s.node(o.v).rank-s.edge(o).minlen}return ug}var cg,yk;function PC(){if(yk)return cg;yk=1;var e=st(),n=Jn().Graph,r=Kl().slack;cg=s;function s(c){var p=new n({directed:!1}),h=c.nodes()[0],f=c.nodeCount();p.setNode(h,{});for(var m,y;o(p,c)<f;)m=l(p,c),y=p.hasNode(m.v)?r(c,m):-r(c,m),u(p,c,y);return p}function o(c,p){function h(f){e.forEach(p.nodeEdges(f),function(m){var y=m.v,x=f===y?m.w:y;!c.hasNode(x)&&!r(p,m)&&(c.setNode(x,{}),c.setEdge(f,x,{}),h(x))})}return e.forEach(c.nodes(),h),c.nodeCount()}function l(c,p){return e.minBy(p.edges(),function(h){if(c.hasNode(h.v)!==c.hasNode(h.w))return r(p,h)})}function u(c,p,h){e.forEach(c.nodes(),function(f){p.node(f).rank+=h})}return cg}var dg,wk;function q$(){if(wk)return dg;wk=1;var e=st(),n=PC(),r=Kl().slack,s=Kl().longestPath,o=Jn().alg.preorder,l=Jn().alg.postorder,u=dn().simplify;dg=c,c.initLowLimValues=m,c.initCutValues=p,c.calcCutValue=f,c.leaveEdge=x,c.enterEdge=C,c.exchangeEdges=_;function c(N){N=u(N),s(N);var T=n(N);m(T),p(T,N);for(var I,M;I=x(T);)M=C(T,N,I),_(T,N,I,M)}function p(N,T){var I=l(N,N.nodes());I=I.slice(0,I.length-1),e.forEach(I,function(M){h(N,T,M)})}function h(N,T,I){var M=N.node(I),O=M.parent;N.edge(I,O).cutvalue=f(N,T,I)}function f(N,T,I){var M=N.node(I),O=M.parent,H=!0,L=T.edge(I,O),P=0;return L||(H=!1,L=T.edge(O,I)),P=L.weight,e.forEach(T.nodeEdges(I),function(q){var W=q.v===I,B=W?q.w:q.v;if(B!==O){var j=W===H,K=T.edge(q).weight;if(P+=j?K:-K,b(N,I,B)){var U=N.edge(I,B).cutvalue;P+=j?-U:U}}}),P}function m(N,T){arguments.length<2&&(T=N.nodes()[0]),y(N,{},1,T)}function y(N,T,I,M,O){var H=I,L=N.node(M);return T[M]=!0,e.forEach(N.neighbors(M),function(P){e.has(T,P)||(I=y(N,T,I,P,M))}),L.low=H,L.lim=I++,O?L.parent=O:delete L.parent,I}function x(N){return e.find(N.edges(),function(T){return N.edge(T).cutvalue<0})}function C(N,T,I){var M=I.v,O=I.w;T.hasEdge(M,O)||(M=I.w,O=I.v);var H=N.node(M),L=N.node(O),P=H,q=!1;H.lim>L.lim&&(P=L,q=!0);var W=e.filter(T.edges(),function(B){return q===k(N,N.node(B.v),P)&&q!==k(N,N.node(B.w),P)});return e.minBy(W,function(B){return r(T,B)})}function _(N,T,I,M){var O=I.v,H=I.w;N.removeEdge(O,H),N.setEdge(M.v,M.w,{}),m(N),p(N,T),S(N,T)}function S(N,T){var I=e.find(N.nodes(),function(O){return!T.node(O).parent}),M=o(N,I);M=M.slice(1),e.forEach(M,function(O){var H=N.node(O).parent,L=T.edge(O,H),P=!1;L||(L=T.edge(H,O),P=!0),T.node(O).rank=T.node(H).rank+(P?L.minlen:-L.minlen)})}function b(N,T,I){return N.hasEdge(T,I)}function k(N,T,I){return I.low<=T.lim&&T.lim<=I.lim}return dg}var fg,xk;function $$(){if(xk)return fg;xk=1;var e=Kl(),n=e.longestPath,r=PC(),s=q$();fg=o;function o(p){switch(p.graph().ranker){case"network-simplex":c(p);break;case"tight-tree":u(p);break;case"longest-path":l(p);break;default:c(p)}}var l=n;function u(p){n(p),r(p)}function c(p){s(p)}return fg}var hg,_k;function D$(){if(_k)return hg;_k=1;var e=st();hg=n;function n(o){var l=s(o);e.forEach(o.graph().dummyChains,function(u){for(var c=o.node(u),p=c.edgeObj,h=r(o,l,p.v,p.w),f=h.path,m=h.lca,y=0,x=f[y],C=!0;u!==p.w;){if(c=o.node(u),C){for(;(x=f[y])!==m&&o.node(x).maxRank<c.rank;)y++;x===m&&(C=!1)}if(!C){for(;y<f.length-1&&o.node(x=f[y+1]).minRank<=c.rank;)y++;x=f[y]}o.setParent(u,x),u=o.successors(u)[0]}})}function r(o,l,u,c){var p=[],h=[],f=Math.min(l[u].low,l[c].low),m=Math.max(l[u].lim,l[c].lim),y,x;y=u;do y=o.parent(y),p.push(y);while(y&&(l[y].low>f||m>l[y].lim));for(x=y,y=c;(y=o.parent(y))!==x;)h.push(y);return{path:p.concat(h.reverse()),lca:x}}function s(o){var l={},u=0;function c(p){var h=u;e.forEach(o.children(p),c),l[p]={low:h,lim:u++}}return e.forEach(o.children(),c),l}return hg}var pg,Sk;function F$(){if(Sk)return pg;Sk=1;var e=st(),n=dn();pg={run:r,cleanup:u};function r(c){var p=n.addDummyNode(c,"root",{},"_root"),h=o(c),f=e.max(e.values(h))-1,m=2*f+1;c.graph().nestingRoot=p,e.forEach(c.edges(),function(x){c.edge(x).minlen*=m});var y=l(c)+1;e.forEach(c.children(),function(x){s(c,p,m,y,f,h,x)}),c.graph().nodeRankFactor=m}function s(c,p,h,f,m,y,x){var C=c.children(x);if(!C.length){x!==p&&c.setEdge(p,x,{weight:0,minlen:h});return}var _=n.addBorderNode(c,"_bt"),S=n.addBorderNode(c,"_bb"),b=c.node(x);c.setParent(_,x),b.borderTop=_,c.setParent(S,x),b.borderBottom=S,e.forEach(C,function(k){s(c,p,h,f,m,y,k);var N=c.node(k),T=N.borderTop?N.borderTop:k,I=N.borderBottom?N.borderBottom:k,M=N.borderTop?f:2*f,O=T!==I?1:m-y[x]+1;c.setEdge(_,T,{weight:M,minlen:O,nestingEdge:!0}),c.setEdge(I,S,{weight:M,minlen:O,nestingEdge:!0})}),c.parent(x)||c.setEdge(p,_,{weight:0,minlen:m+y[x]})}function o(c){var p={};function h(f,m){var y=c.children(f);y&&y.length&&e.forEach(y,function(x){h(x,m+1)}),p[f]=m}return e.forEach(c.children(),function(f){h(f,1)}),p}function l(c){return e.reduce(c.edges(),function(p,h){return p+c.edge(h).weight},0)}function u(c){var p=c.graph();c.removeNode(p.nestingRoot),delete p.nestingRoot,e.forEach(c.edges(),function(h){var f=c.edge(h);f.nestingEdge&&c.removeEdge(h)})}return pg}var mg,bk;function z$(){if(bk)return mg;bk=1;var e=st(),n=dn();mg=r;function r(o){function l(u){var c=o.children(u),p=o.node(u);if(c.length&&e.forEach(c,l),e.has(p,"minRank")){p.borderLeft=[],p.borderRight=[];for(var h=p.minRank,f=p.maxRank+1;h<f;++h)s(o,"borderLeft","_bl",u,p,h),s(o,"borderRight","_br",u,p,h)}}e.forEach(o.children(),l)}function s(o,l,u,c,p,h){var f={width:0,height:0,rank:h,borderType:l},m=p[l][h-1],y=n.addDummyNode(o,"border",f,u);p[l][h]=y,o.setParent(y,c),m&&o.setEdge(m,y,{weight:1})}return mg}var gg,kk;function B$(){if(kk)return gg;kk=1;var e=st();gg={adjust:n,undo:r};function n(h){var f=h.graph().rankdir.toLowerCase();(f==="lr"||f==="rl")&&s(h)}function r(h){var f=h.graph().rankdir.toLowerCase();(f==="bt"||f==="rl")&&l(h),(f==="lr"||f==="rl")&&(c(h),s(h))}function s(h){e.forEach(h.nodes(),function(f){o(h.node(f))}),e.forEach(h.edges(),function(f){o(h.edge(f))})}function o(h){var f=h.width;h.width=h.height,h.height=f}function l(h){e.forEach(h.nodes(),function(f){u(h.node(f))}),e.forEach(h.edges(),function(f){var m=h.edge(f);e.forEach(m.points,u),e.has(m,"y")&&u(m)})}function u(h){h.y=-h.y}function c(h){e.forEach(h.nodes(),function(f){p(h.node(f))}),e.forEach(h.edges(),function(f){var m=h.edge(f);e.forEach(m.points,p),e.has(m,"x")&&p(m)})}function p(h){var f=h.x;h.x=h.y,h.y=f}return gg}var vg,Ek;function U$(){if(Ek)return vg;Ek=1;var e=st();vg=n;function n(r){var s={},o=e.filter(r.nodes(),function(h){return!r.children(h).length}),l=e.max(e.map(o,function(h){return r.node(h).rank})),u=e.map(e.range(l+1),function(){return[]});function c(h){if(!e.has(s,h)){s[h]=!0;var f=r.node(h);u[f.rank].push(h),e.forEach(r.successors(h),c)}}var p=e.sortBy(o,function(h){return r.node(h).rank});return e.forEach(p,c),u}return vg}var yg,Nk;function H$(){if(Nk)return yg;Nk=1;var e=st();yg=n;function n(s,o){for(var l=0,u=1;u<o.length;++u)l+=r(s,o[u-1],o[u]);return l}function r(s,o,l){for(var u=e.zipObject(l,e.map(l,function(y,x){return x})),c=e.flatten(e.map(o,function(y){return e.sortBy(e.map(s.outEdges(y),function(x){return{pos:u[x.w],weight:s.edge(x).weight}}),"pos")}),!0),p=1;p<l.length;)p<<=1;var h=2*p-1;p-=1;var f=e.map(new Array(h),function(){return 0}),m=0;return e.forEach(c.forEach(function(y){var x=y.pos+p;f[x]+=y.weight;for(var C=0;x>0;)x%2&&(C+=f[x+1]),x=x-1>>1,f[x]+=y.weight;m+=y.weight*C})),m}return yg}var wg,Ck;function W$(){if(Ck)return wg;Ck=1;var e=st();wg=n;function n(r,s){return e.map(s,function(o){var l=r.inEdges(o);if(l.length){var u=e.reduce(l,function(c,p){var h=r.edge(p),f=r.node(p.v);return{sum:c.sum+h.weight*f.order,weight:c.weight+h.weight}},{sum:0,weight:0});return{v:o,barycenter:u.sum/u.weight,weight:u.weight}}else return{v:o}})}return wg}var xg,Tk;function V$(){if(Tk)return xg;Tk=1;var e=st();xg=n;function n(o,l){var u={};e.forEach(o,function(p,h){var f=u[p.v]={indegree:0,in:[],out:[],vs:[p.v],i:h};e.isUndefined(p.barycenter)||(f.barycenter=p.barycenter,f.weight=p.weight)}),e.forEach(l.edges(),function(p){var h=u[p.v],f=u[p.w];!e.isUndefined(h)&&!e.isUndefined(f)&&(f.indegree++,h.out.push(u[p.w]))});var c=e.filter(u,function(p){return!p.indegree});return r(c)}function r(o){var l=[];function u(h){return function(f){f.merged||(e.isUndefined(f.barycenter)||e.isUndefined(h.barycenter)||f.barycenter>=h.barycenter)&&s(h,f)}}function c(h){return function(f){f.in.push(h),--f.indegree===0&&o.push(f)}}for(;o.length;){var p=o.pop();l.push(p),e.forEach(p.in.reverse(),u(p)),e.forEach(p.out,c(p))}return e.map(e.filter(l,function(h){return!h.merged}),function(h){return e.pick(h,["vs","i","barycenter","weight"])})}function s(o,l){var u=0,c=0;o.weight&&(u+=o.barycenter*o.weight,c+=o.weight),l.weight&&(u+=l.barycenter*l.weight,c+=l.weight),o.vs=l.vs.concat(o.vs),o.barycenter=u/c,o.weight=c,o.i=Math.min(l.i,o.i),l.merged=!0}return xg}var _g,Rk;function G$(){if(Rk)return _g;Rk=1;var e=st(),n=dn();_g=r;function r(l,u){var c=n.partition(l,function(_){return e.has(_,"barycenter")}),p=c.lhs,h=e.sortBy(c.rhs,function(_){return-_.i}),f=[],m=0,y=0,x=0;p.sort(o(!!u)),x=s(f,h,x),e.forEach(p,function(_){x+=_.vs.length,f.push(_.vs),m+=_.barycenter*_.weight,y+=_.weight,x=s(f,h,x)});var C={vs:e.flatten(f,!0)};return y&&(C.barycenter=m/y,C.weight=y),C}function s(l,u,c){for(var p;u.length&&(p=e.last(u)).i<=c;)u.pop(),l.push(p.vs),c++;return c}function o(l){return function(u,c){return u.barycenter<c.barycenter?-1:u.barycenter>c.barycenter?1:l?c.i-u.i:u.i-c.i}}return _g}var Sg,jk;function Y$(){if(jk)return Sg;jk=1;var e=st(),n=W$(),r=V$(),s=G$();Sg=o;function o(c,p,h,f){var m=c.children(p),y=c.node(p),x=y?y.borderLeft:void 0,C=y?y.borderRight:void 0,_={};x&&(m=e.filter(m,function(I){return I!==x&&I!==C}));var S=n(c,m);e.forEach(S,function(I){if(c.children(I.v).length){var M=o(c,I.v,h,f);_[I.v]=M,e.has(M,"barycenter")&&u(I,M)}});var b=r(S,h);l(b,_);var k=s(b,f);if(x&&(k.vs=e.flatten([x,k.vs,C],!0),c.predecessors(x).length)){var N=c.node(c.predecessors(x)[0]),T=c.node(c.predecessors(C)[0]);e.has(k,"barycenter")||(k.barycenter=0,k.weight=0),k.barycenter=(k.barycenter*k.weight+N.order+T.order)/(k.weight+2),k.weight+=2}return k}function l(c,p){e.forEach(c,function(h){h.vs=e.flatten(h.vs.map(function(f){return p[f]?p[f].vs:f}),!0)})}function u(c,p){e.isUndefined(c.barycenter)?(c.barycenter=p.barycenter,c.weight=p.weight):(c.barycenter=(c.barycenter*c.weight+p.barycenter*p.weight)/(c.weight+p.weight),c.weight+=p.weight)}return Sg}var bg,Ak;function K$(){if(Ak)return bg;Ak=1;var e=st(),n=Jn().Graph;bg=r;function r(o,l,u){var c=s(o),p=new n({compound:!0}).setGraph({root:c}).setDefaultNodeLabel(function(h){return o.node(h)});return e.forEach(o.nodes(),function(h){var f=o.node(h),m=o.parent(h);(f.rank===l||f.minRank<=l&&l<=f.maxRank)&&(p.setNode(h),p.setParent(h,m||c),e.forEach(o[u](h),function(y){var x=y.v===h?y.w:y.v,C=p.edge(x,h),_=e.isUndefined(C)?0:C.weight;p.setEdge(x,h,{weight:o.edge(y).weight+_})}),e.has(f,"minRank")&&p.setNode(h,{borderLeft:f.borderLeft[l],borderRight:f.borderRight[l]}))}),p}function s(o){for(var l;o.hasNode(l=e.uniqueId("_root")););return l}return bg}var kg,Ik;function X$(){if(Ik)return kg;Ik=1;var e=st();kg=n;function n(r,s,o){var l={},u;e.forEach(o,function(c){for(var p=r.parent(c),h,f;p;){if(h=r.parent(p),h?(f=l[h],l[h]=p):(f=u,u=p),f&&f!==p){s.setEdge(f,p);return}p=h}})}return kg}var Eg,Mk;function Q$(){if(Mk)return Eg;Mk=1;var e=st(),n=U$(),r=H$(),s=Y$(),o=K$(),l=X$(),u=Jn().Graph,c=dn();Eg=p;function p(y){var x=c.maxRank(y),C=h(y,e.range(1,x+1),"inEdges"),_=h(y,e.range(x-1,-1,-1),"outEdges"),S=n(y);m(y,S);for(var b=Number.POSITIVE_INFINITY,k,N=0,T=0;T<4;++N,++T){f(N%2?C:_,N%4>=2),S=c.buildLayerMatrix(y);var I=r(y,S);I<b&&(T=0,k=e.cloneDeep(S),b=I)}m(y,k)}function h(y,x,C){return e.map(x,function(_){return o(y,_,C)})}function f(y,x){var C=new u;e.forEach(y,function(_){var S=_.graph().root,b=s(_,S,C,x);e.forEach(b.vs,function(k,N){_.node(k).order=N}),l(_,C,b.vs)})}function m(y,x){e.forEach(x,function(C){e.forEach(C,function(_,S){y.node(_).order=S})})}return Eg}var Ng,Pk;function Z$(){if(Pk)return Ng;Pk=1;var e=st(),n=Jn().Graph,r=dn();Ng={positionX:C,findType1Conflicts:s,findType2Conflicts:o,addConflict:u,hasConflict:c,verticalAlignment:p,horizontalCompaction:h,alignCoordinates:y,findSmallestWidthAlignment:m,balance:x};function s(b,k){var N={};function T(I,M){var O=0,H=0,L=I.length,P=e.last(M);return e.forEach(M,function(q,W){var B=l(b,q),j=B?b.node(B).order:L;(B||q===P)&&(e.forEach(M.slice(H,W+1),function(K){e.forEach(b.predecessors(K),function(U){var ee=b.node(U),J=ee.order;(J<O||j<J)&&!(ee.dummy&&b.node(K).dummy)&&u(N,U,K)})}),H=W+1,O=j)}),M}return e.reduce(k,T),N}function o(b,k){var N={};function T(M,O,H,L,P){var q;e.forEach(e.range(O,H),function(W){q=M[W],b.node(q).dummy&&e.forEach(b.predecessors(q),function(B){var j=b.node(B);j.dummy&&(j.order<L||j.order>P)&&u(N,B,q)})})}function I(M,O){var H=-1,L,P=0;return e.forEach(O,function(q,W){if(b.node(q).dummy==="border"){var B=b.predecessors(q);B.length&&(L=b.node(B[0]).order,T(O,P,W,H,L),P=W,H=L)}T(O,P,O.length,L,M.length)}),O}return e.reduce(k,I),N}function l(b,k){if(b.node(k).dummy)return e.find(b.predecessors(k),function(N){return b.node(N).dummy})}function u(b,k,N){if(k>N){var T=k;k=N,N=T}var I=b[k];I||(b[k]=I={}),I[N]=!0}function c(b,k,N){if(k>N){var T=k;k=N,N=T}return e.has(b[k],N)}function p(b,k,N,T){var I={},M={},O={};return e.forEach(k,function(H){e.forEach(H,function(L,P){I[L]=L,M[L]=L,O[L]=P})}),e.forEach(k,function(H){var L=-1;e.forEach(H,function(P){var q=T(P);if(q.length){q=e.sortBy(q,function(U){return O[U]});for(var W=(q.length-1)/2,B=Math.floor(W),j=Math.ceil(W);B<=j;++B){var K=q[B];M[P]===P&&L<O[K]&&!c(N,P,K)&&(M[K]=P,M[P]=I[P]=I[K],L=O[K])}}})}),{root:I,align:M}}function h(b,k,N,T,I){var M={},O=f(b,k,N,I),H=I?"borderLeft":"borderRight";function L(W,B){for(var j=O.nodes(),K=j.pop(),U={};K;)U[K]?W(K):(U[K]=!0,j.push(K),j=j.concat(B(K))),K=j.pop()}function P(W){M[W]=O.inEdges(W).reduce(function(B,j){return Math.max(B,M[j.v]+O.edge(j))},0)}function q(W){var B=O.outEdges(W).reduce(function(K,U){return Math.min(K,M[U.w]-O.edge(U))},Number.POSITIVE_INFINITY),j=b.node(W);B!==Number.POSITIVE_INFINITY&&j.borderType!==H&&(M[W]=Math.max(M[W],B))}return L(P,O.predecessors.bind(O)),L(q,O.successors.bind(O)),e.forEach(T,function(W){M[W]=M[N[W]]}),M}function f(b,k,N,T){var I=new n,M=b.graph(),O=_(M.nodesep,M.edgesep,T);return e.forEach(k,function(H){var L;e.forEach(H,function(P){var q=N[P];if(I.setNode(q),L){var W=N[L],B=I.edge(W,q);I.setEdge(W,q,Math.max(O(b,P,L),B||0))}L=P})}),I}function m(b,k){return e.minBy(e.values(k),function(N){var T=Number.NEGATIVE_INFINITY,I=Number.POSITIVE_INFINITY;return e.forIn(N,function(M,O){var H=S(b,O)/2;T=Math.max(M+H,T),I=Math.min(M-H,I)}),T-I})}function y(b,k){var N=e.values(k),T=e.min(N),I=e.max(N);e.forEach(["u","d"],function(M){e.forEach(["l","r"],function(O){var H=M+O,L=b[H],P;if(L!==k){var q=e.values(L);P=O==="l"?T-e.min(q):I-e.max(q),P&&(b[H]=e.mapValues(L,function(W){return W+P}))}})})}function x(b,k){return e.mapValues(b.ul,function(N,T){if(k)return b[k.toLowerCase()][T];var I=e.sortBy(e.map(b,T));return(I[1]+I[2])/2})}function C(b){var k=r.buildLayerMatrix(b),N=e.merge(s(b,k),o(b,k)),T={},I;e.forEach(["u","d"],function(O){I=O==="u"?k:e.values(k).reverse(),e.forEach(["l","r"],function(H){H==="r"&&(I=e.map(I,function(W){return e.values(W).reverse()}));var L=(O==="u"?b.predecessors:b.successors).bind(b),P=p(b,I,N,L),q=h(b,I,P.root,P.align,H==="r");H==="r"&&(q=e.mapValues(q,function(W){return-W})),T[O+H]=q})});var M=m(b,T);return y(T,M),x(T,b.graph().align)}function _(b,k,N){return function(T,I,M){var O=T.node(I),H=T.node(M),L=0,P;if(L+=O.width/2,e.has(O,"labelpos"))switch(O.labelpos.toLowerCase()){case"l":P=-O.width/2;break;case"r":P=O.width/2;break}if(P&&(L+=N?P:-P),P=0,L+=(O.dummy?k:b)/2,L+=(H.dummy?k:b)/2,L+=H.width/2,e.has(H,"labelpos"))switch(H.labelpos.toLowerCase()){case"l":P=H.width/2;break;case"r":P=-H.width/2;break}return P&&(L+=N?P:-P),P=0,L}}function S(b,k){return b.node(k).width}return Ng}var Cg,Ok;function J$(){if(Ok)return Cg;Ok=1;var e=st(),n=dn(),r=Z$().positionX;Cg=s;function s(l){l=n.asNonCompoundGraph(l),o(l),e.forEach(r(l),function(u,c){l.node(c).x=u})}function o(l){var u=n.buildLayerMatrix(l),c=l.graph().ranksep,p=0;e.forEach(u,function(h){var f=e.max(e.map(h,function(m){return l.node(m).height}));e.forEach(h,function(m){l.node(m).y=p+f/2}),p+=f+c})}return Cg}var Tg,Lk;function e4(){if(Lk)return Tg;Lk=1;var e=st(),n=O$(),r=L$(),s=$$(),o=dn().normalizeRanks,l=D$(),u=dn().removeEmptyRanks,c=F$(),p=z$(),h=B$(),f=Q$(),m=J$(),y=dn(),x=Jn().Graph;Tg=C;function C(D,Q){var te=Q&&Q.debugTiming?y.time:y.notime;te("layout",function(){var ae=te(" buildLayoutGraph",function(){return L(D)});te(" runLayout",function(){_(ae,te)}),te(" updateInputGraph",function(){S(D,ae)})})}function _(D,Q){Q(" makeSpaceForEdgeLabels",function(){P(D)}),Q(" removeSelfEdges",function(){F(D)}),Q(" acyclic",function(){n.run(D)}),Q(" nestingGraph.run",function(){c.run(D)}),Q(" rank",function(){s(y.asNonCompoundGraph(D))}),Q(" injectEdgeLabelProxies",function(){q(D)}),Q(" removeEmptyRanks",function(){u(D)}),Q(" nestingGraph.cleanup",function(){c.cleanup(D)}),Q(" normalizeRanks",function(){o(D)}),Q(" assignRankMinMax",function(){W(D)}),Q(" removeEdgeLabelProxies",function(){B(D)}),Q(" normalize.run",function(){r.run(D)}),Q(" parentDummyChains",function(){l(D)}),Q(" addBorderSegments",function(){p(D)}),Q(" order",function(){f(D)}),Q(" insertSelfEdges",function(){Y(D)}),Q(" adjustCoordinateSystem",function(){h.adjust(D)}),Q(" position",function(){m(D)}),Q(" positionSelfEdges",function(){E(D)}),Q(" removeBorderNodes",function(){J(D)}),Q(" normalize.undo",function(){r.undo(D)}),Q(" fixupEdgeLabelCoords",function(){U(D)}),Q(" undoCoordinateSystem",function(){h.undo(D)}),Q(" translateGraph",function(){j(D)}),Q(" assignNodeIntersects",function(){K(D)}),Q(" reversePoints",function(){ee(D)}),Q(" acyclic.undo",function(){n.undo(D)})}function S(D,Q){e.forEach(D.nodes(),function(te){var ae=D.node(te),ce=Q.node(te);ae&&(ae.x=ce.x,ae.y=ce.y,Q.children(te).length&&(ae.width=ce.width,ae.height=ce.height))}),e.forEach(D.edges(),function(te){var ae=D.edge(te),ce=Q.edge(te);ae.points=ce.points,e.has(ce,"x")&&(ae.x=ce.x,ae.y=ce.y)}),D.graph().width=Q.graph().width,D.graph().height=Q.graph().height}var b=["nodesep","edgesep","ranksep","marginx","marginy"],k={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},N=["acyclicer","ranker","rankdir","align"],T=["width","height"],I={width:0,height:0},M=["minlen","weight","width","height","labeloffset"],O={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},H=["labelpos"];function L(D){var Q=new x({multigraph:!0,compound:!0}),te=se(D.graph());return Q.setGraph(e.merge({},k,$(te,b),e.pick(te,N))),e.forEach(D.nodes(),function(ae){var ce=se(D.node(ae));Q.setNode(ae,e.defaults($(ce,T),I)),Q.setParent(ae,D.parent(ae))}),e.forEach(D.edges(),function(ae){var ce=se(D.edge(ae));Q.setEdge(ae,e.merge({},O,$(ce,M),e.pick(ce,H)))}),Q}function P(D){var Q=D.graph();Q.ranksep/=2,e.forEach(D.edges(),function(te){var ae=D.edge(te);ae.minlen*=2,ae.labelpos.toLowerCase()!=="c"&&(Q.rankdir==="TB"||Q.rankdir==="BT"?ae.width+=ae.labeloffset:ae.height+=ae.labeloffset)})}function q(D){e.forEach(D.edges(),function(Q){var te=D.edge(Q);if(te.width&&te.height){var ae=D.node(Q.v),ce=D.node(Q.w),me={rank:(ce.rank-ae.rank)/2+ae.rank,e:Q};y.addDummyNode(D,"edge-proxy",me,"_ep")}})}function W(D){var Q=0;e.forEach(D.nodes(),function(te){var ae=D.node(te);ae.borderTop&&(ae.minRank=D.node(ae.borderTop).rank,ae.maxRank=D.node(ae.borderBottom).rank,Q=e.max(Q,ae.maxRank))}),D.graph().maxRank=Q}function B(D){e.forEach(D.nodes(),function(Q){var te=D.node(Q);te.dummy==="edge-proxy"&&(D.edge(te.e).labelRank=te.rank,D.removeNode(Q))})}function j(D){var Q=Number.POSITIVE_INFINITY,te=0,ae=Number.POSITIVE_INFINITY,ce=0,me=D.graph(),ge=me.marginx||0,Pe=me.marginy||0;function Se(Oe){var Me=Oe.x,be=Oe.y,De=Oe.width,ye=Oe.height;Q=Math.min(Q,Me-De/2),te=Math.max(te,Me+De/2),ae=Math.min(ae,be-ye/2),ce=Math.max(ce,be+ye/2)}e.forEach(D.nodes(),function(Oe){Se(D.node(Oe))}),e.forEach(D.edges(),function(Oe){var Me=D.edge(Oe);e.has(Me,"x")&&Se(Me)}),Q-=ge,ae-=Pe,e.forEach(D.nodes(),function(Oe){var Me=D.node(Oe);Me.x-=Q,Me.y-=ae}),e.forEach(D.edges(),function(Oe){var Me=D.edge(Oe);e.forEach(Me.points,function(be){be.x-=Q,be.y-=ae}),e.has(Me,"x")&&(Me.x-=Q),e.has(Me,"y")&&(Me.y-=ae)}),me.width=te-Q+ge,me.height=ce-ae+Pe}function K(D){e.forEach(D.edges(),function(Q){var te=D.edge(Q),ae=D.node(Q.v),ce=D.node(Q.w),me,ge;te.points?(me=te.points[0],ge=te.points[te.points.length-1]):(te.points=[],me=ce,ge=ae),te.points.unshift(y.intersectRect(ae,me)),te.points.push(y.intersectRect(ce,ge))})}function U(D){e.forEach(D.edges(),function(Q){var te=D.edge(Q);if(e.has(te,"x"))switch((te.labelpos==="l"||te.labelpos==="r")&&(te.width-=te.labeloffset),te.labelpos){case"l":te.x-=te.width/2+te.labeloffset;break;case"r":te.x+=te.width/2+te.labeloffset;break}})}function ee(D){e.forEach(D.edges(),function(Q){var te=D.edge(Q);te.reversed&&te.points.reverse()})}function J(D){e.forEach(D.nodes(),function(Q){if(D.children(Q).length){var te=D.node(Q),ae=D.node(te.borderTop),ce=D.node(te.borderBottom),me=D.node(e.last(te.borderLeft)),ge=D.node(e.last(te.borderRight));te.width=Math.abs(ge.x-me.x),te.height=Math.abs(ce.y-ae.y),te.x=me.x+te.width/2,te.y=ae.y+te.height/2}}),e.forEach(D.nodes(),function(Q){D.node(Q).dummy==="border"&&D.removeNode(Q)})}function F(D){e.forEach(D.edges(),function(Q){if(Q.v===Q.w){var te=D.node(Q.v);te.selfEdges||(te.selfEdges=[]),te.selfEdges.push({e:Q,label:D.edge(Q)}),D.removeEdge(Q)}})}function Y(D){var Q=y.buildLayerMatrix(D);e.forEach(Q,function(te){var ae=0;e.forEach(te,function(ce,me){var ge=D.node(ce);ge.order=me+ae,e.forEach(ge.selfEdges,function(Pe){y.addDummyNode(D,"selfedge",{width:Pe.label.width,height:Pe.label.height,rank:ge.rank,order:me+ ++ae,e:Pe.e,label:Pe.label},"_se")}),delete ge.selfEdges})})}function E(D){e.forEach(D.nodes(),function(Q){var te=D.node(Q);if(te.dummy==="selfedge"){var ae=D.node(te.e.v),ce=ae.x+ae.width/2,me=ae.y,ge=te.x-ce,Pe=ae.height/2;D.setEdge(te.e,te.label),D.removeNode(Q),te.label.points=[{x:ce+2*ge/3,y:me-Pe},{x:ce+5*ge/6,y:me-Pe},{x:ce+ge,y:me},{x:ce+5*ge/6,y:me+Pe},{x:ce+2*ge/3,y:me+Pe}],te.label.x=te.x,te.label.y=te.y}})}function $(D,Q){return e.mapValues(e.pick(D,Q),Number)}function se(D){var Q={};return e.forEach(D,function(te,ae){Q[ae.toLowerCase()]=te}),Q}return Tg}var Rg,qk;function t4(){if(qk)return Rg;qk=1;var e=st(),n=dn(),r=Jn().Graph;Rg={debugOrdering:s};function s(o){var l=n.buildLayerMatrix(o),u=new r({compound:!0,multigraph:!0}).setGraph({});return e.forEach(o.nodes(),function(c){u.setNode(c,{label:c}),u.setParent(c,"layer"+o.node(c).rank)}),e.forEach(o.edges(),function(c){u.setEdge(c.v,c.w,{},c.name)}),e.forEach(l,function(c,p){var h="layer"+p;u.setNode(h,{rank:"same"}),e.reduce(c,function(f,m){return u.setEdge(f,m,{style:"invis"}),m})}),u}return Rg}var jg,$k;function n4(){return $k||($k=1,jg="0.8.5"),jg}var Ag,Dk;function r4(){return Dk||(Dk=1,Ag={graphlib:Jn(),layout:e4(),debug:t4(),util:{time:dn().time,notime:dn().notime},version:n4()}),Ag}var i4=r4();const Fk=nv(i4),Js=240,Xl=130,Ys=74,_u=72,zk=Ys+_u;function s4(e,n){var s;let r=Js;for(const o of e)r=Math.max(r,((s=n.get(o.id))==null?void 0:s.width)??Js);return r}const OC=420,o4=2;function ia(e){var r;return((r=e.data)==null?void 0:r.sessionId)??"_default"}function a4(e,n){return((n==null?void 0:n.get(e))??0)>0?OC:0}function l4(e,n){const r=(n==null?void 0:n.get(e))??0;return r>0?6+r*36:0}function sa(e,n,r){const s=n.get(e);return{w:((s==null?void 0:s.width)??Js)+a4(e,r),h:Math.max((s==null?void 0:s.height)??Xl,l4(e,r))}}function u4(e){return[...e.keys()].sort().map(n=>`${n}:${e.get(n)}`).join("|")}function c4(e,n,r,s,o,l){const u=new Fk.graphlib.Graph;u.setDefaultEdgeLabel(()=>({})),u.setGraph({rankdir:r,marginx:0,marginy:0,nodesep:70,ranksep:160,edgesep:30});const c=e.filter(b=>!o.has(b)),p=new Set(c);for(const b of c){const{w:k,h:N}=sa(b,s,l);u.setNode(b,{width:k,height:N})}for(const b of n)p.has(b.source)&&p.has(b.target)&&u.setEdge(b.source,b.target);Fk.layout(u);const h=new Map;let f=1/0,m=1/0,y=-1/0,x=-1/0;for(const b of c){const k=u.node(b);if(!k)continue;const N=s.get(b),T=(N==null?void 0:N.width)??Js,I=(N==null?void 0:N.height)??Xl,M=sa(b,s,l),O=k.x-M.w/2,H=k.y-M.h/2;h.set(b,{x:O,y:H}),O<f&&(f=O),H<m&&(m=H),O+T>y&&(y=O+T),H+I>x&&(x=H+I)}if(Number.isFinite(f)&&Number.isFinite(m))for(const[b,k]of h)h.set(b,{x:k.x-f,y:k.y-m});const C=Number.isFinite(y)?y-f:0,_=Number.isFinite(x)?x-m:0;let S=null;for(const b of e){const k=o.get(b);if(!k)continue;const N=s.get(b),T=(N==null?void 0:N.width)??Js,I=(N==null?void 0:N.height)??Xl;S=S===null?{minX:k.x,minY:k.y,maxX:k.x+T,maxY:k.y+I}:{minX:Math.min(S.minX,k.x),minY:Math.min(S.minY,k.y),maxX:Math.max(S.maxX,k.x+T),maxY:Math.max(S.maxY,k.y+I)}}return{positions:h,width:C,height:_,pinnedBox:S}}function d4(e,n,r={}){const s=r.direction??"LR",o=r.pinned??new Map,l=r.measured??new Map,u=r.lanes,c=new Map;for(const b of e){const k=ia(b),N=c.get(k);N?N.push(b.id):c.set(k,[b.id])}const h=Array.from(c.keys()).sort().map(b=>({sid:b,...c4(c.get(b),n,s,l,o,u)})),f=s4(e,l),m=r.availableHeight&&r.availableHeight>0?r.availableHeight:Number.POSITIVE_INFINITY,y=b=>{const k=[[]];let N=0;for(const T of h)k.length<b&&N>0&&N+T.height>m&&(k.push([]),N=0),k[k.length-1].push(T),N+=T.height+zk;return k},x=b=>b.reduce((k,N)=>Math.max(k,N.width),0)+OC;let C=y(r.availableWidth?o4:1);C.length>1&&C.reduce((k,N)=>k+x(N),0)+f*(C.length-1)>(r.availableWidth??0)&&(C=y(1));const _=new Map;let S=0;for(const b of C){const k=x(b);let N=0;for(const{positions:T,height:I,pinnedBox:M}of b){for(const[H,L]of T)_.set(H,{x:L.x+S,y:L.y+N});let O=N+I;M&&M.maxY>O&&M.minX<S+k&&S<M.maxX&&(O=M.maxY),N=O+zk}S+=k+f}return e.map(b=>{const k=o.get(b.id);if(k)return{...b,position:k};const N=_.get(b.id);return N?{...b,position:N}:b})}function f4(e,n,r,s,o){const u=Ys+_u,c=60,p=x=>sa(x,s,o),h=new Map(e.map(x=>[x.id,ia(x)])),f=[],m=e.map(x=>({id:x.id,pos:r.get(x.id)??n.get(x.id)})).filter(x=>x.pos!=null).sort((x,C)=>x.pos.y-C.pos.y||x.pos.x-C.pos.x||x.id.localeCompare(C.id)),y=[];for(const{id:x,pos:C}of m){const{w:_,h:S}=p(x),b=h.get(x)??"_default";if(r.has(x)){f.push({x:C.x,y:C.y,w:_,h:S,sid:b});continue}let k=C.y;for(let N=0;N<f.length+1;N++){const T=f.find(I=>{const M=I.sid===b?24:c,O=I.sid===b?24:u;return C.x<I.x+I.w+M&&I.x<C.x+_+M&&k<I.y+I.h+O&&I.y<k+S+O});if(!T)break;k=T.y+T.h+(T.sid===b?24:u)}k!==C.y&&(n.set(x,{x:C.x,y:k}),y.push(x)),f.push({x:C.x,y:k,w:_,h:S,sid:b})}return y}function h4(e,n,r,s,o,l){const u=_=>sa(_,s,l),c=_=>r.get(_)??n.get(_),p=new Map;for(const _ of e){if(!c(_.id))continue;const S=ia(_),b=p.get(S);b?b.push(_):p.set(S,[_])}const h=new Set;for(const[_,S]of p)S.every(b=>o.has(b.id)&&!r.has(b.id))&&h.add(_);const f=new Map,m=[];for(const _ of e){const S=c(_.id);if(!S)continue;const{w:b,h:k}=u(_.id),N=ia(_);h.has(N)?(f.get(N)??f.set(N,[]).get(N)).push(_):m.push({x:S.x,y:S.y,w:b,h:k})}if(f.size===0)return[];const y=Ys+_u,x=(_,S,b,k)=>m.some(N=>_<N.x+N.w+Ys&&N.x<_+b+Ys&&S<N.y+N.h+y&&N.y<S+k+y),C=[];for(const _ of[...f.keys()].sort()){const S=f.get(_);let b=1/0,k=1/0,N=-1/0,T=-1/0;for(const q of S){const W=c(q.id),{w:B,h:j}=u(q.id);b=Math.min(b,W.x),k=Math.min(k,W.y),N=Math.max(N,W.x+B),T=Math.max(T,W.y+j)}const I=N-b,M=T-k,O=[...new Set(m.map(q=>Math.round(q.x)))].sort((q,W)=>q-W),H=O.length?O:[b],L=[0,...m.map(q=>q.y+q.h+y)].sort((q,W)=>q-W);let P=null;e:for(const q of H)for(const W of L){if(W>=k)break;if(!x(q,W,I,M)){P={x:q,y:W};break e}}if(P){const q=P.x-b,W=P.y-k;for(const B of S){const j=c(B.id);n.set(B.id,{x:j.x+q,y:j.y+W})}C.push(_)}for(const q of S){const W=c(q.id),{w:B,h:j}=u(q.id);m.push({x:W.x,y:W.y,w:B,h:j})}}return C}function p4(e,n,r,s,o,l=!1,u){const h=Ys+_u+1,f=8,m=1.75,y=200,x=.7,C=.01,_=P=>sa(P,s,u),S=P=>r.get(P)??n.get(P),b=new Map;for(const P of e){if(!S(P.id))continue;const q=ia(P),W=b.get(q);W?W.push(P):b.set(q,[P])}const k=[],N=new Set,T=new Set,I=o.size===0;for(const P of[...b.keys()].sort()){const q=b.get(P);let W=1/0,B=1/0,j=-1/0,K=-1/0,U=!1;for(const Y of q){const E=S(Y.id),{w:$,h:se}=_(Y.id);W=Math.min(W,E.x),B=Math.min(B,E.y),j=Math.max(j,E.x+$),K=Math.max(K,E.y+se),r.has(Y.id)&&(U=!0)}const ee=j-W,J=K-B;T.add(P);const F=o.get(P);F&&(ee>F.w+f||J>F.h+f)&&N.add(P),o.set(P,{w:ee,h:J}),k.push({sid:P,members:q.map(Y=>Y.id),x:W,y:B,w:ee,h:J,anchored:U,mass:1})}for(const P of[...o.keys()])T.has(P)||o.delete(P);if(l||I)return[];let M=!1;for(let P=0;P<k.length&&!M;P++)for(let q=P+1;q<k.length;q++){const W=k[P],B=k[q];if(!(W.anchored&&B.anchored)&&Math.abs(W.x+W.w/2-(B.x+B.w/2))<(W.w+B.w)/2+61&&Math.abs(W.y+W.h/2-(B.y+B.h/2))<(W.h+B.h)/2+h){M=!0;break}}if(N.size===0&&!M)return[];if(N.size>0)for(const P of k)N.has(P.sid)&&(P.mass=8);else for(const P of k)P.mass=Math.max(1,P.w*P.h/(Js*Xl));const O=new Map(k.map(P=>[P.sid,P.x])),H=new Map(k.map(P=>[P.sid,P.y]));for(let P=0;P<y;P++){const q=new Map,W=new Map;let B=0;for(let j=0;j<k.length;j++)for(let K=j+1;K<k.length;K++){const U=k[j],ee=k[K];if(U.anchored&&ee.anchored)continue;const J=U.x+U.w/2,F=U.y+U.h/2,Y=ee.x+ee.w/2,E=ee.y+ee.h/2,$=(U.w+ee.w)/2+61-Math.abs(J-Y),se=(U.h+ee.h)/2+h-Math.abs(F-E);if($<=0||se<=0)continue;const D=(Fe,Je)=>!Fe.anchored&&!(Je<0&&Fe.x<=0),Q=(Fe,Je)=>!Fe.anchored&&!(Je<0&&Fe.y<=0),te=(Fe,Je,dt)=>{const Nt=Fe===Je,ot=Nt?U.sid<ee.sid?-1:1:Math.sign(Fe-Je);return dt(U,ot)||dt(ee,-ot)?ot:Nt&&(dt(U,-ot)||dt(ee,ot))?-ot:0},ae=te(J,Y,D),ce=te(F,E,Q),me=ae!==0,ge=ce!==0;if(!me&&!ge)continue;const Pe=me&&(!ge||$*m<se),[Se,Oe,Me,be]=Pe?[ae,$,q,D]:[ce,se,W,Q],De=be(U,Se),ye=be(ee,-Se),we=U.mass,Ue=ee.mass,ut=De?ye?Ue/(we+Ue):1:0,ct=ye?De?we/(we+Ue):1:0,Ze=Oe*x;Me.set(U.sid,(Me.get(U.sid)??0)+Se*Ze*ut),Me.set(ee.sid,(Me.get(ee.sid)??0)-Se*Ze*ct),B+=Ze}for(const j of k)j.anchored||(j.x=Math.max(0,j.x+(q.get(j.sid)??0)),j.y=Math.max(0,j.y+(W.get(j.sid)??0)));if(B<C)break}const L=[];for(const P of k){const q=P.x-O.get(P.sid),W=P.y-H.get(P.sid);if(!(Math.abs(q)<1&&Math.abs(W)<1)){for(const B of P.members){if(r.has(B))continue;const j=n.get(B);j&&n.set(B,{x:j.x+q,y:j.y+W})}L.push(P.sid)}}return L}const m4=600;function Jg(e,n){return!(e.exitAt!=null&&n-e.exitAt>m4||e.kind==="root"&&e.state==="done"&&e.tools.length===0&&e.endedAt!=null&&e.endedAt-e.startedAt<3e3)}function g4(e,n){const r=new Set;for(const s of e.agents.values())Jg(s,n)&&r.add(s.id);return r}function v4(e,n,r=0){return e.right+r>n.left&&e.left-r<n.right&&e.bottom+r>n.top&&e.top-r<n.bottom}function y4(e,n,r=0){if(!e)return!1;for(const s of n)if(v4(e,s,r))return!0;return!1}const LC="sessionGroup";function w4(e,n){var s;if(e.type===LC)return"transparent";const r=(s=e.data)==null?void 0:s.state;return n(r==="err"?"--err":r==="active"?"--inflight":"--ok")}const x4="Update checks are off (AGENTS_DECK_NO_UPDATE_CHECK=1).";function _4(e){if(e.checkDisabled)return x4;if(e.checking)return"Asking npm for the newest release…";const n=e.latest?`npm has v${e.latest}`:e.latestPending?`npm's latest tag names v${e.latestPending}, which it cannot serve yet`:"npm not reached yet",r=e.checkedAgo?` · checked ${e.checkedAgo}`:"";return`${n}${r} · re-checked periodically · click to check npm now`}function S4(e){const n=`Version v${e.running}`;return e.checkDisabled?`${n}, update checks are off`:e.checking?`${n}, checking npm for a newer release`:`${n}, check npm for a newer release`}function Uo(e){return typeof window>"u"?"":getComputedStyle(document.documentElement).getPropertyValue(e).trim()||""}function b4(e){return e<1e3?`${e}`:e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(2)}M`}const k4={agent:VP,sessionGroup:iO},E4=420,Ml=18,N4=9e4,C4=200,T4=5*6e4,R4=6,j4=2*6e4,zv="agent-dag.layout",Bv="agent-dag.viewport",qC="agent-dag.summariesDismissed",$C="agent-dag.sessionListOpen",DC="agent-dag.detailOpen",FC="agent-dag.usagePanelOpen",Bk="agent-dag.accountsPanelOpen",Uk="agent-dag.versionNoticeDismissed",A4=15*6e4,Hk={git_checkout:"this deck runs from a git checkout — pull instead:",npx:"npx runs from a cache that cannot be upgraded in place — run:",not_writable:"the install directory is not writable by this user — run:",opted_out:"installs are off (AGENTS_DECK_NO_INSTALL=1) — run:"};function I4(e){const n=Math.max(0,Math.floor(e/1e3));return n<60?"just now":n<3600?`${Math.floor(n/60)}m ago`:n<86400?`${Math.floor(n/3600)}h ago`:`${Math.floor(n/86400)}d ago`}const Wk="agent-dag.autoRestart",Vk="agent-dag.bundleReloadedFor";function M4(){if(typeof window>"u")return!1;try{return window.localStorage.getItem($C)==="1"}catch{return!1}}function P4(e){if(!(typeof window>"u"))try{window.localStorage.setItem($C,e?"1":"0")}catch{}}function O4(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(DC)==="1"}catch{return!1}}function L4(e){if(!(typeof window>"u"))try{window.localStorage.setItem(DC,e?"1":"0")}catch{}}function q4(){const e=ON(FC);return e===null?!0:e==="1"}function $4(e){if(!(typeof window>"u"))try{window.localStorage.setItem(FC,e?"1":"0")}catch{}}function D4(){if(typeof window>"u")return new Set;try{const e=window.localStorage.getItem(qC);if(!e)return new Set;const n=JSON.parse(e);return new Set(Array.isArray(n)?n.filter(r=>typeof r=="string"):[])}catch{return new Set}}function Gk(e){if(!(typeof window>"u"))try{const n=Array.from(e),r=n.length>200?n.slice(-200):n;window.localStorage.setItem(qC,JSON.stringify(r))}catch{}}function F4(){const e={positions:[],pins:[]};if(typeof window>"u")return e;try{const n=window.localStorage.getItem(zv);if(!n)return e;const r=JSON.parse(n);if(!("v"in r)){const o=Object.entries(r).filter(([,l])=>l&&typeof l.x=="number"&&typeof l.y=="number");return{positions:o,pins:o.map(([l])=>l)}}return{positions:Object.entries(r.positions??{}).filter(([,o])=>o&&typeof o.x=="number"&&typeof o.y=="number"),pins:Array.isArray(r.pins)?r.pins:[]}}catch{return e}}function Ig(e,n){if(!(typeof window>"u"))try{const r={};for(const[s,o]of e)r[s]=o;for(const[s,o]of n)r[s]=o;window.localStorage.setItem(zv,JSON.stringify({v:2,positions:r,pins:Array.from(n.keys())}))}catch{}}function z4(){if(typeof window>"u")return null;try{const e=window.localStorage.getItem(Bv);if(!e)return null;const n=JSON.parse(e);return typeof(n==null?void 0:n.x)!="number"||typeof(n==null?void 0:n.y)!="number"||typeof(n==null?void 0:n.zoom)!="number"?null:n}catch{return null}}function B4(e){if(!(typeof window>"u"))try{window.localStorage.setItem(Bv,JSON.stringify(e))}catch{}}function Yk(){if(!(typeof window>"u")){try{window.localStorage.removeItem(zv)}catch{}try{window.localStorage.removeItem(Bv)}catch{}}}function U4(e,n){const r=e.agents.get(n);if(!r)return;const s=[];for(const f of e.agents.values())f.sessionId===n&&s.push(f);const o={schemaVersion:1,exportedAt:new Date().toISOString(),sessionId:n,label:r.label,cwd:r.cwd,startedAt:r.startedAt,endedAt:r.endedAt,model:r.model,agents:s.map(f=>({id:f.id,kind:f.kind,label:f.label,parentId:f.parentId,state:f.state,startedAt:f.startedAt,endedAt:f.endedAt,model:f.model,cwd:f.cwd,usage:f.usage,prompts:f.prompts,tools:f.tools.map(m=>({id:m.id,name:m.name,inputPreview:m.inputPreview,startedAt:m.startedAt,endedAt:m.endedAt,ok:m.ok,errorPreview:m.errorPreview,usage:m.usage}))}))},l=JSON.stringify(o,null,2),u=new Blob([l],{type:"application/json"}),c=URL.createObjectURL(u),p=document.createElement("a"),h=(r.label||"session").replace(/[^a-z0-9._-]/gi,"_");p.href=c,p.download=`agents-deck-${h}-${n.slice(0,8)}.json`,document.body.appendChild(p),p.click(),document.body.removeChild(p),setTimeout(()=>URL.revokeObjectURL(c),1e3)}const ev={file:"📁",shell:"⚡",web:"🌐",agent:"🤖",task:"📋",plan:"🧭",mcp:"🔌",other:"✨"},tv={file:"file",shell:"shell",web:"web",agent:"agent",task:"task",plan:"plan",mcp:"mcp",other:"other"},H4={Read:"file",Write:"file",Edit:"file",MultiEdit:"file",Glob:"file",Grep:"file",LS:"file",NotebookEdit:"file",Bash:"shell",PowerShell:"shell",shell:"shell",exec_command:"shell",shell_command:"shell",write_stdin:"shell",wait:"shell",apply_patch:"file",update_plan:"task",WebFetch:"web",WebSearch:"web",Task:"agent",Agent:"agent",TodoWrite:"task",TaskCreate:"task",TaskUpdate:"task",TaskList:"task",TaskGet:"task",TaskOutput:"task",TaskStop:"task",EnterPlanMode:"plan",ExitPlanMode:"plan",AskUserQuestion:"plan",Skill:"plan",Workflow:"plan"};function zC(e){return e.startsWith("mcp__")?"mcp":H4[e]??"other"}function BC(e,n){var s,o,l;if(!n)return!0;const r=n.toLowerCase();if(e.label.toLowerCase().includes(r)||(s=e.cwd)!=null&&s.toLowerCase().includes(r)||(o=e.cwdBasename)!=null&&o.toLowerCase().includes(r)||e.sessionId.toLowerCase().includes(r)||(l=e.firstPrompt)!=null&&l.toLowerCase().includes(r))return!0;for(const u of e.tools)if(u.name.toLowerCase().includes(r))return!0;return!1}function W4(e,n){if(!n)return null;const r=new Set([n]);let s=n;for(;s;){const l=e.agents.get(s);if(!(l!=null&&l.parentId)||r.has(l.parentId))break;r.add(l.parentId),s=l.parentId}let o=!0;for(;o;){o=!1;for(const l of e.agents.values())l.parentId&&r.has(l.parentId)&&!r.has(l.id)&&(r.add(l.id),o=!0)}return r}function V4(e,n,r,s,o,l,u,c,p,h,f,m,y,x,C,_,S,b){const k=[],N=[],T=new Set;if(l)for(const q of e.agents.values())BC(q,l)&&T.add(q.id);for(const q of e.agents.values()){if(!S.has(q.id))continue;const W=l?!T.has(q.id):!1,B=q.exitAt!=null,j=_!=null&&!_.has(q.id),K=[W?"rf-dim":"",B?"rf-exiting":"",j?"rf-spotlit-out":""].filter(Boolean).join(" ")||void 0,U=u.get(q.id);if(k.push({id:q.id,type:"agent",position:{x:0,y:0},data:{...q,now:n,dim:W,onOpenContext:b},className:K,...U?{width:U.width,height:U.height}:null}),q.parentId&&S.has(q.parentId)){const ee=_v(q.sessionId),J=q.state==="active"?`hsl(${ee} 80% 72%)`:`hsl(${ee} 50% 55%)`,F=l&&!T.has(q.id)&&!T.has(q.parentId),Y=B,E=C.size>0&&(C.has(q.id)||C.has(q.parentId)),$=_!=null&&!_.has(q.id)&&!_.has(q.parentId),se=q.state==="active"?2:1.5,D=E?se+1.5:se,Q=F||Y?.2:$?.12:1,te=[Y?"rf-edge-exiting":"",E?"rf-edge-selected":""].filter(Boolean).join(" ")||void 0;N.push({id:`e:${q.parentId}->${q.id}`,source:q.parentId,target:q.id,animated:(q.state==="active"||E)&&!F&&!Y,type:"smoothstep",style:{stroke:J,strokeWidth:D,opacity:Q,transition:"opacity 500ms ease, stroke-width 200ms ease"},className:te})}}const I=new Map;for(const q of e.agents.values())q.tools.length>0&&I.set(q.id,Math.min(4,q.tools.length));const M=`${y}#lanes:${u4(I)}`,O=k.filter(q=>!o.has(q.id)&&!m.has(q.id));if(O.length>0||M!==x.current){if(O.length>0){const q=d4(k,N,{direction:"LR",pinned:o,measured:u,availableWidth:r,availableHeight:s,lanes:I});for(const W of q)m.has(W.id)||m.set(W.id,W.position);h4(k,m,o,u,new Set(O.map(W=>W.id)),I)}f4(k,m,o,u,I),x.current=M}const H=p4(k,m,o,u,c,!h||f,I);H.length>0&&p(H),hd(m,e.agents),hd(o,e.agents),hd(u,j3(e.agents.values()));const L=[];let P=!1;for(const q of k){let W=o.get(q.id)??m.get(q.id);W||(W={x:0,y:0},m.set(q.id,W),P=!0),L.push({...q,position:W})}return P&&(x.current=""),{nodes:L,edges:N}}function G4(){return g.jsx(wv,{children:g.jsx(Y4,{})})}function Y4(){var Ri,hs,fo,zn;const e=ca(),n=A.useRef(Kg()),[,r]=A.useState(0),s=A.useCallback(()=>r(V=>V+1),[]),[o,l]=A.useState(()=>new Set),[u,c]=A.useState(null),[p,h]=A.useState(null),f=A.useCallback((V,X)=>{l(oe=>{if(!X)return new Set([V]);const ue=new Set(oe);return ue.has(V)?ue.delete(V):ue.add(V),ue}),c(oe=>X&&oe===V?oe:V)},[]),m=A.useCallback(()=>{l(new Set),c(null)},[]),[y,x]=A.useState(null),[C,_]=A.useState(null),S=A.useCallback(V=>_(V),[]),b=A.useRef(D4()),[k,N]=A.useState(M4);A.useEffect(()=>{P4(k)},[k]);const[T,I]=A.useState(O4);A.useEffect(()=>{L4(T)},[T]);const[M,O]=A.useState(q4);A.useEffect(()=>{$4(M)},[M]);const[H,L]=A.useState(()=>{try{const V=window.localStorage.getItem(Bk);return V===null?!0:V==="1"}catch{return!0}});A.useEffect(()=>{try{window.localStorage.setItem(Bk,H?"1":"0")}catch{}},[H]);const[P,q]=A.useState(null),[W,B]=A.useState(!1),[j,K]=A.useState(0),[U,ee]=A.useState(0);A.useEffect(()=>{fetch("/api/sound-hook").then(V=>V.ok?V.json():null).then(V=>{V!=null&&V.ok&&(q(V.enabled===!0),K((V.foreign??[]).filter(X=>X.worksHere).length),ee(typeof V.parked=="number"?V.parked:0))}).catch(()=>{})},[]);const J=A.useCallback(async()=>{B(!0);try{const X=await(await fetch("/api/sound-hook",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:!P})})).json().catch(()=>null);X!=null&&X.ok&&q(X.enabled===!0),fetch("/api/sound-hook").then(oe=>oe.ok?oe.json():null).then(oe=>{oe!=null&&oe.ok&&(K((oe.foreign??[]).filter(ue=>ue.worksHere).length),ee(typeof oe.parked=="number"?oe.parked:0))}).catch(()=>{})}catch{}finally{B(!1)}},[P]),[F,Y]=A.useState(!1),[E,$]=A.useState(null),[se,D]=A.useState(()=>{if(typeof window>"u")return"";try{return window.localStorage.getItem(Uk)??""}catch{return""}}),[Q,te]=A.useState(!1),ae=A.useRef(0),[ce,me]=A.useState(!1),ge=A.useCallback((V=!1)=>{V&&(ae.current=Date.now(),me(!0)),fetch(V?"/api/version?refresh=1":"/api/version").then(X=>X.ok?X.json():null).then(X=>{X&&$(X)}).catch(()=>{}).finally(()=>{V&&me(!1)})},[]),Pe=A.useCallback(()=>{ge(Date.now()-ae.current>=A4)},[ge]);A.useEffect(()=>{ge();const V=window.setInterval(Pe,5*6e4),X=()=>{document.visibilityState==="visible"&&Pe()};return document.addEventListener("visibilitychange",X),()=>{window.clearInterval(V),document.removeEventListener("visibilitychange",X)}},[ge,Pe]),A.useEffect(()=>{F&&ge()},[F,ge]);const Se=(E==null?void 0:E.notice)??null,Oe=Se?`${Se.kind}:${Se.to}`:"",Me=Se!=null&&se!==Oe,be=A.useCallback(()=>{if(!Se)return;const V=se===Oe?"":Oe;D(V);try{window.localStorage.setItem(Uk,V)}catch{}},[Se,Oe,se]),De=((Ri=E==null?void 0:E.upgrade)==null?void 0:Ri.state)??"idle",ye=S3(E==null?void 0:E.upgrade),we=A.useCallback(async()=>{try{await fetch("/api/upgrade",{method:"POST"})}catch{}ge()},[ge]);A.useEffect(()=>{if(De!=="running")return;const V=window.setInterval(ge,3e3);return()=>window.clearInterval(V)},[De,ge]);const Ue=A.useCallback(async()=>{var oe;const V=E==null?void 0:E.command;if(!V)return;let X=!1;try{X=await Promise.race([((oe=navigator.clipboard)==null?void 0:oe.writeText(V).then(()=>!0))??Promise.resolve(!1),new Promise(ue=>window.setTimeout(()=>ue(!1),500))])}catch{X=!1}if(!X)try{const ue=document.createElement("textarea");ue.value=V,ue.setAttribute("readonly",""),ue.style.cssText="position:fixed;top:0;left:0;opacity:0",document.body.appendChild(ue),ue.select(),X=document.execCommand("copy"),ue.remove()}catch{X=!1}X&&(te(!0),window.setTimeout(()=>te(!1),1600))},[E==null?void 0:E.command]),ut=A.useCallback(()=>{N(V=>(V||L(!1),!V))},[]),ct=A.useCallback(()=>{L(V=>(V||N(!1),!V))},[]),[Ze,Fe]=A.useState(!1),[Je,dt]=A.useState(0),Nt=A.useRef(null),[ot,gt]=A.useState(!1),Ct=A.useRef(null),[Ft,Xe]=A.useState(0),vt=A.useRef(P3()),[ft,wt]=A.useState(!1),fn=A.useCallback(()=>{const V=vt.current,X=V.setPaused(!V.paused);for(const oe of X)n.current=ix(n.current,oe);wt(V.paused)},[]),[Ye,zt]=A.useState(Date.now()),[Gt,pr]=A.useState(()=>{if(typeof window>"u")return!0;try{return window.localStorage.getItem(Wk)!=="0"}catch{return!0}}),In=A.useCallback(()=>{pr(V=>{const X=!V;try{window.localStorage.setItem(Wk,X?"1":"0")}catch{}return X})},[]),[Tt,Qt]=A.useState(!1),[vn,ts]=A.useState("restart"),[pi,mi]=A.useState(null),Mn=A.useRef(!1),Lr=A.useRef(null),gi=A.useRef(0),yn=A.useCallback(async V=>{if(Mn.current)return;const X=(V==null?void 0:V.upgrade)===!0;Mn.current=!0,Lr.current=ye;const oe=++gi.current;ts(X?"npx":"restart"),Qt(!0);try{window.sessionStorage.setItem("agent-dag.restartPending",(Se==null?void 0:Se.to)??"")}catch{}try{await fetch("/api/restart",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({upgrade:X})})}catch{}window.setTimeout(()=>{if(gi.current===oe&&Mn.current){Mn.current=!1,Qt(!1);try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}}},X?18e4:3e4)},[Se==null?void 0:Se.to,ye]),qr=A.useRef(null);A.useEffect(()=>{let V=!1;for(const oe of n.current.agents.values())if(oe.state==="active"){V=!0;break}const X=k3({enabled:Gt,kind:Se==null?void 0:Se.kind,canRestart:(E==null?void 0:E.canRestart)===!0,busy:V,idleSince:qr.current,now:Ye});qr.current=X.idleSince,X.restart&&yn()},[Gt,Se==null?void 0:Se.kind,E==null?void 0:E.canRestart,Ye,yn]),A.useEffect(()=>{const V=E==null?void 0:E.running;let X=null,oe=null;try{X=window.sessionStorage.getItem("agent-dag.restartPending"),oe=window.sessionStorage.getItem(Vk)}catch{return}const ue=_3({bundle:"1.33.103",running:V,pending:X,lastTried:oe});if(ue==="reload"){try{window.sessionStorage.setItem(Vk,V??"")}catch{return}window.location.reload();return}if(ue!=="confirm")return;try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}Mn.current=!1,Qt(!1),mi(V??null);const ve=window.setTimeout(()=>mi(null),6e3);return()=>window.clearTimeout(ve)},[E==null?void 0:E.running]),A.useEffect(()=>{if(Tt&&b3({asked:Lr.current,reported:ye})){try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}Mn.current=!1,Qt(!1)}},[Tt,ye]);const Pn=A.useRef(F4()).current;A.useRef(!1);const Ot=A.useRef(new Map(Pn.positions.filter(([V])=>Pn.pins.includes(V)))),wn=A.useRef(null),On=A.useState(()=>z4())[0],[Zt,$r]=A.useState(""),[ns,so]=A.useState(()=>new Set),[nr,xn]=A.useState(()=>ON("agent-dag.theme")??"dark"),[vi,rs]=A.useState(!1),is=A.useRef(null);A.useEffect(()=>{document.documentElement.dataset.theme=nr;try{window.localStorage.setItem("agent-dag.theme",nr)}catch{}},[nr]),A.useEffect(()=>{if(!On)return;const V=window.setTimeout(()=>{try{e.setViewport(On,{duration:0})}catch{}},60);return()=>window.clearTimeout(V)},[e,On]);const yi=A.useRef(!0);A.useEffect(()=>{const V=new EventSource("/events"),X=M3(s,{now:()=>Date.now(),setTimeout:(oe,ue)=>window.setTimeout(oe,ue),clearTimeout:oe=>window.clearTimeout(oe)});return V.addEventListener("open",()=>{Y(!0),rs(!0)}),V.addEventListener("error",()=>Y(!1)),V.addEventListener("replay-end",()=>{yi.current=!1,X.flush()}),V.addEventListener("hook",oe=>{try{const ue=JSON.parse(oe.data);if(!vt.current.accept(ue))return;n.current=ix(n.current,ue),ue.replay===!0||yi.current||Date.now()-ue.receivedAt>3e4?X.replay():X.live()}catch{}}),()=>{V.close(),X.cancel()}},[s]),A.useEffect(()=>{const V=setInterval(()=>{const X=Date.now();zt(X);let oe=IP(n.current,X,N4);jP(n.current,X,C4,T4)&&(oe=!0),AP(n.current,X,R4,j4)&&(oe=!0),oe&&s()},250);return()=>clearInterval(V)},[s]);const Dr=A.useRef(null),Ln=A.useRef(0),ss=420,Yt=A.useCallback((V=500)=>{try{const ke=document.querySelector(".canvas-wrap"),Ne=Array.from(document.querySelectorAll(".react-flow__node")).filter(ht=>ht.offsetWidth>0);if(!ke||Ne.length===0)return;const Le=ke.getBoundingClientRect(),We=e.getViewport();if(!Number.isFinite(We.zoom)||We.zoom<=0)return;const Ve=ht=>(ht-Le.left-We.x)/We.zoom,rt=ht=>(ht-Le.top-We.y)/We.zoom,tn=Ne.map(ht=>ht.getBoundingClientRect()),yr=Math.min(...tn.map(ht=>Ve(ht.left))),wr=Math.max(...tn.map(ht=>Ve(ht.right))),or=Math.min(...tn.map(ht=>rt(ht.top))),ps=Math.max(...tn.map(ht=>rt(ht.bottom))),Sa=wr-yr,ms=ps-or;if(!(Sa>0&&ms>0))return;const Bn=Math.max(.2,Math.min(1,(Le.width-160)/(Sa+ss)*.86,(Le.height-160)/ms*.86));e.setViewport({x:80-yr*Bn,y:Math.max(80,(Le.height-ms*Bn)/2)-or*Bn,zoom:Bn},{duration:V}),Ln.current=Date.now(),window.setTimeout(()=>{try{const ht={x:80-yr*Bn,y:Math.max(80,(Le.height-ms*Bn)/2)-or*Bn,zoom:Bn},ba=e.getViewport();(Math.abs(ba.zoom-Bn)>.01||Math.abs(ba.x-ht.x)>2)&&e.setViewport(ht,{duration:0})}catch{}},V+60)}catch{}},[e]),wi=A.useRef(""),Qe=A.useRef(null),os=A.useRef(0),rr=A.useCallback(()=>{os.current=Date.now()},[]),Fr="agent-dag.autoFitDisabled",Jt=A.useRef((()=>{if(typeof window>"u")return!1;try{return window.localStorage.getItem(Fr)==="1"}catch{return!1}})()),[xi,_i]=A.useState(Jt.current),mr=A.useCallback(()=>{if(!Jt.current){Jt.current=!0,_i(!0);try{window.localStorage.setItem(Fr,"1")}catch{}}},[]),en=A.useCallback(()=>{Jt.current=!1,_i(!1);try{window.localStorage.removeItem(Fr)}catch{}Yt(400)},[e,Yt]);A.useEffect(()=>{const V=setInterval(()=>{if(Jt.current||Date.now()-os.current<800)return;const X=n.current,oe=Date.now(),ue=[];for(const Ve of X.agents.values())Jg(Ve,oe)&&ue.push({id:Ve.id});if(ue.length===0)return;const ve=e.getViewport(),ke=window.innerWidth-360,Ne=window.innerHeight-52;let Le=!1,We=!1;for(const{id:Ve}of ue){const rt=Rt.current.get(Ve),tn=Ot.current.get(Ve)??jt.current.get(Ve);if(!rt||!tn)continue;We=!0;const yr=tn.x*ve.zoom+ve.x,wr=tn.y*ve.zoom+ve.y,or=(tn.x+rt.width)*ve.zoom+ve.x,ps=(tn.y+rt.height)*ve.zoom+ve.y;if(or>0&&yr<ke&&ps>0&&wr<Ne){Le=!0;break}}We&&!Le&&Yt(600)},1500);return()=>clearInterval(V)},[e]);const gr=A.useRef(!1),Rt=A.useRef(new Map),va=A.useRef(0),Su=A.useCallback(V=>{const X=Rt.current;let oe=!1;for(const ue of V.nodeInternals.values()){const ve=ue.width,ke=ue.height;if(ve==null||ke==null)continue;const Ne=X.get(ue.id);Ne?(Math.abs(Ne.height-ke)>4||Math.abs(Ne.width-ve)>4)&&(X.set(ue.id,{width:ve,height:ke}),oe=!0):(X.set(ue.id,{width:ve,height:ke}),oe=!0)}return oe&&(va.current+=1),va.current},[]),ya=Ke(Su),[Si,as]=A.useState(0);A.useEffect(()=>{let V=0;const X=()=>{const ue=Rt.current;let ve=!1;for(const ke of document.querySelectorAll(".react-flow__node[data-id]")){const Ne=ke.getAttribute("data-id");if(!Ne)continue;const Le=ke.offsetWidth,We=ke.offsetHeight;if(!Le||!We)continue;const Ve=ue.get(Ne);(!Ve||Math.abs(Ve.width-Le)>4||Math.abs(Ve.height-We)>4)&&(ue.set(Ne,{width:Le,height:We}),ve=!0)}ve&&as(ke=>ke+1)};if(gr.current)return;let oe=0;return document.visibilityState==="hidden"?oe=window.setTimeout(X,32):V=requestAnimationFrame(X),()=>{cancelAnimationFrame(V),window.clearTimeout(oe)}});const jt=A.useRef(new Map(Pn.positions)),zr=A.useRef(""),Br=A.useMemo(()=>{const V=[];for(const X of n.current.agents.values())Jg(X,Ye)&&V.push(X.id+(X.parentId?`>${X.parentId}`:""));return V.sort(),`${V.join("|")}#sv${ya}.${Si}`},[n.current,n.current.lastSeq,Ye,ya,Si]),bi=A.useRef(null);A.useEffect(()=>(bi.current!=null&&window.clearTimeout(bi.current),bi.current=window.setTimeout(()=>{Ig(jt.current,Ot.current)},1500),()=>{bi.current!=null&&window.clearTimeout(bi.current)}),[Br]),A.useEffect(()=>{if(wi.current===Br)return;const V=wi.current;if(wi.current=Br,!V||Jt.current)return;Date.now()-Ln.current>1200&&Yt(400),Dr.current&&window.clearTimeout(Dr.current),Dr.current=window.setTimeout(()=>{Jt.current||Yt(500)},280)},[Br,e,Yt]);const ki=A.useMemo(()=>{if(o.size===0)return null;const V=new Set;for(const X of o){const oe=W4(n.current,X);if(oe)for(const ue of oe)V.add(ue)}return V.size>0?V:null},[n.current,n.current.lastSeq,o]),ls=A.useMemo(()=>g4(n.current,Ye),[n.current,n.current.lastSeq,Ye]),us=A.useRef(null),[ir,wa]=A.useState({w:0,h:0});A.useEffect(()=>{const V=us.current;if(!V||typeof ResizeObserver>"u")return;const X=new ResizeObserver(oe=>{var ve;const ue=(ve=oe[0])==null?void 0:ve.contentRect;ue&&wa(ke=>Math.abs(ke.w-ue.width)>40||Math.abs(ke.h-ue.height)>40?{w:ue.width,h:ue.height}:ke)});return X.observe(V),wa({w:V.clientWidth,h:V.clientHeight}),()=>X.disconnect()},[]);const oo=A.useRef(new Map),[He,xa]=A.useState(!1);A.useEffect(()=>{const V=window.setTimeout(()=>xa(!0),2500);return()=>window.clearTimeout(V)},[]);const[_a,Ei]=A.useState(!1),qn=A.useRef(null),[cs,ao]=A.useState(!1),lo=A.useCallback(()=>{qn.current&&(window.clearTimeout(qn.current),qn.current=null),Ei(!1)},[]),ds=A.useCallback(V=>{V.length!==0&&queueMicrotask(()=>{Ei(!0),qn.current&&window.clearTimeout(qn.current),qn.current=window.setTimeout(()=>Ei(!1),E4+80)})},[]);A.useEffect(()=>()=>{qn.current&&window.clearTimeout(qn.current)},[]);const $n=ir.w>0?ir.w*.92:0,Dn=ir.h>0?ir.h:0,{nodes:At,edges:Ni}=A.useMemo(()=>V4(n.current,Ye,$n,Dn,Ot.current,Zt,Rt.current,oo.current,ds,He,cs,jt.current,Br,zr,o,ki,ls,S),[n.current,n.current.lastSeq,Ye,$n,Dn,He,cs,Zt,Br,o,ki,ls,S,Je]),Ur=A.useMemo(()=>{const V=new Map;for(const oe of At){const ue=oe.data;if(!(ue!=null&&ue.sessionId)||ue.exitAt!=null)continue;const ve=oe.width,ke=oe.height;if(ve==null||ke==null)continue;const Ne=oe.position.x,Le=oe.position.y,We=Ne+ve,Ve=Le+ke,rt=V.get(ue.sessionId);rt?(rt.minX=Math.min(rt.minX,Ne),rt.minY=Math.min(rt.minY,Le),rt.maxX=Math.max(rt.maxX,We),rt.maxY=Math.max(rt.maxY,Ve)):V.set(ue.sessionId,{minX:Ne,minY:Le,maxX:We,maxY:Ve})}const X=[];for(const[oe,ue]of V){const ve=ue.maxX-ue.minX+Ml*2,ke=ue.maxY-ue.minY+Ml*2;X.push({id:`group:${oe}`,type:LC,position:{x:ue.minX-Ml,y:ue.minY-Ml},data:{sessionId:oe,w:ve,h:ke},width:ve,height:ke,style:{width:ve,height:ke},zIndex:-1,draggable:!0,selectable:!1,focusable:!1,deletable:!1,connectable:!1})}return X},[At,Ye]),sr=A.useMemo(()=>{const V=[...Ur,...At],X=Ct.current;return!X||X.size===0?V:V.map(oe=>{const ue=X.get(oe.id);return ue?{...oe,position:ue}:oe})},[Ur,At,Ft]),bu=A.useMemo(()=>{if(!Zt)return null;const V=new Set;for(const X of n.current.agents.values())BC(X,Zt)&&V.add(X.id);return V},[n.current,n.current.lastSeq,Zt]),Ci=A.useMemo(()=>{const V=new Set;for(const X of n.current.agents.values())for(const oe of X.tools)V.add(zC(oe.name));return Object.keys(ev).filter(X=>V.has(X))},[n.current,n.current.lastSeq]);A.useEffect(()=>{if(Ci.length<=1){gt(!1);return}let V=0;const X=()=>{const oe=Nt.current;if(oe&&!document.hidden){const ue=oe.getBoundingClientRect(),ve=Array.from(document.querySelectorAll(".react-flow__node, .tool-burst")).map(Ne=>Ne.getBoundingClientRect()),ke=y4(ue,ve,8);gt(Ne=>Ne===ke?Ne:ke)}V=window.setTimeout(X,300)};return X(),()=>window.clearTimeout(V)},[Ci.length]);const Fn=A.useMemo(()=>{const V=new Map;for(const oe of n.current.agents.values())for(const ue of oe.tools){if(!ue.name.startsWith("mcp__"))continue;const ve=ue.name.slice(5),ke=ve.indexOf("__"),Ne=ke>0?ve.slice(0,ke):ve;V.set(Ne,(V.get(Ne)??0)+1)}const X=[];for(const[oe,ue]of V){let ve=5381;for(let ke=0;ke<oe.length;ke++)ve=(ve<<5)+ve^oe.charCodeAt(ke);X.push({server:oe,count:ue,hue:Math.abs(ve)%360})}return X.sort((oe,ue)=>ue.count-oe.count),X},[n.current,n.current.lastSeq]),ku=A.useCallback(V=>{so(X=>{const oe=new Set(X);return oe.has(V)?oe.delete(V):oe.add(V),oe})},[]),Lt=u?n.current.agents.get(u):null,Ti=p?Array.from(n.current.agents.values()).flatMap(V=>V.tools).find(V=>V.id===p)??null:null,fs=A.useCallback(async()=>{try{await fetch("/api/clear",{method:"POST"})}catch{}n.current=Kg(),Ot.current.clear(),Rt.current.clear(),jt.current.clear(),zr.current="",Yk(),m(),s()},[s,m]),uo=A.useCallback(()=>{Ot.current.clear(),jt.current.clear(),zr.current="",Yk(),s(),window.setTimeout(()=>Yt(500),80)},[s,e,Yt]),Hr=A.useCallback(()=>Yt(500),[Yt]),Wr=A.useRef(At);Wr.current=At;const vr=A.useRef(u);vr.current=u;const Vr=A.useCallback(V=>{const X=Wr.current;if(X.length===0)return;const oe=X.slice().sort((Le,We)=>Le.position.y-We.position.y||Le.position.x-We.position.x),ue=vr.current,ve=ue?oe.findIndex(Le=>Le.id===ue):-1;let ke;ve===-1?ke=V===1?0:oe.length-1:ke=(ve+V+oe.length)%oe.length;const Ne=oe[ke];Ne&&(f(Ne.id,!1),window.setTimeout(()=>{try{e.fitView({padding:.35,duration:350,nodes:[Ne]})}catch{}Ln.current=Date.now()},30))},[f,e]);A.useEffect(()=>{const V=X=>{var ve,ke;const oe=X.target,ue={tagName:oe==null?void 0:oe.tagName,isContentEditable:oe==null?void 0:oe.isContentEditable,role:(ve=oe==null?void 0:oe.getAttribute)==null?void 0:ve.call(oe,"role"),type:oe==null?void 0:oe.type};if(X.key==="Escape"){PN(ue)?oe==null||oe.blur():m();return}if(!R3(ue)&&!E3(X)){if(X.key==="/"){X.preventDefault(),(ke=is.current)==null||ke.focus();return}X.key===" "&&(X.preventDefault(),fn()),(X.key==="c"||X.key==="C")&&fs(),(X.key==="r"||X.key==="R")&&uo(),(X.key==="f"||X.key==="F")&&Hr(),(X.key==="l"||X.key==="L")&&ut(),(X.key==="h"||X.key==="H")&&Fe(Ne=>!Ne),(X.key==="u"||X.key==="U")&&O(Ne=>!Ne),(X.key==="a"||X.key==="A")&&ct(),(X.key==="j"||X.key==="J")&&Vr(1),(X.key==="k"||X.key==="K")&&Vr(-1),(X.key==="t"||X.key==="T")&&xn(Ne=>Ne==="dark"?"light":"dark")}};return window.addEventListener("keydown",V),()=>window.removeEventListener("keydown",V)},[fs,uo,Hr,m,Vr,fn]);const co=n.current.agents.size,Eu=new Set(Array.from(n.current.agents.values()).map(V=>V.sessionId)).size,Bt=A.useMemo(()=>{let V=0,X=0,oe=0,ue=0,ve=0,ke=0,Ne=0,Le=0,We=0;for(const Ve of n.current.agents.values()){V+=Ve.usage.inputTokens,X+=Ve.usage.outputTokens,oe+=Ve.usage.cacheReadTokens,ue+=Ve.usage.cacheCreateTokens;const rt=cn(Ve.usage,Ve.model);ve+=rt.total,ke+=rt.input,Ne+=rt.output,Le+=rt.cacheRead,We+=rt.cacheWrite}return{inT:V,outT:X,cacheR:oe,cacheC:ue,sum:V+X,cost:{total:ve,input:ke,output:Ne,cacheRead:Le,cacheWrite:We}}},[n.current,n.current.lastSeq]);return g.jsxs("div",{className:"app",children:[g.jsxs("header",{className:"topbar",children:[g.jsxs("div",{className:"brand",children:[g.jsx("span",{className:"logo"}),"agents-deck",Se?g.jsxs("button",{type:"button",className:"v stale",onClick:be,title:Se.kind==="restart"?`Running v${Se.from}; v${Se.to} is installed on disk. Restart to pick it up.`:`Running v${Se.from}; v${Se.to} is on npm.`,children:["v",Se.from,g.jsx("span",{className:"v-dot","aria-hidden":!0})]}):(()=>{const V={running:(E==null?void 0:E.running)??"1.33.103",latest:E==null?void 0:E.latest,latestPending:E==null?void 0:E.latestPending,checkedAgo:E!=null&&E.checkedAt?I4(Ye-E.checkedAt):null,checkDisabled:E==null?void 0:E.checkDisabled,checking:ce};return g.jsxs("button",{type:"button",className:ce?"v checking":"v",onClick:()=>ge(!0),"aria-busy":ce||void 0,"aria-label":S4(V),title:_4(V),children:["v",V.running]})})()]}),Lt&&(()=>{const V=cn(Lt.usage,Lt.model),X=Math.max(0,((Lt.endedAt??Ye)-Lt.startedAt)/1e3),oe=Lt.state==="active"?Yl(V.total,X):null,ue=o.size-1;return g.jsxs("button",{type:"button",className:"selected-ribbon",title:`Fit view to ${Lt.label}`,onClick:()=>{try{const ve=At.find(ke=>ke.id===Lt.id);ve&&e.fitView({padding:.35,duration:500,nodes:[ve]}),Ln.current=Date.now()}catch{}},children:[g.jsx("span",{className:`state-pill state-${Lt.state}`,children:Lt.state==="active"?"live":Lt.state}),g.jsx("span",{className:"selected-label",children:Lt.label}),V.total>0&&g.jsxs("span",{className:"selected-cost",children:[ze(V.total),oe?g.jsxs("span",{className:"selected-rate",children:[" · ",oe]}):null]}),ue>0&&g.jsxs("span",{className:"selected-extra",children:["+",ue]}),g.jsx("span",{role:"button","aria-label":"Deselect",className:"selected-close",onClick:ve=>{ve.stopPropagation(),m()},children:"×"})]})})(),g.jsxs("div",{className:"actions",children:[g.jsxs("div",{className:"search",children:[g.jsx("span",{className:"search-icon","aria-hidden":!0,children:"⌕"}),g.jsx("input",{ref:is,type:"text",placeholder:"Search agents, cwd, tools…",value:Zt,onChange:V=>$r(V.target.value),spellCheck:!1,"aria-label":"Filter the graph"}),Zt?g.jsx("button",{className:"search-clear","aria-label":"Clear search",onClick:()=>$r(""),children:"×"}):g.jsx("kbd",{className:"search-kbd","aria-hidden":!0,children:"/"})]}),g.jsxs("span",{className:"status",role:"status",children:[g.jsx("span",{className:`pill ${F?"live":"dead"}`,title:F?"Receiving events":"SSE disconnected",children:F?"live":"offline"}),g.jsxs("span",{className:"stat",title:"Distinct CC sessions",children:[g.jsx("span",{className:"count",children:Eu}),g.jsx("span",{className:"lbl",children:"sessions"})]}),g.jsxs("span",{className:"stat",title:"Total agents (root + subagents)",children:[g.jsx("span",{className:"count",children:co}),g.jsx("span",{className:"lbl",children:"agents"})]}),g.jsxs("span",{className:"stat",title:"Total hook events received",children:[g.jsx("span",{className:"count",children:n.current.totalEvents}),g.jsx("span",{className:"lbl",children:"events"})]}),Bt.sum>0&&g.jsxs("span",{className:"stat",title:`in:${Bt.inT.toLocaleString()} out:${Bt.outT.toLocaleString()} cache-r:${Bt.cacheR.toLocaleString()} cache-c:${Bt.cacheC.toLocaleString()}`,children:[g.jsx("span",{className:"count",children:b4(Bt.sum)}),g.jsx("span",{className:"lbl",children:"tokens"})]}),Fn.length>0&&g.jsxs("span",{className:"stat mcp-legend",title:`MCP servers seen this session:
|
|
59
|
+
burn: ${y}`:"");return g.jsxs("span",{className:"cost-meta",title:x,children:[g.jsx("b",{children:ze(f.total)}),y&&g.jsx("span",{className:"cost-rate",children:y})]})})()]}),g.jsx(Zs,{type:"source",position:Re.Right,style:{background:"transparent",border:"none"}})]})}function GP({state:e}){const n=e==="active"?"live":e==="done"?"done":"err";return g.jsx("span",{className:`state-pill state-${e}`,children:n})}function YP(e){return e<1e3?`${e}`:e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(2)}M`}function KP({tools:e,now:n}){const l=new Array(24).fill(0);let u=0;for(const y of e){const x=n-y.startedAt;if(x<0||x>=6e4)continue;const C=23-Math.floor(x/2500);C>=0&&C<24&&(l[C]+=1,u+=1)}const c=Math.max(1,...l),p=132,h=14,f=p/24,m=c/(2500/1e3);return g.jsxs("div",{className:"tool-spark-row",title:`${u} tool calls in last 60s · peak ${m.toFixed(1)}/s`,children:[g.jsx("svg",{className:"tool-spark",width:p,height:h,viewBox:`0 0 ${p} ${h}`,"aria-hidden":!0,children:l.map((y,x)=>{const C=y===0?1.5:Math.max(1.5,y/c*h),_=x===23&&y>0,b=`tool-spark-bar${y>0?" active":""}${_?" latest":""}`;return g.jsx("rect",{x:x*f+.4,y:h-C,width:Math.max(.5,f-1),height:C,rx:.8,className:b},x)})}),g.jsx("span",{className:"tool-spark-label",children:"60s"})]})}function da(e){const n=e.match(/^claude[-_](opus|sonnet|haiku|fable|mythos)[-_](\d+(?:[-_.]\d+)*)/i);if(n){const o=n[1][0].toUpperCase()+n[1].slice(1).toLowerCase(),l=n[2].replace(/[-_]/g,".");return`${o} ${l}`}const r=e.match(/^gpt[-_](\d+(?:[-_.]\d+)*)[-_]codex\b/i);if(r)return`GPT-${r[1].replace(/[-_]/g,".")} Codex`;const s=e.match(/^gpt[-_](\d+(?:[-_.]\d+)*)/i);return s?`GPT-${s[1].replace(/[-_]/g,".")}`:e}function ox(e){if(e==null)return"(none)";if(typeof e=="string")return e;try{return JSON.stringify(e,null,2)}catch{return String(e)}}function XP(e){if(e.endedAt==null)return"in-flight…";const n=e.endedAt-e.startedAt;return n<1e3?`${n}ms`:`${(n/1e3).toFixed(2)}s`}function QP({tool:e,onClose:n}){A.useEffect(()=>{const s=o=>{o.key==="Escape"&&n()};return window.addEventListener("keydown",s),()=>window.removeEventListener("keydown",s)},[n]);const r=e.endedAt==null?"inflight":e.ok===!1?"err":"done";return g.jsx("div",{className:"modal-backdrop",onClick:n,role:"dialog","aria-modal":"true",children:g.jsxs("div",{className:"modal",onClick:s=>s.stopPropagation(),children:[g.jsxs("header",{className:"modal-head",children:[g.jsxs("div",{className:"modal-title",children:[g.jsx("span",{className:`status-dot ${r}`}),g.jsx("span",{className:"modal-tool-name",children:e.name}),g.jsxs("span",{className:"modal-tool-id",title:e.id,children:[e.id.slice(0,12),"…"]})]}),g.jsxs("div",{className:"modal-actions",children:[g.jsx("span",{className:"modal-dur",children:XP(e)}),g.jsx("button",{className:"btn icon-btn",onClick:n,"aria-label":"Close (Esc)",title:"Close (Esc)",children:"×"})]})]}),g.jsxs("section",{className:"modal-body",children:[e.trimmed&&g.jsx("div",{className:"modal-section",children:g.jsx("p",{className:"modal-note",children:"Full payloads for this call were released to keep memory bounded — only the previews below are still held."})}),g.jsxs("div",{className:"modal-section",children:[g.jsx("h4",{children:"Input"}),g.jsx("pre",{children:ox(e.input??e.inputPreview)})]}),g.jsxs("div",{className:"modal-section",children:[g.jsxs("h4",{children:["Response ",r==="err"&&g.jsx("span",{className:"err-tag",children:"error"})]}),g.jsx("pre",{children:e.endedAt==null?"(waiting…)":ox(e.response??e.errorPreview)})]})]})]})})}const Tl=18,ax=26,ZP=12;function JP(e){return eO(e.nodeInternals.values())}function eO(e){const n=new Map;for(const o of e){if(o.type!=="agent")continue;const l=o.data;if(!(l!=null&&l.sessionId)||l.exitAt!=null||o.width==null||o.height==null)continue;const u=o.position.x,c=o.position.y,p=u+o.width,h=c+o.height,f=n.get(l.sessionId);f?(f.minX=Math.min(f.minX,u),f.minY=Math.min(f.minY,c),f.maxX=Math.max(f.maxX,p),f.maxY=Math.max(f.maxY,h),l.kind==="root"&&(f.label=lx(l)??f.label)):n.set(l.sessionId,{minX:u,minY:c,maxX:p,maxY:h,label:lx(l)??l.sessionId})}const r=new Map;for(const o of n.values())r.set(o.label,(r.get(o.label)??0)+1);const s=[];for(const[o,l]of n){const c=(r.get(l.label)??0)>1?`${l.label} · ${tO(o)}`:l.label;s.push({sessionId:o,label:c,x:l.minX-Tl,y:l.minY-Tl-ax,w:l.maxX-l.minX+Tl*2,h:l.maxY-l.minY+Tl*2+ax})}return s}function tO(e){const n=e.match(/[a-zA-Z0-9]{4}/);return n?n[0]:e.slice(0,4)}function lx(e){if(e.kind==="root")return e.label}function nO(){const{x:e,y:n,zoom:r}=pN(),s=ca(),o=Ke(JP,rO);if(o.length<=1)return null;const l=u=>{try{const c=s.getNodes().filter(p=>{const h=p.data;return(h==null?void 0:h.sessionId)===u});if(c.length===0)return;s.fitView({padding:.3,duration:500,nodes:c})}catch{}};return g.jsx("div",{className:"session-clusters",children:o.map(u=>{const c=_v(u.sessionId),p={position:"absolute",left:u.x*r+e,top:u.y*r+n,width:u.w*r,height:u.h*r,borderColor:`hsl(${c} 65% 55% / 0.32)`,background:`hsl(${c} 70% 50% / 0.04)`},h={position:"absolute",left:u.x*r+e+16*r,top:(u.y-ZP)*r+n,color:`hsl(${c} 70% 78%)`,borderColor:`hsl(${c} 65% 55% / 0.5)`,transform:`scale(${Math.min(1,r)})`,transformOrigin:"left top"};return g.jsxs(le.Fragment,{children:[g.jsx("div",{className:"cluster-card",style:p,"aria-hidden":!0}),g.jsx("button",{type:"button",className:"cluster-label",style:h,title:`Fit view to ${u.label} · drag the wrapper to move the whole session`,onClick:()=>l(u.sessionId),children:u.label})]},u.sessionId)})})}function rO(e,n){if(e.length!==n.length)return!1;for(let r=0;r<e.length;r++){const s=e[r],o=n[r];if(s.sessionId!==o.sessionId||s.label!==o.label||s.x!==o.x||s.y!==o.y||s.w!==o.w||s.h!==o.h)return!1}return!0}function iO({data:e}){return g.jsx("div",{className:"session-group-handle",style:{width:(e==null?void 0:e.w)??0,height:(e==null?void 0:e.h)??0}})}const CN=600,sO=4,oO=36,Qg=16,aO=60,lO=6,ux=220,cx=96,uO=28,cO={Read:"file",Write:"file",Edit:"file",MultiEdit:"file",Glob:"file",Grep:"file",LS:"file",NotebookEdit:"file",Bash:"shell",PowerShell:"shell",shell:"shell",exec_command:"shell",shell_command:"shell",write_stdin:"shell",wait:"shell",apply_patch:"file",update_plan:"task",WebFetch:"web",WebSearch:"web",Task:"agent",Agent:"agent",TodoWrite:"task",TaskCreate:"task",TaskUpdate:"task",TaskList:"task",TaskGet:"task",TaskOutput:"task",TaskStop:"task",EnterPlanMode:"plan",ExitPlanMode:"plan",AskUserQuestion:"plan",Skill:"plan",Workflow:"plan",ScheduleWakeup:"other",CronCreate:"other",CronList:"other",CronDelete:"other",Monitor:"other",PushNotification:"other",RemoteTrigger:"other",ToolSearch:"other"};function dO(e){return e.startsWith("mcp__")?"mcp":cO[e]??"other"}const fO={Read:"📖",Write:"💾",Edit:"✏️",MultiEdit:"🔧",Glob:"🗺️",Grep:"🔎",Bash:"⚡",PowerShell:"💻",shell:"⚡",exec_command:"⚡",shell_command:"⚡",write_stdin:"💻",wait:"⏳",apply_patch:"🩹",update_plan:"📋",LS:"📂",Task:"🤖",Agent:"🤖",TodoWrite:"📋",TaskCreate:"📋",TaskUpdate:"📝",TaskList:"🗂️",TaskGet:"🗂️",TaskOutput:"📤",TaskStop:"🛑",WebFetch:"🌐",WebSearch:"🔭",ToolSearch:"🧰",NotebookEdit:"📓",EnterPlanMode:"🧭",ExitPlanMode:"🏁",AskUserQuestion:"❓",ScheduleWakeup:"⏰",CronCreate:"⏰",CronList:"📅",CronDelete:"🗑️",Skill:"🎯",Workflow:"🎬",Monitor:"📡",PushNotification:"🔔",RemoteTrigger:"📡"};function dx(e){return e.startsWith("mcp__")?"🔌":fO[e]??"✨"}const hO={git:"🐙",gh:"🐙",glab:"🐙",npm:"📦",pnpm:"📦",yarn:"📦",bun:"📦",brew:"🍺",node:"🟢",deno:"🟢",python:"🐍",python3:"🐍",py:"🐍",pip:"🐍",pip3:"🐍",uv:"🐍",ruby:"💎",bundle:"💎",gem:"💎",cargo:"🦀",rustc:"🦀",rustup:"🦀",go:"🐹",docker:"🐳","docker-compose":"🐳",podman:"🐳",kubectl:"☸️",helm:"☸️",k9s:"☸️",grep:"🔎",rg:"🔎",ag:"🔎",ack:"🔎",find:"🔍",fd:"🔍",locate:"🔍",which:"🔍",ls:"📂",dir:"📂",tree:"📂",cat:"📄",head:"📄",tail:"📄",less:"📄",more:"📄",bat:"📄",cp:"📋",mv:"✂️",rm:"🗑️",rmdir:"🗑️",mkdir:"📁",touch:"📁",sed:"✏️",awk:"✏️",tr:"✏️",curl:"🌐",wget:"🌐",http:"🌐",httpie:"🌐",ssh:"🔐",scp:"🔐",rsync:"🔐",ping:"📡",make:"🔨",cmake:"🔨",ninja:"🔨",bazel:"🔨",just:"🔨",terraform:"🏗️",ansible:"📕",pulumi:"🏗️",ps:"📊",top:"📊",htop:"📊",btm:"📊",kill:"💀",pkill:"💀",systemctl:"⚙️",service:"⚙️",tar:"🗜️",zip:"🗜️",unzip:"🗜️",gzip:"🗜️","7z":"🗜️",vim:"📝",nvim:"📝",nano:"📝",emacs:"📝",code:"📝",jq:"🪺",yq:"🪺",echo:"💬",printf:"💬",ffmpeg:"🎞️",ffprobe:"🎞️",imagemagick:"🖼️",convert:"🖼️","Get-ChildItem":"📂","Get-Content":"📄","Set-Content":"💾","Out-File":"💾","Add-Content":"💾","Set-Location":"📍","Get-Location":"📍","Get-Process":"📊","Start-Process":"▶️","Stop-Process":"💀","Invoke-WebRequest":"🌐","Invoke-RestMethod":"🌐","New-Item":"📁","Remove-Item":"🗑️","Copy-Item":"📋","Move-Item":"✂️","Test-Path":"🔍","Where-Object":"🔎","ForEach-Object":"🔁","Select-Object":"🎯","Measure-Object":"📊","Get-Service":"⚙️","Restart-Service":"⚙️","ConvertTo-Json":"🪺","ConvertFrom-Json":"🪺"};function TN(e){if(!e)return null;let n=e.trim();if(!n)return null;const r=n.match(/^(?:bash|sh|zsh|fish|powershell|pwsh)(?:\.exe)?\s+(?:-c|-Command|-NoProfile|-NonInteractive|\s)+["']([^"']+)["']/i);if(r)return TN(r[1]);for(;;){const l=n.match(/^([A-Z_][A-Z0-9_]*=\S*)\s+/);if(!l)break;n=n.slice(l[0].length)}n=n.replace(/^sudo(?:\s+-\S+)*\s+/,""),n=n.replace(/^(?:time|nohup|xargs)\s+/,"");const s=n.match(/^([^\s|;&<>(]+)/);if(!s)return null;let o=s[1];return o=o.replace(/^.*[/\\]/,""),o=o.replace(/\.(exe|cmd|bat|ps1)$/i,""),o||null}function pO(e){if(typeof e=="string")return e;if(!e||typeof e!="object")return null;const n=e;if(typeof n.cmd=="string")return n.cmd;if(typeof n.command=="string")return n.command;if(Array.isArray(n.command)&&n.command.every(r=>typeof r=="string")){const r=n.command;if(/powershell|cmd|bash|sh(\.exe)?$/i.test(r[0]??"")){const s=r.findIndex(o=>/^(-Command|-c)$/i.test(o));if(s>=0&&s+1<r.length)return r[s+1]}return r.join(" ")}return typeof n.script=="string"?n.script:null}const mO=new Set(["Bash","PowerShell","shell","exec_command","shell_command","write_stdin","wait"]),gO=new Set(["shell","exec_command","shell_command","write_stdin","wait","apply_patch","update_plan"]);function vO(e,n){return gO.has(e)||e.startsWith("mcp__")?Math.max(cx,34+n.length*7.5):cx}function yO(e,n){if(!mO.has(e))return null;const r=pO(n);if(!r)return null;const s=TN(r);return s?{emoji:hO[s]??"⚙️",label:s,category:"shell",detail:r}:null}const wO=new Set(["Read","Write","Edit","MultiEdit","NotebookEdit","LS","Glob","apply_patch"]),fx={ts:"🟦",tsx:"🟦",d:"🟦",js:"🟨",jsx:"🟨",mjs:"🟨",cjs:"🟨",py:"🐍",pyi:"🐍",ipynb:"📓",rs:"🦀",go:"🐹",rb:"💎",erb:"💎",java:"☕",kt:"☕",scala:"☕",gradle:"☕",cs:"🔷",fs:"🔷",php:"🐘",swift:"🦅",c:"🇨",cpp:"🇨",cc:"🇨",h:"🇨",hpp:"🇨",md:"📝",mdx:"📝",rst:"📝",json:"🪺",json5:"🪺",jsonl:"🪺",yaml:"⚙️",yml:"⚙️",toml:"⚙️",ini:"⚙️",conf:"⚙️",cfg:"⚙️",xml:"📰",html:"🌐",htm:"🌐",vue:"🌐",svelte:"🌐",css:"🎨",scss:"🎨",sass:"🎨",less:"🎨",sh:"⚡",bash:"⚡",zsh:"⚡",fish:"⚡",ps1:"⚡",txt:"📄",log:"📄",out:"📄",csv:"📊",tsv:"📊",xlsx:"📊",xls:"📊",pdf:"📕",png:"🖼️",jpg:"🖼️",jpeg:"🖼️",gif:"🖼️",webp:"🖼️",svg:"🖼️",ico:"🖼️",mp4:"🎬",mov:"🎬",avi:"🎬",mkv:"🎬",webm:"🎬",mp3:"🎵",wav:"🎵",ogg:"🎵",flac:"🎵",zip:"🗜️",tar:"🗜️",gz:"🗜️",bz2:"🗜️","7z":"🗜️",xz:"🗜️",rar:"🗜️",env:"🔐",lock:"🔐",pem:"🔐",key:"🔐",crt:"🔐",sql:"🗄️",db:"🗄️",sqlite:"🗄️",parquet:"🗄️"},hx={dockerfile:"🐳",makefile:"🔨",rakefile:"💎","package.json":"📦","pnpm-lock.yaml":"📦","yarn.lock":"📦","cargo.toml":"🦀","cargo.lock":"🦀","go.mod":"🐹","go.sum":"🐹","pyproject.toml":"🐍","requirements.txt":"🐍","readme.md":"📖",readme:"📖",license:"📜",".gitignore":"🐙",".gitattributes":"🐙",".env":"🔐",".dockerignore":"🐳"};function xO(e){const r=e.replace(/\\/g,"/").replace(/\/+$/,""),s=r.lastIndexOf("/");return s>=0?r.slice(s+1):r}function _O(e){const n=e.toLowerCase();if(hx[n])return hx[n];if(n.startsWith("dockerfile."))return"🐳";if(/\.(test|spec)\.[a-z]+$/.test(n))return"🧪";const r=n.lastIndexOf(".");if(r>0&&r<n.length-1){const s=n.slice(r+1);if(fx[s])return fx[s]}return"📄"}function SO(e,n){if(!n||typeof n!="object")return null;const r=n;if(e==="apply_patch"&&typeof r.patch=="string"){const s=r.patch.match(/^\*\*\* (?:Update|Add|Delete) File: (.+)$/m);return s?s[1].trim():null}return typeof r.file_path=="string"?r.file_path:typeof r.notebook_path=="string"?r.notebook_path:typeof r.path=="string"?r.path:e==="Glob"&&typeof r.pattern=="string"?r.pattern:null}function bO(e,n){if(!wO.has(e))return null;const r=SO(e,n);if(!r)return null;const s=xO(r);return s?{emoji:e==="LS"?"📂":_O(s),label:s,category:"file",detail:r}:null}const RN={github:{emoji:"🐙",name:"GitHub"},git:{emoji:"🐙",name:"Git"},gitlab:{emoji:"🦊",name:"GitLab"},slack:{emoji:"💬",name:"Slack"},discord:{emoji:"💬",name:"Discord"},linear:{emoji:"📐",name:"Linear"},jira:{emoji:"🅹",name:"Jira"},atlassian:{emoji:"🅰️",name:"Atlassian"},notion:{emoji:"📓",name:"Notion"},asana:{emoji:"📋",name:"Asana"},intercom:{emoji:"💬",name:"Intercom"},figma:{emoji:"🎨",name:"Figma"},gmail:{emoji:"📧",name:"Gmail"},calendar:{emoji:"📅",name:"Calendar"},drive:{emoji:"☁️",name:"Drive"},zoom:{emoji:"📹",name:"Zoom"},spotify:{emoji:"🎵",name:"Spotify"},youtube:{emoji:"📺",name:"YouTube"},ccd_session:{emoji:"📡",name:"Session"},ccd_directory:{emoji:"📂",name:"Directory"},ccd_session_mgmt:{emoji:"📡",name:"Sessions"},mcp_registry:{emoji:"🧰",name:"Registry"},"computer-use":{emoji:"🖱️",name:"Computer"},"claude-in-chrome":{emoji:"🌐",name:"Chrome"},"claude-preview":{emoji:"👀",name:"Preview"},"scheduled-tasks":{emoji:"⏰",name:"Scheduler"},visualize:{emoji:"🎨",name:"Visualize"},"plugin-design-asana":{emoji:"📋",name:"Asana"},"plugin-design-atlassian":{emoji:"🅰️",name:"Atlassian"},"plugin-design-figma":{emoji:"🎨",name:"Figma"},"plugin-design-intercom":{emoji:"💬",name:"Intercom"},"plugin-design-linear":{emoji:"📐",name:"Linear"},"plugin-design-notion":{emoji:"📓",name:"Notion"},"plugin-design-slack":{emoji:"💬",name:"Slack"}};function jN(e){if(!e.startsWith("mcp__"))return null;const n=e.slice(5),r=n.indexOf("__");return r<=0?{server:n,method:""}:{server:n.slice(0,r),method:n.slice(r+2)}}function kO(e){let n=5381;for(let r=0;r<e.length;r++)n=(n<<5)+n^e.charCodeAt(r);return Math.abs(n)%360}function EO(e,n){const r=jN(e);if(!r)return null;const{server:s,method:o}=r;if(!o)return null;const l=RN[s.toLowerCase()];return{emoji:(l==null?void 0:l.emoji)??"🔌",label:o,category:"mcp",detail:l?`${l.name} · ${o}`:`${s} · ${o}`}}function NO(e,n){return yO(e,n)??bO(e,n)??EO(e)}const CO={shell:"Shell",exec_command:"Shell",shell_command:"Shell",write_stdin:"stdin",wait:"wait",apply_patch:"Edit",update_plan:"Plan"};function TO(e){const n=jN(e);if(n){const s=RN[n.server.toLowerCase()];return s?{emoji:s.emoji,label:s.name}:{emoji:"🔌",label:n.server,hue:kO(n.server)}}const r=CO[e];return r?{emoji:dx(e),label:r}:{emoji:dx(e),label:e}}function RO(e){return e.endedAt==null?"inflight":e.ok===!1?"err":"done"}function jO(e,n,r){if(r==null)return 1;const s=n-r;return s<0?1:Math.max(0,1-s/CN)}function AO(e,n){const r=[],s=new Set;for(let o=e.length-1;o>=0&&r.length<n;o--){const l=e[o];s.has(l.id)||(s.add(l.id),r.push(l))}return r.reverse()}function IO(e,n,r,s,o,l){const u=[];for(const c of e.values()){if(!n.has(c.id)||c.exitAt!=null&&l-c.exitAt>CN)continue;const p=s.get(c.id)??r.get(c.id);if(!p)continue;const h=AO(c.tools,sO);if(h.length===0)continue;const f=c.exitAt??null,m=o.get(c.id),y=Math.max((m==null?void 0:m.width)??ux,ux),x=(m==null?void 0:m.height)??130,C=p.x,_=p.y,S=C+y,b=_+x/2;h.forEach((k,N)=>{const T=N*oO,I=C+y+aO,M=_+lO+T,O=jO(k,l,f),H=k.inputPreview??"",L=RO(k),P=O<.999,q=TO(k.name);u.push({id:`${c.id}::${k.id}`,toolId:k.id,agentId:c.id,toolName:k.name,name:q.label,emoji:q.emoji,status:L,category:dO(k.name),mcpHue:q.hue,inputPreview:H,fade:O,fading:P,worldX:I,worldY:M,anchorX:S,anchorY:b,spawnDx:S-I,spawnDy:b-(M+Qg)});const W=NO(k.name,k.input);if(W){const B=vO(k.name,q.label),j=I+B+uO,K=M,U=I+B,ee=M+Qg;u.push({id:`sub:${c.id}::${k.id}`,toolId:k.id,agentId:c.id,toolName:k.name,name:W.label,emoji:W.emoji,isSub:!0,status:L,category:W.category,inputPreview:W.detail??H,fade:O,fading:P,worldX:j,worldY:K,anchorX:U,anchorY:ee,spawnDx:U-j,spawnDy:0})}})}return u}function MO({agents:e,visibleAgentIds:n,positions:r,pinned:s,measured:o,dimUnmatched:l,spotlight:u,hiddenCategories:c,now:p,onOpenTool:h}){const f=IO(e,n,r,s,o,p),m=c&&c.size>0?f.filter(y=>!c.has(y.category)):f;return g.jsx(PO,{bursts:m,dimUnmatched:l,spotlight:u,onOpenTool:h})}function PO({bursts:e,dimUnmatched:n,spotlight:r,onOpenTool:s}){const{x:o,y:l,zoom:u}=pN();return g.jsxs("div",{className:"tool-bursts-layer","aria-hidden":!0,children:[g.jsx("svg",{className:"tool-bursts-svg",children:e.map(c=>{const p=c.anchorX*u+o,h=c.anchorY*u+l,f=(c.worldX+6)*u+o,m=(c.worldY+Qg)*u+l,y=p+(f-p)*.55,x=n!=null&&!n.has(c.agentId),C=r!=null&&!r.has(c.agentId),_=c.fade*(x||C?.14:1);return g.jsx("path",{d:`M ${p} ${h} Q ${y} ${h}, ${f} ${m}`,className:`tool-conn status-${c.status}${c.fading?" fading":""}`,opacity:_},`l:${c.id}`)})}),e.map(c=>{const p=c.worldX*u+o,h=c.worldY*u+l,f={left:`${p}px`,top:`${h}px`,transform:`scale(${u})`,transformOrigin:"left top","--spawn-dx":`${c.spawnDx}px`,"--spawn-dy":`${c.spawnDy}px`},m=c.isSub?`${c.toolName} · ${c.name}`:c.toolName,y=c.inputPreview?`${m} · ${c.inputPreview}`:m,x=s!=null,C=c.mcpHue!=null?{"--cat-accent":`hsl(${c.mcpHue} 65% 65%)`}:{},_=n!=null&&!n.has(c.agentId),S=r!=null&&!r.has(c.agentId),b=_||S?" dim":"";return g.jsx("div",{className:"tool-burst-wrap",style:f,children:g.jsxs("div",{className:`tool-burst cat-${c.category} status-${c.status}${c.fading?" fading":""}${x?" clickable":""}${c.isSub?" sub":""}${b}`,style:C,title:y,role:x?"button":void 0,tabIndex:x?0:void 0,"aria-label":x?`Open ${c.toolName} ${c.status==="inflight"?"in flight":c.status} — click for details`:void 0,onClick:x?()=>s(c.toolId):void 0,onKeyDown:x?k=>{(k.key==="Enter"||k.key===" ")&&(k.preventDefault(),s(c.toolId))}:void 0,children:[g.jsx("span",{className:"tb-emoji",children:c.emoji}),g.jsx("span",{className:"tb-name",children:c.name}),c.status==="inflight"&&g.jsx("span",{className:"tb-spin"}),c.status==="done"&&g.jsx("span",{className:"tb-mark done",children:"✓"}),c.status==="err"&&g.jsx("span",{className:"tb-mark err",children:"×"})]})},c.id)})]})}function OO({state:e,sessionId:n,onClose:r}){const s=A.useMemo(()=>qO(e,n),[e,n]);return s?g.jsx("div",{className:"modal-backdrop",onClick:r,role:"presentation",children:g.jsxs("div",{className:"modal session-summary",onClick:o=>o.stopPropagation(),role:"dialog","aria-modal":"true","aria-labelledby":"ss-title",children:[g.jsxs("div",{className:"modal-head",children:[g.jsxs("div",{className:"modal-title",children:[g.jsx("span",{className:"state-pill state-done","aria-hidden":!0,children:"done"}),g.jsx("span",{id:"ss-title",className:"modal-tool-name",title:s.cwd??s.sessionId,children:s.label}),g.jsxs("span",{className:"modal-tool-id",children:["· ",s.sessionId.slice(0,8)]})]}),g.jsxs("div",{className:"modal-actions",children:[g.jsx("span",{className:"modal-dur",title:"Total wall time",children:s.durationLabel}),g.jsx("button",{className:"btn",onClick:r,"aria-label":"Close",children:"×"})]})]}),g.jsxs("div",{className:"modal-body",children:[g.jsxs("section",{className:"ss-hero",children:[g.jsxs("div",{className:"ss-hero-left",children:[g.jsx("div",{className:"ss-cost-label",children:"total spend"}),g.jsx("div",{className:"ss-cost",children:ze(s.cost.total)}),s.modelChips.length>0&&g.jsx("div",{className:"ss-models",children:s.modelChips.map(o=>g.jsx("span",{className:"model-chip",title:o,children:da(o)},o))})]}),g.jsx("div",{className:"ss-hero-right",children:s.cost.total>0&&g.jsxs(g.Fragment,{children:[g.jsx(LO,{cost:s.cost}),g.jsxs("div",{className:"ss-cost-legend",children:[g.jsxs("span",{className:"ssl ssl-in",children:["input ",g.jsx("b",{children:ze(s.cost.input)})]}),g.jsxs("span",{className:"ssl ssl-out",children:["output ",g.jsx("b",{children:ze(s.cost.output)})]}),g.jsxs("span",{className:"ssl ssl-cr",children:["cache r ",g.jsx("b",{children:ze(s.cost.cacheRead)})]}),g.jsxs("span",{className:"ssl ssl-cw",children:["cache w ",g.jsx("b",{children:ze(s.cost.cacheWrite)})]})]})]})})]}),g.jsxs("section",{className:"ss-stats",children:[g.jsx(Fs,{label:"agents",value:s.agentCount}),g.jsx(Fs,{label:"subagents",value:s.subagentCount}),g.jsx(Fs,{label:"tool calls",value:s.toolCount}),g.jsx(Fs,{label:"prompts",value:s.promptCount}),g.jsx(Fs,{label:"tokens",value:s.tokensSum.toLocaleString()}),s.errCount>0&&g.jsx(Fs,{label:"errors",value:s.errCount,tone:"err"})]}),s.topTools.length>0&&g.jsxs("section",{className:"modal-section",children:[g.jsx("h4",{children:"Most-used tools"}),g.jsx("div",{className:"ss-top-tools",children:s.topTools.map(([o,l])=>g.jsxs("div",{className:"ss-tt",children:[g.jsx("span",{className:"ss-tt-name",children:o}),g.jsx("span",{className:"ss-tt-bar",children:g.jsx("span",{className:"ss-tt-bar-fill",style:{width:`${l/s.topTools[0][1]*100}%`}})}),g.jsx("span",{className:"ss-tt-count",children:l})]},o))})]}),s.firstPrompt&&g.jsxs("section",{className:"modal-section",children:[g.jsx("h4",{children:"Opening prompt"}),g.jsx("div",{className:"ss-prompt",children:s.firstPrompt})]})]})]})}):null}function Fs({label:e,value:n,tone:r}){return g.jsxs("div",{className:`ss-stat${r?` tone-${r}`:""}`,children:[g.jsx("div",{className:"ss-stat-value",children:n}),g.jsx("div",{className:"ss-stat-label",children:e})]})}function LO({cost:e}){const n=e.total;if(n<=0)return null;const r=(s,o,l)=>{if(s<=0)return null;const u=s/n*100;return g.jsx("span",{className:`cb-seg ${o}`,style:{width:`${u}%`},title:`${l}: ${ze(s)} (${u.toFixed(0)}%)`},o)};return g.jsxs("div",{className:"cost-bar cost-bar-lg","aria-label":"Cost breakdown",children:[r(e.input,"cb-input","input"),r(e.output,"cb-output","output"),r(e.cacheRead,"cb-cache-r","cache read"),r(e.cacheWrite,"cb-cache-w","cache write")]})}function qO(e,n){const r=e.agents.get(n);if(!r)return null;const s=[];for(const N of e.agents.values())N.sessionId===n&&s.push(N);if(s.length===0)return null;const o={input:0,output:0,cacheRead:0,cacheWrite:0,total:0},l=new Set,u=new Map;let c=0,p=0,h=0,f=0,m=0,y,x=1/0,C=0;for(const N of s){const T=cn(N.usage,N.model);o.input+=T.input,o.output+=T.output,o.cacheRead+=T.cacheRead,o.cacheWrite+=T.cacheWrite,o.total+=T.total,N.model&&l.add(N.model),N.kind==="subagent"&&m++,p+=N.prompts.length,!y&&N.prompts.length>0&&(y=N.prompts[0].text),h+=N.usage.inputTokens+N.usage.outputTokens,c+=N.toolCount,x=Math.min(x,N.startedAt),C=Math.max(C,N.endedAt??Date.now());for(const I of N.tools)u.set(I.name,(u.get(I.name)??0)+1),I.ok===!1&&f++}const _=Math.max(0,C-x),S=Math.floor(_/1e3),b=S<60?`${S}s`:S<3600?`${Math.floor(S/60)}m ${String(S%60).padStart(2,"0")}s`:`${Math.floor(S/3600)}h ${Math.floor(S%3600/60)}m`,k=Array.from(u.entries()).sort((N,T)=>T[1]-N[1]).slice(0,5);return{sessionId:n,label:r.label||r.cwdBasename||"session",cwd:r.cwd,durationLabel:b,cost:o,modelChips:Array.from(l),agentCount:s.length,subagentCount:m,toolCount:c,promptCount:p,tokensSum:h,errCount:f,topTools:k,firstPrompt:y}}function $O(e,n){const r=[];for(const s of e.agents.values()){if(s.kind!=="root")continue;let o=s.toolCount,l=cn(s.usage,s.model).total,u=s.endedAt??s.startedAt;for(const c of e.agents.values()){if(c.sessionId!==s.sessionId||c.kind==="root")continue;o+=c.toolCount,l+=cn(c.usage,c.model).total;const p=c.endedAt??c.startedAt;p>u&&(u=p)}r.push({sessionId:s.sessionId,label:s.label||s.cwdBasename||"session",cwdBasename:s.cwdBasename,state:s.state,modelId:s.model,toolCount:o,cost:l,startedAt:s.startedAt,lastActivity:u})}return r.sort((s,o)=>{if(s.state!==o.state){if(s.state==="active")return-1;if(o.state==="active")return 1}return o.lastActivity-s.lastActivity}),r}function DO(e,n,r){const s=(n??r)-e;if(s<1e3)return"<1s";const o=Math.floor(s/1e3);if(o<60)return`${o}s`;const l=Math.floor(o/60);return l<60?`${l}m`:`${Math.floor(l/60)}h ${l%60}m`}function FO({state:e,now:n,selectedIds:r,onSelect:s,onClose:o}){const l=A.useMemo(()=>$O(e),[e,e.lastSeq,n]),u=l.filter(c=>c.state==="active").length;return g.jsxs("aside",{className:"session-list","aria-label":"Sessions",children:[g.jsxs("div",{className:"sl-header",children:[g.jsxs("h3",{children:["Sessions ",g.jsx("span",{className:"sl-count",children:l.length})]}),u>0&&g.jsxs("span",{className:"sl-live-count",children:[u," live"]}),g.jsx("button",{className:"btn icon-btn sl-close",onClick:o,title:"Hide sidebar (L)","aria-label":"Hide session list",children:"‹"})]}),g.jsxs("div",{className:"sl-rows",children:[l.length===0&&g.jsx("div",{className:"sl-empty",children:"No sessions yet."}),l.map(c=>{const p=r.has(c.sessionId);return g.jsxs("button",{type:"button",className:`sl-row state-${c.state}${p?" selected":""}`,onClick:()=>s(c.sessionId),title:`Focus ${c.label}`,children:[g.jsx("span",{className:`sl-dot state-${c.state}`,"aria-hidden":!0}),g.jsxs("div",{className:"sl-row-body",children:[g.jsxs("div",{className:"sl-row-head",children:[g.jsx("span",{className:"sl-label",children:c.label}),c.modelId&&g.jsx("span",{className:"model-chip",title:c.modelId,children:da(c.modelId)})]}),g.jsxs("div",{className:"sl-row-meta",children:[g.jsxs("span",{title:"tool calls",children:[g.jsx("b",{children:c.toolCount})," tools"]}),c.cost>0&&g.jsx("span",{className:"sl-cost",title:"total spend",children:g.jsx("b",{children:ze(c.cost)})}),g.jsx("span",{className:"sl-elapsed",title:`Started ${new Date(c.startedAt).toLocaleString()}`,children:DO(c.startedAt,c.state==="active"?void 0:c.lastActivity,n)})]})]})]},c.sessionId)})]})]})}function px(e,n){if(!e)return null;const r=n-Math.floor(e/1e3);return r<10?"just now":r<60?`${r}s ago`:r<3600?`${Math.floor(r/60)}m ago`:`${Math.floor(r/3600)}h ago`}function zO(e){return e==="claude-swap"?"Read from claude-swap's last collection — costs no request against your usage-endpoint budget":e==="api"?"Fetched from Anthropic's usage endpoint, at most once every 5 minutes":e==="cli"?"Parsed from `claude /usage`, at most once every 5 minutes":"Last update"}function Rr(e){return e<1e3?`${e}`:e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(2)}M`}function BO({cost:e}){const n=e.total;if(n<=0)return null;const r=(s,o,l)=>{if(s<=0)return null;const u=s/n*100;return g.jsx("span",{className:`cb-seg ${o}`,style:{width:`${u}%`},title:`${l}: ${ze(s)} (${u.toFixed(0)}%)`},o)};return g.jsxs("div",{className:"cost-bar","aria-label":"Cost breakdown",children:[r(e.input,"cb-input","input"),r(e.output,"cb-output","output"),r(e.cacheRead,"cb-cache-r","cache read"),r(e.cacheWrite,"cb-cache-w","cache write")]})}function UO(e,n){const r=e-n;if(r<=0)return null;const s=Math.floor(r/3600),o=Math.floor(r%3600/60);if(s>23){const l=Math.floor(r/86400),u=Math.floor(r%86400/3600);return`${l}d ${u}h`}return s>0?`${s}h ${o}m`:`${o}m`}function HO(e,n,r,s){const o=Math.max(0,n-s),l=Math.max(0,r-o);if(l<120)return null;const u=Math.min(100,l/r*100),c=e-u;if(Math.abs(c)<3)return{label:"on pace",color:"var(--ok)",expectedPct:u,isDeficit:!1};if(c>0){const p=100-e,h=l>0?e/l:0,f=h>0?p/h:1/0,m={label:`${Math.round(c)}% ahead`,color:"var(--warn)",expectedPct:u,isDeficit:!0};if(f<o&&f<86400){const y=Math.floor(f/3600),x=Math.floor(f%3600/60);m.runsOutIn=y>0?`${y}h ${x}m`:`${x}m`}return m}return{label:`${Math.round(-c)}% reserve`,color:"var(--ok)",expectedPct:u,isDeficit:!1}}function Bi({pct:e,label:n,reset:r,resetAt:s,windowSec:o,limitReached:l,nowSec:u}){const c=Math.min(100,Math.max(0,e)),h=l||c>=90?"var(--err)":c>=70?"var(--warn)":"var(--accent)",f=c===0?"< 1%":`${c}%`,m=c===0?2:c,y=s?UO(s,u):null,x=s&&o?HO(c,s,o,u):null;return g.jsxs("div",{className:"qb-row",children:[g.jsxs("div",{className:"qb-meta",children:[g.jsxs("span",{className:"qb-label",children:[n,l&&g.jsx("span",{className:"qb-limit-badge",title:"Rate limit reached",children:"⛔"})]}),g.jsx("span",{className:"qb-pct",style:{color:h},children:f})]}),g.jsxs("div",{className:"qb-track",children:[g.jsx("div",{className:"qb-fill",style:{width:`${m}%`,background:h,opacity:c===0?.4:1}}),x&&g.jsx("div",{className:"qb-pace-marker",style:{left:`${x.expectedPct}%`,background:x.isDeficit?"var(--err)":"var(--ok)"},title:`To last until reset, stay near ${Math.round(x.expectedPct)}% by now`})]}),g.jsxs("div",{className:"qb-reset-row",children:[y?g.jsxs("span",{className:"qb-reset",children:["resets in ",y]}):r?g.jsxs("span",{className:"qb-reset",children:["resets ",r]}):null,x&&g.jsx("span",{className:"qb-pace",style:{color:x.color},children:x.runsOutIn?`runs out in ${x.runsOutIn}`:x.label})]})]})}const WO=6e4;function VO(){const[e,n]=A.useState(null),[r,s]=A.useState(!1),o=A.useRef(null),l=async(c=!1)=>{c&&s(!0);try{const h=await fetch(c?"/api/quota?refresh=1":"/api/quota");h.ok&&n(await h.json())}catch{}finally{c&&s(!1)}};return A.useEffect(()=>(l(!0),o.current=window.setInterval(()=>l(!1),WO),()=>{o.current!=null&&window.clearInterval(o.current)}),[]),{quota:e,loading:r,refresh:()=>l(!0)}}function GO(e){switch(e){case"no_token":return"Run codex login to authenticate.";case"api_key_mode":return"API-key login — ChatGPT quota is only available for codex login.";case"refresh_rejected":return"Codex session expired — run codex login.";case"refresh_failed":return"Couldn't refresh the Codex token — click ↻ to retry.";default:return"ChatGPT API unreachable — click ↻ to retry."}}const AN=6e4;function YO(){const[e,n]=A.useState(null),[r,s]=A.useState(!1),o=A.useRef(null),l=async(c=!1)=>{c&&s(!0);try{const h=await fetch(c?"/api/codex-quota?refresh=1":"/api/codex-quota");h.ok&&n(await h.json())}catch{}finally{c&&s(!1)}};return A.useEffect(()=>(l(!0),o.current=window.setInterval(()=>l(!1),AN),()=>{o.current!=null&&window.clearInterval(o.current)}),[]),{data:e,loading:r,refresh:()=>l(!0)}}function KO(){const[e,n]=A.useState(null),r=A.useRef(null),s=async()=>{try{const o=await fetch("/api/codex-usage");o.ok&&n(await o.json())}catch{}};return A.useEffect(()=>(s(),r.current=window.setInterval(s,AN),()=>{r.current!=null&&window.clearInterval(r.current)}),[]),{data:e}}function XO({state:e,now:n,onClose:r}){var O,H;const{quota:s,loading:o,refresh:l}=VO(),{data:u,loading:c,refresh:p}=YO(),{data:h}=KO(),[f,m]=A.useState(()=>Math.floor(Date.now()/1e3));A.useEffect(()=>{const L=window.setInterval(()=>m(Math.floor(Date.now()/1e3)),3e4);return()=>window.clearInterval(L)},[]);const{byModel:y,totalCost:x,totalTokens:C,burnRate:_}=A.useMemo(()=>{const L=new Map,P={total:0,input:0,output:0,cacheRead:0,cacheWrite:0};let q=0,W=0,B=0,j=0;for(const F of e.agents.values()){const Y=F.model??"__unknown__",E=cn(F.usage,F.model),$=L.get(Y);$?($.inputTokens+=F.usage.inputTokens,$.outputTokens+=F.usage.outputTokens,$.cacheReadTokens+=F.usage.cacheReadTokens,$.cacheCreateTokens+=F.usage.cacheCreateTokens,$.cost.total+=E.total,$.cost.input+=E.input,$.cost.output+=E.output,$.cost.cacheRead+=E.cacheRead,$.cost.cacheWrite+=E.cacheWrite,$.agentCount++):L.set(Y,{model:Y,inputTokens:F.usage.inputTokens,outputTokens:F.usage.outputTokens,cacheReadTokens:F.usage.cacheReadTokens,cacheCreateTokens:F.usage.cacheCreateTokens,cost:{...E},agentCount:1}),P.total+=E.total,P.input+=E.input,P.output+=E.output,P.cacheRead+=E.cacheRead,P.cacheWrite+=E.cacheWrite,q+=F.usage.inputTokens,W+=F.usage.outputTokens,B+=F.usage.cacheReadTokens,j+=F.usage.cacheCreateTokens}const K=Array.from(L.values()).sort((F,Y)=>Y.cost.total-F.cost.total);let U=0,ee=0;for(const F of e.agents.values()){if(F.state!=="active")continue;const Y=cn(F.usage,F.model);U+=Y.total,ee=Math.max(ee,((F.endedAt??n)-F.startedAt)/1e3)}const J=ee>0?Yl(U,ee):null;return{byModel:K,totalCost:P,totalTokens:{in:q,out:W,cacheR:B,cacheC:j},burnRate:J}},[e,e.lastSeq,n]),S=A.useMemo(()=>{const L=[];for(const P of e.agents.values()){if(P.kind!=="root")continue;let q=cn(P.usage,P.model).total,W=P.usage.inputTokens,B=P.usage.outputTokens;for(const j of e.agents.values())j.sessionId!==P.sessionId||j.kind==="root"||(q+=cn(j.usage,j.model).total,W+=j.usage.inputTokens,B+=j.usage.outputTokens);L.push({sessionId:P.sessionId,label:P.label||P.cwdBasename||"session",state:P.state,cost:q,inputTokens:W,outputTokens:B})}return L.sort((P,q)=>q.cost-P.cost).slice(0,12)},[e,e.lastSeq]),b=x.total>0,k=C.in+C.out,N=o||c,T=px(s==null?void 0:s.fetchedAt,f),I=px(u==null?void 0:u.fetchedAt,f),M=()=>{l(),p()};return g.jsxs("div",{className:"usage-panel","aria-label":"Usage",children:[g.jsxs("div",{className:"up-header",children:[g.jsx("h3",{children:"Usage"}),_&&g.jsx("span",{className:"up-rate",children:_}),g.jsxs("div",{className:"up-header-right",children:[g.jsx("button",{type:"button",className:"btn up-refresh-btn",onClick:M,disabled:N,title:"Refresh Claude + Codex quota",children:N?"…":"↻"}),g.jsx("button",{type:"button",className:"btn icon-btn up-close",onClick:r,"aria-label":"Close usage panel",title:"Close (U)",children:"×"})]})]}),g.jsxs("section",{className:"up-section up-quota-section",children:[g.jsxs("h4",{className:"up-section-title",children:["Claude quota",T&&!o&&g.jsx("span",{className:"up-section-age",title:zO(s==null?void 0:s.source),children:T})]}),s!=null&&s.ok?g.jsxs("div",{className:"up-quota-bars",children:[s.session5hPct!=null&&g.jsx(Bi,{label:"5-hour window",pct:s.session5hPct,reset:s.session5hReset,resetAt:s.session5hResetAt,windowSec:s.session5hWindowSec,nowSec:f}),s.week7dPct!=null&&g.jsx(Bi,{label:"7-day window",pct:s.week7dPct,reset:s.week7dReset,resetAt:s.week7dResetAt,windowSec:s.week7dWindowSec,nowSec:f}),s.weekSonnetPct!=null&&g.jsx(Bi,{label:"Sonnet (7d)",pct:s.weekSonnetPct,nowSec:f}),s.weekOpusPct!=null&&g.jsx(Bi,{label:"Opus (7d)",pct:s.weekOpusPct,nowSec:f})]}):(s==null?void 0:s.ok)===!1?g.jsxs("div",{className:"up-quota-na",children:[g.jsx("span",{children:"Quota unavailable."}),g.jsxs("span",{className:"up-quota-hint",children:["Run ",g.jsx("code",{children:"/usage"})," in a claude session, then click ↻"]})]}):g.jsx("div",{className:"up-quota-na up-quota-loading",children:"Checking…"})]}),g.jsxs("section",{className:"up-section up-quota-section",children:[g.jsxs("h4",{className:"up-section-title",children:["Codex quota",(u==null?void 0:u.ok)&&u.planLabel&&g.jsx("span",{className:"up-plan-badge",children:u.planLabel}),I&&!c&&g.jsx("span",{className:"up-section-age",title:"Fetched from the Codex usage endpoint",children:I})]}),u!=null&&u.ok?g.jsxs("div",{className:"up-quota-bars",children:[(O=u.windows)==null?void 0:O.map(L=>g.jsx(Bi,{label:L.label,pct:L.pct,reset:L.reset??void 0,resetAt:L.resetAt??void 0,windowSec:L.windowSec??void 0,limitReached:u.limitReached&&L.pct>=100,nowSec:f},L.id)),(H=u.extraWindows)==null?void 0:H.map(L=>g.jsx(Bi,{label:L.label,pct:L.pct,reset:L.reset??void 0,resetAt:L.resetAt??void 0,windowSec:L.windowSec??void 0,nowSec:f},L.id)),u.creditLimit&&g.jsx(Bi,{label:`spend cap · $${Math.round(u.creditLimit.used)} of $${Math.round(u.creditLimit.limit)}`,pct:u.creditLimit.usedPct,reset:u.creditLimit.reset??void 0,resetAt:u.creditLimit.resetAt??void 0,limitReached:u.spendControlReached,nowSec:f}),(h==null?void 0:h.ok)&&h.window7d&&h.window7d.sessionCount>0&&g.jsxs("div",{className:"up-quota-sub",children:[Rr(h.window7d.totalTokens)," tokens · ",h.window7d.sessionCount," session",h.window7d.sessionCount!==1?"s":""," (7d)"]}),u.creditsBalance&&!u.creditsUnlimited&&g.jsxs("div",{className:"up-quota-sub up-credits",children:["credits: $",u.creditsBalance,u.overageReached&&" · overage limit reached"]}),u.creditsUnlimited&&g.jsx("div",{className:"up-quota-sub up-credits",children:"credits: unlimited"}),u.resetCredits&&u.resetCredits.availableCount>0&&g.jsxs("div",{className:"up-quota-sub up-reset-credits",title:"Redeem in the Codex CLI or ChatGPT — agents-deck only reports them",children:[u.resetCredits.availableCount," rate-limit reset",u.resetCredits.availableCount!==1?"s":""," available",u.resetCredits.nextExpiryAt&&` · expires ${new Date(u.resetCredits.nextExpiryAt).toLocaleDateString("en-US",{month:"short",day:"numeric"})}`]}),u.promo&&g.jsx("div",{className:"up-quota-sub",children:u.promo}),u.partial&&g.jsx("div",{className:"up-quota-sub up-quota-hint",children:"Partial data — OpenAI returned limits this build doesn't recognise."})]}):(u==null?void 0:u.ok)===!1?g.jsxs("div",{className:"up-quota-na",children:[g.jsx("span",{children:"Quota unavailable."}),g.jsx("span",{className:"up-quota-hint",children:GO(u.reason)})]}):g.jsx("div",{className:"up-quota-na up-quota-loading",children:"Checking…"})]}),b?g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:"up-total",children:[g.jsx("span",{className:"up-total-value",children:ze(x.total)}),g.jsx("span",{className:"up-total-label",children:"total spend"})]}),g.jsx(BO,{cost:x}),k>0&&g.jsxs("div",{className:"up-tokens-row",children:[g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"in"}),Rr(C.in)]}),g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"out"}),Rr(C.out)]}),C.cacheR>0&&g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"cache r"}),Rr(C.cacheR)]}),C.cacheC>0&&g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"cache c"}),Rr(C.cacheC)]})]}),y.filter(L=>L.cost.total>0).length>0&&g.jsxs("section",{className:"up-section",children:[g.jsx("h4",{className:"up-section-title",children:"By model"}),g.jsxs("table",{className:"up-table",children:[g.jsx("thead",{children:g.jsxs("tr",{children:[g.jsx("th",{children:"Model"}),g.jsx("th",{children:"Tokens"}),g.jsx("th",{children:"Cost"})]})}),g.jsx("tbody",{children:y.filter(L=>L.cost.total>0).map(L=>g.jsxs("tr",{children:[g.jsx("td",{className:"up-model-name",title:L.model,children:da(L.model)}),g.jsx("td",{className:"up-num",children:Rr(L.inputTokens+L.outputTokens)}),g.jsx("td",{className:"up-num up-cost-val",children:ze(L.cost.total)})]},L.model))})]})]}),S.filter(L=>L.cost>0).length>0&&g.jsxs("section",{className:"up-section",children:[g.jsx("h4",{className:"up-section-title",children:"By session"}),g.jsx("div",{className:"up-sessions",children:S.filter(L=>L.cost>0).map(L=>g.jsxs("div",{className:"up-session-row",children:[g.jsx("span",{className:`sl-dot state-${L.state}`,"aria-hidden":!0}),g.jsx("span",{className:"up-session-label",children:L.label}),g.jsx("span",{className:"up-session-tokens",children:Rr(L.inputTokens+L.outputTokens)}),g.jsx("span",{className:"up-session-cost",children:ze(L.cost)})]},L.sessionId))})]})]}):k>0?g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:"up-tokens-row",children:[g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"in"}),Rr(C.in)]}),g.jsxs("span",{className:"up-tok",children:[g.jsx("span",{className:"up-k",children:"out"}),Rr(C.out)]})]}),g.jsx("div",{className:"up-hint",children:"Cost appears once a known model is detected."})]}):g.jsxs("div",{className:"up-empty",children:["No usage data yet.",g.jsx("br",{}),"Start a Claude Code or Codex session."]})]})}const mx=18,QO=1100,zs=(e,n)=>{const r=Math.sin(e*12.9898+n*78.233)*43758.5453;return r-Math.floor(r)},ZO=Array.from({length:mx},(e,n)=>{const r=-72+144*n/(mx-1)+(zs(n,1)-.5)*9,s=(r-90)*(Math.PI/180),o=(54+32*Math.cos(r*Math.PI/180))*(.74+zs(n,2)*.52);return{dx:Math.cos(s)*o,dy:Math.sin(s)*o,rot:(n%2?1:-1)*(100+zs(n,3)*260),delay:Math.round(zs(n,4)*90),dur:760+Math.round(zs(n,5)*260),scale:.8+zs(n,6)*.45,hue:n%4,round:n%3===0}});function gx({anchor:e,lifetimeMs:n=QO}){var l;const[r,s]=A.useState(null),o=typeof window<"u"&&((l=window.matchMedia)==null?void 0:l.call(window,"(prefers-reduced-motion: reduce)").matches);return A.useEffect(()=>{if(o)return;const u=e.current;if(!u)return;const c=u.getBoundingClientRect();s({x:c.left+c.width/2,y:c.top+c.height/2});const p=window.setTimeout(()=>s(null),n);return()=>window.clearTimeout(p)},[e,n,o]),o||!r?null:lI.createPortal(g.jsx("div",{className:"confetti",style:{left:`${r.x}px`,top:`${r.y}px`},"aria-hidden":!0,children:ZO.map((u,c)=>g.jsx("span",{className:`confetti-bit${u.round?" round":""}`,"data-hue":u.hue,style:{"--dx":`${u.dx.toFixed(1)}px`,"--dy":`${u.dy.toFixed(1)}px`,"--rot":`${u.rot}deg`,"--s":u.scale.toFixed(2),animationDelay:`${u.delay}ms`,animationDuration:`${u.dur}ms, ${u.dur}ms`}},c))}),document.body)}const IN=new Set(["awaiting_url","awaiting_code","registering"]);function JO(e){return e!=null&&IN.has(e)}function e3(e){return e!=null&&e!=="done"&&!IN.has(e)}const t3="the sign-in ended before it finished — the deck restarted, or it was cancelled in another tab",n3="the sign-in did not complete";function r3({state:e,serverError:n,localError:r}){const s=e==="idle";return{title:s?"Sign-in ended":"Sign-in failed",message:r||n||(s?t3:n3)}}const i3="done";function s3(){let e=!1;return{shouldAnnounce(n){return n!==i3?(e=!1,!1):e?!1:(e=!0,!0)}}}const o3=1500;async function Rl(e){return(await fetch("/api/claude-accounts/admin",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)})).json().catch(()=>null)}const a3={already_running:"a sign-in is already in progress",no_url:"the claude CLI did not offer a sign-in link — is it installed?",not_waiting:"that sign-in is no longer waiting for a code",not_prompted:"the CLI has not asked for a code yet",code_rejected:"that code was not accepted — copy it again from the browser",no_verdict:"the claude CLI has not answered — try the code again",empty_code:"paste the code from the browser first",login_failed:"the code was not accepted",no_identity:"signed in, but the CLI still reports nobody logged in",add_failed:"signed in, but claude-swap could not record the account",not_a_share:"that does not look like a shared account — it should start with ccdeck1:",corrupt:"that share is incomplete — copy the whole thing",wrong_version:"that share was made by a newer agents-deck",expired:"that share has expired — make a new one",import_failed:"claude-swap refused the import"},fd=(e,n)=>(e==null?void 0:e.detail)||(e!=null&&e.reason?a3[e.reason]??e.reason:null)||(e==null?void 0:e.error)||n,Zg=le.forwardRef((e,n)=>g.jsxs("svg",{className:"aa-mark",viewBox:"0 0 44 44","aria-hidden":!0,ref:n,children:[g.jsx("circle",{className:"aa-mark-ring",cx:"22",cy:"22",r:"20"}),g.jsx("path",{className:"aa-mark-tick",d:"M13.5 22.5 L19.5 28.5 L31 17"})]}));Zg.displayName="SuccessMark";function l3({onClose:e,onChanged:n}){const[r,s]=A.useState("login"),[o,l]=A.useState(null),[u,c]=A.useState(""),[p,h]=A.useState(""),[f,m]=A.useState(!1),[y,x]=A.useState(null),[C,_]=A.useState(null),S=A.useRef(!1),b=A.useRef(null),k=A.useRef(null),N=A.useRef(null),T=A.useCallback(()=>{S.current&&Rl({action:"login-cancel"}).catch(()=>{}),e()},[e]);A.useEffect(()=>{const B=j=>{j.key==="Escape"&&T()};return window.addEventListener("keydown",B),()=>window.removeEventListener("keydown",B)},[T]);const I=A.useCallback(async()=>{m(!0),x(null),S.current=!0;const B=await Rl({action:"login"}).catch(()=>null);if(m(!1),!(B!=null&&B.ok)){x(fd(B,"could not start the sign-in"));return}l(B)},[]);A.useEffect(()=>{if(!JO(o==null?void 0:o.state))return;const B=window.setInterval(async()=>{try{const j=await fetch("/api/claude-accounts/login");j.ok&&l(await j.json())}catch{}},o3);return()=>window.clearInterval(B)},[o]);const M=A.useRef(n);M.current=n;const O=A.useRef(s3());A.useEffect(()=>{var B;(o==null?void 0:o.state)==="awaiting_code"&&((B=b.current)==null||B.focus()),O.current.shouldAnnounce(o==null?void 0:o.state)&&M.current()},[o==null?void 0:o.state]),A.useEffect(()=>{var B;r==="paste"&&((B=k.current)==null||B.focus())},[r]);const H=A.useCallback(async()=>{var j;m(!0),x(null);const B=await Rl({action:"login-code",code:u}).catch(()=>null);if(m(!1),!(B!=null&&B.ok)){x(fd(B,"the code was not accepted")),B!=null&&B.state&&l(B),(j=b.current)==null||j.select();return}c(""),l(B)},[u,o]),L=A.useCallback(async()=>{m(!0),x(null);const B=await Rl({action:"import",blob:p}).catch(()=>null);if(m(!1),!(B!=null&&B.ok)){x(fd(B,"the import failed"));return}h(""),_({added:B.added===!0,num:B.num??null,email:B.email??null}),n()},[p,n]),P=(o==null?void 0:o.state)==="done"?o.account:null,q=e3(o==null?void 0:o.state)||!!(y&&S.current&&!f),W=r3({state:o==null?void 0:o.state,serverError:o==null?void 0:o.error,localError:y});return g.jsx("div",{className:"modal-backdrop",onClick:T,role:"presentation",children:g.jsxs("div",{className:"modal aa-modal",onClick:B=>B.stopPropagation(),role:"dialog","aria-modal":"true","aria-label":"Add a Claude account",children:[g.jsxs("header",{className:"modal-head",children:[g.jsx("div",{className:"modal-title",children:g.jsxs("span",{className:"aa-tabs",role:"tablist",children:[g.jsx("button",{type:"button",role:"tab","aria-selected":r==="login",className:`aa-tab${r==="login"?" on":""}`,onClick:()=>s("login"),children:"Sign in"}),g.jsx("button",{type:"button",role:"tab","aria-selected":r==="paste",className:`aa-tab${r==="paste"?" on":""}`,onClick:()=>s("paste"),children:"Paste a share"})]})}),g.jsx("div",{className:"modal-actions",children:g.jsx("button",{type:"button",className:"btn icon-btn",onClick:T,"aria-label":"Close (Esc)",title:"Close (Esc)",children:"×"})})]}),g.jsx("section",{className:"modal-body aa-body",children:r==="login"?P?g.jsxs("div",{className:"aa-done",children:[g.jsx(Zg,{ref:N}),g.jsx(gx,{anchor:N}),g.jsx("h4",{children:P.added?`Account ${P.num} added`:"Credentials refreshed"}),g.jsxs("p",{className:"aa-note",children:[g.jsx("strong",{children:P.email}),P.added?" is in the rotation. The account you were using is still active.":" was already managed, so its stored credentials were replaced."]}),g.jsx("button",{type:"button",className:"btn primary",onClick:e,children:"Done"})]}):(o==null?void 0:o.state)==="awaiting_code"||(o==null?void 0:o.state)==="registering"?g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:"aa-step",children:[g.jsx("h4",{children:"1 · Approve in the browser"}),g.jsx("p",{className:"aa-note",children:"A tab should have opened. If not, use this link:"}),g.jsx("a",{className:"aa-link",href:o.url??"#",target:"_blank",rel:"noreferrer noopener",children:o.url})]}),g.jsxs("div",{className:"aa-step",children:[g.jsx("h4",{children:"2 · Paste the code it gives you"}),g.jsxs("div",{className:"aa-field",children:[g.jsx("input",{ref:b,type:"text",value:u,onChange:B=>c(B.target.value),onKeyDown:B=>{B.key==="Enter"&&u.trim()&&!f&&H()},placeholder:"paste the code here",spellCheck:!1,autoComplete:"off","aria-label":"Sign-in code",disabled:o.state==="registering"}),g.jsx("button",{type:"button",className:"btn primary",disabled:f||!u.trim()||o.state==="registering",onClick:H,children:o.state==="registering"?"registering…":"Continue"})]}),(y||o.error)&&g.jsx("p",{className:"aa-err",children:y??o.error}),g.jsx("p",{className:"aa-note",children:"The code goes straight to the claude CLI on this machine. It is never stored or sent anywhere else."})]})]}):q?g.jsxs("div",{className:"aa-step",children:[g.jsx("h4",{children:W.title}),g.jsx("p",{className:"aa-err",children:W.message}),g.jsx("button",{type:"button",className:"btn",onClick:()=>{S.current=!1,l(null),x(null),I()},children:"Try again"})]}):f||S.current?g.jsx("div",{className:"aa-step",children:g.jsx("p",{className:"aa-note",children:"Asking the claude CLI for a sign-in link…"})}):g.jsxs("div",{className:"aa-step aa-primer",children:[g.jsx("h4",{children:"Sign in to Anthropic"}),g.jsx("p",{className:"aa-note",children:"Opens a browser tab where you approve the sign-in, then asks for the code it shows you. claude-swap records the account when it completes, and the account you are using now stays active."}),g.jsx("div",{className:"aa-actions",children:g.jsx("button",{type:"button",className:"btn primary",onClick:I,disabled:f,children:"Open the sign-in page"})})]}):C?g.jsxs("div",{className:"aa-done",children:[g.jsx(Zg,{ref:N}),C.added&&g.jsx(gx,{anchor:N}),g.jsx("h4",{children:C.added?`Account ${C.num} imported`:"Already here"}),g.jsx("p",{className:"aa-note",children:C.added?g.jsxs(g.Fragment,{children:[C.email?g.jsx("strong",{children:C.email}):"That account"," is in the rotation now. Nothing changed on the deck you copied it from."]}):"This deck already holds that account, so nothing changed."}),g.jsxs("div",{className:"aa-actions",children:[g.jsx("button",{type:"button",className:"btn primary",onClick:e,children:"Done"}),g.jsx("button",{type:"button",className:"btn",onClick:()=>_(null),children:"Import another"})]})]}):g.jsxs("div",{className:"aa-step",children:[g.jsx("h4",{children:"Paste an account shared from another deck"}),g.jsxs("div",{className:"aa-field",children:[g.jsx("input",{ref:k,type:"text",value:p,onChange:B=>h(B.target.value),onKeyDown:B=>{B.key==="Enter"&&p.trim()&&!f&&L()},placeholder:"ccdeck1:…",spellCheck:!1,autoComplete:"off","aria-label":"Shared account"}),g.jsx("button",{type:"button",className:"btn primary",disabled:f||!p.trim(),onClick:L,children:f?"importing…":"Import"})]}),y&&g.jsx("p",{className:"aa-err",children:y}),g.jsxs("p",{className:"aa-note",children:["Use ",g.jsx("strong",{children:"share"})," on an account in the other deck. A share carries a live login and expires ten minutes after it is made."]})]})})]})})}const u3=15e3,c3=[70,80,85,90,95];function d3(e,n){const r=e-n;if(r<=0)return null;const s=Math.floor(r/86400),o=Math.floor(r%86400/3600),l=Math.floor(r%3600/60);return s>0?`${s}d ${o}h`:o>0?`${o}h ${l}m`:`${l}m`}function vx(e,n){const r=n-Math.floor(e/1e3);return r<60?"just now":r<3600?`${Math.floor(r/60)}m ago`:r<86400?`${Math.floor(r/3600)}h ago`:`${Math.floor(r/86400)}d ago`}function f3(e,n){if(!e)return"";const r=Math.floor(e/1e3)-n;return r<=0?" · due":r<60?` · next in ${r}s`:` · next in ${Math.round(r/60)}m`}function h3(e){switch(e){case"invalid_grant":case"no_refresh_token":return{text:"login expired",hint:"claude-swap's stored login for this account was rejected and cannot be refreshed. Signing in again replaces it — the account keeps its slot, its alias and its history.",fixable:!0};case"http-401":return{text:"re-login needed",hint:"Anthropic refused this account's token.",fixable:!0};case"http-429":return{text:"rate limited",hint:"Anthropic is throttling requests for this account. It clears on its own.",fixable:!1};case"transient":return{text:"temporary error",hint:"A network or server hiccup while reading usage. The next collection retries.",fixable:!1};case"timeout":return{text:"timed out",hint:"Reading this account's usage took too long. The next collection retries.",fixable:!1};case"network":return{text:"unreachable",hint:"Could not reach Anthropic to read this account's usage.",fixable:!1};default:return{text:e,hint:`claude-swap reported "${e}" for this account.`,fixable:!1}}}function p3({lane:e,nowSec:n}){const r=Math.min(100,Math.max(0,e.pct)),s=r>=90?"var(--err)":r>=70?"var(--warn)":"var(--accent)",o=e.resetAt?d3(e.resetAt,n):null;return g.jsxs("div",{className:"ap-lane",children:[g.jsx("span",{className:"ap-lane-label",children:e.label}),g.jsx("div",{className:"ap-lane-track",children:g.jsx("div",{className:"ap-lane-fill",style:{width:`${r===0?1.5:r}%`,background:s,opacity:r===0?.4:1}})}),g.jsxs("span",{className:"ap-lane-pct",style:{color:s},children:[r,"%"]}),g.jsx("span",{className:"ap-lane-reset",children:o?`resets ${o}`:""})]})}function m3(e){const n=e.map(s=>s.num),r=n.length?Math.max(...n):0;return[...new Set([...n,r+1])].sort((s,o)=>s-o)}async function g3(e){var r;let n=!1;try{n=await Promise.race([((r=navigator.clipboard)==null?void 0:r.writeText(e).then(()=>!0))??Promise.resolve(!1),new Promise(s=>window.setTimeout(()=>s(!1),500))])}catch{n=!1}if(n)return!0;try{const s=document.createElement("textarea");s.value=e,s.setAttribute("readonly",""),s.style.cssText="position:fixed;top:0;left:0;opacity:0",document.body.appendChild(s),s.select(),n=document.execCommand("copy"),s.remove()}catch{n=!1}return n}function v3(e,n){const r=Math.round(e/1e3)-n;return r<=0?{text:"expired",tone:"gone"}:r<60?{text:`expires in ${r}s`,tone:"soon"}:{text:`expires in ${Math.round(r/60)}m`,tone:"ok"}}function y3({onClose:e}){var J,F,Y;const[n,r]=A.useState(null),[s,o]=A.useState(null),[l,u]=A.useState(null),[c,p]=A.useState(null),[h,f]=A.useState(null),[m,y]=A.useState(()=>Math.floor(Date.now()/1e3)),x=A.useRef(null),[C,_]=A.useState(null),[S,b]=A.useState(!1),[k,N]=A.useState(""),[T,I]=A.useState(null),[M,O]=A.useState(null),[H,L]=A.useState(!1),P=A.useCallback(async(E=!1)=>{try{const[$,se]=await Promise.all([fetch(`/api/claude-accounts${E?"?refresh=1":""}`),fetch("/api/cswap-auto")]);$.ok&&r(await $.json()),se.ok&&o(await se.json())}catch{}},[]),q=A.useCallback(async(E,$)=>{u($),f(null);try{const D=await(await fetch("/api/cswap-auto",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(E)})).json().catch(()=>null);return D!=null&&D.ok||f((D==null?void 0:D.detail)||(D==null?void 0:D.reason)||"command failed"),D}catch{return f("server unreachable"),null}finally{u(null)}},[]),W=A.useCallback(async(E,$)=>{u($),f(null);try{const D=await(await fetch("/api/claude-accounts/admin",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(E)})).json().catch(()=>null);return D!=null&&D.ok||f((D==null?void 0:D.detail)||(D==null?void 0:D.reason)||"command failed"),D}catch{return f("server unreachable"),null}finally{u(null)}},[]);A.useEffect(()=>(P(!0),x.current=window.setInterval(()=>P(!1),u3),()=>{x.current!=null&&window.clearInterval(x.current)}),[P]),A.useEffect(()=>{const E=window.setInterval(()=>y(Math.floor(Date.now()/1e3)),3e4);return()=>window.clearInterval(E)},[]);const B=((J=s==null?void 0:s.settings["autoswitch.threshold"])==null?void 0:J.value)??"90",j=(F=n==null?void 0:n.accounts)==null?void 0:F.find(E=>E.active),K=j!=null&&j.lanes.length?Math.max(...j.lanes.map(E=>E.pct)):null,U=K!=null&&K>=Number(B)-15,ee=async E=>{p(E),f(null);try{const se=await(await fetch("/api/claude-accounts/switch",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({account:E})})).json().catch(()=>null);se!=null&&se.ok||f((se==null?void 0:se.output)||(se==null?void 0:se.reason)||"switch failed"),await P(!0)}catch{f("server unreachable")}finally{p(null)}};return g.jsxs("div",{className:"accounts-panel","aria-label":"Claude accounts",children:[g.jsxs("div",{className:"ap-header",children:[g.jsx("h3",{children:"Accounts"}),g.jsxs("div",{className:"ap-header-right",children:[g.jsx("button",{type:"button",className:"btn ap-add",onClick:()=>b(!0),title:"Sign in to another Claude account, or paste one shared from another deck",children:"+"}),g.jsx("button",{type:"button",className:"btn ap-refresh",onClick:()=>P(!0),title:"Reload from claude-swap",children:"↻"}),g.jsx("button",{type:"button",className:"btn icon-btn",onClick:e,"aria-label":"Close accounts panel",title:"Close (A)",children:"×"})]})]}),n==null?g.jsx("div",{className:"ap-empty",children:"Checking…"}):n.ok?g.jsxs(g.Fragment,{children:[(Y=n.accounts)==null?void 0:Y.map(E=>g.jsxs("div",{className:`ap-account${E.active?" active":""}${E.disabled?" disabled":""}`,children:[g.jsxs("div",{className:"ap-account-head",children:[g.jsx("span",{className:"ap-num",children:E.num}),E.alias&&g.jsx("span",{className:"ap-alias",children:E.alias}),g.jsx("span",{className:"ap-email",title:E.org??void 0,children:E.email}),g.jsx("button",{type:"button",className:`ap-more${C===E.num?" on":""}`,"aria-label":`Manage account ${E.num}`,"aria-expanded":C===E.num,title:"Share, rename, move, remove",onClick:()=>{_(C===E.num?null:E.num),N(E.alias??""),I(null),O(null),L(!1)},children:"⋯"}),E.active?g.jsx("span",{className:"ap-badge-active",children:"● active"}):g.jsx("button",{type:"button",className:"btn ap-switch",disabled:c!=null||E.disabled,onClick:()=>ee(E.num),title:E.disabled?"Held out of rotation":`Switch to ${E.alias??E.email}`,children:c===E.num?"…":"switch"})]}),E.lanes.length>0?E.lanes.map($=>g.jsx(p3,{lane:$,nowSec:m},$.id)):g.jsx("div",{className:"ap-hint",children:"No usage recorded yet."}),g.jsxs("div",{className:"ap-meta",children:[E.error&&(()=>{const $=h3(E.error);return g.jsxs(g.Fragment,{children:[g.jsx("span",{className:"ap-err",title:$.hint,children:$.text}),$.fixable&&g.jsx("button",{type:"button",className:"ap-fix",onClick:()=>b(!0),title:"Open the sign-in dialog. Signing in as this account replaces its stored login in place.",children:"sign in again"})]})})(),((s==null?void 0:s.enabled)||(s==null?void 0:s.external))&&!E.active&&g.jsx("button",{type:"button",className:"ap-rotate",disabled:l!=null,onClick:()=>q({action:"account",account:E.num,enabled:E.disabled},`rot-${E.num}`).then(()=>P(!0)),title:E.disabled?"Return this account to auto-rotation":"Hold this account out of auto-rotation",children:E.disabled?"held out":"in rotation"}),E.fetchedAt?g.jsxs("span",{className:`ap-age${E.stale?" ap-stale":""}`,title:"When claude-swap last read this account's usage, and when it plans to read it again. It sets that interval itself — 3 minutes at the fastest, wider while an account is recovering from a rate limit — and every surface, including `cswap watch`, follows the same plan.",children:["collected ",vx(E.fetchedAt,m),f3(E.nextAt,m)]}):g.jsx("span",{className:"ap-age ap-stale",title:"claude-swap has not read this account yet",children:"never collected"})]}),C===E.num&&g.jsxs("div",{className:"ap-manage",children:[g.jsxs("div",{className:"ap-manage-row",children:[g.jsx("span",{className:"ap-manage-label",children:"name"}),g.jsx("input",{className:"ap-manage-input",type:"text",value:k,onChange:$=>N($.target.value),onKeyDown:$=>{$.key==="Enter"&&W({action:"alias",account:E.num,alias:k},`alias-${E.num}`).then(()=>P(!0))},placeholder:"no alias",spellCheck:!1,"aria-label":`Alias for account ${E.num}`}),g.jsx("button",{type:"button",className:"ap-manage-btn",disabled:l!=null||k.trim()===(E.alias??""),onClick:()=>W({action:"alias",account:E.num,alias:k},`alias-${E.num}`).then(()=>P(!0)),title:"A short name to show instead of the email",children:"save"})]}),g.jsxs("div",{className:"ap-manage-row",children:[g.jsx("span",{className:"ap-manage-label",children:"slot"}),g.jsx("span",{className:"ap-field",children:g.jsx("select",{"aria-label":`Slot for account ${E.num}`,value:String(E.num),disabled:l!=null,onChange:$=>W({action:"move",account:E.num,slot:Number($.target.value)},`move-${E.num}`).then(()=>P(!0)),children:m3(n.accounts??[]).map($=>g.jsx("option",{value:$,children:$},$))})}),g.jsx("span",{className:"ap-manage-hint",children:"rotation order"})]}),g.jsxs("div",{className:"ap-manage-row",children:[g.jsx("button",{type:"button",className:"ap-manage-btn",disabled:l!=null,title:"Copy this account to another agents-deck. The share carries a live login and expires in 10 minutes.",onClick:async()=>{L(!1);const $=await W({action:"share",account:E.num},`share-${E.num}`);$!=null&&$.ok&&O({num:E.num,blob:$.blob,expiresAt:$.expiresAt})},children:"share…"}),g.jsx("button",{type:"button",className:`ap-manage-btn danger${T===E.num?" armed":""}`,disabled:l!=null,title:T===E.num?"This deletes the stored credentials for this account":"Remove this account from claude-swap",onClick:()=>{if(T!==E.num){I(E.num),window.setTimeout(()=>I($=>$===E.num?null:$),4e3);return}I(null),W({action:"remove",account:E.num},`rm-${E.num}`).then(()=>{_(null),P(!0)})},children:T===E.num?"confirm remove":"remove"})]}),(M==null?void 0:M.num)===E.num&&(()=>{const $=v3(M.expiresAt,m),se=$.tone==="gone";return g.jsxs("div",{className:`ap-share${se?" expired":""}`,children:[g.jsx("code",{className:"ap-share-blob",children:M.blob}),g.jsxs("div",{className:"ap-share-foot",children:[g.jsx("button",{type:"button",className:"ap-manage-btn",disabled:l!=null,onClick:async()=>{if(se){L(!1);const D=await W({action:"share",account:E.num},`share-${E.num}`);D!=null&&D.ok&&O({num:E.num,blob:D.blob,expiresAt:D.expiresAt});return}await g3(M.blob)&&(L(!0),window.setTimeout(()=>L(!1),1800))},children:se?"make a new share":H?"copied":"copy"}),g.jsxs("span",{className:"ap-manage-hint",children:["carries a live login · ",g.jsx("span",{className:`ap-share-expiry ${$.tone}`,children:$.text})]})]})]})})()]})]},E.num)),(s==null?void 0:s.ok)&&g.jsxs("div",{className:"ap-auto",children:[g.jsxs("div",{className:"ap-auto-head",children:[g.jsx("span",{className:"ap-auto-title",children:"Auto-switch"}),g.jsxs("span",{className:"ap-auto-ctl",children:[K!=null&&g.jsxs("span",{className:`ap-auto-now${U?" near":""}`,children:[Math.round(K),"%"]}),g.jsx("span",{className:"ap-field",title:"Switch once the active account passes this much of its limit",children:g.jsx("select",{"aria-label":"Switch threshold",value:B,disabled:l!=null,onChange:E=>q({action:"setting",key:"autoswitch.threshold",value:E.target.value},"threshold").then(()=>P(!0)),children:c3.map(E=>g.jsxs("option",{value:E,children:[E,"%"]},E))})}),g.jsxs("button",{type:"button",className:`ap-auto-state toggle${s.enabled?" live":""}`,role:"switch","aria-checked":s.enabled,disabled:l!=null,onClick:()=>q({action:"enable",enabled:!s.enabled},"enable").then(()=>P(!0)),title:s.enabled?"Stop switching accounts automatically":"Switch accounts automatically when the active one nears its limit",children:[g.jsx("i",{className:s.enabled?"ap-pulse":"ap-dot","aria-hidden":!0}),s.enabled?"on":"off"]})]})]}),s.external&&g.jsxs("p",{className:"ap-auto-note",children:[g.jsx("i",{className:"ap-pulse","aria-hidden":!0})," A ",g.jsx("code",{children:"cswap auto"})," loop in your terminal is doing the switching. The deck stands down while it runs",s.enabled?" — this toggle takes over when you stop it.":"."]}),s.lastTick&&g.jsx("div",{className:"ap-auto-foot",children:g.jsxs("span",{className:"ap-auto-result",children:["checked ",vx(s.lastTick.at,m)]})})]}),h&&g.jsx("div",{className:"ap-failure",children:h}),g.jsx("p",{className:"ap-footnote",title:"Anthropic's usage endpoint allows roughly 28–30 requests per hour per account, shared by every tool on this machine — polling it from here would rate-limit your account. So the deck never fetches: it asks claude-swap to collect while this panel is open, at most once every three minutes, and claude-swap decides whether that touches the network at all.",children:"Collected by claude-swap while this panel is open."})]}):g.jsx("div",{className:"ap-empty",children:n.reason==="no_cswap"?g.jsxs(g.Fragment,{children:[g.jsx("span",{children:"claude-swap isn't installed."}),g.jsx("span",{className:"ap-hint",children:"This panel reads the account store claude-swap keeps — without it there is nothing to show. It is a separate tool, published on PyPI, so it does not come with this package."}),n.hint&&g.jsx("code",{className:"ap-cmd",children:n.hint}),g.jsxs("span",{className:"ap-hint",children:["Then add an account with the ",g.jsx("strong",{children:"+"})," button above."]})]}):n.reason==="no_accounts"?g.jsxs(g.Fragment,{children:[g.jsx("span",{children:"No accounts added yet."}),g.jsxs("span",{className:"ap-hint",children:["claude-swap is installed but has nothing in its store. Use the ",g.jsx("strong",{children:"+"})," above to sign one in, or to paste one shared from another deck."]})]}):g.jsxs(g.Fragment,{children:[g.jsx("span",{children:"Couldn't read the account store."}),g.jsxs("span",{className:"ap-hint",children:["claude-swap is installed, but its store could not be read",n.reason?` (${n.reason})`:"","."]})]})}),S&&g.jsx(l3,{onClose:()=>b(!1),onChanged:()=>P(!0)})]})}const w3=3e4;function x3({bundle:e,running:n,lastTried:r}){return!n||e===n?!1:r!==n}function _3({bundle:e,running:n,pending:r,lastTried:s}){return n?x3({bundle:e,running:n,lastTried:s})?"reload":r==null||r&&r!==n?"wait":"confirm":"wait"}function S3(e){return!e||e.state!=="failed"?null:`${typeof e.at=="number"?e.at:0}:${e.error??""}`}function b3({asked:e,reported:n}){return n?n!==e:!1}function k3(e){const n=e.thresholdMs??w3;return!e.enabled||e.kind!=="restart"||!e.canRestart?{idleSince:null,restart:!1}:e.busy?{idleSince:null,restart:!1}:e.idleSince==null?{idleSince:e.now,restart:!1}:e.now<e.idleSince?{idleSince:e.now,restart:!1}:{idleSince:e.idleSince,restart:e.now-e.idleSince>=n}}function E3(e){return e.ctrlKey||e.metaKey||e.altKey}const N3=new Set(["button","checkbox","color","file","image","radio","range","reset","submit"]),C3=new Set(["INPUT","TEXTAREA","SELECT","OPTION","BUTTON","SUMMARY","A"]),T3=new Set(["button","checkbox","combobox","link","listbox","menu","menubar","menuitem","menuitemcheckbox","menuitemradio","option","radio","searchbox","slider","spinbutton","switch","tab","textbox","treeitem"]);function MN(e){return typeof e.tagName=="string"?e.tagName.toUpperCase():""}function PN(e){if(!e)return!1;if(e.isContentEditable)return!0;const n=MN(e);return n==="TEXTAREA"?!0:n!=="INPUT"?!1:!N3.has(String(e.type??"text").toLowerCase())}function R3(e){if(!e)return!1;if(PN(e)||C3.has(MN(e)))return!0;const n=typeof e.role=="string"?e.role.trim().toLowerCase():"";return n!==""&&n.split(/\s+/).some(r=>T3.has(r))}function hd(e,n){if(n.size!==0)for(const r of Array.from(e.keys()))n.has(r)||e.delete(r)}function j3(e){const n=new Set;for(const r of e)n.add(r.id),n.add(`group:${r.sessionId}`);return n}const A3=40,I3=120;function M3(e,n){let r=null,s=0,o=Number.NEGATIVE_INFINITY;const l=()=>{r=null,o=n.now(),e()},u=()=>{r!=null&&(n.clearTimeout(r),r=null)},c=(p,h,f)=>{if(r!=null){if(s<=p)return;u()}const m=Math.min(f,Math.max(0,p-h));s=p,r=n.setTimeout(l,m)};return{live(p=A3){const h=n.now(),f=Math.max(o+p,h);if(f<=h){u(),l();return}c(f,h,p)},replay(p=I3){u(),s=n.now()+p,r=n.setTimeout(l,p)},flush(){u(),l()},cancel(){u()}}}function P3(){let e=!1,n=[];return{get paused(){return e},get size(){return n.length},accept(r){return e?(n.push(r),!1):!0},setPaused(r){if(e=r,r||n.length===0)return[];const s=n;return n=[],s}}}const O3="1",yx="agent-dag.schema",L3=["agent-dag.layout","agent-dag.viewport"];function ON(e){if(typeof window>"u")return null;try{return window.localStorage.getItem(e)}catch{return null}}function q3(e,n=O3){let r=null;try{r=e.getItem(yx)}catch{return[]}if(r===n)return[];const s=[];if(r!==null)for(const o of L3)try{e.getItem(o)!==null&&(e.removeItem(o),s.push(o))}catch{}try{e.setItem(yx,n)}catch{}return s}function $3(){let e=0;return{begin(){const n=++e;return()=>n===e},cancel(){e++}}}function D3(e,n=new Date){return new Date(Date.UTC(n.getFullYear(),n.getMonth(),n.getDate()-(e-1))).toISOString().slice(0,10).replace(/-/g,"")}function Ui(e){return e<1e3?`${e}`:e<1e6?`${(e/1e3).toFixed(1)}k`:e<1e9?`${(e/1e6).toFixed(2)}M`:`${(e/1e9).toFixed(2)}B`}function wx(e){return e.replace(/^anthropic\./,"").replace(/^claude-/,"").replace(/-\d{8}$/,"")}function jl(e){const n=e.toLowerCase();return n.includes("opus")?"#c4b5fd":n.includes("sonnet")?"#7dd3fc":n.includes("haiku")?"#86efac":n.includes("gpt-5")||n.includes("gpt5")?"#fcd34d":n.includes("gpt")?"#fca5a5":n.includes("gemini")?"#a5b4fc":n.includes("codex")?"#fdba74":"#94a3b8"}const F3=[7,14,30,90];function z3(e){const[n,r]=A.useState(null),[s,o]=A.useState(!1),l=A.useRef($3()).current,u=(c=!1)=>{const p=l.begin();o(!0);const f=`/api/ccusage?since=${D3(e)}${c?"&refresh=1":""}`;fetch(f).then(m=>m.json()).then(m=>{p()&&r(m)}).catch(()=>{p()&&r({ok:!1,error:"request failed"})}).finally(()=>{p()&&o(!1)})};return A.useEffect(()=>(u(!1),()=>l.cancel()),[e]),{data:n,loading:s,reload:()=>u(!0)}}function B3({onClose:e}){var b,k;const[n,r]=A.useState(30),[s,o]=A.useState(null),{data:l,loading:u,reload:c}=z3(n);A.useEffect(()=>{const N=T=>{T.key==="Escape"&&e()};return window.addEventListener("keydown",N),()=>window.removeEventListener("keydown",N)},[e]);const p=l!=null&&l.ok?l.days??[]:[],h=A.useMemo(()=>p.reduce((N,T)=>Math.max(N,T.totalCost),0),[p]),{totalCost:f,totalTok:m,inOut:y,cacheRead:x,modelCosts:C}=A.useMemo(()=>{let N=0,T=0,I=0,M=0;const O=new Map;for(const H of p){N+=H.totalCost,T+=H.totalTokens,I+=H.inputTokens+H.outputTokens,M+=H.cacheReadTokens;for(const L of H.modelBreakdowns)O.set(L.modelName,(O.get(L.modelName)??0)+L.cost)}return{totalCost:N,totalTok:T,inOut:I,cacheRead:M,modelCosts:O}},[p]),_=A.useMemo(()=>Array.from(C.entries()).sort((N,T)=>T[1]-N[1]),[C]),S=s?p.find(N=>N.period===s)??null:null;return g.jsx("div",{className:"uh-backdrop",onClick:e,role:"presentation",children:g.jsxs("div",{className:"uh-modal",onClick:N=>N.stopPropagation(),role:"dialog","aria-label":"Usage history",children:[g.jsxs("header",{className:"uh-head",children:[g.jsxs("div",{className:"uh-titlewrap",children:[g.jsx("div",{className:"uh-title",children:"Usage history"}),g.jsx("div",{className:"uh-sub",children:"via ccusage · local Claude / Codex logs"})]}),g.jsx("div",{className:"uh-range",role:"tablist","aria-label":"Range",children:F3.map(N=>g.jsxs("button",{role:"tab","aria-selected":n===N,className:`uh-range-btn${n===N?" on":""}`,onClick:()=>{r(N),o(null)},children:[N,"d"]},N))}),g.jsx("button",{className:"btn icon-btn uh-reload",onClick:c,title:"Re-run ccusage","aria-label":"Reload",children:"↻"}),g.jsx("button",{className:"uh-close",onClick:e,"aria-label":"Close",children:"×"})]}),u&&p.length===0?g.jsx("div",{className:"uh-status",children:"running ccusage… (first run downloads the package)"}):l&&!l.ok?g.jsxs("div",{className:"uh-status uh-err",children:["ccusage failed: ",l.error]}):p.length===0?g.jsx("div",{className:"uh-status",children:"no usage in this range"}):g.jsxs(g.Fragment,{children:[g.jsxs("div",{className:"uh-totals",children:[g.jsx(Al,{label:"total cost",val:ze(f),accent:!0}),g.jsx(Al,{label:"tokens",val:Ui(m)}),g.jsx(Al,{label:"input+output",val:Ui(y)}),g.jsx(Al,{label:"cache reads",val:Ui(x)})]}),g.jsx("div",{className:"uh-chart",role:"img","aria-label":"Daily cost by model",children:p.map(N=>{const T=h>0?N.totalCost/h*100:0,I=N.period===s;return g.jsxs("button",{className:`uh-bar-col${I?" sel":""}`,onClick:()=>o(I?null:N.period),title:`${N.period} · ${ze(N.totalCost)}`,style:{flexBasis:`${100/p.length}%`},children:[g.jsx("div",{className:"uh-bar",style:{height:`${Math.max(T,N.totalCost>0?2:0)}%`},children:N.modelBreakdowns.slice().sort((M,O)=>O.cost-M.cost).map(M=>{const O=N.totalCost>0?M.cost/N.totalCost*100:0;return g.jsx("div",{className:"uh-bar-seg",style:{height:`${O}%`,background:jl(M.modelName)}},M.modelName)})}),g.jsx("span",{className:"uh-bar-label",children:N.period.slice(5)})]},N.period)})}),g.jsx("div",{className:"uh-legend",children:_.map(([N,T])=>g.jsxs("span",{className:"uh-legend-item",children:[g.jsx("span",{className:"uh-legend-dot",style:{background:jl(N)}}),wx(N)," ",g.jsx("span",{className:"uh-legend-cost",children:ze(T)})]},N))}),S&&g.jsxs("div",{className:"uh-detail",children:[g.jsxs("div",{className:"uh-detail-head",children:[g.jsx("span",{className:"uh-detail-date",children:S.period}),g.jsx("span",{className:"uh-detail-cost",children:ze(S.totalCost)}),(k=(b=S.metadata)==null?void 0:b.agents)!=null&&k.length?g.jsx("span",{className:"uh-detail-agents",children:S.metadata.agents.join(" · ")}):null]}),g.jsxs("div",{className:"uh-detail-mini",children:[g.jsx(Il,{label:"input",val:Ui(S.inputTokens)}),g.jsx(Il,{label:"output",val:Ui(S.outputTokens)}),g.jsx(Il,{label:"cache write",val:Ui(S.cacheCreationTokens)}),g.jsx(Il,{label:"cache read",val:Ui(S.cacheReadTokens)})]}),g.jsx("div",{className:"uh-detail-models",children:S.modelBreakdowns.slice().sort((N,T)=>T.cost-N.cost).map(N=>{const T=S.totalCost>0?N.cost/S.totalCost*100:0;return g.jsxs("div",{className:"uh-model-row",children:[g.jsxs("span",{className:"uh-model-name",children:[g.jsx("span",{className:"uh-legend-dot",style:{background:jl(N.modelName)}}),wx(N.modelName)]}),g.jsx("span",{className:"uh-model-bar",children:g.jsx("span",{className:"uh-model-bar-fill",style:{width:`${T}%`,background:jl(N.modelName)}})}),g.jsx("span",{className:"uh-model-cost",children:ze(N.cost)})]},N.modelName)})})]})]})]})})}function Al({label:e,val:n,accent:r}){return g.jsxs("div",{className:"uh-stat",children:[g.jsx("span",{className:`uh-stat-val${r?" accent":""}`,children:n}),g.jsx("span",{className:"uh-stat-label",children:e})]})}function Il({label:e,val:n}){return g.jsxs("div",{className:"uh-ministat",children:[g.jsx("span",{className:"uh-ministat-val",children:n}),g.jsx("span",{className:"uh-ministat-label",children:e})]})}function bv(e){throw new Error('Could not dynamically require "'+e+'". Please configure the dynamicRequireTargets or/and ignoreDynamicRequires option of @rollup/plugin-commonjs appropriately for this require call to work.')}var pd,xx;function U3(){if(xx)return pd;xx=1;function e(){this.__data__=[],this.size=0}return pd=e,pd}var md,_x;function eo(){if(_x)return md;_x=1;function e(n,r){return n===r||n!==n&&r!==r}return md=e,md}var gd,Sx;function iu(){if(Sx)return gd;Sx=1;var e=eo();function n(r,s){for(var o=r.length;o--;)if(e(r[o][0],s))return o;return-1}return gd=n,gd}var vd,bx;function H3(){if(bx)return vd;bx=1;var e=iu(),n=Array.prototype,r=n.splice;function s(o){var l=this.__data__,u=e(l,o);if(u<0)return!1;var c=l.length-1;return u==c?l.pop():r.call(l,u,1),--this.size,!0}return vd=s,vd}var yd,kx;function W3(){if(kx)return yd;kx=1;var e=iu();function n(r){var s=this.__data__,o=e(s,r);return o<0?void 0:s[o][1]}return yd=n,yd}var wd,Ex;function V3(){if(Ex)return wd;Ex=1;var e=iu();function n(r){return e(this.__data__,r)>-1}return wd=n,wd}var xd,Nx;function G3(){if(Nx)return xd;Nx=1;var e=iu();function n(r,s){var o=this.__data__,l=e(o,r);return l<0?(++this.size,o.push([r,s])):o[l][1]=s,this}return xd=n,xd}var _d,Cx;function su(){if(Cx)return _d;Cx=1;var e=U3(),n=H3(),r=W3(),s=V3(),o=G3();function l(u){var c=-1,p=u==null?0:u.length;for(this.clear();++c<p;){var h=u[c];this.set(h[0],h[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=r,l.prototype.has=s,l.prototype.set=o,_d=l,_d}var Sd,Tx;function Y3(){if(Tx)return Sd;Tx=1;var e=su();function n(){this.__data__=new e,this.size=0}return Sd=n,Sd}var bd,Rx;function K3(){if(Rx)return bd;Rx=1;function e(n){var r=this.__data__,s=r.delete(n);return this.size=r.size,s}return bd=e,bd}var kd,jx;function X3(){if(jx)return kd;jx=1;function e(n){return this.__data__.get(n)}return kd=e,kd}var Ed,Ax;function Q3(){if(Ax)return Ed;Ax=1;function e(n){return this.__data__.has(n)}return Ed=e,Ed}var Nd,Ix;function LN(){if(Ix)return Nd;Ix=1;var e=typeof gl=="object"&&gl&&gl.Object===Object&≷return Nd=e,Nd}var Cd,Mx;function tr(){if(Mx)return Cd;Mx=1;var e=LN(),n=typeof self=="object"&&self&&self.Object===Object&&self,r=e||n||Function("return this")();return Cd=r,Cd}var Td,Px;function to(){if(Px)return Td;Px=1;var e=tr(),n=e.Symbol;return Td=n,Td}var Rd,Ox;function Z3(){if(Ox)return Rd;Ox=1;var e=to(),n=Object.prototype,r=n.hasOwnProperty,s=n.toString,o=e?e.toStringTag:void 0;function l(u){var c=r.call(u,o),p=u[o];try{u[o]=void 0;var h=!0}catch{}var f=s.call(u);return h&&(c?u[o]=p:delete u[o]),f}return Rd=l,Rd}var jd,Lx;function J3(){if(Lx)return jd;Lx=1;var e=Object.prototype,n=e.toString;function r(s){return n.call(s)}return jd=r,jd}var Ad,qx;function Qi(){if(qx)return Ad;qx=1;var e=to(),n=Z3(),r=J3(),s="[object Null]",o="[object Undefined]",l=e?e.toStringTag:void 0;function u(c){return c==null?c===void 0?o:s:l&&l in Object(c)?n(c):r(c)}return Ad=u,Ad}var Id,$x;function jn(){if($x)return Id;$x=1;function e(n){var r=typeof n;return n!=null&&(r=="object"||r=="function")}return Id=e,Id}var Md,Dx;function fa(){if(Dx)return Md;Dx=1;var e=Qi(),n=jn(),r="[object AsyncFunction]",s="[object Function]",o="[object GeneratorFunction]",l="[object Proxy]";function u(c){if(!n(c))return!1;var p=e(c);return p==s||p==o||p==r||p==l}return Md=u,Md}var Pd,Fx;function eL(){if(Fx)return Pd;Fx=1;var e=tr(),n=e["__core-js_shared__"];return Pd=n,Pd}var Od,zx;function tL(){if(zx)return Od;zx=1;var e=eL(),n=(function(){var s=/[^.]+$/.exec(e&&e.keys&&e.keys.IE_PROTO||"");return s?"Symbol(src)_1."+s:""})();function r(s){return!!n&&n in s}return Od=r,Od}var Ld,Bx;function qN(){if(Bx)return Ld;Bx=1;var e=Function.prototype,n=e.toString;function r(s){if(s!=null){try{return n.call(s)}catch{}try{return s+""}catch{}}return""}return Ld=r,Ld}var qd,Ux;function nL(){if(Ux)return qd;Ux=1;var e=fa(),n=tL(),r=jn(),s=qN(),o=/[\\^$.*+?()[\]{}|]/g,l=/^\[object .+?Constructor\]$/,u=Function.prototype,c=Object.prototype,p=u.toString,h=c.hasOwnProperty,f=RegExp("^"+p.call(h).replace(o,"\\$&").replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g,"$1.*?")+"$");function m(y){if(!r(y)||n(y))return!1;var x=e(y)?f:l;return x.test(s(y))}return qd=m,qd}var $d,Hx;function rL(){if(Hx)return $d;Hx=1;function e(n,r){return n==null?void 0:n[r]}return $d=e,$d}var Dd,Wx;function Zi(){if(Wx)return Dd;Wx=1;var e=nL(),n=rL();function r(s,o){var l=n(s,o);return e(l)?l:void 0}return Dd=r,Dd}var Fd,Vx;function kv(){if(Vx)return Fd;Vx=1;var e=Zi(),n=tr(),r=e(n,"Map");return Fd=r,Fd}var zd,Gx;function ou(){if(Gx)return zd;Gx=1;var e=Zi(),n=e(Object,"create");return zd=n,zd}var Bd,Yx;function iL(){if(Yx)return Bd;Yx=1;var e=ou();function n(){this.__data__=e?e(null):{},this.size=0}return Bd=n,Bd}var Ud,Kx;function sL(){if(Kx)return Ud;Kx=1;function e(n){var r=this.has(n)&&delete this.__data__[n];return this.size-=r?1:0,r}return Ud=e,Ud}var Hd,Xx;function oL(){if(Xx)return Hd;Xx=1;var e=ou(),n="__lodash_hash_undefined__",r=Object.prototype,s=r.hasOwnProperty;function o(l){var u=this.__data__;if(e){var c=u[l];return c===n?void 0:c}return s.call(u,l)?u[l]:void 0}return Hd=o,Hd}var Wd,Qx;function aL(){if(Qx)return Wd;Qx=1;var e=ou(),n=Object.prototype,r=n.hasOwnProperty;function s(o){var l=this.__data__;return e?l[o]!==void 0:r.call(l,o)}return Wd=s,Wd}var Vd,Zx;function lL(){if(Zx)return Vd;Zx=1;var e=ou(),n="__lodash_hash_undefined__";function r(s,o){var l=this.__data__;return this.size+=this.has(s)?0:1,l[s]=e&&o===void 0?n:o,this}return Vd=r,Vd}var Gd,Jx;function uL(){if(Jx)return Gd;Jx=1;var e=iL(),n=sL(),r=oL(),s=aL(),o=lL();function l(u){var c=-1,p=u==null?0:u.length;for(this.clear();++c<p;){var h=u[c];this.set(h[0],h[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=r,l.prototype.has=s,l.prototype.set=o,Gd=l,Gd}var Yd,e1;function cL(){if(e1)return Yd;e1=1;var e=uL(),n=su(),r=kv();function s(){this.size=0,this.__data__={hash:new e,map:new(r||n),string:new e}}return Yd=s,Yd}var Kd,t1;function dL(){if(t1)return Kd;t1=1;function e(n){var r=typeof n;return r=="string"||r=="number"||r=="symbol"||r=="boolean"?n!=="__proto__":n===null}return Kd=e,Kd}var Xd,n1;function au(){if(n1)return Xd;n1=1;var e=dL();function n(r,s){var o=r.__data__;return e(s)?o[typeof s=="string"?"string":"hash"]:o.map}return Xd=n,Xd}var Qd,r1;function fL(){if(r1)return Qd;r1=1;var e=au();function n(r){var s=e(this,r).delete(r);return this.size-=s?1:0,s}return Qd=n,Qd}var Zd,i1;function hL(){if(i1)return Zd;i1=1;var e=au();function n(r){return e(this,r).get(r)}return Zd=n,Zd}var Jd,s1;function pL(){if(s1)return Jd;s1=1;var e=au();function n(r){return e(this,r).has(r)}return Jd=n,Jd}var ef,o1;function mL(){if(o1)return ef;o1=1;var e=au();function n(r,s){var o=e(this,r),l=o.size;return o.set(r,s),this.size+=o.size==l?0:1,this}return ef=n,ef}var tf,a1;function Ev(){if(a1)return tf;a1=1;var e=cL(),n=fL(),r=hL(),s=pL(),o=mL();function l(u){var c=-1,p=u==null?0:u.length;for(this.clear();++c<p;){var h=u[c];this.set(h[0],h[1])}}return l.prototype.clear=e,l.prototype.delete=n,l.prototype.get=r,l.prototype.has=s,l.prototype.set=o,tf=l,tf}var nf,l1;function gL(){if(l1)return nf;l1=1;var e=su(),n=kv(),r=Ev(),s=200;function o(l,u){var c=this.__data__;if(c instanceof e){var p=c.__data__;if(!n||p.length<s-1)return p.push([l,u]),this.size=++c.size,this;c=this.__data__=new r(p)}return c.set(l,u),this.size=c.size,this}return nf=o,nf}var rf,u1;function lu(){if(u1)return rf;u1=1;var e=su(),n=Y3(),r=K3(),s=X3(),o=Q3(),l=gL();function u(c){var p=this.__data__=new e(c);this.size=p.size}return u.prototype.clear=n,u.prototype.delete=r,u.prototype.get=s,u.prototype.has=o,u.prototype.set=l,rf=u,rf}var sf,c1;function Nv(){if(c1)return sf;c1=1;function e(n,r){for(var s=-1,o=n==null?0:n.length;++s<o&&r(n[s],s,n)!==!1;);return n}return sf=e,sf}var of,d1;function $N(){if(d1)return of;d1=1;var e=Zi(),n=(function(){try{var r=e(Object,"defineProperty");return r({},"",{}),r}catch{}})();return of=n,of}var af,f1;function uu(){if(f1)return af;f1=1;var e=$N();function n(r,s,o){s=="__proto__"&&e?e(r,s,{configurable:!0,enumerable:!0,value:o,writable:!0}):r[s]=o}return af=n,af}var lf,h1;function cu(){if(h1)return lf;h1=1;var e=uu(),n=eo(),r=Object.prototype,s=r.hasOwnProperty;function o(l,u,c){var p=l[u];(!(s.call(l,u)&&n(p,c))||c===void 0&&!(u in l))&&e(l,u,c)}return lf=o,lf}var uf,p1;function ha(){if(p1)return uf;p1=1;var e=cu(),n=uu();function r(s,o,l,u){var c=!l;l||(l={});for(var p=-1,h=o.length;++p<h;){var f=o[p],m=u?u(l[f],s[f],f,l,s):void 0;m===void 0&&(m=s[f]),c?n(l,f,m):e(l,f,m)}return l}return uf=r,uf}var cf,m1;function vL(){if(m1)return cf;m1=1;function e(n,r){for(var s=-1,o=Array(n);++s<n;)o[s]=r(s);return o}return cf=e,cf}var df,g1;function hr(){if(g1)return df;g1=1;function e(n){return n!=null&&typeof n=="object"}return df=e,df}var ff,v1;function yL(){if(v1)return ff;v1=1;var e=Qi(),n=hr(),r="[object Arguments]";function s(o){return n(o)&&e(o)==r}return ff=s,ff}var hf,y1;function pa(){if(y1)return hf;y1=1;var e=yL(),n=hr(),r=Object.prototype,s=r.hasOwnProperty,o=r.propertyIsEnumerable,l=e((function(){return arguments})())?e:function(u){return n(u)&&s.call(u,"callee")&&!o.call(u,"callee")};return hf=l,hf}var pf,w1;function _t(){if(w1)return pf;w1=1;var e=Array.isArray;return pf=e,pf}var Vo={exports:{}},mf,x1;function wL(){if(x1)return mf;x1=1;function e(){return!1}return mf=e,mf}Vo.exports;var _1;function no(){return _1||(_1=1,(function(e,n){var r=tr(),s=wL(),o=n&&!n.nodeType&&n,l=o&&!0&&e&&!e.nodeType&&e,u=l&&l.exports===o,c=u?r.Buffer:void 0,p=c?c.isBuffer:void 0,h=p||s;e.exports=h})(Vo,Vo.exports)),Vo.exports}var gf,S1;function du(){if(S1)return gf;S1=1;var e=9007199254740991,n=/^(?:0|[1-9]\d*)$/;function r(s,o){var l=typeof s;return o=o??e,!!o&&(l=="number"||l!="symbol"&&n.test(s))&&s>-1&&s%1==0&&s<o}return gf=r,gf}var vf,b1;function Cv(){if(b1)return vf;b1=1;var e=9007199254740991;function n(r){return typeof r=="number"&&r>-1&&r%1==0&&r<=e}return vf=n,vf}var yf,k1;function xL(){if(k1)return yf;k1=1;var e=Qi(),n=Cv(),r=hr(),s="[object Arguments]",o="[object Array]",l="[object Boolean]",u="[object Date]",c="[object Error]",p="[object Function]",h="[object Map]",f="[object Number]",m="[object Object]",y="[object RegExp]",x="[object Set]",C="[object String]",_="[object WeakMap]",S="[object ArrayBuffer]",b="[object DataView]",k="[object Float32Array]",N="[object Float64Array]",T="[object Int8Array]",I="[object Int16Array]",M="[object Int32Array]",O="[object Uint8Array]",H="[object Uint8ClampedArray]",L="[object Uint16Array]",P="[object Uint32Array]",q={};q[k]=q[N]=q[T]=q[I]=q[M]=q[O]=q[H]=q[L]=q[P]=!0,q[s]=q[o]=q[S]=q[l]=q[b]=q[u]=q[c]=q[p]=q[h]=q[f]=q[m]=q[y]=q[x]=q[C]=q[_]=!1;function W(B){return r(B)&&n(B.length)&&!!q[e(B)]}return yf=W,yf}var wf,E1;function fu(){if(E1)return wf;E1=1;function e(n){return function(r){return n(r)}}return wf=e,wf}var Go={exports:{}};Go.exports;var N1;function Tv(){return N1||(N1=1,(function(e,n){var r=LN(),s=n&&!n.nodeType&&n,o=s&&!0&&e&&!e.nodeType&&e,l=o&&o.exports===s,u=l&&r.process,c=(function(){try{var p=o&&o.require&&o.require("util").types;return p||u&&u.binding&&u.binding("util")}catch{}})();e.exports=c})(Go,Go.exports)),Go.exports}var xf,C1;function ma(){if(C1)return xf;C1=1;var e=xL(),n=fu(),r=Tv(),s=r&&r.isTypedArray,o=s?n(s):e;return xf=o,xf}var _f,T1;function DN(){if(T1)return _f;T1=1;var e=vL(),n=pa(),r=_t(),s=no(),o=du(),l=ma(),u=Object.prototype,c=u.hasOwnProperty;function p(h,f){var m=r(h),y=!m&&n(h),x=!m&&!y&&s(h),C=!m&&!y&&!x&&l(h),_=m||y||x||C,S=_?e(h.length,String):[],b=S.length;for(var k in h)(f||c.call(h,k))&&!(_&&(k=="length"||x&&(k=="offset"||k=="parent")||C&&(k=="buffer"||k=="byteLength"||k=="byteOffset")||o(k,b)))&&S.push(k);return S}return _f=p,_f}var Sf,R1;function hu(){if(R1)return Sf;R1=1;var e=Object.prototype;function n(r){var s=r&&r.constructor,o=typeof s=="function"&&s.prototype||e;return r===o}return Sf=n,Sf}var bf,j1;function FN(){if(j1)return bf;j1=1;function e(n,r){return function(s){return n(r(s))}}return bf=e,bf}var kf,A1;function _L(){if(A1)return kf;A1=1;var e=FN(),n=e(Object.keys,Object);return kf=n,kf}var Ef,I1;function Rv(){if(I1)return Ef;I1=1;var e=hu(),n=_L(),r=Object.prototype,s=r.hasOwnProperty;function o(l){if(!e(l))return n(l);var u=[];for(var c in Object(l))s.call(l,c)&&c!="constructor"&&u.push(c);return u}return Ef=o,Ef}var Nf,M1;function Pr(){if(M1)return Nf;M1=1;var e=fa(),n=Cv();function r(s){return s!=null&&n(s.length)&&!e(s)}return Nf=r,Nf}var Cf,P1;function hi(){if(P1)return Cf;P1=1;var e=DN(),n=Rv(),r=Pr();function s(o){return r(o)?e(o):n(o)}return Cf=s,Cf}var Tf,O1;function SL(){if(O1)return Tf;O1=1;var e=ha(),n=hi();function r(s,o){return s&&e(o,n(o),s)}return Tf=r,Tf}var Rf,L1;function bL(){if(L1)return Rf;L1=1;function e(n){var r=[];if(n!=null)for(var s in Object(n))r.push(s);return r}return Rf=e,Rf}var jf,q1;function kL(){if(q1)return jf;q1=1;var e=jn(),n=hu(),r=bL(),s=Object.prototype,o=s.hasOwnProperty;function l(u){if(!e(u))return r(u);var c=n(u),p=[];for(var h in u)h=="constructor"&&(c||!o.call(u,h))||p.push(h);return p}return jf=l,jf}var Af,$1;function Ji(){if($1)return Af;$1=1;var e=DN(),n=kL(),r=Pr();function s(o){return r(o)?e(o,!0):n(o)}return Af=s,Af}var If,D1;function EL(){if(D1)return If;D1=1;var e=ha(),n=Ji();function r(s,o){return s&&e(o,n(o),s)}return If=r,If}var Yo={exports:{}};Yo.exports;var F1;function zN(){return F1||(F1=1,(function(e,n){var r=tr(),s=n&&!n.nodeType&&n,o=s&&!0&&e&&!e.nodeType&&e,l=o&&o.exports===s,u=l?r.Buffer:void 0,c=u?u.allocUnsafe:void 0;function p(h,f){if(f)return h.slice();var m=h.length,y=c?c(m):new h.constructor(m);return h.copy(y),y}e.exports=p})(Yo,Yo.exports)),Yo.exports}var Mf,z1;function BN(){if(z1)return Mf;z1=1;function e(n,r){var s=-1,o=n.length;for(r||(r=Array(o));++s<o;)r[s]=n[s];return r}return Mf=e,Mf}var Pf,B1;function UN(){if(B1)return Pf;B1=1;function e(n,r){for(var s=-1,o=n==null?0:n.length,l=0,u=[];++s<o;){var c=n[s];r(c,s,n)&&(u[l++]=c)}return u}return Pf=e,Pf}var Of,U1;function HN(){if(U1)return Of;U1=1;function e(){return[]}return Of=e,Of}var Lf,H1;function jv(){if(H1)return Lf;H1=1;var e=UN(),n=HN(),r=Object.prototype,s=r.propertyIsEnumerable,o=Object.getOwnPropertySymbols,l=o?function(u){return u==null?[]:(u=Object(u),e(o(u),function(c){return s.call(u,c)}))}:n;return Lf=l,Lf}var qf,W1;function NL(){if(W1)return qf;W1=1;var e=ha(),n=jv();function r(s,o){return e(s,n(s),o)}return qf=r,qf}var $f,V1;function Av(){if(V1)return $f;V1=1;function e(n,r){for(var s=-1,o=r.length,l=n.length;++s<o;)n[l+s]=r[s];return n}return $f=e,$f}var Df,G1;function pu(){if(G1)return Df;G1=1;var e=FN(),n=e(Object.getPrototypeOf,Object);return Df=n,Df}var Ff,Y1;function WN(){if(Y1)return Ff;Y1=1;var e=Av(),n=pu(),r=jv(),s=HN(),o=Object.getOwnPropertySymbols,l=o?function(u){for(var c=[];u;)e(c,r(u)),u=n(u);return c}:s;return Ff=l,Ff}var zf,K1;function CL(){if(K1)return zf;K1=1;var e=ha(),n=WN();function r(s,o){return e(s,n(s),o)}return zf=r,zf}var Bf,X1;function VN(){if(X1)return Bf;X1=1;var e=Av(),n=_t();function r(s,o,l){var u=o(s);return n(s)?u:e(u,l(s))}return Bf=r,Bf}var Uf,Q1;function GN(){if(Q1)return Uf;Q1=1;var e=VN(),n=jv(),r=hi();function s(o){return e(o,r,n)}return Uf=s,Uf}var Hf,Z1;function TL(){if(Z1)return Hf;Z1=1;var e=VN(),n=WN(),r=Ji();function s(o){return e(o,r,n)}return Hf=s,Hf}var Wf,J1;function RL(){if(J1)return Wf;J1=1;var e=Zi(),n=tr(),r=e(n,"DataView");return Wf=r,Wf}var Vf,e_;function jL(){if(e_)return Vf;e_=1;var e=Zi(),n=tr(),r=e(n,"Promise");return Vf=r,Vf}var Gf,t_;function YN(){if(t_)return Gf;t_=1;var e=Zi(),n=tr(),r=e(n,"Set");return Gf=r,Gf}var Yf,n_;function AL(){if(n_)return Yf;n_=1;var e=Zi(),n=tr(),r=e(n,"WeakMap");return Yf=r,Yf}var Kf,r_;function ro(){if(r_)return Kf;r_=1;var e=RL(),n=kv(),r=jL(),s=YN(),o=AL(),l=Qi(),u=qN(),c="[object Map]",p="[object Object]",h="[object Promise]",f="[object Set]",m="[object WeakMap]",y="[object DataView]",x=u(e),C=u(n),_=u(r),S=u(s),b=u(o),k=l;return(e&&k(new e(new ArrayBuffer(1)))!=y||n&&k(new n)!=c||r&&k(r.resolve())!=h||s&&k(new s)!=f||o&&k(new o)!=m)&&(k=function(N){var T=l(N),I=T==p?N.constructor:void 0,M=I?u(I):"";if(M)switch(M){case x:return y;case C:return c;case _:return h;case S:return f;case b:return m}return T}),Kf=k,Kf}var Xf,i_;function IL(){if(i_)return Xf;i_=1;var e=Object.prototype,n=e.hasOwnProperty;function r(s){var o=s.length,l=new s.constructor(o);return o&&typeof s[0]=="string"&&n.call(s,"index")&&(l.index=s.index,l.input=s.input),l}return Xf=r,Xf}var Qf,s_;function KN(){if(s_)return Qf;s_=1;var e=tr(),n=e.Uint8Array;return Qf=n,Qf}var Zf,o_;function Iv(){if(o_)return Zf;o_=1;var e=KN();function n(r){var s=new r.constructor(r.byteLength);return new e(s).set(new e(r)),s}return Zf=n,Zf}var Jf,a_;function ML(){if(a_)return Jf;a_=1;var e=Iv();function n(r,s){var o=s?e(r.buffer):r.buffer;return new r.constructor(o,r.byteOffset,r.byteLength)}return Jf=n,Jf}var eh,l_;function PL(){if(l_)return eh;l_=1;var e=/\w*$/;function n(r){var s=new r.constructor(r.source,e.exec(r));return s.lastIndex=r.lastIndex,s}return eh=n,eh}var th,u_;function OL(){if(u_)return th;u_=1;var e=to(),n=e?e.prototype:void 0,r=n?n.valueOf:void 0;function s(o){return r?Object(r.call(o)):{}}return th=s,th}var nh,c_;function XN(){if(c_)return nh;c_=1;var e=Iv();function n(r,s){var o=s?e(r.buffer):r.buffer;return new r.constructor(o,r.byteOffset,r.length)}return nh=n,nh}var rh,d_;function LL(){if(d_)return rh;d_=1;var e=Iv(),n=ML(),r=PL(),s=OL(),o=XN(),l="[object Boolean]",u="[object Date]",c="[object Map]",p="[object Number]",h="[object RegExp]",f="[object Set]",m="[object String]",y="[object Symbol]",x="[object ArrayBuffer]",C="[object DataView]",_="[object Float32Array]",S="[object Float64Array]",b="[object Int8Array]",k="[object Int16Array]",N="[object Int32Array]",T="[object Uint8Array]",I="[object Uint8ClampedArray]",M="[object Uint16Array]",O="[object Uint32Array]";function H(L,P,q){var W=L.constructor;switch(P){case x:return e(L);case l:case u:return new W(+L);case C:return n(L,q);case _:case S:case b:case k:case N:case T:case I:case M:case O:return o(L,q);case c:return new W;case p:case m:return new W(L);case h:return r(L);case f:return new W;case y:return s(L)}}return rh=H,rh}var ih,f_;function QN(){if(f_)return ih;f_=1;var e=jn(),n=Object.create,r=(function(){function s(){}return function(o){if(!e(o))return{};if(n)return n(o);s.prototype=o;var l=new s;return s.prototype=void 0,l}})();return ih=r,ih}var sh,h_;function ZN(){if(h_)return sh;h_=1;var e=QN(),n=pu(),r=hu();function s(o){return typeof o.constructor=="function"&&!r(o)?e(n(o)):{}}return sh=s,sh}var oh,p_;function qL(){if(p_)return oh;p_=1;var e=ro(),n=hr(),r="[object Map]";function s(o){return n(o)&&e(o)==r}return oh=s,oh}var ah,m_;function $L(){if(m_)return ah;m_=1;var e=qL(),n=fu(),r=Tv(),s=r&&r.isMap,o=s?n(s):e;return ah=o,ah}var lh,g_;function DL(){if(g_)return lh;g_=1;var e=ro(),n=hr(),r="[object Set]";function s(o){return n(o)&&e(o)==r}return lh=s,lh}var uh,v_;function FL(){if(v_)return uh;v_=1;var e=DL(),n=fu(),r=Tv(),s=r&&r.isSet,o=s?n(s):e;return uh=o,uh}var ch,y_;function JN(){if(y_)return ch;y_=1;var e=lu(),n=Nv(),r=cu(),s=SL(),o=EL(),l=zN(),u=BN(),c=NL(),p=CL(),h=GN(),f=TL(),m=ro(),y=IL(),x=LL(),C=ZN(),_=_t(),S=no(),b=$L(),k=jn(),N=FL(),T=hi(),I=Ji(),M=1,O=2,H=4,L="[object Arguments]",P="[object Array]",q="[object Boolean]",W="[object Date]",B="[object Error]",j="[object Function]",K="[object GeneratorFunction]",U="[object Map]",ee="[object Number]",J="[object Object]",F="[object RegExp]",Y="[object Set]",E="[object String]",$="[object Symbol]",se="[object WeakMap]",D="[object ArrayBuffer]",Q="[object DataView]",te="[object Float32Array]",ae="[object Float64Array]",ce="[object Int8Array]",me="[object Int16Array]",ge="[object Int32Array]",Pe="[object Uint8Array]",Se="[object Uint8ClampedArray]",Oe="[object Uint16Array]",Me="[object Uint32Array]",be={};be[L]=be[P]=be[D]=be[Q]=be[q]=be[W]=be[te]=be[ae]=be[ce]=be[me]=be[ge]=be[U]=be[ee]=be[J]=be[F]=be[Y]=be[E]=be[$]=be[Pe]=be[Se]=be[Oe]=be[Me]=!0,be[B]=be[j]=be[se]=!1;function De(ye,we,Ue,ut,ct,Ze){var Fe,Je=we&M,dt=we&O,Nt=we&H;if(Ue&&(Fe=ct?Ue(ye,ut,ct,Ze):Ue(ye)),Fe!==void 0)return Fe;if(!k(ye))return ye;var ot=_(ye);if(ot){if(Fe=y(ye),!Je)return u(ye,Fe)}else{var gt=m(ye),Ct=gt==j||gt==K;if(S(ye))return l(ye,Je);if(gt==J||gt==L||Ct&&!ct){if(Fe=dt||Ct?{}:C(ye),!Je)return dt?p(ye,o(Fe,ye)):c(ye,s(Fe,ye))}else{if(!be[gt])return ct?ye:{};Fe=x(ye,gt,Je)}}Ze||(Ze=new e);var Ft=Ze.get(ye);if(Ft)return Ft;Ze.set(ye,Fe),N(ye)?ye.forEach(function(ft){Fe.add(De(ft,we,Ue,ft,ye,Ze))}):b(ye)&&ye.forEach(function(ft,wt){Fe.set(wt,De(ft,we,Ue,wt,ye,Ze))});var Xe=Nt?dt?f:h:dt?I:T,vt=ot?void 0:Xe(ye);return n(vt||ye,function(ft,wt){vt&&(wt=ft,ft=ye[wt]),r(Fe,wt,De(ft,we,Ue,wt,ye,Ze))}),Fe}return ch=De,ch}var dh,w_;function zL(){if(w_)return dh;w_=1;var e=JN(),n=4;function r(s){return e(s,n)}return dh=r,dh}var fh,x_;function Mv(){if(x_)return fh;x_=1;function e(n){return function(){return n}}return fh=e,fh}var hh,__;function BL(){if(__)return hh;__=1;function e(n){return function(r,s,o){for(var l=-1,u=Object(r),c=o(r),p=c.length;p--;){var h=c[n?p:++l];if(s(u[h],h,u)===!1)break}return r}}return hh=e,hh}var ph,S_;function Pv(){if(S_)return ph;S_=1;var e=BL(),n=e();return ph=n,ph}var mh,b_;function Ov(){if(b_)return mh;b_=1;var e=Pv(),n=hi();function r(s,o){return s&&e(s,o,n)}return mh=r,mh}var gh,k_;function UL(){if(k_)return gh;k_=1;var e=Pr();function n(r,s){return function(o,l){if(o==null)return o;if(!e(o))return r(o,l);for(var u=o.length,c=s?u:-1,p=Object(o);(s?c--:++c<u)&&l(p[c],c,p)!==!1;);return o}}return gh=n,gh}var vh,E_;function mu(){if(E_)return vh;E_=1;var e=Ov(),n=UL(),r=n(e);return vh=r,vh}var yh,N_;function es(){if(N_)return yh;N_=1;function e(n){return n}return yh=e,yh}var wh,C_;function eC(){if(C_)return wh;C_=1;var e=es();function n(r){return typeof r=="function"?r:e}return wh=n,wh}var xh,T_;function tC(){if(T_)return xh;T_=1;var e=Nv(),n=mu(),r=eC(),s=_t();function o(l,u){var c=s(l)?e:n;return c(l,r(u))}return xh=o,xh}var _h,R_;function nC(){return R_||(R_=1,_h=tC()),_h}var Sh,j_;function HL(){if(j_)return Sh;j_=1;var e=mu();function n(r,s){var o=[];return e(r,function(l,u,c){s(l,u,c)&&o.push(l)}),o}return Sh=n,Sh}var bh,A_;function WL(){if(A_)return bh;A_=1;var e="__lodash_hash_undefined__";function n(r){return this.__data__.set(r,e),this}return bh=n,bh}var kh,I_;function VL(){if(I_)return kh;I_=1;function e(n){return this.__data__.has(n)}return kh=e,kh}var Eh,M_;function rC(){if(M_)return Eh;M_=1;var e=Ev(),n=WL(),r=VL();function s(o){var l=-1,u=o==null?0:o.length;for(this.__data__=new e;++l<u;)this.add(o[l])}return s.prototype.add=s.prototype.push=n,s.prototype.has=r,Eh=s,Eh}var Nh,P_;function GL(){if(P_)return Nh;P_=1;function e(n,r){for(var s=-1,o=n==null?0:n.length;++s<o;)if(r(n[s],s,n))return!0;return!1}return Nh=e,Nh}var Ch,O_;function iC(){if(O_)return Ch;O_=1;function e(n,r){return n.has(r)}return Ch=e,Ch}var Th,L_;function sC(){if(L_)return Th;L_=1;var e=rC(),n=GL(),r=iC(),s=1,o=2;function l(u,c,p,h,f,m){var y=p&s,x=u.length,C=c.length;if(x!=C&&!(y&&C>x))return!1;var _=m.get(u),S=m.get(c);if(_&&S)return _==c&&S==u;var b=-1,k=!0,N=p&o?new e:void 0;for(m.set(u,c),m.set(c,u);++b<x;){var T=u[b],I=c[b];if(h)var M=y?h(I,T,b,c,u,m):h(T,I,b,u,c,m);if(M!==void 0){if(M)continue;k=!1;break}if(N){if(!n(c,function(O,H){if(!r(N,H)&&(T===O||f(T,O,p,h,m)))return N.push(H)})){k=!1;break}}else if(!(T===I||f(T,I,p,h,m))){k=!1;break}}return m.delete(u),m.delete(c),k}return Th=l,Th}var Rh,q_;function YL(){if(q_)return Rh;q_=1;function e(n){var r=-1,s=Array(n.size);return n.forEach(function(o,l){s[++r]=[l,o]}),s}return Rh=e,Rh}var jh,$_;function Lv(){if($_)return jh;$_=1;function e(n){var r=-1,s=Array(n.size);return n.forEach(function(o){s[++r]=o}),s}return jh=e,jh}var Ah,D_;function KL(){if(D_)return Ah;D_=1;var e=to(),n=KN(),r=eo(),s=sC(),o=YL(),l=Lv(),u=1,c=2,p="[object Boolean]",h="[object Date]",f="[object Error]",m="[object Map]",y="[object Number]",x="[object RegExp]",C="[object Set]",_="[object String]",S="[object Symbol]",b="[object ArrayBuffer]",k="[object DataView]",N=e?e.prototype:void 0,T=N?N.valueOf:void 0;function I(M,O,H,L,P,q,W){switch(H){case k:if(M.byteLength!=O.byteLength||M.byteOffset!=O.byteOffset)return!1;M=M.buffer,O=O.buffer;case b:return!(M.byteLength!=O.byteLength||!q(new n(M),new n(O)));case p:case h:case y:return r(+M,+O);case f:return M.name==O.name&&M.message==O.message;case x:case _:return M==O+"";case m:var B=o;case C:var j=L&u;if(B||(B=l),M.size!=O.size&&!j)return!1;var K=W.get(M);if(K)return K==O;L|=c,W.set(M,O);var U=s(B(M),B(O),L,P,q,W);return W.delete(M),U;case S:if(T)return T.call(M)==T.call(O)}return!1}return Ah=I,Ah}var Ih,F_;function XL(){if(F_)return Ih;F_=1;var e=GN(),n=1,r=Object.prototype,s=r.hasOwnProperty;function o(l,u,c,p,h,f){var m=c&n,y=e(l),x=y.length,C=e(u),_=C.length;if(x!=_&&!m)return!1;for(var S=x;S--;){var b=y[S];if(!(m?b in u:s.call(u,b)))return!1}var k=f.get(l),N=f.get(u);if(k&&N)return k==u&&N==l;var T=!0;f.set(l,u),f.set(u,l);for(var I=m;++S<x;){b=y[S];var M=l[b],O=u[b];if(p)var H=m?p(O,M,b,u,l,f):p(M,O,b,l,u,f);if(!(H===void 0?M===O||h(M,O,c,p,f):H)){T=!1;break}I||(I=b=="constructor")}if(T&&!I){var L=l.constructor,P=u.constructor;L!=P&&"constructor"in l&&"constructor"in u&&!(typeof L=="function"&&L instanceof L&&typeof P=="function"&&P instanceof P)&&(T=!1)}return f.delete(l),f.delete(u),T}return Ih=o,Ih}var Mh,z_;function QL(){if(z_)return Mh;z_=1;var e=lu(),n=sC(),r=KL(),s=XL(),o=ro(),l=_t(),u=no(),c=ma(),p=1,h="[object Arguments]",f="[object Array]",m="[object Object]",y=Object.prototype,x=y.hasOwnProperty;function C(_,S,b,k,N,T){var I=l(_),M=l(S),O=I?f:o(_),H=M?f:o(S);O=O==h?m:O,H=H==h?m:H;var L=O==m,P=H==m,q=O==H;if(q&&u(_)){if(!u(S))return!1;I=!0,L=!1}if(q&&!L)return T||(T=new e),I||c(_)?n(_,S,b,k,N,T):r(_,S,O,b,k,N,T);if(!(b&p)){var W=L&&x.call(_,"__wrapped__"),B=P&&x.call(S,"__wrapped__");if(W||B){var j=W?_.value():_,K=B?S.value():S;return T||(T=new e),N(j,K,b,k,T)}}return q?(T||(T=new e),s(_,S,b,k,N,T)):!1}return Mh=C,Mh}var Ph,B_;function oC(){if(B_)return Ph;B_=1;var e=QL(),n=hr();function r(s,o,l,u,c){return s===o?!0:s==null||o==null||!n(s)&&!n(o)?s!==s&&o!==o:e(s,o,l,u,r,c)}return Ph=r,Ph}var Oh,U_;function ZL(){if(U_)return Oh;U_=1;var e=lu(),n=oC(),r=1,s=2;function o(l,u,c,p){var h=c.length,f=h,m=!p;if(l==null)return!f;for(l=Object(l);h--;){var y=c[h];if(m&&y[2]?y[1]!==l[y[0]]:!(y[0]in l))return!1}for(;++h<f;){y=c[h];var x=y[0],C=l[x],_=y[1];if(m&&y[2]){if(C===void 0&&!(x in l))return!1}else{var S=new e;if(p)var b=p(C,_,x,l,u,S);if(!(b===void 0?n(_,C,r|s,p,S):b))return!1}}return!0}return Oh=o,Oh}var Lh,H_;function aC(){if(H_)return Lh;H_=1;var e=jn();function n(r){return r===r&&!e(r)}return Lh=n,Lh}var qh,W_;function JL(){if(W_)return qh;W_=1;var e=aC(),n=hi();function r(s){for(var o=n(s),l=o.length;l--;){var u=o[l],c=s[u];o[l]=[u,c,e(c)]}return o}return qh=r,qh}var $h,V_;function lC(){if(V_)return $h;V_=1;function e(n,r){return function(s){return s==null?!1:s[n]===r&&(r!==void 0||n in Object(s))}}return $h=e,$h}var Dh,G_;function eq(){if(G_)return Dh;G_=1;var e=ZL(),n=JL(),r=lC();function s(o){var l=n(o);return l.length==1&&l[0][2]?r(l[0][0],l[0][1]):function(u){return u===o||e(u,o,l)}}return Dh=s,Dh}var Fh,Y_;function io(){if(Y_)return Fh;Y_=1;var e=Qi(),n=hr(),r="[object Symbol]";function s(o){return typeof o=="symbol"||n(o)&&e(o)==r}return Fh=s,Fh}var zh,K_;function qv(){if(K_)return zh;K_=1;var e=_t(),n=io(),r=/\.|\[(?:[^[\]]*|(["'])(?:(?!\1)[^\\]|\\.)*?\1)\]/,s=/^\w*$/;function o(l,u){if(e(l))return!1;var c=typeof l;return c=="number"||c=="symbol"||c=="boolean"||l==null||n(l)?!0:s.test(l)||!r.test(l)||u!=null&&l in Object(u)}return zh=o,zh}var Bh,X_;function tq(){if(X_)return Bh;X_=1;var e=Ev(),n="Expected a function";function r(s,o){if(typeof s!="function"||o!=null&&typeof o!="function")throw new TypeError(n);var l=function(){var u=arguments,c=o?o.apply(this,u):u[0],p=l.cache;if(p.has(c))return p.get(c);var h=s.apply(this,u);return l.cache=p.set(c,h)||p,h};return l.cache=new(r.Cache||e),l}return r.Cache=e,Bh=r,Bh}var Uh,Q_;function nq(){if(Q_)return Uh;Q_=1;var e=tq(),n=500;function r(s){var o=e(s,function(u){return l.size===n&&l.clear(),u}),l=o.cache;return o}return Uh=r,Uh}var Hh,Z_;function rq(){if(Z_)return Hh;Z_=1;var e=nq(),n=/[^.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|$))/g,r=/\\(\\)?/g,s=e(function(o){var l=[];return o.charCodeAt(0)===46&&l.push(""),o.replace(n,function(u,c,p,h){l.push(p?h.replace(r,"$1"):c||u)}),l});return Hh=s,Hh}var Wh,J_;function gu(){if(J_)return Wh;J_=1;function e(n,r){for(var s=-1,o=n==null?0:n.length,l=Array(o);++s<o;)l[s]=r(n[s],s,n);return l}return Wh=e,Wh}var Vh,eS;function iq(){if(eS)return Vh;eS=1;var e=to(),n=gu(),r=_t(),s=io(),o=e?e.prototype:void 0,l=o?o.toString:void 0;function u(c){if(typeof c=="string")return c;if(r(c))return n(c,u)+"";if(s(c))return l?l.call(c):"";var p=c+"";return p=="0"&&1/c==-1/0?"-0":p}return Vh=u,Vh}var Gh,tS;function uC(){if(tS)return Gh;tS=1;var e=iq();function n(r){return r==null?"":e(r)}return Gh=n,Gh}var Yh,nS;function vu(){if(nS)return Yh;nS=1;var e=_t(),n=qv(),r=rq(),s=uC();function o(l,u){return e(l)?l:n(l,u)?[l]:r(s(l))}return Yh=o,Yh}var Kh,rS;function ga(){if(rS)return Kh;rS=1;var e=io();function n(r){if(typeof r=="string"||e(r))return r;var s=r+"";return s=="0"&&1/r==-1/0?"-0":s}return Kh=n,Kh}var Xh,iS;function yu(){if(iS)return Xh;iS=1;var e=vu(),n=ga();function r(s,o){o=e(o,s);for(var l=0,u=o.length;s!=null&&l<u;)s=s[n(o[l++])];return l&&l==u?s:void 0}return Xh=r,Xh}var Qh,sS;function sq(){if(sS)return Qh;sS=1;var e=yu();function n(r,s,o){var l=r==null?void 0:e(r,s);return l===void 0?o:l}return Qh=n,Qh}var Zh,oS;function oq(){if(oS)return Zh;oS=1;function e(n,r){return n!=null&&r in Object(n)}return Zh=e,Zh}var Jh,aS;function cC(){if(aS)return Jh;aS=1;var e=vu(),n=pa(),r=_t(),s=du(),o=Cv(),l=ga();function u(c,p,h){p=e(p,c);for(var f=-1,m=p.length,y=!1;++f<m;){var x=l(p[f]);if(!(y=c!=null&&h(c,x)))break;c=c[x]}return y||++f!=m?y:(m=c==null?0:c.length,!!m&&o(m)&&s(x,m)&&(r(c)||n(c)))}return Jh=u,Jh}var ep,lS;function dC(){if(lS)return ep;lS=1;var e=oq(),n=cC();function r(s,o){return s!=null&&n(s,o,e)}return ep=r,ep}var tp,uS;function aq(){if(uS)return tp;uS=1;var e=oC(),n=sq(),r=dC(),s=qv(),o=aC(),l=lC(),u=ga(),c=1,p=2;function h(f,m){return s(f)&&o(m)?l(u(f),m):function(y){var x=n(y,f);return x===void 0&&x===m?r(y,f):e(m,x,c|p)}}return tp=h,tp}var np,cS;function fC(){if(cS)return np;cS=1;function e(n){return function(r){return r==null?void 0:r[n]}}return np=e,np}var rp,dS;function lq(){if(dS)return rp;dS=1;var e=yu();function n(r){return function(s){return e(s,r)}}return rp=n,rp}var ip,fS;function uq(){if(fS)return ip;fS=1;var e=fC(),n=lq(),r=qv(),s=ga();function o(l){return r(l)?e(s(l)):n(l)}return ip=o,ip}var sp,hS;function Or(){if(hS)return sp;hS=1;var e=eq(),n=aq(),r=es(),s=_t(),o=uq();function l(u){return typeof u=="function"?u:u==null?r:typeof u=="object"?s(u)?n(u[0],u[1]):e(u):o(u)}return sp=l,sp}var op,pS;function hC(){if(pS)return op;pS=1;var e=UN(),n=HL(),r=Or(),s=_t();function o(l,u){var c=s(l)?e:n;return c(l,r(u,3))}return op=o,op}var ap,mS;function cq(){if(mS)return ap;mS=1;var e=Object.prototype,n=e.hasOwnProperty;function r(s,o){return s!=null&&n.call(s,o)}return ap=r,ap}var lp,gS;function pC(){if(gS)return lp;gS=1;var e=cq(),n=cC();function r(s,o){return s!=null&&n(s,o,e)}return lp=r,lp}var up,vS;function dq(){if(vS)return up;vS=1;var e=Rv(),n=ro(),r=pa(),s=_t(),o=Pr(),l=no(),u=hu(),c=ma(),p="[object Map]",h="[object Set]",f=Object.prototype,m=f.hasOwnProperty;function y(x){if(x==null)return!0;if(o(x)&&(s(x)||typeof x=="string"||typeof x.splice=="function"||l(x)||c(x)||r(x)))return!x.length;var C=n(x);if(C==p||C==h)return!x.size;if(u(x))return!e(x).length;for(var _ in x)if(m.call(x,_))return!1;return!0}return up=y,up}var cp,yS;function mC(){if(yS)return cp;yS=1;function e(n){return n===void 0}return cp=e,cp}var dp,wS;function gC(){if(wS)return dp;wS=1;var e=mu(),n=Pr();function r(s,o){var l=-1,u=n(s)?Array(s.length):[];return e(s,function(c,p,h){u[++l]=o(c,p,h)}),u}return dp=r,dp}var fp,xS;function vC(){if(xS)return fp;xS=1;var e=gu(),n=Or(),r=gC(),s=_t();function o(l,u){var c=s(l)?e:r;return c(l,n(u,3))}return fp=o,fp}var hp,_S;function fq(){if(_S)return hp;_S=1;function e(n,r,s,o){var l=-1,u=n==null?0:n.length;for(o&&u&&(s=n[++l]);++l<u;)s=r(s,n[l],l,n);return s}return hp=e,hp}var pp,SS;function hq(){if(SS)return pp;SS=1;function e(n,r,s,o,l){return l(n,function(u,c,p){s=o?(o=!1,u):r(s,u,c,p)}),s}return pp=e,pp}var mp,bS;function yC(){if(bS)return mp;bS=1;var e=fq(),n=mu(),r=Or(),s=hq(),o=_t();function l(u,c,p){var h=o(u)?e:s,f=arguments.length<3;return h(u,r(c,4),p,f,n)}return mp=l,mp}var gp,kS;function pq(){if(kS)return gp;kS=1;var e=Qi(),n=_t(),r=hr(),s="[object String]";function o(l){return typeof l=="string"||!n(l)&&r(l)&&e(l)==s}return gp=o,gp}var vp,ES;function mq(){if(ES)return vp;ES=1;var e=fC(),n=e("length");return vp=n,vp}var yp,NS;function gq(){if(NS)return yp;NS=1;var e="\\ud800-\\udfff",n="\\u0300-\\u036f",r="\\ufe20-\\ufe2f",s="\\u20d0-\\u20ff",o=n+r+s,l="\\ufe0e\\ufe0f",u="\\u200d",c=RegExp("["+u+e+o+l+"]");function p(h){return c.test(h)}return yp=p,yp}var wp,CS;function vq(){if(CS)return wp;CS=1;var e="\\ud800-\\udfff",n="\\u0300-\\u036f",r="\\ufe20-\\ufe2f",s="\\u20d0-\\u20ff",o=n+r+s,l="\\ufe0e\\ufe0f",u="["+e+"]",c="["+o+"]",p="\\ud83c[\\udffb-\\udfff]",h="(?:"+c+"|"+p+")",f="[^"+e+"]",m="(?:\\ud83c[\\udde6-\\uddff]){2}",y="[\\ud800-\\udbff][\\udc00-\\udfff]",x="\\u200d",C=h+"?",_="["+l+"]?",S="(?:"+x+"(?:"+[f,m,y].join("|")+")"+_+C+")*",b=_+C+S,k="(?:"+[f+c+"?",c,m,y,u].join("|")+")",N=RegExp(p+"(?="+p+")|"+k+b,"g");function T(I){for(var M=N.lastIndex=0;N.test(I);)++M;return M}return wp=T,wp}var xp,TS;function yq(){if(TS)return xp;TS=1;var e=mq(),n=gq(),r=vq();function s(o){return n(o)?r(o):e(o)}return xp=s,xp}var _p,RS;function wq(){if(RS)return _p;RS=1;var e=Rv(),n=ro(),r=Pr(),s=pq(),o=yq(),l="[object Map]",u="[object Set]";function c(p){if(p==null)return 0;if(r(p))return s(p)?o(p):p.length;var h=n(p);return h==l||h==u?p.size:e(p).length}return _p=c,_p}var Sp,jS;function xq(){if(jS)return Sp;jS=1;var e=Nv(),n=QN(),r=Ov(),s=Or(),o=pu(),l=_t(),u=no(),c=fa(),p=jn(),h=ma();function f(m,y,x){var C=l(m),_=C||u(m)||h(m);if(y=s(y,4),x==null){var S=m&&m.constructor;_?x=C?new S:[]:p(m)?x=c(S)?n(o(m)):{}:x={}}return(_?e:r)(m,function(b,k,N){return y(x,b,k,N)}),x}return Sp=f,Sp}var bp,AS;function _q(){if(AS)return bp;AS=1;var e=to(),n=pa(),r=_t(),s=e?e.isConcatSpreadable:void 0;function o(l){return r(l)||n(l)||!!(s&&l&&l[s])}return bp=o,bp}var kp,IS;function $v(){if(IS)return kp;IS=1;var e=Av(),n=_q();function r(s,o,l,u,c){var p=-1,h=s.length;for(l||(l=n),c||(c=[]);++p<h;){var f=s[p];o>0&&l(f)?o>1?r(f,o-1,l,u,c):e(c,f):u||(c[c.length]=f)}return c}return kp=r,kp}var Ep,MS;function Sq(){if(MS)return Ep;MS=1;function e(n,r,s){switch(s.length){case 0:return n.call(r);case 1:return n.call(r,s[0]);case 2:return n.call(r,s[0],s[1]);case 3:return n.call(r,s[0],s[1],s[2])}return n.apply(r,s)}return Ep=e,Ep}var Np,PS;function wC(){if(PS)return Np;PS=1;var e=Sq(),n=Math.max;function r(s,o,l){return o=n(o===void 0?s.length-1:o,0),function(){for(var u=arguments,c=-1,p=n(u.length-o,0),h=Array(p);++c<p;)h[c]=u[o+c];c=-1;for(var f=Array(o+1);++c<o;)f[c]=u[c];return f[o]=l(h),e(s,this,f)}}return Np=r,Np}var Cp,OS;function bq(){if(OS)return Cp;OS=1;var e=Mv(),n=$N(),r=es(),s=n?function(o,l){return n(o,"toString",{configurable:!0,enumerable:!1,value:e(l),writable:!0})}:r;return Cp=s,Cp}var Tp,LS;function kq(){if(LS)return Tp;LS=1;var e=800,n=16,r=Date.now;function s(o){var l=0,u=0;return function(){var c=r(),p=n-(c-u);if(u=c,p>0){if(++l>=e)return arguments[0]}else l=0;return o.apply(void 0,arguments)}}return Tp=s,Tp}var Rp,qS;function xC(){if(qS)return Rp;qS=1;var e=bq(),n=kq(),r=n(e);return Rp=r,Rp}var jp,$S;function wu(){if($S)return jp;$S=1;var e=es(),n=wC(),r=xC();function s(o,l){return r(n(o,l,e),o+"")}return jp=s,jp}var Ap,DS;function _C(){if(DS)return Ap;DS=1;function e(n,r,s,o){for(var l=n.length,u=s+(o?1:-1);o?u--:++u<l;)if(r(n[u],u,n))return u;return-1}return Ap=e,Ap}var Ip,FS;function Eq(){if(FS)return Ip;FS=1;function e(n){return n!==n}return Ip=e,Ip}var Mp,zS;function Nq(){if(zS)return Mp;zS=1;function e(n,r,s){for(var o=s-1,l=n.length;++o<l;)if(n[o]===r)return o;return-1}return Mp=e,Mp}var Pp,BS;function Cq(){if(BS)return Pp;BS=1;var e=_C(),n=Eq(),r=Nq();function s(o,l,u){return l===l?r(o,l,u):e(o,n,u)}return Pp=s,Pp}var Op,US;function Tq(){if(US)return Op;US=1;var e=Cq();function n(r,s){var o=r==null?0:r.length;return!!o&&e(r,s,0)>-1}return Op=n,Op}var Lp,HS;function Rq(){if(HS)return Lp;HS=1;function e(n,r,s){for(var o=-1,l=n==null?0:n.length;++o<l;)if(s(r,n[o]))return!0;return!1}return Lp=e,Lp}var qp,WS;function jq(){if(WS)return qp;WS=1;function e(){}return qp=e,qp}var $p,VS;function Aq(){if(VS)return $p;VS=1;var e=YN(),n=jq(),r=Lv(),s=1/0,o=e&&1/r(new e([,-0]))[1]==s?function(l){return new e(l)}:n;return $p=o,$p}var Dp,GS;function Iq(){if(GS)return Dp;GS=1;var e=rC(),n=Tq(),r=Rq(),s=iC(),o=Aq(),l=Lv(),u=200;function c(p,h,f){var m=-1,y=n,x=p.length,C=!0,_=[],S=_;if(f)C=!1,y=r;else if(x>=u){var b=h?null:o(p);if(b)return l(b);C=!1,y=s,S=new e}else S=h?[]:_;e:for(;++m<x;){var k=p[m],N=h?h(k):k;if(k=f||k!==0?k:0,C&&N===N){for(var T=S.length;T--;)if(S[T]===N)continue e;h&&S.push(N),_.push(k)}else y(S,N,f)||(S!==_&&S.push(N),_.push(k))}return _}return Dp=c,Dp}var Fp,YS;function SC(){if(YS)return Fp;YS=1;var e=Pr(),n=hr();function r(s){return n(s)&&e(s)}return Fp=r,Fp}var zp,KS;function Mq(){if(KS)return zp;KS=1;var e=$v(),n=wu(),r=Iq(),s=SC(),o=n(function(l){return r(e(l,1,s,!0))});return zp=o,zp}var Bp,XS;function Pq(){if(XS)return Bp;XS=1;var e=gu();function n(r,s){return e(s,function(o){return r[o]})}return Bp=n,Bp}var Up,QS;function bC(){if(QS)return Up;QS=1;var e=Pq(),n=hi();function r(s){return s==null?[]:e(s,n(s))}return Up=r,Up}var Hp,ZS;function An(){if(ZS)return Hp;ZS=1;var e;if(typeof bv=="function")try{e={clone:zL(),constant:Mv(),each:nC(),filter:hC(),has:pC(),isArray:_t(),isEmpty:dq(),isFunction:fa(),isUndefined:mC(),keys:hi(),map:vC(),reduce:yC(),size:wq(),transform:xq(),union:Mq(),values:bC()}}catch{}return e||(e=window._),Hp=e,Hp}var Wp,JS;function Dv(){if(JS)return Wp;JS=1;var e=An();Wp=o;var n="\0",r="\0",s="";function o(f){this._isDirected=e.has(f,"directed")?f.directed:!0,this._isMultigraph=e.has(f,"multigraph")?f.multigraph:!1,this._isCompound=e.has(f,"compound")?f.compound:!1,this._label=void 0,this._defaultNodeLabelFn=e.constant(void 0),this._defaultEdgeLabelFn=e.constant(void 0),this._nodes={},this._isCompound&&(this._parent={},this._children={},this._children[r]={}),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(f){return this._label=f,this},o.prototype.graph=function(){return this._label},o.prototype.setDefaultNodeLabel=function(f){return e.isFunction(f)||(f=e.constant(f)),this._defaultNodeLabelFn=f,this},o.prototype.nodeCount=function(){return this._nodeCount},o.prototype.nodes=function(){return e.keys(this._nodes)},o.prototype.sources=function(){var f=this;return e.filter(this.nodes(),function(m){return e.isEmpty(f._in[m])})},o.prototype.sinks=function(){var f=this;return e.filter(this.nodes(),function(m){return e.isEmpty(f._out[m])})},o.prototype.setNodes=function(f,m){var y=arguments,x=this;return e.each(f,function(C){y.length>1?x.setNode(C,m):x.setNode(C)}),this},o.prototype.setNode=function(f,m){return e.has(this._nodes,f)?(arguments.length>1&&(this._nodes[f]=m),this):(this._nodes[f]=arguments.length>1?m:this._defaultNodeLabelFn(f),this._isCompound&&(this._parent[f]=r,this._children[f]={},this._children[r][f]=!0),this._in[f]={},this._preds[f]={},this._out[f]={},this._sucs[f]={},++this._nodeCount,this)},o.prototype.node=function(f){return this._nodes[f]},o.prototype.hasNode=function(f){return e.has(this._nodes,f)},o.prototype.removeNode=function(f){var m=this;if(e.has(this._nodes,f)){var y=function(x){m.removeEdge(m._edgeObjs[x])};delete this._nodes[f],this._isCompound&&(this._removeFromParentsChildList(f),delete this._parent[f],e.each(this.children(f),function(x){m.setParent(x)}),delete this._children[f]),e.each(e.keys(this._in[f]),y),delete this._in[f],delete this._preds[f],e.each(e.keys(this._out[f]),y),delete this._out[f],delete this._sucs[f],--this._nodeCount}return this},o.prototype.setParent=function(f,m){if(!this._isCompound)throw new Error("Cannot set parent in a non-compound graph");if(e.isUndefined(m))m=r;else{m+="";for(var y=m;!e.isUndefined(y);y=this.parent(y))if(y===f)throw new Error("Setting "+m+" as parent of "+f+" would create a cycle");this.setNode(m)}return this.setNode(f),this._removeFromParentsChildList(f),this._parent[f]=m,this._children[m][f]=!0,this},o.prototype._removeFromParentsChildList=function(f){delete this._children[this._parent[f]][f]},o.prototype.parent=function(f){if(this._isCompound){var m=this._parent[f];if(m!==r)return m}},o.prototype.children=function(f){if(e.isUndefined(f)&&(f=r),this._isCompound){var m=this._children[f];if(m)return e.keys(m)}else{if(f===r)return this.nodes();if(this.hasNode(f))return[]}},o.prototype.predecessors=function(f){var m=this._preds[f];if(m)return e.keys(m)},o.prototype.successors=function(f){var m=this._sucs[f];if(m)return e.keys(m)},o.prototype.neighbors=function(f){var m=this.predecessors(f);if(m)return e.union(m,this.successors(f))},o.prototype.isLeaf=function(f){var m;return this.isDirected()?m=this.successors(f):m=this.neighbors(f),m.length===0},o.prototype.filterNodes=function(f){var m=new this.constructor({directed:this._isDirected,multigraph:this._isMultigraph,compound:this._isCompound});m.setGraph(this.graph());var y=this;e.each(this._nodes,function(_,S){f(S)&&m.setNode(S,_)}),e.each(this._edgeObjs,function(_){m.hasNode(_.v)&&m.hasNode(_.w)&&m.setEdge(_,y.edge(_))});var x={};function C(_){var S=y.parent(_);return S===void 0||m.hasNode(S)?(x[_]=S,S):S in x?x[S]:C(S)}return this._isCompound&&e.each(m.nodes(),function(_){m.setParent(_,C(_))}),m},o.prototype.setDefaultEdgeLabel=function(f){return e.isFunction(f)||(f=e.constant(f)),this._defaultEdgeLabelFn=f,this},o.prototype.edgeCount=function(){return this._edgeCount},o.prototype.edges=function(){return e.values(this._edgeObjs)},o.prototype.setPath=function(f,m){var y=this,x=arguments;return e.reduce(f,function(C,_){return x.length>1?y.setEdge(C,_,m):y.setEdge(C,_),_}),this},o.prototype.setEdge=function(){var f,m,y,x,C=!1,_=arguments[0];typeof _=="object"&&_!==null&&"v"in _?(f=_.v,m=_.w,y=_.name,arguments.length===2&&(x=arguments[1],C=!0)):(f=_,m=arguments[1],y=arguments[3],arguments.length>2&&(x=arguments[2],C=!0)),f=""+f,m=""+m,e.isUndefined(y)||(y=""+y);var S=c(this._isDirected,f,m,y);if(e.has(this._edgeLabels,S))return C&&(this._edgeLabels[S]=x),this;if(!e.isUndefined(y)&&!this._isMultigraph)throw new Error("Cannot set a named edge when isMultigraph = false");this.setNode(f),this.setNode(m),this._edgeLabels[S]=C?x:this._defaultEdgeLabelFn(f,m,y);var b=p(this._isDirected,f,m,y);return f=b.v,m=b.w,Object.freeze(b),this._edgeObjs[S]=b,l(this._preds[m],f),l(this._sucs[f],m),this._in[m][S]=b,this._out[f][S]=b,this._edgeCount++,this},o.prototype.edge=function(f,m,y){var x=arguments.length===1?h(this._isDirected,arguments[0]):c(this._isDirected,f,m,y);return this._edgeLabels[x]},o.prototype.hasEdge=function(f,m,y){var x=arguments.length===1?h(this._isDirected,arguments[0]):c(this._isDirected,f,m,y);return e.has(this._edgeLabels,x)},o.prototype.removeEdge=function(f,m,y){var x=arguments.length===1?h(this._isDirected,arguments[0]):c(this._isDirected,f,m,y),C=this._edgeObjs[x];return C&&(f=C.v,m=C.w,delete this._edgeLabels[x],delete this._edgeObjs[x],u(this._preds[m],f),u(this._sucs[f],m),delete this._in[m][x],delete this._out[f][x],this._edgeCount--),this},o.prototype.inEdges=function(f,m){var y=this._in[f];if(y){var x=e.values(y);return m?e.filter(x,function(C){return C.v===m}):x}},o.prototype.outEdges=function(f,m){var y=this._out[f];if(y){var x=e.values(y);return m?e.filter(x,function(C){return C.w===m}):x}},o.prototype.nodeEdges=function(f,m){var y=this.inEdges(f,m);if(y)return y.concat(this.outEdges(f,m))};function l(f,m){f[m]?f[m]++:f[m]=1}function u(f,m){--f[m]||delete f[m]}function c(f,m,y,x){var C=""+m,_=""+y;if(!f&&C>_){var S=C;C=_,_=S}return C+s+_+s+(e.isUndefined(x)?n:x)}function p(f,m,y,x){var C=""+m,_=""+y;if(!f&&C>_){var S=C;C=_,_=S}var b={v:C,w:_};return x&&(b.name=x),b}function h(f,m){return c(f,m.v,m.w,m.name)}return Wp}var Vp,eb;function Oq(){return eb||(eb=1,Vp="2.1.8"),Vp}var Gp,tb;function Lq(){return tb||(tb=1,Gp={Graph:Dv(),version:Oq()}),Gp}var Yp,nb;function qq(){if(nb)return Yp;nb=1;var e=An(),n=Dv();Yp={write:r,read:l};function r(u){var c={options:{directed:u.isDirected(),multigraph:u.isMultigraph(),compound:u.isCompound()},nodes:s(u),edges:o(u)};return e.isUndefined(u.graph())||(c.value=e.clone(u.graph())),c}function s(u){return e.map(u.nodes(),function(c){var p=u.node(c),h=u.parent(c),f={v:c};return e.isUndefined(p)||(f.value=p),e.isUndefined(h)||(f.parent=h),f})}function o(u){return e.map(u.edges(),function(c){var p=u.edge(c),h={v:c.v,w:c.w};return e.isUndefined(c.name)||(h.name=c.name),e.isUndefined(p)||(h.value=p),h})}function l(u){var c=new n(u.options).setGraph(u.value);return e.each(u.nodes,function(p){c.setNode(p.v,p.value),p.parent&&c.setParent(p.v,p.parent)}),e.each(u.edges,function(p){c.setEdge({v:p.v,w:p.w,name:p.name},p.value)}),c}return Yp}var Kp,rb;function $q(){if(rb)return Kp;rb=1;var e=An();Kp=n;function n(r){var s={},o=[],l;function u(c){e.has(s,c)||(s[c]=!0,l.push(c),e.each(r.successors(c),u),e.each(r.predecessors(c),u))}return e.each(r.nodes(),function(c){l=[],u(c),l.length&&o.push(l)}),o}return Kp}var Xp,ib;function kC(){if(ib)return Xp;ib=1;var e=An();Xp=n;function n(){this._arr=[],this._keyIndices={}}return n.prototype.size=function(){return this._arr.length},n.prototype.keys=function(){return this._arr.map(function(r){return r.key})},n.prototype.has=function(r){return e.has(this._keyIndices,r)},n.prototype.priority=function(r){var s=this._keyIndices[r];if(s!==void 0)return this._arr[s].priority},n.prototype.min=function(){if(this.size()===0)throw new Error("Queue underflow");return this._arr[0].key},n.prototype.add=function(r,s){var o=this._keyIndices;if(r=String(r),!e.has(o,r)){var l=this._arr,u=l.length;return o[r]=u,l.push({key:r,priority:s}),this._decrease(u),!0}return!1},n.prototype.removeMin=function(){this._swap(0,this._arr.length-1);var r=this._arr.pop();return delete this._keyIndices[r.key],this._heapify(0),r.key},n.prototype.decrease=function(r,s){var o=this._keyIndices[r];if(s>this._arr[o].priority)throw new Error("New priority is greater than current priority. Key: "+r+" Old: "+this._arr[o].priority+" New: "+s);this._arr[o].priority=s,this._decrease(o)},n.prototype._heapify=function(r){var s=this._arr,o=2*r,l=o+1,u=r;o<s.length&&(u=s[o].priority<s[u].priority?o:u,l<s.length&&(u=s[l].priority<s[u].priority?l:u),u!==r&&(this._swap(r,u),this._heapify(u)))},n.prototype._decrease=function(r){for(var s=this._arr,o=s[r].priority,l;r!==0&&(l=r>>1,!(s[l].priority<o));)this._swap(r,l),r=l},n.prototype._swap=function(r,s){var o=this._arr,l=this._keyIndices,u=o[r],c=o[s];o[r]=c,o[s]=u,l[c.key]=r,l[u.key]=s},Xp}var Qp,sb;function EC(){if(sb)return Qp;sb=1;var e=An(),n=kC();Qp=s;var r=e.constant(1);function s(l,u,c,p){return o(l,String(u),c||r,p||function(h){return l.outEdges(h)})}function o(l,u,c,p){var h={},f=new n,m,y,x=function(C){var _=C.v!==m?C.v:C.w,S=h[_],b=c(C),k=y.distance+b;if(b<0)throw new Error("dijkstra does not allow negative edge weights. Bad edge: "+C+" Weight: "+b);k<S.distance&&(S.distance=k,S.predecessor=m,f.decrease(_,k))};for(l.nodes().forEach(function(C){var _=C===u?0:Number.POSITIVE_INFINITY;h[C]={distance:_},f.add(C,_)});f.size()>0&&(m=f.removeMin(),y=h[m],y.distance!==Number.POSITIVE_INFINITY);)p(m).forEach(x);return h}return Qp}var Zp,ob;function Dq(){if(ob)return Zp;ob=1;var e=EC(),n=An();Zp=r;function r(s,o,l){return n.transform(s.nodes(),function(u,c){u[c]=e(s,c,o,l)},{})}return Zp}var Jp,ab;function NC(){if(ab)return Jp;ab=1;var e=An();Jp=n;function n(r){var s=0,o=[],l={},u=[];function c(p){var h=l[p]={onStack:!0,lowlink:s,index:s++};if(o.push(p),r.successors(p).forEach(function(y){e.has(l,y)?l[y].onStack&&(h.lowlink=Math.min(h.lowlink,l[y].index)):(c(y),h.lowlink=Math.min(h.lowlink,l[y].lowlink))}),h.lowlink===h.index){var f=[],m;do m=o.pop(),l[m].onStack=!1,f.push(m);while(p!==m);u.push(f)}}return r.nodes().forEach(function(p){e.has(l,p)||c(p)}),u}return Jp}var em,lb;function Fq(){if(lb)return em;lb=1;var e=An(),n=NC();em=r;function r(s){return e.filter(n(s),function(o){return o.length>1||o.length===1&&s.hasEdge(o[0],o[0])})}return em}var tm,ub;function zq(){if(ub)return tm;ub=1;var e=An();tm=r;var n=e.constant(1);function r(o,l,u){return s(o,l||n,u||function(c){return o.outEdges(c)})}function s(o,l,u){var c={},p=o.nodes();return p.forEach(function(h){c[h]={},c[h][h]={distance:0},p.forEach(function(f){h!==f&&(c[h][f]={distance:Number.POSITIVE_INFINITY})}),u(h).forEach(function(f){var m=f.v===h?f.w:f.v,y=l(f);c[h][m]={distance:y,predecessor:h}})}),p.forEach(function(h){var f=c[h];p.forEach(function(m){var y=c[m];p.forEach(function(x){var C=y[h],_=f[x],S=y[x],b=C.distance+_.distance;b<S.distance&&(S.distance=b,S.predecessor=_.predecessor)})})}),c}return tm}var nm,cb;function CC(){if(cb)return nm;cb=1;var e=An();nm=n,n.CycleException=r;function n(s){var o={},l={},u=[];function c(p){if(e.has(l,p))throw new r;e.has(o,p)||(l[p]=!0,o[p]=!0,e.each(s.predecessors(p),c),delete l[p],u.push(p))}if(e.each(s.sinks(),c),e.size(o)!==s.nodeCount())throw new r;return u}function r(){}return r.prototype=new Error,nm}var rm,db;function Bq(){if(db)return rm;db=1;var e=CC();rm=n;function n(r){try{e(r)}catch(s){if(s instanceof e.CycleException)return!1;throw s}return!0}return rm}var im,fb;function TC(){if(fb)return im;fb=1;var e=An();im=n;function n(s,o,l){e.isArray(o)||(o=[o]);var u=(s.isDirected()?s.successors:s.neighbors).bind(s),c=[],p={};return e.each(o,function(h){if(!s.hasNode(h))throw new Error("Graph does not have node: "+h);r(s,h,l==="post",p,u,c)}),c}function r(s,o,l,u,c,p){e.has(u,o)||(u[o]=!0,l||p.push(o),e.each(c(o),function(h){r(s,h,l,u,c,p)}),l&&p.push(o))}return im}var sm,hb;function Uq(){if(hb)return sm;hb=1;var e=TC();sm=n;function n(r,s){return e(r,s,"post")}return sm}var om,pb;function Hq(){if(pb)return om;pb=1;var e=TC();om=n;function n(r,s){return e(r,s,"pre")}return om}var am,mb;function Wq(){if(mb)return am;mb=1;var e=An(),n=Dv(),r=kC();am=s;function s(o,l){var u=new n,c={},p=new r,h;function f(y){var x=y.v===h?y.w:y.v,C=p.priority(x);if(C!==void 0){var _=l(y);_<C&&(c[x]=h,p.decrease(x,_))}}if(o.nodeCount()===0)return u;e.each(o.nodes(),function(y){p.add(y,Number.POSITIVE_INFINITY),u.setNode(y)}),p.decrease(o.nodes()[0],0);for(var m=!1;p.size()>0;){if(h=p.removeMin(),e.has(c,h))u.setEdge(h,c[h]);else{if(m)throw new Error("Input graph is not connected: "+o);m=!0}o.nodeEdges(h).forEach(f)}return u}return am}var lm,gb;function Vq(){return gb||(gb=1,lm={components:$q(),dijkstra:EC(),dijkstraAll:Dq(),findCycles:Fq(),floydWarshall:zq(),isAcyclic:Bq(),postorder:Uq(),preorder:Hq(),prim:Wq(),tarjan:NC(),topsort:CC()}),lm}var um,vb;function Gq(){if(vb)return um;vb=1;var e=Lq();return um={Graph:e.Graph,json:qq(),alg:Vq(),version:e.version},um}var cm,yb;function Jn(){if(yb)return cm;yb=1;var e;if(typeof bv=="function")try{e=Gq()}catch{}return e||(e=window.graphlib),cm=e,cm}var dm,wb;function Yq(){if(wb)return dm;wb=1;var e=JN(),n=1,r=4;function s(o){return e(o,n|r)}return dm=s,dm}var fm,xb;function xu(){if(xb)return fm;xb=1;var e=eo(),n=Pr(),r=du(),s=jn();function o(l,u,c){if(!s(c))return!1;var p=typeof u;return(p=="number"?n(c)&&r(u,c.length):p=="string"&&u in c)?e(c[u],l):!1}return fm=o,fm}var hm,_b;function Kq(){if(_b)return hm;_b=1;var e=wu(),n=eo(),r=xu(),s=Ji(),o=Object.prototype,l=o.hasOwnProperty,u=e(function(c,p){c=Object(c);var h=-1,f=p.length,m=f>2?p[2]:void 0;for(m&&r(p[0],p[1],m)&&(f=1);++h<f;)for(var y=p[h],x=s(y),C=-1,_=x.length;++C<_;){var S=x[C],b=c[S];(b===void 0||n(b,o[S])&&!l.call(c,S))&&(c[S]=y[S])}return c});return hm=u,hm}var pm,Sb;function Xq(){if(Sb)return pm;Sb=1;var e=Or(),n=Pr(),r=hi();function s(o){return function(l,u,c){var p=Object(l);if(!n(l)){var h=e(u,3);l=r(l),u=function(m){return h(p[m],m,p)}}var f=o(l,u,c);return f>-1?p[h?l[f]:f]:void 0}}return pm=s,pm}var mm,bb;function Qq(){if(bb)return mm;bb=1;var e=/\s/;function n(r){for(var s=r.length;s--&&e.test(r.charAt(s)););return s}return mm=n,mm}var gm,kb;function Zq(){if(kb)return gm;kb=1;var e=Qq(),n=/^\s+/;function r(s){return s&&s.slice(0,e(s)+1).replace(n,"")}return gm=r,gm}var vm,Eb;function Jq(){if(Eb)return vm;Eb=1;var e=Zq(),n=jn(),r=io(),s=NaN,o=/^[-+]0x[0-9a-f]+$/i,l=/^0b[01]+$/i,u=/^0o[0-7]+$/i,c=parseInt;function p(h){if(typeof h=="number")return h;if(r(h))return s;if(n(h)){var f=typeof h.valueOf=="function"?h.valueOf():h;h=n(f)?f+"":f}if(typeof h!="string")return h===0?h:+h;h=e(h);var m=l.test(h);return m||u.test(h)?c(h.slice(2),m?2:8):o.test(h)?s:+h}return vm=p,vm}var ym,Nb;function RC(){if(Nb)return ym;Nb=1;var e=Jq(),n=1/0,r=17976931348623157e292;function s(o){if(!o)return o===0?o:0;if(o=e(o),o===n||o===-n){var l=o<0?-1:1;return l*r}return o===o?o:0}return ym=s,ym}var wm,Cb;function e$(){if(Cb)return wm;Cb=1;var e=RC();function n(r){var s=e(r),o=s%1;return s===s?o?s-o:s:0}return wm=n,wm}var xm,Tb;function t$(){if(Tb)return xm;Tb=1;var e=_C(),n=Or(),r=e$(),s=Math.max;function o(l,u,c){var p=l==null?0:l.length;if(!p)return-1;var h=c==null?0:r(c);return h<0&&(h=s(p+h,0)),e(l,n(u,3),h)}return xm=o,xm}var _m,Rb;function n$(){if(Rb)return _m;Rb=1;var e=Xq(),n=t$(),r=e(n);return _m=r,_m}var Sm,jb;function jC(){if(jb)return Sm;jb=1;var e=$v();function n(r){var s=r==null?0:r.length;return s?e(r,1):[]}return Sm=n,Sm}var bm,Ab;function r$(){if(Ab)return bm;Ab=1;var e=Pv(),n=eC(),r=Ji();function s(o,l){return o==null?o:e(o,n(l),r)}return bm=s,bm}var km,Ib;function i$(){if(Ib)return km;Ib=1;function e(n){var r=n==null?0:n.length;return r?n[r-1]:void 0}return km=e,km}var Em,Mb;function s$(){if(Mb)return Em;Mb=1;var e=uu(),n=Ov(),r=Or();function s(o,l){var u={};return l=r(l,3),n(o,function(c,p,h){e(u,p,l(c,p,h))}),u}return Em=s,Em}var Nm,Pb;function Fv(){if(Pb)return Nm;Pb=1;var e=io();function n(r,s,o){for(var l=-1,u=r.length;++l<u;){var c=r[l],p=s(c);if(p!=null&&(h===void 0?p===p&&!e(p):o(p,h)))var h=p,f=c}return f}return Nm=n,Nm}var Cm,Ob;function o$(){if(Ob)return Cm;Ob=1;function e(n,r){return n>r}return Cm=e,Cm}var Tm,Lb;function a$(){if(Lb)return Tm;Lb=1;var e=Fv(),n=o$(),r=es();function s(o){return o&&o.length?e(o,r,n):void 0}return Tm=s,Tm}var Rm,qb;function AC(){if(qb)return Rm;qb=1;var e=uu(),n=eo();function r(s,o,l){(l!==void 0&&!n(s[o],l)||l===void 0&&!(o in s))&&e(s,o,l)}return Rm=r,Rm}var jm,$b;function l$(){if($b)return jm;$b=1;var e=Qi(),n=pu(),r=hr(),s="[object Object]",o=Function.prototype,l=Object.prototype,u=o.toString,c=l.hasOwnProperty,p=u.call(Object);function h(f){if(!r(f)||e(f)!=s)return!1;var m=n(f);if(m===null)return!0;var y=c.call(m,"constructor")&&m.constructor;return typeof y=="function"&&y instanceof y&&u.call(y)==p}return jm=h,jm}var Am,Db;function IC(){if(Db)return Am;Db=1;function e(n,r){if(!(r==="constructor"&&typeof n[r]=="function")&&r!="__proto__")return n[r]}return Am=e,Am}var Im,Fb;function u$(){if(Fb)return Im;Fb=1;var e=ha(),n=Ji();function r(s){return e(s,n(s))}return Im=r,Im}var Mm,zb;function c$(){if(zb)return Mm;zb=1;var e=AC(),n=zN(),r=XN(),s=BN(),o=ZN(),l=pa(),u=_t(),c=SC(),p=no(),h=fa(),f=jn(),m=l$(),y=ma(),x=IC(),C=u$();function _(S,b,k,N,T,I,M){var O=x(S,k),H=x(b,k),L=M.get(H);if(L){e(S,k,L);return}var P=I?I(O,H,k+"",S,b,M):void 0,q=P===void 0;if(q){var W=u(H),B=!W&&p(H),j=!W&&!B&&y(H);P=H,W||B||j?u(O)?P=O:c(O)?P=s(O):B?(q=!1,P=n(H,!0)):j?(q=!1,P=r(H,!0)):P=[]:m(H)||l(H)?(P=O,l(O)?P=C(O):(!f(O)||h(O))&&(P=o(H))):q=!1}q&&(M.set(H,P),T(P,H,N,I,M),M.delete(H)),e(S,k,P)}return Mm=_,Mm}var Pm,Bb;function d$(){if(Bb)return Pm;Bb=1;var e=lu(),n=AC(),r=Pv(),s=c$(),o=jn(),l=Ji(),u=IC();function c(p,h,f,m,y){p!==h&&r(h,function(x,C){if(y||(y=new e),o(x))s(p,h,C,f,c,m,y);else{var _=m?m(u(p,C),x,C+"",p,h,y):void 0;_===void 0&&(_=x),n(p,C,_)}},l)}return Pm=c,Pm}var Om,Ub;function f$(){if(Ub)return Om;Ub=1;var e=wu(),n=xu();function r(s){return e(function(o,l){var u=-1,c=l.length,p=c>1?l[c-1]:void 0,h=c>2?l[2]:void 0;for(p=s.length>3&&typeof p=="function"?(c--,p):void 0,h&&n(l[0],l[1],h)&&(p=c<3?void 0:p,c=1),o=Object(o);++u<c;){var f=l[u];f&&s(o,f,u,p)}return o})}return Om=r,Om}var Lm,Hb;function h$(){if(Hb)return Lm;Hb=1;var e=d$(),n=f$(),r=n(function(s,o,l){e(s,o,l)});return Lm=r,Lm}var qm,Wb;function MC(){if(Wb)return qm;Wb=1;function e(n,r){return n<r}return qm=e,qm}var $m,Vb;function p$(){if(Vb)return $m;Vb=1;var e=Fv(),n=MC(),r=es();function s(o){return o&&o.length?e(o,r,n):void 0}return $m=s,$m}var Dm,Gb;function m$(){if(Gb)return Dm;Gb=1;var e=Fv(),n=Or(),r=MC();function s(o,l){return o&&o.length?e(o,n(l,2),r):void 0}return Dm=s,Dm}var Fm,Yb;function g$(){if(Yb)return Fm;Yb=1;var e=tr(),n=function(){return e.Date.now()};return Fm=n,Fm}var zm,Kb;function v$(){if(Kb)return zm;Kb=1;var e=cu(),n=vu(),r=du(),s=jn(),o=ga();function l(u,c,p,h){if(!s(u))return u;c=n(c,u);for(var f=-1,m=c.length,y=m-1,x=u;x!=null&&++f<m;){var C=o(c[f]),_=p;if(C==="__proto__"||C==="constructor"||C==="prototype")return u;if(f!=y){var S=x[C];_=h?h(S,C,x):void 0,_===void 0&&(_=s(S)?S:r(c[f+1])?[]:{})}e(x,C,_),x=x[C]}return u}return zm=l,zm}var Bm,Xb;function y$(){if(Xb)return Bm;Xb=1;var e=yu(),n=v$(),r=vu();function s(o,l,u){for(var c=-1,p=l.length,h={};++c<p;){var f=l[c],m=e(o,f);u(m,f)&&n(h,r(f,o),m)}return h}return Bm=s,Bm}var Um,Qb;function w$(){if(Qb)return Um;Qb=1;var e=y$(),n=dC();function r(s,o){return e(s,o,function(l,u){return n(s,u)})}return Um=r,Um}var Hm,Zb;function x$(){if(Zb)return Hm;Zb=1;var e=jC(),n=wC(),r=xC();function s(o){return r(n(o,void 0,e),o+"")}return Hm=s,Hm}var Wm,Jb;function _$(){if(Jb)return Wm;Jb=1;var e=w$(),n=x$(),r=n(function(s,o){return s==null?{}:e(s,o)});return Wm=r,Wm}var Vm,ek;function S$(){if(ek)return Vm;ek=1;var e=Math.ceil,n=Math.max;function r(s,o,l,u){for(var c=-1,p=n(e((o-s)/(l||1)),0),h=Array(p);p--;)h[u?p:++c]=s,s+=l;return h}return Vm=r,Vm}var Gm,tk;function b$(){if(tk)return Gm;tk=1;var e=S$(),n=xu(),r=RC();function s(o){return function(l,u,c){return c&&typeof c!="number"&&n(l,u,c)&&(u=c=void 0),l=r(l),u===void 0?(u=l,l=0):u=r(u),c=c===void 0?l<u?1:-1:r(c),e(l,u,c,o)}}return Gm=s,Gm}var Ym,nk;function k$(){if(nk)return Ym;nk=1;var e=b$(),n=e();return Ym=n,Ym}var Km,rk;function E$(){if(rk)return Km;rk=1;function e(n,r){var s=n.length;for(n.sort(r);s--;)n[s]=n[s].value;return n}return Km=e,Km}var Xm,ik;function N$(){if(ik)return Xm;ik=1;var e=io();function n(r,s){if(r!==s){var o=r!==void 0,l=r===null,u=r===r,c=e(r),p=s!==void 0,h=s===null,f=s===s,m=e(s);if(!h&&!m&&!c&&r>s||c&&p&&f&&!h&&!m||l&&p&&f||!o&&f||!u)return 1;if(!l&&!c&&!m&&r<s||m&&o&&u&&!l&&!c||h&&o&&u||!p&&u||!f)return-1}return 0}return Xm=n,Xm}var Qm,sk;function C$(){if(sk)return Qm;sk=1;var e=N$();function n(r,s,o){for(var l=-1,u=r.criteria,c=s.criteria,p=u.length,h=o.length;++l<p;){var f=e(u[l],c[l]);if(f){if(l>=h)return f;var m=o[l];return f*(m=="desc"?-1:1)}}return r.index-s.index}return Qm=n,Qm}var Zm,ok;function T$(){if(ok)return Zm;ok=1;var e=gu(),n=yu(),r=Or(),s=gC(),o=E$(),l=fu(),u=C$(),c=es(),p=_t();function h(f,m,y){m.length?m=e(m,function(_){return p(_)?function(S){return n(S,_.length===1?_[0]:_)}:_}):m=[c];var x=-1;m=e(m,l(r));var C=s(f,function(_,S,b){var k=e(m,function(N){return N(_)});return{criteria:k,index:++x,value:_}});return o(C,function(_,S){return u(_,S,y)})}return Zm=h,Zm}var Jm,ak;function R$(){if(ak)return Jm;ak=1;var e=$v(),n=T$(),r=wu(),s=xu(),o=r(function(l,u){if(l==null)return[];var c=u.length;return c>1&&s(l,u[0],u[1])?u=[]:c>2&&s(u[0],u[1],u[2])&&(u=[u[0]]),n(l,e(u,1),[])});return Jm=o,Jm}var eg,lk;function j$(){if(lk)return eg;lk=1;var e=uC(),n=0;function r(s){var o=++n;return e(s)+o}return eg=r,eg}var tg,uk;function A$(){if(uk)return tg;uk=1;function e(n,r,s){for(var o=-1,l=n.length,u=r.length,c={};++o<l;){var p=o<u?r[o]:void 0;s(c,n[o],p)}return c}return tg=e,tg}var ng,ck;function I$(){if(ck)return ng;ck=1;var e=cu(),n=A$();function r(s,o){return n(s||[],o||[],e)}return ng=r,ng}var rg,dk;function st(){if(dk)return rg;dk=1;var e;if(typeof bv=="function")try{e={cloneDeep:Yq(),constant:Mv(),defaults:Kq(),each:nC(),filter:hC(),find:n$(),flatten:jC(),forEach:tC(),forIn:r$(),has:pC(),isUndefined:mC(),last:i$(),map:vC(),mapValues:s$(),max:a$(),merge:h$(),min:p$(),minBy:m$(),now:g$(),pick:_$(),range:k$(),reduce:yC(),sortBy:R$(),uniqueId:j$(),values:bC(),zipObject:I$()}}catch{}return e||(e=window._),rg=e,rg}var ig,fk;function M$(){if(fk)return ig;fk=1,ig=e;function e(){var s={};s._next=s._prev=s,this._sentinel=s}e.prototype.dequeue=function(){var s=this._sentinel,o=s._prev;if(o!==s)return n(o),o},e.prototype.enqueue=function(s){var o=this._sentinel;s._prev&&s._next&&n(s),s._next=o._next,o._next._prev=s,o._next=s,s._prev=o},e.prototype.toString=function(){for(var s=[],o=this._sentinel,l=o._prev;l!==o;)s.push(JSON.stringify(l,r)),l=l._prev;return"["+s.join(", ")+"]"};function n(s){s._prev._next=s._next,s._next._prev=s._prev,delete s._next,delete s._prev}function r(s,o){if(s!=="_next"&&s!=="_prev")return o}return ig}var sg,hk;function P$(){if(hk)return sg;hk=1;var e=st(),n=Jn().Graph,r=M$();sg=o;var s=e.constant(1);function o(h,f){if(h.nodeCount()<=1)return[];var m=c(h,f||s),y=l(m.graph,m.buckets,m.zeroIdx);return e.flatten(e.map(y,function(x){return h.outEdges(x.v,x.w)}),!0)}function l(h,f,m){for(var y=[],x=f[f.length-1],C=f[0],_;h.nodeCount();){for(;_=C.dequeue();)u(h,f,m,_);for(;_=x.dequeue();)u(h,f,m,_);if(h.nodeCount()){for(var S=f.length-2;S>0;--S)if(_=f[S].dequeue(),_){y=y.concat(u(h,f,m,_,!0));break}}}return y}function u(h,f,m,y,x){var C=x?[]:void 0;return e.forEach(h.inEdges(y.v),function(_){var S=h.edge(_),b=h.node(_.v);x&&C.push({v:_.v,w:_.w}),b.out-=S,p(f,m,b)}),e.forEach(h.outEdges(y.v),function(_){var S=h.edge(_),b=_.w,k=h.node(b);k.in-=S,p(f,m,k)}),h.removeNode(y.v),C}function c(h,f){var m=new n,y=0,x=0;e.forEach(h.nodes(),function(S){m.setNode(S,{v:S,in:0,out:0})}),e.forEach(h.edges(),function(S){var b=m.edge(S.v,S.w)||0,k=f(S),N=b+k;m.setEdge(S.v,S.w,N),x=Math.max(x,m.node(S.v).out+=k),y=Math.max(y,m.node(S.w).in+=k)});var C=e.range(x+y+3).map(function(){return new r}),_=y+1;return e.forEach(m.nodes(),function(S){p(C,_,m.node(S))}),{graph:m,buckets:C,zeroIdx:_}}function p(h,f,m){m.out?m.in?h[m.out-m.in+f].enqueue(m):h[h.length-1].enqueue(m):h[0].enqueue(m)}return sg}var og,pk;function O$(){if(pk)return og;pk=1;var e=st(),n=P$();og={run:r,undo:o};function r(l){var u=l.graph().acyclicer==="greedy"?n(l,c(l)):s(l);e.forEach(u,function(p){var h=l.edge(p);l.removeEdge(p),h.forwardName=p.name,h.reversed=!0,l.setEdge(p.w,p.v,h,e.uniqueId("rev"))});function c(p){return function(h){return p.edge(h).weight}}}function s(l){var u=[],c={},p={};function h(f){e.has(p,f)||(p[f]=!0,c[f]=!0,e.forEach(l.outEdges(f),function(m){e.has(c,m.w)?u.push(m):h(m.w)}),delete c[f])}return e.forEach(l.nodes(),h),u}function o(l){e.forEach(l.edges(),function(u){var c=l.edge(u);if(c.reversed){l.removeEdge(u);var p=c.forwardName;delete c.reversed,delete c.forwardName,l.setEdge(u.w,u.v,c,p)}})}return og}var ag,mk;function dn(){if(mk)return ag;mk=1;var e=st(),n=Jn().Graph;ag={addDummyNode:r,simplify:s,asNonCompoundGraph:o,successorWeights:l,predecessorWeights:u,intersectRect:c,buildLayerMatrix:p,normalizeRanks:h,removeEmptyRanks:f,addBorderNode:m,maxRank:y,partition:x,time:C,notime:_};function r(S,b,k,N){var T;do T=e.uniqueId(N);while(S.hasNode(T));return k.dummy=b,S.setNode(T,k),T}function s(S){var b=new n().setGraph(S.graph());return e.forEach(S.nodes(),function(k){b.setNode(k,S.node(k))}),e.forEach(S.edges(),function(k){var N=b.edge(k.v,k.w)||{weight:0,minlen:1},T=S.edge(k);b.setEdge(k.v,k.w,{weight:N.weight+T.weight,minlen:Math.max(N.minlen,T.minlen)})}),b}function o(S){var b=new n({multigraph:S.isMultigraph()}).setGraph(S.graph());return e.forEach(S.nodes(),function(k){S.children(k).length||b.setNode(k,S.node(k))}),e.forEach(S.edges(),function(k){b.setEdge(k,S.edge(k))}),b}function l(S){var b=e.map(S.nodes(),function(k){var N={};return e.forEach(S.outEdges(k),function(T){N[T.w]=(N[T.w]||0)+S.edge(T).weight}),N});return e.zipObject(S.nodes(),b)}function u(S){var b=e.map(S.nodes(),function(k){var N={};return e.forEach(S.inEdges(k),function(T){N[T.v]=(N[T.v]||0)+S.edge(T).weight}),N});return e.zipObject(S.nodes(),b)}function c(S,b){var k=S.x,N=S.y,T=b.x-k,I=b.y-N,M=S.width/2,O=S.height/2;if(!T&&!I)throw new Error("Not possible to find intersection inside of the rectangle");var H,L;return Math.abs(I)*M>Math.abs(T)*O?(I<0&&(O=-O),H=O*T/I,L=O):(T<0&&(M=-M),H=M,L=M*I/T),{x:k+H,y:N+L}}function p(S){var b=e.map(e.range(y(S)+1),function(){return[]});return e.forEach(S.nodes(),function(k){var N=S.node(k),T=N.rank;e.isUndefined(T)||(b[T][N.order]=k)}),b}function h(S){var b=e.min(e.map(S.nodes(),function(k){return S.node(k).rank}));e.forEach(S.nodes(),function(k){var N=S.node(k);e.has(N,"rank")&&(N.rank-=b)})}function f(S){var b=e.min(e.map(S.nodes(),function(I){return S.node(I).rank})),k=[];e.forEach(S.nodes(),function(I){var M=S.node(I).rank-b;k[M]||(k[M]=[]),k[M].push(I)});var N=0,T=S.graph().nodeRankFactor;e.forEach(k,function(I,M){e.isUndefined(I)&&M%T!==0?--N:N&&e.forEach(I,function(O){S.node(O).rank+=N})})}function m(S,b,k,N){var T={width:0,height:0};return arguments.length>=4&&(T.rank=k,T.order=N),r(S,"border",T,b)}function y(S){return e.max(e.map(S.nodes(),function(b){var k=S.node(b).rank;if(!e.isUndefined(k))return k}))}function x(S,b){var k={lhs:[],rhs:[]};return e.forEach(S,function(N){b(N)?k.lhs.push(N):k.rhs.push(N)}),k}function C(S,b){var k=e.now();try{return b()}finally{console.log(S+" time: "+(e.now()-k)+"ms")}}function _(S,b){return b()}return ag}var lg,gk;function L$(){if(gk)return lg;gk=1;var e=st(),n=dn();lg={run:r,undo:o};function r(l){l.graph().dummyChains=[],e.forEach(l.edges(),function(u){s(l,u)})}function s(l,u){var c=u.v,p=l.node(c).rank,h=u.w,f=l.node(h).rank,m=u.name,y=l.edge(u),x=y.labelRank;if(f!==p+1){l.removeEdge(u);var C,_,S;for(S=0,++p;p<f;++S,++p)y.points=[],_={width:0,height:0,edgeLabel:y,edgeObj:u,rank:p},C=n.addDummyNode(l,"edge",_,"_d"),p===x&&(_.width=y.width,_.height=y.height,_.dummy="edge-label",_.labelpos=y.labelpos),l.setEdge(c,C,{weight:y.weight},m),S===0&&l.graph().dummyChains.push(C),c=C;l.setEdge(c,h,{weight:y.weight},m)}}function o(l){e.forEach(l.graph().dummyChains,function(u){var c=l.node(u),p=c.edgeLabel,h;for(l.setEdge(c.edgeObj,p);c.dummy;)h=l.successors(u)[0],l.removeNode(u),p.points.push({x:c.x,y:c.y}),c.dummy==="edge-label"&&(p.x=c.x,p.y=c.y,p.width=c.width,p.height=c.height),u=h,c=l.node(u)})}return lg}var ug,vk;function Kl(){if(vk)return ug;vk=1;var e=st();ug={longestPath:n,slack:r};function n(s){var o={};function l(u){var c=s.node(u);if(e.has(o,u))return c.rank;o[u]=!0;var p=e.min(e.map(s.outEdges(u),function(h){return l(h.w)-s.edge(h).minlen}));return(p===Number.POSITIVE_INFINITY||p===void 0||p===null)&&(p=0),c.rank=p}e.forEach(s.sources(),l)}function r(s,o){return s.node(o.w).rank-s.node(o.v).rank-s.edge(o).minlen}return ug}var cg,yk;function PC(){if(yk)return cg;yk=1;var e=st(),n=Jn().Graph,r=Kl().slack;cg=s;function s(c){var p=new n({directed:!1}),h=c.nodes()[0],f=c.nodeCount();p.setNode(h,{});for(var m,y;o(p,c)<f;)m=l(p,c),y=p.hasNode(m.v)?r(c,m):-r(c,m),u(p,c,y);return p}function o(c,p){function h(f){e.forEach(p.nodeEdges(f),function(m){var y=m.v,x=f===y?m.w:y;!c.hasNode(x)&&!r(p,m)&&(c.setNode(x,{}),c.setEdge(f,x,{}),h(x))})}return e.forEach(c.nodes(),h),c.nodeCount()}function l(c,p){return e.minBy(p.edges(),function(h){if(c.hasNode(h.v)!==c.hasNode(h.w))return r(p,h)})}function u(c,p,h){e.forEach(c.nodes(),function(f){p.node(f).rank+=h})}return cg}var dg,wk;function q$(){if(wk)return dg;wk=1;var e=st(),n=PC(),r=Kl().slack,s=Kl().longestPath,o=Jn().alg.preorder,l=Jn().alg.postorder,u=dn().simplify;dg=c,c.initLowLimValues=m,c.initCutValues=p,c.calcCutValue=f,c.leaveEdge=x,c.enterEdge=C,c.exchangeEdges=_;function c(N){N=u(N),s(N);var T=n(N);m(T),p(T,N);for(var I,M;I=x(T);)M=C(T,N,I),_(T,N,I,M)}function p(N,T){var I=l(N,N.nodes());I=I.slice(0,I.length-1),e.forEach(I,function(M){h(N,T,M)})}function h(N,T,I){var M=N.node(I),O=M.parent;N.edge(I,O).cutvalue=f(N,T,I)}function f(N,T,I){var M=N.node(I),O=M.parent,H=!0,L=T.edge(I,O),P=0;return L||(H=!1,L=T.edge(O,I)),P=L.weight,e.forEach(T.nodeEdges(I),function(q){var W=q.v===I,B=W?q.w:q.v;if(B!==O){var j=W===H,K=T.edge(q).weight;if(P+=j?K:-K,b(N,I,B)){var U=N.edge(I,B).cutvalue;P+=j?-U:U}}}),P}function m(N,T){arguments.length<2&&(T=N.nodes()[0]),y(N,{},1,T)}function y(N,T,I,M,O){var H=I,L=N.node(M);return T[M]=!0,e.forEach(N.neighbors(M),function(P){e.has(T,P)||(I=y(N,T,I,P,M))}),L.low=H,L.lim=I++,O?L.parent=O:delete L.parent,I}function x(N){return e.find(N.edges(),function(T){return N.edge(T).cutvalue<0})}function C(N,T,I){var M=I.v,O=I.w;T.hasEdge(M,O)||(M=I.w,O=I.v);var H=N.node(M),L=N.node(O),P=H,q=!1;H.lim>L.lim&&(P=L,q=!0);var W=e.filter(T.edges(),function(B){return q===k(N,N.node(B.v),P)&&q!==k(N,N.node(B.w),P)});return e.minBy(W,function(B){return r(T,B)})}function _(N,T,I,M){var O=I.v,H=I.w;N.removeEdge(O,H),N.setEdge(M.v,M.w,{}),m(N),p(N,T),S(N,T)}function S(N,T){var I=e.find(N.nodes(),function(O){return!T.node(O).parent}),M=o(N,I);M=M.slice(1),e.forEach(M,function(O){var H=N.node(O).parent,L=T.edge(O,H),P=!1;L||(L=T.edge(H,O),P=!0),T.node(O).rank=T.node(H).rank+(P?L.minlen:-L.minlen)})}function b(N,T,I){return N.hasEdge(T,I)}function k(N,T,I){return I.low<=T.lim&&T.lim<=I.lim}return dg}var fg,xk;function $$(){if(xk)return fg;xk=1;var e=Kl(),n=e.longestPath,r=PC(),s=q$();fg=o;function o(p){switch(p.graph().ranker){case"network-simplex":c(p);break;case"tight-tree":u(p);break;case"longest-path":l(p);break;default:c(p)}}var l=n;function u(p){n(p),r(p)}function c(p){s(p)}return fg}var hg,_k;function D$(){if(_k)return hg;_k=1;var e=st();hg=n;function n(o){var l=s(o);e.forEach(o.graph().dummyChains,function(u){for(var c=o.node(u),p=c.edgeObj,h=r(o,l,p.v,p.w),f=h.path,m=h.lca,y=0,x=f[y],C=!0;u!==p.w;){if(c=o.node(u),C){for(;(x=f[y])!==m&&o.node(x).maxRank<c.rank;)y++;x===m&&(C=!1)}if(!C){for(;y<f.length-1&&o.node(x=f[y+1]).minRank<=c.rank;)y++;x=f[y]}o.setParent(u,x),u=o.successors(u)[0]}})}function r(o,l,u,c){var p=[],h=[],f=Math.min(l[u].low,l[c].low),m=Math.max(l[u].lim,l[c].lim),y,x;y=u;do y=o.parent(y),p.push(y);while(y&&(l[y].low>f||m>l[y].lim));for(x=y,y=c;(y=o.parent(y))!==x;)h.push(y);return{path:p.concat(h.reverse()),lca:x}}function s(o){var l={},u=0;function c(p){var h=u;e.forEach(o.children(p),c),l[p]={low:h,lim:u++}}return e.forEach(o.children(),c),l}return hg}var pg,Sk;function F$(){if(Sk)return pg;Sk=1;var e=st(),n=dn();pg={run:r,cleanup:u};function r(c){var p=n.addDummyNode(c,"root",{},"_root"),h=o(c),f=e.max(e.values(h))-1,m=2*f+1;c.graph().nestingRoot=p,e.forEach(c.edges(),function(x){c.edge(x).minlen*=m});var y=l(c)+1;e.forEach(c.children(),function(x){s(c,p,m,y,f,h,x)}),c.graph().nodeRankFactor=m}function s(c,p,h,f,m,y,x){var C=c.children(x);if(!C.length){x!==p&&c.setEdge(p,x,{weight:0,minlen:h});return}var _=n.addBorderNode(c,"_bt"),S=n.addBorderNode(c,"_bb"),b=c.node(x);c.setParent(_,x),b.borderTop=_,c.setParent(S,x),b.borderBottom=S,e.forEach(C,function(k){s(c,p,h,f,m,y,k);var N=c.node(k),T=N.borderTop?N.borderTop:k,I=N.borderBottom?N.borderBottom:k,M=N.borderTop?f:2*f,O=T!==I?1:m-y[x]+1;c.setEdge(_,T,{weight:M,minlen:O,nestingEdge:!0}),c.setEdge(I,S,{weight:M,minlen:O,nestingEdge:!0})}),c.parent(x)||c.setEdge(p,_,{weight:0,minlen:m+y[x]})}function o(c){var p={};function h(f,m){var y=c.children(f);y&&y.length&&e.forEach(y,function(x){h(x,m+1)}),p[f]=m}return e.forEach(c.children(),function(f){h(f,1)}),p}function l(c){return e.reduce(c.edges(),function(p,h){return p+c.edge(h).weight},0)}function u(c){var p=c.graph();c.removeNode(p.nestingRoot),delete p.nestingRoot,e.forEach(c.edges(),function(h){var f=c.edge(h);f.nestingEdge&&c.removeEdge(h)})}return pg}var mg,bk;function z$(){if(bk)return mg;bk=1;var e=st(),n=dn();mg=r;function r(o){function l(u){var c=o.children(u),p=o.node(u);if(c.length&&e.forEach(c,l),e.has(p,"minRank")){p.borderLeft=[],p.borderRight=[];for(var h=p.minRank,f=p.maxRank+1;h<f;++h)s(o,"borderLeft","_bl",u,p,h),s(o,"borderRight","_br",u,p,h)}}e.forEach(o.children(),l)}function s(o,l,u,c,p,h){var f={width:0,height:0,rank:h,borderType:l},m=p[l][h-1],y=n.addDummyNode(o,"border",f,u);p[l][h]=y,o.setParent(y,c),m&&o.setEdge(m,y,{weight:1})}return mg}var gg,kk;function B$(){if(kk)return gg;kk=1;var e=st();gg={adjust:n,undo:r};function n(h){var f=h.graph().rankdir.toLowerCase();(f==="lr"||f==="rl")&&s(h)}function r(h){var f=h.graph().rankdir.toLowerCase();(f==="bt"||f==="rl")&&l(h),(f==="lr"||f==="rl")&&(c(h),s(h))}function s(h){e.forEach(h.nodes(),function(f){o(h.node(f))}),e.forEach(h.edges(),function(f){o(h.edge(f))})}function o(h){var f=h.width;h.width=h.height,h.height=f}function l(h){e.forEach(h.nodes(),function(f){u(h.node(f))}),e.forEach(h.edges(),function(f){var m=h.edge(f);e.forEach(m.points,u),e.has(m,"y")&&u(m)})}function u(h){h.y=-h.y}function c(h){e.forEach(h.nodes(),function(f){p(h.node(f))}),e.forEach(h.edges(),function(f){var m=h.edge(f);e.forEach(m.points,p),e.has(m,"x")&&p(m)})}function p(h){var f=h.x;h.x=h.y,h.y=f}return gg}var vg,Ek;function U$(){if(Ek)return vg;Ek=1;var e=st();vg=n;function n(r){var s={},o=e.filter(r.nodes(),function(h){return!r.children(h).length}),l=e.max(e.map(o,function(h){return r.node(h).rank})),u=e.map(e.range(l+1),function(){return[]});function c(h){if(!e.has(s,h)){s[h]=!0;var f=r.node(h);u[f.rank].push(h),e.forEach(r.successors(h),c)}}var p=e.sortBy(o,function(h){return r.node(h).rank});return e.forEach(p,c),u}return vg}var yg,Nk;function H$(){if(Nk)return yg;Nk=1;var e=st();yg=n;function n(s,o){for(var l=0,u=1;u<o.length;++u)l+=r(s,o[u-1],o[u]);return l}function r(s,o,l){for(var u=e.zipObject(l,e.map(l,function(y,x){return x})),c=e.flatten(e.map(o,function(y){return e.sortBy(e.map(s.outEdges(y),function(x){return{pos:u[x.w],weight:s.edge(x).weight}}),"pos")}),!0),p=1;p<l.length;)p<<=1;var h=2*p-1;p-=1;var f=e.map(new Array(h),function(){return 0}),m=0;return e.forEach(c.forEach(function(y){var x=y.pos+p;f[x]+=y.weight;for(var C=0;x>0;)x%2&&(C+=f[x+1]),x=x-1>>1,f[x]+=y.weight;m+=y.weight*C})),m}return yg}var wg,Ck;function W$(){if(Ck)return wg;Ck=1;var e=st();wg=n;function n(r,s){return e.map(s,function(o){var l=r.inEdges(o);if(l.length){var u=e.reduce(l,function(c,p){var h=r.edge(p),f=r.node(p.v);return{sum:c.sum+h.weight*f.order,weight:c.weight+h.weight}},{sum:0,weight:0});return{v:o,barycenter:u.sum/u.weight,weight:u.weight}}else return{v:o}})}return wg}var xg,Tk;function V$(){if(Tk)return xg;Tk=1;var e=st();xg=n;function n(o,l){var u={};e.forEach(o,function(p,h){var f=u[p.v]={indegree:0,in:[],out:[],vs:[p.v],i:h};e.isUndefined(p.barycenter)||(f.barycenter=p.barycenter,f.weight=p.weight)}),e.forEach(l.edges(),function(p){var h=u[p.v],f=u[p.w];!e.isUndefined(h)&&!e.isUndefined(f)&&(f.indegree++,h.out.push(u[p.w]))});var c=e.filter(u,function(p){return!p.indegree});return r(c)}function r(o){var l=[];function u(h){return function(f){f.merged||(e.isUndefined(f.barycenter)||e.isUndefined(h.barycenter)||f.barycenter>=h.barycenter)&&s(h,f)}}function c(h){return function(f){f.in.push(h),--f.indegree===0&&o.push(f)}}for(;o.length;){var p=o.pop();l.push(p),e.forEach(p.in.reverse(),u(p)),e.forEach(p.out,c(p))}return e.map(e.filter(l,function(h){return!h.merged}),function(h){return e.pick(h,["vs","i","barycenter","weight"])})}function s(o,l){var u=0,c=0;o.weight&&(u+=o.barycenter*o.weight,c+=o.weight),l.weight&&(u+=l.barycenter*l.weight,c+=l.weight),o.vs=l.vs.concat(o.vs),o.barycenter=u/c,o.weight=c,o.i=Math.min(l.i,o.i),l.merged=!0}return xg}var _g,Rk;function G$(){if(Rk)return _g;Rk=1;var e=st(),n=dn();_g=r;function r(l,u){var c=n.partition(l,function(_){return e.has(_,"barycenter")}),p=c.lhs,h=e.sortBy(c.rhs,function(_){return-_.i}),f=[],m=0,y=0,x=0;p.sort(o(!!u)),x=s(f,h,x),e.forEach(p,function(_){x+=_.vs.length,f.push(_.vs),m+=_.barycenter*_.weight,y+=_.weight,x=s(f,h,x)});var C={vs:e.flatten(f,!0)};return y&&(C.barycenter=m/y,C.weight=y),C}function s(l,u,c){for(var p;u.length&&(p=e.last(u)).i<=c;)u.pop(),l.push(p.vs),c++;return c}function o(l){return function(u,c){return u.barycenter<c.barycenter?-1:u.barycenter>c.barycenter?1:l?c.i-u.i:u.i-c.i}}return _g}var Sg,jk;function Y$(){if(jk)return Sg;jk=1;var e=st(),n=W$(),r=V$(),s=G$();Sg=o;function o(c,p,h,f){var m=c.children(p),y=c.node(p),x=y?y.borderLeft:void 0,C=y?y.borderRight:void 0,_={};x&&(m=e.filter(m,function(I){return I!==x&&I!==C}));var S=n(c,m);e.forEach(S,function(I){if(c.children(I.v).length){var M=o(c,I.v,h,f);_[I.v]=M,e.has(M,"barycenter")&&u(I,M)}});var b=r(S,h);l(b,_);var k=s(b,f);if(x&&(k.vs=e.flatten([x,k.vs,C],!0),c.predecessors(x).length)){var N=c.node(c.predecessors(x)[0]),T=c.node(c.predecessors(C)[0]);e.has(k,"barycenter")||(k.barycenter=0,k.weight=0),k.barycenter=(k.barycenter*k.weight+N.order+T.order)/(k.weight+2),k.weight+=2}return k}function l(c,p){e.forEach(c,function(h){h.vs=e.flatten(h.vs.map(function(f){return p[f]?p[f].vs:f}),!0)})}function u(c,p){e.isUndefined(c.barycenter)?(c.barycenter=p.barycenter,c.weight=p.weight):(c.barycenter=(c.barycenter*c.weight+p.barycenter*p.weight)/(c.weight+p.weight),c.weight+=p.weight)}return Sg}var bg,Ak;function K$(){if(Ak)return bg;Ak=1;var e=st(),n=Jn().Graph;bg=r;function r(o,l,u){var c=s(o),p=new n({compound:!0}).setGraph({root:c}).setDefaultNodeLabel(function(h){return o.node(h)});return e.forEach(o.nodes(),function(h){var f=o.node(h),m=o.parent(h);(f.rank===l||f.minRank<=l&&l<=f.maxRank)&&(p.setNode(h),p.setParent(h,m||c),e.forEach(o[u](h),function(y){var x=y.v===h?y.w:y.v,C=p.edge(x,h),_=e.isUndefined(C)?0:C.weight;p.setEdge(x,h,{weight:o.edge(y).weight+_})}),e.has(f,"minRank")&&p.setNode(h,{borderLeft:f.borderLeft[l],borderRight:f.borderRight[l]}))}),p}function s(o){for(var l;o.hasNode(l=e.uniqueId("_root")););return l}return bg}var kg,Ik;function X$(){if(Ik)return kg;Ik=1;var e=st();kg=n;function n(r,s,o){var l={},u;e.forEach(o,function(c){for(var p=r.parent(c),h,f;p;){if(h=r.parent(p),h?(f=l[h],l[h]=p):(f=u,u=p),f&&f!==p){s.setEdge(f,p);return}p=h}})}return kg}var Eg,Mk;function Q$(){if(Mk)return Eg;Mk=1;var e=st(),n=U$(),r=H$(),s=Y$(),o=K$(),l=X$(),u=Jn().Graph,c=dn();Eg=p;function p(y){var x=c.maxRank(y),C=h(y,e.range(1,x+1),"inEdges"),_=h(y,e.range(x-1,-1,-1),"outEdges"),S=n(y);m(y,S);for(var b=Number.POSITIVE_INFINITY,k,N=0,T=0;T<4;++N,++T){f(N%2?C:_,N%4>=2),S=c.buildLayerMatrix(y);var I=r(y,S);I<b&&(T=0,k=e.cloneDeep(S),b=I)}m(y,k)}function h(y,x,C){return e.map(x,function(_){return o(y,_,C)})}function f(y,x){var C=new u;e.forEach(y,function(_){var S=_.graph().root,b=s(_,S,C,x);e.forEach(b.vs,function(k,N){_.node(k).order=N}),l(_,C,b.vs)})}function m(y,x){e.forEach(x,function(C){e.forEach(C,function(_,S){y.node(_).order=S})})}return Eg}var Ng,Pk;function Z$(){if(Pk)return Ng;Pk=1;var e=st(),n=Jn().Graph,r=dn();Ng={positionX:C,findType1Conflicts:s,findType2Conflicts:o,addConflict:u,hasConflict:c,verticalAlignment:p,horizontalCompaction:h,alignCoordinates:y,findSmallestWidthAlignment:m,balance:x};function s(b,k){var N={};function T(I,M){var O=0,H=0,L=I.length,P=e.last(M);return e.forEach(M,function(q,W){var B=l(b,q),j=B?b.node(B).order:L;(B||q===P)&&(e.forEach(M.slice(H,W+1),function(K){e.forEach(b.predecessors(K),function(U){var ee=b.node(U),J=ee.order;(J<O||j<J)&&!(ee.dummy&&b.node(K).dummy)&&u(N,U,K)})}),H=W+1,O=j)}),M}return e.reduce(k,T),N}function o(b,k){var N={};function T(M,O,H,L,P){var q;e.forEach(e.range(O,H),function(W){q=M[W],b.node(q).dummy&&e.forEach(b.predecessors(q),function(B){var j=b.node(B);j.dummy&&(j.order<L||j.order>P)&&u(N,B,q)})})}function I(M,O){var H=-1,L,P=0;return e.forEach(O,function(q,W){if(b.node(q).dummy==="border"){var B=b.predecessors(q);B.length&&(L=b.node(B[0]).order,T(O,P,W,H,L),P=W,H=L)}T(O,P,O.length,L,M.length)}),O}return e.reduce(k,I),N}function l(b,k){if(b.node(k).dummy)return e.find(b.predecessors(k),function(N){return b.node(N).dummy})}function u(b,k,N){if(k>N){var T=k;k=N,N=T}var I=b[k];I||(b[k]=I={}),I[N]=!0}function c(b,k,N){if(k>N){var T=k;k=N,N=T}return e.has(b[k],N)}function p(b,k,N,T){var I={},M={},O={};return e.forEach(k,function(H){e.forEach(H,function(L,P){I[L]=L,M[L]=L,O[L]=P})}),e.forEach(k,function(H){var L=-1;e.forEach(H,function(P){var q=T(P);if(q.length){q=e.sortBy(q,function(U){return O[U]});for(var W=(q.length-1)/2,B=Math.floor(W),j=Math.ceil(W);B<=j;++B){var K=q[B];M[P]===P&&L<O[K]&&!c(N,P,K)&&(M[K]=P,M[P]=I[P]=I[K],L=O[K])}}})}),{root:I,align:M}}function h(b,k,N,T,I){var M={},O=f(b,k,N,I),H=I?"borderLeft":"borderRight";function L(W,B){for(var j=O.nodes(),K=j.pop(),U={};K;)U[K]?W(K):(U[K]=!0,j.push(K),j=j.concat(B(K))),K=j.pop()}function P(W){M[W]=O.inEdges(W).reduce(function(B,j){return Math.max(B,M[j.v]+O.edge(j))},0)}function q(W){var B=O.outEdges(W).reduce(function(K,U){return Math.min(K,M[U.w]-O.edge(U))},Number.POSITIVE_INFINITY),j=b.node(W);B!==Number.POSITIVE_INFINITY&&j.borderType!==H&&(M[W]=Math.max(M[W],B))}return L(P,O.predecessors.bind(O)),L(q,O.successors.bind(O)),e.forEach(T,function(W){M[W]=M[N[W]]}),M}function f(b,k,N,T){var I=new n,M=b.graph(),O=_(M.nodesep,M.edgesep,T);return e.forEach(k,function(H){var L;e.forEach(H,function(P){var q=N[P];if(I.setNode(q),L){var W=N[L],B=I.edge(W,q);I.setEdge(W,q,Math.max(O(b,P,L),B||0))}L=P})}),I}function m(b,k){return e.minBy(e.values(k),function(N){var T=Number.NEGATIVE_INFINITY,I=Number.POSITIVE_INFINITY;return e.forIn(N,function(M,O){var H=S(b,O)/2;T=Math.max(M+H,T),I=Math.min(M-H,I)}),T-I})}function y(b,k){var N=e.values(k),T=e.min(N),I=e.max(N);e.forEach(["u","d"],function(M){e.forEach(["l","r"],function(O){var H=M+O,L=b[H],P;if(L!==k){var q=e.values(L);P=O==="l"?T-e.min(q):I-e.max(q),P&&(b[H]=e.mapValues(L,function(W){return W+P}))}})})}function x(b,k){return e.mapValues(b.ul,function(N,T){if(k)return b[k.toLowerCase()][T];var I=e.sortBy(e.map(b,T));return(I[1]+I[2])/2})}function C(b){var k=r.buildLayerMatrix(b),N=e.merge(s(b,k),o(b,k)),T={},I;e.forEach(["u","d"],function(O){I=O==="u"?k:e.values(k).reverse(),e.forEach(["l","r"],function(H){H==="r"&&(I=e.map(I,function(W){return e.values(W).reverse()}));var L=(O==="u"?b.predecessors:b.successors).bind(b),P=p(b,I,N,L),q=h(b,I,P.root,P.align,H==="r");H==="r"&&(q=e.mapValues(q,function(W){return-W})),T[O+H]=q})});var M=m(b,T);return y(T,M),x(T,b.graph().align)}function _(b,k,N){return function(T,I,M){var O=T.node(I),H=T.node(M),L=0,P;if(L+=O.width/2,e.has(O,"labelpos"))switch(O.labelpos.toLowerCase()){case"l":P=-O.width/2;break;case"r":P=O.width/2;break}if(P&&(L+=N?P:-P),P=0,L+=(O.dummy?k:b)/2,L+=(H.dummy?k:b)/2,L+=H.width/2,e.has(H,"labelpos"))switch(H.labelpos.toLowerCase()){case"l":P=H.width/2;break;case"r":P=-H.width/2;break}return P&&(L+=N?P:-P),P=0,L}}function S(b,k){return b.node(k).width}return Ng}var Cg,Ok;function J$(){if(Ok)return Cg;Ok=1;var e=st(),n=dn(),r=Z$().positionX;Cg=s;function s(l){l=n.asNonCompoundGraph(l),o(l),e.forEach(r(l),function(u,c){l.node(c).x=u})}function o(l){var u=n.buildLayerMatrix(l),c=l.graph().ranksep,p=0;e.forEach(u,function(h){var f=e.max(e.map(h,function(m){return l.node(m).height}));e.forEach(h,function(m){l.node(m).y=p+f/2}),p+=f+c})}return Cg}var Tg,Lk;function e4(){if(Lk)return Tg;Lk=1;var e=st(),n=O$(),r=L$(),s=$$(),o=dn().normalizeRanks,l=D$(),u=dn().removeEmptyRanks,c=F$(),p=z$(),h=B$(),f=Q$(),m=J$(),y=dn(),x=Jn().Graph;Tg=C;function C(D,Q){var te=Q&&Q.debugTiming?y.time:y.notime;te("layout",function(){var ae=te(" buildLayoutGraph",function(){return L(D)});te(" runLayout",function(){_(ae,te)}),te(" updateInputGraph",function(){S(D,ae)})})}function _(D,Q){Q(" makeSpaceForEdgeLabels",function(){P(D)}),Q(" removeSelfEdges",function(){F(D)}),Q(" acyclic",function(){n.run(D)}),Q(" nestingGraph.run",function(){c.run(D)}),Q(" rank",function(){s(y.asNonCompoundGraph(D))}),Q(" injectEdgeLabelProxies",function(){q(D)}),Q(" removeEmptyRanks",function(){u(D)}),Q(" nestingGraph.cleanup",function(){c.cleanup(D)}),Q(" normalizeRanks",function(){o(D)}),Q(" assignRankMinMax",function(){W(D)}),Q(" removeEdgeLabelProxies",function(){B(D)}),Q(" normalize.run",function(){r.run(D)}),Q(" parentDummyChains",function(){l(D)}),Q(" addBorderSegments",function(){p(D)}),Q(" order",function(){f(D)}),Q(" insertSelfEdges",function(){Y(D)}),Q(" adjustCoordinateSystem",function(){h.adjust(D)}),Q(" position",function(){m(D)}),Q(" positionSelfEdges",function(){E(D)}),Q(" removeBorderNodes",function(){J(D)}),Q(" normalize.undo",function(){r.undo(D)}),Q(" fixupEdgeLabelCoords",function(){U(D)}),Q(" undoCoordinateSystem",function(){h.undo(D)}),Q(" translateGraph",function(){j(D)}),Q(" assignNodeIntersects",function(){K(D)}),Q(" reversePoints",function(){ee(D)}),Q(" acyclic.undo",function(){n.undo(D)})}function S(D,Q){e.forEach(D.nodes(),function(te){var ae=D.node(te),ce=Q.node(te);ae&&(ae.x=ce.x,ae.y=ce.y,Q.children(te).length&&(ae.width=ce.width,ae.height=ce.height))}),e.forEach(D.edges(),function(te){var ae=D.edge(te),ce=Q.edge(te);ae.points=ce.points,e.has(ce,"x")&&(ae.x=ce.x,ae.y=ce.y)}),D.graph().width=Q.graph().width,D.graph().height=Q.graph().height}var b=["nodesep","edgesep","ranksep","marginx","marginy"],k={ranksep:50,edgesep:20,nodesep:50,rankdir:"tb"},N=["acyclicer","ranker","rankdir","align"],T=["width","height"],I={width:0,height:0},M=["minlen","weight","width","height","labeloffset"],O={minlen:1,weight:1,width:0,height:0,labeloffset:10,labelpos:"r"},H=["labelpos"];function L(D){var Q=new x({multigraph:!0,compound:!0}),te=se(D.graph());return Q.setGraph(e.merge({},k,$(te,b),e.pick(te,N))),e.forEach(D.nodes(),function(ae){var ce=se(D.node(ae));Q.setNode(ae,e.defaults($(ce,T),I)),Q.setParent(ae,D.parent(ae))}),e.forEach(D.edges(),function(ae){var ce=se(D.edge(ae));Q.setEdge(ae,e.merge({},O,$(ce,M),e.pick(ce,H)))}),Q}function P(D){var Q=D.graph();Q.ranksep/=2,e.forEach(D.edges(),function(te){var ae=D.edge(te);ae.minlen*=2,ae.labelpos.toLowerCase()!=="c"&&(Q.rankdir==="TB"||Q.rankdir==="BT"?ae.width+=ae.labeloffset:ae.height+=ae.labeloffset)})}function q(D){e.forEach(D.edges(),function(Q){var te=D.edge(Q);if(te.width&&te.height){var ae=D.node(Q.v),ce=D.node(Q.w),me={rank:(ce.rank-ae.rank)/2+ae.rank,e:Q};y.addDummyNode(D,"edge-proxy",me,"_ep")}})}function W(D){var Q=0;e.forEach(D.nodes(),function(te){var ae=D.node(te);ae.borderTop&&(ae.minRank=D.node(ae.borderTop).rank,ae.maxRank=D.node(ae.borderBottom).rank,Q=e.max(Q,ae.maxRank))}),D.graph().maxRank=Q}function B(D){e.forEach(D.nodes(),function(Q){var te=D.node(Q);te.dummy==="edge-proxy"&&(D.edge(te.e).labelRank=te.rank,D.removeNode(Q))})}function j(D){var Q=Number.POSITIVE_INFINITY,te=0,ae=Number.POSITIVE_INFINITY,ce=0,me=D.graph(),ge=me.marginx||0,Pe=me.marginy||0;function Se(Oe){var Me=Oe.x,be=Oe.y,De=Oe.width,ye=Oe.height;Q=Math.min(Q,Me-De/2),te=Math.max(te,Me+De/2),ae=Math.min(ae,be-ye/2),ce=Math.max(ce,be+ye/2)}e.forEach(D.nodes(),function(Oe){Se(D.node(Oe))}),e.forEach(D.edges(),function(Oe){var Me=D.edge(Oe);e.has(Me,"x")&&Se(Me)}),Q-=ge,ae-=Pe,e.forEach(D.nodes(),function(Oe){var Me=D.node(Oe);Me.x-=Q,Me.y-=ae}),e.forEach(D.edges(),function(Oe){var Me=D.edge(Oe);e.forEach(Me.points,function(be){be.x-=Q,be.y-=ae}),e.has(Me,"x")&&(Me.x-=Q),e.has(Me,"y")&&(Me.y-=ae)}),me.width=te-Q+ge,me.height=ce-ae+Pe}function K(D){e.forEach(D.edges(),function(Q){var te=D.edge(Q),ae=D.node(Q.v),ce=D.node(Q.w),me,ge;te.points?(me=te.points[0],ge=te.points[te.points.length-1]):(te.points=[],me=ce,ge=ae),te.points.unshift(y.intersectRect(ae,me)),te.points.push(y.intersectRect(ce,ge))})}function U(D){e.forEach(D.edges(),function(Q){var te=D.edge(Q);if(e.has(te,"x"))switch((te.labelpos==="l"||te.labelpos==="r")&&(te.width-=te.labeloffset),te.labelpos){case"l":te.x-=te.width/2+te.labeloffset;break;case"r":te.x+=te.width/2+te.labeloffset;break}})}function ee(D){e.forEach(D.edges(),function(Q){var te=D.edge(Q);te.reversed&&te.points.reverse()})}function J(D){e.forEach(D.nodes(),function(Q){if(D.children(Q).length){var te=D.node(Q),ae=D.node(te.borderTop),ce=D.node(te.borderBottom),me=D.node(e.last(te.borderLeft)),ge=D.node(e.last(te.borderRight));te.width=Math.abs(ge.x-me.x),te.height=Math.abs(ce.y-ae.y),te.x=me.x+te.width/2,te.y=ae.y+te.height/2}}),e.forEach(D.nodes(),function(Q){D.node(Q).dummy==="border"&&D.removeNode(Q)})}function F(D){e.forEach(D.edges(),function(Q){if(Q.v===Q.w){var te=D.node(Q.v);te.selfEdges||(te.selfEdges=[]),te.selfEdges.push({e:Q,label:D.edge(Q)}),D.removeEdge(Q)}})}function Y(D){var Q=y.buildLayerMatrix(D);e.forEach(Q,function(te){var ae=0;e.forEach(te,function(ce,me){var ge=D.node(ce);ge.order=me+ae,e.forEach(ge.selfEdges,function(Pe){y.addDummyNode(D,"selfedge",{width:Pe.label.width,height:Pe.label.height,rank:ge.rank,order:me+ ++ae,e:Pe.e,label:Pe.label},"_se")}),delete ge.selfEdges})})}function E(D){e.forEach(D.nodes(),function(Q){var te=D.node(Q);if(te.dummy==="selfedge"){var ae=D.node(te.e.v),ce=ae.x+ae.width/2,me=ae.y,ge=te.x-ce,Pe=ae.height/2;D.setEdge(te.e,te.label),D.removeNode(Q),te.label.points=[{x:ce+2*ge/3,y:me-Pe},{x:ce+5*ge/6,y:me-Pe},{x:ce+ge,y:me},{x:ce+5*ge/6,y:me+Pe},{x:ce+2*ge/3,y:me+Pe}],te.label.x=te.x,te.label.y=te.y}})}function $(D,Q){return e.mapValues(e.pick(D,Q),Number)}function se(D){var Q={};return e.forEach(D,function(te,ae){Q[ae.toLowerCase()]=te}),Q}return Tg}var Rg,qk;function t4(){if(qk)return Rg;qk=1;var e=st(),n=dn(),r=Jn().Graph;Rg={debugOrdering:s};function s(o){var l=n.buildLayerMatrix(o),u=new r({compound:!0,multigraph:!0}).setGraph({});return e.forEach(o.nodes(),function(c){u.setNode(c,{label:c}),u.setParent(c,"layer"+o.node(c).rank)}),e.forEach(o.edges(),function(c){u.setEdge(c.v,c.w,{},c.name)}),e.forEach(l,function(c,p){var h="layer"+p;u.setNode(h,{rank:"same"}),e.reduce(c,function(f,m){return u.setEdge(f,m,{style:"invis"}),m})}),u}return Rg}var jg,$k;function n4(){return $k||($k=1,jg="0.8.5"),jg}var Ag,Dk;function r4(){return Dk||(Dk=1,Ag={graphlib:Jn(),layout:e4(),debug:t4(),util:{time:dn().time,notime:dn().notime},version:n4()}),Ag}var i4=r4();const Fk=nv(i4),Js=240,Xl=130,Ys=74,_u=72,zk=Ys+_u;function s4(e,n){var s;let r=Js;for(const o of e)r=Math.max(r,((s=n.get(o.id))==null?void 0:s.width)??Js);return r}const OC=420,o4=2;function ia(e){var r;return((r=e.data)==null?void 0:r.sessionId)??"_default"}function a4(e,n){return((n==null?void 0:n.get(e))??0)>0?OC:0}function l4(e,n){const r=(n==null?void 0:n.get(e))??0;return r>0?6+r*36:0}function sa(e,n,r){const s=n.get(e);return{w:((s==null?void 0:s.width)??Js)+a4(e,r),h:Math.max((s==null?void 0:s.height)??Xl,l4(e,r))}}function u4(e){return[...e.keys()].sort().map(n=>`${n}:${e.get(n)}`).join("|")}function c4(e,n,r,s,o,l){const u=new Fk.graphlib.Graph;u.setDefaultEdgeLabel(()=>({})),u.setGraph({rankdir:r,marginx:0,marginy:0,nodesep:70,ranksep:160,edgesep:30});const c=e.filter(b=>!o.has(b)),p=new Set(c);for(const b of c){const{w:k,h:N}=sa(b,s,l);u.setNode(b,{width:k,height:N})}for(const b of n)p.has(b.source)&&p.has(b.target)&&u.setEdge(b.source,b.target);Fk.layout(u);const h=new Map;let f=1/0,m=1/0,y=-1/0,x=-1/0;for(const b of c){const k=u.node(b);if(!k)continue;const N=s.get(b),T=(N==null?void 0:N.width)??Js,I=(N==null?void 0:N.height)??Xl,M=sa(b,s,l),O=k.x-M.w/2,H=k.y-M.h/2;h.set(b,{x:O,y:H}),O<f&&(f=O),H<m&&(m=H),O+T>y&&(y=O+T),H+I>x&&(x=H+I)}if(Number.isFinite(f)&&Number.isFinite(m))for(const[b,k]of h)h.set(b,{x:k.x-f,y:k.y-m});const C=Number.isFinite(y)?y-f:0,_=Number.isFinite(x)?x-m:0;let S=null;for(const b of e){const k=o.get(b);if(!k)continue;const N=s.get(b),T=(N==null?void 0:N.width)??Js,I=(N==null?void 0:N.height)??Xl;S=S===null?{minX:k.x,minY:k.y,maxX:k.x+T,maxY:k.y+I}:{minX:Math.min(S.minX,k.x),minY:Math.min(S.minY,k.y),maxX:Math.max(S.maxX,k.x+T),maxY:Math.max(S.maxY,k.y+I)}}return{positions:h,width:C,height:_,pinnedBox:S}}function d4(e,n,r={}){const s=r.direction??"LR",o=r.pinned??new Map,l=r.measured??new Map,u=r.lanes,c=new Map;for(const b of e){const k=ia(b),N=c.get(k);N?N.push(b.id):c.set(k,[b.id])}const h=Array.from(c.keys()).sort().map(b=>({sid:b,...c4(c.get(b),n,s,l,o,u)})),f=s4(e,l),m=r.availableHeight&&r.availableHeight>0?r.availableHeight:Number.POSITIVE_INFINITY,y=b=>{const k=[[]];let N=0;for(const T of h)k.length<b&&N>0&&N+T.height>m&&(k.push([]),N=0),k[k.length-1].push(T),N+=T.height+zk;return k},x=b=>b.reduce((k,N)=>Math.max(k,N.width),0)+OC;let C=y(r.availableWidth?o4:1);C.length>1&&C.reduce((k,N)=>k+x(N),0)+f*(C.length-1)>(r.availableWidth??0)&&(C=y(1));const _=new Map;let S=0;for(const b of C){const k=x(b);let N=0;for(const{positions:T,height:I,pinnedBox:M}of b){for(const[H,L]of T)_.set(H,{x:L.x+S,y:L.y+N});let O=N+I;M&&M.maxY>O&&M.minX<S+k&&S<M.maxX&&(O=M.maxY),N=O+zk}S+=k+f}return e.map(b=>{const k=o.get(b.id);if(k)return{...b,position:k};const N=_.get(b.id);return N?{...b,position:N}:b})}function f4(e,n,r,s,o){const u=Ys+_u,c=60,p=x=>sa(x,s,o),h=new Map(e.map(x=>[x.id,ia(x)])),f=[],m=e.map(x=>({id:x.id,pos:r.get(x.id)??n.get(x.id)})).filter(x=>x.pos!=null).sort((x,C)=>x.pos.y-C.pos.y||x.pos.x-C.pos.x||x.id.localeCompare(C.id)),y=[];for(const{id:x,pos:C}of m){const{w:_,h:S}=p(x),b=h.get(x)??"_default";if(r.has(x)){f.push({x:C.x,y:C.y,w:_,h:S,sid:b});continue}let k=C.y;for(let N=0;N<f.length+1;N++){const T=f.find(I=>{const M=I.sid===b?24:c,O=I.sid===b?24:u;return C.x<I.x+I.w+M&&I.x<C.x+_+M&&k<I.y+I.h+O&&I.y<k+S+O});if(!T)break;k=T.y+T.h+(T.sid===b?24:u)}k!==C.y&&(n.set(x,{x:C.x,y:k}),y.push(x)),f.push({x:C.x,y:k,w:_,h:S,sid:b})}return y}function h4(e,n,r,s,o,l){const u=_=>sa(_,s,l),c=_=>r.get(_)??n.get(_),p=new Map;for(const _ of e){if(!c(_.id))continue;const S=ia(_),b=p.get(S);b?b.push(_):p.set(S,[_])}const h=new Set;for(const[_,S]of p)S.every(b=>o.has(b.id)&&!r.has(b.id))&&h.add(_);const f=new Map,m=[];for(const _ of e){const S=c(_.id);if(!S)continue;const{w:b,h:k}=u(_.id),N=ia(_);h.has(N)?(f.get(N)??f.set(N,[]).get(N)).push(_):m.push({x:S.x,y:S.y,w:b,h:k})}if(f.size===0)return[];const y=Ys+_u,x=(_,S,b,k)=>m.some(N=>_<N.x+N.w+Ys&&N.x<_+b+Ys&&S<N.y+N.h+y&&N.y<S+k+y),C=[];for(const _ of[...f.keys()].sort()){const S=f.get(_);let b=1/0,k=1/0,N=-1/0,T=-1/0;for(const q of S){const W=c(q.id),{w:B,h:j}=u(q.id);b=Math.min(b,W.x),k=Math.min(k,W.y),N=Math.max(N,W.x+B),T=Math.max(T,W.y+j)}const I=N-b,M=T-k,O=[...new Set(m.map(q=>Math.round(q.x)))].sort((q,W)=>q-W),H=O.length?O:[b],L=[0,...m.map(q=>q.y+q.h+y)].sort((q,W)=>q-W);let P=null;e:for(const q of H)for(const W of L){if(W>=k)break;if(!x(q,W,I,M)){P={x:q,y:W};break e}}if(P){const q=P.x-b,W=P.y-k;for(const B of S){const j=c(B.id);n.set(B.id,{x:j.x+q,y:j.y+W})}C.push(_)}for(const q of S){const W=c(q.id),{w:B,h:j}=u(q.id);m.push({x:W.x,y:W.y,w:B,h:j})}}return C}function p4(e,n,r,s,o,l=!1,u){const h=Ys+_u+1,f=8,m=1.75,y=200,x=.7,C=.01,_=P=>sa(P,s,u),S=P=>r.get(P)??n.get(P),b=new Map;for(const P of e){if(!S(P.id))continue;const q=ia(P),W=b.get(q);W?W.push(P):b.set(q,[P])}const k=[],N=new Set,T=new Set,I=o.size===0;for(const P of[...b.keys()].sort()){const q=b.get(P);let W=1/0,B=1/0,j=-1/0,K=-1/0,U=!1;for(const Y of q){const E=S(Y.id),{w:$,h:se}=_(Y.id);W=Math.min(W,E.x),B=Math.min(B,E.y),j=Math.max(j,E.x+$),K=Math.max(K,E.y+se),r.has(Y.id)&&(U=!0)}const ee=j-W,J=K-B;T.add(P);const F=o.get(P);F&&(ee>F.w+f||J>F.h+f)&&N.add(P),o.set(P,{w:ee,h:J}),k.push({sid:P,members:q.map(Y=>Y.id),x:W,y:B,w:ee,h:J,anchored:U,mass:1})}for(const P of[...o.keys()])T.has(P)||o.delete(P);if(l||I)return[];let M=!1;for(let P=0;P<k.length&&!M;P++)for(let q=P+1;q<k.length;q++){const W=k[P],B=k[q];if(!(W.anchored&&B.anchored)&&Math.abs(W.x+W.w/2-(B.x+B.w/2))<(W.w+B.w)/2+61&&Math.abs(W.y+W.h/2-(B.y+B.h/2))<(W.h+B.h)/2+h){M=!0;break}}if(N.size===0&&!M)return[];if(N.size>0)for(const P of k)N.has(P.sid)&&(P.mass=8);else for(const P of k)P.mass=Math.max(1,P.w*P.h/(Js*Xl));const O=new Map(k.map(P=>[P.sid,P.x])),H=new Map(k.map(P=>[P.sid,P.y]));for(let P=0;P<y;P++){const q=new Map,W=new Map;let B=0;for(let j=0;j<k.length;j++)for(let K=j+1;K<k.length;K++){const U=k[j],ee=k[K];if(U.anchored&&ee.anchored)continue;const J=U.x+U.w/2,F=U.y+U.h/2,Y=ee.x+ee.w/2,E=ee.y+ee.h/2,$=(U.w+ee.w)/2+61-Math.abs(J-Y),se=(U.h+ee.h)/2+h-Math.abs(F-E);if($<=0||se<=0)continue;const D=(Fe,Je)=>!Fe.anchored&&!(Je<0&&Fe.x<=0),Q=(Fe,Je)=>!Fe.anchored&&!(Je<0&&Fe.y<=0),te=(Fe,Je,dt)=>{const Nt=Fe===Je,ot=Nt?U.sid<ee.sid?-1:1:Math.sign(Fe-Je);return dt(U,ot)||dt(ee,-ot)?ot:Nt&&(dt(U,-ot)||dt(ee,ot))?-ot:0},ae=te(J,Y,D),ce=te(F,E,Q),me=ae!==0,ge=ce!==0;if(!me&&!ge)continue;const Pe=me&&(!ge||$*m<se),[Se,Oe,Me,be]=Pe?[ae,$,q,D]:[ce,se,W,Q],De=be(U,Se),ye=be(ee,-Se),we=U.mass,Ue=ee.mass,ut=De?ye?Ue/(we+Ue):1:0,ct=ye?De?we/(we+Ue):1:0,Ze=Oe*x;Me.set(U.sid,(Me.get(U.sid)??0)+Se*Ze*ut),Me.set(ee.sid,(Me.get(ee.sid)??0)-Se*Ze*ct),B+=Ze}for(const j of k)j.anchored||(j.x=Math.max(0,j.x+(q.get(j.sid)??0)),j.y=Math.max(0,j.y+(W.get(j.sid)??0)));if(B<C)break}const L=[];for(const P of k){const q=P.x-O.get(P.sid),W=P.y-H.get(P.sid);if(!(Math.abs(q)<1&&Math.abs(W)<1)){for(const B of P.members){if(r.has(B))continue;const j=n.get(B);j&&n.set(B,{x:j.x+q,y:j.y+W})}L.push(P.sid)}}return L}const m4=600;function Jg(e,n){return!(e.exitAt!=null&&n-e.exitAt>m4||e.kind==="root"&&e.state==="done"&&e.tools.length===0&&e.endedAt!=null&&e.endedAt-e.startedAt<3e3)}function g4(e,n){const r=new Set;for(const s of e.agents.values())Jg(s,n)&&r.add(s.id);return r}function v4(e,n,r=0){return e.right+r>n.left&&e.left-r<n.right&&e.bottom+r>n.top&&e.top-r<n.bottom}function y4(e,n,r=0){if(!e)return!1;for(const s of n)if(v4(e,s,r))return!0;return!1}const LC="sessionGroup";function w4(e,n){var s;if(e.type===LC)return"transparent";const r=(s=e.data)==null?void 0:s.state;return n(r==="err"?"--err":r==="active"?"--inflight":"--ok")}const x4="Update checks are off (AGENTS_DECK_NO_UPDATE_CHECK=1).";function _4(e){if(e.checkDisabled)return x4;if(e.checking)return"Asking npm for the newest release…";const n=e.latest?`npm has v${e.latest}`:e.latestPending?`npm's latest tag names v${e.latestPending}, which it cannot serve yet`:"npm not reached yet",r=e.checkedAgo?` · checked ${e.checkedAgo}`:"";return`${n}${r} · re-checked periodically · click to check npm now`}function S4(e){const n=`Version v${e.running}`;return e.checkDisabled?`${n}, update checks are off`:e.checking?`${n}, checking npm for a newer release`:`${n}, check npm for a newer release`}function Uo(e){return typeof window>"u"?"":getComputedStyle(document.documentElement).getPropertyValue(e).trim()||""}function b4(e){return e<1e3?`${e}`:e<1e6?`${(e/1e3).toFixed(1)}k`:`${(e/1e6).toFixed(2)}M`}const k4={agent:VP,sessionGroup:iO},E4=420,Ml=18,N4=9e4,C4=200,T4=5*6e4,R4=6,j4=2*6e4,zv="agent-dag.layout",Bv="agent-dag.viewport",qC="agent-dag.summariesDismissed",$C="agent-dag.sessionListOpen",DC="agent-dag.detailOpen",FC="agent-dag.usagePanelOpen",Bk="agent-dag.accountsPanelOpen",Uk="agent-dag.versionNoticeDismissed",A4=15*6e4,Hk={git_checkout:"this deck runs from a git checkout — pull instead:",npx:"npx runs from a cache that cannot be upgraded in place — run:",not_writable:"the install directory is not writable by this user — run:",opted_out:"installs are off (AGENTS_DECK_NO_INSTALL=1) — run:"};function I4(e){const n=Math.max(0,Math.floor(e/1e3));return n<60?"just now":n<3600?`${Math.floor(n/60)}m ago`:n<86400?`${Math.floor(n/3600)}h ago`:`${Math.floor(n/86400)}d ago`}const Wk="agent-dag.autoRestart",Vk="agent-dag.bundleReloadedFor";function M4(){if(typeof window>"u")return!1;try{return window.localStorage.getItem($C)==="1"}catch{return!1}}function P4(e){if(!(typeof window>"u"))try{window.localStorage.setItem($C,e?"1":"0")}catch{}}function O4(){if(typeof window>"u")return!1;try{return window.localStorage.getItem(DC)==="1"}catch{return!1}}function L4(e){if(!(typeof window>"u"))try{window.localStorage.setItem(DC,e?"1":"0")}catch{}}function q4(){const e=ON(FC);return e===null?!0:e==="1"}function $4(e){if(!(typeof window>"u"))try{window.localStorage.setItem(FC,e?"1":"0")}catch{}}function D4(){if(typeof window>"u")return new Set;try{const e=window.localStorage.getItem(qC);if(!e)return new Set;const n=JSON.parse(e);return new Set(Array.isArray(n)?n.filter(r=>typeof r=="string"):[])}catch{return new Set}}function Gk(e){if(!(typeof window>"u"))try{const n=Array.from(e),r=n.length>200?n.slice(-200):n;window.localStorage.setItem(qC,JSON.stringify(r))}catch{}}function F4(){const e={positions:[],pins:[]};if(typeof window>"u")return e;try{const n=window.localStorage.getItem(zv);if(!n)return e;const r=JSON.parse(n);if(!("v"in r)){const o=Object.entries(r).filter(([,l])=>l&&typeof l.x=="number"&&typeof l.y=="number");return{positions:o,pins:o.map(([l])=>l)}}return{positions:Object.entries(r.positions??{}).filter(([,o])=>o&&typeof o.x=="number"&&typeof o.y=="number"),pins:Array.isArray(r.pins)?r.pins:[]}}catch{return e}}function Ig(e,n){if(!(typeof window>"u"))try{const r={};for(const[s,o]of e)r[s]=o;for(const[s,o]of n)r[s]=o;window.localStorage.setItem(zv,JSON.stringify({v:2,positions:r,pins:Array.from(n.keys())}))}catch{}}function z4(){if(typeof window>"u")return null;try{const e=window.localStorage.getItem(Bv);if(!e)return null;const n=JSON.parse(e);return typeof(n==null?void 0:n.x)!="number"||typeof(n==null?void 0:n.y)!="number"||typeof(n==null?void 0:n.zoom)!="number"?null:n}catch{return null}}function B4(e){if(!(typeof window>"u"))try{window.localStorage.setItem(Bv,JSON.stringify(e))}catch{}}function Yk(){if(!(typeof window>"u")){try{window.localStorage.removeItem(zv)}catch{}try{window.localStorage.removeItem(Bv)}catch{}}}function U4(e,n){const r=e.agents.get(n);if(!r)return;const s=[];for(const f of e.agents.values())f.sessionId===n&&s.push(f);const o={schemaVersion:1,exportedAt:new Date().toISOString(),sessionId:n,label:r.label,cwd:r.cwd,startedAt:r.startedAt,endedAt:r.endedAt,model:r.model,agents:s.map(f=>({id:f.id,kind:f.kind,label:f.label,parentId:f.parentId,state:f.state,startedAt:f.startedAt,endedAt:f.endedAt,model:f.model,cwd:f.cwd,usage:f.usage,prompts:f.prompts,tools:f.tools.map(m=>({id:m.id,name:m.name,inputPreview:m.inputPreview,startedAt:m.startedAt,endedAt:m.endedAt,ok:m.ok,errorPreview:m.errorPreview,usage:m.usage}))}))},l=JSON.stringify(o,null,2),u=new Blob([l],{type:"application/json"}),c=URL.createObjectURL(u),p=document.createElement("a"),h=(r.label||"session").replace(/[^a-z0-9._-]/gi,"_");p.href=c,p.download=`agents-deck-${h}-${n.slice(0,8)}.json`,document.body.appendChild(p),p.click(),document.body.removeChild(p),setTimeout(()=>URL.revokeObjectURL(c),1e3)}const ev={file:"📁",shell:"⚡",web:"🌐",agent:"🤖",task:"📋",plan:"🧭",mcp:"🔌",other:"✨"},tv={file:"file",shell:"shell",web:"web",agent:"agent",task:"task",plan:"plan",mcp:"mcp",other:"other"},H4={Read:"file",Write:"file",Edit:"file",MultiEdit:"file",Glob:"file",Grep:"file",LS:"file",NotebookEdit:"file",Bash:"shell",PowerShell:"shell",shell:"shell",exec_command:"shell",shell_command:"shell",write_stdin:"shell",wait:"shell",apply_patch:"file",update_plan:"task",WebFetch:"web",WebSearch:"web",Task:"agent",Agent:"agent",TodoWrite:"task",TaskCreate:"task",TaskUpdate:"task",TaskList:"task",TaskGet:"task",TaskOutput:"task",TaskStop:"task",EnterPlanMode:"plan",ExitPlanMode:"plan",AskUserQuestion:"plan",Skill:"plan",Workflow:"plan"};function zC(e){return e.startsWith("mcp__")?"mcp":H4[e]??"other"}function BC(e,n){var s,o,l;if(!n)return!0;const r=n.toLowerCase();if(e.label.toLowerCase().includes(r)||(s=e.cwd)!=null&&s.toLowerCase().includes(r)||(o=e.cwdBasename)!=null&&o.toLowerCase().includes(r)||e.sessionId.toLowerCase().includes(r)||(l=e.firstPrompt)!=null&&l.toLowerCase().includes(r))return!0;for(const u of e.tools)if(u.name.toLowerCase().includes(r))return!0;return!1}function W4(e,n){if(!n)return null;const r=new Set([n]);let s=n;for(;s;){const l=e.agents.get(s);if(!(l!=null&&l.parentId)||r.has(l.parentId))break;r.add(l.parentId),s=l.parentId}let o=!0;for(;o;){o=!1;for(const l of e.agents.values())l.parentId&&r.has(l.parentId)&&!r.has(l.id)&&(r.add(l.id),o=!0)}return r}function V4(e,n,r,s,o,l,u,c,p,h,f,m,y,x,C,_,S,b){const k=[],N=[],T=new Set;if(l)for(const q of e.agents.values())BC(q,l)&&T.add(q.id);for(const q of e.agents.values()){if(!S.has(q.id))continue;const W=l?!T.has(q.id):!1,B=q.exitAt!=null,j=_!=null&&!_.has(q.id),K=[W?"rf-dim":"",B?"rf-exiting":"",j?"rf-spotlit-out":""].filter(Boolean).join(" ")||void 0,U=u.get(q.id);if(k.push({id:q.id,type:"agent",position:{x:0,y:0},data:{...q,now:n,dim:W,onOpenContext:b},className:K,...U?{width:U.width,height:U.height}:null}),q.parentId&&S.has(q.parentId)){const ee=_v(q.sessionId),J=q.state==="active"?`hsl(${ee} 80% 72%)`:`hsl(${ee} 50% 55%)`,F=l&&!T.has(q.id)&&!T.has(q.parentId),Y=B,E=C.size>0&&(C.has(q.id)||C.has(q.parentId)),$=_!=null&&!_.has(q.id)&&!_.has(q.parentId),se=q.state==="active"?2:1.5,D=E?se+1.5:se,Q=F||Y?.2:$?.12:1,te=[Y?"rf-edge-exiting":"",E?"rf-edge-selected":""].filter(Boolean).join(" ")||void 0;N.push({id:`e:${q.parentId}->${q.id}`,source:q.parentId,target:q.id,animated:(q.state==="active"||E)&&!F&&!Y,type:"smoothstep",style:{stroke:J,strokeWidth:D,opacity:Q,transition:"opacity 500ms ease, stroke-width 200ms ease"},className:te})}}const I=new Map;for(const q of e.agents.values())q.tools.length>0&&I.set(q.id,Math.min(4,q.tools.length));const M=`${y}#lanes:${u4(I)}`,O=k.filter(q=>!o.has(q.id)&&!m.has(q.id));if(O.length>0||M!==x.current){if(O.length>0){const q=d4(k,N,{direction:"LR",pinned:o,measured:u,availableWidth:r,availableHeight:s,lanes:I});for(const W of q)m.has(W.id)||m.set(W.id,W.position);h4(k,m,o,u,new Set(O.map(W=>W.id)),I)}f4(k,m,o,u,I),x.current=M}const H=p4(k,m,o,u,c,!h||f,I);H.length>0&&p(H),hd(m,e.agents),hd(o,e.agents),hd(u,j3(e.agents.values()));const L=[];let P=!1;for(const q of k){let W=o.get(q.id)??m.get(q.id);W||(W={x:0,y:0},m.set(q.id,W),P=!0),L.push({...q,position:W})}return P&&(x.current=""),{nodes:L,edges:N}}function G4(){return g.jsx(wv,{children:g.jsx(Y4,{})})}function Y4(){var Ri,hs,fo,zn;const e=ca(),n=A.useRef(Kg()),[,r]=A.useState(0),s=A.useCallback(()=>r(V=>V+1),[]),[o,l]=A.useState(()=>new Set),[u,c]=A.useState(null),[p,h]=A.useState(null),f=A.useCallback((V,X)=>{l(oe=>{if(!X)return new Set([V]);const ue=new Set(oe);return ue.has(V)?ue.delete(V):ue.add(V),ue}),c(oe=>X&&oe===V?oe:V)},[]),m=A.useCallback(()=>{l(new Set),c(null)},[]),[y,x]=A.useState(null),[C,_]=A.useState(null),S=A.useCallback(V=>_(V),[]),b=A.useRef(D4()),[k,N]=A.useState(M4);A.useEffect(()=>{P4(k)},[k]);const[T,I]=A.useState(O4);A.useEffect(()=>{L4(T)},[T]);const[M,O]=A.useState(q4);A.useEffect(()=>{$4(M)},[M]);const[H,L]=A.useState(()=>{try{const V=window.localStorage.getItem(Bk);return V===null?!0:V==="1"}catch{return!0}});A.useEffect(()=>{try{window.localStorage.setItem(Bk,H?"1":"0")}catch{}},[H]);const[P,q]=A.useState(null),[W,B]=A.useState(!1),[j,K]=A.useState(0),[U,ee]=A.useState(0);A.useEffect(()=>{fetch("/api/sound-hook").then(V=>V.ok?V.json():null).then(V=>{V!=null&&V.ok&&(q(V.enabled===!0),K((V.foreign??[]).filter(X=>X.worksHere).length),ee(typeof V.parked=="number"?V.parked:0))}).catch(()=>{})},[]);const J=A.useCallback(async()=>{B(!0);try{const X=await(await fetch("/api/sound-hook",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({enabled:!P})})).json().catch(()=>null);X!=null&&X.ok&&q(X.enabled===!0),fetch("/api/sound-hook").then(oe=>oe.ok?oe.json():null).then(oe=>{oe!=null&&oe.ok&&(K((oe.foreign??[]).filter(ue=>ue.worksHere).length),ee(typeof oe.parked=="number"?oe.parked:0))}).catch(()=>{})}catch{}finally{B(!1)}},[P]),[F,Y]=A.useState(!1),[E,$]=A.useState(null),[se,D]=A.useState(()=>{if(typeof window>"u")return"";try{return window.localStorage.getItem(Uk)??""}catch{return""}}),[Q,te]=A.useState(!1),ae=A.useRef(0),[ce,me]=A.useState(!1),ge=A.useCallback((V=!1)=>{V&&(ae.current=Date.now(),me(!0)),fetch(V?"/api/version?refresh=1":"/api/version").then(X=>X.ok?X.json():null).then(X=>{X&&$(X)}).catch(()=>{}).finally(()=>{V&&me(!1)})},[]),Pe=A.useCallback(()=>{ge(Date.now()-ae.current>=A4)},[ge]);A.useEffect(()=>{ge();const V=window.setInterval(Pe,5*6e4),X=()=>{document.visibilityState==="visible"&&Pe()};return document.addEventListener("visibilitychange",X),()=>{window.clearInterval(V),document.removeEventListener("visibilitychange",X)}},[ge,Pe]),A.useEffect(()=>{F&&ge()},[F,ge]);const Se=(E==null?void 0:E.notice)??null,Oe=Se?`${Se.kind}:${Se.to}`:"",Me=Se!=null&&se!==Oe,be=A.useCallback(()=>{if(!Se)return;const V=se===Oe?"":Oe;D(V);try{window.localStorage.setItem(Uk,V)}catch{}},[Se,Oe,se]),De=((Ri=E==null?void 0:E.upgrade)==null?void 0:Ri.state)??"idle",ye=S3(E==null?void 0:E.upgrade),we=A.useCallback(async()=>{try{await fetch("/api/upgrade",{method:"POST"})}catch{}ge()},[ge]);A.useEffect(()=>{if(De!=="running")return;const V=window.setInterval(ge,3e3);return()=>window.clearInterval(V)},[De,ge]);const Ue=A.useCallback(async()=>{var oe;const V=E==null?void 0:E.command;if(!V)return;let X=!1;try{X=await Promise.race([((oe=navigator.clipboard)==null?void 0:oe.writeText(V).then(()=>!0))??Promise.resolve(!1),new Promise(ue=>window.setTimeout(()=>ue(!1),500))])}catch{X=!1}if(!X)try{const ue=document.createElement("textarea");ue.value=V,ue.setAttribute("readonly",""),ue.style.cssText="position:fixed;top:0;left:0;opacity:0",document.body.appendChild(ue),ue.select(),X=document.execCommand("copy"),ue.remove()}catch{X=!1}X&&(te(!0),window.setTimeout(()=>te(!1),1600))},[E==null?void 0:E.command]),ut=A.useCallback(()=>{N(V=>(V||L(!1),!V))},[]),ct=A.useCallback(()=>{L(V=>(V||N(!1),!V))},[]),[Ze,Fe]=A.useState(!1),[Je,dt]=A.useState(0),Nt=A.useRef(null),[ot,gt]=A.useState(!1),Ct=A.useRef(null),[Ft,Xe]=A.useState(0),vt=A.useRef(P3()),[ft,wt]=A.useState(!1),fn=A.useCallback(()=>{const V=vt.current,X=V.setPaused(!V.paused);for(const oe of X)n.current=ix(n.current,oe);wt(V.paused)},[]),[Ye,zt]=A.useState(Date.now()),[Gt,pr]=A.useState(()=>{if(typeof window>"u")return!0;try{return window.localStorage.getItem(Wk)!=="0"}catch{return!0}}),In=A.useCallback(()=>{pr(V=>{const X=!V;try{window.localStorage.setItem(Wk,X?"1":"0")}catch{}return X})},[]),[Tt,Qt]=A.useState(!1),[vn,ts]=A.useState("restart"),[pi,mi]=A.useState(null),Mn=A.useRef(!1),Lr=A.useRef(null),gi=A.useRef(0),yn=A.useCallback(async V=>{if(Mn.current)return;const X=(V==null?void 0:V.upgrade)===!0;Mn.current=!0,Lr.current=ye;const oe=++gi.current;ts(X?"npx":"restart"),Qt(!0);try{window.sessionStorage.setItem("agent-dag.restartPending",(Se==null?void 0:Se.to)??"")}catch{}try{await fetch("/api/restart",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({upgrade:X})})}catch{}window.setTimeout(()=>{if(gi.current===oe&&Mn.current){Mn.current=!1,Qt(!1);try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}}},X?18e4:3e4)},[Se==null?void 0:Se.to,ye]),qr=A.useRef(null);A.useEffect(()=>{let V=!1;for(const oe of n.current.agents.values())if(oe.state==="active"){V=!0;break}const X=k3({enabled:Gt,kind:Se==null?void 0:Se.kind,canRestart:(E==null?void 0:E.canRestart)===!0,busy:V,idleSince:qr.current,now:Ye});qr.current=X.idleSince,X.restart&&yn()},[Gt,Se==null?void 0:Se.kind,E==null?void 0:E.canRestart,Ye,yn]),A.useEffect(()=>{const V=E==null?void 0:E.running;let X=null,oe=null;try{X=window.sessionStorage.getItem("agent-dag.restartPending"),oe=window.sessionStorage.getItem(Vk)}catch{return}const ue=_3({bundle:"1.33.104",running:V,pending:X,lastTried:oe});if(ue==="reload"){try{window.sessionStorage.setItem(Vk,V??"")}catch{return}window.location.reload();return}if(ue!=="confirm")return;try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}Mn.current=!1,Qt(!1),mi(V??null);const ve=window.setTimeout(()=>mi(null),6e3);return()=>window.clearTimeout(ve)},[E==null?void 0:E.running]),A.useEffect(()=>{if(Tt&&b3({asked:Lr.current,reported:ye})){try{window.sessionStorage.removeItem("agent-dag.restartPending")}catch{}Mn.current=!1,Qt(!1)}},[Tt,ye]);const Pn=A.useRef(F4()).current;A.useRef(!1);const Ot=A.useRef(new Map(Pn.positions.filter(([V])=>Pn.pins.includes(V)))),wn=A.useRef(null),On=A.useState(()=>z4())[0],[Zt,$r]=A.useState(""),[ns,so]=A.useState(()=>new Set),[nr,xn]=A.useState(()=>ON("agent-dag.theme")??"dark"),[vi,rs]=A.useState(!1),is=A.useRef(null);A.useEffect(()=>{document.documentElement.dataset.theme=nr;try{window.localStorage.setItem("agent-dag.theme",nr)}catch{}},[nr]),A.useEffect(()=>{if(!On)return;const V=window.setTimeout(()=>{try{e.setViewport(On,{duration:0})}catch{}},60);return()=>window.clearTimeout(V)},[e,On]);const yi=A.useRef(!0);A.useEffect(()=>{const V=new EventSource("/events"),X=M3(s,{now:()=>Date.now(),setTimeout:(oe,ue)=>window.setTimeout(oe,ue),clearTimeout:oe=>window.clearTimeout(oe)});return V.addEventListener("open",()=>{Y(!0),rs(!0)}),V.addEventListener("error",()=>Y(!1)),V.addEventListener("replay-end",()=>{yi.current=!1,X.flush()}),V.addEventListener("hook",oe=>{try{const ue=JSON.parse(oe.data);if(!vt.current.accept(ue))return;n.current=ix(n.current,ue),ue.replay===!0||yi.current||Date.now()-ue.receivedAt>3e4?X.replay():X.live()}catch{}}),()=>{V.close(),X.cancel()}},[s]),A.useEffect(()=>{const V=setInterval(()=>{const X=Date.now();zt(X);let oe=IP(n.current,X,N4);jP(n.current,X,C4,T4)&&(oe=!0),AP(n.current,X,R4,j4)&&(oe=!0),oe&&s()},250);return()=>clearInterval(V)},[s]);const Dr=A.useRef(null),Ln=A.useRef(0),ss=420,Yt=A.useCallback((V=500)=>{try{const ke=document.querySelector(".canvas-wrap"),Ne=Array.from(document.querySelectorAll(".react-flow__node")).filter(ht=>ht.offsetWidth>0);if(!ke||Ne.length===0)return;const Le=ke.getBoundingClientRect(),We=e.getViewport();if(!Number.isFinite(We.zoom)||We.zoom<=0)return;const Ve=ht=>(ht-Le.left-We.x)/We.zoom,rt=ht=>(ht-Le.top-We.y)/We.zoom,tn=Ne.map(ht=>ht.getBoundingClientRect()),yr=Math.min(...tn.map(ht=>Ve(ht.left))),wr=Math.max(...tn.map(ht=>Ve(ht.right))),or=Math.min(...tn.map(ht=>rt(ht.top))),ps=Math.max(...tn.map(ht=>rt(ht.bottom))),Sa=wr-yr,ms=ps-or;if(!(Sa>0&&ms>0))return;const Bn=Math.max(.2,Math.min(1,(Le.width-160)/(Sa+ss)*.86,(Le.height-160)/ms*.86));e.setViewport({x:80-yr*Bn,y:Math.max(80,(Le.height-ms*Bn)/2)-or*Bn,zoom:Bn},{duration:V}),Ln.current=Date.now(),window.setTimeout(()=>{try{const ht={x:80-yr*Bn,y:Math.max(80,(Le.height-ms*Bn)/2)-or*Bn,zoom:Bn},ba=e.getViewport();(Math.abs(ba.zoom-Bn)>.01||Math.abs(ba.x-ht.x)>2)&&e.setViewport(ht,{duration:0})}catch{}},V+60)}catch{}},[e]),wi=A.useRef(""),Qe=A.useRef(null),os=A.useRef(0),rr=A.useCallback(()=>{os.current=Date.now()},[]),Fr="agent-dag.autoFitDisabled",Jt=A.useRef((()=>{if(typeof window>"u")return!1;try{return window.localStorage.getItem(Fr)==="1"}catch{return!1}})()),[xi,_i]=A.useState(Jt.current),mr=A.useCallback(()=>{if(!Jt.current){Jt.current=!0,_i(!0);try{window.localStorage.setItem(Fr,"1")}catch{}}},[]),en=A.useCallback(()=>{Jt.current=!1,_i(!1);try{window.localStorage.removeItem(Fr)}catch{}Yt(400)},[e,Yt]);A.useEffect(()=>{const V=setInterval(()=>{if(Jt.current||Date.now()-os.current<800)return;const X=n.current,oe=Date.now(),ue=[];for(const Ve of X.agents.values())Jg(Ve,oe)&&ue.push({id:Ve.id});if(ue.length===0)return;const ve=e.getViewport(),ke=window.innerWidth-360,Ne=window.innerHeight-52;let Le=!1,We=!1;for(const{id:Ve}of ue){const rt=Rt.current.get(Ve),tn=Ot.current.get(Ve)??jt.current.get(Ve);if(!rt||!tn)continue;We=!0;const yr=tn.x*ve.zoom+ve.x,wr=tn.y*ve.zoom+ve.y,or=(tn.x+rt.width)*ve.zoom+ve.x,ps=(tn.y+rt.height)*ve.zoom+ve.y;if(or>0&&yr<ke&&ps>0&&wr<Ne){Le=!0;break}}We&&!Le&&Yt(600)},1500);return()=>clearInterval(V)},[e]);const gr=A.useRef(!1),Rt=A.useRef(new Map),va=A.useRef(0),Su=A.useCallback(V=>{const X=Rt.current;let oe=!1;for(const ue of V.nodeInternals.values()){const ve=ue.width,ke=ue.height;if(ve==null||ke==null)continue;const Ne=X.get(ue.id);Ne?(Math.abs(Ne.height-ke)>4||Math.abs(Ne.width-ve)>4)&&(X.set(ue.id,{width:ve,height:ke}),oe=!0):(X.set(ue.id,{width:ve,height:ke}),oe=!0)}return oe&&(va.current+=1),va.current},[]),ya=Ke(Su),[Si,as]=A.useState(0);A.useEffect(()=>{let V=0;const X=()=>{const ue=Rt.current;let ve=!1;for(const ke of document.querySelectorAll(".react-flow__node[data-id]")){const Ne=ke.getAttribute("data-id");if(!Ne)continue;const Le=ke.offsetWidth,We=ke.offsetHeight;if(!Le||!We)continue;const Ve=ue.get(Ne);(!Ve||Math.abs(Ve.width-Le)>4||Math.abs(Ve.height-We)>4)&&(ue.set(Ne,{width:Le,height:We}),ve=!0)}ve&&as(ke=>ke+1)};if(gr.current)return;let oe=0;return document.visibilityState==="hidden"?oe=window.setTimeout(X,32):V=requestAnimationFrame(X),()=>{cancelAnimationFrame(V),window.clearTimeout(oe)}});const jt=A.useRef(new Map(Pn.positions)),zr=A.useRef(""),Br=A.useMemo(()=>{const V=[];for(const X of n.current.agents.values())Jg(X,Ye)&&V.push(X.id+(X.parentId?`>${X.parentId}`:""));return V.sort(),`${V.join("|")}#sv${ya}.${Si}`},[n.current,n.current.lastSeq,Ye,ya,Si]),bi=A.useRef(null);A.useEffect(()=>(bi.current!=null&&window.clearTimeout(bi.current),bi.current=window.setTimeout(()=>{Ig(jt.current,Ot.current)},1500),()=>{bi.current!=null&&window.clearTimeout(bi.current)}),[Br]),A.useEffect(()=>{if(wi.current===Br)return;const V=wi.current;if(wi.current=Br,!V||Jt.current)return;Date.now()-Ln.current>1200&&Yt(400),Dr.current&&window.clearTimeout(Dr.current),Dr.current=window.setTimeout(()=>{Jt.current||Yt(500)},280)},[Br,e,Yt]);const ki=A.useMemo(()=>{if(o.size===0)return null;const V=new Set;for(const X of o){const oe=W4(n.current,X);if(oe)for(const ue of oe)V.add(ue)}return V.size>0?V:null},[n.current,n.current.lastSeq,o]),ls=A.useMemo(()=>g4(n.current,Ye),[n.current,n.current.lastSeq,Ye]),us=A.useRef(null),[ir,wa]=A.useState({w:0,h:0});A.useEffect(()=>{const V=us.current;if(!V||typeof ResizeObserver>"u")return;const X=new ResizeObserver(oe=>{var ve;const ue=(ve=oe[0])==null?void 0:ve.contentRect;ue&&wa(ke=>Math.abs(ke.w-ue.width)>40||Math.abs(ke.h-ue.height)>40?{w:ue.width,h:ue.height}:ke)});return X.observe(V),wa({w:V.clientWidth,h:V.clientHeight}),()=>X.disconnect()},[]);const oo=A.useRef(new Map),[He,xa]=A.useState(!1);A.useEffect(()=>{const V=window.setTimeout(()=>xa(!0),2500);return()=>window.clearTimeout(V)},[]);const[_a,Ei]=A.useState(!1),qn=A.useRef(null),[cs,ao]=A.useState(!1),lo=A.useCallback(()=>{qn.current&&(window.clearTimeout(qn.current),qn.current=null),Ei(!1)},[]),ds=A.useCallback(V=>{V.length!==0&&queueMicrotask(()=>{Ei(!0),qn.current&&window.clearTimeout(qn.current),qn.current=window.setTimeout(()=>Ei(!1),E4+80)})},[]);A.useEffect(()=>()=>{qn.current&&window.clearTimeout(qn.current)},[]);const $n=ir.w>0?ir.w*.92:0,Dn=ir.h>0?ir.h:0,{nodes:At,edges:Ni}=A.useMemo(()=>V4(n.current,Ye,$n,Dn,Ot.current,Zt,Rt.current,oo.current,ds,He,cs,jt.current,Br,zr,o,ki,ls,S),[n.current,n.current.lastSeq,Ye,$n,Dn,He,cs,Zt,Br,o,ki,ls,S,Je]),Ur=A.useMemo(()=>{const V=new Map;for(const oe of At){const ue=oe.data;if(!(ue!=null&&ue.sessionId)||ue.exitAt!=null)continue;const ve=oe.width,ke=oe.height;if(ve==null||ke==null)continue;const Ne=oe.position.x,Le=oe.position.y,We=Ne+ve,Ve=Le+ke,rt=V.get(ue.sessionId);rt?(rt.minX=Math.min(rt.minX,Ne),rt.minY=Math.min(rt.minY,Le),rt.maxX=Math.max(rt.maxX,We),rt.maxY=Math.max(rt.maxY,Ve)):V.set(ue.sessionId,{minX:Ne,minY:Le,maxX:We,maxY:Ve})}const X=[];for(const[oe,ue]of V){const ve=ue.maxX-ue.minX+Ml*2,ke=ue.maxY-ue.minY+Ml*2;X.push({id:`group:${oe}`,type:LC,position:{x:ue.minX-Ml,y:ue.minY-Ml},data:{sessionId:oe,w:ve,h:ke},width:ve,height:ke,style:{width:ve,height:ke},zIndex:-1,draggable:!0,selectable:!1,focusable:!1,deletable:!1,connectable:!1})}return X},[At,Ye]),sr=A.useMemo(()=>{const V=[...Ur,...At],X=Ct.current;return!X||X.size===0?V:V.map(oe=>{const ue=X.get(oe.id);return ue?{...oe,position:ue}:oe})},[Ur,At,Ft]),bu=A.useMemo(()=>{if(!Zt)return null;const V=new Set;for(const X of n.current.agents.values())BC(X,Zt)&&V.add(X.id);return V},[n.current,n.current.lastSeq,Zt]),Ci=A.useMemo(()=>{const V=new Set;for(const X of n.current.agents.values())for(const oe of X.tools)V.add(zC(oe.name));return Object.keys(ev).filter(X=>V.has(X))},[n.current,n.current.lastSeq]);A.useEffect(()=>{if(Ci.length<=1){gt(!1);return}let V=0;const X=()=>{const oe=Nt.current;if(oe&&!document.hidden){const ue=oe.getBoundingClientRect(),ve=Array.from(document.querySelectorAll(".react-flow__node, .tool-burst")).map(Ne=>Ne.getBoundingClientRect()),ke=y4(ue,ve,8);gt(Ne=>Ne===ke?Ne:ke)}V=window.setTimeout(X,300)};return X(),()=>window.clearTimeout(V)},[Ci.length]);const Fn=A.useMemo(()=>{const V=new Map;for(const oe of n.current.agents.values())for(const ue of oe.tools){if(!ue.name.startsWith("mcp__"))continue;const ve=ue.name.slice(5),ke=ve.indexOf("__"),Ne=ke>0?ve.slice(0,ke):ve;V.set(Ne,(V.get(Ne)??0)+1)}const X=[];for(const[oe,ue]of V){let ve=5381;for(let ke=0;ke<oe.length;ke++)ve=(ve<<5)+ve^oe.charCodeAt(ke);X.push({server:oe,count:ue,hue:Math.abs(ve)%360})}return X.sort((oe,ue)=>ue.count-oe.count),X},[n.current,n.current.lastSeq]),ku=A.useCallback(V=>{so(X=>{const oe=new Set(X);return oe.has(V)?oe.delete(V):oe.add(V),oe})},[]),Lt=u?n.current.agents.get(u):null,Ti=p?Array.from(n.current.agents.values()).flatMap(V=>V.tools).find(V=>V.id===p)??null:null,fs=A.useCallback(async()=>{try{await fetch("/api/clear",{method:"POST"})}catch{}n.current=Kg(),Ot.current.clear(),Rt.current.clear(),jt.current.clear(),zr.current="",Yk(),m(),s()},[s,m]),uo=A.useCallback(()=>{Ot.current.clear(),jt.current.clear(),zr.current="",Yk(),s(),window.setTimeout(()=>Yt(500),80)},[s,e,Yt]),Hr=A.useCallback(()=>Yt(500),[Yt]),Wr=A.useRef(At);Wr.current=At;const vr=A.useRef(u);vr.current=u;const Vr=A.useCallback(V=>{const X=Wr.current;if(X.length===0)return;const oe=X.slice().sort((Le,We)=>Le.position.y-We.position.y||Le.position.x-We.position.x),ue=vr.current,ve=ue?oe.findIndex(Le=>Le.id===ue):-1;let ke;ve===-1?ke=V===1?0:oe.length-1:ke=(ve+V+oe.length)%oe.length;const Ne=oe[ke];Ne&&(f(Ne.id,!1),window.setTimeout(()=>{try{e.fitView({padding:.35,duration:350,nodes:[Ne]})}catch{}Ln.current=Date.now()},30))},[f,e]);A.useEffect(()=>{const V=X=>{var ve,ke;const oe=X.target,ue={tagName:oe==null?void 0:oe.tagName,isContentEditable:oe==null?void 0:oe.isContentEditable,role:(ve=oe==null?void 0:oe.getAttribute)==null?void 0:ve.call(oe,"role"),type:oe==null?void 0:oe.type};if(X.key==="Escape"){PN(ue)?oe==null||oe.blur():m();return}if(!R3(ue)&&!E3(X)){if(X.key==="/"){X.preventDefault(),(ke=is.current)==null||ke.focus();return}X.key===" "&&(X.preventDefault(),fn()),(X.key==="c"||X.key==="C")&&fs(),(X.key==="r"||X.key==="R")&&uo(),(X.key==="f"||X.key==="F")&&Hr(),(X.key==="l"||X.key==="L")&&ut(),(X.key==="h"||X.key==="H")&&Fe(Ne=>!Ne),(X.key==="u"||X.key==="U")&&O(Ne=>!Ne),(X.key==="a"||X.key==="A")&&ct(),(X.key==="j"||X.key==="J")&&Vr(1),(X.key==="k"||X.key==="K")&&Vr(-1),(X.key==="t"||X.key==="T")&&xn(Ne=>Ne==="dark"?"light":"dark")}};return window.addEventListener("keydown",V),()=>window.removeEventListener("keydown",V)},[fs,uo,Hr,m,Vr,fn]);const co=n.current.agents.size,Eu=new Set(Array.from(n.current.agents.values()).map(V=>V.sessionId)).size,Bt=A.useMemo(()=>{let V=0,X=0,oe=0,ue=0,ve=0,ke=0,Ne=0,Le=0,We=0;for(const Ve of n.current.agents.values()){V+=Ve.usage.inputTokens,X+=Ve.usage.outputTokens,oe+=Ve.usage.cacheReadTokens,ue+=Ve.usage.cacheCreateTokens;const rt=cn(Ve.usage,Ve.model);ve+=rt.total,ke+=rt.input,Ne+=rt.output,Le+=rt.cacheRead,We+=rt.cacheWrite}return{inT:V,outT:X,cacheR:oe,cacheC:ue,sum:V+X,cost:{total:ve,input:ke,output:Ne,cacheRead:Le,cacheWrite:We}}},[n.current,n.current.lastSeq]);return g.jsxs("div",{className:"app",children:[g.jsxs("header",{className:"topbar",children:[g.jsxs("div",{className:"brand",children:[g.jsx("span",{className:"logo"}),"agents-deck",Se?g.jsxs("button",{type:"button",className:"v stale",onClick:be,title:Se.kind==="restart"?`Running v${Se.from}; v${Se.to} is installed on disk. Restart to pick it up.`:`Running v${Se.from}; v${Se.to} is on npm.`,children:["v",Se.from,g.jsx("span",{className:"v-dot","aria-hidden":!0})]}):(()=>{const V={running:(E==null?void 0:E.running)??"1.33.104",latest:E==null?void 0:E.latest,latestPending:E==null?void 0:E.latestPending,checkedAgo:E!=null&&E.checkedAt?I4(Ye-E.checkedAt):null,checkDisabled:E==null?void 0:E.checkDisabled,checking:ce};return g.jsxs("button",{type:"button",className:ce?"v checking":"v",onClick:()=>ge(!0),"aria-busy":ce||void 0,"aria-label":S4(V),title:_4(V),children:["v",V.running]})})()]}),Lt&&(()=>{const V=cn(Lt.usage,Lt.model),X=Math.max(0,((Lt.endedAt??Ye)-Lt.startedAt)/1e3),oe=Lt.state==="active"?Yl(V.total,X):null,ue=o.size-1;return g.jsxs("button",{type:"button",className:"selected-ribbon",title:`Fit view to ${Lt.label}`,onClick:()=>{try{const ve=At.find(ke=>ke.id===Lt.id);ve&&e.fitView({padding:.35,duration:500,nodes:[ve]}),Ln.current=Date.now()}catch{}},children:[g.jsx("span",{className:`state-pill state-${Lt.state}`,children:Lt.state==="active"?"live":Lt.state}),g.jsx("span",{className:"selected-label",children:Lt.label}),V.total>0&&g.jsxs("span",{className:"selected-cost",children:[ze(V.total),oe?g.jsxs("span",{className:"selected-rate",children:[" · ",oe]}):null]}),ue>0&&g.jsxs("span",{className:"selected-extra",children:["+",ue]}),g.jsx("span",{role:"button","aria-label":"Deselect",className:"selected-close",onClick:ve=>{ve.stopPropagation(),m()},children:"×"})]})})(),g.jsxs("div",{className:"actions",children:[g.jsxs("div",{className:"search",children:[g.jsx("span",{className:"search-icon","aria-hidden":!0,children:"⌕"}),g.jsx("input",{ref:is,type:"text",placeholder:"Search agents, cwd, tools…",value:Zt,onChange:V=>$r(V.target.value),spellCheck:!1,"aria-label":"Filter the graph"}),Zt?g.jsx("button",{className:"search-clear","aria-label":"Clear search",onClick:()=>$r(""),children:"×"}):g.jsx("kbd",{className:"search-kbd","aria-hidden":!0,children:"/"})]}),g.jsxs("span",{className:"status",role:"status",children:[g.jsx("span",{className:`pill ${F?"live":"dead"}`,title:F?"Receiving events":"SSE disconnected",children:F?"live":"offline"}),g.jsxs("span",{className:"stat",title:"Distinct CC sessions",children:[g.jsx("span",{className:"count",children:Eu}),g.jsx("span",{className:"lbl",children:"sessions"})]}),g.jsxs("span",{className:"stat",title:"Total agents (root + subagents)",children:[g.jsx("span",{className:"count",children:co}),g.jsx("span",{className:"lbl",children:"agents"})]}),g.jsxs("span",{className:"stat",title:"Total hook events received",children:[g.jsx("span",{className:"count",children:n.current.totalEvents}),g.jsx("span",{className:"lbl",children:"events"})]}),Bt.sum>0&&g.jsxs("span",{className:"stat",title:`in:${Bt.inT.toLocaleString()} out:${Bt.outT.toLocaleString()} cache-r:${Bt.cacheR.toLocaleString()} cache-c:${Bt.cacheC.toLocaleString()}`,children:[g.jsx("span",{className:"count",children:b4(Bt.sum)}),g.jsx("span",{className:"lbl",children:"tokens"})]}),Fn.length>0&&g.jsxs("span",{className:"stat mcp-legend",title:`MCP servers seen this session:
|
|
60
60
|
${Fn.map(V=>` ${V.server}: ${V.count} call${V.count===1?"":"s"}`).join(`
|
|
61
61
|
`)}`,children:[Fn.slice(0,6).map(V=>g.jsx("span",{className:"mcp-dot",style:{background:`hsl(${V.hue} 65% 65%)`}},V.server)),Fn.length>6&&g.jsxs("span",{className:"mcp-more",children:["+",Fn.length-6]}),g.jsx("span",{className:"lbl",children:"mcp"})]}),Bt.cost.total>0&&(()=>{let V=0,X=0;for(const ve of n.current.agents.values()){if(ve.state!=="active")continue;const ke=cn(ve.usage,ve.model);V+=ke.total,X=Math.max(X,((ve.endedAt??Ye)-ve.startedAt)/1e3)}const oe=X>0?Yl(V,X):null,ue=`input ${ze(Bt.cost.input)} + output ${ze(Bt.cost.output)} + cache r ${ze(Bt.cost.cacheRead)} + cache w ${ze(Bt.cost.cacheWrite)}${oe?`
|
|
62
62
|
active burn: ${oe}`:""}`;return g.jsxs("span",{className:"stat",title:ue,children:[g.jsx("span",{className:"count",children:ze(Bt.cost.total)}),g.jsxs("span",{className:"lbl",children:["cost",oe?` · ${oe}`:""]})]})})()]}),g.jsx("button",{className:`btn ${ft?"warn":""}`,onClick:fn,title:"Pause/resume live updates (Space)",children:ft?`Resume${vt.current.size?` · ${vt.current.size}`:""}`:"Pause"}),g.jsx("button",{className:`btn icon-btn ${M?"primary":""}`,onClick:()=>O(V=>!V),title:`${M?"Hide":"Show"} usage panel (U)`,"aria-label":"Toggle usage panel",children:"$"}),P!==null&&g.jsx("button",{className:`btn icon-btn ${P?"primary":""}`,onClick:V=>{if(V.shiftKey&&U>0){B(!0),fetch("/api/sound-hook",{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({action:"restore"})}).then(()=>fetch("/api/sound-hook")).then(X=>X.ok?X.json():null).then(X=>{X!=null&&X.ok&&(q(X.enabled===!0),ee(X.parked??0))}).catch(()=>{}).finally(()=>B(!1));return}J()},disabled:W,title:(P?"Sound on turn finish: on — click to remove the hook":"Sound on turn finish: off — click to add a Stop hook")+(j>0?`
|